/* Legal pages: shared foundation */
.legal-page {
  background: radial-gradient(circle at 86% 8%, rgba(161, 145, 103, .10), transparent 28%), linear-gradient(180deg, #0d0b09 0%, #060504 55%, #090806 100%);
  color: var(--perbra-champagne-text);
}
.legal-page main {
  min-height: 100vh;
  padding-top: clamp(148px, 16vw, 210px);
  overflow: hidden;
}
.legal-hero,
.legal-layout {
  width: var(--shell);
  margin-inline: auto;
}

/* Page introduction */
.legal-hero {
  position: relative;
  padding-bottom: clamp(56px, 7vw, 92px);
  border-bottom: 1px solid transparent;
  border-image: var(--perbra-divider-gradient) 1;
}
.legal-hero::after {
  content: "";
  position: absolute;
  right: -7vw;
  bottom: 18px;
  width: min(34vw, 460px);
  aspect-ratio: 1;
  border: 1px solid rgba(161, 145, 103, .09);
  border-radius: 50%;
  box-shadow: 0 0 0 52px rgba(161,145,103,.025), 0 0 0 104px rgba(161,145,103,.015);
  pointer-events: none;
}
.legal-eyebrow,
.legal-label {
  margin: 0;
  color: var(--perbra-champagne-subheading);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .27em;
  line-height: 1.5;
  text-transform: uppercase;
}
.legal-hero h1 {
  max-width: 980px;
  margin: 20px 0 calc(22px - .12em);
  padding: 0 .04em .12em 0;
  color: transparent;
  background: var(--perbra-heading-gradient-large);
  background-size: var(--perbra-heading-gradient-size);
  background-position: var(--perbra-heading-gradient-position);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-family: var(--serif);
  font-size: clamp(58px, 7.3vw, 112px);
  font-weight: 400;
  line-height: .96;
  letter-spacing: -.035em;
  overflow: visible;
}
.legal-title--imprint,
.legal-title--privacy {
  transform: translateY(-10px);
}
.legal-hero > p:not(.legal-eyebrow):last-child {
  max-width: 720px;
  margin: 0;
  color: var(--perbra-champagne-text);
  font-size: clamp(15px, 1.2vw, 18px);
  line-height: 1.75;
}

/* Operator details */
.legal-layout {
  display: grid;
  grid-template-columns: minmax(250px, .72fr) minmax(0, 1.7fr);
  gap: clamp(52px, 8vw, 126px);
  padding-block: clamp(70px, 9vw, 132px);
}
.legal-aside {
  align-self: start;
  position: sticky;
  top: 132px;
  padding: clamp(28px, 3vw, 42px);
  border: 1px solid transparent;
  background: linear-gradient(rgba(24, 20, 15, .84), rgba(14, 12, 9, .88)) padding-box, var(--perbra-gold-gradient) border-box;
  box-shadow: 0 28px 80px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.05);
}
.legal-aside h2 {
  margin: 16px 0 25px;
  color: var(--perbra-champagne-subheading);
  font-family: var(--serif);
  font-size: clamp(27px, 2.3vw, 38px);
  font-weight: 400;
  line-height: 1.08;
}
.legal-company {
  margin: 0;
  color: var(--perbra-champagne-text);
  font-size: 13px;
  line-height: 1.75;
}
.legal-company strong {
  color: var(--perbra-champagne-subheading);
  letter-spacing: .04em;
}
.legal-meta {
  display: grid;
  gap: 17px;
  margin: 27px 0 0;
  padding-top: 26px;
  border-top: 1px solid var(--perbra-divider-color-soft);
}
.legal-meta div {
  display: grid;
  gap: 4px;
}
.legal-meta dt {
  color: var(--perbra-champagne-subheading);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.legal-meta dd {
  margin: 0;
  color: var(--perbra-champagne-text);
  font-size: 13px;
  line-height: 1.55;
}
.legal-meta a {
  color: inherit;
  text-decoration: none;
}
.legal-meta a:hover {
  color: var(--perbra-gold-champagne);
}

/* Numbered legal content */
.legal-sections {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--perbra-divider-color-soft);
  border-left: 1px solid var(--perbra-divider-color-soft);
}
.legal-section {
  min-width: 0;
  padding: clamp(30px, 3.5vw, 50px);
  border-right: 1px solid var(--perbra-divider-color-soft);
  border-bottom: 1px solid var(--perbra-divider-color-soft);
  background: linear-gradient(145deg, rgba(255,255,255,.025), rgba(255,255,255,.008));
}
.legal-section--wide {
  grid-column: 1 / -1;
}
.legal-number {
  display: block;
  margin-bottom: 19px;
  color: var(--perbra-gold-mid);
  font-family: var(--serif);
  font-size: 16px;
  letter-spacing: .08em;
}
.legal-section h2 {
  margin: 0 0 20px;
  color: var(--perbra-champagne-subheading);
  font-family: var(--serif);
  font-size: clamp(25px, 2.15vw, 36px);
  font-weight: 400;
  line-height: 1.12;
}
.legal-section p,
.legal-section li {
  color: var(--perbra-champagne-text);
  font-size: 14px;
  line-height: 1.82;
}
.legal-section p {
  margin: 0 0 14px;
}
.legal-section p:last-child {
  margin-bottom: 0;
}
.legal-section ul {
  margin: 15px 0 18px;
  padding: 0;
  list-style: none;
}
.legal-section li {
  position: relative;
  padding-left: 20px;
}
.legal-section li::before {
  content: "";
  position: absolute;
  left: 1px;
  top: .86em;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--perbra-gold-mid);
}
.legal-section a {
  color: var(--perbra-gold-champagne);
  text-decoration: none;
  border-bottom: 1px solid rgba(238,227,201,.35);
}

/* Responsive layout */
@media (max-width: 1024px) and (orientation: portrait), (max-width: 820px) and (orientation: landscape), (max-width: 1366px) and (max-height: 820px) and (orientation: landscape) and (hover: none) and (pointer: coarse) {
  .legal-page main {
    padding-top: 130px;
  }
  .legal-layout {
    grid-template-columns: 1fr;
  }
  .legal-aside {
    position: static;
  }
}
@media (max-width: 680px) {
  .legal-page main {
    padding-top: 112px;
  }
  .legal-hero,
  .legal-layout {
    width: calc(100% - 40px);
  }
  .legal-hero {
    padding-bottom: 44px;
  }
  .legal-hero h1 {
    font-size: clamp(40px, 11.5vw, 46px);
  }
  .legal-hero .legal-title--imprint,
  .legal-hero .legal-title--privacy {
    transform: translateY(-15px);
    font-size: 50px;
  }
  .legal-hero .legal-eyebrow {
    font-size: 8.5px;
  }
  .legal-hero .legal-eyebrow--imprint,
  .legal-hero .legal-eyebrow--privacy {
    font-size: 7.5px;
  }
  .legal-hero > p:not(.legal-eyebrow):last-child {
    font-size: 13px;
    line-height: 1.65;
  }
  .legal-layout {
    gap: 46px;
    padding: 52px 0 112px;
  }
  .legal-aside {
    padding: 26px 22px 30px;
  }
  .legal-sections {
    grid-template-columns: 1fr;
  }
  .legal-section--wide {
    grid-column: auto;
  }
  .legal-section {
    padding: 26px 20px 30px;
  }
  .legal-section h2 {
    margin-bottom: 18px;
    font-size: clamp(22px, 6.2vw, 24px);
    line-height: 1.15;
  }
  .legal-section p,
  .legal-section li {
    font-size: 13px;
    line-height: 1.72;
  }
}
