@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Baskerville:wght@400;700&display=swap');

:root {
  --deep-teal:#36695F; --water-mist:#A8CFC8; --soft-coral:#D47A6A; --dusty-rose:#9E4A5E;
  --cream:#E7DFD3; --stone:#F7F4EF; --ink:#172F2A; --soft:#36514B;
  --lotus-light:#F0D6DD; --sage-light:#DCEFEB; --gold:#B88748; --border:#D7CBC0; --white:#FFFFFF;
  /* Coral for TEXT (4.6:1 on white). Buttons and shapes keep --soft-coral. */
  --coral-text:#B85C4C;
  --teal:var(--deep-teal); --charcoal:var(--ink); /* aliases: legacy rules reference these */
  --header-h:84px; /* sticky site header, used to size the full-screen hero */
  --shadow:0 18px 60px rgba(23,47,42, .10); --small-shadow:0 10px 30px rgba(23,47,42, .08);
  --sans:'DM Sans', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --serif:'Libre Baskerville', Georgia, 'Times New Roman', serif;
}

/* ── Base ── */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; background:var(--white); color:var(--ink); font-family:var(--sans); font-size:16px; line-height:1.7; -webkit-font-smoothing:antialiased; }
/* Safety net: stray wide elements must never cause sideways page scroll.
   clip (not hidden) so the sticky header keeps working. */
html, body { overflow-x: clip; }
img { max-width:100%; display:block; }
a { color:var(--deep-teal); text-decoration:none; }
h1, h2, h3 { font-family:var(--serif); color:var(--deep-teal); font-weight:700; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); border:0; }
.skip-link { position:absolute; left:-999px; top:8px; background:var(--deep-teal); color:#fff; padding:10px 16px; border-radius:999px; z-index:2000; }
.skip-link:focus { left:14px; }

/* ── Ambient background ── */
.ambient-bg, .ambient-veil { position:fixed; inset:0; z-index:-1; pointer-events:none; }
.ambient-bg { background:linear-gradient(135deg, #fff 0%, #F7F4EF 45%, #DCEFEB 100%); }
.ambient-veil { background:radial-gradient(circle at 20% 20%, rgba(168,207,200, .18), transparent 55%), radial-gradient(circle at 80% 70%, rgba(212,122,106, .12), transparent 55%); }
@media (prefers-reduced-motion:no-preference){
  .ambient-bg { background-size:200% 200%; animation:drift 38s ease-in-out infinite; }
}
@keyframes drift { 0%,100%{background-position:0% 50%;} 50%{background-position:100% 50%;} }

/* ── Layout ── */
.container { max-width:1140px; margin:0 auto; padding:0 22px; position:relative; z-index:1; }
.container.narrow { max-width:840px; }
.center { text-align:center; }
.section { padding:84px 0; position:relative; }
.section-soft { background-color:#FDF0EB; }
.section-stone { background-color:#EEF6F5; }
@media (max-width:760px){ .section { padding:60px 0; } }
.about-page .section { padding:56px 0; }
.about-page .about-portrait-section { padding-top:0; padding-bottom:12px; }
@media (max-width:760px){ .about-page .section { padding:44px 0; } }

/* ── Section header ── */
.section-header { max-width:1080px; margin:0 auto 44px; }
.section-header.center, .section-header { text-align:center; }
.section-kicker { font-family:var(--sans); font-size:12px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--coral-text); margin-bottom:14px; }
.section-header h2 { font-size:clamp(26px, 3.1vw, 38px); line-height:1.18; margin:0 0 16px; letter-spacing:-.01em; }
.section-header p { font-size:17px; line-height:1.7; color:var(--soft); margin:0 auto; max-width:800px; }

/* ── Header / Nav ── */
.site-header { position:sticky; top:0; z-index:1000; background:rgba(255,255,255, .86); backdrop-filter:blur(10px); border-bottom:1px solid rgba(54,105,95, .1); }
.nav { display:flex; align-items:center; justify-content:space-between; max-width:1140px; margin:0 auto; padding:14px 22px; gap:18px; }
.brand-lockup { display:flex; align-items:center; gap:10px; flex:1 1 auto; min-width:0; }
.brand-lockup img { width:38px; height:38px; flex-shrink:0; }
.brand-name { font-family:var(--serif); font-weight:700; color:var(--deep-teal); font-size:18px; line-height:1.1; white-space:nowrap; letter-spacing:-0.01em; }
.brand-name .brand-accent { color:var(--dusty-rose); }
.nav-links { display:flex; align-items:center; gap:32px; }
.nav-links a { font-size:14px; font-weight:500; color:var(--soft); transition:color .2s; }
.nav-links a:hover, .nav-links a[aria-current="page"] { color:var(--deep-teal); }
.nav-start { background:rgba(168,207,200, .28); color:var(--deep-teal) !important; padding:8px 14px; border-radius:999px; font-weight:700; }
.nav-start:hover, .nav-start[aria-current="page"] { background:rgba(168,207,200, .42); color:var(--deep-teal); }
.nav-cta { background:var(--deep-teal); color:#fff !important; padding:9px 18px; border-radius:999px; font-weight:600; }
.nav-cta:hover { background:#2c554d; }
.language-switch { display:flex; gap:4px; align-items:center; margin-left:4px; }
.language-link { font-size:12px; font-weight:700; color:#9BA8A3; padding:3px 6px; border-radius:6px; }
.language-link[aria-current="page"] { color:var(--deep-teal); background:rgba(168,207,200, .3); }
.nav-toggle { display:none; background:none; border:1px solid var(--border); border-radius:999px; padding:8px 14px; font-family:var(--sans); font-size:13px; font-weight:600; color:var(--deep-teal); cursor:pointer; }
/* The nav collapses to the Menu button below 1024px: at tablet widths the
   five links plus the "This week's workshop" button crowded the wordmark and
   wrapped the button onto two lines. French, whose labels are longer still,
   collapses at 1180px (see .nav.lang-fr further down). */
@media (max-width:1024px){
  .nav-toggle { display:block; }
  .nav-links { display:none; position:absolute; top:100%; left:0; right:0; background:#fff; flex-direction:column; align-items:flex-start; padding:18px 22px; gap:14px; border-bottom:1px solid var(--border); box-shadow:var(--small-shadow); }
  .nav-links.open { display:flex; }
  .language-switch { margin-left:0; }
}
@media (max-width:560px){
  .nav { gap:12px; padding:12px 16px; }
  .brand-lockup { gap:8px; }
  .brand-lockup img { width:34px; height:34px; }
  .brand-name { font-size:15px; }
}

/* ── Buttons ── */
.button { display:inline-flex; align-items:center; justify-content:center; gap:8px; font-family:var(--sans); font-size:15px; font-weight:600; padding:14px 28px; border-radius:999px; border:2px solid transparent; cursor:pointer; transition:transform .15s, background .2s, color .2s, border-color .2s, box-shadow .2s; text-align:center; box-shadow:0 10px 24px rgba(54,105,95, .14); }
.button:hover { transform:translateY(-2px); box-shadow:0 14px 30px rgba(54,105,95, .18); }
.button-primary { background:var(--deep-teal); color:#fff !important; }
.button-primary:hover { background:#2c554d; }
.button-secondary { background:var(--deep-teal); color:#fff !important; border-color:var(--deep-teal); }
.button-secondary:hover { background:#2c554d; border-color:#2c554d; color:#fff !important; }

/* ── Hero (home) ── */
.hero { padding:64px 0 48px; }
.hero.hero-sanctuary { display:flex; align-items:center; }
.hero-inner { width:100%; max-width:1140px; margin:0 auto; padding:0 22px; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.95fr); gap:48px; align-items:center; }
.hero-inner > * { min-width:0; }
.hero-content { max-width:620px; }
.hero-logo { width:264px; margin:0 auto 18px; }
.hero h1 { font-size:clamp(32px, 4.8vw, 48px); line-height:1.15; margin:0 0 20px; color:var(--dusty-rose); letter-spacing:-.02em; }
.hero-copy { font-size:20px; line-height:1.6; color:var(--soft); margin:0 0 18px; }
.hero-subline { font-size:16px; line-height:1.7; color:var(--soft); margin:0 0 28px; }
.hero-actions, .hero-page-actions { display:flex; flex-wrap:wrap; gap:14px; }
.hero-trust { font-size:15px; line-height:1.7; color:var(--soft); margin:18px 0 0; max-width:560px; }
.hero-link { font-size:14.5px; color:var(--soft); margin:16px 0 0; }
.hero-link .text-link { font-size:14.5px; }
.hero-card { background:transparent; border:none; box-shadow:none; padding:20px; text-align:center; }
.brand-presence { display:flex; flex-direction:column; align-items:center; gap:12px; }
.brand-wordmark { font-family:var(--serif); font-weight:700; color:var(--deep-teal); font-size:36px; line-height:1.1; margin:0; }
.brand-wordmark .brand-accent { color:var(--dusty-rose); }
.brand-support { font-size:13px; letter-spacing:.04em; color:var(--coral-text); font-weight:600; margin:0; }
.brand-tagline { color:var(--deep-teal); letter-spacing:0; font-size:14px; font-weight:500; max-width:none; white-space:nowrap; }
@media (min-width:1200px){
  .hero-copy { font-size:18px; }
  .hero-logo { width:242px; }
  .brand-wordmark { font-size:33px; }
}
@media (max-width:860px){
  .hero.hero-sanctuary { min-height:auto; display:block; }
  .hero-inner { grid-template-columns:minmax(0,1fr); gap:32px; }
  .hero-content { order:1; }
  .hero-card { order:0; }
  .brand-tagline { white-space:normal; }
  .hero-logo { max-width:100%; }
}
.corporate-page .section-kicker { text-transform:uppercase; letter-spacing:.18em; }

/* ── Hero (interior pages) ── */
.hero-page { padding:64px 0 30px; text-align:center; }
.hero-page-inner { max-width:1140px; margin:0 auto; padding:0 22px; }
.hero-page h1 { font-size:clamp(28px, 3.4vw, 36px); line-height:1.18; margin:14px 0 18px; letter-spacing:-.015em; }
.hero-page-lead { font-size:18px; line-height:1.7; color:var(--soft); margin:0 auto; max-width:800px; }
.hero-page .section-kicker { color:var(--coral-text); }
.hero-page-actions { justify-content:center; margin-top:24px; }
/* ── Who section ── */
.who-stack { max-width:840px; margin:0 auto; }
.who-calm-card { background:transparent; border:none; box-shadow:none; padding:0; }
.who-calm { text-align:center; }
.who-lead { font-family:var(--sans); font-size:23px; line-height:1.5; color:var(--deep-teal); margin:0 0 28px; }
.who-lines { display:flex; flex-direction:column; gap:13px; max-width:640px; margin:0 auto 28px; }
.who-lines p { margin:0; font-size:16px; line-height:1.5; color:var(--soft); }
.who-divider { width:42px; height:2px; border:none; border-radius:99px; background:rgba(212,122,106, .5); margin:0 auto 26px; }
.who-close { font-family:var(--serif); font-size:18px; font-style:italic; line-height:1.6; color:#B8574A; margin:0 0 6px; }
.for-you-list { max-width:640px; margin:30px auto 0; text-align:left; background:rgba(255,255,255, .6); border-radius:16px; padding:24px 28px; border-left:4px solid var(--soft-coral); }
.for-you-intro { font-family:var(--serif); font-size:18px; color:var(--deep-teal); margin:0 0 14px; }
.for-you-list ul { margin:0; padding:0; list-style:none; }
.for-you-list li { position:relative; padding:8px 0 8px 26px; font-size:15.5px; line-height:1.55; color:var(--soft); }
.for-you-list li::before { content:"\2713"; position:absolute; left:2px; color:var(--soft-coral); font-weight:700; }
.story-card { margin-top:34px; text-align:center; background:rgba(255,255,255, .6); border-radius:18px; padding:30px 32px; border-top:4px solid var(--soft-coral); }
.story-card h3 { font-size:22px; margin:0 0 12px; }
.story-card p { font-size:15.5px; line-height:1.7; color:var(--soft); margin:0; }

/* ── Journey (from-to) ── */
.journey-labels { display:grid; grid-template-columns:1fr 28px 1fr; max-width:780px; margin:0 auto 6px; }
.jl-from { grid-column:1; text-align:right; font-family:var(--sans); font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--coral-text); }
.jl-to { grid-column:3; text-align:left; font-family:var(--sans); font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--deep-teal); }
.journey-rows { max-width:780px; margin:0 auto; }
.journey-row { display:grid; grid-template-columns:1fr 28px 1fr; align-items:center; column-gap:14px; padding:16px 0; border-bottom:1px solid rgba(54,105,95, .1); }
.journey-row:last-child { border-bottom:none; }
.j-from { color:var(--coral-text); font-size:15px; line-height:1.45; text-align:right; }
.j-arrow { color:var(--soft-coral); font-size:17px; text-align:center; }
.j-to { color:var(--deep-teal); font-size:15.5px; line-height:1.45; font-weight:600; text-align:left; }
.journey-close { text-align:center; margin:32px auto 0; max-width:720px; font-size:15.5px; color:var(--soft); }
@media (max-width:640px){
  .journey-labels { display:none; }
  .journey-row { grid-template-columns:1fr; row-gap:4px; text-align:center; }
  .j-from, .j-to { text-align:center; }
  .j-arrow { transform:rotate(90deg); margin:2px auto; }
}

/* ── Five dimensions ── */
.dimensions { display:flex; flex-wrap:nowrap; justify-content:center; gap:16px; max-width:1180px; margin:0 auto; }
.dimension { flex:0 0 auto; width:230px; height:230px; border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:30px 26px; box-sizing:border-box; color:#fff; box-shadow:var(--shadow); }
.dimension h3 { font-size:18px; margin:0 0 8px; color:#fff; }
.dimension p { font-size:12.5px; line-height:1.45; color:rgba(255,255,255, .94); margin:0; }
.dimension:nth-child(1){ background:var(--dusty-rose); }
.dimension:nth-child(2){ background:var(--deep-teal); }
.dimension:nth-child(3){ background:var(--soft-coral); }
.dimension:nth-child(4){ background:#5F9D94; }

.dimension:nth-child(5){ background:var(--gold); }
@media (max-width:1100px){ .dimensions { gap:12px; } .dimension { width:185px; height:185px; padding:20px 16px; } .dimension h3 { font-size:16px; } .dimension p { font-size:11px; line-height:1.4; } }
@media (max-width:760px){ .dimensions { flex-wrap:wrap; } .dimension { width:230px; height:230px; padding:30px; } .dimension h3 { font-size:18px; } .dimension p { font-size:13px; line-height:1.5; } }

/* ── What we believe ── */
#philosophy blockquote { font-family:var(--serif); font-size:24px; line-height:1.55; font-style:italic; color:var(--dusty-rose); margin:0 0 22px; padding-left:18px; border-left:4px solid var(--soft-coral); text-align:left; max-width:700px; }
#philosophy .container.center blockquote, .container.center blockquote { margin-left:auto; margin-right:auto; }
#philosophy p { font-size:16.5px; line-height:1.8; color:var(--soft); }
.method-line { margin-top:18px; font-size:15.5px; color:var(--soft); }
.text-link { color:var(--coral-text); font-weight:600; font-size:14.5px; }
.text-link:hover { color:var(--deep-teal); }

/* ── Choose your path (circles) ── */
.path-circles { display:flex; align-items:flex-start; justify-content:center; gap:8px; max-width:900px; margin:0 auto; }
.path-circle { flex:1; max-width:220px; text-decoration:none; text-align:center; display:flex; flex-direction:column; align-items:center; }
.path-orb { width:120px; height:120px; border-radius:50%; background:#fff; border:2px solid var(--water-mist); display:flex; align-items:center; justify-content:center; padding:14px; margin-bottom:16px; box-shadow:var(--small-shadow); transition:transform .2s, box-shadow .2s, border-color .2s; }
.path-circle:hover .path-orb { transform:translateY(-4px); box-shadow:0 14px 32px rgba(23,47,42, .13); border-color:var(--soft-coral); }
.path-step { font-size:13px; font-weight:700; color:var(--deep-teal); line-height:1.3; }
.path-circle.featured .path-orb { border-color:var(--dusty-rose); background:rgba(158,74,94, .06); }
.path-circle.featured .path-step { color:var(--dusty-rose); }
.path-circle h3 { font-size:18px; margin:0 0 6px; }
.path-circle p { font-size:13.5px; line-height:1.5; color:var(--soft); margin:0; }
.path-arrow { color:var(--soft-coral); font-size:24px; margin-top:46px; flex-shrink:0; }
@media (max-width:760px){
  .path-circles { flex-direction:column; align-items:center; gap:6px; }
  .path-circle { max-width:320px; }
  .path-arrow { transform:rotate(90deg); margin:4px 0; }
}

/* ── Offers (hybrid cards) ── */
.offers-hybrid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; max-width:1040px; margin:0 auto; }
.hybrid-card { background:#fff; border-radius:18px; padding:28px 26px; border:1px solid rgba(54,105,95, .1); border-top:4px solid var(--water-mist); display:flex; flex-direction:column; }
.hybrid-card h3 { font-size:19px; margin:0 0 8px; }
.hybrid-summary { font-size:14.5px; color:var(--soft); margin:0 0 10px; }
.hybrid-full { font-size:14px; line-height:1.6; color:var(--soft); margin:0; max-height:0; overflow:hidden; opacity:0; transition:max-height .3s ease, opacity .3s ease, margin .3s ease; }
.hybrid-full.open { max-height:400px; opacity:1; margin:0 0 14px; }
.hybrid-toggle { margin-top:auto; align-self:flex-start; background:none; border:none; color:var(--soft-coral); font-family:var(--sans); font-size:13.5px; font-weight:600; cursor:pointer; padding:0; display:inline-flex; align-items:center; gap:5px; }
.tog-chev { transition:transform .2s; }
.hybrid-toggle.open .tog-chev { transform:rotate(90deg); }
@media (max-width:860px){ .offers-hybrid { grid-template-columns:1fr; } }

/* ── Bio teaser ── */
.about-wrap { display:grid; grid-template-columns:300px 1fr; gap:40px; align-items:center; max-width:1000px; margin:0 auto; }
.portrait-card { text-align:center; }
.portrait-card img { width:260px; height:260px; object-fit:cover; border-radius:50%; border:5px solid #fff; box-shadow:var(--shadow); margin:0 auto; }
.portrait-caption .portrait-name { font-family:var(--serif); color:var(--deep-teal); font-size:20px; font-weight:700; margin:18px 0 4px; }
.portrait-caption p { font-size:13px; color:var(--coral-text); font-weight:600; letter-spacing:.04em; margin:0; }
#about-tima .portrait-caption p { color:var(--dusty-rose); }
.about-copy h2 { font-size:clamp(26px,4vw,36px); margin:0 0 16px; }
.about-copy p { font-size:16px; line-height:1.8; color:var(--soft); }
@media (max-width:760px){ .about-wrap { grid-template-columns:1fr; text-align:center; } }

/* ── Testimonials carousel ── */
.testi-carousel { display:flex; align-items:center; gap:12px; max-width:860px; margin:0 auto; }
.testi-viewport { overflow:hidden; flex:1; }
.testi-track { display:flex; transition:transform .45s ease; }
.testi-slide { flex:0 0 100%; box-sizing:border-box; padding:6px; margin:0; }
.testi-slide blockquote { font-family:var(--serif); font-size:19px; line-height:1.65; color:#2E4A44; margin:0 0 20px; font-style:italic; }
.testi-slide blockquote::before { content:"\201C"; color:var(--water-mist); font-size:34px; line-height:0; vertical-align:-10px; margin-right:3px; }
.testi-slide figcaption, .testi-card figcaption { display:flex; flex-direction:column; gap:3px; }
.testi-name { font-weight:700; color:var(--deep-teal); font-size:16px; }
.testi-type { font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--coral-text); font-weight:600; }
.testi-nav { flex-shrink:0; width:44px; height:44px; border-radius:50%; border:1px solid rgba(54,105,95, .2); background:#fff; color:var(--deep-teal); font-size:22px; cursor:pointer; transition:background .2s, color .2s; display:flex; align-items:center; justify-content:center; }
.testi-nav:hover { background:var(--deep-teal); color:#fff; }
.testi-dots { display:flex; gap:8px; justify-content:center; margin-top:22px; }
.testi-dots button { width:9px; height:9px; border-radius:50%; border:none; background:rgba(54,105,95, .22); cursor:pointer; padding:0; transition:background .2s, transform .2s; }
.testi-dots button.active { background:var(--soft-coral); transform:scale(1.25); }
.testi-card { background:#fff; border-radius:18px; padding:28px; border:1px solid rgba(54,105,95, .12); border-top:4px solid var(--soft-coral); }
.testi-card blockquote { font-family:var(--serif); font-size:16px; line-height:1.6; color:#2E4A44; margin:0 0 18px; font-style:italic; }
.testi-solo { max-width:620px; margin:0 auto; }
.testi-solo blockquote { font-size:17px; }
@media (min-width:761px){
  .testi-slide, .testi-card { text-align:center; }
  .testi-slide figcaption, .testi-card figcaption { align-items:center; }
}
.proof-grid { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:20px; max-width:980px; margin:0 auto; }
.testi-person { display:flex; align-items:center; gap:12px; }
.testi-avatar { width:44px; height:44px; border-radius:50%; background:rgba(168,207,200, .3); color:var(--deep-teal); display:inline-flex; align-items:center; justify-content:center; font-weight:700; font-size:15px; }
.testi-meta { display:flex; flex-direction:column; gap:3px; }
@media (max-width:760px){ .proof-grid { grid-template-columns:1fr; } }
@media (max-width:640px){ .testi-nav { width:38px; height:38px; font-size:19px; } .testi-slide blockquote { font-size:17px; } }

/* ── FAQ ── */
.faq-grid { max-width:840px; margin:0 auto; }
.faq-grid details { background:#fff; border:1px solid rgba(54,105,95, .12); border-radius:14px; margin-bottom:12px; padding:4px 22px; }
.faq-grid summary { font-family:var(--serif); font-size:17px; color:var(--deep-teal); cursor:pointer; padding:16px 0; list-style:none; }
.faq-grid summary::-webkit-details-marker { display:none; }
.faq-grid summary:hover { color:var(--soft-coral); }
.faq-grid p { font-size:15px; line-height:1.7; color:var(--soft); margin:0 0 16px; }


/* ── Partnerships / split CTA ── */
.split-cta { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; max-width:960px; margin:0 auto; }
.collab-card { background:#fff; border-radius:22px; padding:30px 26px; border:1px solid rgba(54,105,95, .14); border-top:4px solid var(--deep-teal); display:flex; flex-direction:column; }
.collab-card h3 { font-size:22px; margin:4px 0 10px; }
.collab-card p { font-size:14.5px; line-height:1.6; color:var(--soft); margin:0 0 18px; flex:1; }
.collab-card .button { margin-top:auto; align-self:flex-start; }
@media (max-width:860px){ .split-cta { grid-template-columns:1fr; max-width:480px; } }

/* ── Final CTA / contact ── */
.final-cta { text-align:center; }
.contact-card { background:#fff; border-radius:24px; padding:38px 34px; max-width:560px; margin:0 auto 22px; box-shadow:var(--shadow); border:1px solid rgba(54,105,95, .1); }
.sanctuary-block h3 { font-size:22px; margin:0 0 10px; }
.sanctuary-form, .enquire-form { display:flex; flex-direction:column; gap:12px; max-width:440px; margin:18px auto 0; }
.sanctuary-form input, .enquire-form input { padding:13px 16px; border-radius:12px; border:1px solid var(--border); font-family:var(--sans); font-size:15px; }
.contact-small { font-size:13px; color:var(--soft); margin-top:12px; }
.two-routes { display:grid; grid-template-columns:1fr 1fr; gap:16px; max-width:760px; margin:0 auto; }
.route-summary { font-size:14.5px; line-height:1.6; color:var(--soft); margin:8px 0 18px; flex:1; }
@media (max-width:680px){ .two-routes { grid-template-columns:1fr; } }

/* ── Coaching: method ── */
.method-movement { max-width:760px; margin:0 auto 40px; }
.method-head { display:flex; align-items:baseline; gap:14px; border-bottom:2px solid rgba(54,105,95, .15); padding-bottom:12px; margin-bottom:6px; }
.method-word { font-family:var(--serif); font-size:34px; color:var(--deep-teal); }
.method-head.shine .method-word { color:var(--dusty-rose); }
.method-tag { font-size:13px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--soft-coral); }
.method-intro { font-size:15.5px; line-height:1.6; color:var(--soft); font-style:italic; margin:0 0 20px; }
.method-steps { display:flex; flex-direction:column; gap:14px; }
/* Coaching method — the ten letters shown as the two phases they spell:
   Align (heal) then Shine (rise). Two panels side by side, halving the
   page's tallest section; stacked again on small screens. */
.method-phases { display:grid; grid-template-columns:1fr 1fr; gap:24px; max-width:1080px; margin:0 auto; align-items:start; }
.method-phase { background:var(--white); border:1px solid var(--border); border-radius:22px; box-shadow:var(--small-shadow); padding:26px 24px; }
.method-phase-head { text-align:center; margin-bottom:16px; }
.method-phase-sub { font-family:var(--serif); font-style:italic; color:var(--soft); font-size:15.5px; margin:2px 0 0; }
.method-phase-shine .method-word { color:var(--dusty-rose); }
.method-phase .method-step { padding:14px 16px; background:var(--stone); border-color:transparent; }
.method-phase .ms-letter { font-size:30px; min-width:34px; }
.method-phase .method-step p { font-size:14.5px; color:var(--soft); margin:0; }
.method-phase-shine .method-step h3 { color:var(--dusty-rose); }
@media (max-width:880px){ .method-phases { grid-template-columns:1fr; } }
.method-step { display:flex; gap:16px; align-items:flex-start; background:#fff; border-radius:14px; padding:18px 20px; border:1px solid rgba(54,105,95, .1); }
.ms-letter { font-family:var(--serif); font-size:44px; font-weight:700; color:var(--deep-teal); min-width:48px; text-align:center; line-height:1; }
.ms-letter.shine { color:var(--dusty-rose); }
.method-movement:has(.method-head.shine) .method-step h3 { color:var(--dusty-rose); }
.method-step h3 { font-size:17px; margin:0 0 4px; }
.method-step p { font-size:14.5px; line-height:1.6; color:var(--soft); margin:0; }

/* ── Coaching: tools + results ── */
.tools-list { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:26px; }
.tool-item { background:#fff; border-radius:16px; padding:22px 24px; border:1px solid rgba(54,105,95, .12); border-left:4px solid var(--water-mist); }
.tool-item h3 { font-size:19px; margin:0 0 8px; }
.tool-item p { font-size:14.5px; line-height:1.6; color:var(--soft); margin:0; }
.tool-circles { display:grid; grid-template-columns:repeat(auto-fit, minmax(170px,1fr)); gap:18px; margin-bottom:26px; align-items:start; }
.tool-circle-item { text-align:center; display:flex; flex-direction:column; align-items:center; }
.tool-orb { width:130px; height:130px; border-radius:50%; background:#fff; border:2px solid var(--water-mist); display:flex; align-items:center; justify-content:center; padding:14px; margin-bottom:14px; box-shadow:var(--small-shadow); transition:transform .2s, box-shadow .2s, border-color .2s; }
.tool-orb:hover { transform:translateY(-4px); box-shadow:0 14px 32px rgba(23,47,42, .13); border-color:var(--soft-coral); }
.tool-step { font-size:13px; font-weight:700; color:var(--deep-teal); line-height:1.3; text-transform:uppercase; letter-spacing:.04em; }
.tool-circle-item h3 { font-size:17px; margin:0 0 6px; }
.tool-circle-item p { font-size:13.5px; line-height:1.55; color:var(--soft); margin:0; }
.results-box { background:rgba(168,207,200, .18); border-radius:18px; padding:28px 30px; text-align:center; border:1px solid rgba(54,105,95, .12); }
.results-box h3 { font-size:21px; margin:0 0 12px; }
.results-box p { font-size:15.5px; line-height:1.7; color:var(--soft); margin:0; }
.outcomes-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; max-width:900px; margin:0 auto; }
.outcome { background:#fff; border-radius:14px; padding:22px; border:1px solid rgba(54,105,95, .1); }
@media (max-width:680px){ .tools-list, .tool-circles, .outcomes-grid { grid-template-columns:1fr; } .tool-circle-item { max-width:280px; margin:0 auto; } }

/* ── Coaching: price + steps ── */
.price-card { background:#fff; border-radius:22px; padding:34px; max-width:640px; margin:0 auto; box-shadow:var(--shadow); border-top:5px solid var(--dusty-rose); text-align:center; }
.price-invest { font-family:var(--serif); font-size:30px; color:var(--deep-teal); line-height:1.2; margin-bottom:4px; }
.price-note { font-size:14.5px; color:var(--soft); line-height:1.6; margin:0 0 20px; }
.price-list { list-style:none; padding:0; margin:0 0 22px; text-align:left; }
.price-list li { position:relative; padding:9px 0 9px 28px; font-size:15px; color:var(--soft); border-bottom:1px solid rgba(54,105,95, .08); }
.price-list li::before { content:"\2713"; position:absolute; left:2px; color:var(--soft-coral); font-weight:700; }
.price-small { font-size:13px; color:var(--soft); }
.steps { display:flex; flex-direction:column; gap:16px; max-width:680px; margin:0 auto; }
.step { display:flex; gap:18px; align-items:flex-start; }
.step-num { flex-shrink:0; width:42px; height:42px; border-radius:50%; background:var(--deep-teal); color:#fff; display:flex; align-items:center; justify-content:center; font-family:var(--serif); font-size:18px; }
.step h3 { font-size:18px; margin:0 0 4px; }
.step p { font-size:15px; line-height:1.6; color:var(--soft); margin:0; }

/* ── Coaching journey circles ── */
.journey-circles { display:flex; align-items:flex-start; justify-content:center; gap:8px; max-width:1100px; margin:40px auto 0; flex-wrap:nowrap; }
.journey-circle-item { flex:1; max-width:200px; text-align:center; display:flex; flex-direction:column; align-items:center; }
.journey-orb { width:130px; height:130px; border-radius:50%; background:#fff; border:2px solid var(--water-mist); display:flex; align-items:center; justify-content:center; padding:16px; margin-bottom:16px; box-shadow:var(--small-shadow); transition:transform .2s, box-shadow .2s, border-color .2s; }
.journey-orb:hover { transform:translateY(-4px); box-shadow:0 14px 32px rgba(23,47,42, .13); border-color:var(--soft-coral); }
.journey-step { font-size:13px; font-weight:700; color:var(--deep-teal); line-height:1.3; }
.journey-circle-featured .journey-orb { border-color:var(--dusty-rose); background:rgba(158,74,94, .06); }
.journey-circle-featured .journey-step { color:var(--dusty-rose); }
.journey-circle-featured h3 { color:var(--dusty-rose); }
.journey-circle-item h3 { font-size:17px; margin:0 0 6px; }
.journey-shine-title {
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:var(--dusty-rose);
  font-family:var(--serif);
  font-weight:700;
  letter-spacing:.01em;
}
.journey-shine-title::after {
  content:"\2600";
  font-size:15px;
  color:#d7894a;
  line-height:1;
  text-shadow:0 0 8px rgba(243,191,98, .45);
}
.journey-circle-item p { font-size:13px; line-height:1.5; color:var(--soft); margin:0; }
@media (max-width:760px){ .journey-circles { flex-direction:column; align-items:center; } .journey-circle-item { max-width:300px; } .path-arrow { transform:rotate(90deg); margin:4px 0; } }

/* ── Community: tiers ── */
.prog-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; max-width:1000px; margin:0 auto; }
.prog-card { background:#fff; border-radius:22px; padding:30px 26px; border:1px solid rgba(54,105,95, .14); border-top:4px solid var(--deep-teal); display:flex; flex-direction:column; }
.prog-card.featured { border-top-color:var(--dusty-rose); box-shadow:var(--shadow); }
.prog-tag { font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--soft-coral); }
.prog-card h3 { font-size:22px; margin:4px 0; }
.prog-price { font-family:var(--serif); font-size:30px; color:var(--deep-teal); margin-bottom:6px; }
.prog-price span { font-size:15px; color:var(--soft); }
.prog-blurb { font-size:14px; line-height:1.55; color:#6B7C77; font-style:italic; margin:8px 0 16px; }
.prog-card ul { list-style:none; padding:0; margin:0 0 22px; flex:1; }
.prog-card li { position:relative; padding:7px 0 7px 24px; font-size:14.5px; color:var(--soft); }
.prog-card li::before { content:"\271A"; position:absolute; left:2px; color:var(--soft-coral); }
.prog-card li strong { color:var(--deep-teal); }
.prog-value { font-size:13px; color:var(--soft-coral); font-weight:600; margin:14px 0 0; text-align:center; }
.tiers-note { text-align:center; margin:32px 0 0; font-size:15px; color:var(--soft); }
@media (max-width:860px){ .prog-grid { grid-template-columns:1fr; } }

/* ── Corporate: packages ── */
.package-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; max-width:1000px; margin:0 auto 22px; }
.package-card { background:#fff; border-radius:18px; padding:26px 24px; border:1px solid rgba(54,105,95, .12); border-top:4px solid var(--deep-teal); }
.package-card h3 { font-size:20px; margin:0 0 6px; line-height:1.25; }
.package-tag { font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--soft-coral); margin:0 0 12px; }
.package-card p:last-child { font-size:14.5px; line-height:1.6; color:var(--soft); margin:0; }
.packages-note { text-align:center; max-width:680px; margin:0 auto; font-size:15px; line-height:1.6; color:var(--soft); }
.proposal-card { background:#fff; border-radius:22px; padding:34px; max-width:560px; margin:0 auto; text-align:center; box-shadow:var(--shadow); border-top:5px solid var(--soft-coral); }
@media (max-width:760px){ .package-grid { grid-template-columns:1fr; } }

/* ── Values page ── */
/* The five values as a row of aligned boxes: a coloured top rule, a
   centred marker, the name, the one-line essence in serif italic, and a
   short note. Grid tracks are equal and the cards stretch, so every box
   in a row is the same height and the headings line up whatever the
   copy length. Five across on wide screens, then three, two and one. */
.values-cards {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 20px;
  align-items: stretch;
  margin: 10px auto 0;
}
.value-card {
  display: flex;
  flex-direction: column;
  background: var(--white);
  border: 1px solid var(--border);
  border-top: 4px solid var(--vc, var(--deep-teal));
  border-radius: 20px;
  box-shadow: var(--small-shadow);
  padding: 26px 22px;
  text-align: center;
  transition: transform .2s, box-shadow .2s;
}
.value-card:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(54, 105, 95, .12); }
/* The head is its own row so the names sit on one line across the set. */
.value-card-head { display: flex; flex-direction: column; align-items: center; gap: 12px; margin-bottom: 12px; }
.value-num {
  flex-shrink: 0; width: 46px; height: 46px; border-radius: 50%;
  background: var(--vc, var(--deep-teal)); color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--serif); font-size: 18px;
}
.value-card h3 { font-size: 21px; line-height: 1.25; margin: 0; color: var(--vc-ink, var(--deep-teal)); }
.value-essence { font-family: var(--serif); font-style: italic; font-size: 16.5px; line-height: 1.5; color: var(--vc-ink, var(--deep-teal)); margin: 0 0 10px; }
/* The note takes the leftover height, which keeps the card feet level. */
.value-body { font-size: 15px; line-height: 1.65; color: var(--soft); margin: 0; flex: 1; }
.vc-1 { --vc:var(--deep-teal); --vc-ink:var(--deep-teal); }
.vc-2 { --vc:var(--dusty-rose); --vc-ink:var(--dusty-rose); }
.vc-3 { --vc:var(--soft-coral); --vc-ink:#B8574A; }
.vc-4 { --vc:#5F9D94; --vc-ink:#3E7A70; }
.vc-5 { --vc:var(--gold); --vc-ink:#8F6B39; }
/* The essences run one to three lines, so reserve three lines for them
   while the boxes sit side by side. The notes then all start level and
   the row reads as one band rather than five ragged columns. */
@media (min-width:601px){ .value-essence { min-height:4.5em; display:flex; align-items:center; justify-content:center; } }
@media (max-width:1279px){ .values-cards { grid-template-columns:repeat(3, minmax(0,1fr)); max-width:1000px; } }
@media (max-width:900px){ .values-cards { grid-template-columns:repeat(2, minmax(0,1fr)); max-width:700px; } }
@media (max-width:600px){
  .values-cards { grid-template-columns:1fr; max-width:420px; gap:16px; }
  .value-card { padding:24px 20px; }
  .value-card h3 { font-size:20px; }
}

/* ── About page portrait ── */
.about-portrait-section { padding-top:0; padding-bottom:20px; text-align:center; }
.about-portrait-kicker { margin:0 0 12px; font-family:var(--sans); font-size:13px; font-weight:700; letter-spacing:.08em; text-transform:none; color:var(--coral-text); }
.about-portrait { width:240px; height:240px; object-fit:cover; border-radius:50%; border:5px solid #fff; box-shadow:var(--shadow); margin:0 auto; }
@media (max-width:640px){ .about-portrait-kicker { font-size:13px; margin-bottom:10px; } .about-portrait { width:190px; height:190px; } }

/* ── Events page ── */
.events-list { max-width:760px; margin:0 auto; }
.event-card { background:#fff; border-radius:22px; padding:34px; border:1px solid rgba(54,105,95, .14); border-top:5px solid var(--soft-coral); margin-bottom:22px; }
.event-meta { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-bottom:14px; }
.event-type { font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#fff; background:var(--soft-coral); padding:5px 12px; border-radius:999px; }
.event-when { font-size:13px; font-weight:600; color:var(--deep-teal); }
.event-format { font-size:13px; font-weight:600; color:#6B7C77; }
.event-card h2 { font-size:26px; margin:0 0 8px; line-height:1.2; }
.event-tagline { font-size:16px; font-style:italic; color:#B8574A; margin:0 0 16px; }
.event-card > p { font-size:15px; line-height:1.7; color:var(--soft); }
.event-learn { background:rgba(168,207,200, .16); border-radius:14px; padding:20px 24px; margin:18px 0; }
.event-learn-label { font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--deep-teal); margin:0 0 12px; }
.event-learn ul { margin:0; padding:0; list-style:none; }
.event-learn li { position:relative; padding:7px 0 7px 26px; font-size:14.5px; line-height:1.5; color:var(--soft); }
.event-learn li::before { content:"\2713"; position:absolute; left:2px; color:var(--soft-coral); font-weight:700; }
.event-for { font-size:14.5px; color:var(--soft); margin:16px 0 20px; }
.events-more { max-width:700px; margin:36px auto 0; text-align:center; padding:28px; background:rgba(255,255,255, .5); border-radius:18px; }
.events-more-lead { font-family:var(--serif); font-size:21px; color:var(--deep-teal); margin:0 0 10px; }
.events-more p { font-size:15px; line-height:1.6; color:var(--soft); margin:0 0 16px; }
.events-more-tags { display:flex; flex-wrap:wrap; gap:8px; justify-content:center; }
.events-more-tags span { font-size:12px; font-weight:600; color:var(--deep-teal); background:rgba(168,207,200, .3); padding:6px 14px; border-radius:999px; }
.events-more-note { font-size:13.5px; color:#6B7C77; font-style:italic; margin:14px 0 0; line-height:1.6; }
.enquire-msg, .sanctuary-msg { font-weight:600; color:var(--deep-teal); }

/* ── Footer ── */
.site-footer { background:var(--deep-teal); color:rgba(255,255,255, .85); padding:28px 0 30px;}
.site-footer, .site-footer * { font-family:var(--sans); }
.footer-inner { max-width:1140px; margin:0 auto; padding:0 22px; display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:28px; }
@media (max-width:768px) { .footer-inner { flex-direction:column; gap:20px; padding:0 16px; } }
@media (max-width:480px) { .footer-inner { gap:16px; } .footer-nav { display:grid; grid-template-columns:1fr 1fr; gap:12px; flex:1 1 100%; } }
.footer-copy { flex:0 0 auto; display:flex; flex-direction:column; gap:8px; }
.footer-copy p { margin:0; font-size:14px; }
.footer-copy p:first-child { font-weight:500; color:#fff; }
.footer-back-to-top { color:rgba(255,255,255, .8); font-size:13px; text-decoration:none; transition:opacity .2s; display:inline-block; }
.footer-back-to-top:hover { opacity:1; }
.footer-nav { display:flex; gap:20px; flex:1 1 auto; }
.footer-nav a { color:#fff; font-size:14px; text-decoration:none; transition:opacity .2s; }
.footer-nav a:hover { opacity:.8; }
.footer-nav .footer-contact-trigger { background:none; border:none; cursor:pointer; font-family:var(--sans); font-weight:400; padding:0; color:#fff; font-size:14px; }

.social-icons { display:flex; gap:14px; flex:0 0 auto; }
.social-icon { color:#fff; width:22px; height:22px; opacity:.85; transition:opacity .2s; }
.social-icon:hover { opacity:1; }
.footer-legal { width:100%; margin:12px 0 0; padding:20px 0 0; border-top:1px solid rgba(255,255,255, .2); font-size:12.5px; color:rgba(255,255,255, .7); }
.footer-legal-links { display:flex; flex-wrap:wrap; gap:18px; margin:0; }
.footer-legal-links a { color:rgba(255,255,255, .8); font-size:12.5px; }
.footer-legal-note { font-size:12px; color:rgba(255,255,255, .6); margin:0 0 12px; line-height:1.6; }
.footer-copy-link { color:#fff; }

/* ── Contact modal ── */
.modal-overlay { display:none; position:fixed; inset:0; z-index:9999; background:rgba(23,47,42, .55); backdrop-filter:blur(4px); align-items:flex-start; justify-content:center; padding:16px; overflow-y:auto; }
.modal-overlay.open { display:flex; }
.modal-box { background:#fff; border-radius:24px; padding:40px 28px 32px; width:100%; max-width:500px; margin:auto; position:relative; box-shadow:0 28px 64px rgba(23,47,42, .22); }
.modal-close { position:absolute; top:14px; right:16px; background:none; border:none; font-size:26px; color:var(--soft); cursor:pointer; line-height:1; }
.modal-kicker { font-size:12px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--coral-text); }
.modal-box h2 { margin:6px 0 18px; font-family:var(--serif); color:var(--deep-teal); font-size:30px; line-height:1.2; }
.modal-row { display:flex; gap:12px; }
.modal-field { flex:1; min-width:0; display:flex; flex-direction:column; gap:6px; margin-bottom:14px; }
.modal-field label { font-size:13px; font-weight:600; color:var(--deep-teal); }
.modal-field input, .modal-field textarea { width:100%; box-sizing:border-box; padding:12px 14px; border-radius:10px; border:1px solid var(--border); font-family:var(--sans); font-size:15px; background:#fff; color:var(--charcoal); }
.modal-field textarea { min-height:120px; resize:vertical; }
.modal-field input:focus, .modal-field textarea:focus { outline:none; border-color:var(--teal); box-shadow:0 0 0 3px rgba(54,105,95, .15); }
.modal-submit { width:100%; display:inline-flex; align-items:center; justify-content:center; padding:13px 18px; border-radius:999px; border:2px solid var(--deep-teal); background:var(--deep-teal); color:#fff; font-family:var(--sans); font-weight:600; font-size:15px; cursor:pointer; transition:transform .15s, background .2s, border-color .2s; }
.modal-submit:hover { transform:translateY(-2px); background:#2c554d; border-color:#2c554d; }
.modal-submit:disabled { opacity:.65; cursor:not-allowed; transform:none; }
.modal-success { display:none; text-align:center; color:var(--deep-teal); font-weight:600; padding:20px; }
@media (max-width:560px) {
  .modal-box { padding:34px 18px 24px; border-radius:18px; }
  .modal-box h2 { font-size:26px; }
  .modal-row { flex-direction:column; gap:0; }
}

/* ── Misc / decorative ── */
.divider-flower { display:flex; align-items:center; justify-content:center; gap:10px; width:100%; max-width:200px; }
.divider-flower span { height:1px; flex:1; background:var(--gold); opacity:.5; }
.mini-flower { width:10px; height:10px; border-radius:50%; background:var(--soft-coral); display:inline-block; }
.section-flow, .ganga-bg-section { position:relative; }
.ganga-bg-section { background-image:url('/img/flow-watercolour.png'); background-repeat:no-repeat; background-position:center bottom; background-size:cover; }
.palette-strip { }
.success-icon { color:var(--soft-coral); font-size:20px; }

/* ── Small additions ── */
.lang-code { font-size:12px; font-weight:700; }
.offers-section { }
.testi-prev, .testi-next { }
.tog-label { }

/* ── Closing 3-card grid ── */
.closing-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; max-width:1000px; margin:0 auto; align-items:start; }
.closing-grid .prog-card { display:flex; flex-direction:column; }
.closing-grid .route-summary { flex:1; }
@media (max-width:860px){ .closing-grid { grid-template-columns:1fr; max-width:480px; } }

/* ── Who section alignment ── */
.who-calm { text-align:center; }
.who-eyebrow, .who-lead, .who-close { text-align:center; }
.who-lines { text-align:center; }
.who-lines p { text-align:center; }
.for-you-list { text-align:left; }

@media (max-width:560px){ .brand-wordmark { font-size:26px; } .hero-logo { width:200px; } }

/* ── New sections: Credibility, Start Here, Rhythm, etc ── */

/* Credibility Strip */
.section-credibility { background:var(--cream); border-top:1px solid var(--water-mist); border-bottom:1px solid var(--water-mist); }
.credibility-strip { text-align:center; padding:20px 0; }
.credibility-text { font-size:14px; color:var(--teal); font-weight:400; line-height:1.6; margin:0; letter-spacing:0.3px; }
@media (max-width:768px){ .credibility-text { font-size:13px; padding:0 20px; letter-spacing:0.2px; } }

/* Start Here Section */
.start-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.start-card { background:white; padding:28px 24px; border-radius:12px; text-align:center; box-shadow:0 2px 8px rgba(54,105,95,0.06); transition:all 0.3s ease; border:1px solid rgba(168,207,200,0.2); }
.start-card:hover { box-shadow:0 6px 20px rgba(54,105,95,0.1); transform:translateY(-2px); border-color:var(--water-mist); }
.start-card h3 { font-size:20px; margin:0 0 12px 0; color:var(--teal); font-family:'Libre Baskerville', serif; font-weight:700; letter-spacing:-0.3px; }
.start-card p { font-size:15px; line-height:1.6; color:var(--charcoal); margin:0 0 20px 0; }
.start-card.featured { background:rgba(168,207,200,0.4); box-shadow:0 4px 16px rgba(54,105,95,0.1); border-color:var(--teal); }
.start-card .button { margin-top:4px; }
@media (max-width:768px){ .start-grid { grid-template-columns:1fr; gap:16px; } .start-card { padding:24px 20px; } .start-card h3 { font-size:18px; margin:0 0 10px 0; } .start-card p { font-size:14px; } }

/* Monthly Rhythm Section */
.section-rhythm { background:var(--cream); padding:40px 0; }
.rhythm-list { display:grid; grid-template-columns:repeat(5,1fr); gap:24px; margin:35px 0; }
.rhythm-item { text-align:center; padding:16px 12px; }
.rhythm-count { display:block; font-size:36px; font-weight:300; color:var(--soft-coral); margin-bottom:8px; font-family:'Libre Baskerville', serif; letter-spacing:-1px; }
.rhythm-item p { font-size:14px; color:var(--teal); font-weight:500; margin:0; line-height:1.5; letter-spacing:0.2px; }
.rhythm-actions { display:flex; gap:16px; justify-content:center; margin-top:35px; flex-wrap:wrap; }
@media (max-width:1024px){ .rhythm-list { grid-template-columns:repeat(3,1fr); gap:20px; } }
@media (max-width:768px){ .section-rhythm { padding:35px 0; } .rhythm-list { grid-template-columns:repeat(2,1fr); gap:16px; margin:28px 0; } .rhythm-count { font-size:32px; } .rhythm-item p { font-size:13px; } .rhythm-actions { flex-direction:column; align-items:center; gap:12px; } .rhythm-actions .button { width:100%; max-width:300px; } }

/* Sanctuary Benefits */
.sanctuary-benefits { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:28px; }
.benefit { background:white; padding:24px; border-radius:10px; border-left:4px solid var(--soft-coral); box-shadow:0 1px 4px rgba(54,105,95,0.04); }
.benefit h3 { font-size:17px; margin:0 0 10px 0; color:var(--teal); font-family:'Libre Baskerville', serif; font-weight:700; }
.benefit p { font-size:14px; color:var(--charcoal); margin:0; line-height:1.6; }
@media (max-width:768px){ .sanctuary-benefits { grid-template-columns:1fr; gap:16px; } .benefit { padding:20px; } }

/* Work With Me Comparison */
.work-comparison { display:grid; grid-template-columns:repeat(auto-fit, minmax(280px,1fr)); gap:24px; margin-top:35px; }
.work-offer { background:white; border:1px solid rgba(168,207,200,0.3); border-radius:12px; padding:28px 24px; display:flex; flex-direction:column; transition:all 0.3s ease; box-shadow:0 1px 4px rgba(54,105,95,0.04); }
.work-offer:hover { box-shadow:0 8px 24px rgba(54,105,95,0.1); border-color:var(--teal); }
.work-offer.featured { background:rgba(168,207,200,0.35); border-color:var(--teal); }
.work-offer.premium { background:white; border:2px solid var(--teal); }
.work-offer h3 { font-size:20px; margin:0 0 6px 0; color:var(--teal); font-family:'Libre Baskerville', serif; font-weight:700; }
.work-best-for { font-size:13px; color:var(--charcoal); margin:0 0 8px 0; font-weight:500; opacity:0.85; }
.work-price { font-size:24px; font-weight:700; color:var(--dusty-rose); margin:8px 0 18px 0; font-family:'Libre Baskerville', serif; }
.work-features { list-style:none; padding:0; margin:0 0 20px 0; flex:1; }
.work-features li { font-size:14px; color:var(--charcoal); padding:10px 0; line-height:1.5; border-bottom:1px solid rgba(168,207,200,0.15); }
.work-features li:last-child { border-bottom:none; }
.work-offer .button { align-self:flex-start; margin-top:4px; }
@media (max-width:768px){ .work-comparison { gap:18px; } .work-offer { padding:24px 20px; } }

.home-ladder-note { text-align:center; margin:26px auto 0; max-width:none; font-size:15px; color:var(--soft); white-space:nowrap; }
@media (max-width:640px){ .home-ladder-note { max-width:320px; white-space:normal; } }

.quiz-card { background:#fff; border:1px solid rgba(54,105,95, .14); border-radius:16px; padding:24px; box-shadow:0 4px 16px rgba(54,105,95, .08); display:flex; flex-direction:column; gap:14px; }
.quiz-card fieldset { border:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.quiz-card legend { font-family:var(--serif); color:var(--deep-teal); font-size:18px; margin-bottom:4px; }
.quiz-card label { font-size:14.5px; color:var(--soft); display:flex; align-items:center; gap:8px; }
.quiz-card input[type="radio"] { accent-color:var(--deep-teal); }
.quiz-result { margin-top:16px; background:rgba(168,207,200, .16); border:1px solid rgba(54,105,95, .14); border-radius:14px; padding:18px; color:var(--deep-teal); }
.quiz-result h3 { margin:0 0 8px; font-size:22px; }
.quiz-result p { margin:0 0 8px; font-size:15px; color:var(--soft); }

.featured-offer { max-width:860px; margin:0 auto 18px; }
.secondary-offers { display:grid; grid-template-columns:1fr 1fr; gap:16px; max-width:860px; margin:0 auto; }
.free-entry-strip { margin:18px auto 0; max-width:860px; background:#fff; border:1px solid rgba(54,105,95, .14); border-radius:14px; padding:20px; display:grid; grid-template-columns:1.15fr .85fr; gap:14px; align-items:center; }
.free-entry-strip h3 { margin:0 0 8px; font-size:22px; }
.free-entry-strip p { margin:0; color:var(--soft); font-size:14.5px; }
.free-entry-strip .sanctuary-form { margin-top:0; }
.free-entry-strip .sanctuary-msg { grid-column:1 / -1; margin:0; }

@media (max-width:860px){
  .secondary-offers { grid-template-columns:1fr; }
  .free-entry-strip { grid-template-columns:1fr; }
}

/* AI Offers */
.ai-offers { display:grid; grid-template-columns:repeat(2,1fr); gap:28px; margin-top:35px; margin-bottom:30px; }
.ai-offer { background:white; border-radius:12px; padding:32px 28px; border:1px solid rgba(168,207,200,0.2); transition:all 0.3s ease; box-shadow:0 1px 4px rgba(54,105,95,0.04); }
.ai-offer:hover { box-shadow:0 8px 24px rgba(54,105,95,0.1); border-color:var(--water-mist); }
.ai-offer.featured { background:rgba(168,207,200,0.35); border-color:var(--teal); }
.ai-offer h3 { font-size:22px; margin:0 0 6px 0; color:var(--teal); font-family:'Libre Baskerville', serif; font-weight:700; letter-spacing:-0.3px; }
.offer-intro { font-size:12px; font-weight:600; color:var(--soft-coral); margin:0 0 12px 0; text-transform:uppercase; letter-spacing:0.7px; }
.ai-offer p { font-size:15px; line-height:1.6; color:var(--charcoal); margin:0 0 18px 0; }
@media (max-width:768px){ .ai-offers { grid-template-columns:1fr; gap:20px; } .ai-offer { padding:28px 24px; } }

/* AI Learning List */
.ai-learn-list { list-style:none; padding:0; margin:0; }
.ai-learn-list li { font-size:15px; color:var(--charcoal); padding:12px 0 12px 28px; position:relative; line-height:1.6; border-bottom:1px solid rgba(168,207,200,0.12); }
.ai-learn-list li:first-child { border-top:1px solid rgba(168,207,200,0.12); }
.ai-learn-list li:before { content:'✓'; position:absolute; left:0; color:var(--soft-coral); font-weight:700; }

/* Coaching Lists */
.coaching-fit-list, .coaching-not-fit-list { list-style:none; padding:0; margin:0 0 20px 0; }
.coaching-fit-list li, .coaching-not-fit-list li { font-size:15px; color:var(--charcoal); padding:12px 0 12px 28px; position:relative; line-height:1.6; border-bottom:1px solid rgba(168,207,200,0.12); }
.coaching-fit-list li:first-child, .coaching-not-fit-list li:first-child { border-top:1px solid rgba(168,207,200,0.12); }
.coaching-fit-list li:before { content:'✓'; position:absolute; left:0; color:var(--soft-coral); font-weight:700; }
.coaching-not-fit-list li:before { content:'–'; position:absolute; left:2px; color:var(--dusty-rose); font-weight:700; }

.coaching-note { background:rgba(168,207,200,0.12); padding:20px; border-left:4px solid var(--soft-coral); border-radius:6px; margin:16px 0; font-size:15px; line-height:1.6; }

.capacity-note { background:rgba(168,207,200,0.1); padding:24px; border-radius:8px; border-left:4px solid var(--teal); }
.capacity-note p { font-size:15px; line-height:1.6; color:var(--charcoal); margin:0 0 12px 0; }
.capacity-note p:last-child { margin-bottom:0; }

.ai-cta { text-align:center; margin-top:28px; }

.sanctuary-form-wrap { max-width:400px; margin:0 auto; }
.sanctuary-form { display:flex; gap:10px; margin-top:20px; }
.sanctuary-form input { flex:1; padding:12px 16px; border:1px solid var(--water-mist); border-radius:8px; font-size:14px; font-family:inherit; background:white; transition:all 0.3s ease; }
.sanctuary-form input:focus { outline:none; border-color:var(--teal); box-shadow:0 0 0 3px rgba(168,207,200,0.15); }
.sanctuary-form button { white-space:nowrap; }
@media (max-width:560px){ .sanctuary-form { flex-direction:column; gap:10px; } .sanctuary-form input { flex:none; } }

/* Closing Grid Sanctuary Form (homepage final CTA) */
.closing-grid .sanctuary-form { display:flex; gap:10px; margin-top:18px; max-width:100%; flex-direction:row; align-items:stretch; }
.closing-grid .sanctuary-form input { flex:1; padding:12px 14px; border:1px solid var(--water-mist); border-radius:8px; font-size:14px; background:white; }
.closing-grid .sanctuary-form button { flex-shrink:0; }
@media (max-width:560px){ .closing-grid .sanctuary-form { flex-direction:column; gap:10px; } .closing-grid .sanctuary-form input { width:100%; } }

/* Events Page */
.event-categories { display:grid; grid-template-columns:repeat(2,1fr); gap:28px; margin:35px 0; }
.event-category { background:white; border:1px solid rgba(168,207,200,0.3); border-radius:12px; padding:32px 28px; text-align:center; transition:all 0.3s ease; box-shadow:0 1px 4px rgba(54,105,95,0.04); }
.event-category:hover { box-shadow:0 8px 24px rgba(54,105,95,0.1); border-color:var(--teal); }
.event-category.featured { background:rgba(168,207,200,0.35); border-color:var(--teal); }
.event-category h3 { font-size:22px; margin:0 0 10px 0; color:var(--teal); font-family:'Libre Baskerville', serif; font-weight:700; letter-spacing:-0.3px; }
.category-desc { font-size:15px; color:var(--charcoal); margin:0 0 18px 0; line-height:1.6; }
.category-price { font-size:24px; font-weight:700; color:var(--soft-coral); margin:18px 0 24px 0; font-family:'Libre Baskerville', serif; }
@media (max-width:768px){ .event-categories { grid-template-columns:1fr; gap:20px; } .event-category { padding:28px 24px; } .category-price { font-size:20px; margin:14px 0 18px 0; } }

.event-price { background:var(--soft-coral); color:white; padding:4px 10px; border-radius:4px; font-size:12px; font-weight:600; }

/* ── Women's Circles Page ── */
.circles-intro { max-width:760px; margin:0 auto; font-size:16px; line-height:1.7; color:var(--charcoal); }
.circles-intro p { margin:0 0 16px 0; }
.circles-intro p:last-child { margin-bottom:0; }

.circle-structure { display:grid; grid-template-columns:repeat(auto-fit, minmax(240px,1fr)); gap:24px; margin-top:35px; }
.circle-step { background:white; padding:24px; border-radius:10px; border-left:4px solid var(--soft-coral); box-shadow:0 1px 4px rgba(54,105,95,0.04); }
.step-time { font-size:13px; font-weight:600; color:var(--soft-coral); text-transform:uppercase; letter-spacing:0.6px; margin-bottom:8px; }
.circle-step h3 { font-size:17px; margin:0 0 8px 0; color:var(--teal); font-family:'Libre Baskerville', serif; font-weight:700; }
.circle-step p { font-size:14px; color:var(--charcoal); margin:0; line-height:1.6; }
@media (max-width:768px){ .circle-structure { grid-template-columns:repeat(2,1fr); gap:16px; } }
@media (max-width:560px){ .circle-structure { grid-template-columns:1fr; } }

.circles-for-you { max-width:780px; margin:0 auto; }
.circles-for-you ul { list-style:none; padding:0; margin:0; }
.circles-for-you li { font-size:16px; color:var(--charcoal); padding:14px 0 14px 32px; position:relative; line-height:1.7; border-bottom:1px solid rgba(168,207,200,0.15); }
.circles-for-you li:first-child { border-top:1px solid rgba(168,207,200,0.15); }
.circles-for-you li:before { content:'✓'; position:absolute; left:0; color:var(--soft-coral); font-weight:700; }

.upcoming-circles { display:grid; grid-template-columns:repeat(auto-fit, minmax(320px,1fr)); gap:28px; margin-top:35px; }
.circle-card { background:white; border:1px solid rgba(168,207,200,0.3); border-radius:12px; padding:28px 24px; display:flex; flex-direction:column; transition:all 0.3s ease; box-shadow:0 1px 4px rgba(54,105,95,0.04); }
.circle-card:hover { box-shadow:0 8px 24px rgba(54,105,95,0.1); border-color:var(--teal); }
.circle-meta { font-size:13px; font-weight:600; color:var(--soft-coral); margin-bottom:12px; display:flex; gap:12px; flex-wrap:wrap; text-transform:uppercase; letter-spacing:0.6px; }
.circle-topic { display:block; }
.circle-format, .circle-price { display:block; }
.circle-card h3 { font-size:20px; margin:0 0 10px 0; color:var(--teal); font-family:'Libre Baskerville', serif; font-weight:700; }
.circle-tagline { font-size:14px; color:var(--soft-coral); font-weight:600; margin:0 0 12px 0; }
.circle-card > p { font-size:15px; line-height:1.6; color:var(--charcoal); margin:0 0 16px 0; }
.circle-learn { background:rgba(168,207,200,0.1); padding:16px; border-radius:8px; margin:16px 0; }
.circle-learn-label { font-size:13px; font-weight:600; color:var(--teal); margin:0 0 10px 0; display:block; text-transform:uppercase; letter-spacing:0.5px; }
.circle-learn ul { list-style:none; padding:0; margin:0; }
.circle-learn li { font-size:14px; color:var(--charcoal); padding:6px 0 6px 24px; position:relative; line-height:1.5; }
.circle-learn li:before { content:'✓'; position:absolute; left:0; color:var(--soft-coral); font-weight:700; }
.circle-card .button { align-self:flex-start; margin-top:auto; }
@media (max-width:768px){ .upcoming-circles { grid-template-columns:1fr; gap:20px; } }

.safety-info { display:grid; grid-template-columns:repeat(auto-fit, minmax(280px,1fr)); gap:28px; margin-top:35px; max-width:1000px; margin-left:auto; margin-right:auto; }
.safety-item { background:white; padding:28px 24px; border-radius:10px; border-left:4px solid var(--water-mist); box-shadow:0 1px 4px rgba(54,105,95,0.04); }
.safety-item h3 { font-size:18px; margin:0 0 10px 0; color:var(--teal); font-family:'Libre Baskerville', serif; font-weight:700; }
.safety-item p { font-size:14px; color:var(--charcoal); margin:0; line-height:1.6; }
@media (max-width:768px){ .safety-info { grid-template-columns:1fr; gap:20px; } }

.booking-note { background:rgba(168,207,200,0.15); padding:32px 28px; border-radius:10px; text-align:center; border-left:4px solid var(--soft-coral); }
.booking-note p { font-size:16px; line-height:1.7; color:var(--charcoal); margin:0 0 16px 0; }
.booking-note p:last-child { margin-bottom:0; }
.booking-note .button { margin-top:8px; }

.next-steps { display:grid; grid-template-columns:repeat(auto-fit, minmax(280px,1fr)); gap:28px; margin-top:35px; max-width:800px; margin-left:auto; margin-right:auto; }
.next-step { background:white; padding:28px 24px; border-radius:10px; border:1px solid rgba(168,207,200,0.3); text-align:center; box-shadow:0 1px 4px rgba(54,105,95,0.04); }
.next-step h3 { font-size:20px; margin:0 0 12px 0; color:var(--teal); font-family:'Libre Baskerville', serif; font-weight:700; }
.next-step p { font-size:14px; color:var(--charcoal); margin:0 0 16px 0; line-height:1.6; }

/* ===================================================================== */
/* OFFERINGS CATALOGUE , reusable card system, filters, badges, statuses */
/* ===================================================================== */
.offerings-page .offer-filters { display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin:0 auto 14px; max-width:920px; }
.offer-filter { background:#fff; border:1px solid rgba(54,105,95,0.18); color:var(--deep-teal); font-family:var(--sans); font-size:14px; font-weight:600; padding:9px 16px; border-radius:999px; cursor:pointer; transition:all 0.25s ease; }
.offer-filter:hover { border-color:var(--deep-teal); background:var(--sage-light); }
.offer-filter.is-active { background:var(--deep-teal); color:#fff; border-color:var(--deep-teal); }

.offerings-block { margin-top:46px; }
.offerings-block:first-of-type { margin-top:26px; }
/* The library heading follows the rest of the page: centred, like the hero
   above it and the two section headings below it, with the same measure.
   Only the tighter gap before the module grid is its own. */
.offerings-block .section-header { margin:0 auto 26px; }

.offer-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(300px,1fr)); gap:24px; }
.offer-card { background:#fff; border:1px solid rgba(168,207,200,0.35); border-radius:16px; padding:26px 24px; display:flex; flex-direction:column; text-align:center; box-shadow:0 1px 4px rgba(54,105,95,0.05); transition:box-shadow 0.3s ease, transform 0.3s ease, border-color 0.3s ease; }
.offer-card:hover { box-shadow:0 10px 28px rgba(54,105,95,0.12); transform:translateY(-2px); border-color:var(--water-mist); }
.offer-card-top { display:flex; justify-content:center; align-items:center; gap:10px; margin-bottom:14px; }
.offer-card h3 { font-size:19px; line-height:1.3; margin:0 0 8px; color:var(--deep-teal); }
.offer-tagline { font-size:14.5px; line-height:1.55; color:var(--soft); font-style:italic; margin:0 0 14px; }
.offer-desc { font-size:14.5px; line-height:1.65; color:var(--charcoal); margin:0 0 18px; flex:1; }
.offer-meta { list-style:none; display:flex; flex-wrap:wrap; gap:8px; padding:0; margin:0 0 14px; justify-content:center; }
.offer-meta li { font-size:12.5px; font-weight:600; color:var(--deep-teal); background:var(--stone); border-radius:999px; padding:5px 11px; }
.offer-card .button { align-self:center; margin-top:auto; }

/* Badges (offering type) */
.offer-badge { font-size:12px; font-weight:600; letter-spacing:0; text-transform:none; padding:4px 10px; border-radius:999px; background:var(--lotus-light); color:var(--dusty-rose); }
.badge-circle { background:var(--lotus-light); color:var(--dusty-rose); }
.badge-journey { background:var(--lotus-light); color:var(--dusty-rose); }
.badge-live { background:var(--lotus-light); color:var(--dusty-rose); }
.badge-audio { background:var(--lotus-light); color:var(--dusty-rose); }
.badge-video { background:var(--lotus-light); color:var(--dusty-rose); }
.badge-replay { background:var(--lotus-light); color:var(--dusty-rose); }
.badge-workshop { background:var(--lotus-light); color:var(--dusty-rose); }
.badge-retreat { background:var(--lotus-light); color:var(--dusty-rose); }
.badge-download { background:var(--lotus-light); color:var(--dusty-rose); }

/* Availability status */
.offer-status { font-size:12px; font-weight:600; padding:4px 10px; border-radius:999px; }
.status-waitlist { background:var(--lotus-light); color:var(--dusty-rose); }
.status-soon { background:var(--sage-light); color:var(--deep-teal); }
.status-open { background:#dff0e6; color:#2e6b4d; }

.offer-empty { text-align:center; color:var(--soft); font-size:15px; margin:24px auto 0; max-width:520px; }

.hero-actions.center { justify-content:center; }

@media (max-width:768px){
  .offer-grid { grid-template-columns:1fr; gap:18px; }
}

@media (min-width:1100px){
  #live .section-header { max-width:1100px; }
  #live .section-header h2 { white-space:nowrap; font-size:clamp(28px,2.4vw,36px); }
}

/* ===================================================================== */
/* HOMEPAGE , credibility strip, choose-your-path cards, sanctuary signup */
/* ===================================================================== */
.cred-strip { background:var(--deep-teal); padding:16px 20px; }
.cred-strip p { margin:0; text-align:left; color:#fff; font-size:13.5px; font-weight:500; letter-spacing:0.3px; line-height:1.6; max-width:920px; margin:0 auto; }

.path-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.path-card { background:#fff; padding:28px 24px; border-radius:16px; text-align:center; box-shadow:0 2px 8px rgba(54,105,95,0.06); border:1px solid rgba(168,207,200,0.25); display:flex; flex-direction:column; transition:box-shadow 0.3s ease, transform 0.3s ease, border-color 0.3s ease; }
.path-card:hover { box-shadow:0 8px 22px rgba(54,105,95,0.12); transform:translateY(-2px); border-color:var(--water-mist); }
.path-card h3 { font-size:19px; margin:0 0 12px; color:var(--deep-teal); }
.path-card p { font-size:14.5px; line-height:1.6; color:var(--charcoal); margin:0 0 20px; flex:1; }
.path-card .button { align-self:center; }
@media (max-width:980px){ .path-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .path-grid { grid-template-columns:1fr; } }

.sanctuary-wrap { display:grid; grid-template-columns:1.1fr 0.9fr; gap:40px; align-items:center; max-width:960px; margin:0 auto; }
.sanctuary-list { list-style:none; padding:0; margin:18px 0 0; }
.sanctuary-list li { font-size:15.5px; color:var(--charcoal); padding:10px 0 10px 30px; position:relative; line-height:1.6; }
.sanctuary-list li:before { content:'✿'; position:absolute; left:0; color:var(--soft-coral); }
.sanctuary-form-card { background:#fff; padding:32px 28px; border-radius:18px; box-shadow:var(--small-shadow); border:1px solid rgba(168,207,200,0.3); }
.sanctuary-form-card .sanctuary-form { display:flex; flex-direction:column; gap:12px; }
.sanctuary-form-card input[type=email] { padding:13px 16px; border:1px solid var(--border); border-radius:10px; font-size:15px; font-family:var(--sans); }
.sanctuary-form-card .button { width:100%; }
.sanctuary-fineprint { font-size:12.5px; color:var(--soft); margin:14px 0 0; text-align:center; }
@media (max-width:760px){ .sanctuary-wrap { grid-template-columns:1fr; gap:28px; } }

/* ── Mobile global centering override ── */
@media (max-width:760px){
  body,
  p,
  li,
  h1,
  h2,
  h3,
  h4,
  h5,
  h6,
  blockquote,
  .hero-content,
  .about-copy,
  .modal-box,
  .event-card,
  .event-card > p,
  .event-learn,
  .circle-card,
  .circle-card > p,
  .circle-learn,
  .for-you-list,
  .price-list,
  .work-offer,
  .work-features,
  .sanctuary-list,
  .circles-for-you,
  .circles-for-you ul,
  .coaching-fit-list,
  .coaching-not-fit-list,
  .ai-learn-list,
  .site-footer,
  .footer-inner,
  .footer-copy,
  .footer-nav,
  .footer-legal,
  .footer-legal-links {
    text-align:center;
  }

  .button,
  .hero-actions,
  .hero-page-actions,
  .rhythm-actions,
  .hero-actions.center,
  .button-group,
  .cta-actions {
    justify-content:center;
  }

  .hybrid-toggle,
  .collab-card .button,
  .work-offer .button,
  .offer-card .button,
  .circle-card .button,
  .path-card .button {
    align-self:center;
  }

  .footer-inner,
  .footer-copy,
  .footer-nav,
  .footer-legal-links,
  .testi-person,
  .event-meta,
  .circle-meta,
  .modal-row {
    justify-content:center;
    align-items:center;
  }

  .for-you-list li,
  .price-list li,
  .work-features li,
  .sanctuary-list li,
  .circles-for-you li,
  .coaching-fit-list li,
  .coaching-not-fit-list li,
  .ai-learn-list li,
  .event-learn li,
  .circle-learn li {
    padding-left:0;
    padding-right:0;
  }

  .for-you-list li::before,
  .price-list li::before,
  .work-features li::before,
  .sanctuary-list li::before,
  .circles-for-you li::before,
  .coaching-fit-list li::before,
  .coaching-not-fit-list li::before,
  .ai-learn-list li::before,
  .event-learn li::before,
  .circle-learn li::before {
    position:static;
    display:inline-block;
    margin-right:8px;
  }

  .nav-links.open {
    align-items:center;
    text-align:center;
  }
}

/* ═══════════════════════════════════════════════════════════════
   Launch plan restructure — shared additions
   ═══════════════════════════════════════════════════════════════ */

/* Lock background scroll when the mobile menu is open (was referenced
   by the nav script but never defined). */
.no-scroll { overflow: hidden; }

/* Language toggle uses <button> elements; reset native button chrome so
   the existing .language-link styles apply cleanly. */
button.language-link { background:transparent; border:0; cursor:pointer; font-family:var(--sans); }
button.language-link:hover { color:var(--deep-teal); }


/* ── Home: pain list ── */
.pain-list { list-style:none; margin:0 0 26px; padding:0; display:grid; gap:14px; }
.pain-list li { position:relative; padding:16px 18px 16px 46px; background:var(--white); border:1px solid var(--border); border-radius:16px; box-shadow:var(--small-shadow); font-size:16px; color:var(--soft); }
.pain-list li::before { content:"✿"; position:absolute; left:18px; top:16px; color:var(--dusty-rose); font-size:15px; }
.pain-close { text-align:center; font-size:17px; color:var(--ink); max-width:640px; margin:0 auto; }

/* ── Home: how it helps ── */
.help-grid { display:grid; grid-template-columns:repeat(2, 1fr); gap:22px; margin-bottom:36px; }
.help-card { background:var(--white); border:1px solid var(--border); border-radius:20px; padding:26px 24px; box-shadow:var(--small-shadow); }
.help-card h3 { margin:0 0 10px; font-size:20px; }
.help-card p { margin:0; color:var(--soft); font-size:15.5px; }
@media (max-width:760px){ .help-grid { grid-template-columns:1fr; } }

/* ── Home: mechanism ── */
.mechanism-list { display:grid; grid-template-columns:repeat(3, 1fr); gap:22px; }
.mechanism-item { text-align:center; padding:8px; }
.mechanism-item h3 { font-size:19px; margin:0 0 10px; }
.mechanism-item p { margin:0; color:var(--soft); font-size:15.5px; }
@media (max-width:760px){ .mechanism-list { grid-template-columns:1fr; gap:26px; } }

/* ── Closing invitation ── */
.section-invite { background:linear-gradient(135deg, #EEF6F5 0%, #FDF0EB 100%); }

/* ═══ New pages: shared panels ═══ */
.card-panel { background:var(--white); border:1px solid var(--border); border-radius:22px; box-shadow:var(--small-shadow); padding:28px 26px; }
@media (max-width:560px){ .card-panel { padding:22px 18px; } }

.price-banner { display:flex; flex-direction:column; align-items:center; gap:8px; text-align:center; background:var(--sage-light); border-radius:20px; padding:22px; margin:0 auto 30px; max-width:720px; }
.price-sub { font-size:15px; color:var(--soft); }
.price-banner .price-tag-amount { font-size:30px; color:var(--deep-teal); }
.price-banner .price-tag-unit { font-size:16px; }

/* ═══ Workshop page ═══ */
.workshop-theme { font-weight:700; color:var(--dusty-rose); }
.workshop-meta { list-style:none; margin:0 auto 30px; padding:0; display:flex; flex-wrap:wrap; justify-content:center; gap:12px; max-width:820px; }
.workshop-meta li { display:flex; flex-direction:column; gap:2px; background:var(--stone); border-radius:14px; padding:12px 18px; min-width:150px; }
.wm-label { font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--coral-text); }
.wm-value { font-size:15px; color:var(--ink); font-weight:600; }
.workshop-form { max-width:720px; margin:0 auto; }
.wf-field { margin-bottom:16px; display:flex; flex-direction:column; gap:6px; }
.wf-field label { font-weight:600; font-size:14px; color:var(--soft); }
.wf-field input { padding:13px 16px; border:1px solid var(--border); border-radius:12px; font-family:var(--sans); font-size:16px; background:var(--white); }
.wf-field input:focus { outline:2px solid var(--water-mist); border-color:var(--deep-teal); }
.contribution { border:0; padding:0; margin:8px 0 20px; }
.contribution legend { font-weight:600; font-size:14px; color:var(--soft); margin-bottom:12px; padding:0; }
.tier-buttons { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.tier { position:relative; display:flex; flex-direction:column; align-items:center; gap:6px; text-align:center; background:var(--white); border:2px solid var(--border); border-radius:16px; padding:20px 12px 16px; cursor:pointer; font-family:var(--sans); transition:border-color .2s, box-shadow .2s, transform .15s; min-height:120px; }
.tier:hover { transform:translateY(-2px); border-color:var(--water-mist); }
.tier.is-selected { border-color:var(--deep-teal); box-shadow:0 10px 26px rgba(54,105,95,.18); background:var(--sage-light); }
.tier-amount { font-family:var(--serif); font-size:26px; font-weight:700; color:var(--deep-teal); }
.tier-note { font-size:12.5px; color:var(--soft); line-height:1.5; }
.tier-badge { position:absolute; top:-11px; left:50%; transform:translateX(-50%); white-space:nowrap; background:var(--dusty-rose); color:#fff; font-size:11px; font-weight:700; padding:3px 12px; border-radius:999px; }
@media (max-width:560px){ .tier-buttons { grid-template-columns:1fr; } .tier { flex-direction:row; justify-content:flex-start; text-align:left; min-height:0; padding:16px 18px; gap:14px; } .tier-badge { left:auto; right:14px; transform:none; } }
.wf-submit { width:100%; margin-top:4px; }
.wf-note { text-align:center; font-size:14px; color:var(--soft); margin-top:12px; }
.wf-success { text-align:center; padding:20px; }
.you-also-get { max-width:720px; margin:34px auto 0; background:var(--stone); border-radius:20px; padding:26px 24px; }
.you-also-get h2 { font-size:20px; margin:0 0 14px; }
.you-also-get ul { list-style:none; margin:0 0 14px; padding:0; display:grid; gap:10px; }
.you-also-get li { position:relative; padding-left:28px; color:var(--soft); }
.you-also-get li::before { content:"✿"; position:absolute; left:0; top:0; color:var(--dusty-rose); }
.yag-close { font-size:14px; color:var(--soft); margin:0; }

/* ═══ Circles page ═══ */
.circle-cards { display:grid; grid-template-columns:repeat(2,1fr); gap:22px; margin:0 auto 30px; max-width:920px; }
.circle-card { background:var(--white); border:1px solid var(--border); border-radius:20px; box-shadow:var(--small-shadow); padding:26px 24px; text-align:center; display:flex; flex-direction:column; gap:14px; }
.circle-card h2 { font-size:22px; margin:0; }
.circle-card p { color:var(--soft); font-size:15px; margin:0; flex:1; }
@media (max-width:640px){ .circle-cards { grid-template-columns:1fr; } }
.inside-panel { max-width:780px; margin:0 auto; }
.inside-panel h2 { font-size:22px; margin:0 0 16px; }
.inside-list { list-style:none; margin:0 0 16px; padding:0; display:grid; gap:12px; }
.inside-list li { position:relative; padding-left:30px; color:var(--soft); }
.inside-list li::before { content:"✿"; position:absolute; left:0; top:0; color:var(--dusty-rose); }
.inside-note { font-size:15px; color:var(--ink); margin:0; }
.join-success { text-align:center; max-width:700px; margin:26px auto 0; background:var(--sage-light); border-radius:18px; padding:24px; }

/* ═══ Radiance Modules page ═══ */
.starter-guide { max-width:840px; margin:0 auto 34px; text-align:center; }
.starter-guide h2 { font-size:22px; margin:0 0 10px; }
.starter-guide p { color:var(--soft); margin:0 auto 18px; max-width:680px; }
.module-cards { display:grid; grid-template-columns:repeat(2,1fr); gap:22px; margin-bottom:30px; }
@media (max-width:820px){ .module-cards { grid-template-columns:1fr; } }
.module-card { background:var(--white); border:1px solid var(--border); border-radius:20px; box-shadow:var(--small-shadow); padding:26px 24px; display:flex; flex-direction:column; gap:14px; }
.module-card.is-open { border-color:var(--deep-teal); box-shadow:0 14px 34px rgba(54,105,95,.16); }
.module-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.module-head h2 { font-size:21px; margin:0; }
.module-status { font-size:11.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--soft); background:var(--stone); padding:5px 12px; border-radius:999px; white-space:nowrap; }
.module-status.open { color:#fff; background:var(--deep-teal); }
.module-card > p { color:var(--soft); margin:0; }
.levels { display:grid; gap:8px; }
.level { display:grid; grid-template-columns:1fr auto auto; align-items:center; gap:12px; padding:11px 14px; background:var(--stone); border-radius:12px; }
.level.is-open { background:var(--sage-light); }
.level-name { font-weight:600; color:var(--ink); font-size:14.5px; }
.level-price { font-family:var(--serif); font-weight:700; color:var(--deep-teal); font-size:15px; }
.level-badge { font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--soft); }
.level-badge.open { color:var(--deep-teal); }
.module-card .button { margin-top:auto; }
.module-notes { text-align:center; max-width:780px; margin:0 auto 30px; }
.module-notes p { color:var(--soft); }
.module-promise { font-style:italic; color:var(--ink); }
.launch-callout { max-width:780px; margin:0 auto; text-align:center; background:linear-gradient(135deg,#EEF6F5 0%,#FDF0EB 100%); }
.launch-callout h2 { font-size:22px; margin:6px 0 12px; }
.launch-callout p { color:var(--soft); margin:6px 0; }

/* ═══ 1:1 Coaching page ═══ */
.promise-panel { max-width:700px; margin:0 auto 26px; text-align:center; background:var(--sage-light); border:0; }
.promise-line { font-family:var(--serif); font-size:18px; color:var(--deep-teal); margin:0; }

/* Radiance Modules: single price row (levels concept removed) */
.module-price { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 16px; background:var(--stone); border-radius:12px; }
.module-card.is-open .module-price { background:var(--sage-light); }
.module-price-label { font-weight:600; color:var(--ink); font-size:14.5px; }

/* Radiance Modules filter: ensure the hidden attribute wins over display:flex */
.offer-card[hidden] { display:none !important; }
/* Status chips inside the module meta row */
.offer-meta li.status-open { background:#dff0e6; color:#2e6b4d; }
.offer-meta li.status-soon { background:var(--lotus-light); color:var(--dusty-rose); }

/* Radiance Modules: "Our promise" panel */
.promise-block { max-width:820px; margin:36px auto 0; text-align:center; }
.promise-block h2 { font-size:24px; margin:6px 0 10px; }
.promise-block > p { color:var(--soft); margin:0 auto; max-width:680px; }
.promise-block .circles-for-you { text-align:left; margin-top:18px; }

/* Secondary header CTA: membership always one tap away, without competing
   with the primary "Save my workshop seat" button. */
.nav-circle-link {
  font-size:14px;
  font-weight:600;
  color:var(--deep-teal) !important;
  padding:8px 16px;
  border:1.5px solid rgba(54,105,95,.35);
  border-radius:999px;
  transition:border-color .2s, background .2s;
  white-space:nowrap;
}
.nav-circle-link:hover { border-color:var(--deep-teal); background:rgba(168,207,200,.22); }
@media (max-width:900px){ .nav-circle-link { align-self:flex-start; } }

/* Homepage "What You Can Find Here" cards are now links */
a.help-card { display:flex; flex-direction:column; text-decoration:none; color:inherit; transition:transform .15s, box-shadow .2s, border-color .2s; }
a.help-card:hover { transform:translateY(-3px); box-shadow:0 14px 30px rgba(54,105,95,.14); border-color:var(--water-mist); }
a.help-card h3 { transition:color .2s; }
a.help-card:hover h3 { color:var(--dusty-rose); }
.help-card-more { margin-top:14px; font-size:14px; font-weight:700; color:var(--deep-teal); }

/* The Sanctuary: the warm, open front door. Generous space, soft light. */
.sanctuary-home { background:linear-gradient(160deg, #FDFBF8 0%, #EEF6F5 55%, #F5E9E4 100%); padding:92px 0; }
.sanctuary-home .section-header { margin-bottom:26px; }
.sanctuary-home h2 { font-size:clamp(30px,4.4vw,44px); }
.sanctuary-home p { font-size:17px; line-height:1.85; color:var(--ink); max-width:760px; margin:0 auto 18px; }
.sanctuary-home .sanctuary-lead { font-size:19px; color:var(--deep-teal); }
.sanctuary-join { display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin:28px auto 0; max-width:520px; }
.sanctuary-join input[type="email"] { flex:1 1 240px; padding:14px 18px; border:1px solid var(--border); border-radius:999px; font-family:var(--sans); font-size:16px; background:#fff; }
.sanctuary-join input[type="email"]:focus { outline:2px solid var(--water-mist); border-color:var(--deep-teal); }
.sanctuary-join-msg { font-weight:600; color:var(--deep-teal); margin-top:16px; }
@media (max-width:760px){ .sanctuary-home { padding:64px 0; } }

/* ═══════════════════════════════════════════════════════════════
   Simplified navigation: Explore Offers mega menu + one primary CTA
   ═══════════════════════════════════════════════════════════════ */
.nav-dropdown { position:relative; }
.nav-drop-toggle { display:inline-flex; align-items:center; gap:6px; background:none; border:0; cursor:pointer; font-family:var(--sans); font-size:14px; font-weight:500; color:var(--soft); padding:0; transition:color .2s; }
.nav-drop-toggle:hover, .nav-dropdown.open .nav-drop-toggle, .nav-dropdown.is-current .nav-drop-toggle { color:var(--deep-teal); }

.nav-drop-chevron { font-size:24px; line-height:1; transition:transform .25s ease; position:relative; top:2px; }
.nav-dropdown.open .nav-drop-chevron { transform:rotate(180deg); }

/* The panel: a small mega menu of offer cards. Soft entrance animation. */
.mega-menu {
  position:absolute; top:calc(100% + 16px); left:50%;
  transform:translateX(-50%) translateY(8px);
  opacity:0; visibility:hidden;
  transition:opacity .22s ease, transform .22s ease, visibility .22s;
  display:grid; grid-template-columns:1fr 1fr; gap:8px;
  width:min(560px, 92vw); padding:14px;
  background:#fff; border:1px solid var(--border); border-radius:20px;
  box-shadow:var(--shadow); z-index:1100;
}
.nav-dropdown.open .mega-menu { opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
.mega-menu::before { content:""; position:absolute; top:-6px; left:50%; transform:translateX(-50%) rotate(45deg); width:11px; height:11px; background:#fff; border-left:1px solid var(--border); border-top:1px solid var(--border); }

.mega-card { display:flex; align-items:flex-start; gap:12px; padding:12px 14px; border-radius:14px; transition:background .2s; }
.mega-card:hover { background:var(--sage-light); }
.mega-card[aria-current="page"] { background:rgba(168,207,200,.22); }
.mega-icon { flex-shrink:0; display:flex; align-items:center; justify-content:center; width:38px; height:38px; border-radius:50%; font-size:16px; color:var(--dusty-rose); }
.mega-icon-1 { background:var(--sage-light); }
.mega-icon-2 { background:var(--lotus-light); }
.mega-icon-3 { background:var(--cream); }
.mega-icon-4 { background:rgba(168,207,200,.35); }
.mega-text { display:flex; flex-direction:column; gap:2px; min-width:0; }
.mega-title { font-weight:700; font-size:14px; color:var(--deep-teal); }
.mega-desc { font-size:12.5px; line-height:1.5; color:var(--soft); font-weight:400; }

/* Mobile: the panel renders inline inside the menu drawer */
@media (max-width:1024px){
  .nav-dropdown { width:100%; }
  .mega-menu { position:static; transform:none; opacity:1; visibility:hidden; display:none; width:100%; padding:6px 0 4px; border:0; box-shadow:none; border-radius:0; grid-template-columns:1fr; gap:4px; margin-top:6px; border-left:2px solid var(--sage-light); padding-left:10px; }
  .nav-dropdown.open .mega-menu { display:grid; visibility:visible; transform:none; }
  .mega-menu::before { display:none; }
}

/* Retired: the old secondary header link (Join the Circle lives in the
   pages and footer now, not the header). */
.nav-circle-link { display:none !important; }

/* Anchored sections land just below the sticky header when scrolled to. */
section[id], div[id="check-in"] { scroll-margin-top: 84px; }

/* Start Here cards reuse the Explore Offers icons for visual consistency.
   Icon and title share one row; the description sits underneath. */
.help-card-head { display:flex; align-items:center; gap:14px; margin-bottom:12px; }
.help-card .help-icon { width:42px; height:42px; font-size:17px; margin:0; }
.help-card-head h3 { margin:0; }

/* ═══════════════════════════════════════════════════════════════
   Mobile navigation polish: consistent alignment, spacing and
   comfortable tap targets throughout the drawer.
   ═══════════════════════════════════════════════════════════════ */
@media (max-width:1024px){
  .nav-links { padding:14px 16px 22px; gap:2px; }

  /* Every top-level item shares the same row shape and left edge */
  .nav-links > a,
  .nav-drop-toggle {
    display:flex; align-items:center; width:100%;
    padding:13px 12px; border-radius:12px;
    font-size:15px; font-weight:600; color:var(--soft);
    transition:background .2s, color .2s;
  }
  .nav-links > a:hover,
  .nav-links > a[aria-current="page"],
  .nav-drop-toggle:hover,
  .nav-dropdown.open .nav-drop-toggle { background:var(--sage-light); color:var(--deep-teal); }

  /* Explore Offers toggle: label left, chevron tucked beside it */
  .nav-drop-toggle { justify-content:flex-start; gap:8px; }

  /* The inline offers panel: aligned to the same left edge as the rows,
     with a soft indent guide and even spacing between cards */
  .nav-dropdown.open .mega-menu {
    margin:4px 0 8px 12px; padding:2px 0 2px 12px;
    border-left:2px solid var(--water-mist);
    gap:2px;
  }
  .mega-menu { border-radius:0; }
  /* The drawer inherits the global mobile text centering from body;
     offer cards read as a list, so their text stays left-aligned. */
  .mega-card { padding:10px 12px; border-radius:12px; gap:12px; align-items:center; text-align:left; }
  .mega-icon { width:34px; height:34px; font-size:14px; }
  .mega-title { font-size:14.5px; }
  .mega-desc { font-size:12.5px; }

  /* Primary CTA: full width, clearly the one action */
  .nav-links .nav-cta { margin-top:12px; width:100%; justify-content:center; padding:14px 18px; font-size:15px; }

  /* Language toggle: quiet, aligned with the rows */
  .nav-links .language-switch { margin:10px 0 0 12px; }
}

/* Keep the primary CTA's own hover colour in the mobile drawer */
@media (max-width:1024px){
  .nav-links .nav-cta:hover { background:#2c554d; color:#fff !important; }
}

/* Language toggle: unmistakable active state, clear EN | FR separation,
   and breathing room on mobile so FR cannot be tapped by accident. */
.language-switch { gap:2px; padding:3px; background:rgba(23,47,42,.05); border-radius:999px; }
.language-link, button.language-link { font-size:12px; font-weight:700; padding:5px 10px; border-radius:999px; color:#9BA8A3; }
.language-link[aria-current="page"] { background:var(--deep-teal); color:#fff; }
button.language-link:hover { color:var(--deep-teal); }
.language-link[aria-current="page"]:hover { color:#fff; }
@media (max-width:1024px){
  .nav-links .language-switch { margin:16px 0 0 12px; align-self:flex-start; }
}

/* ═══════════════════════════════════════════════════════════════
   Desktop typography polish: headings wrap evenly (no stray last
   word), lead paragraphs avoid awkward single-word last lines.
   Progressive enhancement: older browsers simply ignore these.
   ═══════════════════════════════════════════════════════════════ */
h1, h2, .section-header h2, .hero-page h1 { text-wrap:balance; }
.section-header p, .hero-page-lead, .hero-copy, .sanctuary-home p, .offer-tagline, .offer-desc { text-wrap:pretty; }


/* Hero primary CTA: the clear main action, wider and taller but not heavy */
.hero-actions .button-primary { padding:17px 40px; font-size:16px; }



/* Hero kicker: the brand-defining line, quietly prominent */
.hero-sanctuary .section-kicker { font-size:13px; letter-spacing:.24em; color:var(--coral-text); }


/* ═══ Trust strip: credential band under the hero (icons + dividers) ═══ */
.cred-strip { padding:20px 22px; }
.cred-items { display:flex; justify-content:center; align-items:stretch; flex-wrap:wrap; max-width:1240px; margin:0 auto; }
.cred-item { display:flex; align-items:center; gap:13px; padding:8px 30px; border-left:1px solid rgba(255,255,255,.18); }
.cred-item:first-child { border-left:0; }
.cred-icon { color:var(--gold); font-size:24px; line-height:1; flex-shrink:0; }
.cred-text { margin:0; color:#fff; font-size:13.5px; line-height:1.45; font-weight:500; text-align:left; display:flex; flex-direction:column; }
.cred-text strong { font-weight:700; }
@media (max-width:1080px){
  .cred-items { display:grid; grid-template-columns:repeat(3,auto); justify-content:center; gap:10px 0; }
}
@media (max-width:760px){
  .cred-items { grid-template-columns:repeat(2,auto); }
  .cred-item { padding:8px 20px; }
  .cred-item:nth-child(odd) { border-left:0; }
}
@media (max-width:420px){
  .cred-items { grid-template-columns:1fr; justify-items:start; }
  .cred-item { border-left:0; padding:8px 4px; }
}



/* Trust strip icons are inline SVGs (consistent on every device) */
.cred-icon svg { display:block; width:26px; height:26px; }

/* Sections freed from the narrow container keep their content compact */
.mechanism-list { max-width:980px; margin:0 auto; }

/* Mobile: when titles wrap to two lines, give them room to breathe
   before the text that follows. */
@media (max-width:760px){
  .hero-page h1 { line-height:1.28; margin:14px 0 22px; }
  .section-header h2 { line-height:1.3; margin:0 0 18px; }
  .section-header { margin-bottom:36px; }
  .section-header p { margin-top:2px; }
  .hero-page-lead { margin-top:4px; }
}

/* ==================================================================
   SEGMENTED JOURNEYS RESTRUCTURE
   Promoted check-in quiz, offer price chips, bundles & pathway cards,
   and the cross-offering explore strip on the four offering pages.
   Uses only the defined tokens (--deep-teal, --ink, etc.).
   ================================================================== */

/* Promoted check-in quiz */
.quiz-badge { display:inline-block; background:var(--white); color:var(--dusty-rose); border:1px solid rgba(158,74,94,.28); border-radius:999px; padding:6px 14px; font-size:12.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; margin-bottom:14px; }
.quiz-browse { text-align:center; margin-top:16px; font-size:14.5px; color:var(--soft); }

/* Quiz result: a warm card with a clear next step */
.quiz-result:empty { padding:0; border:0; margin:0; background:transparent; box-shadow:none; }
.quiz-result-ready { background:var(--white); border:1px solid rgba(54,105,95,.14); border-top:4px solid var(--soft-coral); border-radius:16px; padding:26px 24px; box-shadow:var(--small-shadow); }
.quiz-result-ready .quiz-result-kicker { font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--coral-text); font-weight:700; margin:0 0 6px; }
.quiz-result-ready .quiz-result-cta { margin:16px 0 8px; }
.quiz-result-ready .quiz-result-alt { font-size:14.5px; }
.quiz-result-ready .quiz-result-note { font-size:13px; color:var(--soft); opacity:.85; margin-top:10px; }

/* Price chips on the four offering cards */
a.help-card p { flex:1; }
.help-price { align-self:flex-start; display:inline-block; margin-top:14px; background:var(--stone); color:var(--deep-teal); border:1px solid rgba(54,105,95,.12); border-radius:999px; padding:5px 12px; font-size:13px; font-weight:700; }
.help-card-more { margin-top:10px; }
.help-bundles-line { margin-top:14px; font-size:14.5px; color:var(--soft); }

/* Bundles & pathway cards (extends .prog-card) */
.bundle-item { border-top:1px dashed var(--border); padding:12px 0 10px; text-align:left; }
.bundle-item h4 { font-family:var(--serif); color:var(--deep-teal); font-size:17px; margin:0 0 4px; }
.bundle-item p { font-size:14.5px; color:var(--soft); margin:0 0 8px; }
.bundle-item-meta { display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; margin:0 0 4px; }
.bundle-price { display:inline-block; background:var(--sage-light); color:var(--deep-teal); border-radius:999px; padding:4px 12px; font-size:13px; font-weight:700; }
.bundle-note { font-size:13px; color:var(--soft); opacity:.85; margin:12px 0 0; }
.prog-card .bundle-item + .bundle-item { margin-top:2px; }

/* Fifth mega menu row: bundles & the pathway, full width */
.mega-card-wide { grid-column:1 / -1; border-top:1px dashed var(--border); margin-top:4px; padding-top:12px; }
.mega-icon-5 { background:rgba(212,122,106,.16); }

/* Explore strip: the cross-links at the foot of each offering page */
.explore-strip-links { display:flex; flex-wrap:wrap; justify-content:center; gap:12px 14px; margin-top:22px; }
.explore-strip-links a { display:inline-block; background:var(--white); color:var(--deep-teal); border:1px solid var(--border); border-radius:999px; padding:10px 20px; font-size:14.5px; font-weight:600; text-decoration:none; transition:background .2s, border-color .2s, transform .15s; }
.explore-strip-links a:hover { background:var(--sage-light); border-color:var(--water-mist); transform:translateY(-2px); }

.circle-cards .circle-card .button { align-self:center; margin-top:auto; }
.offer-filters { scroll-margin-top:84px; }

@media (max-width:760px){
  .quiz-result-ready { padding:22px 18px; }
  .bundle-item { text-align:center; }
  .bundle-item-meta { justify-content:center; }
  .help-price { align-self:center; }
}

/* Workshop flat seat price (replaced the pay-what-feels-right tiers) */
.wf-price { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:center; gap:4px 10px; background:var(--stone); border:1px solid rgba(54,105,95,.12); border-radius:16px; padding:16px 20px; margin:4px 0 6px; }
.wf-price-label { font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--coral-text); font-weight:700; width:100%; text-align:center; }
.wf-price .price-tag { width:100%; }
.wf-price .price-tag-amount { font-size:32px; }

/* Desktop and tablet: the hero and the credentials band together fill the
   first screen, sitting directly under the sticky header. The band keeps its
   natural height (it wraps to more rows as the window narrows) and the hero
   absorbs whatever is left, so the pair always lands exactly on the fold.
   Below 861px the hero grid stacks to one column and is naturally taller
   than a screen, so narrow tablets and phones flow normally instead of being
   squeezed. min-height (not height) lets a short window grow rather than
   clipping. */
@media (min-width:861px){
  .first-screen { display:flex; flex-direction:column; min-height:calc(100vh - var(--header-h)); }
  .first-screen { min-height:calc(100svh - var(--header-h)); }
  .first-screen .hero.hero-sanctuary { flex:1 0 auto; }
  /* On short windows the hero's breathing room yields first, so the
     credentials band stays on screen before anything has to scroll. */
  .first-screen .hero.hero-sanctuary { padding:clamp(28px, 6vh, 64px) 0 clamp(22px, 5vh, 48px); }
}

/* Narrow AND short windows only (the band wraps to three rows below 980px):
   scale the decorative logo down so the credentials band still clears the
   fold. Wide desktops and tall tablets keep the logo at full size. */
@media (min-width:861px) and (max-width:980px) and (max-height:900px){
  .first-screen .hero-logo { width:clamp(170px, 24vh, 264px); }
}


/* ==================================================================
   RESPONSIVE LAYER
   ------------------------------------------------------------------
   The stylesheet above was written desktop-down, with a hard 1140px
   ceiling and no rules above 1200px, so large screens wasted ~40% of
   their width. This layer makes the shell fluid and the grids
   self-distributing. It is appended last so it wins on equal
   specificity, and it is written mobile-first (min-width queries).

   Breakpoints: mobile <768 · tablet 768 · laptop 1024 · desktop 1440
   · large 1920. Tokens below are the single place to retune widths.
   ================================================================== */

:root {
  /* Page gutter grows with the viewport instead of a fixed 22px. */
  --gutter: clamp(1.25rem, 3vw, 2.5rem);
  /* Shell widths, stepped up at the large breakpoints (see below). */
  --container-max: 1140px;
  --container-narrow: 840px;
  /* Vertical section rhythm, fluid between phone and large desktop. */
  --section-y: clamp(3.25rem, 6vw, 6.5rem);
}
@media (min-width:1440px){
  :root { --container-max:1320px; --container-narrow:900px; --section-y:6.5rem; }
}
@media (min-width:1920px){
  :root { --container-max:1560px; --container-narrow:960px; --section-y:7.5rem; }
}

/* ---- Fluid shell ------------------------------------------------ */
/* width:min() replaces max-width + fixed padding so the gutter scales. */
.container,
.hero-inner,
.hero-page-inner,
.nav,
.footer-inner,
.cred-items {
  width:min(100% - (var(--gutter) * 2), var(--container-max));
  max-width:none;
  margin-inline:auto;
  padding-left:0;
  padding-right:0;
}
.container.narrow { width:min(100% - (var(--gutter) * 2), var(--container-narrow)); max-width:none; }
/* The nav keeps its own vertical padding; only the horizontal is replaced. */
.nav { padding-top:14px; padding-bottom:14px; }
.section { padding-block:var(--section-y); }

/* Headings and lead paragraphs: cap by reading measure (ch), not px, so
   the limit tracks the font size instead of fighting it. */
.section-header { max-width:none; }
.section-header p { max-width:75ch; }
.hero-copy, .hero-page-lead, .sanctuary-lead { max-width:65ch; }

/* ---- Fluid type ------------------------------------------------- */
/* Body copy grows a little on big screens rather than staying 16px. */
body { font-size:clamp(1rem, 0.955rem + 0.22vw, 1.125rem); }
.section-header h2 { font-size:clamp(1.625rem, 1.25rem + 1.6vw, 2.75rem); }
.hero-page h1 { font-size:clamp(1.75rem, 1.3rem + 2vw, 2.75rem); }
.hero-copy { font-size:clamp(1.0625rem, 1rem + 0.35vw, 1.375rem); }
.section-header p { font-size:clamp(1.0625rem, 1.02rem + 0.2vw, 1.25rem); }

/* Card and list copy: bumped a step on desktop, a second on large. */
@media (min-width:1440px){
  .help-card p, .offer-desc, .story-card p, .prog-card li, .prog-blurb,
  .mechanism-item p, .circles-for-you li, .coaching-fit-list li,
  .price-list li, .inside-list li, .quiz-card label, .bundle-item p,
  .outcome p, .dimension p, .collab-card p {
    font-size:1.0625rem; line-height:1.7;
  }
  .quiz-card legend, .help-card h3, .offer-card h3 { font-size:1.375rem; }
}
@media (min-width:1920px){
  .help-card p, .offer-desc, .story-card p, .prog-card li, .prog-blurb,
  .mechanism-item p, .circles-for-you li, .coaching-fit-list li,
  .price-list li, .inside-list li, .quiz-card label, .bundle-item p,
  .outcome p, .collab-card p {
    font-size:1.125rem;
  }
}
/* Body copy inside the dimension circles was 11px on laptops: too small. */
@media (max-width:1100px){ .dimension p { font-size:13px; line-height:1.5; } }

/* ---- Self-distributing grids ------------------------------------
   repeat(N,1fr) locked these to N columns at every width. auto-fit +
   minmax lets them add columns on wide screens and collapse to one on
   phones; min(100%, …) stops the track floor causing overflow. */
.help-grid       { grid-template-columns:repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); }
.mechanism-list  { grid-template-columns:repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); max-width:none; }
.prog-grid       { grid-template-columns:repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); max-width:none; }
.package-grid    { grid-template-columns:repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); max-width:none; }
.closing-grid    { grid-template-columns:repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); max-width:none; }
.start-grid      { grid-template-columns:repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); }
.split-cta       { grid-template-columns:repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); max-width:none; }
.proof-grid      { grid-template-columns:repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); max-width:none; }
.offers-hybrid   { grid-template-columns:repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); max-width:none; }
.sanctuary-benefits { grid-template-columns:repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); }
.ai-offers       { grid-template-columns:repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); }
.event-categories{ grid-template-columns:repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); }
.path-grid       { grid-template-columns:repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); }
.rhythm-list     { grid-template-columns:repeat(auto-fit, minmax(min(100%, 11rem), 1fr)); }
.circle-cards    { grid-template-columns:repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); max-width:none; }
.module-cards    { grid-template-columns:repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); }
.offer-grid      { grid-template-columns:repeat(auto-fit, minmax(min(100%, 19rem), 1fr)); }
.outcomes, .outcomes-grid, .tools-list, .dimensions, .journey-circles { max-width:none; }

/* The four home offers are one ladder (taste it · belong · go deep ·
   private work), so they hold a single row of equal tracks from laptop
   up instead of letting auto-fit orphan the fourth card. Scoped to
   #start-here: .help-grid on coaching.html carries five cards.
   Below 1024px they fall back to the auto-fit rule above (two up on
   tablet, stacked on phones). */
@media (min-width:1024px){
  #start-here .help-grid { grid-template-columns:repeat(4, minmax(0, 1fr)); }
  /* Narrower tracks leave the title ~118px beside the 42px icon. A flex
     item will not shrink past its longest word by default, so a long one
     (FR "hebdomadaire") pushed out of the card; min-width lets the title
     take the space it has, and it only breaks a word when it has to. */
  #start-here .help-card-head h3 { min-width:0; overflow-wrap:break-word; hyphens:auto; }
}

/* ---- FAQ teaser · partnerships ----------------------------------
   The teaser and the partnership band each carried a full section's
   padding, so ~119px of empty ground sat between one short heading and
   the next. Tightened from both sides, and the partnership content
   pulled in from the full 1140px shell so the lone card reads as a
   deliberate object rather than a stretched band. Colours, type family
   and scale are untouched; only rhythm and width change. */

#partners.section { padding-block:clamp(2.5rem, 4.2vw, 4rem) clamp(3rem, 5vw, 5rem); }
#partners .container { width:min(100% - (var(--gutter) * 2), 880px); }
#partners .section-header { margin-bottom:26px; }
#partners .section-header p { max-width:58ch; }
/* The kicker is a signpost, not a headline: lighter and quieter above
   the h2, same coral. */
#partners .section-kicker { font-size:11px; font-weight:600; letter-spacing:.2em; margin-bottom:10px; }
/* One card in a self-distributing grid took the whole row. Holding it
   near the intro measure keeps the block on one vertical spine. The
   single track also overrides the two-column rule that kicks in at
   1920px and would otherwise leave this lone card at half width. */
#partners .split-cta { grid-template-columns:minmax(0, 1fr); max-width:700px; margin-inline:auto; }
#partners .collab-card { box-shadow:var(--small-shadow); }
#partners .collab-card p { margin-bottom:24px; }
/* Roomier padding only where there is width to spare: phones keep the
   original 26px sides so the copy measure does not shrink. */
@media (min-width:768px){
  #partners .collab-card { padding:34px 32px; }
}

/* ---- Journey table ----------------------------------------------
   The from/to rows sat in a 780px cap inside the full shell, so each
   side had 362px and the longest pairings broke over two lines. Widened
   to hold the longest line in both languages; the labels track the same
   width so they stay over their columns. min(100%, …) keeps it inside
   the container, so narrow windows are unchanged and the rows still
   stack under 640px. The text hugs the centre arrow either side, so the
   extra width falls outside the pair rather than stretching it. */
.journey-labels,
.journey-rows { max-width:min(100%, 1060px); }

/* Two-column pairs read better held to two on very wide screens than
   stretched into one long line. */
@media (min-width:1920px){
  .split-cta, .proof-grid, .ai-offers, .event-categories, .circle-cards {
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

/* ---- Small screens ---------------------------------------------- */
@media (max-width:767px){
  /* Comfortable tap targets (WCAG 2.5.5 target size). */
  .button, .nav-cta, .offer-filter, .tier, .modal-submit,
  .testi-nav, .nav-toggle { min-height:44px; }
  .nav-links a, .footer-nav a, .footer-legal-links a { padding-block:6px; }
  /* Full-width primary actions read better than centred stubs. */
  .hero-actions .button, .quiz-card .button { width:100%; }
  /* Nothing may push the page sideways. */
  .testi-slide, .quiz-card, .card-panel, .offer-card, .prog-card { max-width:100%; }
}

/* The journey orbs sit in a nowrap flex row; let them wrap on narrow
   screens instead of squeezing (and scroll only as a last resort). */
@media (max-width:900px){
  .journey-circles { flex-wrap:wrap; }
  .journey-circles .path-arrow { display:none; }
}

/* Content chips were 12.5px, below comfortable reading size on phones. */
.offer-meta li, .events-more-tags span, .offer-status { font-size:13px; }

/* The five dimension circles were a nowrap row of fixed-width discs, so
   between 761px and 1100px they overflowed both edges of the viewport.
   Let them wrap, and size the disc fluidly so it never exceeds its column. */
.dimensions { flex-wrap:wrap; justify-content:center; gap:clamp(0.75rem, 1.5vw, 1.25rem); }
.dimension {
  width:clamp(10.5rem, 17vw, 14.375rem);
  height:clamp(10.5rem, 17vw, 14.375rem);
  padding:clamp(1rem, 2vw, 1.875rem);
}
@media (max-width:760px){ .dimension { width:min(100%, 14.375rem); height:min(100%, 14.375rem); } }

/* Ultrawide: keep growing rather than stranding the page in the middle. */
@media (min-width:2560px){
  :root { --container-max:1760px; --container-narrow:1040px; }
}

/* The check-in quiz is the page's front door but its reading-width column
   left half a large screen empty. From 1200px up, redistribute it into two
   columns: the invitation on the left (sticky while she answers), the
   questions on the right. Below that it stays a single stacked column. */
@media (min-width:1200px){
  #check-in .container {
    width:min(100% - (var(--gutter) * 2), var(--container-max));
    max-width:none;
    display:grid;
    grid-template-columns:minmax(0, 0.8fr) minmax(0, 1.2fr);
    gap:clamp(2rem, 4vw, 4.5rem);
    align-items:start;
  }
  #check-in .section-header {
    grid-column:1; grid-row:1 / -1;
    text-align:left; margin-bottom:0;
    position:sticky; top:calc(var(--header-h) + 1.5rem);
  }
  #check-in .quiz-card,
  #check-in .quiz-result,
  #check-in .quiz-browse { grid-column:2; }
  #check-in .quiz-browse { text-align:left; }
  /* Two answer columns inside each question once there is room. */
  #check-in .quiz-card fieldset { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:8px 18px; }
  #check-in .quiz-card legend { grid-column:1 / -1; }
}

/* ---- Wide-screen use of space on the offering pages ---------------
   workshop.html and circles.html put every section in the narrow
   reading container, so desktops showed a 900px strip in a 1440px+
   window. Give the content that benefits from width more of it, while
   the registration form stays narrow (wide form fields hurt usability). */
@media (min-width:1200px){
  /* The two circle cards, the price banner and the "what is inside"
     panel read better across the full shell. */
  #circles .container.narrow {
    width:min(100% - (var(--gutter) * 2), var(--container-max));
  }
  /* Checklists become two columns instead of one long ribbon: the line
     length stays readable and the section stops looking half-empty. */
  .circles-for-you ul,
  .coaching-fit-list,
  .coaching-not-fit-list,
  .inside-list,
  .you-also-get ul {
    columns:2;
    column-gap:clamp(2rem, 4vw, 3.5rem);
  }
  .circles-for-you li,
  .coaching-fit-list li,
  .coaching-not-fit-list li,
  .inside-list li,
  .you-also-get li { break-inside:avoid; }
}

/* workshop.html: the registration form stays at a comfortable form width,
   but the surrounding "what to expect", "who this is for" and explore
   sections use the full shell rather than a 900px ribbon. */
@media (min-width:1200px){
  body[data-page="workshop"] section:not(#workshop) .container.narrow {
    width:min(100% - (var(--gutter) * 2), var(--container-max));
  }
}

/* The checklists themselves stayed capped at 780px inside that widened
   shell, so each of the two columns was ~362px and most points broke
   over two lines. Letting the list use the shell it already sits in
   gives each column ~540-610px, which holds one point per line (EN and
   FR) at every desktop width. min(100%, …) means it never exceeds the
   container, so narrower laptops just get the container width, and
   below 1200px the list is one column and wraps as before. */
@media (min-width:1200px){
  body[data-page="workshop"] .circles-for-you { max-width:min(100%, 1280px); }
}

/* ==================================================================
   SEPTEMBER 2026 AUDIT PASS
   Mobile hero order, static testimonials, two more doors, 2x2 modules,
   the compact coaching method, waiting-list forms, focus ring, and the
   French nav breakpoint. Appended last so it wins on equal specificity.
   ================================================================== */

/* Visible focus ring, in teal, for keyboard users. */
:focus-visible { outline:3px solid var(--deep-teal); outline-offset:3px; border-radius:4px; }
.button:focus-visible, .nav-cta:focus-visible { outline-offset:4px; }

/* ---- Hero: text first on phones, small lotus above the eyebrow ------ */
.hero-mark-mobile { display:none; }
@media (max-width:860px){
  .hero-content { order:0; max-width:none; text-align:center; }
  .brand-presence { display:none; }
  .hero-mark-mobile { display:block; width:140px; margin:0 auto 18px; }
  .hero-actions { justify-content:center; }
  .hero-inner { gap:0; }
  .hero { padding:36px 0 40px; }
}

/* ---- Who this is for: the closing line ------------------------------- */
.who-diff { font-size:15.5px; line-height:1.7; color:var(--soft); max-width:640px; margin:0 auto; }

/* ---- Two more doors ---------------------------------------------------- */
.two-doors { margin-top:44px; }
.two-doors-kicker { text-align:center; margin-bottom:16px; }
.two-doors-row { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:18px; max-width:900px; margin:0 auto; }
a.door-card { display:flex; flex-direction:column; gap:6px; background:var(--white); border:1px solid var(--border); border-radius:20px; padding:22px 24px; box-shadow:var(--small-shadow); color:inherit; text-decoration:none; transition:transform .15s, box-shadow .2s, border-color .2s; }
a.door-card:hover { transform:translateY(-3px); box-shadow:0 14px 30px rgba(54,105,95,.14); border-color:var(--water-mist); }
.door-card h3 { font-size:19px; margin:0; }
.door-card p { font-size:14.5px; line-height:1.6; color:var(--soft); margin:0; flex:1; }
.door-link { font-size:14px; font-weight:700; color:var(--deep-teal); margin-top:4px; }
@media (max-width:640px){ .two-doors-row { grid-template-columns:1fr; } }

/* ---- Check-in result: two next steps ---------------------------------- */
.quiz-result-cta { display:flex; flex-wrap:wrap; align-items:center; gap:12px 18px; }
.quiz-result-alt-link { font-size:14.5px; }
@media (max-width:767px){ .quiz-result-cta .button { width:100%; } .quiz-result-cta { justify-content:center; } }

/* ---- Tima block: the call for women who already know ------------------ */
.tima-call { margin-top:6px; font-size:15px; color:var(--soft); }

/* ---- Testimonials: a static grid, no carousel ------------------------- */
.testi-grid { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:20px; max-width:1000px; margin:0 auto; }
.testi-grid .testi-card { margin:0; display:flex; flex-direction:column; }
.testi-grid .testi-card blockquote { flex:1; }
.testi-grid figcaption { justify-content:center; }
@media (max-width:760px){ .testi-grid { grid-template-columns:1fr; } .testi-grid figcaption { justify-content:center; } }
@media (min-width:1440px){ .testi-grid { grid-template-columns:repeat(4, minmax(0,1fr)); max-width:none; } }

/* ---- Home FAQ: four accordions, then the full FAQ --------------------- */
#faq .faq-grid { max-width:none; }
.faq-more { margin:22px 0 0; }

/* ---- "Not ready yet?" under the primary action ------------------------ */
.not-ready { margin:18px 0 0; font-size:14.5px; color:var(--soft); }

/* ---- Modules: 2x2, no filters ----------------------------------------- */
.offer-grid-modules { grid-template-columns:repeat(2, minmax(0,1fr)); max-width:980px; margin:0 auto; }
@media (max-width:720px){ .offer-grid-modules { grid-template-columns:1fr; } }
.offer-meta li.status-open { background:var(--sage-light); color:var(--deep-teal); }
.offer-meta li.status-soon { background:var(--lotus-light); color:var(--dusty-rose); }

/* ---- Circles: the waiting-list form, in place ------------------------- */
.waitlist-form { display:flex; flex-direction:column; gap:10px; width:100%; text-align:left; margin-top:auto; }
.waitlist-note { font-size:13.5px; line-height:1.55; color:var(--soft); margin:0; }
.waitlist-row { display:flex; flex-wrap:wrap; gap:10px; }
.waitlist-row input[type="email"] { flex:1 1 200px; min-width:0; padding:13px 16px; border:1px solid var(--border); border-radius:999px; font-family:var(--sans); font-size:15px; background:#fff; }
.waitlist-row .button { flex-shrink:0; }
.waitlist-success { font-weight:600; color:var(--deep-teal); margin:auto 0 0; }
@media (max-width:760px){ .waitlist-form { text-align:center; } .waitlist-row .button { width:100%; } }

/* ---- Coaching: the call, and writing first ---------------------------- */
.call-cta { margin-top:10px; }
.call-under { font-size:13.5px; color:var(--soft); margin:12px 0 0; }
.call-write { font-size:14px; color:var(--soft); margin:6px 0 0; }
.text-link-button { background:none; border:0; padding:0; cursor:pointer; font-family:var(--sans); }
.hero-page .call-under { margin-top:14px; }
.coaching-note-trauma { border-left-color:var(--deep-teal); }

/* ---- Coaching: the method as one card, two columns of five words ------ */
.method-card { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:28px; max-width:760px; margin:0 auto; }
.method-col { text-align:center; }
.method-col .method-word { margin:0; }
.method-col .method-phase-sub { margin:2px 0 12px; }
.method-col-shine .method-word { color:var(--dusty-rose); }
.method-words { list-style:none; margin:0; padding:0; display:grid; gap:6px; }
.method-words li { padding:9px 0; border-bottom:1px solid rgba(54,105,95,.1); font-size:15.5px; color:var(--soft); }
.method-words li:last-child { border-bottom:0; }
.method-words li::first-letter { font-family:var(--serif); font-weight:700; font-size:1.2em; color:var(--deep-teal); }
.method-col-shine .method-words li::first-letter { color:var(--dusty-rose); }
@media (max-width:640px){ .method-card { grid-template-columns:1fr; } }

/* ---- About: role line and the partners block -------------------------- */
.about-role { font-size:13px; font-weight:600; letter-spacing:.04em; color:var(--dusty-rose); margin:14px 0 0; }
#partners .split-cta { grid-template-columns:repeat(2, minmax(0,1fr)); max-width:900px; }
@media (max-width:760px){ #partners .split-cta { grid-template-columns:1fr; } }
#partners .collab-card .text-link { margin-top:auto; align-self:flex-start; }

/* ---- AI page: brought into the house ----------------------------------- */
.ai-thread { font-family:var(--serif); font-style:italic; font-size:18px; line-height:1.5; color:var(--dusty-rose); max-width:640px; margin:0 auto 4px; }
.ai-offer .section-kicker { margin-bottom:8px; }
.offer-intro { font-size:14.5px; font-weight:400; font-style:italic; color:var(--soft); margin:0 0 12px; text-transform:none; letter-spacing:0; }
.hero-page .workshop-meta { margin:22px auto 0; }
.hero-page .workshop-meta + .hero-page-actions { margin-top:18px; }

/* ---- Values: plain markers instead of numbers ------------------------- */
.value-num { font-size:18px; }

/* ---- French nav: longer labels collapse to the Menu button earlier ---- */
@media (max-width:1180px) and (min-width:1025px){
  .nav.lang-fr .nav-toggle { display:block; }
  .nav.lang-fr .nav-links { display:none; position:absolute; top:100%; left:0; right:0; background:#fff; flex-direction:column; align-items:flex-start; padding:14px 16px 22px; gap:2px; border-bottom:1px solid var(--border); box-shadow:var(--small-shadow); }
  .nav.lang-fr .nav-links.open { display:flex; }
  .nav.lang-fr .nav-links > a { display:flex; align-items:center; width:100%; padding:13px 12px; border-radius:12px; font-size:15px; font-weight:600; }
  .nav.lang-fr .nav-links > a:hover, .nav.lang-fr .nav-links > a[aria-current="page"] { background:var(--sage-light); color:var(--deep-teal); }
  .nav.lang-fr .nav-links .nav-cta { margin-top:12px; width:100%; justify-content:center; padding:14px 18px; color:#fff !important; }
  .nav.lang-fr .nav-links .language-switch { margin:16px 0 0 12px; align-self:flex-start; }
}


/* ── Back to top ──────────────────────────────────────────────────
   A quiet round button in the bottom-right corner. It is in the DOM
   from the first paint but not visible, focusable or announced until
   the page has been scrolled about three quarters of a screen (see
   BackToTop.jsx), which is why visibility, not display, is animated.
   It sits under the contact modal's overlay (z-index 9999). */
.to-top {
  position: fixed;
  right: clamp(16px, 3vw, 28px);
  bottom: clamp(16px, 3vw, 28px);
  z-index: 900;
  width: 46px;
  height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, .35);
  border-radius: 50%;
  background: var(--deep-teal);
  color: #fff;
  cursor: pointer;
  box-shadow: 0 10px 26px rgba(23, 47, 42, .22);
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: opacity .25s ease, transform .25s ease, visibility .25s, background .2s;
}
.to-top.is-shown { opacity: 1; visibility: visible; transform: none; }
.to-top:hover { background: #2c554d; }
.to-top:active { transform: translateY(1px); }
.to-top svg { width: 20px; height: 20px; display: block; }
@media (prefers-reduced-motion: reduce) {
  .to-top { transition: opacity .01ms, visibility .01ms; transform: none; }
}
@media (max-width: 767px) {
  /* A comfortable tap target, clear of the iOS home indicator. */
  .to-top { width: 44px; height: 44px; bottom: max(16px, env(safe-area-inset-bottom)); }
}
@media print { .to-top { display: none; } }


/* ══════════════════════════════════════════════════════════════════
   PRICES: the launch price leads, the standard price follows
   ------------------------------------------------------------------
   One component (src/components/PriceTag.jsx) renders every public
   price, so the workshop, the circles and the modules cannot drift
   apart visually. The launch amount is large and in the brand's rose;
   the standard price sits under it in small grey type, struck through,
   with the word "usually" carrying the meaning in text as well.
   ================================================================== */
.price-tag { display:inline-flex; flex-direction:column; align-items:center; gap:3px; line-height:1.25; }
.price-tag-now { display:inline-flex; align-items:baseline; flex-wrap:wrap; justify-content:center; gap:6px; }
.price-tag-amount { font-family:var(--serif); font-weight:700; font-size:26px; color:var(--dusty-rose); }
.price-tag-unit { font-size:14.5px; color:var(--soft); }
.price-tag-was { font-family:var(--sans); font-size:12.5px; color:var(--soft); letter-spacing:.01em; }
/* The strikethrough is decoration; "usually" is what carries the meaning. */
.price-tag-was s { text-decoration-thickness:1px; text-underline-offset:2px; }

/* Home, the four doors: the launch price sits where the old chip did. */
.help-price-tag { align-items:flex-start; margin-top:14px; text-align:left; }
.help-price-tag .price-tag-now { background:var(--stone); border:1px solid rgba(54,105,95,.12); border-radius:999px; padding:5px 12px; }
.help-price-tag .price-tag-amount { font-size:17px; color:var(--deep-teal); }
.help-price-tag .price-tag-unit { font-size:13px; }
.help-price-tag .price-tag-was { padding-left:2px; }

/* Modules: one price per card, under the tags. */
.offer-card .offer-price { align-self:center; margin:0 0 16px; }
.offer-card .price-tag-amount { font-size:24px; }

@media (max-width:760px){
  /* The four doors centre on phones, so their prices centre too. */
  .help-price-tag { align-items:center; align-self:center; text-align:center; }
  .price-tag-amount { font-size:24px; }
  .wf-price .price-tag-amount { font-size:28px; }
  .price-banner .price-tag-amount { font-size:26px; }
}
