/* V22 evolution: presentation only. Commercial, CRM and security code stays separate. */
:root { --paper:#fbf8f1; --sand:#eee5d5; --line:#d9ded9; }
body { font-size:16px; line-height:1.65; -webkit-font-smoothing:antialiased; }
body, main, section, form, fieldset, article { min-width:0; }
.wrap { width:min(1180px, calc(100% - 80px)); }
h1,h2,h3 { text-wrap:balance; }
h1 { font-size:clamp(2.5rem,4.6vw,4.6rem); line-height:1.08; letter-spacing:-.045em; }
h2 { font-size:clamp(2rem,3.25vw,3.4rem); line-height:1.15; letter-spacing:-.035em; }
h3 { line-height:1.2; }
p { text-wrap:pretty; }
.eyebrow { font-size:.75rem; letter-spacing:.15em; line-height:1.5; }
.site-header { min-height:92px; padding:16px max(32px,4vw); grid-template-columns:auto minmax(0,1fr) auto; column-gap:36px; color:var(--deep); background:var(--paper); border-bottom:1px solid var(--line); }
.brand-logo { width:52px; height:52px; filter:none; }
.brand-name { font-size:1.3rem; line-height:1; }
.brand-name em { color:#73582b; font-size:.64rem; letter-spacing:.18em; }
.site-menu { display:contents; }
.menu-toggle { display:none; }
.site-header nav { grid-row:auto; grid-column:auto; justify-content:flex-end; flex-wrap:nowrap; overflow:visible; gap:clamp(12px,1.5vw,24px); white-space:nowrap; }
.site-header nav a { font-size:.875rem; min-height:44px; display:inline-flex; align-items:center; border-bottom:1px solid transparent; }
.site-header nav a:hover { opacity:1; border-bottom-color:var(--sea); }
.language-toggle { grid-row:auto; grid-column:auto; color:var(--deep); background:transparent; border-color:#aabbb8; min-height:44px; min-width:44px; font-weight:600; }
.site-header :focus-visible { outline-color:var(--sea); }
.button { min-height:50px; border-radius:5px; padding:.8rem 1.25rem; line-height:1.4; text-align:center; font-size:.9375rem; transition:background .15s ease,box-shadow .15s ease; }
.button-primary,.button-card { box-shadow:none; }
.button:hover { box-shadow:0 4px 14px #062f461c; }
.button-ghost { background:transparent; color:var(--deep); border-color:#8bacae; backdrop-filter:none; }
.hero-collage { min-height:570px; display:grid; grid-template-columns:44% 56%; align-items:stretch; color:var(--deep); background:var(--sand); overflow:visible; }
.hero-collage .hero-photos { position:relative; inset:auto; grid-column:2; grid-row:1; display:block; background:var(--sand); min-height:570px; }
.hero-collage .hero-photo-main { height:100%; width:100%; object-fit:cover; object-position:54% 48%; }
.hero-collage .hero-shade { display:none; }
.hero-collage .hero-content { grid-row:1; grid-column:1; align-self:center; width:auto; margin:0; padding:52px clamp(28px,4vw,64px); }
.hero-collage h1 { max-width:11ch; font-size:clamp(2.8rem,4.2vw,4.6rem); }
.hero-collage .eyebrow { color:#38575b; margin-bottom:24px; }
.hero-collage .hero-copy { font-size:1.05rem; max-width:34ch; line-height:1.65; margin-top:24px; }
.hero-collage .hero-actions { gap:12px; margin-top:28px; flex-direction:column; align-items:flex-start; }
.hero-collage .hero-note { writing-mode:horizontal-tb; transform:none; right:24px; bottom:24px; color:white; background:#062f46e6; padding:8px 14px; border-radius:3px; font-size:.8125rem; }
.hero-support { border-bottom:1px solid var(--line); background:#fff; }
.hero-support-inner { display:grid; grid-template-columns:1fr 1fr; gap:40px; padding-block:28px; align-items:start; }
.hero-support .hero-price { color:var(--deep); font-size:1.05rem; padding:0; margin:0 0 10px; font-weight:600; line-height:1.6; }
.hero-support .hero-tax { color:var(--ink); font-size:.875rem; margin:0; line-height:1.6; }
.hero-support .location-copy { margin:0; font-size:.9375rem; }
.tax-review { color:#665033; font-size:.875rem; line-height:1.6; padding:12px 16px; background:#f5eddc; border-left:3px solid #b18b42; }
.hero-support .tax-review { padding:0; margin:10px 0 0; background:transparent; border:0; }
.short-notice-link { font-size:.875rem; padding:20px 0; margin:0 auto; }
.booking-bar { border-top:2px solid #c4a261; padding:36px; gap:32px; box-shadow:0 8px 28px #062f4609; border-radius:6px; grid-template-columns:.8fr 1.2fr; }
.booking-bar-copy h2 { font-size:clamp(1.9rem,2.6vw,2.6rem); }
.booking-bar-copy .eyebrow { margin-bottom:16px; }
.booking-bar-copy p { font-size:1rem; }
.quick-inquiry { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.quick-inquiry label:first-child { grid-column:1/-1; }
.quick-inquiry label:nth-child(4),.quick-inquiry .date-flexibility { grid-column:auto; }
.quick-inquiry label,.unit-inquiry label,.inquiry-form label { font-size:.9375rem; line-height:1.5; }
.quick-inquiry input,.quick-inquiry select,.unit-inquiry input,.unit-inquiry select,.inquiry-form input,.inquiry-form textarea,.concierge-inquiry select { min-width:0; font-size:16px; border:1px solid #aebeba; border-radius:4px; background:#fff; }
.quick-inquiry :is(.button,.email-inquiry,.form-note,.terms-link,.crm-contact,.optional-extras,.addon-options,.inquiry-status,.request-copy-text) { grid-column:1/-1; }
.crm-contact { margin:8px 0; padding:20px; gap:16px; border-color:#bbc9c4; background:#f6f8f4; border-radius:5px; }
.crm-contact legend { font-size:1rem; font-weight:600; }
.crm-contact label { line-height:1.6; }
.crm-contact input:not([type=checkbox]) { min-height:48px; font-size:16px; width:100%; background:white; }
.crm-contact label:has(input[type=checkbox]) { display:flex; align-items:flex-start; gap:10px; font-size:.875rem; font-weight:400; cursor:pointer; }
.crm-contact input[type=checkbox] { flex:0 0 auto; width:20px; height:20px; margin:3px 0 0; accent-color:var(--sea); }
.crm-contact .form-note { font-size:.8125rem; margin:0; }
.crm-contact a { font-size:.875rem; text-underline-offset:3px; }
.form-note { font-size:.875rem; line-height:1.6; margin:4px 0; }
.email-inquiry { border:1px solid #b2c2c0; border-radius:4px; text-decoration:none; padding:10px 16px; font-size:.875rem; background:white; }
.copy-inquiry { border-color:transparent; text-decoration:underline; text-underline-offset:3px; background:transparent; }
.booking-proof { font-size:.8125rem; padding-top:20px; gap:16px; }
.stays { padding-block:80px 40px; }
.section-heading { margin-bottom:32px; gap:40px; }
.stay-card,.stay-card.apt6 { grid-template-columns:1.08fr .92fr; overflow:hidden; border-radius:5px; box-shadow:none; margin-bottom:36px; }
.stay-card.apt6 { grid-template-columns:.92fr 1.08fr; }
.stay-gallery { min-height:480px; grid-template-rows:2fr 1fr; }
.stay-details { padding:clamp(24px,3vw,44px); }
.stay-title h3 { font-size:2.5rem; }
.stay-details > p { font-size:1rem; margin-block:18px; }
.guest-count { padding:6px 10px; font-size:.8125rem; }
.amenities { font-size:.9375rem; gap:8px 12px; }
.rates { gap:14px; margin-block:20px; }
.rates small { font-size:.8125rem; }
.rates strong { font-size:1.0625rem; }
.rates strong span { font-size:.9375rem; }
.booking-steps,.revenue-extras { padding-block:40px; }
.booking-steps ol { gap:32px; margin-top:24px; font-size:.9375rem; }
.extras-grid article { border-radius:4px; padding:24px; }
.intro { gap:64px; padding-block:64px; }
.intro h2 { max-width:16ch; }
.intro-copy { font-size:1rem; padding-top:0; }
.photo-story { gap:64px; padding-bottom:64px; }
.photo-mosaic .mosaic-wide { min-height:360px; border-radius:4px; }
.photo-mosaic figure { min-height:220px; }
.photo-mosaic { gap:10px; }
.photo-mosaic .view-main { grid-column:1/-1; min-height:240px; max-height:300px; }
.view-strip { width:min(1180px,calc(100% - 80px)); margin-inline:auto; gap:14px; padding-bottom:64px; }
.view-strip figure { min-height:0; height:360px; border-radius:4px; }
.view-strip figcaption { font-size:.8125rem; background:#062f46e6; }
.local-guide-teaser,.experience { min-height:440px; }
.local-guide-copy,.experience-copy { padding:clamp(32px,5vw,64px); }
.local-guide-copy h2,.experience-copy h2 { font-size:clamp(2rem,3vw,3rem); }
.local-guide-sunset { min-height:360px; }
.local-guide-sunset img { object-position:center; }
.contact { gap:48px; padding-block:64px; }
.launch-section { padding-block:40px; }
.launch-section h2 { font-size:clamp(1.8rem,2.6vw,2.5rem); }
.launch-section p,.approved-terms p { max-width:76ch; }
.approved-terms { padding-block:40px; }
.faq-list summary { padding-block:20px; font-weight:600; font-size:1rem; cursor:pointer; }
.faq-list p { line-height:1.7; font-size:.9375rem; }
.price-example { font-size:.9375rem; background:#fff; border:1px solid var(--line); }
.price-example th { font-weight:600; }
.price-example thead { background:#edf2ee; }
.price-example :is(td,th) { padding:16px; }
.table-scroll { border-radius:4px; }
.unit-hero { grid-template-columns:42% 58%; min-height:530px; color:var(--deep); background:var(--sand); }
.unit-hero-copy { padding:clamp(32px,4vw,64px); }
.unit-hero-copy h1 { font-size:clamp(3.5rem,5vw,5rem); }
.unit-hero-copy p:not(.eyebrow) { font-size:1rem; line-height:1.65; }
.unit-hero .hero-price { color:var(--deep); font-size:.9375rem; }
.unit-hero-image { position:relative; min-height:530px; }
.unit-hero-image img { position:absolute; inset:0; height:100%; width:100%; object-position:center; }
.unit-facts { padding-inline:max(40px,calc((100% - 1180px)/2)); background:white; border-bottom:1px solid var(--line); }
.unit-fact { padding:24px 20px; }
.unit-fact small { font-size:.75rem; letter-spacing:.08em; }
.unit-fact strong { font-size:1rem; }
.unit-story { padding-block:48px; gap:48px; }
.unit-story-copy { font-size:1rem; }
.unit-book { background:white; color:var(--ink); border:1px solid var(--line); border-top:2px solid #c4a261; border-radius:5px; padding:36px; gap:40px; margin-block:32px; box-shadow:none; }
.unit-book .unit-inquiry { min-width:0; }
.unit-book .unit-inquiry > .button { background:white; color:var(--deep); border:1px solid #8bacae; }
.unit-book .crm-contact .button { background:var(--deep); color:white; }
.unit-book .eyebrow { color:var(--sea); }
.unit-inquiry :is(.crm-contact,.date-flexibility,.email-inquiry,.terms-link,.form-note,.inquiry-status,.request-copy-text) { grid-column:1/-1; }
.sleep-grid { gap:24px; }
.sleep-grid article { background:white; padding:24px; border:1px solid var(--line); border-radius:4px; }
.sleep-grid h3 { font-size:1.75rem; }
.unit-gallery { width:min(1180px,calc(100% - 80px)); margin-inline:auto; padding-block:16px 40px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.unit-gallery figure { background:white; border:1px solid var(--line); border-radius:4px; overflow:hidden; }
.unit-gallery figure img { height:auto; aspect-ratio:4/3; object-fit:cover; }
.unit-gallery figcaption { position:static; background:white; color:var(--ink); font-size:.875rem; line-height:1.5; padding:12px 16px; border-radius:0; }
.gallery-heading { width:100%; grid-column:1/-1; margin-top:16px; }
.gallery-heading h2 { font-size:2.25rem; }
.gallery-heading p { font-size:1rem; margin-bottom:0; }
.unit-gallery details { grid-column:1/-1; }
.unit-gallery details summary { cursor:pointer; padding:16px; font-weight:600; min-height:50px; border:1px solid var(--line); }
.gallery-more { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:24px; }
footer { padding:48px 24px; background:var(--deep); color:white; }
footer .brand-name em { color:var(--sun); }
footer p { font-size:.875rem; }
.mobile-booking-bar { background:var(--deep); padding:10px 16px calc(10px + env(safe-area-inset-bottom)); box-shadow:0 -4px 20px #062f461c; }
.mobile-booking-bar a { font-size:.875rem; border-radius:4px; }
.mobile-booking-bar a:first-child { background:var(--paper); color:var(--deep); }
.newsletter-form { background:white; padding:24px; border:1px solid var(--line); border-radius:4px; }
.newsletter-form input[type=email] { min-height:48px; font-size:16px; }
.newsletter-form label:has(input[type=checkbox]) { display:flex; align-items:flex-start; gap:10px; }
.newsletter-form input[type=checkbox] { width:20px; height:20px; flex:0 0 auto; margin-top:4px; }
@media(max-width:1100px) {
 .site-header { grid-template-columns:minmax(0,1fr) auto auto; gap:14px; min-height:80px; padding:12px 24px; }
 .site-menu { display:block; grid-column:3; grid-row:1; }
 .language-toggle { grid-column:2; grid-row:1; }
 .menu-toggle { display:flex; list-style:none; align-items:center; gap:8px; min-height:44px; padding:8px 12px; border:1px solid #aabbb8; border-radius:4px; font-size:.875rem; font-weight:600; cursor:pointer; }
 .menu-toggle::-webkit-details-marker { display:none; }
 .menu-toggle::after { content:'+'; font-size:1.3rem; line-height:1; }
 .site-menu[open] .menu-toggle::after { content:'−'; }
 .site-header .site-menu nav { display:none; }
 .site-header .site-menu[open] nav { display:flex; position:absolute; top:100%; left:0; right:0; width:100%; padding:20px 24px; flex-direction:column; align-items:stretch; gap:0; background:var(--paper); border-bottom:1px solid var(--line); box-shadow:0 16px 24px #062f4614; white-space:normal; z-index:20; }
 .site-header .site-menu nav a { padding:12px 0; min-height:48px; border-bottom:1px solid var(--line); font-size:1rem; }
 .hero-collage { grid-template-columns:46% 54%; }
 .hero-collage h1 { font-size:clamp(2.4rem,4.7vw,3.5rem); }
 .hero-collage .hero-content { padding:36px 28px; }
 .booking-bar { grid-template-columns:1fr; }
 .stay-details { padding:24px; }
 .amenities { grid-template-columns:1fr; }
}
@media(max-width:800px) {
 .wrap,.view-strip,.unit-gallery { width:calc(100% - 40px); }
 .hero-collage { display:flex; flex-direction:column; min-height:0; }
 .hero-collage .hero-photos { order:0; min-height:0; height:clamp(250px,50vw,380px); }
 .hero-collage .hero-photo-main { object-position:52% 45%; }
 .hero-collage .hero-content { order:1; align-self:stretch; padding:32px 24px; }
 .hero-collage h1 { font-size:clamp(2.25rem,6vw,3rem); max-width:18ch; }
 .hero-collage .eyebrow { margin-bottom:12px; }
 .hero-collage .hero-copy { margin-top:16px; max-width:52ch; }
 .hero-collage .hero-actions { flex-direction:row; align-items:stretch; margin-top:22px; }
 .hero-collage .hero-note { display:none; }
 .hero-support-inner { grid-template-columns:1fr; gap:20px; padding-block:24px; }
 .stay-card,.stay-card.apt6 { grid-template-columns:1fr; }
 .stay-card.apt6 .stay-gallery { order:0; }
 .stay-gallery { min-height:0; height:360px; }
 .section-heading,.intro,.photo-story,.unit-story,.contact { grid-template-columns:1fr; gap:24px; }
 .section-heading { margin-bottom:24px; }
 .intro h2 { max-width:24ch; }
 .intro,.contact { padding-block:40px; }
 .photo-story { padding-bottom:40px; }
 .amenities { grid-template-columns:1fr 1fr; }
 .booking-steps ol,.extras-grid { grid-template-columns:1fr; gap:20px; }
 .view-strip { gap:10px; padding-bottom:40px; grid-template-columns:1fr 1fr; }
 .view-strip figure { height:280px; }
 .local-guide-teaser,.experience { grid-template-columns:1fr; }
 .local-guide-sunset { min-height:0; height:340px; }
 .experience-image { height:320px; }
 .unit-hero { grid-template-columns:1fr; }
 .unit-hero-image { grid-row:1; height:360px; min-height:0; }
 .unit-hero-copy { padding:32px 24px; }
 .unit-hero-copy h1 { font-size:3.25rem; }
 .unit-facts { grid-template-columns:1fr 1fr; padding-inline:20px; }
 .unit-book { grid-template-columns:1fr; padding:28px; gap:24px; }
 .unit-gallery { gap:16px; }
}
@media(max-width:480px) {
 body { padding-bottom:calc(82px + env(safe-area-inset-bottom)); }
 .site-header { padding:10px 16px; gap:8px; min-height:76px; }
 .brand { gap:8px; }
 .brand-logo { width:38px; height:38px; }
 .brand-name { font-size:1rem; }
 .brand-name em { font-size:.5rem; letter-spacing:.1em; margin-top:5px; }
 .menu-toggle { padding:8px 10px; }
 .language-toggle { padding:6px; border-radius:4px; }
 .wrap,.view-strip,.unit-gallery { width:calc(100% - 32px); }
 .hero-collage .hero-content { padding:28px 20px 32px; }
 .hero-collage .hero-actions { flex-direction:column; }
 .hero-collage .hero-actions .button { width:100%; }
 .hero-collage h1 { font-size:2.4rem; }
 .hero-collage .hero-copy { font-size:1rem; }
 .hero-support .hero-price { font-size:1rem; }
 .booking-bar { padding:24px 16px; }
 .quick-inquiry { gap:12px; }
 .quick-inquiry label:nth-child(4),.quick-inquiry .date-flexibility { grid-column:1/-1; }
 .crm-contact { padding:16px 12px; }
 .booking-bar-copy h2 { font-size:2rem; }
 .booking-proof { justify-content:flex-start; gap:8px; }
 .stays { padding-block:48px 20px; }
 .stay-gallery { height:300px; }
 .stay-details { padding:24px 20px; }
 .stay-title h3 { font-size:2.25rem; }
 .rates { grid-template-columns:1fr; }
 .amenities { grid-template-columns:1fr; }
 .photo-mosaic .mosaic-wide { min-height:250px; }
 .photo-mosaic figure { min-height:170px; }
 .view-strip { grid-template-columns:1fr; }
 .view-strip figure { height:260px; }
 .local-guide-copy,.experience-copy { padding:32px 24px; }
 .local-guide-sunset { height:280px; }
 .unit-hero-image { height:300px; }
 .unit-hero-copy { padding:28px 20px; }
 .unit-hero .hero-actions .button { width:100%; }
 .unit-facts { padding-inline:8px; }
 .unit-fact { padding:20px 12px; }
 .unit-book { padding:24px 16px; }
 .unit-gallery,.gallery-more { grid-template-columns:1fr; }
 .unit-gallery { gap:20px; }
 .gallery-heading h2 { font-size:2rem; }
 .sleep-grid { grid-template-columns:1fr; }
 .price-example { min-width:650px; }
 .table-scroll { overflow-x:auto; }
 .launch-section,.approved-terms { padding-block:32px; }
 .newsletter-form { padding:20px 16px; }
}
@media(prefers-reduced-motion:reduce) { .button { transition:none; } }

/* V24: photographs and words occupy separate layout cells throughout the site. */
:root { --coral-ink:#b3432b; }
.button-primary { background:var(--coral-ink); color:white; }
.button-card { background:var(--deep); color:white; }
.button-primary:hover { background:#94341f; }
.hero-collage .hero-note.editorial-note {
 position:static; display:flex; flex-wrap:wrap; gap:8px; margin:20px 0 0;
 padding:0; background:none; color:#38575b; border-radius:0;
 writing-mode:horizontal-tb; transform:none; font-size:.8125rem;
}
.hero-collage .hero-actions { flex-direction:row; align-items:stretch; }
.hero-collage .hero-content { padding-block:44px; }
.hero-collage .hero-photo-main { object-position:64% 50%; }
.hero-collage .hero-photos { overflow:hidden; }
.hero-collage :focus-visible,.editorial-hero :focus-visible { outline-color:var(--deep); }
.editorial-hero {
 display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);
 align-items:stretch; min-height:0; overflow:visible; background:var(--sand);
 background-image:none; color:var(--deep);
}
.hero.editorial-hero,.article-hero.editorial-hero { background:var(--sand); background-image:none; color:var(--deep); }
.editorial-hero .hero-content {
 grid-column:1; grid-row:1; position:static; width:auto; min-width:0;
 align-self:center; padding:clamp(32px,4.5vw,64px); margin:0;
}
.editorial-hero .hero-content h1 { font-size:clamp(2.5rem,4vw,4rem); line-height:1.12; max-width:18ch; }
.editorial-hero .hero-content .eyebrow { color:#38575b; }
.editorial-hero .hero-copy { font-size:1rem; max-width:48ch; }
.editorial-photo { grid-column:2; grid-row:1; margin:0; display:flex; flex-direction:column; min-width:0; background:var(--paper); }
.editorial-photo img { width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; margin-block:auto; }
.editorial-photo figcaption { padding:12px 20px; font-size:.8125rem; color:#38575b; background:var(--paper); }
.photo-mosaic figure,.photo-mosaic .mosaic-wide,.photo-mosaic .view-main,.view-strip figure {
 display:flex; flex-direction:column; height:auto; min-height:0; max-height:none;
 margin:0; border-radius:4px; overflow:hidden; background:white;
}
.photo-mosaic img,.view-strip img { height:auto; aspect-ratio:4/3; object-fit:cover; }
.photo-mosaic figcaption,.view-strip figcaption {
 position:static; inset:auto; margin:0; padding:12px 16px; border-radius:0;
 color:#38575b; background:white; backdrop-filter:none; font-size:.8125rem; line-height:1.5;
}
.photo-mosaic figure:has(img[src*="44429"]) img { object-fit:contain; background:#eee8df; }
.stay-card,.stay-card.apt6 { min-height:0; }
.stay-gallery { min-width:0; }
.stay-gallery img:not(.gallery-main) { object-fit:contain; background:#eee8df; }
.stay-gallery .gallery-main { object-position:center; }
.stay-card.apt6 .stay-gallery { grid-template-rows:2fr 1fr; }
.unit-gallery figure img { object-fit:contain; background:#eee8df; }
.unit-gallery .gallery-heading { border-top:1px solid var(--line); padding-top:32px; margin-top:0; }
.unit-gallery > figure { align-self:start; }
.unit-gallery figcaption { color:#38575b; }
.unit-book .unit-inquiry > .button { background:var(--coral-ink); color:white; border-color:var(--coral-ink); }
.booking-bar { margin-top:32px; }
.hero-support-inner { grid-template-columns:1.1fr .9fr; }
.unit-fact strong { overflow-wrap:anywhere; }
.site-header .brand { min-width:0; }
.site-header .site-menu[open] nav { max-height:70svh; overflow-y:auto; overscroll-behavior:contain; }
.offer-card,.bundle-card,.story-card { border-radius:4px; box-shadow:none; }
.story-card:nth-child(7) { background:var(--coral-ink); }
.offer-grid,.stories-grid { gap:24px; padding-bottom:64px; }
.stories-intro { padding-block:48px 32px; }
.offer-card h2,.story-card h2 { font-size:clamp(2rem,3vw,3rem); }
.offer-card,.story-card { padding:clamp(24px,3.5vw,44px); min-height:0; }
.journey-builder,.menu-section { padding-block:64px; }
.menu-heading,.journey-heading { gap:40px; }
.menu-panel { padding:clamp(24px,4vw,48px); }
.menu-heading h2,.journey-heading h2 { font-size:clamp(2.25rem,3.5vw,3.5rem); }
.article-shell { padding-block:48px; gap:clamp(32px,6vw,80px); }
.article-content h2 { font-size:clamp(2rem,3vw,3rem); }
.launch-hero h1 { font-size:clamp(2.35rem,4.5vw,4.5rem); line-height:1.12; }
@media(max-width:1100px) {
 .hero-collage .hero-actions { flex-direction:column; align-items:flex-start; }
}
@media(max-width:800px) {
 .editorial-hero { grid-template-columns:1fr; }
 .editorial-photo { grid-column:1; grid-row:1; }
 .editorial-photo img { aspect-ratio:4/3; max-height:420px; }
 .editorial-hero .hero-content { grid-column:1; grid-row:2; padding:32px 24px; }
 .editorial-hero .hero-content h1 { font-size:clamp(2.15rem,6vw,3rem); }
 .hero-collage .hero-photos { height:auto; aspect-ratio:4/3; }
 .hero-collage .hero-content { padding:32px 24px; }
 .hero-collage .hero-actions { flex-direction:row; align-items:stretch; }
 .hero-support-inner { grid-template-columns:1fr; }
 .menu-heading,.journey-heading { grid-template-columns:1fr; gap:24px; }
 .article-shell { padding-block:32px; }
}
@media(max-width:480px) {
 .hero-collage .hero-actions,.editorial-hero .hero-actions { flex-direction:column; }
 .hero-collage .hero-actions .button,.editorial-hero .hero-actions .button { width:100%; }
 .hero-collage .hero-content,.editorial-hero .hero-content { padding:28px 20px 32px; }
 .hero-collage h1 { font-size:2.25rem; }
 .photo-mosaic { grid-template-columns:1fr; }
 .photo-mosaic .mosaic-wide,.photo-mosaic .view-main { grid-column:1; }
 .view-strip { grid-template-columns:1fr; }
 .photo-story-copy h2 { font-size:2rem; }
 .unit-hero-image { height:auto; aspect-ratio:4/3; }
 .unit-hero-image img { object-fit:contain; background:#eee8df; }
 .quick-inquiry { grid-template-columns:1fr; }
 .quick-inquiry > label { grid-column:1; }
 .unit-inquiry { grid-template-columns:1fr; }
 .unit-inquiry > label { grid-column:1; }
 .offer-grid,.stories-grid { gap:16px; padding-bottom:40px; }
 .site-header .site-menu[open] nav { padding:12px 16px; }
}
@media(max-width:360px) {
 .site-header { padding-inline:12px; gap:6px; }
 .site-header .brand-logo { width:30px; height:30px; }
 .site-header .brand { gap:6px; }
 .site-header .brand-name { font-size:.9375rem; }
 .site-header .brand-name em { font-size:.45rem; letter-spacing:.08em; }
 .menu-toggle { padding-inline:8px; }
}
