/* Karakoy Loft Hotel v3.0 — consolidated shared stylesheet. No external requests. */

:root {
  color-scheme: light;
  --petrol-950:#062f35; --petrol-800:#0b444c; --petrol-650:#17606a; --petrol-100:#dcebed; --petrol-50:#eef6f6;
  --brass-800:#65441e; --brass-700:#7d5727; --brass-500:#b48643; --brass-300:#d8b77a; --brass-100:#f1e3c9;
  --concrete-25:#fcfaf6; --concrete-50:#f8f5ef; --concrete-100:#f0ebe3; --concrete-200:#ded6ca; --concrete-300:#c8beb2; --concrete-400:#aca296;
  --ink-950:#172124; --ink-800:#2d393d; --ink-700:#455256; --ink-600:#586468; --ink-500:#6d777a;
  --white:#fffdf9; --black:#0b0f10; --error:#982f2a; --error-bg:#fff1ef; --success:#2d624f; --success-bg:#edf7f2; --warning:#755515; --warning-bg:#fff8e6; --focus:#f2b95f;
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --text-xs:.75rem; --text-sm:.875rem; --text-base:1rem; --text-lg:1.125rem; --text-xl:1.25rem;
  --text-2xl:clamp(1.35rem,2vw,1.75rem); --text-3xl:clamp(1.75rem,3vw,2.75rem); --text-4xl:clamp(2.25rem,5vw,4.75rem); --text-hero:clamp(2.8rem,7.2vw,7rem);
  --s1:.25rem; --s2:.5rem; --s3:.75rem; --s4:1rem; --s5:1.25rem; --s6:1.5rem; --s8:2rem; --s10:2.5rem; --s12:3rem; --s16:4rem; --s20:5rem; --s24:6rem; --s32:8rem;
  --r-sm:.375rem; --r-md:.625rem; --r-lg:.875rem; --r-xl:1.25rem; --r-pill:999px;
  --shadow-sm:0 1px 2px rgba(6,47,53,.08),0 4px 14px rgba(23,33,36,.05);
  --shadow-md:0 8px 18px rgba(6,47,53,.10),0 18px 46px rgba(23,33,36,.08);
  --shadow-lg:0 18px 40px rgba(6,47,53,.14),0 34px 88px rgba(23,33,36,.13);
  --container:82.5rem; --wide:100rem; --measure:68ch; --header:5rem;
  --fast:140ms; --base:220ms; --slow:280ms; --reveal:420ms; --ease:cubic-bezier(.2,.7,.2,1); --ease-emph:cubic-bezier(.2,.9,.2,1);
}

/* Reset and base */
*,*::before,*::after{box-sizing:border-box}
html{min-width:20rem;scroll-behavior:smooth;text-size-adjust:100%;-webkit-text-size-adjust:100%}
body{min-height:100vh;margin:0;overflow-x:hidden;background:var(--concrete-25);color:var(--ink-950);font-family:var(--font);font-size:var(--text-base);line-height:1.65;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
body.nav-open,body.dialog-open{overflow:hidden}
main{display:block}
img,picture,svg,video,canvas{display:block;max-width:100%} img,video{height:auto}
button,input,select,textarea{margin:0;color:inherit;font:inherit} button,summary,[role="button"]{cursor:pointer} button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:default}
fieldset{min-width:0;margin:0;padding:0;border:0} legend{padding:0} table{width:100%;border-collapse:collapse;border-spacing:0}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure,blockquote{margin-top:0}
h1,h2,h3,h4{margin-bottom:0;font-weight:720;letter-spacing:-.035em;line-height:.98;text-wrap:balance}
p{margin-bottom:0;text-wrap:pretty} ul,ol{padding-left:1.25rem}
a{color:inherit;text-decoration-thickness:.08em;text-underline-offset:.18em} a:hover{text-decoration-thickness:.12em}
::selection{background:var(--brass-300);color:var(--petrol-950)}
:focus{outline:0} :focus-visible{outline:3px solid var(--focus);outline-offset:3px} [hidden]{display:none!important}

/* Accessibility and utilities */
.skip-link{position:fixed;z-index:10000;top:.75rem;left:.75rem;max-width:calc(100% - 1.5rem);padding:.75rem 1rem;transform:translateY(-180%);border-radius:var(--r-sm);background:var(--white);color:var(--petrol-950);box-shadow:var(--shadow-md);font-weight:700;text-decoration:none;transition:transform var(--fast) var(--ease)}
.skip-link:focus{transform:translateY(0)}
.sr-only,.sr-only-focusable:not(:focus):not(:focus-within){position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.container,.container-wide,.container-narrow{width:min(100% - 2rem,var(--container));margin-inline:auto}.container-wide{max-width:var(--wide)}.container-narrow{max-width:54rem}
.section{position:relative;padding-block:clamp(4.5rem,9vw,8rem)}.section--compact{padding-block:clamp(3rem,6vw,5rem)}.section--flush-top{padding-top:0}.section--flush-bottom{padding-bottom:0}
.section--concrete{background:var(--concrete-100)}.section--petrol{background:var(--petrol-950);color:var(--white)}.section--ink{background:var(--ink-950);color:var(--white)}
.section--brass-wash{background:linear-gradient(140deg,rgba(216,183,122,.19),transparent 42%),var(--concrete-50)}
.section-heading{display:grid;gap:var(--s5);max-width:54rem;margin-bottom:clamp(2rem,5vw,4rem)}.section-heading--split{max-width:none}
.eyebrow,.section-heading__eyebrow{display:inline-flex;align-items:center;gap:var(--s3);width:fit-content;margin:0;color:var(--brass-700);font-size:var(--text-xs);font-weight:800;letter-spacing:.13em;line-height:1.2;text-transform:uppercase}
.eyebrow::before,.section-heading__eyebrow::before{width:2.25rem;height:1px;content:"";background:currentColor}
.section--petrol :is(.eyebrow,.section-heading__eyebrow),.section--ink :is(.eyebrow,.section-heading__eyebrow){color:var(--brass-300)}
.section-title{max-width:18ch;font-size:var(--text-4xl)}.section-lead{max-width:var(--measure);color:var(--ink-700);font-size:var(--text-lg);line-height:1.7}
.section--petrol .section-lead,.section--ink .section-lead{color:rgba(255,253,249,.78)}
.flow>*+*{margin-top:var(--flow-space,1.25rem)}.stack{display:grid;gap:var(--stack-gap,var(--s6))}.cluster{display:flex;flex-wrap:wrap;align-items:center;gap:var(--cluster-gap,var(--s4))}.grid{display:grid;gap:var(--grid-gap,var(--s6))}
.grid--2,.grid--3,.grid--4{grid-template-columns:1fr}.reading-width{max-width:var(--measure)}.full-bleed{width:100vw;margin-left:calc(50% - 50vw)}
.rule{width:100%;height:1px;border:0;margin:0;background:var(--concrete-200)}.section--petrol .rule,.section--ink .rule{background:rgba(255,253,249,.16)}
.text-muted{color:var(--ink-700)}.text-small{font-size:var(--text-sm)}.text-caps{font-size:var(--text-xs);font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.text-link{display:inline-flex;align-items:center;gap:.45rem;width:fit-content;color:var(--petrol-800);font-weight:750;text-decoration:none}.text-link::after{width:.9rem;height:.9rem;content:"";background:currentColor;clip-path:polygon(0 45%,72% 45%,52% 25%,60% 17%,100% 50%,60% 83%,52% 75%,72% 55%,0 55%);transition:transform var(--fast) var(--ease)}.text-link:hover::after{transform:translateX(.22rem)}
.section--petrol .text-link,.section--ink .text-link{color:var(--brass-300)}
.icon{width:1.25rem;height:1.25rem;flex:0 0 auto;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.icon--sm{width:1rem;height:1rem}.icon--lg{width:1.75rem;height:1.75rem}

/* Buttons */
.button,.icon-button{position:relative;display:inline-flex;min-height:3rem;align-items:center;justify-content:center;gap:.65rem;border:1px solid transparent;border-radius:var(--r-sm);font-weight:780;line-height:1.1;text-align:center;text-decoration:none;user-select:none;transition:transform var(--fast) var(--ease),color var(--fast) var(--ease),background-color var(--fast) var(--ease),border-color var(--fast) var(--ease),box-shadow var(--fast) var(--ease),opacity var(--fast) var(--ease)}
.button{padding:.9rem 1.25rem;background:var(--petrol-950);color:var(--white);box-shadow:0 8px 20px rgba(6,47,53,.18)}.button:hover{transform:translateY(-2px);background:var(--petrol-800);box-shadow:0 12px 26px rgba(6,47,53,.22)}.button:active{transform:none;box-shadow:0 5px 14px rgba(6,47,53,.16)}
.button--secondary{border-color:var(--petrol-950);background:transparent;color:var(--petrol-950);box-shadow:none}.button--secondary:hover{background:var(--petrol-50);color:var(--petrol-950);box-shadow:none}
.button--light{background:var(--white);color:var(--petrol-950);box-shadow:0 12px 28px rgba(0,0,0,.18)}.button--light:hover{background:var(--concrete-100)}
.button--ghost-light{border-color:rgba(255,253,249,.56);background:transparent;color:var(--white);box-shadow:none}.button--ghost-light:hover{border-color:var(--white);background:rgba(255,253,249,.1);box-shadow:none}
.button--brass{background:var(--brass-500);color:var(--petrol-950);box-shadow:0 8px 24px rgba(180,134,67,.24)}.button--brass:hover{background:var(--brass-300);color:var(--petrol-950)}
.button--small{min-height:2.75rem;padding:.75rem 1rem;font-size:var(--text-sm)}.button--wide{width:100%}
.button:disabled,.button[aria-disabled="true"]{transform:none;border-color:var(--concrete-300);background:var(--concrete-200);color:var(--ink-600);box-shadow:none;opacity:.82}
.button__spinner{width:1rem;height:1rem;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin 700ms linear infinite}
.icon-button{width:3rem;min-width:3rem;padding:0;border-color:var(--concrete-200);background:var(--white);color:var(--petrol-950);box-shadow:var(--shadow-sm)}.icon-button:hover{transform:translateY(-1px);border-color:var(--petrol-650);background:var(--petrol-50)}
.icon-button--dark{border-color:rgba(255,253,249,.24);background:rgba(6,47,53,.82);color:var(--white);box-shadow:none;backdrop-filter:blur(10px)}.icon-button--dark:hover{border-color:rgba(255,253,249,.65);background:var(--petrol-950)}

/* Forms and states */
.form{display:grid;gap:var(--s6)}.form-grid{display:grid;gap:var(--s5)}.form-field{display:grid;gap:var(--s2);min-width:0}
.form-label,.form-legend{color:var(--ink-950);font-size:var(--text-sm);font-weight:780;line-height:1.35}.required-mark{color:var(--error)}
.form-control,.form-select,.form-textarea{width:100%;min-height:3.25rem;border:1px solid var(--concrete-300);border-radius:var(--r-sm);background:var(--white);color:var(--ink-950);transition:border-color var(--fast) var(--ease),box-shadow var(--fast) var(--ease),background-color var(--fast) var(--ease)}
.form-control,.form-select{padding:.78rem .9rem}.form-textarea{min-height:9rem;padding:.85rem .9rem;resize:vertical}
.form-control:hover,.form-select:hover,.form-textarea:hover{border-color:var(--concrete-400)}.form-control:focus,.form-select:focus,.form-textarea:focus{border-color:var(--petrol-650);box-shadow:0 0 0 3px rgba(23,96,106,.16)}
.form-control::placeholder,.form-textarea::placeholder{color:var(--ink-500);opacity:1}.form-control[aria-invalid="true"],.form-select[aria-invalid="true"],.form-textarea[aria-invalid="true"]{border-color:var(--error);background:var(--error-bg);box-shadow:0 0 0 2px rgba(152,47,42,.12)}
.form-control:disabled,.form-select:disabled,.form-textarea:disabled{border-color:var(--concrete-200);background:var(--concrete-100);color:var(--ink-600)}
.form-select{appearance:none;padding-right:2.8rem;background-image:linear-gradient(45deg,transparent 50%,var(--petrol-950) 50%),linear-gradient(135deg,var(--petrol-950) 50%,transparent 50%);background-position:calc(100% - 1.05rem) 50%,calc(100% - .72rem) 50%;background-repeat:no-repeat;background-size:.36rem .36rem,.36rem .36rem}
.form-help,.form-error,.field-count{margin:0;font-size:var(--text-sm);line-height:1.45}.form-help,.field-count{color:var(--ink-700)}.form-error{display:flex;align-items:flex-start;gap:.4rem;color:var(--error);font-weight:700}.form-error::before{width:1rem;height:1rem;flex:0 0 auto;margin-top:.12rem;content:"!";border-radius:50%;background:var(--error);color:var(--white);font-size:.7rem;line-height:1rem;text-align:center}
.form-row-actions{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center;justify-content:space-between}
.checkbox-field,.radio-field{position:relative;display:grid;grid-template-columns:1.35rem 1fr;gap:var(--s3);align-items:start}.checkbox-field input,.radio-field input{width:1.25rem;height:1.25rem;margin-top:.16rem;accent-color:var(--petrol-800)}
.checkbox-field--card,.radio-field--card{padding:var(--s4);border:1px solid var(--concrete-200);border-radius:var(--r-md);background:var(--white)}
:is(.checkbox-field--card,.radio-field--card):has(input:checked),.is-selected{border-color:var(--petrol-650)!important;background:var(--petrol-50);box-shadow:0 0 0 2px rgba(23,96,106,.12)}
.error-summary,.success-summary,.notice,.empty-state{padding:var(--s5);border:1px solid;border-radius:var(--r-md)}.error-summary{border-color:rgba(152,47,42,.34);background:var(--error-bg);color:var(--error)}.success-summary{border-color:rgba(45,98,79,.32);background:var(--success-bg);color:var(--success)}.notice{border-color:rgba(117,85,21,.28);background:var(--warning-bg);color:var(--warning)}
.empty-state{display:grid;place-items:center;min-height:16rem;border-color:var(--concrete-200);border-style:dashed;background:var(--concrete-50);color:var(--ink-700);text-align:center}
:is(.error-summary,.success-summary,.notice,.empty-state)>:is(h2,h3){margin-bottom:var(--s2);color:inherit;font-size:var(--text-xl);letter-spacing:-.02em;line-height:1.2}

/* Header and navigation */
.site-header{position:sticky;z-index:1000;top:0;width:100%;border-bottom:1px solid transparent;background:rgba(252,250,246,.92);color:var(--petrol-950);transition:background-color var(--base) var(--ease),border-color var(--base) var(--ease),box-shadow var(--base) var(--ease),color var(--base) var(--ease);backdrop-filter:blur(16px)}
.site-header[data-overlay="true"]{position:fixed;background:linear-gradient(180deg,rgba(6,47,53,.76),rgba(6,47,53,0));color:var(--white);backdrop-filter:none}.site-header[data-overlay="true"].is-scrolled,.site-header.is-scrolled{border-bottom-color:rgba(23,33,36,.08);background:rgba(252,250,246,.96);color:var(--petrol-950);box-shadow:0 8px 30px rgba(23,33,36,.08);backdrop-filter:blur(18px)}
.site-header__inner{display:grid;min-height:var(--header);grid-template-columns:auto 1fr auto;align-items:center;gap:var(--s4)}
.site-logo{display:inline-flex;min-height:2.75rem;align-items:center;gap:var(--s3);width:fit-content;color:inherit;font-weight:820;letter-spacing:-.03em;line-height:1;text-decoration:none}.site-logo__mark{width:2.3rem;height:2.3rem;flex:0 0 auto}.site-logo__text{display:grid;gap:.12rem}.site-logo__name{font-size:1rem}.site-logo__descriptor{font-size:.63rem;font-weight:750;letter-spacing:.14em;opacity:.72;text-transform:uppercase}
.primary-nav{display:none;justify-self:center}.primary-nav__list,.mobile-nav__list,.footer-nav,.breadcrumbs__list{margin:0;padding:0;list-style:none}.primary-nav__list{display:flex;align-items:center;gap:clamp(1rem,2vw,2rem)}
.primary-nav__link{position:relative;display:inline-flex;min-height:2.75rem;align-items:center;padding-inline:.15rem;color:inherit;font-size:var(--text-sm);font-weight:720;text-decoration:none}.primary-nav__link::after{position:absolute;right:0;bottom:.38rem;left:0;height:2px;content:"";transform:scaleX(0);transform-origin:right;background:var(--brass-500);transition:transform var(--base) var(--ease)}.primary-nav__link:hover::after,.primary-nav__link[aria-current="page"]::after{transform:scaleX(1);transform-origin:left}
.site-header__cta{display:none}.nav-toggle{display:inline-grid;width:3rem;height:3rem;place-items:center;justify-self:end;border:1px solid currentColor;border-radius:var(--r-sm);background:transparent;color:inherit}.nav-toggle__icon{position:relative;width:1.35rem;height:1rem}
.nav-toggle__icon::before,.nav-toggle__icon::after,.nav-toggle__icon span{position:absolute;left:0;width:100%;height:2px;content:"";background:currentColor;transition:transform var(--base) var(--ease),top var(--base) var(--ease),opacity var(--fast) var(--ease)}.nav-toggle__icon::before{top:0}.nav-toggle__icon span{top:.44rem}.nav-toggle__icon::after{top:.88rem}.nav-toggle[aria-expanded="true"] .nav-toggle__icon::before{top:.44rem;transform:rotate(45deg)}.nav-toggle[aria-expanded="true"] .nav-toggle__icon span{opacity:0}.nav-toggle[aria-expanded="true"] .nav-toggle__icon::after{top:.44rem;transform:rotate(-45deg)}
.mobile-nav{position:fixed;z-index:990;inset:var(--header) 0 0;display:grid;grid-template-rows:1fr auto;padding:var(--s6) 1rem calc(var(--s6) + env(safe-area-inset-bottom));transform:translateX(100%);visibility:hidden;background:var(--petrol-950);color:var(--white);transition:transform var(--slow) var(--ease-emph),visibility 0s linear var(--slow)}.mobile-nav.is-open{transform:none;visibility:visible;transition-delay:0s}.mobile-nav__list{display:grid;align-content:start}.mobile-nav__link{display:flex;min-height:4rem;align-items:center;justify-content:space-between;gap:var(--s4);border-bottom:1px solid rgba(255,253,249,.15);color:inherit;font-size:var(--text-xl);font-weight:720;text-decoration:none}.mobile-nav__link[aria-current="page"]{color:var(--brass-300)}.mobile-nav__footer{display:grid;gap:var(--s4);padding-top:var(--s6)}.mobile-nav__meta{color:rgba(255,253,249,.7);font-size:var(--text-sm)}
.no-js-nav{padding:var(--s4) 1rem;border-bottom:1px solid var(--concrete-200);background:var(--concrete-50)}.no-js-nav__list{display:flex;flex-wrap:wrap;gap:var(--s3) var(--s5);margin:0;padding:0;list-style:none}.no-js-nav a{color:var(--petrol-950);font-weight:720}
.breadcrumbs{padding-block:var(--s5)}.breadcrumbs__list{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center;color:var(--ink-700);font-size:var(--text-sm)}.breadcrumbs__item{display:inline-flex;align-items:center;gap:var(--s2)}.breadcrumbs__item:not(:last-child)::after{content:"/";color:var(--concrete-400)}.breadcrumbs__link{color:var(--petrol-800)}

/* Media and heroes */
.media-frame{position:relative;overflow:hidden;border-radius:var(--r-lg);background:linear-gradient(135deg,rgba(23,96,106,.16),rgba(180,134,67,.12)),var(--concrete-200);box-shadow:var(--shadow-sm);isolation:isolate}.media-frame::after{position:absolute;z-index:1;inset:0;pointer-events:none;content:"";box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)}.media-frame img,.media-frame video{width:100%;height:100%;object-fit:cover}.media-frame--3x2{aspect-ratio:3/2}.media-frame--4x3{aspect-ratio:4/3}.media-frame--3x4{aspect-ratio:3/4}.media-frame--square{aspect-ratio:1}.media-frame--portrait{aspect-ratio:4/5}.media-frame--dark::before{position:absolute;z-index:1;inset:0;content:"";background:linear-gradient(180deg,rgba(6,47,53,.03) 28%,rgba(6,47,53,.72) 100%)}
.hero{position:relative;min-height:min(58rem,100svh);display:grid;align-items:end;overflow:hidden;background:var(--petrol-950);color:var(--white)}.hero__media,.hero__overlay{position:absolute;inset:0}.hero__media img,.hero__media video{width:100%;height:100%;object-fit:cover}.hero__overlay{background:linear-gradient(180deg,rgba(6,47,53,.28),rgba(6,47,53,.12) 35%,rgba(6,47,53,.86)),linear-gradient(90deg,rgba(6,47,53,.58),transparent 72%)}
.hero__inner{position:relative;z-index:2;display:grid;gap:var(--s8);padding-top:calc(var(--header) + var(--s20));padding-bottom:clamp(5rem,12vw,9rem)}.hero__content{display:grid;gap:var(--s6);max-width:69rem}.hero__eyebrow{color:var(--brass-300)}.hero__title{max-width:14ch;font-size:var(--text-hero);line-height:.9;text-shadow:0 3px 30px rgba(0,0,0,.24)}.hero__lead{max-width:45rem;color:rgba(255,253,249,.88);font-size:clamp(1.05rem,2vw,1.35rem);line-height:1.65}.hero__actions{display:flex;flex-wrap:wrap;gap:var(--s3)}.hero__scroll-cue{display:none;align-items:center;gap:var(--s3);color:rgba(255,253,249,.74);font-size:var(--text-sm);text-decoration:none}.hero__scroll-cue::before{width:1px;height:2.5rem;content:"";background:linear-gradient(var(--brass-300),transparent)}
.page-hero{position:relative;overflow:hidden;padding-block:clamp(6rem,13vw,11rem) clamp(4rem,9vw,7rem);background:radial-gradient(circle at 85% 20%,rgba(180,134,67,.2),transparent 30%),linear-gradient(135deg,var(--petrol-950),#0a3c43 64%,#0d4b53);color:var(--white)}.page-hero::after{position:absolute;right:-8rem;bottom:-13rem;width:32rem;height:32rem;content:"";border:1px solid rgba(216,183,122,.22);border-radius:50%;box-shadow:0 0 0 4rem rgba(216,183,122,.03),0 0 0 8rem rgba(216,183,122,.025)}.page-hero__inner{position:relative;z-index:1;display:grid;gap:var(--s6);max-width:64rem}.page-hero__title{max-width:16ch;font-size:var(--text-4xl)}.page-hero__lead{max-width:48rem;color:rgba(255,253,249,.8);font-size:var(--text-lg)}
.page-hero--media{min-height:36rem;display:grid;align-items:end;padding:0;background:var(--petrol-950)}.page-hero--media :is(.page-hero__media,.page-hero__shade){position:absolute;inset:0}.page-hero--media .page-hero__media img{width:100%;height:100%;object-fit:cover}.page-hero--media .page-hero__shade{background:linear-gradient(180deg,rgba(6,47,53,.16),rgba(6,47,53,.88))}.page-hero--media .page-hero__inner{padding-block:calc(var(--header) + var(--s20)) var(--s20)}

/* Availability, stats and editorial layouts */
.availability-wrap{position:relative;z-index:4;margin-top:clamp(-3.8rem,-5vw,-2.5rem)}.availability-bar{display:grid;gap:var(--s4);padding:var(--s5);border:1px solid rgba(23,33,36,.08);border-radius:var(--r-lg);background:rgba(255,253,249,.97);box-shadow:var(--shadow-lg);backdrop-filter:blur(16px)}.availability-bar__field{display:grid;gap:var(--s1)}.availability-bar__label{color:var(--ink-700);font-size:var(--text-xs);font-weight:800;letter-spacing:.09em;text-transform:uppercase}.availability-bar__control{width:100%;min-height:3rem;border:0;border-bottom:1px solid var(--concrete-300);border-radius:0;background:transparent;color:var(--ink-950);font-weight:700}.availability-bar__control:focus{border-bottom-color:var(--petrol-650);box-shadow:0 2px 0 var(--petrol-650)}.availability-bar .button{align-self:end}
.stat-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--concrete-200);border-left:1px solid var(--concrete-200)}.stat{display:grid;min-height:8.5rem;align-content:center;gap:var(--s2);padding:var(--s5);border-right:1px solid var(--concrete-200);border-bottom:1px solid var(--concrete-200);background:var(--concrete-25)}.stat__value{color:var(--petrol-950);font-size:clamp(1.8rem,5vw,3rem);font-weight:800;letter-spacing:-.04em;line-height:1}.stat__label{color:var(--ink-700);font-size:var(--text-sm);font-weight:680}
.feature-strip{display:grid;gap:var(--s3)}.feature-strip__item{display:flex;min-height:4.25rem;align-items:center;gap:var(--s3);padding:var(--s4);border:1px solid rgba(255,253,249,.13);border-radius:var(--r-sm);background:rgba(255,253,249,.05);color:rgba(255,253,249,.85);font-size:var(--text-sm);font-weight:700}.feature-strip__icon{color:var(--brass-300)}
.editorial-split{display:grid;gap:var(--s8);align-items:center}.editorial-split__content{display:grid;gap:var(--s5);max-width:39rem}.editorial-split__media{display:grid;gap:var(--s4)}.editorial-split__media--offset .media-frame:nth-child(2){width:72%;margin-top:-20%;margin-left:auto;border:.5rem solid var(--concrete-25);box-shadow:var(--shadow-md)}.section--concrete .editorial-split__media--offset .media-frame:nth-child(2){border-color:var(--concrete-100)}
.editorial-quote{position:relative;margin:0;padding-left:var(--s6);border-left:3px solid var(--brass-500);color:var(--petrol-950);font-size:clamp(1.25rem,2.5vw,1.85rem);font-weight:700;letter-spacing:-.02em;line-height:1.4}
.detail-grid{display:grid;gap:var(--s6)}.detail-card{padding:var(--s6);border:1px solid var(--concrete-200);border-radius:var(--r-md);background:var(--white);box-shadow:var(--shadow-sm)}.detail-card__icon{display:grid;width:3rem;height:3rem;place-items:center;margin-bottom:var(--s5);border-radius:50%;background:var(--petrol-50);color:var(--petrol-800)}.detail-card__title{margin-bottom:var(--s3);font-size:var(--text-xl);line-height:1.18}.detail-card__text{color:var(--ink-700)}

/* Room cards and room listing */
.room-grid{display:grid;gap:var(--s6)}.room-card{position:relative;display:grid;overflow:hidden;border:1px solid var(--concrete-200);border-radius:var(--r-lg);background:var(--white);box-shadow:var(--shadow-sm);transition:transform var(--base) var(--ease),box-shadow var(--base) var(--ease),border-color var(--base) var(--ease)}.room-card:hover{transform:translateY(-4px);border-color:rgba(23,96,106,.3);box-shadow:var(--shadow-md)}
.room-card__media{position:relative;aspect-ratio:4/3;overflow:hidden;background:linear-gradient(135deg,rgba(23,96,106,.18),rgba(180,134,67,.16)),var(--concrete-200)}.room-card__media img{width:100%;height:100%;object-fit:cover;transition:transform 600ms var(--ease)}.room-card:hover .room-card__media img{transform:scale(1.025)}.room-card__badge{position:absolute;z-index:2;top:var(--s4);left:var(--s4);display:inline-flex;min-height:2rem;align-items:center;padding:.35rem .7rem;border-radius:var(--r-pill);background:rgba(6,47,53,.88);color:var(--white);font-size:var(--text-xs);font-weight:800;letter-spacing:.07em;text-transform:uppercase;backdrop-filter:blur(8px)}
.room-card__body{display:grid;gap:var(--s5);padding:var(--s6)}.room-card__heading{display:grid;gap:var(--s2)}.room-card__title-row{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--s3)}.room-card__title{font-size:var(--text-2xl)}.room-card__price{color:var(--petrol-800);font-size:var(--text-lg);font-weight:800;white-space:nowrap}.room-card__price small{color:var(--ink-600);font-size:var(--text-xs);font-weight:650}.room-card__description{color:var(--ink-700)}
.room-meta{display:flex;flex-wrap:wrap;gap:var(--s2);margin:0;padding:0;list-style:none}.room-meta__item{display:inline-flex;min-height:2.25rem;align-items:center;gap:.42rem;padding:.45rem .7rem;border-radius:var(--r-pill);background:var(--concrete-100);color:var(--ink-800);font-size:var(--text-sm);font-weight:680}.room-card__actions{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center;margin-top:auto}
.room-card--featured{background:var(--petrol-950);color:var(--white)}.room-card--featured .room-card__body{padding:clamp(1.5rem,4vw,2.5rem)}.room-card--featured :is(.room-card__price,.text-link){color:var(--brass-300)}.room-card--featured .room-card__description{color:rgba(255,253,249,.76)}.room-card--featured .room-meta__item{background:rgba(255,253,249,.1);color:rgba(255,253,249,.88)}
.room-filter-bar{position:sticky;z-index:20;top:calc(var(--header) + .75rem);display:flex;gap:var(--s2);margin-bottom:var(--s8);padding:var(--s3);overflow-x:auto;border:1px solid var(--concrete-200);border-radius:var(--r-md);background:rgba(252,250,246,.95);box-shadow:var(--shadow-sm);scrollbar-width:thin;backdrop-filter:blur(14px)}.filter-button{min-height:2.75rem;flex:0 0 auto;padding:.65rem .95rem;border:1px solid var(--concrete-300);border-radius:var(--r-pill);background:var(--white);color:var(--ink-800);font-size:var(--text-sm);font-weight:720}.filter-button:hover{border-color:var(--petrol-650);background:var(--petrol-50)}.filter-button[aria-pressed="true"]{border-color:var(--petrol-950);background:var(--petrol-950);color:var(--white)}
.room-section{display:grid;gap:var(--s8);padding-block:var(--s16);border-top:1px solid var(--concrete-200)}.room-section:first-of-type{padding-top:0;border-top:0}.room-section__content{display:grid;align-content:start;gap:var(--s5)}.room-section__title-row{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--s3)}.room-section__title{font-size:var(--text-3xl)}.room-section__price{color:var(--petrol-800);font-size:var(--text-xl);font-weight:800}
.amenity-list{display:grid;grid-template-columns:1fr;gap:var(--s3);margin:0;padding:0;list-style:none}.amenity-list__item{display:flex;align-items:flex-start;gap:var(--s3);color:var(--ink-800)}.amenity-list__icon{display:grid;width:2rem;height:2rem;flex:0 0 auto;place-items:center;border-radius:50%;background:var(--petrol-50);color:var(--petrol-800)}
.room-gallery-strip{display:grid;grid-auto-columns:minmax(16rem,78%);grid-auto-flow:column;gap:var(--s4);overflow-x:auto;overscroll-behavior-inline:contain;padding-bottom:var(--s2);scroll-snap-type:inline mandatory;scrollbar-width:thin}.room-gallery-strip .media-frame{scroll-snap-align:start}
.comparison-wrap{overflow-x:auto;border:1px solid var(--concrete-200);border-radius:var(--r-md);background:var(--white);box-shadow:var(--shadow-sm)}.comparison-table{min-width:58rem}.comparison-table th,.comparison-table td{padding:var(--s4);border-bottom:1px solid var(--concrete-200);text-align:left;vertical-align:top}.comparison-table thead th{position:sticky;top:0;background:var(--petrol-950);color:var(--white);font-size:var(--text-sm)}.comparison-table tbody th{width:13rem;background:var(--concrete-50);color:var(--petrol-950);font-size:var(--text-sm)}.comparison-table tr:last-child>*{border-bottom:0}

/* Gallery, lightbox and room detail */
.gallery-mosaic{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3)}.gallery-mosaic__item{position:relative;min-width:0;padding:0;overflow:hidden;border:0;border-radius:var(--r-md);background:var(--concrete-200);box-shadow:var(--shadow-sm)}.gallery-mosaic__item:first-child{grid-column:1/-1;aspect-ratio:16/10}.gallery-mosaic__item:not(:first-child){aspect-ratio:1}.gallery-mosaic__item img{width:100%;height:100%;object-fit:cover;transition:transform var(--slow) var(--ease)}.gallery-mosaic__item:hover img{transform:scale(1.025)}.gallery-mosaic__item::after{position:absolute;inset:0;content:"";border:1px solid rgba(255,255,255,.15);border-radius:inherit;pointer-events:none}.gallery-mosaic__count{position:absolute;right:var(--s3);bottom:var(--s3);display:inline-flex;min-height:2.25rem;align-items:center;gap:var(--s2);padding:.45rem .75rem;border-radius:var(--r-pill);background:rgba(6,47,53,.88);color:var(--white);font-size:var(--text-sm);font-weight:750;backdrop-filter:blur(8px)}
.lightbox{width:min(96vw,92rem);max-width:none;height:min(94svh,58rem);max-height:none;padding:0;border:0;border-radius:var(--r-lg);overflow:hidden;background:var(--black);color:var(--white);box-shadow:0 40px 120px rgba(0,0,0,.48)}.lightbox::backdrop{background:rgba(3,11,13,.9);backdrop-filter:blur(8px)}.lightbox[open]{display:grid;animation:dialog-in var(--slow) var(--ease-emph)}.lightbox__layout{display:grid;min-height:0;grid-template-rows:auto 1fr auto}.lightbox__header,.lightbox__footer{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);padding:var(--s3) var(--s4);background:rgba(11,15,16,.96)}.lightbox__counter{color:rgba(255,253,249,.75);font-size:var(--text-sm);font-weight:700}.lightbox__stage{position:relative;display:grid;min-height:0;place-items:center;overflow:hidden;background:var(--black)}.lightbox__image{width:100%;height:100%;max-height:calc(94svh - 9rem);object-fit:contain}.lightbox__nav{position:absolute;top:50%;transform:translateY(-50%)}.lightbox__nav--prev{left:var(--s3)}.lightbox__nav--next{right:var(--s3)}.lightbox__caption{max-width:70ch;margin:0;color:rgba(255,253,249,.78);font-size:var(--text-sm)}
.room-detail-header{display:grid;gap:var(--s5);padding-bottom:var(--s8)}.room-detail-header__title{font-size:var(--text-4xl)}.room-detail-header__meta{display:flex;flex-wrap:wrap;gap:var(--s2)}.room-detail-layout{display:grid;gap:var(--s10);align-items:start}.room-detail-main{min-width:0}
.booking-panel{display:grid;gap:var(--s5);padding:var(--s6);border:1px solid var(--concrete-200);border-radius:var(--r-lg);background:var(--white);box-shadow:var(--shadow-md)}.booking-panel__price{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--s3)}.booking-panel__amount{color:var(--petrol-950);font-size:clamp(1.7rem,4vw,2.4rem);font-weight:820;letter-spacing:-.04em;line-height:1}.booking-panel__amount small{color:var(--ink-600);font-size:var(--text-sm);font-weight:650}.booking-panel__note{color:var(--ink-700);font-size:var(--text-sm)}
.floor-plan{padding:var(--s4);border:1px solid var(--concrete-200);border-radius:var(--r-md);background:var(--white);box-shadow:var(--shadow-sm)}.floor-plan img,.floor-plan svg{width:100%;height:auto}.floor-plan__caption{margin-top:var(--s3);color:var(--ink-700);font-size:var(--text-sm)}
.mobile-booking-bar{position:fixed;z-index:800;right:0;bottom:0;left:0;display:grid;grid-template-columns:1fr auto;gap:var(--s4);align-items:center;padding:var(--s3) 1rem calc(var(--s3) + env(safe-area-inset-bottom));transform:none;border-top:1px solid var(--concrete-200);background:rgba(255,253,249,.97);box-shadow:0 -10px 30px rgba(23,33,36,.12);transition:transform var(--base) var(--ease);backdrop-filter:blur(14px)}.mobile-booking-bar.is-hidden{transform:translateY(110%)}.mobile-booking-bar__price{display:grid;gap:.08rem;line-height:1.2}.mobile-booking-bar__price strong{color:var(--petrol-950);font-size:var(--text-lg)}.mobile-booking-bar__price span{color:var(--ink-600);font-size:var(--text-xs)}.has-mobile-booking-bar{padding-bottom:calc(5rem + env(safe-area-inset-bottom))}

/* Booking funnel */
.booking-page{background:var(--concrete-50)}.booking-shell{display:grid;gap:var(--s8);align-items:start}.progress-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s2);margin:0;padding:0;list-style:none}.progress-step{position:relative;display:grid;gap:var(--s2);min-width:0}.progress-step::before{position:absolute;z-index:0;top:1rem;right:calc(50% + 1.1rem);left:calc(-50% + 1.1rem);height:2px;content:"";background:var(--concrete-300)}.progress-step:first-child::before{display:none}.progress-step.is-complete::before,.progress-step.is-current::before{background:var(--petrol-650)}.progress-step__marker{position:relative;z-index:1;display:grid;width:2rem;height:2rem;place-items:center;justify-self:center;border:2px solid var(--concrete-300);border-radius:50%;background:var(--concrete-50);color:var(--ink-600);font-size:var(--text-sm);font-weight:800}.progress-step.is-current .progress-step__marker,.progress-step.is-complete .progress-step__marker{border-color:var(--petrol-650);background:var(--petrol-650);color:var(--white)}.progress-step__label{color:var(--ink-600);font-size:var(--text-xs);font-weight:750;line-height:1.25;text-align:center}.progress-step.is-current .progress-step__label,.progress-step.is-complete .progress-step__label{color:var(--petrol-950)}
.booking-card{padding:clamp(1.25rem,4vw,2.25rem);border:1px solid var(--concrete-200);border-radius:var(--r-lg);background:var(--white);box-shadow:var(--shadow-sm)}.booking-step{display:grid;gap:var(--s8)}.booking-step__header{display:grid;gap:var(--s3)}.booking-step__title{font-size:var(--text-3xl)}.booking-step__lead{color:var(--ink-700)}.booking-step__actions{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center;justify-content:space-between;padding-top:var(--s6);border-top:1px solid var(--concrete-200)}
.calendar-shell{display:grid;gap:var(--s5)}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--s4)}.calendar-toolbar__title{font-size:var(--text-xl);line-height:1.2}.calendar-months{display:grid;gap:var(--s6)}.calendar-month{min-width:0}.calendar-month__title{margin-bottom:var(--s3);color:var(--petrol-950);font-size:var(--text-lg);line-height:1.25;text-align:center}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.2rem}.calendar-weekday{display:grid;min-height:2rem;place-items:center;color:var(--ink-600);font-size:.7rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.calendar-day{position:relative;display:grid;min-width:0;min-height:2.75rem;place-items:center;padding:.2rem;border:0;border-radius:var(--r-sm);background:transparent;color:var(--ink-950);font-size:var(--text-sm);font-weight:700;transition:background-color var(--fast) var(--ease),color var(--fast) var(--ease),box-shadow var(--fast) var(--ease)}.calendar-day:hover:not(:disabled){background:var(--petrol-50)}.calendar-day:focus-visible{z-index:2;outline-offset:1px}.calendar-day.is-today::after{position:absolute;bottom:.25rem;width:.28rem;height:.28rem;content:"";border-radius:50%;background:var(--brass-500)}.calendar-day.is-in-range{border-radius:0;background:var(--petrol-100);color:var(--petrol-950)}.calendar-day.is-start,.calendar-day.is-end{z-index:1;border-radius:var(--r-sm);background:var(--petrol-950);color:var(--white);box-shadow:0 5px 14px rgba(6,47,53,.22)}.calendar-day.is-checkout-only{box-shadow:inset 0 -2px var(--brass-500)}.calendar-day:disabled,.calendar-day.is-unavailable{background:linear-gradient(135deg,transparent 45%,rgba(69,82,86,.2) 46%,rgba(69,82,86,.2) 54%,transparent 55%);color:var(--ink-500);opacity:.65}.calendar-day.is-outside-month{color:var(--concrete-400)}
.calendar-legend{display:flex;flex-wrap:wrap;gap:var(--s4);padding-top:var(--s3);border-top:1px solid var(--concrete-200);color:var(--ink-700);font-size:var(--text-xs)}.calendar-legend__item{display:inline-flex;align-items:center;gap:var(--s2)}.calendar-legend__swatch{width:1rem;height:1rem;border:1px solid var(--concrete-300);border-radius:.18rem;background:var(--white)}.calendar-legend__swatch--selected{border-color:var(--petrol-950);background:var(--petrol-950)}.calendar-legend__swatch--range{border-color:var(--petrol-100);background:var(--petrol-100)}.calendar-legend__swatch--unavailable{background:linear-gradient(135deg,transparent 43%,rgba(69,82,86,.4) 44%,rgba(69,82,86,.4) 56%,transparent 57%),var(--concrete-100)}
.date-summary{display:grid;gap:var(--s3);padding:var(--s4);border:1px solid var(--concrete-200);border-radius:var(--r-md);background:var(--concrete-50)}.date-summary__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4)}.date-summary__item{display:grid;gap:.12rem}.date-summary__label{color:var(--ink-600);font-size:var(--text-xs);font-weight:800;letter-spacing:.06em;text-transform:uppercase}.date-summary__value{color:var(--petrol-950);font-weight:780}
.guest-list{display:grid;gap:var(--s3)}.guest-row{display:grid;grid-template-columns:1fr auto;gap:var(--s5);align-items:center;padding:var(--s4);border:1px solid var(--concrete-200);border-radius:var(--r-md);background:var(--white)}.guest-row__copy{display:grid;gap:.1rem}.guest-row__label{color:var(--ink-950);font-weight:780}.guest-row__help{color:var(--ink-600);font-size:var(--text-sm)}.stepper{display:grid;grid-template-columns:2.75rem 2.8rem 2.75rem;align-items:center}.stepper__button{display:grid;width:2.75rem;height:2.75rem;place-items:center;border:1px solid var(--concrete-300);background:var(--white);color:var(--petrol-950);font-size:1.25rem;font-weight:700}.stepper__button:first-child{border-radius:var(--r-sm) 0 0 var(--r-sm)}.stepper__button:last-child{border-radius:0 var(--r-sm) var(--r-sm) 0}.stepper__button:hover:not(:disabled){border-color:var(--petrol-650);background:var(--petrol-50)}.stepper__button:disabled{background:var(--concrete-100);color:var(--ink-500)}.stepper__value{display:grid;height:2.75rem;place-items:center;border-block:1px solid var(--concrete-300);background:var(--white);font-weight:780}
.booking-room-list{display:grid;gap:var(--s4)}.booking-room-option{position:relative;display:grid;overflow:hidden;border:1px solid var(--concrete-200);border-radius:var(--r-md);background:var(--white);transition:border-color var(--fast) var(--ease),box-shadow var(--fast) var(--ease),transform var(--fast) var(--ease)}.booking-room-option:hover{transform:translateY(-2px);border-color:rgba(23,96,106,.44);box-shadow:var(--shadow-sm)}.booking-room-option:has(input:checked){border-color:var(--petrol-650);box-shadow:0 0 0 2px rgba(23,96,106,.16),var(--shadow-sm)}.booking-room-option__media{aspect-ratio:16/10;background:var(--concrete-200)}.booking-room-option__media img{width:100%;height:100%;object-fit:cover}.booking-room-option__body{display:grid;gap:var(--s4);padding:var(--s5)}.booking-room-option__select{display:grid;grid-template-columns:1.25rem 1fr;gap:var(--s3);align-items:start}.booking-room-option__select input{width:1.2rem;height:1.2rem;margin-top:.2rem;accent-color:var(--petrol-800)}.booking-room-option__title{font-size:var(--text-xl);line-height:1.2}.booking-room-option__total{display:grid;gap:.1rem;justify-items:start}.booking-room-option__total strong{color:var(--petrol-950);font-size:var(--text-xl)}.booking-room-option__total span{color:var(--ink-600);font-size:var(--text-xs)}
.price-summary{display:grid;gap:var(--s5);padding:var(--s6);border:1px solid var(--concrete-200);border-radius:var(--r-lg);background:var(--petrol-950);color:var(--white);box-shadow:var(--shadow-md)}.price-summary__header{display:flex;align-items:center;justify-content:space-between;gap:var(--s4)}.price-summary__title{font-size:var(--text-xl);line-height:1.2}.price-summary__toggle{display:inline-flex;min-width:2.75rem;min-height:2.75rem;align-items:center;justify-content:center;border:1px solid rgba(255,253,249,.28);border-radius:var(--r-sm);background:transparent;color:var(--white)}.price-summary__details{display:grid;gap:var(--s4)}.price-summary__stay{display:grid;gap:var(--s2);padding-bottom:var(--s4);border-bottom:1px solid rgba(255,253,249,.16);color:rgba(255,253,249,.76);font-size:var(--text-sm)}.price-lines{display:grid;gap:var(--s3);margin:0}.price-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s4);align-items:baseline}.price-line dt,.price-line dd{margin:0}.price-line dt{color:rgba(255,253,249,.72);font-size:var(--text-sm)}.price-line dd{color:var(--white);font-weight:720;text-align:right;white-space:nowrap}.price-line--discount dd{color:var(--brass-300)}.price-total{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s4);padding-top:var(--s4);border-top:1px solid rgba(255,253,249,.24)}.price-total__label{color:rgba(255,253,249,.8);font-weight:760}.price-total__amount{color:var(--brass-300);font-size:clamp(1.7rem,4vw,2.35rem);font-weight:820;letter-spacing:-.04em;line-height:1}.price-summary__fineprint{color:rgba(255,253,249,.62);font-size:var(--text-xs)}
.booking-success{display:grid;justify-items:start;gap:var(--s6);padding:clamp(1.5rem,5vw,3.5rem);border:1px solid rgba(45,98,79,.28);border-radius:var(--r-lg);background:radial-gradient(circle at 100% 0,rgba(45,98,79,.14),transparent 35%),var(--white);box-shadow:var(--shadow-md)}.booking-success__icon{display:grid;width:4rem;height:4rem;place-items:center;border-radius:50%;background:var(--success-bg);color:var(--success)}.booking-success__title{font-size:var(--text-3xl)}.booking-success__reference{display:grid;gap:var(--s2);padding:var(--s4) var(--s5);border:1px dashed var(--concrete-300);border-radius:var(--r-sm);background:var(--concrete-50)}.booking-success__reference span{color:var(--ink-600);font-size:var(--text-xs);font-weight:800;letter-spacing:.08em;text-transform:uppercase}.booking-success__reference strong{color:var(--petrol-950);font-size:var(--text-xl);letter-spacing:.08em}

/* Neighbourhood, contact and FAQ */
.map-layout{display:grid;gap:var(--s8);align-items:start}.editorial-map{position:relative;overflow:hidden;border:1px solid var(--concrete-200);border-radius:var(--r-lg);background:var(--concrete-100);box-shadow:var(--shadow-md)}.editorial-map__base{width:100%;height:auto}.map-marker{position:absolute;display:grid;width:2.5rem;height:2.5rem;place-items:center;transform:translate(-50%,-50%);border:2px solid var(--white);border-radius:50%;background:var(--petrol-950);color:var(--white);box-shadow:0 6px 18px rgba(6,47,53,.32);font-size:var(--text-sm);font-weight:820;text-decoration:none;transition:transform var(--fast) var(--ease),background-color var(--fast) var(--ease)}.map-marker:hover,.map-marker:focus-visible{z-index:2;transform:translate(-50%,-50%) scale(1.12);background:var(--brass-700)}.map-marker.is-active{background:var(--brass-700)}
.map-list{display:grid;gap:var(--s3);margin:0;padding:0;list-style:none}.map-list__button{display:grid;width:100%;grid-template-columns:2.5rem 1fr auto;gap:var(--s3);align-items:center;padding:var(--s3);border:1px solid var(--concrete-200);border-radius:var(--r-sm);background:var(--white);color:var(--ink-950);text-align:left;transition:border-color var(--fast) var(--ease),background-color var(--fast) var(--ease),transform var(--fast) var(--ease)}.map-list__button:hover,.map-list__button.is-active{transform:translateX(.2rem);border-color:var(--petrol-650);background:var(--petrol-50)}.map-list__number{display:grid;width:2.5rem;height:2.5rem;place-items:center;border-radius:50%;background:var(--petrol-950);color:var(--white);font-weight:820}.map-list__copy{display:grid;gap:.08rem}.map-list__title{font-weight:780}.map-list__type,.map-list__time{color:var(--ink-600);font-size:var(--text-sm)}
.route-grid,.place-grid,.contact-grid{display:grid;gap:var(--s6)}.route-card,.place-card{overflow:hidden;border:1px solid var(--concrete-200);border-radius:var(--r-lg);background:var(--white);box-shadow:var(--shadow-sm)}.route-card__body,.place-card__body{display:grid;gap:var(--s4);padding:var(--s6)}.route-card__number{color:var(--brass-700);font-size:var(--text-sm);font-weight:820;letter-spacing:.08em;text-transform:uppercase}.route-card__title,.place-card__title{font-size:var(--text-2xl)}.route-card__meta,.place-card__meta{display:flex;flex-wrap:wrap;gap:var(--s2);color:var(--ink-600);font-size:var(--text-sm)}.route-stops{display:grid;gap:var(--s3);margin:0;padding:0;list-style:none;counter-reset:route-stop}.route-stops li{position:relative;min-height:2.25rem;padding-left:2.5rem;color:var(--ink-700);counter-increment:route-stop}.route-stops li::before{position:absolute;top:.02rem;left:0;display:grid;width:1.75rem;height:1.75rem;place-items:center;border-radius:50%;background:var(--petrol-50);color:var(--petrol-800);content:counter(route-stop);font-size:var(--text-xs);font-weight:800}
.contact-card{display:grid;gap:var(--s4);padding:var(--s6);border:1px solid var(--concrete-200);border-radius:var(--r-md);background:var(--white);box-shadow:var(--shadow-sm)}.contact-card__icon{display:grid;width:3rem;height:3rem;place-items:center;border-radius:50%;background:var(--petrol-50);color:var(--petrol-800)}.contact-card__label{color:var(--ink-600);font-size:var(--text-xs);font-weight:800;letter-spacing:.08em;text-transform:uppercase}.contact-card__value{color:var(--petrol-950);font-size:var(--text-lg);font-weight:760}
.transfer-table-wrap{overflow-x:auto;border:1px solid var(--concrete-200);border-radius:var(--r-md);background:var(--white)}.transfer-table th,.transfer-table td{padding:var(--s4);border-bottom:1px solid var(--concrete-200);text-align:left}.transfer-table thead th{background:var(--petrol-950);color:var(--white);font-size:var(--text-sm)}.transfer-table tbody tr:last-child td{border-bottom:0}
.house-rules{display:grid;gap:var(--s4)}.house-rule{display:grid;grid-template-columns:auto 1fr;gap:var(--s4);padding:var(--s5);border:1px solid var(--concrete-200);border-radius:var(--r-md);background:var(--white)}.house-rule__icon{display:grid;width:2.75rem;height:2.75rem;place-items:center;border-radius:50%;background:var(--petrol-50);color:var(--petrol-800)}.house-rule__content{display:grid;gap:var(--s2)}.house-rule__title{font-size:var(--text-lg);line-height:1.2}.house-rule__text{color:var(--ink-700);font-size:var(--text-sm)}
.accordion{border-top:1px solid var(--concrete-200)}.accordion__item{border-bottom:1px solid var(--concrete-200)}.accordion__button{display:grid;width:100%;min-height:4.5rem;grid-template-columns:1fr auto;gap:var(--s5);align-items:center;padding:var(--s4) 0;border:0;background:transparent;color:var(--petrol-950);font-size:var(--text-lg);font-weight:760;text-align:left}.accordion__icon{position:relative;width:1.25rem;height:1.25rem;color:var(--brass-700)}.accordion__icon::before,.accordion__icon::after{position:absolute;top:50%;left:50%;width:100%;height:2px;content:"";transform:translate(-50%,-50%);background:currentColor;transition:transform var(--base) var(--ease)}.accordion__icon::after{transform:translate(-50%,-50%) rotate(90deg)}.accordion__button[aria-expanded="true"] .accordion__icon::after{transform:translate(-50%,-50%)}.accordion__panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--base) var(--ease)}.accordion__panel[aria-hidden="false"]{grid-template-rows:1fr}.accordion__panel-inner{overflow:hidden}.accordion__content{max-width:68ch;padding:0 3rem var(--s5) 0;color:var(--ink-700)}

/* CTA and footer */
.cta-panel{position:relative;display:grid;gap:var(--s8);overflow:hidden;padding:clamp(2rem,6vw,5rem);border-radius:var(--r-xl);background:radial-gradient(circle at 88% 18%,rgba(216,183,122,.24),transparent 28%),linear-gradient(135deg,var(--petrol-950),#0b464e);color:var(--white);box-shadow:var(--shadow-lg)}.cta-panel::after{position:absolute;right:-7rem;bottom:-11rem;width:28rem;height:28rem;content:"";border:1px solid rgba(216,183,122,.24);border-radius:50%;box-shadow:0 0 0 3rem rgba(216,183,122,.04),0 0 0 6rem rgba(216,183,122,.03)}.cta-panel__content,.cta-panel__actions{position:relative;z-index:1}.cta-panel__content{display:grid;gap:var(--s4);max-width:52rem}.cta-panel__title{max-width:16ch;font-size:var(--text-4xl)}.cta-panel__text{max-width:48rem;color:rgba(255,253,249,.76);font-size:var(--text-lg)}.cta-panel__actions{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center}
.site-footer{background:var(--ink-950);color:var(--white)}.site-footer__main{display:grid;gap:var(--s10);padding-block:clamp(4rem,8vw,7rem)}.site-footer__brand{display:grid;gap:var(--s5);align-content:start}.site-footer__description{max-width:34rem;color:rgba(255,253,249,.68)}.site-footer__columns{display:grid;gap:var(--s8)}.site-footer__column{display:grid;align-content:start;gap:var(--s4)}.site-footer__heading{color:var(--brass-300);font-size:var(--text-xs);font-weight:800;letter-spacing:.11em;line-height:1.2;text-transform:uppercase}.footer-nav{display:grid;gap:var(--s3)}.footer-nav a,.site-footer__contact a{color:rgba(255,253,249,.82);text-decoration-color:rgba(255,253,249,.35)}.footer-nav a:hover,.site-footer__contact a:hover{color:var(--white)}.site-footer__contact{display:grid;gap:var(--s3);color:rgba(255,253,249,.72);font-style:normal}.site-footer__bottom{display:grid;gap:var(--s4);padding-block:var(--s5);border-top:1px solid rgba(255,253,249,.12);color:rgba(255,253,249,.56);font-size:var(--text-sm)}.site-footer__legal{display:flex;flex-wrap:wrap;gap:var(--s3) var(--s5)}.template-disclaimer{max-width:60rem;color:rgba(255,253,249,.54);font-size:var(--text-xs)}
.noscript-notice{padding:var(--s4) 1rem;border-bottom:1px solid rgba(117,85,21,.24);background:var(--warning-bg);color:var(--warning);font-size:var(--text-sm);text-align:center}

/* Progressive enhancement */
.js .reveal{opacity:0;transform:translateY(1.25rem);transition:opacity var(--reveal) var(--ease),transform var(--reveal) var(--ease)}.js .reveal.is-visible{opacity:1;transform:none}.js .reveal[data-delay="1"]{transition-delay:70ms}.js .reveal[data-delay="2"]{transition-delay:140ms}.js .reveal[data-delay="3"]{transition-delay:210ms}.js .reveal[data-delay="4"]{transition-delay:280ms}
.loading-block{position:relative;min-height:10rem;overflow:hidden;border-radius:var(--r-md);background:var(--concrete-100)}.loading-block::after{position:absolute;inset:0;content:"";transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.58),transparent);animation:shimmer 1.25s infinite}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{to{transform:translateX(100%)}}@keyframes dialog-in{from{transform:translateY(.8rem) scale(.985);opacity:0}to{transform:none;opacity:1}}

/* Responsive */
@media (min-width:37.5rem){
  .container,.container-wide,.container-narrow{width:min(100% - 3rem,var(--container))}.grid--2,.form-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.form-field--full{grid-column:1/-1}.feature-strip,.room-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.room-card--featured{grid-column:1/-1;grid-template-columns:minmax(0,1.2fr) minmax(18rem,.8fr)}.room-card--featured .room-card__media{min-height:100%;aspect-ratio:auto}.amenity-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gallery-mosaic{grid-template-columns:repeat(4,minmax(0,1fr))}.gallery-mosaic__item:first-child{grid-column:span 3;grid-row:span 2;aspect-ratio:auto}.calendar-day{min-height:3.25rem}.booking-room-option{grid-template-columns:minmax(12rem,.72fr) minmax(0,1.28fr)}.booking-room-option__media{min-height:100%;aspect-ratio:auto}.route-grid,.place-grid,.contact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.site-footer__columns{grid-template-columns:repeat(2,minmax(0,1fr))}.site-footer__bottom{grid-template-columns:1fr auto;align-items:start}
}
@media (min-width:48rem){
  :root{--header:5.25rem}.section-heading--split{grid-template-columns:minmax(0,.9fr) minmax(20rem,.7fr);align-items:end;justify-content:space-between}.section-heading--split .section-lead{justify-self:end}.grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero__scroll-cue{display:inline-flex}.availability-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.availability-bar .button{grid-column:1/-1}.stat-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.editorial-split{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:clamp(3rem,8vw,7rem)}.editorial-split--reverse .editorial-split__content{order:2}.editorial-split--reverse .editorial-split__media{order:1}
  .room-section{grid-template-columns:minmax(0,1.05fr) minmax(20rem,.95fr)}.room-section:nth-of-type(even) .room-section__content{order:1}.room-section:nth-of-type(even) .room-section__gallery{order:2}.calendar-months{grid-template-columns:repeat(2,minmax(0,1fr))}.route-grid,.place-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.contact-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.house-rules{grid-template-columns:repeat(2,minmax(0,1fr))}.cta-panel{grid-template-columns:minmax(0,1fr) auto;align-items:end}.site-footer__main{grid-template-columns:minmax(18rem,.85fr) minmax(0,1.15fr)}
}
@media (min-width:64rem){
  .has-mobile-booking-bar{padding-bottom:0}.primary-nav{display:block}.site-header__cta{display:inline-flex}.nav-toggle,.mobile-nav{display:none}.grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}.availability-bar{grid-template-columns:1.15fr 1.15fr .8fr .8fr auto;align-items:end;padding:var(--s4) var(--s5)}.availability-bar .button{grid-column:auto;min-width:10.5rem}.stat-strip{grid-template-columns:repeat(6,minmax(0,1fr))}.feature-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.detail-grid,.room-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.room-card--featured{grid-column:span 2}
  .room-detail-layout{grid-template-columns:minmax(0,1fr) minmax(19rem,24rem)}.booking-panel,.booking-aside{position:sticky;top:calc(var(--header) + var(--s5))}.mobile-booking-bar{display:none}.booking-shell{grid-template-columns:minmax(0,1fr) minmax(19rem,24rem)}.price-summary__toggle{display:none}.price-summary__details{display:grid!important}.map-layout{grid-template-columns:minmax(0,1.25fr) minmax(20rem,.75fr)}.site-footer__columns{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (min-width:80rem){.container,.container-narrow{width:min(100% - 6rem,var(--container))}.container-wide{width:min(100% - 4rem,var(--wide))}.hero__inner{padding-bottom:9rem}.room-card__body{padding:var(--s8)}.room-gallery-strip{grid-auto-columns:minmax(19rem,58%)}.calendar-day{min-height:3.65rem}}
@media (min-width:100rem){.section{padding-block:8rem}.hero{min-height:58rem}.hero__content{max-width:78rem}.room-grid{gap:var(--s8)}.room-section{gap:var(--s16)}}
@media (max-width:47.999rem){
  .hero__title{font-size:clamp(2.75rem,15vw,4.5rem)}.hero__actions .button,.cta-panel__actions .button{width:100%}.editorial-split__media--offset .media-frame:nth-child(2){width:78%;margin-top:-16%}.room-filter-bar{width:calc(100% + 2rem);margin-left:-1rem;border-right:0;border-left:0;border-radius:0}.comparison-wrap{border-right:0;border-left:0;border-radius:0}.booking-step__actions .button{flex:1 1 100%}.booking-step__actions .button[data-action="back"]{order:2}.price-summary{padding:var(--s5)}.price-summary__details[hidden]{display:none}.map-list__button{grid-template-columns:2.25rem 1fr}.map-list__time{grid-column:2}.lightbox{width:100vw;height:100svh;border-radius:0}.lightbox__image{max-height:calc(100svh - 9rem)}.lightbox__footer{align-items:flex-start}.lightbox__caption{max-height:3.2rem;overflow-y:auto}
}
@media (max-width:29.999rem){.site-logo__descriptor{display:none}.stat-strip{grid-template-columns:1fr}.date-summary__grid{grid-template-columns:1fr}.guest-row{grid-template-columns:1fr}.stepper{justify-self:start}.mobile-booking-bar{gap:var(--s2)}.mobile-booking-bar .button{padding-inline:.9rem}}

/* Accessibility preferences */
@media (forced-colors:active){:focus-visible{outline-color:Highlight}.calendar-day.is-in-range,.calendar-day.is-start,.calendar-day.is-end,.filter-button[aria-pressed="true"]{border:2px solid Highlight}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important;transition-delay:0ms!important}.button__spinner{border-right-color:currentColor;border-style:dotted}.js .reveal{transform:none;opacity:1}}

/* Print */
@media print{
  @page{size:A4;margin:16mm}:root{--concrete-25:#fff;--concrete-50:#fff;--concrete-100:#f4f4f4;--ink-950:#000;--ink-700:#333}html,body{background:#fff!important;color:#000!important;font-size:10pt}
  .site-header,.mobile-nav,.site-footer__main,.mobile-booking-bar,.booking-step__actions,.progress-steps,.booking-aside .price-summary__toggle,.noscript-notice,.button:not(.print-keep),.icon-button,.skip-link,.cta-panel,.room-filter-bar,.availability-wrap{display:none!important}
  .site-footer{background:#fff!important;color:#000!important}.site-footer__bottom{display:block;padding-top:8mm;border-top:1px solid #888;color:#333}.template-disclaimer{color:#333}main,.section,.booking-card,.booking-success{padding:0!important}.container,.container-wide,.container-narrow{width:100%;max-width:none}.booking-shell,.room-detail-layout{display:block}.booking-aside{position:static;margin-top:8mm}
  .price-summary{break-inside:avoid;border:1px solid #333;background:#fff!important;color:#000!important;box-shadow:none}.price-summary *,.price-line dt,.price-line dd,.price-total__label,.price-total__amount,.price-summary__fineprint,.price-summary__stay{color:#000!important}.booking-success,.booking-success__reference,.error-summary,.success-summary,.notice{break-inside:avoid;background:#fff!important;box-shadow:none}a{color:#000!important;text-decoration:none}a[href^="http"]::after,a[href^="mailto"]::after,a[href^="tel"]::after{content:none!important}img,svg,table,.detail-card,.house-rule,.contact-card{break-inside:avoid}.page-break-before{break-before:page}
}

/* Visual polish v2.1 — high-resolution photography integration */
:root{
  --photo-shadow:0 18px 48px rgba(10,23,26,.14),0 3px 12px rgba(10,23,26,.08);
  --photo-shadow-hover:0 28px 70px rgba(10,23,26,.20),0 8px 24px rgba(10,23,26,.10);
}
img{image-rendering:auto}
.media-frame,.room-card__media,.gallery-mosaic__item,.booking-room-option__media{background:#d7d0c7;box-shadow:var(--photo-shadow)}
.media-frame img,.room-card__media img,.gallery-mosaic__item img,.booking-room-option__media img,.page-hero--media .page-hero__media img{
  filter:saturate(1.035) contrast(1.025);
  backface-visibility:hidden;
  transform:translateZ(0);
}
.hero__media img{
  object-position:center 52%;
  filter:saturate(1.06) contrast(1.035) brightness(.98);
  transform:scale(1.008);
}
.hero__overlay{
  background:linear-gradient(180deg,rgba(3,25,29,.18),rgba(4,31,36,.08) 38%,rgba(4,31,36,.72)),linear-gradient(90deg,rgba(4,31,36,.52),rgba(4,31,36,.08) 62%,transparent 82%);
}
.hero__title{text-shadow:0 4px 34px rgba(0,0,0,.34),0 1px 3px rgba(0,0,0,.28)}
.hero__lead{text-shadow:0 2px 18px rgba(0,0,0,.28)}
.room-card{box-shadow:0 8px 26px rgba(10,23,26,.08)}
.room-card:hover{box-shadow:var(--photo-shadow-hover)}
.room-card__media img,.gallery-mosaic__item img{transition:transform 700ms var(--ease),filter 320ms var(--ease)}
.room-card:hover .room-card__media img,.gallery-mosaic__item:hover img{filter:saturate(1.06) contrast(1.035);transform:scale(1.018)}
.gallery-mosaic{gap:.55rem}
.gallery-mosaic__item{box-shadow:0 10px 28px rgba(10,23,26,.12)}
.page-hero--media .page-hero__shade{background:linear-gradient(180deg,rgba(4,31,36,.08),rgba(4,31,36,.68))}
.editorial-split__media .media-frame{box-shadow:var(--photo-shadow)}
.room-gallery-strip{scroll-padding-inline:.25rem}
.room-gallery-strip .media-frame{box-shadow:0 9px 28px rgba(10,23,26,.11)}
.lightbox__stage{background:#070b0c}.lightbox__image{image-rendering:auto}

/* Asset-specific art direction: keep faces/architecture focal areas inside responsive crops. */
img[src$="home-hero-exterior-01.jpg"]{object-position:56% 52%}
img[src$="building-facade-dusk-01.jpg"]{object-position:58% 52%}
img[src$="building-lobby-01.jpg"]{object-position:52% 50%}
img[src$="room-rooftop-suite-01.jpg"]{object-position:55% 50%}
img[src$="room-rooftop-suite-06.jpg"],img[src$="rooftop-terrace-day-01.jpg"],img[src$="rooftop-sunset-table-01.jpg"]{object-position:56% 52%}
img[src$="neighbourhood-street-01.jpg"],img[src$="neighbourhood-tram-01.jpg"]{object-position:50% 52%}
img[src$="building-breakfast-01.jpg"],img[src$="neighbourhood-cafe-01.jpg"]{object-position:52% 58%}

@media (min-width:48rem){
  .room-card:not(.room-card--featured) .room-card__media{aspect-ratio:3/2}
  .gallery-mosaic__item:not(:first-child){aspect-ratio:4/3}
  .page-hero--media{min-height:40rem}
}
@media (min-width:80rem){
  .hero{min-height:min(62rem,100svh)}
  .hero__inner{padding-bottom:8.5rem}
  .gallery-mosaic{gap:.7rem}
}
@media (prefers-reduced-motion:reduce){
  .hero__media img,.room-card__media img,.gallery-mosaic__item img{transform:none!important}
}


/* v2.2 — visual fidelity and responsive media */
img { image-rendering: auto; }
.hero__media img { object-position: 56% 50%; }
.page-hero__media img { object-position: 52% 52%; }
.room-card__media img { object-position: 50% 50%; }
.room-gallery-strip .media-frame img { object-position: 50% 50%; }
.gallery-mosaic__item img { object-position: 50% 50%; }
.room-gallery-strip .media-frame { box-shadow: 0 14px 36px rgba(23,33,36,.09); }
.room-gallery-strip .media-frame img, .gallery-mosaic__item img { transition: transform 260ms var(--ease), filter 260ms var(--ease); }
.room-gallery-strip .media-frame:hover img, .gallery-mosaic__item:hover img { transform: scale(1.012); }
@media (max-width:47.999rem){
  .room-gallery-strip { grid-auto-columns: minmax(17rem, 88%); }
  .room-gallery-strip .media-frame { aspect-ratio: 4 / 3; }
  .gallery-mosaic__item:not(:first-child) { aspect-ratio: 4 / 3; }
}


/* v2.3 — room identity, functional detail fidelity */
body[data-visual-version="3.0"] .room-gallery-strip .media-frame { background: #e7e1d8; }
body[data-visual-version="3.0"] .room-gallery-strip .media-frame img { filter: saturate(1.015) contrast(1.012); }
body[data-visual-version="3.0"] .room-section:nth-of-type(2n) .room-gallery-strip .media-frame:nth-child(2) img { object-position: 60% 50%; }
body[data-visual-version="3.0"] .room-section:nth-of-type(2n+1) .room-gallery-strip .media-frame:nth-child(3) img { object-position: 40% 50%; }
body[data-visual-version="3.0"] .gallery-mosaic__item:nth-child(4) img { object-position: 68% 48%; }
body[data-visual-version="3.0"] .gallery-mosaic__item:nth-child(5) img { object-position: 55% 54%; }
@media (min-width:64rem){
  body[data-visual-version="3.0"] .room-section__gallery { transform: translateZ(0); }
  body[data-visual-version="3.0"] .room-gallery-strip { scroll-padding-inline: 1rem; }
}


/* v2.4 — environmental variety and material texture */
body[data-visual-version="3.0"] .place-card__media img,
body[data-visual-version="3.0"] .route-card__media img { filter: saturate(1.025) contrast(1.018); }
body[data-visual-version="3.0"] .place-card:hover img { transform: scale(1.018); }
body[data-visual-version="3.0"] .editorial-split__media .media-frame { box-shadow: 0 18px 46px rgba(6,47,53,.12); }
body[data-visual-version="3.0"] .media-frame img { backface-visibility: hidden; }

/* v2.5 — final visual consistency and focal-point pass */
body:is([data-visual-version="3.0"],[data-visual-version="3.0"]) .media-frame img,
body:is([data-visual-version="3.0"],[data-visual-version="3.0"]) .room-card__media img,
body:is([data-visual-version="3.0"],[data-visual-version="3.0"]) .gallery-mosaic__item img,
body:is([data-visual-version="3.0"],[data-visual-version="3.0"]) .booking-room-option__media img{
  filter:none;
  image-rendering:auto;
  backface-visibility:hidden;
}
body:is([data-visual-version="3.0"],[data-visual-version="3.0"]) .hero__overlay{
  background:linear-gradient(180deg,rgba(3,25,29,.13),rgba(4,31,36,.045) 38%,rgba(4,31,36,.68)),linear-gradient(90deg,rgba(4,31,36,.48),rgba(4,31,36,.06) 64%,transparent 84%);
}
body:is([data-visual-version="3.0"],[data-visual-version="3.0"]) .room-card:hover .room-card__media img,
body:is([data-visual-version="3.0"],[data-visual-version="3.0"]) .gallery-mosaic__item:hover img,
body:is([data-visual-version="3.0"],[data-visual-version="3.0"]) .room-gallery-strip .media-frame:hover img{
  filter:none;
  transform:scale(1.006);
}
body:is([data-visual-version="3.0"],[data-visual-version="3.0"]) .room-gallery-strip .media-frame{
  background:#e4ddd3;
  border-radius:var(--r-md);
}
body:is([data-visual-version="3.0"],[data-visual-version="3.0"]) .room-gallery-strip .media-frame img{
  width:100%;height:100%;object-fit:cover;object-position:50% 50%;
}
body:is([data-visual-version="3.0"],[data-visual-version="3.0"]) img[src$="room-studio-01.jpg"]{object-position:52% 50%}
body:is([data-visual-version="3.0"],[data-visual-version="3.0"]) img[src$="room-deluxe-05.jpg"]{object-position:58% 50%}
body:is([data-visual-version="3.0"],[data-visual-version="3.0"]) img[src$="room-family-01.jpg"]{object-position:52% 50%}
body:is([data-visual-version="3.0"],[data-visual-version="3.0"]) img[src$="room-family-03.jpg"]{object-position:50% 44%}
body:is([data-visual-version="3.0"],[data-visual-version="3.0"]) img[src$="room-long-stay-01.jpg"],
body:is([data-visual-version="3.0"],[data-visual-version="3.0"]) img[src$="room-long-stay-02.jpg"]{object-position:50% 54%}
body:is([data-visual-version="3.0"],[data-visual-version="3.0"]) img[src$="room-long-stay-04.jpg"]{object-position:52% 50%}
body:is([data-visual-version="3.0"],[data-visual-version="3.0"]) img[src$="room-rooftop-suite-06.jpg"]{object-position:56% 52%}

@media (min-width:48rem){
  body:is([data-visual-version="3.0"],[data-visual-version="3.0"]) .room-gallery-strip{
    display:grid;
    grid-template-columns:minmax(0,1.65fr) minmax(0,1fr) minmax(0,1fr);
    grid-template-rows:repeat(2,minmax(0,1fr));
    gap:.75rem;
    overflow:visible;
    padding-bottom:0;
  }
  body:is([data-visual-version="3.0"],[data-visual-version="3.0"]) .room-gallery-strip .media-frame{
    width:100%;
    min-width:0;
    aspect-ratio:4/3;
    scroll-snap-align:none;
  }
  body:is([data-visual-version="3.0"],[data-visual-version="3.0"]) .room-gallery-strip .media-frame:first-child{
    grid-row:1 / span 2;
    aspect-ratio:auto;
    min-height:100%;
  }
}
@media (max-width:47.999rem){
  body:is([data-visual-version="3.0"],[data-visual-version="3.0"]) .room-gallery-strip{
    grid-auto-columns:minmax(16rem,82vw);
    gap:.75rem;
    scroll-padding-inline:1rem;
  }
  body:is([data-visual-version="3.0"],[data-visual-version="3.0"]) .room-gallery-strip .media-frame{
    aspect-ratio:4/3;
  }
  body:is([data-visual-version="3.0"],[data-visual-version="3.0"]) .hero__media img{object-position:61% 50%}
  body:is([data-visual-version="3.0"],[data-visual-version="3.0"]) .page-hero__media img{object-position:56% 50%}
}
@media (hover:none){
  body:is([data-visual-version="3.0"],[data-visual-version="3.0"]) .room-card:hover .room-card__media img,
  body:is([data-visual-version="3.0"],[data-visual-version="3.0"]) .gallery-mosaic__item:hover img,
  body:is([data-visual-version="3.0"],[data-visual-version="3.0"]) .room-gallery-strip .media-frame:hover img{transform:none}
}


/* v2.6 — premium editorial composition and photography hierarchy */
body[data-visual-version="3.0"]{
  --editorial-rule:rgba(23,33,36,.14);
  --editorial-dark-rule:rgba(255,253,249,.18);
  --editorial-paper:#f7f2e9;
}
body[data-visual-version="3.0"] .section-title{
  max-width:15ch;
  letter-spacing:-.045em;
  line-height:.94;
}
body[data-visual-version="3.0"] .section-lead{
  max-width:56ch;
}

/* Hero: hotel folio rather than a generic landing-page block. */
body[data-visual-version="3.0"] .hero__content{max-width:60rem}
body[data-visual-version="3.0"] .hero__title{max-width:12.5ch;letter-spacing:-.052em}
body[data-visual-version="3.0"] .hero-signature{
  display:none;
  width:min(18rem,100%);
  padding:1.15rem 0 1.15rem 1.25rem;
  border-left:1px solid rgba(255,253,249,.44);
  color:var(--white);
}
body[data-visual-version="3.0"] .hero-signature__label,
body[data-visual-version="3.0"] .hero-signature__note{margin:0;color:rgba(255,253,249,.72);font-size:var(--text-xs);letter-spacing:.07em;text-transform:uppercase}
body[data-visual-version="3.0"] .hero-signature__list{display:grid;grid-template-columns:repeat(3,1fr);gap:.9rem;margin:1rem 0}
body[data-visual-version="3.0"] .hero-signature__list div{display:grid;gap:.1rem}
body[data-visual-version="3.0"] .hero-signature__list dt{color:rgba(255,253,249,.58);font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
body[data-visual-version="3.0"] .hero-signature__list dd{margin:0;color:var(--brass-300);font-size:1.25rem;font-weight:800;letter-spacing:-.03em}

/* Facts become an editorial index rather than six boxed statistics. */
body[data-visual-version="3.0"] .stat-strip--editorial{border:0;border-top:1px solid var(--editorial-rule);background:transparent}
body[data-visual-version="3.0"] .stat-strip--editorial .stat{min-height:7.4rem;padding:1.25rem 1rem 1.35rem;border:0;border-bottom:1px solid var(--editorial-rule);background:transparent}
body[data-visual-version="3.0"] .stat-strip--editorial .stat__value{font-size:clamp(1.65rem,3vw,2.45rem);font-weight:710}
body[data-visual-version="3.0"] .stat-strip--editorial .stat__label{max-width:14ch;font-size:.78rem;font-weight:650;line-height:1.45}

/* Story photography: one anchor image, two supporting notes. */
body[data-visual-version="3.0"] .editorial-photo{position:relative;isolation:isolate}
body[data-visual-version="3.0"] .editorial-caption{
  position:absolute;z-index:3;right:.75rem;bottom:.75rem;left:.75rem;
  display:flex;align-items:center;gap:.55rem;width:max-content;max-width:calc(100% - 1.5rem);
  padding:.45rem .62rem;border:1px solid rgba(255,255,255,.32);border-radius:var(--r-sm);
  background:rgba(252,250,246,.9);color:var(--ink-950);box-shadow:0 8px 22px rgba(10,20,22,.12);
  font-size:.7rem;font-weight:760;letter-spacing:.04em;line-height:1.2;backdrop-filter:blur(10px)
}
body[data-visual-version="3.0"] .editorial-caption span{color:var(--brass-700);font-weight:850}
body[data-visual-version="3.0"] .editorial-caption--light{background:rgba(6,47,53,.78);color:var(--white);border-color:rgba(255,255,255,.22)}
body[data-visual-version="3.0"] .editorial-caption--light span{color:var(--brass-300)}
body[data-visual-version="3.0"] .editorial-collage .media-frame:nth-child(2){width:100%;margin:0;border:0;box-shadow:var(--photo-shadow)}

/* Home room collection: controlled asymmetry, not equal ecommerce cards. */
body[data-visual-version="3.0"] .room-grid--editorial .room-card{border-radius:.32rem;border-color:rgba(23,33,36,.12);box-shadow:0 12px 34px rgba(10,23,26,.08)}
body[data-visual-version="3.0"] .room-grid--editorial .room-card::before{
  position:absolute;z-index:4;top:.9rem;right:.9rem;content:attr(data-room-index) " / 05";
  padding:.32rem .48rem;border:1px solid rgba(255,255,255,.28);border-radius:.2rem;
  background:rgba(6,47,53,.68);color:rgba(255,253,249,.88);font-size:.66rem;font-weight:800;letter-spacing:.1em;backdrop-filter:blur(8px)
}
body[data-visual-version="3.0"] .room-grid--editorial .room-card__media::after{
  position:absolute;inset:0;content:"";pointer-events:none;background:linear-gradient(180deg,transparent 58%,rgba(5,29,33,.16))
}
body[data-visual-version="3.0"] .room-grid--editorial .room-card__title{letter-spacing:-.045em}
body[data-visual-version="3.0"] .room-grid--editorial .room-card:not(.room-card--featured) .room-card__body{background:linear-gradient(180deg,#fffdf9,var(--editorial-paper))}
body[data-visual-version="3.0"] .room-grid--editorial .room-meta__item{border-radius:.25rem;background:transparent;border:1px solid var(--concrete-200)}
body[data-visual-version="3.0"] .room-card--featured .room-meta__item{border-color:rgba(255,255,255,.14);background:rgba(255,255,255,.04)}

/* Rooftop gets a time-of-day diptych. */
body[data-visual-version="3.0"] .rooftop-visual{position:relative;display:grid;gap:1rem}
body[data-visual-version="3.0"] .rooftop-visual__night{width:74%;margin-left:auto}
body[data-visual-version="3.0"] .section--petrol .editorial-photo{box-shadow:0 22px 54px rgba(0,0,0,.2)}

/* Rooms page folio and numbered lookbook. */
body[data-visual-version="3.0"] .page-hero__folio{display:none}
body[data-visual-version="3.0"] .room-section{position:relative}
body[data-visual-version="3.0"] .room-section::before{
  position:absolute;top:1.7rem;left:0;content:attr(data-room-number);
  color:var(--brass-500);font-size:.76rem;font-weight:850;letter-spacing:.16em
}
body[data-visual-version="3.0"] .room-section__title{font-size:clamp(2.25rem,4.2vw,4.15rem);letter-spacing:-.052em;line-height:.94}
body[data-visual-version="3.0"] .room-section__price{font-size:1rem;font-weight:760;letter-spacing:.01em}
body[data-visual-version="3.0"] .room-section__content{padding-top:.35rem}
body[data-visual-version="3.0"] .room-gallery-strip--lookbook{background:var(--concrete-100)}
body[data-visual-version="3.0"] .room-gallery-strip--lookbook .media-frame{border-radius:.28rem;box-shadow:none}
body[data-visual-version="3.0"] .room-gallery-strip--lookbook .media-frame:first-child{box-shadow:0 16px 40px rgba(10,23,26,.12)}

/* Suite detail: stronger folio header and a photographic magazine spread. */
body[data-visual-version="3.0"] .room-detail-header{position:relative}
body[data-visual-version="3.0"] .room-detail-header__folio{display:none}
body[data-visual-version="3.0"] .room-detail-header__title{font-size:clamp(3.3rem,8vw,7.4rem);letter-spacing:-.065em;line-height:.86}
body[data-visual-version="3.0"] .gallery-mosaic--editorial .gallery-mosaic__item{border-radius:.28rem;box-shadow:0 12px 32px rgba(10,23,26,.11)}
body[data-visual-version="3.0"] .gallery-mosaic--editorial .gallery-mosaic__item::after{border-color:rgba(255,255,255,.1)}

@media (min-width:48rem){
  body[data-visual-version="3.0"] .editorial-collage{
    display:grid;grid-template-columns:minmax(0,1.35fr) minmax(12rem,.65fr);grid-template-rows:repeat(2,minmax(0,1fr));gap:1rem;align-items:stretch
  }
  body[data-visual-version="3.0"] .editorial-collage .editorial-photo--primary{grid-column:1;grid-row:1 / 3;aspect-ratio:auto;min-height:100%}
  body[data-visual-version="3.0"] .editorial-collage .editorial-photo:not(.editorial-photo--primary){grid-column:2;min-height:0;aspect-ratio:auto}
  body[data-visual-version="3.0"] .editorial-collage .editorial-photo img{height:100%;object-fit:cover}

  body[data-visual-version="3.0"] .gallery-mosaic--editorial{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(3,clamp(8.5rem,14vw,13.5rem));gap:.65rem}
  body[data-visual-version="3.0"] .gallery-mosaic--editorial .gallery-mosaic__item{aspect-ratio:auto!important;height:100%}
  body[data-visual-version="3.0"] .gallery-mosaic--editorial .gallery-mosaic__item:first-child{grid-column:1 / 3;grid-row:1 / 3}
  body[data-visual-version="3.0"] .gallery-mosaic--editorial .gallery-mosaic__item:nth-child(2){grid-column:3 / 5;grid-row:1}
  body[data-visual-version="3.0"] .gallery-mosaic--editorial .gallery-mosaic__item:nth-child(3){grid-column:3 / 5;grid-row:2}
  body[data-visual-version="3.0"] .gallery-mosaic--editorial .gallery-mosaic__item:nth-child(n+4){grid-row:3}
}

@media (min-width:64rem){
  body[data-visual-version="3.0"] .hero__inner{grid-template-columns:minmax(0,1fr) 18rem;column-gap:clamp(3rem,7vw,7rem);align-items:end}
  body[data-visual-version="3.0"] .hero-signature{display:block;justify-self:end;grid-column:2;grid-row:1}
  body[data-visual-version="3.0"] .hero__content{grid-column:1;grid-row:1}
  body[data-visual-version="3.0"] .hero__scroll-cue{grid-column:1 / -1}

  body[data-visual-version="3.0"] .stat-strip--editorial{grid-template-columns:repeat(6,minmax(0,1fr))}
  body[data-visual-version="3.0"] .stat-strip--editorial .stat{border-right:1px solid var(--editorial-rule);border-bottom:0}
  body[data-visual-version="3.0"] .stat-strip--editorial .stat:last-child{border-right:0}

  body[data-visual-version="3.0"] .room-grid--editorial{grid-template-columns:repeat(12,minmax(0,1fr));gap:1.2rem}
  body[data-visual-version="3.0"] .room-grid--editorial .room-card--featured{grid-column:1 / -1}
  body[data-visual-version="3.0"] .room-grid--editorial .room-card[data-room-index="02"]{grid-column:1 / 6}
  body[data-visual-version="3.0"] .room-grid--editorial .room-card[data-room-index="03"]{grid-column:6 / 13}
  body[data-visual-version="3.0"] .room-grid--editorial .room-card[data-room-index="04"]{grid-column:1 / 8}
  body[data-visual-version="3.0"] .room-grid--editorial .room-card[data-room-index="05"]{grid-column:8 / 13}
  body[data-visual-version="3.0"] .room-grid--editorial .room-card[data-room-index="03"] .room-card__media,
  body[data-visual-version="3.0"] .room-grid--editorial .room-card[data-room-index="04"] .room-card__media{aspect-ratio:16/9}

  body[data-visual-version="3.0"] .rooftop-visual{padding:0 1.5rem 3.4rem 0}
  body[data-visual-version="3.0"] .rooftop-visual__night{position:absolute;right:-1.2rem;bottom:-1rem;width:48%;margin:0;border:.55rem solid var(--petrol-950)}

  body[data-visual-version="3.0"] .page-hero__inner{grid-template-columns:minmax(0,1fr) 14rem;column-gap:4rem;align-items:end;max-width:none}
  body[data-visual-version="3.0"] .page-hero__inner > :not(.page-hero__folio){grid-column:1}
  body[data-visual-version="3.0"] .page-hero__folio{display:grid;grid-column:2;grid-row:1 / 4;align-self:end;gap:.18rem;padding-left:1rem;border-left:1px solid rgba(255,255,255,.32);color:var(--white)}
  body[data-visual-version="3.0"] .page-hero__folio span{color:var(--brass-300);font-size:.7rem;font-weight:850;letter-spacing:.12em}
  body[data-visual-version="3.0"] .page-hero__folio strong{font-size:1.05rem;letter-spacing:-.02em}
  body[data-visual-version="3.0"] .page-hero__folio small{color:rgba(255,255,255,.64);font-size:.75rem}

  body[data-visual-version="3.0"] .room-section{grid-template-columns:minmax(0,7fr) minmax(20rem,5fr);gap:clamp(3.5rem,7vw,7rem);padding-block:clamp(5rem,8vw,7.5rem)}
  body[data-visual-version="3.0"] .room-section::before{top:3rem}
  body[data-visual-version="3.0"] .room-section__content{position:sticky;top:calc(var(--header) + 2.25rem)}
  body[data-visual-version="3.0"] .room-gallery-strip--lookbook{grid-template-columns:minmax(0,1.65fr) minmax(0,1fr) minmax(0,1fr);grid-template-rows:repeat(2,minmax(0,1fr));gap:.58rem;aspect-ratio:16/10;padding:0}
  body[data-visual-version="3.0"] .room-gallery-strip--lookbook .media-frame{height:100%;aspect-ratio:auto!important}
  body[data-visual-version="3.0"] .room-gallery-strip--lookbook .media-frame img{height:100%}

  body[data-visual-version="3.0"] .room-detail-header{grid-template-columns:minmax(0,1fr) 10rem;column-gap:3rem;padding-top:2rem}
  body[data-visual-version="3.0"] .room-detail-header > :not(.room-detail-header__folio){grid-column:1}
  body[data-visual-version="3.0"] .room-detail-header__folio{display:grid;grid-column:2;grid-row:1 / 5;align-self:center;justify-items:end;color:var(--petrol-950)}
  body[data-visual-version="3.0"] .room-detail-header__folio span{font-size:clamp(3rem,6vw,6rem);font-weight:680;letter-spacing:-.07em;line-height:.8}
  body[data-visual-version="3.0"] .room-detail-header__folio small{margin-top:.55rem;color:var(--ink-600);font-size:.72rem;font-weight:760;letter-spacing:.1em;text-transform:uppercase}
}

@media (max-width:47.999rem){
  body[data-visual-version="3.0"] .hero__title{max-width:11ch}
  body[data-visual-version="3.0"] .editorial-collage{gap:.7rem}
  body[data-visual-version="3.0"] .editorial-collage .editorial-photo--detail{width:72%;margin-left:auto}
  body[data-visual-version="3.0"] .room-grid--editorial{gap:1rem}
  body[data-visual-version="3.0"] .room-grid--editorial .room-card__body{padding:1.25rem}
  body[data-visual-version="3.0"] .rooftop-visual__night{width:72%;margin-top:-2.4rem;border:.4rem solid var(--petrol-950)}
  body[data-visual-version="3.0"] .room-section::before{top:1.1rem}
}

@media (prefers-reduced-motion:reduce){
  body[data-visual-version="3.0"] .room-section__content{position:static}
}

/* v2.6 — finishing details */
body[data-visual-version="3.0"] .room-section:first-of-type{padding-top:var(--s16)}
body[data-visual-version="3.0"] .route-card,
body[data-visual-version="3.0"] .place-card,
body[data-visual-version="3.0"] .contact-card{
  border-radius:.32rem;
}
body[data-visual-version="3.0"] .route-card__body,
body[data-visual-version="3.0"] .place-card__body{
  border-top:1px solid rgba(23,33,36,.08);
}
body[data-visual-version="3.0"] .route-card__number{
  color:var(--brass-700);
  letter-spacing:.12em;
}
body[data-visual-version="3.0"] .cta-panel{
  border-radius:.65rem;
}
@media (min-width:64rem){
  body[data-visual-version="3.0"] .room-section:first-of-type{padding-top:clamp(5rem,8vw,7.5rem)}
}


/* ============================================================
   v2.7 — Reservation funnel, micro-typography & secondary pages
   ============================================================ */
body[data-visual-version="3.0"]{font-kerning:normal;font-variant-numeric:proportional-nums}
body[data-visual-version="3.0"] :is(.price-line dd,.price-total__amount,.stat__value,.stepper__value,.room-card__price){font-variant-numeric:tabular-nums}
body[data-visual-version="3.0"] :is(.form-label,.form-legend,.price-summary__eyebrow,.booking-step__folio){letter-spacing:.09em;text-transform:uppercase}
body[data-visual-version="3.0"] .form-help{font-size:.79rem;line-height:1.55;color:var(--ink-600)}
body[data-visual-version="3.0"] .form-error{font-size:.8rem}
body[data-visual-version="3.0"] .breadcrumbs__list{letter-spacing:.02em}

/* Booking hero — compact factual rail rather than another card. */
body[data-visual-version="3.0"] .page-hero--booking-v27{padding-bottom:clamp(4rem,7vw,6.5rem)}
body[data-visual-version="3.0"] .booking-hero-meta,
body[data-visual-version="3.0"] .contact-hero-meta,
body[data-visual-version="3.0"] .neighbourhood-hero-meta{display:flex;flex-wrap:wrap;gap:.45rem 1.5rem;margin-top:.35rem;padding-top:1.1rem;border-top:1px solid rgba(255,255,255,.22);color:rgba(255,253,249,.7);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}
body[data-visual-version="3.0"] :is(.booking-hero-meta,.contact-hero-meta,.neighbourhood-hero-meta) strong{color:var(--brass-300);font-size:.92rem;letter-spacing:-.01em;text-transform:none}

/* Reservation experience */
body[data-visual-version="3.0"] .booking-experience-v27{background:linear-gradient(180deg,var(--concrete-50),var(--concrete-25) 18rem)}
body[data-visual-version="3.0"] .booking-notice-v27{display:grid;grid-template-columns:auto 1fr;column-gap:1.1rem;align-items:start;border:0;border-top:1px solid var(--brass-500);border-bottom:1px solid var(--concrete-200);border-radius:0;background:transparent;padding:1rem 0;color:var(--ink-700)}
body[data-visual-version="3.0"] .booking-notice-v27::before{content:"DEMO";grid-row:1 / 3;color:var(--brass-700);font-size:.65rem;font-weight:850;letter-spacing:.14em}
body[data-visual-version="3.0"] .booking-notice-v27 h2{font-size:.9rem;letter-spacing:.01em}
body[data-visual-version="3.0"] .booking-intro-v27{margin-bottom:2.1rem}

body[data-visual-version="3.0"] .progress-steps--folio-v27{gap:0;margin-bottom:clamp(2rem,4vw,3.4rem);border-block:1px solid var(--concrete-200)}
body[data-visual-version="3.0"] .progress-steps--folio-v27 .progress-step{grid-template-columns:auto 1fr;grid-template-rows:auto;align-items:center;gap:.75rem;padding:.9rem .75rem;background:transparent}
body[data-visual-version="3.0"] .progress-steps--folio-v27 .progress-step::before{display:none}
body[data-visual-version="3.0"] .progress-steps--folio-v27 .progress-step + .progress-step{border-left:1px solid var(--concrete-200)}
body[data-visual-version="3.0"] .progress-steps--folio-v27 .progress-step__marker{width:auto;height:auto;border:0;border-radius:0;background:transparent!important;color:var(--concrete-400)!important;font-size:clamp(1.2rem,2.6vw,2rem);font-weight:500;letter-spacing:-.06em}
body[data-visual-version="3.0"] .progress-steps--folio-v27 .progress-step__label{color:var(--ink-600);font-size:.69rem;font-weight:800;letter-spacing:.06em;text-align:left;text-transform:uppercase}
body[data-visual-version="3.0"] .progress-steps--folio-v27 .is-current{background:var(--white)}
body[data-visual-version="3.0"] .progress-steps--folio-v27 .is-current .progress-step__marker{color:var(--brass-700)!important}
body[data-visual-version="3.0"] .progress-steps--folio-v27 .is-current .progress-step__label{color:var(--petrol-950)}
body[data-visual-version="3.0"] .progress-steps--folio-v27 .is-complete .progress-step__marker{color:var(--success)!important}

body[data-visual-version="3.0"] .booking-shell--folio-v27{gap:clamp(2rem,5vw,4.5rem)}
body[data-visual-version="3.0"] .booking-card--funnel-v27{border:0;border-top:2px solid var(--petrol-950);border-radius:.12rem;background:var(--white);box-shadow:0 20px 70px rgba(23,33,36,.08);padding:clamp(1.25rem,3.5vw,2.6rem)}
body[data-visual-version="3.0"] .booking-step--folio-v27{gap:clamp(1.6rem,4vw,2.8rem)}
body[data-visual-version="3.0"] .booking-step__header--folio-v27{position:relative;padding-right:5.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--concrete-200)}
body[data-visual-version="3.0"] .booking-step__header--folio-v27 .eyebrow{font-size:.68rem}
body[data-visual-version="3.0"] .booking-step__folio{position:absolute;right:0;top:.05rem;color:var(--brass-700);font-size:.7rem;font-weight:850}
body[data-visual-version="3.0"] .booking-step__title{font-size:clamp(2rem,4.2vw,3.5rem);letter-spacing:-.052em}
body[data-visual-version="3.0"] .booking-step__lead{max-width:62ch;font-size:.96rem}

body[data-visual-version="3.0"] .calendar-shell--folio-v27{padding:clamp(1rem,2.5vw,1.5rem);border:1px solid var(--concrete-200);border-radius:.18rem;background:var(--concrete-25)}
body[data-visual-version="3.0"] .calendar-toolbar{padding-bottom:.85rem;border-bottom:1px solid var(--concrete-200)}
body[data-visual-version="3.0"] .calendar-toolbar__title{font-size:1rem;font-weight:760;letter-spacing:-.015em}
body[data-visual-version="3.0"] .calendar-month__title{font-size:.72rem;font-weight:850;letter-spacing:.11em;text-transform:uppercase}
body[data-visual-version="3.0"] .calendar-weekday{font-size:.63rem;letter-spacing:.08em}
body[data-visual-version="3.0"] .calendar-day{border-radius:.15rem;font-weight:650}
body[data-visual-version="3.0"] .calendar-day.is-start,
body[data-visual-version="3.0"] .calendar-day.is-end{box-shadow:none}
body[data-visual-version="3.0"] .calendar-legend{font-size:.68rem}
body[data-visual-version="3.0"] .date-summary{border:0;border-block:1px solid var(--concrete-200);border-radius:0;background:transparent;padding:1rem 0}
body[data-visual-version="3.0"] .date-summary__label{font-size:.64rem;letter-spacing:.09em}

body[data-visual-version="3.0"] .guest-list--folio-v27{border-top:1px solid var(--concrete-200)}
body[data-visual-version="3.0"] .guest-list--folio-v27 .guest-row{border:0;border-bottom:1px solid var(--concrete-200);border-radius:0;padding:1rem 0;background:transparent}
body[data-visual-version="3.0"] .guest-row__label{font-size:.92rem}
body[data-visual-version="3.0"] .stepper__button{border-color:var(--concrete-200);background:var(--concrete-25)}

body[data-visual-version="3.0"] .booking-room-option--folio-v27{border-radius:.15rem;border-color:var(--concrete-200);box-shadow:none}
body[data-visual-version="3.0"] .booking-room-option--folio-v27:hover{transform:none;box-shadow:0 12px 30px rgba(23,33,36,.06)}
body[data-visual-version="3.0"] .booking-room-option--folio-v27:has(input:checked){border-color:var(--petrol-650);box-shadow:inset 4px 0 0 var(--petrol-650)}
body[data-visual-version="3.0"] .booking-room-option__title{letter-spacing:-.035em}

body[data-visual-version="3.0"] .form-control,
body[data-visual-version="3.0"] .form-select,
body[data-visual-version="3.0"] .form-textarea{border:0;border-bottom:1px solid var(--concrete-300);border-radius:0;background:transparent;padding-inline:.15rem;box-shadow:none}
body[data-visual-version="3.0"] .form-control:focus,
body[data-visual-version="3.0"] .form-select:focus,
body[data-visual-version="3.0"] .form-textarea:focus{border-bottom-color:var(--petrol-650);box-shadow:0 2px 0 var(--petrol-650)}
body[data-visual-version="3.0"] .form-select{padding-right:2.5rem}
body[data-visual-version="3.0"] .form-label,
body[data-visual-version="3.0"] .form-legend{font-size:.68rem;font-weight:850;color:var(--petrol-950)}
body[data-visual-version="3.0"] .checkbox-field--card{border-radius:.16rem;background:var(--concrete-50)}

body[data-visual-version="3.0"] .price-summary--folio-v27{border:0;border-top:2px solid var(--brass-500);border-radius:.12rem;background:linear-gradient(180deg,#07333a,var(--petrol-950));box-shadow:0 24px 64px rgba(6,47,53,.18)}
body[data-visual-version="3.0"] .price-summary--folio-v27 .price-summary__header{display:grid;grid-template-columns:1fr auto;row-gap:.18rem}
body[data-visual-version="3.0"] .price-summary__eyebrow{grid-column:1;color:var(--brass-300);font-size:.62rem;font-weight:850}
body[data-visual-version="3.0"] .price-summary__title{grid-column:1;font-size:1.35rem;letter-spacing:-.035em}
body[data-visual-version="3.0"] .price-summary__toggle{grid-column:2;grid-row:1 / 3}
body[data-visual-version="3.0"] .price-summary__stay{padding-block:.9rem;border-block:1px solid rgba(255,255,255,.14)}
body[data-visual-version="3.0"] .price-line dt{font-size:.76rem}
body[data-visual-version="3.0"] .price-total__amount{font-size:clamp(2rem,4vw,3rem)}
body[data-visual-version="3.0"] .price-summary__promises{display:grid;gap:.45rem;margin:0;padding:1rem 0 0;border-top:1px solid rgba(255,255,255,.14);list-style:none;color:rgba(255,253,249,.72);font-size:.68rem;letter-spacing:.03em}
body[data-visual-version="3.0"] .price-summary__promises li::before{content:"✓";margin-right:.5rem;color:var(--brass-300)}
body[data-visual-version="3.0"] .booking-success--folio-v27{border-radius:.15rem;border-top:2px solid var(--success);box-shadow:0 18px 60px rgba(23,33,36,.08)}

/* Contact — a letter, not a generic form card. */
body[data-visual-version="3.0"] .contact-letter-v27{background:linear-gradient(90deg,var(--concrete-100) 0 34%,var(--concrete-25) 34%)}
body[data-visual-version="3.0"] .booking-card--contact-v27{position:relative;border:0;border-top:2px solid var(--petrol-950);border-radius:.12rem;background:var(--white);padding:clamp(1.4rem,4vw,3rem);box-shadow:0 22px 70px rgba(23,33,36,.09)}
body[data-visual-version="3.0"] .contact-form-head-v27{display:grid;gap:.5rem;margin-bottom:1.8rem;padding-bottom:1.25rem;border-bottom:1px solid var(--concrete-200)}
body[data-visual-version="3.0"] .contact-form-head-v27 > span{color:var(--brass-700);font-size:.64rem;font-weight:850;letter-spacing:.14em}
body[data-visual-version="3.0"] .contact-form-head-v27 h3{font-size:clamp(1.65rem,3vw,2.45rem);letter-spacing:-.045em}
body[data-visual-version="3.0"] .contact-form-head-v27 p{max-width:48ch;color:var(--ink-600);font-size:.86rem}
body[data-visual-version="3.0"] .contact-directory-v27 .contact-card{border-radius:.14rem;border-width:0 0 1px;background:transparent;box-shadow:none;padding-inline:0}
body[data-visual-version="3.0"] .contact-directory-v27 .contact-card__icon{border-radius:.18rem}
body[data-visual-version="3.0"] .house-rules--folio-v27{gap:0;border-top:1px solid rgba(255,255,255,.17)}
body[data-visual-version="3.0"] .house-rules--folio-v27 .house-rule{border:0;border-bottom:1px solid rgba(255,255,255,.17);border-radius:0;background:transparent;padding:1.25rem 0;color:var(--white)}
body[data-visual-version="3.0"] .house-rules--folio-v27 .house-rule__icon{background:rgba(255,255,255,.06);color:var(--brass-300)}
body[data-visual-version="3.0"] .house-rules--folio-v27 .house-rule__title{color:var(--white)}
body[data-visual-version="3.0"] .house-rules--folio-v27 .house-rule__text{color:rgba(255,253,249,.67)}
body[data-visual-version="3.0"] .accordion--folio-v27{counter-reset:faq;border-top:1px solid var(--concrete-300)}
body[data-visual-version="3.0"] .accordion--folio-v27 .accordion__item{position:relative;padding-left:3.25rem;counter-increment:faq}
body[data-visual-version="3.0"] .accordion--folio-v27 .accordion__item::before{position:absolute;left:0;top:1.45rem;content:attr(data-faq-index);color:var(--brass-700);font-size:.68rem;font-weight:850;letter-spacing:.1em}
body[data-visual-version="3.0"] .accordion--folio-v27 .accordion__button{font-size:clamp(1rem,2vw,1.2rem);font-weight:700}
body[data-visual-version="3.0"] .accordion--folio-v27 .accordion__content{font-size:.91rem}

/* Neighbourhood — map and routes become a compact printed city guide. */
body[data-visual-version="3.0"] .stat-strip--folio-v27 .stat{background:transparent}
body[data-visual-version="3.0"] .stat-strip--folio-v27 .stat__value{font-size:clamp(1.65rem,4vw,2.55rem);font-weight:620}
body[data-visual-version="3.0"] .map-editorial-v27{background:var(--editorial-paper)}
body[data-visual-version="3.0"] .map-editorial-v27 .editorial-map{border-radius:.18rem;box-shadow:0 18px 50px rgba(23,33,36,.08)}
body[data-visual-version="3.0"] .map-list--folio-v27{border-top:1px solid var(--concrete-300);gap:0}
body[data-visual-version="3.0"] .map-list--folio-v27 .map-list__button{border:0;border-bottom:1px solid var(--concrete-300);border-radius:0;background:transparent;padding:.9rem .2rem}
body[data-visual-version="3.0"] .map-list--folio-v27 .map-list__button:hover,
body[data-visual-version="3.0"] .map-list--folio-v27 .map-list__button.is-active{transform:none;background:rgba(255,255,255,.55)}
body[data-visual-version="3.0"] .map-list--folio-v27 .map-list__number{width:2rem;height:2rem;background:transparent;border:1px solid var(--petrol-950);color:var(--petrol-950);font-size:.7rem}
body[data-visual-version="3.0"] .route-grid--folio-v27 .route-card,
body[data-visual-version="3.0"] .place-grid--folio-v27 .place-card{position:relative;border-radius:.16rem;box-shadow:none}
body[data-visual-version="3.0"] .route-grid--folio-v27 .route-card::before,
body[data-visual-version="3.0"] .place-grid--folio-v27 .place-card::before{position:absolute;z-index:3;top:.85rem;right:.85rem;content:attr(data-route-index);color:var(--white);font-size:.62rem;font-weight:850;letter-spacing:.12em;text-shadow:0 1px 4px rgba(0,0,0,.5)}
body[data-visual-version="3.0"] .place-grid--folio-v27 .place-card::before{content:attr(data-place-index)}
body[data-visual-version="3.0"] .route-grid--folio-v27 .route-card__body,
body[data-visual-version="3.0"] .place-grid--folio-v27 .place-card__body{border-top:0}
body[data-visual-version="3.0"] .route-card__title,
body[data-visual-version="3.0"] .place-card__title{letter-spacing:-.04em}

@media (min-width:64rem){
  body[data-visual-version="3.0"] .booking-shell--folio-v27{grid-template-columns:minmax(0,8fr) minmax(18rem,4fr)}
  body[data-visual-version="3.0"] .booking-aside--folio-v27{top:calc(var(--header) + 1.4rem)}
  body[data-visual-version="3.0"] .contact-letter-v27 .editorial-split{grid-template-columns:minmax(17rem,.7fr) minmax(0,1.3fr)}
  body[data-visual-version="3.0"] .contact-letter-v27 .editorial-split__content{position:sticky;top:calc(var(--header) + 2rem)}
  body[data-visual-version="3.0"] .rules-editorial-v27 .house-rules--folio-v27{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:3rem}
}

@media (max-width:47.999rem){
  body[data-visual-version="3.0"] .booking-hero-meta,
  body[data-visual-version="3.0"] .contact-hero-meta,
  body[data-visual-version="3.0"] .neighbourhood-hero-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem}
  body[data-visual-version="3.0"] :is(.booking-hero-meta,.contact-hero-meta,.neighbourhood-hero-meta) span{display:grid;gap:.1rem}
  body[data-visual-version="3.0"] .progress-steps--folio-v27 .progress-step{grid-template-columns:1fr;gap:.18rem;padding:.7rem .45rem}
  body[data-visual-version="3.0"] .progress-steps--folio-v27 .progress-step__label{font-size:.58rem;text-align:center}
  body[data-visual-version="3.0"] .progress-steps--folio-v27 .progress-step__marker{justify-self:center}
  body[data-visual-version="3.0"] .booking-card--funnel-v27{padding:1.1rem}
  body[data-visual-version="3.0"] .booking-step__header--folio-v27{padding-right:0;padding-top:1.25rem}
  body[data-visual-version="3.0"] .booking-step__folio{left:0;right:auto;top:0}
  body[data-visual-version="3.0"] .calendar-shell--folio-v27{padding:.7rem}
  body[data-visual-version="3.0"] .contact-letter-v27{background:var(--concrete-50)}
  body[data-visual-version="3.0"] .accordion--folio-v27 .accordion__item{padding-left:2.35rem}
}


/* ============================================================
   v2.8 — Flow motion, responsive feedback & interaction polish
   ============================================================ */
body[data-visual-version="3.0"]{
  --motion-quick:140ms;
  --motion-ui:220ms;
  --motion-flow:360ms;
  --motion-ease:cubic-bezier(.2,.75,.25,1);
  --motion-ease-out:cubic-bezier(.16,1,.3,1);
}

/* Strong, consistent keyboard feedback without visual noise. */
body[data-visual-version="3.0"] :is(a,button,input,select,textarea,[tabindex]):focus-visible{
  outline:3px solid var(--focus);
  outline-offset:4px;
}
body[data-visual-version="3.0"] .button:focus-visible,
body[data-visual-version="3.0"] .icon-button:focus-visible,
body[data-visual-version="3.0"] .filter-button:focus-visible{
  box-shadow:0 0 0 2px var(--concrete-25),0 0 0 5px var(--focus),var(--shadow-sm);
}

/* Booking step direction: only the incoming panel moves. */
body[data-visual-version="3.0"] [data-booking-form][data-step-direction="forward"] .booking-step.is-step-entering{
  animation:v28-step-forward var(--motion-flow) var(--motion-ease-out) both;
}
body[data-visual-version="3.0"] [data-booking-form][data-step-direction="backward"] .booking-step.is-step-entering{
  animation:v28-step-backward var(--motion-flow) var(--motion-ease-out) both;
}
body[data-visual-version="3.0"] .progress-steps--folio-v27 .progress-step__marker{
  transition:background-color var(--motion-ui) var(--motion-ease),border-color var(--motion-ui) var(--motion-ease),color var(--motion-ui) var(--motion-ease),transform var(--motion-ui) var(--motion-ease);
}
body[data-visual-version="3.0"] .progress-steps--folio-v27 .progress-step.is-current .progress-step__marker{
  transform:scale(1.06);
}
body[data-visual-version="3.0"] .progress-steps--folio-v27 .progress-step.is-complete .progress-step__marker::after{
  content:"✓";
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  background:var(--petrol-650);
  border-radius:inherit;
  color:var(--white);
  font-size:.7rem;
}

/* Calendar and guest count feedback. */
body[data-visual-version="3.0"] .calendar-day{
  transition:background-color var(--motion-quick) ease,color var(--motion-quick) ease,box-shadow var(--motion-quick) ease,transform var(--motion-quick) ease;
}
@media (hover:hover){
  body[data-visual-version="3.0"] .calendar-day:hover:not(:disabled){transform:translateY(-1px)}
  body[data-visual-version="3.0"] .booking-room-option--folio-v27:hover .booking-room-option__media img{transform:scale(1.012)}
  body[data-visual-version="3.0"] .map-list--folio-v27 .map-list__button:hover .map-list__number{transform:rotate(-4deg) scale(1.04)}
}
body[data-visual-version="3.0"] .calendar-day.is-start,
body[data-visual-version="3.0"] .calendar-day.is-end{animation:v28-date-select 240ms var(--motion-ease-out) both}
body[data-visual-version="3.0"] .guest-row [data-guest-output].is-count-changing{animation:v28-count 260ms var(--motion-ease-out) both}
body[data-visual-version="3.0"] .stepper__button{transition:background-color var(--motion-quick) ease,border-color var(--motion-quick) ease,transform var(--motion-quick) ease}
body[data-visual-version="3.0"] .stepper__button:active:not(:disabled){transform:scale(.94)}

/* Room selection and price response. */
body[data-visual-version="3.0"] .booking-room-option__media img{transition:transform 480ms var(--motion-ease-out)}
body[data-visual-version="3.0"] .booking-room-option.is-room-selected{animation:v28-room-selected 420ms var(--motion-ease-out) both}
body[data-visual-version="3.0"] .booking-room-option:has(input:checked) .booking-room-option__select::after{
  content:"Seçildi";
  justify-self:end;
  align-self:start;
  padding:.24rem .48rem;
  border-radius:999px;
  background:var(--petrol-950);
  color:var(--white);
  font-size:.58rem;
  font-weight:850;
  letter-spacing:.08em;
  text-transform:uppercase;
}
body[data-visual-version="3.0"] .price-total__amount.is-price-changing{animation:v28-price 340ms var(--motion-ease-out) both}
body[data-visual-version="3.0"] .price-summary.is-summary-updating{animation:v28-summary-glow 520ms ease both}
body[data-visual-version="3.0"] [data-price-summary-details].is-price-details-opening{animation:v28-details 260ms var(--motion-ease-out) both}

/* Lightbox: cinematic but restrained. */
body[data-visual-version="3.0"] .lightbox.is-dialog-entering{animation:v28-dialog-enter 320ms var(--motion-ease-out) both}
body[data-visual-version="3.0"] .lightbox__image.is-slide-changing{animation:v28-lightbox-slide 300ms var(--motion-ease-out) both}
body[data-visual-version="3.0"] .lightbox__caption{transition:opacity var(--motion-ui) ease}
body[data-visual-version="3.0"] .lightbox__nav:active{transform:translateY(-50%) scale(.94)}

/* Accordion and mobile navigation. */
body[data-visual-version="3.0"] .accordion__panel.is-accordion-opening .accordion__content{animation:v28-details 260ms var(--motion-ease-out) both}
body[data-visual-version="3.0"] .accordion__button{transition:color var(--motion-quick) ease,padding-left var(--motion-ui) var(--motion-ease-out)}
@media (hover:hover){body[data-visual-version="3.0"] .accordion__button:hover{padding-left:.25rem}}
body[data-visual-version="3.0"] .mobile-nav.is-closing{visibility:visible;transition-delay:0s}
body[data-visual-version="3.0"] .mobile-nav.is-open .mobile-nav__link{animation:v28-nav-link 320ms var(--motion-ease-out) both}
body[data-visual-version="3.0"] .mobile-nav.is-open li:nth-child(2) .mobile-nav__link{animation-delay:35ms}
body[data-visual-version="3.0"] .mobile-nav.is-open li:nth-child(3) .mobile-nav__link{animation-delay:70ms}
body[data-visual-version="3.0"] .mobile-nav.is-open li:nth-child(4) .mobile-nav__link{animation-delay:105ms}
body[data-visual-version="3.0"] .mobile-nav.is-open li:nth-child(5) .mobile-nav__link{animation-delay:140ms}
body[data-visual-version="3.0"] .mobile-nav.is-open li:nth-child(6) .mobile-nav__link{animation-delay:175ms}

/* Buttons: tactile rather than floaty. */
body[data-visual-version="3.0"] .button{overflow:hidden}
body[data-visual-version="3.0"] .button::after{
  position:absolute;
  inset:auto 14% 0;
  height:2px;
  content:"";
  transform:scaleX(0);
  transform-origin:left;
  background:currentColor;
  opacity:.35;
  transition:transform var(--motion-ui) var(--motion-ease-out);
}
@media (hover:hover){body[data-visual-version="3.0"] .button:hover::after{transform:scaleX(1)}}
body[data-visual-version="3.0"] .button:active{transform:translateY(0) scale(.985)}

/* Success state closes the flow with one clean entrance. */
body[data-visual-version="3.0"] .booking-success.is-success-entering{animation:v28-success 480ms var(--motion-ease-out) both}

/* Editorial cards now respond to focus as well as hover. */
body[data-visual-version="3.0"] :is(.room-card,.route-card,.place-card,.contact-card){transition:transform var(--motion-ui) var(--motion-ease-out),box-shadow var(--motion-ui) ease,border-color var(--motion-ui) ease}
body[data-visual-version="3.0"] :is(.room-card,.route-card,.place-card):focus-within{transform:translateY(-2px);box-shadow:var(--shadow-md)}

@keyframes v28-step-forward{from{opacity:0;transform:translate3d(20px,0,0)}to{opacity:1;transform:none}}
@keyframes v28-step-backward{from{opacity:0;transform:translate3d(-20px,0,0)}to{opacity:1;transform:none}}
@keyframes v28-date-select{0%{transform:scale(.9)}70%{transform:scale(1.05)}100%{transform:scale(1)}}
@keyframes v28-count{0%{transform:translateY(0);opacity:1}45%{transform:translateY(-4px);opacity:.45}100%{transform:none;opacity:1}}
@keyframes v28-room-selected{0%{box-shadow:inset 0 0 0 0 rgba(23,96,106,0)}45%{box-shadow:inset 4px 0 0 var(--petrol-650),0 12px 30px rgba(23,96,106,.12)}100%{box-shadow:inset 4px 0 0 var(--petrol-650)}}
@keyframes v28-price{0%{opacity:.35;transform:translateY(4px)}100%{opacity:1;transform:none}}
@keyframes v28-summary-glow{0%,100%{box-shadow:0 24px 64px rgba(6,47,53,.18)}45%{box-shadow:0 24px 70px rgba(180,134,67,.26)}}
@keyframes v28-details{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}
@keyframes v28-dialog-enter{from{opacity:0;transform:translateY(14px) scale(.99)}to{opacity:1;transform:none}}
@keyframes v28-lightbox-slide{from{opacity:.2;transform:scale(.992)}to{opacity:1;transform:none}}
@keyframes v28-nav-link{from{opacity:0;transform:translateX(12px)}to{opacity:1;transform:none}}
@keyframes v28-success{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

@media (prefers-reduced-motion:reduce){
  body[data-visual-version="3.0"] *,
  body[data-visual-version="3.0"] *::before,
  body[data-visual-version="3.0"] *::after{animation:none!important;transition-duration:.01ms!important;transition-delay:0ms!important}
  body[data-visual-version="3.0"] :is(.room-card,.route-card,.place-card):focus-within{transform:none}
}


/* v2.8 finishing corrections */
body[data-visual-version="3.0"] .lightbox[open]{animation:none}
body[data-visual-version="3.0"] .booking-room-option:has(input:checked) .booking-room-option__select{grid-template-columns:1.25rem minmax(0,1fr) auto}
body[data-visual-version="3.0"] [data-room-item].is-filter-revealing{animation:v28-filter-in 360ms var(--motion-ease-out) both}
body[data-visual-version="3.0"] [data-contact-success].is-success-entering{animation:v28-success 420ms var(--motion-ease-out) both}
@keyframes v28-filter-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}


/* ============================================================
   v2.9 — conversion hierarchy, sticky behavior, accessibility & perf
   ============================================================ */
body[data-visual-version="3.0"]{
  --focus-ring:0 0 0 3px rgba(242,185,95,.32),0 0 0 6px rgba(6,47,53,.10);
}
html{scroll-padding-top:calc(var(--header) + 1rem)}
body[data-visual-version="3.0"] :where(section[id],article[id],div[id],form[id]){scroll-margin-top:calc(var(--header) + 1rem)}
body[data-visual-version="3.0"] :where(a,button,input,select,textarea,summary):focus-visible{box-shadow:var(--focus-ring)}
body[data-visual-version="3.0"] .site-header__cta{transition:transform var(--base) var(--ease),box-shadow var(--base) var(--ease),background-color var(--base) var(--ease),color var(--base) var(--ease)}
body[data-visual-version="3.0"] .site-header.is-conversion-ready .site-header__cta{transform:translateY(-1px);background:var(--brass-500);color:var(--petrol-950);box-shadow:0 10px 26px rgba(125,87,39,.24)}
body[data-visual-version="3.0"] .booking-panel{border-top:3px solid var(--brass-500)}
body[data-visual-version="3.0"] .booking-panel .button--wide{min-height:3.35rem}
body[data-visual-version="3.0"] .mobile-booking-bar{border-top-color:rgba(125,87,39,.34);box-shadow:0 -14px 34px rgba(23,33,36,.14)}
body[data-visual-version="3.0"] .mobile-booking-bar[aria-hidden="true"]{pointer-events:none}
body[data-visual-version="3.0"] .price-summary--folio-v27{border-color:rgba(216,183,122,.30)}
body[data-visual-version="3.0"] .price-total__amount{font-variant-numeric:tabular-nums}
body[data-visual-version="3.0"] .booking-room-option:has(input:checked){outline:2px solid var(--brass-500);outline-offset:2px}
body[data-visual-version="3.0"] .progress-step.is-current .progress-step__marker{box-shadow:0 0 0 .3rem rgba(180,134,67,.13)}
body[data-visual-version="3.0"] .form-control:focus-visible,
body[data-visual-version="3.0"] .form-select:focus-visible,
body[data-visual-version="3.0"] .form-textarea:focus-visible{outline:3px solid var(--focus);outline-offset:1px;box-shadow:0 0 0 5px rgba(242,185,95,.16)}

@supports (content-visibility:auto){
  body[data-visual-version="3.0"] main > .section:nth-of-type(n+4){
    content-visibility:auto;
    contain-intrinsic-size:auto 900px;
  }
}

@media (max-width:63.999rem){
  body[data-visual-version="3.0"].booking-page .progress-steps,
  body[data-visual-version="3.0"] .booking-page .progress-steps{
    position:sticky;
    z-index:45;
    top:calc(var(--header) + .4rem);
    margin-inline:-.35rem;
    padding:.55rem .5rem .65rem;
    border:1px solid rgba(222,214,202,.9);
    border-radius:var(--r-md);
    background:rgba(252,250,246,.96);
    box-shadow:0 8px 24px rgba(23,33,36,.08);
    backdrop-filter:blur(12px);
  }
}

@media (max-width:47.999rem){
  body[data-visual-version="3.0"] .site-header{backdrop-filter:blur(10px)}
  body[data-visual-version="3.0"] .mobile-booking-bar{grid-template-columns:minmax(0,1fr) auto;padding-top:.65rem}
  body[data-visual-version="3.0"] .mobile-booking-bar__price strong{font-size:1.05rem}
}

@media (prefers-contrast:more){
  body[data-visual-version="3.0"]{--ink-700:#2f3b3e;--concrete-300:#a69d91}
  body[data-visual-version="3.0"] .form-control,
  body[data-visual-version="3.0"] .form-select,
  body[data-visual-version="3.0"] .form-textarea,
  body[data-visual-version="3.0"] .booking-card,
  body[data-visual-version="3.0"] .booking-panel{border-width:2px}
  body[data-visual-version="3.0"] .text-muted{color:var(--ink-800)}
}

html.is-data-saver body[data-visual-version="3.0"] *{scroll-behavior:auto!important}
html.is-data-saver body[data-visual-version="3.0"] :is(.site-header,.availability-bar,.mobile-booking-bar,.price-summary){backdrop-filter:none!important}
html.is-data-saver body[data-visual-version="3.0"] :is(.room-card:hover,.gallery-mosaic__item:hover) img{transform:none!important}
