/* =====================================================================
   GATEWAY ACUPUNCTURE & ALCHEMY — Design System
   Direction: "Candlelit Sanctuary" hybrid (dark bookends, cream interior)
   See ../01-brand/brand-guide.md for tokens & rules.
   ===================================================================== */

:root{
  --abyss:#081820;
  --ink:#0C2230;
  --ink2:#10293A;
  --bone:#EFE6D5;
  --bone2:#E7DCC6;
  --bone-dim:#C9BFAC;
  --body-dark:#3B3F38;
  --mist:#8FA3AC;
  --gold:#C8A45D;
  --gold-deep:#8C6A2F;
  --gold-pale:#E6CD93;
  --cinnabar:#B5472E;
  --hl-dark:rgba(200,164,93,.26);
  --hl-light:rgba(140,106,47,.3);
  --serif:'Fraunces',Georgia,serif;
  --italic:'Newsreader',Georgia,serif;
  --sans:'Karla',-apple-system,sans-serif;
  --cjk:"Songti SC","SimSun","Noto Serif SC",serif;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--bone);color:var(--body-dark);
  font-family:var(--sans);font-weight:300;line-height:1.7;
  overflow-x:hidden;
}
::selection{background:var(--gold);color:var(--ink)}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.12;color:var(--ink)}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.wrap{max-width:1180px;margin:0 auto;padding:0 32px;position:relative}
.wrap-narrow{max-width:820px;margin:0 auto;padding:0 32px;position:relative}

/* ----- dark surfaces + grain ----- */
.dark{position:relative;background:var(--ink);color:var(--bone-dim)}
.dark h1,.dark h2,.dark h3{color:var(--bone)}
.dark::after{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.06;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ----- atoms ----- */
.kicker{
  display:flex;align-items:center;gap:14px;
  font-size:.72rem;letter-spacing:.34em;text-transform:uppercase;
  font-weight:600;margin-bottom:24px;color:var(--gold-deep);
}
.kicker::before{content:"";width:38px;height:1px;background:currentColor;opacity:.7}
.dark .kicker{color:var(--gold)}
.kicker.center{justify-content:center}
.kicker.center::after{content:"";width:38px;height:1px;background:currentColor;opacity:.7}

.btn{
  display:inline-block;padding:17px 38px;
  font-size:.78rem;letter-spacing:.24em;text-transform:uppercase;font-weight:600;
  transition:all .3s;cursor:pointer;border:none;
}
.btn-solid{background:var(--gold);color:var(--ink)}
.btn-solid:hover{background:var(--gold-pale)}
.btn-line{border:1px solid var(--hl-dark);color:var(--gold);background:transparent}
.btn-line:hover{border-color:var(--gold);background:rgba(200,164,93,.08)}
.btn-line.lt{border-color:var(--hl-light);color:var(--gold-deep)}
.btn-line.lt:hover{border-color:var(--gold-deep);background:rgba(140,106,47,.07)}

.lnk{color:var(--gold-deep);position:relative;white-space:nowrap}
.dark .lnk{color:var(--gold)}
.lnk::after{
  content:"";position:absolute;left:0;bottom:-3px;width:100%;height:1px;
  background:currentColor;transform:scaleX(0);transform-origin:left;
  transition:transform .35s cubic-bezier(.22,1,.36,1);
}
.lnk:hover::after{transform:scaleX(1)}

.seal{
  display:inline-grid;place-items:center;width:54px;height:54px;
  background:var(--cinnabar);color:var(--bone);
  font-family:var(--cjk);font-size:1.9rem;border-radius:6px;
  transform:rotate(-4deg);box-shadow:0 6px 22px rgba(181,71,46,.3);
}

.glyph{
  position:absolute;z-index:0;pointer-events:none;user-select:none;
  font-family:var(--cjk);color:transparent;line-height:1;
  font-size:clamp(260px,32vw,460px);
}
.dark .glyph{-webkit-text-stroke:1px rgba(200,164,93,.13)}
.lt-sec .glyph{-webkit-text-stroke:1px rgba(140,106,47,.13)}

/* ----- reveals (progressive enhancement: visible unless JS confirms it can animate;
   a truncated/blocked script can never leave content stuck invisible) ----- */
.io{transition:opacity .5s ease,transform .5s ease}
html.js .io{opacity:0;transform:translateY(18px)}
html.js .io.lit{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  html.js .io{opacity:1;transform:none;transition:none}
  .hero-stage>*{animation:none!important;opacity:1!important}
}

/* ----- nav ----- */
nav.site-nav{
  position:sticky;top:0;z-index:80;
  background:rgba(8,24,32,.88);backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(200,164,93,.14);
}
.nav-in{max-width:1320px;margin:0 auto;padding:0 32px;height:88px;display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;gap:13px}
.brand .brand-lockup{height:72px;width:auto;display:block}
@media(max-width:560px){.brand .brand-lockup{height:66px}}
.f-logo{display:block;height:150px;width:auto;margin:0 auto 48px}
@media(max-width:560px){.f-logo{height:110px;margin-bottom:36px}}
.award-line{font-family:'Fraunces',Georgia,serif;font-size:1.04rem;letter-spacing:.01em;line-height:1.5}
.award-line em{font-style:italic;color:var(--gold-deep)}
.aw-mark{color:var(--gold);font-size:.78em;vertical-align:.08em;margin:0 .35em}
.f-award{text-align:center;font-size:.72rem;letter-spacing:.13em;color:var(--gold);opacity:.85;margin:32px 0;text-transform:uppercase}
/* group heading: used by the Education list; Speaking groups use .talk-group>.gh below */
.gh{font-family:var(--sans);font-size:.72rem;letter-spacing:.26em;text-transform:uppercase;font-weight:600;color:var(--gold-deep);margin-bottom:14px}
/* cookie consent banner */
.cookie-banner{position:fixed;left:0;right:0;bottom:0;z-index:200;background:var(--ink);color:var(--bone-dim);border-top:1px solid var(--hl-dark);padding:14px 22px;display:flex;gap:14px 24px;align-items:center;justify-content:center;flex-wrap:wrap;font-size:.82rem;line-height:1.5}
.cookie-banner p{margin:0;max-width:64ch}
.cookie-banner a{color:var(--gold);text-decoration:underline}
.cookie-ok{flex:0 0 auto;padding:10px 26px;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600;background:var(--gold);color:var(--ink);border:none;cursor:pointer}
.cookie-ok:hover{background:var(--gold-pale)}
.cookie-banner[hidden]{display:none}
/* newsletter band */
.news-band{background:var(--bone2);padding:40px 0 74px;text-align:center;position:relative;z-index:2}
.news-band h2{margin:8px 0 14px}
.news-band p{max-width:50ch;margin:0 auto 28px;color:var(--body-dark)}
/* education / credentials list */
.cred-list{margin-top:38px;position:relative;z-index:2}
.cred-group{margin-top:44px}
.cred-group:first-child{margin-top:22px}
.cred{display:grid;grid-template-columns:110px 1fr;gap:28px;align-items:baseline;padding:18px 0;border-top:1px solid var(--hl-light)}
.cred .cy{font-family:var(--serif);font-size:1.25rem;color:var(--gold-deep);line-height:1.1;white-space:nowrap}
.cred h3{font-size:1.18rem;margin-bottom:2px}
.cred .inst{font-size:.86rem;color:var(--mist);margin:0}
@media(max-width:560px){.cred{grid-template-columns:78px 1fr;gap:16px}.cred .cy{font-size:1.05rem}}
.nav-l{display:flex;gap:32px;align-items:center}
.nav-l a:not(.btn){font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mist);transition:color .3s}
.nav-l a:not(.btn):hover,.nav-l a.active{color:var(--gold)}
.nav-l .btn{padding:12px 26px}
.nav-toggle{display:none;background:none;border:none;color:var(--gold);font-size:1.6rem;cursor:pointer}
@media(max-width:920px){
  .nav-l{display:none;position:absolute;top:88px;left:0;right:0;background:var(--abyss);flex-direction:column;padding:28px;gap:22px;border-bottom:1px solid var(--hl-dark)}
  .nav-l.open{display:flex}
  .nav-toggle{display:block}
}
/* nav dropdown (Explore) */
.nav-drop{position:relative;display:flex;align-items:center}
.nav-drop-t{background:none;border:none;cursor:pointer;font-family:var(--sans);font-weight:300;font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--mist);display:flex;align-items:center;gap:7px;padding:0;transition:color .3s}
.nav-drop-t .caret{font-size:.62em;transition:transform .3s}
.nav-drop:hover .nav-drop-t,.nav-drop:focus-within .nav-drop-t{color:var(--gold)}
.nav-drop-t.active{color:var(--gold)}
.nav-drop:hover .caret,.nav-drop:focus-within .caret{transform:rotate(180deg)}
.nav-drop-m{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(10px);min-width:188px;background:rgba(8,24,32,.97);backdrop-filter:blur(14px);border:1px solid var(--hl-dark);padding:10px 0;display:flex;flex-direction:column;opacity:0;visibility:hidden;transition:opacity .25s ease,transform .25s ease;z-index:90}
.nav-drop-m::before{content:"";position:absolute;top:-14px;left:0;right:0;height:14px}
.nav-drop:hover .nav-drop-m,.nav-drop:focus-within .nav-drop-m{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.nav-drop-m a{padding:9px 24px;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--bone-dim);white-space:nowrap;transition:color .25s}
.nav-drop-m a:hover,.nav-drop-m a.active{color:var(--gold)}
@media(max-width:920px){
  .nav-drop{width:100%;flex-direction:column;align-items:flex-start}
  .nav-drop-t{color:var(--gold);width:100%}
  .nav-drop-m{position:static;transform:none;opacity:1;visibility:visible;background:none;border:none;backdrop-filter:none;min-width:0;padding:14px 0 0 16px;margin-top:14px;border-left:1px solid var(--hl-dark)}
  .nav-drop-m::before{display:none}
  .nav-drop-m a{padding:6px 0}
}

/* ----- hero (homepage) ----- */
.hero{min-height:92vh;display:flex;background:var(--abyss);overflow:hidden;position:relative}
.hero .bg{position:absolute;inset:0;background-position:center 30%;background-size:cover;opacity:.42;filter:saturate(.85)}
.hero .veil{
  position:absolute;inset:0;background:
  radial-gradient(900px 600px at 18% 30%,rgba(200,164,93,.15),transparent 60%),
  linear-gradient(100deg,rgba(8,24,32,.95) 8%,rgba(8,24,32,.7) 48%,rgba(8,24,32,.3) 100%);
}
.hero-stage{position:relative;z-index:3;flex:1;display:flex;flex-direction:column;justify-content:center;padding:90px 7vw 80px}
.hero-stage>*{opacity:0;transform:translateY(22px);animation:rise .9s cubic-bezier(.22,1,.36,1) forwards}
@keyframes rise{to{opacity:1;transform:none}}
.hero-stage .hk{animation-delay:.1s;display:flex;align-items:center;gap:14px;font-size:.72rem;letter-spacing:.34em;text-transform:uppercase;font-weight:600;color:var(--gold);margin-bottom:24px}
.hero-stage .hk::before{content:"";width:38px;height:1px;background:var(--gold)}
.hero-stage h1{animation-delay:.22s;color:var(--bone);font-size:clamp(3rem,6.2vw,5.4rem);font-weight:300;max-width:13ch}
.hero-stage h1 em{font-style:italic;color:var(--gold);font-weight:300}
.hero-sub{animation-delay:.36s;font-family:var(--italic);font-style:italic;font-size:1.28rem;color:var(--bone-dim);max-width:48ch;margin-top:28px}
.hero-cta{animation-delay:.5s;margin-top:42px;display:flex;flex-direction:column;gap:14px;align-items:flex-start;max-width:560px}
.hero-cta-primary{width:100%;text-align:center}
.hero-cta-row{display:flex;gap:14px;width:100%}
.hero-cta-row .btn{flex:1 1 0;text-align:center;white-space:nowrap;letter-spacing:.12em;padding-left:8px;padding-right:8px}
@media(max-width:700px){.hero-cta-row{flex-direction:column}.hero-cta-row .btn{flex:none;width:100%}}
.hero-proof{animation-delay:.62s;margin-top:48px;font-size:.82rem;letter-spacing:.14em;color:var(--mist)}
.hero-proof .stars,.stars{color:var(--gold);letter-spacing:.3em;font-size:.95rem}

/* ----- page hero (interior pages) ----- */
.page-hero{position:relative;background:var(--abyss);padding:110px 0 80px;overflow:hidden}
.page-hero .bg{position:absolute;inset:0;background-position:center;background-size:cover;opacity:.3;filter:saturate(.8)}
.page-hero .veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,24,32,.7),rgba(8,24,32,.94))}
.page-hero .wrap{z-index:3}
.page-hero h1{color:var(--bone);font-size:clamp(2.6rem,5vw,4.2rem);font-weight:300;max-width:18ch}
.page-hero .sub{font-family:var(--italic);font-style:italic;font-size:1.2rem;color:var(--bone-dim);max-width:52ch;margin-top:22px}

/* ----- credo strip ----- */
.credo{background:var(--abyss);border-top:1px solid rgba(200,164,93,.12)}
.credo .in{max-width:1320px;margin:0 auto;padding:24px 32px;display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}
.credo span{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--bone-dim);display:flex;align-items:center;gap:12px}
.credo span::before{content:"";width:5px;height:5px;background:var(--gold);transform:rotate(45deg)}

/* ----- sections ----- */
section.blk{position:relative;padding:120px 0;overflow:hidden}
section.blk-sm{position:relative;padding:80px 0;overflow:hidden}
.lt-sec{background:var(--bone)}
.lt-sec.alt{background:var(--bone2)}
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:84px;align-items:center;position:relative;z-index:2}
@media(max-width:900px){.split{grid-template-columns:1fr;gap:44px}}
.blk h2,.blk-sm h2{font-size:clamp(2.1rem,3.6vw,3.2rem);font-weight:300;max-width:19ch}
.body-p{margin-top:20px;max-width:54ch}
.pull{
  font-family:var(--italic);font-style:italic;font-weight:300;
  font-size:1.4rem;line-height:1.5;color:var(--ink);
  border-left:1px solid var(--gold-deep);padding-left:24px;margin:32px 0;max-width:44ch;
}
.dark .pull{border-color:var(--gold);color:var(--bone)}

/* ----- imagery ----- */
.frame{position:relative}
.frame img{aspect-ratio:4/5;object-fit:cover;filter:saturate(.9) contrast(1.02)}
.frame::before{content:"";position:absolute;inset:-1px;border:1px solid var(--hl-light);transform:translate(20px,20px);z-index:-1}
.dark .frame::before{border-color:var(--hl-dark)}
.frame .seal{position:absolute;right:-26px;top:-26px;z-index:3;box-shadow:0 10px 28px rgba(8,24,32,.35)}
.frame .seal.left{right:auto;left:-26px}

/* ----- ledger list ----- */
.ledger{columns:2;gap:60px;margin-top:44px;max-width:780px;position:relative;z-index:2}
@media(max-width:700px){.ledger{columns:1}}
.ledger>div,.ledger>a{
  break-inside:avoid;padding:14px 4px;border-bottom:1px solid var(--hl-light);
  display:flex;justify-content:space-between;align-items:baseline;
  font-size:1.02rem;transition:padding-left .3s,color .3s;
}
.ledger>div:hover,.ledger>a:hover{padding-left:14px;color:var(--ink)}
.ledger i{font-style:normal;color:var(--gold-deep);font-size:.7rem;letter-spacing:.18em}

/* ----- offer cards (dark) ----- */
.offer{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:rgba(200,164,93,.22);margin:50px 0;position:relative;z-index:2}
@media(max-width:760px){.offer{grid-template-columns:1fr}}
.offer>div{background:rgba(8,24,32,.92);padding:42px 38px;transition:background .35s}
.offer>div:hover{background:rgba(16,41,58,.95)}
.offer h3{font-size:1.45rem;margin-bottom:12px}
.offer .n{font-family:var(--serif);font-style:italic;color:var(--gold);display:block;margin-bottom:16px}

/* ----- numbered grid (standard / values) ----- */
.std-grid{margin-top:60px;display:grid;grid-template-columns:repeat(3,1fr);gap:50px 56px;position:relative;z-index:2}
@media(max-width:900px){.std-grid{grid-template-columns:1fr;gap:38px}}
.std-it .rn{font-family:var(--serif);font-style:italic;font-weight:300;font-size:2.5rem;color:var(--gold-deep);line-height:1}
.dark .std-it .rn{color:var(--gold)}
.std-it h3{font-size:1.2rem;font-weight:500;margin:12px 0 8px}
.std-it p{font-size:.95rem}

/* ----- steps ----- */
.steps{margin-top:64px;position:relative;z-index:2}
.step{display:grid;grid-template-columns:110px 1fr 300px;gap:38px;align-items:center;padding:40px 0;border-top:1px solid var(--hl-light)}
.step:last-of-type{border-bottom:1px solid var(--hl-light)}
@media(max-width:900px){.step{grid-template-columns:1fr;gap:16px}}
.step .num{font-family:var(--serif);font-style:italic;font-weight:300;font-size:3.4rem;color:var(--gold-deep)}
.step h3{font-size:1.45rem;margin-bottom:8px}
.step img{aspect-ratio:4/3;object-fit:cover;object-position:center top;filter:saturate(.9)}

/* ----- pricing ----- */
.price-bar{
  margin-top:74px;position:relative;z-index:2;background:var(--ink);color:var(--bone-dim);
  padding:46px 50px;display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap;
}
.price-bar .amt,.price-card .amt{font-family:var(--serif);font-weight:300;font-size:2.5rem;color:var(--gold)}
.price-bar .lbl,.price-card .lbl{font-size:.7rem;letter-spacing:.26em;text-transform:uppercase;color:var(--mist);margin-top:4px}
.price-bar .note{font-family:var(--italic);font-style:italic;max-width:30ch;font-size:1.05rem}
.price-bar.grid{display:grid;grid-template-columns:160px 180px 1fr 270px;gap:28px;align-items:start;justify-content:initial}
.price-bar.grid .note{max-width:none}
.price-bar.grid .btn{width:100%;text-align:center;white-space:nowrap;letter-spacing:.12em;padding-left:14px;padding-right:14px}
@media(max-width:900px){.price-bar.grid{grid-template-columns:1fr;gap:18px}.price-bar.grid .btn{width:auto}}
/* unified card grid — consistent gold-hairline gutters, equal heights, balanced internal rhythm */
.price-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:24px;margin-top:54px;position:relative;z-index:2}
.price-card{background:var(--bone);border:1px solid var(--hl-light);padding:38px 34px;display:flex;flex-direction:column;min-height:280px}
.price-card h3{font-size:1.3rem;margin-bottom:6px;min-height:2.6em;display:flex;align-items:flex-start}
.price-card .meta{font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-deep);margin-bottom:16px}
.price-card p{font-size:.95rem}
.price-card .amt{font-size:2.1rem;margin-top:auto;padding-top:18px}
.dark .price-card{background:rgba(8,24,32,.55);border-color:var(--hl-dark)}
/* 4-up alchemy on its own row so cards never strand */
/* channel-systems pentagon-ish layout: centered last row */
.card-set{display:flex;flex-wrap:wrap;gap:24px;justify-content:center;margin-top:54px;position:relative;z-index:2}
.card-set .price-card{flex:1 1 280px;max-width:340px}

/* ----- reviews ----- */
.rev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:56px;position:relative;z-index:2}
@media(max-width:900px){.rev-grid{grid-template-columns:1fr}}
.rev-card{border-top:1px solid var(--hl-light);padding-top:28px}
.rev-card:nth-child(2){transform:translateY(30px)}
.rev-card:nth-child(3){transform:translateY(60px)}
@media(max-width:900px){.rev-card:nth-child(2),.rev-card:nth-child(3){transform:none}}
.rev-card p{font-family:var(--italic);font-style:italic;font-weight:300;font-size:1.2rem;color:var(--ink);line-height:1.55}
.rev-card cite{display:block;margin-top:18px;font-style:normal;font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-deep)}

/* ----- prose (interior pages, blog, conditions) ----- */
.prose{max-width:68ch;position:relative;z-index:2}
.prose h2{font-size:clamp(1.7rem,2.8vw,2.4rem);margin:54px 0 18px}
.prose h3{font-size:1.3rem;font-weight:500;margin:38px 0 12px}
.prose p{margin-bottom:18px}
.prose ul,.prose ol{margin:0 0 18px 22px}
.prose li{margin-bottom:8px}
.prose strong{color:var(--ink);font-weight:600}
.prose a{color:var(--gold-deep);border-bottom:1px solid var(--hl-light)}
.prose blockquote{
  font-family:var(--italic);font-style:italic;font-size:1.3rem;color:var(--ink);
  border-left:1px solid var(--gold-deep);padding-left:24px;margin:30px 0;
}

/* ----- FAQ accordion ----- */
.faq{border-top:1px solid var(--hl-light);position:relative;z-index:2}
.faq details{border-bottom:1px solid var(--hl-light)}
.faq summary{
  cursor:pointer;list-style:none;padding:24px 40px 24px 4px;position:relative;
  font-family:var(--serif);font-size:1.2rem;color:var(--ink);
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:8px;top:50%;transform:translateY(-50%);color:var(--gold-deep);font-size:1.4rem;font-weight:300;transition:transform .3s}
.faq details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.faq .a{padding:0 4px 26px;max-width:64ch}

/* ----- location card ----- */
.loc-card{position:relative;z-index:2;display:grid;grid-template-columns:1fr 1fr;background:var(--ink2);color:var(--bone-dim)}
@media(max-width:800px){.loc-card{grid-template-columns:1fr}}
.loc-card .map{
  min-height:340px;position:relative;background:
  radial-gradient(220px 140px at 62% 46%,rgba(200,164,93,.3),transparent 70%),
  linear-gradient(rgba(200,164,93,.12) 1px,transparent 1px),
  linear-gradient(90deg,rgba(200,164,93,.12) 1px,transparent 1px),
  var(--abyss);
  background-size:auto,44px 44px,44px 44px,auto;
}
.loc-card .info{padding:52px 48px}
.loc-card h3{font-size:1.7rem;margin-bottom:16px;color:var(--bone)}
.loc-card p{font-size:.98rem}

/* ----- footer ----- */
footer.site-footer{background:var(--abyss);color:var(--bone-dim);padding:88px 0 40px;position:relative;overflow:hidden}
footer.site-footer .glyph{right:-6%;bottom:-30%;font-size:320px;-webkit-text-stroke:1px rgba(200,164,93,.12);color:transparent}
/* (.f-grid removed 2026-06-15 — footer restructured to .f-top / .f-cols) */
footer.site-footer h4{font-family:var(--serif);color:var(--bone);font-weight:400;font-size:1.25rem;margin-bottom:16px}
footer.site-footer p,footer.site-footer a{font-size:.92rem}
footer.site-footer a:hover{color:var(--gold)}
.f-links a{display:block;padding:3px 0}
/* restructured footer (logo left, balanced columns) */
.f-top{display:grid;grid-template-columns:1.15fr 2fr;gap:60px;align-items:start;position:relative;z-index:2}
.f-brand .f-logo{height:220px;width:auto;margin:0 0 22px;display:block}
.f-contact{font-size:.9rem;line-height:1.7;margin:0 0 12px}
.f-contact a{color:inherit}
.f-contact.f-sm{font-size:.82rem;color:var(--mist)}
.f-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}
.f-links .f-all{color:var(--gold);margin-top:10px}
@media(max-width:860px){.f-top{grid-template-columns:1fr;gap:44px}.f-brand .f-logo{margin-left:auto;margin-right:auto}}
@media(max-width:560px){.f-cols{grid-template-columns:1fr 1fr;gap:28px}.f-brand .f-logo{height:140px}}
.f-bot{margin-top:32px;padding-top:26px;border-top:1px solid rgba(200,164,93,.12);display:flex;justify-content:space-between;flex-wrap:nowrap;gap:28px;align-items:baseline;font-size:.92rem;color:var(--mist);position:relative;z-index:2}

/* ----- speaking / engagements list ----- */
.talk-group{margin-top:60px;position:relative;z-index:2}
.talk-group:first-of-type{margin-top:36px}
.talk-group>.gh{display:flex;align-items:center;gap:14px;font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;font-weight:600;color:var(--gold-deep);margin-bottom:2px}
.talk-group>.gh::before{content:"";width:38px;height:1px;background:currentColor;opacity:.7}
.talk{display:grid;grid-template-columns:200px 1fr;gap:40px;align-items:start;padding:34px 0;border-top:1px solid var(--hl-light)}
.talk:last-child{border-bottom:1px solid var(--hl-light)}
.talk .vis img{aspect-ratio:4/3;object-fit:cover;width:100%;filter:saturate(.9) contrast(1.02);border:1px solid var(--hl-light)}
.talk .vis .yr{font-family:var(--serif);font-style:italic;font-weight:300;font-size:2.6rem;color:var(--gold-deep);line-height:1}
.talk .vis .yr small{display:block;font-style:normal;font-size:.66rem;letter-spacing:.26em;text-transform:uppercase;color:var(--mist);margin-top:10px}
.talk h3{font-size:1.28rem;font-weight:500;margin-bottom:8px}
.talk .meta{font-size:.73rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-deep);margin-bottom:12px;line-height:1.7}
.talk p{font-size:.97rem;max-width:62ch}
.talk .q{font-family:var(--italic);font-style:italic;font-size:1.16rem;line-height:1.5;color:var(--ink);border-left:1px solid var(--gold-deep);padding-left:20px;margin-top:16px;max-width:52ch}
@media(max-width:760px){.talk{grid-template-columns:1fr;gap:14px}.talk .vis{max-width:240px}.talk .vis img{aspect-ratio:16/9}}

.price-card.hov{transition:filter .25s ease,transform .25s ease,box-shadow .25s ease}
.price-card.hov:hover{filter:brightness(1.22);transform:translateY(-3px);box-shadow:0 16px 38px rgba(0,0,0,.30)}

/* Responsive: any inline two-column (1fr 1fr) layout collapses to one column on narrow screens; left/first item stacks on top, full width */
@media(max-width:820px){[style*="grid-template-columns:1fr 1fr"]{grid-template-columns:1fr!important}}

/* Footer bottom bar: locations inline with copyright (rolled from About mock 2026-06-16) */
.f-bot span:first-child{flex:0 0 auto}
.f-bot span:last-child{flex:1 1 auto;min-width:0;text-align:right;font-size:.92rem}
@media(max-width:760px){.f-bot{flex-wrap:wrap}.f-bot span:last-child{text-align:left;flex:1 1 100%}}

/* Homepage alchemy offerings: 3 across; 2-up on tablet; stacked on mobile */
.offer.tri{grid-template-columns:repeat(3,1fr);gap:36px;background:none}
.offer.tri>div{border:1px solid var(--hl-dark);padding:34px 30px}
@media(max-width:860px){.offer.tri{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.offer.tri{grid-template-columns:1fr}}
.offer.tri.lt>div{background:var(--bone);border-color:var(--hl-light);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.offer.tri.lt>div:hover{background:var(--bone);transform:translateY(-4px);box-shadow:0 14px 34px rgba(12,34,48,.14);border-color:var(--gold)}
.pay-badge{display:inline-block;border:1px solid var(--gold-deep);border-radius:999px;padding:7px 16px;font-family:var(--sans);font-size:.82rem;font-weight:600;letter-spacing:.02em;color:var(--ink);background:rgba(200,164,93,.16)}
.pay-badge::before{content:"\2713";color:var(--gold-deep);font-weight:700;margin-right:8px}
.pay-badge strong{color:var(--gold-deep);font-weight:700}
.pay-badge.on-dark{color:var(--bone);border-color:var(--gold);background:rgba(200,164,93,.12)}
.pay-badge.on-dark::before,.pay-badge.on-dark strong{color:var(--gold-pale)}
.member-card{max-width:560px;margin:38px auto 0;background:rgba(200,164,93,.07);border:1px solid var(--hl-light);border-radius:3px;padding:42px 46px;position:relative;z-index:2;text-align:center;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.member-card:hover{transform:translateY(-6px);box-shadow:0 20px 46px rgba(12,34,48,.15);border-color:var(--gold)}
.member-card .mc-price{font-family:var(--serif);color:var(--ink);line-height:1}
.member-card .mc-price strong{font-weight:400;font-size:3rem}
.member-card .mc-price span{font-size:1.05rem;color:var(--gold-deep)}
.member-card .mc-sub{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-deep);margin-top:12px}
.member-card .mc-perks{list-style:none;margin:26px 0 0;padding:24px 0 0;border-top:1px solid var(--hl-light);display:inline-block;text-align:left}
.member-card .mc-perks li{position:relative;padding-left:24px;margin:11px 0;font-size:.97rem;color:var(--body-dark)}
.member-card .mc-perks li::before{content:"";position:absolute;left:2px;top:8px;width:6px;height:6px;border-radius:50%;background:var(--gold)}
.member-card .mc-note{margin-top:26px;font-family:var(--italic);font-style:italic;font-size:.92rem;color:var(--ink)}
@media(max-width:560px){.member-card{padding:32px 26px}}
.gratitude{list-style:none;max-width:62ch;margin:38px auto 0;padding:0;position:relative;z-index:2}
.gratitude li{padding:15px 2px;border-bottom:1px solid var(--hl-light);font-size:1.02rem;line-height:1.65;color:var(--body-dark)}
.gratitude li:last-child{border-bottom:none}
.gratitude li strong{color:var(--gold-deep);font-family:var(--serif);font-weight:500}
.write-group{margin-top:50px;position:relative;z-index:2}
.write-group:first-of-type{margin-top:16px}
.cs-note{color:var(--mist);font-family:var(--serif);font-style:italic;font-size:1.05rem;margin-top:14px;padding:22px 26px;border:1px solid var(--hl-light);border-radius:3px;background:rgba(200,164,93,.04)}
.pdf-lightbox{position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;background:rgba(12,34,48,.82);backdrop-filter:blur(3px);padding:24px}
.pdf-lightbox.open{display:flex}
.pdf-modal{background:var(--ink);border:1px solid var(--hl-light);border-radius:4px;width:min(1000px,100%);height:min(86vh,100%);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.5)}
.pdf-modal-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 20px;border-bottom:1px solid var(--hl-light)}
.pdf-modal-bar h4{margin:0;color:var(--bone);font-family:var(--serif);font-weight:500;font-size:1.05rem}
.pdf-modal-bar .pdf-actions{display:flex;align-items:center;gap:20px}
.pdf-modal-bar a{color:var(--gold);font-size:.85rem;text-decoration:none;white-space:nowrap}
.pdf-modal-bar a:hover{color:var(--gold-pale)}
.pdf-modal-bar button{background:none;border:0;color:var(--bone-dim);font-size:1.7rem;line-height:1;cursor:pointer;padding:0 2px}
.pdf-modal-bar button:hover{color:var(--bone)}
.pdf-modal iframe{flex:1;width:100%;border:0;background:var(--ink2)}
/* Phone mockup (reach step): show the whole phone, never crop it */
.step img.phone-shot{object-fit:contain;object-position:center}

.lnk.lt{color:var(--gold-pale)}


/* Channel systems split — acupuncture page (light background) */
.cs-wrap{display:grid;grid-template-columns:0.72fr auto 1.6fr;align-items:start;max-width:1100px;margin:0 auto}
.cs-divider{align-self:stretch;width:1px;margin:0 32px;background:linear-gradient(to bottom,transparent 3%,var(--gold) 50%,transparent 97%)}
.cs-label{font-family:'Karla',system-ui,sans-serif;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-deep);font-weight:600;margin:0 0 18px}
.cs-cards{display:grid;gap:16px}
.cs-comp-cards{grid-template-columns:1fr 1fr}
.cs-count{font-family:'Karla',system-ui,sans-serif;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep);font-weight:600;margin:0 0 8px}
.price-card.lift{transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.price-card.lift:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(12,34,48,.14);border-color:var(--gold)}
@media(max-width:820px){.cs-wrap{grid-template-columns:1fr}.cs-divider{width:auto;height:1px;margin:30px 0;background:linear-gradient(to right,transparent,var(--gold),transparent)}.cs-comp-cards{grid-template-columns:1fr}}
