:root{
  --white:#FFFFFF;
  --pink:#FFE6F2;
  --lavender:#DCD7FF;
  --blue:#C6E7FF;
  --purple:#B9A8FF;
  --deep:#5E5BA8;
  --text:#3D3D57;
  --muted:#6F7192;
  --section:#F8F9FF;
  --line:rgba(94,91,168,0.12);
  --shadow:0 12px 30px rgba(94,91,168,0.12);
  --shadow-strong:0 18px 46px rgba(94,91,168,0.18);
  --radius-xl:28px;
  --radius-lg:22px;
  --radius-md:16px;
  --radius-sm:12px;
  --transition:0.28s ease;
  --transition-slow:0.55s cubic-bezier(.2,.85,.2,1);
  --ease-premium:cubic-bezier(.22,1,.36,1);
  --ease-silk:cubic-bezier(.33,1,.68,1);
  --ease-swift:cubic-bezier(.4,0,.2,1);
  --atmo-shift: 0px;
  --tilt-x: 0deg;
  --tilt-y: 0deg;
  --reveal-x: 0px;
  --reveal-y: 30px;
  --reveal-delay: 0s;
  --max:1160px;
  --header-h:78px;
}

/* Luxury typography defaults */
html{ scroll-behavior:smooth; }
html{
  scrollbar-gutter: stable;
  scrollbar-color: rgba(143,133,214,0.6) rgba(255,255,255,0.55);
  scrollbar-width: thin;
}
/* Avoid scroll-jank on animated sections */
.hero, .section, .card, .testimonial, .final-cta{
  transform: translateZ(0);
}
body{
  margin:0;
  background:
    radial-gradient(1400px 960px at 16% -8%, rgba(185,168,255,0.10), rgba(255,255,255,0) 64%),
    radial-gradient(1260px 860px at 88% 14%, rgba(198,231,255,0.09), rgba(255,255,255,0) 63%),
    radial-gradient(1300px 920px at 52% 118%, rgba(255,230,242,0.08), rgba(255,255,255,0) 66%),
    linear-gradient(to bottom, #fcfcff, #f7f8ff);
  color:var(--text);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Apple Color Emoji","Segoe UI Emoji";
  line-height:1.6;
  overflow-x:hidden;
}

body.splash-active{
  overflow:hidden;
}

body.splash-active > *:not(.site-splash){
  opacity:1;
  transform:none;
  filter: blur(0);
  transition:none;
  will-change:auto;
}

/* During handoff, hero already exists and is illuminated by splash aura. */
body.splash-active #hero{
  opacity:0.74;
  transform: none;
  filter: saturate(0.9) brightness(0.95) contrast(0.92);
  transition: opacity 1.05s var(--ease-premium), filter 1.15s var(--ease-silk);
}

body.splash-active.splash-awakening #hero{
  opacity:1;
  filter: saturate(1) brightness(1) contrast(1);
}

body.splash-active #hero::before{
  opacity:0.24;
  filter: blur(8px) saturate(0.94) brightness(0.96);
  transition: opacity 1.1s var(--ease-premium), filter 1.1s var(--ease-silk), transform 1.15s var(--ease-premium);
}

body.splash-active #hero::after{
  opacity:0.18;
  filter: blur(10px) saturate(0.92) brightness(0.96);
  transition: opacity 1.2s var(--ease-premium), filter 1.15s var(--ease-silk), transform 1.2s var(--ease-premium);
}

body.splash-active.splash-awakening #hero::before{
  opacity:0.68;
  filter: blur(4px) saturate(1.02) brightness(1.04);
  transform: translateY(-6px) scale(1.02);
}

body.splash-active.splash-awakening #hero::after{
  opacity:0.52;
  filter: blur(5px) saturate(1.02) brightness(1.03);
  transform: translateY(4px) scale(1.015);
}

body.splash-active #hero .hero-copy,
body.splash-active #hero .hero-actions,
body.splash-active #hero .hero-mini-cards{
  opacity:0.42;
  transform: translateY(6px);
  filter: saturate(0.94) brightness(1.04);
  transition: opacity 1s var(--ease-premium), transform 1s var(--ease-premium), filter 0.95s var(--ease-silk);
}

body.splash-active.splash-awakening #hero .hero-copy{
  opacity:1;
  transform: translateY(0);
  filter: saturate(1);
}

body.splash-active.splash-awakening #hero .hero-actions{
  opacity:1;
  transform: translateY(0);
  filter: saturate(1);
  transition-delay:0.14s;
}

body.splash-active.splash-awakening #hero .hero-mini-cards{
  opacity:1;
  transform: translateY(0);
  filter: saturate(1);
  transition-delay:0.24s;
}

.site-splash{
  position:fixed;
  inset:0;
  z-index:5000;
  display:grid;
  place-items:center;
  background:
    radial-gradient(980px 540px at 50% 20%, rgba(255,255,255,0.66), rgba(251,252,255,0.48) 46%, rgba(246,248,255,0.34) 100%),
    linear-gradient(180deg, rgba(252,253,255,0.30), rgba(248,250,255,0.22));
  opacity:1;
  transition: opacity 0.72s var(--ease-premium), visibility 0.72s var(--ease-premium);
}

.site-splash::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(440px 220px at 50% 48%, rgba(185,168,255,0.10), rgba(255,255,255,0) 72%),
    radial-gradient(680px 300px at 50% 68%, rgba(94,91,168,0.04), rgba(255,255,255,0) 76%);
  pointer-events:none;
}

.site-splash.is-leaving{
  opacity:0;
  visibility:hidden;
}

.splash-scene{
  position:relative;
  width:min(86vw, 520px);
  min-height:300px;
  display:grid;
  place-items:center;
  perspective:1200px;
}

.splash-rings{
  position:relative;
  width:min(56vw, 340px);
  aspect-ratio:1/1;
  transform-style:preserve-3d;
  animation:splashTilt 5.2s var(--ease-silk) infinite alternate;
}

.splash-rings .ring{
  position:absolute;
  inset:0;
  border-radius:50%;
  border:1px solid rgba(99,96,162,0.2);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.48);
}

.splash-rings .ring-1{
  transform: translateZ(0px) scale(1);
  animation:splashRingPulse 2.6s var(--ease-silk) infinite;
}

.splash-rings .ring-2{
  transform: translateZ(26px) scale(0.78);
  border-color: rgba(120,116,191,0.24);
  animation:splashRingPulse 2.6s var(--ease-silk) infinite 0.25s;
}

.splash-rings .ring-3{
  transform: translateZ(52px) scale(0.56);
  border-color: rgba(141,136,219,0.34);
  animation:splashRingPulse 2.6s var(--ease-silk) infinite 0.45s;
}

.splash-core{
  position:absolute;
  width:min(18vw, 100px);
  aspect-ratio:1/1;
  border-radius:50%;
  background:
    radial-gradient(circle at 50% 40%, rgba(255,255,255,0.96), rgba(221,224,246,0.46) 48%, rgba(255,255,255,0) 72%),
    radial-gradient(circle at 50% 60%, rgba(126,122,205,0.26), rgba(255,255,255,0) 74%);
  filter: blur(0.2px);
  animation:splashCoreBreath 2.4s ease-in-out infinite alternate;
}

.splash-wordmark{
  margin-top:28px;
  text-align:center;
  color:var(--deep);
  display:grid;
  gap:8px;
  transform: translateY(0);
  animation:splashWordRise 1.2s var(--ease-premium) both 0.2s;
}

.splash-wordmark .splash-eyebrow{
  font-size:0.76rem;
  letter-spacing:0.2em;
  text-transform:uppercase;
  color:rgba(90,88,140,0.72);
  font-weight:700;
}

.splash-wordmark strong{
  font-family:"Playfair Display", ui-serif, Georgia, "Times New Roman", Times, serif;
  font-size:clamp(1.15rem, 2.3vw, 1.72rem);
  letter-spacing:-0.015em;
  font-weight:700;
}

@keyframes splashTilt{
  0%{ transform: rotateX(64deg) rotateZ(-4deg) scale(0.98); }
  100%{ transform: rotateX(68deg) rotateZ(4deg) scale(1.02); }
}

@keyframes splashRingPulse{
  0%{ opacity:0.36; }
  100%{ opacity:0.9; }
}

@keyframes splashCoreBreath{
  0%{ transform: translateZ(58px) scale(0.92); opacity:0.8; }
  100%{ transform: translateZ(58px) scale(1.04); opacity:1; }
}

@keyframes splashWordRise{
  0%{ opacity:0; transform: translateY(8px); }
  100%{ opacity:1; transform: translateY(0); }
}

/* Premium splash refinement (2026 cinematic style) */
.site-splash{
  background:
    radial-gradient(1200px 620px at 50% 14%, rgba(255,255,255,0.98), rgba(245,246,254,0.92) 46%, rgba(236,238,249,0.94) 100%),
    linear-gradient(180deg, rgba(240,242,252,0.9), rgba(246,247,255,0.94));
}

.site-splash::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background: radial-gradient(380px 220px at 50% 50%, rgba(134,130,216,0.12), rgba(255,255,255,0) 72%);
  animation:splashAuraShift 4.4s ease-in-out infinite alternate;
}

.splash-grid{
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:0.24;
  background:
    linear-gradient(90deg, rgba(109,105,181,0.06) 1px, transparent 1px) 0 0 / 44px 44px,
    linear-gradient(180deg, rgba(109,105,181,0.06) 1px, transparent 1px) 0 0 / 44px 44px;
  -webkit-mask-image: radial-gradient(circle at 50% 40%, black 26%, transparent 74%);
  mask-image: radial-gradient(circle at 50% 40%, black 26%, transparent 74%);
}

.splash-scene{
  min-height:360px;
}

.splash-rings{
  width:min(60vw, 390px);
  animation:splashTilt 4.6s var(--ease-premium) infinite alternate;
}

.splash-rings .ring{
  border:1px solid rgba(92,88,160,0.28);
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,0.56),
    0 8px 24px rgba(108,104,184,0.1);
}

.splash-rings .ring-4{
  transform: translateZ(76px) scale(0.38);
  border-color: rgba(160,154,234,0.38);
  animation:splashRingPulse 2.6s var(--ease-silk) infinite 0.62s;
}

.splash-core{
  width:min(20vw, 118px);
  background:
    radial-gradient(circle at 50% 38%, rgba(255,255,255,1), rgba(228,231,250,0.54) 50%, rgba(255,255,255,0) 70%),
    radial-gradient(circle at 50% 64%, rgba(126,122,205,0.34), rgba(255,255,255,0) 72%);
}

.splash-wordmark{
  margin-top:36px;
  gap:10px;
}

.splash-wordmark strong{
  font-size:clamp(1.22rem, 2.6vw, 1.95rem);
}

.splash-progress{
  margin-top:16px;
  display:flex;
  align-items:center;
  gap:10px;
  color:rgba(85,82,138,0.9);
  font-weight:600;
  letter-spacing:0.01em;
  font-size:0.84rem;
  opacity:0;
  animation:splashWordRise 0.9s var(--ease-premium) both 0.34s;
}

.splash-progress-value{
  min-width:46px;
  text-align:right;
  font-weight:800;
  color:rgba(94,91,168,0.96);
}

@keyframes splashAuraShift{
  0%{ transform: translate3d(-10px, 0, 0) scale(0.98); opacity:0.62; }
  100%{ transform: translate3d(10px, -8px, 0) scale(1.03); opacity:1; }
}

@keyframes splashTilt{
  0%{ transform: rotateX(62deg) rotateZ(-6deg) scale(0.96); }
  100%{ transform: rotateX(70deg) rotateZ(6deg) scale(1.03); }
}

@keyframes splashRingPulse{
  0%{ opacity:0.28; }
  100%{ opacity:1; }
}

@media (max-width: 860px){
  .splash-scene{
    min-height:320px;
  }
  .splash-rings{
    width:min(72vw, 330px);
  }
  .splash-wordmark{
    margin-top:30px;
  }
}

@media (max-width: 900px){
  html::after{
    opacity:0.34;
    -webkit-mask-image: linear-gradient(90deg, rgba(0,0,0,1) 0 26%, rgba(0,0,0,0) 40% 60%, rgba(0,0,0,1) 74% 100%);
    mask-image: linear-gradient(90deg, rgba(0,0,0,1) 0 26%, rgba(0,0,0,0) 40% 60%, rgba(0,0,0,1) 74% 100%);
  }
  body::after{
    opacity:0.13;
  }
}

/* Premium scrollbar styling (WebKit/Blink) */
::-webkit-scrollbar{
  width: 11px;
  height: 11px;
}
::-webkit-scrollbar-track{
  background: linear-gradient(180deg, rgba(255,255,255,0.7), rgba(248,249,255,0.82));
}
::-webkit-scrollbar-thumb{
  border-radius: 999px;
  border: 2px solid rgba(255,255,255,0.78);
  background: linear-gradient(180deg, rgba(185,168,255,0.82), rgba(151,146,226,0.92));
  box-shadow: inset 0 0 0 1px rgba(94,91,168,0.08);
}
::-webkit-scrollbar-thumb:hover{
  background: linear-gradient(180deg, rgba(175,160,246,0.95), rgba(130,124,212,0.95));
}

/* Structural depth layer: ultra-thin rhythm lines */
html::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:1;
  opacity:0.045;
  mix-blend-mode:soft-light;
  background:
    linear-gradient(90deg,
      transparent 0 15%,
      rgba(94,91,168,0.55) 15% 15.04%,
      transparent 15.08% 48%,
      rgba(94,91,168,0.45) 48% 48.03%,
      transparent 48.08% 81%,
      rgba(94,91,168,0.5) 81% 81.04%,
      transparent 81.08% 100%),
    radial-gradient(980px 980px at 86% 12%,
      transparent 0 60%,
      rgba(185,168,255,0.42) 60.06% 60.16%,
      transparent 60.24%);
}

/* Portrait-inspired body shapes (very subtle) */
html::after{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:1;
  opacity:0.42;
  mix-blend-mode:soft-light;
  background:
    radial-gradient(560px 620px at -10% 28%, rgba(198,231,255,0.52), rgba(198,231,255,0) 66%),
    radial-gradient(360px 380px at -8% 36%, rgba(255,230,242,0.46), rgba(255,230,242,0) 64%),
    radial-gradient(620px 620px at 110% 24%, rgba(185,168,255,0.48), rgba(185,168,255,0) 68%),
    radial-gradient(360px 340px at 108% 32%, rgba(255,230,242,0.40), rgba(255,230,242,0) 64%),
    radial-gradient(circle at -6% 24%,
      transparent 0 52%,
      rgba(94,91,168,0.18) 52.2% 52.5%,
      transparent 52.7% 62%,
      rgba(185,168,255,0.18) 62.2% 62.5%,
      transparent 62.7%),
    radial-gradient(circle at 106% 22%,
      transparent 0 52%,
      rgba(94,91,168,0.18) 52.2% 52.5%,
      transparent 52.7% 62%,
      rgba(185,168,255,0.18) 62.2% 62.5%,
      transparent 62.7%);
  -webkit-mask-image: linear-gradient(90deg, rgba(0,0,0,1) 0 22%, rgba(0,0,0,0) 36% 64%, rgba(0,0,0,1) 78% 100%);
  mask-image: linear-gradient(90deg, rgba(0,0,0,1) 0 22%, rgba(0,0,0,0) 36% 64%, rgba(0,0,0,1) 78% 100%);
  animation: bodyShapesFloat 24s ease-in-out infinite alternate;
}

/* Soft full-page light layer */
body::after{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:1;
  opacity:0.16;
  mix-blend-mode:screen;
  background:
    radial-gradient(1300px 520px at -6% 30%, rgba(255,230,242,0.34), rgba(255,255,255,0) 66%),
    radial-gradient(1300px 520px at 106% 66%, rgba(198,231,255,0.30), rgba(255,255,255,0) 66%),
    linear-gradient(180deg, rgba(255,255,255,0.12), rgba(255,255,255,0.04) 44%, rgba(255,255,255,0.1));
  transform: translateZ(0);
}

*{ box-sizing:border-box; }
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
button{ font:inherit; }

/* Selection */
::selection{ background: rgba(185,168,255,0.35); }

.container{
  width:min(var(--max), 92%);
  margin:0 auto;
  position:relative;
  z-index:2;
}

/* Top progress bar */
.progress-bar{
  position:fixed;
  top:0;
  left:0;
  width:100%;
  height:4px;
  z-index:9999;
  background:linear-gradient(90deg, var(--purple), var(--blue), var(--pink));
  box-shadow:0 0 18px rgba(185,168,255,0.55);
  transform-origin:left center;
  transform:scaleX(0);
}

/* Cinematic scroll atmosphere (transform-only; no expensive filters) */
body::before{
  content:"";
  position:fixed;
  inset:-20%;
  pointer-events:none;
  z-index:1;
  opacity:0.22;
  background:
    radial-gradient(900px 420px at 15% 15%, rgba(255,230,242,0.22), rgba(255,255,255,0) 60%),
    radial-gradient(860px 420px at 90% 20%, rgba(185,168,255,0.18), rgba(255,255,255,0) 58%),
    radial-gradient(820px 420px at 60% 90%, rgba(198,231,255,0.14), rgba(255,255,255,0) 60%);
  mix-blend-mode:soft-light;
  transform: translate3d(0, calc(var(--atmo-shift, 0px) * -1), 0);
  transition: opacity 0.25s ease;
  animation: ambientBreath 20s ease-in-out infinite alternate;
}

/* Dedicated side aura fields (outside container edges) */
body::before,
body::after{
  will-change: transform, opacity;
}

body::before{
  background:
    linear-gradient(90deg, rgba(185,168,255,0.18) 0%, rgba(185,168,255,0.10) 8%, rgba(255,255,255,0) 22%),
    linear-gradient(270deg, rgba(198,231,255,0.18) 0%, rgba(198,231,255,0.10) 8%, rgba(255,255,255,0) 22%),
    radial-gradient(620px 860px at -14% 26%, rgba(185,168,255,0.42), rgba(185,168,255,0.12) 38%, rgba(255,255,255,0) 72%),
    radial-gradient(460px 520px at -10% 62%, rgba(198,231,255,0.34), rgba(255,255,255,0) 74%),
    radial-gradient(620px 860px at 114% 28%, rgba(198,231,255,0.40), rgba(198,231,255,0.12) 40%, rgba(255,255,255,0) 72%),
    radial-gradient(440px 500px at 110% 64%, rgba(255,230,242,0.30), rgba(255,255,255,0) 74%);
  opacity:0.62;
  mix-blend-mode:normal;
}

/* Sticky navigation */
.site-header{
  position:sticky;
  top:0;
  z-index:1000;
  height:var(--header-h);
  display:flex;
  align-items:center;
  backdrop-filter: blur(12px) saturate(1.03);
  -webkit-backdrop-filter: blur(12px) saturate(1.03);
  background:rgba(255,255,255,0.68);
  border-bottom:1px solid var(--line);
  transition: background var(--transition), box-shadow var(--transition);
}
.site-header.scrolled{
  background:rgba(255,255,255,0.9);
  box-shadow:0 10px 28px rgba(94,91,168,0.08);
}

.nav-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
.brand{
  display:flex;
  align-items:center;
  gap:12px;
  font-weight:800;
  letter-spacing:0.2px;
}
.brand-mark{
  width:34px;
  height:34px;
  border-radius:12px;
  background:
    radial-gradient(circle at 30% 30%, rgba(255,255,255,0.95), rgba(255,255,255,0) 55%),
    linear-gradient(135deg, rgba(185,168,255,0.95), rgba(198,231,255,0.95), rgba(255,230,242,0.95));
  box-shadow:0 14px 34px rgba(185,168,255,0.24);
  border:1px solid rgba(255,255,255,0.55);
}
.brand-name{
  font-family: "Playfair Display", ui-serif, Georgia, "Times New Roman", Times, serif;
  color:var(--deep);
  font-size:1.08rem;
}

.nav-links{
  display:flex;
  align-items:center;
  gap:22px;
  color:var(--muted);
  font-size:0.95rem;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.nav-link{
  position:relative;
  padding:10px 0;
  transition: color var(--transition);
  white-space:nowrap;
}
.nav-link:hover{ color:var(--deep); }
.nav-link::after{
  content:"";
  position:absolute;
  left:0;
  bottom:4px;
  width:0%;
  height:2px;
  border-radius:999px;
  background:linear-gradient(90deg, var(--purple), var(--blue));
  transition: width var(--transition);
}
.nav-link.active{ color:var(--deep); }
.nav-link.active::after{ width:100%; }

.theme-toggle{
  display:inline-flex;
  align-items:center;
  gap:9px;
  height:42px;
  padding:0 12px;
  border-radius:999px;
  border:1px solid rgba(94,91,168,0.16);
  background:linear-gradient(180deg, rgba(255,255,255,0.84), rgba(247,248,255,0.78));
  color:var(--deep);
  box-shadow:0 12px 26px rgba(94,91,168,0.1);
  cursor:pointer;
  transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition), background var(--transition), color var(--transition);
}

.theme-toggle:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 32px rgba(94,91,168,0.14);
  border-color:rgba(185,168,255,0.32);
}

.theme-toggle:focus{ outline:none; }
.theme-toggle:focus-visible{
  box-shadow:0 0 0 4px rgba(185,168,255,0.24);
}

.theme-toggle-icon{
  width:22px;
  height:22px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:linear-gradient(135deg, rgba(185,168,255,0.24), rgba(198,231,255,0.24));
  font-size:0.88rem;
  line-height:1;
}

.theme-toggle-label{
  font-size:0.82rem;
  font-weight:750;
  letter-spacing:0.08px;
}

/* Theme transition (sunrise shine) */
.theme-sunrise-overlay{
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:9999;
  opacity:0;
  background:
    radial-gradient(420px 220px at 50% 42%, rgba(255,255,255,0.75), rgba(255,230,242,0.22) 40%, rgba(185,168,255,0.18) 56%, rgba(255,255,255,0) 72%);
  mix-blend-mode:screen;
  filter: blur(12px) saturate(1.1);
  transform: translate3d(0, 0, 0) scale(0.7);
}

.theme-sunrise-overlay.is-active{
  animation: themeSunrise 1600ms var(--ease-silk) forwards;
}

@keyframes themeSunrise{
  0%{
    opacity:0;
    transform: translate3d(0, 10px, 0) scale(0.78);
    filter: blur(22px) saturate(1.08) brightness(0.96);
  }
  12%{
    opacity:0.35;
  }
  40%{
    opacity:0.85;
    transform: translate3d(0, -2px, 0) scale(1.08);
    filter: blur(14px) saturate(1.14) brightness(1.04);
  }
  100%{
    opacity:0;
    transform: translate3d(0, -8px, 0) scale(1.25);
    filter: blur(18px) saturate(1.08) brightness(1.01);
  }
}

/* Smooth page color transition when switching themes */
html.theme-switching body,
html.theme-switching .section--soft,
html.theme-switching .section--tight,
html.theme-switching .section,
html.theme-switching header,
html.theme-switching .site-header,
html.theme-switching .card,
html.theme-switching .testimonial,
html.theme-switching .site-footer,
html.theme-switching .footer-panel,
html.theme-switching .nav-links,
html.theme-switching .nav-link,
html.theme-switching .step,
html.theme-switching #benefits .stat{
  transition:
    background 1.65s var(--ease-silk),
    background-color 1.65s var(--ease-silk),
    color 1.25s var(--ease-silk),
    border-color 1.55s var(--ease-silk);
}

@media (prefers-reduced-motion: reduce){
  html.theme-switching body,
  html.theme-switching .section,
  html.theme-switching header,
  html.theme-switching .card,
  html.theme-switching .btn{
    transition:none !important;
  }
}

/* Mobile nav (premium dropdown panel) */
.nav-toggle{
  display:none;
  width:44px;
  height:44px;
  border-radius:999px;
  border:1px solid rgba(94,91,168,0.14);
  background:rgba(255,255,255,0.72);
  box-shadow:0 10px 24px rgba(94,91,168,0.07);
  cursor:pointer;
  transition: transform var(--transition), box-shadow var(--transition);
}
.nav-toggle:hover{ transform: translateY(-2px); box-shadow:0 14px 34px rgba(94,91,168,0.12); }
.nav-toggle:focus{ outline:none; }
.nav-toggle:focus-visible{ box-shadow:0 0 0 4px rgba(185,168,255,0.22); }
.nav-toggle-lines{
  width:18px;
  height:12px;
  display:grid;
  gap:4px;
  margin:0 auto;
}
.nav-toggle-lines span{
  display:block;
  height:2px;
  width:100%;
  border-radius:999px;
  background:linear-gradient(90deg, rgba(94,91,168,0.85), rgba(185,168,255,0.95));
  transition: transform var(--transition), opacity var(--transition);
}

.nav-backdrop{
  position:fixed;
  inset:0;
  background: rgba(29,29,45,0.34);
  backdrop-filter: blur(7px);
  opacity:0;
  pointer-events:none;
  transition: opacity var(--transition);
  z-index:1200;
}
body.nav-open .nav-backdrop{
  opacity:1;
  pointer-events:auto;
}

/* Keep the opened mobile nav crisp (avoid double blur). */
body.nav-open .site-header,
body.nav-open header{
  z-index:1400;
  backdrop-filter: blur(10px) saturate(1.03);
  -webkit-backdrop-filter: blur(10px) saturate(1.03);
  background:rgba(255,255,255,0.94);
}

@media (max-width: 860px){
  .nav{
    min-height:72px;
    gap:10px;
    justify-content:flex-start;
  }
  .logo{
    order:1;
  }
  .nav-links{
    order:4;
  }
  .logo-picture{
    height:40px;
    width:172px;
  }
  .logo-img{
    width:100%;
    height:100%;
    object-fit:contain;
    object-position:center;
  }
  .nav-toggle{
    display:inline-grid;
    place-items:center;
    order:3;
    margin-left:0;
  }
  .nav-links{
    position:fixed;
    left:12px;
    right:12px;
    top: calc(var(--header-h) + 10px);
    padding:14px 14px;
    border-radius:24px;
    background: rgba(255,255,255,0.92);
    border:1px solid rgba(185,168,255,0.18);
    box-shadow:0 30px 80px rgba(94,91,168,0.18);
    display:grid;
    gap:8px;
    justify-content:stretch;
    transform: translateY(-10px);
    opacity:0;
    pointer-events:none;
    transition: opacity var(--transition), transform var(--transition);
    z-index:1300;
  }
  body.nav-open .nav-links{
    opacity:1;
    transform: translateY(0);
    pointer-events:auto;
    z-index:1410;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
    background: rgba(255,255,255,0.97);
  }
  .nav-link{
    padding:12px 12px;
    border-radius:16px;
    background: rgba(248,249,255,0.55);
    border:1px solid rgba(185,168,255,0.14);
  }
  .nav-link::after{ display:none; }

  .theme-toggle{
    order:2;
    margin-left:auto;
    height:40px;
    padding:0 10px;
    gap:6px;
  }

  .theme-toggle-label{
    display:none;
  }
}

@media (max-width: 480px){
  .container{
    width:94%;
  }
  .nav{
    min-height:68px;
    gap:8px;
  }
  .logo-picture{
    width:122px;
    height:34px;
  }
  .nav-actions{
    gap:6px;
  }
  .nav-toggle,
  .cart-toggle,
  .theme-toggle{
    width:36px;
    height:36px;
    min-width:36px;
    padding:0;
    justify-content:center;
  }
  .theme-toggle-icon{
    width:18px;
    height:18px;
    font-size:0.78rem;
  }
}

body.nav-open{
  overflow:hidden;
}

/* Buttons */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:13px 18px;
  border-radius:999px;
  font-weight:750;
  letter-spacing:0.1px;
  border:1px solid transparent;
  transition: transform 0.38s var(--ease-premium), box-shadow 0.38s var(--ease-premium), background 0.32s var(--ease-swift), border-color 0.32s var(--ease-swift), color 0.32s var(--ease-swift);
  position:relative;
  overflow:hidden;
}
.btn:focus{ outline:none; }
.btn:focus-visible{
  box-shadow:0 0 0 4px rgba(185,168,255,0.28);
}
.btn-primary{
  background:linear-gradient(90deg, rgba(185,168,255,1), rgba(198,231,255,1), rgba(255,230,242,1));
  color:var(--deep);
  box-shadow:0 14px 34px rgba(185,168,255,0.28);
  border-color:rgba(255,255,255,0.55);
}
.btn-primary:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 46px rgba(185,168,255,0.38);
}
.btn::after{
  content:"";
  position:absolute;
  top:-120%;
  left:-35%;
  width:30%;
  height:340%;
  transform: rotate(22deg) translateX(-220%);
  background: linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,0.48), rgba(255,255,255,0));
  opacity:0;
  transition: transform 0.95s var(--ease-silk), opacity 0.22s ease;
  pointer-events:none;
}
.btn:hover::after{
  opacity:1;
  transform: rotate(22deg) translateX(520%);
}
.btn-secondary{
  background:rgba(255,255,255,0.76);
  border-color:rgba(94,91,168,0.14);
  color:var(--deep);
  box-shadow:0 10px 24px rgba(94,91,168,0.07);
}
.btn-secondary:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 34px rgba(94,91,168,0.12);
}
.btn-ghost{
  background:transparent;
  border-color:rgba(94,91,168,0.14);
  color:var(--deep);
}
.btn-ghost:hover{
  transform:translateY(-2px);
  background:rgba(255,255,255,0.55);
}

/* Magnetic buttons (JS-driven micro-motion) */
.btn[data-magnetic="true"]{
  will-change: transform;
}

/* Cursor aura (monochrome circle interaction, calm + premium) */
.cursor-glow{
  position:fixed;
  left:0;
  top:0;
  --aura-energy: 0;
  width:460px;
  height:460px;
  border-radius:50%;
  pointer-events:none;
  z-index:0;
  transform: translate3d(-50%, -50%, 0);
  background:
    radial-gradient(circle at 50% 50%, rgba(255,255,255,0.32), rgba(255,255,255,0) 54%),
    radial-gradient(circle at 50% 50%, rgba(94,91,168,0.14), rgba(255,255,255,0) 74%);
  filter: blur(10px);
  opacity:0.62;
  mix-blend-mode: normal;
  will-change: transform, opacity, filter;
}

.cursor-glow::before,
.cursor-glow::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:50%;
  pointer-events:none;
}

.cursor-glow::before{
  background:
    repeating-radial-gradient(
      circle at 50% 50%,
      rgba(86,88,126,0.26) 0 1.3px,
      rgba(255,255,255,0) 1.3px 18px
    ),
    radial-gradient(circle at 50% 50%, rgba(255,255,255,0.52), rgba(255,255,255,0) 34%);
  filter: blur(1px);
  opacity: calc(0.58 + (var(--aura-energy) * 0.28));
  transform: scale(calc(1 + (var(--aura-energy) * 0.02)));
  animation: auraRingsFloat 8s ease-in-out infinite alternate;
}

.cursor-glow::after{
  background:
    radial-gradient(circle at 50% 50%, rgba(64,66,101,0.24), rgba(255,255,255,0) 42%),
    radial-gradient(circle at 50% 50%, rgba(255,255,255,0.24), rgba(255,255,255,0) 64%);
  filter: blur(16px);
  opacity: calc(0.42 + (var(--aura-energy) * 0.22));
  transform: scale(calc(0.92 + (var(--aura-energy) * 0.03)));
  animation: auraCoreBreath 5.5s ease-in-out infinite alternate;
}

@media (max-width: 980px){
  .cursor-glow{ display:none; }
}

/* Typography */
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:10px 14px;
  border-radius:999px;
  background:rgba(255,255,255,0.72);
  border:1px solid rgba(94,91,168,0.10);
  box-shadow:0 12px 28px rgba(94,91,168,0.06);
  color:var(--deep);
  font-weight:750;
  font-size:0.88rem;
}
.h1{
  font-family:"Playfair Display", ui-serif, Georgia, "Times New Roman", Times, serif;
  margin:14px 0 0;
  font-size:clamp(2.55rem, 5vw, 4.5rem);
  line-height:1.05;
  letter-spacing:-0.02em;
  color:var(--deep);
}
.subhead{
  margin:16px 0 0;
  max-width:680px;
  color:rgba(54,56,96,0.92);
  font-size:1.06rem;
}
.h2{
  font-family:"Playfair Display", ui-serif, Georgia, "Times New Roman", Times, serif;
  font-size:2.05rem;
  line-height:1.16;
  letter-spacing:-0.01em;
  margin:0;
  color:var(--deep);
}
.section-title{
  text-align:center;
  margin-bottom:10px;
}
.section-subtitle{
  text-align:center;
  max-width:740px;
  margin:0 auto 24px;
  color:var(--muted);
}

/* Section rhythm */
.section{ padding:56px 0; }
.section--tight{
  padding:56px 0;
  background:linear-gradient(to bottom, #fcfcff, #f7f8ff);
}
.section--soft{
  background:linear-gradient(to bottom, #fcfcff, #f7f8ff);
}

/* Cards */
.card{
  background:rgba(255,255,255,0.88);
  border:1px solid rgba(185,168,255,0.18);
  border-radius:var(--radius-xl);
  box-shadow:var(--shadow);
  overflow:hidden;
}
.card-pad{ padding:26px; }
.card-hover{
  transition: transform 0.44s var(--ease-premium), box-shadow 0.44s var(--ease-premium), border-color 0.3s var(--ease-swift);
  transform-style: preserve-3d;
}
.card-hover:hover{
  transform: perspective(950px) translateY(-8px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg));
  box-shadow:var(--shadow-strong);
  border-color:rgba(185,168,255,0.28);
}
.card-glow{
  position:relative;
}
.card-glow::before{
  content:"";
  position:absolute;
  inset:-1px;
  background:
    radial-gradient(600px 260px at 20% 0%, rgba(185,168,255,0.26), rgba(255,255,255,0) 55%),
    radial-gradient(560px 260px at 90% 10%, rgba(198,231,255,0.22), rgba(255,255,255,0) 56%);
  pointer-events:none;
  opacity:0;
  transition: opacity var(--transition);
}
.card-glow:hover::before{ opacity:1; }

/* Reveal animations */
.reveal,
.reveal-card,
.reveal-stagger,
.reveal-fade{
  opacity:0;
  transform: translate3d(var(--reveal-x, 0), var(--reveal-y, 30px), 0) scale(0.994);
  filter: blur(2px);
  transition: opacity 1.15s var(--ease-premium), transform 1.25s var(--ease-silk), filter 1.2s var(--ease-silk);
  transition-delay: var(--reveal-delay, 0s);
  will-change: opacity, transform, filter;
}
.reveal.active,
.reveal-card.active,
.reveal-stagger.active,
.reveal-fade.active{
  opacity:1;
  transform: translate3d(0, 0, 0) scale(1);
  filter: blur(0);
}
.reveal-stagger{
  --reveal-y: 24px;
}
.reveal-card{
  --reveal-y: 26px;
}

/* Cards: extra-smooth + slower arrival */
.reveal-card{
  filter: blur(1.1px);
  transition:
    opacity 2.05s var(--ease-premium),
    transform 2.6s var(--ease-silk),
    filter 2.2s var(--ease-silk);
}

/* Header anchor offset */
[id]{ scroll-margin-top: calc(var(--header-h) + 18px); }

/* Hero */
.hero{
  position:relative;
  overflow:hidden;
  padding:110px 0 82px;
}
.hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    /* Sky */
    radial-gradient(900px 520px at 50% -10%, rgba(198,231,255,0.36), rgba(255,255,255,0) 60%),
    radial-gradient(780px 460px at 20% 10%, rgba(255,230,242,0.22), rgba(255,255,255,0) 62%),
    radial-gradient(860px 520px at 90% 18%, rgba(185,168,255,0.22), rgba(255,255,255,0) 60%),
    /* Atmospheric fade */
    linear-gradient(180deg,
      rgba(226,236,255,0.55) 0%,
      rgba(255,255,255,0.68) 34%,
      rgba(255,255,255,0.80) 100%);
  pointer-events:none;
  animation: heroSkyDrift 26s ease-in-out infinite alternate;
}
.hero::after{
  content:"";
  position:absolute;
  left:-10%;
  right:-10%;
  bottom:-18%;
  height:58%;
  border-radius:42%;
  background:
    /* Water / horizon glow */
    radial-gradient(720px 320px at 50% 0%, rgba(255,230,242,0.22), rgba(255,255,255,0) 62%),
    linear-gradient(180deg,
      rgba(198,231,255,0.28) 0%,
      rgba(198,231,255,0.08) 42%,
      rgba(255,255,255,0) 78%);
  opacity:0.42;
  filter: blur(12px);
  pointer-events:none;
  animation: heroWaterDrift 28s ease-in-out infinite alternate;
}
.hero[data-parallax='true']::before{
  animation: heroSkyDrift 26s ease-in-out infinite alternate;
}

.hero-orb{
  position:absolute;
  border-radius:50%;
  filter: blur(18px);
  pointer-events:none;
  opacity:0.18;
  mix-blend-mode: screen;
}
.hero-orb--1{
  width:260px;
  height:260px;
  top:84px;
  left:7%;
  background: radial-gradient(circle, rgba(255,255,255,0.95), rgba(255,230,242,0.52), rgba(255,230,242,0));
  animation: driftOne 26s ease-in-out infinite alternate;
}
.hero-orb--2{
  width:320px;
  height:320px;
  right:6%;
  bottom:40px;
  background: radial-gradient(circle, rgba(255,255,255,0.88), rgba(198,231,255,0.52), rgba(198,231,255,0));
  animation: driftTwo 30s ease-in-out infinite alternate;
}

.hero-grid{
  display:grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap:34px;
  align-items:center;
  position:relative;
  z-index:1;
}
.hero-copy{
  text-align:left;
}
.hero-actions{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  margin-top:26px;
  align-items:center;
}
.hero-mini-cards{
  display:grid;
  grid-template-columns: 1fr;
  gap:14px;
}
.mini-card{
  padding:18px 18px;
  border-radius:22px;
  background: rgba(255,255,255,0.84);
  border:1px solid rgba(185,168,255,0.16);
  box-shadow: 0 12px 30px rgba(94,91,168,0.10);
  transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition);
  display:flex;
  gap:14px;
  align-items:flex-start;
}
.mini-card:hover{
  transform: translateY(-4px);
  box-shadow: var(--shadow-strong);
  border-color: rgba(185,168,255,0.28);
}
.mini-icon{
  width:44px;
  height:44px;
  border-radius:16px;
  display:grid;
  place-items:center;
  background: linear-gradient(180deg, rgba(255,255,255,0.95), rgba(220,215,255,0.78));
  border: 1px solid rgba(255,255,255,0.55);
  color:var(--deep);
  font-size:1.2rem;
  box-shadow: 0 12px 26px rgba(185,168,255,0.16);
}
.mini-title{
  font-weight:850;
  color:var(--deep);
  margin:0;
}
.mini-desc{
  margin:6px 0 0;
  color:var(--muted);
  font-size:0.94rem;
}

/* Story / steps */
.steps{
  display:grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap:18px;
  margin-top:18px;
}
.step{
  padding:26px 24px;
  border-radius:var(--radius-xl);
  background:rgba(255,255,255,0.86);
  border:1px solid rgba(185,168,255,0.16);
  box-shadow: 0 14px 34px rgba(94,91,168,0.08);
}
.step-num{
  width:44px;
  height:44px;
  border-radius:18px;
  display:grid;
  place-items:center;
  font-weight:900;
  color:var(--deep);
  background: rgba(185,168,255,0.08);
  border: 1px solid rgba(185,168,255,0.14);
  opacity:0.55;
}
.step h3{
  font-family: "Playfair Display", ui-serif, Georgia, "Times New Roman", Times, serif;
  margin:16px 0 10px;
  color:var(--deep);
  font-size:1.35rem;
}
.step p{
  margin:0;
  color:var(--muted);
}

.story-morph{
  position:relative;
  margin:14px 0 24px;
  height:300px;
  border-radius:28px;
  overflow:hidden;
  border:1px solid rgba(185,168,255,0.2);
  background:
    radial-gradient(560px 220px at 50% 38%, rgba(185,168,255,0.2), rgba(255,255,255,0) 72%),
    radial-gradient(640px 260px at 50% 90%, rgba(198,231,255,0.2), rgba(255,255,255,0) 76%),
    rgba(255,255,255,0.7);
  box-shadow:0 18px 42px rgba(94,91,168,0.1), inset 0 1px 0 rgba(255,255,255,0.55);
}

.story-morph::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(90deg, rgba(110,106,182,0.06) 1px, transparent 1px) 0 0 / 28px 28px,
    linear-gradient(180deg, rgba(110,106,182,0.06) 1px, transparent 1px) 0 0 / 28px 28px;
  opacity:0.18;
}

.story-morph-canvas{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block;
}

#story{
  position:relative;
}

#story .story-sequence{
  position:relative;
  min-height:260vh;
}

#story .story-sticky{
  position:sticky;
  top: calc(var(--header-h) + 18px);
  min-height:82vh;
  display:grid;
  align-content:start;
  gap:8px;
}

#story .story-layout{
  display:grid;
  grid-template-columns: minmax(420px, 1.14fr) minmax(300px, 0.86fr);
  gap:22px;
  align-items:start;
  position:relative;
  min-height:620px;
}

#story .story-morph{
  margin:0;
  height:100%;
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  border:0;
  background:transparent;
  box-shadow:none;
  border-radius:0;
  overflow:hidden;
  opacity:0.62;
  transform: translateY(8px) scale(0.985);
  transition: opacity 0.75s var(--ease-premium), transform 0.75s var(--ease-premium), box-shadow 0.75s var(--ease-premium);
}

#story .story-morph::before{
  display:none;
}

#story[data-story-stage="2"] .story-morph{
  opacity:0.82;
  transform: translateY(2px) scale(0.995);
}

#story[data-story-stage="3"] .story-morph{
  opacity:1;
  transform:none;
  box-shadow:none;
}

#story .story-steps{
  opacity:0;
  transform: translateY(12px);
  pointer-events:none;
  transition: opacity 0.68s var(--ease-premium), transform 0.68s var(--ease-premium);
  grid-template-columns:1fr;
  margin-top:0;
  grid-column:2;
  position:relative;
  z-index:2;
}

#story[data-story-stage="3"] .story-steps{
  opacity:1;
  transform:none;
  pointer-events:auto;
}

/* Benefit grid */
.grid-3{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:18px;
}
.benefit{
  padding:24px;
}
.benefit h3{
  margin:12px 0 8px;
  font-family:"Playfair Display", ui-serif, Georgia, "Times New Roman", Times, serif;
  font-size:1.28rem;
  color:var(--deep);
}
.benefit p{
  margin:0;
  color:var(--muted);
}
.benefit-icon{
  width:50px;
  height:50px;
  border-radius:18px;
  display:grid;
  place-items:center;
  background: rgba(255,255,255,0.30);
  border: 1px solid rgba(185,168,255,0.12);
  box-shadow:none;
  color:rgba(94,91,168,0.55);
  font-size:1.05rem;
  opacity:0.45;
}

/* Content blocks with image placeholders */
.two-col{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:18px;
  align-items:stretch;
}
.media{
  position:relative;
  min-height:360px;
}
.media::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:var(--radius-xl);
  background:
    radial-gradient(900px 440px at 30% 20%, rgba(255,230,242,0.45), rgba(255,255,255,0) 60%),
    radial-gradient(760px 420px at 90% 30%, rgba(185,168,255,0.45), rgba(255,255,255,0) 58%),
    linear-gradient(180deg, rgba(255,255,255,0.75), rgba(255,255,255,0.55));
  border:1px solid rgba(185,168,255,0.16);
  box-shadow: var(--shadow);
}
.media::after{
  content:"";
  position:absolute;
  inset:24px;
  border-radius:calc(var(--radius-xl) - 10px);
  background:
    radial-gradient(circle at 30% 30%, rgba(255,255,255,0.96), rgba(255,255,255,0) 55%),
    radial-gradient(circle at 80% 40%, rgba(198,231,255,0.52), rgba(255,255,255,0) 58%),
    radial-gradient(circle at 50% 90%, rgba(255,230,242,0.40), rgba(255,255,255,0) 60%);
  filter: blur(0.2px);
  opacity:0.9;
}
.media-badge{
  position:absolute;
  left:26px;
  bottom:26px;
  z-index:2;
  padding:12px 14px;
  border-radius:999px;
  background: rgba(255,255,255,0.78);
  border:1px solid rgba(185,168,255,0.18);
  box-shadow: 0 14px 30px rgba(94,91,168,0.10);
  color:var(--deep);
  font-weight:850;
  font-size:0.95rem;
}

/* Featured rows */
.row-3{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:22px;
  align-items:stretch;
}
.story-card{
  padding:22px;
}
.pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  border-radius:999px;
  background: rgba(185,168,255,0.12);
  border: 1px solid rgba(185,168,255,0.22);
  color:var(--deep);
  font-weight:850;
  font-size:0.88rem;
}
.story-card h3{
  margin:14px 0 8px;
  font-family:"Playfair Display", ui-serif, Georgia, "Times New Roman", Times, serif;
  font-size:1.42rem;
  color:var(--deep);
}
.story-card p{
  margin:0;
  color:var(--muted);
}
.card-footer{
  margin-top:18px;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
}
.meta{
  color:var(--muted);
  font-weight:700;
  font-size:0.95rem;
}

/* Testimonials */
.testimonial{
  padding:30px;
  position:relative;
}
.testimonial::before{
  content:"";
  position:absolute;
  width:240px;
  height:240px;
  border-radius:50%;
  right:-70px;
  top:-70px;
  background: radial-gradient(circle, rgba(255,230,242,0.62), rgba(255,230,242,0) 60%);
  filter: blur(0.2px);
  pointer-events:none;
}
.quote{
  font-family:"Playfair Display", ui-serif, Georgia, "Times New Roman", Times, serif;
  font-size:2.4rem;
  line-height:1;
  color:rgba(94,91,168,0.20);
}
.testimonial-text{
  margin:12px 0 20px;
  color:rgba(54,56,96,0.95);
  font-size:1.06rem;
}
.testimonial-author{
  font-weight:900;
  color:var(--deep);
}
.testimonial-role{
  margin-top:4px;
  color:var(--muted);
  font-size:0.95rem;
}
.dots{
  display:flex;
  gap:10px;
  justify-content:center;
  margin-top:16px;
}
.dot{
  width:10px;
  height:10px;
  border-radius:50%;
  border:0;
  background:rgba(94,91,168,0.18);
  transition: transform var(--transition), background var(--transition);
  cursor:pointer;
}
.dot.active{
  transform:scale(1.25);
  background: linear-gradient(180deg, var(--purple), var(--deep));
}

.fade-out{
  opacity:0;
  transform: translateY(10px);
  transition: opacity 0.25s ease, transform 0.25s ease;
}
.fade-in{
  opacity:1;
  transform: translateY(0);
  transition: opacity 0.25s ease, transform 0.25s ease;
}

/* Comparison table */
.compare{
  overflow:hidden;
}
.compare-grid{
  display:grid;
  grid-template-columns: 1.05fr 0.95fr 0.95fr 0.95fr;
  border-radius:var(--radius-xl);
  overflow:hidden;
  border:1px solid rgba(185,168,255,0.16);
  box-shadow: var(--shadow);
}
.compare-header{
  background: rgba(248,249,255,0.7);
  color:var(--deep);
  font-weight:950;
  padding:18px 16px;
  border-bottom:1px solid rgba(185,168,255,0.16);
  text-align:center;
  font-size:1.05rem;
}
.compare-left{
  background: rgba(248,249,255,0.7);
  padding:18px 16px;
  border-bottom:1px solid rgba(185,168,255,0.16);
  color:var(--muted);
  font-weight:850;
  font-size:0.98rem;
}
.compare-row{
  display:contents;
}
.compare-cell{
  padding:14px 14px;
  border-bottom:1px solid rgba(185,168,255,0.10);
  text-align:center;
  color:rgba(54,56,96,0.92);
  background: rgba(255,255,255,0.82);
}
.compare-cell.left{
  text-align:left;
  color:var(--muted);
  font-weight:800;
}
.tick{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-weight:950;
  color:var(--deep);
}
.tick svg{ width:18px; height:18px; }
.cross{
  opacity:0.45;
  font-weight:950;
  color:var(--deep);
}

/* Product cards */
.filters{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:center;
  margin-bottom:22px;
}
.filter-btn{
  cursor:pointer;
  padding:10px 14px;
  border-radius:999px;
  border:1px solid rgba(94,91,168,0.14);
  background: rgba(255,255,255,0.66);
  color:var(--deep);
  font-weight:850;
  transition: transform var(--transition), box-shadow var(--transition), background var(--transition), border-color var(--transition);
}
.filter-btn:hover{
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(94,91,168,0.10);
}
.filter-btn.active{
  background: linear-gradient(90deg, rgba(185,168,255,1), rgba(198,231,255,1), rgba(255,230,242,1));
  border-color: rgba(255,255,255,0.7);
}
.product-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:18px;
}
#featured-books .product-grid{
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap:22px;
}
#featured-books .product-top img{
  max-height: 100%;
  width: auto;
  max-width: 100%;
  object-fit: contain;
}

/* Index “Librat e Valentinës”: book tiles only — editorial layout, portrait cover, clear CTA stack */
#featured-books .book-card{
  text-align:center;
  padding:20px 18px 22px !important;
}
#featured-books .book-card .product-top{
  position:relative;
  display:block;
  height:auto;
  aspect-ratio:3 / 4.15;
  max-height:240px;
  width:100%;
  max-width:min(200px, 88%);
  margin:2px auto 4px;
  padding:0;
  border-radius:14px 16px 16px 14px;
  overflow:hidden;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.9),
    0 14px 36px rgba(45,42,92,0.12),
    2px 0 0 rgba(185,168,255,0.08);
}
#featured-books .book-card .product-top img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  max-width:none;
  max-height:none;
  object-fit:cover;
  object-position:center;
  display:block;
}
#featured-books .book-card .product-title{
  margin-top:14px;
  margin-bottom:6px;
  font-size:1.22rem;
  line-height:1.2;
  text-wrap:balance;
}
#featured-books .book-card .product-desc{
  text-align:center;
  margin-left:auto;
  margin-right:auto;
  max-width:34ch;
  min-height:0;
  font-size:0.9rem;
  line-height:1.52;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
  line-clamp:3;
  overflow:hidden;
}
#featured-books .book-card .product-actions{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:10px;
  margin-top:16px;
  padding-top:18px;
  border-top:1px solid rgba(94,91,168,0.1);
}
#featured-books .book-card .product-actions .price{
  order:-1;
  align-self:center;
  margin:0 0 4px;
  font-size:0.78rem;
  font-weight:900;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:rgba(111,113,146,0.95);
}
#featured-books .book-card .product-actions .btn-secondary{
  width:100%;
  justify-content:center;
  padding:13px 16px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,0.55);
  background:linear-gradient(92deg, rgba(185,168,255,0.98), rgba(198,231,255,0.96), rgba(255,230,242,0.96));
  color:var(--deep);
  font-weight:800;
  box-shadow:0 12px 30px rgba(185,168,255,0.28), inset 0 1px 0 rgba(255,255,255,0.75);
}
#featured-books .book-card .product-actions .btn-secondary:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 38px rgba(185,168,255,0.34), inset 0 1px 0 rgba(255,255,255,0.85);
}
#featured-books .book-card .product-actions .btn-ghost{
  width:100%;
  justify-content:center;
  padding:11px 14px;
  font-weight:760;
  font-size:0.92rem;
  border-radius:999px;
  border-color:rgba(94,91,168,0.16);
  background:rgba(255,255,255,0.55);
}
#featured-books .book-card .product-actions .btn-ghost:hover{
  background:rgba(255,255,255,0.88);
  border-color:rgba(185,168,255,0.35);
}

/* Featured books: slower cinematic card reveal */
#featured-books .product-grid .reveal-card{
  --reveal-y: 34px;
  filter: blur(0.35px);
  transition:
    opacity 1.75s var(--ease-premium),
    transform 2.1s var(--ease-silk),
    filter 1.2s var(--ease-silk);
}
.product-card{
  padding:18px;
}
.product-top{
  border-radius:20px;
  overflow:hidden;
  border:1px solid rgba(185,168,255,0.14);
  background:rgba(255,255,255,0.72);
  height:190px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.product-title{
  margin:14px 0 8px;
  font-family:"Playfair Display", ui-serif, Georgia, "Times New Roman", Times, serif;
  font-size:1.35rem;
  color:var(--deep);
}
.product-desc{
  margin:0;
  color:var(--muted);
  min-height:58px;
}
.price{
  font-weight:950;
  color:var(--deep);
  font-size:1.08rem;
}
.product-actions{
  margin-top:18px;
  display:flex;
  gap:10px;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
}

/* Featured books rail (same pattern as partners) */
#featured-books .books-marquee{
  position:relative;
  overflow-x:auto;
  overflow-y:visible;
  padding:14px 0 16px;
  background:linear-gradient(to bottom, rgba(252,252,255,0.98), rgba(247,248,255,0.98));
  border:0;
  outline:none;
  box-shadow:none;
  border-radius:18px;
  scrollbar-width:none;
  -ms-overflow-style:none;
  scroll-snap-type:x mandatory;
  scroll-padding-inline:2px;
}

#featured-books .books-marquee::before,
#featured-books .books-marquee::after{
  display:none;
}

#featured-books .books-track{
  display:flex;
  align-items:stretch;
  gap:18px;
  width:max-content;
  animation:none;
  padding:2px 0;
  background:transparent;
  border:0;
  outline:none;
}

#featured-books .books-marquee::-webkit-scrollbar{
  width:0;
  height:0;
  display:none;
}

#featured-books .books-track > .card{
  flex:0 0 340px;
  width:340px;
  max-width:340px;
  will-change: transform;
  scroll-snap-align:start;
  scroll-snap-stop:always;
}

#featured-books .books-cta{
  text-align:center;
  margin-top:24px;
}

#featured-books .books-cta .btn.btn-primary{
  background: linear-gradient(90deg, rgba(185,168,255,0.96), rgba(198,231,255,0.96), rgba(255,230,242,0.96));
  border-color: rgba(255,255,255,0.88);
  box-shadow:
    0 16px 38px rgba(185,168,255,0.30),
    inset 0 1px 0 rgba(255,255,255,0.72);
  backdrop-filter: blur(5px) saturate(1.04);
  -webkit-backdrop-filter: blur(5px) saturate(1.04);
}

#featured-books .books-cta .btn.btn-primary:hover{
  box-shadow:
    0 20px 48px rgba(185,168,255,0.38),
    inset 0 1px 0 rgba(255,255,255,0.82);
}

#featured-books.section::after{
  display:none;
}

/* Remove local overlays/fades that make the rail look like a cut strip */
#featured-books::before,
#featured-books::after{
  display:none !important;
}


/* Editorial Blog */
.blog-feature{
  display:grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap:18px;
  align-items:stretch;
}
.article-card{
  padding:20px;
  position:relative;
}
.article-media{
  border-radius:20px;
  overflow:hidden;
  height:190px;
  border:1px solid rgba(185,168,255,0.14);
  background:
    radial-gradient(circle at 20% 20%, rgba(255,230,242,0.55), rgba(255,255,255,0) 60%),
    radial-gradient(circle at 80% 30%, rgba(185,168,255,0.52), rgba(255,255,255,0) 58%),
    linear-gradient(180deg, rgba(255,255,255,0.75), rgba(255,255,255,0.55));
}
.article-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.article-title{
  margin:14px 0 8px;
  font-family:"Playfair Display", ui-serif, Georgia, "Times New Roman", Times, serif;
  font-size:1.35rem;
  color:var(--deep);
}
.article-excerpt{
  margin:0;
  color:var(--muted);
  min-height:52px;
}
.article-meta{
  margin-top:16px;
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  color:var(--muted);
  font-weight:800;
  font-size:0.95rem;
}
.tag{
  display:inline-flex;
  padding:8px 12px;
  border-radius:999px;
  background: rgba(185,168,255,0.12);
  border: 1px solid rgba(185,168,255,0.20);
  color: var(--deep);
  font-weight:900;
}

/* Public events page (API-driven) */
.events-api-banner{
  text-align:center;
  margin:0 auto 18px;
  max-width:62ch;
  color:var(--muted);
  font-weight:800;
  font-size:0.98rem;
  line-height:1.55;
}
.events-api-banner code{
  font-size:0.88em;
  font-weight:700;
  padding:2px 6px;
  border-radius:8px;
  background:rgba(185,168,255,0.12);
  border:1px solid rgba(185,168,255,0.22);
  color:var(--deep);
}
.events-api-banner a{
  color:inherit;
  font-weight:900;
  text-decoration:underline;
  text-underline-offset:3px;
}
.events-api-banner--error{
  color:#8b2942;
}
html[data-theme="dark"] .events-api-banner--error{
  color:#ffb4c4;
}
.events-filters{
  margin-bottom:22px;
  flex-wrap:wrap;
}
.events-empty{
  text-align:center;
  color:var(--muted);
  font-weight:800;
  max-width:48ch;
  margin:0 auto 24px;
}

.article-media--link{
  cursor:pointer;
  transition:transform var(--transition), box-shadow var(--transition);
}
.article-media--link:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 40px rgba(94,91,168,0.18);
}

/* Event detail (public) */
.event-detail-article{
  padding-top:8px;
}
.event-detail-hero .hero-content h1{
  text-shadow:0 2px 28px rgba(0,0,0,0.38);
}
.event-detail-hero-deck{
  text-shadow:0 1px 14px rgba(0,0,0,0.28);
  max-width:52ch;
}
.event-detail-meta-row{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:14px;
}
.event-detail-meta-pill{
  display:inline-flex;
  align-items:center;
  padding:8px 14px;
  border-radius:999px;
  font-weight:800;
  font-size:0.92rem;
  background:rgba(255,255,255,0.82);
  border:1px solid rgba(185,168,255,0.35);
  color:var(--deep);
}
html[data-theme="dark"] .event-detail-meta-pill{
  background:rgba(22,24,34,0.72);
  border-color:rgba(185,168,255,0.28);
  color:var(--text);
}
.container.narrow-readable{
  max-width:760px;
  margin:0 auto;
}
.event-article-body{
  font-size:1.06rem;
  line-height:1.78;
  color:var(--text);
  font-weight:550;
}
.event-article-body > *:first-child{
  margin-top:0;
}
.event-article-body h1,
.event-article-body h2,
.event-article-body h3,
.event-article-body h4,
.event-article-body h5,
.event-article-body h6{
  font-family:"Playfair Display", ui-serif, Georgia, "Times New Roman", Times, serif;
  color:var(--deep);
  margin:1.45em 0 0.45em;
  line-height:1.25;
  font-weight:600;
}
.event-article-body h1{ font-size:2rem; }
.event-article-body h2{ font-size:1.55rem; }
.event-article-body h3{ font-size:1.28rem; }
.event-article-body h4{ font-size:1.12rem; letter-spacing:0.01em; }
.event-article-body h5{ font-size:1.02rem; text-transform:uppercase; letter-spacing:0.06em; font-weight:700; }
.event-article-body h6{ font-size:0.95rem; font-weight:700; color:var(--muted); }
.event-article-body p{ margin:0.85em 0; }
.event-article-body a{
  color:var(--deep);
  font-weight:700;
  text-decoration:underline;
  text-underline-offset:3px;
  text-decoration-thickness:1.5px;
}
.event-article-body a:hover{
  color:#4a4688;
}
.event-article-body strong,
.event-article-body b{
  font-weight:800;
  color:var(--deep);
}
.event-article-body em,
.event-article-body i{
  font-style:italic;
}
.event-article-body s,
.event-article-body del{
  opacity:0.82;
}
.event-article-body u{
  text-decoration-thickness:1px;
  text-underline-offset:2px;
}
.event-article-body img{
  max-width:100%;
  height:auto;
  border-radius:16px;
  margin:1.1em 0;
  display:block;
  box-shadow:0 10px 32px rgba(94,91,168,0.12);
}
.event-article-body figure{
  margin:1.25em 0;
}
.event-article-body figcaption{
  font-size:0.9rem;
  color:var(--muted);
  margin-top:0.35em;
  text-align:center;
}
.event-article-body ul,
.event-article-body ol{
  margin:0.85em 0;
  padding-left:1.45rem;
}
.event-article-body li{
  margin:0.35em 0;
}
.event-article-body ul ul,
.event-article-body ol ol,
.event-article-body ul ol,
.event-article-body ol ul{
  margin:0.35em 0;
}
.event-article-body hr{
  border:0;
  height:1px;
  margin:2em 0;
  background:linear-gradient(90deg, transparent, rgba(94,91,168,0.35), transparent);
}
.event-article-body pre{
  margin:1.1em 0;
  padding:14px 16px;
  overflow:auto;
  border-radius:14px;
  background:rgba(94,91,168,0.08);
  border:1px solid rgba(94,91,168,0.15);
  font-size:0.92rem;
  line-height:1.55;
}
.event-article-body code{
  font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size:0.9em;
  padding:0.12em 0.38em;
  border-radius:6px;
  background:rgba(94,91,168,0.1);
}
.event-article-body pre code{
  padding:0;
  background:none;
  font-size:inherit;
}
.event-article-body blockquote{
  margin:1.2em 0;
  padding:12px 18px;
  border-left:4px solid rgba(185,168,255,0.65);
  background:rgba(185,168,255,0.08);
  border-radius:0 14px 14px 0;
  font-style:italic;
  color:var(--muted);
}
html[data-theme="dark"] .event-article-body h1,
html[data-theme="dark"] .event-article-body h2,
html[data-theme="dark"] .event-article-body h3,
html[data-theme="dark"] .event-article-body h4,
html[data-theme="dark"] .event-article-body h5{
  color:#dcd7ff;
}
html[data-theme="dark"] .event-article-body h6{
  color:rgba(200,208,232,0.85);
}
html[data-theme="dark"] .event-article-body a{
  color:#c9c2ff;
}
html[data-theme="dark"] .event-article-body a:hover{
  color:#e4e0ff;
}
html[data-theme="dark"] .event-article-body strong,
html[data-theme="dark"] .event-article-body b{
  color:#eae6ff;
}
html[data-theme="dark"] .event-article-body img{
  box-shadow:0 12px 40px rgba(0,0,0,0.35);
}
html[data-theme="dark"] .event-article-body pre{
  background:rgba(22,24,34,0.85);
  border-color:rgba(185,168,255,0.22);
}
html[data-theme="dark"] .event-article-body code{
  background:rgba(185,168,255,0.14);
}

/* Catalog detail — books, courses, events (shared) */
body.catalog-detail-page{
  --catalog-hero-min: clamp(420px, 62vh, 560px);
}
.catalog-detail-loading{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:18px;
  min-height:52vh;
  padding:48px 20px;
}
.catalog-detail-loading__orb{
  width:72px;
  height:72px;
  border-radius:50%;
  background:
    radial-gradient(circle at 35% 30%, rgba(255,255,255,0.95), rgba(185,168,255,0.45) 42%, rgba(198,231,255,0.2) 70%, transparent 72%);
  box-shadow:0 18px 48px rgba(94,91,168,0.22);
  animation: catalogDetailPulse 1.8s ease-in-out infinite;
}
.catalog-detail-loading__text{
  margin:0;
  font-weight:800;
  color:var(--muted);
  letter-spacing:0.02em;
}
@keyframes catalogDetailPulse{
  0%, 100%{ transform:scale(0.94); opacity:0.72; }
  50%{ transform:scale(1.06); opacity:1; }
}

.catalog-detail-hero{
  position:relative;
  overflow:hidden;
  min-height:var(--catalog-hero-min);
  padding:calc(var(--header-h) + 28px) 0 72px;
  display:flex;
  align-items:flex-end;
  color:#fff;
}
.catalog-detail-hero--has-cover .catalog-detail-hero__bg{
  background-image:var(--catalog-cover);
  background-size:cover;
  background-position:center 28%;
  transform:scale(1.04);
  animation: catalogHeroKenBurns 22s ease-in-out infinite alternate;
}
@keyframes catalogHeroKenBurns{
  from{ transform:scale(1.04) translate3d(0, 0, 0); }
  to{ transform:scale(1.1) translate3d(0, -1.2%, 0); }
}
.catalog-detail-hero__bg{
  position:absolute;
  inset:0;
  background:
    radial-gradient(900px 520px at 18% 0%, rgba(255,230,242,0.35), transparent 62%),
    radial-gradient(860px 480px at 88% 12%, rgba(198,231,255,0.32), transparent 60%),
    linear-gradient(135deg, #8f87e8 0%, #6b60b8 42%, #5e5ba8 100%);
}
.catalog-detail-hero__veil{
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg,
      rgba(30,28,58,0.35) 0%,
      rgba(30,28,58,0.55) 38%,
      rgba(30,28,58,0.82) 72%,
      rgba(30,28,58,0.94) 100%);
  pointer-events:none;
}
.catalog-detail-hero__shine{
  position:absolute;
  inset:-20% -10% auto;
  height:55%;
  background:linear-gradient(115deg, transparent 30%, rgba(255,255,255,0.14) 48%, transparent 66%);
  transform:translateX(-30%);
  animation: catalogHeroShine 9s ease-in-out infinite;
  pointer-events:none;
}
@keyframes catalogHeroShine{
  0%, 100%{ transform:translateX(-38%) skewX(-8deg); opacity:0.35; }
  50%{ transform:translateX(18%) skewX(-8deg); opacity:0.75; }
}
.catalog-detail-hero .hero-orb{
  opacity:0.32;
  mix-blend-mode:screen;
}
.catalog-detail-hero__inner{
  position:relative;
  z-index:2;
  max-width:820px;
}
.catalog-detail-back{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-bottom:18px;
  padding:10px 16px 10px 12px;
  border-radius:999px;
  background:rgba(255,255,255,0.14);
  border:1px solid rgba(255,255,255,0.28);
  color:#fff;
  font-weight:750;
  font-size:0.9rem;
  text-decoration:none;
  backdrop-filter:blur(10px);
  transition:transform var(--transition), background var(--transition), border-color var(--transition);
}
.catalog-detail-back:hover{
  transform:translateY(-2px);
  background:rgba(255,255,255,0.22);
  border-color:rgba(255,255,255,0.42);
}
.catalog-detail-back__icon{
  display:inline-flex;
  width:22px;
  height:22px;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:rgba(255,255,255,0.16);
  font-size:0.95rem;
}
.catalog-detail-badge{
  display:inline-flex;
  align-items:center;
  padding:8px 14px;
  border-radius:999px;
  background:linear-gradient(135deg, rgba(255,230,242,0.95), rgba(220,215,255,0.92));
  color:var(--deep);
  font-weight:900;
  font-size:0.78rem;
  letter-spacing:0.14em;
  text-transform:uppercase;
  box-shadow:0 10px 28px rgba(0,0,0,0.18);
}
.catalog-detail-title{
  margin:14px 0 0;
  font-family:"Playfair Display", ui-serif, Georgia, serif;
  font-size:clamp(2.35rem, 5.2vw, 4.1rem);
  line-height:1.06;
  letter-spacing:-0.02em;
  text-shadow:0 4px 32px rgba(0,0,0,0.35);
}
.catalog-detail-deck{
  margin:16px 0 0;
  max-width:54ch;
  font-size:clamp(1.02rem, 1.6vw, 1.18rem);
  line-height:1.62;
  color:rgba(255,255,255,0.92);
  text-shadow:0 2px 18px rgba(0,0,0,0.28);
}
.catalog-detail-meta-row{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:18px;
}
.catalog-detail-meta-pill{
  display:inline-flex;
  align-items:center;
  padding:9px 15px;
  border-radius:999px;
  font-weight:800;
  font-size:0.9rem;
  background:rgba(255,255,255,0.9);
  border:1px solid rgba(255,255,255,0.55);
  color:var(--deep);
  box-shadow:0 8px 22px rgba(0,0,0,0.12);
}
.catalog-detail-hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:26px;
  align-items:center;
}
.catalog-detail-hero-actions .btn{
  box-shadow:0 14px 34px rgba(0,0,0,0.22);
}

.catalog-detail-body{
  padding-top:0;
  margin-top:-42px;
  position:relative;
  z-index:3;
}
.catalog-detail-grid{
  display:grid;
  grid-template-columns:minmax(260px, 340px) minmax(0, 1fr);
  gap:28px;
  align-items:start;
}
.catalog-detail-aside{
  position:sticky;
  top:calc(var(--header-h) + 16px);
  display:flex;
  flex-direction:column;
  gap:16px;
}
.catalog-detail-cover-frame{
  position:relative;
  padding:14px;
  border-radius:var(--radius-xl);
  background:rgba(255,255,255,0.92);
  border:1px solid rgba(185,168,255,0.22);
  box-shadow:var(--shadow-strong);
  overflow:hidden;
}
.catalog-detail-cover-frame::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(145deg, rgba(185,168,255,0.12), transparent 48%);
  pointer-events:none;
}
.catalog-detail-cover-img{
  display:block;
  width:100%;
  height:auto;
  border-radius:calc(var(--radius-xl) - 8px);
  aspect-ratio:3/4;
  object-fit:cover;
}
.catalog-detail-cover-placeholder{
  display:grid;
  place-items:center;
  min-height:280px;
  border-radius:calc(var(--radius-xl) - 8px);
  background:linear-gradient(145deg, rgba(185,168,255,0.22), rgba(198,231,255,0.18));
}
.catalog-detail-cover-placeholder span{
  font-family:"Playfair Display", ui-serif, Georgia, serif;
  font-size:2.4rem;
  font-weight:700;
  color:var(--deep);
  opacity:0.55;
}
.catalog-detail-aside-card{
  padding:18px 20px;
  border-radius:var(--radius-lg);
  background:rgba(255,255,255,0.9);
  border:1px solid rgba(185,168,255,0.2);
  box-shadow:var(--shadow);
}
.catalog-detail-price__label{
  display:block;
  font-size:0.78rem;
  font-weight:800;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--muted);
}
.catalog-detail-price__value{
  display:block;
  margin-top:6px;
  font-family:"Playfair Display", ui-serif, Georgia, serif;
  font-size:2rem;
  line-height:1.1;
  color:var(--deep);
}
.catalog-detail-price__sub{
  display:block;
  margin-top:4px;
  font-size:0.92rem;
  color:var(--muted);
  font-weight:650;
}
.catalog-detail-aside-actions{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.catalog-detail-aside-actions .btn{
  width:100%;
  justify-content:center;
}

.catalog-detail-main{
  padding:28px 30px 32px;
  border-radius:var(--radius-xl);
  background:rgba(255,255,255,0.94);
  border:1px solid rgba(185,168,255,0.2);
  box-shadow:var(--shadow-strong);
  position:relative;
  overflow:hidden;
}
.catalog-detail-main::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:4px;
  background:linear-gradient(90deg, var(--pink), var(--lavender), var(--blue), var(--purple));
}
.catalog-detail-main__head{
  margin-bottom:22px;
}
.catalog-detail-main__eyebrow{
  display:inline-flex;
  padding:7px 12px;
  border-radius:999px;
  background:rgba(185,168,255,0.12);
  border:1px solid rgba(185,168,255,0.22);
  color:var(--deep);
  font-weight:800;
  font-size:0.78rem;
  letter-spacing:0.1em;
  text-transform:uppercase;
}
.catalog-detail-main__title{
  margin:12px 0 0;
  font-family:"Playfair Display", ui-serif, Georgia, serif;
  font-size:clamp(1.65rem, 2.8vw, 2.15rem);
  line-height:1.15;
  color:var(--deep);
}
.catalog-detail-main__rule{
  width:72px;
  height:4px;
  margin-top:14px;
  border-radius:99px;
  background:linear-gradient(90deg, var(--purple), rgba(198,231,255,0.9));
}

.catalog-detail-ribbon{
  padding:38px 0 52px;
}
.catalog-detail-ribbon__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  flex-wrap:wrap;
  padding:22px 26px;
  border-radius:var(--radius-xl);
  background:
    radial-gradient(520px 220px at 0% 50%, rgba(255,230,242,0.55), transparent 70%),
    radial-gradient(520px 220px at 100% 50%, rgba(198,231,255,0.45), transparent 70%),
    linear-gradient(135deg, rgba(255,255,255,0.95), rgba(248,249,255,0.98));
  border:1px solid rgba(185,168,255,0.22);
  box-shadow:var(--shadow);
}
.catalog-detail-ribbon__text{
  margin:0;
  font-family:"Playfair Display", ui-serif, Georgia, serif;
  font-size:clamp(1.2rem, 2.2vw, 1.55rem);
  color:var(--deep);
}
.catalog-detail-ribbon__actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.catalog-detail--book .catalog-detail-badge{
  background:linear-gradient(135deg, #ffe6f2, #dcd7ff);
}
.catalog-detail--course .catalog-detail-badge{
  background:linear-gradient(135deg, #dcd7ff, #c6e7ff);
}
.catalog-detail--event .catalog-detail-badge{
  background:linear-gradient(135deg, #c6e7ff, #ffe6f2);
}

/* Light mode: match index.html airy hero — books, courses, events (dark unchanged below) */
html[data-theme="light"] .catalog-detail-hero,
html:not([data-theme="dark"]) .catalog-detail-hero{
  color:var(--text);
  background:
    radial-gradient(circle at center,
      rgba(255,255,255,0.98) 0%,
      rgba(255,255,255,0.92) 12%,
      rgba(255,230,242,0.9) 28%,
      rgba(220,215,255,0.87) 48%,
      rgba(198,231,255,0.84) 68%,
      rgba(185,168,255,0.82) 100%);
}
html[data-theme="light"] .catalog-detail-hero--has-cover .catalog-detail-hero__bg,
html:not([data-theme="dark"]) .catalog-detail-hero--has-cover .catalog-detail-hero__bg{
  background:
    linear-gradient(180deg, rgba(255,255,255,0.12) 0%, rgba(248,249,255,0.42) 100%),
    var(--catalog-cover);
  background-size:cover;
  background-position:center 28%;
}
html[data-theme="light"] .catalog-detail-hero:not(.catalog-detail-hero--has-cover) .catalog-detail-hero__bg,
html:not([data-theme="dark"]) .catalog-detail-hero:not(.catalog-detail-hero--has-cover) .catalog-detail-hero__bg{
  background:
    radial-gradient(900px 520px at 18% 0%, rgba(255,230,242,0.35), transparent 62%),
    radial-gradient(860px 480px at 88% 12%, rgba(198,231,255,0.32), transparent 60%),
    linear-gradient(180deg, rgba(226,236,255,0.55) 0%, rgba(255,255,255,0.92) 100%);
}
html[data-theme="light"] .catalog-detail-hero .catalog-detail-hero__veil,
html:not([data-theme="dark"]) .catalog-detail-hero .catalog-detail-hero__veil{
  background:
    radial-gradient(900px 520px at 50% -10%, rgba(198,231,255,0.36), rgba(255,255,255,0) 60%),
    radial-gradient(780px 460px at 20% 10%, rgba(255,230,242,0.22), rgba(255,255,255,0) 62%),
    radial-gradient(860px 520px at 90% 18%, rgba(185,168,255,0.22), rgba(255,255,255,0) 60%),
    linear-gradient(180deg,
      rgba(226,236,255,0.55) 0%,
      rgba(255,255,255,0.68) 34%,
      rgba(255,255,255,0.88) 100%);
}
html[data-theme="light"] .catalog-detail-hero .catalog-detail-hero__shine,
html:not([data-theme="dark"]) .catalog-detail-hero .catalog-detail-hero__shine{
  background:linear-gradient(115deg, transparent 30%, rgba(255,255,255,0.52) 48%, transparent 66%);
  opacity:0.55;
}
html[data-theme="light"] .catalog-detail-hero .hero-orb,
html:not([data-theme="dark"]) .catalog-detail-hero .hero-orb{
  opacity:0.58;
  mix-blend-mode:normal;
  filter:blur(10px);
}
html[data-theme="light"] .catalog-detail-hero .catalog-detail-title,
html:not([data-theme="dark"]) .catalog-detail-hero .catalog-detail-title{
  color:var(--deep);
  text-shadow:0 2px 24px rgba(255,255,255,0.8);
}
html[data-theme="light"] .catalog-detail-hero .catalog-detail-deck,
html:not([data-theme="dark"]) .catalog-detail-hero .catalog-detail-deck{
  color:rgba(54,56,96,0.88);
  text-shadow:0 1px 14px rgba(255,255,255,0.7);
}
html[data-theme="light"] .catalog-detail-hero .catalog-detail-back,
html:not([data-theme="dark"]) .catalog-detail-hero .catalog-detail-back{
  background:rgba(255,255,255,0.72);
  border:1px solid rgba(94,91,168,0.10);
  color:var(--deep);
  box-shadow:0 12px 28px rgba(94,91,168,0.06);
}
html[data-theme="light"] .catalog-detail-hero .catalog-detail-back:hover,
html:not([data-theme="dark"]) .catalog-detail-hero .catalog-detail-back:hover{
  background:rgba(255,255,255,0.92);
  border-color:rgba(185,168,255,0.28);
}
html[data-theme="light"] .catalog-detail-hero .catalog-detail-back__icon,
html:not([data-theme="dark"]) .catalog-detail-hero .catalog-detail-back__icon{
  background:rgba(185,168,255,0.14);
  color:var(--deep);
}
html[data-theme="light"] .catalog-detail-hero .catalog-detail-meta-pill,
html:not([data-theme="dark"]) .catalog-detail-hero .catalog-detail-meta-pill{
  background:rgba(255,255,255,0.88);
  border:1px solid rgba(185,168,255,0.22);
  color:var(--deep);
  box-shadow:0 10px 24px rgba(94,91,168,0.08);
}
html[data-theme="light"] .catalog-detail-hero .catalog-detail-hero-actions .btn,
html:not([data-theme="dark"]) .catalog-detail-hero .catalog-detail-hero-actions .btn{
  box-shadow:0 14px 30px rgba(94,91,168,0.14);
}

html[data-theme="dark"] .catalog-detail-cover-frame,
html[data-theme="dark"] .catalog-detail-aside-card,
html[data-theme="dark"] .catalog-detail-main{
  background:rgba(22,24,34,0.88);
  border-color:rgba(185,168,255,0.2);
}
html[data-theme="dark"] .catalog-detail-meta-pill{
  background:rgba(28,32,48,0.92);
  color:var(--text);
  border-color:rgba(185,168,255,0.28);
}
html[data-theme="dark"] .catalog-detail-ribbon__inner{
  background:
    radial-gradient(520px 220px at 0% 50%, rgba(94,91,168,0.35), transparent 70%),
    linear-gradient(135deg, rgba(22,24,34,0.95), rgba(28,30,42,0.98));
}
html[data-theme="dark"] .catalog-detail-main__title,
html[data-theme="dark"] .catalog-detail-price__value,
html[data-theme="dark"] .catalog-detail-ribbon__text{
  color:#eae6ff;
}

@media (max-width: 980px){
  .catalog-detail-grid{
    grid-template-columns:1fr;
  }
  .catalog-detail-aside{
    position:static;
    order:2;
  }
  .catalog-detail-main{
    order:1;
  }
  .catalog-detail-body{
    margin-top:-28px;
  }
  .catalog-detail-aside-actions{
    display:none;
  }
  .catalog-detail-hero{
    min-height:min(72vh, 520px);
    padding-bottom:56px;
  }
}
@media (max-width: 560px){
  .catalog-detail-main{
    padding:22px 18px 26px;
  }
  .catalog-detail-hero-actions .btn{
    width:100%;
    justify-content:center;
  }
}

/* Contact */
.form-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:14px;
}
.field{
  display:flex;
  flex-direction:column;
  gap:8px;
}
label{
  font-weight:900;
  color:var(--deep);
  font-size:0.95rem;
}
input, textarea, select{
  border-radius:16px;
  border:1px solid rgba(94,91,168,0.14);
  background:rgba(255,255,255,0.8);
  padding:12px 14px;
  color:var(--text);
  transition: box-shadow var(--transition), border-color var(--transition);
}
/* Contact + live consultation: inputs + topic select aligned (height + select = same corner radius as inputs) */
#contact-form .field input:not([type="checkbox"]):not([type="hidden"]),
#live-consultation .field input:not([type="checkbox"]):not([type="hidden"]){
  min-height:48px;
  height:48px;
  box-sizing:border-box;
  line-height:1.45;
  font-size:1rem;
  font-family:inherit;
}
#contact-form .field select,
#live-consultation .field select,
#contact-form #topic,
#live-consultation #consult_topic{
  min-height:48px;
  height:48px;
  box-sizing:border-box;
  line-height:1.45;
  font-size:1rem;
  font-family:inherit;
  border-radius:16px !important;
  -webkit-border-radius:16px !important;
  -webkit-appearance:none;
  -moz-appearance:none;
  appearance:none;
  padding-right:40px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24'%3E%3Cpath fill='%235E3FA8' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 14px center;
  background-size:14px 14px;
}
textarea{ min-height:120px; resize:vertical; }
input:focus, textarea:focus, select:focus{
  outline:none;
  border-color: rgba(185,168,255,0.45);
  box-shadow:0 0 0 4px rgba(185,168,255,0.22);
}
.checkbox-row{
  display:flex;
  gap:12px;
  align-items:flex-start;
  margin-top:10px;
}
.checkbox-row input{
  margin-top:4px;
  width:18px;
  height:18px;
}
.helper{
  color:var(--muted);
  font-weight:750;
  font-size:0.95rem;
}
.toast{
  margin-top:18px;
  padding:14px 16px;
  border-radius:18px;
  border:1px solid rgba(185,168,255,0.22);
  background: rgba(255,255,255,0.72);
  color: var(--deep);
  font-weight:900;
}

/* Footer */
.site-footer{
  padding:52px 0 28px;
  border-top:1px solid transparent;
  border-image:linear-gradient(90deg, rgba(185,168,255,0), rgba(185,168,255,0.35), rgba(198,231,255,0.28), rgba(185,168,255,0)) 1;
  color:var(--muted);
  background:
    radial-gradient(980px 520px at 50% 0%, rgba(185,168,255,0.14), rgba(252,252,255,0) 55%),
    radial-gradient(1200px 800px at 20% -10%, rgba(185,168,255,0.09), rgba(255,255,255,0) 60%),
    radial-gradient(900px 700px at 90% 10%, rgba(198,231,255,0.08), rgba(255,255,255,0) 58%),
    linear-gradient(180deg, #f9f8ff 0%, #f4f5fc 55%, #f0f2fb 100%);
  backdrop-filter:blur(12px) saturate(1.05);
  -webkit-backdrop-filter:blur(12px) saturate(1.05);
}

/* Footer layout */
.footer-grid{
  display:grid;
  grid-template-columns: 1.15fr 0.85fr 1fr;
  gap:18px;
  align-items:start;
}
.footer-brand h3{
  font-family:"Playfair Display", ui-serif, Georgia, "Times New Roman", Times, serif;
  color:var(--deep);
  margin:0;
  font-size:1.55rem;
  letter-spacing:-0.01em;
}
.footer-brand p{
  margin:12px 0 0;
  color:rgba(111,113,146,0.98);
  font-weight:780;
  max-width:430px;
  font-size:0.98rem;
  line-height:1.6;
}
.footer-cta{
  margin-top:16px;
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  align-items:center;
}
.footer-col-title{
  font-weight:920;
  color:var(--deep);
  margin-bottom:10px;
  letter-spacing:0.15px;
  font-size:0.95rem;
}
.footer-links{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.footer-links a{
  color:rgba(111,113,146,0.98);
  font-weight:800;
  padding:6px 10px;
  margin-left:-6px;
  border-radius:14px;
  transition: background var(--transition), color var(--transition);
  font-size:0.95rem;
}
.footer-links a:hover{
  color:var(--deep);
  background: rgba(248,249,255,0.8);
}
.footer-contact{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.footer-contact a{
  color:var(--deep);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.footer-line{
  color:rgba(111,113,146,0.98);
  font-weight:780;
  font-size:0.95rem;
  line-height:1.55;
}
.footer-social{
  margin-top:8px;
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.footer-social a{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:8px 10px;
  border-radius:999px;
  border:1px solid rgba(185,168,255,0.16);
  background: rgba(255,255,255,0.62);
  color:var(--deep);
  font-weight:840;
  font-size:0.93rem;
  transition: box-shadow var(--transition), background var(--transition);
}
.footer-social a:hover{
  box-shadow:0 14px 34px rgba(94,91,168,0.10);
  background: rgba(255,255,255,0.78);
}
.footer-bottom{
  margin-top:22px;
  padding-top:14px;
  border-top:1px solid rgba(185,168,255,0.14);
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  font-weight:820;
  color:rgba(111,113,146,0.98);
  font-size:0.92rem;
  line-height:1.45;
}

/* Modern footer panel (index) */
.footer-panel{
  position:relative;
  overflow:hidden;
  border-radius:28px;
  border:1px solid rgba(255,255,255,0.65);
  background:
    radial-gradient(820px 280px at 12% -8%, rgba(255,255,255,0.95), rgba(255,255,255,0) 58%),
    radial-gradient(720px 260px at 92% 4%, rgba(198,231,255,0.22), rgba(255,255,255,0) 56%),
    radial-gradient(680px 240px at 48% 112%, rgba(255,230,242,0.18), rgba(255,255,255,0) 52%),
    linear-gradient(165deg, rgba(255,255,255,0.94) 0%, rgba(248,246,255,0.88) 45%, rgba(252,250,255,0.92) 100%);
  box-shadow:
    0 1px 0 rgba(255,255,255,0.85) inset,
    0 24px 56px rgba(72,64,120,0.08),
    0 2px 0 rgba(185,168,255,0.06);
  padding:34px 32px 22px;
  backdrop-filter:blur(14px) saturate(1.08);
  -webkit-backdrop-filter:blur(14px) saturate(1.08);
}

.footer-panel::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  border-radius:inherit;
  background:
    radial-gradient(520px 180px at 20% 0%, rgba(185,168,255,0.12), rgba(255,255,255,0) 62%),
    radial-gradient(480px 160px at 88% 8%, rgba(255,230,242,0.10), rgba(255,255,255,0) 58%);
  opacity:0.85;
}

.footer-panel::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  border-radius:inherit;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.55);
  opacity:0.9;
}

.footer-panel > *{
  position:relative;
  z-index:1;
}

.footer-grid--modern{
  grid-template-columns:minmax(220px, 1.45fr) minmax(0, 0.85fr) minmax(0, 0.85fr) minmax(0, 0.85fr);
  gap:28px 32px;
  align-items:start;
}

.footer-brand--modern h3{
  margin:0;
  font-family:"Playfair Display", ui-serif, Georgia, "Times New Roman", Times, serif;
  color:var(--deep);
  font-size:1.42rem;
  letter-spacing:-0.02em;
  font-weight:650;
}

.footer-brand-head{
  display:flex;
  align-items:center;
  gap:12px;
}

.footer-mark{
  width:44px;
  height:44px;
  border-radius:14px;
  flex-shrink:0;
  display:grid;
  place-items:center;
  padding:5px;
  background:rgba(255,255,255,0.72);
  border:1px solid rgba(255,255,255,0.85);
  box-shadow:
    0 1px 0 rgba(255,255,255,0.95) inset,
    0 8px 20px rgba(94,91,168,0.1);
}
.footer-mark img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}

.footer-brand--modern p{
  margin-top:14px;
  color:rgba(88,90,118,0.92);
  font-weight:650;
  max-width:38ch;
  font-size:0.94rem;
  line-height:1.65;
  letter-spacing:0.01em;
}

.footer-grid--modern .footer-col-title{
  font-size:0.68rem;
  font-weight:900;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:rgba(94,91,168,0.72);
  margin-bottom:14px;
  padding-bottom:8px;
  border-bottom:1px solid rgba(94,91,168,0.1);
}

.footer-grid--modern .footer-links{
  gap:4px;
}

.footer-grid--modern .footer-links a{
  padding:8px 12px;
  margin-left:-12px;
  border-radius:12px;
  font-size:0.93rem;
  font-weight:680;
  color:rgba(82,84,112,0.95);
  text-decoration:none;
  border:1px solid transparent;
  transition:background 0.28s var(--ease-swift), color 0.28s var(--ease-swift), border-color 0.28s var(--ease-swift), transform 0.35s var(--ease-premium);
}

.footer-grid--modern .footer-links a:hover{
  color:var(--deep);
  background:rgba(255,255,255,0.72);
  border-color:rgba(185,168,255,0.18);
  transform:translateX(2px);
}

.footer-social-icons{
  margin-top:20px;
  display:flex;
  gap:11px;
  flex-wrap:wrap;
}

.footer-social-icons a{
  width:40px;
  height:40px;
  border-radius:14px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,0.75);
  background:linear-gradient(165deg, rgba(255,255,255,0.98), rgba(244,242,255,0.86));
  color:var(--deep);
  box-shadow:0 1px 0 rgba(255,255,255,0.9) inset, 0 8px 18px rgba(94,91,168,0.08);
  transition:background 0.3s var(--ease-swift), box-shadow 0.35s var(--ease-premium), transform 0.35s var(--ease-premium), border-color 0.28s var(--ease-swift);
}

.footer-social-icons a:hover{
  transform:translateY(-3px);
  background:rgba(255,255,255,1);
  border-color:rgba(185,168,255,0.35);
  box-shadow:
    0 1px 0 rgba(255,255,255,1) inset,
    0 14px 32px rgba(94,91,168,0.14);
}

.footer-social-icons svg{
  width:17px;
  height:17px;
  fill:currentColor;
  opacity:0.92;
}

.footer-bottom--modern{
  margin-top:26px;
  padding-top:20px;
  border-top:1px solid rgba(94,91,168,0.1);
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  flex-wrap:wrap;
}

.footer-copy{
  font-size:0.86rem;
  font-weight:720;
  letter-spacing:0.02em;
  color:rgba(111,113,146,0.92);
}

.footer-legal{
  display:flex;
  align-items:center;
  gap:6px 14px;
  flex-wrap:wrap;
}

.footer-legal a{
  font-size:0.84rem;
  font-weight:760;
  color:rgba(94,91,168,0.78);
  text-decoration:none;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid transparent;
  transition:background 0.28s var(--ease-swift), color 0.28s var(--ease-swift), border-color 0.28s var(--ease-swift);
}

.footer-legal a:hover{
  color:var(--deep);
  background:rgba(255,255,255,0.75);
  border-color:rgba(185,168,255,0.22);
}

@media (max-width: 980px){
  .footer-panel{
    padding:22px 18px 14px;
    border-radius:24px;
  }

  .footer-grid--modern{
    grid-template-columns:1fr 1fr;
    gap:14px 16px;
  }

  .footer-brand--modern{
    grid-column:1 / -1;
  }

  .footer-brand--modern p{
    max-width:none;
    font-size:0.94rem;
    line-height:1.5;
  }

  .footer-links{
    gap:6px;
  }

  .footer-links a{
    font-size:0.92rem;
    padding:5px 8px;
    margin-left:-4px;
  }

  .footer-grid--modern .footer-links a{
    padding:7px 10px;
    margin-left:-10px;
  }

  .footer-bottom--modern{
    margin-top:18px;
    padding-top:16px;
    gap:12px;
    flex-direction:column;
    align-items:flex-start;
  }

  .footer-legal{
    gap:8px 10px;
  }
}

@media (max-width: 860px){
  /* Keep modern footer clear and non-vertical on smaller phones */
  .footer-grid.footer-grid--modern{
    grid-template-columns:1fr 1fr;
  }
}

@media (max-width: 560px){
  .footer-panel{
    padding:18px 14px 12px;
    border-radius:20px;
  }

  .footer-grid.footer-grid--modern{
    grid-template-columns:1fr;
    gap:12px;
  }

  .footer-brand--modern{
    grid-column:auto;
  }

  .footer-social-icons{
    gap:8px;
  }

  .footer-social-icons a{
    width:32px;
    height:32px;
  }
}

@media (max-width: 860px){
  .footer-grid{
    grid-template-columns: 1fr;
  }
}

/* Hero CTA panel */
.final-cta{
  text-align:center;
  padding:56px 18px;
  border-radius:calc(var(--radius-xl) + 8px);
  background:
    radial-gradient(850px 320px at 50% 0%, rgba(255,255,255,0.95), rgba(255,255,255,0) 60%),
    radial-gradient(650px 320px at 15% 30%, rgba(255,230,242,0.55), rgba(255,255,255,0) 62%),
    radial-gradient(650px 320px at 85% 30%, rgba(185,168,255,0.50), rgba(255,255,255,0) 62%),
    rgba(255,255,255,0.78);
  border:1px solid rgba(185,168,255,0.16);
  box-shadow: var(--shadow);
  position:relative;
  overflow:hidden;
}
.final-cta::after{
  content:"";
  position:absolute;
  inset:-1px;
  background: radial-gradient(circle at 50% 30%, rgba(185,168,255,0.22), rgba(255,255,255,0) 55%);
  pointer-events:none;
  opacity:0.9;
}
.final-cta > *{ position:relative; z-index:1; }
.final-cta .h2{ font-size:2.22rem; margin-bottom:12px; }
.final-cta p{ margin:0 auto 26px; max-width:720px; color:rgba(54,56,96,0.92); font-weight:780; }

/* Partners marquee */
#partners{
  overflow:hidden;
  padding-top:34px;
  padding-bottom:34px;
}

.partners-strip{
  position:relative;
  overflow:hidden;
  padding:10px 0;
  width:100%;
  background: transparent;
  display:flex;
  flex-direction:column;
  gap:12px;
}

.partners-strip::before,
.partners-strip::after{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  width:120px;
  z-index:2;
  pointer-events:none;
}

.partners-strip::before{
  left:0;
  background:linear-gradient(90deg, rgba(248,249,255,1), rgba(248,249,255,0));
}

.partners-strip::after{
  right:0;
  background:linear-gradient(270deg, rgba(248,249,255,1), rgba(248,249,255,0));
}

.partners-track{
  display:flex;
  align-items:center;
  gap:54px;
  width:max-content;
  animation: partnersSlide 44s linear infinite;
  padding:4px 24px;
}

.partners-track--right{
  animation-name: partnersSlideReverse;
  animation-duration: 52s;
}

.partner-logo{
  display:inline-flex;
  align-items:center;
  white-space:nowrap;
  color: rgba(61,61,87,0.46);
  font-weight:900;
  font-size:1.7rem;
  line-height:1;
  letter-spacing:-0.01em;
  text-transform:none;
  filter: grayscale(1);
  opacity:0.9;
}

/* Media carousel (between books and membership) */
#media-carousel .section-subtitle{
  margin-bottom:30px;
}

.media-strip{
  position:relative;
  width:100%;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  gap:14px;
  padding:4px 0;
}

.media-track{
  display:flex;
  align-items:center;
  gap:14px;
  width:max-content;
  animation: mediaSlide 44s linear infinite;
}

.media-track--right{
  animation-name: mediaSlideReverse;
  animation-duration: 50s;
}

.media-item{
  flex:0 0 clamp(180px, 18vw, 260px);
  width:clamp(180px, 18vw, 260px);
  aspect-ratio:4/5;
  border-radius:20px;
  overflow:hidden;
  border:1px solid rgba(185,168,255,0.18);
  box-shadow:0 14px 30px rgba(94,91,168,0.10);
  background:linear-gradient(180deg, rgba(255,255,255,0.90), rgba(245,247,255,0.82));
}

.media-item img,
.media-item video{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

@keyframes mediaSlide{
  from{ transform:translateX(0); }
  to{ transform:translateX(-50%); }
}

@keyframes mediaSlideReverse{
  from{ transform:translateX(-50%); }
  to{ transform:translateX(0); }
}

/* Modal (simple, accessible) */
.modal-backdrop{
  position:fixed;
  inset:0;
  background: rgba(29,29,45,0.38);
  backdrop-filter: blur(7px);
  display:none;
  align-items:center;
  justify-content:center;
  z-index:2000;
  padding:18px;
}
.modal-backdrop.open{ display:flex; }
.modal{
  width:min(720px, 100%);
  border-radius:var(--radius-xl);
  border:1px solid rgba(185,168,255,0.20);
  background: rgba(255,255,255,0.92);
  box-shadow:0 30px 80px rgba(94,91,168,0.26);
  overflow:hidden;
}
.modal-head{
  padding:18px 18px 0;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.modal-title{
  margin:0;
  font-family:"Playfair Display", ui-serif, Georgia, "Times New Roman", Times, serif;
  font-size:1.6rem;
  color:var(--deep);
}
.modal-close{
  border:1px solid rgba(94,91,168,0.14);
  background:rgba(255,255,255,0.75);
  border-radius:999px;
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  cursor:pointer;
  transition: transform var(--transition), box-shadow var(--transition);
}
.modal-close:hover{ transform: translateY(-2px); box-shadow: 0 12px 28px rgba(94,91,168,0.10); }
.modal-body{
  padding:16px 18px 18px;
}
.modal-copy{
  margin:8px 0 16px;
  color:var(--muted);
  font-weight:780;
}

/* ------------------------------------------------------------------ */
/* Compatibility styles for the existing starter markup in `index.html` */
/* (keeps the transformation focused on premium content + structure). */
/* ------------------------------------------------------------------ */
h1, h2, h3{
  font-family:"Playfair Display", ui-serif, Georgia, "Times New Roman", Times, serif;
}
h1{
  font-size:clamp(2.5rem, 5vw, 4.5rem);
  line-height:1.06;
  color:var(--deep);
  margin:18px 0 0;
  letter-spacing:-0.02em;
}

header{
  position:sticky;
  top:0;
  z-index:1000;
  backdrop-filter: blur(12px) saturate(1.03);
  -webkit-backdrop-filter: blur(12px) saturate(1.03);
  background: rgba(255,255,255,0.68);
  border-bottom:1px solid var(--line);
  transition: background var(--transition), box-shadow var(--transition);
}
header.scrolled{
  backdrop-filter: blur(12px) saturate(1.03);
  -webkit-backdrop-filter: blur(12px) saturate(1.03);
  background:rgba(255,255,255,0.9);
  box-shadow:0 10px 28px rgba(94,91,168,0.08);
}

.nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:76px;
  gap:20px;
}
.logo{
  display:inline-flex;
  align-items:center;
  color:var(--deep);
  flex-shrink:0;
}
.logo-picture{
  display:block;
  line-height:0;
  height:62px;
  width:230px;
  overflow:hidden;
}
.logo-img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:left center;
  filter:none;
}
@media (min-width: 861px){
  .logo-img{
    object-fit:contain;
    object-position:center;
  }
}
html[data-theme="dark"] .logo-img{
  filter: drop-shadow(0 0 10px rgba(170, 140, 255, 0.3));
}
.nav-links{
  display:flex;
  align-items:center;
  gap:26px;
  color:var(--muted);
  font-size:0.96rem;
}
.nav-links a{
  position:relative;
  transition: color var(--transition);
  padding:10px 0;
}
.nav-links a:hover{ color:var(--deep); }
.nav-links a::after{
  content:"";
  position:absolute;
  left:0;
  bottom:4px;
  width:0%;
  height:2px;
  border-radius:999px;
  background:linear-gradient(90deg, var(--purple), var(--blue));
  transition: width var(--transition);
}
.nav-links a:hover::after{ width:100%; }

/* Hero (starter markup expects `.hero-content` + `.hero p` + `.hero-buttons`) */
.hero{
  background:
    radial-gradient(circle at center,
      rgba(255,255,255,0.98) 0%,
      rgba(255,255,255,0.92) 12%,
      rgba(255,230,242,0.9) 28%,
      rgba(220,215,255,0.87) 48%,
      rgba(198,231,255,0.84) 68%,
      rgba(185,168,255,0.82) 100%);
}
.hero-content{
  text-align:center;
  transition: transform 0.25s ease;
  will-change: transform;
  position:relative;
  z-index:1;
}
.hero p{
  max-width:670px;
  margin: 0 auto 30px;
  color:#56587a;
  font-size:1.06rem;
}
.hero-buttons{
  display:flex;
  justify-content:center;
  gap:14px;
  flex-wrap:wrap;
}

/* Starter orbs */
.hero-orb{
  position:absolute;
  border-radius:50%;
  filter: blur(10px);
  pointer-events:none;
  opacity:0.58;
}
.orb-1{
  width:240px;
  height:240px;
  top:80px;
  left:8%;
  background: radial-gradient(circle, rgba(255,255,255,0.9), rgba(255,230,242,0.4), rgba(255,230,242,0));
  animation: driftOne 13s ease-in-out infinite alternate;
}
.orb-2{
  width:280px;
  height:280px;
  right:8%;
  bottom:40px;
  background: radial-gradient(circle, rgba(255,255,255,0.85), rgba(198,231,255,0.4), rgba(198,231,255,0));
  animation: driftTwo 15s ease-in-out infinite alternate;
}

.soft-section{ background:var(--section); }

.section-title{
  text-align:center;
  margin-bottom:12px;
  font-size:2rem;
  color:var(--deep);
}
.section-subtitle{
  text-align:center;
  max-width:700px;
  margin:0 auto 42px;
  color:var(--muted);
}

/* Starter `cards` grid */
.cards{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:24px;
}
.card{
  background: rgba(255,255,255,0.88);
  border:1px solid rgba(185,168,255,0.16);
  border-radius: var(--radius-xl);
  padding:28px;
  box-shadow: var(--shadow);
  transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition);
}
.card-icon{
  width:54px;
  height:54px;
  display:grid;
  place-items:center;
  margin-bottom:18px;
  border-radius:18px;
  background: linear-gradient(180deg, rgba(255,255,255,0.95), rgba(220,215,255,0.75));
  color:var(--deep);
  font-size:1.35rem;
  box-shadow:0 10px 24px rgba(94,91,168,0.1);
}
.card h3{
  font-size:1.12rem;
  color:var(--deep);
  margin-bottom:10px;
}
.card p{
  color:var(--muted);
  font-size:0.96rem;
}
.card:hover{
  transform: translateY(-6px);
  box-shadow: var(--shadow-strong);
}

.stats{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:22px;
  margin-top:34px;
}
.stat{
  background: rgba(255,255,255,0.9);
  border:1px solid rgba(185,168,255,0.12);
  border-radius:22px;
  padding:24px;
  text-align:center;
  box-shadow: var(--shadow);
}
.stat-number{
  font-size:2rem;
  line-height:1;
  color:var(--deep);
  margin-bottom:8px;
  font-weight:900;
}
.stat-label{
  color:var(--muted);
  font-size:0.95rem;
  font-weight:850;
}
.stat-sub{
  margin-top:8px;
  color:rgba(111,113,146,0.72);
  font-size:0.8rem;
  line-height:1.4;
  font-weight:500;
}

.testimonial-wrap{
  max-width:830px;
  margin:0 auto;
}
.testimonial{
  position:relative;
  background: linear-gradient(180deg, rgba(255,255,255,0.96), rgba(255,255,255,0.88));
  border:1px solid rgba(185,168,255,0.12);
  border-radius:28px;
  box-shadow: var(--shadow);
  padding:38px 34px;
  min-height:220px;
  overflow:hidden;
}
.quote-mark{
  font-size:3rem;
  color: rgba(94,91,168,0.18);
  line-height:1;
  margin-bottom:10px;
}
.testimonial-text{
  font-size:1.08rem;
  color:var(--text);
  margin-bottom:18px;
}
.testimonial-author{
  color:var(--deep);
  font-weight:900;
}
.testimonial-role{
  font-size:0.92rem;
  color:var(--muted);
  font-weight:850;
}

.dots{
  display:flex;
  justify-content:center;
  gap:10px;
  margin-top:18px;
}
.dot{
  width:10px;
  height:10px;
  border-radius:50%;
  border:0;
  background: rgba(94,91,168,0.18);
  cursor:pointer;
  transition: transform var(--transition), background var(--transition);
}
.dot.active{
  transform: scale(1.2);
  background: linear-gradient(180deg, var(--purple), var(--deep));
}

.cta{
  position:relative;
  overflow:hidden;
  text-align:center;
  border-radius:30px;
  padding:58px 24px;
  background:
    radial-gradient(circle at center,
      rgba(255,255,255,0.95) 0%,
      rgba(255,230,242,0.9) 24%,
      rgba(220,215,255,0.87) 48%,
      rgba(198,231,255,0.84) 72%,
      rgba(185,168,255,0.82) 100%);
  box-shadow: var(--shadow);
  border:1px solid rgba(185,168,255,0.14);
}
.cta::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at center,
      rgba(255,255,255,0.95) 0%,
      rgba(255,255,255,0.2) 24%,
      rgba(255,255,255,0) 44%);
  pointer-events:none;
  opacity:0.85;
}
.cta > *{ position:relative; z-index:1; }
.cta h2{
  font-size:2rem;
  color:var(--deep);
  margin-bottom:14px;
}
.cta p{
  max-width:650px;
  margin:0 auto 24px;
  color:#56587a;
}

/* Responsive */
@media (max-width: 980px){
  .hero-grid{ grid-template-columns: 1fr; }
  .hero-copy{ text-align:center; }
  .hero-actions{ justify-content:center; }
  .two-col{ grid-template-columns: 1fr; }
  .steps{ grid-template-columns: 1fr; }
  #story .story-sequence{ min-height:auto; }
  #story .story-sticky{
    position:static;
    min-height:auto;
  }
  #story .story-layout{
    grid-template-columns:1fr;
    gap:14px;
    min-height:auto;
  }
  #story .story-morph{
    position:relative;
    inset:auto;
    height:260px;
    margin:10px 0 8px;
    z-index:1;
    opacity:1 !important;
    transform:none !important;
  }
  #story .story-steps{
    opacity:1 !important;
    transform:none !important;
    pointer-events:auto !important;
    grid-column:auto;
  }
  .grid-3{ grid-template-columns: 1fr; }
  .row-3{ grid-template-columns: 1fr; }
  /* Stats row (benefits / .stats): stack on narrow screens */
  .stats{
    grid-template-columns: 1fr;
    gap: 16px;
    margin-top: 28px;
  }
  .stat{
    min-width: 0;
    overflow: visible;
    padding: 22px 20px;
  }
  .product-grid{ grid-template-columns: 1fr; }
  /* Featured books: override fixed 4-col grid (was squeezing cards on mobile) */
  #featured-books .product-grid{
    grid-template-columns: 1fr;
    gap: 20px;
  }
  #featured-books .product-top{
    height: min(220px, 52vw);
    min-height: 180px;
  }
  .blog-feature{ grid-template-columns: 1fr; }
  .compare-grid{ grid-template-columns: 1fr; }
  .compare-header, .compare-left, .compare-cell{ text-align:left; }
  .compare-row{ display:block; }
  .compare-cell.left{ padding-top:10px; padding-bottom:10px; }
}

@media (max-width: 640px){
  #featured-books .product-actions{
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }
  #featured-books .product-actions .btn{
    width: 100%;
    justify-content: center;
  }
  #featured-books .product-desc{
    min-height: 0;
  }

  .stat{
    padding: 20px 16px;
  }
  .stat-number{
    font-size: clamp(1.85rem, 7vw, 2.1rem);
  }
  .stat-label{
    font-size: 0.92rem;
    line-height: 1.35;
  }
  .stat-sub{
    font-size: 0.84rem;
    line-height: 1.5;
  }
}

@media (min-width: 641px) and (max-width: 980px){
  #featured-books .product-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .stats{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .stats .stat:nth-child(3){
    grid-column: 1 / -1;
    max-width: 560px;
    margin-inline: auto;
    width: 100%;
  }
}

@keyframes rotateRays{
  from{ transform: translate(-50%, -50%) rotate(0deg); }
  to{ transform: translate(-50%, -50%) rotate(360deg); }
}
@keyframes driftOne{
  0%{ transform: translate(0,0) scale(1); }
  100%{ transform: translate(18px,-18px) scale(1.06); }
}
@keyframes driftTwo{
  0%{ transform: translate(0,0) scale(1); }
  100%{ transform: translate(-16px,14px) scale(1.05); }
}
@keyframes heroAtmosphereFloat{
  0%{ transform: translate3d(0,0,0) scale(1); opacity:1; }
  100%{ transform: translate3d(0,-12px,0) scale(1.035); opacity:0.92; }
}

@keyframes heroSkyDrift{
  0%{ transform: translate3d(0, 0, 0) scale(1); opacity:0.95; }
  100%{ transform: translate3d(0, -10px, 0) scale(1.02); opacity:0.88; }
}

@keyframes heroWaterDrift{
  0%{ transform: translate3d(0, 0, 0) scale(1); opacity:0.42; }
  100%{ transform: translate3d(0, -14px, 0) scale(1.03); opacity:0.36; }
}

@keyframes bodyShapesFloat{
  0%{ transform: translate3d(0,0,0) scale(1); opacity:0.26; }
  100%{ transform: translate3d(0,-8px,0) scale(1.015); opacity:0.2; }
}

@keyframes partnersSlide{
  from{ transform: translateX(0); }
  to{ transform: translateX(-50%); }
}

@keyframes partnersSlideReverse{
  from{ transform: translateX(-50%); }
  to{ transform: translateX(0); }
}

@keyframes booksSlide{
  from{ transform: translateX(0); }
  to{ transform: translateX(-50%); }
}

/* Scene-based section backplates (background-only, minimal) */
#story::before,
#benefits::before,
#journeys::before,
#featured-books::before,
#membership-preview::before,
#testimonials::before,
#final-cta::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:0;
  opacity:0.55;
  mix-blend-mode:soft-light;
  filter: blur(0.4px);
}

#story::before{
  background: none;
}

#benefits::before{
  background: none;
}

#journeys::before{
  background:
    radial-gradient(1000px 420px at 50% 0%, rgba(198,231,255,0.18), rgba(255,255,255,0) 62%),
    radial-gradient(820px 360px at 100% 35%, rgba(185,168,255,0.16), rgba(255,255,255,0) 62%);
}

/* Index #journeys swiper only: “Detaje” (.btn-ghost) sits on full-bleed cover + dark scrim — keep readable in site light mode (do not restyle the whole section). */
#journeys .journeys-swiper .product-actions a.btn.btn-ghost,
#journeys .journeys-swiper .product-actions .btn.btn-ghost{
  border-color:rgba(190,200,230,0.28);
  color:rgba(248,250,255,0.96);
}
#journeys .journeys-swiper .product-actions a.btn.btn-ghost:hover,
#journeys .journeys-swiper .product-actions .btn.btn-ghost:hover{
  background:rgba(42,50,74,0.44);
  border-color:rgba(198,210,255,0.38);
  color:#fff;
}
#journeys .journeys-swiper .product-actions a.btn.btn-ghost:focus-visible,
#journeys .journeys-swiper .product-actions .btn.btn-ghost:focus-visible{
  box-shadow:0 0 0 4px rgba(185,168,255,0.28);
}

#featured-books::before{
  background:
    radial-gradient(900px 360px at 50% 0%, rgba(255,230,242,0.16), rgba(255,255,255,0) 62%),
    linear-gradient(180deg, rgba(255,255,255,0.22), rgba(255,255,255,0) 60%);
}

#membership-preview::before{
  background:
    radial-gradient(1000px 420px at 50% 0%, rgba(185,168,255,0.18), rgba(255,255,255,0) 62%),
    linear-gradient(180deg, rgba(255,255,255,0.18), rgba(255,255,255,0) 60%);
}

#testimonials::before{
  background:
    radial-gradient(900px 360px at 50% 0%, rgba(198,231,255,0.16), rgba(255,255,255,0) 62%),
    radial-gradient(700px 300px at 0% 40%, rgba(255,230,242,0.12), rgba(255,255,255,0) 60%);
}

#final-cta::before{
  background:
    radial-gradient(900px 360px at 50% 0%, rgba(185,168,255,0.20), rgba(255,255,255,0) 64%),
    linear-gradient(180deg, rgba(255,255,255,0.24), rgba(255,255,255,0) 60%);
}

/* Journey experience cards: less “service tiles”, more “stages” */
#journeys .row-3{
  gap:24px;
}

#journeys .journeys-swiper{
  overflow:visible;
  padding:8px 2px 14px;
}

/* Journeys slider block: slow cinematic section entry */
#journeys .journeys-swiper.reveal{
  --reveal-y: 36px;
  filter: blur(0.35px);
  transition:
    opacity 1.7s var(--ease-premium),
    transform 2s var(--ease-silk),
    filter 1.2s var(--ease-silk);
}

#journeys .journeys-swiper .swiper-slide{
  height:auto;
  opacity:0.42;
  transform:scale(0.9);
  filter:saturate(0.88) brightness(0.9);
  transition:opacity 0.38s var(--ease-premium), transform 0.38s var(--ease-premium), filter 0.38s var(--ease-silk);
}

#journeys .journeys-swiper .card{
  height:100%;
  min-height:520px;
  padding:0 !important;
  border-radius:24px;
  overflow:hidden;
  border:0;
  background:transparent;
  box-shadow:none;
  position:relative;
}

#journeys .journeys-swiper .card::before{
  display:none;
}

#journeys .journeys-swiper .swiper-slide-active{
  opacity:1;
  transform:scale(1);
  filter:none;
}

#journeys .journeys-swiper .product-top{
  height:100%;
  min-height:520px;
  border-radius:24px;
  position:relative;
  overflow:hidden;
  border:0;
  background:transparent;
}

#journeys .journeys-swiper .product-top img{
  width:100%;
  height:100%;
  object-fit:cover;
}

/* Keep swiper cards image-only (override generic journey card skin). */
#journeys .journeys-swiper .card{
  background:transparent !important;
  box-shadow:none !important;
}

#journeys .journeys-swiper .product-title,
#journeys .journeys-swiper .product-desc,
#journeys .journeys-swiper .product-actions{
  position:absolute;
  left:28px;
  right:28px;
  z-index:2;
}

#journeys .journeys-swiper .product-title{
  bottom:138px;
  margin:0;
  color:#fff;
  text-shadow:0 10px 24px rgba(20,22,35,0.5);
  text-align:center;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  line-clamp:2;
  overflow:hidden;
}

#journeys .journeys-swiper .product-desc{
  bottom:58px;
  min-height:auto;
  margin:0;
  color:rgba(255,255,255,0.9);
  text-shadow:0 8px 20px rgba(20,22,35,0.42);
  text-align:center;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
  line-clamp:3;
  overflow:hidden;
  text-overflow:ellipsis;
}

#journeys .journeys-swiper .product-actions{
  bottom:16px;
  margin:0;
  justify-content:center;
}

#journeys .journeys-swiper .price{
  color:#fff;
  text-shadow:0 8px 20px rgba(20,22,35,0.5);
  text-align:center;
}

#journeys .journeys-swiper .card::after{
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:52%;
  pointer-events:none;
  background:linear-gradient(180deg, rgba(10,12,24,0.02) 4%, rgba(10,12,24,0.42) 46%, rgba(10,12,24,0.84) 100%);
}

#journeys .card{
  min-height:340px;
  padding:34px 26px;
  border-radius:34px;
  background: rgba(255,255,255,0.82);
  box-shadow: 0 26px 70px rgba(94,91,168,0.10), inset 0 1px 0 rgba(255,255,255,0.60);
}

#journeys .card h3{
  font-size:1.58rem;
  letter-spacing:-0.02em;
  margin:18px 0 10px;
}

#journeys .card .subhead{
  color:rgba(54,56,96,0.86);
  font-size:1.02rem;
}

#journeys .pill{
  background: rgba(185,168,255,0.10);
  border-color: rgba(185,168,255,0.18);
  box-shadow:none;
}

#journeys .card-glow::before{
  opacity:0.55;
}

#journeys .card-glow:hover::before{
  opacity:0.95;
}

#journeys .card-footer{
  margin-top:20px;
}

#journeys .meta{
  color:rgba(111,113,146,0.92);
  font-weight:800;
  font-size:0.94rem;
}

#journeys .journeys-nav{
  margin-top:12px;
  display:flex;
  justify-content:center;
  align-items:center;
  gap:14px;
}

#journeys .journeys-nav.reveal{
  --reveal-y: 22px;
  transition:
    opacity 1.25s var(--ease-premium),
    transform 1.55s var(--ease-silk),
    filter 1s var(--ease-silk);
}

/* Slow only courses cards reveal (keep section headings/buttons unchanged). */
#journeys .reveal-card{
  --reveal-y: 34px;
  filter: blur(0.35px);
  transition:
    opacity 1.7s var(--ease-premium),
    transform 2.05s var(--ease-silk),
    filter 1.1s var(--ease-silk);
}

/* Slow only membership package cards reveal. */
#membership-preview .reveal-card{
  --reveal-y: 30px;
  filter: blur(0.35px);
  transition:
    opacity 1.6s var(--ease-premium),
    transform 1.95s var(--ease-silk),
    filter 1.05s var(--ease-silk);
}

/* Membership directional reveal: left card from left, right card from right. */
#membership-preview .row-3 > .reveal-card:first-child{
  --reveal-x: -56px;
  --reveal-y: 0px;
}

#membership-preview .row-3 > .reveal-card:last-child{
  --reveal-x: 56px;
  --reveal-y: 0px;
}

#membership-preview .membership-featured{
  position:relative;
  border:1px solid rgba(185,168,255,0.34);
  box-shadow:
    0 24px 58px rgba(94,91,168,0.16),
    0 0 0 1px rgba(255,255,255,0.62) inset;
  transform:translateY(-4px);
}

#membership-preview .membership-featured .membership-badge{
  position:absolute;
  top:14px;
  right:14px;
  z-index:2;
  padding:7px 12px;
  border-radius:999px;
  font-size:0.76rem;
  font-weight:800;
  color:var(--deep);
  background:linear-gradient(90deg, rgba(185,168,255,0.28), rgba(198,231,255,0.26), rgba(255,230,242,0.3));
  border:1px solid rgba(185,168,255,0.34);
}

#journeys .journeys-nav-btn{
  appearance:none;
  border:1px solid rgba(94,91,168,0.14);
  background:rgba(255,255,255,0.78);
  color:var(--deep);
  border-radius:999px;
  padding:9px 16px;
  font-weight:760;
  letter-spacing:0.1px;
  cursor:pointer;
  transition:transform 0.28s var(--ease-premium), box-shadow 0.28s var(--ease-premium), background 0.28s var(--ease-swift);
}

#journeys .journeys-nav-btn:hover{
  transform:translateY(-2px);
  background:rgba(255,255,255,0.9);
  box-shadow:0 12px 26px rgba(94,91,168,0.12);
}

#journeys .journeys-buy-btn{
  min-width:150px;
}

/* Journey progression tiles (story/benefits) */
#story .step{
  background: rgba(255,255,255,0.80);
  border-color: rgba(185,168,255,0.14);
  box-shadow: 0 22px 70px rgba(94,91,168,0.08), inset 0 1px 0 rgba(255,255,255,0.55);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

#benefits .card{
  background: rgba(255,255,255,0.78);
  border-color: rgba(185,168,255,0.14);
  box-shadow: 0 20px 60px rgba(94,91,168,0.08), inset 0 1px 0 rgba(255,255,255,0.55);
}

/* Benefits journey two-column layout (text stages + Valentina image) */
#benefits .benefits-two-col{
  margin-top:18px;
  position:relative;
  z-index:1;
  transition: opacity 0.75s var(--ease-premium), transform 0.75s var(--ease-premium);
}

#benefits .benefits-left{
  display:flex;
  flex-direction:column;
  gap:14px;
  position:relative;
  min-height:520px;
}

#benefits .benefits-more{
  margin-top:22px;
  display:flex;
  flex-direction:column;
  gap:14px;
}

/* Image card stays calm (no reveal animation) */
#benefits .benefits-image-card{
  padding:0 !important;
  overflow:hidden;
  background: rgba(255,255,255,0.60);
  box-shadow: 0 22px 70px rgba(94,91,168,0.10), inset 0 1px 0 rgba(255,255,255,0.55);
  border-color: rgba(185,168,255,0.16);
  width:min(100%, 430px);
  margin-left:auto;
  margin-right:auto;
  align-self:flex-start;
  border-radius:26px;
  opacity:0;
  transform: translate3d(34px, 0, 0);
  transition: opacity 1.2s var(--ease-silk), transform 1.2s var(--ease-silk);
}

#benefits .benefits-image-card img{
  width:100%;
  aspect-ratio: 4 / 5;
  height:auto;
  object-fit:cover;
  display:block;
}

#benefits .benefits-left .card h3{
  font-size:1.35rem;
  margin:10px 0 8px;
}

#benefits .benefits-left .card p{
  color: rgba(111,113,146,0.98);
  font-weight:800;
}

#benefits .benefits-sequence{
  position:relative;
  margin-top:18px;
  min-height:190vh;
}

#benefits .benefits-sticky{
  position:sticky;
  top: calc(var(--header-h) + 18px);
  min-height:68vh;
}

#benefits .benefits-stage-group{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  gap:14px;
  transition: opacity 0.85s var(--ease-silk), transform 0.85s var(--ease-silk);
}

#benefits .benefits-stage-one{
  opacity:0;
  transform: translateY(14px);
  pointer-events:none;
}

#benefits .benefits-stage-two{
  opacity:0;
  transform: translateY(10px);
  pointer-events:none;
}

#benefits .benefits-seq-card{
  transition: transform 0.6s var(--ease-premium), opacity 0.6s var(--ease-premium);
}

/* Stage-one left side: text-only (no card surface) */
#benefits .benefits-stage-one .benefits-seq-card{
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  padding: 4px 2px 10px !important;
  border-radius: 0 !important;
  opacity: 0;
  transform: translate3d(-28px, 8px, 0);
  transition:
    opacity 1.2s var(--ease-silk),
    transform 1.2s var(--ease-silk);
}

#benefits .benefits-stage-one .benefits-seq-card::before{
  display:none !important;
}

#benefits .benefits-stage-one .benefits-seq-card h3{
  margin: 0 0 8px !important;
  font-size: 1.34rem;
  letter-spacing: -0.01em;
  color: var(--deep);
}

#benefits .benefits-stage-one .benefits-seq-card p{
  margin: 0;
  max-width: 52ch;
  color: rgba(111,113,146,0.95) !important;
  font-weight: 760 !important;
}

#benefits .benefits-stage-one .benefits-seq-card:nth-child(1){ transition-delay: 0.04s; }
#benefits .benefits-stage-one .benefits-seq-card:nth-child(2){ transition-delay: 0.16s; }
#benefits .benefits-stage-one .benefits-seq-card:nth-child(3){ transition-delay: 0.28s; }

/* Stage-two left side: text-only as well */
#benefits .benefits-stage-two .benefits-seq-card{
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  padding: 4px 2px 10px !important;
  border-radius: 0 !important;
  opacity: 0;
  transform: translateY(16px);
  transition:
    opacity 0.95s var(--ease-silk),
    transform 0.95s var(--ease-silk);
}

#benefits .benefits-stage-two .benefits-seq-card::before{
  display:none !important;
}

#benefits .benefits-stage-two .benefits-seq-card h3{
  margin: 0 0 8px !important;
  font-size: 1.34rem;
  letter-spacing: -0.01em;
  color: var(--deep);
}

#benefits .benefits-stage-two .benefits-seq-card p{
  margin: 0;
  max-width: 52ch;
  color: rgba(111,113,146,0.95) !important;
  font-weight: 760 !important;
}

#benefits .benefits-stage-two .benefits-seq-card:nth-child(1){ transition-delay: 0.04s; }
#benefits .benefits-stage-two .benefits-seq-card:nth-child(2){ transition-delay: 0.16s; }
#benefits .benefits-stage-two .benefits-seq-card:nth-child(3){ transition-delay: 0.28s; }

#benefits .benefits-stats{
  margin-top:16px;
  opacity:0;
  transform: translateY(14px);
  pointer-events:none;
  transition: opacity 0.9s var(--ease-silk), transform 0.9s var(--ease-silk);
}

/* Tighten rhythm between dense storytelling sections */
#benefits.section,
#journeys.section,
#featured-books.section,
#media-carousel.section,
#membership-preview.section{
  padding-top:44px;
  padding-bottom:44px;
}

#benefits[data-stage="2"] .benefits-stage-one{
  opacity:0;
  transform: translateY(-10px);
  pointer-events:none;
}

#benefits[data-stage="2"] .benefits-stage-two{
  opacity:1;
  transform: translateY(0);
  pointer-events:auto;
}

#benefits[data-stage="2"] .benefits-stage-two .benefits-seq-card{
  opacity:1;
  transform: translateY(0);
}

#benefits[data-stage="3"] .benefits-stage-one{
  opacity:0;
  transform: translateY(-10px);
  pointer-events:none;
}

#benefits[data-stage="3"] .benefits-stage-two{
  opacity:1;
  transform: translateY(0);
  pointer-events:auto;
}

#benefits[data-stage="3"] .benefits-stage-two .benefits-seq-card{
  opacity:1;
  transform: translateY(0);
}

#benefits[data-stage="3"] .benefits-two-col{
  opacity:1;
  transform: translateY(0);
  pointer-events:auto;
}

#benefits[data-stage="3"] .benefits-stats{
  opacity:1;
  transform: translateY(0);
  pointer-events:auto;
}

#benefits.benefits-entered[data-stage="1"] .benefits-stage-one{
  opacity:1;
  transform: translateY(0);
  pointer-events:auto;
}

#benefits.benefits-entered[data-stage="1"] .benefits-stage-one .benefits-seq-card{
  opacity:1;
  transform: translate3d(0, 0, 0);
}

#benefits.benefits-entered .benefits-image-card{
  opacity:1;
  transform: translate3d(0, 0, 0);
}

@media (max-width: 980px){
  #benefits .benefits-sequence{
    min-height:260vh;
  }

  #benefits .benefits-sticky{
    position:sticky;
    top: calc(var(--header-h) + 12px);
    min-height:78vh;
  }

  #benefits .benefits-left{
    min-height:340px;
  }

  #benefits .benefits-stage-group{
    position:absolute;
  }

  #benefits .benefits-image-card{
    width:100%;
    opacity:0;
    transform: translateY(10px);
  }

  #benefits .benefits-stage-two{
    margin-top:14px;
  }

  #benefits .benefits-stats{
    margin-top:18px;
  }

  .partners-track{
    animation-duration: 40s;
    gap:32px;
  }

  .partners-track--right{
    animation-duration: 46s;
  }

  .partner-logo{
    font-size:1.15rem;
  }

  #featured-books .books-track{
    animation-duration: 42s;
  }

  #featured-books .books-track > .card{
    flex:0 0 min(82vw, 360px);
    width:min(82vw, 360px);
    max-width:min(82vw, 360px);
  }
}

/* Reduce marketing-tone contrast in hero copy */
#hero p{
  color: rgba(54,56,96,0.82);
}

/* Premium atmosphere refinement layer (non-structural) */
.section{
  position:relative;
}
.section::after{
  display:none;
}
.section--soft::after{
  display:none;
}

body .card{
  background:linear-gradient(180deg, rgba(255,255,255,0.84), rgba(255,255,255,0.74));
  border:1px solid rgba(255,255,255,0.52);
  box-shadow:0 18px 42px rgba(94,91,168,0.10), inset 0 1px 0 rgba(255,255,255,0.48);
  backdrop-filter: blur(7px) saturate(1.04);
  -webkit-backdrop-filter: blur(7px) saturate(1.04);
}

/* Book product tiles — index featured grid, books page grid, shop (class + data-kind="book") */
body .card.book-card{
  position:relative;
  display:flex;
  flex-direction:column;
  height:100%;
  padding:20px 20px 22px !important;
  border-radius:24px;
  border:1px solid rgba(255,255,255,0.72);
  background:
    linear-gradient(155deg, rgba(255,255,255,0.98) 0%, rgba(248,245,255,0.95) 38%, rgba(255,252,254,0.97) 100%);
  box-shadow:
    0 1px 0 rgba(255,255,255,0.92) inset,
    0 10px 32px rgba(94,91,168,0.09),
    0 28px 56px rgba(94,91,168,0.07);
  backdrop-filter:blur(10px) saturate(1.06);
  -webkit-backdrop-filter:blur(10px) saturate(1.06);
  overflow:hidden;
  transition:transform 0.5s var(--ease-premium), box-shadow 0.5s var(--ease-premium), border-color 0.35s var(--ease-swift);
}
body .card.book-card::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  opacity:0;
  transition:opacity 0.45s var(--ease-swift);
  background:radial-gradient(120% 85% at 50% -18%, rgba(185,168,255,0.28), rgba(255,255,255,0) 52%);
}
body .card.book-card:hover{
  transform:translateY(-8px);
  border-color:rgba(185,168,255,0.42);
  box-shadow:
    0 1px 0 rgba(255,255,255,0.96) inset,
    0 16px 40px rgba(94,91,168,0.14),
    0 40px 72px rgba(94,91,168,0.10);
}
body .card.book-card:hover::before{
  opacity:1;
}
body .card.book-card .product-top{
  height:198px;
  border-radius:18px;
  border:1px solid rgba(94,91,168,0.1);
  background:
    radial-gradient(90% 70% at 50% 100%, rgba(185,168,255,0.12), rgba(255,255,255,0) 62%),
    linear-gradient(168deg, rgba(255,255,255,0.75) 0%, rgba(238,234,255,0.55) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.88),
    0 12px 28px rgba(45,42,92,0.07);
}
body .card.book-card .product-top img{
  max-height:100%;
  filter:drop-shadow(0 16px 22px rgba(32,28,68,0.14));
  transition:transform 0.55s var(--ease-premium);
}
body .card.book-card:hover .product-top img{
  transform:scale(1.035);
}
body .card.book-card .product-title{
  margin-top:16px;
  font-size:1.26rem;
  letter-spacing:-0.025em;
  line-height:1.22;
}
body .card.book-card .product-desc{
  flex:1;
  min-height:52px;
  font-size:0.94rem;
  line-height:1.58;
}
body .card.book-card .product-actions{
  margin-top:auto;
  padding-top:16px;
  border-top:1px solid rgba(94,91,168,0.1);
}
body .card.book-card .price{
  font-variant-numeric:tabular-nums;
  letter-spacing:0.03em;
}

@media (prefers-reduced-motion: reduce){
  body .card.book-card,
  body .card.book-card:hover,
  body .card.book-card .product-top img,
  body .card.book-card:hover .product-top img{
    transition:none;
    transform:none;
  }
  body .card.book-card::before{
    transition:none;
  }
}

.hero-orb{
  opacity:0.18;
}

/* Strong edge aura reinforcement (visible outside content container) */
body::before,
body::after{
  content:"" !important;
  position:fixed !important;
  top:-12vh !important;
  bottom:-12vh !important;
  width:clamp(170px, 20vw, 380px) !important;
  pointer-events:none !important;
  z-index:1 !important;
  opacity:0.58 !important;
  mix-blend-mode:normal !important;
}

body::before{
  left:-34px !important;
  right:auto !important;
  background:
    radial-gradient(74% 56% at 34% 24%, rgba(185,168,255,0.42), rgba(185,168,255,0.14) 50%, rgba(255,255,255,0) 84%),
    radial-gradient(74% 58% at 24% 64%, rgba(198,231,255,0.36), rgba(198,231,255,0.12) 48%, rgba(255,255,255,0) 84%),
    linear-gradient(90deg, rgba(255,230,242,0.20), rgba(255,255,255,0));
  animation: sideAuraBreatheLeft 14s ease-in-out infinite alternate !important;
}

body::after{
  right:-34px !important;
  left:auto !important;
  background:
    radial-gradient(74% 56% at 66% 22%, rgba(198,231,255,0.42), rgba(198,231,255,0.14) 50%, rgba(255,255,255,0) 84%),
    radial-gradient(74% 58% at 76% 64%, rgba(255,230,242,0.36), rgba(255,230,242,0.12) 48%, rgba(255,255,255,0) 84%),
    linear-gradient(270deg, rgba(185,168,255,0.20), rgba(255,255,255,0));
  animation: sideAuraBreatheRight 15.5s ease-in-out infinite alternate !important;
}

@keyframes sideAuraBreatheLeft{
  0%{ transform: translate3d(0, 0, 0) scale(1); opacity:0.50; filter:saturate(1); }
  50%{ transform: translate3d(8px, -10px, 0) scale(1.035); opacity:0.66; filter:saturate(1.06); }
  100%{ transform: translate3d(14px, 10px, 0) scale(1.05); opacity:0.56; filter:saturate(1.02); }
}

@keyframes sideAuraBreatheRight{
  0%{ transform: translate3d(0, 0, 0) scale(1); opacity:0.50; filter:saturate(1); }
  50%{ transform: translate3d(-8px, 10px, 0) scale(1.035); opacity:0.66; filter:saturate(1.06); }
  100%{ transform: translate3d(-14px, -10px, 0) scale(1.05); opacity:0.56; filter:saturate(1.02); }
}

@media (max-width: 900px){
  body::before,
  body::after{
    width:clamp(120px, 24vw, 210px) !important;
    opacity:0.48 !important;
  }
}
.orb-1, .hero-orb--1{
  animation-duration:26s;
}
.orb-2, .hero-orb--2{
  animation-duration:30s;
}

.btn-primary:hover{
  box-shadow:0 18px 46px rgba(185,168,255,0.30), 0 0 0 1px rgba(255,255,255,0.45), 0 0 22px rgba(185,168,255,0.18);
}

/* Final mobile nav refinement (kept late to override compatibility blocks). */
@media (max-width: 860px){
  .nav-links{
    left:16px;
    right:16px;
    top: calc(var(--header-h) + 12px);
    padding:16px;
    border-radius:28px;
    border:1px solid rgba(185,168,255,0.24);
    background:
      linear-gradient(180deg, rgba(255,255,255,0.98), rgba(250,251,255,0.94));
    box-shadow:
      0 24px 70px rgba(94,91,168,0.22),
      inset 0 1px 0 rgba(255,255,255,0.82);
    display:grid !important;
    grid-template-columns:1fr;
    gap:10px;
  }

  body.nav-open .nav-links{
    background:
      linear-gradient(180deg, rgba(255,255,255,0.99), rgba(250,251,255,0.95));
  }

  .nav-links .nav-link{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    width:100%;
    min-height:52px;
    padding:0 14px;
    border-radius:16px;
    border:1px solid rgba(185,168,255,0.22);
    background:rgba(249,250,255,0.9);
    color:rgba(70,72,112,0.96);
    font-size:1.06rem;
    font-weight:760;
    letter-spacing:0.01em;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.75);
    transition: transform 0.26s var(--ease-silk), box-shadow 0.26s var(--ease-silk), border-color 0.26s var(--ease-silk), background 0.26s var(--ease-silk), color 0.26s var(--ease-silk);
  }

  .nav-links .nav-link:hover,
  .nav-links .nav-link:active{
    transform: translateY(-1px);
    border-color: rgba(150,134,222,0.42);
    background:rgba(255,255,255,0.98);
    box-shadow:0 10px 26px rgba(144,129,215,0.18), inset 0 1px 0 rgba(255,255,255,0.95);
    color:var(--deep);
  }

  .nav-links .nav-link.active{
    border-color: rgba(147,131,220,0.54);
    background:
      linear-gradient(90deg, rgba(185,168,255,0.26), rgba(198,231,255,0.18), rgba(255,230,242,0.2));
    color:var(--deep);
    box-shadow:0 12px 30px rgba(136,121,206,0.2), inset 0 1px 0 rgba(255,255,255,0.88);
  }

  .nav-links .nav-link::after{
    display:none !important;
  }
}

@keyframes ambientBreath{
  0%{ opacity:0.2; }
  100%{ opacity:0.28; }
}
@keyframes auraRingsFloat{
  0%{ transform: scale(0.985); opacity:0.42; }
  100%{ transform: scale(1.015); opacity:0.56; }
}
@keyframes auraCoreBreath{
  0%{ transform: scale(0.94); opacity:0.28; }
  100%{ transform: scale(1.01); opacity:0.44; }
}
@keyframes heroAuraBreath{
  0%{ transform: translate3d(0,0,0) scale(1); opacity:1; }
  100%{ transform: translate3d(0,-10px,0) scale(1.03); opacity:0.9; }
}

/* Splash v2: cinematic portal loader */
.site-splash{
  --splash-p: 0;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  will-change: opacity;
}

.site-splash::before{
  background:
    radial-gradient(600px 260px at 50% 42%, rgba(185,168,255,0.22), rgba(255,255,255,0) 68%),
    radial-gradient(900px 420px at 50% 78%, rgba(112,108,189,0.12), rgba(255,255,255,0) 70%),
    linear-gradient(180deg, rgba(255,255,255,0), rgba(255,255,255,0.28));
}

.splash-grid{
  opacity:0.3;
  background:
    linear-gradient(90deg, rgba(109,105,181,0.08) 1px, transparent 1px) 0 0 / 46px 46px,
    linear-gradient(180deg, rgba(109,105,181,0.08) 1px, transparent 1px) 0 0 / 46px 46px;
}

.splash-scene{
  width:min(88vw, 640px);
  min-height:440px;
}

.splash-rings{
  width:min(64vw, 430px);
  filter: drop-shadow(0 22px 60px rgba(88,82,161,0.25));
  animation:splashTilt 4.2s var(--ease-premium) infinite alternate;
}

.splash-rings .ring{
  border:0;
  box-shadow:none;
}

.splash-rings .ring-1{
  inset:-4px;
  background:
    conic-gradient(from -90deg, rgba(147,138,231,0.1) 0%, rgba(147,138,231,0.1) calc(var(--splash-p) * 100%), rgba(147,138,231,0) calc(var(--splash-p) * 100%), rgba(147,138,231,0) 100%);
  -webkit-mask: radial-gradient(circle, transparent 58%, black 59% 63%, transparent 64%);
  mask: radial-gradient(circle, transparent 58%, black 59% 63%, transparent 64%);
  animation: none;
  opacity:1;
}

.splash-rings .ring-2{
  inset:42px;
  border:1px solid rgba(121,117,200,0.36);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.42);
  animation:splashRingDrift 3.4s ease-in-out infinite alternate;
}

.splash-rings .ring-3{
  inset:82px;
  border:1px solid rgba(141,136,219,0.5);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.55);
  animation:splashRingDrift 2.8s ease-in-out infinite alternate 0.22s;
}

.splash-rings .ring-4{
  inset:122px;
  border:1px solid rgba(170,164,239,0.58);
  animation:splashRingDrift 2.4s ease-in-out infinite alternate 0.4s;
}

.splash-core{
  width:min(22vw, 136px);
  box-shadow:
    0 0 52px rgba(127,121,213,0.36),
    0 0 120px rgba(127,121,213,0.18);
  animation:splashCoreBreath 2s ease-in-out infinite alternate;
}

.splash-wordmark{
  margin-top:44px;
  gap:12px;
}

.splash-wordmark .splash-eyebrow{
  font-size:0.72rem;
  letter-spacing:0.28em;
  color:rgba(84,80,141,0.78);
}

.splash-wordmark strong{
  font-size:clamp(1.28rem, 2.9vw, 2.18rem);
  text-shadow:0 10px 34px rgba(91,86,164,0.12);
}

.splash-progress{
  margin-top:22px;
  padding:10px 14px;
  border-radius:999px;
  border:1px solid rgba(146,139,226,0.34);
  background:linear-gradient(180deg, rgba(255,255,255,0.84), rgba(245,247,255,0.8));
  box-shadow:0 10px 26px rgba(113,108,190,0.12);
}

.splash-progress::after{
  content:"";
  width:84px;
  height:2px;
  border-radius:99px;
  background:linear-gradient(90deg, rgba(142,135,224,0.2), rgba(142,135,224,0.95));
  transform-origin:left center;
  transform: scaleX(var(--splash-p));
}

.site-splash.is-complete .splash-wordmark strong{
  letter-spacing:0.01em;
}

.site-splash .splash-wordmark .splash-type{
  position:relative;
  display:inline-block;
  min-height:1.35em;
  letter-spacing:0.005em;
}

.site-splash .splash-wordmark .splash-type .splash-letter{
  display:inline-block;
  opacity:0;
  transform: translateY(6px) scale(0.98);
  filter: blur(2px);
  transition:
    opacity 0.36s var(--ease-silk),
    transform 0.42s var(--ease-premium),
    filter 0.42s var(--ease-silk);
}

.site-splash .splash-wordmark .splash-type .splash-letter.is-visible{
  opacity:1;
  transform: translateY(0) scale(1);
  filter: blur(0);
}

/* Keep splash permanently in light mode, regardless of site theme. */
.site-splash .splash-wordmark strong,
.site-splash .splash-wordmark .splash-letter{
  color:#2d2a6e;
}
.site-splash .splash-progress{
  color:rgba(85,82,138,0.9);
}
.site-splash .splash-progress-value{
  color:rgba(94,91,168,0.96);
}

/* Splash aura mode (circle/orbit is commented in HTML for now) */
.splash-aura{
  position:relative;
  width:min(68vw, 420px);
  aspect-ratio:1/1;
  display:grid;
  place-items:center;
  transform-style:preserve-3d;
  filter:saturate(1.02);
  will-change: transform, opacity, filter;
  animation:splashAuraFieldDrift 8.6s ease-in-out infinite;
}

.splash-aura-layer,
.splash-aura-flare{
  position:absolute;
  inset:0;
  border-radius:56% 44% 52% 48% / 47% 55% 45% 53%;
  pointer-events:none;
}

.splash-aura-layer--1{
  background:
    radial-gradient(54% 50% at 49% 46%, rgba(255,255,255,0.92), rgba(255,255,255,0) 58%),
    radial-gradient(66% 62% at 52% 50%, rgba(124,119,205,0.22), rgba(255,255,255,0) 76%);
  filter: blur(5px);
  opacity:0.94;
  transform: translate3d(-1px, 1px, 0);
  animation:splashAuraBreathOne 7.2s ease-in-out infinite;
}

.splash-aura-layer--2{
  inset:8%;
  border-radius:50% 50% 46% 54% / 58% 43% 57% 42%;
  background:
    radial-gradient(72% 66% at 43% 49%, rgba(185,168,255,0.22), rgba(255,255,255,0) 72%),
    radial-gradient(70% 68% at 58% 55%, rgba(198,231,255,0.16), rgba(255,255,255,0) 74%);
  filter: blur(12px);
  opacity:0.7;
  transform: translate3d(2px, -2px, 0);
  animation:splashAuraBreathTwo 8.8s ease-in-out infinite;
}

.splash-aura-layer--3{
  inset:-8%;
  border-radius:62% 38% 50% 50% / 44% 62% 38% 56%;
  background:
    radial-gradient(78% 72% at 52% 58%, rgba(156,149,232,0.16), rgba(255,255,255,0) 78%),
    radial-gradient(66% 64% at 46% 42%, rgba(255,230,242,0.16), rgba(255,255,255,0) 78%);
  filter: blur(19px);
  opacity:0.5;
  transform: translate3d(-2px, 2px, 0);
  animation:splashAuraBreathThree 9.8s ease-in-out infinite;
}

.splash-aura-flare{
  inset:33%;
  border-radius:58% 42% 51% 49% / 49% 58% 42% 51%;
  background:
    radial-gradient(58% 54% at 48% 44%, rgba(255,255,255,0.98), rgba(204,206,243,0.40) 62%, rgba(255,255,255,0) 84%);
  filter: blur(0.7px);
  opacity:0.95;
  animation:splashAuraFlareBreath 6.8s ease-in-out infinite;
}

.site-splash.is-transitioning .splash-aura{
  animation:splashAuraReleaseSoft 1.05s var(--ease-premium) forwards;
}

.site-splash.is-transitioning::before{
  opacity:0.08;
  transition: opacity 0.5s var(--ease-swift);
}

.site-splash .splash-grid{
  opacity:0.08;
}

.site-splash.text-fade .splash-wordmark{
  opacity:0;
  transform: translateY(8px);
  transition: opacity 0.4s var(--ease-swift), transform 0.4s var(--ease-swift);
}

.site-splash.text-fade .splash-progress{
  opacity:0;
  transform: translateY(4px);
  transition: opacity 0.28s var(--ease-swift), transform 0.28s var(--ease-swift);
}

.site-splash::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(72% 72% at 50% 46%, rgba(255,255,255,0.42), rgba(255,255,255,0) 74%),
    linear-gradient(180deg, rgba(255,255,255,0.16), rgba(255,255,255,0.04));
  opacity:0;
  transition: opacity 0.24s var(--ease-swift);
}

.site-splash.light-wash::after{
  opacity:0;
  animation: splashSunriseMerge 0.98s var(--ease-premium) forwards;
}

@keyframes splashAuraFieldDrift{
  0%, 100%{ transform: translate3d(-2px, 2px, 0) scale(0.985); }
  50%{ transform: translate3d(3px, -4px, 0) scale(1.015); }
}

@keyframes splashAuraBreathOne{
  0%{ opacity:0.86; transform: translate3d(-3px, 1px, 0) scale(0.96); }
  100%{ opacity:1; transform: translate3d(2px, -3px, 0) scale(1.06); }
}

@keyframes splashAuraBreathTwo{
  0%{ opacity:0.6; transform: translate3d(2px, -1px, 0) scale(0.94); }
  100%{ opacity:0.78; transform: translate3d(-3px, 4px, 0) scale(1.04); }
}

@keyframes splashAuraBreathThree{
  0%{ opacity:0.46; transform: translate3d(-1px, 2px, 0) scale(0.95); }
  100%{ opacity:0.64; transform: translate3d(3px, -4px, 0) scale(1.05); }
}

@keyframes splashAuraFlareBreath{
  0%{ opacity:0.74; transform: scale(0.9); }
  100%{ opacity:1; transform: scale(1.08); }
}

@keyframes splashAuraReleaseSoft{
  0%{ transform: scale(1); opacity:1; filter:blur(0); }
  55%{ transform: scale(1.18); opacity:0.82; filter:blur(2px); }
  100%{ transform: scale(1.46); opacity:0; filter:blur(8px); }
}

@keyframes splashSunriseMerge{
  0%{
    opacity:0.72;
    transform: scale(0.38);
    filter: blur(0.8px);
    background:
      radial-gradient(44% 44% at 50% 46%, rgba(255,255,255,0.9), rgba(255,255,255,0.18) 56%, rgba(255,255,255,0) 78%),
      linear-gradient(180deg, rgba(255,255,255,0.12), rgba(255,255,255,0.02));
  }
  58%{
    opacity:0.6;
    transform: scale(1.08);
    filter: blur(0.2px);
    background:
      radial-gradient(82% 46% at 50% 42%, rgba(255,255,255,0.84), rgba(255,255,255,0.16) 58%, rgba(255,255,255,0) 78%),
      linear-gradient(180deg, rgba(255,255,255,0.16), rgba(255,255,255,0.03));
  }
  100%{
    opacity:0;
    transform: scale(1.46);
    filter: blur(0.6px);
    background:
      radial-gradient(120% 58% at 50% 34%, rgba(255,255,255,0.72), rgba(255,255,255,0.12) 56%, rgba(255,255,255,0) 78%),
      linear-gradient(180deg, rgba(255,255,255,0.10), rgba(255,255,255,0));
  }
}

@keyframes splashRingDrift{
  0%{ transform: translate3d(0, 0, 0) scale(0.985); opacity:0.72; }
  100%{ transform: translate3d(0, -8px, 0) scale(1.02); opacity:1; }
}

@keyframes splashTilt{
  0%{ transform: rotateX(60deg) rotateZ(-8deg) scale(0.95); }
  100%{ transform: rotateX(72deg) rotateZ(8deg) scale(1.03); }
}

@keyframes splashCoreBreath{
  0%{ transform: translateZ(58px) scale(0.88); opacity:0.78; }
  100%{ transform: translateZ(58px) scale(1.08); opacity:1; }
}

@media (max-width: 860px){
  .splash-scene{
    min-height:360px;
  }
  .splash-rings{
    width:min(78vw, 350px);
  }
  .splash-wordmark{
    margin-top:34px;
  }
}

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; }
  .site-splash{ display:none !important; }
  body.splash-active{ overflow:auto; }
  body::before{ animation:none !important; }
  html::after{ animation:none !important; }
  .partners-track{ animation:none !important; }
  #featured-books .books-track{ animation:none !important; }
  .story-morph{ display:none !important; }
}

/* ============================================
   Dark mode (first pass - auto via OS setting)
   ============================================ */
@media (prefers-color-scheme: dark){
  :root{
    color-scheme: dark;
    --white:#EEF2FF;
    --pink:#F6C9DC;
    --lavender:#B8A7FF;
    --blue:#9FD6FF;
    --purple:#B8A7FF;
    --deep:#E9ECF8;
    --text:#E9ECF8;
    --muted:#B6BED3;
    --section:#151928;
    --line:rgba(190,200,230,0.18);
    --shadow:0 14px 34px rgba(7,10,18,0.46);
    --shadow-strong:0 22px 54px rgba(5,8,16,0.56);
  }

  html{
    scrollbar-color: rgba(154,170,220,0.56) rgba(20,24,38,0.72);
  }

  body{
    background:
      radial-gradient(1200px 780px at 14% -8%, rgba(184,167,255,0.13), rgba(15,17,26,0) 64%),
      radial-gradient(1180px 780px at 88% 14%, rgba(159,214,255,0.11), rgba(15,17,26,0) 63%),
      radial-gradient(1240px 820px at 52% 118%, rgba(246,201,220,0.10), rgba(15,17,26,0) 66%),
      linear-gradient(180deg, #0f111a 0%, #141a2a 56%, #101524 100%);
    color:var(--text);
  }

  .section--soft{
    background:linear-gradient(180deg, rgba(21,25,40,0.86), rgba(16,21,36,0.82));
  }

  .card,
  body .card{
    background:rgba(21,25,40,0.82);
    border-color:rgba(190,200,230,0.20);
    box-shadow:var(--shadow);
  }

  body .card.book-card,
  .card.book-card{
    background:linear-gradient(158deg, rgba(30,36,56,0.96) 0%, rgba(22,26,42,0.94) 48%, rgba(26,22,40,0.92) 100%);
    border-color:rgba(190,200,230,0.22);
    box-shadow:
      0 1px 0 rgba(255,255,255,0.06) inset,
      0 14px 40px rgba(6,10,18,0.55),
      0 32px 64px rgba(6,10,18,0.42);
  }
  body .card.book-card:hover,
  .card.book-card:hover{
    border-color:rgba(198,210,255,0.32);
    box-shadow:
      0 1px 0 rgba(255,255,255,0.08) inset,
      0 20px 48px rgba(6,10,18,0.58),
      0 44px 80px rgba(94,91,168,0.14);
  }
  body .card.book-card .product-top,
  .card.book-card .product-top{
    border-color:rgba(190,200,230,0.16);
    background:
      radial-gradient(85% 65% at 50% 100%, rgba(184,167,255,0.14), rgba(255,255,255,0) 58%),
      linear-gradient(168deg, rgba(36,42,64,0.9) 0%, rgba(24,28,46,0.85) 100%);
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,0.08),
      0 12px 28px rgba(4,6,14,0.45);
  }
  body .card.book-card .product-top img,
  .card.book-card .product-top img{
    filter:drop-shadow(0 14px 24px rgba(0,0,0,0.45));
  }
  body .card.book-card .product-actions,
  .card.book-card .product-actions{
    border-top-color:rgba(190,200,230,0.14);
  }
  #featured-books .book-card .product-actions .price{
    color:rgba(158,168,198,0.88);
  }
  #featured-books .book-card .product-actions .btn-ghost{
    background:rgba(28,34,52,0.58);
    border-color:rgba(190,200,230,0.22);
    color:rgba(236,241,255,0.94);
  }
  #featured-books .book-card .product-actions .btn-ghost:hover{
    background:rgba(42,50,74,0.62);
    border-color:rgba(198,210,255,0.34);
  }

  .site-header,
  header{
    background:rgba(14,18,29,0.72);
    border-bottom:1px solid rgba(190,200,230,0.16);
  }

  .site-header.scrolled,
  header.scrolled{
    background:rgba(13,17,27,0.82);
    box-shadow:0 10px 30px rgba(7,10,18,0.44);
  }

  .nav-links{
    background:rgba(18,23,36,0.88);
    border-color:rgba(190,200,230,0.16);
  }

  .nav-link{
    background:rgba(28,34,52,0.62);
    border-color:rgba(190,200,230,0.16);
    color:var(--text);
  }

  .eyebrow{
    background:rgba(28,34,52,0.68);
    border-color:rgba(190,200,230,0.18);
    color:var(--text);
  }

  .h1,
  .h2,
  .section-title{
    color:var(--text);
  }

  .subhead,
  .section-subtitle{
    color:var(--muted);
  }

  .btn-primary{
    color:#131827;
    border-color:rgba(236,242,255,0.34);
    box-shadow:0 16px 38px rgba(95,86,171,0.34);
  }

  .btn-secondary{
    background:rgba(28,34,52,0.78);
    border-color:rgba(190,200,230,0.22);
    color:var(--text);
    box-shadow:0 10px 24px rgba(6,10,18,0.38);
  }

  .btn-ghost{
    border-color:rgba(190,200,230,0.24);
    color:var(--text);
  }

  .btn-ghost:hover{
    background:rgba(42,50,74,0.44);
  }

  .testimonial{
    background:rgba(21,25,40,0.78);
    border-color:rgba(190,200,230,0.18);
  }

  .site-footer{
    background:linear-gradient(180deg, rgba(16,21,36,0.94), rgba(13,17,28,0.98));
    border-top:1px solid rgba(190,200,230,0.16);
    border-image:none;
  }

  html:not([data-theme="light"]) .footer-panel{
    border-color:rgba(190,200,230,0.16);
    background:
      radial-gradient(720px 280px at 10% -6%, rgba(184,167,255,0.12), rgba(17,22,35,0) 56%),
      radial-gradient(640px 300px at 92% 4%, rgba(159,214,255,0.08), rgba(17,22,35,0) 54%),
      linear-gradient(168deg, rgba(28,33,50,0.96) 0%, rgba(20,25,40,0.94) 48%, rgba(22,18,36,0.92) 100%);
    box-shadow:
      0 1px 0 rgba(255,255,255,0.06) inset,
      0 22px 50px rgba(4,6,14,0.55);
  }
  html:not([data-theme="light"]) .footer-mark{
    background:rgba(255,255,255,0.06);
    border-color:rgba(190,200,230,0.18);
    box-shadow:0 1px 0 rgba(255,255,255,0.06) inset, 0 8px 22px rgba(0,0,0,0.35);
  }
  html:not([data-theme="light"]) .footer-mark img{
    filter:brightness(1.08) contrast(1.02);
  }
  html:not([data-theme="light"]) .footer-brand--modern h3,
  html:not([data-theme="light"]) .footer-col-title{
    color:var(--text);
  }
  html:not([data-theme="light"]) .footer-grid--modern .footer-col-title{
    color:rgba(198,210,255,0.55);
    border-bottom-color:rgba(190,200,230,0.12);
  }
  html:not([data-theme="light"]) .footer-brand--modern p,
  html:not([data-theme="light"]) .footer-grid--modern .footer-links a{
    color:rgba(197,207,231,0.88);
  }
  html:not([data-theme="light"]) .footer-copy{
    color:rgba(176,186,214,0.82);
  }
  html:not([data-theme="light"]) .footer-legal a{
    color:rgba(198,210,255,0.72);
  }
  html:not([data-theme="light"]) .footer-social-icons a{
    background:linear-gradient(165deg, rgba(34,40,58,0.95), rgba(26,31,46,0.9));
    border-color:rgba(190,200,230,0.16);
    color:rgba(236,241,255,0.92);
  }

  .cursor-glow{
    opacity:0.48;
    filter:blur(12px);
  }
}

/* Manual theme override (via [data-theme]) */
html[data-theme="dark"]{
  color-scheme: dark;
  --white:#EEF2FF;
  --pink:#F6C9DC;
  --lavender:#B8A7FF;
  --blue:#9FD6FF;
  --purple:#B8A7FF;
  --deep:#E9ECF8;
  --text:#E9ECF8;
  --muted:#B6BED3;
  --section:#151928;
  --line:rgba(190,200,230,0.18);
  --shadow:0 14px 34px rgba(7,10,18,0.46);
  --shadow-strong:0 22px 54px rgba(5,8,16,0.56);
}

html[data-theme="dark"] body{
  background:
    radial-gradient(1200px 780px at 14% -8%, rgba(184,167,255,0.13), rgba(15,17,26,0) 64%),
    radial-gradient(1180px 780px at 88% 14%, rgba(159,214,255,0.11), rgba(15,17,26,0) 63%),
    radial-gradient(1240px 820px at 52% 118%, rgba(246,201,220,0.10), rgba(15,17,26,0) 66%),
    linear-gradient(180deg, #0f111a 0%, #141a2a 56%, #101524 100%);
  color:var(--text);
}

/* Unify background across all sections in dark mode */
html[data-theme="dark"] .section--soft{
  background:transparent !important;
}

html[data-theme="dark"] .section--tight{
  background:transparent !important;
}

html[data-theme="dark"] .section{
  background:transparent !important;
}

/* Disable per-section dark backplates so the page feels like 1 continuous gradient. */
html[data-theme="dark"] #story::before,
html[data-theme="dark"] #benefits::before,
html[data-theme="dark"] #journeys::before,
html[data-theme="dark"] #featured-books::before,
html[data-theme="dark"] #membership-preview::before,
html[data-theme="dark"] #testimonials::before,
html[data-theme="dark"] #final-cta::before{
  opacity:0 !important;
  background:none !important;
}
html[data-theme="dark"] .card, html[data-theme="dark"] body .card{ background:rgba(21,25,40,0.82); border-color:rgba(190,200,230,0.20); box-shadow:var(--shadow); }
html[data-theme="dark"] body .card.book-card,
html[data-theme="dark"] .card.book-card{
  background:linear-gradient(158deg, rgba(30,36,56,0.96) 0%, rgba(22,26,42,0.94) 48%, rgba(26,22,40,0.92) 100%);
  border-color:rgba(190,200,230,0.22);
  box-shadow:
    0 1px 0 rgba(255,255,255,0.06) inset,
    0 14px 40px rgba(6,10,18,0.55),
    0 32px 64px rgba(6,10,18,0.42);
}
html[data-theme="dark"] body .card.book-card:hover,
html[data-theme="dark"] .card.book-card:hover{
  border-color:rgba(198,210,255,0.32);
  box-shadow:
    0 1px 0 rgba(255,255,255,0.08) inset,
    0 20px 48px rgba(6,10,18,0.58),
    0 44px 80px rgba(94,91,168,0.14);
}
html[data-theme="dark"] body .card.book-card .product-top,
html[data-theme="dark"] .card.book-card .product-top{
  border-color:rgba(190,200,230,0.16);
  background:
    radial-gradient(85% 65% at 50% 100%, rgba(184,167,255,0.14), rgba(255,255,255,0) 58%),
    linear-gradient(168deg, rgba(36,42,64,0.9) 0%, rgba(24,28,46,0.85) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.08),
    0 12px 28px rgba(4,6,14,0.45);
}
html[data-theme="dark"] body .card.book-card .product-top img,
html[data-theme="dark"] .card.book-card .product-top img{
  filter:drop-shadow(0 14px 24px rgba(0,0,0,0.45));
}
html[data-theme="dark"] body .card.book-card .product-actions,
html[data-theme="dark"] .card.book-card .product-actions{
  border-top-color:rgba(190,200,230,0.14);
}
html[data-theme="dark"] #featured-books .book-card .product-actions .price{
  color:rgba(158,168,198,0.88);
}
html[data-theme="dark"] #featured-books .book-card .product-actions .btn-ghost{
  background:rgba(28,34,52,0.58);
  border-color:rgba(190,200,230,0.22);
  color:rgba(236,241,255,0.94);
}
html[data-theme="dark"] #featured-books .book-card .product-actions .btn-ghost:hover{
  background:rgba(42,50,74,0.62);
  border-color:rgba(198,210,255,0.34);
}
html[data-theme="dark"] .site-header, html[data-theme="dark"] header{ background:rgba(14,18,29,0.72); border-bottom:1px solid rgba(190,200,230,0.16); }
html[data-theme="dark"] .site-header.scrolled, html[data-theme="dark"] header.scrolled{
  backdrop-filter: blur(12px) saturate(1.03);
  -webkit-backdrop-filter: blur(12px) saturate(1.03);
  background:rgba(13,17,27,0.82);
  box-shadow:0 10px 30px rgba(7,10,18,0.44);
}
/* nav links container should not add extra rim in dark mode */
/* html[data-theme="dark"] .nav-links{ background:rgba(18,23,36,0.88); border-color:rgba(190,200,230,0.16); } */
html[data-theme="dark"] .nav-link{ background:rgba(28,34,52,0.62); border-color:rgba(190,200,230,0.16); color:var(--text); }
html[data-theme="dark"] .eyebrow{ background:rgba(28,34,52,0.68); border-color:rgba(190,200,230,0.18); color:var(--text); }
html[data-theme="dark"] .h1, html[data-theme="dark"] .h2, html[data-theme="dark"] .section-title{ color:var(--text); }
html[data-theme="dark"] .subhead, html[data-theme="dark"] .section-subtitle{ color:var(--muted); }
html[data-theme="dark"] .btn-primary{ color:#131827; border-color:rgba(236,242,255,0.34); box-shadow:0 16px 38px rgba(95,86,171,0.34); }
html[data-theme="dark"] .btn-secondary{ background:rgba(28,34,52,0.78); border-color:rgba(190,200,230,0.22); color:var(--text); box-shadow:0 10px 24px rgba(6,10,18,0.38); }
html[data-theme="dark"] .btn-ghost{ border-color:rgba(190,200,230,0.24); color:var(--text); }
html[data-theme="dark"] .btn-ghost:hover{ background:rgba(42,50,74,0.44); }
html[data-theme="dark"] .testimonial{ background:rgba(21,25,40,0.78); border-color:rgba(190,200,230,0.18); }
html[data-theme="dark"] .site-footer{
  background:linear-gradient(180deg, rgba(16,21,36,0.94), rgba(13,17,28,0.98));
  border-image:none;
  border-top:1px solid rgba(190,200,230,0.14);
}
html[data-theme="dark"] .cursor-glow{ opacity:0.48; filter:blur(12px); }
html[data-theme="dark"] .logo{ color:var(--text); }
html[data-theme="dark"] .nav-links a{ color:var(--muted); }
html[data-theme="dark"] .nav-links a:hover,
html[data-theme="dark"] .nav-link.active{ color:var(--text); }
/* Keep desktop nav clean in dark mode (no boxed tabs). */
html[data-theme="dark"] .nav-links .nav-link{
  background:transparent;
  border:0;
  border-radius:0;
  padding:10px 0;
}
html[data-theme="dark"] .hero{
  background:
    radial-gradient(860px 330px at 50% 8%, rgba(62,72,101,0.42), rgba(17,22,35,0) 62%),
    radial-gradient(660px 320px at 18% 26%, rgba(184,167,255,0.16), rgba(17,22,35,0) 64%),
    radial-gradient(660px 320px at 82% 26%, rgba(159,214,255,0.14), rgba(17,22,35,0) 64%),
    rgba(24,30,45,0.82);
}
html[data-theme="dark"] .hero::before{
  background:
    radial-gradient(900px 520px at 50% -10%, rgba(159,214,255,0.18), rgba(17,22,35,0) 60%),
    radial-gradient(780px 460px at 20% 10%, rgba(246,201,220,0.12), rgba(17,22,35,0) 62%),
    radial-gradient(860px 520px at 90% 18%, rgba(184,167,255,0.14), rgba(17,22,35,0) 60%),
    linear-gradient(180deg, rgba(26,32,49,0.32) 0%, rgba(18,23,36,0.26) 36%, rgba(17,22,35,0.08) 100%);
}
html[data-theme="dark"] .hero::after{
  background:
    radial-gradient(720px 320px at 50% 0%, rgba(184,167,255,0.18), rgba(17,22,35,0) 62%),
    linear-gradient(180deg, rgba(159,214,255,0.16) 0%, rgba(159,214,255,0.06) 42%, rgba(17,22,35,0) 78%);
  opacity:0.36;
}
html[data-theme="dark"] #hero p,
html[data-theme="dark"] .hero p{
  color:rgba(202,211,233,0.9);
}
/* Story readability + portrait clarity */
html[data-theme="dark"] .step{
  background:linear-gradient(180deg, rgba(28,34,52,0.92), rgba(22,28,44,0.9));
  border-color:rgba(190,200,230,0.26);
  box-shadow:
    0 18px 38px rgba(6,10,18,0.46),
    inset 0 1px 0 rgba(255,255,255,0.06);
  backdrop-filter: blur(8px) saturate(1.03);
  -webkit-backdrop-filter: blur(8px) saturate(1.03);
}
html[data-theme="dark"] .step h3{ color:var(--text); }
html[data-theme="dark"] .step p{ color:rgba(199,208,231,0.94); }
html[data-theme="dark"] .step-num{
  color:rgba(226,232,248,0.92);
  background:rgba(184,167,255,0.14);
  border-color:rgba(190,200,230,0.28);
}
html[data-theme="dark"] #story .story-morph{
  opacity:0.9;
  filter:brightness(1.06) contrast(1.04);
}
html[data-theme="dark"] #story[data-story-stage="3"] .story-morph{
  opacity:1;
}
/* Partners edge fade + logo contrast */
html[data-theme="dark"] .partners-strip::before{
  background:linear-gradient(90deg, rgba(17,22,35,0.98), rgba(17,22,35,0));
}
html[data-theme="dark"] .partners-strip::after{
  background:linear-gradient(270deg, rgba(17,22,35,0.98), rgba(17,22,35,0));
}
html[data-theme="dark"] .partner-logo{
  color:rgba(223,231,248,0.32);
}
/* Final CTA + buttons */
html[data-theme="dark"] .final-cta{
  background:
    radial-gradient(850px 320px at 50% 0%, rgba(53,62,89,0.42), rgba(17,22,35,0) 62%),
    radial-gradient(650px 320px at 15% 30%, rgba(184,167,255,0.16), rgba(17,22,35,0) 64%),
    radial-gradient(650px 320px at 85% 30%, rgba(159,214,255,0.14), rgba(17,22,35,0) 64%),
    rgba(24,30,45,0.82);
  border-color:rgba(190,200,230,0.22);
  box-shadow:0 20px 44px rgba(6,10,18,0.44);
}
html[data-theme="dark"] .final-cta p{
  color:rgba(200,209,232,0.92);
}
html[data-theme="dark"] .final-cta .btn-secondary{
  background:rgba(56,66,94,0.86);
  color:rgba(238,243,255,0.96);
  border-color:rgba(190,200,230,0.26);
}
/* Footer panel readability */
html[data-theme="dark"] .footer-panel{
  border-color:rgba(190,200,230,0.16);
  background:
    radial-gradient(720px 280px at 10% -6%, rgba(184,167,255,0.12), rgba(17,22,35,0) 56%),
    radial-gradient(640px 300px at 92% 4%, rgba(159,214,255,0.08), rgba(17,22,35,0) 54%),
    linear-gradient(168deg, rgba(28,33,50,0.96) 0%, rgba(20,25,40,0.94) 48%, rgba(22,18,36,0.92) 100%);
  box-shadow:
    0 1px 0 rgba(255,255,255,0.06) inset,
    0 22px 50px rgba(4,6,14,0.55);
}
html[data-theme="dark"] .footer-panel::after{
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.04);
}
html[data-theme="dark"] .footer-mark{
  background:rgba(255,255,255,0.06);
  border-color:rgba(190,200,230,0.18);
  box-shadow:0 1px 0 rgba(255,255,255,0.06) inset, 0 8px 22px rgba(0,0,0,0.35);
}
html[data-theme="dark"] .footer-mark img{
  filter:brightness(1.08) contrast(1.02);
}
html[data-theme="dark"] .footer-brand--modern p,
html[data-theme="dark"] .footer-grid--modern .footer-links a{
  color:rgba(197,207,231,0.88);
}
html[data-theme="dark"] .footer-grid--modern .footer-links a:hover{
  color:var(--text);
  background:rgba(42,50,74,0.55);
  border-color:rgba(190,200,230,0.14);
}
html[data-theme="dark"] .footer-grid--modern .footer-col-title{
  color:rgba(198,210,255,0.55);
  border-bottom-color:rgba(190,200,230,0.12);
}
html[data-theme="dark"] .footer-copy{
  color:rgba(176,186,214,0.82);
}
html[data-theme="dark"] .footer-legal a{
  color:rgba(198,210,255,0.72);
}
html[data-theme="dark"] .footer-legal a:hover{
  color:var(--text);
  background:rgba(42,50,74,0.5);
  border-color:rgba(190,200,230,0.2);
}
html[data-theme="dark"] .footer-social-icons a{
  background:linear-gradient(165deg, rgba(34,40,58,0.95), rgba(26,31,46,0.9));
  border-color:rgba(190,200,230,0.16);
  color:rgba(236,241,255,0.92);
  box-shadow:0 1px 0 rgba(255,255,255,0.05) inset, 0 8px 20px rgba(0,0,0,0.35);
}
html[data-theme="dark"] .footer-social-icons a:hover{
  background:rgba(42,50,74,0.88);
  border-color:rgba(198,210,255,0.28);
}
html[data-theme="dark"] .footer-col-title,
html[data-theme="dark"] .footer-brand--modern h3{
  color:var(--text);
}
html[data-theme="dark"] .theme-toggle{
  background:linear-gradient(180deg, rgba(28,34,52,0.92), rgba(22,28,44,0.88));
  border-color:rgba(190,200,230,0.26);
  color:var(--text);
  box-shadow:0 12px 28px rgba(6,10,18,0.4);
}
html[data-theme="dark"] .theme-toggle-icon{
  background:linear-gradient(135deg, rgba(184,167,255,0.24), rgba(159,214,255,0.2));
}

html[data-theme="light"]{
  color-scheme: light;
  --white:#FFFFFF;
  --pink:#FFE6F2;
  --lavender:#DCD7FF;
  --blue:#C6E7FF;
  --purple:#B9A8FF;
  --deep:#5E5BA8;
  --text:#3D3D57;
  --muted:#6F7192;
  --section:#F8F9FF;
  --line:rgba(94,91,168,0.12);
  --shadow:0 12px 30px rgba(94,91,168,0.12);
  --shadow-strong:0 18px 46px rgba(94,91,168,0.18);
}

html[data-theme="light"] body{
  background:
    radial-gradient(1400px 960px at 16% -8%, rgba(185,168,255,0.10), rgba(255,255,255,0) 64%),
    radial-gradient(1260px 860px at 88% 14%, rgba(198,231,255,0.09), rgba(255,255,255,0) 63%),
    radial-gradient(1300px 920px at 52% 118%, rgba(255,230,242,0.08), rgba(255,255,255,0) 66%),
    linear-gradient(to bottom, #fcfcff, #f7f8ff);
  color:var(--text);
}
html[data-theme="light"] .section--soft{ background:linear-gradient(to bottom, #fcfcff, #f7f8ff); }
html[data-theme="light"] .card, html[data-theme="light"] body .card{
  background:linear-gradient(180deg, rgba(255,255,255,0.84), rgba(255,255,255,0.74));
  border-color:rgba(255,255,255,0.52);
  box-shadow:0 18px 42px rgba(94,91,168,0.10), inset 0 1px 0 rgba(255,255,255,0.48);
}
html[data-theme="light"] body .card.book-card,
html[data-theme="light"] .card.book-card{
  background:
    linear-gradient(155deg, rgba(255,255,255,0.98) 0%, rgba(248,245,255,0.95) 38%, rgba(255,252,254,0.97) 100%);
  border-color:rgba(255,255,255,0.72);
  box-shadow:
    0 1px 0 rgba(255,255,255,0.92) inset,
    0 10px 32px rgba(94,91,168,0.09),
    0 28px 56px rgba(94,91,168,0.07);
}
html[data-theme="light"] .site-header, html[data-theme="light"] header{
  background:rgba(255,255,255,0.68);
  border-bottom:1px solid var(--line);
}
html[data-theme="light"] .site-header.scrolled, html[data-theme="light"] header.scrolled{
  background:rgba(255,255,255,0.9);
  box-shadow:0 10px 28px rgba(94,91,168,0.08);
}
html[data-theme="light"] .logo{ color:var(--deep); }
html[data-theme="light"] .nav-links a{ color:var(--muted); }
html[data-theme="light"] .nav-links a:hover,
html[data-theme="light"] .nav-link.active{ color:var(--deep); }
/*html[data-theme="light"] .hero{*/
/*  background:*/
/*    radial-gradient(880px 340px at 50% 8%, rgba(255,255,255,0.95), rgba(255,255,255,0) 60%),*/
/*    radial-gradient(680px 320px at 18% 26%, rgba(255,230,242,0.54), rgba(255,255,255,0) 62%),*/
/*    radial-gradient(680px 320px at 82% 26%, rgba(185,168,255,0.48), rgba(255,255,255,0) 62%),*/
/*    rgba(255,255,255,0.76);*/
/*}*/
html[data-theme="light"] #hero p,
html[data-theme="light"] .hero p{ color:rgba(54,56,96,0.82); }
html[data-theme="light"] .btn-primary{
  color:var(--deep);
  border-color:rgba(255,255,255,0.55);
  box-shadow:0 14px 34px rgba(185,168,255,0.28);
}
html[data-theme="light"] .btn-secondary{
  background:rgba(255,255,255,0.76);
  border-color:rgba(94,91,168,0.14);
  color:var(--deep);
  box-shadow:0 10px 24px rgba(94,91,168,0.07);
}
html[data-theme="light"] .theme-toggle{
  background:linear-gradient(180deg, rgba(255,255,255,0.84), rgba(247,248,255,0.78));
  border-color:rgba(94,91,168,0.16);
  color:var(--deep);
  box-shadow:0 12px 26px rgba(94,91,168,0.10);
}

/* Keep nav pages area as one coherent premium surface (desktop). */
@media (min-width: 861px){
  .site-header .nav-links{
    padding:8px 12px;
    border-radius:14px;
    background:rgba(255,255,255,0.14);
    border:1px solid rgba(255,255,255,0.24);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.22);
    gap:18px;
  }

  .site-header .nav-links .nav-link{
    background:transparent !important;
    border:0 !important;
    border-radius:0 !important;
    padding:8px 0 !important;
  }

  html[data-theme="dark"] .site-header .nav-links{
    background:rgba(25,31,48,0.72);
    border-color:rgba(190,200,230,0.20);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.06);
  }
}

/* Keep desktop navbar in one row after adding Broadcast. */
@media (min-width: 861px) and (max-width: 1280px){
  .logo-picture{
    width:198px;
  }

  .site-header .nav-links{
    gap:12px;
    padding:8px 10px;
  }

  .site-header .nav-links .nav-link{
    font-size:0.9rem;
    white-space:nowrap;
  }
}

/* Hard stop for desktop wrap: keep all header links on one line. */
@media (min-width: 861px){
  .site-header .nav{
    gap:12px;
  }

  .site-header .nav-links{
    flex-wrap:nowrap !important;
    min-width:0;
  }

  .site-header .nav-links .nav-link{
    white-space:nowrap;
  }
}

@media (max-width: 860px){
  html[data-theme="dark"] .nav-toggle{
    background:rgba(28,34,52,0.94);
    border:1px solid rgba(184,167,255,0.32);
    box-shadow:0 10px 26px rgba(6,10,18,0.42);
  }
  html[data-theme="dark"] .nav-toggle:hover{
    background:rgba(38,46,72,0.98);
    border-color:rgba(198,210,255,0.42);
    box-shadow:0 14px 34px rgba(94,91,168,0.22);
  }
  html[data-theme="dark"] .nav-toggle:focus-visible{
    box-shadow:0 0 0 4px rgba(185,168,255,0.35);
  }
  html[data-theme="dark"] .nav-toggle-lines span{
    background:linear-gradient(90deg, rgba(220,226,245,0.92), rgba(230,218,255,0.96));
  }

  html[data-theme="dark"] body.nav-open .site-header,
  html[data-theme="dark"] body.nav-open header{
    background:rgba(22,28,44,0.96);
    border-bottom-color:rgba(190,200,230,0.16);
  }

  html[data-theme="dark"] .nav-links{
    background:linear-gradient(180deg, rgba(26,32,48,0.98), rgba(22,28,44,0.94));
    border-color:rgba(184,167,255,0.28);
    box-shadow:
      0 24px 70px rgba(0,0,0,0.45),
      inset 0 1px 0 rgba(255,255,255,0.06);
  }
  html[data-theme="dark"] body.nav-open .nav-links{
    background:linear-gradient(180deg, rgba(28,34,52,0.99), rgba(22,28,44,0.96));
  }

  html[data-theme="dark"] .nav-links .nav-link{
    background:rgba(28,34,52,0.92);
    border:1px solid rgba(190,200,230,0.2);
    border-radius:16px;
    padding:12px 12px;
    color:var(--text);
    box-shadow:none;
  }
  html[data-theme="dark"] .nav-links .nav-link:hover,
  html[data-theme="dark"] .nav-links .nav-link:active{
    background:rgba(38,46,72,0.96);
    border-color:rgba(184,167,255,0.38);
    color:var(--text);
    box-shadow:0 10px 26px rgba(6,10,18,0.35);
  }
  html[data-theme="dark"] .nav-links .nav-link.active{
    background:linear-gradient(90deg, rgba(184,167,255,0.18), rgba(159,214,255,0.12));
    border-color:rgba(184,167,255,0.42);
    color:var(--text);
    box-shadow:0 12px 30px rgba(94,91,168,0.18);
  }
}

/* Final dark-mode corrections (keep at end to win cascade). */
html[data-theme="dark"] #story .step{
  background:linear-gradient(180deg, rgba(28,34,52,0.94), rgba(21,27,42,0.92)) !important;
  border:1px solid rgba(190,200,230,0.24) !important;
  box-shadow:
    0 18px 40px rgba(6,10,18,0.48),
    inset 0 1px 0 rgba(255,255,255,0.06) !important;
  backdrop-filter: blur(10px) saturate(1.03);
  -webkit-backdrop-filter: blur(10px) saturate(1.03);
}

html[data-theme="dark"] #story .step h3{
  color:rgba(236,241,255,0.96) !important;
}

html[data-theme="dark"] #story .step p{
  color:rgba(191,201,227,0.92) !important;
}

html[data-theme="dark"] #story .step-num{
  color:rgba(226,232,248,0.92) !important;
  background:rgba(184,167,255,0.14) !important;
  border:1px solid rgba(190,200,230,0.28) !important;
}

html[data-theme="dark"] #benefits .stat{
  background:linear-gradient(180deg, rgba(28,34,52,0.94), rgba(21,27,42,0.92)) !important;
  border:1px solid rgba(190,200,230,0.24) !important;
  box-shadow:
    0 18px 40px rgba(6,10,18,0.48),
    inset 0 1px 0 rgba(255,255,255,0.06) !important;
}

html[data-theme="dark"] #benefits .stat-number{
  color:rgba(236,241,255,0.98) !important;
}

html[data-theme="dark"] #benefits .stat-label{
  color:rgba(210,220,242,0.92) !important;
}

html[data-theme="dark"] #benefits .stat-sub{
  color:rgba(188,199,226,0.88) !important;
}

/* Force transparent desktop nav links in dark mode */
@media (min-width: 861px){
  html[data-theme="dark"] .site-header .nav-links .nav-link,
  html[data-theme="dark"] .site-header .nav-links .nav-link.active,
  html[data-theme="dark"] .site-header .nav-links .nav-link:hover{
    background:transparent !important;
    border-color:transparent !important;
    box-shadow:none !important;
  }
}

/* Dark mode side aura outside content columns */
html[data-theme="dark"] body::before,
html[data-theme="dark"] body::after{
  opacity:0.34 !important;
}

html[data-theme="dark"] body::before{
  background:
    radial-gradient(74% 56% at 34% 24%, rgba(184,167,255,0.24), rgba(184,167,255,0.08) 50%, rgba(17,22,35,0) 84%),
    radial-gradient(74% 58% at 24% 64%, rgba(159,214,255,0.20), rgba(159,214,255,0.07) 48%, rgba(17,22,35,0) 84%),
    linear-gradient(90deg, rgba(94,106,156,0.18), rgba(17,22,35,0)) !important;
}

html[data-theme="dark"] body::after{
  background:
    radial-gradient(74% 56% at 66% 22%, rgba(159,214,255,0.24), rgba(159,214,255,0.08) 50%, rgba(17,22,35,0) 84%),
    radial-gradient(74% 58% at 76% 64%, rgba(184,167,255,0.20), rgba(184,167,255,0.07) 48%, rgba(17,22,35,0) 84%),
    linear-gradient(270deg, rgba(94,106,156,0.18), rgba(17,22,35,0)) !important;
}

/* Reduce the full-page “frame” depth layer on dark mode (fixes rim around nav/pages). */
html[data-theme="dark"]::before{
  opacity:0.022 !important;
  mix-blend-mode:normal !important;
}

html[data-theme="dark"]::after{
  opacity:0.06 !important;
  mix-blend-mode:normal !important;
  animation-duration:28s !important;
}

/* Extra safety: dim the light “screen” overlay layer in dark mode */
html[data-theme="dark"] body::after{
  mix-blend-mode:normal !important;
}

/* --- Shop page & cart drawer (VR Akademi) --- */
.nav-actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex-shrink:0;
}

.cart-toggle{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  border-radius:999px;
  border:1px solid rgba(94,91,168,0.14);
  background:rgba(255,255,255,0.72);
  box-shadow:0 10px 24px rgba(94,91,168,0.07);
  cursor:pointer;
  color:var(--deep);
  transition: transform var(--transition), box-shadow var(--transition), background var(--transition);
}
.cart-toggle:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 34px rgba(94,91,168,0.12);
}
.cart-toggle:focus{ outline:none; }
.cart-toggle:focus-visible{
  box-shadow:0 0 0 4px rgba(185,168,255,0.28);
}
.cart-toggle-icon{
  display:grid;
  place-items:center;
}
.cart-toggle-count{
  position:absolute;
  top:4px;
  right:4px;
  min-width:18px;
  height:18px;
  padding:0 5px;
  border-radius:999px;
  font-size:0.65rem;
  font-weight:800;
  line-height:18px;
  text-align:center;
  background:linear-gradient(135deg, rgba(185,168,255,0.95), rgba(198,231,255,0.95));
  color:var(--deep);
  box-shadow:0 4px 10px rgba(94,91,168,0.2);
  transition: opacity 0.35s var(--ease-silk), transform 0.35s var(--ease-silk);
}
.cart-toggle-count.is-empty{
  opacity:0;
  transform:scale(0.6);
  pointer-events:none;
}

body.cart-open{
  overflow:hidden;
}

.cart-drawer{
  position:fixed;
  inset:0;
  z-index:2200;
  pointer-events:none;
  visibility:hidden;
}
.cart-drawer.is-open{
  pointer-events:auto;
  visibility:visible;
}
.cart-drawer-backdrop{
  position:absolute;
  inset:0;
  background:rgba(29,29,45,0.38);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  opacity:0;
  transition: opacity 0.45s var(--ease-silk);
}
.cart-drawer.is-open .cart-drawer-backdrop{
  opacity:1;
}

.cart-drawer-panel{
  position:absolute;
  top:0;
  right:0;
  height:100%;
  width:min(420px, 100vw);
  background:
    linear-gradient(180deg, rgba(255,255,255,0.98), rgba(248,249,255,0.96));
  border-left:1px solid rgba(94,91,168,0.12);
  box-shadow:-24px 0 60px rgba(94,91,168,0.12);
  display:flex;
  flex-direction:column;
  transform:translateX(104%);
  transition: transform 0.55s var(--ease-premium);
}
.cart-drawer.is-open .cart-drawer-panel{
  transform:translateX(0);
}

.cart-drawer-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:22px 22px 14px;
  border-bottom:1px solid rgba(94,91,168,0.1);
}
.cart-drawer-title{
  margin:0;
  font-family:"Playfair Display", Georgia, serif;
  font-size:1.35rem;
  font-weight:650;
  color:var(--deep);
}
.cart-drawer-close{
  width:40px;
  height:40px;
  border-radius:999px;
  border:1px solid rgba(94,91,168,0.14);
  background:rgba(255,255,255,0.72);
  font-size:1.2rem;
  line-height:1;
  cursor:pointer;
  color:var(--muted);
  transition: color var(--transition), transform var(--transition);
}
.cart-drawer-close:hover{
  color:var(--deep);
  transform:rotate(90deg);
}

.cart-drawer-body{
  flex:1;
  overflow:auto;
  padding:16px 18px 24px;
  -webkit-overflow-scrolling:touch;
}

.cart-empty{
  margin:0;
  padding:28px 12px;
  text-align:center;
  color:var(--muted);
  font-size:0.98rem;
  line-height:1.6;
}

.cart-line{
  display:grid;
  grid-template-columns:72px 1fr 32px;
  gap:12px;
  align-items:start;
  padding:14px 0;
  border-bottom:1px solid rgba(94,91,168,0.08);
}
.cart-line:last-child{
  border-bottom:none;
}
.cart-line-img{
  border-radius:var(--radius-md);
  overflow:hidden;
  aspect-ratio:3/4;
  background:rgba(255,255,255,0.7);
  box-shadow:0 8px 22px rgba(94,91,168,0.12);
}
.cart-line-img img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.cart-line-type{
  font-size:0.72rem;
  font-weight:800;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:rgba(94,91,168,0.75);
  margin-bottom:4px;
}
.cart-line-title{
  font-weight:800;
  color:var(--deep);
  font-size:0.98rem;
  line-height:1.35;
  margin-bottom:6px;
}
.cart-line-price{
  font-weight:800;
  color:var(--deep);
  font-size:0.92rem;
  margin-bottom:10px;
}
.cart-line-qty{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:4px 8px;
  border-radius:999px;
  border:1px solid rgba(94,91,168,0.14);
  background:rgba(255,255,255,0.72);
}
.cart-line-qty button{
  width:28px;
  height:28px;
  border-radius:999px;
  border:1px solid rgba(94,91,168,0.14);
  background:rgba(248,249,255,0.9);
  cursor:pointer;
  font-size:1rem;
  line-height:1;
  color:var(--deep);
  transition: transform var(--transition), background var(--transition);
}
.cart-line-qty button:hover{
  transform:scale(1.06);
  background:rgba(255,255,255,1);
}
.cart-line-qty-val{
  min-width:22px;
  text-align:center;
  font-weight:800;
  font-size:0.92rem;
  color:var(--text);
}
.cart-line-remove{
  align-self:start;
  width:32px;
  height:32px;
  border-radius:10px;
  border:1px solid rgba(94,91,168,0.14);
  background:transparent;
  cursor:pointer;
  color:var(--muted);
  font-size:1.1rem;
  line-height:1;
  transition: color var(--transition), background var(--transition);
}
.cart-line-remove:hover{
  color:var(--deep);
  background:rgba(255,230,242,0.45);
}

.cart-drawer-foot{
  padding:18px 20px 28px;
  border-top:1px solid rgba(94,91,168,0.1);
  background:linear-gradient(180deg, rgba(255,255,255,0.55), rgba(248,249,255,0.96));
}
.cart-drawer-total{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
  font-size:1.05rem;
  color:var(--muted);
}
.cart-drawer-total strong{
  font-size:1.25rem;
  color:var(--deep);
  font-weight:800;
}
.cart-drawer-note{
  margin:0 0 16px;
  font-size:0.88rem;
  line-height:1.55;
  color:var(--muted);
}
.cart-checkout-btn{
  width:100%;
  justify-content:center;
}

.shop-filters{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:center;
  margin-bottom:28px;
}
.shop-filter-btn{
  border:1px solid rgba(94,91,168,0.16);
  background:rgba(255,255,255,0.72);
  color:var(--muted);
  font-weight:800;
  font-size:0.92rem;
  padding:10px 18px;
  border-radius:999px;
  cursor:pointer;
  transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition), color var(--transition), background var(--transition);
}
.shop-filter-btn:hover{
  transform:translateY(-1px);
  color:var(--deep);
  border-color:rgba(185,168,255,0.45);
}
.shop-filter-btn.active{
  color:var(--deep);
  border-color:rgba(185,168,255,0.55);
  background:linear-gradient(120deg, rgba(255,255,255,0.95), rgba(230,236,255,0.75));
  box-shadow:0 10px 28px rgba(94,91,168,0.1);
}
.shop-product-actions{
  flex-direction:column;
  align-items:stretch;
  gap:12px;
}
.shop-product-actions .btn{
  width:100%;
  justify-content:center;
}

@media (max-width: 860px){
  .nav-actions{
    order:2;
    margin-left:auto;
    gap:8px;
  }
  .theme-toggle{
    order:unset;
    margin-left:unset;
  }
}

html[data-theme="dark"] .cart-toggle{
  background:rgba(28,34,52,0.92);
  border-color:rgba(190,200,230,0.16);
  color:rgba(236,241,255,0.96);
  box-shadow:0 10px 28px rgba(6,10,18,0.48);
}
html[data-theme="dark"] .cart-toggle-count{
  background:linear-gradient(135deg, rgba(184,167,255,0.35), rgba(159,214,255,0.28));
  color:rgba(236,241,255,0.96);
  box-shadow:0 6px 16px rgba(6,10,18,0.48);
}
html[data-theme="dark"] .cart-drawer-panel{
  background:linear-gradient(180deg, rgba(22,28,44,0.98), rgba(17,22,35,0.98));
  border-left-color:rgba(190,200,230,0.14);
  box-shadow:-24px 0 60px rgba(6,10,18,0.55);
}
html[data-theme="dark"] .cart-drawer-title{
  color:rgba(236,241,255,0.96);
}
html[data-theme="dark"] .cart-drawer-close{
  background:rgba(28,34,52,0.92);
  border-color:rgba(190,200,230,0.16);
  color:rgba(210,220,242,0.92);
}
html[data-theme="dark"] .cart-line-title,
html[data-theme="dark"] .cart-line-price{
  color:rgba(236,241,255,0.96);
}
html[data-theme="dark"] .cart-line-qty{
  background:rgba(28,34,52,0.92);
  border-color:rgba(190,200,230,0.16);
}
html[data-theme="dark"] .cart-line-qty button{
  background:rgba(22,28,44,0.98);
  border-color:rgba(190,200,230,0.16);
  color:rgba(236,241,255,0.92);
}
html[data-theme="dark"] .cart-drawer-foot{
  background:linear-gradient(180deg, rgba(22,28,44,0.92), rgba(17,22,35,0.98));
  border-top-color:rgba(190,200,230,0.12);
}
html[data-theme="dark"] .shop-filter-btn{
  background:rgba(28,34,52,0.92);
  border-color:rgba(190,200,230,0.16);
  color:rgba(191,201,227,0.92);
}
html[data-theme="dark"] .shop-filter-btn.active{
  background:linear-gradient(120deg, rgba(32,40,62,0.95), rgba(28,34,52,0.94));
  color:rgba(236,241,255,0.96);
  border-color:rgba(184,167,255,0.35);
}

@media (prefers-reduced-motion: reduce){
  .cart-drawer-panel,
  .cart-drawer-backdrop{
    transition:none !important;
  }
}

/* Cart toast + line refinements */
.cart-toast{
  position:fixed;
  bottom:28px;
  left:50%;
  transform:translateX(-50%) translateY(16px);
  z-index:2300;
  max-width:min(420px, calc(100vw - 32px));
  padding:14px 22px;
  border-radius:999px;
  font-size:0.95rem;
  font-weight:750;
  color:var(--deep);
  background:linear-gradient(120deg, rgba(255,255,255,0.96), rgba(240,244,255,0.94));
  border:1px solid rgba(185,168,255,0.35);
  box-shadow:0 18px 50px rgba(94,91,168,0.18);
  opacity:0;
  pointer-events:none;
  transition: opacity 0.45s var(--ease-silk), transform 0.55s var(--ease-premium);
}
.cart-toast.is-visible{
  opacity:1;
  transform:translateX(-50%) translateY(0);
  pointer-events:auto;
}
.cart-line-img--placeholder{
  display:grid;
  place-items:center;
  background:linear-gradient(145deg, rgba(185,168,255,0.22), rgba(198,231,255,0.18));
}
.cart-line-ph{
  font-size:1.35rem;
  opacity:0.85;
  line-height:1;
}
.cart-line-oneplan{
  margin-top:8px;
  font-size:0.82rem;
  font-weight:750;
  color:var(--muted);
  letter-spacing:0.02em;
}

html[data-theme="dark"] .cart-toast{
  background:linear-gradient(120deg, rgba(28,34,52,0.96), rgba(22,28,44,0.94));
  border-color:rgba(190,200,230,0.22);
  color:rgba(236,241,255,0.96);
  box-shadow:0 22px 56px rgba(6,10,18,0.55);
}
html[data-theme="dark"] .cart-line-img--placeholder{
  background:linear-gradient(145deg, rgba(184,167,255,0.16), rgba(159,214,255,0.12));
}
html[data-theme="dark"] .cart-line-oneplan{
  color:rgba(188,199,226,0.88);
}

/* Catalog grids: full-width add buttons */
.product-actions--stack{
  flex-direction:column !important;
  align-items:stretch !important;
  gap:12px !important;
}
.product-actions--stack .btn{
  width:100%;
  justify-content:center;
}

/* Shop membership product cards */
.shop-product-card--membership{
  position:relative;
}
.shop-membership-visual{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:220px;
  border-radius:var(--radius-xl);
  background:
    radial-gradient(120% 80% at 50% 20%, rgba(255,255,255,0.55), rgba(255,255,255,0)),
    linear-gradient(160deg, rgba(185,168,255,0.28), rgba(198,231,255,0.22), rgba(255,230,242,0.2));
}
.shop-membership-mark{
  font-size:2.1rem;
  line-height:1;
  opacity:0.85;
}
.shop-membership-label{
  font-size:0.78rem;
  font-weight:900;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:rgba(94,91,168,0.75);
}
.shop-membership-featured .shop-membership-visual{
  background:
    radial-gradient(120% 80% at 50% 18%, rgba(255,255,255,0.62), rgba(255,255,255,0)),
    linear-gradient(160deg, rgba(185,168,255,0.38), rgba(198,231,255,0.28), rgba(255,230,242,0.24));
}
html[data-theme="dark"] .shop-membership-visual{
  background:
    radial-gradient(120% 80% at 50% 20%, rgba(255,255,255,0.06), rgba(255,255,255,0)),
    linear-gradient(160deg, rgba(184,167,255,0.14), rgba(159,214,255,0.1), rgba(28,34,52,0.2));
}
html[data-theme="dark"] .shop-membership-label{
  color:rgba(210,220,242,0.85);
}

/* Journeys: primary buy control as button */
#journeys .journeys-buy-btn{
  text-decoration:none;
  border:none;
  cursor:pointer;
  font:inherit;
}
#journeys .journeys-nav{
  align-items:center;
}

/* Index: keep course heading less dominant */
#journeys .section-title{
  font-size:1.72rem;
  line-height:1.2;
}
#journeys .section-subtitle{
  max-width:640px;
  margin-bottom:30px;
}

html[data-theme="dark"] #journeys .journeys-nav-btn{
  background:rgba(28,34,52,0.94);
  border:1px solid rgba(184,167,255,0.32);
  color:var(--text);
  box-shadow:0 10px 26px rgba(6,10,18,0.42);
}
html[data-theme="dark"] #journeys .journeys-nav-btn:hover{
  background:rgba(38,46,72,0.98);
  border-color:rgba(198,210,255,0.42);
  box-shadow:0 14px 34px rgba(94,91,168,0.22);
}

@media (prefers-reduced-motion: reduce){
  .cart-toast{
    transition:none !important;
  }
}

/* --- Checkout & payment (demo UI) --- */
.cart-checkout-alt{
  width:100%;
  justify-content:center;
  margin-top:10px;
  font-size:0.92rem;
}

.checkout-hero{
  padding-bottom:18px;
}
.checkout-steps{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:22px;
}
.checkout-step{
  display:flex;
  align-items:center;
  gap:10px;
  padding:8px 14px;
  border-radius:999px;
  border:1px solid rgba(94,91,168,0.12);
  background:rgba(255,255,255,0.55);
  color:var(--muted);
  font-size:0.88rem;
  font-weight:750;
}
.checkout-step.is-active{
  border-color:rgba(185,168,255,0.45);
  background:linear-gradient(120deg, rgba(255,255,255,0.95), rgba(236,240,255,0.85));
  color:var(--deep);
  box-shadow:0 10px 28px rgba(94,91,168,0.1);
}
.checkout-step.is-done{
  color:var(--deep);
  border-color:rgba(185,168,255,0.22);
}
.checkout-step-num{
  width:26px;
  height:26px;
  border-radius:999px;
  display:grid;
  place-items:center;
  font-size:0.8rem;
  font-weight:900;
  background:rgba(185,168,255,0.22);
  color:var(--deep);
}
.checkout-step.is-active .checkout-step-num{
  background:linear-gradient(135deg, rgba(185,168,255,0.55), rgba(198,231,255,0.5));
}
.checkout-step-line{
  width:28px;
  height:2px;
  border-radius:99px;
  background:linear-gradient(90deg, rgba(185,168,255,0.35), rgba(198,231,255,0.35));
}
.checkout-page-title{
  font-family:"Playfair Display", Georgia, serif;
  text-align:center;
  font-size:clamp(1.75rem, 4vw, 2.35rem);
  margin:0 0 10px;
  color:var(--deep);
}
.checkout-page-sub{
  text-align:center;
  max-width:640px;
  margin:0 auto;
  color:var(--muted);
  font-size:1.02rem;
  line-height:1.55;
}

.checkout-grid{
  display:grid;
  grid-template-columns: minmax(0,1.12fr) minmax(280px,0.88fr);
  gap:32px;
  align-items:start;
}
.checkout-col--aside{
  position:sticky;
  top:calc(var(--header-h) + 12px);
}
.checkout-form{
  padding:28px 26px 32px;
}
.checkout-block-title{
  margin:0 0 18px;
  font-family:"Playfair Display", Georgia, serif;
  font-size:1.25rem;
  color:var(--deep);
}
.checkout-block-title--spaced{
  margin-top:32px;
}
.checkout-form-grid{
  gap:16px;
}
.checkout-form-grid .field--full{
  grid-column:1 / -1;
}
.checkout-combo-field .checkout-combo{
  position:relative;
}
.checkout-combo-field .checkout-combo > input[type="text"]{
  width:100%;
}
.checkout-combo-list{
  position:absolute;
  left:0;
  right:0;
  top:calc(100% + 4px);
  z-index:40;
  margin:0;
  padding:6px 0;
  list-style:none;
  max-height:min(280px, 42vh);
  overflow-y:auto;
  border-radius:var(--radius-md, 10px);
  border:1px solid rgba(94,91,168,0.18);
  background:rgba(255,255,255,0.98);
  box-shadow:0 12px 32px rgba(40,35,80,0.12);
}
.checkout-combo-list[hidden]{
  display:none !important;
}
.checkout-combo-list li{
  padding:8px 14px;
  font-size:0.95rem;
  cursor:pointer;
  color:var(--deep);
}
.checkout-combo-list li:hover,
.checkout-combo-list li.is-active{
  background:rgba(185,168,255,0.2);
}
.checkout-combo-hint{
  margin:6px 0 0;
  font-size:0.82rem;
  color:var(--muted);
  line-height:1.45;
}
.checkout-account-opt{
  margin-top:18px;
  padding-top:18px;
  border-top:1px solid rgba(94,91,168,0.1);
}
.checkout-pay-intro{
  margin:-6px 0 18px;
  font-size:0.92rem;
  color:var(--muted);
  line-height:1.5;
}

.payment-methods{
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
  margin-bottom:22px;
}
@media (min-width: 640px){
  .payment-methods{
    grid-template-columns:repeat(3, minmax(0,1fr));
  }
}
.payment-card{
  position:relative;
  cursor:pointer;
  margin:0;
}
.payment-card input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.payment-card-inner{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:16px 16px;
  border-radius:var(--radius-lg);
  border:1px solid rgba(94,91,168,0.14);
  background:rgba(255,255,255,0.72);
  transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition);
  min-height:100%;
}
.payment-card input:checked + .payment-card-inner{
  border-color:rgba(185,168,255,0.55);
  box-shadow:0 14px 36px rgba(94,91,168,0.12);
  transform:translateY(-2px);
}
.payment-card:focus-within .payment-card-inner{
  outline:2px solid rgba(185,168,255,0.35);
  outline-offset:2px;
}
.payment-card-title{
  font-weight:900;
  color:var(--deep);
  font-size:0.98rem;
}
.payment-card-desc{
  font-size:0.86rem;
  color:var(--muted);
  line-height:1.45;
}
.payment-card-badge{
  align-self:flex-start;
  margin-top:4px;
  font-size:0.68rem;
  font-weight:900;
  letter-spacing:0.06em;
  text-transform:uppercase;
  padding:4px 8px;
  border-radius:999px;
  background:rgba(185,168,255,0.25);
  color:var(--deep);
}

.checkout-subtitle{
  margin:0 0 12px;
  font-size:1rem;
  font-weight:850;
  color:var(--deep);
}
.checkout-card-fields{
  margin-bottom:0;
}
.checkout-card-input-block{
  padding:18px 20px 22px;
  border-radius:var(--radius-lg);
  border:1px dashed rgba(185,168,255,0.35);
  background:rgba(248,249,255,0.65);
  margin-top:8px;
}
.checkout-card-input-hint{
  margin:-4px 0 16px;
  font-size:0.88rem;
  color:var(--muted);
  line-height:1.45;
}
.checkout-card-row{
  grid-template-columns:1fr 1fr;
}

.checkout-payment-detail{
  margin-bottom:22px;
}
.checkout-bank-fields{
  margin-bottom:0;
}
.checkout-bank-panel{
  padding:20px 22px 22px;
  border-radius:var(--radius-lg);
  border:1px dashed rgba(185,168,255,0.35);
  background:rgba(248,249,255,0.65);
  box-shadow:0 12px 32px rgba(94,91,168,0.06);
}
.checkout-bank-lead{
  margin:0 0 16px;
  font-size:0.94rem;
  line-height:1.55;
  color:var(--deep);
  font-weight:650;
}
.checkout-bank-rule{
  height:1px;
  margin:16px 0;
  background:linear-gradient(
    90deg,
    rgba(185,168,255,0),
    rgba(185,168,255,0.45),
    rgba(185,168,255,0)
  );
  border:0;
}
.checkout-bank-heading{
  margin:0 0 14px;
  font-size:0.95rem;
  font-weight:850;
  color:var(--deep);
}
.checkout-bank-accounts{
  display:grid;
  gap:14px;
}
@media (min-width: 720px){
  .checkout-bank-accounts{
    grid-template-columns:1fr 1fr;
    gap:16px;
  }
}
.checkout-bank-account-card{
  padding:14px 16px 16px;
  border-radius:var(--radius-md);
  border:1px solid rgba(94,91,168,0.12);
  background:rgba(255,255,255,0.75);
}
.checkout-bank-dl{
  margin:0;
}
.checkout-bank-dl-row{
  display:grid;
  gap:4px;
  margin-bottom:12px;
}
.checkout-bank-dl-row:last-child{
  margin-bottom:0;
}
.checkout-bank-dl dt{
  margin:0;
  font-size:0.68rem;
  font-weight:800;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--muted);
}
.checkout-bank-dl dd{
  margin:0;
  font-size:0.9rem;
  font-weight:650;
  line-height:1.45;
  color:var(--deep);
}
.checkout-bank-mono{
  font-family: ui-monospace, "SF Mono", Menlo, monospace;
  font-size:0.88rem;
  font-weight:700;
  letter-spacing:0.04em;
  word-break:break-all;
}
.checkout-bank-note{
  margin:0 0 10px;
  font-size:0.88rem;
  line-height:1.55;
  color:var(--muted);
}
.checkout-bank-note strong{
  color:var(--deep);
  font-weight:850;
}
.checkout-bank-note a{
  color:var(--deep);
  font-weight:750;
  text-decoration:underline;
  text-underline-offset:3px;
}
.checkout-bank-thanks{
  margin:0;
  font-size:0.9rem;
  font-weight:750;
  color:var(--deep);
}

.checkout-checkbox{
  display:flex;
  gap:12px;
  align-items:flex-start;
  font-size:0.92rem;
  color:var(--muted);
  font-weight:750;
  line-height:1.45;
}
.checkout-checkbox input{
  margin-top:4px;
  width:18px;
  height:18px;
  flex-shrink:0;
}
.checkout-checkbox a{
  color:var(--deep);
  text-decoration:underline;
  text-underline-offset:3px;
}
.checkout-checkbox--terms{
  margin-top:8px;
}

.checkout-error{
  margin:14px 0 0;
  min-height:1.2em;
  font-size:0.92rem;
  font-weight:800;
  color:#b44;
}
html[data-theme="dark"] .checkout-error{
  color:#f3a8a8;
}

.checkout-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:center;
  margin-top:22px;
}
.checkout-submit-btn{
  min-width:200px;
  justify-content:center;
}

.checkout-summary-card{
  padding:22px 20px;
}
.checkout-summary-heading{
  margin:0 0 16px;
  font-family:"Playfair Display", Georgia, serif;
  font-size:1.15rem;
  color:var(--deep);
}
.checkout-summary-lines{
  display:flex;
  flex-direction:column;
  gap:14px;
  margin-bottom:18px;
}
.checkout-summary-line{
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:flex-start;
  padding-bottom:14px;
  border-bottom:1px solid rgba(94,91,168,0.1);
}
.checkout-summary-line:last-child{
  border-bottom:none;
  padding-bottom:0;
}
.checkout-summary-line--post{
  margin-top:4px;
  padding-top:16px;
  border-top:1px dashed rgba(94,91,168,0.2);
  border-bottom:none;
}
.checkout-summary-line--post .checkout-summary-type{
  color:rgba(94,91,168,0.65);
}
html[data-theme="dark"] .checkout-summary-line--post{
  border-top-color:rgba(185,168,255,0.2);
}
.checkout-summary-type{
  display:block;
  font-size:0.72rem;
  font-weight:900;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:rgba(94,91,168,0.75);
  margin-bottom:4px;
}
.checkout-summary-title{
  display:block;
  font-weight:800;
  color:var(--deep);
  font-size:0.95rem;
  line-height:1.35;
}
.checkout-summary-meta{
  display:block;
  font-size:0.86rem;
  color:var(--muted);
  margin-top:4px;
}
.checkout-summary-line-price{
  font-weight:900;
  color:var(--deep);
  white-space:nowrap;
}
.checkout-summary-total{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  padding-top:14px;
  margin-top:6px;
  border-top:1px solid rgba(94,91,168,0.14);
  font-size:1.05rem;
  color:var(--muted);
}
.checkout-summary-total strong{
  font-size:1.35rem;
  color:var(--deep);
}
.checkout-summary-hint{
  margin:14px 0 0;
  font-size:0.82rem;
  line-height:1.5;
  color:var(--muted);
}

.checkout-trust{
  margin-top:18px;
  padding:20px 18px;
}
.checkout-trust-title{
  margin:0 0 10px;
  font-size:1.02rem;
  font-weight:900;
  color:var(--deep);
}
.checkout-trust-list{
  margin:0;
  padding-left:18px;
  color:var(--muted);
  font-size:0.9rem;
  line-height:1.55;
}

.checkout-success-section{
  min-height:52vh;
  display:flex;
  align-items:center;
}
.checkout-success-inner{
  max-width:560px;
  margin:0 auto;
  text-align:center;
}
.checkout-success-icon{
  width:64px;
  height:64px;
  margin:0 auto 18px;
  border-radius:999px;
  display:grid;
  place-items:center;
  font-size:1.6rem;
  font-weight:900;
  color:var(--deep);
  background:linear-gradient(135deg, rgba(185,168,255,0.45), rgba(198,231,255,0.4));
  box-shadow:0 16px 40px rgba(94,91,168,0.15);
}
.checkout-success-title{
  font-family:"Playfair Display", Georgia, serif;
  font-size:clamp(1.8rem, 4vw, 2.4rem);
  margin:0 0 12px;
  color:var(--deep);
}
.checkout-success-lead{
  color:var(--muted);
  line-height:1.6;
  margin:0 0 22px;
}
.checkout-success-ref{
  padding:20px 22px;
  display:flex;
  flex-direction:column;
  gap:8px;
  align-items:center;
  text-align:center;
}
.checkout-success-ref-label{
  font-size:0.82rem;
  font-weight:900;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--muted);
}
.checkout-success-ref-value{
  font-size:1.35rem;
  font-weight:900;
  color:var(--deep);
  letter-spacing:0.04em;
}
.checkout-success-note{
  font-size:0.88rem;
  color:var(--muted);
  line-height:1.55;
  margin:18px 0 0;
}

@media (max-width: 900px){
  .checkout-grid{
    grid-template-columns:1fr;
  }
  .checkout-col--aside{
    position:static;
    order:-1;
  }
}

@media (max-width: 640px){
  .checkout-form-grid{
    grid-template-columns:1fr;
  }
  .checkout-card-row{
    grid-template-columns:1fr;
  }
  .checkout-step-line{
    display:none;
  }
}

html[data-theme="dark"] .checkout-step{
  background:rgba(28,34,52,0.88);
  border-color:rgba(190,200,230,0.14);
}
html[data-theme="dark"] .checkout-step.is-active{
  background:linear-gradient(120deg, rgba(32,40,62,0.95), rgba(28,34,52,0.92));
  border-color:rgba(184,167,255,0.28);
}
html[data-theme="dark"] .payment-card-inner{
  background:rgba(28,34,52,0.92);
  border-color:rgba(190,200,230,0.16);
}
html[data-theme="dark"] .payment-card input:checked + .payment-card-inner{
  border-color:rgba(184,167,255,0.4);
}
html[data-theme="dark"] .checkout-card-input-block{
  background:rgba(22,28,44,0.75);
  border-color:rgba(190,200,230,0.2);
}
html[data-theme="dark"] .checkout-combo-list{
  border-color:rgba(185,168,255,0.22);
  background:rgba(28,26,44,0.98);
  box-shadow:0 16px 40px rgba(0,0,0,0.45);
}
html[data-theme="dark"] .checkout-combo-list li{
  color:rgba(248,246,255,0.92);
}
html[data-theme="dark"] .checkout-combo-list li:hover,
html[data-theme="dark"] .checkout-combo-list li.is-active{
  background:rgba(185,168,255,0.14);
}
html[data-theme="dark"] .checkout-combo-hint{
  color:rgba(200,196,230,0.75);
}
html[data-theme="dark"] .checkout-form input:not([type="checkbox"]):not([type="radio"]),
html[data-theme="dark"] .checkout-form textarea,
html[data-theme="dark"] .checkout-form select{
  background:rgba(28,34,52,0.92);
  border-color:rgba(190,200,230,0.16);
  color:var(--text);
}
html[data-theme="dark"] .checkout-form input::placeholder,
html[data-theme="dark"] .checkout-form textarea::placeholder{
  color:rgba(190,200,230,0.62);
}
html[data-theme="dark"] .checkout-bank-panel{
  background:rgba(22,28,44,0.75);
  border-color:rgba(190,200,230,0.2);
  box-shadow:0 14px 40px rgba(0,0,0,0.35);
}
html[data-theme="dark"] .checkout-bank-account-card{
  background:rgba(28,34,52,0.92);
  border-color:rgba(190,200,230,0.16);
}

/* --- Premium 3D card preview (checkout) --- */
.checkout-card-preview{
  margin:0 auto 8px;
  max-width:440px;
}
.checkout-card-3d-wrap{
  perspective:1400px;
  perspective-origin:50% 50%;
}
.checkout-card-3d{
  position:relative;
  width:100%;
  aspect-ratio:1.586;
  transform-style:preserve-3d;
  transition: transform 0.75s cubic-bezier(.22,1,.36,1);
  will-change:transform;
}
.checkout-card-3d.is-flipped{
  transform:rotateY(180deg);
}
.checkout-card-face{
  position:absolute;
  inset:0;
  border-radius:22px;
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
  overflow:hidden;
  box-shadow:
    0 18px 50px rgba(94,91,168,0.22),
    0 2px 0 rgba(255,255,255,0.35) inset,
    0 -1px 0 rgba(0,0,0,0.08) inset;
}
.checkout-card-front{
  background:
    radial-gradient(120% 90% at 12% -10%, rgba(255,255,255,0.55), rgba(255,255,255,0) 52%),
    radial-gradient(90% 80% at 92% 108%, rgba(255,230,242,0.45), rgba(255,255,255,0) 48%),
    linear-gradient(135deg, #3d3a6a 0%, #5e5ba8 28%, #7b6ec4 52%, #5a6bb8 78%, #4a4a7a 100%);
  color:rgba(255,255,255,0.96);
  padding:22px 22px 20px;
  display:flex;
  flex-direction:column;
}
.checkout-card-front-glow{
  position:absolute;
  inset:-40%;
  background:
    radial-gradient(ellipse 50% 40% at 30% 20%, rgba(255,255,255,0.22), rgba(255,255,255,0) 62%),
    radial-gradient(ellipse 45% 35% at 78% 70%, rgba(198,231,255,0.18), rgba(255,255,255,0) 58%);
  animation: checkoutCardShimmer 8s ease-in-out infinite;
  pointer-events:none;
  mix-blend-mode:screen;
  opacity:0.6;
}
@keyframes checkoutCardShimmer{
  0%, 100%{ transform: translate3d(0,0,0) scale(1); opacity:0.5; }
  50%{ transform: translate3d(4%,-3%,0) scale(1.04); opacity:0.75; }
}
.checkout-card-top{
  position:relative;
  z-index:1;
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  margin-bottom:14px;
}
.checkout-card-chip{
  width:46px;
  height:34px;
  border-radius:8px;
  background:linear-gradient(145deg, #e8d5a8 0%, #c4a574 35%, #f0e4c8 55%, #a08050 100%);
  box-shadow:
    0 2px 4px rgba(0,0,0,0.25) inset,
    0 3px 10px rgba(0,0,0,0.25);
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:4px;
  padding:0 8px;
}
.checkout-card-chip-line{
  height:3px;
  border-radius:999px;
  background:rgba(0,0,0,0.08);
}
.checkout-card-contactless{
  width:36px;
  height:36px;
  color:rgba(255,255,255,0.55);
}
.checkout-card-contactless svg{
  width:100%;
  height:100%;
}
.checkout-card-number{
  position:relative;
  z-index:1;
  font-family: ui-monospace, "SF Mono", "SFMono-Regular", Menlo, Monaco, Consolas, monospace;
  font-size:clamp(0.9rem, 2.6vw, 1.18rem);
  font-weight:600;
  letter-spacing:0.14em;
  margin-top:auto;
  margin-bottom:auto;
  text-shadow:0 2px 8px rgba(0,0,0,0.35);
  line-height:1.45;
  min-height:2.6em;
}
.checkout-card-num-inner{
  font-variant-numeric: tabular-nums;
}
.checkout-card-bottom{
  position:relative;
  z-index:1;
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:16px;
  margin-top:6px;
}
.checkout-card-hint{
  display:block;
  font-size:0.62rem;
  font-weight:800;
  letter-spacing:0.14em;
  text-transform:uppercase;
  opacity:0.58;
  margin-bottom:4px;
}
.checkout-card-name{
  font-size:0.82rem;
  font-weight:800;
  letter-spacing:0.08em;
  text-transform:uppercase;
  max-width:200px;
  line-height:1.25;
  word-break:break-word;
}
.checkout-card-exp{
  font-family: ui-monospace, "SF Mono", Menlo, monospace;
  font-size:0.95rem;
  font-weight:700;
  letter-spacing:0.1em;
}
.checkout-card-brand{
  position:absolute;
  top:20px;
  right:20px;
  z-index:2;
}
.checkout-card-brand-mark{
  width:42px;
  height:42px;
  border-radius:14px;
  display:grid;
  place-items:center;
  font-size:0.8rem;
  font-weight:900;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:rgba(255,255,255,0.92);
  background:rgba(255,255,255,0.12);
  border:1px solid rgba(255,255,255,0.28);
  box-shadow:0 8px 22px rgba(0,0,0,0.2);
  backdrop-filter:blur(6px);
}

.checkout-card-back{
  transform:rotateY(180deg);
  background:linear-gradient(180deg, #4a4878 0%, #3d3b68 40%, #2f2d55 100%);
  color:rgba(255,255,255,0.96);
  padding:0;
  display:flex;
  flex-direction:column;
}
.checkout-card-magstripe{
  height:52px;
  margin-top:28px;
  background:linear-gradient(180deg, #1a1a24 0%, #111118 100%);
  box-shadow:0 2px 0 rgba(255,255,255,0.06) inset;
}
.checkout-card-back-body{
  padding:0 22px 18px;
  flex:1;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.checkout-card-cvc-panel{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
  margin-top:18px;
  padding:12px 16px;
  border-radius:12px;
  background:rgba(255,255,255,0.94);
  color:#1a1a24;
  box-shadow:0 10px 28px rgba(0,0,0,0.25);
}
.checkout-card-cvc-label{
  font-size:0.78rem;
  font-weight:900;
  letter-spacing:0.12em;
  color:var(--muted);
}
.checkout-card-cvc{
  font-family: ui-monospace, Menlo, monospace;
  font-size:1.1rem;
  font-weight:800;
  letter-spacing:0.2em;
  min-width:3.2em;
  text-align:right;
}
.checkout-card-demo-note{
  margin:14px 0 0;
  font-size:0.72rem;
  font-weight:750;
  color:rgba(255,255,255,0.45);
  text-align:center;
}

@media (prefers-reduced-motion: reduce){
  .checkout-card-3d{
    transition-duration:0.01ms;
  }
  .checkout-card-front-glow{
    animation:none;
  }
}

html[data-theme="dark"] .checkout-card-front{
  box-shadow:
    0 22px 56px rgba(6,10,18,0.55),
    0 2px 0 rgba(255,255,255,0.08) inset;
}
html[data-theme="dark"] .checkout-card-back{
  box-shadow:
    0 22px 56px rgba(6,10,18,0.55),
    0 2px 0 rgba(255,255,255,0.08) inset;
}

/* Tablet nav stabilization (iPad / iPad mini ranges). */
@media (min-width: 861px) and (max-width: 1120px){
  .nav{
    min-height:72px;
    gap:12px;
  }
  .logo-picture{
    width:188px;
    height:52px;
  }
  .nav-links{
    flex:1;
    min-width:0;
    justify-content:center;
    gap:14px;
    font-size:0.88rem;
  }
  .nav-links a,
  .nav-link{
    white-space:nowrap;
    padding:8px 0;
  }
  .nav-actions{
    gap:8px;
  }
  .cart-toggle{
    width:40px;
    height:40px;
  }
  .theme-toggle{
    height:40px;
    padding:0 10px;
    gap:6px;
  }
  .theme-toggle-label{
    display:none;
  }
}

@media (min-width: 861px) and (max-width: 980px){
  .logo-picture{
    width:170px;
    height:46px;
  }
  .nav-links{
    gap:10px;
    font-size:0.81rem;
  }
}

/* Final iPhone header fix: keep all controls inside screen width. */
@media (max-width: 430px){
  .container.nav{
    width:96% !important;
  }
  .nav{
    min-height:66px !important;
    gap:6px !important;
    flex-wrap:nowrap !important;
  }
  .logo{
    min-width:0;
  }
  .logo-picture{
    width:106px !important;
    height:32px !important;
  }
  .nav-actions{
    gap:4px !important;
  }
  .nav-toggle{
    order:3 !important;
    margin-left:0 !important;
  }
  .nav-toggle,
  .cart-toggle,
  .theme-toggle{
    width:34px !important;
    height:34px !important;
    min-width:34px !important;
    padding:0 !important;
  }
  .theme-toggle{
    gap:0 !important;
  }
  .theme-toggle-label{
    display:none !important;
  }
  .theme-toggle-icon{
    width:16px !important;
    height:16px !important;
    font-size:0.72rem !important;
  }
}

/* Keep real page header pinned while scrolling (iOS-safe). */
header[data-site-header],
#siteHeader{
  position:sticky !important;
  top:0 !important;
  z-index:1800 !important;
}

/* --- Shop catalog: grouped sections + index-matching book & membership cards --- */
.shop-catalog-stack{
  margin-top:10px;
}
.shop-catalog-group + .shop-catalog-group{
  margin-top:40px;
  padding-top:28px;
  border-top:1px solid rgba(94,91,168,0.1);
}
#shop-catalog .shop-catalog-group-head{
  text-align:start;
  margin:0 0 12px;
  padding:0;
  background:none;
  border:none;
  box-shadow:none;
}
#shop-catalog .shop-catalog-group-title{
  margin:0 0 14px;
  text-align:start;
  font-family:"Playfair Display", ui-serif, Georgia, "Times New Roman", Times, serif;
  font-size:clamp(1.28rem, 2.1vw, 1.65rem);
  font-weight:600;
  line-height:1.2;
  letter-spacing:-0.02em;
  color:var(--deep);
}

/* Books in shop: mirror #featured-books layout */
#shop-catalog .shop-catalog-group--books .product-grid{
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:22px;
}
#shop-catalog .shop-catalog-group--books .product-top img{
  max-height:100%;
  width:auto;
  max-width:100%;
  object-fit:contain;
}
#shop-catalog .shop-catalog-group--books .book-card{
  text-align:center;
  padding:20px 18px 22px !important;
}
#shop-catalog .shop-catalog-group--books .book-card .product-top{
  height:auto;
  aspect-ratio:3 / 4.15;
  max-height:240px;
  width:100%;
  max-width:min(200px, 88%);
  margin:2px auto 4px;
  border-radius:14px 16px 16px 14px;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.9),
    0 14px 36px rgba(45,42,92,0.12),
    2px 0 0 rgba(185,168,255,0.08);
}
#shop-catalog .shop-catalog-group--books .book-card .product-top img{
  width:100%;
  height:100%;
  max-height:none;
  object-fit:contain;
  filter:drop-shadow(0 18px 26px rgba(28,24,58,0.16));
}
#shop-catalog .shop-catalog-group--books .book-card .product-title{
  margin-top:14px;
  margin-bottom:6px;
  font-size:1.22rem;
  line-height:1.2;
  text-wrap:balance;
}
#shop-catalog .shop-catalog-group--books .book-card .product-desc{
  text-align:center;
  margin-left:auto;
  margin-right:auto;
  max-width:34ch;
  min-height:0;
  font-size:0.9rem;
  line-height:1.52;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
  line-clamp:3;
  overflow:hidden;
}
#shop-catalog .shop-catalog-group--books .book-card .product-actions{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:10px;
  margin-top:16px;
  padding-top:18px;
  border-top:1px solid rgba(94,91,168,0.1);
}
#shop-catalog .shop-catalog-group--books .book-card .product-actions .price{
  order:-1;
  align-self:center;
  margin:0 0 4px;
  font-size:0.78rem;
  font-weight:900;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:rgba(111,113,146,0.95);
}
#shop-catalog .shop-catalog-group--books .book-card .product-actions .btn-secondary{
  width:100%;
  justify-content:center;
  padding:13px 16px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,0.55);
  background:linear-gradient(92deg, rgba(185,168,255,0.98), rgba(198,231,255,0.96), rgba(255,230,242,0.96));
  color:var(--deep);
  font-weight:800;
  box-shadow:0 12px 30px rgba(185,168,255,0.28), inset 0 1px 0 rgba(255,255,255,0.75);
}
#shop-catalog .shop-catalog-group--books .book-card .product-actions .btn-secondary:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 38px rgba(185,168,255,0.34), inset 0 1px 0 rgba(255,255,255,0.85);
}
#shop-catalog .shop-catalog-group--books .book-card .product-actions .btn-ghost{
  width:100%;
  justify-content:center;
  padding:11px 14px;
  font-weight:760;
  font-size:0.92rem;
  border-radius:999px;
  border-color:rgba(94,91,168,0.16);
  background:rgba(255,255,255,0.55);
}
#shop-catalog .shop-catalog-group--books .book-card .product-actions .btn-ghost:hover{
  background:rgba(255,255,255,0.88);
  border-color:rgba(185,168,255,0.35);
}
#shop-catalog .shop-catalog-group--books .product-grid .reveal-card{
  --reveal-y:34px;
  filter:blur(0.35px);
  transition:
    opacity 1.75s var(--ease-premium),
    transform 2.1s var(--ease-silk),
    filter 1.2s var(--ease-silk);
}

/* Membership row in shop: mirror #membership-preview motion + featured */
#shop-catalog .shop-catalog-group--memberships .reveal-card{
  --reveal-y:30px;
  filter:blur(0.35px);
  transition:
    opacity 1.6s var(--ease-premium),
    transform 1.95s var(--ease-silk),
    filter 1.05s var(--ease-silk);
}
#shop-catalog .shop-catalog-group--memberships .row-3 > .reveal-card:first-child{
  --reveal-x:-56px;
  --reveal-y:0px;
}
#shop-catalog .shop-catalog-group--memberships .row-3 > .reveal-card:last-child{
  --reveal-x:56px;
  --reveal-y:0px;
}
#shop-catalog .shop-catalog-group--memberships .membership-featured{
  position:relative;
  border:1px solid rgba(185,168,255,0.34);
  box-shadow:
    0 24px 58px rgba(94,91,168,0.16),
    0 0 0 1px rgba(255,255,255,0.62) inset;
  transform:translateY(-4px);
}
#shop-catalog .shop-catalog-group--memberships .membership-featured .membership-badge{
  position:absolute;
  top:14px;
  right:14px;
  z-index:2;
  padding:7px 12px;
  border-radius:999px;
  font-size:0.76rem;
  font-weight:800;
  color:var(--deep);
  background:linear-gradient(90deg, rgba(185,168,255,0.28), rgba(198,231,255,0.26), rgba(255,230,242,0.3));
  border:1px solid rgba(185,168,255,0.34);
}

@media (max-width: 860px){
  #shop-catalog .shop-catalog-group--books .product-grid{
    grid-template-columns:1fr;
    gap:20px;
  }
}

@media (min-width: 641px) and (max-width: 980px){
  #shop-catalog .shop-catalog-group--books .product-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px){
  #shop-catalog .shop-catalog-group--books .product-actions{
    flex-direction:column;
    align-items:stretch;
    gap:12px;
  }
  #shop-catalog .shop-catalog-group--books .product-actions .btn{
    width:100%;
    justify-content:center;
  }
  #shop-catalog .shop-catalog-group--books .product-desc{
    min-height:0;
  }
}

html[data-theme="dark"] #shop-catalog .shop-catalog-group--books .book-card .product-actions .price{
  color:rgba(200,206,232,0.88);
}
html[data-theme="dark"] #shop-catalog .shop-catalog-group--books .book-card .product-actions .btn-ghost{
  background:rgba(22,28,44,0.55);
  border-color:rgba(190,200,230,0.18);
  color:rgba(230,236,255,0.92);
}
html[data-theme="dark"] #shop-catalog .shop-catalog-group--books .book-card .product-actions .btn-ghost:hover{
  background:rgba(30,38,58,0.85);
  border-color:rgba(185,168,255,0.35);
}

/* membership.html — package cards (#packages): legible price & copy in dark mode */
#packages .membership-package-price{
  margin-bottom:0;
  font-family:"Playfair Display", ui-serif, Georgia, "Times New Roman", Times, serif;
  font-weight:600;
  color:var(--deep);
  letter-spacing:-0.02em;
}
#packages .membership-package-desc,
#packages .membership-package-bullets{
  color:var(--muted);
}
#packages .pill{
  background:rgba(185,168,255,0.14);
  border-color:rgba(185,168,255,0.28);
  color:var(--deep);
}
#packages .membership-featured{
  position:relative;
  border:1px solid rgba(185,168,255,0.34);
  box-shadow:
    0 24px 58px rgba(94,91,168,0.16),
    0 0 0 1px rgba(255,255,255,0.62) inset;
  transform:translateY(-4px);
}
#packages .membership-featured .membership-badge{
  position:absolute;
  top:14px;
  right:14px;
  z-index:2;
  padding:7px 12px;
  border-radius:999px;
  font-size:0.76rem;
  font-weight:800;
  color:var(--deep);
  background:linear-gradient(90deg, rgba(185,168,255,0.28), rgba(198,231,255,0.26), rgba(255,230,242,0.3));
  border:1px solid rgba(185,168,255,0.34);
}

html[data-theme="dark"] #packages .card.card-glow{
  background:rgba(22,28,44,0.94);
  border-color:rgba(190,200,230,0.22);
  box-shadow:0 18px 44px rgba(6,10,18,0.55);
}
html[data-theme="dark"] #packages .card-glow::before{
  background:
    radial-gradient(520px 220px at 18% 0%, rgba(184,167,255,0.14), rgba(255,255,255,0) 58%),
    radial-gradient(480px 200px at 92% 8%, rgba(159,214,255,0.12), rgba(255,255,255,0) 56%);
}
html[data-theme="dark"] #packages .membership-package-price{
  color:rgba(244,246,255,0.98);
}
html[data-theme="dark"] #packages .membership-package-desc,
html[data-theme="dark"] #packages .membership-package-bullets{
  color:rgba(198,208,232,0.92);
}
html[data-theme="dark"] #packages .pill{
  background:rgba(184,167,255,0.16);
  border-color:rgba(190,200,230,0.32);
  color:rgba(244,246,255,0.96);
}
html[data-theme="dark"] #packages .membership-featured{
  border-color:rgba(184,167,255,0.45);
  box-shadow:
    0 22px 52px rgba(6,10,18,0.58),
    0 0 0 1px rgba(190,200,230,0.14) inset;
}
html[data-theme="dark"] #packages .membership-featured .membership-badge{
  color:rgba(244,246,255,0.98);
  background:linear-gradient(90deg, rgba(130,110,220,0.42), rgba(100,160,220,0.32), rgba(220,170,200,0.22));
  border-color:rgba(190,200,230,0.35);
}

/* Comparison table (.compare-grid): dark surfaces + readable type (membership + anywhere) */
html[data-theme="dark"] .compare-grid{
  border-color:rgba(190,200,230,0.22);
  box-shadow:0 18px 44px rgba(6,10,18,0.5);
}
html[data-theme="dark"] .compare-header{
  background:rgba(24,30,48,0.92);
  border-bottom-color:rgba(190,200,230,0.18);
  color:rgba(240,242,255,0.96);
}
html[data-theme="dark"] .compare-left{
  background:rgba(24,30,48,0.92);
  border-bottom-color:rgba(190,200,230,0.18);
  color:rgba(200,210,232,0.92);
}
html[data-theme="dark"] .compare-cell{
  background:rgba(18,22,36,0.82);
  border-bottom-color:rgba(190,200,230,0.12);
  color:rgba(228,232,248,0.94);
}
html[data-theme="dark"] .compare-cell.left{
  color:rgba(200,210,235,0.92);
}
html[data-theme="dark"] .tick{
  color:rgba(236,241,255,0.96);
}
html[data-theme="dark"] .cross{
  color:rgba(200,208,230,0.75);
}

/* —— Live consultation booking (contact.html) —— */
.consultation-booking-card{
  padding:28px;
  border:1px solid var(--line);
  box-shadow:var(--shadow);
}
.consultation-booking-card--compact{
  padding:20px 22px;
}
.consult-booking__title{
  margin-top:10px;
  font-size:clamp(1.35rem, 2.6vw, 1.75rem);
}
.consult-cal-wrap{
  width: min(100%, 228px);
  max-width: 228px;
  margin: 0;
  flex-shrink: 0;
}
.consult-cal-slots-row{
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 16px;
}
@media (min-width: 560px){
  .consult-cal-slots-row{
    flex-direction: row;
    align-items: flex-start;
    gap: 22px 28px;
  }
  .consult-cal-slots-row .consult-slots{
    flex: 1;
    min-width: 0;
    margin-top: 0;
    padding-top: 0;
    border-top: none;
    border-left: 1px solid var(--line);
    padding-left: 22px;
  }
}
.consult-cal{
  width: 100%;
}
.consult-lead{
  margin:8px 0 14px;
  color:var(--muted);
  font-weight:650;
  max-width:62ch;
  font-size:0.95rem;
  line-height:1.5;
}
.consult-cal__nav{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 4px;
  margin-bottom: 6px;
  max-width: 100%;
}
.consult-cal-wrap .consult-cal__nav-btn.btn{
  padding: 2px 6px;
  min-width: 28px;
  min-height: 28px;
  width: 28px;
  height: 28px;
  border-radius: 10px;
  gap: 0;
  font-size: 0.95rem;
  line-height: 1;
  flex-shrink: 0;
}
.consult-cal__nav-btn{
  min-width: 28px;
  min-height: 28px;
  padding: 2px 6px;
  font-size: 0.95rem;
  line-height: 1;
  border-radius: 10px;
}
.consult-cal__month{
  font-family: "Playfair Display", Georgia, serif;
  font-size: 0.88rem;
  font-weight: 650;
  color: var(--deep);
  text-align: center;
  flex: 1;
  min-width: 0;
  line-height: 1.2;
}
.consult-cal__weekdays{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:2px;
  margin-bottom:4px;
  font-size:7px;
  font-weight:800;
  letter-spacing:0.02em;
  text-transform:uppercase;
  color:var(--muted);
  text-align:center;
}
.consult-cal__weekdays span:nth-child(6),
.consult-cal__weekdays span:nth-child(7){
  opacity:0.45;
}
.consult-cal__grid{
  display:grid;
  grid-template-columns:repeat(7, minmax(0, 1fr));
  gap:2px;
  width: 100%;
}
.consult-cal__cell{
  aspect-ratio:1;
  border-radius:8px;
  border:1px solid var(--line);
  background:rgba(255,255,255,0.72);
  color:var(--text);
  font-weight:800;
  font-size:0.68rem;
  cursor:pointer;
  transition:transform var(--transition), box-shadow var(--transition), border-color var(--transition);
}
.consult-cal__cell:hover:not(:disabled){
  transform:translateY(-2px);
  box-shadow:var(--shadow);
  border-color:rgba(94,91,168,0.28);
}
.consult-cal__cell.is-selected{
  outline:1px solid rgba(94,91,168,0.65);
  outline-offset:0;
  background:linear-gradient(145deg,rgba(185,168,255,0.22),rgba(198,231,255,0.18));
}
.consult-cal__cell--muted{
  visibility:hidden;
  pointer-events:none;
}
.consult-cal__cell--weekend{
  background:rgba(240,242,252,0.55);
  color:rgba(111,113,146,0.55);
  cursor:not-allowed;
}
.consult-cal__cell--empty{
  opacity:0.55;
  cursor:not-allowed;
}
.consult-cal__cell--full{
  background:rgba(255,236,240,0.55);
  border-color:rgba(207,77,101,0.18);
  cursor:not-allowed;
}
.consult-slots{
  margin-top:16px;
  padding-top:14px;
  border-top:1px solid var(--line);
  position:relative;
  z-index:2;
}
.consult-slots__title{
  margin:0 0 10px;
  font-size:1rem !important;
}
.consult-slot-list{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.consult-slot-btn{
  border-radius:999px;
  padding:7px 12px;
  font-size:0.82rem;
  border:1px solid var(--line);
  background:rgba(255,255,255,0.85);
  font-weight:800;
  color:var(--deep);
  cursor:pointer;
  transition:background var(--transition), transform var(--transition);
}
.consult-slot-btn:hover:not(:disabled){
  transform:translateY(-1px);
  background:linear-gradient(90deg,rgba(185,168,255,0.2),rgba(198,231,255,0.16));
}
.consult-slot-btn.is-selected{
  border-color:rgba(94,91,168,0.65);
  background:linear-gradient(135deg,rgba(185,168,255,0.42),rgba(198,231,255,0.32));
  color:var(--deep);
  box-shadow:0 0 0 2px rgba(185,168,255,0.35), 0 8px 22px rgba(94,91,168,0.18);
  transform:translateY(-1px) scale(1.02);
}
.consult-slot-btn--disabled{
  opacity:0.55;
  cursor:not-allowed;
  font-weight:650;
}
.consult-form{
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid var(--line);
}
.consult-phone-wrap{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.consult-phone-input-row{
  display:flex;
  align-items:stretch;
  width:100%;
  min-height:48px;
  border-radius:16px;
  border:1px solid rgba(94,91,168,0.14);
  background:rgba(255,255,255,0.8);
  overflow:hidden;
  box-sizing:border-box;
}
.consult-phone-prefix{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  padding:0 2px 0 14px;
  font-weight:900;
  font-size:1.08rem;
  line-height:1;
  color:rgba(94,91,168,0.78);
  user-select:none;
}
.consult-phone-input{
  flex:1 1 0;
  min-width:0;
  width:auto;
  font-variant-numeric:tabular-nums;
  letter-spacing:0.02em;
  border:none !important;
  box-shadow:none !important;
  border-radius:0 !important;
  background:transparent !important;
  min-height:48px;
  height:48px;
  box-sizing:border-box;
}
#live-consultation .field .consult-phone-input-row:focus-within{
  border-color:rgba(185,168,255,0.45);
  box-shadow:0 0 0 4px rgba(185,168,255,0.22);
}
.consult-phone-country{
  min-height:1.25em;
  font-size:0.86rem;
  font-weight:800;
  line-height:1.3;
  color:#5e3fa8;
}
html[data-theme="dark"] .consultation-booking-card{
  background:rgba(18,22,36,0.72);
  border-color:rgba(190,200,230,0.16);
  box-shadow:0 18px 44px rgba(6,10,18,0.45);
}
html[data-theme="dark"] .consult-lead{
  color:rgba(198,208,232,0.9);
}
html[data-theme="dark"] .consult-cal__month{
  color:rgba(230,234,255,0.96);
}
html[data-theme="dark"] .consult-cal__cell{
  background:rgba(24,30,48,0.72);
  color:rgba(236,240,255,0.94);
  border-color:rgba(190,200,230,0.14);
}
html[data-theme="dark"] .consult-cal__cell--weekend{
  background:rgba(16,20,34,0.55);
  color:rgba(160,170,200,0.45);
}
html[data-theme="dark"] .consult-cal__cell--full{
  background:rgba(48,22,30,0.45);
  border-color:rgba(207,77,101,0.22);
}
html[data-theme="dark"] .consult-cal-slots-row .consult-slots{
  border-left-color: rgba(190,200,230,0.16);
}
html[data-theme="dark"] .consult-slot-btn{
  background:rgba(24,30,48,0.72);
  color:rgba(230,234,255,0.92);
  border-color:rgba(190,200,230,0.14);
}
html[data-theme="dark"] .consult-slot-btn.is-selected{
  background:linear-gradient(135deg,rgba(185,168,255,0.5),rgba(130,180,255,0.28));
  border-color:rgba(220,210,255,0.55);
  color:#f4f7ff;
  box-shadow:0 0 0 2px rgba(185,168,255,0.5), 0 12px 32px rgba(5,8,18,0.55);
  transform:translateY(-1px) scale(1.03);
}
html[data-theme="dark"] #live-consultation .toast,
html[data-theme="dark"] #contact-form .toast{
  background:rgba(26,32,50,0.9);
  border:1px solid rgba(185,168,255,0.32);
  color:rgba(244,246,255,0.96);
  box-shadow:0 6px 22px rgba(5,8,18,0.42);
}
.consult-slot-btn.is-selected:hover:not(:disabled),
html[data-theme="dark"] .consult-slot-btn.is-selected:hover:not(:disabled){
  transform:translateY(-1px) scale(1.03);
}

html[data-theme="dark"] .consult-phone-input-row{
  background:rgba(18,22,34,0.92);
  border-color:rgba(190,200,230,0.22);
}
html[data-theme="dark"] .consult-phone-prefix{
  color:rgba(185,168,255,0.88);
}
html[data-theme="dark"] #live-consultation .field .consult-phone-input-row .consult-phone-input{
  color:rgba(244,246,255,0.98);
  background:transparent !important;
  border:none !important;
  box-shadow:none !important;
}
html[data-theme="dark"] #live-consultation .field .consult-phone-input-row:focus-within{
  border-color:rgba(185,168,255,0.55);
  box-shadow:0 0 0 4px rgba(185,168,255,0.18);
}
html[data-theme="dark"] .consult-phone-country{
  color:rgba(210,200,255,0.95);
}

/* contact.html — dark mode form controls */
html[data-theme="dark"] #contact-form .field label,
html[data-theme="dark"] #live-consultation .field label{
  color:rgba(230,234,255,0.95);
}
html[data-theme="dark"] #contact-form input:not([type="checkbox"]):not([type="hidden"]),
html[data-theme="dark"] #contact-form textarea,
html[data-theme="dark"] #contact-form select,
html[data-theme="dark"] #live-consultation input:not([type="checkbox"]):not([type="hidden"]),
html[data-theme="dark"] #live-consultation textarea,
html[data-theme="dark"] #live-consultation select{
  background:rgba(18,22,34,0.92);
  border-color:rgba(190,200,230,0.22);
  color:rgba(244,246,255,0.98);
  caret-color:rgba(185,168,255,0.95);
}
html[data-theme="dark"] #contact-form input::placeholder,
html[data-theme="dark"] #contact-form textarea::placeholder,
html[data-theme="dark"] #live-consultation input::placeholder,
html[data-theme="dark"] #live-consultation textarea::placeholder{
  color:rgba(170,180,210,0.72);
}
html[data-theme="dark"] #contact-form input:focus,
html[data-theme="dark"] #contact-form textarea:focus,
html[data-theme="dark"] #contact-form select:focus,
html[data-theme="dark"] #live-consultation input:focus,
html[data-theme="dark"] #live-consultation textarea:focus,
html[data-theme="dark"] #live-consultation select:focus{
  border-color:rgba(185,168,255,0.55);
  box-shadow:0 0 0 4px rgba(185,168,255,0.18);
}
html[data-theme="dark"] #contact-form select,
html[data-theme="dark"] #live-consultation select,
html[data-theme="dark"] #contact-form #topic,
html[data-theme="dark"] #live-consultation #consult_topic{
  color-scheme:dark;
  border-radius:16px !important;
  -webkit-border-radius:16px !important;
  -webkit-appearance:none;
  -moz-appearance:none;
  appearance:none;
  padding-right:40px;
  background-color:rgba(18,22,34,0.92);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24'%3E%3Cpath fill='%23c8c4ff' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 14px center;
  background-size:14px 14px;
}
html[data-theme="dark"] #contact-form option,
html[data-theme="dark"] #live-consultation option{
  background:#161a28;
  color:#e9ecf8;
}
html[data-theme="dark"] #contact-form input:-webkit-autofill,
html[data-theme="dark"] #contact-form input:-webkit-autofill:hover,
html[data-theme="dark"] #live-consultation input:-webkit-autofill,
html[data-theme="dark"] #live-consultation input:-webkit-autofill:hover{
  -webkit-text-fill-color:rgba(244,246,255,0.98) !important;
  box-shadow:0 0 0 1000px rgba(18,22,34,0.95) inset !important;
  transition:background-color 99999s ease-out;
}

/* contact.html — consultation success dialog */
.vr-success-modal[hidden]{
  display:none !important;
}
.vr-success-modal:not([hidden]){
  display:flex;
}
.vr-success-modal{
  position:fixed;
  inset:0;
  z-index:10050;
  align-items:center;
  justify-content:center;
  padding:20px;
  box-sizing:border-box;
}
.vr-success-modal__backdrop{
  position:absolute;
  inset:0;
  background:rgba(10,12,22,0.55);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.vr-success-modal__panel{
  position:relative;
  z-index:1;
  width:min(100%,400px);
  padding:28px 26px 24px;
  border-radius:var(--radius-xl);
  border:1px solid rgba(185,168,255,0.28);
  background:
    linear-gradient(155deg, rgba(255,255,255,0.92), rgba(248,246,255,0.88)),
    linear-gradient(120deg, rgba(185,168,255,0.2), rgba(198,231,255,0.14));
  box-shadow:0 24px 60px rgba(94,91,168,0.22), 0 0 0 1px rgba(255,255,255,0.5) inset;
  text-align:center;
}
html[data-theme="dark"] .vr-success-modal__panel{
  background:
    linear-gradient(155deg, rgba(26,30,48,0.96), rgba(18,22,36,0.94)),
    linear-gradient(120deg, rgba(130,110,220,0.22), rgba(100,160,220,0.12));
  border-color:rgba(190,200,230,0.22);
  box-shadow:0 28px 70px rgba(5,8,16,0.65), 0 0 0 1px rgba(255,255,255,0.06) inset;
}
.vr-success-modal__icon{
  width:56px;
  height:56px;
  margin:0 auto 14px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,rgba(185,168,255,0.45),rgba(159,214,255,0.35));
  color:var(--deep);
}
html[data-theme="dark"] .vr-success-modal__icon{
  color:#f4f7ff;
  background:linear-gradient(135deg,rgba(130,110,220,0.55),rgba(100,160,200,0.35));
}
.vr-success-modal__title{
  margin:0 0 10px;
  font-family:"Playfair Display",Georgia,serif;
  font-size:1.45rem;
  font-weight:650;
  color:var(--deep);
}
html[data-theme="dark"] .vr-success-modal__title{
  color:rgba(244,246,255,0.98);
}
.vr-success-modal__text{
  margin:0 0 22px;
  font-size:0.98rem;
  line-height:1.55;
  color:var(--muted);
}
html[data-theme="dark"] .vr-success-modal__text{
  color:rgba(198,208,232,0.92);
}
.vr-success-modal__btn{
  min-width:160px;
}

/* Broadcast landing */
#broadcast-preview::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(ellipse 70% 50% at 12% 20%, rgba(185,168,255,0.14), transparent 55%),
    radial-gradient(ellipse 60% 45% at 88% 75%, rgba(198,231,255,0.12), transparent 50%);
  opacity:0.9;
}
#broadcast-preview{ position:relative; overflow:hidden; }
.broadcast-hero{ max-width:920px; margin-bottom:28px; }
.broadcast-lead{ max-width:720px; }
.broadcast-pill{ display:none !important; }
.broadcast-hero{
  text-align:center;
  margin-left:auto;
  margin-right:auto;
}
.broadcast-hero .section-title,
.broadcast-hero .section-subtitle{
  margin-left:auto;
  margin-right:auto;
}
.broadcast-hero .section-title{
  letter-spacing:0.01em;
}
.broadcast-grid{
  display:grid;
  grid-template-columns:minmax(280px, 380px) 1fr;
  gap:28px;
  align-items:stretch;
}
@media (max-width: 980px){
  .broadcast-grid{ grid-template-columns:1fr; }
}
.broadcast-plan-card{
  border:1px solid rgba(137,125,220,0.22);
  box-shadow:0 20px 42px rgba(94,91,168,0.14);
}
.broadcast-plan-card .broadcast-benefits{
  margin-top:14px;
  color:var(--muted);
  font-weight:760;
  font-size:0.96rem;
  line-height:1.55;
  padding-left:18px;
}
.broadcast-disclaimer{
  margin-top:14px;
  font-size:0.88rem;
  line-height:1.5;
  color:var(--muted);
  font-weight:700;
  padding:10px 12px;
  border-radius:12px;
  background:rgba(94,91,168,0.06);
  border:1px solid rgba(94,91,168,0.1);
}
.broadcast-catalog-head h3{
  font-family:"Playfair Display",Georgia,serif;
  font-size:1.35rem;
  margin:0 0 6px;
}
.broadcast-catalog{
  padding:14px;
  border-radius:20px;
  background:linear-gradient(180deg, rgba(255,255,255,0.7), rgba(255,255,255,0.5));
  border:1px solid rgba(137,125,220,0.14);
  height:100%;
  display:flex;
  flex-direction:column;
}
.broadcast-plan-card{ height:100%; }
.broadcast-catalog-note{
  margin:0 0 14px;
  color:var(--muted);
  font-size:0.94rem;
}
.broadcast-cards{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.broadcast-item-card{
  display:flex;
  flex-direction:column;
  padding:0;
  overflow:hidden;
  min-height:100%;
  border:1px solid rgba(137,125,220,0.14);
  box-shadow:0 12px 28px rgba(94,91,168,0.09);
}
.broadcast-catalog-actions{
  margin-top:auto;
  padding-top:14px;
  display:flex;
  justify-content:center;
}
.broadcast-catalog-actions .btn{
  min-width:160px;
}
.broadcast-empty[hidden] + .broadcast-catalog-actions{
  padding-top:18px;
}
@media (max-width: 1160px){
  .broadcast-cards{ grid-template-columns:1fr; }
}
.broadcast-item-cover{
  aspect-ratio:16/10;
  background:linear-gradient(135deg, rgba(185,168,255,0.2), rgba(198,231,255,0.18));
  overflow:hidden;
}
.broadcast-item-cover img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.broadcast-item-cover--placeholder{
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:2rem;
  color:rgba(94,91,168,0.45);
}
.broadcast-item-body{
  padding:16px 18px 18px;
  display:flex;
  flex-direction:column;
  gap:8px;
  flex:1;
}
.broadcast-badge{
  align-self:flex-start;
  font-size:0.72rem;
  font-weight:800;
  letter-spacing:0.04em;
  text-transform:uppercase;
  padding:5px 10px;
  border-radius:999px;
}
.broadcast-badge--upcoming{
  background:rgba(185,168,255,0.22);
  color:var(--deep);
}
.broadcast-badge--live{
  background:rgba(220,80,90,0.15);
  color:#9b2030;
}
.broadcast-badge--done{
  background:rgba(94,91,168,0.12);
  color:var(--muted);
}
.broadcast-item-date{
  font-size:0.86rem;
  color:var(--muted);
  font-weight:700;
}
.broadcast-teaser{
  margin-top:auto;
  font-size:0.86rem;
  color:var(--muted);
  font-weight:760;
  display:flex;
  align-items:center;
  gap:6px;
}
.broadcast-plan-unavailable{
  margin-top:12px;
  padding:10px 12px;
  border-radius:12px;
  background:rgba(207,77,101,0.08);
  color:var(--muted);
  font-size:0.92rem;
  line-height:1.5;
}
.broadcast-empty{
  text-align:center;
  color:var(--muted);
  padding:24px;
}
html[data-theme="dark"] .broadcast-plan-card{
  border-color:rgba(184,167,255,0.28);
  box-shadow:0 22px 44px rgba(5,8,15,0.46);
}
html[data-theme="dark"] .broadcast-catalog{
  background:linear-gradient(180deg, rgba(28,34,52,0.9), rgba(24,30,46,0.84));
  border-color:rgba(184,167,255,0.24);
}
html[data-theme="dark"] .broadcast-item-card{
  border-color:rgba(184,167,255,0.22);
  box-shadow:0 16px 30px rgba(4,7,14,0.42);
}

/* Afirmime Pozitive app promo */
#afirmime-app{
  position:relative;
  overflow:hidden;
}
#afirmime-app::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(ellipse 58% 48% at 8% 18%, rgba(255,230,242,0.22), transparent 58%),
    radial-gradient(ellipse 52% 44% at 92% 78%, rgba(198,231,255,0.18), transparent 55%);
}
.afirmime-shell{
  position:relative;
  padding:34px 34px 36px;
  border-radius:calc(var(--radius-xl) + 4px);
  border:1px solid rgba(137,125,220,0.18);
  background:
    linear-gradient(145deg, rgba(255,255,255,0.92) 0%, rgba(248,247,255,0.82) 48%, rgba(255,250,253,0.88) 100%);
  box-shadow:
    0 1px 0 rgba(255,255,255,0.95) inset,
    0 24px 56px rgba(94,91,168,0.12),
    0 8px 24px rgba(94,91,168,0.06);
  overflow:hidden;
}
.afirmime-glow{
  position:absolute;
  inset:-20% -10% auto auto;
  width:min(520px, 70vw);
  height:min(520px, 70vw);
  border-radius:50%;
  background:radial-gradient(circle, rgba(185,168,255,0.28), rgba(185,168,255,0) 68%);
  pointer-events:none;
  filter:blur(2px);
}
.afirmime-grid{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0, 1.05fr) minmax(280px, 0.95fr);
  gap:34px;
  align-items:center;
}
.afirmime-pill{
  display:inline-flex;
  margin-bottom:12px;
  background:linear-gradient(92deg, rgba(185,168,255,0.22), rgba(198,231,255,0.2));
  border:1px solid rgba(94,91,168,0.14);
  color:var(--deep);
  font-weight:800;
  letter-spacing:0.08em;
  text-transform:uppercase;
  font-size:0.72rem;
}
.afirmime-title{
  margin:0 0 10px;
  font-size:clamp(2rem, 3.4vw, 2.8rem);
  line-height:1.08;
  letter-spacing:-0.02em;
}
.afirmime-lead{
  max-width:56ch;
  margin:0 0 22px;
  font-size:1.02rem;
  line-height:1.62;
}
.afirmime-features{
  list-style:none;
  margin:0 0 22px;
  padding:0;
  display:grid;
  gap:14px;
}
.afirmime-features li{
  display:grid;
  grid-template-columns:28px minmax(0, 1fr);
  gap:12px;
  align-items:start;
  padding:14px 16px;
  border-radius:16px;
  background:rgba(255,255,255,0.62);
  border:1px solid rgba(94,91,168,0.1);
  box-shadow:0 8px 20px rgba(94,91,168,0.05);
}
.afirmime-feature-icon{
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:linear-gradient(135deg, rgba(185,168,255,0.35), rgba(198,231,255,0.28));
  color:var(--deep);
  font-size:0.82rem;
  font-weight:900;
}
.afirmime-features strong{
  display:block;
  margin-bottom:4px;
  color:var(--deep);
  font-size:0.98rem;
}
.afirmime-features p{
  margin:0;
  color:var(--muted);
  font-size:0.92rem;
  line-height:1.5;
}
.afirmime-trial{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px 14px;
  margin-bottom:22px;
}
.afirmime-trial-badge{
  display:inline-flex;
  align-items:center;
  padding:8px 14px;
  border-radius:999px;
  background:linear-gradient(92deg, rgba(185,168,255,0.95), rgba(198,231,255,0.92), rgba(255,230,242,0.92));
  color:var(--deep);
  font-size:0.82rem;
  font-weight:900;
  letter-spacing:0.06em;
  text-transform:uppercase;
  box-shadow:0 10px 24px rgba(185,168,255,0.22);
}
.afirmime-trial-note{
  color:var(--muted);
  font-size:0.9rem;
  font-weight:700;
}
.afirmime-store-row{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-bottom:14px;
}
.store-badge{
  display:inline-flex;
  align-items:center;
  gap:12px;
  min-width:188px;
  padding:11px 16px 11px 14px;
  border-radius:14px;
  text-decoration:none;
  color:#fff;
  border:1px solid rgba(255,255,255,0.08);
  background:linear-gradient(180deg, #1f2230 0%, #12141d 100%);
  box-shadow:
    0 12px 28px rgba(18,20,29,0.28),
    inset 0 1px 0 rgba(255,255,255,0.08);
  transition:transform var(--transition), box-shadow var(--transition), border-color var(--transition);
}
.store-badge:hover{
  transform:translateY(-2px);
  border-color:rgba(185,168,255,0.35);
  box-shadow:
    0 16px 34px rgba(94,91,168,0.24),
    inset 0 1px 0 rgba(255,255,255,0.12);
}
.store-badge--google{
  background:linear-gradient(180deg, #202433 0%, #141827 100%);
}
.store-badge-icon{
  width:28px;
  height:28px;
  flex:0 0 28px;
}
.store-badge-icon svg{
  width:100%;
  height:100%;
  fill:currentColor;
}
.store-badge-copy{
  display:flex;
  flex-direction:column;
  line-height:1.05;
}
.store-badge-copy small{
  font-size:0.68rem;
  letter-spacing:0.02em;
  opacity:0.82;
}
.store-badge-copy strong{
  font-size:1.02rem;
  font-weight:800;
  letter-spacing:0.01em;
}
.afirmime-site-link{
  display:inline-flex;
  margin-top:4px;
  border-radius:999px;
  border-color:rgba(94,91,168,0.16);
  background:rgba(255,255,255,0.55);
}
.afirmime-visual{
  position:relative;
  min-height:420px;
  display:grid;
  place-items:center;
}
.afirmime-orbit{
  position:absolute;
  border-radius:50%;
  border:1px solid rgba(185,168,255,0.18);
  pointer-events:none;
}
.afirmime-orbit--1{
  width:min(360px, 78vw);
  height:min(360px, 78vw);
  animation:afirmime-orbit-spin 18s linear infinite;
}
.afirmime-orbit--2{
  width:min(430px, 88vw);
  height:min(430px, 88vw);
  border-style:dashed;
  opacity:0.55;
  animation:afirmime-orbit-spin 26s linear infinite reverse;
}
@keyframes afirmime-orbit-spin{
  from{ transform:rotate(0deg); }
  to{ transform:rotate(360deg); }
}
.afirmime-phone{
  position:relative;
  width:min(290px, 74vw);
  aspect-ratio:10 / 20.5;
  padding:10px;
  border-radius:34px;
  background:linear-gradient(160deg, #2f3150 0%, #17192a 55%, #0f111c 100%);
  box-shadow:
    0 28px 60px rgba(28,24,58,0.28),
    0 0 0 1px rgba(255,255,255,0.08) inset,
    0 0 0 2px rgba(94,91,168,0.18);
}
.afirmime-phone-notch{
  position:absolute;
  top:12px;
  left:50%;
  transform:translateX(-50%);
  width:34%;
  height:16px;
  border-radius:0 0 12px 12px;
  background:#0f111c;
  z-index:2;
}
.afirmime-phone-screen{
  height:100%;
  border-radius:26px;
  overflow:hidden;
  padding:0;
  background:#0f111c;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.08);
}
.afirmime-carousel{
  position:relative;
  width:100%;
  height:100%;
  overflow:hidden;
  touch-action:pan-y;
  cursor:grab;
  user-select:none;
}
.afirmime-carousel:active{
  cursor:grabbing;
}
.afirmime-carousel-track{
  display:flex;
  height:100%;
  transition:transform 0.48s cubic-bezier(.22,1,.36,1);
  will-change:transform;
}
.afirmime-carousel-slide{
  flex:0 0 100%;
  width:100%;
  height:100%;
  margin:0;
  display:block;
}
.afirmime-carousel-slide img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:top center;
  display:block;
  pointer-events:none;
}
.afirmime-carousel-btn{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:30px;
  height:30px;
  border:0;
  border-radius:999px;
  display:grid;
  place-items:center;
  padding:0;
  font-size:1.35rem;
  line-height:1;
  color:#fff;
  background:rgba(15,17,28,0.42);
  border:1px solid rgba(255,255,255,0.18);
  backdrop-filter:blur(8px);
  cursor:pointer;
  opacity:0;
  transition:opacity 0.22s ease, background 0.22s ease, transform 0.22s ease;
  z-index:3;
}
.afirmime-phone:hover .afirmime-carousel-btn,
.afirmime-carousel:focus-within .afirmime-carousel-btn{
  opacity:1;
}
.afirmime-carousel-btn:hover:not(:disabled){
  background:rgba(94,91,168,0.72);
  transform:translateY(-50%) scale(1.05);
}
.afirmime-carousel-btn:disabled{
  opacity:0.25;
  cursor:default;
}
.afirmime-carousel-btn--prev{ left:8px; }
.afirmime-carousel-btn--next{ right:8px; }
.afirmime-carousel-dots{
  position:absolute;
  left:0;
  right:0;
  bottom:10px;
  display:flex;
  justify-content:center;
  gap:6px;
  z-index:3;
  pointer-events:none;
}
.afirmime-carousel-dot{
  width:7px;
  height:7px;
  border-radius:999px;
  border:0;
  padding:0;
  background:rgba(255,255,255,0.42);
  pointer-events:auto;
  cursor:pointer;
  transition:transform 0.22s ease, background 0.22s ease, width 0.22s ease;
}
.afirmime-carousel-dot.is-active{
  width:18px;
  background:#fff;
}
.afirmime-swipe-hint{
  margin:14px 0 0;
  text-align:center;
  font-size:0.82rem;
  font-weight:700;
  color:var(--muted);
  letter-spacing:0.02em;
}

@media (max-width: 980px){
  .afirmime-grid{
    grid-template-columns:1fr;
    gap:28px;
  }
  .afirmime-shell{
    padding:24px 20px 26px;
  }
  .afirmime-visual{
    min-height:360px;
  }
  .afirmime-copy{
    text-align:center;
  }
  .afirmime-lead{
    margin-left:auto;
    margin-right:auto;
  }
  .afirmime-features li{
    text-align:left;
  }
  .afirmime-trial,
  .afirmime-store-row,
  .afirmime-site-link{
    justify-content:center;
  }
  .afirmime-store-row{
    display:flex;
  }
  .afirmime-site-link{
    margin-left:auto;
    margin-right:auto;
  }
}

@media (max-width: 520px){
  .store-badge{
    width:100%;
    min-width:0;
    justify-content:center;
  }
  .afirmime-carousel-btn{
    opacity:1;
  }
}

html[data-theme="dark"] .afirmime-shell{
  background:linear-gradient(145deg, rgba(28,34,52,0.94) 0%, rgba(22,28,44,0.9) 52%, rgba(30,26,48,0.92) 100%);
  border-color:rgba(184,167,255,0.22);
  box-shadow:0 24px 56px rgba(4,7,14,0.48);
}
html[data-theme="dark"] .afirmime-features li{
  background:rgba(18,22,34,0.72);
  border-color:rgba(184,167,255,0.14);
}
html[data-theme="dark"] .afirmime-features strong,
html[data-theme="dark"] .afirmime-title,
html[data-theme="dark"] .afirmime-pill{
  color:#ecefff;
}
html[data-theme="dark"] .afirmime-site-link{
  background:rgba(28,34,52,0.72);
  border-color:rgba(184,167,255,0.2);
  color:#ecefff;
}
html[data-theme="dark"] .afirmime-swipe-hint{
  color:rgba(186,195,223,0.88);
}

@media (prefers-reduced-motion: reduce){
  .afirmime-carousel-track{
    transition:none;
  }
  .afirmime-orbit--1,
  .afirmime-orbit--2{
    animation:none;
  }
}
