/* ==========================================================================
   LEGAL pages — Privacy · Cookie · Termini
   Compact hero + editorial longform body with sticky table of contents
   ========================================================================== */
body.legal{
  background:var(--color-cream);
  color:var(--color-forest);
}

/* ============================================================
   HERO — compact forest band matching post-hero aesthetic
   ============================================================ */
.legal-hero{
  position:relative;
  padding:calc(var(--nav-h) + 32px) 0 60px;
  background:
    radial-gradient(circle at 22% 30%, rgba(155,203,156,.22), transparent 55%),
    radial-gradient(circle at 88% 16%, rgba(232,231,183,.14), transparent 48%),
    linear-gradient(180deg,#2B3D35 0%, #41594C 100%);
  color:var(--color-cream);overflow:hidden;isolation:isolate;text-align:center;
}
.legal-hero > .container{
  display:flex;flex-direction:column;align-items:center;max-width:var(--rail);
}
.legal-hero__crumbs{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--font-sans);font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;
  color:rgba(255,253,250,.6);margin-bottom:22px;
}
.legal-hero__crumbs a{color:inherit;transition:color .3s}
.legal-hero__crumbs a:hover{color:var(--color-sage)}
.legal-hero__crumbs span{opacity:.4}
.legal-hero__badge{
  display:inline-block;padding:6px 14px;border-radius:999px;
  background:rgba(155,203,156,.24);color:var(--color-sage);
  font-family:var(--font-sans);font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;
  margin-bottom:20px;
}
.legal-hero__title{
  font-family:var(--title-font);font-weight:var(--title-weight);
  font-size:clamp(40px,5vw,80px);line-height:1.02;letter-spacing:-.015em;
  text-align:center;max-width:var(--measure-display-wide);
}
.legal-hero__title em{font-style:italic;color:var(--color-sage)}
.legal-hero__sub{
  margin:22px auto 0;font-family:var(--font-sans);font-weight:var(--lede-weight);
  font-size:var(--lede-size);line-height:var(--lede-lh);color:var(--prose-on-dark);max-width:var(--measure-lede);
}
.legal-hero__meta{
  margin-top:28px;padding-top:22px;border-top:1px solid rgba(255,253,250,.12);
  display:flex;justify-content:center;gap:20px 32px;flex-wrap:wrap;
  font-family:var(--font-sans);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(255,253,250,.62);
  width:100%;max-width:720px;
}

/* ============================================================
   BODY — 2-col with sticky table of contents + rich article
   ============================================================ */
.legal-body{
  padding:clamp(64px,8vw,96px) 0 clamp(80px,10vw,120px);
  background:var(--color-cream);
}
.legal-body__grid{
  display:grid;grid-template-columns:250px 1fr;gap:clamp(40px,6vw,80px);
  max-width:1160px;margin:0 auto;padding:0 clamp(20px,4vw,48px);
}
/* Sticky TOC */
.legal-toc{
  position:sticky;top:calc(var(--nav-h) + 24px);
  align-self:start;
  padding:22px 0;
  border-top:1px solid var(--color-line);
}
.legal-toc__label{
  font-family:var(--font-sans);font-size:10.5px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;
  color:var(--color-forest);opacity:.55;margin-bottom:18px;
}
.legal-toc__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.legal-toc__list li{margin:0;padding:0}
.legal-toc__list a{
  display:block;padding:8px 14px 8px 16px;border-left:2px solid var(--color-line);
  font-family:var(--font-sans);font-size:13.5px;line-height:1.45;
  color:var(--color-forest-700);transition:color .25s,border-color .25s,background .25s,padding-left .25s;
}
.legal-toc__list a:hover{
  color:var(--color-forest-900);border-color:var(--color-sage);
  background:rgba(155,203,156,.08);padding-left:20px;
}
.legal-toc__list a.is-active{
  color:var(--color-forest-900);border-color:var(--color-forest);font-weight:500;
}

/* Article body */
.legal-article{
  max-width:720px;
}
.legal-article section + section{margin-top:56px}
.legal-article h2{
  font-family:var(--title-font);font-weight:var(--title-weight);
  font-size:clamp(26px,2.6vw,36px);line-height:1.2;letter-spacing:-.01em;
  color:var(--color-forest-900);margin-bottom:20px;
  padding-top:6px;
  scroll-margin-top:calc(var(--nav-h) + 24px);
}
.legal-article h2 em{font-style:italic;color:var(--color-forest)}
.legal-article h2::before{
  content:attr(data-num);display:block;
  font-family:var(--font-sans);font-size:11px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;
  color:var(--color-sage-700);margin-bottom:10px;
}
.legal-article h3{
  font-family:var(--font-sans);font-weight:700;
  font-size:16px;line-height:1.3;letter-spacing:-.002em;
  color:var(--color-forest-900);margin:28px 0 12px;
}
.legal-article p{
  font-family:var(--font-sans);font-weight:350;
  font-size:16px;line-height:1.75;color:var(--color-forest-700);
  margin-bottom:16px;
}
.legal-article p strong{color:var(--color-forest-900);font-weight:600}
.legal-article p em{font-style:italic;color:var(--color-forest)}
.legal-article a{
  color:var(--color-forest);text-decoration:underline;text-underline-offset:3px;
  text-decoration-color:color-mix(in srgb,var(--color-forest) 45%, transparent);
  transition:text-decoration-color .25s,color .25s;
}
.legal-article a:hover{color:var(--color-sage-700);text-decoration-color:currentColor}
.legal-article ul,.legal-article ol{
  font-family:var(--font-sans);font-weight:350;
  font-size:16px;line-height:1.7;color:var(--color-forest-700);
  margin:0 0 16px 0;padding-left:24px;
}
.legal-article ul li,.legal-article ol li{margin-bottom:8px}
.legal-article ul li::marker{color:var(--color-sage-700)}
.legal-article ol li::marker{color:var(--color-sage-700);font-weight:600}

/* Inline callout box */
.legal-callout{
  margin:24px 0;padding:22px 26px;border-radius:14px;
  background:rgba(155,203,156,.1);border:1px solid rgba(62,107,58,.18);
  border-left:3px solid var(--color-sage-700);
  font-family:var(--font-sans);font-size:14.5px;line-height:1.65;color:var(--color-forest);
}
.legal-callout strong{display:block;color:var(--color-forest-900);font-weight:600;margin-bottom:4px}

/* Data table for cookies listing */
.legal-table-wrap{overflow-x:auto;margin:18px 0 24px;border-radius:10px;border:1px solid var(--color-line)}
.legal-table{
  width:100%;border-collapse:collapse;font-family:var(--font-sans);font-size:14px;
}
.legal-table thead{background:rgba(155,203,156,.14)}
.legal-table th{
  text-align:left;padding:12px 16px;font-weight:600;letter-spacing:.06em;
  font-size:11px;text-transform:uppercase;color:var(--color-forest-900);
  border-bottom:1px solid var(--color-line);white-space:nowrap;
}
.legal-table td{
  padding:12px 16px;color:var(--color-forest-700);line-height:1.5;
  border-bottom:1px solid var(--color-line);
}
.legal-table tr:last-child td{border-bottom:0}
.legal-table td code{
  font-family:ui-monospace,"SF Mono",Consolas,monospace;font-size:12.5px;
  background:rgba(65,89,76,.08);padding:2px 6px;border-radius:4px;color:var(--color-forest-900);
}

/* Contact box at bottom */
.legal-contact{
  margin-top:56px;padding:28px 32px;border-radius:18px;
  background:linear-gradient(135deg,var(--color-cream-warm,#F6F1E7),#FFFDFA);
  border:1px solid var(--color-line);
  display:flex;gap:20px;align-items:center;flex-wrap:wrap;
}
.legal-contact__text{flex:1;min-width:240px}
.legal-contact__text strong{display:block;font-family:var(--font-display);font-style:italic;font-size:22px;color:var(--color-forest-900);margin-bottom:6px;font-weight:400}
.legal-contact__text p{font-family:var(--font-sans);font-size:var(--body-sm-size);line-height:var(--body-sm-lh);color:var(--prose-ink);margin:0;font-weight:var(--body-sm-weight);}
.legal-contact__cta{
  display:inline-flex;align-items:center;gap:10px;
  padding:14px 22px;border-radius:999px;
  background:var(--color-forest);color:var(--color-cream);
  font-family:var(--font-sans);font-weight:500;font-size:13.5px;letter-spacing:.01em;
  transition:background .3s,transform .3s;
  flex:none;
}
.legal-contact__cta:hover{background:var(--color-forest-900);transform:translateY(-2px)}
.legal-contact__cta::after{content:"→"}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:960px){
  .legal-body__grid{grid-template-columns:1fr;gap:32px}
  .legal-toc{position:static;border-top:0;padding:0 0 8px;
    border-bottom:1px solid var(--color-line);margin-bottom:12px;padding-bottom:18px}
  .legal-toc__list{flex-direction:row;flex-wrap:wrap;gap:6px}
  .legal-toc__list a{padding:6px 12px;border-left:0;
    background:var(--color-cream-warm,#F6F1E7);border-radius:999px;font-size:12.5px}
  .legal-toc__list a:hover,.legal-toc__list a.is-active{padding-left:12px;background:var(--color-sage);color:var(--color-forest-900)}
}
@media (max-width:640px){
  .legal-hero{padding:calc(var(--nav-h) + 24px) 0 48px}
  .legal-hero__title{font-size:clamp(32px,8vw,48px)}
  .legal-hero__sub{font-size:15.5px}
  .legal-hero__meta{gap:10px 18px;padding-top:18px;margin-top:22px;font-size:11px}
  .legal-article h2{font-size:24px}
  .legal-article p,.legal-article ul,.legal-article ol{font-size:15.5px}
  .legal-contact{flex-direction:column;align-items:flex-start}
}
