/* Habitatum — editorial real estate system */
:root {
    --ink: #0a0a0a;
    --ink-soft: #242424;
    --paper: #f5f5f2;
    --white: #ffffff;
    --fog: #e5e5df;
    --muted: #6f6f6a;
    --line: rgba(10, 10, 10, .16);
    --success: #1f6b45;
    --warning: #8a5b12;
    --error: #9f2f28;
    --primary: var(--ink);
    --primary-light: var(--ink-soft);
    --primary-dark: #000;
    --secondary: var(--ink);
    --secondary-light: var(--ink-soft);
    --accent: var(--ink);
    --accent-light: var(--ink-soft);
    --accent-dark: #000;
    --off-white: var(--paper);
    --gray-50: #efefeb;
    --gray-100: var(--fog);
    --gray-200: #cecec8;
    --gray-300: #adada7;
    --gray-400: var(--muted);
    --gray-500: #565652;
    --gray-600: #383836;
    --gray-700: var(--ink-soft);
    --black: var(--ink);
    --font-logo: "Instrument Serif", Georgia, serif;
    --font-primary: "Manrope", Arial, sans-serif;
    --font-display: "Instrument Serif", Georgia, serif;
    --space-xs: .35rem;
    --space-sm: .65rem;
    --space-md: 1rem;
    --space-lg: 1.5rem;
    --space-xl: 2.25rem;
    --space-2xl: 4rem;
    --space-3xl: 7rem;
    --radius-sm: 0;
    --radius-md: 0;
    --radius-lg: 0;
    --radius-xl: 0;
    --radius-full: 999px;
    --shadow-sm: 0 1px 0 rgba(10,10,10,.08);
    --shadow-md: 0 12px 30px rgba(10,10,10,.07);
    --shadow-lg: 0 28px 70px rgba(10,10,10,.1);
    --shadow-xl: 0 40px 100px rgba(10,10,10,.14);
    --ease-out: cubic-bezier(.23, 1, .32, 1);
    --ease-in-out: cubic-bezier(.77, 0, .175, 1);
    --container: min(100% - 3rem, 1440px);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--paper); }
body {
    margin: 0;
    min-width: 320px;
    overflow-x: clip;
    color: var(--ink);
    background: var(--paper);
    font: 400 1rem/1.65 var(--font-primary);
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
img, svg { display: block; max-width: 100%; }
[data-lucide] { stroke-width: 1.35; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button, a, select, input[type="checkbox"], input[type="radio"] { touch-action: manipulation; }
button, select, input[type="checkbox"], input[type="radio"] { cursor: pointer; }
a { color: inherit; text-decoration: none; }
ul, ol { margin: 0; padding: 0; }
p, h1, h2, h3, h4 { margin-top: 0; }
::selection { color: var(--white); background: var(--ink); }
:focus-visible { outline: 2px solid var(--ink); outline-offset: 4px; }

.skip-link {
    position: fixed; top: .75rem; left: .75rem; z-index: 10001;
    padding: .75rem 1rem; color: var(--white); background: var(--ink);
    transform: translateY(-160%); transition: transform 160ms var(--ease-out);
}
.skip-link:focus { transform: translateY(0); }
.container, .hero-container, .properties-container, .services-container,
.why-container, .cta-container, .content-container, .contact-wrap {
    width: var(--container); max-width: none; margin-inline: auto;
}

/* Cinematic threshold loader */
.page-loader {
    position: fixed; inset: 0; z-index: 10000; display: grid; place-items: center;
    color: var(--white); background: var(--ink); pointer-events: none;
}
.loader-mark { display: flex; align-items: center; gap: 1rem; overflow: hidden; }
.loader-mark img { width: auto; height: 0.82em; margin-right: .04em; filter: invert(1); transform: translateY(-.012em); }
.loader-mark span { font: 400 clamp(2.1rem, 5vw, 4.5rem)/1 var(--font-display); letter-spacing: -.035em; }
.loader-line { position: absolute; right: 0; bottom: 0; left: 0; height: 3px; background: var(--white); transform: scaleX(0); transform-origin: left; }
.no-js .page-loader { display: none; }

/* Navigation */
.navbar {
    position: fixed; z-index: 1000; top: 0; right: 0; left: 0; height: 86px;
    color: var(--ink); transition: color 240ms ease, background-color 240ms ease, transform 260ms var(--ease-out);
}
.navbar::after { content: ""; position: absolute; right: 0; bottom: 0; left: 0; height: 1px; background: var(--line); transform: scaleX(0); transform-origin: left; transition: transform 400ms var(--ease-out); }
.navbar.scrolled { background: rgba(245,245,242,.88); backdrop-filter: blur(20px) saturate(140%); -webkit-backdrop-filter: blur(20px) saturate(140%); }
.navbar.scrolled::after { transform: scaleX(1); }
.navbar-container { width: calc(100% - 3rem); height: 100%; margin-inline: auto; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; }
.navbar-logo { justify-self: start; display: inline-flex; align-items: center; gap: .8rem; min-height: 44px; font: 400 1.65rem/1 var(--font-display); letter-spacing: -.03em; }
.navbar-logo-img {     margin-bottom: 9px; width: auto; height: 1.06em; margin-right: .055em; object-fit: contain; transform: translateY(-.025em); }
.navbar-menu { display: flex; align-items: center; gap: clamp(1.2rem, 2.6vw, 2.8rem); list-style: none; }
.navbar-link { position: relative; display: inline-flex; align-items: center; min-height: 44px; font-size: .76rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.navbar-link::after { content: ""; position: absolute; right: 0; bottom: 6px; left: 0; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform 240ms var(--ease-out); }
.navbar-link.active::after, .navbar-link:hover::after { transform: scaleX(1); transform-origin: left; }
.navbar-cta { justify-self: end; display: inline-flex; align-items: center; justify-content: center; gap: .7rem; min-height: 46px; padding: 0 1.25rem; color: var(--white); background: var(--ink); font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; transition: transform 160ms var(--ease-out), background-color 180ms ease; }
.navbar-cta svg { width: 16px; }
.navbar-cta:active, .btn:active, [class*="btn-"]:active, .property-card:active { transform: scale(.97); }
.navbar-toggle { display: none; justify-self: end; width: 48px; height: 48px; padding: 0; border: 0; background: transparent; cursor: pointer; }
.navbar-toggle span { display: block; width: 24px; height: 1px; margin: 7px auto; background: currentColor; transition: transform 240ms var(--ease-out); }
.navbar-toggle[aria-expanded="true"] span:first-child { transform: translateY(4px) rotate(45deg); }
.navbar-toggle[aria-expanded="true"] span:last-child { transform: translateY(-4px) rotate(-45deg); }
.navbar-mobile { position: fixed; inset: 0; z-index: -1; display: none; padding: 8rem 1.5rem 2rem; color: var(--white); background: var(--ink); opacity: 0; visibility: hidden; }

/* Global building blocks */
.main-content { min-height: 60vh; }
.section { padding: clamp(5.5rem, 10vw, 10rem) 0; }
.section-header { max-width: 900px; margin: 0 auto clamp(2.5rem, 6vw, 5rem); text-align: center; }
.section-badge, .page-header-badge, .hero-badge {
    display: inline-flex; align-items: center; gap: .55rem; padding: 0 0 .65rem; margin-bottom: 1.4rem;
    border: 0; border-bottom: 1px solid currentColor; border-radius: 0; background: transparent;
    font-size: .68rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase;
}
.section-title, .page-header h1, .page-header-title {
    max-width: 980px; margin: 0 auto 1.25rem; color: var(--ink);
    font: 400 clamp(3rem, 7.4vw, 7.5rem)/.92 var(--font-display); letter-spacing: -.052em;
}
.section-subtitle, .page-header p, .page-header-subtitle { max-width: 650px; margin: 0 auto; color: var(--muted); font-size: clamp(1rem, 1.4vw, 1.15rem); }
.page-header { position: relative; min-height: min(70vh, 720px); padding: clamp(10rem, 18vw, 15rem) 1.5rem 6rem; display: grid; place-items: end center; overflow: hidden; color: var(--white); background: var(--ink); }
.page-header::before { content: ""; position: absolute; inset: 0; opacity: .13; background: linear-gradient(110deg, transparent 48%, #fff 48.1%, transparent 48.35%), linear-gradient(20deg, transparent 65%, #fff 65.1%, transparent 65.3%); }
.page-header-content { position: relative; z-index: 1; width: min(100%, 1200px); text-align: left; }
.page-header h1, .page-header .page-header-title { color: var(--white); margin-inline: 0; }
.page-header p, .page-header .page-header-subtitle { color: rgba(255,255,255,.68); margin-inline: 0; }

.btn, [class*="btn-"] {
    display: inline-flex; align-items: center; justify-content: center; gap: .7rem; min-height: 50px;
    padding: .8rem 1.35rem; border: 1px solid var(--ink); border-radius: 0; cursor: pointer;
    font-size: .76rem; font-weight: 700; letter-spacing: .085em; line-height: 1.2; text-transform: uppercase;
    transition: color 200ms ease, background-color 200ms ease, border-color 200ms ease, transform 160ms var(--ease-out);
}
.btn svg, [class*="btn-"] svg { width: 17px; height: 17px; }
.btn-primary, .btn-submit, .btn-cta-primary, .btn-primary-confirmation, .form-submit { color: var(--white); background: var(--ink); border-color: var(--ink); }
.btn-secondary, .btn-outline, .btn-filter-secondary, .btn-secondary-confirmation, .btn-glass, .btn-cta-outline { color: var(--ink); background: transparent; border-color: var(--ink); }
.btn-primary:hover, .btn-submit:hover, .form-submit:hover { background: var(--ink-soft); }
.btn-secondary:hover, .btn-outline:hover, .btn-filter-secondary:hover { color: var(--white); background: var(--ink); }

/* Home — hero as an architectural cover */
.hero { min-height: max(760px, 100svh); padding: 8.5rem 0 3rem; position: relative; display: flex; align-items: flex-end; overflow: hidden; color: var(--white); background: var(--ink); }
.hero-bg { position: absolute; inset: 0; z-index: 0; background: var(--ink) !important; }
.hero-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.92) 0%, rgba(0,0,0,.67) 43%, rgba(0,0,0,.08) 100%); }
.hero-shapes { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.hero-shape { border: 0 !important; border-radius: 0 !important; background: rgba(255,255,255,.16) !important; animation: none !important; }
.hero-shape:nth-child(1) { width: 1px !important; height: 100% !important; top: 0 !important; right: 33.333% !important; }
.hero-shape:nth-child(2) { width: 33.333% !important; height: 1px !important; right: 0 !important; bottom: 24% !important; left: auto !important; }
.hero-shape:nth-child(3) { display: none; }
.hero-container { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, .92fr) minmax(340px, .66fr); gap: clamp(3rem, 8vw, 9rem); align-items: end; }
.hero-content { max-width: 790px; padding-bottom: clamp(1rem, 4vw, 4rem); }
.hero-title { max-width: 800px; margin: 0 0 1.8rem; color: var(--white); font: 400 clamp(4.4rem, 9vw, 9.6rem)/.82 var(--font-display); letter-spacing: -.06em; }
.hero-title span { display: block; color: var(--white) !important; font-style: italic; font-weight: 400; }
.hero-description { max-width: 590px; margin-bottom: 2.3rem; color: rgba(255,255,255,.7); font-size: clamp(1rem, 1.5vw, 1.18rem); line-height: 1.7; }
.hero-buttons { display: flex; flex-wrap: wrap; gap: .75rem; }
.hero .btn-primary { color: var(--ink); background: var(--white); border-color: var(--white); }
.hero .btn-glass { color: var(--white); border-color: rgba(255,255,255,.55); background: transparent; backdrop-filter: none; }
.hero-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin-top: clamp(3rem, 6vw, 6rem); padding-top: 1.3rem; border-top: 1px solid rgba(255,255,255,.3); }
.hero-stat { text-align: left; }
.hero-stat-value { color: var(--white); font: 400 clamp(1.7rem, 3vw, 2.8rem)/1 var(--font-display); }
.hero-stat-label { margin-top: .45rem; color: rgba(255,255,255,.55); font-size: .66rem; letter-spacing: .12em; text-transform: uppercase; }
.hero-visual { align-self: stretch; min-height: 520px; position: relative; display: flex; align-items: flex-end; }
.hero-card { width: 100%; margin: 0; padding: 0; overflow: hidden; color: var(--white); background: transparent; border: 1px solid rgba(255,255,255,.35); border-radius: 0; box-shadow: none; transform: none; }
.hero-card-image { height: clamp(330px, 46vh, 540px); margin: 0; border-radius: 0; background: #181818; }
.hero-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease-out); }
.hero-card:hover .hero-card-image img { transform: scale(1.025); }
.hero-card-content { padding: 1.2rem 1.35rem 1.35rem; display: grid; grid-template-columns: 1fr auto; gap: .5rem 1rem; }
.hero-card-title { color: var(--white); font-size: 1rem; }
.hero-card-location { margin: 0; color: rgba(255,255,255,.58); font-size: .75rem; }
.hero-card-price { grid-area: 1 / 2 / 3 / 3; align-self: center; color: var(--white); font: 400 1.4rem/1 var(--font-display); }
.hero-floating-card { display: none; }

/* Property cards */
.properties-section { background: var(--paper); }
.properties-grid { width: 100%; display: grid; grid-template-columns: repeat(12, 1fr); gap: clamp(1.25rem, 2.5vw, 2.6rem); }
.property-card { grid-column: span 4; position: relative; display: flex; flex-direction: column; min-width: 0; overflow: visible; color: var(--ink); background: transparent; border: 0; border-radius: 0; box-shadow: none; transition: transform 280ms var(--ease-out); }
.property-card:nth-child(5n + 1), .property-card:nth-child(5n + 2) { grid-column: span 6; }
.property-card-image { position: relative; height: auto; aspect-ratio: 4/3; overflow: hidden; background: #deded8; border-radius: 0; }
.property-card-image::after { content: ""; position: absolute; inset: 0; border: 1px solid rgba(255,255,255,.28); pointer-events: none; }
.property-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 700ms var(--ease-out); }
.property-card:hover .property-card-image img { transform: scale(1.035); }
.property-card-badge, .gallery-badge, .property-summary-badge { top: 1rem; left: 1rem; padding: .45rem .7rem; color: var(--white); background: rgba(10,10,10,.78); border: 1px solid rgba(255,255,255,.3); border-radius: 0; backdrop-filter: blur(10px); font-size: .62rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.property-card-favorite { top: 1rem; right: 1rem; width: 42px; height: 42px; color: var(--ink); background: var(--white); border-radius: 50%; box-shadow: none; }
.property-card-content { padding: 1.15rem 0 0; display: flex; flex: 1; flex-direction: column; }
.property-card-title { margin: 0 0 .35rem; color: var(--ink); font: 400 clamp(1.5rem, 2.3vw, 2.25rem)/1.05 var(--font-display); letter-spacing: -.025em; }
.property-card-location { color: var(--muted); font-size: .75rem; letter-spacing: .05em; }
.property-card-features { margin: 1.1rem 0; padding: .8rem 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.property-feature { color: var(--muted); font-size: .72rem; }
.property-card-footer { margin-top: auto; padding: .6rem 0 0; border: 0; }
.property-card-price { color: var(--ink); font: 400 1.35rem/1 var(--font-display); }
.property-card-link { font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.section-cta { margin-top: clamp(3rem, 7vw, 6rem); text-align: center; }
.property-card-placeholder, .gallery-placeholder, .property-summary-placeholder { display: grid; place-items: center; width: 100%; height: 100%; color: #777; background: #d9d9d4; }
.placeholder-mark { width: clamp(54px,18%,96px); opacity: .55; }

/* Feature, service and CTA cards */
.features-section, .why-section { color: var(--white); background: var(--ink); }
.features-section .section-title, .features-section .section-subtitle, .features-section .section-badge { color: var(--white); }
.features-grid, .services-grid, .why-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: rgba(255,255,255,.23); }
.feature-card, .service-card, .why-card { min-height: 330px; padding: clamp(1.5rem, 3vw, 3rem); background: var(--ink); border: 0; border-radius: 0; box-shadow: none; transform: none; }
.services-section .service-card, .why-section .why-card { color: inherit; }
.services-grid { background: var(--line); }
.service-card { color: var(--ink); background: var(--paper); }
.feature-icon, .service-icon, .why-icon, .content-card-icon, .info-card-icon, .header-icon { width: 54px; height: 54px; margin-bottom: clamp(2rem, 5vw, 5rem); color: inherit; background: transparent; border: 1px solid currentColor; border-radius: 50%; }
.feature-icon svg, .service-icon svg, .why-icon svg { width: 21px; }
.feature-card h3, .service-card h3, .why-card h3 { font: 400 2rem/1.05 var(--font-display); letter-spacing: -.025em; }
.feature-card p, .service-card p, .why-card p, .service-features { color: rgba(255,255,255,.6); }
.service-card p, .service-card .service-features { color: var(--muted); }
.service-features { list-style: none; }
.service-features li { padding: .75rem 0; border-bottom: 1px solid var(--line); }
.cta-section { position: relative; overflow: hidden; padding: clamp(6rem, 13vw, 13rem) 1.5rem; color: var(--white); background: var(--ink); text-align: center; }
.cta-section::before { content: ""; position: absolute; inset: 7% 4%; border: 1px solid rgba(255,255,255,.24); pointer-events: none; }
.cta-section .cta-container { position: relative; z-index: 1; }
.cta-title { max-width: 1000px; margin: 0 auto 1.3rem; font: 400 clamp(3.5rem, 8vw, 8rem)/.9 var(--font-display); letter-spacing: -.05em; }
.cta-subtitle { max-width: 640px; margin: 0 auto 2rem; color: rgba(255,255,255,.62); }
.cta-buttons { display: flex; justify-content: center; flex-wrap: wrap; gap: .8rem; }
.cta-section .btn-cta-primary { color: var(--ink); background: var(--white); border-color: var(--white); }
.cta-section .btn-cta-outline { color: var(--white); border-color: rgba(255,255,255,.5); }
.cta-benefits { justify-content: center; }

/* Search and listings */
.filters-section { position: relative; z-index: 5; margin-top: -1px; padding: 0; background: var(--ink); }
.filters-container { width: var(--container); margin: 0 auto; padding: 1.5rem 0; background: transparent; border: 0; border-radius: 0; box-shadow: none; }
.filters-form { display: grid; grid-template-columns: minmax(220px, 2fr) repeat(3, minmax(140px, 1fr)) auto; gap: 1px; align-items: end; background: rgba(255,255,255,.3); }
.filter-group { gap: .5rem; padding: 1rem; color: var(--white); background: var(--ink); }
.filter-label { color: rgba(255,255,255,.62); font-size: .62rem; letter-spacing: .12em; text-transform: uppercase; }
.filter-input, .filter-select, .form-input, .form-select, .form-control, textarea, select, input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="password"], input[type="date"], input[type="time"] {
    width: 100%; min-height: 50px; padding: .75rem .9rem; color: var(--ink); background: var(--white); border: 1px solid var(--line); border-radius: 0; box-shadow: none;
    transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
}
.filters-section .filter-input, .filters-section .filter-select { color: var(--white); background: #171717; border-color: rgba(255,255,255,.25); }
textarea { min-height: 135px; resize: vertical; }
.filter-input:focus, .filter-select:focus, .form-input:focus, .form-select:focus, .form-control:focus, textarea:focus, select:focus, input:focus { outline: none; border-color: currentColor; box-shadow: 0 0 0 3px rgba(10,10,10,.12); }
.filters-section input:focus, .filters-section select:focus { box-shadow: 0 0 0 2px rgba(255,255,255,.35); }
.filter-actions { height: 100%; display: flex; gap: 1px; }
.btn-filter { height: 100%; min-height: 76px; border: 0; }
.btn-filter-primary { color: var(--ink); background: var(--white); }
.btn-filter-secondary { color: var(--white); background: #242424; }
.active-filters { width: var(--container); margin: 0 auto; padding: .8rem 0; color: var(--white); }
.active-filter-tag { color: var(--ink); background: var(--white); border: 0; border-radius: 0; }
.properties-container { padding-top: clamp(4rem, 8vw, 8rem); padding-bottom: clamp(6rem, 10vw, 10rem); }
.results-header { margin-bottom: 2.5rem; padding-bottom: 1.2rem; border-bottom: 1px solid var(--line); }
.results-count { color: var(--muted); font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; }
.view-options { display: flex; border: 1px solid var(--line); }
.view-option { width: 44px; height: 44px; color: var(--muted); background: transparent; border: 0; border-left: 1px solid var(--line); }
.view-option.active { color: var(--white); background: var(--ink); }
.no-properties, .empty-state { padding: clamp(4rem, 10vw, 9rem) 1.5rem; text-align: center; border: 1px solid var(--line); background: transparent; }
.no-properties-icon, .empty-state-icon { display: grid; place-items: center; width: 68px; height: 68px; margin: 0 auto 1.5rem; border: 1px solid var(--ink); border-radius: 50%; background: transparent; }

/* Property detail */
.property-detail { padding-top: 86px; }
.gallery-section { position: relative; color: var(--white); background: var(--ink); }
.gallery-main { height: min(78vh, 800px); border-radius: 0; background: #171717; }
.gallery-main img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(.7); }
.gallery-overlay { background: linear-gradient(180deg, rgba(0,0,0,.12), rgba(0,0,0,.75)); }
.gallery-info { right: clamp(1.5rem, 5vw, 5rem); bottom: clamp(2rem, 6vw, 6rem); left: clamp(1.5rem, 5vw, 5rem); }
.gallery-title { max-width: 980px; font: 400 clamp(3rem, 7vw, 7rem)/.9 var(--font-display); letter-spacing: -.05em; }
.gallery-location { color: rgba(255,255,255,.68); }
.gallery-actions, .gallery-back { top: 2rem; }
.gallery-back, .share-btn, .gallery-nav-btn, .image-modal-close, .image-modal-nav { color: var(--ink); background: var(--white); border: 0; border-radius: 0; box-shadow: none; }
.gallery-thumbnails { gap: .6rem; padding: 1rem clamp(1.5rem, 5vw, 5rem); background: var(--ink); }
.gallery-thumbnail { width: 100px; height: 68px; border: 1px solid rgba(255,255,255,.25); border-radius: 0; opacity: .55; }
.gallery-thumbnail.active { border-color: var(--white); opacity: 1; }
.content-section { padding: clamp(4rem, 8vw, 8rem) 0; }
.content-container { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(300px, .62fr); gap: clamp(2rem, 7vw, 8rem); align-items: start; }
.content-card, .price-card, .cta-card, .info-card, .share-card, .glass-card { color: var(--ink); background: transparent; border: 0; border-radius: 0; box-shadow: none; backdrop-filter: none; }
.content-card { margin-bottom: 3.5rem; }
.content-card-header, .info-card-header { padding: 0 0 1rem; border-bottom: 1px solid var(--line); }
.content-card-title, .info-card-title { font: 400 clamp(1.8rem, 3vw, 2.7rem)/1 var(--font-display); }
.description-text { color: var(--ink-soft); font-size: 1.05rem; line-height: 1.8; }
.content-card .features-grid { grid-template-columns: repeat(2, 1fr); gap: 1px; color: var(--ink); background: var(--line); }
.content-card .feature-item { padding: 1.5rem; background: var(--paper); border: 0; border-radius: 0; }
.content-card .feature-label { color: var(--muted); font-size: .65rem; letter-spacing: .1em; text-transform: uppercase; }
.content-card .feature-value { color: var(--ink); font: 400 1.45rem/1.2 var(--font-display); }
.sidebar { position: sticky; top: 110px; display: grid; gap: 1px; background: var(--line); }
.sidebar > * { margin: 0; padding: 1.5rem; background: var(--white); }
.price-value { color: var(--ink); font: 400 clamp(2.3rem, 4vw, 3.6rem)/1 var(--font-display); }
.price-note { color: var(--muted); }
.cta-card { color: var(--white); background: var(--ink) !important; }
.cta-card .cta-icon { background: transparent; border: 1px solid rgba(255,255,255,.55); }
.cta-card .cta-button { color: var(--ink); background: var(--white); border: 1px solid var(--white); }
.cta-card .cta-button-priority { color: var(--white); background: transparent; border: 1px solid rgba(255,255,255,.48); }
.info-list { gap: 0; }
.detail-row { padding: .9rem 0; border-bottom: 1px solid var(--line); }
.image-modal { background: rgba(0,0,0,.96); backdrop-filter: blur(12px); }

/* Public forms, contact, services and confirmations */
.appointment-page, .confirmation-page { min-height: 100vh; padding: clamp(8rem, 14vw, 12rem) 1.5rem 6rem; background: var(--paper); }
.appointment-content, .confirmation-container { width: min(100%, 1200px); margin-inline: auto; }
.form-header { margin-bottom: 3rem; text-align: left; }
.form-header h1, .confirmation-title { font: 400 clamp(3rem, 7vw, 6.5rem)/.92 var(--font-display); letter-spacing: -.05em; }
.form-header p, .confirmation-subtitle { color: var(--muted); }
.property-summary { display: grid; grid-template-columns: minmax(150px, .4fr) 1fr; color: var(--white); background: var(--ink); border: 0; border-radius: 0; overflow: hidden; }
.property-summary-image { height: 100%; min-height: 220px; border-radius: 0; }
.property-summary-image img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(.65); }
.property-summary-content { padding: clamp(1.5rem, 4vw, 3rem); }
.property-summary-title, .property-summary-name { color: var(--white); font: 400 2rem/1.05 var(--font-display); }
.property-summary-location { color: rgba(255,255,255,.6); }
.property-summary-price { color: var(--white); }
.appointment-details, .form-section, .priority-section, .info-card, .contact-card { padding: clamp(1.5rem, 3vw, 2.5rem); background: var(--white); border: 1px solid var(--line); border-radius: 0; box-shadow: none; }
.form-section + .form-section { margin-top: 1px; }
.form-section-title, .appointment-details-title { font: 400 1.65rem/1 var(--font-display); }
.form-row { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.form-group { margin-bottom: 1.25rem; }
.form-label, .filter-label, label { color: var(--ink-soft); font-weight: 600; }
.form-help { color: var(--muted); font-size: .78rem; }
.field-error, .form-error { color: var(--error); font-size: .78rem; }
.steps-indicator { margin-bottom: 3rem; }
.step { color: var(--muted); }
.step.active { color: var(--ink); }
.step-number { border: 1px solid currentColor; background: transparent; }
.calendar-header, .calendar-weekdays { color: var(--white); background: var(--ink); }
.calendar-days { background: var(--line); gap: 1px; }
.calendar-days button, .calendar-days .day { min-height: 44px; border: 0; border-radius: 0; background: var(--white); }
.selected-date-display { color: var(--white); background: var(--ink); border-radius: 0; }
.contact-wrap { padding: clamp(9rem, 14vw, 14rem) 0 clamp(5rem, 10vw, 10rem); }
.contact-head { max-width: 950px; margin-bottom: clamp(4rem, 8vw, 8rem); }
.contact-head h1 { font: 400 clamp(4rem, 9vw, 9rem)/.85 var(--font-display); letter-spacing: -.06em; }
.contact-head p { max-width: 620px; color: var(--muted); }
.contact-grid { display: grid; grid-template-columns: .7fr 1.3fr; gap: clamp(2rem, 8vw, 9rem); }
.contact-info { display: flex; flex-direction: column; gap: 0; }
.contact-card { padding: 1.3rem 0; border-width: 0 0 1px; background: transparent; }
.contact-card h3 { font: 400 1.45rem/1 var(--font-display); }
.contact-card p, .contact-link { color: var(--muted); }
.map-wrap { margin-top: 2rem; overflow: hidden; filter: grayscale(1); border: 1px solid var(--line); border-radius: 0; }
.confirmation-bg, .bg-shape, .header-shapes { display: none; }
.confirmation-container { padding: clamp(2rem, 5vw, 5rem); background: var(--white); border: 1px solid var(--line); border-radius: 0; box-shadow: none; text-align: left; }
.success-icon { display: grid; place-items: center; width: 76px; height: 76px; margin: 0 0 2rem; color: var(--white); background: var(--ink); border-radius: 50%; }
.confirmation-actions { justify-content: flex-start; }
.next-steps { border-top: 1px solid var(--line); }
.step-item { border-bottom: 1px solid var(--line); }

/* Alerts and fixed actions */
.messages { position: fixed; z-index: 3000; top: 100px; right: 1.5rem; display: grid; gap: .6rem; width: min(420px, calc(100% - 3rem)); padding: 0; }
.message { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .75rem; padding: 1rem; color: var(--white); background: var(--ink); border: 1px solid rgba(255,255,255,.25); box-shadow: var(--shadow-lg); }
.message svg { width: 18px; }
.message button { display: grid; place-items: center; width: 36px; height: 36px; color: inherit; background: transparent; border: 0; cursor: pointer; }
.message.success { background: #173c2b; }.message.warning { background: #523b18; }.message.error { background: #552421; }
.whatsapp-float { position: fixed; z-index: 900; right: 1.5rem; bottom: 1.5rem; display: inline-flex; align-items: center; gap: .65rem; min-height: 48px; padding: 0 1rem; color: var(--white); background: var(--ink); border: 1px solid rgba(255,255,255,.25); border-radius: 0; box-shadow: var(--shadow-md); font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; transition: transform 160ms var(--ease-out); }
.whatsapp-float svg { width: 18px; }
.scroll-top { position: fixed; z-index: 890; right: 1.5rem; bottom: 5.3rem; display: grid; place-items: center; width: 48px; height: 48px; padding: 0; color: var(--ink); background: var(--paper); border: 1px solid var(--ink); border-radius: 0; opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity 180ms ease, transform 180ms var(--ease-out), visibility 180ms; }
.scroll-top.visible { opacity: 1; visibility: visible; transform: translateY(0); }

/* Footer */
.footer { padding: clamp(6rem, 12vw, 12rem) 0 1.5rem; color: var(--white); background: var(--ink); }
.footer-container { width: calc(100% - 3rem); margin-inline: auto; }
.footer-lead { padding-bottom: clamp(5rem, 10vw, 9rem); border-bottom: 1px solid rgba(255,255,255,.25); }
.footer-kicker { margin-bottom: 2rem; color: rgba(255,255,255,.52); font-size: .68rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.footer-lead h2 { max-width: 1100px; margin-bottom: 2.5rem; font: 400 clamp(4.2rem, 10vw, 10rem)/.82 var(--font-display); letter-spacing: -.06em; }
.footer-lead h2 em { font-weight: 400; }
.footer-action { display: inline-flex; align-items: center; gap: .8rem; padding-bottom: .6rem; border-bottom: 1px solid currentColor; font-size: .76rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.footer-grid { display: grid; grid-template-columns: 2fr repeat(3, 1fr); gap: clamp(2rem, 5vw, 6rem); padding: clamp(4rem, 7vw, 7rem) 0; }
.footer-logo { display: flex; align-items: center; gap: .8rem; margin-bottom: 1.4rem; font: 400 1.7rem/1 var(--font-display); }
.footer-logo img { width: 30px; filter: invert(1); }
.footer-brand p { max-width: 320px; color: rgba(255,255,255,.52); }
.footer-section h3 { margin-bottom: 1.25rem; color: rgba(255,255,255,.5); font-size: .65rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.footer-links { list-style: none; }
.footer-links li, .footer-links a { margin-bottom: .6rem; color: rgba(255,255,255,.78); font-size: .84rem; }
.footer-links a { transition: color 160ms ease; }.footer-links a:hover { color: var(--white); }
.footer-bottom { display: flex; justify-content: space-between; gap: 1rem; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.2); }
.footer-bottom p, .footer-bottom a { margin: 0; color: rgba(255,255,255,.45); font-size: .68rem; letter-spacing: .06em; text-transform: uppercase; }

/* GSAP begins from CSS-visible content; JS applies only after registration. */
.js.motion-ready [data-reveal], .js.motion-ready .gsap-reveal { will-change: transform, opacity; }

@media (hover:hover) and (pointer:fine) {
    .navbar-cta:hover { background: #333; }
    .property-card:hover { transform: translateY(-4px); }
    .whatsapp-float:hover { transform: translateY(-3px); }
}

@media (max-width: 1050px) {
    :root { --container: min(100% - 2rem, 1440px); }
    .navbar-container, .footer-container { width: calc(100% - 2rem); }
    .navbar-menu, .navbar-cta { display: none; }
    .navbar-container { grid-template-columns: 1fr auto; }
    .navbar-toggle { display: block; }
    .navbar-mobile { display: flex; flex-direction: column; }
    .navbar-mobile.active { opacity: 1; visibility: visible; }
    .navbar-mobile-link { display: grid; grid-template-columns: 3rem 1fr; align-items: baseline; padding: .8rem 0; font: 400 clamp(2.5rem, 8vw, 5rem)/1 var(--font-display); border-bottom: 1px solid rgba(255,255,255,.2); }
    .navbar-mobile-link span { font: 600 .62rem/1 var(--font-primary); letter-spacing: .12em; }
    .navbar-mobile p { margin-top: auto; color: rgba(255,255,255,.5); font-size: .78rem; }
    .navbar.menu-active { color: var(--white); }
    .navbar.menu-active .navbar-logo-img { filter: invert(1); }
    .hero-container { grid-template-columns: 1fr; }
    .hero-content { padding-bottom: 0; }
    .hero-visual { width: min(100%, 620px); min-height: 0; justify-self: end; }
    .properties-grid { grid-template-columns: repeat(2, 1fr); }
    .property-card, .property-card:nth-child(5n + 1), .property-card:nth-child(5n + 2) { grid-column: auto; }
    .filters-form { grid-template-columns: repeat(2, 1fr); }
    .filter-actions { grid-column: 1 / -1; }
    .btn-filter { flex: 1; min-height: 52px; }
    .content-container { grid-template-columns: 1fr; }
    .sidebar { position: static; grid-template-columns: repeat(2, 1fr); }
    .footer-grid { grid-template-columns: repeat(3, 1fr); }
    .footer-brand { grid-column: 1 / -1; }
}

@media (max-width: 720px) {
    :root { --container: min(100% - 1.5rem, 1440px); --space-3xl: 4.5rem; }
    .navbar { height: 72px; }
    .navbar-container, .footer-container { width: calc(100% - 1.5rem); }
    .navbar-logo { font-size: 1.45rem; }.navbar-logo-img { width: 26px; height: 26px; }
    .hero { min-height: 100svh; padding-top: 7rem; }
    .hero-title { font-size: clamp(4rem, 21vw, 6.4rem); }
    .hero-description { font-size: .95rem; }
    .hero-buttons > * { width: 100%; }
    .hero-stats { margin-top: 2.4rem; }
    .hero-stat-value { font-size: 1.55rem; }
    .hero-stat-label { font-size: .55rem; }
    .hero-card-image { height: 310px; }
    .hero-card-content { grid-template-columns: 1fr; }
    .hero-card-price { grid-area: auto; }
    .page-header { min-height: 70svh; padding-top: 9rem; }
    .section-title, .page-header h1, .page-header-title { font-size: clamp(3rem, 16vw, 5.5rem); }
    .properties-grid, .features-grid, .services-grid, .why-grid { grid-template-columns: 1fr; }
    .property-card, .property-card:nth-child(5n + 1), .property-card:nth-child(5n + 2) { grid-column: auto; }
    .property-card-title { font-size: 1.8rem; }
    .feature-card, .service-card, .why-card { min-height: 280px; }
    .filters-form { grid-template-columns: 1fr; }
    .filter-actions { grid-column: auto; }
    .content-section { padding-top: 2rem; }
    .gallery-main { height: 72svh; }
    .gallery-title { font-size: clamp(3.2rem, 15vw, 5.5rem); }
    .gallery-thumbnails { overflow-x: auto; }
    .sidebar { grid-template-columns: 1fr; }
    .form-row, .contact-grid { grid-template-columns: 1fr; }
    .property-summary { grid-template-columns: 1fr; }
    .property-summary-image { min-height: 240px; }
    .confirmation-container { padding: 1.5rem; }
    .confirmation-actions { display: grid; }
    .confirmation-actions > * { width: 100%; }
    .footer-lead h2 { font-size: clamp(4rem, 19vw, 7rem); }
    .footer-grid { grid-template-columns: 1fr 1fr; }
    .footer-brand { grid-column: 1 / -1; }
    .footer-bottom { flex-direction: column; }
    .messages { top: 84px; right: .75rem; width: calc(100% - 1.5rem); }
    .whatsapp-float { right: .75rem; bottom: .75rem; width: 48px; padding: 0; justify-content: center; }
    .whatsapp-float span { display: none; }
    .scroll-top { right: .75rem; bottom: 4.3rem; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
    .page-loader { display: none; }
    .property-card:hover, .property-card:hover img { transform: none; }
}
@media (prefers-reduced-transparency: reduce) { .navbar.scrolled { background: var(--paper); backdrop-filter: none; } }
@media (prefers-contrast: more) { :root { --line: rgba(0,0,0,.5); }.navbar.scrolled { background: var(--white); }.property-card-badge { background: #000; } }

/* ================================================================
   HABITATUM EXPERIENCE V2 — THE HABITABLE H
   ================================================================ */
.icon-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.hero-v2 svg, .featured-home svg, .principles-section svg, .home-services svg,
.home-closing svg, .services-hero svg, .service-ledger svg, .credit-studio svg,
.services-closing svg, .navbar svg, .footer svg, .whatsapp-float svg, .scroll-top svg {
    fill: none; stroke: currentColor; stroke-width: 1.45; stroke-linecap: round; stroke-linejoin: round;
}
.header-icon svg { width: 30px; height: 30px; }
.empty-state-icon svg { width: 32px; height: 32px; }
.cta-icon svg { width: 27px; height: 27px; }

/* Wordmark and navigation */
.navbar { height: 78px; color: var(--ink); transform: none !important; }
.navbar-container { position: relative; z-index: 4; }
.navbar-logo { gap: 0; font-size: 1.7rem; }
.navbar-logo-img { width: auto; height: 1.06em; margin-right: .055em; transform: translateY(-.025em); transition: filter 180ms ease; }
.navbar-logo span, .footer-logo span, .loader-mark span { position: relative; z-index: 1; }
.navbar.on-dark:not(.scrolled), .navbar.menu-active { color: var(--white); }
.navbar.on-dark:not(.scrolled) .navbar-logo-img, .navbar.menu-active .navbar-logo-img { filter: invert(1); }
.navbar.scrolled { color: var(--ink); background: rgba(245,245,242,.92); }
.navbar.scrolled .navbar-logo-img { filter: none; }
.navbar.menu-active, .navbar.menu-active.scrolled { color: var(--white); background: transparent; backdrop-filter: none; }
.navbar.menu-active .navbar-logo-img, .navbar.menu-active.scrolled .navbar-logo-img { filter: invert(1); }
.navbar-cta svg, .footer-action svg { width: 16px; height: 16px; }
.navbar-mobile { z-index: 2; overflow-y: auto; overscroll-behavior: contain; opacity: 1; visibility: hidden; transform: translateX(100%); transition: transform 420ms cubic-bezier(.32,.72,0,1), visibility 0s linear 420ms; }
.navbar-mobile.active { opacity: 1; visibility: visible; transform: translateX(0); transition-delay: 0s; }
.navbar-mobile-link { opacity: .58; transition: opacity 180ms ease; }
.navbar-mobile-link.active, .navbar-mobile-link:hover, .navbar-mobile-link:focus-visible { opacity: 1; }
.mobile-menu-foot { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; margin-top: auto; }
.mobile-menu-foot p { margin: 0; }
.mobile-menu-foot a { display: flex; align-items: center; gap: .7rem; min-height: 48px; padding-bottom: .35rem; border-bottom: 1px solid rgba(255,255,255,.5); font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.mobile-menu-foot svg { width: 17px; }

/* Cinematic loader and route curtain */
.page-loader { isolation: isolate; background: transparent; }
.loader-curtains, .page-transition { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(3,1fr); }
.loader-curtains span, .page-transition span { background: var(--ink); border-right: 1px solid rgba(255,255,255,.12); transform-origin: top; }
.loader-stage { position: relative; z-index: 2; width: min(100% - 3rem, 1180px); height: min(72vh, 680px); display: flex; flex-direction: column; justify-content: space-between; padding: 1.25rem 0; color: var(--white); border-top: 1px solid rgba(255,255,255,.28); border-bottom: 1px solid rgba(255,255,255,.28); }
.loader-location { margin: 0; font-size: .6rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.loader-mark { align-self: center; gap: 0; }
.loader-mark img { width: auto; height: .82em; margin-right: .04em; transform: translateY(-.012em); }
.loader-mark span { font-size: clamp(4.5rem, 12vw, 11rem); letter-spacing: -.065em; }
.loader-progress { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 1.2rem; }
.loader-line { position: static; width: 100%; height: 1px; background: var(--white); transform: scaleX(0); transform-origin: left; }
.loader-progress strong { min-width: 2.5rem; font-size: .7rem; font-variant-numeric: tabular-nums; letter-spacing: .1em; }
.page-transition { position: fixed; z-index: 10002; pointer-events: none; }
.page-transition span { transform: scaleY(0); transform-origin: bottom; }

/* New hero */
.hero.hero-v2 { isolation: isolate; min-height: 100svh; display: block; padding: 0; color: var(--white); background: #090a0b; }
.hero-v2-media { position: absolute; inset: 0; z-index: -3; overflow: hidden; }
.hero-v2-media img { width: 100%; height: 112%; object-fit: cover; object-position: 52% center; filter: none; transform: translateY(-5%); }
.hero-v2-shade { position: absolute; inset: 0; z-index: -2; background: linear-gradient(90deg, rgba(5,6,7,.84) 0%, rgba(5,6,7,.58) 36%, rgba(5,6,7,.1) 73%), linear-gradient(180deg, rgba(4,5,6,.56), transparent 33%, rgba(4,5,6,.52)); }
.hero-blueprint { position: absolute; inset: 8% 3% 5%; z-index: -1; width: 94%; height: 87%; opacity: .23; }
.blueprint-line { vector-effect: non-scaling-stroke; stroke: rgba(255,255,255,.72); stroke-width: .75; stroke-dasharray: 1; stroke-dashoffset: 1; }
.hero-v2-container { width: calc(100% - 3rem); min-height: 100svh; margin-inline: auto; display: grid; grid-template-rows: auto 1fr auto; padding: 6.2rem 0 2rem; }
.hero-v2-top { display: flex; justify-content: space-between; padding-top: .8rem; border-top: 1px solid rgba(255,255,255,.35); }
.hero-v2-top p { margin: 0; font-size: .58rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.hero-v2-center { align-self: center; }
.hero-v2-eyebrow { margin: 0 0 clamp(1.2rem,2vw,2rem); color: rgba(255,255,255,.7); font-size: .68rem; font-weight: 700; letter-spacing: .17em; text-transform: uppercase; }
.hero-wordmark { display: flex; align-items: center; gap: 0; margin: 0; width: min-content; color: var(--white); font: 400 clamp(6rem,15.2vw,15.8rem)/.72 var(--font-display); letter-spacing: -.072em; white-space: nowrap; }
.hero-wordmark img { width: auto; height: .87em; margin-right: .025em; filter: invert(1); transform: translateY(-.012em); }
.hero-v2-bottom { display: grid; grid-template-columns: minmax(240px,.8fr) 1fr auto; align-items: end; gap: clamp(2rem,7vw,8rem); padding-top: 1.3rem; border-top: 1px solid rgba(255,255,255,.35); }
.hero-v2-statement { max-width: 440px; margin: 0; color: rgba(255,255,255,.74); font-size: clamp(.92rem,1.25vw,1.08rem); }
.hero-v2-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.hero-primary-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 2rem; min-height: 52px; padding: .8rem 1rem; color: var(--ink); background: var(--white); border: 1px solid var(--white); font-size: .68rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; transition: color 180ms ease, background-color 180ms ease, transform 150ms var(--ease-out); }
.hero-primary-link svg { width: 18px; height: 18px; }
.hero-primary-link:active { transform: scale(.97); }
.hero-text-link { display: inline-flex; align-items: center; min-height: 52px; padding: .7rem .1rem; color: inherit; border-bottom: 1px solid currentColor; font-size: .68rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.hero-scroll-cue { margin: 0; color: rgba(255,255,255,.6); font-size: .58rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; writing-mode: vertical-rl; }
.hero-scroll-cue span { display: block; width: 1px; height: 38px; margin: 0 auto .7rem; background: rgba(255,255,255,.55); }

/* Manifesto */
.home-manifesto { width: var(--container); margin-inline: auto; display: grid; grid-template-columns: .4fr 1.6fr; gap: clamp(2rem,8vw,9rem); padding: clamp(6rem,11vw,11rem) 0; }
.home-manifesto-label { color: var(--muted); font-size: .6rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.home-manifesto p { max-width: 1050px; margin: 0; font: 400 clamp(2.5rem,5.4vw,5.7rem)/.98 var(--font-display); letter-spacing: -.045em; }

/* Featured carousel */
.featured-home { padding: clamp(6rem,10vw,10rem) 0; overflow: hidden; background: var(--white); }
.featured-home-head { width: var(--container); margin: 0 auto clamp(3rem,7vw,6rem); display: grid; grid-template-columns: 1.25fr .75fr; gap: clamp(2rem,8vw,8rem); align-items: end; }
.section-kicker { margin: 0 0 1.25rem; color: var(--muted); font-size: .6rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.featured-home-head h2, .home-services-head h2, .services-intro h2, .service-process-head h2 { margin: 0; font: 400 clamp(3.7rem,7.8vw,7.9rem)/.87 var(--font-display); letter-spacing: -.055em; }
.featured-home-head h2 em, .home-services-head h2 em, .services-intro h2 em, .service-process-head h2 em { font-weight: 400; }
.featured-home-aside { padding-bottom: .7rem; }
.featured-home-aside > p { max-width: 480px; margin: 0 0 2rem; color: var(--muted); }
.carousel-controls { display: flex; align-items: center; gap: .8rem; }
.carousel-button { display: grid; place-items: center; width: 48px; height: 48px; padding: 0; color: var(--ink); background: transparent; border: 1px solid var(--line); transition: color 160ms ease, background-color 160ms ease, transform 150ms var(--ease-out); }
.carousel-button:disabled { opacity: .3; cursor: not-allowed; }
.carousel-button svg { width: 18px; height: 18px; }
.carousel-status { min-width: 70px; color: var(--muted); font-size: .62rem; font-variant-numeric: tabular-nums; letter-spacing: .1em; text-align: center; }
.carousel-status strong { color: var(--ink); }
.property-carousel { width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: none; scroll-snap-type: x mandatory; scroll-padding-left: max(1.5rem,calc((100vw - 1440px)/2)); cursor: grab; }
.property-carousel:active { cursor: grabbing; }
.property-carousel::-webkit-scrollbar { display: none; }
.property-carousel-track { width: max-content; display: flex; gap: clamp(1rem,2.2vw,2.2rem); padding: 0 max(1.5rem,calc((100vw - 1440px)/2)); }
.featured-slide { width: min(76vw,1080px); flex: 0 0 auto; scroll-snap-align: start; }
.featured-slide-image { position: relative; display: block; aspect-ratio: 16/9; overflow: hidden; background: #d8d8d3; }
.featured-slide-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.25), transparent 35%, rgba(0,0,0,.32)); pointer-events: none; }
.featured-slide-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 900ms var(--ease-out); }
.featured-slide-number, .featured-slide-type { position: absolute; z-index: 2; top: 1.2rem; color: var(--white); font-size: .6rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.featured-slide-number { left: 1.2rem; }.featured-slide-type { right: 1.2rem; }
.featured-slide-open { position: absolute; z-index: 2; right: 1.2rem; bottom: 1.2rem; display: grid; place-items: center; width: 52px; height: 52px; color: var(--ink); background: var(--white); }
.featured-slide-open svg { width: 19px; height: 19px; }
.featured-slide-copy { display: grid; grid-template-columns: 1.1fr .9fr; gap: 2rem; padding-top: 1.3rem; }
.featured-slide-copy p { margin: 0 0 .4rem; color: var(--muted); font-size: .72rem; }
.featured-slide-copy h3 { margin: 0; font: 400 clamp(1.8rem,3.2vw,3.2rem)/1 var(--font-display); letter-spacing: -.03em; }
.featured-slide-copy dl { margin: 0; display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; }
.featured-slide-copy dl div { padding-left: .8rem; border-left: 1px solid var(--line); }
.featured-slide-copy dt { color: var(--muted); font-size: .55rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.featured-slide-copy dd { margin: .25rem 0 0; font-size: .76rem; font-weight: 600; }
.carousel-progress { width: var(--container); height: 1px; margin: 3rem auto 0; background: var(--fog); }
.carousel-progress span { display: block; width: 0; height: 1px; background: var(--ink); transform-origin: left; }
.collection-link { width: var(--container); margin: 2rem auto 0; display: flex; align-items: center; justify-content: space-between; padding-bottom: .7rem; border-bottom: 1px solid var(--ink); font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.collection-link svg { width: 18px; height: 18px; }

/* Horizontal story */
.principles-section { color: var(--white); background: var(--ink); overflow: clip; }
.principles-pin { min-height: 100svh; display: grid; grid-template-rows: auto 1fr auto; padding: clamp(5.5rem,8vw,8rem) 0 2rem; }
.principles-heading { width: var(--container); margin: 0 auto clamp(2.5rem,5vw,4.5rem); display: grid; grid-template-columns: 1.15fr .65fr; column-gap: 3rem; align-items: end; }
.principles-heading .section-kicker { grid-column: 1 / -1; color: rgba(255,255,255,.46); }
.principles-heading h2 { margin: 0; font: 400 clamp(3.6rem,7vw,7rem)/.88 var(--font-display); letter-spacing: -.052em; }
.principles-heading > p:last-child { max-width: 460px; margin: 0 0 .6rem; color: rgba(255,255,255,.6); }
.principles-viewport { width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: none; }
.principles-viewport::-webkit-scrollbar { display: none; }
.motion-ready .principles-section.is-horizontal .principles-viewport { overflow: hidden; }
.principles-track { width: max-content; display: flex; align-items: stretch; gap: 1px; padding: 0 4vw; background: rgba(255,255,255,.2); }
.principle-card { position: relative; width: min(48vw,690px); min-height: clamp(310px,40vh,450px); flex: 0 0 auto; display: flex; flex-direction: column; justify-content: space-between; padding: clamp(1.5rem,3vw,3rem); color: var(--white); background: var(--ink); }
.principle-intro { width: min(31vw,440px); color: var(--ink); background: var(--white); }
.principle-intro p { font-size: .62rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.principle-intro span { max-width: 280px; font: 400 clamp(2rem,3.2vw,3.2rem)/.95 var(--font-display); }
.principle-housemark { align-self: flex-end; width: 72px; height: 72px; }
.principle-index { color: rgba(255,255,255,.4); font-size: .6rem; font-weight: 700; letter-spacing: .12em; }
.principle-icon { position: absolute; top: 2rem; right: 2rem; width: 72px; height: 72px; color: rgba(255,255,255,.7); stroke-width: .9 !important; }
.principle-card h3 { max-width: 520px; margin: 0 0 1rem; font: 400 clamp(2.3rem,4vw,4.1rem)/.94 var(--font-display); letter-spacing: -.04em; }
.principle-card > div p { max-width: 500px; margin: 0; color: rgba(255,255,255,.55); }
.principles-progress { width: var(--container); height: 1px; margin: 2rem auto 0; background: rgba(255,255,255,.2); }
.principles-progress span { display: block; width: 20%; height: 100%; background: var(--white); transform-origin: left; }

/* Home service routes */
.home-services { width: var(--container); margin-inline: auto; display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(3rem,10vw,11rem); padding: clamp(7rem,13vw,13rem) 0; }
.home-services-head { position: sticky; top: 120px; align-self: start; }
.home-service-list { border-top: 1px solid var(--line); }
.home-service-row { display: grid; grid-template-columns: .45fr 1fr auto; gap: 2rem; align-items: center; min-height: 150px; padding: 1.5rem 0; border-bottom: 1px solid var(--line); transition: padding 220ms var(--ease-out); }
.home-service-row > span { font: 400 clamp(2rem,3.2vw,3.2rem)/1 var(--font-display); }
.home-service-row p { max-width: 470px; margin: 0; color: var(--muted); }
.home-service-row svg { width: 24px; height: 24px; }
.home-closing, .services-closing { padding: clamp(7rem,14vw,14rem) max(1.5rem,calc((100vw - 1440px)/2)); color: var(--white); background: var(--ink); }
.home-closing-mark { width: 72px; height: 72px; margin-bottom: clamp(3rem,7vw,7rem); stroke-width: .9 !important; }
.home-closing > p { color: rgba(255,255,255,.55); }
.home-closing h2, .services-closing h2 { max-width: 1200px; margin: 1rem 0 clamp(2.5rem,5vw,5rem); font: 400 clamp(3.8rem,8.5vw,8.6rem)/.86 var(--font-display); letter-spacing: -.057em; }
.home-closing h2 em, .services-closing h2 em { font-weight: 400; }

/* Services */
.services-hero { position: relative; min-height: 92svh; display: grid; grid-template-rows: auto 1fr auto; padding: 7rem max(1.5rem,calc((100vw - 1440px)/2)) 2rem; overflow: hidden; color: var(--white); background: var(--ink); }
.services-hero-grid { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(4,1fr); pointer-events: none; }
.services-hero-grid span { border-right: 1px solid rgba(255,255,255,.13); }
.services-hero-grid span:first-child { border-left: 1px solid rgba(255,255,255,.13); }
.services-hero-top, .services-hero-copy, .services-hero-bottom { position: relative; z-index: 1; }
.services-hero-top { display: flex; justify-content: space-between; padding-top: .8rem; border-top: 1px solid rgba(255,255,255,.35); }
.services-hero-top p { margin: 0; font-size: .58rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.services-hero-copy { align-self: center; }
.services-hero .section-kicker { color: rgba(255,255,255,.5); }
.services-hero h1 { margin: 0; font: 400 clamp(4.2rem,9.6vw,10rem)/.84 var(--font-display); letter-spacing: -.06em; }
.services-hero h1 em { font-weight: 400; }
.services-hero-bottom { display: flex; justify-content: space-between; align-items: end; gap: 3rem; padding-top: 1.3rem; border-top: 1px solid rgba(255,255,255,.35); }
.services-hero-bottom p { max-width: 550px; margin: 0; color: rgba(255,255,255,.62); }
.services-intro { width: var(--container); margin-inline: auto; padding: clamp(7rem,13vw,13rem) 0; }
.services-intro > div { display: grid; grid-template-columns: 1.3fr .7fr; gap: clamp(3rem,9vw,10rem); align-items: end; }
.services-intro > div > p { max-width: 520px; margin: 0 0 .7rem; color: var(--muted); }
.service-ledger { border-top: 1px solid var(--line); }
.service-chapter { min-height: 78vh; display: grid; grid-template-columns: .28fr .82fr .62fr; gap: clamp(2rem,6vw,7rem); align-items: center; padding: clamp(5rem,10vw,10rem) max(1.5rem,calc((100vw - 1440px)/2)); border-bottom: 1px solid var(--line); scroll-margin-top: 78px; }
.service-chapter-dark { color: var(--white); background: var(--ink); }
.service-chapter-meta { align-self: stretch; display: flex; flex-direction: column; justify-content: space-between; color: var(--muted); }
.service-chapter-dark .service-chapter-meta { color: rgba(255,255,255,.45); }
.service-chapter-meta > span { font-size: .65rem; font-weight: 700; letter-spacing: .12em; }
.service-chapter-meta svg { width: clamp(68px,8vw,115px); height: clamp(68px,8vw,115px); stroke-width: .8 !important; }
.service-chapter-main .section-kicker { color: inherit; opacity: .55; }
.service-chapter-main h2 { margin: 0 0 2rem; font: 400 clamp(3rem,6.2vw,6.5rem)/.88 var(--font-display); letter-spacing: -.052em; }
.service-chapter-main > p:last-child { max-width: 590px; margin: 0; color: var(--muted); }
.service-chapter-dark .service-chapter-main > p:last-child { color: rgba(255,255,255,.57); }
.service-deliverables { align-self: end; list-style: none; border-top: 1px solid var(--line); }
.service-chapter-dark .service-deliverables { border-color: rgba(255,255,255,.2); }
.service-deliverables li { display: grid; grid-template-columns: 2.4rem 1fr; gap: .7rem; padding: 1rem 0; border-bottom: 1px solid var(--line); font-size: .78rem; }
.service-chapter-dark .service-deliverables li { border-color: rgba(255,255,255,.2); }
.service-deliverables li span { color: var(--muted); font-size: .55rem; font-weight: 700; }
.service-process { width: var(--container); margin-inline: auto; display: grid; grid-template-columns: .72fr 1.28fr; gap: clamp(3rem,10vw,11rem); padding: clamp(7rem,13vw,13rem) 0; }
.service-process-head { position: sticky; top: 120px; align-self: start; }
.service-process-list { list-style: none; border-top: 1px solid var(--line); }
.service-process-list li { display: grid; grid-template-columns: 4rem 1fr; gap: 1rem; min-height: 155px; padding: 1.6rem 0; border-bottom: 1px solid var(--line); }
.service-process-list li > span { color: var(--muted); font-size: .6rem; font-weight: 700; }
.service-process-list h3 { margin: 0 0 .55rem; font: 400 2rem/1 var(--font-display); }
.service-process-list p { max-width: 520px; margin: 0; color: var(--muted); }
.credit-studio { display: grid; grid-template-columns: .78fr 1.22fr; background: var(--white); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.credit-studio-copy, .credit-form { padding: clamp(3rem,7vw,7rem) max(1.5rem,calc((100vw - 1440px)/2)); }
.credit-studio-copy { padding-right: clamp(2rem,6vw,6rem); background: var(--paper); }
.credit-studio-copy > svg { width: 76px; height: 76px; margin-bottom: clamp(3rem,6vw,6rem); stroke-width: .8 !important; }
.credit-studio-copy h2 { margin: 0 0 1.5rem; font: 400 clamp(3.2rem,6vw,6rem)/.9 var(--font-display); letter-spacing: -.05em; }
.credit-studio-copy > p:not(.section-kicker) { max-width: 520px; color: var(--muted); }
.credit-studio-copy dl { margin: 3rem 0 0; }
.credit-studio-copy dl div { display: grid; grid-template-columns: .35fr .65fr; gap: 1rem; padding: .85rem 0; border-top: 1px solid var(--line); }
.credit-studio-copy dt { color: var(--muted); font-size: .58rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.credit-studio-copy dd { margin: 0; font-size: .76rem; }
.credit-form { padding-left: clamp(2rem,6vw,6rem); }
.credit-form-head { display: flex; justify-content: space-between; margin-bottom: 3rem; padding-bottom: 1rem; border-bottom: 1px solid var(--line); font-size: .62rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.credit-form-head strong { color: var(--muted); }
.credit-form .form-control { min-height: 54px; background: transparent; border-width: 0 0 1px; padding-inline: 0; }
.credit-form textarea.form-control { min-height: 120px; }
.credit-form .form-group label { margin-bottom: .25rem; font-size: .62rem; letter-spacing: .07em; text-transform: uppercase; }
.credit-submit { width: 100%; min-height: 58px; display: flex; align-items: center; justify-content: space-between; padding: .9rem 1rem; color: var(--white); background: var(--ink); border: 1px solid var(--ink); font-size: .68rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; transition: transform 150ms var(--ease-out), background-color 180ms ease; }
.credit-submit svg { width: 19px; height: 19px; }
.credit-submit:active { transform: scale(.985); }
.services-closing .section-kicker { color: rgba(255,255,255,.48); }
.services-closing > div { display: flex; align-items: center; flex-wrap: wrap; gap: 1.5rem; }

/* Footer credit gets its own safe visual band */
.footer-logo { gap: 0; }.footer-logo img {     margin-bottom: 10px; width: auto; height: 1.08em; margin-right: .055em; transform: translateY(-.018em); }
.studio-credit { width: min(100%,760px); min-height: 92px; display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 1.2rem; margin: 0 0 1.5rem; padding: 1.2rem 1.4rem; color: var(--white); background: #171717; border: 1px solid rgba(255,255,255,.22); transition: background-color 180ms ease; }
.studio-credit span { color: rgba(255,255,255,.45); font-size: .6rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.studio-credit strong { font: 400 clamp(1.7rem,3vw,2.7rem)/1 var(--font-display); letter-spacing: -.02em; }
.studio-credit svg { width: 22px; height: 22px; }
.footer-links a { overflow-wrap: anywhere; }
.footer-bottom a { display: inline-flex; align-items: center; gap: .55rem; }
.footer-bottom a svg { width: 15px; height: 15px; }
.footer { padding-bottom: 5.5rem; }
.whatsapp-float { bottom: 1rem; }
.scroll-top { bottom: 4.5rem; }

@media (hover:hover) and (pointer:fine) {
    .featured-slide-image:hover img { transform: scale(1.025); }
    .carousel-button:not(:disabled):hover { color: var(--white); background: var(--ink); }
    .home-service-row:hover { padding-inline: 1rem; }
    .studio-credit:hover { background: #202020; }
    .hero-primary-link:hover { color: var(--white); background: transparent; }
}

@media (max-width: 1050px) {
    .navbar-mobile { display: flex; padding: 7rem 1.25rem 1.25rem; }
    .navbar-mobile.active { opacity: 1; visibility: visible; }
    .navbar-mobile-link { grid-template-columns: 2.5rem 1fr; font-size: clamp(3rem,10vw,5.5rem); }
    .hero-v2-container { width: calc(100% - 2rem); }
    .hero-v2-bottom { grid-template-columns: 1fr 1fr; }
    .hero-scroll-cue { display: none; }
    .home-manifesto { grid-template-columns: 1fr; }
    .principles-heading { grid-template-columns: 1fr; }
    .principles-heading > p:last-child { margin-top: 1.5rem; }
    .principle-card { width: min(72vw,650px); }.principle-intro { width: min(50vw,420px); }
    .service-chapter { grid-template-columns: .22fr 1fr; }.service-deliverables { grid-column: 2; }
    .services-intro > div { grid-template-columns: 1fr; }
    .credit-studio { grid-template-columns: 1fr; }.credit-studio-copy, .credit-form { padding-inline: max(1.5rem,calc((100vw - 900px)/2)); }
}

@media (max-width: 720px) {
    .navbar { height: 70px; }
    .navbar-logo { font-size: 1.55rem; }
    .navbar-mobile { padding-top: 6.2rem; }
    .navbar-mobile-link { min-height: 64px; font-size: clamp(2.8rem,14vw,4.3rem); }
    .mobile-menu-foot { align-items: flex-start; flex-direction: column; gap: 1rem; }
    .loader-stage { width: calc(100% - 2rem); height: 78vh; }.loader-mark span { font-size: clamp(4rem,19vw,6.5rem); }
    .hero.hero-v2 { min-height: 100svh; }
    .hero-v2-media img { width: 145%; max-width: none; object-position: 66% center; transform: translate(-25%,-5%); }
    .hero-v2-shade { background: linear-gradient(180deg, rgba(4,5,6,.65), rgba(4,5,6,.28) 38%, rgba(4,5,6,.83)); }
    .hero-blueprint { inset: 8% 4% 5%; width: 92%; }
    .hero-v2-container { width: calc(100% - 1.5rem); padding-top: 5.5rem; padding-bottom: 1rem; }
    .hero-v2-top p:last-child { display: none; }
    .hero-v2-center { align-self: end; padding-bottom: 2.5rem; }
    .hero-v2-eyebrow { font-size: .57rem; }
    .hero-wordmark { font-size: clamp(4.7rem,24.2vw,7.1rem); }
    .hero-v2-bottom { grid-template-columns: 1fr; gap: 1.3rem; }
    .hero-v2-statement { font-size: .86rem; }
    .hero-v2-actions { display: grid; grid-template-columns: 1fr; }
    .hero-primary-link { width: 100%; }.hero-text-link { width: fit-content; }
    .home-manifesto { padding-block: 6rem; }.home-manifesto p { font-size: clamp(2.5rem,12vw,4rem); }
    .featured-home-head { grid-template-columns: 1fr; }.featured-home-head h2, .home-services-head h2, .services-intro h2, .service-process-head h2 { font-size: clamp(3.5rem,16vw,5rem); }
    .featured-home-aside { display: grid; grid-template-columns: 1fr; }
    .featured-slide { width: 88vw; }.featured-slide-image { aspect-ratio: 4/5; }.featured-slide-copy { grid-template-columns: 1fr; }.featured-slide-copy dl { grid-template-columns: repeat(2,1fr); }
    .principles-pin { min-height: auto; padding-block: 6rem 2rem; }.principles-heading h2 { font-size: clamp(3.4rem,15vw,5rem); }
    .principles-track { padding-inline: .75rem; }.principle-card, .principle-intro { width: 86vw; min-height: 420px; }.principle-icon { width: 58px; height: 58px; }
    .home-services, .service-process { grid-template-columns: 1fr; padding-block: 6rem; }.home-services-head, .service-process-head { position: static; }
    .home-service-row { grid-template-columns: 1fr auto; gap: .8rem; min-height: 135px; }.home-service-row p { grid-column: 1 / -1; grid-row: 2; }.home-service-row svg { grid-column: 2; grid-row: 1; }
    .home-closing h2, .services-closing h2 { font-size: clamp(3.5rem,16vw,5.6rem); }
    .services-hero { min-height: 100svh; padding-top: 5.5rem; }.services-hero-grid { grid-template-columns: repeat(2,1fr); }.services-hero-grid span:nth-child(n+3) { display: none; }
    .services-hero h1 { font-size: clamp(3.8rem,17vw,6rem); }.services-hero-bottom { align-items: flex-start; flex-direction: column; gap: 1.2rem; }
    .services-intro { padding-block: 6rem; }
    .service-chapter { min-height: auto; grid-template-columns: 1fr; gap: 2.5rem; padding-block: 6rem; }.service-chapter-meta { min-height: 100px; flex-direction: row; }.service-chapter-main h2 { font-size: clamp(3rem,14vw,4.7rem); }.service-deliverables { grid-column: 1; }
    .service-process-list li { grid-template-columns: 2.5rem 1fr; }
    .credit-studio-copy, .credit-form { padding: 5rem .75rem; }.credit-form { padding-top: 3rem; }.credit-form .form-row { grid-template-columns: 1fr; }
    .studio-credit { min-height: 112px; grid-template-columns: 1fr auto; }.studio-credit span { grid-column: 1 / -1; }.studio-credit strong { font-size: 1.7rem; }
    .footer { padding-bottom: 5.5rem; }.footer-bottom a { display: none; }
}

@media (max-width: 1050px) and (max-height: 520px) {
    .navbar-mobile { padding-top: 5.3rem; padding-bottom: 1rem; }
    .navbar-mobile-link { min-height: 48px; padding-block: .45rem; font-size: clamp(2.15rem,8vw,3.2rem); }
    .mobile-menu-foot { margin-top: 1.25rem; flex-direction: row; }
}

@media (prefers-reduced-motion: reduce) {
    .blueprint-line { stroke-dashoffset: 0; }
    .page-transition { display: none; }
    .hero-v2-media img { transform: none; }
    .property-carousel, .principles-viewport { scroll-behavior: auto; }
}

/* Collection, property and booking experience */
.sr-only { 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; }
.section-kicker { margin: 0 0 1rem; color: var(--muted); font-size: .61rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.collection-hero { position: relative; min-height: 92svh; overflow: hidden; color: var(--white); background: var(--ink); }
.collection-hero-grid, .booking-hero-grid, .confirmation-cover-grid { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(4,1fr); pointer-events: none; }
.collection-hero-grid span, .booking-hero-grid span, .confirmation-cover-grid span { border-left: 1px solid rgba(255,255,255,.12); }
.collection-hero-grid span:last-child, .confirmation-cover-grid span:last-child { border-right: 1px solid rgba(255,255,255,.12); }
.collection-hero-inner { position: relative; z-index: 1; width: var(--container); min-height: 92svh; margin-inline: auto; display: grid; grid-template-rows: auto 1fr auto; padding: 7.2rem 0 2rem; }
.collection-hero-meta, .collection-hero-foot { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-top: 1rem; border-top: 1px solid rgba(255,255,255,.36); }
.collection-hero-meta p { margin: 0; color: rgba(255,255,255,.56); font-size: .58rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.collection-hero-copy { align-self: center; }
.collection-hero-copy .section-kicker { color: rgba(255,255,255,.48); }
.collection-hero h1 { margin: 0; font: 400 clamp(4.5rem,10vw,10.5rem)/.83 var(--font-display); letter-spacing: -.058em; }
.collection-hero h1 em, .collection-note em, .detail-intro h2 em, .similar-heading h2 em, .booking-hero h1 em, .confirmation-cover h1 em, .confirmation-next h2 em { font-weight: 400; }
.collection-hero-foot { align-items: end; }
.collection-hero-foot > p { max-width: 610px; margin: 0; color: rgba(255,255,255,.62); }
.collection-down { display: inline-flex; align-items: center; gap: .8rem; min-height: 44px; padding-bottom: .35rem; border-bottom: 1px solid rgba(255,255,255,.55); font-size: .64rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.collection-down svg { width: 17px; height: 17px; }

.collection-catalog { width: var(--container); margin-inline: auto; padding: clamp(6rem,11vw,11rem) 0; }
.collection-toolbar { display: grid; grid-template-columns: .72fr 1.28fr; gap: clamp(3rem,8vw,9rem); align-items: end; margin-bottom: clamp(4rem,8vw,8rem); }
.collection-toolbar h2 { margin: 0; font: 400 clamp(3.5rem,6.7vw,7rem)/.88 var(--font-display); letter-spacing: -.05em; }
.collection-filters { display: grid; grid-template-columns: 1.3fr .8fr auto auto; gap: 1px; align-items: end; background: var(--line); border: 1px solid var(--line); }
.collection-field { min-width: 0; padding: .75rem 1rem; background: var(--paper); }
.collection-field label { display: block; margin-bottom: .15rem; color: var(--muted); font-size: .56rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.collection-field input, .collection-field select { min-height: 40px; padding: 0; background: transparent; border: 0; box-shadow: none; }
.collection-field input:focus, .collection-field select:focus { box-shadow: none; }
.collection-search > div { display: grid; grid-template-columns: 20px 1fr; align-items: center; gap: .55rem; }
.collection-search svg { width: 17px; }
.collection-filter-submit, .collection-filter-clear { min-width: 58px; height: 100%; min-height: 72px; display: flex; align-items: center; justify-content: center; gap: .7rem; padding: .7rem 1.1rem; color: var(--white); background: var(--ink); border: 0; font-size: .62rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.collection-filter-submit svg, .collection-filter-clear svg { width: 17px; height: 17px; }
.collection-filter-clear { color: var(--ink); background: var(--white); }
.collection-grid { display: grid; grid-template-columns: repeat(12,1fr); gap: clamp(4rem,8vw,8rem) clamp(1.2rem,3vw,3rem); }
.collection-property { grid-column: span 6; min-width: 0; }
.collection-property:nth-child(3n) { grid-column: 3 / span 8; }
.collection-property-media { position: relative; display: block; aspect-ratio: 4/3; overflow: hidden; background: #d8d8d3; }
.collection-property:nth-child(3n) .collection-property-media { aspect-ratio: 16/9; }
.collection-property-media::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(0,0,0,.28), transparent 35%, rgba(0,0,0,.2)); pointer-events: none; }
.collection-property-media > img { width: 100%; height: 100%; object-fit: cover; transition: transform 900ms var(--ease-out); }
.collection-property-index, .collection-property-type { position: absolute; z-index: 2; top: 1rem; color: var(--white); font-size: .58rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.collection-property-index { left: 1rem; }.collection-property-type { right: 1rem; }
.collection-property-open { position: absolute; z-index: 2; right: 1rem; bottom: 1rem; width: 50px; height: 50px; display: grid; place-items: center; color: var(--ink); background: var(--white); transition: transform 220ms var(--ease-out), color 180ms ease, background-color 180ms ease; }
.collection-property-open svg { width: 18px; height: 18px; }
.collection-property-copy { padding-top: 1.2rem; }
.collection-property-copy > div:first-child { min-height: 86px; }
.collection-property-location { margin: 0 0 .35rem; color: var(--muted); font-size: .7rem; }
.collection-property h3 { margin: 0; font: 400 clamp(1.9rem,3.1vw,3.3rem)/.98 var(--font-display); letter-spacing: -.035em; }
.collection-property-copy dl { display: flex; flex-wrap: wrap; gap: 1px; margin: 1.2rem 0 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.collection-property-copy dl div { min-width: 110px; flex: 1; padding: .75rem .8rem .75rem 0; }
.collection-property-copy dt { color: var(--muted); font-size: .53rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.collection-property-copy dd { margin: .18rem 0 0; font-size: .72rem; font-weight: 600; }
.collection-property-price { min-height: 62px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.collection-property-price > span { font: 400 1.35rem/1 var(--font-display); }
.collection-property-price small { color: var(--muted); font: 600 .5rem/1 var(--font-primary); letter-spacing: .1em; }
.collection-property-price a { padding-bottom: .25rem; border-bottom: 1px solid var(--ink); font-size: .57rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.collection-empty { display: grid; grid-template-columns: .25fr 1fr auto; gap: clamp(2rem,6vw,6rem); align-items: end; padding: clamp(3rem,6vw,6rem) 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.collection-empty > span { color: var(--fog); font: 400 clamp(5rem,10vw,10rem)/.7 var(--font-display); }
.collection-empty h2 { margin: 0 0 1rem; font: 400 clamp(2.6rem,5vw,5rem)/.92 var(--font-display); }.collection-empty div > p:last-child { max-width: 550px; color: var(--muted); }.collection-empty > div:last-child { display: grid; gap: .6rem; }
.collection-note { padding: clamp(7rem,14vw,14rem) max(1.5rem,calc((100vw - 1440px)/2)); color: var(--white); background: var(--ink); }
.collection-note .section-kicker { color: rgba(255,255,255,.45); }
.collection-note > p:nth-child(2) { max-width: 1200px; margin: 0 0 3rem; font: 400 clamp(3.8rem,8.8vw,9rem)/.86 var(--font-display); letter-spacing: -.055em; }
.collection-note a { display: inline-flex; align-items: center; gap: .8rem; min-height: 48px; padding-bottom: .4rem; border-bottom: 1px solid rgba(255,255,255,.55); font-size: .65rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }.collection-note a svg { width: 18px; }

/* Property detail */
.detail-gallery { position: relative; min-height: 100svh; overflow: hidden; color: var(--white); background: var(--ink); }
.detail-gallery-stage, .detail-gallery-slide, .detail-gallery-shade { position: absolute; inset: 0; }
.detail-gallery-slide { margin: 0; opacity: 0; visibility: hidden; transition: opacity 700ms var(--ease-out), visibility 700ms; }
.detail-gallery-slide.is-active { opacity: 1; visibility: visible; }
.detail-gallery-slide img { width: 100%; height: 100%; object-fit: cover; }
.detail-gallery-shade { z-index: 1; background: linear-gradient(180deg, rgba(0,0,0,.58), rgba(0,0,0,.08) 38%, rgba(0,0,0,.73)); pointer-events: none; }
.detail-gallery-grid { position: absolute; z-index: 2; inset: 0; display: grid; grid-template-columns: repeat(3,1fr); pointer-events: none; }.detail-gallery-grid span { border-left: 1px solid rgba(255,255,255,.16); }.detail-gallery-grid span:last-child { border-right: 1px solid rgba(255,255,255,.16); }
.detail-gallery-placeholder { position: absolute; inset: 0; display: grid; place-items: center; align-content: center; gap: 1rem; background: #202020; }.detail-gallery-placeholder img { width: 68px; filter: invert(1); opacity: .6; }.detail-gallery-placeholder span { font-size: .6rem; letter-spacing: .13em; text-transform: uppercase; }
.detail-gallery-bar, .detail-gallery-copy, .detail-gallery-controls, .detail-gallery-single-expand { position: absolute; z-index: 3; }
.detail-gallery-bar { top: 7.2rem; right: max(1.5rem,calc((100vw - 1440px)/2)); left: max(1.5rem,calc((100vw - 1440px)/2)); display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-top: 1rem; border-top: 1px solid rgba(255,255,255,.38); }
.detail-gallery-bar a { display: inline-flex; align-items: center; gap: .65rem; min-height: 44px; font-size: .61rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }.detail-gallery-bar a svg { width: 17px; }.detail-gallery-bar p { margin: 0; color: rgba(255,255,255,.58); font-size: .58rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.detail-gallery-copy { right: max(1.5rem,calc((100vw - 1440px)/2)); bottom: clamp(7rem,13vh,9rem); left: max(1.5rem,calc((100vw - 1440px)/2)); }.detail-gallery-copy p { margin: 0 0 .8rem; color: rgba(255,255,255,.65); font-size: .68rem; letter-spacing: .08em; }.detail-gallery-copy h1 { max-width: 1100px; margin: 0; font: 400 clamp(4rem,8.5vw,9rem)/.85 var(--font-display); letter-spacing: -.055em; }
.detail-gallery-controls { right: max(1.5rem,calc((100vw - 1440px)/2)); bottom: 1.8rem; display: flex; align-items: center; gap: 1px; }.detail-gallery-controls button, .detail-gallery-single-expand { width: 48px; height: 48px; display: grid; place-items: center; padding: 0; color: var(--white); background: rgba(10,10,10,.46); border: 1px solid rgba(255,255,255,.35); backdrop-filter: blur(12px); }.detail-gallery-controls button svg, .detail-gallery-single-expand svg { width: 18px; height: 18px; }.detail-gallery-controls p { min-width: 88px; height: 48px; display: grid; place-items: center; margin: 0; color: var(--white); background: rgba(10,10,10,.46); border-block: 1px solid rgba(255,255,255,.35); font-size: .6rem; font-weight: 700; letter-spacing: .1em; }.detail-gallery-controls .detail-gallery-expand { margin-left: .5rem; }.detail-gallery-single-expand { right: max(1.5rem,calc((100vw - 1440px)/2)); bottom: 1.8rem; width: auto; display: flex; gap: .6rem; padding: 0 1rem; font-size: .58rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.detail-thumbnails { width: var(--container); margin: 0 auto; display: flex; gap: 1px; padding: 1px 0; overflow-x: auto; scrollbar-width: none; }.detail-thumbnails::-webkit-scrollbar { display:none; }.detail-thumbnail { position: relative; width: 132px; aspect-ratio: 16/10; flex: 0 0 auto; padding: 0; overflow: hidden; background: #d8d8d3; border: 0; opacity: .44; transition: opacity 180ms ease; }.detail-thumbnail.is-active { opacity: 1; }.detail-thumbnail.is-active::after { content:""; position:absolute; inset:0; border: 2px solid var(--ink); }.detail-thumbnail img { width: 100%; height: 100%; object-fit: cover; }
.detail-overview { width: var(--container); margin-inline: auto; display: grid; grid-template-columns: minmax(0,1.35fr) minmax(310px,.52fr); gap: clamp(3rem,9vw,10rem); padding: clamp(6rem,11vw,11rem) 0; align-items: start; }
.detail-intro { display: grid; grid-template-columns: .32fr .68fr; column-gap: clamp(2rem,5vw,6rem); }.detail-intro .section-kicker { grid-column: 1; }.detail-intro h2, .detail-intro .detail-description { grid-column: 2; }.detail-intro h2 { margin: 0 0 2rem; font: 400 clamp(3.3rem,6.3vw,6.3rem)/.88 var(--font-display); letter-spacing: -.05em; }.detail-description { max-width: 720px; color: var(--muted); font-size: clamp(1rem,1.4vw,1.12rem); }.detail-description p:last-child { margin-bottom: 0; }
.detail-facts { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; margin: clamp(4rem,8vw,8rem) 0; background: var(--line); border: 1px solid var(--line); }.detail-facts div { min-height: 190px; display: flex; flex-direction: column; justify-content: space-between; padding: 1.2rem; background: var(--paper); }.detail-facts dt { color: var(--muted); font-size: .56rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }.detail-facts dt svg { width: 28px; height: 28px; margin-bottom: .8rem; stroke-width: 1.15; }.detail-facts dd { margin: 0; font: 400 clamp(2.3rem,4vw,4rem)/1 var(--font-display); }.detail-facts dd small { color: var(--muted); font: 600 .65rem/1 var(--font-primary); }
.detail-terms { margin-bottom: clamp(4rem,8vw,8rem); border-top: 1px solid var(--line); }.detail-terms .section-kicker { padding-top: 1rem; }.detail-terms > div { display: grid; grid-template-columns: .35fr .65fr; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--line); }.detail-terms span { color: var(--muted); font-size: .62rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }.detail-terms strong { font-size: .8rem; font-weight: 600; }
.detail-location { display: grid; grid-template-columns: 1fr .75fr; min-height: 320px; color: var(--white); background: var(--ink); }.detail-location > div { padding: clamp(2rem,5vw,5rem); }.detail-location .section-kicker { color: rgba(255,255,255,.46); }.detail-location h2 { margin: 0 0 1rem; font: 400 clamp(2.5rem,4vw,4rem)/.9 var(--font-display); }.detail-location > div > p:last-child { color: rgba(255,255,255,.55); }.detail-location > a { display: flex; flex-direction: column; justify-content: space-between; align-items: end; padding: 1.5rem; border-left: 1px solid rgba(255,255,255,.2); background: linear-gradient(145deg, transparent 49.8%,rgba(255,255,255,.14) 50%,transparent 50.2%); }.detail-location > a span { align-self: start; color: rgba(255,255,255,.45); font-size: .58rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }.detail-location > a svg { width: 36px; height: 36px; }
.detail-inquiry { position: sticky; top: 112px; padding: 1.5rem; color: var(--white); background: var(--ink); }.detail-inquiry-label { margin: 0 0 .8rem; color: rgba(255,255,255,.45); font-size: .58rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }.detail-inquiry-price { margin: 0 0 2rem; padding-bottom: 1.4rem; border-bottom: 1px solid rgba(255,255,255,.22); font: 400 clamp(2.4rem,4.2vw,4rem)/.9 var(--font-display); }.detail-inquiry-price small { color: rgba(255,255,255,.5); font: 600 .58rem/1 var(--font-primary); }.detail-inquiry-copy { margin-bottom: 2rem; color: rgba(255,255,255,.58); font-size: .82rem; }.detail-primary-action, .detail-secondary-action { min-height: 56px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem 1rem; border: 1px solid var(--white); font-size: .63rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }.detail-primary-action { color: var(--ink); background: var(--white); }.detail-secondary-action { margin-top: 1px; color: var(--white); }.detail-primary-action svg, .detail-secondary-action svg { width: 18px; height: 18px; }.detail-whatsapp { display: block; margin-top: 1.3rem; padding-bottom: .35rem; border-bottom: 1px solid rgba(255,255,255,.35); color: rgba(255,255,255,.72); font-size: .6rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }.detail-inquiry-note { margin: 2.5rem 0 0; color: rgba(255,255,255,.35); font-size: .55rem; letter-spacing: .08em; text-transform: uppercase; }
.similar-properties { padding: clamp(6rem,11vw,11rem) max(1.5rem,calc((100vw - 1440px)/2)); border-top: 1px solid var(--line); }.similar-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: clamp(3rem,6vw,6rem); }.similar-heading h2 { margin: 0; font: 400 clamp(3.3rem,6vw,6rem)/.88 var(--font-display); letter-spacing: -.05em; }.similar-heading > a { display: flex; align-items: center; gap: .7rem; padding-bottom: .35rem; border-bottom: 1px solid var(--ink); font-size: .58rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }.similar-heading > a svg { width: 17px; }.similar-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: clamp(1rem,2.5vw,2.5rem); }.similar-card-image { position: relative; display: block; aspect-ratio: 4/3; overflow: hidden; background: #d8d8d3; }.similar-card-image > img { width: 100%; height: 100%; object-fit: cover; transition: transform 800ms var(--ease-out); }.similar-card-image > span { position: absolute; top: .8rem; left: .8rem; padding: .35rem .5rem; color: var(--white); background: rgba(10,10,10,.7); font-size: .52rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }.similar-card > div { padding-top: 1rem; }.similar-card p { margin: 0 0 .25rem; color: var(--muted); font-size: .65rem; }.similar-card h3 { margin: 0 0 1rem; font: 400 1.8rem/1 var(--font-display); }.similar-card strong { display: block; padding-top: .8rem; border-top: 1px solid var(--line); font: 400 1.1rem/1 var(--font-display); }
.gallery-dialog { width: 100vw; max-width: none; height: 100dvh; max-height: none; margin: 0; padding: 0; color: var(--white); background: rgba(5,5,5,.96); border: 0; }.gallery-dialog::backdrop { background: rgba(0,0,0,.82); }.gallery-dialog[open] { display: grid; place-items: center; }.gallery-dialog > img { width: min(88vw,1500px); height: min(82vh,1000px); object-fit: contain; }.gallery-dialog-close { position: fixed; z-index: 2; top: 1.2rem; right: 1.2rem; width: 48px; height: 48px; display: grid; place-items: center; padding: 0; color: var(--white); background: transparent; border: 1px solid rgba(255,255,255,.35); }.gallery-dialog-close svg { width: 19px; }.gallery-dialog p { position: fixed; bottom: 1rem; margin: 0; color: rgba(255,255,255,.55); font-size: .6rem; font-weight: 700; letter-spacing: .1em; }
.gallery-dialog-prev, .gallery-dialog-next { position: fixed; z-index: 2; top: 50%; width: 48px; height: 48px; display: grid; place-items: center; padding: 0; color: var(--white); background: rgba(10,10,10,.46); border: 1px solid rgba(255,255,255,.35); backdrop-filter: blur(12px); transform: translateY(-50%); transition: color 180ms ease, background-color 180ms ease; }.gallery-dialog-prev { left: 1.2rem; }.gallery-dialog-next { right: 1.2rem; }.gallery-dialog-prev svg, .gallery-dialog-next svg { width: 18px; height: 18px; }

/* Appointment flow */
.booking-hero { position: relative; min-height: 74svh; overflow: hidden; color: var(--white); background: var(--ink); }.booking-hero-media, .booking-hero-shade { position: absolute; inset: 0; }.booking-hero-media img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); opacity: .34; }.booking-hero-shade { background: linear-gradient(90deg, rgba(0,0,0,.88), rgba(0,0,0,.36)); }.booking-hero-grid { grid-template-columns: repeat(3,1fr); }.booking-hero-inner { position: relative; z-index: 1; width: var(--container); min-height: 74svh; margin-inline: auto; display: grid; grid-template-rows: auto 1fr auto; padding: 7.2rem 0 2rem; }.booking-hero-top { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-top: 1rem; border-top: 1px solid rgba(255,255,255,.36); }.booking-hero-top a { display: flex; align-items: center; gap: .65rem; min-height: 44px; font-size: .6rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }.booking-hero-top svg { width: 17px; }.booking-hero-top p { margin: 0; color: rgba(255,255,255,.5); font-size: .57rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }.booking-hero-copy { align-self: center; }.booking-hero-copy .section-kicker { color: rgba(255,255,255,.5); }.booking-hero h1 { margin: 0; font: 400 clamp(4rem,8.2vw,8.5rem)/.84 var(--font-display); letter-spacing: -.055em; }.booking-hero-note { margin: 0; padding-top: 1rem; border-top: 1px solid rgba(255,255,255,.36); color: rgba(255,255,255,.58); font-size: .65rem; }
.booking-layout { width: var(--container); margin-inline: auto; display: grid; grid-template-columns: minmax(0,1.34fr) minmax(300px,.5fr); gap: clamp(3rem,8vw,9rem); padding: clamp(6rem,11vw,11rem) 0; align-items: start; }.booking-form { min-width: 0; }.booking-form-section { padding: 0 0 clamp(4rem,7vw,7rem); margin-bottom: clamp(4rem,7vw,7rem); border-bottom: 1px solid var(--line); }.booking-section-head { display: grid; grid-template-columns: 4rem 1fr; gap: 1rem; margin-bottom: 2.5rem; }.booking-section-head > span { color: var(--muted); font-size: .6rem; font-weight: 700; letter-spacing: .1em; }.booking-section-head .section-kicker { margin-bottom: .6rem; }.booking-section-head h2 { margin: 0; font: 400 clamp(2.8rem,5vw,5rem)/.9 var(--font-display); letter-spacing: -.045em; }.booking-section-head > div > p:last-child:not(.section-kicker) { max-width: 620px; margin: 1rem 0 0; color: var(--muted); }
.booking-fields { display: grid; grid-template-columns: repeat(2,1fr); gap: 1.6rem 1rem; }.booking-field-wide { grid-column: 1 / -1; }.booking-field label { display: block; margin-bottom: .4rem; color: var(--muted); font-size: .59rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }.booking-field label span { color: var(--ink); }.booking-field .form-control, .booking-field input, .booking-field select { min-height: 56px; padding: .7rem 0; background: transparent; border-width: 0 0 1px; border-color: var(--line); }.booking-field .form-control:focus, .booking-field input:focus, .booking-field select:focus { box-shadow: none; border-color: var(--ink); }.field-error, .booking-date-error { margin-top: .45rem; color: var(--error); font-size: .67rem; }.booking-error-summary { margin-bottom: 2rem; padding: 1rem; color: var(--error); background: rgba(159,47,40,.05); border: 1px solid rgba(159,47,40,.24); }.booking-error-summary strong { display: block; }.booking-error-summary ul { padding-left: 1.1rem; }
.booking-date-fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }.booking-date-rail { display: flex; gap: 1px; padding: 1px 0; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: thin; scrollbar-color: var(--ink) var(--fog); }.booking-date { width: 132px; min-height: 158px; flex: 0 0 auto; scroll-snap-align: start; display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start; padding: 1rem; color: var(--ink); background: var(--paper); border: 1px solid var(--line); transition: color 180ms ease, background-color 180ms ease; }.booking-date span, .booking-date small { color: var(--muted); font-size: .55rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }.booking-date strong { font: 400 3.4rem/1 var(--font-display); }.booking-date.is-selected { color: var(--white); background: var(--ink); border-color: var(--ink); }.booking-date.is-selected span, .booking-date.is-selected small { color: rgba(255,255,255,.58); }.booking-time-row { display: grid; grid-template-columns: 1fr minmax(220px,.52fr); gap: 2rem; align-items: end; margin-top: 2rem; }.booking-time-row > div:first-child { padding-top: 1rem; border-top: 1px solid var(--line); }.booking-time-index { color: var(--muted); font-size: .56rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }.booking-time-row p { margin: .5rem 0 0; font: 400 1.4rem/1.1 var(--font-display); text-transform: capitalize; }.booking-no-dates { padding: clamp(2rem,5vw,5rem); color: var(--white); background: var(--ink); }.booking-no-dates > span { color: rgba(255,255,255,.45); font-size: .58rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }.booking-no-dates h3 { margin: 3rem 0 1rem; font: 400 clamp(2.2rem,4vw,4rem)/.9 var(--font-display); }.booking-no-dates p { color: rgba(255,255,255,.56); }.booking-no-dates a { display: flex; align-items: center; justify-content: space-between; margin-top: 2rem; padding: 1rem 0; border-top: 1px solid rgba(255,255,255,.25); border-bottom: 1px solid rgba(255,255,255,.25); font-size: .62rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }.booking-no-dates svg { width: 18px; }
.booking-credit-fields { margin-top: 2rem; padding-top: 2rem; border-top: 1px solid var(--line); }.booking-credit-fields[hidden], .booking-shared-fields[hidden] { display: none; }.booking-shared-fields { margin-top: 2.5rem; padding: 1.5rem; background: var(--white); border: 1px solid var(--line); }.booking-shared-fields > p { margin: 0 0 1.5rem; font: 400 1.5rem/1 var(--font-display); }.booking-submit-row { display: grid; grid-template-columns: 1fr minmax(260px,.6fr); gap: 2rem; align-items: center; }.booking-submit-row > p { max-width: 460px; margin: 0; color: var(--muted); font-size: .65rem; }.booking-submit { min-height: 60px; display: flex; align-items: center; justify-content: space-between; padding: 1rem; color: var(--white); background: var(--ink); border: 1px solid var(--ink); font-size: .64rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }.booking-submit svg { width: 18px; }.booking-submit:disabled { opacity: .45; cursor: not-allowed; }
.booking-aside { position: sticky; top: 112px; }.booking-property-card { background: var(--white); border: 1px solid var(--line); }.booking-property-image { position: relative; aspect-ratio: 4/3; overflow: hidden; background: #d8d8d3; }.booking-property-image > img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(.72); }.booking-property-image > span { position: absolute; top: .8rem; left: .8rem; padding: .35rem .5rem; color: var(--white); background: rgba(10,10,10,.75); font-size: .52rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }.booking-property-card > div:last-child { padding: 1.2rem; }.booking-property-card p { margin: 0 0 .4rem; color: var(--muted); font-size: .65rem; }.booking-property-card h2 { margin: 0 0 1.5rem; font: 400 2rem/1 var(--font-display); }.booking-property-card strong { display: block; padding-top: 1rem; border-top: 1px solid var(--line); font: 400 1.25rem/1 var(--font-display); }.booking-assurance { margin-top: 1px; padding: 1.2rem; color: var(--white); background: var(--ink); }.booking-assurance .section-kicker { color: rgba(255,255,255,.42); }.booking-assurance ol { list-style: none; }.booking-assurance li { display: grid; grid-template-columns: 2.2rem 1fr; gap: .5rem; padding: .9rem 0; border-top: 1px solid rgba(255,255,255,.2); color: rgba(255,255,255,.67); font-size: .7rem; }.booking-assurance li span { color: rgba(255,255,255,.35); font-size: .53rem; font-weight: 700; }.booking-help { display: flex; flex-direction: column; gap: .2rem; margin-top: 1rem; padding: 1rem 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); color: var(--muted); font-size: .62rem; }.booking-help strong { color: var(--ink); font: 400 1.25rem/1 var(--font-display); }

/* Confirmation */
.confirmation-page-v2 { background: var(--paper); }.confirmation-cover { position: relative; min-height: 88svh; overflow: hidden; color: var(--white); background: var(--ink); }.confirmation-cover-inner { position: relative; z-index: 1; width: var(--container); min-height: 88svh; margin-inline: auto; display: grid; grid-template-columns: .35fr 1fr; grid-template-rows: auto 1fr; column-gap: clamp(2rem,7vw,8rem); padding: 7.3rem 0 2rem; }.confirmation-location { grid-column: 1 / -1; margin: 0; padding-top: 1rem; border-top: 1px solid rgba(255,255,255,.35); color: rgba(255,255,255,.5); font-size: .58rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }.confirmation-status { align-self: center; display: flex; align-items: center; gap: 1rem; }.confirmation-status svg { width: 86px; height: 86px; fill: none; stroke: var(--white); stroke-width: 1; }.confirmation-status .confirmation-check { stroke-width: 2; stroke-dasharray: 72; stroke-dashoffset: 0; }.confirmation-status span { color: rgba(255,255,255,.55); font-size: .56rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }.confirmation-cover-copy { align-self: center; }.confirmation-cover-copy .section-kicker { color: rgba(255,255,255,.48); }.confirmation-cover h1 { margin: 0 0 2rem; font: 400 clamp(4.5rem,9vw,9.5rem)/.83 var(--font-display); letter-spacing: -.06em; }.confirmation-cover-copy > p:last-child { max-width: 620px; color: rgba(255,255,255,.6); }.confirmation-content { width: var(--container); margin-inline: auto; display: grid; grid-template-columns: minmax(0,1.02fr) minmax(0,.98fr); gap: clamp(3rem,9vw,10rem); padding: clamp(6rem,11vw,11rem) 0; align-items: start; }
.confirmation-ticket { color: var(--ink); background: var(--white); border: 1px solid var(--line); }.confirmation-ticket-head { min-height: 58px; display: flex; align-items: center; justify-content: space-between; padding: 1rem; color: var(--white); background: var(--ink); }.confirmation-ticket-head p, .confirmation-ticket-head span { margin: 0; font-size: .55rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }.confirmation-ticket-head span { color: rgba(255,255,255,.5); }.confirmation-property { display: grid; grid-template-columns: 160px 1fr; border-bottom: 1px solid var(--line); }.confirmation-property > div { min-height: 155px; overflow: hidden; background: #d8d8d3; }.confirmation-property img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(.7); }.confirmation-property section { align-self: center; padding: 1.2rem; }.confirmation-property p { margin: 0 0 .3rem; color: var(--muted); font-size: .55rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }.confirmation-property h2 { margin: 0 0 .5rem; font: 400 2rem/1 var(--font-display); }.confirmation-property span { color: var(--muted); font-size: .65rem; }.confirmation-details { margin: 0; padding: 1.2rem; }.confirmation-details div { display: grid; grid-template-columns: .38fr .62fr; gap: 1rem; padding: .78rem 0; border-bottom: 1px solid var(--line); }.confirmation-details dt { color: var(--muted); font-size: .55rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }.confirmation-details dd { margin: 0; font-size: .72rem; font-weight: 600; text-align: right; overflow-wrap: anywhere; }.confirmation-ticket-note { margin: 0; padding: 1.2rem; color: var(--muted); background: var(--gray-50); border-top: 1px solid var(--line); font-size: .62rem; }.confirmation-next { padding-top: 1rem; }.confirmation-next h2 { margin: 0 0 3rem; font: 400 clamp(3.4rem,6vw,6rem)/.88 var(--font-display); letter-spacing: -.05em; }.confirmation-next ol { list-style: none; border-top: 1px solid var(--line); }.confirmation-next li { display: grid; grid-template-columns: 3rem 1fr; gap: 1rem; padding: 1.3rem 0; border-bottom: 1px solid var(--line); }.confirmation-next li > span { color: var(--muted); font-size: .55rem; font-weight: 700; }.confirmation-next h3 { margin: 0 0 .45rem; font: 400 1.5rem/1 var(--font-display); }.confirmation-next li p { margin: 0; color: var(--muted); font-size: .74rem; }.confirmation-actions { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 2.5rem; }.confirmation-help { margin-top: 2rem; color: var(--muted); font-size: .62rem; }.confirmation-help a { color: var(--ink); border-bottom: 1px solid var(--line); }

/* Global restrained interaction layer */
@media (hover:hover) and (pointer:fine) {
    .navbar-cta:hover, .booking-submit:not(:disabled):hover { transform: translateY(-2px); }
    .btn:hover, [class*="btn-"]:hover { transform: translateY(-2px); }
    .collection-down:hover svg, .collection-note a:hover svg, .similar-heading > a:hover svg, .detail-primary-action:hover svg, .detail-secondary-action:hover svg, .booking-no-dates a:hover svg { transform: translate(2px,-2px); }
    .collection-property:hover .collection-property-media > img, .similar-card:hover .similar-card-image > img { transform: scale(1.03); }
    .collection-property:hover .collection-property-open { color: var(--white); background: var(--ink); transform: translate(-2px,-2px); }
    .collection-property h3 a, .similar-card h3 a { background-image: linear-gradient(currentColor,currentColor); background-position: 100% 100%; background-repeat: no-repeat; background-size: 0 1px; transition: background-size 260ms var(--ease-out); }
    .collection-property:hover h3 a, .similar-card:hover h3 a { background-position: 0 100%; background-size: 100% 1px; }
    .collection-filter-submit:hover { background: var(--ink-soft); }.collection-filter-clear:hover { color: var(--white); background: var(--ink); }
    .detail-gallery-controls button:hover, .detail-gallery-single-expand:hover, .gallery-dialog-prev:hover, .gallery-dialog-next:hover { color: var(--ink); background: var(--white); }
    .detail-thumbnail:hover { opacity: .8; }.detail-primary-action:hover { color: var(--white); background: var(--ink); }.detail-secondary-action:hover { color: var(--ink); background: var(--white); }
    .booking-date:not(.is-selected):hover { background: var(--white); }.booking-property-image:hover > img { filter: grayscale(.15); transform: scale(1.025); }.booking-property-image > img { transition: filter 450ms ease, transform 800ms var(--ease-out); }
    .footer-links a:hover { color: var(--white); transform: translateX(3px); }.footer-action:hover svg, .studio-credit:hover svg { transform: translate(2px,-2px); }
    .footer-links a, .footer-action svg, .studio-credit svg, .collection-down svg, .collection-note a svg, .similar-heading > a svg, .detail-primary-action svg, .detail-secondary-action svg, .booking-no-dates a svg { transition: transform 180ms var(--ease-out), color 180ms ease; }
}

@media (max-width: 1050px) {
    .collection-toolbar { grid-template-columns: 1fr; }.collection-filters { grid-template-columns: 1fr 1fr auto auto; }
    .detail-overview, .booking-layout { grid-template-columns: 1fr; }.detail-inquiry, .booking-aside { position: static; }.booking-aside { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; }.booking-help { grid-column: 1 / -1; }
    .detail-intro { grid-template-columns: 1fr; }.detail-intro .section-kicker, .detail-intro h2, .detail-intro .detail-description { grid-column: 1; }
    .confirmation-content { gap: 3rem; }
}

@media (max-width: 720px) {
    .collection-hero-inner, .booking-hero-inner, .confirmation-cover-inner { width: calc(100% - 1.5rem); padding-top: 5.5rem; }
    .collection-hero, .collection-hero-inner { min-height: 100svh; }.collection-hero-grid, .confirmation-cover-grid { grid-template-columns: repeat(2,1fr); }.collection-hero-grid span:nth-child(n+3), .confirmation-cover-grid span:nth-child(n+3) { display:none; }
    .collection-hero h1 { font-size: clamp(4.1rem,20vw,6.5rem); }.collection-hero-meta p:last-child { display: none; }.collection-hero-foot { align-items: flex-start; flex-direction: column; }.collection-hero-foot > p { font-size: .82rem; }
    .collection-catalog { width: calc(100% - 1.5rem); padding-block: 6rem; }.collection-toolbar { gap: 2.5rem; margin-bottom: 4.5rem; }.collection-filters { grid-template-columns: 1fr auto; }.collection-field { grid-column: 1 / -1; }.collection-filter-submit { grid-column: 1; }.collection-filter-clear { grid-column: 2; }.collection-grid { display: block; }.collection-property, .collection-property:nth-child(3n) { margin-bottom: 5rem; }.collection-property-media, .collection-property:nth-child(3n) .collection-property-media { aspect-ratio: 4/5; }.collection-property-copy > div:first-child { min-height: auto; }.collection-property h3 { font-size: 2.4rem; }.collection-empty { grid-template-columns: 1fr; }.collection-empty > span { font-size: 7rem; }.collection-empty > div:last-child { width: 100%; }.collection-note { padding-inline: .75rem; }.collection-note > p:nth-child(2) { font-size: clamp(3.5rem,16vw,5.3rem); }
    .detail-gallery { min-height: 100svh; }.detail-gallery-grid { grid-template-columns: repeat(2,1fr); }.detail-gallery-grid span:last-child { display:none; }.detail-gallery-bar { top: 5.4rem; right: .75rem; left: .75rem; }.detail-gallery-bar p { display:none; }.detail-gallery-copy { right:.75rem; bottom: 8rem; left:.75rem; }.detail-gallery-copy h1 { font-size: clamp(3.8rem,16vw,6rem); }.detail-gallery-controls { right: .75rem; bottom: 1rem; }.detail-gallery-single-expand { right: .75rem; bottom: 1rem; }.detail-thumbnails { width: calc(100% - 1.5rem); }.detail-overview { width: calc(100% - 1.5rem); padding-block: 6rem; }.detail-intro h2 { font-size: clamp(3.2rem,14vw,4.7rem); }.detail-facts { grid-template-columns: repeat(2,1fr); }.detail-facts div { min-height: 155px; }.detail-terms > div { grid-template-columns: 1fr; gap: .35rem; }.detail-location { grid-template-columns: 1fr; }.detail-location > a { min-height: 170px; border-top: 1px solid rgba(255,255,255,.2); border-left:0; }.similar-properties { padding-inline: .75rem; }.similar-heading { align-items:flex-start; flex-direction:column; }.similar-heading h2 { font-size: clamp(3.2rem,14vw,4.7rem); }.similar-grid { grid-template-columns:1fr; gap: 3.5rem; }
    .booking-hero, .booking-hero-inner { min-height: 82svh; }.booking-hero-top p { display:none; }.booking-hero h1 { font-size: clamp(3.8rem,17vw,5.8rem); }.booking-layout { width: calc(100% - 1.5rem); padding-block:6rem; }.booking-section-head { grid-template-columns: 2.2rem 1fr; }.booking-section-head h2 { font-size: clamp(2.8rem,13vw,4rem); }.booking-fields, .booking-time-row, .booking-submit-row { grid-template-columns:1fr; }.booking-date { width: 116px; min-height: 145px; }.booking-aside { grid-template-columns:1fr; }.booking-help { grid-column:1; }.booking-submit { width:100%; }
    .confirmation-cover, .confirmation-cover-inner { min-height:100svh; }.confirmation-cover-inner { grid-template-columns:1fr; }.confirmation-status { align-self:end; margin-top:4rem; }.confirmation-cover-copy { align-self:center; }.confirmation-cover h1 { font-size: clamp(4rem,18vw,6.2rem); }.confirmation-content { width: calc(100% - 1.5rem); grid-template-columns:1fr; padding-block:6rem; }.confirmation-property { grid-template-columns: 110px 1fr; }.confirmation-details div { grid-template-columns:1fr; gap:.2rem; }.confirmation-details dd { text-align:left; }.confirmation-next h2 { font-size: clamp(3.4rem,15vw,4.8rem); }.confirmation-actions { display:grid; }.confirmation-actions a { width:100%; }
}

@media (prefers-reduced-motion: reduce) {
    .detail-gallery-slide { transition: none; }
    .confirmation-status .confirmation-check { stroke-dashoffset: 0; }
}

/* Footer signature refinement */
.footer-wordmark { width: 100%; display: flex; align-items: center; gap: 0; padding: clamp(3rem,6vw,6rem) 0 2rem; overflow: hidden; border-bottom: 1px solid rgba(255,255,255,.22); color: var(--white); font: 400 clamp(5rem,15.8vw,16rem)/.72 var(--font-display); letter-spacing: -.07em; white-space: nowrap; }
.footer-wordmark img { width: auto; height: .87em; margin-right: .025em; filter: invert(1); transform: translateY(-.012em); }
.footer-grid { grid-template-columns: 1.5fr repeat(3,1fr); padding-top: 3.5rem; }
.studio-credit { width: min(100%,460px); min-height: 72px; grid-template-columns: 1fr auto; margin-top: 1rem; padding: 1rem; }
.studio-credit span { grid-column: 1 / -1; }.studio-credit strong { font-size: clamp(1.35rem,2vw,1.85rem); }.studio-credit svg { align-self: end; }
.footer-bottom { margin-top: 1rem; }
@media (hover:hover) and (pointer:fine) { .footer-wordmark:hover img { transform: translateY(-.012em) scale(.985); }.footer-wordmark img { transition: transform 300ms var(--ease-out); } }
@media (max-width:720px) { .footer-wordmark { padding-top:4rem; font-size: clamp(4.5rem,23.5vw,7rem); }.footer-grid { grid-template-columns:repeat(2,1fr); }.footer-brand { grid-column:1 / -1; }.studio-credit { min-height:82px; } }

/* Final usability pass: navigation, discovery, mapping and native scroll */
html {
    scroll-padding-top: 96px;
    scrollbar-width: thin;
    scrollbar-color: #686863 var(--paper);
}
* { scrollbar-width: thin; scrollbar-color: #686863 transparent; }
::-webkit-scrollbar { width: 11px; height: 11px; }
::-webkit-scrollbar-track { background: var(--paper); }
::-webkit-scrollbar-thumb { background: #686863; border: 3px solid var(--paper); }
::-webkit-scrollbar-thumb:hover { background: var(--ink); }

.loader-mark { font-size: clamp(4.5rem,12vw,11rem); }
.loader-mark img { height: .86em; flex: 0 0 auto; }
.loader-mark span { font-size: 1em; }

.collection-filters { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(360px,.8fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.collection-search-command,.collection-type-command { min-width: 0; padding: 1rem; background: var(--white); }
.collection-search-command > label,.collection-filter-heading > span { display: block; margin-bottom: .65rem; color: var(--muted); font-size: .55rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.collection-search-command > div { display: grid; grid-template-columns: 22px minmax(0,1fr) auto; gap: .7rem; align-items: center; min-height: 50px; border-bottom: 1px solid var(--ink); }
.collection-search-command > div:focus-within { outline: 2px solid var(--ink); outline-offset: 4px; }
.collection-search-command > div > svg { width: 18px; fill: none; stroke: currentColor; stroke-width: 1.5; }
.collection-search-command input { min-width: 0; height: 48px; padding: 0; background: transparent; border: 0; outline: 0; font-size: .84rem; }
.collection-search-command input::placeholder { color: #8b8b85; }
.collection-search-command button { min-height: 42px; display: inline-flex; align-items: center; gap: .55rem; padding: 0 .8rem; color: var(--white); background: var(--ink); border: 1px solid var(--ink); font-size: .55rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.collection-search-command button svg { width: 15px; fill: none; stroke: currentColor; }
.collection-filter-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.collection-filter-heading strong { color: var(--muted); font-size: .55rem; font-weight: 600; }
.collection-type-options { display: flex; gap: 1px; min-width: 0; overflow-x: auto; padding-bottom: 2px; scrollbar-width: none; }
.collection-type-options::-webkit-scrollbar { display: none; }
.collection-type-options button { min-width: max-content; min-height: 48px; padding: 0 .85rem; color: var(--ink); background: var(--paper); border: 1px solid var(--line); font-size: .57rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; transition: color 160ms ease,background-color 160ms ease,border-color 160ms ease; }
.collection-type-options button[aria-pressed="true"] { color: var(--white); background: var(--ink); border-color: var(--ink); }
.collection-active-filter { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .75rem 1rem; background: var(--fog); }
.collection-active-filter span { color: var(--muted); font-size: .62rem; }
.collection-active-filter a { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; font-size: .55rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.collection-active-filter svg { width: 14px; fill: none; stroke: currentColor; }

.detail-location { grid-template-columns: minmax(260px,.72fr) minmax(0,1.28fr); min-height: 440px; }
.detail-location-copy { display: flex; flex-direction: column; justify-content: center; }
.detail-location-copy > p:not(.section-kicker) { color: rgba(255,255,255,.58); }
.detail-location-copy > a { width: fit-content; display: inline-flex; align-items: center; gap: .7rem; margin-top: 1.5rem; padding-bottom: .35rem; border-bottom: 1px solid rgba(255,255,255,.5); font-size: .56rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.detail-location-copy > a svg { width: 16px; fill: none; stroke: currentColor; }
.property-map-shell { position: relative; min-width: 0; padding: 0 !important; overflow: hidden; border-left: 1px solid rgba(255,255,255,.2); background: #d8d8d2; }
.property-map { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; min-height: 440px; border: 0; filter: grayscale(.82) contrast(1.04) brightness(.96); }
.property-map-caption { position: absolute; z-index: 500; top: 1rem; left: 1rem; padding: .55rem .7rem; color: var(--white); background: rgba(10,10,10,.84); font-size: .52rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; pointer-events: none; }

.detail-credit-action { position: relative; min-height: 128px; display: grid; grid-template-columns: 42px minmax(0,1fr) 20px; gap: .8rem; align-items: start; margin-top: 8px; padding: 1rem; color: var(--ink); background: var(--white); border: 1px solid var(--white); overflow: hidden; }
.detail-credit-action::after { content: ""; position: absolute; right: -45px; bottom: -78px; width: 150px; height: 150px; border: 1px solid var(--line); border-radius: 50%; transition: transform 500ms var(--ease-out); }
.detail-credit-mark { width: 42px; height: 42px; display: grid; place-items: center; color: var(--white); background: var(--ink); }
.detail-credit-mark svg,.detail-credit-arrow { width: 19px; fill: none; stroke: currentColor; }
.detail-credit-copy { position: relative; z-index: 1; display: flex; flex-direction: column; }
.detail-credit-copy small { margin-bottom: .38rem; color: var(--muted); font-size: .5rem; font-style: normal; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.detail-credit-copy strong { font-size: .68rem; letter-spacing: .06em; text-transform: uppercase; }
.detail-credit-copy em { margin-top: .55rem; color: var(--muted); font-size: .62rem; font-style: normal; line-height: 1.45; }
.detail-credit-arrow { position: relative; z-index: 1; }

@media (hover:hover) and (pointer:fine) {
    .collection-type-options button:hover { border-color: var(--ink); }
    .collection-search-command button:hover { color: var(--ink); background: transparent; }
    .detail-credit-action:hover::after { transform: scale(1.18); }
    .detail-credit-action:hover .detail-credit-arrow,.detail-location-copy > a:hover svg { transform: translate(2px,-2px); }
    .detail-credit-arrow,.detail-location-copy > a svg { transition: transform 180ms var(--ease-out); }
}

@media (max-width:1050px) {
    .navbar-container { grid-template-columns: minmax(0,1fr) auto; }
    .navbar-container > nav,.navbar-cta { display: none; }
    .navbar-toggle { position: relative; z-index: 5; display: grid; place-items: center; color: currentColor; border: 1px solid currentColor; }
    .navbar-toggle span { position: absolute; width: 21px; margin: 0; }
    .navbar-toggle span:first-child { transform: translateY(-4px); }
    .navbar-toggle span:last-child { transform: translateY(4px); }
    .navbar-toggle[aria-expanded="true"] span:first-child { transform: rotate(45deg); }
    .navbar-toggle[aria-expanded="true"] span:last-child { transform: rotate(-45deg); }
    .navbar-mobile { z-index: 3; padding-top: calc(7rem + env(safe-area-inset-top)); }
    .collection-filters { grid-template-columns: 1fr; }
    .collection-active-filter { grid-column: 1; }
}

@media (max-width:720px) {
    .navbar { height: calc(70px + env(safe-area-inset-top)); padding-top: env(safe-area-inset-top); }
    .navbar-container { width: calc(100% - 1.5rem); }
    .navbar-logo { min-width: 0; font-size: 1.5rem; }
    .navbar-logo-img { height: 1.08em; margin-bottom: 0; }
    .navbar-toggle { width: 46px; height: 46px; }
    .navbar-mobile { padding: calc(6.6rem + env(safe-area-inset-top)) .75rem calc(1rem + env(safe-area-inset-bottom)); }
    .navbar-mobile-link { grid-template-columns: 2rem minmax(0,1fr); min-height: 58px; padding: .55rem 0; font-size: clamp(2.5rem,12vw,3.8rem); }
    .loader-mark { font-size: clamp(4rem,19vw,6.5rem); }
    .collection-hero-inner,.booking-hero-inner,.confirmation-cover-inner { padding-top: calc(6.4rem + env(safe-area-inset-top)); }
    .detail-gallery-bar { top: calc(5.8rem + env(safe-area-inset-top)); }
    .collection-search-command,.collection-type-command { padding: .8rem; }
    .collection-search-command > div { grid-template-columns: 19px minmax(0,1fr); }
    .collection-search-command button { grid-column: 1 / -1; justify-content: center; width: 100%; margin-top: .2rem; }
    .collection-type-options { margin-right: -.8rem; padding-right: .8rem; }
    .collection-active-filter { align-items: flex-start; flex-direction: column; gap: .2rem; }
    .detail-location { grid-template-columns: 1fr; min-height: 0; }
    .property-map-shell { min-height: 390px; border-top: 1px solid rgba(255,255,255,.2); border-left: 0; }
    .property-map { min-height: 390px; }
    .detail-credit-action { min-height: 138px; grid-template-columns: 38px minmax(0,1fr) 18px; padding: .85rem; }
    .detail-credit-mark { width: 38px; height: 38px; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
}
