/* =============================================================
   PALM YOGA — Design System
   Concept: "Alignment." Iyengar-rooted precision + the studio's
   one-of-a-kind Yoga Wall. A thin plumb-line motif threads the
   page and draws the eye downward. Light-dominant with dark used
   only as punctuation.
   Palette derived from brand: #841387 / #FFFFFF / #000000
   ============================================================= */

:root{
  /* color */
  --orchid:#841387;
  --orchid-deep:#6a0f6c;
  --orchid-ink:#4d0a50;
  --orchid-soft:rgba(132,19,135,.07);
  --orchid-line:rgba(132,19,135,.28);

  --aubergine:#1b0a1c;
  --aubergine-2:#271029;

  --ink:#170b12;
  --ink-2:#3a2b33;
  --muted:#6d5c66;

  --paper:#ffffff;
  --linen:#f8f3f6;
  --blush:#f1e2ee;

  --line:rgba(23,11,18,.13);
  --line-2:rgba(23,11,18,.08);
  --line-dark:rgba(255,255,255,.16);

  /* type */
  --display:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --body:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;

  /* metrics */
  --wrap:1240px;
  --gutter:clamp(1.15rem,5vw,3rem);
  --section:clamp(4.5rem,9vw,8.5rem);
  --radius:2px;

  --ease:cubic-bezier(.22,.61,.36,1);

  /* switch to var(--body) if the serif renders old-style figures */
  --num-font:var(--display);
}

/* ---------- reset / base ---------- */
*,*::before,*::after{box-sizing:border-box}
*{margin:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  font-family:var(--body);
  color:var(--ink);
  background:var(--paper);
  font-size:clamp(.965rem,.5vw + .87rem,1.03rem);
  line-height:1.7;
  letter-spacing:-.002em;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  font-synthesis-weight:none;
  /* Cormorant defaults to old-style figures; force lining numerals */
  font-variant-numeric:lining-nums;
  font-feature-settings:"lnum" 1;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}
ul{list-style:none;padding:0}
:focus-visible{outline:2px solid var(--orchid);outline-offset:3px;border-radius:2px}
::selection{background:var(--orchid);color:#fff}

/* ---------- typography ---------- */
h1,h2,h3,h4{font-family:var(--display);font-weight:400;line-height:1.08;letter-spacing:-.006em;color:var(--ink)}
.display{
  font-family:var(--display);
  font-weight:400;
  font-size:clamp(2.9rem,6.9vw,5.9rem);
  line-height:1.02;
  letter-spacing:-.012em;
}
.display em{font-style:italic;font-weight:400;color:var(--orchid)}
h2.section-title{
  font-size:clamp(2.2rem,4.7vw,3.8rem);
  line-height:1.06;
  letter-spacing:-.008em;
}
h3{font-size:clamp(1.35rem,2vw,1.7rem);letter-spacing:-.01em}
.lead{font-size:clamp(1.08rem,1.3vw,1.28rem);line-height:1.62;color:var(--ink-2);font-weight:400;letter-spacing:-.004em}
p + p{margin-top:1.05rem}
strong{font-weight:700;color:var(--ink)}

/* eyebrow / alignment tick — the signature label */
.eyebrow{
  display:inline-flex;align-items:center;gap:.7rem;
  font-family:var(--body);
  font-size:.72rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.28em;
  color:var(--orchid);
  margin-bottom:1.5rem;
}
.eyebrow::before{
  content:"";width:2.4rem;height:1px;background:var(--orchid);
  opacity:.85;flex:none;
}
.on-dark .eyebrow{color:#e6b7e6}
.on-dark .eyebrow::before{background:#e6b7e6}

/* ---------- layout ---------- */
.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
.wrap-narrow{max-width:900px}
.section{padding-block:var(--section)}
.section-sm{padding-block:clamp(3rem,6vw,5rem)}

/* section themes */
.bg-paper{background:var(--paper)}
.bg-linen{background:var(--linen)}
.bg-blush{background:var(--blush)}
.bg-dark{background:var(--aubergine);color:#f4ecf2}
.bg-orchid{background:var(--orchid);color:#fff}
.on-dark,.on-dark h1,.on-dark h2,.on-dark h3,.on-dark h4{color:#fff}
.on-dark p,.on-dark li{color:rgba(255,255,255,.78)}

/* vertical alignment spine (decorative) */
.spine{position:relative}
.spine::before{
  content:"";position:absolute;top:0;bottom:0;left:calc(var(--gutter) - 1px);
  width:1px;background:linear-gradient(to bottom,transparent,var(--orchid-line) 12%,var(--orchid-line) 88%,transparent);
  pointer-events:none;
}
@media (max-width:900px){.spine::before{display:none}}

/* ---------- buttons ---------- */
.btn{
  --bg:var(--orchid);--fg:#fff;
  display:inline-flex;align-items:center;gap:.6rem;
  background:var(--bg);color:var(--fg);
  font-family:var(--body);font-weight:600;font-size:.9rem;
  letter-spacing:.02em;
  padding:.95em 1.8em;border-radius:var(--radius);
  position:relative;overflow:hidden;isolation:isolate;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease);
  box-shadow:0 1px 0 rgba(0,0,0,.04);
}
.btn::after{content:"";position:absolute;inset:0;z-index:-1;background:var(--orchid-deep);transform:translateY(101%);transition:transform .45s var(--ease)}
.btn:hover{transform:translateY(-2px)}
.btn:hover::after{transform:translateY(0)}
.btn .arw{transition:transform .4s var(--ease)}
.btn:hover .arw{transform:translateX(4px)}

.btn-ghost{
  --bg:transparent;--fg:var(--ink);
  border:1px solid var(--line);
}
.btn-ghost::after{background:var(--ink)}
.btn-ghost:hover{--fg:#fff;color:#fff;border-color:var(--ink)}

.on-dark .btn-ghost,.bg-orchid .btn-ghost{--fg:#fff;border-color:rgba(255,255,255,.4)}
.on-dark .btn-ghost::after,.bg-orchid .btn-ghost::after{background:#fff}
.on-dark .btn-ghost:hover,.bg-orchid .btn-ghost:hover{color:var(--ink);--fg:var(--ink)}

.btn-light{--bg:#fff;--fg:var(--orchid-ink)}
.btn-light::after{background:#f1e2ee}
.btn-light:hover{--fg:var(--orchid-ink)}

.textlink{
  display:inline-flex;align-items:center;gap:.5rem;
  font-weight:600;font-size:.92rem;color:var(--orchid);
  border-bottom:1px solid var(--orchid-line);padding-bottom:2px;
  transition:gap .3s var(--ease),border-color .3s var(--ease);
}
.textlink:hover{gap:.85rem;border-color:var(--orchid)}
.on-dark .textlink{color:#eec2ee;border-color:rgba(255,255,255,.3)}

.btn-row{display:flex;flex-wrap:wrap;gap:.85rem;align-items:center}

/* ============================================================
   HEADER / NAV — floating violet pill bar
   Sticky and in-flow, so it never overlaps page content.
   ============================================================ */
.site-header{
  position:sticky;top:0;z-index:100;
  padding-block:.8rem;
  background:transparent;
  transition:padding-block .35s var(--ease);
}
.site-header.scrolled{padding-block:.5rem}

.nav-pill{
  position:relative;
  display:flex;align-items:center;gap:clamp(.6rem,1.4vw,1.2rem);
  width:calc(100% - 2 * var(--gutter));max-width:1320px;margin-inline:auto;
  padding:.45rem .45rem .45rem 1.15rem;
  background:rgba(255,255,255,.82);
  -webkit-backdrop-filter:saturate(170%) blur(20px);
  backdrop-filter:saturate(170%) blur(20px);
  border:1px solid rgba(132,19,135,.14);
  border-radius:999px;
  box-shadow:0 1px 0 rgba(255,255,255,.7) inset,0 18px 40px -26px rgba(77,10,80,.4);
  transition:background .35s ease,box-shadow .35s ease,border-color .35s ease;
}
.site-header.scrolled .nav-pill{
  background:rgba(255,255,255,.93);
  border-color:rgba(132,19,135,.2);
  box-shadow:0 1px 0 rgba(255,255,255,.8) inset,0 22px 44px -24px rgba(77,10,80,.5);
}

/* the original logo already contains the wordmark and tagline,
   so no separate text sits beside it */
.brand{display:flex;align-items:center;flex:none;z-index:120}
.brand img{height:56px;width:auto}

/* --- link tabs --- */
.nav-links{display:flex;align-items:center;gap:.15rem;margin-inline:auto}
.nav-links > li > a,.nav-links > li > .drop-btn{
  display:inline-flex;align-items:center;gap:.35rem;
  font-size:.85rem;font-weight:600;letter-spacing:.01em;
  padding:.52rem .78rem;border-radius:999px;
  color:#4f3d55;white-space:nowrap;
  transition:color .22s ease,background .22s ease;
}
.nav-links > li > a:hover,.nav-links > li > .drop-btn:hover,
.has-drop:hover > .drop-btn{
  color:var(--orchid-deep);background:rgba(132,19,135,.08);
}
.nav-links > li.active > a{
  color:#fff;background:var(--orchid);
  box-shadow:0 8px 18px -10px rgba(106,15,108,.8);
}
.nav-links > li.active > a:hover{color:#fff;background:var(--orchid-deep)}
.nav-links .drop-btn .chev{width:.62em;transition:transform .3s ease}
.has-drop.active > .drop-btn{color:#fff;background:var(--orchid)}

/* --- right side --- */
.nav-cta{display:flex;align-items:center;gap:.65rem;flex:none}
.nav-phone{
  display:inline-flex;align-items:center;gap:.4rem;
  font-weight:700;font-size:.83rem;color:#4f3d55;white-space:nowrap;
  padding:.5rem .8rem;border-radius:999px;
  transition:color .22s ease,background .22s ease;
}
.nav-phone:hover{color:var(--orchid-deep);background:rgba(132,19,135,.08)}
.nav-phone svg{width:.95em;color:var(--orchid)}
.nav-cta .btn{padding:.7em 1.25em;font-size:.8rem;border-radius:999px}

/* --- dropdown (simple single-column list) --- */
.has-drop{position:relative}
.drop{
  position:absolute;top:calc(100% + .85rem);left:-.25rem;
  min-width:238px;
  background:#fff;border:1px solid rgba(132,19,135,.14);border-radius:14px;
  box-shadow:0 26px 50px -26px rgba(77,10,80,.4);
  padding:.45rem;
  opacity:0;visibility:hidden;transform:translateY(6px);
  transition:opacity .24s var(--ease),transform .24s var(--ease),visibility .24s;
}
.has-drop:hover .drop,.has-drop:focus-within .drop{opacity:1;visibility:visible;transform:translateY(0)}
.has-drop:hover .chev{transform:rotate(180deg)}
.drop a{
  display:block;padding:.6rem .8rem;border-radius:9px;
  font-size:.88rem;font-weight:500;color:var(--ink-2);white-space:nowrap;
  transition:background .2s ease,color .2s ease;
}
.drop a:hover{background:rgba(132,19,135,.08);color:var(--orchid-deep)}
.drop-sep{display:block;height:1px;margin:.4rem .8rem;background:rgba(132,19,135,.12)}
.drop-all{
  display:flex !important;align-items:center;gap:.4rem;
  font-weight:700 !important;color:var(--orchid) !important;font-size:.82rem !important;
}
.drop-all .arw{width:.9em;flex:none;transition:transform .3s var(--ease)}
.drop-all:hover .arw{transform:translateX(3px)}

/* --- burger --- */
.burger{
  display:none;width:42px;height:42px;flex-direction:column;justify-content:center;
  gap:5px;align-items:center;z-index:120;flex:none;
  border-radius:50%;background:rgba(132,19,135,.08);
  transition:background .25s ease;
}
.burger:hover{background:rgba(132,19,135,.15)}
.burger span{width:18px;height:2px;background:var(--orchid-ink);border-radius:2px;transition:transform .35s var(--ease),opacity .25s ease}
.burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

@media (max-width:1240px){
  .nav-links > li > a,.nav-links > li > .drop-btn{padding:.5rem .6rem;font-size:.82rem}
  .nav-phone{display:none}
}
@media (max-width:1080px){
  .burger{display:flex;margin-left:auto}
  .nav-links{display:none}
  .nav-cta{margin-left:0}
  .mobile-nav{display:block}
  .brand img{height:34px}
}
@media (max-width:600px){
  .nav-cta .btn{padding:.65em 1em;font-size:.76rem}
  .nav-cta .btn .arw{display:none}
}

/* --- mobile nav: full-screen violet overlay --- */
.mobile-nav{
  position:fixed;inset:0;z-index:150;
  display:flex;flex-direction:column;
  background:
    radial-gradient(70% 50% at 100% 0%,rgba(227,156,227,.16) 0%,rgba(227,156,227,0) 60%),
    linear-gradient(168deg,#3d0740 0%,#25062b 52%,#160317 100%);
  color:#fff;
  padding:1rem 0 calc(1rem + env(safe-area-inset-bottom));
  overflow-y:auto;-webkit-overflow-scrolling:touch;
  opacity:0;transition:opacity .3s var(--ease);
}
.mobile-nav[hidden]{display:none}
.mobile-nav.open{opacity:1}

.mn-top{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:0 1.15rem .6rem;
}
.mn-brand img{height:44px;width:auto;display:block}
.mn-x{
  width:46px;height:46px;border-radius:50%;flex:none;
  display:grid;place-items:center;color:#fff;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);
  transition:background .25s ease,transform .3s ease;
}
.mn-x:hover,.mn-x:active{background:rgba(255,255,255,.18)}
.mn-x svg{width:1.15rem}

.mn-links{display:flex;flex-direction:column;padding:.4rem .35rem 0;flex:1}
.mn-link{
  display:flex;align-items:center;gap:.9rem;
  min-height:56px;padding:.55rem .8rem;border-radius:12px;
  color:#fff;text-decoration:none;
  transition:background .22s ease;
}
.mn-link:active{background:rgba(255,255,255,.1)}
.mn-i{
  font-family:var(--body);font-size:.62rem;font-weight:700;letter-spacing:.14em;
  color:rgba(255,255,255,.42);flex:none;width:1.6rem;
}
.mn-t{
  font-family:var(--display);font-weight:400;letter-spacing:-.018em;
  font-size:clamp(1.42rem,6vw,1.75rem);line-height:1.1;flex:1;
}
.mn-a{width:1.05rem;flex:none;color:rgba(255,255,255,.34)}
.mn-link.is-on{background:rgba(255,255,255,.11)}
.mn-link.is-on .mn-t{color:#f3d7f4}
.mn-link.is-on .mn-i,.mn-link.is-on .mn-a{color:#e39ce3}

/* Classes accordion */
.mn-toggle{
  width:100%;text-align:left;font:inherit;cursor:pointer;
  background:none;border:none;
}
.mn-c{
  width:1.05rem;flex:none;color:rgba(255,255,255,.5);
  transition:transform .32s var(--ease),color .25s ease;
}
.mn-toggle[aria-expanded="true"] .mn-c{transform:rotate(180deg);color:#e39ce3}
.mn-toggle[aria-expanded="true"]{background:rgba(255,255,255,.07)}

.mn-sub{
  display:flex;flex-direction:column;
  margin-left:2.4rem;padding-left:1rem;
  border-left:1px solid rgba(255,255,255,.18);
  max-height:0;opacity:0;visibility:hidden;overflow:hidden;
  transition:max-height .38s var(--ease),opacity .28s ease,
             visibility .38s,margin .38s var(--ease);
}
.mn-sub.open{
  max-height:26rem;opacity:1;visibility:visible;
  margin-top:.2rem;margin-bottom:.55rem;
}
.mn-sub a{
  min-height:46px;display:flex;align-items:center;
  font-size:.97rem;font-weight:500;color:rgba(255,255,255,.72);
  text-decoration:none;
}
.mn-sub a:first-child{font-weight:700;color:#e39ce3}
.mn-sub a:active{color:#fff}
.mn-sub a[aria-current]{color:#f3d7f4;font-weight:700}

.mn-foot{
  display:flex;flex-direction:column;align-items:center;gap:.95rem;
  padding:1.3rem 1.15rem .2rem;margin-top:.6rem;
  border-top:1px solid rgba(255,255,255,.16);
}
.mn-btn{width:100%;justify-content:center;border-radius:999px;min-height:52px}
.mn-phone{
  display:inline-flex;align-items:center;gap:.5rem;min-height:44px;
  font-weight:700;font-size:1.02rem;color:#f3d7f4;
}
.mn-phone svg{width:1em;flex:none}
.mn-addr{font-size:.76rem;color:rgba(255,255,255,.5);text-align:center;line-height:1.5}

body.nav-lock{overflow:hidden}

/* ============================================================
   HERO (home)
   ============================================================ */
/* Gradient version — white washing into orchid on the diagonal.
   Copy left, arch-topped portrait right (the studio window motif),
   full-width glass stat bar closing the section. */
.hero{
  position:relative;overflow:hidden;isolation:isolate;
  background:
    radial-gradient(58% 62% at 76% 18%,rgba(132,19,135,.14) 0%,rgba(132,19,135,0) 68%),
    radial-gradient(70% 80% at 100% 100%,rgba(132,19,135,.20) 0%,rgba(132,19,135,0) 62%),
    linear-gradient(152deg,#ffffff 0%,#fefcfe 24%,#f8eef8 58%,#f0dff1 82%,#e7d1e9 100%);
}
/* soft orchid aura drifting behind the arch */
.hero-aura{
  position:absolute;z-index:0;pointer-events:none;
  width:min(56vw,720px);aspect-ratio:1;
  right:-8%;top:-22%;
  border-radius:50%;
  background:radial-gradient(circle at 50% 50%,rgba(132,19,135,.16),rgba(132,19,135,.05) 52%,rgba(132,19,135,0) 72%);
  filter:blur(6px);
}
/* vertical rail label along the left edge */
.hero-rail{
  position:absolute;z-index:2;left:calc(var(--gutter) / 2 - .35rem);top:clamp(4rem,9vw,7rem);
  writing-mode:vertical-rl;
  font-size:.66rem;font-weight:700;letter-spacing:.32em;text-transform:uppercase;
  color:var(--orchid);opacity:.5;
  display:flex;align-items:center;gap:1rem;
}
.hero-rail::after{content:"";width:1px;height:clamp(3rem,7vw,6rem);background:linear-gradient(180deg,var(--orchid-line),rgba(132,19,135,0))}

.hero-inner{
  position:relative;z-index:1;
  display:grid;grid-template-columns:minmax(0,.94fr) minmax(0,1fr);
  align-items:center;gap:clamp(2rem,5vw,5rem);
  width:100%;max-width:var(--wrap);margin-inline:auto;
  padding-inline:var(--gutter);
  padding-block:clamp(3.25rem,7vw,6.5rem) clamp(2.75rem,5vw,4.5rem);
}
.hero-copy{position:relative}
.hero .eyebrow{color:var(--orchid);opacity:.85;margin-bottom:1.3rem}
.hero .display{
  font-weight:400;letter-spacing:-.014em;line-height:1;
  font-size:clamp(3rem,6.7vw,5.7rem);
  color:#1a0e16;margin-bottom:1.4rem;
}
.hero .display em{color:var(--orchid-deep)}
.hero .lead{max-width:37ch;margin-bottom:2.3rem;color:#4f3d48;font-weight:400}
.hero-cta{margin-bottom:1.5rem;align-items:center}
.hero-cta .btn{box-shadow:0 16px 30px -20px rgba(106,15,108,.75)}
.hero-cta .btn-ghost{
  border-color:rgba(132,19,135,.22);
  background:rgba(255,255,255,.55);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  box-shadow:none;
}
.hero-note{
  display:flex;align-items:center;gap:.6rem;
  font-size:.85rem;color:var(--muted);font-weight:500;
}
.hero-note .pip{
  width:.42rem;height:.42rem;border-radius:50%;background:var(--orchid);flex:none;
  box-shadow:0 0 0 4px rgba(132,19,135,.13);
}

/* --- arch media --- */
.hero-media{position:relative;justify-self:end;width:100%;max-width:560px}
.hero-media .halo{
  position:absolute;z-index:0;pointer-events:none;
  left:50%;top:6%;transform:translateX(-50%);
  width:104%;aspect-ratio:1/1.18;
  border:1px solid rgba(132,19,135,.16);
  border-radius:999px 999px 6px 6px;
}
.hero-media .arch{
  position:relative;z-index:1;overflow:hidden;
  aspect-ratio:1/1.16;
  border-radius:999px 999px 4px 4px;
  background:var(--linen);
  box-shadow:
    0 2px 0 rgba(255,255,255,.7),
    0 34px 60px -38px rgba(77,10,80,.42),
    0 80px 110px -80px rgba(77,10,80,.35);
}
.hero-media .arch::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  border-radius:inherit;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.55);
  background:linear-gradient(180deg,rgba(132,19,135,.10) 0%,rgba(132,19,135,0) 34%);
}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:50% 42%}
.hero-media .tag{
  position:absolute;z-index:2;left:-1.25rem;bottom:2.4rem;
  background:rgba(255,255,255,.86);
  -webkit-backdrop-filter:saturate(170%) blur(14px);
  backdrop-filter:saturate(170%) blur(14px);
  padding:.7rem 1.05rem;border-radius:var(--radius);
  border:1px solid rgba(255,255,255,.85);
  box-shadow:0 20px 40px -26px rgba(77,10,80,.55);
  font-size:.68rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--orchid-ink);
  display:flex;align-items:center;gap:.55rem;white-space:nowrap;
}
.hero-media .tag::before{content:"";width:.45rem;height:.45rem;border-radius:50%;background:var(--orchid)}

/* --- stat bar: evenly distributed, numerals given real presence --- */
.hero-bar{
  position:relative;z-index:1;
  background:rgba(255,255,255,.62);
  -webkit-backdrop-filter:saturate(160%) blur(18px);
  backdrop-filter:saturate(160%) blur(18px);
  border-top:1px solid rgba(132,19,135,.14);
  border-bottom:1px solid rgba(132,19,135,.1);
}
.hero-bar-in{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr)) auto;
  align-items:center;gap:clamp(1rem,2vw,2rem);
  padding-block:clamp(1.3rem,2.2vw,1.8rem);
}
.hero-bar .stat{
  display:flex;flex-direction:column;gap:.35rem;
  position:relative;min-width:0;
}
/* short violet tick above each figure instead of tall dividers */
.hero-bar .stat::before{
  content:"";width:1.5rem;height:2px;border-radius:2px;margin-bottom:.15rem;
  background:linear-gradient(90deg,var(--orchid),rgba(132,19,135,.25));
}
/* hairline only *between* stats */
@media (min-width:901px){
.hero-bar .stat + .stat::after{
  content:"";position:absolute;left:calc(-1 * clamp(.5rem,1vw,1rem));top:.2rem;bottom:.2rem;width:1px;
  background:linear-gradient(180deg,rgba(132,19,135,0),rgba(132,19,135,.22),rgba(132,19,135,0));
}
}
.hero-bar .num{
  font-family:var(--display);font-weight:500;
  font-size:clamp(1.95rem,2.6vw,2.5rem);line-height:.95;
  letter-spacing:-.01em;color:var(--orchid-deep);
  font-variant-numeric:lining-nums;
  font-feature-settings:"lnum" 1;
}
/* if the serif ever renders old-style figures, this keeps the big stats even:
   swap --num-font to var(--body) and the numerals use Inter instead */
.hero-bar .num,.cta-stats .num,.p-amt,.cd-spec-v,.sk-time,.ct-v.ct-big{
  font-family:var(--num-font);
}
.hero-bar .num sup{font-size:.42em;vertical-align:.72em;margin-left:.06em;font-weight:600}
.hero-bar .lbl{
  font-size:.76rem;letter-spacing:.02em;color:#6f4a76;line-height:1.4;
  font-weight:500;
}
.hero-bar-link{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.7rem 1.15rem;border-radius:999px;
  background:rgba(132,19,135,.08);border:1px solid rgba(132,19,135,.2);
  font-size:.8rem;font-weight:700;letter-spacing:.01em;color:var(--orchid-deep);
  white-space:nowrap;
  transition:background .3s ease,border-color .3s ease,gap .3s var(--ease);
}
.hero-bar-link:hover{background:rgba(132,19,135,.15);border-color:rgba(132,19,135,.34);gap:.8rem}
.hero-bar-link .arw{transition:transform .3s var(--ease)}
.hero-bar-link:hover .arw{transform:translateX(3px)}

@media (max-width:1080px){
  .hero-rail{display:none}
  .hero-media .tag{left:.9rem}
}
@media (max-width:900px){
  .hero-inner{
    grid-template-columns:1fr;gap:2.5rem;
    padding-block:2.5rem 2.75rem;
  }
  .hero .lead{max-width:48ch}
  .hero-media{justify-self:center;max-width:440px}
  .hero-media .arch{aspect-ratio:1/1.05;border-radius:999px 999px 4px 4px}
  .hero-media .halo{display:none}
  .hero-bar-in{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.3rem 1.5rem;padding-block:1.3rem}
  .hero-bar-link{grid-column:1/-1;justify-self:start}
}
@media (max-width:560px){
  .hero-media{max-width:100%}
  .hero-bar .num{font-size:clamp(1.7rem,7vw,2rem)}
}

/* ============================================================
   SPLIT (about / feature) — image + text
   ============================================================ */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.8rem,5vw,5.5rem);align-items:center}
.split.flip .split-media{order:2}
.split-media{position:relative}
.split-media .frame{border-radius:var(--radius);overflow:hidden;aspect-ratio:5/4;box-shadow:0 40px 70px -50px rgba(23,11,18,.45)}
.split-media img{width:100%;height:100%;object-fit:cover}
.split-media .frame.tall{aspect-ratio:4/5}
.split-copy{max-width:52ch}
.split-copy h2{margin-bottom:1.3rem}
.split-copy p{color:var(--ink-2)}
.split-copy .btn-row{margin-top:2rem}
/* small orchid corner accent on media */
.split-media .accent{position:absolute;width:70px;height:70px;border:1px solid var(--orchid);border-right:none;border-bottom:none;top:-14px;left:-14px}
.split.flip .split-media .accent{left:auto;right:-14px;border:1px solid var(--orchid);border-left:none;border-bottom:none}
@media (max-width:820px){
  .split{grid-template-columns:1fr;gap:2.2rem}
  .split.flip .split-media{order:0}
  .split-media .frame{aspect-ratio:16/11}
  .split-media .frame.tall{aspect-ratio:16/12}
}

/* ============================================================
   OFFERINGS grid
   ============================================================ */
/* icon cards — same 3x2 grid, richer surface */
.offer-grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(.9rem,1.8vw,1.4rem);
  margin-top:clamp(2.2rem,4vw,3rem);
}
.offer{
  position:relative;overflow:hidden;isolation:isolate;
  display:flex;flex-direction:column;
  background:
    radial-gradient(120% 90% at 100% 0%,rgba(132,19,135,.07) 0%,rgba(132,19,135,0) 58%),
    rgba(255,255,255,.86);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border:1px solid rgba(132,19,135,.13);border-radius:16px;
  padding:clamp(1.5rem,2.4vw,2rem);
  box-shadow:0 2px 6px -3px rgba(77,10,80,.14);
  transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .5s ease;
}
.offer:hover{
  transform:translateY(-6px);
  border-color:rgba(132,19,135,.28);
  box-shadow:0 34px 52px -34px rgba(77,10,80,.4);
}
/* oversized ghost numeral */
.offer-wm{
  position:absolute;z-index:-1;top:-.6rem;right:.4rem;
  font-family:var(--display);font-weight:400;font-size:5.4rem;line-height:1;
  color:rgba(132,19,135,.07);pointer-events:none;user-select:none;
  transition:color .5s ease,transform .6s var(--ease);
}
.offer:hover .offer-wm{color:rgba(132,19,135,.12);transform:translateY(2px)}
/* gradient icon disc */
.offer-ic{
  width:2.9rem;height:2.9rem;border-radius:14px;flex:none;
  display:grid;place-items:center;margin-bottom:1.15rem;
  color:#fff;background:linear-gradient(150deg,var(--orchid),var(--orchid-ink));
  box-shadow:0 12px 22px -14px rgba(77,10,80,.85);
  transition:transform .5s var(--ease);
}
.offer:hover .offer-ic{transform:scale(1.06) rotate(-3deg)}
.offer-ic svg{width:1.35rem}
.offer .idx{
  font-size:.63rem;font-weight:700;letter-spacing:.2em;
  color:var(--orchid-deep);margin-bottom:.4rem;display:block;
}
.offer h3{font-size:clamp(1.15rem,1.6vw,1.3rem);color:#25062b;margin-bottom:.55rem;letter-spacing:-.012em}
.offer p{font-size:.93rem;color:#6f4a76;line-height:1.62;flex:1}
/* accent rule that grows on hover */
.offer-line{
  display:block;height:2px;width:2.2rem;margin-top:1.2rem;border-radius:2px;
  background:linear-gradient(90deg,var(--orchid),rgba(132,19,135,.2));
  transition:width .5s var(--ease);
}
.offer:hover .offer-line{width:100%}

@media (max-width:820px){.offer-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.offer-grid{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){
  .offer:hover{transform:none}
  .offer:hover .offer-ic,.offer:hover .offer-wm{transform:none}
}

/* ============================================================
   WALL FEATURE (dark, full-bleed) — the one bold moment
   ============================================================ */
.wall{position:relative;overflow:hidden;background:var(--aubergine)}
.wall-grid{display:grid;grid-template-columns:1fr 1fr;min-height:min(78vh,680px)}
.wall-media{position:relative}
.wall-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.wall-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 55%,var(--aubergine))}
.wall-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(2.5rem,6vw,6rem) clamp(1.5rem,5vw,5rem)}
.wall-copy .display{color:#fff;font-size:clamp(2.2rem,4vw,3.6rem);margin-bottom:1.4rem}
.wall-copy .display em{color:#e39ce3}
.wall-copy p{color:rgba(255,255,255,.76);max-width:44ch;margin-bottom:1rem}
.wall-copy .btn-row{margin-top:1.8rem}
/* rope motif */
.wall .ropes{position:absolute;top:0;bottom:0;left:50%;width:40%;pointer-events:none;opacity:.5;display:flex;justify-content:space-around}
.wall .ropes i{width:1px;background:linear-gradient(rgba(227,156,227,.5),transparent 70%)}
@media (max-width:820px){
  .wall-grid{grid-template-columns:1fr}
  .wall-media{height:340px;position:relative}
  .wall-media::after{background:linear-gradient(0deg,var(--aubergine),transparent 60%)}
  .wall .ropes{display:none}
}

/* ============================================================
   CLASS CARDS
   ============================================================ */
.section-head{max-width:60ch}
.section-head.center{margin-inline:auto;text-align:center}
.section-head.center .eyebrow{justify-content:center}
.section-head p{margin-top:1rem;color:var(--ink-2)}
/* ============================================================
   CLASSES BAND — even 3-across cards, arch-topped photos
   ============================================================ */
.classes-band{
  position:relative;
  background:linear-gradient(176deg,#f7eef7 0%,#fdf9fd 52%,#ffffff 100%);
}
.classes-band .section-head{max-width:64ch}
.classes-band .section-title{font-weight:400;letter-spacing:-.008em;color:#1a0e16}
.classes-band .section-title em{font-style:italic;color:var(--orchid)}

/* flex so an orphan last row centres instead of hanging left */
.cl-grid{
  display:flex;flex-wrap:wrap;justify-content:center;
  gap:clamp(1rem,2vw,1.6rem);
  margin-top:clamp(2.4rem,4vw,3.4rem);
}
.cl-card{
  flex:0 1 calc((100% - 2 * clamp(1rem,2vw,1.6rem)) / 3);
  min-width:270px;
  display:flex;flex-direction:column;
  background:#fff;border:1px solid rgba(132,19,135,.10);border-radius:14px;
  padding:clamp(.85rem,1.2vw,1.1rem);
  box-shadow:0 2px 4px -2px rgba(23,11,18,.05);
  transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .5s ease;
}
.cl-card:hover,.cl-card:focus-visible{
  transform:translateY(-6px);
  border-color:rgba(132,19,135,.2);
  box-shadow:0 34px 52px -34px rgba(77,10,80,.34);
}

/* arch-topped photo, echoing the hero window */
.cl-arch{
  position:relative;overflow:hidden;
  aspect-ratio:1/.92;
  border-radius:999px 999px 8px 8px;
  background:var(--linen);
}
.cl-arch img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.cl-card:hover .cl-arch img{transform:scale(1.05)}
.cl-arch::after{
  content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.5);
}

.cl-body{display:flex;flex-direction:column;flex:1;padding:1.25rem .55rem .5rem}
.cl-top{display:flex;align-items:center;gap:.6rem;margin-bottom:.7rem}
.cl-num{
  font-family:var(--display);font-weight:400;font-size:1.15rem;line-height:1;
  color:var(--orchid);flex:none;
}
.cl-num::after{
  content:"";display:inline-block;vertical-align:middle;
  width:1.1rem;height:1px;margin-left:.55rem;
  background:var(--orchid-line);
}
.cl-kicker{
  font-size:.63rem;font-weight:700;letter-spacing:.19em;text-transform:uppercase;
  color:var(--orchid-deep);background:var(--orchid-soft);
  padding:.32rem .62rem;border-radius:999px;
}
.cl-card h3{font-size:clamp(1.22rem,1.5vw,1.38rem);color:#1a0e16;margin-bottom:.55rem}
.cl-card p{font-size:.92rem;color:var(--muted);line-height:1.6;flex:1;font-weight:400}
.cl-foot{
  display:flex;align-items:center;justify-content:space-between;gap:.85rem;
  margin-top:1.15rem;padding-top:.95rem;
  border-top:1px solid var(--line-2);
}
.cl-pace{
  display:inline-flex;align-items:center;gap:.5rem;
  font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);white-space:nowrap;
}
.cl-pace i{width:.3rem;height:.68rem;border-radius:1px;flex:none;background:rgba(132,19,135,.18)}
.cl-pace i + i{margin-left:-.26rem}
.cl-pace i.on{background:var(--orchid)}
.cl-go{
  display:inline-flex;align-items:center;gap:.42rem;
  font-size:.8rem;font-weight:700;color:var(--orchid);white-space:nowrap;
  transition:gap .35s var(--ease);
}
.cl-card:hover .cl-go{gap:.75rem}

.cl-tail{
  display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;
  margin-top:clamp(2rem,3.5vw,3rem);padding-top:clamp(1.4rem,2.5vw,2rem);
  border-top:1px solid rgba(132,19,135,.14);
}
.cl-tail p{display:flex;align-items:center;gap:.6rem;font-size:.93rem;color:var(--ink-2)}
.cl-tail .pip{width:.42rem;height:.42rem;border-radius:50%;background:var(--orchid);flex:none;box-shadow:0 0 0 4px rgba(132,19,135,.13)}
.cl-tail p a{color:var(--orchid);font-weight:700;border-bottom:1px solid var(--orchid-line);padding-bottom:1px}
.cl-tail p a:hover{border-color:var(--orchid)}
.cl-tail .btn-ghost{border-color:rgba(132,19,135,.22);background:#fff;flex:none}

@media (max-width:980px){
  .cl-card{flex:0 1 calc((100% - clamp(1rem,2vw,1.6rem)) / 2)}
}
@media (max-width:640px){
  .cl-card{flex:1 1 100%;min-width:0}
  .cl-arch{aspect-ratio:1/.78}
  .cl-tail{flex-direction:column;align-items:flex-start;gap:1.2rem}
}
@media (prefers-reduced-motion:reduce){
  .cl-card:hover,.cl-card:focus-visible{transform:none}
  .cl-card:hover .cl-arch img{transform:none}
}

/* ============================================================
   SCHEDULE
   ============================================================ */
/* violet band wrapping the day columns */
.sked-band{
  position:relative;overflow:hidden;isolation:isolate;
  background:
    radial-gradient(60% 70% at 88% 0%,rgba(132,19,135,.17) 0%,rgba(132,19,135,0) 62%),
    linear-gradient(162deg,#f6ecf9 0%,#f0e1f6 46%,#e8d4f1 100%);
}
.sked-band > .wrap{position:relative;z-index:1}
.sked-band .section-title{font-weight:400;letter-spacing:-.008em;color:#25062b}
.sked-band .section-head p{color:#54395c}
.sked-band .eyebrow{color:var(--orchid-deep)}
.sked-band .eyebrow::before{background:var(--orchid-deep)}

/* day columns instead of a table row list */
.sked{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(.9rem,1.8vw,1.5rem);
  margin-top:clamp(2rem,3.5vw,2.8rem);
  align-items:start;
}
.sk-day{display:flex;flex-direction:column;gap:.7rem}
.sk-dh{
  display:flex;flex-direction:column;gap:.2rem;
  padding-bottom:.85rem;margin-bottom:.15rem;
  border-bottom:1px solid rgba(132,19,135,.22);
}
.sk-abbr{
  align-self:flex-start;
  font-size:.6rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;
  color:#fff;background:var(--orchid);
  padding:.24rem .5rem;border-radius:999px;margin-bottom:.3rem;
}
.sk-dh h3{
  font-size:clamp(1.3rem,1.9vw,1.6rem);font-weight:400;letter-spacing:-.02em;color:#25062b;
}
.sk-count{font-size:.72rem;letter-spacing:.05em;color:#6f4a76}

.sk-slot{
  display:flex;flex-direction:column;gap:.32rem;
  background:rgba(255,255,255,.72);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border:1px solid rgba(132,19,135,.2);border-radius:12px;
  padding:1rem 1.05rem 1.05rem;
  box-shadow:0 2px 6px -3px rgba(77,10,80,.14);
  transition:transform .4s var(--ease),box-shadow .4s var(--ease),
             border-color .4s ease,background .4s ease;
}
.sk-slot:hover,.sk-slot:focus-visible{
  transform:translateY(-4px);
  background:#fff;
  border-color:var(--orchid);
  box-shadow:0 26px 40px -26px rgba(77,10,80,.5);
}
.sk-time{
  font-family:var(--display);font-weight:400;font-size:1.14rem;line-height:1.1;
  letter-spacing:-.01em;color:var(--orchid);
  font-variant-numeric:lining-nums tabular-nums;
}
.sk-time em{font-style:normal;font-size:.7em;letter-spacing:.04em;color:#8a6690}
.sk-name{font-weight:600;font-size:.95rem;line-height:1.4;color:#25062b}
.sk-meta{
  display:flex;align-items:center;gap:.4rem;margin-top:.35rem;
  font-size:.72rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;
  color:#7c5583;
}
.sk-meta .arw{color:var(--orchid);transition:transform .35s var(--ease)}
.sk-slot:hover .sk-meta .arw{transform:translateX(3px)}

/* Friday — solid violet card */
.sk-day.is-special .sk-abbr{background:var(--orchid-ink)}
.sk-day.is-special .sk-dh{border-bottom-color:rgba(132,19,135,.45)}
.sk-day.is-special .sk-slot{
  background:linear-gradient(155deg,var(--orchid) 0%,var(--orchid-ink) 100%);
  border-color:transparent;
  box-shadow:0 20px 34px -22px rgba(77,10,80,.6);
}
.sk-day.is-special .sk-slot:hover{
  background:linear-gradient(155deg,var(--orchid-deep) 0%,#3d0740 100%);
  border-color:transparent;
  box-shadow:0 30px 46px -26px rgba(77,10,80,.7);
}
.sk-day.is-special .sk-time{color:#fff}
.sk-day.is-special .sk-time em{color:rgba(255,255,255,.75)}
.sk-day.is-special .sk-name{color:#fff}
.sk-day.is-special .sk-meta{color:rgba(255,255,255,.82)}
.sk-day.is-special .sk-meta .arw{color:#fff}

@media (max-width:900px){
  .sked{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.4rem 1.1rem}
}
@media (max-width:560px){
  .sked{grid-template-columns:1fr;gap:1.6rem}
  .sk-dh{flex-direction:row;align-items:baseline;gap:.7rem;flex-wrap:wrap}
  .sk-count{margin-left:auto}
}
@media (prefers-reduced-motion:reduce){
  .sk-slot:hover,.sk-slot:focus-visible{transform:none}
}

/* ============================================================
   TESTIMONIALS BAND (home) — spotlight card + quiet 3-up
   ============================================================ */
.quotes-band{
  position:relative;overflow:hidden;isolation:isolate;
  background:linear-gradient(180deg,#faf3fa 0%,#f6ecf6 46%,#ffffff 100%);
}
.quotes-band > .wrap{position:relative;z-index:1}
.qb-orb{
  position:absolute;z-index:0;pointer-events:none;border-radius:50%;
  width:min(52vw,620px);aspect-ratio:1;left:-12%;top:-14%;
  background:radial-gradient(circle,rgba(132,19,135,.13),rgba(132,19,135,0) 68%);
}
.qb-head{text-align:center;max-width:52ch;margin-inline:auto}
.qb-head .eyebrow{justify-content:center}
.qb-head .section-title{
  font-weight:300;letter-spacing:-.008em;color:#1a0e16;
  font-size:clamp(2rem,4vw,3.1rem);
}
.qb-head .section-title em{font-style:italic;color:var(--orchid)}

/* --- spotlight quote --- */
.qb-feature{
  position:relative;
  max-width:960px;margin:clamp(2.2rem,4vw,3.2rem) auto 0;
  background:#fff;border-radius:24px;
  padding:clamp(2.2rem,4vw,3.4rem) clamp(1.6rem,4vw,3.6rem) clamp(1.7rem,3vw,2.4rem);
  box-shadow:
    0 1px 0 rgba(255,255,255,.9),
    0 40px 70px -46px rgba(77,10,80,.34),
    0 90px 120px -90px rgba(77,10,80,.28);
}
.qb-mark{
  position:absolute;top:clamp(-.4rem,1vw,.4rem);left:clamp(1rem,3vw,2.4rem);
  font-family:var(--display);font-weight:400;font-style:normal;
  font-size:clamp(7rem,13vw,12rem);line-height:1;
  color:rgba(132,19,135,.10);
  pointer-events:none;user-select:none;
}
.qb-feature blockquote{
  position:relative;
  font-family:var(--display);font-weight:400;font-style:italic;
  font-size:clamp(1.35rem,2.4vw,2.05rem);line-height:1.34;letter-spacing:-.012em;
  color:#1a0e16;
  max-width:46ch;
}
.qb-cite{
  display:flex;align-items:center;gap:1rem;
  margin-top:clamp(1.6rem,2.6vw,2.2rem);
  padding-top:clamp(1.2rem,2vw,1.6rem);
  border-top:1px solid rgba(132,19,135,.14);
}
.qb-av{
  width:3.1rem;height:3.1rem;border-radius:50%;flex:none;
  display:grid;place-items:center;
  font-family:var(--display);font-size:1.1rem;font-weight:400;letter-spacing:.02em;
  color:#fff;background:linear-gradient(150deg,var(--orchid),var(--orchid-ink));
  box-shadow:0 10px 22px -14px rgba(77,10,80,.7);
}
.qb-av.sm{
  width:2.4rem;height:2.4rem;font-size:.88rem;
  color:var(--orchid-deep);background:rgba(132,19,135,.09);
  border:1px solid rgba(132,19,135,.16);box-shadow:none;
}
.qb-id{display:flex;flex-direction:column;gap:.15rem}
.qb-id b{font-weight:700;font-size:1rem;color:var(--ink);font-style:normal}
.qb-id em{font-style:normal;font-size:.82rem;color:var(--muted);letter-spacing:.02em}

/* --- quiet 3-up --- */
.qb-row{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(1.2rem,2.6vw,2.4rem);
  margin-top:clamp(2.4rem,4vw,3.4rem);
}
.qb-note{
  display:flex;flex-direction:column;gap:.9rem;
  padding-top:1.4rem;border-top:1px solid rgba(132,19,135,.18);
}
.qb-note blockquote{
  font-size:.98rem;line-height:1.62;color:var(--ink-2);font-weight:400;
}
.qb-note blockquote::before{content:"\201C"}
.qb-note blockquote::after{content:"\201D"}
.qb-note figcaption{
  font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--orchid-deep);
}
.qb-tail{display:flex;justify-content:center;margin-top:clamp(2.2rem,4vw,3.2rem)}
.qb-tail .btn-ghost{border-color:rgba(132,19,135,.22);background:rgba(255,255,255,.7)}

@media (max-width:820px){
  .qb-row{grid-template-columns:1fr;gap:1.6rem}
  .qb-feature blockquote{max-width:none}
}

/* ============================================================
   TESTIMONIALS (shared — testimonials.html, pricing-options.html)
   ============================================================ */
.quote-lead{max-width:24ch}
.big-quote{
  font-family:var(--display);font-weight:400;font-style:italic;
  font-size:clamp(1.5rem,2.7vw,2.35rem);line-height:1.28;letter-spacing:-.01em;
  color:var(--ink);
}
.big-quote::first-letter{color:var(--orchid)}
.q-author{margin-top:1.8rem;display:flex;align-items:center;gap:1rem}
.q-author .mono{width:3rem;height:3rem;border-radius:50%;background:var(--orchid);color:#fff;display:grid;place-items:center;font-family:var(--display);font-size:1.2rem;flex:none}
.q-author .n{font-weight:700;color:var(--ink)}
.q-author .r{font-size:.82rem;color:var(--muted)}
.quote-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:start}
.mini-quotes{display:flex;flex-direction:column;gap:1.4rem}
.mini{background:#fff;border:1px solid var(--line-2);border-left:2px solid var(--orchid);border-radius:var(--radius);padding:1.5rem 1.6rem}
.bg-blush .mini{background:rgba(255,255,255,.6)}
.mini p{font-size:.98rem;color:var(--ink-2);font-style:italic;line-height:1.6}
.mini .who{margin-top:.9rem;font-weight:700;font-size:.85rem;color:var(--orchid-ink);font-style:normal}
@media (max-width:820px){.quote-grid{grid-template-columns:1fr;gap:2.5rem}}

/* ============================================================
   CTA band
   ============================================================ */
.cta-band{position:relative;overflow:hidden;text-align:center;background:var(--aubergine)}
.cta-band .cta-media{position:absolute;inset:0;z-index:0}
.cta-band .cta-media img{width:100%;height:100%;object-fit:cover;animation:ctaZoom 22s ease-in-out infinite alternate}
.cta-band .cta-media::after{content:"";position:absolute;inset:0;background:linear-gradient(155deg,rgba(19,7,20,.92) 0%,rgba(106,15,108,.84) 55%,rgba(132,19,135,.8) 100%)}
/* per-photo veil + focal point variants */
.cta-band.cta-wall .cta-media img{object-position:50% 30%}
.cta-band.cta-wall .cta-media::after{background:linear-gradient(148deg,rgba(16,5,17,.9) 0%,rgba(77,10,80,.86) 52%,rgba(132,19,135,.78) 100%)}
.cta-band.cta-flow .cta-media img{object-position:50% 55%}
.cta-band.cta-flow .cta-media::after{background:linear-gradient(200deg,rgba(19,7,20,.9) 0%,rgba(106,15,108,.82) 48%,rgba(150,26,152,.74) 100%)}
.cta-band.cta-calm .cta-media img{object-position:38% 45%}
.cta-band.cta-calm .cta-media::after{background:linear-gradient(120deg,rgba(24,8,25,.88) 0%,rgba(90,12,92,.84) 46%,rgba(132,19,135,.8) 100%)}
.cta-band.cta-studio .cta-media img{object-position:50% 62%}
.cta-band.cta-studio .cta-media::after{background:linear-gradient(168deg,rgba(17,6,18,.9) 0%,rgba(84,11,86,.85) 50%,rgba(140,22,143,.76) 100%)}
.cta-band .rings{position:absolute;inset:0;pointer-events:none;opacity:.35;z-index:1}
.cta-band .rings::before,.cta-band .rings::after{content:"";position:absolute;border:1px solid rgba(255,255,255,.5);border-radius:50%}
.cta-band .rings::before{width:520px;height:520px;top:-260px;left:-120px;animation:ctaSpin 70s linear infinite}
.cta-band .rings::after{width:640px;height:640px;bottom:-380px;right:-160px;animation:ctaSpin 90s linear infinite reverse}
.cta-band .wrap{position:relative;z-index:2}
.cta-band .display{color:#fff;font-size:clamp(2.1rem,4.4vw,3.6rem);margin-bottom:1.1rem}
.cta-band p{color:rgba(255,255,255,.85);max-width:48ch;margin:0 auto 2.2rem}
.cta-band .btn-row{justify-content:center}
.cta-stats{display:flex;justify-content:center;gap:clamp(2rem,6vw,4rem);flex-wrap:wrap;margin-top:2.6rem;padding-top:2rem;border-top:1px solid rgba(255,255,255,.22)}
.cta-stats .num{display:block;font-family:var(--display);font-size:2.1rem;line-height:1;color:#fff}
.cta-stats .lbl{display:block;font-size:.76rem;letter-spacing:.06em;color:rgba(255,255,255,.7);margin-top:.4rem}
@keyframes ctaZoom{from{transform:scale(1)}to{transform:scale(1.09)}}
@keyframes ctaSpin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.cta-band .cta-media img{animation:none}.cta-band .rings::before,.cta-band .rings::after{animation:none}}

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{background:var(--aubergine);color:rgba(255,255,255,.72);padding-block:clamp(3.5rem,6vw,5.5rem) 2rem}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.4fr;gap:2.5rem}
/* original logo needs a light plaque to stay legible on the dark footer */
.foot-brand img{
  height:92px;width:auto;display:block;
  background:#fff;border-radius:14px;
  padding:.9rem 1.15rem;margin-bottom:1.4rem;
  box-shadow:0 14px 30px -20px rgba(0,0,0,.7);
}
.foot-brand p{font-size:.92rem;max-width:34ch;color:rgba(255,255,255,.6)}
.foot-col h4{font-family:var(--body);font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:#e39ce3;margin-bottom:1.2rem;font-weight:700}
.foot-col a,.foot-col li{display:block;font-size:.92rem;padding:.28rem 0;color:rgba(255,255,255,.7);transition:color .25s,padding-left .25s}
.foot-col a:hover{color:#fff;padding-left:.3rem}
.foot-contact li{display:flex;gap:.65rem;align-items:flex-start;color:rgba(255,255,255,.72)}
.foot-contact svg{width:1rem;flex:none;color:#e39ce3;margin-top:.35rem}
.foot-contact a{padding:0}
.foot-social{display:flex;gap:.6rem;margin-top:1.4rem}
.foot-social a{width:40px;height:40px;border:1px solid var(--line-dark);border-radius:50%;display:grid;place-items:center;color:rgba(255,255,255,.8);transition:background .3s,color .3s,border-color .3s;padding:0}
.foot-social a:hover{background:var(--orchid);border-color:var(--orchid);color:#fff}
.foot-social svg{width:1rem}
.foot-bottom{margin-top:3.2rem;padding-top:1.6rem;border-top:1px solid var(--line-dark);display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-size:.8rem;color:rgba(255,255,255,.5)}
.foot-bottom a{color:rgba(255,255,255,.6)}
.foot-bottom a:hover{color:#fff}
@media (max-width:820px){.foot-grid{grid-template-columns:1fr 1fr}.foot-brand{grid-column:1/-1}}
@media (max-width:520px){.foot-grid{grid-template-columns:1fr}}

/* ============================================================
   INTERIOR PAGE HERO + BREADCRUMB
   ============================================================ */
.page-hero{
  position:relative;overflow:hidden;
  padding-block:clamp(3.5rem,7vw,6.5rem) clamp(3rem,5vw,4.5rem);
  background:
    radial-gradient(70% 90% at 100% 110%,rgba(132,19,135,.13) 0%,rgba(132,19,135,0) 60%),
    linear-gradient(150deg,#ffffff 0%,#fdfafd 34%,#f7ecf7 74%,#f0dff1 100%);
  border-bottom:1px solid rgba(132,19,135,.14);
}
.page-hero::before{content:"";position:absolute;left:calc(var(--gutter) - 1px);top:0;bottom:0;width:1px;background:linear-gradient(transparent,rgba(132,19,135,.22),transparent);z-index:1}
.page-hero .inner{max-width:64ch;position:relative}
.page-hero .display{font-size:clamp(2.55rem,5.5vw,4.6rem);font-weight:400;letter-spacing:-.012em;color:#1d1018;margin-bottom:1.3rem}
.page-hero .lead{max-width:52ch;color:#54424c;font-weight:400}
.crumb{display:flex;gap:.5rem;align-items:center;font-size:.78rem;color:var(--muted);margin-bottom:1.6rem;letter-spacing:.02em}
.crumb a:hover{color:var(--orchid)}
.crumb span{color:var(--orchid)}

/* --- two-column page hero: copy + facts + CTA | arch photo --- */
.ph-orb{
  position:absolute;z-index:0;pointer-events:none;border-radius:50%;
  width:min(44vw,520px);aspect-ratio:1;right:-8%;top:-26%;
  background:radial-gradient(circle,rgba(132,19,135,.14),rgba(132,19,135,0) 68%);
}
.ph-grid{
  position:relative;z-index:2;
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr);
  gap:clamp(2rem,5vw,4.5rem);align-items:center;
}
.ph-grid .inner{max-width:none}
.ph-grid .lead{max-width:46ch}

.ph-facts{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:clamp(1.4rem,2.4vw,1.9rem)}
.ph-facts li{
  display:inline-flex;align-items:center;gap:.5rem;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(132,19,135,.16);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  padding:.45rem .8rem;border-radius:999px;
  font-size:.78rem;font-weight:600;letter-spacing:.01em;color:var(--orchid-ink);
  white-space:nowrap;
}
.ph-facts li::before{
  content:"";width:.34rem;height:.34rem;border-radius:50%;flex:none;
  background:var(--orchid);
}
.ph-cta{margin-top:clamp(1.5rem,2.6vw,2.1rem)}
.ph-cta .btn{box-shadow:0 16px 30px -22px rgba(106,15,108,.7)}
.ph-cta .btn-ghost{
  border-color:rgba(132,19,135,.22);background:rgba(255,255,255,.6);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:none;
}

.ph-media{position:relative;justify-self:end;width:100%;max-width:440px}
.ph-media .arch{
  position:relative;overflow:hidden;
  aspect-ratio:1/1.1;
  border-radius:999px 999px 6px 6px;
  background:var(--linen);
  box-shadow:
    0 2px 0 rgba(255,255,255,.7),
    0 32px 54px -38px rgba(77,10,80,.4),
    0 70px 100px -80px rgba(77,10,80,.32);
}
.ph-media .arch::after{
  content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.55);
  background:linear-gradient(180deg,rgba(132,19,135,.10) 0%,rgba(132,19,135,0) 36%);
}
.ph-media img{width:100%;height:100%;object-fit:cover;object-position:50% 42%}
.ph-badge{
  position:absolute;left:-1rem;bottom:1.9rem;
  background:rgba(255,255,255,.88);
  -webkit-backdrop-filter:saturate(170%) blur(14px);backdrop-filter:saturate(170%) blur(14px);
  border:1px solid rgba(255,255,255,.85);
  box-shadow:0 18px 36px -24px rgba(77,10,80,.5);
  padding:.62rem .95rem;border-radius:var(--radius);
  font-size:.66rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--orchid-ink);
  display:flex;align-items:center;gap:.5rem;white-space:nowrap;
}
.ph-badge::before{content:"";width:.42rem;height:.42rem;border-radius:50%;background:var(--orchid);flex:none}

@media (max-width:940px){
  .ph-grid{grid-template-columns:1fr;gap:2.2rem}
  .ph-media{justify-self:start;max-width:none}
  .ph-media .arch{aspect-ratio:16/9;border-radius:180px 180px 6px 6px}
  .ph-badge{left:1rem;bottom:1rem}
  .ph-grid .lead{max-width:52ch}
}
@media (max-width:560px){
  .ph-media .arch{aspect-ratio:4/3;border-radius:120px 120px 6px 6px}
  .ph-facts li{font-size:.73rem;padding:.4rem .7rem}
}

/* prose blocks for content pages */
.prose{max-width:68ch}
.prose h2{font-size:clamp(1.7rem,3vw,2.4rem);margin:2.6rem 0 1rem}
.prose h3{margin:2rem 0 .7rem;color:var(--orchid-ink)}
.prose p{color:var(--ink-2);margin-bottom:1.1rem}
.prose ul.ticks{margin:1.2rem 0}
.prose ul.ticks li{position:relative;padding-left:1.7rem;margin-bottom:.7rem;color:var(--ink-2)}
.prose ul.ticks li::before{content:"";position:absolute;left:0;top:.65em;width:.85rem;height:1px;background:var(--orchid)}

/* two-col content */
.cols-2{display:grid;grid-template-columns:1.7fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:start}
.aside-card{background:var(--linen);border:1px solid var(--line-2);border-radius:var(--radius);padding:2rem;position:sticky;top:100px}
.aside-card h4{font-family:var(--body);font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--orchid);margin-bottom:1rem;font-weight:700}
.aside-card .row{display:flex;justify-content:space-between;gap:1rem;padding:.6rem 0;border-bottom:1px solid var(--line-2);font-size:.9rem}
.aside-card .row:last-of-type{border-bottom:none}
.aside-card .row b{color:var(--ink)}
.aside-card .btn{width:100%;justify-content:center;margin-top:1.4rem}
@media (max-width:820px){.cols-2{grid-template-columns:1fr}.aside-card{position:static}}

/* ============================================================
   TEACHER BIOS — featured founder card + instructor cards
   Circular avatars (source photos are only 175px square).
   ============================================================ */
.team-band{
  position:relative;overflow:hidden;isolation:isolate;
  background:linear-gradient(172deg,#ffffff 0%,#fbf4fb 44%,#f4e8f7 100%);
}
.team-band > .wrap{position:relative;z-index:1}
.tm-orb{
  position:absolute;z-index:0;pointer-events:none;border-radius:50%;
  width:min(46vw,540px);aspect-ratio:1;left:-14%;bottom:-18%;
  background:radial-gradient(circle,rgba(132,19,135,.13),rgba(132,19,135,0) 68%);
}
.team-band .section-title{font-weight:400;letter-spacing:-.008em;color:#25062b}

/* --- circular avatar --- */
.tm-av{
  display:block;width:112px;height:112px;flex:none;
  border-radius:50%;overflow:hidden;background:var(--linen);
  box-shadow:0 0 0 1px rgba(132,19,135,.18),0 0 0 6px rgba(132,19,135,.06),
             0 18px 30px -20px rgba(77,10,80,.45);
}
.tm-av img{width:100%;height:100%;object-fit:cover;filter:saturate(.92);transition:filter .5s var(--ease),transform .6s var(--ease)}
.tm-av-lg{width:clamp(140px,15vw,168px);height:clamp(140px,15vw,168px)}

/* --- featured founder --- */
.tm-lead{
  display:grid;grid-template-columns:auto minmax(0,1fr);
  gap:clamp(1.6rem,4vw,3.2rem);align-items:start;
  background:#fff;border:1px solid rgba(132,19,135,.12);border-radius:22px;
  padding:clamp(1.6rem,3.4vw,3rem);
  margin-top:clamp(2.2rem,4vw,3.2rem);
  box-shadow:0 36px 60px -44px rgba(77,10,80,.34);
}
.tm-lead-side{display:flex;flex-direction:column;align-items:center;gap:.9rem}
.tm-tag{
  font-size:.62rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;
  color:#fff;background:var(--orchid);padding:.3rem .65rem;border-radius:999px;
}
.tm-lead-body{min-width:0}
.tm-lead .tm-name{font-size:clamp(1.9rem,3.4vw,2.7rem)}
.tm-lead p{color:var(--ink-2);font-size:.97rem;line-height:1.68;margin-bottom:.9rem;max-width:62ch}
.tm-note{
  background:rgba(132,19,135,.06);border-left:2px solid var(--orchid);
  border-radius:0 8px 8px 0;
  padding:.85rem 1.05rem;font-size:.87rem;color:#54395c !important;
  margin-top:1.2rem;
}
.tm-note b{color:var(--orchid-ink);font-weight:700}
.tm-cta{margin-top:1.5rem}
.tm-cta .btn-ghost{border-color:rgba(132,19,135,.22);background:#fff}

/* --- shared name / role --- */
.tm-role{
  display:inline-block;
  font-size:.68rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  color:var(--orchid-deep);margin-bottom:.5rem;
}
.tm-name{
  font-family:var(--display);font-weight:400;letter-spacing:-.02em;line-height:1.05;
  color:#25062b;margin-bottom:1rem;text-transform:none;
}

/* --- instructor cards --- */
.tm-grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(1rem,2vw,1.6rem);
  margin-top:clamp(1rem,2vw,1.6rem);
}
.tm-card{
  display:flex;flex-direction:column;
  background:rgba(255,255,255,.82);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border:1px solid rgba(132,19,135,.12);border-radius:16px;
  padding:clamp(1.4rem,2.2vw,1.9rem);
  box-shadow:0 2px 5px -3px rgba(77,10,80,.14);
  transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .5s ease;
}
.tm-card:hover{
  transform:translateY(-6px);
  border-color:rgba(132,19,135,.24);
  box-shadow:0 34px 52px -34px rgba(77,10,80,.36);
}
.tm-card .tm-av{margin-bottom:1.2rem}
.tm-card:hover .tm-av img{filter:saturate(1.05);transform:scale(1.04)}
.tm-card .tm-name{font-size:clamp(1.3rem,1.8vw,1.55rem);margin-bottom:.7rem}
.tm-card p{color:var(--muted);font-size:.92rem;line-height:1.62;margin-bottom:.7rem}
.tm-card p:last-child{margin-bottom:0}

@media (max-width:900px){
  .tm-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:620px){
  .tm-lead{grid-template-columns:1fr;gap:1.4rem}
  .tm-lead-side{flex-direction:row;align-items:center;gap:1rem}
  .tm-grid{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  .tm-card:hover{transform:none}
  .tm-av img{transition:none}
  .tm-card:hover .tm-av img{transform:none}
}

/* ============================================================
   PRICING
   ============================================================ */
.price-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,2vw,1.6rem);margin-top:clamp(2.4rem,4vw,3rem)}
.price-card{
  position:relative;overflow:hidden;isolation:isolate;
  display:flex;flex-direction:column;
  background:
    radial-gradient(120% 80% at 100% 0%,rgba(132,19,135,.07) 0%,rgba(132,19,135,0) 56%),
    #fff;
  border:1px solid rgba(132,19,135,.13);border-radius:20px;
  padding:clamp(1.7rem,2.6vw,2.2rem);
  box-shadow:0 2px 6px -3px rgba(77,10,80,.14);
  transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .45s ease;
}
.price-card::before{
  content:"";position:absolute;z-index:-1;inset:0 0 auto 0;height:3px;
  background:linear-gradient(90deg,var(--orchid),rgba(132,19,135,.15));
  transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease);
}
.price-card:hover::before{transform:scaleX(1)}
.price-card:hover{transform:translateY(-6px);border-color:rgba(132,19,135,.28);box-shadow:0 36px 56px -36px rgba(77,10,80,.42)}
.price-card.feature{
  background:
    radial-gradient(120% 90% at 100% 0%,rgba(255,255,255,.14) 0%,rgba(255,255,255,0) 58%),
    linear-gradient(158deg,#3d0740 0%,#25062b 60%,#180419 100%);
  color:#fff;border-color:transparent;
  box-shadow:0 34px 56px -34px rgba(77,10,80,.6);
}
.price-card.feature::before{background:linear-gradient(90deg,#e39ce3,rgba(227,156,227,.2))}
.price-card.feature .p-name,.price-card.feature .p-amt{color:#fff}
.price-card.feature .p-desc,.price-card.feature .p-feat li{color:rgba(255,255,255,.78)}
.price-card.feature .p-feat li::before{background:#e39ce3}
.price-card.feature .p-amt small{color:rgba(255,255,255,.6)}
.price-card .badge{
  position:absolute;top:1.1rem;right:1.1rem;
  background:var(--orchid);color:#fff;
  font-size:.62rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  padding:.34rem .68rem;border-radius:999px;
  box-shadow:0 10px 20px -12px rgba(77,10,80,.9);
}
.price-card.feature .badge{background:#fff;color:var(--orchid-ink)}
.p-name{font-family:var(--display);font-size:1.4rem;margin-bottom:.4rem}
.p-amt{font-family:var(--display);font-size:2.6rem;line-height:1;color:var(--orchid);margin:.5rem 0}
.price-card.feature .p-amt{color:#e39ce3}
.p-amt small{font-family:var(--body);font-size:.9rem;color:var(--muted);font-weight:500}
.p-desc{font-size:.9rem;color:var(--muted);margin-bottom:1.3rem}
.p-feat{margin:0 0 1.6rem;flex:1}
.p-feat li{position:relative;padding-left:1.5rem;font-size:.9rem;margin-bottom:.6rem;color:var(--ink-2)}
.p-feat li::before{content:"";position:absolute;left:0;top:.6em;width:.85rem;height:1px;background:var(--orchid)}
.price-card .btn{justify-content:center}
@media (max-width:900px){.price-grid{grid-template-columns:1fr}.price-card.feature{order:-1}}

/* ============================================================
   VIDEOS (lite embed)
   ============================================================ */
.video-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1rem,2vw,1.6rem);margin-top:clamp(2.4rem,4vw,3rem)}
.video{
  position:relative;border-radius:18px;overflow:hidden;background:#180419;
  aspect-ratio:16/9;cursor:pointer;
  border:1px solid rgba(132,19,135,.18);
  box-shadow:0 4px 10px -6px rgba(77,10,80,.3);
  transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .45s ease;
}
.video:hover{transform:translateY(-5px);border-color:rgba(132,19,135,.4);box-shadow:0 34px 52px -32px rgba(77,10,80,.55)}
.video img,.video iframe{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border:none}
.video .play{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(rgba(27,10,28,.15),rgba(27,10,28,.55));transition:background .3s}
.video:hover .play{background:linear-gradient(rgba(27,10,28,.2),rgba(27,10,28,.65))}
.video .play .btn-play{width:74px;height:74px;border-radius:50%;background:rgba(255,255,255,.94);display:grid;place-items:center;box-shadow:0 16px 34px -18px rgba(0,0,0,.7);transition:transform .35s var(--ease)}
.video:hover .play .btn-play{transform:scale(1.08)}
.video .play svg{width:26px;color:var(--orchid);margin-left:4px}
.video .v-title{position:absolute;left:1.1rem;bottom:1rem;right:1.1rem;color:#fff;font-family:var(--display);font-size:1.15rem;z-index:2;text-shadow:0 2px 12px rgba(0,0,0,.5)}
@media (max-width:640px){.video-grid{grid-template-columns:1fr}}

/* ============================================================
   CONTACT — horizontal info tiles above an elevated form card
   ============================================================ */
.contact-band{
  position:relative;overflow:hidden;isolation:isolate;
  background:
    radial-gradient(56% 62% at 12% 0%,rgba(132,19,135,.14) 0%,rgba(132,19,135,0) 62%),
    linear-gradient(168deg,#f7edf9 0%,#f2e4f7 44%,#eddcf3 100%);
}
.contact-band > .wrap{position:relative;z-index:1}
.ct-orb{
  position:absolute;z-index:0;pointer-events:none;border-radius:50%;
  width:min(44vw,520px);aspect-ratio:1;right:-10%;bottom:-16%;
  background:radial-gradient(circle,rgba(132,19,135,.14),rgba(132,19,135,0) 68%);
}

/* --- info tiles --- */
.ct-tiles{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(.8rem,1.6vw,1.2rem);
}
.ct-tile{
  display:flex;flex-direction:column;
  background:rgba(255,255,255,.78);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  border:1px solid rgba(132,19,135,.16);border-radius:16px;
  padding:1.3rem 1.25rem 1.15rem;
  box-shadow:0 2px 6px -3px rgba(77,10,80,.16);
  transition:transform .45s var(--ease),box-shadow .45s var(--ease),
             border-color .45s ease,background .45s ease;
}
.ct-tile:hover,.ct-tile:focus-visible{
  transform:translateY(-5px);background:#fff;
  border-color:rgba(132,19,135,.3);
  box-shadow:0 28px 44px -28px rgba(77,10,80,.42);
}
.ct-ic{
  width:2.5rem;height:2.5rem;border-radius:50%;flex:none;
  display:grid;place-items:center;margin-bottom:.9rem;
  color:#fff;background:linear-gradient(150deg,var(--orchid),var(--orchid-ink));
  box-shadow:0 10px 20px -14px rgba(77,10,80,.8);
}
.ct-ic svg{width:1.05rem}
.ct-k{
  font-size:.66rem;font-weight:700;letter-spacing:.19em;text-transform:uppercase;
  color:var(--orchid-deep);margin-bottom:.35rem;
}
.ct-v{font-size:.93rem;font-weight:600;color:#25062b;line-height:1.5;flex:1}
.ct-v.ct-big{font-family:var(--display);font-weight:400;font-size:1.4rem;letter-spacing:-.01em}
.ct-go{
  display:inline-flex;align-items:center;gap:.4rem;
  margin-top:1rem;padding-top:.8rem;
  border-top:1px solid rgba(132,19,135,.14);
  font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--orchid);
}
.ct-go .arw{transition:transform .35s var(--ease)}
.ct-tile:hover .ct-go .arw{transform:translateX(3px)}

/* --- elevated form card --- */
.ct-card{
  background:#fff;border:1px solid rgba(132,19,135,.1);border-radius:24px;
  padding:clamp(1.6rem,3.6vw,3.2rem);
  margin-top:clamp(1.4rem,3vw,2.4rem);
  box-shadow:0 40px 66px -46px rgba(77,10,80,.36);
}
.ct-card-head{max-width:52ch;margin-bottom:clamp(1.6rem,2.6vw,2.2rem)}
.ct-card-head .section-title{
  font-weight:300;letter-spacing:-.008em;color:#25062b;
  font-size:clamp(1.8rem,3.4vw,2.6rem);
}
.ct-card-head p{margin-top:.9rem;color:var(--ink-2);font-size:.98rem}

.field{margin-bottom:1.15rem}
.field label{
  display:block;font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;
  font-weight:700;color:var(--orchid-deep);margin-bottom:.45rem;
}
.req{color:var(--orchid);font-weight:700}
.field input,.field select,.field textarea{
  width:100%;font:inherit;font-size:.98rem;color:var(--ink);
  background:#fdfafd;
  border:1px solid rgba(132,19,135,.18);border-radius:10px;
  padding:.8rem .95rem;
  transition:border-color .25s ease,box-shadow .25s ease,background .25s ease;
}
.field input::placeholder,.field textarea::placeholder{color:#9b86a1}
.field input:hover,.field select:hover,.field textarea:hover{border-color:rgba(132,19,135,.3)}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;background:#fff;border-color:var(--orchid);
  box-shadow:0 0 0 3px rgba(132,19,135,.14);
}
.field textarea{min-height:132px;resize:vertical}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}

.ct-submit{
  display:flex;align-items:center;justify-content:space-between;gap:1.2rem;flex-wrap:wrap;
  margin-top:1.6rem;padding-top:1.5rem;
  border-top:1px solid rgba(132,19,135,.12);
}
.ct-submit .btn{border-radius:999px;box-shadow:0 16px 30px -20px rgba(106,15,108,.8)}
.form-note{font-size:.82rem;color:var(--muted);margin:0}
.form-note a{color:var(--orchid);font-weight:700}
.form-note a:hover{text-decoration:underline}

.form-success{
  display:none;background:rgba(132,19,135,.07);
  border:1px solid rgba(132,19,135,.28);border-left:3px solid var(--orchid);
  border-radius:0 12px 12px 0;
  padding:1.05rem 1.25rem;color:var(--orchid-ink);font-weight:600;
  margin-bottom:1.5rem;
}
.form-success.show{display:block}

@media (max-width:1000px){
  .ct-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:620px){
  .ct-tiles{grid-template-columns:1fr}
  .field-row{grid-template-columns:1fr;gap:0}
  .ct-submit{flex-direction:column;align-items:stretch}
  .ct-submit .btn{justify-content:center}
}
@media (prefers-reduced-motion:reduce){
  .ct-tile:hover,.ct-tile:focus-visible{transform:none}
}

/* ============================================================
   REVEAL animation
   ============================================================ */
[data-reveal]{opacity:0;transform:translateY(24px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
[data-reveal].in{opacity:1;transform:none}
[data-reveal][data-delay="1"]{transition-delay:.08s}
[data-reveal][data-delay="2"]{transition-delay:.16s}
[data-reveal][data-delay="3"]{transition-delay:.24s}
[data-reveal][data-delay="4"]{transition-delay:.32s}
@media (prefers-reduced-motion:reduce){
  [data-reveal]{opacity:1 !important;transform:none !important;transition:none}
  .btn:hover,.cl-card:hover,.price-card:hover{transform:none}
}

/* hero load stagger */
.hero-copy > *{opacity:0;animation:rise .9s var(--ease) forwards}
.hero-copy > *:nth-child(1){animation-delay:.1s}
.hero-copy > *:nth-child(2){animation-delay:.2s}
.hero-copy > *:nth-child(3){animation-delay:.3s}
.hero-copy > *:nth-child(4){animation-delay:.4s}
.hero-copy > *:nth-child(5){animation-delay:.5s}
.hero-media{opacity:0;animation:rise 1s var(--ease) .35s forwards}
@keyframes rise{to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.hero-copy > *,.hero-media{opacity:1;animation:none}}

/* utilities */
.mt-0{margin-top:0}
.center{text-align:center}
.divider{height:1px;background:var(--line);border:none;margin-block:var(--section)}
/* ============================================================
   FREE TRIAL MODAL
   ============================================================ */
.trial-modal{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:clamp(1rem,4vw,2.5rem)}
.trial-modal[hidden]{display:none}
.tmo-scrim{
  position:absolute;inset:0;background:rgba(25,6,27,.62);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  opacity:0;transition:opacity .3s var(--ease);
}
.trial-modal.open .tmo-scrim{opacity:1}

.tmo-panel{
  position:relative;z-index:1;
  width:100%;max-width:820px;max-height:calc(100dvh - 2rem);overflow-y:auto;
  background:#fff;border-radius:24px;
  box-shadow:0 60px 90px -50px rgba(25,6,27,.7);
  opacity:0;transform:translateY(16px) scale(.98);
  transition:opacity .34s var(--ease),transform .34s var(--ease);
}
.trial-modal.open .tmo-panel{opacity:1;transform:none}

.tmo-x{
  position:absolute;top:1rem;right:1rem;z-index:3;
  width:2.4rem;height:2.4rem;border-radius:50%;
  display:grid;place-items:center;
  background:rgba(255,255,255,.9);color:var(--orchid-ink);
  box-shadow:0 6px 16px -10px rgba(25,6,27,.6);
  transition:background .25s ease,transform .25s ease;
}
.tmo-x:hover{background:#fff;transform:rotate(90deg)}
.tmo-x svg{width:1.05rem}

.tmo-head{
  padding:clamp(1.6rem,3.2vw,2.4rem) clamp(1.4rem,3.2vw,2.6rem) clamp(1.3rem,2.4vw,1.8rem);
  background:
    radial-gradient(70% 100% at 100% 0%,rgba(255,255,255,.18) 0%,rgba(255,255,255,0) 60%),
    linear-gradient(150deg,var(--orchid) 0%,var(--orchid-ink) 100%);
  color:#fff;border-radius:24px 24px 0 0;
}
.tmo-badge{
  display:inline-block;font-size:.63rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;
  color:#fff;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.34);
  padding:.3rem .68rem;border-radius:999px;margin-bottom:.85rem;
}
.tmo-head h2{
  font-family:var(--display);font-weight:400;letter-spacing:-.01em;color:#fff;
  font-size:clamp(1.7rem,3.2vw,2.35rem);margin-bottom:.6rem;
}
.tmo-head p{color:rgba(255,255,255,.84);font-size:.95rem;max-width:52ch;font-weight:300}

.tmo-body{
  display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.85fr);
  gap:clamp(1.4rem,3vw,2.4rem);
  padding:clamp(1.5rem,3.2vw,2.4rem) clamp(1.4rem,3.2vw,2.6rem) clamp(1.6rem,3.2vw,2.4rem);
}
.tmo-form .field{margin-bottom:1rem}
.tmo-submit{width:100%;justify-content:center;border-radius:999px;margin-top:.4rem;box-shadow:0 16px 30px -20px rgba(106,15,108,.8)}
.tmo-fine{font-size:.78rem;color:var(--muted);margin-top:.85rem}

.tmo-aside{
  display:flex;flex-direction:column;gap:1.1rem;
  background:linear-gradient(170deg,rgba(132,19,135,.07),rgba(132,19,135,.03));
  border:1px solid rgba(132,19,135,.14);border-radius:16px;
  padding:clamp(1.1rem,2vw,1.5rem);
  align-self:start;
}
.tmo-row{display:flex;flex-direction:column;gap:.3rem}
.tmo-k{font-size:.63rem;font-weight:700;letter-spacing:.19em;text-transform:uppercase;color:var(--orchid-deep)}
.tmo-v{font-size:.88rem;line-height:1.55;color:#3f2c46;font-weight:500}
.tmo-call{
  display:inline-flex;align-items:center;gap:.5rem;
  margin-top:.2rem;padding-top:1rem;border-top:1px solid rgba(132,19,135,.16);
  font-size:.85rem;font-weight:700;color:var(--orchid);
}
.tmo-call svg{width:1em;flex:none}
.tmo-call:hover{text-decoration:underline}

.tmo-ok{
  grid-column:1/-1;display:flex;gap:1rem;align-items:flex-start;
  background:rgba(132,19,135,.06);border:1px solid rgba(132,19,135,.24);
  border-radius:16px;padding:1.3rem 1.4rem;
}
.tmo-ok[hidden]{display:none}
.tmo-ok-ic{
  width:2.3rem;height:2.3rem;border-radius:50%;flex:none;display:grid;place-items:center;
  background:var(--orchid);color:#fff;
}
.tmo-ok-ic svg{width:1.1rem}
.tmo-ok strong{display:block;font-size:1.05rem;color:var(--orchid-ink);margin-bottom:.25rem}
.tmo-ok p{font-size:.9rem;color:var(--ink-2)}
.tmo-ok a{color:var(--orchid);font-weight:700}

body.tmo-lock{overflow:hidden}

@media (max-width:720px){
  .tmo-body{grid-template-columns:1fr;gap:1.4rem}
  .tmo-panel{border-radius:18px}
  .tmo-head{border-radius:18px 18px 0 0}
  .tmo-form .field-row{grid-template-columns:1fr;gap:0}
}
@media (prefers-reduced-motion:reduce){
  .tmo-panel,.tmo-scrim{transition:none}
  .tmo-x:hover{transform:none}
}

/* ============================================================
   CLASS DETAIL PAGES — spec strip, intro + shot, checklist,
   sticky booking card, full-width "other classes" row
   ============================================================ */
.class-detail{
  position:relative;overflow:hidden;isolation:isolate;
  background:linear-gradient(174deg,#ffffff 0%,#fdfafd 52%,#f8f0f8 100%);
}
.class-detail > .wrap{position:relative;z-index:1}
.cd-orb{
  position:absolute;z-index:0;pointer-events:none;border-radius:50%;
  width:min(42vw,500px);aspect-ratio:1;right:-12%;top:-14%;
  background:radial-gradient(circle,rgba(132,19,135,.12),rgba(132,19,135,0) 68%);
}

/* --- spec strip --- */
.cd-strip{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1px;background:rgba(132,19,135,.16);
  border:1px solid rgba(132,19,135,.16);border-radius:16px;overflow:hidden;
  box-shadow:0 16px 34px -26px rgba(77,10,80,.3);
}
.cd-spec{
  display:flex;flex-direction:column;gap:.22rem;
  background:rgba(255,255,255,.9);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  padding:1.15rem 1.25rem;
}
.cd-spec-k{font-size:.62rem;font-weight:700;letter-spacing:.19em;text-transform:uppercase;color:var(--orchid-deep)}
.cd-spec-v{font-family:var(--display);font-weight:400;font-size:1.28rem;line-height:1.15;color:#25062b;letter-spacing:-.014em}
.cd-spec-s{font-size:.76rem;color:#6f4a76;line-height:1.4}

/* --- body + sidebar --- */
.cd-main{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.42fr);
  gap:clamp(1.8rem,4vw,3.4rem);
  align-items:start;
  margin-top:clamp(2.2rem,4vw,3.2rem);
}
.cd-body{min-width:0}
.cd-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.78fr);gap:clamp(1.4rem,3vw,2.4rem);align-items:center}
.cd-intro-copy p{color:var(--ink-2);font-size:1rem;line-height:1.72}
.cd-intro-copy p + p{margin-top:1rem}
.cd-shot{
  position:relative;overflow:hidden;border-radius:14px;
  aspect-ratio:1/1;background:var(--linen);
  box-shadow:0 26px 44px -30px rgba(77,10,80,.36);
}
.cd-shot img{width:100%;height:100%;object-fit:cover}
.cd-shot::after{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.5);
}

.cd-h{
  font-weight:400;letter-spacing:-.008em;color:#25062b;
  font-size:clamp(1.5rem,2.6vw,2.05rem);
  margin:clamp(2rem,3.4vw,2.8rem) 0 1.2rem;
}
.cd-checks{display:grid;grid-template-columns:1fr 1fr;gap:.75rem 1.4rem}
.cd-checks li{
  display:flex;align-items:flex-start;gap:.7rem;
  font-size:.95rem;line-height:1.55;color:var(--ink-2);
}
.cd-chk{
  width:1.35rem;height:1.35rem;border-radius:50%;flex:none;margin-top:.1rem;
  display:grid;place-items:center;
  background:rgba(132,19,135,.1);color:var(--orchid);
}
.cd-chk svg{width:.8rem}

.cd-who{
  margin-top:clamp(1.8rem,3vw,2.4rem);
  background:linear-gradient(160deg,rgba(132,19,135,.08),rgba(132,19,135,.03));
  border-left:3px solid var(--orchid);border-radius:0 14px 14px 0;
  padding:1.25rem 1.5rem;
}
.cd-who-k{
  display:block;font-size:.64rem;font-weight:700;letter-spacing:.19em;
  text-transform:uppercase;color:var(--orchid-deep);margin-bottom:.45rem;
}
.cd-who p{color:#3f2c46;font-size:1rem;line-height:1.6;font-weight:500}

/* --- booking card --- */
.cd-side{position:sticky;top:96px}
.cd-book{
  background:#fff;border:1px solid rgba(132,19,135,.13);border-radius:20px;
  padding:clamp(1.4rem,2.2vw,1.9rem);
  box-shadow:0 30px 52px -38px rgba(77,10,80,.36);
}
.cd-book-badge{
  display:inline-block;font-size:.6rem;font-weight:700;letter-spacing:.19em;text-transform:uppercase;
  color:#fff;background:var(--orchid);padding:.3rem .62rem;border-radius:999px;margin-bottom:.9rem;
}
.cd-book h3{
  font-weight:400;letter-spacing:-.02em;color:#25062b;
  font-size:clamp(1.25rem,1.8vw,1.5rem);margin-bottom:.7rem;
}
.cd-when{font-size:.92rem;line-height:1.6;color:var(--ink-2);margin-bottom:1.3rem}
.cd-when b{color:var(--orchid-ink);font-weight:700}
.cd-when a{color:var(--orchid);font-weight:700;border-bottom:1px solid var(--orchid-line)}
.cd-book .btn{width:100%;justify-content:center;border-radius:999px;box-shadow:0 16px 30px -20px rgba(106,15,108,.8)}
.cd-call{
  display:block;text-align:center;margin-top:.9rem;
  font-size:.83rem;font-weight:700;color:var(--orchid);
}
.cd-call:hover{text-decoration:underline}

/* --- other classes row --- */
.cd-others{
  margin-top:clamp(2.6rem,5vw,4rem);
  padding-top:clamp(1.6rem,2.6vw,2.2rem);
  border-top:1px solid rgba(132,19,135,.16);
}
.cd-others-k{
  display:block;font-size:.64rem;font-weight:700;letter-spacing:.19em;
  text-transform:uppercase;color:var(--orchid-deep);margin-bottom:1.1rem;
}
.cd-others-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem}
.cd-other{
  display:flex;align-items:center;justify-content:space-between;gap:.6rem;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(132,19,135,.14);border-radius:12px;
  padding:.95rem 1.05rem;
  font-size:.92rem;font-weight:600;color:#25062b;
  transition:transform .4s var(--ease),border-color .4s ease,box-shadow .4s var(--ease),background .4s ease;
}
.cd-other .arw{color:var(--orchid);flex:none;transition:transform .35s var(--ease)}
.cd-other:hover{
  transform:translateY(-4px);background:#fff;
  border-color:rgba(132,19,135,.3);
  box-shadow:0 22px 34px -24px rgba(77,10,80,.34);
}
.cd-other:hover .arw{transform:translateX(3px)}

@media (max-width:1000px){
  .cd-main{grid-template-columns:1fr;gap:2rem}
  .cd-side{position:static}
  .cd-others-row{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  .cd-strip{grid-template-columns:1fr 1fr}
  .cd-intro{grid-template-columns:1fr}
  .cd-shot{aspect-ratio:16/10;order:-1}
  .cd-checks{grid-template-columns:1fr}
}
@media (max-width:520px){
  .cd-strip{grid-template-columns:1fr}
  .cd-others-row{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  .cd-other:hover{transform:none}
}

/* soft band behind the icon cards */
.offers-band{
  position:relative;
  background:linear-gradient(174deg,#ffffff 0%,#fdf9fd 46%,#f8f0f9 100%);
}
.offers-band .section-title{font-weight:400;letter-spacing:-.008em;color:#25062b}

/* ============================================================
   MOBILE STICKY ACTION BAR (phones only)
   ============================================================ */
.mobile-bar{display:none}
@media (max-width:1080px){
  .mobile-bar{
    display:grid;grid-template-columns:auto 1fr;gap:.6rem;align-items:center;
    position:fixed;left:0;right:0;bottom:0;z-index:140;
    padding:.6rem .8rem calc(.6rem + env(safe-area-inset-bottom));
    background:rgba(255,255,255,.9);
    -webkit-backdrop-filter:saturate(170%) blur(18px);
    backdrop-filter:saturate(170%) blur(18px);
    border-top:1px solid rgba(132,19,135,.16);
    box-shadow:0 -14px 30px -22px rgba(77,10,80,.45);
  }
  .mb-call,.mb-cta{
    display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
    min-height:48px;border-radius:999px;
    font-weight:700;font-size:.9rem;letter-spacing:.01em;
  }
  .mb-call{
    padding:0 1.1rem;color:var(--orchid-ink);
    background:rgba(132,19,135,.08);border:1px solid rgba(132,19,135,.2);
  }
  .mb-call svg{width:1.05rem;flex:none}
  .mb-call:active{background:rgba(132,19,135,.16)}
  .mb-cta{
    color:#fff;background:linear-gradient(150deg,var(--orchid),var(--orchid-ink));
    box-shadow:0 12px 24px -14px rgba(77,10,80,.9);
  }
  .mb-cta:active{transform:translateY(1px)}
  /* keep the footer clear of the bar */
  body{padding-bottom:calc(64px + env(safe-area-inset-bottom))}
  /* the bar must not sit on top of the menu or the modal */
  body.nav-lock .mobile-bar,body.tmo-lock .mobile-bar{display:none}
}

/* ============================================================
   MOBILE POLISH — tighter rhythm, bigger tap targets,
   no horizontal overflow on narrow phones
   ============================================================ */
@media (max-width:1080px){
  /* the floating pill hugs the edges a little more on small screens */
  .site-header{padding-block:.55rem}
  .nav-pill{
    width:calc(100% - 1.4rem);
    padding:.4rem .4rem .4rem .7rem;
    gap:.5rem;
  }
  .brand img{height:46px}
  /* every interactive thing in reach of a thumb */
  .btn{min-height:46px}
  .textlink,.cd-call,.cl-go,.cb-go,.ct-go,.sk-meta{min-height:24px}
}

@media (max-width:640px){
  :root{--section:clamp(3rem,9vw,4.5rem)}

  /* hero */
  .hero-inner{padding-block:1.6rem 2rem;gap:1.8rem}
  .hero .display{font-size:clamp(2.3rem,10vw,3rem)}
  .hero .lead{font-size:1.02rem;max-width:none}
  .hero-cta{gap:.6rem}
  .hero-cta .btn,.ph-cta .btn{flex:1 1 100%;justify-content:center}
  .hero-bar-in{padding-block:1.1rem;gap:1.1rem 1.2rem}
  .hero-bar .num{font-size:1.62rem}
  .hero-bar .lbl{font-size:.71rem}
  .hero-bar .stat::before{width:1.1rem}

  /* page headers */
  .page-hero{padding-block:1.8rem 2.2rem}
  .page-hero .display{font-size:clamp(2rem,9vw,2.6rem)}
  .ph-facts{gap:.4rem}
  .ph-media .arch{aspect-ratio:16/11}

  /* section headings */
  h2.section-title{font-size:clamp(1.7rem,7.5vw,2.2rem)}
  .section-head p,.cb-head-side p{font-size:.97rem}

  /* cards and grids */
  .cl-card,.offer,.tm-card,.ct-tile,.price-card{padding:1.15rem}
  .cl-body{padding:1rem .35rem .25rem}
  .offer-ic{width:2.6rem;height:2.6rem;margin-bottom:.9rem}
  .offer-wm{font-size:4.2rem}
  .cd-strip{border-radius:14px}
  .cd-spec{padding:.95rem 1.05rem}
  .cd-shot{aspect-ratio:16/11}
  .qb-feature{padding:1.5rem 1.15rem 1.3rem;border-radius:18px}
  .qb-mark{font-size:6rem;left:.6rem}
  .qb-feature blockquote{font-size:1.2rem}
  .tm-lead{padding:1.15rem;border-radius:18px}
  .ct-card{padding:1.25rem;border-radius:18px}

  /* footer */
  .site-footer{padding-block:2.6rem 1.5rem}
  .foot-brand img{height:70px}

  /* dark CTA band */
  .cta-band .display{font-size:clamp(1.85rem,8.5vw,2.4rem)}
  .cta-stats{gap:1.2rem;margin-top:1.8rem;padding-top:1.4rem}
  .cta-stats .num{font-size:1.65rem}
  .cta-band .btn-row{gap:.6rem}
  .cta-band .btn-row .btn{flex:1 1 100%;justify-content:center}

  /* modal fills the screen properly on a phone */
  .trial-modal{padding:0;align-items:stretch}
  .tmo-panel{max-width:none;max-height:100dvh;border-radius:0}
  .tmo-head{border-radius:0;padding:1.5rem 1.15rem 1.2rem}
  .tmo-body{padding:1.25rem 1.15rem 2rem}
  .tmo-x{top:.7rem;right:.7rem}
}

@media (max-width:400px){
  .nav-cta .btn{padding:.6em .85em;font-size:.74rem}
  .brand img{height:42px}
  .hero-bar .num{font-size:1.5rem}
  .cd-spec-v{font-size:1.14rem}
}

/* long words / URLs must never force a sideways scroll */
h1,h2,h3,h4,p,li,blockquote,td,th{overflow-wrap:break-word}

/* ============================================================
   FAQ — split heading + native <details> accordion
   ============================================================ */
.faq-band{
  position:relative;overflow:hidden;isolation:isolate;
  background:
    radial-gradient(58% 60% at 0% 0%,rgba(132,19,135,.13) 0%,rgba(132,19,135,0) 62%),
    linear-gradient(166deg,#faf3fa 0%,#f5eaf6 52%,#efdff2 100%);
}
.fq-orb{
  position:absolute;z-index:0;pointer-events:none;border-radius:50%;
  width:min(42vw,480px);aspect-ratio:1;right:-12%;bottom:-18%;
  background:radial-gradient(circle,rgba(132,19,135,.14),rgba(132,19,135,0) 68%);
}
.fq-grid{
  position:relative;z-index:1;
  display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
  gap:clamp(2rem,5vw,4.5rem);align-items:start;
}
.fq-aside{position:sticky;top:96px}
.fq-aside .section-title{color:#25062b}
.fq-aside .section-title em{font-style:italic;color:var(--orchid)}
.fq-aside > p{margin-top:1.1rem;color:#54395c;font-size:1rem;max-width:34ch}

.fq-help{
  margin-top:clamp(1.6rem,3vw,2.2rem);
  background:rgba(255,255,255,.72);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border:1px solid rgba(132,19,135,.16);border-radius:16px;
  padding:1.15rem 1.25rem;
}
.fq-help-k{
  display:block;font-size:.62rem;font-weight:700;letter-spacing:.19em;
  text-transform:uppercase;color:var(--orchid-deep);margin-bottom:.7rem;
}
.fq-help-row{
  display:flex;align-items:center;gap:.6rem;min-height:40px;
  font-size:.92rem;font-weight:600;color:#25062b;
}
.fq-help-row svg{width:1.05rem;flex:none;color:var(--orchid)}
.fq-help-row:hover{color:var(--orchid)}

/* --- accordion --- */
.fq-list{display:flex;flex-direction:column;gap:.7rem}
.fq-item{
  background:rgba(255,255,255,.8);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border:1px solid rgba(132,19,135,.14);border-radius:14px;
  overflow:hidden;
  transition:border-color .3s ease,box-shadow .3s ease,background .3s ease;
}
.fq-item:hover{border-color:rgba(132,19,135,.26)}
.fq-item[open]{
  background:#fff;border-color:rgba(132,19,135,.3);
  box-shadow:0 24px 40px -30px rgba(77,10,80,.35);
}
.fq-q{
  display:flex;align-items:center;gap:.85rem;
  padding:1.1rem 1.25rem;min-height:60px;
  cursor:pointer;list-style:none;
}
.fq-q::-webkit-details-marker{display:none}
.fq-q::marker{content:""}
.fq-n{
  font-family:var(--display);font-size:.95rem;font-weight:600;
  color:var(--orchid);flex:none;width:1.7rem;
}
.fq-t{
  flex:1;font-size:1rem;font-weight:600;line-height:1.45;color:#25062b;
}
.fq-item[open] .fq-t{color:var(--orchid-ink)}
/* plus turning into minus */
.fq-ic{
  position:relative;width:1.7rem;height:1.7rem;border-radius:50%;flex:none;
  background:rgba(132,19,135,.09);border:1px solid rgba(132,19,135,.18);
  transition:background .3s ease,transform .35s var(--ease);
}
.fq-ic i{
  position:absolute;left:50%;top:50%;width:.66rem;height:1.5px;border-radius:2px;
  background:var(--orchid);transform:translate(-50%,-50%);
  transition:transform .35s var(--ease),opacity .25s ease;
}
.fq-ic i:last-child{transform:translate(-50%,-50%) rotate(90deg)}
.fq-item[open] .fq-ic{background:var(--orchid);border-color:transparent}
.fq-item[open] .fq-ic i{background:#fff}
.fq-item[open] .fq-ic i:last-child{transform:translate(-50%,-50%) rotate(0deg);opacity:0}
.fq-q:hover .fq-ic{background:rgba(132,19,135,.16)}
.fq-item[open] .fq-q:hover .fq-ic{background:var(--orchid-deep)}

.fq-a{padding:0 1.25rem 1.25rem 3.8rem}
.fq-a p{font-size:.96rem;line-height:1.68;color:#4f3d55}
.fq-a a{color:var(--orchid);font-weight:700}

@media (max-width:940px){
  .fq-grid{grid-template-columns:1fr;gap:2rem}
  .fq-aside{position:static}
  .fq-aside > p{max-width:52ch}
}
@media (max-width:560px){
  .fq-q{padding:.95rem 1rem;gap:.65rem}
  .fq-n{width:1.4rem;font-size:.88rem}
  .fq-t{font-size:.95rem}
  .fq-a{padding:0 1rem 1.1rem 3.05rem}
}
