/*
Theme Name: Mission-Driven Innovation
Theme URI: https://missiondriveninnovation.com
Author: Sommer Systems
Author URI: https://sommersystems.com
Description: Custom theme for the Mission-Driven Innovation System(TM) landing site. Hand-coded, dependency-free, deploy-via-Git.
Version: 1.1.7
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 8.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: mdi
*/

:root{
    --ink:#0d0f13;
    --ink-soft:#15181e;
    --ink-card:#191c23;
    --cream:#f5f1e9;
    --cream-pure:#fbf8f2;
    --paper:#ece5d7;
    --signal:#5ec8da;
    --signal-deep:#0c7d8e;
    --slate:#5a616d;
    --line:rgba(13,15,19,.12);
    --line-soft:rgba(13,15,19,.07);
    --line-light:rgba(245,241,233,.13);
    --maxw:1200px;
    --serif:"Fraunces",Georgia,serif;
    --sans:"Hanken Grotesk",system-ui,sans-serif;
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{font-family:var(--sans);background:var(--cream);color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 30px}
  a{color:inherit;text-decoration:none}
  img{max-width:100%;display:block}

  h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.04;letter-spacing:-.022em}
  .eyebrow{font-family:var(--sans);font-size:.72rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--signal-deep);display:inline-block;margin-bottom:1.1rem}
  .eyebrow.on-dark{color:var(--signal)}

  /* nav */
  nav{position:sticky;top:0;z-index:50;background:rgba(245,241,233,.85);backdrop-filter:blur(16px);border-bottom:1px solid var(--line-soft)}
  nav .wrap{display:flex;align-items:center;justify-content:space-between;height:70px}
  .brand{display:flex;align-items:center;gap:11px;text-decoration:none}
  .brand .mark{width:31px;height:31px;flex-shrink:0;display:block;border-radius:8px;filter:drop-shadow(0 2px 5px rgba(11,16,32,.28))}
  .brand .mark svg{display:block;width:100%;height:100%}
  .brand .wordmark{display:flex;flex-direction:column;gap:2px;line-height:1}
  .brand .wm-title{font-family:var(--sans);font-weight:800;font-size:1.04rem;letter-spacing:-.012em}
  .brand .wm-title b{font-weight:800;color:var(--ink)}
  .brand .wm-title i{font-weight:800;font-style:normal;color:var(--signal)}
  nav .brand .wm-title i{color:var(--signal-deep)}
  .brand .wm-sub{font-family:var(--sans);font-weight:600;font-size:.575rem;line-height:1;letter-spacing:.355em;text-transform:uppercase;color:rgba(13,15,19,.5);padding-left:.04em}
  .nav-links{display:flex;align-items:center;gap:32px;font-size:.92rem;font-weight:500}
  .nav-links a:not(.btn){color:var(--slate);transition:color .2s}
  .nav-links a:not(.btn):hover{color:var(--ink)}
  .nav-links a.active{color:var(--ink);text-decoration:underline;text-decoration-color:var(--signal-deep);text-decoration-thickness:2px;text-underline-offset:7px}
  .btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--sans);font-weight:600;font-size:.92rem;padding:.68rem 1.35rem;border-radius:100px;cursor:pointer;border:1px solid transparent;transition:transform .2s,background .2s,color .2s,border-color .2s;white-space:nowrap}
  .btn-primary{background:var(--ink);color:var(--cream)}
  .btn-primary:hover{background:var(--signal-deep);transform:translateY(-2px)}
  .btn-ghost{background:transparent;border-color:var(--ink);color:var(--ink)}
  .btn-ghost:hover{background:var(--ink);color:var(--cream)}
  .nav-links .btn{padding:.52rem 1.1rem}
  .nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;margin-right:-9px;padding:11px 9px;border:0;background:none;cursor:pointer}
  .nav-toggle span{display:block;height:2px;width:100%;background:var(--ink);border-radius:2px;transition:transform .3s ease,opacity .2s ease}
  nav.open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  nav.open .nav-toggle span:nth-child(2){opacity:0}
  nav.open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .btn-primary.on-dark{background:var(--signal);color:var(--ink)}
  .btn-primary.on-dark:hover{background:var(--cream)}
  .btn-ghost.on-dark{border-color:var(--line-light);color:var(--cream)}
  .btn-ghost.on-dark:hover{background:var(--cream);color:var(--ink);border-color:var(--cream)}

  /* hero */
  header{position:relative;background:var(--ink);color:var(--cream);padding:clamp(72px,11vw,128px) 0 clamp(56px,8vw,96px);overflow:hidden}
  header::before{content:"";position:absolute;inset:0;opacity:.55;background-image:linear-gradient(var(--line-light) 1px,transparent 1px),linear-gradient(90deg,var(--line-light) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(ellipse 78% 72% at 28% 18%,#000 28%,transparent 74%);mask-image:radial-gradient(ellipse 78% 72% at 28% 18%,#000 28%,transparent 74%)}
  .hero-grid{position:relative;display:grid;grid-template-columns:1.12fr .88fr;gap:clamp(30px,5vw,72px);align-items:center}
  .hero-copy h1{font-size:clamp(2.5rem,6vw,4.5rem);margin:1.1rem 0 1.4rem}
  .hero-copy h1 em{font-style:italic;color:var(--signal)}
  .hero-copy .sub{font-family:var(--serif);font-style:italic;font-size:clamp(1.1rem,1.9vw,1.4rem);color:rgba(245,241,233,.82);margin-bottom:1.3rem}
  .hero-copy p.lead{font-size:clamp(1.02rem,1.6vw,1.2rem);color:rgba(245,241,233,.72);max-width:42ch;margin-bottom:2.1rem;line-height:1.55}
  .hero-cta{display:flex;gap:13px;flex-wrap:wrap;margin-bottom:1.6rem}
  .hero-meta{font-size:.82rem;color:rgba(245,241,233,.5);letter-spacing:.02em}
  .hero-meta b{color:var(--signal)}

  /* book */
  .book-stage{position:relative;display:flex;justify-content:center;align-items:center;min-height:380px}
  .book{display:block;width:min(300px,76%);height:auto;border-radius:3px 7px 7px 3px;box-shadow:-24px 34px 64px rgba(0,0,0,.55),0 2px 8px rgba(0,0,0,.4);transform:rotate(-6deg) perspective(1000px) rotateY(12deg);transition:transform .6s cubic-bezier(.2,.8,.2,1)}
  .book:hover{transform:rotate(-3deg) perspective(1000px) rotateY(6deg) translateY(-8px)}

  /* trust bar */
  .trust{background:var(--ink);border-top:1px solid var(--line-light);padding:30px 0}
  .trust .wrap{display:flex;align-items:center;justify-content:center;gap:clamp(22px,4vw,56px);flex-wrap:wrap}
  .trust .label{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(245,241,233,.4);font-weight:600}
  .trust .logos{display:flex;align-items:center;gap:clamp(20px,3.5vw,46px);flex-wrap:wrap;justify-content:center}
  .trust .logos span{font-family:var(--serif);font-size:1.05rem;font-weight:600;color:rgba(245,241,233,.62);letter-spacing:.01em;transition:color .25s}
  .trust .logos span:hover{color:var(--cream)}

  /* value strip */
  .values{background:var(--cream);padding:clamp(58px,8vw,92px) 0}
  .values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:16px;overflow:hidden}
  .value{background:var(--cream-pure);padding:36px 32px}
  .value .n{font-family:var(--serif);font-size:1.05rem;color:var(--signal-deep);margin-bottom:14px}
  .value h3{font-size:1.32rem;margin-bottom:.6rem}
  .value p{color:var(--slate);font-size:.97rem}

  section.block{padding:clamp(62px,9vw,116px) 0}
  .sec-mark{font-family:var(--sans);font-size:.76rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--signal-deep);margin-bottom:1.1rem;display:flex;align-items:center;gap:12px}
  .sec-mark .num{font-family:var(--serif);font-size:1rem;color:var(--ink);background:var(--paper);border-radius:7px;padding:2px 10px}
  h2.big{font-size:clamp(2rem,4.3vw,3.25rem);max-width:19ch;margin-bottom:1.5rem}

  /* problem */
  .problem{background:var(--cream-pure);border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}
  .problem-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,80px);align-items:start}
  .fail-list{list-style:none;display:flex;flex-direction:column;gap:0;margin-top:6px}
  .fail-list li{display:flex;gap:14px;font-size:1.05rem;padding:18px 0;border-bottom:1px solid var(--line-soft)}
  .fail-list li::before{content:"—";color:var(--signal-deep);font-weight:700}
  .stat{background:var(--ink);color:var(--cream);border-radius:18px;padding:40px 36px}
  .stat .figure{font-family:var(--serif);font-size:clamp(3.2rem,7vw,4.6rem);line-height:1;color:var(--signal)}
  .stat p{margin-top:14px;color:rgba(245,241,233,.78)}
  .stat .kicker{margin-top:26px;padding-top:22px;border-top:1px solid var(--line-light);font-family:var(--serif);font-size:1.22rem;line-height:1.38}

  /* shift */
  .shift{background:var(--ink);color:var(--cream)}
  .shift .sec-mark{color:var(--signal)}
  .shift .sec-mark .num{background:var(--ink-soft);color:var(--cream)}
  .shift h2.big{color:var(--cream)}
  .shift .intro{color:rgba(245,241,233,.76);max-width:62ch;font-size:1.1rem;margin-bottom:3rem}
  .shift-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
  .shift-card{border:1px solid var(--line-light);border-radius:16px;padding:32px 28px;transition:border-color .3s,transform .3s,background .3s}
  .shift-card:hover{border-color:var(--signal);transform:translateY(-5px);background:var(--ink-soft)}
  .shift-card .from{font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--slate)}
  .shift-card h3{font-size:1.55rem;margin:10px 0 14px;color:var(--cream)}
  .shift-card .to{color:rgba(245,241,233,.68);font-size:.97rem}

  /* system (7 real components) */
  .system{background:var(--paper)}
  .sys-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px;margin-top:2.4rem}
  .sys-card{background:var(--cream-pure);border:1px solid var(--line-soft);border-radius:16px;padding:28px 26px;transition:transform .3s,box-shadow .3s;display:flex;flex-direction:column}
  .sys-card:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(13,15,19,.1)}
  .sys-card.span6{grid-column:span 6}
  .sys-card.span4{grid-column:span 4}
  .sys-card .sc-top{display:flex;align-items:baseline;gap:12px;margin-bottom:14px}
  .sys-card .sc-n{font-family:var(--serif);font-size:1.5rem;color:var(--signal-deep);font-weight:600;line-height:1}
  .sys-card .sc-cat{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--slate);font-weight:600}
  .sys-card h3{font-size:1.28rem;margin-bottom:.5rem}
  .sys-card p{color:var(--slate);font-size:.94rem;line-height:1.5}

  /* foreword / credibility callout */
  .foreword{background:var(--cream)}
  .fw-box{background:var(--ink);color:var(--cream);border-radius:20px;padding:clamp(40px,6vw,68px);position:relative;overflow:hidden}
  .fw-box::after{content:"";position:absolute;width:340px;height:340px;border-radius:50%;background:radial-gradient(circle,rgba(94,200,218,.20),transparent 70%);bottom:-130px;left:-80px}
  .fw-box .q{font-family:var(--serif);font-size:clamp(1.4rem,2.8vw,2rem);line-height:1.32;position:relative;max-width:28ch}
  .fw-box .q em{color:var(--signal);font-style:italic}
  .fw-box .attr{margin-top:1.8rem;position:relative;display:flex;align-items:center;gap:14px}
  .fw-box .attr .dot{width:42px;height:42px;border-radius:50%;background:var(--ink-card);border:1px solid var(--signal);display:grid;place-items:center;font-family:var(--serif);color:var(--signal);font-weight:600;flex-shrink:0}
  .fw-box .attr .who{background:transparent}
  .fw-box .attr .who b{display:block;color:var(--cream);font-weight:600}
  .fw-box .attr .who span{font-size:.9rem;color:rgba(245,241,233,.6)}
  .fw-box.with-portrait{display:grid;grid-template-columns:1fr auto;gap:clamp(14px,3vw,40px);align-items:center}
  .fw-box .fw-portrait{position:relative}
  .fw-box .fw-portrait img{display:block;width:clamp(230px,30vw,340px);height:auto}
  .fw-box.with-portrait.compact .fw-portrait img{width:clamp(160px,19vw,240px)}
  @media(max-width:600px){
    .fw-box.with-portrait{grid-template-columns:1fr;gap:14px;justify-items:center;text-align:center}
    .fw-box .fw-portrait{order:-1}
    .fw-box .fw-portrait img{width:min(260px,72%)}
    .fw-box.with-portrait.compact .fw-portrait img{width:min(220px,84%)}
    .fw-box.with-portrait .q{max-width:none}
    .fw-box.with-portrait .attr{justify-content:center}
  }

  /* testimonials */
  .praise-grid{columns:2;column-gap:24px;margin-top:2.2rem}
  .quote{break-inside:avoid;background:#fff;border:1px solid rgba(13,15,19,.12);border-radius:16px;padding:30px 28px;margin-bottom:24px;box-shadow:0 2px 10px rgba(13,15,19,.06);transition:transform .3s,box-shadow .3s}
  .quote:hover{transform:translateY(-4px);box-shadow:0 10px 28px rgba(13,15,19,.12)}
  .quote .qm{font-family:var(--serif);font-size:2.4rem;line-height:.6;color:var(--signal-deep);font-weight:600}
  .quote p{font-size:1.04rem;line-height:1.55;margin:14px 0 18px;color:var(--ink-soft)}
  .quote .by{border-top:1px solid rgba(13,15,19,.09);padding-top:14px}
  .quote .by b{font-family:var(--serif);font-size:1.05rem;font-weight:600;display:block;color:var(--ink)}
  .quote .by span{font-size:.86rem;color:var(--slate);line-height:1.4;display:block;margin-top:2px}

  /* pricing */
  .pricing{background:var(--cream)}
  .price-card{max-width:580px;margin:0 auto;background:var(--ink);color:var(--cream);border-radius:24px;padding:clamp(36px,5vw,56px);text-align:center;position:relative;overflow:hidden}
  .price-card::after{content:"";position:absolute;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(94,200,218,.24),transparent 70%);top:-100px;right:-70px}
  .price-card>*{position:relative}
  .price-card h2{font-size:clamp(1.7rem,3.5vw,2.4rem);margin:.4rem 0 1rem;color:var(--cream)}
  .price-card .desc{color:rgba(245,241,233,.72);margin-bottom:2rem}
  .price-tag{font-family:var(--serif);font-size:clamp(3rem,8vw,4.4rem);line-height:1}
  .price-tag .cur{font-size:1.6rem;vertical-align:super;color:var(--signal)}
  .price-sub{color:rgba(245,241,233,.58);font-size:.9rem;margin:.6rem 0 2rem}
  .secure{margin-top:1.2rem;font-size:.82rem;color:rgba(245,241,233,.48)}

  /* author */
  .author{background:var(--ink);color:var(--cream)}
  .author-grid{display:grid;grid-template-columns:.78fr 1.22fr;gap:clamp(30px,5vw,64px);align-items:center}
  .portrait{aspect-ratio:4/5;border-radius:18px;position:relative;overflow:hidden;background:linear-gradient(160deg,#262b34,#13161b);border:1px solid var(--line-light);display:grid;place-items:center}
  .portrait img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 22%}
  .portrait .mono{font-family:var(--serif);font-size:clamp(4rem,12vw,7rem);color:var(--signal);font-weight:600}
  .portrait .pgrid{position:absolute;inset:0;background-image:linear-gradient(var(--line-light) 1px,transparent 1px),linear-gradient(90deg,var(--line-light) 1px,transparent 1px);background-size:32px 32px;opacity:.5}
  .author .sec-mark{color:var(--signal)}
  .author h2{font-size:clamp(2rem,4.3vw,3rem);color:var(--cream);margin-bottom:1.2rem}
  .author p.bio{color:rgba(245,241,233,.78);font-size:1.06rem;max-width:54ch;margin-bottom:1.8rem}
  .creds{list-style:none;display:flex;flex-direction:column;gap:12px}
  .creds li{display:flex;gap:12px;color:rgba(245,241,233,.86)}
  .creds li::before{content:"—";color:var(--signal)}

  /* who */
  .who{background:var(--cream)}
  .who-tags{display:flex;flex-wrap:wrap;gap:13px;margin-top:1.7rem}
  .who-tags span{border:1px solid var(--ink);border-radius:100px;padding:.7rem 1.4rem;font-weight:500;font-size:1rem;transition:background .25s,color .25s;cursor:default}
  .who-tags span:hover{background:var(--ink);color:var(--cream)}

  /* faq */
  .faq{background:var(--cream-pure);border-top:1px solid var(--line-soft)}
  .faq-list{margin-top:1.7rem;border-top:1px solid var(--line)}
  details{border-bottom:1px solid var(--line)}
  summary{list-style:none;cursor:pointer;padding:24px 0;display:flex;justify-content:space-between;align-items:center;gap:20px;font-family:var(--serif);font-size:clamp(1.1rem,2vw,1.4rem);font-weight:500}
  summary::-webkit-details-marker{display:none}
  summary .plus{flex-shrink:0;width:31px;height:31px;border-radius:50%;border:1.5px solid var(--ink);display:grid;place-items:center;position:relative;transition:transform .3s,background .3s}
  summary .plus::before,summary .plus::after{content:"";position:absolute;background:var(--ink);transition:opacity .3s,background .3s}
  summary .plus::before{width:12px;height:1.8px}
  summary .plus::after{width:1.8px;height:12px}
  details[open] summary .plus{background:var(--ink);transform:rotate(135deg)}
  details[open] summary .plus::before,details[open] summary .plus::after{background:var(--cream)}
  details .answer{padding:0 0 26px;color:var(--slate);font-size:1.03rem;max-width:64ch}

  /* community */
  .community{background:var(--ink);color:var(--cream);text-align:center}
  .community h2{font-size:clamp(2rem,4.3vw,3.1rem);color:var(--cream);max-width:19ch;margin:1rem auto 1.2rem}
  .community p{color:rgba(245,241,233,.74);max-width:56ch;margin:0 auto 2.3rem;font-size:1.07rem}
  .signup{display:grid;gap:10px;max-width:520px;margin:0 auto}
  .sf-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .signup input{width:100%;padding:.9rem 1.2rem;border-radius:12px;border:1px solid var(--line-light);background:rgba(255,255,255,.06);color:var(--cream);font-family:var(--sans);font-size:.97rem}
  .signup input::placeholder{color:rgba(245,241,233,.38)}
  .signup input:focus{outline:none;border-color:var(--signal);background:rgba(255,255,255,.09)}
  .sf-submit{width:100%;justify-content:center;border-radius:12px;margin-top:4px}
  .signup-note{margin-top:1rem;font-size:.82rem;color:rgba(245,241,233,.45)}
  #signup-ok{margin-top:1.2rem;color:var(--signal);font-weight:600;display:none}
  @media(max-width:520px){.sf-row{grid-template-columns:1fr}}

  footer{background:var(--ink);color:rgba(245,241,233,.6);padding:42px 0;border-top:1px solid var(--line-light)}
  footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;align-items:center;font-size:.86rem}
  footer .brand .wm-title b{color:var(--cream)}
  footer .brand .wm-sub{color:rgba(245,241,233,.5)}
  footer .tm{font-size:.78rem}

  .reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.2,1)}
  .reveal.in{opacity:1;transform:none}

  @media(max-width:920px){
    .hero-grid{grid-template-columns:1fr}
    .book-stage{order:-1;min-height:auto;margin-bottom:22px}
    .book{width:min(208px,56%)}
    .values-grid,.shift-grid{grid-template-columns:1fr}
    .sys-card.span6,.sys-card.span4{grid-column:span 12}
    .problem-grid,.author-grid,.speak-grid{grid-template-columns:1fr}
    .speak-img{aspect-ratio:4/3;order:0}
    .author-grid .portrait{max-width:300px}
    .praise-grid{columns:1}
    .nav-toggle{display:flex}
    .nav-links{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:rgba(245,241,233,.97);backdrop-filter:blur(16px);border-bottom:1px solid var(--line-soft);box-shadow:0 18px 40px rgba(13,15,19,.1);padding:10px 0 16px;display:none}
    nav.open .nav-links{display:flex}
    .nav-links a:not(.btn){padding:15px 30px;font-size:1.05rem}
    .nav-links a.active{text-underline-offset:5px}
    .nav-links .btn{margin:10px 30px 4px;text-align:center}
  }

/* ---------- subpages (page.php / index.php) ---------- */
.page-shell{background:var(--cream);min-height:62vh;padding:clamp(60px,9vw,112px) 0}
.page-shell .wrap{max-width:760px}
.page-shell h1.page-title{font-size:clamp(2.2rem,5vw,3.4rem);margin-bottom:1.4rem}
.page-content{font-size:1.08rem;color:var(--ink-soft)}
.page-content h2{font-family:var(--serif);font-size:1.85rem;margin:2.2rem 0 1rem;letter-spacing:-.02em}
.page-content h3{font-family:var(--serif);font-size:1.35rem;margin:1.6rem 0 .7rem}
.page-content p{margin-bottom:1.1rem}
.page-content a{color:var(--signal-deep);text-decoration:underline;text-underline-offset:3px}
.page-content ul,.page-content ol{margin:0 0 1.1rem 1.3rem}
.page-content li{margin-bottom:.4rem}
.page-content img{border-radius:14px;margin:1.6rem 0}
.page-content blockquote{border-left:3px solid var(--signal-deep);padding-left:1.2rem;font-family:var(--serif);font-style:italic;font-size:1.3rem;margin:1.6rem 0;color:var(--ink)}
.post-meta{color:var(--slate);font-size:.9rem;margin-bottom:1.5rem}

/* ---------- hand-coded subpages (author / book / system / speaking) ---------- */
.subhero{position:relative;background:var(--ink);color:var(--cream);overflow:hidden;padding:clamp(70px,11vw,128px) 0 clamp(56px,8vw,96px)}
.subhero::before{content:"";position:absolute;inset:0;opacity:.5;background-image:linear-gradient(var(--line-light) 1px,transparent 1px),linear-gradient(90deg,var(--line-light) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(ellipse 78% 76% at 24% 16%,#000 26%,transparent 74%);mask-image:radial-gradient(ellipse 78% 76% at 24% 16%,#000 26%,transparent 74%)}
.subhero .wrap{position:relative}
.subhero-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(30px,5vw,64px);align-items:center}
.subhero h1{font-size:clamp(2.3rem,5.4vw,4rem);margin:1rem 0 1.2rem;line-height:1.02}
.subhero h1 em{font-style:italic;color:var(--signal)}
.subhero .sub{font-family:var(--serif);font-style:italic;font-size:clamp(1.1rem,1.9vw,1.4rem);color:rgba(245,241,233,.82);margin-bottom:1.2rem}
.subhero p.lead{font-size:clamp(1.02rem,1.6vw,1.18rem);color:rgba(245,241,233,.72);max-width:46ch;line-height:1.55}
.subhero .hero-cta{margin-top:2rem}
.subhero .media{display:flex;justify-content:center;align-items:center}
.subhero .portrait{width:min(300px,80%)}

.sp{padding:clamp(58px,8.5vw,108px) 0}
.sp.cream{background:var(--cream)}
.sp.pure{background:var(--cream-pure);border-top:1px solid var(--line-soft)}
.sp.paper{background:var(--paper)}
.sp.dark{background:var(--ink);color:var(--cream)}
.sp.dark .sec-mark{color:var(--signal)}
.sp.dark .sec-mark .num{background:var(--ink-soft);color:var(--cream)}
.sp.dark h2.big,.sp.dark h2{color:var(--cream)}
.sp .lead-p{font-size:clamp(1.06rem,1.7vw,1.22rem);line-height:1.6;color:var(--slate);max-width:60ch}
.sp.dark .lead-p{color:rgba(245,241,233,.76)}
.sp .prose{max-width:64ch;font-size:1.08rem;line-height:1.7;color:var(--ink-soft)}
.sp.dark .prose{color:rgba(245,241,233,.82)}
.sp .prose p{margin-bottom:1.2rem}
.sp .prose p:last-child{margin-bottom:0}

/* learn / offerings grid */
.feat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;margin-top:2.4rem}
.feat{background:var(--cream-pure);border:1px solid var(--line-soft);border-radius:16px;padding:30px 28px;transition:transform .3s,box-shadow .3s}
.feat:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(13,15,19,.1)}
.feat .fi{min-width:42px;width:max-content;height:42px;padding:0 12px;border-radius:11px;background:var(--ink);display:grid;place-items:center;color:var(--signal);font-family:var(--serif);font-size:1.1rem;font-weight:600;white-space:nowrap;margin-bottom:16px}
.feat h3{font-size:1.24rem;margin-bottom:.5rem}
.feat p{color:var(--slate);font-size:.97rem;line-height:1.55}
.sp.dark .feat{background:var(--ink-soft);border-color:var(--line-light)}
.sp.dark .feat h3{color:var(--cream)}
.sp.dark .feat p{color:rgba(245,241,233,.7)}

/* editorial outbound links */
.prose a,.feat p a,.by a{color:var(--signal-deep);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;transition:color .2s}
.prose a:hover,.by a:hover{color:var(--signal)}
/* author credential cards: links without underline */
.feat p a{text-decoration:none}
.feat p a:hover{color:var(--signal)}
.feat h3 a{color:inherit;text-decoration:none;transition:color .2s}
.feat h3 a:hover{color:var(--signal-deep)}
.sp.dark .prose a,.sp.dark .feat p a,.sp.dark .by a{color:var(--signal)}
.sp.dark .feat h3 a:hover{color:var(--signal)}
/* foreword box is always dark */
.fw-box .who a{color:var(--signal);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;transition:opacity .2s}
.fw-box .who a:hover{opacity:.75}

/* speaking topics grid */
.speak-grid{display:grid;grid-template-columns:1fr 280px;gap:clamp(24px,3vw,40px);align-items:center}
.speak-img{border-radius:16px;overflow:hidden;position:relative;aspect-ratio:3/4;width:280px;margin:auto}
.speak-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top}

/* simple numbered/learn list */
.learn-list{list-style:none;margin-top:2rem;display:grid;gap:0;max-width:62ch}
.learn-list li{display:flex;gap:16px;padding:18px 0;border-bottom:1px solid var(--line-soft);font-size:1.07rem;line-height:1.5}
.sp.dark .learn-list li{border-color:var(--line-light);color:rgba(245,241,233,.88)}
.learn-list li::before{content:"→";color:var(--signal-deep);font-weight:700;flex-shrink:0}
.sp.dark .learn-list li::before{color:var(--signal)}

/* meta facts row */
.facts{display:flex;flex-wrap:wrap;gap:14px;margin-top:2.2rem}
.fact{border:1px solid var(--line-light);border-radius:12px;padding:16px 22px;min-width:150px}
.sp.cream .fact,.sp.pure .fact,.sp.paper .fact{border-color:var(--line)}
.fact .k{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--slate);font-weight:600;margin-bottom:6px}
.sp.dark .fact .k{color:rgba(245,241,233,.55)}
.fact .v{font-family:var(--serif);font-size:1.25rem;font-weight:600}
.sp.dark .fact .v{color:var(--cream)}

/* bottom CTA band */
.page-cta{background:var(--ink);color:var(--cream);text-align:center}
.page-cta h2{font-size:clamp(1.9rem,4vw,2.8rem);color:var(--cream);max-width:20ch;margin:.6rem auto 1rem}
.page-cta p{color:rgba(245,241,233,.74);max-width:54ch;margin:0 auto 2rem;font-size:1.06rem}
.page-cta .hero-cta{justify-content:center}

/* back link */
.backlink{display:flex;width:max-content;align-items:center;gap:8px;font-size:.85rem;font-weight:600;letter-spacing:.02em;color:rgba(245,241,233,.6);text-decoration:none;margin-bottom:1rem}
.backlink:hover{color:var(--signal)}

/* contact / enquiry form */
.cform-wrap{max-width:680px}
.cform{display:grid;gap:16px;margin-top:2.2rem}
.cf-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.cf-field label{display:block;font-family:var(--sans);font-size:.78rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--slate);margin-bottom:7px}
.cf-field .req{color:var(--signal-deep)}
.cform input,.cform textarea{width:100%;padding:.85rem 1.1rem;border-radius:12px;border:1px solid var(--line);background:var(--cream-pure);color:var(--ink);font-family:var(--sans);font-size:1rem;transition:border-color .2s,box-shadow .2s}
.cform input:focus,.cform textarea:focus{outline:none;border-color:var(--signal);box-shadow:0 0 0 3px rgba(94,200,218,.25)}
.cform textarea{min-height:200px;resize:vertical;line-height:1.55}
.cf-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0;pointer-events:none}
.cform-submit{width:max-content;margin-top:6px}
.cform-note{margin-top:1.1rem;font-size:.85rem;color:var(--slate)}
.cform-note .req{color:var(--signal-deep)}
.cform-ok{display:none;margin-top:1.6rem;padding:20px 24px;border-radius:14px;background:rgba(94,200,218,.12);border:1px solid var(--signal);color:var(--ink);font-weight:500;font-size:1.05rem}
.cf-opt{font-weight:400;text-transform:none;letter-spacing:0;color:var(--slate);font-size:.92em}
@media(max-width:600px){.cf-row{grid-template-columns:1fr}.cform-submit{width:100%;justify-content:center}}

/* contact page: info aside + form */
.contact-grid{display:grid;grid-template-columns:330px 1fr;gap:clamp(30px,5vw,64px);align-items:start;margin-top:2.4rem}
.contact-portrait{border-radius:18px;overflow:hidden;aspect-ratio:4/5;border:1px solid var(--line-soft)}
.contact-portrait img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}
.contact-details{display:grid;gap:10px;margin-top:1.5rem}
.contact-detail{display:flex;align-items:center;gap:13px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;color:var(--ink);text-decoration:none;transition:border-color .2s,background .2s}
.contact-detail:hover{border-color:var(--signal);background:var(--cream-pure)}
.contact-detail .cd-ic{flex-shrink:0;width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:var(--ink);color:var(--signal)}
.contact-detail .cd-ic svg{width:18px;height:18px}
.contact-detail .cd-txt{display:flex;flex-direction:column;font-size:.95rem;line-height:1.3;word-break:break-word}
.contact-detail .cd-txt b{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--slate);font-weight:600;margin-bottom:2px}
.contact-social{display:flex;gap:10px;margin-top:1.4rem}
.contact-social a{width:42px;height:42px;border-radius:11px;border:1px solid var(--line);display:grid;place-items:center;color:var(--ink-soft);transition:transform .2s,border-color .2s,color .2s}
.contact-social a:hover{transform:translateY(-2px);border-color:var(--signal);color:var(--signal-deep)}
.contact-social a svg{width:19px;height:19px}
.contact-form-col .sec-mark{margin-top:0}
.subhero .lead a{color:var(--signal);text-decoration:underline;text-underline-offset:3px;transition:opacity .2s}
.subhero .lead a:hover{opacity:.75}
@media(max-width:760px){.contact-grid{grid-template-columns:1fr}.contact-portrait{max-width:300px}}

/* footer links */
.foot-nav{display:flex;gap:22px;flex-wrap:wrap;position:static;background:none;backdrop-filter:none;border:0;z-index:auto}
.foot-nav a{color:rgba(245,241,233,.6);text-decoration:none;font-size:.86rem;transition:color .2s}
.foot-nav a:hover{color:var(--signal)}

@media(max-width:920px){
  .subhero-grid{grid-template-columns:1fr}
  .subhero .media{order:-1;margin-bottom:10px}
  .subhero .portrait{max-width:260px}
  .speak-grid{grid-template-columns:1fr}
  .speak-img{order:-1;margin:0 auto 1.5rem}
}

/* footer meta row */
.foot-meta{display:flex;align-items:center;gap:18px;flex-wrap:wrap;font-size:.84rem;color:rgba(245,241,233,.5)}
.foot-meta a{color:rgba(245,241,233,.5);text-decoration:none;transition:color .2s;display:flex;align-items:center;gap:5px}
.foot-meta a:hover{color:var(--signal)}

/* cookie consent bar */
.cookie-bar{position:fixed;bottom:0;left:0;right:0;z-index:200;background:var(--ink-soft);border-top:1px solid var(--line-light);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 30px;font-size:.86rem;color:rgba(245,241,233,.78)}
.cookie-bar a{color:var(--signal);text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px;transition:text-decoration-color .2s}
.cookie-bar a:hover{text-decoration-color:var(--signal)}
.cookie-bar[hidden]{display:none}
