/* Legal pages (Terms, Privacy). Light, long-form reading layout. */
.legal-page {
  --legal-navy:#031426;
  --legal-cyan:#28c8dd;
  --legal-link:#0d7f8f;
  position:relative;
  padding:calc(var(--header-height,112px) + clamp(56px,7vw,96px)) 0 clamp(88px,9vw,132px);
  color:var(--legal-navy);
  background:#f4f8f9;
}
.legal-page__inner {
  width:min(calc(100% - (var(--page-gutter) * 2)),1080px);
  margin-inline:auto;
}

/* Content plus a sticky index, so the right side carries something useful. */
.legal-page__body {
  display:grid;
  grid-template-columns:minmax(0,1fr) 232px;
  gap:clamp(40px,5vw,72px);
  align-items:start;
}

.legal-page__head { max-width:760px; margin:0 0 clamp(40px,4.5vw,62px); }
.legal-page__eyebrow {
  margin:0 0 var(--section-heading-gap);
  color:var(--legal-link);
  font:var(--weight-medium) var(--type-label)/1 var(--font-body);
  letter-spacing:var(--tracking-label);
}
.legal-page__head h1 {
  margin:0;
  font:var(--weight-medium) var(--section-title-size)/var(--section-title-line-height) var(--font-heading);
  letter-spacing:var(--section-title-letter-spacing);
}
.legal-page__meta {
  margin:22px 0 0;
  color:rgba(3,20,38,.58);
  font:var(--weight-regular) var(--type-body-sm)/var(--leading-body) var(--font-body);
}
.legal-page__lede {
  max-width:720px;
  margin:26px 0 0;
  color:rgba(3,20,38,.72);
  font:var(--weight-regular) var(--type-body-lg)/var(--leading-body) var(--font-body);
}

/* 70ch keeps the measure in the comfortable reading range. */
.legal-content { max-width:70ch; }
.legal-content--centred { margin-inline:auto; }
.legal-content section { margin:0 0 clamp(34px,3.6vw,46px); }
.legal-content h2 {
  margin:0 0 14px;
  color:var(--legal-navy);
  font:var(--weight-medium) clamp(19px,1.5vw,23px)/1.3 var(--font-heading);
  letter-spacing:-.02em;
}
.legal-content h2 .legal-content__num {
  display:inline-block;
  min-width:2.2em;
  color:var(--legal-link);
  font-variant-numeric:tabular-nums;
}
.legal-content p,
.legal-content li {
  color:rgba(3,20,38,.76);
  font:var(--weight-regular) var(--type-body-md)/var(--leading-body) var(--font-body);
}
.legal-content p { margin:0 0 14px; }
.legal-content p:last-child { margin-bottom:0; }
.legal-content ul { margin:0 0 14px; padding-left:1.15em; }
.legal-content li { margin:0 0 8px; }
.legal-content a { color:var(--legal-link); text-underline-offset:4px; }
.legal-content a:hover { color:var(--legal-navy); }
.legal-content strong { font-weight:var(--weight-semibold); color:var(--legal-navy); }

/* Anything still needing a real-world value before launch. */
.legal-placeholder {
  padding:2px 7px;
  border:1px dashed rgba(243,108,45,.6);
  border-radius:3px;
  background:rgba(243,108,45,.08);
  color:#b8480f;
  font-family:var(--font-body);
  font-size:.92em;
  font-weight:var(--weight-medium);
}

.legal-contact {
  margin-top:clamp(40px,4.5vw,60px);
  padding:clamp(26px,2.6vw,34px);
  border:1px solid rgba(3,20,38,.10);
  border-radius:6px;
  background:#fff;
}
.legal-contact h2 { margin:0 0 10px; }
.legal-contact a { font-weight:var(--weight-medium); }

/* Sticky "on this page" index, built from the headings by legal.js. */
.legal-toc {
  position:sticky;
  top:calc(var(--header-height,112px) + 24px);
  padding-left:20px;
  border-left:1px solid rgba(3,20,38,.12);
}
.legal-toc__label {
  margin:0 0 16px;
  color:var(--legal-link);
  font:var(--weight-medium) var(--type-label)/1 var(--font-body);
  letter-spacing:var(--tracking-label);
}
.legal-toc ol { margin:0; padding:0; list-style:none; max-height:62svh; overflow-y:auto; }
.legal-toc li { margin:0 0 3px; }
.legal-toc a {
  display:block;
  padding:5px 0;
  color:rgba(3,20,38,.6);
  font:var(--weight-regular) var(--type-body-sm)/1.35 var(--font-body);
  text-decoration:none;
  transition:color .2s ease,transform .2s ease;
}
.legal-toc a:hover { color:var(--legal-navy); transform:translateX(2px); }
.legal-toc a.is-current { color:var(--legal-navy); font-weight:var(--weight-medium); }

@media (max-width:980px) {
  .legal-page__body { grid-template-columns:1fr; }
  .legal-toc { display:none; }
}

@media (max-width:640px) {
  .legal-page { padding-top:calc(var(--header-height,92px) + 56px); }
  .legal-content { max-width:none; }
}

@media (prefers-reduced-motion:reduce) {
  .legal-toc a { transition:none; }
  html { scroll-behavior:auto; }
}
