/* ═══════════════════════════════════════════
   TOKENS
═══════════════════════════════════════════ */
:root {
  --ink:        #3a3128;
  --ink-soft:   #6a5e4f;
  --cream:      #f6efe3;
  --sand:       #e8d9c4;
  --terracotta: #c07a55;
  --olive:      #86855f;
  --gold:       #c89a5e;
  --white:      #ffffff;
  --display: 'Space Grotesk', sans-serif;
  --body:    'Space Grotesk', sans-serif;
  --ease: cubic-bezier(.2,.8,.2,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--body);background:var(--cream);color:var(--ink);line-height:1.7;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}



/* ═══════════════════════════════════════════
   NAV + HAMBURGER
═══════════════════════════════════════════ */
/* ── DESKTOP NAVBAR ── */
#topnav {
  position:fixed; top:0; left:0; right:0; z-index:100;
  display:flex; align-items:center;
  height:10vh; min-height:64px; max-height:90px;
  padding:0 clamp(1.5rem,4vw,3rem);
  background:rgba(246,239,227,.92);
  backdrop-filter:blur(8px);
  transition:background .4s, box-shadow .4s;
  box-shadow:0 1px 0 rgba(58,49,40,.06);
}
#topnav.scrolled {
  background:rgba(246,239,227,.97);
  box-shadow:0 2px 12px rgba(58,49,40,.1);
}

/* Desktop nav links - left side */
.desktop-nav {
  display:flex; align-items:center; gap:clamp(1.5rem,3vw,3rem);
  flex:1;
}
.desktop-nav a {
  font-size:.72rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--ink); text-decoration:none; font-family:var(--body);
  font-weight:400; transition:opacity .25s; white-space:nowrap;
}
.desktop-nav a:hover { opacity:.5 }
.desktop-nav a.active { border-bottom:1px solid var(--ink) }

/* Logo - centered absolutely */
.nav-logo {
  position:absolute; left:50%; top:50%;
  transform:translate(-50%,-50%); cursor:pointer;
}
.nav-logo img { height:62px; width:auto; display:block }

/* Language switcher desktop */
.lang-switcher {
  display:none;
}

/* Hamburger - hidden on desktop */
.ham-btn { display:none }
.ham-btn span {
  display:block; height:1.5px; background:var(--ink);
  transition:transform .35s var(--ease), opacity .25s;
  transform-origin:center;
}
.ham-btn.open span:nth-child(1) { transform:translateY(6.5px) rotate(45deg) }
.ham-btn.open span:nth-child(2) { opacity:0; transform:scaleX(0) }
.ham-btn.open span:nth-child(3) { transform:translateY(-6.5px) rotate(-45deg) }

/* Nav brand - hidden on desktop */
.nav-brand { display:none }

/* ── MOBILE NAVBAR ── */
@media(max-width:768px){
  #topnav {
    background:transparent;
    box-shadow:none;
    padding:1rem 1.2rem;
  }
  #topnav.scrolled {
    background:rgba(246,239,227,.96);
    box-shadow:0 1px 0 rgba(58,49,40,.08);
  }
  .desktop-nav { display:none }
  .nav-logo { display:none }
  .ham-btn {
    display:flex; flex-direction:column; justify-content:center; gap:6px;
    width:44px; height:44px; background:rgba(58,49,40,.35);
    border:none; cursor:pointer; padding:8px; border-radius:4px;
    backdrop-filter:blur(4px); transition:background .3s; z-index:200;
  }
  .ham-btn:hover { background:rgba(58,49,40,.55) }
  .ham-btn span { background:var(--white) }
  #topnav.scrolled .ham-btn { background:rgba(58,49,40,.1) }
  #topnav.scrolled .ham-btn span { background:var(--ink) }
  .nav-brand {
    display:block; cursor:pointer;
    position:absolute; left:50%; transform:translateX(-50%);
  }
  #topnav.scrolled .nav-brand { color:var(--ink) }
  .lang-switcher {
    display:flex; gap:.4rem; align-items:center;
  }
  .lang-btn {
    font-size:.65rem; letter-spacing:.15em; text-transform:uppercase;
    background:none; border:none; cursor:pointer;
    color:rgba(255,255,255,.8); padding:.3rem .1rem;
    transition:color .3s; font-family:var(--body);
  }
  .lang-btn.active { color:var(--white); border-bottom:1px solid rgba(255,255,255,.6) }
  #topnav.scrolled .lang-btn { color:var(--ink-soft) }
  #topnav.scrolled .lang-btn.active { color:var(--ink); border-bottom-color:var(--ink) }
}

/* Slide-out menu panel */
#nav-panel {
  position:fixed; top:0; left:0; bottom:0; width:min(280px,80vw);
  background:rgba(58,49,40,.92); backdrop-filter:blur(12px);
  z-index:150;
  transform:translateX(-100%);
  transition:transform .42s var(--ease);
  display:flex; flex-direction:column; padding:4rem 2rem 2.5rem;
  overflow-y:auto;
}
#nav-panel.open { transform:translateX(0) }
.nav-panel-overlay {
  position:fixed; inset:0; z-index:140;
  background:rgba(58,49,40,.5); backdrop-filter:blur(3px);
  opacity:0; pointer-events:none; transition:opacity .4s;
}
.nav-panel-overlay.open { opacity:1; pointer-events:all }

.nav-panel-links { list-style:none; margin-bottom:3rem }
.nav-panel-links li { border-bottom:1px solid rgba(246,239,227,.1) }
.nav-panel-links a {
  display:block; padding:.75rem 0;
  font-family:var(--display); font-weight:300;
  font-size:clamp(1.1rem,3.5vw,1.4rem); color:var(--cream);
  letter-spacing:-.01em; transition:color .25s, padding-left .25s;
}
.nav-panel-links a:hover,
.nav-panel-links a.active { color:var(--gold); padding-left:.6rem }
.nav-panel-links .sub {
  font-family:var(--body); font-size:.8rem; font-weight:300;
  letter-spacing:.2em; text-transform:uppercase;
  color:var(--terracotta); font-style:normal;
}
.nav-panel-lang {
  margin-top:auto; display:flex; gap:1.2rem;
}
.nav-panel-lang button {
  font-size:.72rem; letter-spacing:.2em; text-transform:uppercase;
  background:none; border:none; cursor:pointer;
  color:rgba(246,239,227,.5); font-family:var(--body); transition:color .25s;
}
.nav-panel-lang button.active { color:var(--cream); border-bottom:1px solid var(--cream) }

/* ═══════════════════════════════════════════
   PAGE ROUTER  (show/hide sections)
═══════════════════════════════════════════ */
.page { display:none }
.page.active { display:block }

/* ═══════════════════════════════════════════
   ① HOME
═══════════════════════════════════════════ */
.hero {
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  min-height:480px;
  max-height:90vh;
  overflow:hidden; background:#cdc4b6;
  margin-top:0;
}
.hero video {
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
}
.hero-img {
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:center top;
}
.hero::after {
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(58,49,40,.12) 0%,rgba(58,49,40,0) 40%,rgba(58,49,40,.4) 100%);
}
/* Centered logo in hero */
.hero-logo {
  position:absolute; inset:0; z-index:2;
  display:flex; align-items:center; justify-content:center;
}
.hero-logo svg {
  width:clamp(140px,28vw,220px); height:auto; opacity:.95;
}
.scroll-cue {
  position:absolute; bottom:2.5rem; left:50%; transform:translateX(-50%);
  z-index:2; color:#fff; font-size:.66rem; letter-spacing:.34em; text-transform:uppercase;
  display:flex; flex-direction:column; align-items:center; gap:.6rem; opacity:.8;
}
.scroll-cue span {
  width:1px; height:38px; background:#fff;
  animation:cue 2.4s ease-in-out infinite;
}
@keyframes cue {
  0%,100%{transform:scaleY(.4);opacity:.4} 50%{transform:scaleY(1);opacity:1}
}

/* Home intro */
.home-intro {
  max-width:1120px; margin:0 auto;
  padding:clamp(5rem,12vw,9rem) clamp(1.5rem,6vw,3rem) clamp(3rem,6vw,5rem);
  display:grid; grid-template-columns:1fr 1fr; gap:clamp(2.5rem,6vw,6rem);
  align-items:center;
}
@media(max-width:760px){ .home-intro { grid-template-columns:1fr; text-align:center } }

.page-banner {
  width:100%; height:400px;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}

/* ── MOBILE IMPROVEMENTS ── */
@media(max-width:768px){
  /* Nav */
  #topnav { padding:1rem 1.2rem }
  .lang-switcher { gap:.3rem }
  .lang-btn { font-size:.65rem }

  /* Hero */
  .hero { min-height:100svh }
  .hero-logo svg { width:140px }

  /* Cards carousel - full width on mobile */
  .card { flex:0 0 88vw }
  .carousel { padding:1rem 1.2rem 1.5rem; gap:1rem }
  .car-controls { margin-top:.3rem }

 /* Retreat detail - stack on mobile */
  .retreat-content { grid-template-columns:1fr !important; padding:0 1.2rem 3rem }
  .booking-card { position:static; margin-top:2rem }
  .reserve-sidebar { position:static !important; margin-top:2rem }
  .day-item { grid-template-columns:70px 1fr; gap:.8rem }

  /* Story */
  .story-body { padding:2.5rem 1.2rem }
  .story-section .story-img { height:240px }

  /* Journal tabs - scrollable */
  .journal-tabs { padding:0 1.2rem }
  .j-tab { padding:1rem .9rem; font-size:.68rem }

  /* Testimonial cards */
  .testi-card { flex:0 0 88vw }

  /* Archive grid - single column */
  .archive-grid { grid-template-columns:1fr }

  /* Footer */
  footer { padding:2.5rem 1.2rem }

  /* Page banners */
  .page-banner { height:220px; }

  /* Retreat hero */
  .retreat-hero { height:50vh; min-height:300px; }
  .retreat-hero-content h1 { font-size:clamp(1.6rem,5vw,2.5rem); }

  /* Our Story - mobile reorder */
  .story-grid-1, .story-grid-2 { grid-template-columns:1fr !important; }
  .story-text-1 { order:1; }
  .story-img-1  { order:2; }
  .story-text-2 { order:3; }
  .story-img-2  { order:4; }
  .story-img-3  { order:5; }
  .story-text-3 { order:6; }
  .story-img-4  { order:7; }
  .story-text-4 { order:8; }
}
.label {
  font-size:.72rem; letter-spacing:.34em; text-transform:uppercase;
  color:var(--terracotta); margin-bottom:1.2rem;
}
.home-intro h2 {
  font-family:var(--display); font-weight:300;
  font-size:clamp(2rem,4.6vw,3.3rem); line-height:1.14;
}
.home-intro h2 em { font-style:italic; color:var(--olive) }
.home-intro p { font-weight:300; font-size:1.08rem; margin-bottom:1.4rem; color:var(--ink-soft) }
.ig-link {
  display:inline-flex; align-items:center; gap:.7rem;
  font-size:.78rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--ink); border-bottom:1px solid var(--ink);
  padding-bottom:.35rem; transition:gap .3s, color .3s, border-color .3s;
}
.ig-link:hover { gap:1.1rem; color:var(--terracotta); border-color:var(--terracotta) }
.ig-link svg { width:17px; height:17px; fill:currentColor }

/* Quote band */
.quote-band {
  position:relative; text-align:center; color:#fff;
  padding:clamp(5rem,14vw,9rem) 1.5rem;
  background:#b9b0a2;
  overflow:hidden;
}
.quote-band .qb-img {
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
}
.quote-band::before {
  content:""; position:absolute; inset:0;
  background:rgba(58,49,40,.45); z-index:1;
}
.quote-band blockquote {
  position:relative; z-index:2;
  max-width:760px; margin:0 auto;
  font-family:var(--display); font-style:italic; font-weight:300;
  font-size:clamp(1.6rem,3.6vw,2.6rem); line-height:1.3;
}
.quote-band .sig {
  position:relative; z-index:2; display:block; margin-top:1.6rem;
  font-family:var(--body); font-style:normal;
  font-size:.74rem; letter-spacing:.3em; text-transform:uppercase; opacity:.85;
}

/* Retreats section on home */
.home-retreats { padding:clamp(4rem,9vw,6rem) 0 clamp(5rem,10vw,8rem) }
.section-head {
  text-align:center; max-width:640px; margin:0 auto clamp(2.5rem,6vw,3.5rem);
  padding:0 1.5rem;
}
.section-head h2 {
  font-family:var(--display); font-weight:300;
  font-size:clamp(2rem,4.5vw,3rem); line-height:1.12;
}
.section-head h2 em { font-style:italic; color:var(--olive) }
.section-head p { font-weight:300; color:var(--ink-soft); margin-top:.9rem; font-size:1rem }

/* Carousel */
.carousel-wrap { position:relative; max-width:1500px; margin:0 auto }
.carousel {
  display:flex; gap:1.5rem; overflow-x:auto; scroll-snap-type:x mandatory;
  padding:1rem clamp(1.5rem,6vw,4rem) 2rem;
  scrollbar-width:none;
}
.carousel::-webkit-scrollbar { display:none }
.card {
  flex:0 0 clamp(280px,78vw,350px);
  scroll-snap-align:center;
  position:relative; border-radius:8px; overflow:hidden;
  aspect-ratio:3/4; background:var(--sand);
  box-shadow:0 22px 45px -22px rgba(58,49,40,.5);
  transition:transform .5s var(--ease);
  cursor:pointer;
}
.card.sold-out { opacity:.75 }
.card:hover { transform:translateY(-8px) }
.card img {
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; transition:transform 1.3s ease;
}
.card:hover img { transform:scale(1.06) }
.card::after {
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(58,49,40,.05) 25%,rgba(58,49,40,.82) 100%);
}
.card-season {
  position:absolute; top:1.2rem; left:1.2rem; z-index:2;
  font-size:.64rem; letter-spacing:.3em; text-transform:uppercase;
  color:#fff; padding:.4rem .9rem;
  border:1px solid rgba(255,255,255,.55); border-radius:40px;
  backdrop-filter:blur(4px);
}
.sold-out-badge {
  position:absolute; top:1.2rem; right:1.2rem; z-index:2;
  font-size:.62rem; letter-spacing:.2em; text-transform:uppercase;
  color:#fff; padding:.4rem .8rem;
  background:rgba(58,49,40,.7); border-radius:40px;
}
.card-body {
  position:absolute; bottom:0; left:0; right:0; z-index:2;
  padding:1.6rem; color:#fff;
}
.card-body h3 {
  font-family:var(--display); font-weight:400;
  font-size:1.7rem; line-height:1.06; margin-bottom:.3rem;
}
.card-body .card-loc {
  font-size:.7rem; letter-spacing:.22em; text-transform:uppercase;
  opacity:.85; margin-bottom:.25rem;
}
.card-body .card-dates {
  font-size:.8rem; font-weight:300; opacity:.8; margin-bottom:.6rem;
}
.card-body .spots-bar {
  margin-bottom:.8rem;
}
.spots-track {
  height:2px; background:rgba(255,255,255,.25); border-radius:2px; margin-bottom:.35rem;
}
.spots-fill {
  height:100%; border-radius:2px; background:var(--gold);
  transition:width .6s var(--ease);
}
.spots-label {
  font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; opacity:.85;
}
.spots-label.urgent { color:#f0b97a }
.card-body a.card-cta, .card-body span.card-cta {
  display:inline-block; font-size:.72rem; letter-spacing:.24em; text-transform:uppercase;
  color:#fff; border-bottom:1px solid rgba(255,255,255,.55);
  padding-bottom:.3rem; transition:border-color .3s, letter-spacing .3s;
}
.card-body a.card-cta:hover { border-color:#fff; letter-spacing:.3em }
.card-body span.card-cta { opacity:.5; cursor:default; border-color:transparent }

.car-controls { display:flex; justify-content:center; gap:1rem; margin-top:.5rem }
.car-btn {
  width:50px; height:50px; border-radius:50%;
  border:1px solid var(--ink); background:transparent; color:var(--ink);
  cursor:pointer; display:flex; align-items:center; justify-content:center;
  transition:background .3s, color .3s;
}
.car-btn:hover { background:var(--ink); color:var(--cream) }
.car-btn svg { width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:1.5 }

/* ═══════════════════════════════════════════
   ② RETREAT DETAIL PAGE
═══════════════════════════════════════════ */
.retreat-hero {
  position:relative; height:70vh; min-height:480px;
  overflow:hidden; background:var(--sand);
}
.retreat-hero img {
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
}
.retreat-hero::after {
  content:""; position:absolute; inset:0;
  background:none;
}
.retreat-hero-content {
  position:absolute; inset:0; z-index:2;
  display:flex; flex-direction:column; align-items:center; justify-content:flex-end;
  padding:clamp(2rem,6vw,4rem) clamp(1.5rem,6vw,3rem);
  color:#fff; text-align:center;
}
.retreat-hero-content .label { color:rgba(255,255,255,.8) }
.retreat-hero-content h1 {
  font-family:var(--display); font-weight:300;
  font-size:clamp(2.5rem,6vw,4.5rem); line-height:1.06; margin:.5rem 0;
}
.retreat-hero-content h1 em { font-style:italic }
.retreat-hero-content .hero-meta {
  font-size:.82rem; letter-spacing:.2em; text-transform:uppercase;
  opacity:.9; margin-top:.6rem;
}
/* Back breadcrumb */
.breadcrumb {
  padding:1.4rem clamp(1.5rem,6vw,3.5rem);
  font-size:.74rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--ink-soft);
}
.breadcrumb a {
  color:var(--terracotta); border-bottom:1px solid transparent;
  transition:border-color .25s; cursor:pointer;
}
.breadcrumb a:hover { border-color:var(--terracotta) }

/* Retreat content */
.retreat-content {
  max-width:1080px; margin:0 auto;
  padding:0 clamp(1.5rem,6vw,3.5rem) clamp(5rem,10vw,7rem);
  display:grid; grid-template-columns:1fr 340px; gap:clamp(2.5rem,6vw,5rem);
  align-items:start;
}
@media(max-width:840px) { .retreat-content { grid-template-columns:1fr } }

/* Program */
.program { }
.program h2 {
  font-family:var(--display); font-weight:300;
  font-size:clamp(1.6rem,3.5vw,2.4rem); margin-bottom:2rem;
}
.program h2 em { font-style:italic; color:var(--olive) }
.program-intro {
  font-weight:300; font-size:1.08rem; color:var(--ink-soft);
  margin-bottom:2.5rem; max-width:540px;
}
.day-item {
  display:grid; grid-template-columns:90px 1fr; gap:1.2rem;
  padding:1.6rem 0; border-top:1px solid var(--sand);
}
.day-label {
  font-size:.72rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--terracotta); padding-top:.25rem; font-weight:400;
}
.day-title {
  font-family:var(--display); font-weight:400;
  font-size:1.15rem; margin-bottom:.5rem;
}
.day-text { font-weight:300; font-size:.98rem; color:var(--ink-soft); line-height:1.75 }

/* Sidebar / booking card */
.booking-card {
  position:sticky; top:100px;
  background:var(--ink); color:var(--cream);
  border-radius:8px; padding:2rem;
}
.booking-card .bc-season {
  font-size:.68rem; letter-spacing:.3em; text-transform:uppercase;
  color:var(--gold); margin-bottom:1rem;
}
.booking-card .bc-title {
  font-family:var(--display); font-weight:300;
  font-size:1.6rem; line-height:1.1; margin-bottom:.5rem;
}
.booking-card .bc-meta {
  font-size:.82rem; opacity:.75; margin-bottom:1.5rem; font-weight:300;
}
.booking-card .bc-price {
  font-family:var(--display); font-size:2rem; font-weight:400;
  color:var(--gold); margin-bottom:.4rem;
}
.booking-card .bc-price-note {
  font-size:.72rem; opacity:.6; margin-bottom:1.5rem; font-weight:300;
}
.booking-card .bc-spots {
  margin-bottom:1.5rem;
}
.bc-spots-track {
  height:3px; background:rgba(246,239,227,.2); border-radius:3px; margin:.6rem 0 .4rem;
}
.bc-spots-fill {
  height:100%; border-radius:3px; background:var(--gold);
}
.bc-spots-label {
  font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; opacity:.75;
}
.bc-spots-label.urgent { color:var(--gold) }
.book-btn {
  display:block; width:100%; padding:1.1rem;
  background:var(--terracotta); color:#fff; border:none; border-radius:4px;
  font-family:var(--body); font-size:.78rem; letter-spacing:.22em;
  text-transform:uppercase; cursor:pointer; text-align:center;
  transition:background .3s; margin-bottom:1rem;
}
.book-btn:hover { background:#a8663e }
.book-btn.disabled {
  background:rgba(246,239,227,.15); color:rgba(246,239,227,.4);
  cursor:default; pointer-events:none;
}
.bc-includes { margin-top:1.5rem }
.bc-includes h4 {
  font-size:.7rem; letter-spacing:.24em; text-transform:uppercase;
  opacity:.6; margin-bottom:.8rem;
}
.bc-includes ul { list-style:none }
.bc-includes li {
  font-size:.88rem; font-weight:300; opacity:.85;
  padding:.35rem 0; border-bottom:1px solid rgba(246,239,227,.08);
  display:flex; gap:.6rem; align-items:flex-start;
}
.bc-includes li::before { content:"—"; color:var(--gold); flex-shrink:0 }

/* ── RETREAT PAGE NEW STYLES ── */
.retreat-header {
  padding:clamp(5rem,10vw,7rem) clamp(1.5rem,6vw,3.5rem) 0;
  max-width:1200px; margin:0 auto;text-align:left;
}
.retreat-header .rh-date {
  font-size:.85rem; letter-spacing:.22em; text-transform:uppercase;
  font-weight:600; color:var(--ink); margin-bottom:1.5rem;
}
.retreat-paragraphs p {
  font-weight:300; font-size:1rem; color:var(--ink-soft);
  line-height:1.85; margin-bottom:1.2rem; max-width:680px;
}
.retreat-section {
  padding:clamp(2.5rem,5vw,4rem) 0 0;
}
.retreat-section h3 {
  font-size:.82rem; letter-spacing:.22em; text-transform:uppercase;
  font-weight:600; color:var(--ink); margin-bottom:1.2rem;
}
.retreat-section ul {
  list-style:none; padding:0;
}
.retreat-section ul li {
  font-size:.95rem; font-weight:300; color:var(--ink-soft);
  padding:.3rem 0; display:flex; gap:.8rem; align-items:flex-start;
  line-height:1.6;
}
.retreat-section ul li::before { content:"•"; color:var(--terracotta); flex-shrink:0 }

/* Gallery placeholder */
.gallery-placeholder {
  width:100%; background:var(--sand); border-radius:6px;
  display:flex; align-items:center; justify-content:center;
  margin:2rem 0; min-height:260px;
  font-size:.78rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--ink-soft);
}

/* Info box naranja */
.info-box-orange {
  background:#e8b98a; border-radius:8px;
  padding:clamp(1.5rem,4vw,2.5rem);
  margin:clamp(2rem,5vw,3.5rem) 0;
  display:grid; grid-template-columns:1fr; gap:1.5rem;
}
@media(max-width:640px){ .info-box-orange { grid-template-columns:1fr } }
.info-box-orange h3 {
  font-size:.78rem; letter-spacing:.22em; text-transform:uppercase;
  font-weight:700; color:var(--ink); margin-bottom:1rem;
}
.info-box-orange ul { list-style:none; padding:0 }
.info-box-orange ul li {
  font-size:.9rem; font-weight:300; color:var(--ink-soft);
  padding:.3rem 0; display:flex; gap:.8rem; line-height:1.6;
}
.info-box-orange ul li::before { content:"•"; color:var(--terracotta); flex-shrink:0 }

/* Booking payment section */
.booking-payment {
  padding:clamp(1.5rem,4vw,2.5rem) 0;
  border-top:1px solid var(--sand);
  margin-top:1rem;
}
.booking-payment h3 {
  font-size:.82rem; letter-spacing:.22em; text-transform:uppercase;
  font-weight:700; color:var(--ink); margin-bottom:1rem;
}
.booking-payment p {
  font-size:.95rem; font-weight:300; color:var(--ink-soft);
  line-height:1.75; margin-bottom:.4rem;
}

/* New retreat layout: full width left + sticky sidebar */
.retreat-layout {
  display:grid; grid-template-columns:1fr 340px;
  gap:clamp(2.5rem,5vw,4rem); align-items:start;
  max-width:1200px; margin:0 auto;
  padding:2rem clamp(1.5rem,6vw,3.5rem) clamp(4rem,8vw,6rem);
}
@media(max-width:900px){ .retreat-layout { grid-template-columns:1fr } }

/* Sidebar new style */
.reserve-sidebar {
  position:sticky; top:100px;
  background:var(--ink); color:var(--cream);
  border-radius:8px; padding:2rem;
}
.reserve-sidebar h3 {
  font-size:.78rem; letter-spacing:.28em; text-transform:uppercase;
  color:var(--gold); margin-bottom:1.2rem; font-weight:400;
}
.reserve-sidebar p {
  font-size:.88rem; font-weight:300; opacity:.85;
  line-height:1.7; margin-bottom:.9rem;
}
.reserve-btn {
  display:block; width:100%; padding:1rem;
  background:#c89a5e; color:#fff; border:none; border-radius:4px;
  font-family:var(--body); font-size:.74rem; letter-spacing:.22em;
  text-transform:uppercase; cursor:pointer; text-align:center;
  margin-top:1.5rem; transition:background .3s; text-decoration:none;
}
.reserve-btn:hover { background:#a8803e }
.reserve-btn.coming-soon {
  background:rgba(246,239,227,.15); color:rgba(246,239,227,.5);
  cursor:default; pointer-events:none;
}

/* Sold out archive styling */
/* Sold out archive styling */
.archive-notice {
  background:rgba(246,239,227,.06); border-radius:6px;
  padding:1.2rem; margin-bottom:1.5rem; text-align:center;
}
.archive-notice p {
  font-size:.84rem; opacity:.75; font-weight:300;
}
.archive-notice strong { color:var(--gold) }

/* ═══════════════════════════════════════════
   ③ OUR STORY
═══════════════════════════════════════════ */
.story-hero {
  position:relative; height:60vh; min-height:420px;
  overflow:hidden; background:var(--sand);
  display:flex; align-items:flex-end;
}
.story-hero img {
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
}
.story-hero::after {
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(58,49,40,.15) 0%,rgba(58,49,40,.65) 100%);
}
.story-hero-text {
  position:relative; z-index:2; color:#fff;
  padding:clamp(2rem,5vw,4rem) clamp(1.5rem,6vw,3.5rem);
  max-width:820px;
}
.story-hero-text h1 {
  font-family:var(--display); font-weight:300;
  font-size:clamp(2.4rem,6vw,4.2rem); line-height:1.06;
}
.story-hero-text h1 em { font-style:italic }

.story-body {
  max-width:780px; margin:0 auto;
  padding:clamp(4rem,9vw,7rem) clamp(1.5rem,6vw,3.5rem);
}
.story-section { margin-bottom:clamp(3.5rem,8vw,6rem) }
.story-section .label { margin-bottom:1rem }
.story-section h2 {
  font-family:var(--display); font-weight:300;
  font-size:clamp(1.8rem,4vw,2.8rem); line-height:1.1; margin-bottom:1.5rem;
}
.story-section h2 em { font-style:italic; color:var(--olive) }
.story-section p {
  font-weight:300; font-size:1.08rem; color:var(--ink-soft);
  margin-bottom:1.2rem; max-width:640px;
}
.story-section .story-img {
  width:100%; height:360px; object-fit:cover;
  border-radius:6px; margin:2rem 0;
}
.story-pull {
  font-family:var(--display); font-style:italic; font-weight:300;
  font-size:clamp(1.4rem,3.2vw,2rem); color:var(--terracotta);
  line-height:1.3; padding:2rem 0; border-top:1px solid var(--sand);
  border-bottom:1px solid var(--sand); margin:2.5rem 0;
}

/* ═══════════════════════════════════════════
   ④ JOURNAL (Cases / FAQ / Archive)
═══════════════════════════════════════════ */
.journal-hero {
  padding:0;
  min-height:500px;
  background:url('../assets/Guessbook.png') center/cover no-repeat;
  color:var(--cream); text-align:center;
}
}
.journal-hero .label { color:var(--gold) }
.journal-hero h1 {
  font-family:var(--display); font-weight:300;
  font-size:clamp(2.6rem,6vw,4.5rem); line-height:1.06; margin:.6rem 0 1rem;
}
.journal-hero h1 em { font-style:italic }
.journal-hero p {
  font-weight:300; font-size:1.08rem; opacity:.75;
  max-width:560px; margin:0 auto;
}

/* Journal tabs */
.journal-tabs {
  display:flex; justify-content:center; gap:0;
  border-bottom:1px solid var(--sand);
  max-width:1080px; margin:0 auto;
  padding:0 clamp(1.5rem,6vw,3.5rem);
  overflow-x:auto; scrollbar-width:none;
}
.journal-tabs::-webkit-scrollbar { display:none }
.j-tab {
  font-size:.74rem; letter-spacing:.22em; text-transform:uppercase;
  padding:1.2rem 1.6rem; background:none; border:none; cursor:pointer;
  color:var(--ink-soft); border-bottom:2px solid transparent;
  transition:color .25s, border-color .25s;
  white-space:nowrap; font-family:var(--body);
}
.j-tab.active { color:var(--terracotta); border-bottom-color:var(--terracotta) }

.journal-section { display:none; padding:clamp(3rem,7vw,5rem) clamp(1.5rem,6vw,3.5rem) }
.journal-section.active { display:block }
.journal-section .max { max-width:1080px; margin:0 auto }

/* Testimonial carousel */
.testi-carousel {
  display:flex; gap:1.5rem; overflow-x:auto;
  scroll-snap-type:x mandatory; scrollbar-width:none;
  padding:1rem 0 1.5rem;
}
.testi-carousel::-webkit-scrollbar { display:none }
.testi-card {
  flex:0 0 clamp(280px,80vw,400px);
  scroll-snap-align:start;
  background:var(--white); border-radius:8px;
  padding:2rem; box-shadow:0 8px 30px -12px rgba(58,49,40,.18);
}
.testi-quote {
  font-family:var(--display); font-style:italic; font-weight:300;
  font-size:1.15rem; line-height:1.5; margin-bottom:1.5rem; color:var(--ink);
}
.testi-quote::before { content:'\201C'; color:var(--terracotta); font-size:2rem; line-height:.5; display:block; margin-bottom:.6rem }
.testi-name { font-size:.8rem; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-soft) }
.testi-retreat { font-size:.74rem; color:var(--terracotta); margin-top:.3rem }

/* Archive cards */
.archive-grid {
  display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr));
  gap:1.5rem;
}
.archive-card {
  border-radius:8px; overflow:hidden; background:var(--sand);
  transition:transform .4s var(--ease);
}
.archive-card:hover { transform:translateY(-5px) }
.archive-card-img {
  width:100%; height:220px; object-fit:cover;
}
.archive-card-body { padding:1.4rem }
.archive-card-body .label { margin-bottom:.6rem }
.archive-card-body h3 {
  font-family:var(--display); font-weight:400;
  font-size:1.3rem; margin-bottom:.4rem;
}
.archive-card-body p { font-size:.92rem; font-weight:300; color:var(--ink-soft) }
.archive-card-body .sold-tag {
  display:inline-block; margin-top:.8rem;
  font-size:.64rem; letter-spacing:.2em; text-transform:uppercase;
  background:var(--ink); color:var(--cream); border-radius:40px; padding:.35rem .8rem;
}

/* FAQ */
.faq-list { max-width:680px }
.faq-item {
  border-top:1px solid var(--sand); overflow:hidden;
}
.faq-q {
  display:flex; justify-content:space-between; align-items:center;
  padding:1.4rem 0; cursor:pointer;
  font-weight:400; font-size:1.02rem;
}
.faq-q:hover { color:var(--terracotta) }
.faq-icon {
  width:22px; height:22px; flex-shrink:0; margin-left:1rem;
  display:flex; align-items:center; justify-content:center;
  transition:transform .3s;
}
.faq-item.open .faq-icon { transform:rotate(45deg) }
.faq-a {
  font-weight:300; font-size:.98rem; color:var(--ink-soft);
  max-height:0; overflow:hidden; transition:max-height .4s var(--ease), padding .3s;
}
.faq-item.open .faq-a { max-height:400px; padding-bottom:1.4rem }

/* ═══════════════════════════════════════════
   FOOTER
═══════════════════════════════════════════ */
footer {
  background:#f0c898;
  padding:clamp(2.5rem,6vw,4rem) clamp(2rem,8vw,6rem);
}
.footer-grid {
  display:grid; grid-template-columns:1fr 1fr 1fr;
  align-items:center; gap:2rem; max-width:1080px; margin:0 auto;
}
.footer-left { display:flex; flex-direction:column; gap:.8rem }
.footer-left a {
  font-size:.78rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--ink); text-decoration:none; font-weight:400;
  transition:opacity .25s;
}
.footer-left a:hover { opacity:.6 }
.footer-center { text-align:center }
.footer-logo-text {
  font-family:var(--display); font-size:2rem; font-weight:400;
  letter-spacing:.15em; text-transform:uppercase; color:var(--ink);
  line-height:1;
}
.footer-logo-sub {
  font-size:.72rem; letter-spacing:.22em; color:var(--ink);
  opacity:.7; margin-top:.4rem;
}
.footer-right { display:flex; flex-direction:column; gap:.8rem; text-align:right }
.footer-right a {
  font-size:.78rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--ink); text-decoration:none; font-weight:400;
  transition:opacity .25s;
}
.footer-right a:hover { opacity:.6 }
@media(max-width:680px){
  .footer-grid { grid-template-columns:1fr; text-align:center }
  .footer-right { text-align:center }
  .footer-left { align-items:center }
}

/* ── MASONRY GALLERY ── */
.masonry-grid {
  columns:3 200px; gap:6px; margin:1.5rem 0;
}
.masonry-img {
  width:100%; margin-bottom:6px; border-radius:4px;
  cursor:pointer; display:block;
  transition:opacity .3s;
}
.masonry-img:hover { opacity:.85 }

/* ── LIGHTBOX ── */
.lightbox {
  display:none; position:fixed; inset:0; z-index:999;
  background:rgba(0,0,0,.92);
  align-items:center; justify-content:center;
}
.lightbox img {
  max-width:90vw; max-height:90vh;
  object-fit:contain; border-radius:4px;
}
.lb-prev, .lb-next {
  position:absolute; top:50%; transform:translateY(-50%);
  background:none; border:none; color:#fff;
  font-size:2rem; cursor:pointer; padding:1rem;
  opacity:.7; transition:opacity .25s;
}
.lb-prev:hover, .lb-next:hover { opacity:1 }
.lb-prev { left:1rem }
.lb-next { right:1rem }

/* ── MASONRY GALLERY ── */
.gallery-btn {
  display:inline-block; margin:1rem 0 2rem;
  font-size:.74rem; letter-spacing:.22em; text-transform:uppercase;
  background:none; border:none; cursor:pointer;
  color:var(--ink); border-bottom:1px solid var(--ink);
  padding-bottom:.3rem; font-family:var(--body);
  transition:opacity .25s;
}
.gallery-btn:hover { opacity:.5 }
.room-carousel { margin:1.5rem 0 2rem }
.room-main-img { width:100%; border-radius:6px; overflow:hidden; margin-bottom:8px; cursor:pointer }
.room-main-img img { width:100%; height:320px; object-fit:cover; display:block; transition:opacity .3s }
.room-main-img img:hover { opacity:.9 }
.room-thumbs { display:flex; gap:6px; flex-wrap:wrap }
.room-thumb { width:calc(20% - 5px); aspect-ratio:1; object-fit:cover; border-radius:4px; cursor:pointer; transition:opacity .3s }
.room-thumb:hover { opacity:.75 }
