:root {
  --font-display: Georgia, "Times New Roman", serif;
  --font-body: "Avenir Next", Avenir, "Segoe UI", Arial, sans-serif;
  --type-display: clamp(3rem, 6vw, 6.5rem);
  --type-section: clamp(2.4rem, 4.2vw, 4.5rem);
  --type-subheading: clamp(1.7rem, 2.5vw, 2.6rem);
  --type-quote: clamp(2.7rem, 4.2vw, 4rem);
  --type-body: clamp(1rem, 1.25vw, 1.12rem);
  --type-lead: clamp(1.05rem, 2vw, 1.4rem);
  --type-cta: clamp(1rem, 1.15vw, 1.15rem);
  --type-small: 0.8rem;
  --type-brand: 1.3rem;
}
body { font-family: var(--font-body) !important; font-size: var(--type-body) !important; }
h1,.type-display { font-family:var(--font-display)!important; font-size:var(--type-display)!important; font-weight:400!important; }
h2,.type-section { font-family:var(--font-display)!important; font-size:var(--type-section)!important; font-weight:400!important; }
h3,.person-name,.founder-name,.type-subheading { font-family:var(--font-display)!important; font-size:var(--type-subheading)!important; font-weight:400!important; }
blockquote,.dates-list strong,.glance-grid strong,.type-quote { font-family:var(--font-display)!important; font-size:var(--type-quote)!important; font-weight:400!important; }
p,li,.body-copy,.type-body { font-family:var(--font-body)!important; font-size:var(--type-body)!important; }
.intro,.hero-content>p,.type-lead { font-family:var(--font-body)!important; font-size:var(--type-lead)!important; }
.button,.gentle-cta,.text-link,.story-link,.journey-tab,.journeys-link a,.more-reflections a,.type-cta { font-family:var(--font-display)!important; font-size:var(--type-cta)!important; }
.main-nav,.eyebrow,.meta,.way-number,.scroll-label,.type-small { font-family:var(--font-body)!important; font-size:var(--type-small)!important; }
.brand,.type-brand { font-family:var(--font-display)!important; font-size:var(--type-brand)!important; }
.brand { display:inline-block!important; width:clamp(165px,16vw,220px)!important; height:clamp(36px,4vw,50px)!important; font-size:0!important; line-height:0!important; background-image:url('/Feels-Like-Om-Logo-Line.png')!important; background-repeat:no-repeat!important; background-position:left center!important; background-size:contain!important; flex:0 0 auto!important; }
.opening-quote blockquote,.community-quote blockquote { font-size:var(--type-section)!important; line-height:1.08!important; }
.opening-quote blockquote { width:min(1100px,92%)!important; }
.program-intro-inner { gap:clamp(6rem,12vw,11rem)!important; }
.program-images { display:none!important; }
.program-row-left,.program-row-right { max-width:456px!important; }
.program-row-right { font-size:0!important; }
.program-row-right::before { content:"Ease yourself into how life is lived in Yuksom. The days are unhurried, but your hands are busy and your heart is full. Churn butter, forage in the forest, learn the art of bamboo weaving."; display:block; font-family:var(--font-body); font-size:var(--type-body); line-height:1.7; }
.rhythm { background:#f4efe5!important; color:#18301f!important; padding-top:clamp(7rem,12vw,11rem)!important; padding-bottom:clamp(8rem,14vw,13rem)!important; }
.rhythm .wide { width:min(1180px,100%)!important; }
.rhythm h2 { margin-bottom:clamp(4rem,8vw,7rem)!important; }
.days-grid { display:block!important; border:0!important; }
.days-grid article { display:grid!important; grid-template-columns:minmax(230px,36%) minmax(0,64%)!important; column-gap:clamp(2.5rem,6vw,6rem)!important; align-items:start!important; padding:clamp(2.4rem,4vw,4rem) 0!important; border:0!important; }
.days-grid article:nth-child(n) { padding-left:0!important; border-left:0!important; }
.days-grid article>span { grid-column:1!important; display:block; margin:0 0 .75rem; font-family:var(--font-body)!important; font-size:var(--type-small)!important; letter-spacing:.1em; text-transform:uppercase; opacity:.68; }
.days-grid article>h3 { grid-column:1!important; margin:0!important; max-width:290px; font-size:var(--type-subheading)!important; line-height:1.12!important; }
.days-grid article::after,.days-grid article>.day-detail { grid-column:2!important; grid-row:1/span 2!important; align-self:stretch; display:block; margin:0; padding-left:clamp(2rem,4vw,4rem); border-left:1px solid rgba(24,48,31,.42); font-family:var(--font-body); font-size:var(--type-body); line-height:1.8; white-space:pre-line; }
.days-grid article:nth-child(1)::after { content:"• Arrive at Bagdogra Airport\A• Private transportation to accommodation\A• Welcome dinner & trip orientation"; }
.days-grid article:nth-child(2)::after { content:"• Setting intentions at Kathok Lake\A• Village orientation, historical & cultural storytelling\A• Lunch in the market"; }
.days-grid article:nth-child(3)::after { content:"• Meet Phurki (Elan’s cow) at Ejam homestay\A• Churn butter from Phurki’s milk\A• Make cottage cheese\A• Farm-to-table lunch preparation over firewood"; }
.days-grid article:nth-child(4)::after { content:"• Foraging hike in the nearby forest with village women\A• Forest-to-plate lunch at a scenic viewpoint"; }
.days-grid article:nth-child(5)::after { content:"• Embrace what life brings :-)"; }
.days-grid article:nth-child(6)::after { content:"• 1–2h drive to starting point of the trek\A• Ascend ~40%\A• Trek about 3–4 hours"; }
.days-grid article:nth-child(7)::after { content:"• Complete the remaining 60%\A• Summit is at 3,340m\A• Trek about 5–6 hours"; }
.days-grid article:nth-child(8)::after { content:"• Make time+space for yourself\A• Learn firewood gathering (optional)\A• BYOM — bring your own marshmallows\A• Campfire conversations"; }
.days-grid article:nth-child(9)::after { content:"• Break camp after breakfast\A• Return to Yuksom"; }
.days-grid article:nth-child(10)::after { content:"• Day trip to a hot spring, known to have healing properties\A• Lunch along the way"; }
.days-grid article:nth-child(11)::after { display:none; content:none; }
.faq-cta .button { background:transparent!important; color:#18301f!important; border-color:#18301f!important; transition:background-color 180ms ease,color 180ms ease,border-color 180ms ease!important; }
.faq-cta .button:hover,.faq-cta .button:focus-visible { background:#18301f!important; color:#f4efe5!important; border-color:#18301f!important; }
.faq-section { background:#eee7da!important; }
.faq-section h2 { margin-bottom:clamp(2rem,4vw,3.5rem)!important; }
.faq-section .faq-list summary { padding:1.5rem 3rem 1.5rem 0!important; font-family:var(--font-display)!important; font-size:clamp(1.25rem,1.8vw,1.65rem)!important; line-height:1.25!important; }
.faq-section .faq-list summary::after { font-size:1.5rem!important; }
.faq-section .faq-answer { width:100%!important; max-width:650px!important; padding:0 0 1.6rem!important; }
.faq-section .faq-answer p { margin:.6rem 0 0!important; }
.trek-copy>p:nth-of-type(5) { display:none!important; }
@media (hover:hover) and (pointer:fine) { .main-nav .nav-dropdown .submenu { opacity:0!important; visibility:hidden!important; transform:translateY(-4px)!important; pointer-events:none!important; } .main-nav .nav-dropdown:hover .submenu { opacity:1!important; visibility:visible!important; transform:translateY(0)!important; pointer-events:auto!important; } }
@media (max-width:760px) { :root { --type-display:clamp(2.65rem,13vw,4.5rem); --type-section:clamp(2.2rem,10vw,3.4rem); --type-subheading:clamp(1.6rem,7vw,2.3rem); --type-quote:clamp(2.6rem,10vw,3.7rem); --type-body:1rem; --type-lead:1.05rem; --type-small:.7rem; } .brand { width:165px!important; height:38px!important; } .opening-quote blockquote { width:100%!important; } .program-intro-inner { gap:3.5rem!important; } .program-row-left,.program-row-right { max-width:100%!important; } .days-grid article { grid-template-columns:1fr!important; gap:1.25rem!important; padding:2rem 0 2.5rem!important; } .days-grid article>span,.days-grid article>h3,.days-grid article::after,.days-grid article>.day-detail { grid-column:1!important; } .days-grid article::after,.days-grid article>.day-detail { grid-row:auto!important; padding:1.25rem 0 0!important; border-left:0!important; border-top:1px solid rgba(24,48,31,.28); } .faq-section .faq-list summary { padding:1.3rem 2.5rem 1.3rem 0!important; } .teacher-section { grid-template-columns:1fr!important; } .teacher-section .teacher-copy { display:contents!important; } .teacher-section .teacher-media { grid-column:1!important; grid-row:4!important; width:100%!important; margin:.5rem 0 1.5rem!important; } .stay-longer::before { content:"Full-width field immersion photograph"; display:flex!important; align-items:center; justify-content:center; width:calc(100% + 2.5rem); min-height:280px; margin:-4.5rem -1.25rem 4.5rem; background:rgba(244,239,229,.08); border-top:1px solid rgba(244,239,229,.2); border-bottom:1px solid rgba(244,239,229,.2); color:rgba(244,239,229,.55); text-align:center; padding:1rem; } }
#accommodation .accommodation-portrait,.accommodation-gallery .accommodation-landscape { background-size:cover!important; background-position:center center!important; background-repeat:no-repeat!important; border:0!important; }
#accommodation .accommodation-portrait span,.accommodation-gallery .accommodation-landscape span { display:none!important; }
#accommodation .accommodation-portrait { background-image:url('/flagship-accommodation-portrait.jpg')!important; }
.accommodation-gallery .accommodation-landscape:nth-child(1) { background-image:url('/flagship-accommodation-1.jpg')!important; }
.accommodation-gallery .accommodation-landscape:nth-child(2) { background-image:url('/flagship-accommodation-2.jpg')!important; }
.accommodation-gallery .accommodation-landscape:nth-child(3) { background-image:url('/flagship-accommodation-3.jpg')!important; }
.accommodation-gallery .accommodation-landscape:nth-child(4) { background-image:url('/flagship-accommodation-4.jpg')!important; }
.story-section-place .story-media,.story-section-reflection .story-media { background-repeat:no-repeat!important; border:0!important; }
.story-section-place .story-media span,.story-section-reflection .story-media span { display:none!important; }
.story-section-place .story-media { background-image:url('/flagship-yuksom.jpg')!important; background-size:contain!important; background-position:center center!important; min-height:clamp(220px,25vw,330px)!important; aspect-ratio:4/3!important; }
.story-section-reflection .story-media { background-image:url('/flagship-reflection.jpg')!important; background-size:cover!important; background-position:center center!important; }
#food.food-grid { grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr)!important; gap:clamp(5rem,9vw,9rem)!important; }
#food .image-stack { display:grid!important; grid-template-columns:1fr!important; gap:clamp(1rem,2vw,1.5rem)!important; align-self:stretch!important; }
#food .image-stack::after { content:none!important; display:none!important; }
#food .image-stack>.image-placeholder { width:100%!important; min-height:clamp(300px,31vw,430px)!important; aspect-ratio:4/3!important; background-size:cover!important; background-position:center center!important; background-repeat:no-repeat!important; transform:none!important; margin:0!important; border:0!important; }
#food .image-stack>.image-placeholder:first-child { background-image:url('/ejam-food-1.jpg')!important; }
#food .image-stack>.image-placeholder:nth-child(2) { background-image:url('/ejam-food-2.jpg')!important; }
#food .image-stack>.image-placeholder span { display:none!important; }
#trek .trek-photo-placeholder { min-height:0!important; background-position:center center!important; background-repeat:no-repeat!important; border:0!important; padding:0!important; }
#trek .trek-photo-placeholder span { display:none!important; }
#trek .trek-gallery-primary,#trek .trek-gallery-secondary { width:min(1100px,calc(100vw - 8vw))!important; display:grid!important; grid-template-columns:repeat(12,minmax(0,1fr))!important; align-items:stretch!important; gap:clamp(.7rem,1.4vw,1.1rem)!important; }
#trek .trek-gallery-primary { margin:clamp(2.5rem,5vw,4.5rem) 0 clamp(4rem,7vw,6rem)!important; }
#trek .trek-gallery-primary .trek-photo-placeholder { background-size:cover!important; }
#trek .trek-gallery-primary .trek-photo-placeholder:nth-child(1) { grid-column:1/span 7; grid-row:1/span 2; aspect-ratio:4/5!important; background-image:url('/flagship-trek-1.jpg')!important; }
#trek .trek-gallery-primary .trek-photo-placeholder:nth-child(2) { grid-column:8/span 5; aspect-ratio:4/3!important; background-image:url('/flagship-trek-2.jpg')!important; }
#trek .trek-gallery-primary .trek-photo-placeholder:nth-child(3) { grid-column:8/span 5; aspect-ratio:3/2!important; background-image:url('/flagship-trek-3.jpg')!important; }
#trek .trek-gallery-primary .trek-photo-placeholder:nth-child(4) { grid-column:2/span 4; aspect-ratio:3/4!important; margin-top:clamp(1rem,3vw,2.5rem)!important; background-image:url('/flagship-trek-4.jpg')!important; }
#trek .trek-gallery-primary .trek-photo-placeholder:nth-child(5) { grid-column:6/span 7; aspect-ratio:16/10!important; margin-top:clamp(1rem,3vw,2.5rem)!important; background-image:url('/flagship-trek-5.jpg')!important; }
#trek .trek-gallery-secondary { margin:clamp(4rem,7vw,6rem) 0 clamp(5rem,8vw,7rem)!important; column-gap:clamp(1.5rem,3vw,2.5rem)!important; row-gap:clamp(2rem,4vw,3.5rem)!important; align-items:start!important; }
#trek .trek-gallery-secondary .trek-photo-placeholder { background-size:contain!important; background-color:transparent!important; margin:0!important; }
#trek .trek-gallery-secondary .trek-photo-placeholder:nth-child(1) { grid-column:1/span 6; grid-row:1/span 2; aspect-ratio:4/5!important; background-image:url('/flagship-trek-6.jpg')!important; }
#trek .trek-gallery-secondary .trek-photo-placeholder:nth-child(2) { grid-column:7/span 6; aspect-ratio:4/3!important; background-image:url('/flagship-trek-7.jpg')!important; }
#trek .trek-gallery-secondary .trek-photo-placeholder:nth-child(3) { grid-column:7/span 6; aspect-ratio:3/2!important; background-image:url('/flagship-trek-8.jpg')!important; }
#trek .trek-gallery-secondary .trek-photo-placeholder:nth-child(4) { grid-column:3/span 7; aspect-ratio:3/2!important; margin-top:clamp(.5rem,1.5vw,1.25rem)!important; background-image:url('/flagship-trek-9.jpg')!important; }
#reflections .reflection-card { appearance:none; display:block; width:100%; aspect-ratio:1; padding:0; border:0; background:transparent; cursor:zoom-in; overflow:hidden; }
#reflections .reflection-card img { display:block; width:100%; height:100%; object-fit:cover; transition:transform 180ms ease; }
#reflections .reflection-card:hover img,#reflections .reflection-card:focus-visible img { transform:scale(1.02); }
#reflections .reflection-card:focus-visible { outline:2px solid #18301f; outline-offset:4px; }
.reflection-lightbox { width:min(92vw,980px); max-width:980px; max-height:92vh; padding:clamp(1rem,2vw,1.5rem); border:0; background:#f4efe5; box-shadow:0 24px 70px rgba(7,18,11,.32); overflow:auto; }
.reflection-lightbox::backdrop { background:rgba(7,18,11,.78); backdrop-filter:blur(4px); }
.reflection-lightbox img { display:block; width:100%; height:auto; max-height:calc(92vh - 3rem); object-fit:contain; }
.reflection-lightbox-close { position:sticky; top:0; float:right; z-index:3; width:2.5rem; height:2.5rem; margin:0 0 -2.5rem auto; border:0; border-radius:999px; background:rgba(244,239,229,.94); color:#18301f; font-family:var(--font-body); font-size:1.8rem; line-height:1; cursor:pointer; }
.reflection-lightbox-nav { position:fixed; top:50%; z-index:4; width:3rem; height:3rem; border:1px solid rgba(24,48,31,.18); border-radius:999px; background:rgba(244,239,229,.94); color:#18301f; font-family:var(--font-display); font-size:2rem; line-height:1; cursor:pointer; transform:translateY(-50%); box-shadow:0 8px 24px rgba(7,18,11,.16); }
.reflection-lightbox-prev { left:max(1rem,calc(50vw - 530px)); }
.reflection-lightbox-next { right:max(1rem,calc(50vw - 530px)); }
@media (max-width:900px) { #food.food-grid { grid-template-columns:1fr!important; gap:3rem!important; } }
@media (max-width:700px) { #food .image-stack { order:1!important; } #food .copy-block { order:2!important; } #food .image-stack>.image-placeholder { min-height:0!important; aspect-ratio:4/3!important; } .story-section-place .story-media { width:100%!important; min-height:0!important; aspect-ratio:4/3!important; } #trek .trek-gallery-primary,#trek .trek-gallery-secondary { width:100%!important; grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:.8rem!important; } #trek .trek-gallery-primary .trek-photo-placeholder:nth-child(n),#trek .trek-gallery-secondary .trek-photo-placeholder:nth-child(n) { grid-column:auto!important; grid-row:auto!important; margin:0!important; aspect-ratio:4/3!important; } #trek .trek-gallery-primary .trek-photo-placeholder:first-child,#trek .trek-gallery-secondary .trek-photo-placeholder:first-child { grid-column:1/-1!important; aspect-ratio:16/10!important; } .reflection-lightbox { width:96vw; max-height:94vh; padding:.75rem; } .reflection-lightbox-nav { width:2.6rem; height:2.6rem; font-size:1.6rem; } .reflection-lightbox-prev { left:.65rem; } .reflection-lightbox-next { right:.65rem; } }

/* The Flagship About section: five uploaded photographs woven into the intro. */
.program-images {
  display:grid!important;
  grid-template-columns:repeat(12,minmax(0,1fr))!important;
  gap:clamp(1rem,2.5vw,2rem)!important;
  align-items:start!important;
}
.program-images .program-image {
  min-height:0!important;
  margin:0!important;
  background-repeat:no-repeat!important;
  background-position:center!important;
  background-size:cover!important;
  border:0!important;
}
.program-images .program-image span { display:none!important; }
.program-images .program-image-large {
  grid-column:1/span 7!important;
  aspect-ratio:4/5!important;
  background-image:url('/flagship-about-1.jpg')!important;
}
.program-images .program-image-small {
  grid-column:8/span 5!important;
  aspect-ratio:4/3!important;
  background-image:url('/flagship-about-2.jpg')!important;
}
.program-images::before {
  content:"";
  grid-column:8/span 5;
  aspect-ratio:4/3;
  display:block;
  margin-top:clamp(.25rem,1.5vw,1rem);
  background:url('/flagship-about-3.jpg') center/cover no-repeat;
}
.program-images::after {
  content:"";
  grid-column:2/span 10;
  display:block;
  aspect-ratio:16/7;
  margin-top:clamp(1rem,3vw,2.5rem);
  background-image:url('/flagship-about-4.jpg'),url('/flagship-about-5.jpg');
  background-repeat:no-repeat,no-repeat;
  background-position:left center,right center;
  background-size:48% auto,48% auto;
}
@media (max-width:700px) {
  .program-images { grid-template-columns:1fr!important; gap:1rem!important; }
  .program-images .program-image-large,
  .program-images .program-image-small,
  .program-images::before,
  .program-images::after {
    grid-column:1!important;
    width:100%!important;
    margin:0!important;
  }
  .program-images .program-image-large { aspect-ratio:4/5!important; }
  .program-images .program-image-small,
  .program-images::before { aspect-ratio:4/3!important; }
  .program-images::after {
    aspect-ratio:4/3;
    background-image:url('/flagship-about-4.jpg');
    background-size:cover;
  }
  .program-images::after { box-shadow:0 0 0 0 transparent; }
  .program-intro-inner::after {
    content:"";
    display:block;
    width:100%;
    aspect-ratio:4/3;
    background:url('/flagship-about-5.jpg') center/cover no-repeat;
  }
}

/* Requested refinements: tidy trek grid, swap About 1/5, and homepage dots. */
#trek .trek-gallery-secondary {
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:clamp(1.25rem,2.4vw,2rem)!important;
  width:min(1100px,calc(100vw - 8vw))!important;
}
#trek .trek-gallery-secondary .trek-photo-placeholder:nth-child(n) {
  grid-column:auto!important;
  grid-row:auto!important;
  aspect-ratio:16/10!important;
  margin:0!important;
  background-size:contain!important;
  background-position:center!important;
  background-repeat:no-repeat!important;
}

.program-images .program-image-large {
  background-image:url('/flagship-about-5.jpg')!important;
  aspect-ratio:4/5!important;
}
.program-images::after {
  background-image:url('/flagship-about-4.jpg'),url('/flagship-about-1.jpg')!important;
  background-repeat:no-repeat,no-repeat!important;
  background-position:left center,right center!important;
  background-size:48% auto,48% auto!important;
}

.flagship-carousel-dots button {
  background:#f4efe5!important;
  border:1px solid #111!important;
}
.flagship-carousel-dots button.is-active {
  background:#18301f!important;
  border-color:#111!important;
}

@media (max-width:700px) {
  #trek .trek-gallery-secondary {
    grid-template-columns:1fr!important;
    gap:1rem!important;
  }
  #trek .trek-gallery-secondary .trek-photo-placeholder:nth-child(n) {
    aspect-ratio:16/10!important;
  }
  .program-images .program-image-large {
    background-image:url('/flagship-about-5.jpg')!important;
    aspect-ratio:4/5!important;
  }
  .program-intro-inner::after {
    background:url('/flagship-about-1.jpg') center/contain no-repeat!important;
    aspect-ratio:16/10!important;
  }
}

/* Homepage Flagship carousel: Airbnb-style dot controls. */
.flagship-home-tile .flagship-carousel-dots {
  bottom:1.1rem!important;
  gap:.42rem!important;
  padding:.35rem .55rem!important;
  border-radius:999px!important;
  background:rgba(0,0,0,.12)!important;
  backdrop-filter:blur(3px)!important;
}
.flagship-home-tile .flagship-carousel-dots button {
  width:8px!important;
  height:8px!important;
  min-width:8px!important;
  min-height:8px!important;
  padding:0!important;
  border:0!important;
  border-radius:50%!important;
  background:#f4efe5!important;
  opacity:.68!important;
  box-shadow:0 1px 3px rgba(0,0,0,.22)!important;
  transition:opacity 160ms ease,transform 160ms ease!important;
}
.flagship-home-tile .flagship-carousel-dots button.is-active {
  opacity:1!important;
  transform:scale(1.16)!important;
  background:#f4efe5!important;
}

/* Latest Flagship image refinements. */
.story-section-place .story-media {
  width:115%!important;
  max-width:none!important;
  justify-self:center!important;
  min-height:clamp(250px,28.75vw,380px)!important;
  aspect-ratio:4/3!important;
  background-size:contain!important;
}

#trek .trek-gallery-secondary {
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:clamp(1.25rem,2.4vw,2rem)!important;
  align-items:stretch!important;
}
#trek .trek-gallery-secondary .trek-photo-placeholder:nth-child(n) {
  width:100%!important;
  aspect-ratio:4/3!important;
  grid-column:auto!important;
  grid-row:auto!important;
  margin:0!important;
  background-size:contain!important;
  background-position:center!important;
  background-repeat:no-repeat!important;
  background-color:rgba(244,239,229,.025)!important;
}

@media (max-width:700px) {
  .story-section-place .story-media {
    width:100%!important;
    min-height:0!important;
    aspect-ratio:4/3!important;
  }
  #trek .trek-gallery-secondary {
    grid-template-columns:1fr!important;
  }
  #trek .trek-gallery-secondary .trek-photo-placeholder:nth-child(n) {
    aspect-ratio:4/3!important;
  }
}

/* To Be Free image system. */
.hero:has(.hero-meta) {
  background-image:linear-gradient(0deg,rgba(7,18,11,.42),rgba(7,18,11,.08)),url('/to-be-free-hero.jpg')!important;
  background-size:cover!important;
  background-position:center!important;
  background-repeat:no-repeat!important;
}
.hero:has(.hero-meta)::before { background:none!important; }

/* Replace the original two About placeholders with a four-image editorial composition. */
.retreat-images {
  display:grid!important;
  grid-template-columns:repeat(12,minmax(0,1fr))!important;
  gap:clamp(1rem,2.5vw,2rem)!important;
  align-items:start!important;
}
.retreat-images .image-placeholder,
.retreat-images::before,
.retreat-images::after {
  min-height:0!important;
  border:0!important;
  padding:0!important;
  color:transparent!important;
  background-repeat:no-repeat!important;
  background-position:center!important;
}
.retreat-images .image-placeholder span { display:none!important; }
.retreat-images .retreat-image-large {
  grid-column:1/span 7!important;
  aspect-ratio:4/5!important;
  margin:0!important;
  background:url('/to-be-free-about-1.jpg') center/cover no-repeat!important;
}
.retreat-images .retreat-image-small {
  grid-column:8/span 5!important;
  aspect-ratio:4/3!important;
  width:100%!important;
  margin:0!important;
  background:url('/to-be-free-about-2.jpg') center/cover no-repeat!important;
}
.retreat-images::before {
  content:"";
  display:block;
  grid-column:8/span 5;
  aspect-ratio:4/3;
  margin-top:clamp(.25rem,1.5vw,1rem);
  background:url('/to-be-free-about-3.jpg') center/cover no-repeat!important;
}
.retreat-images::after {
  content:"";
  display:block;
  grid-column:2/span 10;
  aspect-ratio:16/7;
  margin-top:clamp(1rem,3vw,2.5rem);
  background:url('/to-be-free-about-4.jpg') center/cover no-repeat!important;
}

/* Three full-width landscape photographs, with 50% more height than the original placeholders. */
.who-section + .full-bleed-image-placeholder,
.teacher-section + .full-bleed-image-placeholder,
.retreat-rhythm + .full-bleed-image-placeholder {
  min-height:clamp(540px,75vw,1140px)!important;
  border:0!important;
  padding:0!important;
  background-size:cover!important;
  background-position:center!important;
  background-repeat:no-repeat!important;
  color:transparent!important;
}
.who-section + .full-bleed-image-placeholder { background-image:url('/to-be-free-landscape-1.jpg')!important; }
.teacher-section + .full-bleed-image-placeholder { background-image:url('/to-be-free-landscape-2.jpg')!important; }
.retreat-rhythm + .full-bleed-image-placeholder { background-image:url('/to-be-free-landscape-3.jpg')!important; }
.who-section + .full-bleed-image-placeholder span,
.teacher-section + .full-bleed-image-placeholder span,
.retreat-rhythm + .full-bleed-image-placeholder span { display:none!important; }

/* Teacher portrait. */
.teacher-section .teacher-media {
  background:url('/tshampo-portrait.jpg') center/cover no-repeat!important;
  border:0!important;
  color:transparent!important;
}
.teacher-section .teacher-media span { display:none!important; }

/* Reuse The Flagship accommodation set and preserve the existing arrangement. */
.details-row-accommodation .portrait-placeholder {
  background:url('/flagship-accommodation-portrait.jpg') center/cover no-repeat!important;
  border:0!important;
  color:transparent!important;
}
.details-gallery .landscape-placeholder:nth-child(1) { background:url('/flagship-accommodation-1.jpg') center/cover no-repeat!important; }
.details-gallery .landscape-placeholder:nth-child(2) { background:url('/flagship-accommodation-2.jpg') center/cover no-repeat!important; }
.details-gallery .landscape-placeholder:nth-child(3) { background:url('/flagship-accommodation-3.jpg') center/cover no-repeat!important; }
.details-gallery .landscape-placeholder:nth-child(4) { background:url('/flagship-accommodation-4.jpg') center/cover no-repeat!important; }
.details-row-accommodation .portrait-placeholder span,
.details-gallery .landscape-placeholder span { display:none!important; }
.details-gallery .landscape-placeholder { border:0!important; color:transparent!important; background-size:cover!important; background-position:center!important; background-repeat:no-repeat!important; }

/* Stay longer photographs. */
#stay-longer .image-stack .image-placeholder:nth-child(1) {
  background:url('/to-be-free-stay-longer-1.jpg') center/cover no-repeat!important;
  border:0!important;
  color:transparent!important;
}
#stay-longer .image-stack .image-placeholder:nth-child(2) {
  background:url('/to-be-free-stay-longer-2.jpg') center/cover no-repeat!important;
  border:0!important;
  color:transparent!important;
}
#stay-longer .image-stack .image-placeholder span { display:none!important; }

@media (max-width:700px) {
  .retreat-images { grid-template-columns:1fr!important; gap:1rem!important; }
  .retreat-images .retreat-image-large,
  .retreat-images .retreat-image-small,
  .retreat-images::before,
  .retreat-images::after {
    grid-column:1!important;
    width:100%!important;
    margin:0!important;
  }
  .retreat-images .retreat-image-large { aspect-ratio:4/5!important; }
  .retreat-images .retreat-image-small,
  .retreat-images::before,
  .retreat-images::after { aspect-ratio:4/3!important; }
  .who-section + .full-bleed-image-placeholder,
  .teacher-section + .full-bleed-image-placeholder,
  .retreat-rhythm + .full-bleed-image-placeholder { min-height:420px!important; }
  #stay-longer::before { content:none!important; display:none!important; }
}

/* Elan portrait used on both the homepage and Our Stories page. */
.elan-portrait,
.founder-card--placeholder .portrait-wrap--placeholder {
  background-image:url('/elan-portrait.jpg')!important;
  background-size:cover!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
  border:0!important;
}

/* Site-wide motion system: restrained, editorial and consistent. */
:root {
  --motion-distance: 16px;
  --motion-duration: 760ms;
  --motion-duration-slow: 900ms;
  --motion-ease: cubic-bezier(.22,.61,.36,1);
  --motion-hover-scale: 1.025;
  --motion-hover-lift: -5px;
}

@keyframes flo-fade-up {
  from { opacity:0; transform:translateY(var(--motion-distance)); }
  to { opacity:1; transform:translateY(0); }
}
@keyframes flo-fade-left {
  from { opacity:0; transform:translateX(calc(var(--motion-distance) * -1)); }
  to { opacity:1; transform:translateX(0); }
}
@keyframes flo-fade-right {
  from { opacity:0; transform:translateX(var(--motion-distance)); }
  to { opacity:1; transform:translateX(0); }
}
@keyframes flo-hero-drift {
  from { transform:scale(1.015); }
  to { transform:scale(1.055); }
}
@keyframes flo-bg-drift {
  from { background-size:102% auto; }
  to { background-size:108% auto; }
}
@keyframes flo-line-draw {
  from { stroke-dashoffset:1; opacity:.08; }
  to { stroke-dashoffset:0; opacity:.34; }
}
@keyframes flo-route-step {
  from { opacity:0; transform:translateY(10px); }
  to { opacity:1; transform:translateY(0); }
}
@keyframes flo-dialog-in {
  from { opacity:0; transform:scale(.985) translateY(8px); }
  to { opacity:1; transform:scale(1) translateY(0); }
}

/* Progressive enhancement: scroll-linked reveals where supported. */
@supports (animation-timeline: view()) {
  main > section:not(.hero):not(.full-bleed-image-placeholder),
  main > figure,
  .story-intro,
  .founder-story,
  .flight-block,
  .permit-section .permit-copy,
  .contact-details,
  .trek-chart,
  .reflection-web-section {
    animation:flo-fade-up var(--motion-duration) var(--motion-ease) both;
    animation-timeline:view();
    animation-range:entry 8% cover 28%;
  }

  .story-section:nth-of-type(odd) .story-copy,
  .founder-story:nth-of-type(odd) article {
    animation:flo-fade-left var(--motion-duration-slow) var(--motion-ease) both;
    animation-timeline:view();
    animation-range:entry 6% cover 30%;
  }
  .story-section:nth-of-type(even) .story-copy,
  .founder-story:nth-of-type(even) article {
    animation:flo-fade-right var(--motion-duration-slow) var(--motion-ease) both;
    animation-timeline:view();
    animation-range:entry 6% cover 30%;
  }

  .program-images > *,
  .retreat-images > *,
  .accommodation-gallery > *,
  .details-gallery > *,
  .trek-photo-placeholder,
  .reflection-grid > *,
  .reflections-grid > *,
  .who-summary-item,
  .audience-grid > article,
  .modes-grid > *,
  .journey-tile {
    animation:flo-fade-up var(--motion-duration-slow) var(--motion-ease) both;
    animation-timeline:view();
    animation-range:entry 5% cover 25%;
  }

  .route-wrap > * {
    animation:flo-route-step 650ms var(--motion-ease) both;
    animation-timeline:view();
    animation-range:entry 5% cover 22%;
  }
  .route-wrap > :nth-child(2), .route-wrap > :nth-child(4), .route-wrap > :nth-child(6), .route-wrap > :nth-child(8) { animation-range:entry 10% cover 26%; }

  .intent-copy p {
    animation:flo-fade-up 700ms var(--motion-ease) both;
    animation-timeline:view();
    animation-range:entry 10% cover 25%;
  }

  .web-lines path {
    path-length:1;
    stroke-dasharray:1;
    stroke-dashoffset:1;
    animation:flo-line-draw 1.4s ease-out both;
    animation-timeline:view();
    animation-range:entry 0% cover 35%;
  }
  .reflection-node {
    animation:flo-fade-up 700ms var(--motion-ease) both;
    animation-timeline:view();
    animation-range:entry 5% cover 25%;
  }

  .who-section + .full-bleed-image-placeholder,
  .teacher-section + .full-bleed-image-placeholder,
  .retreat-rhythm + .full-bleed-image-placeholder {
    animation:flo-bg-drift linear both;
    animation-timeline:view();
    animation-range:entry 0% exit 100%;
  }
}

/* Hero motion: cinematic but almost imperceptible. */
.hero-image { animation:flo-hero-drift 16s ease-in-out infinite alternate; transform-origin:center center; }
.hero:has(.hero-meta) { animation:flo-bg-drift 18s ease-in-out infinite alternate; }

/* Unified image and card hover language. */
@media (hover:hover) and (pointer:fine) {
  .portrait-wrap img,
  .elan-portrait,
  .teacher-media,
  .story-media,
  .accommodation-portrait,
  .accommodation-landscape,
  .details-gallery .landscape-placeholder,
  .details-row-accommodation .portrait-placeholder,
  #food .image-placeholder,
  #trek .trek-photo-placeholder,
  .reflection-card img,
  .journey-tile-image,
  .program-image,
  .retreat-images .image-placeholder {
    transition:transform var(--motion-duration-slow) var(--motion-ease), box-shadow 320ms ease, filter 320ms ease;
    will-change:transform;
  }
  .portrait-wrap:hover img,
  .elan-portrait:hover,
  .teacher-media:hover,
  .story-media:hover,
  .accommodation-portrait:hover,
  .accommodation-landscape:hover,
  .details-gallery .landscape-placeholder:hover,
  .details-row-accommodation .portrait-placeholder:hover,
  #food .image-placeholder:hover,
  #trek .trek-photo-placeholder:hover,
  .reflection-card:hover img,
  .program-image:hover,
  .retreat-images .image-placeholder:hover { transform:scale(var(--motion-hover-scale)); }

  .journey-tile { transition:transform 360ms var(--motion-ease), box-shadow 360ms ease; }
  .journey-tile:hover { transform:translateY(var(--motion-hover-lift)); }
  .journey-tile:hover .journey-tile-image { box-shadow:0 18px 42px rgba(24,48,31,.12); }

  .flagship-carousel-arrow { opacity:.74; transition:opacity 180ms ease, transform 180ms ease, background-color 180ms ease; }
  .journey-tile-image:hover .flagship-carousel-arrow { opacity:1; }
  .flagship-carousel-arrow:hover { transform:translateY(-50%) scale(1.06); }

  .reflection-node:hover { transform:translate(-50%,-50%) scale(1.1); }
}

/* Links: a restrained editorial underline instead of busy motion. */
.favourite-books a,
.route-section a,
.permit-copy a,
.story-link,
.text-link,
.more-reflections a,
.journey-tile-copy > a,
.contact-block a {
  text-decoration-color:currentColor;
  text-decoration-thickness:1px;
  text-underline-offset:.28em;
  transition:opacity 220ms ease, text-underline-offset 220ms ease, transform 220ms ease;
}
@media (hover:hover) and (pointer:fine) {
  .favourite-books a:hover,
  .route-section a:hover,
  .permit-copy a:hover,
  .story-link:hover,
  .text-link:hover,
  .more-reflections a:hover,
  .journey-tile-copy > a:hover,
  .contact-block a:hover {
    opacity:.72;
    text-underline-offset:.42em;
  }
  .contact-block a:hover { transform:translateX(4px); }
}

/* FAQ affordance. */
.faq-list summary::after { transition:transform 280ms var(--motion-ease); transform-origin:center; }
.faq-list details[open] summary::after { transform:rotate(45deg); }
.faq-list details { transition:background-color 240ms ease; }
.faq-list details[open] { background-color:rgba(24,48,31,.025); }

/* Lightboxes crossfade into view rather than popping abruptly. */
dialog[open] { animation:flo-dialog-in 260ms var(--motion-ease) both; }
.reflection-lightbox img,
.lightbox-photo { transition:opacity 220ms ease, transform 260ms var(--motion-ease); }

/* Contact entrance: two-line title, then details. */
.contact-heading h1:first-child { animation:flo-fade-up 700ms var(--motion-ease) 80ms both; }
.contact-heading h1:nth-child(2) { animation:flo-fade-up 700ms var(--motion-ease) 180ms both; }
.contact-details { animation:flo-fade-up 760ms var(--motion-ease) 320ms both; }

/* Reflections network: make hovered relationships feel more present without changing layout. */
.reflection-web { transition:filter 240ms ease; }
.reflection-web:has(.reflection-node:hover) .web-lines { opacity:.62; transition:opacity 240ms ease; }
.flo-center { transition:transform 420ms var(--motion-ease); }
.reflection-web:has(.reflection-node:hover) .flo-center { transform:translate(-50%,-50%) scale(1.015); }

/* Mobile: less movement, no hover dependence, no parallax. */
@media (max-width:760px) {
  :root { --motion-distance:10px; --motion-hover-scale:1.012; --motion-hover-lift:0px; }
  .hero-image { animation-duration:20s; }
  .hero:has(.hero-meta) { animation:none; background-size:cover!important; }
  .who-section + .full-bleed-image-placeholder,
  .teacher-section + .full-bleed-image-placeholder,
  .retreat-rhythm + .full-bleed-image-placeholder { animation:none!important; background-size:cover!important; }
  .journey-tile { transform:none!important; }
  .reflection-web:has(.reflection-node:hover) .flo-center { transform:translate(-50%,-50%); }
}

/* Accessibility: honour reduced-motion preferences everywhere. */
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after {
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    scroll-behavior:auto!important;
    transition-duration:.01ms!important;
  }
  .hero-image,
  .hero:has(.hero-meta),
  .who-section + .full-bleed-image-placeholder,
  .teacher-section + .full-bleed-image-placeholder,
  .retreat-rhythm + .full-bleed-image-placeholder { animation:none!important; }
}

/* Reflections page lightbox: quote and name only, with previous/next controls retained. */
.reflection-lightbox .lightbox-image { display:none!important; }
.reflection-lightbox:has(.lightbox-copy) {
  min-height:min(70vh,620px)!important;
  padding:clamp(2.5rem,6vw,5rem)!important;
  overflow:hidden!important;
}
.reflection-lightbox:has(.lightbox-copy)[open] {
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  align-items:center!important;
}
.reflection-lightbox:has(.lightbox-copy) .lightbox-copy {
  width:min(760px,82%)!important;
  margin:auto!important;
  text-align:center!important;
}
.reflection-lightbox:has(.lightbox-copy) .lightbox-quote {
  margin:0 0 1rem!important;
  font-size:clamp(2rem,4vw,3.8rem)!important;
  line-height:1.08!important;
}
.reflection-lightbox:has(.lightbox-copy) .lightbox-name {
  margin:0!important;
}
@media (max-width:760px) {
  .reflection-lightbox:has(.lightbox-copy) {
    min-height:62vh!important;
    padding:3.5rem 3.25rem!important;
  }
  .reflection-lightbox:has(.lightbox-copy) .lightbox-copy { width:100%!important; }
  .reflection-lightbox:has(.lightbox-copy) .lightbox-quote {
    font-size:clamp(1.6rem,8vw,2.6rem)!important;
  }
}


/* FLO MOBILE NAV V2 */
.mobile-nav-toggle { display:none; }
@media (max-width:760px) {
  html,body { width:100%!important; max-width:100%!important; overflow-x:hidden!important; }
  .site-header { position:relative; z-index:9998!important; }
  .mobile-nav-toggle { display:flex!important; position:absolute!important; top:1rem!important; right:1rem!important; z-index:10001!important; width:48px!important; height:48px!important; margin:0!important; padding:0!important; border:1px solid rgba(24,48,31,.18)!important; border-radius:50%!important; background:rgba(244,239,229,.96)!important; color:#18301f!important; align-items:center!important; justify-content:center!important; flex-direction:column!important; gap:5px!important; box-shadow:0 4px 18px rgba(8,20,12,.1)!important; cursor:pointer!important; }
  .mobile-nav-toggle span { display:block!important; width:21px!important; height:2px!important; background:currentColor!important; border-radius:999px!important; transition:transform 180ms ease,opacity 180ms ease!important; }
  .site-header.nav-open .mobile-nav-toggle span:nth-child(1) { transform:translateY(7px) rotate(45deg)!important; }
  .site-header.nav-open .mobile-nav-toggle span:nth-child(2) { opacity:0!important; }
  .site-header.nav-open .mobile-nav-toggle span:nth-child(3) { transform:translateY(-7px) rotate(-45deg)!important; }
  .site-header .main-nav { display:none!important; }
  .site-header.nav-open .main-nav { display:block!important; position:fixed!important; top:max(1rem,env(safe-area-inset-top))!important; right:1rem!important; left:1rem!important; z-index:10000!important; width:auto!important; max-width:none!important; max-height:calc(100dvh - 2rem)!important; margin:0!important; padding:4.8rem 1.25rem 1.25rem!important; overflow-x:hidden!important; overflow-y:auto!important; background:#f4efe5!important; color:#18301f!important; border:1px solid rgba(24,48,31,.14)!important; border-radius:1rem!important; box-shadow:0 18px 48px rgba(8,20,12,.22)!important; letter-spacing:0!important; }
  .site-header.nav-open .main-nav>.nav-dropdown,.site-header.nav-open .main-nav>a { display:block!important; width:100%!important; margin:0!important; padding:0!important; border-top:1px solid rgba(24,48,31,.13)!important; }
  .site-header.nav-open .main-nav>.nav-dropdown:first-child { border-top:0!important; }
  .site-header.nav-open .main-nav>a,.site-header.nav-open .main-nav>.nav-dropdown>summary { display:flex!important; align-items:center!important; justify-content:space-between!important; width:100%!important; min-height:58px!important; padding:.95rem .35rem!important; color:#18301f!important; font-family:var(--font-body)!important; font-size:1rem!important; line-height:1.25!important; letter-spacing:.08em!important; text-decoration:none!important; text-transform:uppercase!important; border:0!important; background:transparent!important; cursor:pointer!important; }
  .site-header.nav-open .main-nav>.nav-dropdown>summary::after { content:'⌄'!important; display:block!important; margin-left:1rem!important; font-size:1.1rem!important; line-height:1!important; transform:rotate(0)!important; transition:transform 180ms ease!important; }
  .site-header.nav-open .main-nav>.nav-dropdown[open]>summary::after { transform:rotate(180deg)!important; }
  .site-header.nav-open .main-nav .submenu { position:static!important; top:auto!important; right:auto!important; left:auto!important; display:none!important; width:100%!important; min-width:0!important; max-width:none!important; margin:0!important; padding:0 0 .75rem!important; background:transparent!important; border:0!important; border-radius:0!important; box-shadow:none!important; opacity:1!important; visibility:visible!important; transform:none!important; pointer-events:auto!important; }
  .site-header.nav-open .main-nav .nav-dropdown[open]>.submenu { display:block!important; }
  .site-header.nav-open .main-nav .submenu::before { display:none!important; }
  .site-header.nav-open .main-nav .submenu a { display:block!important; width:100%!important; padding:.72rem 1rem!important; color:#18301f!important; font-family:var(--font-body)!important; font-size:.96rem!important; line-height:1.35!important; letter-spacing:0!important; text-transform:none!important; text-decoration:none!important; white-space:normal!important; }
  .site-header.nav-open .main-nav .active,.site-header.nav-open .main-nav [aria-current='page'] { border-bottom:0!important; font-weight:600!important; }
}
/* END FLO MOBILE NAV V2 */
