

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --void:#0B0817;
  --deep:#151028;
  --violet:#8B5CF6;
  --gold:#F5C36B;
  --gold-2:#E2A23B;
  --rose:#E58FB4;
  --text:#F1ECFF;
  --dim:rgba(241,236,255,.6);
  --dim-2:rgba(241,236,255,.38);
  --glass:rgba(255,255,255,.045);
  --stroke:rgba(245,195,107,.16);
  --stroke-2:rgba(255,255,255,.1);
}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:'Outfit',system-ui,sans-serif;font-weight:300;background:var(--void);color:var(--text);line-height:1.7;overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button{font:inherit}
::selection{background:var(--violet);color:#fff}
::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--void)}::-webkit-scrollbar-thumb{background:linear-gradient(var(--violet),var(--gold-2));border-radius:3px}

.serif{font-family:'Fraunces',serif;font-weight:300;font-optical-sizing:auto;letter-spacing:-.015em;line-height:1.1}
.kicker{font-size:.64rem;font-weight:600;letter-spacing:.32em;text-transform:uppercase;color:var(--gold)}
.shine{background:linear-gradient(110deg,#F8D89A 0%,var(--gold) 28%,#FFF3D6 50%,var(--gold) 72%,#D89B36 100%);background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 5s linear infinite}
@keyframes shimmer{to{background-position:200% center}}

/* Cosmic backdrop */
.cosmos{position:fixed;inset:0;z-index:-2;background:radial-gradient(ellipse 90% 60% at 50% -10%,#221646 0%,var(--void) 62%)}
.blob{position:fixed;z-index:-1;border-radius:50%;filter:blur(110px);opacity:.5;pointer-events:none}
.blob.b1{width:540px;height:540px;background:radial-gradient(circle,rgba(139,92,246,.5),transparent 70%);top:-160px;left:-120px;animation:drift1 26s ease-in-out infinite alternate}
.blob.b2{width:460px;height:460px;background:radial-gradient(circle,rgba(226,162,59,.32),transparent 70%);top:30vh;right:-160px;animation:drift2 32s ease-in-out infinite alternate}
.blob.b3{width:420px;height:420px;background:radial-gradient(circle,rgba(229,143,180,.22),transparent 70%);bottom:-140px;left:30vw;animation:drift1 38s ease-in-out infinite alternate-reverse}
@keyframes drift1{to{transform:translate(70px,50px) scale(1.12)}}
@keyframes drift2{to{transform:translate(-60px,-70px) scale(1.08)}}

/* Nav */
nav{position:fixed;inset:0 0 auto 0;z-index:200;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1.5rem;background:rgba(11,8,23,.6);backdrop-filter:blur(18px) saturate(1.3);border-bottom:1px solid var(--stroke-2)}
.brand{display:flex;align-items:center;gap:.6rem;font-family:'Fraunces',serif;font-size:1.1rem;white-space:nowrap}
.brand img{width:34px;height:34px;border-radius:50%;object-fit:cover;box-shadow:0 0 16px rgba(245,195,107,.45)}
.brand b{font-weight:300;font-style:italic;color:var(--gold)}
.nav-links{display:flex;gap:1.7rem;font-size:.8rem;font-weight:400;color:var(--dim)}
.nav-links a{transition:color .25s}
.nav-links a:hover{color:var(--gold)}
.nav-cta{flex-shrink:0;font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#1A1206;background:linear-gradient(135deg,#F8D89A,var(--gold-2));padding:.62rem 1.3rem;border-radius:100px;box-shadow:0 4px 18px rgba(226,162,59,.35);transition:transform .25s,box-shadow .25s}
.nav-cta:hover{transform:translateY(-1px);box-shadow:0 8px 26px rgba(226,162,59,.5)}
.nav-cta .cta-sm{display:none}
.brand{min-width:0}
@media(max-width:600px){.nav-cta .cta-lg{display:none}.nav-cta .cta-sm{display:inline}.nav-cta{padding:.6rem 1.05rem}nav{gap:.6rem;padding:.85rem 1.1rem}}

/* Buttons */
.btn{position:relative;display:inline-flex;align-items:center;gap:.6rem;font-size:.76rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:1.05rem 2.1rem;border-radius:100px;transition:transform .3s,box-shadow .3s;cursor:pointer;border:none;overflow:hidden}
.btn-gold{background:linear-gradient(135deg,#F8D89A,var(--gold-2) 60%,#C98726);color:#1A1206;box-shadow:0 10px 34px rgba(226,162,59,.4)}
.btn-gold::after{content:'';position:absolute;top:0;left:-80%;width:50%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-20deg);transition:left .6s}
.btn-gold:hover{transform:translateY(-2px);box-shadow:0 16px 44px rgba(226,162,59,.55)}
.btn-gold:hover::after{left:130%}
.btn-ghost{border:1px solid var(--stroke);color:var(--text);background:var(--glass);backdrop-filter:blur(8px)}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold);transform:translateY(-2px)}

/* Sections */
.section{padding:6rem 1.5rem;position:relative}
.wrap{max-width:1100px;margin:0 auto}
.head{max-width:660px;margin:0 auto 3.2rem;text-align:center}
.head .kicker{display:inline-flex;align-items:center;gap:.8rem;margin-bottom:1.1rem}
.head .kicker::before,.head .kicker::after{content:'';width:30px;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}
.head .kicker::after{background:linear-gradient(90deg,var(--gold),transparent)}
.head h2{font-size:clamp(2rem,5.4vw,3.2rem);margin-bottom:1rem}
.head h2 em{font-style:italic}
.head p{color:var(--dim);max-width:54ch;margin:0 auto}

/* Hero */
.hero{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:8rem 1.5rem 5rem;position:relative;overflow:hidden}
.orb-zone{position:absolute;top:46%;left:50%;transform:translate(-50%,-50%);width:min(640px,94vw);aspect-ratio:1;pointer-events:none}
.orb-core{position:absolute;inset:33%;border-radius:50%;background:radial-gradient(circle at 38% 35%,rgba(255,236,196,.9),rgba(245,195,107,.45) 38%,rgba(139,92,246,.18) 68%,transparent 75%);filter:blur(8px);animation:pulse 5s ease-in-out infinite}
@keyframes pulse{0%,100%{transform:scale(.92);opacity:.75}50%{transform:scale(1.05);opacity:1}}
.orb-ring{position:absolute;inset:0;border-radius:50%;animation:spin 22s linear infinite}
.orb-ring::before{content:'';position:absolute;inset:0;border-radius:50%;padding:1px;background:conic-gradient(from 0deg,transparent 0 25%,rgba(245,195,107,.8) 33%,transparent 41% 70%,rgba(139,92,246,.7) 80%,transparent 88%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude}
.orb-ring.r2{inset:9%;animation-duration:30s;animation-direction:reverse;opacity:.7}
.orb-ring.r3{inset:19%;animation-duration:40s;opacity:.5}
@keyframes spin{to{transform:rotate(360deg)}}
.star{position:absolute;border-radius:50%;background:#FFEFC9;box-shadow:0 0 6px 1px rgba(255,239,201,.8);animation:twinkle 4s ease-in-out infinite}
@keyframes twinkle{0%,100%{opacity:.15;transform:scale(.7)}50%{opacity:.9;transform:scale(1.15)}}
.hero-in{position:relative;z-index:2;max-width:820px}
.hero-logo{width:92px;height:92px;border-radius:50%;object-fit:cover;margin:0 auto 1.7rem;box-shadow:0 0 0 5px rgba(245,195,107,.12),0 0 50px rgba(245,195,107,.5);animation:float 6s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
.hero .kicker{display:block;margin-bottom:1.3rem}
.hero h1{font-size:clamp(2.7rem,8vw,5rem);margin-bottom:1.4rem}
.hero h1 em{font-style:italic}
.hero-sub{max-width:560px;margin:0 auto 2.4rem;font-size:1.12rem;color:var(--dim)}
.hero-btns{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-bottom:3rem}
.hero-pills{display:flex;gap:.7rem;justify-content:center;flex-wrap:wrap}
.pill{display:inline-flex;align-items:center;gap:.5rem;font-size:.76rem;font-weight:400;color:var(--dim);background:var(--glass);border:1px solid var(--stroke-2);backdrop-filter:blur(8px);padding:.55rem 1.15rem;border-radius:100px}
.pill b{color:var(--text);font-weight:600}

/* City ribbon */
@keyframes scroll{to{transform:translateX(-50%)}}

/* Concern cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.card{position:relative;background:var(--glass);border:1px solid var(--stroke-2);border-radius:20px;padding:1.9rem 1.7rem;backdrop-filter:blur(10px);transition:transform .35s,border-color .35s,box-shadow .35s;overflow:hidden}
.card::before{content:'';position:absolute;inset:0;background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%),rgba(245,195,107,.1),transparent 45%);opacity:0;transition:opacity .4s;pointer-events:none}
.card:hover{transform:translateY(-6px);border-color:var(--stroke);box-shadow:0 24px 50px rgba(0,0,0,.45)}
.card:hover::before{opacity:1}
.card-ico{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:1.45rem;background:linear-gradient(135deg,rgba(245,195,107,.18),rgba(139,92,246,.18));border:1px solid var(--stroke);margin-bottom:1.2rem}
.card h3{font-family:'Fraunces',serif;font-weight:400;font-size:1.3rem;margin-bottom:.5rem}
.card p{font-size:.9rem;color:var(--dim);margin-bottom:1.1rem}
.card-go{font-size:.74rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);display:inline-flex;align-items:center;gap:.45rem;transition:gap .25s}
.card:hover .card-go{gap:.8rem}
.cards-note{text-align:center;margin-top:2.4rem;color:var(--dim)}
.cards-note a{color:var(--gold);font-weight:600;border-bottom:1px solid rgba(245,195,107,.5)}

/* Process */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-bottom:4rem}
.step{position:relative;background:var(--glass);border:1px solid var(--stroke-2);border-radius:20px;padding:2.1rem 1.7rem 1.9rem;backdrop-filter:blur(10px)}
.step-n{position:absolute;top:-1.1rem;left:1.5rem;font-family:'Fraunces',serif;font-style:italic;font-size:2.6rem;line-height:1;color:transparent;-webkit-text-stroke:1px rgba(245,195,107,.55)}
.step-glyph{font-size:1.5rem;margin-bottom:1rem;filter:drop-shadow(0 0 10px rgba(245,195,107,.4))}
.step h3{font-family:'Fraunces',serif;font-weight:400;font-size:1.25rem;margin-bottom:.5rem}
.step p{font-size:.9rem;color:var(--dim)}


/* Pricing */
.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.price{display:flex;flex-direction:column;background:var(--glass);border:1px solid var(--stroke-2);border-radius:20px;padding:1.8rem 1.6rem;backdrop-filter:blur(10px);transition:transform .35s,border-color .35s,box-shadow .35s}
.price:hover{transform:translateY(-6px);border-color:var(--stroke);box-shadow:0 24px 50px rgba(0,0,0,.45)}
.price-top{display:flex;align-items:center;gap:.7rem;margin-bottom:.7rem}
.price-glyph{font-size:1.3rem;filter:drop-shadow(0 0 8px rgba(245,195,107,.4))}
.price h3{font-family:'Fraunces',serif;font-weight:400;font-size:1.18rem}
.price p{font-size:.87rem;color:var(--dim);flex:1;margin-bottom:1.3rem}
.price-foot{display:flex;align-items:center;justify-content:space-between;gap:.8rem}
.price-amt{font-family:'Fraunces',serif;font-size:1.3rem}
.price-amt small{font-family:'Outfit',sans-serif;font-size:.76rem;color:var(--dim);font-weight:400}
.price-book{font-size:.66rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);border:1px solid var(--stroke);padding:.5rem 1.15rem;border-radius:100px;transition:background .25s,color .25s,box-shadow .25s;white-space:nowrap}
.price-book:hover{background:linear-gradient(135deg,#F8D89A,var(--gold-2));color:#1A1206;box-shadow:0 6px 20px rgba(226,162,59,.4)}
.free-row{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.2rem;background:linear-gradient(120deg,rgba(245,195,107,.14),rgba(139,92,246,.14));border:1px solid var(--stroke);border-radius:20px;padding:1.7rem 1.9rem}
.free-row h3{font-family:'Fraunces',serif;font-weight:400;font-size:1.35rem}
.free-row h3 em{font-style:italic;color:var(--gold)}
.free-row p{font-size:.9rem;color:var(--dim);max-width:52ch}
.incl{text-align:center;margin-top:1.6rem;font-size:.82rem;color:var(--dim-2)}
.incl b{color:var(--dim);font-weight:600}

/* Journeys */
.journeys{margin-top:4.6rem}
.j-head{text-align:center;margin-bottom:2rem}
.j-head h3{font-family:'Fraunces',serif;font-weight:300;font-size:clamp(1.6rem,4vw,2.2rem);margin-bottom:1.4rem}
.j-head h3 em{font-style:italic}
.tabs{display:inline-flex;background:var(--glass);border:1px solid var(--stroke-2);border-radius:100px;padding:5px;backdrop-filter:blur(8px)}
.tab{font-size:.76rem;font-weight:600;letter-spacing:.04em;padding:.6rem 1.5rem;border-radius:100px;border:none;background:none;color:var(--dim);cursor:pointer;transition:background .25s,color .25s,box-shadow .25s}
.tab.on{background:linear-gradient(135deg,#F8D89A,var(--gold-2));color:#1A1206;box-shadow:0 4px 16px rgba(226,162,59,.4)}
.tc{display:none}.tc.on{display:block}
.pkg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;align-items:stretch}
.pkg{position:relative;display:flex;flex-direction:column;background:var(--glass);border:1px solid var(--stroke-2);border-radius:22px;padding:2.1rem 1.8rem;backdrop-filter:blur(10px);transition:transform .35s,box-shadow .35s}
.pkg:hover{transform:translateY(-6px)}
.pkg.star{background:linear-gradient(165deg,rgba(245,195,107,.13),rgba(139,92,246,.12));border:1px solid rgba(245,195,107,.45);box-shadow:0 0 60px rgba(245,195,107,.14)}
.pkg-badge{position:absolute;top:-13px;left:50%;transform:translateX(-50%);font-size:.6rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;background:linear-gradient(135deg,#F8D89A,var(--gold-2));color:#1A1206;padding:.36rem 1rem;border-radius:100px;white-space:nowrap;box-shadow:0 6px 18px rgba(226,162,59,.45)}
.pkg h3,.pkg h4{font-family:'Fraunces',serif;font-weight:400;font-size:1.3rem}
.pkg-price{font-family:'Fraunces',serif;font-size:2.4rem;margin:.3rem 0 1.2rem}
.pkg ul{list-style:none;flex:1;margin-bottom:1.6rem}
.pkg li{font-size:.88rem;color:var(--dim);padding:.5rem 0 .5rem 1.5rem;position:relative;border-bottom:1px solid rgba(255,255,255,.06)}
.pkg li::before{content:'✦';position:absolute;left:0;top:.55rem;color:var(--gold);font-size:.75rem;text-shadow:0 0 8px rgba(245,195,107,.6)}
.pkg-cta{text-align:center;font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:.95rem;border-radius:100px;border:1px solid var(--stroke);color:var(--gold);transition:background .25s,color .25s,box-shadow .25s}
.pkg-cta:hover,.pkg.star .pkg-cta{background:linear-gradient(135deg,#F8D89A,var(--gold-2));color:#1A1206;box-shadow:0 8px 24px rgba(226,162,59,.4)}

/* Voices */
.voices{background:linear-gradient(180deg,transparent,rgba(139,92,246,.05) 50%,transparent)}
.voice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.voice{background:var(--glass);border:1px solid var(--stroke-2);border-radius:20px;padding:2rem 1.7rem;backdrop-filter:blur(10px);display:flex;flex-direction:column;transition:transform .35s,border-color .35s}
.voice:hover{transform:translateY(-5px);border-color:var(--stroke)}
.voice-mark{font-family:'Fraunces',serif;font-size:3rem;line-height:.55;color:var(--gold);text-shadow:0 0 18px rgba(245,195,107,.5);margin-bottom:1.1rem}
.voice p{font-size:.93rem;flex:1;margin-bottom:1.4rem;color:var(--text)}
.voice-who{font-weight:600;font-size:.86rem}
.voice-loc{font-size:.74rem;color:var(--dim-2)}

/* Kishan */
.healer{display:grid;grid-template-columns:320px 1fr;gap:3.4rem;align-items:center}
.h-photo{position:relative;width:fit-content;margin:0 auto}
/* The aura used to be a rotating square, whose bounding box grew to its own
   diagonal and pushed the page ~30px wider than the viewport on every phone.
   Cycling the hue keeps the same living effect with a fixed layout box. */
.h-photo::before{content:'';position:absolute;inset:-14px;border-radius:50%;background:conic-gradient(from 0deg,var(--gold),var(--violet),var(--rose),var(--gold));opacity:.55;animation:auraHue 14s linear infinite}
@keyframes auraHue{from{filter:blur(14px) hue-rotate(0deg)}to{filter:blur(14px) hue-rotate(360deg)}}
.h-photo img{position:relative;width:280px;height:280px;border-radius:50%;object-fit:cover;border:3px solid rgba(245,195,107,.4);box-shadow:0 24px 60px rgba(0,0,0,.6)}
.healer h2{font-size:clamp(1.9rem,4.6vw,2.8rem);margin-bottom:.4rem}
.healer h2 em{font-style:italic}
.h-role{font-size:.68rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin-bottom:1.3rem}
.healer p{color:var(--dim);margin-bottom:1.5rem;max-width:58ch}
.certs{display:flex;flex-wrap:wrap;gap:.55rem}
.cert{font-size:.7rem;font-weight:600;background:var(--glass);border:1px solid var(--stroke);padding:.45rem 1rem;border-radius:100px;color:var(--text)}

/* FAQ */
.faq{max-width:700px;margin:0 auto}
details{background:var(--glass);border:1px solid var(--stroke-2);border-radius:16px;margin-bottom:.8rem;backdrop-filter:blur(8px);transition:border-color .3s}
details[open]{border-color:var(--stroke)}
summary{font-family:'Fraunces',serif;font-size:1.06rem;padding:1.2rem 1.4rem;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1rem}
summary::-webkit-details-marker{display:none}
summary::after{content:'+';color:var(--gold);font-size:1.4rem;line-height:1;transition:transform .3s}
details[open] summary::after{transform:rotate(45deg)}
details .a{padding:0 1.4rem 1.3rem;font-size:.92rem;color:var(--dim)}

/* Begin */
.begin{text-align:center;position:relative;overflow:hidden}
.begin::before{content:'';position:absolute;left:50%;bottom:-260px;transform:translateX(-50%);width:720px;height:720px;border-radius:50%;background:radial-gradient(circle,rgba(245,195,107,.22),rgba(139,92,246,.12) 45%,transparent 70%);filter:blur(40px);pointer-events:none}
.begin .wrap{position:relative}
.begin img{width:60px;height:60px;border-radius:50%;object-fit:cover;margin:0 auto 1.4rem;box-shadow:0 0 30px rgba(245,195,107,.55)}
.begin h2{font-size:clamp(1.9rem,5.4vw,3rem);max-width:18ch;margin:0 auto 2.1rem}
.begin h2 em{font-style:italic}
.contacts{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin:2.8rem 0 1.4rem}
.contact{background:var(--glass);border:1px solid var(--stroke-2);border-radius:16px;padding:1.1rem 1.5rem;min-width:175px;backdrop-filter:blur(8px);transition:transform .25s,border-color .25s}
.contact:hover{transform:translateY(-3px);border-color:var(--stroke)}
.contact b{display:block;font-size:.58rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--dim-2);margin-bottom:.25rem}
.contact span{font-size:.86rem;font-weight:400;color:var(--text)}
.pay{font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--dim-2);margin-top:1rem}
.pay b{color:var(--gold);margin:0 .3rem;font-weight:600}
.disc{max-width:600px;margin:2.6rem auto 0;font-size:.72rem;color:var(--dim-2);border-top:1px solid var(--stroke-2);padding-top:1.5rem}

footer{padding:2.2rem 1.5rem;text-align:center;border-top:1px solid var(--stroke-2)}
.foot-brand{font-family:'Fraunces',serif;margin-bottom:.3rem}
.foot-brand b{font-weight:300;font-style:italic;color:var(--gold)}
.foot-copy{font-size:.68rem;color:var(--dim-2)}

.wa{position:fixed;bottom:1.4rem;right:1.4rem;z-index:300;width:56px;height:56px;border-radius:50%;background:#25d366;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 28px rgba(37,211,102,.5);transition:transform .25s}
.wa::before{content:'';position:absolute;inset:-5px;border-radius:50%;border:2px solid rgba(37,211,102,.5);animation:waPulse 2.4s ease-out infinite}
@keyframes waPulse{0%{transform:scale(.85);opacity:1}100%{transform:scale(1.35);opacity:0}}
.wa:hover{transform:scale(1.1)}
.wa svg{width:29px;height:29px;fill:#fff}

.r{opacity:0;transform:translateY(20px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.r.in{opacity:1;transform:none}

@media(max-width:920px){
  .nav-links{display:none}
  .cards,.price-grid,.pkg-grid,.voice-grid,.steps{grid-template-columns:1fr 1fr}
  .healer{grid-template-columns:1fr;text-align:center}
  .healer p{margin-left:auto;margin-right:auto}
  .certs{justify-content:center}
}
@media(max-width:620px){
  .section{padding:4.4rem 1.2rem}
  .hero{padding:7rem 1.2rem 4rem}
  .hero-btns{flex-direction:column;align-items:stretch;width:100%;max-width:310px;margin:0 auto 2.6rem}
  .hero-btns .btn{justify-content:center}
  .cards,.price-grid,.pkg-grid,.voice-grid,.steps{grid-template-columns:1fr}
  .steps{gap:1.8rem}
  .free-row{flex-direction:column;align-items:flex-start}
  .contacts{flex-direction:column;align-items:center}
  .contact{width:100%;max-width:290px}
  .tabs{width:100%}.tab{flex:1;text-align:center}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .r{opacity:1;transform:none}
}


.foot-nav{display:flex;gap:1.4rem;justify-content:center;flex-wrap:wrap;margin-bottom:1.1rem;font-size:.8rem;color:var(--dim)}
.foot-nav a{transition:color .25s}.foot-nav a:hover{color:var(--gold)}


/* —— sub-page additions —— */
.page-top{padding:7.6rem 1.5rem 0;text-align:center}
.page-top .kicker{display:inline-flex;align-items:center;gap:.8rem;margin-bottom:1.1rem}
.page-top .kicker::before,.page-top .kicker::after{content:'';width:30px;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}
.page-top .kicker::after{background:linear-gradient(90deg,var(--gold),transparent)}
.page-top h1{font-size:clamp(2.1rem,5.8vw,3.4rem);margin-bottom:1.1rem;line-height:1.08}
.page-top h1 em{font-style:italic}
.page-top p{color:var(--dim);max-width:62ch;margin:0 auto;font-size:1.02rem}
.nav-links a.active{color:var(--gold)}
.lvl{display:inline-block;font-size:.58rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);background:rgba(245,195,107,.1);border:1px solid var(--stroke);padding:.3rem .75rem;border-radius:100px;margin-bottom:.7rem}
.c-meta{display:flex;flex-wrap:wrap;gap:.45rem;margin:-.2rem 0 1.1rem}
.c-meta span{font-size:.66rem;color:var(--dim);background:rgba(255,255,255,.04);border:1px solid var(--stroke-2);border-radius:100px;padding:.32rem .72rem}
.note-line{text-align:center;margin-top:2.4rem;color:var(--dim);font-size:.92rem}
.note-line a{color:var(--gold);font-weight:600;border-bottom:1px solid rgba(245,195,107,.5)}
.lede{max-width:720px;margin:0 auto 2.6rem;text-align:center;color:var(--dim)}
.foot-nav{display:flex;gap:1.4rem;justify-content:center;flex-wrap:wrap;margin-bottom:1.1rem;font-size:.8rem;color:var(--dim)}
.foot-nav a{transition:color .25s}.foot-nav a:hover{color:var(--gold)}


/* ==========================================================================
   Mobile-first navigation, accessibility and responsive refinements (v2.0)
   ========================================================================== */

/* Skip link for keyboard and screen-reader users */
.skip-link{position:absolute;left:-9999px;top:0;z-index:400;background:var(--gold);color:#1A1206;
  padding:.8rem 1.4rem;border-radius:0 0 12px 0;font-size:.85rem;font-weight:700}
.skip-link:focus{left:0}

/* Visible focus ring everywhere */
a:focus-visible,button:focus-visible,summary:focus-visible,
input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:2px solid var(--gold);outline-offset:3px;border-radius:6px}

/* --- Nav shell ---------------------------------------------------------- */
.nav-right{display:flex;align-items:center;gap:.6rem;flex-shrink:0}

/* Hamburger: hidden on desktop, shown once the links collapse */
.nav-toggle{display:none;width:44px;height:44px;flex-direction:column;justify-content:center;
  align-items:center;gap:5px;background:var(--glass);border:1px solid var(--stroke-2);
  border-radius:12px;cursor:pointer;padding:0;-webkit-tap-highlight-color:transparent}
.nav-toggle span{display:block;width:19px;height:2px;background:var(--text);border-radius:2px;
  transition:transform .28s ease,opacity .2s ease}
.nav-toggle.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle.is-open span:nth-child(2){opacity:0}
.nav-toggle.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* --- Slide-down mobile menu --------------------------------------------- */
.mobile-menu{position:fixed;top:0;left:0;right:0;z-index:199;
  padding-top:calc(3.9rem + env(safe-area-inset-top,0px));
  background:rgba(11,8,23,.97);backdrop-filter:blur(20px) saturate(1.3);
  border-bottom:1px solid var(--stroke-2);
  max-height:100svh;overflow-y:auto;
  opacity:0;transform:translateY(-12px);transition:opacity .26s ease,transform .26s ease}
.mobile-menu.show{opacity:1;transform:translateY(0)}
.mobile-menu-inner{display:flex;flex-direction:column;padding:.6rem 1.1rem 1.6rem}
.mobile-menu a{display:flex;align-items:center;min-height:52px;padding:.2rem .4rem;
  font-size:1.02rem;color:var(--text);border-bottom:1px solid rgba(255,255,255,.06)}
.mobile-menu a.active{color:var(--gold)}
.mobile-menu a:last-child{border-bottom:none}
.mobile-menu .mm-cta{justify-content:center;margin-top:1.1rem;border:none;border-radius:100px;
  background:linear-gradient(135deg,#F8D89A,var(--gold-2));color:#1A1206;
  font-weight:700;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase}
.mobile-menu .mm-wa{justify-content:center;margin-top:.65rem;border:1px solid var(--stroke);
  border-radius:100px;color:var(--gold);font-size:.88rem}
body.menu-open{overflow:hidden}

/* --- Breakpoint: collapse the desktop links ----------------------------- */
@media(max-width:920px){
  .nav-toggle{display:flex}
  nav{padding:.7rem 1rem}
}
@media(min-width:921px){
  .mobile-menu{display:none}
}

/* --- Touch target sizing ------------------------------------------------ */
@media(max-width:920px){
  .btn{min-height:48px;padding:.95rem 1.7rem}
  .nav-cta{min-height:42px;display:inline-flex;align-items:center}
  .price-book,.pkg-cta,.card-go{min-height:44px;display:inline-flex;align-items:center}
  .faq summary{min-height:52px;display:flex;align-items:center}
}

/* --- 768px tablets ------------------------------------------------------ */
@media(max-width:768px){
  .wrap{width:min(1100px,calc(100% - 2rem))}
  .head h2{font-size:clamp(1.8rem,5.6vw,2.6rem)}
}

/* --- Small phones: 320–412px -------------------------------------------- */
@media(max-width:480px){
  .section{padding:3.8rem 1.05rem}
  .page-top{padding:6.4rem 1.05rem 0}
  .hero{padding:6.4rem 1.05rem 3.4rem;min-height:auto}
  .hero h1{font-size:clamp(2.1rem,9vw,2.9rem)}
  .hero-sub{font-size:1rem}
  .hero-logo{width:76px;height:76px;margin-bottom:1.3rem}
  .hero-pills{gap:.5rem}
  .pill{font-size:.72rem;padding:.5rem .95rem}
  .brand{font-size:.98rem}
  .brand img{width:30px;height:30px}
  .price,.card,.pkg{padding:1.5rem 1.25rem}
  .certs{gap:.4rem}
  .cert{font-size:.66rem;padding:.3rem .7rem}
  .foot-nav{gap:.9rem 1.1rem;font-size:.78rem}
  .wa{width:52px;height:52px;right:1rem;bottom:1rem}
}

/* Never let anything push the page sideways */
@media(max-width:380px){
  .head h2,.hero h1,.page-top h1{overflow-wrap:break-word;hyphens:auto}
  .btn{font-size:.72rem;padding:.9rem 1.3rem}
}

/* Long unbroken words (emails, URLs) must wrap rather than scroll */
p,li,summary,.a,h1,h2,h3,h4{overflow-wrap:break-word}
.contact span{overflow-wrap:anywhere}

/* --- Small pieces used by the new pages --------------------------------- */
.pkg-sub{font-size:.82rem;color:var(--dim);margin:-.2rem 0 .4rem}
.voices-note{text-align:center;font-size:.8rem;color:var(--dim);margin-top:1.4rem;
  max-width:34rem;margin-left:auto;margin-right:auto}
.faq-group{font-size:1.35rem;color:var(--gold);margin:2.6rem 0 1rem;font-weight:300}
.faq-group:first-child{margin-top:0}

/* Contact page */
.contact-methods{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:1rem;margin-bottom:3rem}
.cm{display:flex;flex-direction:column;gap:.35rem;padding:1.4rem 1.35rem;background:var(--glass);
  border:1px solid var(--stroke-2);border-radius:18px;transition:border-color .25s,transform .25s}
.cm:hover{border-color:var(--gold);transform:translateY(-3px)}
.cm-ico{font-size:1.5rem}
.cm-b{font-weight:600;font-size:.95rem}
.cm-b small{display:block;font-weight:300;font-size:.74rem;color:var(--dim);margin-top:.1rem}
.cm-v{font-size:.85rem;color:var(--gold);overflow-wrap:anywhere}
.cm-wa{border-color:var(--stroke)}

.form-card{max-width:640px;margin:0 auto;padding:2.2rem 1.9rem;background:var(--glass);
  border:1px solid var(--stroke-2);border-radius:22px}
.form-card h2{font-size:1.6rem;margin-bottom:.5rem}
.form-lede{color:var(--dim);font-size:.92rem;margin-bottom:1.8rem}
.form-card .field{margin-bottom:1.1rem}
.form-card .two{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.lbl{display:block;font-size:.78rem;letter-spacing:.04em;color:var(--dim);margin-bottom:.45rem}
.lbl small{opacity:.7}
.in{width:100%;min-height:48px;padding:.85rem 1rem;background:rgba(255,255,255,.04);
  border:1px solid var(--stroke-2);border-radius:12px;color:var(--text);font-size:1rem;
  transition:border-color .2s,background .2s}
.in:focus{outline:none;border-color:var(--gold);background:rgba(255,255,255,.07)}
textarea.in{min-height:130px;resize:vertical;line-height:1.6}
select.in{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--gold) 50%),
  linear-gradient(135deg,var(--gold) 50%,transparent 50%);
  background-position:calc(100% - 20px) 22px,calc(100% - 14px) 22px;
  background-size:6px 6px,6px 6px;background-repeat:no-repeat;padding-right:2.6rem}
.form-card .btn{width:100%;justify-content:center;margin-top:.4rem}
.form-note{font-size:.78rem;color:var(--dim-2);margin-top:1rem;text-align:center}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.msg{display:none;padding:1rem 1.1rem;border-radius:12px;font-size:.9rem;margin-bottom:1.4rem;
  line-height:1.55}
.msg.show{display:block}
.msg.ok{background:rgba(123,224,164,.1);border:1px solid rgba(123,224,164,.35);color:#9BEBBB}
.msg.err{background:rgba(255,157,176,.1);border:1px solid rgba(255,157,176,.35);color:#FFB6C6}
@media(max-width:560px){
  .form-card{padding:1.7rem 1.2rem;border-radius:18px}
  .form-card .two{grid-template-columns:1fr;gap:0}
}


/* ==========================================================================
   v4.0 — mobile rhythm, contrast, performance and conversion refinements
   Additive only: everything below overrides earlier rules of equal weight.
   ========================================================================== */

/* --- 1. Overflow belt-and-braces ---------------------------------------- */
/* The real cause (a rotating square aura) is fixed at source; this is a
   safety net so a future decorative element can never pan the page again. */
html{overflow-x:clip}
body{overflow-x:clip}

/* --- 2. Contrast ---------------------------------------------------------
   --dim-2 was rgba(...,.38) ≈ 3.2:1 on the page background, below WCAG AA
   for small text. It is used for disclaimers, footer copy and captions. */
:root{--dim-2:rgba(241,236,255,.62)}

/* --- 3. Mobile performance ------------------------------------------------
   Three fixed, full-bleed 110px-blur layers are the single most expensive
   thing on the page for a mid-range phone. Shrink the blur radius and drop
   one layer below tablet width; the mood survives, the jank does not. */
@media(max-width:920px){
  .blob{filter:blur(70px);opacity:.42}
  .blob.b1{width:340px;height:340px}
  .blob.b2{width:300px;height:300px}
  .blob.b3{display:none}
}
/* Backdrop blur on a dozen cards at once is also costly on phones and is
   barely visible against a near-black background. */
@media(max-width:920px){
  .card,.price,.pkg,.step,.voice,.contact,.cm,.pill,.btn-ghost{backdrop-filter:none}
}
/* Let the browser skip layout/paint for sections still far off-screen. */
.section{content-visibility:auto;contain-intrinsic-size:auto 700px}
.hero,.page-top{content-visibility:visible}

/* --- 4. Vertical rhythm on phones ----------------------------------------
   The old spacing stacked a 3.4rem hero base onto a 3.8rem section top,
   leaving ~130px of empty screen between the hero and the first content. */
@media(max-width:620px){
  .section{padding:3.2rem 1.2rem}
  .head{margin-bottom:2.2rem}
  .head h2{margin-bottom:.7rem}
  .cards,.price-grid,.voice-grid{gap:1rem}
  .steps{gap:1.4rem;margin-bottom:2.6rem}
  .cards-note,.note-line{margin-top:1.8rem}
  .card{padding:1.5rem 1.35rem}
  .card-ico{width:44px;height:44px;font-size:1.2rem;border-radius:12px;margin-bottom:.9rem}
  .card h3{font-size:1.18rem}
  .voice{padding:1.6rem 1.4rem}
  .begin h2{margin-bottom:1.6rem}
  .contacts{margin:2rem 0 1rem}
  .disc{margin-top:2rem;padding-top:1.2rem}
}
@media(max-width:480px){
  .hero{padding:5.6rem 1.05rem 2.6rem}
  .section{padding:3rem 1.05rem}
}

/* --- 5. Hero hierarchy ---------------------------------------------------
   One primary action, one low-friction action, and a quiet text row for
   browsing — instead of three same-sized buttons competing with each other. */
.hero-actions{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap;margin-bottom:1.1rem}
.hero-explore{display:flex;gap:.4rem 1.6rem;justify-content:center;flex-wrap:wrap;
  margin-bottom:2.4rem;font-size:.88rem;color:var(--dim)}
.hero-explore a{color:var(--dim);border-bottom:1px solid rgba(245,195,107,.3);
  padding-bottom:2px;transition:color .25s,border-color .25s}
.hero-explore a:hover,.hero-explore a:focus-visible{color:var(--gold);border-color:var(--gold)}
.btn-wa{border:1px solid rgba(37,211,102,.45);color:#8FF0B4;background:rgba(37,211,102,.09)}
.btn-wa:hover{border-color:#25d366;color:#B6F7CF;transform:translateY(-2px)}
.btn-wa svg{width:17px;height:17px;fill:currentColor;flex-shrink:0}
@media(max-width:620px){
  .hero-actions{flex-direction:column;align-items:stretch;width:100%;max-width:330px;
    margin:0 auto 1rem}
  .hero-actions .btn{justify-content:center}
  .hero-explore{margin-bottom:2rem}
}

/* Keep the decorative orb from washing out the words sitting on top of it. */
.orb-core{opacity:.55}
@media(max-width:620px){
  .orb-zone{top:34%;width:min(560px,80vw)}
  .orb-core{opacity:.34}
}

/* --- 6. The floating WhatsApp button must never sit on top of content ---- */
.wa{bottom:calc(1.4rem + env(safe-area-inset-bottom,0px))}
body{padding-bottom:0}
main{padding-bottom:0}
footer{padding-bottom:calc(2.2rem + env(safe-area-inset-bottom,0px))}
/* Reserve room on phones so the last line of the footer is always tappable
   and the FAB never covers a pill, a card CTA or a form button. */
@media(max-width:920px){
  footer{padding-bottom:calc(5.2rem + env(safe-area-inset-bottom,0px))}
  .hero-pills{padding-bottom:.5rem}
}

/* --- 7. Trust strip ------------------------------------------------------- */
.trust{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;
  max-width:960px;margin:0 auto;padding:0}
.trust-item{text-align:center;padding:1.3rem .9rem;background:var(--glass);
  border:1px solid var(--stroke-2);border-radius:18px}
.trust-item .ti-ico{font-size:1.4rem;margin-bottom:.6rem;
  filter:drop-shadow(0 0 10px rgba(245,195,107,.35))}
.trust-item b{display:block;font-family:'Fraunces',serif;font-weight:400;font-size:1.02rem;
  margin-bottom:.3rem}
.trust-item span{font-size:.82rem;color:var(--dim);line-height:1.55;display:block}
@media(max-width:920px){.trust{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:400px){
  .trust{grid-template-columns:minmax(0,1fr);gap:.7rem}
  .trust-item{display:flex;align-items:flex-start;gap:.9rem;text-align:left;padding:1rem 1.1rem}
  .trust-item .ti-ico{margin-bottom:0;font-size:1.2rem}
}

/* --- 8. Legal pages ------------------------------------------------------ */
.prose{max-width:720px;margin:0 auto}
.prose h2{font-family:'Fraunces',serif;font-weight:300;font-size:1.5rem;color:var(--gold);
  margin:2.6rem 0 .8rem;line-height:1.25}
.prose h2:first-child{margin-top:0}
.prose h3{font-family:'Fraunces',serif;font-weight:400;font-size:1.12rem;margin:1.6rem 0 .5rem}
.prose p,.prose li{color:var(--dim);font-size:.95rem;margin-bottom:.9rem}
.prose ul{padding-left:1.2rem;margin-bottom:1rem}
.prose li{margin-bottom:.45rem}
.prose a{color:var(--gold);border-bottom:1px solid rgba(245,195,107,.4)}
.prose strong{color:var(--text);font-weight:600}
.prose .updated{font-size:.78rem;color:var(--dim-2);margin-bottom:2rem}
.callout{background:rgba(245,195,107,.07);border:1px solid var(--stroke);
  border-left:3px solid var(--gold);border-radius:14px;padding:1.1rem 1.3rem;margin:1.6rem 0}
.callout p:last-child{margin-bottom:0}

/* --- 9. Footer ------------------------------------------------------------ */
/* `nav{position:fixed}` at the top of this file is a bare element selector, so
   ANY nested <nav> would be yanked out of flow and pinned over the header.
   Reset every nav that is not the site header before styling the footer one. */
footer nav,main nav,.prose nav{position:static;inset:auto;z-index:auto;display:block;
  padding:0;background:none;backdrop-filter:none;border-bottom:none}
.foot-legal{display:flex!important;gap:1rem;justify-content:center;flex-wrap:wrap;
  margin-top:.9rem;font-size:.72rem;color:var(--dim-2)}
.foot-legal a{transition:color .25s}
.foot-legal a:hover,.foot-legal a:focus-visible{color:var(--gold)}
.foot-disc{max-width:62ch;margin:1.2rem auto 0;font-size:.72rem;color:var(--dim-2);line-height:1.6}

/* --- 10. Forms & tap targets --------------------------------------------- */
/* 16px minimum stops iOS Safari zooming the page when a field is focused. */
@media(max-width:920px){
  .in,input,select,textarea{font-size:16px}
  .nav-cta,.card-go,.price-book,.pkg-cta,.foot-nav a,.mobile-menu a{min-height:44px}
  .foot-nav a{display:inline-flex;align-items:center}
}
.field-err{display:block;font-size:.78rem;color:#FFB6C6;margin-top:.35rem}
.in[aria-invalid="true"]{border-color:rgba(255,157,176,.6);background:rgba(255,157,176,.05)}

/* --- 11. Motion ----------------------------------------------------------- */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
}

/* --- 12. Remaining small tap targets on phones --------------------------- */
@media(max-width:920px){
  .brand{min-height:44px;align-items:center}
  .hero-explore a,.foot-legal a,.cards-note a,.note-line a,.voices-note a{
    display:inline-flex;align-items:center;min-height:44px}
  .hero-explore{gap:0 1.6rem}
}

/* --- 13. Floating WhatsApp button: reveal on scroll ----------------------
   The hero already carries a WhatsApp CTA, so a second one floating over it
   is redundant AND sits on top of the trust pills at 390px. Hold it back
   until the visitor has scrolled past the hero, then fade it in. */
.wa{opacity:0;visibility:hidden;transform:scale(.8);
  transition:opacity .3s ease,transform .3s ease,visibility .3s}
.wa.wa-show{opacity:1;visibility:visible;transform:scale(1)}
.wa:hover{transform:scale(1.1)}
/* No JS? Then it must always be reachable. */
.no-js .wa{opacity:1;visibility:visible;transform:none}

/* --- 14. Hero orb: keep the glow off the words --------------------------- */
@media(max-width:620px){
  .orb-zone{top:27%;width:min(520px,74vw)}
  .orb-core{opacity:.26}
  .orb-ring{opacity:.5}
  .orb-ring.r2{opacity:.35}
  .orb-ring.r3{opacity:.25}
}

/* --- 15. Hero browse links ------------------------------------------------ */
.hero-explore a{border-bottom:none;position:relative}
.hero-explore a::after{content:'';position:absolute;left:0;right:0;bottom:11px;height:1px;
  background:rgba(245,195,107,.32);transition:background .25s}
.hero-explore a:hover::after,.hero-explore a:focus-visible::after{background:var(--gold)}
@media(max-width:620px){
  .hero-explore{gap:0;flex-direction:column;align-items:center}
  .hero-explore a::after{bottom:9px}
}

/* --- 16. Decorative step numerals: thicker stroke, better legibility --- */
.step-n{-webkit-text-stroke:1.4px rgba(245,195,107,.8)}


/* ==========================================================================
   v4.3 — PREMIUM MOBILE PASS
   A phone is not a narrow desktop. Below 620px several components change
   their layout rather than just their size. Desktop rules are untouched.
   ========================================================================== */

@media(max-width:620px){

  /* --- 1. Typography -----------------------------------------------------
     The display face was set at desktop proportions and looked stretched on
     a phone: loose leading, ragged wrapping, headings eating half the screen.
     Tighter leading and balanced wrapping read as considered rather than big. */
  .head h2,.hero h1,.page-top h1{
    line-height:1.12;letter-spacing:-.015em;text-wrap:balance}
  .hero h1{font-size:clamp(2.1rem,8.6vw,2.9rem)}
  .head h2{font-size:clamp(1.72rem,7.2vw,2.15rem)}
  .page-top h1{font-size:clamp(1.95rem,8vw,2.5rem)}
  .head p,.hero-sub,.page-top p{
    font-size:.965rem;line-height:1.62;text-wrap:pretty;max-width:34ch;
    margin-left:auto;margin-right:auto}
  .card p,.voice p,.trust-item span,.step p{text-wrap:pretty}

  /* The kicker's wide tracking pushed longer labels onto two ragged lines. */
  /* Tighter tracking so the common labels sit on one line between their
     rules. No max-width here: it was forcing the very wrap it should avoid. */
  .kicker{letter-spacing:.14em;font-size:.66rem}

  /* --- 2. Section rhythm -------------------------------------------------
     Roughly 140px of dead screen sat between one section and the next. */
  .section{padding:2.6rem 1.15rem}
  .section + .section{padding-top:2.2rem}
  .head{margin-bottom:1.7rem}
  .head h2{margin-bottom:.55rem}
  .hero{padding-bottom:2rem}

  /* --- 3. Trust strip: stack, and align left -----------------------------
     Two narrow columns of centred text wrapped every two or three words.
     One column with the icon beside the words reads properly at this width. */
  .trust{grid-template-columns:minmax(0,1fr);gap:.7rem}
  .trust-item{display:grid;grid-template-columns:auto minmax(0,1fr);
    gap:.9rem;align-items:start;text-align:left;padding:1.05rem 1.15rem}
  .trust-item .ti-ico{margin:0;font-size:1.15rem;line-height:1.35}
  .trust-item b{font-size:1rem;margin-bottom:.34rem;line-height:1.3}
  .trust-item span{font-size:.865rem;line-height:1.58}

  /* --- 4. Concern cards: icon beside the title ---------------------------
     Stacked icon, title, body and link made each card ~510px tall, so one
     card filled the screen and nothing suggested a second existed. */
  .card{padding:1.3rem 1.25rem;border-radius:18px}
  .card-ico{width:38px;height:38px;font-size:1.05rem;border-radius:11px;margin:0}
  /* The icon and heading are siblings in the markup, so grid places them on
     one row without needing a wrapper element on every card, on every page. */
  .card{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:.85rem}
  .card > *{grid-column:1 / -1}
  .card-ico{grid-column:1;grid-row:1;align-self:center}
  .card h3{grid-column:2;grid-row:1;align-self:center;
    font-size:1.13rem;margin:0;line-height:1.25}
  .card p{margin-top:.8rem}
  .card p{font-size:.9rem;line-height:1.58;margin-bottom:.9rem}
  .card-go{font-size:.76rem;letter-spacing:.1em}

  /* --- 5. Header ---------------------------------------------------------
     Slightly shorter bar, tighter gaps, so the logo, BOOK and menu read as
     one balanced group instead of three separate widgets. */
  nav{padding:.62rem .9rem}
  .brand{font-size:1.06rem;gap:.5rem}
  .brand img{width:34px;height:34px}
  .nav-right{gap:.5rem}
  .nav-cta{padding:.62rem 1.15rem;font-size:.74rem;letter-spacing:.11em}
  .nav-toggle{width:44px;height:44px}

  /* --- 6. Cards and grids ------------------------------------------------ */
  .price,.pkg{padding:1.4rem 1.25rem;border-radius:18px}
  .voice{padding:1.45rem 1.3rem}
  .voice p{font-size:.94rem;line-height:1.6}
  .free-row{padding:1.4rem 1.25rem}

  /* --- 7. Buttons --------------------------------------------------------- */
  .btn{padding:.92rem 1.4rem;font-size:.8rem;letter-spacing:.11em}
  .btn-gold{box-shadow:0 6px 26px rgba(226,162,59,.26)}
}

/* Very small phones: one more notch down, nothing cramped. */
@media(max-width:380px){
  .section{padding:2.3rem 1rem}
  .hero h1{font-size:clamp(1.95rem,8.4vw,2.4rem)}
  .head h2{font-size:1.6rem}
  .kicker{letter-spacing:.13em;font-size:.65rem}
  .card,.trust-item{padding:1rem 1.05rem}
  .brand{font-size:.98rem}
  .brand img{width:31px;height:31px}
  .nav-cta{padding:.58rem .95rem;font-size:.7rem}
}

/* ==========================================================================
   Workshop cards
   One card, one grid, one size — every course is presented identically so
   none of them reads as the "real" offering with the rest as extras.
   ========================================================================== */
.wsc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem;align-items:stretch}
.wsc{display:flex;flex-direction:column;background:var(--glass);border:1px solid var(--stroke-2);
  border-radius:22px;padding:1.9rem 1.7rem;backdrop-filter:blur(10px);
  transition:transform .35s,border-color .35s,box-shadow .35s}
.wsc:hover{transform:translateY(-6px);border-color:var(--stroke);box-shadow:0 24px 50px rgba(0,0,0,.45)}
.wsc-top{display:flex;align-items:center;justify-content:space-between;gap:.7rem;margin-bottom:1rem}
.wsc-glyph{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;
  justify-content:center;font-size:1.45rem;
  background:linear-gradient(135deg,rgba(245,195,107,.18),rgba(139,92,246,.18));
  border:1px solid var(--stroke);flex-shrink:0}
.wsc-top .lvl{margin-bottom:0}
.wsc h3{font-family:'Fraunces',serif;font-weight:400;font-size:1.32rem;line-height:1.2}
.wsc-sub{font-size:.83rem;color:var(--gold);margin-top:.3rem}
.wsc-desc{font-size:.89rem;color:var(--dim);margin-top:.7rem}
.wsc .c-meta{margin:.9rem 0 0}
.wsc-list{list-style:none;margin:1.1rem 0 0;flex:1}
.wsc-list li{font-size:.86rem;color:var(--dim);padding:.45rem 0 .45rem 1.4rem;position:relative;
  border-bottom:1px solid rgba(255,255,255,.06)}
.wsc-list li:last-child{border-bottom:none}
.wsc-list li::before{content:'✦';position:absolute;left:0;top:.5rem;color:var(--gold);
  font-size:.7rem;text-shadow:0 0 8px rgba(245,195,107,.6)}
.wsc-when{display:flex;flex-direction:column;gap:.15rem;margin-top:1.2rem;padding:.75rem .9rem;
  border-radius:12px;background:rgba(245,195,107,.07);border:1px solid var(--stroke)}
.wsc-when-date{font-size:.82rem;font-weight:600;color:var(--gold)}
.wsc-when-time{font-size:.78rem;color:var(--dim)}
.wsc-prereq{font-size:.76rem;color:var(--dim-2);margin-top:.7rem}
.wsc-foot{display:flex;align-items:center;justify-content:space-between;gap:.8rem;
  margin-top:1.3rem;padding-top:1.2rem;border-top:1px solid rgba(255,255,255,.08)}
.wsc-price{font-family:'Fraunces',serif;font-size:1.3rem}
.wsc-price small{font-family:'Outfit',sans-serif;font-size:.76rem;color:var(--dim);font-weight:400}
.card-when{font-size:.78rem;color:var(--gold);margin-bottom:1rem}
@media(max-width:900px){.wsc-grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.wsc-grid{grid-template-columns:1fr}.wsc{padding:1.5rem 1.25rem}}
@media(max-width:520px){.wsc-foot{flex-direction:column;align-items:stretch;gap:.9rem}
  .wsc-foot .price-book{text-align:center;min-height:46px;justify-content:center}}

/* ===========================================================================
   PREMIUM CARDS & DETAIL PAGES  (added in v6.0)

   Everything below is additive. The existing .price / .card / .wsc rules are
   untouched, so any page still using them looks exactly as it did.
   ======================================================================== */

/* ---- shared media tile ---------------------------------------------------
   A card shows its own image when one has been uploaded, and a calm gradient
   carrying its symbol when one has not. Never a stock photograph. */
.svc-media,.wsc-media,.hwc-media{position:relative;display:block;overflow:hidden;background:
  radial-gradient(120% 100% at 20% 0%,rgba(139,92,246,.34),transparent 62%),
  linear-gradient(150deg,rgba(245,195,107,.14),rgba(11,8,23,.5));
  border-bottom:1px solid var(--stroke-2)}
.svc-media img,.wsc-media img,.hwc-media img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.3,1)}
.media-glyph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:2.9rem;filter:drop-shadow(0 6px 18px rgba(0,0,0,.45));transition:transform .5s}
.svc-media{aspect-ratio:16/10}
.wsc-media{aspect-ratio:16/9}
.hwc-media{aspect-ratio:16/9}

/* ---- service card -------------------------------------------------------- */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.svc{display:flex;flex-direction:column;background:var(--glass);border:1px solid var(--stroke-2);
  border-radius:22px;overflow:hidden;backdrop-filter:blur(10px);
  transition:transform .4s cubic-bezier(.2,.7,.3,1),border-color .4s,box-shadow .4s}
.svc:hover{transform:translateY(-5px);border-color:var(--stroke);box-shadow:0 22px 50px rgba(0,0,0,.4)}
.svc:hover .svc-media img{transform:scale(1.05)}
.svc:hover .media-glyph{transform:scale(1.08)}
.svc-dur{position:absolute;left:.9rem;bottom:.9rem;font-size:.6rem;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--text);background:rgba(11,8,23,.7);border:1px solid var(--stroke-2);
  padding:.34rem .74rem;border-radius:100px;backdrop-filter:blur(6px)}
.svc-body{display:flex;flex-direction:column;flex:1;padding:1.5rem 1.5rem 1.4rem}
.svc-body h3{font-family:'Fraunces',serif;font-weight:400;font-size:1.28rem;line-height:1.25;letter-spacing:-.01em}
.svc-body h3 a{transition:color .25s}
.svc-body h3 a:hover{color:var(--gold)}
.svc-tagline{margin-top:.4rem;font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--gold)}
.svc-desc{margin-top:.75rem;font-size:.88rem;color:var(--dim);line-height:1.65}
.svc-foot{margin-top:auto;padding-top:1.3rem;display:flex;flex-wrap:wrap;align-items:center;
  justify-content:space-between;gap:.8rem}
.svc-price{font-family:'Fraunces',serif;font-size:1.22rem;color:var(--gold);white-space:nowrap}
.svc-price small{font-size:.72rem;color:var(--dim-2)}
.svc-actions{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap}
.link-more{font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);
  border-bottom:1px solid transparent;transition:color .25s,border-color .25s}
.link-more:hover{color:var(--gold);border-bottom-color:var(--gold)}

/* ---- workshop card ------------------------------------------------------- */
.wsc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.wsc{display:flex;flex-direction:column;background:var(--glass);border:1px solid var(--stroke-2);
  border-radius:22px;overflow:hidden;backdrop-filter:blur(10px);
  transition:transform .4s cubic-bezier(.2,.7,.3,1),border-color .4s,box-shadow .4s}
.wsc:hover{transform:translateY(-5px);border-color:var(--stroke);box-shadow:0 22px 50px rgba(0,0,0,.4)}
.wsc:hover .wsc-media img{transform:scale(1.05)}
.wsc-level{position:absolute;left:.9rem;top:.9rem;font-size:.58rem;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:#1A1206;background:linear-gradient(135deg,#F8D89A,var(--gold-2));
  padding:.3rem .7rem;border-radius:100px}
.wsc-body{display:flex;flex-direction:column;flex:1;padding:1.5rem 1.5rem 1.4rem}
.wsc-body h3{font-family:'Fraunces',serif;font-weight:400;font-size:1.28rem;line-height:1.25}
.wsc-body h3 a:hover{color:var(--gold)}
.wsc-sub{margin-top:.35rem;font-size:.78rem;font-style:italic;color:var(--gold)}
.wsc-desc{margin-top:.75rem;font-size:.87rem;color:var(--dim);line-height:1.65}
.wsc-list{list-style:none;margin-top:1rem;display:grid;gap:.42rem}
.wsc-list li{position:relative;padding-left:1.15rem;font-size:.82rem;color:var(--dim)}
.wsc-list li::before{content:'';position:absolute;left:0;top:.62em;width:5px;height:5px;border-radius:50%;background:var(--gold)}
.wsc-when{margin-top:1.1rem;padding:.8rem 1rem;border:1px solid var(--stroke-2);border-radius:14px;
  background:rgba(255,255,255,.03);display:grid;gap:.18rem}
.wsc-when-date{font-size:.84rem;font-weight:600}
.wsc-when-time{font-size:.75rem;color:var(--dim-2)}
.wsc-prereq{margin-top:.8rem;font-size:.75rem;color:var(--dim-2)}
.wsc-foot{margin-top:auto;padding-top:1.3rem;display:flex;flex-wrap:wrap;align-items:center;
  justify-content:space-between;gap:.8rem}
.wsc-price{font-family:'Fraunces',serif;font-size:1.18rem;color:var(--gold);white-space:nowrap}
.wsc-price small{font-size:.72rem;color:var(--dim-2)}

/* ---- compact homepage workshop card -------------------------------------- */
.hwc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.hwc{display:flex;flex-direction:column;background:var(--glass);border:1px solid var(--stroke-2);
  border-radius:22px;overflow:hidden;backdrop-filter:blur(10px);
  transition:transform .4s cubic-bezier(.2,.7,.3,1),border-color .4s,box-shadow .4s}
.hwc:hover{transform:translateY(-5px);border-color:var(--stroke);box-shadow:0 22px 50px rgba(0,0,0,.4)}
.hwc:hover .hwc-media img{transform:scale(1.05)}
.hwc-body{display:flex;flex-direction:column;flex:1;padding:1.4rem 1.4rem 1.3rem}
.hwc-body h3{font-family:'Fraunces',serif;font-weight:400;font-size:1.2rem}
.hwc-body h3 a:hover{color:var(--gold)}
.hwc-body p{margin-top:.5rem;font-size:.86rem;color:var(--dim)}
.hwc-meta{margin-top:.9rem;display:flex;flex-wrap:wrap;gap:.5rem}
.hwc-meta span{font-size:.7rem;color:var(--dim-2);border:1px solid var(--stroke-2);border-radius:100px;padding:.26rem .68rem}
.hwc .svc-actions{margin-top:auto;padding-top:1.2rem}

/* ---- breadcrumbs --------------------------------------------------------- */
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.74rem;color:var(--dim-2);margin-bottom:1.6rem}
.crumbs a{transition:color .25s}
.crumbs a:hover{color:var(--gold)}
.crumbs [aria-current]{color:var(--dim)}

/* ---- detail page hero ---------------------------------------------------- */
.detail-hero{padding:8.5rem 1.5rem 3rem;position:relative}
.detail-hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:3rem;align-items:center}
.detail-hero-text h1{font-size:clamp(2.1rem,5.4vw,3.5rem);margin:.9rem 0 0}
.detail-tagline{margin-top:.8rem;font-size:.74rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.detail-lede{margin-top:1.2rem;font-size:1.02rem;color:var(--dim);line-height:1.75;max-width:56ch}
.detail-facts{margin-top:1.9rem;display:flex;flex-wrap:wrap;gap:.7rem}
.fact{display:grid;gap:.2rem;padding:.7rem 1.1rem;border:1px solid var(--stroke-2);border-radius:14px;background:rgba(255,255,255,.03)}
.fact-k{font-size:.6rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--dim-2)}
.fact-v{font-size:.88rem;font-weight:600}
.fact-v small{color:var(--dim-2);font-weight:400}
.detail-cta{margin-top:2.1rem;display:flex;flex-wrap:wrap;gap:.9rem}
.detail-prereq{margin-top:1.3rem;font-size:.8rem;color:var(--dim-2)}
.detail-hero-media{position:relative;aspect-ratio:4/5;border-radius:26px;overflow:hidden;
  border:1px solid var(--stroke);background:
  radial-gradient(120% 100% at 25% 0%,rgba(139,92,246,.36),transparent 62%),
  linear-gradient(150deg,rgba(245,195,107,.16),rgba(11,8,23,.55));
  box-shadow:0 30px 70px rgba(0,0,0,.45)}
.detail-hero-media img{width:100%;height:100%;object-fit:cover}
.detail-hero-media .media-glyph{font-size:5rem}

/* ---- detail page body ---------------------------------------------------- */
.detail-body{padding-top:2rem}
.detail-cols{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:3.4rem;align-items:start}
.detail-main{min-width:0}
.detail-block{margin-bottom:3.2rem}
.detail-block h2{font-size:clamp(1.6rem,3.6vw,2.3rem);margin:.7rem 0 1.2rem}
.detail-block h2 em{font-style:italic}
.detail-block p{color:var(--dim);line-height:1.8;margin-bottom:1rem;max-width:64ch}
.dl-check,.dl-steps{list-style:none;display:grid;gap:.85rem}
.dl-check li{position:relative;padding-left:2rem;color:var(--dim);line-height:1.7}
.dl-check li::before{content:'✦';position:absolute;left:0;top:0;color:var(--gold);font-size:.9rem}
.dl-steps{counter-reset:dstep}
.dl-steps li{position:relative;padding-left:2.9rem;color:var(--dim);line-height:1.7;min-height:2rem}
.dl-steps li::before{counter-increment:dstep;content:counter(dstep,decimal-leading-zero);
  position:absolute;left:0;top:0;font-family:'Fraunces',serif;font-size:.86rem;color:var(--gold);
  width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;
  border:1px solid var(--stroke);border-radius:50%}
.spec{display:grid;gap:.1rem;border:1px solid var(--stroke-2);border-radius:18px;overflow:hidden}
.spec>div{display:grid;grid-template-columns:150px 1fr;gap:1rem;padding:.95rem 1.3rem;background:rgba(255,255,255,.03)}
.spec>div+div{border-top:1px solid var(--stroke-2)}
.spec dt{font-size:.68rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--dim-2);padding-top:.15rem}
.spec dd{font-size:.9rem}
.batch-rows{display:grid;gap:.8rem}
.batch-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;
  padding:1.1rem 1.3rem;border:1px solid var(--stroke-2);border-radius:16px;background:rgba(255,255,255,.03);
  transition:border-color .3s}
.batch-row:hover{border-color:var(--stroke)}
.batch-row-when{display:grid;gap:.22rem}
.batch-row-when b{font-size:.92rem}
.batch-row-when span{font-size:.78rem;color:var(--dim-2)}
.batch-row-side{display:flex;align-items:center;gap:1rem}
.batch-seats{font-size:.7rem;color:var(--dim-2)}
.inline-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.3rem;
  margin:0 0 3.2rem;padding:1.8rem 2rem;border-radius:22px;border:1px solid var(--stroke);
  background:linear-gradient(120deg,rgba(245,195,107,.13),rgba(139,92,246,.13))}
.inline-cta h3{font-family:'Fraunces',serif;font-weight:400;font-size:1.4rem}
.inline-cta p{font-size:.86rem;color:var(--dim);margin-top:.3rem}
.detail-disclaimer{font-size:.76rem;color:var(--dim-2);line-height:1.7;padding-top:1.6rem;
  border-top:1px solid var(--stroke-2);max-width:66ch}

/* ---- sticky booking panel ------------------------------------------------ */
.detail-aside{position:sticky;top:5.5rem}
.book-card{background:var(--glass);border:1px solid var(--stroke);border-radius:22px;
  padding:1.7rem 1.6rem;backdrop-filter:blur(14px);box-shadow:0 20px 50px rgba(0,0,0,.35)}
.book-card h3{font-family:'Fraunces',serif;font-weight:400;font-size:1.35rem;margin:.7rem 0 1.2rem}
.book-facts{display:grid;gap:.1rem;margin-bottom:1.4rem}
.book-facts>div{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:.62rem 0}
.book-facts>div+div{border-top:1px solid var(--stroke-2)}
.book-facts dt{font-size:.68rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--dim-2)}
.book-facts dd{font-size:.88rem;font-weight:600;text-align:right}
.book-facts dd small{color:var(--dim-2);font-weight:400}
.book-card-btn{width:100%;justify-content:center;text-align:center}
.book-note{margin-top:.9rem;font-size:.75rem;color:var(--dim-2);line-height:1.6}
.book-card-wa{display:block;margin-top:1.1rem;padding-top:1.1rem;border-top:1px solid var(--stroke-2);
  font-size:.78rem;color:var(--gold);transition:opacity .25s}
.book-card-wa:hover{opacity:.75}

/* ---- the homepage journey ------------------------------------------------ */
.journey{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;counter-reset:none}
.jstep{position:relative;background:var(--glass);border:1px solid var(--stroke-2);border-radius:20px;
  padding:2.2rem 1.6rem 1.8rem;backdrop-filter:blur(10px);transition:transform .4s,border-color .4s}
.jstep:hover{transform:translateY(-4px);border-color:var(--stroke)}
.jstep-n{position:absolute;top:1.1rem;right:1.3rem;font-family:'Fraunces',serif;font-size:1.9rem;
  color:rgba(245,195,107,.22);line-height:1}
.jstep-glyph{display:block;font-size:1.7rem;margin-bottom:.9rem}
.jstep h3{font-family:'Fraunces',serif;font-weight:400;font-size:1.14rem;margin-bottom:.6rem}
.jstep p{font-size:.85rem;color:var(--dim);line-height:1.7}

/* ---- responsive ---------------------------------------------------------- */
@media(max-width:1000px){
  .detail-cols{grid-template-columns:1fr;gap:2.4rem}
  .detail-aside{position:static;order:-1}
  .book-card{padding:1.4rem 1.3rem}
  .detail-hero-grid{grid-template-columns:1fr;gap:2.2rem}
  .detail-hero-media{aspect-ratio:16/10;max-width:560px}
  .journey{grid-template-columns:1fr 1fr}
}
@media(max-width:900px){
  .svc-grid,.wsc-grid,.hwc-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .svc-grid,.wsc-grid,.hwc-grid{grid-template-columns:1fr;gap:1.1rem}
  .journey{grid-template-columns:1fr}
  .detail-hero{padding:7rem 1.2rem 2rem}
  .detail-block{margin-bottom:2.4rem}
  .spec>div{grid-template-columns:1fr;gap:.25rem}
  .inline-cta{padding:1.4rem 1.3rem}
  .inline-cta .btn{width:100%;justify-content:center}
  .detail-cta .btn{width:100%;justify-content:center}
  .svc-foot,.wsc-foot{flex-direction:column;align-items:flex-start;gap:.9rem}
  .svc-actions{width:100%;justify-content:space-between}
  .batch-row{flex-direction:column;align-items:flex-start}
  .batch-row-side{width:100%;justify-content:space-between}
}
@media(max-width:600px){
  /* Comfortable tap targets on every new control. */
  .link-more,.price-book,.book-card-wa{min-height:44px;display:inline-flex;align-items:center}
}
@media(prefers-reduced-motion:reduce){
  .svc,.wsc,.hwc,.jstep,.svc-media img,.wsc-media img,.hwc-media img,.media-glyph{transition:none}
  .svc:hover,.wsc:hover,.hwc:hover,.jstep:hover{transform:none}
}

/* ==========================================================================
   BLOG
   The post card borrows the workshop card's shape and hover so the homepage
   reads as one set of cards rather than three different designs. Built
   mobile-first: one column, then two, then three.
   ========================================================================== */

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* An article is read, not scanned, so its column is narrower than a card grid. */
.wrap-narrow{max-width:720px;margin:0 auto}

/* ---- cards ---- */
.blog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem;align-items:stretch}
.bpc{display:flex;flex-direction:column;background:var(--glass);border:1px solid var(--stroke-2);
  border-radius:22px;overflow:hidden;backdrop-filter:blur(10px);
  transition:transform .35s,border-color .35s,box-shadow .35s}
.bpc:hover{transform:translateY(-6px);border-color:var(--stroke);box-shadow:0 24px 50px rgba(0,0,0,.45)}
.bpc-media{position:relative;display:block;overflow:hidden;aspect-ratio:16/9;
  background:linear-gradient(140deg,rgba(122,92,255,.22),rgba(245,195,107,.14))}
.bpc-media img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.3,1)}
.bpc:hover .bpc-media img{transform:scale(1.05)}
.bpc-body{display:flex;flex-direction:column;flex:1;padding:1.5rem 1.5rem 1.35rem}
.bpc-meta{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem;font-size:.7rem;
  color:var(--dim-2);letter-spacing:.04em;margin-bottom:.6rem}
.bpc-draft{color:var(--gold);font-weight:600}
.bpc h3{font-family:'Fraunces',serif;font-size:1.16rem;font-weight:400;line-height:1.35;
  margin-bottom:.55rem}
.bpc h3 a{color:var(--text);transition:color .25s}
.bpc h3 a:hover{color:var(--gold)}
.bpc-excerpt{font-size:.86rem;color:var(--dim);line-height:1.65;margin-bottom:1rem}
.bpc-foot{display:flex;align-items:center;gap:.7rem;margin-top:auto;padding-top:.6rem;
  border-top:1px solid var(--stroke-2)}
.bpc-tags{display:flex;gap:.35rem;flex-wrap:wrap;min-width:0}
.bpc-tags span{font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:var(--dim-2);
  border:1px solid var(--stroke-2);border-radius:100px;padding:.2rem .55rem;white-space:nowrap}
.bpc-foot .link-more{margin-left:auto;white-space:nowrap}

/* ---- listing controls ---- */
.blog-filters{margin:0 auto 1.6rem;max-width:560px}
.blog-search{display:flex;gap:.6rem;align-items:stretch}
.blog-search .in{flex:1;min-width:0}
.blog-search .btn{flex-shrink:0;padding:.9rem 1.4rem}

.blog-tags{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-bottom:1.8rem}
.blog-tag{display:inline-flex;align-items:center;gap:.4rem;min-height:38px;padding:.4rem 1rem;
  font-size:.76rem;color:var(--dim);background:var(--glass);border:1px solid var(--stroke-2);
  border-radius:100px;transition:border-color .25s,color .25s,background .25s}
.blog-tag:hover{border-color:var(--gold);color:var(--gold)}
.blog-tag.is-on{background:rgba(245,195,107,.12);border-color:rgba(245,195,107,.55);color:var(--gold)}
.blog-tag-n{font-size:.65rem;opacity:.65}

.blog-resultline{text-align:center;font-size:.82rem;color:var(--dim);margin-bottom:1.6rem}
.blog-resultline a{color:var(--gold)}

.blog-empty{text-align:center;padding:3.5rem 1.5rem;max-width:520px;margin:0 auto}
.blog-empty h2{font-size:1.6rem;margin-bottom:.7rem}
.blog-empty p{color:var(--dim);margin-bottom:1.6rem}

.blog-pager{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:2.6rem;
  flex-wrap:wrap}
.blog-pager-n{font-size:.78rem;color:var(--dim)}

/* ---- one article ---- */
.blog-preview-bar{position:sticky;top:0;z-index:150;text-align:center;font-size:.8rem;
  padding:.7rem 1rem;background:rgba(245,195,107,.14);border-bottom:1px solid rgba(245,195,107,.4);
  color:var(--gold)}
.blog-preview-bar a{color:var(--gold);text-decoration:underline;margin-left:.4rem}

.post-top{padding:8.5rem 1.5rem 1.5rem;text-align:center}
.post-crumbs{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--dim-2);
  margin-bottom:1.2rem;display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap}
.post-crumbs a{color:var(--gold)}
.post-crumbs span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60vw}
.post-top h1{font-size:clamp(1.9rem,5vw,3rem);font-weight:300;line-height:1.2;margin-bottom:1rem}
.post-meta{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap;font-size:.78rem;
  color:var(--dim);margin-bottom:1.1rem}
.post-tags{display:flex;gap:.45rem;justify-content:center;flex-wrap:wrap}

.post-hero{margin:1.5rem 0 .5rem;border-radius:22px;overflow:hidden;border:1px solid var(--stroke-2)}
.post-hero img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}

.post-lede{font-family:'Fraunces',serif;font-size:1.15rem;font-weight:300;font-style:italic;
  line-height:1.6;color:var(--dim);padding:1.6rem 0 .4rem;border-bottom:1px solid var(--stroke-2);
  margin-bottom:2rem}

/* The article itself. Generous measure and rhythm — this is the one place on
   the site given over entirely to reading. */
.post-body{font-size:1.02rem;line-height:1.85;color:var(--text)}
.post-body>*+*{margin-top:1.35rem}
.post-body p{color:rgba(241,236,255,.86)}
.post-body h2,.post-body h3,.post-body h4{font-family:'Fraunces',serif;font-weight:400;
  line-height:1.3;color:var(--text);margin-top:2.6rem}
.post-body h2{font-size:1.55rem}
.post-body h3{font-size:1.28rem}
.post-body h4{font-size:1.1rem}
.post-body a{color:var(--gold);text-decoration:underline;text-underline-offset:3px}
.post-body a:hover{color:#FFF3D6}
.post-body strong{font-weight:600;color:var(--text)}
.post-body em{font-style:italic}
.post-body ul,.post-body ol{padding-left:1.35rem;color:rgba(241,236,255,.86)}
.post-body li+li{margin-top:.5rem}
.post-body ul li::marker{color:var(--gold)}
.post-body ol li::marker{color:var(--gold);font-weight:600}
.post-body blockquote{border-left:2px solid var(--gold);padding:.3rem 0 .3rem 1.4rem;
  font-family:'Fraunces',serif;font-size:1.12rem;font-style:italic;color:var(--text)}
.post-body hr{border:0;height:1px;background:var(--stroke-2);margin:2.6rem 0}
.post-body img{max-width:100%;height:auto;border-radius:16px}

.post-foot{margin-top:3rem;padding-top:1.6rem;border-top:1px solid var(--stroke-2)}
.post-share{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.post-share>span{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--dim-2);
  margin-right:.2rem}

/* ---- responsive ---- */
@media(max-width:900px){
  .blog-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .blog-grid{grid-template-columns:1fr;gap:1rem}
  .bpc-body{padding:1.25rem 1.15rem 1.1rem}
  .bpc h3{font-size:1.08rem}
  .post-top{padding:7rem 1.25rem 1rem}
  .post-crumbs span:last-child{display:none}
  .post-crumbs [aria-hidden]{display:none}
  .post-lede{font-size:1.05rem}
  .post-body{font-size:.98rem;line-height:1.8}
  .post-body h2{font-size:1.35rem}
  .post-body h3{font-size:1.18rem}
  /* A row of share buttons must not push the page sideways on a phone. */
  .post-share{gap:.45rem}
  .post-share .admin-btn{flex:1 1 auto;justify-content:center}
  .blog-search{flex-direction:column}
  .blog-search .btn{width:100%;justify-content:center}
}
