/* The Way of the Acorn — site styles */
:root{
  --forest:#18231d; --forest-2:#1f2d25; --cream:#f8f4ee; --cream-2:#f3ece1; --ink:#1c1c1a; --body:#33312d; --muted:#5e5a52;
  --copper:#a3632f; --copper-text:#9a5e2b; --copper-hover:#8a5426; --gold:#d9a25a; --line:#e4dccf; --on-dark:#f3ece1; --on-dark-2:#c8c4ba;
  --serif:"Lora",Georgia,serif; --sans:"Inter",Helvetica,Arial,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--copper-text)}a:hover{color:var(--copper-hover)}
h1,h2,h3,h4{font-family:var(--serif);font-weight:500;line-height:1.15;letter-spacing:-.01em;color:var(--ink);margin:0 0 .5em}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-9999px;top:0;background:#fff;color:var(--ink);padding:10px 16px;z-index:100}
.skip:focus{left:16px;top:12px}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}

/* Header */
.site-header{background:var(--forest);position:sticky;top:0;z-index:50}
.hwrap{max-width:1280px;margin:0 auto;padding:0 24px;min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand img{height:38px;width:auto}
.site-nav{display:flex;align-items:center;gap:26px;font-size:15px}
.site-nav a{color:var(--on-dark);text-decoration:none;padding:6px 0}
.site-nav a:hover,.site-nav a[aria-current]{color:var(--gold)}
.site-nav .login{border:1px solid rgba(243,236,225,.4);border-radius:30px;padding:8px 18px}
.menu-btn{display:none;width:44px;height:44px;background:none;border:0;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:7px}
.menu-btn span{display:block;width:26px;height:2px;background:var(--on-dark);border-radius:2px;transition:transform .2s}
.menu-btn[aria-expanded="true"] span:first-child{transform:translateY(4.5px) rotate(45deg)}
.menu-btn[aria-expanded="true"] span:last-child{transform:translateY(-4.5px) rotate(-45deg)}
@media (max-width:1100px){
  .hwrap{min-height:64px}
  .brand img{height:32px}
  .menu-btn{display:flex}
  .site-nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--forest);flex-direction:column;align-items:stretch;gap:0;padding:8px 24px 24px;border-top:1px solid rgba(255,255,255,.1)}
  .site-nav.open{display:flex}
  .site-nav a{font-size:18px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.08)}
  .site-nav .login{border:1px solid rgba(243,236,225,.4);text-align:center;margin-top:16px;padding:12px}
}

/* Footer */
.site-footer{background:var(--forest);color:var(--on-dark-2);padding:48px 24px 40px;margin-top:0}
.fwrap{max-width:1200px;margin:0 auto;display:flex;flex-wrap:wrap;gap:18px 32px;align-items:center;justify-content:space-between}
.fwrap img{height:32px;width:auto}
.fwrap p{margin:0;font-size:15px}
.site-footer a{color:var(--gold)}
.site-footer .legal a{color:var(--on-dark-2)}

/* Buttons */
.btn{display:inline-block;background:var(--copper);color:#fff;font:600 16px/1.2 var(--sans);text-decoration:none;padding:16px 28px;border-radius:30px;border:0;cursor:pointer;text-align:center}
.btn:hover{background:var(--copper-hover);color:#fff}
.btn-dark{background:var(--forest);color:var(--on-dark)}.btn-dark:hover{background:#0f1712;color:var(--on-dark)}
.btn-ghost{background:transparent;color:var(--ink);border:1px solid #cfc5b5}.btn-ghost:hover{background:var(--cream-2);color:var(--ink)}
.btn-block{display:block;width:100%}
.btn-row{margin:32px 0}
.ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px}

/* Home */
.home-hero{padding:72px 0 96px}
.hero-grid{display:flex;flex-wrap:wrap;gap:56px;align-items:center}
.hero-copy{flex:999 1 520px;min-width:0}
.hero-copy h1{font-size:clamp(44px,6vw,64px);margin-bottom:22px}
.lead{font-size:clamp(18px,2vw,20px);line-height:1.6;color:var(--body);margin:0 0 14px;max-width:620px}
.lead-list{font-size:clamp(18px,2vw,20px);line-height:1.6;color:var(--body);font-style:italic;margin:0 0 22px;padding-left:24px}
.hero-photo{flex:1 1 320px;min-width:0;max-width:440px;margin:0 auto}
.hero-photo img{width:100%;aspect-ratio:4/4.4;object-fit:cover;object-position:top;border-radius:220px 220px 24px 24px}
@media (max-width:640px){
  .home-hero{padding:36px 0 56px}
  .hero-grid{gap:32px}
  .home .ctas .btn{flex:1 1 140px;padding:15px 8px;font-size:15px;white-space:nowrap}
  .home .ctas .btn-ghost{flex:1 1 100%}
}

/* Long-form reading pages */
.prose{max-width:760px;margin:0 auto;padding:56px 24px 88px;font-size:19px;line-height:1.75;color:#2c2a26}
.prose.narrow{max-width:680px}
.prose p{margin:0 0 1.05em}
.prose h1{font-size:clamp(34px,5vw,48px);margin:0 0 .6em}
.prose h2{font-size:clamp(28px,3.6vw,36px);margin:1.6em 0 .6em}
.prose h3{font-size:clamp(23px,2.8vw,28px);margin:1.5em 0 .5em}
.prose h4{font-size:clamp(28px,4vw,40px);margin:0 0 .7em}
.prose ul,.prose ol{padding-left:1.3em;margin:0 0 1.1em}
.prose li{margin:0 0 .55em}
.prose figure{margin:28px 0}
.prose figure img{margin:0 auto;border-radius:12px;max-height:720px;width:auto}
.prose figure+p em:only-child{display:block;text-align:center;font-size:16px;color:var(--muted);margin-top:-14px}
.prose blockquote{margin:28px 0;padding:28px 30px;background:var(--forest);color:#f6f0e6;border-radius:18px;font-family:var(--serif);font-style:italic;font-size:21px;line-height:1.6}
.prose blockquote cite{display:block;margin-top:16px;font-family:var(--sans);font-style:normal;font-size:15px;color:var(--on-dark-2)}
.prose blockquote cite em{font-style:italic}
.prose hr{border:0;border-top:1px solid var(--line);margin:32px 0}
.prose .t-center{text-align:center}.prose .t-right{text-align:right}
.prose .gap{margin:0;line-height:.9}
.prose.center{text-align:center}
.prose .headshot img{width:100%;max-width:420px;border-radius:200px 200px 20px 20px}
@media (max-width:640px){.prose{padding:36px 16px 64px;font-size:17.5px}.prose blockquote{padding:22px 20px;font-size:19px}}

/* Guide */
.progress{height:4px;background:var(--line);position:sticky;top:76px;z-index:40}
.progress div{height:4px;background:var(--copper)}
@media (max-width:1100px){.progress{top:64px}}
.parts{display:flex;gap:8px;margin:0 0 28px}
.parts a{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;border:1px solid #cfc5b5;color:var(--muted);text-decoration:none;font:600 15px var(--sans)}
.parts a.done{background:var(--cream-2)}
.parts a.on{background:var(--forest);border-color:var(--forest);color:var(--on-dark)}
.guide .btn-row{text-align:center;margin:48px 0 10px}
.guide .btn-row+.t-center{font-size:16px;color:var(--muted)}

/* Forms */
.signup{background:var(--cream-2);border-radius:20px;padding:32px;margin:40px 0 8px}
.signup h2{margin:0 0 18px;font-size:clamp(26px,3vw,32px)}
.inline-form{display:flex;flex-wrap:wrap;gap:10px}
.inline-form input{flex:1 1 240px;min-width:0}
input,textarea{font:inherit;font-size:16px;width:100%;padding:14px 16px;border:1px solid #cfc5b5;border-radius:12px;background:#fff;color:var(--ink)}
.inline-form input{width:auto}
textarea{resize:vertical}
label{display:block;font-size:15px;font-weight:600;margin:0 0 6px}
.req{font-weight:400;color:var(--muted)}
fieldset{border:0;padding:0;margin:0}
legend{font-size:15px;font-weight:600;margin:0 0 6px;padding:0}
.stack-form{margin-top:28px}
.stack-form .two{display:flex;flex-wrap:wrap;gap:0 14px}.stack-form .two p{flex:1 1 220px}
.fine{font-size:14px;color:var(--muted);margin:12px 0 0}
.form-msg{font-weight:600;color:var(--forest);margin:14px 0 0}
.form-msg.err{color:#9b2c1f}
.hp{position:absolute;left:-9999px}
form.sent .inline-form,form.sent .stack-only{display:none}
.center .inline-form{justify-content:center}

/* Lesson (Module 1 preview) */
.lesson{max-width:1200px;margin:0 auto;padding:40px 24px 80px;display:flex;flex-wrap:wrap;gap:40px;align-items:flex-start}
.lesson-nav{flex:1 1 260px;min-width:0;background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px}
.lesson-nav ol{list-style:none;margin:0 0 18px;padding:0}
.lesson-nav li{border-bottom:1px solid #efe8dc}
.lesson-nav li a,.lesson-nav li span{display:flex;flex-direction:column;padding:12px 26px 12px 0;text-decoration:none;color:var(--ink);font-size:15px;line-height:1.35;position:relative}
.lesson-nav li small{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.lesson-nav li.on a{color:var(--copper-text);font-weight:600}
.lesson-nav li.locked span{color:var(--muted)}
.lock{position:absolute;right:2px;top:50%;width:12px;height:14px;margin-top:-7px;border:2px solid #b9ad9a;border-radius:3px}
.lock::before{content:"";position:absolute;left:1px;top:-8px;width:6px;height:7px;border:2px solid #b9ad9a;border-bottom:0;border-radius:6px 6px 0 0}
.lesson-body{flex:999 1 560px;min-width:0;padding:0;margin:0}
.eyebrow{font-size:13px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--copper-text);margin:0 0 10px}
.pill-free{display:inline-block;background:var(--forest);color:var(--on-dark);border-radius:20px;padding:2px 10px;font-size:11px;letter-spacing:.1em}
.lesson-end{border-top:1px solid var(--line);margin-top:40px;padding-top:28px}
@media (max-width:900px){.lesson{padding:24px 16px 56px;gap:24px}.lesson-nav{order:2}}

/* Course landing page */
.lp-page main{overflow:hidden}
