/* ===========================================================================
   Solver Guides — shares the main site's design system (Ecosystem Solver).
   Same tokens, fonts, buttons, nav, footer. Article styles layered on top.
   =========================================================================== */
:root{
  --ink:#0d1b16;
  --moss:#1f3a2e;
  --leaf:#2f6b4f;
  --lime:#9be564;
  --gold:#e7c46b;
  --cream:#f6f3ea;
  --paper:#fbfaf4;
  --mist:#e9efe8;
  --danger:#c14b3a;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:'Inter',system-ui,-apple-system,sans-serif;
  color:var(--ink);
  background:var(--paper);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,.serif{font-family:'Fraunces',Georgia,serif;font-weight:600;letter-spacing:-0.01em;line-height:1.15}
a{color:inherit}
.wrap{max-width:1140px;margin:0 auto;padding:0 24px}

/* Buttons (same as main site) */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:14px 26px;border-radius:999px;
  font-weight:600;font-size:16px;text-decoration:none;cursor:pointer;border:none;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.btn-primary{background:var(--ink);color:var(--lime)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(13,27,22,.25)}
.btn-ghost{background:transparent;color:var(--ink);border:1.5px solid rgba(13,27,22,.2)}
.btn-ghost:hover{border-color:var(--ink);background:rgba(13,27,22,.04)}
.btn-sm{padding:10px 20px;font-size:14px}

/* Eyebrow pill (same as main site) */
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  color:var(--leaf);background:var(--mist);padding:6px 14px;border-radius:999px;
}
.eyebrow::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--leaf)}

/* Hero header — same dark green treatment as main site */
header.hero{
  position:relative;overflow:hidden;
  background:
    radial-gradient(1100px 600px at 80% -10%, rgba(155,229,100,.25), transparent 60%),
    radial-gradient(800px 500px at 10% 110%, rgba(47,107,79,.18), transparent 60%),
    linear-gradient(180deg, #0d1b16 0%, #14302a 100%);
  color:var(--cream);
  padding:26px 0 56px;
}
nav{display:flex;align-items:center;justify-content:space-between}
.logo{display:flex;align-items:center;gap:10px;font-family:'Fraunces',serif;font-weight:800;font-size:22px;color:var(--cream);text-decoration:none}
.logo .mark{
  width:34px;height:34px;border-radius:10px;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--lime),var(--gold));
  color:var(--ink);font-size:18px;
}
nav .links{display:flex;gap:28px;align-items:center}
nav .links a{text-decoration:none;color:rgba(246,243,234,.78);font-size:15px;font-weight:500}
nav .links a:hover{color:var(--cream)}

/* Hero inner — hub uses a centered title block */
.hero-inner{margin-top:48px;max-width:820px}
.hero-inner h1{font-size:clamp(34px,4.6vw,56px);margin:16px 0 0;color:var(--cream)}
.hero-inner h1 em{font-style:italic;color:var(--lime)}
.hero-inner p.lede{font-size:19px;color:rgba(246,243,234,.82);margin:22px 0 0;max-width:680px}

/* Sections */
section{padding:84px 0}
.section-head{max-width:680px}
.section-head h2{font-size:clamp(30px,3.6vw,44px);margin:14px 0 14px}
.section-head p{font-size:17px;color:rgba(13,27,22,.7)}

/* Guides grid — reuses main site .step card pattern */
.guide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px}
.gcard{
  display:block;background:var(--paper);border:1px solid rgba(13,27,22,.08);border-radius:16px;padding:28px;
  text-decoration:none;color:var(--ink);position:relative;transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.gcard:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(13,27,22,.08);border-color:rgba(47,107,79,.3)}
.gcard .ic{
  width:42px;height:42px;border-radius:11px;display:grid;place-items:center;
  background:var(--mist);color:var(--leaf);font-family:'Fraunces',serif;font-weight:800;font-size:20px;
}
.gcard h3{font-size:21px;margin:18px 0 8px}
.gcard p{color:rgba(13,27,22,.7);font-size:15px;margin:0 0 18px}
.gcard .more{font-size:13px;font-weight:600;color:var(--leaf);letter-spacing:.06em;text-transform:uppercase}

/* CTA banner (same as main site) */
.cta-banner{
  background:linear-gradient(135deg,var(--lime),var(--gold));
  color:var(--ink);border-radius:24px;padding:48px;text-align:center;
}
.cta-banner h2{font-size:clamp(28px,3.4vw,40px);margin:0 0 12px}
.cta-banner p{margin:0 auto 28px;max-width:560px;color:rgba(13,27,22,.7);font-size:17px}
.cta-banner .btn-primary{background:var(--ink);color:var(--lime)}
.cta-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;align-items:center}

/* Footer (same as main site) */
footer.site{background:var(--ink);color:rgba(246,243,234,.6);padding:60px 0 30px}
footer.site .row{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap}
footer.site .col{flex:1;min-width:200px}
footer.site h5{color:var(--cream);font-size:13px;letter-spacing:.1em;text-transform:uppercase;margin:0 0 14px}
footer.site a{display:block;color:rgba(246,243,234,.6);text-decoration:none;font-size:14px;padding:4px 0}
footer.site a:hover{color:var(--lime)}
footer.site .bottom{margin-top:40px;padding-top:24px;border-top:1px solid rgba(246,243,234,.1);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:13px}

/* ===========================================================================
   Article layout (individual guides)
   =========================================================================== */
.article{max-width:760px;margin:0 auto;padding:64px 0 96px}
.article .meta{font-size:13px;color:rgba(13,27,22,.5);margin:14px 0 0;letter-spacing:.02em}
.article h1{font-size:clamp(32px,4vw,46px);margin:14px 0 0}
.article h2{font-size:28px;margin:44px 0 14px}
.article h3{font-size:20px;margin:30px 0 10px}
.article p{font-size:17px;color:rgba(13,27,22,.85);margin:0 0 18px}
.article ul,.article ol{font-size:17px;color:rgba(13,27,22,.85);margin:0 0 18px;padding-left:24px}
.article li{margin-bottom:8px}
.article a{color:var(--leaf);text-decoration:none;border-bottom:1px solid rgba(47,107,79,.3)}
.article a:hover{color:var(--moss);border-bottom-color:var(--moss)}
.article blockquote{
  border-left:3px solid var(--leaf);background:var(--mist);
  padding:16px 20px;border-radius:0 12px 12px 0;margin:0 0 20px;
  font-style:italic;color:var(--moss);
}
.article table{width:100%;border-collapse:collapse;margin:0 0 22px;font-size:15px}
.article th,.article td{padding:11px 14px;border:1px solid rgba(13,27,22,.1);text-align:left}
.article th{background:var(--mist);font-weight:600;font-size:13px;letter-spacing:.04em}
.article code{background:var(--mist);padding:2px 7px;border-radius:6px;font-size:14px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}

/* TOC */
.toc{background:var(--mist);border:1px solid rgba(13,27,22,.1);border-radius:14px;padding:20px 24px;margin:28px 0 36px}
.toc h3{margin:0 0 10px;font-size:15px;font-family:'Inter',sans-serif;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--moss)}
.toc ol{margin:0;padding-left:22px;font-size:15px}
.toc li{margin-bottom:6px}
.toc a{border-bottom:none}

/* Key callout */
.key{background:rgba(155,229,100,.16);border:1px solid rgba(47,107,79,.25);border-radius:12px;padding:16px 20px;margin:22px 0}
.key strong{color:var(--moss)}

/* Inline CTA */
.inline-cta{background:var(--ink);color:var(--cream);border-radius:18px;padding:32px;margin:36px 0;text-align:center}
.inline-cta h3{color:var(--cream);margin:0 0 8px;font-size:22px}
.inline-cta p{color:rgba(246,243,234,.8);font-size:15px;margin:0 0 20px}
.inline-cta .btn-ghost{color:var(--cream);border-color:rgba(246,243,234,.3)}
.inline-cta .btn-ghost:hover{background:rgba(246,243,234,.08)}

/* Article screenshots */
.article .shot{margin:24px 0;border:1px solid rgba(13,27,22,.1);border-radius:14px;overflow:hidden;background:var(--mist)}
.article .shot img{display:block;width:100%;height:auto}
.article .shot figcaption{padding:10px 16px;font-size:13px;color:rgba(13,27,22,.6);background:#fff;border-top:1px solid rgba(13,27,22,.08)}
.article .shot figcaption strong{color:var(--ink)}

/* Cross-link "see also" boxes */
.see-also{background:var(--mist);border-left:4px solid var(--leaf);border-radius:0 12px 12px 0;padding:18px 22px;margin:24px 0;font-size:15px}
.see-also strong{color:var(--ink)}
.see-also a{color:var(--leaf);font-weight:600;text-decoration:none;border-bottom:1px solid rgba(47,125,143,.3)}
.see-also a:hover{color:var(--ink)}

/* Article hero (smaller, per-guide) */
header.hero.article-hero{padding:26px 0 40px}
header.hero.article-hero .hero-inner{margin-top:32px}
header.hero.article-hero h1{font-size:clamp(28px,3.8vw,42px)}

@media(max-width:880px){
  .guide-grid{grid-template-columns:1fr}
  nav .links{display:none}
  .article{padding:40px 0 64px}
  .article h2{font-size:24px}
  .article p,.article ul,.article ol{font-size:16px}
  .cta-banner{padding:36px 20px}
}

