/* ==========================================================================
   Nazaara Hotels — parent brand website
   Forked from the Nazaara Dalhousie property stylesheet; same design tokens,
   type system and component language, extended with brand-level sections.
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Marcellus&family=Montserrat:wght@300;400;500;600;700;800&family=Caveat:wght@500;600&display=swap');

:root{
  --bg:#faf6ef;
  --surface:#ffffff;
  --beige:#c8b89f;
  --beige-soft:#f0e7d8;
  --beige-line:#e6d9c4;
  --brown:#806248;
  --brown-deep:#5c4630;
  --sage:#6b7050;
  --sage-soft:#e4e6da;
  --sage-deep:#565a3f;
  --ink:#2d221e;
  --ink-soft:rgba(45,34,30,.64);
  --ink-faint:rgba(45,34,30,.42);
  --line:rgba(45,34,30,.14);
  --ease:cubic-bezier(.4,0,.2,1);
  --radius:3px;
  --serif:'Marcellus','Iowan Old Style','Palatino Linotype',serif;
  --sans:'Montserrat','Helvetica Neue',Arial,sans-serif;
  --max:1280px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; overflow-x:hidden; width:100%; }
body{
  margin:0;
  background:var(--bg);
  background-image:radial-gradient(rgba(90,68,48,.025) 1px, transparent 1px);
  background-size:3px 3px;
  color:var(--ink);
  font-family:var(--sans);
  font-weight:400;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; }
h1,h2,h3,h4{
  font-family:var(--serif); font-weight:400; color:var(--ink); margin:0;
  text-wrap:balance; letter-spacing:.01em;
}
p{ margin:0; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family:inherit; }

.container{ max-width:var(--max); margin:0 auto; padding:0 24px; position:relative; }
@media (max-width:1023px){ .container{ padding:0 20px; } }
@media (max-width:639px){ .container{ padding:0 16px; } }

.eyebrow{
  font-family:var(--sans); font-size:.72rem; font-weight:700; letter-spacing:.24em;
  text-transform:uppercase; color:var(--sage); display:block; margin-bottom:14px;
}

section{ position:relative; padding:110px 0; }
@media (max-width:1023px){ section{ padding:80px 0; } }
@media (max-width:639px){ section{ padding:60px 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.8vw,2.8rem); margin-bottom:16px; }
.section-head p{ color:var(--ink-soft); font-size:1.02rem; }

a:focus-visible, button:focus-visible{ outline:2px solid var(--brown-deep); outline-offset:3px; border-radius:2px; }

/* ---------- reveal-on-scroll ---------- */
.reveal{ opacity:0; transform:translateY(20px); transition:opacity .6s var(--ease), transform .6s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  .reveal{ opacity:1 !important; transform:none !important; transition:none !important; }
}

/* ---------- ridge divider (recurring terrain motif) ---------- */
.ridge{ display:block; width:100%; height:auto; position:relative; z-index:3; margin-bottom:-1px; }
.ridge-flip{ transform:scaleX(-1); }

/* ---------- buttons ---------- */
.btn{
  font-family:var(--sans); font-weight:600; font-size:.76rem; letter-spacing:.1em; text-transform:uppercase;
  padding:16px 36px; border-radius:0; border:1px solid transparent; cursor:pointer;
  transition:background .18s var(--ease), color .18s var(--ease), border-color .18s var(--ease);
  display:inline-flex; align-items:center; gap:8px; text-decoration:none;
}
.btn-primary{ background:var(--brown); color:#faf6ef; }
.btn-sm{ padding:12px 26px; font-size:.7rem; }
.btn-primary:hover{ background:var(--brown-deep); }
.btn-secondary{ background:transparent; color:var(--brown-deep); border-color:var(--brown); }
.btn-secondary:hover{ background:var(--brown); color:#faf6ef; }
.btn-on-dark{ border-color:rgba(250,246,239,.6); color:#faf6ef; }
.btn-on-dark:hover{ background:#faf6ef; color:var(--brown-deep); border-color:#faf6ef; }
.btn-olive{ background:var(--sage); color:#faf6ef; }
.btn-olive:hover{ background:var(--sage-deep); }
.link-cta{
  color:var(--brown-deep); text-decoration:none; font-size:.82rem; font-weight:600; letter-spacing:.04em;
  display:inline-block; border-bottom:1px solid var(--brown); padding-bottom:2px;
  transition:border-color .15s var(--ease), letter-spacing .15s var(--ease);
}
.link-cta:hover{ border-color:var(--brown-deep); letter-spacing:.08em; }

/* ---------- header / nav ---------- */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:100; padding:22px 0;
  transition:background .3s var(--ease), padding .3s var(--ease), box-shadow .3s var(--ease);
}
.site-header .container{ display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:20px; }
.brand{ display:flex; align-items:center; text-decoration:none; flex-shrink:0; justify-self:center; }
.brand img{ width:auto; object-fit:contain; display:block; }
.brand .logo-light{ height:50px; }
.brand .logo-dark{ height:50px; display:none; }

.header-actions{ display:flex; align-items:center; gap:16px; flex-shrink:0; justify-self:end; }
.header-actions .btn{ padding:12px 24px; flex-shrink:0; }

.pick-retreat{ position:relative; }
.pick-retreat-chevron{ width:10px; height:10px; flex-shrink:0; }
.pick-retreat-trigger{ background:none; }
.pick-retreat-menu{
  position:absolute; top:100%; right:0; margin-top:10px; min-width:200px;
  background:var(--surface); border-radius:8px; box-shadow:0 20px 40px -16px rgba(45,34,30,.35);
  padding:8px; display:flex; flex-direction:column; gap:2px;
  opacity:0; visibility:hidden; transform:translateY(-6px);
  transition:opacity .2s var(--ease), transform .2s var(--ease), visibility .2s;
  z-index:10;
}
.pick-retreat:hover .pick-retreat-menu,
.pick-retreat:focus-within .pick-retreat-menu,
.pick-retreat.open .pick-retreat-menu{
  opacity:1; visibility:visible; transform:translateY(0);
}
.pick-retreat-menu a{
  display:block; padding:10px 14px; border-radius:6px; text-decoration:none;
  font-family:var(--sans); font-size:.78rem; letter-spacing:.03em; color:var(--ink-soft);
  white-space:nowrap; transition:background .15s var(--ease), color .15s var(--ease);
}
.pick-retreat-menu a:hover{ background:var(--beige-soft); color:var(--ink); }

.hamburger-btn{
  display:flex; align-items:center; gap:10px; background:none; border:none; cursor:pointer; padding:0;
  justify-self:start;
}
.hamburger-icon{ width:24px; height:16px; position:relative; flex-shrink:0; }
.hamburger-icon span{ position:absolute; left:0; right:0; height:2px; background:#faf6ef; border-radius:2px; transition:background .3s var(--ease); }
.hamburger-icon span:nth-child(1){ top:0; } .hamburger-icon span:nth-child(2){ top:7px; } .hamburger-icon span:nth-child(3){ top:14px; }
.hamburger-label{
  font-family:var(--sans); font-size:.68rem; letter-spacing:.18em; text-transform:uppercase; color:#faf6ef;
  transition:color .3s var(--ease); white-space:nowrap;
}
@media (max-width:640px){ .hamburger-label{ display:none; } }
@media (max-width:800px){ .header-actions{ display:none; } }
.nav-call-btn{
  display:none; grid-column:3; justify-self:end; width:38px; height:38px; align-items:center; justify-content:center;
  background:none; border:1px solid rgba(250,246,239,.6); color:#faf6ef; flex-shrink:0;
  transition:background .3s var(--ease), border-color .3s var(--ease), color .3s var(--ease);
}
.site-header.scrolled .nav-call-btn{ border-color:var(--brown); color:var(--brown-deep); }
.nav-call-btn:hover{ background:var(--brown); border-color:var(--brown); color:#faf6ef; }
.nav-call-btn svg{ width:17px; height:17px; fill:currentColor; }
@media (max-width:800px){ .nav-call-btn{ display:flex; } }

.site-header.scrolled{ background:var(--bg); box-shadow:0 4px 24px -12px rgba(45,34,30,.18); padding:14px 0; }
.site-header.scrolled .brand .logo-light{ display:none; }
.site-header.scrolled .brand .logo-dark{ display:block; }
.site-header.scrolled .hamburger-icon span{ background:var(--ink); }
.site-header.scrolled .hamburger-label{ color:var(--ink); }
.site-header.scrolled .btn-on-dark{ border-color:var(--brown); color:var(--brown-deep); }
.site-header.scrolled .btn-on-dark:hover{ background:var(--brown); color:#faf6ef; }

.mobile-menu{
  position:fixed; inset:0; z-index:200;
  visibility:hidden; opacity:0; transition:visibility .3s, opacity .3s;
}
.mobile-menu.open{ visibility:visible; opacity:1; }

.mobile-menu-overlay{
  position:absolute; inset:0; background:rgba(20,14,10,.45);
  opacity:0; transition:opacity .3s var(--ease);
}
.mobile-menu.open .mobile-menu-overlay{ opacity:1; }

.mobile-menu-panel{
  position:absolute; top:0; left:0; height:100%; width:86%; max-width:340px;
  background:var(--bg); box-shadow:0 0 44px rgba(20,14,10,.28);
  display:flex; flex-direction:column;
  transform:translateX(-100%); transition:transform .3s var(--ease);
}
.mobile-menu.open .mobile-menu-panel{ transform:translateX(0); }

.mobile-menu-head{
  display:flex; align-items:center; justify-content:space-between;
  padding:22px 24px 18px; border-bottom:1px solid rgba(45,34,30,.1); flex-shrink:0;
}
.mobile-menu-home{ font-family:var(--serif); font-size:1.2rem; color:var(--ink); text-decoration:none; }
.mobile-menu-home:hover{ color:var(--brown); }
.mobile-menu-close{
  position:static; width:auto; height:auto; border:none; background:none; cursor:pointer;
  font-size:1.5rem; color:var(--ink); line-height:1;
}

.mobile-menu-links{ flex:1; overflow-y:auto; padding:8px 24px; display:flex; flex-direction:column; }
.mobile-menu-links > a{
  display:block; padding:13px 0; font-family:var(--serif); font-size:1.1rem; color:var(--ink); text-decoration:none;
  border-bottom:1px solid rgba(45,34,30,.07);
}
.mobile-menu-links > a:hover{ color:var(--brown); }

.drawer-dropdown{ border-bottom:1px solid rgba(45,34,30,.07); }
.drawer-toggle{
  display:flex; align-items:center; justify-content:space-between; width:100%;
  padding:13px 0; background:none; border:none; cursor:pointer;
}
.drawer-toggle a, .drawer-toggle span{ font-family:var(--serif); font-size:1.1rem; color:var(--ink); text-decoration:none; }
.drawer-toggle a:hover{ color:var(--brown); }
.drawer-chevron{ width:14px; height:14px; color:var(--ink-faint); flex-shrink:0; transition:transform .3s var(--ease); }
.drawer-toggle[aria-expanded="true"] .drawer-chevron{ transform:rotate(180deg); }
.drawer-submenu{ padding:0 0 10px 16px; display:flex; flex-direction:column; }
.drawer-submenu.hidden{ display:none; }
.drawer-submenu a{
  display:block; padding:9px 0; font-family:var(--sans); font-size:.9rem; color:var(--ink-soft); text-decoration:none;
}
.drawer-submenu a:hover{ color:var(--brown); }

.mobile-menu-foot{ padding:20px 24px; border-top:1px solid rgba(45,34,30,.1); flex-shrink:0; }
.mobile-menu-foot .btn{ display:block; text-align:center; width:100%; }

/* ---------- booking modal (Book Now popup) ---------- */
.booking-modal{
  position:fixed; inset:0; z-index:210; display:flex; align-items:center; justify-content:center; padding:24px;
  visibility:hidden; opacity:0; transition:visibility .3s, opacity .3s;
}
.booking-modal.open{ visibility:visible; opacity:1; }
.booking-modal-overlay{
  position:absolute; inset:0; background:rgba(20,14,10,.55);
}
.booking-modal-panel{
  position:relative; z-index:1; width:100%; max-width:1180px;
  background:rgba(20,14,10,.4); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  box-shadow:0 24px 60px -20px rgba(20,14,10,.5);
  padding:20px 22px 36px;
  transform:translateY(16px) scale(.98); transition:transform .3s var(--ease);
}
.booking-modal.open .booking-modal-panel{ transform:translateY(0) scale(1); }
.booking-modal-close{
  position:absolute; top:12px; right:12px; width:auto; height:auto; border:none; background:none; cursor:pointer;
  font-size:1.5rem; line-height:1; color:rgba(250,246,239,.7);
}
.booking-modal-close:hover{ color:#faf6ef; }
.booking-modal-head{ margin:0 0 14px; font-family:var(--serif); font-size:1.1rem; color:#faf6ef; text-align:center; }

/* continuous-bar fields matching the hero booking bars (Dalhousie etc.): one translucent
   bar per row, thin dividers between fields, light text sitting directly on the dark panel */
#bookingModal .booking-bar{
  background:none; box-shadow:none; max-width:none; flex-direction:column; align-items:stretch; gap:12px;
}
#bookingModal #brandBookingForm{ max-width:none; }
.booking-row{
  display:flex; flex-wrap:wrap; align-items:stretch;
  background:rgba(20,14,10,.3); border:1px solid rgba(250,246,239,.18);
}
#bookingModal #brandBookingForm .booking-field{
  flex:1 1 130px; width:auto; min-width:120px; min-height:64px; padding:10px 18px;
  background:none; box-shadow:none; border-radius:0; border-right:1px solid rgba(250,246,239,.18);
  display:flex; flex-direction:column; justify-content:center;
}
#bookingModal #brandBookingForm .booking-field:last-child{ border-right:none; }
#bookingModal #brandBookingForm .booking-cta-field{
  flex:0 0 auto; min-width:150px; background:none; box-shadow:none; padding:10px 14px; border-right:none;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px;
}
#bookingModal #brandBookingForm .booking-submit{ width:100%; justify-content:center; padding:10px 18px; }
#bookingModal #brandBookingForm .booking-field label{ font-size:.6rem; margin-bottom:4px; color:rgba(250,246,239,.6); }
#bookingModal #brandBookingForm .booking-field select,
#bookingModal #brandBookingForm .booking-field input[type="date"]{ font-size:.86rem; color:#faf6ef; }
#bookingModal #brandBookingForm .booking-field select option{ color:var(--ink); }
#bookingModal #brandBookingForm .booking-field input[type="date"]::-webkit-calendar-picker-indicator{ filter:invert(1); opacity:.8; }
#bookingModal #brandBookingForm .guest-trigger{ font-size:.86rem; color:#faf6ef; }
#bookingModal #brandBookingForm .field-icon{ display:none; }
#bookingModal #brandBookingForm .field-input{ gap:0; }
.field-input{ display:flex; align-items:center; gap:7px; }
.field-icon{ width:13px; height:13px; flex:0 0 auto; color:var(--brown); }
.field-input select,
.field-input input[type="date"],
.field-input input[type="text"],
.field-input .guest-trigger{ flex:1 1 auto; min-width:0; }
.field-input input[type="text"]{
  width:100%; border:none; background:none; font-family:var(--sans); font-size:.82rem; color:var(--ink); padding:0;
}
.field-input input[type="text"]::placeholder{ color:var(--ink-faint); }
.field-input input[type="text"]:focus{ outline:none; }
#bookingModal #brandBookingForm .field-input input[type="text"]{ color:#faf6ef; }
#bookingModal #brandBookingForm .field-input input[type="text"]::placeholder{ color:rgba(250,246,239,.5); }
.field-hint{
  position:absolute; top:100%; left:0; right:0; margin-top:6px; text-align:left;
  font-size:.6rem; letter-spacing:.03em; text-decoration:underline;
  text-underline-offset:3px; color:rgba(250,246,239,.75); cursor:default;
}
.field-hint:hover{ color:#faf6ef; }
.field-hint-manage{ text-align:right; }
.cta-hint-row{ display:contents; }
.field-hint-mobile-only{ display:none; }
.field-tooltip{
  position:absolute; bottom:calc(100% + 10px); left:50%; transform:translateX(-50%) translateY(4px);
  width:230px; background:var(--ink); color:rgba(250,246,239,.9); font-size:.74rem; line-height:1.55;
  letter-spacing:normal; text-decoration:none; padding:14px 16px; box-shadow:0 14px 30px -12px rgba(20,14,10,.5);
  opacity:0; visibility:hidden; transition:opacity .2s var(--ease), transform .2s var(--ease); z-index:5;
}
.field-tooltip a{ color:#e7cfa8; text-decoration:underline; }
.field-hint:hover .field-tooltip,
.field-hint:focus .field-tooltip,
.field-hint:focus-within .field-tooltip{ opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
.hero-book-btn{ padding:18px 48px; font-size:.8rem; }

@media (max-width:760px){
  .booking-row{ flex-direction:column; }
  #bookingModal #brandBookingForm .booking-field{
    flex:0 0 auto; width:100%; border-right:none; border-bottom:1px solid rgba(250,246,239,.18);
  }
  #bookingModal #brandBookingForm .booking-field:last-child{ border-bottom:none; }
  #bookingModal #brandBookingForm .booking-field.has-hint{ margin-bottom:0; }
  #bookingModal #brandBookingForm .booking-field.has-hint > .field-hint{ display:none; }
  #bookingModal #brandBookingForm .booking-cta-field{ align-items:stretch; padding-top:12px; }
  .cta-hint-row{
    display:flex; align-items:center; justify-content:space-between; gap:16px; width:100%; margin-top:8px;
  }
  .cta-hint-row .field-hint{ position:static; margin-top:0; }
  .field-hint-mobile-only{ display:inline-block; }
  .field-tooltip{ left:auto; right:0; transform:translateY(4px); }
  .field-hint:hover .field-tooltip,
  .field-hint:focus .field-tooltip,
  .field-hint:focus-within .field-tooltip{ transform:translateY(0); }
}

/* ---------- hero ---------- */
.hero{
  position:relative; min-height:100svh; display:flex; flex-direction:column; justify-content:center; align-items:center;
  color:#faf6ef; overflow:hidden; padding:14vh 0 12vh; text-align:center;
}
.hero-bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.hero::after{
  content:''; position:absolute; inset:0; z-index:1;
  background:linear-gradient(to top, rgba(20,14,10,.55) 0%, rgba(20,14,10,.15) 30%, rgba(20,14,10,.32) 100%);
}
.hero-content{ position:relative; z-index:2; width:100%; display:flex; flex-direction:column; align-items:center; }
.hero-content .eyebrow{ color:#e7cfa8; }
.hero-content h1{ font-size:clamp(2.6rem,7vw,5.2rem); color:#faf6ef; max-width:17ch; line-height:1.02; margin:0 auto; }
.hero-content .hero-tagline{
  margin:16px auto 0; max-width:40ch; font-family:var(--serif); font-size:clamp(1.1rem,2vw,1.4rem);
  color:rgba(250,246,239,.9); font-weight:400;
}
.hero-booking{ position:relative; z-index:3; width:100%; margin-top:60px; display:flex; justify-content:center; }

#brandBookingForm .booking-field{ padding:11px 16px; }

/* rotating seal badge — recurring signature widget */
.seal{
  position:absolute; z-index:4; width:132px; height:132px;
  filter:drop-shadow(0 8px 20px rgba(20,14,10,.28));
}
.seal .ring{ animation:seal-spin 34s linear infinite; transform-origin:50% 50%; }
@media (prefers-reduced-motion:reduce){ .seal .ring{ animation:none; } }
@keyframes seal-spin{ from{ transform:rotate(0deg); } to{ transform:rotate(360deg); } }
.hero .seal{ right:6%; bottom:14%; }
@media (max-width:768px){ .hero .seal{ display:none; } }
.brand-hero .seal{ top:auto; right:4%; bottom:7%; }
@media (max-width:900px){ .brand-hero .seal{ display:none; } }

/* ---------- booking bar ---------- */
.booking-bar{
  position:relative; z-index:10; background:var(--surface); max-width:900px; width:100%;
  border-radius:0; box-shadow:0 24px 50px -18px rgba(20,14,10,.5);
  display:flex; align-items:stretch; flex-wrap:wrap; text-align:left;
}
.booking-field{ flex:1 1 160px; padding:16px 24px; position:relative; min-width:150px; }
/* the brand hub's hero bar carries five fields (place, hotel, dates, guests) instead of
   two, so it needs more room to lay out in a single row before it wraps to mobile */
#brandBookingForm{ max-width:1180px; }
#brandBookingForm .booking-field{ flex:1 1 130px; padding:16px 18px; min-width:120px; }
#heroBookingForm{ max-width:1180px; }
#heroBookingForm .booking-field{ flex:1 1 130px; padding:16px 18px; min-width:120px; }
/* Dalhousie-style hero bar: continuous translucent dark bar, light text, thin dividers */
.brand-hero .booking-bar{
  background:rgba(20,14,10,.62); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  border:1px solid rgba(250,246,239,.15); box-shadow:0 14px 30px -16px rgba(0,0,0,.45);
}
.brand-hero .booking-field{ padding:11px 20px; }
.brand-hero .booking-field label{ color:rgba(250,246,239,.65); margin-bottom:3px; }
.brand-hero .booking-field input[type="date"]{ color:#faf6ef; color-scheme:dark; }
.brand-hero .booking-field input[type="date"]::-webkit-calendar-picker-indicator{ filter:invert(1); opacity:.8; }
.brand-hero .booking-field select{ color:#faf6ef; }
.brand-hero .booking-field select option{ color:var(--ink); }
.brand-hero .guest-trigger{ color:#faf6ef; }
.brand-hero .booking-divider{ background:rgba(250,246,239,.2); margin:10px 0; }
.brand-hero .booking-submit{ padding:0 32px; }
.booking-field label{ display:block; font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:6px; font-weight:600; }
.booking-field input[type="date"]{
  width:100%; border:none; background:none; font-family:var(--sans); font-size:.92rem; color:var(--ink); padding:0; cursor:pointer;
}
.booking-field input[type="date"]:focus{ outline:none; }
.booking-field select{
  width:100%; border:none; background:none; font-family:var(--sans); font-size:.92rem; color:var(--ink); padding:0; cursor:pointer;
}
.booking-field select:focus{ outline:none; }
.booking-divider{ width:1px; background:var(--line); margin:14px 0; flex-shrink:0; }
.hero-booking-links{
  position:relative; z-index:3; margin-top:30px; display:flex; gap:26px; justify-content:center; flex-wrap:wrap;
  font-size:.72rem; letter-spacing:.04em;
}
.hero-booking-links a{ color:rgba(250,246,239,.85); text-decoration:underline; text-underline-offset:3px; }
.hero-booking-links a:hover{ color:#fff; }
.hero-booking-links .scroll-explore{
  display:flex; flex-direction:column; align-items:center; gap:6px;
  text-decoration:none; text-transform:uppercase; letter-spacing:.22em; font-size:.62rem; font-weight:600;
}
.hero-booking-links .scroll-explore svg{ width:16px; height:16px; animation:scrollBounce 1.6s ease-in-out infinite; }
@keyframes scrollBounce{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(4px); } }
@media (prefers-reduced-motion:reduce){ .hero-booking-links .scroll-explore svg{ animation:none; } }
.guest-trigger{ width:100%; text-align:left; background:none; border:none; padding:0; font-family:var(--sans); font-size:.92rem; color:var(--ink); cursor:pointer; }
.booking-submit{ border-radius:0; padding:0 44px; flex:0 0 auto; }

.guest-popover{
  display:none; position:absolute; bottom:calc(100% + 10px); top:auto; right:0; left:auto;
  width:max-content; max-width:min(760px, calc(100vw - 48px)); max-height:70vh; overflow:auto;
  background:rgba(20,14,10,.92); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border:1px solid rgba(250,246,239,.18); border-radius:0; box-shadow:0 20px 40px -16px rgba(0,0,0,.5); padding:20px; z-index:20;
  -ms-overflow-style:none; scrollbar-width:none;
}
.guest-popover::-webkit-scrollbar{ display:none; }
.guest-popover .rooms-list{ display:flex; flex-direction:row; gap:24px; background:none; }
.room-block{ flex:0 0 240px; width:240px; padding:0 24px 0 0; border-right:1px solid rgba(250,246,239,.18); }
.room-block:last-child{ padding-right:0; border-right:none; }
.room-block-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:4px; }
.room-label{ font-family:var(--serif); font-size:.98rem; font-weight:600; color:#e7cfa8; }
.room-remove{
  background:none; border:none; color:rgba(250,246,239,.5); font-size:1.2rem; line-height:1; padding:2px 4px; cursor:pointer;
  transition:color .15s var(--ease);
}
.room-remove:hover{ color:#faf6ef; }
.add-room-btn{
  display:block; width:100%; text-align:left; background:none; border:none; border-top:1px solid rgba(250,246,239,.18);
  margin-top:16px; padding:14px 0 0; font-family:var(--sans); font-weight:600; font-size:.82rem; color:#e7cfa8; cursor:pointer;
  transition:color .15s var(--ease);
}
.add-room-btn:hover{ color:#faf6ef; }
.add-room-btn:disabled{ color:rgba(250,246,239,.3); cursor:not-allowed; }
.guest-popover.open{ display:block; }
.guest-row{ display:flex; align-items:center; justify-content:space-between; padding:12px 0; border-bottom:1px solid rgba(250,246,239,.18); }
.guest-row:last-of-type{ border-bottom:none; }
.guest-row b{ display:block; font-family:var(--serif); font-size:1rem; color:#faf6ef; }
.guest-row span{ font-size:.72rem; color:rgba(250,246,239,.5); }
.stepper{ display:flex; align-items:center; gap:14px; }
.step-btn{
  width:28px; height:28px; border-radius:0; border:1px solid rgba(250,246,239,.4); background:none; color:#faf6ef;
  font-size:1rem; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .15s var(--ease), color .15s var(--ease);
}
.step-btn:hover{ background:var(--brown); color:#faf6ef; border-color:var(--brown); }
.step-btn:disabled{ opacity:.35; cursor:not-allowed; border-color:rgba(250,246,239,.15); color:rgba(250,246,239,.3); background:none; }
.stepper span{ min-width:16px; text-align:center; font-weight:600; color:#faf6ef; }
.child-ages{ display:flex; flex-direction:column; gap:12px; margin-top:14px; padding-top:14px; border-top:1px solid rgba(250,246,239,.18); }
.child-age-row{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
.child-age-row > div{ display:flex; align-items:baseline; gap:6px; }
.child-age-row b{ font-family:var(--serif); font-size:1rem; color:#faf6ef; white-space:nowrap; }
.child-age-row span{ font-size:.72rem; color:rgba(250,246,239,.5); }
.child-age-select{
  border:1px solid rgba(250,246,239,.3); background:rgba(250,246,239,.08); border-radius:0; padding:8px 30px 8px 12px;
  font-family:var(--sans); font-size:.82rem; color:#faf6ef; cursor:pointer; min-width:96px;
  appearance:none; -webkit-appearance:none; -moz-appearance:none; color-scheme:dark;
  background-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3E%3Cpath d=%27M4 6l4 4 4-4%27 fill=%27none%27 stroke=%27%23faf6ef%27 stroke-width=%271.6%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 10px center; background-size:11px;
}
.child-age-select option{ color:var(--ink); }
.guest-done{
  width:100%; margin-top:14px; padding:11px; background:var(--brown); color:#faf6ef; border:none; border-radius:0;
  font-family:var(--sans); font-weight:600; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; cursor:pointer;
}
.guest-done:hover{ background:var(--brown-deep); }

@media (max-width:1140px){
  #brandBookingForm{ flex-direction:column; }
  #brandBookingForm .booking-field{ flex:0 0 auto; }
  #brandBookingForm .booking-divider{ width:auto; height:1px; margin:0 18px; }
  #brandBookingForm .booking-submit{ border-radius:0; padding:18px; width:100%; justify-content:center; }
}

@media (max-width:900px){
  .booking-bar{ flex-direction:column; }
  .booking-field{ flex:0 0 auto; }
  .hero-booking{ padding-bottom:24px; }
  .booking-divider{ width:auto; height:1px; margin:0 24px; }
  .booking-submit{ border-radius:0; padding:18px; width:100%; justify-content:center; }
  .guest-popover{
    position:fixed; left:16px; right:16px; top:5vh; bottom:5vh;
    width:auto; max-width:none; max-height:none;
  }
  .guest-popover .rooms-list{ flex-direction:column; gap:0; }
  .room-block{ flex:1 1 auto; width:100%; padding:14px 0; border-right:none; border-bottom:1px solid rgba(250,246,239,.18); }
  .room-block:first-child{ padding-top:0; }
  .room-block:last-child{ padding-bottom:0; border-bottom:none; }
}
@media (max-width:639px){
  .brand-hero .hero-booking{ display:none; }
}

/* ---------- about / introduction (editorial travel journal) ---------- */
.about-section{
  --aj-bg:#f5f1e8; --aj-cream:#faf8f1; --aj-green:#4e583b; --aj-brown:#5a4430; --aj-beige:#d8c9ad;
  background:var(--aj-bg);
  background-image:radial-gradient(rgba(90,68,48,.025) 1px, transparent 1px);
  background-size:3px 3px;
  padding-bottom:110px;
}
.about-grid{
  display:grid; grid-template-columns:auto 484px minmax(0,1fr);
  gap:0 56px; align-items:stretch;
}
.about-rail{
  display:flex; flex-direction:column; align-items:center; gap:16px; height:100%; padding-top:6px; color:var(--aj-brown);
}
.about-rail .sprig-rail{ width:16px; height:auto; stroke:var(--aj-green); fill:none; stroke-width:1; opacity:.8; }
.rail-line{ width:1px; flex:1; min-height:40px; background:rgba(90,68,48,.25); }

.about-eyebrow{ color:var(--aj-green); font-size:.7rem; letter-spacing:.2em; }
.about-copy h1{
  font-size:clamp(2rem,3.6vw,2.9rem); line-height:1.22; color:var(--ink); font-weight:400; max-width:11.5ch;
}
.about-divider{ display:flex; align-items:center; gap:14px; margin:26px 0 22px; max-width:280px; }
.about-divider span{ flex:1; height:1px; background:rgba(90,68,48,.3); }
.pinecone{ width:13px; height:auto; flex-shrink:0; stroke:var(--aj-green); fill:none; stroke-width:1; opacity:.85; }
.about-location{
  display:flex; align-items:center; gap:8px; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--aj-brown); margin-bottom:26px;
}
.about-location .pin{ width:11px; height:auto; stroke:var(--aj-green); fill:none; flex-shrink:0; }
.about-p{ max-width:42ch; font-size:1rem; line-height:1.75; color:var(--ink-soft); }
.about-p + .about-p{ margin-top:16px; }

.policy-list{ display:flex; flex-direction:column; gap:14px; }
.policy-list li{
  position:relative; padding-left:22px; font-size:1rem; line-height:1.75; color:var(--ink-soft);
}
.policy-list li::before{
  content:''; position:absolute; left:0; top:11px; width:7px; height:7px; border-radius:50%; background:var(--brown);
}


/* ---------- polaroid collage ---------- */
.about-collage{ position:relative; aspect-ratio:1/1.12; }
.annotation{
  position:absolute; top:-30px; right:6%; font-family:'Caveat',cursive; font-size:1.15rem; color:var(--aj-brown);
  transform:rotate(-3deg); z-index:5;
}
.polaroid-slot{ position:absolute; }
.slot-main{ top:0; right:0; width:72%; }
.slot-views{ left:0; bottom:8%; width:38%; z-index:2; }
.slot-room{ right:4%; bottom:0; width:40%; z-index:3; }

.polaroid{
  background:var(--aj-cream); padding:10px 10px 34px; box-shadow:0 20px 44px -18px rgba(45,34,30,.4);
  transition:transform .45s var(--ease), box-shadow .45s var(--ease); display:block; margin:0;
}
.polaroid img{ width:100%; aspect-ratio:1/1; object-fit:cover; display:block; }
.polaroid-main{ transform:rotate(-2deg); }
.polaroid-main img{ aspect-ratio:4/4.7; }
.polaroid-main:hover{ transform:rotate(-2deg) translateY(-5px) scale(1.02); box-shadow:0 28px 54px -18px rgba(45,34,30,.46); }
.slot-views .polaroid{ transform:rotate(-4deg); }
.slot-views .polaroid:hover{ transform:rotate(-4deg) translateY(-5px) scale(1.02); }
.slot-room .polaroid{ transform:rotate(3deg); }
.slot-room .polaroid:hover{ transform:rotate(3deg) translateY(-5px) scale(1.02); }
.polaroid figcaption{
  font-family:'Caveat',cursive; font-size:1.15rem; color:var(--aj-brown); text-align:center; padding-top:8px;
}
.tape{
  position:absolute; top:-14px; left:50%; transform:translateX(-50%) rotate(-2deg); width:70px; height:24px;
  background:rgba(216,201,173,.75); box-shadow:0 2px 4px rgba(45,34,30,.15); z-index:4;
}

.about-seal{ position:absolute; left:-30px; bottom:14%; width:100px; height:100px; z-index:5; filter:drop-shadow(0 4px 10px rgba(45,34,30,.18)); }

.about-closing{
  max-width:var(--max); margin:56px auto 0; padding:0 24px; display:flex; align-items:center; justify-content:center; gap:12px;
}
.about-closing .sprig-small{ width:13px; height:auto; stroke:#4e583b; fill:none; stroke-width:1; opacity:.75; }
.about-closing span{ font-family:'Caveat',cursive; font-size:1.3rem; color:#5a4430; }

.about-contour{
  display:block; width:180px; height:auto; margin:34px auto 0; stroke:#5a4430; fill:none; stroke-width:1; opacity:.35;
}

/* ---------- editorial photo composition (replaces the illustrated India map) ---------- */
.about-photos{ position:relative; height:100%; }
.photo-dots{ display:none; }

.photos-script{
  position:absolute; top:0; right:2%; z-index:4; text-align:right;
  font-family:'Caveat',cursive; color:var(--aj-brown); line-height:1.2; transform:rotate(-2deg);
}
.photos-script span{ display:block; font-size:1.55rem; }
.photos-script::after{
  content:''; display:block; width:82px; height:1px; margin:6px 0 0 auto; background:var(--aj-brown); opacity:.5;
}

.photo-frame{
  position:absolute; margin:0; background:var(--aj-cream); padding:9px 9px 12px;
  box-shadow:0 20px 40px -18px rgba(45,34,30,.38);
  transition:transform .45s var(--ease), box-shadow .45s var(--ease);
}
.photo-frame:hover{ box-shadow:0 26px 48px -18px rgba(45,34,30,.44); }
.photo-frame img{ display:block; width:100%; aspect-ratio:4/3; object-fit:cover; }
.photo-frame figcaption{ padding-top:8px; }
.photo-frame figcaption b{
  display:block; font-family:var(--sans); font-size:.7rem; font-weight:700; letter-spacing:.11em; text-transform:uppercase; color:var(--aj-green);
}
.photo-frame figcaption span{
  display:block; font-family:var(--serif); font-style:italic; font-size:.85rem; color:var(--aj-brown); margin-top:2px;
}

.frame-a{ top:6%; left:2%; width:50%; transform:rotate(-2deg); z-index:3; }
.frame-b{ top:30%; right:2%; width:46%; transform:rotate(2deg); z-index:2; }
.frame-c{ top:56%; left:8%; width:52%; transform:rotate(-1.5deg); z-index:1; }
.frame-a:hover{ transform:rotate(-2deg) translateY(-4px); }
.frame-b:hover{ transform:rotate(2deg) translateY(-4px); }
.frame-c:hover{ transform:rotate(-1.5deg) translateY(-4px); }

@media (max-width:1100px){
  .about-grid{ grid-template-columns:auto minmax(0,1fr); }
  .about-collage{ grid-column:1/-1; margin-top:48px; max-width:520px; margin-left:auto; margin-right:auto; }
  .about-photos{
    grid-column:1/-1; margin-top:56px; height:auto;
    display:flex; flex-direction:column; align-items:center; gap:32px;
  }
  .photos-script{ position:static; text-align:center; transform:none; margin-bottom:4px; }
  .photos-script::after{ margin:6px auto 0; }
  .photo-track{ display:flex; flex-direction:column; align-items:center; gap:32px; width:100%; }
  .photo-frame{ position:static; width:100%; max-width:420px; transform:none !important; }
}
@media (max-width:768px){
  .about-grid{ grid-template-columns:minmax(0,1fr); }
  .about-rail{ display:none; }
  .about-copy h1{ max-width:none; }
  .about-collage{ order:2; margin-top:36px; aspect-ratio:1/1.15; }
  .about-photos{ margin-top:40px; gap:14px; }
  .photo-track{
    flex-direction:row; align-items:stretch; flex-wrap:nowrap; width:100%;
    gap:16px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth;
    overscroll-behavior-x:contain; touch-action:pan-x;
    padding:2px 0 4px; -ms-overflow-style:none; scrollbar-width:none;
  }
  .photo-track::-webkit-scrollbar{ display:none; }
  .photo-frame{ flex:0 0 100%; width:100%; max-width:420px; margin:0 auto; scroll-snap-align:center; padding:6px 6px 4px; }
  .photo-frame figcaption{ padding-top:4px; }
  .photo-dots{ display:flex; justify-content:center; gap:9px; margin-top:6px; }
  .photo-dots button{
    width:8px; height:8px; border-radius:0; background:rgba(90,68,48,.25); border:none; padding:0;
    cursor:pointer; transition:background .2s var(--ease), transform .2s var(--ease);
  }
  .photo-dots button.active{ background:var(--aj-brown); transform:scale(1.3); }
  .about-p{ max-width:none; }
  .annotation{ display:none; }
}

@media (prefers-reduced-motion:reduce){
  .polaroid{ transition:none; }
}

/* ---------- rooms carousel (equal treatment, one at a time) ---------- */
.rooms{ background:var(--ink); color:#f3ecdf; overflow:hidden; }
.rooms .section-head h2, .rooms .section-head p{ color:#f3ecdf; }
.rooms .section-head p{ color:rgba(243,236,223,.7); }
.room-track-wrap{ position:relative; }
.room-track{
  display:flex; gap:28px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth;
  padding-bottom:8px; -ms-overflow-style:none; scrollbar-width:none;
}
.room-track::-webkit-scrollbar{ display:none; }
.room-slide{
  flex:0 0 auto; width:min(78vw,780px); scroll-snap-align:center;
  display:grid; grid-template-columns:1fr 1fr; background:#382d24; border-radius:0; overflow:hidden;
}
.room-slide .media{ position:relative; aspect-ratio:4/3.4; }
.room-slide .media img{ width:100%; height:100%; object-fit:cover; }
.room-slide .index{
  position:absolute; top:18px; left:18px; font-family:var(--serif); font-size:.85rem; color:#f3ecdf;
  background:rgba(20,14,10,.5); backdrop-filter:blur(3px); padding:6px 12px; border-radius:0;
}
.room-slide .body{ padding:38px 34px; display:flex; flex-direction:column; justify-content:center; gap:14px; }
.room-slide h3{ font-size:1.5rem; color:#f3ecdf; }
.room-slide .tags{ display:flex; flex-wrap:wrap; gap:8px; }
.room-slide .tag{ font-size:.64rem; letter-spacing:.06em; text-transform:uppercase; color:rgba(243,236,223,.85); border:1px solid rgba(243,236,223,.25); padding:5px 12px; border-radius:0; }
.room-slide p.desc{ font-size:.9rem; color:rgba(243,236,223,.7); }
.room-slide .link-cta{ color:#e7cfa8; border-color:#e7cfa8; }
.room-slide .link-cta:hover{ color:#fff; border-color:#fff; }

.room-controls{ display:flex; align-items:center; justify-content:center; gap:20px; margin-top:40px; }
.room-arrow{
  width:48px; height:48px; border-radius:0; border:1px solid rgba(243,236,223,.3); background:none; color:#f3ecdf;
  cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .2s var(--ease), border-color .2s var(--ease);
}
.room-arrow:hover{ background:rgba(243,236,223,.1); border-color:#f3ecdf; }
.room-arrow svg{ width:18px; height:18px; }
.room-dots{ display:flex; gap:9px; }
.room-dots button{ width:8px; height:8px; border-radius:0; background:rgba(243,236,223,.3); border:none; padding:0; cursor:pointer; transition:background .2s var(--ease), transform .2s var(--ease); }
.room-dots button.active{ background:#e7cfa8; transform:scale(1.3); }

@media (max-width:900px){
  .room-slide{ grid-template-columns:1fr; width:min(88vw,480px); }
  .room-slide .media{ aspect-ratio:4/3; }
}

/* ---------- facilities marquee ---------- */
.facilities{ background:var(--beige-soft); overflow:hidden; }
.marquee-row{ overflow:hidden; }
.marquee-row + .marquee-row{ margin-top:2px; }
.marquee-track{ display:flex; gap:2px; width:max-content; animation:marquee-scroll 46s linear infinite; }
.marquee-track.rev{ animation-name:marquee-scroll-rev; animation-duration:56s; }
.marquee-row:hover .marquee-track{ animation-play-state:paused; }
@keyframes marquee-scroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@keyframes marquee-scroll-rev{ from{ transform:translateX(-50%); } to{ transform:translateX(0); } }
@media (prefers-reduced-motion:reduce){
  .marquee-track{ animation:none; flex-wrap:wrap; width:100%; justify-content:center; }
}
.facility-pill{
  display:flex; align-items:center; gap:10px; background:var(--surface); border:1px solid var(--line);
  padding:16px 26px; white-space:nowrap; font-size:.82rem; color:var(--ink);
}
.facility-pill svg{ width:20px; height:20px; stroke:var(--sage); flex-shrink:0; }

/* ---------- dining (diagonal split) ---------- */
.dining{ background:var(--surface); padding:0; }
.dining-inner{ position:relative; display:grid; grid-template-columns:1.1fr .9fr; min-height:640px; }
.dining-media{ position:relative; overflow:hidden; }
.dining-media img{ width:100%; height:100%; object-fit:cover; position:absolute; inset:0; }
.dining-media::after{
  content:''; position:absolute; inset:0; background:linear-gradient(100deg, transparent 60%, var(--beige-soft) 60.4%);
}
.dining-content{
  background:var(--beige-soft); display:flex; flex-direction:column; justify-content:center; padding:64px 72px 64px 40px; gap:20px;
}
.dining-content h2{ font-size:clamp(1.9rem,3.4vw,2.6rem); }
.dining-seal{ position:absolute; top:56px; left:calc(55% - 60px); width:118px; height:118px; z-index:3; }
.dining-meta{ display:flex; flex-wrap:wrap; gap:26px; }
.dining-meta div span{ display:block; font-size:.66rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:3px; }
.dining-meta div b{ font-weight:600; font-size:.94rem; color:var(--ink); }
.dining-content p.desc{ color:var(--ink-soft); font-size:.96rem; max-width:44ch; }
@media (max-width:900px){
  .dining-inner{ grid-template-columns:1fr; min-height:0; }
  .dining-media{ aspect-ratio:16/10; }
  .dining-media::after{ display:none; }
  .dining-content{ padding:44px 24px; }
  .dining-seal{ display:none; }
}

/* ---------- experiences (staggered rhythm) ---------- */
.experiences{
  background:var(--surface); position:relative;
  background-image:radial-gradient(rgba(90,68,48,.025) 1px, transparent 1px);
  background-size:3px 3px;
}
.contour-bg{ position:absolute; inset:0; z-index:0; opacity:.5; pointer-events:none; }
.exp-grid{ position:relative; z-index:1; display:grid; grid-template-columns:repeat(3,1fr); gap:28px 24px; }
.exp-grid > *:nth-child(2){ transform:translateY(38px); }
.exp-grid > *:nth-child(5){ transform:translateY(38px); }
.exp-card{ border:1px solid var(--line); border-radius:0; padding:34px 28px; background:var(--surface); transition:transform .25s var(--ease), box-shadow .25s var(--ease); }
.exp-card:hover{ transform:translateY(-6px); box-shadow:0 18px 34px -18px rgba(45,34,30,.28); }
.exp-grid > *:nth-child(2):hover, .exp-grid > *:nth-child(5):hover{ transform:translateY(32px); }
.exp-card .num{ font-family:var(--serif); font-size:.85rem; color:var(--beige); display:block; margin-bottom:16px; }
.exp-card svg{ width:28px; height:28px; stroke:var(--sage); margin-bottom:16px; }
.exp-card h3{ font-size:1.15rem; margin-bottom:10px; }
.exp-card p{ font-size:.88rem; color:var(--ink-soft); }
@media (max-width:960px){
  .exp-grid{ grid-template-columns:1fr 1fr; }
  .exp-grid > *:nth-child(2), .exp-grid > *:nth-child(5){ transform:none; }
}
@media (max-width:639px){ .exp-grid{ grid-template-columns:1fr; } }

/* ---------- gallery (asymmetric grid) ---------- */
.gallery{ background:var(--beige-soft); }
.gj-collage{
  display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.78fr) minmax(0,.78fr);
  grid-template-rows:1fr 1fr; gap:12px; margin-top:12px;
}
.gj-photo{ margin:0; position:relative; overflow:hidden; border-radius:0; cursor:pointer; }
.gj-chalet{ grid-column:1; grid-row:1/3; }
.gj-jacuzzi{ grid-column:2; grid-row:1; aspect-ratio:4/3; }
.gj-reception{ grid-column:3; grid-row:1; aspect-ratio:4/3; }
.gj-room{ grid-column:2; grid-row:2; aspect-ratio:4/3; }
.gj-view{ grid-column:3; grid-row:2; aspect-ratio:4/3; }

.gj-photo img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s var(--ease); }
.gj-photo::after{
  content:''; position:absolute; inset:0; background:linear-gradient(to top, rgba(20,14,10,.62), transparent 55%);
  opacity:0; transition:opacity .3s var(--ease);
}
.gj-photo:hover img, .gj-photo:focus-visible img{ transform:scale(1.05); }
.gj-photo:hover::after, .gj-photo:focus-visible::after{ opacity:1; }
.gj-photo figcaption{
  position:absolute; left:0; right:0; bottom:0; padding:16px 18px; z-index:1; color:#f3ecdf;
  font-size:.72rem; letter-spacing:.06em; text-transform:uppercase;
  opacity:0; transform:translateY(6px); transition:opacity .3s var(--ease), transform .3s var(--ease);
}
.gj-photo:hover figcaption, .gj-photo:focus-visible figcaption{ opacity:1; transform:translateY(0); }

@media (max-width:900px){
  .gj-collage{ grid-template-columns:1fr 1fr; grid-template-rows:auto auto auto; }
  .gj-chalet{ grid-column:1/3; grid-row:1; aspect-ratio:16/10; }
  .gj-jacuzzi{ grid-column:1; grid-row:2; }
  .gj-reception{ grid-column:2; grid-row:2; }
  .gj-room{ grid-column:1; grid-row:3; }
  .gj-view{ grid-column:2; grid-row:3; }
}
@media (max-width:640px){
  .gj-collage{ grid-template-columns:1fr; grid-template-rows:none; }
  .gj-chalet{ grid-column:1; grid-row:auto; aspect-ratio:4/3.4; }
  .gj-jacuzzi, .gj-reception, .gj-room, .gj-view{ grid-column:1; grid-row:auto; aspect-ratio:16/11; }
}
.gallery-more{ text-align:center; margin-top:44px; padding-bottom:40px; }

.lightbox{ position:fixed; inset:0; background:rgba(20,14,10,.95); z-index:300; display:none; align-items:center; justify-content:center; padding:40px; }
.lightbox.active{ display:flex; }
.lightbox img{ max-width:min(1100px,90vw); max-height:85vh; object-fit:contain; border-radius:0; }
.lightbox-close{
  position:absolute; top:26px; right:32px; width:44px; height:44px; border-radius:0;
  background:rgba(250,246,239,.12); color:#faf6ef; border:1px solid rgba(250,246,239,.3);
  font-size:1.2rem; cursor:pointer; display:flex; align-items:center; justify-content:center;
}

/* ---------- location: distance dial ---------- */
.location{ background:var(--surface); }
.location-grid{ display:grid; grid-template-columns:.95fr 1.05fr; gap:48px; align-items:center; }
.dial-wrap{ display:flex; justify-content:center; }
.dial-wrap svg{ width:100%; max-width:460px; height:auto; }
.dial-label{ font-family:var(--sans); font-size:.62rem; letter-spacing:.03em; fill:var(--ink-soft); }
.dial-label b{ font-weight:700; }
.dial-ring{ fill:none; stroke:var(--line); stroke-dasharray:3 5; }
.dial-spoke{ stroke:var(--beige-line); stroke-width:1; }
.dial-point{ fill:var(--sage); }
.dial-center{ fill:var(--brown-deep); }
.dial-center-label{ font-family:var(--serif); font-size:11px; fill:#faf6ef; text-anchor:middle; }
@media (max-width:900px){ .location-grid{ grid-template-columns:1fr; gap:36px; } }

/* ---------- testimonial ---------- */
.testimonial{ background:var(--ink); color:#f3ecdf; text-align:center; }
.testimonial-mark{ width:46px; height:46px; margin:0 auto 28px; opacity:.55; }
.testimonial blockquote{ font-family:var(--serif); font-size:clamp(1.4rem,3vw,2.1rem); line-height:1.5; max-width:760px; margin:0 auto; color:#faf6ef; }
.testimonial cite{ display:block; margin-top:30px; font-style:normal; font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color:rgba(250,246,239,.6); }

/* ---------- offer banner (ticket) ---------- */
.offer-banner{ background:var(--brown-deep); padding:0; }
.ticket{ display:grid; grid-template-columns:1fr auto 1fr; align-items:center; }
.ticket-side{ padding:40px 44px; color:#faf6ef; }
.ticket-side h3{ color:#faf6ef; font-size:1.35rem; }
.ticket-side p{ color:rgba(250,246,239,.75); font-size:.9rem; margin-top:8px; }
.ticket-side.right{ text-align:right; }
.ticket-stub{
  position:relative; height:100%; width:2px; background-image:radial-gradient(circle,#faf6ef 2px,transparent 2.2px);
  background-size:2px 16px; background-repeat:repeat-y; opacity:.4;
}
@media (max-width:768px){
  .ticket{ grid-template-columns:1fr; text-align:center; }
  .ticket-side.right{ text-align:center; }
  .ticket-stub{ width:100%; height:2px; background-image:radial-gradient(circle,#faf6ef 2px,transparent 2.2px); background-size:16px 2px; background-repeat:repeat-x; }
}

/* ---------- final CTA ---------- */
.final-cta{ position:relative; text-align:center; color:#faf6ef; overflow:hidden; }
.final-cta img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.final-cta::after{ content:''; position:absolute; inset:0; background:rgba(20,14,10,.6); z-index:1; }
.final-cta .container{ position:relative; z-index:2; }
.final-cta h2{ color:#faf6ef; font-size:clamp(1.9rem,3.8vw,2.8rem); max-width:20ch; margin:0 auto 28px; }
.final-cta .seal{ position:absolute; left:50%; top:-66px; transform:translateX(-50%); }

/* ---------- footer ---------- */
.site-footer{ background:var(--ink); color:rgba(250,246,239,.7); padding:0 0 50px; }
.footer-ridge{ display:block; width:100%; color:var(--bg); }
.site-footer .container{ max-width:1380px; }
.footer-top{ padding-top:72px; }
.footer-grid{ display:grid; grid-template-columns:1.2fr 1fr 1fr 1fr 1fr; gap:32px; padding-bottom:85px; border-bottom:1px solid rgba(250,246,239,.12); }
.footer-brand{ display:flex; align-items:center; gap:10px; margin-bottom:34px; }
.footer-brand img{ width:190px; height:auto; }
.footer-brand span{ font-family:var(--serif); font-size:1.2rem; color:#faf6ef; }
.footer-col + .footer-col{ border-left:1px solid rgba(250,246,239,.12); padding-left:32px; }
.footer-col h4, .footer-col-heading{ font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:#faf6ef; margin-bottom:26px; font-family:var(--sans); font-weight:700; }
.footer-col h4.footer-subhead{ margin-top:30px; }
.footer-col-toggle{ all:unset; box-sizing:border-box; display:flex; align-items:center; justify-content:space-between; gap:8px; width:100%; font:inherit; color:inherit; letter-spacing:inherit; text-transform:inherit; cursor:default; }
.footer-toggle-chevron{ display:none; flex:0 0 auto; width:14px; height:14px; color:rgba(250,246,239,.5); transition:transform .2s var(--ease); }
.footer-col a, .footer-col a:visited{ display:block; text-decoration:none; color:rgba(250,246,239,.68); font-size:.86rem; margin-bottom:24px; transition:color .15s var(--ease); }
.footer-col a:hover{ color:#faf6ef; }
.footer-col p{ font-size:.86rem; color:rgba(250,246,239,.68); margin-bottom:10px; }
.footer-col address{ font-style:normal; display:flex; flex-direction:column; gap:26px; }
.fc-row{ display:flex; align-items:flex-start; gap:10px; }
.fc-row .fc-ic{ flex:0 0 auto; width:16px; height:16px; margin-top:2px; color:rgba(250,246,239,.5); }
.fc-row span, .fc-row a, .fc-row a:visited{ font-size:.86rem; color:rgba(250,246,239,.68); margin-bottom:0; }
.fc-row a:hover{ color:#faf6ef; }
.footer-social-list{ display:flex; flex-direction:column; gap:24px; }
.footer-social-list a{ display:inline-flex; align-items:center; gap:10px; text-decoration:none; color:rgba(250,246,239,.68); font-size:.86rem; margin-bottom:0; transition:color .15s var(--ease); }
.footer-social-list a:hover{ color:#faf6ef; }
.footer-social-list svg{ width:16px; height:16px; flex:0 0 auto; color:rgba(250,246,239,.5); transition:color .15s var(--ease); }
.footer-social-list a:hover svg{ color:#faf6ef; }
.footer-bottom{ display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:12px; padding-top:32px; font-size:.76rem; color:rgba(250,246,239,.5); }
.footer-bottom a{ color:rgba(250,246,239,.5); text-decoration:none; }
.footer-bottom a:hover{ color:#faf6ef; }
.footer-sitemap-link{ justify-self:center; }
.footer-bottom .powered{ justify-self:end; margin:0; }
.footer-bottom .powered a{ color:rgba(250,246,239,.5); }
.footer-bottom .powered a:hover{ color:#faf6ef; }
@media (max-width:900px){
  .footer-grid{ grid-template-columns:1fr 1fr; padding-bottom:64px; }
  .footer-col{ border-left:none; padding-left:0; }
  .footer-col:nth-child(n+3){ border-top:1px solid rgba(250,246,239,.12); padding-top:28px; }
  .footer-col:nth-child(2n){ border-left:1px solid rgba(250,246,239,.12); padding-left:32px; }
}
@media (max-width:560px){
  .footer-grid{ grid-template-columns:1fr; gap:0; padding-bottom:40px; }
  .footer-col{ border-left:none; padding-left:0; }
  .footer-col + .footer-col{ border-top:1px solid rgba(250,246,239,.12); padding-top:20px; border-left:none; padding-left:0; }
  .footer-brand-col{ margin-bottom:42px; }
  .footer-bottom{ grid-template-columns:1fr; justify-items:center; text-align:center; }
  .footer-sitemap-link, .footer-bottom .powered{ justify-self:center; }

  /* footer columns: accordion on mobile */
  .footer-col-heading{ margin-bottom:0; }
  .footer-col-toggle{ cursor:pointer; padding:4px 0; }
  .footer-toggle-chevron{ display:block; }
  .footer-col-toggle[aria-expanded="true"] .footer-toggle-chevron{ transform:rotate(180deg); }
  .footer-col-body{ display:none; overflow:hidden; }
  .footer-col-body.open{ display:block; margin-top:22px; }

  /* social links: horizontal icon row on mobile (label kept for screen readers) */
  .footer-social-list{ flex-direction:row; flex-wrap:wrap; gap:14px; }
  .footer-social-list a{ display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; border:1px solid rgba(250,246,239,.18); border-radius:50%; padding:0; }
  .footer-social-list svg{ width:18px; height:18px; }
  .footer-social-label{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
}

/* ==========================================================================
   Inner pages (Rooms summary + detail)
   ========================================================================== */

/* ---------- page hero (compact banner) ---------- */
.page-hero{
  position:relative; min-height:68vh; display:flex; align-items:flex-end; color:#faf6ef; overflow:hidden; margin-top:0;
}
.page-hero img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.page-hero::after{
  content:''; position:absolute; inset:0; z-index:1;
  background:linear-gradient(to top, rgba(20,14,10,.72) 0%, rgba(20,14,10,.2) 60%, rgba(20,14,10,.35) 100%);
}
.page-hero .container{ position:relative; z-index:2; padding-bottom:56px; width:100%; }
.page-hero .crumb{ font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:rgba(250,246,239,.75); margin-bottom:16px; display:block; }
.page-hero .crumb a{ color:rgba(250,246,239,.75); text-decoration:none; border-bottom:1px solid rgba(250,246,239,.3); }
.page-hero .crumb a:hover{ color:#faf6ef; border-color:#faf6ef; }
.page-hero h1{ font-size:clamp(2.2rem,5vw,3.6rem); color:#faf6ef; max-width:18ch; }
.page-hero p{ margin-top:16px; max-width:52ch; font-size:1rem; color:rgba(250,246,239,.88); }

/* ---------- page hero → content transition: distant, irregular mountain contour ---------- */
.mountain-ridge{
  position:absolute; left:0; bottom:-2px; width:100%; height:104px; z-index:2;
  color:var(--bg); display:block; pointer-events:none;
}
.mountain-ridge.is-white{ color:var(--surface); }
@media (max-width:1023px){ .mountain-ridge{ height:78px; } }
@media (max-width:639px){ .mountain-ridge{ height:46px; } }

/* ---------- room hero (single image, full-bleed) ---------- */
.room-hero{ min-height:82vh; }

/* ---------- page-level booking band (below hero, inner pages) ---------- */
.page-book-band{ position:relative; z-index:5; background:var(--surface); padding-top:0; padding-bottom:64px; display:flex; justify-content:center; }
.page-book-band .booking-bar{
  margin:0 24px; border-radius:0; padding:6px; border:1px solid var(--line);
  box-shadow:0 14px 40px -16px rgba(45,34,30,.28);
}
.page-book-band .booking-field{ padding:14px 26px; }
.page-book-band .booking-submit{ border-radius:0; margin:2px; }
@media (max-width:900px){
  .page-book-band .booking-bar{ border-radius:0; padding:4px; }
  .page-book-band .booking-submit{ border-radius:0; }
}

/* ---------- room overview (2-col: text + mini slider) ---------- */
.room-overview{ background:var(--surface); padding-top:0; }
.overview-grid{ display:grid; grid-template-columns:repeat(12,1fr); gap:24px; align-items:center; }
.overview-text{ grid-column:1/span 5; }
.overview-text p{ font-size:.98rem; color:var(--ink-soft); margin-bottom:18px; }
.overview-stats{ display:flex; flex-wrap:wrap; gap:0; margin-top:8px; padding-top:22px; border-top:1px solid var(--line); }
.overview-stats div{ flex:1 1 0; min-width:0; position:relative; padding-right:16px; }
.overview-stats div + div{ padding-left:16px; }
.overview-stats div + div::before{ content:''; position:absolute; left:0; top:2px; bottom:2px; width:1px; background:var(--line); }
.overview-stats b{ display:block; font-family:var(--serif); font-size:1.4rem; color:var(--brown-deep); font-weight:400; }
.overview-stats span{ display:block; margin-top:6px; font-size:.64rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-faint); }
@media (max-width:560px){
  .overview-stats div{ padding-right:8px; }
  .overview-stats div + div{ padding-left:8px; }
  .overview-stats b{ font-size:1.05rem; }
  .overview-stats span{ font-size:.56rem; letter-spacing:.04em; }
}
.overview-media{ grid-column:7/span 6; position:relative; }
.overview-media .slider-frame{ position:relative; aspect-ratio:4/5; border-radius:0; overflow:hidden; box-shadow:0 24px 48px -20px rgba(45,34,30,.35); }
.overview-media .hero-slide{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .8s var(--ease); }
.overview-media .hero-slide.is-active{ opacity:1; }
.overview-media .slide-arrow{
  position:absolute; top:50%; transform:translateY(-50%); z-index:3; width:38px; height:38px; border-radius:0;
  background:rgba(250,246,239,.92); border:none; cursor:pointer; display:flex; align-items:center; justify-content:center;
  color:var(--brown-deep); transition:background .2s var(--ease);
}
.overview-media .slide-arrow:hover{ background:#fff; }
.overview-media .slide-prev{ left:16px; }
.overview-media .slide-next{ right:16px; }
.overview-media .slide-arrow svg{ width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:2; }
.overview-media .blob{ position:absolute; z-index:0; width:200px; height:200px; border-radius:50%; background:var(--sage); opacity:.12; filter:blur(50px); bottom:-40px; left:-40px; }
@media (max-width:900px){
  .overview-grid{ grid-template-columns:1fr; }
  .overview-text, .overview-media{ grid-column:1; }
  .overview-media{ order:-1; }
}

/* ---------- intro strip (summary page) ---------- */
.page-intro{
  background:var(--bg); padding-bottom:0;
  background-image:radial-gradient(rgba(90,68,48,.025) 1px, transparent 1px);
  background-size:3px 3px;
}
.page-intro p{ max-width:70ch; font-size:1.05rem; color:var(--ink-soft); }

/* ---------- wide editorial row (equal footing, alternating) ---------- */
.rooms-list{
  background:var(--surface);
  background-image:radial-gradient(rgba(90,68,48,.025) 1px, transparent 1px);
  background-size:3px 3px;
}
.rooms-list.offers-list{ background:var(--bg); }
.wide-row{
  display:grid; grid-template-columns:repeat(12,1fr); gap:24px; align-items:center;
  padding:56px 0; border-bottom:1px solid var(--line);
}
.rooms-list .wide-row:last-child{ border-bottom:none; padding-bottom:0; }
.rooms-list .wide-row:first-child{ padding-top:0; }
.wide-row .media{ grid-column:1/span 7; position:relative; overflow:hidden; border-radius:0; aspect-ratio:4/3; }
.wide-row .media img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.wide-row .media:hover img{ transform:scale(1.05); }
.wide-row .content{ grid-column:9/span 4; display:flex; flex-direction:column; gap:14px; }
.wide-row.reverse .media{ grid-column:6/span 7; order:2; }
.wide-row.reverse .content{ grid-column:1/span 4; order:1; }
.wide-row .content h2{ font-size:1.7rem; }
.wide-row .content h3{ font-size:1.7rem; }
.wide-row .content p{ font-size:.92rem; color:var(--ink-soft); }
.contact-card-links{ display:flex; flex-direction:column; align-items:flex-start; gap:8px; }
.contact-card-links p{ margin:0 0 4px; }
.contact-card-links a{ font-size:.94rem; color:var(--ink); text-decoration:none; }
.contact-card-links a:hover{ color:var(--brown-deep); }
.wide-row .pills{ display:flex; flex-wrap:wrap; gap:10px; }
.wide-row .pill{
  display:flex; align-items:center; gap:7px; background:var(--beige-soft); border:1px solid var(--line);
  padding:6px 14px; border-radius:0; font-size:.74rem; color:var(--ink);
}
.wide-row .pill svg{ width:14px; height:14px; stroke:var(--sage); flex-shrink:0; }
.wide-row .cta-row{ display:flex; flex-wrap:wrap; align-items:center; gap:22px; margin-top:6px; }
/* contact page: upcoming-destinations card (no photo yet, centred text panel) */
.coming-soon-row{ scroll-margin-top:110px; }
.coming-soon-row .content{
  grid-column:3/span 8; align-items:center; text-align:center;
  background:var(--beige-soft); border:1px solid var(--line); padding:48px 40px;
}
.coming-soon-row .contact-card-links{ align-items:center; }
.coming-soon-row .cta-row{ justify-content:center; }
@media (max-width:900px){
  .coming-soon-row .content{ grid-column:1; padding:36px 22px; }
}

@media (max-width:900px){
  .wide-row{ grid-template-columns:1fr; gap:24px; }
  .wide-row .media, .wide-row .content, .wide-row.reverse .media, .wide-row.reverse .content{
    grid-column:1; order:0;
  }
  .wide-row.reverse .media{ order:0; }
}

.corporate-band .property-tabs{ display:none; }
@media (max-width:768px){
  .corporate-band .property-tabs{
    display:flex; justify-content:center; gap:6px; max-width:340px; margin:0 auto 8px;
    border:1px solid var(--line); padding:4px;
  }
  .corporate-band .property-tab{
    flex:1; background:none; border:none; padding:9px 6px; font-size:.72rem; letter-spacing:.06em;
    text-transform:uppercase; color:var(--ink-faint); cursor:pointer; transition:background .2s var(--ease), color .2s var(--ease);
  }
  .corporate-band .property-tab.active{ background:var(--brown-deep); color:#fff; }
  .corporate-band .wide-row[data-retreat]{ display:none; }
  .corporate-band .wide-row[data-retreat].active{ display:grid; }
}

/* ---------- spa & wellness feature (full-bleed image, floating card) ---------- */
.spa-feature{
  background:var(--surface);
  background-image:radial-gradient(rgba(90,68,48,.025) 1px, transparent 1px);
  background-size:3px 3px;
}
.spa-feature-grid{ display:grid; grid-template-columns:1fr 1fr; gap:0 64px; align-items:center; }
.spa-feature-text{ max-width:440px; }
.spa-feature-text h2{ font-size:clamp(1.9rem,3vw,2.5rem); margin:10px 0 18px; }
.spa-feature-text p{ font-size:.98rem; line-height:1.75; color:var(--ink-soft); margin-bottom:28px; }
.spa-feature-media{ aspect-ratio:4/3; border-radius:0; overflow:hidden; }
.spa-feature-media img{ width:100%; height:100%; object-fit:cover; display:block; }
@media (max-width:900px){
  .spa-feature-grid{ grid-template-columns:1fr; gap:32px; }
  .spa-feature-media{ order:-1; }
  .spa-feature-text{ max-width:none; }
}

/* ---------- amenity grid (detail page) ---------- */
.amenities{
  background:var(--bg);
  background-image:radial-gradient(rgba(90,68,48,.025) 1px, transparent 1px);
  background-size:3px 3px;
}
.amenity-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.amenity-tile{
  background:var(--surface); border-radius:0; padding:22px 20px; display:flex; align-items:center; gap:16px;
  box-shadow:0 8px 22px -14px rgba(45,34,30,.3); border-bottom:3px solid transparent;
  transition:border-color .3s var(--ease), transform .3s var(--ease), box-shadow .3s var(--ease);
}
.amenity-tile:hover{ border-bottom-color:var(--brown); transform:translateY(-3px); box-shadow:0 14px 28px -14px rgba(45,34,30,.35); }
.amenity-tile svg{ width:24px; height:24px; stroke:var(--brown); flex-shrink:0; }
.amenity-tile span{ font-size:.82rem; color:var(--ink); font-weight:600; }
@media (max-width:900px){ .amenity-grid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:560px){ .amenity-grid{ grid-template-columns:repeat(2,1fr); gap:12px; } .amenity-tile{ padding:16px; gap:12px; } }
.amenity-grid.cols-3{ grid-template-columns:repeat(3,1fr); }
@media (max-width:700px){ .amenity-grid.cols-3{ grid-template-columns:1fr; } }

/* ---------- room detail gallery (masonry) ---------- */
.room-gallery{ background:var(--beige-soft); }
.room-gallery-masonry{ columns:2; column-fill:balance; column-gap:16px; }
.room-gallery-masonry figure{
  margin:0 0 16px; break-inside:avoid; overflow:hidden; border-radius:0; cursor:pointer;
  box-shadow:0 10px 24px -14px rgba(45,34,30,.3); transition:box-shadow .3s var(--ease);
}
.room-gallery-masonry figure:hover{ box-shadow:0 20px 38px -16px rgba(45,34,30,.4); }
.room-gallery-masonry img{ display:block; width:100%; height:auto; transition:transform .5s var(--ease); }
.room-gallery-masonry figure:hover img{ transform:scale(1.06); }
.room-gallery-masonry.cols-3{ columns:3; }
@media (max-width:768px){ .room-gallery-masonry.cols-3{ columns:2; } }
@media (max-width:560px){ .room-gallery-masonry{ columns:1; } }

/* ---------- other rooms teaser (horizontal scroll-snap) ---------- */
.other-rooms{ background:var(--surface); }
.other-rooms-scroll{
  display:flex; gap:28px; justify-content:center; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:10px;
  scrollbar-width:thin; scrollbar-color:var(--beige) transparent;
}
.other-room-card{
  text-decoration:none; display:block; flex:0 0 auto; width:390px; scroll-snap-align:start;
  border-radius:0; overflow:hidden; border:1px solid var(--line); box-shadow:0 10px 24px -16px rgba(45,34,30,.25);
  transition:box-shadow .3s var(--ease), transform .3s var(--ease);
}
.other-room-card:hover{ box-shadow:0 18px 34px -16px rgba(45,34,30,.35); transform:translateY(-3px); }
.other-room-card .media{ aspect-ratio:16/10; overflow:hidden; position:relative; }
.other-room-card .media img{ width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease); }
.other-room-card:hover .media img{ transform:scale(1.06); }
.other-room-card .chip{
  position:absolute; top:14px; left:14px; background:rgba(250,246,239,.94); color:var(--brown-deep);
  padding:6px 15px; border-radius:0; font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; font-weight:600;
}
.other-room-card .body{ padding:22px 24px 26px; }
.other-room-card h3{ font-size:1.25rem; color:var(--ink); }
.other-room-card span{ display:block; margin-top:8px; font-size:.85rem; color:var(--ink-soft); }
@media (max-width:1023px){ .other-rooms-scroll{ justify-content:flex-start; } }
@media (max-width:560px){ .other-room-card{ width:78vw; } }

/* ==========================================================================
   Inner pages — Gallery, Facilities, Experiences, Contact, Location
   ========================================================================== */

/* ---------- gallery ---------- */
.gallery-page{
  background:var(--bg); padding:32px 0;
  background-image:radial-gradient(rgba(90,68,48,.025) 1px, transparent 1px);
  background-size:3px 3px;
}

/* ---------- property showcase (editorial asymmetric layout, contained panel) ---------- */
.property-showcase{
  display:grid; grid-template-columns:260px 1fr; gap:0;
  max-width:1280px; margin:0 auto; padding:40px 24px;
  background:var(--beige-soft); border-radius:0;
}
.gallery-page .property-showcase:first-of-type{ margin-top:56px; }
.property-showcase + .property-showcase{ margin-top:32px; }

.ps-info{
  padding:56px 24px;
  display:flex; flex-direction:column; justify-content:center;
}
.ps-number{
  font-family:var(--sans); font-size:.82rem; font-weight:700; letter-spacing:.08em;
  color:var(--brown); margin-bottom:8px;
}
.ps-name{
  font-family:var(--serif); font-size:clamp(1.7rem,2.6vw,2.15rem); text-transform:uppercase;
  letter-spacing:.02em; color:var(--ink); margin-bottom:6px; line-height:1.1;
}
.ps-subtitle{ font-family:var(--sans); font-size:.86rem; color:var(--ink-soft); margin-bottom:20px; }
.ps-divider{ width:32px; height:1px; background:var(--brown); margin-bottom:22px; }
.ps-desc{ font-size:.92rem; line-height:1.7; color:var(--ink-soft); margin-bottom:30px; }
.ps-info .btn{ align-self:flex-start; margin-top:4px; }

.ps-media{ display:flex; flex-direction:column; gap:10px; }
.ps-thumb-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:3px; }
.ps-thumb-row figure{ margin:0; position:relative; aspect-ratio:16/9; overflow:hidden; cursor:pointer; border-radius:0; }
.ps-thumb-row img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s var(--ease); }
.ps-mosaic img{ position:absolute; inset:0; }
.ps-thumb-row figure:hover img, .ps-thumb-row figure:focus-visible img{ transform:scale(1.06); }

/* bento mosaic: one large tile + four smaller tiles, used by every property panel */
.ps-mosaic{
  grid-template-columns:repeat(4, minmax(0,1fr)); grid-template-rows:repeat(2, minmax(0,1fr));
  aspect-ratio:16/7; gap:7px;
}
.ps-mosaic figure{ aspect-ratio:auto; border:1px solid var(--beige-line); min-height:0; min-width:0; }
.ps-mosaic img{ min-height:0; min-width:0; }
.ps-mosaic-big{ grid-column:1 / span 2; grid-row:1 / span 2; }
@media (max-width:560px){
  .ps-mosaic{ grid-template-columns:repeat(2, minmax(0,1fr)); grid-template-rows:repeat(3, minmax(0,1fr)); aspect-ratio:4/5; }
  .ps-mosaic-big{ grid-column:1 / span 2; grid-row:1 / span 1; }
}

@media (max-width:1023px){
  .property-showcase{ grid-template-columns:210px 1fr; padding:28px 20px; }
  .gallery-page .property-showcase:first-of-type{ margin-top:40px; }
  .property-showcase + .property-showcase{ margin-top:26px; }
  .ps-info{ padding:32px 24px; }
  .ps-name{ font-size:1.5rem; }
  .ps-desc{ margin-bottom:24px; }
}
@media (max-width:760px){
  .property-showcase{ grid-template-columns:1fr; margin-left:20px; margin-right:20px; padding:22px 18px; }
  .gallery-page .property-showcase:first-of-type{ margin-top:32px; }
  .property-showcase + .property-showcase{ margin-top:22px; }
  .ps-info{ padding:30px 26px; }
  .ps-info .btn{ margin-top:22px; align-self:flex-start; }
}

/* ---------- facilities: detailed amenity tiles ---------- */
.amenity-tile.detailed{ flex-direction:column; align-items:flex-start; gap:12px; padding:30px 26px; }
.amenity-tile.detailed svg{ width:28px; height:28px; }
.amenity-tile.detailed h3{ font-family:var(--serif); font-size:1.08rem; color:var(--ink); font-weight:400; }
.amenity-tile.detailed p{ font-size:.86rem; color:var(--ink-soft); }
.facilities-crosslink{ background:var(--beige-soft); }

/* ---------- experiences: Plan Your Day tabs ---------- */
.plan-tabs{ display:flex; justify-content:center; gap:12px; margin-bottom:44px; flex-wrap:wrap; }
.plan-tab{
  font-family:var(--sans); font-size:.72rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  padding:13px 28px; border-radius:0; border:1px solid var(--line); background:var(--surface); color:var(--ink-soft);
  cursor:pointer; transition:all .2s var(--ease);
}
.plan-tab[aria-selected="true"]{ background:var(--brown); border-color:var(--brown); color:#faf6ef; }
.plan-panel{ display:grid; grid-template-columns:1fr 1fr; gap:44px; align-items:center; }
.plan-panel[hidden]{ display:none; }
.plan-media{ aspect-ratio:4/4.6; border-radius:0; overflow:hidden; box-shadow:0 20px 44px -22px rgba(45,34,30,.35); }
.plan-media img{ width:100%; height:100%; object-fit:cover; display:block; }
.plan-items{ display:flex; flex-direction:column; gap:24px; }
.plan-items .link-cta{ align-self:flex-start; }
.plan-item{ display:flex; gap:16px; align-items:flex-start; }
.plan-item svg{ width:26px; height:26px; stroke:var(--sage); flex-shrink:0; margin-top:2px; }
.plan-item h3{ font-size:1.05rem; margin-bottom:4px; }
.plan-item p{ font-size:.86rem; color:var(--ink-soft); }
@media (max-width:900px){ .plan-panel{ grid-template-columns:1fr; } .plan-media{ order:-1; } }

/* ---------- experiences: horizontal icon-card strip ---------- */
.exp-scroll{
  display:flex; gap:22px; overflow-x:auto; padding-bottom:12px; scroll-snap-type:x mandatory;
  scrollbar-width:thin; scrollbar-color:var(--beige) transparent;
}
.exp-scroll-card{
  flex:0 0 auto; width:260px; scroll-snap-align:start; border:1px solid var(--line); border-radius:0;
  padding:32px 26px; background:var(--surface); transition:transform .25s var(--ease), box-shadow .25s var(--ease);
}
.exp-scroll-card:hover{ transform:translateY(-5px); box-shadow:0 18px 34px -18px rgba(45,34,30,.28); }
.exp-scroll-card svg{ width:27px; height:27px; stroke:var(--sage); margin-bottom:18px; }
.exp-scroll-card h3{ font-size:1.05rem; margin-bottom:8px; }
.exp-scroll-card p{ font-size:.84rem; color:var(--ink-soft); }

/* ---------- location: getting-here timeline ---------- */
.getting-here-grid{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start; }
.gh-timeline .timeline-item{ position:relative; padding-left:48px; padding-bottom:38px; }
.gh-timeline .timeline-item:last-child{ padding-bottom:0; }
.gh-timeline .timeline-item::before{ content:''; position:absolute; left:15px; top:38px; bottom:0; width:1px; background:var(--line); }
.gh-timeline .timeline-item:last-child::before{ display:none; }
.gh-timeline .timeline-dot{
  position:absolute; left:0; top:0; width:32px; height:32px; border-radius:50%; background:var(--brown);
  display:flex; align-items:center; justify-content:center;
}
.gh-timeline .timeline-dot svg{ width:16px; height:16px; stroke:#faf6ef; }
.gh-timeline h3{ font-size:1.12rem; margin-bottom:8px; }
.gh-timeline p{ font-size:.92rem; color:var(--ink-soft); max-width:48ch; }
.gh-aside{ background:var(--surface); border-radius:0; overflow:hidden; box-shadow:0 20px 44px -22px rgba(45,34,30,.3); }
.gh-aside .media{ aspect-ratio:4/3; }
.gh-aside .media img{ width:100%; height:100%; object-fit:cover; display:block; }
.gh-aside .body{ padding:26px 28px; }
.gh-aside h3{ font-size:1.1rem; margin-bottom:8px; }
.gh-aside p{ font-size:.9rem; color:var(--ink-soft); }
@media (max-width:900px){ .getting-here-grid{ grid-template-columns:1fr; } }

/* ---------- location: nearby attractions ---------- */
.attr-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.attr-card{ background:var(--surface); border:1px solid var(--line); border-radius:0; padding:28px 24px; }
.attr-card svg{ width:24px; height:24px; stroke:var(--sage); margin-bottom:14px; }
.attr-card .badge{
  display:inline-block; font-size:.62rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:var(--brown-deep); background:var(--beige-soft); padding:5px 12px; border-radius:0; margin-bottom:14px; margin-left:10px;
}
.attr-card h3{ font-size:1.05rem; margin-bottom:6px; }
.attr-card p{ font-size:.84rem; color:var(--ink-soft); }
@media (max-width:900px){ .attr-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .attr-grid{ grid-template-columns:1fr; } }

/* ---------- location: map + directions ---------- */
.map-section{ background:var(--beige-soft); }
.map-frame{ border-radius:0; overflow:hidden; box-shadow:0 20px 40px -20px rgba(45,34,30,.3); margin-bottom:28px; }
.map-frame iframe{ width:100%; height:420px; border:0; display:block; }
.directions-card{
  background:var(--surface); border-radius:0; padding:32px; max-width:760px; margin:0 auto;
  box-shadow:0 20px 44px -22px rgba(45,34,30,.3);
}
.directions-row{ display:flex; flex-wrap:wrap; gap:20px; align-items:flex-end; }
.directions-row .form-field{ flex:1 1 220px; margin-bottom:0; }
@media (max-width:640px){ .directions-row{ flex-direction:column; align-items:stretch; } }

/* ---------- contact ---------- */
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start; }
.contact-info-media{ border-radius:0; overflow:hidden; aspect-ratio:16/10; margin-bottom:30px; box-shadow:0 20px 44px -22px rgba(45,34,30,.3); }
.contact-info-media img{ width:100%; height:100%; object-fit:cover; display:block; }
.contact-block + .contact-block{ margin-top:26px; }
.contact-block h3{ font-family:var(--serif); font-size:1.1rem; margin-bottom:6px; font-weight:400; }
.contact-block p, .contact-block a{ font-size:.92rem; color:var(--ink-soft); text-decoration:none; display:block; }
.contact-block a:hover{ color:var(--brown-deep); }
.contact-block p.icon-line, .contact-block a.icon-line,
.contact-card-links p.icon-line, .contact-card-links a.icon-line{ display:flex; align-items:flex-start; gap:9px; }
.icon-line svg{ flex-shrink:0; margin-top:3px; stroke:var(--sage); }

.career-icon{ width:26px; height:26px; stroke:var(--sage); display:block; margin-bottom:10px; }
.contact-form{ background:var(--surface); border-radius:0; padding:40px; box-shadow:0 20px 44px -22px rgba(45,34,30,.3); }
.form-field{ margin-bottom:20px; }
.form-field label{ display:block; font-size:.66rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:8px; }
.form-field input, .form-field textarea, .form-field select{
  width:100%; border:1px solid var(--line); border-radius:4px; padding:13px 16px; font-family:var(--sans);
  font-size:.92rem; color:var(--ink); background:var(--bg);
}
.form-field input:focus, .form-field textarea:focus, .form-field select:focus{ outline:none; border-color:var(--brown); }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.form-consent{ display:flex; gap:10px; align-items:flex-start; font-size:.78rem; color:var(--ink-soft); margin-bottom:22px; }
.form-consent input{ margin-top:3px; accent-color:var(--brown); width:auto; }
.form-status{ font-size:.86rem; color:var(--sage); font-weight:600; margin-bottom:16px; display:none; }
.form-status.show{ display:block; }
@media (max-width:900px){
  .contact-grid{ grid-template-columns:1fr; }
  .form-row{ grid-template-columns:1fr; }
}

/* ==========================================================================
   Nazaara Hotels — brand homepage sections
   ========================================================================== */

/* ---------- brand hero (crossfade across the three destinations) ---------- */
.brand-hero{
  position:relative; height:100svh; min-height:620px; overflow:hidden; color:#faf6ef;
}
.brand-hero .hero-slide{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; opacity:0;
  transition:opacity 1.6s ease;
}
.brand-hero .hero-slide.is-active{ opacity:1; }
@media (max-width:1023px){ .brand-hero{ height:82vh; min-height:520px; } }
@media (max-width:639px){ .brand-hero{ height:64vh; min-height:420px; } }
.brand-hero .hero-booking{ position:absolute; left:0; right:0; bottom:calc(6% + 84px); margin-top:0; padding:0 24px; }
.brand-hero .hero-booking-links{
  position:absolute; left:50%; bottom:64px; transform:translateX(-50%); z-index:4; margin-top:0;
}
.brand-hero .hero-dots{
  position:absolute; left:50%; bottom:24px; transform:translateX(-50%); z-index:3;
  display:flex; gap:10px;
}
.brand-hero .hero-dot{
  width:8px; height:8px; border-radius:0; background:rgba(250,246,239,.4); border:none; padding:0; cursor:pointer;
  transition:background .2s var(--ease), transform .2s var(--ease);
}
.brand-hero .hero-dot.is-active{ background:#faf6ef; transform:scale(1.3); }
.hero-cta-row{ margin-top:40px; display:flex; gap:16px; flex-wrap:wrap; justify-content:center; }
.hero-locations{
  margin-top:52px; display:flex; align-items:center; gap:14px; flex-wrap:wrap; justify-content:center;
  font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color:rgba(250,246,239,.72);
}
.hero-locations span.sep{ opacity:.45; }

/* ---------- brand intro (about + USP + stats) ---------- */
.brand-intro{ background:var(--bg); text-align:center; }
.brand-intro .usp-line{
  font-family:var(--serif); font-size:clamp(1.3rem,2.6vw,1.85rem); color:var(--brown-deep);
  max-width:30ch; margin:0 auto 26px; line-height:1.35;
}
.brand-intro p.lead{ max-width:68ch; margin:0 auto; color:var(--ink-soft); font-size:1.03rem; }
.brand-stats{ display:flex; justify-content:center; flex-wrap:wrap; gap:0; margin-top:56px; }
.brand-stats div{ padding:0 44px; position:relative; }
.brand-stats div + div::before{ content:''; position:absolute; left:0; top:8px; bottom:8px; width:1px; background:var(--line); }
.brand-stats b{ display:block; font-family:var(--serif); font-size:2.5rem; color:var(--brown-deep); font-weight:400; line-height:1; }
.brand-stats span{ display:block; margin-top:10px; font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint); }
@media (max-width:640px){
  .brand-stats{ gap:24px 0; }
  .brand-stats div{ padding:0 22px; flex:1 1 40%; }
  .brand-stats div + div::before{ display:none; }
}

/* ---------- destinations triptych ---------- */
.destinations{ background:var(--ink); padding-bottom:0; }
.destinations .eyebrow{ color:#e7cfa8; }
.destinations .section-head h2, .destinations .section-head p{ color:#f3ecdf; }
.destinations .section-head p{ color:rgba(243,236,223,.68); }
.dest-triptych{ display:flex; gap:4px; min-height:620px; }
.dest-track{ display:contents; }
.dest-dots{ display:none; }
.dest-panel{
  position:relative; flex:1 1 0; min-width:0; overflow:hidden; cursor:pointer; text-decoration:none; display:block;
  transition:flex-grow .6s cubic-bezier(.16,1,.3,1);
}
.dest-panel img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transition:transform 1s var(--ease);
}
.dest-panel::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(to top, rgba(15,10,8,.9) 0%, rgba(15,10,8,.22) 48%, rgba(15,10,8,.48) 100%);
  transition:opacity .5s ease;
}
.dest-panel:hover{ flex-grow:1.6; }
.dest-panel:hover img{ transform:scale(1.06); }
.dest-inner{ position:absolute; left:0; right:0; bottom:0; z-index:2; padding:36px 30px; color:#faf6ef; }
.dest-place{ font-size:.68rem; letter-spacing:.18em; text-transform:uppercase; color:#e7cfa8; display:block; margin-bottom:12px; }
.dest-inner h3{ font-size:clamp(1.4rem,2.4vw,1.9rem); color:#faf6ef; margin-bottom:8px; }
.dest-inner .dest-tag{ font-family:var(--serif); font-style:italic; font-size:.96rem; color:rgba(250,246,239,.85); display:block; }
.dest-meta{
  display:flex; gap:16px; flex-wrap:wrap; font-size:.7rem; letter-spacing:.04em; color:rgba(250,246,239,.72);
  margin:18px 0 20px; max-height:0; opacity:0; overflow:hidden; transition:max-height .4s ease, opacity .3s ease;
}
.dest-panel:hover .dest-meta{ max-height:60px; opacity:1; }
.dest-inner .link-cta{ color:#e7cfa8; border-color:#e7cfa8; }
.dest-inner .link-cta:hover{ color:#fff; border-color:#fff; }
@media (max-width:900px){
  .dest-triptych{ flex-direction:column; min-height:0; gap:16px; }
  .dest-panel{ min-height:380px; flex-grow:1 !important; border-radius:0; }
  .dest-meta{ max-height:none; opacity:1; }
}
@media (max-width:768px){
  .dest-triptych{ display:block; position:relative; }
  .dest-track{
    display:flex; flex-direction:row; flex-wrap:nowrap; gap:0;
    overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth;
    overscroll-behavior-x:contain; touch-action:pan-x pan-y;
    -webkit-overflow-scrolling:touch;
    -ms-overflow-style:none; scrollbar-width:none;
  }
  .dest-track::-webkit-scrollbar{ display:none; }
  .dest-panel{ flex:0 0 100% !important; width:100%; min-height:460px; scroll-snap-align:center; }
  .dest-inner{ padding-bottom:56px; }
  .dest-dots{
    position:absolute; left:0; right:0; bottom:16px; z-index:3;
    display:flex; justify-content:center; gap:9px; margin-top:0;
  }
  .dest-dots button{
    width:8px; height:8px; border-radius:0; background:rgba(243,236,223,.4); border:none; padding:0;
    cursor:pointer; transition:background .2s var(--ease), transform .2s var(--ease);
    box-shadow:0 1px 3px rgba(0,0,0,.35);
  }
  .dest-dots button.active{ background:#e7cfa8; transform:scale(1.3); }
}

/* ---------- brand story (manifesto + founding timeline) ---------- */
.brand-story{ background:var(--beige-soft); }
.story-manifesto{ max-width:760px; margin:0 auto 68px; text-align:center; }
.story-manifesto p{ font-family:var(--serif); font-size:clamp(1.15rem,2.3vw,1.5rem); line-height:1.65; color:var(--ink); }
.story-manifesto p + p{ margin-top:20px; }
.story-manifesto .story-quote{ margin-top:32px; font-style:italic; color:var(--brown-deep); font-size:1.08rem; }
.story-timeline{ display:flex; justify-content:center; gap:0; max-width:920px; margin:0 auto; position:relative; }
.story-timeline::before{ content:''; position:absolute; left:10%; right:10%; top:34px; height:1px; background:var(--beige-line); }
.story-step{ flex:1; text-align:center; position:relative; padding:0 14px; }
.story-dot{
  width:68px; height:68px; border-radius:0; overflow:hidden; margin:0 auto 20px;
  border:1px solid var(--surface); box-shadow:0 10px 22px -10px rgba(45,34,30,.45); position:relative; z-index:1;
}
.story-dot img{ width:100%; height:100%; object-fit:cover; display:block; }
.story-step h4{ font-size:1rem; color:var(--ink); margin-bottom:4px; font-family:var(--serif); font-weight:400; }
.story-step span{ font-size:.7rem; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-faint); }
@media (max-width:768px){
  .story-timeline{ flex-direction:column; gap:36px; max-width:280px; }
  .story-timeline::before{ display:none; }
}

/* ---------- what we stand for (pillars) ---------- */
.pillars-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.pillar-card{ text-align:center; padding:38px 26px; background:var(--surface); border:1px solid var(--line); border-radius:0; transition:transform .25s var(--ease), box-shadow .25s var(--ease); }
.pillar-card:hover{ transform:translateY(-5px); box-shadow:0 18px 34px -18px rgba(45,34,30,.28); }
.pillar-icon{ width:64px; height:64px; border-radius:50%; background:var(--sage-soft); display:flex; align-items:center; justify-content:center; margin:0 auto 20px; }
.pillar-card svg{ width:30px; height:30px; stroke:var(--sage); margin:0; }
.pillar-card h3{ font-size:1.08rem; margin-bottom:10px; }
.pillar-card p{ font-size:.86rem; color:var(--ink-soft); }
@media (max-width:900px){ .pillars-grid{ grid-template-columns:1fr; } }

/* ---------- gallery teaser ---------- */
.brand-gallery-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.brand-gallery-grid figure{ position:relative; margin:0; aspect-ratio:3/4; border-radius:0; overflow:hidden; cursor:pointer; }
.brand-gallery-grid img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s var(--ease); }
.brand-gallery-grid figure:hover img{ transform:scale(1.07); }
.brand-gallery-grid figcaption{
  position:absolute; left:0; right:0; bottom:0; padding:16px; color:#f3ecdf;
  font-size:.66rem; letter-spacing:.08em; text-transform:uppercase;
  background:linear-gradient(to top, rgba(20,14,10,.72), transparent 65%);
}
@media (max-width:900px){ .brand-gallery-grid{ grid-template-columns:repeat(2,1fr); } }

/* ---------- offers ---------- */
.offers-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.offer-card{ background:var(--surface); border:1px solid var(--line); border-radius:0; padding:38px 32px; transition:box-shadow .25s var(--ease), transform .25s var(--ease); }
.offer-card:hover{ transform:translateY(-4px); box-shadow:0 18px 34px -18px rgba(45,34,30,.28); }
.offer-card .offer-pct{ font-family:var(--serif); font-size:2.3rem; color:var(--brown-deep); display:block; margin-bottom:16px; }
.offer-card h3{ font-size:1.15rem; margin-bottom:10px; }
.offer-card p{ font-size:.87rem; color:var(--ink-soft); }
@media (max-width:900px){ .offers-grid{ grid-template-columns:1fr; } }

/* ---------- offers by property (one card per offer, infinite-loop rail) ---------- */
.offer-property-rail{
  overflow:hidden; padding:4px 0 8px;
}
.opr-track{ display:flex; gap:24px; align-items:stretch; }
.offer-property-card{
  flex:0 0 auto; width:clamp(260px,22vw,320px);
  background:var(--surface); border-radius:0; overflow:hidden;
  box-shadow:0 18px 40px -26px rgba(45,34,30,.4);
  transition:transform .3s var(--ease), box-shadow .3s var(--ease);
  display:flex; flex-direction:column;
}
.offer-property-card:hover{ transform:translateY(-4px); box-shadow:0 26px 50px -22px rgba(45,34,30,.45); }
.offers-controls{ display:flex; align-items:center; justify-content:flex-end; gap:12px; margin-bottom:16px; }
.of-prev, .of-next{
  width:44px; height:44px; border-radius:0; border:1px solid var(--line); background:none; color:var(--ink);
  cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .2s var(--ease), border-color .2s var(--ease); flex-shrink:0;
}
.of-prev svg, .of-next svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.of-prev:hover, .of-next:hover{ background:var(--beige-soft); border-color:var(--brown); }
.opc-img{ position:relative; height:260px; overflow:hidden; flex:0 0 auto; }
.opc-img img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s var(--ease); }
.offer-property-card:hover .opc-img img{ transform:scale(1.06); }
.opc-img::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(20,14,10,0) 55%, rgba(20,14,10,.6) 100%); }
.opc-place{ position:absolute; left:18px; bottom:14px; z-index:2; font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; color:#faf6ef; text-shadow:0 2px 8px rgba(0,0,0,.4); }
.opc-hotdeal{ position:absolute; top:14px; left:18px; z-index:2; display:flex; align-items:center; gap:6px; background:var(--brown-deep); color:#faf6ef; font-family:var(--sans); font-size:.62rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; padding:6px 14px 6px 10px; border-radius:0; }
.opc-hotdeal svg{ width:14px; height:14px; flex-shrink:0; }
.opc-body{ padding:26px 26px 28px; display:flex; flex-direction:column; flex:1 1 auto; }
.opc-uptolabel{ display:block; font-family:var(--sans); font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:4px; }
.opc-body h3{ font-family:var(--serif); font-size:1.6rem; font-weight:400; color:var(--ink); margin-bottom:14px; }
.opc-badges{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:16px; }
.opc-badge{ font-family:var(--serif); font-size:.86rem; color:var(--brown-deep); background:var(--beige-soft); border-radius:0; padding:5px 14px; display:inline-block; }
.opc-list{ margin:0 0 18px; padding:0; list-style:none; }
.opc-list li{ font-size:.8rem; color:var(--ink-soft); line-height:1.6; padding-left:16px; position:relative; margin-bottom:6px; }
.opc-list li::before{ content:"\2014"; position:absolute; left:0; color:var(--brown); }
.opc-secondary{ margin-bottom:16px; padding-top:16px; border-top:1px solid var(--line); }
.opc-secondary .opc-badge{ margin-bottom:10px; }
.opc-secondary .opc-list{ margin-bottom:0; }
.opc-body .link-cta{ margin-top:auto; align-self:flex-start; }
@media (max-width:640px){ .offer-property-card{ width:78vw; max-width:300px; } }

/* ---------- offers: diagonal editorial ---------- */
.offers-editorial{ overflow:hidden; }
.oe-grid{ display:grid; grid-template-columns:2fr 3fr; gap:0 32px; align-items:center; }
.oe-grid > *{ min-width:0; }
.oe-panel{ position:relative; }
.oe-tag{ width:44px; height:auto; stroke:var(--sage); fill:none; stroke-width:1.4; margin-bottom:22px; opacity:.8; }
.oe-panel h2{ font-size:clamp(2rem,3.6vw,2.9rem); line-height:1.15; margin-bottom:20px; }
.oe-divider{ display:block; width:64px; height:2px; background:var(--brown); margin-bottom:22px; }
.oe-panel p{ color:var(--ink-soft); font-size:.98rem; line-height:1.7; margin-bottom:30px; max-width:340px; }

.oe-diagonal{ display:flex; flex-direction:column; border-radius:0; }
.oe-row{
  position:relative; display:grid; grid-template-columns:1fr auto; align-items:end;
  min-height:300px; overflow:hidden; border-bottom:2px solid var(--bg);
  clip-path:polygon(56px 0,100% 0,100% 100%,0 100%);
}
.oe-row:last-child{ border-bottom:none; }
.oe-row-media{ position:absolute; inset:0; z-index:0; }
.oe-row-media img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s var(--ease); }
.oe-row:hover .oe-row-media img{ transform:scale(1.05); }
.oe-row-media::after{ content:""; position:absolute; inset:0; background:linear-gradient(100deg, rgba(20,14,10,.74) 0%, rgba(20,14,10,.42) 42%, rgba(20,14,10,.06) 72%); }

.oe-row-content{ position:relative; z-index:1; grid-column:1; padding:26px 20px 24px 92px; color:#faf6ef; }
.oe-uptolabel{ display:block; font-family:var(--sans); font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(250,246,239,.75); margin-bottom:4px; }
.oe-pct{ display:block; font-family:var(--serif); font-size:clamp(1.3rem,2.2vw,1.7rem); margin-bottom:12px; color:#faf6ef; }
.oe-terms{ margin:0 0 16px; padding:0; list-style:none; max-width:340px; }
.oe-terms li{ font-size:.78rem; color:rgba(250,246,239,.82); line-height:1.6; padding-left:14px; position:relative; margin-bottom:4px; }
.oe-terms li::before{ content:"\2014"; position:absolute; left:0; color:rgba(250,246,239,.6); }

.oe-secondary{ display:flex; align-items:center; gap:12px; padding-top:14px; border-top:1px solid rgba(250,246,239,.24); max-width:360px; }
.oe-secondary-thumb{ width:46px; height:46px; border-radius:0; object-fit:cover; flex:0 0 auto; }
.oe-secondary-text .opc-badge{ font-size:.7rem; padding:4px 12px; margin-bottom:4px; display:inline-block; }
.oe-secondary-terms{ margin:0; padding:0; list-style:none; }
.oe-secondary-terms li{ font-size:.68rem; color:rgba(250,246,239,.7); line-height:1.5; }

.oe-row-cta{ position:relative; z-index:1; grid-column:2; display:flex; flex-direction:column; align-items:flex-end; gap:10px; padding:26px 32px 24px 12px; }
.oe-row-place{ font-family:var(--serif); font-size:1.1rem; color:#faf6ef; text-shadow:0 2px 10px rgba(0,0,0,.4); }
.oe-arrow{
  width:48px; height:48px; border-radius:0; border:1px solid rgba(250,246,239,.6); color:#faf6ef;
  display:flex; align-items:center; justify-content:center; flex:0 0 auto;
  transition:background .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease);
}
.oe-arrow:hover{ background:#faf6ef; color:var(--brown-deep); border-color:#faf6ef; }
.oe-arrow svg{ width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:1.6; }

@media (max-width:1023px){
  .oe-grid{ grid-template-columns:1fr; gap:40px; }
  .oe-diagonal{ border-radius:0; overflow:hidden; }
  .oe-row{ min-height:auto; clip-path:none; }
  .oe-row-content{ padding-left:28px; }
}
@media (max-width:640px){
  .oe-row{ grid-template-columns:1fr; }
  .oe-row-content{ padding:22px 20px 4px 20px; }
  .oe-row-cta{ grid-column:1; flex-direction:row; justify-content:space-between; align-items:center; padding:16px 20px 20px; }
  .oe-secondary{ flex-wrap:wrap; }
}

/* ---------- testimonial grid ---------- */
.testimonial-rail{ overflow:hidden; padding:4px 0 8px; }
.tst-track{ display:flex; align-items:stretch; width:max-content; animation:tstScroll 40s linear infinite; }
.testimonial-rail:hover .tst-track{ animation-play-state:paused; }
.tst-set{ display:flex; align-items:stretch; flex:0 0 auto; }
@keyframes tstScroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
.testimonial-card{
  flex:0 0 auto; width:clamp(280px,26vw,380px); margin-right:26px;
  background:var(--ink); color:#f3ecdf; padding:38px 32px; border-radius:0;
  display:flex; flex-direction:column;
}
.testimonial-card .mark{ width:34px; height:34px; opacity:.5; margin-bottom:18px; stroke:#f3ecdf; fill:none; stroke-width:1.4; flex:0 0 auto; }
.testimonial-card p{ font-family:var(--serif); font-size:1.02rem; line-height:1.62; color:#faf6ef; }
.testimonial-card cite{
  display:block; margin-top:auto; padding-top:24px; font-style:normal; font-size:.7rem;
  letter-spacing:.08em; text-transform:uppercase; color:rgba(250,246,239,.6);
  line-height:1.5; min-height:60px;
}
@media (max-width:640px){ .testimonial-card{ width:78vw; max-width:320px; } }

/* ---------- journal teaser ---------- */

/* ---------- contact / corporate band ---------- */
.corporate-band{
  background:var(--beige-soft);
  background-image:radial-gradient(rgba(90,68,48,.025) 1px, transparent 1px);
  background-size:3px 3px;
}
.corporate-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:32px; text-align:center; }
.corporate-grid div h4{ font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--sage); margin-bottom:12px; }
.corporate-grid div p, .corporate-grid div a{ font-size:.98rem; color:var(--ink); text-decoration:none; display:block; }
.corporate-grid div a:hover{ color:var(--brown-deep); }
@media (max-width:768px){ .corporate-grid{ grid-template-columns:1fr; gap:36px; } }

/* ==========================================================================
   About Us page
   ========================================================================== */

/* ---------- jump pills (quick links to page sections) ---------- */
.jump-pills{ display:flex; flex-wrap:wrap; justify-content:center; gap:14px; margin-top:56px; padding-top:40px; border-top:1px solid var(--line); }
.jump-pill{
  display:flex; flex-direction:column; align-items:center; gap:10px; text-align:center; width:130px;
  padding:22px 12px; border:1px solid var(--line); border-radius:0; background:var(--surface);
  text-decoration:none; transition:border-color .2s var(--ease), transform .2s var(--ease), box-shadow .2s var(--ease);
}
.jump-pill:hover{ border-color:var(--brown); transform:translateY(-3px); box-shadow:0 14px 28px -18px rgba(45,34,30,.3); }
.jump-pill svg{ width:24px; height:24px; stroke:var(--sage); fill:none; stroke-width:1.5; }
.jump-pill span{ font-size:.66rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--ink); line-height:1.4; }
@media (max-width:640px){ .jump-pills{ flex-wrap:nowrap; overflow-x:auto; justify-content:flex-start; padding-bottom:6px; } .jump-pill{ flex:0 0 auto; } }

/* ---------- mission & vision (2-card) ---------- */
.mv-grid{ display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.mv-card{ background:var(--surface); border-radius:0; overflow:hidden; box-shadow:0 20px 44px -26px rgba(45,34,30,.32); }
.mv-card .media{ aspect-ratio:16/10; overflow:hidden; }
.mv-card .media img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s var(--ease); }
.mv-card:hover .media img{ transform:scale(1.05); }
.mv-card .body{ padding:34px 36px 40px; }
.mv-card .eyebrow{ margin-bottom:14px; }
.mv-card h2{ font-size:1.6rem; margin-bottom:16px; }
.mv-card p{ font-size:.94rem; line-height:1.75; color:var(--ink-soft); }
@media (max-width:800px){ .mv-grid{ grid-template-columns:1fr; } }

/* ---------- blog listing grid ---------- */
.blog-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:32px; }
.blog-card{ display:flex; flex-direction:column; height:100%; }
.blog-card .media{ display:block; aspect-ratio:4/3; overflow:hidden; border-radius:0; margin-bottom:20px; }
.blog-card .media img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s var(--ease); }
.blog-card:hover .media img{ transform:scale(1.06); }
.blog-card .body{ display:flex; flex-direction:column; flex:1 1 auto; }
.blog-place{ font-family:var(--sans); font-size:.66rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--sage); margin-bottom:10px; display:block; }
.blog-card h3{ font-size:1.1rem; line-height:1.4; margin-bottom:10px; font-weight:400; }
.blog-card h3 a{ color:var(--ink); text-decoration:none; }
.blog-card h3 a:hover{ color:var(--brown-deep); }
.blog-card .body p{ font-size:.88rem; color:var(--ink-soft); line-height:1.65; margin-bottom:14px; }
.blog-card .body .link-cta{ margin-top:auto; align-self:flex-start; }
@media (max-width:900px){ .blog-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:640px){
  .blog-grid{
    display:flex; grid-template-columns:none; overflow-x:auto; scroll-snap-type:x mandatory;
    gap:16px; margin:0 -16px; padding:0 16px 14px; scrollbar-width:thin; scrollbar-color:var(--beige) transparent;
  }
  .blog-card{ scroll-snap-align:start; flex:0 0 84%; }
}

/* ---------- dining teaser: interactive showcase ---------- */
.dining-teaser{
  background:var(--bg); padding:0;
  background-image:radial-gradient(rgba(90,68,48,.025) 1px, transparent 1px);
  background-size:3px 3px;
}
.dine-place{ font-family:var(--sans); font-size:.68rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#e7cfa8; margin-bottom:14px; display:block; }

/* ---------- dining teaser: image + rows split (homepage) ---------- */
.dine-split{ display:grid; grid-template-columns:1.15fr 1fr; align-items:stretch; min-height:600px; }
.dine-hero{ position:relative; overflow:hidden; }
.dine-hero img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.dine-hero::after{ content:""; position:absolute; inset:0; z-index:0; background:linear-gradient(180deg, rgba(20,14,10,0) 38%, rgba(20,14,10,.8) 100%); }
.dine-hero-inner{ position:relative; z-index:1; height:100%; display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-end; padding:60px; color:#faf6ef; }
.dine-hero-inner .eyebrow{ color:#e7cfa8; margin-bottom:14px; display:block; }
.dine-hero-inner h2{ color:#faf6ef; font-size:clamp(2rem,3.2vw,2.7rem); margin-bottom:16px; }
.dine-hero-inner p{ color:rgba(250,246,239,.85); max-width:420px; margin-bottom:28px; line-height:1.7; }

.dine-rows{ display:flex; flex-direction:column; padding:0 56px; background:var(--ink); }
.dine-row{ flex:1; display:flex; align-items:center; gap:24px; padding:0 8px; border-bottom:1px solid rgba(250,246,239,.2); text-decoration:none; transition:padding-left .25s var(--ease); }
.dine-row:last-child{ border-bottom:none; }
.dine-row:hover{ padding-left:16px; }
.dine-row-img{ width:96px; height:96px; border-radius:0; overflow:hidden; flex:0 0 auto; }
.dine-row-img img{ width:100%; height:100%; object-fit:cover; display:block; }
.dine-row-icon{ width:30px; height:30px; fill:#e7cfa8; flex:0 0 auto; }
.dine-row-text{ flex:1 1 auto; min-width:0; }
.dine-row-text h3{ font-size:1.15rem; color:#faf6ef; margin-bottom:6px; }
.dine-row-text p{ font-size:.85rem; color:rgba(250,246,239,.75); line-height:1.55; }
.dine-row-arrow{ width:20px; height:20px; stroke:rgba(250,246,239,.6); fill:none; stroke-width:1.6; flex:0 0 auto; transition:transform .25s var(--ease), stroke .25s var(--ease); }
.dine-row:hover .dine-row-arrow{ transform:translateX(4px); stroke:#faf6ef; }

@media (max-width:900px){
  .dine-split{ grid-template-columns:1fr; min-height:auto; }
  .dine-hero{ min-height:360px; }
  .dine-hero-inner{ padding:36px 28px; }
  .dine-rows{ padding:32px 28px; }
  .dine-row{ gap:14px; align-items:flex-start; padding-top:20px; padding-bottom:20px; }
  .dine-row-img{ width:60px; height:60px; margin-top:4px; }
  .dine-row-icon{ margin-top:8px; }
  .dine-row-arrow{ margin-top:8px; }
}

.dine-index{ display:flex; border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin-bottom:2px; }
.dine-index-item{
  flex:1 1 0; min-width:0; background:none; border:none; border-right:1px solid var(--line);
  text-align:left; padding:20px 24px; cursor:pointer; font-family:inherit;
  transition:background .2s var(--ease);
}
.dine-index-item:last-child{ border-right:none; }
.dine-index-item:hover{ background:var(--beige-soft); }
.dine-index-num{ display:block; font-family:var(--serif); font-size:.76rem; color:var(--brown); letter-spacing:.06em; margin-bottom:8px; }
.dine-index-name{ display:block; font-family:var(--serif); font-size:1.15rem; color:var(--ink); margin-bottom:4px; }
.dine-index-place{ display:block; font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-faint); }
.dine-index-item[aria-selected="true"]{ background:var(--ink); }
.dine-index-item[aria-selected="true"] .dine-index-num{ color:#e7cfa8; }
.dine-index-item[aria-selected="true"] .dine-index-name{ color:#faf6ef; }
.dine-index-item[aria-selected="true"] .dine-index-place{ color:rgba(250,246,239,.7); }

.dine-stage{ position:relative; }
.dine-slide{ position:relative; display:flex; align-items:center; aspect-ratio:16/8; overflow:hidden; }
.dine-slide[hidden]{ display:none; }
.dine-slide img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.dine-slide::after{ content:""; position:absolute; inset:0; z-index:0; background:linear-gradient(90deg, rgba(20,14,10,.85) 0%, rgba(20,14,10,.52) 40%, rgba(20,14,10,.08) 68%); }
.dine-slide-info{ position:relative; z-index:1; max-width:540px; padding:8% 6%; color:#faf6ef; }
.dine-slide-info h3{ font-size:clamp(1.6rem,3vw,2.3rem); color:#faf6ef; margin-bottom:14px; }
.dine-slide-info p{ font-size:.94rem; line-height:1.7; color:rgba(250,246,239,.84); margin-bottom:20px; }
.dine-meta{ display:flex; gap:16px; flex-wrap:wrap; font-size:.72rem; letter-spacing:.03em; color:rgba(250,246,239,.72); margin-bottom:26px; }

@media (max-width:900px){
  .dine-index{ flex-direction:column; }
  .dine-index-item{ border-right:none; border-bottom:1px solid var(--line); }
  .dine-slide{ aspect-ratio:3/4; }
  .dine-slide-info{ max-width:none; padding:32px 26px; }
}

/* ---------- brand values (named HIS values, slider) ---------- */
.value-track-wrap{ position:relative; }
.value-track{
  display:flex; gap:28px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth;
  padding-bottom:8px; -ms-overflow-style:none; scrollbar-width:none;
}
.value-track::-webkit-scrollbar{ display:none; }
.value-slide{
  flex:0 0 auto; width:min(78vw,360px); scroll-snap-align:center; text-align:center;
  background:var(--surface); border:1px solid var(--line); border-radius:0;
  padding:40px 28px; box-shadow:0 16px 32px -22px rgba(45,34,30,.28);
  transition:transform .25s var(--ease), box-shadow .25s var(--ease);
}
.value-slide:hover{ transform:translateY(-4px); box-shadow:0 22px 40px -20px rgba(45,34,30,.32); }
.value-slide .icon-badge{
  width:56px; height:56px; border-radius:50%; background:var(--sage-soft);
  display:flex; align-items:center; justify-content:center; margin:0 auto 20px;
}
.value-slide svg{ width:26px; height:26px; stroke:var(--sage); fill:none; stroke-width:1.5; margin:0; }
.value-slide h3{ font-size:1.1rem; margin-bottom:10px; }
.value-slide p{ font-size:.86rem; color:var(--ink-soft); line-height:1.65; }

.value-controls{ display:none; align-items:center; justify-content:center; margin-top:20px; }
.value-dots{ display:flex; gap:9px; }
.value-dots button{ width:8px; height:8px; border-radius:0; background:var(--line); border:none; padding:0; cursor:pointer; transition:background .2s var(--ease), transform .2s var(--ease); }
.value-dots button.active{ background:var(--brown); transform:scale(1.3); }

@media (max-width:800px){
  .value-slide{ width:min(85vw,340px); }
  .value-controls{ display:flex; }
}

/* ---------- three retreats (one line per property) ---------- */
.retreats-row{ display:flex; justify-content:center; gap:0; max-width:1140px; margin:0 auto; position:relative; }
.retreats-row::before{ content:''; position:absolute; left:8%; right:8%; top:60px; height:1px; background:var(--beige-line); }
.retreat-stop{ flex:1; text-align:center; padding:0 26px; text-decoration:none; display:block; }
.retreat-dot{
  width:120px; height:120px; border-radius:0; overflow:hidden; margin:0 auto 26px;
  border:1px solid var(--surface); box-shadow:0 10px 24px -10px rgba(45,34,30,.45); position:relative; z-index:1;
  transition:transform .3s var(--ease);
}
.retreat-stop:hover .retreat-dot{ transform:scale(1.06); }
.retreat-dot img{ width:100%; height:100%; object-fit:cover; display:block; }
.retreat-stop h3{ font-size:1.2rem; color:var(--ink); margin-bottom:6px; font-family:var(--serif); font-weight:400; }
.retreat-stop .place{ display:block; font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--brown-deep); font-weight:600; margin-bottom:8px; }
.retreat-stop .opened{ display:block; font-size:.84rem; color:var(--ink-faint); margin-bottom:14px; }
.retreat-stop p{ font-size:.92rem; color:var(--ink-soft); line-height:1.65; }
.retreat-tabs{ display:none; }
@media (max-width:768px){
  .retreat-tabs{
    display:flex; justify-content:center; gap:6px; max-width:340px; margin:0 auto 32px;
    border:1px solid var(--line); padding:4px;
  }
  .retreat-tab{
    flex:1; background:none; border:none; padding:9px 6px; font-size:.72rem; letter-spacing:.06em;
    text-transform:uppercase; color:var(--ink-faint); cursor:pointer; transition:background .2s var(--ease), color .2s var(--ease);
  }
  .retreat-tab.active{ background:var(--brown-deep); color:#fff; }
  .retreats-row{ flex-direction:column; gap:0; max-width:340px; }
  .retreats-row::before{ display:none; }
  .retreat-stop{ display:none; }
  .retreat-stop.active{ display:block; }
}

/* ==========================================================================
   Offers page (one card per offer, filterable grid)
   ========================================================================== */
.offer-filter-bar{ display:flex; justify-content:center; text-align:center; gap:56px; flex-wrap:wrap; margin-bottom:48px; }
.offer-filter label{
  display:block; font-family:var(--sans); font-size:.78rem; font-weight:600;
  color:var(--ink); margin-bottom:10px;
}
.offer-filter .select-wrap{ position:relative; min-width:180px; }
.offer-filter select{
  appearance:none; -webkit-appearance:none; -moz-appearance:none;
  background:transparent; border:none; border-bottom:1px solid var(--line);
  width:100%; padding:2px 26px 10px 4px; font-family:var(--serif); font-size:1.05rem;
  color:var(--brown-deep); cursor:pointer;
}
.offer-filter select option{ padding:8px 12px; }
.offer-filter .select-wrap::after{
  content:''; position:absolute; right:4px; top:8px; width:8px; height:8px;
  border-right:1.6px solid var(--brown-deep); border-bottom:1.6px solid var(--brown-deep);
  transform:rotate(45deg); pointer-events:none;
}
@media (max-width:640px){
  .offer-filter-bar{ flex-wrap:nowrap; justify-content:center; gap:40px; margin-bottom:32px; }
  .offer-filter{ flex:0 1 auto; min-width:0; }
  .offer-filter label{
    font-size:12px; margin-bottom:5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  }
  .offer-filter .select-wrap{ min-width:0; width:auto; display:inline-block; }
  .offer-filter select{
    width:50px; font-size:.74rem; padding:2px 14px 6px 0;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  }
  .offer-filter .select-wrap::after{ right:2px; top:6px; width:6px; height:6px; }
}

.offer-listing-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:52px 44px; align-items:stretch; }
.offer-listing-card{
  background:var(--surface); display:flex; flex-direction:column;
  border:1px solid var(--line); border-radius:0; overflow:hidden;
}
.offer-listing-card[hidden]{ display:none; }
.offer-listing-card .media{ position:relative; aspect-ratio:16/10; overflow:hidden; }
.offer-listing-card .media img{ width:100%; height:100%; object-fit:cover; display:block; }
.offer-listing-card .offer-place{
  font-family:var(--sans); font-size:.7rem; font-weight:700; letter-spacing:.12em;
  text-transform:uppercase; color:var(--sage); display:block; margin-top:20px; margin-bottom:10px;
}
.offer-listing-card .body{ padding:0 22px 22px; display:flex; flex-direction:column; flex:1; }
.offer-listing-card h3{ font-size:1.55rem; margin-bottom:14px; }
.offer-listing-card .offer-desc{
  font-size:.94rem; color:var(--ink-soft); line-height:1.7; margin-bottom:26px;
  display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden;
}
.offer-cta-row{ display:flex; align-items:center; justify-content:flex-start; gap:20px; margin-top:auto; }
@media (max-width:900px){
  .offer-listing-grid{ grid-template-columns:1fr; gap:44px; max-width:560px; margin:0 auto; }
}

/* ---------- Call floating button (desktop only; mobile uses nav-call-btn) ---------- */
.call-float{
  position:fixed; right:22px; bottom:152px; z-index:199;
  width:48px; height:48px; border-radius:50%;
  background:var(--brown); display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 26px -8px rgba(0,0,0,.4);
  transition:transform .2s var(--ease), box-shadow .2s var(--ease);
}
.call-float:hover{ transform:scale(1.08); box-shadow:0 14px 30px -8px rgba(0,0,0,.45); background:var(--brown-deep); }
.call-float svg{ width:22px; height:22px; fill:#fff; }
.call-tooltip{
  position:absolute; bottom:calc(100% + 10px); left:50%; transform:translateX(-50%);
  background:var(--ink); color:#fff; font-family:var(--sans); font-size:.78rem; font-weight:600;
  white-space:nowrap; padding:8px 14px; border-radius:0; opacity:0; pointer-events:none;
  transition:opacity .18s var(--ease);
}
.call-float:hover .call-tooltip{ opacity:1; }
@media (max-width:800px){ .call-float{ display:none; } }

/* ---------- WhatsApp floating button ---------- */
.whatsapp-float{
  position:fixed; right:22px; bottom:94px; z-index:199;
  width:48px; height:48px; border-radius:50%;
  background:#25d366; display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 26px -8px rgba(0,0,0,.4);
  transition:transform .2s var(--ease), box-shadow .2s var(--ease);
}
.whatsapp-float:hover{ transform:scale(1.08); box-shadow:0 14px 30px -8px rgba(0,0,0,.45); }
.whatsapp-float svg{ width:24px; height:24px; fill:#fff; }
.whatsapp-tooltip{
  position:absolute; bottom:calc(100% + 10px); left:50%; transform:translateX(-50%);
  background:var(--ink); color:#fff; font-family:var(--sans); font-size:.78rem; font-weight:600;
  white-space:nowrap; padding:8px 14px; border-radius:6px; opacity:0; pointer-events:none;
  transition:opacity .18s var(--ease);
}
.whatsapp-float:hover .whatsapp-tooltip{ opacity:1; }
@media (max-width:639px){
  .whatsapp-float{ right:16px; bottom:80px; width:42px; height:42px; }
  .whatsapp-float svg{ width:20px; height:20px; }
  .whatsapp-tooltip{ display:none; }
}

/* ---------- back to top ---------- */
.back-to-top{
  position:fixed; right:22px; bottom:22px; z-index:200;
  width:48px; height:48px; border-radius:50%;
  background:var(--brown); color:#faf6ef; border:none;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 26px -8px rgba(0,0,0,.4);
  cursor:pointer; opacity:0; visibility:hidden; transform:translateY(12px);
  transition:opacity .25s var(--ease), transform .25s var(--ease), visibility .25s, background .18s var(--ease), box-shadow .2s var(--ease);
}
.back-to-top.visible{ opacity:1; visibility:visible; transform:translateY(0); }
.back-to-top:hover{ background:var(--brown-deep); box-shadow:0 14px 30px -8px rgba(0,0,0,.45); }
.back-to-top svg{ width:20px; height:20px; }
@media (max-width:639px){ .back-to-top{ right:16px; bottom:16px; width:42px; height:42px; } .back-to-top svg{ width:18px; height:18px; } }

/* ---------- sticky mobile book bar ---------- */
.sticky-book-bar{ display:none; }
@media (max-width:639px){
  .sticky-book-bar{
    display:flex; align-items:center; justify-content:center; width:100%; border:none; cursor:pointer;
    position:fixed; left:0; right:0; bottom:0; z-index:190; height:48px;
    background:var(--brown); color:#faf6ef; text-decoration:none;
    font-family:var(--sans); font-weight:600; font-size:.74rem; letter-spacing:.12em; text-transform:uppercase;
    box-shadow:0 -10px 26px -12px rgba(20,14,10,.4);
  }
  .sticky-book-bar:hover{ background:var(--brown-deep); }
  .sticky-book-note{ margin-left:6px; font-size:.66rem; font-weight:500; letter-spacing:.06em;
    text-transform:none; opacity:.85; }
  body.has-sticky-book{ padding-bottom:48px; }
  body.has-sticky-book .whatsapp-float{ bottom:136px; }
  body.has-sticky-book .back-to-top{ bottom:72px; }
}

/* ---------- sitemap ---------- */
.sitemap-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:40px; padding:64px 0 96px; }
.sitemap-col h4{ font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--brown-deep); margin-bottom:18px; font-family:var(--sans); font-weight:700; }
.sitemap-col h4.sitemap-subhead{ margin-top:24px; }
.sitemap-col a{ display:block; text-decoration:none; color:var(--ink-soft); font-size:.92rem; margin-bottom:12px; transition:color .15s var(--ease); }
.sitemap-col a:hover{ color:var(--ink); }
@media (max-width:900px){ .sitemap-grid{ grid-template-columns:1fr 1fr 1fr; } }
@media (max-width:560px){ .sitemap-grid{ grid-template-columns:1fr; } }

/* ---------- mobile: frosted slider arrows on room pages ---------- */
@media (max-width:639px){
  .overview-media .slide-arrow{
    background:rgba(250,246,239,.38);
    -webkit-backdrop-filter:blur(8px) saturate(140%);
    backdrop-filter:blur(8px) saturate(140%);
    border:1px solid rgba(250,246,239,.45);
    color:#fff;
    box-shadow:0 2px 10px rgba(20,14,10,.22);
  }
  .overview-media .slide-arrow:hover,
  .overview-media .slide-arrow:active{ background:rgba(250,246,239,.55); }
}

/* the whole date box opens the calendar (see main.js), so it reads as clickable */
.field-input:has(input[type="date"]), .field-input input[type="date"]{ cursor:pointer; }
