@font-face{
  font-family:'The Artisan';
  src:url('../fonts/the-artisan.otf') format('opentype');
  font-weight:400;
  font-style:normal;
  font-display:swap;
}
:root{
  --blue:#8CA2B3;
  --blue-dark:#1E4388;
  --grey:#C5C5D1;
  --orange:#DBA256;
  --orange-dark:#B87F35;
  --green:#7A992D;
  --sand:#F6F5F1;
  --sand-deep:#E7E4DB;
  --cream:#FBFAF7;
  --ink:#2E3138;
  --ink-soft:#63676F;
  --radius:2px;
  --maxw:1180px;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Montserrat', sans-serif;
  font-weight:300;
  color:var(--ink);
  background:var(--cream);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img, .ph{display:block; width:100%; height:100%; object-fit:cover;}
a{color:inherit; text-decoration:none;}
ul{list-style:none;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 28px;}
h1,h2,h3,h4{
  font-family:'Julius Sans One', sans-serif;
  font-weight:400;
  color:var(--blue-dark);
  letter-spacing:.02em;
}
.eyebrow{
  font-family:'Montserrat', sans-serif;
  font-size:.72rem;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--orange-dark);
  font-weight:500;
  display:inline-block;
  margin-bottom:14px;
}
.btn{
  display:inline-flex; align-items:center; gap:10px;
  padding:14px 30px;
  font-size:.76rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-weight:500;
  border:1px solid var(--blue-dark);
  color:var(--blue-dark);
  background:transparent;
  border-radius:var(--radius);
  transition:.3s;
  cursor:pointer;
}
.btn:hover{background:var(--blue-dark); color:var(--cream);}
.btn.solid{background:var(--orange); border-color:var(--orange); color:#fff;}
.btn.solid:hover{background:var(--orange-dark); border-color:var(--orange-dark);}
.btn.ghost-light{border-color:rgba(255,255,255,.6); color:#fff;}
.btn.ghost-light:hover{background:#fff; color:var(--blue-dark);}

.script-accent{
  font-family:'The Artisan', cursive;
  font-size:1.9rem;
  color:var(--orange);
  display:inline-block;
  line-height:1;
}
.hero-content .script-accent{margin-bottom:6px; color:var(--orange);}
.page-hero-content .script-accent{margin-bottom:4px;}
.foot-tagline-script{
  font-family:'The Artisan', cursive;
  font-size:1.5rem;
  color:rgba(251,250,247,.85);
  margin-top:6px;
  display:block;
}

/* ---------- decorative palm watermark ---------- */
.decor-host{position:relative; z-index:0; overflow:hidden;}
.decor-palm{
  position:absolute;
  width:560px; max-width:65%;
  height:auto;
  object-fit:contain;
  opacity:.9;
  pointer-events:none;
  z-index:-1;
}
.decor-palm.tr{top:-60px; right:-80px;}
.decor-palm.bl{bottom:-60px; left:-100px;}
.decor-palm.l{left:10px; top:50%; transform:translateY(-50%);}
.decor-palm.r{right:10px; top:50%; transform:translateY(-50%);}

.ph{position:relative; overflow:hidden; background:var(--grey);}
.ph img{transition:transform .6s ease;}
.room-card:hover .ph img, .act-card:hover .ph img, .room-detail-media:hover .ph img{transform:scale(1.06);}

/* ---------- Header ---------- */
header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  padding:20px 0;
  transition:.35s;
}
header::before{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,.32) 0%, rgba(0,0,0,0) 100%);
  z-index:-1;
  pointer-events:none;
  transition:opacity .35s;
}
header.scrolled, header.solid{
  background:var(--cream);
  padding:10px 0;
  box-shadow:0 2px 18px rgba(0,0,0,.08);
}
header.scrolled::before, header.solid::before{opacity:0;}
header .wrap{display:flex; align-items:center; justify-content:space-between;}
.logo-mark{display:flex; align-items:center; gap:12px;}
.logo-mark img{height:130px; width:auto; display:block; transition:height .4s cubic-bezier(.4,0,.2,1);}
header.scrolled .logo-mark img, header.solid .logo-mark img{height:74px;}
.logo-mark .logo-img-light{display:block;}
.logo-mark .logo-img-dark{display:none;}
header.scrolled .logo-mark .logo-img-light, header.solid .logo-mark .logo-img-light{display:none;}
header.scrolled .logo-mark .logo-img-dark, header.solid .logo-mark .logo-img-dark{display:block;}
nav ul{display:flex; gap:34px;}
nav a{
  font-size:.76rem; letter-spacing:.14em; text-transform:uppercase;
  color:#fff; font-weight:500; position:relative; white-space:nowrap;
}
@media (max-width:1500px){
  nav ul{gap:18px;}
  .nav-right{gap:14px;}
  nav a{font-size:.68rem; letter-spacing:.07em;}
}
header.scrolled nav a, header.solid nav a{color:var(--ink);}
nav a.current{color:var(--orange);}
header.scrolled nav a.current, header.solid nav a.current{color:var(--orange-dark);}
nav a::after{
  content:""; position:absolute; left:0; bottom:-6px; width:0; height:1px;
  background:var(--orange); transition:.3s;
}
nav a:hover::after{width:100%;}
.nav-right{display:flex; align-items:center; gap:26px;}
.lang-switch-wrap{position:relative;}
.lang-switch-btn{
  font-family:'Montserrat',sans-serif; font-size:.74rem; letter-spacing:.1em; font-weight:600;
  color:#fff; background:none; border:1px solid rgba(255,255,255,.5); border-radius:2px;
  padding:6px 10px; transition:.25s; cursor:pointer; display:flex; align-items:center; gap:5px;
}
.lang-switch-btn::after{content:"▾"; font-size:.6rem; transform:translateY(1px);}
.lang-switch-btn:hover{background:#fff; color:var(--blue-dark);}
header.scrolled .lang-switch-btn, header.solid .lang-switch-btn{color:var(--ink); border-color:var(--sand-deep);}
header.scrolled .lang-switch-btn:hover, header.solid .lang-switch-btn:hover{background:var(--blue-dark); color:#fff; border-color:var(--blue-dark);}
.lang-switch-menu{
  position:absolute; top:calc(100% + 8px); right:0; background:var(--cream);
  border-radius:var(--radius); box-shadow:0 14px 34px rgba(0,0,0,.2);
  padding:6px; min-width:150px; display:none; flex-direction:column; z-index:60;
}
.lang-switch-menu.open{display:flex;}
.lang-switch-menu a{
  padding:9px 14px; font-size:.8rem; color:var(--ink); border-radius:var(--radius);
  transition:.15s; white-space:nowrap;
}
.lang-switch-menu a:hover{background:var(--sand);}
.lang-switch-menu a.current{color:var(--orange-dark); font-weight:600;}
.mobile-lang-row{display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin-top:8px;}
.mobile-lang-row a{
  font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; font-weight:600;
  color:var(--cream); border:1px solid rgba(251,250,247,.4); padding:7px 13px; border-radius:var(--radius);
}
.mobile-lang-row a.current{background:var(--orange-dark); border-color:var(--orange-dark); color:#fff;}
.burger{display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:0;}
.burger span{width:24px; height:2px; background:#fff;}
header.scrolled .burger span, header.solid .burger span{background:var(--blue-dark);}

/* ---------- Scroll-expand hero ---------- */
.scroll-hero{
  position:relative; height:100vh; height:100dvh; min-height:600px;
  overflow:hidden; background:var(--blue-dark);
  display:flex; align-items:center; justify-content:center;
}
.scroll-hero-bg{position:absolute; inset:0; z-index:0; transition:opacity .1s linear;}
.scroll-hero-bg img{width:100%; height:100%; object-fit:cover; display:block;}
.scroll-hero-bg::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(18,22,17,.45) 0%, rgba(18,22,17,.62) 100%);
}
.scroll-hero-media{
  position:relative;
  width:320px; height:420px;
  max-width:95vw; max-height:85vh;
  border-radius:16px; overflow:hidden;
  box-shadow:0 30px 80px rgba(0,0,0,.4);
  transition:border-radius .15s linear;
}
.scroll-hero-media img{width:100%; height:100%; object-fit:cover; display:block;}
.scroll-hero-shade{position:absolute; inset:0; background:rgba(18,22,17,.4);}
.scroll-hero-title{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  display:flex; gap:.35em; pointer-events:none; z-index:5;
  font-family:'Julius Sans One',sans-serif;
  font-size:clamp(2.1rem,7vw,5.2rem);
  color:#fff; letter-spacing:.1em; white-space:nowrap;
  text-shadow:0 4px 30px rgba(0,0,0,.45);
}
.scroll-hero-word{display:inline-block;}
.scroll-hero-hint{
  position:absolute; bottom:34px; left:50%; transform:translateX(-50%);
  color:#fff; display:flex; flex-direction:column; align-items:center; gap:8px;
  font-size:.68rem; letter-spacing:.24em; text-transform:uppercase; opacity:.85;
  transition:opacity .2s; z-index:5;
}
.scroll-hero-hint svg{animation:scrollHeroBounce 1.8s ease-in-out infinite;}
@keyframes scrollHeroBounce{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(6px);}
}
.hero-reveal{background:var(--cream); padding:100px 0 70px;}
.hero-reveal .hero-content{max-width:640px;}
.hero-reveal .hero-content .eyebrow{color:var(--orange-dark);}
.hero-reveal .hero-content h1{font-size:clamp(2rem,4.6vw,3.2rem); line-height:1.15; color:var(--blue-dark);}
.hero-reveal .hero-content p{margin:20px 0 28px; font-size:1.02rem; color:var(--ink-soft); max-width:520px; font-weight:300;}
.hero-reveal .hero-content .btn{border-color:var(--blue-dark); color:var(--blue-dark);}
.hero-reveal .hero-content .btn:hover{background:var(--blue-dark); color:var(--cream);}
@media (max-width:760px){
  .scroll-hero-media{width:220px; height:300px;}
  .hero-reveal{padding:70px 0 50px;}
}

/* ---------- Orbit-morph hero (alternative) ---------- */
.orbit-hero{
  position:relative; height:100vh; height:100dvh; min-height:640px;
  overflow:hidden; background:var(--cream);
}
.orbit-stage{position:absolute; inset:0; z-index:1;}
.orbit-card{
  position:absolute; top:50%; left:50%; z-index:1;
  width:70px; height:95px;
  margin:-47.5px 0 0 -35px;
  border-radius:10px; overflow:hidden;
  box-shadow:0 10px 30px rgba(0,0,0,.25);
  transition:transform 1.1s cubic-bezier(.22,1,.36,1), opacity .8s ease;
  will-change:transform;
}
.orbit-card.scrubbing{transition:opacity .2s ease;}
.orbit-card img{width:100%; height:100%; object-fit:cover; display:block;}
.orbit-card-label{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  background:rgba(30,67,136,.92); color:#fff; font-size:.58rem; text-align:center;
  letter-spacing:.05em; text-transform:uppercase; padding:6px; line-height:1.3;
  opacity:0; transition:opacity .3s;
}
.orbit-card:hover .orbit-card-label{opacity:1;}

.orbit-intro-text{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  text-align:center; pointer-events:none; z-index:20;
  transition:opacity .6s ease;
  padding:36px 60px;
}
.orbit-intro-text::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:radial-gradient(ellipse at center, var(--cream) 0%, rgba(251,250,247,.85) 55%, rgba(251,250,247,0) 78%);
}
.orbit-intro-text h1{font-family:'Julius Sans One',sans-serif; font-size:clamp(2rem,5vw,3.4rem); color:var(--blue-dark);}
.orbit-intro-text p{margin-top:14px; font-size:.68rem; letter-spacing:.24em; text-transform:uppercase; color:var(--ink-soft);}

.orbit-reveal-text{
  position:absolute; top:12%; left:50%; transform:translate(-50%,10px);
  text-align:center; max-width:600px; width:90%; padding:30px 20px;
  opacity:0; pointer-events:none; z-index:20;
  transition:opacity .5s ease, transform .5s ease;
}
.orbit-reveal-text::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:radial-gradient(ellipse at center, var(--cream) 0%, rgba(251,250,247,.85) 55%, rgba(251,250,247,0) 80%);
}
.orbit-reveal-text.visible{opacity:1; transform:translate(-50%,0); pointer-events:auto;}
.orbit-reveal-text .eyebrow{color:var(--orange-dark);}
.orbit-reveal-text h2{font-size:clamp(1.7rem,3.8vw,2.5rem); margin:10px 0 16px;}
.orbit-reveal-text p{color:var(--ink-soft); margin-bottom:22px;}
@media (max-width:760px){
  .orbit-card{width:50px; height:68px; margin:-34px 0 0 -25px;}
}

/* ---------- Hero ---------- */
.hero{
  position:relative; height:100vh; min-height:640px;
  display:flex; align-items:center;
}
.hero .ph{position:absolute; inset:0; z-index:-1;}
.hero::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(30,34,26,.28) 0%, rgba(24,28,22,.5) 70%, rgba(20,24,19,.72) 100%);
  z-index:-1;
}
.hero-content{color:#fff; max-width:640px;}
.hero-content .eyebrow{color:var(--orange);}
.hero-content h1{font-size:clamp(2.4rem, 5.6vw, 4rem); line-height:1.12; color:#fff;}
.hero-content p{margin:22px 0 30px; font-size:1.05rem; color:rgba(255,255,255,.9); max-width:520px; font-weight:300;}

/* ---------- Page hero (sub-pages) ---------- */
.page-hero{
  position:relative; height:56vh; min-height:400px;
  display:flex; align-items:flex-end;
  padding-bottom:60px;
}
.page-hero .ph{position:absolute; inset:0; z-index:-1;}
.page-hero::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(30,34,26,.25) 0%, rgba(20,24,19,.68) 100%);
  z-index:-1;
}
.page-hero-content{color:#fff;}
.page-hero-content .eyebrow{color:var(--orange);}
.page-hero-content h1{font-size:clamp(2.2rem, 4.6vw, 3.4rem); color:#fff;}
.breadcrumb{margin-top:14px; font-size:.78rem; letter-spacing:.08em; color:rgba(255,255,255,.75);}
.breadcrumb a{color:rgba(255,255,255,.9);}
.breadcrumb a:hover{color:var(--orange);}

/* booking bar */
.booking-bar{
  position:relative; z-index:5;
  background:var(--cream);
  margin-top:-52px;
  box-shadow:0 20px 50px rgba(0,0,0,.18);
  border-radius:var(--radius);
}
.booking-bar .wrap{
  display:grid;
  grid-template-columns:1fr 1fr 1fr auto;
  gap:0;
}
.bf{
  padding:22px 26px; border-right:1px solid var(--sand-deep);
}
.bf:last-child{border-right:none; padding:0;}
.bf label{display:block; font-size:.66rem; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:6px;}
.bf input, .bf select{
  border:none; background:transparent; font-family:'Montserrat',sans-serif; font-size:.95rem; color:var(--ink); width:100%;
}
.bf input:focus, .bf select:focus{outline:none;}
.booking-bar .btn{
  height:100%; width:100%; border-radius:0; border:none; letter-spacing:.2em;
}

/* ---------- section basics ---------- */
section{padding:110px 0;}
.section-head{max-width:640px; margin-bottom:56px;}
.section-head.center{margin-left:auto; margin-right:auto; text-align:center;}
.section-head h2{font-size:clamp(1.9rem,3.4vw,2.7rem); line-height:1.2;}
.section-head p{color:var(--ink-soft); margin-top:16px; font-size:1.02rem;}

/* ---------- Welcome ---------- */
.welcome{background:var(--cream);}
.welcome .grid{display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center;}
.welcome-media{position:relative; height:520px;}
.welcome-media .ph{border-radius:var(--radius); height:100%;}
.welcome-media .ph.small{
  position:absolute; width:56%; height:230px; right:-36px; bottom:-40px;
  border:8px solid var(--cream); box-shadow:0 20px 40px rgba(0,0,0,.18);
}
.welcome-text{overflow-x:hidden;}
.converge-text{display:inline-block;}
.converge-char{display:inline-block; will-change:transform;}
.converge-char.space{width:.28em;}
.welcome-text p{color:var(--ink-soft); margin-bottom:18px;}
.stat-row{display:flex; gap:40px; margin-top:34px; padding-top:30px; border-top:1px solid var(--sand-deep);}
.stat b{display:block; font-family:'Julius Sans One',serif; font-size:2rem; color:var(--orange-dark); font-weight:400;}
.stat span{font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft);}

/* ---------- Rooms grid (overview cards) ---------- */
.rooms{background:var(--sand);}
.room-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:26px;}
.room-grid.grid-5{grid-template-columns:repeat(5,1fr);}
@media (max-width:1300px){.room-grid.grid-5{grid-template-columns:repeat(3,1fr);}}
@media (max-width:760px){.room-grid.grid-5{grid-template-columns:1fr;}}
.room-card{background:var(--cream); border-radius:var(--radius); overflow:hidden; box-shadow:0 10px 30px rgba(37,32,20,.06); transition:.35s;}
.room-card:hover{transform:translateY(-6px); box-shadow:0 20px 40px rgba(37,32,20,.14);}
.room-card .ph{height:230px;}
.room-card-body{padding:24px;}
.room-card-body .tag{font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:var(--orange-dark); font-weight:500;}
.room-card-body h3{font-size:1.35rem; margin:8px 0 10px;}
.room-meta{display:flex; gap:14px; font-size:.78rem; color:var(--ink-soft); margin-bottom:12px; flex-wrap:wrap;}
.breakfast-note{font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; color:var(--orange-dark); font-weight:600; margin:-6px 0 14px;}
.room-card-body p.desc{font-size:.9rem; color:var(--ink-soft); margin-bottom:16px;}
.room-card-body .btn{width:100%; justify-content:center; font-size:.7rem; padding:12px;}

/* ---------- Room detail rows (rooms.html) ---------- */
.room-detail{background:var(--cream);}
.room-detail:nth-child(even){background:var(--sand);}
.room-detail-grid{display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center;}
.room-detail:nth-child(even) .room-detail-grid{direction:rtl;}
.room-detail:nth-child(even) .room-detail-grid > *{direction:ltr;}
.room-detail-media{height:460px; border-radius:var(--radius); overflow:hidden;}
.room-detail-text h3{font-size:clamp(1.7rem,3vw,2.3rem); margin-bottom:14px;}
.room-detail-text p{color:var(--ink-soft); margin-bottom:20px;}
.amenity-list{display:grid; grid-template-columns:1fr 1fr; gap:12px 20px; margin:24px 0 30px;}
.amenity-list li{font-size:.86rem; color:var(--ink-soft); display:flex; align-items:center; gap:10px;}
.amenity-list li::before{content:""; width:5px; height:5px; border-radius:50%; background:var(--orange); flex-shrink:0;}

/* ---------- Room photo gallery ---------- */
.room-gallery-main{cursor:zoom-in; position:relative;}
.room-gallery-count{
  position:absolute; bottom:16px; right:16px; z-index:2;
  background:rgba(20,24,19,.6); color:#fff; font-size:.74rem; letter-spacing:.06em;
  padding:7px 14px; border-radius:20px; display:flex; align-items:center; gap:7px;
  pointer-events:none; backdrop-filter:blur(2px);
}
.room-gallery-count svg{width:15px; height:15px; flex-shrink:0;}
.room-gallery-thumbs{display:flex; gap:10px; margin-top:14px;}
.room-gallery-thumbs .thumb{
  width:76px; height:76px; padding:0; border-radius:var(--radius); overflow:hidden;
  border:2px solid transparent; opacity:.6; cursor:pointer; background:none; flex-shrink:0;
  transition:opacity .25s, border-color .25s;
}
.room-gallery-thumbs .thumb img{width:100%; height:100%; object-fit:cover; display:block;}
.room-gallery-thumbs .thumb:hover{opacity:.9;}
.room-gallery-thumbs .thumb.active{opacity:1; border-color:var(--orange);}
@media (max-width:760px){
  .room-gallery-thumbs .thumb{width:58px; height:58px;}
}

/* ---------- Lightbox ---------- */
.lightbox{
  position:fixed; inset:0; z-index:300; background:rgba(20,24,19,.94);
  display:flex; align-items:center; justify-content:center;
  opacity:0; pointer-events:none; transition:opacity .3s ease;
}
.lightbox.open{opacity:1; pointer-events:auto;}
.lightbox-img-wrap{max-width:88vw; max-height:82vh;}
.lightbox-img-wrap img{max-width:88vw; max-height:82vh; width:auto; height:auto; object-fit:contain; display:block; border-radius:3px;}
.lightbox-close, .lightbox-prev, .lightbox-next{
  position:absolute; background:rgba(251,250,247,.1); border:1px solid rgba(251,250,247,.3);
  color:#fff; cursor:pointer; display:flex; align-items:center; justify-content:center;
  border-radius:50%; transition:.25s;
}
.lightbox-close:hover, .lightbox-prev:hover, .lightbox-next:hover{background:var(--orange); border-color:var(--orange);}
.lightbox-close{top:24px; right:24px; width:44px; height:44px;}
.lightbox-prev, .lightbox-next{top:50%; transform:translateY(-50%); width:52px; height:52px;}
.lightbox-prev{left:20px;}
.lightbox-next{right:20px;}
.lightbox-counter{
  position:absolute; bottom:24px; left:50%; transform:translateX(-50%);
  color:rgba(251,250,247,.8); font-size:.78rem; letter-spacing:.1em;
}
@media (max-width:760px){
  .lightbox-prev, .lightbox-next{width:40px; height:40px;}
  .lightbox-close{width:36px; height:36px; top:14px; right:14px;}
}

/* ---------- Duo image grid (chef section, restaurant.html) ---------- */
.duo-grid{display:grid; grid-template-columns:1fr 1fr; gap:26px;}
.duo-grid .ph{height:360px; border-radius:var(--radius); overflow:hidden;}
@media (max-width:760px){
  .duo-grid{grid-template-columns:1fr; gap:16px;}
  .duo-grid .ph{height:280px;}
}

/* ---------- Food gallery (restaurant.html) ---------- */
.food-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
.food-card{position:relative; height:400px; border-radius:var(--radius); overflow:hidden; cursor:zoom-in;}
.food-card .ph{position:absolute; inset:0;}
.food-card::after{content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(15,18,12,.55) 0%, rgba(15,18,12,0) 45%); pointer-events:none;}
@media (max-width:1020px){.food-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:760px){.food-grid{grid-template-columns:1fr;} .food-card{height:320px;}}
.food-card-extra{display:none;}

/* ---------- Menu download ---------- */
.menu-download{
  display:flex; align-items:center; gap:20px; background:var(--sand);
  border:1px solid var(--sand-deep); border-radius:var(--radius); padding:30px 36px; margin-top:50px;
  flex-wrap:wrap;
}
.menu-download .icon{width:44px; height:44px; color:var(--orange-dark); flex-shrink:0;}
.menu-download-text{flex:1; min-width:200px;}
.menu-download-text h4{font-size:1.05rem; margin-bottom:4px;}
.menu-download-text p{font-size:.85rem; color:var(--ink-soft);}
.menu-download-links{display:flex; gap:10px; flex-wrap:wrap;}
.menu-download-links .btn{font-size:.68rem; padding:11px 18px;}

/* ---------- Khla Spices floating showcase (khla-spices.html) ---------- */
.spice-showcase{
  position:relative; display:flex; justify-content:center; align-items:flex-end;
  gap:70px; padding:70px 20px 40px; flex-wrap:wrap; overflow:hidden;
}
.spice-showcase::before{
  content:""; position:absolute; inset:-10% -5%; z-index:-1;
  background:radial-gradient(ellipse at center, var(--sand) 0%, var(--cream) 70%);
}
.spice-float{width:210px; max-width:32vw; height:260px; display:flex; align-items:flex-end; justify-content:center;}
.spice-float .float-inner{animation:spiceFloat 4.5s ease-in-out infinite; height:100%; display:flex; align-items:flex-end; justify-content:center;}
.spice-float:nth-child(2) .float-inner{animation-delay:.6s;}
.spice-float:nth-child(3) .float-inner{animation-delay:1.2s;}
.spice-float:nth-child(4) .float-inner{animation-delay:1.8s;}
.spice-float img{width:auto; height:100%; max-width:100%; object-fit:contain; display:block; filter:drop-shadow(0 30px 26px rgba(45,35,20,.22));}
@keyframes spiceFloat{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(-16px);}
}
@media (max-width:760px){
  .spice-showcase{gap:24px; padding:50px 16px 30px;}
  .spice-float{width:120px; max-width:28vw; height:150px;}
}

/* ---------- Khla Spices scrolling marquee ---------- */
.spice-marquee{position:relative; background:var(--sand); overflow:hidden; padding:70px 0 60px;}
.spice-marquee-tagline{
  font-family:'Montserrat',sans-serif; font-weight:300;
  font-size:clamp(1.3rem,3.2vw,1.9rem); color:var(--ink); line-height:1.5;
  text-align:center; margin:8px auto 0; max-width:640px; padding:0 20px;
}
.spice-marquee-strip{
  position:relative; width:100%; height:240px;
  -webkit-mask-image:linear-gradient(to right, transparent, black 6%, black 94%, transparent);
  mask-image:linear-gradient(to right, transparent, black 6%, black 94%, transparent);
}
.spice-marquee-track{
  position:absolute; top:0; left:0; display:flex; gap:18px; align-items:center;
  animation:spiceMarqueeScroll 50s linear infinite;
}
@keyframes spiceMarqueeScroll{from{transform:translateX(0);} to{transform:translateX(-50%);}}
.spice-marquee-card{
  flex:0 0 auto; width:172px; height:215px; border-radius:var(--radius); overflow:hidden;
  box-shadow:0 10px 26px rgba(30,34,26,.16);
}
.spice-marquee-card img{width:100%; height:100%; object-fit:cover; display:block;}
.spice-marquee-card:nth-child(3n+1){transform:rotate(-3deg);}
.spice-marquee-card:nth-child(3n+2){transform:rotate(2deg);}
.spice-marquee-card:nth-child(3n){transform:rotate(-1.5deg);}
.spice-marquee:hover .spice-marquee-track{animation-play-state:paused;}
@media (max-width:760px){
  .spice-marquee-strip{height:160px;}
  .spice-marquee-card{width:120px; height:150px;}
}

/* ---------- Khla Spices tab (restaurant.html full menu) ---------- */
.spice-intro{max-width:680px; margin:0 auto 50px; text-align:center;}
.spice-intro p{color:var(--ink-soft); font-size:1rem; line-height:1.75;}
.spice-grid{display:grid; grid-template-columns:1fr 1fr 1.3fr; gap:24px; margin-bottom:44px;}
.spice-card{border-radius:var(--radius); overflow:hidden; text-align:center;}
.spice-card .ph{height:280px; background:var(--sand);}
.spice-card .ph img{object-fit:contain; padding:20px;}
.spice-card.photo .ph{background:none;}
.spice-card.photo .ph img{object-fit:cover; padding:0;}
.spice-card span{display:block; margin-top:14px; font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft);}
.spice-cta{display:flex; gap:16px; justify-content:center; flex-wrap:wrap;}
@media (max-width:1020px){.spice-grid{grid-template-columns:1fr 1fr;} .spice-card.photo{grid-column:1/-1;} .spice-card.photo .ph{height:320px;}}
@media (max-width:760px){.spice-grid{grid-template-columns:1fr;} .spice-card.photo{grid-column:auto;}}

/* ---------- Menu tabs (restaurant.html full menu) ---------- */
.menu-tabs{display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin-bottom:50px;}
.menu-tab{
  padding:11px 24px; border:1px solid var(--sand-deep); background:var(--cream); border-radius:30px;
  font-family:'Montserrat',sans-serif; font-size:.76rem; letter-spacing:.1em; text-transform:uppercase;
  font-weight:500; color:var(--ink-soft); cursor:pointer; transition:.25s;
}
.menu-tab:hover{border-color:var(--orange); color:var(--orange-dark);}
.menu-tab.active{background:var(--blue-dark); border-color:var(--blue-dark); color:#fff;}
.menu-panel{display:none;}
.menu-panel.active{display:block;}
.menu-panel-grid{display:grid; grid-template-columns:1fr 1fr; gap:40px 60px;}
.menu-panel .menu-list em{font-style:italic; color:var(--ink-soft); font-size:.86em;}
@media (max-width:760px){
  .menu-panel-grid{grid-template-columns:1fr; gap:40px;}
  .menu-tabs{gap:8px;}
  .menu-tab{padding:9px 16px; font-size:.68rem;}
}

/* ---------- Services ---------- */
.services{background:var(--blue-dark); color:var(--cream);}
.services .section-head h2{color:var(--cream);}
.services .section-head p{color:rgba(251,250,247,.68);}
.serv-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:2px; background:rgba(251,250,247,.12);}
.serv-card{background:var(--blue-dark); padding:40px 30px; text-align:center;}
.serv-card .icon{width:42px; height:42px; margin:0 auto 20px; color:var(--orange);}
.serv-card h4{color:var(--cream); font-size:1.2rem; margin-bottom:10px;}
.serv-card p{font-size:.86rem; color:rgba(251,250,247,.66);}

/* ---------- Activities ---------- */
.activities{background:var(--cream);}
.act-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:26px;}
.act-card{position:relative; height:340px; border-radius:var(--radius); overflow:hidden;}
.act-card .ph{position:absolute; inset:0;}
.act-card::after{content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(15,18,12,.82) 0%, rgba(15,18,12,.1) 55%);}
.act-card-body{position:absolute; left:0; right:0; bottom:0; padding:22px; z-index:2;}
.act-card-body .eyebrow{color:var(--orange); margin-bottom:6px;}
.act-card-body h4{color:#fff; font-size:1.15rem; margin-bottom:6px;}
.act-card-body p{color:rgba(255,255,255,.8); font-size:.82rem;}
.act-grid.tall .act-card{height:420px;}
.act-grid.grid-3{grid-template-columns:repeat(3,1fr);}
@media (max-width:1020px){.act-grid.grid-3{grid-template-columns:repeat(2,1fr);}}
@media (max-width:760px){.act-grid.grid-3{grid-template-columns:1fr;}}

/* ---------- Info cards (Beyond the Lodge) ---------- */
.info-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
.info-card{background:var(--sand); border:1px solid var(--sand-deep); border-radius:var(--radius); padding:32px;}
.info-card .eyebrow{color:var(--orange-dark);}
.info-card h4{font-size:1.15rem; margin-bottom:10px;}
.info-card p{font-size:.88rem; color:var(--ink-soft);}

/* ---------- Menu list (restaurant.html) ---------- */
.menu-block{background:var(--cream); border:1px solid var(--sand-deep); border-radius:var(--radius); padding:40px;}
.menu-block h4{font-size:1.1rem; margin-bottom:18px; display:flex; align-items:center; gap:10px;}
.menu-block h4 .eyebrow{margin:0;}
.menu-list li{display:flex; justify-content:space-between; gap:16px; padding:12px 0; border-bottom:1px dashed var(--sand-deep); font-size:.92rem; color:var(--ink-soft);}
.menu-list li:last-child{border-bottom:none;}
.menu-list li span:first-child{color:var(--ink); font-weight:400;}
.menu-note{margin-top:18px; font-size:.78rem; color:var(--ink-soft); font-style:italic;}

/* ---------- Trust / reviews band ---------- */
.trust{background:var(--sand); text-align:center;}
.trust .section-head{margin-bottom:38px;}
.trust-badges{display:flex; justify-content:center; gap:18px; flex-wrap:wrap;}
.trust-badges a{
  padding:16px 30px; background:var(--cream); border:1px solid var(--sand-deep);
  font-size:.82rem; letter-spacing:.06em; color:var(--ink); transition:.25s;
  border-radius:var(--radius);
}
.trust-badges a:hover{border-color:var(--orange); color:var(--orange-dark);}
.trust-note{margin-top:26px; font-size:.85rem; color:var(--ink-soft); max-width:520px; margin-left:auto; margin-right:auto;}
.trust-widget{margin-top:40px; max-width:960px; margin-left:auto; margin-right:auto;}
.trust-widget-fallback{display:none; text-align:center; color:var(--ink-soft); font-size:.85rem; padding:10px 0;}

/* ---------- Cookie consent banner ---------- */
.cookie-banner{
  position:fixed; left:0; right:0; bottom:0; z-index:999;
  background:var(--ink); color:var(--cream);
  padding:20px 24px; display:flex; align-items:center; justify-content:center; gap:26px;
  flex-wrap:wrap; box-shadow:0 -6px 24px rgba(0,0,0,.18);
  transform:translateY(110%); transition:transform .5s ease;
}
.cookie-banner.show{transform:translateY(0);}
.cookie-banner p{margin:0; font-size:.82rem; line-height:1.5; max-width:620px; color:var(--cream);}
.cookie-banner .cookie-actions{display:flex; gap:12px; flex-shrink:0;}
.cookie-banner button{
  font-family:'Montserrat',sans-serif; font-size:.7rem; letter-spacing:.07em; text-transform:uppercase;
  padding:11px 22px; border-radius:var(--radius); cursor:pointer; border:1px solid transparent;
  transition:opacity .2s; white-space:nowrap;
}
.cookie-banner .btn-accept{background:var(--orange-dark); color:var(--cream);}
.cookie-banner .btn-decline{background:transparent; color:var(--cream); border-color:rgba(251,250,247,.4);}
.cookie-banner button:hover{opacity:.82;}
@media (max-width:640px){
  .cookie-banner{padding:18px; text-align:center; justify-content:center;}
  .cookie-banner p{max-width:100%;}
  .cookie-banner .cookie-actions{width:100%; justify-content:center;}
}

/* ---------- Contact page ---------- */
.contact-grid{display:grid; grid-template-columns:.85fr 1.15fr; gap:70px;}
.contact-info h4{font-size:1rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink); font-family:'Montserrat',sans-serif; font-weight:500; margin:26px 0 8px;}
.contact-info h4:first-child{margin-top:0;}
.contact-info p, .contact-info a{color:var(--ink-soft); font-size:.95rem;}
.contact-info a:hover{color:var(--orange-dark);}
.map-link{
  margin-top:30px; display:block; height:220px; border-radius:var(--radius);
  background:linear-gradient(135deg, var(--blue), var(--blue-dark));
  position:relative; overflow:hidden;
}
.map-link .map-overlay{
  position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center;
  color:#fff; text-align:center; padding:20px; transition:.3s;
}
.map-link:hover .map-overlay{background:rgba(0,0,0,.12);}
.map-link .map-overlay strong{font-family:'Julius Sans One',sans-serif; font-size:1.2rem; margin-bottom:6px;}
.map-link .map-overlay span{font-size:.78rem; letter-spacing:.06em; opacity:.85;}

.form-card{background:var(--sand); border:1px solid var(--sand-deep); border-radius:var(--radius); padding:44px;}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-bottom:20px;}
.field label{display:block; font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:8px;}
.field input, .field select, .field textarea{
  width:100%; padding:13px 14px; border:1px solid var(--sand-deep); background:var(--cream);
  font-family:'Montserrat',sans-serif; font-size:.92rem; color:var(--ink); border-radius:var(--radius);
}
.field textarea{resize:vertical; min-height:120px;}
.field input:focus, .field select:focus, .field textarea:focus{outline:none; border-color:var(--orange);}
.form-note{margin-top:16px; font-size:.78rem; color:var(--ink-soft);}
.form-success{font-size:1.05rem; color:var(--blue-dark); text-align:center; padding:40px 10px;}

/* ---------- CTA ---------- */
.cta{position:relative; padding:140px 0; text-align:center; color:#fff;}
.cta .ph{position:absolute; inset:0; z-index:-1;}
.cta::after{content:""; position:absolute; inset:0; background:rgba(24,28,22,.58); z-index:-1;}
.cta .eyebrow{color:var(--orange);}
.cta h2{color:#fff; font-size:clamp(2rem,3.8vw,3rem); max-width:680px; margin:0 auto 30px;}

/* ---------- Footer ---------- */
footer{background:var(--blue-dark); color:rgba(251,250,247,.75); padding:80px 0 30px;}
.foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:50px; padding-bottom:50px; border-bottom:1px solid rgba(251,250,247,.14);}
.foot-grid h4{color:var(--cream); font-size:.95rem; letter-spacing:.12em; text-transform:uppercase; margin-bottom:20px; font-family:'Montserrat',sans-serif; font-weight:500;}
footer .logo-mark img{height:130px;}
.foot-tagline{color:rgba(251,250,247,.6); font-size:.72rem; letter-spacing:.24em; text-transform:uppercase; margin-top:8px;}
.foot-grid p{font-size:.88rem; margin-bottom:10px; line-height:1.7;}
.foot-grid ul li{margin-bottom:10px;}
.foot-grid ul a{font-size:.88rem; transition:.2s;}
.foot-grid ul a:hover{color:var(--orange);}
.social-row{display:flex; gap:12px; margin-top:18px;}
.social-row a{
  width:36px; height:36px; border:1px solid rgba(251,250,247,.3); border-radius:50%;
  display:flex; align-items:center; justify-content:center; transition:.25s;
}
.social-row a:hover{background:var(--orange); border-color:var(--orange);}
.bottom-bar{padding-top:26px; display:flex; justify-content:space-between; font-size:.78rem; color:rgba(251,250,247,.5); flex-wrap:wrap; gap:10px;}

/* ---------- reveal animation ---------- */
.reveal{opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1; transform:none;}

/* ---------- responsive ---------- */
@media (max-width:1020px){
  .room-grid, .serv-grid, .act-grid, .info-grid{grid-template-columns:repeat(2,1fr);}
  .welcome .grid, .room-detail-grid, .contact-grid{grid-template-columns:1fr; direction:ltr !important;}
  .foot-grid{grid-template-columns:1fr 1fr; gap:36px;}
  .room-detail-media{height:340px;}
}
@media (max-width:760px){
  nav, .nav-right .btn{display:none;}
  .burger{display:flex;}
  .booking-bar .wrap{grid-template-columns:1fr; }
  .bf{border-right:none; border-bottom:1px solid var(--sand-deep);}
  section{padding:70px 0;}
  .room-grid, .serv-grid, .act-grid, .info-grid{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr;}
  .welcome-media{height:auto;}
  .welcome-media .ph.small{position:static; width:100%; height:200px; margin-top:16px; border:none;}
  .welcome-media > .ph:first-child{height:280px;}
  .amenity-list{grid-template-columns:1fr;}
  .form-row{grid-template-columns:1fr;}
  .form-card{padding:28px;}
}

/* mobile nav drawer */
.mobile-nav{
  position:fixed; inset:0; z-index:200; background:var(--blue-dark);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:30px;
  transform:translateY(-100%); transition:.4s;
}
.mobile-nav.open{transform:translateY(0);}
.mobile-nav a{color:var(--cream); font-family:'Julius Sans One',sans-serif; font-size:1.6rem;}
.mobile-nav .close{position:absolute; top:26px; right:28px; background:none; border:0; color:var(--cream); font-size:1.6rem; cursor:pointer;}
