/* ============================================================
   LEGAL / POLICY PAGES
   Tokens (--bg, --gold, --text, fonts…) come from css/styles.css,
   loaded before this file. Deliberately restrained relative to the
   marketing pages — legal readability takes priority over
   decorative design: no cards-on-cards, no gradients, no motion.
============================================================ */

.legal-body{
  background-color:var(--bg);
  background-image:none;
}

.legal-topbar{
  border-bottom:1px solid var(--border);
  background:var(--bg-1);
}
.legal-topbar-inner{
  max-width:1040px;
  margin:0 auto;
  padding:18px 24px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}
.legal-brand{display:flex;align-items:center;gap:12px;}
.legal-brand-mark{width:24px;height:auto;display:block;}
.legal-brand-word{
  font-family:'Fraunces',serif;
  font-weight:700;
  font-size:1rem;
  letter-spacing:.12em;
  color:var(--text);
}
.legal-back{
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:.74rem;
  color:var(--text-dim);
  display:inline-flex;
  align-items:center;
  gap:6px;
  letter-spacing:.02em;
}
.legal-back:hover{color:var(--gold-bright);}
.legal-back .icon{width:14px;height:14px;}

.legal-shell{
  max-width:760px;
  margin:0 auto;
  padding:56px 24px 90px;
}

.legal-kicker{
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:.72rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--gold-bright);
  margin:0 0 14px;
}
.legal-h1{
  font-family:'Fraunces',serif;
  font-weight:600;
  font-size:clamp(2rem, 4.2vw, 2.6rem);
  line-height:1.12;
  letter-spacing:-0.01em;
  color:var(--text);
  margin:0 0 14px;
}
.legal-dek{
  font-size:1rem;
  color:var(--text-dim);
  line-height:1.6;
  max-width:600px;
  margin:0 0 20px;
}
.legal-meta{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:14px;
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:.72rem;
  color:var(--text-faint);
  padding-bottom:28px;
  margin-bottom:32px;
  border-bottom:1px solid var(--border);
}
.legal-meta b{color:var(--text-dim);font-weight:500;}

/* ---- table of contents ---- */
.legal-toc{
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
  padding:18px 22px;
  margin-bottom:40px;
  background:var(--bg-card);
}
.legal-toc-label{
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:.68rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--text-faint);
  margin:0 0 12px;
}
.legal-toc ol{
  margin:0;
  padding:0;
  list-style:none;
  columns:2;
  column-gap:28px;
}
.legal-toc li{break-inside:avoid;margin-bottom:8px;}
.legal-toc a{
  font-size:.86rem;
  color:var(--text-dim);
  line-height:1.5;
}
.legal-toc a:hover{color:var(--gold-bright);}
@media (max-width:560px){.legal-toc ol{columns:1;}}

/* ---- body copy ---- */
.legal-content{font-size:.96rem;line-height:1.7;color:var(--text-dim);}
.legal-content h2{
  font-family:'Fraunces',serif;
  font-weight:600;
  font-size:1.34rem;
  color:var(--text);
  margin:44px 0 14px;
  scroll-margin-top:24px;
}
.legal-content h2:first-of-type{margin-top:0;}
.legal-content h3{
  font-family:'Inter',sans-serif;
  font-weight:700;
  font-size:.98rem;
  color:var(--text);
  margin:26px 0 10px;
  scroll-margin-top:24px;
}
.legal-content p{margin:0 0 14px;}
.legal-content ul,.legal-content ol{margin:0 0 14px;padding-left:22px;}
.legal-content li{margin-bottom:7px;}
.legal-content a{color:var(--gold-bright);text-decoration:underline;text-decoration-color:rgba(226,192,127,0.35);text-underline-offset:2px;}
.legal-content a:hover{text-decoration-color:var(--gold-bright);}
.legal-content strong{color:var(--text);font-weight:600;}
.legal-content table{width:100%;border-collapse:collapse;margin:0 0 18px;font-size:.88rem;}
.legal-content th{
  text-align:left;font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  color:var(--gold-bright);padding:9px 12px;border-bottom:1px solid var(--border-strong);white-space:nowrap;
}
.legal-content td{padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:top;color:var(--text-dim);}
.legal-content tr:last-child td{border-bottom:none;}

/* ---- inline "not yet decided" marker — used ONLY where a real
   business/legal decision has not been made; never a generic
   placeholder for lazy content. Deliberately understated: a dashed
   rule and a mono tag, not a warning banner. ---- */
.legal-todo{
  display:block;
  border:1px dashed rgba(214,168,62,0.4);
  border-radius:8px;
  padding:12px 14px;
  margin:10px 0 16px;
  background:rgba(214,168,62,0.05);
  font-size:.86rem;
  color:var(--text-dim);
}
.legal-todo-tag{
  display:inline-block;
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:.62rem;
  font-weight:600;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--gold-bright);
  margin-bottom:5px;
}

.legal-contact-box{
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
  padding:20px 22px;
  margin:28px 0;
  background:var(--bg-card);
}
.legal-contact-box p{margin:0 0 8px;}
.legal-contact-box p:last-child{margin-bottom:0;}

.legal-footnote{
  margin-top:56px;
  padding-top:20px;
  border-top:1px solid var(--border);
  font-size:.78rem;
  color:var(--text-faint);
  line-height:1.6;
}

/* ============================================================
   GLOBAL FOOTER — used on public-facing pages only (marketing,
   auth, legal). Deliberately quiet: no card, no gradient, small
   type — a utility strip, not a design moment.
============================================================ */
.site-footer{
  border-top:1px solid var(--border);
  padding:28px 24px 34px;
  margin-top:40px;
}
.site-footer-inner{
  max-width:1040px;
  margin:0 auto;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}
.site-footer-links{
  display:flex;
  flex-wrap:wrap;
  gap:6px 20px;
}
.site-footer-links a{
  font-size:.78rem;
  color:var(--text-faint);
}
.site-footer-links a:hover{color:var(--gold-bright);}
.site-footer-copy{
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:.7rem;
  color:var(--text-faint);
  letter-spacing:.02em;
}
@media (max-width:640px){
  .site-footer-inner{flex-direction:column;align-items:flex-start;}
}

/* Pre-checkout / pre-account-creation legal notice — small print
   under a CTA, not a blocking modal or a checkbox. */
.legal-consent-note{
  font-size:.76rem;
  color:var(--text-faint);
  line-height:1.55;
  margin-top:12px;
  max-width:420px;
}
.legal-consent-note a{color:var(--text-dim);text-decoration:underline;text-decoration-color:var(--border-strong);text-underline-offset:2px;}
.legal-consent-note a:hover{color:var(--gold-bright);}
