/*
Theme Name: MFAF Theme
Theme URI: https://mantinfarmstay.com
Author: Mantin Forest Art Farmstay
Description: Custom theme for Mantin Forest Art Farmstay
Version: 1.0.0
License: Private
Text Domain: mfaf
*/

/* ═══ BASE STYLES (from homepage) ═══ */
*{margin:0;padding:0;box-sizing:border-box}
*{margin:0;padding:0;box-sizing:border-box}

/* ═══════════════════════════════════════════
   DESIGN.MD COLOR SYSTEM
   ═══════════════════════════════════════════ */
:root{
  --deep-canopy:#2E4A1E;
  --forest-fern:#4A7A2B;
  --timber-bark:#6B4423;
  --golden-earth:#C4A265;
  --lime-zest:#EBF67D;
  --morning-mist:#F5F2EB;
  --charcoal-ink:#2D2D2D;
  --muted-stone:#6B7280;
  --whisper-border:#E5E7EB;
  --pure-surface:#FFFFFF;
}

html{scroll-behavior:smooth}
body{
  font-family:'Source Sans 3',sans-serif;
  color:var(--morning-mist);
  background:var(--deep-canopy);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
/* Inner pages: light background, dark text (homepage stays dark bg via body.home) */
body:not(.home){
  background:var(--pure-surface);
  color:var(--charcoal-ink);
}

/* ═══════════════════════════════════════════
   DESIGN.MD TYPOGRAPHY
   Hero Display: Yellowtail
   H1: Space Grotesk Bold
   H2: Fraunces Medium
   H3/H4: Space Grotesk Medium/SemiBold
   Body: Source Sans 3
   ═══════════════════════════════════════════ */
h1,h3,h4,button,.space{font-family:'Space Grotesk',sans-serif}
h2,.fraunces{font-family:'Fraunces',serif}
.hero-display{font-family:'Yellowtail',cursive}
img{display:block;width:100%;height:100%;object-fit:cover}

/* ═══════════════════════════════════════════
   GLASS MORPHISM (V4 Nature Glass)
   ═══════════════════════════════════════════ */
.glass{
  background:rgba(46,74,30,.55);
  backdrop-filter:blur(10px) saturate(1.3);
  -webkit-backdrop-filter:blur(10px) saturate(1.3);
  border:1px solid rgba(255,255,255,.15);
  border-radius:24px;
}
.glass-bright{
  background:rgba(46,74,30,.45);
  backdrop-filter:blur(10px) saturate(1.4);
  -webkit-backdrop-filter:blur(10px) saturate(1.4);
  border:1px solid rgba(255,255,255,.18);
  border-radius:24px;
}
.glass-pill{
  background:rgba(46,74,30,.5);
  backdrop-filter:blur(10px) saturate(1.4);
  -webkit-backdrop-filter:blur(10px) saturate(1.4);
  border:1px solid rgba(255,255,255,.15);
  border-radius:100px;
}
.glass:hover,.glass-bright:hover{
  background:rgba(46,74,30,.6);
  border-color:rgba(255,255,255,.28);
}

/* ═══════════════════════════════════════════
   REVEAL ANIMATION (Motion: 5 — Fluid CSS)
   ═══════════════════════════════════════════ */
.reveal{
  opacity:0;
  transform:translateY(30px);
  transition:opacity .7s cubic-bezier(0.4,0,0.2,1),transform .7s cubic-bezier(0.4,0,0.2,1);
}
.reveal.visible{opacity:1;transform:none}

/* ═══════════════════════════════════════════
   HEADER — Brand (outside pill) + Nav (glass pill)
   Brand sits left, glass-pill nav floats right
   ═══════════════════════════════════════════ */
.site-header{
  position:absolute;
  top:20px;
  left:40px;
  right:40px;
  z-index:100;
  display:flex;
  justify-content:space-between;
  align-items:center;
}

/* Brand block — OUTSIDE the glass pill, above mobile dropdown */
.site-header .brand{
  display:flex;
  align-items:center;
  gap:14px;
  flex-shrink:0;
  position:relative;
  z-index:2;
  text-decoration:none;
}
.site-header .brand img{
  height:52px;
  width:52px;
  border-radius:50%;
  object-fit:cover;
  filter:drop-shadow(0 2px 8px rgba(0,0,0,.3));
}
.site-header .brand-text{
  display:flex;
  flex-direction:column;
}
.site-header .brand-name{
  font-family:'Yellowtail',cursive;
  font-size:26px;
  color:var(--morning-mist);
  line-height:1.15;
}
.site-header .brand-sub{
  font-family:'Inter',sans-serif;
  font-size:11px;
  font-weight:600;
  color:rgba(245,242,235,.6);
  letter-spacing:4px;
  text-transform:uppercase;
  margin-top:1px;
}

/* Nav pill — expands left toward the brand, above mobile dropdown */
nav{
  display:flex;
  gap:22px;
  align-items:center;
  justify-content:flex-end;
  padding:12px 12px 12px 28px;
  flex:1;
  margin-left:20px;
  position:relative;
  z-index:2;
}
nav a{
  font-family:'Space Grotesk',sans-serif;
  font-size:12px;
  color:rgba(245,242,235,.55);
  font-weight:500;
  text-decoration:none;
  letter-spacing:1.5px;
  text-transform:uppercase;
  transition:color .2s;
  white-space:nowrap;
}
nav a:hover{color:var(--morning-mist)}
.btn-book{
  background:var(--lime-zest);
  color:var(--deep-canopy);
  padding:10px 22px;
  border-radius:100px;
  font-family:'Space Grotesk',sans-serif;
  font-size:12px;
  font-weight:600;
  border:none;
  cursor:pointer;
  letter-spacing:1px;
  transition:all .2s;
  text-transform:uppercase;
  white-space:nowrap;
}
.btn-book:hover{
  background:var(--pure-surface);
  transform:translateY(-1px);
}

/* Nav stays fixed — no auto-hide */

/* ═══════════════════════════════════════════
   FLY-IN ENTRANCE ANIMATIONS (page load)
   Subtle, fast — elements slide in and fade
   ═══════════════════════════════════════════ */
@keyframes flyUp{
  from{opacity:0;transform:translateY(24px)}
  to{opacity:1;transform:none}
}
@keyframes flyDown{
  from{opacity:0;transform:translateY(-20px)}
  to{opacity:1;transform:none}
}
@keyframes flyLeft{
  from{opacity:0;transform:translateX(30px)}
  to{opacity:1;transform:none}
}
@keyframes fadeIn{
  from{opacity:0}
  to{opacity:1}
}

/* Header flies down */
.site-header{
  animation:flyDown .5s cubic-bezier(0.4,0,0.2,1) both;
}
/* Hero left content flies up */
.hero .left{
  animation:flyUp .6s .15s cubic-bezier(0.4,0,0.2,1) both;
}
/* Hero pricing card flies in from right */
.hero .pricing-card{
  animation:flyLeft .6s .3s cubic-bezier(0.4,0,0.2,1) both;
}
/* Rating pill fades in */
.hero .rating-pill{
  animation:fadeIn .4s .5s both;
}
/* Hero buttons stagger */
.hero .btns{
  animation:flyUp .5s .45s cubic-bezier(0.4,0,0.2,1) both;
}

/* ═══════════════════════════════════════════
   HERO — V4 Nature Glass Layout
   Asymmetric: text left (55%) + pricing card right
   Background: 0001DJI.jpg aerial drone
   ═══════════════════════════════════════════ */
.hero{
  position:relative;
  min-height:100dvh;
  display:flex;
  align-items:center;
  padding:0 80px;
  overflow:hidden;
}
.hero .bg{position:absolute;inset:0;z-index:0}
.hero .bg img{filter:brightness(.85) saturate(1.1)}
.hero .bg::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(
    90deg,
    rgba(46,74,30,.92) 0%,
    rgba(46,74,30,.65) 35%,
    rgba(46,74,30,.25) 65%,
    rgba(46,74,30,.55) 100%
  );
}
.hero .content{
  position:relative;
  z-index:1;
  display:flex;
  justify-content:space-between;
  align-items:center;
  width:100%;
  max-width:1400px;
  margin:0 auto;
  gap:60px;
}
.hero .left{max-width:640px}

/* Rating pill */
.hero .rating-pill{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-bottom:24px;
  padding:6px 16px 6px 6px;
  font-size:12px;
}
.hero .rating-pill .badge{
  background:var(--golden-earth);
  color:var(--deep-canopy);
  font-family:'Space Grotesk',sans-serif;
  font-size:11px;
  font-weight:700;
  padding:4px 10px;
  border-radius:100px;
  display:flex;
  align-items:center;
  gap:4px;
}

/* Location tag */
.hero .tag{
  font-family:'Space Grotesk',sans-serif;
  font-size:11px;
  letter-spacing:3px;
  color:var(--golden-earth);
  font-weight:600;
  margin-bottom:20px;
  text-transform:uppercase;
}

/* Hero headline — mixed fonts */
.hero h1{
  font-family:'Space Grotesk',sans-serif;
  font-size:clamp(44px,5.5vw,80px);
  font-weight:700;
  line-height:1.15;
  margin-bottom:24px;
  color:var(--morning-mist);
  letter-spacing:-0.5px;
}
/* "Where the forest" stays on one line */
.hero h1 .h1-line{
  display:block;
  white-space:nowrap;
}
/* "is your playground." in Yellowtail — the ONE accent use per page */
.hero h1 em{
  font-family:'Yellowtail',cursive;
  font-weight:400;
  font-style:normal;
  color:var(--lime-zest);
  text-shadow:0 0 40px rgba(235,246,125,.15);
  letter-spacing:0;
  display:block;
}

/* Sub text — weight 400 (not 300), opacity .8 (not .6) for readability */
.hero .sub{
  font-family:'Source Sans 3',sans-serif;
  font-size:18px;
  color:rgba(245,242,235,.8);
  font-weight:400;
  line-height:1.75;
  margin-bottom:32px;
  border-left:2px solid rgba(255,255,255,.25);
  padding-left:20px;
  max-width:480px;
}
.hero .sub strong{
  color:var(--morning-mist);
  font-weight:600;
  display:block;
  margin-top:12px;
}

/* Hero buttons */
.hero .btns{display:flex;gap:14px}
.btn-primary{
  padding:14px 36px;
  border-radius:10px;
  background:var(--lime-zest);
  color:var(--deep-canopy);
  font-family:'Space Grotesk',sans-serif;
  font-size:13px;
  font-weight:600;
  border:none;
  cursor:pointer;
  letter-spacing:.5px;
  transition:all .2s;
}
.btn-primary:hover{
  background:var(--pure-surface);
  color:var(--deep-canopy);
  transform:translateY(-1px);
  box-shadow:0 8px 24px rgba(0,0,0,.2);
}
.btn-outline{
  padding:14px 28px;
  border-radius:10px;
  border:2px solid rgba(255,255,255,.2);
  color:var(--morning-mist);
  font-family:'Space Grotesk',sans-serif;
  font-size:13px;
  font-weight:500;
  background:none;
  cursor:pointer;
  letter-spacing:.5px;
  transition:all .2s;
}
.btn-outline:hover{
  border-color:rgba(255,255,255,.5);
  background:rgba(255,255,255,.06);
}

/* ═══════════════════════════════════════════
   PRICING CARD — Glass, right side of hero
   ═══════════════════════════════════════════ */
.pricing-card{
  width:380px;
  flex-shrink:0;
  padding:40px;
  border-radius:24px;
  background:rgba(46,74,30,.45);
  backdrop-filter:blur(10px) saturate(1.3);
  -webkit-backdrop-filter:blur(10px) saturate(1.3);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 8px 40px rgba(0,0,0,.25);
}
.pricing-card h3{
  font-family:'Space Grotesk',sans-serif;
  font-size:24px;
  font-weight:600;
  color:var(--morning-mist);
  margin-bottom:6px;
}
.pricing-card .note{
  font-size:14px;
  color:rgba(245,242,235,.65);
  font-weight:400;
  margin-bottom:28px;
}
.pricing-card .price-box{
  background:rgba(0,0,0,.2);
  border-radius:16px;
  padding:20px 24px;
  margin-bottom:28px;
  border:1px solid rgba(255,255,255,.05);
}
.pricing-card .price-box .label{
  font-family:'Space Grotesk',sans-serif;
  font-size:10px;
  color:var(--golden-earth);
  letter-spacing:2px;
  text-transform:uppercase;
  font-weight:600;
  margin-bottom:8px;
}
.pricing-card .price-box .amount{
  font-family:'Fraunces',serif;
  font-size:44px;
  color:#fff;
}
.pricing-card .price-box .per{
  font-size:14px;
  color:rgba(255,255,255,.55);
  font-weight:400;
  margin-left:6px;
}
.pricing-card ul{list-style:none;margin-bottom:32px}
.pricing-card li{
  display:flex;
  align-items:start;
  gap:12px;
  font-size:14px;
  color:rgba(245,242,235,.8);
  font-weight:400;
  line-height:1.5;
  margin-bottom:16px;
}
.pricing-card li .check{
  width:20px;
  height:20px;
  border-radius:50%;
  border:1px solid rgba(196,162,101,.3);
  background:rgba(196,162,101,.1);
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  margin-top:1px;
}
.pricing-card li .check svg{
  width:10px;
  height:10px;
  stroke:var(--golden-earth);
  fill:none;
  stroke-width:3;
}
.btn-cta-full{
  width:100%;
  padding:16px;
  border-radius:10px;
  background:var(--lime-zest);
  color:var(--deep-canopy);
  font-family:'Space Grotesk',sans-serif;
  font-size:13px;
  font-weight:600;
  border:none;
  cursor:pointer;
  letter-spacing:2px;
  text-transform:uppercase;
  transition:all .2s;
}
.btn-cta-full:hover{
  background:var(--pure-surface);
  transform:translateY(-1px);
}

/* ═══════════════════════════════════════════
   SECTION 2 — USP STRIP (Wood brown background)
   Wood-textured glass cards, 3x2 grid
   ═══════════════════════════════════════════ */
.section-dark{
  background:linear-gradient(180deg, #2E4A1E 0%, #3D4A2E 50%, #5A3A1E 100%);
  padding:clamp(3rem,8vw,6rem) 80px;
}
.max-w{max-width:1400px;margin:0 auto}

.section-tag{
  font-family:'Space Grotesk',sans-serif;
  font-size:10px;
  letter-spacing:4px;
  color:var(--golden-earth);
  font-weight:600;
  text-transform:uppercase;
  margin-bottom:12px;
}
.section-title{
  font-family:'Fraunces',serif;
  font-size:clamp(28px,3.5vw,44px);
  font-weight:500;
  line-height:1.15;
  margin-bottom:16px;
  color:var(--morning-mist);
}
/* Yellowtail accent in section titles */
.section-title em{
  font-family:'Yellowtail',cursive;
  font-style:normal;
  color:var(--lime-zest);
  text-shadow:0 0 40px rgba(235,246,125,.15);
}
.section-sub{
  font-size:16px;
  color:rgba(245,242,235,.65);
  font-weight:400;
  line-height:1.7;
  max-width:560px;
}

.usp-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
  margin-top:48px;
}
.usp-card{
  padding:32px;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:16px;
  background:rgba(46,74,30,.35);
  backdrop-filter:blur(16px) saturate(1.3);
  -webkit-backdrop-filter:blur(16px) saturate(1.3);
  border:1px solid rgba(255,255,255,.1);
  border-radius:20px;
  box-shadow:0 4px 20px rgba(0,0,0,.15);
  transition:border-color .2s,box-shadow .2s,transform .2s;
}
.usp-card:hover{
  border-color:rgba(255,255,255,.2);
  box-shadow:0 8px 32px rgba(0,0,0,.2);
  transform:translateY(-4px);
}
.usp-card .icon{
  width:52px;
  height:52px;
  border-radius:50%;
  border:1px solid rgba(196,162,101,.25);
  background:rgba(196,162,101,.08);
  display:flex;
  align-items:center;
  justify-content:center;
}
.usp-card .icon svg{
  width:24px;
  height:24px;
  stroke:var(--golden-earth);
  fill:none;
  stroke-width:1.5;
}
.usp-card h4{
  font-family:'Space Grotesk',sans-serif;
  font-size:20px;
  font-weight:500;
  color:var(--morning-mist);
}
.usp-card p{
  font-size:15px;
  color:rgba(245,242,235,.6);
  font-weight:400;
  line-height:1.6;
  max-width:280px;
}

/* Lime badge for "included" */
.badge-lime{
  display:inline-block;
  background:var(--lime-zest);
  color:var(--deep-canopy);
  font-family:'Space Grotesk',sans-serif;
  font-size:10px;
  font-weight:600;
  padding:3px 10px;
  border-radius:20px;
  letter-spacing:.5px;
  text-transform:uppercase;
  margin-top:4px;
}

/* ═══════════════════════════════════════════
   SECTION 3 — THREE PILLARS (Scroll-driven stacked cards)
   Cards stacked like a deck, peel away on scroll
   ═══════════════════════════════════════════ */
.section-brown{
  background:linear-gradient(180deg, #5A3A1E 0%, #3D4A2E 50%, #2E4A1E 100%);
}
.pillar-header{
  text-align:center;
  padding:clamp(2rem,5vw,3.5rem) 80px 0;
}

/* Scroll container — 2 transitions (card1→2, card2→3) then scroll away */
.pillar-scroll{
  height:250vh;
  position:relative;
}
.pillar-sticky{
  position:sticky;
  top:0;
  height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  padding:0;
}

/* Card stack — centered, wide, fills most of viewport */
.card-stack{
  position:relative;
  width:min(88vw,1040px);
  height:88vh;
}

/* Individual cards — absolutely positioned, stacked */
.pillar-card{
  position:absolute;
  inset:0;
  border-radius:24px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  box-shadow:0 20px 60px -10px rgba(0,0,0,.5);
  transition:transform .5s cubic-bezier(.16,1,.3,1),
             opacity .4s ease;
  will-change:transform,opacity;
}

/* Stack offsets — card 2 peeks left, card 3 peeks right */
.pillar-card:nth-child(1){z-index:3}
.pillar-card:nth-child(2){z-index:2;transform:translate(-28px,8px) rotate(-2deg)}
.pillar-card:nth-child(3){z-index:1;transform:translate(28px,8px) rotate(2deg)}

/* Full-bleed photo */
.pillar-card .img{
  position:absolute;
  inset:0;
  z-index:0;
}
.pillar-card .img img{
  transition:transform .6s cubic-bezier(.16,1,.3,1);
}
/* Clip sky/top from all card photos — focus on subjects */
.pillar-card:nth-child(1) .img img{object-position:center 80%}
.pillar-card:nth-child(2) .img img{object-position:center center}
.pillar-card:nth-child(3) .img img{object-position:70% 20%}

/* Gradient scrim — transparent top → dark bottom */
.pillar-card::after{
  content:'';
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(
    180deg,
    transparent 35%,
    rgba(46,74,30,.25) 55%,
    rgba(46,74,30,.85) 100%
  );
  pointer-events:none;
}

/* Glass-blur body overlay at bottom */
.pillar-card .body{
  position:relative;
  z-index:2;
  margin-top:auto;
  padding:24px 32px;
  background:rgba(46,74,30,.45);
  backdrop-filter:blur(24px) saturate(1.4);
  -webkit-backdrop-filter:blur(24px) saturate(1.4);
  border-top:1px solid rgba(255,255,255,.12);
}

.pillar-card .pill-tag{
  font-family:'Space Grotesk',sans-serif;
  font-size:10px;
  letter-spacing:3px;
  color:var(--golden-earth);
  text-transform:uppercase;
  font-weight:600;
  margin-bottom:8px;
}
.pillar-card .body h4{
  font-family:'Fraunces',serif;
  font-size:clamp(20px,2.5vw,28px);
  font-weight:500;
  color:var(--morning-mist);
  margin-bottom:10px;
  line-height:1.25;
}
.pillar-card .tags{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-bottom:12px;
}
.pillar-card .tags span{
  padding:4px 12px;
  border-radius:8px;
  font-family:'Space Grotesk',sans-serif;
  font-size:10px;
  letter-spacing:1px;
  text-transform:uppercase;
  font-weight:500;
  border:1px solid rgba(255,255,255,.12);
  color:rgba(245,242,235,.6);
}
.pillar-card .tags span.highlight{
  border-color:rgba(196,162,101,.3);
  color:var(--golden-earth);
  background:rgba(196,162,101,.08);
}
.pillar-card .body p{
  font-family:'Source Sans 3',sans-serif;
  font-size:16px;
  color:rgba(245,242,235,.7);
  font-weight:400;
  line-height:1.65;
}
.pillar-card .foot{
  margin-top:16px;
  padding-top:14px;
  border-top:1px solid rgba(255,255,255,.1);
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.pillar-card .foot span{
  font-family:'Space Grotesk',sans-serif;
  font-size:11px;
  letter-spacing:2px;
  text-transform:uppercase;
  font-weight:500;
  color:rgba(245,242,235,.55);
}
.pillar-card .foot svg{
  width:16px;
  height:16px;
  stroke:rgba(245,242,235,.4);
  fill:none;
  stroke-width:2;
}

/* Scroll indicator dots */
.pillar-dots{
  position:absolute;
  right:clamp(16px,3vw,40px);
  top:50%;
  transform:translateY(-50%);
  display:flex;
  flex-direction:column;
  gap:10px;
  z-index:10;
}
.pillar-dots .dot{
  width:10px;
  height:10px;
  border-radius:50%;
  border:2px solid rgba(245,242,235,.3);
  background:transparent;
  transition:all .3s;
}
.pillar-dots .dot.active{
  background:var(--golden-earth);
  border-color:var(--golden-earth);
}

/* ═══════════════════════════════════════════
   SECTION 4 — ACTIVITIES (Brown, 2-panel split)
   20+ activities — outdoors and in
   ═══════════════════════════════════════════ */
.section-activities{
  position:relative;
  padding:clamp(4rem,10vw,7rem) 80px;
  overflow:hidden;
}
/* Full-bleed background photo */
.section-activities .act-bg{
  position:absolute;
  inset:0;
  z-index:0;
}
.section-activities .act-bg img{
  filter:brightness(.7) saturate(1.1);
}
.section-activities .act-bg::after{
  content:'';
  position:absolute;
  inset:0;
  background:rgba(46,74,30,.5);
}
.section-activities .act-content{
  position:relative;
  z-index:1;
}
.act-header{
  text-align:center;
  margin-bottom:48px;
}
.act-header .section-title{
  font-size:clamp(28px,4vw,48px);
}
.act-header .section-sub{
  margin-top:16px;
  max-width:560px;
  margin-left:auto;
  margin-right:auto;
}
.act-footer{
  text-align:center;
  margin-top:40px;
}
.act-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family:'Space Grotesk',sans-serif;
  font-size:12px;
  font-weight:600;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--morning-mist);
  text-decoration:none;
  transition:color .2s;
}
.act-link:hover{color:var(--golden-earth)}
.act-link svg{
  width:16px;height:16px;
  stroke:currentColor;fill:none;stroke-width:2;
}
.act-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
}
.act-panel{
  padding:28px;
  background:rgba(20,40,15,.4);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  border:1px solid rgba(255,255,255,.08);
  border-radius:16px;
}
.act-panel h3{
  font-family:'Fraunces',serif;
  font-size:22px;
  font-weight:500;
  color:var(--morning-mist);
  margin-bottom:28px;
  display:flex;
  align-items:center;
  gap:14px;
}
.act-panel .act-icon{
  width:40px;
  height:40px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.1);
  background:rgba(255,255,255,.04);
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}
.act-panel .act-icon svg{
  width:18px;
  height:18px;
  stroke:var(--golden-earth);
  fill:none;
  stroke-width:1.5;
}
.act-list{list-style:none}
.act-list li{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:14px 0;
  border-bottom:1px solid rgba(255,255,255,.04);
  font-family:'Source Sans 3',sans-serif;
  font-size:15px;
  color:rgba(245,242,235,.6);
}
.act-list li:last-child{border-bottom:none}
.act-list .included{
  font-family:'Space Grotesk',sans-serif;
  font-size:10px;
  font-weight:600;
  letter-spacing:1px;
  text-transform:uppercase;
  color:var(--deep-canopy);
  background:var(--lime-zest);
  padding:3px 10px;
  border-radius:20px;
  flex-shrink:0;
  margin-left:12px;
}
.act-list .paid{
  font-family:'Space Grotesk',sans-serif;
  font-size:10px;
  font-weight:600;
  letter-spacing:1px;
  text-transform:uppercase;
  color:var(--golden-earth);
  border:1px solid rgba(196,162,101,.3);
  padding:3px 10px;
  border-radius:20px;
  flex-shrink:0;
  margin-left:12px;
}

/* ═══════════════════════════════════════════
   SECTION 5 — THE JOURNEY (Schedule / Timeline)
   Green→brown gradient (same as section 2)
   ═══════════════════════════════════════════ */
.section-journey{
  background:linear-gradient(180deg, #2E4A1E 0%, #3D4A2E 50%, #5A3A1E 100%);
  padding:clamp(4rem,10vw,7rem) 80px;
}
.journey-inner{
  max-width:1100px;
  margin:0 auto;
}
.journey-header{
  margin-bottom:56px;
}
.journey-tag{
  font-family:'Space Grotesk',sans-serif;
  font-size:10px;
  letter-spacing:4px;
  color:var(--golden-earth);
  font-weight:600;
  text-transform:uppercase;
  margin-bottom:12px;
}
.journey-header h2{
  font-family:'Fraunces',serif;
  font-size:clamp(28px,3.5vw,44px);
  font-weight:500;
  line-height:1.15;
  color:var(--morning-mist);
  margin-bottom:16px;
}
.journey-header h2 em{
  font-family:'Yellowtail',cursive;
  font-style:normal;
  color:var(--lime-zest);
  text-shadow:0 0 40px rgba(235,246,125,.15);
}
.journey-subtitle{
  font-size:16px;
  color:rgba(245,242,235,.65);
  font-weight:400;
  line-height:1.7;
}
.journey-desc{
  font-size:15px;
  color:rgba(245,242,235,.5);
  line-height:1.6;
}

/* Day block — sidebar label + timeline rows */
.day-block{
  display:grid;
  grid-template-columns:80px 1fr;
  min-height:0;
}
.day-block + .day-block{
  margin-top:0;
}

/* Vertical day label */
.day-label{
  color:var(--morning-mist);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:24px 12px;
  position:relative;
}
/* Day 01 — forest green */
.day-01 .day-label{
  background:var(--forest-fern);
  border-radius:16px 0 0 0;
}
/* Day 02 — warm timber brown */
.day-02 .day-label{
  background:var(--timber-bark);
  border-radius:0 0 0 16px;
}
.day-label .day-num{
  font-family:'Fraunces',serif;
  font-size:32px;
  font-weight:500;
  line-height:1;
}
.day-label .day-word{
  font-family:'Space Grotesk',sans-serif;
  font-size:10px;
  font-weight:600;
  letter-spacing:3px;
  text-transform:uppercase;
  margin-bottom:4px;
}

/* Timeline rows — same glass card style as section 2 */
.day-rows{
  background:rgba(46,74,30,.35);
  backdrop-filter:blur(16px) saturate(1.3);
  -webkit-backdrop-filter:blur(16px) saturate(1.3);
  border:1px solid rgba(255,255,255,.1);
  border-left:none;
  box-shadow:0 4px 20px rgba(0,0,0,.15);
}
.day-01 .day-rows{
  border-radius:0 16px 0 0;
}
.day-02 .day-rows{
  border-radius:0 0 16px 0;
}
.tl-row{
  display:grid;
  grid-template-columns:140px 1fr;
  align-items:baseline;
  padding:20px 28px;
  border-bottom:1px solid rgba(255,255,255,.06);
}
.tl-row:last-child{
  border-bottom:none;
}
.tl-time{
  font-family:'Space Grotesk',sans-serif;
  font-size:13px;
  font-weight:600;
  color:var(--golden-earth);
  letter-spacing:.5px;
  white-space:nowrap;
  position:relative;
  padding-left:20px;
}
.tl-time::before{
  content:'';
  position:absolute;
  left:0;
  top:6px;
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--golden-earth);
  box-shadow:0 0 0 3px rgba(196,162,101,.2);
}
.tl-desc{
  font-size:15px;
  color:rgba(245,242,235,.65);
  line-height:1.6;
}
.tl-desc strong{
  font-weight:600;
  color:var(--morning-mist);
}
.tl-desc a{
  color:var(--morning-mist);
  text-decoration:none;
  border-bottom:1px solid rgba(235,246,125,.35);
  transition:border-color .2s, color .2s;
}
.tl-desc a:hover{
  color:var(--lime-zest);
  border-bottom-color:var(--lime-zest);
}
.tl-desc a strong{color:inherit;}
/* USP card inline links — inherit card text colour, subtle hover */
.usp-card .usp-link,
.usp-card h4 .usp-link{
  color:inherit;
  text-decoration:none;
  border-bottom:1px solid rgba(235,246,125,.3);
  transition:border-color .2s, color .2s;
}
.usp-card .usp-link:hover,
.usp-card h4 .usp-link:hover{
  color:var(--lime-zest);
  border-bottom-color:var(--lime-zest);
}
.usp-card h4{margin:0;}
.usp-card h4 .usp-link{border-bottom:none;}
.usp-card h4 .usp-link:hover{border-bottom:1px solid var(--lime-zest);}
/* Activity list inline links */
.act-list a.act-list-link{
  color:inherit;
  text-decoration:none;
  border-bottom:1px dotted rgba(235,246,125,.35);
  transition:color .2s, border-color .2s;
}
.act-list a.act-list-link:hover{
  color:var(--lime-zest);
  border-bottom-color:var(--lime-zest);
}
/* Rooms section subtitle inline links (light section, dark text) */
.rooms-sub a{
  color:inherit;
  text-decoration:none;
  border-bottom:1px solid rgba(60,84,11,.35);
  transition:color .2s, border-color .2s;
}
.rooms-sub a:hover{
  color:var(--color-medium-green,#589719);
  border-bottom-color:var(--color-medium-green,#589719);
}
.tl-row.highlight{
  background:rgba(235,246,125,.06);
}
.tl-row.highlight .tl-time{
  color:var(--lime-zest);
}
.tl-no-time .tl-time::before{
  display:none;
}

/* Free-flow note */
.journey-note{
  margin-top:32px;
  padding:20px 28px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  border-radius:12px;
  display:flex;
  align-items:flex-start;
  gap:12px;
}
.journey-note svg{
  width:20px;
  height:20px;
  stroke:var(--forest-fern);
  fill:none;
  stroke-width:2;
  flex-shrink:0;
  margin-top:2px;
}
.journey-note p{
  font-size:14px;
  color:rgba(245,242,235,.5);
  line-height:1.6;
}
.journey-note strong{
  color:var(--morning-mist);
}

/* ═══════════════════════════════════════════
   SECTION 6 — ROOMS PREVIEW
   Brown→green gradient (reverse of section 2)
   Glass cards matching section 2 USP cards
   ═══════════════════════════════════════════ */
.section-rooms{
  background:linear-gradient(180deg, #5A3A1E 0%, #4D3D24 40%, #3D4A2E 70%, #2E4A1E 100%);
  padding:clamp(3rem,6vw,5rem) 80px;
}
.rooms-inner{
  max-width:1400px;
  margin:0 auto;
}
.rooms-header{
  margin-bottom:32px;
}
.rooms-header h2{
  font-family:'Fraunces',serif;
  font-size:clamp(28px,3.5vw,44px);
  font-weight:500;
  line-height:1.15;
  color:var(--morning-mist);
  margin-bottom:16px;
}
.rooms-header h2 em{
  font-family:'Yellowtail',cursive;
  font-style:normal;
  color:var(--lime-zest);
  text-shadow:0 0 40px rgba(235,246,125,.15);
}
.rooms-sub{
  font-size:16px;
  color:rgba(245,242,235,.65);
  font-weight:400;
  line-height:1.7;
  max-width:600px;
}

/* Room cards grid */
.rooms-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.room-card{
  background:rgba(46,74,30,.45);
  backdrop-filter:blur(10px) saturate(1.4);
  -webkit-backdrop-filter:blur(10px) saturate(1.4);
  border:1px solid rgba(255,255,255,.18);
  border-radius:20px;
  box-shadow:0 8px 40px rgba(0,0,0,.25);
  overflow:hidden;
  transition:background .2s,border-color .2s,box-shadow .2s,transform .2s;
}
.room-card:hover{
  background:rgba(46,74,30,.6);
  border-color:rgba(255,255,255,.28);
  box-shadow:0 12px 48px rgba(0,0,0,.3);
  transform:translateY(-4px);
}
.room-card .card-img{
  width:100%;
  height:200px;
  overflow:hidden;
  border-radius:12px;
  margin:12px;
  margin-bottom:0;
  width:calc(100% - 24px);
}
.room-card .card-img img{
  border-radius:12px;
  transition:transform .4s;
}
.room-card:hover .card-img img{
  transform:scale(1.05);
}
.room-card .card-body{
  padding:20px 24px 24px;
  display:flex;
  flex-direction:column;
  flex:1;
}
.room-card{
  display:flex;
  flex-direction:column;
}
.room-card h3{
  font-family:'Fraunces',serif;
  font-size:20px;
  font-weight:500;
  color:var(--morning-mist);
  margin-bottom:14px;
}
.room-card .room-details{
  list-style:none;
  margin-bottom:18px;
}
.room-card .room-details li{
  font-size:14px;
  color:rgba(245,242,235,.6);
  padding:5px 0;
  padding-left:18px;
  position:relative;
  line-height:1.5;
}
.room-card .room-details li::before{
  content:'';
  position:absolute;
  left:0;
  top:11px;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--golden-earth);
}
.room-card .card-foot{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-top:auto;
}
.room-card .room-price{
  font-family:'Space Grotesk',sans-serif;
  font-size:15px;
  font-weight:600;
  color:var(--lime-zest);
}
.room-card .room-link{
  font-family:'Space Grotesk',sans-serif;
  font-size:11px;
  font-weight:600;
  letter-spacing:1.5px;
  text-transform:uppercase;
  color:rgba(245,242,235,.5);
  text-decoration:none;
  display:flex;
  align-items:center;
  gap:6px;
  transition:color .2s;
}
.room-card .room-link:hover{
  color:var(--morning-mist);
}
.room-card .room-link svg{
  width:14px;
  height:14px;
  stroke:currentColor;
  fill:none;
  stroke-width:2;
}

/* CTA button */
.rooms-cta{
  text-align:center;
  margin-top:48px;
}
.btn-rooms{
  display:inline-block;
  padding:16px 40px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.2);
  background:transparent;
  color:var(--morning-mist);
  font-family:'Space Grotesk',sans-serif;
  font-size:13px;
  font-weight:600;
  letter-spacing:2px;
  text-transform:uppercase;
  text-decoration:none;
  cursor:pointer;
  transition:all .2s;
}
.btn-rooms:hover{
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.35);
}

/* ═══════════════════════════════════════════
   SECTION 7 — STORIES FROM THE FOREST (Reviews)
   Green→brown gradient (same as section 2)
   ═══════════════════════════════════════════ */
.section-reviews{
  background:linear-gradient(180deg, #2E4A1E 0%, #3D4A2E 50%, #5A3A1E 100%);
  padding:clamp(3rem,6vw,5rem) 80px;
}
.reviews-inner{
  max-width:1200px;
  margin:0 auto;
}
.reviews-header{
  text-align:center;
  margin-bottom:48px;
}
.reviews-header h2{
  font-family:'Fraunces',serif;
  font-size:clamp(28px,3.5vw,44px);
  font-weight:500;
  line-height:1.15;
  color:var(--morning-mist);
  margin-bottom:12px;
}
.reviews-header h2 em{
  font-family:'Yellowtail',cursive;
  font-style:normal;
  color:var(--lime-zest);
  text-shadow:0 0 40px rgba(235,246,125,.15);
}
.reviews-rating{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-bottom:8px;
}
.reviews-stars{
  font-size:20px;
  color:var(--golden-earth);
  letter-spacing:2px;
}
.reviews-score{
  font-family:'Space Grotesk',sans-serif;
  font-size:15px;
  font-weight:600;
  color:var(--morning-mist);
}
.reviews-count{
  font-size:14px;
  color:rgba(245,242,235,.5);
}

/* Review cards — 2x2 grid */
.reviews-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}
.review-card{
  padding:28px;
  background:rgba(46,74,30,.35);
  backdrop-filter:blur(16px) saturate(1.3);
  -webkit-backdrop-filter:blur(16px) saturate(1.3);
  border:1px solid rgba(255,255,255,.1);
  border-radius:20px;
  box-shadow:0 4px 20px rgba(0,0,0,.15);
  display:flex;
  flex-direction:column;
}
.review-card .review-stars{
  font-size:14px;
  color:var(--golden-earth);
  letter-spacing:2px;
  margin-bottom:14px;
}
.review-card blockquote{
  font-size:15px;
  color:rgba(245,242,235,.7);
  line-height:1.65;
  font-style:italic;
  flex:1;
  margin-bottom:16px;
}
.review-card blockquote strong{
  color:var(--morning-mist);
  font-style:normal;
}
.review-card .review-author{
  font-family:'Space Grotesk',sans-serif;
  font-size:13px;
  font-weight:600;
  color:var(--morning-mist);
  margin-top:auto;
}
.review-card .review-date{
  font-size:12px;
  color:rgba(245,242,235,.4);
  font-weight:400;
}

/* CTA row */
.reviews-cta{
  display:flex;
  justify-content:center;
  gap:16px;
  margin-top:40px;
  flex-wrap:wrap;
}
.btn-review{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:14px 32px;
  border-radius:12px;
  font-family:'Space Grotesk',sans-serif;
  font-size:13px;
  font-weight:600;
  letter-spacing:1.5px;
  text-transform:uppercase;
  text-decoration:none;
  cursor:pointer;
  transition:all .2s;
}
.btn-review-primary{
  background:var(--lime-zest);
  color:var(--deep-canopy);
  border:none;
}
.btn-review-primary:hover{
  background:var(--pure-surface);
  transform:translateY(-1px);
}
.btn-review-secondary{
  background:transparent;
  color:var(--morning-mist);
  border:1px solid rgba(255,255,255,.2);
}
.btn-review-secondary:hover{
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.35);
}
.btn-review svg{
  width:16px;
  height:16px;
  fill:currentColor;
}

/* ═══════════════════════════════════════════
   SECTION 8 — GALLERY PREVIEW (2x2 grid)
   ═══════════════════════════════════════════ */
.section-gallery{
  background:linear-gradient(180deg, #5A3A1E 0%, #3D3020 100%);
  padding:clamp(3rem,6vw,5rem) 80px;
}
.gallery-inner{max-width:1200px;margin:0 auto}
.gallery-header{margin-bottom:32px}
.gallery-header h2{
  font-family:'Fraunces',serif;
  font-size:clamp(28px,3.5vw,44px);
  font-weight:500;
  line-height:1.15;
  color:var(--morning-mist);
  margin-bottom:8px;
}
.gallery-header h2 em{
  font-family:'Yellowtail',cursive;
  font-style:normal;
  color:var(--lime-zest);
}
.gallery-sub{font-size:15px;color:rgba(245,242,235,.5)}
.gallery-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}
.gallery-item{
  border-radius:16px;
  overflow:hidden;
  height:260px;
  position:relative;
}
.gallery-item img{transition:transform .5s}
.gallery-item:hover img{transform:scale(1.06)}
.gallery-cta{text-align:center;margin-top:32px}

/* ═══════════════════════════════════════════
   SECTION 9 — FINAL CTA + BOOKING CARD
   Full-bleed forest photo background
   ═══════════════════════════════════════════ */
.section-cta{
  position:relative;
  padding:clamp(4rem,8vw,6rem) 80px;
  overflow:hidden;
}
.section-cta .cta-bg{
  position:absolute;
  inset:0;
  z-index:0;
}
.section-cta .cta-bg img{
  filter:brightness(.55) saturate(1.1);
}
.section-cta .cta-bg::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(46,74,30,.5) 0%,rgba(46,74,30,.15) 100%);
}
.cta-inner{
  position:relative;
  z-index:1;
  max-width:1200px;
  margin:0 auto;
  display:flex;
  align-items:center;
  gap:60px;
}
.cta-left{max-width:480px}
.cta-left h2{
  font-family:'Fraunces',serif;
  font-size:clamp(28px,3.5vw,44px);
  font-weight:500;
  line-height:1.15;
  color:var(--morning-mist);
  margin-bottom:16px;
}
.cta-left h2 em{
  font-family:'Yellowtail',cursive;
  font-style:normal;
  color:var(--lime-zest);
}
.cta-left p{
  font-size:16px;
  color:rgba(245,242,235,.65);
  line-height:1.7;
  margin-bottom:24px;
}
.cta-whatsapp{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:14px 28px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.2);
  background:transparent;
  color:var(--morning-mist);
  font-family:'Space Grotesk',sans-serif;
  font-size:13px;
  font-weight:600;
  letter-spacing:1.5px;
  text-transform:uppercase;
  text-decoration:none;
  transition:all .2s;
}
.cta-whatsapp:hover{
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.35);
}
.cta-whatsapp svg{width:18px;height:18px;fill:currentColor}

/* Booking card */
.cta-card{
  flex:1;
  max-width:440px;
  padding:32px;
  background:rgba(46,74,30,.45);
  backdrop-filter:blur(10px) saturate(1.3);
  -webkit-backdrop-filter:blur(10px) saturate(1.3);
  border:1px solid rgba(255,255,255,.12);
  border-radius:20px;
  box-shadow:0 8px 40px rgba(0,0,0,.25);
}
.cta-card h3{
  font-family:'Fraunces',serif;
  font-size:22px;
  font-weight:500;
  color:var(--morning-mist);
  margin-bottom:6px;
}
.cta-card .card-sub{
  font-size:14px;
  color:rgba(245,242,235,.5);
  margin-bottom:24px;
}
.cta-prices{
  display:flex;
  gap:20px;
  margin-bottom:24px;
}
.cta-price-box{
  flex:1;
  padding:16px;
  border-radius:12px;
  background:rgba(0,0,0,.15);
  border:1px solid rgba(255,255,255,.06);
}
.cta-price-label{
  font-family:'Space Grotesk',sans-serif;
  font-size:9px;
  font-weight:600;
  letter-spacing:2px;
  text-transform:uppercase;
  color:rgba(245,242,235,.4);
  margin-bottom:6px;
}
.cta-price-val{
  font-family:'Fraunces',serif;
  font-size:28px;
  font-weight:500;
  color:var(--morning-mist);
}
.cta-price-unit{
  font-family:'Source Sans 3',sans-serif;
  font-size:13px;
  color:rgba(245,242,235,.4);
}
.cta-fields{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-bottom:20px;
}
.cta-field{
  padding:14px 16px;
  border-radius:10px;
  background:rgba(0,0,0,.15);
  border:1px solid rgba(255,255,255,.06);
}
.cta-field-label{
  font-family:'Space Grotesk',sans-serif;
  font-size:9px;
  font-weight:600;
  letter-spacing:2px;
  text-transform:uppercase;
  color:rgba(245,242,235,.35);
  margin-bottom:6px;
}
.cta-field-val{
  font-size:14px;
  color:rgba(245,242,235,.7);
  display:flex;
  align-items:center;
  gap:8px;
}
.cta-field-val svg{
  width:16px;height:16px;
  stroke:var(--golden-earth);
  fill:none;stroke-width:2;
  flex-shrink:0;
}
.btn-cta-book{
  width:100%;
  padding:16px;
  border-radius:12px;
  background:var(--lime-zest);
  color:var(--deep-canopy);
  font-family:'Space Grotesk',sans-serif;
  font-size:14px;
  font-weight:600;
  letter-spacing:1px;
  border:none;
  cursor:pointer;
  transition:all .2s;
}
.btn-cta-book:hover{
  background:var(--pure-surface);
  transform:translateY(-1px);
}

/* VikBooking form inside CTA glass card */
.cta-card--booking{
  max-width:480px;
}
/* Reset VikBooking wrapper backgrounds */
.vbo-cta-form .wrap,
.vbo-cta-form .plugin-container,
.vbo-cta-form .vbdivsearch,
.vbo-cta-form .vbo-search-mainview,
.vbo-cta-form .vbo-intro-main,
.vbo-cta-form .vb-search-inner{
  background:transparent !important;
  border:none !important;
  box-shadow:none !important;
  padding:0 !important;
  margin:0 !important;
  border-radius:0 !important;
}
/* Uniform grid layout for VikBooking widget */
.vbo-cta-form .vbmodhorsearchmaindiv{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:12px !important;
  width:100% !important;
  float:none !important;
}
/* Override VikBooking's "form > div" float/inline-block */
.vbo-cta-form .vbmodhorsearchmaindiv form > div{
  display:block !important;
  float:none !important;
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
}
.vbo-cta-form .vbmodhorsearchrac{
  grid-column:1 / -1 !important;
}
.vbo-cta-form .vbmodhorsearchroomsel{
  grid-column:1 / -1 !important;
}
.vbo-cta-form .vbmodhorsearchbookdiv{
  grid-column:1 / -1 !important;
}
/* Override VikBooking's .input-group input float + fixed height */
.vbo-cta-form .vbmodhorsearchmaindiv .input-group input{
  float:none !important;
  width:100% !important;
  height:46px !important;
  padding:12px 14px !important;
  border-top-right-radius:10px !important;
  border-bottom-right-radius:10px !important;
}
/* Calendar trigger icon — hide the old box style, make it an overlay */
.vbo-cta-form .vbmodhorsearchmaindiv .input-group i{
  float:none !important;
  position:absolute !important;
  right:12px !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  border:none !important;
  background:transparent !important;
  height:auto !important;
  line-height:1 !important;
  color:rgba(245,242,235,.5) !important;
  z-index:2 !important;
}
.vbo-cta-form .vbmodhorsearchmaindiv .input-group{
  position:relative !important;
  display:block !important;
}
/* Room details row — uniform widths */
.vbo-cta-form .vbmodhorsearchroomdentr,
.vbo-cta-form .vbmodhorsearchroomdentrfirst{
  display:grid !important;
  grid-template-columns:auto 1fr 1fr !important;
  gap:12px !important;
  width:100% !important;
  align-items:end !important;
}
.vbo-cta-form .vbmodhorsearchroomdentr > span,
.vbo-cta-form .vbmodhorsearchroomdentrfirst > span{
  display:flex !important;
  align-items:end !important;
  padding-bottom:14px !important;
  color:rgba(245,242,235,.6) !important;
  font-family:'Space Grotesk',sans-serif !important;
  font-size:13px !important;
}
/* Room select — full width (override VikBooking's inline-block shrink) */
.vbo-cta-form .vbmodhorsearchroomsel{
  display:block !important;
  width:100% !important;
}
.vbo-cta-form .vbmodhorsearchroomsel .vbhsrnselsp{
  display:block !important;
  width:100% !important;
}
.vbo-cta-form .vbhsrnselsp select,
.vbo-cta-form .vbmodhorsearchroomsel select{
  display:block !important;
  width:100% !important;
  height:46px !important;
}
/* Adults/children selects in room row */
.vbo-cta-form .vbmodhorsearchrac select,
.vbo-cta-form .vbmodhorsearchroomdentr .horsanumdiv,
.vbo-cta-form .vbmodhorsearchroomdentr .horscnumdiv,
.vbo-cta-form .vbmodhorsearchroomdentrfirst .horsanumdiv,
.vbo-cta-form .vbmodhorsearchroomdentrfirst .horscnumdiv{
  display:block !important;
  width:100% !important;
}
.vbo-cta-form .vbmodhorsearchrac select,
.vbo-cta-form .vbmodhorsearchroomdentr .horsanumdiv select,
.vbo-cta-form .vbmodhorsearchroomdentr .horscnumdiv select,
.vbo-cta-form .vbmodhorsearchroomdentrfirst .horsanumdiv select,
.vbo-cta-form .vbmodhorsearchroomdentrfirst .horscnumdiv select{
  width:100% !important;
  height:46px !important;
}
.vbo-cta-form label{
  font-family:'Space Grotesk',sans-serif !important;
  font-size:11px !important;
  font-weight:600 !important;
  letter-spacing:1.5px !important;
  text-transform:uppercase !important;
  color:rgba(245,242,235,.5) !important;
  margin-bottom:6px !important;
  display:block !important;
}
/* Uniform input/select sizing */
.vbo-cta-form input[type="text"],
.vbo-cta-form input[type="date"],
.vbo-cta-form input[type="number"],
.vbo-cta-form select,
.vbo-cta-form .hasDatepicker,
.vbo-cta-form .vbo-drp-inp-trigger{
  background:rgba(0,0,0,.15) !important;
  border:1px solid rgba(255,255,255,.1) !important;
  border-radius:10px !important;
  color:var(--morning-mist) !important;
  padding:12px 14px !important;
  font-family:'Space Grotesk',sans-serif !important;
  font-size:14px !important;
  width:100% !important;
  height:46px !important;
  box-sizing:border-box !important;
  -webkit-appearance:none !important;
}
.vbo-cta-form input::placeholder{
  color:rgba(245,242,235,.4) !important;
}
.vbo-cta-form select option{
  background:var(--deep-canopy) !important;
  color:var(--morning-mist) !important;
}
/* Calendar icon styling */
.vbo-cta-form .vbo-caltrigger{
  position:absolute !important;
  right:12px !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  cursor:pointer !important;
}
.vbo-cta-form .vbmodhorsearchcheckindiv,
.vbo-cta-form .vbmodhorsearchcheckoutdiv{
  position:relative !important;
}
/* Submit button */
.vbo-cta-form button[type="submit"],
.vbo-cta-form .btn.vbo-pref-color-btn,
.vbo-cta-form input[type="submit"]{
  width:100% !important;
  padding:16px !important;
  height:50px !important;
  border-radius:12px !important;
  background:var(--lime-zest) !important;
  color:var(--deep-canopy) !important;
  font-family:'Space Grotesk',sans-serif !important;
  font-size:14px !important;
  font-weight:600 !important;
  letter-spacing:1px !important;
  border:none !important;
  cursor:pointer !important;
  transition:all .2s !important;
  margin-top:0 !important;
}
.vbo-cta-form button[type="submit"]:hover,
.vbo-cta-form .btn.vbo-pref-color-btn:hover,
.vbo-cta-form input[type="submit"]:hover{
  background:var(--pure-surface) !important;
  transform:translateY(-1px) !important;
}

/* ═══════════════════════════════════════════
   FOOTER
   ═══════════════════════════════════════════ */
.site-footer{
  background:#1A2E12;
  padding:clamp(3rem,6vw,5rem) 80px 24px;
  border-top:1px solid rgba(255,255,255,.06);
}
.footer-inner{max-width:1200px;margin:0 auto}
.footer-grid{
  display:grid;
  grid-template-columns:1.5fr 1fr;
  gap:60px;
  margin-bottom:48px;
}
.footer-brand{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.footer-brand img{width:40px;height:40px;border-radius:8px;object-fit:contain}
.footer-brand span{
  font-family:'Space Grotesk',sans-serif;
  font-size:18px;
  font-weight:600;
  color:var(--morning-mist);
}
.footer-address{
  font-size:14px;
  color:rgba(245,242,235,.45);
  line-height:1.7;
  max-width:300px;
}
.footer-cols{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px;
}
.footer-col h4{
  font-family:'Space Grotesk',sans-serif;
  font-size:11px;
  font-weight:600;
  letter-spacing:3px;
  text-transform:uppercase;
  color:var(--golden-earth);
  margin-bottom:16px;
}
.footer-col a{
  display:block;
  font-size:14px;
  color:rgba(245,242,235,.5);
  text-decoration:none;
  padding:5px 0;
  transition:color .2s;
}
.footer-col a:hover{color:var(--morning-mist)}
.footer-bottom{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding-top:24px;
  border-top:1px solid rgba(255,255,255,.06);
}
.footer-copy{
  font-size:12px;
  color:rgba(245,242,235,.3);
}
.footer-social{display:flex;gap:16px}
.footer-social a{
  display:flex;
  align-items:center;
  justify-content:center;
  transition:opacity .2s;
}
.footer-social a:hover{opacity:1}
.footer-social svg{
  width:28px;height:28px;
  fill:rgba(245,242,235,.35);
}
.footer-social a:hover svg{
  fill:rgba(245,242,235,.7);
}

/* ═══════════════════════════════════════════
   RESPONSIVE (DESIGN.MD rules)
   Mobile-first collapse < 768px
   All body text min 16px
   Touch targets min 48px
   ═══════════════════════════════════════════ */
/* Tablet — tighten nav spacing */
@media(max-width:1024px){
  .site-header{left:20px;right:20px}
  nav{gap:16px;padding:12px 12px 12px 20px}
  nav a{font-size:11px;letter-spacing:1px}
  .hero{padding:0 40px}
}

/* ═══════════════════════════════════════════
   MOBILE MENU — Grid-dots toggle + glass dropdown
   ═══════════════════════════════════════════ */

/* Toggle button — hidden on desktop */
.nav-toggle{
  display:none;
  width:48px;
  height:48px;
  border:none;
  background:none;
  cursor:pointer;
  padding:12px;
  position:relative;
  -webkit-tap-highlight-color:transparent;
}
/* 2x2 grid dots — bigger for visibility */
.nav-toggle .dot{
  position:absolute;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--morning-mist);
  transition:all .35s cubic-bezier(0.4,0,0.2,1);
}
.nav-toggle .dot:nth-child(1){top:15px;left:15px}
.nav-toggle .dot:nth-child(2){top:15px;right:15px}
.nav-toggle .dot:nth-child(3){bottom:15px;left:15px}
.nav-toggle .dot:nth-child(4){bottom:15px;right:15px}

/* Dots morph to X when open */
.nav-toggle.open .dot:nth-child(1){top:22px;left:12px;width:24px;height:3px;border-radius:2px;transform:rotate(45deg)}
.nav-toggle.open .dot:nth-child(2){opacity:0;transform:scale(0)}
.nav-toggle.open .dot:nth-child(3){top:22px;left:12px;width:24px;height:3px;border-radius:2px;transform:rotate(-45deg)}
.nav-toggle.open .dot:nth-child(4){opacity:0;transform:scale(0)}

/* Mobile dropdown panel — hidden on desktop */
.mobile-dropdown{
  display:none;
}
.mobile-dropdown a{
  display:block;
  font-family:'Space Grotesk',sans-serif;
  font-size:16px;
  font-weight:500;
  color:rgba(245,242,235,.92);
  text-decoration:none;
  letter-spacing:1px;
  text-transform:uppercase;
  padding:16px 0;
  border-bottom:1px solid rgba(255,255,255,.08);
  transition:color .2s;
}
.mobile-dropdown a:last-of-type{border-bottom:none}
.mobile-dropdown a:hover,.mobile-dropdown a:active{color:var(--morning-mist)}
.mobile-dropdown .btn-book-mobile{
  display:block;
  width:100%;
  margin-top:20px;
  padding:16px;
  border-radius:12px;
  background:var(--lime-zest);
  color:var(--deep-canopy);
  font-family:'Space Grotesk',sans-serif;
  font-size:14px;
  font-weight:600;
  border:none;
  cursor:pointer;
  letter-spacing:1px;
  text-transform:uppercase;
  text-align:center;
  transition:background .2s;
}
.mobile-dropdown .btn-book-mobile:hover{background:var(--pure-surface)}

/* Mobile */
@media(max-width:768px){
  .site-header{left:16px;right:16px;top:12px}

  /* Bigger logo + brand on mobile */
  .site-header .brand img{height:46px;width:46px}
  .site-header .brand-name{font-size:22px}
  .site-header .brand-sub{font-size:10px;letter-spacing:3px}

  /* Nav pill: hide links, keep Book Now + toggle */
  nav a{display:none}
  nav{padding:6px 6px 6px 12px;margin-left:auto;flex:unset;gap:8px}
  .nav-toggle{display:block}
  nav .btn-book{padding:8px 16px;font-size:11px}

  /* Dropdown: sits right below the header bar, same left/right edges */
  .mobile-dropdown{
    display:flex;
    flex-direction:column;
    position:fixed;
    top:66px;
    left:16px;
    right:16px;
    z-index:1;
    padding:20px 28px 24px;
    background:rgba(30,50,18,.92);
    backdrop-filter:blur(16px) saturate(1.4);
    -webkit-backdrop-filter:blur(16px) saturate(1.4);
    border:1px solid rgba(255,255,255,.15);
    border-radius:20px;
    visibility:hidden;
    opacity:0;
    pointer-events:none;
    transform:translateY(-20px);
    transition:transform .4s cubic-bezier(0.34,1.56,0.64,1),
               opacity .3s ease,
               visibility 0s .4s;
  }
  .mobile-dropdown.open{
    visibility:visible;
    opacity:1;
    pointer-events:auto;
    transform:translateY(0);
    transition:transform .4s cubic-bezier(0.34,1.56,0.64,1),
               opacity .3s ease,
               visibility 0s 0s;
  }

  .hero{padding:0 24px}
  .hero .content{flex-direction:column;gap:40px;padding-top:120px}
  .hero .left{max-width:100%}
  .pricing-card{width:100%;padding:24px;border-radius:18px}
  .pricing-card h3{font-size:20px}
  .pricing-card .price-box{padding:14px 18px;margin-bottom:20px}
  .pricing-card .price-box .amount{font-size:36px}
  .pricing-card ul{margin-bottom:20px}
  .pricing-card li{font-size:13px;margin-bottom:10px;gap:8px}
  .section-dark{padding:40px 24px}
  .section-activities{padding:36px 24px}
  .act-grid{grid-template-columns:1fr}
  .section-reviews{padding:36px 24px}
  .reviews-grid{grid-template-columns:1fr}
  .reviews-cta{flex-direction:column;align-items:center}
  .gallery-grid{grid-template-columns:1fr 1fr}
  .section-gallery{padding:36px 24px}
  .section-cta{padding:36px 24px}
  .cta-inner{flex-direction:column;gap:40px}
  .cta-left{max-width:100%}
  .cta-card{width:100%}
  .cta-prices{flex-direction:column;gap:12px}
  .site-footer{padding:48px 24px 24px}
  .footer-grid{grid-template-columns:1fr;gap:32px}
  .footer-cols{grid-template-columns:1fr 1fr;gap:24px}
  .section-rooms{padding:36px 24px}
  .rooms-grid{grid-template-columns:1fr}
  .room-card .card-img{height:180px}
  .section-journey{padding:48px 24px}
  .day-block{grid-template-columns:60px 1fr}
  .tl-row{grid-template-columns:1fr;gap:4px;padding:16px 20px}
  .tl-time{font-size:12px}
  .tl-desc{font-size:14px}
  .day-label .day-num{font-size:24px}
  .day-label .day-word{font-size:9px;letter-spacing:2px}
  .journey-note{flex-direction:column;padding:16px 20px}
  .pillar-header{padding:24px 24px 0}
  .pillar-sticky{padding:0}
  .card-stack{width:94vw;height:90vh}
  .pillar-card:nth-child(2){transform:translate(-14px,6px) rotate(-1.5deg)}
  .pillar-card:nth-child(3){transform:translate(14px,6px) rotate(1.5deg)}
  .pillar-dots{right:10px}
  .usp-grid{grid-template-columns:1fr 1fr}
  .hero h1{font-size:clamp(28px,8vw,36px)}
}

/* Small phones */
@media(max-width:480px){
  .usp-grid{grid-template-columns:1fr}
  .pillar-header{padding:20px 16px 0}
  .pillar-sticky{padding:0}
  .card-stack{width:96vw;height:92vh}
  .pillar-card:nth-child(2){transform:translate(-8px,4px) rotate(-1deg)}
  .pillar-card:nth-child(3){transform:translate(8px,4px) rotate(1deg)}
  .pillar-card .body{padding:16px 20px}
  .pillar-card .body p{font-size:13px}
  .pillar-dots{display:none}
}

/* DESIGN.MD: respect prefers-reduced-motion */
@media(prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important}
  .reveal{opacity:1;transform:none}
}

/* ═══════════════════════════════════════════════════════════════
   INNER PAGE COMPONENTS — New (not in homepage)
   Bricks Builder: map these to Global CSS Classes
   ═══════════════════════════════════════════════════════════════ */

/* ─── Page Header (dark green, no photo — utility pages) ─── */
.page-header{
  background:var(--deep-canopy);
  padding:140px 80px 60px;
  text-align:center;
}
.page-header__breadcrumb{
  font-family:'Space Grotesk',sans-serif;
  font-size:12px;
  letter-spacing:2px;
  text-transform:uppercase;
  color:rgba(245,242,235,.4);
  margin-bottom:16px;
}
.page-header__breadcrumb a{
  color:rgba(245,242,235,.4);
  text-decoration:none;
  transition:color .2s;
}
.page-header__breadcrumb a:hover{color:var(--morning-mist)}
.page-header__breadcrumb span{color:rgba(245,242,235,.25)}
.page-header__title{
  font-family:'Space Grotesk',sans-serif;
  font-size:clamp(32px,5vw,52px);
  font-weight:700;
  color:var(--morning-mist);
  line-height:1.15;
  margin-bottom:12px;
}
.page-header__subtitle{
  font-family:'Source Sans 3',sans-serif;
  font-size:clamp(16px,2vw,20px);
  color:rgba(245,242,235,.6);
  max-width:600px;
  margin:0 auto;
  line-height:1.6;
}

/* ─── Page Hero (full photo — emotional pages) ─── */
.page-hero{
  position:relative;
  min-height:60vh;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:140px 80px 80px;
  overflow:hidden;
}
.page-hero--compact{
  min-height:auto !important;
  padding:120px 80px 40px !important;
}
.page-hero--compact .page-hero__title{
  font-size:clamp(28px,4vw,42px) !important;
  margin-bottom:8px !important;
}
.page-hero--compact .page-hero__subtitle{
  font-size:clamp(14px,1.4vw,16px) !important;
}
.page-hero__bg{
  position:absolute;
  inset:0;
  z-index:0;
}
.page-hero__bg img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:brightness(.7) saturate(1.1);
}
.page-hero__bg::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(
    180deg,
    rgba(46,74,30,.8) 0%,
    rgba(46,74,30,.5) 50%,
    rgba(46,74,30,.7) 100%
  );
}
.page-hero__content{
  position:relative;
  z-index:1;
  max-width:800px;
}
.page-hero__breadcrumb{
  font-family:'Space Grotesk',sans-serif;
  font-size:12px;
  letter-spacing:2px;
  text-transform:uppercase;
  color:rgba(245,242,235,.4);
  margin-bottom:20px;
}
.page-hero__breadcrumb a{color:rgba(245,242,235,.4);text-decoration:none;transition:color .2s}
.page-hero__breadcrumb a:hover{color:var(--morning-mist)}
.page-hero__breadcrumb span{color:rgba(245,242,235,.25)}
.page-hero__title{
  font-family:'Space Grotesk',sans-serif;
  font-size:clamp(36px,6vw,60px);
  font-weight:700;
  color:var(--morning-mist);
  line-height:1.1;
  margin-bottom:16px;
}
.page-hero__subtitle{
  font-family:'Source Sans 3',sans-serif;
  font-size:clamp(16px,2vw,22px);
  color:rgba(245,242,235,.75);
  max-width:640px;
  margin:0 auto;
  line-height:1.6;
}

/* ─── Content Sections (alternating backgrounds) ─── */
.content-section{
  padding:clamp(3rem,8vw,6rem) 80px;
}
.content-section--white{background:var(--pure-surface)}
.content-section--cream{background:var(--morning-mist)}
.content-section--dark{
  background:var(--deep-canopy);
  color:var(--morning-mist);
}
.content-section__inner{
  max-width:1000px;
  margin:0 auto;
}
.content-section__wide{
  max-width:1200px;
  margin:0 auto;
}

/* ─── Section Titles ─── */
.section-title{
  font-family:'Space Grotesk',sans-serif;
  font-size:clamp(24px,4vw,40px);
  font-weight:700;
  line-height:1.2;
  margin-bottom:12px;
}
.section-title--dark{color:var(--charcoal-ink)}
.section-title--light{color:var(--morning-mist)}
.section-subtitle{
  font-family:'Source Sans 3',sans-serif;
  font-size:clamp(16px,2vw,20px);
  color:var(--muted-stone);
  line-height:1.6;
  max-width:640px;
}
.section-subtitle--light{color:rgba(245,242,235,.6)}
.section-label{
  font-family:'Space Grotesk',sans-serif;
  font-size:11px;
  font-weight:600;
  letter-spacing:3px;
  text-transform:uppercase;
  color:var(--golden-earth);
  margin-bottom:8px;
}

/* ─── Card Grid ─── */
.card-grid{
  display:grid;
  gap:24px;
}
.card-grid--2{grid-template-columns:repeat(2,1fr)}
.card-grid--3{grid-template-columns:repeat(3,1fr)}
.card-grid--4{grid-template-columns:repeat(4,1fr)}

/* ─── Glass Card (inner pages) ─── */
.card{
  background:var(--pure-surface);
  border:1px solid var(--whisper-border);
  border-radius:16px;
  overflow:hidden;
  transition:transform .2s, box-shadow .2s;
}
/* ─── Dinner hero (meals section) ─── */
.meals-dinner-hero{display:grid;grid-template-columns:45% 1fr;border-radius:16px;overflow:hidden;border:1px solid var(--whisper-border);background:var(--pure-surface);transition:box-shadow .2s;margin-bottom:20px}
.meals-dinner-hero:hover{box-shadow:0 8px 24px rgba(0,0,0,.08)}
.meals-dinner-hero__photo{position:relative;overflow:hidden;min-height:280px}
.meals-dinner-hero__photo img{width:100%;height:100%;object-fit:cover;object-position:center 40%;display:block;transition:transform .4s ease}
.meals-dinner-hero:hover .meals-dinner-hero__photo img{transform:scale(1.04)}
.meals-dinner-hero__badge{position:absolute;bottom:14px;left:16px;background:rgba(0,0,0,.52);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:#fff;font-family:'Space Grotesk',sans-serif;font-size:11px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;padding:6px 14px;border-radius:20px}
.meals-dinner-hero__body{padding:36px 40px;display:flex;flex-direction:column;justify-content:center}
@media(max-width:768px){
  .meals-dinner-hero{grid-template-columns:1fr}
  .meals-dinner-hero__photo{min-height:220px}
  .meals-dinner-hero__body{padding:24px}
}
.card:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(0,0,0,.08);
}
.card__img{
  overflow:hidden;
  cursor:pointer;
}
.card__img img{
  width:100%;
  height:auto;
  display:block;
  transition:transform .3s;
}
.card:hover .card__img img{transform:scale(1.03)}

/* ─── Lightbox (click-to-view full photo) ─── */
.lightbox{
  display:none !important;
  position:fixed;
  inset:0;
  z-index:9999;
  background:rgba(0,0,0,.88);
  align-items:center;
  justify-content:center;
  padding:24px;
  cursor:zoom-out;
}
.lightbox.open{display:flex !important}
.lightbox img{
  max-width:92vw;
  max-height:90vh;
  width:auto;
  height:auto;
  object-fit:contain;
  border-radius:8px;
  box-shadow:0 8px 40px rgba(0,0,0,.5);
}
.lightbox__close{
  position:absolute;
  top:20px;
  right:24px;
  width:44px;
  height:44px;
  border:none;
  background:rgba(255,255,255,.15);
  border-radius:50%;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:background .2s;
}
.lightbox__close:hover{background:rgba(255,255,255,.3)}
.lightbox__close svg{width:20px;height:20px;stroke:#fff;stroke-width:2;fill:none}
.card__body{padding:24px}
.card__title{
  font-family:'Space Grotesk',sans-serif;
  font-size:18px;
  font-weight:600;
  color:var(--charcoal-ink);
  margin-bottom:8px;
}
.card__text{
  font-size:16px;
  color:var(--muted-stone);
  line-height:1.6;
}
.card__badge{
  display:inline-block;
  padding:4px 12px;
  border-radius:100px;
  font-family:'Space Grotesk',sans-serif;
  font-size:11px;
  font-weight:600;
  letter-spacing:1px;
  text-transform:uppercase;
}
.card__badge--included{
  background:var(--lime-zest);
  color:var(--deep-canopy);
}
.card__badge--paid{
  background:rgba(196,162,101,.15);
  color:var(--timber-bark);
}

/* ─── Dark Cards (on dark backgrounds) ─── */
.card--dark{
  background:rgba(20,40,15,.4);
  border:1px solid rgba(255,255,255,.08);
}
.card--dark .card__title{color:var(--morning-mist)}
.card--dark .card__text{color:rgba(245,242,235,.65)}

/* ─── Stats Bar ─── */
.stats-bar{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:24px;
  padding:40px 0;
}
.stats-bar__item{text-align:center}
.stats-bar__number{
  font-family:'Space Grotesk',sans-serif;
  font-size:clamp(32px,4vw,48px);
  font-weight:700;
  color:var(--forest-fern);
  line-height:1;
  margin-bottom:4px;
}
.stats-bar__label{
  font-family:'Source Sans 3',sans-serif;
  font-size:14px;
  color:var(--muted-stone);
  text-transform:uppercase;
  letter-spacing:1px;
}

/* ─── Values Grid (About page) ─── */
.values-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:24px;
}
.value-card{
  background:var(--pure-surface);
  border:1px solid var(--whisper-border);
  border-radius:16px;
  padding:28px;
  text-align:center;
  transition:transform .2s, box-shadow .2s;
}
.value-card:hover{
  transform:translateY(-3px);
  box-shadow:0 8px 24px rgba(0,0,0,.06);
}
.value-card__chinese{
  font-size:36px;
  margin-bottom:8px;
  line-height:1;
}
.value-card__name{
  font-family:'Space Grotesk',sans-serif;
  font-size:18px;
  font-weight:600;
  color:var(--charcoal-ink);
  margin-bottom:8px;
}
.value-card__desc{
  font-size:16px;
  color:var(--muted-stone);
  line-height:1.5;
  font-style:italic;
}

/* ─── Timeline (itinerary) ─── */
.timeline{
  position:relative;
  padding-left:40px;
}
.timeline::before{
  content:'';
  position:absolute;
  left:11px;
  top:8px;
  bottom:8px;
  width:2px;
  background:var(--whisper-border);
}
.timeline__item{
  position:relative;
  padding-bottom:28px;
}
.timeline__item:last-child{padding-bottom:0}
.timeline__dot{
  position:absolute;
  left:-40px;
  top:4px;
  width:24px;
  height:24px;
  border-radius:50%;
  background:var(--pure-surface);
  border:2px solid var(--forest-fern);
  display:flex;
  align-items:center;
  justify-content:center;
}
.timeline__dot::after{
  content:'';
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--forest-fern);
}
.timeline__time{
  font-family:'Space Grotesk',sans-serif;
  font-size:14px;
  font-weight:600;
  color:var(--forest-fern);
  margin-bottom:2px;
}
.timeline__desc{
  font-size:18px;
  color:var(--charcoal-ink);
  line-height:1.5;
}
.timeline__note{
  font-size:15px;
  color:var(--muted-stone);
  margin-top:2px;
}

/* ─── FAQ Accordion ─── */
.faq{margin:0}
.faq__group-title{
  font-family:'Space Grotesk',sans-serif;
  font-size:14px;
  font-weight:600;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--golden-earth);
  margin:32px 0 12px;
}
.faq__group-title:first-child{margin-top:0}
.faq__item{
  border-bottom:1px solid var(--whisper-border);
}
.faq__question{
  display:flex;
  justify-content:space-between;
  align-items:center;
  width:100%;
  padding:20px 0;
  background:none;
  border:none;
  cursor:pointer;
  font-family:'Space Grotesk',sans-serif;
  font-size:18px;
  font-weight:500;
  color:var(--charcoal-ink);
  text-align:left;
  line-height:1.4;
  gap:16px;
}
.faq__question:hover{color:var(--forest-fern)}
.faq__icon{
  flex-shrink:0;
  width:24px;
  height:24px;
  transition:transform .3s;
}
.faq__question[aria-expanded="true"] .faq__icon{
  transform:rotate(180deg);
}
.faq__answer{
  max-height:0;
  overflow:hidden;
  transition:max-height .35s ease, padding .35s ease;
}
.faq__answer.open{
  max-height:600px;
  padding-bottom:20px;
}
.faq__answer p{
  font-size:18px;
  color:var(--muted-stone);
  line-height:1.7;
}
.faq__answer a{
  color:var(--forest-fern);
  text-decoration:underline;
  text-underline-offset:2px;
}

/* ─── Callout Box ─── */
.callout{
  padding:24px 28px;
  border-radius:16px;
  border-left:4px solid var(--golden-earth);
  background:rgba(196,162,101,.08);
}
.callout--warning{
  border-left-color:#D97706;
  background:rgba(217,119,6,.06);
}
.callout__title{
  font-family:'Space Grotesk',sans-serif;
  font-size:18px;
  font-weight:600;
  color:var(--charcoal-ink);
  margin-bottom:8px;
  display:flex;
  align-items:center;
  gap:8px;
}
.callout__text{
  font-size:16px;
  color:var(--muted-stone);
  line-height:1.7;
}
.callout__text a{
  color:var(--forest-fern);
  text-decoration:underline;
  text-underline-offset:2px;
}

/* ─── Checklist ─── */
.checklist{
  list-style:none;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:12px;
}
.checklist__item{
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:12px 16px;
  border-radius:12px;
  background:var(--pure-surface);
  border:1px solid var(--whisper-border);
  font-size:16px;
  color:var(--charcoal-ink);
  line-height:1.5;
}
.checklist__icon{
  flex-shrink:0;
  width:24px;
  height:24px;
  margin-top:2px;
}
.checklist__item--important{
  border-color:var(--golden-earth);
  background:rgba(196,162,101,.06);
}
.checklist__item--important .checklist__icon{
  color:#D97706;
}

/* ─── Distance Table ─── */
.distance-table{
  width:100%;
  border-collapse:collapse;
  font-size:16px;
}
.distance-table th{
  font-family:'Space Grotesk',sans-serif;
  font-size:12px;
  font-weight:600;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--muted-stone);
  text-align:left;
  padding:12px 16px;
  border-bottom:2px solid var(--whisper-border);
}
.distance-table td{
  padding:14px 16px;
  border-bottom:1px solid var(--whisper-border);
  color:var(--charcoal-ink);
}
.distance-table tr:last-child td{border-bottom:none}
.distance-table td:first-child{font-weight:600}

/* ─── Map Embed ─── */
.map-embed{
  border-radius:16px;
  overflow:hidden;
  border:1px solid var(--whisper-border);
}
.map-embed iframe{
  width:100%;
  height:400px;
  border:none;
  display:block;
}

/* ─── CTA Banner ─── */
.cta-banner{
  background:var(--deep-canopy);
  padding:clamp(3rem,6vw,5rem) 80px;
  text-align:center;
}
.cta-banner__title{
  font-family:'Space Grotesk',sans-serif;
  font-size:clamp(28px,4vw,44px);
  font-weight:700;
  color:var(--morning-mist);
  margin-bottom:12px;
}
.cta-banner__text{
  font-size:18px;
  color:rgba(245,242,235,.6);
  margin-bottom:28px;
  max-width:500px;
  margin-left:auto;
  margin-right:auto;
}
.cta-banner__btn{
  display:inline-block;
  padding:16px 40px;
  border-radius:100px;
  background:var(--lime-zest);
  color:var(--deep-canopy);
  font-family:'Space Grotesk',sans-serif;
  font-size:14px;
  font-weight:600;
  letter-spacing:1px;
  text-transform:uppercase;
  text-decoration:none;
  border:none;
  cursor:pointer;
  transition:all .2s;
}
.cta-banner__btn:hover{
  background:var(--pure-surface);
  transform:translateY(-2px);
}

/* ─── Quick Nav (Terms page anchor links) ─── */
.quick-nav{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:32px;
  padding:20px 0;
  border-bottom:1px solid var(--whisper-border);
}
.quick-nav a{
  padding:8px 16px;
  border-radius:100px;
  border:1px solid var(--whisper-border);
  font-family:'Space Grotesk',sans-serif;
  font-size:13px;
  font-weight:500;
  color:var(--muted-stone);
  text-decoration:none;
  transition:all .2s;
}
.quick-nav a:hover{
  border-color:var(--forest-fern);
  color:var(--forest-fern);
  background:rgba(74,122,43,.06);
}

/* ─── Rules List ─── */
.rules-list{list-style:none}
.rules-list__item{
  display:flex;
  align-items:flex-start;
  gap:14px;
  padding:16px 0;
  border-bottom:1px solid var(--whisper-border);
  font-size:18px;
  color:var(--charcoal-ink);
  line-height:1.6;
}
.rules-list__item:last-child{border-bottom:none}
.rules-list__icon{
  flex-shrink:0;
  width:28px;
  height:28px;
  margin-top:2px;
}
.rules-list__detail{
  font-size:15px;
  color:var(--muted-stone);
  margin-top:4px;
}

/* ─── Inline link style ─── */
.link{
  color:var(--forest-fern);
  text-decoration:underline;
  text-underline-offset:2px;
  transition:color .2s;
}
.link:hover{color:var(--deep-canopy)}

/* ─── Buttons (shared) ─── */
.btn-primary{
  display:inline-block;
  padding:14px 32px;
  border-radius:100px;
  background:var(--lime-zest);
  color:var(--deep-canopy);
  font-family:'Space Grotesk',sans-serif;
  font-size:14px;
  font-weight:600;
  letter-spacing:1px;
  text-transform:uppercase;
  text-decoration:none;
  border:none;
  cursor:pointer;
  transition:all .2s;
}
.btn-primary:hover{
  background:var(--pure-surface);
  transform:translateY(-1px);
}
.btn-outline{
  display:inline-block;
  padding:14px 32px;
  border-radius:100px;
  background:transparent;
  color:var(--morning-mist);
  font-family:'Space Grotesk',sans-serif;
  font-size:14px;
  font-weight:600;
  letter-spacing:1px;
  text-transform:uppercase;
  text-decoration:none;
  border:1px solid rgba(255,255,255,.25);
  cursor:pointer;
  transition:all .2s;
}
.btn-outline:hover{
  border-color:var(--morning-mist);
  background:rgba(255,255,255,.08);
}

/* ─── Facilities Grid (About page) ─── */
.facility-card{
  display:flex;
  align-items:center;
  gap:16px;
  padding:20px;
  border-radius:12px;
  border:1px solid var(--whisper-border);
  background:var(--pure-surface);
  text-decoration:none;
  transition:all .2s;
}
.facility-card:hover{
  border-color:var(--forest-fern);
  transform:translateY(-2px);
  box-shadow:0 4px 16px rgba(0,0,0,.06);
}
.facility-card__icon{
  width:48px;
  height:48px;
  border-radius:12px;
  background:rgba(74,122,43,.08);
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}
.facility-card__icon svg{
  width:24px;height:24px;
  stroke:var(--forest-fern);
  fill:none;stroke-width:1.5;
}
.facility-card__name{
  font-family:'Space Grotesk',sans-serif;
  font-size:16px;
  font-weight:600;
  color:var(--charcoal-ink);
}
.facility-card__desc{
  font-size:14px;
  color:var(--muted-stone);
  margin-top:2px;
}

/* ─── Story Section (About page) ─── */
.story-block{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:48px;
  align-items:center;
}
.story-block--reverse{direction:rtl}
.story-block--reverse > *{direction:ltr}
.story-block__text h2{
  font-family:'Fraunces',serif;
  font-size:clamp(24px,3vw,36px);
  font-weight:500;
  color:var(--charcoal-ink);
  margin-bottom:16px;
  line-height:1.25;
}
.story-block__text p{
  font-size:18px;
  color:var(--muted-stone);
  line-height:1.8;
  margin-bottom:16px;
}
.story-block__text p:last-child{margin-bottom:0}
.story-block__image{
  border-radius:16px;
  overflow:hidden;
}
.story-block__image img{
  width:100%;
  height:100%;
  object-fit:cover;
}

/* ═══════════════════════════════════════════════════════════════
   RESPONSIVE BREAKPOINTS
   ═══════════════════════════════════════════════════════════════ */

/* Tablet */
@media(max-width:1024px){
  .site-header{left:20px;right:20px}
  nav{gap:16px;padding:12px 12px 12px 20px}
  nav a{font-size:11px;letter-spacing:1px}
  .content-section{padding:clamp(2.5rem,6vw,4rem) 40px}
  .page-header{padding:120px 40px 48px}
  .page-hero{padding:120px 40px 60px}
  .cta-banner{padding:clamp(2.5rem,6vw,4rem) 40px}
  .card-grid--3{grid-template-columns:repeat(2,1fr)}
  .card-grid--4{grid-template-columns:repeat(2,1fr)}
  .story-block{gap:32px}
}

/* Mobile */
@media(max-width:768px){
  .site-header{left:16px;right:16px;top:12px}
  .site-header .brand img{height:46px;width:46px}
  .site-header .brand-name{font-size:22px}
  .site-header .brand-sub{font-size:10px;letter-spacing:3px}
  nav a{display:none}
  nav{padding:6px 6px 6px 12px;margin-left:auto;flex:unset;gap:8px}
  .nav-toggle{display:block}
  nav .btn-book{padding:8px 16px;font-size:11px}
  .mobile-dropdown{
    display:flex;
    flex-direction:column;
    position:fixed;
    top:66px;
    left:16px;
    right:16px;
    z-index:1;
    padding:20px 28px 24px;
    background:rgba(30,50,18,.92);
    backdrop-filter:blur(16px) saturate(1.4);
    -webkit-backdrop-filter:blur(16px) saturate(1.4);
    border:1px solid rgba(255,255,255,.15);
    border-radius:20px;
    visibility:hidden;
    opacity:0;
    pointer-events:none;
    transform:translateY(-20px);
    transition:transform .4s cubic-bezier(0.34,1.56,0.64,1),
               opacity .3s ease,
               visibility 0s .4s;
  }
  .mobile-dropdown.open{
    visibility:visible;
    opacity:1;
    pointer-events:auto;
    transform:translateY(0);
    transition:transform .4s cubic-bezier(0.34,1.56,0.64,1),
               opacity .3s ease,
               visibility 0s 0s;
  }
  .content-section{padding:48px 24px}
  .page-header{padding:100px 24px 40px}
  .page-hero{padding:100px 24px 48px;min-height:45vh}
  .cta-banner{padding:48px 24px}
  .site-footer{padding:48px 24px 24px}
  .footer-grid{grid-template-columns:1fr;gap:32px}
  .card-grid--2,.card-grid--3,.card-grid--4{grid-template-columns:1fr}
  .story-block{grid-template-columns:1fr;gap:24px}
  .story-block--reverse{direction:ltr}
  .stats-bar{grid-template-columns:repeat(3,1fr);gap:16px}
  .values-grid{grid-template-columns:repeat(2,1fr)}
  .timeline{padding-left:32px}
  .timeline__dot{left:-32px;width:20px;height:20px}
  .timeline__dot::after{width:6px;height:6px}
  .map-embed iframe{height:300px}
  .quick-nav{gap:6px}
  .quick-nav a{font-size:12px;padding:6px 12px}
}

/* Small phones */
@media(max-width:480px){
  .stats-bar{grid-template-columns:repeat(2,1fr)}
  .values-grid{grid-template-columns:1fr}
  .checklist{grid-template-columns:1fr}
}

/* Reduced motion */
@media(prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important}
  .reveal{opacity:1;transform:none}
}

/* ═══ PAGE-SPECIFIC STYLES ═══ */
/* ─── PAGE: about ─── */
/* ═══════════════════════════════════════════
   ABOUT PAGE — Page-specific styles
   ═══════════════════════════════════════════ */

/* ─── Section Label (overline text) ─── */
.section-label{
  font-family:'Space Grotesk',sans-serif;
  font-size:11px;
  font-weight:600;
  letter-spacing:3px;
  text-transform:uppercase;
  color:var(--golden-earth);
  margin-bottom:12px;
  display:block;
}

/* ─── Section Heading (Fraunces) ─── */
.section-heading{
  font-family:'Fraunces',serif;
  font-size:clamp(28px,4vw,42px);
  font-weight:500;
  color:var(--deep-canopy);
  line-height:1.2;
  margin-bottom:24px;
}

/* ─── Body Prose ─── */
.prose{
  font-family:'Source Sans 3',sans-serif;
  font-size:18px;
  color:var(--charcoal-ink);
  line-height:1.8;
}
.prose p + p{
  margin-top:20px;
}

/* ─── Story Block (2-column: text + image) ─── */
.story-block{
  display:grid;
  grid-template-columns:1.1fr 0.9fr;
  gap:clamp(32px,5vw,64px);
  align-items:center;
}
.story-block__text{
  order:1;
}
.story-block__image{
  order:2;
  border-radius:16px;
  overflow:hidden;
  aspect-ratio:4/5;
}
.story-block__image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

/* ─── Stats Bar ─── */
.stats-bar{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:24px;
  text-align:center;
  padding:clamp(48px,6vw,72px) 0;
}
.stat{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
}
.stat__number{
  font-family:'Fraunces',serif;
  font-size:clamp(36px,4vw,52px);
  font-weight:500;
  color:var(--deep-canopy);
  line-height:1.1;
}
.stat__label{
  font-family:'Space Grotesk',sans-serif;
  font-size:13px;
  font-weight:500;
  letter-spacing:1px;
  text-transform:uppercase;
  color:var(--muted-stone);
}

/* ─── Values Grid ─── */
.values-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  gap:24px;
  margin-top:32px;
}
.value-card{
  background:var(--pure-surface);
  border:1px solid var(--whisper-border);
  border-radius:16px;
  padding:32px 28px;
  transition:transform .25s ease, box-shadow .25s ease;
}
.value-card:hover{
  transform:translateY(-4px);
  box-shadow:0 12px 32px rgba(46,74,30,.08);
}
.value-card__chinese{
  font-size:28px;
  margin-bottom:4px;
  display:block;
  line-height:1;
}
.value-card__title{
  font-family:'Space Grotesk',sans-serif;
  font-size:18px;
  font-weight:600;
  color:var(--deep-canopy);
  margin-bottom:8px;
}
.value-card__desc{
  font-family:'Source Sans 3',sans-serif;
  font-size:16px;
  color:var(--muted-stone);
  line-height:1.6;
  font-style:italic;
}

/* ─── Facility Card Grid ─── */
.card-grid--3{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
  margin-top:32px;
}
.facility-card{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:12px;
  background:var(--pure-surface);
  border:1px solid var(--whisper-border);
  border-radius:16px;
  padding:28px 24px;
  text-decoration:none;
  color:inherit;
  transition:transform .25s ease, box-shadow .25s ease;
}
.facility-card:hover{
  transform:translateY(-4px);
  box-shadow:0 12px 32px rgba(46,74,30,.08);
}
.facility-card__icon{
  width:40px;
  height:40px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(46,74,30,.06);
  border-radius:10px;
  flex-shrink:0;
}
.facility-card__icon svg{
  width:22px;
  height:22px;
  stroke:var(--forest-fern);
  fill:none;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.facility-card__title{
  font-family:'Space Grotesk',sans-serif;
  font-size:17px;
  font-weight:600;
  color:var(--deep-canopy);
}
.facility-card__desc{
  font-family:'Source Sans 3',sans-serif;
  font-size:15px;
  color:var(--muted-stone);
  line-height:1.5;
}
.facility-card__link{
  font-family:'Space Grotesk',sans-serif;
  font-size:13px;
  font-weight:600;
  letter-spacing:1px;
  text-transform:uppercase;
  color:var(--forest-fern);
  display:inline-flex;
  align-items:center;
  gap:4px;
  margin-top:auto;
}
.facility-card__link svg{
  width:14px;
  height:14px;
  stroke:var(--forest-fern);
  fill:none;
  stroke-width:2;
}

/* ─── CTA Banner ─── */
.cta-banner{
  background:var(--deep-canopy);
  padding:clamp(48px,8vw,80px) 24px;
  text-align:center;
}
.cta-banner__inner{
  max-width:640px;
  margin:0 auto;
}
.cta-banner__title{
  font-family:'Fraunces',serif;
  font-size:clamp(28px,4vw,42px);
  font-weight:500;
  color:var(--morning-mist);
  line-height:1.2;
  margin-bottom:12px;
}
.cta-banner__subtitle{
  font-family:'Source Sans 3',sans-serif;
  font-size:18px;
  color:rgba(245,242,235,.6);
  line-height:1.6;
  margin-bottom:32px;
}
.cta-banner__btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family:'Space Grotesk',sans-serif;
  font-size:16px;
  font-weight:600;
  color:var(--deep-canopy);
  background:var(--lime-zest);
  border:none;
  border-radius:100px;
  padding:16px 36px;
  text-decoration:none;
  cursor:pointer;
  transition:transform .2s ease, box-shadow .2s ease;
  min-height:48px;
}
.cta-banner__btn:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(235,246,125,.25);
}

/* ─── Team Section wider prose ─── */
.team-text{
  max-width:720px;
}

/* ═══════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════ */

@media(max-width:992px){
  .story-block{
    grid-template-columns:1fr;
    gap:32px;
  }
  .story-block__image{
    order:1;
    aspect-ratio:16/9;
    max-height:360px;
  }
  .story-block__text{
    order:2;
  }
  .stats-bar{
    grid-template-columns:repeat(3,1fr);
    gap:32px 24px;
  }
  .card-grid--3{
    grid-template-columns:repeat(2,1fr);
  }
}

@media(max-width:768px){
  .stats-bar{
    grid-template-columns:repeat(2,1fr);
    gap:32px 16px;
  }
  .values-grid{
    grid-template-columns:1fr 1fr;
  }
  .card-grid--3{
    grid-template-columns:1fr 1fr;
  }
}

@media(max-width:478px){
  .stats-bar{
    grid-template-columns:repeat(2,1fr);
    gap:24px 12px;
  }
  .values-grid{
    grid-template-columns:1fr;
  }
  .card-grid--3{
    grid-template-columns:1fr;
  }
  .story-block__image{
    max-height:280px;
  }
}

/* Reduced motion */
@media(prefers-reduced-motion:reduce){
  .value-card,
  .facility-card,
  .cta-banner__btn{
    transition:none;
  }
  .value-card:hover,
  .facility-card:hover{
    transform:none;
  }
}

/* ─── PAGE: activities ─── */
/* ─── Activities Page — Local Overrides ─── */

/* Badge variant for mixed free+paid */
.card__badge--mixed{
  background:rgba(196,162,101,.15);
  color:var(--timber-bark);
}

/* Badge variant for seasonal */
.card__badge--seasonal{
  background:rgba(74,122,43,.12);
  color:var(--forest-fern);
}

/* Badge variant for small price */
.card__badge--price{
  background:rgba(196,162,101,.15);
  color:var(--timber-bark);
}

/* Card meta details */
.card__meta{
  font-size:15px;
  color:var(--muted-stone);
  line-height:1.6;
  margin-top:10px;
}
.card__meta li{
  list-style:none;
  padding:3px 0;
  display:flex;
  align-items:flex-start;
  gap:6px;
}
.card__meta li::before{
  content:'';
  display:inline-block;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--forest-fern);
  flex-shrink:0;
  margin-top:8px;
}

/* CTA buttons row */
.cta-banner__buttons{
  display:flex;
  gap:16px;
  justify-content:center;
  flex-wrap:wrap;
}

/* WhatsApp outline button in CTA */
.cta-banner__btn--wa{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:16px 40px;
  border-radius:100px;
  background:transparent;
  color:var(--morning-mist);
  font-family:'Space Grotesk',sans-serif;
  font-size:14px;
  font-weight:600;
  letter-spacing:1px;
  text-transform:uppercase;
  text-decoration:none;
  border:1px solid rgba(255,255,255,.25);
  cursor:pointer;
  transition:all .2s;
}
.cta-banner__btn--wa:hover{
  border-color:var(--morning-mist);
  background:rgba(255,255,255,.08);
}
.cta-banner__btn--wa svg{
  width:20px;
  height:20px;
  fill:currentColor;
}

/* ─── Masonry Card Layout ─── */
.masonry{
  columns:3;
  column-gap:24px;
}
.masonry .card{
  break-inside:avoid;
  margin-bottom:24px;
  display:inline-block;
  width:100%;
}
@media(max-width:1024px){
  .masonry{columns:2}
}
@media(max-width:768px){
  .masonry{columns:1}
}

/* Day trip callout styling */
.callout--highlight{
  border-left-color:var(--forest-fern);
  background:rgba(74,122,43,.06);
  margin-top:32px;
  display:flex;
  flex-direction:column;
  gap:16px;
}

/* Footer cols (not in shared CSS) */
.footer-cols{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:32px;
}

@media(max-width:768px){
  .footer-cols{grid-template-columns:1fr;gap:24px}
  .cta-banner__buttons{flex-direction:column;align-items:center}
  .cta-banner__btn--wa{padding:14px 32px}
}

/* Lightbox — inline for reliability */
.lightbox{display:none !important;position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.88);align-items:center;justify-content:center;padding:24px;cursor:zoom-out}
.lightbox.open{display:flex !important}
.lightbox img{max-width:92vw;max-height:90vh;width:auto;height:auto;object-fit:contain;border-radius:8px;box-shadow:0 8px 40px rgba(0,0,0,.5)}
.lightbox__close{position:absolute;top:20px;right:24px;width:44px;height:44px;border:none;background:rgba(255,255,255,.15);border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}
.lightbox__close:hover{background:rgba(255,255,255,.3)}
.lightbox__close svg{width:20px;height:20px;stroke:#fff;stroke-width:2;fill:none}

/* ─── PAGE: animals ─── */
/* ═══════════════════════════════════════════
   ANIMALS PAGE — LOCAL OVERRIDES
   ═══════════════════════════════════════════ */

/* Animal species cards */
.animal-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 20px;
  margin-top: 32px;
}

.animal-card {
  background: var(--pure-surface, #fff);
  border: 1px solid var(--whisper-border, #E5E7EB);
  border-radius: 16px;
  padding: 24px 20px;
  transition: transform .2s ease, box-shadow .2s ease;
}
.animal-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(0,0,0,.08);
}

.content-section--cream .animal-card {
  background: var(--pure-surface, #fff);
}
.content-section--white .animal-card {
  background: #FAFAF7;
}

.animal-card__name {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 18px;
  font-weight: 600;
  color: var(--deep-canopy, #2E4A1E);
  margin-bottom: 6px;
}

.animal-card__location {
  font-size: 15px;
  color: var(--muted-stone, #6B7280);
  line-height: 1.5;
}

.animal-card__badge {
  display: inline-block;
  margin-top: 10px;
  padding: 4px 12px;
  border-radius: 100px;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .5px;
  text-transform: uppercase;
}

.animal-card__badge--roaming {
  background: rgba(74, 122, 43, .12);
  color: var(--forest-fern, #4A7A2B);
}

.animal-card__badge--included {
  background: rgba(196, 162, 101, .12);
  color: var(--golden-earth, #C4A265);
}

/* Horse riding rules list */
.riding-rules {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 12px;
}
.riding-rules__tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  border-radius: 100px;
  background: rgba(74, 122, 43, .08);
  font-family: 'Space Grotesk', sans-serif;
  font-size: 13px;
  font-weight: 500;
  color: var(--deep-canopy, #2E4A1E);
}

/* Morning tour timeline */
.tour-flow {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-top: 24px;
}
.tour-flow__step {
  flex: 1;
  min-width: 180px;
  background: var(--pure-surface, #fff);
  border: 1px solid var(--whisper-border, #E5E7EB);
  border-radius: 16px;
  padding: 24px 20px;
  text-align: center;
}
.tour-flow__step-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--forest-fern, #4A7A2B);
  color: #fff;
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 700;
  font-size: 15px;
  margin-bottom: 12px;
}
.tour-flow__step-label {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 16px;
  font-weight: 600;
  color: var(--deep-canopy, #2E4A1E);
}
.tour-flow__step-desc {
  font-size: 14px;
  color: var(--muted-stone, #6B7280);
  margin-top: 4px;
  line-height: 1.5;
}

/* Mammal highlight card (horse) */
.mammal-highlight {
  background: var(--pure-surface, #fff);
  border: 1px solid var(--whisper-border, #E5E7EB);
  border-radius: 20px;
  padding: 0;
  margin-top: 32px;
  margin-bottom: 24px;
  overflow: hidden;
}

.mammal-highlight__name {
  font-family: 'Fraunces', serif;
  font-size: 24px;
  font-weight: 500;
  color: var(--deep-canopy, #2E4A1E);
  margin-bottom: 8px;
}
.mammal-highlight__desc {
  font-size: 16px;
  color: var(--charcoal-ink, #2D2D2D);
  line-height: 1.7;
  margin-bottom: 16px;
}

/* Masonry layout (matching activities.html) */
.masonry{
  columns:3;
  column-gap:24px;
}
.masonry .card{
  break-inside:avoid;
  margin-bottom:24px;
  display:inline-block;
  width:100%;
}
@media(max-width:1024px){
  .masonry{columns:2}
}
@media(max-width:768px){
  .masonry{columns:1}
}


@media (max-width: 600px) {
  .animal-grid {
    grid-template-columns: 1fr 1fr;
    gap: 12px;
  }
  .animal-card {
    padding: 16px 14px;
  }
  .animal-card__name {
    font-size: 16px;
  }
  .tour-flow {
    flex-direction: column;
  }
  .mammal-highlight {
    padding: 0;
  }
}
@media (max-width: 380px) {
  .animal-grid {
    grid-template-columns: 1fr;
  }
}

/* Lightbox — inline for reliability */
.lightbox{display:none !important;position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.88);align-items:center;justify-content:center;padding:24px;cursor:zoom-out}
.lightbox.open{display:flex !important}
.lightbox img{max-width:92vw;max-height:90vh;width:auto;height:auto;object-fit:contain;border-radius:8px;box-shadow:0 8px 40px rgba(0,0,0,.5)}
.lightbox__close{position:absolute;top:20px;right:24px;width:44px;height:44px;border:none;background:rgba(255,255,255,.15);border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}
.lightbox__close:hover{background:rgba(255,255,255,.3)}
.lightbox__close svg{width:20px;height:20px;stroke:#fff;stroke-width:2;fill:none}

/* ─── PAGE: art-gallery ─── */
/* ═══════════════════════════════════════════
   ART & GALLERY — PAGE-SPECIFIC STYLES
   ═══════════════════════════════════════════ */

/* ─── Trail Feature Block ─── */
.trail-feature{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:48px;
  align-items:center;
}
.trail-feature__text{max-width:520px}
.trail-feature__visual{
  position:relative;
  border-radius:20px;
  overflow:hidden;
  aspect-ratio:4/3;
}
.trail-feature__visual img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.trail-feature__badge{
  position:absolute;
  top:20px;
  left:20px;
  background:var(--lime-zest);
  color:var(--deep-canopy);
  font-family:'Space Grotesk',sans-serif;
  font-size:13px;
  font-weight:700;
  padding:8px 16px;
  border-radius:100px;
  letter-spacing:.5px;
}
.trail-detail{
  display:flex;
  align-items:flex-start;
  gap:14px;
  margin-bottom:20px;
}
.trail-detail__icon{
  flex-shrink:0;
  width:40px;
  height:40px;
  border-radius:12px;
  background:rgba(74,122,43,.1);
  display:flex;
  align-items:center;
  justify-content:center;
}
.trail-detail__icon svg{width:20px;height:20px}
.trail-detail__text h4{
  font-size:16px;
  font-weight:600;
  color:var(--charcoal-ink);
  margin-bottom:2px;
}
.trail-detail__text p{
  font-size:16px;
  color:var(--muted-stone);
  line-height:1.5;
}
.trail-surprise{
  margin-top:28px;
  padding:20px 24px;
  background:rgba(74,122,43,.06);
  border-left:3px solid var(--forest-fern);
  border-radius:0 12px 12px 0;
  font-size:17px;
  color:var(--charcoal-ink);
  line-height:1.6;
  font-style:italic;
}

/* ─── AG Building Floor Grid ─── */
.floor-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:20px;
  margin-top:32px;
}
.floor-card{
  background:var(--pure-surface);
  border:1px solid var(--whisper-border);
  border-radius:16px;
  padding:28px;
  transition:transform .2s, box-shadow .2s;
}
.floor-card:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(0,0,0,.08);
}
.floor-card__level{
  font-family:'Space Grotesk',sans-serif;
  font-size:11px;
  font-weight:600;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--golden-earth);
  margin-bottom:8px;
}
.floor-card__title{
  font-family:'Space Grotesk',sans-serif;
  font-size:18px;
  font-weight:600;
  color:var(--charcoal-ink);
  margin-bottom:8px;
}
.floor-card__desc{
  font-size:16px;
  color:var(--muted-stone);
  line-height:1.6;
}
.floor-card picture{display:block;border-radius:12px;overflow:hidden;margin-bottom:16px}
.floor-card picture img{width:100%;height:220px;object-fit:cover;display:block}

/* ─── Collection Card Grid ─── */
.collection-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
  margin-top:32px;
}
.collection-card{
  background:var(--pure-surface);
  border:1px solid var(--whisper-border);
  border-radius:16px;
  padding:32px 24px;
  text-align:center;
  transition:transform .2s, box-shadow .2s;
}
.collection-card:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(0,0,0,.08);
}
.collection-card__icon{
  width:56px;
  height:56px;
  border-radius:16px;
  background:rgba(74,122,43,.08);
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0 auto 16px;
}
.collection-card__icon svg{width:28px;height:28px}
.collection-card__title{
  font-family:'Space Grotesk',sans-serif;
  font-size:17px;
  font-weight:600;
  color:var(--charcoal-ink);
  margin-bottom:6px;
}
.collection-card__subtitle{
  font-size:13px;
  color:var(--muted-stone);
  margin-bottom:8px;
}
.collection-card__desc{
  font-size:15px;
  color:var(--muted-stone);
  line-height:1.5;
}

/* ─── Demo Feature Block ─── */
.demo-feature{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:48px;
  align-items:center;
}
.demo-feature__visual{
  border-radius:20px;
  overflow:hidden;
  aspect-ratio:4/3;
  position:relative;
}
.demo-feature__visual img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.demo-detail{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:16px;
  padding:14px 18px;
  background:rgba(74,122,43,.06);
  border-radius:12px;
}
.demo-detail svg{flex-shrink:0;width:20px;height:20px}
.demo-detail span{
  font-size:16px;
  color:var(--charcoal-ink);
  font-weight:500;
}
.demo-detail__free{
  font-family:'Space Grotesk',sans-serif;
  font-size:11px;
  font-weight:700;
  letter-spacing:1px;
  text-transform:uppercase;
  color:var(--deep-canopy);
  background:var(--lime-zest);
  padding:4px 10px;
  border-radius:100px;
  margin-left:auto;
}

/* ─── Story Section ─── */
.story-block{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:48px;
  align-items:center;
}
.story-block__visual{
  border-radius:20px;
  overflow:hidden;
  aspect-ratio:4/3;
}
.story-block__visual img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.story-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:20px;
  font-family:'Space Grotesk',sans-serif;
  font-size:14px;
  font-weight:600;
  color:var(--forest-fern);
  text-decoration:none;
  letter-spacing:.5px;
  transition:color .2s;
}
.story-link:hover{color:var(--deep-canopy)}
.story-link svg{width:18px;height:18px;transition:transform .2s}
.story-link:hover svg{transform:translateX(4px)}

/* ─── CTA Banner ─── */
.cta-banner{
  background:var(--deep-canopy);
  padding:clamp(3rem,8vw,5rem) 80px;
  text-align:center;
}
.cta-banner__inner{
  max-width:700px;
  margin:0 auto;
}
.cta-banner__title{
  font-family:'Fraunces',serif;
  font-size:clamp(28px,4vw,42px);
  font-weight:500;
  color:var(--morning-mist);
  margin-bottom:12px;
  line-height:1.2;
}
.cta-banner__text{
  font-size:18px;
  color:rgba(245,242,235,.6);
  margin-bottom:28px;
  line-height:1.6;
}
.cta-banner__btn{
  display:inline-block;
  background:var(--lime-zest);
  color:var(--deep-canopy);
  padding:16px 40px;
  border-radius:100px;
  font-family:'Space Grotesk',sans-serif;
  font-size:15px;
  font-weight:600;
  text-decoration:none;
  letter-spacing:.5px;
  transition:all .2s;
}
.cta-banner__btn:hover{
  background:var(--pure-surface);
  transform:translateY(-2px);
  box-shadow:0 4px 20px rgba(0,0,0,.2);
}

/* ─── Responsive ─── */
@media(max-width:1024px){
  .trail-feature,
  .demo-feature,
  .story-block{gap:32px}
  .collection-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:768px){
  .trail-feature,
  .demo-feature,
  .story-block{
    grid-template-columns:1fr;
    gap:28px;
  }
  .floor-grid{grid-template-columns:1fr}
  .collection-grid{grid-template-columns:1fr}
  .cta-banner{padding:48px 24px}
}

/* ─── PAGE: events ─── */
/* ═══════════════════════════════════════════
   EVENTS PAGE — Page-specific styles
   ═══════════════════════════════════════════ */

/* ─── Section Label (overline text) ─── */
.section-label{
  font-family:'Space Grotesk',sans-serif;
  font-size:11px;
  font-weight:600;
  letter-spacing:3px;
  text-transform:uppercase;
  color:var(--golden-earth);
  margin-bottom:12px;
  display:block;
}

/* ─── Section Heading (Fraunces) ─── */
.section-heading{
  font-family:'Fraunces',serif;
  font-size:clamp(28px,4vw,42px);
  font-weight:500;
  color:var(--deep-canopy);
  line-height:1.2;
  margin-bottom:24px;
}
.section-heading--light{
  color:var(--morning-mist);
}

/* ─── Body Prose ─── */
.prose{
  font-family:'Source Sans 3',sans-serif;
  font-size:18px;
  color:var(--charcoal-ink);
  line-height:1.8;
}

/* ═══════════════════════════════════════════
   SECTION 1 — EVENT TYPES (4-card grid)
   ═══════════════════════════════════════════ */
.event-types__grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:24px;
  margin-top:40px;
}
.event-card{
  background:var(--pure-surface);
  border:1px solid var(--whisper-border);
  border-radius:16px;
  padding:32px 24px;
  transition:transform .25s ease, box-shadow .25s ease;
}
.event-card:hover{
  transform:translateY(-4px);
  box-shadow:0 12px 40px rgba(46,74,30,.1);
}
.event-card__icon{
  width:56px;
  height:56px;
  border-radius:14px;
  background:rgba(74,122,43,.08);
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:20px;
}
.event-card__icon svg{
  width:28px;
  height:28px;
  stroke:var(--forest-fern);
  fill:none;
  stroke-width:1.5;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.event-card__title{
  font-family:'Space Grotesk',sans-serif;
  font-size:20px;
  font-weight:600;
  color:var(--deep-canopy);
  margin-bottom:10px;
}
.event-card__desc{
  font-family:'Source Sans 3',sans-serif;
  font-size:16px;
  color:var(--muted-stone);
  line-height:1.6;
}

/* ═══════════════════════════════════════════
   SECTION 2 — VENUES TABLE
   ═══════════════════════════════════════════ */
.venues-table-wrap{
  margin-top:40px;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  border-radius:16px;
  border:1px solid var(--whisper-border);
}
.venues-table{
  width:100%;
  border-collapse:collapse;
  font-family:'Source Sans 3',sans-serif;
  font-size:16px;
  min-width:700px;
}
.venues-table thead{
  background:var(--deep-canopy);
}
.venues-table th{
  font-family:'Space Grotesk',sans-serif;
  font-size:12px;
  font-weight:600;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--golden-earth);
  padding:16px 20px;
  text-align:left;
  white-space:nowrap;
}
.venues-table td{
  padding:18px 20px;
  color:var(--charcoal-ink);
  border-bottom:1px solid var(--whisper-border);
  vertical-align:top;
  line-height:1.5;
}
.venues-table tbody tr:last-child td{
  border-bottom:none;
}
.venues-table tbody tr:nth-child(even){
  background:rgba(245,242,235,.5);
}
.venues-table tbody tr:hover{
  background:rgba(74,122,43,.04);
}
.venues-table .venue-name{
  font-family:'Space Grotesk',sans-serif;
  font-weight:600;
  color:var(--deep-canopy);
  white-space:nowrap;
}
.venues-note{
  margin-top:20px;
  padding:16px 20px;
  background:rgba(196,162,101,.08);
  border-left:3px solid var(--golden-earth);
  border-radius:0 8px 8px 0;
  font-size:15px;
  color:var(--muted-stone);
  line-height:1.6;
}
.price-tag{
  font-family:'Space Grotesk',sans-serif;
  font-weight:600;
  color:var(--deep-canopy);
  white-space:nowrap;
}

/* ═══════════════════════════════════════════
   SECTION 3 — WHY US (selling points)
   ═══════════════════════════════════════════ */
.why-us__grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:24px;
  margin-top:40px;
}
.why-us__item{
  display:flex;
  gap:16px;
  align-items:flex-start;
}
.why-us__icon{
  flex-shrink:0;
  width:44px;
  height:44px;
  border-radius:12px;
  background:rgba(235,246,125,.12);
  display:flex;
  align-items:center;
  justify-content:center;
}
.why-us__icon svg{
  width:22px;
  height:22px;
  stroke:var(--lime-zest);
  fill:none;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.why-us__text h3{
  font-family:'Space Grotesk',sans-serif;
  font-size:16px;
  font-weight:600;
  color:var(--morning-mist);
  margin-bottom:4px;
}
.why-us__text p{
  font-family:'Source Sans 3',sans-serif;
  font-size:15px;
  color:rgba(245,242,235,.55);
  line-height:1.5;
}

/* ═══════════════════════════════════════════
   SECTION 4 — INQUIRY FORM
   ═══════════════════════════════════════════ */
.inquiry-layout{
  display:grid;
  grid-template-columns:1.1fr 0.9fr;
  gap:clamp(40px,5vw,80px);
  align-items:start;
  margin-top:40px;
}
.inquiry-form{
  display:flex;
  flex-direction:column;
  gap:20px;
}
.form-group{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.form-group label{
  font-family:'Space Grotesk',sans-serif;
  font-size:13px;
  font-weight:600;
  letter-spacing:1px;
  text-transform:uppercase;
  color:var(--muted-stone);
}
.form-group input,
.form-group select,
.form-group textarea{
  font-family:'Source Sans 3',sans-serif;
  font-size:16px;
  padding:14px 16px;
  border:1px solid var(--whisper-border);
  border-radius:10px;
  background:var(--pure-surface);
  color:var(--charcoal-ink);
  transition:border-color .2s, box-shadow .2s;
  outline:none;
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus{
  border-color:var(--forest-fern);
  box-shadow:0 0 0 3px rgba(74,122,43,.12);
}
.form-group textarea{
  resize:vertical;
  min-height:120px;
}
.form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}
.btn-submit{
  font-family:'Space Grotesk',sans-serif;
  font-size:15px;
  font-weight:600;
  letter-spacing:.5px;
  padding:16px 32px;
  border:none;
  border-radius:100px;
  background:var(--lime-zest);
  color:var(--deep-canopy);
  cursor:pointer;
  transition:all .2s;
  align-self:flex-start;
}
.btn-submit:hover{
  background:var(--forest-fern);
  color:var(--pure-surface);
  transform:translateY(-1px);
}
.inquiry-aside{
  padding:32px;
  background:rgba(74,122,43,.04);
  border:1px solid var(--whisper-border);
  border-radius:16px;
}
.inquiry-aside h3{
  font-family:'Space Grotesk',sans-serif;
  font-size:18px;
  font-weight:600;
  color:var(--deep-canopy);
  margin-bottom:16px;
}
.inquiry-aside p{
  font-family:'Source Sans 3',sans-serif;
  font-size:16px;
  color:var(--muted-stone);
  line-height:1.7;
  margin-bottom:20px;
}
.btn-whatsapp{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:14px 28px;
  border-radius:100px;
  background:#25D366;
  color:#fff;
  font-family:'Space Grotesk',sans-serif;
  font-size:15px;
  font-weight:600;
  letter-spacing:.5px;
  text-decoration:none;
  transition:all .2s;
}
.btn-whatsapp:hover{
  background:#1da851;
  transform:translateY(-1px);
}
.btn-whatsapp svg{
  width:20px;
  height:20px;
  fill:#fff;
}

/* ═══════════════════════════════════════════
   SECTION 5 — CTA BANNER
   ═══════════════════════════════════════════ */
.cta-banner{
  text-align:center;
  padding:clamp(3rem,8vw,5rem) 80px;
  background:var(--deep-canopy);
}
.cta-banner__inner{
  max-width:700px;
  margin:0 auto;
}
.cta-banner__title{
  font-family:'Fraunces',serif;
  font-size:clamp(28px,4vw,40px);
  font-weight:500;
  color:var(--morning-mist);
  margin-bottom:12px;
}
.cta-banner__sub{
  font-family:'Source Sans 3',sans-serif;
  font-size:18px;
  color:rgba(245,242,235,.55);
  margin-bottom:32px;
  line-height:1.6;
}
.cta-banner .btn-whatsapp{
  font-size:16px;
  padding:16px 36px;
}

/* ═══════════════════════════════════════════
   RESPONSIVE — Tablet
   ═══════════════════════════════════════════ */
@media(max-width:1024px){
  .event-types__grid{
    grid-template-columns:repeat(2, 1fr);
  }
  .why-us__grid{
    grid-template-columns:repeat(2, 1fr);
  }
  .inquiry-layout{
    grid-template-columns:1fr;
  }
}

/* ═══════════════════════════════════════════
   RESPONSIVE — Mobile
   ═══════════════════════════════════════════ */
@media(max-width:640px){
  .event-types__grid{
    grid-template-columns:1fr;
  }
  .why-us__grid{
    grid-template-columns:1fr;
  }
  .form-row{
    grid-template-columns:1fr;
  }
  .content-section{
    padding-left:20px;
    padding-right:20px;
  }
  .cta-banner{
    padding-left:20px;
    padding-right:20px;
  }
}

/* ─── PAGE: nearby ─── */
/* ═══════════════════════════════════════════
   NEARBY PAGE — Page-specific styles
   ═══════════════════════════════════════════ */

/* ─── Distance Table ─── */
.distance-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  border-radius:16px;
  overflow:hidden;
  border:1px solid var(--whisper-border);
  margin-top:24px;
}
.distance-table thead{
  background:var(--deep-canopy);
}
.distance-table th{
  font-family:'Space Grotesk',sans-serif;
  font-size:12px;
  font-weight:600;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--morning-mist);
  padding:16px 24px;
  text-align:left;
}
.distance-table td{
  padding:16px 24px;
  font-size:18px;
  color:var(--charcoal-ink);
  border-bottom:1px solid var(--whisper-border);
}
.distance-table tbody tr:last-child td{
  border-bottom:none;
}
.distance-table tbody tr:nth-child(even){
  background:rgba(245,242,235,.5);
}
.distance-table tbody tr:hover{
  background:rgba(74,122,43,.06);
}
.distance-table .from-label{
  font-weight:600;
  color:var(--charcoal-ink);
}

/* ─── Transport note ─── */
.transport-note{
  margin-top:28px;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.transport-note__item{
  display:flex;
  align-items:flex-start;
  gap:12px;
  font-size:18px;
  color:var(--muted-stone);
  line-height:1.6;
}
.transport-note__icon{
  flex-shrink:0;
  width:28px;
  height:28px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:8px;
  background:rgba(74,122,43,.1);
  color:var(--forest-fern);
  font-size:14px;
  margin-top:2px;
}
.transport-note__item strong{
  color:var(--charcoal-ink);
}

/* ─── Road Warning callout (extends .callout--warning) ─── */
.road-warning__list{
  list-style:none;
  margin-top:16px;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.road-warning__list li{
  display:flex;
  align-items:flex-start;
  gap:10px;
  font-size:18px;
  color:var(--muted-stone);
  line-height:1.6;
}
.road-warning__list li::before{
  content:'';
  flex-shrink:0;
  width:8px;
  height:8px;
  margin-top:9px;
  border-radius:50%;
  background:#D97706;
}
.road-warning__quote{
  margin-top:16px;
  font-size:18px;
  font-style:italic;
  color:var(--timber-bark);
  line-height:1.6;
}

/* ─── Map Embed ─── */
.map-embed{
  width:100%;
  border-radius:16px;
  overflow:hidden;
  border:1px solid var(--whisper-border);
  margin-top:8px;
}
.map-embed iframe{
  width:100%;
  height:450px;
  border:0;
  display:block;
}

/* ─── Simple List (cultural / shopping) ─── */
.simple-list{
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:16px;
  margin-top:24px;
}
.simple-list__item{
  display:flex;
  align-items:flex-start;
  gap:16px;
  padding:20px 24px;
  border-radius:16px;
  background:var(--pure-surface);
  border:1px solid var(--whisper-border);
  transition:transform .2s, box-shadow .2s;
}
.simple-list__item:hover{
  transform:translateY(-1px);
  box-shadow:0 4px 16px rgba(0,0,0,.06);
}
.simple-list__icon{
  flex-shrink:0;
  width:48px;
  height:48px;
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:24px;
}
.simple-list__icon--culture{
  background:rgba(196,162,101,.12);
}
.simple-list__icon--shop{
  background:rgba(74,122,43,.1);
}
.simple-list__content{flex:1}
.simple-list__name{
  font-family:'Space Grotesk',sans-serif;
  font-size:18px;
  font-weight:600;
  color:var(--charcoal-ink);
  margin-bottom:4px;
}
.simple-list__distance{
  font-family:'Space Grotesk',sans-serif;
  font-size:12px;
  font-weight:600;
  letter-spacing:1px;
  text-transform:uppercase;
  color:var(--forest-fern);
  margin-bottom:6px;
}
.simple-list__desc{
  font-size:16px;
  color:var(--muted-stone);
  line-height:1.6;
}

/* ─── Restaurant Cards ─── */
.restaurant-card{
  padding:24px;
  border-radius:16px;
  background:var(--pure-surface);
  border:1px solid var(--whisper-border);
  transition:transform .2s, box-shadow .2s;
}
.restaurant-card:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(0,0,0,.08);
}
.restaurant-card__name{
  font-family:'Space Grotesk',sans-serif;
  font-size:18px;
  font-weight:600;
  color:var(--charcoal-ink);
  margin-bottom:4px;
}
.restaurant-card__meta{
  font-family:'Space Grotesk',sans-serif;
  font-size:12px;
  font-weight:600;
  letter-spacing:1px;
  text-transform:uppercase;
  color:var(--forest-fern);
  margin-bottom:8px;
}
.restaurant-card__desc{
  font-size:16px;
  color:var(--muted-stone);
  line-height:1.6;
}
.restaurant-card__pick{
  display:inline-block;
  margin-top:10px;
  padding:4px 12px;
  border-radius:100px;
  background:var(--lime-zest);
  color:var(--deep-canopy);
  font-family:'Space Grotesk',sans-serif;
  font-size:11px;
  font-weight:600;
  letter-spacing:1px;
  text-transform:uppercase;
}
.restaurant-note{
  margin-top:24px;
  font-size:16px;
  color:var(--muted-stone);
  line-height:1.7;
  font-style:italic;
  padding:16px 20px;
  border-left:3px solid var(--golden-earth);
  background:rgba(196,162,101,.06);
  border-radius:0 12px 12px 0;
}

/* ─── Supplies List ─── */
.supplies-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:16px;
  margin-top:24px;
}
.supply-item{
  display:flex;
  align-items:center;
  gap:12px;
  padding:16px 20px;
  border-radius:12px;
  background:var(--pure-surface);
  border:1px solid var(--whisper-border);
  font-size:18px;
  color:var(--charcoal-ink);
}
.supply-item__icon{
  flex-shrink:0;
  width:40px;
  height:40px;
  border-radius:10px;
  background:rgba(74,122,43,.1);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:18px;
}
.supply-item__text{
  line-height:1.4;
}
.supply-item__name{
  font-weight:600;
  display:block;
}
.supply-item__detail{
  font-size:14px;
  color:var(--muted-stone);
}

/* ─── Responsive ─── */
@media(max-width:768px){
  .distance-table th,
  .distance-table td{
    padding:12px 16px;
    font-size:16px;
  }
  .map-embed iframe{
    height:300px;
  }
  .supplies-grid{
    grid-template-columns:1fr;
  }
  .simple-list__item{
    flex-direction:column;
    gap:12px;
  }
}

/* ─── PAGE: terms ─── */
/* ─── Terms page-specific overrides ─── */
.terms-updated{
  font-family:'Space Grotesk',sans-serif;
  font-size:13px;
  letter-spacing:1px;
  text-transform:uppercase;
  color:rgba(245,242,235,.3);
  margin-top:16px;
}
.terms-intro{
  font-family:'Source Sans 3',sans-serif;
  font-size:18px;
  color:var(--charcoal-ink);
  line-height:1.8;
  max-width:800px;
}
.terms-h2{
  font-family:'Space Grotesk',sans-serif;
  font-size:clamp(22px,3vw,32px);
  font-weight:700;
  color:var(--charcoal-ink);
  margin-bottom:8px;
  line-height:1.25;
  scroll-margin-top:100px;
}
.terms-h3{
  font-family:'Space Grotesk',sans-serif;
  font-size:clamp(16px,2vw,20px);
  font-weight:600;
  color:var(--charcoal-ink);
  margin-top:28px;
  margin-bottom:12px;
}
.terms-body{
  font-family:'Source Sans 3',sans-serif;
  font-size:18px;
  color:var(--charcoal-ink);
  line-height:1.8;
  max-width:800px;
}
.terms-body p{margin-bottom:16px}
.terms-body ul{
  list-style:none;
  padding:0;
  margin:0 0 20px;
}
.terms-body li{
  position:relative;
  padding:10px 0 10px 28px;
  border-bottom:1px solid var(--whisper-border);
  font-size:18px;
  line-height:1.7;
}
.terms-body li:last-child{border-bottom:none}
.terms-body li::before{
  content:'';
  position:absolute;
  left:0;
  top:18px;
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--forest-fern);
  opacity:.5;
}
.terms-body strong{font-weight:600;color:var(--charcoal-ink)}

/* Cancellation table */
.cancel-table{
  width:100%;
  border-collapse:collapse;
  margin:16px 0 28px;
  font-family:'Source Sans 3',sans-serif;
  font-size:16px;
}
.cancel-table th{
  font-family:'Space Grotesk',sans-serif;
  font-size:12px;
  font-weight:600;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--muted-stone);
  text-align:left;
  padding:12px 16px;
  border-bottom:2px solid var(--whisper-border);
}
.cancel-table td{
  padding:14px 16px;
  border-bottom:1px solid var(--whisper-border);
  color:var(--charcoal-ink);
  line-height:1.5;
}
.cancel-table tr:last-child td{border-bottom:none}
.cancel-table .refund-good{color:var(--forest-fern);font-weight:600}
.cancel-table .refund-partial{color:var(--golden-earth);font-weight:600}
.cancel-table .refund-none{color:#B45309;font-weight:600}

/* Questions callout */
.terms-callout{
  background:rgba(74,122,43,.08);
  border-left:4px solid var(--forest-fern);
  border-radius:0 12px 12px 0;
  padding:28px 32px;
  margin-top:12px;
}
.terms-callout p{
  font-family:'Source Sans 3',sans-serif;
  font-size:18px;
  color:var(--charcoal-ink);
  line-height:1.7;
  margin:0;
}
.terms-callout a{
  color:var(--forest-fern);
  font-weight:600;
  text-decoration:underline;
  text-underline-offset:2px;
}
.terms-callout a:hover{color:var(--deep-canopy)}

/* Visitors note */
.terms-note{
  font-size:15px;
  color:var(--muted-stone);
  font-style:italic;
  margin-top:4px;
}

@media(max-width:768px){
  .cancel-table{font-size:14px}
  .cancel-table th{font-size:11px;padding:10px 10px}
  .cancel-table td{padding:12px 10px}
  .terms-callout{padding:20px 20px}
}


/* ═══════════════════════════════════════════════════
   BLOG — Archive Grid + Cards
   ═══════════════════════════════════════════════════ */
.blog-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:32px;
}
.blog-card{
  background:var(--pure-surface);
  border-radius:16px;
  overflow:hidden;
  border:1px solid var(--whisper-border);
  transition:transform .25s ease,box-shadow .25s ease;
}
.blog-card:hover{
  transform:translateY(-4px);
  box-shadow:0 12px 32px rgba(0,0,0,.08);
}
.blog-card__img{
  width:100%;
  height:220px;
  object-fit:cover;
  display:block;
}
.blog-card__body{
  padding:24px;
}
.blog-card__meta{
  display:flex;
  align-items:center;
  gap:12px;
  font-size:13px;
  color:var(--muted-stone);
  font-family:'Space Grotesk',sans-serif;
  margin-bottom:12px;
}
.blog-card__cat{
  background:var(--forest-fern);
  color:#fff;
  padding:2px 10px;
  border-radius:100px;
  font-size:11px;
  font-weight:600;
  letter-spacing:.5px;
  text-transform:uppercase;
}
.blog-card__title{
  font-family:'Space Grotesk',sans-serif;
  font-size:20px;
  font-weight:700;
  line-height:1.3;
  color:var(--charcoal-ink);
  margin-bottom:10px;
}
.blog-card__title a{
  color:inherit;
  text-decoration:none;
}
.blog-card__title a:hover{
  color:var(--forest-fern);
}
.blog-card__excerpt{
  font-size:15px;
  line-height:1.6;
  color:var(--muted-stone);
  margin-bottom:16px;
}
.blog-card__read{
  font-family:'Space Grotesk',sans-serif;
  font-size:14px;
  font-weight:600;
  color:var(--forest-fern);
  text-decoration:none;
  letter-spacing:.3px;
}
.blog-card__read:hover{
  color:var(--deep-canopy);
}

/* Blog pagination */
.blog-pagination{
  margin-top:48px;
  text-align:center;
}
.blog-pagination .nav-links{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:8px;
}
.blog-pagination .page-numbers{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:40px;
  height:40px;
  padding:0 12px;
  border-radius:10px;
  font-family:'Space Grotesk',sans-serif;
  font-size:14px;
  font-weight:600;
  color:var(--charcoal-ink);
  text-decoration:none;
  border:1px solid var(--whisper-border);
  transition:all .2s ease;
}
.blog-pagination .page-numbers:hover{
  background:var(--morning-mist);
  border-color:var(--forest-fern);
}
.blog-pagination .page-numbers.current{
  background:var(--forest-fern);
  color:#fff;
  border-color:var(--forest-fern);
}

/* ═══════════════════════════════════════════════════
   BLOG — Single Post
   ═══════════════════════════════════════════════════ */
.blog-post{
  max-width:760px;
  margin:0 auto;
}
.blog-post__hero{
  margin:0 0 40px;
  border-radius:16px;
  overflow:hidden;
}
.blog-post__hero-img{
  width:100%;
  height:auto;
  display:block;
}
.blog-post__content{
  font-size:17px;
  line-height:1.8;
  color:var(--charcoal-ink);
}
.blog-post__content h2{
  font-family:'Space Grotesk',sans-serif;
  font-size:26px;
  font-weight:700;
  color:var(--charcoal-ink);
  margin:48px 0 16px;
}
.blog-post__content h3{
  font-family:'Space Grotesk',sans-serif;
  font-size:21px;
  font-weight:700;
  color:var(--charcoal-ink);
  margin:36px 0 12px;
}
.blog-post__content p{
  margin-bottom:20px;
}
.blog-post__content a{
  color:var(--forest-fern);
  text-decoration:underline;
  text-underline-offset:3px;
}
.blog-post__content a:hover{
  color:var(--deep-canopy);
}
.blog-post__content img{
  max-width:100%;
  height:auto;
  border-radius:12px;
  margin:24px 0;
}
.blog-post__content blockquote{
  border-left:4px solid var(--forest-fern);
  margin:32px 0;
  padding:16px 24px;
  background:var(--morning-mist);
  border-radius:0 12px 12px 0;
  font-style:italic;
  color:var(--muted-stone);
}
.blog-post__content ul,
.blog-post__content ol{
  padding-left:24px;
  margin-bottom:20px;
}
.blog-post__content li{
  margin-bottom:8px;
}

/* Post tags */
.blog-post__tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:48px;
  padding-top:32px;
  border-top:1px solid var(--whisper-border);
}
.blog-post__tag{
  font-family:'Space Grotesk',sans-serif;
  font-size:12px;
  font-weight:600;
  letter-spacing:.5px;
  text-transform:uppercase;
  padding:6px 14px;
  border-radius:100px;
  background:var(--morning-mist);
  color:var(--muted-stone);
}

/* Post navigation (prev/next) */
.blog-post-nav{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
  margin-top:48px;
  padding-top:40px;
  border-top:1px solid var(--whisper-border);
  max-width:760px;
  margin-left:auto;
  margin-right:auto;
}
.blog-post-nav__link{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:20px;
  border-radius:12px;
  text-decoration:none;
  border:1px solid var(--whisper-border);
  transition:all .2s ease;
}
.blog-post-nav__link:hover{
  background:var(--morning-mist);
  border-color:var(--forest-fern);
}
.blog-post-nav__link--next{
  text-align:right;
  grid-column:2;
}
.blog-post-nav__label{
  font-family:'Space Grotesk',sans-serif;
  font-size:12px;
  font-weight:600;
  letter-spacing:.5px;
  text-transform:uppercase;
  color:var(--muted-stone);
}
.blog-post-nav__title{
  font-family:'Space Grotesk',sans-serif;
  font-size:16px;
  font-weight:700;
  color:var(--charcoal-ink);
  line-height:1.3;
}

/* ═══════════════════════════════════════════════════
   BLOG — Responsive
   ═══════════════════════════════════════════════════ */
@media(max-width:1024px){
  .blog-grid{grid-template-columns:repeat(2,1fr);gap:24px}
}
@media(max-width:640px){
  .blog-grid{grid-template-columns:1fr;gap:20px}
  .blog-card__img{height:180px}
  .blog-card__body{padding:20px}
  .blog-card__title{font-size:18px}
  .blog-post__content{font-size:16px}
  .blog-post__content h2{font-size:22px}
  .blog-post__content h3{font-size:19px}
  .blog-post-nav{grid-template-columns:1fr;gap:16px}
  .blog-post-nav__link--next{grid-column:1;text-align:left}
}


/* ═══════════════════════════════════════════════════
   GALLERY PAGE — Filter + Grid + Lightbox
   ═══════════════════════════════════════════════════ */

/* Filter bar */
.gallery-filter{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:center;
  padding:24px 40px;
  background:var(--pure-surface);
}
.gallery-filter__btn{
  font-family:'Space Grotesk',sans-serif;
  font-size:13px;
  font-weight:600;
  letter-spacing:.5px;
  padding:8px 20px;
  border-radius:100px;
  border:1px solid var(--whisper-border);
  background:transparent;
  color:var(--muted-stone);
  cursor:pointer;
  transition:all .2s ease;
}
.gallery-filter__btn:hover{
  border-color:var(--forest-fern);
  color:var(--forest-fern);
}
.gallery-filter__btn.active{
  background:var(--forest-fern);
  color:#fff;
  border-color:var(--forest-fern);
}

/* Gallery page masonry grid (overrides homepage 2-col grid) */
body:not(.home) .gallery-grid{
  display:block;
  columns:4;
  column-gap:12px;
  padding:0 40px 60px;
  background:var(--pure-surface);
}
body:not(.home) .gallery-item{
  break-inside:avoid;
  border-radius:12px;
  overflow:hidden;
  margin-bottom:12px;
  height:auto;
  position:relative;
  cursor:pointer;
}
body:not(.home) .gallery-item.hidden{
  display:none;
}
.gallery-item__link{
  display:block;
  width:100%;
}
.gallery-item__img,
body:not(.home) .gallery-item img{
  width:100%;
  height:auto;
  display:block;
  transition:transform .4s ease;
}
body:not(.home) .gallery-item:hover img{
  transform:scale(1.06);
}

/* Lightbox */
.lightbox{
  position:fixed;
  inset:0;
  z-index:9999;
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:0;
  pointer-events:none;
  transition:opacity .3s ease;
}
.lightbox.open{
  display:flex !important;
  opacity:1;
  pointer-events:auto;
}
.lightbox__overlay{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.92);
}
.lightbox__close{
  position:absolute;
  top:20px;
  right:24px;
  z-index:10;
  background:none;
  border:none;
  color:#fff;
  font-size:40px;
  cursor:pointer;
  line-height:1;
  opacity:.7;
  transition:opacity .2s;
}
.lightbox__close:hover{opacity:1}
.lightbox__prev,
.lightbox__next{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:10;
  background:rgba(255,255,255,.1);
  border:none;
  color:#fff;
  font-size:48px;
  width:56px;
  height:56px;
  border-radius:50%;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:.6;
  transition:opacity .2s,background .2s;
}
.lightbox__prev:hover,
.lightbox__next:hover{
  opacity:1;
  background:rgba(255,255,255,.2);
}
.lightbox__prev{left:20px}
.lightbox__next{right:20px}
.lightbox__content{
  position:relative;
  z-index:5;
  max-width:90vw;
  max-height:85vh;
  text-align:center;
}
.lightbox__img{
  max-width:90vw;
  max-height:80vh;
  object-fit:contain;
  border-radius:8px;
  transition:opacity .3s ease;
}
.lightbox__caption{
  color:rgba(255,255,255,.7);
  font-family:'Space Grotesk',sans-serif;
  font-size:14px;
  margin-top:12px;
}
.lightbox__counter{
  color:rgba(255,255,255,.4);
  font-family:'Space Grotesk',sans-serif;
  font-size:12px;
  margin-top:4px;
}

/* Gallery page responsive */
@media(max-width:1024px){
  body:not(.home) .gallery-grid{columns:3;padding:0 24px 48px}
}
@media(max-width:768px){
  body:not(.home) .gallery-grid{columns:2;column-gap:8px;padding:0 16px 40px}
  body:not(.home) .gallery-item{margin-bottom:8px}
  .gallery-filter{padding:16px;gap:6px}
  .gallery-filter__btn{font-size:12px;padding:6px 14px}
  .lightbox__prev,.lightbox__next{width:40px;height:40px;font-size:32px}
  .lightbox__prev{left:8px}
  .lightbox__next{right:8px}
}
@media(max-width:480px){
  body:not(.home) .gallery-grid{columns:2;column-gap:6px;padding:0 12px 32px}
  body:not(.home) .gallery-item{margin-bottom:6px;border-radius:8px}
}

/* ═══════════════════════════════════════════════════════
   BOOKING PAGE — Component Styles
   ═══════════════════════════════════════════════════════ */

/* ─── Booking USP Grid (6 cards) ─── */
.booking-usp-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
  max-width:900px;
  margin:0 auto;
}
.booking-usp-card{
  text-align:center;
  padding:24px 16px;
  background:var(--pure-surface);
  border-radius:12px;
  border:1px solid var(--whisper-border);
  transition:transform .2s ease,box-shadow .2s ease;
}
.booking-usp-card:hover{
  transform:translateY(-2px);
  box-shadow:0 4px 12px rgba(0,0,0,.08);
}
.booking-usp-card__icon{
  margin-bottom:12px;
}
.booking-usp-card__title{
  font-family:'Space Grotesk',sans-serif;
  font-size:16px;
  font-weight:600;
  color:var(--charcoal-ink);
  margin-bottom:4px;
}
.booking-usp-card__text{
  font-size:14px;
  color:var(--muted-stone);
  line-height:1.5;
}

/* ─── Booking Room Cards (3-col) ─── */
.booking-rooms-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.booking-room-card{
  background:var(--pure-surface);
  border-radius:12px;
  overflow:hidden;
  border:1px solid var(--whisper-border);
  transition:transform .2s ease,box-shadow .2s ease;
}
.booking-room-card:hover{
  transform:translateY(-3px);
  box-shadow:0 8px 24px rgba(0,0,0,.1);
}
.booking-room-card__img{
  height:200px;
  overflow:hidden;
  background:var(--deep-canopy);
}
.booking-room-card__img img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .3s ease;
}
.booking-room-card:hover .booking-room-card__img img{
  transform:scale(1.03);
}
.booking-room-card__body{
  padding:20px;
}
.booking-room-card__title{
  font-family:'Space Grotesk',sans-serif;
  font-size:20px;
  font-weight:700;
  color:var(--charcoal-ink);
  margin-bottom:6px;
}
.booking-room-card__desc{
  font-size:15px;
  color:var(--muted-stone);
  line-height:1.5;
  margin-bottom:12px;
}
.booking-room-card__price{
  font-family:'Space Grotesk',sans-serif;
  font-size:16px;
  color:var(--forest-fern);
}
.booking-room-card__price strong{
  font-size:22px;
  font-weight:700;
}
.booking-room-card__pax-note{
  font-family:'Source Sans 3',sans-serif;
  font-size:13px;
  color:var(--muted-stone);
  margin-top:4px;
}
.booking-room-card__includes{
  font-family:'Source Sans 3',sans-serif;
  font-size:13px;
  color:var(--forest-fern);
  margin-top:6px;
  font-weight:600;
}

/* ─── Pricing Disclaimer (below section subtitles) ─── */
.pricing-disclaimer{
  font-family:'Source Sans 3',sans-serif;
  font-size:14px;
  color:var(--muted-stone);
  margin-bottom:32px;
  font-style:italic;
}

/* ─── WhatsApp CTA Button ─── */
.booking-wa-btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  background:#25D366;
  color:#fff;
  font-family:'Space Grotesk',sans-serif;
  font-size:18px;
  font-weight:600;
  padding:14px 32px;
  border-radius:100px;
  text-decoration:none;
  transition:background .2s ease,transform .2s ease;
}
.booking-wa-btn:hover{
  background:#1DA851;
  transform:translateY(-2px);
}
.booking-wa-btn svg{
  flex-shrink:0;
}

/* ─── Booking Policy Cards (3-col) ─── */
.booking-policies-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.booking-policy-card{
  background:var(--morning-mist);
  border-radius:12px;
  padding:24px;
  border:1px solid var(--whisper-border);
  display:flex;
  flex-direction:column;
  text-decoration:none;
  color:inherit;
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  cursor:pointer;
}
.booking-policy-card:hover{
  transform:translateY(-3px);
  box-shadow:0 8px 24px rgba(60,84,11,.12);
  border-color:var(--forest-fern);
  background:var(--pure-surface);
}
.booking-policy-card:focus-visible{
  outline:2px solid var(--forest-fern);
  outline-offset:2px;
}
.booking-policy-card__cta{
  font-family:'Space Grotesk',sans-serif;
  font-size:13px;
  font-weight:600;
  letter-spacing:0.5px;
  text-transform:uppercase;
  color:var(--forest-fern);
  margin-top:auto;
  padding-top:16px;
  display:inline-block;
  transition:color .2s ease, transform .2s ease;
}
.booking-policy-card:hover .booking-policy-card__cta{
  color:var(--deep-canopy);
  transform:translateX(2px);
}
.booking-policy-card__title{
  font-family:'Space Grotesk',sans-serif;
  font-size:17px;
  font-weight:600;
  color:var(--charcoal-ink);
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:16px;
}
.booking-policy-card__list{
  list-style:none;
  padding:0;
}
.booking-policy-card__list li{
  font-size:15px;
  color:var(--charcoal-ink);
  padding:6px 0;
  line-height:1.5;
  border-bottom:1px solid var(--whisper-border);
}
.booking-policy-card__list li:last-child{
  border-bottom:none;
}

/* ─── Booking Page Responsive ─── */
@media(max-width:768px){
  .booking-usp-grid{grid-template-columns:repeat(2,1fr);gap:16px}
  .booking-rooms-grid{grid-template-columns:1fr;gap:20px}
  .booking-policies-grid{grid-template-columns:1fr;gap:16px}
}
@media(max-width:480px){
  .booking-usp-grid{grid-template-columns:repeat(2,1fr);gap:12px}
  .booking-usp-card{padding:16px 12px}
  .booking-wa-btn{font-size:16px;padding:12px 24px}
}

/* ─── Day Trip Callout (on Book Online page) ─── */
.booking-daytrip-callout{display:grid;grid-template-columns:280px 1fr;gap:0;border-radius:12px;overflow:hidden;border:1px solid rgba(60,84,11,.1);margin-top:32px;background:#fff}
.booking-daytrip-callout__img{height:220px;overflow:hidden}
.booking-daytrip-callout__img picture,.booking-daytrip-callout__img img{width:100%;height:100%;object-fit:cover;display:block}
.booking-daytrip-callout__body{padding:28px 32px;display:flex;flex-direction:column;justify-content:center}
.booking-daytrip-callout__title{font-family:'Space Grotesk',sans-serif;font-size:22px;font-weight:700;color:var(--deep-canopy);margin:0 0 10px}
.booking-daytrip-callout__desc{font-size:15px;color:var(--muted-stone);line-height:1.6;margin:0 0 20px}
.booking-daytrip-callout__btn{display:inline-block;background:var(--forest-fern);color:#fff;font-family:'Space Grotesk',sans-serif;font-size:14px;font-weight:600;padding:10px 24px;border-radius:4px;text-decoration:none;transition:background .2s;align-self:flex-start}
.booking-daytrip-callout__btn:hover{background:var(--deep-canopy)}
@media(max-width:768px){
  .booking-daytrip-callout{grid-template-columns:1fr}
  .booking-daytrip-callout__img{height:200px}
}

/* ═══════════════════════════════════════════════════════
   VIKBOOKING — Theme Overrides
   Override VikBooking default styles to match MFAF brand
   ═══════════════════════════════════════════════════════ */

/* ─── Search Form Container ─── */
.vbo-search-form,
.vbcaldivcont,
#vbo-search-form-main{
  font-family:'Source Sans 3',sans-serif !important;
  max-width:900px;
  margin:0 auto;
}

/* ─── Form Inputs & Selects ─── */
.vbo-search-form input[type="text"],
.vbo-search-form input[type="number"],
.vbo-search-form input[type="date"],
.vbo-search-form select,
.vbo-search-inpdate,
.vbo-search-num-input,
.vbo-search-numselect{
  font-family:'Source Sans 3',sans-serif !important;
  font-size:16px !important;
  padding:10px 14px !important;
  border:1px solid var(--whisper-border) !important;
  border-radius:8px !important;
  background:var(--pure-surface) !important;
  color:var(--charcoal-ink) !important;
  transition:border-color .2s ease !important;
}
.vbo-search-form input:focus,
.vbo-search-form select:focus{
  outline:none !important;
  border-color:var(--forest-fern) !important;
  box-shadow:0 0 0 3px rgba(74,122,43,.15) !important;
}

/* ─── Form Labels ─── */
.vbo-search-form label,
.vbo-search-label{
  font-family:'Space Grotesk',sans-serif !important;
  font-size:14px !important;
  font-weight:600 !important;
  color:var(--charcoal-ink) !important;
  letter-spacing:.5px !important;
}

/* ─── Submit / Action Buttons ─── */
.vbo-search-submit button,
.vbo-search-submit input[type="submit"],
.vbo-search-form button,
.vbo-btn,
.vbo-pref-color-btn,
button.vbo-pref-color-btn,
input.vbo-pref-color-btn{
  font-family:'Space Grotesk',sans-serif !important;
  font-size:16px !important;
  font-weight:600 !important;
  background:var(--forest-fern) !important;
  color:#fff !important;
  border:none !important;
  border-radius:8px !important;
  padding:12px 28px !important;
  cursor:pointer !important;
  transition:background .2s ease,transform .15s ease !important;
}
.vbo-search-submit button:hover,
.vbo-search-submit input[type="submit"]:hover,
.vbo-search-form button:hover,
.vbo-btn:hover,
.vbo-pref-color-btn:hover,
button.vbo-pref-color-btn:hover,
input.vbo-pref-color-btn:hover{
  background:var(--deep-canopy) !important;
  transform:translateY(-1px) !important;
}

/* ─── Room Results Container ─── */
.vbo-rooms-container,
.vbo-search-results-wrapper{
  font-family:'Source Sans 3',sans-serif !important;
  max-width:900px;
  margin:0 auto;
}

/* ─── Individual Room Result Card ─── */
.vbo-room-result{
  background:var(--pure-surface) !important;
  border:1px solid var(--whisper-border) !important;
  border-radius:12px !important;
  overflow:hidden !important;
  margin-bottom:20px !important;
  box-shadow:0 2px 8px rgba(0,0,0,.05) !important;
  transition:box-shadow .2s ease !important;
}
.vbo-room-result:hover{
  box-shadow:0 4px 16px rgba(0,0,0,.1) !important;
}

/* ─── Room Name / Image Header ─── */
.vbo-room-result-head,
.vbo-room-result-head h4,
.vbo-room-result-head h3{
  font-family:'Space Grotesk',sans-serif !important;
  color:var(--charcoal-ink) !important;
  font-weight:700 !important;
}
.vbo-room-result-head img{
  border-radius:8px 8px 0 0 !important;
}

/* ─── Room Details ─── */
.vbo-room-result-info{
  padding:16px 20px !important;
}
.vbo-room-result-info p,
.vbo-room-result-info span{
  font-family:'Source Sans 3',sans-serif !important;
  color:var(--charcoal-ink) !important;
}

/* ─── Price Display ─── */
.vbo-price,
.vbo-room-result-price,
.vbo_price,
.vbo-room-result .vbo-price{
  font-family:'Space Grotesk',sans-serif !important;
  font-weight:700 !important;
  color:var(--forest-fern) !important;
  font-size:20px !important;
}

/* ─── Booking Summary ─── */
.vbo-booking-summary,
.vbo-summary-container{
  background:var(--morning-mist) !important;
  border:1px solid var(--whisper-border) !important;
  border-radius:12px !important;
  padding:24px !important;
  font-family:'Source Sans 3',sans-serif !important;
}
.vbo-booking-summary h3,
.vbo-booking-summary h4,
.vbo-summary-container h3{
  font-family:'Space Grotesk',sans-serif !important;
  color:var(--charcoal-ink) !important;
}

/* ─── Calendar Styling ─── */
.vbo-search-calendar .ui-datepicker,
.ui-datepicker{
  font-family:'Source Sans 3',sans-serif !important;
  border-radius:12px !important;
  border:1px solid var(--whisper-border) !important;
  box-shadow:0 8px 24px rgba(0,0,0,.12) !important;
}
.ui-datepicker-header{
  background:var(--deep-canopy) !important;
  color:var(--morning-mist) !important;
  border-radius:12px 12px 0 0 !important;
  font-family:'Space Grotesk',sans-serif !important;
}
.ui-datepicker td a.ui-state-active,
.ui-datepicker td a.ui-state-highlight{
  background:var(--forest-fern) !important;
  color:#fff !important;
  border-radius:6px !important;
}
.ui-datepicker td a:hover{
  background:rgba(74,122,43,.15) !important;
  border-radius:6px !important;
}

/* ─── VikBooking Misc Overrides ─── */
.vbo-search-form-entry-inline{
  border-radius:8px !important;
}
.vbo-room-result-select select{
  font-family:'Source Sans 3',sans-serif !important;
  border-radius:8px !important;
  border:1px solid var(--whisper-border) !important;
  padding:8px 12px !important;
}

/* Booking widget section — tighter spacing */
.booking-widget-section{
  padding-top:clamp(1.5rem,3vw,2.5rem);
  padding-bottom:clamp(1.5rem,3vw,2.5rem);
}
.booking-widget-section .content-section__inner{
  max-width:960px;
}

/* ─── VikBooking Search Form — MFAF Typography & Colors ─── */
.vbdivsearch .vb-search-inner label,
.vbdivsearch .vb-search-inner .vbo-search-num-adults-entry-label,
.vbdivsearch .vb-search-inner .vbo-search-num-children-entry-label{
  font-family:'Space Grotesk',sans-serif !important;
  font-size:12px !important;
  font-weight:600 !important;
  letter-spacing:0.5px !important;
  text-transform:uppercase !important;
  color:var(--muted-stone) !important;
  margin-bottom:6px !important;
  display:block !important;
}
.vbo-search-roomnum{
  font-family:'Space Grotesk',sans-serif !important;
  font-size:13px !important;
  font-weight:600 !important;
  color:var(--charcoal-ink) !important;
}
.vbdivsearch .vb-search-inner input[type="text"],
.vbdivsearch .vb-search-inner .hasDatepicker,
.vbdivsearch .vb-search-inner .vbo-drp-inp-trigger,
.vbdivsearch .vb-search-inner select{
  font-family:'Source Sans 3',sans-serif !important;
  font-size:15px !important;
  color:var(--charcoal-ink) !important;
  background:var(--pure-surface) !important;
  border:1px solid var(--whisper-border) !important;
  border-radius:8px !important;
  padding:10px 40px 10px 14px !important;
  height:44px !important;
  width:100% !important;
  min-width:0 !important;
  box-sizing:border-box !important;
  transition:border-color .2s !important;
  -webkit-appearance:none !important;
}
.vbdivsearch .vb-search-inner input[type="text"]:focus,
.vbdivsearch .vb-search-inner select:focus{
  border-color:var(--forest-fern) !important;
  outline:none !important;
}
/* Calendar icon inside input-group */
.vbdivsearch .vb-search-inner .input-group{
  position:relative !important;
  display:block !important;
  width:100% !important;
}
.vbdivsearch .vb-search-inner .input-group i{
  position:absolute !important;
  right:12px !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  border:none !important;
  background:transparent !important;
  height:auto !important;
  line-height:1 !important;
  color:var(--muted-stone) !important;
  z-index:2 !important;
  float:none !important;
  pointer-events:none !important;
}
.vbdivsearch .vb-search-inner .input-group > input{
  float:none !important;
  width:100% !important;
  border-radius:8px !important;
}
/* ─── Search form: tidy flex layout that handles 1+ rooms ─── */
.vbdivsearch .vb-search-inner{
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:wrap !important;
  gap:12px !important;
  align-items:flex-start !important;
  width:100% !important;
}
/* Date inputs — side by side on desktop */
.vbdivsearch .vb-search-inner > .vbo-search-inpblock-checkin{
  flex:1 1 calc(50% - 6px) !important;
  order:1 !important;
  float:none !important;
  margin:0 !important;
}
.vbdivsearch .vb-search-inner > .vbo-search-inpblock-checkout{
  flex:1 1 calc(50% - 6px) !important;
  order:2 !important;
  float:none !important;
  margin:0 !important;
}
/* RAC block — full width, stacks rooms vertically */
.vbdivsearch .vb-search-inner > .vbo-search-num-racblock{
  order:3 !important;
  flex:1 1 100% !important;
  display:flex !important;
  flex-direction:column !important;
  gap:10px !important;
  float:none !important;
  width:100% !important;
  margin:0 !important;
}
/* Number of rooms selector — compact */
.vbdivsearch .vbo-search-num-racblock > .vbo-search-num-rooms{
  width:200px !important;
  min-width:0 !important;
  margin:0 !important;
  float:none !important;
}
.vbdivsearch .vbo-search-num-racblock > .vbo-search-num-rooms select{
  width:100% !important;
}
/* Room entries wrapper */
.vbdivsearch .vbo-search-num-aduchild-block{
  display:flex !important;
  flex-direction:column !important;
  gap:8px !important;
  width:100% !important;
  margin:0 !important;
  float:none !important;
}
/* Each "Room N" entry = one horizontal row with subtle card styling */
.vbdivsearch .vbo-search-num-aduchild-entry{
  display:grid !important;
  grid-template-columns:auto 1fr 1fr !important;
  gap:12px !important;
  align-items:center !important;
  padding:10px 14px !important;
  background:var(--pure-surface) !important;
  border:1px solid var(--whisper-border) !important;
  border-radius:8px !important;
  width:100% !important;
  margin:0 !important;
  float:none !important;
}
/* Room label */
.vbdivsearch .vbo-search-num-aduchild-entry .vbo-search-roomnum{
  display:inline-block !important;
  font-family:'Space Grotesk',sans-serif !important;
  font-size:13px !important;
  font-weight:600 !important;
  color:var(--charcoal-ink) !important;
  min-width:56px !important;
  margin:0 !important;
}
/* Adults / Children inside a room row */
.vbdivsearch .vbo-search-num-aduchild-entry .vbo-search-num-adults-entry,
.vbdivsearch .vbo-search-num-aduchild-entry .vbo-search-num-children-entry{
  display:flex !important;
  flex-direction:column !important;
  width:auto !important;
  min-width:0 !important;
  float:none !important;
  margin:0 !important;
}
.vbdivsearch .vbo-search-num-aduchild-entry label{
  font-family:'Space Grotesk',sans-serif !important;
  font-size:10px !important;
  font-weight:600 !important;
  letter-spacing:0.5px !important;
  text-transform:uppercase !important;
  color:var(--muted-stone) !important;
  margin-bottom:3px !important;
}
.vbdivsearch .vbo-search-num-aduchild-entry .vbo-search-num-adults-entry-inp,
.vbdivsearch .vbo-search-num-aduchild-entry .vbo-search-num-children-entry-inp{
  display:block !important;
  width:100% !important;
}
.vbdivsearch .vbo-search-num-aduchild-entry select{
  height:36px !important;
  padding:6px 10px !important;
  font-size:14px !important;
  width:100% !important;
  min-width:0 !important;
}
/* Nights display */
.vbdivsearch .vb-search-inner #vbjstotnights{
  order:4 !important;
  flex:1 1 100% !important;
  text-align:center !important;
  font-family:'Source Sans 3',sans-serif !important;
  font-size:13px !important;
  color:var(--muted-stone) !important;
  margin:4px 0 0 !important;
}
/* Submit button row */
.vbdivsearch .vb-search-inner > .vbo-search-submit{
  order:5 !important;
  flex:1 1 100% !important;
  text-align:center !important;
  margin:0 !important;
}
.vbdivsearch .vb-search-inner > .vbo-search-submit .btn{
  min-width:200px !important;
  width:auto !important;
  display:inline-block !important;
}
/* Booking widget section — tighter padding */
.booking-widget-section{
  padding-top:20px !important;
  padding-bottom:20px !important;
}
.booking-widget-section .vbdivsearch{
  padding:20px !important;
  border-radius:12px !important;
}
/* Tablet and below: stack dates and room fields */
@media (max-width:768px){
  .vbdivsearch .vb-search-inner > .vbo-search-inpblock-checkin,
  .vbdivsearch .vb-search-inner > .vbo-search-inpblock-checkout{
    flex:1 1 100% !important;
  }
  .vbdivsearch .vbo-search-num-aduchild-entry{
    grid-template-columns:1fr 1fr !important;
    gap:10px !important;
  }
  .vbdivsearch .vbo-search-num-aduchild-entry .vbo-search-roomnum{
    grid-column:1 / -1 !important;
    padding-bottom:6px !important;
    border-bottom:1px solid var(--whisper-border) !important;
  }
}
/* Search button — refined size */
.vbdivsearch .vbo-search-submit .btn.vbo-pref-color-btn{
  font-family:'Space Grotesk',sans-serif !important;
  font-size:14px !important;
  font-weight:600 !important;
  letter-spacing:0.5px !important;
  padding:10px 36px !important;
  height:48px !important;
  border-radius:8px !important;
  background:var(--forest-fern) !important;
  color:#fff !important;
  border:none !important;
  cursor:pointer !important;
  transition:background .2s, transform .15s !important;
  margin-top:8px !important;
}
.vbdivsearch .vbo-search-submit .btn.vbo-pref-color-btn:hover{
  background:var(--deep-canopy) !important;
  transform:translateY(-1px) !important;
}
/* Select dropdown option styling */
.vb-search-inner select option{
  font-family:'Source Sans 3',sans-serif !important;
  color:var(--charcoal-ink) !important;
  background:var(--pure-surface) !important;
}
/* No-results search form (inline re-search after results) */
.vbo-search-noresults-cont .vb-search-inner{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:12px !important;
  align-items:flex-end !important;
}
.vbo-search-noresults-cont .vbo-search-inpblock{
  flex:1 1 auto !important;
  min-width:140px !important;
}
.vbo-search-noresults-cont .vbo-search-submit{
  flex:0 0 auto !important;
}

/* ─── VikBooking Responsive ─── */
@media(max-width:768px){
  .vbo-search-form,
  .vbo-rooms-container{
    padding:0 8px !important;
  }
  .vbo-room-result-info{
    padding:12px 16px !important;
  }
}

/* ═══════════════════════════════════════════════════════════════════
   VikBooking — Full Blue → MFAF Green Theme Override
   Strategy: Override CSS custom properties at :root so all 60+
   usages of var(--vbo-blue-color) etc. cascade automatically.
   Then patch Bootstrap btn-primary and any hard-coded blue values.
   ═══════════════════════════════════════════════════════════════════ */

/* 1. Override VikBooking's blue CSS custom properties */
:root {
  --vbo-darkblue-color:        #3c540b !important; /* was #144D5C → MFAF dark green */
  --vbo-blue-color:            #589719 !important; /* was #3286B8 → MFAF medium green */
  --vbo-blue-color-hover:      #3c540b !important; /* was #2B74A0 → MFAF dark green */
  --vbo-lightblue-color:       #80b421 !important; /* was #80b3ca → MFAF bright lime */
  --vbo-lightblue-color-hover: #589719 !important; /* was #649fbb → MFAF medium green */
  /* Tag-blue: repurpose to a muted olive-green tone */
  --vbo-tag-blue-bg:     #eef4d8 !important; /* was light blue bg → light lime bg */
  --vbo-tag-blue-txt:    #3c540b !important; /* was dark navy txt → MFAF dark green */
  --vbo-tag-blue-border: #c4d98a !important; /* was #b6ceda → lime-green border */
}

/* 2. Bootstrap btn-primary (used inside VikBooking forms) */
.btn-primary,
.btn-primary:link,
.btn-primary:visited {
  background-color: #3c540b !important;
  border-color:     #3c540b !important;
  color:            #ffffff !important;
}
.btn-primary:hover,
.btn-primary:focus,
.btn-primary.focus,
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
  background-color: #589719 !important;
  border-color:     #589719 !important;
  color:            #ffffff !important;
}
.btn-primary:disabled,
.btn-primary[disabled],
fieldset[disabled] .btn-primary {
  background-color: #80b421 !important;
  border-color:     #80b421 !important;
}

/* 3. Bootstrap link color (#337ab7) scoped to VikBooking containers */
.vikbooking_container a,
.vbo-search-results-wrapper a,
.vbo-rooms-container a,
.vbo-oconfirm-tblcont a,
#vbo-search-form-main a,
.vbo-booking-solutions-container a,
.vbo-booking-solution-rname a,
a.vbmodalframe,
.wrap.plugin-container a,
.vbo-search-suggestions-container a {
  color: #589719 !important;
}
.vikbooking_container a:hover,
.vbo-search-results-wrapper a:hover,
.vbo-rooms-container a:hover,
.vbo-oconfirm-tblcont a:hover,
#vbo-search-form-main a:hover,
.vbo-booking-solutions-container a:hover,
.vbo-booking-solution-rname a:hover,
a.vbmodalframe:hover,
.wrap.plugin-container a:hover,
.vbo-search-suggestions-container a:hover {
  color: #3c540b !important;
}

/* 4. VikBooking step progress bar */
ol.vbo-stepbar li.vbo-step-complete,
ol.vbo-stepbar li.vbo-step-current {
  border-bottom: 4px solid #589719 !important;
  background-color: transparent !important;
}
ol.vbo-stepbar .vbo-step-current {
  background-color: #80b421 !important;
  color: #ffffff !important;
}
ol.vbo-stepbar li.vbo-step-complete > a,
ol.vbo-stepbar li.vbo-step-current > a {
  color: #3c540b !important;
}
/* Step number circles / indicators */
ol.vbo-stepbar li:before,
ol.vbo-stepbar li.vbo-step-complete:before,
ol.vbo-stepbar li.vbo-step-current:before {
  background: #3c540b !important;
  border-color: #3c540b !important;
  color: #fff !important;
}

/* 5. Order confirmation / checkout — payment method active state */
.vbo-oconfirm-paymentopts .vbo-oconfirm-paymethods-list .vbo-oconfirm-paymethod-item-active {
  border: 1px solid #589719 !important;
  color: #589719 !important;
}
.vbo-oconfirm-paymentopts .vbo-oconfirm-paymethods-list li label:hover {
  color: #589719 !important;
  border-color: #589719 !important;
}
.vbo-oconfirm-paymentopts .vbo-oconfirm-paymethods-list .vbo-oconfirm-paymethod-item-active:after {
  background: #589719 !important;
}

/* 6. Coupon / PIN entry borders */
.vbo-coupon-outer,
.vbo-enterpin-block {
  border: 1px dashed #589719 !important;
}

/* 7. Order confirm room row selected / highlighted */
.vbo-oconfirm-roomrow {
  border-left: 4px solid #80b421 !important;
}
.vbo-oconfirm-roomname {
  color: #3c540b !important;
}

/* 8. Input focus rings — override browser blue outline on VikBooking fields */
.vikbooking_container input:focus,
.vikbooking_container select:focus,
.vikbooking_container textarea:focus,
.vbo-oconfirm-tblcont input:focus,
.vbo-oconfirm-tblcont select:focus,
.vbo-oconfirm-tblcont textarea:focus,
#vbo-search-form-main input:focus,
#vbo-search-form-main select:focus {
  outline: none !important;
  border-color: #80b421 !important;
  box-shadow: 0 0 0 3px rgba(128,180,33,.25) !important;
}

/* 9. Availability calendar — busy/available legend colors stay, fix selected date */
.vbo-search-calendar .ui-datepicker td a.ui-state-active,
.vbo-search-calendar .ui-datepicker td a.ui-state-highlight,
.ui-datepicker td a.ui-state-active,
.ui-datepicker td span.ui-state-active {
  background: #589719 !important;
  color: #ffffff !important;
  border-color: #589719 !important;
}
.ui-datepicker td a:hover {
  background: rgba(88,151,25,.15) !important;
}
/* jQuery UI state-active (calendar header nav arrows etc.) */
.ui-state-active,
.ui-widget-content .ui-state-active,
.ui-widget-header .ui-state-active {
  background: #3c540b !important;
  border-color: #3c540b !important;
  color: #fff !important;
}

/* 10. VikBooking availability search — "busy" dot stays red, fix "today" ring */
.vbo-availability-controls .vblegbusy {
  /* keep red — do not override */
}
/* Fix any remaining hard-coded #3286B8 or #337ab7 inline styles via attribute */
[style*="#3286B8"],
[style*="#3286b8"],
[style*="#337ab7"],
[style*="#0068d9"],
[style*="#0d6efd"],
[style*="#007bff"] {
  color: #589719 !important;
}

/* 11. VikBooking pref-color-btn — already covered by .vbo-pref-color-btn above,
   but also cover the info/notice banners that use blue */
.vbo-info-box,
.vbo-notice,
.vbo-alert-info,
.alert-info {
  background-color: #eef4d8 !important;
  border-color: #c4d98a !important;
  color: #3c540b !important;
}

/* 12. Any Bootstrap text-primary or link-primary inside VikBooking */
.vikbooking_container .text-primary,
.vbo-oconfirm-tblcont .text-primary,
.vbo-rooms-container .text-primary {
  color: #589719 !important;
}
.vikbooking_container .bg-primary,
.vbo-oconfirm-tblcont .bg-primary {
  background-color: #3c540b !important;
  color: #fff !important;
}

/* 13. Booking solution cards — MFAF typography */
.vbo-booking-solutions-container{
  font-family:'Source Sans 3',sans-serif !important;
}
.vbo-booking-solution{
  border:1px solid var(--whisper-border) !important;
  border-radius:12px !important;
  font-family:'Source Sans 3',sans-serif !important;
}
.vbo-booking-solution-date-lbl{
  font-family:'Space Grotesk',sans-serif !important;
  font-size:11px !important;
  font-weight:600 !important;
  letter-spacing:0.5px !important;
  text-transform:uppercase !important;
  color:var(--muted-stone) !important;
}
.vbo-booking-solution-date-dt{
  font-family:'Source Sans 3',sans-serif !important;
  color:var(--charcoal-ink) !important;
}
.vbo-booking-solution-rname{
  font-family:'Space Grotesk',sans-serif !important;
  font-weight:600 !important;
}
.vbo-booking-solution-guests{
  font-family:'Source Sans 3',sans-serif !important;
  color:var(--muted-stone) !important;
}
.vbo-search-suggestions-intro{
  font-family:'Source Sans 3',sans-serif !important;
  color:var(--charcoal-ink) !important;
}
.vbo-search-suggestions-av-mon{
  font-family:'Space Grotesk',sans-serif !important;
}
/* No-room-available error banner */
.vbo-search-noresults-cont .vbo-intro-main{
  font-family:'Source Sans 3',sans-serif !important;
  color:var(--charcoal-ink) !important;
}

/* ─── PAGE: rooms ─── */
/* ═══════════════════════════════════════════
   ROOMS & RATES — PAGE-SPECIFIC STYLES
   ═══════════════════════════════════════════ */

/* ─── Pricing Overview Cards ─── */
.pricing-cards{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  max-width:600px;
  margin-bottom:24px;
}
.pricing-card-item{
  background:var(--pure-surface);
  border:1px solid var(--whisper-border);
  border-radius:16px;
  padding:28px 24px;
  text-align:center;
  transition:transform .2s, box-shadow .2s;
}
.pricing-card-item:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(0,0,0,.06);
}
.pricing-card-item--accent{
  border-color:var(--forest-fern);
  background:rgba(74,122,43,.04);
}
.pricing-card-item__label{
  display:block;
  font-family:'Space Grotesk',sans-serif;
  font-size:12px;
  font-weight:600;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--golden-earth);
  margin-bottom:8px;
}
.pricing-card-item__price{
  display:block;
  font-family:'Fraunces',serif;
  font-size:clamp(22px,3vw,28px);
  font-weight:500;
  color:var(--deep-canopy);
  line-height:1.2;
  margin-bottom:6px;
}
.pricing-card-item__price strong{
  font-size:clamp(28px,4vw,36px);
}
.pricing-card-item__note{
  display:block;
  font-size:14px;
  color:var(--muted-stone);
  line-height:1.4;
}

.pricing-note{
  font-size:15px;
  color:var(--muted-stone);
  margin-bottom:24px;
}

/* ─── Included Strip (checkmarks) ─── */
.included-strip{
  display:flex;
  flex-wrap:wrap;
  gap:16px 28px;
}
.included-strip__item{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-family:'Space Grotesk',sans-serif;
  font-size:14px;
  font-weight:500;
  color:var(--charcoal-ink);
}

/* ─── Room Card Grid ─── */
.room-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(320px,1fr));
  gap:24px;
}
body:not(.home) .room-card{
  background:var(--pure-surface);
  border:1px solid var(--whisper-border);
  border-radius:16px;
  overflow:hidden;
  transition:transform .2s ease, box-shadow .2s ease;
  display:flex;
  flex-direction:column;
}
body:not(.home) .room-card:hover{
  transform:translateY(-3px);
  box-shadow:0 12px 32px rgba(0,0,0,.08);
}

/* Room card image */
.room-card__img{
  position:relative;
  overflow:hidden;
  aspect-ratio:16/10;
}
.room-card__img img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .3s;
}
.room-card:hover .room-card__img img{
  transform:scale(1.04);
}

/* Badge overlay on image */
.room-card__badge{
  position:absolute;
  top:12px;
  left:12px;
  background:var(--lime-zest);
  color:var(--deep-canopy);
  font-family:'Space Grotesk',sans-serif;
  font-size:11px;
  font-weight:700;
  letter-spacing:.5px;
  text-transform:uppercase;
  padding:5px 12px;
  border-radius:100px;
}

/* Room card body */
.room-card__body{
  padding:24px;
  display:flex;
  flex-direction:column;
  flex:1;
}
.room-card__header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:16px;
}
.room-card__title,
.room-card h3.room-card__title{
  font-family:'Space Grotesk',sans-serif;
  font-size:18px;
  font-weight:600;
  color:var(--charcoal-ink);
  line-height:1.3;
  margin-bottom:0;
}
.room-card__rooms{
  font-family:'Space Grotesk',sans-serif;
  font-size:12px;
  font-weight:500;
  color:var(--muted-stone);
  white-space:nowrap;
  padding:4px 10px;
  border-radius:100px;
  background:rgba(107,114,128,.08);
}

/* Room specs list */
.room-card__specs{
  list-style:none;
  margin-bottom:14px;
}
.room-card__specs li{
  font-size:15px;
  color:var(--charcoal-ink);
  line-height:1.5;
  padding:3px 0;
}
.room-card__specs li strong{
  color:var(--muted-stone);
  font-weight:500;
  font-size:13px;
  text-transform:uppercase;
  letter-spacing:.5px;
}

/* Highlight text (e.g., pool access) */
.room-card__highlight{
  font-size:14px;
  color:var(--forest-fern);
  font-weight:500;
  font-style:italic;
  margin-bottom:12px;
  padding:8px 12px;
  background:rgba(74,122,43,.06);
  border-radius:8px;
}

/* Amenity tags */
.room-card__amenities{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-bottom:16px;
}
.room-card__amenities span{
  display:inline-block;
  padding:4px 10px;
  border-radius:100px;
  background:rgba(74,122,43,.08);
  font-family:'Space Grotesk',sans-serif;
  font-size:12px;
  font-weight:500;
  color:var(--deep-canopy);
}

/* Footer: price + book button */
.room-card__footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-top:auto;
  padding-top:16px;
  border-top:1px solid var(--whisper-border);
}
.room-card__price{
  font-family:'Source Sans 3',sans-serif;
  font-size:15px;
  color:var(--charcoal-ink);
}
.room-card__price strong{
  font-family:'Fraunces',serif;
  font-size:22px;
  font-weight:500;
  color:var(--deep-canopy);
}
.room-card__btn{
  display:inline-block;
  padding:10px 20px;
  border-radius:100px;
  background:var(--lime-zest);
  color:var(--deep-canopy);
  font-family:'Space Grotesk',sans-serif;
  font-size:13px;
  font-weight:600;
  letter-spacing:.5px;
  text-transform:uppercase;
  text-decoration:none;
  transition:all .2s;
  white-space:nowrap;
}
.room-card__btn:hover{
  background:var(--deep-canopy);
  color:var(--morning-mist);
  transform:translateY(-1px);
}
.room-card__includes{
  font-family:'Source Sans 3',sans-serif;
  font-size:13px;
  color:var(--forest-fern);
  font-weight:600;
  margin-top:8px;
  padding-top:8px;
  border-top:1px solid var(--whisper-border);
}

/* ─── Amenity Grid (Section 6) ─── */
.amenity-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:20px;
}
.amenity-item{
  display:flex;
  align-items:flex-start;
  gap:14px;
  padding:20px;
  border-radius:14px;
  background:var(--pure-surface);
  border:1px solid var(--whisper-border);
}
.amenity-item__icon{
  flex-shrink:0;
  width:44px;
  height:44px;
  border-radius:12px;
  background:rgba(74,122,43,.08);
  display:flex;
  align-items:center;
  justify-content:center;
}
.amenity-item strong{
  display:block;
  font-family:'Space Grotesk',sans-serif;
  font-size:16px;
  font-weight:600;
  color:var(--charcoal-ink);
  margin-bottom:4px;
}
.amenity-item p{
  font-size:14px;
  color:var(--muted-stone);
  line-height:1.5;
  margin:0;
}
.amenity-item em{
  font-style:italic;
  color:var(--golden-earth);
}

/* ─── Rooms Page Responsive ─── */
@media(max-width:768px){
  .pricing-cards{
    grid-template-columns:1fr;
    max-width:100%;
  }
  .room-grid{
    grid-template-columns:1fr;
  }
  .included-strip{
    gap:10px 20px;
  }
  .amenity-grid{
    grid-template-columns:1fr;
  }
}
@media(max-width:480px){
  .room-card__header{
    flex-direction:column;
    align-items:flex-start;
    gap:4px;
  }
  .room-card__footer{
    flex-direction:column;
    align-items:flex-start;
    gap:12px;
  }
  .room-card__btn{
    width:100%;
    text-align:center;
  }
}

/* ═══════════════════════════════════════════
   FLOATING WIDGETS — Book Now + WhatsApp
   ═══════════════════════════════════════════ */
.float-widgets{
  position:fixed;
  bottom:24px;
  right:24px;
  z-index:9999;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.float-widgets a{
  width:52px;
  height:52px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 4px 16px rgba(0,0,0,.2);
  transition:transform .2s,box-shadow .2s,opacity .3s;
  text-decoration:none;
}
.float-widgets a:hover{
  transform:scale(1.1);
  box-shadow:0 6px 24px rgba(0,0,0,.3);
}
.book-float{
  background:#EBF67D;
}
.book-float svg{
  stroke:var(--deep-canopy) !important;
}
.wa-float{
  background:#25D366;
}
/* Auto-hide state */
.float-widgets.widgets-hidden a{
  opacity:0;
  pointer-events:none;
}
@media(max-width:768px){
  .float-widgets{
    bottom:16px;
    right:16px;
    gap:10px;
  }
  .float-widgets a{
    width:48px;
    height:48px;
  }
  .float-widgets a svg{
    width:24px !important;
    height:24px !important;
  }
}