/* Mobile overflow: long compounds, fact list, wide tables.
   Homepage hero is outside .page/.wrap and keeps its own type size. */

.page,
.wrap {
  overflow-wrap: break-word;
  hyphens: auto;
  -webkit-hyphens: auto;
}

.page a,
.wrap a {
  overflow-wrap: anywhere;
}

.page img,
.wrap img,
.page video,
.page iframe {
  max-width: 100%;
  height: auto;
}

/* Main navigation: vertical, top right, same as the homepage hero. */
.page > nav,
.wrap > nav {
  position: absolute;
  top: 44px;
  right: 34px;
  z-index: 30;
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: flex-end;
  gap: 22px;
  margin: 0;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.page > nav > *,
.wrap > nav > * {
  writing-mode: vertical-rl;
  white-space: nowrap;
}

.page > nav a:hover,
.wrap > nav a:hover {
  color: #F6F2E8;
}

@media (max-width: 1240px) {
  .page,
  .wrap {
    padding-right: 80px;
  }
}

@media (max-width: 900px) {
  .body table {
    display: block;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}

@media (max-width: 709.98px) {
  .page > nav,
  .wrap > nav {
    top: 16px;
    right: 10px;
    gap: 16px;
    font-size: 15px;
  }

  .page > nav > *,
  .wrap > nav > * {
    display: inline-block;
    box-sizing: border-box;
    min-width: 24px;
    padding: 4px 6px;
  }

  .page,
  .wrap {
    padding-right: 48px;
  }

  .page h1,
  .wrap h1 {
    font-size: clamp(28px, 8.2vw, 42px);
  }

  .body h2 {
    font-size: clamp(22px, 6.2vw, 32px);
  }

  .list .t,
  .wissen .t {
    font-size: clamp(24px, 7vw, 40px);
  }

  .page dl {
    grid-template-columns: 1fr;
    gap: 4px 0;
  }

  .page dl dt {
    margin-top: 16px;
  }

  .page dl dt:first-of-type {
    margin-top: 0;
  }
}
