
/* ============ TOKENS ============
   Color: forest #16261B (dark base) · moss #45633F (brand primary)
   meadow #A8C48A (light accent) · ochre #C99A3D (warm accent)
   cream #F3EFE3 (card surface) · snow #FFFFFF
   Type: Big Shoulders Display (headlines, condensed trail-signage feel)
         Work Sans (body) · IBM Plex Mono (prices, tags, data)
   Signature: topographic contour-line dividers + dotted trail-route
   markers down the "Why Chilux" and "Experiences" lists.
================================== */
:root{
  --forest:#16261B;
  --forest-2:#1E3226;
  --moss:#45633F;
  --moss-dark:#344B30;
  --meadow:#A8C48A;
  --ochre:#C99A3D;
  --ochre-dark:#A67D28;
  --cream:#F3EFE3;
  --cream-dim:#E9E2CE;
  --snow:#FFFFFF;
  --ink:#1B2419;
  --line:rgba(27,36,25,0.14);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0; background:var(--cream); color:var(--ink); font-family:'Work Sans',sans-serif; line-height:1.55;}
h1,h2,h3{font-family:'Big Shoulders Display',sans-serif; font-weight:800; text-transform:uppercase; letter-spacing:0.01em; margin:0 0 0.3em 0; line-height:1.02;}
h3{font-weight:700;}
.mono{font-family:'IBM Plex Mono',monospace;}
a{color:inherit;}
img,video{max-width:100%; display:block;}
.wrap{max-width:1140px; margin:0 auto; padding:0 24px;}
section{padding:76px 0;}
.eyebrow{
  font-family:'IBM Plex Mono',monospace; font-size:0.72rem; letter-spacing:0.16em;
  text-transform:uppercase; color:var(--ochre-dark); display:flex; align-items:center; gap:8px; margin-bottom:0.7em;
}
.eyebrow::before{content:''; width:18px; height:1px; background:var(--ochre-dark); display:inline-block;}
.btn{
  display:inline-flex; align-items:center; gap:8px; padding:13px 24px; border-radius:2px;
  border:1.5px solid transparent; font-size:0.92rem; font-weight:600; cursor:pointer; text-decoration:none;
  font-family:'Work Sans',sans-serif; transition:transform 0.15s ease, background 0.15s ease;
}
.btn:hover{transform:translateY(-1px);}
.btn-primary{background:var(--ochre); color:var(--forest);}
.btn-primary:hover{background:var(--ochre-dark);}
.btn-dark{background:var(--forest); color:var(--cream);}
.btn-dark:hover{background:var(--forest-2);}
.btn-ghost{background:transparent; border-color:rgba(255,255,255,0.4); color:var(--snow);}
.btn-ghost:hover{background:rgba(255,255,255,0.1);}
.btn-outline{background:transparent; border-color:var(--ink); color:var(--ink);}
.btn-outline:hover{background:var(--ink); color:var(--cream);}
:focus-visible{outline:2px solid var(--ochre-dark); outline-offset:2px;}

/* NAV */
nav{position:sticky; top:0; z-index:80; background:rgba(243,239,227,0.94); backdrop-filter:blur(6px); border-bottom:1px solid var(--line);}
nav .wrap{display:flex; align-items:center; justify-content:space-between; padding:14px 24px;}
.brand{font-family:'Big Shoulders Display',sans-serif; font-weight:800; font-size:1.6rem; text-transform:uppercase;}
.brand span{color:var(--ochre-dark);}
.brand-tag{font-family:'IBM Plex Mono',monospace; font-size:0.6rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--moss); margin-top:-4px;}
.navlinks{display:flex; align-items:center; gap:20px; font-size:0.86rem; font-weight:500; flex-wrap:wrap;}
.navlinks a{text-decoration:none; opacity:0.78; position:relative; padding-bottom:4px;}
.navlinks a:hover{opacity:1;}
.navlinks a.active{opacity:1; font-weight:600; color:var(--moss-dark);}
.navlinks a.active::after{
  content:''; position:absolute; left:0; right:0; bottom:-2px; height:2px; background:var(--moss);
  border-radius:2px;
}
.hamburger{display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:8px; z-index:120;}
.hamburger span{width:24px; height:2px; background:var(--ink); display:block; border-radius:2px;}
.nav-close{display:none;}
.nav-scrim{display:none;}

/* HERO */
.hero{
  position:relative; overflow:hidden; color:var(--snow); background:var(--forest);
  background-image:url('images/cottages-night.jpg'); background-size:cover; background-position:center 35%;
}
.hero-scrim{position:absolute; inset:0; z-index:1; background:linear-gradient(180deg, rgba(22,38,27,0.55) 0%, rgba(22,38,27,0.88) 65%, var(--forest) 100%);}
.hero .wrap{position:relative; z-index:2; padding:130px 24px 90px;}
.hero .eyebrow{color:var(--meadow);}
.hero .eyebrow::before{background:var(--meadow);}
.hero h1{font-size:clamp(2.6rem,7vw,5rem); max-width:14ch; text-shadow:0 2px 20px rgba(0,0,0,0.3);}
.hero p.lede{font-size:1.12rem; max-width:48ch; color:rgba(243,239,227,0.88); margin-top:14px;}
.hero .cta-row{display:flex; gap:14px; margin-top:32px; flex-wrap:wrap;}
.hero-stats{display:flex; gap:0; margin-top:56px; border-top:1px solid rgba(255,255,255,0.2); border-bottom:1px solid rgba(255,255,255,0.2); flex-wrap:wrap;}
.hero-stats .stat{flex:1 1 25%; padding:20px; border-right:1px solid rgba(255,255,255,0.15);}
.hero-stats .stat .num{font-family:'Big Shoulders Display',sans-serif; font-weight:800; font-size:1.9rem;}
.hero-stats .stat .lbl{font-size:0.78rem; opacity:0.7; margin-top:2px;}

/* CONTOUR DIVIDER — signature element, topographic-map style */
.contour{width:100%; height:40px; display:block;}
.contour path{fill:none; stroke-width:1.4;}

/* SECTION HEADERS */
.sec-head{max-width:56ch; margin-bottom:40px;}
.sec-head h2{font-size:clamp(1.8rem,4vw,2.7rem);}
.sec-head p{opacity:0.75; font-size:1rem; margin-top:8px;}

/* HOME QUICK NAV CARDS */
.quicknav-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px;}
.quicknav-card{
  background:var(--snow); border:1px solid var(--line); border-radius:3px; padding:24px;
  text-decoration:none; color:var(--ink); transition:transform 0.15s ease, box-shadow 0.15s ease;
}
.quicknav-card:hover{transform:translateY(-3px); box-shadow:0 10px 24px rgba(27,36,25,0.1);}
.quicknav-card .ic{font-size:1.6rem; margin-bottom:10px; display:block;}
.quicknav-card h3{font-size:1.05rem; margin-bottom:4px;}
.quicknav-card p{font-size:0.82rem; opacity:0.65; margin:0;}
@media (max-width:900px){ .quicknav-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .quicknav-grid{grid-template-columns:1fr;} }

/* ===== STAYS ===== */
#stays{background:var(--cream);}
.stay-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.stay-card{
  position:relative; height:440px; border-radius:4px; overflow:hidden; cursor:pointer;
  border:1px solid var(--line); background:var(--ink); box-shadow:0 1px 3px rgba(0,0,0,0.08);
  transition:box-shadow 0.2s ease;
}
.stay-card:hover, .stay-card:focus-visible{box-shadow:0 18px 34px rgba(27,36,25,0.25);}
.stay-card .stay-img{
  position:absolute; inset:0; background-size:cover; background-position:center;
  transition:transform 0.45s cubic-bezier(0.2,0.7,0.3,1);
  transform:scale(1.001); /* establishes its own layer so the transition is smooth from the first hover */
}
.stay-card:hover .stay-img, .stay-card:focus-visible .stay-img{transform:scale(1.12);}
.stay-card::after{content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0.18) 0%, rgba(0,0,0,0.3) 35%, rgba(0,0,0,0.88) 100%); pointer-events:none;}
.stay-card .price-tag{
  position:absolute; top:14px; left:14px; z-index:2; background:rgba(255,255,255,0.92); color:var(--ink);
  font-family:'IBM Plex Mono',monospace; font-size:0.72rem; padding:6px 12px; border-radius:20px; font-weight:600;
}
.stay-card .stay-body{
  position:absolute; left:0; right:0; bottom:0; z-index:2; padding:22px; color:var(--snow);
  height:196px; display:flex; flex-direction:column;
}
.stay-card .stay-body h3{font-size:1.5rem; margin:0 0 8px; color:var(--snow); line-height:1.1;}
.stay-card .stay-body p{
  font-size:0.85rem; opacity:0.92; margin:0 0 12px; color:var(--cream);
  display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden;
  min-height:2.5em; line-height:1.25;
}
.stay-card .tag-row{display:flex; gap:6px; flex-wrap:wrap; margin-bottom:12px; min-height:24px;}
.stay-card .tag{font-family:'IBM Plex Mono',monospace; font-size:0.66rem; background:rgba(255,255,255,0.18); border:1px solid rgba(255,255,255,0.35); padding:3px 9px; border-radius:20px; color:var(--snow);}
.stay-card .view-link{font-family:'IBM Plex Mono',monospace; font-size:0.82rem; display:inline-flex; align-items:center; gap:6px; color:var(--snow); text-decoration:none; margin-top:auto;}
.stay-card .view-link{transition:gap 0.15s ease;}
.stay-card:hover .view-link{gap:10px;}

/* ===== STAY DETAIL MODAL ===== */
.modal-overlay{
  position:fixed; inset:0; z-index:200; background:rgba(20,28,18,0.72); backdrop-filter:blur(3px);
  display:none; align-items:flex-start; justify-content:center; padding:40px 20px; overflow-y:auto;
}
.modal-overlay.open{display:flex;}
.modal-box{
  background:var(--snow); width:100%; max-width:760px; border-radius:6px; overflow:hidden;
  position:relative; margin:auto;
}
.modal-close{
  position:absolute; top:14px; right:14px; z-index:3; width:36px; height:36px; border-radius:50%;
  background:rgba(0,0,0,0.5); color:var(--snow); border:none; font-size:1.1rem; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
}
.modal-hero{height:260px; background-size:cover; background-position:center; position:relative;}
.modal-hero::after{content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0.1), rgba(0,0,0,0.55));}
.modal-hero .modal-title{position:absolute; left:26px; bottom:20px; z-index:1; color:var(--snow);}
.modal-hero .modal-title .kicker{font-family:'IBM Plex Mono',monospace; font-size:0.7rem; text-transform:uppercase; letter-spacing:0.1em; opacity:0.85;}
.modal-hero .modal-title h3{font-size:2rem; margin:2px 0 0; color:var(--snow);}
.modal-body{padding:28px;}
.modal-price{font-family:'IBM Plex Mono',monospace; font-weight:600; font-size:0.95rem; color:var(--ochre-dark); margin-bottom:14px;}
.modal-body p.desc{font-size:0.95rem; opacity:0.85; margin:0 0 14px; max-width:65ch;}
.modal-includes{margin:0 0 14px; padding-left:20px; font-size:0.9rem; opacity:0.85;}
.modal-includes li{margin-bottom:4px;}
.modal-bestfor{font-size:0.85rem; opacity:0.7; margin-bottom:20px;}
.modal-bestfor b{color:var(--ink); opacity:1;}
.modal-facilities{margin:0 0 20px;}
.modal-facilities h4{font-family:'IBM Plex Mono',monospace; font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--ochre-dark); margin:0 0 12px;}
.facility-grid{display:grid; grid-template-columns:1fr 1fr; gap:8px 16px;}
.facility-item{display:flex; align-items:center; gap:8px; font-size:0.88rem; opacity:0.88;}
.facility-item .tick{color:var(--ochre-dark); font-weight:700; flex-shrink:0;}
@media (max-width:480px){ .facility-grid{grid-template-columns:1fr;} }
.modal-actions{display:flex; gap:12px; flex-wrap:wrap;}

/* pricing calculator */
.calc{margin-top:44px; background:var(--forest); color:var(--cream); border-radius:4px; padding:32px; }
.calc h3{color:var(--snow); font-size:1.5rem;}
.calc p.note{font-size:0.85rem; opacity:0.7; max-width:60ch;}
.calc-row{display:flex; flex-wrap:wrap; align-items:center; gap:16px; padding:16px 0; border-bottom:1px solid rgba(255,255,255,0.14);}
.calc-row .name{flex:1 1 170px; font-weight:600;}
.calc-row .rate{font-family:'IBM Plex Mono',monospace; font-size:0.8rem; font-weight:400; opacity:0.7;}
.calc-field{display:flex; flex-direction:column; gap:5px; width:92px;}
.calc-field label{font-family:'IBM Plex Mono',monospace; font-size:0.64rem; letter-spacing:0.04em; text-transform:uppercase; opacity:0.6;}
.calc-row input[type=number]{
  width:100%; padding:9px 10px; border-radius:2px; border:1px solid rgba(255,255,255,0.25);
  background:rgba(255,255,255,0.08); color:var(--snow); font-family:'IBM Plex Mono',monospace; font-size:0.9rem;
}
.calc-total{display:flex; justify-content:space-between; align-items:center; padding-top:20px; font-family:'IBM Plex Mono',monospace;}
.calc-total .amt{font-size:1.8rem; color:var(--ochre); font-weight:600;}

/* ===== EXPERIENCES ===== */
#experiences{background:var(--forest); color:var(--cream);}
#experiences .eyebrow{color:var(--meadow);}
#experiences .eyebrow::before{background:var(--meadow);}
#experiences .sec-head p{opacity:0.65;}
.exp-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:10px; align-items:stretch;}
.exp-card{
  position:relative; border-radius:4px; overflow:hidden; height:400px;
  background-size:cover; background-position:center;
}
.exp-card::after{content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,16,11,0.35) 0%, rgba(10,16,11,0.68) 45%, rgba(10,16,11,0.96) 100%);}
.exp-card .exp-content{
  position:relative; z-index:1; height:100%; display:flex; flex-direction:column;
  padding:16px;
}
.exp-card h3{font-size:0.98rem; margin:0 0 6px; color:var(--snow);}
.exp-card p{font-size:0.78rem; opacity:0.9; margin:0; color:var(--cream); line-height:1.4;}
.exp-card .price{font-family:'IBM Plex Mono',monospace; font-size:0.75rem; color:var(--ochre); margin:0 0 6px; margin-top:auto; padding-top:12px;}
.exp-card a{font-size:0.76rem; text-decoration:underline; color:var(--snow); opacity:0.95;}
.exp-card.is-comingsoon{cursor:default;}
.coming-soon-badge{
  position:absolute; top:14px; right:-30px; z-index:2; background:var(--ochre); color:var(--forest);
  font-family:'IBM Plex Mono',monospace; font-size:0.66rem; font-weight:600; letter-spacing:0.06em;
  padding:5px 34px; transform:rotate(35deg); box-shadow:0 2px 6px rgba(0,0,0,0.3);
}
.exp-card.is-clickable{cursor:pointer;}
.exp-card .view-details{font-size:0.76rem; text-decoration:underline; color:var(--snow); opacity:0.95; margin-top:auto; padding-top:12px;}
.modal-subhead{font-family:'IBM Plex Mono',monospace; font-size:0.7rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--ochre-dark); margin:18px 0 8px;}
.modal-subhead:first-of-type{margin-top:0;}

/* ===== WHY CHILUX ===== */
#why{background:var(--cream);}
.why-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:0; border-top:1px solid var(--line); border-left:1px solid var(--line);}
.why-item{border-right:1px solid var(--line); border-bottom:1px solid var(--line); padding:24px 20px; position:relative;}
.why-item .why-icon{width:36px; height:36px; border-radius:50%; background:var(--cream-dim); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; font-size:1.1rem; margin-bottom:14px;}
.why-item h3{font-size:1rem; text-transform:none; font-weight:700; margin-bottom:4px;}
.why-item p{font-size:0.82rem; opacity:0.7; margin:0;}

.founder-quote{
  margin-top:56px; padding:44px 40px; background:var(--forest); color:var(--cream);
  border-radius:4px; text-align:center; position:relative;
}
.founder-quote .quote-mark{
  font-family:'Big Shoulders Display',sans-serif; font-size:3.5rem; line-height:1; color:var(--ochre);
  display:block; margin-bottom:4px;
}
.founder-quote p{
  font-family:'Big Shoulders Display',sans-serif; font-weight:600; text-transform:none;
  font-size:clamp(1.25rem,2.6vw,1.7rem); line-height:1.35; max-width:44ch; margin:0 auto 20px;
  color:var(--snow); letter-spacing:0.01em;
}
.founder-quote .founder-name{font-family:'IBM Plex Mono',monospace; font-size:0.82rem; opacity:0.85;}
.founder-quote .founder-name span{color:var(--meadow);}
@media (max-width:560px){ .founder-quote{padding:32px 22px;} }

/* ===== GALLERY ===== */
#gallery{background:var(--forest-2); color:var(--cream);}
#gallery .eyebrow{color:var(--meadow);}
#gallery .eyebrow::before{background:var(--meadow);}

/* ===== SQUARE-CARD CAROUSEL (reused for main Gallery + each stay's photos) ===== */
.carousel{position:relative; margin-top:10px;}
.carousel-track{
  display:flex; gap:12px; overflow-x:auto; scroll-snap-type:x mandatory;
  scrollbar-width:none; -ms-overflow-style:none; padding-bottom:2px;
}
.carousel-track::-webkit-scrollbar{display:none;}
.carousel-card{
  flex:0 0 calc(33.333% - 8px); aspect-ratio:1/1; border-radius:4px; overflow:hidden;
  position:relative; background-size:cover; background-position:center; scroll-snap-align:start;
}

/* ===== LIGHTBOX (expanded photo view, with next/prev like booking.com's photo viewer) ===== */
.lightbox-overlay{
  position:fixed; inset:0; z-index:300; background:rgba(8,12,8,0.94);
  display:none; align-items:center; justify-content:center; padding:20px;
}
.lightbox-overlay.open{display:flex;}
.lightbox-close{
  position:absolute; top:18px; right:18px; z-index:2; width:40px; height:40px; border-radius:50%;
  background:rgba(255,255,255,0.12); color:var(--snow); border:1px solid rgba(255,255,255,0.3);
  font-size:1.2rem; cursor:pointer; display:flex; align-items:center; justify-content:center;
}
.lightbox-close:hover{background:rgba(255,255,255,0.22);}
.lightbox-frame{width:100%; height:100%; display:flex; align-items:center; justify-content:center;}
.lightbox-frame img{
  max-width:88vw; max-height:88vh; object-fit:contain; border-radius:2px;
  box-shadow:0 20px 60px rgba(0,0,0,0.5);
}
.lightbox-nav{
  position:absolute; top:50%; transform:translateY(-50%); width:46px; height:46px; border-radius:50%;
  background:rgba(255,255,255,0.12); color:var(--snow); border:1px solid rgba(255,255,255,0.3);
  font-size:1.4rem; cursor:pointer; display:flex; align-items:center; justify-content:center; z-index:2;
}
.lightbox-nav:hover{background:rgba(255,255,255,0.22);}
.lightbox-nav.prev{left:18px;}
.lightbox-nav.next{right:18px;}
@media (max-width:560px){
  .lightbox-nav{width:38px; height:38px; font-size:1.15rem;}
  .lightbox-nav.prev{left:8px;}
  .lightbox-nav.next{right:8px;}
}
.carousel-btn{
  position:absolute; top:50%; transform:translateY(-50%); width:38px; height:38px; border-radius:50%;
  background:var(--snow); border:1px solid var(--line); cursor:pointer; z-index:5;
  display:flex; align-items:center; justify-content:center; box-shadow:0 4px 12px rgba(0,0,0,0.25);
  font-size:1rem; color:var(--ink);
}
.carousel-btn.prev{left:-18px;}
.carousel-btn.next{right:-18px;}
.carousel-btn:hover{background:var(--ochre); color:var(--snow);}
@media (max-width:900px){
  .carousel-card{flex:0 0 calc(60% - 8px);}
  .carousel-btn.prev{left:-8px;}
  .carousel-btn.next{right:-8px;}
}

/* ===== MOBILE NAV (hamburger + off-canvas menu) ===== */
@media (max-width:900px){
  .hamburger{display:flex;}
  .navlinks{
    position:fixed; top:0; right:-100%; height:100vh; width:78%; max-width:320px;
    background:var(--cream); flex-direction:column; align-items:flex-start;
    padding:90px 28px 28px; gap:22px; transition:right 0.3s ease;
    box-shadow:-10px 0 28px rgba(0,0,0,0.18); z-index:110; overflow-y:auto;
  }
  .navlinks.open{right:0;}
  .navlinks a{font-size:1rem;}
  .nav-close{
    display:block; position:absolute; top:20px; right:20px; background:none; border:none;
    font-size:1.3rem; cursor:pointer; color:var(--ink); padding:6px;
  }
  .nav-scrim{
    display:block; position:fixed; inset:0; background:rgba(22,38,27,0.5);
    z-index:100; opacity:0; pointer-events:none; transition:opacity 0.3s ease;
  }
  .nav-scrim.open{opacity:1; pointer-events:auto;}
  body.nav-open{overflow:hidden;}
}

/* ===== POLICIES ===== */
#policies{background:var(--cream);}
.policy-grid{display:grid; grid-template-columns:1fr 1fr; gap:24px;}
.policy-card{background:var(--snow); border:1px solid var(--line); border-radius:3px; padding:24px;}
.policy-card h3{font-size:1.05rem; text-transform:none; margin-bottom:12px;}
.policy-card ul{margin:0; padding-left:18px; font-size:0.88rem; opacity:0.82;}
.policy-card li{margin-bottom:8px;}
.policy-card .kv{display:flex; justify-content:space-between; padding:8px 0; border-bottom:1px dashed var(--line); font-size:0.9rem;}
.policy-card .kv:last-child{border-bottom:none;}

/* ===== FAQ ===== */
#faq{background:var(--snow);}
.faq-item{border-bottom:1px solid var(--line);}
.faq-q{width:100%; text-align:left; background:none; border:none; cursor:pointer; padding:18px 0; font-family:'Big Shoulders Display',sans-serif; text-transform:none; font-size:1.15rem; font-weight:700; display:flex; justify-content:space-between; align-items:center; color:var(--ink);}
.faq-q .plus{font-family:'IBM Plex Mono',monospace; font-size:1.3rem; color:var(--ochre-dark); transition:transform 0.2s ease;}
.faq-item.open .faq-q .plus{transform:rotate(45deg);}
.faq-a{max-height:0; overflow:hidden; transition:max-height 0.25s ease; font-size:0.94rem; opacity:0.82;}
.faq-a p{padding-bottom:18px; margin:0; max-width:62ch;}
.faq-item.open .faq-a{max-height:220px;}

/* ===== REVIEWS ===== */
#reviews{background:var(--cream-dim);}
.reviews-widget-box{
  background:var(--snow); border:1px solid var(--line); border-radius:6px;
  padding:20px; min-height:120px; width:100%; overflow:hidden;
}
.reviews-note{font-size:0.82rem; opacity:0.6; margin:16px 0 4px; max-width:70ch;}
@media (max-width:560px){
  .reviews-widget-box{padding:12px;}
}

/* ===== CONTACT ===== */
#contact{background:var(--forest); color:var(--cream);}
#contact .eyebrow{color:var(--meadow);}
#contact .eyebrow::before{background:var(--meadow);}
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:40px;}
.contact-list{list-style:none; margin:0; padding:0;}
.contact-list li{padding:14px 0; border-top:1px solid rgba(255,255,255,0.14); display:flex; align-items:center; gap:14px;}
.contact-list li:first-child{border-top:none;}
.contact-list a{text-decoration:underline;}
.contact-icon{
  flex-shrink:0; width:22px; height:22px; display:flex; align-items:center; justify-content:center;
  color:var(--meadow);
}
.contact-icon svg{width:20px; height:20px; display:block;}
.contact-list li.brochure-item{padding-top:18px;}
.contact-list .brochure-btn{
  display:inline-flex; align-items:center; gap:8px; text-decoration:none;
  background:var(--ochre); color:var(--forest); font-weight:600; font-size:0.9rem;
  padding:11px 20px; border-radius:2px; transition:background 0.15s ease, transform 0.15s ease;
}
.contact-list .brochure-btn:hover{background:var(--ochre-dark); transform:translateY(-1px);}
.contact-list .brochure-btn svg{width:18px; height:18px; color:var(--forest);}
iframe.map{border:0; border-radius:3px; width:100%; height:280px; filter:grayscale(0.15) contrast(1.05);}

/* FOOTER */
footer{background:var(--forest-2); color:rgba(243,239,227,0.75); padding:56px 0 26px;}
.foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:30px; padding-bottom:36px; border-bottom:1px solid rgba(255,255,255,0.12);}
.foot-grid h4{font-family:'IBM Plex Mono',monospace; font-size:0.72rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--meadow); margin-bottom:14px;}
.foot-grid ul{list-style:none; margin:0; padding:0;}
.foot-grid li{margin-bottom:8px; font-size:0.86rem;}
.foot-grid a{text-decoration:none; opacity:0.85;}
.foot-grid a:hover{opacity:1; text-decoration:underline;}
.foot-brand .brand{color:var(--snow);}
.foot-bottom{display:flex; justify-content:space-between; padding-top:22px; font-size:0.78rem; flex-wrap:wrap; gap:10px;}

/* WHATSAPP FLOAT */
.wa-float{position:fixed; bottom:22px; right:22px; z-index:90; background:var(--forest); color:var(--cream); border-radius:50px; padding:14px 20px; text-decoration:none; font-weight:600; font-size:0.88rem; box-shadow:0 6px 18px rgba(0,0,0,0.3); display:flex; align-items:center; gap:8px;}

@media (max-width: 900px){
  .stay-grid{grid-template-columns:1fr;}
  .exp-grid{grid-template-columns:repeat(2,1fr);}
  .why-grid{grid-template-columns:repeat(2,1fr);}
  .contact-grid, .policy-grid{grid-template-columns:1fr;}
  .calc-row{gap:10px;}
  .calc-field{width:80px;}
  .foot-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width: 560px){
  .exp-grid{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr;}
  .hero .wrap{padding:110px 20px 60px;}
  section{padding:52px 0;}
  .modal-overlay{padding:0;}
  .modal-box{width:100%; max-width:100%; height:100%; max-height:100%; margin:0; border-radius:0; overflow-y:auto;}
  .modal-hero{height:170px;}
  .modal-hero .modal-title h3{font-size:1.5rem;}
  .modal-body{padding:20px;}
  .modal-actions{flex-direction:column; align-items:stretch;}
  .modal-actions .btn{justify-content:center;}
  .carousel-card{flex:0 0 calc(72% - 8px);}
  .stay-card{height:380px;}
}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} *{transition:none !important;} }
