:root {
  --max-container-width: 40rem;
  --box-padding: 1em;

  --photo-margin: 1em;
  --text-spacing: 0.3em;
}

.box {
  max-width: var(--max-container-width);
  padding: var(--box-padding);

  margin: 0 var(--box-padding);
}

#photo {
  max-width: 30%;
  height: auto;

  float: left;

  margin: 0 var(--photo-margin) calc(var(--photo-margin) / 2) 0;
  border-radius: 8px;
}

.box-header {
  text-align: center;

  margin-bottom: calc(var(--box-padding) / 2);
}

.box-text {
  text-align: justify;
  line-height: 1.5;
}

.box-text:not(:last-child) {
  margin-bottom: var(--text-spacing);
}

#content {
  margin-bottom: calc(var(--box-padding) * 2);
}

@media only screen and (max-width: 600px) {
  #photo {
    max-width: 100% !important;
    width: 60vw !important;
    height: calc(60vw * 896 / 620) !important;

    float: none !important;
    display: block;

    margin: 0 0 var(--photo-margin) 0;
  }

  .box {
    display: flex;
    flex-direction: column;

    align-items: center;
  }
}
