/* Able Minds Lab, public site.
   The palette is the app's, so the site and the thing it describes feel like
   one product. Watercolour wants warm paper, not white. */

:root{
  --paper:#FAF6EC;
  --paper-2:#F3ECDA;
  --card:#FFFDF7;
  --ink:#24301F;
  --ink-2:#4E5B45;
  --muted:#87917D;
  --rule:#DCD2BC;

  --sage:#A8BE8C;
  --moss:#5B7742;
  --forest:#2F4A3C;
  --teal:#1F4D45;
  --clay:#B5784E;
  --clay-d:#8A5A37;
  --sand:#E3CDA6;
  --sun:#E8A838;

  --r:22px;
  --shadow:0 5px 0 rgba(36,48,31,.10);
  --wrap:1120px;
}
@media (prefers-color-scheme:dark){
  :root{
    --paper:#14180F; --paper-2:#1B2116; --card:#212A1A;
    --ink:#F0EEE2; --ink-2:#C3CBB4; --muted:#8C9681; --rule:#38422B;
    --sand:#4A3E29; --shadow:0 5px 0 rgba(0,0,0,.4);
  }
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font:16px/1.6 Lexend,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  -webkit-font-smoothing:antialiased;
}
/* Gutter. Anything that also carries .wrap must set padding-top/-bottom separately,
   never the padding shorthand, or it wipes these out. .hero-in did exactly that and
   the hero text sat flush at x=0 on any window under 1120px. */
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 40px}
@media (max-width:620px){.wrap{padding:0 20px}}

h1,h2,h3,.disp{font-family:Fraunces,Georgia,serif;font-weight:900;letter-spacing:-.012em;text-wrap:balance;margin:0}
h1{font-size:clamp(34px,6.4vw,62px);line-height:1.02}
h2{font-size:clamp(23px,3.4vw,34px);line-height:1.12}
h3{font-size:19px}
p{margin:0}
a{color:inherit}

.eyebrow{font-size:11px;font-weight:700;letter-spacing:.17em;text-transform:uppercase;color:var(--moss);margin:0 0 12px}
.lede{font-size:clamp(16px,1.6vw,18.5px);color:var(--ink-2);max-width:62ch;line-height:1.62}
.quiet{color:var(--muted)}

/* ── nav ───────────────────────────────────────────────────────────── */
.nav{border-bottom:2px solid var(--rule);background:var(--paper);position:sticky;top:0;z-index:20}
.nav-in{display:flex;align-items:center;justify-content:space-between;gap:18px;height:68px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-family:Fraunces,Georgia,serif;font-weight:900;font-size:19px}
.brand img{width:34px;height:42px;object-fit:contain}
.nav-links{display:flex;gap:22px;align-items:center}
.nav-links a{text-decoration:none;font-size:14.5px;font-weight:500;color:var(--ink-2)}
.nav-links a:hover{color:var(--ink)}
@media (max-width:620px){.nav-links a:not(.btn){display:none}}

/* ── buttons ───────────────────────────────────────────────────────── */
.btn,.btn-ghost{
  display:inline-flex;align-items:center;gap:8px;text-decoration:none;
  font-family:Fraunces,Georgia,serif;font-weight:900;font-size:16px;
  padding:13px 22px;border-radius:999px;border:2px solid transparent;
  box-shadow:0 4px 0 var(--clay-d);background:var(--clay);color:#fff;
  transition:transform .08s ease,box-shadow .08s ease;
}
.btn:active{transform:translateY(3px);box-shadow:0 1px 0 var(--clay-d)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--rule);box-shadow:0 4px 0 var(--rule)}
.btn-ghost:active{transform:translateY(3px);box-shadow:0 1px 0 var(--rule)}
.cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}

/* ── hero ──────────────────────────────────────────────────────────── */
.hero{position:relative;overflow:hidden;border-bottom:2px solid var(--rule)}
.hero-bg{position:absolute;left:50%;bottom:-6%;transform:translateX(-50%);
  width:min(1180px,128vw);aspect-ratio:1180/1141;z-index:0;opacity:.26;pointer-events:none;
  background:url("art/savanna-wide.png") bottom center/contain no-repeat;
  -webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 56%,#000 100%);
  mask-image:linear-gradient(to bottom,transparent 0%,#000 56%,#000 100%);}
/* padding-top/-bottom, not the shorthand: this element also carries .wrap and the
   shorthand would reset its horizontal gutter to zero. */
.hero-in{position:relative;z-index:1;padding-top:74px;padding-bottom:96px;display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:40px;align-items:center}
.hero-art{position:relative;min-height:300px}
.hero-art .guide{width:min(300px,78%);display:block;margin-left:auto}
.hero-art .pal{position:absolute;bottom:4%;left:0;width:40%;opacity:.95}
@media (max-width:860px){
  .hero-in{grid-template-columns:1fr;padding-top:48px;padding-bottom:70px}
  .hero-art{min-height:0;display:flex;gap:14px;align-items:flex-end}
  .hero-art .guide{width:150px;margin:0}
  .hero-art .pal{position:static;width:130px}
}

/* ── sections ──────────────────────────────────────────────────────── */
.sec{padding:76px 0;border-bottom:2px solid var(--rule)}
.sec.tint{background:var(--paper-2)}
.sec-head{max-width:66ch;margin-bottom:34px}
.sec-head.mid{margin-left:auto;margin-right:auto;text-align:center}
.sec-head p{margin-top:12px}

/* ── the four activity cards ───────────────────────────────────────── */
.grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.card{background:var(--card);border:2px solid var(--rule);border-radius:var(--r);
  box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column}
.card-art{height:150px;position:relative;
  background:linear-gradient(168deg,#CFE0F0 0%,#E6E0C4 54%,#BFD19C 100%)}
.card-art::after{content:"";position:absolute;inset:auto 0 0 0;height:48px;
  background:linear-gradient(to top,rgba(144,170,108,.5),transparent)}
.card-art img{position:absolute;right:14px;bottom:4px;height:140px;width:auto}
.card-body{padding:16px 18px 20px}
.card-body h3{margin-bottom:6px}
.card-body p{font-size:14.5px;color:var(--ink-2);line-height:1.55}

/* ── numbered method ───────────────────────────────────────────────── */
.steps{display:grid;gap:22px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.step .num{font-family:Fraunces,Georgia,serif;font-weight:900;font-size:30px;color:var(--clay);margin:0 0 6px}
.step h3{margin-bottom:6px}
.step p{font-size:14.5px;color:var(--ink-2);line-height:1.58}

/* ── numbers ───────────────────────────────────────────────────────── */
.stats{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.stat{background:var(--card);border:2px solid var(--rule);border-radius:var(--r);padding:20px;box-shadow:var(--shadow)}
.stat .n{font-family:Fraunces,Georgia,serif;font-weight:900;font-size:46px;line-height:1;color:var(--forest);margin:4px 0 10px}
.stat .n.clay{color:var(--clay-d)}
.stat p{font-size:14px;color:var(--ink-2);line-height:1.55}
.src{display:block;margin-top:10px;font-size:11.5px;color:var(--muted);border-top:1px solid var(--rule);padding-top:9px}

/* ── pull quote ────────────────────────────────────────────────────── */
.statement{font-family:Fraunces,Georgia,serif;font-weight:900;font-size:clamp(22px,3.1vw,33px);
  line-height:1.26;max-width:22ch;margin:0 auto;text-align:center}
.statement em{font-style:italic;color:var(--clay-d)}

/* ── access ────────────────────────────────────────────────────────── */
.access{background:var(--card);border:3px solid var(--forest);border-radius:26px;
  padding:34px;box-shadow:var(--shadow);max-width:760px;margin:0 auto;text-align:center;position:relative}
.access .paw{width:46px;height:auto;margin:0 auto 12px;display:block;opacity:.8}
.access .note{font-size:13.5px;color:var(--muted);margin-top:14px;max-width:52ch;margin-left:auto;margin-right:auto}

/* ── strip of animals ──────────────────────────────────────────────── */
.zoo{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:30px}
.zoo img{height:84px;width:auto;opacity:.95}
@media (max-width:620px){.zoo img{height:58px}}

/* ── footer ────────────────────────────────────────────────────────── */
footer{padding:42px 0;background:var(--paper-2)}
.foot-grid{display:flex;gap:40px;flex-wrap:wrap;justify-content:space-between;align-items:flex-start}
footer a{color:var(--ink-2);text-decoration:none;font-size:14px;display:block;margin-bottom:7px}
footer a:hover{color:var(--ink)}
.ft{font-size:10.5px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin:0 0 11px}
.foot-end{margin-top:30px;padding-top:20px;border-top:2px solid var(--rule);font-size:12.5px;color:var(--muted);line-height:1.6}
