/* FairCharts — shared stylesheet (DEV-005).
   One stylesheet for every page so nav/footer/tokens stay consistent.
   Brand: editorial, hairline rules, one accent. See gtm/brand/brand-guide.md */

/* ---- self-hosted fonts (no Google Fonts CDN; visitor IP stays first-party) ---- */
@font-face{
  font-family:"Fraunces";
  font-style:normal;
  font-weight:400 700;            /* variable font: one file covers 400–700 */
  font-display:swap;
  src:url("/fonts/fraunces-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"Spline Sans";
  font-style:normal;
  font-weight:400 600;
  font-display:swap;
  src:url("/fonts/splinesans-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

:root{
  --paper:#f7f3ea;
  --paper-2:#efe9db;
  --ink:#1c1814;
  --ink-soft:#4a4239;
  --line:#d8cfbc;
  --accent:#d8451f;
  --before:#c0563f;
  --after:#1f7a6b;
  --after-soft:#dcebe2;
  --shadow:0 1px 0 rgba(28,24,20,.04), 0 18px 40px -24px rgba(28,24,20,.45);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:"Spline Sans",system-ui,sans-serif;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  background-image:radial-gradient(circle at 1px 1px, rgba(28,24,20,.05) 1px, transparent 0);
  background-size:26px 26px;
}
.wrap{max-width:1080px;margin:0 auto;padding:0 28px}
.serif{font-family:"Fraunces",serif}
a{color:var(--accent)}

/* ---------------- Navigation ---------------- */
header.site{border-bottom:1px solid var(--line);position:sticky;top:0;z-index:40;
  background:rgba(247,243,234,.85);backdrop-filter:blur(8px)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 0}
.logo{font-family:"Fraunces",serif;font-weight:600;font-size:22px;letter-spacing:-.01em;
  display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none}
.logo .mark{width:22px;height:22px;display:inline-block;flex:none}
.navlinks{display:flex;align-items:center;gap:26px;list-style:none}
.navlinks a{font-size:15px;font-weight:500;color:var(--ink-soft);text-decoration:none;transition:color .15s}
.navlinks a:hover,.navlinks a[aria-current="page"]{color:var(--ink)}
.nav-cta{font-size:14px;font-weight:600;color:var(--paper)!important;background:var(--ink);
  padding:9px 16px;border-radius:999px;text-decoration:none;transition:transform .15s,background .2s;white-space:nowrap}
.nav-cta:hover{transform:translateY(-1px);background:#000}
.nav-toggle{display:none;background:none;border:1px solid var(--line);border-radius:10px;
  width:42px;height:38px;cursor:pointer;align-items:center;justify-content:center}
.nav-toggle svg{width:20px;height:20px}

@media(max-width:760px){
  .nav-toggle{display:inline-flex}
  .navlinks{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;
    gap:0;background:var(--paper);border-bottom:1px solid var(--line);
    padding:8px 28px 18px;display:none}
  .navlinks.open{display:flex}
  .navlinks li{border-top:1px solid var(--line)}
  .navlinks li:first-child{border-top:none}
  .navlinks a{display:block;padding:14px 0;font-size:16px}
  .navlinks .nav-cta{display:inline-block;margin-top:14px;text-align:center}
}

/* ---------------- Footer ---------------- */
footer.site{border-top:1px solid var(--line);padding:40px 0 48px;margin-top:8px;
  font-size:14px;color:var(--ink-soft)}
.footgrid{display:flex;justify-content:space-between;flex-wrap:wrap;gap:28px}
.footgrid .brandcol{max-width:300px}
.footgrid .brandcol .logo{font-size:20px;margin-bottom:10px}
.footgrid .brandcol p{font-size:13.5px;color:var(--ink-soft)}
.footnav{display:flex;gap:56px;flex-wrap:wrap}
.footnav h4{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink);margin-bottom:12px}
.footnav ul{list-style:none}
.footnav li{margin-bottom:8px}
.footnav a{color:var(--ink-soft);text-decoration:none;transition:color .15s}
.footnav a:hover{color:var(--accent)}
.footbottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;
  margin-top:36px;padding-top:18px;border-top:1px solid var(--line);font-size:13px}
.footbottom .beta{color:var(--accent);font-weight:600}

/* ---------------- Beta badge ---------------- */
.beta-badge{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:var(--accent);
  border:1px solid var(--accent);border-radius:999px;padding:5px 12px}
.beta-badge .dot{width:7px;height:7px;border-radius:50%;background:var(--accent)}

/* ---------------- Forms / consent ---------------- */
.consent{font-size:12.5px;color:var(--ink-soft);margin-top:12px;max-width:520px;line-height:1.5}
.consent a{color:var(--ink-soft);text-decoration:underline}
.final .consent{margin-left:auto;margin-right:auto;text-align:center}

/* ---------------- Article / legal pages ---------------- */
.doc{max-width:760px;margin:0 auto;padding:56px 28px 24px}
.doc .eyebrow{font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.doc h1{font-family:"Fraunces",serif;font-weight:600;font-size:clamp(32px,5vw,48px);
  line-height:1.06;letter-spacing:-.02em;margin:14px 0 8px}
.doc .meta{font-size:13.5px;color:var(--ink-soft);margin-bottom:8px}
.doc .draftnote{border:1px solid var(--accent);border-radius:12px;background:rgba(216,69,31,.06);
  padding:14px 18px;font-size:14px;color:var(--ink);margin:22px 0 8px}
.doc h2{font-family:"Fraunces",serif;font-weight:600;font-size:clamp(22px,3vw,28px);
  letter-spacing:-.01em;margin:36px 0 10px;line-height:1.15}
.doc h3{font-size:18px;font-weight:600;margin:24px 0 8px}
.doc p,.doc li{font-size:16px;color:var(--ink);margin-bottom:14px}
.doc ul,.doc ol{padding-left:22px;margin-bottom:14px}
.doc li{margin-bottom:8px}
.doc strong{font-weight:600}
.doc table{width:100%;border-collapse:collapse;margin:8px 0 18px;font-size:14.5px}
.doc th,.doc td{text-align:left;padding:10px 12px;border:1px solid var(--line);vertical-align:top}
.doc th{background:var(--paper-2);font-weight:600}
.doc a{color:var(--accent)}
.doc hr{border:none;border-top:1px solid var(--line);margin:28px 0}

/* ---------------- FAQ ---------------- */
.faq{padding:56px 0 16px}
.faq .section-label{font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
.faq h2{font-family:"Fraunces",serif;font-weight:600;font-size:clamp(28px,4vw,40px);
  letter-spacing:-.02em;margin:12px 0 30px;max-width:640px;line-height:1.08}
.faq-item{border-top:1px solid var(--line);padding:22px 0}
.faq-item:last-child{border-bottom:1px solid var(--line)}
.faq-item h3{font-family:"Fraunces",serif;font-weight:500;font-size:19px;margin-bottom:8px}
.faq-item p{font-size:15.5px;color:var(--ink-soft);max-width:720px}
.faq-item p .lead{color:var(--ink);font-weight:500}

/* ---------------- 404 ---------------- */
.notfound{max-width:620px;margin:0 auto;padding:110px 28px 120px;text-align:center}
.notfound .code{font-family:"Fraunces",serif;font-size:clamp(64px,12vw,120px);font-weight:600;
  color:var(--accent);line-height:1;letter-spacing:-.03em}
.notfound h1{font-family:"Fraunces",serif;font-weight:600;font-size:clamp(26px,4vw,36px);
  margin:14px 0 12px;letter-spacing:-.01em}
.notfound p{color:var(--ink-soft);max-width:440px;margin:0 auto 26px}
.notfound .cta{display:inline-block;font-size:16px;font-weight:600;color:#fff;background:var(--accent);
  padding:14px 26px;border-radius:12px;text-decoration:none;transition:transform .15s,background .2s}
.notfound .cta:hover{transform:translateY(-1px);background:#c23c18}
