:root {
  --c-primary: #A1727A;
  --c-accent: #8E768F;
  --c-bg: linear-gradient(120deg, #FFFFFF, #FEFCFA);
  --c-bg-2: #F5F2EF;
  --c-text: #191718;
  --c-muted: #6C676B;
  --border: rgba(20, 16, 18, .08);
  --card: #FFFFFF;
  --shadow: 0 8px 24px rgba(20, 16, 18, .08);
  --sectionalthero-grad: linear-gradient(120deg, #F5F2EF, #FAF6F3, #FFFFFF);
  --loader-bg: linear-gradient(120deg, #FFFFFF, #F5F2EF);
  --overlay: rgba(0, 0, 0, .35);
  --progress-grad: linear-gradient(90deg, var(--c-primary), var(--c-accent));
  --radius: 16px;
  --t-fast: .2s;
  --t-med: .3s;
  --yt-rail-h: 360px;
  --yt-gap: 16px;
  --bg-elev: color-mix(in oklab, var(--card) 92%, var(--c-bg-2));
  --nav-fg: #2b2b2b;              /* default link color */
  --nav-active-fg: #111111;       /* ACTIVE link text in light theme */
  --nav-active-bg: color-mix(in oklab, var(--c-primary) 18%, transparent);
  --nav-active-border: color-mix(in oklab, var(--c-primary) 40%, var(--border));
  /* NEW: lock header + CTA sizes */
  --nav-h: 64px;
  /* base header height */
  --nav-pad: 10px;
  /* inner padding */
  --cta-h: 42px;
  /* button fixed height */
  --cta-pad-x: 16px;
  /* horizontal padding for CTA */

    --bg: #ffffff;
  --bg-alt: #f8f6f5;
  --text: #222;
  --text-muted: #555;
  --border: #ddd;

  --accent: #7c3aed;       /* Purple accent */
  --accent-soft: #ede9fe;  /* Light purple background */
  --btn-primary-bg: #7c3aed;
  --btn-primary-fg: #fff;
  --btn-ghost-fg: #7c3aed;
}


/* Dark (Night) — warm, high-contrast, no size token overrides */
html[data-theme="dark"] {
  --c-primary: #DEAD94;
  /* warm sand for buttons/accents */
  --c-accent: #B58684;
  /* rosy accent */
  --c-bg: #151013;
  /* deep background */
  --c-bg-2: #1b1518;
  /* slightly lighter panels */
  --c-text: #f1ecea;
  /* readable body text */
  --c-muted: #c1b8b5;
  /* muted/on-secondary */
  --border: rgba(255, 255, 255, .12);
  /* a touch stronger for clarity */
  --card: #191316;
  /* card surface */
  --shadow: 0 20px 40px rgba(0, 0, 0, .50);
  --sectionalthero-grad: linear-gradient(120deg, #191316, #21191d, #151013);
  --loader-bg: linear-gradient(120deg, #181216, #21191d);
  --overlay: rgba(0, 0, 0, .56);
  --progress-grad: linear-gradient(90deg, var(--c-primary), var(--c-accent));
  /* dark/night */
  --nav-fg: #eeeeee;
  --nav-active-fg: #ffffff;       /* ACTIVE link text in dark theme */
  --nav-active-bg: color-mix(in oklab, var(--c-primary) 28%, transparent);
  --nav-active-border: color-mix(in oklab, var(--c-primary) 55%, var(--border));
  /* NOTE: Do not redefine these here:
     --nav-h, --nav-pad, --cta-h, --cta-pad-x
     They inherit from :root so header/CTA size stays the same in light/dark. */
       --bg: #111;
  --bg-alt: #181818;
  --text: #eee;
  --text-muted: #bbb;
  --border: #333;

  --accent: #a78bfa;       /* Softer purple */
  --accent-soft: rgba(167, 139, 250, 0.15);
  --btn-primary-bg: #a78bfa;
  --btn-primary-fg: #111;
  --btn-ghost-fg: #a78bfa;
}

header .nav a[data-page] {
  color: var(--nav-fg);
}
header .nav a[data-page].active,
header .nav a[data-page][aria-current="page"] {
  color: var(--nav-active-fg);                  /* <-- switches per theme */
  background: var(--nav-active-bg);
  border-color: var(--nav-active-border);
}
/* --- Lock header/nav height cross-theme --- */
:root {
  --nav-h: 64px;
  /* base header height */
  --nav-pad: 10px;
  /* vertical padding inside the nav */
}

.header .nav {
  min-height: var(--nav-h);
  padding: var(--nav-pad) 0;
  align-items: center;

}

.header.shrink .nav {
  min-height: calc(var(--nav-h) - 12px);
  padding: 4px 0;
}

/* mobile drawer trigger hidden on desktop */
.menu-btn {
  display: none;
}

@media (max-width: 860px) {
  .menu-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 10px;
    border: 1px solid var(--border);
    background: color-mix(in oklab, var(--c-primary) 10%, transparent);
    font-weight: 800;
  }

  .header .nav>.btn {
    display: none;
  }

  /* hide desktop CTA on small screens */

  .header .menu {
    position: fixed;
    inset: 0 0 0 auto;
    /* right side */
    width: min(78vw, 320px);
    background: var(--bg-elev);
    border-left: 1px solid var(--border);
    box-shadow: -16px 0 40px rgba(0, 0, 0, .3);
    padding: 18px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    transform: translateX(100%);
    transition: transform .25s ease;
    z-index: 9999;
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
  }

  .header .menu.open {
    transform: translateX(0);
  }
}

/* Logo height fixed so theme swap doesn’t jiggle layout */
.brand img.site-logo {
  height: 36px;
  width: auto;
  display: block;
  vertical-align: middle;
}

html,
body {
  max-width: 100%;
  overflow-x: hidden;
    background: var(--bg);
  color: var(--text);
}

body.nav-open {
  overflow: hidden;
}


* {
  box-sizing: border-box
}

html {
  scroll-behavior: smooth
}

body {
  margin: 0;
  font: 400 16px/1.7 "Inter", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color: var(--c-text);
  background: var(--c-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Smooth theme transitions */
body,
.header,
.menu,
.card,
.footer,
.sectionalthero::before,
.progress__bar {
  transition: background-color var(--t-med) ease, color var(--t-med) ease, border-color var(--t-med) ease, box-shadow var(--t-med) ease, opacity var(--t-med) ease;
}

@media (prefers-reduced-motion: reduce) {

  body,
  .header,
  .menu,
  .card,
  .footer,
  .sectionalthero::before,
  .progress__bar {
    transition: none
  }
}

/* Audio player inside Guided Meditations section */
#meditations {
  position: relative; /* so child sticky/fixed positioning is relative */
}

#meditations .audio-player {
  position: sticky;   /* sticks within #meditations only */
  bottom: 0;
  width: 100%;
  z-index: 40;        /* above cards but below global FAB/header */
  border-radius: 14px 14px 0 0;
  box-shadow: 0 -6px 18px color-mix(in oklab, var(--shadow) 60%, transparent);
}

.audio-player .ap-cover {
  width: 54px;
  height: 54px;
  border-radius: 12px;
  object-fit: cover;
  border: 1px solid color-mix(in oklab, var(--fg, #fff) 12%, transparent);
}

.audio-player .ap-meta {
  min-width: 0
}

.audio-player .ap-title {
  font-weight: 700;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis
}

.audio-player .ap-time {
  display: grid;
  grid-template-columns: 46px 1fr 46px;
  gap: 10px;
  align-items: center;
  font-variant-numeric: tabular-nums;
  opacity: .9;
  margin-top: 2px;
}

/* Buttons */
.audio-player .ap-controls {
  display: flex;
  align-items: center;
  gap: 8px
}

.audio-player .ap-btn {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  border: 1px solid color-mix(in oklab, var(--fg, #fff) 12%, transparent);
  background: color-mix(in oklab, var(--c-primary, #f2b59b) 8%, transparent);
  transition: transform .12s ease, background .12s ease, border-color .12s ease;
}

.audio-player .ap-btn:hover {
  transform: translateY(-1px)
}

.audio-player .ap-btn.-primary {
  width: 42px;
  height: 42px;
}

.audio-player .ap-btn svg {
  width: 18px;
  height: 18px;
}

/* Seek + Volume (pill style) */
.audio-player .ap-seek,
.audio-player .ap-vol {
  accent-color: var(--c-primary, #f2b59b)
}

/* WebKit */
.audio-player input[type="range"] {
  -webkit-appearance: none;
  appearance: none;
  background: transparent;
  height: 18px;
}

.audio-player input[type="range"]::-webkit-slider-runnable-track {
  height: 6px;
  border-radius: 999px;
  background: color-mix(in oklab, var(--fg, #fff) 14%, transparent);
}

.audio-player input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--c-primary, #f2b59b);
  border: 0;
  margin-top: -4px;
  /* center on track */
  box-shadow: 0 0 0 4px color-mix(in oklab, var(--c-primary, #f2b59b) 20%, transparent);
}

/* Firefox */
.audio-player input[type="range"]::-moz-range-track {
  height: 6px;
  border-radius: 999px;
  background: color-mix(in oklab, var(--fg, #fff) 14%, transparent);
}

.audio-player input[type="range"]::-moz-range-thumb {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  border: 0;
  background: var(--c-primary, #f2b59b);
}

/* Icons’ pressed/focus states */
.audio-player .ap-btn[aria-pressed="true"] {
  outline: 2px solid var(--c-primary, #f2b59b)
}

.audio-player .ap-btn:focus-visible {
  outline: 2px solid var(--c-primary, #f2b59b);
  outline-offset: 2px
}

.audio-player .ap-vol {
  width: 96px
}

.audio-player .ap-close {
  margin-left: 2px
}

@media (max-width: 720px) {
  .audio-player {
    grid-template-columns: auto 1fr;
    row-gap: 10px;
  }

  .audio-player .ap-controls {
    grid-column: 1 / -1;
    justify-content: space-between
  }

  .audio-player .ap-vol {
    display: none
  }
}

/* Links / layout */
a {
  color: inherit;
  text-decoration: none
}

.container {
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 1rem
}

/* ---------- Global Page Loader ---------- */
.page-loader {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  background: var(--loader-bg);
  opacity: 1;
  visibility: visible;
  transition: opacity .45s ease, visibility .45s ease;
}

.page-loader.is-hidden {
  opacity: 0;
  visibility: hidden
}

.page-loader__inner {
  display: grid;
  gap: .8rem;
  place-items: center;
  text-align: center
}

.page-loader__logo {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-weight: 800;
  letter-spacing: .2px;
  color: var(--c-text)
}

.page-loader__logo .dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--c-primary)
}

.page-loader__text {
  font-weight: 700;
  font-size: 14px;
  color: var(--c-muted);
  letter-spacing: .08em;
  text-transform: uppercase;
  opacity: .9
}

/* Spinner */
.loader-spinner {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  border: 4px solid color-mix(in oklab, var(--c-primary) 25%, transparent);
  border-top-color: var(--c-primary);
  animation: spin 1.1s linear infinite;
  filter: drop-shadow(0 6px 18px color-mix(in oklab, var(--c-primary) 35%, transparent));
}

@keyframes spin {
  to {
    transform: rotate(360deg)
  }
}

/* Optional entering fade for whole page (when JS toggles a class) */
html.page-enter body {
  opacity: 0
}

html.page-enter.page-enter-active body {
  opacity: 1;
  transition: opacity .45s ease
}

@media (prefers-reduced-motion: reduce) {
  .page-loader {
    transition: none
  }

  html.page-enter.page-enter-active body {
    transition: none
  }
}

/* ---------- Header / Nav ---------- */
.header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: color-mix(in oklab, var(--c-bg) 85%, transparent);
  backdrop-filter: saturate(180%) blur(8px);
  border-bottom: 1px solid var(--border);
  transition: all var(--t-med) ease;
}

.header.shrink .nav {
  padding: .35rem 0
}

.nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .9rem 0
}

.brand {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-weight: 800;
  letter-spacing: .2px;
  color: var(--c-text)
}

.brand .dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--c-primary)
}

.menu {
  display: flex;
  align-items: center;
  gap: .25rem;
  flex-wrap: wrap;
  /* allow wrap on tight widths */
  row-gap: .35rem;
  /* nicer wrapped rows */
}

.menu a {
  padding: .55rem .8rem;
  border-radius: 10px;
  font-weight: 600;
  color: color-mix(in oklab, var(--c-text) 85%, transparent)
}

.menu a.active,
.menu a:hover {
  background: color-mix(in oklab, var(--c-primary) 12%, transparent);
  color: var(--c-text)
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--cta-h);
  /* 42px */
  padding: 0 var(--cta-pad-x);
  /* 16px */
  border-radius: 12px;
  font-weight: 700;
  border: 2px solid var(--c-primary);
  color: #fff;
  background: var(--c-primary);
  box-shadow: var(--shadow);
}

.btn.alt {
  background: transparent;
  color: var(--c-primary)
}

/* ==== YOUTUBE SHOWCASE ==== */
.youtube-stage {
  margin-top: 1.75rem;
}

.yt-title {
  margin: 0 0 .75rem;
}

.yt-scroll {
  position: relative;
  overflow-x: auto;
  scroll-behavior: smooth;
  padding-bottom: 8px;
}

.no-scrollbar::-webkit-scrollbar {
  display: none;
}

.no-scrollbar {
  scrollbar-width: none;
}

.yt-rail {
  position: relative;
  height: var(--yt-rail-h);
  min-width: 640px;
}

.yt-row {
  position: absolute;
  left: 0;
  right: 0;
  height: calc(50% - (var(--yt-gap) / 2));
  /* 50/50 split */
  display: flex;
  align-items: center;
  gap: var(--yt-gap);
  min-width: max-content;
}

.yt-row.top {
  top: 0;
  padding-left: 0;
}

.yt-row.bottom {
  bottom: 0;
  padding-left: 60px;
}

/* subtle offset from top row */
/* cards */
.yt-card {
  height: 100%;
  /* fill the row height */
  aspect-ratio: 16/9;
  /* width derives from height → no squish */
  width: auto;
  /* let aspect-ratio decide */
  border-radius: 16px;
  overflow: hidden;
  background: var(--card);
  border: 1px solid var(--border);
  box-shadow: var(--shadow);
  position: relative;
  transform: translateZ(0);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease, filter .2s ease;
  z-index: 0;
  /* avoid hover overlap artifacts */
}

.yt-card:hover {
  transform: translateY(-2px) scale(1.02);
  /* gentle hover that won’t collide */
  box-shadow: 0 18px 40px rgba(0, 0, 0, .22);
  border-color: color-mix(in oklab, var(--c-accent) 40%, var(--border));
  z-index: 2;
  /* lift above neighbors without pushing them */
}


/* inner frame (gives you clean rounded corners even if the thumbnail has square edges) */
.yt-frame {
  position: relative;
  width: 100%;
  height: 100%;
  border-radius: 14px;
  /* slightly smaller than card radius */
  background: color-mix(in oklab, var(--card) 85%, var(--c-bg-2));
  box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--border) 70%, var(--c-accent) 10%);
  overflow: hidden;
  /* CRUCIAL: clips the thumbnail perfectly */
}

.yt-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(120% 120% at 10% 110%, color-mix(in oklab, var(--c-accent) 10%, transparent), transparent 60%);
  pointer-events: none;
}

.yt-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* “Watch” pill stays on top of the media */
.yt-chip {
  position: absolute;
  bottom: 10px;
  left: 10px;
  background: rgba(0, 0, 0, .65);
  color: #fff;
  border-radius: 999px;
  padding: 4px 8px;
  font-weight: 700;
  font-size: 12px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  z-index: 2;
}

.yt-chip svg {
  opacity: .9
}

@media (max-width: 720px) {
  .yt-card {
    width: 260px;
    height: 146px;
  }

  .card.story {
    padding: .9rem .95rem;
  }

  .card.story blockquote {
    padding: .8rem .9rem;
  }
}

/* Arrows: show by default only on small screens */
.yt-arrows {
  display: none;
}

/* ===== MOBILE (≤860px) – header & misc in one place ===== */
/* ===== Mobile drawer: full-height, left-side, vertical list ===== */
@media (max-width: 860px) {
  .stories-stage {
    overflow: visible;
  }

  /* avoid clipping the second card */
  .stories-grid {
    grid-template-columns: 1fr;
  }

  .story-card {
    width: 100%;
  }

  /* full width of the column */
  /* Put header & drawer above the dark backdrop */
  .header {
    z-index: 10050;
  }

  /* above .backdrop (9998) */
  .header .menu {
    z-index: 10060;
  }

  /* the drawer itself */
  .backdrop {
    z-index: 10000;
  }

  /* overlay below the drawer */
  /* keep it compact and aligned left inside the drawer */
  .header .menu .theme-toggle {
    align-self: flex-start;
    width: auto;
    /* don’t stretch to drawer width */
    max-width: none;
    margin: 6px 0 12px;
  }

  .header .nav>.theme-toggle {
    display: none !important;
    /* was: pointer-events:none; opacity:.45; … */
  }

  /* but keep the drawer copy fully active */
  .header .menu .theme-toggle {
    pointer-events: auto;
    opacity: 1;
    filter: none;
  }

  /* show the hamburger, hide desktop CTA */
  .menu-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 10px;
    border: 1px solid var(--border);
    background: color-mix(in oklab, var(--c-primary) 10%, transparent);
    font-weight: 800;
  }

  .header .nav>.btn {
    display: none;
  }

  /* hide desktop header CTA */
  .menu {
    display: block;
  }

  /* #menu exists – we restyle it */

  /* THE DRAWER (reusing #menu) */
  .header .menu {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    /* ← full viewport height */
    /* Support iOS toolbars: prefer dynamic viewport units but keep fallback */
    height: 100dvh;
    /* modern browsers */
    max-height: 100svh;
    /* small-view height fallback */

    width: min(84vw, 360px);
    padding: calc(var(--nav-h) + 12px) 18px 18px;
    /* room under sticky header */
    background: var(--bg-elev);
    border-right: 1px solid var(--border);
    box-shadow: 16px 0 40px rgba(0, 0, 0, .28);

    display: flex;
    flex-direction: column;
    /* ← VERTICAL layout */
    align-items: stretch;
    /* buttons stretch full width */
    gap: 8px;

    overflow-y: auto;
    /* scroll menu if tall */
    overflow-x: hidden;
    /* never side-scroll */
    overscroll-behavior: contain;

    transform: translateX(-100%);
    /* off-canvas by default */
    transition: transform .28s ease;
    z-index: 1000;
  }

  .header .menu.open {
    transform: translateX(0);
  }

  /* Backdrop + body lock (your JS already toggles these) */
  .backdrop {
    position: fixed;
    inset: 0;
    background: var(--overlay);
    opacity: 0;
    pointer-events: none;
    transition: opacity .25s ease;
    z-index: 999;
  }

  .backdrop.show {
    opacity: 1;
    pointer-events: auto;
  }

  body.drawer-open {
    overflow: hidden;
  }

  /* Tap-friendly links inside drawer */
  .header .menu a {
    display: block;
    padding: 12px 10px;
    border-radius: 10px;
    font-weight: 700;
    line-height: 1.2;
    border: 1px solid transparent;
  }

  .header .menu a:hover {
    background: color-mix(in oklab, var(--c-primary) 12%, transparent);
  }

  .header .menu a.active,
  .header .menu a[aria-current="page"] {
    background: color-mix(in oklab, var(--c-primary) 18%, transparent);
    border-color: color-mix(in oklab, var(--c-primary) 30%, var(--border));
    color: #fff;
  }

  /* Drawer CTA spans full width */
  .header .menu .btn {
    width: 100%;
    justify-content: center;
    margin-top: .5rem;
  }
}




/* JS will add this when there is no horizontal overflow */
.yt-arrows.is-hidden {
  display: none !important;
}

/* Make disabled buttons look disabled */
.yt-arrow:disabled {
  opacity: .45;
  pointer-events: none;
}

.yt-media,
.yt-frame {
  width: 100%;
  height: 100%;
  border-radius: inherit;
  overflow: hidden;
}

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

/* Modal */
.yt-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 16px;
}

.yt-modal.show {
  display: flex;
}

.yt-modal .backdrop {
  position: absolute;
  inset: 0;
  background: var(--overlay);
}

.yt-dialog {
  position: relative;
  z-index: 1;
  width: min(960px, 96vw);
  border-radius: 16px;
  background: var(--card);
  border: 1px solid var(--border);
  box-shadow: var(--shadow);
  overflow: hidden;
}

.yt-dialog header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  border-bottom: 1px solid var(--border);
}

.yt-dialog .player {
  aspect-ratio: 16 / 9;
  background: #000;
}

.yt-dialog .actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding: 12px 16px;
}

.yt-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  border-radius: 12px;
  padding: 10px 14px;
  border: 2px solid var(--c-primary);
}

.yt-btn.primary {
  background: var(--c-primary);
  color: #fff;
  border-color: transparent;
}

.yt-close {
  border: 0;
  background: transparent;
  padding: 6px;
}

@media (max-width: 720px) {
  :root {
    --yt-rail-h: 300px;
    --yt-gap: 14px;
  }

  .yt-row.bottom {
    padding-left: 32px;
  }

  .yt-rail {
    height: 360px;
  }

  .card.story {
    padding: .9rem .95rem;
  }

  .card.story blockquote {
    padding: .8rem .9rem;
  }

  .yt-card {
    width: 260px;
    height: 146px;
  }
}

/* header bar */
.yt-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin: 0 0 .75rem;
}

.yt-title {
  margin: 0;
  font-weight: 800;
  letter-spacing: .2px;
  background: linear-gradient(90deg, var(--c-text), color-mix(in oklab, var(--c-accent) 60%, var(--c-text)));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.yt-all {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  font-weight: 800;
  font-size: .95rem;
  padding: .55rem .8rem;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: color-mix(in oklab, var(--card) 80%, transparent);
  box-shadow: var(--shadow);
}

.yt-all:hover {
  transform: translateY(-1px);
  box-shadow: 0 12px 28px rgba(0, 0, 0, .18)
}

.yt-scroll {
  scroll-snap-type: x mandatory;
}

/* keep hover shadows inside their own row */
.yt-row {
  isolation: isolate;
}


.yt-card {
  scroll-snap-align: start;
}

/* Theme Toggle (pill) */
.theme-toggle {
  --size: 38px;
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .25rem .35rem .25rem .25rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--card);
  cursor: pointer;
  box-shadow: var(--shadow);
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}

.theme-toggle .track {
  position: relative;
  width: 64px;
  height: 28px;
  border-radius: 999px;
  background: color-mix(in oklab, var(--c-primary) 12%, var(--c-bg-2));
  border: 1px solid var(--border);
  transition: background var(--t-med) ease, border-color var(--t-med) ease;
}

.theme-toggle .thumb {
  position: absolute;
  top: 50%;
  left: 4px;
  transform: translate(0, -50%);
  width: 22px;
  height: 22px;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 6px 16px rgba(0, 0, 0, .15);
  display: grid;
  place-items: center;
  font-size: 12px;
  transition: transform var(--t-med) ease, background var(--t-med) ease;
}

.theme-toggle[aria-pressed="true"] .thumb {
  transform: translate(34px, -50%) rotate(15deg)
}

.theme-toggle .label {
  font-size: 12px;
  color: var(--c-muted)
}

.theme-toggle .sun,
.theme-toggle .moon {
  font-size: 14px;
  line-height: 1
}

.theme-toggle .sun {
  opacity: 1;
  transition: opacity var(--t-fast) ease
}

.theme-toggle[aria-pressed="true"] .sun {
  opacity: .35
}

.theme-toggle .moon {
  opacity: .35;
  transition: opacity var(--t-fast) ease
}

.theme-toggle[aria-pressed="true"] .moon {
  opacity: 1
}

/* Mobile drawer */
#menuBtn {
  display: none;
  background: transparent;
  border: 0;
  font-size: 1.35rem
}





/* ---------- HERO aesthetic upgrades ---------- */

/* Ensure full-screen height + 2-col layout if not already set */
.sectionalthero {
  min-height: 100svh;
  display: grid;
  align-items: center;
}

.hero-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  /* equal halves */
  align-items: center;
  gap: 2rem;
}

.hero-media {
  display: flex;
  justify-content: center;
  align-items: center;
}

.hero-media img {
  width: 100%;
  /* scale to fit column */
  max-width: 520px;
  /* bigger than current */
  height: auto;
  /* keep aspect ratio */
  border-radius: 16px;
  /* optional: rounded look */
  object-fit: cover;
  /* ensure it fills nicely */
  box-shadow: 0 12px 32px rgba(0, 0, 0, .35);
  /* add depth */
}

/* For small screens, stack vertically */
@media (max-width: 860px) {
  .hero-grid {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .hero-media {
    margin-top: 1.5rem;
  }

  .hero-media img {
    max-width: 420px;
  }
}

.hero-content {
  position: relative;
  z-index: 1;
}

.hero-media {
  order: 2;
  justify-self: end;
}

.hero-content {
  order: 1;
}

/* Mandala overlay behind text */
.hero-content::after {
  content: "";
  position: absolute;
  inset: -6% auto auto -6%;
  /* up-left behind the heading */
  width: min(44vw, 520px);
  height: min(44vw, 520px);
  background: radial-gradient(closest-side, color-mix(in hsl, var(--c-accent) 18%, transparent) 0%, transparent 70%), url("https://www.freepik.com/free-vector/elegant-decorative-mandala-background_77997965.htm#fromView=search&page=1&position=0&uuid=c303bdab-ef8d-41c5-8d09-fa6a82d0ac32&query=mandala") center/contain no-repeat;
  opacity: .14;
  filter: blur(.2px);
  pointer-events: none;
  z-index: -1;
}

/* Mini icon list — clean (no pills) */
.hero-icons {
  display: flex;
  flex-wrap: wrap;
  gap: .7rem 1.1rem;
  margin: 1.1rem 0 0;
  padding: 0;
  list-style: none;
  font-size: clamp(.95rem, .4vw + .85rem, 1.05rem);
  color: var(--c-muted);
}

.hero-icons li {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  padding: 0;
  /* no capsule padding */
  border: 0;
  /* remove outline */
  border-radius: 0;
  /* remove pill shape */
  background: none;
  box-shadow: none;
}

.hero-icons .icon {
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  border: 1px solid var(--border);
  background: color-mix(in hsl, var(--c-accent) 12%, transparent);
  font-size: 1rem;
  line-height: 1;
}

.hero-icons li:hover .icon {
  background: color-mix(in hsl, var(--c-accent) 20%, transparent);
}

/* Short social proof */
.hero-quote {
  margin: .9rem 0 0;
  padding-left: .75rem;
  border-left: 3px solid color-mix(in hsl, var(--c-accent) 70%, #0000);
  font-style: italic;
  color: var(--c-text);
  max-width: 48ch;
}

.hero-quote .who {
  font-style: normal;
  opacity: .8;
  font-size: .95em;
}

/* Floating glow orb (decorative) */
.hero-orb {
  position: absolute;
  right: -2.5rem;
  bottom: 1.2rem;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, #fff 0%, color-mix(in hsl, var(--c-accent) 70%, #fff) 40%, transparent 70%);
  filter: blur(.2px);
  animation: orbFloat 6.5s ease-in-out infinite;
  box-shadow: 0 0 28px color-mix(in hsl, var(--c-accent) 50%, #0000);
}

@keyframes orbFloat {

  0%,
  100% {
    transform: translateY(0) translateX(0);
    opacity: .9;
  }

  50% {
    transform: translateY(-10px) translateX(6px);
    opacity: .6;
  }
}

/* Divider wave */
.hero-divider {
  display: block;
  width: 100%;
  height: 90px;
}

.hero-divider path {
  fill: color-mix(in hsl, var(--c-bg-2) 85%, var(--c-bg) 15%);
}

/* Image sizing (“goldilocks”) */
.hero-media img {
  width: min(100%, 460px);
  max-height: 68vh;
  height: auto;
  object-fit: cover;
  display: block;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  box-shadow: var(--shadow);
}

/* Responsive */
@media (max-width: 900px) {
  .hero-grid {
    grid-template-columns: 1fr;
  }

  .hero-media {
    order: 2;
    justify-self: center;
  }

  .hero-content {
    order: 1;
    text-align: center;
  }

  .hero-content::after {
    inset: -4% 0 auto 50%;
    transform: translateX(-50%);
    width: min(72vw, 520px);
    height: min(72vw, 520px);
  }

  .hero-icons {
    grid-auto-flow: row;
    justify-content: center;
  }

  .hero-quote {
    margin-left: auto;
    margin-right: auto;
  }
}

/* 4) Mobile: stack nicely, keep text first */
@media (max-width: 900px) {
  .hero-grid {
    grid-template-columns: 1fr;
  }

  .hero-content {
    order: 1;
  }

  .hero-media {
    order: 2;
    justify-self: center;
  }
}

/* Full‑screen section helper (like hero) */
.section--full {
  min-height: 100svh;
  /* fill the viewport on mobile/desktop */
  display: grid;
  /* enables vertical centering */
}

.section--full>.container {
  min-height: inherit;
  /* carry the height to the container */
  display: grid;
  align-content: center;
  /* center the title + cards vertically */
}

/* optional: keep some breathing room on very short screens */
@media (max-height: 620px) {
  .section--full {
    min-height: 92svh;
  }
}

/* Services teaser: force one horizontal row of 3 cards on desktop */
.cards--row-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  /* equal heights */
}

/* Tweak responsiveness so it still looks good on smaller screens */
@media (max-width: 960px) {
  .cards--row-3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .cards--row-3 {
    grid-template-columns: 1fr;
  }
}

/* ===== Services Stage (full-screen, aura, hover glow) ===== */

.section--full {
  min-height: 100svh;
  display: grid;
}

.section--full>.container {
  min-height: inherit;
  display: grid;
  align-content: center;
}

/* Section aura background (subtle, theme-aware) */
.services-stage {
  position: relative;
  overflow: clip;
}

.services-stage::before {
  content: "";
  position: absolute;
  inset: -10% -10% auto -10%;
  height: 70%;
  background:
    radial-gradient(40% 60% at 20% 20%,
      color-mix(in hsl, var(--c-accent) 18%, transparent) 0%,
      transparent 70%),
    radial-gradient(35% 45% at 80% 30%,
      color-mix(in hsl, var(--c-primary) 14%, transparent) 0%,
      transparent 70%);
  filter: blur(6px);
  opacity: .35;
  pointer-events: none;
  z-index: 0;
}

/* widen container for services */
.services-stage .container {
  max-width: 1240px;
  /* was 1120px */
}

/* keep 3 cards in one row until ~900px */
.services-cards.cards--row-3 {
  display: grid;
  grid-template-columns: repeat(3, minmax(260px, 1fr));
  /* smaller min width */
  gap: clamp(1rem, 2.5vw, 1.5rem);
  align-items: stretch;
}

/* Curved dividers to match hero */
.stage-divider {
  width: 100%;
  height: 80px;
  display: block;
  position: absolute;
  left: 0;
  z-index: 1;
  pointer-events: none;
}

.stage-divider.top {
  top: 0;
  transform: translateY(-100%);
}

.stage-divider.bottom {
  bottom: 0;
  transform: translateY(100%);
}

.stage-divider path {
  fill: color-mix(in hsl, var(--c-bg-2) 85%, var(--c-bg) 15%);
}

/* Cards layout: 3 in a clean row on desktop */
.cards--row-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: clamp(1rem, 3vw, 1.5rem);
}

/* Service card aesthetic */
.service-card {
  position: relative;
  background: linear-gradient(180deg,
      color-mix(in hsl, var(--card) 92%, transparent),
      color-mix(in hsl, var(--card) 100%, transparent));
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
  isolation: isolate;
}

.service-card::after {
  /* soft inner glow ring */
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: radial-gradient(90% 70% at 50% 0%,
      color-mix(in hsl, var(--c-accent) 12%, transparent), transparent 60%);
  opacity: .6;
  pointer-events: none;
  z-index: -1;
}

.service-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 40px rgba(0, 0, 0, .22);
  border-color: color-mix(in hsl, var(--c-accent) 40%, var(--border));
}

.grid.cards.stories {
  grid-template-columns: 1fr;
}

.card.story {
  display: block;
  padding: 1rem 1.15rem;
  /* even inner padding */
  max-height: none !important;
  /* let height expand with content */
  overflow: visible !important;
}

.card.story>summary {
  list-style: none;
  margin: 0 0 .5rem 0;
  cursor: default;
}

.card.story>summary::-webkit-details-marker {
  display: none
}

.card.story h3 {
  margin: 0 0 .35rem 0;
}

.card.story .meta {
  margin: 0;
  color: var(--c-muted);
}

.card.story blockquote {
  margin: .6rem 0 0;
  padding: .9rem 1rem;
  background: color-mix(in oklab, var(--card) 85%, var(--c-bg-2));
  border: 1px solid var(--border);
  border-radius: 12px;
}

.card.story .takeaway {
  margin: .7rem 0 0 0;
}

/* Header with tiny icon & subtitle */
.svc-head {
  display: grid;
  gap: .25rem;
  margin-bottom: .35rem;
}

.svc-icon {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: color-mix(in hsl, var(--card) 70%, transparent);
  border: 1px solid var(--border);
  box-shadow: var(--shadow);
  translate: 0 -4px;
}

.svc-head h3 {
  margin: 0;
  font-size: clamp(1.05rem, .9rem + .6vw, 1.35rem);
}

.svc-sub {
  margin: 0;
  color: var(--c-muted);
  font-size: .95rem;
}

/* Body copy + micro-quote */
.svc-copy {
  margin: .35rem 0 .75rem;
}

.svc-quote {
  margin: 0 0 .9rem;
  font-style: italic;
  color: var(--c-text);
  border-left: 3px solid color-mix(in hsl, var(--c-accent) 60%, #0000);
  padding-left: .6rem;
  opacity: .9;
}

/* Button alignment */
.service-card .btn {
  width: fit-content;
}

/* Hover “curiosity” accent on header */
.service-card:hover .svc-icon {
  outline: 2px solid color-mix(in hsl, var(--c-accent) 45%, #0000);
  box-shadow: 0 10px 24px color-mix(in hsl, var(--c-accent) 25%, #0000);
}

@media (max-width: 900px) {
  .cards--row-3 {
    grid-template-columns: repeat(2, minmax(260px, 1fr));
  }
}

@media (max-width: 680px) {
  .cards--row-3 {
    grid-template-columns: 1fr;
  }

  .services-stage::before {
    height: 80%;
  }
}

/* Dashboard-style current page */
.menu a[aria-current="page"],
.menu a.active {
  background: color-mix(in oklab, var(--c-primary) 22%, transparent);
  color: #fff;
  border: 1px solid color-mix(in oklab, var(--c-primary) 50%, var(--border));
  box-shadow: 0 8px 20px color-mix(in oklab, var(--c-primary) 22%, transparent);
}

/* Optional: subtle underline bar for the active tab on wide screens */
@media (min-width: 861px) {
  .header .menu .theme-toggle {
    display: none !important;
  }


  .menu {
    flex-wrap: nowrap;
  }

  .menu a {
    white-space: nowrap;
  }

  .menu a[aria-current="page"]::after,
  .menu a.active::after {
    content: "";
    display: block;
    height: 3px;
    margin-top: 6px;
    border-radius: 999px;
    background: var(--c-accent);
  }
}

@keyframes gradientShift {
  0% {
    background-position: 0% 50%
  }

  50% {
    background-position: 100% 50%
  }

  100% {
    background-position: 0% 50%
  }
}

h1 {
  font-size: clamp(30px, 4vw, 48px);
  margin: 0 0 .5rem;
  color: var(--c-text);
  letter-spacing: -.02em
}

.sub {
  font-size: clamp(16px, 2vw, 22px);
  max-width: 900px;
  margin: .5rem auto 1.5rem;
  color: var(--c-muted)
}

/* Remove the faint white outline box from service sections */
.section.service,
.section.service .container {
  border: none !important;
  box-shadow: none !important;
}


.section.alt {
  background: var(--c-bg-2)
}

.section h2 {
  font-size: clamp(22px, 2.2vw, 34px);
  margin: 0 0 .75rem;
  color: var(--c-text)
}
/* Section kicker (eyebrow) — symmetric lines on both sides */
.kicker{
  --k-line-h: 2px;            /* line thickness */
  --k-left-l: 32px;           /* left line length */
  --k-gap: .9rem;

  display: flex;
  align-items: center;
  gap: var(--k-gap);
  margin: 0 0 1rem;

  font-size: clamp(1rem, .5vw + .95rem, 1.2rem);
  font-weight: 800;
  letter-spacing: .18em;
  text-transform: uppercase;

  /* text + lines color (tinted accent) */
  color: color-mix(in hsl, var(--c-accent) 75%, var(--c-muted));
  line-height: 1.1; /* keeps lines vertically centered with text */
}

/* identical lines before/after */
.kicker::before,
.kicker::after{
  content: "";
  height: var(--k-line-h);
  background: currentColor;   /* same color as the label text */
  border-radius: 2px;
  opacity: .9;
}

.kicker::before{
  width: var(--k-left-l);     /* short accent bar on the left */
  flex: 0 0 auto;
}

.kicker::after{
  flex: 1 1 auto;             /* long rule extending to the right */
}

/* optional: tune on very small screens */
@media (max-width: 520px){
  .kicker{ --k-left-l: 24px; --k-gap: .7rem; letter-spacing: .16em; }
}


/* ---------- Cards + Glass ---------- */
.cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 1.2rem;
  margin: 2rem 0
}

.card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 1.1rem 1.2rem;
  box-shadow: var(--shadow);
    background: var(--bg);
  border: 1px solid var(--border);
  color: var(--text);
}

.card.glass {
  background: linear-gradient(180deg, color-mix(in oklab, var(--card) 65%, transparent), color-mix(in oklab, var(--card) 35%, transparent));
  backdrop-filter: blur(12px);
  border: 1px solid color-mix(in oklab, var(--card) 60%, transparent);
}

/* Solid primary with subtle gradient + glow */
.btn-sectionalthero {
    background: var(--btn-primary-bg);
  color: var(--btn-primary-fg);
  border: 0;
  padding: 1rem 1.25rem;
  border-radius: 16px;
  color: #fff;
  font-weight: 800;
  background:
    linear-gradient(135deg,
      color-mix(in oklab, var(--c-primary) 85%, var(--c-accent)),
      var(--c-primary));
  box-shadow: 0 14px 28px color-mix(in oklab, var(--c-primary) 28%, transparent);
  transform: translateZ(0);
}

.btn-sectionalthero:hover {
  transform: translateY(-1px)
}

.btn-sectionalthero:focus-visible {
  outline: 3px solid color-mix(in oklab, var(--c-accent) 60%, transparent);
  outline-offset: 2px;
}

.btn-ghost {
    border: 1px solid var(--accent);
  color: var(--btn-ghost-fg);
  background: transparent;
  background: linear-gradient(180deg,
      color-mix(in oklab, var(--card) 14%, transparent),
      color-mix(in oklab, var(--card) 6%, transparent));
  color: var(--c-primary);
  border: 2px solid color-mix(in oklab, var(--c-primary) 70%, transparent);
  padding: 1rem 1.25rem;
  border-radius: 16px;
  box-shadow: 0 10px 22px color-mix(in oklab, var(--c-primary) 16%, transparent);
  backdrop-filter: saturate(140%) blur(2px);
}

.btn-ghost:hover {
  background: color-mix(in oklab, var(--c-primary) 12%, transparent);
  border-color: var(--c-primary);
}

.btn-ghost:focus-visible {
  outline: 3px solid color-mix(in oklab, var(--c-accent) 60%, transparent);
  outline-offset: 2px;
}

/* List with animated "icons" */
.list {
  padding-left: 0;
  list-style: none
}

.list li {
  position: relative;
  padding-left: 2rem;
  margin: .5rem 0
}

.list li::before {
  content: "";
  position: absolute;
  left: .2rem;
  top: .55rem;
  width: .9rem;
  height: .9rem;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, #fff, var(--c-primary));
  box-shadow: 0 4px 10px color-mix(in oklab, var(--c-primary) 30%, transparent);
  animation: pulse 2.6s ease-in-out infinite;
}

@keyframes pulse {

  0%,
  100% {
    transform: scale(1);
    opacity: .95
  }

  50% {
    transform: scale(1.18);
    opacity: 1
  }
}

/* About page helpers */
.bio-grid {
  display: grid;
  grid-template-columns: 1.3fr .9fr;
  gap: 1.5rem;
  align-items: start;
}


/* Drawer component */
.drawer {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  width: min(86vw, 360px);
  background: var(--bg-elev);
  color: var(--c-text);
  border-right: 1px solid var(--border);
  box-shadow: 0 10px 40px rgba(0, 0, 0, .35);
  transform: translateX(-100%);
  transition: transform var(--t-med);
  z-index: 1000;
  display: flex;
  flex-direction: column;
  padding: 16px 12px 18px;
  overscroll-behavior: contain;
}

.drawer[aria-hidden="false"] {
  transform: translateX(0);
}

.drawer__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding-bottom: .5rem;
  border-bottom: 1px solid var(--border);
}

.drawer__logo {
  height: 28px;
  width: auto;
  display: block;
}

.drawer__close {
  inline-size: 38px;
  block-size: 38px;
  border-radius: 50%;
  border: 1px solid var(--border);
  background: transparent;
  cursor: pointer;
}

.drawer__nav {
  display: grid;
  gap: .45rem;
  padding: .9rem 0;
}

.drawer__nav a {
  padding: .65rem .6rem;
  border-radius: .75rem;
  text-decoration: none;
  color: inherit;
  border: 1px solid transparent;
}

.drawer__nav a:hover {
  background: var(--c-bg-2);
}

.drawer__nav a:focus-visible {
  outline: 2px solid var(--c-accent);
  outline-offset: 2px;
}

.drawer__cta {
  margin-top: .4rem;
  display: inline-block;
  text-align: center;
}

.drawer__extras {
  margin-top: auto;
  display: grid;
  gap: .5rem;
}

.drawer__socials {
  display: flex;
  gap: .6rem;
}

.drawer__socials a {
  inline-size: 36px;
  block-size: 36px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  border: 1px solid var(--border);
}

/* Backdrop for the drawer (unique class name – won’t clash with YT modal) */
.drawer-backdrop {
  position: fixed;
  inset: 0;
  background: var(--overlay);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--t-med);
  z-index: 999;
}

.drawer-backdrop.show {
  opacity: 1;
  pointer-events: auto;
}

.bio-photo img {
  width: 100%;
  height: auto;
  border-radius: var(--radius);
  display: block;
  box-shadow: var(--shadow);
  border: 1px solid var(--border);
}

/* ---- FIX: keep HOW IT WORKS compact ---- */
.how-stage,
.how-stage.section--full {
  min-height: auto !important;
  /* disable the 100svh lock */
  display: block;
  /* go back to natural flow */
}

.how-stage>.container {
  min-height: auto;
  display: block;
  align-content: initial;
  padding-block: clamp(1.25rem, 3vh, 2rem);
  /* tighter vertical spacing */
}

/* 3‑step rail */
.steps {
  counter-reset: step;
  list-style: none;
  padding: 0;
  margin: 2rem 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(260px, 1fr));
  gap: clamp(1rem, 2.5vw, 1.4rem);
  position: relative;
  z-index: 1;
}

/* faint connecting line behind cards (desktop) */
.steps::before {
  content: "";
  position: absolute;
  left: 4px;
  right: 4px;
  top: 52px;
  height: 2px;
  background: linear-gradient(90deg,
      color-mix(in hsl, var(--c-primary) 25%, transparent),
      color-mix(in hsl, var(--c-accent) 25%, transparent));
  opacity: .4;
  border-radius: 2px;
  z-index: -1;
}

.step {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  background: linear-gradient(180deg,
      color-mix(in hsl, var(--card) 96%, transparent),
      color-mix(in hsl, var(--card) 100%, transparent));
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 1.1rem 1.2rem;
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
  min-height: 220px;
}

.step:hover {
  transform: translateY(-3px);
  border-color: color-mix(in hsl, var(--c-accent) 35%, var(--border));
  box-shadow: 0 18px 36px rgba(0, 0, 0, .22);
}

/* header: number chip + title */
.step-head {
  display: flex;
  align-items: center;
  gap: .6rem;
  margin-bottom: .35rem;
}

/* Step number chip with icon */
.step-num {
  position: relative;
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: color-mix(in hsl, var(--card) 70%, transparent);
  border: 1px solid var(--border);
  box-shadow: var(--shadow);
  font-weight: 800;
  overflow: hidden;
  color: var(--c-text);
  transition: transform .3s ease, box-shadow .3s ease;
}

.step-num .icon {
  font-size: 1.2rem;
  position: absolute;
  top: 6px;
  left: 50%;
  transform: translateX(-50%);
  opacity: .9;
}

.step-num .num {
  position: absolute;
  bottom: 6px;
  left: 50%;
  transform: translateX(-50%);
  font-size: .8rem;
  font-weight: 700;
  opacity: .8;
}

/* Glow animation on hover/reveal */
.step:hover .step-num {
  transform: translateY(-2px) scale(1.05);
  box-shadow: 0 0 0 4px color-mix(in hsl, var(--c-accent) 35%, transparent),
    0 8px 18px color-mix(in hsl, var(--c-primary) 28%, transparent);
}

.step-num.glow {
  animation: stepGlow 2.6s ease-in-out infinite;
}

@keyframes stepGlow {

  0%,
  100% {
    box-shadow: 0 0 0 2px color-mix(in hsl, var(--c-accent) 30%, transparent);
  }

  50% {
    box-shadow: 0 0 12px 4px color-mix(in hsl, var(--c-primary) 25%, transparent);
  }
}

.step h3 {
  margin: .1rem 0 0;
}

/* copy + micro note */
.step-copy {
  margin: .4rem 0 .6rem;
  color: var(--c-text);
}

.step-note {
  margin: 0;
  padding: .5rem .6rem;
  border-radius: 12px;
  background: color-mix(in hsl, var(--c-primary) 7%, transparent);
  border: 1px solid color-mix(in hsl, var(--c-primary) 18%, transparent);
  color: var(--c-muted);
}

/* responsiveness */
@media (max-width: 980px) {
  .steps {
    grid-template-columns: repeat(2, minmax(240px, 1fr));
  }

  .steps::before {
    display: none;
  }
}

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

.meta-list {
  list-style: none;
  padding: 0;
  margin: .25rem 0 0;
}

.meta-list li {
  margin: .35rem 0;
  color: var(--c-muted);
}

.taglist {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  list-style: none;
  padding: 0;
}

.taglist li {
  font-size: 12px;
  padding: .25rem .5rem;
  border-radius: 999px;
  background: color-mix(in oklab, var(--c-primary) 10%, transparent);
  border: 1px solid var(--border);
  color: var(--c-text);
}

.timeline {
  list-style: none;
  padding-left: 0;
  margin: .5rem 0;
}

.timeline li {
  position: relative;
  padding: .4rem 0 .4rem 1rem;
  border-left: 2px solid color-mix(in oklab, var(--c-primary) 45%, transparent);
  margin-left: .5rem;
}

.timeline li::before {
  content: "";
  position: absolute;
  left: -6px;
  top: .9rem;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--c-primary);
  box-shadow: 0 0 0 3px color-mix(in oklab, var(--c-primary) 25%, transparent);
}

/* ===== CLIENT STORIES ===== */
.stories-stage {
  position: relative;
  overflow: clip;
}

/* ---- FIX: Keep the FREE section compact ---- */
.free-stage,
.free-stage.section--full {
  min-height: auto !important;
  /* defeat the 100svh override */
  display: block;
  /* back to natural flow */
}

/* Optional: slightly tighter vertical padding for short sections */
.free-stage.section {
  padding-block: clamp(1.25rem, 3.5vh, 2rem);
}

/* Make sure the container inside FREE doesn't try to vertically center like full scenes */
.free-stage>.container {
  min-height: auto;
  display: block;
  align-content: initial;
}

/* soft sacred-aura in bg */
.stories-stage::before {
  content: "";
  position: absolute;
  inset: -10% -10% auto -10%;
  height: 68%;
  background:
    radial-gradient(40% 60% at 18% 28%,
      color-mix(in hsl, var(--c-accent) 14%, transparent) 0%, transparent 70%),
    radial-gradient(36% 46% at 82% 16%,
      color-mix(in hsl, var(--c-primary) 12%, transparent) 0%, transparent 70%);
  filter: blur(6px);
  opacity: .33;
  z-index: 0;
  pointer-events: none;
}

/* GRID: 2 columns on desktop */
.stories-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(2, minmax(280px, 1fr));
  gap: clamp(1rem, 2.6vw, 1.4rem);
  margin-top: 1.2rem;
}

/* CARD */
.story-card {
  background: linear-gradient(180deg,
      color-mix(in hsl, var(--card) 96%, transparent),
      color-mix(in hsl, var(--card) 100%, transparent));
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 1rem;
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
  display: grid;
  gap: .75rem;
}

.story-card:hover,
.story-card:focus-within {
  transform: translateY(-3px);
  border-color: color-mix(in hsl, var(--c-accent) 35%, var(--border));
  box-shadow: 0 18px 36px rgba(0, 0, 0, .22);
}

/* META (avatar, name, tag) */
.story-meta {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: .6rem;
}

.avatar {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  border: 1px solid var(--border);
  background:
    radial-gradient(circle at 30% 30%, #fff3 0%, #0000 60%),
    color-mix(in hsl, var(--card) 80%, transparent);
  box-shadow: var(--shadow);
  font-weight: 700;
}

.who {
  line-height: 1.1;
}

.who strong {
  display: block;
}

.who .loc {
  color: var(--c-muted);
  font-size: .95em;
}

.tag {
  padding: .25rem .5rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: color-mix(in hsl, var(--card) 70%, transparent);
  font-size: .85rem;
}

/* QUOTE with gradient left bar + decorative mark */
.story-quote {
  margin: .2rem 0 0;
  position: relative;
  padding: .9rem .9rem .9rem 1.1rem;
  border: 1px solid var(--border);
  border-radius: calc(var(--radius) - 8px);
  background: color-mix(in hsl, var(--card) 70%, transparent);
}

.story-quote::before {
  content: "";
  position: absolute;
  left: 0;
  top: .6rem;
  bottom: .6rem;
  width: 4px;
  border-radius: 8px;
  background: linear-gradient(180deg,
      color-mix(in hsl, var(--c-accent) 80%, transparent),
      color-mix(in hsl, var(--c-primary) 40%, transparent));
  box-shadow: 0 0 0 1px color-mix(in hsl, var(--c-accent) 20%, #0000) inset;
}

.story-quote p {
  margin: 0;
  font-style: italic;
  color: var(--c-text);
}

/* SERVICES: horizontal rail on phones */
@media (max-width: 820px) {
  .services-cards {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: min(86vw, 420px);
    grid-template-columns: none !important;
    gap: clamp(.8rem, 2.6vw, 1rem);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-bottom: .5rem;
    scroll-snap-type: x mandatory;
    /* edge fade hint */
    mask-image: linear-gradient(90deg, transparent 0, #000 24px, #000 calc(100% - 24px), transparent 100%);
  }

  .services-cards::-webkit-scrollbar {
    display: none;
  }

  .service-card {
    scroll-snap-align: center;
  }

  .free-stage .lead {
    font-size: .98rem;
    padding: .7rem .85rem;
    border-left-width: 0;
    /* remove heavy left bar */
    box-shadow: var(--shadow);
    /* subtle depth */
  }

  .yt-head {
    display: grid;
    grid-template-columns: 1fr;
    gap: .6rem;
  }

  .yt-all {
    justify-self: stretch;
    /* full width */
    text-align: center;
    padding: .8rem 1rem;
    border-radius: 14px;
    font-weight: 800;

    background: var(--c-primary);
    color: #fff;
    border-color: transparent;
    box-shadow: var(--shadow);
  }

  .yt-all:hover {
    transform: translateY(-1px);
  }

  .yt-all svg {
    margin-left: 6px;
  }
}

/* Client Stories: no collapsible behavior, no caret */
.stories details.story>summary {
  pointer-events: none;
  /* clicking the summary won't toggle */
  cursor: default;
}

.stories details.story>summary::after {
  content: none !important;
  /* kill the ▸ caret added for other details blocks */
}

.stories details.story summary::-webkit-details-marker {
  display: none !important;
  /* hide native marker on Safari/Chrome */
}

/* remove “hover underline” affordance */
.stories details.story summary:hover h3 {
  text-decoration: none;
}

/* Mobile: stack stories one under the other */
@media (max-width: 560px) {
  .stories-grid {
    grid-template-columns: 1fr;
    /* single column */
    gap: clamp(1rem, 2.6vw, 1.4rem);
  }
}

/* arrows (mobile) */
@media (max-width: 820px) {
  .services-stage {
    position: relative;
  }

  .svc-arrows {
    position: absolute;
    right: 10px;
    bottom: 12px;
    display: flex;
    gap: 10px;
    z-index: 5;
  }

  .svc-arrow {
    width: 44px;
    height: 44px;
    border-radius: 999px;
    border: 1px solid var(--border);
    background: var(--card);
    box-shadow: var(--shadow);
    font-weight: 800;
    display: grid;
    place-items: center;
    transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
  }

  .svc-arrow:hover {
    transform: translateY(-1px);
    box-shadow: 0 14px 28px rgba(0, 0, 0, .18);
  }

  .svc-arrows.is-hidden {
    display: none !important;
  }
}

@media (max-width: 820px) {
  .services-cards::after {
    content: "";
    position: absolute;
    inset: auto 0 0 0;
    height: 20px;
    pointer-events: none;
    background: radial-gradient(60% 60% at 90% 50%, color-mix(in oklab, var(--c-accent) 20%, transparent), transparent 70%);
    opacity: .35;
  }
}

/* FREE section lead text – base looks good on desktop */
.free-stage .lead {
  margin: .65rem 0 0;
  padding: .8rem .9rem;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: color-mix(in oklab, var(--card) 80%, transparent);
  line-height: 1.5;
}

.cta-row {
  display: flex;
  gap: .6rem;
  flex-wrap: wrap;
  margin-top: 1rem;
}

/* ---------- Blockquote ---------- */
blockquote {
  margin: 1rem 0;
  padding: 1rem 1.2rem;
  background: color-mix(in oklab, var(--c-primary) 6%, transparent);
  border-left: 4px solid var(--c-primary);
  border-radius: 12px
}

/* ---------- Footer ---------- */
.footer {
  margin-top: 3rem;
  padding: 2rem 0;
  border-top: 1px solid var(--border);
  font-size: 14px;
  color: var(--c-muted);
  background: var(--card)
}

/* ---------- Reveal animations ---------- */
.reveal {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity .7s ease, transform .7s ease
}

.reveal.show {
  opacity: 1;
  transform: translateY(0)
}

.zoom {
  opacity: 0;
  transform: scale(.97);
  transition: opacity .7s ease, transform .7s ease
}

.zoom.show {
  opacity: 1;
  transform: scale(1)
}

/* ---------- Sticky "Book Now" floating button ---------- */
.fab {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 90;
  background: var(--c-primary);
  color: #fff;
  border-radius: 999px;
  padding: .9rem 1.1rem;
  font-weight: 800;
  box-shadow: 0 20px 40px color-mix(in oklab, var(--c-primary) 35%, transparent);
  border: none;
  cursor: pointer;
  transition: opacity .25s ease, transform .25s ease;
}

.fab:hover {
  transform: translateY(-1px)
}

.fab.is-hidden {
  opacity: 0;
  pointer-events: none;
}

/* ---------- Scroll progress bar ---------- */
.progress {
  position: fixed;
  z-index: 120;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: transparent
}

.progress__bar {
  height: 100%;
  width: 0%;
  background: var(--progress-grad)
}

/* ---------- Utility ---------- */
hr {
  border: 0;
  border-top: 1px solid var(--border);
  margin: 2rem 0
}

.badge {
  display: inline-block;
  font-size: 12px;
  padding: .25rem .5rem;
  border-radius: 999px;
  background: color-mix(in oklab, var(--c-primary) 12%, transparent);
  color: var(--c-primary);
  margin: .25rem 0
}

/* ----- Services page helpers ----- */
.subnav {
  position: sticky;
  top: 64px;
  z-index: 10;
  display: flex;
  gap: .5rem;
  flex-wrap: wrap;
  background: var(--card);
  border: 1px solid var(--border);
  padding: .5rem;
  border-radius: 12px;
  margin: 1rem 0 1.25rem;
  box-shadow: var(--shadow);
}

.subnav a {
  padding: .45rem .75rem;
  border-radius: 10px;
  font-weight: 600;
  color: color-mix(in oklab, var(--c-text) 85%, transparent);
}

.subnav a:hover,
.subnav a.active {
  background: color-mix(in oklab, var(--c-primary) 12%, transparent);
  color: var(--c-text);
}

.compare {
  margin-top: 1rem;
}

.service-grid {
  display: grid;
  grid-template-columns: 1.25fr .9fr;
  gap: 1.2rem;
  align-items: start;
}

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

.glance .meta {
  list-style: none;
  padding: 0;
  margin: .25rem 0 1rem
}

.glance .meta li {
  margin: .35rem 0;
  color: var(--c-muted)
}

.note {
  background: color-mix(in oklab, var(--c-primary) 7%, transparent);
  border: 1px solid color-mix(in oklab, var(--c-primary) 18%, transparent);
  padding: .75rem .9rem;
  border-radius: 12px;
  margin-top: .75rem;
}

.small {
  font-size: 14px;
  color: var(--c-muted);
}

.cta-row {
  display: flex;
  gap: .6rem;
  flex-wrap: wrap;
  margin-top: .6rem;
}

.story-tags {
  display: flex;
  gap: .8rem;
  align-items: center;
  overflow-x: auto;
  flex-wrap: nowrap;
  /* horizontal rail */
  -webkit-overflow-scrolling: touch;
  scroll-behavior: smooth;
  padding: .6rem .8rem;
  border: 1px solid var(--border);
  border-radius: 16px;
}

.story-tags a {
  flex: 0 0 auto;
  white-space: nowrap;
}

.story-tags a:hover,
.story-tags a.active {
  background: color-mix(in oklab, var(--c-primary) 12%, transparent);
  color: var(--c-text);
  border-color: color-mix(in oklab, var(--c-primary) 25%, transparent);
}

#all,
#healing,
#relationships,
#purpose,
#spiritual {
  scroll-margin-top: 84px;
  /* header height + breathing room */
}

.stories details.story summary {
  list-style: none;
  cursor: pointer;
  display: block;
}

.stories details.story summary::-webkit-details-marker {
  display: none;
}

.stories details.story h3 {
  margin: .2rem 0 .25rem;
}

.meta {
  display: flex;
  gap: .5rem;
  flex-wrap: wrap;
  align-items: center;
}

.tag {
  display: inline-block;
  padding: .15rem .5rem;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: color-mix(in oklab, var(--c-primary) 7%, transparent);
  font-size: 12px;
  color: var(--c-text);
}

.stories details.story[open] {
  outline: 0;
  /* keep focus styles on inner elements */
}

.stories details.story blockquote {
  margin-top: .6rem;
}

.takeaway {
  margin: .6rem 0 0;
  color: var(--c-muted);
}

/* nicer hover affordance for summary */
.stories details.story summary:hover h3 {
  text-decoration: underline;
  text-underline-offset: 3px;
}

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

.embed-wrap {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  box-shadow: var(--shadow);
}

.embed-wrap iframe {
  display: block;
  width: 100%;
  height: 720px;
  background: #fff;
}

/* Make ordered list look neat like bullets */
ol.list {
  counter-reset: item;
  padding-left: 0;
}

ol.list>li {
  list-style: none;
  position: relative;
  padding-left: 2rem;
  margin: .5rem 0;
}

ol.list>li::before {
  counter-increment: item;
  content: counter(item) ".";
  position: absolute;
  left: .4rem;
  top: .2rem;
  font-weight: 800;
  color: var(--c-primary);
}

/* ----- FAQ helpers ----- */
.faq-subnav {
  position: sticky;
  top: 64px;
  z-index: 10;
  display: flex;
  gap: .5rem;
  flex-wrap: wrap;
  background: var(--card);
  border: 1px solid var(--border);
  padding: .5rem;
  border-radius: 12px;
  margin: 1rem 0 1.25rem;
  box-shadow: var(--shadow);
}

.faq-subnav a {
  padding: .4rem .7rem;
  border-radius: 999px;
  font-weight: 600;
  color: color-mix(in oklab, var(--c-text) 85%, transparent);
  border: 1px solid transparent;
}

.faq-subnav a:hover,
.faq-subnav a.active {
  background: color-mix(in oklab, var(--c-primary) 12%, transparent);
  border-color: color-mix(in oklab, var(--c-primary) 25%, transparent);
  color: var(--c-text);
}

.faq-group {
  margin-top: 2rem;
}

.faq-group>h2 {
  margin: 0 0 .5rem;
}

details.card summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: .5rem;
}

details.card summary::-webkit-details-marker {
  display: none;
}

/* Caret indicator */
details.card summary::after {
  content: "▸";
  margin-left: auto;
  transform: rotate(0deg);
  transition: transform var(--t-med) ease;
  opacity: .7;
}

details.card[open] summary::after {
  transform: rotate(90deg);
}

/* Hover affordance */
details.card summary:hover h3 {
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* ===== Myths vs Truths — premium layout ===== */

/* Section top rhythm */
.myths-hero {
  margin-bottom: 1.2rem;
}

/* Floating tab rail */
.myth-tags{
  position: sticky; top: calc(var(--nav-h) + 12px);
  z-index: 3;
  display:flex; gap:.5rem; flex-wrap:wrap;
  background: color-mix(in oklab, var(--c-bg) 85%, transparent);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: .4rem .5rem;
  box-shadow: 0 10px 26px rgba(0,0,0,.12);
}
.myth-tags a{
  display:inline-flex; align-items:center; gap:.45rem;
  padding:.5rem .8rem; border-radius: 999px;
  border:1px solid var(--border);
  background: color-mix(in oklab, var(--c-primary) 9%, transparent);
  color: color-mix(in oklab, var(--c-text) 88%, transparent);
  font-weight: 700; letter-spacing:.02em;
  transition: transform .12s ease, background .12s ease, border-color .12s ease;
}
.myth-tags a:hover{ transform: translateY(-1px); }
.myth-tags a.active{
  background: color-mix(in oklab, var(--c-primary) 16%, transparent);
  box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--c-primary) 30%, transparent);
}

/* Split pairs with balanced depth */
.myth-grid{
  display:grid; gap: 16px;
  grid-template-columns: repeat(2, minmax(0,1fr));
}
@media (max-width: 860px){ .myth-grid{ grid-template-columns: 1fr; } }

.myth-pair{
  display:grid; gap: 16px;
  grid-template-columns: 1fr 1fr;
  padding: 14px; border-radius: 16px;
  background: var(--bg-elev);
  border: 1px solid var(--border);
  box-shadow: var(--shadow);
  position: relative;
}
@media (max-width: 720px){ .myth-pair{ grid-template-columns: 1fr; } }

/* Left accent to guide the eye */
.myth-pair::before{
  content:""; position:absolute; inset: -1px auto -1px -1px; width:5px;
  border-radius: 16px 0 0 16px;
  background: linear-gradient(180deg, var(--c-primary), var(--c-accent));
  opacity:.8;
}

/* Card halves */
.myth, .truth{
  background: color-mix(in oklab, var(--card) 85%, transparent);
  border: 1px solid var(--border);
  border-radius: 12px; padding: 18px;
}
.myth h3, .truth h3{ margin:0 0 .35rem; letter-spacing:.12em; font-size:.9rem; }
.myth h3::before{ content:"✕ "; opacity:.8; }
.truth h3::before{ content:"✓ "; opacity:.9; }

/* CTA band before footer for smoother page ending */
.section--prefooter {
  position: relative;
  margin: 28px 0 0;
  padding: 26px 0 8px;
  background:
    radial-gradient(40% 60% at 15% 10%, color-mix(in oklab, var(--c-accent) 10%, transparent) 0, transparent 70%),
    radial-gradient(40% 60% at 85% 40%, color-mix(in oklab, var(--c-primary) 12%, transparent) 0, transparent 70%);
  filter: saturate(105%);
}
.section--prefooter .band{
  display:flex; flex-wrap:wrap; gap:.6rem; align-items:center; justify-content:space-between;
  border:1px solid var(--border); border-radius:16px; padding:14px 16px; background: var(--bg-elev);
  box-shadow: 0 8px 24px rgba(0,0,0,.16);
}
.section--prefooter .band p{ margin:0; opacity:.9; }

/* Subtle appear on scroll (reusing your reveal system) */
.myth-pair.reveal    { transform: translateY(16px) scale(.98); opacity:0; }
.myth-pair.show      { transform:none; opacity:1; transition: all .55s cubic-bezier(.2,.7,.2,1); }

/* ----- Contact layout ----- */
.contact-grid {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 1.2rem;
  align-items: start;
}

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

.form.card {
  padding: 1.25rem;
}

.actions {
  display: flex;
  gap: .6rem;
  flex-wrap: wrap;
}

/* Floating labels */
.field {
  position: relative;
  margin: 1rem 0;
}

.field input,
.field textarea,
.field select {
  width: 100%;
  padding: 1rem .9rem;
  border-radius: 12px;
  border: 1px solid var(--border);
  background: var(--card);
  color: var(--c-text);
  outline: none;
  transition: border-color var(--t-med) ease, box-shadow var(--t-med) ease, background var(--t-med) ease;
}

.field select {
  padding-top: 1.25rem;
  padding-bottom: .9rem;
}

.field textarea {
  min-height: 120px;
  resize: vertical;
}

/* Float only for inputs / textarea / select — NOT for radios */
.field:not(.radios)>label {
  position: absolute;
  left: .9rem;
  top: .95rem;
  pointer-events: none;
  color: var(--c-muted);
  background: transparent;
  padding: 0 .25rem;
  transition: transform var(--t-med) ease, color var(--t-med) ease, top var(--t-med) ease, background var(--t-med) ease;
}


.field:not(.radios) input:focus+label,
.field:not(.radios) textarea:focus+label,
.field:not(.radios) select:focus+label,
.field:not(.radios) input.filled+label,
.field:not(.radios) textarea.filled+label,
.field:not(.radios) select.filled+label {
  top: -.55rem;
  transform: scale(.92);
  background: var(--card);
  color: var(--c-text);
}


.field input:focus,
.field textarea:focus,
.field select:focus {
  border-color: color-mix(in oklab, var(--c-primary) 60%, transparent);
  box-shadow: 0 0 0 3px color-mix(in oklab, var(--c-primary) 18%, transparent);
}

/* Errors */
.err {
  display: none;
  color: #b42318;
  font-size: 12px;
  margin-top: .35rem;
}

.field.has-error input,
.field.has-error textarea,
.field.has-error select {
  border-color: #fda29b;
  box-shadow: 0 0 0 3px rgba(253, 146, 137, .25);
}

.field.has-error .err {
  display: block;
}

/* Radios: ensure labels are normal flow and readable */
.field.radios {
  display: block;
}

.field.radios>label {
  position: static !important;
  transform: none !important;
  pointer-events: auto !important;
  opacity: 1 !important;
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  margin-right: 1rem;
  margin-top: .25rem;
  white-space: nowrap;
}

/* Optional: better wrapping on small screens */
@media (max-width: 520px) {
  .field.radios>label {
    white-space: normal;
  }
}

/* Radios + consent */
.radios {
  border: 1px dashed var(--border);
  border-radius: 12px;
  padding: .6rem .8rem;
}

.radios legend {
  font-weight: 700;
  font-size: 14px;
  color: var(--c-muted);
}

.radios label {
  margin-right: .9rem;
}

.agree {
  display: inline-flex;
  gap: .5rem;
  align-items: flex-start;
  margin: .25rem 0;
}

/* Toast */
.toast {
  position: fixed;
  left: 50%;
  bottom: 18px;
  transform: translateX(-50%) translateY(20px);
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: var(--shadow);
  padding: .75rem 1rem;
  z-index: 110;
  opacity: 0;
  transition: opacity var(--t-med) ease, transform var(--t-med) ease;
}

.toast.show {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

.lead {
  font-size: 1.05rem;
  background: color-mix(in oklab, var(--c-primary) 6%, transparent);
  border-left: 4px solid var(--c-primary);
  border-radius: 12px;
}

/* --- Media card helpers for guided meditations --- */
.card .thumb {
  overflow: hidden;
  border-radius: 12px;
  border: 1px solid var(--border);
  aspect-ratio: 1/1;
  background: #fff;
}

.card .thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.meta-line {
  color: var(--c-muted);
  font-size: 14px;
  margin: .35rem 0 .25rem;
}

/* --- Meditations grid polish --- */

/* equal-height cards + pinned CTA */
#meditations .cards .card {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  min-height: 420px;
  /* adjusts overall balance */
}

#meditations .cards .card .cta-row {
  margin-top: auto;
}

/* image hover glow + gentle lift */
#meditations .card {
  transition: transform .18s ease, box-shadow .18s ease;
}

#meditations .card:hover {
  transform: translateY(-3px);
  box-shadow: 0 18px 36px color-mix(in oklab, var(--c-primary) 28%, transparent);
}

#meditations .card .thumb {
  position: relative;
}

#meditations .card .thumb::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 12px;
  box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--c-primary) 22%, transparent);
  pointer-events: none;
}

/* corner chip on image (duration / tag) */
.thumb .chip {
  position: absolute;
  left: 10px;
  top: 10px;
  padding: .25rem .45rem;
  font-size: 12px;
  border-radius: 999px;
  background: color-mix(in oklab, var(--c-primary) 20%, var(--c-bg-2));
  border: 1px solid var(--border);
  backdrop-filter: blur(3px);
}

/* Keep this section on the base background even if .alt is applied */
.keep-base-bg,
.keep-base-bg.alt {
  background: var(--c-bg);
  /* same as hero/base */
  background-image: var(--c-bg);
  /* safety for gradient tokens */
}



/* mobile breathing room */
@media (max-width: 700px) {
  #meditations .cards {
    gap: 1rem;
  }
}

/* clearer focus for a11y */
#meditations .btn:focus-visible {
  outline: 3px solid color-mix(in oklab, var(--c-accent) 60%, transparent);
  outline-offset: 2px;
}

/* optional play icon on Listen */
#meditations .btn.play::before {
  content: "▶ ";
  font-weight: 700;
}

/* ---- FIX: keep SERVICES section compact ---- */
.services-stage,
.services-stage.section--full {
  min-height: auto !important;
  /* disable the 100svh lock */
  display: block;
  /* revert to natural flow */
}

.services-stage>.container {
  min-height: auto;
  display: block;
  align-content: initial;
  padding-block: clamp(1.25rem, 3vh, 2rem);
  /* compact vertical spacing */
}


/* --- Chatbot (floating) --- */
.chatbot-launcher {
  position: fixed;
  right: 18px;
  bottom: 90px;
  z-index: 120;
  width: 54px;
  height: 54px;
  border-radius: 999px;
  border: 0;
  background: var(--c-primary);
  color: #fff;
  font-size: 22px;
  font-weight: 800;
  box-shadow: 0 16px 32px color-mix(in oklab, var(--c-primary) 35%, transparent);
  display: grid;
  place-items: center;
  cursor: pointer;
}

.chatbot-launcher:hover {
  transform: translateY(-1px)
}

.chatbot {
  position: fixed;
  right: 18px;
  bottom: 154px;
  z-index: 120;
  width: 340px;
  max-width: 92vw;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid var(--border);
  background: var(--card);
  box-shadow: 0 24px 48px rgba(0, 0, 0, .22);
  display: none;
}

.chatbot.open {
  display: block
}

.chatbot__head {
  display: flex;
  align-items: center;
  gap: .6rem;
  padding: .75rem .9rem;
  background: color-mix(in oklab, var(--c-primary) 12%, transparent);
  border-bottom: 1px solid var(--border);
  font-weight: 800;
}

.chatbot__dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--c-primary)
}

.chatbot__body {
  padding: .8rem;
  max-height: 360px;
  overflow: auto;
  display: grid;
  gap: .6rem
}

.chatbot__msg {
  padding: .55rem .7rem;
  border-radius: 12px;
  font-size: 14px;
  line-height: 1.4
}

.chatbot__msg.-bot {
  background: color-mix(in oklab, var(--c-primary) 8%, transparent);
  color: var(--c-text)
}

.chatbot__msg.-me {
  background: color-mix(in oklab, var(--c-accent) 12%, transparent);
  justify-self: end
}

.chatbot__form {
  display: flex;
  gap: .4rem;
  border-top: 1px solid var(--border);
  padding: .6rem
}

.chatbot__form input {
  flex: 1;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: .6rem .75rem;
  background: var(--card);
  color: var(--c-text);
}

.chatbot__form button {
  border: 0;
  border-radius: 12px;
  padding: .6rem .9rem;
  font-weight: 800;
  cursor: pointer;
  background: var(--c-primary);
  color: #fff;
}

.field .help {
  opacity: .8;
  margin-top: .25rem;
  display: block;
}

.field.has-error .err {
  display: block;
}

.field .err {
  display: none;
  color: var(--c-accent);
}

.field.required label::after {
  content: " *";
  color: var(--c-accent);
}

.radios label {
  margin-right: 1rem;
}

.row-between {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
}

button[disabled],
a[aria-disabled="true"] {
  opacity: .6;
  pointer-events: none;
}

/* Footer social row spacing */
.footer .small {
  margin-top: .5rem
}

/* Footer social icons */
.footer .social {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 999px;
  margin-right: .5rem;
  background: var(--card);
  /* clearer bubble on both themes */
  border: 1px solid var(--border);
  /* contrast on dark */
  box-shadow: var(--shadow);
  color: var(--c-primary);
  transition: background var(--t-med), color var(--t-med), transform var(--t-med), box-shadow var(--t-med);
}

.footer .social:hover {
  background: var(--c-primary);
  color: #fff;
  transform: translateY(-2px);
}

.footer .social:focus-visible {
  outline: 3px solid color-mix(in oklab, var(--c-accent) 55%, transparent);
  outline-offset: 2px;
}

.footer .social svg {
  width: 20px;
  height: 20px;
  display: block
}

/* Instagram: filled glyph for visibility */
.footer .social.ig svg rect,
.footer .social.ig svg circle {
  fill: currentColor;
  stroke: none
}

.footer .social.ig svg {
  width: 20px;
  height: 20px;
  fill: currentColor;
  /* matches your theme color */
}

/* YouTube: solid pill + white play */
.footer .social.yt .yt-body {
  fill: currentColor
}

.footer .social.yt .yt-play {
  fill: #fff
}

.footer .social.ig svg * {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* --- CTA-triggered micro-interaction --- */
@keyframes headerPop {
  0% {
    transform: translateY(0) scale(1);
    box-shadow: none;
  }

  50% {
    transform: translateY(-2px) scale(1.01);
    box-shadow: 0 18px 44px rgba(0, 0, 0, .28);
  }

  100% {
    transform: translateY(0) scale(1);
    box-shadow: none;
  }
}

.header.cta-pop {
  animation: headerPop .52s ease;
  outline: 0;
  /* no outline jump */
  background: color-mix(in oklab, var(--c-bg) 80%, transparent);
}

/* Temporarily “light up” the nav items */
.menu.cta-mode a {
  transition: transform .2s ease, background-color .2s ease, color .2s ease, border-color .2s ease;
  background: color-mix(in oklab, var(--c-primary) 18%, transparent);
  color: var(--c-text);
  border: 1px solid color-mix(in oklab, var(--c-primary) 35%, var(--border));
  border-radius: 999px;
}

.menu.cta-mode a:hover {
  transform: translateY(-1px);
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
  .header.cta-pop {
    animation: none;
  }
}

/* a11y helper */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* --- Client Stories: media support --- */
.story-body {
  display: grid;
  gap: 12px;
}
.story--with-image{
  --media-w: clamp(280px, 32vw, 420px);   /* image column width (desktop) */
  --media-h: clamp(320px, 48vh, 520px);   /* image box height cap */
  --media-pad: 10px;                      /* inner frame padding */
}

.story--with-image .story-body {
  grid-template-columns: 1fr;
  /* stack on mobile */
  align-items: start;
}



/* Client Stories — image frame + aspect helpers */
.story-media {
  position: relative;
  overflow: hidden;
  border-radius: 14px;
  border: 1px solid var(--border);
  background: var(--card);
  box-shadow: var(--shadow);
}

/* The image fills the frame */
.story-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  /* fill, may crop */
}
/* Image frame: padded, never overflows, keeps rounded edges */
.story--with-image .story-media{
  margin: 0;
  padding: var(--media-pad);
  border-radius: 14px;
  background: rgba(255,255,255,0.04);
  box-shadow: 0 0 0 1px rgba(255,255,255,0.06) inset;
  overflow: hidden;
  height: var(--media-h);                        /* medium, capped height */
}

.story--with-image .story-media img{
  width: 100%;
  height: 100%;                                  /* fill the box only */
  object-fit: cover;
  display: block;
  border-radius: 10px;
}

/* neutralize fixed ratios inside client stories */
.story--with-image .story-media.ratio-1x1,
.story--with-image .story-media.ratio-4x3,
.story--with-image .story-media.ratio-16x9,
.story--with-image .story-media.ratio-3x4,
.story--with-image .story-media.ratio-2x3 {
  aspect-ratio: auto !important;
}
/* Make the image fill the available height and width without distortion */
.story--with-image .story-media img{
  width: 100%;
  height: 100%;
  object-fit: cover;                        /* crop nicely if needed */
  display: block;
  border-radius: 10px;                      /* visible because of the padding frame */
}

@media (max-width: 899.98px){
  .story--with-image .story-body{ grid-template-columns: 1fr; }
  .story--with-image .story-media{ padding: 8px; height: clamp(220px, 40vh, 300px); }
  .story--with-image .story-media img{ width: 100%; height: 100%; object-fit: cover; }
}


/* natural */

/* Optional: never crop (letterbox) */
.story-media.no-crop img {
  object-fit: contain;
}

/* keep your existing blockquote spacing harmonious with media */
.card.story blockquote {
  margin-top: .2rem;
}

/* accessibility helper for hidden captions */
.visually-hidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* --- Client Stories: media support (additive) --- */
.story-body {
  display: grid;
  gap: 12px;
}

.story--with-image .story-body {
  grid-template-columns: 1fr;
  /* stack on mobile */
  align-items: start;
}
@media (min-width: 900px){
  .story--with-image .story-body{
    display: grid;
    grid-template-columns: 1fr var(--media-w);  /* text | fixed-width image */
    gap: 24px;
    align-items: start;                          /* no full-height stretching */
  }
}




/* harmonize spacing with your current story card styles */
.card.story blockquote {
  margin-top: .2rem;
}

/* a11y helper for hidden captions */
.visually-hidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}    /* smaller hero title just for this page */
    #about .h1--compact { font-size: clamp(26px, 2.6vw, 34px); line-height:1.2; }

    /* highlight Dipti's name inside paragraph */
    .name-highlight {
      font-weight: 900;
      font-size: clamp(1.15rem, 0.5vw + 1.1rem, 1.5rem);
      letter-spacing: .2px;
      background: linear-gradient(90deg, var(--c-text), color-mix(in oklab, var(--c-accent) 60%, var(--c-text)));
      -webkit-background-clip: text; background-clip: text; color: transparent;
      white-space: nowrap;
    }

    /* hide the full story until revealed */
    #full-story-block[hidden] { display:none !important; }

    /* keep bio grid neat when we removed the left H2 */
    #about .bio-grid { align-items: start; }

    /* --- LAYOUT TUNING: intro + portrait columns --- */
    #about .bio-grid { 
      display:grid; 
      grid-template-columns: minmax(0,1.1fr) minmax(280px,0.9fr);
      gap: 2.2rem 3rem;
    }
    /* control readable line-length */
    #about .bio-grid > div > p { max-width: 64ch; }
    #about blockquote.lead { margin-top: .75rem; max-width: 56ch; }

    /* --- Cards: tidy two-column grid, third card spans full width --- */
    #about .cards { 
      display:grid; 
      grid-template-columns: repeat(2, minmax(260px, 1fr)); 
      gap: 1rem; 
      margin-top:1rem;
    }
    #about .cards .card { height:100%; }
/* Full-width card inside the about page */
#about .cards .card.good {
  grid-column: 1 / -1;
  max-width: 56ch; /* was 780px */
}


    /* --- Premium portrait with sticky behavior + badge --- */
    .bio-photo { position: sticky; top: 88px; align-self: start; padding-bottom: 28px; }
    @media (max-width: 980px){ .bio-photo { position: static; padding-bottom: 0; } }

    .bio-photo { position: relative; }
    .bio-photo img{
      display:block; width:100%; height:auto; border-radius: 20px;
      border: 1px solid color-mix(in oklab, var(--border) 70%, var(--c-accent) 18%);
      box-shadow: 0 18px 44px rgba(0,0,0,.32);
      transform: translateZ(0);
      transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
      background: radial-gradient(120% 120% at 20% 10%, color-mix(in oklab, var(--c-accent) 10%, transparent), transparent 60%);
    }
    .bio-photo:hover img{ transform: translateY(-2px); box-shadow: 0 22px 54px rgba(0,0,0,.38); border-color: color-mix(in oklab, var(--c-accent) 34%, var(--border)); }
    .bio-photo::before{
      content:""; position:absolute; inset:-10px -10px -34px -10px; border-radius: 26px;
      background:
        radial-gradient(60% 80% at 8% 8%, color-mix(in oklab, var(--c-accent) 24%, transparent), transparent 60%),
        radial-gradient(60% 80% at 92% 92%, color-mix(in oklab, var(--c-primary) 20%, transparent), transparent 60%);
      filter: blur(12px); z-index:-1; opacity:.5;
    }
    /* badge overlays the image corner */
    .bio-photo .bio-credit{
      position:absolute; left:18px; bottom:-18px; margin-top:0;
      display:inline-flex; align-items:center; gap:.6rem;
      padding:.5rem .8rem; border-radius:999px; border:1px solid var(--border);
      background: color-mix(in oklab, var(--card) 82%, transparent); box-shadow: var(--shadow);
      font-weight:800; letter-spacing:.2px; backdrop-filter: blur(4px);
    }
    .bio-photo .bio-credit::before{ content:"✦"; opacity:.85; }
    .bio-photo .bio-credit .name{ background: linear-gradient(90deg, var(--c-text), color-mix(in oklab, var(--c-accent) 60%, var(--c-text))); -webkit-background-clip:text; background-clip:text; color:transparent; white-space: nowrap; }
    .bio-photo .bio-credit .role{ padding-left:.6rem; border-left:1px solid var(--border); font-weight:700; opacity:.9; white-space: nowrap; }

    /* Responsive stacks */
    @media (max-width: 980px){
      #about .bio-grid { grid-template-columns: 1fr; gap: 1.5rem; }
      #about .cards { grid-template-columns: 1fr; }
      #about .cards .card.good { grid-column: auto; max-width:none; }
    }

    /* Testimonials: no CTA buttons row */
    #testimonials .cta-row { display:none !important; }
    /* === ABOUT: mobile polish (stack + tidy) === */
@media (max-width: 980px){
  /* stack text + portrait cleanly */
  #about .bio-grid{
    grid-template-columns: 1fr !important;
    gap: 1rem 0 !important;
  }

  /* kill sticky on phones and give breathing room */
  .bio-photo{
    position: static !important;
    padding-bottom: 0 !important;
    order: -1;                 /* show the image first on phones */
    margin: .25rem 0 .35rem;
  }
}

@media (max-width: 640px){
  /* image sizing that won’t overflow */
  .bio-photo img{
    width: 100%;
    height: auto;
    max-height: 72vh;
    object-fit: cover;
    border-radius: 18px;
  }

  /* move the credit chip below the image and make it wrap */
  .bio-photo .bio-credit{
    position: static !important;        /* no absolute positioning */
    display: inline-flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .45rem;
    margin: .5rem 0 0;
    padding: .45rem .65rem;
    border-radius: 14px;
    max-width: 100%;
    white-space: normal;                 /* allow wrapping */
    text-align: center;
  }
  .bio-photo .bio-credit .role{ display:none; }  /* shorter chip label on phones */

  /* keep the intro lead readable */
  #about blockquote.lead{
    margin-top: .6rem;
    max-width: 100%;
  }

  /* force the three info cards to a single column */
  #about .cards{
    grid-template-columns: 1fr !important;
    gap: .9rem !important;
    margin-top: .9rem !important;
  }
  #about .cards .card{
    padding: .95rem 1rem;
  }
}

/* ===== Footer (minimal + eye-catching) ===== */
.footer {
  position: relative;
  border-top: 1px solid var(--border);
  background: color-mix(in oklab, var(--c-bg) 90%, transparent);
  padding: 2.75rem 0 1.25rem;
  isolation: isolate; /* keep glow behind content */
}

/* PLR "breathing" aura behind footer */
.footer-breath{
  position:absolute; inset:-10% -10% auto -10%;
  height: 70%;
  z-index:-1; pointer-events:none;
  background:
    radial-gradient(40% 60% at 20% 60%,
      color-mix(in oklab, var(--c-accent) 18%, transparent) 0%, transparent 70%),
    radial-gradient(35% 45% at 80% 30%,
      color-mix(in oklab, var(--c-primary) 14%, transparent) 0%, transparent 70%);
  filter: blur(8px);
  opacity: .28;
  animation: breath 5s ease-in-out infinite; /* ~3:2 inhale/exhale feel */
}
@keyframes breath{
  0%   { transform: scale(0.96); opacity:.22; }
  60%  { transform: scale(1.04); opacity:.34; } /* inhale (60%) */
  100% { transform: scale(0.96); opacity:.22; } /* exhale (40%) */
}

.footer-grid{
  display:grid;
  grid-template-columns: repeat(4, minmax(220px,1fr));
  gap: clamp(1rem, 3vw, 2rem);
  align-items:start;
}

.footer-col h4{
  margin:0 0 .6rem;
  font-size:1rem; letter-spacing:.02em;
}

.footer-links{ list-style:none; margin:0; padding:0; }
.footer-links li{ margin:.35rem 0; }
.footer-links a{
  text-decoration:none;
  color: color-mix(in oklab, var(--c-text) 85%, transparent);
  font-size:.95rem; transition: color var(--t-fast) ease;
}
.footer-links a:hover{ color:var(--c-primary); text-decoration:underline; }

/* Socials — neat round buttons with subtle hover lift */
.footer-socials{ display:flex; gap:.6rem; margin:.8rem 0 1rem; }
.footer-socials .social{
  inline-size:38px; block-size:38px; display:grid; place-items:center;
  border-radius:50%; border:1px solid var(--border); background: var(--card);
  transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}
.footer-socials .social:hover{
  transform: translateY(-1px);
  border-color: color-mix(in oklab, var(--c-primary) 40%, var(--border));
  box-shadow: 0 10px 24px rgba(0,0,0,.16);
}
.footer-socials svg{ width:18px; height:18px; display:block; }

/* Mini subscribe + WA pill */
.mini-form{ display:flex; gap:.5rem; align-items:center; margin:.25rem 0 .6rem; }
.mini-form input[type="email"]{
  flex:1 1 auto; min-width:0; height:42px; border-radius:12px;
  border:1px solid var(--border); background: var(--card);
  padding:0 .8rem; color:var(--c-text);
}
.wa-pill{
  display:inline-flex; align-items:center; justify-content:center;
  height:38px; padding:0 .9rem; border-radius:999px;
  border:1px solid var(--border);
  background: color-mix(in oklab, var(--c-primary) 10%, transparent);
  font-weight:700; text-decoration:none;
}

/* Decorative divider with gentle gradient motion */
.footer-divider{
  height:2px; margin:1rem 0 0;
  background: linear-gradient(90deg, var(--c-accent), var(--c-primary), var(--c-accent));
  background-size: 200% 100%;
  animation: lineFlow 10s linear infinite;
  opacity:.55; border-radius:2px;
}
@keyframes lineFlow{
  0%{ background-position:0% 50% }
  100%{ background-position:200% 50% }
}

.footer-legal{
  display:flex; justify-content:space-between; gap:1rem;
  padding-top: .9rem;
}

/* CTA spacing tweak */
.footer-cta{ margin-top:.2rem; }

/* Responsive */
@media (max-width: 900px){
  .footer-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 560px){
  .footer-grid{ grid-template-columns: 1fr; }
  .footer-legal{ flex-direction:column; align-items:flex-start; }
}

/* ===== Motion system: reveal + hover/touch micro-interactions ===== */

/* base reveal state */
.reveal {
  opacity: 0;
  transform: translateY(18px) scale(.98);
  filter: saturate(.92) blur(.2px);
  will-change: opacity, transform, filter;
}
.show {
  opacity: 1;
  transform: none;
  filter: none;
  transition:
    opacity .6s cubic-bezier(.2,.7,.2,1),
    transform .6s cubic-bezier(.2,.7,.2,1),
    filter .6s ease;
}

/* directional variants via [data-anim] */
.reveal[data-anim="left"]  { transform: translateX(-18px); }
.reveal[data-anim="right"] { transform: translateX(18px);  }
.reveal[data-anim="up"]    { transform: translateY(24px);  }
.reveal[data-anim="down"]  { transform: translateY(-24px); }

/* stagger helper: children appear one by one */
.reveal[data-stagger] > * { opacity: 0; transform: translateY(12px); }
.show[data-stagger] > *   { opacity: 1; transform: none; }
.show[data-stagger] > *   { transition: opacity .5s ease, transform .5s ease; }
.show[data-stagger] > *:nth-child(1){ transition-delay:.05s }
.show[data-stagger] > *:nth-child(2){ transition-delay:.12s }
.show[data-stagger] > *:nth-child(3){ transition-delay:.18s }
.show[data-stagger] > *:nth-child(4){ transition-delay:.24s }
.show[data-stagger] > *:nth-child(5){ transition-delay:.30s }

/* link underline slide */
a:not(.btn):hover {
  text-decoration: none;
  background-image: linear-gradient(currentColor,currentColor);
  background-position: 0 100%;
  background-repeat: no-repeat;
  background-size: 100% 1px;
  transition: background-size var(--t-fast) ease;
}

/* card hover: lift + glow (subtle) */
.card {
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.card:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 26px rgba(0,0,0,.12);
}

/* button ripple (for mouse + touch) */
.btn {
  position: relative;
  overflow: hidden;
  isolation: isolate;
    font-weight: 600;
  border-radius: 8px;
}
.btn .ripple {
  position:absolute; inset:auto auto 0 0;
  width:10px; height:10px; border-radius:50%;
  transform: translate(-50%,-50%) scale(0);
  background: color-mix(in oklab, var(--c-primary) 30%, transparent);
  opacity:.35; pointer-events:none;
  animation: ripple .6s ease;
}
@keyframes ripple {
  to { transform: translate(-50%,-50%) scale(16); opacity: 0; }
}

/* magnetic hover target (used by JS) */
.magnet { transition: transform .12s ease; }

/* tilt-on-hover images/cards */
.tilt { transform-style: preserve-3d; transition: transform .12s ease; }
.tilt:hover { transform: perspective(700px) rotateX(var(--rx,0)) rotateY(var(--ry,0)); }

/* make sure theme transitions apply to new stuff too */
.reveal, .show, .card, .btn, .tilt { transition-property: transform, opacity, box-shadow, filter; }

/* prefer-reduced-motion: show immediately, disable extras */
@media (prefers-reduced-motion: reduce) {
  .reveal, .show, .card, .btn, .tilt { transition: none !important; }
  .reveal, .show { opacity: 1; transform: none; filter: none; }
}
/* --- Client Stories: natural rail controls --- */
.stories-viewport {
  overflow-x: auto;
  overflow-y: hidden;
  -ms-overflow-style: none;      /* IE/Edge */
  scrollbar-width: none;         /* Firefox */
  scroll-behavior: smooth;       /* smooth programmatic scrolls */
  cursor: grab;
  touch-action: pan-x;
}
.stories-viewport::-webkit-scrollbar { display: none; } /* Chrome/Safari */

.stories-viewport.grabbing,
.stories-viewport.grabbing * {
  user-select: none;                                  /* no text highlight while dragging */
  -webkit-user-select: none;
}
#storiesArrows { display: none !important; }

.stories-track{
  display: flex;
  align-items: stretch;
  gap: 16px;
  will-change: scroll-position;
  /* smooth manual scroll on touch/trackpads */
  scroll-behavior: smooth;
}
.stories-arrows{
  position: absolute;
  inset: auto 10px 10px auto;  /* bottom-right */
  display: flex;
  gap: 8px;
  z-index: 2;
}
.stories-arrows.is-hidden{ display: none; }
.stories-arrow{
  width: 44px; height: 44px;
  display: grid; place-items: center;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: var(--card);
  box-shadow: var(--shadow);
  font-weight: 800;
}

/* progress line (optional) */
.stories-progress{ height:4px; margin-top:.6rem; background: color-mix(in oklab, var(--card) 60%, transparent); border-radius:999px; overflow:hidden; }
.stories-progress > span{ display:block; height:100%; width:0; background: var(--progress-grad); }

/* Card width is set from JS so 2-up desktop, 1-up mobile */

/* ===== Free Resource – Section Header ===== */
.free-hero {
  padding: clamp(32px, 6vw, 72px) 0 clamp(20px, 3vw, 36px);
  border-bottom: 1px solid var(--border, color-mix(in oklab, currentColor 14%, transparent));
  background: transparent;
}

/* slightly narrower line length for nicer reading */
.container.narrow { max-width: 960px; }

/* “GUIDED MEDITATIONS” eyebrow */
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .75rem;
  margin: 0 0 .85rem;
  font-weight: 800;
  font-size: clamp(12px, 1.1vw, 13px);
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--c-muted, color-mix(in oklab, currentColor 55%, transparent));
  opacity: .95;
}
.eyebrow::before {
  content: "";
  width: 40px;
  height: 2px;
  border-radius: 2px;
  background: var(--c-primary, currentColor);
  opacity: .75;
}

/* Big title */
.page-title {
  margin: 0 0 .5rem;
  font-weight: 900;
  line-height: 1.12;
  letter-spacing: -.01em;
  font-size: clamp(28px, 4.2vw, 44px);
}

/* Subtitle / lead */
.lead {
  max-width: 65ch;
  margin: 0;
  color: var(--c-muted-strong, color-mix(in oklab, currentColor 78%, transparent));
  font-size: clamp(16px, 1.6vw, 20px);
  line-height: 1.55;
}

/* tidy anchor scrolling if you ever link to this section */
.free-hero { scroll-margin-top: 80px; }

/* subtle fade hairline under nav (nice on dark mode) – optional */
.free-hero {
  position: relative;
}
/* Add breathing space under the subtitle line in Free Resource header */
.free-hero .lead {
  margin-top: 1rem;      /* adds space below the H1 */
  margin-bottom: 2.5rem; /* extra space before the next row of cards */
}

.free-hero::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: -1px; height: 1px;
  background: linear-gradient(
    to right,
    transparent 0%,
    color-mix(in oklab, var(--c-primary, currentColor) 20%, transparent) 20%,
    color-mix(in oklab, var(--c-primary, currentColor) 20%, transparent) 80%,
    transparent 100%
  );
  opacity: .35;
}

/* small screens: keep breathing room without crowding */
@media (max-width: 560px) {
  .free-hero { padding-top: 28px; }
  .eyebrow::before { width: 32px; }
}
/* Guided Meditations header: add breathing room around the subtitle */
#meditations .lead {
  margin: 12px 0 28px !important;  /* top + bottom space */
  line-height: 1.6;                 /* a touch more ease in reading */
}

/* (optional) tiny tweak under the big title */
#meditations .page-title { margin-bottom: .6rem; }
/* === TEAM SECTION === */
.team-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 2rem;
  margin-top: 1.2rem;
}

.team-card {
  background: var(--bg-alt, color-mix(in oklab, var(--surface) 90%, transparent));
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 1.2rem;
  text-align: center;
  box-shadow: 0 4px 14px rgba(0,0,0,0.04);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.team-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 6px 18px rgba(0,0,0,0.08);
}

.team-card img {
  width: 120px;
  height: 120px;
  object-fit: cover;
  border-radius: 50%;
  margin-bottom: .6rem;
}

.team-card h3 {
  margin: 0;
  font-size: 1.1rem;
  color: var(--c-primary);
}

.team-card .role {
  font-size: .9rem;
  color: var(--c-muted);
  margin-bottom: .4rem;
}

.team-card .desc {
  font-size: .95rem;
  line-height: 1.5;
  color: var(--c-text);
}
