/* Bello design system — shared tokens + components. Documented in design-system.html */
:root{
  /* colour */
  --cream:#fcf3ea; --sand:#f3e2cf; --peach:#f7cdb4; --white:#ffffff;
  --brown:#4a3f3a;        /* text, 9.3:1 on cream */
  --muted:#6b5d55;        /* secondary text, 5.8:1 on cream, 5.0:1 on sand */
  --terra:#c47763;        /* brand: display text ≥24px, graphics, fills */
  --accent:#8f4e3c;       /* small accent text + hover, 5.8:1 on cream, 5.0:1 on sand */
  --line:rgba(74,63,58,.16);
  /* type */
  --font-serif:'Cormorant Garamond',Georgia,serif;
  --font-sans:Montserrat,system-ui,sans-serif;
  --font-script:'Playwrite US Modern',cursive;
  --fs-display:clamp(3.5rem,9vw,6.5rem);
  --fs-h1:clamp(3rem,6vw,4.5rem);
  --fs-h2:clamp(2.25rem,4.5vw,3.5rem);
  --fs-h3:1.75rem;
  --fs-lead:1.125rem;
  --fs-body:1rem;
  --fs-small:.875rem;
  --fs-eyebrow:.75rem;
  /* space + shape */
  --space-section:clamp(72px,10vw,128px);
  --radius:24px; --radius-pill:999px;
}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
body{font-family:var(--font-sans);font-weight:400;font-size:var(--fs-body);line-height:1.7;background:var(--cream);color:var(--brown);-webkit-font-smoothing:antialiased}
img{max-width:100%}

/* headings: one scale, used everywhere */
h1,h2,h3,.display{font-family:var(--font-serif);font-weight:500;line-height:1.08;letter-spacing:-.01em}
.display{font-size:var(--fs-display);letter-spacing:-.02em}
h1{font-size:var(--fs-h1)}
h2{font-size:var(--fs-h2);margin-bottom:.4em}
h3{font-size:var(--fs-h3);font-weight:600;margin-bottom:.4em;line-height:1.15}
.lead{font-size:var(--fs-lead);color:var(--muted);max-width:34em}
.small{font-size:var(--fs-small);color:var(--muted)}
.eyebrow{font-size:var(--fs-eyebrow);letter-spacing:.28em;text-transform:uppercase;color:var(--accent);font-weight:600;margin-bottom:1.25rem}
.script{font-family:var(--font-script);font-weight:400;font-size:.78em;color:var(--terra)}
em.tone{color:var(--terra)}

/* layout */
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}
.wrap.narrow{max-width:1000px}
section{padding:var(--space-section) 0}
.alt{background:var(--sand)}
.center{text-align:center}.center .lead{margin-inline:auto}
.grid{display:grid;gap:24px;margin-top:3rem}
.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,7vw,80px);align-items:center}

/* components */
.btn{display:inline-block;background:var(--brown);color:var(--cream);padding:15px 34px;border-radius:var(--radius-pill);text-decoration:none;font:600 var(--fs-small)/1 var(--font-sans);letter-spacing:.14em;text-transform:uppercase;border:0;cursor:pointer;transition:background .25s,transform .25s}
.btn:hover{background:var(--accent)}
.btn.ghost{background:transparent;color:var(--brown);box-shadow:inset 0 0 0 1.5px var(--brown)}
.btn.ghost:hover{background:var(--brown);color:var(--cream)}
.btn:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.card{background:var(--white);border-radius:var(--radius);padding:32px;box-shadow:0 10px 30px -18px rgba(74,63,58,.25)}
.card p{color:var(--muted)}
.chip{display:inline-block;background:var(--peach);color:var(--brown);padding:6px 14px;border-radius:var(--radius-pill);font-size:var(--fs-eyebrow);font-weight:600;letter-spacing:.04em;margin:0 8px 8px 0}
.stat-num{font-family:var(--font-serif);font-size:var(--fs-h2);line-height:1;color:var(--terra);font-weight:500}
input[type=email]{padding:15px 24px;border-radius:var(--radius-pill);border:1.5px solid rgba(74,63,58,.4);background:var(--white);font:inherit;font-size:var(--fs-small);min-width:280px;color:var(--brown)}
.ticks{list-style:none;padding:0;margin-top:1.5rem}
.ticks li{padding:14px 0;border-top:1px solid var(--line)}
.ticks li:last-child{border-bottom:1px solid var(--line)}
.reveal{opacity:0;transform:translateY(20px);transition:opacity .9s,transform .9s}
.reveal.in{opacity:1;transform:none}

@media(max-width:860px){.g3,.g4{grid-template-columns:1fr 1fr}.split{grid-template-columns:1fr}}
@media(max-width:560px){.g2,.g3,.g4{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}
