/* Generated by scripts/build.py from config/branding.json — do not edit. */

:root {
  --color-accent: #c5a062;
  --color-accent-dark: #9a7b48;
  --color-primary: #c5a062;
  --color-primary-dark: #9a7b48;
  --color-text: #f5f0e8;
  --color-text-muted: #9a958a;
  --color-muted: #9a958a;
  --color-border: #2c2824;
  --color-bg: #0b0a09;
  --color-surface: #151311;
  --color-card: color-mix(in srgb, #151311 88%, #e6e6e6 12%);
}



/* Tabler sprite icons — see docs/tabler-icons-notes.md */

.icon {
  width: 1em;
  height: 1em;
  display: inline-block;
  flex: 0 0 auto;
  stroke: currentColor;
  fill: none;
}

.icon--filled {
  fill: currentColor;
  stroke: none;
}

.app-bottom-nav__item > .icon,
.app-bottom-nav__settings-trigger > .icon {
  width: 1.35rem;
  height: 1.35rem;
}

.card-facts__icon .icon,
.hero-facts__icon .icon {
  width: 1.375rem;
  height: 1.375rem;
}

.card-body-location__pin.icon {
  width: 1rem;
  height: 1rem;
}

.map-list-row__chevron.icon {
  width: 1.25rem;
  height: 1.25rem;
}

.card-updated__icon.icon {
  width: 1rem;
  height: 1rem;
}

.gallery-action__icon.icon {
  width: 1.25rem;
  height: 1.25rem;
}

.home-type-grid__icon .icon,
.home-lifestyle-rail__icon .icon,
.listings-lifestyle-tile__icon .icon,
.home-goal-panel__icon .icon {
  width: 3rem;
  height: 3rem;
}


/**
 * Swiper 12.1.2
 * Most modern mobile touch slider and framework with hardware accelerated transitions
 * https://swiperjs.com
 *
 * Copyright 2014-2026 Vladimir Kharlampidi
 *
 * Released under the MIT License
 *
 * Released on: February 18, 2026
 */

:root{--swiper-theme-color:#007aff}:host{display:block;margin-left:auto;margin-right:auto;position:relative;z-index:1}.swiper{display:block;list-style:none;margin-left:auto;margin-right:auto;overflow:hidden;padding:0;position:relative;z-index:1}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{box-sizing:initial;display:flex;height:100%;position:relative;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);width:100%;z-index:1}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translateZ(0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{display:block;flex-shrink:0;height:100%;position:relative;transition-property:transform;width:100%}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{backface-visibility:hidden;transform:translateZ(0)}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px;.swiper-cube-shadow,.swiper-slide{transform-style:preserve-3d}}.swiper-css-mode{>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none;&::-webkit-scrollbar{display:none}}>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}&.swiper-horizontal{>.swiper-wrapper{scroll-snap-type:x mandatory}>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-slides-offset-before);scroll-margin-inline-start:var(--swiper-slides-offset-before)}>.swiper-wrapper>.swiper-slide:last-child{margin-inline-end:var(--swiper-slides-offset-after)}}&.swiper-vertical{>.swiper-wrapper{scroll-snap-type:y mandatory}>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-slides-offset-before);scroll-margin-block-start:var(--swiper-slides-offset-before)}>.swiper-wrapper>.swiper-slide:last-child{margin-block-end:var(--swiper-slides-offset-after)}}&.swiper-free-mode{>.swiper-wrapper{scroll-snap-type:none}>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}}&.swiper-centered{>.swiper-wrapper:before{content:"";flex-shrink:0;order:9999}>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}}&.swiper-centered.swiper-horizontal{>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}>.swiper-wrapper:before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}}&.swiper-centered.swiper-vertical{>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}>.swiper-wrapper:before{height:var(--swiper-centered-offset-after);min-width:1px;width:100%}}}.swiper-3d{.swiper-slide-shadow,.swiper-slide-shadow-bottom,.swiper-slide-shadow-left,.swiper-slide-shadow-right,.swiper-slide-shadow-top{height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:10}.swiper-slide-shadow{background:#00000026}.swiper-slide-shadow-left{background-image:linear-gradient(270deg,#00000080,#0000)}.swiper-slide-shadow-right{background-image:linear-gradient(90deg,#00000080,#0000)}.swiper-slide-shadow-top{background-image:linear-gradient(0deg,#00000080,#0000)}.swiper-slide-shadow-bottom{background-image:linear-gradient(180deg,#00000080,#0000)}}.swiper-lazy-preloader{border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top:4px solid #0000;box-sizing:border-box;height:42px;left:50%;margin-left:-21px;margin-top:-21px;position:absolute;top:50%;transform-origin:50%;width:42px;z-index:10}.swiper-watch-progress .swiper-slide-visible,.swiper:not(.swiper-watch-progress){.swiper-lazy-preloader{animation:swiper-preloader-spin 1s linear infinite}}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.swiper-virtual .swiper-slide{-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode{.swiper-wrapper:after{content:"";left:0;pointer-events:none;position:absolute;top:0}}.swiper-virtual.swiper-css-mode.swiper-horizontal{.swiper-wrapper:after{height:1px;width:var(--swiper-virtual-size)}}.swiper-virtual.swiper-css-mode.swiper-vertical{.swiper-wrapper:after{height:var(--swiper-virtual-size);width:1px}}:root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{align-items:center;color:var(--swiper-navigation-color,var(--swiper-theme-color));cursor:pointer;display:flex;height:var(--swiper-navigation-size);justify-content:center;position:absolute;width:var(--swiper-navigation-size);z-index:10;&.swiper-button-disabled{cursor:auto;opacity:.35;pointer-events:none}&.swiper-button-hidden{cursor:auto;opacity:0;pointer-events:none}.swiper-navigation-disabled &{display:none!important}svg{height:100%;object-fit:contain;transform-origin:center;width:100%;fill:currentColor;pointer-events:none}}.swiper-button-lock{display:none}.swiper-button-next,.swiper-button-prev{margin-top:calc(0px - var(--swiper-navigation-size)/2);top:var(--swiper-navigation-top-offset,50%)}.swiper-button-prev{left:var(--swiper-navigation-sides-offset,4px);right:auto;.swiper-navigation-icon{transform:rotate(180deg)}}.swiper-button-next{left:auto;right:var(--swiper-navigation-sides-offset,4px)}.swiper-horizontal{.swiper-button-next,.swiper-button-prev,~.swiper-button-next,~.swiper-button-prev{margin-left:0;margin-top:calc(0px - var(--swiper-navigation-size)/2);top:var(--swiper-navigation-top-offset,50%)}&.swiper-rtl .swiper-button-next,&.swiper-rtl~.swiper-button-next,&~.swiper-button-prev,.swiper-button-prev{left:var(--swiper-navigation-sides-offset,4px);right:auto}&.swiper-rtl .swiper-button-prev,&.swiper-rtl~.swiper-button-prev,&~.swiper-button-next,.swiper-button-next{left:auto;right:var(--swiper-navigation-sides-offset,4px)}&.swiper-rtl .swiper-button-next,&.swiper-rtl~.swiper-button-next,&~.swiper-button-prev,.swiper-button-prev{.swiper-navigation-icon{transform:rotate(180deg)}}&.swiper-rtl .swiper-button-prev,&.swiper-rtl~.swiper-button-prev{.swiper-navigation-icon{transform:rotate(0deg)}}}.swiper-vertical{.swiper-button-next,.swiper-button-prev,~.swiper-button-next,~.swiper-button-prev{left:var(--swiper-navigation-top-offset,50%);margin-left:calc(0px - var(--swiper-navigation-size)/2);margin-top:0;right:auto}.swiper-button-prev,~.swiper-button-prev{bottom:auto;top:var(--swiper-navigation-sides-offset,4px);.swiper-navigation-icon{transform:rotate(-90deg)}}.swiper-button-next,~.swiper-button-next{bottom:var(--swiper-navigation-sides-offset,4px);top:auto;.swiper-navigation-icon{transform:rotate(90deg)}}}.swiper-pagination{position:absolute;text-align:center;transform:translateZ(0);transition:opacity .3s;z-index:10;&.swiper-pagination-hidden{opacity:0}&.swiper-pagination-disabled,.swiper-pagination-disabled>&{display:none!important}}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:var(--swiper-pagination-bottom,8px);left:0;top:var(--swiper-pagination-top,auto);width:100%}.swiper-pagination-bullets-dynamic{font-size:0;overflow:hidden;.swiper-pagination-bullet{position:relative;transform:scale(.33)}.swiper-pagination-bullet-active,.swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullet-active-next-next{transform:scale(.33)}}.swiper-pagination-bullet{background:var(--swiper-pagination-bullet-inactive-color,#000);border-radius:var(--swiper-pagination-bullet-border-radius,50%);display:inline-block;height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));opacity:var(--swiper-pagination-bullet-inactive-opacity,.2);width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));button&{appearance:none;border:none;box-shadow:none;margin:0;padding:0}.swiper-pagination-clickable &{cursor:pointer}&:only-child{display:none!important}}.swiper-pagination-bullet-active{background:var(--swiper-pagination-color,var(--swiper-theme-color));opacity:var(--swiper-pagination-bullet-opacity,1)}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{left:var(--swiper-pagination-left,auto);right:var(--swiper-pagination-right,8px);top:50%;transform:translate3d(0,-50%,0);.swiper-pagination-bullet{display:block;margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0}&.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px;.swiper-pagination-bullet{display:inline-block;transition:transform .2s,top .2s}}}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-horizontal.swiper-pagination-bullets{.swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}&.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap;.swiper-pagination-bullet{transition:transform .2s,left .2s}}}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:transform .2s,right .2s}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color,inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color,#00000040);position:absolute;.swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));height:100%;left:0;position:absolute;top:0;transform:scale(0);transform-origin:left top;width:100%}.swiper-rtl & .swiper-pagination-progressbar-fill{transform-origin:right top}&.swiper-pagination-horizontal,&.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-horizontal>&,.swiper-vertical>&.swiper-pagination-progressbar-opposite{height:var(--swiper-pagination-progressbar-size,4px);left:0;top:0;width:100%}&.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,&.swiper-pagination-vertical,.swiper-horizontal>&.swiper-pagination-progressbar-opposite,.swiper-vertical>&{height:100%;left:0;top:0;width:var(--swiper-pagination-progressbar-size,4px)}}.swiper-pagination-lock{display:none}.swiper-scrollbar{background:var(--swiper-scrollbar-bg-color,#0000001a);border-radius:var(--swiper-scrollbar-border-radius,10px);position:relative;touch-action:none;&.swiper-scrollbar-disabled,.swiper-scrollbar-disabled>&{display:none!important}&.swiper-scrollbar-horizontal,.swiper-horizontal>&{bottom:var(--swiper-scrollbar-bottom,4px);height:var(--swiper-scrollbar-size,4px);left:var(--swiper-scrollbar-sides-offset,1%);position:absolute;top:var(--swiper-scrollbar-top,auto);width:calc(100% - var(--swiper-scrollbar-sides-offset, 1%)*2);z-index:50}&.swiper-scrollbar-vertical,.swiper-vertical>&{height:calc(100% - var(--swiper-scrollbar-sides-offset, 1%)*2);left:var(--swiper-scrollbar-left,auto);position:absolute;right:var(--swiper-scrollbar-right,4px);top:var(--swiper-scrollbar-sides-offset,1%);width:var(--swiper-scrollbar-size,4px);z-index:50}}.swiper-scrollbar-drag{background:var(--swiper-scrollbar-drag-bg-color,#00000080);border-radius:var(--swiper-scrollbar-border-radius,10px);height:100%;left:0;position:relative;top:0;width:100%}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{align-items:center;display:flex;height:100%;justify-content:center;text-align:center;width:100%;>canvas,>img,>svg{max-height:100%;max-width:100%;object-fit:contain}}.swiper-slide-zoomed{cursor:move;touch-action:none}.swiper .swiper-notification{left:0;opacity:0;pointer-events:none;position:absolute;top:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{margin:0 auto;transition-timing-function:ease-out}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-direction:column;flex-wrap:wrap}.swiper-fade{&.swiper-free-mode{.swiper-slide{transition-timing-function:ease-out}}.swiper-slide{pointer-events:none;transition-property:opacity;.swiper-slide{pointer-events:none}}.swiper-slide-active{pointer-events:auto;& .swiper-slide-active{pointer-events:auto}}}.swiper.swiper-cube{overflow:visible}.swiper-cube{.swiper-slide{backface-visibility:hidden;height:100%;pointer-events:none;transform-origin:0 0;visibility:hidden;width:100%;z-index:1;.swiper-slide{pointer-events:none}}&.swiper-rtl .swiper-slide{transform-origin:100% 0}.swiper-slide-active{&,& .swiper-slide-active{pointer-events:auto}}.swiper-slide-active,.swiper-slide-next,.swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube-shadow{bottom:0;height:100%;left:0;opacity:.6;position:absolute;width:100%;z-index:0;&:before{background:#000;bottom:0;content:"";filter:blur(50px);left:0;position:absolute;right:0;top:0}}}.swiper-cube{.swiper-slide-next+.swiper-slide{pointer-events:auto;visibility:visible}}.swiper-cube{.swiper-slide-shadow-cube.swiper-slide-shadow-bottom,.swiper-slide-shadow-cube.swiper-slide-shadow-left,.swiper-slide-shadow-cube.swiper-slide-shadow-right,.swiper-slide-shadow-cube.swiper-slide-shadow-top{backface-visibility:hidden;z-index:0}}.swiper.swiper-flip{overflow:visible}.swiper-flip{.swiper-slide{backface-visibility:hidden;pointer-events:none;z-index:1;.swiper-slide{pointer-events:none}}.swiper-slide-active{&,& .swiper-slide-active{pointer-events:auto}}}.swiper-flip{.swiper-slide-shadow-flip.swiper-slide-shadow-bottom,.swiper-slide-shadow-flip.swiper-slide-shadow-left,.swiper-slide-shadow-flip.swiper-slide-shadow-right,.swiper-slide-shadow-flip.swiper-slide-shadow-top{backface-visibility:hidden;z-index:0}}.swiper-creative{.swiper-slide{backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}}.swiper.swiper-cards{overflow:visible}.swiper-cards{.swiper-slide{backface-visibility:hidden;overflow:hidden;transform-origin:center bottom}}

/* App reset — mobile-first baseline */

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  -webkit-text-size-adjust: 100%;
  tab-size: 4;
  overflow-x: clip;
}

body {
  margin: 0;
  min-height: 100vh;
  min-height: 100dvh;
}

img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
  height: auto;
}

button,
input,
select,
textarea {
  font: inherit;
  color: inherit;
}

button {
  cursor: pointer;
  background: none;
  border: none;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.hidden {
  display: none !important;
}


/* Design tokens derived from config/branding.json → 00-brand.css */

:root {
  /* Radii — mockup 18–28px */
  --app-radius-sm: 14px;
  --app-radius-md: 20px;
  --app-radius-lg: 28px;
  --app-radius-pill: 9999px;

  /* Glass / depth */
  --app-blur: 18px;
  --app-glass-bg: color-mix(in srgb, var(--color-surface) 72%, transparent);
  --app-glass-border: color-mix(in srgb, var(--color-border) 55%, transparent);
  --app-shadow-soft: 0 12px 40px color-mix(in srgb, #000 45%, transparent);
  --app-shadow-lift: 0 24px 64px color-mix(in srgb, #000 55%, transparent);

  /* Page atmosphere */
  --app-page-gradient: linear-gradient(
    165deg,
    color-mix(in srgb, var(--color-bg) 100%, #1a1510) 0%,
    var(--color-bg) 38%,
    color-mix(in srgb, var(--color-bg) 85%, #000) 100%
  );
  --app-scrim-strong: linear-gradient(
    to top,
    color-mix(in srgb, #000 78%, transparent) 0%,
    color-mix(in srgb, #000 25%, transparent) 45%,
    transparent 100%
  );

  /* Typography — single sans stack (Inter + system fallbacks) */
  --font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-ui: var(--font-sans);
  --font-display: var(--font-sans);

  /* Size scale (mobile base 16px) */
  --text-2xs: 0.62rem;
  --text-xs: 0.68rem;
  --text-sm: 0.78rem;
  --text-base: 0.88rem;
  --text-md: 0.95rem;
  --text-lg: 1.05rem;
  --text-xl: 1.35rem;
  --text-2xl: clamp(1.35rem, 4.5vw, 1.85rem);
  --text-3xl: clamp(1.75rem, 6vw, 2.5rem);

  /* Semantic aliases */
  --text-section-title: var(--text-xl);
  --text-subsection-label: 0.72rem;
  --text-eyebrow: var(--text-sm);
  --text-list-primary: var(--text-base);
  --text-list-secondary: var(--text-xs);

  /* Weight + tracking */
  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semibold: 600;
  --fw-bold: 700;
  --tracking-caps: 0.08em;
  --tracking-tight: 0.02em;

  /* Swiper bundle defaults to iOS blue; align progress/UI with brand */
  --swiper-theme-color: var(--color-accent);

  /* Spacing scale */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-7: 1.75rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;

  /* Layout */
  --app-header-pad: 0.75rem;
  --app-bottom-nav-height: 4.5rem;
  --app-bottom-safe: env(safe-area-inset-bottom, 0px);
  --app-main-pad-bottom: calc(var(--app-bottom-nav-height) + var(--app-bottom-safe) + var(--space-4));

  /* Reserve for header + page lead above the card in listings (mobile grid slot height) */
  --property-card-top-chrome: 5rem;

  color-scheme: dark;
}


/* Semantic color roles — dark default. Enables theme overrides without touching component rules.
   Values mirror pre-token literals exactly for pixel parity. Light theme: see 02b-theme-light-app.css */

:root {
  /* --- Black alpha overlays --- */
  --semantic-black-scrim-52: color-mix(in srgb, #000 52%, transparent);
  --semantic-black-scrim-55: color-mix(in srgb, #000 55%, transparent);
  --semantic-black-scrim-42: color-mix(in srgb, #000 42%, transparent);
  --semantic-black-scrim-40: color-mix(in srgb, #000 40%, transparent);
  --semantic-black-scrim-58: color-mix(in srgb, #000 58%, transparent);
  --semantic-black-scrim-92: color-mix(in srgb, #000 92%, transparent);
  --semantic-black-scrim-35: color-mix(in srgb, #000 35%, transparent);
  --semantic-black-overlay-28: color-mix(in srgb, #000 28%, transparent);
  --semantic-black-solid: #000;

  /* --- White hairlines / inverse text on photos --- */
  --semantic-white-border-38: color-mix(in srgb, #fff 38%, transparent);
  --semantic-white-border-22: color-mix(in srgb, #fff 22%, transparent);
  --semantic-white-border-20: color-mix(in srgb, #fff 20%, transparent);
  --semantic-white-border-18: color-mix(in srgb, #fff 18%, transparent);
  --semantic-white-border-15: color-mix(in srgb, #fff 15%, transparent);

  --semantic-text-inverse: #fff;
  --semantic-icon-inverse: #fff;
  --semantic-bullet-on-photo: #fff;

  --semantic-drop-shadow-logo: drop-shadow(0 1px 10px color-mix(in srgb, #000 65%, transparent));

  /* --- Surfaces mixed toward black --- */
  --semantic-surface-nav-drawer: color-mix(in srgb, var(--color-bg) 95%, #000);
  --semantic-surface-panel-96: color-mix(in srgb, var(--color-bg) 96%, #000);
  --semantic-surface-panel-94: color-mix(in srgb, var(--color-bg) 94%, #000);
  --semantic-surface-panel-92: color-mix(in srgb, var(--color-bg) 92%, #000);
  --semantic-surface-panel-98: color-mix(in srgb, var(--color-bg) 98%, #000);

  /* --- Cards --- */
  --semantic-card-tile-bg: color-mix(in srgb, var(--color-surface) 68%, #0a0908 32%);
  --semantic-card-gradient-a: color-mix(in srgb, var(--color-surface) 72%, #0a0908);
  --semantic-card-gradient-b: color-mix(in srgb, var(--color-bg) 55%, #000);
  --semantic-card-facts-well: color-mix(in srgb, var(--color-surface) 42%, #0a0908 58%);
  --facts-item-divider: color-mix(in srgb, var(--app-glass-border) 65%, transparent);
  --facts-rail-radius: 14px;

  /* Badges / chips on imagery */
  --semantic-photo-badge-overlay-bg: color-mix(in srgb, #000 35%, transparent);
  --semantic-photo-chip-bg-strong: color-mix(in srgb, #000 55%, transparent);
  --semantic-photo-chip-bg-soft: color-mix(in srgb, #000 40%, transparent);
  --semantic-status-hot-bg: color-mix(in srgb, #c45c3e 90%, #000);

  /* Listings / drawers */
  --semantic-listings-backdrop: rgba(0, 0, 0, 0.18);
  --semantic-shadow-card-short: 0 1px 3px rgba(0, 0, 0, 0.25);
  --semantic-shadow-sheet-lift: 0 10px 32px rgba(0, 0, 0, 0.14);

  /* Detail hero / gallery */
  --semantic-gallery-pagination-bg: hsla(0, 0%, 0%, 0.52);
  --semantic-gallery-pagination-border: hsla(0, 0%, 100%, 0.14);
  --semantic-tabs-progress-on-hero: hsla(0, 0%, 100%, 0.26);
  --semantic-tabs-scrim-reduced: hsla(0, 0%, 0%, 0.78);
  --semantic-tab-on-hero-muted: hsla(0, 0%, 100%, 0.52);
  --semantic-tab-on-hero-hover: hsla(0, 0%, 100%, 0.9);
  --semantic-tab-text-shadow: 0 1px 2px hsla(0, 0%, 0%, 0.75);
  --semantic-tab-text-shadow-strong: 0 1px 2px hsla(0, 0%, 0%, 0.85);

  /* WhatsApp brand */
  --semantic-whatsapp: #25d366;
  --semantic-whatsapp-hover: #1fb855;
  --semantic-whatsapp-subtle-bg: color-mix(in srgb, #25d366 12%, transparent);

  /* Detail composite surfaces */
  --semantic-detail-agent-rail-bg: color-mix(in srgb, var(--app-glass-bg) 85%, #000);
  --semantic-proximity-card-bg: color-mix(in srgb, var(--color-surface) 55%, #000);
  --semantic-proximity-card-media-bg: color-mix(in srgb, var(--color-surface) 70%, #111);
  --semantic-proximity-card-overlay-gradient: linear-gradient(
    to bottom,
    transparent 0%,
    rgba(0, 0, 0, 0.35) 52%,
    rgba(0, 0, 0, 0.82) 100%
  );
  --semantic-proximity-card-overlay-photo-gradient: linear-gradient(
    to bottom,
    transparent 0%,
    transparent 28%,
    rgba(0, 0, 0, 0.25) 48%,
    rgba(0, 0, 0, 0.62) 68%,
    rgba(0, 0, 0, 0.92) 88%,
    #000 100%
  );
  --semantic-proximity-card-title-color: rgba(255, 255, 255, 0.98);
  --semantic-proximity-card-desc-muted: rgba(255, 255, 255, 0.72);

  /* Full proximity subpage (/alrededor/) */
  --semantic-proximity-page-card-bg: color-mix(in srgb, var(--color-accent) 6%, var(--color-surface));
  --semantic-proximity-page-card-border: color-mix(in srgb, var(--color-border) 60%, transparent);
  --semantic-proximity-page-card-shadow: none;
  --semantic-proximity-page-media-bg: color-mix(in srgb, var(--color-accent) 14%, var(--color-surface));
  --semantic-proximity-page-media-overlay: linear-gradient(
    180deg,
    transparent 0%,
    color-mix(in srgb, var(--color-surface) 55%, transparent) 100%
  );
  --semantic-proximity-page-chip-bg: color-mix(in srgb, var(--color-accent) 10%, var(--color-surface));
  --semantic-proximity-page-chip-border: color-mix(in srgb, var(--color-accent) 22%, transparent);
  --semantic-proximity-page-privacy-bg: color-mix(in srgb, var(--color-accent) 8%, var(--color-surface));
  --semantic-proximity-page-privacy-border: color-mix(in srgb, var(--color-accent) 18%, transparent);
  --semantic-proximity-page-thumb-bg: color-mix(in srgb, var(--color-accent) 12%, var(--color-surface));

  --semantic-accent-soft-on-white: color-mix(in srgb, var(--color-accent) 82%, #fff);

  --semantic-detail-section-bg-deep: color-mix(in srgb, var(--color-bg) 76%, #080808);

  /* Property detail proximity block */
  --proximity-gold: var(--color-accent);
  --proximity-text-secondary: var(--color-text-muted);
  --proximity-card-bg: color-mix(in srgb, var(--color-accent) 6%, var(--color-surface));
  --proximity-card-border: color-mix(in srgb, var(--color-border) 55%, transparent);
  --proximity-divider: color-mix(in srgb, var(--color-border) 45%, transparent);
}

/* Swap raster map / dual-themed assets without JS */
.theme-img-pair {
  display: block;
  line-height: 0;
}

.theme-img-pair .theme-img--light {
  display: none;
}

html[data-theme="light"] .theme-img-pair .theme-img--dark {
  display: none;
}

html[data-theme="light"] .theme-img-pair .theme-img--light {
  display: block;
}


/* Light UI — premium inverse of dark: pure white shell + charcoal + gold. html[data-theme="light"] only. */

html[data-theme="light"] {
  color-scheme: light;

  /* Core — true white surfaces (no cream/grey page tint) */
  --color-bg: #ffffff;
  --color-surface: #ffffff;
  --color-text: #17130d;
  --color-text-muted: #504a42;
  --color-muted: #504a42;
  --color-border: color-mix(in srgb, var(--color-accent) 14%, #ddd5c8);
  --color-card: #ffffff;

  /* Page + depth — white field, warm-neutral shadows (not muddy grey) */
  --app-page-gradient: linear-gradient(180deg, #ffffff 0%, #ffffff 100%);
  --app-scrim-strong: linear-gradient(
    to top,
    color-mix(in srgb, #17130d 58%, transparent) 0%,
    color-mix(in srgb, #17130d 16%, transparent) 48%,
    transparent 100%
  );
  --app-shadow-soft: 0 14px 42px rgba(23, 19, 13, 0.06);
  --app-shadow-lift: 0 22px 56px rgba(23, 19, 13, 0.08);
  --app-glass-bg: #ffffff;
  --app-glass-border: color-mix(in srgb, var(--color-accent) 16%, #dcd4c8);

  /* Panels / chrome */
  --semantic-surface-nav-drawer: #ffffff;
  --semantic-surface-panel-96: #ffffff;
  --semantic-surface-panel-94: #ffffff;
  --semantic-surface-panel-92: #ffffff;
  --semantic-surface-panel-98: #ffffff;

  --semantic-listings-backdrop: rgba(23, 19, 13, 0.14);
  --semantic-shadow-card-short: 0 1px 3px rgba(23, 19, 13, 0.05);
  --semantic-shadow-sheet-lift: 0 16px 40px rgba(23, 19, 13, 0.09);

  --semantic-detail-agent-rail-bg: #ffffff;
  --semantic-detail-section-bg-deep: #ffffff;

  /* Cards — flat white; empty-media gradient is whisper gold only */
  --semantic-card-tile-bg: #ffffff;
  --semantic-card-gradient-a: #ffffff;
  --semantic-card-gradient-b: color-mix(in srgb, var(--color-accent) 7%, #ffffff);
  --semantic-card-facts-well: #ffffff;
  --semantic-facts-tile-border: color-mix(in srgb, var(--color-accent) 8%, rgba(23, 19, 13, 0.04));
  --semantic-facts-tile-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 1),
    0 12px 32px rgba(23, 19, 13, 0.045),
    0 2px 10px rgba(23, 19, 13, 0.025);
  --semantic-facts-tile-bg: #ffffff;
  --semantic-facts-rail-shadow:
    0 20px 52px rgba(23, 19, 13, 0.05),
    0 6px 18px rgba(23, 19, 13, 0.03),
    inset 0 1px 0 rgba(255, 255, 255, 1);
  --facts-item-divider: var(--semantic-proximity-page-card-border);

  --semantic-proximity-card-bg: #ffffff;
  --semantic-proximity-card-media-bg: #ffffff;

  --semantic-proximity-page-card-bg: #ffffff;
  --semantic-proximity-page-card-border: color-mix(in srgb, var(--color-accent) 14%, #dcd4c8);
  --semantic-proximity-page-card-shadow: var(--semantic-shadow-card-short);
  --semantic-proximity-page-media-bg: #ffffff;
  --semantic-proximity-page-media-overlay: linear-gradient(
    180deg,
    transparent 0%,
    color-mix(in srgb, #ffffff 88%, transparent) 100%
  );
  --semantic-proximity-page-chip-bg: #ffffff;
  --semantic-proximity-page-chip-border: color-mix(in srgb, var(--color-accent) 14%, #dcd4c8);
  --semantic-proximity-page-privacy-bg: #ffffff;
  --semantic-proximity-page-privacy-border: color-mix(in srgb, var(--color-accent) 14%, #dcd4c8);
  --semantic-proximity-page-thumb-bg: #ffffff;

  --proximity-card-bg: #ffffff;
  --proximity-card-border: #eae4d6;
  --proximity-text-secondary: #8a7f6a;
  --proximity-divider: #e8e2d4;
}

/* ---------- Hero (photo): dark-mode contrast — white copy + scrims (not charcoal on image) ---------- */

html[data-theme="light"] .hero::after {
  background: linear-gradient(
    to top,
    color-mix(in srgb, #17130d 68%, transparent) 0%,
    color-mix(in srgb, #000 38%, transparent) 40%,
    transparent 100%
  );
}

html[data-theme="light"] body.page-home .hero::after {
  background:
    linear-gradient(
      to bottom,
      color-mix(in srgb, #000 58%, transparent) 0%,
      transparent 46%
    ),
    linear-gradient(
      to top,
      color-mix(in srgb, #17130d 85%, transparent) 0%,
      color-mix(in srgb, #000 52%, transparent) 58%,
      transparent 100%
    );
}

html[data-theme="light"] .hero .hero-headline {
  color: #ffffff;
  text-shadow:
    0 2px 32px rgba(0, 0, 0, 0.55),
    0 1px 3px rgba(0, 0, 0, 0.45);
}

html[data-theme="light"] .hero .hero-subtitle {
  color: rgba(255, 255, 255, 0.95);
  text-shadow:
    0 1px 20px rgba(0, 0, 0, 0.48),
    0 1px 2px rgba(0, 0, 0, 0.35);
}

html[data-theme="light"] .hero .hero-cta--map {
  color: #17130d;
}

html[data-theme="light"] .hero .hero-cta--map:hover {
  color: #17130d;
}

/* Homepage trust rail — white floating strip, dark type (no white-on-bright image) */
html[data-theme="light"] body.page-home .hero-trust-shell {
  margin-top: var(--space-6);
}

html[data-theme="light"] body.page-home .hero-trust {
  margin: 0;
  padding: var(--space-4);
  border-radius: var(--app-radius-lg);
  background: #ffffff;
  border: 1px solid color-mix(in srgb, var(--color-accent) 22%, #dcd4c8);
  box-shadow:
    0 12px 36px rgba(23, 19, 13, 0.1),
    0 1px 0 rgba(255, 255, 255, 0.9) inset;
  gap: var(--space-4);
  box-sizing: border-box;
}

html[data-theme="light"] body.page-home .hero-trust__title {
  color: var(--color-text);
  text-shadow: none;
}

html[data-theme="light"] body.page-home .hero-trust__meta {
  color: var(--color-text-muted);
}

/* Above-the-fold search — solid white bar */
html[data-theme="light"] .home-discover-search__field {
  background: #ffffff;
  border-color: color-mix(in srgb, var(--color-accent) 18%, #dcd4c8);
  box-shadow: var(--app-shadow-soft);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

/* ---------- Global UI: chips, buttons, nav (no translucent grey pills on white) ---------- */

html[data-theme="light"] .btn-primary,
html[data-theme="light"] .btn-primary:hover {
  color: #17130d;
}

html[data-theme="light"] .btn-secondary {
  background: #ffffff;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border-color: color-mix(in srgb, var(--color-accent) 22%, #dcd4c8);
  box-shadow: var(--semantic-shadow-card-short);
}

html[data-theme="light"] .btn-secondary:hover {
  border-color: color-mix(in srgb, var(--color-accent) 45%, #dcd4c8);
}

html[data-theme="light"] .app-chip {
  background: #ffffff;
  border-color: color-mix(in srgb, var(--color-accent) 14%, #dcd4c8);
}

html[data-theme="light"] .app-chip.is-active {
  background: #17130d;
  color: #ffffff;
}

html[data-theme="light"] .app-bottom-nav__viewport {
  background: color-mix(in srgb, #ffffff 88%, rgba(255, 253, 248, 0) 12%);
  border-color: color-mix(in srgb, var(--color-accent) 14%, #dcd4c8);
}

html[data-theme="light"] .app-bottom-nav__track {
  background: #ffffff;
}

html[data-theme="light"] .app-bottom-nav__browse-favorites-trigger {
  background: #ffffff;
}

html[data-theme="light"] .favorites-menu-toggle,
html[data-theme="light"] .menu-toggle {
  background: #ffffff;
}

html[data-theme="light"] .app-bottom-settings__theme-track {
  background: color-mix(in srgb, var(--color-accent) 18%, #ffffff);
  border-color: color-mix(in srgb, var(--color-accent) 28%, #dcd4c8);
}

html[data-theme="light"] .site-footer {
  background: #ffffff;
  border-top-color: color-mix(in srgb, var(--color-accent) 12%, #dcd4c8);
}

html[data-theme="light"] .contact-action-btn,
html[data-theme="light"] .mortgage-calc {
  background: #ffffff;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border-color: color-mix(in srgb, var(--color-accent) 18%, #dcd4c8);
}

/* ---------- Property cards: listing status + meta contrast ---------- */

html[data-theme="light"] .property-card .badge {
  background: linear-gradient(
    145deg,
    color-mix(in srgb, var(--color-accent) 92%, #fff6e8) 0%,
    color-mix(in srgb, var(--color-accent-dark) 95%, #17130d) 100%
  );
  color: #17130d;
  border-color: color-mix(in srgb, var(--color-accent) 48%, #17130d);
  font-weight: 700;
  box-shadow: 0 4px 16px color-mix(in srgb, var(--color-accent) 28%, transparent);
}

html[data-theme="light"] .property-card .card-body-location__pin {
  color: var(--color-accent);
}

html[data-theme="light"] .property-card .card-body-op,
html[data-theme="light"] .property-card .card-body-location {
  color: var(--color-text-muted);
}

html[data-theme="light"] .map-list-row {
  background: #ffffff;
  border-color: color-mix(in srgb, var(--color-accent) 14%, #dcd4c8);
  box-shadow: var(--semantic-shadow-card-short);
}

html[data-theme="light"] .map-list-row:hover {
  border-color: color-mix(in srgb, var(--color-accent) 38%, #dcd4c8);
}

/* Detail hero — operation pill: flat, low emphasis (no gradient fill) */
html[data-theme="light"] .gallery-status-badge {
  color: color-mix(in srgb, var(--color-accent) 78%, #17130d);
  background: color-mix(in srgb, var(--color-text-muted) 10%, #fff);
  border-color: color-mix(in srgb, var(--color-accent) 28%, #dcd4c8);
  box-shadow: none;
}

/* ---- Homepage: undo surface+#0a0908 mixes that read as SaaS grey on white ---- */

html[data-theme="light"] .home-goal-panel__card {
  background: #ffffff;
  border-color: color-mix(in srgb, var(--color-accent) 14%, #dcd4c8);
  box-shadow: var(--app-shadow-soft);
}

html[data-theme="light"] .home-goal-panel__item:not(:last-child)::after {
  background: color-mix(in srgb, var(--color-accent) 10%, #dcd4c8);
}

html[data-theme="light"] .home-goal-panel__row-sub {
  color: var(--color-text-muted);
}

html[data-theme="light"] .home-property-type-grid__card {
  background: #ffffff;
  border-color: color-mix(in srgb, var(--color-accent) 14%, #dcd4c8);
  box-shadow: var(--app-shadow-soft);
}

html[data-theme="light"] .home-property-type-grid__card:hover {
  background: color-mix(in srgb, var(--color-accent) 6%, #ffffff);
  border-color: color-mix(in srgb, var(--color-accent) 32%, #dcd4c8);
}

html[data-theme="light"] .home-lifestyle-rail__card {
  background: #ffffff;
  border-color: color-mix(in srgb, var(--color-accent) 14%, #dcd4c8);
  box-shadow: var(--app-shadow-soft);
}

html[data-theme="light"] .home-lifestyle-rail__card:hover {
  background: color-mix(in srgb, var(--color-accent) 7%, #ffffff);
  border-color: color-mix(in srgb, var(--color-accent) 30%, #dcd4c8);
}

html[data-theme="light"] .home-agency-spotlight__card,
html[data-theme="light"] .home-agency-spotlight__trust {
  background: #ffffff;
  border-color: color-mix(in srgb, var(--color-accent) 14%, #dcd4c8);
  box-shadow: var(--app-shadow-soft);
}

html[data-theme="light"] .home-agency-spotlight__office {
  border-color: color-mix(in srgb, var(--color-accent) 12%, #dcd4c8);
}

html[data-theme="light"] .home-agency-spotlight__role,
html[data-theme="light"] .home-agency-spotlight__langs {
  color: var(--color-text-muted);
}

html[data-theme="light"] .home-agency-spotlight__trust-line--sub {
  color: var(--color-text-muted);
}

html[data-theme="light"] .home-agency-spotlight__trust-item {
  border-right-color: color-mix(in srgb, var(--color-accent) 12%, #dcd4c8);
}

html[data-theme="light"] .home-agency-spotlight__trust-edge.app-hscroll-fade {
  --app-hscroll-fade-color: #ffffff;
}

html[data-theme="light"] .home-agency-spotlight__btn {
  background: #ffffff;
  color: var(--color-accent);
  border-color: color-mix(in srgb, var(--color-accent) 42%, #dcd4c8);
}

html[data-theme="light"] .home-agency-spotlight__btn:hover {
  background: color-mix(in srgb, var(--color-accent) 9%, #ffffff);
  border-color: color-mix(in srgb, var(--color-accent) 58%, transparent);
}

html[data-theme="light"] .home-map-search-cta__card {
  background: #ffffff;
  border-color: color-mix(in srgb, var(--color-accent) 18%, #dcd4c8);
  box-shadow: var(--app-shadow-soft);
}

html[data-theme="light"] .home-map-search-cta__lead {
  color: var(--color-text-muted);
}

html[data-theme="light"] .home-map-search-cta__primary,
html[data-theme="light"] .home-map-search-cta__primary-icon {
  color: var(--color-text);
}

html[data-theme="light"] .home-map-search-cta__visual-inner {
  background-color: #ffffff;
  background-image:
    radial-gradient(ellipse 140% 80% at 80% 40%, color-mix(in srgb, var(--color-accent) 14%, transparent) 0%, transparent 55%),
    repeating-linear-gradient(
      -12deg,
      transparent 0,
      transparent 18px,
      color-mix(in srgb, var(--color-accent) 10%, transparent) 18px,
      color-mix(in srgb, var(--color-accent) 10%, transparent) 19px
    );
}

html[data-theme="light"] .home-map-search-cta__map-link {
  box-shadow: 0 10px 32px rgba(23, 19, 13, 0.08);
}

html[data-theme="light"] .home-map-search-cta__map-link:hover {
  box-shadow:
    0 14px 40px rgba(23, 19, 13, 0.1),
    0 0 28px color-mix(in srgb, var(--color-accent) 22%, transparent);
}

html[data-theme="light"] .home-map-search-cta__feature-icon {
  background: #ffffff;
  border-color: color-mix(in srgb, var(--color-accent) 38%, #dcd4c8);
}

html[data-theme="light"] .home-map-search-cta__feature-sub {
  color: var(--color-text-muted);
}

html[data-theme="light"] .home-auto-landings__card:not(.home-auto-landings__card--photo) {
  --home-auto-landings-map-frame-bg: color-mix(in srgb, var(--color-bg) 88%, #f0ebe3);
  background: #ffffff;
  border-color: color-mix(in srgb, var(--color-accent) 28%, #dcd4c8);
}

html[data-theme="light"] .home-auto-landings__card:not(.home-auto-landings__card--photo) .home-auto-landings__map-frame {
  border-color: color-mix(in srgb, var(--color-accent) 42%, #dcd4c8);
  box-shadow: inset 0 1px 0 color-mix(in srgb, #fff 65%, transparent);
}

html[data-theme="light"] .home-auto-landings__card:not(.home-auto-landings__card--photo) .home-auto-landings__card-icon-ring {
  background: color-mix(in srgb, var(--color-bg) 92%, #f5f0e8);
}

/* Map search — bright landmasses, warm gold strokes (no muddy grey fills) */
html[data-theme="light"] .page-map_search .map-search__results-section {
  background: #ffffff;
  border-color: color-mix(in srgb, var(--color-accent) 12%, #dcd4c8);
  box-shadow: 0 -10px 36px rgba(23, 19, 13, 0.06);
}

html[data-theme="light"] .page-map_search .map-search__drawer-backdrop {
  background: rgba(23, 19, 13, 0.14);
}

html[data-theme="light"] .map-search__drawer-pill {
  background: color-mix(in srgb, var(--color-accent) 52%, #17130d);
}

html[data-theme="light"] .map-search__mun {
  fill: #faf9f7;
  stroke: color-mix(in srgb, var(--color-accent) 62%, #b09a72);
}

html[data-theme="light"] .map-search__mun[data-oid="palma"] {
  fill: #f8f7f5;
}

html[data-theme="light"] .map-search__mun[data-oid="northwest"] {
  fill: #f9f8f6;
}

html[data-theme="light"] .map-search__mun[data-oid="north"] {
  fill: #faf9f7;
}

html[data-theme="light"] .map-search__mun[data-oid="east"] {
  fill: #f7f6f4;
}

html[data-theme="light"] .map-search__mun[data-oid="south"] {
  fill: #faf9f7;
}

html[data-theme="light"] .map-search__mun[data-oid="southwest"] {
  fill: #f8f7f5;
}

html[data-theme="light"] .map-search__mun[data-oid="central"] {
  fill: #f9f8f6;
}

html[data-theme="light"] .map-search__mun:hover {
  filter: brightness(0.985);
}

html[data-theme="light"] .map-search__mun.is-focus {
  stroke: #ffffff;
}

html[data-theme="light"] .map-search__pin-name {
  stroke: rgba(255, 255, 255, 0.96);
}

html[data-theme="light"] .map-search__chip-remove:hover,
html[data-theme="light"] .map-search__chip-remove:focus-visible {
  background: rgba(23, 19, 13, 0.06);
}

/* ---------- Shared glass utility + sort menus ---------- */

html[data-theme="light"] .app-glass {
  background: #ffffff;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

html[data-theme="light"] .listings-sort-menu {
  background: #ffffff;
}

html[data-theme="light"] .filter-bar select,
html[data-theme="light"] .map-search-filter-form select {
  background: #ffffff;
}

/* ---------- Listings page — white controls (no translucent grey pills) ---------- */

html[data-theme="light"] .listings-toolbar {
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

html[data-theme="light"] .listings-toolbar__icon-btn,
html[data-theme="light"] .listings-grid-meta__sort-btn {
  background: #ffffff;
}

html[data-theme="light"] body.page-listings .listings-grid-meta,
html[data-theme="light"] body.page-map_search .listings-grid-meta {
  background: color-mix(in srgb, var(--color-bg) 94%, transparent);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

html[data-theme="light"] .listings-filter-drawer__seg-btn,
html[data-theme="light"] .listings-filter-drawer__type-tile,
html[data-theme="light"] .listings-filter-drawer__band-chip,
html[data-theme="light"] .listings-filter-drawer__picker,
html[data-theme="light"] .listings-filter-drawer__lifestyle-tile {
  background: #ffffff;
}

html[data-theme="light"] .listings-filter-drawer__switch-track {
  background: #ffffff;
}

html[data-theme="light"]
  .listings-filter-drawer__switch-input:checked
  + .listings-filter-drawer__switch-track {
  background: color-mix(in srgb, var(--color-accent) 28%, #ffffff);
}

html[data-theme="light"] .map-search-filter-panel__scroll {
  background: #ffffff;
}

/* ---------- Property detail — hero section nav (white glass rail) ---------- */

html[data-theme="light"] body.detail-hero-shell {
  --detail-tabs-scrim: rgba(255, 255, 255, 0.94);
  --detail-tabs-rail-border: color-mix(in srgb, var(--color-accent) 22%, transparent);
  --detail-tabs-rail-shadow:
    0 10px 30px rgba(20, 18, 14, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
  --detail-tabs-pill-bg: linear-gradient(
    180deg,
    color-mix(in srgb, var(--color-accent) 16%, transparent),
    color-mix(in srgb, var(--color-accent) 6%, transparent)
  );
  --detail-tabs-pill-border: color-mix(in srgb, var(--color-accent) 32%, transparent);
  --detail-tabs-pill-glow: 0 6px 18px color-mix(in srgb, var(--color-accent) 13%, transparent);
  --semantic-tab-on-hero-muted: rgba(20, 20, 20, 0.54);
  --semantic-tab-on-hero-hover: rgba(20, 20, 20, 0.82);
  --semantic-tabs-progress-on-hero: rgba(20, 18, 14, 0.1);
  --semantic-tabs-scrim-reduced: rgba(255, 255, 255, 0.98);
}

html[data-theme="light"] body.detail-hero-shell .property-detail__tabs .property-detail__tab {
  font-weight: 650;
}

html[data-theme="light"] body.detail-hero-shell .property-detail__tabs .property-detail__tab.is-active {
  color: color-mix(in srgb, var(--color-accent) 92%, #5c4520);
  text-shadow: none;
}

html[data-theme="light"] body.detail-hero-shell .property-detail__tabs-indicator {
  box-shadow:
    var(--detail-tabs-pill-glow),
    inset 0 1px 0 rgba(255, 255, 255, 0.65);
}

html[data-theme="light"] body.detail-hero-shell .property-detail__tabs-indicator::after {
  background: color-mix(in srgb, var(--color-accent) 82%, #c4a060);
  box-shadow: 0 0 10px color-mix(in srgb, var(--color-accent) 35%, transparent);
  opacity: 1;
}

/* ---------- Detail — agent CTA + icon rails on white ---------- */

html[data-theme="light"] .property-detail-enquiry__agent-card {
  background: transparent;
}

html[data-theme="light"] .property-detail-agent-mobile__action:not(.property-detail-agent-mobile__action--whatsapp) {
  background: #ffffff;
}

html[data-theme="light"] .property-detail-agent-mobile__action:not(.property-detail-agent-mobile__action--whatsapp):hover,
html[data-theme="light"]
  .property-detail-agent-mobile__action:not(.property-detail-agent-mobile__action--whatsapp):focus-visible {
  background: color-mix(in srgb, var(--color-accent) 9%, #ffffff);
}

html[data-theme="light"] .property-detail-enquiry__agent-action:not(.property-detail-enquiry__agent-action--whatsapp):hover,
html[data-theme="light"]
  .property-detail-enquiry__agent-action:not(.property-detail-enquiry__agent-action--whatsapp):focus-visible {
  background: color-mix(in srgb, var(--color-accent) 9%, transparent);
}

html[data-theme="light"] .enquiry-type-tab__face,
html[data-theme="light"] .enquiry-type-tab--action .enquiry-type-tab__face {
  background: #ffffff;
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--color-accent) 14%, #dcd4c8);
}

html[data-theme="light"] .property-detail-enquiry__rail-form input,
html[data-theme="light"] .property-detail-enquiry__rail-form textarea,
html[data-theme="light"] .property-detail-enquiry__rail-form select {
  background: #ffffff;
  border: 1px solid color-mix(in srgb, var(--color-accent) 16%, #dcd4c8);
}

/* ---------- Contact + SVG map frame ---------- */

html[data-theme="light"] .contact-page__panel {
  background: #ffffff;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

html[data-theme="light"] .detail-svg-map__frame,
html[data-theme="light"] .property-detail-map .detail-svg-map__frame {
  background: #ffffff;
}

/* ---------- Proximity subpage (/alrededor/) — white field, clean bordered cards ---------- */

html[data-theme="light"] .property-proximity-page {
  background: #ffffff;
}

html[data-theme="light"] .property-proximity-distancia-card,
html[data-theme="light"] .property-proximity-lifestyle-card {
  background: var(--semantic-proximity-page-card-bg);
  border-color: var(--semantic-proximity-page-card-border);
  box-shadow: var(--semantic-proximity-page-card-shadow);
}

html[data-theme="light"] .property-proximity-distancia-card__media {
  background-color: var(--semantic-proximity-page-media-bg);
}

html[data-theme="light"] .property-proximity-distancia-card__overlay {
  background: var(--semantic-proximity-page-media-overlay);
}

html[data-theme="light"] .property-proximity-highlights__chip {
  background: var(--semantic-proximity-page-chip-bg);
  border-color: var(--semantic-proximity-page-chip-border);
  box-shadow: var(--semantic-shadow-card-short);
}

html[data-theme="light"] .property-proximity-privacy {
  background: var(--semantic-proximity-page-privacy-bg);
  border-color: var(--semantic-proximity-page-privacy-border);
  box-shadow: var(--semantic-shadow-card-short);
}

html[data-theme="light"] .property-proximity-list__thumb {
  background-color: var(--semantic-proximity-page-thumb-bg);
  border: 1px solid var(--semantic-proximity-page-card-border);
}

/* ---------- Fact tiles (detail hero, listing + featured cards) — USP-style white glow ---------- */

html[data-theme="light"] .detail-proximity-card,
html[data-theme="light"] .detail-proximity-daily-card {
  box-shadow: var(--semantic-shadow-card-short);
}

html[data-theme="light"] body.detail-hero-shell .gallery-hero-info .card-facts-wrap .card-facts__item,
html[data-theme="light"] .property-card .card-facts__item {
  border: 1px solid var(--semantic-facts-tile-border);
  box-shadow: var(--semantic-facts-tile-shadow);
  background: var(--semantic-facts-tile-bg);
}

html[data-theme="light"] body.detail-hero-shell .gallery-hero-info .card-facts-wrap .card-facts__item::before,
html[data-theme="light"] body.detail-hero-shell .gallery-hero-info .card-facts-wrap .card-facts__item + .card-facts__item::before,
html[data-theme="light"] .property-card .card-facts__item::before,
html[data-theme="light"] .property-card .card-facts__item + .card-facts__item::before {
  content: none;
}


/* Typography — unified sans-serif system */

body {
  font-family: var(--font-sans);
  font-size: 1rem;
  line-height: 1.55;
  font-weight: var(--fw-regular);
  color: var(--color-text);
  background: var(--app-page-gradient);
  background-color: var(--color-bg);
  -webkit-font-smoothing: antialiased;
}

.font-display,
.hero-headline,
.home-recent__title,
.detail-section-heading,
.listings-toolbar .results-count,
.card-body-title,
.landings-index__title,
.blog-index__title,
.contact-page__title,
.sell-page__title,
.map-search__results-title,
.property-detail__tabs .property-detail__tab,
.enquiry-panel__title {
  font-family: var(--font-sans);
  font-weight: var(--fw-medium);
  letter-spacing: var(--tracking-tight);
  line-height: 1.15;
}

.text-subsection-label {
  font-family: var(--font-sans);
  font-size: var(--text-subsection-label);
  font-weight: var(--fw-bold);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
}

.text-eyebrow {
  font-family: var(--font-sans);
  font-size: var(--text-eyebrow);
  font-weight: var(--fw-regular);
  line-height: 1.35;
}

.text-list-primary {
  font-family: var(--font-sans);
  font-size: var(--text-list-primary);
}

.text-list-secondary {
  font-family: var(--font-sans);
  font-size: var(--text-list-secondary);
}

h1 {
  font-family: var(--font-sans);
  font-weight: var(--fw-medium);
  font-size: var(--text-3xl);
  letter-spacing: var(--tracking-tight);
  margin: 0 0 var(--space-4);
  color: var(--color-text);
}

h2 {
  font-family: var(--font-sans);
  font-size: var(--text-2xl);
  font-weight: var(--fw-medium);
  margin: 0 0 var(--space-4);
  color: var(--color-text);
}

h3 {
  font-family: var(--font-sans);
  font-size: var(--text-lg);
  font-weight: var(--fw-semibold);
  margin: 0 0 var(--space-2);
  color: var(--color-text);
}

a {
  color: var(--color-accent);
  text-decoration: none;
  transition: color 0.15s ease, opacity 0.15s ease;
}

a:hover {
  color: color-mix(in srgb, var(--color-accent) 85%, #fff);
}

p {
  margin: 0 0 var(--space-3);
  color: var(--color-text-muted);
}

small,
.muted {
  color: var(--color-text-muted);
  font-size: 0.875rem;
}


/* App shell — containers, page chrome */

:root {
  /* Legacy strip removed; map-search drawer math still references this token. */
  --site-sticky-cta-height: 0px;
}

.container {
  width: 100%;
  max-width: 72rem;
  margin-inline: auto;
  padding-inline: var(--space-4);
}

body.has-app-bottom-nav .app-main {
  padding-bottom: var(--app-main-pad-bottom);
}

body.has-app-bottom-nav.is-property-detail-iframe .app-main {
  padding-bottom: var(--space-4);
}

body {
  padding-top: 0;
}

.site-footer-zone {
  position: relative;
  z-index: 2;
}

/*
 * Footer follows fixed .app-bottom-nav in the DOM; without extra bottom inset,
 * the last footer lines sit under the glass pill nav on mobile.
 */
@media (max-width: 768px) {
  html:not(.is-property-detail-iframe)
    body.has-app-bottom-nav:not(.page-map_search)
    .site-footer-zone {
    padding-bottom: var(--app-main-pad-bottom);
  }
}

/* Iframe detail: strip app chrome spacing */
.is-property-detail-iframe {
  padding-top: 0 !important;
  background: var(--color-bg);
}

.is-property-detail-iframe .site-header,
.is-property-detail-iframe .app-bottom-nav,
.is-property-detail-iframe .site-footer-zone {
  display: none !important;
}

/* Section rhythm — not CMS grey stacks */
.section {
  padding-block: var(--space-8);
}

@media (min-width: 769px) {
  .section {
    padding-block: var(--space-10);
  }
}


/* Buttons, pills, glass surfaces, menus */

.btn-primary,
.btn-secondary,
.btn-contact {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  min-height: 3rem;
  padding: 0.65rem 1.35rem;
  border-radius: var(--app-radius-pill);
  font-family: var(--font-sans);
  font-size: var(--text-base);
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  border: 1px solid transparent;
  transition:
    transform 0.15s ease,
    box-shadow 0.2s ease,
    background 0.2s ease;
}

.btn-primary {
  background: linear-gradient(
    145deg,
    color-mix(in srgb, var(--color-accent) 100%, #fff 8%) 0%,
    var(--color-accent-dark) 100%
  );
  color: var(--color-bg);
  box-shadow: 0 4px 20px color-mix(in srgb, var(--color-accent) 35%, transparent);
}

.btn-primary:hover {
  color: var(--color-bg);
  transform: translateY(-1px);
  box-shadow: 0 8px 28px color-mix(in srgb, var(--color-accent) 45%, transparent);
}

.btn-secondary {
  background: var(--app-glass-bg);
  backdrop-filter: blur(var(--app-blur));
  -webkit-backdrop-filter: blur(var(--app-blur));
  border-color: var(--app-glass-border);
  color: var(--color-text);
  box-shadow: var(--app-shadow-soft);
}

.btn-secondary:hover {
  border-color: color-mix(in srgb, var(--color-accent) 40%, var(--color-border));
  color: var(--color-text);
}

.btn-contact {
  background: transparent;
  border: 1px solid color-mix(in srgb, var(--color-accent) 55%, transparent);
  color: var(--color-accent);
}

.btn-contact:hover {
  background: color-mix(in srgb, var(--color-accent) 12%, transparent);
  color: var(--color-accent);
}

/* Glass panel */
.app-glass {
  background: var(--app-glass-bg);
  backdrop-filter: blur(var(--app-blur));
  -webkit-backdrop-filter: blur(var(--app-blur));
  border: 1px solid var(--app-glass-border);
  border-radius: var(--app-radius-lg);
  box-shadow: var(--app-shadow-soft);
}

/* Chip / pill filters (horizontal scroll) */
.app-chip-row {
  display: flex;
  gap: var(--space-2);
  overflow-x: auto;
  scroll-snap-type: x proximity;
  padding-block: var(--space-2);
  margin-inline: calc(-1 * var(--space-4));
  padding-inline: var(--space-4);
  scrollbar-width: none;
}

.app-chip-row::-webkit-scrollbar {
  display: none;
}

.app-chip {
  flex: 0 0 auto;
  scroll-snap-align: star;
  padding: 0.55rem 1.1rem;
  border-radius: var(--app-radius-pill);
  font-size: var(--text-sm);
  font-weight: 500;
  color: var(--color-text);
  background: color-mix(in srgb, var(--color-surface) 55%, transparent);
  border: 1px solid var(--app-glass-border);
  white-space: nowrap;
  transition: background 0.15s ease, border-color 0.15s ease;
}

.app-chip:hover {
  border-color: color-mix(in srgb, var(--color-accent) 35%, transparent);
}

.app-chip.is-active {
  background: var(--color-text);
  color: var(--color-bg);
  border-color: transparent;
}

/* Sort / filter menus shared pattern */
.listings-sort-menu {
  position: absolute;
  top: calc(100% + var(--space-2));
  right: 0;
  min-width: 12.5rem;
  max-height: min(70vh, 22rem);
  overflow-y: auto;
  overscroll-behavior: contain;
  z-index: 50;
  padding: var(--space-3);
  border-radius: var(--app-radius-md);
  background: color-mix(in srgb, var(--color-surface) 92%, #000);
  border: 1px solid var(--app-glass-border);
  box-shadow: var(--app-shadow-lift);
}

.listings-sort-menu__title {
  margin: 0 0 var(--space-2);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

.listings-sort-menu__option {
  display: block;
  width: 100%;
  text-align: left;
  padding: var(--space-2) var(--space-3);
  margin: 0;
  border-radius: var(--app-radius-sm);
  font-size: 0.9rem;
  color: var(--color-text);
  border: none;
  background: transparent;
}

.listings-sort-menu__option:hover,
.listings-sort-menu__option:focus-visible {
  background: color-mix(in srgb, var(--color-accent) 12%, transparent);
  outline: none;
}

/* Filter bar selects (listings + map) — glass pills */
.filter-bar select,
.map-search-filter-form select {
  border-radius: var(--app-radius-pill);
  border: 1px solid var(--app-glass-border);
  background: color-mix(in srgb, var(--color-surface) 60%, transparent);
  color: var(--color-text);
  padding: 0.5rem 0.85rem;
  font-size: 0.875rem;
  min-height: 2.875rem;
}

.filter-bar__sort-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

/* Expand toggles */
.detail-expand-toggle {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  margin-top: var(--space-3);
  padding: 0;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--color-accent);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.detail-expand-toggle--text-link {
  background: none;
  border: none;
}

@media (max-width: 768px) {
  body.detail-hero-shell .detail-expand-toggle {
    font-size: 0.98rem;
    margin-top: var(--space-4);
  }
}


/* Property cards — server + JS (0-search-filters.js) share these classes */

.property-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-12);
}

@media (min-width: 480px) {
  .property-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-12);
  }
}

.property-card {
  position: relative;
  border-radius: var(--app-radius-lg);
  overflow: hidden;
  background: var(--semantic-card-tile-bg);
  border: 1px solid color-mix(in srgb, var(--app-glass-border) 100%, transparent);
  box-shadow: var(--app-shadow-soft);
  display: flex;
  flex-direction: column;
}

.property-card .card-media {
  position: relative;
  aspect-ratio: 6 / 5;
  overflow: hidden;
  isolation: isolate;
}

/* Swiper photos only — no gradient wash (badges, nav, pagination unchanged). */
.property-card .card-media::after {
  content: none;
  display: none;
}

.property-card .card-swiper-link,
.property-card .card-single-image,
.property-card .swiper,
.property-card .swiper-wrapper,
.property-card .swiper-slide {
  height: 100%;
}

.property-card .swiper-slide img,
.property-card .card-single-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.property-card .card-single-image.card-single-image--empty {
  width: 100%;
  height: 100%;
  min-height: 100%;
  background:
    linear-gradient(
      135deg,
      var(--semantic-card-gradient-a),
      var(--semantic-card-gradient-b)
    );
}

.property-card .card-single-image.card-single-image--empty::after {
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  width: 3rem;
  height: 3rem;
  opacity: 0.28;
  background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23faf8f4'%3E%3Cpath d='M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z'/%3E%3C/svg%3E");
  pointer-events: none;
}

.property-card .card-single-image {
  position: relative;
}

.property-card .card-media__stage {
  position: relative;
  height: 100%;
}

.property-card .card-swiper-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 3;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 50%;
  background: var(--semantic-photo-badge-overlay-bg);
  color: var(--semantic-text-inverse);
  font-size: 1.25rem;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--semantic-white-border-22);
}

.property-card .card-swiper-prev {
  left: var(--space-2);
}

.property-card .card-swiper-next {
  right: var(--space-2);
}

.property-card .card-swiper-pagination {
  bottom: var(--space-3) !important;
  z-index: 3;
}

.property-card .card-swiper-pagination .swiper-pagination-bullet {
  background: var(--semantic-bullet-on-photo);
  opacity: 0.35;
}

.property-card .card-swiper-pagination .swiper-pagination-bullet-active {
  background: var(--color-accent);
  opacity: 1;
}

.property-card .card-badges {
  position: absolute;
  top: var(--space-3);
  left: var(--space-3);
  z-index: 4;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}

.property-card .card-badge {
  padding: 0.2rem 0.55rem;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border-radius: var(--app-radius-pill);
  background: var(--semantic-status-hot-bg);
  color: var(--semantic-text-inverse);
}

.property-card .badge {
  position: absolute;
  top: var(--space-3);
  right: var(--space-3);
  z-index: 4;
  padding: 0.25rem 0.65rem;
  font-size: 0.7rem;
  font-weight: 600;
  border-radius: var(--app-radius-pill);
  background: var(--semantic-photo-chip-bg-strong);
  color: var(--color-text);
  border: 1px solid var(--app-glass-border);
}

/* Favorite heart on card — bottom-right so it doesn’t cover the status badge (top-right) */
.property-card .card-media .card-favorite-btn {
  position: absolute;
  top: auto;
  bottom: var(--space-3);
  right: var(--space-3);
  z-index: 5;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--semantic-photo-chip-bg-soft);
  border: 1px solid var(--semantic-white-border-18);
  color: var(--semantic-text-inverse);
  transition: transform 0.15s ease, color 0.15s ease;
}

.property-card .card-favorite-btn.is-favorite {
  color: var(--color-accent);
  border-color: color-mix(in srgb, var(--color-accent) 45%, transparent);
}

.property-card .card-favorite-btn:hover {
  transform: scale(1.05);
}

.property-card .card-body {
  position: relative;
  padding: var(--space-8) var(--space-6);
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
  flex: 1;
  z-index: 2;
}

.property-card .card-body__link {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  color: inherit;
  text-decoration: none;
}

.property-card .card-body__link:hover .card-body-title {
  color: var(--color-accent);
}

.property-card .card-body-price-line {
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-1);
}

.property-card .card-body-price {
  font-family: var(--font-sans);
  font-size: var(--text-lg);
  font-weight: var(--fw-semibold);
  color: var(--color-accent);
  letter-spacing: 0.02em;
}

.property-card .card-body-op {
  font-family: var(--font-sans);
  font-size: var(--text-subsection-label);
  color: color-mix(in srgb, var(--color-text-muted) 94%, transparent);
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.property-card .card-body-location {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin: 0;
  font-family: var(--font-sans);
  font-size: var(--text-subsection-label);
  color: color-mix(in srgb, var(--color-text-muted) 94%, transparent);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  line-height: 1.35;
}

.property-card .card-body-location__pin {
  width: 0.95rem;
  height: 0.95rem;
  flex-shrink: 0;
  color: color-mix(in srgb, var(--color-text-muted) 88%, #fff);
}

.property-card .card-body-location__pin path {
  fill: currentColor;
}

.property-card .card-body-title {
  margin: 0;
  font-family: var(--font-sans);
  font-size: clamp(1.12rem, 2.8vw, var(--text-xl));
  font-weight: var(--fw-semibold);
  color: var(--color-text);
  line-height: 1.35;
  letter-spacing: 0.01em;
}

/* Facts — shared markup used in many contexts; keep compact by default. */
.card-facts-wrap {
  margin-top: var(--space-3);
}

.card-facts {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: stretch;
  width: 100%;
}

.card-facts__item {
  flex: 1 1 0;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.22rem;
  min-width: 0;
  margin: 0;
  padding: 0.7rem 0.85rem;
  text-align: center;
  position: relative;
}

.card-facts__item + .card-facts__item {
  border-inline-start: none;
}

.card-facts__item + .card-facts__item::before {
  content: "";
  position: absolute;
  inset-block: 18%;
  inset-inline-start: 0;
  width: 1px;
  background: var(--facts-item-divider);
}

.card-facts__icon {
  color: var(--color-accent);
  line-height: 0;
  flex-shrink: 0;
}

.card-facts__icon svg {
  width: 1.35rem;
  height: 1.35rem;
  display: block;
}

.card-facts__value {
  margin: 0;
  font-family: var(--font-ui);
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--color-text);
  line-height: 1.25;
  white-space: nowrap;
}

.card-facts__label {
  margin: 0;
  font-family: var(--font-ui);
  font-size: 0.68rem;
  font-weight: 400;
  line-height: 1.25;
  color: color-mix(in srgb, var(--color-text-muted) 88%, transparent);
}

.card-facts__minimap {
  justify-content: center;
  gap: 0;
  padding-inline: 0.2rem;
}

.card-facts__minimap-wrap {
  width: min(100%, 4.25rem);
  max-height: clamp(2rem, 6.5vw, 2.5rem);
  margin-inline: auto;
  line-height: 0;
  box-sizing: border-box;
  border: none;
  border-radius: 0;
  overflow: visible;
  background: transparent;
}

.card-facts__minimap-img {
  display: block;
  width: 100%;
  height: auto;
  max-height: clamp(2rem, 6.5vw, 2.5rem);
  object-fit: contain;
  border: none;
  border-radius: 0;
  background: transparent;
}

/* Property cards — compact facts well (do NOT use detail tile layout). */
.property-card .card-facts-wrap {
  border-radius: var(--facts-rail-radius);
  background: var(--semantic-card-facts-well);
  border: 1px solid var(--facts-item-divider);
  overflow: hidden;
}

.property-card .card-facts__label {
  display: none;
}

/*
 * Property cards — premium 2×2 square tiles (featured rail + listing grid).
 */
@media (max-width: 768px) {
  .property-card .card-facts-wrap {
    --property-card-facts-gap: clamp(0.75rem, 3.2vw, 1rem);
    --property-card-gold-ring: linear-gradient(
      135deg,
      color-mix(in srgb, var(--color-accent) 92%, #fff 12%) 0%,
      color-mix(in srgb, var(--color-accent) 38%, transparent) 22%,
      color-mix(in srgb, var(--color-accent) 12%, transparent) 48%,
      color-mix(in srgb, var(--color-accent) 55%, hsl(38 40% 55%)) 62%,
      color-mix(in srgb, var(--color-accent) 22%, transparent) 78%,
      color-mix(in srgb, var(--color-accent) 88%, #fff 10%) 100%
    );
    background: transparent;
    border: 0;
    border-radius: 0;
    overflow: visible;
  }

  .property-card .card-facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--property-card-facts-gap);
    width: 100%;
    max-width: min(100%, 20rem);
    margin-inline: auto;
  }

  .property-card .card-facts__item {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    box-sizing: border-box;
    aspect-ratio: 1 / 1;
    min-width: 0;
    width: 100%;
    height: auto;
    margin: 0;
    padding: clamp(0.75rem, 3.4vw, 1rem);
    border: 0;
    border-radius: clamp(1rem, 4.5vw, 1.25rem);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0;
    text-align: center;
    background:
      linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.008)),
      var(--semantic-card-facts-well);
  }

  /*
   * Gold ring on every tile. Sibling selector must include full ring styles: the
   * compact-row divider sets width: 1px on + .card-facts__item::before and beats
   * the generic .card-facts__item::before rule on that property alone.
   */
  .property-card .card-facts__item::before,
  .property-card .card-facts__item + .card-facts__item::before {
    content: "";
    position: absolute;
    inset: 0;
    inset-block: unset;
    inset-inline: unset;
    width: auto;
    height: auto;
    border-radius: inherit;
    padding: 1px;
    pointer-events: none;
    background: var(--property-card-gold-ring);
    -webkit-mask:
      linear-gradient(#000 0 0) content-box,
      linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask:
      linear-gradient(#000 0 0) content-box,
      linear-gradient(#000 0 0);
    mask-composite: exclude;
    z-index: 1;
  }

  .property-card .card-facts__item > * {
    position: relative;
    z-index: 2;
  }

  .property-card .card-facts__icon {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 0 clamp(0.4rem, 1.8vw, 0.55rem);
    line-height: 0;
  }

  .property-card .card-facts__icon svg {
    width: clamp(1.35rem, 5.5vw, 1.65rem);
    height: clamp(1.35rem, 5.5vw, 1.65rem);
  }

  .property-card .card-facts__value {
    width: 100%;
    text-align: center;
    font-size: clamp(1.1rem, 4.8vw, 1.35rem);
    line-height: 1.05;
    white-space: normal;
  }

  .property-card .card-facts__label {
    display: block;
    width: 100%;
    text-align: center;
    margin: clamp(0.25rem, 1.2vw, 0.4rem) 0 0;
  }

  /* Light tile surface — 02b-theme-light-app.css */

  .property-card .card-facts__item.card-facts__minimap .card-facts__minimap-wrap {
    width: min(88%, 6.5rem);
    max-width: none;
    max-height: none;
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .property-card .card-facts__item.card-facts__minimap .card-facts__minimap-img {
    width: 100%;
    height: auto;
    max-height: min(72%, 5.75rem);
    object-fit: contain;
  }
}

/* theme-img-pair visibility must beat .card-facts__minimap-img { display: block } above */
.property-card .card-facts-wrap .theme-img-pair .theme-img--light {
  display: none;
}

html[data-theme="light"] .property-card .card-facts-wrap .theme-img-pair .theme-img--dark {
  display: none;
}

html[data-theme="light"] .property-card .card-facts-wrap .theme-img-pair .theme-img--light {
  display: block;
}

/* Static facts list (detail lifestyle section) — unified facts rail */
.detail-lifestyle-card-wrap {
  container-type: inline-size;
}

.detail-lifestyle-card-wrap .card-facts--static {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: stretch;
  gap: var(--space-2);
  list-style: none;
  margin: 0;
  padding: var(--space-3);
  width: 100%;
  box-sizing: border-box;
  border-radius: var(--facts-rail-radius);
  background: var(--semantic-card-facts-well);
  border: 1px solid var(--facts-item-divider);
}

.detail-lifestyle-card-wrap .card-facts--static .card-facts__item {
  flex: 0 1 auto;
  box-sizing: border-box;
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 0.35rem;
  margin: 0;
  padding: 0.28rem 0.55rem;
  text-align: start;
  border-radius: var(--app-radius-pill);
  border: 1px solid var(--facts-item-divider);
  background: color-mix(in srgb, var(--semantic-card-facts-well) 88%, var(--color-surface));
  position: relative;
}

.detail-lifestyle-card-wrap .card-facts--static .card-facts__item + .card-facts__item {
  border-inline-start: none;
}

.detail-lifestyle-card-wrap .card-facts--static .card-facts__item + .card-facts__item::before {
  content: none;
}

.detail-lifestyle-card-wrap .card-facts--static .card-facts__item--lifestyle .card-facts__label {
  white-space: nowrap;
  line-height: 1.2;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: 0.65rem;
}

.detail-lifestyle-card-wrap .card-facts--static .card-facts__icon {
  color: var(--color-accent);
  line-height: 0;
  flex-shrink: 0;
}

.detail-lifestyle-card-wrap .card-facts--static .card-facts__icon svg {
  width: 1.35rem;
  height: 1.35rem;
}

.detail-lifestyle-card-wrap .card-facts--static .card-facts__label {
  margin: 0;
  font-family: var(--font-ui);
  font-size: var(--text-list-secondary);
  font-weight: 400;
  line-height: 1.25;
  color: color-mix(in srgb, var(--color-text-muted) 88%, transparent);
}

@media (max-width: 440px) {
  .detail-lifestyle-card-wrap .card-facts--static .card-facts__item {
    padding: 0.6rem 0.45rem;
  }

  .detail-lifestyle-card-wrap .card-facts--static .card-facts__label {
    font-size: 0.62rem;
  }
}

@media (max-width: 768px) {
  body.detail-hero-shell .detail-lifestyle-card-wrap .card-facts--static {
    padding: var(--space-5);
    gap: var(--space-3);
  }

  body.detail-hero-shell .detail-lifestyle-card-wrap .card-facts--static .card-facts__item {
    padding: 0.45rem 0.75rem;
  }

  body.detail-hero-shell .detail-lifestyle-card-wrap .card-facts--static .card-facts__item--lifestyle .card-facts__label {
    font-size: 0.78rem;
  }

  body.detail-hero-shell .detail-lifestyle-card-wrap .card-facts--static .card-facts__icon svg {
    width: 1.55rem;
    height: 1.55rem;
  }

  body.detail-hero-shell #detail-usps.detail-section {
    margin-top: 0;
    margin-bottom: var(--space-8);
  }

  body.detail-hero-shell #detail-usps .detail-usps-grid {
    max-width: 100%;
  }
}

.property-card .card-footer {
  margin-top: auto;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  width: 100%;
}

.property-card .card-updated {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin: 0;
  font-size: 0.72rem;
  font-weight: 400;
  color: var(--color-text-muted);
  line-height: 1.3;
}

.property-card .card-updated__icon {
  display: flex;
  flex-shrink: 0;
  color: color-mix(in srgb, var(--color-text-muted) 95%, transparent);
}

.property-card .card-updated__icon-svg {
  display: block;
}

.property-card .card-footer__divider {
  margin: 0;
  border: 0;
  border-top: 1px solid color-mix(in srgb, var(--app-glass-border) 82%, transparent);
}

.property-card .card-footer__row {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: var(--space-3);
  min-width: 0;
  width: 100%;
}

.property-card .card-agent {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: var(--space-3);
  min-width: 0;
  flex: 1 1 auto;
}

.property-card .card-agent__avatar {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}

.property-card .card-agent__text {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
}

.property-card .card-agent__eyebrow {
  margin: 0;
  font-size: var(--text-list-secondary);
  font-weight: 400;
  line-height: 1.2;
  color: var(--color-text-muted);
}

.property-card .card-agent__name {
  margin: 0;
  font-family: var(--font-ui);
  font-size: var(--text-list-primary);
  font-weight: 700;
  line-height: 1.2;
  color: var(--color-text);
}

.property-card .card-footer__cta {
  flex-shrink: 0;
  margin-left: auto;
  width: auto;
  min-width: 0;
}

@media (max-width: 768px) {
  .property-card .card-footer {
    gap: var(--space-4);
  }

  .property-card .card-footer__row {
    gap: var(--space-2);
    padding-block: var(--space-2);
    align-items: center;
  }

  .property-card .card-agent {
    flex: 1 1 0;
    min-width: 0;
    padding-block: var(--space-1);
    align-items: center;
  }

  .property-card .card-agent__text {
    gap: 0.15rem;
  }

  .property-card .card-agent__eyebrow {
    line-height: 1.35;
  }

  .property-card .card-agent__name {
    line-height: 1.35;
  }

  .property-card .card-footer__cta.btn-primary {
    flex-shrink: 0;
    padding: 0.45rem 0.72rem;
    min-height: 2.35rem;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.04em;
  }
}

/* Map-search inline rows (contract: a.map-list-row) */
.map-list-row {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-3);
  border-radius: var(--app-radius-md);
  background: color-mix(in srgb, var(--color-surface) 55%, transparent);
  border: 1px solid var(--app-glass-border);
  margin-bottom: var(--space-2);
  color: inherit;
  text-decoration: none;
  transition:
    background 0.15s ease,
    border-color 0.15s ease;
}

.map-list-row:hover {
  border-color: color-mix(in srgb, var(--color-accent) 40%, transparent);
}

.map-list-row__thumb {
  width: 5rem;
  height: 3.75rem;
  border-radius: var(--app-radius-sm);
  object-fit: cover;
  flex-shrink: 0;
}

.map-list-row__body {
  flex: 1;
  min-width: 0;
}

.map-list-row__title {
  display: block;
  font-size: var(--text-list-primary);
  color: var(--color-text);
  margin-bottom: 0.2rem;
}

.map-list-row__price {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--color-accent);
}

.map-list-row__type,
.map-list-row__loc {
  font-size: inherit;
}

.map-list-row__chevron {
  width: 1.25rem;
  height: 1.25rem;
  flex-shrink: 0;
  color: var(--color-text-muted);
}


/* Listings page */

html:has(body.page-listings) {
  scrollbar-gutter: stable;
}

body.page-listings {
  overscroll-behavior-x: none;
  overflow-x: clip;
  /* Chrome: stable layout when the URL bar shows/hides — home cards use a horizontal rail, not dvh slots. */
  min-height: 100svh;
}

body.page-listings .app-bottom-nav {
  z-index: 115;
  width: auto;
  max-width: none;
  overflow-x: clip;
}

body.page-listings .listings-page__filter-rail .filter-bar {
  min-width: 0;
  max-width: 100%;
}

/* Listings page top offset: --listings-sheet-peek-h (mobile collapsed sheet) */

.listings-page-brand {
  margin: 0 0 var(--space-3);
  font-weight: inherit;
  font-size: inherit;
  line-height: 0;
}

.listings-page-brand__link {
  display: inline-block;
  line-height: 0;
  text-decoration: none;
  vertical-align: top;
}

.listings-page-brand__link:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 4px;
  border-radius: var(--app-radius-sm);
}

.listings-page-brand__img {
  display: block;
  width: clamp(10rem, 33vw, 18rem);
  height: auto;
  /* Override 01-reset `img { max-width: 100% }` so width-based sizing wins for wide wordmarks */
  max-width: none;
}

.listings-toolbar-wrap {
  margin-bottom: var(--space-6);
}

.listings-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  padding: var(--space-4);
  border-radius: var(--app-radius-lg);
  background: var(--app-glass-bg);
  backdrop-filter: blur(var(--app-blur));
  -webkit-backdrop-filter: blur(var(--app-blur));
  border: 1px solid var(--app-glass-border);
}

.listings-toolbar__lead {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.listings-toolbar .results-count {
  margin: 0;
  font-size: 1.1rem;
  color: var(--color-text);
}

.listings-toolbar__map-link {
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-accent);
}

.listings-toolbar__actions {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

.listings-toolbar__sort-wrap {
  position: relative;
}

.listings-toolbar__icon-btn {
  width: 3rem;
  height: 3rem;
  border-radius: var(--app-radius-pill);
  display: flex;
  align-items: center;
  justify-content: center;
  background: color-mix(in srgb, var(--color-surface) 60%, transparent);
  border: 1px solid var(--app-glass-border);
  color: var(--color-text);
}

.listings-toolbar__icon-btn:hover {
  border-color: color-mix(in srgb, var(--color-accent) 40%, transparent);
  color: var(--color-accent);
}

.listings-toolbar__icon {
  width: 1.35rem;
  height: 1.35rem;
}

/* Top-anchored filter sheet — slides from above viewport on mobile */
body.page-listings {
  --listings-sheet-peek-h: calc(2.75rem + env(safe-area-inset-top, 0px));
}

.section.listings-page {
  padding-top: var(--space-4);
}

.listings-filter-sheet-backdrop {
  position: fixed;
  inset: 0;
  z-index: 118;
  background: var(--semantic-listings-backdrop);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition:
    opacity 0.42s cubic-bezier(0.32, 0.72, 0, 1),
    visibility 0.42s cubic-bezier(0.32, 0.72, 0, 1);
}

.listings-filter-sheet-backdrop.is-hidden {
  display: none !important;
}

@media (max-width: 768px) {
  .listings-filter-sheet-backdrop.is-hidden {
    display: block !important;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }

  body.listings-sheet--expanded .listings-filter-sheet-backdrop {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
}

.listings-filter-sheet {
  display: flex;
  flex-direction: column;
  background: var(--color-bg);
  min-height: 0;
}

.listings-filter-sheet__panel {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}

.listings-filter-sheet__body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}

.listings-grid-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  margin: 0 0 var(--space-4);
  padding: 0 var(--space-1);
}

.listings-grid-meta__actions {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-shrink: 0;
}

.listings-grid-meta__filter-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.4rem 0.65rem;
  border: 1px solid var(--app-glass-border);
  border-radius: var(--app-radius-pill);
  background: color-mix(in srgb, var(--color-surface) 55%, transparent);
  color: var(--color-text);
  font-family: var(--font-ui);
  font-size: 0.82rem;
  font-weight: 500;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.listings-grid-meta__filter-btn:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.listings-grid-meta__filter-icon {
  width: 1rem;
  height: 1rem;
  color: var(--color-accent);
  flex-shrink: 0;
}

@media (min-width: 769px) {
  /* Desktop: filter sheet closed until user opens via trigger */
}

.listings-grid-meta__count {
  margin: 0;
  font-size: 0.95rem;
  color: var(--color-text);
}

.listings-grid-meta__count-label {
  margin-left: 0.25rem;
  color: var(--color-text-muted);
}

.listings-grid-meta__sort-wrap {
  position: relative;
  flex-shrink: 0;
}

.listings-grid-meta__sort-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.4rem 0.65rem;
  border: 1px solid var(--app-glass-border);
  border-radius: var(--app-radius-pill);
  background: color-mix(in srgb, var(--color-surface) 50%, transparent);
  color: var(--color-text);
  font-size: 0.82rem;
  font-weight: 600;
}

.listings-grid-meta__sort-btn:hover,
.listings-grid-meta__sort-btn:focus-visible {
  border-color: color-mix(in srgb, var(--color-accent) 45%, transparent);
  color: var(--color-accent);
  outline: none;
}

.listings-grid-meta__sort-icon {
  width: 1.1rem;
  height: 1.1rem;
}

.page-listings .listings-grid-meta__sort-wrap .listings-sort-menu,
.page-map_search .listings-grid-meta__sort-wrap .listings-sort-menu {
  z-index: 50;
}

.listings-filter-form__hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.listings-filter-panel__body--split {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  padding: 0;
  overflow: hidden;
}

.listings-filter-panel__body--split .map-search-filter-panel__scroll {
  flex: 1 1 auto;
  overflow-y: auto;
  padding: var(--space-3);
  padding-bottom: var(--space-2);
  min-height: 0;
}

.listings-filter-panel__body--split .map-search-filter-panel__footer {
  flex: 0 0 auto;
  border-top: 1px solid var(--app-glass-border);
  padding: var(--space-3);
  padding-bottom: max(var(--space-3), calc(var(--app-bottom-safe, 0px) + var(--space-1)));
  background: var(--semantic-surface-panel-96);
}

.listings-filter-panel__body--split .listings-filter-panel__footer-actions {
  margin-top: 0;
}

.filter-bar__primary,
.filter-bar__advanced {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.filter-bar__more-toggle {
  margin-block: var(--space-3);
  align-self: flex-start;
  padding: 0.4rem 0;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--color-accent);
  text-decoration: underline;
}

.filter-bar__advanced[hidden] {
  display: none !important;
}

.filter-bar__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin-top: var(--space-4);
}

.filter-bar input[type="text"] {
  width: 100%;
  min-height: 2.875rem;
  padding: 0.65rem 1rem;
  border-radius: var(--app-radius-pill);
  border: 1px solid var(--app-glass-border);
  background: color-mix(in srgb, var(--color-surface) 50%, transparent);
  color: var(--color-text);
}

.no-results {
  text-align: center;
  padding: var(--space-10);
  font-size: 1rem;
  color: var(--color-text-muted);
}

/* Filter drawer sections — compact scale (listings sheet) */
.listings-filter-sheet .listings-filter-drawer__scroll {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.listings-filter-drawer__scroll {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.listings-filter-sheet .listings-filter-drawer__section,
.listings-filter-drawer__section {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.listings-filter-sheet .listings-filter-drawer__label,
.listings-filter-drawer__label {
  margin: 0;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

.listings-filter-sheet .listings-filter-drawer__field-card,
.listings-filter-drawer__field-card,
.listings-filter-sheet .listings-filter-drawer__location-card,
.listings-filter-drawer__location-card {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-3);
  border-radius: var(--app-radius-lg);
  border: 1px solid var(--app-glass-border);
  background: color-mix(in srgb, var(--color-surface) 35%, transparent);
}

.listings-filter-drawer__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  padding: max(var(--space-2), env(safe-area-inset-top, 0px)) var(--space-1) var(--space-3);
  flex-shrink: 0;
  touch-action: pan-y;
}

.listings-filter-drawer__header--dragging {
  touch-action: none;
  cursor: grabbing;
}

.listings-filter-drawer__header-title {
  margin: 0;
  font-family: var(--font-sans);
  font-size: var(--text-lg);
  font-weight: 500;
  line-height: 1.2;
  color: var(--color-text);
}

.listings-filter-drawer__header-close {
  flex-shrink: 0;
  width: 2.25rem;
  height: 2.25rem;
  border: 1px solid var(--app-glass-border);
  border-radius: 50%;
  background: transparent;
  color: var(--color-text-muted);
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
}

.listings-filter-drawer__header-close:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.listings-filter-drawer__row--2col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-3);
  align-items: stretch;
}

.listings-filter-drawer__row-field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-width: 0;
}

.listings-filter-drawer__inline-label {
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

.listings-filter-drawer__price-band-select {
  width: 100%;
  min-height: 2.65rem;
  padding: 0.5rem 2rem 0.5rem 0.65rem;
  border-radius: var(--app-radius-pill);
  border: 1px solid var(--app-glass-border);
  background: color-mix(in srgb, var(--color-surface) 40%, transparent);
  color: var(--color-text);
  font-size: 0.78rem;
  font-weight: 600;
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='5' fill='none'%3E%3Cpath d='M.8.8 4 4 7.2.8' stroke='%23909090' stroke-width='.85' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.55rem center;
  background-size: 0.45em;
}

.listings-filter-drawer__row--2col .listings-filter-drawer__picker {
  min-height: 2.65rem;
  height: 100%;
}

.listings-filter-drawer__extras-group + .listings-filter-drawer__extras-group {
  margin-top: var(--space-3);
  padding-top: var(--space-3);
  border-top: 1px solid color-mix(in srgb, var(--app-glass-border) 65%, transparent);
}

.listings-filter-drawer__extras-group-label {
  margin: 0 0 var(--space-2);
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--color-accent) 75%, var(--color-text-muted));
}

.listings-filter-drawer__toggle-row.is-unavailable {
  opacity: 0.38;
}

@media (max-width: 380px) {
  .listings-filter-drawer__row--2col {
    grid-template-columns: 1fr;
  }
}

.listings-filter-drawer__extras-card {
  display: block;
  padding: var(--space-2) var(--space-3);
}

.listings-filter-sheet .listings-filter-drawer__location-icon svg,
.listings-filter-sheet .listings-filter-drawer__reference-icon svg,
.listings-filter-sheet .listings-filter-drawer__card-chevron svg,
.listings-filter-drawer__location-icon svg,
.listings-filter-drawer__reference-icon svg,
.listings-filter-drawer__card-chevron svg {
  width: 1rem;
  height: 1rem;
  color: var(--color-accent);
}

.listings-filter-drawer__combobox {
  position: relative;
  min-width: 0;
}

.listings-filter-sheet .listings-filter-drawer__place-input,
.listings-filter-drawer__place-input {
  width: 100%;
  border: none;
  background: transparent;
  color: var(--color-text);
  font-size: 0.82rem;
  font-weight: 500;
  outline: none;
  padding: 0.1rem 0;
}

.listings-filter-drawer__place-input::placeholder {
  color: var(--color-text-muted);
  font-weight: 400;
}

.listings-filter-drawer__place-list {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  z-index: 5;
  margin: 0;
  padding: var(--space-2);
  list-style: none;
  max-height: 12rem;
  overflow-y: auto;
  border-radius: var(--app-radius-md);
  border: 1px solid var(--app-glass-border);
  background: var(--semantic-surface-panel-96);
  box-shadow: var(--app-shadow-lift);
}

.listings-filter-drawer__place-list[hidden] {
  display: none !important;
}

.listings-filter-drawer__place-option {
  display: block;
  width: 100%;
  text-align: left;
  padding: var(--space-2) var(--space-3);
  border: none;
  border-radius: var(--app-radius-sm);
  background: transparent;
  color: var(--color-text);
  font-size: 0.88rem;
  cursor: pointer;
}

.listings-filter-drawer__place-option:hover,
.listings-filter-drawer__place-option:focus-visible {
  background: color-mix(in srgb, var(--color-accent) 14%, transparent);
  outline: none;
}

.listings-filter-drawer__place-kind {
  display: block;
  font-size: 0.68rem;
  color: var(--color-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.listings-filter-drawer__seg {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}

.listings-filter-sheet .listings-filter-drawer__seg-btn,
.listings-filter-drawer__seg-btn {
  padding: 0.32rem 0.65rem;
  border-radius: var(--app-radius-pill);
  border: 1px solid var(--app-glass-border);
  background: color-mix(in srgb, var(--color-surface) 40%, transparent);
  color: var(--color-text);
  font-size: var(--text-subsection-label);
  font-weight: 600;
}

.listings-filter-drawer__seg-btn.is-active {
  border-color: var(--color-accent);
  background: color-mix(in srgb, var(--color-accent) 18%, transparent);
  color: var(--color-accent);
}

.listings-filter-drawer__seg-btn:disabled,
.listings-filter-drawer__seg-btn.is-disabled {
  opacity: 0.38;
  pointer-events: none;
}

.listings-filter-drawer__type-rail,
.listings-filter-drawer__band-rail,
.listings-filter-drawer__subtype-rail {
  overflow: hidden;
}

.listings-filter-drawer__type-rail-inner,
.listings-filter-drawer__band-rail-inner {
  display: flex;
  gap: var(--space-2);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  padding: 2px 1px 6px;
}

.listings-filter-drawer__type-rail-inner::-webkit-scrollbar,
.listings-filter-drawer__band-rail-inner::-webkit-scrollbar {
  display: none;
}

.listings-filter-sheet .listings-filter-drawer__type-tile,
.listings-filter-drawer__type-tile {
  scroll-snap-align: start;
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  width: 3.65rem;
  padding: var(--space-2) var(--space-1);
  border-radius: var(--app-radius-md);
  border: 1px solid var(--app-glass-border);
  background: color-mix(in srgb, var(--color-surface) 35%, transparent);
  color: var(--color-text);
  font-size: 0.6rem;
  font-weight: 600;
  text-align: center;
  line-height: 1.15;
}

.listings-filter-drawer__type-tile.is-selected {
  border-color: var(--color-accent);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-accent) 50%, transparent);
}

.listings-filter-sheet .listings-filter-drawer__type-icon svg,
.listings-filter-drawer__type-icon svg {
  width: 1.45rem;
  height: 1.45rem;
  color: var(--color-accent);
}

.listings-filter-drawer__type-tile.is-selected .listings-filter-drawer__type-icon svg {
  color: var(--color-accent);
}

.listings-filter-drawer__type-tile:disabled,
.listings-filter-drawer__type-tile.is-disabled,
.listings-filter-drawer__type-tile[aria-disabled="true"] {
  opacity: 0.38;
  pointer-events: none;
  border-color: var(--app-glass-border);
}

.listings-filter-drawer__subtype-rail--hidden[hidden] {
  display: none !important;
}

.listings-filter-sheet .listings-filter-drawer__band-chip,
.listings-filter-drawer__band-chip {
  scroll-snap-align: start;
  flex: 0 0 auto;
  white-space: nowrap;
  padding: 0.35rem 0.65rem;
  border-radius: var(--app-radius-pill);
  border: 1px solid var(--app-glass-border);
  background: color-mix(in srgb, var(--color-surface) 40%, transparent);
  color: var(--color-text);
  font-size: 0.7rem;
  font-weight: 600;
}

.listings-filter-drawer__band-chip.is-active {
  border-color: var(--color-accent);
  background: color-mix(in srgb, var(--color-accent) 20%, transparent);
  color: var(--color-accent);
}

.listings-filter-drawer__band-chip:disabled {
  opacity: 0.35;
  pointer-events: none;
}

.listings-filter-sheet .listings-filter-drawer__picker,
.listings-filter-drawer__picker {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: var(--space-2);
  width: 100%;
  padding: var(--space-2) var(--space-3);
  border-radius: var(--app-radius-lg);
  border: 1px solid var(--app-glass-border);
  background: color-mix(in srgb, var(--color-surface) 35%, transparent);
  color: var(--color-text);
  text-align: left;
}

.listings-filter-sheet .listings-filter-drawer__picker-icon svg,
.listings-filter-sheet .listings-filter-drawer__picker-chevron svg,
.listings-filter-drawer__picker-icon svg,
.listings-filter-drawer__picker-chevron svg {
  width: 1rem;
  height: 1rem;
  color: var(--color-accent);
}

.listings-filter-drawer__picker-text {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}

.listings-filter-sheet .listings-filter-drawer__picker-title,
.listings-filter-drawer__picker-title {
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

.listings-filter-sheet .listings-filter-drawer__picker-value,
.listings-filter-drawer__picker-value {
  font-size: 0.78rem;
  font-weight: 600;
}

/* Lifestyle — icon tiles */
.listings-filter-drawer__lifestyle-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.listings-filter-drawer__lifestyle-tile {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  min-width: 4rem;
  max-width: 4.5rem;
  flex: 1 1 4rem;
  padding: var(--space-2) var(--space-1);
  border-radius: var(--app-radius-md);
  border: 1px solid var(--app-glass-border);
  background: color-mix(in srgb, var(--color-surface) 35%, transparent);
  color: var(--color-text);
  font-size: 0.58rem;
  font-weight: 600;
  line-height: 1.15;
  text-align: center;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.listings-filter-drawer__lifestyle-icon svg {
  width: 1.25rem;
  height: 1.25rem;
  color: var(--color-accent);
}

.listings-filter-drawer__lifestyle-tile.is-active,
.listings-filter-drawer__lifestyle-tile[aria-pressed="true"] {
  border-color: var(--color-accent);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-accent) 50%, transparent);
}

.listings-filter-drawer__lifestyle-tile.is-active .listings-filter-drawer__lifestyle-icon svg,
.listings-filter-drawer__lifestyle-tile[aria-pressed="true"] .listings-filter-drawer__lifestyle-icon svg {
  color: var(--color-accent);
}

.listings-filter-drawer__lifestyle-tile:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.listings-filter-drawer__lifestyle-tile:disabled,
.listings-filter-drawer__lifestyle-tile.is-disabled,
.listings-filter-drawer__lifestyle-tile[aria-disabled="true"] {
  opacity: 0.38;
  pointer-events: none;
}

/* Price — predefined bands (dropdown) */
.listings-filter-drawer__price-band-label {
  margin: 0;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

.listings-filter-sheet .listings-filter-drawer__price-band-select,
.listings-filter-drawer__price-band-select {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  margin: 0;
  padding: 0.5rem 0.65rem;
  border-radius: var(--app-radius-md);
  border: 1px solid var(--app-glass-border);
  background: color-mix(in srgb, var(--color-bg) 88%, transparent);
  color: var(--color-text);
  font-size: 0.82rem;
  font-weight: 600;
}

.listings-filter-drawer__price-band-select:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.listings-filter-drawer__price-band-select:disabled {
  opacity: 0.38;
}

/* Extras — switch toggles */
.listings-filter-drawer__toggle-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.35rem 0.5rem;
}

.listings-filter-drawer__toggle-row {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 0.35rem;
  padding: 0.35rem 0.4rem;
  border-radius: var(--app-radius-sm);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.listings-filter-drawer__toggle-row-icon svg {
  width: 1rem;
  height: 1rem;
  color: var(--color-accent);
  flex-shrink: 0;
}

.listings-filter-drawer__toggle-row-label {
  font-size: 0.68rem;
  font-weight: 600;
  line-height: 1.2;
  color: var(--color-text);
}

.listings-filter-drawer__toggle-row.is-disabled {
  opacity: 0.38;
  pointer-events: none;
}

.listings-filter-drawer__switch {
  position: relative;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
}

.listings-filter-drawer__check-input,
.listings-filter-drawer__switch-input {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
  pointer-events: none;
}

.listings-filter-drawer__switch-track {
  display: block;
  width: 2rem;
  height: 1.1rem;
  border-radius: 99px;
  border: 1px solid var(--app-glass-border);
  background: color-mix(in srgb, var(--color-surface) 55%, transparent);
  transition: background 0.2s ease, border-color 0.2s ease;
}

.listings-filter-drawer__switch-thumb {
  display: block;
  width: 0.85rem;
  height: 0.85rem;
  margin: 0.1rem;
  border-radius: 50%;
  background: var(--color-text);
  box-shadow: var(--semantic-shadow-card-short);
  transition: transform 0.2s ease, background 0.2s ease;
}

.listings-filter-drawer__switch-input:checked + .listings-filter-drawer__switch-track {
  border-color: color-mix(in srgb, var(--color-accent) 70%, transparent);
  background: color-mix(in srgb, var(--color-accent) 35%, transparent);
}

.listings-filter-drawer__switch-input:checked + .listings-filter-drawer__switch-track .listings-filter-drawer__switch-thumb {
  transform: translateX(0.9rem);
  background: var(--color-accent);
}

.listings-filter-drawer__switch-input:focus-visible + .listings-filter-drawer__switch-track {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.listings-filter-drawer__reference-card .listings-filter-drawer__combobox--ref {
  padding: 0;
  border: none;
  border-radius: 0;
  background: transparent;
}

.listings-filter-drawer__footer-actions {
  display: flex;
  align-items: stretch;
  gap: var(--space-3);
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  padding-inline: var(--space-3);
}

.listings-filter-drawer__reset,
.listings-filter-drawer__submit {
  flex: 1 1 0;
  min-width: 0;
  max-width: calc((100% - var(--space-3)) / 2);
  min-height: 2.25rem;
  padding: 0.4rem 0.6rem;
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 700;
  box-shadow: 0 3px 14px color-mix(in srgb, var(--color-accent) 28%, transparent);
}

.listings-filter-drawer__reset:hover,
.listings-filter-drawer__submit:hover {
  transform: none;
  box-shadow: 0 4px 16px color-mix(in srgb, var(--color-accent) 34%, transparent);
}

.listings-filter-drawer__sheet {
  margin: auto;
  max-width: 22rem;
  width: calc(100% - var(--space-8));
  padding: 0;
  border: 1px solid var(--app-glass-border);
  border-radius: var(--app-radius-lg);
  background: var(--semantic-surface-panel-98);
  color: var(--color-text);
}

.listings-filter-drawer__sheet::backdrop {
  background: var(--semantic-black-scrim-55);
}

.listings-filter-drawer__sheet-inner {
  padding: var(--space-5) var(--space-4);
}

.listings-filter-drawer__sheet-close {
  float: right;
  width: 2rem;
  height: 2rem;
  font-size: 1.4rem;
  line-height: 1;
  border: none;
  background: transparent;
  color: var(--color-text);
}

.listings-filter-drawer__sheet-title {
  margin: 0 0 var(--space-4);
  font-size: 1rem;
  font-weight: 700;
}

.listings-filter-drawer__sheet-options {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.listings-filter-drawer__sheet-opt {
  padding: var(--space-3);
  border-radius: var(--app-radius-md);
  border: 1px solid var(--app-glass-border);
  background: transparent;
  color: var(--color-text);
  font-size: 0.95rem;
  font-weight: 600;
  text-align: left;
}

.listings-filter-drawer__sheet-opt.is-selected {
  border-color: var(--color-accent);
  background: color-mix(in srgb, var(--color-accent) 16%, transparent);
  color: var(--color-accent);
}

.listings-filter-drawer__sheet-opt:disabled,
.listings-filter-drawer__sheet-opt.is-disabled {
  opacity: 0.38;
  pointer-events: none;
}

@media (min-width: 769px) {
  .listings-filter-drawer__header {
    display: none;
  }

  .listings-filter-sheet-backdrop {
    display: none !important;
  }

  body.page-listings .listings-filter-sheet,
  body.page-map_search .listings-filter-sheet {
    position: relative;
    top: auto;
    z-index: auto;
    max-height: none;
    margin-bottom: var(--space-4);
    border: 1px solid var(--app-glass-border);
    border-radius: var(--app-radius-lg);
    box-shadow: none;
    overflow: visible;
    transform: none;
    display: none;
  }

  body.page-listings.listings-sheet--expanded .listings-filter-sheet,
  body.page-map_search.listings-sheet--expanded .listings-filter-sheet {
    display: flex;
  }

  body.page-listings .listings-filter-sheet__panel,
  body.page-map_search .listings-filter-sheet__panel {
    visibility: visible;
    pointer-events: auto;
    max-height: none;
    overflow: visible;
    flex: 1 1 auto;
  }

  body.page-map_search .map-search {
    padding-top: 0;
  }
}

@media (max-width: 768px) {
  body.page-listings .listings-page-brand,
  body.page-map_search .listings-page-brand {
    display: none;
  }

  body.page-listings .listings-grid-meta,
  body.page-map_search .listings-grid-meta {
    position: fixed;
    top: env(safe-area-inset-top, 0px);
    left: 0;
    right: 0;
    z-index: 34;
    margin-top: 0;
    margin-bottom: var(--space-3);
    padding-top: var(--space-2);
    padding-bottom: var(--space-2);
    background: color-mix(in srgb, var(--color-bg) 88%, transparent);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-bottom: 1px solid var(--app-glass-border);
  }

  body.page-listings .listings-grid-meta + #property-grid {
    margin-top: calc(var(--space-4) + 2.125rem + var(--space-2) + var(--space-2) + var(--space-3));
  }

  body.page-map_search .map-search__filters-wrap {
    flex: 0 0 auto;
  }

  body.page-map_search .map-search {
    padding-top: calc(
      env(safe-area-inset-top, 0px) + var(--space-4) + 2.125rem + var(--space-2) + var(--space-2) + var(--space-3)
    );
  }

  body.page-listings main.container.app-main,
  body.page-map_search main.container.app-main {
    width: 100%;
    max-width: none;
    margin-inline: 0;
    padding-left: max(0.35rem, env(safe-area-inset-left, 0px));
    padding-right: max(0.35rem, env(safe-area-inset-right, 0px));
  }

  body.page-listings .listings-filter-sheet,
  body.page-map_search .listings-filter-sheet {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 119;
    height: 100dvh;
    max-height: 100dvh;
    overflow: hidden;
    border-radius: 0;
    box-shadow: var(--semantic-shadow-sheet-lift);
    transform: translate3d(0, -100%, 0);
    transition: transform 0.44s cubic-bezier(0.32, 0.72, 0, 1);
    will-change: transform;
  }

  body.listings-sheet--expanded .listings-filter-sheet {
    transform: translate3d(0, 0, 0);
  }

  body.page-listings .listings-filter-sheet.listings-filter-sheet--dragging,
  body.page-map_search .listings-filter-sheet.listings-filter-sheet--dragging {
    transition: none;
  }

  body.page-listings .listings-filter-sheet__panel,
  body.page-map_search .listings-filter-sheet__panel {
    visibility: visible;
    pointer-events: auto;
    max-height: none;
    overflow: hidden;
    flex: 1 1 auto;
  }

  /* Full-viewport sheet covers bottom nav — footer sits on drawer bottom (safe area only) */
  body.page-listings.listings-sheet--expanded
    .listings-filter-panel__body--split
    .map-search-filter-panel__footer,
  body.page-map_search.listings-sheet--expanded
    .listings-filter-panel__body--split
    .map-search-filter-panel__footer {
    padding-bottom: max(var(--space-3), env(safe-area-inset-bottom, 0px));
  }

  .section.listings-page {
    padding-top: 0;
    padding-bottom: var(--space-4);
  }

  @media (prefers-reduced-motion: reduce) {
    .listings-filter-sheet {
      transition: none;
    }

    .listings-filter-sheet-backdrop {
      transition: none;
    }
  }

  /* —— Mobile filter drawer: app screen rhythm (listings + map search sheet) —— */
  body.page-listings .listings-filter-sheet,
  body.page-map_search .listings-filter-sheet {
    --filter-mobile-footer-height: clamp(5rem, 14vw, 5.75rem);
    --filter-section-gap: clamp(2rem, 7svh, 3.75rem);
    --filter-mobile-gold-ring: linear-gradient(
      135deg,
      color-mix(in srgb, var(--color-accent) 92%, #fff 12%) 0%,
      color-mix(in srgb, var(--color-accent) 38%, transparent) 22%,
      color-mix(in srgb, var(--color-accent) 12%, transparent) 48%,
      color-mix(in srgb, var(--color-accent) 55%, hsl(38 40% 55%)) 62%,
      color-mix(in srgb, var(--color-accent) 22%, transparent) 78%,
      color-mix(in srgb, var(--color-accent) 88%, #fff 10%) 100%
    );
    --filter-mobile-border-soft: color-mix(in srgb, var(--color-accent) 25%, var(--app-glass-border));
  }

  body.page-listings .listings-filter-drawer__scroll,
  body.page-map_search .listings-filter-drawer__scroll,
  body.page-listings .listings-filter-panel__body--split .map-search-filter-panel__scroll,
  body.page-map_search .listings-filter-panel__body--split .map-search-filter-panel__scroll {
    gap: 0;
    padding-inline: clamp(1.25rem, 5vw, 1.75rem);
    padding-top: clamp(0.5rem, 2svh, 1rem);
    padding-bottom: calc(
      var(--filter-mobile-footer-height) + 2rem + env(safe-area-inset-bottom, 0px)
    );
  }

  body.page-listings .listings-filter-drawer__section,
  body.page-map_search .listings-filter-drawer__section {
    margin-top: var(--filter-section-gap);
  }

  body.page-listings .listings-filter-drawer__section:first-child,
  body.page-map_search .listings-filter-drawer__section:first-child {
    margin-top: clamp(1.5rem, 5svh, 2.5rem);
  }

  body.page-listings .listings-filter-drawer__section[data-filter-section="operation"],
  body.page-map_search .listings-filter-drawer__section[data-filter-section="operation"] {
    padding-bottom: clamp(3rem, 12svh, 6rem);
  }

  body.page-listings .listings-filter-drawer__section[data-filter-section="type"],
  body.page-map_search .listings-filter-drawer__section[data-filter-section="type"] {
    margin-top: clamp(2.5rem, 10svh, 4.5rem);
  }

  body.page-listings .listings-filter-drawer__section[data-filter-section="price-bedrooms"],
  body.page-map_search .listings-filter-drawer__section[data-filter-section="price-bedrooms"] {
    margin-top: clamp(2rem, 8svh, 3.5rem);
  }

  body.page-listings .listings-filter-drawer__section[data-filter-section="highlights"],
  body.page-map_search .listings-filter-drawer__section[data-filter-section="highlights"] {
    margin-top: clamp(1.75rem, 7svh, 3rem);
  }

  body.page-listings .listings-filter-drawer__section[data-filter-section="lifestyle"],
  body.page-map_search .listings-filter-drawer__section[data-filter-section="lifestyle"] {
    margin-top: clamp(1.75rem, 7svh, 3rem);
  }

  body.page-listings .listings-filter-drawer__section[data-filter-section="extras"],
  body.page-map_search .listings-filter-drawer__section[data-filter-section="extras"],
  body.page-listings .listings-filter-drawer__section[data-filter-section="reference"],
  body.page-map_search .listings-filter-drawer__section[data-filter-section="reference"] {
    margin-top: clamp(1.5rem, 6svh, 2.5rem);
  }

  body.page-listings .listings-filter-drawer__header,
  body.page-map_search .listings-filter-drawer__header {
    padding: max(var(--space-2), env(safe-area-inset-top, 0px)) clamp(0.25rem, 1vw, 0.5rem)
      clamp(1rem, 4svh, 1.5rem);
  }

  body.page-listings .listings-filter-drawer__header-title,
  body.page-map_search .listings-filter-drawer__header-title {
    font-size: clamp(2rem, 8vw, 2.6rem);
    line-height: 1.05;
    letter-spacing: -0.02em;
    font-weight: 500;
  }

  body.page-listings .listings-filter-drawer__header-close,
  body.page-map_search .listings-filter-drawer__header-close {
    width: clamp(3.5rem, 14vw, 4.25rem);
    height: clamp(3.5rem, 14vw, 4.25rem);
    font-size: 1.65rem;
    border-radius: 999px;
  }

  body.page-listings .listings-filter-drawer__label,
  body.page-map_search .listings-filter-drawer__label {
    font-size: clamp(0.78rem, 3vw, 0.9rem);
    letter-spacing: 0.22em;
    margin-bottom: clamp(1rem, 3svh, 1.4rem);
  }

  body.page-listings .listings-filter-drawer__field-card,
  body.page-map_search .listings-filter-drawer__field-card,
  body.page-listings .listings-filter-drawer__location-card,
  body.page-map_search .listings-filter-drawer__location-card {
    min-height: clamp(4.25rem, 12vw, 4.75rem);
    padding: var(--space-3) clamp(1.25rem, 5vw, 1.75rem);
    border-radius: 999px;
    border: 1px solid var(--filter-mobile-border-soft);
    background: color-mix(in srgb, var(--color-surface) 35%, transparent);
  }

  body.page-listings .listings-filter-drawer__location-icon svg,
  body.page-map_search .listings-filter-drawer__location-icon svg,
  body.page-listings .listings-filter-drawer__reference-icon svg,
  body.page-map_search .listings-filter-drawer__reference-icon svg {
    width: 1.35rem;
    height: 1.35rem;
  }

  body.page-listings .listings-filter-drawer__place-input,
  body.page-map_search .listings-filter-drawer__place-input {
    font-size: clamp(1.05rem, 4.2vw, 1.2rem);
    font-weight: 500;
    padding: 0.15rem 0;
  }

  body.page-listings .listings-filter-drawer__seg,
  body.page-map_search .listings-filter-drawer__seg {
    gap: clamp(0.65rem, 2.5vw, 0.85rem);
  }

  body.page-listings .listings-filter-drawer__seg-btn,
  body.page-map_search .listings-filter-drawer__seg-btn {
    min-height: clamp(3rem, 10vw, 3.4rem);
    padding: 0.5rem clamp(1.1rem, 4vw, 1.5rem);
    font-size: clamp(0.98rem, 3.8vw, 1.08rem);
    border: 1px solid var(--filter-mobile-border-soft);
    border-radius: 999px;
  }

  body.page-listings .listings-filter-drawer__type-rail-inner,
  body.page-map_search .listings-filter-drawer__type-rail-inner {
    gap: clamp(0.75rem, 3vw, 1rem);
    padding-block: 0.35rem 0.75rem;
  }

  body.page-listings .listings-filter-drawer__type-tile,
  body.page-map_search .listings-filter-drawer__type-tile {
    width: clamp(7rem, 28vw, 8rem);
    min-height: clamp(7rem, 28vw, 8rem);
    padding: var(--space-3) var(--space-2);
    gap: 0.45rem;
    border-radius: 1.1rem;
    border: 1px solid var(--filter-mobile-border-soft);
    font-size: clamp(0.95rem, 3.6vw, 1.05rem);
    line-height: 1.2;
  }

  body.page-listings .listings-filter-drawer__type-icon svg,
  body.page-map_search .listings-filter-drawer__type-icon svg {
    width: clamp(1.8rem, 7vw, 2.2rem);
    height: clamp(1.8rem, 7vw, 2.2rem);
  }

  body.page-listings .listings-filter-drawer__row--2col .listings-filter-drawer__price-band-select,
  body.page-map_search .listings-filter-drawer__row--2col .listings-filter-drawer__price-band-select {
    min-height: clamp(4.75rem, 13vw, 5.25rem);
    padding: 0.75rem 2.25rem 0.75rem 1rem;
    font-size: clamp(0.95rem, 3.6vw, 1.05rem);
    border-radius: var(--app-radius-lg);
    border: 1px solid var(--filter-mobile-border-soft);
  }

  body.page-listings .listings-filter-drawer__picker,
  body.page-map_search .listings-filter-drawer__picker {
    min-height: clamp(4.75rem, 13vw, 5.25rem);
    padding: var(--space-3) clamp(1rem, 4vw, 1.25rem);
    border-radius: var(--app-radius-lg);
    border: 1px solid var(--filter-mobile-border-soft);
  }

  body.page-listings .listings-filter-drawer__inline-label,
  body.page-map_search .listings-filter-drawer__inline-label,
  body.page-listings .listings-filter-drawer__picker-title,
  body.page-map_search .listings-filter-drawer__picker-title {
    font-size: 0.76rem;
    letter-spacing: 0.1em;
  }

  body.page-listings .listings-filter-drawer__picker-value,
  body.page-map_search .listings-filter-drawer__picker-value {
    font-size: clamp(0.95rem, 3.6vw, 1.05rem);
  }

  body.page-listings .listings-filter-drawer__picker-icon svg,
  body.page-map_search .listings-filter-drawer__picker-icon svg {
    width: 1.25rem;
    height: 1.25rem;
  }

  body.page-listings .listings-filter-drawer__extras-card,
  body.page-map_search .listings-filter-drawer__extras-card {
    padding: var(--space-3) var(--space-4);
    border-radius: var(--app-radius-lg);
    border: 1px solid var(--filter-mobile-border-soft);
  }

  body.page-listings .listings-filter-drawer__toggle-grid,
  body.page-map_search .listings-filter-drawer__toggle-grid {
    gap: clamp(0.65rem, 2.5vw, 0.85rem) clamp(0.5rem, 2vw, 0.75rem);
  }

  body.page-listings .listings-filter-drawer__toggle-row,
  body.page-map_search .listings-filter-drawer__toggle-row {
    padding: clamp(0.65rem, 2.5vw, 0.85rem) clamp(0.5rem, 2vw, 0.65rem);
    border-radius: var(--app-radius-md);
  }

  body.page-listings .listings-filter-drawer__toggle-row-label,
  body.page-map_search .listings-filter-drawer__toggle-row-label {
    font-size: clamp(0.88rem, 3.4vw, 0.98rem);
  }

  body.page-listings .listings-filter-drawer__toggle-row.is-unavailable,
  body.page-map_search .listings-filter-drawer__toggle-row.is-unavailable {
    opacity: 0.45;
  }

  body.page-listings .listings-filter-drawer__switch-track,
  body.page-map_search .listings-filter-drawer__switch-track {
    width: 2.75rem;
    height: 1.45rem;
    border: 1px solid var(--filter-mobile-border-soft);
  }

  body.page-listings .listings-filter-drawer__switch-thumb,
  body.page-map_search .listings-filter-drawer__switch-thumb {
    width: 1.1rem;
    height: 1.1rem;
    margin: 0.14rem;
  }

  body.page-listings .listings-filter-drawer__switch-input:checked + .listings-filter-drawer__switch-track .listings-filter-drawer__switch-thumb,
  body.page-map_search
    .listings-filter-drawer__switch-input:checked
    + .listings-filter-drawer__switch-track
    .listings-filter-drawer__switch-thumb {
    transform: translateX(1.25rem);
  }

  body.page-listings .listings-filter-drawer__lifestyle-grid,
  body.page-map_search .listings-filter-drawer__lifestyle-grid {
    gap: clamp(0.65rem, 2.5vw, 0.85rem);
  }

  body.page-listings .listings-filter-drawer__lifestyle-tile,
  body.page-map_search .listings-filter-drawer__lifestyle-tile {
    min-width: clamp(5.5rem, 22vw, 6.5rem);
    max-width: none;
    flex: 1 1 clamp(5.5rem, 22vw, 6.5rem);
    min-height: clamp(5.5rem, 22vw, 6.5rem);
    padding: var(--space-3) var(--space-2);
    gap: 0.4rem;
    border-radius: 1.1rem;
    border: 1px solid var(--filter-mobile-border-soft);
    font-size: clamp(0.88rem, 3.2vw, 0.98rem);
  }

  body.page-listings .listings-filter-drawer__lifestyle-icon svg,
  body.page-map_search .listings-filter-drawer__lifestyle-icon svg {
    width: 1.65rem;
    height: 1.65rem;
  }

  body.page-listings .listings-filter-panel__body--split .map-search-filter-panel__footer,
  body.page-map_search .listings-filter-panel__body--split .map-search-filter-panel__footer {
    padding: var(--space-3) clamp(1.25rem, 5vw, 1.75rem)
      max(var(--space-3), env(safe-area-inset-bottom, 0px));
  }

  body.page-listings .listings-filter-drawer__footer-actions,
  body.page-map_search .listings-filter-drawer__footer-actions {
    gap: var(--space-4);
    padding-inline: 0;
  }

  body.page-listings .listings-filter-drawer__reset,
  body.page-map_search .listings-filter-drawer__reset,
  body.page-listings .listings-filter-drawer__submit,
  body.page-map_search .listings-filter-drawer__submit {
    min-height: clamp(3.6rem, 11vw, 4rem);
    padding: 0.65rem 1rem;
    font-size: clamp(0.82rem, 3.2vw, 0.92rem);
    border-radius: 999px;
    box-shadow: inset 0 1px 0 color-mix(in srgb, var(--color-accent) 18%, transparent);
  }

  /* Shiny gold ring — selected / focus only */
  body.page-listings .listings-filter-drawer__location-card:focus-within,
  body.page-map_search .listings-filter-drawer__location-card:focus-within,
  body.page-listings .listings-filter-drawer__reference-card:focus-within,
  body.page-map_search .listings-filter-drawer__reference-card:focus-within,
  body.page-listings .listings-filter-drawer__seg-btn.is-active,
  body.page-map_search .listings-filter-drawer__seg-btn.is-active,
  body.page-listings .listings-filter-drawer__type-tile.is-selected,
  body.page-map_search .listings-filter-drawer__type-tile.is-selected,
  body.page-listings .listings-filter-drawer__lifestyle-tile.is-active,
  body.page-map_search .listings-filter-drawer__lifestyle-tile.is-active,
  body.page-listings .listings-filter-drawer__lifestyle-tile[aria-pressed="true"],
  body.page-map_search .listings-filter-drawer__lifestyle-tile[aria-pressed="true"],
  body.page-listings .listings-filter-drawer__picker:focus-visible,
  body.page-map_search .listings-filter-drawer__picker:focus-visible {
    position: relative;
    overflow: hidden;
    border-color: transparent;
    box-shadow: inset 0 1px 0 color-mix(in srgb, var(--color-accent) 16%, transparent);
  }

  body.page-listings .listings-filter-drawer__seg-btn.is-active,
  body.page-map_search .listings-filter-drawer__seg-btn.is-active {
    background: color-mix(in srgb, var(--color-accent) 18%, transparent);
    color: var(--color-accent);
  }

  body.page-listings .listings-filter-drawer__type-tile.is-selected,
  body.page-map_search .listings-filter-drawer__type-tile.is-selected {
    box-shadow: none;
  }

  body.page-listings .listings-filter-drawer__location-card:focus-within::before,
  body.page-map_search .listings-filter-drawer__location-card:focus-within::before,
  body.page-listings .listings-filter-drawer__reference-card:focus-within::before,
  body.page-map_search .listings-filter-drawer__reference-card:focus-within::before,
  body.page-listings .listings-filter-drawer__seg-btn.is-active::before,
  body.page-map_search .listings-filter-drawer__seg-btn.is-active::before,
  body.page-listings .listings-filter-drawer__type-tile.is-selected::before,
  body.page-map_search .listings-filter-drawer__type-tile.is-selected::before,
  body.page-listings .listings-filter-drawer__lifestyle-tile.is-active::before,
  body.page-map_search .listings-filter-drawer__lifestyle-tile.is-active::before,
  body.page-listings .listings-filter-drawer__lifestyle-tile[aria-pressed="true"]::before,
  body.page-map_search .listings-filter-drawer__lifestyle-tile[aria-pressed="true"]::before,
  body.page-listings .listings-filter-drawer__picker:focus-visible::before,
  body.page-map_search .listings-filter-drawer__picker:focus-visible::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    padding: 1px;
    background: var(--filter-mobile-gold-ring);
    -webkit-mask:
      linear-gradient(#000 0 0) content-box,
      linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask:
      linear-gradient(#000 0 0) content-box,
      linear-gradient(#000 0 0);
    mask-composite: exclude;
    pointer-events: none;
    z-index: 1;
  }

  html[data-theme="light"] body.page-listings .listings-filter-drawer__field-card,
  html[data-theme="light"] body.page-map_search .listings-filter-drawer__field-card,
  html[data-theme="light"] body.page-listings .listings-filter-drawer__location-card,
  html[data-theme="light"] body.page-map_search .listings-filter-drawer__location-card,
  html[data-theme="light"] body.page-listings .listings-filter-drawer__seg-btn,
  html[data-theme="light"] body.page-map_search .listings-filter-drawer__seg-btn,
  html[data-theme="light"] body.page-listings .listings-filter-drawer__type-tile,
  html[data-theme="light"] body.page-map_search .listings-filter-drawer__type-tile,
  html[data-theme="light"] body.page-listings .listings-filter-drawer__picker,
  html[data-theme="light"] body.page-map_search .listings-filter-drawer__picker,
  html[data-theme="light"] body.page-listings .listings-filter-drawer__lifestyle-tile,
  html[data-theme="light"] body.page-map_search .listings-filter-drawer__lifestyle-tile,
  html[data-theme="light"] body.page-listings .listings-filter-drawer__extras-card,
  html[data-theme="light"] body.page-map_search .listings-filter-drawer__extras-card {
    background: #ffffff;
    border-color: color-mix(in srgb, var(--color-accent) 22%, #e8e0d4);
    box-shadow: none;
  }

  html[data-theme="light"] body.page-listings .listings-filter-drawer__reset,
  html[data-theme="light"] body.page-map_search .listings-filter-drawer__reset,
  html[data-theme="light"] body.page-listings .listings-filter-drawer__submit,
  html[data-theme="light"] body.page-map_search .listings-filter-drawer__submit {
    box-shadow: inset 0 1px 0 color-mix(in srgb, var(--color-accent) 22%, transparent);
  }

  html[data-theme="light"] body.page-listings .listings-filter-panel__body--split .map-search-filter-panel__scroll,
  html[data-theme="light"] body.page-map_search .listings-filter-panel__body--split .map-search-filter-panel__scroll {
    background: #ffffff;
  }
}


/* Property detail */

.property-detail {
  position: relative;
  overflow-x: visible;
}

.property-detail__shell {
  display: block;
  min-width: 0;
}

.detail-layout {
  display: block;
}

.detail-main {
  max-width: 52rem;
}

/* Immersive property detail — edge-to-edge hero, no chrome header (see body.detail-hero-shell). */
html:not(.is-property-detail-iframe) body.detail-hero-shell .site-header {
  display: none !important;
}

html:not(.is-property-detail-iframe) body.detail-hero-shell {
  padding-top: 0 !important;
}

html:has(body.detail-hero-shell) {
  /* Measured by 16-detail-tabs-progress.js; fallback covers tabs + progress rail */
  --detail-tabs-measured-height: 5.25rem;
  --detail-tabs-scroll-offset: calc(
    var(--detail-tabs-measured-height) + env(safe-area-inset-top, 0px) + var(--space-4)
  );
  scroll-padding-top: var(--detail-tabs-scroll-offset);
}

body.detail-hero-shell {
  --detail-tabs-scrim: hsla(0, 0%, 5%, 0.68);
  --detail-tabs-scrim-blur: 18px;
  --detail-tabs-rail-radius: 14px;
  --detail-tabs-rail-shadow: 0 4px 20px hsla(0, 0%, 0%, 0.22);
  --detail-tabs-rail-border: hsla(0, 0%, 100%, 0.09);
  --detail-tabs-pill-bg: hsla(0, 0%, 100%, 0.07);
  --detail-tabs-pill-border: color-mix(in srgb, var(--color-accent) 52%, hsla(0, 0%, 100%, 0.12));
  --detail-tabs-pill-glow: 0 4px 18px color-mix(in srgb, var(--color-accent) 16%, transparent);
  --detail-tabs-indicator-ease: cubic-bezier(0.33, 1, 0.28, 1);
  /* Hero stage height — tall portrait hero (80% of viewport). */
  --detail-hero-media-height: clamp(240px, calc(100svh * 4 / 5), 100svh);
}

html:not(.is-property-detail-iframe) body.detail-hero-shell main.app-main:has(.property-detail) {
  max-width: none;
  padding-inline: 0;
}

html:not(.is-property-detail-iframe) body.detail-hero-shell article.property-detail > .property-detail__shell {
  padding-inline: var(--space-4);
  box-sizing: border-box;
}

body.detail-hero-shell .property-detail__hero {
  position: relative;
}

body.detail-hero-shell #detail-main,
body.detail-hero-shell #detail-hero,
body.detail-hero-shell #detail-about,
body.detail-hero-shell #detail-location,
body.detail-hero-shell #detail-gallery,
body.detail-hero-shell #detail-mortgage,
body.detail-hero-shell #property-enquiry-form,
body.detail-hero-shell #detail-features,
body.detail-hero-shell .detail-description-nav-placeholder,
body.detail-hero-shell .detail-location-nav-placeholder,
body.detail-hero-shell .detail-gallery-nav-placeholder,
body.detail-hero-shell .detail-mortgage-nav-placeholder,
body.detail-hero-shell .detail-section {
  scroll-margin-top: var(--detail-tabs-scroll-offset);
}

.detail-description-nav-placeholder,
.detail-location-nav-placeholder,
.detail-gallery-nav-placeholder,
.detail-mortgage-nav-placeholder {
  height: 0;
  margin: 0;
  padding: 0;
  overflow: hidden;
}

/* Tab strip shell — sticky under viewport top */
.property-detail__tabs-sticky {
  position: sticky;
  top: 0;
  z-index: 18;
  margin: 0;
  pointer-events: none;
  background: var(--color-bg);
}

.property-detail__tabs-shell {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  min-height: 3.35rem;
  padding-inline: var(--space-2);
  border-bottom: none;
  box-sizing: border-box;
  pointer-events: auto;
}

.property-detail__tabs-progress {
  width: 100%;
  pointer-events: none;
  padding-block: 0.1rem 0.2rem;
  padding-inline: 0;
  box-sizing: border-box;
}

.property-detail__tabs-progress-track {
  width: 100%;
  height: 1px;
  border-radius: 1px;
  background: hsla(0, 0%, 100%, 0.1);
  overflow: hidden;
}

.property-detail__tabs-progress-fill {
  height: 100%;
  width: 100%;
  transform: scaleX(0);
  transform-origin: left center;
  background: color-mix(in srgb, var(--color-accent) 55%, transparent);
  transition: transform 0.085s linear;
  will-change: transform;
}

@media (prefers-reduced-motion: reduce) {
  .property-detail__tabs-progress-fill {
    transition: none;
  }
}

body.detail-hero-shell .property-detail__tabs-progress-track {
  background: var(--semantic-tabs-progress-on-hero);
}

.property-detail__tabs {
  display: flex;
  flex: 1 1 auto;
  min-width: 0;
  gap: var(--space-2);
  overflow-x: auto;
  padding: var(--space-2) 0;
  margin: 0;
  border-bottom: none;
  background: transparent;
  scrollbar-width: none;
  position: relative;
}

.property-detail__tabs::-webkit-scrollbar {
  display: none;
}

.property-detail__tabs-indicator {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0;
  border-radius: var(--app-radius-pill);
  background: var(--detail-tabs-pill-bg, hsla(0, 0%, 100%, 0.07));
  border: 1px solid var(--detail-tabs-pill-border, color-mix(in srgb, var(--color-accent) 45%, transparent));
  box-shadow: var(--detail-tabs-pill-glow, 0 4px 16px color-mix(in srgb, var(--color-accent) 14%, transparent));
  pointer-events: none;
  opacity: 0;
  transition:
    transform 0.4s var(--detail-tabs-indicator-ease, cubic-bezier(0.33, 1, 0.28, 1)),
    width 0.4s var(--detail-tabs-indicator-ease, cubic-bezier(0.33, 1, 0.28, 1)),
    height 0.4s var(--detail-tabs-indicator-ease, cubic-bezier(0.33, 1, 0.28, 1)),
    opacity 0.28s ease;
  will-change: transform, width;
}

.property-detail__tabs-indicator::after {
  content: "";
  position: absolute;
  left: 18%;
  right: 18%;
  bottom: 0.12rem;
  height: 2px;
  border-radius: 2px;
  background: color-mix(in srgb, var(--color-accent) 88%, hsl(38 36% 72%));
  opacity: 0.9;
  box-shadow: 0 0 8px color-mix(in srgb, var(--color-accent) 35%, transparent);
}

@media (prefers-reduced-motion: reduce) {
  .property-detail__tabs-indicator {
    transition: opacity 0.2s ease;
  }
}

.property-detail__tab {
  position: relative;
  z-index: 1;
  flex: 0 0 auto;
  padding: var(--space-2) var(--space-3);
  font-family: var(--font-ui);
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  border-radius: var(--app-radius-pill);
  border: none;
  background: transparent;
  text-decoration: none;
  transition:
    color 0.28s ease,
    opacity 0.28s ease;
}

.property-detail__tab:hover,
.property-detail__tab:focus-visible {
  color: var(--color-text);
  outline: none;
}

.property-detail__tab.is-active {
  color: var(--color-accent);
  font-weight: 600;
}

/* Sticky section rail — full viewport width; inner track aligns with shell (78rem). */
body.detail-hero-shell .property-detail__tabs-sticky {
  margin-top: 0;
  margin-bottom: var(--space-3);
  width: 100vw;
  max-width: none;
  margin-inline: calc(50% - 50vw);
  padding: var(--space-2) 0 var(--space-1);
  box-sizing: border-box;
  background: var(--detail-tabs-scrim);
  -webkit-backdrop-filter: blur(var(--detail-tabs-scrim-blur)) saturate(1.1);
  backdrop-filter: blur(var(--detail-tabs-scrim-blur)) saturate(1.1);
  border-block: 1px solid var(--detail-tabs-rail-border);
  border-inline: none;
  border-radius: 0;
  overflow: hidden;
  box-shadow: var(--detail-tabs-rail-shadow);
}

body.detail-hero-shell .property-detail__tabs-shell,
body.detail-hero-shell .property-detail__tabs-progress {
  width: 100%;
  max-width: 78rem;
  margin-inline: auto;
  padding-inline: var(--space-4);
  box-sizing: border-box;
}

html.is-property-detail-iframe body.detail-hero-shell .property-detail__tabs-sticky {
  width: 100%;
  margin-inline: 0;
}

@media (prefers-reduced-transparency: reduce) {
  body.detail-hero-shell .property-detail__tabs-sticky {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    background: var(--semantic-tabs-scrim-reduced);
  }
}

body.detail-hero-shell .property-detail__tabs-shell {
  padding: 0;
  min-height: 0;
  background: transparent;
  border-bottom: none;
}

body.detail-hero-shell .property-detail__tabs {
  gap: 0.2rem;
  padding: 0.35rem 0.3rem 0.45rem;
}

body.detail-hero-shell .property-detail__tabs-indicator {
  background: var(--detail-tabs-pill-bg);
  border-color: var(--detail-tabs-pill-border);
  box-shadow:
    var(--detail-tabs-pill-glow),
    inset 0 1px 0 hsla(0, 0%, 100%, 0.05);
}

body.detail-hero-shell .property-detail__tabs .property-detail__tab {
  font-family: var(--font-ui);
  text-transform: none;
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: 0.01em;
  padding: 0.5rem 0.9rem;
  border-radius: var(--app-radius-pill);
  color: var(--color-muted);
  text-shadow: none;
  text-decoration: none;
  opacity: 1;
  -webkit-tap-highlight-color: transparent;
  transition:
    color 0.32s ease,
    opacity 0.32s ease;
}

body.detail-hero-shell .property-detail__tabs .property-detail__tab:hover,
body.detail-hero-shell .property-detail__tabs .property-detail__tab:focus-visible {
  color: var(--color-fg);
}

body.detail-hero-shell .property-detail__tabs .property-detail__tab:focus:not(:focus-visible) {
  outline: none;
}

body.detail-hero-shell .property-detail__tabs .property-detail__tab:active {
  text-decoration: none;
  opacity: 1;
}

body.detail-hero-shell .property-detail__tabs .property-detail__tab.is-active {
  color: color-mix(in srgb, var(--color-accent) 92%, hsl(38 42% 88%));
  font-weight: 600;
  text-shadow: 0 0 20px color-mix(in srgb, var(--color-accent) 22%, transparent);
  opacity: 1;
}

/* Gallery hero */
.gallery {
  position: relative;
}

.gallery-media {
  position: relative;
}

.gallery-media__stage {
  position: relative;
  border-radius: 0;
  overflow: hidden;
}

/* Hero + detail thumb strip + masonry page — photos only, no gradient overlays. */
.gallery-media__stage::after,
.gallery-swiper::after,
.gallery-swiper .swiper-slide::after,
.detail-gallery-thumb::after,
.property-gallery-masonry__thumb::after,
.property-gallery-masonry__frame::after,
.lightbox-swiper::after,
.lightbox-swiper .swiper-slide::after {
  content: none;
  display: none;
}

body.detail-hero-shell .gallery-swiper,
body.detail-hero-shell .gallery-swiper .swiper-slide {
  height: var(--detail-hero-media-height);
}

.gallery-swiper .swiper-slide img,
.gallery-hero-slide-btn img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.gallery-hero-slide-btn {
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  border: none;
  cursor: zoom-in;
}

.gallery-swiper-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 4;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 50%;
  background: var(--semantic-black-scrim-40);
  border: 1px solid var(--semantic-white-border-20);
  color: var(--semantic-text-inverse);
  font-size: 1.35rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

.gallery-swiper-prev {
  left: var(--space-3);
}

.gallery-swiper-next {
  right: var(--space-3);
}

body.detail-hero-shell .gallery-media__stage > .gallery-swiper-pagination {
  position: absolute !important;
  top: auto !important;
  bottom: var(--space-4) !important;
  left: auto !important;
  right: var(--space-4) !important;
  width: auto !important;
  min-width: 0 !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0.35rem 0.75rem;
  z-index: 4;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  font-family: var(--font-ui);
  font-size: 0.74rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.05em;
  line-height: 1.2;
  color: var(--semantic-text-inverse);
  background: var(--semantic-gallery-pagination-bg);
  border-radius: var(--app-radius-pill);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid var(--semantic-gallery-pagination-border);
  pointer-events: none;
}

.gallery-swiper-pagination .swiper-pagination-current,
.gallery-swiper-pagination .swiper-pagination-total {
  font-variant-numeric: tabular-nums;
}

.gallery-swiper-pagination {
  bottom: var(--space-6) !important;
  z-index: 4;
}

.gallery-swiper-pagination .swiper-pagination-bullet {
  background: var(--semantic-bullet-on-photo);
  opacity: 0.35;
}

.gallery-swiper-pagination .swiper-pagination-bullet-active {
  opacity: 1;
  background: var(--color-accent);
}

/* Hero copy + facts live below the gallery image (reference: spare headline row + icon facts). */
.gallery-hero-info.gallery-overlay {
  position: relative;
  left: auto;
  right: auto;
  bottom: auto;
  z-index: 2;
  box-sizing: border-box;
  width: 100%;
  padding: var(--space-6) var(--space-4) var(--space-5);
  margin: 0;
  pointer-events: auto;
  background: var(--color-bg);
  border-radius: 0;
}

.gallery-hero-info__meta {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.gallery-hero-info__meta .gallery-location-row {
  margin: 0 0 var(--space-4);
}

.gallery-hero-info__meta .gallery-title {
  margin: 0 0 var(--space-5);
}

.gallery-hero-info__meta .gallery-price-row {
  margin: 0 0 var(--space-1);
}

.gallery-location-row {
  margin: 0;
}

.gallery-location {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin: 0;
  font-family: var(--font-ui);
  font-size: 0.85rem;
  font-weight: 500;
  line-height: 1.35;
  color: var(--color-text-muted);
}

.gallery-location svg {
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
  color: var(--color-accent);
}

.gallery-title {
  font-family: var(--font-sans);
  font-size: clamp(1.35rem, 4.5vw, 2rem);
  font-weight: var(--fw-medium);
  line-height: 1.2;
  color: var(--color-text);
}

.gallery-price-row {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-3);
  width: 100%;
  margin: 0;
  box-sizing: border-box;
}

.gallery-hero-info .card-facts-wrap {
  margin-top: var(--space-4);
}

.gallery-price {
  margin: 0;
  font-family: var(--font-sans);
  font-size: clamp(1.1rem, 3.5vw, 1.35rem);
  font-weight: 500;
  line-height: 1.25;
  color: var(--color-accent);
}

.gallery-status-badge {
  flex: 0 0 auto;
  margin-left: auto;
  padding: 0.28rem 0.65rem;
  font-family: var(--font-ui);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--color-text) 88%, transparent);
  background: color-mix(in srgb, var(--color-text-muted) 14%, transparent);
  border: 1px solid color-mix(in srgb, var(--color-text-muted) 28%, transparent);
  border-radius: var(--app-radius-pill);
}

.hero-facts {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: stretch;
}

.hero-facts__item {
  flex: 1 1 0;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 0.32rem;
  min-width: 0;
  padding: 0.7rem 0.85rem;
  margin: 0;
  background: transparent;
  border: none;
  border-radius: 0;
  text-align: center;
  position: relative;
}

.hero-facts__item + .hero-facts__item {
  border-inline-start: none;
}

.hero-facts__item + .hero-facts__item::before {
  content: "";
  position: absolute;
  inset-block: 18%;
  inset-inline-start: 0;
  width: 1px;
  background: var(--facts-item-divider);
}

.hero-facts__icon {
  color: var(--color-accent);
  line-height: 0;
  flex-shrink: 0;
}

.hero-facts__icon svg {
  width: 1.35rem;
  height: 1.35rem;
  display: block;
}

.hero-facts__value {
  display: block;
  font-family: var(--font-ui);
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.25;
  color: var(--color-text);
  white-space: nowrap;
}

.hero-facts__label {
  display: block;
  font-family: var(--font-ui);
  font-size: 0.68rem;
  font-weight: 400;
  line-height: 1.25;
  color: color-mix(in srgb, var(--color-text-muted) 88%, transparent);
}

/* Mini-map as last fact column — same rail as other facts, no outer card */
.hero-facts__item--minimap {
  justify-content: center;
  gap: 0;
  padding-inline: 0.2rem;
}

.hero-facts__minimap-wrap {
  width: min(100%, 4.25rem);
  max-height: clamp(2rem, 6.5vw, 2.5rem);
  margin-inline: auto;
  line-height: 0;
  box-sizing: border-box;
  border: none;
  border-radius: 0;
  overflow: visible;
  background: transparent;
}

.hero-facts__minimap-img {
  display: block;
  width: 100%;
  height: 100%;
  max-height: clamp(2rem, 6.5vw, 2.5rem);
  object-fit: contain;
  border: none;
  border-radius: 0;
  background: transparent;
}

/* Hero facts — scale (layout in 06-cards-app.css) */
.gallery-hero-info .card-facts-wrap .card-facts__icon svg {
  width: 1.35rem;
  height: 1.35rem;
}

.gallery-hero-info .card-facts-wrap .card-facts__value {
  font-size: 0.95rem;
}

.gallery-hero-info .card-facts-wrap .card-facts__label {
  font-size: 0.68rem;
}

.gallery-hero-info .card-facts-wrap .theme-img-pair .theme-img--light {
  display: none;
}

html[data-theme="light"] .gallery-hero-info .card-facts-wrap .theme-img-pair .theme-img--dark {
  display: none;
}

html[data-theme="light"] .gallery-hero-info .card-facts-wrap .theme-img-pair .theme-img--light {
  display: block;
}

.gallery-hero-actions {
  position: absolute;
  top: calc(var(--site-header-layout-pad, 0px) + var(--space-2));
  left: var(--space-3);
  right: var(--space-3);
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: var(--space-2);
  pointer-events: none;
}

.gallery-hero-actions__primary,
.gallery-hero-actions__trailing {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  pointer-events: auto;
}

.gallery-hero-actions__trailing {
  margin-inline-start: auto;
}

body.detail-hero-shell .gallery-hero-actions {
  top: max(var(--space-2), env(safe-area-inset-top, 0px));
}

.gallery-action {
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  margin: 0;
  background: var(--semantic-black-scrim-42);
  border: 1px solid var(--semantic-white-border-18);
  color: var(--semantic-text-inverse);
}

button.gallery-action {
  cursor: pointer;
  font: inherit;
  appearance: none;
  -webkit-appearance: none;
}

.gallery-action:hover {
  border-color: var(--color-accent);
  color: var(--color-accent);
}

.gallery-action--favorite .gallery-action__icon--heart {
  transition: fill 0.15s ease, stroke 0.15s ease;
}

.gallery-action--favorite.is-favorite .gallery-action__icon--heart {
  fill: currentColor;
  stroke: none;
}

/* Lightbox */
.lightbox {
  position: fixed;
  inset: 0;
  z-index: 200;
  max-width: none;
  max-height: none;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border: none;
  background: var(--semantic-black-scrim-92);
}

.lightbox::backdrop {
  background: var(--semantic-black-solid);
}

.lightbox-close {
  position: fixed;
  top: var(--space-4);
  right: var(--space-4);
  z-index: 210;
  width: 3rem;
  height: 3rem;
  font-size: 2rem;
  line-height: 1;
  color: var(--semantic-text-inverse);
  background: var(--semantic-black-scrim-40);
  border-radius: 50%;
  border: 1px solid var(--semantic-white-border-15);
}

.lightbox-swiper {
  height: 100%;
}

.lightbox-swiper .swiper-slide {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-8);
}

.lightbox-swiper img {
  max-height: 85vh;
  width: auto;
  max-width: 100%;
  object-fit: contain;
}

/* Detail sections */
.detail-section {
  margin-bottom: var(--space-8);
  scroll-margin-top: calc(var(--site-header-layout-pad, 0px) + 4.5rem);
}

.detail-section-heading {
  margin: 0 0 var(--space-4);
  font-size: var(--text-section-title);
}

/* Ubicación: pin + locality line matches hero (.gallery-location-row / .gallery-location) */
.detail-location-section > .detail-section-heading {
  margin-bottom: var(--space-2);
}

.detail-location-section:not(:has(> .gallery-location-row)) > .detail-section-heading {
  margin-bottom: var(--space-4);
}

.detail-location-section > .gallery-location-row {
  margin-bottom: var(--space-4);
}

.detail-editorial-rule {
  border: none;
  border-top: 1px solid var(--app-glass-border);
  margin: var(--space-8) 0;
}

.detail-description-block .detail-expand-toggle {
  display: block;
  width: fit-content;
  max-width: 100%;
  margin-top: var(--space-4);
}

.detail-description-rest.is-collapsed {
  display: none;
}

.detail-richtext {
  color: var(--color-text-muted);
  line-height: 1.65;
}

.detail-richtext p:first-child {
  margin-top: 0;
}

/* Agent mobile */
.property-detail-agent-mobile {
  margin: var(--space-5) 0;
  padding: 0.65rem 0.85rem;
  border-radius: var(--app-radius-lg);
  background: var(--semantic-detail-agent-rail-bg);
  backdrop-filter: blur(var(--app-blur));
  border: 1px solid color-mix(in srgb, var(--color-accent) 14%, var(--app-glass-border));
}

.property-detail-agent-mobile__row {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
}

.property-detail-agent-mobile__photo {
  width: 3.1rem;
  height: 3.1rem;
  flex-shrink: 0;
  border-radius: 50%;
  aspect-ratio: 1;
  object-fit: cover;
  border: 1px solid color-mix(in srgb, var(--color-accent) 45%, transparent);
}

.property-detail-agent-mobile__copy {
  flex: 1 1 auto;
  min-width: 0;
}

.property-detail-agent-mobile__eyebrow {
  margin: 0;
  font-family: var(--font-ui);
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-accent);
  line-height: 1.2;
}

.property-detail-agent-mobile__name {
  margin: 0.12rem 0 0;
  font-family: var(--font-sans);
  font-size: var(--text-md);
  font-weight: var(--fw-medium);
  color: var(--color-text);
  line-height: 1.25;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.property-detail-agent-mobile__actions {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.45rem;
  margin-top: 0;
  flex-shrink: 0;
}

.property-detail-agent-mobile__action {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 2.45rem;
  height: 2.45rem;
  padding: 0;
  border-radius: 50%;
  font-size: 0;
  line-height: 0;
  text-decoration: none;
  background: color-mix(in srgb, var(--color-surface) 50%, transparent);
  border: 1px solid var(--app-glass-border);
  color: var(--color-text);
}

.property-detail-agent-mobile__action--whatsapp {
  color: var(--semantic-text-inverse);
  background: var(--semantic-whatsapp);
  border-color: var(--semantic-whatsapp);
}

.property-detail-agent-mobile__action:hover,
.property-detail-agent-mobile__action:focus-visible {
  background: color-mix(in srgb, var(--color-surface) 68%, transparent);
}

.property-detail-agent-mobile__action:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.property-detail-agent-mobile__action--whatsapp:hover,
.property-detail-agent-mobile__action--whatsapp:focus-visible {
  background: var(--semantic-whatsapp-hover);
  border-color: var(--semantic-whatsapp-hover);
  color: var(--semantic-text-inverse);
}

.property-detail-agent-mobile__icon {
  flex: 0 0 auto;
  width: 1.25rem;
  height: 1.25rem;
  max-width: 1.25rem;
  max-height: 1.25rem;
  flex-shrink: 0;
  display: block;
}

/* Location — map sits flush (no framed card); bleed to shell gutters; tighter SVG via build pad */
.detail-location-map-wrap {
  margin: 0 calc(-1 * var(--space-4)) var(--space-4);
  width: calc(100% + 2 * var(--space-4));
  max-width: none;
  box-sizing: border-box;
  border: none;
  border-radius: 0;
  overflow: visible;
  background: transparent;
}

.detail-location-map {
  width: 100%;
  display: block;
  vertical-align: middle;
}

.detail-location-proximity {
  margin-top: var(--space-4);
}

.detail-proximity-head {
  margin-bottom: var(--space-4);
}

.detail-proximity-eyebrow {
  margin: 0;
  font-family: var(--font-sans);
  font-size: 0.625rem;
  font-weight: var(--fw-bold);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--proximity-gold);
}

.detail-proximity-title {
  margin: 0.5rem 0 0;
  font-family: var(--font-serif, Georgia, "Times New Roman", serif);
  font-size: clamp(1.35rem, 4vw, 1.65rem);
  font-weight: 400;
  line-height: 1.2;
  color: var(--color-text);
}

.detail-proximity-block {
  margin-top: var(--space-4);
}

.detail-proximity-block__label-row {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-bottom: var(--space-3);
}

.detail-proximity-block__label {
  margin: 0;
  flex-shrink: 0;
  font-family: var(--font-sans);
  font-size: 0.625rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--proximity-text-secondary);
}

.detail-proximity-block__rule {
  flex: 1;
  height: 1px;
  background: var(--proximity-divider);
}

.detail-proximity-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.625rem;
}

.detail-proximity-card {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 1.125rem 1rem 0.875rem;
  border-radius: 14px;
  border: 1px solid var(--proximity-card-border);
  background: var(--proximity-card-bg);
}

.detail-proximity-card__icon {
  display: flex;
  color: var(--proximity-text-secondary);
}

.detail-proximity-card__icon svg {
  width: 14px;
  height: 14px;
}

.detail-proximity-card__time {
  margin: 0;
  line-height: 1;
}

.detail-proximity-card__time-num {
  font-family: var(--font-serif, Georgia, "Times New Roman", serif);
  font-size: 2rem;
  font-weight: 300;
  color: var(--proximity-gold);
}

.detail-proximity-card__time-suffix {
  margin-inline-start: 0.15em;
  font-family: var(--font-sans);
  font-size: 0.75rem;
  color: var(--proximity-text-secondary);
}

.detail-proximity-card__category {
  margin: 0;
  font-family: var(--font-sans);
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--color-text);
}

.detail-proximity-card__poi-name {
  margin: 0;
  font-family: var(--font-sans);
  font-size: 0.8rem;
  color: var(--proximity-text-secondary);
}

.detail-proximity-card__mode {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  margin: 0.15rem 0 0;
  font-family: var(--font-sans);
  font-size: 0.625rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--proximity-gold);
}

.detail-proximity-card__mode-icon {
  display: flex;
  color: var(--proximity-gold);
}

.detail-proximity-daily-card {
  padding: 1rem 1rem 0.875rem;
  border-radius: 14px;
  border: 1px solid var(--proximity-card-border);
  background: var(--proximity-card-bg);
}

.detail-proximity-daily-group__head {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  margin: 0 0 0.65rem;
  font-family: var(--font-sans);
  font-size: 0.625rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--proximity-gold);
}

.detail-proximity-daily-group__icon {
  display: flex;
  color: var(--proximity-gold);
}

.detail-proximity-daily-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.detail-proximity-daily-list__item {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-3);
  padding: 0.35rem 0;
}

.detail-proximity-daily-list__label {
  font-family: var(--font-sans);
  font-size: 0.85rem;
  color: var(--proximity-text-secondary);
}

.detail-proximity-daily-list__time-num {
  font-family: var(--font-serif, Georgia, "Times New Roman", serif);
  font-size: 1.35rem;
  font-weight: 300;
  color: var(--proximity-gold);
}

.detail-proximity-daily-list__time-suffix {
  margin-inline-start: 0.1em;
  font-family: var(--font-sans);
  font-size: 0.7rem;
  color: var(--proximity-text-secondary);
}

.detail-proximity-daily-divider {
  margin: 0.75rem 0;
  border: none;
  border-top: 1px solid var(--proximity-divider);
}

/* Proximity disclaimer — unobtrusive legal/hint line */
.detail-section p.detail-proximity-footnote,
.detail-location-proximity .detail-proximity-footnote {
  margin: var(--space-3) 0 0;
  max-width: 52ch;
  font-family: var(--font-ui);
  font-size: 0.65rem;
  font-weight: 400;
  font-style: normal;
  line-height: 1.35;
  letter-spacing: 0.01em;
  color: color-mix(in srgb, var(--color-text-muted) 65%, transparent);
}

/* Nearby services preview (detail) */
.detail-nearby-preview {
  margin-top: var(--space-4);
  padding-top: var(--space-3);
  border-top: 1px solid color-mix(in srgb, var(--color-accent) 22%, transparent);
}

.detail-nearby-preview__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  margin-bottom: var(--space-2);
}

.detail-nearby-preview__heading {
  margin: 0;
  font-family: var(--font-sans);
  font-size: var(--text-subsection-label);
  font-weight: var(--fw-bold);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--color-accent);
}

.detail-nearby-preview__link {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--color-accent);
  text-decoration: none;
}

.detail-nearby-preview__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.detail-nearby-preview__item {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: 0.45rem 0;
  border-bottom: 1px solid color-mix(in srgb, var(--color-border) 55%, transparent);
}

.detail-nearby-preview__item:last-child {
  border-bottom: none;
}

.detail-nearby-preview__icon {
  flex-shrink: 0;
  color: var(--color-accent);
}

.detail-nearby-preview__name {
  flex: 1;
  min-width: 0;
  font-size: var(--text-list-primary);
  color: var(--color-text);
}

.detail-nearby-preview__dist {
  flex-shrink: 0;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--color-accent);
}

/* Full proximity page */
.property-proximity-page {
  padding-block: var(--space-5) var(--space-8);
}

.property-proximity-page__header {
  margin-bottom: var(--space-5);
}

.property-proximity-page__back-link {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--color-accent);
  text-decoration: none;
}

.property-proximity-page__title {
  margin: var(--space-3) 0 0;
  font-family: var(--font-sans);
  font-size: clamp(1.35rem, 4vw, 1.75rem);
  font-weight: var(--fw-medium);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--color-accent);
}

.property-proximity-page__eyebrow {
  margin: var(--space-2) 0 0;
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--color-text-muted);
}

.property-proximity-block {
  margin-bottom: var(--space-6);
}

.property-proximity-block__heading {
  margin: 0 0 var(--space-4);
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

.property-proximity-block--osm {
  padding-top: var(--space-4);
  border-top: 1px solid color-mix(in srgb, var(--color-accent) 25%, transparent);
}

.property-proximity-category {
  margin-bottom: var(--space-4);
}

.property-proximity-category__head {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-bottom: var(--space-2);
}

.property-proximity-category__icon {
  color: var(--color-accent);
}

.property-proximity-category__title {
  margin: 0;
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-accent);
}

.property-proximity-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.property-proximity-list__item {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-2) 0;
  border-bottom: 1px solid color-mix(in srgb, var(--color-border) 50%, transparent);
}

.property-proximity-list__thumb {
  flex-shrink: 0;
  width: 3rem;
  height: 3rem;
  border-radius: 8px;
  background-size: cover;
  background-position: center;
  background-color: var(--semantic-proximity-page-thumb-bg);
}

.property-proximity-list__thumb--icon {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-accent);
}

.property-proximity-list__text {
  flex: 1;
  min-width: 0;
}

.property-proximity-list__name {
  margin: 0;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--color-text);
}

.property-proximity-list__desc {
  margin: 0.15rem 0 0;
  font-size: 0.75rem;
  color: var(--color-text-muted);
}

.property-proximity-list__dist {
  flex-shrink: 0;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--color-accent);
  text-align: end;
}

.property-proximity-footnote,
.property-proximity-osm-notice {
  margin: var(--space-3) 0 0;
  max-width: 52ch;
  font-size: 0.65rem;
  line-height: 1.4;
  color: color-mix(in srgb, var(--color-text-muted) 70%, transparent);
}

.property-proximity-hero {
  margin-bottom: var(--space-6);
}

.property-proximity-hero__eyebrow {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-accent);
}

.property-proximity-hero__headline {
  margin: var(--space-2) 0 0;
  font-family: var(--font-sans);
  font-size: clamp(1.35rem, 4vw, 1.85rem);
  font-weight: var(--fw-medium);
  line-height: 1.2;
  color: var(--color-text);
}

.property-proximity-hero__supporting {
  margin: var(--space-3) 0 0;
  max-width: 42rem;
  font-size: 0.92rem;
  line-height: 1.5;
  color: var(--color-text-muted);
}

.property-proximity-highlights {
  display: flex;
  flex-wrap: nowrap;
  gap: var(--space-2);
  margin-top: var(--space-4);
  overflow-x: auto;
  padding-bottom: var(--space-1);
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}

.property-proximity-highlights__chip {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  flex-shrink: 0;
  padding: 0.45rem 0.75rem;
  border-radius: 999px;
  background: var(--semantic-proximity-page-chip-bg);
  border: 1px solid var(--semantic-proximity-page-chip-border);
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--color-text);
}

.property-proximity-highlights__icon {
  color: var(--color-accent);
}

.property-proximity-section__heading {
  margin: 0 0 var(--space-4);
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

.property-proximity-distancias {
  margin-bottom: var(--space-6);
}

.property-proximity-distancias__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 11rem), 1fr));
  gap: var(--space-3);
}

.property-proximity-distancia-card {
  display: flex;
  flex-direction: column;
  border-radius: 12px;
  overflow: hidden;
  background: var(--semantic-proximity-page-card-bg);
  border: 1px solid var(--semantic-proximity-page-card-border);
  box-shadow: var(--semantic-proximity-page-card-shadow);
}

.property-proximity-distancia-card__media {
  position: relative;
  min-height: 4.5rem;
  background-size: cover;
  background-position: center;
  background-color: var(--semantic-proximity-page-media-bg);
}

.property-proximity-distancia-card__overlay {
  position: absolute;
  inset: 0;
  background: var(--semantic-proximity-page-media-overlay);
}

.property-proximity-distancia-card__icon {
  position: absolute;
  left: var(--space-2);
  bottom: var(--space-2);
  color: var(--color-accent);
}

.property-proximity-distancia-card__body {
  padding: var(--space-3);
}

.property-proximity-distancia-card__label {
  margin: 0;
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

.property-proximity-distancia-card__title {
  margin: 0.2rem 0 0;
  font-size: 0.88rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--color-text);
}

.property-proximity-distancia-card__primary {
  margin: var(--space-2) 0 0;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--color-accent);
}

.property-proximity-distancia-card__secondary {
  margin: 0.15rem 0 0;
  font-size: 0.68rem;
  color: var(--color-text-muted);
}

.property-proximity-lifestyle {
  margin-bottom: var(--space-6);
  padding-top: var(--space-4);
  border-top: 1px solid color-mix(in srgb, var(--color-accent) 20%, transparent);
}

.property-proximity-lifestyle__grid {
  display: grid;
  gap: var(--space-3);
}

@media (min-width: 640px) {
  .property-proximity-lifestyle__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

.property-proximity-lifestyle-card {
  padding: var(--space-4);
  border-radius: 12px;
  background: var(--semantic-proximity-page-card-bg);
  border: 1px solid var(--semantic-proximity-page-card-border);
  box-shadow: var(--semantic-proximity-page-card-shadow);
}

.property-proximity-lifestyle-card__head {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-bottom: var(--space-2);
}

.property-proximity-lifestyle-card__icon {
  color: var(--color-accent);
}

.property-proximity-lifestyle-card__title {
  margin: 0;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-accent);
}

.property-proximity-lifestyle-card__bullets {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.85rem;
  line-height: 1.45;
  color: var(--color-text);
}

.property-proximity-lifestyle-card__bullets li + li {
  margin-top: 0.25rem;
}

.property-proximity-examples {
  margin-top: var(--space-3);
  font-size: 0.82rem;
}

.property-proximity-examples__summary {
  cursor: pointer;
  font-weight: 600;
  color: var(--color-accent);
  list-style: none;
}

.property-proximity-examples__summary::-webkit-details-marker {
  display: none;
}

.property-proximity-examples__list {
  margin: var(--space-2) 0 0;
  padding-left: 1rem;
  color: var(--color-text-muted);
}

.property-proximity-examples__hint {
  margin: var(--space-2) 0 0;
  font-size: 0.72rem;
  color: var(--color-text-muted);
}

.property-proximity-privacy {
  display: flex;
  gap: var(--space-3);
  align-items: flex-start;
  margin-bottom: var(--space-5);
  padding: var(--space-4);
  border-radius: 12px;
  background: var(--semantic-proximity-page-privacy-bg);
  border: 1px solid var(--semantic-proximity-page-privacy-border);
  box-shadow: var(--semantic-proximity-page-card-shadow);
}

.property-proximity-privacy__icon {
  flex-shrink: 0;
  color: var(--color-accent);
}

.property-proximity-privacy__body {
  margin: 0;
  font-size: 0.82rem;
  line-height: 1.5;
  color: var(--color-text-muted);
}

.detail-nearby-preview__text {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
}

.detail-nearby-preview__cat {
  font-size: var(--text-list-secondary);
  color: var(--color-text-muted);
}

/* Gallery — horizontal thumb strip (detail) */
.detail-gallery-grid {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  gap: var(--space-2);
  overflow-x: auto;
  overflow-y: hidden;
  padding-bottom: var(--space-1);
  margin: 0;
  scroll-snap-type: x proximity;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}

.detail-gallery-grid::-webkit-scrollbar {
  height: 3px;
}

.detail-gallery-grid::-webkit-scrollbar-thumb {
  background: color-mix(in srgb, var(--color-accent) 35%, transparent);
  border-radius: 3px;
}

.detail-gallery-cell {
  flex: 0 0 auto;
  scroll-snap-align: start;
  width: clamp(5.5rem, 32vw, 7.5rem);
}

.detail-gallery-thumb {
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  border: none;
  border-radius: 12px;
  overflow: hidden;
  cursor: zoom-in;
}

.detail-gallery-thumb img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  vertical-align: middle;
}

/* Lower Resumen (#detail-features) — list grid (mobile 2-col, desktop 1-col) */
#detail-features .detail-summary-card {
  padding: 0;
  border-radius: var(--facts-rail-radius);
  background: var(--semantic-card-facts-well);
  border: 1px solid var(--facts-item-divider);
  box-sizing: border-box;
  overflow: visible;
}

#detail-features .detail-summary-grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  width: 100%;
}

#detail-features .detail-summary-item {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: var(--space-3);
  margin: 0;
  padding: var(--space-4);
  box-sizing: border-box;
  text-align: start;
  border-bottom: 1px solid var(--facts-item-divider);
}

#detail-features .detail-summary-item:nth-child(odd) {
  border-inline-end: 1px solid var(--facts-item-divider);
}

#detail-features .detail-summary-item::before {
  content: none;
}

#detail-features .detail-summary-icon {
  color: var(--color-accent);
  line-height: 0;
  flex-shrink: 0;
}

#detail-features .detail-summary-icon svg {
  display: block;
  width: 1.35rem;
  height: 1.35rem;
}

#detail-features .detail-summary-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.15rem;
  min-width: 0;
  flex: 1 1 auto;
}

#detail-features .detail-summary-label {
  display: block;
  margin: 0;
  font-family: var(--font-sans);
  font-size: var(--text-list-secondary);
  font-weight: var(--fw-regular);
  line-height: 1.25;
  color: color-mix(in srgb, var(--color-text-muted) 88%, transparent);
}

#detail-features .detail-summary-value {
  display: block;
  margin: 0;
  font-family: var(--font-sans);
  font-size: var(--text-md);
  font-weight: var(--fw-bold);
  line-height: 1.25;
  color: var(--color-text);
}

#detail-features .detail-summary-item--feature .detail-summary-copy {
  gap: 0;
}

#detail-features .detail-summary-value--feature {
  font-size: 0.82rem;
  font-weight: 500;
  line-height: 1.35;
  color: color-mix(in srgb, var(--color-text) 92%, transparent);
}

@media (min-width: 768px) {
  #detail-features .detail-summary-grid {
    grid-template-columns: 1fr;
  }

  #detail-features .detail-summary-item:nth-child(odd) {
    border-inline-end: none;
  }
}

/* USP panel — framed well; header + 2×2 (mobile) / 4-across (desktop) tiles */
#detail-usps {
  --detail-usps-gold-ring: linear-gradient(
    135deg,
    color-mix(in srgb, var(--color-accent) 92%, #fff 12%) 0%,
    color-mix(in srgb, var(--color-accent) 38%, transparent) 22%,
    color-mix(in srgb, var(--color-accent) 12%, transparent) 48%,
    color-mix(in srgb, var(--color-accent) 55%, hsl(38 40% 55%)) 62%,
    color-mix(in srgb, var(--color-accent) 22%, transparent) 78%,
    color-mix(in srgb, var(--color-accent) 88%, #fff 10%) 100%
  );
  --detail-usps-panel-bg: color-mix(in srgb, var(--color-surface) 88%, #0a0908 12%);
  --detail-usps-card-bg: color-mix(in srgb, var(--color-surface) 72%, #14110e 28%);
  --detail-usps-card-border: color-mix(in srgb, var(--color-accent) 28%, transparent);
  --detail-usps-icon-well: color-mix(in srgb, var(--color-accent) 10%, var(--color-surface));
  --detail-usps-rule: color-mix(in srgb, var(--color-accent) 42%, transparent);
}

#detail-usps .detail-usps-panel {
  position: relative;
  isolation: isolate;
  box-sizing: border-box;
  width: 100%;
  padding:
    clamp(1.5rem, 4.5vw, 2rem)
    clamp(1.1rem, 4vw, 1.5rem)
    clamp(1.35rem, 4vw, 1.75rem);
  border-radius: clamp(1rem, 3.5vw, 1.25rem);
  background: var(--detail-usps-panel-bg);
}

#detail-usps .detail-usps-panel::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  pointer-events: none;
  background: var(--detail-usps-gold-ring);
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  mask-composite: exclude;
  z-index: 1;
}

#detail-usps .detail-usps-panel > * {
  position: relative;
  z-index: 2;
}

#detail-usps .detail-usps-head {
  margin: 0 0 clamp(1.25rem, 4vw, 1.65rem);
  padding: 0 clamp(0.15rem, 1vw, 0.35rem);
  text-align: center;
}

#detail-usps .detail-usps-head__title-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(0.65rem, 2.8vw, 1rem);
}

#detail-usps .detail-usps-head__rule {
  flex: 1 1 0;
  min-width: clamp(1.25rem, 6vw, 2.5rem);
  max-width: 5.5rem;
  height: 1px;
  background: var(--detail-usps-rule);
}

#detail-usps .detail-usps-heading {
  flex: 0 1 auto;
  margin: 0;
  max-width: 16rem;
  font-family: var(--font-serif, Georgia, "Times New Roman", serif);
  font-size: clamp(1.15rem, 4.2vw, 1.45rem);
  font-weight: 400;
  line-height: 1.22;
  letter-spacing: 0.01em;
  color: var(--proximity-gold, var(--color-accent));
  text-wrap: balance;
}

#detail-usps .detail-usps-eyebrow {
  margin: clamp(0.45rem, 1.8vw, 0.6rem) 0 0;
  max-width: 18rem;
  margin-inline: auto;
  font-family: var(--font-sans);
  font-size: clamp(0.78rem, 2.8vw, 0.88rem);
  font-weight: 400;
  line-height: 1.35;
  color: color-mix(in srgb, var(--color-text-muted) 90%, transparent);
}

#detail-usps .detail-usps-grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(0.65rem, 2.8vw, 0.85rem);
  width: 100%;
}

#detail-usps .detail-usps-item {
  box-sizing: border-box;
  min-width: 0;
  min-height: clamp(11rem, 40vw, 13.25rem);
  margin: 0;
  padding:
    clamp(1rem, 3.6vw, 1.25rem)
    clamp(0.65rem, 2.8vw, 0.85rem)
    clamp(0.85rem, 3vw, 1.05rem);
  border: 1px solid var(--detail-usps-card-border);
  border-radius: clamp(0.85rem, 3.2vw, 1rem);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  text-align: center;
  background: var(--detail-usps-card-bg);
  box-shadow: 0 1px 0 color-mix(in srgb, #fff 6%, transparent);
}

#detail-usps .detail-usps-item__icon-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: clamp(3.1rem, 11vw, 3.55rem);
  height: clamp(3.1rem, 11vw, 3.55rem);
  margin: 0 0 clamp(0.75rem, 2.6vw, 0.95rem);
  border-radius: 50%;
  background: var(--detail-usps-icon-well);
}

#detail-usps .detail-usps-item__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--proximity-gold, var(--color-accent));
  line-height: 0;
}

#detail-usps .detail-usps-item__icon svg {
  width: clamp(1.45rem, 5.2vw, 1.65rem);
  height: clamp(1.45rem, 5.2vw, 1.65rem);
}

#detail-usps .detail-usps-item__rule {
  position: relative;
  flex-shrink: 0;
  width: clamp(2.75rem, 10vw, 3.25rem);
  height: 1px;
  margin: 0 0 clamp(0.65rem, 2.2vw, 0.8rem);
  background: var(--detail-usps-rule);
}

#detail-usps .detail-usps-item__rule::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 4px;
  height: 4px;
  transform: translate(-50%, -50%) rotate(45deg);
  background: var(--proximity-gold, var(--color-accent));
  border-radius: 1px;
}

#detail-usps .detail-usps-item__num {
  display: block;
  flex-shrink: 0;
  margin: 0 0 clamp(0.55rem, 2vw, 0.7rem);
  font-family: var(--font-serif, Georgia, "Times New Roman", serif);
  font-size: clamp(1.85rem, 6.5vw, 2.1rem);
  font-weight: 300;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  color: var(--proximity-gold, var(--color-accent));
}

#detail-usps .detail-usps-item__label {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0 0.1rem;
  font-family: var(--font-serif, Georgia, "Times New Roman", serif);
  font-size: clamp(0.92rem, 3.2vw, 1.02rem);
  font-weight: 400;
  line-height: 1.36;
  color: var(--color-text);
  text-wrap: balance;
}

html[data-theme="light"] #detail-usps {
  --detail-usps-panel-bg: #ffffff;
  --detail-usps-card-bg: #ffffff;
  --detail-usps-card-border: color-mix(in srgb, var(--color-accent) 10%, rgba(23, 19, 13, 0.05));
  --detail-usps-icon-well: #ffffff;
  --detail-usps-rule: color-mix(in srgb, var(--color-accent) 26%, rgba(23, 19, 13, 0.07));
}

html[data-theme="light"] #detail-usps .detail-usps-panel {
  background: #ffffff;
  box-shadow:
    0 20px 52px rgba(23, 19, 13, 0.05),
    0 6px 18px rgba(23, 19, 13, 0.03),
    inset 0 1px 0 rgba(255, 255, 255, 1);
}

html[data-theme="light"] #detail-usps .detail-usps-item {
  background: #ffffff;
  border-color: color-mix(in srgb, var(--color-accent) 8%, rgba(23, 19, 13, 0.04));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 1),
    0 12px 32px rgba(23, 19, 13, 0.045),
    0 2px 10px rgba(23, 19, 13, 0.025);
}

html[data-theme="light"] #detail-usps .detail-usps-item__icon-wrap {
  background: radial-gradient(
    circle at 50% 28%,
    #ffffff 0%,
    #fffdfa 42%,
    #faf8f5 100%
  );
  border: 1px solid color-mix(in srgb, var(--color-accent) 7%, rgba(23, 19, 13, 0.04));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.98),
    0 8px 22px rgba(23, 19, 13, 0.05);
}

html[data-theme="dark"] #detail-usps {
  --detail-usps-panel-bg:
    linear-gradient(180deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0.008)),
    var(--semantic-card-facts-well);
  --detail-usps-card-bg:
    linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.01)),
    color-mix(in srgb, var(--color-surface) 55%, #0a0908 45%);
  --detail-usps-card-border: color-mix(in srgb, var(--color-accent) 32%, transparent);
  --detail-usps-icon-well: color-mix(in srgb, var(--color-accent) 14%, #1a1714);
  --detail-usps-rule: color-mix(in srgb, var(--color-accent) 48%, transparent);
}

html[data-theme="dark"] #detail-usps .detail-usps-item {
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

/* Structured amenities — grouped tables */
.detail-amenities-wrap {
  margin-top: var(--space-2);
}

.detail-amenities-group + .detail-amenities-group {
  margin-top: var(--space-4);
}

.detail-amenities-group__heading {
  margin: 0 0 var(--space-2);
  font-size: var(--text-subsection-label);
  font-weight: var(--fw-bold);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--color-text-muted);
}

.detail-amenities-table {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid var(--app-glass-border);
  border-radius: var(--app-radius-lg);
  overflow: hidden;
  background: color-mix(in srgb, var(--color-surface) 35%, transparent);
}

.detail-amenities-row__icon {
  width: 2.75rem;
  padding: 0.55rem 0.65rem;
  vertical-align: middle;
  color: var(--color-accent);
}

.detail-amenities-row__icon svg {
  display: block;
  width: 1.35rem;
  height: 1.35rem;
}

.detail-amenities-row__label {
  padding: 0.55rem 0.75rem 0.55rem 0;
  font-size: var(--text-list-primary);
  font-weight: var(--fw-semibold);
  line-height: 1.35;
  color: var(--color-text);
  vertical-align: middle;
}

.detail-amenities-row + .detail-amenities-row .detail-amenities-row__icon,
.detail-amenities-row + .detail-amenities-row .detail-amenities-row__label {
  border-top: 1px solid color-mix(in srgb, var(--app-glass-border) 65%, transparent);
}

@media (min-width: 640px) {
  .detail-amenities-table {
    display: block;
  }

  .detail-amenities-table tbody {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
  }

  .detail-amenities-row {
    display: grid;
    grid-template-columns: 2.75rem 1fr;
  }

  .detail-amenities-row + .detail-amenities-row .detail-amenities-row__icon,
  .detail-amenities-row + .detail-amenities-row .detail-amenities-row__label {
    border-top: none;
  }

  .detail-amenities-row:nth-child(n + 3) .detail-amenities-row__icon,
  .detail-amenities-row:nth-child(n + 3) .detail-amenities-row__label {
    border-top: 1px solid color-mix(in srgb, var(--app-glass-border) 65%, transparent);
  }
}

/* Property enquiry rail — agent CTA & contact form */
#property-enquiry-form.property-detail-enquiry {
  --enquiry-gold: color-mix(in srgb, var(--color-accent) 88%, hsl(40 38% 72%));
}

.property-detail-enquiry__visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.property-detail-enquiry__agent-card {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: var(--space-5);
  border-radius: clamp(14px, 4vw, 18px);
  background: color-mix(in srgb, var(--color-bg) 86%, hsl(260 8% 6%));
}

.property-detail-enquiry__agent-block {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  gap: var(--space-5);
}

.property-detail-enquiry__agent-visual {
  flex-shrink: 0;
}

.property-detail-enquiry__agent-img {
  width: 100%;
  max-width: 9.75rem;
  aspect-ratio: 160 / 214;
  height: auto;
  object-fit: cover;
  border-radius: clamp(12px, 4vw, 16px);
  border: none;
}

.property-detail-enquiry__agent-contact {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-width: 0;
  flex: 1 1 0;
  justify-content: flex-start;
}

.property-detail-enquiry__agent-name {
  font-family: var(--font-sans);
  font-size: clamp(1.35rem, 2.5vw, 1.75rem);
  font-weight: var(--fw-medium);
  margin: 0;
  line-height: 1.2;
  color: var(--color-text);
}

.property-detail-enquiry__agent-role {
  margin: 0;
  font-family: var(--font-ui);
  font-size: 0.88rem;
  font-weight: 500;
  color: var(--enquiry-gold);
}

.property-detail-enquiry__agent-actions {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-start;
  gap: 0.5rem;
  margin-top: auto;
  flex: 1 1 auto;
  min-height: 0;
}

.property-detail-enquiry__agent-action {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 3.1rem;
  height: 3.1rem;
  min-width: 3.1rem;
  min-height: 3.1rem;
  padding: 0;
  border-radius: clamp(10px, 3vw, 12px);
  border: 1px solid color-mix(in srgb, var(--enquiry-gold) 65%, hsl(43 42% 24%));
  background: transparent;
  color: var(--color-text-muted);
  font-size: 0;
  line-height: 0;
  text-decoration: none;
}

.property-detail-enquiry__agent-action-icon {
  width: 1.5rem;
  height: 1.5rem;
  max-width: 1.5rem;
  max-height: 1.5rem;
  flex-shrink: 0;
  display: block;
}

.property-detail-enquiry__agent-action:hover,
.property-detail-enquiry__agent-action:focus-visible {
  background: color-mix(in srgb, var(--enquiry-gold) 12%, transparent);
  color: var(--color-text);
}

.property-detail-enquiry__agent-action:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.property-detail-enquiry__agent-action--whatsapp {
  border-color: var(--semantic-whatsapp);
  color: var(--color-text-muted);
}

.property-detail-enquiry__agent-action--whatsapp .property-detail-enquiry__agent-action-icon {
  color: var(--semantic-whatsapp);
}

.property-detail-enquiry__agent-action--whatsapp:hover,
.property-detail-enquiry__agent-action--whatsapp:focus-visible {
  background: var(--semantic-whatsapp-subtle-bg);
  color: var(--color-text);
}

.property-detail-enquiry .property-detail-enquiry__form-tools {
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
}

.property-detail-enquiry__form-panel {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
}

.property-detail-enquiry__rail-form {
  max-width: 100%;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.property-detail-enquiry__tabs-rail {
  overflow-x: auto;
  overflow-y: hidden;
  margin: 0 -0.25rem;
  padding: 0 0.25rem 0.4rem;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}

.property-detail-enquiry__tabs-rail-track {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 0.45rem;
  width: max-content;
  min-width: 100%;
  box-sizing: border-box;
}

.enquiry-type-group--in-rail {
  flex: 0 1 auto;
  min-width: 0;
}

.enquiry-type-group--in-rail .enquiry-type-group__radios {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  gap: 0.45rem;
}

.enquiry-type-group--in-rail .enquiry-type-group__radios .enquiry-type-tab {
  flex: 0 0 auto;
  min-width: 5.75rem;
}

.property-detail-enquiry__form-wa {
  display: inline-flex;
  flex: 0 0 auto;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  min-height: 3.65rem;
  min-width: 5.75rem;
  padding: 0.45rem 0.55rem;
  border-radius: clamp(12px, 3vw, 14px);
  border: 1px solid var(--semantic-whatsapp);
  box-sizing: border-box;
  background: transparent;
  color: var(--color-text-muted);
  font-family: var(--font-ui);
  font-size: 0.78rem;
  font-weight: 600;
  text-decoration: none;
  text-align: center;
  align-self: stretch;
}

.property-detail-enquiry__form-wa-icon {
  width: 1.15rem;
  height: 1.15rem;
  flex-shrink: 0;
  display: block;
  color: var(--semantic-whatsapp);
}

.property-detail-enquiry__form-wa > span {
  line-height: 1.2;
  max-width: 7rem;
}

.property-detail-enquiry__form-wa:hover {
  background: var(--semantic-whatsapp-subtle-bg);
  color: var(--color-text);
}

.property-detail-enquiry__form-wa:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.property-detail-enquiry__form-call-wrap {
  flex: 0 0 auto;
  display: flex;
  align-items: stretch;
}

.property-detail-enquiry__form-call {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  width: 100%;
  min-height: 3.65rem;
  min-width: 5.75rem;
  padding: 0.45rem 0.55rem;
  border-radius: clamp(12px, 3vw, 14px);
  border: 1px solid color-mix(in srgb, var(--enquiry-gold) 65%, hsl(43 42% 24%));
  box-sizing: border-box;
  background: transparent;
  color: var(--color-text-muted);
  font-family: var(--font-ui);
  font-size: 0.78rem;
  font-weight: 600;
  text-align: center;
  cursor: pointer;
}

.property-detail-enquiry__form-call-icon {
  width: 1.15rem;
  height: 1.15rem;
  flex-shrink: 0;
  display: block;
  color: var(--enquiry-gold);
  stroke-linecap: round;
  stroke-linejoin: round;
}

.property-detail-enquiry__form-call > span {
  line-height: 1.2;
  max-width: 7rem;
}

.property-detail-enquiry__form-call:hover {
  background: color-mix(in srgb, var(--enquiry-gold) 10%, transparent);
  color: var(--color-text);
}

.property-detail-enquiry__form-call:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.property-detail-enquiry__form-call-reveal {
  margin: -0.15rem 0 var(--space-2);
  font-size: 0.88rem;
}

.property-detail-enquiry__form-call-reveal a {
  color: var(--enquiry-gold);
  font-weight: 600;
  text-decoration: none;
}

.property-detail-enquiry__form-call-reveal a:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.enquiry-type-group {
  margin: 0;
  padding: 0;
  border: none;
  min-width: 0;
}

.enquiry-type-tab {
  position: relative;
  margin: 0;
  cursor: pointer;
}

.enquiry-type-tab--action {
  display: flex;
  padding: 0;
  appearance: none;
  background: none;
  border: none;
  font: inherit;
  color: inherit;
  text-align: center;
}

.enquiry-type-tab__input {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
  margin: 0;
  pointer-events: none;
}

.enquiry-type-tab__face {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  min-height: 3.65rem;
  padding: 0.45rem 0.55rem;
  border-radius: clamp(12px, 3vw, 14px);
  border: none;
  background: color-mix(in srgb, var(--color-surface) 40%, transparent);
  color: var(--color-text-muted);
  transition: background 0.15s ease, color 0.15s ease;
}

.enquiry-type-tab__icon {
  width: 1.15rem;
  height: 1.15rem;
  flex-shrink: 0;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.enquiry-type-tab__label {
  font-family: var(--font-ui);
  font-size: 0.78rem;
  font-weight: 600;
  text-align: center;
  line-height: 1.2;
}

.enquiry-type-tab:has(.enquiry-type-tab__input:checked) .enquiry-type-tab__face {
  background: color-mix(in srgb, var(--enquiry-gold) 22%, transparent);
  color: var(--enquiry-gold);
}

.enquiry-type-tab:has(.enquiry-type-tab__input:focus-visible) .enquiry-type-tab__face {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.enquiry-type-tab--action .enquiry-type-tab__face {
  background: color-mix(in srgb, var(--color-surface) 38%, transparent);
  color: var(--color-text-muted);
}

.enquiry-type-tab--action:hover .enquiry-type-tab__face {
  background: color-mix(in srgb, var(--enquiry-gold) 12%, transparent);
  color: var(--enquiry-gold);
}

.enquiry-type-tab--action:focus-visible .enquiry-type-tab__face {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.enquiry-recipient-wrap {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.enquiry-recipient-wrap__label {
  font-family: var(--font-ui);
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--enquiry-gold);
}

.property-detail-enquiry__field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.property-detail-enquiry__field-label {
  font-family: var(--font-ui);
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--enquiry-gold);
}

.property-detail-enquiry__rail-form input,
.property-detail-enquiry__rail-form textarea,
.property-detail-enquiry__rail-form select {
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0.75rem 1rem;
  border-radius: clamp(12px, 3vw, 14px);
  border: none;
  background: color-mix(in srgb, var(--color-surface) 55%, hsl(260 10% 6%) 45%);
  color: var(--color-text);
  font-family: var(--font-ui);
  font-size: 0.87rem;
  box-sizing: border-box;
}

.property-detail-enquiry__rail-form textarea {
  resize: vertical;
  min-height: 7rem;
  line-height: 1.45;
}

.property-detail-enquiry__rail-form input::placeholder,
.property-detail-enquiry__rail-form textarea::placeholder {
  color: color-mix(in srgb, var(--color-text-muted) 85%, transparent);
}

.property-detail-enquiry__rail-form input:focus-visible,
.property-detail-enquiry__rail-form textarea:focus-visible,
.property-detail-enquiry__rail-form select:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--enquiry-gold) 75%, transparent);
  outline-offset: 1px;
}

.property-detail-enquiry__privacy {
  display: flex;
  gap: 0.55rem;
  align-items: flex-start;
  margin: 0.15rem 0 0;
  font-family: var(--font-ui);
  font-size: 0.78rem;
  line-height: 1.45;
  color: var(--color-text-muted);
  cursor: pointer;
}

.property-detail-enquiry__privacy input {
  flex-shrink: 0;
  width: 1rem;
  height: 1rem;
  margin: 0.12rem 0 0;
  accent-color: var(--enquiry-gold);
  border-radius: 4px;
}

.property-detail-enquiry__privacy-link {
  color: var(--enquiry-gold);
  font-weight: 600;
  text-decoration: none;
}

.property-detail-enquiry__privacy-link:hover {
  text-decoration: underline;
}

.property-detail-enquiry__privacy-link:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.property-detail-enquiry__submit {
  margin-top: 0.15rem;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 0.65rem;
  width: 100%;
  padding: 0.95rem 1.25rem;
  border-radius: clamp(12px, 3vw, 14px);
  border: none;
  font-family: var(--font-sans);
  font-size: var(--text-lg);
  font-weight: var(--fw-semibold);
  text-transform: none;
  letter-spacing: normal;
  min-height: 0;
  box-sizing: border-box;
  color: color-mix(in srgb, var(--color-bg) 94%, hsl(260 40% 4%));
  background: linear-gradient(
    90deg,
    color-mix(in srgb, var(--enquiry-gold) 96%, hsl(43 72% 88%)),
    color-mix(in srgb, var(--enquiry-gold) 68%, hsl(38 54% 46%))
  );
  cursor: pointer;
  box-shadow: 0 2px 12px rgb(0 0 0 / 18%);
}

.property-detail-enquiry__submit.btn-primary:hover {
  transform: none;
  color: color-mix(in srgb, var(--color-bg) 94%, hsl(260 40% 4%));
  filter: brightness(1.04);
}

.property-detail-enquiry__submit:not(.btn-primary):hover {
  filter: brightness(1.04);
}

.property-detail-enquiry__submit > span {
  grid-column: 2;
  text-align: center;
}

.property-detail-enquiry__submit-arrow {
  grid-column: 3;
  justify-self: end;
  opacity: 0.85;
}

.property-detail-enquiry__trust-row {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: center;
  gap: 0;
  margin-top: var(--space-1);
  overflow-x: auto;
  overflow-y: visible;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.property-detail-enquiry__trust-row::-webkit-scrollbar {
  display: none;
}

.property-detail-enquiry__trust-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.16rem;
  flex-shrink: 0;
  font-family: var(--font-ui);
  font-size: clamp(0.6rem, 1.65vw + 0.42rem, 0.72rem);
  font-weight: 500;
  color: var(--enquiry-gold);
  white-space: nowrap;
}

.property-detail-enquiry__trust-gap {
  flex-shrink: 0;
  color: color-mix(in srgb, var(--enquiry-gold) 55%, transparent);
  font-size: clamp(0.6rem, 1.65vw + 0.42rem, 0.72rem);
  font-weight: 500;
  user-select: none;
}

.property-detail-enquiry__trust-pill svg {
  width: 0.75rem;
  height: 0.75rem;
  flex-shrink: 0;
  opacity: 0.95;
  display: block;
}

@media (max-width: 768px) {
  .property-detail__shell-rail {
    padding-bottom: calc(var(--space-10) + var(--app-bottom-safe));
  }

  #property-enquiry-form.property-detail-enquiry {
    scroll-margin-bottom: calc(var(--app-bottom-nav-height) + var(--app-bottom-safe) + var(--space-4));
  }

  /* —— Mobile detail: app screen rhythm (≤768px, body.detail-hero-shell only) —— */
  body.detail-hero-shell {
    --detail-mobile-chrome: calc(
      3.35rem + var(--app-bottom-nav-height) + var(--app-bottom-safe)
    );
    --detail-mobile-screen: calc(100svh - var(--detail-mobile-chrome));
    --detail-mobile-section-title: clamp(1.5rem, 5vw, 1.75rem);
    --detail-mobile-gold-ring: linear-gradient(
      135deg,
      color-mix(in srgb, var(--color-accent) 92%, #fff 12%) 0%,
      color-mix(in srgb, var(--color-accent) 38%, transparent) 22%,
      color-mix(in srgb, var(--color-accent) 12%, transparent) 48%,
      color-mix(in srgb, var(--color-accent) 55%, hsl(38 40% 55%)) 62%,
      color-mix(in srgb, var(--color-accent) 22%, transparent) 78%,
      color-mix(in srgb, var(--color-accent) 88%, #fff 10%) 100%
    );
  }

  html:not(.is-property-detail-iframe) body.detail-hero-shell article.property-detail > .property-detail__shell {
    padding-inline: var(--space-5);
  }

  body.detail-hero-shell .property-detail__tabs-shell,
  body.detail-hero-shell .property-detail__tabs-progress {
    padding-inline: var(--space-5);
  }

  /* Screen 1 — summary fills one viewport (gallery already above in DOM) */
  body.detail-hero-shell .gallery-hero-info.gallery-overlay {
    min-height: var(--detail-mobile-screen);
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    padding:
      clamp(1.5rem, 6vw, 2rem)
      clamp(1.35rem, 5vw, 1.75rem);
  }

  /* Meta stack: location → title → operation → price (DOM order; spacing from base meta margins) */
  body.detail-hero-shell .gallery-hero-info__meta {
    flex: 0 0 auto;
  }

  body.detail-hero-shell .gallery-hero-info__meta .gallery-title {
    font-size: clamp(2rem, 9vw, 3rem);
    line-height: 1.12;
    letter-spacing: 0.02em;
  }

  body.detail-hero-shell .gallery-hero-info__meta .gallery-price-row {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    gap: clamp(0.35rem, 1.5svh, 0.55rem);
    width: 100%;
    box-sizing: border-box;
  }

  body.detail-hero-shell .gallery-hero-info__meta .gallery-location {
    margin: 0;
    font-size: clamp(0.95rem, 3.8vw, 1.05rem);
  }

  body.detail-hero-shell .gallery-hero-info__meta .gallery-location svg {
    width: 1.125rem;
    height: 1.125rem;
  }

  body.detail-hero-shell .gallery-hero-info__meta .gallery-status-badge {
    order: 1;
    align-self: flex-start;
    margin: 0;
    padding: 0.38rem 0.85rem;
    font-size: 0.8rem;
    color: var(--color-accent);
    background: color-mix(in srgb, var(--color-accent) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--color-accent) 55%, transparent);
  }

  body.detail-hero-shell .gallery-hero-info__meta .gallery-price {
    order: 2;
    margin: 0;
    font-size: clamp(1.75rem, 7vw, 2.35rem);
    font-weight: 600;
  }

  /*
   * Screen 1 — facts: 2×2 premium square tiles
   * DOM: .gallery-hero-info > .card-facts-wrap > ul.card-facts > li.card-facts__item
   *       > .card-facts__icon | strong.card-facts__value | span.card-facts__label
   */
  body.detail-hero-shell .gallery-hero-info .card-facts-wrap {
    flex: 0 0 auto;
    width: 100%;
    margin-top: auto;
    margin-bottom: 0;
    padding: 0;
    background: transparent;
    border: none;
    overflow: visible;
    box-shadow: none;
  }

  body.detail-hero-shell .gallery-hero-info .card-facts-wrap .card-facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(0.9rem, 3.5vw, 1.15rem);
    width: 100%;
    list-style: none;
    margin: 0;
    padding: 0;
    align-items: stretch;
  }

  body.detail-hero-shell .gallery-hero-info .card-facts-wrap .card-facts__item {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    box-sizing: border-box;
    aspect-ratio: 1 / 1;
    min-width: 0;
    width: 100%;
    height: auto;
    margin: 0;
    padding: clamp(0.9rem, 4vw, 1.2rem);
    border: 0;
    border-radius: clamp(1.1rem, 5vw, 1.45rem);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0;
    text-align: center;
    background: linear-gradient(
      180deg,
      color-mix(in srgb, var(--color-surface) 92%, #fff 8%),
      var(--semantic-card-facts-well)
    );
    box-shadow: none;
  }

  body.detail-hero-shell .gallery-hero-info .card-facts-wrap .card-facts__item + .card-facts__item {
    border-inline-start: 0;
  }

  /* Gold ring on every tile — see 06-cards-app (sibling ::before must reset divider width). */
  body.detail-hero-shell .gallery-hero-info .card-facts-wrap .card-facts__item::before,
  body.detail-hero-shell .gallery-hero-info .card-facts-wrap .card-facts__item + .card-facts__item::before {
    content: "";
    display: block;
    position: absolute;
    inset: 0;
    inset-block: unset;
    inset-inline: unset;
    width: auto;
    height: auto;
    border-radius: inherit;
    padding: 1px;
    background: var(--detail-mobile-gold-ring);
    -webkit-mask:
      linear-gradient(#000 0 0) content-box,
      linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask:
      linear-gradient(#000 0 0) content-box,
      linear-gradient(#000 0 0);
    mask-composite: exclude;
    pointer-events: none;
    z-index: 1;
  }

  body.detail-hero-shell .gallery-hero-info .card-facts-wrap .card-facts__item > * {
    position: relative;
    z-index: 2;
  }

  body.detail-hero-shell .gallery-hero-info .card-facts-wrap .card-facts__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 100%;
    margin: 0 0 clamp(0.55rem, 2vw, 0.75rem);
    padding: 0;
    color: var(--color-accent);
    line-height: 0;
  }

  body.detail-hero-shell .gallery-hero-info .card-facts-wrap .card-facts__icon svg {
    display: block;
    width: clamp(1.55rem, 6vw, 1.9rem);
    height: clamp(1.55rem, 6vw, 1.9rem);
    margin-inline: auto;
  }

  body.detail-hero-shell .gallery-hero-info .card-facts-wrap .card-facts__value {
    display: block;
    flex: 0 0 auto;
    width: 100%;
    margin: 0;
    padding: 0;
    font-family: var(--font-ui);
    font-size: clamp(1.35rem, 6vw, 1.8rem);
    font-weight: 700;
    line-height: 1.05;
    color: var(--color-text);
    text-align: center;
    white-space: normal;
  }

  body.detail-hero-shell .gallery-hero-info .card-facts-wrap .card-facts__label {
    display: block;
    flex: 0 0 auto;
    width: 100%;
    margin: clamp(0.35rem, 1.8vw, 0.5rem) 0 0;
    padding: 0;
    font-family: var(--font-ui);
    font-size: clamp(0.9rem, 3.8vw, 1.05rem);
    font-weight: 400;
    line-height: 1.15;
    color: color-mix(in srgb, var(--color-text-muted) 88%, transparent);
    text-align: center;
  }

  body.detail-hero-shell .gallery-hero-info .card-facts-wrap .card-facts__item.card-facts__minimap {
    padding: clamp(0.75rem, 3.5vw, 1rem);
  }

  body.detail-hero-shell .gallery-hero-info .card-facts-wrap .card-facts__minimap-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 1 1 auto;
    width: 100%;
    max-width: 4.75rem;
    min-height: 0;
    margin: 0;
  }

  html[data-theme="dark"] body.detail-hero-shell .gallery-hero-info .card-facts-wrap .card-facts__item {
    background:
      linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.008)),
      var(--semantic-card-facts-well);
  }

  /* Light tile surface — 02b-theme-light-app.css */

  html[data-theme="light"] body.detail-hero-shell .gallery-hero-info .card-facts-wrap .card-facts__icon {
    color: var(--color-accent);
  }

  /* Agent CTA — shiny gold border (separate from fact tiles) */
  body.detail-hero-shell .property-detail-agent-mobile {
    position: relative;
    overflow: hidden;
    border: none;
    border-radius: 1.35rem;
    isolation: isolate;
    box-shadow: inset 0 1px 0 color-mix(in srgb, var(--color-accent) 14%, transparent);
  }

  body.detail-hero-shell .property-detail-agent-mobile::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    padding: 1px;
    background: var(--detail-mobile-gold-ring);
    -webkit-mask:
      linear-gradient(#000 0 0) content-box,
      linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask:
      linear-gradient(#000 0 0) content-box,
      linear-gradient(#000 0 0);
    mask-composite: exclude;
    pointer-events: none;
    z-index: 1;
  }

  body.detail-hero-shell .property-detail-agent-mobile > * {
    position: relative;
    z-index: 2;
  }

  html[data-theme="light"] body.detail-hero-shell .property-detail-agent-mobile {
    box-shadow: inset 0 1px 0 color-mix(in srgb, var(--color-accent) 18%, transparent);
  }

  /* Screen 2 — agent CTA */
  body.detail-hero-shell .property-detail-agent-mobile {
    margin-top: clamp(2.5rem, 10svh, 4.5rem);
    margin-bottom: 0;
    padding: clamp(1rem, 4vw, 1.15rem) clamp(1rem, 4vw, 1.2rem);
    background: var(--semantic-detail-agent-rail-bg);
    backdrop-filter: blur(var(--app-blur));
    -webkit-backdrop-filter: blur(var(--app-blur));
  }

  body.detail-hero-shell .property-detail-agent-mobile__photo {
    width: 3.9rem;
    height: 3.9rem;
  }

  body.detail-hero-shell .property-detail-agent-mobile__eyebrow {
    font-size: 0.74rem;
    letter-spacing: 0.06em;
  }

  body.detail-hero-shell .property-detail-agent-mobile__name {
    font-size: 1.15rem;
  }

  body.detail-hero-shell .property-detail-agent-mobile__row {
    gap: 0.9rem;
  }

  body.detail-hero-shell .property-detail-agent-mobile__action {
    width: 2.95rem;
    height: 2.95rem;
  }

  body.detail-hero-shell .property-detail-agent-mobile__icon {
    width: 1.35rem;
    height: 1.35rem;
    max-width: 1.35rem;
    max-height: 1.35rem;
  }

  /* About / description */
  body.detail-hero-shell #detail-about.detail-section {
    margin-top: 0;
    margin-bottom: var(--space-6);
  }

  body.detail-hero-shell #detail-about .detail-section-heading {
    font-size: clamp(1.5rem, 5vw, 1.75rem);
    margin: var(--space-6) 0 var(--space-4);
  }

  body.detail-hero-shell #detail-about .detail-intro-subheading {
    margin: 0 0 var(--space-4);
    font-size: 1rem;
    line-height: 1.45;
  }

  body.detail-hero-shell #detail-about .detail-richtext {
    font-size: clamp(1rem, 3.8vw, 1.08rem);
    line-height: 1.7;
  }

  body.detail-hero-shell #detail-about .detail-richtext p {
    margin-bottom: 0.9em;
  }

  /* Ubicación + proximity */
  body.detail-hero-shell .detail-location-section > .detail-section-heading {
    font-size: var(--detail-mobile-section-title);
  }

  body.detail-hero-shell .detail-location-section .gallery-location {
    font-size: clamp(0.95rem, 3.8vw, 1.05rem);
  }

  body.detail-hero-shell .detail-proximity-eyebrow {
    font-size: 0.72rem;
  }

  body.detail-hero-shell .detail-proximity-title {
    font-size: clamp(1.45rem, 4.5vw, 1.75rem);
  }

  body.detail-hero-shell .detail-proximity-card {
    padding: 1.25rem 1.05rem 1.05rem;
  }

  body.detail-hero-shell .detail-proximity-card__time-num {
    font-size: 2.25rem;
  }

  body.detail-hero-shell #detail-usps .detail-usps-item__num {
    font-size: 2.15rem;
  }

  body.detail-hero-shell #detail-usps .detail-usps-item {
    min-height: clamp(11.5rem, 44vw, 13.5rem);
  }

  body.detail-hero-shell .detail-proximity-card__time-suffix {
    font-size: 0.82rem;
  }

  body.detail-hero-shell .detail-proximity-block__label {
    font-size: 0.74rem;
  }

  /* Agent CTA (below gallery strip) → Resumen */
  body.detail-hero-shell .property-detail-agent-mobile + #detail-features.detail-section {
    margin-top: clamp(2.5rem, 8svh, 4rem);
  }

  body.detail-hero-shell .property-detail-agent-mobile:has(+ #detail-features) {
    margin-bottom: clamp(1.25rem, 4svh, 2rem);
  }

  /* Resumen / features */
  body.detail-hero-shell #detail-features .detail-section-heading {
    font-size: var(--detail-mobile-section-title);
  }

  body.detail-hero-shell #detail-features .detail-summary-label {
    font-size: 0.8rem;
  }

  body.detail-hero-shell #detail-features .detail-summary-value {
    font-size: 1.05rem;
  }

  body.detail-hero-shell #detail-features .detail-summary-value--feature {
    font-size: 0.92rem;
  }

  body.detail-hero-shell #detail-features .detail-summary-icon svg {
    width: 1.55rem;
    height: 1.55rem;
  }

  body.detail-hero-shell #detail-features .detail-summary-item {
    padding: var(--space-4) var(--space-3);
  }

  /* Amenities */
  body.detail-hero-shell .detail-amenities-group__heading {
    font-size: 0.8rem;
  }

  body.detail-hero-shell .detail-amenities-row__label {
    font-size: 0.96rem;
  }

  body.detail-hero-shell .detail-amenities-row__icon svg {
    width: 1.55rem;
    height: 1.55rem;
  }

  /* Gallery */
  body.detail-hero-shell #detail-gallery .detail-section-heading {
    font-size: var(--detail-mobile-section-title);
  }

  /* Enquiry */
  body.detail-hero-shell #property-enquiry-form .property-detail-enquiry__agent-name {
    font-size: clamp(1.45rem, 4vw, 1.65rem);
  }

  body.detail-hero-shell #property-enquiry-form .property-detail-enquiry__agent-role {
    font-size: 0.96rem;
  }

  body.detail-hero-shell #property-enquiry-form .property-detail-enquiry__field-label {
    font-size: 0.86rem;
  }

  body.detail-hero-shell #property-enquiry-form .property-detail-enquiry__rail-form input,
  body.detail-hero-shell #property-enquiry-form .property-detail-enquiry__rail-form textarea {
    font-size: 0.96rem;
    padding: 0.85rem 1rem;
  }

  body.detail-hero-shell .detail-section-heading {
    font-size: var(--detail-mobile-section-title);
  }

  body.detail-hero-shell .detail-section {
    margin-bottom: var(--space-10);
  }
}

.gallery-page-overlay {
  position: fixed;
  inset: 0;
  z-index: 180;
  background: var(--color-bg);
  display: flex;
  flex-direction: column;
}

.gallery-page-overlay[hidden] {
  display: none !important;
}

.gallery-page-overlay__close {
  position: absolute;
  top: var(--space-3);
  right: var(--space-3);
  z-index: 10;
  padding: var(--space-2);
  color: var(--color-text);
}

.gallery-page-overlay__frame {
  flex: 1;
  width: 100%;
  border: none;
}


/* Home — Discover */

.hero {
  position: relative;
  min-height: clamp(320px, 72vh, 640px);
  display: flex;
  align-items: flex-end;
  background-size: cover;
  background-position: center;
  border-radius: 0 0 var(--app-radius-lg) var(--app-radius-lg);
  overflow: hidden;
}

/* Home only: logo in first grid row (true top of hero), copy in last row — avoids a faux “top bar” from bottom-aligned inner padding. */
body.page-home .hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto 1fr auto;
  align-items: stretch;
}

.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    color-mix(in srgb, var(--color-bg) 92%, transparent) 0%,
    color-mix(in srgb, #000 45%, transparent) 45%,
    transparent 100%
  );
  pointer-events: none;
}

body.page-home .hero::after {
  background:
    linear-gradient(
      to bottom,
      color-mix(in srgb, #000 52%, transparent) 0%,
      transparent 40%
    ),
    linear-gradient(
      to top,
      color-mix(in srgb, var(--color-bg) 90%, transparent) 0%,
      color-mix(in srgb, #000 48%, transparent) 50%,
      transparent 100%
    );
}

.hero-inner {
  position: relative;
  z-index: 2;
  width: 100%;
  padding: var(--space-8) var(--space-4);
}

body.page-home .hero-inner {
  grid-row: 3;
  grid-column: 1;
  padding-top: var(--space-4);
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

body.page-home .site-home-logo {
  grid-row: 1;
  grid-column: 1;
  justify-self: start;
  align-self: start;
  margin: 0;
  z-index: 3;
  position: relative;
}

.site-home-logo {
  display: block;
  width: fit-content;
  max-width: 100%;
  margin: 0 0 var(--space-6);
  line-height: 0;
  text-decoration: none;
}

.site-home-logo:focus-visible {
  outline: 2px solid color-mix(in srgb, #fff 85%, transparent);
  outline-offset: 4px;
  border-radius: var(--app-radius-sm);
}

.site-home-logo__img {
  display: block;
  width: auto;
  height: auto;
  max-height: clamp(3rem, 14vw, 4.75rem);
  max-width: min(100%, 14rem);
  filter: drop-shadow(0 2px 16px color-mix(in srgb, #000 70%, transparent));
}

@media (max-width: 768px) {
  body.page-home.has-app-bottom-nav {
    --property-card-top-chrome: 8.75rem;
  }

  body.page-home {
    margin: 0;
    padding: 0;
  }

  /* Mobile: wordmark in first hero row — ⅓ viewport width, inset from safe edges (no fixed header). */
  body.page-home .site-home-logo {
    width: calc(100vw / 3);
    max-width: calc(100vw / 3);
    margin-top: calc(env(safe-area-inset-top, 0px) + var(--space-3));
    margin-left: calc(env(safe-area-inset-left, 0px) + var(--space-3));
    margin-right: 0;
    margin-bottom: 0;
  }

  body.page-home .site-home-logo__img {
    width: 100%;
    max-width: none;
    height: auto;
    max-height: none;
  }

  body.page-home .hero-inner {
    padding-top: var(--space-4);
  }

  .hero-trust {
    gap: var(--space-3);
  }
}

.hero-copy {
  max-width: 22rem;
}

body.page-home .hero-copy {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  max-width: none;
}

.hero-subtitle {
  margin: 0 0 var(--space-4);
  font-size: 0.95rem;
  line-height: 1.5;
  font-weight: 400;
  font-family: var(--font-ui);
  color: color-mix(in srgb, #fff 92%, transparent);
  text-shadow: 0 1px 14px color-mix(in srgb, #000 55%, transparent);
}

.hero-headline {
  margin: 0 0 var(--space-2);
  font-size: clamp(1.85rem, 7vw, 2.75rem);
  color: var(--color-text);
  text-shadow: 0 2px 24px color-mix(in srgb, #000 55%, transparent);
}

body.page-home .hero-headline {
  margin-bottom: var(--space-3);
}

body.page-home .hero-subtitle {
  margin-bottom: var(--space-10);
}

.hero-copy__ctas {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: var(--space-3);
}

.hero-copy__ctas .hero-cta {
  flex: 1 1 0;
  min-width: 0;
  text-align: center;
}

.hero-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  min-height: 2.85rem;
  padding: 0.55rem 1.15rem;
  border-radius: var(--app-radius-md);
  font-family: var(--font-ui);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
  border: 1px solid transparent;
  transition:
    transform 0.15s ease,
    box-shadow 0.2s ease,
    background 0.2s ease,
    color 0.2s ease,
    border-color 0.2s ease;
}

.hero-cta--map {
  background: linear-gradient(
    145deg,
    color-mix(in srgb, var(--color-accent) 100%, #fff 6%) 0%,
    var(--color-accent-dark) 100%
  );
  color: var(--color-bg);
  border-color: color-mix(in srgb, var(--color-accent) 65%, #000);
  box-shadow: 0 4px 18px color-mix(in srgb, #000 40%, transparent);
}

.hero-cta--map:hover {
  color: var(--color-bg);
  transform: translateY(-1px);
  box-shadow: 0 6px 24px color-mix(in srgb, #000 45%, transparent);
}

.hero-cta--explore {
  background: transparent;
  border-color: color-mix(in srgb, var(--color-accent) 72%, transparent);
  color: #f8f6f0;
}

.hero-cta--explore:hover {
  background: color-mix(in srgb, #fff 10%, transparent);
  color: #fff;
  border-color: color-mix(in srgb, var(--color-accent) 90%, #fff);
}

.hero-cta__icon {
  flex-shrink: 0;
}

.hero-trust-shell {
  width: 100%;
  display: flex;
  justify-content: center;
  margin-top: var(--space-8);
  box-sizing: border-box;
}

body.page-home .hero-trust-shell {
  margin-top: var(--space-8);
}

.hero-trust {
  list-style: none;
  margin: 0;
  padding: 0;
  padding-inline: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: var(--space-4);
  width: fit-content;
  max-width: 100%;
  box-sizing: border-box;
}

.hero-trust__item {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex: 0 1 auto;
  min-width: 0;
}

.hero-trust__icon {
  flex-shrink: 0;
  color: var(--color-accent);
}

.hero-trust__icon svg {
  display: block;
}

.hero-trust__text {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  text-align: left;
  min-width: 0;
}

.hero-trust__title {
  font-size: 0.68rem;
  font-weight: 600;
  line-height: 1.25;
  color: #fff;
  text-shadow: 0 1px 10px color-mix(in srgb, #000 50%, transparent);
}

.hero-trust__meta {
  font-size: 0.62rem;
  line-height: 1.2;
  color: color-mix(in srgb, #fff 70%, transparent);
}

.home-discover-search {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin: calc(-1 * var(--space-6)) var(--space-4) var(--space-8);
  position: relative;
  z-index: 3;
}

.home-discover-search__field {
  flex: 1;
  display: flex;
  align-items: center;
  gap: var(--space-3);
  min-height: 3.25rem;
  padding: 0 var(--space-4);
  border-radius: var(--app-radius-pill);
  background: var(--app-glass-bg);
  backdrop-filter: blur(var(--app-blur));
  border: 1px solid var(--app-glass-border);
  box-shadow: var(--app-shadow-soft);
}

.home-discover-search__field svg {
  flex-shrink: 0;
  width: 1.25rem;
  height: 1.25rem;
  color: var(--color-text-muted);
}

.home-discover-search__link {
  flex: 1;
  font-size: 0.95rem;
  color: var(--color-text-muted);
  text-decoration: none;
}

.home-discover-search__filter {
  flex-shrink: 0;
  width: 3.25rem;
  height: 3.25rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-text);
  color: var(--color-bg);
  border: none;
  box-shadow: var(--app-shadow-soft);
}

.home-recent {
  padding-top: var(--space-4);
}

.home-section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--space-4);
  margin-bottom: var(--space-6);
}

.home-section-head__title {
  margin: 0;
  font-family: var(--font-sans);
  font-size: clamp(1.35rem, 4vw, 1.85rem);
  font-weight: 500;
  letter-spacing: 0.02em;
  line-height: 1.15;
  color: var(--color-text);
}

/* Shared label above horizontal rails: italic "runs right" + chevron affordance */
.home-hscroll-copy-hint {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin: 0;
  font-family: var(--font-sans);
  font-size: var(--text-2xs);
  font-weight: var(--fw-regular);
  font-style: italic;
  letter-spacing: var(--tracking-tight);
  line-height: 1.25;
  text-transform: none;
  color: color-mix(in srgb, var(--color-text-muted) 78%, transparent);
  white-space: nowrap;
  transform: skewX(-7deg);
}

.home-hscroll-copy-hint__icon {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  transform: skewX(7deg);
  color: color-mix(in srgb, var(--color-accent) 62%, var(--color-text-muted));
  opacity: 0.88;
}

.home-hscroll-copy-hint__icon svg {
  display: block;
}

.home-recent__title {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-bottom: var(--space-6);
}

.home-recent__title-word {
  display: block;
}

.home-recent__all {
  text-align: center;
  margin-top: var(--space-8);
}

/* Homepage featured listings — horizontal rail + progress / dots */
.home-featured-rail {
  margin-bottom: var(--space-2);
}

.home-featured-rail__viewport {
  position: relative;
  margin-inline: calc(-1 * var(--space-4));
}

.home-featured-rail__scroll {
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: x proximity;
  scroll-padding-inline: var(--space-4);
  padding-inline: var(--space-4);
  padding-bottom: var(--space-2);
  outline: none;
}

.home-featured-rail__scroll:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--color-accent) 85%, transparent);
  outline-offset: 2px;
}

.home-featured-rail__track {
  display: flex;
  flex-direction: row;
  gap: var(--space-4);
  width: max-content;
  min-width: 100%;
}

.home-featured-rail__track > .property-card {
  flex: 0 0 auto;
  width: min(88vw, 22rem);
  max-width: 22rem;
  scroll-snap-align: start;
}

@media (max-width: 899px) {
  .home-featured-rail__track > .property-card {
    --home-featured-peek: clamp(1.35rem, 5.5vw, 2.35rem);
    width: calc(100vw - (2 * var(--space-4)) - var(--home-featured-peek));
    max-width: none;
  }
}

.home-featured-rail__indicators {
  margin-top: var(--space-4);
  padding-inline: var(--space-1);
}

.home-featured-rail__indicators[hidden] {
  display: none !important;
}

.home-featured-rail__dots {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
}

.home-featured-rail__dot {
  width: 0.5rem;
  height: 0.5rem;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: color-mix(in srgb, var(--color-text-muted) 45%, transparent);
  cursor: pointer;
  transition:
    background 0.15s ease,
    transform 0.15s ease;
}

.home-featured-rail__dot:hover {
  background: color-mix(in srgb, var(--color-accent) 55%, var(--color-text-muted));
}

.home-featured-rail__dot:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.home-featured-rail__dot.is-active {
  background: var(--color-accent);
  transform: scale(1.2);
}

/* Homepage — find by goal (objective) panel */
.home-goal-panel {
  padding-block: var(--space-8) var(--space-4);
}

.home-goal-panel__title {
  margin: 0 0 var(--space-5);
  font-family: var(--font-sans);
  font-size: clamp(1.05rem, 3.4vw, 1.35rem);
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--color-text);
}

.home-goal-panel__card {
  border-radius: var(--app-radius-lg);
  overflow: hidden;
  background: color-mix(in srgb, var(--color-surface) 68%, #0a0908 32%);
  border: 1px solid color-mix(in srgb, var(--app-glass-border) 100%, transparent);
  box-shadow: var(--app-shadow-soft);
}

.home-goal-panel__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.home-goal-panel__item:not(:last-child) {
  position: relative;
}

.home-goal-panel__item:not(:last-child)::after {
  content: "";
  display: block;
  margin-inline: var(--space-4);
  height: 1px;
  background: color-mix(in srgb, var(--color-border) 55%, transparent);
}

.home-goal-panel__row {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  padding: var(--space-5) var(--space-4);
  text-decoration: none;
  color: inherit;
  transition: background 0.15s ease;
}

.home-goal-panel__row:hover {
  background: color-mix(in srgb, var(--color-accent) 8%, transparent);
}

.home-goal-panel__row:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: -2px;
}

.home-goal-panel__icon {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-accent);
}

.home-goal-panel__icon svg {
  display: block;
}

.home-goal-panel__copy {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.home-goal-panel__row-title {
  font-family: var(--font-ui);
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.25;
  color: var(--color-text);
}

.home-goal-panel__row-sub {
  font-family: var(--font-ui);
  font-size: 0.8rem;
  font-weight: 400;
  line-height: 1.45;
  color: color-mix(in srgb, var(--color-text) 82%, transparent);
}

.home-goal-panel__chevron {
  flex-shrink: 0;
  display: flex;
  color: var(--color-accent);
}

.home-goal-panel__chevron svg {
  display: block;
}

.home-location-rail {
  padding-block: var(--space-6);
}

/*
 * Homepage feed rhythm after removing editorial <hr>s between stacked sections.
 */
.app-main > .home-location-rail.section,
.app-main > .home-agency-spotlight.section,
.app-main > .home-property-type-grid.section,
.app-main > .home-lifestyle-rail.section,
.app-main > .home-map-search-cta.section,
.app-main > .home-auto-landings.section,
.app-main > .home-agency-spotlight-agent-cta.section {
  padding-top: var(--space-10);
}

.home-location-rail__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-3) var(--space-5);
  margin-bottom: var(--space-5);
}

.home-location-rail__title {
  margin: 0;
  font-family: var(--font-sans);
  font-size: clamp(1.1rem, 3.2vw, 1.65rem);
  font-weight: 500;
  letter-spacing: 0.06em;
  line-height: 1.15;
  text-transform: uppercase;
  color: var(--color-text);
}

.home-location-rail__edge {
  position: relative;
  margin-inline: calc(-1 * var(--space-4));
}

.home-location-rail__viewport {
  padding-inline: var(--space-4);
  padding-bottom: var(--space-3);
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: x proximity;
}

.home-location-rail__track {
  display: flex;
  gap: clamp(var(--space-5), 5vw, var(--space-8));
}

.home-location-rail__tile {
  flex: 0 0 auto;
  scroll-snap-align: start;
  width: 6.75rem;
  text-align: center;
  text-decoration: none;
  color: inherit;
}

@media (min-width: 480px) {
  .home-location-rail__tile {
    width: 7.75rem;
  }
}

.home-location-rail__circle {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 1;
  max-width: 8.5rem;
  margin-inline: auto;
}

.home-location-rail__img {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid color-mix(in srgb, var(--color-accent) 38%, transparent);
  box-shadow: var(--app-shadow-soft);
}

.home-location-rail__label {
  display: block;
  margin-top: var(--space-3);
  font-family: var(--font-ui);
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--color-text);
  line-height: 1.25;
}

/* Homepage — browse by property type (grid) */
.home-property-type-grid {
  padding-block: 0 var(--space-6);
}

.home-property-type-grid__title {
  margin: 0 0 var(--space-5);
  font-family: var(--font-sans);
  font-size: clamp(1.05rem, 3.2vw, 1.55rem);
  font-weight: 500;
  letter-spacing: 0.06em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--color-text);
}

.home-property-type-grid__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-3);
}

.home-property-type-grid__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  min-height: 6.75rem;
  padding: var(--space-4) var(--space-2);
  text-align: center;
  text-decoration: none;
  color: inherit;
  border-radius: var(--app-radius-lg);
  background: color-mix(in srgb, var(--color-surface) 70%, #0a0908 30%);
  border: 1px solid color-mix(in srgb, var(--app-glass-border) 100%, transparent);
  box-shadow: var(--app-shadow-soft);
  transition:
    background 0.15s ease,
    border-color 0.15s ease,
    box-shadow 0.15s ease;
}

.home-property-type-grid__card:hover {
  background: color-mix(in srgb, var(--color-surface) 55%, #0a0908 45%);
  border-color: color-mix(in srgb, var(--color-accent) 22%, var(--app-glass-border) 78%);
}

.home-property-type-grid__card:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.home-property-type-grid__icon {
  flex-shrink: 0;
  width: 2.65rem;
  height: 2.65rem;
  color: var(--color-accent);
}

@media (min-width: 640px) {
  .home-property-type-grid__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-5);
  }

  .home-property-type-grid__card {
    gap: var(--space-3);
    min-height: 7.75rem;
    padding: var(--space-5) var(--space-3);
  }

  .home-property-type-grid__icon {
    width: 3rem;
    height: 3rem;
  }
}

.home-property-type-grid__icon svg {
  display: block;
  width: 100%;
  height: 100%;
}

.home-property-type-grid__label {
  font-family: var(--font-ui);
  font-size: 0.8rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--color-text);
}

/* Homepage — lifestyle filter shortcuts */
.home-lifestyle-rail {
  padding-block: var(--space-5) var(--space-6);
}

.home-lifestyle-rail__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-3);
}

.home-lifestyle-rail__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  min-height: 6.75rem;
  padding: var(--space-4) var(--space-2);
  text-align: center;
  text-decoration: none;
  color: inherit;
  border-radius: var(--app-radius-lg);
  background: color-mix(in srgb, var(--color-surface) 70%, #0a0908 30%);
  border: 1px solid color-mix(in srgb, var(--app-glass-border) 100%, transparent);
  box-shadow: var(--app-shadow-soft);
  transition:
    background 0.15s ease,
    border-color 0.15s ease,
    box-shadow 0.15s ease;
}

.home-lifestyle-rail__card:hover {
  background: color-mix(in srgb, var(--color-surface) 55%, #0a0908 45%);
  border-color: color-mix(in srgb, var(--color-accent) 22%, var(--app-glass-border) 78%);
}

.home-lifestyle-rail__icon {
  flex-shrink: 0;
  width: 2.65rem;
  height: 2.65rem;
  color: var(--color-accent);
}

.home-lifestyle-rail__icon svg {
  display: block;
  width: 100%;
  height: 100%;
}

.home-lifestyle-rail__label {
  font-family: var(--font-ui);
  font-size: 0.8rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--color-text);
}

@media (min-width: 640px) {
  .home-lifestyle-rail__grid {
    grid-template-columns: repeat(auto-fill, minmax(7.5rem, 1fr));
    gap: var(--space-5);
  }

  .home-lifestyle-rail__card {
    min-height: 7.75rem;
    padding: var(--space-5) var(--space-3);
  }

  .home-lifestyle-rail__icon {
    width: 3rem;
    height: 3rem;
  }
}

/* Homepage — agency spotlight (office + trust); agent contact card lives below auto-landings */
.home-agency-spotlight {
  padding-block: 0 var(--space-6);
}

.home-agency-spotlight-agent-cta {
  padding-block: 0 var(--space-6);
}

.home-agency-spotlight__title {
  margin: 0 0 var(--space-5);
  font-family: var(--font-sans);
  font-size: clamp(1.05rem, 3.4vw, 1.45rem);
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--color-text);
  text-align: left;
}

/* Stacked: full-width office image, then trust rail */
.home-agency-spotlight__layout {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  align-items: stretch;
}

.home-agency-spotlight__office {
  margin: 0;
  border-radius: var(--app-radius-lg);
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--app-glass-border) 100%, transparent);
  box-shadow: var(--app-shadow-soft);
}

.home-agency-spotlight__office-img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.home-agency-spotlight__card {
  border-radius: var(--app-radius-lg);
  padding: var(--space-5) var(--space-4);
  background: color-mix(in srgb, var(--color-surface) 68%, #0a0908 32%);
  border: 1px solid color-mix(in srgb, var(--app-glass-border) 100%, transparent);
  box-shadow: var(--app-shadow-soft);
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  min-width: 0;
}

/* Agent photo + copy in one row; contact buttons block below */
.home-agency-spotlight__agent {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: var(--space-4);
  margin-bottom: var(--space-5);
}

.home-agency-spotlight__avatar {
  flex-shrink: 0;
  width: 4.5rem;
  height: 4.5rem;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid color-mix(in srgb, var(--color-accent) 45%, transparent);
}

.home-agency-spotlight__agent-text {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
}

.home-agency-spotlight__name {
  font-family: var(--font-sans);
  font-size: clamp(1.05rem, 2.6vw, 1.35rem);
  font-weight: 500;
  line-height: 1.25;
  color: var(--color-text);
}

.home-agency-spotlight__role {
  font-family: var(--font-ui);
  font-size: 0.85rem;
  color: color-mix(in srgb, var(--color-text) 72%, transparent);
}

.home-agency-spotlight__langs {
  font-family: var(--font-ui);
  font-size: 0.78rem;
  line-height: 1.35;
  color: color-mix(in srgb, var(--color-text) 68%, transparent);
}

.home-agency-spotlight__actions {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  margin-top: 0;
}

.home-agency-spotlight__btn {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: var(--space-3);
  min-height: 2.85rem;
  padding: 0.45rem var(--space-4);
  border-radius: var(--app-radius-pill);
  text-decoration: none;
  font-family: var(--font-ui);
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--color-accent);
  background: color-mix(in srgb, var(--color-surface) 42%, #0a0908 58%);
  border: 1px solid color-mix(in srgb, var(--color-border) 50%, transparent);
  transition:
    background 0.15s ease,
    border-color 0.15s ease;
}

.home-agency-spotlight__btn:hover {
  background: color-mix(in srgb, var(--color-accent) 12%, transparent);
  border-color: color-mix(in srgb, var(--color-accent) 35%, transparent);
}

.home-agency-spotlight__btn:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.home-agency-spotlight__btn-icon {
  flex-shrink: 0;
  width: 1.35rem;
  height: 1.35rem;
}

.home-agency-spotlight__btn-icon--wa {
  width: 1.25rem;
  height: 1.25rem;
}

.home-agency-spotlight__btn-label {
  min-width: 0;
  word-break: break-word;
}

.home-agency-spotlight__trust {
  margin-top: var(--space-6);
  border-radius: var(--app-radius-lg);
  overflow: hidden;
  background: color-mix(in srgb, var(--color-surface) 68%, #0a0908 32%);
  border: 1px solid color-mix(in srgb, var(--app-glass-border) 100%, transparent);
  box-shadow: var(--app-shadow-soft);
}

.home-agency-spotlight__trust-edge {
  position: relative;
}

.home-agency-spotlight__trust-track {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 0;
}

@media (max-width: 899px) {
  .home-agency-spotlight__trust-viewport {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
    scrollbar-width: thin;
  }
}

@media (min-width: 900px) {
  .home-agency-spotlight__trust-viewport {
    overflow: visible;
  }
}

.home-agency-spotlight__trust-item {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: var(--space-3);
  min-width: 11.5rem;
  max-width: 14rem;
  scroll-snap-align: start;
  padding: var(--space-4) var(--space-4);
  border-right: 1px solid color-mix(in srgb, var(--color-border) 45%, transparent);
}

.home-agency-spotlight__trust-item:last-child {
  border-right: none;
}

.home-agency-spotlight__trust-icon {
  flex-shrink: 0;
  color: var(--color-accent);
}

.home-agency-spotlight__trust-icon svg {
  display: block;
}

.home-agency-spotlight__trust-text {
  display: flex;
  flex-direction: column;
  gap: 0.05rem;
  min-width: 0;
}

.home-agency-spotlight__trust-line {
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--color-text);
}

.home-agency-spotlight__trust-line--sub {
  font-weight: 500;
  text-transform: none;
  letter-spacing: 0;
  font-size: 0.72rem;
  color: color-mix(in srgb, var(--color-text) 80%, transparent);
}

@media (max-width: 360px) {
  .home-agency-spotlight__btn {
    position: relative;
    justify-content: center;
  }

  .home-agency-spotlight__btn-label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
}

@media (min-width: 600px) {
  .home-agency-spotlight__layout {
    gap: var(--space-6);
  }

  .home-agency-spotlight__office-img {
    aspect-ratio: 21 / 9;
  }
}

@media (min-width: 900px) {
  .home-agency-spotlight__trust-track {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .home-agency-spotlight__trust-item {
    min-width: 0;
    max-width: none;
    flex: initial;
    border-right: 1px solid color-mix(in srgb, var(--color-border) 45%, transparent);
  }

  .home-agency-spotlight__trust-item:last-child {
    border-right: none;
  }
}

.home-map-search-cta {
  padding-block: 0 var(--space-6);
}

.home-map-search-cta__card {
  border-radius: var(--app-radius-lg);
  padding: clamp(var(--space-6), 5vw, var(--space-8));
  background: color-mix(in srgb, var(--color-surface) 72%, #0a0908 28%);
  border: 1px solid color-mix(in srgb, var(--app-glass-border) 90%, var(--color-accent) 10%);
  box-shadow: var(--app-shadow-soft);
}

.home-map-search-cta__top {
  display: grid;
  gap: var(--space-6);
  margin-bottom: var(--space-6);
}

@media (min-width: 900px) {
  .home-map-search-cta__top {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    align-items: center;
    gap: var(--space-7);
    margin-bottom: var(--space-7);
  }
}

.home-map-search-cta__copy {
  min-width: 0;
}

.home-map-search-cta__headline {
  margin: 0 0 var(--space-3);
  font-family: var(--font-sans);
  font-size: clamp(1.65rem, 4.5vw, 2.35rem);
  font-weight: 500;
  line-height: 1.15;
  letter-spacing: 0.01em;
  color: var(--color-text);
}

.home-map-search-cta__lead {
  margin: 0 0 var(--space-5);
  font-family: var(--font-ui);
  font-size: clamp(0.9rem, 2vw, 1rem);
  line-height: 1.55;
  color: color-mix(in srgb, var(--color-text) 74%, transparent);
  max-width: 36rem;
}

.home-map-search-cta__primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-3);
  width: 100%;
  max-width: 26rem;
  box-sizing: border-box;
  min-height: 3.25rem;
  padding: 0.65rem var(--space-5);
  border-radius: var(--app-radius-pill);
  text-decoration: none;
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #141210;
  background: linear-gradient(
    165deg,
    color-mix(in srgb, var(--color-accent) 100%, #fff 12%) 0%,
    color-mix(in srgb, var(--color-accent) 88%, #1a1208 12%) 100%
  );
  border: 1px solid color-mix(in srgb, var(--color-accent) 60%, #000 40%);
  box-shadow:
    0 2px 12px color-mix(in srgb, var(--color-accent) 28%, transparent),
    inset 0 1px 0 color-mix(in srgb, #fff 35%, transparent);
  transition:
    filter 0.15s ease,
    box-shadow 0.15s ease,
    transform 0.15s ease;
}

.home-map-search-cta__primary:hover {
  filter: brightness(1.06);
  box-shadow:
    0 4px 18px color-mix(in srgb, var(--color-accent) 34%, transparent),
    inset 0 1px 0 color-mix(in srgb, #fff 40%, transparent);
}

.home-map-search-cta__primary:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 3px;
}

.home-map-search-cta__primary-icon {
  flex-shrink: 0;
  display: flex;
  color: #141210;
}

.home-map-search-cta__primary-icon svg {
  display: block;
}

.home-map-search-cta__primary-label {
  flex: 1 1 auto;
  text-align: center;
}

.home-map-search-cta__primary-chev {
  flex-shrink: 0;
  font-size: 1.15rem;
  font-weight: 400;
  opacity: 0.85;
  line-height: 1;
}

.home-map-search-cta__status {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin: var(--space-4) 0 0;
  font-family: var(--font-ui);
  font-size: 0.78rem;
  line-height: 1.4;
  color: color-mix(in srgb, var(--color-text) 58%, var(--color-accent) 42%);
}

.home-map-search-cta__status-icon {
  flex-shrink: 0;
  display: flex;
  color: var(--color-accent);
  opacity: 0.9;
}

.home-map-search-cta__status-icon svg {
  display: block;
}

.home-map-search-cta__visual {
  min-width: 0;
}

.home-map-search-cta__visual-inner {
  position: relative;
  border-radius: var(--app-radius-lg);
  padding: var(--space-4);
  background:
    radial-gradient(ellipse 140% 80% at 80% 40%, color-mix(in srgb, var(--color-accent) 8%, transparent) 0%, transparent 55%),
    repeating-linear-gradient(
      -12deg,
      transparent 0,
      transparent 18px,
      color-mix(in srgb, var(--color-border) 35%, transparent) 18px,
      color-mix(in srgb, var(--color-border) 35%, transparent) 19px
    );
  background-color: color-mix(in srgb, var(--color-bg) 80%, #0a0908 20%);
}

.home-map-search-cta__map-link {
  display: block;
  border-radius: var(--app-radius-md);
  overflow: hidden;
  box-shadow: 0 8px 28px color-mix(in srgb, #000 45%, transparent);
  transition: box-shadow 0.2s ease;
}

.home-map-search-cta__map-link:hover {
  box-shadow:
    0 12px 36px color-mix(in srgb, #000 52%, transparent),
    0 0 24px color-mix(in srgb, var(--color-accent) 14%, transparent);
}

.home-map-search-cta__map-link:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 3px;
}

.home-map-search-cta__map {
  width: 100%;
  height: auto;
  display: block;
}

.home-map-search-cta__features {
  list-style: none;
  margin: 0;
  padding: var(--space-6) 0 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-4) var(--space-4);
}

@media (min-width: 720px) {
  .home-map-search-cta__features {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-5) var(--space-4);
    padding-top: var(--space-7);
  }
}

.home-map-search-cta__feature {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  min-width: 0;
}

.home-map-search-cta__feature-icon {
  flex-shrink: 0;
  width: 2.5rem;
  height: 2.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  border: 1px solid color-mix(in srgb, var(--color-accent) 40%, transparent);
  color: var(--color-accent);
  background: color-mix(in srgb, var(--color-bg) 65%, transparent);
}

.home-map-search-cta__feature-icon svg {
  display: block;
}

.home-map-search-cta__feature-text {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}

.home-map-search-cta__feature-title {
  font-family: var(--font-ui);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-accent);
  line-height: 1.25;
}

.home-map-search-cta__feature-sub {
  font-family: var(--font-ui);
  font-size: 0.75rem;
  line-height: 1.35;
  color: color-mix(in srgb, var(--color-text) 68%, transparent);
}

.home-auto-landings {
  padding-block: var(--space-6);
}

.home-auto-landings__head {
  margin-bottom: var(--space-5);
}

.home-auto-landings__title {
  margin: 0;
  font-family: var(--font-sans);
  font-size: clamp(1.35rem, 4vw, 1.85rem);
  font-weight: 500;
  line-height: 1.2;
  color: var(--color-text);
}

/* Horizontal rail + dots (see 05c-home-auto-landings-rail.js) */
.home-auto-landings-rail {
  margin-bottom: var(--space-5);
}

.home-auto-landings-rail__viewport {
  position: relative;
  margin-inline: calc(-1 * var(--space-4));
}

.home-auto-landings-rail__scroll {
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: var(--space-4);
  padding-inline: var(--space-4);
  padding-bottom: var(--space-2);
  outline: none;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.home-auto-landings-rail__scroll::-webkit-scrollbar {
  display: none;
}

.home-auto-landings-rail__scroll:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--color-accent) 85%, transparent);
  outline-offset: 2px;
}

.home-auto-landings-rail__track {
  display: flex;
  flex-direction: row;
  gap: var(--space-4);
  width: max-content;
  min-width: 100%;
}

@media (max-width: 899px) {
  .home-auto-landings-rail__track {
    gap: var(--space-5);
  }

  .home-auto-landings__card {
    flex: 0 0 calc(100vw - (2 * var(--space-4)) - (2 * var(--space-3)));
    width: calc(100vw - (2 * var(--space-4)) - (2 * var(--space-3)));
    max-width: none;
    scroll-snap-stop: always;
  }
}

.home-auto-landings-rail__indicators {
  margin-top: var(--space-3);
  padding-inline: var(--space-1);
}

.home-auto-landings-rail__indicators[hidden] {
  display: none !important;
}

.home-auto-landings-rail__dots {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
}

.home-auto-landings-rail__dot {
  width: 0.5rem;
  height: 0.5rem;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: color-mix(in srgb, var(--color-text-muted) 45%, transparent);
  cursor: pointer;
  transition:
    background 0.15s ease,
    transform 0.15s ease;
}

.home-auto-landings-rail__dot:hover {
  background: color-mix(in srgb, var(--color-accent) 55%, var(--color-text-muted));
}

.home-auto-landings-rail__dot:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.home-auto-landings-rail__dot.is-active {
  background: var(--color-accent);
  transform: scale(1.2);
}

.home-auto-landings__card {
  --home-auto-landings-map-frame-bg: color-mix(in srgb, #000 48%, transparent);
  position: relative;
  flex: 0 0 auto;
  width: min(92vw, 18.5rem);
  max-width: 18.5rem;
  min-height: 22.5rem;
  scroll-snap-align: start;
  scroll-snap-stop: normal;
  border-radius: var(--app-radius-lg);
  text-decoration: none;
  color: inherit;
  overflow: hidden;
  background: color-mix(in srgb, var(--color-surface) 58%, #0a0908 42%);
  border: 1px solid color-mix(in srgb, var(--color-accent) 28%, var(--app-glass-border));
  box-shadow: var(--app-shadow-soft);
  display: flex;
  flex-direction: column;
  transition:
    border-color 0.15s ease,
    box-shadow 0.15s ease;
}

.home-auto-landings__card:hover {
  border-color: color-mix(in srgb, var(--color-accent) 52%, var(--app-glass-border));
  box-shadow: var(--app-shadow-lift);
}

.home-auto-landings__card--photo {
  background-color: #141210;
  background-image: linear-gradient(
      to bottom,
      color-mix(in srgb, #000 78%, transparent) 0%,
      color-mix(in srgb, #000 32%, transparent) 36%,
      color-mix(in srgb, #000 28%, transparent) 58%,
      color-mix(in srgb, #000 82%, transparent) 100%
    ),
    var(--home-auto-landings-bg);
  background-size: cover;
  background-position: center;
  border-color: color-mix(in srgb, var(--color-accent) 35%, #3a3428);
}

.home-auto-landings__card--photo .home-auto-landings__map-frame {
  --home-auto-landings-map-frame-bg: color-mix(in srgb, #000 55%, transparent);
}

.home-auto-landings__card-inner {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  min-height: 100%;
  padding: var(--space-4);
  position: relative;
  z-index: 1;
}

.home-auto-landings__card-head {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3);
}

.home-auto-landings__card-icon-ring {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 50%;
  border: 1px solid color-mix(in srgb, var(--color-accent) 58%, transparent);
  color: var(--color-accent);
  background: color-mix(in srgb, #000 28%, transparent);
}

.home-auto-landings__card--photo .home-auto-landings__card-icon-ring {
  background: color-mix(in srgb, #000 42%, transparent);
  backdrop-filter: blur(6px);
}

.home-auto-landings__card-icon-ring svg {
  display: block;
}

.home-auto-landings__card-titles {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.2rem;
}

.home-auto-landings__type-badge {
  font-family: var(--font-ui);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--color-accent);
}

.home-auto-landings__place {
  font-family: var(--font-sans);
  font-size: clamp(1.35rem, 4vw, 1.65rem);
  font-weight: 500;
  line-height: 1.12;
  letter-spacing: 0.02em;
  color: var(--color-text);
}

.home-auto-landings__card--photo .home-auto-landings__place {
  color: #faf8f2;
  text-shadow:
    0 1px 0 color-mix(in srgb, #000 55%, transparent),
    0 2px 18px color-mix(in srgb, #000 68%, transparent);
}

.home-auto-landings__map-frame {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 5.75rem;
  margin-inline: auto;
  width: 100%;
  padding: var(--space-3) var(--space-4);
  border-radius: var(--app-radius-md);
  border: 1px solid color-mix(in srgb, var(--color-accent) 52%, transparent);
  background: var(--home-auto-landings-map-frame-bg);
  box-shadow: inset 0 1px 0 color-mix(in srgb, var(--color-accent) 12%, transparent);
}

.home-auto-landings__map-pair {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
}

.home-auto-landings__minimap-img {
  display: block;
  width: 100%;
  max-width: 10.5rem;
  height: auto;
  max-height: 4.75rem;
  object-fit: contain;
  filter: drop-shadow(0 1px 4px color-mix(in srgb, #000 50%, transparent));
}

.home-auto-landings__card--no-map .home-auto-landings__card-inner {
  gap: var(--space-4);
}

.home-auto-landings__card-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  margin-top: auto;
  padding: 0;
}

.home-auto-landings__count {
  margin: 0;
  font-family: var(--font-ui);
  font-size: 0.8rem;
  font-weight: 500;
  line-height: 1.3;
  color: var(--color-text-muted);
}

.home-auto-landings__card--photo .home-auto-landings__count {
  color: color-mix(in srgb, #faf8f2 78%, var(--color-text-muted));
}

.home-auto-landings__go {
  flex-shrink: 0;
  width: 2.5rem;
  height: 2.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  border: 1px solid color-mix(in srgb, var(--color-accent) 58%, transparent);
  color: var(--color-accent);
  background: transparent;
  transition:
    background 0.15s ease,
    border-color 0.15s ease;
}

.home-auto-landings__card:hover .home-auto-landings__go {
  background: color-mix(in srgb, var(--color-accent) 14%, transparent);
  border-color: color-mix(in srgb, var(--color-accent) 72%, transparent);
}

.home-auto-landings__go svg {
  display: block;
  margin-left: 1px;
}

.home-auto-landings__map-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-3);
  width: 100%;
  min-height: 3rem;
  padding: 0.65rem var(--space-4);
  border-radius: var(--app-radius-pill);
  text-decoration: none;
  font-family: var(--font-ui);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-accent);
  border: 1px solid color-mix(in srgb, var(--color-accent) 45%, var(--app-glass-border));
  background: color-mix(in srgb, var(--color-surface) 35%, transparent);
  transition:
    background 0.15s ease,
    border-color 0.15s ease,
    color 0.15s ease;
}

.home-auto-landings__map-cta:hover {
  background: color-mix(in srgb, var(--color-accent) 10%, var(--color-surface));
  border-color: color-mix(in srgb, var(--color-accent) 60%, transparent);
}

.home-auto-landings__map-cta:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.home-auto-landings__map-cta-icon {
  flex-shrink: 0;
  display: flex;
  color: var(--color-accent);
}

.home-auto-landings__map-cta-icon svg {
  display: block;
}

.home-auto-landings__map-cta-label {
  flex: 1 1 auto;
  text-align: center;
}

.home-auto-landings__map-cta-chev {
  flex-shrink: 0;
  font-size: 1.1rem;
  opacity: 0.9;
  line-height: 1;
}

/*
 * Horizontal-scroll affordance: fixed right-edge fade on wrapper (Firefox-safe).
 * Chevron on .app-hscroll-fade--hint for viewports ≤899px (map filter rail hides chevron/fade ≥769px in 17-map-search-app.css).
 * See 05d-home-hscroll-hints.js: fade + chevron removed after first horizontal scroll (.is-hscroll-hint-dismissed).
 */
@media (max-width: 899px) {
  .app-hscroll-fade {
    position: relative;
    --app-hscroll-fade-color: var(--color-bg);
  }

  .app-hscroll-fade::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: clamp(2.85rem, 15vw, 4.75rem);
    pointer-events: none;
    z-index: 4;
    background: linear-gradient(
      to left,
      var(--app-hscroll-fade-color) 0%,
      color-mix(in srgb, var(--app-hscroll-fade-color) 55%, transparent) 38%,
      color-mix(in srgb, var(--app-hscroll-fade-color) 12%, transparent) 72%,
      transparent 100%
    );
    transition: opacity 0.35s ease;
  }

  .app-hscroll-fade.is-hscroll-hint-dismissed::after {
    opacity: 0;
  }

  .home-agency-spotlight__trust-edge.app-hscroll-fade {
    --app-hscroll-fade-color: color-mix(in srgb, var(--color-surface) 68%, #0a0908 32%);
  }

  .home-featured-rail__scroll {
    --app-hscroll-end-pad: calc(var(--space-4) + clamp(1.4rem, 8.5vw, 2.85rem));
    scroll-padding-inline: var(--space-4) var(--app-hscroll-end-pad);
    padding-inline-end: var(--app-hscroll-end-pad);
  }

  .home-auto-landings-rail__scroll {
    scroll-padding-inline: var(--space-4);
    padding-inline: var(--space-4);
  }

  .home-location-rail__viewport {
    --app-hscroll-end-pad: calc(var(--space-4) + clamp(0.95rem, 4.5vw, 1.65rem));
    scroll-padding-inline: var(--space-4) var(--app-hscroll-end-pad);
    padding-inline-end: var(--app-hscroll-end-pad);
  }

  .home-agency-spotlight__trust-viewport {
    --app-hscroll-end-pad: calc(var(--space-3) + clamp(0.85rem, 4vw, 1.5rem));
    scroll-padding-inline: var(--space-3) var(--app-hscroll-end-pad);
    padding-inline-end: var(--app-hscroll-end-pad);
  }

  .app-hscroll-fade--hint::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 0.42rem;
    width: 1.15rem;
    height: 1.15rem;
    z-index: 5;
    margin-top: -0.575rem;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.35s ease;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e8dcc4' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 8l4 4-4 4'/%3E%3C/svg%3E")
      center / contain no-repeat;
    filter: drop-shadow(0 0 4px color-mix(in srgb, #000 65%, transparent));
  }

  .app-hscroll-fade--hint.is-hscroll-hint-visible:not(.is-hscroll-hint-dismissed)::before {
    opacity: 0.88;
  }

  .app-hscroll-fade--hint.is-hscroll-hint-dismissed::before {
    opacity: 0 !important;
    animation: none !important;
  }

  @media (prefers-reduced-motion: no-preference) {
    .app-hscroll-fade--hint.is-hscroll-hint-visible:not(.is-hscroll-hint-dismissed)::before {
      animation: app-hscroll-hint-chevron 2.5s ease-in-out infinite;
    }
  }
}

@keyframes app-hscroll-hint-chevron {
  0%,
  100% {
    transform: translateX(0);
    opacity: 0.72;
  }

  50% {
    transform: translateX(5px);
    opacity: 0.95;
  }
}


/* Contact, sell, favorites page chrome */

.contact-page,
.sell-page,
.favorites-page {
  padding-block: var(--space-4);
}

.contact-page__title,
.sell-page__title,
.favorites-page__title {
  margin-bottom: var(--space-6);
}

.contact-page__grid {
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
}

.contact-page__panel {
  padding: var(--space-6);
  border-radius: var(--app-radius-lg);
  background: var(--app-glass-bg);
  border: 1px solid var(--app-glass-border);
}

.contact-page__office-image {
  border-radius: var(--app-radius-lg);
  width: 100%;
}

.favorites-page .property-grid {
  margin-top: var(--space-4);
}

.sell-page .detail-richtext,
.contact-page .detail-richtext {
  color: var(--color-text-muted);
}

.contact-page__heart {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-8);
  align-items: start;
}

.contact-page__identity {
  min-width: 0;
}

.contact-page__office-figure {
  margin: 0 0 var(--space-4);
  border-radius: var(--app-radius-lg);
  overflow: hidden;
  border: 1px solid var(--app-glass-border);
}

.contact-page__company {
  margin: 0 0 var(--space-2);
  font-size: 0.95rem;
  color: var(--color-text-muted);
}

.contact-page__address-block {
  margin: var(--space-6) 0;
  padding: var(--space-4);
  border-radius: var(--app-radius-md);
  background: color-mix(in srgb, var(--color-surface) 40%, transparent);
  border: 1px solid var(--app-glass-border);
}

.contact-page__address-label {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin: 0 0 var(--space-2);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-accent);
}

.contact-page__pin {
  width: 1.1rem;
  height: 1.1rem;
  flex-shrink: 0;
  color: var(--color-accent);
}

.contact-page__address {
  margin: 0 0 var(--space-1);
  font-size: 0.95rem;
  color: var(--color-text-muted);
}

.contact-page__address--multiline .contact-page__address-line {
  display: block;
}

.contact-page__enquiry {
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
  min-width: 0;
}

.contact-page__main-form,
.contact-callback__form {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-5);
  border-radius: var(--app-radius-lg);
  background: var(--app-glass-bg);
  border: 1px solid var(--app-glass-border);
  max-width: 100%;
  box-sizing: border-box;
}

.contact-page__main-form input,
.contact-page__main-form textarea,
.contact-callback__form input {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  min-height: 3rem;
  padding: 0.75rem 1rem;
  border-radius: var(--app-radius-md);
  border: 1px solid var(--app-glass-border);
  background: color-mix(in srgb, var(--color-bg) 55%, transparent);
  color: var(--color-text);
  font: inherit;
}

.contact-page__main-form textarea {
  min-height: 8rem;
  resize: vertical;
}

.contact-page__main-form .btn-primary,
.contact-callback__form .btn-primary {
  width: 100%;
  margin-top: var(--space-2);
  min-height: 3.1rem;
}

.contact-callback {
  padding: 0;
}

.contact-callback__heading {
  margin: 0 0 var(--space-3);
  font-family: var(--font-sans);
  font-size: var(--text-xl);
  font-weight: 500;
  color: var(--color-text);
}

.contact-page__social-list {
  list-style: none;
  margin: var(--space-4) 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}

.contact-page__social-list a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.5rem;
  padding: 0 var(--space-4);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--color-text);
  border-radius: var(--app-radius-pill);
  border: 1px solid var(--app-glass-border);
  background: color-mix(in srgb, var(--color-surface) 45%, transparent);
  transition: border-color 0.15s ease, color 0.15s ease;
}

.contact-page__social-list a:hover,
.contact-page__social-list a:focus-visible {
  border-color: color-mix(in srgb, var(--color-accent) 45%, transparent);
  color: var(--color-accent);
  outline: none;
}

.contact-page__support {
  margin-top: var(--space-10);
  display: grid;
  gap: var(--space-8);
}

.contact-page__map-wrap {
  padding: var(--space-5);
  border-radius: var(--app-radius-lg);
  background: var(--app-glass-bg);
  border: 1px solid var(--app-glass-border);
}

.contact-page__map {
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
  margin-top: var(--space-3);
  border-radius: var(--app-radius-md);
  border: 1px solid var(--app-glass-border);
  background: color-mix(in srgb, var(--color-bg) 88%, #000);
}

.contact-page__section-title {
  margin: 0 0 var(--space-4);
  font-family: var(--font-sans);
  font-size: var(--text-section-title);
}

.contact-page__section-title--sub {
  font-size: 1.15rem;
}

.contact-page__team-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--space-6);
}

.contact-page__team-member {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-4);
  padding: var(--space-5);
  border-radius: var(--app-radius-lg);
  background: var(--app-glass-bg);
  border: 1px solid var(--app-glass-border);
}

.contact-page__team-photo {
  width: 100%;
  max-width: 12rem;
  border-radius: var(--app-radius-md);
  border: 1px solid var(--app-glass-border);
}

.contact-page__team-name {
  margin: 0 0 var(--space-3);
  font-family: var(--font-sans);
}

.contact-action-btns--team {
  margin: 0;
}

@media (min-width: 769px) {
  .contact-page__heart {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    gap: var(--space-10);
  }

  .contact-page__team-member {
    grid-template-columns: 10rem 1fr;
    align-items: start;
  }
}


/* Landings & blog */

.landings-index,
.blog-index {
  padding-block: var(--space-4);
}

.landings-index__title,
.blog-index__title {
  margin-bottom: var(--space-6);
}

.landings-index__list,
.blog-index__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.landings-index__link,
.blog-index__link {
  display: block;
  padding: var(--space-5);
  border-radius: var(--app-radius-lg);
  background: var(--app-glass-bg);
  border: 1px solid var(--app-glass-border);
  color: inherit;
  text-decoration: none;
  transition: border-color 0.15s ease;
}

.landings-index__link:hover,
.blog-index__link:hover {
  border-color: color-mix(in srgb, var(--color-accent) 40%, transparent);
}

.landing-detail,
.blog-detail {
  padding-block: var(--space-6);
}

.landing-detail__hero,
.blog-detail__hero {
  min-height: 200px;
  border-radius: var(--app-radius-lg);
  background-size: cover;
  background-position: center;
  margin-bottom: var(--space-6);
}

.landing-detail__body,
.blog-detail__body {
  max-width: 40rem;
  margin-inline: auto;
  color: var(--color-text-muted);
}

.auto-landing-detail {
  padding-block: var(--space-6);
}

.property-detail-unavailable {
  padding: var(--space-10) var(--space-4);
  text-align: center;
}

.property-detail-unavailable .btn-primary {
  margin-top: var(--space-4);
}


/* SEO landing pages — property type + zone (shared layout) */

body.page-seo-landing .app-main {
  padding-top: 0;
}

/* Hero — full-bleed, copy bottom-left, home-style gradient */
.seo-landing__hero {
  min-height: clamp(260px, 58vh, 520px);
  margin-bottom: 0;
  border-radius: 0 0 var(--app-radius-lg) var(--app-radius-lg);
}

.seo-landing__hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    color-mix(in srgb, var(--color-bg) 88%, transparent) 0%,
    color-mix(in srgb, #000 52%, transparent) 42%,
    transparent 72%
  );
  pointer-events: none;
}

.seo-landing__hero-inner {
  display: flex;
  align-items: flex-end;
  min-height: inherit;
  padding: var(--space-6) var(--space-4) var(--space-8);
}

.seo-landing__hero-copy {
  max-width: min(36rem, 100%);
}

.seo-landing__eyebrow {
  margin: 0 0 var(--space-3);
  font-family: var(--font-ui);
  font-size: var(--text-subsection-label);
  font-weight: var(--fw-semibold);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-accent);
  text-shadow: 0 1px 12px color-mix(in srgb, #000 45%, transparent);
}

.seo-landing__headline {
  margin: 0 0 var(--space-3);
  font-family: var(--font-sans);
  font-size: clamp(1.65rem, 6.5vw, 2.65rem);
  font-weight: var(--fw-medium);
  line-height: 1.12;
  letter-spacing: var(--tracking-tight);
  color: var(--color-text);
  text-shadow: 0 2px 24px color-mix(in srgb, #000 55%, transparent);
}

.seo-landing__subheadline {
  margin: 0;
  max-width: 42ch;
  font-family: var(--font-ui);
  font-size: var(--text-md);
  font-weight: var(--fw-regular);
  line-height: 1.5;
  color: color-mix(in srgb, #fff 88%, var(--color-text-muted));
  text-shadow: 0 1px 14px color-mix(in srgb, #000 55%, transparent);
}

/* Breadcrumbs */
.seo-landing__breadcrumbs {
  margin: 0 0 var(--space-6);
  padding-top: var(--space-5);
}

.seo-landing__breadcrumbs-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2) var(--space-3);
  list-style: none;
  margin: 0;
  padding: 0;
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  line-height: 1.4;
}

.seo-landing__breadcrumbs-item {
  display: inline-flex;
  align-items: center;
  gap: var(--space-3);
  color: var(--color-accent);
}

.seo-landing__breadcrumbs-item:not(:last-child)::after {
  content: "›";
  font-size: 0.85em;
  color: color-mix(in srgb, var(--color-accent) 72%, var(--color-text-muted));
  pointer-events: none;
}

.seo-landing__breadcrumbs-item a {
  color: inherit;
  text-decoration: none;
}

.seo-landing__breadcrumbs-item a:hover {
  text-decoration: underline;
}

.seo-landing__breadcrumbs-item span[aria-current="page"] {
  color: color-mix(in srgb, var(--color-accent) 55%, var(--color-text-muted));
}

/* Intro band */
.seo-landing__intro {
  margin-bottom: var(--space-8);
  max-width: 42rem;
}

.seo-landing__intro-heading {
  margin: 0 0 var(--space-5);
  font-family: var(--font-sans);
  font-size: clamp(1.35rem, 4.2vw, 1.75rem);
  font-weight: var(--fw-medium);
  line-height: 1.2;
  color: var(--color-text);
}

.seo-landing__intro-body {
  font-size: var(--text-md);
  line-height: 1.65;
}

.seo-landing__intro-body p {
  margin: 0 0 var(--space-4);
}

.seo-landing__intro-body p:last-child {
  margin-bottom: 0;
}

/* Type landing — listings + related (unchanged scope, shared article wrapper) */
.seo-landing__listings {
  margin-top: var(--space-2);
}

.seo-landing__related {
  margin-top: var(--space-8);
  padding-top: var(--space-6);
  border-top: 1px solid var(--app-glass-border);
}

.seo-landing__related-title {
  margin-bottom: var(--space-4);
  font-size: var(--text-lg);
}

.seo-landing__related-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3) var(--space-5);
}

.seo-landing__related-list a {
  color: var(--color-accent);
  text-decoration: none;
}

.seo-landing__related-list a:hover {
  text-decoration: underline;
}

/* No hero image (rare) */
.seo-landing__fallback-head {
  margin-bottom: var(--space-6);
}

.seo-landing__fallback-head .seo-landing__eyebrow {
  text-shadow: none;
}

.seo-landing__fallback-head .seo-landing__headline {
  text-shadow: none;
}

.seo-landing__fallback-head .seo-landing__subheadline {
  color: var(--color-text-muted);
  text-shadow: none;
}

/* Zone landing — static grid + CTA */
.seo-landing__properties {
  margin-top: var(--space-2);
}

.seo-landing__cta {
  margin-top: var(--space-8);
  text-align: center;
}

@media (min-width: 768px) {
  .seo-landing__hero-inner {
    padding: var(--space-8) var(--space-6) var(--space-10);
  }

  .seo-landing__hero-copy {
    max-width: 40rem;
  }

  .seo-landing__intro {
    max-width: 46rem;
  }
}


/* Legacy `.site-sticky-cta` strip removed — sole mobile bottom chrome is `.app-bottom-nav`.
 * `--site-sticky-cta-height` is pinned to 0 in 04-shell-app.css. */


/* Detail SVG maps, minimaps */

.detail-svg-map__frame,
.property-detail-map .detail-svg-map__frame {
  border-radius: var(--app-radius-lg);
  overflow: hidden;
  border: 1px solid var(--app-glass-border);
  background: color-mix(in srgb, var(--color-surface) 40%, transparent);
}

.detail-svg-map__media {
  display: block;
  width: 100%;
}

.card-facts__minimap-img {
  border-radius: 0;
  border: none;
}


/* Site header, mobile nav, favorites, footer, bottom nav, misc */

@media (max-width: 768px) {
  /* Home: no top chrome — kill legacy header/nav if present in markup. */
  body.page-home .site-header,
  body.page-home #site-nav,
  body.page-home .site-nav-backdrop {
    display: none !important;
  }
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
}

.site-header__bar {
  background: color-mix(in srgb, var(--color-bg) 82%, transparent);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--app-glass-border);
  transition: transform 0.25s ease;
}

body.site-header--bar-hidden .site-header__bar {
  transform: translateY(-100%);
  max-height: 0;
  overflow: hidden;
  border-bottom: none;
}

/* Homepage: logo + menu overlay the hero; keep mobile hide/show on .site-header__bar */
body.page-home .site-header {
  position: fixed;
  left: 0;
  right: 0;
  top: 0;
  width: 100%;
  max-width: 100%;
  z-index: 100;
}

body.page-home .site-header__bar {
  position: relative;
  background: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border-bottom: none;
}

body.page-home .site-header__bar::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(
    to bottom,
    var(--semantic-black-scrim-52) 0%,
    transparent 100%
  );
  z-index: 0;
}

body.page-home .site-header__bar .main-header,
body.page-home .site-header__bar .header-inner {
  position: relative;
  z-index: 1;
}

body.page-home .menu-toggle {
  border-color: var(--semantic-white-border-38);
  background: var(--semantic-black-overlay-28);
}

body.page-home .menu-toggle-bar {
  background: var(--semantic-icon-inverse);
}

body.page-home .site-brand .site-logo {
  filter: var(--semantic-drop-shadow-logo);
}

.header-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  padding: var(--space-3) 0;
}

@media (max-width: 768px) {
  .header-inner {
    padding: var(--space-2) 0;
  }
}

.site-brand .site-logo {
  max-height: 2rem;
  width: auto;
}

.site-nav-backdrop {
  position: fixed;
  inset: 0;
  z-index: 105;
  background: var(--semantic-black-scrim-55);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease;
}

body.menu-open .site-nav-backdrop {
  opacity: 1;
  pointer-events: auto;
  z-index: 250;
}

body.menu-open #site-nav.site-nav {
  transform: translateX(0);
  z-index: 260;
}

#site-nav.site-nav {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(20rem, 88vw);
  z-index: 110;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-4);
  padding: var(--space-6) var(--space-4);
  background: var(--semantic-surface-nav-drawer);
  border-left: 1px solid var(--app-glass-border);
  box-shadow: var(--app-shadow-lift);
  transform: translateX(100%);
  transition: transform 0.25s ease;
  overflow-y: auto;
}

.site-nav-primary {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}

.site-nav-main-link,
.site-nav-group__hub {
  display: block;
  padding: var(--space-3);
  border-radius: var(--app-radius-md);
  color: var(--color-text);
  font-size: 0.95rem;
}

.site-nav-main-link.is-active,
.site-nav-group__hub.is-active {
  color: var(--color-accent);
  background: color-mix(in srgb, var(--color-accent) 10%, transparent);
}

.site-nav-group__dropdown {
  list-style: none;
  margin: 0;
  padding: 0 0 0 var(--space-3);
}

.lang-switch {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-2);
  padding-top: var(--space-4);
  border-top: 1px solid var(--app-glass-border);
}

.lang-link {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--color-text-muted);
}

.lang-link.is-active {
  color: var(--color-accent);
}

.header-trailing {
  display: flex;
  align-items: center;
  gap: var(--space-1);
  margin-left: auto;
}

.favorites-menu-toggle {
  position: relative;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: var(--app-radius-pill);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-text);
  border: 1px solid var(--app-glass-border);
  background: color-mix(in srgb, var(--color-surface) 45%, transparent);
}

.favorites-menu-toggle__badge {
  position: absolute;
  top: 2px;
  right: 2px;
  min-width: 1rem;
  height: 1rem;
  padding: 0 4px;
  font-size: 0.65rem;
  font-weight: 700;
  line-height: 1rem;
  text-align: center;
  border-radius: var(--app-radius-pill);
  background: var(--color-accent);
  color: var(--color-bg);
}

.favorites-menu-toggle__badge--empty {
  display: none;
}

.menu-toggle {
  width: 2.75rem;
  height: 2.75rem;
  border-radius: var(--app-radius-pill);
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--app-glass-border);
  background: color-mix(in srgb, var(--color-surface) 45%, transparent);
}

.menu-toggle-bars {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.menu-toggle-bar {
  width: 1.25rem;
  height: 2px;
  background: var(--color-text);
  border-radius: 1px;
}

/* Global overlay: markup lives outside .site-header so z-index stacks above fixed layers in main (e.g. lightbox ~200). */
.favorites-panel {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(22rem, 92vw);
  z-index: 240;
  background: var(--semantic-surface-panel-96);
  border-left: 1px solid var(--app-glass-border);
  box-shadow: var(--app-shadow-lift);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.favorites-panel[hidden] {
  display: none !important;
}

.favorites-panel__inner {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: var(--space-4);
}

.favorites-panel__list {
  flex: 1;
  overflow-y: auto;
}

.favorites-panel__show-all {
  display: block;
  text-align: center;
  padding: var(--space-3);
  font-weight: 600;
  color: var(--color-accent);
}

/* Bottom app navigation */
.app-bottom-nav {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 100;
  width: 100%;
  max-width: 100%;
  padding-top: var(--space-2);
  padding-bottom: calc(var(--space-2) + var(--app-bottom-safe));
  padding-left: max(var(--space-3), env(safe-area-inset-left, 0px));
  padding-right: max(var(--space-3), env(safe-area-inset-right, 0px));
  pointer-events: none;
  box-sizing: border-box;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.app-bottom-nav__viewport {
  pointer-events: auto;
  width: 100%;
  max-width: min(22rem, 100%);
  margin-inline: auto;
  border-radius: var(--app-radius-pill);
  box-sizing: border-box;
  border: 1px solid var(--app-glass-border);
  box-shadow: var(--app-shadow-lift);
  overflow: hidden;
  background: color-mix(in srgb, var(--color-bg) 72%, transparent);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

/* Swipeable rail scrollport (viewport → scroll → track, same layering as homepage rails). */
.app-bottom-nav__scroll {
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  overscroll-behavior-x: contain;
  scroll-snap-type: x proximity;
  scroll-padding-inline: var(--space-2);
  border-radius: inherit;
  box-sizing: border-box;
}

.app-bottom-nav__scroll::-webkit-scrollbar {
  display: none;
}

@media (prefers-reduced-motion: reduce) {
  .app-bottom-nav__scroll {
    scroll-snap-type: none;
  }
}

.app-bottom-nav__track {
  display: flex;
  align-items: center;
  justify-content: center;
  justify-content: safe center;
  gap: var(--space-1);
  width: max-content;
  min-width: 100%;
  padding: var(--space-2) var(--space-2);
  box-sizing: border-box;
  background: color-mix(in srgb, var(--color-bg) 88%, transparent);
}

.app-bottom-nav__item {
  flex: 0 0 auto;
  scroll-snap-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  padding: var(--space-2) var(--space-1);
  min-width: 0;
  text-decoration: none;
  color: var(--color-text-muted);
  font-size: clamp(0.52rem, 2.4vw, 0.62rem);
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  border-radius: var(--app-radius-pill);
  border: none;
  background: transparent;
}

.app-bottom-nav__item svg {
  width: 1.35rem;
  height: 1.35rem;
  flex-shrink: 0;
}

.app-bottom-nav__item.is-active {
  color: var(--color-accent);
}

.app-bottom-nav__item.is-active svg {
  color: var(--color-accent);
}

/* Listing detail Guardados slot: overlay + badge only (filled heart triggers panel). */
.app-bottom-nav__item--detail-favorites {
  gap: 1px;
  position: relative;
}

.app-bottom-nav__item--detail-favorites .favorites-launcher__heart-toggle.favorites-menu-toggle {
  flex-shrink: 0;
  width: 2.125rem;
  height: 2.125rem;
  margin-inline: auto;
  padding: 0;
}

.app-bottom-nav__item--detail-favorites .favorites-launcher__icon {
  display: flex;
}

.app-bottom-nav__item--detail-favorites .favorites-launcher__heart-filled {
  display: block;
  width: 1.125rem;
  height: 1.125rem;
}

.app-bottom-nav__saved-all-link {
  margin: 0;
  padding: 0 var(--space-1);
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  font-family: inherit;
  font-size: clamp(0.52rem, 2.4vw, 0.62rem);
  font-weight: 600;
  letter-spacing: 0.03em;
  line-height: 1.2;
  color: var(--color-text-muted);
  border-radius: var(--app-radius-sm);
}

.app-bottom-nav__saved-all-link:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.app-bottom-nav__saved-all-link.is-active {
  color: var(--color-accent);
}

.app-bottom-nav__item--browse-saved {
  gap: 1px;
  position: relative;
}

.app-bottom-nav__browse-favorites-trigger {
  position: relative;
  width: 2.125rem;
  height: 2.125rem;
  flex-shrink: 0;
  margin-inline: auto;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--app-radius-pill);
  border: 1px solid var(--app-glass-border);
  background: color-mix(in srgb, var(--color-surface) 45%, transparent);
  color: var(--color-text);
  cursor: pointer;
}

.app-bottom-nav__browse-favorites-trigger:hover {
  border-color: var(--color-accent);
  color: var(--color-accent);
}

.app-bottom-nav__browse-favorites-trigger .favorites-menu-toggle__icon {
  display: flex;
}

.app-bottom-nav__browse-favorites-trigger .favorites-launcher__heart-filled {
  display: block;
  width: 1.125rem;
  height: 1.125rem;
}

.app-bottom-nav__browse-favorites-trigger .favorites-menu-toggle__badge {
  position: absolute;
  top: 2px;
  right: 2px;
}

.app-bottom-nav__item--browse-saved.is-active .app-bottom-nav__browse-favorites-trigger,
.app-bottom-nav__item--browse-saved.is-active .app-bottom-nav__saved-all-link:not(:hover) {
  color: var(--color-accent);
}

.app-bottom-nav__settings-trigger {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
  color: inherit;
  font: inherit;
  font-size: clamp(0.52rem, 2.4vw, 0.62rem);
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  cursor: pointer;
  border-radius: var(--app-radius-pill);
  min-width: 0;
}

.app-bottom-nav__settings-trigger:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.app-bottom-settings {
  position: fixed;
  inset: 0;
  z-index: 130;
}

.app-bottom-settings__backdrop {
  position: absolute;
  inset: 0;
  background: var(--semantic-black-scrim-42);
}

.app-bottom-settings__panel {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: calc(var(--app-bottom-nav-height) + var(--space-3) + env(safe-area-inset-bottom, 0px));
  width: min(18rem, calc(100vw - 2 * var(--space-4)));
  max-height: min(70vh, 22rem);
  overflow-y: auto;
  padding: var(--space-4);
  border-radius: var(--app-radius-lg);
  background: var(--semantic-surface-panel-94);
  border: 1px solid var(--app-glass-border);
  box-shadow: var(--app-shadow-lift);
  box-sizing: border-box;
}

.app-bottom-settings__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-3);
  margin-bottom: var(--space-4);
}

.app-bottom-settings__title {
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-text);
}

.app-bottom-settings__close {
  flex-shrink: 0;
  margin: 0;
  padding: var(--space-1);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: none;
  border-radius: var(--app-radius-sm);
  background: transparent;
  color: var(--color-text-muted);
  cursor: pointer;
}

.app-bottom-settings__close:hover {
  color: var(--color-accent);
}

.app-bottom-settings__close:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.app-bottom-settings__section + .app-bottom-settings__section {
  margin-top: var(--space-4);
  padding-top: var(--space-4);
  border-top: 1px solid var(--app-glass-border);
}

.app-bottom-settings__label {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  margin-bottom: var(--space-2);
}

.app-bottom-settings__lang-switch {
  margin: 0;
  padding: 0;
  border: none;
  flex-wrap: wrap;
  gap: var(--space-1);
}

.app-bottom-settings__theme-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
}

.app-bottom-settings__theme-caption {
  font-size: 0.9rem;
  color: var(--color-text);
}

.app-bottom-settings__theme-toggle {
  flex-shrink: 0;
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  opacity: 1;
}

.app-bottom-settings__theme-toggle:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.app-bottom-settings__theme-track {
  display: block;
  position: relative;
  width: 2.75rem;
  height: 1.5rem;
  border-radius: var(--app-radius-pill);
  background: color-mix(in srgb, var(--color-text-muted) 38%, transparent);
  border: 1px solid var(--app-glass-border);
}

.app-bottom-settings__theme-thumb {
  position: absolute;
  top: 2px;
  left: 2px;
  width: calc(1.5rem - 6px);
  height: calc(1.5rem - 6px);
  border-radius: 50%;
  background: var(--color-bg);
  box-shadow: var(--app-shadow-soft);
  transition: transform 0.2s ease;
}

.app-bottom-settings__theme-toggle[aria-checked="true"] .app-bottom-settings__theme-thumb {
  transform: translateX(1.28rem);
}

.page-map_search .app-bottom-nav {
  display: none;
}

.page-map_search .app-bottom-settings {
  display: none !important;
}

html.is-property-detail-iframe .app-bottom-settings {
  display: none !important;
}

html.is-property-detail-iframe .app-bottom-nav {
  display: none !important;
}

html.is-property-detail-iframe body {
  padding-top: 0 !important;
}

body.has-app-bottom-nav.page-map_search {
  --app-bottom-nav-height: 0px;
}

/* Fixed brand mark — contact page only (home uses in-hero `.site-home-logo`). */
.site-corner-logo {
  position: fixed;
  top: max(var(--space-3), env(safe-area-inset-top, 0px));
  left: max(var(--space-3), env(safe-area-inset-left, 0px));
  z-index: 110;
  display: block;
  line-height: 0;
  text-decoration: none;
}

.site-corner-logo:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 4px;
  border-radius: var(--app-radius-sm);
}

.site-corner-logo__img {
  max-height: 2rem;
  width: auto;
  height: auto;
  display: block;
}

body.page-contact main.app-main {
  padding-top: calc(2.25rem + var(--space-4) + env(safe-area-inset-top, 0px));
}

/* Footer */
.site-footer {
  padding: var(--space-10) 0 var(--space-8);
  border-top: 1px solid var(--app-glass-border);
  background: var(--semantic-surface-panel-92);
}

.page-map_search .site-footer {
  display: none;
}

.site-footer__grid {
  display: grid;
  gap: var(--space-8);
}

.site-footer__region-title {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  margin: 0 0 var(--space-3);
}

.site-footer__nav-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.site-footer__nav-list a {
  display: block;
  padding: var(--space-2) 0;
  color: var(--color-text-muted);
}

.site-footer__nav-list a:hover {
  color: var(--color-accent);
}

.site-footer__name {
  font-family: var(--font-sans);
  color: var(--color-text);
  margin: 0 0 var(--space-2);
}

.site-footer__rights {
  font-size: 0.8rem;
  color: var(--color-text-muted);
}

/* Contact page actions */
.contact-page-title {
  font-family: var(--font-sans);
  font-size: clamp(1.75rem, 6vw, 2.35rem);
  margin: 0 0 var(--space-2);
}

.contact-page-lead {
  color: var(--color-text-muted);
}

.contact-action-btns {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin: var(--space-6) 0;
}

.contact-action-btn {
  flex: 1 1 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  min-height: 3rem;
  padding: 0 var(--space-4);
  border-radius: var(--app-radius-pill);
  border: 1px solid var(--app-glass-border);
  background: var(--app-glass-bg);
  color: var(--color-text);
  text-decoration: none;
  font-weight: 600;
  font-size: 0.85rem;
}

/* Mortgage calculator glass */
.mortgage-calc {
  padding: var(--space-5);
  border-radius: var(--app-radius-lg);
  background: var(--app-glass-bg);
  border: 1px solid var(--app-glass-border);
  margin-bottom: var(--space-4);
}

.mortgage-calc__amount {
  font-family: var(--font-sans);
  font-size: 1.75rem;
  color: var(--color-accent);
}

.mortgage-calc__label {
  color: var(--color-text-muted);
  font-size: 0.85rem;
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.15rem 0.25rem;
}

.mortgage-calc__slider {
  width: 100%;
  accent-color: var(--color-accent);
}

.mortgage-calc__price-input {
  border-radius: var(--app-radius-md);
  border: 1px solid var(--app-glass-border);
  background: color-mix(in srgb, var(--color-bg) 50%, transparent);
  color: var(--color-text);
  padding: 0.5rem;
}

.mcalc-info {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: 0.35rem;
  padding: 0;
  border: none;
  background: transparent;
  color: var(--color-text-muted);
  cursor: help;
  line-height: 1;
  vertical-align: middle;
}

.mcalc-info:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.mcalc-info__tip {
  display: none;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: calc(100% + 6px);
  width: min(18rem, 72vw);
  padding: var(--space-3);
  font-size: 0.8rem;
  font-weight: 400;
  line-height: 1.45;
  text-align: left;
  color: var(--color-text);
  background: var(--semantic-surface-panel-92);
  border: 1px solid var(--app-glass-border);
  border-radius: var(--app-radius-md);
  box-shadow: var(--app-shadow-soft);
  z-index: 30;
}

.mcalc-info[aria-expanded="true"] .mcalc-info__tip {
  display: block;
}

/* Reveal (intersection) */
.reveal {
  opacity: 0;
  transform: translateY(14px);
  transition:
    opacity 0.55s ease,
    transform 0.55s ease;
}

.reveal.is-visible {
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  .reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

.property-gallery-page {
  padding-block: var(--space-4);
}


/* Map search: map-first shell; sticky commercial row; overlay above all page chrome */

:root {
  /* Collapsed results-drawer peek height on mobile. Shared by the drawer and
   * the map SVG so the map never renders behind the drawer after a zoom-in. */
  --ms-drawer-peek: 35vh;
}

.page-map_search main.container {
  width: 100%;
  max-width: none;
  margin: 0;
  padding-left: max(1rem, env(safe-area-inset-left, 0px));
  padding-right: max(1rem, env(safe-area-inset-right, 0px));
  padding-bottom: max(0.5rem, env(safe-area-inset-bottom, 0px));
}

@media (max-width: 768px) {
  body.page-map_search {
    background-image: none;
    background-color: var(--color-bg);
    overflow: hidden;
    height: 100dvh;
    display: flex;
    flex-direction: column;
    padding-bottom: 0;
  }

  .page-map_search .site-header {
    flex: 0 0 auto;
  }

  .page-map_search main.container {
    flex: 1 1 0;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    padding-left: max(0.35rem, env(safe-area-inset-left, 0px));
    padding-right: max(0.35rem, env(safe-area-inset-right, 0px));
    /* Sticky CTA is fixed; reserve space via the drawer offset instead — padding here left a blank strip above the CTA. */
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }

  .page-map_search .map-search {
    /* Collapsed drawer height: was min(28vh, 200px) — too short after removing top nav.
     * Scale with dynamic viewport; clamp keeps short/tall devices sensible. SVG max-height
     * already subtracts this token (no JS / map logic changes). */
    --ms-drawer-peek: clamp(16rem, 44dvh, 22rem);
    display: flex;
    flex-direction: column;
    flex: 1 1 0;
    min-height: 0;
    position: relative;
  }

  .page-map_search .map-search__filters-wrap {
    flex: 0 0 auto;
  }

  .page-map_search .map-search__geo-trail {
    flex: 0 0 auto;
    padding: 0.5rem 0.75rem 0.2rem;
  }

  .page-map_search .map-search__map-host {
    flex: 1 1 auto;
    overflow: hidden;
    padding-bottom: 8px;
    box-sizing: border-box;
  }

  /* Drawer extent is bounded by two runtime values:
   *   - bottom: top of the sticky CTA bar (+ safe-area)
   *   - top (when expanded): top of .map-search__map-host (set by JS as --ms-drawer-top)
   * This prevents the expanded drawer from rising behind the filter bar.
   * Collapsed height is --ms-drawer-peek so the map SVG can partition the
   * same vertical space and never render behind the drawer. */
  .page-map_search .map-search__results-section {
    position: absolute;
    bottom: calc(var(--site-sticky-cta-height, 64px) + env(safe-area-inset-bottom, 0px));
    left: 0;
    right: 0;
    z-index: 30;
    height: var(--ms-drawer-peek);
    display: flex;
    flex-direction: column;
    background: color-mix(in srgb, var(--color-surface) 92%, #000);
    border-radius: var(--app-radius-lg, 14px) var(--app-radius-lg, 14px) 0 0;
    border: 1px solid var(--app-glass-border, rgba(255, 255, 255, 0.08));
    box-shadow: 0 -8px 32px color-mix(in srgb, #000 45%, transparent);
    transition: top 0.3s ease, height 0.3s ease;
    overflow: hidden;
  }

  .page-map_search .map-search__results-section.map-search__results-section--expanded {
    top: var(--ms-drawer-top, 96px);
    height: auto;
  }

  /* Third state: when the property list has rows, cling a touch higher toward the
   * top of the map host (same anchor) — still below the filter bar. */
  .page-map_search .map-search__results-section.map-search__results-section--expanded.map-search__results-section--has-results {
    top: var(--ms-drawer-top, 96px);
    height: auto;
  }

  .page-map_search .map-search__drawer-backdrop {
    position: absolute;
    top: var(--ms-drawer-top, 0px);
    left: 0;
    right: 0;
    bottom: calc(var(--site-sticky-cta-height, 64px) + env(safe-area-inset-bottom, 0px));
    z-index: 29;
    background: rgba(22, 26, 32, 0.18);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
  }

  .page-map_search .map-search__drawer-backdrop[hidden] {
    display: none;
  }

  .page-map_search .site-footer-zone {
    flex: 0 0 0;
    min-height: 0;
    padding: 0;
    overflow: visible;
    background-color: var(--color-bg);
  }

  .page-map_search footer.site-footer {
    display: none !important;
  }

  /* Parent page only: keep sticky CTA inside the property iframe; hide here for map. */
  .page-map_search .site-sticky-cta {
    display: none !important;
  }

  html:has(body.page-map_search) {
    --site-sticky-cta-height: 0px;
  }

  /* Cap the SVG height so pins/labels always sit above the collapsed drawer,
   * even after zooming into an orientation or municipality focusViewBox.
   * --ms-drawer-top is the top of .map-search__map-host, published by
   * overlays JS (syncDrawerTopOffset). */
  .page-map_search .map-search__svg {
    max-height: calc(
      100dvh
      - var(--ms-drawer-top, 96px)
      - var(--ms-drawer-peek)
      - var(--site-sticky-cta-height, 64px)
      - env(safe-area-inset-bottom, 0px)
      - 12px
    );
  }

}

/* Geo breadcrumb trail */
.map-search__geo-trail {
  padding: 0.25rem 0.75rem;
  font-size: 0.8rem;
  color: var(--color-text-muted, #5c6570);
  line-height: 1.4;
}

.map-search__geo-link {
  background: none;
  border: none;
  color: var(--color-primary-dark);
  text-decoration: underline;
  cursor: pointer;
  padding: 0;
  font: inherit;
}

.map-search__geo-link:hover,
.map-search__geo-link:focus-visible {
  color: var(--color-primary);
}

.map-search__geo-current {
  font-weight: 600;
  color: var(--color-text);
}

.map-search__geo-sep {
  margin: 0 0.25rem;
  color: var(--color-text-muted, #5c6570);
  opacity: 0.5;
}

/* Facet chips below sticky controls, above map */
.map-search__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  min-height: 0;
  margin: 0.35rem 0 0.45rem;
}

.map-search__chip {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.22rem 0.45rem 0.22rem 0.55rem;
  font-size: 0.75rem;
  line-height: 1.15;
  border-radius: 999px;
  background: color-mix(in srgb, var(--color-surface) 65%, transparent);
  color: var(--color-text);
  border: 1px solid var(--app-glass-border, color-mix(in srgb, var(--color-border) 70%, transparent));
  backdrop-filter: blur(10px);
}

.map-search__chip-remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.25rem;
  height: 1.25rem;
  padding: 0;
  margin: 0;
  border: none;
  border-radius: 50%;
  background: transparent;
  color: inherit;
  cursor: pointer;
  font-size: 1rem;
  line-height: 1;
}

.map-search__chip-remove:hover,
.map-search__chip-remove:focus-visible {
  background: rgba(0, 0, 0, 0.08);
}

.map-search__filters-wrap {
  margin: 0;
}

/* One system: primary filters + map + results */
.map-search__filters-stack {
  border-left: 3px solid color-mix(in srgb, var(--color-primary, #2a6f9a) 50%, #94a3b8);
  padding-left: 0.75rem;
  margin-bottom: 0.2rem;
}

@media (max-width: 768px) {
  .map-search__filters-stack {
    border-left: 0;
    padding-left: 0;
    margin-left: 0;
    margin-bottom: 0;
  }

  .map-search__chips {
    display: none;
  }

  .map-search__scope {
    display: none;
  }
}

.map-search-panel-refinements select,
.map-search-panel-refinements input {
  min-height: 44px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  padding: 0 0.65rem;
  font-size: 0.88rem;
  line-height: 1.2;
  background: var(--color-surface);
  color: var(--color-text);
  width: 100%;
  box-sizing: border-box;
}

.map-search__filters-menu-btn {
  flex: 1 1 auto;
  min-height: 44px;
  padding: 0 0.75rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: var(--color-surface);
  color: var(--color-primary-dark);
  font: inherit;
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
  text-align: center;
}

.map-search__filters-menu-btn:hover,
.map-search__filters-menu-btn:focus-visible {
  border-color: color-mix(in srgb, var(--color-primary) 35%, var(--color-border));
}

.map-search__filters-menu-btn:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--color-primary) 45%, transparent);
  outline-offset: 2px;
}

/* Scope / insight panel below map (mobile only) */
.map-search__scope {
  padding: 0.5rem 0.75rem;
}

.map-search__scope-title {
  font-family: var(--font-sans, inherit);
  font-size: 1.1rem;
  margin: 0 0 0.15rem;
}

.map-search__scope-total {
  font-size: 0.8rem;
  color: var(--color-text-muted, #5c6570);
  margin: 0 0 0.4rem;
}

.map-search__scope-types {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.map-search__scope-type {
  border: 1.5px solid color-mix(in srgb, var(--color-primary) 40%, transparent);
  border-radius: 999px;
  padding: 0.3rem 0.75rem;
  font-size: 0.8rem;
  font-weight: 600;
  background: transparent;
  color: var(--color-text);
  cursor: pointer;
  min-height: 36px;
  transition: background 0.15s, color 0.15s;
  font-family: inherit;
}

.map-search__scope-type.is-selected {
  background: var(--color-primary);
  color: #fff;
  border-color: var(--color-primary);
}

.map-search__scope-type:focus-visible {
  outline: 2px solid var(--color-primary-dark);
  outline-offset: 2px;
}

@media (min-width: 769px) {
  .map-search__scope {
    display: none;
  }

}

/* Drawer handle (mobile bottom-sheet grip) */
.map-search__drawer-handle {
  display: none;
}

.map-search__drawer-backdrop {
  display: none;
}

@media (max-width: 768px) {
  .map-search__drawer-handle {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    padding: 0.5rem 0 0.15rem;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }

  .map-search__drawer-pill {
    display: block;
    width: 2.25rem;
    height: 0.25rem;
    border-radius: 999px;
    background: #c0c5cc;
  }

  .map-search__results-header {
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }
}

/* Inline results section below the map */
.map-search__results-section {
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
}

.map-search__results-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.6rem 0.25rem 0.45rem;
}

.map-search__results-title {
  margin: 0;
  font-size: 0.92rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--color-text);
}

.map-search__results-actions {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  flex-shrink: 0;
}

.map-search__results-sort-wrap {
  position: relative;
}

.map-search__results-sort-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  padding: 0;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm, 6px);
  background: var(--color-surface, #fff);
  color: var(--color-text-muted, #5c6570);
  cursor: pointer;
}

.map-search__results-sort-btn:hover,
.map-search__results-sort-btn:focus-visible {
  border-color: color-mix(in srgb, var(--color-primary) 40%, var(--color-border));
  color: var(--color-text);
}

.map-search__results-sort-icon {
  width: 1.15rem;
  height: 1.15rem;
}

.map-search__results-list {
  flex: 1 1 0;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  border-top: 1px solid var(--color-border);
}

.map-search__results-empty {
  padding: 1.5rem 0.5rem;
  margin: 0;
  color: var(--color-text-muted, #5c6570);
  font-size: 0.88rem;
  text-align: center;
}

/* Map-search drawer result rows — scoped to override 06-cards-app .map-list-row */
.page-map_search .map-list-row {
  display: flex;
  align-items: stretch;
  gap: 0.75rem;
  padding: 0.65rem 0.35rem;
  margin-bottom: 0.5rem;
  text-decoration: none;
  color: inherit;
  border: 1px solid var(--app-glass-border, var(--color-border, #eee));
  border-radius: var(--app-radius-md, 10px);
  background: color-mix(in srgb, var(--color-surface) 55%, transparent);
  cursor: pointer;
  transition:
    background 0.15s ease,
    border-color 0.15s ease;
}

.page-map_search .map-list-row:hover,
.page-map_search .map-list-row:focus-visible {
  border-color: color-mix(in srgb, var(--color-accent) 40%, transparent);
  background: color-mix(in srgb, var(--color-surface) 72%, transparent);
}

.page-map_search .map-list-row:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--color-primary) 45%, transparent);
  outline-offset: 2px;
}

.page-map_search .map-list-row__media {
  position: relative;
  flex: 0 0 auto;
  width: 5.5rem;
  align-self: flex-start;
}

.page-map_search .map-list-row__thumb {
  display: block;
  width: 5.5rem;
  height: 4.25rem;
  object-fit: cover;
  border-radius: var(--app-radius-sm, 6px);
  background: #f0eded;
}

.page-map_search .map-list-row__media .card-badges {
  position: absolute;
  left: 0.35rem;
  bottom: 0.35rem;
  right: 0.35rem;
  z-index: 4;
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  pointer-events: none;
}

.page-map_search .map-list-row__media .card-badge {
  padding: 0.15rem 0.45rem;
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border-radius: var(--app-radius-pill, 999px);
  background: var(--semantic-status-hot-bg, #c9a227);
  color: var(--semantic-text-inverse, #fff);
}

.page-map_search .map-list-row__main {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0.35rem;
}

.page-map_search .map-list-row__body {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}

.page-map_search .map-list-row__title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--color-text);
}

.page-map_search .map-list-row__type {
  font-weight: 600;
  color: var(--color-text);
}

.page-map_search .map-list-row__loc {
  font-weight: 600;
  color: var(--color-accent);
}

.page-map_search .map-list-row__location {
  display: flex;
  align-items: center;
  gap: var(--space-2, 0.35rem);
  margin: 0;
  font-family: var(--font-ui);
  font-size: 0.68rem;
  color: color-mix(in srgb, var(--color-text-muted) 94%, transparent);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  line-height: 1.35;
}

.page-map_search .map-list-row__location .card-body-location__pin {
  width: 0.9rem;
  height: 0.9rem;
  flex-shrink: 0;
  color: color-mix(in srgb, var(--color-text-muted) 88%, #fff);
}

.page-map_search .map-list-row__location .card-body-location__pin path {
  fill: currentColor;
}

.page-map_search .map-list-row__price {
  margin: 0;
  font-family: var(--font-sans, inherit);
  font-size: 0.92rem;
  font-weight: 500;
  color: var(--color-text);
  letter-spacing: 0.02em;
}

.page-map_search .map-list-row__chevron {
  flex: 0 0 auto;
  width: 1.25rem;
  height: 1.25rem;
  color: var(--color-text-muted, #aaa);
}

/* Drawer rows on small screens — thumb size unchanged; title + price only */
@media (max-width: 768px) {
  .page-map_search .map-list-row {
    --map-list-row-thumb-h: 4.4rem;
    --map-list-row-thumb-w: 5.35rem;
    align-items: center;
    gap: 0.5rem;
    padding: 0.45rem 0.3rem;
    margin-bottom: 0.4rem;
  }

  .page-map_search .map-list-row__media {
    width: var(--map-list-row-thumb-w);
    height: var(--map-list-row-thumb-h);
    flex-shrink: 0;
  }

  .page-map_search .map-list-row__thumb {
    width: 100%;
    height: 100%;
  }

  .page-map_search .map-list-row__media .card-badges {
    display: none;
  }

  .page-map_search .map-list-row__body {
    gap: 0.25rem;
    justify-content: center;
  }

  .page-map_search .map-list-row__title {
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1.25;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  .page-map_search .map-list-row__location {
    display: none;
  }

  .page-map_search .map-list-row__price {
    font-size: 0.85rem;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .page-map_search .map-list-row__chevron {
    width: 1rem;
    height: 1rem;
    align-self: center;
    flex-shrink: 0;
  }
}

/*
 * Map overlays stack above `.site-header` (z-index 100) so filter panels read as
 * anchored over the page chrome.
 */
.page-map_search .map-search .map-search-filter-layer.listings-filter-backdrop {
  z-index: 118;
}

.page-map_search .map-search .map-search-filter-layer.listings-filter-panel {
  z-index: 119;
}

/* Overlay above sticky bar (z-index 32) and site header (35) */
.map-search .map-search-filter-layer.listings-filter-backdrop {
  z-index: 45;
}

.map-search .map-search-filter-layer.listings-filter-panel {
  z-index: 46;
}

@media (max-width: 768px) {
  .map-search__filters-wrap {
    position: relative;
  }


  .map-search-panel-submit {
    display: none !important;
  }

  .map-search__map-host {
    min-height: min(42svh, 280px);
    padding-left: max(0.5rem, env(safe-area-inset-left, 0px));
    padding-right: max(0.5rem, env(safe-area-inset-right, 0px));
  }

  .map-search__results-list {
    max-height: none;
  }

  .page-map_search .map-search__results-sort-wrap .listings-sort-menu {
    position: fixed;
    top: auto;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 126;
    max-width: none;
    min-width: auto;
    max-height: min(70vh, 28rem);
    overflow-y: auto;
    overscroll-behavior: contain;
    border-radius: 14px 14px 0 0;
    box-shadow: 0 -8px 28px rgba(15, 23, 42, 0.16);
    padding-bottom: max(0.5rem, env(safe-area-inset-bottom, 0px));
  }
}

.map-search .map-search-filter-panel.listings-filter-panel[hidden] {
  display: none !important;
}

/* Desktop: do NOT set position:static on the refinements panel — only map-search.html uses
 * .map-search; static placement made the open panel (taller when results > 0) expand grid row 1
 * and collapse the map. Overlay positioning comes from 07-listings .listings-filter-panel + block below. */
@media (min-width: 769px) {
  /* Collapsed refinements: [hidden] must win over --inline's display:flex */
  .map-search .map-search-filter-panel.map-search-filter-panel--inline[hidden] {
    display: none !important;
  }
}

.map-search__panel-lead {
  margin: 0 0 0.75rem;
  font-size: 0.88rem;
  line-height: 1.45;
  color: var(--color-text-muted, #5c6570);
}

.map-search-panel-refinements {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
}

@media (min-width: 560px) {
  .map-search-panel-refinements {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 769px) {
  .map-search-panel-refinements {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.map-search-filter-panel__body .filter-bar__actions {
  margin-top: 1rem;
}

.map-search__map-host {
  width: 100%;
  max-width: 100%;
  margin-left: 0;
  margin-right: 0;
  margin-bottom: 0;
  padding: 0.35rem max(1rem, env(safe-area-inset-left, 0px)) 0.25rem max(1rem, env(safe-area-inset-right, 0px));
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.45rem;
  box-sizing: border-box;
}

.map-search__map-frame {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
}

/* Mobile: height follows viewBox aspect so the SVG sits flush at the top of
 * the map host with no letterboxing gap (Phase 3 aspect-balancing keeps the
 * drilled-in viewBox close enough to the host aspect that max-height rarely
 * binds, but we keep a soft cap as a safety net for very tall devices).
 * Desktop override below sets height:auto + width:100% under a different
 * containing block so this rule does not affect desktop. */
.map-search__svg {
  width: 100%;
  height: auto;
  max-height: min(58vh, 620px);
  display: block;
}

.map-search__mun {
  fill: #e6dcc8;
  stroke: #faf7f2;
  stroke-width: 1.65;
  cursor: pointer;
  transition:
    opacity 0.16s ease,
    filter 0.16s ease;
}

.map-search__mun:hover {
  filter: brightness(0.94);
}

.map-search__mun[data-oid="palma"] {
  fill: #d4bc98;
}

.map-search__mun[data-oid="northwest"] {
  fill: #e4d5c0;
}

.map-search__mun[data-oid="north"] {
  fill: #ebe3d6;
}

.map-search__mun[data-oid="east"] {
  fill: #dcc9a8;
}

.map-search__mun[data-oid="south"] {
  fill: #eae2d4;
}

.map-search__mun[data-oid="southwest"] {
  fill: #d8c8ac;
}

.map-search__mun[data-oid="central"] {
  fill: #e0d2bf;
}

.map-search__mun.is-focus {
  fill: var(--color-primary, #b08a57);
  stroke: #fff;
  stroke-width: 1.5;
}

.map-search__mun.is-muted {
  opacity: 0.35;
}

/* Count pins (orientation / municipality / locality) — primary map navigation */
.map-search__pins {
  pointer-events: none;
}

.map-search__pin {
  pointer-events: all;
  cursor: pointer;
}

.map-search__pin-focus:focus,
.map-search__pin-focus--overview:focus {
  outline: none;
}

.map-search__pin-dot {
  fill: var(--color-primary-dark, #8f6e43);
  stroke: #fff;
  filter: drop-shadow(0 1px 3px rgba(80, 58, 32, 0.28));
}

.map-search__pin-dot-count {
  font-family: var(--font-sans);
  font-weight: 800;
  fill: #fff;
}

.map-search__pin-name {
  font-family: var(--font-sans);
  font-weight: 700;
  fill: #1f1f1f;
  paint-order: stroke fill;
  stroke: #fff;
  stroke-linejoin: round;
}

.map-search__paths--l0 .map-search__mun.is-muted {
  opacity: 0.72;
  filter: saturate(1.08);
}

.map-search__paths--l0 .map-search__mun.is-muted:hover {
  filter: saturate(1.12) brightness(0.97);
}

@media (min-width: 769px) {
  .map-search__svg {
    min-height: min(32vh, 360px);
    max-height: min(78vh, 960px);
  }
}

@media (max-width: 768px) {
  .page-map_search .map-search .map-search-filter-layer.listings-filter-backdrop {
    bottom: 0;
  }

  .page-map_search .map-search .map-search-filter-layer.listings-filter-panel {
    bottom: 0;
  }

  /* “Más filtros”: light blur so map reads through; bottom sheet layout + pinned actions */
  .page-map_search .map-search .map-search-filter-layer.listings-filter-backdrop {
    background: rgba(22, 26, 32, 0.28);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
  }

  .page-map_search .map-search .listings-filter-panel.map-search-filter-panel:not(.map-search-filter-panel--inline) {
    top: auto;
    left: 0;
    right: 0;
    width: 100%;
    max-width: none;
    max-height: min(88dvh, calc(100dvh - 0.5rem));
    border-radius: 14px 14px 0 0;
    box-shadow: 0 -10px 36px rgba(15, 23, 42, 0.16);
  }

  .map-search-filter-panel__body.map-search-filter-panel__body {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    padding: 0 1rem;
    padding-bottom: 0;
    overflow: hidden;
  }

  .map-search-filter-panel__scroll {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    /* Safe bottom padding — 07-listings-app.css filter mobile rhythm */
  }

  .map-search-filter-panel__footer {
    flex-shrink: 0;
    margin-left: -1rem;
    margin-right: -1rem;
    padding: 0.65rem 1rem max(0.85rem, env(safe-area-inset-bottom, 0px));
    border-top: 1px solid var(--color-border);
    background: var(--color-surface, #fff);
  }

  .map-search-filter-panel__actions.map-search-filter-panel__actions {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-top: 0;
  }

  .map-search-filter-panel__actions .btn-primary,
  .map-search-filter-panel__actions .btn-secondary {
    width: 100%;
    margin: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  @media (max-width: 768px) {
    .page-map_search .map-search .map-search-filter-layer.listings-filter-backdrop {
      backdrop-filter: none;
      -webkit-backdrop-filter: none;
    }
  }
}

@media (min-width: 769px) {
  .map-search-refinements-apply-map {
    display: none !important;
  }

  .map-search-filter-panel__footer {
    margin-left: 0;
    margin-right: 0;
    padding: 0;
    padding-bottom: 0;
    border-top: none;
    background: transparent;
  }

  .map-search-filter-panel__body.map-search-filter-panel__body {
    display: block;
    overflow: visible;
    padding-bottom: inherit;
  }

  .map-search-filter-panel__scroll {
    overflow: visible;
    padding-bottom: 0;
  }

  .map-search-filter-panel__actions.map-search-filter-panel__actions {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 0.65rem;
    margin-top: 1rem;
  }

  .map-search-filter-panel__actions .btn-primary,
  .map-search-filter-panel__actions .btn-secondary {
    width: auto;
  }

  .map-search__results-list {
    max-height: 50vh;
  }
}

/* --------------------------------------------------------------------------
 * Map search — desktop layout (lives here so it ships in 17-map-search.css;
 * the concat bundle always includes this file before 18- and 99-. Rules that
 * lived only in 99-desktop-overrides were easy to miss after a partial deploy.)
 * -------------------------------------------------------------------------- */
@media (min-width: 769px) {
  body.page-map_search {
    height: 100vh;
    overflow: hidden;
    display: flex;
    flex-direction: column;
  }

  .page-map_search main.container {
    flex: 1 1 0;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
  }

  .page-map_search footer.site-footer {
    display: none;
  }

  .page-map_search .map-search__filters-stack {
    border-left: 0;
    padding: 0;
    margin: 0;
  }

  .page-map_search .map-search-filter-form.filter-bar {
    margin: 0;
  }

  .page-map_search .map-search__chips {
    display: none !important;
  }

  .page-map_search .map-search__results-header .map-search__results-actions {
    display: none;
  }

  .page-map_search .map-search__results-filter-btn {
    display: none !important;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    padding: 0;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm, 6px);
    background: var(--color-surface, #fff);
    color: var(--color-text-muted, #5c6570);
    cursor: pointer;
    transition:
      border-color var(--dur-fast, 0.15s) var(--ease-standard, ease),
      background-color var(--dur-fast, 0.15s) var(--ease-standard, ease);
  }

  .page-map_search .map-search__results-filter-btn:hover,
  .page-map_search .map-search__results-filter-btn:focus-visible {
    border-color: color-mix(in srgb, var(--color-primary) 40%, var(--color-border));
    color: var(--color-text);
  }

  .page-map_search .map-search__results-filter-btn:focus-visible {
    outline: 2px solid color-mix(in srgb, var(--color-primary) 45%, transparent);
    outline-offset: 2px;
  }

  .page-map_search .map-search-filter-panel__body {
    padding-top: 0.75rem;
  }

  .page-map_search .map-search-refinements-apply-map {
    display: inline-flex !important;
    order: -1;
  }

  .page-map_search .map-search-panel-submit {
    display: none !important;
  }

  .page-map_search .map-search {
    display: grid;
    grid-template-columns: minmax(240px, 1.7fr) minmax(320px, 1fr);
    grid-template-rows: auto auto minmax(0, 1fr);
    grid-template-areas:
      "ms-filters ms-filters"
      "ms-map ms-geo"
      "ms-map ms-results";
    flex: 1 1 0;
    min-height: 0;
    overflow: hidden;
  }

  .page-map_search .map-search__filters-wrap {
    grid-area: ms-filters;
  }

  .page-map_search .map-search__geo-trail {
    grid-area: ms-geo;
    padding: 1.5rem 1rem 0.6rem;
    font-size: 0.95rem;
  }

  .page-map_search .map-search__geo-sep {
    margin: 0 0.35rem;
    opacity: 0.65;
  }

  .page-map_search .map-search__map-host {
    grid-area: ms-map;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 1.5rem 1rem;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    align-self: stretch;
    min-height: clamp(12rem, 28vh, 100%);
    min-width: 0;
  }

  .page-map_search .map-search__map-frame {
    flex: 1;
    min-height: 0;
    max-height: 100%;
    width: 100%;
  }

  .page-map_search .map-search__svg {
    max-height: 100%;
    height: auto;
    width: 100%;
  }

  .page-map_search .map-search__scope {
    grid-column: 1 / -1;
  }

  .page-map_search .map-search__results-section {
    grid-area: ms-results;
    overflow-y: auto;
    max-height: none;
    min-width: 0;
    background: var(--color-surface, #fff);
    box-shadow: -4px 0 16px rgba(15, 23, 42, 0.06);
  }

  .page-map_search .map-search__results-header {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--color-surface, #fff);
    border-bottom: 1px solid var(--color-border);
    padding: 0.65rem 1rem;
  }

  .page-map_search .map-search__results-list {
    max-height: none;
    padding: 0 0.5rem;
  }

  .page-map_search .map-search__drawer-handle {
    display: none;
  }

  .page-map_search .map-search__drawer-backdrop {
    display: none;
  }

  .page-map_search .map-search .map-search-filter-panel.map-search-filter-panel--inline {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: auto;
    width: min(100%, 26rem);
    max-width: 100%;
    max-height: none;
    z-index: 46;
    border: 0;
    border-radius: 0;
    margin: 0;
    box-shadow: -8px 0 32px rgba(29, 24, 18, 0.12);
    background: var(--color-surface, #fff);
  }

  .page-map_search .map-search .map-search-filter-panel.map-search-filter-panel--inline[hidden] {
    display: none !important;
  }
}



/*
 * Desktop-only — final cascade (mobile rules live in earlier partials).
 * Everything here MUST be inside min-width: 769px.
 */

@media (min-width: 769px) {
  body.detail-hero-shell {
    --detail-hero-media-height: clamp(360px, calc(100svh * 4 / 5), 100svh);
  }

  /* Primary navigation is the bottom bar on all breakpoints (top header removed). */
  body.has-app-bottom-nav:not(.page-map_search) {
    --app-bottom-nav-height: 4.5rem;
  }

  /* Shrink pill to icon row; cap width only when rail overflows. */
  .app-bottom-nav__viewport {
    width: fit-content;
    max-width: min(38rem, calc(100vw - 2 * var(--space-3)));
  }

  .app-bottom-nav__scroll {
    width: auto;
  }

  .app-bottom-nav__track {
    min-width: 0;
    padding-inline: var(--space-3);
  }

  .header-inner {
    flex-wrap: nowrap;
  }

  .header-inner > .site-brand {
    order: 0;
    margin-right: var(--space-4);
  }

  .header-inner > .header-trailing {
    order: 2;
    margin-left: 0;
  }

  .menu-toggle {
    display: none;
  }

  .site-nav-backdrop {
    display: none !important;
  }

  #site-nav.site-nav {
    position: static;
    transform: none;
    width: auto;
    flex: 1;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    padding: 0;
    background: transparent;
    border: none;
    box-shadow: none;
    overflow: visible;
  }

  .site-nav-primary {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.25rem 1rem;
  }

  .site-nav-main-link,
  .site-nav-group__hub {
    padding: 0.5rem 0.4rem;
    font-size: 0.88rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border-bottom: 1px solid transparent;
    border-radius: 0;
  }

  .site-nav-main-link.is-active,
  .site-nav-group__hub.is-active {
    border-bottom-color: var(--color-accent);
    background: transparent;
  }

  .lang-switch {
    border: none;
    padding: 0 0 0 var(--space-4);
    margin-left: var(--space-2);
  }

  /* Property detail: shell grid — hero copy lives in shell-main so rail aligns with title */
  .property-detail__shell {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 22rem;
    gap: var(--space-8);
    align-items: stretch;
    max-width: 78rem;
    margin-inline: auto;
    padding-inline: var(--space-4);
    box-sizing: border-box;
  }

  .property-detail__shell-main {
    min-width: 0;
  }

  html:not(.is-property-detail-iframe) body.detail-hero-shell {
    --detail-rail-stick-gap: var(--space-3);
    --detail-rail-viewport-bottom: var(--space-5);
    --detail-rail-sticky-top: calc(
      var(--detail-tabs-measured-height) + env(safe-area-inset-top, 0px) +
        var(--detail-rail-stick-gap)
    );
    --detail-rail-module-max-height: calc(
      100svh - var(--detail-tabs-measured-height) - env(safe-area-inset-top, 0px) -
        var(--detail-rail-stick-gap) - var(--detail-rail-viewport-bottom)
    );
  }

  /*
   * Right rail — single sticky slot; JS hard-swaps contact vs mortgage at inline agent CTA.
   */
  html:not(.is-property-detail-iframe) body.detail-hero-shell .property-detail__shell-rail {
    position: relative;
    align-self: stretch;
    min-width: 0;
    box-sizing: border-box;
    display: block;
    overflow: visible;
    padding: 0;
    border: none;
    border-radius: 0;
    background: transparent;
  }

  html:not(.is-property-detail-iframe)
    body.detail-hero-shell
    .property-detail__rail-sticky-slot {
    position: sticky;
    top: var(--detail-rail-sticky-top);
    min-height: var(--detail-rail-module-max-height);
    box-sizing: border-box;
  }

  html:not(.is-property-detail-iframe)
    body.detail-hero-shell
    .property-detail__rail-sticky-slot
    > .property-detail-enquiry.detail-section,
  html:not(.is-property-detail-iframe)
    body.detail-hero-shell
    .property-detail__rail-sticky-slot
    > .property-detail-mortgage.mortgage-calc {
    max-height: var(--detail-rail-module-max-height);
    box-sizing: border-box;
    border-radius: var(--app-radius-lg);
    background: var(--app-glass-bg);
    border: 1px solid var(--app-glass-border);
    margin: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  html:not(.is-property-detail-iframe)
    body.detail-hero-shell
    .property-detail__rail-sticky-slot
    > .property-detail-enquiry.detail-section {
    display: flex;
    flex-direction: column;
    padding: var(--space-3) var(--space-4) var(--space-4);
  }

  /* Phased swap: mortgage hidden until inline agent reaches sticky line (JS sets phase class) */
  html.detail-rail-phases-enabled:not(.detail-rail-phase--mortgage):not(.is-property-detail-iframe)
    body.detail-hero-shell
    .property-detail__rail-sticky-slot
    > .property-detail-mortgage.mortgage-calc {
    display: none;
  }

  html.detail-rail-phases-enabled.detail-rail-phase--mortgage:not(.is-property-detail-iframe)
    body.detail-hero-shell
    .property-detail__rail-sticky-slot
    > .property-detail-enquiry.detail-section {
    display: none;
  }

  html.detail-rail-phases-enabled.detail-rail-phase--mortgage:not(.is-property-detail-iframe)
    body.detail-hero-shell
    .property-detail__rail-sticky-slot
    > .property-detail-mortgage.mortgage-calc {
    display: block;
  }

  html:not(.is-property-detail-iframe)
    body.detail-hero-shell
    .property-detail__shell-rail
    .detail-mortgage-nav-placeholder {
    display: none;
  }

  html:not(.is-property-detail-iframe)
    body.detail-hero-shell
    .property-detail__shell-rail
    .property-detail-enquiry.reveal,
  html:not(.is-property-detail-iframe)
    body.detail-hero-shell
    .property-detail__shell-rail
    .property-detail-mortgage.reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }

  html:not(.is-property-detail-iframe)
    body.detail-hero-shell
    .property-detail__shell-rail
    .property-detail-enquiry__agent-card {
    padding: var(--space-3) var(--space-4);
  }

  html:not(.is-property-detail-iframe)
    body.detail-hero-shell
    .property-detail__shell-rail
    .property-detail-enquiry__agent-block {
    gap: var(--space-3);
  }

  html:not(.is-property-detail-iframe)
    body.detail-hero-shell
    .property-detail__shell-rail
    .property-detail-enquiry__agent-img {
    max-width: 7.25rem;
    aspect-ratio: 3 / 4;
  }

  html:not(.is-property-detail-iframe)
    body.detail-hero-shell
    .property-detail__shell-rail
    .property-detail-enquiry__agent-name {
    font-size: clamp(1.2rem, 1.6vw, 1.45rem);
  }

  html:not(.is-property-detail-iframe)
    body.detail-hero-shell
    .property-detail__shell-rail
    .property-detail-enquiry__agent-action {
    width: 2.85rem;
    height: 2.85rem;
    min-width: 2.85rem;
    min-height: 2.85rem;
  }

  html:not(.is-property-detail-iframe)
    body.detail-hero-shell
    .property-detail__shell-rail
    .property-detail-enquiry__submit {
    padding: 0.8rem 1.1rem;
  }

  html:not(.is-property-detail-iframe)
    body.detail-hero-shell
    .property-detail__shell-rail
    .property-detail-enquiry
    .property-detail-enquiry__form-tools {
    gap: var(--space-5);
  }

  html:not(.is-property-detail-iframe)
    body.detail-hero-shell
    .property-detail__shell-rail
    .property-detail-enquiry__form-panel {
    gap: var(--space-3);
  }

  html:not(.is-property-detail-iframe)
    body.detail-hero-shell
    .property-detail__shell-rail
    .property-detail-enquiry__rail-form {
    gap: var(--space-3);
  }

  html:not(.is-property-detail-iframe)
    body.detail-hero-shell
    .property-detail__shell-rail
    .property-detail-enquiry__rail-form
    textarea {
    min-height: 4.25rem;
    max-height: 5.5rem;
  }

  html:not(.is-property-detail-iframe)
    body.detail-hero-shell
    .property-detail__rail-sticky-slot
    > .property-detail-mortgage.mortgage-calc {
    padding: var(--space-3) var(--space-4);
    margin-bottom: 0;
    border: 1px solid var(--app-glass-border);
  }

  html:not(.is-property-detail-iframe)
    body.detail-hero-shell
    .property-detail__shell-rail
    .property-detail-mortgage
    .detail-section-heading {
    margin-bottom: var(--space-3);
  }

  html:not(.is-property-detail-iframe)
    body.detail-hero-shell
    .property-detail__shell-rail
    .mortgage-calc__amount {
    font-size: 1.5rem;
  }

  /* Inline agent strip above description — sidebar rail is the desktop CTA */
  .property-detail__shell-main > .property-detail-agent-mobile {
    display: none;
  }

  /* Inline agent between gallery and Resumen — pins under detail tab bar on desktop */
  html:not(.is-property-detail-iframe)
    body.detail-hero-shell
    [data-detail-inline-agent-cta] {
    position: sticky;
    top: var(--detail-rail-sticky-top);
    z-index: 12;
    margin-top: var(--space-6);
    margin-bottom: var(--space-4);
  }

  body.detail-hero-shell .property-detail__tabs-sticky {
    position: sticky;
    top: 0;
    z-index: 18;
    margin-top: 0;
    margin-bottom: var(--space-4);
    margin-inline: 0;
    pointer-events: auto;
  }

  body.detail-hero-shell .property-detail__tabs {
    padding: 0.4rem 0.35rem 0.5rem;
    margin: 0;
    border-bottom: none;
    background: transparent;
  }

  .detail-gallery-cell {
    width: clamp(6rem, 11vw, 7.75rem);
  }

  /* Hero gallery — edge-to-edge; shell stays in 78rem band */
  html:not(.is-property-detail-iframe) body.detail-hero-shell article.property-detail > .property-detail__hero {
    width: 100vw;
    max-width: none;
    margin-inline: calc(50% - 50vw);
    padding-inline: 0;
    border-radius: 0;
    overflow: hidden;
    box-sizing: border-box;
  }

  /* Hero copy is in shell-main — price row + facts match main column width */
  html:not(.is-property-detail-iframe) body.detail-hero-shell .property-detail__shell-main .gallery-hero-info .gallery-price-row,
  html:not(.is-property-detail-iframe) body.detail-hero-shell .property-detail__shell-main .gallery-hero-info .card-facts-wrap {
    max-width: 100%;
  }

  /*
   * Property cards — premium 2×2 square tiles (parity with mobile ≤768px).
   */
  .property-card .card-facts-wrap {
    --property-card-facts-gap: clamp(0.75rem, 1.2vw, 1rem);
    --property-card-gold-ring: linear-gradient(
      135deg,
      color-mix(in srgb, var(--color-accent) 92%, #fff 12%) 0%,
      color-mix(in srgb, var(--color-accent) 38%, transparent) 22%,
      color-mix(in srgb, var(--color-accent) 12%, transparent) 48%,
      color-mix(in srgb, var(--color-accent) 55%, hsl(38 40% 55%)) 62%,
      color-mix(in srgb, var(--color-accent) 22%, transparent) 78%,
      color-mix(in srgb, var(--color-accent) 88%, #fff 10%) 100%
    );
    background: transparent;
    border: 0;
    border-radius: 0;
    overflow: visible;
  }

  .property-card .card-facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--property-card-facts-gap);
    width: 100%;
    max-width: min(100%, 20rem);
    margin-inline: auto;
  }

  .property-card .card-facts__item {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    box-sizing: border-box;
    aspect-ratio: 1 / 1;
    min-width: 0;
    width: 100%;
    height: auto;
    margin: 0;
    padding: clamp(0.75rem, 1.1vw, 1rem);
    border: 0;
    border-radius: clamp(1rem, 1.2vw, 1.25rem);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0;
    text-align: center;
    background:
      linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.008)),
      var(--semantic-card-facts-well);
  }

  .property-card .card-facts__item::before,
  .property-card .card-facts__item + .card-facts__item::before {
    content: "";
    position: absolute;
    inset: 0;
    inset-block: unset;
    inset-inline: unset;
    width: auto;
    height: auto;
    border-radius: inherit;
    padding: 1px;
    pointer-events: none;
    background: var(--property-card-gold-ring);
    -webkit-mask:
      linear-gradient(#000 0 0) content-box,
      linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask:
      linear-gradient(#000 0 0) content-box,
      linear-gradient(#000 0 0);
    mask-composite: exclude;
    z-index: 1;
  }

  .property-card .card-facts__item > * {
    position: relative;
    z-index: 2;
  }

  .property-card .card-facts__icon {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 0 0.5rem;
    line-height: 0;
  }

  .property-card .card-facts__icon svg {
    width: clamp(1.35rem, 1.5vw, 1.65rem);
    height: clamp(1.35rem, 1.5vw, 1.65rem);
  }

  .property-card .card-facts__value {
    width: 100%;
    text-align: center;
    font-size: clamp(1.1rem, 1.4vw, 1.35rem);
    line-height: 1.05;
    white-space: normal;
  }

  .property-card .card-facts__label {
    display: block;
    width: 100%;
    text-align: center;
    margin: 0.35rem 0 0;
  }

  /* Light tile surface — 02b-theme-light-app.css */

  .property-card .card-facts__item.card-facts__minimap .card-facts__minimap-wrap {
    width: min(88%, 6.5rem);
    max-width: none;
    max-height: none;
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .property-card .card-facts__item.card-facts__minimap .card-facts__minimap-img {
    width: 100%;
    height: auto;
    max-height: min(72%, 5.75rem);
    object-fit: contain;
  }

  /*
   * Property detail hero — headline spacing + horizontal facts rail (dividers, not tiles).
   */
  html:not(.is-property-detail-iframe) body.detail-hero-shell .property-detail__shell-main .gallery-hero-info.gallery-overlay {
    padding: var(--space-7) var(--space-4) var(--space-6);
  }

  html:not(.is-property-detail-iframe) body.detail-hero-shell .property-detail__shell-main .gallery-hero-info__meta .gallery-title {
    font-size: clamp(1.65rem, 2.2vw, 2.35rem);
    line-height: 1.18;
  }

  html:not(.is-property-detail-iframe) body.detail-hero-shell .property-detail__shell-main .gallery-hero-info__meta .gallery-location {
    font-size: 0.92rem;
  }

  html:not(.is-property-detail-iframe) body.detail-hero-shell .property-detail__shell-main .gallery-hero-info__meta .gallery-price-row {
    flex-direction: row;
    align-items: baseline;
  }

  html:not(.is-property-detail-iframe) body.detail-hero-shell .property-detail__shell-main .gallery-hero-info__meta .gallery-price {
    font-size: clamp(1.35rem, 1.8vw, 1.75rem);
  }

  html:not(.is-property-detail-iframe) body.detail-hero-shell .property-detail__shell-main .gallery-hero-info .card-facts-wrap {
    flex: 0 0 auto;
    width: 100%;
    margin-top: var(--space-6);
    margin-bottom: 0;
    padding: 0;
    border-radius: var(--facts-rail-radius);
    background: var(--semantic-card-facts-well);
    border: 1px solid var(--facts-item-divider);
    overflow: hidden;
    box-shadow: none;
  }

  html:not(.is-property-detail-iframe) body.detail-hero-shell .property-detail__shell-main .gallery-hero-info .card-facts-wrap .card-facts {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: stretch;
    width: 100%;
    max-width: none;
    margin-inline: 0;
    gap: 0;
    list-style: none;
    padding: 0;
  }

  html:not(.is-property-detail-iframe) body.detail-hero-shell .property-detail__shell-main .gallery-hero-info .card-facts-wrap .card-facts__item {
    position: relative;
    overflow: visible;
    isolation: auto;
    box-sizing: border-box;
    flex: 1 1 0;
    aspect-ratio: auto;
    min-width: 0;
    width: auto;
    height: auto;
    margin: 0;
    padding: clamp(1rem, 1.2vw, 1.35rem) clamp(0.85rem, 1vw, 1.15rem);
    border: 0;
    border-radius: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    text-align: center;
    background: transparent;
    box-shadow: none;
  }

  html:not(.is-property-detail-iframe) body.detail-hero-shell .property-detail__shell-main .gallery-hero-info .card-facts-wrap .card-facts__item::before {
    content: none;
    display: none;
  }

  html:not(.is-property-detail-iframe) body.detail-hero-shell .property-detail__shell-main .gallery-hero-info .card-facts-wrap .card-facts__item + .card-facts__item {
    border-inline-start: none;
  }

  html:not(.is-property-detail-iframe) body.detail-hero-shell .property-detail__shell-main .gallery-hero-info .card-facts-wrap .card-facts__item + .card-facts__item::before {
    content: "";
    display: block;
    position: absolute;
    inset: 18%;
    inset-inline-start: 0;
    width: 1px;
    height: auto;
    border-radius: 0;
    padding: 0;
    background: var(--facts-item-divider);
    -webkit-mask: none;
    mask: none;
    pointer-events: none;
    z-index: 1;
  }

  html:not(.is-property-detail-iframe) body.detail-hero-shell .property-detail__shell-main .gallery-hero-info .card-facts-wrap .card-facts__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 100%;
    margin: 0;
    padding: 0;
    color: var(--color-accent);
    line-height: 0;
  }

  html:not(.is-property-detail-iframe) body.detail-hero-shell .property-detail__shell-main .gallery-hero-info .card-facts-wrap .card-facts__icon svg {
    display: block;
    width: clamp(1.45rem, 1.5vw, 1.75rem);
    height: clamp(1.45rem, 1.5vw, 1.75rem);
    margin-inline: auto;
  }

  html:not(.is-property-detail-iframe) body.detail-hero-shell .property-detail__shell-main .gallery-hero-info .card-facts-wrap .card-facts__value {
    display: block;
    flex: 0 0 auto;
    width: 100%;
    margin: 0;
    padding: 0;
    font-family: var(--font-ui);
    font-size: clamp(1.1rem, 1.25vw, 1.35rem);
    font-weight: 700;
    line-height: 1.15;
    color: var(--color-text);
    text-align: center;
    white-space: normal;
  }

  html:not(.is-property-detail-iframe) body.detail-hero-shell .property-detail__shell-main .gallery-hero-info .card-facts-wrap .card-facts__label {
    display: block;
    flex: 0 0 auto;
    width: 100%;
    margin: 0;
    padding: 0;
    font-family: var(--font-ui);
    font-size: clamp(0.72rem, 0.85vw, 0.82rem);
    font-weight: 400;
    line-height: 1.2;
    color: color-mix(in srgb, var(--color-text-muted) 88%, transparent);
    text-align: center;
  }

  html:not(.is-property-detail-iframe) body.detail-hero-shell .property-detail__shell-main .gallery-hero-info .card-facts-wrap .card-facts__item.card-facts__minimap {
    padding: clamp(0.85rem, 1vw, 1.1rem) clamp(0.65rem, 0.9vw, 0.85rem);
  }

  html:not(.is-property-detail-iframe) body.detail-hero-shell .property-detail__shell-main .gallery-hero-info .card-facts-wrap .card-facts__minimap-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: min(100%, 5rem);
    max-width: 5rem;
    min-height: 0;
    margin: 0;
  }

  html:not(.is-property-detail-iframe) body.detail-hero-shell .property-detail__shell-main .gallery-hero-info .card-facts-wrap .card-facts__minimap-img {
    max-height: clamp(2.25rem, 3vw, 3rem);
  }

  html[data-theme="light"]:not(.is-property-detail-iframe) body.detail-hero-shell .property-detail__shell-main .gallery-hero-info .card-facts-wrap {
    background: #ffffff;
    border: 1px solid var(--semantic-facts-tile-border);
    box-shadow: var(--semantic-facts-rail-shadow);
  }

  html[data-theme="light"]:not(.is-property-detail-iframe) body.detail-hero-shell .property-detail__shell-main .gallery-hero-info .card-facts-wrap .card-facts__item {
    background: transparent;
    border: 0;
    box-shadow: none;
  }

  html[data-theme="light"]:not(.is-property-detail-iframe) body.detail-hero-shell .property-detail__shell-main .gallery-hero-info .card-facts-wrap .card-facts__icon {
    color: var(--color-accent);
  }

  /* USP — four tiles in one row inside framed panel (desktop) */
  #detail-usps .detail-usps-panel {
    padding:
      clamp(1.65rem, 2.2vw, 2rem)
      clamp(1.35rem, 1.8vw, 1.65rem)
      clamp(1.5rem, 2vw, 1.75rem);
  }

  #detail-usps .detail-usps-head {
    margin-bottom: clamp(1.35rem, 1.8vw, 1.65rem);
  }

  #detail-usps .detail-usps-heading {
    max-width: 22rem;
    font-size: clamp(1.35rem, 1.75vw, 1.55rem);
  }

  #detail-usps .detail-usps-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(0.65rem, 0.9vw, 0.85rem);
    width: 100%;
    max-width: none;
    margin-inline: 0;
  }

  #detail-usps .detail-usps-item {
    min-height: clamp(12rem, 15vw, 14rem);
    padding:
      1.15rem 0.75rem 1rem;
  }

  #detail-usps .detail-usps-item__icon-wrap {
    width: 3.5rem;
    height: 3.5rem;
    margin-bottom: 0.85rem;
  }

  #detail-usps .detail-usps-item__icon svg {
    width: 1.7rem;
    height: 1.7rem;
  }

  #detail-usps .detail-usps-item__rule {
    margin-bottom: 0.75rem;
  }

  #detail-usps .detail-usps-item__num {
    font-size: 2.05rem;
    margin-bottom: 0.65rem;
  }

  #detail-usps .detail-usps-item__label {
    font-size: 0.98rem;
    line-height: 1.38;
  }

  /* Resumen — 3 columns (overrides 08-detail 1-col from 768px) */
  #detail-features .detail-summary-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #detail-features .detail-summary-item:not(:nth-child(3n)) {
    border-inline-end: 1px solid var(--facts-item-divider);
  }

  /* Resumen values — match Características row label typography */
  #detail-features .detail-summary-value {
    font-size: var(--text-list-primary);
    font-weight: var(--fw-semibold);
    line-height: 1.35;
    color: var(--color-text);
  }

  /* Características — same card grid as Resumen (per group table) */
  #detail-amenities .detail-amenities-table {
    padding: 0;
    border-radius: var(--facts-rail-radius);
    background: var(--semantic-card-facts-well);
    border: 1px solid var(--facts-item-divider);
    overflow: visible;
    box-sizing: border-box;
  }

  #detail-amenities .detail-amenities-table tbody {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    width: 100%;
  }

  #detail-amenities .detail-amenities-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: var(--space-3);
    margin: 0;
    padding: var(--space-4);
    box-sizing: border-box;
    text-align: start;
    border-bottom: 1px solid var(--facts-item-divider);
    grid-template-columns: unset;
  }

  #detail-amenities .detail-amenities-row:not(:nth-child(3n)) {
    border-inline-end: 1px solid var(--facts-item-divider);
  }

  #detail-amenities .detail-amenities-row + .detail-amenities-row .detail-amenities-row__icon,
  #detail-amenities .detail-amenities-row + .detail-amenities-row .detail-amenities-row__label,
  #detail-amenities .detail-amenities-row:nth-child(n + 3) .detail-amenities-row__icon,
  #detail-amenities .detail-amenities-row:nth-child(n + 3) .detail-amenities-row__label {
    border-top: none;
  }

  #detail-amenities .detail-amenities-row__icon {
    width: auto;
    padding: 0;
    vertical-align: middle;
    flex-shrink: 0;
    color: var(--color-accent);
    line-height: 0;
  }

  #detail-amenities .detail-amenities-row__icon svg {
    display: block;
    width: 1.35rem;
    height: 1.35rem;
  }

  #detail-amenities .detail-amenities-row__label {
    padding: 0;
    vertical-align: middle;
  }

  .property-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-12);
  }

  .home-featured-rail__track > .property-card {
    width: min(30vw, 22rem);
  }

  .property-card {
    max-height: none;
    min-height: 0;
    height: auto;
  }

  .property-card .card-media {
    flex: none;
    min-height: 0;
    aspect-ratio: 1 / 1;
  }

  .property-card .card-body {
    max-height: none;
    overflow: visible;
    padding: var(--space-8) var(--space-6);
    gap: var(--space-8);
  }

  .property-card .card-body__link {
    flex: none;
    overflow: visible;
    min-height: 0;
  }

  .property-card .card-footer__cta.btn-primary {
    width: auto;
    min-width: 8rem;
  }

  .hero-inner {
    max-width: 72rem;
    margin-inline: auto;
    padding: var(--space-12) var(--space-4);
  }

  body.page-home .hero-inner {
    position: relative;
    z-index: 2;
    padding-top: var(--space-6);
    padding-bottom: var(--space-12);
    padding-inline: var(--space-4);
  }

  body.page-home .site-home-logo {
    margin-top: max(var(--space-8), env(safe-area-inset-top, 0px));
    margin-left: 0;
    margin-bottom: 0;
  }

  body.page-home .site-home-logo__img {
    max-height: clamp(3.75rem, 5.5vw, 5.25rem);
    max-width: min(100%, 16rem);
  }

  .home-discover-search {
    max-width: 72rem;
    margin-inline: auto;
    margin-top: calc(-1 * var(--space-10));
    margin-bottom: var(--space-10);
  }

  /* Listings toolbar */
  .listings-filter-panel {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: min(32rem, 90vw);
    max-height: 85vh;
    border-radius: var(--app-radius-lg);
  }

  /* Map search: desktop layout from seed file preserved in 17-map-search-app */
  .page-map_search main.container {
    max-width: 88rem;
    margin-inline: auto;
  }

  .site-footer__grid {
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-8);
  }

  .site-footer__region--legal {
    grid-column: 1 / -1;
  }

  .site-nav-group {
    position: relative;
  }

  .site-nav-group__trigger {
    display: flex;
    align-items: center;
    gap: 0.15rem;
  }

  .site-nav-group__toggle {
    width: 1.75rem;
    height: 1.75rem;
    border-radius: var(--app-radius-sm);
    border: 1px solid transparent;
    background: transparent;
    color: var(--color-text-muted);
  }

  .site-nav-group__dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 14rem;
    margin-top: 0.35rem;
    padding: var(--space-2);
    background: color-mix(in srgb, var(--color-bg) 96%, #000);
    border: 1px solid var(--app-glass-border);
    border-radius: var(--app-radius-md);
    box-shadow: var(--app-shadow-lift);
    z-index: 130;
  }

  .site-nav-group__dropdown[hidden] {
    display: none !important;
  }

  .site-nav-group__sub {
    list-style: none;
    margin: 0;
    padding: 0;
  }

  .site-nav-group__child-link {
    display: block;
    padding: var(--space-2) var(--space-3);
    border-radius: var(--app-radius-sm);
    color: var(--color-text-muted);
    font-size: 0.9rem;
  }

  .site-nav-group__child-link:hover {
    color: var(--color-accent);
    background: color-mix(in srgb, var(--color-accent) 8%, transparent);
  }

  .detail-location-body {
    display: flex;
    flex-direction: column;
    gap: var(--space-7);
    align-items: stretch;
  }

  .detail-location-map-wrap {
    margin: 0;
    width: 100%;
    max-width: none;
    order: 0;
  }

  .detail-location-map {
    width: 100%;
    max-height: min(26rem, 42vh);
    height: auto;
    object-fit: contain;
  }

  .detail-location-proximity {
    margin-top: 0;
    width: 100%;
    order: 1;
  }

}

