:root{--ink:#142019;--cream:#f2eee5;--paper:#fbfaf7;--muted:#69716c;--line:rgba(20,32,25,.18)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,Arial,sans-serif;font-weight:300}a{color:inherit;text-decoration:none}img{display:block}header{height:86px;display:flex;align-items:center;justify-content:space-between;padding:0 4vw;position:absolute;z-index:10;width:100%;color:#fff}.brand{font:600 20px/1 Manrope;letter-spacing:.2em}.brand span{display:block;font-size:8px;letter-spacing:.48em;margin-top:8px}nav{display:flex;gap:34px}nav a{font-size:11px;letter-spacing:.06em}.actions{display:flex;gap:20px;align-items:center}.actions button{background:none;border:0;color:inherit;cursor:pointer;font:400 12px Manrope}.book{border:1px solid currentColor;padding:14px 19px;font-size:10px;letter-spacing:.16em}.hero{height:100svh;min-height:680px;position:relative;color:#fff;overflow:hidden}.hero>img{width:100%;height:100%;object-fit:cover;object-position:center}.shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,10,7,.34) 0%,rgba(5,10,7,.02) 42%,rgba(5,10,7,.52) 100%)}.heroText{position:absolute;left:7vw;bottom:13vh;max-width:800px}.heroText p,.eyebrow{font-size:10px;letter-spacing:.28em;font-weight:500}.heroText h1,.intro h2,.rooms h2,.sectionTitle h2,.gallery h2,.booking h2{font:500 clamp(44px,5.5vw,82px)/1.04 'Playfair Display',serif;margin:18px 0 32px;letter-spacing:-.02em}.heroText a,.textLink{font-size:10px;letter-spacing:.16em;border-bottom:1px solid;padding-bottom:8px}.scrollCue{position:absolute;right:4vw;bottom:35px;font-size:22px}.intro{text-align:center;padding:135px 8vw 145px}.intro h2{font-size:clamp(38px,4.2vw,62px)}.copy{max-width:760px;margin:auto;line-height:1.9;color:var(--muted);font-size:16px}.rooms{display:grid;grid-template-columns:1.15fr .85fr;background:var(--cream);min-height:760px}.roomsPhoto img{width:100%;height:100%;object-fit:cover}.roomsCopy{padding:9vw 7vw;align-self:center}.rooms h2{font-size:clamp(42px,4.5vw,64px)}.roomsCopy>p:not(.eyebrow){line-height:1.85;color:var(--muted);max-width:520px}.roomFacts{display:flex;flex-wrap:wrap;gap:10px;margin:35px 0}.roomFacts span{border:1px solid var(--line);padding:10px 12px;font-size:9px;letter-spacing:.13em}.experience{padding:125px 5vw}.sectionTitle{max-width:760px;margin-bottom:75px}.sectionTitle h2{font-size:clamp(44px,5vw,72px)}.experience article{display:grid;grid-template-columns:1.25fr .75fr;align-items:end;gap:7vw;margin-bottom:110px}.experience article.reverse{grid-template-columns:.75fr 1.25fr}.experience article.reverse img{order:2}.experience article img{width:100%;height:600px;object-fit:cover}.experience article div{padding-bottom:35px}.experience article span{font-size:10px;letter-spacing:.2em}.experience h3{font:500 40px/1.1 'Playfair Display';margin:18px 0}.experience article p{line-height:1.8;color:var(--muted);max-width:430px}.gallery{background:var(--ink);color:#fff;padding:120px 4vw}.galleryHead{text-align:center;margin-bottom:60px}.gallery h2{font-size:clamp(44px,5vw,68px)}.grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px}.grid img{width:100%;height:350px;object-fit:cover}.grid img:first-child{grid-row:span 2;height:712px}.booking{padding:130px 6vw;display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw;align-items:start}.booking h2{font-size:clamp(48px,5vw,70px)}.bookingIntro>p:not(.eyebrow){color:var(--muted);line-height:1.8;max-width:520px}.direct{display:flex;flex-direction:column;gap:9px;margin-top:30px;font-size:13px}.direct a{text-decoration:underline;text-underline-offset:4px}.booking form{display:grid;grid-template-columns:1fr 1fr;gap:10px;text-align:left;padding-top:20px}.booking form div{border:1px solid #c9cbc8;padding:15px 16px;min-height:82px}.booking form .wide{grid-column:1/-1}.booking label{display:block;font-size:9px;letter-spacing:.12em;margin-bottom:12px}.booking input,.booking select{border:0;background:transparent;width:100%;outline:none;font:400 14px Manrope;color:var(--ink)}.booking button{grid-column:1/-1;background:var(--ink);color:#fff;border:0;padding:22px;letter-spacing:.15em;cursor:pointer}.booking button:hover{opacity:.92}footer{background:#0d1511;color:#ddd;padding:70px 4vw;display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:50px;font-size:11px}footer p{margin:28px 0 0}.footerContact{display:flex;flex-direction:column;gap:10px}.mobileBook{display:none}
@media(max-width:760px){header{height:72px;padding:0 20px}.brand{font-size:17px}.brand span{font-size:7px}nav{display:none}.actions{gap:14px}.book{padding:12px 14px}.hero{height:88svh;min-height:620px}.hero>img{object-position:52% center}.heroText{left:24px;right:20px;bottom:82px}.heroText h1{font-size:44px;margin:14px 0 28px}.heroText p{font-size:9px}.scrollCue{display:none}.intro{padding:88px 24px 95px}.intro h2{font-size:39px;line-height:1.08}.copy{font-size:15px;line-height:1.85}.rooms{grid-template-columns:1fr;min-height:0}.roomsPhoto img{height:520px}.roomsCopy{padding:72px 26px 80px}.rooms h2{font-size:42px}.roomsCopy>p:not(.eyebrow){font-size:15px}.roomFacts{gap:7px;margin:30px 0}.experience{padding:88px 20px}.sectionTitle{margin-bottom:55px}.sectionTitle h2{font-size:43px}.experience article,.experience article.reverse{grid-template-columns:1fr;gap:28px;margin-bottom:82px}.experience article.reverse img{order:0}.experience article img{height:450px}.experience article div{padding:0 8px}.experience h3{font-size:34px}.gallery{padding:85px 18px}.galleryHead{margin-bottom:45px}.gallery h2{font-size:46px}.grid{grid-template-columns:1fr 1fr;gap:8px}.grid img,.grid img:first-child{height:290px;grid-row:auto}.grid img:first-child{grid-column:1/-1;height:430px}.booking{padding:92px 20px 105px;grid-template-columns:1fr;gap:45px}.booking h2{font-size:48px}.booking form{padding:0;gap:8px}.booking form div{min-height:78px}.direct{font-size:12px}footer{padding:60px 28px 105px;grid-template-columns:1fr;gap:28px;align-items:start}footer p{margin:15px 0 0}.mobileBook{display:block;position:fixed;z-index:20;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));background:var(--ink);color:#fff;padding:15px 19px;font-size:9px;letter-spacing:.16em;box-shadow:0 8px 30px rgba(0,0,0,.18)}}
@media(max-width:430px){.actions .book{display:none}.heroText h1{font-size:42px}.booking form{grid-template-columns:1fr}.booking form .wide{grid-column:auto}.booking button{grid-column:1}.grid img,.grid img:first-child{height:250px}.grid img:first-child{height:390px}}
/* v3 booking emphasis */
.heroCtas{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.heroText .heroBook{border:1px solid rgba(255,255,255,.95);background:#fff;color:var(--ink);padding:18px 28px;font-size:11px;letter-spacing:.18em;font-weight:600;box-shadow:0 12px 35px rgba(0,0,0,.16)}.heroText .heroRooms{border-bottom:1px solid rgba(255,255,255,.9);padding:18px 0 8px}.roomTypePicker{display:grid;grid-template-columns:1fr 1fr;gap:10px}.booking form .roomType{position:relative;border:1px solid #c9cbc8;padding:16px;min-height:122px;cursor:pointer;display:flex;flex-direction:column;gap:7px;margin:0}.roomType input{position:absolute;opacity:0;pointer-events:none}.roomType strong{font-size:12px;letter-spacing:.12em}.roomType span{font-size:11px;color:var(--muted);line-height:1.45}.roomType b{margin-top:auto;font-size:12px;font-weight:500}.roomType.active{border-color:var(--ink);background:#f1eee6}.booking form .priceSummary{background:var(--cream);border:0;min-height:auto;padding:18px}.priceSummary span{font-size:12px;line-height:1.55}.priceSummary strong{font:500 24px 'Playfair Display';display:block;margin-top:4px}.mobileBook{border-radius:2px;font-weight:600}
@media(max-width:760px){.heroText{text-align:center;left:22px;right:22px}.heroText h1{font-size:43px}.heroCtas{justify-content:center;flex-direction:column;gap:12px}.heroText .heroBook{font-size:12px;padding:18px 30px;min-width:230px}.heroText .heroRooms{font-size:9px}.roomTypePicker{grid-template-columns:1fr}.booking form .roomType{min-height:108px}.mobileBook{left:16px;right:16px;text-align:center;padding:17px 20px;font-size:11px}}
.rateStatus{grid-column:1/-1;margin:0;color:var(--muted);font-size:11px}.priceSummary small{display:block;margin-top:7px;color:var(--muted);font-size:9px}.book{background:rgba(255,255,255,.96);color:var(--ink);font-weight:600;border-color:#fff}.actions .book{padding:16px 24px;font-size:11px}.booking button{font-weight:600;font-size:12px}.booking button,.heroBook,.mobileBook{transition:transform .2s ease,opacity .2s ease}.booking button:hover,.heroBook:hover{transform:translateY(-1px)}

.roomType.unavailable{opacity:.5;background:#f3f3f1;border-color:#ddd;cursor:not-allowed}.roomType.unavailable strong,.roomType.unavailable b{color:#8d3a35}.roomType input:disabled{pointer-events:none}


/* v11 — premium finishing touches */
body{overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
header{transition:background .28s ease,box-shadow .28s ease,height .28s ease,backdrop-filter .28s ease}
header.scrolled{position:fixed;height:72px;background:rgba(13,21,17,.91);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 8px 30px rgba(0,0,0,.12)}
.brand{transition:opacity .2s ease}.brand:hover{opacity:.82}nav a{position:relative;padding:8px 0}nav a:after{content:"";position:absolute;left:0;right:100%;bottom:2px;height:1px;background:currentColor;transition:right .25s ease}nav a:hover:after{right:0}
.actions #lang{border:1px solid rgba(255,255,255,.48);border-radius:999px;padding:8px 10px;min-width:39px;transition:background .2s ease}.actions #lang:hover{background:rgba(255,255,255,.12)}
.hero>img{transform:scale(1.015);animation:heroSettle 1.8s cubic-bezier(.2,.7,.2,1) both}@keyframes heroSettle{from{transform:scale(1.055);filter:brightness(.88)}to{transform:scale(1.015);filter:brightness(1)}}
.heroText{animation:heroCopy .9s .18s ease both}@keyframes heroCopy{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.heroText .heroBook{border-radius:2px}.heroText .heroBook:hover{box-shadow:0 16px 42px rgba(0,0,0,.2)}
.intro,.roomsCopy,.experience article div,.bookingIntro{position:relative}.eyebrow{opacity:.78}
.roomsPhoto,.experience article img,.grid img{overflow:hidden}.roomsPhoto img,.experience article img,.grid img{transition:transform .65s cubic-bezier(.2,.7,.2,1),filter .4s ease}.roomsPhoto:hover img,.experience article:hover img,.grid img:hover{transform:scale(1.018)}
.roomFacts span{background:rgba(255,255,255,.28)}
.grid{gap:10px}.grid img{filter:saturate(.96) contrast(1.01)}
.booking{background:linear-gradient(180deg,#fbfaf7 0%,#f6f3ec 100%)}.booking form{background:#fff;padding:28px;box-shadow:0 18px 55px rgba(20,32,25,.07);border:1px solid rgba(20,32,25,.08)}
.booking form div{transition:border-color .2s ease,background .2s ease}.booking form div:focus-within{border-color:var(--ink);background:#fdfcf9}.booking form .roomType{transition:border-color .2s ease,background .2s ease,transform .2s ease}.booking form .roomType:not(.unavailable):hover{transform:translateY(-1px);border-color:rgba(20,32,25,.5)}
.booking button{min-height:62px;transition:transform .2s ease,box-shadow .2s ease,opacity .2s ease}.booking button:hover{box-shadow:0 12px 28px rgba(20,32,25,.18)}.booking button:disabled{opacity:.55;cursor:wait}
.rateStatus{min-height:16px}.priceSummary strong{font-size:30px}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}.reveal.in-view{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
@media(max-width:760px){header.scrolled{height:66px}.booking form{padding:14px;box-shadow:0 12px 35px rgba(20,32,25,.06)}.actions #lang{padding:7px 9px}.roomsPhoto img{height:500px}.gallery{padding-left:14px;padding-right:14px}}

/* v12 final text/header refinements */
.actions #lang{font-size:14px;font-weight:600;letter-spacing:.10em;padding:11px 15px;min-width:52px;border-width:1px}
@media(max-width:760px){.actions #lang{font-size:13px;padding:10px 14px;min-width:50px}}


/* v14 — official logo + booking phone */
.brandLogo{display:flex;align-items:center;background:rgba(255,255,255,.96);padding:8px 12px;border-radius:2px;box-shadow:0 7px 24px rgba(0,0,0,.10);transition:transform .2s ease,box-shadow .2s ease}
.brandLogo:hover{opacity:1;transform:translateY(-1px);box-shadow:0 10px 28px rgba(0,0,0,.14)}
.brandLogo img{width:128px;height:48px;object-fit:contain;display:block}
header.scrolled .brandLogo{padding:6px 10px}
header.scrolled .brandLogo img{width:112px;height:42px}
.footerLogo{display:inline-flex;background:#fff;padding:11px 14px;border-radius:2px}
.footerLogo img{width:150px;height:auto;display:block}
@media(max-width:760px){.brandLogo{padding:6px 9px}.brandLogo img{width:104px;height:39px}header.scrolled .brandLogo img{width:96px;height:36px}.footerLogo img{width:140px}}

/* v15 — centered transparent official logo + cleaner booking form */
header{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
}
header nav{justify-self:start}
header .actions{justify-self:end}
.brandLogo{
  justify-self:center;
  background:transparent !important;
  padding:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  transform:none !important;
  opacity:1;
}
.brandLogo:hover{box-shadow:none !important;transform:none !important;opacity:.92}
.brandLogo img{
  width:156px;
  height:auto;
  object-fit:contain;
  filter:drop-shadow(0 2px 8px rgba(255,255,255,.25)) drop-shadow(0 3px 10px rgba(0,0,0,.24));
}
header.scrolled .brandLogo{padding:0 !important}
header.scrolled .brandLogo img{width:136px;height:auto}
.footerWordmark{font-size:17px;letter-spacing:.22em;font-weight:500;color:#fff}
@media(max-width:760px){
  header{grid-template-columns:1fr auto 1fr;padding:0 18px}
  header nav{display:none}
  .brandLogo{grid-column:2;justify-self:center}
  .brandLogo img{width:122px;height:auto}
  header .actions{grid-column:3;justify-self:end}
  header.scrolled .brandLogo img{width:112px;height:auto}
}

/* v16 — white logo, top-left, integrated into hero */
header{
  display:flex !important;
  align-items:center;
  justify-content:space-between;
  padding:0 4vw;
}
header nav{order:2;margin-left:auto;margin-right:34px}
header .actions{order:3}
.brandLogo{
  order:1;
  position:static !important;
  transform:none !important;
  background:transparent !important;
  padding:0 !important;
  margin:0 !important;
  box-shadow:none !important;
  border-radius:0 !important;
  justify-self:auto !important;
}
.brandLogo img{
  width:150px !important;
  height:auto !important;
  object-fit:contain;
  filter:drop-shadow(0 2px 10px rgba(0,0,0,.22));
}
header.scrolled .brandLogo img{width:132px !important}
@media(max-width:760px){
  header{display:flex !important;padding:0 18px}
  header nav{display:none}
  .brandLogo{margin-right:auto !important}
  .brandLogo img{width:122px !important}
  header.scrolled .brandLogo img{width:112px !important}
  header .actions{margin-left:auto}
}

/* v17 — lower desktop logo without affecting navigation layout */
@media(min-width:761px){
  header:not(.scrolled) .brandLogo{
    transform:translateY(11px) !important;
  }
  header.scrolled .brandLogo{
    transform:none !important;
  }
}

/* v22 — compact Booking-style date-range picker */
.compactDateWrap{position:relative}
.compactDateBtn{width:100%;min-height:64px;border:1px solid #c9cbc8;background:#fff;color:var(--ink);display:flex;align-items:center;gap:14px;padding:12px 16px;text-align:left;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease}
.compactDateBtn:hover,.compactDateBtn:focus{border-color:var(--ink);box-shadow:0 0 0 1px rgba(18,32,25,.06)}
.calendarGlyph{width:32px;height:32px;border:1px solid #d5d5cf;display:grid;place-items:center;font-size:15px;line-height:1;color:var(--ink);flex:0 0 32px}
.dateRangeText{display:grid;gap:3px;min-width:0}
.dateRangeText small{font-size:9px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}
.dateRangeText strong{font:500 17px 'Playfair Display';white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.compactCalendar{position:absolute;z-index:80;top:calc(100% + 8px);left:0;width:360px;max-width:calc(100vw - 32px);background:#fff;border:1px solid #d8d6cf;box-shadow:0 20px 50px rgba(18,28,23,.18);padding:14px 14px 16px}
.compactCalendar[hidden]{display:none}
.compactCalHeader{display:grid;grid-template-columns:34px 1fr 34px;align-items:center;gap:8px;margin-bottom:6px}
.compactCalHeader strong{text-align:center;font:500 17px 'Playfair Display';text-transform:capitalize}
.compactCalNav{height:34px;border:1px solid #ddd9cf;background:#fff;color:var(--ink);font-size:22px;line-height:1;cursor:pointer}
.compactCalNav:hover{background:#f5f2eb}
.compactHint{text-align:center;min-height:18px;margin:2px 0 8px;color:var(--muted);font-size:10px;letter-spacing:.08em;text-transform:uppercase}
.compactWeekdays,.compactDays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.compactWeekdays span{font-size:9px;color:var(--muted);text-align:center;padding:5px 0}
.compactDay,.compactBlank{height:38px}
.compactDay{border:0;background:transparent;color:var(--ink);font:500 12px Manrope;cursor:pointer;position:relative;border-radius:3px}
.compactDay:hover:not(:disabled){background:#f0ede5}
.compactDay:disabled{color:#ccc;cursor:default}
.compactDay.inRange{background:#f1eee6;border-radius:0}
.compactDay.start,.compactDay.end{background:var(--ink);color:#fff}
.compactDay.start{border-radius:4px 0 0 4px}
.compactDay.end{border-radius:0 4px 4px 0}
.compactDay.start.end{border-radius:4px}
@media(max-width:760px){
  .compactCalendar{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:min(360px,calc(100vw - 24px));max-width:none}
  .compactDateBtn{min-height:60px;padding:11px 13px}
  .dateRangeText strong{font-size:16px}
}
