/* =============================================================================
   Geddes Blacksmithing — shared site styles (Direction B · Heritage Paper)
   Consumes brand tokens from tokens.css. Used by every page for identical chrome.
   ============================================================================= */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);color:var(--text-body);background:var(--bg-page);
     line-height:var(--leading-normal);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--font-display);color:var(--text-strong);
     line-height:var(--leading-tight);font-weight:700;letter-spacing:-0.01em}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:2px}

.wrap{max-width:var(--container);margin-inline:auto;padding-inline:var(--space-6)}
.eyebrow{font-family:var(--font-display);text-transform:uppercase;
     letter-spacing:var(--tracking-wide);font-size:var(--text-sm);color:var(--accent);font-weight:700}
section{padding-block:var(--space-24)}
.center{text-align:center}
.measure{max-width:var(--measure)}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;gap:.5em;font-weight:600;font-size:var(--text-base);
     padding:.85em 1.5em;border-radius:var(--radius-sm);border:2px solid transparent;
     cursor:pointer;transition:background .15s,color .15s,transform .05s;font-family:var(--font-body)}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--accent);color:#fff}
.btn-primary:hover{background:var(--accent-deep)}
.btn-ghost{border-color:var(--text-strong);color:var(--text-strong)}
.btn-ghost:hover{background:var(--color-paper-100)}
.btn.soon{background:var(--color-paper-200);color:var(--text-muted);cursor:not-allowed}
.btn.soon:hover{background:var(--color-paper-200)}
.soon-note{display:inline-block;margin-top:var(--space-6);color:var(--text-muted);font-weight:600;
     font-size:var(--text-sm);border:1px dashed var(--color-paper-200);padding:.45em .85em;border-radius:99px}
.soon-note::before{content:"● ";color:var(--accent);font-size:.7em;vertical-align:middle}

/* ---- sticky nav ---- */
header.nav{position:sticky;top:0;z-index:20;background:rgba(251,248,242,.94);
     backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;padding-block:var(--space-3);gap:var(--space-4)}
.brand{display:flex;align-items:center;gap:.7rem;flex-shrink:0}
.brand img{height:44px;width:auto}
.brand .wordmark{font-family:var(--font-display);font-weight:700;text-transform:uppercase;
     letter-spacing:var(--tracking-caps);font-size:var(--text-lg);line-height:1;color:var(--text-strong)}
.brand .wordmark small{display:block;font-size:9px;letter-spacing:.34em;color:var(--accent);margin-top:2px}
nav.links{display:flex;gap:var(--space-4);align-items:center}
nav.links a{font-size:var(--text-sm);font-weight:500;text-transform:uppercase;letter-spacing:.04em;
     color:var(--text-muted);padding-block:var(--space-1);border-bottom:2px solid transparent}
nav.links a:hover{color:var(--text-strong)}
nav.links a[aria-current="page"]{color:var(--text-strong);border-bottom-color:var(--accent)}
.nav-toggle,.nav-burger{display:none}

/* ---- hero (home) ---- */
.hero{border-bottom:1px solid var(--line)}
.hero .wrap{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-16);align-items:center;padding-block:var(--space-24)}
.hero h1{font-size:var(--text-6xl);max-width:11ch;margin-block:var(--space-4)}
.hero h1 em{font-style:normal;color:var(--accent)}
.hero .lead{font-size:var(--text-xl);color:var(--text-muted);max-width:44ch;margin-top:var(--space-6)}
.hero .cta{display:flex;gap:var(--space-4);margin-top:var(--space-8);flex-wrap:wrap}
.hero-media{position:relative}
.seal{position:absolute;top:-24px;right:-20px;width:130px;height:130px;border-radius:50%;
     background:var(--color-paper-50);display:flex;align-items:center;justify-content:center;
     box-shadow:0 12px 28px rgba(0,0,0,.4);transform:rotate(6deg);border:1px solid var(--color-paper-200);z-index:2}
.seal img{width:76%}

/* ---- page hero (sub-pages) ---- */
.page-hero{background:var(--bg-dark);color:var(--text-on-dark);position:relative;overflow:hidden}
.page-hero::before{content:"";position:absolute;inset:0;
     background:radial-gradient(60% 90% at 85% 20%,rgba(140,29,29,.4),transparent 65%)}
.page-hero .wrap{position:relative;padding-block:var(--space-24)}
.page-hero h1{color:#fff;font-size:var(--text-5xl);max-width:16ch;margin-top:var(--space-3)}
.page-hero p{color:var(--color-paper-200);font-size:var(--text-xl);max-width:52ch;margin-top:var(--space-4)}
.crumbs{font-size:var(--text-sm);color:#CBC0B1;text-transform:uppercase;letter-spacing:var(--tracking-caps)}
.crumbs a{color:#CBC0B1}
.crumbs a:hover{color:#fff}

/* ---- trust band ---- */
.trust{background:var(--bg-dark)}
.trust.on-paper{background:var(--color-charcoal-900)}
.trust .wrap{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);justify-content:center;
     padding-block:var(--space-6);font-family:var(--font-display);text-transform:uppercase;
     letter-spacing:var(--tracking-caps);font-size:var(--text-sm);color:var(--color-paper-200)}
.trust b{color:var(--accent)}
.trust span{display:inline-flex;gap:.55rem;align-items:center}
.trust span::before{content:"◆";color:var(--color-iron-500);font-size:8px}
.trust span:first-child::before{content:none}
/* one line on desktop — tighten so "30+ years teaching" never wraps */
@media(min-width:1081px){
  .trust .wrap{flex-wrap:nowrap;gap:var(--space-4);font-size:.82rem;letter-spacing:.03em}
  .trust span{white-space:nowrap}
}

/* ---- section heads ---- */
.sec-head{max-width:var(--measure);margin-bottom:var(--space-12)}
.sec-head.center{margin-inline:auto}
.sec-head h2{font-size:var(--text-4xl);margin-top:var(--space-2)}
.sec-head p{color:var(--text-muted);font-size:var(--text-lg);margin-top:var(--space-3)}

/* ---- product tiers / cards ---- */
.tiers{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-6)}
.tiers.detail{grid-template-columns:repeat(2,1fr);gap:var(--space-8)}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-md);
     padding:var(--space-6);display:flex;flex-direction:column;box-shadow:var(--shadow-card)}
.card.flag{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),var(--shadow-card);position:relative}
.card .flagtag{position:absolute;top:-12px;left:var(--space-6);background:var(--accent);color:#fff;
     font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:.25em .7em;border-radius:99px}
.card .kicker{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-caps);color:var(--text-muted);font-weight:700}
.card h3{font-size:var(--text-xl);margin-block:var(--space-2) var(--space-3)}
.card p{font-size:var(--text-sm);color:var(--text-muted)}
.card ul.inside{list-style:none;margin-block:var(--space-3);display:grid;gap:var(--space-2)}
.card ul.inside li{font-size:var(--text-sm);padding-left:1.4em;position:relative;color:var(--text-body)}
.card ul.inside li::before{content:"→";position:absolute;left:0;color:var(--accent);font-weight:700}
.card .spacer{flex:1}
.card .price{font-family:var(--font-display);font-size:var(--text-3xl);margin-block:var(--space-4) var(--space-2);color:var(--text-strong)}
.card .price small{font-size:var(--text-sm);color:var(--text-muted);font-weight:400}
.card .buy{margin-top:var(--space-4);width:100%;justify-content:center}

/* ---- split (photo + text) ---- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-16);align-items:center}
.split.flip .media{order:2}
.split h2{font-size:var(--text-3xl)}
.split p{margin-top:var(--space-4);font-size:var(--text-lg)}
.split p + p{margin-top:var(--space-4)}

/* ---- photo / placeholder ---- */
.media{border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--color-charcoal-600)}
.media img{width:100%;height:100%;object-fit:cover;display:block}
.ph{aspect-ratio:4/3;position:relative;overflow:hidden;
     background:linear-gradient(135deg,var(--color-charcoal-700),var(--color-charcoal-900))}
.ph.tall{aspect-ratio:4/5}
.ph .glow{position:absolute;inset:0;background:radial-gradient(40% 40% at 35% 65%,rgba(140,29,29,.5),transparent 70%)}
.ph-label{position:absolute;left:var(--space-4);bottom:var(--space-4);color:var(--color-iron-400);
     font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-caps);
     border:1px dashed var(--color-iron-500);padding:.35em .7em;border-radius:4px;background:rgba(16,13,11,.35)}

/* ---- motto band ---- */
.motto{background:var(--bg-dark);color:#fff;text-align:center;overflow:hidden;position:relative}
.motto::before{content:"";position:absolute;inset:0;background:radial-gradient(50% 120% at 50% 0%,rgba(140,29,29,.4),transparent 60%)}
.motto .wrap{position:relative}
.motto .big{font-family:var(--font-display);font-weight:800;font-size:var(--text-6xl);letter-spacing:.06em;text-transform:uppercase;color:#fff}
.motto .sub{color:var(--color-paper-200);margin-top:var(--space-4);font-size:var(--text-lg);max-width:54ch;margin-inline:auto}
.motto .rule{width:64px;height:4px;background:var(--accent);margin:var(--space-8) auto 0}

/* ---- quote ---- */
.pullquote{border-left:4px solid var(--accent);padding-left:var(--space-6);margin-block:var(--space-8);
     font-family:var(--font-display);font-size:var(--text-2xl);color:var(--text-strong);line-height:var(--leading-snug)}
.pullquote cite{display:block;margin-top:var(--space-3);font-family:var(--font-body);font-style:normal;
     font-size:var(--text-sm);color:var(--text-muted);text-transform:uppercase;letter-spacing:var(--tracking-caps)}

/* ---- classlist ---- */
.classlist{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6);margin-top:var(--space-8)}
.classlist article{background:#fff;border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-6);box-shadow:var(--shadow-card)}
.classlist h3{font-size:var(--text-2xl);margin-bottom:var(--space-2)}
.classlist .meta{font-size:var(--text-sm);color:var(--text-muted);margin-block:var(--space-2) var(--space-4)}

/* ---- checklist (what to bring) ---- */
.checklist{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3);margin-top:var(--space-6)}
.checklist li{padding-left:1.8em;position:relative;font-size:var(--text-base)}
.checklist li::before{content:"✓";position:absolute;left:0;color:var(--accent);font-weight:700}

/* ---- FAQ ---- */
.faq{max-width:var(--measure);margin-top:var(--space-8)}
.faq details{border-bottom:1px solid var(--line);padding-block:var(--space-4)}
.faq summary{font-family:var(--font-display);font-size:var(--text-lg);color:var(--text-strong);
     cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:var(--space-4)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--accent);font-weight:700;font-size:var(--text-2xl);line-height:1}
.faq details[open] summary::after{content:"–"}
.faq p{margin-top:var(--space-3);color:var(--text-muted)}

/* ---- forms ---- */
form.signup{display:flex;gap:var(--space-3);margin-top:var(--space-6);max-width:480px}
form.signup input{flex:1;padding:.9em 1em;border:2px solid var(--color-paper-200);border-radius:var(--radius-sm);
     font-size:var(--text-base);font-family:inherit;background:#fff}
form.signup input:disabled{background:var(--color-paper-100);color:var(--text-muted)}
.fineprint{font-size:var(--text-sm);color:var(--text-muted);margin-top:var(--space-3)}

/* ---- capture band ---- */
.capture{background:var(--color-paper-100);border-top:1px solid var(--line)}
.capture .wrap{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-16);align-items:center}
.capture h2{font-size:var(--text-4xl)}
.capture p{color:var(--text-muted);margin-top:var(--space-3);font-size:var(--text-lg)}

/* ---- prose (legal / story) ---- */
.prose{max-width:var(--measure)}
.prose h2{font-size:var(--text-2xl);margin-top:var(--space-12);margin-bottom:var(--space-3)}
.prose h3{font-size:var(--text-lg);margin-top:var(--space-8);margin-bottom:var(--space-2)}
.prose p{margin-top:var(--space-4);font-size:var(--text-lg)}
.prose ul{margin-top:var(--space-4);padding-left:1.3em}
.prose li{margin-top:var(--space-2);font-size:var(--text-lg)}
.prose .acl{background:var(--color-paper-100);border:1px solid var(--line);border-left:4px solid var(--accent);
     border-radius:var(--radius-md);padding:var(--space-6);margin-top:var(--space-6)}
.prose .acl p{font-size:var(--text-base);margin-top:var(--space-3)}
.prose .acl p:first-child{margin-top:0}
.updated{font-size:var(--text-sm);color:var(--text-muted);margin-top:var(--space-2)}

/* ---- contact ---- */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-16);align-items:start}
.contact-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-md);
     padding:var(--space-8);box-shadow:var(--shadow-card)}
.contact-card dt{font-family:var(--font-display);text-transform:uppercase;letter-spacing:var(--tracking-caps);
     font-size:var(--text-sm);color:var(--text-muted);margin-top:var(--space-6)}
.contact-card dt:first-child{margin-top:0}
.contact-card dd{font-size:var(--text-xl);color:var(--text-strong);margin-top:var(--space-1)}
.contact-card dd a:hover{color:var(--accent)}

/* ---- footer ---- */
footer.site{background:var(--color-charcoal-900);color:var(--color-paper-200);padding-block:var(--space-16) var(--space-8)}
footer.site .grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:var(--space-12);padding-bottom:var(--space-12);border-bottom:1px solid var(--color-charcoal-600)}
footer.site img{height:auto}
footer.site h4{font-family:var(--font-display);text-transform:uppercase;letter-spacing:var(--tracking-caps);color:#fff;font-size:var(--text-sm);margin-bottom:var(--space-4)}
footer.site a{display:block;color:var(--color-paper-200);font-size:var(--text-sm);padding-block:var(--space-1)}
footer.site a:hover{color:var(--accent)}
footer.site .legal{display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--space-4);padding-top:var(--space-6);font-size:var(--text-xs);color:#B4A997}
footer.site .legal a{display:inline}
.pricebar{background:var(--accent-deep);color:#fff;text-align:center;font-size:var(--text-xs);padding:.5em;letter-spacing:.04em}

/* ---- footer crest seal (faithful colour mark on a light chip) ---- */
.footer-seal{display:inline-flex;align-items:center;justify-content:center;width:96px;height:96px;
     border-radius:50%;background:var(--color-paper-50);box-shadow:0 8px 20px rgba(0,0,0,.35);
     margin-bottom:var(--space-4)}
.footer-seal img{width:74%;height:auto}

/* ---- clickable product card ---- */
.card-link{text-decoration:none;color:inherit;transition:transform .12s,box-shadow .12s,border-color .12s}
.card-link:hover{transform:translateY(-3px);box-shadow:0 4px 8px rgba(16,13,11,.08),0 20px 44px rgba(16,13,11,.16);border-color:var(--accent)}
.card-cta{margin-top:var(--space-4);font-weight:700;color:var(--accent);font-size:var(--text-sm)}
.card-link:hover .card-cta{text-decoration:underline}

/* ---- inline text CTA (one clear next step per section) ---- */
.link-cta{display:inline-block;margin-top:var(--space-6);color:var(--accent);font-weight:700;
     border-bottom:2px solid var(--accent);padding-bottom:2px}
.link-cta:hover{color:var(--accent-deep);border-bottom-color:var(--accent-deep)}
.sec-cta{margin-top:var(--space-8)}

/* ---- press line (ABC mention, link only) ---- */
.press-line{background:var(--accent);text-align:center;padding-block:var(--space-3)}
.press-line a{color:var(--color-paper-100);font-family:var(--font-display);text-transform:uppercase;
     letter-spacing:var(--tracking-wide);font-size:var(--text-sm);font-weight:700}
.press-line a:hover{color:#fff;text-decoration:underline}

/* ---- photographic divider band ---- */
.divider{position:relative;height:clamp(180px,26vw,320px);overflow:hidden}
.divider img{width:100%;height:100%;object-fit:cover}
.divider-veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,13,11,.15),rgba(16,13,11,.35))}

/* ---- click-to-play video facade ---- */
.video{position:relative;aspect-ratio:16/9;max-width:900px;margin-inline:auto;border-radius:var(--radius-md);
     overflow:hidden;background:var(--color-charcoal-800);box-shadow:var(--shadow-card);cursor:pointer}
.video-poster{width:100%;height:100%;object-fit:cover;opacity:.82;transition:opacity .15s}
.video:hover .video-poster{opacity:.68}
.video-play{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
     gap:var(--space-3);background:none;border:0;cursor:pointer;color:#fff}
.video-tri{width:0;height:0;border-style:solid;border-width:20px 0 20px 34px;
     border-color:transparent transparent transparent #fff;filter:drop-shadow(0 4px 12px rgba(0,0,0,.5));
     margin-left:6px;transition:transform .15s}
.video:hover .video-tri{transform:scale(1.12)}
.video-play::before{content:"";position:absolute;width:92px;height:92px;border-radius:50%;
     background:var(--accent);opacity:.92;z-index:-1;box-shadow:0 8px 28px rgba(0,0,0,.45)}
.video-label{font-family:var(--font-display);text-transform:uppercase;letter-spacing:var(--tracking-caps);
     font-size:var(--text-sm);font-weight:700}
.video-frame{width:100%;height:100%;border:0;display:block}

/* ---- barrier-to-entry pillar band ---- */
.pillar{background:var(--color-paper-100);border-block:1px solid var(--line);text-align:center}
.pillar .eyebrow{display:block}
.pillar h2{font-size:var(--text-4xl);max-width:22ch;margin:var(--space-3) auto 0}
.pillar h2 em{font-style:normal;color:var(--accent)}
.pillar p{color:var(--text-body);font-size:var(--text-lg);max-width:62ch;margin:var(--space-4) auto 0}
.pillar .pending{margin-top:var(--space-6)}

/* ============================ responsive ============================ */
@media(max-width:900px){
  .hero .wrap,.split,.capture .wrap,.contact-grid,footer.site .grid{grid-template-columns:1fr}
  .tiers{grid-template-columns:1fr 1fr}
  .split.flip .media{order:0}
  .hero-media{order:-1}
}
/* hamburger nav below 1000px — the full row needs ~1000px to sit without overlap */
@media(max-width:1000px){
  .nav-burger{display:flex;align-items:center;justify-content:center;width:44px;height:44px;
       border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;
       font-size:22px;color:var(--text-strong);cursor:pointer;flex-shrink:0}
  nav.links{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;
       gap:0;background:var(--color-paper-50);border-bottom:1px solid var(--line);
       padding:var(--space-2) var(--space-6) var(--space-4);display:none;box-shadow:var(--shadow-card)}
  nav.links a{padding-block:var(--space-3);border-bottom:1px solid var(--line)}
  nav.links a[aria-current="page"]{border-bottom-color:var(--line);color:var(--accent)}
  nav.links a.btn{margin-top:var(--space-3);border:2px solid var(--accent);background:var(--accent);color:#fff;justify-content:center}
  nav.links a.btn:hover{background:var(--accent-deep)}
  .nav-toggle:checked ~ nav.links{display:flex}
}
@media(max-width:640px){
  :root{--text-6xl:2.75rem;--text-5xl:2.25rem;--text-4xl:2rem}
  .tiers,.tiers.detail,.classlist,.checklist{grid-template-columns:1fr}
  section{padding-block:var(--space-16)}
  .brand .wordmark{font-size:var(--text-base)}
  .brand img{height:38px}
  form.signup{flex-direction:column}
  .seal{width:96px;height:96px;top:-16px;right:-8px}
}
