/* ============================================================
   SACRED COCOON — DESIGN SYSTEM
   ============================================================ */
:root {
  --moss:       #1E3320;
  --moss-deep:  #12200F;
  --sage:       #DCE6D2;
  --sage-deep:  #C6D4B6;
  --ember:      #A85A2E;
  --dawn:       #C9E0B8;
  --ink:        #1C2417;
  --paper:      #F7F8F2;
  /* legacy aliases so existing rules referencing --oat keep working */
  --oat:        var(--sage);
  --oat-deep:   var(--sage-deep);
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { background: var(--paper); color: var(--ink); font-family: "Nunito Sans", Arial, sans-serif; line-height: 1.7; font-size: 16px; -webkit-font-smoothing: antialiased; }
img { width: 100%; display: block; }
a { color: inherit; }
h1, h2, h3, h4 { font-family: "Poppins", Arial, sans-serif; font-weight: 600; letter-spacing: -0.01em; }
.container { max-width: 1240px; margin: 0 auto; }

/* ---------- color utility classes (use instead of inline styles) ---------- */
.text-ember   { color: var(--ember); }
.text-dawn    { color: var(--dawn); }
.text-moss    { color: var(--moss); }
.text-paper   { color: var(--paper); }
.text-muted   { color: #4a5546; }
.bg-paper     { background: var(--paper); }
.bg-oat       { background: var(--oat); }
.bg-moss      { background: var(--moss); color: var(--oat); }
.bg-moss-deep { background: var(--moss-deep); color: var(--oat); }

/* ---------- handwritten marginalia (signature detail) ---------- */
.note {
  font-family: "Nunito Sans", sans-serif;
  font-style: italic;
  font-weight: 600;
  font-size: 17px;
  color: var(--dawn);
  display: inline-block;
  margin: 6px 0 20px;
}

/* ---------- accent word treatment (e.g. "Mary" in headings) ---------- */
.accent-word {
  font-family: "Playfair Display", "Poppins", serif;
  font-style: italic;
  font-weight: 600;
  color: var(--ember);
}

/* ---------- eyebrow labels ---------- */
.eyebrow { font-size: 12px; letter-spacing: 3px; margin-bottom: 20px; font-weight: 600; text-transform: uppercase; }

/* ---------- buttons ---------- */
.button {
  display: inline-block; background: var(--ember); color: white; text-decoration: none;
  padding: 18px 32px; font-size: 12px; letter-spacing: 2px; font-weight: 600;
  border-radius: 2px; transition: transform .25s ease, opacity .25s ease; border: 1px solid transparent;
}
.button:hover { transform: translateY(-2px); opacity: .92; }
.button--outline-light { background: transparent; border-color: rgba(251,248,239,.55); color: var(--paper); }
.button--outline-dark  { background: transparent; border-color: rgba(30,51,32,.4); color: var(--ink); }
.button-row { display: flex; gap: 18px; flex-wrap: wrap; }

/* ============================================================
   NAV
   ============================================================ */
.site-nav {
  position: fixed; top: 20px; left: 50%; transform: translateX(-50%);
  z-index: 500; width: calc(100% - 80px); max-width: 1280px;
}
.nav-inner {
  margin: 0 auto; padding: 14px 24px;
  display: flex; align-items: center; justify-content: space-between;
  background: rgba(247,248,242,.92);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  border-radius: 50px;
  box-shadow: 0 8px 30px rgba(18,32,15,.18);
}
@media (max-width: 640px) { .site-nav { width: calc(100% - 32px); top: 14px; } }
/* use this class on any first-section that isn't a full-bleed .hero, so it clears the floating nav */
.nav-offset { padding-top: 150px; }
.logo { font-family: "Poppins", sans-serif; font-size: 19px; font-weight: 600; color: var(--moss); text-decoration: none; white-space: nowrap; }
.nav-links { display: flex; gap: 40px; }
.nav-links a { text-decoration: none; color: var(--ink); font-size: 14px; letter-spacing: .3px; }
.nav-links a:hover { color: var(--ember); }
.nav-cta {
  background: var(--ember); color: white; text-decoration: none;
  padding: 13px 26px; font-size: 11px; letter-spacing: 1.5px; font-weight: 600;
  border-radius: 2px; white-space: nowrap;
}
.nav-cta:hover { opacity: .9; }
@media (max-width: 860px) { .nav-links { display: none; } .nav-inner { padding: 18px 24px; } }

/* ============================================================
   FLOATING BUTTONS — Book a Session (right) + WhatsApp (left)
   ============================================================ */
.float-btn {
  position: fixed; bottom: 26px; z-index: 999;
  display: flex; align-items: center; gap: 10px;
  text-decoration: none; box-shadow: 0 10px 30px rgba(0,0,0,.28);
  transition: transform .25s ease;
}
.float-btn:hover { transform: translateY(-3px); }
.float-booking {
  right: 26px; background: var(--ember); color: white;
  padding: 16px 28px; border-radius: 50px; font-size: 11px; letter-spacing: 1.8px; font-weight: 600;
}
.float-whatsapp {
  left: 26px; background: #25D366; color: white;
  width: 58px; height: 58px; border-radius: 50%; justify-content: center;
}
.float-whatsapp svg { width: 28px; height: 28px; }
@media (max-width: 640px) {
  .float-booking { right: 16px; bottom: 16px; padding: 13px 20px; font-size: 10px; }
  .float-whatsapp { left: 16px; bottom: 16px; width: 50px; height: 50px; }
  .float-whatsapp svg { width: 24px; height: 24px; }
}

/* ============================================================
   SECTION RHYTHM
   ============================================================ */
section { padding: 130px 40px; }
.section-narrow { max-width: 900px; margin: 0 auto; }
.section-heading { max-width: 760px; margin: 0 auto 56px; text-align: center; }
.section-heading h2 { font-size: clamp(28px, 3.2vw, 42px); line-height: 1.2; }
@media (max-width: 720px) { section { padding: 90px 24px; } }

/* ============================================================
   HERO (large, full-bleed images)
   ============================================================ */
.hero { height: 100vh; min-height: 760px; position: relative; color: white; overflow: hidden; }
.hero > img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; z-index: 0; }
.hero-overlay { position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(18,32,15,.35) 0%, rgba(18,32,15,.25) 40%, rgba(18,32,15,.88) 100%); }
.hero-content { position: relative; z-index: 2; max-width: 860px; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; padding: 0 40px 110px; }
@media (max-width: 640px) { .hero-content { padding: 0 24px 90px; } }
@media (max-width: 720px) { .hero-dots { right: 24px; bottom: 24px; } }
.hero .eyebrow { color: var(--dawn); font-size: 14px; letter-spacing: 4px; }
.hero h1 { font-size: clamp(64px, 10.5vw, 150px); line-height: .92; margin-bottom: 18px; font-weight: 700; }
.hero-subtitle { font-family: "Poppins", sans-serif; font-weight: 500; font-style: normal; font-size: clamp(20px, 2.2vw, 26px); margin: 4px 0 0; opacity: .95; max-width: 580px; }
@media (max-width: 720px) { .hero-content { padding: 0 24px 70px; } }

/* smaller hero for inner pages */
.page-hero { background: var(--moss); color: var(--oat); padding: 150px 40px 100px; }
.page-hero-inner { max-width: 820px; margin: 0 auto; }
.page-hero h1 { font-size: clamp(48px, 7vw, 88px); color: var(--paper); line-height: 1.05; margin-bottom: 22px; }
.page-hero p { font-size: 19px; opacity: .88; max-width: 600px; }

/* ============================================================
   PILLARS / SHORT INTRO
   ============================================================ */
.short-intro { text-align: center; }
.short-intro .section-heading { margin-bottom: 36px; }
.short-intro p.lead { max-width: 640px; margin: 0 auto; font-size: 18px; color: #4a5546; }
.pillar-row { display: flex; justify-content: center; gap: 60px; margin-top: 54px; flex-wrap: wrap; }
.pillar { font-family: "Poppins", sans-serif; font-size: 21px; color: var(--moss); }

/* ============================================================
   STRUGGLE SECTION (do you struggle with...)
   ============================================================ */
/* layout: centre portrait flanked by two stacked boxes on each side, like a face + feature-callout layout */
.struggle-layout {
  display: grid; grid-template-columns: 1fr 1.1fr 1fr; gap: 24px; align-items: center;
  max-width: 1160px; margin: 0 auto;
}
.struggle-portrait { height: 100%; min-height: 460px; border-radius: 6px; overflow: hidden; }
.struggle-portrait img { width: 100%; height: 100%; object-fit: cover; }
.struggle-col { display: flex; flex-direction: column; gap: 24px; height: 100%; justify-content: center; }
.struggle-item { position: relative; text-align: left; padding: 30px 28px 30px 60px; background: var(--paper); border: 1px solid rgba(30,51,32,.12); }
.struggle-item .tick {
  position: absolute; left: 20px; top: 28px;
  width: 24px; height: 24px; border-radius: 50%; background: var(--moss);
  color: var(--paper); font-size: 13px; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
}
.struggle-item h4 { font-size: 17px; font-weight: 600; margin-bottom: 8px; }
.struggle-item p { font-size: 14px; color: #565f4e; }

/* ---------- curvy section divider ---------- */
.struggle-section { position: relative; padding-bottom: 80px; }
.curve-divider { display: block; width: 100%; height: 90px; margin-top: 70px; }
@media (max-width: 720px) { .curve-divider { height: 50px; } }

/* ---------- experience carousel: full-width sliding gallery ---------- */
.exp-carousel-wrap { position: relative; width: 100%; padding: 0 60px; }
.exp-carousel {
  display: flex; align-items: flex-end; gap: 16px;
  overflow-x: auto; scroll-snap-type: x mandatory;
  padding-bottom: 12px; scrollbar-width: none;
}
.exp-carousel::-webkit-scrollbar { display: none; }
.exp-carousel img {
  flex-shrink: 0; object-fit: cover; scroll-snap-align: start;
  border-radius: 4px;
}
/* height band shared by every tile so the row reads as one filmstrip; width varies by spec */
.exp-c-biglandscape    { width: 640px; height: 520px; }
.exp-c-normallandscape { width: 420px; height: 340px; }
.exp-c-bigportrait     { width: 380px; height: 520px; }
.exp-c-smallportrait   { width: 260px; height: 340px; }
.exp-carousel-arrow {
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 4;
  width: 48px; height: 48px; border-radius: 50%; border: none; cursor: pointer;
  background: var(--paper); color: var(--moss); font-size: 24px; line-height: 1;
  box-shadow: 0 6px 20px rgba(18,32,15,.25);
}
.exp-carousel-prev { left: 4px; }
.exp-carousel-next { right: 4px; }
@media (max-width: 720px) {
  .exp-carousel-wrap { padding: 0 44px; }
  .exp-c-biglandscape    { width: 78vw; height: 360px; }
  .exp-c-normallandscape { width: 60vw; height: 260px; }
  .exp-c-bigportrait     { width: 54vw; height: 360px; }
  .exp-c-smallportrait   { width: 42vw; height: 260px; }
  .exp-carousel-arrow { width: 38px; height: 38px; font-size: 20px; }
}

/* ---------- what you'll experience gallery (landscape/landscape/portrait x2 + wide) ---------- */
.experience-gallery {
  display: grid; grid-template-columns: 1.3fr 1fr 1fr; grid-template-rows: 260px 260px 320px;
  gap: 18px; max-width: 1300px; margin: 0 auto;
}
.experience-gallery img { width: 100%; height: 100%; object-fit: cover; }
.exp-landscape-1    { grid-column: 1; grid-row: 1; }
.exp-landscape-2    { grid-column: 1; grid-row: 2; }
.exp-portrait       { grid-column: 2; grid-row: 1 / span 2; }
.exp-portrait-2     { grid-column: 3; grid-row: 1 / span 2; }
.exp-landscape-wide { grid-column: 1 / span 3; grid-row: 3; }
@media (max-width: 900px) {
  .experience-gallery { grid-template-columns: 1fr 1fr; grid-template-rows: 220px 220px auto; }
  .exp-landscape-1 { grid-column: 1; grid-row: 1; }
  .exp-landscape-2 { grid-column: 1; grid-row: 2; }
  .exp-portrait    { grid-column: 2; grid-row: 1 / span 2; }
  .exp-portrait-2  { grid-column: 2; grid-row: 1 / span 2; display: none; }
  .exp-landscape-wide { grid-column: 1 / span 2; grid-row: 3; height: 240px; }
}
@media (max-width: 600px) {
  .experience-gallery { grid-template-columns: 1fr; grid-template-rows: auto; }
  .exp-landscape-1, .exp-landscape-2, .exp-portrait, .exp-landscape-wide { grid-column: 1; grid-row: auto; height: 240px; }
  .exp-portrait-2 { display: none; }
}
@media (max-width: 900px) {
  .struggle-layout { grid-template-columns: 1fr; }
  .struggle-portrait { order: -1; min-height: 320px; }
  .struggle-col { flex-direction: column; }
}
/* legacy alias kept so nothing else referencing struggle-grid breaks */
.struggle-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; max-width: 1100px; margin: 0 auto; }

/* ---------- home gallery (varied sizes, masonry-style like LBD) ---------- */
.home-gallery-grid {
  display: grid; grid-template-columns: repeat(6, 1fr); grid-auto-rows: 150px; gap: 14px;
  grid-auto-flow: dense;
  max-width: 1300px; margin: 0 auto;
}
.home-gallery-grid img { width: 100%; height: 100%; object-fit: cover; }
.home-gallery-grid .tall  { grid-row: span 2; }
.home-gallery-grid .wide  { grid-column: span 2; }
.home-gallery-grid .big   { grid-column: span 2; grid-row: span 2; }
.home-gallery-grid .small { grid-column: span 1; grid-row: span 1; }
@media (max-width: 860px) {
  .home-gallery-grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 150px; }
  .home-gallery-grid .wide, .home-gallery-grid .big { grid-column: span 2; }
}

/* ---------- stacked section: big image on top, text below (centered) ---------- */
.stacked-section { padding-top: 0; padding-bottom: 110px; }
.stacked-image { width: 100%; height: 62vh; min-height: 460px; max-height: 640px; }
.stacked-image img { width: 100%; height: 100%; object-fit: cover; }
.stacked-body { max-width: 820px; margin: 0 auto; text-align: center; padding-top: 64px; }
.stacked-body .section-heading { margin: 0 auto 28px; }
@media (max-width: 720px) {
  .stacked-image { height: 42vh; min-height: 320px; }
  .stacked-body { padding: 48px 24px 0; }
}

/* ---------- split section (image beside text, for 'What is' / 'Why these') ---------- */
.split-section { display: grid; grid-template-columns: 1fr 1fr; align-items: stretch; }
.split-section.image-wide { grid-template-columns: 3fr 2fr; }
.split-section .section-heading.compact h2 { font-size: clamp(32px, 4vw, 48px); }
.split-section .lead.compact { font-size: 16px; }
.split-section .split-image { min-height: 480px; }
.split-section .split-image img { width: 100%; height: 100%; object-fit: cover; }
.split-section .split-body { padding: 90px 70px; display: flex; flex-direction: column; justify-content: center; }
.split-section .split-body .section-heading { text-align: left; margin: 0 0 24px; }
.split-section.reverse { direction: rtl; }
.split-section.reverse .split-body { direction: ltr; }
.split-section.reverse .split-image { direction: ltr; }
@media (max-width: 860px) {
  .split-section, .split-section.reverse { grid-template-columns: 1fr; direction: ltr; }
  .split-section .split-image { min-height: 320px; }
  .split-section .split-body { padding: 70px 24px; }
}
@media (max-width: 860px) { .struggle-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 500px) { .struggle-grid { grid-template-columns: 1fr; } }

/* ============================================================
   CARD GRIDS (experiences, retreats)
   ============================================================ */
.card-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 44px; }
.card-grid.cols-4 { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.exp-card { background: var(--paper); border: 1px solid rgba(30,51,32,.1); display: flex; flex-direction: column; }
.exp-card img { height: 380px; object-fit: cover; }
.exp-card .body { padding: 36px; flex: 1; display: flex; flex-direction: column; }
.exp-card h3 { font-size: 28px; margin-bottom: 14px; }
.exp-card p { color: #4a5546; font-size: 15px; margin-bottom: 24px; flex: 1; }
.link-cta { color: var(--ember); font-weight: 600; font-size: 13px; letter-spacing: .5px; text-decoration: none; }
.link-cta:hover { text-decoration: underline; }
@media (max-width: 860px) { .card-grid, .card-grid.cols-4 { grid-template-columns: 1fr; } }

/* ---------- retreat overview cards (large) ---------- */
.retreat-card-lg { display: grid; grid-template-columns: 1.1fr 1fr; background: var(--paper); border: 1px solid rgba(30,51,32,.1); margin-bottom: 44px; min-height: 460px; }
.retreat-card-lg img { height: 100%; object-fit: cover; }
.retreat-card-lg .body { padding: 56px; display: flex; flex-direction: column; justify-content: center; }
.retreat-card-lg .tag { text-transform: uppercase; font-size: 11px; letter-spacing: 2px; color: var(--ember); font-weight: 600; margin-bottom: 16px; }
.retreat-card-lg h3 { font-size: 38px; margin-bottom: 10px; }
.retreat-card-lg .meta { font-size: 14px; color: #4a5546; margin-bottom: 22px; }
.retreat-card-lg .price-tag { font-family: "Poppins", sans-serif; font-size: 23px; color: var(--moss); margin-bottom: 26px; }
.retreat-card-lg p.desc { color: #4a5546; margin-bottom: 26px; font-size: 15px; }
@media (max-width: 860px) { .retreat-card-lg { grid-template-columns: 1fr; min-height: auto; } .retreat-card-lg img { height: 340px; } }

/* ============================================================
   WHO / COLLAGE SECTIONS
   ============================================================ */
.who { padding: 0; display: grid; grid-template-columns: 1fr 1fr; background: var(--moss); color: var(--oat); }
.who-gallery { position: relative; min-height: 720px; }
.who-img { position: absolute; object-fit: cover; box-shadow: 0 24px 50px rgba(0,0,0,.4); }
.who-img-1 { width: 60%; height: 52%; top: 8%; left: 8%; z-index: 2; }
.who-img-2 { width: 46%; height: 40%; bottom: 10%; left: 28%; z-index: 3; border: 7px solid var(--moss); }
.who-img-3 { width: 40%; height: 36%; top: 10%; right: 6%; z-index: 1; }
.who-content { padding: 90px 70px; display: flex; flex-direction: column; justify-content: center; }
.who h2 { font-size: clamp(40px, 5vw, 66px); line-height: 1.1; margin-bottom: 10px; color: var(--paper); }
.who ul { list-style: none; }
.who li { border-top: 1px solid rgba(220,230,210,.2); padding: 18px 0; font-size: 16px; }
.who li:last-child { border-bottom: 1px solid rgba(220,230,210,.2); }
@media (max-width: 860px) { .who { grid-template-columns: 1fr; } .who-gallery { min-height: 480px; } .who-content { padding: 70px 24px; } }

/* ============================================================
   ABOUT MARY TEASER (home)
   ============================================================ */
.about-teaser { display: grid; grid-template-columns: 1fr 1fr; background: var(--oat); }
.about-teaser img { height: 100%; min-height: 560px; object-fit: cover; }
.about-teaser .body { padding: 90px 70px; display: flex; flex-direction: column; justify-content: center; }
.about-teaser h2 { font-size: clamp(38px, 5vw, 56px); margin-bottom: 22px; }
.about-teaser p { color: #4a5546; margin-bottom: 26px; font-size: 16px; }
@media (max-width: 860px) { .about-teaser { grid-template-columns: 1fr; } .about-teaser img { min-height: 380px; } .about-teaser .body { padding: 70px 24px; } }

/* ============================================================
   TESTIMONIALS / TRANSFORMATION STORIES
   ============================================================ */
.testimonial-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 240px; gap: 28px;
  grid-auto-flow: dense;
  max-width: 1200px; margin: 0 auto;
}
.testimonial-card {
  position: relative; grid-row: span 2; overflow: hidden;
  display: flex; align-items: flex-end;
  border: 1px solid rgba(220,230,210,.15);
}
.testimonial-card.card-tall { grid-row: span 3; }
.testimonial-card.card-wide { grid-column: span 2; grid-row: span 2; }
.testimonial-card.card-landscape { grid-column: span 2; grid-row: span 2; }
.testimonial-card .quote-name { font-weight: 700; font-size: 15px; color: var(--paper); display: block; margin-bottom: 4px; }
.testimonial-card img {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 1;
}
.testimonial-card .scrim {
  position: absolute; inset: 0; z-index: 2;
  background: linear-gradient(to top, rgba(18,32,15,.94) 10%, rgba(18,32,15,.55) 45%, rgba(18,32,15,0) 75%);
}
.testimonial-card .caption { position: relative; z-index: 3; padding: 30px 28px; }
.testimonial-card p.quote { font-family: "Poppins", sans-serif; font-style: normal; font-weight: 500; font-size: 18px; line-height: 1.5; margin-bottom: 14px; color: var(--paper); }
.testimonial-card .who-label { font-size: 13px; letter-spacing: .5px; opacity: .8; color: var(--sage); }
@media (max-width: 860px) {
  .testimonial-grid { grid-template-columns: 1fr; grid-auto-rows: 380px; }
  .testimonial-card, .testimonial-card.card-tall, .testimonial-card.card-wide, .testimonial-card.card-landscape { grid-column: span 1; grid-row: span 1; }
}

/* ============================================================
   FAQ
   ============================================================ */
.faq-list { max-width: 780px; margin: 0 auto; }
.faq-item { border-top: 1px solid rgba(30,51,32,.15); padding: 28px 0; }
.faq-item:last-child { border-bottom: 1px solid rgba(30,51,32,.15); }
.faq-item h4 { font-size: 21px; margin-bottom: 10px; font-weight: 500; }
.faq-item p { color: #4a5546; font-size: 15px; }

/* ============================================================
   ITINERARY
   ============================================================ */
.itinerary-list { max-width: 820px; margin: 0 auto; }
.itin-day { display: grid; grid-template-columns: 120px 1fr; gap: 30px; border-top: 1px solid rgba(220,230,210,.2); padding: 30px 0; }
.itin-day:last-child { border-bottom: 1px solid rgba(220,230,210,.2); }
.itin-day .day-label { font-family: "Poppins", sans-serif; font-size: 22px; color: var(--dawn); }
.itin-day h4 { font-size: 19px; margin-bottom: 8px; font-weight: 500; }
.itin-day p { color: rgba(220,230,210,.8); font-size: 14px; }
@media (max-width: 600px) { .itin-day { grid-template-columns: 70px 1fr; } }

/* ============================================================
   BOOKING PAGE
   ============================================================ */
.booking-options { display: grid; grid-template-columns: repeat(4, 1fr); gap: 26px; max-width: 1080px; margin: 0 auto; }
.booking-option { background: var(--paper); border: 1px solid rgba(30,51,32,.15); padding: 44px 28px; text-align: center; text-decoration: none; color: var(--ink); transition: .25s ease; }
.booking-option:hover { border-color: var(--ember); transform: translateY(-4px); }
.booking-option .icon-num { font-family: "Poppins", sans-serif; font-size: 32px; color: var(--ember); margin-bottom: 16px; display: block; }
.booking-option h3 { font-size: 20px; margin-bottom: 10px; }
.booking-option p { color: #4a5546; font-size: 14px; }
@media (max-width: 860px) { .booking-options { grid-template-columns: 1fr 1fr; } }
@media (max-width: 500px) { .booking-options { grid-template-columns: 1fr; } }

/* ============================================================
   HOME GALLERY (retreat detail page)
   ============================================================ */
.gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.gallery img { height: 300px; object-fit: cover; }
@media (max-width: 720px) { .gallery { grid-template-columns: 1fr 1fr; } .gallery img { height: 220px; } }

/* ============================================================
   HIGHLIGHTS (numbered experience list, retreat detail page)
   ============================================================ */
.experience-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 54px 34px; max-width: 1160px; margin: 0 auto; }
.experience { background: var(--paper); border: 1px solid rgba(30,51,32,0.1); }
.experience img { height: 420px; object-fit: cover; }
.experience .body { padding: 36px; }
.experience .num { font-family: "Poppins", sans-serif; font-size: 34px; color: var(--ember); }
.experience h3 { font-size: 30px; margin: 12px 0 14px; line-height: 1.1; }
.experience p { color: #4a5546; font-size: 15px; }
@media (max-width: 860px) { .experience-grid { grid-template-columns: 1fr; } }

/* ============================================================
   QUOTE BLOCK
   ============================================================ */
.quote-block { text-align: center; }
blockquote { font-family: "Poppins", sans-serif; font-style: normal; font-weight: 600; font-size: clamp(28px, 4vw, 52px); line-height: 1.3; max-width: 900px; margin: 0 auto; }

/* ============================================================
   INVESTMENT / PRICING
   ============================================================ */
.investment { text-align: center; }
.price { font-family: "Poppins", sans-serif; font-size: clamp(64px, 10vw, 124px); margin-top: 4px; color: var(--dawn); }
.per-person { margin-bottom: 60px; opacity: .7; }
.included { max-width: 650px; margin: 0 auto 50px; text-align: left; }
.included h3 { font-size: 32px; margin-bottom: 20px; }
.included ul { list-style: none; }
.included li { border-top: 1px solid rgba(220,230,210,.18); padding: 14px 0; }
.small { margin-top: 24px; opacity: .6; font-size: 13px; }

/* ============================================================
   FINAL CTA
   ============================================================ */
.final-cta { text-align: center; }
.final-cta p { margin: 26px 0; font-size: 20px; opacity: .88; }
.final-cta .button-row { justify-content: center; }

/* ============================================================
   FOOTER
   ============================================================ */
footer { background: var(--moss-deep); color: rgba(220,230,210,.75); padding: 72px 40px 32px; }
.footer-grid {
  max-width: 1240px; margin: 0 auto 50px;
  display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 40px;
}
.footer-col-title { font-size: 12px; letter-spacing: 2px; color: var(--paper); font-weight: 600; margin-bottom: 18px; text-transform: uppercase; }
.footer-col a { display: block; text-decoration: none; color: rgba(220,230,210,.72); font-size: 14px; margin-bottom: 12px; }
.footer-col a:hover { color: var(--dawn); }
.footer-brand { font-family: "Poppins", sans-serif; font-size: 16px; letter-spacing: 2.5px; color: var(--paper); font-weight: 600; margin-bottom: 16px; }
.footer-blurb { font-size: 13px; line-height: 1.7; opacity: .75; margin-bottom: 22px; max-width: 320px; }
.footer-social { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 50%; border: 1px solid rgba(220,230,210,.35); color: rgba(220,230,210,.85); text-decoration: none; }
.footer-social:hover { border-color: var(--dawn); color: var(--dawn); }
.footer-social svg { width: 18px; height: 18px; }
.footer-bottom { max-width: 1240px; margin: 0 auto; padding-top: 28px; border-top: 1px solid rgba(220,230,210,.15); display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px; }
.footer-legal { display: flex; gap: 26px; flex-wrap: wrap; font-size: 12px; letter-spacing: .4px; }
.footer-legal a { text-decoration: none; color: rgba(220,230,210,.7); }
.footer-legal a:hover { color: var(--dawn); }
.footer-copyright { font-size: 11px; letter-spacing: .8px; opacity: .55; }
@media (max-width: 860px) {
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-col-brand { grid-column: 1 / span 2; }
}
@media (max-width: 600px) {
  footer { padding: 56px 24px 110px; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-col-brand { grid-column: 1; }
  .footer-bottom { flex-direction: column; align-items: flex-start; }
}

/* ============================================================
   SHARED SECTION BACKGROUNDS (used across inner pages)
   ============================================================ */
.highlights { background: var(--oat); }
.retreat { background: var(--paper); }
.mary { padding: 0; display: grid; grid-template-columns: 1fr 1fr; min-height: 700px; background: var(--paper); }
.mary-image img { height: 100%; object-fit: cover; }
.mary-content { padding: 90px 70px; display: flex; flex-direction: column; justify-content: center; }
.mary h2 { font-size: clamp(54px, 7vw, 88px); margin-bottom: 26px; }
.mary-content p { margin-bottom: 16px; color: #4a5546; }
@media (max-width: 860px) { .mary { grid-template-columns: 1fr; } .mary-image { height: 480px; } .mary-content { padding: 70px 24px; } }

.investment { background: var(--moss-deep); color: var(--oat); }
.investment h2 { color: var(--paper); }
.investment .button { background: var(--paper); color: var(--ink); }

.final-cta { background: var(--moss); color: var(--oat); }
.final-cta h2 { color: var(--paper); }

.break-free { background: var(--oat-deep); text-align: center; }
.break-free p { max-width: 700px; margin: 24px auto; color: #4a5546; }

.intro { max-width: 1050px; margin: auto; text-align: center; background: var(--paper); }
.intro h2 { font-size: clamp(46px, 7vw, 92px); line-height: 1.04; }
.intro-text { max-width: 640px; margin: 34px auto 0; font-size: 18px; color: #4a5546; }

.page-hero-inner { max-width: 820px; margin: 0 auto; }

/* ---------- hero stat row (retreat detail pages) ---------- */
.hero-stats { display: flex; gap: 46px; margin-bottom: 34px; }
.stat { display: flex; flex-direction: column; }
.stat-num { font-family: "Poppins", sans-serif; font-size: clamp(34px, 4vw, 52px); line-height: 1; color: var(--dawn); }
.stat-label { font-size: 10px; letter-spacing: 2px; margin-top: 8px; opacity: .8; }
.note-dark { color: var(--dawn); }
.note-light { color: var(--ember); }

/* ============================================================
   v9 UPDATE — layout fixes, type scale, full-page gallery, a11y
   (appended; overrides earlier rules of the same selector)
   ============================================================ */
:root { --ember-text: #8F4A22; }               /* darker ember = readable on sage/paper */
.text-ember { color: var(--ember-text); }
html { -webkit-text-size-adjust: 100%; }
body { overflow-x: hidden; }
:focus-visible { outline: 3px solid var(--ember); outline-offset: 3px; }
.skip-link { position: absolute; left: 12px; top: -64px; z-index: 1000; background: var(--moss); color: var(--paper); padding: 10px 16px; border-radius: 4px; }
.skip-link:focus { top: 12px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }

/* ---------- type scale (all pages): clearer labels, calmer headings ---------- */
.eyebrow { font-size: 14px; letter-spacing: 2.4px; margin-bottom: 14px; }
.section-heading { margin-bottom: 44px; }
.section-heading h2 { font-size: clamp(24px, 2.6vw, 34px); line-height: 1.25; }
section { padding: 96px 40px; }
@media (max-width: 720px) { section { padding: 64px 20px; } .eyebrow { font-size: 13px; letter-spacing: 2px; } }
.struggle-item h3 { font-size: 17px; font-weight: 600; margin-bottom: 8px; }
.lead { font-size: 17px; color: #4A5546; }

/* ---------- hero: no inherited section padding, aligned with nav logo ---------- */
.hero { padding: 0; height: 100svh; min-height: 600px; }
.hero-content { max-width: none; margin: 0; padding: 120px 64px 80px; }
.hero-content > * { max-width: 860px; }
.hero h1 { font-size: clamp(44px, 8.5vw, 120px); line-height: 1; }
.hero .eyebrow { color: #B5D1A2; }
@media (max-width: 640px) { .hero-content { padding: 110px 24px 100px; } .hero-subtitle { font-size: 18px; } }

/* ---------- nav: always above floating buttons, mobile menu ---------- */
.site-nav { z-index: 600; }
.nav-toggle { display: none; background: none; border: 0; cursor: pointer; width: 44px; height: 44px; padding: 10px; flex-direction: column; justify-content: center; gap: 5px; }
.nav-toggle span { display: block; height: 2px; background: var(--moss); border-radius: 2px; }
@media (max-width: 860px) {
  .nav-inner { padding: 8px 12px 8px 22px; }
  .nav-toggle { display: flex; }
  .site-nav.open .nav-links { display: flex; flex-direction: column; gap: 0; position: absolute; top: calc(100% + 8px); left: 0; right: 0; background: var(--paper); border-radius: 24px; padding: 10px; box-shadow: 0 12px 30px rgba(18,32,15,.2); }
  .site-nav.open .nav-links a { padding: 14px 16px; font-size: 16px; }
}

/* ---------- floating buttons: below nav, safe-area aware, never over the header ---------- */
.float-btn { z-index: 400; }
@media (max-width: 640px) {
  .float-btn { bottom: calc(14px + env(safe-area-inset-bottom)); }
  .float-booking { left: 74px; right: 14px; justify-content: center; padding: 15px 16px; font-size: 12px; }
  .float-whatsapp { left: 14px; }
}

/* ---------- "what is" section: full-width image, text below ---------- */
.stacked-section { padding: 0 0 72px; }
.stacked-image { height: 58svh; min-height: 300px; max-height: 640px; }
.stacked-body { padding: 48px 24px 0; }
.stacked-body .lead { margin: 0 0 20px; }
.stacked-body .lead:last-child { margin: 0; }

/* ---------- full-page gallery carousel ---------- */
.gallery-section { padding: 0; height: 100svh; min-height: 620px; display: flex; flex-direction: column; background: var(--oat); }
.gallery-head { display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 16px 24px; padding: 92px 64px 18px; }
.gallery-head .eyebrow { margin-bottom: 6px; }
.gallery-head h2 { font-size: clamp(24px, 2.6vw, 34px); line-height: 1.2; }
.gallery-head .button-row { gap: 12px; }
.gallery-head .button { padding: 14px 22px; }
.exp-carousel-wrap { flex: 1; min-height: 0; width: 100%; padding: 0; position: relative; }
.exp-carousel {
  height: 100%; display: grid; align-items: stretch;
  grid-auto-flow: column dense; grid-template-rows: 1fr 1fr;
  grid-auto-columns: clamp(200px, 22vw, 360px); gap: 10px;
  overflow-x: auto; overflow-y: hidden; scroll-snap-type: x proximity;
  padding: 0 10px 10px; scrollbar-width: none; overscroll-behavior-x: contain;
}
.exp-carousel img { width: 100%; height: 100%; min-width: 0; min-height: 0; border-radius: 6px; object-fit: cover; scroll-snap-align: start; }
.exp-carousel .tall { grid-row: span 2; }
.exp-carousel .wide { grid-column: span 2; }
.exp-carousel .big  { grid-row: span 2; grid-column: span 2; }
.exp-carousel-prev { left: 18px; } .exp-carousel-next { right: 18px; }
.exp-carousel-arrow { width: 48px; height: 48px; }
@media (max-width: 720px) {
  .gallery-head { padding: 80px 20px 12px; }
  .gallery-head .button { padding: 11px 14px; font-size: 11px; }
  .exp-carousel { grid-auto-columns: 58vw; }
  .exp-carousel-prev { left: 8px; } .exp-carousel-next { right: 8px; }
  .exp-carousel-arrow { width: 40px; height: 40px; }
}

/* ---------- About the Coach: one screen, heading on top ---------- */
.about-teaser { padding: 0; min-height: min(100svh, 740px); }
.about-teaser img { height: 100%; min-height: 0; }
.about-teaser .body { padding: 88px 56px 56px; }
.about-kicker { font-size: 20px; font-weight: 600; color: var(--ember-text); margin-bottom: 8px; letter-spacing: .2px; }
.about-name { font-size: clamp(32px, 4vw, 46px); line-height: 1.1; margin-bottom: 20px; }
.about-teaser p { font-size: 15.5px; line-height: 1.7; margin-bottom: 16px; color: #4A5546; }
.about-teaser .button-row { margin-top: 10px; }
@media (max-width: 860px) { .about-teaser img { height: 42svh; min-height: 280px; } .about-teaser .body { padding: 48px 24px 64px; } }

/* ---------- FAQ / final CTA ---------- */
.faq-item h3 { font-size: 18px; font-weight: 600; margin-bottom: 8px; }
.faq-item a { color: var(--ember-text); }
.final-cta { padding: 80px 24px; }
.final-cta h2 { font-size: clamp(24px, 3vw, 36px); }
.final-cta p { font-size: 17px; }
.button--outline-light { color: var(--paper); }

/* ---------- footer ---------- */
.footer-grid { grid-template-columns: 1.5fr repeat(4, 1fr); gap: 36px; }
.footer-col-title { font-family: "Poppins", sans-serif; }
.footer-text { font-size: 14px; margin-bottom: 12px; color: rgba(220,230,210,.75); }
.footer-socials { display: flex; gap: 10px; }
.footer-social svg { width: 18px; height: 18px; }
.footer-copyright { opacity: .8; font-size: 12px; }
.footer-top { font-size: 12px; color: rgba(220,230,210,.8); text-decoration: none; }
.footer-top:hover { color: var(--dawn); }
.footer-col a { padding: 2px 0; }
@media (max-width: 1000px) { .footer-grid { grid-template-columns: 1fr 1fr 1fr; } .footer-col-brand { grid-column: 1 / -1; } }
@media (max-width: 600px) { .footer-grid { grid-template-columns: 1fr 1fr; } }

/* ============================================================
   v10 UPDATE
   ============================================================ */
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.nav-links a[aria-current="page"] { color: var(--ember-text); font-weight: 600; }
@media (max-width: 560px) { .nav-cta { display: none; } }
.mary h1 { font-size: clamp(48px, 6vw, 80px); margin-bottom: 26px; }
.itin-day h3 { font-size: 19px; margin-bottom: 8px; font-weight: 500; }
.footer-contact { font-size: 14px; }

/* "What is": image left, text right, on sage so it differs from the paper-coloured "struggle" section */
.split-what { padding: 0; display: grid; grid-template-columns: 1fr 1fr; min-height: min(88svh, 720px); }
.split-what-img { position: relative; min-height: 340px; }
.split-what-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.split-what-body { padding: 96px 64px; display: flex; flex-direction: column; justify-content: center; }
.split-what .section-heading { text-align: left; margin: 0 0 24px; max-width: none; }
.split-what .lead { margin: 0 0 18px; max-width: 560px; }
.split-what .lead:last-child { margin-bottom: 0; }
@media (max-width: 860px) {
  .split-what { grid-template-columns: 1fr; min-height: 0; }
  .split-what-img { height: 42svh; min-height: 280px; }
  .split-what-body { padding: 48px 24px 64px; }
}

/* gallery: centred heading, buttons below the carousel */
.gallery-head { justify-content: center; text-align: center; display: block; padding: 92px 24px 14px; }
.gallery-head .eyebrow { margin-bottom: 6px; }
.gallery-foot { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; padding: 16px 20px 24px; }
.gallery-foot .button { padding: 14px 24px; }
@media (max-width: 720px) { .gallery-head { padding: 78px 20px 10px; } .gallery-foot { padding: 12px 16px 18px; gap: 8px; } .gallery-foot .button { padding: 12px 16px; font-size: 11px; } }

/* About the Coach: fits one screen on desktop */
.about-teaser { min-height: 100svh; height: auto; }
.about-img { position: relative; min-height: 320px; }
.about-img img { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 0; object-fit: cover; }
.about-teaser .body { padding: 92px 56px 40px; }
.about-teaser p { font-size: 15px; line-height: 1.6; margin-bottom: 14px; }
@media (max-width: 860px) { .about-teaser { min-height: 0; } .about-img { height: 40svh; min-height: 280px; } .about-teaser .body { padding: 44px 24px 64px; } }

/* ============================================================
   v11 UPDATE — upcoming events, full-size gallery, spacing
   ============================================================ */
/* what-is: bigger image, tighter text */
.split-what { grid-template-columns: 1.45fr 1fr; min-height: min(92svh, 760px); }
.split-what-body { padding: 56px 44px; }
.split-what .lead { font-size: 16px; line-height: 1.65; margin-bottom: 14px; }
.split-what .section-heading { margin-bottom: 18px; }
@media (max-width: 860px) { .split-what { grid-template-columns: 1fr; } .split-what-img { height: 46svh; } .split-what-body { padding: 36px 24px 52px; } }

/* less dead space around the gallery heading */
.struggle-section { padding-bottom: 0; }
.curve-divider { margin-top: 36px; height: 70px; }
.gallery-head { padding: 24px 24px 10px; }
@media (max-width: 720px) { .gallery-head { padding: 18px 20px 8px; } .curve-divider { height: 40px; margin-top: 28px; } }

/* gallery: full photos at full height, flex filmstrip */
.exp-carousel-wrap { position: relative; flex: 1; min-height: 0; }
.exp-carousel { position: absolute; inset: 0; height: auto; display: flex; align-items: stretch; gap: 10px; overflow-x: auto; overflow-y: hidden; padding: 0 10px 8px; scroll-snap-type: x proximity; }
.exp-carousel > img { flex: none; width: auto; max-width: none; height: 100%; border-radius: 6px; object-fit: cover; }
.exp-stack { flex: none; height: 100%; aspect-ratio: 3 / 4; display: flex; flex-direction: column; gap: 10px; scroll-snap-align: start; }
.exp-stack img { width: 100%; height: calc(50% - 5px); border-radius: 6px; object-fit: cover; }

/* upcoming events */
.upcoming { padding-top: 80px; padding-bottom: 72px; }
.event-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; max-width: 1100px; margin: 0 auto; }
.event-card { background: #fff; border: 1px solid rgba(30,51,32,.14); border-radius: 8px; padding: 30px 28px; display: flex; flex-direction: column; align-items: flex-start; }
.event-date { font-family: "Poppins", sans-serif; color: var(--moss); margin: 0 0 8px; line-height: 1; }
.event-day { font-size: 44px; font-weight: 600; }
.event-month { font-size: 18px; font-weight: 500; }
.event-type { font-size: 14px; font-weight: 600; color: var(--ember-text); margin: 0 0 4px; }
.event-card h3 { font-size: 22px; line-height: 1.25; margin: 0 0 8px; }
.event-desc { font-size: 15px; color: #4A5546; margin: 0 0 20px; flex: 1; }
.event-card .button { padding: 14px 24px; }
.event-links { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.event-more { color: inherit; font-size: 14px; font-weight: 600; }
.event-card--retreat { background: var(--moss); border-color: var(--moss); }
.event-card--retreat .event-date, .event-card--retreat h3 { color: var(--paper); }
.event-card--retreat .event-type { color: var(--dawn); }
.event-card--retreat .event-desc { color: var(--sage); }
.event-card--retreat .event-more { color: var(--paper); }
.upcoming-note { text-align: center; margin-top: 36px; font-size: 15px; color: #4A5546; }
.upcoming-note a { color: var(--ember-text); font-weight: 600; }
.hero-cta { margin-top: 26px; }
.booking-options--3 { grid-template-columns: repeat(3, 1fr); max-width: 960px; }
@media (max-width: 860px) { .event-grid { grid-template-columns: 1fr; } .booking-options--3 { grid-template-columns: 1fr; } }

/* ---- v12 additions ---- */
.event-card--hyd { background: var(--sage); border-color: rgba(30,51,32,.25); }
.event-card--hyd .event-date { color: var(--moss); }
.event-card--blr { background: var(--sage-deep); border-color: rgba(30,51,32,.25); }
.event-list { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 22px; padding: 0; }
.event-list li { font-size: 12.5px; font-weight: 600; padding: 4px 11px; border-radius: 999px; background: rgba(255,255,255,.7); color: var(--moss); }
.split-what strong { color: var(--moss); font-weight: 700; }
.exp-carousel > img.exp-wide { width: auto; height: 100%; max-width: none; object-fit: contain; }

.page-hero--short { padding: 130px 40px 56px; }
.page-hero--short h1 { font-size: clamp(38px, 5.5vw, 64px); margin-bottom: 14px; }
.jump-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.jump-row a { font-size: 13px; font-weight: 600; text-decoration: none; padding: 8px 16px; border: 1px solid rgba(247,248,242,.45); border-radius: 999px; color: var(--paper); }
.jump-row a:hover { background: rgba(247,248,242,.14); }
.offer-section { padding: 80px 24px; }
.offer-section[id] { scroll-margin-top: 90px; }
.offer-box { max-width: 900px; margin: 0 auto; background: var(--moss); color: var(--oat); border-radius: 8px; padding: 48px; display: flex; gap: 40px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.offer-box h3 { color: var(--paper); font-size: 28px; margin-bottom: 8px; }
.offer-box p { max-width: 520px; opacity: .9; }
.group-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; max-width: 900px; margin: 0 auto; }
.group-card { background: #fff; border: 1px solid rgba(30,51,32,.14); border-radius: 8px; padding: 32px 28px; display: flex; flex-direction: column; align-items: flex-start; }
.group-card h3 { font-size: 22px; margin-bottom: 8px; }
.group-card p { font-size: 15px; color: #4A5546; margin-bottom: 20px; flex: 1; }
.why-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 34px 44px; max-width: 900px; margin: 0 auto; }
.why-item h3 { font-size: 19px; margin-bottom: 6px; }
.why-item p { font-size: 15px; color: #4A5546; }
.why-item .why-num { font-family: "Poppins", sans-serif; color: var(--ember-text); font-size: 13px; font-weight: 600; letter-spacing: 2px; display: block; margin-bottom: 8px; }
@media (max-width: 860px) { .group-grid, .why-grid { grid-template-columns: 1fr; } .offer-box { padding: 32px 24px; } .page-hero--short { padding: 110px 24px 44px; } }

/* ---- v13 additions ---- */
.event-group { max-width: 1100px; margin: 0 auto 44px; }
.event-group-title { font-size: 15px; letter-spacing: 3px; text-transform: uppercase; color: var(--ember-text); text-align: center; margin: 0 0 20px; }
.event-grid--2 { grid-template-columns: repeat(2, 1fr); max-width: 820px; }
.event-grid--1 { grid-template-columns: 1fr; max-width: 820px; }
.event-card h4 { font-family: "Poppins", sans-serif; font-size: 22px; line-height: 1.25; margin: 0 0 8px; font-weight: 600; }
.event-card--retreat h4 { color: var(--paper); }
.event-card--retreat .event-list li { background: rgba(255,255,255,.14); color: var(--paper); }
.event-card .button { background: var(--moss); color: var(--paper); padding: 16px 28px; font-size: 13px; box-shadow: 0 2px 0 rgba(0,0,0,.18); }
.event-card--retreat .button { background: var(--paper); color: var(--moss); }
.event-card--retreat .event-more { text-decoration: underline; }
.button--outline-dark { border: 2px solid var(--moss); color: var(--moss); font-weight: 700; }
.offer-section--flush { padding-top: 0; }
.offer-box { background: #fff; color: var(--ink); border: 1px solid rgba(30,51,32,.18); }
.offer-box h2 { font-size: clamp(24px, 2.8vw, 32px); margin-bottom: 8px; color: var(--moss); }
.offer-box p { opacity: 1; color: #4A5546; }
.offer-box .button { background: var(--moss); color: var(--paper); font-size: 13px; padding: 16px 28px; }
.group-card .button { background: var(--moss); color: var(--paper); font-size: 13px; }
/* retreat page hero */
.hero--retreat .accent-word { font-family: "Poppins", sans-serif; font-style: normal; font-weight: 700; color: var(--dawn); }
.hero--retreat .hero-stats { display: inline-flex; gap: 0; margin: 18px 0 14px; background: rgba(18,32,15,.62); border: 1px solid rgba(255,255,255,.22); border-radius: 8px; align-self: flex-start; }
.hero--retreat .stat { padding: 14px 26px; border-right: 1px solid rgba(255,255,255,.2); }
.hero--retreat .stat:last-child { border-right: 0; }
.hero--retreat .stat-num { color: #fff; font-size: clamp(24px, 3vw, 36px); }
.hero--retreat .stat-label { opacity: 1; color: var(--sage); font-size: 11px; }
.retreat-place { font-size: 15px; margin: 0 0 22px; opacity: .95; letter-spacing: .5px; }
.hero--retreat .button { align-self: flex-start; padding: 14px 26px; font-size: 12px; }
@media (max-width: 560px) { .hero--retreat .stat { padding: 12px 14px; } }
/* wheel */
.wheel { display: flex; align-items: center; justify-content: center; gap: 44px; flex-wrap: wrap; margin-top: 56px; text-align: left; }
.wheel svg { width: 240px; height: 240px; flex: none; }
.wheel .w1 { stroke: #4F7F55; } .wheel .w2 { stroke: #4F7F55; } .wheel .w3 { stroke: #7FA06B; }
.wheel .w4 { stroke: #C6D4B6; } .wheel .w5 { stroke: #D9A066; } .wheel .w6 { stroke: #A85A2E; }
.wheel-big { font-family: "Poppins", sans-serif; font-size: 40px; font-weight: 600; fill: var(--moss); }
.wheel-small { font-size: 9px; letter-spacing: 2px; fill: #4A5546; }
.wheel-cap { font-family: "Poppins", sans-serif; font-weight: 600; font-size: 18px; margin-bottom: 14px; color: var(--moss); }
.wheel-legend { list-style: none; padding: 0; margin: 0; }
.wheel-legend li { display: flex; align-items: center; gap: 12px; padding: 5px 0; font-size: 15px; color: #4A5546; }
.sw { width: 14px; height: 14px; border-radius: 3px; flex: none; display: inline-block; }
.sw.w1 { background: #4F7F55; } .sw.w2 { background: #4F7F55; } .sw.w3 { background: #7FA06B; }
.sw.w4 { background: #C6D4B6; } .sw.w5 { background: #D9A066; } .sw.w6 { background: #A85A2E; }
/* break free */
.break-free--v2 { background: linear-gradient(180deg, var(--sage-deep) 0%, var(--sage) 100%); padding: 100px 24px; }
.break-free--v2 h2 { font-size: clamp(28px, 4vw, 48px); line-height: 1.15; max-width: 820px; margin: 14px auto 36px; color: var(--moss); }
.bf-flow { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 12px; margin: 0 auto 36px; }
.bf-chip { background: #fff; border: 1.5px dashed var(--ember); color: var(--moss); padding: 10px 20px; border-radius: 999px; font-weight: 600; font-size: 15px; }
.bf-arrow { font-size: 28px; color: var(--moss); padding: 0 6px; }
.bf-free { background: var(--moss); color: var(--paper); padding: 12px 26px; border-radius: 999px; font-weight: 700; font-size: 16px; box-shadow: 0 6px 18px rgba(30,51,32,.25); }
.break-free--v2 blockquote { position: relative; max-width: 680px; margin: 40px auto 0; background: #fff; padding: 44px 36px 32px; border-radius: 8px; font-family: "Poppins", sans-serif; font-size: clamp(18px, 2.2vw, 24px); font-weight: 500; color: var(--moss); line-height: 1.4; }
.break-free--v2 blockquote::before { content: "\201C"; position: absolute; top: -6px; left: 24px; font-size: 90px; line-height: 1; color: var(--ember); font-family: Georgia, serif; }
/* retreat faq compact */
.faq-compact { padding: 56px 24px; background: var(--paper); }
.faq-compact h2 { font-size: clamp(22px, 2.6vw, 30px); text-align: center; margin-bottom: 24px; }
.faq-d-list { max-width: 720px; margin: 0 auto; }
.faq-d { border-top: 1px solid rgba(30,51,32,.15); }
.faq-d:last-child { border-bottom: 1px solid rgba(30,51,32,.15); }
.faq-d summary { cursor: pointer; padding: 14px 4px; font-weight: 600; font-size: 16px; list-style: none; display: flex; justify-content: space-between; gap: 16px; }
.faq-d summary::-webkit-details-marker { display: none; }
.faq-d summary::after { content: "+"; font-size: 20px; color: var(--ember-text); }
.faq-d[open] summary::after { content: "–"; }
.faq-d p { padding: 0 4px 16px; color: #4A5546; font-size: 15px; }
.faq-more { text-align: center; margin-top: 18px; font-size: 15px; }
.faq-more a { color: var(--ember-text); font-weight: 600; }
/* investment */
.investment { padding: 90px 24px; }
.inv-card { max-width: 980px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1.1fr; background: rgba(255,255,255,.05); border: 1px solid rgba(220,230,210,.25); border-radius: 10px; overflow: hidden; text-align: left; }
.inv-left { padding: 48px 40px; background: var(--moss); display: flex; flex-direction: column; align-items: flex-start; }
.inv-left .price { font-size: clamp(48px, 6vw, 76px); margin: 6px 0 4px; line-height: 1; color: var(--paper); }
.inv-left .per-person { margin-bottom: 26px; opacity: .85; }
.inv-left .button { background: var(--paper); color: var(--moss); font-size: 13px; padding: 16px 30px; }
.inv-left .small { margin-top: 20px; opacity: .8; }
.inv-right { padding: 48px 40px; }
.inv-right h3 { font-size: 22px; margin-bottom: 14px; color: var(--paper); }
.inv-list { list-style: none; padding: 0; margin: 0; }
.inv-list li { padding: 10px 0 10px 30px; position: relative; border-top: 1px solid rgba(220,230,210,.15); font-size: 15px; }
.inv-list li::before { content: "✓"; position: absolute; left: 0; color: var(--dawn); font-weight: 700; }
@media (max-width: 860px) { .inv-card { grid-template-columns: 1fr; } .inv-left, .inv-right { padding: 36px 24px; } .event-grid--2 { grid-template-columns: 1fr; } }
/* about */
.quote-soft { background: var(--sage); padding: 52px 24px; }
.quote-soft blockquote { font-family: "Poppins", sans-serif; font-weight: 500; font-size: clamp(20px, 2.4vw, 28px); line-height: 1.4; max-width: 720px; margin: 10px auto 0; color: var(--moss); }

/* ---- v14 additions ---- */
[hidden] { display: none !important; }
.event-grid--1 { max-width: 1000px; }
.event-card--media { display: grid; grid-template-columns: 1fr 1.15fr; padding: 0; overflow: hidden; text-align: left; }
.event-img { width: 100%; height: 100%; min-height: 340px; object-fit: cover; display: block; }
.event-body { padding: 36px; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }
@media (max-width: 760px) { .event-card--media { grid-template-columns: 1fr; } .event-img { min-height: 0; height: 220px; } .event-body { padding: 26px 22px; } }
.pie-full { padding: 0; background: var(--paper); }
.pie-full img { display: block; width: 100%; height: auto; }
/* program highlights (dark, compact, 4 per row) */
.highlights--dark { background: var(--moss-deep); color: var(--oat); padding: 64px 40px 72px; }
.highlights--dark .section-heading { margin-bottom: 34px; }
.highlights--dark h2 { color: var(--paper); font-size: clamp(30px, 4vw, 48px); }
.prog-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; max-width: 1200px; margin: 0 auto; }
.prog-card { background: rgba(255,255,255,.06); border: 1px solid rgba(220,230,210,.18); border-radius: 8px; overflow: hidden; }
.prog-card img, .prog-tile { width: 100%; height: 150px; object-fit: cover; display: block; }
.prog-tile { display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--moss-deep), var(--moss)); color: var(--dawn); }
.prog-body { padding: 16px 18px 20px; }
.prog-body span { font-family: "Poppins", sans-serif; font-size: 12px; letter-spacing: 2px; color: var(--dawn); font-weight: 600; }
.prog-body h3 { font-size: 17px; line-height: 1.25; margin: 4px 0 6px; color: var(--paper); }
.prog-body p { font-size: 13.5px; line-height: 1.5; color: rgba(220,230,210,.85); }
@media (max-width: 1100px) { .prog-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 760px) { .prog-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; } .highlights--dark { padding: 48px 16px 56px; } .prog-card img, .prog-tile { height: 110px; } }
/* who: light green */
.who--sage { background: var(--sage); color: var(--ink); }
.who--sage h2 { color: var(--moss); }
.who--sage .eyebrow, .who--sage .note { color: var(--ember-text); }
.who--sage li { border-color: rgba(30,51,32,.2); }
.who--sage .who-img-2 { border-color: var(--sage); }
.who--sage .button { background: var(--moss); color: var(--paper); align-self: flex-start; margin-top: 26px; }
/* break free with image */
.break-free--v3 { background: linear-gradient(rgba(18,32,15,.40), rgba(18,32,15,.58)), url(images/forest.jpg) center / cover no-repeat; color: var(--paper); padding: 110px 24px; text-align: center; }
.break-free--v3 h2 { font-size: clamp(20px, 3.3vw, 44px); line-height: 1.25; margin: 14px auto 34px; color: #fff; }
.break-free--v3 .bf-flow { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 12px; margin-bottom: 44px; }
.break-free--v3 .bf-chip { background: rgba(255,255,255,.12); border: 1.5px dashed var(--dawn); color: var(--paper); padding: 10px 20px; border-radius: 999px; font-weight: 600; font-size: 15px; }
.break-free--v3 .bf-arrow { font-size: 28px; color: var(--dawn); padding: 0 6px; }
.break-free--v3 .bf-free { background: var(--dawn); color: var(--moss-deep); padding: 12px 26px; border-radius: 999px; font-weight: 700; font-size: 16px; }
.bf-quote { max-width: 640px; margin: 0 auto; }
.bf-quote blockquote { font-family: "Playfair Display", serif; font-style: italic; font-weight: 600; font-size: clamp(26px, 3.6vw, 40px); line-height: 1.25; color: #fff; padding: 0; background: none; }
.bf-quote blockquote::before { display: none; }
.bf-quote figcaption { margin-top: 14px; letter-spacing: 3px; text-transform: uppercase; font-size: 13px; color: var(--dawn); }
.bf-quote figcaption::before { content: "— "; }
/* journey */
.journey { background: var(--paper); padding: 90px 40px 110px; text-align: center; }
.journey h2 { font-size: clamp(30px, 4vw, 48px); color: var(--moss); }
.journey-track { display: grid; grid-template-columns: repeat(4, 1fr); gap: 56px; max-width: 1180px; margin: 64px auto 0; padding: 0 0 70px; list-style: none; text-align: left; }
.jr-day { position: relative; background: #fff; border: 1px solid rgba(30,51,32,.14); border-radius: 10px; padding: 34px 22px 26px; box-shadow: 0 10px 28px rgba(30,51,32,.08); }
.jr-day:nth-child(even) { margin-top: 64px; }
.jr-badge { position: absolute; top: -16px; left: 20px; background: var(--moss); color: var(--paper); font-family: "Poppins", sans-serif; font-weight: 600; font-size: 13px; letter-spacing: 1px; padding: 7px 16px; border-radius: 999px; }
.jr-day h3 { font-size: 19px; line-height: 1.25; margin-bottom: 8px; color: var(--moss); }
.jr-day p { font-size: 14.5px; color: #4A5546; }
.jr-day:not(:last-child)::after { content: ""; position: absolute; right: -52px; top: 30px; width: 48px; height: 56px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 56'%3E%3Cpath d='M2 6 C26 6 22 48 40 48' fill='none' stroke='%23A85A2E' stroke-width='2' stroke-dasharray='4 4'/%3E%3Cpath d='M33 42 L41 48 L33 54' fill='none' stroke='%23A85A2E' stroke-width='2'/%3E%3C/svg%3E") no-repeat center / contain; }
.jr-day:nth-child(even):not(:last-child)::after { top: 12px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 56'%3E%3Cpath d='M2 50 C26 50 22 8 40 8' fill='none' stroke='%23A85A2E' stroke-width='2' stroke-dasharray='4 4'/%3E%3Cpath d='M33 2 L41 8 L33 14' fill='none' stroke='%23A85A2E' stroke-width='2'/%3E%3C/svg%3E"); }
@media (max-width: 960px) {
  .journey { padding: 70px 24px; }
  .journey-track { grid-template-columns: 1fr; gap: 44px; padding-bottom: 0; }
  .jr-day:nth-child(even) { margin-top: 0; }
  .jr-day:not(:last-child)::after, .jr-day:nth-child(even):not(:last-child)::after { background: none; content: "↓"; right: auto; left: 50%; top: auto; bottom: -38px; width: auto; height: auto; transform: translateX(-50%); color: var(--ember-text); font-size: 26px; }
}
/* compact facilitator */
.mary--compact { min-height: 0; }
.mary--compact .mary-image { max-height: 440px; overflow: hidden; }
.mary--compact .mary-content { padding: 44px 56px; }
.mary--compact h2 { font-size: clamp(34px, 4vw, 52px); margin-bottom: 14px; }
.mary--compact .link-cta { margin-top: 6px; display: inline-block; }
@media (max-width: 860px) { .mary--compact .mary-image { max-height: 300px; } .mary--compact .mary-content { padding: 32px 24px; } }
/* investment light + image */
.investment--light { background: linear-gradient(rgba(247,248,242,.86), rgba(247,248,242,.9)), url(images/home-3.jpg) center / cover no-repeat; color: var(--ink); }
.inv-card--light { background: rgba(255,255,255,.94); border: 1px solid rgba(30,51,32,.12); box-shadow: 0 20px 50px rgba(30,51,32,.12); }
.inv-card--light .inv-left { background: var(--sage); color: var(--ink); }
.inv-card--light .inv-left .price { color: var(--moss); }
.inv-card--light .inv-left .per-person, .inv-card--light .inv-left .small { opacity: 1; color: #4A5546; }
.inv-card--light .inv-left .button { background: var(--moss); color: var(--paper); }
.inv-pay { margin-top: 14px; font-size: 14px; font-weight: 600; color: var(--ember-text); }
.inv-card--light .inv-right h3 { color: var(--moss); }
.inv-card--light .inv-list li { color: var(--ink); border-color: rgba(30,51,32,.12); }
.inv-card--light .inv-list li::before { color: var(--ember-text); }
/* invite form */
.invite { background: var(--sage); padding: 80px 24px; }
.invite-inner { max-width: 1040px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1.2fr; gap: 56px; align-items: start; }
.invite-copy h2 { font-size: clamp(28px, 3.4vw, 42px); line-height: 1.15; margin: 10px 0 14px; color: var(--moss); }
.invite-copy p { color: #4A5546; }
.invite-facts { list-style: none; padding: 0; margin: 22px 0 0; }
.invite-facts li { padding: 10px 0; border-top: 1px solid rgba(30,51,32,.2); font-weight: 600; color: var(--moss); }
.invite-card { background: #fff; border-radius: 10px; padding: 32px; box-shadow: 0 16px 40px rgba(30,51,32,.12); }
.field { margin-bottom: 16px; display: flex; flex-direction: column; }
.field label { font-size: 14px; font-weight: 600; margin-bottom: 6px; color: var(--moss); }
.field input[type=text], .field input[type=tel], .field input[type=email], .field select, .field textarea { font: inherit; font-size: 16px; padding: 12px 14px; border: 1.5px solid rgba(30,51,32,.3); border-radius: 6px; background: #fff; color: var(--ink); width: 100%; }
.field input:focus, .field select:focus, .field textarea:focus { outline: 3px solid rgba(168,90,46,.35); border-color: var(--ember); }
.field input[aria-invalid="true"] { border-color: #B3261E; }
.field-error { color: #B3261E; font-size: 13px; min-height: 0; margin-top: 4px; }
.field--check label { font-weight: 400; display: flex; gap: 10px; align-items: flex-start; font-size: 14px; color: #4A5546; }
.field--check input { margin-top: 3px; width: 18px; height: 18px; flex: none; }
.field--check a { color: var(--ember-text); text-decoration: underline; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.invite-form .button { width: 100%; background: var(--moss); color: var(--paper); border: 0; cursor: pointer; padding: 16px 24px; font-size: 14px; }
.invite-form .button:disabled { opacity: .6; cursor: wait; }
.form-status { margin-top: 12px; font-size: 14px; color: #B3261E; }
.invite-done { text-align: center; padding: 24px 8px; }
.invite-done h3 { font-size: 28px; color: var(--moss); margin-bottom: 8px; }
@media (max-width: 860px) { .invite-inner { grid-template-columns: 1fr; gap: 32px; } .invite-card { padding: 22px 18px; } }

/* ---- v15 additions ---- */
.hl { color: var(--ember-text); }
.welcome { background: var(--paper); padding: 56px 24px 48px; text-align: center; }
.welcome h2 { font-size: clamp(20px, 2.5vw, 30px); line-height: 1.4; max-width: 860px; margin: 0 auto 12px; color: var(--moss); font-weight: 600; }
.welcome-sub { font-family: "Playfair Display", serif; font-style: italic; font-size: clamp(20px, 2.4vw, 28px); color: var(--ember-text); margin-bottom: 30px; }
.welcome-img { display: block; width: 100%; max-width: 860px; height: auto; margin: 0 auto; border-radius: 10px; box-shadow: 0 14px 36px rgba(30,51,32,.12); }
.who--sage li { position: relative; padding-left: 40px; }
.who--sage li::before { content: "✓"; position: absolute; left: 0; top: 17px; width: 26px; height: 26px; line-height: 26px; text-align: center; border-radius: 50%; background: var(--moss); color: var(--paper); font-size: 14px; font-weight: 700; }
.who-note { margin-top: 22px; font-weight: 600; color: var(--moss); }
.retreat-page .who--sage .who-gallery { min-height: 520px; }
.retreat-page .who--sage .who-content { padding: 56px 56px; }
.retreat-page .who--sage li { padding-top: 14px; padding-bottom: 14px; }
.retreat-page .who--sage li::before { top: 13px; }
.retreat-page .home-section { padding: 60px 24px; }
.retreat-page .testimonials { padding: 64px 24px; }
.retreat-page .break-free--v3 { padding: 84px 24px; }
.retreat-page .journey { padding: 70px 40px 80px; }
.retreat-page .journey-track { margin-top: 52px; }
.retreat-page .investment { padding: 64px 24px; }
.retreat-page .inv-left, .retreat-page .inv-right { padding: 36px 32px; }
.retreat-page .final-cta { padding: 64px 24px; }
.jr-list { list-style: none; padding: 0; margin: 4px 0 0; }
.jr-list li { position: relative; padding: 5px 0 5px 20px; font-size: 14.5px; color: #4A5546; }
.jr-list li::before { content: ""; position: absolute; left: 0; top: 13px; width: 8px; height: 8px; border-radius: 50%; background: var(--ember); }
.inv-left .small { margin-top: 12px; }
.inv-left .small strong { color: var(--moss); }
/* invite: smaller + colour */
.retreat-page .invite { padding: 56px 24px; }
.retreat-page .invite-inner { gap: 40px; align-items: center; }
.invite-copy h2 { font-size: clamp(26px, 3vw, 36px); }
.invite-facts li { padding: 9px 0; font-weight: 500; font-size: 15px; display: flex; gap: 10px; flex-wrap: wrap; align-items: baseline; }
.invite-facts .fact-k { font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; font-weight: 700; color: var(--paper); background: var(--ember-text); padding: 3px 9px; border-radius: 999px; }
.invite-card { padding: 24px 26px; border-top: 4px solid var(--ember); }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.invite-form .field { margin-bottom: 12px; }
.invite-form .field input[type=text], .invite-form .field input[type=tel], .invite-form .field input[type=email], .invite-form .field textarea { padding: 10px 12px; }
@media (max-width: 560px) { .field-row { grid-template-columns: 1fr; gap: 0; } .retreat-page .who--sage .who-content { padding: 40px 22px; } }

/* ---- v16 additions ---- */
.break-free--v3 h2, .break-free--v3 .bf-chip, .break-free--v3 .bf-quote { text-shadow: 0 2px 14px rgba(0,0,0,.45); }
.break-free--v3 .bf-chip { background: rgba(18,32,15,.45); }
.retreat-page .journey-track { max-width: 1240px; gap: 48px; }
.jr-day { padding: 32px 20px 22px; }
.jr-day p { font-size: 14px; line-height: 1.55; margin-bottom: 10px; }
.jr-meta { font-size: 13px !important; margin-bottom: 6px !important; }
.jr-meta strong { color: var(--ember-text); }
.retreat-page .inv-card { grid-template-columns: .8fr 1.5fr; }
.inc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 24px; margin-bottom: 20px; }
.inc-item { display: flex; gap: 12px; align-items: flex-start; }
.inc-ic { flex: none; width: 44px; height: 44px; border-radius: 50%; background: var(--sage); color: var(--moss); display: flex; align-items: center; justify-content: center; }
.inc-item h4 { font-family: "Poppins", sans-serif; font-size: 15px; font-weight: 600; color: var(--moss); margin: 0 0 2px; }
.inc-item p { font-size: 13.5px; line-height: 1.45; color: #4A5546; }
.inc-not { font-size: 13.5px; color: #4A5546; border-top: 1px solid rgba(30,51,32,.15); padding-top: 14px; }
@media (max-width: 860px) { .retreat-page .inv-card { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .inc-grid { grid-template-columns: 1fr; } }
#retreat-stories { padding: 64px 24px; }
/* request an invite on image */
.retreat-page .invite { background: linear-gradient(90deg, rgba(18,32,15,.88) 0%, rgba(18,32,15,.62) 55%, rgba(18,32,15,.4) 100%), url(images/retreat-hero.jpg) center / cover no-repeat; }
.retreat-page .invite-copy h2 { color: #fff; }
.retreat-page .invite-copy > p { color: rgba(255,255,255,.92); }
.retreat-page .invite .hl { color: #F2B98A; }
.retreat-page .invite-facts li { color: #fff; border-color: rgba(255,255,255,.25); }
.retreat-page .invite-facts li strong.hl { color: #F2B98A; }
@media (max-width: 860px) { .retreat-page .invite { background: linear-gradient(rgba(18,32,15,.82), rgba(18,32,15,.7)), url(images/retreat-hero.jpg) center / cover no-repeat; } }

/* ---- v17 additions ---- */
.scribble { background-repeat: no-repeat; background-position: 0 100%; background-size: 100% .5em; padding-bottom: .24em; }
.scribble--ember { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 12' preserveAspectRatio='none'%3E%3Cpath d='M2 8 C30 3 55 11 90 6 S150 3 198 7' fill='none' stroke='%23A85A2E' stroke-width='3' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M12 10.5 C60 6.5 120 10.5 186 8' fill='none' stroke='%23A85A2E' stroke-width='1.6' stroke-linecap='round' opacity='.65' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E"); }
.scribble--light { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 12' preserveAspectRatio='none'%3E%3Cpath d='M2 8 C30 3 55 11 90 6 S150 3 198 7' fill='none' stroke='%23F2B98A' stroke-width='3' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M12 10.5 C60 6.5 120 10.5 186 8' fill='none' stroke='%23F2B98A' stroke-width='1.6' stroke-linecap='round' opacity='.65' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E"); }
.circled { position: relative; display: inline-block; padding: 0 .32em; }
.circled::after { content: ""; position: absolute; left: -.12em; right: -.12em; top: -.2em; bottom: -.16em; background-repeat: no-repeat; background-position: center; background-size: 100% 100%; pointer-events: none; }
.circled--light::after { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 60' preserveAspectRatio='none'%3E%3Cpath d='M14 32 C8 12 70 4 112 5 S194 14 192 32 C190 51 130 57 92 56 S6 50 11 29 C14 18 40 11 68 9' fill='none' stroke='%23F2B98A' stroke-width='2.6' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E"); }
.circled--ember::after { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 60' preserveAspectRatio='none'%3E%3Cpath d='M14 32 C8 12 70 4 112 5 S194 14 192 32 C190 51 130 57 92 56 S6 50 11 29 C14 18 40 11 68 9' fill='none' stroke='%23A85A2E' stroke-width='2.6' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E"); }
.welcome-sub { font-family: "Poppins", sans-serif; font-style: normal; font-weight: 500; font-size: clamp(18px, 2.2vw, 24px); color: var(--moss); }
.welcome-sub .scribble { color: var(--ember-text); font-weight: 600; }
/* testimonials: bold + coloured quote icon */
.testimonial-card .quote strong { font-weight: 700; color: #fff; }
.testimonial-card .quote::before { content: "\201C"; display: block; font-family: Georgia, serif; font-size: 54px; line-height: .55; height: 26px; margin-bottom: 4px; color: #F2B98A; }
.testimonial-card:nth-child(6n+2) .quote::before { color: #9FD3B0; }
.testimonial-card:nth-child(6n+3) .quote::before { color: #F5D27A; }
.testimonial-card:nth-child(6n+4) .quote::before { color: #F29C9C; }
.testimonial-card:nth-child(6n+5) .quote::before { color: #9CC9E8; }
.testimonial-card:nth-child(6n+6) .quote::before { color: #C9A8E8; }
/* program highlights: lighter, colourful */
.retreat-page .highlights--dark { background: linear-gradient(135deg, var(--moss) 0%, var(--moss-deep) 100%); }
.highlights--dark .eyebrow { color: var(--sage); }
.highlights--dark .prog-card { background: #fff; border: 0; border-top: 4px solid var(--c, #A85A2E); box-shadow: 0 10px 24px rgba(0,0,0,.18); }
.highlights--dark .prog-body h3 { color: var(--moss); }
.highlights--dark .prog-body p { color: #4A5546; }
.highlights--dark .prog-body span { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; background: var(--c, #A85A2E); color: #fff; font-size: 13px; letter-spacing: 0; margin-bottom: 8px; }
.highlights--dark .prog-tile { background: linear-gradient(135deg, var(--c), var(--moss)); color: #fff; }
.prog-card:nth-child(1) { --c: #D2692F; } .prog-card:nth-child(2) { --c: #2E8196; } .prog-card:nth-child(3) { --c: #C0617A; } .prog-card:nth-child(4) { --c: #6B9A3A; }
.prog-card:nth-child(5) { --c: #D9962E; } .prog-card:nth-child(6) { --c: #7B5EA7; } .prog-card:nth-child(7) { --c: #3F8F6B; } .prog-card:nth-child(8) { --c: #D2492F; }
/* journey v2: coloured days with image headers, compact */
.retreat-page .journey { padding: 56px 32px 64px; }
.retreat-page .journey h2 { margin-bottom: 0; }
.retreat-page .journey-track { margin-top: 40px; padding-bottom: 40px; max-width: 1240px; gap: 44px; }
.retreat-page .jr-day { padding: 0; background: var(--dt); border: 0; border-top: 4px solid var(--dc); box-shadow: 0 10px 26px rgba(30,51,32,.1); }
.retreat-page .jr-day:nth-child(even) { margin-top: 40px; }
.jr-day--1 { --dc: #4F7F55; --dt: #EEF4E8; } .jr-day--2 { --dc: #2E7F96; --dt: #E6F2F5; }
.jr-day--3 { --dc: #B5532A; --dt: #FBECE3; } .jr-day--4 { --dc: #B8892F; --dt: #F8F1DC; }
.jr-img { position: relative; height: 96px; overflow: hidden; border-radius: 6px 6px 0 0; }
.jr-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.jr-img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 30%, var(--dc)); opacity: .85; }
.retreat-page .jr-img .jr-badge { z-index: 2; top: auto; bottom: 10px; left: 16px; background: #fff; color: var(--dc); }
.jr-body { padding: 14px 18px 18px; }
.retreat-page .jr-day h3 { color: var(--dc); font-size: 20px; margin-bottom: 6px; }
.retreat-page .jr-day p { font-size: 13.5px; margin-bottom: 8px; }
.retreat-page .jr-meta strong { color: var(--dc); }
/* break free compact */
.retreat-page .break-free--v3 { padding: 46px 24px 52px; }
.retreat-page .break-free--v3 h2 { font-size: clamp(18px, 2.6vw, 32px); margin: 10px auto 22px; }
.retreat-page .break-free--v3 .bf-flow { margin-bottom: 24px; gap: 8px; }
.retreat-page .break-free--v3 .bf-chip { padding: 7px 14px; font-size: 13.5px; }
.retreat-page .break-free--v3 .bf-free { padding: 8px 18px; font-size: 14px; }
.retreat-page .bf-quote blockquote { font-size: clamp(22px, 3vw, 32px); }
/* socials */
.social-row { display: flex; align-items: center; gap: 10px; margin-top: 16px; }
.social-label { font-size: 12px; letter-spacing: 2px; text-transform: uppercase; font-weight: 600; color: var(--ember-text); margin-right: 4px; }
.social-btn { width: 40px; height: 40px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--moss); color: var(--paper); transition: transform .2s, background .2s; }
.social-btn:hover { background: var(--ember); transform: translateY(-2px); }
@media (max-width: 960px) { .retreat-page .jr-day:nth-child(even) { margin-top: 0; } .retreat-page .journey-track { padding-bottom: 0; } }

/* ---- v18 additions ---- */
.footer-socials .footer-social { display: inline-flex !important; align-items: center; justify-content: center; width: 38px; height: 38px; padding: 0 !important; margin: 0 !important; line-height: 0; flex: none; }
.footer-socials .footer-social svg { display: block; width: 18px; height: 18px; flex: none; }
.social-btn svg { display: block; }
/* welcome fits one screen */
.welcome { padding: 84px 24px 24px; box-sizing: border-box; }
.welcome h2 { font-size: clamp(17px, 2vw, 24px); margin-bottom: 8px; }
.welcome-sub { font-size: clamp(16px, 1.8vw, 20px); margin-bottom: 18px; }
.welcome-img { width: auto; max-width: 100%; max-height: calc(100vh - 290px); max-height: calc(100svh - 290px); }
@media (max-width: 700px) { .welcome { padding-top: 70px; } .welcome-img { max-height: none; width: 100%; } }
/* program: horizontal cards, scribbled numbers */
.retreat-page .prog-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; max-width: 1100px; }
.retreat-page .prog-card { display: flex; flex-direction: row; align-items: stretch; min-height: 150px; }
.retreat-page .prog-card .prog-body { flex: 1; order: 1; padding: 16px 18px; }
.retreat-page .prog-card img, .retreat-page .prog-card .prog-tile { order: 2; width: 42%; height: auto; min-height: 150px; flex: none; object-fit: cover; }
.highlights--dark .prog-body span.prog-num { position: relative; width: 40px; height: 40px; background: transparent; color: var(--c); font-size: 14px; font-weight: 700; margin-bottom: 6px; }
.prog-num::before { content: ""; position: absolute; inset: 0; background: var(--c); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 60'%3E%3Cpath d='M31 5 C48 4 58 18 55 33 C52 49 36 58 22 54 C9 50 3 36 7 23 C11 11 24 5 36 7 C42 8 46 11 49 15' fill='none' stroke='black' stroke-width='3.4' stroke-linecap='round'/%3E%3C/svg%3E") center / 100% 100% no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 60'%3E%3Cpath d='M31 5 C48 4 58 18 55 33 C52 49 36 58 22 54 C9 50 3 36 7 23 C11 11 24 5 36 7 C42 8 46 11 49 15' fill='none' stroke='black' stroke-width='3.4' stroke-linecap='round'/%3E%3C/svg%3E") center / 100% 100% no-repeat; }
@media (max-width: 760px) { .retreat-page .prog-grid { grid-template-columns: 1fr; } }
/* journey v3 */
.retreat-page .journey--v3 { padding: 40px 32px 30px; }
.retreat-page .journey--v3 .journey-track { margin-top: 26px; padding-bottom: 28px; gap: 44px; }
.retreat-page .journey--v3 .jr-day:nth-child(even) { margin-top: 28px; }
.retreat-page .journey--v3 .jr-img { height: 150px; }
.jr-tag { font-family: "Poppins", sans-serif; font-weight: 600; font-size: 13px !important; color: var(--dc); margin-bottom: 6px !important; }
.retreat-page .journey--v3 .jr-body { padding: 14px 16px 16px; }
.retreat-page .journey--v3 .jr-day h3 { font-size: 19px; }
.retreat-page .journey--v3 .jr-day p { font-size: 13.5px; line-height: 1.5; }
@media (max-width: 960px) { .retreat-page .journey--v3 .jr-day:nth-child(even) { margin-top: 0; } }
/* break free strip */
.break-free--strip { padding: 30px 32px !important; text-align: left; }
.bf-strip { max-width: 1180px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 28px 40px; flex-wrap: wrap; }
.break-free--strip h2 { margin: 6px 0 0 !important; font-size: clamp(18px, 2.2vw, 28px) !important; }
.break-free--strip .bf-flow { margin: 0 !important; justify-content: flex-start; }
@media (max-width: 860px) { .bf-strip { flex-direction: column; align-items: flex-start; } }
/* about */
.mary-still { margin-top: 6px; font-weight: 600; color: var(--moss); }
.who--icons li { padding-left: 0; display: flex; align-items: center; gap: 14px; }
.who--icons li::before { content: none; }
.li-ic { flex: none; width: 40px; height: 40px; border-radius: 50%; background: #fff; display: inline-flex; align-items: center; justify-content: center; color: var(--ic, #A85A2E); box-shadow: 0 2px 8px rgba(30,51,32,.12); }
.who--icons li:nth-child(1) { --ic: #2E8196; } .who--icons li:nth-child(2) { --ic: #4F7F55; } .who--icons li:nth-child(3) { --ic: #D9962E; }
.who--icons li:nth-child(4) { --ic: #C0617A; } .who--icons li:nth-child(5) { --ic: #A85A2E; }
.chip-row { list-style: none; display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; padding: 0; margin: 24px auto 0; max-width: 680px; }
.chip-row li { padding: 8px 18px; border-radius: 999px; font-weight: 600; font-size: 14px; color: #fff; background: var(--cc, var(--moss)); }
.chip-row li:nth-child(1) { --cc: #4F7F55; } .chip-row li:nth-child(2) { --cc: #B5532A; } .chip-row li:nth-child(3) { --cc: #2E7F96; }
.chip-row li:nth-child(4) { --cc: #C0617A; } .chip-row li:nth-child(5) { --cc: #B8892F; } .chip-row li:nth-child(6) { --cc: #7B5EA7; }
/* compact home + experiences */
.compact .section-heading { margin-bottom: 28px; }
.compact .upcoming { padding: 48px 32px 44px; }
.compact .event-group { margin-bottom: 28px; }
.compact .struggle-section { padding-top: 56px; }
.compact .struggle-item { padding: 20px 20px 20px 52px; }
.compact .struggle-item p { font-size: 13.5px; }
.compact #stories { padding: 56px 24px; }
.compact .final-cta { padding: 56px 24px; }
.compact .split-what-body { padding: 44px 40px; }
.compact .split-what .lead { font-size: 15px; line-height: 1.55; margin-bottom: 10px; }
.compact .about-teaser .body { padding: 64px 48px 36px; }
.compact .about-teaser p { font-size: 14.5px; line-height: 1.55; margin-bottom: 10px; }
.compact .offer-section { padding: 44px 24px; }
.compact #retreat { padding: 36px 24px 40px; }
.compact #retreat .section-heading { margin-bottom: 18px; }
.compact .retreat-card-lg { min-height: 0; margin-bottom: 0; }
.compact .retreat-card-lg img { max-height: 340px; width: 100%; }
.compact .retreat-card-lg .body { padding: 28px 36px; }
.compact .retreat-card-lg h3 { font-size: 30px; }
.compact .retreat-card-lg .meta { margin-bottom: 12px; }
.compact .retreat-card-lg .price-tag { font-size: 20px; margin-bottom: 12px; }
.compact .retreat-card-lg p.desc { margin-bottom: 12px; }

/* ---- v19 additions ---- */
/* who: photos no longer overlap */
.retreat-page .who--sage .who-gallery { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; padding: 36px; min-height: 0; align-content: center; }
.retreat-page .who--sage .who-img { position: static; width: 100%; height: 100%; border: 0; border-radius: 6px; box-shadow: 0 10px 24px rgba(0,0,0,.16); object-fit: cover; }
.retreat-page .who--sage .who-img-1 { grid-column: 1 / -1; aspect-ratio: 16 / 9; }
.retreat-page .who--sage .who-img-2, .retreat-page .who--sage .who-img-3 { aspect-ratio: 1 / 1; }
@media (max-width: 860px) { .retreat-page .who--sage .who-gallery { padding: 20px; } }
/* program: equal, wider cards */
.retreat-page .prog-grid { max-width: 1280px; grid-auto-rows: 1fr; gap: 18px; }
.retreat-page .prog-card { height: 100%; min-height: 170px; }
.retreat-page .prog-card img, .retreat-page .prog-card .prog-tile { width: 40%; min-height: 170px; height: 100%; }
/* journey + break free as one section */
.retreat-page .journey--merged { background: linear-gradient(rgba(247,248,242,.9), rgba(247,248,242,.94)), url(images/forest.jpg) center / cover no-repeat; padding: 44px 32px 44px; }
.retreat-page .journey--merged .journey-track { padding-bottom: 20px; }
.bf-block { max-width: 980px; margin: 14px auto 0; padding-top: 34px; border-top: 1.5px dashed rgba(168,90,46,.45); text-align: center; }
.bf-block h2 { font-size: clamp(20px, 2.8vw, 34px); line-height: 1.25; margin: 8px auto 20px; color: var(--moss); }
.bf-block .bf-flow { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 10px; }
.bf-block .bf-chip { background: #fff; border: 1.5px dashed var(--ember); color: var(--moss); padding: 8px 18px; border-radius: 999px; font-weight: 600; font-size: 14.5px; }
.bf-block .bf-arrow { font-size: 26px; color: var(--moss); padding: 0 4px; }
.bf-block .bf-free { background: var(--moss); color: #fff; padding: 10px 24px; border-radius: 999px; font-weight: 700; font-size: 15px; }
/* city form on experiences */
.invite--city { padding: 48px 24px; }
/* tighter spacing everywhere */
section { padding: 56px 32px; }
@media (max-width: 720px) { section { padding: 44px 20px; } }
.section-heading, .compact .section-heading { margin-bottom: 28px; }
.page-hero { padding: 120px 32px 56px; }
.page-hero--short { padding: 110px 32px 40px; }
.final-cta, .investment, .invite { padding: 56px 24px; }
.who-content, .mary-content, .split-section .split-body { padding: 56px 56px; }
.about-teaser .body, .compact .about-teaser .body { padding: 56px 48px; }
.split-what-body, .compact .split-what-body { padding: 44px 48px; }
.gallery-head { padding: 56px 24px 12px; }
.offer-section, .compact .offer-section { padding: 44px 24px; }
.upcoming, .compact .upcoming { padding: 48px 32px 40px; }
.quote-block { padding-top: 56px; padding-bottom: 56px; }
.compact .split-what, .split-what { min-height: 0; }
.split-what-img { min-height: 380px; }
.about-teaser { min-height: 0; }
.about-teaser img { min-height: 480px; }
@media (max-width: 860px) { .who-content, .mary-content, .split-section .split-body, .about-teaser .body { padding: 36px 22px; } .split-what-body { padding: 32px 22px; } }

/* ---- v20 additions ---- */
.scribble { background-size: 100% .6em; padding-bottom: .3em; }
.scribble--ember { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 12' preserveAspectRatio='none'%3E%3Cpath d='M2 8 C30 3 55 11 90 6 S150 3 198 7' fill='none' stroke='%23A85A2E' stroke-width='4.5' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M12 10.5 C60 6.5 120 10.5 186 8' fill='none' stroke='%23A85A2E' stroke-width='2.2' stroke-linecap='round' opacity='.7' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E"); }
.scribble--light { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 12' preserveAspectRatio='none'%3E%3Cpath d='M2 8 C30 3 55 11 90 6 S150 3 198 7' fill='none' stroke='%23F2B98A' stroke-width='4.5' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M12 10.5 C60 6.5 120 10.5 186 8' fill='none' stroke='%23F2B98A' stroke-width='2.2' stroke-linecap='round' opacity='.7' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E"); }
.bf-block h2 { line-height: 1.6; margin-bottom: 28px; }
.bf-block .scribble { background-size: 100% .7em; }
p strong, li strong { font-weight: 700; }
.mary-content p strong, .about-teaser p strong, .group-card p strong, .offer-box p strong, .retreat-card-lg p strong, .short-intro p strong, .training p strong { color: var(--moss); }
/* final CTA: warm light, so it differs from the footer */
.final-cta { background: var(--moss); color: var(--sage); }
.final-cta h2 { color: var(--paper); }
.final-cta p { color: var(--sage); opacity: 1; }
.final-cta .button--outline-light { border: 2px solid var(--paper); color: var(--paper); background: transparent; }
.final-cta .button:not(.button--outline-light) { background: var(--ember); color: #fff; }
/* retreat page: the invite block above is already dark, so keep the closing band light sage there */
.retreat-page .final-cta { background: var(--sage); color: var(--ink); }
.retreat-page .final-cta h2 { color: var(--moss); }
.retreat-page .final-cta p { color: #4a5546; }
.retreat-page .final-cta .button--outline-light { border-color: var(--moss); color: var(--moss); }
/* about: compact approach, training */
.who--compact .who-gallery { min-height: 440px; }
.who--compact .who-content { padding: 36px 48px; }
.who--compact h2 { font-size: clamp(26px, 3vw, 36px); margin-bottom: 14px; }
.who--compact li { padding-top: 9px; padding-bottom: 9px; font-size: 15px; }
.who--compact li::before { top: 9px; }
.train-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; max-width: 980px; margin: 28px auto 0; text-align: left; }
.train-card { background: #fff; border-top: 3px solid var(--ember); border-radius: 8px; padding: 20px 22px; box-shadow: 0 8px 22px rgba(30,51,32,.1); }
.train-card h3 { font-size: 17px; color: var(--moss); margin-bottom: 6px; }
.train-card p { font-size: 14.5px; line-height: 1.55; color: #4A5546; }
.audience-line { margin-top: 24px; font-size: 15px; font-weight: 600; color: var(--ember-text); }
.audience-line strong { color: var(--moss); }
@media (max-width: 860px) { .train-grid { grid-template-columns: 1fr; } .who--compact .who-content { padding: 30px 22px; } }
/* retreat who: styled portrait photos */
.retreat-page .who--sage .who-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; align-items: center; padding: 44px 30px; background: radial-gradient(circle at 30% 35%, rgba(242,185,138,.45), transparent 62%), radial-gradient(circle at 80% 80%, rgba(255,255,255,.55), transparent 55%); }
.retreat-page .who--sage .who-img { position: static; width: 100%; height: auto; aspect-ratio: 3 / 4; grid-column: auto; border: 8px solid #fff; border-bottom-width: 22px; border-radius: 3px; box-shadow: 0 14px 30px rgba(30,51,32,.28); object-fit: cover; transform: rotate(var(--r, 0deg)); }
.retreat-page .who--sage .who-img-1 { --r: -3deg; margin-top: 26px; }
.retreat-page .who--sage .who-img-2 { --r: 2.5deg; margin-top: -18px; }
.retreat-page .who--sage .who-img-3 { --r: -2deg; margin-top: 40px; }
@media (max-width: 860px) { .retreat-page .who--sage .who-gallery { gap: 12px; padding: 28px 16px; } .retreat-page .who--sage .who-img { border-width: 5px; border-bottom-width: 14px; } }

/* ---- v21 additions ---- */
.jr-sec { margin-bottom: 8px; }
.jr-sec h4 { font-family: "Poppins", sans-serif; font-size: 11.5px; letter-spacing: 1.8px; text-transform: uppercase; color: var(--dc); margin: 0 0 2px; font-weight: 700; }
.retreat-page .journey--v3 .jr-day .jr-sec p { font-size: 13.5px; line-height: 1.5; margin-bottom: 0; }
.bf-block h2 { margin-bottom: 52px; line-height: 1.75; }
.bf-block .scribble { padding-bottom: .5em; }
.bf-block .bf-flow { margin-top: 8px; }
/* city section: distinct blue-tint background */
.invite--city { background: #E4F0F5; border-top: 4px solid var(--ember); }
.invite--city .invite-card { border-top-color: #2E8196; }
.city-status { display: grid; gap: 12px; margin-top: 22px; }
.city-block { background: #fff; border-radius: 8px; padding: 14px 18px; box-shadow: 0 6px 16px rgba(46,129,150,.14); }
.city-block p { margin: 6px 0 0; font-weight: 600; color: var(--moss); font-size: 15px; }
.invite-copy .city-block .city-note { font-weight: 500; color: #4A5546; font-size: 13.5px; margin-top: 2px; }
.city-tag { display: inline-block; font-size: 11px; letter-spacing: 1.6px; text-transform: uppercase; font-weight: 700; color: #fff; padding: 3px 11px; border-radius: 999px; }
.city-tag--on { background: #2E8196; } .city-tag--soon { background: var(--ember-text); }
/* about: one-line heading, 2-line intro, audience icons */
.training .lead { max-width: 1020px; font-size: 17px; }
.br-wide { display: inline; }
@media (max-width: 860px) { .br-wide { display: none; } }
.audience { margin-top: 30px; }
.aud-title { font-family: "Poppins", sans-serif; font-weight: 600; font-size: 18px; color: var(--moss); margin-bottom: 16px; }
.aud-grid { list-style: none; display: grid; grid-template-columns: repeat(6, 1fr); gap: 14px; max-width: 980px; margin: 0 auto; padding: 0; }
.aud-grid li { display: flex; flex-direction: column; align-items: center; gap: 10px; background: #fff; border-radius: 10px; padding: 18px 8px 14px; box-shadow: 0 8px 20px rgba(30,51,32,.12); }
.aud-ic { width: 58px; height: 58px; border-radius: 50%; background: var(--sage); color: var(--ember-text); display: inline-flex; align-items: center; justify-content: center; }
.aud-lb { font-weight: 700; font-size: 14px; color: var(--moss); line-height: 1.25; }
@media (max-width: 860px) { .aud-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 480px) { .aud-grid { grid-template-columns: repeat(2, 1fr); } }

/* ============================================================
   v23 UPDATE — header no longer fixed, dark closing bands,
   compact retreat blocks, portrait testimonial strip,
   hand-drawn doodles + marker highlights, theme city section
   ============================================================ */

/* ---------- header: absolute, scrolls away with the page (no double CTA) ---------- */
.site-nav { position: absolute; }
.nav-offset { padding-top: 120px; }
section[id] { scroll-margin-top: 24px; }

/* ---------- final CTA: one dark band on every page, matching the footer ---------- */
.final-cta, .retreat-page .final-cta { background: var(--moss-deep); color: var(--sage); }
.final-cta h2, .retreat-page .final-cta h2 { color: var(--paper); }
.final-cta p, .retreat-page .final-cta p { color: var(--sage); opacity: 1; }
.final-cta .button--outline-light, .retreat-page .final-cta .button--outline-light { border: 2px solid var(--paper); color: var(--paper); background: transparent; }

/* ---------- "Not in your city yet": sage + ember, consistent with the theme ---------- */
.invite--city { background: var(--sage); border-top: 4px solid var(--ember); }
.invite--city .invite-card { border-top-color: var(--moss); }
.city-block { box-shadow: 0 6px 16px rgba(30,51,32,.12); }
.city-tag--on { background: var(--moss); }
.city-tag--soon { background: var(--ember-text); }

/* ---------- program highlights: compact boxes, small square images ---------- */
.retreat-page .highlights--dark { padding: 48px 24px 56px; }
.retreat-page .prog-grid { grid-template-columns: repeat(2, 1fr); gap: 14px; max-width: 980px; }
.retreat-page .prog-card { min-height: 0; align-items: center; }
.retreat-page .prog-card img, .retreat-page .prog-card .prog-tile { width: 138px; height: auto; min-height: 0; flex: none; order: 2; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 6px; }
.retreat-page .prog-card .prog-body { padding: 14px 18px; }
.highlights--dark .prog-body h3 { font-size: 15.5px; }
.highlights--dark .prog-body p { font-size: 12.8px; line-height: 1.5; }
.prog-sub { display: block; font-family: "Poppins", sans-serif; font-size: 10.5px; letter-spacing: 2px; text-transform: uppercase; font-weight: 700; color: var(--c, #A85A2E); margin: 2px 0 5px; }
.highlights--dark .prog-body span.prog-sub { display: block; width: auto; height: auto; background: none; color: var(--c, #A85A2E); letter-spacing: 2px; margin: 2px 0 5px; }
@media (max-width: 760px) { .retreat-page .prog-grid { grid-template-columns: 1fr; } .retreat-page .prog-card img, .retreat-page .prog-card .prog-tile { width: 108px; } }

/* ---------- who: smaller section ---------- */
.retreat-page .who--sage .who-content { padding: 40px 34px; }
.retreat-page .who--sage h2 { font-size: clamp(26px, 3vw, 40px); }
.retreat-page .who--sage li { padding-top: 10px; padding-bottom: 10px; font-size: 14.5px; }
.retreat-page .who--sage .who-gallery { padding: 28px 18px; gap: 12px; }
.retreat-page .who--sage .who-img { border-width: 5px; border-bottom-width: 13px; box-shadow: 0 10px 22px rgba(30,51,32,.22); }
.retreat-page .who--sage .who-img-1 { margin-top: 14px; }
.retreat-page .who--sage .who-img-2 { margin-top: -10px; }
.retreat-page .who--sage .who-img-3 { margin-top: 20px; }
.retreat-page .who--sage .button { margin-top: 18px; }

/* ---------- testimonials: portrait cards in a scrollable strip ---------- */
.testimonial-strip-wrap { position: relative; max-width: 1240px; margin: 0 auto; padding: 0 60px; }
.testimonial-strip { display: flex; gap: 18px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 4px 4px 10px; scrollbar-width: none; overscroll-behavior-x: contain; }
.testimonial-strip::-webkit-scrollbar { display: none; }
.testimonial-strip .testimonial-card { flex: 0 0 296px; height: 430px; scroll-snap-align: start; }
.testimonial-strip .testimonial-card .caption { padding: 22px 20px; }
.testimonial-strip .testimonial-card p.quote { font-size: 15px; line-height: 1.5; margin-bottom: 0; }
.testimonial-strip .testimonial-card .quote::before { font-size: 44px; height: 20px; margin-bottom: 2px; }
.t-strip-arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 4; width: 46px; height: 46px; border-radius: 50%; border: none; cursor: pointer; background: var(--paper); color: var(--moss); font-size: 24px; line-height: 1; box-shadow: 0 6px 20px rgba(18,32,15,.25); }
.t-strip-arrow.t-prev { left: 8px; } .t-strip-arrow.t-next { right: 8px; }
@media (max-width: 720px) {
  .testimonial-strip-wrap { padding: 0 44px; }
  .testimonial-strip .testimonial-card { flex-basis: 72vw; height: 400px; }
  .t-strip-arrow { width: 38px; height: 38px; font-size: 20px; }
  .t-strip-arrow.t-prev { left: 2px; } .t-strip-arrow.t-next { right: 2px; }
}

/* ---------- welcome: pie blends in, bigger; heading fits two lines ---------- */
.retreat-page .welcome { padding: 48px 24px 28px; }
.welcome h2 { max-width: 1080px; font-size: clamp(16px, 2vw, 23px); }
.welcome-img { max-width: 1080px; border-radius: 0; box-shadow: none; }

/* ---------- day-by-day: long names wrap neatly ---------- */
.retreat-page .jr-day h3 { font-size: 17px; line-height: 1.3; }

/* ---------- experiences page ---------- */
/* photo mosaic so the page is not text-only */
.exp-mosaic { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; max-width: 1240px; margin: 0 auto; }
.exp-mosaic img { width: 100%; height: 250px; object-fit: cover; border-radius: 6px; }
.exp-mosaic img.m-first { grid-column: span 2; }
@media (max-width: 860px) { .exp-mosaic { grid-template-columns: 1fr 1fr; } .exp-mosaic img { height: 170px; } }
@media (max-width: 560px) { .exp-mosaic { grid-template-columns: 1fr; } .exp-mosaic img, .exp-mosaic img.m-first { grid-column: span 1; height: 200px; } }
/* GOING DEEPER: image fills the card's full vertical space */
#retreat .retreat-card-lg { min-height: 500px; align-items: stretch; }
#retreat .retreat-card-lg img { height: 100%; max-height: none; min-height: 500px; width: 100%; object-fit: cover; }
#retreat .retreat-card-lg .body { padding: 44px 48px; }

/* ---------- gallery: wider experience-8; phone-sized tiles ---------- */
.exp-carousel > img.exp-wide { aspect-ratio: 16 / 10; object-fit: cover; }
@media (max-width: 640px) {
  .gallery-section { height: auto; min-height: 0; }
  .exp-carousel-wrap { flex: none; height: 330px; }
}

/* ---------- hand-drawn doodles (LBD-style marginalia) ---------- */
.doodle { display: inline-block; width: 30px; height: 30px; vertical-align: -4px; color: var(--ember-text); opacity: .9; }
.doodle svg { width: 100%; height: 100%; display: block; }
.doodle--dawn { color: #F2B98A; }
.doodle--flip { transform: scaleX(-1); }

/* ---------- marker highlight: colour scribbled over text ---------- */
.marker { padding: .02em .16em; border-radius: .25em; background: linear-gradient(100deg, rgba(242,185,138,0) 0%, rgba(242,185,138,.55) 7%, rgba(242,185,138,.4) 93%, rgba(242,185,138,0) 100%); }

/* ---------- groups page: compact cards, same as the experiences page ---------- */
.groups-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; max-width: 900px; margin: 0 auto; }
@media (max-width: 860px) { .groups-grid { grid-template-columns: 1fr; } }

/* ============================================================
   v24 UPDATE — light closing band, pill buttons, bigger
   testimonial tiles, portrait gallery end, program images
   ============================================================ */

/* ---------- final CTA: light band on every page, clearly separate from the dark footer ---------- */
.final-cta, .retreat-page .final-cta { background: linear-gradient(180deg, var(--sage-deep) 0%, var(--sage) 100%); color: var(--ink); }
.final-cta h2, .retreat-page .final-cta h2 { color: var(--moss); }
.final-cta p, .retreat-page .final-cta p { color: #4a5546; opacity: 1; }
.final-cta .button--outline-light, .retreat-page .final-cta .button--outline-light { border: 2px solid var(--moss); color: var(--moss); background: transparent; }

/* ---------- buttons: rounded like the fixed "Request an invite" pill ---------- */
.button, .nav-cta { border-radius: 999px; }

/* ---------- gallery: last photo portrait, same shape as the others ---------- */
.exp-carousel > img.exp-wide { aspect-ratio: 3 / 4; width: auto; height: 100%; object-fit: cover; }

/* ---------- testimonials: EVEN bigger portrait tiles with curved edges ---------- */
.testimonial-strip .testimonial-card { flex: 0 0 420px; height: 560px; border-radius: 22px; }
.testimonial-strip .testimonial-card .caption { padding: 28px 26px; }
.testimonial-strip .testimonial-card .scrim { border-radius: 22px; }
.testimonial-strip .testimonial-card p.quote { font-size: 16.5px; }
.testimonial-strip .testimonial-card .quote::before { font-size: 50px; }
@media (max-width: 720px) { .testimonial-strip .testimonial-card { flex-basis: 82vw; height: 520px; } }

/* ---------- doodle arrow: now points DOWN everywhere ---------- */
.doodle--down, .doodle { transform: rotate(100deg); }
.doodle--dawn.doodle--flip, .doodle--flip { transform: rotate(100deg) scaleX(-1); }

/* ---------- experiences page: no two adjacent sections share a background ----------
   order: hero(moss) -> retreat(paper) -> 1-on-1(moss) -> moments(paper)
   -> groups(sage) -> your-city(PAPER) -> final-cta(sage gradient). Two
   paper sections are never adjacent on this page: moments(paper) sits
   between 1-on-1 and groups, and your-city(paper) sits between
   groups(sage) and the final-cta(sage) - so paper sections are always
   separated by a sage or moss band. */
.invite--city { background: var(--paper); border-top: 4px solid var(--ember); }
.invite--city .invite-card { border-top-color: var(--moss); }
.invite--city .city-block { background: var(--sage); box-shadow: 0 6px 16px rgba(30,51,32,.10); }
.invite--city .invite-copy > p { color: #3d4a37; }

/* ---------- program highlights: image bigger, fills the tile vertically ---------- */
.retreat-page .prog-card { align-items: stretch; }
.retreat-page .prog-card img, .retreat-page .prog-card .prog-tile { width: 44%; height: auto; min-height: 200px; align-self: stretch; aspect-ratio: auto; object-fit: cover; border-radius: 6px; }
.retreat-page .prog-card .prog-body { align-self: center; }
.highlights--dark .prog-body h3 { font-size: 16.5px; }
.highlights--dark .prog-body p { font-size: 13.5px; line-height: 1.55; }
@media (max-width: 760px) {
  .retreat-page .prog-card img, .retreat-page .prog-card .prog-tile { width: 40%; min-height: 170px; }
  .highlights--dark .prog-body h3 { font-size: 15px; }
  .highlights--dark .prog-body p { font-size: 12.5px; }
}

/* ============================================================
   v26 UPDATE — reliable form + WhatsApp backup, even bigger
   testimonial tiles, down doodles, sage-deep city section,
   simple refund copy
   ============================================================ */

/* ---------- "Also send on WhatsApp" backup button on the thank-you screen ---------- */
.invite-done .wa-backup { display: inline-block; margin-top: 18px; background: var(--moss); }

/* ---------- testimonial arrows sit at the bottom of the taller tiles ---------- */
.t-strip-arrow { top: 46%; }
