/* CasaLuxe Pro 3.0 — editorial motion layer */

:root {
  --cl-ease: cubic-bezier(.22,.61,.36,1);
  --cl-ease-spring: cubic-bezier(.16,1,.3,1);
  --cl-motion: 420ms;
  --cl-champagne: #c5a678;
  --cl-charcoal: #151512;
  --cl-ivory: #f8f5ef;
}

@view-transition { navigation: auto; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: .34s; animation-timing-function: var(--cl-ease); }

body { overflow-x: clip; }
body.is-filter-open { overflow: hidden; }

/* Premium reveal system */
.has-premium-js [data-reveal] { opacity: 0; transform: translateY(22px); transition: opacity .72s var(--cl-ease), transform .72s var(--cl-ease); }
.has-premium-js [data-reveal].is-revealed { opacity: 1; transform: none; }
.has-premium-js .property-grid > [data-reveal]:nth-child(2), .has-premium-js .zone-card-grid > [data-reveal]:nth-child(2) { transition-delay: .06s; }
.has-premium-js .property-grid > [data-reveal]:nth-child(3), .has-premium-js .zone-card-grid > [data-reveal]:nth-child(3) { transition-delay: .12s; }
.has-premium-js .property-grid > [data-reveal]:nth-child(4), .has-premium-js .zone-card-grid > [data-reveal]:nth-child(4) { transition-delay: .18s; }
.has-premium-js .property-grid > [data-reveal]:nth-child(5), .has-premium-js .zone-card-grid > [data-reveal]:nth-child(5) { transition-delay: .24s; }
.has-premium-js .property-grid > [data-reveal]:nth-child(6), .has-premium-js .zone-card-grid > [data-reveal]:nth-child(6) { transition-delay: .30s; }

/* Buttons */
.btn, .search-submit, .map-control-button, .view-switch, .mobile-filter-trigger {
  position: relative;
  overflow: hidden;
  transition: transform .25s var(--cl-ease), background .25s ease, color .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.btn:hover, .search-submit:hover { transform: translateY(-2px); }
.btn::after, .search-submit::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 20%, rgba(255,255,255,.20) 48%, transparent 72%);
  transform: translateX(-130%);
  transition: transform .65s var(--cl-ease);
  pointer-events: none;
}
.btn:hover::after, .search-submit:hover::after { transform: translateX(130%); }
.btn-arrow .cl-icon { transition: transform .28s var(--cl-ease-spring); }
.btn-arrow:hover .cl-icon { transform: translateX(5px); }

/* Header: transparent on hero, tactile on scroll */
.site-header { transition: background .35s ease, color .35s ease, border-color .35s ease, box-shadow .35s ease, backdrop-filter .35s ease; }
.site-header-overlay { position: fixed; width: 100%; left: 0; right: 0; top: 0; background: transparent; border-bottom-color: rgba(255,255,255,.18); color: #fff; backdrop-filter: none; }
.site-header-overlay .header-cta { background: rgba(255,255,255,.10); color: #fff; border-color: rgba(255,255,255,.38); backdrop-filter: blur(10px); }
.site-header-overlay .favorites-link { border-color: rgba(255,255,255,.35); }
.site-header-overlay.is-scrolled { background: rgba(248,245,239,.90); color: #171714; border-bottom-color: rgba(23,23,20,.10); backdrop-filter: blur(22px) saturate(150%); box-shadow: 0 14px 40px rgba(16,15,13,.08); }
.casaluxe-style-midnight .site-header-overlay.is-scrolled { background: rgba(17,19,16,.92); color: #f3f0e8; }
.site-header-overlay.is-scrolled .header-cta { background: var(--cl-text); color: var(--cl-bg); border-color: var(--cl-text); }
.site-header-overlay.is-scrolled .favorites-link { border-color: var(--cl-border); }
.site-header-overlay .primary-menu a::after { background: currentColor; }
.header-cta { gap: 9px; }
.header-cta .cl-icon { width: .95em; transition: transform .25s ease; }
.header-cta:hover .cl-icon { transform: translateX(4px); }

/* Hero 3.0 */
.hero-v3 { min-height: min(920px, 100svh); overflow: hidden; isolation: isolate; }
.hero-v3 .hero-media-wrap { position: absolute; inset: -3%; z-index: -3; overflow: hidden; }
.hero-v3 .hero-media { width: 100%; height: 100%; object-fit: cover; animation: cl-hero-kenburns 16s ease-out both; transform-origin: 50% 50%; will-change: transform; }
@keyframes cl-hero-kenburns { from { transform: scale(1.01); } to { transform: scale(1.085); } }
.hero-v3 .hero-shade { background: linear-gradient(90deg, rgba(8,9,8,.73) 0%, rgba(8,9,8,.44) 47%, rgba(8,9,8,.17) 76%), linear-gradient(0deg, rgba(8,9,8,.42), transparent 42%); }
.hero-grain { position: absolute; inset: 0; z-index: -1; opacity: .08; pointer-events: none; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E"); }
.hero-v3 .hero-content { padding-top: clamp(155px, 19vh, 210px); padding-bottom: 58px; min-height: min(920px, 100svh); display: flex; flex-direction: column; justify-content: center; }
.hero-v3 .hero-copy { width: min(790px, 90%); }
.hero-v3 h1 { max-width: 760px; font-size: clamp(4rem, 7.2vw, 7.4rem); line-height: .92; letter-spacing: -.045em; text-wrap: balance; }
.hero-v3 .hero-copy > p { max-width: 610px; font-size: clamp(1.03rem, 1.5vw, 1.28rem); color: rgba(255,255,255,.82); }
.eyebrow-light { color: rgba(255,255,255,.78); }
.hero-search-v3 { width: min(990px, 100%); margin-top: clamp(40px,6vh,70px); border-radius: 999px; padding: 7px; background: rgba(255,255,255,.95); box-shadow: 0 24px 70px rgba(0,0,0,.22); backdrop-filter: blur(18px); }
.hero-search-v3 label { padding-inline: 22px; }
.hero-search-v3 label span { color: #7b746a; }
.hero-search-v3 select { color: #171714; }
.hero-search-v3 .search-submit { border-radius: 999px; min-width: 140px; min-height: 58px; }
.hero-proof { display: flex; align-items: center; gap: 15px; margin-top: 22px; color: rgba(255,255,255,.78); font-size: .78rem; letter-spacing: .015em; }
.hero-proof strong { color: #fff; font-size: 1rem; }
.hero-proof i { width: 1px; height: 17px; background: rgba(255,255,255,.35); }
.hero-scroll { position: absolute; right: 42px; bottom: 38px; display: flex; align-items: center; gap: 12px; color: #fff; text-decoration: none; font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; transform: rotate(90deg) translateX(22px); transform-origin: right bottom; opacity: .82; }
.hero-scroll b { font-size: 1.1rem; animation: cl-scroll 1.7s ease-in-out infinite; }
@keyframes cl-scroll { 50% { transform: translateX(5px); } }

/* Section rhythm */
.section { padding-block: clamp(86px, 10vw, 145px); }
.section-title { max-width: 800px; font-size: clamp(2.7rem, 4.8vw, 5rem); line-height: .98; letter-spacing: -.04em; text-wrap: balance; }
.section-head { margin-bottom: clamp(38px, 5vw, 66px); align-items: end; }
.text-link { text-decoration-thickness: 1px; text-underline-offset: 5px; }

/* Premium property cards */
.property-card-premium { overflow: visible; background: transparent; border: 0; box-shadow: none; border-radius: 0; transition: transform .42s var(--cl-ease-spring); }
.property-card-premium .property-card-media { position: relative; overflow: hidden; border-radius: 24px; aspect-ratio: 1.28 / 1; background: var(--cl-surface-soft); box-shadow: 0 14px 44px rgba(22,20,17,.08); }
.property-card-premium .property-card-image-link { display: block; width: 100%; height: 100%; overflow: hidden; }
.property-card-premium .property-card-media img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.001); transition: transform .8s var(--cl-ease-spring), filter .6s ease; }
.property-card-premium:hover { transform: translateY(-6px); }
.property-card-premium:hover .property-card-media img { transform: scale(1.045); }
.property-card-gradient { position: absolute; inset: 36% 0 0; background: linear-gradient(0deg, rgba(9,9,8,.54), transparent); pointer-events: none; }
.property-card-premium .favorite-button { top: 17px; right: 17px; width: 43px; height: 43px; background: rgba(255,255,255,.92); color: #161612; border: 0; box-shadow: 0 8px 24px rgba(0,0,0,.13); transition: transform .3s var(--cl-ease-spring), background .25s ease; }
.property-card-premium .favorite-button:hover { transform: scale(1.08); }
.property-card-premium .favorite-button.is-favorite { background: #171714; color: #fff; }
.property-card-premium .favorite-button.is-favorite .cl-icon { animation: cl-heart .42s var(--cl-ease-spring); }
@keyframes cl-heart { 50% { transform: scale(1.35); } }
.property-badge-glass { background: rgba(20,20,18,.55); color: #fff; border-color: rgba(255,255,255,.25); backdrop-filter: blur(12px); }
.property-card-price-overlay { position: absolute; left: 20px; bottom: 17px; color: #fff; font-family: var(--cl-serif); font-size: clamp(1.45rem,2vw,1.8rem); line-height: 1; letter-spacing: -.02em; text-shadow: 0 3px 18px rgba(0,0,0,.3); }
.property-card-premium .property-card-body { padding: 20px 4px 0; background: transparent; }
.property-card-premium h3 { font-size: clamp(1.55rem,2.1vw,2rem); line-height: 1.08; margin: 8px 0 14px; }
.property-card-premium .property-meta { display: flex; flex-wrap: wrap; gap: 7px 18px; color: var(--cl-muted); }
.property-card-premium .property-meta span { gap: 6px; }
.property-card-premium .property-meta em { font-style: normal; }
.property-card-premium .property-card-footer { margin-top: 17px; padding-top: 16px; border-top: 1px solid var(--cl-border); }
.property-card-cta { font-size: .82rem; font-weight: 800; text-decoration: none; }
.property-card-premium .card-arrow { width: 42px; height: 42px; border-radius: 50%; transition: background .3s ease, color .3s ease, transform .3s var(--cl-ease-spring); }
.property-card-premium:hover .card-arrow { background: var(--cl-text); color: var(--cl-bg); transform: translateX(3px); }
.property-card.is-map-highlighted, .property-card.is-map-selected { border: 0 !important; box-shadow: none !important; }
.property-card.is-map-highlighted .property-card-media, .property-card.is-map-selected .property-card-media { box-shadow: 0 0 0 2px var(--cl-accent), 0 18px 55px rgba(22,20,17,.12); }

/* Zones editorial */
.zones-editorial { padding-top: 70px; }
.zone-card-grid { display: grid; grid-template-columns: repeat(12,1fr); gap: 18px; }
.zone-card { position: relative; min-height: 430px; overflow: hidden; border-radius: 28px; color: #fff; text-decoration: none; isolation: isolate; }
.zone-card:nth-child(1), .zone-card:nth-child(4) { grid-column: span 7; }
.zone-card:nth-child(2), .zone-card:nth-child(3) { grid-column: span 5; }
.zone-card:nth-child(5), .zone-card:nth-child(6) { grid-column: span 6; }
.zone-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform 1s var(--cl-ease-spring); }
.zone-card:hover img { transform: scale(1.06); }
.zone-card-shade { position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(8,9,8,.65), rgba(8,9,8,.05) 66%); }
.zone-card-copy { position: absolute; left: 28px; right: 28px; bottom: 26px; display: grid; grid-template-columns: 1fr auto; align-items: end; }
.zone-card-copy small { grid-column: 1/-1; margin-bottom: 6px; color: rgba(255,255,255,.74); font-size: .74rem; text-transform: uppercase; letter-spacing: .08em; }
.zone-card-copy strong { font-family: var(--cl-serif); font-size: clamp(2rem,3.2vw,3.6rem); font-weight: 400; line-height: .95; }
.zone-card-copy i { display: grid; place-items: center; width: 48px; height: 48px; border: 1px solid rgba(255,255,255,.55); border-radius: 50%; font-style: normal; transition: background .3s ease, color .3s ease, transform .3s ease; }
.zone-card:hover .zone-card-copy i { background: #fff; color: #171714; transform: translateX(4px); }

/* Full bleed dark editorial section */
.section-fullbleed { width: 100%; }
.editorial-dark-band { padding: clamp(90px,10vw,145px) 0; background: #171815; color: #f5f1e8; }
.editorial-dark-grid { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(390px,.85fr); gap: 80px; align-items: end; }
.editorial-dark-grid h2 { max-width: 780px; margin: 14px 0 0; font-family: var(--cl-serif); font-size: clamp(3rem,5.4vw,6rem); font-weight: 400; line-height: .94; letter-spacing: -.045em; }
.editorial-metrics { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid rgba(255,255,255,.18); }
.editorial-metrics > div { padding: 25px 18px 0 0; }
.editorial-metrics strong { display: block; font-family: var(--cl-serif); font-size: clamp(2.5rem,4vw,4rem); font-weight: 400; line-height: 1; }
.editorial-metrics span { display: block; margin-top: 9px; color: rgba(255,255,255,.58); font-size: .76rem; line-height: 1.4; }

/* Lifestyle motion */
.lifestyle-image { overflow: hidden; border-radius: 30px; }
.lifestyle-image > img { transition: transform 1.1s var(--cl-ease-spring); }
.lifestyle-image:hover > img { transform: scale(1.04); }
.final-editorial-cta { padding-top: 55px; }
.final-editorial-inner { display: flex; align-items: end; justify-content: space-between; gap: 40px; padding: clamp(40px,5vw,70px); border: 1px solid var(--cl-border); border-radius: 34px; background: var(--cl-surface); }
.final-editorial-inner h2 { max-width: 800px; margin: 12px 0 0; font-family: var(--cl-serif); font-size: clamp(2.7rem,4.6vw,5rem); font-weight: 400; line-height: .98; letter-spacing: -.04em; }

/* Archive app shell */
.archive-v3 .archive-hero { padding-top: clamp(90px,9vw,135px); padding-bottom: 44px; }
.archive-v3 .page-title { font-size: clamp(3.4rem,6.2vw,6.6rem); line-height: .92; letter-spacing: -.05em; }
.archive-v3 .archive-hero p { max-width: 670px; font-size: 1.05rem; }
.archive-v3 .archive-layout { align-items: start; gap: 30px; }
.filters-panel { top: 104px; border-radius: 22px; box-shadow: none; }
.filter-panel-head small { display: block; margin-bottom: 2px; color: var(--cl-muted); font-size: .67rem; letter-spacing: .08em; text-transform: uppercase; }
.filter-panel-head > div:last-child { display: flex; align-items: center; gap: 12px; }
.filter-close { display: none; width: 38px; height: 38px; border: 1px solid var(--cl-border); border-radius: 50%; background: transparent; cursor: pointer; }
.filters-panel input, .filters-panel select { transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; }
.filters-panel input:focus, .filters-panel select:focus { outline: none; border-color: color-mix(in srgb,var(--cl-accent) 70%, var(--cl-border)); box-shadow: 0 0 0 3px color-mix(in srgb,var(--cl-accent) 14%, transparent); }
.filter-drawer-footer { margin-top: 8px; }
.filter-drawer-footer .btn { width: 100%; }
.results-toolbar-v3 { position: sticky; top: 94px; z-index: 35; margin: -10px 0 18px; padding: 12px 14px; border: 1px solid var(--cl-border); border-radius: 18px; background: color-mix(in srgb,var(--cl-bg) 89%, transparent); box-shadow: 0 9px 30px rgba(20,18,16,.06); backdrop-filter: blur(18px) saturate(145%); }
.active-filter-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 20px; }
.active-filter-chips a { display: inline-flex; align-items: center; gap: 9px; min-height: 34px; padding: 7px 11px; border: 1px solid var(--cl-border); border-radius: 999px; background: var(--cl-surface); color: var(--cl-text); text-decoration: none; font-size: .74rem; transition: background .2s ease, border-color .2s ease, transform .2s ease; }
.active-filter-chips a:hover { border-color: var(--cl-text); transform: translateY(-1px); }
.active-filter-chips b { font-size: 1rem; font-weight: 400; line-height: 1; }
.active-filter-chips .chip-clear { background: transparent; color: var(--cl-muted); }
.archive-mobile-tools { display: none; }
.archive-results[data-map-view-state="split"] .archive-map-pane { top: 178px; }
.archive-results[data-map-view-state="split"] .property-card-premium .property-card-body { padding-top: 15px; }
.archive-results[data-map-view-state="split"] .property-card-premium h3 { font-size: 1.55rem; }

/* Map */
.map-action-bar { border-radius: 17px; box-shadow: 0 12px 30px rgba(20,18,16,.06); }
.map-canvas-wrap { border-radius: 24px; overflow: hidden; }
.property-search-map { min-height: 720px; }
.casaluxe-price-marker { min-width: max-content; padding: 9px 12px !important; border-radius: 999px !important; background: #fff !important; color: #171714 !important; border: 1px solid rgba(17,17,14,.10) !important; box-shadow: 0 8px 22px rgba(0,0,0,.15) !important; font-weight: 900 !important; transform-origin: center bottom; transition: transform .22s var(--cl-ease-spring), background .22s ease, color .22s ease, box-shadow .22s ease !important; }
.casaluxe-price-marker::after { content:""; position:absolute; left:50%; bottom:-5px; width:10px; height:10px; background:inherit; transform: translateX(-50%) rotate(45deg); border-right:1px solid rgba(17,17,14,.08); border-bottom:1px solid rgba(17,17,14,.08); }
.casaluxe-price-marker.is-featured { background: var(--cl-accent) !important; color: #fff !important; }
.casaluxe-marker-wrapper:hover .casaluxe-price-marker, .casaluxe-marker-wrapper.is-card-highlighted .casaluxe-price-marker { transform: translateY(-4px) scale(1.08); background: #171714 !important; color:#fff !important; box-shadow: 0 13px 30px rgba(0,0,0,.22) !important; }
.map-property-popup { width: 290px; }
.map-popup-image { height: 155px; }
.map-popup-title { font-size: 20px; }
.property-search-map .leaflet-control-zoom { border: 0; box-shadow: 0 8px 22px rgba(0,0,0,.14); }
.property-search-map .leaflet-control-zoom a { border: 0; width: 38px; height: 38px; line-height: 38px; }

/* Skeleton */
.property-skeleton-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 26px; }
.property-skeleton { min-height: 410px; }
.property-skeleton i, .property-skeleton span { display: block; border-radius: 14px; background: linear-gradient(90deg, var(--cl-surface-soft) 25%, color-mix(in srgb,var(--cl-surface) 76%,var(--cl-surface-soft)) 50%, var(--cl-surface-soft) 75%); background-size: 220% 100%; animation: cl-skeleton 1.25s linear infinite; }
.property-skeleton i { aspect-ratio: 1.28/1; border-radius: 24px; }
.property-skeleton span { height: 15px; margin-top: 15px; }
.property-skeleton span:nth-child(2) { width: 38%; height: 10px; }
.property-skeleton span:nth-child(3) { width: 82%; height: 24px; }
.property-skeleton span:nth-child(4) { width: 58%; }
@keyframes cl-skeleton { to { background-position: -220% 0; } }
.archive-list-pane.is-loading [data-map-results-grid] { display: none; }
.archive-list-pane.is-loading [data-results-skeleton] { display: grid !important; }

/* Single property */
.single-property-v3 .property-top-v3 { padding-top: clamp(80px,8vw,125px); padding-bottom: 36px; }
.property-breadcrumb { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 34px; color: var(--cl-muted); font-size: .74rem; }
.property-breadcrumb a { text-decoration: none; }
.single-property-v3 .property-title { max-width: 980px; font-size: clamp(3.5rem,6vw,6.7rem); line-height: .93; letter-spacing: -.05em; }
.single-property-v3 .property-top-price { font-size: clamp(2.2rem,3.2vw,3.8rem); }
.property-gallery-v3 { gap: 10px; height: min(690px,68vh); grid-template-rows: 1fr 1fr; border-radius: 28px; }
.property-gallery-v3 .gallery-item { overflow: hidden; border-radius: 16px; }
.property-gallery-v3 .gallery-item-1 { border-radius: 28px 16px 16px 28px; }
.property-gallery-v3 .gallery-item img { transition: transform .85s var(--cl-ease-spring), filter .5s ease; }
.property-gallery-v3 .gallery-item:hover img { transform: scale(1.035); filter: brightness(.92); }
.single-property-v3 .property-content-grid { gap: clamp(42px,6vw,90px); grid-template-columns: minmax(0,1.35fr) minmax(320px,.65fr); }
.facts-v3 { padding: 0 0 34px; border-bottom: 1px solid var(--cl-border); }
.facts-v3 .fact { padding: 18px 20px; border-radius: 18px; background: var(--cl-surface); border: 1px solid var(--cl-border); }
.facts-v3 .fact .cl-icon { width: 24px; height: 24px; color: var(--cl-accent); }
.property-story { padding: 54px 0; }
.property-story .property-description { margin-top: 20px; font-size: 1.06rem; }
.property-details-v3 { padding: 50px 0; border-top: 1px solid var(--cl-border); }
.section-mini-head h2 { max-width: 750px; font-family: var(--cl-serif); font-size: clamp(2.3rem,3.7vw,3.7rem); font-weight: 400; line-height: 1; letter-spacing: -.035em; }
.feature-icon-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin-top: 32px; }
.feature-icon-grid > div { display: flex; align-items: center; gap: 14px; min-height: 82px; padding: 17px 18px; border: 1px solid var(--cl-border); border-radius: 18px; background: var(--cl-surface); }
.feature-icon-grid i { display:grid; place-items:center; width: 40px; height: 40px; border-radius: 50%; background: var(--cl-surface-soft); color: var(--cl-accent); font-style: normal; }
.feature-icon-grid .cl-icon { width: 20px; height: 20px; }
.property-neighborhood { padding: 60px 0; border-top: 1px solid var(--cl-border); }
.neighborhood-grid { display: grid; grid-template-columns: minmax(0,1.3fr) minmax(270px,.7fr); gap: 16px; margin-top: 28px; }
.neighborhood-grid .property-map { min-height: 430px; border-radius: 24px; }
.neighborhood-grid .property-map iframe { height: 100%; min-height: 430px; }
.neighborhood-card { padding: 28px; border-radius: 24px; background: var(--cl-charcoal); color: #f7f3eb; }
.neighborhood-card > p { margin-top: 0; font-family: var(--cl-serif); font-size: 1.55rem; line-height: 1.22; }
.neighborhood-card small { display: block; margin-top: 24px; color: rgba(255,255,255,.5); }
.nearby-list { margin-top: 30px; border-top: 1px solid rgba(255,255,255,.18); }
.nearby-list > div { display:flex; align-items:center; justify-content:space-between; gap:20px; padding: 13px 0; border-bottom: 1px solid rgba(255,255,255,.12); font-size: .82rem; }
.nearby-list strong { color: var(--cl-champagne); }
.advisor-card { padding: 30px; border-radius: 26px; }
.advisor-head { display: flex; align-items: center; gap: 14px; margin-bottom: 28px; padding-bottom: 22px; border-bottom: 1px solid var(--cl-border); }
.advisor-avatar { display:grid; place-items:center; width:58px; height:58px; flex:0 0 auto; border-radius:50%; background: var(--cl-text); color: var(--cl-bg); font-family: var(--cl-serif); font-size: 1.1rem; }
.advisor-head small, .advisor-head span { display:block; color:var(--cl-muted); font-size:.72rem; }
.advisor-head strong { display:block; font-family:var(--cl-serif); font-size:1.25rem; font-weight:400; line-height:1.15; }
.similar-properties { padding-top: 70px; border-top: 1px solid var(--cl-border); }
.similar-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.similar-grid .property-card-premium h3 { font-size: 1.45rem; }
.mobile-property-cta { display:none; }

/* Lightbox 3.0 */
.casaluxe-lightbox { width: 100vw; max-width: none; height: 100vh; max-height: none; margin: 0; padding: 0; border: 0; background: rgba(10,10,9,.96); color:#fff; }
.casaluxe-lightbox::backdrop { background: #0a0a09; }
.lightbox-stage { position:absolute; inset: 45px 80px; display:grid; place-items:center; }
.lightbox-stage img { max-width:100%; max-height:100%; object-fit:contain; border-radius: 6px; box-shadow: 0 24px 70px rgba(0,0,0,.3); }
.lightbox-counter { position:absolute; left:50%; bottom:0; transform:translateX(-50%); padding:7px 11px; border-radius:999px; background:rgba(255,255,255,.10); font-size:.72rem; }
.lightbox-close { top: 24px; right: 24px; width:46px; height:46px; background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.2); }
.lightbox-nav { width:50px; height:50px; border-radius:50%; background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.2); }
.lightbox-prev { left:22px; } .lightbox-next { right:22px; }

/* Premium cursor */
.premium-cursor { position: fixed; left: 0; top: 0; z-index: 9999; width: 72px; height: 72px; display: grid; place-items: center; border-radius: 50%; background: rgba(255,255,255,.95); color:#171714; pointer-events:none; opacity:0; transform: translate3d(-100px,-100px,0) scale(.6); transition: opacity .18s ease, transform .08s linear; mix-blend-mode: normal; box-shadow: 0 10px 30px rgba(0,0,0,.12); }
.premium-cursor span { font-size:.62rem; font-weight:900; letter-spacing:.08em; }
.premium-cursor.is-visible { opacity:1; }

/* Mobile app navigation */
.mobile-explore-nav { display:none; }

/* Dark mode overrides */
.casaluxe-style-midnight .final-editorial-inner, .casaluxe-style-midnight .facts-v3 .fact, .casaluxe-style-midnight .feature-icon-grid > div { background:#191c18; }
.casaluxe-style-midnight .results-toolbar-v3 { background:rgba(17,19,16,.88); }
.casaluxe-style-midnight .active-filter-chips a { background:#191c18; }
.casaluxe-style-midnight .advisor-avatar { background:#f3f0e8; color:#171714; }

/* Tablet */
@media (max-width: 1100px) {
  .hero-v3 h1 { font-size: clamp(3.8rem,8vw,6rem); }
  .zone-card { min-height: 360px; }
  .editorial-dark-grid { grid-template-columns: 1fr; gap: 55px; }
  .single-property-v3 .property-content-grid { grid-template-columns: minmax(0,1fr) 330px; gap: 35px; }
  .feature-icon-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .similar-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .similar-grid > :last-child { display:none; }
}

@media (max-width: 900px) {
  .site-header-overlay { position:absolute; }
  .site-header-overlay.is-scrolled { position:fixed; }
  .hero-v3 { min-height: 820px; }
  .hero-v3 .hero-content { min-height: 820px; padding-top: 130px; }
  .hero-search-v3 { border-radius: 24px; padding: 7px; grid-template-columns: 1fr 1fr; }
  .hero-search-v3 .search-submit { border-radius: 17px; }
  .hero-proof { flex-wrap:wrap; }
  .hero-scroll { display:none; }
  .zone-card:nth-child(n) { grid-column: span 6; min-height: 340px; }
  .editorial-metrics { grid-template-columns:repeat(3,1fr); }
  .final-editorial-inner { align-items:flex-start; flex-direction:column; }

  /* Filters become a bottom sheet */
  .archive-mobile-tools { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom: 16px; }
  .mobile-filter-trigger { display:inline-flex; align-items:center; gap:9px; min-height:44px; padding:9px 14px; border:1px solid var(--cl-border); border-radius:999px; background:var(--cl-surface); font-weight:800; }
  .mobile-filter-trigger b { display:grid; place-items:center; min-width:21px; height:21px; padding:0 5px; border-radius:999px; background:var(--cl-text); color:var(--cl-bg); font-size:.67rem; }
  .mobile-result-summary { color:var(--cl-muted); font-size:.78rem; }
  .filters-backdrop { position:fixed; inset:0; z-index:699; background:rgba(10,10,9,.38); backdrop-filter:blur(4px); }
  .filters-backdrop[hidden] { display:none; }
  .filters-drawer { position:fixed !important; z-index:700; left:0; right:0; bottom:0; top:auto !important; width:100%; max-height:min(86vh,780px); overflow:auto; margin:0; padding:22px 20px calc(22px + env(safe-area-inset-bottom)); border:0; border-radius:28px 28px 0 0; transform:translateY(105%); opacity:0; transition: transform .38s var(--cl-ease-spring), opacity .25s ease; box-shadow:0 -20px 70px rgba(0,0,0,.18); }
  .filters-drawer.is-open { transform:none; opacity:1; }
  .filter-close { display:grid; place-items:center; }
  .filter-drawer-footer { position:sticky; bottom:-22px; margin:22px -20px -22px; padding:12px 20px calc(12px + env(safe-area-inset-bottom)); background:color-mix(in srgb,var(--cl-surface) 92%,transparent); backdrop-filter:blur(15px); border-top:1px solid var(--cl-border); }
  .archive-v3 .archive-layout { display:block; }
  .results-toolbar-v3 { top:78px; }
  .active-filter-chips { overflow-x:auto; flex-wrap:nowrap; padding-bottom:3px; scrollbar-width:none; }
  .active-filter-chips::-webkit-scrollbar { display:none; }
  .active-filter-chips a { flex:0 0 auto; }
  .archive-results[data-map-view-state="split"] .archive-results-body { display:block; }
  .archive-results[data-map-view-state="split"] .archive-map-pane { display:none; }
  .property-search-map, .archive-results[data-map-view-state="map"] .property-search-map { min-height: calc(100svh - 190px); }

  .mobile-explore-nav { position:fixed; z-index:650; left:50%; bottom:12px; transform:translateX(-50%); display:grid; grid-template-columns:repeat(3,1fr); width:min(390px,calc(100% - 28px)); padding:7px; padding-bottom:calc(7px + env(safe-area-inset-bottom)); border:1px solid rgba(255,255,255,.7); border-radius:22px; background:rgba(245,242,236,.88); color:#171714; box-shadow:0 14px 50px rgba(0,0,0,.16); backdrop-filter:blur(20px) saturate(160%); }
  .mobile-explore-nav button, .mobile-explore-nav a { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; min-height:48px; border:0; border-radius:15px; background:transparent; color:inherit; text-decoration:none; font-size:.67rem; font-weight:800; }
  .mobile-explore-nav span { font-size:1.05rem; }
  .mobile-explore-nav button.is-active { background:#171714; color:#fff; }
  .archive-v3 { padding-bottom:90px; }

  .property-gallery-v3 { height: 520px; }
  .single-property-v3 .property-content-grid { grid-template-columns:1fr; }
  .property-sidebar { position:static; }
  .advisor-card { margin-top:20px; }
  .neighborhood-grid { grid-template-columns:1fr; }
  .feature-icon-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .mobile-property-cta { position:fixed; z-index:620; left:12px; right:12px; bottom:12px; display:grid; grid-template-columns:1fr 1fr 1.25fr; gap:6px; padding:7px; padding-bottom:calc(7px + env(safe-area-inset-bottom)); border:1px solid rgba(255,255,255,.75); border-radius:20px; background:rgba(248,245,239,.92); color:#171714; box-shadow:0 16px 50px rgba(0,0,0,.18); backdrop-filter:blur(18px); }
  .mobile-property-cta a { display:flex; align-items:center; justify-content:center; gap:6px; min-height:46px; border-radius:14px; color:inherit; text-decoration:none; font-size:.72rem; font-weight:900; }
  .mobile-property-cta .is-primary { background:#171714; color:#fff; }
  .single-property-v3 { padding-bottom:90px; }
  .premium-cursor { display:none !important; }
}

@media (max-width: 640px) {
  .container { width:min(calc(100% - 28px),var(--cl-max)); }
  .header-inner { min-height:72px; }
  .hero-v3 { min-height: 760px; }
  .hero-v3 .hero-content { min-height:760px; padding-top:110px; padding-bottom:34px; justify-content:flex-end; }
  .hero-v3 h1 { font-size: clamp(3.15rem,15vw,4.7rem); line-height:.91; }
  .hero-v3 .hero-copy { width:100%; }
  .hero-v3 .hero-copy > p { font-size:.98rem; }
  .hero-v3 .hero-actions { display:grid; grid-template-columns:1fr; }
  .hero-search-v3 { grid-template-columns:1fr; margin-top:26px; border-radius:20px; }
  .hero-search-v3 label { padding:11px 15px; border-right:0 !important; border-bottom:1px solid rgba(23,23,20,.10); }
  .hero-search-v3 .search-submit { min-height:52px; }
  .hero-proof { display:none; }
  .section { padding-block:80px; }
  .section-title { font-size:clamp(2.5rem,12vw,3.7rem); }
  .section-head { align-items:flex-start; }
  .property-grid-featured { gap:34px; }
  .property-card-premium .property-card-media { border-radius:20px; }
  .property-card-premium .property-card-body { padding-top:17px; }
  .property-card-premium h3 { font-size:1.7rem; }
  .zone-card-grid { display:block; }
  .zone-card { display:block; min-height:330px !important; margin-bottom:14px; }
  .zone-card-copy strong { font-size:2.6rem; }
  .editorial-dark-grid { gap:45px; }
  .editorial-dark-grid h2 { font-size:clamp(3rem,13vw,4.4rem); }
  .editorial-metrics { grid-template-columns:1fr; }
  .editorial-metrics > div { display:grid; grid-template-columns:100px 1fr; align-items:end; padding:16px 0; border-bottom:1px solid rgba(255,255,255,.12); }
  .editorial-metrics strong { font-size:2.7rem; }
  .final-editorial-inner { padding:30px 24px; border-radius:26px; }
  .final-editorial-inner h2 { font-size:2.8rem; }

  .archive-v3 .archive-hero { padding-top:78px; }
  .archive-v3 .page-title { font-size:clamp(3.3rem,14vw,4.7rem); }
  .results-toolbar-v3 { top:72px; padding:9px; border-radius:15px; }
  .results-count-wrap { display:none; }
  .results-toolbar-actions { width:100%; justify-content:space-between; }
  .view-switcher { flex:1; }
  .view-switch { flex:1; padding:8px 9px; font-size:.68rem; }
  .sort-form select { max-width:128px; font-size:.7rem; }
  .property-skeleton-grid { grid-template-columns:1fr; }
  .property-search-map, .archive-results[data-map-view-state="map"] .property-search-map { min-height:calc(100svh - 165px); }
  .map-action-bar { position:absolute; z-index:500; top:10px; left:10px; right:10px; margin:0; background:rgba(255,255,255,.91); }
  .archive-map-pane { position:relative; }
  .map-help { display:none; }

  .single-property-v3 .property-top-v3 { padding-top:74px; }
  .property-breadcrumb { margin-bottom:24px; }
  .single-property-v3 .property-title { font-size:clamp(3.2rem,14vw,4.6rem); }
  .property-top-grid { display:block; }
  .property-top-actions { margin-top:24px; align-items:center; flex-direction:row-reverse; justify-content:space-between; }
  .single-property-v3 .property-top-price { font-size:2.35rem; }
  .property-gallery-v3 { height:400px; grid-template-columns:1fr; grid-template-rows:1fr; border-radius:22px; }
  .property-gallery-v3 .gallery-item { display:none; }
  .property-gallery-v3 .gallery-item-1 { display:block; border-radius:22px; }
  .property-gallery-v3 .gallery-count { display:flex; right:12px; bottom:12px; }
  .facts-v3 { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; }
  .facts-v3 .fact { min-width:0; padding:14px; }
  .feature-icon-grid { grid-template-columns:1fr 1fr; }
  .neighborhood-grid .property-map, .neighborhood-grid .property-map iframe { min-height:330px; }
  .neighborhood-card { padding:24px; }
  .similar-grid { grid-template-columns:1fr; }
  .similar-grid > :last-child { display:block; }
  .lightbox-stage { inset:58px 12px 70px; }
  .lightbox-prev { left:10px; } .lightbox-next { right:10px; }
}

@media (hover:none), (pointer:coarse) { .premium-cursor { display:none !important; } }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior:auto !important; animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
  [data-reveal] { opacity:1 !important; transform:none !important; }
  .premium-cursor { display:none !important; }
}
.active-filter-chips .filter-chip-button { display:inline-flex; align-items:center; gap:9px; min-height:34px; padding:7px 11px; border:1px solid var(--cl-border); border-radius:999px; background:var(--cl-surface); color:var(--cl-text); font:inherit; font-size:.74rem; cursor:pointer; transition:background .2s ease,border-color .2s ease,transform .2s ease; }
.active-filter-chips .filter-chip-button:hover { border-color:var(--cl-text); transform:translateY(-1px); }
.active-filter-chips .filter-chip-button b { font-size:1rem; font-weight:400; line-height:1; }
.active-filter-chips .filter-chip-button.chip-clear { background:transparent; color:var(--cl-muted); }
/* Precision fixes */
.facts-v3 .fact + .fact { border-left: 0; padding-left: 20px; }
.casaluxe-price-marker { position: relative; transform: translate(-50%,-50%); }
.casaluxe-marker-wrapper:hover .casaluxe-price-marker, .casaluxe-marker-wrapper.is-card-highlighted .casaluxe-price-marker { transform: translate(-50%,-58%) scale(1.08); }
