/* RealEstatesCuracao design tokens — v1 (2026-10-02)
   Bron: design canvas https://claude.ai/artifact/VQnXcNHrgK9h658miPpsYn
   Gebruik: Elementor › Site Settings › Custom CSS, of rec-core stylesheet. */

:root {
  /* kleur */
  --rec-deep-water: #0B2A33;
  --rec-deep-water-2: #123845;
  --rec-lagoon: #0E7C86;
  --rec-lagoon-deep: #0A5E66;
  --rec-lagoon-light: #7FD1D6;
  --rec-terracotta: #B5522C;   /* alleen status-tags */
  --rec-sand: #F7F2EA;
  --rec-dune: #EFE7DA;
  --rec-dune-2: #E4DCCB;       /* foto-placeholder */
  --rec-sea-tint: #CFE3E3;     /* foto-placeholder alt */
  --rec-white: #FFFFFF;
  --rec-line: #DCD2C2;
  --rec-ink-2: #3B5560;
  --rec-label: #5E727A;
  --rec-on-dark-muted: #C9D6D9;

  /* type */
  --rec-font-display: "Fraunces", Georgia, serif;
  --rec-font-text: "Manrope", system-ui, sans-serif;

  /* maat */
  --rec-container: 1312px;
  --rec-gutter: 24px;
  --rec-radius-control: 6px;
  --rec-radius-card: 10px;
  --rec-radius-panel: 12px;
  --rec-control-h: 48px;
  --rec-control-h-compact: 42px;
}

body { background: var(--rec-sand); color: var(--rec-deep-water); font-family: var(--rec-font-text); }
a { color: var(--rec-lagoon); text-decoration: none; }
a:hover { color: var(--rec-lagoon-deep); }
h1, h2, h3, .rec-display { font-family: var(--rec-font-display); font-variation-settings: "opsz" 144; font-weight: 500; letter-spacing: -.01em; }

.rec-eyebrow { font: 700 12px/1 var(--rec-font-text); letter-spacing: .14em; text-transform: uppercase; color: var(--rec-lagoon); }
.rec-label { font: 600 11px/1 var(--rec-font-text); letter-spacing: .1em; text-transform: uppercase; color: var(--rec-label); }

.rec-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: var(--rec-control-h); padding: 0 22px; border-radius: var(--rec-radius-control); font: 600 15px/1 var(--rec-font-text); border: 1px solid transparent; cursor: pointer; }
.rec-btn--primary { background: var(--rec-lagoon); color: #fff; }
.rec-btn--primary:hover { background: var(--rec-lagoon-deep); color: #fff; }
.rec-btn--ghost { background: transparent; color: var(--rec-deep-water); border-color: var(--rec-deep-water); }
.rec-btn--ghost:hover { background: var(--rec-deep-water); color: #fff; }
.rec-btn--light { background: #fff; color: var(--rec-deep-water); border-color: var(--rec-line); }
.rec-btn--light:hover { border-color: var(--rec-deep-water); }

.rec-chip { display: inline-flex; align-items: center; height: 28px; padding: 0 10px; border-radius: 999px; font: 600 12px/1 var(--rec-font-text); letter-spacing: .02em; }
.rec-chip--new { background: #fff; color: var(--rec-deep-water); }
.rec-chip--brokers { background: var(--rec-deep-water); color: #fff; }
.rec-chip--reduced { background: var(--rec-terracotta); color: #fff; }
.rec-chip--checked { background: var(--rec-lagoon); color: #fff; }

.rec-card { background: #fff; border: 1px solid var(--rec-line); border-radius: var(--rec-radius-card); overflow: hidden; color: var(--rec-deep-water); }
.rec-card:hover { border-color: var(--rec-deep-water); }
.rec-input { height: var(--rec-control-h); border: 1px solid var(--rec-line); border-radius: var(--rec-radius-control); background: #fff; padding: 0 14px; font: 500 15px var(--rec-font-text); color: var(--rec-deep-water); }
.rec-photo-placeholder { background: var(--rec-dune-2); color: var(--rec-label); display: flex; align-items: center; justify-content: center; font: 500 12px var(--rec-font-text); }

/* ==========================================================================
   rec-core-lite components (server-side shortcodes). Works inside Elementor
   sections: no page wrapper, every block starts at .rec.
   ========================================================================== */

.rec { font-family: var(--rec-font-text); color: var(--rec-deep-water); -webkit-font-smoothing: antialiased; }
.rec, .rec *, .rec *::before, .rec *::after { box-sizing: border-box; }
.rec p { margin: 0; }
.rec svg.rec-icon { flex-shrink: 0; display: inline-block; vertical-align: middle; }
.rec a:focus-visible, .rec button:focus-visible, .rec summary:focus-visible,
.rec select:focus-visible, .rec input:focus-visible, .rec[tabindex]:focus-visible,
a.rec-card:focus-visible { outline: 2px solid var(--rec-lagoon); outline-offset: 2px; }
.rec-sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* Buttons / inputs: beat theme + Elementor kit defaults */
.rec .rec-btn { text-decoration: none; white-space: nowrap; text-transform: none; letter-spacing: 0; box-shadow: none; }
.rec .rec-btn--primary, .rec .rec-btn--primary:visited { background: var(--rec-lagoon); color: #fff; border-color: var(--rec-lagoon); }
.rec .rec-btn--primary:hover, .rec .rec-btn--primary:focus { background: var(--rec-lagoon-deep); border-color: var(--rec-lagoon-deep); color: #fff; }
.rec .rec-btn--light, .rec .rec-btn--light:visited { background: #fff; color: var(--rec-deep-water); border-color: var(--rec-line); }
.rec .rec-btn--light:hover, .rec .rec-btn--light:focus { background: #fff; color: var(--rec-deep-water); border-color: var(--rec-deep-water); }
.rec .rec-btn--ghost, .rec .rec-btn--ghost:visited { background: transparent; color: var(--rec-deep-water); border-color: var(--rec-deep-water); }
.rec .rec-btn--ghost:hover, .rec .rec-btn--ghost:focus { background: var(--rec-deep-water); color: #fff; }
.rec .rec-btn.is-disabled { color: var(--rec-label); cursor: default; border-color: var(--rec-line); }
.rec .rec-input { width: 100%; min-width: 0; margin: 0; box-shadow: none; line-height: normal; }
.rec .rec-input::placeholder { color: var(--rec-label); opacity: 1; }
.rec .rec-input:disabled { background: var(--rec-sand); color: var(--rec-label); cursor: not-allowed; }
.rec .rec-select { position: relative; display: flex; }
.rec .rec-select select { appearance: none; -webkit-appearance: none; padding-right: 40px; cursor: pointer; }
.rec .rec-select .rec-icon { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); pointer-events: none; color: var(--rec-deep-water); }

.rec .rec-chip { gap: 6px; white-space: nowrap; }
.rec-chip--status { background: var(--rec-dune); color: var(--rec-deep-water); }
.rec-chip--soft, .rec-chip--editorial { background: var(--rec-dune); color: var(--rec-deep-water); }
/* Issue 1012: the long editorial label may wrap on narrow screens instead of widening the page. */
.rec .rec-chip--editorial { white-space: normal; height: auto; min-height: 28px; padding-block: 6px; line-height: 1.3; }
.rec .rec-chip--editorial .rec-icon { flex-shrink: 0; }
.rec .rec-chip--filter { height: 32px; border: 1px solid var(--rec-lagoon); background: #E3F1F1; color: var(--rec-deep-water); text-decoration: none; }
.rec .rec-chip--filter:hover { background: #fff; color: var(--rec-deep-water); }

.rec .rec-label { display: inline-block; }
.rec .rec-footnote, .rec .rec-offered__footnote { font: 500 13px/1.5 var(--rec-font-text); color: var(--rec-ink-2); }
.rec .rec-empty { font: 500 15px/1.5 var(--rec-font-text); color: var(--rec-ink-2); padding: 32px 0; display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.rec .rec-arrow-link { display: inline-flex; align-items: center; gap: 6px; font: 600 15px var(--rec-font-text); color: var(--rec-lagoon); text-decoration: none; }
.rec .rec-arrow-link:hover { color: var(--rec-lagoon-deep); }

/* Headings (override kit h1–h3 globals) */
.rec .rec-h2 { margin: 0; font-family: var(--rec-font-display); font-variation-settings: "opsz" 144; font-size: 32px; line-height: 1.1; font-weight: 500; letter-spacing: -.01em; color: var(--rec-deep-water); }
.rec .rec-h2--lg { font-size: 40px; line-height: 1.08; }
.rec .rec-prose p { margin: 0 0 1em; font: 400 17px/1.7 var(--rec-font-text); color: var(--rec-ink-2); }
.rec .rec-prose p:last-child { margin-bottom: 0; }
.rec .rec-section, .rec.rec-section { display: flex; flex-direction: column; gap: 20px; }
.rec .rec-section__head { display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }
.rec .rec-section-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; }
.rec .rec-section-head > div { display: flex; flex-direction: column; gap: 14px; }

/* Breadcrumb */
.rec .rec-breadcrumb { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font: 500 14px var(--rec-font-text); color: var(--rec-ink-2); }
.rec .rec-breadcrumb a { color: var(--rec-lagoon); }
.rec .rec-breadcrumb .rec-icon { color: var(--rec-label); }
.rec .rec-breadcrumb [aria-current] { color: var(--rec-deep-water); font-weight: 600; }

/* Price */
.rec .rec-price { font-family: var(--rec-font-display); font-variation-settings: "opsz" 144; font-weight: 600; color: var(--rec-deep-water); }
.rec .rec-price__period, .rec .rec-price--request { font-style: italic; font-weight: 400; }
/* Issue 1057: a rate per square metre as published ("Cg 23 per m² / month") is longer than a US$ total: slightly smaller, may wrap. */
.rec .rec-price--per-m2.rec-listing-card__price { font-size: 20px; }
.rec .rec-price--per-m2.rec-offer__price { font-size: 22px; }
.rec .rec-price--per-m2.rec-property-header__amount { font-size: 30px; white-space: normal; }

/* External photo + Dune placeholder */
.rec .rec-photo { position: relative; overflow: hidden; background: var(--rec-dune-2); }
.rec .rec-photo__ph { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; gap: 6px; padding: 12px; text-align: center; font: 500 12px var(--rec-font-text); color: var(--rec-label); }
.rec .rec-photo__img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; display: block; border: 0; border-radius: 0; }
.rec .rec-card__chips { position: absolute; top: 12px; left: 12px; display: flex; gap: 6px; flex-wrap: wrap; z-index: 1; }
/* Sold / Rented banner, top-right over the photo (issue 1003): Terracotta = status colour, Manrope label style */
.rec .rec-status-banner { position: absolute; top: 12px; right: 12px; z-index: 2; display: inline-flex; align-items: center; height: 34px; padding: 0 14px; border-radius: var(--rec-radius-control); background: var(--rec-terracotta); color: #fff; font: 700 13px/1 var(--rec-font-text); letter-spacing: .14em; text-transform: uppercase; white-space: nowrap; box-shadow: 0 2px 12px rgba(11, 42, 51, .35); }
.rec .rec-gallery__item .rec-status-banner { top: 16px; right: 16px; height: 44px; padding: 0 20px; font-size: 15px; }
.rec .rec-card__chip-right { position: absolute; top: 12px; right: 12px; z-index: 1; }

/* Broker logo / placeholder */
.rec .rec-logo { position: relative; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; background: var(--rec-dune); border-radius: 6px; overflow: hidden; color: var(--rec-ink-2); font: 700 13px var(--rec-font-text); letter-spacing: .02em; }
.rec .rec-logo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; background: #fff; padding: 2px; max-width: none; }
.rec .rec-logo--dark, .rec .rec-logo--dark img { background: var(--rec-deep-water); color: var(--rec-on-dark-muted); } /* issue 1043: white logos */
.rec .rec-logo--22 { width: 22px; height: 22px; border-radius: 4px; font-size: 9px; }
.rec .rec-logo--40 { width: 40px; height: 40px; }
.rec .rec-logo--56 { width: 56px; height: 56px; border-radius: 8px; font-size: 16px; }
.rec .rec-logo--120 { width: 120px; height: 120px; border-radius: 10px; font-size: 28px; }

/* Grids: 3 columns, 1 on ≤900 px; teasers become a horizontal scroller */
.rec .rec-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }

/* Listing card (one link to the own detail page) */
.rec a.rec-listing-card { display: flex; flex-direction: column; text-decoration: none; color: var(--rec-deep-water); }
.rec a.rec-listing-card:hover { color: var(--rec-deep-water); border-color: var(--rec-deep-water); }
.rec .rec-listing-card__photo { aspect-ratio: 4 / 3; }
.rec .rec-listing-card__body { padding: 18px 20px 20px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.rec .rec-listing-card__price-row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.rec .rec-listing-card__price { font-size: 24px; line-height: 1.15; }
.rec .rec-listing-card__deal { color: var(--rec-ink-2); white-space: nowrap; }
.rec .rec-listing-card__title { margin: 0; font: 600 17px/1.3 var(--rec-font-text); color: var(--rec-deep-water); letter-spacing: 0; }
.rec .rec-listing-card__meta { font: 500 14px var(--rec-font-text); color: var(--rec-ink-2); }
.rec .rec-listing-card__facts { font: 500 13px var(--rec-font-text); color: var(--rec-ink-2); padding-top: 10px; border-top: 1px solid var(--rec-dune); }
.rec .rec-listing-card__facts { display: flex; flex-wrap: wrap; gap: 6px 14px; }
.rec .rec-fact { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.rec .rec-fact .rec-icon { color: var(--rec-label); flex-shrink: 0; }
/* Issue 1006: feature icons from the source's feature list, icons only (title + screen-reader text). */
.rec .rec-listing-card__features { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.rec .rec-listing-card__title + .rec-listing-card__features, .rec .rec-listing-card__meta + .rec-listing-card__features { padding-top: 10px; border-top: 1px solid var(--rec-dune); }
.rec.rec-features { margin: 0; }
.elementor-widget.rec-features-widget:not(:has(.rec-features)) { display: none; } /* no features: no empty widget gap */
.rec .rec-features__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.rec .rec-feature-chip { display: inline-flex; align-items: center; gap: 8px; min-height: 36px; margin: 0; padding: 0 14px 0 10px; border-radius: 999px; background: #fff; border: 1px solid var(--rec-line); font: 500 14px/1.2 var(--rec-font-text); color: var(--rec-ink-2); }
.rec .rec-feature-chip .rec-icon { color: var(--rec-label); flex-shrink: 0; }
.rec .rec-feature-chip__mark { margin-left: 2px; color: var(--rec-lagoon); font-weight: 700; } /* issue 1125: mentioned in the description */
.rec .rec-features__note { margin: 10px 0 0; font: 500 13px/1.4 var(--rec-font-text); color: var(--rec-ink-2); }
.rec .rec-feature { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; margin: 0; border-radius: 999px; background: var(--rec-dune); color: var(--rec-label); }
.rec .rec-listing-card__broker { display: flex; align-items: center; gap: 8px; font: 600 13px var(--rec-font-text); color: var(--rec-deep-water); margin-top: auto; }
.rec .rec-listing-card__more { font-weight: 500; color: var(--rec-ink-2); }

/* Filter bar */
.rec .rec-filter { background: #fff; border: 1px solid var(--rec-line); border-radius: var(--rec-radius-card); padding: 20px; display: flex; flex-direction: column; gap: 18px; margin: 0 0 32px; }
.rec .rec-filter__top { display: flex; justify-content: space-between; align-items: center; gap: 16px; border-bottom: 1px solid var(--rec-line); padding-bottom: 14px; }
.rec .rec-filter__note { display: flex; align-items: center; gap: 8px; font: 500 13px/1.4 var(--rec-font-text); color: var(--rec-ink-2); }
.rec .rec-filter__fields { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; align-items: end; }
.rec .rec-field { display: flex; flex-direction: column; gap: 6px; margin: 0; }
.rec .rec-filter__bottom { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.rec .rec-filter__active { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.rec .rec-filter__clear { font: 600 13px var(--rec-font-text); margin-left: 6px; text-decoration: underline; text-underline-offset: 3px; }
/* Issue 1123: title search right of the deal control, and "More filters" (<details>, open while one is set).
   Inputs 16 px (no iOS zoom), tap targets 44 px. */
.rec .rec-filter__q { position: relative; display: flex; align-items: center; flex: 1 1 280px; max-width: 420px; margin: 0; }
.rec .rec-filter__q .rec-icon { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--rec-label); pointer-events: none; }
.rec .rec-filter__q .rec-input { width: 100%; padding-left: 42px; font-size: 16px; -webkit-appearance: none; appearance: none; }
.rec .rec-filter__top .rec-filter__note { margin-left: auto; max-width: 440px; }
.rec .rec-filter__more { border-top: 1px solid var(--rec-line); margin: -4px 0 0; padding-top: 4px; }
.rec .rec-filter__more-toggle { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; cursor: pointer; list-style: none; font: 600 14px var(--rec-font-text); color: var(--rec-deep-water); }
.rec .rec-filter__more-toggle::-webkit-details-marker { display: none; }
.rec .rec-filter__more-toggle::marker { content: ""; }
.rec .rec-filter__more-toggle .rec-icon:first-child { color: var(--rec-lagoon); }
.rec .rec-filter__more-toggle .rec-icon:last-child { transition: transform .15s ease; }
.rec .rec-filter__more[open] > .rec-filter__more-toggle .rec-icon:last-child { transform: rotate(180deg); }
.rec .rec-filter__more-toggle:focus-visible { outline: 2px solid var(--rec-lagoon); outline-offset: 2px; border-radius: var(--rec-radius-control); }
.rec .rec-filter__more-body { display: flex; flex-direction: column; gap: 16px; padding: 10px 0 4px; }
.rec .rec-filter__more .rec-input { font-size: 16px; }
.rec .rec-filter__features { display: flex; flex-wrap: wrap; gap: 8px; min-width: 0; margin: 0; padding: 0; border: 0; }
.rec .rec-filter__features legend { float: left; width: 100%; margin: 0 0 8px; padding: 0; }
.rec .rec-check { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px 0 12px; border: 1px solid var(--rec-line); border-radius: 999px; background: #fff; font: 500 14px/1.2 var(--rec-font-text); color: var(--rec-ink-2); cursor: pointer; }
.rec .rec-check input { width: 18px; height: 18px; margin: 0; flex-shrink: 0; accent-color: var(--rec-lagoon); }
.rec .rec-check .rec-icon { color: var(--rec-label); flex-shrink: 0; }
.rec .rec-check:hover { border-color: var(--rec-deep-water); }
.rec .rec-check:has(input:checked) { border-color: var(--rec-lagoon); background: #E3F1F1; color: var(--rec-deep-water); }
.rec .rec-check:has(input:checked) .rec-icon { color: var(--rec-lagoon); }
.rec .rec-check:has(input:focus-visible) { outline: 2px solid var(--rec-lagoon); outline-offset: 2px; }
.rec .rec-filter__more-note { margin: 0; font: 500 13px/1.4 var(--rec-font-text); color: var(--rec-ink-2); }
.rec .rec-tabs { display: flex; gap: 4px; }
.rec .rec-tabs--boxed { background: #fff; border: 1px solid var(--rec-line); border-radius: 8px; padding: 3px; align-self: flex-start; }
.rec .rec-tab { display: inline-flex; align-items: center; height: 40px; padding: 0 18px; border-radius: 6px; font: 600 14px var(--rec-font-text); color: var(--rec-deep-water); text-decoration: none; }
.rec .rec-tab:hover { background: var(--rec-dune); color: var(--rec-deep-water); }
.rec .rec-tab.is-current { background: var(--rec-deep-water); color: #fff; }

/* Results bar + sort */
.rec .rec-results-bar { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding-bottom: 20px; margin-bottom: 24px; border-bottom: 1px solid var(--rec-line); }
.rec .rec-results-bar__count { display: flex; flex-direction: column; gap: 4px; }
.rec .rec-results-bar__total { font: 500 24px var(--rec-font-display); font-variation-settings: "opsz" 144; }
.rec .rec-results-bar__note { font: 500 13px var(--rec-font-text); color: var(--rec-ink-2); }
.rec .rec-sort { display: flex; align-items: center; gap: 10px; margin: 0; }
.rec .rec-sort .rec-select { min-width: 210px; }

/* Pagination */
.rec .rec-pagination { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding-top: 28px; margin-top: 32px; border-top: 1px solid var(--rec-line); }
.rec .rec-pagination__step { min-height: 44px; }
.rec .rec-pagination__pages { display: flex; gap: 6px; align-items: center; justify-content: center; flex-wrap: wrap; }
.rec .rec-pagination__page { width: 44px; height: 44px; border-radius: 6px; display: flex; align-items: center; justify-content: center; font: 600 15px var(--rec-font-text); color: var(--rec-deep-water); text-decoration: none; }
.rec .rec-pagination__page:hover { background: var(--rec-dune); color: var(--rec-deep-water); }
.rec .rec-pagination__page.is-current { background: var(--rec-lagoon); color: #fff; }
.rec .rec-pagination__gap { width: 28px; text-align: center; color: var(--rec-ink-2); }

/* Property header */
.rec.rec-property-header { display: flex; flex-direction: column; gap: 24px; }
.rec .rec-property-header__row { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; }
.rec .rec-property-header__main { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.rec .rec-property-header__title { margin: 0; font-family: var(--rec-font-display); font-variation-settings: "opsz" 144; font-size: 48px; line-height: 1.06; font-weight: 500; letter-spacing: -.015em; color: var(--rec-deep-water); }
.rec .rec-property-header__loc, .rec .rec-property-header__checked { display: flex; align-items: center; gap: 8px; font: 500 15px var(--rec-font-text); color: var(--rec-ink-2); }
.rec .rec-property-header__loc .rec-icon { color: var(--rec-lagoon); }
.rec .rec-property-header__price { display: flex; flex-direction: column; gap: 8px; align-items: flex-end; text-align: right; }
.rec .rec-property-header__amount { font-size: 40px; line-height: 1; font-weight: 500; letter-spacing: -.01em; white-space: nowrap; }
.rec .rec-property-header__sub { font: 500 14px var(--rec-font-text); color: var(--rec-ink-2); }
.rec .rec-property-header__sub--italic { font: italic 400 16px var(--rec-font-display); }

/* Gallery */
.rec .rec-gallery__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 8px; height: 520px; }
.rec .rec-gallery__item { border-radius: 12px; }
.rec .rec-gallery__item .rec-card__chips { top: 16px; left: 16px; }
.rec.rec-gallery--n5 .rec-gallery__item:first-child,
.rec.rec-gallery--n4 .rec-gallery__item:first-child,
.rec.rec-gallery--n3 .rec-gallery__item:first-child { grid-column: span 2; grid-row: span 2; }
.rec.rec-gallery--n4 .rec-gallery__item:nth-child(2),
.rec.rec-gallery--n3 .rec-gallery__item:nth-child(n+2) { grid-column: span 2; }
.rec.rec-gallery--n2 .rec-gallery__item { grid-column: span 2; grid-row: span 2; }
.rec.rec-gallery--n1 .rec-gallery__item { grid-column: 1 / -1; grid-row: span 2; }
.rec .rec-gallery__more { margin-top: 12px; }
.rec .rec-gallery__more summary { list-style: none; display: inline-flex; cursor: pointer; }
.rec .rec-gallery__more summary::-webkit-details-marker { display: none; }
.rec .rec-gallery__all { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-top: 12px; }
.rec .rec-gallery__all .rec-gallery__item { aspect-ratio: 4 / 3; }

/* Key facts strip */
.rec .rec-key-facts__list { list-style: none; margin: 0; padding: 8px 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); background: #fff; border: 1px solid var(--rec-line); border-radius: var(--rec-radius-card); }
.rec .rec-key-facts__item { display: flex; align-items: center; gap: 12px; padding: 16px 24px; margin: 0; border-right: 1px solid var(--rec-dune); min-width: 0; }
.rec .rec-key-facts__item:nth-child(4n) { border-right: 0; }
.rec .rec-key-facts__item:nth-child(n+5) { border-top: 1px solid var(--rec-dune); }
.rec .rec-key-facts__item .rec-icon { color: var(--rec-lagoon); }
.rec .rec-key-facts__text { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.rec .rec-key-facts__text strong { font: 600 17px/1.3 var(--rec-font-text); color: var(--rec-deep-water); }
.rec .rec-key-facts__text span { font: 500 13px var(--rec-font-text); color: var(--rec-ink-2); }

/* Offered by (sticky on desktop) */
.rec .rec-offered__card { padding: 24px; display: flex; flex-direction: column; gap: 16px; }
.rec .rec-offered__card:hover { border-color: var(--rec-line); }
.rec .rec-offered__head { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.rec .rec-offered__empty { font: 500 15px/1.5 var(--rec-font-text); color: var(--rec-ink-2); }
.rec .rec-offer { padding: 18px; border: 1px solid var(--rec-line); border-radius: 8px; display: flex; flex-direction: column; gap: 14px; }
.rec .rec-offer--primary { border-color: var(--rec-deep-water); }
.rec .rec-offer__broker { display: flex; align-items: center; gap: 12px; }
.rec .rec-offer__who { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.rec .rec-offer__name { font: 600 15px var(--rec-font-text); color: var(--rec-deep-water); }
.rec .rec-offer__agent { font: 500 13px var(--rec-font-text); color: var(--rec-ink-2); }
.rec .rec-offer__price-block { display: flex; flex-direction: column; gap: 4px; }
.rec .rec-offer__deal { font: 500 13px var(--rec-font-text); color: var(--rec-ink-2); }
.rec .rec-offer__price { font-size: 26px; line-height: 1.15; }
.rec .rec-offer__source-price { font: 500 13px var(--rec-font-text); color: var(--rec-ink-2); }
.rec .rec-offer__checked { display: flex; align-items: center; gap: 6px; font: 500 13px var(--rec-font-text); color: var(--rec-ink-2); }
.rec .rec-offer__cta { display: flex; flex-direction: column; gap: 8px; }
.rec .rec-offer__cta .rec-btn { width: 100%; white-space: normal; text-align: center; }
.rec .rec-offer__hint { font: 500 12px var(--rec-font-text); color: var(--rec-label); text-align: center; }
.rec .rec-offer__gone { margin: 0; padding: 12px 14px; border: 1px solid var(--rec-line); border-radius: 6px; font: 600 14px var(--rec-font-text); color: var(--rec-ink-2); text-align: center; }
@media (min-width: 901px) {
	.rec.rec-offered { position: sticky; top: 24px; }
	.elementor-widget:has(> .elementor-widget-container > .rec-offered),
	.elementor-widget-shortcode:has(.rec-offered) { position: sticky; top: 24px; align-self: flex-start; }
}

/* About / Facts / Neighbourhood */
.rec.rec-about { display: flex; flex-direction: column; gap: 56px; }
.rec .rec-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 48px; }
.rec .rec-facts__col { margin: 0; display: flex; flex-direction: column; }
.rec .rec-facts__row { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--rec-dune); font-size: 15px; }
.rec .rec-facts__row dt { color: var(--rec-ink-2); font-weight: 500; margin: 0; }
.rec .rec-facts__row dd { margin: 0; font-weight: 600; text-align: right; }
.rec .rec-status { display: inline-flex; align-items: center; gap: 8px; }
.rec .rec-status__dot { width: 8px; height: 8px; border-radius: 999px; background: var(--rec-lagoon); display: inline-block; }
.rec .rec-status--under_offer .rec-status__dot { background: var(--rec-terracotta); }
.rec .rec-status--sold .rec-status__dot, .rec .rec-status--rented .rec-status__dot, .rec .rec-status--withdrawn .rec-status__dot { background: var(--rec-label); }

/* Broker */
.rec.rec-broker-header { display: flex; flex-direction: column; gap: 24px; }
.rec .rec-broker-header__card { background: #fff; border: 1px solid var(--rec-line); border-radius: var(--rec-radius-panel); padding: 32px; display: flex; align-items: center; gap: 32px; }
.rec .rec-broker-header__main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 12px; }
.rec .rec-broker-header__title { margin: 0; font-family: var(--rec-font-display); font-variation-settings: "opsz" 144; font-size: 48px; line-height: 1.04; font-weight: 500; letter-spacing: -.015em; color: var(--rec-deep-water); }
.rec .rec-broker-header__tagline { font: 500 16px/1.5 var(--rec-font-text); color: var(--rec-ink-2); }
.rec .rec-broker-header__checked { display: flex; align-items: center; gap: 6px; font: 500 15px/1.5 var(--rec-font-text); color: var(--rec-ink-2); }
.rec .rec-broker-header__checked .rec-icon { color: var(--rec-lagoon); }
.rec .rec-broker-header__chips { display: flex; gap: 8px; flex-wrap: wrap; padding-top: 4px; }
.rec .rec-broker-header__actions { display: flex; flex-direction: column; gap: 12px; flex-shrink: 0; }
.rec .rec-broker-header__note { font: 500 13px/1.5 var(--rec-font-text); color: var(--rec-ink-2); margin-top: -12px; }
.rec.rec-glance { display: block; }
/* Issue 1025: 'At a glance' is a horizontal row between broker header and listings. */
.rec .rec-glance__card { padding: 24px 28px; display: flex; flex-direction: column; gap: 18px; }
.rec .rec-glance__card:hover { border-color: var(--rec-line); }
.rec .rec-glance__title { margin: 0; font: 500 22px var(--rec-font-display); font-variation-settings: "opsz" 144; color: var(--rec-deep-water); }
.rec .rec-glance__list { margin: 0; display: flex; flex-wrap: wrap; row-gap: 16px; }
.rec .rec-glance__row { flex: 1 1 0; min-width: 120px; display: flex; flex-direction: column; gap: 8px; padding: 0 20px; border-left: 1px solid var(--rec-dune); }
.rec .rec-glance__row:first-child { padding-left: 0; border-left: 0; }
.rec .rec-glance__row--wide { flex-basis: 100%; padding: 16px 0 0; border-left: 0; border-top: 1px solid var(--rec-dune); }
.rec .rec-glance__row dt { line-height: 1.5; margin: 0; }
.rec .rec-glance__row dd { margin: 0; font: 600 15px/1.45 var(--rec-font-text); color: var(--rec-deep-water); overflow-wrap: anywhere; }
.rec .rec-glance__row--wide dd { font: 500 14px/1.6 var(--rec-font-text); color: var(--rec-ink-2); overflow-wrap: normal; }
.rec .rec-glance__foot { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px 24px; padding-top: 16px; border-top: 1px solid var(--rec-dune); }
.rec .rec-glance__foot .rec-footnote { margin: 0; }
.rec .rec-glance__claim { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; font: 600 14px/1.5 var(--rec-font-text); color: var(--rec-deep-water); }
.rec .rec-glance__claim .rec-arrow-link { font-size: 14px; color: var(--rec-lagoon-deep); }
@media (max-width: 900px) {
	.rec .rec-glance__card { padding: 20px; }
	.rec .rec-glance__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; }
	.rec .rec-glance__row, .rec .rec-glance__row:first-child { padding: 12px 0; border-left: 0; border-top: 1px solid var(--rec-dune); gap: 6px; }
	.rec .rec-glance__row--wide { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
	.rec .rec-glance__list { grid-template-columns: minmax(0, 1fr); }
	.rec .rec-glance__row, .rec .rec-glance__row:first-child { flex-direction: row; justify-content: space-between; align-items: baseline; gap: 16px; }
	.rec .rec-glance__row dd { text-align: right; }
	.rec .rec-glance__row--wide { flex-direction: column; gap: 6px; }
	.rec .rec-glance__row--wide dd { text-align: left; }
}
.rec.rec-broker-listings { display: flex; flex-direction: column; gap: 28px; }
.rec.rec-broker-listings .rec-results-bar { margin-bottom: 0; }
.rec a.rec-broker-card { padding: 20px; display: flex; align-items: center; gap: 16px; text-decoration: none; color: var(--rec-deep-water); }
.rec a.rec-broker-card:hover { color: var(--rec-deep-water); }
.rec a.rec-broker-card > .rec-icon { color: var(--rec-lagoon); margin-left: auto; }
.rec .rec-broker-card__text { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.rec .rec-broker-card__name { font: 600 17px/1.3 var(--rec-font-text); }
.rec .rec-broker-card__count { font: 500 13px var(--rec-font-text); color: var(--rec-ink-2); }

/* Locations */
.rec .rec-grid--areas { grid-auto-rows: auto; }
.rec a.rec-area-card { display: flex; flex-direction: column; text-decoration: none; color: var(--rec-deep-water); }
.rec a.rec-area-card:hover { color: var(--rec-deep-water); }
.rec .rec-area-card__photo { height: 140px; }
.rec .rec-area-card--featured { grid-row: span 2; }
.rec .rec-area-card--featured .rec-area-card__photo { flex-grow: 1; min-height: 300px; height: auto; }
.rec .rec-area-card__body { padding: 16px 20px; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.rec .rec-area-card__body > .rec-icon { color: var(--rec-lagoon); }
.rec .rec-area-card__text { display: flex; flex-direction: column; gap: 4px; }
.rec .rec-area-card__name { font: 500 22px var(--rec-font-display); font-variation-settings: "opsz" 144; }
.rec .rec-area-card--featured .rec-area-card__name { font-size: 24px; }
.rec .rec-area-card__count { font: 500 13px var(--rec-font-text); color: var(--rec-ink-2); }
.rec.rec-location-header { display: flex; flex-direction: column; gap: 28px; }
.rec .rec-location-header__main { display: flex; flex-direction: column; gap: 14px; max-width: 820px; }
.rec .rec-location-header__title { margin: 0; font-family: var(--rec-font-display); font-variation-settings: "opsz" 144; font-size: 44px; line-height: 1.06; font-weight: 500; letter-spacing: -.015em; color: var(--rec-deep-water); }
.rec .rec-location-header__meta { font: 400 17px/1.5 var(--rec-font-text); color: var(--rec-ink-2); }

/* Price change in Offered by */
.rec .rec-offer__change { font: 500 13px/1.45 var(--rec-font-text); color: var(--rec-deep-water); }

/* Search form (homepage hero) */
/* Issue 1034: the form itself is a transparent column; the deal switch stands apart (same look as the /search/ deal
   switch, 1032 A6) above the white card with the fields, and links to Map and Regions follow below. */
.rec.rec-search { display: flex; flex-direction: column; gap: 16px; position: relative; margin: 0; }
.rec .rec-search__deal { position: relative; display: inline-flex; align-self: flex-start; gap: 4px; max-width: 100%; margin: 0; padding: 4px; background: #fff; border: 1px solid var(--rec-line); border-radius: 10px; min-width: 0; }
.rec .rec-search__tab { position: relative; display: inline-flex; margin: 0; cursor: pointer; }
.rec .rec-search__tab input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; pointer-events: none; }
.rec .rec-search__tab > span { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: var(--rec-control-h); padding: 0 22px; border-radius: var(--rec-radius-control); font: 600 15px/1.2 var(--rec-font-text); color: var(--rec-deep-water); }
.rec .rec-search__tab:hover > span { background: var(--rec-dune); }
.rec .rec-search__tab input:checked + span { background: var(--rec-lagoon); color: #fff; }
.rec .rec-search__tab input:focus-visible + span { outline: 2px solid var(--rec-lagoon); outline-offset: 2px; }
/* Issue 1030: number of listed homes behind For sale / For rent (1034: spacing via the gap of the tab) */
.rec .rec-search__count { font: 500 12px var(--rec-font-text); font-variant-numeric: tabular-nums; opacity: .8; }
.rec .rec-search__fields { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, .8fr) minmax(0, .9fr) minmax(0, .9fr) auto; gap: 12px; align-items: end; }
.rec .rec-search__card { background: #fff; border-radius: var(--rec-radius-panel); padding: 20px; }
.rec .rec-search__ways { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.rec .rec-search__submit { min-height: var(--rec-control-h); }
/* Issue 1139: title search as its own white box beside the deal switch (homepage), with a small "More filters" link. */
.rec .rec-search__top { display: flex; flex-wrap: wrap; align-items: stretch; gap: 12px 16px; }
.rec .rec-search__qbox { display: flex; align-items: center; gap: 4px 16px; flex: 1 1 360px; max-width: 620px; padding: 4px 16px 4px 4px; background: #fff; border: 1px solid var(--rec-line); border-radius: 10px; min-width: 0; }
.rec .rec-search__qbox .rec-filter__q { flex: 1 1 auto; max-width: none; min-width: 0; }
.rec .rec-search__more { display: inline-flex; align-items: center; gap: 6px; flex: none; min-height: 44px; font: 600 14px var(--rec-font-text); color: var(--rec-deep-water); text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
.rec .rec-search__more .rec-icon { color: var(--rec-lagoon); }
.rec .rec-search__more:hover { color: var(--rec-lagoon); }
.rec .rec-search__more:focus-visible { outline: 2px solid var(--rec-lagoon); outline-offset: 2px; border-radius: var(--rec-radius-control); }
@media (max-width: 900px) {
	.rec .rec-search__top { flex-direction: column; }
	.rec .rec-search__qbox { flex: none; max-width: none; padding-right: 12px; }
	.rec .rec-search__more { font-size: 13px; }
}

/* Maps */
.rec.rec-map { display: flex; flex-direction: column; gap: 12px; }
.rec .rec-map__canvas { position: relative; z-index: 0; isolation: isolate; width: 100%; height: 360px; border-radius: var(--rec-radius-panel); border: 1px solid var(--rec-line); background: var(--rec-dune); overflow: hidden; }
.rec.rec-map--listings .rec-map__canvas { height: 560px; }
.rec .rec-map__caption { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 18px; font: 500 13px/1.45 var(--rec-font-text); color: var(--rec-ink-2); }
.rec .rec-map__caption > .rec-icon { color: var(--rec-lagoon); margin-right: -12px; }
.rec .rec-map__key { display: inline-flex; align-items: center; gap: 8px; }
.rec .rec-map__dot { width: 12px; height: 12px; border-radius: 999px; background: var(--rec-lagoon); box-shadow: 0 0 0 2px #fff, 0 0 0 3px var(--rec-line); }
.rec .rec-map__dot--approx { opacity: .5; }
.rec .rec-map__count { margin-left: auto; }
.rec .rec-map__empty { display: flex; align-items: center; gap: 12px; padding: 24px; border-radius: var(--rec-radius-panel); background: var(--rec-dune); font: 500 15px/1.5 var(--rec-font-text); color: var(--rec-ink-2); }
.rec .rec-map__empty .rec-icon { color: var(--rec-lagoon); }
/* Issue 1038: the broker map section disappears when [rec_broker_map] has nothing to show (no active listings). */
.rec-broker-map-section:not(:has(.rec-map)) { display: none; }
.rec .rec-map__pin { background: none; border: 0; }
.rec .leaflet-container { font: 500 13px/1.4 var(--rec-font-text); }
.rec .leaflet-container a { color: var(--rec-lagoon); }
.rec .leaflet-popup-content-wrapper { border-radius: var(--rec-radius-card); }
.rec .leaflet-popup-content { margin: 14px 16px; }
.rec-map-pop { display: flex; flex-direction: column; gap: 10px; font-family: var(--rec-font-text); color: var(--rec-deep-water); }
.rec-map-pop__head { font: 600 14px var(--rec-font-text); }
.rec-map-pop__item { display: flex; flex-direction: column; gap: 2px; }
.rec-map-pop__price { font: 600 17px/1.2 var(--rec-font-display); font-variation-settings: "opsz" 144; }
.rec-map-pop__item + .rec-map-pop__item { padding-top: 10px; border-top: 1px solid var(--rec-dune); }
.rec .rec-map-pop__title { font: 600 14px/1.35 var(--rec-font-text); color: var(--rec-lagoon); }
.rec-map-pop__loc, .rec-map-pop__note { font: 500 12px var(--rec-font-text); color: var(--rec-ink-2); }
.rec .rec-map-pop__more { font: 600 13px var(--rec-font-text); }

/* Issue 1010: the teaser is the containing block for its own absolutely positioned content (.rec-sr-only);
   without it those 1 px spans escape the scroller's overflow clip and widen the page. */
.rec-teaser { position: relative; }

/* ≤ 900 px: stack everything; teaser rows scroll horizontally */
@media (max-width: 900px) {
	.rec .rec-grid { grid-template-columns: minmax(0, 1fr); }
	.rec.rec-teaser, .rec .rec-teaser { overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; padding-bottom: 8px; }
	.rec.rec-teaser .rec-grid, .rec .rec-teaser .rec-grid { display: flex; gap: 16px; }
	.rec.rec-teaser .rec-grid > *, .rec .rec-teaser .rec-grid > * { flex: 0 0 300px; scroll-snap-align: start; }
	.rec .rec-filter__top, .rec .rec-filter__bottom, .rec .rec-results-bar, .rec .rec-pagination,
	.rec .rec-property-header__row, .rec .rec-broker-header__card, .rec .rec-section-head { flex-direction: column; align-items: stretch; }
	.rec .rec-filter__fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rec .rec-filter__q { flex: 0 0 auto; max-width: none; }
	.rec .rec-filter__top .rec-filter__note { margin-left: 0; max-width: none; }
	.rec .rec-sort .rec-select { min-width: 0; flex: 1; }
	.rec .rec-property-header__title, .rec .rec-broker-header__title { font-size: 38px; }
	.rec .rec-location-header__title { font-size: 38px; }
	.rec .rec-h2 { font-size: 26px; }
	.rec .rec-h2--lg { font-size: 30px; }
	.rec .rec-property-header__price { align-items: flex-start; text-align: left; }
	.rec .rec-property-header__amount { font-size: 32px; white-space: normal; }
	.rec .rec-gallery__grid { height: auto; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: none; }
	.rec.rec-gallery .rec-gallery__grid > .rec-gallery__item { min-height: 130px; grid-column: auto; grid-row: auto; }
	.rec.rec-gallery .rec-gallery__grid > .rec-gallery__item:first-child { grid-column: span 2; min-height: 260px; }
	.rec.rec-gallery.rec-gallery--n2 .rec-gallery__grid > .rec-gallery__item:nth-child(2) { grid-column: span 2; min-height: 200px; }
	.rec .rec-gallery__all { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rec .rec-gallery__item .rec-status-banner { top: 12px; right: 12px; height: 38px; padding: 0 16px; font-size: 14px; }
	.rec .rec-key-facts__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rec .rec-key-facts__item { padding: 14px 16px; border-right: 0; border-top: 1px solid var(--rec-dune); }
	.rec .rec-key-facts__item:nth-child(-n+2) { border-top: 0; }
	.rec .rec-key-facts__item:nth-child(odd) { border-right: 1px solid var(--rec-dune); }
	.rec .rec-facts { grid-template-columns: minmax(0, 1fr); }
	.rec .rec-area-card--featured { grid-row: auto; }
	.rec .rec-broker-header__card { padding: 24px; gap: 20px; }
	.rec .rec-tabs--boxed { align-self: stretch; }
	.rec .rec-tab { flex: 1; justify-content: center; }
	.rec .rec-search__fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rec .rec-search__loc, .rec .rec-search__submit { grid-column: 1 / -1; }
	.rec .rec-search__deal { display: flex; align-self: stretch; }
	.rec .rec-search__tab { flex: 1 1 0; min-width: 0; }
	.rec .rec-search__tab > span { width: 100%; flex-wrap: wrap; column-gap: 6px; row-gap: 0; padding: 4px 8px; }
	.rec .rec-search__ways { gap: 8px; }
	.rec .rec-search__way { align-items: center; justify-content: center; padding: 10px 6px; }
	.rec .rec-search__way .rec-hub__tab-name { font-size: 15px; gap: 6px; }
	.rec .rec-search__way .rec-hub__tab-desc { display: none; }
	.rec .rec-map__canvas { height: 260px; }
	.rec.rec-map--listings .rec-map__canvas { height: 420px; }
	.rec .rec-map__count { margin-left: 0; width: 100%; }
}

/* Similar homes (1008) */
.rec.rec-similar { display: flex; flex-direction: column; gap: 64px; }
.rec .rec-similar__block { display: flex; flex-direction: column; gap: 28px; }
.rec .rec-similar__more { display: flex; justify-content: center; }
.rec .rec-similar__sub { margin: 0; font: 500 14px/1.5 var(--rec-font-text); color: var(--rec-ink-2); }
.rec .rec-similar__block .rec-section-head > div { gap: 10px; }
@media (max-width: 900px) {
	.rec.rec-similar { gap: 48px; }
	.rec .rec-similar__block { gap: 20px; }
	.rec .rec-similar__more .rec-btn { width: 100%; }
}

/* 1045: inside a journal article the content column is narrow (339 px at 1024 next to the sidebar), so a teaser is
   always a horizontal scroller with fixed-width cards there, whatever the viewport width. */
.elementor-widget-theme-post-content .rec .rec-teaser { overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; padding-bottom: 8px; }
.elementor-widget-theme-post-content .rec .rec-teaser .rec-grid { display: flex; gap: 16px; }
.elementor-widget-theme-post-content .rec .rec-teaser .rec-grid > * { flex: 0 0 260px; scroll-snap-align: start; }
/* The scroller's width must not stretch the article column (Elementor flex items default to min-width: auto). */
.elementor-column:has(.elementor-widget-theme-post-content), .elementor-widget-theme-post-content { min-width: 0; }
/* 1045c: the same for the Single Blog Post Template: the Blog text 1/2/3 widgets (.rec-article) and the saved sections
   Blog Template 1/2/3 (.rec-blog-section) sit in the same narrow column. */
.rec-article .rec-teaser, .rec-blog-section .rec-teaser { overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; padding-bottom: 8px; }
.rec-article .rec-teaser .rec-grid, .rec-blog-section .rec-teaser .rec-grid { display: flex; gap: 16px; }
.rec-article .rec-teaser .rec-grid > *, .rec-blog-section .rec-teaser .rec-grid > * { flex: 0 0 280px; scroll-snap-align: start; }
.elementor-column:has(.rec-article), .rec-article, .rec-blog-section, .rec-blog-section .elementor-column, .elementor-widget-template:has(.rec-blog-section) { min-width: 0; }
@media (max-width: 600px) {
	.rec-article .rec-teaser .rec-grid > *, .rec-blog-section .rec-teaser .rec-grid > * { flex-basis: 260px; }
}

/* Teaser with heading / "see all" link (1045): the strip itself stays the inner .rec-teaser scroller */
.rec.rec-teaser-block { display: flex; flex-direction: column; gap: 24px; }
.rec .rec-teaser-block__more { display: flex; justify-content: center; }
@media (max-width: 900px) {
	.rec.rec-teaser-block { gap: 16px; }
	.rec .rec-teaser-block__more .rec-btn { width: 100%; }
}

/* Video (2026-10-03): click-to-load player, gallery video tiles, card chip */
.rec .rec-video__list { display: grid; gap: 16px; max-width: 960px; }
.rec .rec-video__player { position: relative; aspect-ratio: 16 / 9; border-radius: var(--rec-radius-panel); overflow: hidden; background: var(--rec-deep-water); }
.rec .rec-video__player > .rec-photo { position: absolute; inset: 0; }
.rec .rec-video__player > iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; }
.rec .rec-video__play, .rec .rec-gallery__play { position: absolute; inset: 0; z-index: 1; display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; color: #fff; cursor: pointer; text-decoration: none; }
.rec .rec-video__badge { display: inline-flex; align-items: center; justify-content: center; padding-left: 4px; border-radius: 999px; background: var(--rec-lagoon); color: #fff; box-shadow: 0 2px 12px rgba(11, 42, 51, .35); }
.rec .rec-video__play:hover .rec-video__badge, .rec .rec-video__play:focus-visible .rec-video__badge,
.rec .rec-gallery__play:hover .rec-video__badge, .rec .rec-gallery__play:focus-visible .rec-video__badge { background: var(--rec-lagoon-deep); }
.rec .rec-video__play:hover, .rec .rec-video__play:focus { background: transparent; }
.rec .rec-video__play:focus-visible, .rec .rec-gallery__play:focus-visible { outline: 3px solid var(--rec-lagoon); outline-offset: -3px; }
.rec .rec-chip--video .rec-icon { margin-left: -2px; }
/* Template 184: no empty widget gap for homes without video */
.elementor-element-prop-video:has(> .elementor-widget-container > .elementor-shortcode:empty) { display: none; }
/* Issue 1014: videos only in the gallery; video hero (muted autoplay, poster behind) + Enlarge video overlay */
.rec .rec-gallery__item.rec-video__player { aspect-ratio: auto; border-radius: 12px; }
.rec .rec-video__player > iframe { z-index: 0; }
.rec .rec-video__player.is-playing > .rec-video__play { display: none; }
.rec .rec-video-dialog { width: min(1200px, calc(100vw - 32px)); max-width: none; max-height: none; margin: auto; padding: 0; border: 0; background: transparent; overflow: visible; }
.rec .rec-video-dialog::backdrop { background: rgba(11, 42, 51, .88); }
.rec .rec-video-dialog__box { position: relative; padding-top: 56px; }
.rec .rec-video-dialog__frame { position: relative; width: min(100%, calc((100vh - 96px) * 16 / 9)); aspect-ratio: 16 / 9; margin: 0 auto; border-radius: 12px; overflow: hidden; background: #000; }
.rec .rec-video-dialog__frame > iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; }
.rec .rec-video-dialog__close { position: absolute; top: 0; right: 0; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin: 0; padding: 0; border: 0; border-radius: 999px; background: #fff; color: var(--rec-deep-water); cursor: pointer; }
.rec .rec-video-dialog__close:hover, .rec .rec-video-dialog__close:focus { background: var(--rec-sand); color: var(--rec-deep-water); }
.rec .rec-video-dialog__close:focus-visible { outline: 2px solid var(--rec-lagoon-light); outline-offset: 2px; }
@media (max-width: 900px) {
	.rec.rec-gallery .rec-gallery__grid > .rec-video__player:first-child { min-height: 0; aspect-ratio: 16 / 9; }
}
/* Issue 1013: area map images (inline SVG, island Dune on Sand, Lagoon dot); subordinate to listing photos */
.rec-areamap { position: relative; overflow: hidden; background: var(--rec-sand, #F7F2EA); }
.rec-areamap__svg { position: absolute; inset: 6% 4%; width: 92%; height: 88%; display: block; max-width: none; }
.rec .rec-areamap-credit, .rec-areamap-credit { font: 500 12px/1.4 var(--rec-font-text); color: var(--rec-label); }
.rec .rec-areamap-credit a, .rec-areamap-credit a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.rec .rec-locations > .rec-areamap-credit { margin: 16px 0 0; }
.rec .rec-location-header__map { margin: 0; display: flex; flex-direction: column; gap: 6px; }
.rec .rec-location-header__img { width: 100%; aspect-ratio: 4 / 3; border: 1px solid var(--rec-line); border-radius: 10px; }
@media (min-width: 901px) {
	.rec.rec-location-header { display: grid; grid-template-columns: minmax(0, 1fr) 280px; column-gap: 48px; row-gap: 28px; align-items: end; }
	.rec.rec-location-header > .rec-breadcrumb { grid-column: 1 / -1; }
}
@media (max-width: 900px) {
	.rec .rec-location-header__img { aspect-ratio: 5 / 2; }
	.rec .rec-area-card--featured .rec-areamap.rec-area-card__photo { min-height: 180px; }
}
/* Projects and "Found on N websites" (contract 15, 2026-10-03) */
.rec .rec-offer__type { line-height: 1.2; }
.rec .rec-property-header__project { font-size: 14px; }
.rec.rec-project-header { display: flex; flex-direction: column; gap: 28px; }
.rec .rec-project-header__main { display: flex; flex-direction: column; gap: 14px; max-width: 820px; min-width: 0; }
.rec .rec-project-header__title { margin: 0; font-family: var(--rec-font-display); font-variation-settings: "opsz" 144; font-size: 48px; line-height: 1.04; font-weight: 500; letter-spacing: -.015em; color: var(--rec-deep-water); }
.rec .rec-project-header__loc { display: flex; align-items: flex-start; gap: 8px; margin: 0; font: 500 15px/1.5 var(--rec-font-text); color: var(--rec-ink-2); }
.rec .rec-project-header__loc .rec-icon { color: var(--rec-lagoon); flex-shrink: 0; margin-top: 3px; }
.rec .rec-project-header__loc a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.rec .rec-project-header__loc a:hover { color: var(--rec-lagoon); }
.rec .rec-project-header__meta { margin: 0; font: 400 17px/1.5 var(--rec-font-text); color: var(--rec-ink-2); }
.rec .rec-project-header__actions { display: flex; flex-wrap: wrap; gap: 12px; padding-top: 4px; }
.rec .rec-project-header__broker { display: flex; align-items: center; gap: 8px; margin: 0; font: 600 14px/1.4 var(--rec-font-text); color: var(--rec-deep-water); }
.rec .rec-project-header__broker a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.rec .rec-project-header__broker a:hover { color: var(--rec-lagoon); }
.rec .rec-project-header__media { margin: 0; display: flex; flex-direction: column; gap: 6px; }
.rec .rec-project-header__img { width: 100%; aspect-ratio: 4 / 3; border: 1px solid var(--rec-line); border-radius: 10px; overflow: hidden; }
.rec .rec-project-card__meta { font: 500 13px var(--rec-font-text); color: var(--rec-ink-2); }
.rec .rec-projects > .rec-areamap-credit { margin: 16px 0 0; }
.rec.rec-map--project .rec-map__canvas { height: 420px; }
@media (min-width: 901px) {
	.rec.rec-project-header { display: grid; grid-template-columns: minmax(0, 1fr) 360px; column-gap: 48px; row-gap: 28px; align-items: end; }
	.rec.rec-project-header > .rec-breadcrumb { grid-column: 1 / -1; }
}
@media (max-width: 900px) {
	.rec .rec-project-header__title { font-size: 38px; }
	.rec .rec-project-header__img { aspect-ratio: 16 / 10; }
	.rec .rec-project-header__actions .rec-btn { flex: 1 1 100%; }
	.rec.rec-map--project .rec-map__canvas { height: 360px; }
}
/* Issue 1020: regions map and overview on /locations/ (inline SVG, 1013 map style; highlight via :has, no JS) */
.rec.rec-regions { display: flex; flex-direction: column; gap: 16px; }
.rec .rec-rmap { display: grid; grid-template-columns: minmax(0, 1155fr) minmax(0, 1406fr); gap: 24px; align-items: start; }
.rec .rec-rmap__fig { margin: 0; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.rec .rec-rmap__svg { display: block; width: 100%; height: auto; background: var(--rec-sand); border: 1px solid var(--rec-line); border-radius: 12px; }
.rec .rec-rmap__caption { font: 500 13px/1.4 var(--rec-font-text); color: var(--rec-label); }
.rec .rec-rmap__zone { transition: fill .15s, opacity .15s; }
.rec .rec-rmap__zone--t0 { fill: #7FD1D6; opacity: .8; }
.rec .rec-rmap__zone--t1 { fill: #7FD1D6; opacity: .48; }
.rec .rec-rmap__zone--t2 { fill: #7FD1D6; opacity: .26; }
.rec .rec-rmap__region:hover .rec-rmap__zone, .rec .rec-rmap__region:focus-visible .rec-rmap__zone { fill: #0E7C86; opacity: .5; }
.rec .rec-rmap__region:focus-visible { outline: 2px solid var(--rec-lagoon); outline-offset: 2px; }
.rec .rec-rmap__dots { pointer-events: none; }
.rec .rec-rmap__dots circle { fill: var(--rec-lagoon); stroke: var(--rec-sand); stroke-width: 1; vector-effect: non-scaling-stroke; }
.rec .rec-rmap__label { cursor: pointer; }
.rec .rec-rmap__name { font-family: var(--rec-font-text); font-weight: 600; font-size: 9.5px; fill: var(--rec-deep-water); paint-order: stroke; stroke: var(--rec-sand); stroke-width: 3px; stroke-linejoin: round; }
.rec .rec-rmap__fig--inset .rec-rmap__name { font-size: 4.6px; stroke-width: 1.5px; }
.rec .rec-rmap__label:hover .rec-rmap__name { fill: var(--rec-lagoon); }
.rec .rec-rmap__num { display: none; }
.rec .rec-rmap__num circle { fill: var(--rec-deep-water); }
.rec .rec-rmap__num text { font-family: var(--rec-font-text); font-weight: 700; font-size: 11px; fill: #fff; }
.rec .rec-rmap__fig--inset .rec-rmap__num text { font-size: 5.6px; }
.rec .rec-rmap-legend { display: none; margin: 0; padding: 0; list-style: none; }
.rec .rec-region__num { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 24px; height: 24px; border-radius: 999px; background: var(--rec-deep-water); color: #fff; font: 700 12px/1 var(--rec-font-text); font-variation-settings: normal; letter-spacing: 0; }
.rec .rec-regions__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 24px; }
.rec .rec-region { background: var(--rec-white); border: 1px solid var(--rec-line); border-radius: 10px; padding: 22px 24px 24px; display: flex; flex-direction: column; gap: 10px; min-width: 0; scroll-margin-top: 110px; transition: border-color .15s; }
.rec .rec-region:target { border-color: var(--rec-deep-water); }
.rec .rec-region__title { display: flex; align-items: center; gap: 10px; margin: 0; font-family: var(--rec-font-display); font-variation-settings: "opsz" 144; font-size: 24px; line-height: 1.15; font-weight: 500; letter-spacing: -.01em; color: var(--rec-deep-water); }
.rec .rec-region__desc { margin: 0; font: 400 16px/1.5 var(--rec-font-text); color: var(--rec-ink-2); }
.rec .rec-region__anchors { margin: 0; font: 500 14px/1.55 var(--rec-font-text); color: var(--rec-ink-2); }
.rec .rec-region__label { margin: 4px 0 0; font: 600 11px/1.4 var(--rec-font-text); letter-spacing: .1em; text-transform: uppercase; color: var(--rec-label); }
.rec .rec-region__anchors .rec-region__label { margin: 0 6px 0 0; }
.rec .rec-region__hint { letter-spacing: .02em; text-transform: none; font-weight: 500; }
.rec .rec-region__list { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.rec .rec-region__list a { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 0 12px; border: 1px solid var(--rec-line); border-radius: 999px; background: var(--rec-sand); font: 600 14px/1.2 var(--rec-font-text); color: var(--rec-deep-water); }
.rec .rec-region__list a:hover { border-color: var(--rec-deep-water); color: var(--rec-deep-water); }
.rec .rec-region__list a:focus-visible, .rec .rec-rmap-legend a:focus-visible { outline: 2px solid var(--rec-lagoon); outline-offset: 2px; }
.rec .rec-region__count { font-weight: 500; color: var(--rec-lagoon); }
@media (max-width: 1100px) {
	.rec .rec-regions__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 901px) and (max-width: 1199px) {
	.rec .rec-rmap__fig--main .rec-rmap__name { font-size: 12px; stroke-width: 3.5px; }
}
@media (max-width: 900px) {
	.rec .rec-rmap { grid-template-columns: minmax(0, 1fr); gap: 16px; }
	.rec .rec-regions__grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
	.rec .rec-region { padding: 18px 18px 20px; }
	.rec .rec-region__title { font-size: 22px; }
}
@media (max-width: 600px) {
	.rec .rec-rmap__name { display: none; }
	.rec .rec-rmap__num { display: inline; }
	.rec .rec-rmap-legend { display: grid; grid-template-columns: minmax(0, 1fr); gap: 4px; }
	.rec .rec-rmap-legend a { display: flex; align-items: center; gap: 10px; min-height: 44px; font: 600 15px/1.3 var(--rec-font-text); color: var(--rec-deep-water); }
	.rec .rec-rmap-legend .rec-region__num { width: 26px; height: 26px; }
}

/* Issue 1024: promotion badges from the rec_card_badges filter (bottom-left over the photo); nothing renders without a callback */
.rec .rec-card__badges { position: absolute; left: 12px; bottom: 12px; z-index: 1; display: flex; gap: 6px; flex-wrap: wrap; }
.rec .rec-gallery__item .rec-card__badges { left: 16px; bottom: 16px; }
.rec .rec-chip--badge { background: #fff; color: var(--rec-deep-water); }

/* Issue 1032: /search/ hub: deal switch (A6), three modes as tabs (A3), map with every listed home (A1/A2/A5).
   Controls 48 px, inputs 16 px and Leaflet zoom buttons 44 px inside the hub (mobile audit 1030 A1/A2/C3). */
.rec.rec-hub { position: relative; display: flex; flex-direction: column; gap: 24px; }
.rec .rec-hub__deals { position: relative; display: inline-flex; align-self: flex-start; gap: 4px; max-width: 100%; padding: 4px; background: #fff; border: 1px solid var(--rec-line); border-radius: 10px; }
.rec .rec-hub__deal-opt { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: var(--rec-control-h); padding: 0 22px; border-radius: var(--rec-radius-control); font: 600 15px/1.2 var(--rec-font-text); color: var(--rec-deep-water); text-decoration: none; text-align: center; }
.rec .rec-hub__deal-opt:hover { background: var(--rec-dune); color: var(--rec-deep-water); }
.rec .rec-hub__deal-opt.is-current, .rec .rec-hub__deal-opt.is-current:hover { background: var(--rec-lagoon); color: #fff; }
.rec .rec-hub__deal-opt:focus-visible, .rec .rec-hub__tab:focus-visible { outline: 2px solid var(--rec-lagoon); outline-offset: 2px; }
.rec .rec-hub__deal-count { font: 500 12px var(--rec-font-text); font-variant-numeric: tabular-nums; opacity: .8; }
.rec .rec-hub__tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.rec .rec-hub__tab { display: flex; flex-direction: column; gap: 6px; min-height: var(--rec-control-h); padding: 16px 20px 18px; background: #fff; border: 1px solid var(--rec-line); border-radius: var(--rec-radius-card); color: var(--rec-deep-water); text-decoration: none; }
.rec .rec-hub__tab:hover { border-color: var(--rec-deep-water); color: var(--rec-deep-water); }
.rec .rec-hub__tab[aria-selected="true"] { border-color: var(--rec-deep-water); box-shadow: inset 0 -3px 0 var(--rec-lagoon); }
.rec .rec-hub__tab-name { display: flex; align-items: center; gap: 10px; font: 600 17px/1.2 var(--rec-font-text); }
.rec .rec-hub__tab-name .rec-icon { color: var(--rec-lagoon); flex-shrink: 0; }
.rec .rec-hub__tab-desc { font: 500 14px/1.45 var(--rec-font-text); color: var(--rec-ink-2); }
.rec .rec-hub__panel { position: relative; display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.rec .rec-hub__panel[hidden] { display: none; }
.rec .rec-hub__intro { display: none; margin: 0; font: 500 15px/1.5 var(--rec-font-text); color: var(--rec-ink-2); }
.rec .rec-hub__mapwrap { position: relative; }
.rec .rec-hub__map { position: relative; z-index: 0; isolation: isolate; width: 100%; height: 70vh; min-height: 480px; border-radius: var(--rec-radius-panel); border: 1px solid var(--rec-line); background: var(--rec-dune); overflow: hidden; }
.rec .rec-hub__map.is-exploring { border-color: var(--rec-lagoon); box-shadow: 0 0 0 2px var(--rec-lagoon); }
.rec .rec-hub__explore { position: absolute; left: 50%; bottom: 16px; z-index: 500; transform: translateX(-50%); box-shadow: 0 2px 12px rgba(11, 42, 51, .3); }
.rec .rec-hub__explore[hidden] { display: none; }
.rec .rec-hub__map .leaflet-bar a { width: 44px; height: 44px; line-height: 44px; font-size: 22px; }
.rec .rec-hub__map .leaflet-marker-icon:focus-visible { outline: 2px solid var(--rec-deep-water); outline-offset: 2px; }
.rec .rec-hub-pin, .rec .rec-hub-cluster, .rec .rec-hub-approx { background: none; border: 0; }
.rec .rec-hub-pin span { display: block; width: 24px; height: 24px; box-sizing: border-box; border-radius: 999px; background: var(--rec-lagoon); border: 3px solid #fff; box-shadow: 0 1px 4px rgba(11, 42, 51, .45); }
.rec .rec-hub-cluster span { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; box-sizing: border-box; border-radius: 999px; background: var(--rec-lagoon); border: 3px solid #fff; box-shadow: 0 0 0 5px rgba(14, 124, 134, .25); color: #fff; font: 700 14px/1 var(--rec-font-text); }
.rec .rec-hub-approx { width: 0 !important; height: 0 !important; }
.rec .rec-hub-approx-dot { background: none; border: 0; }
.rec .rec-hub-approx-dot span { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; box-sizing: border-box; border-radius: 999px; background: #fff; border: 2px dashed var(--rec-lagoon); box-shadow: 0 1px 4px rgba(11, 42, 51, .3); color: var(--rec-deep-water); font: 700 14px/1 var(--rec-font-text); }
.rec .rec-hub-tip { font: 600 13px/1.3 var(--rec-font-text); color: var(--rec-deep-water); border-radius: var(--rec-radius-control); }
.rec .rec-hub-approx span { position: absolute; left: 0; top: 0; transform: translate(-50%, -50%); display: inline-flex; align-items: center; min-height: 32px; padding: 0 12px; border-radius: 999px; background: #fff; border: 2px dashed var(--rec-lagoon); box-shadow: 0 1px 4px rgba(11, 42, 51, .25); color: var(--rec-deep-water); font: 600 13px/1.2 var(--rec-font-text); white-space: nowrap; }
.rec .rec-hub-popup .leaflet-popup-content-wrapper { padding: 0; border-radius: var(--rec-radius-card); overflow: hidden; }
.rec .rec-hub-popup .leaflet-popup-content { margin: 0; width: 260px !important; }
.rec .rec-hub-popup a.leaflet-popup-close-button { top: 4px; right: 4px; width: 44px; height: 44px; border-radius: 999px; background: rgba(11, 42, 51, .6); color: #fff; font: 400 26px/44px var(--rec-font-text); }
.rec .rec-hub-popup a.leaflet-popup-close-button:hover { background: var(--rec-deep-water); color: #fff; }
.rec .rec-hub-pop { display: flex; flex-direction: column; font-family: var(--rec-font-text); color: var(--rec-deep-water); }
.rec .rec-hub-pop__photo { display: block; }
.rec .rec-hub-pop__img { aspect-ratio: 4 / 3; }
.rec .rec-hub-pop__body { display: flex; flex-direction: column; gap: 6px; padding: 14px 16px 16px; }
.rec .rec-hub-pop--area .rec-hub-pop__body { padding-right: 48px; }
.rec .rec-hub-pop__price { font-size: 22px; line-height: 1.15; }
.rec .rec-hub-pop__title { font: 600 15px/1.3 var(--rec-font-text); }
.rec .rec-hub-pop__meta { font: 500 13px/1.4 var(--rec-font-text); color: var(--rec-ink-2); }
.rec .rec-hub-pop__broker { font: 600 13px var(--rec-font-text); }
.rec .rec-hub-pop__cta { width: 100%; margin-top: 6px; }
.rec .rec-hub-pop a.rec-btn--primary, .rec .rec-hub-pop a.rec-btn--primary:hover { color: #fff; }
.rec .rec-hub__legend { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; font: 500 14px/1.45 var(--rec-font-text); color: var(--rec-ink-2); }
.rec .rec-hub__key { display: inline-flex; align-items: center; gap: 8px; }
.rec .rec-hub__key-pin { width: 14px; height: 14px; border-radius: 999px; background: var(--rec-lagoon); box-shadow: 0 0 0 2px #fff, 0 0 0 3px var(--rec-line); }
.rec .rec-hub__key-approx { width: 26px; height: 16px; box-sizing: border-box; border-radius: 999px; background: #fff; border: 2px dashed var(--rec-lagoon); }
.rec .rec-hub__count { margin-left: auto; font-weight: 600; color: var(--rec-deep-water); }
.rec .rec-hub__note, .rec .rec-hub__empty { margin: 0; font: 500 14px/1.5 var(--rec-font-text); color: var(--rec-ink-2); }
.rec .rec-hub__note[hidden], .rec .rec-hub__areas[hidden], .rec .rec-hub__more[hidden] { display: none; }
.rec .rec-hub__areas { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.rec .rec-hub__areas .rec-label { width: 100%; }
.rec .rec-hub__area { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border-radius: 999px; background: #fff; border: 2px dashed var(--rec-lagoon); font: 600 14px var(--rec-font-text); color: var(--rec-deep-water); text-decoration: none; }
.rec a.rec-hub__area:hover { border-style: solid; color: var(--rec-deep-water); }
.rec .rec-hub__results .rec-hub__empty { grid-column: 1 / -1; }
.rec .rec-hub__more { align-self: center; }
.rec.rec-hub .rec-filter__top .rec-tabs { display: none; }
.rec.rec-hub .rec-filter__top { justify-content: flex-start; }
.rec.rec-hub .rec-input { font-size: 16px; }
.rec.rec-hub .rec-filter__clear { display: inline-flex; align-items: center; min-height: 44px; }
/* Issue 1123: the shared filter bar (deal switch + title search on top) above Map and Filters; Regions shows only the switch. */
.rec.rec-hub .rec-hub__bar .rec-filter { margin: 0; }
.rec.rec-hub[data-mode="regions"] .rec-hub__bar .rec-filter { padding: 0; gap: 0; background: none; border: 0; }
.rec.rec-hub[data-mode="regions"] .rec-hub__bar .rec-filter > :not(.rec-filter__top),
.rec.rec-hub[data-mode="regions"] .rec-hub__bar .rec-filter__top > :not(.rec-hub__deals),
.rec.rec-hub[data-mode="regions"] .rec-hub__bar > :not(.rec-filter) { display: none; }
.rec.rec-hub[data-mode="regions"] .rec-hub__bar .rec-filter__top { padding: 0; border: 0; }
@media (min-width: 901px) {
	.rec .rec-filter__top > .rec-hub__deals { align-self: center; flex-shrink: 0; }
}
.rec .rec-region__all { margin: 0; }
.rec .rec-region__all a { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font: 600 15px var(--rec-font-text); }
@media (max-width: 900px) {
	.rec.rec-hub { gap: 16px; }
	.rec .rec-hub__deals { display: flex; align-self: stretch; }
	.rec .rec-hub__deal-opt { flex: 1 1 0; min-width: 0; flex-wrap: wrap; column-gap: 6px; row-gap: 0; padding: 4px 8px; }
	.rec .rec-hub__tabs { gap: 8px; }
	.rec .rec-hub__tab { align-items: center; justify-content: center; padding: 10px 6px; }
	.rec .rec-hub__tab-name { font-size: 15px; gap: 6px; }
	.rec .rec-hub__tab-desc { display: none; }
	.rec .rec-hub__intro { display: block; }
	.rec .rec-hub__map { height: 60vh; min-height: 360px; }
	.rec .rec-hub-pop__img { aspect-ratio: 16 / 9; }
	.rec .rec-hub__count { margin-left: 0; width: 100%; }
}

/* ==========================================================================
   1045c: Single Blog Post Template (Elementor) and Blog Template 1/2/3
   ========================================================================== */

/* Article text (Blog text 1/2/3 widgets carry the class rec-article); rec-core blocks inside keep their own styles. */
.rec-article { max-width: 760px; }
.rec-article :is(p, ul, ol, h2, h3, blockquote, table, a):not(.rec *) { color: var(--rec-deep-water); }
.rec-article p:not(.rec *) { font-size: 18px; line-height: 1.7; margin: 0 0 22px; }
.rec-article h2:not(.rec *) { font-family: var(--rec-font-display); font-variation-settings: "opsz" 144; font-size: 30px; line-height: 1.15; font-weight: 500; letter-spacing: -.01em; margin: 40px 0 14px; scroll-margin-top: 24px; }
.rec-article > h2:first-child, .rec-article > .elementor-widget-container > h2:first-child { margin-top: 0; }
.rec-article h3:not(.rec *) { font: 600 20px/1.3 var(--rec-font-text); margin: 28px 0 10px; }
.rec-article :is(ul, ol):not(.rec *) { padding-left: 22px; margin: 0 0 22px; font-size: 17px; line-height: 1.65; }
.rec-article li:not(.rec *) { margin-bottom: 6px; }
.rec-article blockquote:not(.rec *) { margin: 28px 0; padding: 20px 24px; border: 0; border-left: 3px solid var(--rec-lagoon); background: #fff; border-radius: 0 10px 10px 0; font: italic 400 22px/1.4 var(--rec-font-display); }
.rec-article blockquote p:not(.rec *) { font: inherit; margin: 0; }
.rec-article table:not(.rec *) { width: 100%; border-collapse: collapse; margin: 0 0 22px; font-size: 16px; display: block; overflow-x: auto; }
.rec-article :is(th, td):not(.rec *) { padding: 10px 12px; border-bottom: 1px solid var(--rec-line); text-align: left; }
.rec-article a:not(.rec *) { color: var(--rec-lagoon); text-decoration: underline; text-underline-offset: 3px; }
.rec-article a:not(.rec *):hover { color: var(--rec-lagoon-deep); }
.rec-article a:not(.rec *):focus-visible { outline: 2px solid var(--rec-lagoon); outline-offset: 2px; }
.rec-article .rec-disclaimer { font-size: 14px; line-height: 1.6; color: var(--rec-ink-2); margin: 40px 0 0; padding-top: 20px; border-top: 1px solid var(--rec-line); }
.rec-article .rec.rec-teaser-block { margin: 8px 0 32px; }
@media (max-width: 900px) {
	.rec-article p:not(.rec *) { font-size: 17px; }
	.rec-article h2:not(.rec *) { font-size: 26px; }
}

/* Blog Template 1: search form in the article column (two columns of fields, no Map/Regions links) + area chips */
.rec.rec-blog-search { display: flex; flex-direction: column; gap: 20px; }
.rec-blog-search .rec-search__card { padding: 0; background: transparent; }
.rec-blog-search .rec-search__fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rec-blog-search .rec-search__loc, .rec-blog-search .rec-search__submit { grid-column: 1 / -1; }
.rec .rec-blog-search__areas { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 12px; }
.rec .rec-blog-search__areas ul { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.rec a.rec-blog-chip { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 16px; border-radius: 999px; background: var(--rec-sand); border: 1px solid var(--rec-line); font: 600 14px var(--rec-font-text); color: var(--rec-deep-water); text-decoration: none; }
.rec a.rec-blog-chip:hover { border-color: var(--rec-deep-water); color: var(--rec-deep-water); }
.rec a.rec-blog-chip .rec-icon { color: var(--rec-lagoon); }
.rec .rec-blog-search__all { margin: 0; }
.rec .rec-blog-search__all a { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font: 600 15px var(--rec-font-text); }

/* Blog Template 2: budget tabs (radios; :has() shows the chosen panel, without :has() every panel is shown) */
.rec.rec-blog-budget { display: flex; flex-direction: column; gap: 20px; }
.rec .rec-blog-budget__tabs { display: inline-flex; flex-wrap: wrap; align-self: flex-start; gap: 4px; max-width: 100%; min-width: 0; margin: 0; padding: 4px; background: var(--rec-sand); border: 1px solid var(--rec-line); border-radius: var(--rec-radius-card); }
.rec .rec-blog-budget__tab { position: relative; display: inline-flex; margin: 0; cursor: pointer; }
.rec .rec-blog-budget__tab input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; pointer-events: none; }
.rec .rec-blog-budget__tab > span { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 18px; border-radius: var(--rec-radius-control); font: 600 14px/1.2 var(--rec-font-text); color: var(--rec-deep-water); font-variant-numeric: tabular-nums; }
.rec .rec-blog-budget__tab:hover > span { background: var(--rec-dune); }
.rec .rec-blog-budget__tab input:checked + span { background: var(--rec-lagoon); color: #fff; }
.rec .rec-blog-budget__tab input:focus-visible + span { outline: 2px solid var(--rec-lagoon); outline-offset: 2px; }
.rec .rec-blog-budget__panel + .rec-blog-budget__panel { margin-top: 32px; }
.rec .rec-blog-budget__note { margin: 0 0 16px; font: 500 14px/1.5 var(--rec-font-text); color: var(--rec-ink-2); }
@supports selector(:has(*)) {
	.rec .rec-blog-budget__panel { display: none; }
	.rec .rec-blog-budget__panel + .rec-blog-budget__panel { margin-top: 0; }
	.rec.rec-blog-budget:has(input[value="under-300k"]:checked) .rec-blog-budget__panel[data-band="under-300k"],
	.rec.rec-blog-budget:has(input[value="300k-600k"]:checked) .rec-blog-budget__panel[data-band="300k-600k"],
	.rec.rec-blog-budget:has(input[value="600k-plus"]:checked) .rec-blog-budget__panel[data-band="600k-plus"] { display: block; }
}

/* Blog Template 3: related-area cards (area map, region, counts from the index) + newest homes */
.rec.rec-blog-areas { display: flex; flex-direction: column; gap: 40px; }
.rec .rec-blog-areas__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; list-style: none; margin: 0; padding: 0; }
.rec a.rec-blog-area { display: flex; align-items: center; height: 100%; text-decoration: none; color: var(--rec-deep-water); }
.rec a.rec-blog-area:hover { color: var(--rec-deep-water); }
.rec .rec-blog-area__map { flex: 0 0 112px; align-self: stretch; min-height: 112px; }
.rec .rec-blog-area__body { display: flex; flex-direction: column; gap: 6px; flex: 1 1 auto; min-width: 0; padding: 16px 8px 16px 16px; }
.rec .rec-blog-area__name { font: 500 22px/1.2 var(--rec-font-display); font-variation-settings: "opsz" 144; }
.rec .rec-blog-area__count { font: 500 13px/1.4 var(--rec-font-text); color: var(--rec-ink-2); }
.rec a.rec-blog-area > .rec-icon { margin-right: 16px; color: var(--rec-lagoon); }
.rec .rec-blog-areas__newest { display: flex; flex-direction: column; gap: 16px; }
.rec .rec-blog-areas__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 4px 16px; }
.rec .rec-blog-areas__h { margin: 0; font: 500 22px/1.2 var(--rec-font-display); font-variation-settings: "opsz" 144; color: var(--rec-deep-water); }
.rec .rec-blog-areas__all { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font: 600 15px var(--rec-font-text); }
@media (max-width: 900px) {
	.rec .rec-blog-budget__tabs { display: flex; align-self: stretch; flex-wrap: nowrap; }
	.rec .rec-blog-budget__tab { flex: 1 1 0; min-width: 0; }
	.rec .rec-blog-budget__tab > span { width: 100%; padding: 6px 8px; font-size: 13px; text-align: center; }
	.rec .rec-blog-areas__list { grid-template-columns: minmax(0, 1fr); }
	.rec .rec-blog-area__map { flex-basis: 88px; min-height: 88px; }
	.rec .rec-blog-area__name { font-size: 20px; }
}

/* Table of contents at the top of the article ([rec_blog_toc]): open block on wide screens, collapsed at <= 900 px */
.rec.rec-blog-tocs { margin: 0 0 40px; }
.rec .rec-blog-toc { background: #fff; border: 1px solid var(--rec-line); border-radius: var(--rec-radius-card); }
.rec .rec-blog-toc--narrow { display: none; }
.rec .rec-blog-toc__summary { display: flex; align-items: center; gap: 12px; min-height: 52px; padding: 0 20px; cursor: pointer; list-style: none; border-radius: var(--rec-radius-card); }
.rec .rec-blog-toc__summary::-webkit-details-marker { display: none; }
.rec .rec-blog-toc__summary:focus-visible { outline: 2px solid var(--rec-lagoon); outline-offset: 2px; }
.rec .rec-blog-toc__summary .rec-label { color: var(--rec-deep-water); }
.rec .rec-blog-toc__count { font: 500 13px var(--rec-font-text); color: var(--rec-ink-2); }
.rec .rec-blog-toc__summary .rec-icon { margin-left: auto; color: var(--rec-lagoon); transition: transform .15s ease; }
.rec .rec-blog-toc[open] .rec-blog-toc__summary .rec-icon { transform: rotate(180deg); }
.rec .rec-blog-toc__list { margin: 0; padding: 0 20px 16px 42px; font: 500 15px/1.4 var(--rec-font-text); color: var(--rec-ink-2); }
.rec .rec-blog-toc__list li::marker { color: var(--rec-label); font-variant-numeric: tabular-nums; }
.rec .rec-blog-toc__list li { padding: 6px 0; }
.rec .rec-blog-toc__list a { color: var(--rec-deep-water); text-decoration: none; }
.rec .rec-blog-toc__list a:hover { color: var(--rec-lagoon); text-decoration: underline; text-underline-offset: 3px; }
@media (min-width: 901px) {
	.rec .rec-blog-toc__list { column-count: 2; column-gap: 40px; }
	.rec .rec-blog-toc__list li { break-inside: avoid; }
}
@media (max-width: 900px) {
	.rec.rec-blog-tocs { margin-bottom: 28px; }
	.rec .rec-blog-toc--wide { display: none; }
	.rec .rec-blog-toc--narrow { display: block; }
	.rec .rec-blog-toc__list li { padding: 11px 0; }
}

/* Issue 1150 (realestatescaribbean.com): island chips above the location dropdown (rec_island_chips; only with several islands) */
.rec .rec-island { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; margin: 0 0 14px; }
.rec .rec-island__opts { display: inline-flex; flex-wrap: wrap; gap: 8px; }
.rec .rec-island__opt { position: relative; display: inline-flex; margin: 0; cursor: pointer; }
.rec .rec-island__opt input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; pointer-events: none; }
.rec .rec-island__opt > span { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border: 1px solid var(--rec-line); border-radius: 999px; background: #fff; font: 600 14px/1.2 var(--rec-font-text); color: var(--rec-deep-water); }
.rec .rec-island__opt:hover > span { border-color: var(--rec-deep-water); }
.rec .rec-island__opt input:checked + span { background: var(--rec-lagoon); border-color: var(--rec-lagoon); color: #fff; }
.rec .rec-island__opt input:focus-visible + span { outline: 2px solid var(--rec-lagoon); outline-offset: 2px; }
.rec .rec-areamap--blank { background: var(--rec-dune); }
.rec .rec-property-header__rec { font-size: 14px; }

/* Issue 1150: island headings in [rec_regions_map] with several islands */
.rec .rec-regions__island { margin: 40px 0 16px; font-family: var(--rec-font-display); font-variation-settings: "opsz" 144; font-size: 32px; line-height: 1.08; font-weight: 500; color: var(--rec-deep-water); }
.rec .rec-regions__island:first-of-type { margin-top: 0; }
@media (max-width: 900px) { .rec .rec-regions__island { font-size: 26px; margin-top: 32px; } }
.rec .rec-location-header__rec { font-size: 14px; margin-top: 8px; } /* issue 1150 */
