/* ==========================================================================
   Hotel Lotus theme: main stylesheet
   Ported from the Astro static design (Astro scoped attributes removed).
   ========================================================================== */


/* --- Fonts --- */
@font-face{font-family:Urbanist;src:url("../fonts/urbanist-variable.woff2") format("woff2");font-display:swap;font-weight:100 900;font-style:normal}
@font-face{font-family:Urbanist;src:url("../fonts/urbanist-variable-italic.woff2") format("woff2");font-display:swap;font-weight:100 900;font-style:italic}
@font-face{font-family:"Urbanist fallback";src:local("Arial");font-display:swap;font-weight:100 900;font-style:normal;size-adjust:99.0353%;ascent-override:95.9254%;descent-override:25.2435%;line-gap-override:0%}
@font-face{font-family:"Urbanist fallback";src:local("Arial");font-display:swap;font-weight:100 900;font-style:italic;size-adjust:99.0353%;ascent-override:95.9254%;descent-override:25.2435%;line-gap-override:0%}
:root{--font-urbanist:Urbanist,"Urbanist fallback",system-ui,sans-serif}
/* --- Base layout: tokens, reset, typography, header, menu, footer, mobile bar, buttons, utilities --- */
:root{--navy-950:#111b25;--navy-900:#1c2b3a;--navy-800:#26394b;--navy-700:#314a60;--slate-600:#4f6880;--slate-500:#687f95;--slate-300:#a9b7c4;--slate-200:#cbd5de;--slate-100:#e7ecf0;--clay-700:#7a5843;--clay-600:#8c6650;--clay-500:#b68d74;--clay-400:#c6a38e;--clay-200:#e6d4c8;--clay-100:#f3eae3;--olive-600:#8f8550;--olive-700:#6f6838;--olive-500:#beb177;--olive-300:#d8cfa6;--olive-100:#efebd8;--paper:#f6f3ee;--linen:#ece6dd;--stone:#e2dad0;--white:#fffdfa;--ink:#1e1e1e;--color-bg:var(--paper);--color-surface:var(--white);--color-surface-alt:var(--linen);--color-heading:var(--navy-900);--color-text:#3b4550;--color-text-muted:#5d6873;--color-line:#1c2b3a24;--color-line-strong:#1c2b3a47;--color-accent:var(--clay-500);--color-link:var(--slate-600);--color-focus:var(--slate-600);--on-dark-heading:#f6f1ea;--on-dark-text:#f6f1ead1;--on-dark-muted:#f6f1ea9e;--on-dark-line:#f6f1ea29;--on-dark-accent:var(--olive-500);--font-sans:var(--font-urbanist), "Urbanist", system-ui, -apple-system, "Segoe UI", sans-serif;--step--2:.75rem;--step--1:clamp(.8125rem, .79rem + .1vw, .875rem);--step-0:clamp(1rem, .96rem + .2vw, 1.125rem);--step-1:clamp(1.125rem, 1.05rem + .38vw, 1.375rem);--step-2:clamp(1.375rem, 1.2rem + .8vw, 1.875rem);--step-3:clamp(1.75rem, 1.42rem + 1.6vw, 2.75rem);--step-4:clamp(2.25rem, 1.6rem + 3vw, 4.5rem);--step-5:clamp(2.75rem, 1.7rem + 5vw, 6.5rem);--step-6:clamp(3.1rem, 1.6rem + 7vw, 9rem);--leading-tight:.98;--leading-snug:1.12;--leading-normal:1.6;--tracking-display:-.035em;--tracking-heading:-.02em;--tracking-label:.16em;--space-3xs:.25rem;--space-2xs:.5rem;--space-xs:.75rem;--space-s:1rem;--space-m:1.5rem;--space-l:2rem;--space-xl:clamp(2.5rem, 2rem + 2vw, 3.5rem);--space-2xl:clamp(3rem, 2.2rem + 4vw, 5.5rem);--space-3xl:clamp(4rem, 2.6rem + 7vw, 9rem);--section-y:clamp(5rem, 3.4rem + 8vw, 11rem);--gutter:clamp(1.25rem, .6rem + 3.6vw, 5rem);--max-wide:1760px;--max-content:1360px;--max-text:40rem;--max-text-narrow:32rem;--header-h:5.5rem;--header-h-compact:4.25rem;--radius-xs:2px;--radius-s:4px;--radius-m:10px;--radius-pill:999px;--shadow-s:0 1px 2px #111b250f, 0 2px 8px #111b250a;--shadow-m:0 10px 30px -12px #111b2538;--shadow-l:0 30px 80px -24px #111b2559;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-1:.16s;--dur-2:.32s;--dur-3:.65s;--dur-reveal:1.1s;color-scheme:light}
@media (width>=64rem){:root{--header-h:6rem}}
*,:before,:after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--header-h-compact) + 1rem);hanging-punctuation:first last}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{background:var(--color-bg);min-height:100vh;color:var(--color-text);font-family:var(--font-sans);font-size:var(--step-0);font-weight:420;line-height:var(--leading-normal);font-optical-sizing:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;overflow-x:clip}
/* Clip horizontal overflow at the page wrapper too: overflow-x on <body> propagates to the viewport, where mobile browsers still let the layout viewport grow to the widest box (header/menu end up off-screen). On <main> the clip really removes the overflow. */
main{overflow-x:clip}
[hidden]{display:none!important}
img,svg,video,picture{max-width:100%;display:block}
img{height:auto}
picture img{width:100%}
input,button,textarea,select{font:inherit;color:inherit;letter-spacing:inherit}
button{cursor:pointer;background:0 0;border:0;padding:0}
p,h1,h2,h3,h4,h5,h6,figure,blockquote,dl,dd{margin:0}
ul[role=list],ol[role=list]{margin:0;padding:0;list-style:none}
:where(p,li,dd,blockquote){text-wrap:pretty}
:where(h1,h2,h3,h4){text-wrap:balance}
h1,h2,h3,h4,.h1,.h2,.h3,.h4,.display{color:var(--color-heading);font-weight:340;line-height:var(--leading-snug);letter-spacing:var(--tracking-heading)}
.display{font-size:var(--step-5);line-height:var(--leading-tight);letter-spacing:var(--tracking-display);font-weight:300}
h1,.h1{font-size:var(--step-5);letter-spacing:var(--tracking-display);font-weight:300;line-height:1.02}
h2,.h2{font-size:var(--step-4);letter-spacing:var(--tracking-display);font-weight:320;line-height:1.04}
h3,.h3{font-size:var(--step-2);letter-spacing:-.01em;font-weight:500;line-height:1.2}
h4,.h4{font-size:var(--step-1);letter-spacing:-.005em;font-weight:600;line-height:1.3}
.h2--compact{font-size:var(--step-3);line-height:1.1}
.lead{font-size:var(--step-1);color:var(--color-text);font-weight:400;line-height:1.55}
.small{font-size:var(--step--1);line-height:1.55}
.muted{color:var(--color-text-muted)}
.eyebrow{font-size:var(--step--2);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--slate-600);align-items:center;gap:.75em;font-weight:650;line-height:1.4;display:inline-flex}
.eyebrow:before{content:"";background:var(--olive-500);border-radius:50%;flex:none;width:.5em;height:.5em}
.eyebrow--plain:before{display:none}
em,.italic{font-style:italic;font-weight:inherit}
strong,b{font-weight:650}
.prose>*+*{margin-top:1.1em}
.prose{max-width:var(--max-text)}
.prose p{line-height:1.7}
a{color:inherit;text-underline-offset:.22em;text-decoration-thickness:1px}
.prose a,a.link{color:var(--color-link);text-decoration:underline;text-decoration-color:color-mix(in srgb, currentColor 40%, transparent);transition:text-decoration-color var(--dur-1) ease}
.prose a:hover,a.link:hover{text-decoration-color:currentColor}
:focus{outline:none}
:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px;border-radius:2px}
.on-dark :focus-visible,[data-theme=dark] :focus-visible{outline-color:var(--olive-500)}
.site-header[data-variant=overlay]:not([data-scrolled]) :focus-visible,.phero--image :focus-visible,.hero__content :focus-visible{outline-color:#fff}
::selection{background:var(--clay-200);color:var(--navy-900)}
.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}
.skip-link{z-index:1000;background:var(--navy-900);color:#fff;border-radius:var(--radius-pill);transition:transform var(--dur-2) var(--ease-out);padding:.75rem 1.25rem;font-weight:600;position:fixed;top:.75rem;left:.75rem;transform:translateY(-200%)}
.skip-link:focus-visible{transform:none}
.container{width:min(100% - 2 * var(--gutter), var(--max-wide));margin-inline:auto}
.container--content{width:min(100% - 2 * var(--gutter), var(--max-content));margin-inline:auto}
.container--text{width:min(100% - 2 * var(--gutter), 48rem);margin-inline:auto}
.section{padding-block:var(--section-y);position:relative}
.section--tight{padding-block:var(--space-3xl)}
.section--flush-top{padding-top:0}
.section--linen{background:var(--linen)}
.section--white{background:var(--white)}
.section--navy{background:var(--navy-900);color:var(--on-dark-text)}
.on-dark{color:var(--on-dark-text)}
.on-dark :is(h1,h2,h3,h4,.h1,.h2,.h3,.display){color:var(--on-dark-heading)}
.on-dark .eyebrow{color:var(--on-dark-accent)}
.on-dark .muted{color:var(--on-dark-muted)}
.grid-12{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(1rem,2.4vw,2.5rem);display:grid}
.stack>*+*{margin-top:var(--stack-space,var(--space-m))}
.cluster{gap:var(--cluster-gap,var(--space-s));flex-wrap:wrap;align-items:center;display:flex}
.section-head{gap:var(--space-m) var(--space-xl);margin-bottom:var(--space-2xl);align-items:end;display:grid}
@media (width>=60rem){.section-head{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}
.section-head>:last-child{justify-self:end;max-width:30rem}}
.section-head .eyebrow{margin-bottom:var(--space-m)}
.rule{border:0;border-top:1px solid var(--color-line);margin:0}
.frame{border-radius:var(--radius-xs);position:relative;overflow:hidden}
.frame>picture,.frame>img,.frame picture img,.frame img{object-fit:cover;width:100%;height:100%}
.ratio-4x5{aspect-ratio:4/5}
.ratio-3x4{aspect-ratio:3/4}
.ratio-4x3{aspect-ratio:4/3}
.ratio-3x2{aspect-ratio:3/2}
.ratio-16x10{aspect-ratio:16/10}
.ratio-16x9{aspect-ratio:16/9}
.ratio-1x1{aspect-ratio:1}
.zoom img{transition:transform 1.2s var(--ease-out), filter var(--dur-3) ease}
@media (hover:hover) and (prefers-reduced-motion:no-preference){.zoom:hover img,a:hover>.zoom img,.zoom-trigger:hover .zoom img{transform:scale(1.045)}}
.icon{stroke:currentColor;fill:none;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:1.5rem;height:1.5rem}
.icon--sm{width:1.125rem;height:1.125rem}
.icon--lg{stroke-width:1.25px;width:2rem;height:2rem}
.btn{--btn-bg:var(--navy-900);--btn-fg:#fff;--btn-border:transparent;--btn-bg-hover:var(--navy-800);border-radius:var(--radius-pill);border:1px solid var(--btn-border);background:var(--btn-bg);min-height:3rem;color:var(--btn-fg);letter-spacing:.01em;white-space:nowrap;isolation:isolate;transition:background-color var(--dur-2) var(--ease-out), color var(--dur-2) var(--ease-out), border-color var(--dur-2) var(--ease-out), transform var(--dur-2) var(--ease-out), box-shadow var(--dur-2) ease;-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;gap:.6em;padding:.8em 1.6em;font-size:.9375rem;font-weight:620;line-height:1.1;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}
.btn:hover{background:var(--btn-bg-hover)}
.btn:active{transform:scale(.98)}
.btn .icon{stroke-width:1.75px;width:1.1em;height:1.1em;transition:transform var(--dur-2) var(--ease-out)}
.btn:hover .icon--arrow{transform:translate(3px)}
.btn--primary{--btn-bg:var(--clay-500);--btn-fg:var(--navy-900);--btn-bg-hover:var(--clay-400)}
.btn--dark{--btn-bg:var(--navy-900);--btn-fg:#fff;--btn-bg-hover:var(--navy-700)}
.btn--light{--btn-bg:var(--white);--btn-fg:var(--navy-900);--btn-bg-hover:var(--clay-100)}
.btn--outline{--btn-bg:transparent;--btn-fg:var(--navy-900);--btn-border:var(--color-line-strong);--btn-bg-hover:#1c2b3a0d}
.btn--outline:hover{border-color:var(--navy-900)}
.btn--ghost-light{--btn-bg:#ffffff14;--btn-fg:#fff;--btn-border:#ffffff80;--btn-bg-hover:#ffffff2e;-webkit-backdrop-filter:blur(6px)}
.btn--ghost-light:hover{border-color:#fff}
.btn--sm{min-height:2.5rem;padding:.6em 1.15em;font-size:.875rem}
.btn--lg{min-height:3.5rem;padding:1em 2em;font-size:1rem}
.btn--block{width:100%}
.text-link{letter-spacing:.01em;color:var(--navy-900);transition:background-size var(--dur-3) var(--ease-out), color var(--dur-2) ease;background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat;align-items:center;gap:.55em;padding-block:.35em;font-size:.9375rem;font-weight:620;text-decoration:none;display:inline-flex}
.text-link:hover{background-position:100% 100%;background-size:0 1px}
.text-link .icon{stroke-width:1.75px;width:1.05em;height:1.05em;transition:transform var(--dur-2) var(--ease-out)}
.text-link:hover .icon{transform:translate(3px)}
.on-dark .text-link{color:var(--on-dark-heading)}
.meta-list{font-size:var(--step--1);color:var(--color-text-muted);flex-wrap:wrap;gap:.35rem 1.1rem;margin:0;padding:0;list-style:none;display:flex}
.meta-list li{align-items:center;gap:.45em;display:inline-flex}
.meta-list .icon{width:1.05rem;height:1.05rem;color:var(--slate-600)}
.tag{border-radius:var(--radius-pill);color:var(--navy-900);letter-spacing:.04em;background:#fffdfaeb;align-items:center;gap:.4em;padding:.35em .8em;font-size:.75rem;font-weight:650;line-height:1.2;display:inline-flex}
.tag .icon{width:.95rem;height:.95rem}
.field{gap:.5rem;display:grid}
.field label,.field .field__label{font-size:var(--step--1);color:var(--navy-900);font-weight:620}
.field__hint{font-size:var(--step--1);color:var(--color-text-muted)}
.input{border:1px solid var(--color-line-strong);border-radius:var(--radius-s);background:var(--white);width:100%;min-height:3.25rem;color:var(--navy-900);transition:border-color var(--dur-1) ease, box-shadow var(--dur-1) ease;padding:.85rem 1rem;font-size:1rem;line-height:1.4}
.input::placeholder{color:#7d8791}
.input:hover{border-color:var(--slate-500)}
.input:focus-visible{border-color:var(--slate-600);outline:none;box-shadow:0 0 0 3px #4f688038}
textarea.input{resize:vertical;min-height:9rem}
.input[aria-invalid=true]{border-color:#a43f2f;box-shadow:0 0 0 3px #a43f2f1f}
.field__error{font-size:var(--step--1);color:#9a3a2b;align-items:center;gap:.4em;font-weight:560;display:flex}
.field__error:empty{display:none}
dialog{max-width:none;max-height:none;color:var(--color-text);background:0 0;border:0;padding:0}
dialog::backdrop{-webkit-backdrop-filter:blur(3px);background:#111b258c}
.icon-btn{border:1px solid var(--color-line-strong);width:3rem;height:3rem;color:var(--navy-900);transition:background-color var(--dur-2) ease, border-color var(--dur-2) ease, color var(--dur-2) ease, opacity var(--dur-2) ease;background:0 0;border-radius:50%;flex:none;place-items:center;display:inline-grid}
.icon-btn:hover{background:var(--navy-900);border-color:var(--navy-900);color:#fff}
.icon-btn:disabled{opacity:.35;pointer-events:none}
.icon-btn .icon{stroke-width:1.6px;width:1.25rem;height:1.25rem}
.on-dark .icon-btn{color:#fff;border-color:#ffffff59}
.on-dark .icon-btn:hover{color:var(--navy-900);background:#fff}
.index-num{font-size:var(--step--2);letter-spacing:.12em;color:var(--clay-700);font-variant-numeric:tabular-nums;font-weight:650}
.on-dark .index-num{color:var(--olive-500)}
@media (prefers-reduced-motion:no-preference){.js [data-reveal]{opacity:0;transition:opacity var(--dur-reveal) var(--ease-out), transform var(--dur-reveal) var(--ease-out);transition-delay:var(--reveal-delay,0s);transform:translateY(28px)}
.js [data-reveal].is-in{opacity:1;transform:none}
.js [data-reveal=image]{opacity:1;clip-path:inset(100% 0 0);transition:clip-path 1.3s var(--ease-out);transition-delay:var(--reveal-delay,0s);transform:none}
.js [data-reveal=image] img{transition:transform 1.8s var(--ease-out);transition-delay:var(--reveal-delay,0s);transform:scale(1.14)}
.js [data-reveal=image].is-in{clip-path:inset(0)}
.js [data-reveal=image].is-in img{transform:scale(1)}
.js [data-reveal=lines]{opacity:1;transform:none}
.js [data-reveal=lines] .line{margin-bottom:-.08em;padding-bottom:.08em;display:block;overflow:hidden}
.js [data-reveal=lines] .line>span{transition:transform 1.15s var(--ease-out);display:inline-block;transform:translateY(105%)}
.js [data-reveal=lines] .line:nth-child(2)>span{transition-delay:90ms}
.js [data-reveal=lines] .line:nth-child(3)>span{transition-delay:.18s}
.js [data-reveal=lines].is-in .line>span{transform:none}
[data-reveal-now=lines] .line{margin-bottom:-.08em;padding-bottom:.08em;display:block;overflow:hidden}
[data-reveal-now=lines] .line>span{animation:lotus-line-up 1.15s var(--ease-out) .1s both;display:inline-block}
[data-reveal-now=lines] .line:nth-child(2)>span{animation-delay:.19s}
[data-reveal-now=lines] .line:nth-child(3)>span{animation-delay:.28s}
@keyframes lotus-line-up{0%{transform:translateY(105%)}
}
@supports (animation-timeline:view()){[data-parallax] img{animation:linear both lotus-parallax view();animation-range:cover;scale:1.14}
@keyframes lotus-parallax{0%{translate:0 -5%}
to{translate:0 5%}
}}}
@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
@view-transition{navigation:auto}
@media (prefers-reduced-motion:no-preference){::view-transition-old(root){animation:.28s var(--ease-in-out) both lotus-vt-out}
::view-transition-new(root){animation:.52s var(--ease-out) both lotus-vt-in}
::view-transition-group(*){animation-duration:.65s;animation-timing-function:var(--ease-out)}
@keyframes lotus-vt-out{to{opacity:0}
}
@keyframes lotus-vt-in{0%{opacity:0;transform:translateY(12px)}
}
::view-transition-group(site-header){animation:none}}
@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}}
.site-header{--hdr-fg:var(--navy-900);--hdr-bg:#f6f3eef0;--hdr-line:var(--color-line);z-index:50;color:var(--hdr-fg);view-transition-name:site-header;transition:color var(--dur-2) ease;position:fixed;inset:0 0 auto}
.site-header:before{content:"";background:var(--hdr-bg);border-bottom:1px solid var(--hdr-line);-webkit-backdrop-filter:saturate(1.2)blur(14px);transition:opacity var(--dur-3) var(--ease-out);position:absolute;inset:0}
.site-header[data-variant=overlay]:not([data-scrolled]){--hdr-fg:#fff}
.site-header[data-variant=overlay]:not([data-scrolled]):before{opacity:0}
.site-header__bar{align-items:center;gap:var(--space-l);height:var(--header-h);transition:height var(--dur-3) var(--ease-out);display:flex;position:relative}
.site-header[data-scrolled] .site-header__bar{height:var(--header-h-compact)}
.site-header__brand{color:inherit;border-radius:2px;flex:none;line-height:0;display:block}
.site-header__logo svg{width:clamp(6.25rem,5.4rem + 2.4vw,8.5rem);height:auto;transition:width var(--dur-3) var(--ease-out)}
.site-header[data-scrolled] .site-header__logo svg{width:clamp(5.5rem,5rem + 1.6vw,6.75rem)}
.site-header__nav{flex:1;justify-content:center;display:none}
.site-header__nav ul{gap:clamp(1.25rem,2.2vw,2.5rem);display:flex}
.site-header__nav a{letter-spacing:.01em;padding-block:.5rem;font-size:.9375rem;font-weight:560;text-decoration:none;display:block;position:relative}
.site-header__nav a:after{content:"";transform-origin:100%;height:1px;transition:transform var(--dur-3) var(--ease-out);background:currentColor;position:absolute;bottom:.2rem;left:0;right:0;transform:scaleX(0)}
.site-header__nav a:hover:after,.site-header__nav a[aria-current=page]:after{transform-origin:0;transform:scaleX(1)}
.site-header__actions{align-items:center;gap:var(--space-s);margin-left:auto;display:flex}
.site-header__phone{opacity:.9;align-items:center;gap:.5rem;font-size:.875rem;font-weight:560;text-decoration:none;display:none}
.site-header__phone:hover{opacity:1;text-underline-offset:.25em;text-decoration:underline}
.site-header__book{min-height:2.75rem;padding-inline:1.2rem;font-size:.875rem}
.site-header__book-long{display:none}
.site-header__menu{letter-spacing:.02em;min-height:2.75rem;color:inherit;align-items:center;gap:.6rem;padding:0 .25rem 0 .5rem;font-size:.875rem;font-weight:600;display:inline-flex}
.site-header__burger{gap:6px;width:22px;display:grid}
.site-header__burger span{height:1.5px;transition:transform var(--dur-2) var(--ease-out);background:currentColor;border-radius:2px;display:block}
.site-header__burger span:last-child{justify-self:end;width:70%}
.site-header__menu:hover .site-header__burger span:last-child{transform-origin:100%;transform:scaleX(1.43)}
.site-header__menu-label{display:none}
@media (width>=30rem){.site-header__book-long,.site-header__menu-label{display:inline}}
@media (width>=75rem){.site-header__nav{display:flex}
.site-header__menu{display:none}
.site-header__book{min-height:3rem;padding-inline:1.5rem;font-size:.9375rem}}
@media (width>=100rem){.site-header__phone{display:inline-flex}}
.footer{background:var(--navy-950);padding-top:var(--space-3xl);padding-bottom:var(--space-l);font-size:var(--step--1);position:relative;overflow:hidden}
.footer__top{gap:var(--space-xl);padding-bottom:var(--space-2xl);border-bottom:1px solid var(--on-dark-line);display:grid;position:relative}
.footer__logo{color:#fff;line-height:0;display:inline-block}
.footer__logo svg{width:clamp(10rem,8rem + 8vw,15rem);height:auto}
.footer__motto{margin-top:var(--space-l);font-size:var(--step-2);letter-spacing:-.02em;color:var(--on-dark-heading);font-weight:300;line-height:1.25}
.footer__motto span{display:block}
.footer__motto-en{color:var(--on-dark-muted);font-style:italic}
.footer__cta{gap:var(--space-m);align-content:end;justify-items:start;display:grid}
.footer__cta-text{max-width:26rem;font-size:var(--step-0);color:var(--on-dark-text)}
.footer__grid{gap:var(--space-xl) var(--space-l);padding-block:var(--space-2xl);grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));display:grid;position:relative}
.footer__h{font-size:var(--step--2);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--olive-500);margin-bottom:var(--space-m);font-weight:650}
.footer__col ul{gap:.55rem;display:grid}
.footer address{color:var(--on-dark-text);margin-bottom:.75rem;font-style:normal;line-height:1.7}
.footer__link{color:var(--on-dark-text);transition:color var(--dur-1) ease;text-decoration:none}
.footer__link:hover{color:#fff;text-underline-offset:.25em;text-decoration:underline}
.footer__link--arrow{color:var(--on-dark-heading);align-items:center;gap:.35rem;font-weight:600;display:inline-flex}
.footer__facts li{color:var(--on-dark-text);align-items:flex-start;gap:.6rem;line-height:1.5;display:flex}
.footer__facts .icon{color:var(--olive-500);margin-top:.1rem}
.footer__bottom{padding-top:var(--space-l);border-top:1px solid var(--on-dark-line);color:var(--on-dark-muted);flex-wrap:wrap;justify-content:space-between;gap:1rem;display:flex;position:relative}
.footer__legal{align-items:center;gap:1.25rem;display:flex}
.footer__social{border:1px solid var(--on-dark-line);width:2.25rem;height:2.25rem;color:var(--on-dark-heading);border-radius:50%;place-items:center;display:grid}
@media (width>=60rem){.footer__top{grid-template-columns:1.2fr 1fr;align-items:end}
.footer__cta{text-align:right;justify-items:end}}
@media (width<=47.99rem){.footer{padding-bottom:calc(var(--space-l) + 5rem)}}
.menu{width:100%;height:100%;max-height:100dvh;margin:0;inset:0}
.menu::backdrop{backdrop-filter:none;background:0 0}
.menu__inner{background:var(--navy-900);min-height:100dvh;padding-bottom:max(var(--space-l), env(safe-area-inset-bottom));grid-template-rows:auto 1fr auto;display:grid;overflow-y:auto}
.menu__top{height:var(--header-h-compact);justify-content:space-between;align-items:center;display:flex}
.menu__brand{color:#fff;line-height:0}
.menu__brand svg{width:6.25rem;height:auto}
.menu__close{color:#fff;letter-spacing:.02em;align-items:center;gap:.5rem;min-height:2.75rem;padding-inline:.5rem;font-size:.875rem;font-weight:600;display:inline-flex}
.menu__nav{padding-block:var(--space-xl);align-self:center}
.menu__nav ol{gap:.15rem;display:grid}
.menu__nav a{color:var(--on-dark-heading);letter-spacing:-.03em;align-items:baseline;gap:1rem;padding-block:.35rem;font-size:clamp(2.1rem,1.4rem + 4vw,3.5rem);font-weight:300;line-height:1.08;text-decoration:none;display:flex}
.menu__nav a .index-num{min-width:1.75rem;transform:translateY(-.6em)}
.menu__nav a[aria-current=page] .menu__label{text-underline-offset:.18em;text-decoration:underline 1px;text-decoration-color:var(--olive-500)}
.menu__nav a:hover .menu__label{color:var(--clay-200)}
.menu__foot{gap:var(--space-l);display:grid}
.menu__contact{gap:.75rem;font-size:.9375rem;display:grid}
.menu__contact a{color:var(--on-dark-text);align-items:center;gap:.65rem;text-decoration:none;display:inline-flex}
.menu__contact .icon{color:var(--olive-500)}
@media (prefers-reduced-motion:no-preference){.menu[open] .menu__inner{animation:menu-in .42s var(--ease-out) both}
.menu[open] .menu__nav li{animation:menu-item .7s var(--ease-out) both;animation-delay:calc(80ms + var(--i) * 45ms)}
.menu[data-closing] .menu__inner{animation:menu-out .26s var(--ease-in-out) both}}
@keyframes menu-in{0%{opacity:0}
}
@keyframes menu-out{to{opacity:0}
}
@keyframes menu-item{0%{opacity:0;transform:translateY(24px)}
}
.booking{color:var(--navy-900);position:relative}
@keyframes pop-in{0%{opacity:0;transform:translateY(8px)}
}
.booking__assurance{font-size:var(--step--1);color:var(--color-text-muted);flex-wrap:wrap;gap:.5rem 1.5rem;margin-top:1rem;padding-inline:.5rem;font-weight:560;display:flex}
.booking__assurance li{align-items:center;gap:.4rem;display:inline-flex}
.booking__assurance .icon{color:var(--olive-600);stroke-width:2px}
@media (width<=47.99rem){.booking__assurance{gap:.35rem 1rem}}
@keyframes drawer-in{0%{transform:translate(100%)}
}
@keyframes drawer-out{to{transform:translate(100%)}
}
@keyframes fade{0%{opacity:0}
}
@keyframes sheet-in{0%{transform:translateY(100%)}
}
@keyframes sheet-out{to{transform:translateY(100%)}
}
.mbar{z-index:45;padding:.6rem var(--gutter) max(.6rem, env(safe-area-inset-bottom));-webkit-backdrop-filter:saturate(1.2)blur(14px);border-top:1px solid var(--color-line);transition:transform var(--dur-3) var(--ease-out);background:#f6f3eef0;position:fixed;inset:auto 0 0;transform:translateY(110%)}
.mbar[data-visible]{transform:none}
.mbar__inner{align-items:center;gap:.75rem;display:flex}
.mbar__text{flex:1;min-width:0;line-height:1.25}
.mbar__title{color:var(--navy-900);white-space:nowrap;text-overflow:ellipsis;font-size:.9375rem;font-weight:650;overflow:hidden}
.mbar__detail{color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;overflow:hidden}
.mbar__call{border:1px solid var(--color-line-strong);width:2.9rem;height:2.9rem;color:var(--navy-900);border-radius:50%;flex:none;place-items:center;display:grid}
.mbar__btn{flex:none;min-height:2.9rem;padding-inline:1.15rem}
@media (width>=48rem){.mbar{display:none}}
@media (width<=47.99rem){.site-header__book{display:none!important}}
main:focus{outline:none}
/* --- Booking CTA + client tweaks (Oct 2026) --- */
.bcta__icon{width:3rem;height:3rem;border-radius:50%;background:var(--clay-100);color:var(--clay-600);flex:none;display:inline-grid;place-items:center}
.bcta__icon .icon{width:1.35rem;height:1.35rem;stroke-width:1.6px}
.bcta__sub{color:var(--color-text-muted);font-size:var(--step--1);line-height:var(--leading-normal);margin:0}
.bcta__note{color:var(--color-text-muted);font-size:var(--step--1);line-height:1.45;text-align:center;margin:0}
.bcta .icon--arrow{transition:transform var(--dur-2) var(--ease-out)}
.bcta a.btn:hover .icon--arrow,.bcta__stackbtn:hover .icon--arrow{transform:translateX(3px)}
.bcta--bar .bcta__card{background:var(--white);border-radius:var(--radius-m);box-shadow:var(--shadow-l);display:flex;align-items:center;gap:1.25rem;padding:.75rem .75rem .75rem 1.25rem}
.bcta--bar .bcta__text{flex:1;min-width:0}
.bcta--bar .bcta__title{color:var(--navy-900);font-size:var(--step-1);font-weight:400;letter-spacing:var(--tracking-heading);line-height:1.2;margin:0 0 .15rem}
.bcta--bar .bcta__btn{border-radius:calc(var(--radius-m) - 3px);font-size:1rem;padding:1.1rem 1.75rem;white-space:nowrap}
@media (max-width:47.99rem){.bcta--bar .bcta__card{flex-wrap:wrap;padding:1rem}
.bcta--bar .bcta__btn{width:100%;justify-content:center}}
.bcta__stackbtn{justify-content:center}
.bcta--panel{background:var(--white);border-radius:var(--radius-m);box-shadow:var(--shadow-m),0 0 0 1px #1c2b3a0d;display:grid;justify-items:start;gap:var(--space-s);padding:clamp(1.5rem,4vw,2.75rem)}
.bcta--panel .bcta__heading{font-size:var(--step-3);line-height:1.05;letter-spacing:-.03em}
.bcta--panel .bcta__sub{font-size:var(--step-0);max-width:34rem}
.bcta--panel .btn{margin-top:var(--space-xs);justify-content:center}
.bcta--panel .bcta__note{justify-self:stretch}
.hero__eyebrow.eyebrow,.phero__content.on-dark .eyebrow{color:#fff;background:rgba(17,27,37,.62);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:999px;padding:.55em 1em .55em .85em;text-shadow:0 1px 2px rgba(0,0,0,.35);justify-self:start;align-self:flex-start;width:max-content;max-width:100%}
.bf__title{max-width:none}
.bf__line{display:block}
.phero.phero--image .phero__shade{background:
  linear-gradient(90deg,#111b25a6 0%,#111b2566 38%,#111b2514 70%,#111b2500 100%),
  linear-gradient(#111b2580 0%,#111b2533 28%,#111b2540 55%,#111b25cc 100%)}
.phero.phero--image .crumbs,.phero.phero--image .phero__title,.phero.phero--image .phero__intro{text-shadow:0 1px 2px #111b2559,0 0 28px #111b2566}
.phero.phero--image .crumbs{color:#fff}
/* --- Page hero + breadcrumbs --- */
.phero{position:relative}
.phero--image{isolation:isolate;background:var(--navy-900);align-items:end;min-height:max(32rem,78svh);display:grid;overflow:hidden}
.phero__media{z-index:-1;position:absolute;inset:0}
.phero__media picture,.phero__media img{object-fit:cover;width:100%;height:100%}
.phero__shade{background:linear-gradient(#111b2580 0%,#111b2500 26%),linear-gradient(#111b2500 35%,#111b2559 60%,#111b25cc 100%);position:absolute;inset:0}
.phero__content{gap:var(--space-m);padding-top:calc(var(--header-h) + var(--space-xl));padding-bottom:var(--space-2xl);justify-items:start;display:grid}
.phero--image .phero__content{padding-bottom:clamp(3rem,2rem + 4vw,5.5rem)}
.phero--plain .phero__content{padding-top:calc(var(--header-h) + var(--space-2xl));padding-bottom:var(--space-2xl)}
.phero__title{font-size:var(--step-6);letter-spacing:-.045em;max-width:14ch;font-weight:290;line-height:.96}
.phero--image .phero__title{color:#fff}
.phero__intro{font-size:var(--step-1);max-width:38rem;line-height:1.5}
.phero--image .phero__intro{color:#ffffffe6}
@media (prefers-reduced-motion:no-preference){.phero__media img{animation:phero-settle 2.4s var(--ease-out) both}
.phero__intro{animation:phero-rise 1.1s var(--ease-out) .3s both}
@supports (animation-timeline:scroll()){.phero__media{animation:linear both phero-drift scroll(root);animation-range:0 90vh}}}
@keyframes phero-settle{0%{scale:1.06}
}
@keyframes phero-rise{0%{opacity:0;translate:0 18px}
}
@keyframes phero-drift{to{translate:0 14%}
}
.crumbs ol{font-size:var(--step--1);flex-wrap:wrap;gap:.25rem 0;font-weight:520;display:flex}
.crumbs li+li:before{content:"/";opacity:.45;margin-inline:.6rem}
.crumbs a{text-decoration:none}
.crumbs a:hover{text-underline-offset:.2em;text-decoration:underline}
.crumbs--light{color:var(--color-text-muted)}
.crumbs--dark{color:#ffffffe6}
/* --- Booking CTA band --- */
.cta{isolation:isolate;min-height:min(52rem,92svh);padding-block:var(--section-y);text-align:center;background:var(--navy-900);align-items:center;display:grid;position:relative;overflow:hidden}
.cta__media{z-index:-2;position:absolute;inset:0}
.cta__media picture,.cta__media img{object-fit:cover;width:100%;height:100%}
.cta:after{content:"";z-index:-1;background:radial-gradient(60% 70%,#111b259e,#111b25c7),linear-gradient(#111b2540,#111b2573);position:absolute;inset:0}
.cta__inner{justify-items:center;gap:var(--space-m);display:grid}
.cta__mark{width:4.5rem;color:var(--olive-500);margin-bottom:var(--space-s)}
.cta__mark svg{width:100%;height:auto}
.cta__title{font-size:var(--step-5);letter-spacing:-.04em;max-width:14ch;font-weight:280;line-height:1}
.cta__text{max-width:34rem;font-size:var(--step-1);color:#ffffffe6;line-height:1.5}
.cta__actions{margin-top:var(--space-m);flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}
/* --- 404 --- */
.nf{padding:calc(var(--header-h) + var(--space-3xl)) 0 var(--section-y)}
.nf__inner{gap:var(--space-m);justify-items:start;max-width:48rem;display:grid}
.nf__art{width:min(22rem,70vw);color:var(--slate-600);margin-bottom:var(--space-l)}
.nf__art svg{width:100%;height:auto}
.nf h1{font-size:var(--step-5)}
/* --- Room page components: breadcrumbs, hours, room card, lightbox --- */
.hours{width:100%;max-width:34rem}
.hours__title{font-size:var(--step--2);letter-spacing:var(--tracking-label);text-transform:uppercase;align-items:center;gap:.5rem;margin-bottom:.6rem;font-weight:650;display:flex}
.hours__row{justify-content:space-between;align-items:baseline;gap:1rem;padding-block:.4rem;display:flex}
.hours__row dt{font-weight:500}
.hours__row dd{font-size:var(--step-2);letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap;gap:.4rem;font-weight:300;display:flex}
.hours--light .hours__title{color:var(--slate-600)}
.hours--light dd{color:var(--navy-900)}
.hours--dark .hours__title{color:var(--olive-500)}
.hours--dark dt{color:var(--on-dark-text)}
.hours--dark dd{color:var(--on-dark-heading)}
.room-card{gap:var(--space-m);align-content:start;display:grid;position:relative}
.room-card__media{aspect-ratio:4/5}
.room-card__media img{object-fit:cover;width:100%;height:100%}
.room-card__tag{position:absolute;top:1rem;left:1rem}
.room-card__body{gap:.6rem;display:grid}
.room-card__title{font-size:var(--step-3);letter-spacing:-.03em;font-weight:340;line-height:1.05}
.room-card__link{text-decoration:none}
.room-card__link:after{content:"";z-index:1;position:absolute;inset:0}
.room-card__link:focus-visible{outline:none}
.room-card:has(.room-card__link:focus-visible){outline:2px solid var(--color-focus);outline-offset:6px;border-radius:2px}
.room-card__meta{margin-top:.15rem}
.room-card__summary{color:var(--color-text);max-width:36rem}
.room-card__actions{justify-content:space-between;align-items:center;gap:1rem;margin-top:.4rem;display:flex}
.room-card__book{z-index:2;position:relative}
@media (hover:hover){.room-card:hover .text-link{background-position:100% 100%;background-size:0 1px}
.room-card:hover .text-link .icon{transform:translate(3px)}}
.lb{width:100vw;height:100dvh;max-height:100dvh;margin:0;inset:0}
.lb::backdrop{backdrop-filter:none;background:#111b25f5}
.lb__inner{color:#fff;grid-template-rows:auto 1fr;height:100%;display:grid;position:relative}
.lb__bar{padding:1rem var(--gutter);justify-content:space-between;align-items:center;display:flex}
.lb__count{letter-spacing:.08em;font-variant-numeric:tabular-nums;color:#ffffffbf;font-size:.875rem;font-weight:600}
.lb__close{color:#fff;align-items:center;gap:.5rem;min-height:2.75rem;padding-inline:.75rem;font-size:.875rem;font-weight:600;display:inline-flex}
.lb__figure{min-height:0;padding:0 var(--gutter) 1.5rem;grid-template-rows:1fr auto;display:grid}
.lb__stage{touch-action:pan-y;place-items:center;min-height:0;display:grid;position:relative}
.lb__stage img{object-fit:contain;border-radius:var(--radius-xs);user-select:none;-webkit-user-drag:none;max-width:100%;max-height:100%}
.lb__caption{text-align:center;color:#fffc;min-height:2.5rem;padding-top:1rem;font-size:.9375rem}
.lb__nav{color:#fff;width:3.5rem;height:3.5rem;transition:background-color var(--dur-2) ease, color var(--dur-2) ease;background:#111b2559;border:1px solid #ffffff4d;border-radius:50%;place-items:center;margin-top:-1.75rem;display:grid;position:absolute;top:50%}
.lb__nav:hover{color:var(--navy-900);background:#fff}
.lb__nav--prev{left:var(--gutter)}
.lb__nav--next{right:var(--gutter)}
.lb :focus-visible{outline-color:var(--olive-500)}
@media (width<=47.99rem){.lb__nav{width:3rem;height:3rem;margin-top:0;top:auto;bottom:1rem}
.lb__figure{padding-bottom:5rem}}
@media (prefers-reduced-motion:no-preference){.lb[open] .lb__inner{animation:lb-in .38s var(--ease-out) both}
.lb[data-closing] .lb__inner{animation:.24s both lb-out}
.lb__stage img.is-entering{animation:lb-img .52s var(--ease-out) both}}
@keyframes lb-in{0%{opacity:0}
}
@keyframes lb-out{to{opacity:0}
}
@keyframes lb-img{0%{opacity:0;transform:translateX(var(--from,0)) scale(.985)}
}
/* --- Hotel page inline: FAQ --- */
.faq{border-top:1px solid var(--color-line-strong)}
.faq__item{border-bottom:1px solid var(--color-line)}
.faq__item summary{cursor:pointer;font-size:var(--step-1);color:var(--navy-900);letter-spacing:-.01em;justify-content:space-between;align-items:center;gap:1.5rem;padding-block:1.35rem;font-weight:500;list-style:none;display:flex}
.faq__item summary::-webkit-details-marker{display:none}
.faq__item summary:hover{color:var(--slate-600)}
.faq__icon{border:1px solid var(--color-line-strong);width:2.25rem;height:2.25rem;transition:transform var(--dur-2) var(--ease-out), background-color var(--dur-2) ease, color var(--dur-2) ease;border-radius:50%;flex:none;place-items:center;display:grid}
.faq__item[open] .faq__icon{background:var(--navy-900);color:#fff;border-color:var(--navy-900);transform:rotate(45deg)}
.faq__a{max-width:46rem;color:var(--color-text);padding-bottom:1.5rem}
@media (prefers-reduced-motion:no-preference){.faq__item::details-content{block-size:0;transition:block-size var(--dur-3) var(--ease-out), content-visibility var(--dur-3) allow-discrete;overflow:hidden}
.faq__item[open]::details-content{block-size:auto}}
@supports (interpolate-size:allow-keywords){.faq{interpolate-size:allow-keywords}}
/* --- Legal / text page --- */
.legal{max-width:44rem}
.legal h2{font-size:var(--step-2);letter-spacing:-.02em;margin-top:2em;font-weight:450}
.note{background:var(--olive-100);border-radius:var(--radius-s);font-size:var(--step--1);padding:1rem 1.25rem}
/* --- Neighbourhood map --- */
.nmap{position:relative}
.nmap__filters{margin-bottom:var(--space-m);scrollbar-width:none;gap:.5rem;padding-bottom:.25rem;display:flex;overflow-x:auto}
.nmap__chip{border:1px solid var(--color-line-strong);border-radius:var(--radius-pill);min-height:2.75rem;color:var(--navy-900);transition:background-color var(--dur-2) ease, color var(--dur-2) ease, border-color var(--dur-2) ease;flex:none;align-items:center;gap:.5rem;padding:.5rem 1.05rem;font-size:.9375rem;font-weight:600;display:inline-flex}
.nmap__chip:hover{border-color:var(--navy-900)}
.nmap__chip[aria-pressed=true]{background:var(--navy-900);border-color:var(--navy-900);color:#fff}
.nmap__chip-dot{background:var(--pin);border-radius:50%;width:.65rem;height:.65rem;box-shadow:0 0 0 2px #fff}
.nmap__chip-n{opacity:.8;font-variant-numeric:tabular-nums;font-size:.75rem}
.nmap__viewport{border-radius:var(--radius-xs);scrollbar-width:thin;background:#ece6dd;position:relative;overflow:auto hidden}
.nmap__canvas{aspect-ratio:1600/1103;min-width:52rem;position:relative}
.nmap__canvas>img{width:100%;height:100%;position:absolute;inset:0}
.nmap__pin{--d:1.1rem;z-index:3;transform:translate(calc(var(--d) / -2), -50%);position:absolute}
.nmap__pin--num{--d:1.5rem}
.nmap__pin[hidden]{display:none}
.nmap__hit{color:inherit;text-align:left;align-items:center;gap:.4rem;padding:0;display:flex}
button.nmap__hit{cursor:pointer}
.nmap__hit:focus-visible{outline:none}
.nmap__hit:focus-visible .nmap__dot,button.nmap__dot:focus-visible{outline:2px solid var(--navy-900);outline-offset:2px}
button.nmap__dot{cursor:pointer;padding:0}
.nmap__dot{width:var(--d);height:var(--d);background:var(--pin,var(--slate-600));color:#fff;transition:transform var(--dur-2) var(--ease-out);border:2px solid #fff;border-radius:50%;flex:none;place-items:center;font-size:.625rem;font-weight:700;display:grid;box-shadow:0 1px 4px #111b2540}
.nmap__label{border-radius:var(--radius-s);color:var(--navy-900);white-space:nowrap;background:#fffdfaf0;padding:.2rem .55rem;font-size:.75rem;font-weight:650;line-height:1.25;display:grid;box-shadow:0 1px 3px #111b251a}
.nmap__label small{color:var(--color-text-muted);font-size:.6875rem;font-weight:500}
.nmap__pin--eat,.nmap__chip--eat{--pin:var(--clay-600)}
.nmap__pin--shop,.nmap__chip--shop{--pin:var(--slate-600)}
.nmap__pin--explore,.nmap__chip--explore{--pin:var(--olive-700)}
.nmap__pin--bus{--pin:var(--navy-900)}
.nmap__pin--essentials,.nmap__chip--essentials{--pin:#8a5a6a}
.nmap__pin--num .nmap__label{opacity:0;pointer-events:none;transition:opacity var(--dur-2) ease, transform var(--dur-2) var(--ease-out);transform:translate(-4px)}
.nmap__pin--num:hover .nmap__label,.nmap__pin--num:focus-within .nmap__label,.nmap__pin.is-active .nmap__label{opacity:1;transform:none}
.nmap__pin:hover,.nmap__pin:focus-within{z-index:6}
.nmap__pin:hover .nmap__dot,.nmap__pin.is-active .nmap__dot,.nmap__pin.is-open .nmap__dot{transform:scale(1.3)}
.nmap__pin.is-active{z-index:5}
.nmap__pin.is-active .nmap__label{background:var(--navy-900);color:#fff}
.nmap__pin.is-active .nmap__label small{color:#ffffffb3}
.nmap__pin.is-open{z-index:20}
.nmap__pin.is-open .nmap__label{opacity:0!important}
.nmap__info{left:calc(var(--d) / 2 - 1.5rem);background:var(--white);border-radius:var(--radius-m);width:17rem;box-shadow:var(--shadow-l), 0 0 0 1px #1c2b3a0f;text-align:left;white-space:normal;animation:info-in .28s var(--ease-out);gap:.35rem;padding:1rem 2.5rem 1.05rem 1.1rem;display:grid;position:absolute;bottom:calc(100% + .6rem)}
.nmap__info[hidden]{display:none}
.nmap__pin.is-below .nmap__info{top:calc(100% + .6rem);bottom:auto}
.nmap__pin.is-left .nmap__info{left:auto;right:calc(var(--d) / 2 - 1.5rem)}
@keyframes info-in{0%{opacity:0;transform:translateY(6px)}
}
.nmap__sheet{z-index:30;width:auto;inset:auto .75rem .75rem}
@media (width>=64rem){.nmap__sheet{display:none!important}}
.nmap__info-close{width:2rem;height:2rem;color:var(--navy-900);border-radius:50%;place-items:center;display:grid;position:absolute;top:.45rem;right:.45rem}
.nmap__info-close:hover{background:var(--linen)}
.nmap__info-kind{font-size:var(--step--2);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);align-items:center;gap:.45rem;font-weight:650;display:flex}
.nmap__info-dot{background:var(--pin);border-radius:50%;flex:none;width:.55rem;height:.55rem}
.nmap__info-name{letter-spacing:-.01em;color:var(--navy-900);font-size:1.125rem;font-weight:600;line-height:1.25}
.nmap__info-text{color:var(--color-text);font-size:.875rem;line-height:1.5}
.nmap__info-link{color:var(--slate-600);align-items:center;gap:.3rem;margin-top:.2rem;font-size:.8125rem;font-weight:600;display:inline-flex}
.nmap__hotel{z-index:2;pointer-events:none;justify-items:center;gap:.35rem;display:grid;position:absolute;transform:translate(-50%,-50%)}
.nmap__hotel-mark{background:var(--navy-900);color:#fff;border-radius:50%;place-items:center;width:3.25rem;height:3.25rem;display:grid;position:relative;box-shadow:0 0 0 6px #1c2b3a24,0 8px 20px -6px #111b2580}
.nmap__hotel-mark svg{width:1.9rem;height:auto}
.nmap__hotel-label{border-radius:var(--radius-pill);background:var(--navy-900);color:#fff;letter-spacing:.04em;white-space:nowrap;padding:.25rem .65rem;font-size:.75rem;font-weight:650}
@media (prefers-reduced-motion:no-preference){.nmap__hotel-mark:after{content:"";border:1px solid var(--navy-900);animation:ping 2.8s var(--ease-out) infinite;border-radius:50%;position:absolute;inset:-6px}}
@keyframes ping{0%{opacity:.6;transform:scale(1)}
to{opacity:0;transform:scale(2.1)}
}
.nmap__edge{z-index:1;border-radius:var(--radius-pill);color:var(--navy-900);background:#fffdfaf0;padding:.3rem .7rem;font-size:.75rem;font-weight:650;position:absolute;left:.75rem;box-shadow:0 1px 3px #111b251a}
.nmap__edge-arrow{color:var(--clay-600)}
.nmap__credit{z-index:5;border-radius:var(--radius-s);color:var(--color-text-muted);background:#fffdfad9;padding:.15rem .5rem;font-size:.6875rem;position:absolute;bottom:.5rem;right:.5rem}
.nmap__credit a{color:inherit}
@media (width>=64rem){.nmap__canvas{min-width:0}
.nmap__viewport{overflow:hidden}}
/* --- Home page sections (hero, included, story, rooms slider, breakfast band, details, location teaser, reviews, gallery strip) --- */
.hero{position:relative}
.hero__stage{isolation:isolate;background:var(--navy-900);align-items:end;min-height:max(38rem,100svh);display:grid;position:relative;overflow:hidden}
.hero__media{z-index:-1;position:absolute;inset:0}
.hero__media picture,.hero__media img{object-fit:cover;width:100%;height:100%}
.hero__shade{background:linear-gradient(#111b258c 0%,#111b2500 24%),linear-gradient(#111b2500 28%,#111b251f 42%,#111b2580 66%,#111b25d1 100%),radial-gradient(70% 60% at 10% 90%,#111b2559,#0000 70%);position:absolute;inset:0}
.hero__content{padding-top:calc(var(--header-h) + var(--space-xl));gap:var(--space-m);padding-bottom:clamp(3rem,2rem + 4vw,6rem);display:grid}
.hero__eyebrow{color:#fff}
.hero__title{font-size:var(--step-6);letter-spacing:-.045em;color:#fff;max-width:12ch;font-weight:290;line-height:.94}
.hero__aside{gap:var(--space-l);max-width:34rem;display:grid}
.hero__lead{font-size:var(--step-1);color:#ffffffe6;line-height:1.5}
.hero__ctas{flex-wrap:wrap;gap:.75rem;display:flex}
.hero__scroll{right:var(--gutter);border:1px solid #ffffff8c;border-radius:1rem;width:1.75rem;height:3.25rem;display:none;position:absolute;bottom:clamp(3rem,2rem + 4vw,6rem)}
.hero__scroll span{background:#fff;border-radius:2px;width:2px;height:.6rem;margin-left:-1px;position:absolute;top:.6rem;left:50%}
.hero__booking{z-index:5;display:none;position:relative}
@media (width>=48rem){.hero__stage{min-height:max(38rem,min(100svh - 4.75rem,64rem))}
.hero__content{padding-bottom:calc(var(--space-3xl) + 2.5rem)}
.hero__book{display:none}
.hero__booking{margin-top:-2.6rem;display:block}
.hero__scroll{bottom:calc(var(--space-3xl) + 2.5rem);display:block}}
@media (width>=75rem){.hero__content{align-items:end;column-gap:var(--space-2xl);grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}
.hero__eyebrow{grid-column:1/-1}
.hero__aside{margin-right:4rem;padding-bottom:.6rem}
.hero__booking>.booking{max-width:68rem}}
@media (prefers-reduced-motion:no-preference){.hero__media img{animation:hero-settle 2.6s var(--ease-out) both}
.hero__eyebrow,.hero__aside{animation:hero-rise 1.2s var(--ease-out) .35s both}
.hero__booking{animation:hero-rise 1.2s var(--ease-out) .55s both}
.hero__scroll span{animation:scroll-cue 2.2s var(--ease-in-out) 1.6s infinite}
@supports (animation-timeline:scroll()){.hero__media{animation:linear both hero-drift scroll(root);animation-range:0 100vh}
.hero__content{animation:linear both hero-fade scroll(root);animation-range:0 85vh}}}
@keyframes hero-settle{0%{scale:1.08}
to{scale:1}
}
@keyframes hero-rise{0%{opacity:0;translate:0 22px}
}
@keyframes hero-drift{to{translate:0 18%}
}
@keyframes hero-fade{to{opacity:.15;translate:0 -6%}
}
@keyframes scroll-cue{0%{opacity:0;translate:0}
30%{opacity:1}
80%,to{opacity:0;translate:0 1.1rem}
}
.included{padding-top:calc(var(--section-y) * .8)}
.included__head{margin-bottom:var(--space-xl);grid-column:1/-1}
.included__head .eyebrow{margin-bottom:var(--space-m)}
.included__title{font-size:var(--step-4);max-width:13ch}
.included__list{gap:0 var(--space-xl);grid-column:1/-1;display:grid}
.included__item{border-top:1px solid var(--color-line);grid-template-columns:auto 1fr;gap:1.1rem;padding-block:1.4rem;display:grid}
.included__item .included__icon{width:1.75rem;height:1.75rem;color:var(--clay-600);stroke-width:1.35px;margin-top:.1rem}
.included__name{font-size:var(--step-1);letter-spacing:-.01em;font-weight:600;line-height:1.3}
.included__text{font-size:var(--step--1);color:var(--color-text-muted);max-width:26rem;margin-top:.3rem;line-height:1.55}
@media (width>=40rem){.included__list{grid-template-columns:1fr 1fr}}
@media (width>=64rem){.included__head{top:calc(var(--header-h-compact) + 2rem);grid-column:1/6;align-self:start;margin-bottom:0;position:sticky}
.included__list{grid-column:6/-1}
.included__item{grid-template-columns:1fr;gap:1.25rem;padding-block:2rem 2.25rem}}
.story__grid{row-gap:var(--space-xl)}
.story__main{aspect-ratio:4/5;grid-column:1/-1;width:100%;max-height:85vh}
.story__main img{object-fit:cover;width:100%;height:100%}
.story__text{gap:var(--space-m);grid-column:1/-1;align-content:start;justify-items:start;display:grid}
.story__title{font-size:var(--step-4);max-width:12ch}
.story__body{margin-block:var(--space-s) var(--space-xs)}
.story__aside{grid-column:1/-1;max-width:26rem}
.story__aside .frame{aspect-ratio:4/3}
.story__aside img{object-fit:cover;width:100%;height:100%}
.story__aside figcaption,.story__phrase figcaption{font-size:var(--step--1);color:var(--color-text-muted);margin-top:.75rem}
.story__phrase-wrap{margin-top:var(--space-3xl)}
.story__phrase{gap:var(--space-m);padding-top:var(--space-2xl);border-top:1px solid var(--color-line);display:grid;position:relative}
.story__phrase blockquote p{font-size:var(--step-5);letter-spacing:-.035em;color:var(--navy-900);max-width:16ch;font-style:italic;font-weight:280;line-height:1}
.story__drawing{width:min(26rem,70%);color:var(--slate-600);opacity:.85;justify-self:end}
.story__drawing svg{width:100%;height:auto}
@media (width>=64rem){.story__main{aspect-ratio:5/6;grid-area:1/1/3/8}
.story__text{padding-top:var(--space-xl);grid-area:1/9/auto/-1}
.story__aside{grid-area:2/9/auto/12;align-self:end}
.story__phrase{align-items:end;column-gap:var(--space-2xl);grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}
.story__phrase blockquote{grid-area:1/1}
.story__phrase figcaption{grid-area:2/1;margin-top:0}
.story__drawing{grid-area:1/2/3;width:100%;max-width:30rem}}
.rooms__intro{gap:var(--space-m);justify-items:start;display:grid}
.slider{position:relative}
.slider__track{overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:max(var(--gutter), calc((100vw - var(--max-wide)) / 2));scrollbar-width:none;-webkit-overflow-scrolling:touch;overflow-x:auto}
.slider__track::-webkit-scrollbar{display:none}
.slider__track:focus-visible{outline-offset:-4px}
.slider__list{padding-inline:max(var(--gutter), calc((100vw - var(--max-wide)) / 2));gap:clamp(1rem,2.4vw,2.5rem);width:max-content;display:flex}
.slider__slide{scroll-snap-align:start;flex:none;width:clamp(17.5rem,80vw,22rem)}
.slider__controls{align-items:center;gap:var(--space-l);margin-top:var(--space-xl);display:flex}
.slider__progress{background:var(--color-line-strong);flex:1;height:1px;position:relative}
.slider__progress span{height:2px;width:var(--w,20%);transform:translateX(var(--x,0%));background:var(--navy-900);transition:transform var(--dur-2) var(--ease-out);position:absolute;top:-.5px;left:0}
.slider__buttons{gap:.5rem;display:flex}
@media (width>=48rem){.slider__slide{width:clamp(22rem,46vw,32rem)}}
@media (width>=75rem){.slider__slide{width:clamp(26rem,31vw,36rem)}}
.bf{background:var(--navy-900);display:grid}
.bf__media{aspect-ratio:4/3;position:relative;overflow:hidden}
.bf__media picture,.bf__media img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}
.bf__panel{gap:var(--space-m);padding:var(--space-3xl) var(--gutter);align-content:center;justify-items:start;display:grid}
.bf__title{font-size:var(--step-4);max-width:11ch}
.bf__intro{max-width:32rem}
.bf__menu{width:100%;max-width:34rem;margin-block:var(--space-s);border-top:1px solid var(--on-dark-line)}
.bf__menu li{border-bottom:1px solid var(--on-dark-line);grid-template-columns:2.25rem 1fr auto;align-items:baseline;gap:.75rem;padding-block:.85rem;display:grid}
.bf__dish{font-size:var(--step-1);color:var(--on-dark-heading);letter-spacing:-.01em;font-weight:450}
.bf__native{font-size:var(--step--1);color:var(--on-dark-muted);font-style:italic}
.bf__nesti{border-radius:var(--radius-s);max-width:34rem;font-size:var(--step--1);border:1px solid #beb17773;grid-template-columns:auto 1fr;gap:1rem;padding:1.1rem 1.25rem;line-height:1.55;display:grid}
.bf__nesti .bf__nesti-icon{color:var(--olive-500)}
.bf__nesti strong{color:var(--on-dark-heading)}
@media (width>=64rem){.bf{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);min-height:100vh}
.bf__media{aspect-ratio:auto}
.bf__panel{padding:var(--section-y) var(--gutter) var(--section-y) clamp(2.5rem, 5vw, 6rem)}}
.details__grid{gap:var(--space-2xl) var(--space-xl);display:grid}
.detail{gap:var(--space-m);align-content:start;display:grid}
.detail .frame img{object-fit:cover;width:100%;height:100%}
.detail--a .frame{aspect-ratio:16/10}
.detail--b .frame{aspect-ratio:4/5}
.detail--c .frame{aspect-ratio:1}
.detail--d .frame{aspect-ratio:3/2}
.detail__text{justify-items:start;gap:.6rem;max-width:30rem;display:grid}
.detail__text h3{font-size:var(--step-2);letter-spacing:-.02em;font-weight:400}
.detail__text>p:not(.index-num){color:var(--color-text-muted)}
@media (width>=48rem) and (width<=63.99rem){.details__grid{grid-template-columns:1fr 1fr}
.detail--a,.detail--d{grid-column:1/-1}}
@media (width>=64rem){.details__grid{row-gap:var(--space-2xl);grid-template-columns:repeat(12,minmax(0,1fr))}
.detail--a{grid-column:1/8}
.detail--b{margin-top:var(--space-2xl);grid-column:9/13}
.detail--c{grid-column:2/6}
.detail--d{margin-top:calc(var(--space-3xl) * -.6);grid-column:7/13}}
.hood__grid{row-gap:var(--space-2xl)}
.hood__text{gap:var(--space-m);grid-column:1/-1;align-content:start;display:grid}
.hood__title{font-size:var(--step-4);max-width:12ch}
.hood__intro{max-width:34rem}
.hood__facts{margin-block:var(--space-s) var(--space-m);border-top:1px solid var(--color-line);gap:0;display:grid}
.hood__facts li{border-bottom:1px solid var(--color-line);grid-template-columns:auto 1fr;gap:1rem;padding-block:1.1rem;display:grid}
.hood__facts .hood__icon{color:var(--clay-600);margin-top:.1rem}
.hood__facts h3{letter-spacing:0;font-size:1rem;font-weight:650;line-height:1.4}
.hood__facts p{font-size:var(--step--1);color:var(--color-text-muted);margin-top:.15rem}
.hood__map{grid-column:1/-1}
.hood__guide{margin-top:var(--space-3xl)}
.hood__guide-head{margin-bottom:var(--space-l);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 2rem;display:flex}
.hood__guide-head .eyebrow{color:var(--navy-900);font-size:var(--step--1)}
.hood__guide-lead{color:var(--color-text-muted)}
.hood__cats{background:var(--color-line);border:1px solid var(--color-line);gap:1px;display:grid}
.hood__cat{background:var(--linen);height:100%;transition:box-shadow var(--dur-2) ease;align-content:start;gap:.4rem;padding:1.5rem 1.4rem 1.4rem;text-decoration:none;display:grid}
.hood__cat:hover{box-shadow:inset 0 2px 0 var(--clay-500)}
.hood__cat .hood__cat-icon{color:var(--clay-600);margin-bottom:.75rem}
.hood__cat-label{font-size:var(--step-2);letter-spacing:-.02em;color:var(--navy-900);font-weight:400}
.hood__cat-places{font-size:var(--step--1);color:var(--color-text-muted);line-height:1.5}
.hood__cat-more{font-size:var(--step--1);color:var(--navy-900);align-items:center;gap:.35rem;margin-top:.75rem;font-weight:650;display:inline-flex}
.hood__cat-more .icon{transition:transform var(--dur-2) var(--ease-out)}
.hood__cat:hover .hood__cat-more .icon{transform:translate(3px)}
@media (width>=40rem){.hood__cats{grid-template-columns:repeat(2,1fr)}}
@media (width>=64rem){.hood__text{grid-column:1/6}
.hood__map{grid-column:6/-1;align-self:center}
.hood__cats{grid-template-columns:repeat(5,1fr)}}
.reviews__grid{gap:var(--space-2xl);margin-top:var(--space-xl);display:grid}
.reviews__featured{position:relative}
.reviews__featured .reviews__mark{width:3rem;height:3rem;color:var(--clay-500);fill:var(--clay-500);stroke:none;margin-bottom:var(--space-m)}
.reviews__pull{font-size:var(--step-4);letter-spacing:-.035em;color:var(--navy-900);max-width:18ch;font-weight:290;line-height:1.08}
.reviews__rest{margin-top:var(--space-l);max-width:36rem;font-size:var(--step-1);color:var(--color-text);line-height:1.5}
figcaption{margin-top:var(--space-m);font-size:var(--step--1);letter-spacing:.04em;color:var(--color-text-muted);font-weight:600}
.reviews__more{gap:var(--space-xl);align-content:end;display:grid}
.reviews__item{padding-top:var(--space-m);border-top:1px solid var(--color-line)}
.reviews__item p{font-size:var(--step-1);color:var(--navy-900);font-weight:400;line-height:1.5}
.reviews__awards{margin-top:var(--space-3xl);background:var(--color-line);border-block:1px solid var(--color-line);gap:1px;display:grid}
.award{background:var(--white);align-items:center;gap:1rem;height:100%;padding:1.5rem .5rem;text-decoration:none;display:flex}
.award__score{font-size:var(--step-4);letter-spacing:-.04em;color:var(--navy-900);font-weight:280;line-height:1}
.award .award__icon{width:2.25rem;height:2.25rem;color:var(--olive-600);stroke-width:1.25px}
.award__text{flex:1;gap:.15rem;display:grid}
.award__title{color:var(--navy-900);font-weight:620;line-height:1.3}
.award__by{font-size:var(--step--1);color:var(--color-text-muted)}
.award .award__ext{color:var(--color-text-muted);transition:transform var(--dur-2) var(--ease-out)}
.award:hover .award__ext{color:var(--navy-900);transform:translate(2px,-2px)}
@media (width>=64rem){.reviews__grid{column-gap:var(--space-3xl);grid-template-columns:minmax(0,1.55fr) minmax(0,1fr)}
.reviews__awards{grid-template-columns:repeat(3,1fr)}
.award{padding-inline:1.5rem}
.reviews__awards li:first-child .award{padding-left:0}}
.gstrip__head{justify-content:space-between;align-items:end;gap:var(--space-m);margin-bottom:var(--space-xl);flex-wrap:wrap;display:flex}
.gstrip__head .eyebrow{margin-bottom:var(--space-m)}
.gstrip__grid{grid-template-columns:repeat(2,1fr);gap:clamp(.5rem,1.2vw,1.25rem);display:grid}
.gstrip__tile img{object-fit:cover;width:100%;height:100%}
.gstrip__tile--1{aspect-ratio:16/10;grid-column:1/-1}
.gstrip__tile--2,.gstrip__tile--3{aspect-ratio:3/4}
.gstrip__tile--4,.gstrip__tile--5{aspect-ratio:1}
@media (width>=64rem){.gstrip__grid{grid-template-rows:repeat(2,clamp(13rem,19vw,22rem));grid-template-columns:repeat(12,1fr)}
.gstrip__tile{aspect-ratio:auto!important}
.gstrip__tile--1{grid-area:1/1/3/5}
.gstrip__tile--2{grid-area:1/5/auto/8}
.gstrip__tile--3{grid-area:1/8/auto/13}
.gstrip__tile--4{grid-area:2/5/auto/8}
.gstrip__tile--5{grid-area:2/8/auto/13}}
/* --- Hotel page sections (intro, lounge band, comforts, breakfast teaser, services, FAQ) --- */
.intro{row-gap:var(--space-2xl);align-items:end}
.intro__text{gap:var(--space-m);grid-column:1/-1;display:grid}
.intro__text h2{max-width:14ch}
.intro__phrase{gap:var(--space-m);grid-column:1/-1;display:grid}
.intro__drawing{color:var(--slate-600);max-width:30rem}
.intro__drawing svg{width:100%;height:auto}
.intro__phrase blockquote p{font-size:var(--step-3);letter-spacing:-.03em;color:var(--navy-900);font-style:italic;font-weight:300;line-height:1.1}
.intro__phrase figcaption{color:var(--color-text-muted);font-size:var(--step--1)}
@media (width>=64rem){.intro__text{grid-column:1/7}
.intro__phrase{grid-column:8/-1}}
.lounge{background:var(--navy-900);display:grid}
.lounge__media{aspect-ratio:4/3;position:relative;overflow:hidden}
.lounge__media picture,.lounge__media img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}
.lounge__text{gap:var(--space-m);padding:var(--space-3xl) var(--gutter);align-content:center;max-width:40rem;display:grid}
.lounge__text h2{max-width:11ch}
@media (width>=64rem){.lounge{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);min-height:88vh}
.lounge__media{aspect-ratio:auto}
.lounge__text{padding-left:clamp(2.5rem,5vw,6rem)}}
.comforts{gap:var(--space-xl) clamp(1rem, 2.4vw, 2.5rem);display:grid}
.comfort{align-content:start;gap:.6rem;display:grid}
.comfort__img{aspect-ratio:4/5;margin-bottom:.6rem}
.comfort__img img{object-fit:cover;width:100%;height:100%}
.comfort h3{font-size:var(--step-2);letter-spacing:-.02em;font-weight:400}
@media (width>=40rem){.comforts{grid-template-columns:repeat(2,1fr)}}
@media (width>=64rem){.comforts{grid-template-columns:repeat(4,1fr)}
.comfort:nth-child(2n){margin-top:var(--space-2xl)}}
.bft{row-gap:var(--space-xl);align-items:center}
.bft__img{aspect-ratio:4/3;grid-column:1/-1}
.bft__img img{object-fit:cover;width:100%;height:100%}
.bft__text{gap:var(--space-m);grid-column:1/-1;justify-items:start;max-width:32rem;display:grid}
@media (width>=64rem){.bft__img{grid-column:1/7}
.bft__text{grid-column:8/-1}}
.services{background:var(--color-line);border-block:1px solid var(--color-line);gap:1px;display:grid}
.services li{background:var(--paper);align-content:start;gap:.5rem;padding:2rem 1.5rem 2rem 0;display:grid}
.services .icon{color:var(--clay-600);width:1.75rem;height:1.75rem;margin-bottom:.5rem}
.services h3{font-size:var(--step-1);letter-spacing:-.01em;font-weight:600}
.services p{color:var(--color-text-muted);font-size:var(--step--1)}
@media (width>=40rem){.services{grid-template-columns:repeat(2,1fr)}
.services li{padding-inline:1.5rem}}
@media (width>=64rem){.services{grid-template-columns:repeat(3,1fr)}}
.faq-wrap{row-gap:var(--space-xl)}
.faq-wrap__head{gap:var(--space-m);grid-column:1/-1;align-content:start;display:grid}
.faq-wrap__list{grid-column:1/-1}
@media (width>=64rem){.faq-wrap__head{top:calc(var(--header-h-compact) + 2rem);grid-column:1/5;align-self:start;position:sticky}
.faq-wrap__list{grid-column:6/-1}}
/* --- Breakfast page sections (hours band, menu, nesti, coffee band) --- */
.hours-band{background:var(--white);border-bottom:1px solid var(--color-line)}
.hours-band__inner{gap:var(--space-m) var(--space-2xl);padding-block:var(--space-xl);align-items:center;display:grid}
.hours-band__list{gap:var(--space-m) var(--space-2xl);display:grid}
.hours-band__list div{gap:.15rem;display:grid}
.hours-band__list dt{color:var(--color-text-muted);font-weight:600;font-size:var(--step--1)}
.hours-band__list dd{white-space:nowrap;font-size:var(--step-3);letter-spacing:-.04em;color:var(--navy-900);font-variant-numeric:tabular-nums;font-weight:280;line-height:1}
.hours-band__where{font-size:var(--step--1);color:var(--color-text-muted);align-items:center;gap:.5rem;display:inline-flex}
.hours-band__where .icon{color:var(--clay-600)}
@media (width>=48rem){.hours-band__list{grid-template-columns:auto auto;justify-content:start}}
@media (width>=64rem){.hours-band__inner{grid-template-columns:auto 1fr auto}}
.table{row-gap:var(--space-xl)}
.table__head{gap:var(--space-m);grid-column:1/-1;align-content:start;display:grid}
.table__head h2{max-width:10ch}
.dish-list{border-top:1px solid var(--color-line-strong);grid-column:1/-1}
.dish-list__item{padding-block:var(--space-l);border-bottom:1px solid var(--color-line);grid-template-columns:3rem 1fr;gap:1rem;display:grid}
.dish-list__item .index-num{padding-top:.6rem}
.dish-list__item h3{font-size:var(--step-3);letter-spacing:-.03em;font-weight:320;line-height:1.1}
.dish-list__native{color:var(--clay-700);margin-top:.25rem;font-style:italic}
.dish-list__text{max-width:34rem;color:var(--color-text-muted);margin-top:.6rem}
@media (width>=64rem){.table__head{top:calc(var(--header-h-compact) + 2rem);grid-column:1/5;align-self:start;position:sticky}
.dish-list{grid-column:6/-1}
.dish-list__item{grid-template-columns:4rem 1fr}}
.nesti .grid-12{row-gap:var(--space-xl);align-items:center}
.nesti__word{grid-column:1/-1}
.nesti__term{letter-spacing:-.06em;color:var(--navy-900);font-size:clamp(4.5rem,2rem + 12vw,13rem);font-style:italic;font-weight:250;line-height:.85}
.nesti__def{margin-top:var(--space-m);color:var(--color-text-muted);max-width:26rem}
.nesti__text{gap:var(--space-m);grid-column:1/-1;max-width:34rem;display:grid}
.steps{margin-top:var(--space-s);gap:.75rem;display:grid}
.steps li{color:var(--navy-900);align-items:center;gap:.9rem;font-weight:560;display:flex}
.steps span{border:1px solid var(--clay-500);width:2rem;height:2rem;color:var(--clay-600);border-radius:50%;flex:none;place-items:center;font-size:.8125rem;font-weight:700;display:grid}
@media (width>=64rem){.nesti__word{grid-column:1/7}
.nesti__text{grid-column:8/-1}}
.coffee{background:var(--navy-900);display:grid}
.coffee__media{aspect-ratio:4/3;position:relative;overflow:hidden}
.coffee__media picture,.coffee__media img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}
.coffee__text{gap:var(--space-m);padding:var(--space-3xl) var(--gutter);align-content:center;justify-items:start;max-width:40rem;display:grid}
.coffee__text h2{max-width:10ch}
@media (width>=64rem){.coffee{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);min-height:80vh}
.coffee__media{aspect-ratio:auto;order:2}
.coffee__text{padding-left:var(--gutter);margin-left:auto;padding-right:clamp(2.5rem,5vw,6rem)}}
/* ==========================================================================
   Theme additions (not in the static design)
   ========================================================================== */

/* --- Booking widget section (BookVisit search) --- */
.bkw{background:var(--linen)}
.bkw__head{display:grid;gap:var(--space-s);justify-items:start;max-width:40rem;margin-bottom:var(--space-l)}
.bkw__head h2{font-size:var(--step-3);letter-spacing:-.03em;font-weight:320;line-height:1.05}
.bkw__head .lead{color:var(--color-text-muted)}
.bkw__panel{background:var(--white);border-radius:var(--radius-m);box-shadow:var(--shadow-m),0 0 0 1px #1c2b3a0d;padding:clamp(1rem,2vw,1.5rem);overflow:visible}
.bv-widget{min-height:4rem}
.bv-widget noscript p{margin:0;color:var(--color-text-muted)}
/* --- Classic editor content on text pages --- */
.legal .note{padding:1rem 1.25rem;border-left:3px solid var(--clay-500);background:var(--clay-100);border-radius:var(--radius-s)}
.prose ul,.prose ol{padding-left:1.25em;line-height:1.7}
.prose img{height:auto;max-width:100%}
/* --- Home hero booking card with the BookVisit widget --- */
.bcta--widget .bcta__card{flex-wrap:wrap;align-items:center;row-gap:1.25rem;column-gap:1.25rem;padding:1.5rem 1.5rem 1.25rem}
.bcta--widget .bcta__text{flex:1 1 16rem}
.bcta--widget .bcta__title{margin-bottom:.25rem}
.bcta--widget .bcta__widget{flex:1 1 100%;min-width:0}
.bcta--widget .bv-widget{min-height:3.5rem}
.bcta--widget .bcta__assurance{flex:1 1 100%;margin:0;padding:1rem 0 0;border-top:1px solid var(--color-line);gap:.5rem 1.75rem}
@media (width>=64rem){.bcta--widget .bcta__card{padding:1.75rem 2rem 1.5rem;row-gap:1.5rem}.bcta--widget .bcta__assurance{padding-top:1.25rem}}
@media (width<=47.99rem){.bcta--widget .bcta__card{padding:1.25rem 1.25rem 1rem}}

/* --- Reykjavík page sections (map filters, guide tabs, getting around, tours band): merged so the layouts work on any page --- */

/* --- Reykjavik page --- */
.addr{color:var(--navy-900);margin-top:var(--space-s);flex-wrap:wrap;align-items:center;gap:.6rem 1.25rem;font-style:normal;font-weight:560;display:flex}
.addr>.icon{color:var(--clay-600)}
.mapwrap{padding-bottom:var(--space-l)}
.getting__list{background:var(--color-line);border-block:1px solid var(--color-line);gap:1px;display:grid}
.getting__list li{background:var(--paper);align-content:start;gap:.5rem;padding:1.75rem 1.5rem 1.75rem 0;display:grid}
.getting__list .getting__icon{color:var(--clay-600);width:1.75rem;height:1.75rem;margin-bottom:.4rem}
.getting__list h3{font-size:var(--step-1);letter-spacing:-.01em;font-weight:600}
.getting__list p{font-size:var(--step--1);color:var(--color-text-muted)}
@media (width>=40rem){.getting__list{grid-template-columns:repeat(2,1fr)}
.getting__list li{padding-inline:1.5rem}}
@media (width>=64rem){.getting__list{grid-template-columns:repeat(4,1fr)}}
.tabs{margin-bottom:var(--space-xl);scrollbar-width:none;gap:.5rem;padding-bottom:.25rem;display:flex;overflow-x:auto}
.tabs:not([hidden]){display:flex}
.tabs [role=tab]{border:1px solid var(--color-line-strong);border-radius:var(--radius-pill);min-height:2.75rem;color:var(--navy-900);transition:background-color var(--dur-2) ease, color var(--dur-2) ease, border-color var(--dur-2) ease;flex:none;align-items:center;gap:.5rem;padding:.5rem 1.1rem;font-size:.9375rem;font-weight:600;display:inline-flex}
.tabs [role=tab]:hover{border-color:var(--navy-900)}
.tabs [role=tab][aria-selected=true]{background:var(--navy-900);border-color:var(--navy-900);color:#fff}
.tabs .icon{color:currentColor}
.guide__updated{font-size:var(--step--1);color:var(--color-text-muted);margin-top:.5rem}
.panel+.panel{margin-top:var(--space-3xl)}
.js .guide[data-enhanced] .panel+.panel{margin-top:0}
.panel:focus-visible{outline-offset:8px}
.panel__head{gap:var(--space-s);max-width:42rem;margin-bottom:var(--space-xl);justify-items:start;display:grid}
.panel__title{font-size:var(--step-3);letter-spacing:-.03em;font-weight:340}
.places{background:var(--color-line);border-block:1px solid var(--color-line);gap:1px;display:grid}
.place{background:var(--white);transition:box-shadow var(--dur-2) ease;align-content:start;gap:.5rem;padding:1.75rem 1.5rem 2rem 0;display:grid}
.place.is-active{box-shadow:inset 0 2px 0 var(--clay-500)}
.place__top{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.5rem;display:flex}
.place__n{background:var(--slate-600);color:#fff;border-radius:50%;place-items:center;width:1.75rem;height:1.75rem;font-size:.75rem;font-weight:700;display:grid}
.place__n--eat{background:var(--clay-600)}
.place__n--explore{background:var(--olive-700)}
.place__n--essentials{background:#8a5a6a}
.place__n--none{background:none;width:0;min-width:0}
.place__kind{font-size:var(--step--2);letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted);text-align:right;font-weight:650}
.place__name{font-size:var(--step-2);letter-spacing:-.02em;color:var(--navy-900);font-weight:420}
.place__text{font-size:var(--step--1);color:var(--color-text);line-height:1.6}
.place__dist{font-size:var(--step--1);color:var(--slate-600);align-items:center;gap:.4rem;margin-top:.25rem;font-weight:620;display:inline-flex}
.place__link{margin-top:.25rem;font-size:.875rem}
@media (width>=40rem){.places{grid-template-columns:repeat(2,1fr)}
.place{padding-inline:1.5rem}}
@media (width>=64rem){.places{grid-template-columns:repeat(3,1fr)}}
@media (width>=90rem){.places{grid-template-columns:repeat(5,1fr)}}
.tours{isolation:isolate;align-items:end;min-height:80vh;display:grid;position:relative;overflow:hidden}
.tours__media{z-index:-1;position:absolute;inset:0}
.tours__media picture,.tours__media img{object-fit:cover;width:100%;height:100%}
.tours__media:after{content:"";background:linear-gradient(#111b251a,#111b2540 40%,#111b25d9);position:absolute;inset:0}
.tours__inner{gap:var(--space-m);padding-block:var(--section-y);max-width:46rem;margin-left:max(var(--gutter), calc((100vw - var(--max-wide)) / 2));justify-items:start;display:grid}
.tours__inner h2{max-width:12ch}
/* --- Guide ↔ map linking: clickable marker numbers, current place --- */
button.place__n{appearance:none;border:0;font:inherit;cursor:pointer;transition:transform var(--dur-1) ease,box-shadow var(--dur-1) ease}
button.place__n:hover{transform:scale(1.08)}
button.place__n:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}
.place.is-current{background:var(--linen);box-shadow:0 0 0 .75rem var(--linen);border-radius:var(--radius-s)}

/* --- Contact form: Turnstile widget spacing --- */
.cform__turnstile{margin-block:.5rem}
.cform__turnstile:empty{display:none}

/* --- Text pages: simple tables and lists --- */
.prose table{width:100%;border-collapse:collapse;font-size:var(--step--1);margin-block:1.25em}
.prose th,.prose td{text-align:left;vertical-align:top;padding:.6em .75em;border-bottom:1px solid var(--color-line)}
.prose th{font-weight:600;color:var(--color-heading);border-bottom-color:var(--color-line-strong)}
.prose h3{font-size:var(--step-1);font-weight:500;margin-top:1.6em}
@media (width<=47.99rem){.prose table{display:block;overflow-x:auto}}
