.legal-page {
  background:
    linear-gradient(90deg, transparent 0, transparent calc(50% - 1px), rgba(13, 42, 32, .035) 50%, transparent calc(50% + 1px)),
    var(--recovery-paper);
}

.legal-hero {
  position: relative;
  min-height: 530px;
  padding: 168px 0 76px;
  overflow: hidden;
  color: white;
  background:
    radial-gradient(circle at 82% 25%, rgba(185, 200, 173, .18), transparent 28%),
    var(--recovery-deep);
}

.legal-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .12;
  background-image:
    linear-gradient(rgba(255, 255, 255, .16) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .16) 1px, transparent 1px);
  background-size: 96px 96px;
  mask-image: linear-gradient(90deg, black, transparent 76%);
  pointer-events: none;
}

.legal-hero::after {
  content: attr(data-document-number);
  position: absolute;
  right: -2vw;
  bottom: -8.4vw;
  color: rgba(255, 255, 255, .035);
  font-family: var(--recovery-serif);
  font-size: clamp(280px, 34vw, 560px);
  letter-spacing: -.08em;
  line-height: .8;
  pointer-events: none;
}

.legal-hero-inner { position: relative; z-index: 1; }
.legal-hero .recovery-breadcrumb { margin-bottom: 42px; }
.legal-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) 230px; gap: 8vw; align-items: end; }
.legal-hero h1 { max-width: 940px; margin: 0; font-family: var(--recovery-serif); font-size: clamp(72px, 9vw, 136px); font-weight: 400; letter-spacing: -.057em; line-height: .82; }
.legal-hero h1 em { color: var(--recovery-sage-soft); font-weight: 400; }
.legal-hero-side { padding: 18px 0 4px; border-top: 1px solid rgba(255, 255, 255, .28); }
.legal-hero-side span { display: block; color: var(--recovery-sage); font-family: var(--recovery-mono); font-size: 8px; letter-spacing: .12em; text-transform: uppercase; }
.legal-hero-side p { margin: 17px 0 0; color: rgba(255, 255, 255, .63); font-size: 12px; line-height: 1.65; }

.legal-meta {
  color: white;
  background: var(--recovery-forest);
  border-top: 1px solid var(--recovery-line-light);
}

.legal-meta-inner { display: grid; grid-template-columns: repeat(3, 1fr); }
.legal-meta-inner > div { min-height: 92px; padding: 22px 24px; display: flex; flex-direction: column; justify-content: center; gap: 7px; border-right: 1px solid var(--recovery-line-light); }
.legal-meta-inner > div:first-child { border-left: 1px solid var(--recovery-line-light); }
.legal-meta span { color: var(--recovery-sage); font-family: var(--recovery-mono); font-size: 8px; letter-spacing: .1em; text-transform: uppercase; }
.legal-meta strong { font-size: 12px; font-weight: 500; }

.legal-body { padding: clamp(82px, 9vw, 132px) 0; }
.legal-layout { display: grid; grid-template-columns: 240px minmax(0, 800px); gap: clamp(58px, 9vw, 130px); justify-content: center; align-items: start; }

.legal-toc { position: sticky; top: 112px; }
.legal-toc > span { display: block; padding-bottom: 17px; color: var(--recovery-mid); border-bottom: 1px solid var(--recovery-line); font-family: var(--recovery-mono); font-size: 9px; font-weight: 600; letter-spacing: .11em; text-transform: uppercase; }
.legal-toc ol { margin: 0; padding: 13px 0 0; list-style: none; counter-reset: legal-toc; }
.legal-toc li { counter-increment: legal-toc; }
.legal-toc a { padding: 6px 0; display: grid; grid-template-columns: 27px 1fr; gap: 8px; color: var(--recovery-muted); font-size: 10px; line-height: 1.4; transition: color 160ms ease, transform 160ms ease; }
.legal-toc a::before { content: counter(legal-toc, decimal-leading-zero); color: var(--recovery-mid); font-family: var(--recovery-mono); font-size: 8px; }
.legal-toc a:hover { color: var(--recovery-forest); transform: translateX(3px); }
.legal-toc-help { margin-top: 25px; padding-top: 20px; border-top: 1px solid var(--recovery-line); }
.legal-toc-help p { margin: 0 0 11px; color: var(--recovery-muted); font-size: 10px; }
.legal-toc-help a { display: inline-flex; grid-template-columns: none; padding: 0 0 3px; color: var(--recovery-forest); border-bottom: 1px solid currentColor; font-family: var(--recovery-mono); font-size: 8px; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; }
.legal-toc-help a::before { display: none; }

.legal-document { min-width: 0; }
.legal-intro { margin: 0 0 58px; padding: 32px 34px; background: var(--recovery-ivory); border: 1px solid var(--recovery-line); box-shadow: 13px 13px 0 rgba(185, 200, 173, .2); }
.legal-intro p { margin: 0; color: #465149; font-family: var(--recovery-serif); font-size: clamp(25px, 2.7vw, 35px); letter-spacing: -.02em; line-height: 1.18; }
.legal-intro p + p { margin-top: 18px; color: var(--recovery-muted); font-family: var(--recovery-sans); font-size: 12px; letter-spacing: 0; line-height: 1.7; }

.legal-section { padding: 48px 0 52px; border-top: 1px solid var(--recovery-line); scroll-margin-top: 108px; }
.legal-section:last-child { padding-bottom: 0; }
.legal-section-number { display: block; margin-bottom: 16px; color: var(--recovery-mid); font-family: var(--recovery-mono); font-size: 9px; font-weight: 600; letter-spacing: .11em; text-transform: uppercase; }
.legal-section h2 { margin: 0 0 24px; color: var(--recovery-forest); font-family: var(--recovery-serif); font-size: clamp(38px, 4vw, 53px); font-weight: 400; letter-spacing: -.035em; line-height: .98; }
.legal-section h3 { margin: 32px 0 12px; color: var(--recovery-ink); font-size: 14px; font-weight: 700; line-height: 1.4; }
.legal-section p, .legal-section li { color: var(--recovery-muted); font-size: 13px; line-height: 1.78; }
.legal-section p { margin: 0 0 17px; }
.legal-section p:last-child { margin-bottom: 0; }
.legal-section ul, .legal-section ol { margin: 18px 0 22px; padding-left: 21px; }
.legal-section li { padding-left: 6px; }
.legal-section li + li { margin-top: 9px; }
.legal-section strong { color: #354039; }
.legal-section a { color: var(--recovery-mid); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }

.legal-definition-list { margin: 24px 0; border-top: 1px solid var(--recovery-line); }
.legal-definition-list > div { padding: 20px 0; display: grid; grid-template-columns: minmax(145px, .38fr) 1fr; gap: 28px; border-bottom: 1px solid var(--recovery-line); }
.legal-definition-list dt { color: var(--recovery-forest); font-family: var(--recovery-mono); font-size: 9px; font-weight: 600; letter-spacing: .06em; line-height: 1.6; text-transform: uppercase; }
.legal-definition-list dd { margin: 0; color: var(--recovery-muted); font-size: 12px; line-height: 1.72; }

.legal-callout { margin: 27px 0; padding: 22px 24px; color: #3d4a42; background: #e8ece3; border-left: 3px solid var(--recovery-moss); }
.legal-callout strong { display: block; margin-bottom: 7px; color: var(--recovery-forest); font-family: var(--recovery-mono); font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.legal-callout p { margin: 0; color: inherit; font-size: 12px; }
.legal-callout-danger { background: #eee8dc; border-left-color: #9b7657; }

.legal-acknowledgements { margin: 24px 0 0 !important; padding: 0 !important; list-style: none; border-top: 1px solid var(--recovery-line); }
.legal-acknowledgements li { position: relative; margin: 0 !important; padding: 19px 0 19px 42px; border-bottom: 1px solid var(--recovery-line); }
.legal-acknowledgements li::before { content: counter(acknowledgement, decimal-leading-zero); position: absolute; left: 0; top: 19px; width: 24px; height: 24px; display: grid; place-items: center; color: var(--recovery-mid); background: transparent; font-family: var(--recovery-mono); font-size: 9px; }

.legal-contact-card { margin-top: 30px; padding: 30px; display: grid; grid-template-columns: 1fr auto; gap: 30px; align-items: center; color: white; background: var(--recovery-forest); }
.legal-contact-card p { margin: 0; color: rgba(255, 255, 255, .64); font-size: 12px; }
.legal-contact-card strong { display: block; margin-bottom: 6px; color: white; font-family: var(--recovery-serif); font-size: 28px; font-weight: 400; }
.legal-contact-card .recovery-button { min-width: 210px; color: var(--recovery-deep); text-decoration: none; }

.legal-related { padding: clamp(72px, 8vw, 108px) 0; background: var(--recovery-ivory); border-top: 1px solid var(--recovery-line); }
.legal-related-head { margin-bottom: 36px; display: flex; align-items: end; justify-content: space-between; gap: 28px; }
.legal-related h2 { margin: 0; font-family: var(--recovery-serif); font-size: clamp(46px, 5vw, 72px); font-weight: 400; letter-spacing: -.04em; line-height: .94; }
.legal-related-head p { max-width: 360px; margin: 0 0 5px; color: var(--recovery-muted); font-size: 12px; }
.legal-related-grid { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--recovery-line); border-left: 1px solid var(--recovery-line); }
.legal-related-card { min-height: 215px; padding: 26px; display: flex; flex-direction: column; background: var(--recovery-paper); border-right: 1px solid var(--recovery-line); border-bottom: 1px solid var(--recovery-line); transition: color 180ms ease, background 180ms ease, transform 180ms ease; }
.legal-related-card:hover { color: white; background: var(--recovery-forest); transform: translateY(-4px); }
.legal-related-card span { color: var(--recovery-mid); font-family: var(--recovery-mono); font-size: 8px; letter-spacing: .1em; text-transform: uppercase; }
.legal-related-card:hover span { color: var(--recovery-sage); }
.legal-related-card h3 { margin: auto 0 10px; font-family: var(--recovery-serif); font-size: 37px; font-weight: 400; line-height: 1; }
.legal-related-card p { margin: 0; color: var(--recovery-muted); font-size: 11px; }
.legal-related-card:hover p { color: rgba(255, 255, 255, .63); }

.recovery-footer-legal a { color: rgba(255, 255, 255, .74); text-decoration: underline; text-underline-offset: 3px; }
.recovery-footer-meta { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 4px 12px; }
.recovery-footer-meta .legal-copyright { width: 100%; text-align: right; }

@media (max-width: 800px) {
  .legal-hero { min-height: 550px; padding: 140px 0 66px; }
  .legal-hero-grid { grid-template-columns: 1fr; gap: 46px; }
  .legal-hero h1 { font-size: clamp(68px, 18vw, 100px); }
  .legal-hero-side { max-width: 330px; }
  .legal-meta-inner { grid-template-columns: 1fr; }
  .legal-meta-inner > div, .legal-meta-inner > div:first-child { min-height: 75px; padding-inline: 0; border-left: 0; border-right: 0; border-bottom: 1px solid var(--recovery-line-light); }
  .legal-layout { grid-template-columns: 1fr; gap: 55px; }
  .legal-toc { position: static; padding: 23px; background: var(--recovery-ivory); border: 1px solid var(--recovery-line); }
  .legal-toc ol { columns: 2; column-gap: 30px; }
  .legal-toc li { break-inside: avoid; }
  .legal-contact-card { grid-template-columns: 1fr; }
  .legal-contact-card .recovery-button { width: 100%; }
  .legal-related-head { align-items: start; flex-direction: column; }
  .recovery-footer-meta { justify-content: flex-start; }
  .recovery-footer-meta .legal-copyright { text-align: left; }
}

@media (max-width: 540px) {
  .legal-hero { min-height: 590px; }
  .legal-hero .recovery-breadcrumb { margin-bottom: 35px; }
  .legal-hero h1 { font-size: clamp(61px, 19vw, 82px); }
  .legal-toc ol { columns: 1; }
  .legal-intro { padding: 25px; box-shadow: 8px 8px 0 rgba(185, 200, 173, .2); }
  .legal-section { padding: 40px 0 44px; }
  .legal-definition-list > div { grid-template-columns: 1fr; gap: 8px; }
  .legal-related-grid { grid-template-columns: 1fr; }
  .legal-related-card { min-height: 190px; }
}

@media print {
  .recovery-header, .legal-toc, .legal-related, .recovery-footer { display: none !important; }
  .legal-page { background: white; }
  .legal-hero { min-height: 0; padding: 30px 0; color: #111; background: white; border-bottom: 2px solid #111; }
  .legal-hero::before, .legal-hero::after, .legal-hero-side, .legal-hero .recovery-breadcrumb { display: none; }
  .legal-hero h1 { font-size: 54px; }
  .legal-hero h1 em { color: inherit; }
  .legal-meta { color: #111; background: white; }
  .legal-meta-inner { grid-template-columns: repeat(3, 1fr); }
  .legal-meta-inner > div, .legal-meta-inner > div:first-child { min-height: 0; padding: 14px 0; border: 0; }
  .legal-meta span { color: #333; }
  .legal-body { padding: 34px 0; }
  .legal-layout { display: block; }
  .legal-intro { box-shadow: none; }
  .legal-section { break-inside: avoid-page; }
}

@media screen {
  .legal-page,
  .legal-hero {
    background-image: none !important;
  }

  .legal-hero {
    background: var(--recovery-deep);
  }

  .legal-hero::before,
  .legal-hero::after {
    display: none;
  }

  .legal-intro,
  .legal-related-card {
    box-shadow: none;
    border-radius: 0;
  }

  .legal-toc a,
  .legal-related-card {
    transition: none;
  }

  .legal-toc a:hover,
  .legal-related-card:hover {
    transform: none;
  }

  .legal-callout,
  .legal-callout-danger {
    border: 1px solid var(--recovery-line);
  }

  .legal-acknowledgements {
    counter-reset: acknowledgement;
  }

  .legal-acknowledgements li {
    counter-increment: acknowledgement;
  }

  .legal-acknowledgements li::before {
    content: counter(acknowledgement, decimal-leading-zero);
    color: var(--recovery-mid);
    background: transparent;
    border-radius: 0;
  }
}
