@font-face{font-family:"Cormorant Garamond";src:url("assets/fonts/cormorant-garamond-latin.woff2") format("woff2");font-style:normal;font-weight:300 700;font-display:swap}
@font-face{font-family:Manrope;src:url("assets/fonts/manrope-400.woff2") format("woff2");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Manrope;src:url("assets/fonts/manrope-500.woff2") format("woff2");font-style:normal;font-weight:500 700;font-display:swap}

:root{
  --ivory:#f8f0e2;
  --wine:#43212d;
  --brick:#8d3835;
  --gutter:clamp(32px,5.1vw,88px);
  --serif:"Cormorant Garamond",Georgia,serif;
  --sans:Manrope,Arial,sans-serif;
  color-scheme:dark;
  font-family:var(--sans);
  background:var(--wine);
  color:var(--ivory);
  font-synthesis:none;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;min-width:280px}
body,h1,h2,p{margin:0}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;cursor:pointer}
button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
button:focus-visible,a:focus-visible{outline:2px solid var(--ivory);outline-offset:7px}
img{display:block;max-width:100%}
::selection{color:var(--wine);background:var(--ivory)}
.skip-link{position:fixed;z-index:100;top:12px;left:12px;padding:12px 20px;background:var(--ivory);color:var(--wine);transform:translateY(-180%)}
.skip-link:focus{transform:translateY(0)}

/* The header belongs to the first scene; the passage stays free of chrome. */
.site-header{position:absolute;z-index:5;inset:0 0 auto;display:flex;justify-content:space-between;align-items:flex-start;gap:36px;padding:24px var(--gutter) 34px}
.brand{display:inline-flex;align-items:center;flex:none;gap:13px;white-space:nowrap}
.brand__emblem{height:72px;width:48px;object-fit:contain}
.brand__type{display:flex;flex-direction:column;align-items:flex-start}
.brand__name{font-family:var(--serif);font-weight:600;font-size:32px;line-height:1.04;letter-spacing:-.025em}
.brand__place{font-size:11px;line-height:1.8;letter-spacing:.18em;text-transform:uppercase}
.brand__family{font-size:10px;line-height:1.6;letter-spacing:.02em}
.desktop-nav{display:flex;align-items:center;gap:clamp(18px,2vw,34px);padding-top:14px}
.desktop-nav a{padding:10px 0;font-size:clamp(13px,.95vw,15px);white-space:nowrap;text-shadow:0 1px 14px #1b070966}
.desktop-nav a::after,.text-link::after{content:"";display:block;height:1px;background:currentColor;transform-origin:left;transition:transform .25s ease}
.desktop-nav a::after{transform:scaleX(0)}
.desktop-nav a:hover::after{transform:scaleX(1)}
.menu-toggle{display:none}

/* Each image is a clean photographic asset; all page text stays live. */
.scene{position:relative;isolation:isolate;overflow:hidden}
.scene__picture,.scene__shade{position:absolute;inset:0;z-index:-1}
.scene__picture img{width:100%;height:100%;max-width:none;object-fit:cover}
.scene__shade{pointer-events:none}
.hero{min-height:760px;height:100svh;max-height:1250px;display:flex;align-items:flex-end;padding:0 var(--gutter) 74px;background:#86402f}
.hero__picture img{object-position:50% 49%}
.hero__shade{background:linear-gradient(180deg,rgba(26,9,10,.49),transparent 24%),linear-gradient(90deg,rgba(58,11,20,.55),transparent 61%),linear-gradient(0deg,rgba(58,11,20,.56),transparent 53%)}
.hero__content{position:relative;width:min(760px,76%)}
.hero__location{font-size:clamp(11px,.95vw,14px);line-height:1.7;letter-spacing:.14em;text-transform:uppercase;margin-bottom:20px}
h1{font-family:var(--serif);font-weight:400;font-size:clamp(80px,7.8vw,128px);line-height:.98;letter-spacing:-.035em;text-wrap:balance}
h1 span,.passage__title span{display:block}
.hero__description{margin-top:22px;font-size:clamp(15px,1.15vw,18px);line-height:1.75}
.hero__actions{display:flex;align-items:center;gap:30px;margin-top:28px}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:15px 26px;border:1px solid transparent;border-radius:0;font-size:14px;font-weight:500;line-height:1.35;text-align:center;transition:background .2s ease,color .2s ease,transform .2s ease}
.button--ivory{background:var(--ivory);color:#681e25;border-color:var(--ivory)}
.button--ivory:hover{background:#fff9ef;transform:translateY(-1px)}
.booking-rating {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0 8px;
  min-height: 26px;
  padding: 3px 0;
  color: inherit;
  font: 400 11px/1.55 var(--sans);
}
a.booking-rating { width: fit-content; max-width: 100%; justify-self: center; }
a.booking-rating:hover > span:last-child { text-decoration: underline; text-underline-offset: 3px; }
a.booking-rating:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.booking-rating strong { font-weight: 600; }
.booking-rating__stars {
  background: linear-gradient(90deg, var(--booking-star, #815521) var(--booking-rating-fill, 100%), var(--booking-star-muted, #a79585) var(--booking-rating-fill, 100%));
  background-clip: text;
  color: transparent;
  font: 13px/1 Arial, sans-serif;
  letter-spacing: .045em;
  white-space: nowrap;
}
.hero__booking, .rooms-hero__booking {
  --booking-star: #f1ca8d;
  --booking-star-muted: #c0a38e;
}
@media (forced-colors: active) {
  .booking-rating__stars { background: none; color: CanvasText; }
}
.text-link{display:inline-flex;flex-direction:column;justify-content:center;align-items:flex-start;min-height:44px;font-size:14px;line-height:1.8}
.text-link::after{width:100%}
.text-link:hover::after{transform:scaleX(.7)}
.hero__family{position:absolute;right:var(--gutter);bottom:36px;font-size:11px;line-height:1.7;letter-spacing:.04em}

/* Daylight gives way directly to the night passage, without an ivory divider. */
.passage{height:100svh;min-height:760px;max-height:1250px;padding:clamp(78px,10vh,140px) var(--gutter) 64px;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;background:#25140e;scroll-margin-top:0}
.passage__picture img{object-position:50% 53%}
.passage__shade{background:linear-gradient(90deg,rgba(26,12,12,.46),transparent 60%),linear-gradient(180deg,rgba(18,8,7,.17),transparent 40%),linear-gradient(0deg,rgba(46,12,21,.35),transparent 40%)}
.passage__title{font-family:var(--serif);font-size:clamp(72px,6.7vw,116px);font-weight:400;line-height:.94;letter-spacing:-.035em}
.passage__content{max-width:340px}
.passage__content p{font-size:18px;line-height:1.55;text-wrap:pretty}
.passage__action{margin-top:21px}

/* Native dialog: same identity, touch and keyboard navigation. */
.mobile-menu{position:fixed;inset:0 0 0 auto;width:min(540px,100%);height:100%;height:100dvh;max-width:none;max-height:none;margin:0;padding:28px 28px 40px;border:0;color:var(--ivory);background:var(--wine);overflow-y:auto}
.mobile-menu::backdrop{background:#180c0ba6;backdrop-filter:blur(3px)}
.mobile-menu__top{display:flex;align-items:center;justify-content:space-between;gap:16px}
.mobile-menu__top p{font-family:var(--serif);font-size:26px;font-weight:400}
.menu-close{display:flex;align-items:center;gap:12px;min-height:44px;background:none;border:0;font-size:12px}
.menu-close span{font-size:26px;font-weight:400}
.mobile-menu__nav{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin:44px 0 32px}
.mobile-menu__nav a{font-family:var(--serif);font-size:clamp(30px,8.4vw,40px);font-weight:400;line-height:1.2;min-height:48px;padding:6px 0}
.mobile-menu__nav a:hover{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}
.mobile-menu__stay{width:100%}
.mobile-menu__signature{margin-top:32px;font-size:12px;line-height:1.8}
.mobile-menu__signature span{font-size:10px;opacity:.8}
html[data-menu-open]{overflow:hidden}

@media(min-width:700px) and (max-width:1050px){
  .site-header{align-items:center;gap:22px}
  .brand__emblem{width:42px;height:65px}
  .brand__name{font-size:29px}
  .brand__place{font-size:11px}
  .brand__family{font-size:10px}
  .desktop-nav{gap:20px;padding-top:0}
  .desktop-nav a{font-size:14px}
  .hero{min-height:760px}
  .hero__content{width:85%}
}
@media(max-width:699.98px){
  :root{--gutter:28px}
  .site-header{padding:calc(22px + env(safe-area-inset-top)) var(--gutter) 22px;align-items:flex-start;gap:16px}
  .brand{gap:10px}
  .brand__emblem{width:30px;height:45px}
  .brand__name{font-size:25px;line-height:1.04}
  .brand__place{font-size:10px;line-height:1.7;letter-spacing:.14em;text-transform:none}
  .brand__family,.desktop-nav{display:none}
  .menu-toggle{display:flex;align-items:center;justify-content:flex-end;gap:12px;min-height:44px;min-width:80px;margin-top:-2px;padding:2px 0 2px 6px;border:0;background:none;font-size:15px;line-height:1.3}
  .menu-toggle__lines{display:block;position:relative;width:23px;height:11px;border-top:1px solid currentColor;border-bottom:1px solid currentColor}
  .hero{height:100svh;min-height:720px;max-height:1100px;padding:0 var(--gutter) max(28px,env(safe-area-inset-bottom))}
  .hero__picture img{object-position:50% 43%}
  .hero__shade{background:linear-gradient(180deg,rgba(26,15,24,.5),transparent 20%),linear-gradient(0deg,rgba(64,5,23,.98),rgba(64,5,23,.68) 23%,transparent 61%)}
  .hero__content{width:100%}
  .hero__location{font-size:10px;line-height:1.6;letter-spacing:.11em;margin-bottom:16px}
  h1{font-size:clamp(48px,12.6vw,76px);line-height:1;letter-spacing:-.035em}
  .hero__description{font-size:14px;line-height:1.75;max-width:310px;margin-top:18px}
  .hero__actions{flex-direction:column;align-items:stretch;gap:14px;margin-top:24px}
  .button{min-height:54px;padding:15px 18px;font-size:14px}
  .hero__discover{align-self:center;align-items:center;min-height:44px;font-size:13px}
  .hero__family{display:none}
  .passage{height:auto;min-height:max(900px,108svh);max-height:none;padding:44px var(--gutter) max(36px,env(safe-area-inset-bottom))}
  .passage__picture img{object-position:50% 50%}
  .passage__shade{background:linear-gradient(180deg,rgba(23,12,11,.33),transparent 28%),linear-gradient(0deg,rgba(63,8,25,.98),rgba(63,8,25,.70) 16%,transparent 42%)}
  .passage__title{font-size:clamp(43px,11.5vw,68px);line-height:.98;letter-spacing:-.035em}
  .passage__content{max-width:100%;width:100%;margin-top:480px}
  .passage__content p{max-width:340px;font-size:17px;line-height:1.55}
  .passage__action{margin-top:28px;width:100%;min-height:56px;align-items:center;border:1px solid currentColor;border-radius:12px;font-size:16px;padding:12px 10px;text-align:center}
  .passage__action::after{display:none}
  .passage__action:hover{color:var(--wine);background:var(--ivory)}
}
@media(min-width:700px) and (max-width:1099.98px){
  .desktop-nav{display:none}
  .menu-toggle{display:flex;align-items:center;justify-content:flex-end;gap:12px;min-height:44px;min-width:80px;padding:2px 0 2px 6px;border:0;background:none;font-size:15px;line-height:1.3}
  .menu-toggle__lines{display:block;position:relative;width:23px;height:11px;border-top:1px solid currentColor;border-bottom:1px solid currentColor}
}
@media(max-width:359px){
  :root{--gutter:24px}
  .site-header{gap:10px}
  .brand{gap:7px}
  .brand__name{font-size:23px}
  .brand__emblem{width:26px;height:42px}
  .menu-toggle{gap:8px;min-width:72px;font-size:14px}
  h1{font-size:46px}
  .hero__description{max-width:270px}
  .passage__content p{font-size:16px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}

/* Shared by room details and the reservation flow. Native horizontal scrolling. */
.room-gallery{min-width:0;margin:0 0 30px;color:var(--brick,#8d3835)}
.room-gallery__track{display:flex;width:100%;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;background:#c09b7b}
.room-gallery__track::-webkit-scrollbar{display:none}
.room-gallery__track:focus-visible{outline:2px solid currentColor;outline-offset:4px}
.room-gallery__slide{flex:0 0 100%;min-width:0;aspect-ratio:1.5;margin:0;scroll-snap-align:start;scroll-snap-stop:always;overflow:hidden}
.room-gallery__slide img{display:block;width:100%;height:100%;object-fit:cover;margin:0}
.room-gallery__controls{display:flex;align-items:center;gap:16px;margin-top:12px}
.room-gallery__controls[hidden]{display:none}
.room-gallery__thumbnails{display:flex;gap:8px;margin-right:auto}
.room-gallery__thumbnail{display:block;width:52px;height:44px;padding:3px;border:1px solid transparent;border-radius:0;background:transparent;cursor:pointer;opacity:.55;transition:opacity 180ms ease,border-color 180ms ease}
.room-gallery__thumbnail[aria-pressed="true"]{opacity:1;border-color:currentColor}
.room-gallery__thumbnail:hover{opacity:1}
.room-gallery__thumbnail img{display:block;width:100%;height:100%;object-fit:cover;margin:0}
.room-gallery__position{font:400 10px/1.6 var(--sans, sans-serif);font-variant-numeric:tabular-nums;letter-spacing:.08em;white-space:nowrap}
.room-gallery__arrows{display:flex;gap:4px}
.room-gallery__arrow{display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-bottom:1px solid #8d38354d;border-radius:0;background:transparent;color:inherit;font:400 23px/1 var(--sans,sans-serif);cursor:pointer}
.room-gallery__arrow:disabled{opacity:.3;cursor:default}
.room-gallery button:focus-visible{outline:2px solid currentColor;outline-offset:3px}
@media(max-width:359.98px){.room-gallery__controls{gap:8px}.room-gallery__thumbnail{width:44px}.room-gallery__thumbnails{gap:4px}.room-gallery__arrows{gap:0}}
@media(prefers-reduced-motion:reduce){.room-gallery__thumbnail{transition:none}}

/* Dar El Hakim — v4 reservation: ivory, brick and considered space. */
.booking-page{--booking-gutter:clamp(28px,4.6vw,72px);--booking-line:#8d38352e;--booking-muted:#75615a;--booking-sand:#f0e5d3;--booking-red:#8b3532;color-scheme:light;background:var(--ivory,#f8f0e2);color:var(--wine,#43212d);font-family:var(--sans);overflow-x:clip}
html.booking-dialog-open{overflow:hidden;scrollbar-gutter:stable}
.booking-page [hidden]{display:none!important}
.booking-page :is(button,a,input,textarea,summary):focus-visible{outline:2px solid var(--brick);outline-offset:4px}
.booking-page :is(button,a,summary){touch-action:manipulation}
.booking-page button{border-radius:0;cursor:pointer}
.booking-page button:disabled{cursor:default}
.booking-page ::selection{color:var(--ivory);background:var(--brick)}
.booking-header{display:flex;align-items:center;justify-content:space-between;gap:32px;max-width:1600px;min-height:82px;margin-inline:auto;padding:17px var(--booking-gutter);border-bottom:1px solid var(--booking-line)}
.booking-brand{display:flex;align-items:baseline;gap:20px;min-height:44px;color:var(--brick)}
.booking-brand>span{font:400 31px/1.35 var(--serif);letter-spacing:-.035em}
.booking-brand>small{font:400 8px/1.6 var(--sans);letter-spacing:.15em;text-transform:uppercase}
.booking-exit{display:inline-flex;align-items:center;gap:20px;min-height:44px;font:400 11px/1.5 var(--sans);color:var(--brick)}
.booking-exit>span{font-size:20px;line-height:1}
.booking-exit:hover{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
.booking{max-width:1600px;margin-inline:auto;padding-inline:var(--booking-gutter);min-width:0}
.booking-progress{display:flex;justify-content:center;align-items:center;padding-block:16px 24px;min-height:84px}
.booking-progress ol{display:flex;align-items:center;justify-content:center;list-style:none;margin:0;padding:0;gap:30px;min-width:0}
.booking-progress li{display:flex;align-items:center;gap:30px;min-width:0}
.booking-progress li+li::before{content:"";display:block;width:32px;height:1px;background:var(--booking-line);flex:none}
.booking-progress button{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:8px 0;background:none;border:0;font:400 11px/1.5 var(--sans);white-space:nowrap;color:var(--booking-muted)}
.booking-progress button>span{font-size:9px;font-variant-numeric:tabular-nums}
.booking-progress button::after{content:"";position:absolute;inset:auto 0 0;height:1px;background:currentColor;transform:scaleX(0);transition:transform 180ms}
.booking-progress button[aria-current="step"]{color:var(--brick)}
.booking-progress button[aria-current="step"]::after{transform:scaleX(1)}
.booking-progress button:disabled{color:#8c7a6f}
.booking-progress__signature{display:none}
.booking-step{min-width:0;padding-bottom:30px}
.booking-eyebrow{font:400 10px/1.7 var(--sans);letter-spacing:.17em;text-transform:uppercase;color:var(--brick)}
.booking-heading{margin-bottom:32px}
.booking-page .booking-heading h1{font:400 clamp(44px,4.1vw,60px)/1.06 var(--serif);letter-spacing:-.035em;color:var(--brick);text-wrap:initial;margin:13px 0 0}
.booking-heading>p:last-child:not(.booking-eyebrow){margin-top:13px;font:400 12px/1.8 var(--sans);color:var(--booking-muted)}

/* Dates: heading spans the composition; the photograph stays contemplative. */
.booking-dates{display:grid;grid-template-columns:minmax(688px,1.35fr) minmax(0,1fr);gap:0 26px;align-items:stretch}
.booking-dates>.booking-heading{grid-column:1/-1}
.booking-dates__body{grid-column:1;min-width:0}
.booking-scene{position:relative;grid-column:2;grid-row:2;isolation:isolate;min-width:0;min-height:100%;overflow:hidden;background:#9d553e;color:var(--ivory)}
.booking-scene img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 54%;z-index:-2}
.booking-scene::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,#43212d70);z-index:-1;pointer-events:none}
.booking-scene>div{position:absolute;inset:auto 0 0;padding:34px 30px}
.booking-scene .booking-eyebrow,.booking-scene>div>p:last-child:not(.booking-scene__title){display:none}
.booking-scene__title{font:400 34px/1.12 var(--serif);letter-spacing:-.025em}
.booking-calendar-panel{padding:28px 24px 14px;background:var(--booking-red);color:var(--ivory)}
.booking-calendar-panel :is(button,a,input,summary):focus-visible{outline-color:var(--ivory)}
.booking-date-selection{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;min-width:0}
.booking-date-field{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:7px;min-width:0;min-height:82px;padding:15px 20px;background:var(--ivory);border:1px solid transparent;color:var(--brick);text-align:left;transition:background 180ms}
.booking-date-field>span{font:400 9px/1.5 var(--sans);letter-spacing:.13em;text-transform:uppercase;color:var(--booking-muted)}
.booking-date-field>strong{font:400 clamp(22px,1.8vw,28px)/1.15 var(--serif);letter-spacing:-.02em}
.booking-date-field.is-active{background:#fffaf0;border-color:#fffaf0}
.booking-date-field.is-active::after{content:"";position:absolute;inset:auto 20px 8px;height:1px;background:#8d383577}
.booking-date-selection__arrow{display:none}
.booking-calendar{min-width:0;margin-top:12px}
.booking-calendar__toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;margin-bottom:8px}
.booking-calendar__toolbar>p{font:400 11px/1.6 var(--sans);color:#f8f0e2d9}
.booking-calendar__toolbar>div{display:flex;gap:3px;flex:none}
.booking-icon{display:grid;place-items:center;flex:none;width:44px;height:44px;padding:0;border:0;background:transparent;color:var(--ivory);font:400 22px/1 var(--sans)}
.booking-icon:disabled{opacity:.3}
.booking-icon:not(:disabled):hover{background:#f8f0e214}
.booking-months{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;min-width:0;touch-action:pan-y;user-select:none}
.booking-month{min-width:0}
.booking-month h2{font:400 24px/1.3 var(--serif);letter-spacing:-.015em;text-transform:capitalize;text-align:center;color:var(--ivory);margin:0 0 13px}
.booking-weekdays,.booking-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));min-width:0}
.booking-weekdays{margin-bottom:4px}
.booking-weekdays>span{display:grid;place-items:center;min-width:0;height:25px;font:400 10px/1 var(--sans);color:#f8f0e2b8}
.booking-days{grid-auto-rows:44px;min-height:264px;align-content:start}
.booking-days>span{min-width:0}
.booking-day{position:relative;isolation:isolate;display:grid;place-items:center;min-width:0;min-height:44px;padding:0;border:0;background:transparent;color:var(--ivory);font:400 14px/1 var(--sans);font-variant-numeric:tabular-nums;transition:color 150ms}
.booking-day::before{content:"";position:absolute;inset:4px 0;background:transparent;z-index:-2}
.booking-day::after{content:"";position:absolute;width:36px;height:36px;border-radius:50%;background:transparent;z-index:-1;transition:background 150ms}
.booking-day.is-range::before,.booking-day.is-preview::before{background:#f8f0e21c}
.booking-day.is-start,.booking-day.is-end{color:var(--booking-red)}
.booking-day.is-start::after,.booking-day.is-end::after{background:var(--ivory)}
.booking-day.is-start::before{left:50%;background:#f8f0e21c}
.booking-day.is-end::before{right:50%;background:#f8f0e21c}
.booking-day.is-start.is-end::before{background:none}
.booking-day.is-today:not(.is-start):not(.is-end)::after{border:1px solid #f8f0e27a}
.booking-day:not(:disabled):not(.is-start):not(.is-end):hover::after{background:#f8f0e226}
.booking-day:disabled{color:#f8f0e24d}
.booking-day:disabled::before,.booking-day:disabled::after{background:none;border:0}
.booking-page .booking-day:focus-visible{outline-offset:-3px}
.booking-calendar__tools{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-top:7px;padding-top:4px}
.booking-calendar__tools>details{flex:1;min-width:0}
.booking-calendar__tools summary{display:flex;align-items:center;min-height:44px;width:fit-content;list-style:none;cursor:pointer;font:400 10px/1.6 var(--sans);color:var(--booking-muted);text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
.booking-calendar__tools summary::-webkit-details-marker{display:none}
.booking-native-dates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:8px 0 14px}
.booking-native-dates label{display:flex;flex-direction:column;gap:8px;font-size:11px;color:var(--brick);min-width:0}
.booking-native-dates input{width:100%;min-width:0;min-height:44px;padding:10px 8px;border:1px solid #8d383560;border-radius:0;background:var(--ivory);color:var(--wine);font:400 13px/1.5 var(--sans);color-scheme:light}
.booking-calendar__hint{display:flex;align-items:center;justify-content:center;gap:16px;min-height:35px;font:400 19px/1.3 var(--serif);margin:12px 0 2px;color:var(--ivory);text-align:center}
.booking-calendar__hint::before,.booking-calendar__hint::after{content:"";height:1px;max-width:90px;flex:1;background:#f8f0e24d}
.booking-link{display:inline-flex;align-items:center;justify-content:flex-start;gap:14px;min-height:44px;padding:8px 0;border:0;background:none;color:var(--brick);font:400 13px/1.6 var(--sans);text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px;text-align:left}
.booking-link>span{font-size:19px;line-height:1}
.booking-link:hover{color:#64292b}
.booking-calendar__tools>.booking-link{font-size:10px;color:var(--booking-muted);white-space:nowrap}
.booking-error{font-size:12px;line-height:1.7;color:#922b29;margin-top:12px}
.booking-error:empty{display:none}
.booking-preselection{margin-top:16px;padding-top:12px;border-top:1px solid var(--booking-line);font-size:11px;line-height:1.7;color:var(--brick)}

/* The action bar stays in the natural page flow and only sticks at the edge. */
.booking-actionbar{position:sticky;bottom:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:26px;padding:18px 0 max(18px,env(safe-area-inset-bottom));margin-top:12px;border-top:1px solid var(--booking-line);background:var(--ivory)}
.booking-actionbar__summary{display:flex;flex-direction:column;gap:5px;min-width:0;flex:1}
.booking-actionbar__summary strong{font:400 25px/1.2 var(--serif);letter-spacing:-.02em;color:var(--brick)}
.booking-actionbar__summary>span{font:400 12px/1.6 var(--sans);color:var(--booking-muted)}
.booking-actionbar__note{max-width:210px;font:400 12px/1.7 var(--sans);color:var(--booking-muted)}
.booking-primary{display:inline-flex;align-items:center;justify-content:center;gap:24px;min-height:54px;padding:15px 24px;border:1px solid var(--brick);border-radius:0;background:var(--brick);color:var(--ivory);font:400 14px/1.5 var(--sans);text-align:center;transition:background 180ms,border-color 180ms}
.booking-primary>span{font:400 21px/1 var(--sans)}
.booking-primary:hover:not(:disabled){background:#732d2e;border-color:#732d2e}
.booking-primary:disabled{color:#806b61;background:var(--booking-sand);border-color:#8d383533}
.booking-actionbar>.booking-primary{flex:none;min-width:250px}
.booking-travelers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;min-width:0;margin:0;padding:0;border:0}
.booking-actionbar>.booking-travelers{flex:0 1 450px}
.booking-travelers legend,.booking-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.booking-counter{display:flex;align-items:center;justify-content:space-between;gap:6px;min-width:0;font:400 13px/1.5 var(--sans)}
.booking-counter+.booking-counter{border-left:1px solid var(--booking-line);padding-left:20px}
.booking-counter>div{display:flex;align-items:center;gap:0;flex:none}
.booking-counter button{display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;background:transparent;color:var(--brick);font:400 22px/1 var(--sans)}
.booking-counter button:disabled{opacity:.3}
.booking-counter button:not(:disabled):hover{background:#8d38350b}
.booking-counter output{min-width:16px;text-align:center;font:400 14px/1 var(--sans);font-variant-numeric:tabular-nums}
.booking[data-step="dates"] .booking-actionbar__summary strong{font-size:22px}

/* One room per line: image, considered details, one clear choice. */
.booking-rooms>.booking-heading{position:relative;padding-right:140px}
.booking-rooms .booking-room-total{position:absolute;right:0;bottom:7px;font:400 10px/1.6 var(--sans);color:var(--booking-muted)}
.booking-stay-strip{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:26px 0 34px;padding:9px 22px;background:var(--booking-sand);border-block:1px solid #8d383512}
.booking-stay-strip>p{font:400 14px/1.7 var(--sans);color:var(--wine)}
.booking-stay-strip .booking-link{flex:none;font-size:10px}
.booking-room-layout{display:block;min-width:0}
.booking-room-list{display:grid;grid-template-columns:minmax(0,1fr);gap:22px;min-width:0}
.booking-room{display:grid;grid-template-columns:minmax(220px,27%) minmax(0,1fr) 205px;align-items:center;gap:clamp(26px,3vw,46px);position:relative;min-width:0;padding:14px;border:1px solid transparent;border-bottom-color:var(--booking-line);background:transparent;transition:border-color 180ms,background 180ms}
.booking-room.is-selected{border-color:#8d3835b3;background:#f0e5d352}
.booking-room__photo{position:relative;display:block;width:100%;min-width:0;padding:0;aspect-ratio:2;border:0;overflow:hidden;background:#b88965;color:var(--ivory)}
.booking-room__photo>img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 600ms cubic-bezier(.22,1,.36,1)}
.booking-room__count{position:absolute;right:12px;bottom:12px;display:block;padding:6px 9px;background:#43212d9c;color:var(--ivory);font:400 9px/1.4 var(--sans);letter-spacing:.06em;font-variant-numeric:tabular-nums}
.booking-room__body{min-width:0;padding-block:8px}
.booking-room__number{display:block;font:400 9px/1.5 var(--sans);letter-spacing:.1em;color:var(--booking-muted);margin-bottom:8px}
.booking-room__body h2{font:400 clamp(31px,2.7vw,41px)/1.08 var(--serif);letter-spacing:-.025em;color:var(--brick);margin:0 0 11px}
.booking-room__body h2>span{display:block}
.booking-room__teaser{font:400 14px/1.7 var(--sans);color:var(--booking-muted);margin-bottom:9px;max-width:44ch}
.booking-room__facts{font:400 13px/1.7 var(--sans);color:var(--booking-muted)}
.booking-room__body>.booking-link{font-size:13px;margin-top:1px}
.booking-room__actions{display:flex;flex-direction:column;align-items:stretch;gap:8px;min-width:0;padding-inline:5px}
.booking-room__choice-label{font:400 9px/1.6 var(--sans);text-transform:uppercase;letter-spacing:.14em;text-align:center;color:var(--brick)}
.booking-room__choose{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;min-height:48px;padding:12px 16px;border:1px solid #8d383580;background:transparent;color:var(--brick);font:400 13px/1.5 var(--sans);text-align:left;transition:background 180ms,color 180ms}
.booking-room__choose>span{font-size:20px;line-height:1}
.booking-room__choose:hover,.booking-room.is-selected .booking-room__choose{background:var(--brick);color:var(--ivory);border-color:var(--brick)}
.booking-selection{display:none}

/* Recap and a short conversation, with no invented tariff. */
.booking-review__layout{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);gap:clamp(42px,5.4vw,80px);align-items:start;margin-top:38px;padding-bottom:54px}
.booking-review__stay{min-width:0}
.booking-review__room-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:28px;margin-bottom:30px}
.booking-review__photo{position:relative;display:block;width:100%;min-width:0;padding:0;border:0;aspect-ratio:1.22;overflow:hidden;background:#b88965}
.booking-review__photo>img{display:block;width:100%;height:100%;object-fit:cover}
.booking-photo-link{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:flex-end;padding:13px;border:0;background:linear-gradient(180deg,transparent 65%,#43212d80);color:var(--ivory);font:400 10px/1.6 var(--sans);gap:10px;text-align:right}
.booking-page .booking-photo-link:focus-visible{outline-color:var(--ivory);outline-offset:-5px}
.booking-review__content{min-width:0}
.booking-review__content>h2{font:400 clamp(31px,3vw,42px)/1.08 var(--serif);letter-spacing:-.025em;color:var(--brick);margin:12px 0}
.booking-review__content>p:not(.booking-eyebrow){font:400 13px/1.7 var(--sans);color:var(--booking-muted)}
.booking-review__content>.booking-link{font-size:13px;margin-top:4px}
.booking-review__stay dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;border-top:1px solid var(--booking-line)}
.booking-review__stay dl>div{min-width:0;padding:22px 14px 22px 0;border-bottom:1px solid var(--booking-line)}
.booking-review__stay dl>div:nth-child(even){padding-left:25px;border-left:1px solid var(--booking-line)}
.booking-review__stay dt{font:400 9px/1.7 var(--sans);letter-spacing:.09em;text-transform:uppercase;color:var(--booking-muted)}
.booking-review__stay dd{font:400 25px/1.3 var(--serif);letter-spacing:-.015em;color:var(--brick);margin:7px 0 0;overflow-wrap:anywhere}
.booking-review__edits{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:15px}
.booking-review__edits .booking-link{font-size:13px}
.booking-request-form{min-width:0;padding-left:clamp(30px,3vw,46px);border-left:1px solid var(--booking-line)}
.booking-request-form h2{font:400 37px/1.1 var(--serif);letter-spacing:-.025em;color:var(--brick);margin:0 0 12px}
.booking-request-form>p:not(.booking-error):not(.booking-form-note){font:400 12px/1.75 var(--sans);color:var(--booking-muted);margin-bottom:25px}
.booking-form-field{display:flex;flex-direction:column;gap:8px;min-width:0;margin-bottom:18px}
.booking-form-field>label,.booking-form-field>span{font:400 13px/1.6 var(--sans);color:var(--wine)}
.booking-form-field label>span,.booking-form-field small{font:400 10px/1.6 var(--sans);color:var(--booking-muted)}
.booking-form-field :is(input,textarea){display:block;width:100%;min-width:0;min-height:46px;padding:12px 13px;border:0;border-bottom:1px solid #8d38356b;border-radius:0;background:#f0e5d366;color:var(--wine);font:400 14px/1.6 var(--sans);box-shadow:none;appearance:none}
.booking-form-field textarea{min-height:90px;resize:vertical}
.booking-form-field :is(input,textarea)::placeholder{color:#8d7667;opacity:1}
.booking-form-field :is(input,textarea)[aria-invalid="true"]{border-color:#a32b27;background:#a32b2708}
.booking-form-field .booking-field-error{font-size:10px;color:#922b29}
.booking-form-field .booking-field-error:empty{display:none}
.booking-request-form .booking-form-notice{padding:10px 12px;border-left:1px solid #8d383580;background:#f0e5d373;font:400 11px/1.7 var(--sans);color:var(--booking-muted);margin-bottom:22px}
.booking-request-form>details{margin:4px 0 20px}
.booking-request-form>details>summary{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:44px;list-style:none;cursor:pointer;border-bottom:1px solid var(--booking-line);color:var(--brick);font:400 13px/1.6 var(--sans)}
.booking-request-form>details>summary::-webkit-details-marker{display:none}
.booking-request-form>details>summary>span{font-size:20px;transition:transform 180ms}
.booking-request-form>details[open]>summary>span{transform:rotate(45deg)}
.booking-request-form>details .booking-form-field{margin-top:12px}
.booking-request-form__footer{margin-top:22px}
.booking-request-form__footer>.booking-primary{width:100%}
.booking-request-form__footer>p{font:400 10px/1.75 var(--sans);color:var(--booking-muted);margin-top:13px;text-align:center}
.booking-form-note,.booking-request-form>small{display:block;font:400 10px/1.75 var(--sans);color:var(--booking-muted);margin-top:14px}
.booking-review__message{margin-top:26px;padding-top:20px;border-top:1px solid var(--booking-line)}
.booking-review__message h3{font:400 28px/1.1 var(--serif);letter-spacing:-.02em;color:var(--brick);margin:0 0 12px}
.booking-review__message p{font:400 12px/1.8 var(--sans);color:var(--booking-muted);max-width:48ch}

/* A request sent is distinct from a confirmed reservation. */
.booking-success{max-width:940px;margin:20px auto 0;padding-bottom:60px}
.booking-success>.booking-heading{text-align:center;max-width:650px;margin:0 auto 38px}
.booking-success__mark{display:grid;place-items:center;width:44px;height:44px;margin:0 auto 20px;color:var(--brick);font:400 27px/1 var(--serif)}
.booking-success .booking-heading>p:last-child{max-width:52ch;margin-inline:auto}
.booking-success__stay{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center;gap:40px;padding-block:30px;border-block:1px solid var(--booking-line)}
.booking-success__stay>img{display:block;width:100%;min-width:0;height:auto;aspect-ratio:1.6;object-fit:cover;background:var(--booking-sand)}
.booking-success h2{font:400 40px/1.1 var(--serif);letter-spacing:-.025em;color:var(--brick);margin:12px 0 18px}
.booking-success__stay p{font:400 12px/1.8 var(--sans);color:var(--booking-muted)}
.booking-success__stay p.booking-eyebrow{font-size:9px;line-height:1.7;color:var(--brick)}
.booking-success__stay #success-dates{font:400 24px/1.4 var(--serif);color:var(--brick);margin-bottom:5px}
.booking-success__stay p.booking-success__reference{font-size:9px;margin-top:18px;overflow-wrap:anywhere}
.booking-success>.booking-link{display:flex;width:fit-content;margin:22px auto 0}

/* Lateral room drawer; gallery behavior remains shared and native. */
.booking-dialog{position:fixed;inset:0 0 0 auto;width:clamp(620px,46vw,880px);height:100vh;height:100dvh;max-width:100%;max-height:100vh;max-height:100dvh;margin:0;padding:0;border:0;background:var(--ivory);color:var(--wine);color-scheme:light;overflow:hidden}
.booking-dialog[open]{display:flex;flex-direction:column}
.booking-dialog::backdrop{background:#2c16166b;backdrop-filter:blur(2px)}
.booking-dialog__top{position:relative;display:block;flex:none;min-width:0;padding:25px 36px 22px}
.booking-dialog__top .booking-eyebrow{font-size:9px;padding-right:75px}
.booking-dialog__top h2{font:400 clamp(38px,3.3vw,49px)/1.06 var(--serif);letter-spacing:-.035em;color:var(--brick);margin:12px 58px 0 0}
.booking-dialog__top>.booking-link{position:absolute;top:19px;right:30px;justify-content:center;min-width:44px;font-size:10px;text-decoration:none}
.booking-dialog__top>.booking-link>span{font-size:27px}
.booking-dialog__body{display:block;min-height:0;padding:0 36px 30px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#ac7869 transparent}
.booking-dialog__body>[data-room-gallery]{min-width:0}
.booking-dialog .room-gallery__slide{aspect-ratio:1.5}
.booking-dialog .room-gallery__controls{gap:12px;margin-top:12px}
.booking-dialog .room-gallery__thumbnails{gap:9px;min-width:0;overflow-x:auto;scrollbar-width:none}
.booking-dialog .room-gallery__thumbnails::-webkit-scrollbar{display:none}
.booking-dialog .room-gallery__thumbnail{width:76px;height:55px;flex:none;padding:3px;opacity:.6}
.booking-dialog .room-gallery__thumbnail[aria-pressed="true"]{opacity:1;border-color:var(--brick)}
.booking-dialog .room-gallery__position{font-size:9px;white-space:nowrap}
.booking-dialog .room-gallery__arrows{gap:4px}
.booking-dialog .room-gallery__arrow{min-width:44px;width:44px;min-height:44px}
.booking-dialog__copy{min-width:0;padding-top:30px}
.booking-dialog__copy>.booking-eyebrow{display:none}
.booking-dialog__copy h2{font:400 42px/1.05 var(--serif);letter-spacing:-.025em;color:var(--brick);margin:0 0 18px}
.booking-dialog__copy>p:not(.booking-eyebrow){font:400 14px/1.85 var(--sans);color:var(--booking-muted)}
.booking-dialog__copy #booking-dialog-facts{margin-top:23px;padding-top:16px;border-top:1px solid var(--booking-line);font-size:13px;color:var(--brick)}
.booking-dialog__copy h3{font:400 31px/1.1 var(--serif);letter-spacing:-.025em;color:var(--brick);margin:0 0 14px}
.booking-dialog__copy dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;margin:26px 0 0}
.booking-dialog__copy dl>div{padding:16px 0;border-top:1px solid var(--booking-line)}
.booking-dialog__copy dt{font:400 11px/1.6 var(--sans);color:var(--brick)}
.booking-dialog__copy dd{font:400 11px/1.8 var(--sans);color:var(--booking-muted);margin:6px 0 0}
.booking-dialog__footer{display:flex;flex-direction:column;align-items:stretch;gap:12px;flex:none;padding:18px 36px max(22px,env(safe-area-inset-bottom));border-top:1px solid var(--booking-line);background:var(--ivory)}
.booking-dialog__footer>p{font:400 11px/1.7 var(--sans);text-align:center;color:var(--booking-muted)}
.booking-dialog__footer>.booking-primary{width:100%}
.booking-noscript{padding:40px var(--booking-gutter);font-size:14px;line-height:1.8}
.booking-noscript a{text-decoration:underline}

@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.booking-room__photo:hover>img{transform:scale(1.025)}}
@media(min-width:1200px) and (max-height:850px){
 .booking-header{min-height:74px;padding-block:12px}
 .booking-progress{min-height:66px;padding-block:6px 16px}
 .booking-heading{margin-bottom:25px}
 .booking-page .booking-heading h1{font-size:50px;margin-top:10px}
 .booking-heading>p:last-child:not(.booking-eyebrow){margin-top:10px}
 .booking-calendar-panel{padding-top:22px}
 .booking-date-field{min-height:75px;padding-block:12px}
 .booking-calendar__toolbar{margin-bottom:4px}
 .booking-month h2{margin-bottom:9px}
 .booking-actionbar{margin-top:0;padding-top:14px;padding-bottom:max(14px,env(safe-area-inset-bottom))}
}
@media(max-width:1199.98px){
 .booking-dates{display:block;max-width:840px;margin-inline:auto}
 .booking-scene{display:none}
 .booking[data-step="dates"] .booking-actionbar__summary{display:none}
 .booking-actionbar>.booking-travelers{flex:1;max-width:480px}
 .booking-room{grid-template-columns:minmax(200px,29%) minmax(0,1fr) 180px;gap:24px}
 .booking-room__body h2{font-size:34px}
 .booking-room__teaser{font-size:11px}
 .booking-room__choose{font-size:10px;padding-inline:12px}
 .booking-review__layout{gap:36px}
 .booking-review__room-row{gap:20px}
 .booking-request-form{padding-left:30px}
 .booking-dialog{width:58vw;min-width:600px}
}
@media(max-width:899.98px){
 .booking-brand{gap:12px}
 .booking-brand>small{font-size:7px}
 .booking-room{grid-template-columns:200px minmax(0,1fr);gap:12px 24px;align-items:start}
 .booking-room__photo{grid-row:1/3;aspect-ratio:1.08}
 .booking-room__body{padding-top:5px;padding-bottom:0}
 .booking-room__actions{grid-column:2;padding:0;max-width:280px}
 .booking-room__choice-label{display:none}
 .booking-review__layout{grid-template-columns:1fr;gap:40px;max-width:700px;margin-inline:auto}
 .booking-review__room-row{grid-template-columns:240px minmax(0,1fr)}
 .booking-request-form{padding-left:0;padding-top:30px;border-left:0;border-top:1px solid var(--booking-line)}
 .booking-dialog{width:min(680px,100%);min-width:0}
}
@media(max-width:699.98px){
 .booking-page{--booking-gutter:24px}
 .booking-header{min-height:76px;padding-block:12px;gap:14px}
 .booking-brand{display:flex;flex-direction:column;align-items:flex-start;gap:1px;justify-content:center}
 .booking-brand>span{font-size:27px;line-height:1.1}
 .booking-brand>small{font-size:7px;letter-spacing:.1em}
 .booking-exit{max-width:100px;gap:8px;font-size:9px;line-height:1.6;text-align:right}
 .booking-exit>span{font-size:18px}
 .booking-progress{padding-block:8px 17px;min-height:69px}
 .booking-progress ol{width:100%;justify-content:space-between;gap:8px}
 .booking-progress li{gap:8px;justify-content:center}
 .booking-progress li+li::before{width:14px}
 .booking-progress button{gap:5px;font-size:9px;white-space:normal;text-align:center}
 .booking-progress button>span{font-size:8px;flex:none}
 .booking-step{padding-bottom:20px}
 .booking-heading{margin-bottom:24px}
 .booking-eyebrow{font-size:9px;letter-spacing:.13em}
 .booking-page .booking-heading h1{font-size:38px;line-height:1.05;margin-top:12px;letter-spacing:-.03em}
 .booking-heading>p:last-child:not(.booking-eyebrow){font-size:11px;line-height:1.8;margin-top:12px;max-width:40ch}
 .booking-dates .booking-heading>p:last-child:not(.booking-eyebrow){display:none}
 .booking-calendar-panel{padding:20px 15px 8px}
 .booking-date-selection{gap:10px}
 .booking-date-field{min-height:73px;padding:12px 13px;gap:7px}
 .booking-date-field>span{font-size:8px;letter-spacing:.11em}
 .booking-date-field>strong{font-size:21px;line-height:1.15}
 .booking-date-field.is-active::after{inset:auto 13px 7px}
 .booking-calendar{margin-top:9px}
 .booking-calendar__toolbar{gap:6px;margin-bottom:6px}
 .booking-calendar__toolbar>p{font-size:10px}
 .booking-calendar__toolbar>div{gap:0}
 .booking-months{display:block}
 .booking-month:nth-child(n+2){display:none}
 .booking-month h2{font-size:24px;margin-bottom:11px}
 .booking-weekdays>span{font-size:9px;height:24px}
 .booking-day{font-size:12px;min-height:44px}
 .booking-day::after{width:34px;height:34px}
 .booking-calendar__tools{gap:10px;margin-top:4px;padding-top:2px}
 .booking-calendar__tools summary,.booking-calendar__tools>.booking-link{font-size:9px}
 .booking-native-dates{grid-template-columns:1fr;gap:12px}
 .booking-native-dates input{font-size:16px}
 .booking-calendar__hint{font-size:18px}
 .booking-actionbar{display:grid;grid-template-columns:1fr;gap:10px;margin-top:2px;padding:11px 0 max(14px,env(safe-area-inset-bottom))}
 .booking-actionbar>.booking-travelers{width:100%;max-width:none;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
 .booking-counter{gap:3px;font-size:10px}
 .booking-counter+.booking-counter{padding-left:11px}
 .booking-counter output{min-width:13px;font-size:11px}
 .booking-actionbar__summary{gap:3px}
 .booking-actionbar__summary strong{font-size:22px;line-height:1.15}
 .booking-actionbar__summary>span{font-size:9px}
 .booking-actionbar__note{display:none}
 .booking-actionbar>.booking-primary{min-width:0;width:100%;font-size:11px;min-height:54px}
 .booking-primary{padding-inline:18px;font-size:11px;gap:18px}
 .booking[data-step="rooms"] .booking-actionbar__summary{flex-direction:row;align-items:baseline;justify-content:space-between;gap:12px}
 .booking[data-step="rooms"] .booking-actionbar__summary>span{max-width:48%;text-align:right}
 .booking-stay-strip{align-items:flex-start;gap:8px;margin:22px 0 24px;padding:12px 13px;flex-wrap:wrap}
 .booking-stay-strip>p{font-size:10px;line-height:1.75;flex-basis:100%}
 .booking-stay-strip .booking-link{font-size:9px;min-height:44px;padding:5px 0}
 .booking-rooms>.booking-heading{padding-right:0}
 .booking-rooms .booking-room-total{position:static;font-size:9px;margin-top:13px}
 .booking-room-list{gap:18px}
 .booking-room{grid-template-columns:120px minmax(0,1fr);gap:0 16px;padding:11px;align-items:start}
 .booking-room__photo{grid-row:1;aspect-ratio:1.18;align-self:start}
 .booking-room__count{right:7px;bottom:7px;font-size:7px;padding:4px 6px}
 .booking-room__body{padding:1px 0 0}
 .booking-room__number{font-size:8px;margin-bottom:5px}
 .booking-room__body h2{font-size:27px;line-height:1.05;margin-bottom:9px}
 .booking-room__body h2>span{display:inline}
 .booking-room__teaser{display:none}
 .booking-room__facts{font-size:11px;line-height:1.65}
 .booking-room__body>.booking-link{font-size:11px;min-height:44px;margin-top:0;gap:8px}
 .booking-room__body>.booking-link>span{font-size:16px}
 .booking-room__actions{grid-column:1/-1;max-width:none;width:100%;margin-top:13px}
 .booking-room__choose{min-height:46px;padding:11px 14px;font-size:12px}
 .booking-review__layout{margin-top:26px;gap:28px;padding-bottom:34px}
 .booking-review__room-row{grid-template-columns:100px minmax(0,1fr);gap:20px;margin-bottom:22px}
 .booking-review__photo{aspect-ratio:.95}
 .booking-review__content>.booking-eyebrow{font-size:7px;letter-spacing:.08em}
 .booking-review__content>h2{font-size:29px;line-height:1.06;margin:9px 0}
 .booking-review__content>p:not(.booking-eyebrow){font-size:12px}
 .booking-review__content>.booking-link{font-size:12px;margin-top:0}
 .booking-photo-link{font-size:0;justify-content:flex-end;padding:8px}
 .booking-photo-link>span{font-size:20px;display:grid;place-items:center;width:28px;height:28px}
 .booking-review__stay dl>div{padding:16px 10px 16px 0}
 .booking-review__stay dl>div:nth-child(even){padding-left:18px}
 .booking-review__stay dt{font-size:10px;letter-spacing:.06em}
 .booking-review__stay dd{font-size:21px;margin-top:6px}
 .booking-review__stay dl>div:last-child dd{font:400 13px/1.6 var(--sans);padding-top:3px}
 .booking-review__edits{gap:4px 20px;margin-top:10px}
 .booking-review__edits .booking-link{font-size:12px}
 .booking-request-form{padding-top:25px}
 .booking-request-form h2{font-size:33px;margin-bottom:11px}
 .booking-request-form>p:not(.booking-error):not(.booking-form-note){font-size:13px;line-height:1.8;margin-bottom:23px}
 .booking-form-field{gap:7px;margin-bottom:17px}
 .booking-form-field>label,.booking-form-field>span{font-size:12px}
 .booking-form-field label>span,.booking-form-field small{font-size:9px}
 .booking-form-field :is(input,textarea){font-size:16px;min-height:48px;padding:11px 12px}
 .booking-form-field textarea{min-height:86px}
 .booking-request-form>details>summary{font-size:12px}
 .booking-form-note,.booking-request-form>small{font-size:11px;line-height:1.8;margin-top:13px}
 .booking-review__message h3{font-size:28px}
 .booking-review__message p{font-size:11px}
 .booking-success{margin-top:15px;padding-bottom:40px}
 .booking-success>.booking-heading{text-align:left;margin-bottom:27px}
 .booking-success .booking-heading>p:last-child{margin-inline:0;max-width:37ch}
 .booking-success__mark{margin:0 0 16px;justify-items:start}
 .booking-success__stay{display:block;padding-block:24px}
 .booking-success__stay>img{aspect-ratio:1.55;margin-bottom:23px}
 .booking-success h2{font-size:35px;margin:10px 0 14px}
 .booking-success__stay p{font-size:11px}
 .booking-success>.booking-link{margin:18px 0 0}
 .booking-dialog{inset:0;width:100%;max-width:100%;height:100vh;height:100dvh;max-height:100vh;max-height:100dvh}
 .booking-dialog__top{padding:20px 24px 21px}
 .booking-dialog__top .booking-eyebrow{font-size:8px;padding-right:60px}
 .booking-dialog__top h2{font-size:40px;margin-top:13px;margin-right:30px}
 .booking-dialog__top>.booking-link{top:13px;right:20px;font-size:0;gap:0}
 .booking-dialog__top>.booking-link>span{font-size:29px}
 .booking-dialog__body{padding:0 24px 28px}
 .booking-dialog .room-gallery__slide{aspect-ratio:1.3}
 .booking-dialog .room-gallery__controls{gap:8px;margin-top:10px;flex-wrap:wrap}
 .booking-dialog .room-gallery__thumbnails{flex:1;gap:7px}
 .booking-dialog .room-gallery__thumbnail{width:54px;height:44px;padding:2px}
 .booking-dialog .room-gallery__position{font-size:8px}
 .booking-dialog .room-gallery__arrows{gap:0}
 .booking-dialog__copy{padding-top:24px}
 .booking-dialog__copy #booking-dialog-facts{font-size:10px;padding-top:14px}
 .booking-dialog__copy h3{font-size:29px;margin:0 0 13px}
 .booking-dialog__copy>p:not(.booking-eyebrow){font-size:12px;line-height:1.85}
 .booking-dialog__copy dl{gap:0 18px;margin-top:22px}
 .booking-dialog__copy dt,.booking-dialog__copy dd{font-size:10px}
 .booking-dialog__footer{gap:11px;padding:13px 24px max(18px,env(safe-area-inset-bottom))}
 .booking-dialog__footer>p{font-size:10px;line-height:1.6}
}
@media(max-width:374.98px){
 .booking-page{--booking-gutter:16px}
 .booking-brand>span{font-size:25px}
 .booking-brand>small{font-size:6px}
 .booking-exit{font-size:8px;max-width:84px;gap:6px}
 .booking-progress ol{gap:5px}
 .booking-progress li{gap:5px}
 .booking-progress li+li::before{width:8px}
 .booking-progress button{font-size:8px;gap:4px}
 .booking-progress button>span{font-size:7px}
 .booking-page .booking-heading h1{font-size:35px}
 .booking-calendar-panel{padding-inline:10px}
 .booking-date-field{padding-inline:11px}
 .booking-date-field>strong{font-size:20px}
 .booking-date-field.is-active::after{inset-inline:11px}
 .booking-counter{display:block;font-size:9px}
 .booking-counter>span{display:block;margin-bottom:1px}
 .booking-counter>div{justify-content:space-between}
 .booking[data-step="dates"] .booking-actionbar{gap:7px;padding-top:8px;padding-bottom:max(10px,env(safe-area-inset-bottom))}
 .booking-room{grid-template-columns:104px minmax(0,1fr);gap:0 13px;padding:10px}
 .booking-room__body h2{font-size:25px}
 .booking-room__facts{font-size:8px}
 .booking-room__body>.booking-link{font-size:8px}
 .booking-review__room-row{grid-template-columns:90px minmax(0,1fr);gap:16px}
 .booking-review__content>h2{font-size:27px}
 .booking-review__stay dd{font-size:21px}
 .booking-dialog__top,.booking-dialog__body,.booking-dialog__footer{padding-inline:18px}
 .booking-dialog__top h2{font-size:37px}
 .booking-dialog .room-gallery__thumbnail{width:48px}
}
@media(prefers-reduced-motion:reduce){
 html.booking-dialog-open,.booking-page{scroll-behavior:auto}
 .booking-page *{scroll-behavior:auto!important}
 .booking-progress button::after,.booking-date-field,.booking-day,.booking-day::after,.booking-primary,.booking-room,.booking-room__photo>img,.booking-room__choose{transition:none}
}


/* Reservation offers: verified room prices and optional Wafi experiences.
   Loaded after booking.css; every rule belongs to this reservation extension. */
.booking-room__actions{gap:14px}
.booking-room__price{min-width:0;color:var(--brick);font-variant-numeric:tabular-nums}
.booking-room__price>.label,.booking-room__price>small{display:block;margin-bottom:5px;color:var(--booking-muted);font:400 11px/1.5 var(--sans)}
.booking-room__price strong{display:inline-block;font:400 31px/1.1 var(--serif);letter-spacing:-.025em;white-space:nowrap}
.booking-room__price>span{display:block;margin-top:5px;color:var(--booking-muted);font:400 11px/1.6 var(--sans)}
.booking-room__price>p{margin-top:7px;color:var(--booking-muted);font:400 12px/1.65 var(--sans)}
.booking-room__price>p strong{font:400 13px/1.65 var(--sans);letter-spacing:0;color:var(--brick)}
.booking-room-count{display:flex;align-items:center;justify-content:space-between;gap:26px;padding:0 0 25px;margin:0 0 24px;border-bottom:1px solid var(--booking-line)}
.booking-room-count>.booking-counter{flex:0 1 420px;gap:26px;font:400 13px/1.6 var(--sans);color:var(--wine)}
.booking-room-count>.booking-counter>div{flex:none;min-width:110px;justify-content:space-between}
.booking-room-count>.booking-counter output{font-size:14px;min-width:22px}
.booking-room-count>small{max-width:48ch;font:400 12px/1.7 var(--sans);color:var(--booking-muted)}
.booking-quote-note{max-width:60ch;margin-top:18px;font:400 12px/1.75 var(--sans);color:var(--booking-muted)}

/* Optional suggestions at finalization: two cards desktop, a peek on mobile. */
.booking-adventures{position:relative;min-width:0;max-width:100%;margin-top:32px;padding-top:24px;border-top:1px solid var(--booking-line)}
.booking-adventures>.booking-heading{margin-bottom:22px;padding-right:142px}
.booking-adventures .booking-heading h2{margin:11px 0 0;font:400 clamp(29px,2.4vw,36px)/1.08 var(--serif);letter-spacing:-.03em;color:var(--brick)}
.booking-adventures .booking-heading>p:last-child:not(.booking-eyebrow){max-width:44ch;font-size:12px;line-height:1.75}
.booking-adventures__navigation{position:absolute;top:43px;right:0;display:flex;align-items:center;gap:5px;min-width:0;color:var(--brick)}
.booking-adventures__navigation>.booking-icon{flex:none;width:44px;height:44px;min-height:44px;color:var(--brick);border-bottom:1px solid var(--booking-line)}
.booking-adventures__navigation>.booking-icon:not(:disabled):hover{background:#8d38350b}
.booking-adventures__navigation>.booking-icon:disabled{opacity:.3}
.booking-adventures__position{min-width:32px;color:var(--booking-muted);font:400 10px/1.5 var(--sans);font-variant-numeric:tabular-nums;white-space:nowrap;text-align:center}
.booking-adventures__grid{display:flex;gap:16px;align-items:stretch;min-width:0;max-width:calc(100% + 8px);margin:-4px;padding:4px 4px 13px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x mandatory;scroll-behavior:smooth;scroll-padding-inline:4px;touch-action:pan-x pan-y;cursor:grab;scrollbar-width:thin;scrollbar-color:#8d38354d transparent}
.booking-adventures__grid::-webkit-scrollbar{height:4px}
.booking-adventures__grid::-webkit-scrollbar-thumb{background:#8d38354d}
.booking-adventures__grid.is-dragging{scroll-snap-type:none;scroll-behavior:auto;cursor:grabbing;user-select:none}
.booking-adventure{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr auto auto;align-content:start;position:relative;flex:0 0 calc((100% - 16px)/2);min-width:0;padding:10px;scroll-snap-align:start;scroll-snap-stop:normal;border:1px solid var(--booking-line);background:transparent;transition:border-color 180ms,background 180ms}
.booking-adventure.is-selected{border-color:#8d3835b3;background:#f0e5d352}
.booking-adventure__image{display:block;position:relative;min-width:0;width:100%;aspect-ratio:1.6;padding:0;border:0;overflow:hidden;background:var(--booking-sand);user-select:none}
img.booking-adventure__image,.booking-adventure__image>img{display:block;width:100%;height:100%;object-fit:cover}
.booking-adventure__illustration{display:grid;place-items:center;background:#eee0c8;color:var(--brick)}
.booking-adventure__illustration>svg{display:block;width:100%;height:100%;max-height:100%;color:inherit}
.booking-adventure__body{display:flex;flex-direction:column;align-items:flex-start;min-width:0;padding:16px 3px 13px}
.booking-adventure__body h3{margin:0 0 9px;font:400 27px/1.08 var(--serif);letter-spacing:-.025em;color:var(--brick)}
.booking-adventure__body>p{margin:0 0 13px;color:var(--booking-muted);font:400 12px/1.7 var(--sans)}
.booking-adventure__price{margin-top:auto;padding-top:3px;min-width:0;color:var(--brick)}
.booking-adventure__price strong{display:block;font:400 23px/1.2 var(--serif);letter-spacing:-.015em}
.booking-adventure__price small{display:block;margin-top:5px;color:var(--booking-muted);font:400 11px/1.6 var(--sans)}
.booking-adventure__toggle{display:flex;align-items:center;justify-content:space-between;gap:16px;min-width:0;min-height:46px;width:100%;margin-top:4px;padding:11px 13px;border:1px solid #8d38356b;background:transparent;color:var(--brick);font:400 12px/1.6 var(--sans);text-align:left;transition:background 180ms,border-color 180ms,color 180ms}
.booking-adventure__toggle>span{font-size:20px;line-height:1}
.booking-adventure__toggle:hover{background:#8d38350a;border-color:var(--brick)}
.booking-adventure__toggle[aria-pressed="true"]{border-color:var(--brick);background:var(--brick);color:var(--ivory)}
.booking-adventure__toggle:disabled{opacity:.55}
.booking-adventure__quantity{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-width:0;margin-top:15px;padding-top:14px;border-top:1px solid var(--booking-line)}
.booking-adventure__quantity label{display:flex;flex-direction:column;gap:8px;min-width:0;color:var(--booking-muted);font:400 11px/1.6 var(--sans)}
.booking-adventure__quantity :is(input,select){width:100%;min-width:0;min-height:44px;padding:8px 10px;border:1px solid #8d383560;border-radius:0;background:var(--ivory);color:var(--wine);font:400 16px/1.5 var(--sans);color-scheme:light}
.booking-page .booking-adventure :is(button,select,input):focus-visible{outline:2px solid var(--brick);outline-offset:4px}

/* An explicit estimate: known amounts and unpriced requests stay distinct. */
.booking-costs{min-width:0;margin-top:28px;padding-top:6px;border-top:1px solid var(--booking-line)}
.booking-costs>h3{font:400 29px/1.1 var(--serif);margin:22px 0 14px;color:var(--brick)}
.booking-costs__total small{display:block;font:400 11px/1.6 var(--sans);margin-top:5px}
.booking-room__price>p>small{display:block}
.booking-costs__line{display:flex;justify-content:space-between;align-items:baseline;gap:22px;padding:12px 0;font:400 12px/1.7 var(--sans);color:var(--booking-muted)}
.booking-costs__line>span{min-width:0;max-width:70%;overflow-wrap:anywhere}
.booking-costs__line>strong{flex:none;max-width:45%;font:400 13px/1.7 var(--sans);color:var(--brick);text-align:right;font-variant-numeric:tabular-nums}
.booking-costs__line small{display:block;font:400 11px/1.6 var(--sans);color:var(--booking-muted)}
.booking-costs__total{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:10px 24px;margin-top:8px;padding-top:20px;border-top:1px solid #8d38356b;color:var(--brick)}
.booking-costs__total>span,.booking-costs__total>label{font:400 22px/1.2 var(--serif);letter-spacing:-.015em}
.booking-costs__total>strong{font:400 33px/1.1 var(--serif);letter-spacing:-.025em;font-variant-numeric:tabular-nums;white-space:nowrap}
.booking-costs__total>p,.booking-costs>p.note,.booking-costs>.booking-quote-note{flex-basis:100%;max-width:60ch;margin-top:1px;font:400 12px/1.75 var(--sans);color:var(--booking-muted)}
.booking-costs>p.note,.booking-costs>.booking-quote-note{margin-top:15px}
.booking-selection-estimate{font-variant-numeric:tabular-nums}
.booking-actionbar__summary.booking-selection-estimate strong,.booking-selection-estimate .booking-actionbar__summary strong{font:400 28px/1.15 var(--serif);letter-spacing:-.025em;color:var(--brick)}
.booking-actionbar__summary .booking-selection-estimate{font:400 28px/1.15 var(--serif);letter-spacing:-.025em;color:var(--brick)}
.booking-dialog-price{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 18px;min-width:0;color:var(--brick)}
.booking-dialog-price>strong{font:400 29px/1.1 var(--serif);letter-spacing:-.025em;font-variant-numeric:tabular-nums;white-space:nowrap}
.booking-dialog-price>span,.booking-dialog-price>small{font:400 12px/1.6 var(--sans);color:var(--booking-muted)}
.booking-dialog-price>p{flex-basis:100%;font:400 12px/1.6 var(--sans);color:var(--booking-muted)}

@media(min-width:900px){
 .booking-review__layout .booking-request-form{position:sticky;top:24px;align-self:start}
}
@media(max-width:1199.98px){
 .booking-room__price strong{font-size:29px}
}
@media(max-width:899.98px){
 .booking-room-count{gap:22px}
 .booking-room-count>.booking-counter{flex:0 1 360px;gap:14px}
 .booking-room-count>small{max-width:30ch}
 .booking-room__actions{max-width:none}
 .booking-room__price>p{margin-top:4px}
}
@media(max-width:699.98px){
 .booking-room__actions{gap:12px}
 .booking-room__price{padding-top:13px;border-top:1px solid var(--booking-line)}
 .booking-room__price>.label,.booking-room__price>small{font-size:11px;margin-bottom:4px}
 .booking-room__price strong{font-size:29px}
 .booking-room__price>span{font-size:11px}
 .booking-room__price>p{font-size:12px;line-height:1.6;margin-top:4px}
 .booking-room-count{display:block;margin-bottom:22px;padding-bottom:21px}
 .booking-room-count>.booking-counter{display:flex;width:100%;justify-content:space-between;gap:14px;font-size:12px}
 .booking-room-count>.booking-counter>span{margin:0}
 .booking-room-count>.booking-counter>div{min-width:110px}
 .booking-room-count>small{display:block;max-width:44ch;margin-top:9px;font-size:11px;line-height:1.7}
 .booking-quote-note{font-size:12px;margin-top:16px}
 .booking-adventures{margin-top:30px;padding-top:24px}
 .booking-adventures>.booking-heading{margin-bottom:14px;padding-right:0}
 .booking-adventures .booking-heading h2{font-size:34px;line-height:1.06;margin-top:11px}
 .booking-adventures .booking-heading>p:last-child:not(.booking-eyebrow){font-size:12px;line-height:1.75}
 .booking-adventures__navigation{position:static;justify-content:flex-end;gap:7px;margin-bottom:13px}
 .booking-adventures__position{order:-1;margin-right:auto;text-align:left;font-size:11px}
 .booking-adventures__grid{gap:14px}
 .booking-adventure{flex-basis:82%;padding:11px}
 .booking-adventure__body{padding:17px 3px 14px}
 .booking-adventure__body h3{font-size:27px;line-height:1.06;margin-bottom:9px}
 .booking-adventure__body>p{font-size:12px;line-height:1.7;margin-bottom:13px}
 .booking-adventure__price strong{font-size:23px;line-height:1.15}
 .booking-adventure__price small{font-size:11px;line-height:1.6;margin-top:4px}
 .booking-adventure__toggle{font-size:12px;min-height:46px;padding:11px 13px}
 .booking-adventure__quantity{gap:14px;margin-top:14px;padding-top:14px}
 .booking-adventure__quantity label{font-size:11px}
 .booking-adventure__quantity select{font-size:16px;min-height:44px}
 .booking-costs{margin-top:23px}
 .booking-costs__line{gap:16px;padding:10px 0;font-size:12px;line-height:1.65}
 .booking-costs__line>span{max-width:65%}
 .booking-costs__line>strong{font-size:12px;line-height:1.65}
 .booking-costs__total{gap:10px 15px;padding-top:18px;margin-top:6px}
 .booking-costs__total>span,.booking-costs__total>label{font-size:21px}
 .booking-costs__total>strong{font-size:30px}
 .booking-costs__total>p,.booking-costs>p.note,.booking-costs>.booking-quote-note{font-size:12px;line-height:1.7}
 .booking-actionbar__summary.booking-selection-estimate strong,.booking-selection-estimate .booking-actionbar__summary strong,.booking-actionbar__summary .booking-selection-estimate{font-size:25px}
 .booking-dialog-price>strong{font-size:27px}
 .booking-dialog-price>span,.booking-dialog-price>small,.booking-dialog-price>p{font-size:11px}
}
@media(max-width:374.98px){
 .booking-adventure{padding:10px}
 .booking-adventure__body h3{font-size:25px}
 .booking-adventure__price strong{font-size:22px}
 .booking-room-count>.booking-counter{font-size:11px;gap:8px}
 .booking-costs__line>strong{font-size:11px}
 .booking-costs__total>strong{font-size:28px}
}
@media(prefers-reduced-motion:reduce){
 .booking-adventure,.booking-adventure__toggle{transition:none}
 .booking-adventures__grid{scroll-behavior:auto}
}

/* M Suite's listing / basket rhythm in the Dar El Hakim palette.
   This final layer owns layout only; catalogue and request rules stay shared. */
.booking-rooms-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:32px;min-width:0}
.booking-results{min-width:0}
.booking-results>.booking-heading{margin-bottom:24px;padding-right:0}
.booking-results>.booking-heading h1{font-size:clamp(35px,3.1vw,46px)}
.booking-results .booking-stay-strip{margin:0 0 28px;padding:10px 18px;gap:18px}
.booking-results .booking-stay-strip>p{font-size:12px}
.booking-results .booking-room-list{gap:20px}
.booking-results .booking-room{grid-template-columns:32% minmax(0,1fr);grid-template-rows:1fr auto;align-items:stretch;gap:0;padding:0;border:1px solid var(--booking-line);background:#fffaf169}
.booking-results .booking-room.is-selected{border-color:#8d3835a6;background:#f0e5d329}
.booking-results .booking-room__photo{grid-column:1;grid-row:1/3;min-height:220px;height:100%;aspect-ratio:auto;align-self:stretch}
.booking-results .booking-room__photo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.booking-results .booking-room__body{grid-column:2;grid-row:1;padding:22px 23px 12px}
.booking-results .booking-room__body h2{font-size:clamp(28px,2.45vw,37px);line-height:1.06;margin-bottom:10px}
.booking-results .booking-room__teaser{font-size:12px;line-height:1.7;margin-bottom:10px}
.booking-results .booking-room__facts{font-size:11px;line-height:1.7}
.booking-results .booking-room__body>.booking-link{min-height:44px;font-size:11px}
.booking-results .booking-room__actions{display:flex;flex-direction:row;align-items:center;justify-content:space-between;grid-column:2;grid-row:2;gap:14px;max-width:none;margin:0 23px;padding:15px 0 18px;border-top:1px solid var(--booking-line)}
.booking-results .booking-room__price{flex:1;min-width:0;padding:0;border:0}
.booking-results .booking-room__price>small,.booking-results .booking-room__price>.label{font-size:10px;line-height:1.5;margin-bottom:5px}
.booking-results .booking-room__price>strong{font-size:29px;line-height:1.08}
.booking-results .booking-room__price>span{font-size:11px;line-height:1.6;margin-top:5px}
.booking-results .booking-room__price>p{font-size:11px;line-height:1.6;margin-top:5px}
.booking-results .booking-room__choose{flex:none;width:auto;min-width:112px;max-width:170px;min-height:48px;padding:12px 15px;font-size:12px;gap:13px}
.booking-results .booking-room__choice-label{display:none}

/* The desktop basket stays beside the choices and scrolls independently if full. */
.booking-basket{position:sticky;top:24px;min-width:0;max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);padding:24px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#8d38354d transparent;border:1px solid var(--booking-line);background:#fffaf180;color:var(--wine)}
.booking-basket__head{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding-bottom:18px;margin-bottom:3px;border-bottom:1px solid var(--booking-line)}
.booking-basket__head h2{margin:0;font:400 28px/1.1 var(--serif);letter-spacing:-.025em;color:var(--brick)}
.booking-basket__head p,.booking-basket__head small{flex:none;font:400 11px/1.6 var(--sans);color:var(--booking-muted)}
.booking-basket__dates{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0}
.booking-basket__dates p{font:400 18px/1.35 var(--serif);letter-spacing:-.01em;color:var(--brick)}
.booking-basket__dates :is(button,a){flex:none;min-height:44px;font-size:11px}
.booking-basket__empty{padding:23px 0;font:400 12px/1.8 var(--sans);color:var(--booking-muted)}
.booking-basket__room{display:grid;grid-template-columns:64px minmax(0,1fr);gap:8px 13px;min-width:0;padding:18px 0;border-bottom:1px solid var(--booking-line)}
.booking-basket__room>img{display:block;grid-column:1;grid-row:1;width:64px;height:70px;object-fit:cover;background:var(--booking-sand)}
.booking-basket__room>button{display:block;width:64px;height:70px;padding:0;border:0;background:transparent}
.booking-basket__room>button>img{display:block;width:100%;height:100%;object-fit:cover}
.booking-basket__room>div>strong{display:inline-block;font:400 14px/1.6 var(--sans);color:var(--brick);margin-top:6px}
.booking-basket__room>div>.booking-link{display:inline-flex;min-height:32px;margin-right:16px;font-size:12px}
.booking-basket__total small{display:block;font:400 11px/1.6 var(--sans);margin-top:4px}
.booking-basket__included{font:400 11px/1.7 var(--sans);margin-top:18px;color:var(--booking-muted)}
.booking-basket__extra{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-top:14px;font:400 11px/1.6 var(--sans);color:var(--booking-muted)}
.booking-basket__extra strong{font-weight:400;color:var(--brick);white-space:nowrap}
.booking-review-cart .booking-basket__room{grid-template-columns:96px minmax(0,1fr);padding-top:0;padding-bottom:22px;margin-bottom:22px}
.booking-review-cart .booking-basket__room>button{width:96px;height:100px}
.booking-basket__room>div{grid-column:2;min-width:0}
.booking-basket__room h3{margin:0 0 6px;font:400 23px/1.1 var(--serif);letter-spacing:-.015em;color:var(--brick)}
.booking-basket__room p{font:400 11px/1.65 var(--sans);color:var(--booking-muted)}
.booking-basket__room p strong,.booking-basket__room-price{font:400 13px/1.5 var(--sans);color:var(--brick);font-variant-numeric:tabular-nums}
.booking-basket__quantity{display:flex;align-items:center;gap:1px;min-width:0;margin-top:7px}
.booking-basket__quantity>button{display:grid;place-items:center;flex:none;width:44px;height:44px;padding:0;border:0;background:transparent;color:var(--brick);font:400 21px/1 var(--sans)}
.booking-basket__quantity>button:hover:not(:disabled){background:#8d38350b}
.booking-basket__quantity>button:disabled{opacity:.3}
.booking-basket__quantity>output{min-width:20px;text-align:center;font:400 12px/1 var(--sans);font-variant-numeric:tabular-nums}
.booking-basket__quantity>.booking-basket__remove,.booking-basket__remove{display:inline-flex;align-items:center;justify-content:center;width:auto;min-width:44px;min-height:44px;margin-left:auto;padding:8px 3px;border:0;background:none;font:400 11px/1.5 var(--sans);color:var(--brick);text-decoration:underline;text-underline-offset:4px}
.booking-basket__total{display:flex;align-items:baseline;justify-content:space-between;gap:16px;min-width:0;margin-top:20px;padding-top:20px;border-top:1px solid #8d383566;color:var(--brick)}
.booking-basket__total>label,.booking-basket__total>span{font:400 12px/1.6 var(--sans)}
.booking-basket__total>strong{font:400 31px/1.1 var(--serif);letter-spacing:-.025em;white-space:nowrap;font-variant-numeric:tabular-nums}
.booking-basket :is(.booking-primary,#basket-continue),#basket-mobile-content .booking-primary{width:100%;margin-top:19px}
.booking-basket .booking-quote-note,#basket-mobile-content .booking-quote-note{margin-top:14px;font-size:11px;line-height:1.75}
.booking-basket>.booking-link,#basket-mobile-content>.booking-link{font-size:11px}
.booking-basket .booking-costs{margin-top:18px}
.booking-basket .booking-costs__line{font-size:11px;gap:12px}
.booking-basket .booking-costs__line>strong{font-size:12px}
.booking-basket .booking-costs__total>strong{font-size:29px}

/* A real mobile dialog shares the basket rendering without duplicate IDs. */
#booking-basket-dialog{position:fixed;inset:auto 0 0;width:100%;height:auto;max-width:none;max-height:85vh;max-height:85dvh;margin:0;padding:0;border:0;background:var(--ivory);color:var(--wine);color-scheme:light;overflow:hidden}
#booking-basket-dialog[open]{display:flex;flex-direction:column}
#booking-basket-dialog::backdrop,.booking-extras-dialog::backdrop{background:#2c16166b;backdrop-filter:blur(2px)}
#booking-basket-dialog>header,.booking-basket-dialog__top{display:flex;align-items:center;justify-content:space-between;gap:20px;flex:none;padding:18px 24px;border-bottom:1px solid var(--booking-line)}
#booking-basket-dialog>header h2,.booking-basket-dialog__top h2{margin:0;font:400 32px/1.08 var(--serif);letter-spacing:-.025em;color:var(--brick)}
#booking-basket-dialog>header button,.booking-basket-dialog__top button{min-width:44px;min-height:44px;color:var(--brick)}
#basket-mobile-content{min-height:0;padding:4px 24px max(24px,env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#8d38354d transparent}
#basket-mobile-content .booking-basket__head{padding-top:18px}
#basket-mobile-content .booking-basket__room{grid-template-columns:70px minmax(0,1fr);column-gap:17px}
#basket-mobile-content .booking-basket__room>img{width:70px;height:77px}

/* The excursion suggestion appears only between the basket and finalization. */
.booking-extras-dialog{position:fixed;inset:0;width:min(1040px,94vw);height:fit-content;max-width:none;max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);margin:auto;padding:0;border:0;background:var(--ivory);color:var(--wine);color-scheme:light;overflow:hidden}
html:has(.booking-extras-dialog[open]){overflow:hidden}
.booking-page:has(.booking-extras-dialog[open]){overflow:hidden}
.booking-extras-dialog[open]{display:flex;flex-direction:column}
.booking-extras-dialog>header,.booking-extras-dialog__top{display:flex;align-items:center;justify-content:space-between;gap:16px;flex:none;padding:18px 28px 8px}
.booking-extras-dialog>header>div{min-width:0}
.booking-extras-dialog>header h2,.booking-extras-dialog__top h2{margin:0;font:400 36px/1.08 var(--serif);letter-spacing:-.03em;color:var(--brick);white-space:nowrap}
.booking-extras-dialog>header .booking-eyebrow,.booking-extras-dialog__top .booking-eyebrow{margin:0 0 4px;font-size:10px;line-height:1.4}
.booking-extras-dialog>header button,.booking-extras-dialog__top button{flex:none;min-width:44px;min-height:44px;color:var(--brick)}
.booking-extras-dialog__body{min-height:0;padding:0 28px 14px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#8d38354d transparent}
.booking-extras-dialog__body>.booking-adventures{margin:0;padding:0;border:0}
.booking-extras-dialog .booking-adventures__grid{gap:16px;align-items:flex-start;padding-bottom:8px}
.booking-extras-dialog .booking-adventures__navigation{position:static;display:flex;justify-content:flex-end;margin:0 0 6px}
.booking-extras-dialog .booking-adventures__position{margin-right:auto;font-size:11px}
.booking-extras-dialog .booking-adventure{flex-basis:calc((100% - 32px)/3);grid-template-rows:auto auto auto auto;padding:8px}
.booking-extras-dialog .booking-adventure__image{height:auto;aspect-ratio:1.8;max-height:clamp(96px,calc(100dvh - 430px),190px)}
.booking-extras-dialog .booking-adventure:has([data-adventure="luge"]) .booking-adventure__image{object-position:50% 58%}
.booking-extras-dialog .booking-adventure:has(.booking-adventure__quantity) .booking-adventure__image{max-height:clamp(56px,calc(100dvh - 540px),110px)}
.booking-extras-dialog .booking-adventure__body{padding:12px 3px 10px}
.booking-extras-dialog .booking-adventure__body h3{margin:0 0 6px;font-size:26px;line-height:1.08}
.booking-extras-dialog .booking-adventure__price{margin-top:0;padding:0}
.booking-extras-dialog .booking-adventure__price strong{font-size:22px;line-height:1.15}
.booking-extras-dialog .booking-adventure__price small{margin-top:2px;font-size:11px;line-height:1.4}
.booking-extras-dialog .booking-adventure__toggle{min-height:44px;margin-top:0;padding:9px 11px}
.booking-extras-dialog .booking-adventure__quantity{gap:10px;margin-top:8px;padding-top:8px}
.booking-extras-dialog .booking-adventure__quantity label{gap:4px;line-height:1.4}
.booking-extras-dialog .booking-adventure__quantity input{height:44px;padding:8px}
.booking-extras-dialog__footer{display:flex;align-items:center;justify-content:space-between;gap:20px;flex:none;min-width:0;padding:12px 28px max(14px,env(safe-area-inset-bottom));border-top:1px solid var(--booking-line);background:var(--ivory)}
.booking-extras-dialog__footer>p,.booking-extras-dialog__total{flex:1;min-width:0;font:400 12px/1.6 var(--sans);color:var(--booking-muted)}
.booking-extras-dialog__footer p>strong,.booking-extras-dialog__total>strong{display:block;font:400 29px/1.15 var(--serif);letter-spacing:-.025em;color:var(--brick);font-variant-numeric:tabular-nums}
#extras-continue{order:2;flex:none;min-width:180px;min-height:48px;padding-block:10px}
#extras-skip{order:1;flex:none;min-height:44px;font-size:12px}
.booking-extras-dialog :is(button,select,input):focus-visible,#booking-basket-dialog :is(button,a):focus-visible{outline:2px solid var(--brick);outline-offset:4px}

@media(min-width:1024px){
 .booking[data-step="rooms"]>.booking-actionbar{display:none}
}
@media(min-width:1024px) and (max-width:1199.98px){
 .booking-rooms-layout{grid-template-columns:minmax(0,1fr) 310px;gap:24px}
 .booking-basket{padding:20px}
 .booking-results .booking-room__body{padding:19px 18px 9px}
 .booking-results .booking-room__actions{margin-inline:18px;gap:10px}
 .booking-results .booking-room__price>strong{font-size:26px}
 .booking-results .booking-room__choose{min-width:98px;padding-inline:11px;font-size:11px}
}
@media(max-width:1023.98px){
 .booking[data-step="rooms"].has-cart .booking-actionbar__summary{display:none}
 .booking-rooms-layout{display:block}
 .booking-rooms-layout>.booking-basket{display:none}
 .booking[data-step="rooms"]>.booking-actionbar{display:flex;align-items:center;justify-content:space-between;gap:16px}
 .booking[data-step="rooms"] .booking-actionbar>.booking-primary{flex:none;width:auto;min-width:145px}
 #booking-basket-toggle{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;flex:1;gap:4px;min-width:0;min-height:44px;padding:5px 0;border:0;background:none;font:400 12px/1.5 var(--sans);text-align:left;color:var(--brick)}
 #booking-basket-toggle strong{font:400 25px/1.1 var(--serif);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
 #booking-basket-toggle small,#booking-basket-toggle span{font:400 11px/1.5 var(--sans);color:var(--booking-muted)}
 .booking-extras-dialog{width:94vw}
 .booking-extras-dialog .booking-adventure{flex-basis:calc((100% - 16px)/2)}
}
@media(max-width:699.98px){
 .booking-results>.booking-heading{margin-bottom:21px}
 .booking-results>.booking-heading h1{font-size:35px}
 .booking-results .booking-stay-strip{margin-bottom:24px;padding:12px 14px}
 .booking-results .booking-stay-strip>p{font-size:11px}
 .booking-results .booking-room-list{gap:18px}
 .booking-results .booking-room{grid-template-columns:108px minmax(0,1fr);grid-template-rows:auto auto}
 .booking-results .booking-room__photo{grid-column:1;grid-row:1;min-height:127px;aspect-ratio:auto}
 .booking-results .booking-room__body{grid-column:2;grid-row:1;padding:16px 14px 10px}
 .booking-results .booking-room__body h2{font-size:28px;line-height:1.06;margin-bottom:10px}
 .booking-results .booking-room__facts{font-size:11px;line-height:1.6}
 .booking-results .booking-room__body>.booking-link{font-size:11px;min-height:44px}
 .booking-results .booking-room__actions{grid-column:1/-1;grid-row:2;flex-direction:row;align-items:center;margin:0;padding:13px 14px;gap:13px}
 .booking-results .booking-room__price>strong{font-size:28px}
 .booking-results .booking-room__price>p,.booking-results .booking-room__price>span{font-size:11px;line-height:1.6}
 .booking-results .booking-room__choose{min-width:115px;max-width:145px;min-height:48px;padding:12px 13px;font-size:12px;gap:10px}
 .booking[data-step="rooms"] .booking-actionbar>.booking-primary{min-width:130px;font-size:12px}
 .booking-extras-dialog{inset:auto 0 0;width:100%;max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px);margin:0}
 .booking-extras-dialog>header,.booking-extras-dialog__top{gap:12px;padding:12px 20px 4px}
 .booking-extras-dialog>header h2,.booking-extras-dialog__top h2{font-size:30px}
 .booking-extras-dialog__body{padding:0 20px 6px}
 .booking-extras-dialog .booking-adventures__grid{gap:12px}
 .booking-extras-dialog .booking-adventure{flex-basis:90%;padding:8px}
 .booking-extras-dialog .booking-adventure__body{padding:10px 2px 8px}
 .booking-extras-dialog .booking-adventure__body h3{font-size:25px}
 .booking-extras-dialog__footer{display:grid;grid-template-columns:minmax(0,1fr) minmax(112px,.8fr);gap:2px 14px;padding:10px 20px max(8px,env(safe-area-inset-bottom))}
 .booking-extras-dialog__total{grid-column:1;grid-row:1;font-size:11px;line-height:1.4}
 .booking-extras-dialog__total>small{display:block;max-width:24ch;font-size:10px}
 .booking-extras-dialog__total>strong{display:block;margin:3px 0 0;font-size:25px}
 #extras-continue{grid-column:2;grid-row:1;min-width:0;width:100%;min-height:46px;font-size:12px;padding:10px 12px;gap:10px}
 #extras-skip{grid-column:1/-1;grid-row:2;justify-content:center;min-width:0;min-height:44px;font-size:11px;padding:8px 0}
}
@media(max-width:374.98px){
 .booking-results .booking-room{grid-template-columns:94px minmax(0,1fr)}
 .booking-results .booking-room__body{padding-inline:12px}
 .booking-results .booking-room__body h2{font-size:26px}
 .booking-results .booking-room__actions{padding-inline:11px;gap:10px}
 .booking-results .booking-room__price>strong{font-size:26px}
 .booking-results .booking-room__choose{min-width:108px;padding-inline:11px;font-size:11px}
 .booking[data-step="rooms"] .booking-actionbar>.booking-primary{min-width:118px}
 #booking-basket-dialog>header,.booking-basket-dialog__top{padding-inline:18px}
 #basket-mobile-content{padding-inline:18px}
 .booking-extras-dialog>header,.booking-extras-dialog__top,.booking-extras-dialog__body,.booking-extras-dialog__footer{padding-inline:18px}
 .booking-extras-dialog .booking-adventure__body h3{font-size:24px}
}
@media(prefers-reduced-motion:reduce){
 .booking-extras-dialog .booking-adventures__grid{scroll-behavior:auto}
}

/* A burgundy contact panel distinguishes the last action from the stay recap. */
.booking-page .booking-request-form{--request-burgundy:#743238;padding:clamp(26px,3vw,40px);border:0;background:var(--request-burgundy);color:var(--ivory)}
.booking-page .booking-request-form h2{color:var(--ivory)}
.booking-page .booking-request-form>p:not(.booking-error):not(.booking-form-note){color:#eeded2;font-size:13px}
.booking-page .booking-request-form>p.booking-form-notice{background:#54232b5c;border-left:1px solid #e7cabb99;color:#f8eee3;padding:14px 16px}
.booking-page .booking-request-form .booking-form-field>span{color:var(--ivory)}
.booking-page .booking-request-form .booking-form-field small,.booking-page .booking-request-form>small,.booking-page .booking-request-form__footer>p{color:#ead7ca}
.booking-page .booking-request-form .booking-form-field :is(input,textarea){background:var(--ivory);color:var(--wine);border-bottom:1px solid #d4b89e;font-size:16px}
.booking-page .booking-request-form .booking-form-field :is(input,textarea)::placeholder{color:#7b655c}
.booking-page .booking-request-form .booking-form-field :is(input,textarea)[aria-invalid="true"]{background:#fff0e8;border-color:#f3ac97;box-shadow:inset 0 -2px #a1433b}
.booking-page .booking-request-form .booking-form-field .booking-field-error,.booking-page .booking-request-form .booking-error{color:#ffe3d5}
.booking-page .booking-request-form>details>summary{color:var(--ivory);border-color:#efd8c655}
.booking-page .booking-request-form .booking-primary{background:var(--ivory);border-color:var(--ivory);color:var(--request-burgundy)}
.booking-page .booking-request-form .booking-primary:hover:not(:disabled){background:#fffaf1}
.booking-page .booking-request-form .booking-primary:disabled{background:#f8f0e21c;border-color:#f4e5da70;color:#f4e5da;opacity:1}
.booking-page .booking-request-form :is(button,input,textarea,summary):focus-visible{outline:2px solid #f6dcb9;outline-offset:4px}
@media(max-width:699.98px){.booking-page .booking-request-form{padding:28px 22px}}

/* One compact date dialog shared by public entry and the booking tunnel. */
.stay-entry{--stay-pad:20px;color-scheme:light;color:var(--wine,#43212d);background:var(--ivory,#f8f0e2);font-family:var(--sans,Arial,sans-serif);width:min(820px,calc(100vw - 32px));max-width:none;height:auto;max-height:calc(100dvh - 16px);padding:0;border:1px solid #43212d20;border-radius:8px;margin:auto;overflow:hidden;box-shadow:0 25px 100px #18091166}
.stay-entry[open]{display:flex;flex-direction:column;height:fit-content}
.stay-entry::backdrop{background:#280d1ba6;backdrop-filter:blur(4px)}
html[data-stay-open]{overflow:hidden}
.stay-entry *{box-sizing:border-box}
.stay-entry button{border:0;background:none;color:inherit;font-family:inherit;cursor:pointer}
.stay-entry :is(button,input,summary):focus-visible,.stay-entry h2:focus-visible{outline:2px solid var(--brick,#8d3835);outline-offset:2px}
.stay-entry button:disabled{cursor:not-allowed}
.stay-entry [hidden]{display:none!important}
.stay-entry__sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.stay-entry__top{min-height:48px;padding:2px var(--stay-pad);display:flex;align-items:center;justify-content:space-between;gap:12px;flex:0 0 auto}
.stay-entry h2{font-family:var(--serif,Georgia,serif);font-weight:500;font-size:30px;line-height:1.1;letter-spacing:-.025em;margin:0;outline:none}
.stay-entry__top>button{flex:0 0 44px;font-size:29px;line-height:1;width:44px;height:44px;margin-right:-8px}
.stay-entry__selection{flex:0 0 auto;padding:0 var(--stay-pad) 4px}
.stay-entry__context{font-size:11px;line-height:1.4;color:var(--brick,#8d3835);margin:0 0 7px;overflow-wrap:anywhere}
.stay-entry__dates{display:grid;grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);align-items:center}
.stay-entry__connection{text-align:center;font-size:17px;color:#876369}
.stay-entry__dates>button{border:1px solid #43212d40;padding:6px 12px;text-align:left;min-height:46px;min-width:0;background:#fff8ed;transition:background .2s,border-color .2s}
.stay-entry__dates>button[aria-pressed=true]{border-color:var(--wine,#43212d);box-shadow:inset 0 -2px var(--wine,#43212d);background:#eadccd66}
.stay-entry__dates button>span{display:block;font-size:9px;line-height:1.2;letter-spacing:.06em;margin-bottom:3px}
.stay-entry__dates strong{display:block;font-size:14px;line-height:1.3;font-weight:500;white-space:normal}
.stay-entry__scroll{flex:1 1 auto;min-height:0;padding:0 var(--stay-pad);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#b69a90 transparent}
.stay-entry__calendar{position:relative;overflow:hidden}
.stay-entry__month-nav{position:absolute;inset:0 0 auto;display:flex;justify-content:space-between;pointer-events:none;z-index:1}
.stay-entry__month-nav button{pointer-events:auto;width:44px;height:44px;border:1px solid #43212d30;background:var(--ivory,#f8f0e2);font-size:20px}
.stay-entry__month-nav button:disabled{opacity:.3}
.stay-entry__months{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;touch-action:pan-y;user-select:none}
.stay-entry__months.is-dragging{cursor:grabbing}
.stay-entry__month{min-width:0}
.stay-entry__month h3{font-family:var(--serif,Georgia,serif);font-size:23px;line-height:44px;text-align:center;font-weight:500;margin:0 44px;text-transform:capitalize;white-space:nowrap}
.stay-entry__weekdays,.stay-entry__days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center}
.stay-entry__weekdays{font-size:9px;letter-spacing:.02em;text-transform:uppercase;line-height:22px;color:#77555b}
.stay-entry__days{grid-auto-rows:44px}
.stay-entry__day{min-width:0;min-height:44px;padding:0;font-size:13px;font-variant-numeric:tabular-nums;position:relative;isolation:isolate}
.stay-entry__day>span{display:flex;align-items:center;justify-content:center;position:relative;width:40px;height:40px;border-radius:50%;margin:auto;z-index:1}
.stay-entry__day::before{content:'';position:absolute;inset:2px 0;background:transparent;z-index:0}
.stay-entry__day.is-range::before{background:#e6d2ca}
.stay-entry__day.is-start.has-range::before{left:50%;background:#e6d2ca}
.stay-entry__day.is-end::before{right:50%;background:#e6d2ca}
.stay-entry__day.is-start>span,.stay-entry__day.is-end>span{background:var(--wine,#43212d);color:var(--ivory,#f8f0e2)}
.stay-entry__day.is-preview::before{background:#d9b3a57d}
.stay-entry__day.is-preview-end>span{box-shadow:inset 0 0 0 1px var(--brick,#8d3835)}
.stay-entry__day:hover:not(:disabled)>span{box-shadow:inset 0 0 0 1px var(--brick,#8d3835)}
.stay-entry__day[aria-current=date]>span::after{content:'';position:absolute;bottom:4px;left:calc(50% - 1.5px);width:3px;height:3px;border-radius:50%;background:currentColor}
.stay-entry__day:disabled{color:#a99594}
.stay-entry__tools{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-height:44px;border-top:1px solid #43212d18}
.stay-entry__typing{min-width:0;flex:1}
.stay-entry__typing summary{display:flex;align-items:center;gap:7px;min-height:44px;font-size:11px;cursor:pointer;list-style:none;width:max-content;max-width:100%}
.stay-entry__typing summary::-webkit-details-marker{display:none}
.stay-entry__typing summary::after{content:'+';font-size:17px}
.stay-entry__typing[open] summary::after{content:'−'}
.stay-entry__inputs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding-bottom:12px}
.stay-entry__inputs label{display:flex;flex-direction:column;min-width:0;gap:5px;font-size:11px}
.stay-entry__inputs input{width:100%;min-width:0;min-height:44px;border:1px solid #43212d40;border-radius:0;padding:6px 8px;background:#fff8ed;color:var(--wine,#43212d);font:16px var(--sans,Arial,sans-serif)}
.stay-entry__shortcuts{display:flex;gap:12px;flex:0 0 auto}
.stay-entry__shortcuts button{min-height:44px;padding:0 2px;font-size:11px;text-decoration:underline;text-underline-offset:3px}
.stay-entry__shortcuts button:disabled{color:#9e8588}
.stay-entry__bottom{flex:0 0 auto;padding:8px var(--stay-pad);background:var(--ivory,#f8f0e2);border-top:1px solid #43212d30}
.stay-entry__error{margin:0 0 6px;font-size:12px;line-height:1.45;color:#8d3835}
.stay-entry__foot{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:center}
.stay-entry__travelers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.stay-entry__traveler{display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:12px;min-width:0}
.stay-entry__stepper{display:grid;grid-template-columns:44px 20px 44px;align-items:center;min-width:0}
.stay-entry__stepper button{position:relative;width:44px;height:44px;font-size:21px;line-height:1}
.stay-entry__stepper button::before{content:'';position:absolute;inset:6px;border:1px solid #43212d40;border-radius:50%;pointer-events:none}
.stay-entry__stepper button:disabled{opacity:.3}
.stay-entry__stepper output{text-align:center;font-size:13px;font-variant-numeric:tabular-nums}
.stay-entry__confirmation{display:grid;min-width:0}
.stay-entry__confirmation>button{min-height:44px;padding:10px 15px;background:var(--wine,#43212d);color:var(--ivory,#f8f0e2);font-size:12px;display:flex;justify-content:center;gap:7px;align-items:center;white-space:nowrap}
.stay-entry__confirmation>button>span:last-child{margin-left:8px}
.stay-entry__confirmation>button:disabled{background:#dfd2c8;color:#74555b}
.stay-entry__confirmation>button:hover:not(:disabled){background:#652d3b}
.stay-dock{display:none}
@media(max-width:699.98px){
  .stay-entry{--stay-pad:16px;width:100%;max-height:calc(100dvh - 16px - env(safe-area-inset-top));margin:auto 0 0;inset:auto 0 0;border-radius:12px 12px 0 0;border-inline:0;border-bottom:0}
  .stay-entry__top{min-height:48px;padding-block:2px}
  .stay-entry h2{font-size:28px;line-height:1.1}
  .stay-entry__selection{padding-bottom:4px}
  .stay-entry__dates{grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr)}
  .stay-entry__dates>button{min-height:44px;padding:6px 8px}
  .stay-entry__dates strong{font-size:13px;line-height:1.25}
  .stay-entry__dates button>span{font-size:9px;margin-bottom:2px}
  .stay-entry__scroll{padding-inline:clamp(6px,calc((100vw - 308px)/2),16px)}
  .stay-entry__months{grid-template-columns:minmax(0,1fr);gap:0}
  .stay-entry__month h3{font-size:24px}
  .stay-entry__tools{flex-wrap:wrap;column-gap:8px;row-gap:0}
  .stay-entry__typing{flex:0 1 auto}
  .stay-entry__typing[open]{flex-basis:100%;order:1}
  .stay-entry__tools:has(.stay-entry__typing[open]) .stay-entry__shortcuts{margin-left:auto}
  .stay-entry__inputs{padding-inline:2px}
  .stay-entry__shortcuts{gap:12px}
  .stay-entry__bottom{padding:6px var(--stay-pad) calc(8px + env(safe-area-inset-bottom))}
  .stay-entry__foot{display:flex;flex-direction:column;align-items:stretch;gap:7px}
  .stay-entry__travelers{gap:18px}
  .stay-entry__traveler{flex-direction:column;align-items:center;gap:0;font-size:11px;line-height:16px}
  .stay-entry__stepper{grid-template-columns:44px minmax(24px,1fr) 44px;width:100%;max-width:156px}
  .stay-entry__confirmation>button{width:100%;padding-inline:14px}
  .stay-entry__confirmation>button>span:last-child{margin-left:auto}
  .stay-dock:not([hidden]){position:fixed;inset:auto 0 0;z-index:18;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 18px calc(4px + env(safe-area-inset-bottom));background:var(--ivory);color:var(--wine);border-top:1px solid #43212d26}
  .stay-dock>div{display:flex;align-items:center}.stay-dock>div>span{font-family:var(--serif);font-size:19px;line-height:1}.stay-dock strong{display:none}
  .stay-dock>a{min-height:44px;padding:10px 12px;display:flex;align-items:center;gap:14px;border:1px solid #43212d45;background:transparent;color:var(--wine);font-size:11px;white-space:nowrap}.stay-dock>a:focus-visible{outline:2px solid var(--wine);outline-offset:2px}
  html:is([data-stay-open],[data-menu-open],[data-room-open],[data-house-gallery-open]) .stay-dock,html:has(dialog[open]) .stay-dock{display:none}
  body:has(.stay-dock:not([hidden])) .site-footer{padding-bottom:calc(90px + env(safe-area-inset-bottom))}
}
@media(min-width:700px) and (max-width:790px){.stay-entry__foot{gap:12px}.stay-entry__travelers{gap:8px}.stay-entry__traveler{flex-direction:column;gap:0}.stay-entry__confirmation>button{padding-inline:12px}}
@media(max-height:620px){.stay-entry__top{min-height:44px;padding-block:0}.stay-entry__selection{padding-bottom:2px}.stay-entry__context{margin-bottom:4px}.stay-entry__bottom{padding-top:4px}.stay-entry__weekdays{line-height:20px}}
@media(max-width:350px){.stay-entry{--stay-pad:12px}.stay-entry__shortcuts{gap:9px}.stay-entry__shortcuts button,.stay-entry__typing summary{font-size:10px}.stay-dock:not([hidden]){padding-inline:14px}.stay-dock>a{padding-inline:10px;gap:8px}.stay-dock strong{font-size:8px}}
@media(prefers-reduced-motion:reduce){.stay-entry__dates>button{transition:none}}

/* Multi-stay booking. Proportions follow the current M Suite reference;
   colours, room photographs and published estimates remain Dar El Hakim's. */
.booking-page{--itinerary-surface:#fffaf2;--itinerary-line:#43212d26;--itinerary-muted:#76665f;--itinerary-header-height:80px}
.booking-page .booking-header{position:sticky;top:0;z-index:40;max-width:none;height:80px;min-height:80px;padding:10px max(32px,calc((100vw - 1216px)/2));background:var(--wine);border:0;color:var(--ivory)}
.booking-page .booking-brand,.booking-page .booking-brand small,.booking-page .booking-exit{color:var(--ivory)}
.booking-page .booking-brand>span{font-size:28px}
.booking-page .booking-brand>small{font-size:9px}
.booking-page .booking-exit{font-size:11px}
.booking-page .booking-header :focus-visible{outline-color:var(--ivory)}
.booking-page .booking{max-width:1280px;padding-inline:32px}
.booking-page .booking-progress{min-height:60px;padding:5px 0;border-bottom:1px solid var(--itinerary-line);margin-bottom:24px}
.booking-page .booking-progress ol,.booking-page .booking-progress li{gap:20px}
.booking-page .booking-progress button{font-size:12px;gap:8px}
.booking-page .booking-progress button>span{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#43212d0c;font-size:10px}
.booking-page .booking-progress button[aria-current=step]>span{background:var(--wine);color:var(--ivory)}
.booking-page .booking-progress button::after{display:none}
.booking-page .booking-step>.booking-heading{margin-bottom:24px}
.booking-page .booking-heading h1{font-size:clamp(32px,3vw,44px);line-height:1.08}
.booking-page .booking-heading .booking-eyebrow{margin-bottom:8px;font-size:9px}
.booking-page .booking-rooms-layout{grid-template-columns:minmax(0,1fr) 340px;gap:32px}
.booking-page .booking-results>.booking-heading{margin-bottom:18px}
.booking-page .booking-results>.booking-heading h1{font-size:30px;letter-spacing:-.015em}
.booking-page .booking-results .booking-stay-strip{min-height:64px;padding:10px 18px;margin:0 0 20px;border:1px solid var(--itinerary-line);background:var(--itinerary-surface);border-radius:6px}
.booking-page .booking-results .booking-stay-strip>p{font-size:12px;line-height:1.65}
.booking-page .booking-results .booking-room-list{gap:16px}
.booking-page .booking-results .booking-room{grid-template-columns:38% minmax(0,1fr);border:1px solid var(--itinerary-line);border-radius:6px;background:var(--itinerary-surface)}
.booking-page .booking-results .booking-room__photo{min-height:240px}
.booking-page .booking-results .booking-room__body{padding:18px 20px 8px}
.booking-page .booking-results .booking-room__body h2{font-size:29px;margin-bottom:8px}
.booking-page .booking-results .booking-room__teaser{font-size:12px;line-height:1.6}
.booking-page .booking-results .booking-room__facts{font-size:10px}
.booking-page .booking-results .booking-room__actions{margin-inline:20px;padding:12px 0 16px;gap:12px}
.booking-page .booking-results .booking-room__price>strong{font-size:27px}
.booking-page .booking-results .booking-room__price>small,.booking-page .booking-results .booking-room__price>p,.booking-page .booking-results .booking-room__price>span{font-size:10px}
.booking-page .booking-results .booking-room__choose{min-height:44px;min-width:100px;padding:10px 14px;border-radius:4px;font-size:11px}
.booking-page .booking-basket{top:104px;max-height:calc(100dvh - 128px);padding:20px;border-color:var(--itinerary-line);border-radius:6px;background:var(--itinerary-surface)}

/* Each room is a unit with its own travellers, not a category quantity. */
.itinerary-cart{min-width:0;color:var(--wine)}
.itinerary-cart__head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:0 0 15px;border-bottom:1px solid var(--itinerary-line)}
.itinerary-cart__head h2{margin:0;font:500 13px/1.5 var(--sans);color:var(--wine)}
.itinerary-cart__head small{font:400 10px/1.5 var(--sans);color:var(--itinerary-muted)}
.itinerary-stay{padding:12px 0 6px;border-bottom:1px solid var(--itinerary-line);min-width:0}
.itinerary-stay__head{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}
.itinerary-stay__head>div{min-width:0}
.itinerary-stay__head h3{margin:0;font:500 11px/1.5 var(--sans)}
.itinerary-stay__head h3 .itinerary-link{min-height:28px;padding:3px 0;text-decoration:none;font-size:11px;font-weight:500}
.itinerary-stay.is-active .itinerary-stay__head h3 .itinerary-link::before{content:'';width:5px;height:5px;background:var(--brick);border-radius:50%;margin-right:6px}
.itinerary-stay__head p{font:500 12px/1.6 var(--sans);margin:0;color:var(--wine)}
.itinerary-stay__head small{display:block;font:400 10px/1.6 var(--sans);color:var(--itinerary-muted);margin-top:3px}
.itinerary-link{display:inline-flex;align-items:center;min-height:44px;padding:7px 0;border:0;background:transparent;color:var(--brick);font:400 11px/1.5 var(--sans);text-align:left;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;cursor:pointer}
.itinerary-link:disabled{opacity:.45;cursor:default}
.itinerary-room{display:grid;grid-template-columns:44px minmax(0,1fr);gap:3px 10px;position:relative;min-width:0;padding:13px 0 0}
.itinerary-room>img{grid-column:1;grid-row:1/3;width:44px;height:56px;object-fit:cover;border-radius:3px;background:var(--booking-sand)}
.itinerary-room__body{grid-column:2;min-width:0}
.itinerary-room h4{margin:0;color:var(--wine);font:500 13px/1.5 var(--sans);overflow-wrap:anywhere}
.itinerary-room h4 small{display:block;font:400 10px/1.5 var(--sans);color:var(--itinerary-muted)}
.itinerary-room p{font:400 11px/1.6 var(--sans);color:var(--itinerary-muted);margin:2px 0 0}
.itinerary-room__actions{display:flex;gap:18px;flex-wrap:wrap;margin-top:0}
.itinerary-room__actions .itinerary-link{font-size:10px;min-height:36px}
.itinerary-room__price{grid-column:2;grid-row:2;font:500 13px/1.5 var(--sans);color:var(--brick);margin:0 0 2px}
.itinerary-stay__add{display:flex;flex-wrap:wrap;gap:0 16px}
.itinerary-stay__add .itinerary-link{font-size:10px}
.itinerary-cart__add{padding:6px 0}
.itinerary-cart__add .itinerary-link{font-size:11px}
.itinerary-empty{padding:10px 0;font:400 12px/1.7 var(--sans);color:var(--itinerary-muted)}
.itinerary-extras{list-style:none;margin:10px 0 0;padding:10px 0 0;border-top:1px dashed var(--itinerary-line)}
.itinerary-extras li{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:5px 0;font:400 11px/1.5 var(--sans);color:var(--itinerary-muted)}
.itinerary-extras li>span{min-width:0}
.itinerary-extras small{display:block;font-size:10px;margin-top:2px}
.itinerary-extras strong{flex:none;max-width:48%;font-size:11px;font-weight:500;color:var(--wine);text-align:right}
.itinerary-total{display:flex;align-items:baseline;justify-content:space-between;gap:10px;border-top:1px solid var(--itinerary-line);padding-top:17px;margin-top:6px}
.itinerary-total>span{font:400 11px/1.6 var(--sans);color:var(--wine)}
.itinerary-total small{display:block;font-size:10px;color:var(--itinerary-muted);margin-top:3px}
.itinerary-total>strong{font:500 30px/1.15 var(--serif);color:var(--brick);white-space:nowrap;font-variant-numeric:tabular-nums}
.itinerary-estimate,.itinerary-included,.itinerary-incomplete{font:400 10px/1.65 var(--sans);color:var(--itinerary-muted);margin-top:12px}
.itinerary-incomplete{color:var(--brick)}
.itinerary-included{margin-top:16px}
.itinerary-cart .itinerary-proceed{width:100%;min-height:46px;font-size:12px;margin-top:16px;border-radius:4px}
.itinerary-cart :is(button,summary):focus-visible,.itinerary-recap__toggle:focus-visible{outline:2px solid var(--brick);outline-offset:3px}

/* At checkout the compact summary follows the form on desktop. Its mobile
   counterpart precedes the form and only becomes floating after it passes. */
.booking-page .booking-review__layout{grid-template-columns:minmax(0,1fr) 340px;gap:28px;margin:0;padding-bottom:40px;max-width:none}
.booking-page .booking-review__stay{grid-column:2;grid-row:1;position:sticky;top:104px;min-width:0;padding:22px;border:1px solid var(--itinerary-line);border-radius:6px;background:var(--itinerary-surface);max-height:calc(100dvh - 128px);overflow-y:auto;scrollbar-width:thin}
.booking-page .booking-review__layout .booking-request-form{grid-column:1;grid-row:1;position:static;min-width:0;padding:24px;border:1px solid var(--itinerary-line);border-radius:6px;background:var(--itinerary-surface);color:var(--wine)}
.booking-page .booking-request-form h2{font:400 30px/1.15 var(--serif);color:var(--wine);margin-bottom:8px}
.booking-page .booking-request-form>p:not(.booking-error):not(.booking-form-note){font-size:12px;color:var(--itinerary-muted);margin-bottom:18px}
.booking-page .booking-request-form>p.booking-form-notice{background:#43212d05;border-left:2px solid #8d38355c;color:var(--itinerary-muted);padding:10px 12px;font-size:11px}
.booking-page .booking-request-form .booking-form-field>span{color:var(--wine);font-size:12px}
.booking-page .booking-request-form .booking-form-field small,.booking-page .booking-request-form>small,.booking-page .booking-request-form__footer>p{color:var(--itinerary-muted)}
.booking-page .booking-request-form .booking-form-field :is(input,textarea){min-height:46px;padding:11px 12px;border:1px solid #43212d30;border-radius:4px;background:#fffdf8;color:var(--wine);font-size:16px}
.booking-page .booking-request-form .booking-form-field :is(input,textarea)::placeholder{color:#8d7d71}
.booking-page .booking-request-form .booking-form-field :is(input,textarea)[aria-invalid=true]{border-color:#a1433b;background:#fff4ee;box-shadow:none}
.booking-page .booking-request-form .booking-field-error,.booking-page .booking-request-form .booking-error{color:#922b29}
.booking-page .booking-request-form>details>summary{color:var(--wine);border-color:var(--itinerary-line)}
.booking-page .booking-request-form .booking-primary{min-height:48px;background:var(--brick);border-color:var(--brick);color:var(--ivory);border-radius:4px;font-size:13px}
.booking-page .booking-request-form .booking-primary:hover:not(:disabled){background:#732d2e}
.booking-page .booking-request-form .booking-primary:disabled{background:#e6dbcb;border-color:#d1bdac;color:#816e60}
.booking-page .booking-request-form :is(button,input,textarea,summary):focus-visible{outline:2px solid var(--brick);outline-offset:3px}
.booking-page .booking-review__stay :is(#review-summary,#review-costs,.booking-review__edits),.booking-page #review-cart+.booking-link{display:none}
.itinerary-top-recap,.itinerary-floating-recap{display:none}
.itinerary-recap__toggle{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:88px;padding:13px 20px;border:0;background:transparent;color:var(--wine);text-align:left;list-style:none;cursor:pointer}
.itinerary-recap__toggle::-webkit-details-marker{display:none}
.itinerary-recap__overview{display:block;min-width:0}
.itinerary-recap__overview>span{display:block;font:400 10px/1.5 var(--sans);color:var(--itinerary-muted)}
.itinerary-recap__overview>strong{display:block;font:500 29px/1.1 var(--serif);color:var(--brick);margin-top:2px;font-variant-numeric:tabular-nums}
.itinerary-recap__overview>small{display:block;font:400 10px/1.6 var(--sans);color:var(--itinerary-muted);margin-top:4px}
.itinerary-recap__scope{display:none}
.itinerary-recap__chevron{flex:none;display:grid;place-items:center;width:28px;height:28px;font-size:22px;transition:transform .18s ease}
details[open]>.itinerary-recap__toggle .itinerary-recap__chevron,.itinerary-recap__toggle[aria-expanded=true] .itinerary-recap__chevron{transform:rotate(180deg)}
.itinerary-recap__body{border-top:1px solid var(--itinerary-line);padding:4px 20px 20px}
.itinerary-recap__body .itinerary-cart__head{display:none}
.itinerary-recap__body .itinerary-included{display:none}
.itinerary-recap__body .itinerary-room{grid-template-columns:44px minmax(0,1fr) auto}
.itinerary-recap__body .itinerary-room__price{grid-column:3;grid-row:1;font-size:12px;white-space:nowrap}

/* Add/remove are deliberate native dialogs with explicit target context. */
.itinerary-action-dialog{position:fixed;inset:0;width:min(520px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);margin:auto;padding:0;border:1px solid var(--itinerary-line);border-radius:8px;background:var(--ivory);color:var(--wine);overflow:auto;color-scheme:light}
.itinerary-action-dialog::backdrop{background:#2c16166b;backdrop-filter:blur(2px)}
.itinerary-action-dialog>header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:22px 24px 12px}
.itinerary-action-dialog h2{font:400 30px/1.1 var(--serif);letter-spacing:-.015em;margin:0;max-width:340px}
.itinerary-close{display:grid;place-items:center;flex:none;width:44px;height:44px;margin-top:-7px;border:0;background:transparent;color:var(--wine);font-size:26px}
.itinerary-action-body{padding:8px 24px 24px}
.itinerary-action-body>p{font:400 12px/1.75 var(--sans);color:var(--itinerary-muted);margin-bottom:15px}
.itinerary-removal-scope{padding:15px 0;border-block:1px solid var(--itinerary-line)}
.itinerary-removal-scope>strong,.itinerary-removal-scope>span,.itinerary-removal-scope>small{display:block}
.itinerary-removal-scope>strong{font:400 26px/1.2 var(--serif);color:var(--wine);margin-bottom:7px}
.itinerary-removal-scope>small{font-size:11px;margin-top:4px}
.itinerary-dialog-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:25px}
.itinerary-dialog-actions .booking-primary{font-size:12px;min-height:46px;padding:12px 16px;border-radius:4px}
.itinerary-choice{display:flex;align-items:center;justify-content:space-between;gap:20px;text-align:left;width:100%;min-height:76px;margin-bottom:10px;padding:16px;border:1px solid var(--itinerary-line);background:var(--itinerary-surface);color:var(--wine);border-radius:4px}
.itinerary-choice strong{display:block;font:500 13px/1.5 var(--sans)}
.itinerary-choice small{display:block;font:400 11px/1.6 var(--sans);color:var(--itinerary-muted);margin-top:4px}
.itinerary-choice:hover{border-color:var(--brick)}
.itinerary-choice:disabled{opacity:.45;cursor:default}
.itinerary-action-dialog :focus-visible{outline:2px solid var(--brick);outline-offset:3px}

@media(min-width:1024px) and (max-width:1199px){
 .booking-page .booking-rooms-layout,.booking-page .booking-review__layout{grid-template-columns:minmax(0,1fr) 310px;gap:24px}
 .booking-page .booking-results .booking-room{grid-template-columns:34% minmax(0,1fr)}
 .booking-page .booking-results .booking-room__body{padding-inline:16px}
 .booking-page .booking-results .booking-room__actions{margin-inline:16px;flex-wrap:wrap}
 .booking-page .booking-review__stay{padding:18px}
}
@media(max-width:1023px){
 .booking-page{--itinerary-header-height:68px}
 .booking-page .booking-header{height:68px;min-height:68px;padding:8px 24px}
 .booking-page .booking{max-width:920px;padding-inline:24px}
 .booking-page .booking-rooms-layout{display:block}
 .booking-page .booking-review__layout{display:block;max-width:760px;margin-inline:auto}
 .booking-page .booking.has-itinerary-recap .booking-review__stay{display:none}
 .booking-page .booking-review__layout .booking-request-form{padding:24px;margin:0}
 .booking-page .booking-review>.booking-heading{margin:22px auto 20px;max-width:760px}
 .itinerary-top-recap:not([hidden]){display:block;margin:0 -24px 22px;border-block:1px solid var(--itinerary-line);background:var(--booking-sand);scroll-margin-top:calc(var(--itinerary-header-height) + 12px)}
 .itinerary-top-recap .itinerary-recap__toggle,.itinerary-top-recap .itinerary-recap__body{max-width:808px;margin-inline:auto;padding-inline:24px}
 .itinerary-floating-recap:not([hidden]){display:block;position:fixed;top:var(--itinerary-header-height);inset-inline:0;z-index:30;background:var(--ivory);border-bottom:1px solid var(--itinerary-line);box-shadow:0 5px 20px #43212d0a;max-height:calc(100dvh - var(--itinerary-header-height) - 24px);overflow:hidden}
 .itinerary-floating-recap>.itinerary-recap__toggle{max-width:808px;min-height:62px;margin-inline:auto;padding:8px 24px;gap:10px}
 .itinerary-floating-recap .itinerary-recap__overview{display:grid;grid-template-columns:auto auto;justify-content:start;align-items:baseline;gap:3px 10px}
 .itinerary-floating-recap .itinerary-recap__overview>span{font-size:10px;line-height:1.4}
 .itinerary-floating-recap .itinerary-recap__overview>strong{font-size:22px;line-height:1.1;margin:0;white-space:nowrap}
 .itinerary-floating-recap .itinerary-recap__overview>small{grid-column:1/-1;margin:0;font-size:10px;line-height:1.5}
 .itinerary-floating-recap>.itinerary-recap__body{max-width:808px;margin-inline:auto;padding-inline:24px;max-height:calc(100dvh - var(--itinerary-header-height) - 88px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
 .booking-page #basket-mobile-content .itinerary-room{grid-template-columns:48px minmax(0,1fr) auto}
 .booking-page #basket-mobile-content .itinerary-room__price{grid-column:3;grid-row:1;font-size:12px}
 .booking-page #basket-mobile-content .itinerary-room>img{width:48px;height:58px}
}
@media(max-width:767px){
 .booking-page{--itinerary-header-height:60px}
 .booking-page .booking-header{height:60px;min-height:60px;padding:7px 16px;gap:16px}
 .booking-page .booking-brand>span{font-size:25px}
 .booking-page .booking-brand>small{font-size:8px}
 .booking-page .booking-exit{font-size:10px;gap:8px}
 .booking-page .booking{width:100%;max-width:none;padding-inline:16px}
 .booking-page .booking-progress{min-height:54px;padding:4px 0;margin-bottom:18px}
 .booking-page .booking-progress ol{width:100%;gap:9px;justify-content:center}
 .booking-page .booking-progress li{gap:9px}
 .booking-page .booking-progress li+li::before{width:15px}
 .booking-page .booking-progress button{font-size:10px;gap:5px;white-space:nowrap}
 .booking-page .booking-progress button>span{width:22px;height:22px;font-size:9px}
 .booking-page .booking-results>.booking-heading{margin-bottom:12px}
 .booking-page .booking-results>.booking-heading h1{font-size:28px}
 .booking-page .booking-results>.booking-heading .booking-eyebrow{display:none}
 .booking-page .booking-results .booking-stay-strip{min-height:56px;padding:8px 12px;margin-bottom:18px;gap:10px}
 .booking-page .booking-results .booking-stay-strip>p{font-size:11px}
 .booking-page .booking-results .booking-room-list{gap:12px}
 .booking-page .booking-results .booking-room{grid-template-columns:104px minmax(0,1fr);grid-template-rows:auto auto}
 .booking-page .booking-results .booking-room__photo{grid-column:1;grid-row:1;min-height:128px;width:100%;height:100%}
 .booking-page .booking-results .booking-room__count{font-size:8px;padding:4px 5px;right:6px;bottom:6px}
 .booking-page .booking-results .booking-room__body{grid-column:2;grid-row:1;padding:13px 12px 7px}
 .booking-page .booking-results .booking-room__body h2{font-size:26px;line-height:1.05;margin:0 0 7px}
 .booking-page .booking-results .booking-room__teaser{display:none}
 .booking-page .booking-results .booking-room__facts{font-size:10px;line-height:1.6}
 .booking-page .booking-results .booking-room__body>.booking-link{font-size:10px;min-height:40px;padding:7px 0;margin:0}
 .booking-page .booking-results .booking-room__actions{grid-column:1/-1;grid-row:2;display:flex;flex-wrap:nowrap;align-items:center;gap:10px;margin:0;padding:11px 12px}
 .booking-page .booking-results .booking-room__price{border:0;padding:0;flex:1}
 .booking-page .booking-results .booking-room__price>strong{font-size:24px}
 .booking-page .booking-results .booking-room__price>small,.booking-page .booking-results .booking-room__price>.label{font-size:9px;margin-bottom:3px}
 .booking-page .booking-results .booking-room__price>p,.booking-page .booking-results .booking-room__price>span{font-size:9px;margin-top:3px;line-height:1.5}
 .booking-page .booking-results .booking-room__choose{min-width:98px;max-width:135px;min-height:44px;padding:10px 13px;font-size:11px}
 .booking-page .booking-review>.booking-heading{margin:18px 0}
 .booking-page .booking-review>.booking-heading h1{font-size:31px}
 .booking-page .booking-review__layout .booking-request-form{padding:20px 16px}
 .booking-page .booking-request-form h2{font-size:28px}
 .booking-page .booking-request-form .booking-form-field{margin-top:15px}
 .booking-page .booking-request-form .booking-form-field :is(input,textarea){font-size:16px;min-height:46px}
 .booking-page .booking-request-form__footer{margin-top:20px}
 .itinerary-top-recap:not([hidden]){margin:0 -16px 18px}
 .itinerary-top-recap .itinerary-recap__toggle,.itinerary-top-recap .itinerary-recap__body,.itinerary-floating-recap>.itinerary-recap__toggle,.itinerary-floating-recap>.itinerary-recap__body{padding-inline:16px}
 .itinerary-recap__overview>small{font-size:10px}
 .itinerary-recap__body .itinerary-room__actions .itinerary-link,#basket-mobile-content .itinerary-room__actions .itinerary-link{min-height:44px}
 .itinerary-stay__head h3 .itinerary-link{min-height:36px}
 .itinerary-action-dialog{inset:auto 0 0;width:100%;max-height:calc(100dvh - 16px);margin:0;border-radius:12px 12px 0 0;border-bottom:0}
 .itinerary-action-dialog>header{padding:22px 20px 8px}
 .itinerary-action-dialog h2{font-size:29px}
 .itinerary-action-body{padding:8px 20px max(24px,env(safe-area-inset-bottom))}
 .itinerary-dialog-actions{gap:14px}
 .itinerary-dialog-actions>.itinerary-link{font-size:11px}
 .booking-page #booking-basket-dialog>header{padding:16px 20px}
 .booking-page #booking-basket-dialog>header h2{font-size:29px}
 .booking-page #basket-mobile-content{padding-inline:20px}
}
@media(max-width:359px){
 .booking-page .booking-progress ol,.booking-page .booking-progress li{gap:5px}
 .booking-page .booking-progress li+li::before{width:9px}
 .booking-page .booking-progress button{font-size:9px}
 .booking-page .booking-results .booking-room{grid-template-columns:94px minmax(0,1fr)}
 .booking-page .booking-results .booking-room__body h2{font-size:24px}
 .itinerary-recap__body .itinerary-room,#basket-mobile-content .itinerary-room{grid-template-columns:44px minmax(0,1fr)}
 .itinerary-recap__body .itinerary-room__price,.booking-page #basket-mobile-content .itinerary-room__price{grid-column:2;grid-row:2}
 .itinerary-recap__overview>small{max-width:245px;font-size:9px}
 .itinerary-dialog-actions{flex-direction:column-reverse;align-items:stretch;gap:8px}
 .itinerary-dialog-actions>.itinerary-link{justify-content:center}
}
@media(min-width:520px){.itinerary-recap__scope{display:inline}}
@media(prefers-reduced-motion:reduce){.itinerary-recap__chevron{transition:none}}

/* Journey controls: a compact reservation interface, shared with the public calendar. */
.booking-page{--booking-gutter:32px}
.booking-page .booking-heading h1{font-size:clamp(32px,3.2vw,44px);margin-top:8px}
.booking-heading{margin-bottom:22px}
.booking-header{position:sticky;top:0;z-index:25;background:var(--wine);color:var(--ivory);max-width:none;min-height:80px;padding-block:10px}
.booking-header :is(.booking-brand,.booking-exit){color:var(--ivory)}
.booking-progress{min-height:60px;padding-block:6px}
.booking{max-width:1344px}
.booking-stay-strip>p small{display:block;font-size:10px;margin-top:2px}
.booking-dates{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}
.journey-intro{padding:30px;border:1px solid var(--booking-line);min-height:340px;display:flex;flex-direction:column;align-items:flex-start;gap:24px}
.journey-intro>p{font-size:15px;line-height:1.8;max-width:48ch}
.journey-intro dl{display:grid;gap:16px}
.journey-intro dt{font-size:11px;color:var(--booking-muted)}
.journey-intro dd{font:400 24px/1.3 var(--serif);margin:5px 0 0}
.journey-intro>small{font-size:11px;line-height:1.7;color:var(--booking-muted)}
.journey-intro__action{display:grid;gap:3px}
.booking-request-form__footer .booking-rating{margin-top:3px}
.booking-page .booking-primary{min-height:46px;padding:11px 18px;gap:16px;background:var(--wine);border-color:var(--wine)}
.booking-page .booking-primary:disabled{background:#43212d12;border-color:#43212d20;color:#76666a}
.booking-page .booking-actionbar{padding-block:6px max(6px,env(safe-area-inset-bottom));gap:18px;z-index:20}
.booking-actionbar>.booking-primary{min-width:160px}
.booking-page .booking-actionbar__summary strong{font-size:22px}
.booking-page .booking-actionbar__summary>span{font-size:10px}
.booking-page .booking-actionbar .booking-primary{min-height:44px;padding-block:8px}
.booking-page .booking-request-form{padding:24px;border:1px solid var(--booking-line);background:#fffaf16b;color:var(--wine)}
.booking-page .booking-request-form :is(h2,label,span,summary,p,small){color:inherit}
.booking-page .booking-request-form h2{font-size:28px;margin-bottom:10px}
.booking-page .booking-request-form>p{color:var(--booking-muted);margin-bottom:20px}
.booking-page .booking-request-form .booking-form-field{margin-bottom:15px;gap:6px}
.booking-page .booking-request-form :is(input,textarea,select){background:#fffcf7;color:var(--wine);border:1px solid #43212d42;border-radius:0;min-height:44px;padding:10px 12px;font:400 14px/1.5 var(--sans);box-shadow:none}
.booking-page .booking-request-form :is(input,textarea)::placeholder{color:#817079}
.booking-page .booking-request-form .booking-primary{background:var(--wine);color:var(--ivory);border-color:var(--wine)}
.booking-page .booking-request-form .booking-primary:disabled{background:#43212d12;color:#76666a;border-color:#43212d20}
.booking-page .booking-request-form :is(button,input,textarea,select,summary):focus-visible{outline:2px solid var(--wine);outline-offset:3px}
.booking-page .booking-request-form .booking-form-notice{border:1px solid var(--booking-line);background:#f0e5d370;color:var(--wine);padding:12px;font-size:12px;line-height:1.7}
.booking-page .booking-request-form .booking-field-error,.booking-page .booking-request-form .booking-error{color:#922b29}
#booking-preferences{padding-top:10px}
.journey-flight{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}
.journey-transfer{display:grid;grid-template-columns:22px minmax(0,1fr);align-content:center;align-items:center;column-gap:10px;min-height:44px;font-size:12px;line-height:1.6;cursor:pointer}
.booking-page .booking-request-form .journey-transfer>input{width:20px;height:20px;min-height:20px;margin:0;padding:0;appearance:auto;accent-color:var(--wine)}
.journey-transfer>small{grid-column:2;font-size:10px;color:var(--booking-muted)!important;line-height:1.5;margin-top:4px}
.journey-dialog{width:min(520px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:24px;border:1px solid var(--booking-line);background:var(--ivory);color:var(--wine);overflow:auto}
.journey-dialog::backdrop{background:#29151dcc;backdrop-filter:blur(3px)}
.journey-dialog>header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}
.journey-dialog h2{font:400 32px/1.1 var(--serif);margin:0}
.journey-dialog .booking-icon{color:var(--wine)}
.journey-dialog>p{font-size:13px;line-height:1.7;margin-bottom:16px}
.journey-dialog__actions{display:flex;flex-direction:column;align-items:stretch;gap:8px}
.journey-dialog__actions .booking-link{justify-content:center;text-align:center;font-size:12px}
.journey-room-guests{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;border:1px solid var(--booking-line);padding:18px;margin-top:24px}
.journey-room-guests legend{font-size:12px;padding-inline:8px}
.journey-room-guests label{display:flex;flex-direction:column;gap:8px;font-size:12px}
.journey-room-guests input{min-width:0;width:100%;min-height:44px;padding:10px;border:1px solid var(--booking-line);background:var(--ivory);color:var(--wine);font:400 16px/1.4 var(--sans)}
.journey-room-guests small{grid-column:1/-1;font-size:10px;line-height:1.6;color:var(--booking-muted)}
.booking-dialog__top{padding-block:14px}
.booking-dialog__top h2{font-size:30px}
.booking-dialog__footer{padding-block:12px}
.journey-success-total{font-size:16px;padding:20px 0;border-top:1px solid var(--booking-line)}
@media(max-width:1023.98px){.booking-page{--booking-gutter:24px}.booking-header{min-height:68px}.booking-dates{grid-template-columns:1fr 1fr}}
@media(max-width:699.98px){
 .booking-page{--booking-gutter:16px}
 .booking-header{height:calc(60px + env(safe-area-inset-top));min-height:calc(60px + env(safe-area-inset-top));padding:calc(6px + env(safe-area-inset-top)) 16px 6px;gap:12px}
 .booking-brand{min-height:44px;gap:0;justify-content:center}
 .booking-brand>span{font-size:24px;line-height:1.1}
 .booking-brand>small{display:none}
 .booking-exit{font-size:10px;gap:8px;min-height:44px}
 .booking-progress{min-height:54px;padding-block:4px}
 .booking-progress ol,.booking-progress li{gap:12px}
 .booking-progress li+li::before{width:12px}
 .booking-progress button{font-size:10px;gap:5px}
 .booking-page .booking-heading h1{font-size:34px;margin-top:8px}
 .booking-results .booking-stay-strip{display:flex;flex-direction:row;align-items:center;gap:8px;padding:8px 11px;margin-bottom:18px}
 .booking-results .booking-stay-strip>p{flex:1;min-width:0;font-size:11px}
 .booking-results .booking-stay-strip>.booking-link{flex:none;align-self:center;margin:0;font-size:10px}
 .booking-heading{margin-bottom:18px}
 .booking-heading>p:last-child:not(.booking-eyebrow){font-size:12px;line-height:1.7}
 .booking-dates{display:block}.booking-dates .booking-scene{display:none}
 .journey-intro{padding:22px;min-height:0;gap:20px}
 .journey-intro>p{font-size:13px}.journey-intro dd{font-size:22px}
 .booking-page .booking-actionbar{gap:12px;margin-top:8px;padding:5px 0 max(5px,env(safe-area-inset-bottom));display:flex}
 .booking-page .booking-actionbar__summary{display:none}
 .booking-page #booking-basket-toggle{min-width:0;flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:44px;font-size:10px;padding:3px 0;text-decoration:none}
 .booking-page #booking-basket-toggle strong{font:400 20px/1.1 var(--serif)}
 .booking-page #booking-basket-toggle span{font:400 10px/1.4 var(--sans)}
 .booking-page .booking-actionbar>.booking-primary{min-width:122px;flex:0 0 auto;font-size:12px;padding:9px 13px}
 .booking-page .booking-request-form{padding:18px 16px}.booking-page .booking-request-form h2{font-size:27px}
 .booking-page .booking-request-form :is(input,textarea,select){font-size:16px}
 .journey-flight{grid-template-columns:minmax(0,1fr)}
 .journey-dialog{padding:18px;width:calc(100vw - 24px)}.journey-dialog h2{font-size:28px}
 .booking-dialog__top h2{font-size:28px}.booking-dialog__top{padding:12px 16px}
 .booking-dialog__footer{gap:10px;padding:10px 16px max(10px,env(safe-area-inset-bottom))}
 .booking-dialog__footer>p{font-size:11px}.booking-dialog__footer>.booking-primary{font-size:12px;padding:10px 12px;min-height:44px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
