@layer application {
.route-document--legal .legal-navigation.route-navigation.is-route-detail {
  grid-template-columns:
    var(--route-navigation-utility-size)
    var(--route-navigation-utility-size)
    minmax(0, 1fr);
}

.route-document--legal .legal-navigation__back {
  grid-row: 1;
  grid-column: 2;
  color: var(--site-ink);
  text-decoration: none;
}

.route-document--legal .legal-navigation__back svg {
  inline-size: 1.45rem;
  block-size: 1.45rem;
}

.route-document--legal
  .legal-navigation.route-navigation.is-route-detail
  .route-navigation__entry-title {
  grid-column: 3 / -1;
}

.route-document--legal .legal-grid-section--two-rows {
  block-size: calc(
    (2 * var(--detail-grid-reference-row-block-size))
    + var(--detail-grid-gap)
  );
  min-block-size: calc(
    (2 * var(--detail-grid-reference-row-block-size))
    + var(--detail-grid-gap)
  );
}

.route-document--legal .legal-grid__tile {
  --detail-tile-background: transparent;
  --detail-tile-border-color: transparent;
  --detail-tile-shadow-rest: none;

  align-content: start;
  justify-content: stretch;
  grid-template-rows: auto minmax(0, 1fr);
  gap: clamp(1.1rem, calc(2 * var(--site-scale-unit)), 2rem);
  padding: clamp(1.35rem, calc(2.2 * var(--site-scale-unit)), 2.4rem);
  overflow: auto;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.route-document--legal .legal-grid__title {
  display: flex;
  inline-size: 100%;
  align-items: center;
  justify-content: center;
  gap: clamp(0.85rem, calc(1.8 * var(--site-scale-unit)), 1.8rem);
  font-family: var(--type-family-display);
  font-size: var(--type-size-legal-title);
  font-weight: var(--type-weight-semibold);
  letter-spacing: -0.035em;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
}

.route-document--legal .legal-grid__title::before,
.route-document--legal .legal-grid__title::after {
  display: block;
  min-inline-size: 0;
  block-size: 1px;
  flex: 1 1 auto;
  background: currentColor;
  content: "";
  opacity: 0.42;
}

.legal-grid__sections {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-content: start;
  align-self: center;
  gap: clamp(1.2rem, calc(2 * var(--site-scale-unit)), 2rem) clamp(2rem, calc(4 * var(--site-scale-unit)), 5rem);
  color: rgb(17 17 17 / 0.72);
  font-size: var(--type-size-legal-copy);
  font-weight: var(--type-weight-light);
  line-height: 1.5;
}

.legal-grid__column {
  display: grid;
  align-content: start;
  gap: clamp(1.2rem, calc(2 * var(--site-scale-unit)), 2rem);
  min-inline-size: 0;
}

.legal-grid__sections--imprint {
  grid-template-columns: repeat(2, max-content);
  inline-size: fit-content;
  max-inline-size: 100%;
  column-gap: clamp(3rem, calc(5 * var(--site-scale-unit)), 6rem);
  justify-self: center;
}

.legal-grid__sections section {
  min-inline-size: 0;
}

.legal-grid__sections h2 {
  margin: 0 0 0.55rem;
  color: var(--site-ink);
  font-size: var(--type-size-legal-heading);
  font-weight: var(--type-weight-semibold);
  line-height: 1.25;
}

.legal-grid__sections p {
  text-align: justify;
  text-align-last: start;
}

.legal-grid__sections p + p {
  margin-block-start: 0.7rem;
}

.legal-grid__sections address {
  font-style: normal;
}

.legal-grid__sections a {
  text-underline-offset: 0.16em;
}

[data-legal-section]:focus {
  outline: none;
}

@media (46rem < width <= 75rem) {
  .legal-grid__sections {
    align-self: start;
  }
}

@media (max-width: 52rem) {
  .legal-grid__sections {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 46rem) {
  .route-document--legal .legal-grid__tile {
    grid-template-columns: minmax(0, 1fr);
    padding-inline: clamp(
      0.75rem,
      calc(2 * var(--site-scale-unit)),
      1.35rem
    );
    overflow-x: hidden;
  }

  .route-document--legal :is(
      .legal-grid__column,
      .legal-grid__sections section,
      .legal-grid__sections p,
      .legal-grid__sections address
    ) {
    inline-size: 100%;
    min-inline-size: 0;
    max-inline-size: 100%;
  }

  .route-document--legal .legal-grid__sections--imprint {
    inline-size: fit-content;
    justify-self: center;
  }

  .route-document--legal
    .legal-grid__sections--imprint
    > section {
    justify-self: start;
    inline-size: fit-content;
    max-inline-size: 100%;
  }

  .route-document--legal .legal-grid__sections {
    align-self: start;
    justify-self: center;
  }

  .route-document--legal .legal-grid__title {
    min-inline-size: 0;
  }

  .route-document--legal :is(
      .legal-grid__sections p,
      .legal-grid__sections address,
      .legal-grid__sections a
    ) {
    overflow-wrap: anywhere;
    hyphens: auto;
  }
}

}
