@font-face { font-family:Inter; src:url('/assets/fonts/inter-variable.woff2') format('woff2'); font-style:normal; font-weight:100 900; font-display:swap}

@font-face { font-family:'Instrument Serif'; src:url('/assets/fonts/instrument-serif.woff2') format('woff2'); font-weight:400; font-style:normal; font-display:swap}

@font-face { font-family:'Instrument Serif'; src:url('/assets/fonts/instrument-serif-italic.woff2') format('woff2'); font-weight:400; font-style:italic; font-display:swap}

:root { --ink:#14232f; --muted:#56616a; --paper:#f8f7f3; --white:#fff; --line:#dedfd8; --gold:#c39d5b; --gold-light:#e7c78e; --night:#111f2c; --serif:'Instrument Serif',Georgia,serif; --sans:Inter,Arial,sans-serif; --radius:18px}

* { box-sizing:border-box}
html { scroll-behavior:smooth; scroll-padding-top:112px}
body { margin:0; background:var(--paper); color:var(--ink); font:400 18px/1.65 var(--sans); -webkit-font-smoothing:antialiased}
body:has(dialog[open]) { overflow:hidden}
a { color:inherit; text-decoration:none}
button,input,select { font:inherit}
button,a,input,select,summary { -webkit-tap-highlight-color:transparent}
button { cursor:pointer}
a,button { touch-action:manipulation}
img,video { display:block; max-width:100%}
button { color:inherit}
button:disabled { opacity:.35; cursor:default}
[hidden] { display:none!important}
::selection { background:var(--gold-light); color:var(--night)}
:focus-visible { outline:3px solid #947337; outline-offset:5px}
h1,h2,h3,p { margin:0}
h1,h2 { font-weight:400; letter-spacing:-.035em; line-height:1.03}
h1 { font-size:clamp(60px,6.6vw,96px)}
h2 { font-size:clamp(44px,4.3vw,64px)}
h3 { font-size:1.25rem; line-height:1.4; font-weight:600; letter-spacing:-.025em}
em { font-family:var(--serif); font-weight:400; letter-spacing:-.025em}
p { color:var(--muted)}
.container { width:min(1920px,calc(100% - 96px)); margin-inline:auto}
.section { padding-block:104px}
.eyebrow { font-size:0.875rem; font-weight:700; letter-spacing:.18em; color:#716044; text-transform:uppercase; display:flex; align-items:center; gap:10px; line-height:1.6; margin-bottom:24px}
.icon { flex:none; vertical-align:middle}
.small-note,.micro { font-size:0.875rem; color:var(--muted)}
.sr-only { position:absolute; width:1px; height:1px; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap}
.skip-link { position:fixed; top:12px; left:12px; z-index:100; transform:translateY(-160%); padding:12px 20px; background:var(--night); color:white}
.skip-link:focus { transform:none}
.button { display:inline-flex; align-items:center; justify-content:center; gap:28px; min-height:52px; padding:13px 23px; border:1px solid var(--line); border-radius:6px; font-size:0.875rem; font-weight:600; line-height:1.5; text-align:center; background:var(--white); transition:background .2s,color .2s,transform .2s}
.button .icon { width:18px; height:18px}
.button-dark { color:#fff; background:var(--night); border-color:var(--night)}
.button-gold { color:var(--night); background:var(--gold-light); border-color:var(--gold-light)}
.button-outline { background:transparent; border-color:#a3a9ac}
.text-link { display:inline-flex; gap:18px; align-items:center; min-height:44px; font-size:0.875rem; font-weight:600; line-height:1.5}
.text-link .icon { width:18px; height:18px}
.text-button { font-size:0.875rem; border:0; background:transparent; text-decoration:underline; min-height:44px; padding:0 4px}
.actions { display:flex; gap:30px; align-items:center; flex-wrap:wrap}
.glass { background:rgba(249,249,245,.91); border:1px solid rgba(255,255,255,.6)}
@supports(backdrop-filter:blur(16px)) { .glass { background:rgba(249,249,245,.78); backdrop-filter:blur(16px)}
}

.site-header { position:sticky; top:0; z-index:30; background:rgba(248,247,243,.95); border-bottom:1px solid rgba(20,35,47,.09)}
@supports(backdrop-filter:blur(16px)) { .site-header { backdrop-filter:blur(16px)}
}
.nav-shell { display:flex; min-height:94px; align-items:center; justify-content:space-between; gap:32px}
.wordmark { display:grid; gap:2px; white-space:nowrap}
.wordmark>span { font-size:1.375rem; letter-spacing:-.06em; font-weight:700; line-height:1.3}
.wordmark small { font-size:0.875rem; letter-spacing:.18em; font-weight:600}
.brand-dot { color:var(--gold)}
#navigation { display:flex; gap:29px; align-items:center}
#navigation>a { font-size:0.875rem; font-weight:600; min-height:44px; display:flex; align-items:center; position:relative}
#navigation>a[aria-current=page]:after { content:''; position:absolute; bottom:5px; left:0; width:16px; height:2px; background:var(--gold)}
.nav-actions { display:flex; gap:16px; align-items:center}
.nav-cta { min-height:42px; font-size:0.875rem; gap:24px; padding:11px 18px}
.menu-toggle { height:44px; width:44px; border:1px solid var(--line); border-radius:6px; background:none; display:grid; align-content:center; gap:6px; padding:11px}
.menu-toggle span { display:block; width:20px; height:1px; background:var(--ink); transition:transform .2s}
.menu-toggle[aria-expanded=true] span:first-child { transform:translateY(3.5px) rotate(45deg)}
.menu-toggle[aria-expanded=true] span:last-child { transform:translateY(-3.5px) rotate(-45deg)}
.photo { position:relative; overflow:hidden; isolation:isolate; background:#e8e7df; aspect-ratio:4/3; width:100%; min-width:0}
.photo>img { width:100%; height:100%; object-fit:cover}
.booking-bar { background:white; border:1px solid var(--line); border-radius:12px; padding:26px 30px 22px; box-shadow:0 14px 30px rgba(17,31,44,.025)}
.booking-bar-head { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-bottom:19px}
.booking-bar-head h2 { font-size:1.0rem; font-family:var(--sans); font-weight:600; letter-spacing:-.02em}
.micro { font-size:0.875rem; letter-spacing:.15em}
.booking-form { display:grid; gap:16px}
.quick-form { grid-template-columns:1.1fr 1.35fr .8fr .8fr auto; gap:10px 16px}
.field { display:flex; flex-direction:column; gap:9px; min-width:0}
.field>span { font-size:0.875rem; color:var(--muted); font-weight:600}
.field>input,.field>select { background:#fbfbf8; border:1px solid var(--line); border-radius:5px; padding:11px 12px; color:var(--ink); width:100%; min-width:0; min-height:47px; font-size:0.875rem; line-height:1.6}
.field>select { padding-right:20px; text-overflow:ellipsis}
.quick-form>.button { margin-top:24px; min-height:47px; padding-inline:18px; gap:18px; align-self:start}
.form-note,.form-error { grid-column:1/-1; font-size:0.875rem; line-height:1.6; margin:0; max-width:100%; overflow-wrap:anywhere}
.form-note+.form-note { margin-top:-6px}
.form-error { color:#a32424; font-size:0.875rem}
.form-error:empty { display:none}
.booking-form noscript { grid-column:1/-1; font-size:0.875rem}
.booking-form noscript a { text-decoration:underline}
.trust-strip { display:grid; grid-template-columns:repeat(3,1fr); padding:37px 0 42px; border-bottom:1px solid var(--line); gap:30px}
.trust-strip>div { display:flex; align-items:center; gap:17px}
.trust-strip>div>.icon { width:26px; height:26px; color:#8d7449}
.trust-strip p { display:grid; gap:3px; font-size:0.875rem; line-height:1.6}
.trust-strip strong { color:var(--ink); font-size:0.875rem; font-weight:600}

.section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:50px; margin-bottom:42px}
.section-heading .eyebrow { margin-bottom:18px}
.section-intro { max-width:420px; font-size:0.875rem; line-height:1.9}
.section-intro .text-link { margin-top:15px; color:var(--ink)}
.fleet-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:29px 26px}
.car-card { min-width:0; border:1px solid var(--line); border-radius:12px; background:#fff; overflow:hidden; display:flex; flex-direction:column}
.car-photo-link { position:relative; display:block; overflow:hidden}
.car-photo { aspect-ratio:1.34}
.car-photo>img { transition:transform .6s}
.photo-badge { position:absolute; top:15px; left:15px; color:var(--ink); background:rgba(255,255,255,.94); font-size:0.875rem; font-weight:600; letter-spacing:.04em; padding:5px 9px; border-radius:3px; max-width:calc(100% - 30px)}
.photo-link-icon { position:absolute; right:14px; bottom:14px; width:30px; height:30px; display:grid; place-items:center; color:white; background:rgba(17,31,44,.5); border:1px solid rgba(255,255,255,.4); border-radius:50%}
.photo-link-icon .icon { width:15px}
.car-card-body { padding:21px 21px 17px; display:flex; flex-direction:column; flex:1}
.car-heading h3 { font-size:1.0625rem; line-height:1.4}
.spec-line { display:flex; gap:18px; flex-wrap:wrap; margin:15px 0 21px; font-size:0.875rem; color:var(--muted)}
.spec-line span { display:flex; align-items:center; gap:6px}
.spec-line .icon { height:14px; width:14px}
.card-bottom { display:flex; align-items:center; justify-content:space-between; gap:12px; border-top:1px solid #e8e9e4; padding-top:10px; margin-top:auto}
.card-bottom>span { font-size:0.875rem; color:var(--muted)}
.card-bottom .text-link { font-size:0.875rem; gap:10px; min-height:35px}
.card-bottom .icon { width:15px}
.stay-section { padding:76px 0; background:#edece5}
.stay-grid { display:grid; grid-template-columns:1.1fr 1fr; gap:85px; align-items:center}
.stay-photo { position:relative; display:block; min-width:0}
.stay-cover { height:540px; aspect-ratio:auto; border-radius:12px}
.letterbox .photo-crop { position:absolute; width:100%; aspect-ratio:3/4; left:0; top:50%; transform:translateY(-50%); overflow:hidden}
.letterbox .photo-crop img { display:block; width:100%; height:auto; max-width:none; margin-top:-36.1111111%}
.stay-badge { position:absolute; left:20px; bottom:20px; padding:9px 12px; border:1px solid #fff7; background:rgba(17,31,44,.8); color:#fff; font-size:0.875rem; letter-spacing:.14em; border-radius:4px}
.stay-copy { padding:25px 0}
.stay-copy h2 { margin-bottom:26px}
.stay-copy>p:not(.eyebrow) { font-size:0.875rem; max-width:520px}
.stay-specs { display:flex; gap:20px; flex-wrap:wrap; margin:28px 0}
.stay-specs>span { display:flex; flex-direction:column; gap:9px; font-size:0.875rem; min-width:76px}
.stay-specs .icon { color:#917443}
.stay-copy .small-note { margin-top:16px; font-size:0.875rem}
.steps-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line)}
.steps-grid article { padding:28px 36px 8px 0}
.steps-grid article+article { border-left:1px solid var(--line); padding-left:36px}
.step-no { font-family:var(--serif); font-size:2.625rem; color:#a48650; display:block; margin-bottom:22px}
.steps-grid h3 { font-size:1.125rem; margin-bottom:13px}
.steps-grid p { font-size:0.875rem; max-width:400px; line-height:1.9}
.delivery-section { background:var(--night); color:#f8f7f3; padding:90px 0}
.delivery-grid { display:grid; grid-template-columns:1fr 1fr; gap:85px; align-items:center}
.delivery-copy .eyebrow { color:var(--gold-light)}
.delivery-copy h2 { font-size:4.875rem; line-height:1.05; margin-bottom:24px}
.delivery-copy h2 em { color:var(--gold-light)}
.delivery-copy>p:not(.eyebrow) { color:#b4bec4; font-size:0.875rem; max-width:360px; margin-bottom:27px}
.delivery-note { display:flex; gap:15px; align-items:flex-start; max-width:355px; margin-top:29px}
.delivery-note>.icon { color:var(--gold-light); width:16px; height:16px}
.delivery-note p { font-size:0.875rem; color:#b4bec4; line-height:1.9}
.delivery-visual { height:525px; position:relative; min-width:0}
.airport-photo { height:100%; border-radius:13px}
.delivery-caption { position:absolute; bottom:24px; left:24px; right:24px; padding:20px; border-radius:8px; color:var(--ink)}
.delivery-caption>span { display:block; font-size:0.875rem}
.delivery-caption>span:first-child { font-size:0.875rem; letter-spacing:.15em; margin-bottom:8px}
.delivery-caption strong { font-size:1.3125rem; font-weight:600; display:block; margin-bottom:3px}
.destination-grid { display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:24px}
.destination-grid article { position:relative}
.destination-grid .photo { height:390px; aspect-ratio:auto; border-radius:11px}
.destination-grid article>div:last-child { margin-top:18px}
.destination-grid span { color:#75664e; font-size:0.875rem; letter-spacing:.12em}
.destination-grid h3 { font-size:1.0625rem; margin-top:4px}
.faq-section { border-top:1px solid var(--line); display:grid; grid-template-columns:1fr 1.3fr; gap:100px}
.faq-section h2 { margin-bottom:20px}
.faq-section>div>p:not(.eyebrow) { font-size:0.875rem; line-height:1.9; margin-bottom:13px}
.faq-list details { border-bottom:1px solid var(--line)}
.faq-list details:first-child { border-top:1px solid var(--line)}
.faq-list summary { display:flex; list-style:none; align-items:center; justify-content:space-between; gap:20px; cursor:pointer; font-size:0.875rem; font-weight:600; padding:21px 0}
.faq-list summary::-webkit-details-marker { display:none}
.faq-list summary>span { font-size:1.4375rem; font-weight:400; line-height:1}
.faq-list details[open] summary>span { transform:rotate(45deg)}
.faq-list details>p { font-size:0.875rem; line-height:1.9; padding-bottom:25px; max-width:94%}
.contact-section { background:#eeeee8; padding:85px 0}
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:115px}
.contact-grid>div:first-child h2 { margin-bottom:27px}
.contact-grid>div:first-child>p:not(.eyebrow) { font-size:0.875rem; max-width:350px}
.contact-grid>div:first-child>a:not(.button) { display:block}
.contact-phone { font-size:1.5625rem; letter-spacing:-.04em; font-weight:600; margin-top:29px; margin-bottom:6px}
.contact-grid a[href^=mailto] { font-size:0.875rem; overflow-wrap:anywhere}
.contact-address { display:flex; gap:10px; align-items:flex-start; margin-top:24px; margin-bottom:22px}
.contact-address>.icon { width:17px; height:17px; margin-top:3px}
.contact-panels { display:grid; gap:20px}
.contact-panels article { padding:31px; background:#f8f7f3; border:1px solid #ddded6; border-radius:12px}
.contact-panels .eyebrow { font-size:0.875rem; margin-bottom:16px}
.contact-panels h3 { font-size:1.375rem; font-weight:400; margin-bottom:11px}
.contact-panels p:not(.eyebrow) { font-size:0.875rem; margin-bottom:16px; max-width:440px}
.social-links { display:flex; gap:30px; font-size:0.875rem; font-weight:600}
.social-links a { padding-block:10px}
.video-section { padding-block:90px}
.video-panel { height:475px; border-radius:14px; overflow:hidden; position:relative; background:var(--night); isolation:isolate}
.video-panel:after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,rgba(12,22,30,.9),rgba(12,22,30,.2)); z-index:-1}
.video-poster,.video-panel video { position:absolute; inset:0; width:100%; height:100%; z-index:-2; object-fit:cover}
.video-panel video { opacity:0; transition:opacity .5s}
.video-panel.is-playing video { opacity:1}
.video-copy { padding:65px 60px; color:#fff}
.video-copy .eyebrow { color:var(--gold-light)}
.video-copy h2 { margin-bottom:28px}
.video-toggle { position:absolute; right:24px; bottom:24px; color:#fff; border:1px solid #ffffff66; background:#14232fc9; padding:10px 16px; border-radius:4px; font-size:0.875rem; min-height:44px}

.site-footer { background:var(--night); color:#eef0ed; padding:70px 0 20px}
.footer-heading { display:flex; justify-content:space-between; align-items:center; gap:30px; padding-bottom:50px; border-bottom:1px solid #ffffff1e}
.footer-heading .eyebrow { color:var(--gold-light); font-size:0.875rem; margin-bottom:18px}
.footer-heading h2 { font-size:4.0rem}
.footer-heading h2 em { color:var(--gold-light)}
.footer-grid { display:grid; grid-template-columns:1.2fr 1fr 1.15fr 1fr; gap:45px; padding:49px 0}
.footer-logo { height:95px; width:132px; aspect-ratio:auto; background:transparent; margin-bottom:15px}
.footer-logo img { object-fit:contain}
.footer-brand p { font-size:0.875rem; color:#afb9bf; line-height:1.9}
.footer-grid h3 { font-size:0.875rem; font-weight:600; margin-bottom:18px; letter-spacing:0}
.footer-grid a,.footer-grid>div>p { display:block; font-size:0.875rem; line-height:1.9; color:#adb8bf; overflow-wrap:anywhere}
.footer-grid a { padding:6px 0}
.footer-grid>div>p { margin:10px 0}
.footer-bottom { border-top:1px solid #ffffff1e; padding-top:22px; display:flex; align-items:center; justify-content:space-between; gap:20px; font-size:0.875rem; color:#a0adb6}
.footer-bottom>div { display:flex; align-items:center; gap:22px}
.footer-bottom .text-button { color:#a0adb6; font-size:0.875rem}
.floating-contact { position:fixed; right:22px; bottom:22px; z-index:25; display:flex; align-items:center; gap:10px; background:var(--night); border:1px solid #fff9; color:white; border-radius:30px; padding:12px 18px; box-shadow:0 5px 24px #14232f20; font-size:0.875rem; font-weight:600}
.floating-contact .icon { height:20px; width:20px}

.breadcrumbs { display:flex; gap:10px; align-items:center; flex-wrap:wrap; font-size:0.875rem; color:var(--muted); padding-top:30px; line-height:1.7}
.breadcrumbs a { padding-block:6px}
.breadcrumbs>span[aria-current] { color:var(--ink)}
.page-intro { padding:49px 0 48px}
.page-intro h1 { font-size:5.125rem; margin-bottom:24px}
.page-intro h1 em { color:#907544}
.page-intro-row { display:flex; justify-content:space-between; align-items:flex-end; gap:35px}
.page-intro-row p { max-width:500px; font-size:0.875rem}
.catalog { padding-bottom:45px}
.filter-controls { border-block:1px solid var(--line); padding:23px 0 15px; margin-bottom:32px; display:grid; grid-template-columns:1fr; gap:20px}
.search-field { display:flex; align-items:center; gap:12px; max-width:370px; border:1px solid var(--line); background:#fff; border-radius:5px; padding:3px 15px}
.search-field>.icon { width:17px}
.search-field input { min-width:0; width:100%; border:0; background:none; padding:10px 0; font-size:0.875rem}
.search-field input:focus-visible { outline-offset:0}
.filters { display:flex; gap:8px; flex-wrap:wrap}
.filter { background:none; border:1px solid var(--line); padding:9px 16px; font-size:0.875rem; min-height:40px; border-radius:5px; white-space:nowrap}
.filter[aria-pressed=true] { background:var(--night); color:white; border-color:var(--night)}
.filter-status { display:flex; justify-content:space-between; align-items:center; font-size:0.875rem; color:var(--muted)}
.filter-status .text-button { font-size:0.875rem; min-height:24px}
.empty-state { text-align:center; border:1px solid var(--line); border-radius:10px; padding:70px 25px}
.empty-state h2 { font-size:2.125rem; margin-bottom:15px}
.empty-state p { font-size:0.875rem; margin-bottom:22px}
.help-strip { margin:40px 0 80px; padding:35px 40px; background:#eeeee6; border:1px solid #dfdfd4; border-radius:12px; display:flex; justify-content:space-between; align-items:center; gap:30px}
.help-strip h2 { font-size:1.4375rem; margin-bottom:10px}
.help-strip p { font-size:0.875rem}
.detail-page { padding-bottom:75px}
.detail-heading { padding:40px 0 35px}
.detail-heading .eyebrow { margin-bottom:16px}
.detail-heading h1 { font-size:3.5rem; max-width:930px; line-height:1.09}
.detail-heading>p:last-child { font-size:0.875rem; margin-top:17px; display:flex; align-items:center; gap:8px}
.detail-heading>p>.icon { width:16px; height:16px}
.detail-layout { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(280px,1fr); gap:55px; align-items:start}
.detail-content { min-width:0}
.gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px}
.gallery-photo { display:block; position:relative; min-width:0; border-radius:8px; overflow:hidden}
.gallery-photo:first-child { grid-column:1/-1}
.gallery-frame { aspect-ratio:1.35}
.gallery-photo:not(:first-child) .gallery-frame { aspect-ratio:1.4}
.gallery-expand { position:absolute; bottom:15px; right:15px; color:white; border:1px solid #ffffff55; background:#14232faa; padding:6px 9px; border-radius:4px; display:flex; align-items:center; gap:8px; font-size:0.875rem}
.gallery-expand>.icon { width:14px; height:14px}
.gallery-photo:not(:first-child) .gallery-expand { right:5px; bottom:5px; padding:4px}
.gallery-photo:not(:first-child) .gallery-expand>span { display:none}
.detail-description { padding-top:40px; padding-bottom:32px; border-bottom:1px solid var(--line)}
.detail-description h2 { font-size:2.375rem; margin-bottom:20px}
.detail-description>p { font-size:0.875rem; line-height:1.95; max-width:670px}
.detail-description>p+p { margin-top:17px}
.detail-description a:not(.text-link) { text-decoration:underline}
.detail-description .eyebrow { font-size:0.875rem; margin-bottom:12px}
.spec-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin:30px 0 25px; gap:20px 12px}
.spec-grid dt { font-size:0.875rem; color:var(--muted); margin-bottom:6px}
.spec-grid dd { font-size:0.875rem; margin:0; font-weight:600}
.feature-list { list-style:none; padding:0; margin:24px 0; display:grid; grid-template-columns:1fr 1fr; gap:14px; font-size:0.875rem}
.feature-list li { display:flex; align-items:center; gap:8px}
.feature-list .icon { width:17px; height:17px; color:#927747}
.detail-description>.small-note { font-size:0.875rem; color:#667076}
.booking-aside { position:sticky; top:119px}
.booking-panel { border:1px solid var(--line); border-radius:12px; padding:30px; background:white; box-shadow:0 12px 35px #14232f04}
.booking-panel .eyebrow { font-size:0.875rem; margin-bottom:17px}
.booking-panel h2 { font-size:2.5625rem}
.quote-price { font-size:0.875rem; padding-bottom:19px; margin:16px 0 23px; border-bottom:1px solid var(--line); color:var(--ink)}
.detail-form { grid-template-columns:1fr 1fr; gap:15px 12px}
.detail-form .field:has(select) { grid-column:1/-1}
.detail-form .field:has(input[type=number]) { grid-column:1/-1}
.detail-form>.button { grid-column:1/-1; margin-top:5px; width:100%; font-size:0.875rem; gap:25px}
.detail-form .form-note { font-size:0.875rem; line-height:1.8}
.aside-contact { padding:20px 8px; font-size:0.875rem; text-align:center; line-height:2.1}
.aside-contact a { font-weight:600; display:block}
.back-row { margin-top:40px}
.apartment-listing { display:grid; grid-template-columns:1.15fr 1fr; border:1px solid var(--line); border-radius:14px; background:#fff; overflow:hidden; margin:10px 0 55px}
.listing-cover { height:100%; min-height:540px; aspect-ratio:auto}
.apartment-listing>div { padding:44px}
.apartment-listing .eyebrow { font-size:0.875rem; margin-bottom:20px}
.apartment-listing h2 { font-size:2.6875rem; margin-bottom:20px}
.apartment-listing>div>p:not(.eyebrow) { font-size:0.875rem; line-height:1.9}
.apartment-listing .quote-price { padding-bottom:0; border:0; margin:22px 0}
.prose-page { max-width:800px; padding-block:75px 100px}
.prose-page h1 { font-size:4.3125rem; margin-bottom:30px}
.prose-page h2 { font-size:2.0rem; line-height:1.2; letter-spacing:-.02em; margin:40px 0 16px}
.prose-page p,.prose-page li { font-size:0.875rem; line-height:1.95; color:var(--muted)}
.prose-page p+p { margin-top:15px}
.prose-page p a { text-decoration:underline}
.prose-page li { padding-block:5px}
.prose-page .button { margin-top:30px}
.prose-page .faq-list { margin-top:35px}

.lightbox { position:fixed; inset:0; max-width:none; max-height:none; width:100%; height:100dvh; margin:0; padding:20px 28px; background:rgba(12,20,27,.98); color:white; border:0; z-index:80}
.lightbox[open] { display:grid; grid-template-rows:auto minmax(0,1fr) auto; gap:15px}
.lightbox::backdrop,.privacy-dialog::backdrop { background:#0c141bdd}
.lightbox-bar { display:flex; justify-content:space-between; align-items:center}
.lightbox-count { font-size:0.875rem; color:#d5dada}
.icon-button { background:none; border:1px solid #ffffff55; border-radius:50%; color:white; width:44px; height:44px; display:grid; place-items:center; font-size:1.375rem}
.lightbox-stage { display:grid; place-items:center; min-height:0; overflow:hidden; touch-action:pan-y}
.lightbox-stage>.photo { width:100%; height:100%; background:none; aspect-ratio:auto; max-height:100%; border-radius:0}
.lightbox-stage>.photo>img { object-fit:contain; object-position:center!important}
.lightbox-stage>.letterbox { width:auto; height:100%; max-width:100%; aspect-ratio:3/4}
.lightbox-controls { display:flex; align-items:center; justify-content:center; gap:30px}
.lightbox-caption { font-size:0.875rem; color:#d5dada; max-width:560px; text-align:center; min-width:0}
.privacy-dialog { max-width:min(500px,calc(100% - 36px)); border:1px solid var(--line); border-radius:12px; background:var(--paper); padding:35px; color:var(--ink)}
.privacy-dialog h2 { font-size:2.0rem; margin-bottom:20px}
.privacy-dialog p { font-size:0.875rem; line-height:1.9}
.privacy-dialog>a { font-size:0.875rem; text-decoration:underline}
.privacy-actions { display:flex; flex-wrap:wrap; gap:12px; margin:25px 0}
.privacy-actions .button { font-size:0.875rem; min-height:44px}
.consent-banner { position:fixed; bottom:20px; left:20px; right:20px; z-index:60; border:1px solid var(--line); border-radius:10px; padding:23px 28px; background:var(--white); box-shadow:0 10px 50px #14232f25; display:flex; gap:20px; align-items:center; max-width:1000px; margin:auto}
.consent-banner>div { flex:1}
.consent-banner strong { font-size:0.875rem}
.consent-banner p { font-size:0.875rem; margin-top:5px}
.consent-banner p a { text-decoration:underline}
.consent-banner .button { font-size:0.875rem; white-space:nowrap; min-height:44px}

@media(hover:hover) { .button:hover { transform:translateY(-2px); background:#eeeee6}
.button-dark:hover { background:#304251}
.button-gold:hover { background:#f1d5a0}
.text-link:hover,.footer-grid a:hover,#navigation>a:hover { color:#957440}
.car-photo-link:hover img { transform:scale(1.025)}
.car-card:focus-within { box-shadow:0 8px 30px #14232f0c}
.gallery-photo:hover { opacity:.92}
}

@media(min-width:1600px) { }

@media(max-width:1150px) { .container { width:calc(100% - 64px)}
.nav-shell { gap:24px}
#navigation { gap:20px}
.wordmark>span { font-size:1.25rem}
.quick-form { grid-template-columns:1fr 1fr 1fr 1fr}
.quick-form>.button { grid-column:1/-1; margin-top:4px}
.fleet-grid { gap:24px 19px}
.car-card-body { padding:17px}
.car-heading h3 { font-size:0.9375rem}
.stay-grid,.delivery-grid { gap:50px}
.stay-cover { height:490px}
.stay-copy h2 { font-size:3.4375rem}
.destination-grid .photo { height:330px}
.faq-section { gap:55px}
.contact-grid { gap:65px}
.footer-grid { gap:30px}
.detail-layout { gap:30px; grid-template-columns:minmax(0,1.5fr) minmax(290px,1fr)}
.booking-panel { padding:24px}
.apartment-listing>div { padding:30px}
.apartment-listing h2 { font-size:2.375rem}
}

@media(max-width:900px) { .nav-shell { min-height:82px; flex-wrap:wrap}
.site-header:not(.menu-ready) nav { order:3; width:100%; padding-bottom:15px; justify-content:center; flex-wrap:wrap}
.site-header.menu-ready #navigation { display:none; position:absolute; left:0; right:0; top:100%; padding:20px 32px 30px; background:var(--paper); box-shadow:0 16px 25px #14232f14; border-bottom:1px solid var(--line); flex-direction:column; align-items:stretch; gap:2px}
.site-header.menu-ready #navigation.open { display:flex}
.site-header.menu-ready #navigation>a { font-size:0.875rem; padding-block:9px}
.site-header.menu-ready #navigation>a[aria-current=page]:after { display:none}
.section { padding-block:76px}
.section-heading h2 { font-size:2.9375rem}
.section-heading { gap:35px}
.section-intro { max-width:265px; font-size:0.875rem}
.fleet-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px}
.car-heading h3 { font-size:1.0625rem}
.stay-grid { gap:35px}
.stay-cover { height:480px}
.stay-copy h2 { font-size:3.0rem}
.stay-copy>p:not(.eyebrow) { font-size:0.875rem}
.stay-specs { gap:13px}
.stay-specs>span { font-size:0.875rem; min-width:62px}
.steps-grid article { padding-right:25px}
.steps-grid article+article { padding-left:25px}
.steps-grid h3 { font-size:1.0rem}
.steps-grid p { font-size:0.875rem}
.delivery-copy h2 { font-size:4.0625rem}
.delivery-copy>p:not(.eyebrow) { font-size:0.875rem}
.delivery-visual { height:470px}
.delivery-grid { gap:38px}
.destination-grid { gap:17px}
.destination-grid .photo { height:290px}
.destination-grid h3 { font-size:0.9375rem}
.faq-section { grid-template-columns:1fr 1.4fr; gap:35px}
.faq-list summary { font-size:0.875rem}
.contact-grid { gap:40px}
.contact-grid h2 { font-size:3.0625rem}
.contact-panels article { padding:25px}
.contact-phone { font-size:1.375rem}
.footer-grid { grid-template-columns:1fr 1fr; gap:35px 70px}
.footer-heading h2 { font-size:3.3125rem}
.detail-layout { grid-template-columns:minmax(0,1.2fr) minmax(275px,1fr); gap:24px}
.detail-heading h1 { font-size:3.0rem}
.booking-panel { padding:22px}
.booking-panel h2 { font-size:2.1875rem}
.detail-form { grid-template-columns:1fr}
.detail-form .field { grid-column:1/-1}
.spec-grid { grid-template-columns:1fr 1fr}
.feature-list { grid-template-columns:1fr}
.detail-description h2 { font-size:2.0rem}
.apartment-listing h2 { font-size:2.125rem}
.apartment-listing>div { padding:26px}
.apartment-listing { grid-template-columns:1fr 1fr}
.listing-cover { min-height:580px}
.page-intro h1 { font-size:4.375rem}
.page-intro-row { align-items:flex-start}
.prose-page h1 { font-size:3.75rem}
}

@media(max-width:640px) { html { scroll-padding-top:95px}
.container { width:calc(100% - 40px)}
body { font-size:1rem}
.nav-shell { min-height:76px; gap:12px}
.wordmark>span { font-size:1.25rem}
.wordmark small { font-size:0.875rem}
.nav-cta { min-height:40px; font-size:0.875rem; padding:9px 12px; gap:12px}
.nav-cta .icon { display:none}
.nav-actions { gap:9px}
.menu-toggle { height:40px; width:40px; padding:9px}
.eyebrow { font-size:0.875rem; letter-spacing:.16em; margin-bottom:19px}
.booking-bar { padding:22px 19px 18px; border-radius:10px}
.booking-bar-head { margin-bottom:20px}
.booking-bar-head h2 { font-size:0.9375rem; line-height:1.5; max-width:220px}
.booking-bar-head .micro { display:none}
.quick-form { grid-template-columns:1fr 1fr; gap:13px 12px}
.quick-form>.field:has(select) { grid-column:1/-1}
.field>span { font-size:0.875rem}
.field>select,.field>input { font-size:1.0rem; min-height:48px; padding:10px; line-height:1.5}
.quick-form>.button { margin-top:6px; min-height:48px}
.form-note { font-size:0.875rem; line-height:1.8}
.trust-strip { grid-template-columns:1fr; padding:28px 0 30px; gap:24px}
.trust-strip>div { gap:16px}
.trust-strip p { font-size:0.875rem}
.trust-strip strong { font-size:0.875rem}
.trust-strip .icon { width:24px; height:24px}
.section { padding-block:62px}
.section-heading { display:block; margin-bottom:28px}
.section-heading h2 { font-size:2.8125rem; line-height:1.06}
.section-heading .eyebrow { margin-bottom:15px}
.section-intro { max-width:350px; font-size:0.875rem; margin-top:22px}
.section-intro .text-link { margin-top:10px}
.fleet-grid { grid-template-columns:1fr; gap:22px}
.car-photo { aspect-ratio:1.4}
.car-card-body { padding:21px}
.car-heading h3 { font-size:1.125rem}
.spec-line { font-size:0.875rem}
.card-bottom>span { font-size:0.875rem}
.card-bottom .text-link { font-size:0.875rem; min-height:40px}
.photo-badge { font-size:0.875rem}
.stay-section { padding-block:38px 50px}
.stay-grid { grid-template-columns:1fr; gap:25px}
.stay-cover { height:385px; border-radius:10px}
.stay-copy { padding:9px 0 0}
.stay-copy h2 { font-size:3.125rem; margin-bottom:20px}
.stay-copy>p:not(.eyebrow) { font-size:0.875rem; max-width:370px}
.stay-specs { gap:24px; margin-block:25px}
.stay-specs>span { font-size:0.875rem; gap:8px}
.stay-copy .button { width:100%; justify-content:space-between}
.stay-copy .small-note { text-align:center; margin-top:13px}
.steps-grid { grid-template-columns:1fr}
.steps-grid article,.steps-grid article+article { padding:25px 0 26px; border-left:0; border-bottom:1px solid var(--line); display:grid; grid-template-columns:50px 1fr; column-gap:16px}
.step-no { font-size:2.3125rem; grid-row:span 2; margin:0; line-height:1.2}
.steps-grid h3 { font-size:1.0625rem; margin-bottom:10px}
.steps-grid p { font-size:0.875rem; max-width:none}
.delivery-section { padding-block:58px}
.delivery-grid { grid-template-columns:1fr; gap:32px}
.delivery-copy h2 { font-size:4.0625rem}
.delivery-copy>p:not(.eyebrow) { max-width:none; font-size:0.875rem}
.delivery-note { max-width:none; margin-top:24px}
.delivery-visual { height:370px}
.delivery-caption { left:18px; right:18px; bottom:18px}
.destination-grid { grid-template-columns:1fr; gap:29px}
.destination-grid .photo { height:300px}
.destination-grid article>div:last-child { margin-top:15px}
.destination-grid h3 { font-size:1.25rem}
.destination-grid span { font-size:0.875rem}
.faq-section { grid-template-columns:1fr; gap:25px}
.faq-section h2 { font-size:2.9375rem}
.faq-section>div>p:not(.eyebrow) { font-size:0.875rem}
.faq-list summary { font-size:0.875rem; padding:22px 0}
.faq-list details>p { font-size:0.875rem}
.contact-section { padding-block:56px}
.contact-grid { grid-template-columns:1fr; gap:36px}
.contact-grid h2 { font-size:3.3125rem}
.contact-phone { font-size:1.6875rem}
.contact-grid>div:first-child>p:not(.eyebrow) { font-size:0.875rem}
.contact-panels { gap:17px}
.contact-panels article { padding:25px}
.contact-panels h3 { font-size:1.4375rem}
.contact-panels p:not(.eyebrow) { font-size:0.875rem}
.video-section { padding-block:50px}
.video-panel { height:395px; border-radius:10px}
.video-copy { padding:40px 26px}
.video-copy h2 { font-size:3.0625rem}
.video-toggle { right:18px; bottom:18px}
.site-footer { padding-top:48px}
.footer-heading { display:block; padding-bottom:34px}
.footer-heading h2 { font-size:3.25rem}
.footer-heading .button { margin-top:27px}
.footer-grid { gap:28px 23px; padding:35px 0; grid-template-columns:1fr 1fr}
.footer-brand { grid-column:1/-1; display:flex; gap:24px; align-items:center}
.footer-logo { width:102px; height:80px; margin-bottom:0; flex:none}
.footer-brand p { font-size:0.875rem}
.footer-grid h3 { font-size:0.875rem; margin-bottom:13px}
.footer-grid a,.footer-grid>div>p { font-size:0.875rem}
.footer-grid>div:nth-child(3) { grid-column:1/-1; grid-row:3}
.footer-bottom { flex-wrap:wrap; gap:10px; padding-bottom:50px; font-size:0.875rem}
.footer-bottom>span:nth-child(2) { display:none}
.footer-bottom>div { margin-left:auto; gap:12px}
.floating-contact { right:14px; bottom:14px; padding:12px; border-radius:50%; min-height:48px; min-width:48px; justify-content:center}
.floating-contact span { display:none}
.floating-contact .icon { width:22px; height:22px}
.breadcrumbs { padding-top:22px; font-size:0.875rem; gap:7px}
.page-intro { padding:35px 0 32px}
.page-intro h1 { font-size:4.0rem; line-height:1.02}
.page-intro-row { display:block}
.page-intro-row p { font-size:0.875rem}
.page-intro-row .small-note { display:block; margin-top:16px}
.filter-controls { gap:16px; padding-top:20px}
.search-field { max-width:none; padding:2px 12px}
.search-field input { font-size:1.0rem; min-height:43px}
.filters { gap:7px}
.filter { font-size:0.875rem; padding:9px 12px; min-height:40px}
.filter-status { font-size:0.875rem}
.help-strip { display:block; padding:27px 23px; margin:20px 0 55px}
.help-strip h2 { font-size:1.5625rem; line-height:1.2}
.help-strip p { font-size:0.875rem}
.help-strip .button { margin-top:23px; width:100%}
.detail-heading { padding-block:32px 27px}
.detail-heading h1 { font-size:2.625rem; line-height:1.07}
.detail-heading>p:last-child { font-size:0.875rem; margin-top:16px}
.detail-layout { display:flex; flex-direction:column; gap:32px}
.detail-content,.booking-aside { width:100%}
.booking-aside { position:static; order:-1}
.detail-content { display:contents}
.gallery { width:100%; order:-2; gap:8px; grid-template-columns:repeat(3,minmax(0,1fr))}
.gallery-frame { aspect-ratio:1.2}
.gallery-photo:not(:first-child) .gallery-frame { aspect-ratio:1.15}
.gallery-photo .gallery-expand { font-size:0.875rem}
.booking-panel { padding:26px}
.booking-panel h2 { font-size:2.375rem}
.booking-panel h2 br { display:none}
.booking-panel h2 em { margin-left:5px}
.booking-panel .eyebrow { font-size:0.875rem}
.quote-price { margin-top:16px; margin-bottom:18px}
.detail-form { grid-template-columns:1fr 1fr}
.detail-form .field { grid-column:auto}
.detail-form .field:has(select),.detail-form .field:has(input[type=number]) { grid-column:1/-1}
.detail-form .form-note { font-size:0.875rem}
.aside-contact { padding:17px 0 0; font-size:0.875rem}
.aside-contact>a { display:inline-block; margin-inline:5px}
.detail-description { width:100%; padding-top:4px; padding-bottom:28px}
.detail-description h2 { font-size:2.1875rem}
.detail-description>p { font-size:0.875rem}
.spec-grid { grid-template-columns:repeat(3,minmax(0,1fr))}
.spec-grid dd { font-size:0.875rem}
.feature-list { grid-template-columns:1fr 1fr; font-size:0.875rem}
.detail-page { padding-bottom:50px}
.apartment-listing { grid-template-columns:1fr; margin-top:0}
.listing-cover { height:410px; min-height:0}
.apartment-listing>div { padding:29px 23px}
.apartment-listing h2 { font-size:2.5rem}
.apartment-listing .button { width:100%}
.apartment-listing .eyebrow { font-size:0.875rem}
.prose-page { padding-block:50px 70px}
.prose-page h1 { font-size:3.1875rem}
.prose-page h2 { font-size:1.8125rem}
.prose-page p,.prose-page li { font-size:0.875rem}
.prose-page ul { padding-left:20px}
.lightbox { padding:14px; gap:12px}
.lightbox-caption { font-size:0.875rem}
.lightbox-controls { gap:12px}
.lightbox-controls .icon-button { flex:none}
.consent-banner { left:12px; right:12px; bottom:12px; flex-wrap:wrap; padding:20px; gap:12px}
.consent-banner>div { flex-basis:100%}
.consent-banner .button { flex:1; padding:10px}
.privacy-dialog { padding:25px}
.privacy-dialog h2 { font-size:1.875rem}
}

@media(max-width:370px) { .container { width:calc(100% - 32px)}
.wordmark>span { font-size:1.125rem}
.wordmark small { font-size:0.875rem}
.nav-cta { padding-inline:10px; font-size:0.875rem}
.booking-panel { padding:21px}
.field>input { padding:9px 7px}
.feature-list { grid-template-columns:1fr}
.stay-cover { height:355px}
.section-heading h2 { font-size:2.5625rem}
.contact-phone { font-size:1.5rem}
}

@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto}
*,*:before,*:after { animation:none!important; transition:none!important}
.video-panel video { transition:none}
.car-photo-link:hover img { transform:none}
}


/* V3 foundation: readable type, generous content width, restrained editorial rhythm. */
:root { --body-size:1.125rem; --small-size:.875rem; --control-size:1rem; --muted:#4c5961; }
body { font-size:var(--body-size); font-optical-sizing:auto; }
p { text-wrap:pretty; }
.button,.text-link,.text-button,#navigation>a,.nav-cta { font-size:var(--control-size); }
.button { min-height:54px; padding:14px 24px; }
#navigation { gap:32px; }
.wordmark>span { font-size:1.625rem; }
.wordmark small { font-size:.625rem; letter-spacing:.12em; }
.eyebrow { font-size:.875rem; letter-spacing:.13em; }
.section-intro,.stay-copy>p:not(.eyebrow),.delivery-copy>p:not(.eyebrow),.steps-grid p,.faq-list details>p,.faq-section>div>p:not(.eyebrow),.contact-grid>div:first-child>p:not(.eyebrow),.contact-panels p:not(.eyebrow),.page-intro-row p,.detail-description>p,.apartment-listing>div>p:not(.eyebrow),.prose-page p,.prose-page li { font-size:1.125rem; line-height:1.75; }
.section-intro { max-width:440px; }
.stay-copy>p:not(.eyebrow),.delivery-copy>p:not(.eyebrow),.contact-grid>div:first-child>p:not(.eyebrow) { max-width:540px; }
.detail-description>p,.prose-page p { max-width:68ch; }
.car-heading h3,.steps-grid h3,.destination-grid h3 { font-size:1.375rem; }
.spec-line,.card-bottom>span,.photo-badge,.stay-badge,.stay-specs>span,.small-note,.form-note,.form-error,.spec-grid dt,.feature-list,.aside-contact,.breadcrumbs,.filter,.filter-status,.gallery-expand,.lightbox-caption { font-size:.875rem; }
.card-bottom .text-link,.trust-strip p,.trust-strip strong,.footer-grid a,.footer-grid>div>p,.footer-brand p,.contact-grid a[href^=mailto],.social-links,.quote-price,.delivery-note p { font-size:1rem; }
.footer-grid h3 { font-size:1rem; color:#fff; }
.footer-bottom,.footer-bottom .text-button { font-size:.875rem; }
.footer-grid a { min-height:40px; }
.car-card-body { padding:26px; }
.spec-line { margin-block:16px 24px; }
.card-bottom { padding-top:14px; flex-wrap:wrap; }
.spec-line .icon { width:18px; height:18px; }
.field>span { font-size:.875rem; color:#35434d; }
.field>input,.field>select,.search-field input { font-size:1rem; min-height:52px; }
.form-note { line-height:1.65; }
.booking-bar { padding:32px; }
.booking-bar-head h2 { font-size:1.5rem; line-height:1.3; }
.quick-form { grid-template-columns:1.1fr 1.35fr 1fr 1fr auto; gap:18px; }
.quick-form>.button { margin-top:32px; min-height:52px; }
.booking-panel { padding:32px; }
.booking-panel .eyebrow { font-size:.875rem; }
.detail-form>.button { font-size:1rem; }
.booking-aside { position:static; }
.detail-layout { gap:48px; grid-template-columns:minmax(0,1.6fr) minmax(390px,1fr); }
.detail-heading h1 { font-size:clamp(2.625rem,4.5vw,5rem); max-width:100%; }
.detail-heading>p:last-child { font-size:1.125rem; }
.detail-heading { padding-block:48px 40px; }
.gallery-frame { aspect-ratio:1.35; }
.apartment-listing>div { padding:clamp(28px,4vw,70px); }
.apartment-listing h2 { font-size:clamp(2.5rem,3.6vw,4rem); }
.apartment-listing .eyebrow { font-size:.875rem; }
.page-intro-row p { max-width:650px; }
.faq-list summary { font-size:1.125rem; padding-block:26px; }
.video-panel { min-height:500px; height:auto; }
.video-copy { padding-bottom:100px; }
.video-toggle { font-size:.875rem; }
.booking-section { padding-top:48px; }
.trust-strip { padding-block:40px; }
.section,.stay-section,.delivery-section,.contact-section { padding-block:clamp(72px,7vw,124px); }
.section-heading { margin-bottom:48px; }
.footer-grid { gap:48px; }
@media(min-width:1600px) {
  .section-heading h2,.stay-copy h2 { font-size:5rem; }
  .stay-cover,.delivery-visual { height:660px; }
  .destination-grid .photo { height:460px; }
}
@media(max-width:1150px) {
  #navigation { gap:20px; }
  .nav-shell { gap:20px; }
  .quick-form { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .quick-form>.button { grid-column:1/-1; margin-top:0; }
  .detail-layout { grid-template-columns:minmax(0,1.2fr) minmax(320px,1fr); gap:28px; }
  .booking-panel { padding:24px; }
  .detail-form { grid-template-columns:1fr; }
  .detail-form .field { grid-column:1/-1; }
  .stay-grid,.delivery-grid { gap:40px; }
}
@media(max-width:900px) {
  .section-intro { max-width:380px; }
  .site-header.menu-ready #navigation>a { font-size:1rem; }
  .contact-grid { gap:32px; }
  .detail-layout { display:flex; flex-direction:column; }
  .detail-content,.booking-aside { width:100%; }
  .booking-aside { max-width:700px; }
  .detail-form { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .detail-form .field { grid-column:auto; }
  .footer-grid { gap:32px; }
  .apartment-listing { grid-template-columns:1fr; }
  .listing-cover { min-height:0; height:500px; }
}
@media(max-width:640px) {
  :root { --body-size:1rem; }
  .container { width:calc(100% - 40px); }
  .nav-shell { gap:10px; }
  .wordmark>span { font-size:1.25rem; }
  .wordmark small { font-size:.5rem; }
  .nav-cta { font-size:.875rem; min-height:44px; padding:10px 12px; }
  .menu-toggle { min-width:44px; min-height:44px; }
  .button,.text-link { font-size:1rem; }
  .section-intro,.stay-copy>p:not(.eyebrow),.delivery-copy>p:not(.eyebrow),.steps-grid p,.faq-list details>p,.faq-section>div>p:not(.eyebrow),.contact-grid>div:first-child>p:not(.eyebrow),.contact-panels p:not(.eyebrow),.page-intro-row p,.detail-description>p,.apartment-listing>div>p:not(.eyebrow),.prose-page p,.prose-page li { font-size:1rem; }
  .eyebrow { font-size:.8125rem; letter-spacing:.1em; }
  .booking-section { padding-top:24px; }
  .booking-bar { padding:24px 20px; }
  .booking-bar-head h2 { font-size:1.375rem; max-width:none; }
  .quick-form { gap:16px 12px; }
  .quick-form>.field:has(select) { grid-column:1/-1; }
  .quick-form>.button { margin-top:4px; }
  .form-note,.detail-form .form-note { font-size:.875rem; }
  .car-card-body { padding:24px 20px; }
  .car-heading h3 { font-size:1.375rem; }
  .card-bottom .text-link { font-size:.9375rem; }
  .booking-panel { padding:26px 20px; }
  .booking-panel h2 { font-size:2.375rem; }
  .detail-heading>p:last-child { font-size:1rem; }
  .detail-heading h1 { overflow-wrap:anywhere; }
  .spec-grid { grid-template-columns:1fr 1fr; }
  .spec-grid dd { font-size:1rem; }
  .stay-specs { gap:20px; }
  .feature-list { grid-template-columns:1fr; }
  .faq-list summary { font-size:1rem; }
  .footer-grid { gap:28px 20px; }
  .footer-brand { flex-wrap:wrap; }
  .footer-bottom { align-items:flex-start; }
  .footer-bottom>div { margin-left:0; }
  .listing-cover { height:390px; }
  .video-copy { padding:36px 24px 100px; }
  .video-panel { min-height:430px; }
  .trust-strip { gap:24px; padding-block:30px; }
  .prose-page { padding-top:42px; }
}
@media(max-width:370px) {
 .container { width:calc(100% - 32px); }
 .wordmark>span { font-size:1.125rem; }
 .nav-cta { padding-inline:10px; }
 .detail-form { grid-template-columns:1fr; }
 .detail-form .field { grid-column:1/-1; }
}
/* Reserve room for the fixed contact shortcut beside the legal links. */
.footer-bottom { padding-right:180px; }
@media(max-width:640px) { .footer-bottom { padding-right:0; padding-bottom:90px; } }

@font-face { font-family:'Hero Serif Fallback'; src:local('Liberation Serif'),local('Times New Roman'),local('Georgia'); size-adjust:78%; ascent-override:100%; descent-override:25%; line-gap-override:0%; font-style:italic; }
/* The opening scene: real photography, oversized editorial type, natural scroll. */
.cinema-hero { position:relative; isolation:isolate; overflow:hidden; background:#111f2c; color:#fff; }
.hero-art { position:absolute; inset:0 0 65px 29%; z-index:-3; overflow:hidden; }
.hero-scene { width:100%; height:100%; aspect-ratio:auto; background:#22313b; }
.hero-scene>img { object-position:center 64%!important; }
.hero-shade { position:absolute; inset:0 0 65px; z-index:-2; background:linear-gradient(90deg,#111f2c 4%,rgba(17,31,44,1) 29%,rgba(17,31,44,.62) 43%,rgba(17,31,44,0) 68%),linear-gradient(0deg,rgba(10,19,26,.8),transparent 45%); }
.cinema-content { position:relative; padding-top:42px; min-height:760px; display:flex; flex-direction:column; }
.hero-kicker { display:flex; justify-content:space-between; align-items:center; gap:20px; }
.hero-kicker .eyebrow { color:#edce99; margin:0; }
.hero-edition { font-size:.75rem; font-weight:600; letter-spacing:.14em; color:#fff; background:#111f2cbd; padding:7px 12px; }
.cinema-hero h1 { margin:38px 0 25px; font-size:clamp(5rem,8.2vw,10rem); letter-spacing:-.065em; line-height:.99; font-weight:400; }
.title-line { display:block; }
.hero-script em { font-family:'Instrument Serif','Hero Serif Fallback',serif; }
.hero-script { font-size:.72em; line-height:1.08; color:#edce99; margin-top:5px; }
.hero-intro { max-width:440px; }
.hero-intro>p { font-size:1.125rem; line-height:1.7; color:#e1e5e5; max-width:39ch; margin-bottom:26px; }
.hero-intro .actions { gap:26px; }
.hero-stay-link { color:white; border-bottom:1px solid #ffffff80; }
.hero-bottom { display:flex; align-items:flex-end; justify-content:space-between; gap:36px; margin-top:auto; padding-block:50px 36px; }
.hero-destination { display:flex; align-items:center; gap:20px; max-width:440px; }
.hero-mini { width:126px; height:84px; flex:none; border-radius:3px; }
.hero-destination>span { font-size:1rem; line-height:1.6; }
.hero-destination small,.hero-car-link small { display:block; color:#edce99; font-size:.75rem; letter-spacing:.12em; margin-bottom:8px; }
.hero-destination .icon { width:18px; margin-left:5px; }
.hero-car-link { display:flex; align-items:center; justify-content:space-between; gap:60px; padding:18px 22px; border:1px solid #ffffff60; background:#111f2cdb; border-radius:4px; min-width:330px; font-size:1.5rem; line-height:1.3; }
.hero-car-link small { font-size:.75rem; }
.hero-car-spec { display:block; font-size:.875rem; margin-top:8px; color:#dce2e5; }
.hero-circle { border-radius:50%; border:1px solid #ffffff80; width:48px; height:48px; display:grid; place-items:center; flex:none; }
.hero-rail { border-top:1px solid #ffffff30; background:#111f2c; }
.hero-rail>.container { display:flex; min-height:65px; align-items:center; justify-content:space-between; gap:24px; }
.hero-rail span,.hero-rail a { display:flex; gap:12px; align-items:center; font-size:.875rem; color:#e4e8e9; }
.hero-rail a { min-height:44px; }
.hero-rail a>span { font-size:1.5rem; color:#edce99; }
.hero-rail .icon { width:20px; height:20px; color:#edce99; }
@media(min-width:1600px) { .cinema-content { min-height:850px; } .hero-intro { max-width:490px; } .hero-intro>p { font-size:1.25rem; } .hero-bottom { padding-bottom:42px; } }
@media(max-width:1150px) { .cinema-content { min-height:740px; } .hero-art { left:25%; } .hero-intro { max-width:390px; } .hero-car-link { min-width:290px; gap:28px; } .hero-destination { max-width:340px; } .hero-mini { width:100px; height:80px; } }
@media(max-width:900px) { .hero-edition { display:none; } .hero-art { left:15%; } .hero-shade { background:linear-gradient(90deg,#111f2c 0%,#111f2cee 25%,#111f2c44 75%),linear-gradient(0deg,#111f2ce6,transparent 60%); } .hero-car-link { min-width:260px; font-size:1.25rem; } .hero-destination { max-width:310px; } .hero-mini { display:none; } .hero-intro>p { max-width:33ch; } }
@media(max-width:640px) {
 .cinema-content { min-height:0; padding-top:28px; padding-bottom:0; }
 .cinema-hero h1 { font-size:clamp(3.5rem,12.6vw,5rem); margin:26px 0 22px; letter-spacing:-.055em; }
 .hero-script { font-size:.78em; margin-top:6px; }
 .hero-kicker .eyebrow { font-size:.75rem; letter-spacing:.1em; }
 .hero-art { inset:280px 0 100px; z-index:-3; }
 .hero-scene>img { object-position:center 65%!important; }
 .hero-shade { inset:0; background:linear-gradient(180deg,#111f2c 0px,#111f2c 310px,rgba(17,31,44,.55) 390px,transparent 460px,rgba(17,31,44,.15) 660px,#111f2c 850px); }
 .hero-intro { max-width:none; }
 .hero-intro>p { font-size:1rem; line-height:1.6; max-width:35ch; margin-bottom:20px; }
 .hero-intro .actions { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
 .hero-intro .button { padding-inline:12px; gap:10px; white-space:nowrap; }
 .hero-intro .text-link { font-size:.9375rem; gap:10px; }
 .hero-bottom { padding-block:285px 24px; gap:0; }
 .hero-destination { display:none; }
 .hero-car-link { min-width:0; width:100%; padding:18px; background:#111f2ce8; gap:20px; font-size:1.25rem; }
 .hero-car-link small { font-size:.6875rem; }
 .hero-car-spec { font-size:.875rem; margin-top:6px; }
 .hero-circle { width:44px; height:44px; }
 .hero-rail>.container { flex-direction:column; align-items:flex-start; gap:0; padding-block:14px; }
 .hero-rail span,.hero-rail a { font-size:.8125rem; }
}
@media(prefers-reduced-motion:reduce) { .hero-art,.cinema-hero h1 { transform:none!important; clip-path:none!important; } }
