:root {
  /* Canonical semantic color tokens. Keep aliases below for existing components. */
  --hp-brand-accent: #f20d1b;
  --hp-action-primary: #d70a17;
  --hp-action-primary-hover: #b9000e;
  --hp-action-primary-active: #82000a;
  --hp-favorite-active: var(--hp-action-primary);
  --hp-text-primary: #000000;
  --hp-text-strong: #17191d;
  --hp-text-secondary: #4a4a4a;
  --hp-text-muted: #666b72;
  --hp-text-subtle: #6b7078;
  --hp-text-control: #292d32;
  --hp-text-control-icon: #626870;
  --hp-text-control-label: #1e2430;
  --hp-text-control-strong: #18233a;
  --hp-text-control-muted: #666c73;
  --hp-text-choice: #20283b;
  --hp-text-media-control: #25282d;
  --hp-text-media-icon: #333333;
  --hp-text-view-icon: #707070;
  --hp-text-on-action: #ffffff;
  --hp-text-inverse-muted: #aeb7c2;
  --hp-surface-default: #ffffff;
  --hp-surface-elevated: #ffffff;
  --hp-surface-hover: #f3f3f3;
  --hp-surface-control: #ffffff;
  --hp-surface-icon-hover: #f2f3f4;
  --hp-surface-control-hover: #fafafa;
  --hp-surface-choice: #f0f1f4;
  --hp-surface-option-hover: #f6f7f9;
  --hp-surface-soft: #f3f4f5;
  --hp-surface-muted: #f5f6f7;
  --hp-surface-inverse: #111820;
  --hp-surface-inverse-elevated: #1c252f;
  --hp-surface-selection: #222222;
  --hp-background-subtle: #f3f3f3;
  --hp-background-warm: #e9e2d8;
  --hp-border-default: #dfe2e6;
  --hp-border-strong: #c9c9c9;
  --hp-border-control: #d7dbe2;
  --hp-border-control-hover: #b8bdc3;
  --hp-border-soft: #e8eaed;
  --hp-border-muted: #eceef0;
  --hp-border-popover: #e0e3e8;
  --hp-border-divider: #e5e7eb;
  --hp-border-inverse: rgb(255 255 255 / 14%);
  --hp-focus-ring: #f20d1b;
  --hp-focus: var(--hp-focus-ring);
  --hp-focus-ring-subtle: rgb(242 13 27 / 22%);
  --hp-focus-ring-medium: rgb(242 13 27 / 28%);
  --hp-focus-ring-soft: rgb(242 13 27 / 30%);
  --hp-focus-ring-strong: rgb(242 13 27 / 34%);
  --hp-status-error: #b9000e;
  --hp-action-option-hover: #b90012;
  --hp-status-success: #176b3a;
  --hp-status-warning: #9b6b00;
  --hp-status-info: #1d5fa7;
  --hp-overlay: rgb(0 0 0 / 56%);
  --hp-overlay-control: rgb(255 255 255 / 90%);
  --hp-overlay-dark: rgb(18 21 24 / 72%);
  --hp-surface-media-control: rgb(255 255 255 / 76%);
  --hp-surface-media-control-hover: rgb(255 255 255 / 94%);
  --hp-border-media-control: rgb(255 255 255 / 58%);
  --hp-border-image-counter: rgb(255 255 255 / 24%);
  --hp-badge-accent: rgb(215 10 23 / 94%);
  --hp-badge-success: rgb(23 107 58 / 94%);
  --hp-badge-neutral: rgb(13 34 40 / 88%);
  --hp-shadow-1: 0 6px 18px -4px rgb(0 0 0 / 8%);
  --hp-shadow-2: 0 14px 36px -12px rgb(0 0 0 / 22%);
  --hp-shadow-control: 0 4px 14px rgb(0 0 0 / 12%);
  --hp-shadow-badge: 0 2px 8px rgb(0 0 0 / 18%);
  --hp-shadow-card: 0 10px 30px rgb(26 31 28 / 9%);
  --hp-shadow-card-hover: 0 16px 38px rgb(26 31 28 / 13%);
  --hp-shadow-popover: 0 20px 46px rgb(13 24 42 / 22%);
  --hp-shadow-action: 0 10px 22px rgb(215 10 23 / 19%);
  --hp-shadow-media-control: 0 2px 8px rgb(0 0 0 / 14%);

  --hp-spacing-2: 2px;
  --hp-spacing-4: 4px;
  --hp-spacing-6: 6px;
  --hp-spacing-8: 8px;
  --hp-spacing-10: 10px;
  --hp-spacing-12: 12px;
  --hp-spacing-16: 16px;
  --hp-spacing-20: 20px;
  --hp-spacing-24: 24px;
  --hp-spacing-32: 32px;
  --hp-spacing-40: 40px;
  --hp-spacing-48: 48px;
  --hp-spacing-64: 64px;
  --hp-spacing-80: 80px;
  --hp-spacing-96: 96px;

  --hp-radius-badge: 6px;
  --hp-radius-small: 8px;
  --hp-radius-control: 10px;
  --hp-radius-card: 12px;
  --hp-radius-large: 16px;
  --hp-radius-panel: 24px;
  --hp-radius-pill: 999px;
  --hp-size-control-small: 36px;
  --hp-size-control-default: 48px;
  --hp-size-control-large: 52px;
  --hp-size-icon-button: 44px;
  --hp-size-card-media-control: 27px;
  --hp-size-card-media-control-compact: 24px;
  --hp-size-card-media-icon: 13px;
  --hp-size-card-media-icon-compact: 12px;
  --hp-size-card-favorite-icon: 18px;
  --hp-size-card-favorite-icon-compact: 16px;
  --hp-card-content-padding: var(--hp-spacing-16);
  --hp-card-content-gap: var(--hp-spacing-16);
  --hp-card-metadata-gap: var(--hp-spacing-12);
  --hp-card-title-size: var(--hp-font-size-body-large);
  --hp-card-price-size: var(--hp-font-size-heading-4);
  --hp-card-detail-size: var(--hp-font-size-small);
  --hp-card-compact-title-size: var(--hp-font-size-small);
  --hp-card-compact-price-size: var(--hp-font-size-body);
  --hp-card-compact-detail-size: var(--hp-font-size-caption);
  --hp-card-media-ratio: 5 / 4;
  --hp-card-counter-height: var(--hp-spacing-24);
  --hp-card-counter-compact-height: 22px;
  --hp-card-media-control-opacity: .9;
  --hp-card-media-control-hover-opacity: 1;
  --hp-field-label-gap: var(--hp-spacing-8);
  --hp-field-helper-gap: var(--hp-spacing-6);
  --hp-form-field-gap: var(--hp-spacing-16);
  --hp-form-row-gap: var(--hp-spacing-16);
  --hp-form-column-gap: var(--hp-spacing-16);
  --hp-form-section-gap: var(--hp-spacing-24);
  --hp-form-padding: var(--hp-spacing-24);
  --hp-control-padding: var(--hp-spacing-12);
  --hp-chip-gap: var(--hp-spacing-8);
  --hp-dropdown-section-gap: var(--hp-spacing-16);
  --hp-dropdown-options-action-gap: var(--hp-spacing-16);

  --hp-font-size-caption: 12px;
  --hp-font-size-label: 13px;
  --hp-font-size-small: 14px;
  --hp-font-size-body: 16px;
  --hp-font-size-body-large: 18px;
  --hp-font-size-heading-4: 20px;
  --hp-font-size-heading-3: 24px;
  --hp-font-size-heading-2: 32px;
  --hp-font-size-heading-1: 40px;
  --hp-font-size-display: 48px;
  --hp-line-height-caption: 18px;
  --hp-line-height-small: 20px;
  --hp-line-height-body: 24px;
  --hp-line-height-large: 28px;
  --hp-line-height-heading: 32px;
  --hp-font-weight-regular: 400;
  --hp-font-weight-medium: 500;
  --hp-font-weight-semibold: 600;
  --hp-font-weight-strong: 650;
  --hp-font-weight-bold: 700;
  --hp-font-weight-heavy: 720;

  --hp-page-gutter: 60px;
  --hp-content-max: 1320px;
  --hp-header-height: 80px;
  --hp-card-gap: 24px;
  --hp-section-spacing: 64px;
  --hp-font-ui: "Noto Sans", "Noto Sans Thai", Arial, sans-serif;
  color-scheme: light;
}

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

html {
  min-width: 0;
  overflow-x: clip;
  scroll-behavior: smooth;
  text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}

body {
  min-width: 0;
  min-height: 100vh;
  margin: 0;
  overflow-x: clip;
  background: var(--hp-surface-default);
  color: var(--hp-text-primary);
  font-family: var(--hp-font-ui);
  font-size: var(--hp-font-size-body);
  font-weight: var(--hp-font-weight-regular);
  line-height: var(--hp-line-height-body);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

body[data-locale="th"],
:lang(th) {
  font-family: "Noto Sans Thai", "Noto Sans", Arial, sans-serif;
}

body.drawer-open,
body.is-scroll-locked {
  overflow: hidden;
  overscroll-behavior: none;
}

main,
header,
footer,
section,
article,
aside,
nav,
form,
fieldset,
div {
  min-width: 0;
}

main {
  display: block;
}

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

img {
  height: auto;
}

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

button,
select,
summary {
  cursor: pointer;
}

button {
  border: 0;
}

a {
  color: inherit;
  text-decoration: none;
}

p,
h1,
h2,
h3,
h4,
h5,
h6,
ol,
ul,
dl,
dd,
figure,
blockquote,
fieldset {
  margin: 0;
}

ol,
ul {
  padding: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: var(--hp-font-weight-semibold);
  text-wrap: balance;
}

h1,
.type-h1 {
  font-size: var(--hp-font-size-heading-1);
  line-height: 48px;
}

h2,
.type-h2 {
  font-size: var(--hp-font-size-heading-2);
  line-height: 40px;
}

h3,
.type-h3 {
  font-size: var(--hp-font-size-heading-3);
  line-height: var(--hp-line-height-heading);
}

h4,
.type-h4 {
  font-size: var(--hp-font-size-heading-4);
  line-height: var(--hp-line-height-large);
}

.display,
.hero__title,
.home-hero h1 {
  font-size: var(--hp-font-size-display);
  font-weight: var(--hp-font-weight-semibold);
  line-height: 56px;
}

.body-large,
.hero__lead,
.page-hero__lead,
.entity-hero__lead {
  font-size: var(--hp-font-size-body-large);
  line-height: var(--hp-line-height-large);
}

.small,
.helper,
.meta {
  font-size: 14px;
  line-height: 20px;
}

.label,
.eyebrow,
.status-label {
  font-size: 13px;
  font-weight: 600;
  line-height: 18px;
}

.eyebrow {
  color: var(--hp-brand-accent);
  letter-spacing: 0;
  text-transform: uppercase;
}

.muted {
  color: var(--hp-text-muted);
}

.secondary-text {
  color: var(--hp-text-secondary);
}

/* Attached Tabs: shared with Admin by design:sync. */
.attached-tabset { isolation:isolate; min-width:0; }
.attached-tabs { position:relative; z-index:1; display:flex; align-items:end; overflow-x:auto; padding:var(--hp-spacing-4) var(--hp-spacing-24) 0; scrollbar-width:none; }
.attached-tabs::-webkit-scrollbar { display:none; }
.attached-tab { position:relative; display:inline-flex; flex:1 0 auto; align-items:center; justify-content:center; gap:var(--hp-spacing-12); min-width:calc(var(--hp-size-control-default) * 3); min-height:calc(var(--hp-spacing-64) - var(--hp-spacing-2)); padding:var(--hp-spacing-16) var(--hp-spacing-24); border:1px solid var(--hp-border-soft); border-bottom:0; border-radius:var(--hp-radius-panel) var(--hp-radius-panel) 0 0; background:var(--hp-surface-muted); color:var(--hp-text-strong); font-family:var(--hp-font-ui); font-size:var(--hp-font-size-small); font-weight:var(--hp-font-weight-semibold); line-height:var(--hp-line-height-small); text-decoration:none; white-space:nowrap; cursor:pointer; }
.attached-tab .ui-icon { flex:none; width:var(--hp-spacing-24); height:var(--hp-spacing-24); }
.attached-tab:not(:disabled):not([aria-disabled="true"]):not([aria-selected="true"]):not([aria-current="page"]):hover { background:color-mix(in srgb, var(--hp-action-primary) 6%, var(--hp-surface-default)); color:var(--hp-action-primary); }
.attached-tab:is([aria-selected="true"], [aria-current="page"]) { z-index:1; min-height:var(--hp-spacing-64); border-color:transparent; background:var(--hp-surface-elevated); color:var(--hp-action-primary); }
/* The two radius-sized cutouts form concave feet, joining the white panel without an overlap seam. */
.attached-tab:is([aria-selected="true"], [aria-current="page"])::before,
.attached-tab:is([aria-selected="true"], [aria-current="page"])::after { content:""; position:absolute; bottom:0; width:var(--hp-radius-large); height:var(--hp-radius-large); pointer-events:none; }
.attached-tab:is([aria-selected="true"], [aria-current="page"])::before { left:calc(0px - var(--hp-radius-large)); background:radial-gradient(circle at 0 0, transparent var(--hp-radius-large), var(--hp-surface-elevated) var(--hp-radius-large)); }
.attached-tab:is([aria-selected="true"], [aria-current="page"])::after { right:calc(0px - var(--hp-radius-large)); background:radial-gradient(circle at 100% 0, transparent var(--hp-radius-large), var(--hp-surface-elevated) var(--hp-radius-large)); }
.attached-tab:is([aria-selected="true"], [aria-current="page"]):hover { background:var(--hp-surface-elevated); }
.attached-tab:focus-visible, .attached-tab-panel:focus-visible { outline:3px solid var(--hp-focus-ring-subtle); outline-offset:-3px; }
.attached-tab:is(:disabled, [aria-disabled="true"]) { color:var(--hp-text-muted); background:var(--hp-surface-soft); opacity:.55; cursor:not-allowed; }
.attached-tab-panel { padding:var(--hp-form-padding); border-radius:var(--hp-radius-panel); background:var(--hp-surface-elevated); box-shadow:var(--hp-shadow-1); }
.attached-tab-panel[hidden] { display:none; }
@media (max-width:768px) { .attached-tabs { padding-inline:var(--hp-spacing-16); } .attached-tab-panel { padding:var(--hp-spacing-16); } }
.attached-tabset--secondary > .attached-tabs { padding-inline:var(--hp-spacing-16); gap:var(--hp-spacing-4); }
.attached-tabset--secondary > .attached-tabs > .attached-tab { flex:0 0 auto; min-width:0; min-height:var(--hp-size-control-small); padding:var(--hp-spacing-8) var(--hp-spacing-16); font-size:var(--hp-font-size-label); border-radius:var(--hp-radius-large) var(--hp-radius-large) 0 0; }
.attached-tabset--secondary > .attached-tab-panel { padding:var(--hp-spacing-16); border-radius:var(--hp-radius-large); box-shadow:none; }
/* Approved underline variant: shared by Property sections and description languages. */
.attached-tabset--underlined > .attached-tabs { flex-wrap:wrap; overflow:visible; padding:0; gap:var(--hp-spacing-4); }
.attached-tabset--underlined > .attached-tabs > .attached-tab { flex:1 0 auto; min-width:0; min-height:var(--hp-size-control-default); padding:var(--hp-spacing-12) var(--hp-spacing-16); border-radius:var(--hp-radius-control) var(--hp-radius-control) 0 0; border-bottom:var(--hp-spacing-2) solid transparent; }
.attached-tabset--underlined > .attached-tabs > .attached-tab:is([aria-selected="true"], [aria-current="page"]) { border-bottom-color:var(--hp-action-primary); }
.attached-tabset--underlined > .attached-tabs > .attached-tab::before,
.attached-tabset--underlined > .attached-tabs > .attached-tab::after { content:none; }
.attached-tabset--underlined > .attached-tab-panel { border-radius:0 0 var(--hp-radius-panel) var(--hp-radius-panel); }
.attached-tabset--secondary.attached-tabset--underlined > .attached-tabs { border-bottom:1px solid var(--hp-border-divider); }
.attached-tabset--secondary.attached-tabset--underlined > .attached-tabs > .attached-tab { flex:0 1 auto; border:0; border-bottom:var(--hp-spacing-2) solid transparent; background:transparent; }
.attached-tabset--secondary.attached-tabset--underlined > .attached-tabs > .attached-tab[aria-selected="true"] { border-bottom-color:var(--hp-action-primary); }
.attached-tabset--secondary.attached-tabset--underlined > .attached-tab-panel { padding:var(--hp-spacing-12) 0 0; border-radius:0; }
.attached-tab .language-flag { width:var(--hp-spacing-24); height:var(--hp-spacing-16); margin-inline-end:var(--hp-spacing-8); vertical-align:middle; }
/* End Attached Tabs. */

.page-width {
  width: 100%;
  max-width: calc(var(--hp-content-max) + (var(--hp-page-gutter) * 2));
  margin-inline: auto;
  padding-inline: var(--hp-page-gutter);
}

.narrow-width {
  width: min(100%, 960px);
}

.flow > * + * {
  margin-top: var(--flow-space, 24px);
}

.cluster {
  display: flex;
  flex-wrap: wrap;
  gap: var(--cluster-gap, 12px);
  align-items: center;
}

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

[hidden] {
  display: none !important;
}

.skip-link {
  position: fixed;
  z-index: 2000;
  top: 8px;
  left: max(8px, env(safe-area-inset-left));
  padding: 12px 16px;
  border-radius: var(--hp-radius-control);
  background: var(--hp-text-primary);
  color: var(--hp-text-on-action);
  font-size: 15px;
  font-weight: 600;
  line-height: 20px;
  transform: translateY(-160%);
}

.skip-link:focus {
  transform: translateY(0);
}

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid var(--hp-focus-ring);
  outline-offset: 2px;
}

::selection {
  background: var(--hp-brand-accent);
  color: var(--hp-text-on-action);
}

/* Header */
.site-header {
  position: relative;
  z-index: 100;
  height: var(--hp-header-height);
  background: var(--hp-surface-default);
}

.site-header__row {
  display: flex;
  height: calc(var(--hp-header-height) - 1px);
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.site-header__left,
.site-header__utilities,
.primary-nav,
.saved-link {
  display: flex;
  align-items: center;
}

.site-header__left {
  gap: 18px;
  overflow: hidden;
}

.site-header__utilities {
  flex: 0 0 auto;
  gap: 12px;
}

.brand {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
}

.brand--desktop {
  width: 136px;
  height: 61px;
}

.brand--desktop img {
  width: 136px;
  height: 61px;
}

.brand--mobile {
  display: none;
}

.primary-nav {
  gap: 22px;
  white-space: nowrap;
}

.primary-nav a,
.saved-link,
.mobile-nav a {
  font-size: var(--hp-font-size-small);
  font-weight: 600;
  line-height: 20px;
}

.primary-nav a,
.mobile-nav a,
.site-footer a,
.section-header__action,
.card-action,
.text-action {
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}

.primary-nav a:hover,
.primary-nav a[aria-current="page"],
.site-footer a:hover,
.mobile-nav a:hover,
.mobile-nav a[aria-current="page"] {
  text-decoration: underline;
}

.saved-link {
  width: 68px;
  height: 44px;
  justify-content: center;
  gap: 4px;
  font-size: 13px;
  line-height: 18px;
}

.saved-link__icon,
.saved-link__icon img,
.menu-button__icon,
.menu-button__icon img {
  width: 24px;
  height: 24px;
}

.locale-selector {
  position: relative;
  width: 112px;
}

.locale-selector summary {
  display: flex;
  width: 112px;
  list-style: none;
  align-items: center;
  justify-content: space-between;
  white-space: nowrap;
  cursor: pointer;
}

.locale-selector__current {
  display: inline-flex;
  align-items: center;
}

.locale-selector__chevron {
  transition: transform 160ms ease;
}

.locale-selector summary::-webkit-details-marker {
  display: none;
}

.locale-selector[open] .locale-selector__chevron {
  transform: rotate(180deg);
}

.locale-selector .locale-links {
  position: absolute;
  z-index: 20;
  top: calc(100% + 8px);
  right: 0;
  display: grid;
  width: 168px;
}

.locale-selector .locale-links a {
  display: flex;
  align-items: center;
  text-decoration: none;
}

.site-header__line {
  height: 1px;
  background: var(--hp-border-default);
}

.menu-button,
.icon-button,
.favorite-button {
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  height: var(--hp-size-icon-button);
  background: transparent;
}

.menu-button {
  display: inline-flex;
  width: auto;
  min-width: 104px;
  gap: var(--hp-spacing-8);
  padding: 0 var(--hp-spacing-16);
  border: 1px solid var(--hp-border-default);
  border-radius: var(--hp-radius-control);
  font-size: var(--hp-font-size-label);
  font-weight: 700;
  line-height: 18px;
  text-transform: uppercase;
}

.icon-button,
.favorite-button {
  display: inline-flex;
  width: var(--hp-size-icon-button);
  padding: 0;
  border-radius: var(--hp-radius-pill);
}

.icon-button:hover,
.menu-button:hover {
  background: var(--hp-background-subtle);
}

.icon-button > span {
  font-size: var(--hp-font-size-heading-2);
  font-weight: 400;
  line-height: 1;
}

/* Buttons and text actions */
.button {
  display: inline-flex;
  min-width: 0;
  min-height: var(--hp-size-control-default);
  align-items: center;
  justify-content: center;
  gap: var(--hp-spacing-8);
  padding: var(--hp-spacing-12) var(--hp-spacing-24);
  border: 1px solid transparent;
  border-radius: var(--hp-radius-control);
  font-size: var(--hp-font-size-small);
  font-weight: var(--hp-font-weight-semibold);
  line-height: var(--hp-line-height-small);
  text-align: center;
  white-space: nowrap;
  transition: background 160ms ease, border-color 160ms ease, color 160ms ease;
}

.button--large,
.button.is-large {
  min-height: var(--hp-size-control-large);
  padding-inline: var(--hp-spacing-32);
}

.button--primary {
  background: var(--hp-action-primary);
  color: var(--hp-text-on-action);
}

.button--primary:hover {
  background: var(--hp-action-primary-hover);
}

.button--primary:active {
  background: var(--hp-action-primary-active);
}

.button--secondary {
  border-color: var(--hp-border-strong);
  background: var(--hp-surface-default);
  color: var(--hp-text-primary);
}

.button--secondary:hover {
  background: var(--hp-surface-hover);
}

.button--tertiary,
.button--text {
  min-width: 0;
  border-color: transparent;
  background: transparent;
  color: var(--hp-text-primary);
}

.button--tertiary:hover,
.button--text:hover {
  background: var(--hp-surface-hover);
}

.button:disabled,
.button[aria-disabled="true"] {
  pointer-events: none;
  border-color: var(--hp-border-default);
  background: var(--hp-background-subtle);
  color: var(--hp-text-muted);
  opacity: 0.72;
}

.text-action {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  padding: 0;
  background: transparent;
  color: var(--hp-brand-accent);
  font-size: var(--hp-font-size-small);
  font-weight: 600;
  line-height: 20px;
}

.text-action:hover {
  text-decoration: underline;
}

/* Forms */

.filter-chip {
  display: inline-flex;
  min-height: 36px;
  align-items: center;
  gap: var(--hp-spacing-8);
  padding: var(--hp-spacing-6) var(--hp-spacing-12);
  border: 1px solid var(--hp-border-default);
  border-radius: var(--hp-radius-pill);
  background: var(--hp-surface-default);
  color: var(--hp-text-secondary);
  font-size: var(--hp-font-size-small);
  line-height: 20px;
  white-space: nowrap;
}

.filter-chip:hover {
  border-color: var(--hp-border-strong);
  background: var(--hp-background-subtle);
}

/* Drawers */
.drawer {
  position: fixed;
  z-index: 1000;
  inset: 0;
  display: block;
}

.drawer__scrim {
  position: absolute;
  inset: 0;
  background: var(--hp-overlay);
}

.drawer__panel {
  position: absolute;
  z-index: 1;
  top: 0;
  right: 0;
  display: flex;
  width: min(480px, 100%);
  height: 100dvh;
  flex-direction: column;
  overflow: hidden;
  padding-top: env(safe-area-inset-top);
  padding-right: env(safe-area-inset-right);
  padding-bottom: env(safe-area-inset-bottom);
  background: var(--hp-surface-elevated);
  box-shadow: var(--hp-shadow-2);
  animation: drawer-in 180ms ease-out;
}

.drawer--menu .drawer__panel {
  right: auto;
  left: 0;
  width: min(460px, 100%);
  padding-right: 0;
  animation-name: menu-drawer-in;
}

.drawer__header {
  display: flex;
  min-height: 72px;
  flex: 0 0 auto;
  align-items: center;
  justify-content: space-between;
  gap: var(--hp-spacing-16);
  padding: var(--hp-spacing-12) var(--hp-spacing-24);
  border-bottom: 1px solid var(--hp-border-default);
}

.drawer--menu .drawer__header {
  padding-right: var(--hp-spacing-24);
  padding-left: max(var(--hp-spacing-24), env(safe-area-inset-left));
}

.brand--menu,
.brand--menu img {
  width: 104px;
  height: 47px;
}

.menu-drawer__scroll {
  min-height: 0;
  flex: 1 1 auto;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: var(--hp-spacing-24) max(var(--hp-spacing-24), env(safe-area-inset-right)) var(--hp-spacing-20) max(var(--hp-spacing-24), env(safe-area-inset-left));
}

.menu-navigation {
  display: grid;
  gap: var(--hp-spacing-24);
}

.menu-group {
  display: grid;
  gap: var(--hp-spacing-10);
}

.menu-group h3 {
  color: var(--hp-text-muted);
  font-size: var(--hp-font-size-caption);
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 18px;
  text-transform: uppercase;
}

.menu-group__links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--hp-spacing-4) var(--hp-spacing-12);
}

.menu-group__links a {
  display: flex;
  min-height: 44px;
  align-items: center;
  padding: var(--hp-spacing-8) var(--hp-spacing-10);
  border-radius: var(--hp-radius-small);
  font-size: var(--hp-font-size-small);
  font-weight: 600;
  line-height: 20px;
}

.menu-group__links a:hover,
.menu-group__links a[aria-current="page"] {
  background: var(--hp-background-subtle);
  color: var(--hp-brand-accent);
}

.menu-drawer__footer {
  display: grid;
  gap: var(--hp-spacing-12);
  margin-top: var(--hp-spacing-20);
  padding-block: var(--hp-spacing-20);
  border-top: 1px solid var(--hp-border-default);
  background: var(--hp-surface-elevated);
}

.menu-drawer__cta {
  width: 100%;
}

.mobile-menu__scope {
  padding: 0;
  color: var(--hp-text-muted);
  font-size: var(--hp-font-size-caption);
  line-height: 18px;
  text-align: center;
}

.drawer__scroll {
  min-height: 0;
  flex: 1 1 auto;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: var(--hp-spacing-24);
}

@keyframes drawer-in {
  from {
    transform: translateX(24px);
    opacity: 0;
  }
}

@keyframes menu-drawer-in {
  from {
    transform: translateX(-24px);
    opacity: 0;
  }
}

/* Cards */
.media-placeholder {
  display: flex;
  width: 100%;
  height: 100%;
  align-items: center;
  justify-content: center;
  padding: 20px;
  color: var(--hp-text-muted);
  font-size: 13px;
  line-height: 18px;
  text-align: center;
  white-space: pre-line;
}

.media-placeholder--warm {
  background: var(--hp-background-warm);
}

.media-placeholder--subtle {
  background: var(--hp-background-subtle);
}

.media-placeholder--dark {
  background: var(--hp-text-secondary);
  color: var(--hp-text-on-action);
}

.property-card,
.area-card,
.project-card,
.guide-card {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--hp-border-default);
  border-radius: var(--hp-radius-card);
  background: var(--hp-surface-default);
}

.area-card {
  cursor: pointer;
}

.property-card:hover,
.area-card:hover,
.project-card:hover,
.guide-card:hover {
  border-color: var(--hp-border-strong);
  box-shadow: var(--hp-shadow-1);
}

.property-card {
  display: flex;
  width: 100%;
  max-width: 424px;
  flex-direction: column;
  border-radius: var(--hp-radius-large);
  box-shadow: var(--hp-shadow-card);
  transition: transform 180ms ease, box-shadow 180ms ease;
}

.property-card__media {
  position: relative;
  width: 100%;
  aspect-ratio: var(--hp-card-media-ratio);
  flex: 0 0 auto;
  overflow: hidden;
  background: var(--hp-background-warm);
}

.property-card__media > a,
.property-card__media > a > img,
.property-card__media > a > .media-placeholder {
  display: block;
  width: 100%;
  height: 100%;
}

.property-card__media > a > .media-placeholder {
  display: flex;
}

.property-card__media img {
  object-fit: cover;
  transition: transform 240ms ease;
}

.property-badges {
  position: absolute;
  z-index: 4;
  top: 16px;
  left: 16px;
  display: flex;
  max-width: calc(100% - 80px);
  margin: 0;
  padding: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  list-style: none;
  pointer-events: none;
}

/* Dictionary Badge: shared public/admin primitive. */
.property-badge {
  position: relative;
  overflow: hidden;
  display: inline-flex;
  min-height: 28px;
  align-items: center;
  padding: 5px 10px;
  border-radius: var(--hp-radius-badge);
  color: var(--hp-text-on-action);
  font-size: var(--hp-font-size-caption);
  font-weight: 700;
  line-height: var(--hp-line-height-caption);
  box-shadow: var(--hp-shadow-badge);
}

.property-badge__background { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.property-badge__label { position:relative; }
.property-badge--light-text { color:#fff; }
.property-badge--dark-text { color:#000; }
/* End Dictionary Badge. */

.property-badges--gallery {
  max-width: calc(66.66% - 48px);
}

.favorite-button {
  position: absolute;
  z-index: 3;
  top: 16px;
  right: 16px;
  border: 1px solid var(--hp-border-default);
  background: var(--hp-surface-elevated);
}

.favorite-button:hover,
.favorite-button[aria-pressed="true"] {
  border-color: var(--hp-brand-accent);
  background: var(--hp-background-subtle);
}

.favorite-button__icon {
  width: 24px;
  height: 24px;
}

.property-card__content {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--hp-card-content-gap);
  padding: var(--hp-card-content-padding);
}

.property-card__summary {
  display: grid;
  gap: var(--hp-spacing-4);
}

.property-card__pricing {
  display: grid;
  gap: var(--hp-spacing-2);
  min-width: 0;
}

.property-card__price {
  color: var(--hp-text-strong);
  font-size: var(--hp-card-price-size);
  font-variant-numeric: tabular-nums;
  font-weight: var(--hp-font-weight-semibold);
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.property-card__title {
  min-width: 0;
  overflow: hidden;
  font-size: var(--hp-card-title-size);
  font-weight: var(--hp-font-weight-semibold);
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.property-card__title a {
  display: block;
  min-width: 0;
  overflow: hidden;
  color: inherit;
  text-overflow: ellipsis;
  text-decoration: none;
  white-space: nowrap;
}

.property-card__title a::after,
.area-card__content h3 a::after {
  position: absolute;
  content: "";
  inset: 0;
  z-index: 1;
}

.property-card__title a:focus-visible {
  border-radius: var(--hp-radius-small);
  outline: 3px solid var(--hp-focus-ring-subtle);
  outline-offset: var(--hp-spacing-2);
}

.property-card__area {
  display: flex;
  min-width: 0;
  align-items: flex-start;
  gap: var(--hp-spacing-6);
  color: var(--hp-text-secondary);
  font-size: var(--hp-card-detail-size);
  line-height: var(--hp-line-height-small);
}

.property-card__area .ui-icon {
  width: var(--hp-spacing-16);
  height: var(--hp-line-height-small);
  color: var(--hp-text-muted);
}

.property-card__area span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.property-card__unit-price {
  display: block;
  color: var(--hp-text-muted);
  font-size: var(--hp-card-detail-size);
  font-variant-numeric: tabular-nums;
  line-height: var(--hp-line-height-small);
  overflow-wrap: anywhere;
}

.property-card__metadata {
  display: grid;
  gap: var(--hp-card-metadata-gap);
}

.property-card__facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: flex-start;
  gap: var(--hp-spacing-8);
  color: var(--hp-text-secondary);
  font-size: var(--hp-card-detail-size);
  line-height: var(--hp-line-height-small);
  list-style: none;
}

.property-card__facts--secondary {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.card-fact {
  display: inline-flex;
  min-width: 0;
  width: 100%;
  max-width: 100%;
  align-items: flex-start;
  gap: var(--hp-spacing-6);
}

.card-fact svg {
  width: var(--hp-spacing-16);
  height: var(--hp-line-height-small);
  flex: 0 0 auto;
  color: var(--hp-text-muted);
}

.card-fact span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.property-card__old-price {
  display: block;
  margin: 0 0 var(--hp-spacing-2);
  color: var(--hp-text-muted);
  font-size: var(--hp-font-size-small);
  font-variant-numeric: tabular-nums;
  line-height: var(--hp-line-height-small);
}

.property-card__rent,
.property-card__reduction {
  margin: var(--hp-spacing-2) 0 0;
  font-size: var(--hp-font-size-caption);
  line-height: var(--hp-line-height-caption);
}

.property-card__rent {
  color: var(--hp-text-secondary);
  font-variant-numeric: tabular-nums;
}

.property-card__reduction {
  color: var(--hp-status-error);
}

.property-card .favorite-button {
  position: absolute;
  z-index: 4;
}

.property-card--unavailable .property-card__media {
  filter: grayscale(1);
  opacity: 0.72;
}

.property-card--unavailable .status-label {
  color: var(--hp-status-error);
}

.property-card__media > a:focus-visible {
  outline: 3px solid var(--hp-focus-ring-strong);
  outline-offset: calc(var(--hp-spacing-4) * -1);
}

@media (hover: hover) and (pointer: fine) {
  .property-card:hover {
    transform: translateY(calc(var(--hp-spacing-2) * -1));
  }

  .property-card .card-gallery-arrow {
    opacity: 0.78;
  }

  .property-card:hover .property-card__media img {
    transform: scale(1.015);
  }

  .property-card:hover .card-gallery-arrow,
  .property-card .card-gallery-arrow:focus-visible {
    opacity: 1;
  }
}

.area-card {
  display: flex;
  min-height: 288px;
  flex-direction: column;
}

.area-card__media {
  position: relative;
  display: block;
  width: 100%;
  height: 176px;
  flex: 0 0 auto;
  overflow: hidden;
  background: var(--hp-background-warm);
}

.area-card__media img,
.project-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.area-card__content {
  position: relative;
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 8px;
  padding: 16px;
}

.area-card__content h3 {
  font-size: 24px;
  font-weight: 600;
  line-height: 32px;
}

.area-card__content > p {
  color: var(--hp-text-secondary);
  font-size: 14px;
  line-height: 20px;
}

.area-card__content .area-card__meta {
  color: var(--hp-text-muted);
  font-size: 13px;
  line-height: 18px;
}

.project-card {
  display: flex;
  width: 100%;
  min-width: 0;
  flex-direction: column;
  border-radius: 22px;
  box-shadow: 0 10px 30px rgb(29 51 42 / 7%);
}

.project-card__media {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--hp-background-subtle);
}

.project-card__media > a,
.project-card__media > a > img,
.project-card__media > a > .media-placeholder {
  display: block;
  width: 100%;
  height: 100%;
}

.project-card__media > a > .media-placeholder {
  display: flex;
}

.project-card__media img {
  transition: transform 220ms ease;
}

.project-card:hover .project-card__media img {
  transform: scale(1.018);
}

.project-card__content {
  position: relative;
  display: flex;
  min-width: 0;
  flex: 1 1 auto;
  flex-direction: column;
  padding: 22px;
}

.project-card__price {
  min-height: 35px;
  margin: 0 0 14px;
  color: var(--hp-text-primary);
  font-size: clamp(24px, 2.2vw, 30px);
  font-weight: 720;
  letter-spacing: -.025em;
  line-height: 1.15;
}

.project-card__identity {
  min-width: 0;
  margin-bottom: 20px;
}

.project-card__identity h3 {
  margin: 0 0 5px;
  overflow-wrap: anywhere;
  font-size: 22px;
  font-weight: 650;
  letter-spacing: -.015em;
  line-height: 1.25;
}

.project-card__identity h3 a {
  position: relative;
  z-index: 1;
  color: inherit;
  text-decoration: none;
}

.project-card__identity h3 a:hover {
  text-decoration: underline;
  text-underline-offset: 4px;
}

.project-card__identity p {
  margin: 0;
  color: var(--hp-text-secondary);
  font-size: var(--hp-font-size-small);
  line-height: var(--hp-line-height-small);
}

.project-card__facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 20px;
  margin: 0;
  padding: 0 0 20px;
}

.project-card__facts > div {
  min-width: 0;
}

.project-card__facts dt {
  margin-bottom: 3px;
  color: var(--hp-text-muted);
  font-size: 11px;
  font-weight: 620;
  letter-spacing: .035em;
  line-height: 16px;
  text-transform: uppercase;
}

.project-card__facts dd {
  margin: 0;
  overflow-wrap: anywhere;
  color: var(--hp-text-primary);
  font-size: 14px;
  font-weight: 590;
  line-height: 20px;
}

.project-card__mix {
  padding: 18px 0 20px;
  border-top: 1px solid var(--hp-border-default);
}

.project-card__mix h4 {
  margin: 0 0 12px;
  color: var(--hp-text-secondary);
  font-size: 12px;
  font-weight: 650;
  line-height: 18px;
}

.project-card__mix ul {
  display: grid;
  margin: 0;
  padding: 0;
  gap: 0;
  list-style: none;
}

.project-card__unit {
  display: grid;
  grid-template-columns: minmax(110px, 1.05fr) minmax(78px, .72fr) minmax(105px, .95fr) minmax(88px, .78fr);
  align-items: center;
  gap: var(--hp-spacing-8);
  min-height: 39px;
  padding: 8px 0;
  border-bottom: 1px solid var(--hp-border-default);
}

.project-card__unit:last-child {
  border-bottom: 0;
}

.project-card__unit strong,
.project-card__unit span {
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: 12px;
  line-height: 17px;
}

.project-card__unit strong {
  color: var(--hp-text-primary);
  font-weight: 650;
}

.project-card__unit span {
  color: var(--hp-text-secondary);
}

.project-card__more,
.project-card__unit-empty {
  margin: 8px 0 0;
  color: var(--hp-text-muted);
  font-size: 12px;
  line-height: 18px;
}

.project-card__actions {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr);
  gap: 10px;
  margin-top: auto;
  padding-top: 2px;
}

.project-card__actions .button {
  min-width: 0;
  text-align: center;
}

.project-card--text-only .project-card__media {
  background: linear-gradient(135deg, var(--hp-background-subtle), var(--hp-background-warm));
}

.project-card--compact .project-card__content {
  padding: 18px;
}

.project-card--compact .project-card__price {
  margin-bottom: 10px;
  font-size: 22px;
}

.project-card--compact .project-card__identity {
  margin-bottom: 14px;
}

.project-card--compact .project-card__identity h3 {
  font-size: 19px;
}

.project-card--compact .project-card__facts {
  padding-bottom: 16px;
}

.project-card--compact .project-card__actions {
  grid-template-columns: 1fr;
}

.project-card__media > a:focus-visible,
.project-card__identity h3 a:focus-visible {
  outline: 3px solid var(--hp-focus);
  outline-offset: -3px;
}

@media (max-width: 720px) {
  .project-card__content {
    padding: 18px;
  }

  .project-card__price {
    font-size: 26px;
  }

  .project-card__unit {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 4px 12px;
    padding: 10px 0;
  }

  .project-card__unit > span:nth-of-type(1),
  .project-card__unit > span:nth-of-type(3) {
    text-align: right;
  }

  .project-card__actions {
    grid-template-columns: 1fr;
  }

  .project-card__actions .button {
    width: 100%;
  }
}

.guide-card {
  display: flex;
  min-height: 240px;
  flex-direction: column;
  justify-content: space-between;
  gap: 20px;
  padding: 24px;
}

.guide-card > div {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.guide-card h3 {
  overflow: hidden;
  font-size: 24px;
  line-height: 32px;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.guide-card h3 a::after {
  position: absolute;
  content: "";
  inset: 0;
}

.guide-card > div > p:not(.eyebrow) {
  overflow: hidden;
  color: var(--hp-text-secondary);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.card-action,
.section-header__action {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--hp-brand-accent);
  font-size: 15px;
  font-weight: 600;
  line-height: 20px;
}

.card-action:hover,
.section-header__action:hover {
  text-decoration: underline;
}

.card-action__icon,
.section-header__icon {
  width: 20px;
  height: 20px;
}

/* Reusable sections, grids and rails */
.content-section {
  padding-block: 96px;
}

.content-section--compact {
  padding-block: 64px;
}

.content-section--subtle {
  background: var(--hp-background-subtle);
}

.content-section--warm {
  background: var(--hp-background-warm);
}

.section-header {
  display: flex;
  min-height: 96px;
  align-items: flex-end;
  justify-content: space-between;
  gap: 32px;
  margin-bottom: 32px;
}

.section-header__copy {
  display: flex;
  max-width: 980px;
  flex-direction: column;
  gap: 8px;
}

.section-header__copy h2 {
  font-size: 32px;
  line-height: 40px;
}

.section-header__copy p {
  color: var(--hp-text-secondary);
  font-size: 16px;
  line-height: 24px;
}

.property-grid,
.area-grid,
.building-grid,
.guide-grid,
.card-grid {
  display: grid;
  gap: 24px;
  align-items: stretch;
}

.property-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.property-grid--latest {
  grid-template-columns: repeat(3, minmax(0, 384px));
  justify-content: space-between;
}

.property-grid > .property-card,
.property-grid--latest > .property-card {
  max-width: none;
}

.area-grid,
.building-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.building-grid--compact {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.guide-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.horizontal-rail {
  display: flex;
  gap: 16px;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
  scroll-snap-type: inline proximity;
}

.horizontal-rail > * {
  flex: 0 0 auto;
  scroll-snap-align: start;
}

.process-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
}

.process-card,
.info-card,
.content-card {
  border: 1px solid var(--hp-border-default);
  border-radius: var(--hp-radius-card);
  background: var(--hp-surface-default);
}

.process-card {
  display: grid;
  min-height: 220px;
  align-content: start;
  gap: 12px;
  padding: 24px;
}

.process-card__number,
.process-card .eyebrow {
  color: var(--hp-brand-accent);
  font-size: var(--hp-font-size-label);
  font-weight: var(--hp-font-weight-semibold);
  line-height: var(--hp-line-height-caption);
}

.process-card h3 {
  font-size: 24px;
  line-height: 32px;
}

.process-card p:last-child {
  color: var(--hp-text-secondary);
}

.assistance-cta,
.cta-block {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 48px;
  padding: 48px;
  border: 1px solid var(--hp-border-default);
  border-radius: var(--hp-radius-large);
  background: var(--hp-background-warm);
}

.assistance-cta__copy,
.cta-block__copy {
  display: flex;
  max-width: 820px;
  flex-direction: column;
  gap: 24px;
}

.assistance-cta h2,
.cta-block h2 {
  font-size: 32px;
  line-height: 40px;
}

.assistance-cta p,
.cta-block p {
  font-size: 18px;
  line-height: 28px;
}

/* Hero systems */
.hero,
.home-hero {
  background: var(--hp-surface-default);
}

.hero__inner,
.home-hero__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 120px;
  align-items: center;
  padding-top: 80px;
}

.hero__copy,
.home-hero__copy {
  display: flex;
  max-width: 600px;
  flex-direction: column;
  align-items: flex-start;
  gap: 24px;
}

.hero__media,
.home-hero__media {
  display: grid;
  min-height: 380px;
  grid-template-columns: minmax(0, 384px) minmax(160px, 200px);
  grid-template-rows: 1fr 1fr;
  gap: 16px;
}

.hero__media > :first-child,
.home-hero__media > :first-child {
  grid-row: 1 / -1;
}

.hero-media__item {
  overflow: hidden;
  border-radius: var(--hp-radius-card);
  background: var(--hp-background-warm);
}

.hero-media__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero-search,
.search-panel,
.directory-search {
  display: flex;
  align-items: flex-end;
  gap: 16px;
  padding: 16px;
  border: 1px solid var(--hp-border-default);
  border-radius: var(--hp-radius-large);
  background: var(--hp-surface-elevated);
}

.hero-search {
  margin-top: 48px;
  margin-bottom: 80px;
  box-shadow: var(--hp-shadow-1);
}

.hero-search .button,
.search-panel .button,
.directory-search .button {
  flex: 0 0 200px;
}

.page-hero,
.entity-hero {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 40px;
  border: 1px solid var(--hp-border-default);
  border-radius: var(--hp-radius-large);
  background: var(--hp-background-warm);
}

.page-hero__copy,
.entity-hero__copy {
  display: flex;
  max-width: 960px;
  flex-direction: column;
  gap: 16px;
}

.page-hero h1,
.entity-hero h1 {
  font-size: 40px;
  line-height: 48px;
}

.page-hero p:not(.eyebrow),
.entity-hero p:not(.eyebrow) {
  color: var(--hp-text-secondary);
  font-size: 18px;
  line-height: 28px;
}

.page-main,
.index-page,
.directory-page,
.legal-page,
.saved-page,
.guides-page {
  display: flex;
  flex-direction: column;
  gap: 64px;
  padding-top: 56px;
  padding-bottom: 96px;
}

.breadcrumbs {
  color: var(--hp-text-muted);
  font-size: 14px;
  line-height: 20px;
}

.breadcrumbs ol {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
}

.breadcrumbs li {
  display: flex;
  align-items: center;
}

.breadcrumbs li + li::before {
  content: "/";
  margin-inline: 8px;
  color: var(--hp-border-strong);
}

.breadcrumbs a:hover {
  color: var(--hp-text-primary);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.notice,
.review-notice,
.data-notice {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 28px;
  border: 1px solid var(--hp-border-default);
  border-radius: var(--hp-radius-card);
  background: var(--hp-background-subtle);
}

.notice--warm,
.legal-warning {
  background: var(--hp-background-warm);
}

.notice h2,
.notice h3,
.review-notice h2,
.review-notice h3,
.data-notice h2,
.data-notice h3 {
  font-size: var(--hp-font-size-label);
  font-weight: var(--hp-font-weight-semibold);
  line-height: var(--hp-line-height-caption);
  text-transform: uppercase;
}

.notice p,
.review-notice p,
.data-notice p {
  color: var(--hp-text-secondary);
}

/* Search results */
.search-page,
.results-page {
  padding-top: 56px;
  padding-bottom: 96px;
}

.search-page > *,
.results-page > * {
  margin-bottom: 28px;
}

.search-title-row,
.results-title-row,
.search-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
}

.search-title-copy,
.search-summary__copy {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.search-title-copy p,
.search-summary__copy p {
  color: var(--hp-text-secondary);
}

.sort-button {
  display: inline-flex;
  min-height: var(--hp-size-icon-button);
  align-items: center;
  justify-content: center;
  gap: var(--hp-spacing-8);
  padding: var(--hp-spacing-10) var(--hp-spacing-16);
  border: 1px solid var(--hp-border-default);
  border-radius: var(--hp-radius-control);
  background: var(--hp-surface-default);
  font-size: var(--hp-font-size-label);
  font-weight: 600;
  line-height: 18px;
  white-space: nowrap;
}

.active-filters {
  display: flex;
  flex-wrap: wrap;
  gap: var(--hp-spacing-10);
}

.search-layout {
  display: grid;
  grid-template-columns: 300px minmax(0, 1fr);
  gap: 28px;
  align-items: start;
}

.filter-sidebar,
.search-filter-sidebar,
.filters-panel {
  position: sticky;
  top: 24px;
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 24px;
  border: 1px solid var(--hp-border-default);
  border-radius: var(--hp-radius-card);
  background: var(--hp-surface-default);
}

.filter-sidebar__header,
.filters-panel__header {
  display: flex;
  min-height: 32px;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.filter-sidebar__header h2,
.filters-panel__header h2 {
  font-size: 24px;
  line-height: 32px;
}

.filter-sidebar__reset,
.filters-panel__reset {
  min-height: 44px;
  padding: 0;
  background: transparent;
  color: var(--hp-brand-accent);
  font-size: 13px;
  font-weight: 600;
  line-height: 18px;
}

.filter-sidebar__note,
.filters-panel__note {
  color: var(--hp-text-muted);
  font-size: 13px;
  line-height: 18px;
}

.search-results,
.results-list {
  min-width: 0;
}

.search-results__grid,
.results-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(280px, 384px));
  gap: 24px;
}

.search-results__grid .property-card,
.results-grid .property-card {
  max-width: none;
}

.load-more {
  margin-top: 24px;
}

.mobile-search-controls,
.mobile-results-controls {
  display: none;
}

/* Galleries and detail pages */
.gallery,
.property-gallery,
.entity-gallery {
  display: grid;
  width: 100%;
  height: 520px;
  grid-template-columns: minmax(0, 2fr) minmax(260px, 1fr);
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: 16px;
  overflow: hidden;
  border-radius: var(--hp-radius-large);
}

.gallery__main,
.property-gallery__main,
.entity-gallery__main {
  grid-row: 1 / -1;
}

.gallery__item,
.property-gallery__item,
.entity-gallery__item {
  position: relative;
  overflow: hidden;
  background: var(--hp-background-warm);
}

.gallery__item img,
.property-gallery__item img,
.entity-gallery__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.gallery__controls,
.gallery__count,
.property-gallery__controls {
  position: absolute;
  z-index: 2;
  right: 16px;
  bottom: 16px;
}

.detail-page,
.property-detail-page,
.entity-page {
  padding-top: 32px;
  padding-bottom: 96px;
}

.detail-page > *,
.property-detail-page > *,
.entity-page > * {
  margin-bottom: 40px;
}

.detail-intro,
.property-intro,
.entity-intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px 48px;
  align-items: end;
}

.detail-intro__copy,
.property-intro__copy,
.entity-intro__copy {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.detail-intro__actions,
.property-intro__actions,
.save-share-actions {
  display: flex;
  gap: 12px;
  align-items: center;
}

.detail-price,
.property-price {
  font-size: 32px;
  font-weight: 600;
  line-height: 40px;
}

.quick-facts,
.property-quick-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 24px;
  color: var(--hp-text-secondary);
}

.detail-layout {
  display: grid;
  grid-template-columns: minmax(0, 864px) minmax(340px, 420px);
  gap: 36px;
  align-items: start;
}

.detail-content,
.property-content,
.entity-content {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.detail-section,
.property-section,
.entity-section,
.info-card,
.content-card {
  padding: 28px;
  border: 1px solid var(--hp-border-default);
  border-radius: var(--hp-radius-card);
  background: var(--hp-surface-default);
}

.detail-section,
.property-section,
.entity-section {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.detail-section h2,
.property-section h2,
.entity-section h2,
.info-card h2,
.content-card h2 {
  font-size: 24px;
  line-height: 32px;
}

.detail-section p,
.property-section p,
.entity-section p,
.info-card p,
.content-card p {
  color: var(--hp-text-secondary);
}

.facts-grid,
.property-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 24px;
}

.facts-grid dt,
.property-facts dt {
  color: var(--hp-text-muted);
  font-size: 13px;
  line-height: 18px;
}

.facts-grid dd,
.property-facts dd {
  margin-top: 4px;
  font-size: var(--hp-font-size-body);
  line-height: var(--hp-line-height-body);
}

.map-placeholder,
.location-map {
  display: flex;
  min-height: 320px;
  align-items: center;
  justify-content: center;
  padding: 24px;
  border-radius: var(--hp-radius-control);
  background: var(--hp-background-subtle);
  color: var(--hp-text-muted);
  font-size: 14px;
  line-height: 20px;
  text-align: center;
}

.inquiry-panel {
  position: sticky;
  top: 24px;
}

.inquiry-form {
  display: flex;
  flex-direction: column;
  gap: var(--hp-spacing-16);
  width: 100%;
  padding: var(--hp-spacing-24);
  border: 1px solid var(--hp-border-default);
  border-radius: var(--hp-radius-large);
  background: var(--hp-surface-default);
}

.inquiry-form__heading {
  display: flex;
  flex-direction: column;
  gap: var(--hp-spacing-8);
}

.inquiry-form__heading h2 {
  font-size: var(--hp-font-size-heading-2);
  line-height: 40px;
}

.inquiry-form__heading p {
  color: var(--hp-text-secondary);
}

.inquiry-form__submit {
  width: 100%;
}

.system-fields-note,
.inquiry-form__privacy {
  color: var(--hp-text-muted);
  font-size: var(--hp-font-size-label);
  line-height: 18px;
}

.inquiry-form__status:not(:empty) {
  padding: var(--hp-spacing-12);
  border-radius: var(--hp-radius-control);
  background: var(--hp-background-subtle);
  font-size: var(--hp-font-size-small);
  line-height: 20px;
}

.inquiry-form__status[data-status="error"] {
  color: var(--hp-status-error);
}

.inquiry-form__status[data-status="success"] {
  color: var(--hp-status-success);
}

.drawer--inquiry .drawer__panel {
  width: min(520px, 100%);
}

.drawer--inquiry .drawer__header h2 {
  font-size: var(--hp-font-size-heading-3);
  line-height: 32px;
}

.drawer--inquiry .inquiry-form {
  padding: 0;
  border: 0;
}

.sticky-mobile-cta,
.mobile-sticky-cta {
  display: none;
}

/* Saved, guides, legal and utility templates */
.saved-grid,
.saved-properties-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.saved-toolbar,
.directory-toolbar,
.guides-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.guide-layout,
.article-layout {
  display: grid;
  grid-template-columns: minmax(0, 860px) minmax(240px, 1fr);
  gap: 64px;
  align-items: start;
}

.guide-article,
.legal-article-body,
.prose {
  font-size: 16px;
  line-height: 28px;
}

.guide-article > * + *,
.legal-article-body > * + *,
.prose > * + * {
  margin-top: 24px;
}

.guide-article h2,
.legal-article-body h2,
.prose h2 {
  margin-top: 48px;
  font-size: 32px;
  line-height: 40px;
}

.guide-article h3,
.legal-article-body h3,
.prose h3 {
  margin-top: 32px;
  font-size: 24px;
  line-height: 32px;
}

.guide-article ul,
.guide-article ol,
.legal-article-body ul,
.legal-article-body ol,
.prose ul,
.prose ol {
  padding-left: 24px;
}

.article-sidebar,
.guide-sidebar {
  position: sticky;
  top: 24px;
  padding: 24px;
  border: 1px solid var(--hp-border-default);
  border-radius: var(--hp-radius-card);
  background: var(--hp-background-subtle);
}

.legal-hero {
  display: flex;
  max-width: 960px;
  flex-direction: column;
  gap: 16px;
}

.legal-hero p:not(.eyebrow) {
  color: var(--hp-text-secondary);
  font-size: 18px;
  line-height: 28px;
}

.legal-warning,
.legal-route-note {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 24px;
  border: 1px solid var(--hp-border-default);
  border-radius: var(--hp-radius-card);
}

.legal-warning {
  background: var(--hp-background-warm);
}

.legal-route-note {
  background: var(--hp-background-subtle);
}

.legal-sections,
.legal-content {
  display: flex;
  max-width: 960px;
  flex-direction: column;
  gap: 24px;
}

.legal-section,
.legal-card {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 28px;
  border: 1px solid var(--hp-border-default);
  border-radius: var(--hp-radius-card);
  background: var(--hp-surface-default);
}

.legal-section h2,
.legal-card h2 {
  font-size: 32px;
  line-height: 40px;
}

.legal-section p,
.legal-card p,
.legal-warning p,
.legal-route-note p {
  color: var(--hp-text-secondary);
}

.not-found-page,
.error-page-404 {
  display: flex;
  flex-direction: column;
  gap: 40px;
  padding-top: 120px;
  padding-bottom: 120px;
}

.not-found-panel,
.error-panel {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  padding: 64px;
  border: 1px solid var(--hp-border-default);
  border-radius: var(--hp-radius-card);
  background: var(--hp-background-warm);
  text-align: center;
}

.not-found-code,
.error-code {
  color: var(--hp-brand-accent);
  font-size: 48px;
  font-weight: 600;
  line-height: 56px;
}

.not-found-panel > p:not(.not-found-code),
.error-panel > p:not(.error-code) {
  max-width: 720px;
  color: var(--hp-text-secondary);
  font-size: 18px;
  line-height: 28px;
}

.not-found-actions,
.error-actions {
  display: flex;
  gap: 12px;
}

.useful-destinations {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  text-align: center;
}

.useful-destinations__links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 24px;
}

.useful-destinations__links a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  padding: 12px 16px;
  border: 1px solid var(--hp-border-default);
  border-radius: var(--hp-radius-control);
  font-size: 13px;
  font-weight: 600;
  line-height: 18px;
}

/* Feedback and result states */
.state-panel {
  display: flex;
  min-height: 320px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 40px;
  border: 1px solid var(--hp-border-default);
  border-radius: var(--hp-radius-card);
  background: var(--hp-surface-default);
  text-align: center;
}

.state-panel h3 {
  max-width: 320px;
  font-size: 24px;
  line-height: 32px;
}

.state-panel p {
  max-width: 360px;
  color: var(--hp-text-secondary);
}

.state-panel--error {
  border-color: color-mix(in srgb, var(--hp-status-error) 35%, var(--hp-border-default));
}

.skeleton {
  display: grid;
  width: 100%;
  height: 100%;
  min-height: 260px;
  align-content: end;
  gap: 12px;
}

.skeleton span {
  display: block;
  height: 18px;
  overflow: hidden;
  border-radius: 6px;
  background: linear-gradient(90deg, #eceef0 25%, #f8f8f8 42%, #eceef0 60%);
  background-size: 400% 100%;
  animation: skeleton-shimmer 1.4s ease infinite;
}

.skeleton span:first-child {
  height: 180px;
  margin-bottom: 16px;
}

.skeleton span:nth-child(2) {
  width: 58%;
}

.skeleton span:nth-child(3) {
  width: 88%;
}

.skeleton span:nth-child(4) {
  width: 72%;
}

@keyframes skeleton-shimmer {
  to {
    background-position: -100% 0;
  }
}

.outcome {
  display: flex;
  max-width: 720px;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  margin-inline: auto;
  padding: 48px;
  border: 1px solid var(--hp-border-default);
  border-radius: var(--hp-radius-large);
  background: var(--hp-surface-default);
  text-align: center;
}

.outcome__icon {
  display: flex;
  width: 52px;
  height: 52px;
  align-items: center;
  justify-content: center;
  border-radius: var(--hp-radius-pill);
  background: var(--hp-background-subtle);
  color: var(--hp-status-success);
  font-size: 28px;
  font-weight: 700;
}

.outcome > p:not(.eyebrow) {
  color: var(--hp-text-secondary);
}

.outcome__context {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px;
  border-radius: var(--hp-radius-control);
  background: var(--hp-background-subtle);
  text-align: left;
}

.outcome__context span {
  color: var(--hp-text-muted);
  font-size: 13px;
  line-height: 18px;
}

.toast-region {
  position: fixed;
  z-index: 1500;
  right: max(24px, env(safe-area-inset-right));
  bottom: max(24px, env(safe-area-inset-bottom));
  display: grid;
  width: min(360px, calc(100vw - 32px));
  gap: 8px;
  pointer-events: none;
}

.toast,
.toast-region > * {
  padding: 14px 16px;
  border: 1px solid var(--hp-border-default);
  border-radius: var(--hp-radius-control);
  background: var(--hp-text-primary);
  color: var(--hp-text-on-action);
  box-shadow: var(--hp-shadow-2);
  font-size: 14px;
  line-height: 20px;
  pointer-events: auto;
}

/* 1280 anchor: 40 px gutters, 1200 px content */
@media (max-width: 1280px) {
  :root {
    --hp-page-gutter: 40px;
    --hp-content-max: 1200px;
  }

  .site-header__left {
    gap: 16px;
  }

  .primary-nav {
    gap: 18px;
  }

  .hero__inner,
  .home-hero__inner {
    gap: 72px;
  }

  .hero__media,
  .home-hero__media {
    grid-template-columns: minmax(0, 2fr) minmax(140px, 1fr);
  }

  .search-layout {
    grid-template-columns: 280px minmax(0, 1fr);
    gap: 16px;
  }

  .detail-layout {
    grid-template-columns: minmax(0, 1fr) minmax(340px, 400px);
    gap: 28px;
  }
}

@media (max-width: 1180px) {
  .primary-nav {
    display: none;
  }
}

/* 1024 anchor: 32 px gutters and 72 px tablet header */
@media (max-width: 1024px) {
  :root {
    --hp-page-gutter: 32px;
    --hp-header-height: 72px;
  }

  .brand--desktop,
  .brand--desktop img {
    width: 112px;
    height: auto;
  }

  .site-header__left {
    gap: 16px;
  }

  .site-header__utilities {
    gap: 8px;
  }

  .locale-selector,
  .locale-selector summary {
    width: 104px;
  }

  .hero__inner,
  .home-hero__inner {
    gap: 40px;
  }

  .hero__media,
  .home-hero__media {
    min-height: 340px;
    grid-template-columns: 1fr;
  }

  .hero__media > :first-child,
  .home-hero__media > :first-child {
    grid-row: 1 / -1;
  }

  .hero__media > :not(:first-child),
  .home-hero__media > :not(:first-child) {
    display: none;
  }

  .hero-search,
  .search-panel,
  .directory-search {
    flex-wrap: wrap;
  }

  .hero-search .button {
    flex: 1 1 100%;
  }

  .property-grid,
  .property-grid--latest,
  .saved-grid,
  .saved-properties-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .area-grid,
  .building-grid,
  .process-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .guide-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .search-layout {
    grid-template-columns: 240px minmax(0, 1fr);
    gap: 16px;
  }

  .search-results__grid,
  .results-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .detail-layout {
    grid-template-columns: minmax(0, 1fr) 340px;
  }

  .gallery,
  .property-gallery,
  .entity-gallery {
    height: 440px;
  }
}

/* 768 anchor and mobile-navigation system */
@media (max-width: 900px) {
  :root {
    --hp-page-gutter: 24px;
    --hp-header-height: 64px;
  }

  .brand--desktop,
  .primary-nav {
    display: none;
  }

  .brand--mobile {
    display: inline-flex;
  }

  .brand--mobile {
    width: 112px;
    height: 50px;
  }

  .brand--mobile img {
    width: 112px;
    height: 50px;
  }

  .site-header__row {
    gap: 12px;
  }

  .site-header__left {
    gap: 8px;
  }

  .site-header__utilities {
    gap: 4px;
  }

  .site-header .saved-link {
    display: none;
  }

  .menu-button {
    width: var(--hp-size-icon-button);
    min-width: 44px;
    padding: 0;
    border: 0;
    border-radius: 0;
  }

  .menu-button__label {
    display: none;
  }



  .hero__inner,
  .home-hero__inner {
    grid-template-columns: 1fr;
    gap: 32px;
    padding-top: 48px;
  }

  .hero__copy,
  .home-hero__copy {
    max-width: 720px;
  }

  .hero__media,
  .home-hero__media {
    min-height: 320px;
  }

  .section-header {
    align-items: flex-start;
  }

  .search-layout {
    display: block;
  }

  .filter-sidebar,
  .search-filter-sidebar,
  .filters-panel {
    display: none;
  }

  .mobile-search-controls,
  .mobile-results-controls {
    position: sticky;
    z-index: 20;
    top: var(--hp-header-height);
    display: flex;
    min-height: 64px;
    align-items: center;
    gap: 8px;
    margin-block: 20px;
    padding: 8px 12px;
    border: 1px solid var(--hp-border-default);
    border-radius: var(--hp-radius-card);
    background: var(--hp-surface-elevated);
    box-shadow: var(--hp-shadow-1);
  }

  .mobile-search-controls__query,
  .mobile-results-controls__query {
    min-width: 0;
    flex: 1 1 auto;
  }

  .mobile-search-controls__query span,
  .mobile-results-controls__query span {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .mobile-search-controls__query span:first-child,
  .mobile-results-controls__query span:first-child {
    color: var(--hp-text-muted);
    font-size: 13px;
    font-weight: 600;
    line-height: 18px;
  }

  .mobile-search-controls .button,
  .mobile-results-controls .button {
    min-width: 0;
  }

  .detail-layout {
    display: block;
  }

  .inquiry-panel {
    display: none;
  }

  .gallery,
  .property-gallery,
  .entity-gallery {
    height: auto;
    aspect-ratio: 4 / 3;
    grid-template-columns: 1fr;
    grid-template-rows: 1fr;
  }

  .gallery__main,
  .property-gallery__main,
  .entity-gallery__main {
    grid-row: auto;
  }

  .gallery__item:not(.gallery__main),
  .property-gallery__item:not(.property-gallery__main),
  .entity-gallery__item:not(.entity-gallery__main),
  .gallery__thumb,
  .property-gallery__thumb,
  .entity-gallery__thumb {
    display: none;
  }

  .detail-intro,
  .property-intro,
  .entity-intro {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .sticky-mobile-cta,
  .mobile-sticky-cta {
    position: fixed;
    z-index: 500;
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    min-height: 88px;
    align-items: flex-start;
    gap: 12px;
    padding-top: 12px;
    padding-right: max(var(--hp-page-gutter), env(safe-area-inset-right));
    padding-bottom: max(12px, env(safe-area-inset-bottom));
    padding-left: max(var(--hp-page-gutter), env(safe-area-inset-left));
    border-top: 1px solid var(--hp-border-default);
    background: var(--hp-surface-elevated);
    box-shadow: 0 -8px 24px -16px rgb(0 0 0 / 32%);
  }

  .sticky-mobile-cta .button,
  .mobile-sticky-cta .button {
    min-width: 0;
    flex: 1 1 auto;
  }

  .sticky-mobile-cta .favorite-button,
  .mobile-sticky-cta .favorite-button {
    position: static;
    flex: 0 0 44px;
  }

  body.has-sticky-mobile-cta,
  .property-detail-page {
    padding-bottom: calc(96px + 88px + env(safe-area-inset-bottom));
  }

  body.route-property,
  body.route-building {
    padding-bottom: calc(88px + env(safe-area-inset-bottom));
  }

  .guide-layout,
  .article-layout {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .article-sidebar,
  .guide-sidebar {
    position: static;
  }
}

@media (max-width: 767px) {
  .drawer--menu .drawer__panel {
    width: 100%;
  }

  .display,
  .hero__title,
  .home-hero h1 {
    font-size: 36px;
    line-height: 44px;
  }

  h1,
  .type-h1,
  .page-hero h1,
  .entity-hero h1 {
    font-size: 30px;
    line-height: 38px;
  }

  h2,
  .type-h2,
  .section-header__copy h2,
  .assistance-cta h2,
  .cta-block h2,
  .inquiry-form__heading h2,
  .legal-section h2,
  .legal-card h2 {
    font-size: var(--hp-font-size-heading-3);
    line-height: 34px;
  }

  .body-large,
  .hero__lead,
  .page-hero__lead,
  .entity-hero__lead,
  .page-hero p:not(.eyebrow),
  .entity-hero p:not(.eyebrow),
  .assistance-cta p,
  .cta-block p {
    font-size: 16px;
    line-height: 24px;
  }

  .content-section,
  .content-section--compact {
    padding-block: 64px;
  }

  .section-header {
    min-height: 0;
    flex-direction: column;
    gap: 16px;
    margin-bottom: 24px;
  }

  .hero-search,
  .search-panel,
  .directory-search {
    flex-direction: column;
    align-items: stretch;
    padding: 20px;
  }

  .hero-search .button,
  .search-panel .button,
  .directory-search .button {
    width: 100%;
    flex: 0 0 auto;
  }

  .hero-search {
    margin-top: 24px;
    margin-bottom: 40px;
  }

  .page-main,
  .index-page,
  .directory-page,
  .legal-page,
  .saved-page,
  .guides-page {
    gap: 40px;
    padding-top: 40px;
    padding-bottom: 64px;
  }

  .page-hero,
  .entity-hero {
    padding: 24px;
  }

  .property-grid,
  .property-grid--latest,
  .saved-grid,
  .saved-properties-grid {
    grid-template-columns: 1fr;
  }

  .property-grid .property-card,
  .property-grid--latest .property-card,
  .saved-grid .property-card,
  .saved-properties-grid .property-card {
    width: 100%;
    max-width: none;
  }

  .area-grid,
  .building-grid,
  .guide-grid,
  .process-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .assistance-cta,
  .cta-block {
    flex-direction: column;
    align-items: stretch;
    gap: 32px;
    padding: 32px;
  }

  .assistance-cta__copy,
  .cta-block__copy {
    gap: 16px;
  }

  .assistance-cta .button,
  .cta-block .button {
    width: 100%;
  }

  .search-page,
  .results-page {
    padding-top: 28px;
    padding-bottom: 64px;
  }

  .search-title-row,
  .results-title-row,
  .search-summary {
    align-items: flex-start;
  }

  .active-filters {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: var(--hp-spacing-2);
    scrollbar-width: none;
  }

  .active-filters::-webkit-scrollbar {
    display: none;
  }

  .search-results__grid,
  .results-grid {
    grid-template-columns: 1fr;
  }

  .detail-page,
  .property-detail-page,
  .entity-page {
    padding-top: 0;
  }

  .detail-page > *,
  .property-detail-page > *,
  .entity-page > * {
    margin-bottom: 20px;
  }

  .detail-intro__actions,
  .property-intro__actions,
  .save-share-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .detail-intro__actions .button,
  .property-intro__actions .button,
  .save-share-actions .button {
    min-width: 0;
  }

  .detail-price,
  .property-price {
    font-size: 24px;
    line-height: 32px;
  }

  .quick-facts,
  .property-quick-facts {
    flex-direction: column;
    gap: 4px;
  }

  .detail-section,
  .property-section,
  .entity-section,
  .info-card,
  .content-card {
    padding: 20px;
  }

  .detail-section h2,
  .property-section h2,
  .entity-section h2,
  .info-card h2,
  .content-card h2 {
    font-size: 22px;
    line-height: 30px;
  }

  .map-placeholder,
  .location-map {
    min-height: 220px;
  }

  .inquiry-form {
    padding: var(--hp-spacing-20);
  }

  .drawer--inquiry .drawer__panel {
    top: auto;
    bottom: 0;
    width: 100%;
    height: auto;
    max-height: calc(100dvh - max(24px, env(safe-area-inset-top)));
    border-radius: var(--hp-radius-large) var(--hp-radius-large) 0 0;
    animation-name: drawer-up;
  }

  .drawer--inquiry .drawer__header {
    min-height: 64px;
    padding-inline: var(--hp-spacing-20);
  }

  .drawer--inquiry .drawer__scroll {
    padding: var(--hp-spacing-20);
  }

  @keyframes drawer-up {
    from {
      transform: translateY(24px);
      opacity: 0;
    }
  }

  .legal-warning,
  .legal-route-note,
  .legal-section,
  .legal-card {
    padding: 20px;
  }

  .legal-sections,
  .legal-content {
    gap: 20px;
  }

  .not-found-page,
  .error-page-404 {
    padding-top: 64px;
    padding-bottom: 64px;
  }

  .not-found-panel,
  .error-panel {
    gap: 12px;
    padding: 32px;
  }

  .not-found-code,
  .error-code {
    font-size: 36px;
    line-height: 44px;
  }

  .not-found-panel > p:not(.not-found-code),
  .error-panel > p:not(.error-code) {
    font-size: 16px;
    line-height: 24px;
  }

  .not-found-actions,
  .error-actions,
  .useful-destinations__links {
    width: 100%;
    flex-direction: column;
    gap: 12px;
  }

  .not-found-actions .button,
  .error-actions .button,
  .useful-destinations__links a {
    width: 100%;
  }

  .state-panel {
    min-height: 280px;
    padding: 28px;
  }

  .outcome {
    padding: 32px 24px;
  }
}

/* 430/390/360 anchors: 16 px gutters and exact compact chrome */
@media (max-width: 430px) {
  :root {
    --hp-page-gutter: 16px;
  }

  .site-header__row {
    padding-left: max(16px, env(safe-area-inset-left));
    padding-right: max(16px, env(safe-area-inset-right));
  }

  .drawer--menu .drawer__header {
    padding-right: max(var(--hp-spacing-16), env(safe-area-inset-right));
    padding-left: max(var(--hp-spacing-16), env(safe-area-inset-left));
  }

  .menu-drawer__scroll {
    padding-right: max(var(--hp-spacing-16), env(safe-area-inset-right));
    padding-left: max(var(--hp-spacing-16), env(safe-area-inset-left));
  }

  .menu-group__links {
    gap-inline: 4px;
  }

  .hero__inner,
  .home-hero__inner {
    gap: 24px;
    padding-top: 40px;
  }

  .hero__media,
  .home-hero__media {
    min-height: 0;
    aspect-ratio: 358 / 220;
  }

  .hero-search,
  .search-panel,
  .directory-search {
    padding: 20px;
  }

  .section-header__copy p {
    font-size: 16px;
    line-height: 24px;
  }

  .horizontal-rail {
    margin-right: calc(var(--hp-page-gutter) * -1);
    padding-right: var(--hp-page-gutter);
  }

  .horizontal-rail .area-card {
    width: 312px;
  }

  .area-card__media {
    height: 176px;
  }

  .project-card__content { padding: 18px; }

  .guide-card {
    min-height: 240px;
  }

  .notice,
  .review-notice,
  .data-notice {
    padding: 20px;
  }

  .mobile-search-controls,
  .mobile-results-controls {
    margin-top: 20px;
    margin-bottom: 20px;
  }

  .facts-grid,
  .property-facts {
    grid-template-columns: 1fr;
  }

  .drawer__scroll {
    padding-right: max(var(--hp-spacing-20), env(safe-area-inset-right));
    padding-left: max(var(--hp-spacing-20), env(safe-area-inset-left));
  }

  .toast-region {
    right: 16px;
    bottom: calc(16px + env(safe-area-inset-bottom));
    left: 16px;
    width: auto;
  }
}

@media (max-width: 359px) {
  .site-header__utilities {
    gap: 0;
  }

  .brand--mobile,
  .brand--mobile img {
    width: 94px;
    height: auto;
  }


  .button {
    min-width: 0;
    white-space: normal;
  }
}

/* Renderer mappings: page templates */
:where(h1, h2, h3, h4, p, li, a, button, label, summary, dt, dd) {
  overflow-wrap: break-word;
}

.home-hero__top {
  display: grid;
  grid-template-columns: minmax(0, 600px) minmax(0, 600px);
  gap: 120px;
  align-items: center;
  padding-top: 80px;
}

.home-hero__copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 24px;
}

.home-hero__copy h1 {
  font-size: 48px;
  line-height: 56px;
}

.home-hero__copy .lead {
  max-width: 560px;
  color: var(--hp-text-secondary);
  font-size: 18px;
  line-height: 28px;
}

.editorial-media {
  display: grid;
  height: 380px;
  grid-template-columns: minmax(0, 384px) minmax(0, 200px);
  gap: 16px;
}

.editorial-media__main,
.editorial-media__side > div,
.gallery-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: var(--hp-background-warm);
  color: var(--hp-text-muted);
  font-size: 13px;
  line-height: 18px;
  text-align: center;
}

.editorial-media__main,
.editorial-media__side > div {
  border-radius: var(--hp-radius-card);
}

.editorial-media img,
.gallery-placeholder img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.editorial-media__side {
  display: grid;
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.editorial-media__side > div {
  padding: 20px;
  background: var(--hp-background-subtle);
}

.hero-search.page-width {
  width: min(calc(100% - (var(--hp-page-gutter) * 2)), var(--hp-content-max));
  max-width: var(--hp-content-max);
  margin-right: auto;
  margin-left: auto;
  padding: 16px;
}

.hero-search .button {
  flex: 0 0 200px;
}

.property-grid--three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.page-title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
}

.page-title-row > div:first-child {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 8px;
}

.page-title-row > .text-action {
  flex: 0 0 auto;
  white-space: nowrap;
}

.page-title-row > div:first-child > p:not(.eyebrow),
.result-count {
  color: var(--hp-text-secondary);
}

.mobile-query-controls {
  display: none;
}

.filter-sidebar__heading {
  display: flex;
  min-height: 32px;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.filter-sidebar__heading h2 {
  font-size: 24px;
  line-height: 32px;
}

.filter-sidebar__heading .text-action {
  min-height: 32px;
  font-size: 13px;
  line-height: 18px;
}

.filter-note,
.data-note {
  color: var(--hp-text-muted);
  font-size: 13px;
  line-height: 18px;
}

.desktop-filter-apply,
.filter-sidebar > .button {
  width: 100%;
}

.property-grid--results {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.property-heading__actions.property-heading__actions--mobile {
  display: none;
}

.search-results > .button {
  margin-top: var(--hp-spacing-24);
}

.search-empty {
  margin-top: 24px;
}

.search-states > .page-width {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.search-states .state-panel {
  min-height: 468px;
}

.search-states > .page-width > p:not(.notice),
.saved-state-review > p:not(.notice) {
  color: var(--hp-text-secondary);
}

.state-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  margin-top: 8px;
}

.state-grid .state-panel {
  min-height: 360px;
}

.search-states .notice,
.saved-state-review .notice {
  min-height: 52px;
  margin-top: 8px;
  padding: 13px 18px;
}

.drawer--filters .drawer__panel {
  width: min(480px, 100%);
}

.drawer--filters .drawer__header > div {
  display: flex;
  align-items: center;
  gap: var(--hp-spacing-8);
}

.drawer--filters .drawer__scroll {
  display: flex;
  flex-direction: column;
  gap: var(--hp-spacing-20);
}

.drawer__footer {
  flex: 0 0 auto;
  padding: var(--hp-spacing-16) var(--hp-spacing-24) max(var(--hp-spacing-16), env(safe-area-inset-bottom));
  border-top: 1px solid var(--hp-border-default);
  background: var(--hp-surface-elevated);
}

.drawer__footer .button {
  width: 100%;
}

.saved-populated {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 32px;
}

.saved-buildings {
  display: flex;
  width: 100%;
  flex-direction: column;
  gap: 24px;
}

.saved-building-item {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
}

.saved-empty {
  width: 100%;
}

.saved-populated [data-saved-item],
.saved-populated [data-saved-item] .property-card {
  height: 100%;
}

.saved-state-review {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.property-detail__summary,
.building-detail__summary {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding-top: 32px;
}

.property-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 32px;
}

/* Unified property hero: one gallery, independent public offers. */
.property-hero { display: grid; gap: var(--hp-spacing-24); min-width: 0; }
.property-hero > *, .property-hero__offers > * { min-width: 0; }
.property-hero__offers { display: grid; align-content: start; gap: var(--hp-spacing-24); }
.property-hero .property-heading { align-items: start; }
.property-hero .property-heading h1 { overflow-wrap: anywhere; }
.property-hero .property-heading p { font-size: var(--hp-font-size-body); line-height: var(--hp-line-height-body); }
.property-hero .property-heading__actions { flex-wrap: wrap; }
.property-hero .property-heading__actions .button { min-width: 0; }
.property-offers { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: var(--hp-spacing-16); }
.property-offer { display: flex; flex-direction: column; gap: var(--hp-spacing-16); padding: var(--hp-spacing-24); scroll-margin-top: calc(var(--hp-header-height) + var(--hp-spacing-24)); }
.property-offer h2 { font-size: var(--hp-font-size-heading-3); }
.property-offer__price { font-size: var(--hp-font-size-body-large); font-weight: var(--hp-font-weight-bold); color: var(--hp-text-strong); overflow-wrap: anywhere; }
.property-offer__facts { display: grid; gap: var(--hp-spacing-12); margin: 0; }
.property-offer__facts dt { font-size: var(--hp-font-size-small); color: var(--hp-text-secondary); }
.property-offer__facts dd { margin: 0; overflow-wrap: anywhere; }
.property-card__offer-label { display: block; color: var(--hp-text-secondary); font-size: var(--hp-font-size-caption); font-weight: var(--hp-font-weight-regular); }
.property-offer > .button { margin-top: auto; width: 100%; white-space: normal; text-align: center; }
.property-intent { display: grid; gap: var(--hp-spacing-8); }
#rent-terms { scroll-margin-top: calc(var(--hp-header-height) + var(--hp-spacing-24)); }
@media (min-width: 1024px) {
  .property-hero { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); grid-template-rows: auto 1fr; }
  .property-hero > .property-heading { grid-column: 2; grid-row: 1; }
  .property-hero > .property-gallery { grid-column: 1; grid-row: 1 / -1; height: 100%; min-height: 420px; max-height: 640px; }
  .property-hero > .property-hero__offers { grid-column: 2; grid-row: 2; }
  .property-hero .property-gallery__track { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
}
@media (max-width: 768px) {
  .property-hero .property-gallery { height: 320px; }
  .property-offers { grid-template-columns: minmax(0, 1fr); }
}

.property-heading > div:first-child {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 8px;
}

.property-heading > div:first-child > p {
  color: var(--hp-text-secondary);
  font-size: 18px;
  line-height: 28px;
}

.property-heading__actions {
  display: flex;
  flex: 0 0 auto;
  gap: 12px;
}

.property-heading__actions .button {
  min-width: 140px;
}

.property-gallery {
  position: relative;
  display: block;
  width: 100%;
  height: 520px;
  grid-template-columns: none;
  grid-template-rows: none;
  gap: 0;
  overflow: hidden;
  border-radius: var(--hp-radius-large);
  background: var(--hp-background-subtle);
}

.property-gallery__track {
  display: grid;
  width: 100%;
  height: 100%;
  grid-template-columns: minmax(0, 2fr) minmax(260px, 1fr);
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.building-gallery {
  position: relative;
  display: grid;
  width: 100%;
  height: 520px;
  grid-template-columns: minmax(0, 2fr) minmax(260px, 1fr);
  grid-template-rows: 1fr;
  gap: 16px;
  overflow: hidden;
  border-radius: var(--hp-radius-large);
}

.property-gallery__main {
  grid-column: 1;
  grid-row: 1 / -1;
}

.building-gallery > .gallery-placeholder:first-child {
  grid-row: 1;
}

.building-gallery > div:nth-child(2) {
  display: grid;
  min-width: 0;
  min-height: 0;
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.property-gallery__item {
  position: relative;
  min-width: 0;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  background: var(--hp-background-warm);
}

.property-gallery__item:nth-of-type(n + 4) {
  display: none;
}

.property-gallery__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 180ms ease;
}

.property-gallery__item:hover img {
  transform: scale(1.015);
}

.property-gallery__item:focus-visible,
.property-lightbox button:focus-visible {
  z-index: 5;
  outline: 3px solid var(--hp-focus-ring);
  outline-offset: -3px;
}

.property-gallery[data-image-count="1"] .property-gallery__main {
  grid-column: 1 / -1;
}

.property-gallery[data-image-count="2"] .property-gallery__item:nth-of-type(2) {
  grid-row: 1 / -1;
}

.property-gallery__more {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: linear-gradient(rgb(0 0 0 / 44%), rgb(0 0 0 / 64%));
  color: var(--hp-text-on-action);
  font-size: 16px;
  font-weight: 700;
  line-height: 24px;
  text-align: center;
}

.property-gallery__more--wide,
.property-gallery__mobile-count {
  display: none;
}

@media (min-width: 1180px) {
  .property-gallery__track {
    grid-template-columns: minmax(0, 2fr) repeat(2, minmax(0, 1fr));
  }

  .property-gallery__item:nth-of-type(n + 4) {
    display: block;
  }

  .property-gallery__item:nth-of-type(n + 6) {
    display: none;
  }

  .property-gallery[data-image-count="2"] .property-gallery__item:nth-of-type(2) {
    grid-column: 2 / -1;
  }

  .property-gallery[data-image-count="3"] .property-gallery__item:nth-of-type(2),
  .property-gallery[data-image-count="3"] .property-gallery__item:nth-of-type(3) {
    grid-column: 2 / -1;
  }

  .property-gallery[data-image-count="4"] .property-gallery__item:nth-of-type(4) {
    grid-column: 2 / -1;
  }

  .property-gallery__more--compact {
    display: none;
  }

  .property-gallery__more--wide {
    display: flex;
  }
}

.gallery-placeholder {
  width: 100%;
  height: 100%;
  min-height: 0;
  padding: 24px;
}

.building-gallery > div:nth-child(2) .gallery-placeholder {
  background: var(--hp-background-subtle);
}

.gallery-controls {
  position: absolute;
  z-index: 3;
  right: 16px;
  bottom: 16px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.gallery-controls button,
.gallery-controls span {
  display: inline-flex;
  min-width: 44px;
  height: var(--hp-size-icon-button);
  align-items: center;
  justify-content: center;
  border-radius: var(--hp-radius-pill);
  background: rgb(0 0 0 / 72%);
  color: var(--hp-text-on-action);
}

.gallery-controls button {
  padding: 0;
  font-size: var(--hp-font-size-heading-2);
  line-height: 1;
}

.gallery-controls span {
  min-width: 58px;
  padding-inline: 12px;
  font-size: 13px;
  font-weight: 600;
  line-height: 18px;
}

.property-price-row {
  display: grid;
  grid-template-columns: minmax(320px, 400px) minmax(0, 1fr);
  gap: 48px;
  align-items: center;
}

.property-price-row strong {
  font-size: 28px;
  font-weight: 600;
  line-height: 34px;
}

.property-price-row p {
  color: var(--hp-text-secondary);
}

.property-key-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 20px;
  padding-block: 20px;
  border-top: 1px solid var(--hp-border-default);
  border-bottom: 1px solid var(--hp-border-default);
}

.property-key-stat {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 12px;
}

.property-key-stat dt {
  color: var(--hp-text-muted);
  font-size: 13px;
  line-height: 18px;
}

.property-key-stat dd {
  margin-top: 2px;
  font-size: 16px;
  font-weight: 600;
  line-height: 22px;
}

.property-icon-shell {
  display: inline-flex;
  width: 48px;
  height: var(--hp-size-control-default);
  flex: 0 0 48px;
  align-items: center;
  justify-content: center;
  border-radius: var(--hp-radius-pill);
  background: color-mix(in srgb, var(--hp-background-warm) 58%, var(--hp-surface-default));
  color: var(--hp-text-secondary);
}

.property-icon {
  width: 24px;
  height: 24px;
  overflow: visible;
}

.property-icon-shell--small,
.property-icon-shell--tag {
  width: 36px;
  height: 36px;
  flex-basis: 36px;
}

.property-icon-shell--small .property-icon,
.property-icon-shell--tag .property-icon {
  width: 20px;
  height: 20px;
}

.property-body {
  display: grid;
  grid-template-columns: minmax(0, 864px) minmax(340px, 420px);
  gap: 36px;
  align-items: start;
  margin-top: 96px;
  margin-bottom: 48px;
}

.property-body__content {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.property-body__inquiry {
  position: sticky;
  top: 24px;
}

.detail-card {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 28px;
  border: 1px solid var(--hp-border-default);
  border-radius: var(--hp-radius-card);
  background: var(--hp-surface-default);
}

.detail-card--warm {
  background: var(--hp-background-warm);
}

.detail-card h2 {
  font-size: 24px;
  line-height: 32px;
}

.detail-card > p,
.detail-card > ul,
.detail-card > ol {
  color: var(--hp-text-secondary);
}

.detail-card > p { white-space: pre-line; }

.route-area-detail .detail-card > p,
.route-content .detail-card > p {
  max-width: 78ch;
}

.property-tags {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding: 0;
  list-style: none;
}

.property-tags li {
  display: flex;
  min-height: 56px;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  border-radius: var(--hp-radius-card);
  background: var(--hp-background-subtle);
  color: var(--hp-text-primary);
}

.property-tags li > span:last-child {
  min-width: 0;
  line-height: 22px;
  overflow-wrap: anywhere;
}

.offer-switch { margin-top: 12px; }
.offer-switch a { display: inline-flex; align-items: center; gap: 8px; color: var(--hp-action-primary); font-weight: 600; }

.rental-terms { display: grid; gap: 16px; }
.rental-term { padding: 18px; border: 1px solid var(--hp-border-default); border-radius: calc(var(--hp-radius-card) - 4px); background: var(--hp-background-warm); }
.rental-term h3 { margin: 0 0 14px; font-size: 18px; line-height: 24px; }
.location-links { display: flex; flex-wrap: wrap; gap: 12px 24px; }

.detail-card > ul,
.detail-card > ol {
  padding-left: 24px;
}

.detail-card > ul li + li,
.detail-card > ol li + li {
  margin-top: 8px;
}

.detail-card > .property-tags {
  padding-left: 0;
}

.detail-card > .property-tags li + li {
  margin-top: 0;
}

.facts-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px 24px;
}

.facts-list > div {
  min-width: 0;
}

.facts-list__item--icon {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  align-items: start;
  gap: 12px;
}

.facts-list__copy {
  min-width: 0;
}

.facts-list dt {
  color: var(--hp-text-muted);
  font-size: 13px;
  line-height: 18px;
}

.facts-list dd {
  margin-top: 4px;
  font-size: 16px;
  line-height: 24px;
}

.property-lightbox {
  width: 100vw;
  max-width: none;
  height: 100dvh;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 0;
  overflow: hidden;
  background: #111;
  color: var(--hp-text-on-action);
}

.property-lightbox::backdrop {
  background: rgb(0 0 0 / 88%);
}

.property-lightbox__frame {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.property-lightbox__stage {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 72px 88px 84px;
  touch-action: pan-y;
  user-select: none;
}

.property-lightbox__stage img {
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 100%;
  object-fit: contain;
}

.property-lightbox__close,
.property-lightbox__nav {
  position: absolute;
  z-index: 3;
  display: inline-flex;
  width: 48px;
  height: 48px;
  align-items: center;
  justify-content: center;
  border-radius: var(--hp-radius-pill);
  background: rgb(255 255 255 / 14%);
  color: var(--hp-text-on-action);
  transition: background-color 160ms ease, transform 160ms ease;
}

.property-lightbox__close:hover,
.property-lightbox__nav:hover {
  background: rgb(255 255 255 / 24%);
}

.property-lightbox__close {
  top: max(20px, env(safe-area-inset-top));
  right: max(20px, env(safe-area-inset-right));
  font-size: 34px;
  font-weight: 300;
  line-height: 1;
}

.property-lightbox__nav {
  top: 50%;
  font-size: 42px;
  font-weight: 300;
  line-height: 1;
  transform: translateY(-50%);
}

.property-lightbox__nav:hover {
  transform: translateY(-50%) scale(1.04);
}

.property-lightbox__nav--previous {
  left: max(20px, env(safe-area-inset-left));
}

.property-lightbox__nav--next {
  right: max(20px, env(safe-area-inset-right));
}

.property-lightbox__meta {
  position: absolute;
  z-index: 3;
  right: 50%;
  bottom: max(20px, env(safe-area-inset-bottom));
  display: flex;
  max-width: min(720px, calc(100% - 160px));
  align-items: center;
  gap: 16px;
  padding: 10px 16px;
  border-radius: var(--hp-radius-pill);
  background: rgb(0 0 0 / 62%);
  font-size: 14px;
  line-height: 20px;
  transform: translateX(50%);
}

.property-lightbox__meta p {
  overflow: hidden;
  color: rgb(255 255 255 / 78%);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.similar-properties {
  padding-block: 48px;
}

.area-page__main {
  display: flex;
  flex-direction: column;
  gap: 28px;
  padding-top: 56px;
  padding-bottom: 80px;
}

.area-context > .page-width {
  display: flex;
  flex-direction: column;
  gap: 56px;
}

.area-context .section-header {
  margin-bottom: -32px;
}

.entity-hero--warm {
  background: var(--hp-background-warm);
}

.directory-search {
  padding: 24px;
  border-radius: var(--hp-radius-card);
  background: var(--hp-background-subtle);
}

.directory-search .button {
  flex: 0 1 250px;
}

.building-grid--directory {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.building-detail__summary > h2 {
  margin-top: 12px;
  font-size: 32px;
  line-height: 40px;
}

.building-detail__summary > p:last-child {
  color: var(--hp-text-secondary);
}

.faq-section {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.faq-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.faq-card {
  padding: 20px;
  border: 1px solid var(--hp-border-default);
  border-radius: var(--hp-radius-card);
  background: var(--hp-surface-default);
}

.faq-card summary {
  min-height: 44px;
  font-size: 16px;
  font-weight: 600;
  line-height: 24px;
}

.faq-card[open] summary {
  margin-bottom: 12px;
}

.faq-card p {
  color: var(--hp-text-secondary);
}

.plain-hero {
  display: flex;
  max-width: 960px;
  flex-direction: column;
  gap: 16px;
}

.plain-hero > p:not(.eyebrow) {
  color: var(--hp-text-secondary);
  font-size: 18px;
  line-height: 28px;
}

.guide-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.guide-filters button {
  min-height: var(--hp-size-icon-button);
  padding: var(--hp-spacing-10) var(--hp-spacing-16);
  border: 1px solid var(--hp-border-default);
  border-radius: var(--hp-radius-pill);
  background: var(--hp-surface-default);
  color: var(--hp-text-secondary);
  font-size: var(--hp-font-size-small);
  line-height: 20px;
}

.guide-filters button:hover,
.guide-filters button[aria-pressed="true"] {
  border-color: var(--hp-brand-accent);
  background: var(--hp-background-subtle);
  color: var(--hp-text-primary);
}

.featured-guide {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr);
  gap: 48px;
  padding: 40px;
  border: 1px solid var(--hp-border-default);
  border-radius: var(--hp-radius-large);
  background: var(--hp-background-warm);
}

.featured-guide > div,
.featured-guide > aside {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
}

.featured-guide > div > p:not(.eyebrow),
.featured-guide > aside {
  color: var(--hp-text-secondary);
}

.featured-guide aside {
  padding-left: 32px;
  border-left: 1px solid var(--hp-border-strong);
}

.featured-guide ul {
  padding-left: 20px;
}

.featured-guide li + li {
  margin-top: 8px;
}

.guide-grid--all {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.guide-article {
  display: flex;
  flex-direction: column;
  gap: 48px;
  padding-top: 56px;
  padding-bottom: 96px;
}

.guide-article > * + * {
  margin-top: 0;
}

.article-sections {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.article-section {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 28px;
  border: 1px solid var(--hp-border-default);
  border-radius: var(--hp-radius-card);
  background: var(--hp-surface-default);
  scroll-margin-top: 24px;
}

.article-section > p:not(.eyebrow) {
  color: var(--hp-text-secondary);
}

.question-list {
  display: grid;
  gap: 8px;
}

.question-list p {
  padding: 12px 16px;
  border-radius: var(--hp-radius-control);
  background: var(--hp-background-subtle);
}

.article-sidebar {
  display: flex;
  flex-direction: column;
  gap: 24px;
  background: transparent;
}

.article-sidebar > section {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 24px;
  border: 1px solid var(--hp-border-default);
  border-radius: var(--hp-radius-card);
  background: var(--hp-surface-default);
}

.article-sidebar > section h2 {
  font-size: 20px;
  line-height: 28px;
}

.article-sidebar > section > a:not(.button) {
  color: var(--hp-text-secondary);
  font-size: var(--hp-font-size-small);
  line-height: 20px;
}

.article-sidebar > section > a:not(.button):hover {
  color: var(--hp-text-primary);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.article-sidebar .button {
  width: 100%;
}

.legal-page {
  gap: 48px;
}

.route-note {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 24px;
  border: 1px solid var(--hp-border-default);
  border-radius: var(--hp-radius-card);
  background: var(--hp-background-subtle);
}

.route-note h2 {
  font-size: 24px;
  line-height: 32px;
}

.route-note p {
  color: var(--hp-text-secondary);
}

.list-property-page,
.contact-page {
  display: flex;
  flex-direction: column;
  gap: 48px;
  padding-top: 56px;
  padding-bottom: 96px;
}

.listing-intake-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--hp-form-section-gap) var(--hp-form-column-gap);
  padding: var(--hp-form-padding);
  border: 1px solid var(--hp-border-default);
  border-radius: var(--hp-radius-large);
  background: var(--hp-surface-default);
}

.listing-intake-form > section {
  display: flex;
  flex-direction: column;
  gap: var(--hp-form-field-gap);
}

.listing-intake-form > section h2 {
  margin-bottom: 8px;
  font-size: 24px;
  line-height: 32px;
}

.listing-intake-form > .inquiry-form__status {
  grid-column: 1 / -1;
}

.listing-intake-form > .button {
  grid-column: 1 / -1;
  justify-self: start;
}

.contact-hero {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(320px, 2fr);
  gap: 48px;
  padding: 40px;
  border: 1px solid var(--hp-border-default);
  border-radius: var(--hp-radius-large);
  background: var(--hp-background-warm);
}

.contact-hero > div,
.contact-hero > aside {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.contact-hero > div > p:not(.eyebrow),
.contact-hero > aside p {
  color: var(--hp-text-secondary);
}

.contact-hero ol {
  display: grid;
  gap: 16px;
  list-style: none;
}

.contact-hero li {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  gap: 12px;
}

.contact-hero li > span {
  color: var(--hp-brand-accent);
  font-size: 13px;
  font-weight: 600;
  line-height: 18px;
}

.contact-hero li > div {
  display: grid;
  gap: 4px;
}

.contact-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 400px);
  gap: 36px;
  align-items: start;
}

.contact-form-card .inquiry-form {
  max-width: none;
}

.contact-aside {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.not-found {
  display: flex;
  flex-direction: column;
  gap: 40px;
  padding-top: 120px;
  padding-bottom: 120px;
}

.not-found__panel {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  padding: 64px;
  border: 1px solid var(--hp-border-default);
  border-radius: var(--hp-radius-card);
  background: var(--hp-background-warm);
  text-align: center;
}

.not-found__code {
  color: var(--hp-brand-accent);
  font-size: 48px;
  font-weight: 600;
  line-height: 56px;
}

.not-found__panel > p:not(.not-found__code) {
  max-width: 720px;
  color: var(--hp-text-secondary);
  font-size: 18px;
  line-height: 28px;
}

.not-found__panel > div {
  display: flex;
  gap: 12px;
}

.useful-links {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  text-align: center;
}

.useful-links > div {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 24px;
}

.useful-links a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  padding: 11px 16px;
  border: 1px solid var(--hp-border-default);
  border-radius: var(--hp-radius-control);
  background: var(--hp-surface-default);
  font-size: 13px;
  font-weight: 600;
  line-height: 18px;
}

.useful-links a:hover {
  border-color: var(--hp-border-strong);
  background: var(--hp-background-subtle);
}

.inquiry-form__status.is-error {
  color: var(--hp-status-error);
}

.inquiry-form__status.is-success {
  color: var(--hp-status-success);
}

.inquiry-form--compact {
  gap: var(--hp-spacing-16);
}

.property-lead-form {
  gap: var(--hp-spacing-16);
  box-shadow: var(--hp-shadow-control);
}

.property-lead-form .inquiry-form__heading h2 {
  font-size: var(--hp-font-size-heading-3);
  line-height: 32px;
}

.lead-form__fields {
  display: flex;
  flex-direction: column;
  gap: var(--hp-spacing-16);
}

.lead-honeypot {
  position: absolute;
  left: -10000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.lead-form__footer {
  margin: 0;
  text-align: center;
}

.property-lead-form.inquiry-form--success {
  min-height: 280px;
  justify-content: center;
  border-color: color-mix(in srgb, var(--hp-status-success) 42%, var(--hp-border-default));
  background: color-mix(in srgb, var(--hp-status-success) 7%, var(--hp-surface-default));
}

.property-lead-form.inquiry-form--success .lead-form__fields,
.property-lead-form.inquiry-form--success .inquiry-form__heading,
.property-lead-form.inquiry-form--success .inquiry-form__submit,
.property-lead-form.inquiry-form--success .lead-form__footer {
  display: none;
}

.property-lead-form.inquiry-form--success .inquiry-form__status {
  padding: var(--hp-spacing-32) var(--hp-spacing-16);
  color: var(--hp-status-success);
  font-size: var(--hp-font-size-body-large);
  font-weight: 600;
  line-height: 28px;
  text-align: center;
}

.drawer--lead .drawer__header {
  justify-content: flex-end;
}

.inquiry-form--success {
  border-color: color-mix(in srgb, var(--hp-status-success) 36%, var(--hp-border-default));
}

.favorite-button.is-saved,
.favorite-button[aria-pressed="true"],
.button[data-save-property][aria-pressed="true"] {
  border-color: var(--hp-brand-accent);
  background: var(--hp-background-subtle);
}

.request-types {
  gap: 8px;
}

.assistance-section {
  background: var(--hp-surface-default);
}

@media (max-width: 1280px) {
  .home-hero__top {
    gap: 72px;
  }

  .editorial-media {
    grid-template-columns: minmax(0, 2fr) minmax(150px, 1fr);
  }

  .property-body {
    grid-template-columns: minmax(0, 1fr) minmax(340px, 400px);
    gap: 28px;
  }

  .contact-layout {
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 28px;
  }

  .property-grid--results {
    gap: 12px;
  }
}

@media (max-width: 1024px) {
  .home-hero__top {
    gap: 40px;
  }

  .editorial-media {
    grid-template-columns: 1fr;
  }

  .editorial-media__side {
    display: none;
  }

  .property-grid--three,
  .guide-grid--all,
  .building-grid--directory {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .building-grid--compact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .property-grid--results {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }

  .property-body {
    grid-template-columns: minmax(0, 1fr) 340px;
  }

  .property-gallery,
  .building-gallery {
    height: 440px;
  }

  .state-grid,
  .faq-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .featured-guide,
  .contact-hero,
  .contact-layout {
    grid-template-columns: 1fr;
  }

  .featured-guide > aside {
    padding-top: 24px;
    padding-left: 0;
    border-top: 1px solid var(--hp-border-strong);
    border-left: 0;
  }
}

@media (max-width: 900px) {
  .home-hero__top {
    grid-template-columns: 1fr;
    gap: 32px;
    padding-top: 48px;
  }

  .editorial-media {
    height: 320px;
  }

  .mobile-query-controls {
    position: sticky;
    z-index: 20;
    top: var(--hp-header-height);
    display: flex;
    min-height: 64px;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border: 1px solid var(--hp-border-default);
    border-radius: var(--hp-radius-card);
    background: var(--hp-surface-elevated);
    box-shadow: var(--hp-shadow-1);
  }

  .mobile-query-controls > div:first-child {
    min-width: 0;
    flex: 1 1 auto;
  }

  .mobile-query-controls > div:first-child span,
  .mobile-query-controls > div:first-child strong {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .mobile-query-controls > div:first-child span {
    color: var(--hp-text-muted);
    font-size: 13px;
    font-weight: 600;
    line-height: 18px;
  }

  .mobile-query-controls > div:first-child strong {
    font-size: 14px;
    line-height: 20px;
  }

  .mobile-query-controls .button {
    min-width: 82px;
  }

  .mobile-query-controls > label {
    display: flex;
    width: 68px;
    height: 48px;
    align-items: center;
  }

  .mobile-query-controls select {
    width: 100%;
    height: 48px;
    padding: 0 8px;
    border: 1px solid var(--hp-border-default);
    border-radius: var(--hp-radius-control);
    background: var(--hp-surface-default);
    font-size: 13px;
    font-weight: 600;
    line-height: 18px;
  }

  .property-body {
    display: block;
  }

  .property-body__inquiry {
    display: none;
  }

  .property-gallery,
  .building-gallery {
    height: auto;
    aspect-ratio: 4 / 3;
  }

  .building-gallery {
    grid-template-columns: 1fr;
  }

  .building-gallery > div:nth-child(2) {
    display: none;
  }

  .property-gallery__track {
    display: flex;
    gap: 0;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    overscroll-behavior-inline: contain;
  }

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

  .property-gallery > .property-gallery__track > .property-gallery__item {
    display: block;
    flex: 0 0 100%;
    width: 100%;
    height: 100%;
    grid-column: auto;
    grid-row: auto;
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }

  .property-gallery__item:hover img {
    transform: none;
  }

  .property-gallery__more {
    display: none;
  }

  .property-gallery__mobile-count {
    position: absolute;
    z-index: 4;
    right: 12px;
    bottom: 12px;
    display: inline-flex;
    min-width: 58px;
    height: 36px;
    align-items: center;
    justify-content: center;
    padding-inline: 12px;
    border-radius: var(--hp-radius-pill);
    background: rgb(0 0 0 / 72%);
    color: var(--hp-text-on-action);
    font-size: 13px;
    font-weight: 600;
    line-height: 18px;
    pointer-events: none;
  }

  .property-gallery--empty .property-gallery__track {
    display: block;
    overflow: hidden;
  }

  .property-gallery--empty .gallery-placeholder {
    width: 100%;
    height: 100%;
  }

  .article-layout {
    grid-template-columns: 1fr;
  }

  .site-footer__columns a,
  .article-sidebar > section > a:not(.button) {
    display: flex;
    min-height: var(--hp-size-icon-button);
    align-items: center;
  }

  .route-property main,
  .route-building main {
    padding-bottom: calc(88px + env(safe-area-inset-bottom));
  }

  .route-property .site-footer,
  .route-building .site-footer {
    padding-bottom: calc(32px + 88px + env(safe-area-inset-bottom));
  }

  .property-lightbox__stage {
    padding: 64px 12px 88px;
  }

  .property-lightbox__close {
    width: 44px;
    height: 44px;
    top: max(12px, env(safe-area-inset-top));
    right: max(12px, env(safe-area-inset-right));
  }

  .property-lightbox__nav {
    width: 44px;
    height: 44px;
    background: rgb(0 0 0 / 52%);
  }

  .property-lightbox__nav--previous {
    left: max(8px, env(safe-area-inset-left));
  }

  .property-lightbox__nav--next {
    right: max(8px, env(safe-area-inset-right));
  }

  .property-lightbox__meta {
    bottom: max(14px, env(safe-area-inset-bottom));
    max-width: calc(100% - 32px);
  }
}

@media (max-width: 767px) {
  .home-hero__copy h1 {
    font-size: 36px;
    line-height: 44px;
  }

  .home-hero__copy .lead {
    font-size: 16px;
    line-height: 24px;
  }

  .hero-search.page-width {
    width: min(calc(100% - (var(--hp-page-gutter) * 2)), var(--hp-content-max));
    padding: 20px;
  }

  .hero-search .button {
    width: 100%;
    flex: 0 0 auto;
  }

  .property-grid--three,
  .property-grid--results,
  .guide-grid--all,
  .building-grid--directory,
  .state-grid,
  .faq-grid {
    grid-template-columns: 1fr;
  }

  .page-title-row {
    align-items: flex-start;
  }

  .filter-sidebar__heading h2 {
    font-size: 22px;
    line-height: 30px;
  }

  .drawer--filters .drawer__panel {
    width: 100%;
  }

  .property-detail__summary,
  .building-detail__summary {
    gap: 20px;
    padding-top: 0;
  }

  .property-heading {
    flex-direction: column;
    align-items: stretch;
    gap: 16px;
  }

  .property-heading__actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .property-heading__actions .button {
    min-width: 0;
  }

  .property-price-row {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .property-key-stats {
    gap: 16px 12px;
    padding-block: 16px;
  }

  .property-body {
    margin-top: 20px;
    margin-bottom: 40px;
  }

  .detail-card {
    gap: 12px;
    padding: 20px;
  }

  .detail-card h2 {
    font-size: 22px;
    line-height: 30px;
  }

  .facts-list {
    grid-template-columns: 1fr;
  }

  .property-tags {
    grid-template-columns: 1fr;
  }

  .similar-properties {
    padding-block: 40px;
  }

  .area-page__main {
    gap: 20px;
    padding-top: 28px;
    padding-bottom: 64px;
  }

  .area-context > .page-width {
    gap: 40px;
  }

  .area-context .section-header {
    margin-bottom: -16px;
  }

  .directory-search {
    padding: 20px;
  }

  .featured-guide {
    gap: 32px;
    padding: 24px;
  }

  .guide-article,
  .list-property-page,
  .contact-page {
    gap: 32px;
    padding-top: 40px;
    padding-bottom: 64px;
  }

  .article-section {
    gap: 12px;
    padding: 20px;
  }

  .listing-intake-form {
    grid-template-columns: 1fr;
    gap: 32px;
    padding: 20px;
  }

  .listing-intake-form > .inquiry-form__status,
  .listing-intake-form > .button {
    grid-column: auto;
  }

  .listing-intake-form > .button {
    width: 100%;
  }

  .contact-hero {
    gap: 32px;
    padding: 24px;
  }

  .not-found {
    padding-top: 64px;
    padding-bottom: 64px;
  }

  .not-found__panel {
    gap: 12px;
    padding: 32px;
  }

  .not-found__code {
    font-size: 36px;
    line-height: 44px;
  }

  .not-found__panel > p:not(.not-found__code) {
    font-size: 16px;
    line-height: 24px;
  }

  .not-found__panel > div,
  .useful-links > div {
    width: 100%;
    flex-direction: column;
    gap: 12px;
  }

  .not-found__panel .button,
  .useful-links a {
    width: 100%;
  }
}

@media (max-width: 430px) {
  .home-hero__top {
    gap: 24px;
    padding-top: 40px;
  }

  .home-hero__copy > .button {
    display: none;
  }

  .editorial-media {
    height: auto;
    aspect-ratio: 358 / 220;
  }

  .hero-search.page-width {
    padding: 16px;
  }

  .home-hero ~ .content-section .area-grid {
    display: flex;
    margin-right: calc(var(--hp-page-gutter) * -1);
    overflow-x: auto;
    padding-right: var(--hp-page-gutter);
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
    scroll-snap-type: inline proximity;
  }

  .home-hero ~ .content-section .area-grid::-webkit-scrollbar {
    display: none;
  }

  .home-hero ~ .content-section .area-grid .area-card {
    width: 312px;
    flex: 0 0 312px;
    scroll-snap-align: start;
  }

  .route-home .property-grid--latest > :nth-child(n + 3),
  .route-home .building-grid > :nth-child(n + 3),
  .route-home .guide-grid > :nth-child(n + 3),
  .route-property .similar-properties .property-card:nth-child(n + 3) {
    display: none;
  }

  .route-home .process-grid {
    gap: 24px;
  }

  .route-home .process-card {
    min-height: 156px;
    padding: 20px;
  }

  .property-detail__summary > .eyebrow {
    display: none;
  }

  .property-detail__summary > .breadcrumbs,
  .building-detail__summary > .breadcrumbs {
    order: 0;
  }

  .building-detail__summary > .eyebrow {
    order: 1;
  }

  .property-detail__summary > .property-gallery,
  .building-detail__summary > .building-gallery {
    order: 2;
  }

  .property-detail__summary > .property-heading,
  .building-detail__summary > .property-heading {
    order: 3;
  }

  .property-detail__summary > .property-price-row {
    order: 4;
  }

  .property-detail__summary .property-heading__actions--desktop {
    display: none;
  }

  .property-detail__summary > .property-heading__actions.property-heading__actions--mobile {
    order: 5;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }

  .property-price-row strong {
    font-size: 26px;
    line-height: 32px;
  }

  .facts-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .property-body__content .detail-card:first-child .data-note {
    display: none;
  }

  .search-states .state-panel--empty,
  .search-states .state-panel--error {
    min-height: 240px;
  }

  .search-states .state-panel--loading {
    min-height: 468px;
  }

  .building-detail__summary > h2 {
    order: 4;
  }

  .building-detail__summary > h2 + p {
    order: 5;
  }

  .gallery-controls {
    right: 12px;
    bottom: 12px;
  }

  .gallery-controls button {
    display: none;
  }

  .gallery-controls span {
    height: 36px;
  }

  .content-section,
  .content-section--compact {
    padding-block: 40px;
  }

  .legal-page {
    gap: 32px;
  }

  .route-note {
    padding: 20px;
  }

  .route-note h2 {
    font-size: 26px;
    line-height: 34px;
  }
}

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

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

@media (forced-colors: active) {
  .button,
  .filter-chip,
  .favorite-button,
  .state-panel,
  .property-card,
  .area-card,
  .project-card,
  .guide-card {
    border: 1px solid CanvasText;
  }
}

/* Featured placement, curated entity imagery, and the no-key public map. */
.hero-carousel {
  position: relative;
  display: block;
  width: 100%;
  height: clamp(280px, 36vw, 460px);
  min-height: 0;
  overflow: hidden;
  border-radius: var(--hp-radius-card) var(--hp-radius-card) 0 0;
}

.home-feature {
  display: flex;
  min-width: 0;
  margin: 0;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--hp-border-default);
  border-radius: var(--hp-radius-card);
  background: var(--hp-surface-default);
  box-shadow: var(--hp-shadow-1);
}

.hero-carousel__slide,
.hero-carousel__picture,
.hero-carousel__slide img {
  display: block;
  width: 100%;
  height: 100%;
}

.hero-carousel__slide {
  position: absolute;
  inset: 0;
}

.hero-carousel__slide[hidden] { display: none; }
.hero-carousel__slide img { object-fit: cover; }

.hero-carousel__button {
  position: absolute;
  z-index: 3;
  top: 50%;
  width: 48px;
  height: 48px;
  border: 0;
  border-radius: var(--hp-radius-pill);
  color: var(--hp-text-control);
  background: rgb(13 34 40 / 72%);
  font-size: var(--hp-font-size-heading-2);
  transform: translateY(-50%);
}

.hero-carousel__button--previous { left: 14px; }
.hero-carousel__button--next { right: 14px; }

.hero-carousel__counter {
  position: absolute;
  z-index: 3;
  right: 16px;
  bottom: 16px;
  padding: 5px 9px;
  border-radius: 999px;
  color: #fff;
  background: rgb(13 34 40 / 72%);
}

.home-feature__caption {
  padding: 16px 18px 18px;
  border-top: 1px solid var(--hp-border-default);
}

.home-feature__caption a {
  display: flex;
  flex-direction: column;
  gap: 6px;
  color: var(--hp-text-primary);
  text-decoration: none;
}

.home-feature__caption strong {
  font-size: 17px;
  line-height: 24px;
}

.home-feature__caption span {
  color: var(--hp-brand-accent);
  font-size: 18px;
  font-weight: 700;
  line-height: 24px;
}

.home-feature__caption a:hover strong { text-decoration: underline; }
.entity-cover { width: 100%; max-height: 520px; margin-top: 20px; object-fit: cover; border-radius: 10px; }
.public-map { width: 100%; min-height: 360px; border: 0; border-radius: 8px; background: var(--color-surface-subtle, #eef3f2); }

.locale-selector--footer { width: fit-content; }

@media (max-width: 720px) {
  .hero-carousel { height: auto; min-height: 0; aspect-ratio: 4 / 3; }
  .property-badges { top: 12px; left: 12px; }
  .property-badges--gallery { max-width: calc(100% - 76px); }
  .public-map { min-height: 280px; }
}

.hero-actions,
.decision-link-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.content-engine-page__main {
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding-top: 56px;
  padding-bottom: 80px;
}

.hero-actions { margin: 22px 0; }

.decision-list {
  display: grid;
  gap: 10px;
  margin: 14px 0 0;
  padding-left: 22px;
}

.decision-link-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 20px 0;
}

.decision-link {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-height: 88px;
  padding: 18px;
  border: 1px solid var(--hp-border-default);
  border-radius: 10px;
  color: var(--hp-text-primary);
  text-decoration: none;
}

.decision-link:hover strong { text-decoration: underline; }
.decision-link span { color: var(--hp-text-secondary); }

.content-engine-gallery {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 20px 0;
}

.content-engine-gallery figure {
  margin: 0;
  overflow: hidden;
  border-radius: 10px;
  background: var(--color-surface-subtle, #eef3f2);
}

.content-engine-gallery img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.content-engine-gallery figcaption { padding: 10px 12px; }
.content-engine-inquiry { max-width: 720px; margin: var(--hp-spacing-32) auto; }
.canonical-project-link { margin: 24px 0; }
.facts-list small { display: block; margin-top: 4px; color: var(--hp-text-secondary); }
.comparison-table-wrap { overflow-x: auto; }
.comparison-facts table { width: 100%; min-width: 34rem; border-collapse: collapse; }
.comparison-facts th,
.comparison-facts td { padding: 12px; border-bottom: 1px solid var(--hp-border-default); text-align: left; vertical-align: top; }
.source-list { display: grid; gap: 8px; padding-left: 22px; }

@media (max-width: 720px) {
  .content-engine-page__main {
    gap: 20px;
    padding-top: 28px;
    padding-bottom: 64px;
  }

  .decision-link-grid,
  .content-engine-gallery { grid-template-columns: 1fr; }
  .hero-actions .button {
    width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .route-content .breadcrumbs li:last-child { display: none; }

  .plain-hero .hero-actions [data-open-drawer="inquiry-drawer"],
  .hero-actions--inquiry-only {
    display: none;
  }

  .mobile-sticky-cta .button {
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .comparison-table-wrap { overflow: visible; }

  .comparison-facts table {
    display: block;
    min-width: 0;
  }

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

  .comparison-facts tbody {
    display: grid;
    gap: 16px;
  }

  .comparison-facts tr,
  .comparison-facts th,
  .comparison-facts td {
    display: block;
    width: 100%;
  }

  .comparison-facts tr {
    padding: 14px;
    border: 1px solid var(--hp-border-default);
    border-radius: var(--hp-radius-control);
  }

  .comparison-facts th,
  .comparison-facts td {
    padding: 0;
    border: 0;
  }

  .comparison-facts th {
    margin-bottom: 12px;
    font-size: 16px;
  }

  .comparison-facts td {
    padding-top: 10px;
    border-top: 1px solid var(--hp-border-default);
  }

  .comparison-facts td::before {
    content: attr(data-entity);
    color: var(--hp-text-muted);
    font-size: 13px;
    font-weight: 600;
    line-height: 18px;
    display: block;
    margin-bottom: 4px;
  }
}

/* Property portal: compact controls, district photography and editorial rhythm. */
.mobile-product-nav{display:none}
.site-header{height:auto;min-height:var(--hp-header-height)}
.portal-hero{position:relative;isolation:isolate;display:grid;min-height:clamp(620px,70vh,720px);overflow:hidden;background:#385651}
.portal-hero:after{content:'';position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,#102b2bd9 0%,#17352c99 46%,#17352c26 78%),linear-gradient(0deg,#1029238f 0%,transparent 42%);pointer-events:none}
.portal-hero__inner{display:flex;min-height:inherit;flex-direction:column;justify-content:center;padding-top:48px;padding-bottom:38px}
.cinematic-hero,.cinematic-hero__scene,.cinematic-hero picture,.cinematic-hero img{position:absolute;inset:0;width:100%;height:100%}
.cinematic-hero{z-index:-2;overflow:hidden;background:#385651}
.cinematic-hero__scene{opacity:0;transition:opacity 1.4s ease-in-out;will-change:opacity}
.cinematic-hero__scene.is-current{z-index:1;opacity:1}
.cinematic-hero__scene.is-exiting{z-index:0;opacity:0}
.cinematic-hero img{display:block;object-fit:cover;object-position:center;will-change:transform}
.cinematic-hero__scene--1:is(.is-current,.is-exiting) img{animation:cinematic-push 6.4s ease-in-out both}
.cinematic-hero__scene--2:is(.is-current,.is-exiting) img{animation:cinematic-pull 6.4s ease-in-out both}
.cinematic-hero__scene--3:is(.is-current,.is-exiting) img{animation:cinematic-pan 6.4s ease-in-out both}
.cinematic-hero__scene--4:is(.is-current,.is-exiting) img{animation:cinematic-push 6.4s ease-in-out both}
.cinematic-hero__scene--5:is(.is-current,.is-exiting) img{animation:cinematic-pull-soft 6.4s ease-in-out both}
.cinematic-hero.is-paused img{animation-play-state:paused!important}
@keyframes cinematic-push{from{transform:scale(1)}to{transform:scale(1.06)}}
@keyframes cinematic-pull{from{transform:scale(1.07)}to{transform:scale(1.01)}}
@keyframes cinematic-pan{from{transform:scale(1.025) translateX(-1.2%)}to{transform:scale(1.025) translateX(1.2%)}}
@keyframes cinematic-pull-soft{from{transform:scale(1.06)}to{transform:scale(1)}}
.portal-hero__copy{position:relative;color:white;max-width:740px}
.portal-hero__copy .eyebrow{color:#fff;letter-spacing:.2em;font-size:11px;margin:0 0 16px}
.portal-hero h1{font-size:clamp(32px,3.7vw,48px);line-height:1.12;letter-spacing:-.035em;margin:0 0 16px;color:white;max-width:650px}
.portal-hero__copy>p:last-child{font-size:17px;line-height:1.5;max-width:490px;margin:0;color:#ffffffe8}
.portal-check{display:flex;align-items:center;gap:var(--hp-spacing-10);min-height:44px}.portal-check input{width:20px;height:20px;accent-color:var(--hp-action-primary)}
.portal-hero__links{display:flex;align-items:center;justify-content:center;gap:10px;padding-top:10px;color:#ffffffe0;font-size:13px;text-shadow:0 1px 12px #102a22}
.portal-hero__links .button{text-decoration:underline;text-underline-offset:4px}
.cinematic-hero__credits{position:absolute;right:var(--hp-page-gutter);bottom:10px;color:#ffffffb8;font-size:10px;line-height:1.5;text-align:right}
.cinematic-hero__credits summary{cursor:pointer;list-style:none}.cinematic-hero__credits summary::-webkit-details-marker{display:none}.cinematic-hero__credits span{display:block;padding-top:3px}.cinematic-hero__credits a{color:inherit}
.route-home .content-section{padding:42px 0}.route-home .section-header{min-height:0;margin-bottom:24px;align-items:end}
.route-home .section-header h2{font-size:clamp(25px,2.6vw,34px);line-height:1.2;letter-spacing:-.025em}
.route-home .section-header__copy p{max-width:620px;font-size:15px;line-height:1.6;color:#738079;margin-top:10px}
.home-property-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;max-width:none}
.collection-more{display:block;margin:24px auto 0}.collection-status:empty{display:none}
.collection-more[hidden]{display:none}.collection-more:disabled{cursor:wait;opacity:.65}.collection-status{text-align:center}
.home-collection[data-home-collection$="Projects"]{background:#f4f6f2}
.home-collection .building-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.home-collection .project-card{border-color:#e2e8df;background:white}
.district-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.district-tile{display:block;position:relative;aspect-ratio:1.15;border-radius:20px;overflow:hidden;background:#63786e;color:white;text-decoration:none}
.district-tile>img{width:100%;height:100%;object-fit:cover;transition:transform .25s}
.district-tile:after{content:'';position:absolute;inset:30% 0 0;background:linear-gradient(transparent,#142a26b8)}
.district-tile>span{position:absolute;inset:auto 18px 17px;display:flex;justify-content:space-between;align-items:center;gap:8px;z-index:1;font-size:17px}
.district-tile strong{font-weight:550}.district-tile:hover>img{transform:scale(1.04)}
.portal-process{background:#fbfaf7}.portal-process .process-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}
.portal-process .process-card{border:0;border-radius:0;background:none;padding:0;box-shadow:none}
.process-art{display:block;width:100%;max-width:230px;height:auto;margin:0 auto 18px}
.portal-process .process-card h3{font-size:18px;margin:8px 0 10px;line-height:1.3}.portal-process .process-card>p:last-child{font-size:14px;line-height:1.7;color:#738079;margin:0}
.portal-process .eyebrow{font-size:12px;color:#9b8d73}.process-cta{margin-top:28px;text-align:center}
.reading-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}.reading-card{border:1px solid #e5ebe5;border-radius:20px;overflow:hidden;background:white}
.reading-card>a{display:block;aspect-ratio:1.8;overflow:hidden}.reading-card img{width:100%;height:100%;object-fit:cover}.reading-card>div{padding:20px}.reading-card h3{font-size:20px;line-height:1.35;margin:0 0 12px}.reading-card h3 a{text-decoration:none;color:inherit}.reading-card p{font-size:14px;line-height:1.65;color:#738079;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin:0 0 18px}.reading-card__link{display:flex;justify-content:space-between;align-items:center;color:#4c6b56;font-size:14px;text-decoration:none}
.portal-cta-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:24px}.portal-cta{border-radius:24px;padding:32px;background:#f4f6f2}.portal-cta h2{font-size:26px;line-height:1.25;margin:0 0 14px;letter-spacing:-.02em}.portal-cta p{font-size:14px;line-height:1.7;color:#728075}.portal-cta .button{margin-top:var(--hp-spacing-12)}.portal-cta--seller{display:flex;gap:18px;background:#f8f2e8}.portal-cta--seller>div{flex:1}.portal-cta--seller .process-art{width:145px;align-self:center}.portal-cta .eyebrow{font-size:10px;letter-spacing:.2em;margin:0 0 16px}
.photo-credits{font-size:11px;color:#7b857e;margin:16px 0 30px}.photo-credits summary{cursor:pointer}.photo-credits li{margin:8px 0}.photo-credits a{color:inherit}
.drawer--lead .drawer__panel{max-width:560px}.drawer--lead .drawer__header{justify-content:flex-end;padding-bottom:0}.drawer--lead .inquiry-form{box-shadow:none;border:0;background:white;padding:0}.drawer--lead .inquiry-form h2{line-height:1.2}
@media(max-width:1100px){.primary-nav a:nth-child(n+4){display:none}.portal-cta--seller .process-art{width:110px}}
@media(max-width:900px){.mobile-product-nav{display:flex;align-items:center;justify-content:center;gap:32px;padding-top:0;padding-bottom:12px}.mobile-product-nav a{font-size:14px;text-decoration:none;color:#3f5348;font-weight:550}.district-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-process .process-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.reading-grid{gap:16px}.portal-cta-grid{grid-template-columns:1fr 1fr}.portal-cta--seller .process-art{display:none}}
@media(max-width:600px){
  .mobile-product-nav{gap:28px;padding-bottom:11px}.mobile-product-nav a{font-size:14px}
  .portal-hero{min-height:clamp(600px,76vh,680px)}.portal-hero:after{background:linear-gradient(180deg,#102b2bc2 0%,#17352c73 48%,#102923d1 100%)}.portal-hero__inner{justify-content:center;padding-top:34px;padding-bottom:36px}.portal-hero__copy .eyebrow{font-size:9px;margin-bottom:12px}.portal-hero h1{font-size:32px;max-width:330px;margin-bottom:12px}.portal-hero__copy>p:last-child{font-size:14px;line-height:1.5;max-width:330px}.cinematic-hero img{object-position:center}.portal-hero__links{font-size:11px;gap:7px;flex-wrap:wrap;padding-top:8px}.cinematic-hero__credits{right:16px;bottom:6px}
  .route-home .content-section{padding:28px 0}.route-home .section-header{gap:12px;margin-bottom:18px;align-items:start}.route-home .section-header h2{font-size:26px}.route-home .section-header__action{font-size:12px;white-space:nowrap}.route-home .section-header__copy p{font-size:14px}
  .home-property-grid{grid-template-columns:1fr;gap:20px}
  .home-collection .building-grid{grid-template-columns:1fr;gap:16px}
  .district-grid{gap:12px}.district-tile{aspect-ratio:1.04;border-radius:17px}.district-tile>span{inset:auto 12px 12px;font-size:14px}.district-tile>span>span{font-size:18px}
  .portal-process .process-grid{gap:28px 18px}.process-art{margin-bottom:12px}.portal-process .process-card h3{font-size:16px}.portal-process .process-card>p:last-child{font-size:13px;line-height:1.55}.portal-process .eyebrow{margin:0}
  .reading-grid{grid-template-columns:1fr;gap:20px}.reading-card>a{aspect-ratio:1.9}.reading-card>div{padding:18px}.reading-card h3{font-size:21px}.portal-cta-grid{grid-template-columns:1fr;gap:18px}.portal-cta{padding:26px}.portal-cta h2{font-size:25px}.drawer--lead .drawer__panel{max-width:none}
}
@media(prefers-reduced-motion:reduce){.district-tile>img{transition:none}.cinematic-hero__scene{display:none;transition:none}.cinematic-hero__scene:first-child{display:block;opacity:1}.cinematic-hero img{animation:none!important;transform:none!important}}

@media(min-width:1200px){
  .home-property-grid,.property-grid--results,.property-grid--three,.property-grid--latest{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}
}
.drawer--card-contact .drawer__scrim{background:#23352c30;backdrop-filter:blur(6px)}
.drawer--card-contact .drawer__panel{inset:50% auto auto 50%;transform:translate(-50%,-50%);width:min(460px,calc(100% - 24px));max-width:460px;height:auto;max-height:calc(100dvh - 32px);border-radius:var(--hp-radius-large);padding:0;animation:none;box-shadow:var(--hp-shadow-control)}
.drawer--card-contact .drawer__header{position:absolute;top:4px;right:4px;z-index:2;min-height:44px;padding:0;border:0}
.drawer--card-contact .drawer__header .icon-button{font-size:var(--hp-font-size-heading-3);color:var(--hp-text-control)}
.drawer--card-contact .drawer__scroll{min-height:0;padding:var(--hp-spacing-32) var(--hp-spacing-32) var(--hp-spacing-24);overflow-y:auto}
.drawer--card-contact .inquiry-form__heading{text-align:center;padding-inline:var(--hp-spacing-8)}
.drawer--card-contact .inquiry-form__heading h2{font-size:var(--hp-font-size-heading-3);line-height:1.2;margin:0 0 var(--hp-spacing-12)}
.drawer--card-contact .inquiry-form__heading p{font-size:var(--hp-font-size-small);line-height:1.45;margin:0;color:var(--hp-text-control)}
.drawer--card-contact .inquiry-form__status:empty{display:none}
.drawer--card-contact .lead-form__footer{font-size:var(--hp-font-size-caption);line-height:1.5;color:var(--hp-text-control)}
@media(max-width:480px){
  .drawer--card-contact .drawer__scroll{padding:var(--hp-spacing-32) var(--hp-spacing-20) var(--hp-spacing-24)}
  .drawer--card-contact .inquiry-form__heading h2{font-size:var(--hp-font-size-heading-3)}
}

/* Homepage search: compact intent tabs, useful suggestions and one price range. */
.drawer--filters .drawer__panel{width:min(520px,100%);background:var(--hp-surface-elevated)}
.drawer--filters .drawer__header{background:var(--hp-surface-elevated)}
.drawer--filters .drawer__header h2{margin:0;font-size:var(--hp-font-size-heading-3);letter-spacing:-.02em}
.drawer--filters .portal-check{min-height:46px;padding:var(--hp-spacing-10) var(--hp-spacing-12);border:1px solid var(--hp-border-control);border-radius:var(--hp-radius-card);background:var(--hp-surface-elevated)}
.drawer--filters .drawer__footer{background:var(--hp-surface-elevated)}
.footer-consent-settings{margin:0;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.footer-consent-settings[hidden]{display:none}

.property-badges--card{top:var(--hp-card-media-overlay-inset);left:var(--hp-card-media-overlay-inset);max-width:calc(100% - var(--hp-size-icon-button) - var(--hp-spacing-12));flex-direction:row;flex-wrap:wrap;gap:var(--hp-spacing-4)}
.property-badges--card .property-badge{font-size:var(--hp-font-size-caption);line-height:var(--hp-line-height-caption);padding:var(--hp-spacing-2) var(--hp-spacing-8);min-height:var(--hp-spacing-24)}
[data-card-gallery][aria-busy="true"] .card-gallery-arrow{opacity:.6}

/* Premium Pattaya navigation: compact desktop mega menus and a full-height mobile drawer. */
.site-header{
  position:sticky;
  z-index:200;
  top:0;
  height:var(--hp-header-height);
  min-height:var(--hp-header-height);
  background:rgb(255 255 255 / 96%);
  box-shadow:0 1px 0 var(--hp-border-default);
  backdrop-filter:saturate(145%) blur(12px);
}
.site-header__row{height:var(--hp-header-height);gap:28px}
.site-header__left{flex:1 1 auto;gap:28px;overflow:visible}
.site-header__utilities{gap:8px}
.site-header__line{display:none}
.primary-nav{display:flex;align-items:center;gap:2px;overflow:visible}
.primary-nav__item{position:relative;display:flex;align-items:center;min-width:max-content}
.primary-nav__item::after{position:absolute;top:100%;right:0;left:0;height:20px;content:""}
.primary-nav__toggle,
.primary-nav>a{
  display:inline-flex;
  min-height:44px;
  align-items:center;
  gap:6px;
  padding:0 10px;
  border:0;
  border-radius:8px;
  background:transparent;
  color:#26372f;
  font-size:14px;
  font-weight:600;
  line-height:20px;
  text-decoration:none;
}
.primary-nav__toggle>span{color:#78847f;font-size:14px;transition:transform 180ms ease}
.primary-nav__toggle:hover,
.primary-nav__toggle[aria-expanded="true"],
.primary-nav>a:hover,
.primary-nav>a[aria-current="page"]{background:#f3f6f4;color:#182d24;text-decoration:none}
.primary-nav__toggle[aria-expanded="true"]>span{transform:rotate(180deg)}
.mega-menu{
  position:fixed;
  z-index:220;
  top:var(--hp-header-height);
  left:50%;
  width:min(920px,calc(100vw - 64px));
  padding-top:var(--hp-spacing-12);
  visibility:hidden;
  opacity:0;
  pointer-events:none;
  transform:translate(-50%,-8px);
  transition:opacity 180ms ease,transform 180ms ease,visibility 180ms;
  white-space:normal;
}
.primary-nav__toggle[aria-expanded="true"]+.mega-menu{
  visibility:visible;
  opacity:1;
  pointer-events:auto;
  transform:translate(-50%,0);
}
.mega-menu__inner{
  display:grid;
  grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) minmax(280px,1.35fr);
  gap:var(--hp-spacing-32);
  padding:var(--hp-spacing-24);
  border:1px solid var(--hp-border-control);
  border-radius:var(--hp-radius-card);
  background:var(--hp-surface-elevated);
  box-shadow:var(--hp-shadow-control);
}
.mega-menu__column{display:grid;align-content:start;gap:var(--hp-spacing-12)}
.mega-menu__column h2{
  margin:0;
  color:var(--hp-text-control);
  font-size:var(--hp-font-size-caption);
  font-weight:700;
  letter-spacing:.11em;
  line-height:18px;
  text-transform:uppercase;
}
.mega-menu__column>div{display:grid;gap:var(--hp-spacing-2)}
.mega-menu__column a{
  display:flex;
  min-height:40px;
  align-items:center;
  padding:var(--hp-spacing-8) var(--hp-spacing-10);
  border-radius:var(--hp-radius-small);
  color:var(--hp-text-control);
  font-size:var(--hp-font-size-small);
  font-weight:600;
  line-height:20px;
  text-decoration:none;
}
.mega-menu__column a:hover,.mega-menu__column a:focus-visible{background:var(--hp-surface-option-hover);color:var(--hp-text-control)}
.mega-menu__column .mega-menu__all{margin-top:var(--hp-spacing-4);color:var(--hp-text-control)}
.mega-menu__cta{position:relative;min-height:212px;overflow:hidden;border-radius:var(--hp-radius-card);background:var(--hp-surface-inverse);color:var(--hp-text-on-action)}
.mega-menu__cta>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.3}
.mega-menu__cta::after{position:absolute;inset:0;background:linear-gradient(90deg,rgb(25 55 44 / 90%),rgb(25 55 44 / 48%));content:""}
.mega-menu__cta>div{position:relative;z-index:1;display:flex;min-height:212px;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:var(--hp-spacing-24)}
.mega-menu__cta h3{max-width:260px;margin:0 0 var(--hp-spacing-8);color:var(--hp-text-on-action);font-size:var(--hp-font-size-heading-4);line-height:27px}
.mega-menu__cta p{max-width:300px;margin:0 0 var(--hp-spacing-16);color:var(--hp-text-on-action);font-size:var(--hp-font-size-label);line-height:20px}
.mega-menu__cta-link{color:var(--hp-text-on-action);font-size:var(--hp-font-size-small);font-weight:700;text-decoration:none}
.mega-menu__cta-link:hover{text-decoration:underline;text-underline-offset:4px}
.saved-link{width:auto;min-width:84px;height:44px;gap:7px;padding:0 10px;border-radius:8px;text-decoration:none}
.saved-link:hover{background:#f3f6f4}
.saved-link__label{font-size:13px;font-weight:600}
.saved-link__count{display:grid;min-width:20px;height:20px;place-items:center;border-radius:10px;background:#eef2ef;color:#405249;font-size:11px;font-weight:700}
.locale-selector,.locale-selector summary{width:86px}
.header-find-cta{white-space:nowrap}
.menu-button{display:none}
.menu-navigation{display:grid;gap:var(--hp-spacing-2)}
.mobile-nav-section{border-bottom:1px solid #edf0ee}
.mobile-nav-section summary{
  display:flex;
  min-height:58px;
  list-style:none;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  color:#20342b;
  font-size:18px;
  font-weight:650;
  line-height:24px;
}
.mobile-nav-section summary::-webkit-details-marker{display:none}
.mobile-nav-section summary>span{color:#819087;transition:transform 180ms ease}
.mobile-nav-section[open] summary>span{transform:rotate(180deg)}
.mobile-nav-section__links{display:grid;grid-template-columns:1fr 1fr;gap:3px 12px;padding:0 0 16px}
.mobile-nav-section__links a,.mobile-nav-direct a{
  display:flex;
  min-height:44px;
  align-items:center;
  padding:8px 10px;
  border-radius:8px;
  color:#485a51;
  font-size:14px;
  font-weight:550;
  line-height:20px;
  text-decoration:none;
}
.mobile-nav-section__links a:hover,.mobile-nav-section__links a:focus-visible,.mobile-nav-direct a:hover,.mobile-nav-direct a:focus-visible{background:#f3f6f4;color:#a30a14}
.mobile-nav-direct{display:grid;grid-template-columns:1fr 1fr;gap:3px 12px;padding-top:12px}
.drawer--menu .drawer__panel{width:min(520px,92vw)}
.drawer--menu .drawer__header{min-height:72px}
.menu-drawer__scroll{padding-top:var(--hp-spacing-16)}
.menu-drawer__cta{min-height:50px;border-radius:var(--hp-radius-card)}

@media(max-width:1280px){
  .site-header__left{gap:18px}
  .primary-nav__toggle,.primary-nav>a{padding-inline:8px;font-size:13px}
  .saved-link{min-width:48px;padding-inline:8px}
  .saved-link__label{display:none}
}
@media(max-width:1180px){
  .site-header{--hp-header-height:72px}
  .primary-nav,.header-find-cta{display:none}
  .site-header__left{flex:1 1 auto}
  .menu-button{display:inline-flex;width:var(--hp-size-icon-button);min-width:44px;padding:0;border:0;border-radius:var(--hp-radius-small)}
  .menu-button__label{display:none}
  .brand--desktop,.brand--desktop img{width:122px;height:auto}
}
@media(max-width:900px){
  .site-header{--hp-header-height:64px}
  .brand--desktop{display:none}
  .brand--mobile{display:inline-flex}
  .site-header .saved-link{display:flex;min-width:44px;padding:0 6px}
  .drawer--menu .drawer__panel{width:min(520px,92vw)}
}
@media(max-width:520px){
  .site-header__row{gap:6px}
  .site-header__utilities{gap:1px}
  .brand--mobile,.brand--mobile img{width:106px;height:auto}
  .saved-link__count{position:absolute;top:3px;right:1px;min-width:16px;height:16px;font-size:9px}
  .saved-link{position:relative}
  .locale-selector__chevron{display:none}
  .drawer--menu .drawer__panel{width:100%}
  .mobile-nav-section__links{grid-template-columns:1fr}
}
@media(max-width:359px){
  .brand--mobile,.brand--mobile img{width:90px}
}

/* Neutral navigation and a layered homepage search using the established HotPattaya palette. */
.site-header{background:rgb(255 255 255 / 97%)}
.primary-nav__toggle,.primary-nav>a{color:#242424}
.primary-nav__toggle>span{color:#777}
.primary-nav__toggle:hover,.primary-nav__toggle[aria-expanded="true"],.primary-nav>a:hover,.primary-nav>a[aria-current="page"],.saved-link:hover{background:#f3f3f3;color:#111}
.mega-menu__inner{border-color:var(--hp-border-control);box-shadow:var(--hp-shadow-control)}
.mega-menu__column h2{color:var(--hp-text-control)}
.mega-menu__column a{color:var(--hp-text-control)}
.mega-menu__column a:hover,.mega-menu__column a:focus-visible,.mobile-nav-section__links a:hover,.mobile-nav-section__links a:focus-visible,.mobile-nav-direct a:hover,.mobile-nav-direct a:focus-visible{background:var(--hp-surface-option-hover);color:var(--hp-action-primary-hover)}
.mega-menu__cta{background:var(--hp-surface-inverse)}
.mega-menu__cta>img{filter:grayscale(1);opacity:.42}
.mega-menu__cta::after{background:linear-gradient(90deg,rgb(0 0 0 / 88%),rgb(0 0 0 / 45%))}
.saved-link__count{background:#f0f0f0;color:#444}
.mobile-nav-section{border-bottom-color:#e7e7e7}
.mobile-nav-section summary{color:#222}
.mobile-nav-section summary>span{color:#777}
.mobile-nav-section__links a,.mobile-nav-direct a{color:#4a4a4a}

.portal-hero{z-index:2;overflow:visible;background:#222}
.portal-hero:after{background:linear-gradient(90deg,rgb(0 0 0 / 74%) 0%,rgb(0 0 0 / 43%) 48%,rgb(0 0 0 / 12%) 78%),linear-gradient(0deg,rgb(0 0 0 / 58%) 0%,transparent 44%)}
.cinematic-hero{overflow:hidden;background:#222}
.drawer--filters .drawer__panel{background:var(--hp-surface-elevated)}
.drawer--filters .portal-check{border-color:var(--hp-border-control);background:var(--hp-surface-elevated)}

/* Shared premium property filters and URL-backed results toolbar. */
.portal-hero:has(.drawer--filters:not([hidden])){z-index:1001}
.route-search .search-page:has(.drawer--filters:not([hidden])){position:relative;z-index:1001}
.drawer--filters .drawer__panel{width:min(450px,100%);background:var(--hp-surface-elevated)}.drawer--filters .drawer__header{min-height:68px;padding:var(--hp-spacing-10) var(--hp-spacing-20);background:var(--hp-surface-elevated)}.drawer--filters .drawer__header h2{font-size:var(--hp-font-size-heading-3)}.drawer--filters .drawer__header .text-action:disabled{visibility:hidden}.drawer--filters .drawer__footer{display:grid;grid-template-columns:auto 1fr;gap:var(--hp-spacing-10);padding:var(--hp-spacing-12) var(--hp-spacing-20) max(var(--hp-spacing-12),env(safe-area-inset-bottom));background:var(--hp-surface-elevated)}.drawer--filters .drawer__footer .button--secondary{width:auto;white-space:nowrap}.filter-project{z-index:3}
.search-heading{display:flex;align-items:end;justify-content:space-between;gap:20px}.search-heading h1{margin-bottom:5px}.search-heading p,.search-toolbar>p{margin:0;color:var(--hp-text-secondary);font-size:14px}.search-toolbar{display:flex;min-height:58px;align-items:center;justify-content:space-between;gap:16px;margin:8px 0 12px}.search-toolbar>div{display:flex;align-items:center;gap:10px}.active-filters{display:flex;flex-wrap:wrap;align-items:center;gap:var(--hp-spacing-8);margin:0 0 var(--hp-spacing-20)}.active-filter-chip{display:inline-flex;min-height:var(--hp-size-icon-button);align-items:center;gap:var(--hp-spacing-6);padding:var(--hp-spacing-6) var(--hp-spacing-12);border:1px solid var(--hp-border-control);border-radius:var(--hp-radius-pill);background:var(--hp-surface-elevated);color:var(--hp-text-control);font-size:var(--hp-font-size-label);text-decoration:none}.active-filter-chip:hover{border-color:var(--hp-border-control)}.active-filter-chip span{font-size:var(--hp-font-size-body);line-height:1}.active-filters__reset{margin-left:var(--hp-spacing-4);color:var(--hp-text-control);font-size:var(--hp-font-size-label);text-underline-offset:3px}
@media(max-width:700px){.drawer--filters .drawer__panel{width:100%;max-width:none}.drawer--filters .drawer__header{min-height:62px;padding:var(--hp-spacing-8) var(--hp-spacing-16)}.drawer--filters .drawer__footer{padding-inline:var(--hp-spacing-16)}.search-toolbar{position:sticky;z-index:8;top:0;margin-inline:-16px;padding:8px 16px;background:rgb(255 255 255 / 96%);box-shadow:0 4px 14px rgb(20 40 32 / 6%)}.search-toolbar>p{display:none}.active-filters{margin-top:var(--hp-spacing-6)}}
@media(max-width:390px){.drawer--filters .drawer__footer{grid-template-columns:1fr 1.6fr}}

/* Remove the green cast from the portal surfaces touched by the latest visual layer. */
.route-home .section-header__copy p,.portal-process .process-card>p:last-child,.reading-card p,.portal-cta p{color:#686868}
.home-collection .project-card,.reading-card{border-color:#e5e5e5}
.home-collection[data-home-collection$="Projects"],.portal-cta{background:#f5f5f5}
.home-collection .project-card{border-color:#e3e3e3}
.district-tile{background:#555}
.district-tile:after{background:linear-gradient(transparent,rgb(0 0 0 / 76%))}
.reading-card__link{color:var(--hp-action-primary-hover)}
@media(max-width:600px){
  .portal-hero{min-height:clamp(650px,82vh,760px)}
  .portal-hero:after{background:linear-gradient(180deg,rgb(0 0 0 / 69%) 0%,rgb(0 0 0 / 35%) 48%,rgb(0 0 0 / 72%) 100%)}
}

/* 2026-09 unified search, overlays, currency and result-density controls. */
.overlay-close{display:inline-grid;width:var(--hp-size-icon-button);height:var(--hp-size-icon-button);place-items:center;padding:0;border:1px solid transparent;border-radius:var(--hp-radius-pill);background:transparent;color:var(--hp-text-control);font:inherit;font-size:var(--hp-font-size-heading-2);line-height:1;cursor:pointer}
.overlay-close:hover{background:var(--hp-surface-option-hover)}
.overlay-close:focus-visible{outline:3px solid var(--hp-focus-ring-soft);outline-offset:2px}
.overlay-close--inverse{color:var(--hp-text-on-action)}
.overlay-close--inverse:hover{background:var(--hp-surface-inverse-elevated)}
.drawer--filters .drawer__scroll{overscroll-behavior:contain;padding-bottom:var(--hp-spacing-16)}
.drawer--filters .drawer__footer{position:sticky;bottom:0;padding-bottom:max(var(--hp-spacing-12),env(safe-area-inset-bottom))}
.currency-selector{position:relative}
.currency-selector summary{display:flex;min-width:66px;align-items:center;justify-content:center;list-style:none;cursor:pointer}
.currency-selector summary::-webkit-details-marker{display:none}
.currency-selector__menu{position:absolute;z-index:1010;top:calc(100% + 8px);right:0;display:grid;min-width:104px}
.currency-selector__menu button{text-align:left;cursor:pointer}
.view-density{display:flex;padding:var(--hp-spacing-2);border:1px solid var(--hp-border-default);border-radius:var(--hp-radius-control);background:var(--hp-surface-control)}
.view-density button{display:grid;width:var(--hp-size-icon-button);height:var(--hp-size-icon-button);place-items:center;padding:0;border:0;border-radius:var(--hp-radius-small);background:transparent;color:var(--hp-text-view-icon);cursor:pointer}
.view-density button[aria-pressed="true"]{background:var(--hp-surface-selection);color:var(--hp-text-on-action)}.view-density button:focus-visible{outline:3px solid var(--hp-focus-ring-soft);outline-offset:2px}.view-density svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7}
.listing-view-controls{display:flex;justify-content:flex-end;margin-bottom:var(--hp-spacing-16)}
.listing-section-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--hp-spacing-16);margin-bottom:var(--hp-spacing-24)}
.listing-section-heading .section-header,.listing-section-heading .listing-view-controls{margin-bottom:0}
.listing-section-heading .section-header{min-width:0;min-height:0}
.search-heading{align-items:center;flex-wrap:wrap}
.property-grid.property-grid--compact,
html[data-result-density="compact"] .property-grid[data-density-kind="property"]{grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--hp-spacing-12)}
.building-grid.building-grid--compact,
html[data-result-density="compact"] .building-grid[data-density-kind="project"]{grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--hp-spacing-12)}
.building-grid--compact .project-card__content,
html[data-result-density="compact"] [data-density-kind="project"] .project-card__content{padding:var(--hp-spacing-16)}
.building-grid--compact .project-card__price,
html[data-result-density="compact"] [data-density-kind="project"] .project-card__price{margin-bottom:var(--hp-spacing-8);font-size:var(--hp-font-size-heading-4)}
.building-grid--compact .project-card__identity,
html[data-result-density="compact"] [data-density-kind="project"] .project-card__identity{margin-bottom:var(--hp-spacing-12)}
.building-grid--compact .project-card__identity h3,
html[data-result-density="compact"] [data-density-kind="project"] .project-card__identity h3{font-size:var(--hp-font-size-body)}
.building-grid--compact .project-card__facts,
html[data-result-density="compact"] [data-density-kind="project"] .project-card__facts{padding-bottom:var(--hp-spacing-12)}
.building-grid--compact .project-card__facts>div:nth-child(n+3),
html[data-result-density="compact"] [data-density-kind="project"] .project-card__facts>div:nth-child(n+3),
.building-grid--compact .project-card__mix,
html[data-result-density="compact"] [data-density-kind="project"] .project-card__mix{display:none}
.building-grid--compact .project-card__actions,
html[data-result-density="compact"] [data-density-kind="project"] .project-card__actions{grid-template-columns:1fr}
.building-grid--compact .project-card__actions .button:nth-child(n+2),
html[data-result-density="compact"] [data-density-kind="project"] .project-card__actions .button:nth-child(n+2){display:none}

@media(max-width:1100px){
  .property-grid.property-grid--compact,
  html[data-result-density="compact"] .property-grid[data-density-kind="property"],
  .building-grid.building-grid--compact,
  html[data-result-density="compact"] .building-grid[data-density-kind="project"]{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:700px){
  .site-header__utilities{min-width:0}.currency-selector summary{min-width:58px}.currency-selector summary>span:last-child{display:none}
  .drawer--filters .drawer__panel{height:100dvh;max-height:100dvh}.drawer--filters .drawer__scroll{padding-bottom:max(var(--hp-spacing-24),env(safe-area-inset-bottom))}
  .property-grid.property-grid--compact,
  html[data-result-density="compact"] .property-grid[data-density-kind="property"],
  .building-grid.building-grid--compact,
  html[data-result-density="compact"] .building-grid[data-density-kind="project"]{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--hp-spacing-8)}
  .property-grid--compact .property-card,
  html[data-result-density="compact"] [data-density-kind="property"] .property-card {
    --hp-card-content-padding: var(--hp-spacing-8);
    --hp-card-content-gap: var(--hp-spacing-12);
    --hp-card-metadata-gap: var(--hp-spacing-8);
    --hp-card-title-size: var(--hp-card-compact-title-size);
    --hp-card-price-size: var(--hp-card-compact-price-size);
    --hp-card-detail-size: var(--hp-card-compact-detail-size);
  }
  .property-grid--compact .property-card__media,
  html[data-result-density="compact"] [data-density-kind="property"] .property-card__media,
  .building-grid--compact .project-card__media,
  html[data-result-density="compact"] [data-density-kind="project"] .project-card__media {
    min-height: calc(var(--hp-size-icon-button) * 3);
  }
  .property-grid--compact .property-card__facts,
  html[data-result-density="compact"] [data-density-kind="property"] .property-card__facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .property-grid--compact .property-card__facts--secondary,
  html[data-result-density="compact"] [data-density-kind="property"] .property-card__facts--secondary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .property-grid--compact .property-card__facts:not(.property-card__facts--secondary) .card-fact:last-child,
  html[data-result-density="compact"] [data-density-kind="property"] .property-card__facts:not(.property-card__facts--secondary) .card-fact:last-child { grid-column: 1 / -1; }
  .property-grid--compact .card-fact,
  html[data-result-density="compact"] [data-density-kind="property"] .card-fact { gap: var(--hp-spacing-4); }
  .property-grid--compact .card-fact svg,
  html[data-result-density="compact"] [data-density-kind="property"] .card-fact svg { width: var(--hp-spacing-16); }
  .building-grid--compact .project-card__media,
  html[data-result-density="compact"] [data-density-kind="project"] .project-card__media{aspect-ratio:4/3}
  .building-grid--compact .project-card__content,
  html[data-result-density="compact"] [data-density-kind="project"] .project-card__content{padding:var(--hp-spacing-8)}
  .building-grid--compact .project-card__price,
  html[data-result-density="compact"] [data-density-kind="project"] .project-card__price{min-height:var(--hp-spacing-40);margin-bottom:var(--hp-spacing-4);font-size:var(--hp-font-size-small);line-height:var(--hp-line-height-small)}
  .building-grid--compact .project-card__identity,
  html[data-result-density="compact"] [data-density-kind="project"] .project-card__identity{margin-bottom:var(--hp-spacing-8)}
  .building-grid--compact .project-card__identity h3,
  html[data-result-density="compact"] [data-density-kind="project"] .project-card__identity h3{display:-webkit-box;min-height:var(--hp-spacing-40);overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:var(--hp-font-size-small);line-height:var(--hp-line-height-small)}
  .building-grid--compact .project-card__identity p,
  html[data-result-density="compact"] [data-density-kind="project"] .project-card__identity p{overflow:hidden;font-size:var(--hp-font-size-caption);text-overflow:ellipsis;white-space:nowrap}
  .building-grid--compact .project-card__facts,
  html[data-result-density="compact"] [data-density-kind="project"] .project-card__facts{grid-template-columns:1fr;gap:var(--hp-spacing-8)}
  .building-grid--compact .project-card__facts dt,
  .building-grid--compact .project-card__facts dd,
  html[data-result-density="compact"] [data-density-kind="project"] .project-card__facts dt,
  html[data-result-density="compact"] [data-density-kind="project"] .project-card__facts dd{font-size:var(--hp-font-size-caption);line-height:var(--hp-line-height-caption)}
}
@media(max-width:430px){.brand--mobile,.brand--mobile img{width:96px}.site-header .saved-link{display:none}.site-header__utilities{gap:0}}

.legal-page,.html-sitemap{padding-bottom:var(--hp-spacing-80)}
.legal-page .plain-hero,.html-sitemap .plain-hero{max-width:820px;padding-bottom:24px}.legal-page .plain-hero p,.html-sitemap .plain-hero p{max-width:720px;color:var(--hp-text-secondary);font-size:18px;line-height:1.65}.legal-page .plain-hero small{color:var(--hp-text-muted)}
.legal-page__content{max-width:820px}.legal-page__content section{padding:25px 0;border-top:1px solid var(--hp-border-default)}.legal-page__content h2{margin:0 0 12px;font-size:23px}.legal-page__content p{margin:0 0 12px;color:#363636;line-height:1.75}
.html-sitemap__sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 56px}.html-sitemap__sections>section{padding-top:20px;border-top:1px solid var(--hp-border-default)}.html-sitemap__sections h2{margin:0 0 18px;font-size:24px}.html-sitemap__sections ul{display:grid;gap:8px;margin:0;padding:0;list-style:none}.html-sitemap__sections a{color:#222;text-underline-offset:3px}.html-sitemap__projects{grid-column:1/-1}.sitemap-alpha{display:flex;flex-wrap:wrap;gap:var(--hp-spacing-6);margin-bottom:var(--hp-spacing-24)}.sitemap-alpha a{display:grid;min-width:42px;min-height:42px;place-items:center;border:1px solid var(--hp-border-default);border-radius:var(--hp-radius-small);text-decoration:none}.sitemap-alpha a:hover{border-color:var(--hp-action-primary);color:var(--hp-action-primary)}.sitemap-project-groups{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:26px}.sitemap-project-groups section{scroll-margin-top:90px}.sitemap-project-groups h3{margin:0 0 11px;color:var(--hp-action-primary);font-size:23px}
@media(max-width:900px){.sitemap-project-groups{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.html-sitemap__sections{grid-template-columns:1fr;gap:26px}.html-sitemap__projects{grid-column:auto}.sitemap-project-groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 18px}.legal-page .plain-hero p,.html-sitemap .plain-hero p{font-size:16px}.legal-page__content h2{font-size:20px}}

/* Premium unified search, card controls and footer. */
.ui-icon{display:block;width:20px;height:20px;flex:0 0 auto}
.portal-hero:after{background:linear-gradient(90deg,rgb(0 0 0 / 76%) 0%,rgb(0 0 0 / 48%) 52%,rgb(0 0 0 / 20%) 100%),linear-gradient(0deg,rgb(0 0 0 / 62%) 0%,transparent 48%)}

.property-card__media,.project-card__media{
  --hp-card-media-control-current:var(--hp-size-card-media-control);
  --hp-card-media-icon-current:var(--hp-size-card-media-icon);
  --hp-card-favorite-icon-current:var(--hp-size-card-favorite-icon);
  --hp-card-media-hit-inset:var(--hp-spacing-4);
  --hp-card-media-overlay-inset:var(--hp-spacing-10);
}
.property-grid--compact .property-card__media,
html[data-result-density="compact"] [data-density-kind="property"] .property-card__media,
.building-grid--compact .project-card__media,
html[data-result-density="compact"] [data-density-kind="project"] .project-card__media,
.project-card--compact .project-card__media{
  --hp-card-media-control-current:var(--hp-size-card-media-control-compact);
  --hp-card-media-icon-current:var(--hp-size-card-media-icon-compact);
  --hp-card-favorite-icon-current:var(--hp-size-card-favorite-icon-compact);
  --hp-card-media-hit-inset:0px;
  --hp-card-media-overlay-inset:var(--hp-spacing-6);
}
.property-card__media>.favorite-button,.project-card__media>.favorite-button,.card-gallery-arrow{
  position:absolute;
  display:flex;
  width:var(--hp-size-icon-button);
  height:var(--hp-size-icon-button);
  align-items:center;
  justify-content:center;
  margin:0;
  padding:0;
  border:0;
  border-radius:var(--hp-radius-pill);
  background:transparent;
  box-shadow:none;
  color:var(--hp-text-media-control);
  cursor:pointer;
  opacity:1;
  transition:color 160ms ease,opacity 160ms ease;
}
.property-card__media>.favorite-button::before,.project-card__media>.favorite-button::before,.card-gallery-arrow::before{
  position:absolute;
  width:var(--hp-card-media-control-current);
  height:var(--hp-card-media-control-current);
  border:1px solid var(--hp-border-media-control);
  border-radius:var(--hp-radius-pill);
  background:var(--hp-surface-media-control);
  box-shadow:var(--hp-shadow-media-control);
  backdrop-filter:blur(6px);
  content:"";
  transition:background 160ms ease,box-shadow 160ms ease,transform 120ms ease;
}
.property-card__media>.favorite-button{z-index:4;top:var(--hp-card-media-hit-inset);right:var(--hp-card-media-hit-inset)}
.project-card__media>.favorite-button{z-index:4;top:var(--hp-card-media-hit-inset);right:var(--hp-card-media-hit-inset)}
.property-card__media>.favorite-button:hover::before,.project-card__media>.favorite-button:hover::before,.card-gallery-arrow:hover::before{background:var(--hp-surface-media-control-hover)}
.property-card__media>.favorite-button:active::before,.project-card__media>.favorite-button:active::before,.card-gallery-arrow:active::before{background:var(--hp-surface-media-control-hover);transform:scale(.96)}
.property-card__media>.favorite-button:focus-visible,.project-card__media>.favorite-button:focus-visible,.card-gallery-arrow:focus-visible{outline:0}
.property-card__media>.favorite-button:focus-visible::before,.project-card__media>.favorite-button:focus-visible::before,.card-gallery-arrow:focus-visible::before{background:var(--hp-surface-media-control-hover);box-shadow:var(--hp-shadow-media-control),0 0 0 3px var(--hp-focus-ring-strong)}
.property-card__media>.favorite-button[aria-pressed="true"],.project-card__media>.favorite-button[aria-pressed="true"]{color:var(--hp-favorite-active);opacity:1}
.property-card__media .favorite-button__icon,.project-card__media .favorite-button__icon,.card-gallery-arrow .ui-icon{position:relative;z-index:1;width:var(--hp-card-media-icon-current);height:var(--hp-card-media-icon-current)}
.property-card__media .favorite-button__icon,.project-card__media .favorite-button__icon{width:var(--hp-card-favorite-icon-current);height:var(--hp-card-favorite-icon-current)}
.favorite-button[aria-pressed="true"] .favorite-button__icon{fill:var(--hp-favorite-active);stroke:var(--hp-favorite-active)}
.card-gallery-arrow{z-index:3;top:50%;line-height:1;transform:translateY(-50%)}
.card-gallery-arrow--prev{left:var(--hp-card-media-hit-inset)}.card-gallery-arrow--next{right:var(--hp-card-media-hit-inset)}
.card-photo-count{position:absolute;z-index:3;right:var(--hp-card-media-overlay-inset);bottom:var(--hp-card-media-overlay-inset);display:inline-flex;min-height:var(--hp-card-counter-height);align-items:center;padding:var(--hp-spacing-2) var(--hp-spacing-8);border:1px solid var(--hp-border-image-counter);border-radius:var(--hp-radius-pill);background:var(--hp-overlay-dark);color:var(--hp-text-on-action);font-size:var(--hp-font-size-caption);font-weight:var(--hp-font-weight-semibold);line-height:var(--hp-line-height-caption);backdrop-filter:blur(6px)}
.property-grid--compact .card-photo-count,
html[data-result-density="compact"] [data-density-kind="property"] .card-photo-count,
.building-grid--compact .card-photo-count,
html[data-result-density="compact"] [data-density-kind="project"] .card-photo-count,
.project-card--compact .card-photo-count{min-height:var(--hp-card-counter-compact-height);padding-inline:var(--hp-spacing-6)}
@media(hover:hover) and (pointer:fine){
  .property-card__media>.favorite-button,.project-card__media>.favorite-button,.card-gallery-arrow{opacity:var(--hp-card-media-control-opacity)}
  .property-card__media:hover>.favorite-button,.project-card__media:hover>.favorite-button,.property-card__media:hover>.card-gallery-arrow,.project-card__media:hover>.card-gallery-arrow,.property-card__media>.favorite-button:focus-visible,.project-card__media>.favorite-button:focus-visible,.card-gallery-arrow:focus-visible{opacity:var(--hp-card-media-control-hover-opacity)}
}
.property-card,.project-card{border-radius:var(--hp-radius-large);box-shadow:var(--hp-shadow-card);transition:transform 180ms ease,box-shadow 180ms ease}
.property-card:hover,.project-card:hover{box-shadow:var(--hp-shadow-card-hover)}
.project-card__price{margin-top:0}

.site-header .saved-link__icon .ui-icon{width:22px;height:22px}
.site-footer{position:relative;isolation:isolate;min-height:760px;padding:0 0 max(18px,env(safe-area-inset-bottom));overflow:hidden;background:var(--hp-surface-inverse);color:var(--hp-text-on-action)}
.site-footer__backdrop,.site-footer__shade{position:absolute;inset:0;z-index:-2;display:block;width:100%;height:100%}
.site-footer__backdrop img{display:block;width:100%;height:100%;object-fit:cover;object-position:center center;filter:saturate(.88) contrast(1.06) brightness(.86)}
.site-footer__shade{z-index:-1;background:linear-gradient(180deg,rgb(2 19 37 / 30%) 0%,rgb(3 17 33 / 42%) 36%,rgb(4 15 27 / 78%) 72%,#050b12 96%,#050a10 100%),linear-gradient(90deg,rgb(2 14 29 / 46%) 0%,transparent 50%,rgb(3 13 26 / 30%) 100%)}
.site-footer__content{position:relative;padding-block:var(--hp-spacing-80) 0}
.site-footer__top{display:grid;grid-template-columns:minmax(250px,1fr) minmax(600px,2.35fr);gap:48px 70px;align-items:start}
.site-footer__brand{max-width:370px}
.site-footer__brand>a{display:inline-flex}
.site-footer__brand img{width:244px;height:auto;filter:brightness(0) invert(1)}
.site-footer__brand>p:not(.site-footer__signature){max-width:350px;margin:22px 0 0;color:var(--hp-text-on-action);font-size:var(--hp-font-size-body);line-height:1.65}
.site-footer__socials{display:flex;gap:10px;margin-top:22px}
.site-footer__socials a{display:flex;width:var(--hp-size-control-large);height:var(--hp-size-control-large);align-items:center;justify-content:center;border:1px solid rgb(255 255 255 / 36%);border-radius:var(--hp-radius-control);background:rgb(4 18 33 / 28%);color:var(--hp-text-on-action);text-decoration:none;transition:border-color 160ms ease,background 160ms ease,color 160ms ease}
.site-footer__socials a:hover,.site-footer__socials a:focus-visible{border-color:var(--hp-brand-accent);background:rgb(242 13 27 / 16%);color:var(--hp-text-on-action)}
.site-footer__socials .ui-icon{width:24px;height:24px}
.site-footer__signature{margin:30px 0 0;color:rgb(255 255 255 / 78%);font-family:"Segoe Print","Bradley Hand",cursive;font-size:31px;font-style:italic;line-height:.95;transform:rotate(-5deg);transform-origin:left center}
.site-footer__signature span{padding-left:30px;font-size:22px}
.site-footer__columns{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}
.site-footer__section{min-width:0}
.site-footer__section summary{display:flex;min-height:38px;list-style:none;align-items:center;justify-content:space-between;gap:12px;color:var(--hp-text-on-action);font-size:var(--hp-font-size-body);font-weight:var(--hp-font-weight-bold);cursor:default}
.site-footer__section summary::-webkit-details-marker{display:none}
.site-footer__section summary>span:last-child{display:none}
.site-footer__links{display:grid!important;gap:2px;margin-top:12px}
.site-footer__links a{display:flex;min-height:35px;align-items:center;color:var(--hp-text-inverse-muted);font-size:var(--hp-font-size-small);line-height:20px;text-decoration:none}
.site-footer__links a:hover,.site-footer__links a:focus-visible{color:var(--hp-text-on-action);text-decoration:underline;text-decoration-color:var(--hp-brand-accent);text-underline-offset:5px}
.site-footer__utility{display:grid;grid-template-columns:minmax(180px,220px) minmax(180px,220px) minmax(360px,1fr);gap:18px 28px;align-items:end;margin-top:var(--hp-spacing-64);padding-top:26px;border-top:1px solid rgb(255 255 255 / 14%)}
.site-footer__preference h2,.site-footer__contact h2{margin:0 0 10px;color:var(--hp-text-on-action);font-size:var(--hp-font-size-label);font-weight:var(--hp-font-weight-semibold)}
.site-footer__preference details{position:relative;width:100%}
.site-footer__preference summary{display:flex;width:100%;align-items:center;justify-content:flex-start;list-style:none;cursor:pointer}
.site-footer__preference .locale-selector__current{flex:1}
.site-footer__preference .locale-selector__chevron,.site-footer__preference summary>span:last-child{margin-left:auto}
.site-footer__preference .locale-links,.site-footer__preference .currency-selector__menu{top:auto;right:auto;bottom:calc(100% + 8px);left:0;min-width:100%}
.site-footer__contact{display:grid;grid-template-columns:minmax(0,1fr) auto;min-height:82px;align-items:center;gap:18px;padding-left:28px;border-left:1px solid rgb(255 255 255 / 18%)}
.site-footer__contact h2{display:flex;align-items:center;gap:8px;margin-bottom:5px;font-size:var(--hp-font-size-body)}
.site-footer__contact h2 .ui-icon{width:20px;height:20px}
.site-footer__contact p{max-width:480px;margin:0;color:var(--hp-text-inverse-muted);font-size:var(--hp-font-size-small);line-height:20px}
.site-footer__contact .button{min-width:136px;white-space:nowrap}
.site-footer__features{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:48px;padding-block:28px;border-top:1px solid rgb(255 255 255 / 18%);border-bottom:1px solid rgb(255 255 255 / 18%)}
.site-footer__feature{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:center;min-height:58px;padding-inline:30px;border-right:1px solid rgb(255 255 255 / 16%)}
.site-footer__feature:first-child{padding-left:0}.site-footer__feature:last-child{padding-right:0;border-right:0}
.site-footer__feature>.ui-icon{width:34px;height:34px;color:var(--hp-text-on-action)}
.site-footer__feature h2{margin:0;color:var(--hp-text-on-action);font-size:var(--hp-font-size-small);font-weight:var(--hp-font-weight-bold);line-height:20px}
.site-footer__feature p{margin:3px 0 0;color:var(--hp-text-inverse-muted);font-size:var(--hp-font-size-caption);line-height:18px}
.site-footer__bottom{display:flex;min-height:80px;align-items:center;justify-content:space-between;gap:20px;color:var(--hp-text-inverse-muted);font-size:var(--hp-font-size-caption)}
.site-footer__bottom p{margin:0}
.site-footer__bottom nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:18px}
.site-footer__bottom a,.footer-consent-settings{border:0;background:transparent;color:#aeb7c2;font:inherit;text-decoration:none;cursor:pointer}
.site-footer__bottom a:hover,.footer-consent-settings:hover{color:#fff;text-decoration:underline;text-underline-offset:4px}

@media(max-width:1050px){
  .site-footer__top{grid-template-columns:minmax(220px,.9fr) minmax(500px,2fr);gap:38px}.site-footer__utility{grid-template-columns:minmax(170px,1fr) minmax(170px,1fr)}.site-footer__contact{grid-column:1/-1;padding:20px 0 0;border-top:1px solid rgb(255 255 255 / 14%);border-left:0}.site-footer__feature{padding-inline:18px}
}
@media(max-width:700px){
  .portal-hero{min-height:0}.portal-hero__inner{min-height:0;padding:36px 16px 30px}.portal-hero__copy{padding-inline:2px}
  .property-card__media>.favorite-button,.project-card__media>.favorite-button,.card-gallery-arrow{width:var(--hp-size-icon-button);height:var(--hp-size-icon-button)}
  .site-header .saved-link{display:flex;min-width:42px;padding-inline:4px}
  .site-footer{min-height:0}.site-footer__backdrop img{object-position:58% top;filter:saturate(.88) contrast(1.06) brightness(.76);transform:scale(1.25);transform-origin:58% center}.site-footer__shade{background:linear-gradient(180deg,rgb(2 18 36 / 30%) 0%,rgb(3 16 31 / 44%) 28%,rgb(4 15 28 / 84%) 55%,#050b12 78%,#050a10 100%),linear-gradient(90deg,rgb(2 14 29 / 30%),transparent 60%)}.site-footer__content{padding-block:40px 0}
  .site-footer__top{display:grid;grid-template-columns:1fr;gap:26px}.site-footer__brand{display:grid;grid-template-columns:minmax(0,1fr) auto;max-width:none;align-items:start}.site-footer__brand>a{grid-column:1}.site-footer__brand img{width:230px}.site-footer__brand>p:not(.site-footer__signature){grid-column:1/-1;max-width:390px;margin-top:18px;font-size:var(--hp-font-size-small)}.site-footer__socials{grid-column:1/-1;margin-top:20px}.site-footer__signature{grid-column:2;grid-row:1;margin:18px 8px 0 14px;font-size:25px}.site-footer__signature span{padding-left:16px;font-size:17px}
  .site-footer__columns{display:grid;grid-template-columns:1fr;gap:0;border-top:1px solid rgb(255 255 255 / 20%)}.site-footer__section{border-bottom:1px solid rgb(255 255 255 / 20%)}.site-footer__section summary{min-height:62px;padding:0;cursor:pointer}.site-footer__section summary>span:last-child{display:block;color:var(--hp-text-on-action);font-size:22px;transition:transform 160ms ease}.site-footer__section[open] summary>span:last-child{transform:rotate(180deg)}.site-footer__links{display:none!important;margin:0;padding:0 0 12px}.site-footer__section[open] .site-footer__links{display:grid!important}.site-footer__links a{min-height:44px;padding-inline:2px}
  .site-footer__utility{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:18px 10px;margin-top:34px;padding-top:0;border-top:0}.site-footer__preference{min-width:0}.site-footer__preference h2{font-size:var(--hp-font-size-caption)}.site-footer__preference .locale-selector__current{min-width:0}.site-footer__preference .locale-selector__current span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.site-footer__contact{grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto;min-height:0;gap:12px;margin-top:6px;padding:22px 0 0;border-top:1px solid rgb(255 255 255 / 18%);border-left:0}.site-footer__contact .button{min-width:124px}
  .site-footer__features{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:34px;padding-block:22px}.site-footer__feature{min-height:84px;padding:14px 12px;border-bottom:1px solid rgb(255 255 255 / 14%)}.site-footer__feature:nth-child(2n){border-right:0}.site-footer__feature:nth-last-child(-n+2){border-bottom:0}.site-footer__feature:first-child{padding-left:0}.site-footer__feature:nth-child(3){padding-left:0}.site-footer__feature>.ui-icon{width:30px;height:30px}
  .site-footer__bottom{display:grid;min-height:0;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:14px;padding:24px 0 26px}.site-footer__bottom nav{justify-content:flex-end;gap:12px}
}
@media(max-width:430px){
  .brand--mobile,.brand--mobile img{width:94px}.site-header .saved-link{display:flex}.site-header__utilities{gap:0}
}
@media(max-width:359px){.site-footer__brand img{width:205px}.site-footer__signature{font-size:21px}.site-footer__signature span{font-size:15px}.site-footer__utility{grid-template-columns:1fr}.site-footer__contact{grid-column:1}.site-footer__bottom{grid-template-columns:1fr}.site-footer__bottom nav{justify-content:flex-start}
}

/* Specialized preference menus share a theme and geometry, keeping native details UX. */
.locale-selector, .currency-selector {
  --hp-picker-text:var(--hp-text-control);
  --hp-picker-surface:var(--hp-surface-elevated);
  --hp-picker-hover:var(--hp-surface-option-hover);
  --hp-picker-border:var(--hp-border-control);
}
.site-footer__preference .locale-selector, .site-footer__preference .currency-selector {
  --hp-picker-text:var(--hp-text-on-action);
  --hp-picker-surface:var(--hp-surface-inverse-elevated);
  --hp-picker-hover:var(--hp-surface-inverse);
  --hp-picker-border:var(--hp-border-inverse);
}
:is(.locale-selector,.currency-selector) summary {
  display:flex; align-items:center; min-height:var(--hp-size-icon-button); gap:var(--hp-spacing-8);
  padding:0 var(--hp-spacing-8); border:1px solid transparent; border-radius:var(--hp-radius-control);
  color:var(--hp-picker-text); font-size:var(--hp-font-size-small); font-weight:var(--hp-font-weight-semibold); line-height:var(--hp-line-height-small);
}
:is(.locale-selector,.currency-selector) summary:hover,
:is(.locale-selector,.currency-selector)[open] > summary { background:var(--hp-picker-hover); }
:is(.locale-selector,.currency-selector) summary:focus-visible { outline:3px solid var(--hp-focus-ring-subtle); outline-offset:2px; }
.locale-selector__current { gap:var(--hp-spacing-8); }
.locale-selector .locale-links, .currency-selector__menu { padding:var(--hp-spacing-6); border:1px solid var(--hp-picker-border); border-radius:var(--hp-radius-card); background:var(--hp-picker-surface); box-shadow:var(--hp-shadow-popover); }
.locale-selector .locale-links a, .currency-selector__menu button { display:flex; align-items:center; min-height:var(--hp-size-icon-button); gap:var(--hp-spacing-8); padding:var(--hp-spacing-8) var(--hp-spacing-12); border:0; border-radius:var(--hp-radius-small); background:transparent; color:var(--hp-picker-text); font-size:var(--hp-font-size-small); font-weight:var(--hp-font-weight-medium); line-height:var(--hp-line-height-small); }
.locale-selector .locale-links a:hover, .currency-selector__menu button:hover,
.currency-selector__menu button[aria-pressed="true"] { background:var(--hp-picker-hover); }
.currency-selector__menu button[aria-pressed="true"] { font-weight:var(--hp-font-weight-bold); }
.site-footer__preference summary { min-height:var(--hp-size-control-default); padding-inline:var(--hp-control-padding); border:1px solid var(--hp-picker-border); background:var(--hp-picker-surface); }

/* Shared language/currency composition: canonical Buttons and picker surface. */
.preferences--desktop { position:relative; }
.preferences__trigger.button {
  min-height:var(--hp-size-icon-button);
  gap:var(--hp-spacing-8);
  padding:var(--hp-spacing-8) var(--hp-spacing-12);
  white-space:nowrap;
}
.preferences__trigger[aria-expanded="true"] { border-color:var(--hp-action-primary); }
.preferences img {
  flex:none;
  width:var(--hp-spacing-24);
  height:var(--hp-spacing-16);
  object-fit:contain;
  border-radius:var(--hp-radius-badge);
}
.preferences .ui-icon { flex:none; width:var(--hp-spacing-20); height:var(--hp-spacing-20); }
.preferences__divider { height:var(--hp-spacing-20); border-left:1px solid var(--hp-border-divider); }
.preferences__chevron { transition:transform 160ms ease; }
.preferences__trigger[aria-expanded="true"] .preferences__chevron { transform:rotate(180deg); }
.popover-surface {
  padding:var(--hp-dropdown-section-gap);
  border:1px solid var(--hp-border-popover);
  border-radius:var(--hp-radius-large);
  background:var(--hp-surface-elevated);
  box-shadow:var(--hp-shadow-popover);
  color:var(--hp-text-control);
}
.preferences__popover {
  position:absolute;
  z-index:20;
  top:calc(100% + var(--hp-spacing-8));
  right:0;
  width:calc(var(--hp-spacing-96) * 4);
  max-width:calc(100vw - var(--hp-page-gutter) * 2);
}
.preferences__heading { display:flex; align-items:center; gap:var(--hp-spacing-8); margin:0 0 var(--hp-spacing-12); }
.preferences__group + .preferences__group {
  margin-top:var(--hp-spacing-20);
  padding-top:var(--hp-spacing-20);
  border-top:1px solid var(--hp-border-divider);
}
.preferences__options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--hp-spacing-8); }
.preferences__option.button { min-width:0; gap:var(--hp-spacing-8); padding-inline:var(--hp-spacing-8); white-space:nowrap; }
.preferences--drawer { padding-top:var(--hp-spacing-20); border-top:1px solid var(--hp-border-divider); }
@media (max-width:1180px) {
  .preferences--desktop { display:none; }
}
.button--inverse { color:var(--hp-text-on-action); text-decoration:underline; }
.button--inverse:hover { background:var(--hp-surface-inverse-elevated); }

/* Canonical controls and form composition. Page rules may position these components,
   but must not redefine their typography, padding, height, border or state styles. */
.field { display:flex; flex-direction:column; width:100%; gap:var(--hp-field-label-gap); }
.field > label, .choice-fieldset > legend, .portal-location > label,
.portal-compact-price > legend, .portal-quick-filters > legend, .selection-chip-group > legend,
.filter-section > legend, .filter-section h3, .filter-section > label > span:not(.select-wrap),
.filter-range label > span:not(.select-wrap),
.portal-filter > legend, .portal-popular-filters > legend {
  display:block; margin:0; padding:0; color:var(--hp-text-secondary);
  font-size:var(--hp-font-size-label); font-weight:var(--hp-font-weight-semibold); line-height:var(--hp-line-height-caption);
}
.input-control, .select-wrap select, .control-trigger {
  display:block; width:100%; min-width:0; height:var(--hp-size-control-default); min-height:var(--hp-size-control-default);
  padding:0 var(--hp-control-padding); border:1px solid var(--hp-border-control); border-radius:var(--hp-radius-control);
  background:var(--hp-surface-control); color:var(--hp-text-control); font-family:inherit;
  font-size:var(--hp-font-size-body); font-weight:var(--hp-font-weight-regular); line-height:var(--hp-line-height-body);
  transition:border-color 160ms ease, background 160ms ease;
}
textarea.input-control { height:auto; min-height:calc(var(--hp-size-control-default) * 2.5); padding-block:var(--hp-spacing-12); resize:vertical; }
.input-control::placeholder { color:var(--hp-text-muted); opacity:1; }
.input-control:hover, .select-wrap select:hover, .control-trigger:hover { border-color:var(--hp-border-control-hover); background:var(--hp-surface-control-hover); }
.input-control:focus-visible, .select-wrap select:focus-visible, .control-trigger:focus-visible { border-color:var(--hp-action-primary); outline:3px solid var(--hp-focus-ring-subtle); outline-offset:2px; }
.control-trigger[aria-expanded="true"] { border-color:var(--hp-action-primary); background:var(--hp-surface-control-hover); }
.input-control:disabled, .select-wrap select:disabled, .control-trigger:disabled { background:var(--hp-surface-muted); color:var(--hp-text-muted); opacity:.72; cursor:not-allowed; }
.input-control[aria-invalid="true"], .select-wrap select[aria-invalid="true"], .field--error .input-control { border-color:var(--hp-status-error); }
.select-wrap, .control-shell { position:relative; display:block; width:100%; min-width:0; }
.select-wrap select { appearance:none; -webkit-appearance:none; padding-right:var(--hp-spacing-40); text-overflow:ellipsis; }
.select-wrap select:has(option[value=""]:checked) { color:var(--hp-text-muted); }
.select-wrap option { color:var(--hp-text-control); }
.select-wrap__icon, .control-shell__leading { position:absolute; top:50%; transform:translateY(-50%); pointer-events:none; color:var(--hp-text-control-icon); }
.select-wrap__icon { right:var(--hp-control-padding); width:var(--hp-spacing-16); height:var(--hp-spacing-16); }
.control-shell__leading { left:var(--hp-control-padding); }
.control-shell__leading .ui-icon, .control-trigger > .ui-icon { width:var(--hp-spacing-20); height:var(--hp-spacing-20); flex:none; }
.control-shell--leading > .input-control, .control-shell--leading > select { padding-left:var(--hp-spacing-40); }
.control-shell--trailing > .input-control { padding-right:var(--hp-size-icon-button); }
.control-shell input[type="search"]::-webkit-search-cancel-button { appearance:none; }
.control-trigger { display:flex; align-items:center; gap:var(--hp-spacing-8); text-align:left; cursor:pointer; }
.control-trigger > span { min-width:0; flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; line-height:var(--hp-line-height-small); }
.control-trigger .portal-control-chevron { width:var(--hp-spacing-16); height:var(--hp-spacing-16); margin-left:auto; }
.control-trigger[aria-expanded="true"] .portal-control-chevron { transform:rotate(180deg); }
.field__helper, .field__error { margin:0; min-height:0; font-size:var(--hp-font-size-label); line-height:var(--hp-line-height-caption); color:var(--hp-text-muted); }
.field__helper, .field__error:not(:empty) { margin-top:calc(var(--hp-field-helper-gap) - var(--hp-field-label-gap)); }
.field__error:not(:empty) { color:var(--hp-status-error); }
.field__error:empty { display:none; }
.inquiry-form, .lead-form__fields { gap:var(--hp-form-field-gap); }
.inquiry-form { padding:var(--hp-form-padding); }
.inquiry-form__submit { min-height:var(--hp-size-control-default); }
.choice-fieldset { display:grid; margin:0; padding:0; border:0; gap:var(--hp-field-label-gap); min-width:0; }
.choice-fieldset > legend { margin-bottom:var(--hp-field-label-gap); }
.choice-card, .channel-choice { position:relative; display:flex; align-items:center; min-height:var(--hp-size-control-default); padding:var(--hp-spacing-10) var(--hp-control-padding); border:1px solid var(--hp-border-control); border-radius:var(--hp-radius-control); background:var(--hp-surface-control); color:var(--hp-text-control); cursor:pointer; }
.choice-card input, .channel-choice input, .portal-transaction__choice input, .selection-chip input { position:absolute; width:1px; height:1px; opacity:0; }
.choice-card span, .channel-choice span { font-size:var(--hp-font-size-small); line-height:var(--hp-line-height-small); }
.choice-card:has(input:checked), .channel-choice:has(input:checked) { border-color:var(--hp-action-primary); box-shadow:inset 0 0 0 1px var(--hp-action-primary); background:var(--hp-surface-soft); }
.choice-card:has(input:focus-visible), .channel-choice:has(input:focus-visible) { outline:3px solid var(--hp-focus-ring-subtle); outline-offset:2px; }
.contact-channels > div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--hp-spacing-8); }
.channel-choice { justify-content:center; }
.portal-check { min-height:var(--hp-size-control-default); gap:var(--hp-spacing-8); accent-color:var(--hp-action-primary); }
.drawer--card-contact .drawer__panel { border-radius:var(--hp-radius-large); background:var(--hp-surface-elevated); box-shadow:var(--hp-shadow-popover); }
.drawer--card-contact .drawer__scroll { padding:var(--hp-form-padding); }
.drawer--card-contact .inquiry-form__heading p, .drawer--card-contact .lead-form__footer { color:var(--hp-text-muted); }
.drawer--card-contact .inquiry-form__heading h2 { font-size:var(--hp-font-size-heading-3); }

/* Search geometry is shared; the homepage hero uses the same controls in a
   floating-tab, primary-row and quick-filter composition. */
.portal-search { display:block; width:100%; margin-block:var(--hp-form-section-gap); padding:var(--hp-form-padding); border:1px solid var(--hp-border-soft); border-radius:var(--hp-radius-panel); background:var(--hp-surface-elevated); box-shadow:var(--hp-shadow-2); }
.portal-search__panel { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:var(--hp-form-row-gap) var(--hp-form-column-gap); }
@media (min-width:1025px) { .portal-search--projects:not(.portal-search--hero) .portal-search__panel { grid-template-columns:minmax(0,2fr) minmax(0,1.5fr) minmax(0,1fr); } }
.portal-search--hero { margin-top:calc(var(--hp-form-section-gap) + var(--hp-spacing-24)); box-shadow:var(--hp-shadow-card); }
.portal-search--hero .portal-search__panel { grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr) auto; align-items:end; }
.portal-location, .portal-compact-price, .portal-quick-filters { position:relative; min-width:0; margin:0; padding:0; border:0; }
.portal-location { display:block; }
.portal-compact-price > legend, .portal-quick-filters > legend { margin-bottom:var(--hp-field-label-gap); }
.portal-location__clear { position:absolute; top:50%; right:var(--hp-spacing-2); transform:translateY(-50%); display:grid; place-items:center; width:var(--hp-size-icon-button); height:var(--hp-size-icon-button); padding:0; border:0; border-radius:var(--hp-radius-control); background:transparent; color:var(--hp-text-muted); cursor:pointer; }
.portal-location__clear:hover { background:var(--hp-surface-icon-hover); }
.portal-location__clear:disabled { opacity:.5; cursor:default; }
.portal-location__clear .ui-icon { width:var(--hp-spacing-16); height:var(--hp-spacing-16); }
.portal-price-row { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:var(--hp-spacing-8); }
.portal-price-row__separator { color:var(--hp-text-muted); }
.portal-quick-filters { grid-column:1/-1; }
.portal-quick-filters__row { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--hp-spacing-8); }
.portal-quick-select { display:block; min-width:0; }
.portal-search__footer { display:grid; grid-column:1/-1; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:var(--hp-form-column-gap); align-items:center; padding-top:var(--hp-form-row-gap); border-top:1px solid var(--hp-border-soft); }
.portal-sort, .portal-search__submit { width:100%; min-width:0; }
.portal-search__submit { box-shadow:var(--hp-shadow-action); }
.portal-search--hero .portal-location { grid-column:1; }
.portal-search--hero .portal-filter--price { grid-column:2; }
.portal-search--hero .portal-filter--rooms { grid-column:3; }
.portal-search--hero .portal-search__submit { grid-column:4; width:auto; }
.portal-search--hero.portal-search--projects .portal-filter--price { grid-column:2; }
.portal-search--hero .portal-project-completion { grid-column:3; }
.portal-project-completion { display:flex; flex-direction:column; min-width:0; gap:var(--hp-field-label-gap); }
.portal-project-completion > span:first-child { font-size:var(--hp-font-size-label); font-weight:var(--hp-font-weight-semibold); }
.portal-project-quick-row { display:flex; grid-column:1/-1; flex-wrap:wrap; align-items:end; gap:var(--hp-form-column-gap); padding-top:var(--hp-form-row-gap); border-top:1px solid var(--hp-border-soft); }
.portal-project-quick-row .portal-filter-trigger { width:auto; }
.portal-search--projects .portal-project-quick-filters { min-width:0; }
.portal-search--projects .portal-project-quick-filters .selection-chip-group__options { flex-wrap:wrap; }
.portal-search__submit-arrow { margin-inline-start:var(--hp-spacing-2); }
.portal-search__secondary { display:grid; grid-column:1/-1; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:var(--hp-form-column-gap); padding-top:var(--hp-form-row-gap); border-top:1px solid var(--hp-border-soft); }
.portal-search__secondary > .portal-filter-trigger { width:auto; }
.portal-inline-filters,.portal-inline-row{display:flex;min-width:0;flex-wrap:wrap;align-items:center;gap:var(--hp-chip-gap)}
.portal-inline-row{grid-column:1/-1;padding-top:var(--hp-form-row-gap);border-top:1px solid var(--hp-border-soft)}
.portal-inline-row>.portal-filter-trigger{width:auto;margin-inline-start:auto}
.portal-filter-trigger { min-height:var(--hp-size-control-default); }
.portal-filter-trigger > .ui-icon { width:var(--hp-spacing-20); height:var(--hp-spacing-20); flex:none; }
.portal-filter, .portal-popular-filters { position:relative; min-width:0; margin:0; padding:0; border:0; }
.portal-filter > legend { margin-bottom:var(--hp-field-label-gap); }
.portal-popular-filters { display:block; }
.portal-popular-filter .selection-chip__surface { white-space:nowrap; }
.portal-transaction { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); width:min(420px,100%); margin:0 0 var(--hp-form-row-gap); padding:var(--hp-spacing-4); gap:var(--hp-spacing-4); border:0; border-radius:var(--hp-radius-card); background:var(--hp-surface-soft); }
.portal-transaction__choice { position:relative; min-width:0; cursor:pointer; }
.portal-transaction__choice span, .portal-transaction__button { display:flex; min-width:0; min-height:var(--hp-size-control-default); justify-content:center; align-items:center; padding:var(--hp-spacing-8); border:1px solid transparent; border-radius:var(--hp-radius-control); background:transparent; color:var(--hp-text-control); font-size:var(--hp-font-size-small); font-weight:var(--hp-font-weight-semibold); line-height:var(--hp-line-height-small); text-align:center; cursor:pointer; transition:border-color 160ms ease,background 160ms ease,color 160ms ease; }
.portal-transaction__choice input:checked + span, .portal-transaction__button[aria-pressed="true"] { background:var(--hp-action-primary); color:var(--hp-text-on-action); box-shadow:var(--hp-shadow-action); }
.portal-transaction__choice:hover span, .portal-transaction__button:hover { border-color:var(--hp-border-control-hover); background:var(--hp-surface-control-hover); }
.portal-transaction__choice:hover input:checked + span, .portal-transaction__button[aria-pressed="true"]:hover { border-color:var(--hp-action-primary-hover); background:var(--hp-action-primary-hover); }
.portal-transaction__choice input:focus-visible + span { outline:3px solid var(--hp-focus-ring-subtle); outline-offset:2px; }
.portal-search--hero > .portal-transaction { position:relative; z-index:2; width:50%; margin-top:calc(0px - var(--hp-size-control-default)); padding:0; gap:var(--hp-spacing-8); background:transparent; }
.portal-search--hero > .portal-transaction .portal-transaction__choice span { border-color:var(--hp-border-soft); background:var(--hp-surface-elevated); box-shadow:var(--hp-shadow-control); }
.portal-search--hero > .portal-transaction .portal-transaction__choice input:checked + span { border-color:var(--hp-action-primary); background:var(--hp-action-primary); color:var(--hp-text-on-action); box-shadow:var(--hp-shadow-action); }
.portal-filter--quick { position:relative; min-width:0; }
.portal-filter__popover, .portal-suggestions { position:absolute; z-index:560; top:calc(100% + var(--hp-spacing-8)); left:0; width:100%; }
.portal-suggestions { max-height:320px; overflow:auto; }
.portal-filter__popover--rooms { right:0; left:auto; width:min(320px,calc(100vw - var(--hp-spacing-32))); max-height:70dvh; overflow-y:auto; }
.portal-price-options { display:grid; }
.portal-price-options button, .portal-suggestions button { display:flex; width:100%; min-height:var(--hp-size-icon-button); align-items:center; gap:var(--hp-spacing-8); padding:var(--hp-spacing-8) var(--hp-spacing-12); border:0; border-radius:var(--hp-radius-small); background:var(--hp-surface-elevated); color:var(--hp-text-control); font-size:var(--hp-font-size-small); line-height:var(--hp-line-height-small); text-align:left; cursor:pointer; }
.portal-price-options button:hover, .portal-price-options button[aria-pressed="true"], .portal-suggestions button:hover, .portal-suggestions button.is-active { background:var(--hp-surface-option-hover); color:var(--hp-action-primary); }
.portal-suggestions button { justify-content:space-between; }
.portal-suggestions small { color:var(--hp-text-muted); font-size:var(--hp-font-size-caption); }
.portal-choice-group { margin-bottom:var(--hp-dropdown-section-gap); }
.portal-choice-group .selection-chip-group__options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
.portal-choice-group .selection-chip__surface { justify-content:center; text-align:center; }
.portal-choice-group:last-of-type { margin-bottom:var(--hp-dropdown-options-action-gap); }
.portal-filter__done { width:100%; }
.drawer--filters .drawer__panel { width:min(450px,100%); background:var(--hp-surface-elevated); }
.drawer--filters .portal-search__advanced { display:flex; flex-direction:column; gap:var(--hp-form-section-gap); padding:var(--hp-form-padding); background:var(--hp-surface-elevated); }
.filter-section { position:relative; display:block; margin:0; padding:0; border:0; min-width:0; }
.filter-section:not(.selection-chip-group) > legend, .filter-section h3 { margin-bottom:var(--hp-field-label-gap); }
.filter-section > label, .filter-range label { display:flex; flex-direction:column; min-width:0; gap:var(--hp-field-label-gap); }
.portal-transaction--drawer { width:100%; margin:0; }
.filter-range { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto; align-items:end; gap:var(--hp-spacing-8); }
.filter-range > span, .filter-range > small { padding-bottom:var(--hp-spacing-12); color:var(--hp-text-muted); }
.filter-range > small { font-size:var(--hp-font-size-caption); }
.selection-chip-group { position:relative; min-width:0; margin:0; padding:0; border:0; }
.selection-chip-group > legend { margin-bottom:var(--hp-field-label-gap); }
.selection-chip-group__options { display:flex; flex-wrap:wrap; gap:var(--hp-chip-gap); }
.selection-chip { position:relative; display:block; min-width:0; cursor:pointer; }
.selection-chip__surface { display:flex; min-height:var(--hp-size-icon-button); align-items:center; gap:var(--hp-chip-gap); padding:var(--hp-spacing-8) var(--hp-spacing-12); border:1px solid var(--hp-border-control); border-radius:var(--hp-radius-pill); background:var(--hp-surface-control); color:var(--hp-text-control); font-family:var(--hp-font-ui); font-size:var(--hp-font-size-small); font-weight:var(--hp-font-weight-medium); line-height:var(--hp-line-height-small); transition:border-color 160ms ease,background 160ms ease,color 160ms ease; }
.selection-chip__icon, .selection-chip__icon .property-icon { display:block; width:var(--hp-spacing-20); height:var(--hp-spacing-20); flex:none; }
.selection-chip:hover .selection-chip__surface { border-color:var(--hp-border-control-hover); background:var(--hp-surface-control-hover); }
.selection-chip input:checked + .selection-chip__surface { border-color:var(--hp-action-primary); background:var(--hp-action-primary); color:var(--hp-text-on-action); }
.selection-chip:hover input:checked + .selection-chip__surface { border-color:var(--hp-action-primary-hover); background:var(--hp-action-primary-hover); }
.selection-chip input:focus-visible + .selection-chip__surface { outline:3px solid var(--hp-focus-ring-subtle); outline-offset:2px; }
.selection-chip:has(input:disabled) { cursor:not-allowed; }
.selection-chip input:disabled + .selection-chip__surface { border-color:var(--hp-border-default); background:var(--hp-surface-muted); color:var(--hp-text-muted); opacity:.72; }
.selection-chip small { color:inherit; font-size:var(--hp-font-size-caption); }
.filter-features-more { margin-top:var(--hp-spacing-8); }
.drawer--filters .drawer__footer { gap:var(--hp-spacing-8); padding:var(--hp-spacing-16) var(--hp-form-padding) max(var(--hp-spacing-16),env(safe-area-inset-bottom)); background:var(--hp-surface-elevated); }
.drawer--filters .drawer__header { padding:var(--hp-spacing-12) var(--hp-form-padding); background:var(--hp-surface-elevated); }
.drawer--filters .drawer__header h2 { font-size:var(--hp-font-size-heading-3); }

@media (max-width:768px) {
  :root { --hp-form-padding:var(--hp-spacing-16); }
  .portal-search__panel, .portal-search--hero .portal-search__panel { grid-template-columns:1fr; }
  .portal-search--hero .portal-location, .portal-search--hero .portal-filter--price, .portal-search--hero.portal-search--projects .portal-filter--price, .portal-search--hero .portal-filter--rooms, .portal-search--hero .portal-search__submit { grid-column:1; }
  .portal-search--hero .portal-project-completion { grid-column:1; order:3; }
  .portal-search--hero .portal-location { order:1; }
  .portal-search--hero .portal-filter--price { order:2; }
  .portal-search--hero .portal-filter--rooms { order:3; }
  .portal-search--hero .portal-search__secondary { display:contents; }
  .portal-search--hero .portal-inline-filters { grid-column:1; order:6; padding-top:var(--hp-form-row-gap); border-top:1px solid var(--hp-border-soft); }
  .portal-search--hero .portal-search__secondary > .portal-filter-trigger { grid-column:1; order:4; width:100%; }
  .portal-search--hero.portal-search--projects .portal-search__secondary > .portal-filter-trigger { width:auto; order:6; justify-self:start; }
  .portal-search--hero .portal-search__submit { order:5; width:100%; }
  .portal-search--hero.portal-search--projects .portal-search__submit { order:4; }
  .portal-search--hero .portal-popular-filters { grid-column:1; order:6; padding-top:var(--hp-form-row-gap); border-top:1px solid var(--hp-border-soft); }
  .portal-search--hero.portal-search--projects .portal-project-quick-filters { order:5; }
  .portal-project-quick-row { align-items:start; }
  .portal-search--hero > .portal-transaction { width:100%; }
  .portal-search--hero .portal-quick-filters, .portal-quick-filters { grid-column:1; }
  .portal-quick-filters__row { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .portal-quick-filters__row > .portal-filter-trigger { grid-column:1/-1; }
  .portal-search__footer { grid-template-columns:1fr; }
  .portal-transaction { width:100%; }
  .portal-price-options button { padding-inline:var(--hp-spacing-8); }
  .portal-filter__popover--rooms { right:auto; left:0; width:min(320px,calc(100vw - var(--hp-spacing-64))); }
}

@media (max-width:360px) {
  .portal-filter__popover--rooms { left:calc(0px - var(--hp-spacing-16)); width:min(320px,calc(100vw - var(--hp-spacing-32))); }
}
