:root {
  --forest: #14261f;
  --lake: #17383a;
  --sand: #d8c5a4;
  --mist: #e8ece7;
  --ivory: #f4f1e9;
  --earth: #806a52;
  --sunset: #c87955;
  --charcoal: #161a18;
  --line: rgba(244, 241, 233, .22);
  --serif: "Playfair Display", Georgia, serif;
  --sans: "Manrope", Arial, sans-serif;
  --mono: "DM Mono", monospace;
  --ease: cubic-bezier(.2,.8,.2,1);
}

/* Verified Google Maps link within the illustrated location panel. */
.map-open { border-bottom:1px solid var(--sunset); color:var(--ivory); display:inline-block; font:500 9px var(--mono); letter-spacing:.1em; margin-top:1rem; padding-bottom:.35rem; text-transform:uppercase; }
.map-open:hover { color:var(--sunset); }

* { box-sizing: border-box; }
html { background: var(--forest); scroll-behavior: smooth; }
body { margin: 0; background: var(--ivory); color: var(--charcoal); font-family: var(--sans); overflow-x: hidden; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; }
.skip-link { background: var(--ivory); color: var(--forest); left: .7rem; padding: .7rem 1rem; position: fixed; top: -5rem; z-index: 999; }
.skip-link:focus { top: .7rem; }
.site-shell { overflow: clip; }
.eyebrow { color: currentColor; font: 500 10px/1.3 var(--mono); letter-spacing: .16em; margin: 0 0 1.5rem; text-transform: uppercase; }
.display { font: 500 clamp(2.8rem, 7vw, 7.2rem)/.9 var(--serif); letter-spacing: -.065em; margin: 0; }
.display em { color: var(--sunset); font-weight: 500; }
.lede { font-size: clamp(.95rem, 1.4vw, 1.12rem); line-height: 1.7; max-width: 34rem; }
.button-line { align-items: center; border-bottom: 1px solid currentColor; display: inline-flex; font: 600 11px/1 var(--mono); gap: .8rem; letter-spacing: .1em; padding: .65rem 0; text-transform: uppercase; }
.button-line b { font-size: 1rem; font-weight: 400; transition: transform .3s var(--ease); }
.button-line:hover b { transform: translate(3px,-3px); }
.placeholder-note { background: rgba(232,236,231,.12); border-left: 1px solid var(--sunset); color: var(--mist); font: 400 9px/1.5 var(--mono); letter-spacing: .08em; margin: 0; padding: .55rem .7rem; text-transform: uppercase; }

/* Arrival */
.intro { align-items: center; background: var(--charcoal); color: var(--ivory); display: flex; flex-direction: column; inset: 0; justify-content: center; position: fixed; z-index: 1000; }
.intro.is-hidden { animation: introLeave .8s var(--ease) forwards; pointer-events: none; }
.intro-mark { align-items: center; border: 1px solid rgba(244,241,233,.5); border-radius: 50%; display: flex; font: italic 3.4rem var(--serif); height: 6rem; justify-content: center; margin-bottom: 1.7rem; overflow: hidden; position: relative; width: 6rem; }
.intro-mark::after, .intro-mark::before { border: 1px solid rgba(244,241,233,.24); border-radius: 50%; content: ""; inset: 12%; position: absolute; }
.intro-mark::after { inset: 27%; }
.intro p { font: 500 10px var(--mono); letter-spacing: .2em; margin: 0; text-align: center; }
.intro-horizon { background: var(--sand); height: 1px; margin-top: 2rem; transform: scaleX(0); transform-origin: center; width: min(18rem,60vw); animation: horizon 1.3s .45s var(--ease) forwards; }
.intro-skip { background: none; border: 0; color: var(--ivory); font: 10px var(--mono); letter-spacing: .14em; padding: 1rem; position: absolute; right: 1.2rem; text-transform: uppercase; top: 1rem; }
@keyframes horizon { to { transform: scaleX(1); } }
@keyframes introLeave { to { opacity: 0; transform: translateY(-100%); visibility: hidden; } }

/* Navigation and full-screen exploration */
.nav { align-items: center; color: var(--ivory); display: flex; justify-content: space-between; left: 0; padding: 1.25rem clamp(1.1rem,3.2vw,4rem); position: absolute; right: 0; top: 0; transition: background .4s, color .4s, padding .4s; z-index: 30; }
.nav.inner-page { background:var(--forest); box-shadow:0 1px 0 rgba(244,241,233,.12); position:fixed; }
.nav.scrolled { background: rgba(20,38,31,.92); backdrop-filter: blur(14px); padding-bottom: .85rem; padding-top: .85rem; position: fixed; }
.brand { align-items: center; display: flex; gap: .7rem; min-width: 10rem; }
.brand span { align-items: center; border: 1px solid rgba(244,241,233,.7); border-radius: 50%; display: inline-flex; font: italic 1.4rem var(--serif); height: 2.1rem; justify-content: center; width: 2.1rem; }
.brand em { font: italic 1.4rem var(--serif); letter-spacing: -.06em; }
.nav-links { display: flex; gap: clamp(1rem,2.7vw,3rem); }
.nav-links a { font: 500 10px var(--mono); letter-spacing: .11em; opacity: .78; text-transform: uppercase; transition: opacity .2s; }
.nav-links a:hover, .nav-links a:focus-visible { opacity: 1; }
.nav-actions { align-items: center; display: flex; gap: 1.25rem; }
.menu-toggle { align-items: center; background: none; border: 0; color: inherit; display: flex; gap: .33rem; padding: .5rem 0; }
.menu-toggle span { background: currentColor; display: block; height: 1px; transition: transform .25s var(--ease); width: 1rem; }
.menu-toggle i { font: 500 10px var(--mono); font-style: normal; letter-spacing: .11em; margin-left: .3rem; text-transform: uppercase; }
.menu-toggle:hover span:first-child { transform: translateX(3px); }.menu-toggle:hover span:nth-child(2) { transform: translateX(-2px); }
.nav-book { border-left: 1px solid rgba(244,241,233,.35); font: 600 10px var(--mono); letter-spacing: .1em; padding-left: 1.25rem; text-transform: uppercase; }.nav-book b { color: var(--sunset); font-size: 1rem; margin-left: .25rem; }
.menu-overlay { background: var(--forest); color: var(--ivory); display: grid; grid-template-columns: minmax(16rem, 42%) 1fr; inset: 0; opacity: 0; pointer-events: none; position: fixed; transform: translateY(-2%); transition: opacity .4s, transform .55s var(--ease); z-index: 100; }
.menu-overlay.open { opacity: 1; pointer-events: auto; transform: translateY(0); }
.menu-photo { background: linear-gradient(20deg, rgba(20,38,31,.5), rgba(20,38,31,.04)), url('https://images.unsplash.com/photo-1500534623283-312aade485b7?auto=format&fit=crop&w=1200&q=82') center/cover; min-height: 100%; transition: background-image .45s; }
.menu-copy { align-self: center; max-width: 50rem; padding: 4rem clamp(2rem, 7vw, 8rem); }.menu-copy .eyebrow { color: var(--sand); }
.menu-items { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .25rem 2rem; }
.menu-item { align-items: baseline; border-bottom: 1px solid rgba(244,241,233,.22); display: flex; gap: 1rem; padding: .65rem 0; transition: color .25s,padding .25s; }.menu-item small { color: var(--sunset); font: 10px var(--mono); }.menu-item span { font: 500 clamp(1.45rem,3vw,2.6rem)/1.1 var(--serif); letter-spacing: -.05em; }.menu-item:hover { color: var(--sand); padding-left: .5rem; }
.menu-description { color: var(--sand); font: 500 1.05rem/1.6 var(--serif); margin: 2rem 0 0; max-width: 20rem; }
.menu-close { background: none; border: 0; color: var(--ivory); font: 2.3rem/1 var(--serif); padding: .7rem; position: absolute; right: 1.5rem; top: 1rem; z-index: 2; }

/* Hero and compact booking */
.hero { background: var(--forest); color: var(--ivory); min-height: 100svh; overflow: hidden; padding: clamp(7.5rem,13vh,10rem) clamp(1.1rem,7vw,8rem) 3rem; position: relative; }
.hero-media { animation: heroScale 1.8s var(--ease) both; background: linear-gradient(180deg,rgba(20,38,31,.08) 20%,rgba(20,38,31,.75)),url('https://images.unsplash.com/photo-1470252649378-9c29740c9fa8?auto=format&fit=crop&w=2200&q=88') center/cover; inset: 0; position: absolute; }.hero-media::before { background: repeating-radial-gradient(ellipse at 60% 90%, transparent 0 26px,rgba(244,241,233,.11) 28px 29px, transparent 31px 52px); content: ""; height: 26rem; opacity: .5; position: absolute; right: -8rem; top: 12%; transform: rotate(-15deg); width: 42rem; }.hero-media::after { background: linear-gradient(90deg,rgba(20,38,31,.78),transparent 55%); content: ""; inset: 0; position: absolute; }
@keyframes heroScale { from { transform: scale(1.07); } to { transform: scale(1); } }
.hero-inner { display: flex; flex-direction: column; height: calc(100svh - 10rem); justify-content: flex-end; position: relative; z-index: 1; }.hero-kicker { align-items: center; display: flex; font: 500 10px var(--mono); gap: .8rem; letter-spacing: .15em; margin: 0 0 1.1rem; text-transform: uppercase; }.hero-kicker::before { background: var(--sand); content: ""; height: 1px; width: 2.2rem; }
.hero-title { font: 500 clamp(4.2rem, 10.9vw, 11.3rem)/.75 var(--serif); letter-spacing: -.09em; margin: 0; max-width: 1000px; }.hero-title em { color: var(--sand); font-weight: 500; }.hero-bottom { align-items: end; display: flex; justify-content: space-between; margin-top: clamp(1.5rem,4vh,4rem); }.hero-summary { border-left: 1px solid var(--sand); font: 400 .88rem/1.7 var(--sans); margin: 0; max-width: 20rem; padding-left: 1rem; }.hero-actions { align-items: center; display: flex; gap: 1.3rem; }.hero-actions .button-line { color: var(--ivory); }.scroll-indicator { align-items: center; color: var(--sand); display: flex; font: 10px var(--mono); gap: .5rem; letter-spacing: .1em; text-transform: uppercase; }.scroll-indicator span { border: 1px solid rgba(216,197,164,.7); border-radius: 100%; height: 2rem; position: relative; width: 1.1rem; }.scroll-indicator span::after { animation: scrollDot 1.7s infinite; background: var(--sand); border-radius: 50%; content:""; height: 3px; left: 50%; position: absolute; top: .4rem; transform: translateX(-50%); width: 3px; } @keyframes scrollDot{ 80% { opacity: 0; transform: translate(-50%,.8rem); } 100%{ opacity: 0; } }
.booking-dock { align-items: center; background: rgba(23,56,58,.87); backdrop-filter: blur(12px); border: 1px solid rgba(244,241,233,.3); bottom: clamp(1rem,3vw,3.2rem); display: flex; gap: 1rem; justify-content: space-between; padding: .8rem 1rem .8rem 1.3rem; position: absolute; right: clamp(1rem,5vw,5rem); width: min(28rem,calc(100vw - 2rem)); z-index: 2; }.booking-dock p { font: 500 11px var(--mono); letter-spacing: .12em; margin: 0; text-transform: uppercase; }.booking-dock button { background: var(--sand); border: 0; color: var(--forest); font: 600 10px var(--mono); letter-spacing: .09em; padding: .85rem 1rem; text-transform: uppercase; }

/* Story */
.story { background: var(--ivory); display: grid; gap: 5vw; grid-template-columns: minmax(14rem, .7fr) 1.3fr; padding: clamp(5rem,12vw,12rem) clamp(1.1rem,8vw,10rem); }.story-title { position: sticky; align-self: start; top: 8rem; }.story-title .display { color: var(--forest); }.story-title .lede { color: var(--earth); margin-top: 2rem; }.journey { border-left: 1px solid rgba(20,38,31,.25); padding-left: clamp(1.3rem,5vw,5rem); }.journey-step { align-items: center; cursor: pointer; display: grid; grid-template-columns: 3.4rem 1fr minmax(13rem,1.4fr); gap: 1.5rem; min-height: 11rem; opacity: .38; transition: opacity .4s; }.journey-step.active, .journey-step:hover { opacity: 1; }.journey-index { color: var(--sunset); font: 10px var(--mono); letter-spacing: .12em; }.journey-step h3 { font: 500 clamp(1.6rem,3vw,3.1rem)/.9 var(--serif); letter-spacing: -.06em; margin: 0; }.journey-image { background: var(--lake) center/cover; clip-path: polygon(0 9%,94% 0,100% 89%,7% 100%); height: 9rem; transition: transform .6s var(--ease); }.journey-step:hover .journey-image { transform: scale(1.035) translateX(-.4rem); }
.waterline { background: var(--forest); height: 6rem; margin-top: -1px; overflow: hidden; position: relative; }.waterline::before,.waterline::after { border: 1px solid rgba(216,197,164,.28); border-radius: 50% 50% 0 0; bottom: -4.5rem; content: ""; height: 8rem; position: absolute; width: 55%; }.waterline::before { left: -7%; }.waterline::after { right: -9%; transform: scaleX(1.3); }

/* Room canvas */
.rooms-stage { background: var(--forest); color: var(--ivory); padding: clamp(4rem,9vw,8rem) 0 clamp(5rem,8vw,8rem) clamp(1.1rem,8vw,10rem); }.section-head { align-items: end; display: flex; justify-content: space-between; padding-right: clamp(1.1rem,7vw,8rem); }.section-head .display { max-width: 50rem; }.section-head .lede { color: var(--sand); margin: 0; }.room-rail { display: flex; gap: 2rem; margin-top: clamp(2.5rem,5vw,5rem); overflow-x: auto; padding: 0 8rem 1rem 0; scroll-snap-type: x mandatory; scrollbar-color: var(--earth) transparent; }.room-rail::-webkit-scrollbar { height: 3px; }.room-rail::-webkit-scrollbar-thumb { background: var(--earth); }.room-panel { background: var(--lake); display: grid; flex: 0 0 min(74vw,880px); grid-template-columns: 1.2fr .8fr; min-height: 31rem; scroll-snap-align: start; }.room-photo { background: var(--earth) center/cover; min-height: 31rem; overflow: hidden; position: relative; }.room-photo::after { background: linear-gradient(180deg,transparent,rgba(20,38,31,.35)); content: ""; inset: 0; position: absolute; }.room-number { color: var(--sand); font: 10px var(--mono); left: 1.3rem; letter-spacing: .15em; position: absolute; top: 1.3rem; z-index: 1; }.room-info { display: flex; flex-direction: column; justify-content: flex-end; padding: 2rem; }.room-info h3 { font: 500 clamp(2rem,3.6vw,4rem)/.88 var(--serif); letter-spacing: -.07em; margin: 0 0 1rem; }.room-meta { border-bottom: 1px solid rgba(244,241,233,.25); border-top: 1px solid rgba(244,241,233,.25); display: flex; flex-wrap: wrap; font: 10px var(--mono); gap: .55rem 1rem; letter-spacing: .1em; margin: 1rem 0 1.3rem; padding: .8rem 0; text-transform: uppercase; }.room-info p { color: var(--mist); font-size: .9rem; line-height: 1.6; margin: 0 0 1.4rem; }.room-actions { display: flex; gap: 1.2rem; }.room-actions .button-line { color: var(--sand); }.room-status { color: var(--sand); font: 9px var(--mono); letter-spacing: .12em; margin-top: auto; text-transform: uppercase; }

/* The expanded home discovery layer — editorial additions, no change to the existing visual system. */
.resort-facts { background:var(--ivory); color:var(--forest); padding:1.35rem clamp(1.1rem,8vw,10rem) 1.1rem; }.resort-facts > .eyebrow { color:var(--earth); margin-bottom:.9rem; }.resort-facts > div { border-bottom:1px solid rgba(20,38,31,.22); border-top:1px solid rgba(20,38,31,.22); display:grid; grid-template-columns:repeat(4,1fr); }.resort-facts article { align-items:baseline; border-left:1px solid rgba(20,38,31,.18); display:flex; gap:.7rem; min-height:5.2rem; padding:1rem; }.resort-facts article:first-child { border-left:0; }.resort-facts strong { color:var(--sunset); font:500 clamp(1.9rem,3vw,3.4rem)/.8 var(--serif); letter-spacing:-.07em; }.resort-facts span { color:var(--earth); font:9px var(--mono); letter-spacing:.08em; text-transform:uppercase; }.facts-note { color:var(--earth); font:9px/1.5 var(--mono); letter-spacing:.06em; margin:1rem 0 0; text-transform:uppercase; }
.home-gallery { background:var(--mist); color:var(--forest); padding:clamp(5rem,9vw,9rem) clamp(1.1rem,8vw,10rem); }.home-gallery-head { align-items:end; display:flex; gap:3rem; justify-content:space-between; margin-bottom:clamp(2rem,5vw,4rem); }.home-gallery-head .display { max-width:43rem; }.home-gallery-head > div:last-child { max-width:19rem; }.home-gallery-head > div:last-child p { color:var(--earth); font-size:.84rem; line-height:1.7; margin:0 0 1.2rem; }.home-gallery-stage { display:grid; gap:.7rem; grid-template-columns:1.15fr 1.1fr .8fr; grid-template-rows:15rem 15rem; }.home-gallery-image { background-color:var(--lake); border:0; overflow:hidden; padding:0; position:relative; text-align:left; transition:transform .45s var(--ease); }.home-gallery-image::after { background:linear-gradient(180deg,transparent 48%,rgba(20,38,31,.72)); content:""; inset:0; position:absolute; transition:opacity .3s; }.home-gallery-image:hover { transform:translateY(-.35rem); }.home-gallery-image span,.home-gallery-image i { color:var(--ivory); font:9px var(--mono); font-style:normal; letter-spacing:.1em; position:absolute; text-transform:uppercase; z-index:1; }.home-gallery-image span { left:.8rem; top:.8rem; }.home-gallery-image i { bottom:.8rem; left:.8rem; }.gallery-stage-0 { grid-row:span 2; }.gallery-stage-1 { grid-column:span 1; }.gallery-stage-2 { grid-row:span 2; }.gallery-stage-3 { grid-column:span 1; }.gallery-stage-4 { grid-column:span 1; }.gallery-stage-5 { grid-column:span 1; }
.discovery-compass { background:var(--charcoal); color:var(--ivory); display:grid; gap:clamp(2rem,8vw,10rem); grid-template-columns:.9fr 1.1fr; padding:clamp(5rem,10vw,10rem) clamp(1.1rem,8vw,10rem); }.discovery-compass .eyebrow { color:var(--sand); }.discovery-compass .display { max-width:34rem; }.compass-options { border-top:1px solid rgba(244,241,233,.3); }.compass-option { align-items:center; border-bottom:1px solid rgba(244,241,233,.3); display:grid; gap:1rem; grid-template-columns:2.5rem 1fr minmax(10rem,.8fr) 1.5rem; padding:1rem 0; transition:color .2s,padding .25s; }.compass-option small { color:var(--sunset); font:10px var(--mono); letter-spacing:.1em; }.compass-option span { font:500 clamp(1.8rem,3.4vw,3.5rem)/.9 var(--serif); letter-spacing:-.06em; }.compass-option i { color:var(--mist); font-size:.76rem; font-style:normal; line-height:1.5; opacity:.7; }.compass-option b { color:var(--sand); font:1.1rem var(--sans); font-weight:400; }.compass-option:hover { color:var(--sand); padding-left:.45rem; }

/* Day timeline */
.day { background: #d8c5a4; color: var(--forest); overflow: hidden; padding: clamp(5rem,10vw,10rem) clamp(1.1rem,8vw,10rem); position: relative; }.day::before { background: radial-gradient(circle at 80% 20%,rgba(200,121,85,.5),transparent 20%), radial-gradient(circle at 30% 100%,rgba(23,56,58,.25),transparent 35%); content:""; inset:0; position:absolute; }.day > * { position:relative; }.day-intro { display:grid; grid-template-columns: 1fr 1fr; gap: 2rem; }.day .display { max-width: 40rem; }.day-intro p { align-self:end; line-height:1.7; max-width:30rem; }.timeline { display:grid; grid-template-columns: repeat(6,1fr); margin-top: clamp(3rem,8vw,8rem); position:relative; }.timeline::before { background:var(--forest); content:""; height:1px; left:0; position:absolute; right:0; top: 2.5rem; }.time-stop { min-height:13rem; padding:0 1rem 0 0; position:relative; }.time-stop:nth-child(even) { padding-top:6.2rem; }.time-stop::before { background:var(--sunset); border: 3px solid var(--sand); border-radius:50%; content:""; height:.7rem; position:absolute; top:2.2rem; width:.7rem; }.time-stop:nth-child(even)::before { top:2.2rem; }.time-stop time { display:block; font:500 10px var(--mono); letter-spacing:.1em; margin-bottom:.6rem; }.time-stop h3 { font:500 1.45rem/1 var(--serif); letter-spacing:-.05em; margin:0; }.time-stop p { font-size:.76rem; line-height:1.5; margin:.65rem 0; opacity:.75; }

/* Mood / experience shorelines */
.moods { background: var(--mist); color:var(--forest); padding:clamp(5rem,9vw,9rem) clamp(1.1rem,8vw,10rem); }.mood-layout{display:grid;grid-template-columns:minmax(14rem,.65fr) 1.35fr;gap:5rem}.mood-list { margin-top:3rem; }.mood-option { align-items:center; background: none; border:0; border-bottom: 1px solid rgba(20,38,31,.25); color:var(--forest); display:flex; font:500 clamp(2rem,4vw,4.8rem)/1 var(--serif); justify-content:space-between; letter-spacing:-.07em; padding:.6rem 0; text-align:left; width:100%; }.mood-option span{color:var(--sunset);font:10px var(--mono);letter-spacing:.1em;}.mood-option.active { color:var(--sunset); }.mood-window { align-items:flex-end; background:linear-gradient(180deg,rgba(20,38,31,.05),rgba(20,38,31,.6)),var(--lake) center/cover; clip-path:polygon(1% 4%,100% 0,94% 93%,50% 100%,6% 89%); display:flex; min-height:35rem; padding:2rem; transition: background .5s var(--ease); }.mood-window > div { color:var(--ivory); max-width:22rem; }.mood-window h3 { font:500 3rem/.9 var(--serif);letter-spacing:-.06em;margin:0 0 1rem }.mood-window p { font-size:.9rem;line-height:1.6; }.mood-window .placeholder-note { margin-top:1.5rem; }

/* Map and discover */
.explore-section { background:var(--lake); color:var(--ivory); padding:clamp(5rem,9vw,10rem) clamp(1.1rem,8vw,10rem); }.explore-grid {display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,7vw,7rem);margin-top:3rem}.topo-map { background-color:#112d30; background-image:repeating-radial-gradient(ellipse at 35% 50%, transparent 0 23px, rgba(216,197,164,.18) 24px 25px, transparent 27px 48px),repeating-radial-gradient(ellipse at 78% 12%, transparent 0 35px, rgba(216,197,164,.1) 36px 37px, transparent 39px 75px); min-height:32rem; overflow:hidden;position:relative; }.topo-map::after {background:linear-gradient(45deg,transparent 40%,rgba(216,197,164,.15) 40.5%,transparent 41%) center/20rem 20rem;content:"";inset:0;position:absolute;}.map-pin {align-items:center;background:var(--sunset);border:3px solid var(--sand);border-radius:50%;box-shadow:0 0 0 8px rgba(200,121,85,.13);display:flex;height:1.2rem;justify-content:center;left:48%;position:absolute;top:51%;width:1.2rem;z-index:2;}.map-pin::after{background:var(--ivory);border-radius:50%;content:"";height:4px;width:4px}.map-status{bottom:1.2rem;left:1.2rem;position:absolute;z-index:3}.map-status p {color:var(--sand);font:10px var(--mono);letter-spacing:.1em;margin:0 0 .7rem;text-transform:uppercase}.map-status span{font-size:.85rem;line-height:1.5;max-width:18rem;display:block}.map-key{color:var(--sand);font:9px var(--mono);letter-spacing:.1em;position:absolute;right:1.2rem;text-transform:uppercase;top:1.2rem;z-index:3}.destination-list{display:flex;flex-direction:column}.destination{background:none;border:0;border-bottom:1px solid rgba(244,241,233,.25);color:var(--ivory);display:grid;gap:.5rem;grid-template-columns:2.5rem 1fr; padding:1.1rem 0;text-align:left}.destination small{color:var(--sunset);font:10px var(--mono);letter-spacing:.1em}.destination strong{font:500 1.7rem/1 var(--serif);letter-spacing:-.05em}.destination span{font-size:.8rem;grid-column:2;line-height:1.5;opacity:.7}.destination:hover strong{color:var(--sand)}

/* Trust & final */
.trust {background:var(--charcoal);color:var(--ivory);display:flex;flex-wrap:wrap;gap:1.3rem;justify-content:space-between;padding:1.2rem clamp(1.1rem,8vw,10rem)}.trust p{font:500 9px var(--mono);letter-spacing:.12em;margin:0;text-transform:uppercase}.trust p::before{color:var(--sunset);content:"✦";margin-right:.5rem}
.finale {align-items:end;background:linear-gradient(180deg,rgba(20,38,31,.2),rgba(20,38,31,.85)),url('https://images.unsplash.com/photo-1464822759023-fed622ff2c3b?auto=format&fit=crop&w=2200&q=82') center/cover;color:var(--ivory);display:flex;min-height:75vh;padding:clamp(5rem,8vw,9rem) clamp(1.1rem,8vw,10rem);position:relative}.finale h2{font:500 clamp(4rem,11vw,11rem)/.78 var(--serif);letter-spacing:-.09em;margin:0;max-width:63rem}.finale h2 em{color:var(--sand);font-weight:500}.finale-actions{display:flex;flex-wrap:wrap;gap:1.2rem;margin-top:2.5rem}.finale .button-line{color:var(--ivory)}.legal-footer{background:var(--forest);color:var(--mist);display:grid;gap:2rem;grid-template-columns:1.5fr 1fr 1fr;padding:2.2rem clamp(1.1rem,8vw,10rem)}.legal-footer p,.legal-footer a{font:10px/1.7 var(--mono);letter-spacing:.08em;margin:0;text-transform:uppercase}.legal-footer a{color:var(--sand);display:block}.legal-footer .brand{align-items:flex-start}.legal-footer .brand span{border-color:var(--sand)}.legal-footer .footer-admin-link{color:rgba(216,197,164,.62);font-size:8px;letter-spacing:.12em;margin-top:1rem;transition:color .2s var(--ease),letter-spacing .2s var(--ease)}.legal-footer .footer-admin-link:hover,.legal-footer .footer-admin-link:focus-visible{color:var(--ivory);letter-spacing:.15em;outline:0}

/* Booking experience */
.booking-page {background:var(--mist);min-height:100svh;padding:9rem clamp(1.1rem,8vw,10rem) 5rem}.booking-top{display:flex;justify-content:space-between;gap:2rem}.booking-top .display{max-width:50rem}.booking-progress{display:flex;gap:.35rem;align-items:center;margin:3rem 0 2.5rem}.booking-progress span{background:rgba(20,38,31,.2);display:block;height:1px;width:3rem}.booking-progress span.active{background:var(--sunset);height:2px}.booking-grid{display:grid;gap:clamp(2rem,6vw,7rem);grid-template-columns:minmax(0,1.2fr) minmax(18rem,.8fr)}.booking-stage h2{font:500 clamp(2.6rem,5vw,5.2rem)/.88 var(--serif);letter-spacing:-.07em;margin:0 0 1rem}.booking-stage>.lede{margin-bottom:2.2rem}.booking-fields{display:grid;gap:1rem;grid-template-columns:repeat(2,minmax(0,1fr))}.field{border-bottom:1px solid rgba(20,38,31,.35);display:flex;flex-direction:column;gap:.5rem;padding:.65rem 0}.field label{font:500 9px var(--mono);letter-spacing:.12em;text-transform:uppercase}.field input,.field select,.field textarea{background:transparent;border:0;color:var(--forest);font:500 1rem var(--sans);outline:0;padding:0}.field textarea{min-height:5rem;resize:vertical}.field.full{grid-column:1/-1}.room-choices{display:grid;gap:1rem}.room-choice{background:var(--ivory);border:1px solid transparent;display:grid;gap:1.2rem;grid-template-columns:9rem 1fr auto;padding:.8rem;text-align:left}.room-choice.selected{border-color:var(--forest)}.room-choice-image{background:var(--lake) center/cover;min-height:7rem}.room-choice h3{font:500 1.7rem/1 var(--serif);letter-spacing:-.05em;margin:0 0 .4rem}.room-choice p{font-size:.8rem;line-height:1.5;margin:0}.room-choice strong{align-self:start;font:500 10px var(--mono);letter-spacing:.08em;text-transform:uppercase}.booking-summary{background:var(--forest);color:var(--ivory);height:max-content;position:sticky;top:6rem;padding:1.5rem}.booking-summary h3{font:500 2rem/1 var(--serif);letter-spacing:-.06em;margin:0 0 1.5rem}.summary-line{border-top:1px solid rgba(244,241,233,.22);display:flex;gap:1rem;justify-content:space-between;padding:.8rem 0}.summary-line span{color:var(--mist);font-size:.82rem}.summary-line strong{font:500 10px var(--mono);letter-spacing:.08em;text-align:right;text-transform:uppercase}.summary-line.total{border-color:var(--sand);padding-top:1.1rem}.summary-line.total strong{color:var(--sand);font-size:.9rem}.summary-note{color:var(--sand);font:9px/1.6 var(--mono);letter-spacing:.07em;margin:1.2rem 0;text-transform:uppercase}.primary-button{background:var(--sand);border:0;color:var(--forest);font:600 10px var(--mono);letter-spacing:.1em;padding:1rem 1.2rem;text-transform:uppercase;width:100%}.booking-nav{display:flex;gap:1rem;margin-top:2.2rem}.booking-nav .button-line{border:0;background:none;color:var(--forest)}
.demo-notice { background:#eee4d2; border-left:2px solid var(--sunset); color:#5e5040; font:9px/1.6 var(--mono); letter-spacing:.08em; margin:0 0 1rem; padding:.7rem .85rem; text-transform:uppercase; }.room-choice[data-demo-room] { cursor:pointer; transition:border-color .2s,transform .2s; width:100%; }.room-choice[data-demo-room]:hover { border-color:var(--earth); transform:translateX(.25rem); }.demo-confirmation { background:var(--ivory); border-top:2px solid var(--sunset); padding:2rem; }.demo-confirmation > span { align-items:center; background:var(--forest); border-radius:50%; color:var(--sand); display:flex; font-size:1.4rem; height:2.5rem; justify-content:center; width:2.5rem; }.demo-confirmation h3 { font:500 2.2rem/.95 var(--serif); letter-spacing:-.06em; margin:.5rem 0; }.demo-confirmation p:not(.eyebrow) { color:var(--earth); font-size:.9rem; line-height:1.6; }
.booking-sheet{background:var(--ivory);box-shadow:0 -14px 40px rgba(20,38,31,.25);bottom:0;color:var(--forest);left:0;padding:1.3rem max(1.1rem,calc((100vw - 50rem)/2));position:fixed;right:0;transform:translateY(105%);transition:transform .5s var(--ease);z-index:80}.booking-sheet.open{transform:translateY(0)}.booking-sheet-head{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.2rem}.booking-sheet-head h2{font:500 1.8rem var(--serif);letter-spacing:-.06em;margin:0}.booking-sheet-close{background:none;border:0;font:2rem/1 var(--serif)}.quick-fields{align-items:end;display:grid;gap:1rem;grid-template-columns:repeat(4,1fr) auto}.quick-fields .field{margin:0}.quick-fields .primary-button{width:auto}

/* Generic page blocks */
.interior-hero{background:var(--forest);color:var(--ivory);min-height:69svh;padding:11rem clamp(1.1rem,8vw,10rem) 4rem;position:relative}.interior-hero::after{background:radial-gradient(ellipse at 75% 70%,rgba(200,121,85,.4),transparent 30%),repeating-radial-gradient(ellipse at 80% 70%,transparent 0 38px,rgba(216,197,164,.13) 40px 41px,transparent 43px 80px);content:"";inset:0;position:absolute}.interior-hero > *{position:relative;z-index:1}.interior-hero .display{max-width:70rem}.interior-hero .lede{color:var(--sand);margin-top:2rem}.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(20,38,31,.2);padding:clamp(1.1rem,8vw,10rem)}.info-panel{background:var(--ivory);min-height:20rem;padding:2rem}.info-panel:nth-child(2){background:var(--sand)}.info-panel:nth-child(3){background:var(--lake);color:var(--ivory)}.info-panel h3{font:500 2.2rem/.95 var(--serif);letter-spacing:-.06em;margin:3rem 0 1rem}.info-panel p{font-size:.9rem;line-height:1.7;max-width:22rem}.info-panel .eyebrow{color:var(--sunset)}
.contact-page{background:var(--ivory);padding:10rem clamp(1.1rem,8vw,10rem) 5rem;min-height:100svh}.contact-page .display{color:var(--forest);max-width:52rem}.contact-page .lede{color:var(--earth);margin:2rem 0 4rem}.contact-grid{display:grid;gap:3rem;grid-template-columns:1fr 1fr}.contact-detail{border-top:1px solid rgba(20,38,31,.3);padding-top:1rem}.contact-detail h3{font:500 1.7rem var(--serif);letter-spacing:-.05em;margin:0 0 .6rem}.contact-detail p{font-size:.9rem;line-height:1.8;max-width:23rem}.not-found{background:var(--forest);color:var(--ivory);min-height:100svh;padding:11rem clamp(1.1rem,8vw,10rem)}.not-found .display{max-width:50rem}.not-found .button-line{color:var(--sand);margin-top:2rem}
.photo-page { background:var(--ivory); color:var(--forest); min-height:100vh; }.photo-page-hero { background:var(--forest); color:var(--ivory); padding:11rem clamp(1.1rem,8vw,10rem) 5rem; position:relative; }.photo-page-hero::after { background:repeating-radial-gradient(ellipse at 86% 15%,transparent 0 30px,rgba(216,197,164,.13) 31px 32px,transparent 34px 64px); content:""; inset:0; pointer-events:none; position:absolute; }.photo-page-hero > * { position:relative; z-index:1; }.photo-page-hero .display { max-width:60rem; }.photo-page-hero p:not(.eyebrow) { color:var(--sand); font-size:1rem; line-height:1.7; margin:2rem 0 0; max-width:35rem; }.editorial-rooms { padding:clamp(3rem,8vw,9rem) clamp(1.1rem,8vw,10rem); }.editorial-room { align-items:center; display:grid; gap:clamp(2rem,7vw,8rem); grid-template-columns:1.35fr .65fr; margin-bottom:clamp(4rem,10vw,10rem); }.editorial-room.reverse { grid-template-columns:.65fr 1.35fr; }.editorial-room.reverse .editorial-room-photo { grid-column:2; }.editorial-room.reverse .editorial-room-copy { grid-column:1; grid-row:1; }.editorial-room-photo { background-color:var(--lake); min-height:clamp(22rem,45vw,42rem); overflow:hidden; position:relative; }.editorial-room-photo::after { background:linear-gradient(180deg,transparent,rgba(20,38,31,.25)); content:""; inset:0; position:absolute; }.editorial-room-photo span { color:var(--sand); font:10px var(--mono); left:1.2rem; letter-spacing:.12em; position:absolute; top:1.2rem; z-index:1; }.editorial-room-copy h2 { font:500 clamp(2.4rem,5vw,5rem)/.88 var(--serif); letter-spacing:-.07em; margin:0 0 1.2rem; }.editorial-room-copy p:not(.eyebrow) { color:var(--earth); font-size:.9rem; line-height:1.75; margin:0 0 1.5rem; }.gallery-page { padding-bottom:7rem; }.gallery-filters { display:flex; gap:.5rem; overflow:auto; padding:2rem clamp(1.1rem,8vw,10rem); }.gallery-filters button { background:none; border:1px solid rgba(20,38,31,.3); color:var(--forest); font:500 9px var(--mono); letter-spacing:.1em; padding:.7rem .9rem; text-transform:uppercase; white-space:nowrap; }.gallery-filters button.active,.gallery-filters button:hover { background:var(--forest); color:var(--ivory); }.gallery-wall { display:grid; gap:.8rem; grid-auto-flow:dense; grid-template-columns:repeat(4,1fr); padding:0 clamp(1.1rem,4vw,5rem); }.gallery-image { background-color:var(--lake); border:0; min-height:18rem; overflow:hidden; padding:0; position:relative; text-align:left; transition:transform .4s var(--ease); }.gallery-image::after { background:linear-gradient(180deg,transparent 45%,rgba(20,38,31,.7)); content:""; inset:0; opacity:.8; position:absolute; transition:opacity .3s; }.gallery-image:hover { transform:translateY(-.35rem); }.gallery-image:hover::after { opacity:1; }.gallery-image span,.gallery-image i { color:var(--ivory); font:9px var(--mono); font-style:normal; letter-spacing:.1em; position:absolute; text-transform:uppercase; z-index:1; }.gallery-image span { left:.8rem; top:.8rem; }.gallery-image i { bottom:.8rem; left:.8rem; max-width:80%; }.gallery-image.g-0,.gallery-image.g-4 { grid-row:span 2; min-height:37rem; }.gallery-image.g-2 { grid-column:span 2; }.gallery-dialog { background:#14261f; border:0; color:var(--ivory); max-height:92vh; max-width:min(92vw,1100px); padding:1rem; }.gallery-dialog::backdrop { background:rgba(9,16,13,.86); backdrop-filter:blur(6px); }.gallery-dialog img { display:block; max-height:78vh; max-width:100%; object-fit:contain; }.gallery-dialog p { color:var(--sand); font:9px var(--mono); letter-spacing:.1em; margin:.8rem 0 .2rem; text-transform:uppercase; }.gallery-dialog button { background:none; border:0; color:var(--ivory); font:2rem/1 var(--serif); position:absolute; right:.4rem; top:.3rem; }
.auth-page { background:var(--ivory); display:grid; grid-template-columns:1.05fr .95fr; min-height:100svh; }.auth-photo { background-color:var(--forest); min-height:100%; }.auth-form-wrap { align-self:center; max-width:32rem; padding:clamp(4rem,9vw,10rem) clamp(1.4rem,8vw,9rem); }.auth-form-wrap > .button-line { color:var(--forest); margin-bottom:4rem; }.auth-form-wrap .display { color:var(--forest); font-size:clamp(3.5rem,6vw,6rem); }.auth-form-wrap > p:not(.eyebrow) { color:var(--earth); font-size:.9rem; line-height:1.7; margin:1.4rem 0 2rem; }.auth-form { display:grid; gap:1.2rem; }.auth-form label { border-bottom:1px solid rgba(20,38,31,.35); color:var(--earth); display:flex; flex-direction:column; font:9px var(--mono); gap:.45rem; letter-spacing:.1em; padding-bottom:.6rem; text-transform:uppercase; }.auth-form input { background:none; border:0; color:var(--forest); font:500 1rem var(--sans); outline:0; text-transform:none; }.auth-form .primary-button { margin-top:.8rem; }.auth-switch { color:var(--earth); font-size:.8rem; margin-top:1.5rem; }.auth-switch a { border-bottom:1px solid var(--earth); color:var(--forest); }.auth-form-wrap small { color:var(--earth); display:block; font:9px/1.6 var(--mono); letter-spacing:.07em; margin-top:2rem; text-transform:uppercase; }.account-page { background:var(--mist); min-height:100svh; padding:10rem clamp(1.1rem,8vw,10rem) 5rem; }.account-page .display { color:var(--forest); }.account-actions { align-items:center; display:flex; gap:1rem; margin:2rem 0; max-width:27rem; }.account-actions .primary-button { width:auto; }.account-bookings { background:var(--ivory); max-width:44rem; padding:1.5rem; }.account-bookings article { border-bottom:1px solid rgba(20,38,31,.2); padding:1rem 0; }.account-bookings article:last-child { border:0; }.account-bookings strong { font:500 1.4rem var(--serif); }.account-bookings p { color:var(--earth); font-size:.82rem; margin:.3rem 0; }

.toast{background:var(--forest);bottom:1.2rem;color:var(--ivory);font:10px/1.5 var(--mono);left:50%;letter-spacing:.08em;max-width:min(24rem,calc(100vw - 2rem));opacity:0;padding:.8rem 1rem;pointer-events:none;position:fixed;text-align:center;text-transform:uppercase;transform:translate(-50%,3rem);transition:opacity .3s,transform .3s;z-index:200}.toast.show{opacity:1;transform:translate(-50%,0)}.cursor-orb{border:1px solid rgba(216,197,164,.7);border-radius:50%;height:2.6rem;left:-3rem;pointer-events:none;position:fixed;top:-3rem;transition:width .2s,height .2s,background .2s; width:2.6rem;z-index:300}.cursor-orb span{background:var(--sand);border-radius:50%;height:3px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:3px}

@media (max-width: 850px) {
  .nav-links,.nav-book { display:none; }.nav { padding:1.1rem 1rem; }.nav-actions { gap:0; }.menu-toggle i{display:none}.menu-toggle{gap:.28rem;flex-direction:column}.menu-overlay{grid-template-columns:1fr}.menu-photo{display:none}.menu-copy{padding:5rem 1.5rem 2rem}.menu-items{grid-template-columns:1fr}.menu-item span{font-size:2.3rem}.hero { padding:7rem 1.15rem 8rem; }.hero-inner { height:calc(100svh - 12rem); }.hero-title { font-size:clamp(4.2rem,17vw,6.7rem); }.hero-bottom{align-items:start;flex-direction:column;gap:1.4rem}.hero-summary{font-size:.78rem}.hero-actions{width:100%;justify-content:space-between}.scroll-indicator{display:none}.booking-dock{left:1rem;right:1rem;width:auto}.story,.mood-layout{grid-template-columns:1fr;gap:2.5rem}.story-title{position:static}.journey{padding-left:1.1rem}.journey-step{grid-template-columns:2.2rem 1fr;gap:.8rem;min-height:7.7rem}.journey-image{display:none}.section-head{align-items:start;flex-direction:column;gap:1.2rem;padding-right:1.1rem}.room-rail{gap:1rem;padding-right:2rem}.room-panel{flex-basis:88vw;grid-template-columns:1fr;min-height:31rem}.room-photo{min-height:15rem}.room-info{min-height:17rem;padding:1.3rem}.room-status{margin-top:1rem}.day-intro,.explore-grid,.day-intro{grid-template-columns:1fr}.timeline{display:flex;flex-direction:column;margin-top:3rem}.timeline::before{bottom:0;height:auto;left:.25rem;right:auto;top:0;width:1px}.time-stop,.time-stop:nth-child(even){min-height:0;padding:0 0 1.2rem 1.6rem}.time-stop::before,.time-stop:nth-child(even)::before{left:-.1rem;top:.15rem}.time-stop time{margin-bottom:.25rem}.mood-window{min-height:27rem}.info-grid{grid-template-columns:1fr;padding:1.1rem}.legal-footer{grid-template-columns:1fr}.quick-fields,.booking-grid,.booking-fields,.contact-grid{grid-template-columns:1fr}.booking-page{padding:7rem 1.1rem 6rem}.booking-top{flex-direction:column}.booking-summary{position:static}.room-choice{grid-template-columns:6rem 1fr}.room-choice strong{grid-column:2}.booking-sheet{padding:1.1rem}.quick-fields .primary-button{width:100%}.cursor-orb{display:none}.interior-hero{min-height:60svh;padding:8rem 1.1rem 3rem}.info-grid{padding:1.1rem}.finale{min-height:64svh;padding:4rem 1.1rem}.finale h2{font-size:clamp(4rem,17vw,7rem)}
}
@media (prefers-reduced-motion: reduce) { *,*::before,*::after { animation-duration: .01ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; transition-duration:.01ms !important; } }

/* Admin command centre — operational by design, visually distinct from the guest journey */
.nav[hidden] { display:none !important; }.admin-mode { background:#eef0ec; color:#17221d; }.admin-mode #main { min-height:100vh; }.admin-mode .nav { display:none !important; }.admin-app { background:#eef0ec; display:grid; grid-template-columns:17.5rem minmax(0,1fr); min-height:100vh; }
.admin-sidebar { background:#16241e; color:#e8ece7; display:flex; flex-direction:column; min-height:100vh; padding:1.4rem .75rem; position:sticky; top:0; height:100vh; }.admin-wordmark { align-items:center; display:grid; gap:0 .5rem; grid-template-columns:2rem 1fr; margin:0 .5rem 2.2rem; }.admin-wordmark span { align-items:center; border:1px solid rgba(232,236,231,.75); border-radius:50%; display:flex; font:italic 1.35rem var(--serif); grid-row:span 2; height:2rem; justify-content:center; width:2rem; }.admin-wordmark em { font:italic 1.5rem/1 var(--serif); letter-spacing:-.06em; }.admin-wordmark small { color:var(--sand); font:8px var(--mono); letter-spacing:.14em; text-transform:uppercase; }
.admin-sidebar nav { overflow:auto; padding-bottom:1rem; }.admin-sidebar nav > button,.admin-nav-group button { background:none; border:0; border-radius:.25rem; color:rgba(232,236,231,.78); display:block; font:500 11px var(--sans); padding:.56rem .75rem; text-align:left; transition:background .2s,color .2s; width:100%; }.admin-sidebar nav > button { margin-bottom:1.2rem; }.admin-sidebar button:hover,.admin-sidebar button:focus-visible,.admin-sidebar button.active { background:rgba(216,197,164,.14); color:var(--sand); outline:0; }.admin-nav-group { margin-bottom:1.25rem; }.admin-nav-group p { color:#84938c; font:9px var(--mono); letter-spacing:.13em; margin:.1rem .75rem .35rem; text-transform:uppercase; }.admin-sidebar-foot { border-top:1px solid rgba(232,236,231,.16); margin-top:auto; padding:.9rem .65rem .2rem; }.admin-sidebar-foot span { color:var(--sand); font:9px var(--mono); letter-spacing:.1em; text-transform:uppercase; }.admin-sidebar-foot p { color:#93a098; font-size:.7rem; margin:.35rem 0 0; }
.admin-main { min-width:0; }.admin-mobile-head { display:none; }.admin-banner { align-items:center; background:#dce2da; border-bottom:1px solid #c7cec6; color:#425047; display:flex; font-size:.75rem; gap:.6rem; padding:.7rem clamp(1.2rem,4vw,4rem); }.admin-banner span { color:var(--sunset); font-size:1rem; }.admin-banner p { margin:0; }.admin-banner b { color:#1e2f26; }
.admin-content { padding:clamp(2rem,4vw,4.5rem); }.admin-content-head { align-items:flex-start; display:flex; gap:1.5rem; justify-content:space-between; margin-bottom:2.4rem; }.admin-content-head p,.admin-overline { color:#69786f; font:500 9px var(--mono); letter-spacing:.13em; margin:0 0 .55rem; text-transform:uppercase; }.admin-content-head h1 { color:#18271f; font:500 clamp(2.5rem,4vw,4.8rem)/.88 var(--serif); letter-spacing:-.07em; margin:0; }.admin-content-head span { color:#5c6961; display:block; font-size:.9rem; line-height:1.6; margin-top:1rem; max-width:42rem; }.admin-export { background:none; border:1px solid #aeb9b0; color:#23362b; font:600 9px var(--mono); letter-spacing:.1em; padding:.7rem .9rem; text-transform:uppercase; white-space:nowrap; }.admin-export:hover { background:#18271f; color:#e8ece7; }
.admin-kpis { display:grid; gap:1px; grid-template-columns:repeat(4,1fr); margin-bottom:1.5rem; }.admin-kpis article { background:#fbfaf6; min-height:9.5rem; padding:1.15rem; }.admin-kpis span { color:#6b776f; font:9px var(--mono); letter-spacing:.1em; text-transform:uppercase; }.admin-kpis strong { color:#1c2d24; display:block; font:500 3rem/.9 var(--serif); letter-spacing:-.08em; margin:1.2rem 0 .4rem; }.admin-kpis p { color:#718078; font-size:.73rem; margin:0; }.admin-dashboard-grid { display:grid; gap:1px; grid-template-columns:1fr 1fr; }.admin-dashboard-grid > section { background:#fbfaf6; min-height:19rem; padding:1.6rem; }.admin-dashboard-grid h2,.admin-form h2,.admin-list h2,.admin-security h2 { color:#1b2d23; font:500 2rem/.95 var(--serif); letter-spacing:-.06em; margin:0 0 1.3rem; }.admin-checklist { list-style:none; margin:0; padding:0; }.admin-checklist li { border-bottom:1px solid #e0e4dc; color:#617067; font-size:.82rem; padding:.9rem .15rem .9rem 1.6rem; position:relative; }.admin-checklist li::before { border:1px solid #99a69e; border-radius:50%; content:""; height:.55rem; left:.15rem; position:absolute; top:1.05rem; width:.55rem; }.admin-checklist li.done::before { background:#bd7254; border-color:#bd7254; box-shadow:inset 0 0 0 2px #fbfaf6; }.admin-activity p { border-bottom:1px solid #e0e4dc; color:#647168; font-size:.78rem; margin:0; padding:.87rem 0; }.admin-activity b { color:#26392e; font-weight:600; }
.admin-workspace { display:grid; gap:1.5rem; grid-template-columns:minmax(19rem,.75fr) minmax(0,1.25fr); }.admin-form,.admin-list,.admin-security { background:#fbfaf6; padding:1.5rem; }.admin-fields { display:grid; gap:1rem; grid-template-columns:repeat(2,minmax(0,1fr)); }.admin-field { border-bottom:1px solid #c8d0c8; display:flex; flex-direction:column; gap:.4rem; min-width:0; padding-bottom:.55rem; }.admin-field.full { grid-column:1/-1; }.admin-field span { color:#5d6c63; font:9px var(--mono); letter-spacing:.09em; text-transform:uppercase; }.admin-field input,.admin-field select,.admin-field textarea { background:transparent; border:0; color:#1c2d24; font:500 .85rem var(--sans); outline:0; padding:0; width:100%; }.admin-field textarea { min-height:4.7rem; resize:vertical; }.admin-check { align-items:center; color:#34473c; display:flex; font-size:.83rem; gap:.6rem; grid-column:1/-1; padding:.35rem 0; }.admin-check input { height:0; opacity:0; position:absolute; width:0; }.admin-check span { border:1px solid #7b8d81; display:inline-block; height:1rem; position:relative; width:1rem; }.admin-check input:checked + span { background:#24392d; border-color:#24392d; }.admin-check input:checked + span::after { border:solid #f4f1e9; border-width:0 1px 1px 0; content:""; height:.42rem; left:.32rem; position:absolute; top:.18rem; transform:rotate(45deg); width:.2rem; }.admin-save { background:#1b2c23; border:0; color:#f4f1e9; font:600 10px var(--mono); letter-spacing:.1em; margin-top:1.4rem; padding:.9rem 1rem; text-transform:uppercase; width:100%; }.admin-save:hover { background:#bd7254; }.admin-form small { color:#77847c; display:block; font-size:.68rem; line-height:1.5; margin-top:1rem; }.admin-list-head { align-items:baseline; border-bottom:1px solid #dce1db; display:flex; justify-content:space-between; margin-bottom:.1rem; padding-bottom:1rem; }.admin-list-head h2 { margin:0; }.admin-list-head span { color:#76837c; font:9px var(--mono); letter-spacing:.08em; text-transform:uppercase; }.admin-record { align-items:center; border-bottom:1px solid #e0e4dc; display:flex; gap:1rem; justify-content:space-between; padding:1rem 0; }.admin-record strong { color:#26382d; font:600 .84rem var(--sans); }.admin-record p { color:#748077; font-size:.72rem; line-height:1.5; margin:.3rem 0 0; }.admin-record-actions { align-items:center; display:flex; gap:.45rem; }.admin-record-actions button { background:none; border:1px solid #cbd3ca; color:#516158; font:8px var(--mono); letter-spacing:.06em; padding:.4rem .5rem; text-transform:uppercase; }.admin-record-actions button:hover { border-color:#a85f43; color:#a85f43; }.admin-state { color:#78857d; font:8px var(--mono); letter-spacing:.07em; text-transform:uppercase; }.admin-state.is-live { color:#a85f43; }.admin-empty { align-items:center; border:1px dashed #c5cec5; color:#77847b; display:flex; flex-direction:column; justify-content:center; min-height:17rem; padding:1.5rem; text-align:center; }.admin-empty span { color:#bd7254; font:2rem var(--serif); }.admin-empty h3 { color:#3d5044; font:500 1.5rem var(--serif); margin:.3rem 0; }.admin-empty p { font-size:.78rem; line-height:1.6; margin:.2rem 0; max-width:20rem; }.admin-empty.compact { min-height:10rem; }.audit-list { max-width:62rem; }.admin-report-grid { display:grid; gap:1px; grid-template-columns:repeat(3,1fr); margin-bottom:1.5rem; }.admin-report-grid article { background:#fbfaf6; min-height:11rem; padding:1.5rem; }.admin-report-grid p { color:#68776e; font:9px var(--mono); letter-spacing:.09em; margin:0; text-transform:uppercase; }.admin-report-grid strong { color:#1c2d24; display:block; font:500 3.5rem/.9 var(--serif); letter-spacing:-.08em; margin:1.3rem 0 .3rem; }.admin-report-grid span { color:#728078; font-size:.72rem; }.admin-chart { align-items:end; background:#1a3026; color:#eff1ec; display:grid; gap:2rem; grid-template-columns:1fr 1fr; min-height:21rem; overflow:hidden; padding:2rem; }.admin-chart h2 { font:500 2.5rem/.9 var(--serif); letter-spacing:-.06em; margin:.4rem 0 1rem; max-width:22rem; }.admin-chart span { color:#bdc8be; font-size:.82rem; line-height:1.6; max-width:25rem; }.admin-chart .admin-overline { color:#d8c5a4; }.admin-chart-lines { align-items:end; display:flex; gap:.6rem; height:15rem; justify-content:flex-end; }.admin-chart-lines i { background:linear-gradient(180deg,#d8c5a4,#bd7254); display:block; width:18%; }.admin-chart-lines i:nth-child(1){height:27%}.admin-chart-lines i:nth-child(2){height:53%}.admin-chart-lines i:nth-child(3){height:38%}.admin-chart-lines i:nth-child(4){height:73%}.admin-security { background:#d8c5a4; }.admin-security p:not(.admin-overline) { color:#5e4f3e; font-size:.85rem; line-height:1.7; }.admin-security a { border-bottom:1px solid #574b3c; color:#3e382f; display:inline-block; font:600 9px var(--mono); letter-spacing:.1em; margin-top:1.5rem; padding-bottom:.4rem; text-transform:uppercase; }
@media (max-width: 900px) { .admin-app{grid-template-columns:1fr}.admin-sidebar{display:none}.admin-mobile-head{align-items:center;background:#16241e;color:#e8ece7;display:flex;font:9px var(--mono);justify-content:space-between;letter-spacing:.08em;padding:.95rem 1.1rem;text-transform:uppercase}.admin-mobile-head a{color:var(--sand)}.admin-content{padding:2rem 1.1rem}.admin-kpis{grid-template-columns:repeat(2,1fr)}.admin-dashboard-grid,.admin-workspace{grid-template-columns:1fr}.admin-report-grid{grid-template-columns:1fr}.admin-chart{grid-template-columns:1fr;min-height:28rem}.admin-content-head{flex-direction:column}.admin-content-head h1{font-size:3.2rem}.admin-export{width:100%} }
@media (max-width: 520px) { .admin-kpis{grid-template-columns:1fr}.admin-fields{grid-template-columns:1fr}.admin-record{align-items:flex-start;flex-direction:column}.admin-record-actions{width:100%}.admin-record-actions button{flex:1}.admin-chart{padding:1.35rem}.admin-chart h2{font-size:2.1rem} }
@media (max-width: 850px) { .photo-page-hero{padding:8rem 1.1rem 3rem}.editorial-rooms{padding:3rem 1.1rem}.editorial-room,.editorial-room.reverse{grid-template-columns:1fr;margin-bottom:4rem}.editorial-room.reverse .editorial-room-photo,.editorial-room.reverse .editorial-room-copy{grid-column:auto;grid-row:auto}.editorial-room-photo{min-height:25rem}.gallery-wall{grid-template-columns:repeat(2,1fr);padding:0 1rem}.gallery-image{min-height:13rem}.gallery-image.g-0,.gallery-image.g-4{min-height:27rem}.gallery-image.g-2{grid-column:span 1} }
@media (max-width: 850px) { .auth-page{grid-template-columns:1fr}.auth-photo{display:none}.auth-form-wrap{max-width:none;padding:8rem 1.1rem 4rem}.auth-form-wrap > .button-line{margin-bottom:3rem}.account-page{padding:8rem 1.1rem 4rem} }
@media (max-width: 850px) { .resort-facts{padding:1.2rem 1.1rem}.resort-facts > div{grid-template-columns:repeat(2,1fr)}.resort-facts article:nth-child(3){border-left:0;border-top:1px solid rgba(20,38,31,.18)}.resort-facts article:nth-child(4){border-top:1px solid rgba(20,38,31,.18)}.home-gallery{padding:4.5rem 1.1rem}.home-gallery-head{align-items:start;flex-direction:column;gap:1.5rem}.home-gallery-stage{grid-template-columns:1fr 1fr;grid-template-rows:15rem 12rem 12rem}.gallery-stage-0{grid-row:span 2}.gallery-stage-1{grid-column:auto}.gallery-stage-2{grid-row:auto}.gallery-stage-3,.gallery-stage-4,.gallery-stage-5{grid-column:auto}.discovery-compass{grid-template-columns:1fr;padding:4.5rem 1.1rem}.compass-option{grid-template-columns:1.8rem 1fr 1.3rem}.compass-option i{display:none} }

.admin-check input { accent-color:#24392d; height:1rem; margin:0; opacity:1; position:static; width:1rem; }
.admin-check span { display:none; }

/* Refined "A day at Saapna" rhythm: content never intersects the waterline. */
@media (min-width: 851px) {
  .day { padding-bottom:clamp(6rem,10vw,10rem); padding-top:clamp(6rem,9vw,9rem); }
  .day .display { font-size:clamp(3.8rem,6.1vw,6.7rem); line-height:.86; max-width:42rem; }
  .day-intro { align-items:end; }
  .day-intro > p { margin:0 0 .45rem; }
  .timeline { margin-top:clamp(3.5rem,6vw,6rem); min-height:23rem; }
  .timeline::before { top:8.1rem; }
  .time-stop { min-height:23rem; padding:0 1.3rem .5rem 0; }
  .time-stop:nth-child(even) { padding-top:10.6rem; }
  .time-stop::before,
  .time-stop:nth-child(even)::before { top:7.75rem; }
  .time-stop h3 { font-size:clamp(1.2rem,1.6vw,1.7rem); line-height:1.02; max-width:12rem; }
  .time-stop p { max-width:12.5rem; }
}

/* Simplified resort operations controls */
.admin-tabs { border-bottom:1px solid #d9dfd8; display:flex; flex-wrap:wrap; gap:.25rem; margin:-.35rem 0 1.5rem; }
.admin-tabs button { background:transparent; border:0; border-bottom:2px solid transparent; color:#647168; font:600 9px var(--mono); letter-spacing:.08em; padding:.7rem .7rem .65rem; text-transform:uppercase; }
.admin-tabs button:hover,.admin-tabs button.active { border-bottom-color:#bd7254; color:#1f3328; }
.availability-calendar { display:grid; gap:.65rem; grid-template-columns:repeat(auto-fill,minmax(9rem,1fr)); }
.availability-day { background:#eef1eb; border-top:3px solid #7c8d83; min-height:8rem; padding:.8rem; }
.availability-day.available { border-top-color:#527866; }.availability-day.booked { border-top-color:#bd7254; }.availability-day.maintenance,.availability-day.blocked { border-top-color:#876b48; }
.availability-day span,.availability-day small { color:#68776e; display:block; font:9px var(--mono); letter-spacing:.06em; line-height:1.5; text-transform:uppercase; }
.availability-day strong { color:#203328; display:block; font:500 1.35rem/.95 var(--serif); letter-spacing:-.05em; margin:.8rem 0 .5rem; }
.availability-day button { background:none; border:0; border-bottom:1px solid #8f9d92; color:#59685e; font:8px var(--mono); letter-spacing:.08em; margin-top:.8rem; padding:0 0 .2rem; text-transform:uppercase; }
.booking-detail { background:#d8c5a4; color:#25352b; margin-top:1.5rem; max-width:49rem; padding:1.6rem; position:relative; }
.booking-detail > button { background:none; border:0; color:#3d4a41; font:2rem/1 var(--serif); position:absolute; right:.85rem; top:.7rem; }
.booking-detail h2 { font:500 2.25rem/.9 var(--serif); letter-spacing:-.06em; margin:.2rem 2.5rem 1.4rem 0; }
.booking-detail dl { display:grid; gap:0; grid-template-columns:repeat(2,minmax(0,1fr)); margin:0; }
.booking-detail dl div { border-top:1px solid rgba(37,53,43,.22); padding:.65rem 0; }.booking-detail dt { color:#5f5b50; font:9px var(--mono); letter-spacing:.08em; text-transform:uppercase; }.booking-detail dd { color:#293a2f; font-size:.88rem; margin:.25rem 0 0; }
.booking-detail .admin-record-actions { margin-top:1rem; }.booking-detail .admin-record-actions button { background:rgba(244,241,233,.45); }
.admin-quick-actions { display:flex; flex-wrap:wrap; gap:.5rem; margin:0 0 1.8rem; }.admin-quick-actions button { background:#1d3126; border:0; color:#f4f1e9; font:600 9px var(--mono); letter-spacing:.08em; padding:.7rem .8rem; text-transform:uppercase; }.admin-quick-actions button:hover { background:#bd7254; }
.admin-mini-list { border-top:1px solid #e0e4dc; padding-top:1.2rem; }.admin-mini-list .admin-overline { margin-bottom:.5rem; }.admin-mini-list > p:not(.admin-overline),.admin-activity p { align-items:baseline; display:flex; gap:.35rem; justify-content:space-between; }.admin-mini-list span,.admin-activity span { color:#9c674e; font:8px var(--mono); letter-spacing:.06em; text-transform:uppercase; white-space:nowrap; }
.admin-contact-link { border-bottom:1px solid #97a49a; color:#45584b; display:inline-block; font:600 8px var(--mono); letter-spacing:.08em; margin-top:.45rem; padding-bottom:.2rem; text-transform:uppercase; }
.gallery-workspace { align-items:start; }.gallery-upload-form { max-width:38rem; }.gallery-file-drop { align-items:center; background:#e8ede6; border:1px dashed #97a69b; color:#274033; cursor:pointer; display:flex; flex-direction:column; gap:.35rem; justify-content:center; margin:0 0 1rem; min-height:7.5rem; padding:1rem; text-align:center; transition:background .2s,border-color .2s; }.gallery-file-drop:hover,.gallery-file-drop:focus-within { background:#dce7da; border-color:#bd7254; }.gallery-file-drop input { height:1px; opacity:0; overflow:hidden; position:absolute; width:1px; }.gallery-file-drop > span { color:#1e3428; font:600 10px var(--mono); letter-spacing:.1em; text-transform:uppercase; }.gallery-file-drop small { color:#66766d; font-size:.7rem; }.gallery-upload-preview { align-items:flex-end; background:#dce3da center/cover no-repeat; color:#f4f1e9; display:flex; min-height:12rem; overflow:hidden; padding:.85rem; position:relative; }.gallery-upload-preview::before { background:linear-gradient(180deg,transparent,rgba(20,38,31,.55)); content:""; inset:0; position:absolute; }.gallery-upload-preview span { font:600 9px var(--mono); letter-spacing:.1em; position:relative; text-transform:uppercase; }.admin-gallery-grid { display:grid; gap:1px; grid-template-columns:repeat(2,minmax(0,1fr)); }.admin-gallery-card { background:#eef1eb; display:grid; gap:.75rem; min-width:0; padding:.75rem; }.admin-gallery-thumb { align-items:flex-end; background:#ced8ce center/cover no-repeat; color:#f4f1e9; display:flex; min-height:8.5rem; overflow:hidden; padding:.55rem; position:relative; }.admin-gallery-thumb::after { background:linear-gradient(180deg,transparent,rgba(20,38,31,.55)); content:""; inset:0; position:absolute; }.admin-gallery-thumb span { font:600 8px var(--mono); letter-spacing:.1em; position:relative; text-transform:uppercase; z-index:1; }.admin-gallery-card strong { color:#25392d; display:block; font:500 1.25rem/.95 var(--serif); letter-spacing:-.04em; }.admin-gallery-card p { color:#6d7b71; font-size:.72rem; line-height:1.45; margin:.3rem 0 0; }.admin-gallery-card .admin-record-actions { align-items:center; justify-content:flex-start; }.admin-gallery-card .admin-record-actions button { background:#fbfaf6; }
@media (max-width: 620px) { .admin-tabs { gap:0; }.admin-tabs button { font-size:8px; padding-left:.45rem; padding-right:.45rem; }.availability-calendar { grid-template-columns:repeat(2,minmax(0,1fr)); }.booking-detail dl { grid-template-columns:1fr; }.booking-record { align-items:flex-start; flex-direction:column; }.booking-record .admin-record-actions { width:100%; } }

/* Admin authentication — intentionally isolated from public navigation. */
.admin-login { background:var(--mist); color:var(--forest); display:grid; grid-template-columns:minmax(20rem,.9fr) 1.1fr; min-height:100svh; }
.admin-login-card { align-self:center; margin:auto; max-width:31rem; padding:clamp(2rem,7vw,7rem); width:100%; }.admin-login-card > .button-line { color:var(--forest); margin-bottom:4.5rem; }.admin-login-card h1 { font:500 clamp(3.5rem,6vw,6.5rem)/.83 var(--serif); letter-spacing:-.08em; margin:0; }.admin-login-card h1 em { color:var(--sunset); font-weight:500; }.admin-login-card > p:not(.eyebrow):not(.admin-login-message) { font-size:.92rem; line-height:1.7; margin:1.8rem 0; max-width:24rem; }.admin-login-card small { color:#6d7b72; display:block; font-size:.7rem; line-height:1.55; margin-top:1.2rem; max-width:25rem; }.admin-login-card code { background:#dbe1d9; font:600 .8rem var(--mono); padding:.15rem .3rem; }
.admin-login-image { background-position:center; min-height:100%; position:relative; }.admin-login-image::after { background:linear-gradient(180deg,rgba(20,38,31,.08),rgba(20,38,31,.58)); content:""; inset:0; position:absolute; }
.admin-login-form { display:grid; gap:1.05rem; margin-top:2rem; }.admin-login-form label { border-bottom:1px solid #9daaa1; color:#5b6c61; display:flex; flex-direction:column; font:500 9px var(--mono); gap:.5rem; letter-spacing:.1em; padding-bottom:.55rem; text-transform:uppercase; }.admin-login-form input { background:none; border:0; color:#1e3026; font:500 .95rem var(--sans); outline:0; padding:0; }.admin-login-form input::placeholder { color:#88958c; }.admin-login-form .primary-button { margin-top:.65rem; }.admin-login-message { background:#f3e3d8; border-left:2px solid var(--sunset); color:#74452f; font-size:.8rem; line-height:1.5; margin:1.2rem 0 0; padding:.75rem .85rem; }
.admin-sidebar-foot button { background:none; border:0; border-bottom:1px solid rgba(216,197,164,.55); color:var(--sand); font:600 8px var(--mono); letter-spacing:.1em; margin-top:.75rem; padding:0 0 .3rem; text-transform:uppercase; }.admin-sidebar-foot button:hover,.admin-sidebar-foot button:focus-visible { color:var(--ivory); outline:0; }.admin-mobile-head button { background:none; border:0; color:var(--sand); font:600 8px var(--mono); letter-spacing:.08em; padding:0; text-transform:uppercase; }
@media (max-width: 850px) { .admin-login { grid-template-columns:1fr; }.admin-login-card { max-width:none; min-height:100svh; padding:7rem 1.2rem 3rem; }.admin-login-card > .button-line { margin-bottom:3.5rem; }.admin-login-image { display:none; } }
@media (max-width: 620px) { .admin-gallery-grid { grid-template-columns:1fr; }.gallery-upload-preview { min-height:10rem; } }
