/* ============================================================
   The Content Engine — shared stylesheet
   Editorial "pine / paper" system. Theme-aware (system + manual toggle).
   No build step, no external fonts. Every page loads only this file.
   ============================================================ */

:root {
  --paper:#F4F4EF; --panel:#FCFCFA; --panel-2:#F0F0EA;
  --ink:#191B17; --ink-soft:#585B50; --ink-faint:#8A8D80;
  --hair:#E0E0D8; --hair-strong:#CFCFC5;
  --accent:#1E5245; --accent-ink:#14382F; --accent-tint:#E8EFE9;
  --accent-contrast:#FCFCFA;
  --c-bofu:#1E5245; --c-mofu:#8F6717; --c-tofu:#39678A;
  --shadow:0 1px 2px rgba(20,30,25,.04), 0 6px 18px rgba(20,30,25,.05);
  --shadow-hover:0 2px 6px rgba(20,30,25,.06), 0 14px 34px rgba(20,30,25,.10);
  --serif:Georgia,'Iowan Old Style','Palatino Linotype','Times New Roman',serif;
  --sans:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --mono:ui-monospace,'SF Mono','Cascadia Code','Roboto Mono',Menlo,Consolas,monospace;
  --maxw:1180px; --readw:44rem;
}
@media (prefers-color-scheme:dark){
  :root{
    --paper:#121411; --panel:#1B1D18; --panel-2:#20231D;
    --ink:#ECEDE5; --ink-soft:#A6A99D; --ink-faint:#767a6d;
    --hair:#2C2F27; --hair-strong:#3A3E33;
    --accent:#63B096; --accent-ink:#8FCDB6; --accent-tint:#1B2A24;
    --accent-contrast:#121411;
    --c-bofu:#63B096; --c-mofu:#C79A4E; --c-tofu:#6FA0C4;
    --shadow:0 1px 2px rgba(0,0,0,.30), 0 6px 20px rgba(0,0,0,.34);
    --shadow-hover:0 2px 8px rgba(0,0,0,.36), 0 16px 40px rgba(0,0,0,.46);
  }
}
:root[data-theme="light"]{
  --paper:#F4F4EF; --panel:#FCFCFA; --panel-2:#F0F0EA;
  --ink:#191B17; --ink-soft:#585B50; --ink-faint:#8A8D80;
  --hair:#E0E0D8; --hair-strong:#CFCFC5;
  --accent:#1E5245; --accent-ink:#14382F; --accent-tint:#E8EFE9;
  --accent-contrast:#FCFCFA;
  --c-bofu:#1E5245; --c-mofu:#8F6717; --c-tofu:#39678A;
  --shadow:0 1px 2px rgba(20,30,25,.04), 0 6px 18px rgba(20,30,25,.05);
  --shadow-hover:0 2px 6px rgba(20,30,25,.06), 0 14px 34px rgba(20,30,25,.10);
}
:root[data-theme="dark"]{
  --paper:#121411; --panel:#1B1D18; --panel-2:#20231D;
  --ink:#ECEDE5; --ink-soft:#A6A99D; --ink-faint:#767a6d;
  --hair:#2C2F27; --hair-strong:#3A3E33;
  --accent:#63B096; --accent-ink:#8FCDB6; --accent-tint:#1B2A24;
  --accent-contrast:#121411;
  --c-bofu:#63B096; --c-mofu:#C79A4E; --c-tofu:#6FA0C4;
  --shadow:0 1px 2px rgba(0,0,0,.30), 0 6px 20px rgba(0,0,0,.34);
  --shadow-hover:0 2px 8px rgba(0,0,0,.36), 0 16px 40px rgba(0,0,0,.46);
}

*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;} *{transition:none !important;animation:none !important;}}

body.site{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--sans); font-size:17px; line-height:1.6;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
img{max-width:100%; height:auto; display:block;}
a{color:var(--accent); text-underline-offset:2px;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 clamp(16px,4vw,40px);}

.skip-link{
  position:absolute; left:-999px; top:0; z-index:200;
  background:var(--accent); color:var(--accent-contrast); padding:10px 16px; border-radius:0 0 8px 0;
  font:600 14px/1 var(--sans);
}
.skip-link:focus{left:0;}

/* ---------------- Top nav ---------------- */
.nav{position:sticky; top:0; z-index:100; background:color-mix(in srgb,var(--paper) 88%,transparent); backdrop-filter:saturate(1.2) blur(10px); border-bottom:1px solid var(--hair);}
.nav__inner{max-width:var(--maxw); margin:0 auto; padding:10px clamp(16px,4vw,40px); display:flex; align-items:center; gap:18px;}
.nav__brand{display:inline-flex; align-items:center; gap:9px; text-decoration:none; color:var(--ink); font-family:var(--serif); font-weight:600; font-size:19px; letter-spacing:-.01em; margin-right:auto;}
.nav__brand .mark{width:26px; height:26px; flex:none; display:grid; place-items:center; border-radius:7px; background:var(--accent); color:var(--accent-contrast); font-family:var(--mono); font-size:14px; font-weight:700;}
.nav__links{display:flex; align-items:center; gap:4px; list-style:none; margin:0; padding:0;}
.nav__link{display:inline-block; text-decoration:none; color:var(--ink-soft); font-size:14.5px; font-weight:500; padding:8px 11px; border-radius:7px; white-space:nowrap;}
.nav__link:hover,.nav__link[aria-current="page"]{color:var(--ink); background:var(--panel-2);}
.nav__cta{display:inline-block; text-decoration:none; background:var(--accent); color:var(--accent-contrast); font-size:14px; font-weight:600; padding:8px 15px; border-radius:8px; white-space:nowrap;}
.nav__cta:hover{filter:brightness(1.06);}
.nav__tools{display:flex; align-items:center; gap:8px;}
.theme-toggle{width:36px; height:36px; flex:none; display:grid; place-items:center; border:1px solid var(--hair-strong); background:var(--panel); color:var(--ink-soft); border-radius:8px; cursor:pointer; font-size:15px;}
.theme-toggle:hover{color:var(--ink); border-color:var(--accent);}
/* mobile menu via checkbox hack (no JS required) */
#nav-toggle{position:absolute; opacity:0; pointer-events:none;}
.nav__burger{display:none; width:38px; height:38px; border:1px solid var(--hair-strong); background:var(--panel); border-radius:8px; cursor:pointer; align-items:center; justify-content:center;}
.nav__burger span,.nav__burger span::before,.nav__burger span::after{content:""; display:block; width:17px; height:2px; background:var(--ink); position:relative; transition:transform .2s ease;}
.nav__burger span::before{position:absolute; top:-6px;}
.nav__burger span::after{position:absolute; top:6px;}

@media (max-width:860px){
  .nav__burger{display:inline-flex;}
  .nav__links{position:fixed; inset:56px 0 auto 0; flex-direction:column; align-items:stretch; gap:2px; background:var(--panel); border-bottom:1px solid var(--hair); padding:10px clamp(16px,4vw,40px) 18px; box-shadow:var(--shadow); transform:translateY(-140%); transition:transform .24s ease; max-height:calc(100vh - 56px); overflow:auto;}
  #nav-toggle:checked ~ .nav__links{transform:translateY(0);}
  .nav__link{padding:12px 8px; font-size:16px; border-bottom:1px solid var(--hair);}
  .nav__links .nav__cta{margin-top:10px; text-align:center; padding:12px;}
}

/* ---------------- Buttons ---------------- */
.btn{display:inline-flex; align-items:center; gap:8px; text-decoration:none; font-family:var(--sans); font-weight:600; font-size:15px; padding:12px 20px; border-radius:9px; border:1px solid transparent; cursor:pointer; line-height:1; transition:transform .14s ease, box-shadow .14s ease, filter .14s ease;}
.btn:hover{transform:translateY(-1px);}
.btn--primary{background:var(--accent); color:var(--accent-contrast); box-shadow:var(--shadow);}
.btn--primary:hover{box-shadow:var(--shadow-hover); filter:brightness(1.05);}
.btn--ghost{background:transparent; color:var(--accent); border-color:color-mix(in srgb,var(--accent) 45%,transparent);}
.btn--ghost:hover{background:var(--accent-tint);}
.btn--lg{padding:15px 26px; font-size:16px;}
.btn .arr{transition:transform .16s ease;}
.btn:hover .arr{transform:translateX(3px);}

/* ---------------- Chips / breadcrumbs ---------------- */
.chip{display:inline-flex; align-items:center; gap:6px; font-family:var(--mono); font-size:10.5px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; padding:3px 8px; border-radius:2px; border:1px solid; white-space:nowrap;}
.chip::before{content:""; width:6px; height:6px; border-radius:50%; background:currentColor;}
.chip--bofu{color:var(--c-bofu); border-color:color-mix(in srgb,var(--c-bofu) 40%,transparent); background:color-mix(in srgb,var(--c-bofu) 10%,transparent);}
.chip--mofu{color:var(--c-mofu); border-color:color-mix(in srgb,var(--c-mofu) 40%,transparent); background:color-mix(in srgb,var(--c-mofu) 10%,transparent);}
.chip--tofu{color:var(--c-tofu); border-color:color-mix(in srgb,var(--c-tofu) 40%,transparent); background:color-mix(in srgb,var(--c-tofu) 10%,transparent);}

.breadcrumbs{font-family:var(--mono); font-size:12px; color:var(--ink-faint); letter-spacing:.02em; margin:0 0 18px;}
.breadcrumbs a{color:var(--ink-soft); text-decoration:none;}
.breadcrumbs a:hover{color:var(--accent);}
.breadcrumbs .sep{margin:0 7px; color:var(--hair-strong);}

/* ---------------- Article layout ---------------- */
main{display:block;}
.article{padding:clamp(24px,4vw,44px) 0 40px;}
.article__inner{max-width:var(--readw); margin:0 auto; padding:0 clamp(16px,4vw,40px);}
.article__eyebrow{font-family:var(--mono); font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); margin:0 0 14px; display:flex; gap:12px; align-items:center; flex-wrap:wrap;}
.article__title{font-family:var(--serif); font-weight:600; color:var(--ink); font-size:clamp(28px,5vw,44px); line-height:1.08; letter-spacing:-.012em; margin:0 0 16px; text-wrap:balance;}
.article__title em{font-style:italic; color:var(--accent);}
.article__dek{font-size:clamp(17px,2vw,20px); line-height:1.5; color:var(--ink-soft); margin:0 0 18px; max-width:60ch;}
.article__meta{display:flex; flex-wrap:wrap; gap:8px 18px; align-items:center; font-size:13px; color:var(--ink-faint); padding:14px 0; border-top:1px solid var(--hair); border-bottom:1px solid var(--hair); margin-bottom:8px;}
.article__meta .m-item{display:inline-flex; align-items:center; gap:6px;}

/* ---------------- Prose (the rich text region) ---------------- */
.prose{font-size:17px; line-height:1.72; color:var(--ink);}
.prose > *:first-child{margin-top:0;}
.prose p{margin:0 0 1.15em;}
.prose h2{font-family:var(--serif); font-weight:600; font-size:clamp(23px,3.2vw,30px); line-height:1.18; letter-spacing:-.01em; margin:2em 0 .6em; scroll-margin-top:80px; text-wrap:balance;}
.prose h3{font-family:var(--serif); font-weight:600; font-size:clamp(19px,2.4vw,22px); line-height:1.25; margin:1.6em 0 .5em; scroll-margin-top:80px;}
.prose h4{font-family:var(--sans); font-weight:700; font-size:16px; letter-spacing:.01em; margin:1.4em 0 .4em; color:var(--ink);}
.prose a{color:var(--accent); font-weight:500;}
.prose a:hover{text-decoration-thickness:2px;}
.prose strong{color:var(--ink); font-weight:700;}
.prose em{font-style:italic;}
.prose ul,.prose ol{margin:0 0 1.2em; padding-left:1.4em;}
.prose li{margin:0 0 .5em;}
.prose li::marker{color:var(--accent);}
.prose ul.check{list-style:none; padding-left:0;}
.prose ul.check li{position:relative; padding-left:1.9em; margin-bottom:.6em;}
.prose ul.check li::before{content:"✓"; position:absolute; left:0; top:0; color:var(--accent); font-weight:700;}
.prose blockquote{margin:1.5em 0; padding:14px 20px; border-left:3px solid var(--accent); background:var(--panel); border-radius:0 8px 8px 0; color:var(--ink-soft); font-style:italic;}
.prose blockquote p{margin:0 0 .5em;} .prose blockquote p:last-child{margin:0;}
.prose blockquote cite{display:block; font-style:normal; font-size:14px; color:var(--ink-faint); margin-top:6px;}
.prose hr{border:0; border-top:1px solid var(--hair); margin:2.4em 0;}
.prose code{font-family:var(--mono); font-size:.86em; background:var(--panel-2); border:1px solid var(--hair); padding:1px 5px; border-radius:4px;}
.prose figure{margin:1.6em 0;} .prose figcaption{font-size:13.5px; color:var(--ink-faint); margin-top:8px; text-align:center;}

/* tables */
.table-scroll{overflow-x:auto; margin:1.6em 0; border:1px solid var(--hair); border-radius:10px; box-shadow:var(--shadow);}
.prose table{width:100%; border-collapse:collapse; font-size:14.5px; min-width:520px;}
.prose thead th{background:var(--panel-2); color:var(--ink); font-family:var(--sans); font-weight:700; text-align:left; padding:11px 14px; border-bottom:2px solid var(--hair-strong); font-size:13px; letter-spacing:.01em; vertical-align:bottom;}
.prose tbody td{padding:11px 14px; border-bottom:1px solid var(--hair); color:var(--ink-soft); vertical-align:top;}
.prose tbody tr:last-child td{border-bottom:0;}
.prose tbody tr:nth-child(even) td{background:color-mix(in srgb,var(--panel-2) 55%,transparent);}
.prose tbody td strong{color:var(--ink);}

/* ---------------- Callout / CTA boxes ---------------- */
.callout{margin:1.8em 0; padding:22px 24px; border-radius:12px; border:1px solid var(--hair-strong); background:var(--panel); box-shadow:var(--shadow);}
.callout__label{font-family:var(--mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--accent); margin:0 0 8px;}
.callout__title{font-family:var(--serif); font-size:20px; font-weight:600; color:var(--ink); margin:0 0 8px; line-height:1.2;}
.callout p{margin:0 0 14px; color:var(--ink-soft); font-size:15.5px; line-height:1.55;}
.callout p:last-child{margin:0;}
.callout--magnet{background:var(--accent-tint); border-color:color-mix(in srgb,var(--accent) 30%,transparent);}
.callout--magnet .callout__title{color:var(--accent-ink);}
.callout--book{border-left:4px solid var(--accent);}
.callout__actions{display:flex; flex-wrap:wrap; gap:10px; margin-top:4px;}

/* ---------------- Reel / video embed component ---------------- */
.reel-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:16px; margin:1.8em 0;}
.reel-embed{position:relative; aspect-ratio:9/16; border-radius:12px; overflow:hidden; background:linear-gradient(160deg,var(--panel-2),var(--panel)); border:1px dashed var(--hair-strong); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; text-align:center; padding:18px; color:var(--ink-faint);}
.reel-embed iframe,.reel-embed video,.reel-embed blockquote{position:absolute; inset:0; width:100%; height:100%; border:0;}
.reel-embed .play{width:52px; height:52px; border-radius:50%; background:var(--accent); color:var(--accent-contrast); display:grid; place-items:center; font-size:20px; box-shadow:var(--shadow);}
.reel-embed .rlabel{font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase;}
.reel-embed .rhint{font-size:12px; line-height:1.4; max-width:22ch;}

/* ---------------- FAQ (native <details>) ---------------- */
.faq{margin:1.8em 0; border-top:1px solid var(--hair);}
.faq details{border-bottom:1px solid var(--hair);}
.faq summary{cursor:pointer; list-style:none; padding:16px 40px 16px 2px; position:relative; font-family:var(--serif); font-size:18px; font-weight:600; color:var(--ink); line-height:1.3;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+"; position:absolute; right:6px; top:14px; font-family:var(--sans); font-size:22px; color:var(--accent); transition:transform .2s ease;}
.faq details[open] summary::after{transform:rotate(45deg);}
.faq .faq__a{padding:0 2px 18px; color:var(--ink-soft); font-size:16px; line-height:1.65;}
.faq .faq__a p{margin:0 0 .8em;} .faq .faq__a p:last-child{margin:0;}

/* ---------------- "Keep reading" related links ---------------- */
.related{margin:2.4em 0 0; padding-top:22px; border-top:2px solid var(--ink);}
.related h2{font-family:var(--mono); font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-faint); margin:0 0 16px;}
.related__grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:12px;}
.related__card{display:block; text-decoration:none; color:inherit; background:var(--panel); border:1px solid var(--hair); border-radius:10px; padding:15px 16px; box-shadow:var(--shadow); transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;}
.related__card:hover{transform:translateY(-2px); box-shadow:var(--shadow-hover); border-color:var(--hair-strong);}
.related__card .rc-title{font-family:var(--serif); font-size:16px; font-weight:600; color:var(--ink); line-height:1.25; margin:8px 0 4px; display:block;}
.related__card .rc-kw{font-family:var(--mono); font-size:11.5px; color:var(--ink-faint);}

/* ---------------- Homepage ---------------- */
.hero{padding:clamp(40px,7vw,86px) 0 clamp(30px,5vw,54px); border-bottom:1px solid var(--hair);}
.hero__eyebrow{font-family:var(--mono); font-size:12.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); margin:0 0 18px;}
.hero h1{font-family:var(--serif); font-weight:600; font-size:clamp(34px,6.4vw,62px); line-height:1.03; letter-spacing:-.015em; margin:0 0 20px; max-width:16ch; text-wrap:balance;}
.hero h1 em{font-style:italic; color:var(--accent);}
.hero__dek{font-size:clamp(17px,2.1vw,21px); line-height:1.55; color:var(--ink-soft); max-width:56ch; margin:0 0 28px;}
.hero__actions{display:flex; flex-wrap:wrap; gap:12px; align-items:center;}
.hero__trust{margin-top:22px; font-size:13.5px; color:var(--ink-faint);}

.section{padding:clamp(40px,6vw,70px) 0;}
.section--alt{background:var(--panel);}
.section__label{font-family:var(--mono); font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-faint); margin:0 0 8px; display:flex; align-items:center; gap:14px;}
.section__label::after{content:""; flex:1; height:1px; background:var(--hair);}
.section__title{font-family:var(--serif); font-weight:600; font-size:clamp(26px,4vw,38px); line-height:1.12; letter-spacing:-.01em; margin:0 0 12px; text-wrap:balance;}
.section__intro{font-size:17px; color:var(--ink-soft); max-width:60ch; margin:0 0 32px;}

.pillar-cards{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.pillar-card{display:flex; flex-direction:column; background:var(--panel); border:1px solid var(--hair); border-top:3px solid var(--accent); border-radius:12px; padding:22px 22px 20px; box-shadow:var(--shadow);}
.pillar-card__num{font-family:var(--serif); font-style:italic; font-size:13px; color:var(--ink-faint); margin:0 0 8px;}
.pillar-card__title{font-family:var(--serif); font-size:22px; font-weight:600; line-height:1.18; margin:0 0 8px;}
.pillar-card__title a{color:var(--ink); text-decoration:none;}
.pillar-card__title a:hover{color:var(--accent);}
.pillar-card__desc{font-size:14.5px; color:var(--ink-soft); line-height:1.55; margin:0 0 16px;}
.pillar-card__links{list-style:none; margin:0 0 16px; padding:0; display:flex; flex-direction:column; gap:2px; border-top:1px solid var(--hair); padding-top:12px;}
.pillar-card__links a{display:block; text-decoration:none; color:var(--ink-soft); font-size:14px; padding:6px 0; border-bottom:1px solid var(--hair);}
.pillar-card__links li:last-child a{border-bottom:0;}
.pillar-card__links a:hover{color:var(--accent);}
.pillar-card__foot{margin-top:auto;}
.pillar-card__foot a{font-size:13.5px; font-weight:600; color:var(--accent); text-decoration:none; display:inline-flex; gap:6px; align-items:center;}

.steps{display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:18px;}
.step{background:var(--panel); border:1px solid var(--hair); border-radius:12px; padding:20px; box-shadow:var(--shadow);}
.step__n{width:34px; height:34px; display:grid; place-items:center; border-radius:9px; background:var(--accent); color:var(--accent-contrast); font-family:var(--mono); font-weight:700; font-size:15px; margin-bottom:12px;}
.step h3{font-family:var(--serif); font-size:18px; font-weight:600; margin:0 0 6px;}
.step p{font-size:14.5px; color:var(--ink-soft); margin:0; line-height:1.55;}

.cta-band{margin:0; padding:clamp(40px,6vw,64px) 0; background:var(--accent); color:var(--accent-contrast);}
.cta-band .wrap{text-align:center;}
.cta-band h2{font-family:var(--serif); font-weight:600; font-size:clamp(26px,4vw,38px); line-height:1.12; margin:0 auto 14px; max-width:20ch; color:var(--accent-contrast);}
.cta-band p{font-size:17px; opacity:.9; max-width:52ch; margin:0 auto 24px;}
.cta-band .btn--primary{background:var(--accent-contrast); color:var(--accent);}
.cta-band .btn--ghost{color:var(--accent-contrast); border-color:color-mix(in srgb,var(--accent-contrast) 55%,transparent);}
.cta-band .btn--ghost:hover{background:color-mix(in srgb,var(--accent-contrast) 12%,transparent);}

/* ---------------- Pricing (service page) ---------------- */
.pricing{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin:1.8em 0;}
.plan{display:flex; flex-direction:column; background:var(--panel); border:1px solid var(--hair); border-radius:14px; padding:24px 22px; box-shadow:var(--shadow);}
.plan--featured{border-color:var(--accent); border-width:2px; box-shadow:var(--shadow-hover);}
.plan__badge{align-self:flex-start; font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--accent-contrast); background:var(--accent); padding:3px 9px; border-radius:20px; margin-bottom:12px;}
.plan__name{font-family:var(--serif); font-size:22px; font-weight:600; margin:0 0 6px;}
.plan__price{font-family:var(--serif); font-size:30px; font-weight:600; color:var(--ink); margin:0 0 4px;}
.plan__price span{font-family:var(--sans); font-size:14px; color:var(--ink-faint); font-weight:400;}
.plan ul{list-style:none; margin:14px 0 20px; padding:0; display:flex; flex-direction:column; gap:9px; font-size:14.5px; color:var(--ink-soft);}
.plan ul li{position:relative; padding-left:24px;}
.plan ul li::before{content:"✓"; position:absolute; left:0; color:var(--accent); font-weight:700;}
.plan .btn{margin-top:auto; justify-content:center;}

/* ---------------- Opt-in form ---------------- */
.optin{max-width:var(--readw); margin:0 auto; padding:clamp(30px,5vw,56px) clamp(16px,4vw,40px);}
.optin__card{background:var(--panel); border:1px solid var(--hair-strong); border-radius:16px; padding:clamp(24px,4vw,40px); box-shadow:var(--shadow-hover);}
.optin__eyebrow{font-family:var(--mono); font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); margin:0 0 14px;}
.optin h1{font-family:var(--serif); font-weight:600; font-size:clamp(28px,4.6vw,42px); line-height:1.08; margin:0 0 14px; text-wrap:balance;}
.optin__sub{font-size:18px; color:var(--ink-soft); line-height:1.5; margin:0 0 22px;}
.optin__list{list-style:none; margin:0 0 26px; padding:0; display:flex; flex-direction:column; gap:11px;}
.optin__list li{position:relative; padding-left:28px; font-size:16px; color:var(--ink);}
.optin__list li::before{content:"✦"; position:absolute; left:0; color:var(--accent);}
.optin__form{display:flex; flex-direction:column; gap:12px; max-width:420px;}
.optin__form input{font-family:var(--sans); font-size:16px; padding:13px 15px; border:1px solid var(--hair-strong); border-radius:9px; background:var(--paper); color:var(--ink);}
.optin__form input:focus{outline:2px solid var(--accent); outline-offset:1px; border-color:var(--accent);}
.optin__form button{font-size:16px; padding:14px; border:0; border-radius:9px; background:var(--accent); color:var(--accent-contrast); font-weight:600; cursor:pointer;}
.optin__form button:hover{filter:brightness(1.06);}
.optin__micro{font-size:13px; color:var(--ink-faint); margin:10px 0 0;}

/* ---------------- Booking embed ---------------- */
.booking{max-width:820px; margin:0 auto; padding:clamp(30px,5vw,56px) clamp(16px,4vw,40px);}
.booking__embed{margin-top:24px; border:1px dashed var(--hair-strong); border-radius:14px; background:var(--panel); min-height:520px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; text-align:center; padding:40px; color:var(--ink-faint);}
.booking__embed iframe{width:100%; min-height:640px; border:0; border-radius:14px;}

/* ---------------- Footer ---------------- */
.site-footer{margin-top:60px; border-top:1px solid var(--hair); background:var(--panel);}
.site-footer__inner{max-width:var(--maxw); margin:0 auto; padding:clamp(34px,5vw,52px) clamp(16px,4vw,40px) 30px; display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:28px;}
.site-footer__brand{font-family:var(--serif); font-size:19px; font-weight:600; color:var(--ink); margin:0 0 10px; display:inline-flex; align-items:center; gap:9px;}
.site-footer__brand .mark{width:24px; height:24px; flex:none; display:grid; place-items:center; border-radius:6px; background:var(--accent); color:var(--accent-contrast); font-family:var(--mono); font-size:13px; font-weight:700;}
.site-footer p{font-size:13.5px; color:var(--ink-soft); line-height:1.6; margin:0 0 12px; max-width:34ch;}
.site-footer h4{font-family:var(--mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint); margin:0 0 12px;}
.site-footer ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px;}
.site-footer a{font-size:14px; color:var(--ink-soft); text-decoration:none;}
.site-footer a:hover{color:var(--accent);}
.site-footer__social{display:flex; gap:10px; margin-top:4px;}
.site-footer__bottom{max-width:var(--maxw); margin:0 auto; padding:16px clamp(16px,4vw,40px); border-top:1px solid var(--hair); display:flex; flex-wrap:wrap; gap:8px 18px; justify-content:space-between; font-size:12.5px; color:var(--ink-faint);}
@media (max-width:860px){
  .site-footer__inner{grid-template-columns:1fr 1fr;}
  .pillar-cards,.pricing{grid-template-columns:1fr;}
}
@media (max-width:560px){
  .site-footer__inner{grid-template-columns:1fr;}
}

/* utilities */
.center{text-align:center;}
.muted{color:var(--ink-faint);}
.mt-0{margin-top:0;} .mb-0{margin-bottom:0;}
.visually-hidden{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;}
