/* ─── DG Estate Frontend — v1.0.0-beta ─────────────────────────────────────── */

/* Fonts are self-hosted via assets/css/fonts.css (loaded in the layout head) —
   no external Google Fonts request, so no visitor-IP transfer (GDPR). */

:root {
  --f-bg:         #f4f8fb;
  --f-surface:    #ffffff;
  --f-primary:    #0069A7;
  --f-primary-h:  #4989BA;
  --f-accent:     #36A9E1;
  --f-accent-h:   #1a8fc7;
  --f-text:       #53575A;
  --f-muted:      #6b7280;
  --f-border:     #dce8f0;
  --f-earth:      #4989BA;
  --radius-sm:    4px;
  --radius:       8px;
  --radius-lg:    16px;
  --shadow-sm:    0 1px 4px rgba(0,0,0,.06);
  --shadow:       0 4px 20px rgba(0,0,0,.10);
  --shadow-lg:    0 12px 48px rgba(0,0,0,.14);
  --content-w:    1280px;                            /* one content width sitewide */
  --max-w:        calc(var(--content-w) + 48px);     /* + the 24px side padding of .container */
  --font-display: 'Playfair Display', Georgia, serif;
  --font-body:    'Inter', system-ui, sans-serif;
}

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

html { scroll-behavior: smooth; }

body {
  font-family: var(--font-body);
  background: var(--f-bg);
  color: var(--f-text);
  font-size: 15px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }

/* ── Layout ──────────────────────────────────────────────────────────────── */
.container { max-width: var(--max-w); margin: 0 auto; padding: 0 24px; }
.section { padding: 72px 0; }
.section-sm { padding: 40px 0; }

/* ── Typography ──────────────────────────────────────────────────────────── */
.display { font-family: var(--font-display); font-weight: 700; line-height: 1.15; }
.h1 { font-family: var(--font-display); font-size: clamp(2rem,4vw,3.2rem); font-weight: 700; line-height: 1.15; }
.h2 { font-family: var(--font-display); font-size: clamp(1.5rem,3vw,2.2rem); font-weight: 600; line-height: 1.25; }
.h3 { font-family: var(--font-display); font-size: 1.25rem; font-weight: 600; }
.eyebrow { font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--f-accent); }
.lead { font-size: 1.1rem; color: var(--f-muted); line-height: 1.75; }
.text-muted { color: var(--f-muted); }

/* ── Buttons ─────────────────────────────────────────────────────────────── */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  padding: 11px 24px; border-radius: var(--radius); font-weight: 600; font-size: 14px;
  cursor: pointer; border: none; text-decoration: none; transition: all .18s ease;
  font-family: var(--font-body); letter-spacing: .01em;
}
.btn-primary {
  background: var(--f-primary); color: #fff;
  box-shadow: 0 2px 8px rgba(26,58,46,.25);
}
.btn-primary:hover { background: var(--f-primary-h); transform: translateY(-1px); box-shadow: 0 4px 14px rgba(0,105,167,.3); }
.btn-accent {
  background: var(--f-accent); color: #fff;
  box-shadow: 0 2px 8px rgba(54,169,225,.3);
}
.btn-accent:hover { background: var(--f-accent-h); transform: translateY(-1px); }
.btn-outline {
  background: transparent; color: var(--f-primary);
  border: 1.5px solid var(--f-primary);
}
.btn-outline:hover { background: var(--f-primary); color: #fff; }
.btn-lg { padding: 14px 32px; font-size: 15px; }
.btn-full { width: 100%; }
.btn:disabled { opacity: .5; cursor: not-allowed; transform: none !important; }

/* ── Nav ─────────────────────────────────────────────────────────────────── */
/* ── Pre-header (top strip: contact left, language switcher right) ────────── */
.site-preheader {
  background: var(--f-primary);
  color: #fff;
  font-size: 12.5px;
}
.preheader-inner {
  max-width: var(--max-w); margin: 0 auto; padding: 0 24px;
  height: 36px; display: flex; align-items: center; justify-content: space-between; gap: 16px;
}
.preheader-contact { display: flex; align-items: center; gap: 18px; min-width: 0; }
.preheader-contact a {
  color: rgba(255,255,255,.9); text-decoration: none; display: inline-flex; align-items: center; gap: 6px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.preheader-contact a:hover { color: #fff; }
.preheader-contact svg { flex: 0 0 auto; opacity: .8; }
.lang-switch { display: flex; align-items: center; gap: 2px; }
.lang-switch a {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 11.5px; font-weight: 600; line-height: 1; letter-spacing: .03em;
  padding: 5px 8px; border-radius: 4px; text-decoration: none;
  color: rgba(255,255,255,.75); transition: background .15s, color .15s;
}
.lang-switch a:hover { color: #fff; background: rgba(255,255,255,.14); }
.lang-switch a.active { color: #fff; font-weight: 700; background: rgba(255,255,255,.22); }
@media (max-width: 860px) {
  .site-preheader { display: none; }   /* langs live in the mobile menu on small screens */
}

.site-nav {
  position: sticky; top: 0; z-index: 100;
  background: var(--f-nav-bg, rgba(247,243,238,.95));
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--f-border);
}
.nav-inner {
  max-width: var(--max-w); margin: 0 auto; padding: 0 24px;
  display: flex; align-items: center; justify-content: space-between; height: 68px;
}
.nav-brand { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.nav-brand img { height: 36px; width: auto; }
.nav-brand-name { font-family: var(--font-display); font-size: 1.2rem; font-weight: 700; color: var(--f-primary); }
.nav-links { display: flex; gap: 32px; align-items: center; list-style: none; }
.nav-links a { font-size: 14px; font-weight: 500; color: var(--f-muted); text-decoration: none; transition: color .15s; }
.nav-links a:hover, .nav-links a.active { color: var(--f-primary); }
.nav-actions { display: flex; gap: 10px; align-items: center; }
.nav-toggle { display: none; background: none; border: none; cursor: pointer; padding: 4px; }

/* ── Hero ────────────────────────────────────────────────────────────────── */
.hero {
  position: relative; background: var(--f-primary);
  min-height: 520px; display: flex; align-items: flex-end; overflow: hidden;
}
.hero-img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; opacity: .55;
}
.hero-grad {
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, rgba(26,58,46,.1) 0%, rgba(26,58,46,.65) 100%);
}
.hero-content { position: relative; z-index: 1; padding: 64px 0 80px; }
.hero-content .container { }
.hero h1 { color: #fff; margin-bottom: 14px; }
.hero p { color: rgba(255,255,255,.82); font-size: 1.1rem; max-width: 540px; }

/* ── Search / Filter bar ─────────────────────────────────────────────────── */
.search-bar {
  background: var(--f-surface); border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg); padding: 18px 24px;
  display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap;
  margin-top: -40px; position: relative; z-index: 2;
}
.search-field { display: flex; flex-direction: column; gap: 5px; flex: 1; min-width: 130px; }
.search-field label { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: var(--f-muted); }
.search-field select,
.search-field input {
  border: 1.5px solid var(--f-border); border-radius: var(--radius-sm);
  padding: 9px 12px; font-size: 14px; font-family: var(--font-body);
  background: var(--f-bg); color: var(--f-text); outline: none; transition: border .15s;
}
.search-field select:focus,
.search-field input:focus { border-color: var(--f-primary); }
.search-divider { width: 1px; background: var(--f-border); align-self: stretch; margin: 4px 0; }

/* ── Property Card ───────────────────────────────────────────────────────── */
.properties-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 28px;
}
.prop-card {
  background: var(--f-surface); border-radius: var(--radius-lg);
  overflow: hidden; box-shadow: var(--shadow-sm); transition: box-shadow .2s, transform .2s;
  text-decoration: none; color: var(--f-text); display: flex; flex-direction: column;
}
.prop-card:hover { box-shadow: var(--shadow-lg); transform: translateY(-4px); }
.prop-thumb {
  position: relative; height: 220px; overflow: hidden; background: var(--f-border);
}
.prop-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.prop-card:hover .prop-thumb img { transform: scale(1.04); }
.prop-thumb-placeholder { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; font-size: 48px; background: #e8e3dc; }
.prop-badge {
  position: absolute; top: 14px; left: 14px;
  background: var(--f-primary); color: #fff;
  font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
  padding: 4px 10px; border-radius: 20px;
}
.prop-price-tag {
  position: absolute; bottom: 14px; right: 14px;
  background: rgba(255,255,255,.95); border-radius: var(--radius-sm);
  padding: 5px 10px; font-size: 13px; font-weight: 700; color: var(--f-primary);
}
.prop-body { padding: 20px 22px; flex: 1; display: flex; flex-direction: column; gap: 10px; }
.prop-name { font-family: var(--font-display); font-size: 1.1rem; font-weight: 600; line-height: 1.3; }
.prop-location { font-size: 13px; color: var(--f-muted); display: flex; align-items: center; gap: 5px; }
.prop-meta { display: flex; gap: 14px; flex-wrap: wrap; margin-top: auto; padding-top: 12px; border-top: 1px solid var(--f-border); }
.prop-meta-item { font-size: 12.5px; color: var(--f-muted); display: flex; align-items: center; gap: 5px; font-weight: 500; }

/* ── Property Detail ─────────────────────────────────────────────────────── */
.detail-hero { position: relative; height: 480px; overflow: hidden; }
.detail-hero img { width: 100%; height: 100%; object-fit: cover; }
.detail-hero-overlay { position: absolute; inset: 0; background: linear-gradient(to bottom, transparent 40%, rgba(26,58,46,.5)); }
.gallery-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3px; height: 480px; }
.gallery-grid .gallery-main { grid-row: 1/3; }
.gallery-grid img { width: 100%; height: 100%; object-fit: cover; cursor: pointer; transition: opacity .15s; }
.gallery-grid img:hover { opacity: .9; }
.gallery-more { position: relative; }
.gallery-more::after {
  content: attr(data-more); position: absolute; inset: 0;
  background: rgba(26,58,46,.65); color: #fff; display: flex;
  align-items: center; justify-content: center; font-size: 1.3rem; font-weight: 700;
  cursor: pointer;
}

/* Floating booking card */
.detail-layout { display: grid; grid-template-columns: 1fr 380px; gap: 48px; align-items: start; }
.booking-card {
  overflow: visible !important;
  position: sticky; top: 88px;
  background: var(--f-surface); border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg); overflow: hidden;
}
.booking-card-head {
  background: var(--f-primary); padding: 20px 24px; color: #fff;
}
.booking-card-head .price { font-family: var(--font-display); font-size: 1.8rem; font-weight: 700; }
.booking-card-head .price-unit { font-size: 13px; opacity: .75; }
.booking-card-body { padding: 20px 24px; display: flex; flex-direction: column; gap: 14px; }
.booking-field { display: flex; flex-direction: column; gap: 5px; }
.booking-field label { font-size: 11.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: var(--f-muted); }
.booking-field input,
.booking-field select {
  border: 1.5px solid var(--f-border); border-radius: var(--radius-sm);
  padding: 10px 13px; font-size: 14px; font-family: var(--font-body);
  background: var(--f-bg); outline: none; transition: border .15s; width: 100%;
}
.booking-field input:focus,
.booking-field select:focus { border-color: var(--f-primary); background: #fff; }
.booking-dates { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.booking-summary {
  background: var(--f-bg); border-radius: var(--radius-sm);
  padding: 14px; font-size: 13.5px;
}
.booking-summary-row { display: flex; justify-content: space-between; margin-bottom: 6px; }
.booking-summary-row:last-child { margin-bottom: 0; border-top: 1px solid var(--f-border); padding-top: 8px; font-weight: 700; }
.booking-avail { padding: 10px 13px; border-radius: var(--radius-sm); font-size: 13px; font-weight: 600; text-align: center; }
.booking-avail.ok   { background: #d4edda; color: #155724; }
.booking-avail.warn { background: #fff3cd; color: #856404; }
.booking-avail.err  { background: #f8d7da; color: #721c24; }
.booking-gdpr { display: flex; gap: 10px; align-items: flex-start; font-size: 12.5px; color: var(--f-muted); line-height: 1.5; }
.booking-gdpr input { margin-top: 2px; flex-shrink: 0; }

/* Amenity & rule chips */
.amenity-grid { display: flex; flex-wrap: wrap; gap: 8px; }
.amenity-chip {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 12px; border-radius: 20px;
  background: var(--f-bg); border: 1px solid var(--f-border);
  font-size: 13px; font-weight: 500;
}
.rules-list { list-style: none; display: flex; flex-direction: column; gap: 8px; }
.rules-list li { display: flex; align-items: center; gap: 10px; font-size: 14px; }
.rules-list li::before { content: '—'; color: var(--f-accent); font-weight: 700; }

/* Specs table */
.specs-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 1px; background: var(--f-border); border: 1px solid var(--f-border); border-radius: var(--radius); overflow: hidden; }
.spec-item { background: var(--f-surface); padding: 16px 18px; }
.spec-label { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--f-muted); font-weight: 600; margin-bottom: 4px; }
.spec-value { font-size: 1.05rem; font-weight: 700; color: var(--f-primary); font-family: var(--font-display); }

/* ── Auth Modal ──────────────────────────────────────────────────────────── */
.modal-overlay {
  position: fixed; inset: 0; background: rgba(0,0,0,.5);
  z-index: 500; display: flex; align-items: center; justify-content: center;
  padding: 20px; opacity: 0; pointer-events: none; transition: opacity .2s;
}
.modal-overlay.open { opacity: 1; pointer-events: all; }
.modal-box {
  background: var(--f-surface); border-radius: var(--radius-lg);
  width: 100%; max-width: 420px; box-shadow: var(--shadow-lg);
  overflow: hidden; transform: translateY(12px); transition: transform .2s;
}
.modal-overlay.open .modal-box { transform: translateY(0); }
.modal-head { background: var(--f-primary); padding: 24px 28px; color: #fff; }
.modal-head h2 { font-family: var(--font-display); font-size: 1.3rem; }
.modal-head p { font-size: 13px; opacity: .75; margin-top: 4px; }
.modal-body { padding: 24px 28px; display: flex; flex-direction: column; gap: 16px; }
.modal-field { display: flex; flex-direction: column; gap: 5px; }
.modal-field label { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--f-muted); }
.modal-field input {
  border: 1.5px solid var(--f-border); border-radius: var(--radius-sm);
  padding: 10px 13px; font-size: 14px; width: 100%; outline: none; transition: border .15s;
  font-family: var(--font-body);
}
.modal-field input:focus { border-color: var(--f-primary); }
.modal-footer { padding: 0 28px 24px; display: flex; flex-direction: column; gap: 10px; }
.modal-switch { font-size: 13px; color: var(--f-muted); text-align: center; }
.modal-switch a { color: var(--f-primary); font-weight: 600; cursor: pointer; }
.user-chip { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; color: var(--f-primary); }
.user-avatar {
  width: 32px; height: 32px; border-radius: 50%; background: var(--f-primary);
  color: #fff; display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 700; flex-shrink: 0; overflow: hidden;
}
.user-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* Signed-in visitor: avatar menu (1.0.0-beta.30). */
.user-menu { position: relative; }
.user-menu summary { list-style: none; cursor: pointer; padding: 4px 8px 4px 4px; border-radius: 999px; user-select: none; white-space: nowrap; }
.user-menu summary::-webkit-details-marker { display: none; }
.user-menu summary::after { content: ""; width: 6px; height: 6px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-2px); opacity: .7; }
.user-menu summary:hover, .user-menu[open] summary { background: rgba(127,127,127,.14); }
.user-menu ul { position: absolute; right: 0; top: calc(100% + 8px); min-width: 210px; margin: 0; padding: 6px; list-style: none; background: var(--f-surface, #fff); border: 1px solid var(--f-border); border-radius: 10px; box-shadow: 0 12px 30px rgba(0,0,0,.16); z-index: 300; }
.user-menu li a, .user-menu li button { display: flex; align-items: center; gap: 10px; width: 100%; padding: 9px 10px; border: 0; background: none; border-radius: 7px; color: var(--f-text); text-decoration: none; font: inherit; font-size: 14px; cursor: pointer; text-align: left; }
.user-menu li a:hover, .user-menu li button:hover { background: var(--f-bg); }
.user-menu li svg { width: 16px; height: 16px; flex-shrink: 0; }
.user-menu li + li:last-child { border-top: 1px solid var(--f-border); margin-top: 4px; padding-top: 4px; }
@media (max-width: 1280px) { .user-chip-name { display: none; } }

/* ── My account ──────────────────────────────────────────────────────────── */
.acct-wrap { margin-top: 24px; max-width: 640px; display: flex; flex-direction: column; gap: 20px; padding-bottom: 40px; }
.acct-card { background: var(--f-surface, #fff); border: 1px solid var(--f-border, #e5e7eb); border-radius: 12px; padding: 24px; display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }
.acct-card h2 { font-size: 18px; margin: 0; }
.acct-field { display: flex; flex-direction: column; gap: 5px; width: 100%; }
.acct-field input { width: 100%; }
.acct-field input:disabled { opacity: .7; }
.acct-label { font-size: 13px; font-weight: 600; }
.acct-hint { font-size: 12px; color: var(--f-muted); }
.acct-check { display: flex; align-items: center; gap: 6px; font-size: 13px; margin-top: 6px; }
.acct-photo { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; }
.acct-photo > div:last-child { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.acct-avatar { width: 84px; height: 84px; font-size: 26px; }
.acct-links { font-size: 14px; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.acct-links a { display: inline-flex; gap: 6px; align-items: center; color: var(--f-primary); }
.acct-links svg { width: 16px; height: 16px; }

/* ── Contact page ────────────────────────────────────────────────────────── */
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: start; }
.contact-info { display: flex; flex-direction: column; gap: 28px; }
.contact-item { display: flex; gap: 14px; }
.contact-icon { width: 44px; height: 44px; border-radius: var(--radius); background: var(--f-primary); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 18px; flex-shrink: 0; }
.contact-item-text h4 { font-weight: 600; margin-bottom: 3px; }
.contact-item-text p, .contact-item-text a { color: var(--f-muted); text-decoration: none; font-size: 14px; }
.contact-item-text a:hover { color: var(--f-primary); }
.contact-form { background: var(--f-surface); border-radius: var(--radius-lg); padding: 32px; box-shadow: var(--shadow-sm); display: flex; flex-direction: column; gap: 16px; }
.contact-form input,
.contact-form textarea {
  border: 1.5px solid var(--f-border); border-radius: var(--radius-sm);
  padding: 10px 13px; font-size: 14px; width: 100%; outline: none;
  transition: border .15s; font-family: var(--font-body); resize: vertical;
}
.contact-form input:focus,
.contact-form textarea:focus { border-color: var(--f-primary); }
.contact-form label { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--f-muted); display: block; margin-bottom: 5px; }
.map-embed { border-radius: var(--radius-lg); overflow: hidden; height: 280px; background: var(--f-border); margin-top: 24px; }
.map-embed iframe { width: 100%; height: 100%; border: none; }

/* ── Property-detail sidebar forms (enquiry + mortgage calculator) ────────── */
/* The inputs previously fell back to bare browser defaults; give them the same
   rounded, padded, focus-ringed treatment as the rest of the site. */
.detail-card .field-group { margin-bottom: 12px; }
.detail-card .field-group label {
  display: block; font-size: 12px; font-weight: 600; color: var(--f-muted, #6b7280);
  margin-bottom: 5px;
}
.detail-card input:not([type=checkbox]):not([type=radio]):not([type=file]),
.detail-card textarea,
.detail-card select {
  width: 100%; box-sizing: border-box;
  padding: 11px 13px;
  border: 1.5px solid var(--f-border, #dce8f0);
  border-radius: var(--radius-sm, 8px);
  font-size: 14px; font-family: var(--font-body, inherit);
  color: var(--f-text, #1c1c1c); background: var(--f-bg, #f7fafc);
  outline: none; transition: border-color .15s, box-shadow .15s, background .15s;
}
.detail-card textarea { resize: vertical; min-height: 96px; line-height: 1.5; }
.detail-card input:focus,
.detail-card textarea:focus,
.detail-card select:focus {
  border-color: var(--f-primary, #0069A7); background: #fff;
  box-shadow: 0 0 0 3px rgba(0, 105, 167, .12);
}
.detail-card input::placeholder,
.detail-card textarea::placeholder { color: var(--f-muted, #9aa4b2); opacity: 1; }
.detail-card form .btn { margin-top: 4px; }

/* ── Frontend form-control BASELINE ───────────────────────────────────────
   BARE element selectors (specificity 0,0,1) so EVERY control on the public
   site gets a sane rounded/padded look and never falls back to the raw browser
   default (e.g. the listings "Sort by" dropdown, or any future form). Kept at
   the lowest specificity ON PURPOSE — every component style (.search-field,
   .booking-field, .detail-card, .contact-form, .modal-field — all single-class,
   0,1,1) overrides it. NB: :not([type=…]) chains would raise specificity above
   the components, so we use plain selectors + an explicit checkbox/radio reset. */
input, textarea, select {
  font-family: var(--font-body, inherit); font-size: 14px;
  padding: 9px 12px;
  border: 1.5px solid var(--f-border, #dce8f0);
  border-radius: var(--radius-sm, 8px);
  background: var(--f-bg, #f7fafc); color: var(--f-text, #1c1c1c);
  outline: none; transition: border-color .15s, box-shadow .15s;
}
input:focus, textarea:focus, select:focus {
  border-color: var(--f-primary, #0069A7); box-shadow: 0 0 0 3px rgba(0,105,167,.10);
}
textarea { resize: vertical; line-height: 1.5; }
input.flatpickr-input { cursor: pointer; }
/* Keep checkboxes/radios native — the box baseline above must not apply to them. */
input[type=checkbox], input[type=radio] {
  padding: 0; border: 0; background: none; border-radius: 0;
  width: auto; box-shadow: none; -webkit-appearance: auto; appearance: auto;
}

/* ── Conditions page ─────────────────────────────────────────────────────── */
.conditions-content { max-width: 740px; margin: 0 auto; }
.conditions-content p { margin-bottom: 14px; line-height: 1.8; }
.conditions-content h2 { margin: 32px 0 12px; }
.conditions-content h3 { margin: 24px 0 8px; }
.conditions-content ul, .conditions-content ol { padding-left: 22px; margin-bottom: 14px; }
.conditions-content li { margin-bottom: 6px; line-height: 1.7; }

/* ── Footer ──────────────────────────────────────────────────────────────── */
.site-footer { background: var(--f-primary); color: rgba(255,255,255,.8); padding: 56px 0 32px; }
.footer-grid { display: grid; grid-template-columns: var(--fgrid, 2fr 1fr 1fr); gap: 48px; margin-bottom: 40px; }
.footer-brand img { height: 36px; margin-bottom: 14px; filter: brightness(10); }
.footer-brand-name { font-family: var(--font-display); color: #fff; font-size: 1.1rem; font-weight: 700; margin-bottom: 10px; }
.footer-desc { font-size: 13.5px; line-height: 1.7; max-width: 280px; }
.footer-col h4 { color: #fff; font-weight: 600; font-size: 13px; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 14px; }
.footer-links { list-style: none; display: flex; flex-direction: column; gap: 8px; }
.footer-links a { font-size: 13.5px; text-decoration: none; color: rgba(255,255,255,.7); transition: color .15s; }
.footer-links a:hover { color: #fff; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.12); padding-top: 24px; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px; font-size: 12.5px; color: rgba(255,255,255,.5); }
.footer-bottom a { color: rgba(255,255,255,.6); }

/* ── Flash messages ──────────────────────────────────────────────────────── */
.f-flash { padding: 12px 18px; border-radius: var(--radius-sm); font-size: 14px; font-weight: 500; margin-bottom: 16px; }
.f-flash-success { background: #d4edda; color: #155724; border-left: 4px solid #28a745; }
.f-flash-error   { background: #f8d7da; color: #721c24; border-left: 4px solid #dc3545; }

/* ── Breadcrumb ──────────────────────────────────────────────────────────── */
.breadcrumb { display: flex; gap: 8px; align-items: center; font-size: 13px; color: var(--f-muted); flex-wrap: wrap; }
.breadcrumb a { color: var(--f-muted); text-decoration: none; }
.breadcrumb a:hover { color: var(--f-primary); }
.breadcrumb-sep { opacity: .4; }

/* ── Lightbox ────────────────────────────────────────────────────────────── */
.lightbox {
  position: fixed; inset: 0; background: rgba(0,0,0,.92);
  z-index: 600; display: flex; align-items: center; justify-content: center;
  opacity: 0; pointer-events: none; transition: opacity .2s;
}
.lightbox.open { opacity: 1; pointer-events: all; }
.lightbox-img { max-width: 90vw; max-height: 85vh; border-radius: var(--radius); box-shadow: var(--shadow-lg); }
.lightbox-close { position: absolute; top: 20px; right: 24px; background: none; border: none; color: #fff; font-size: 28px; cursor: pointer; opacity: .7; }
.lightbox-close:hover { opacity: 1; }
.lightbox-nav { position: absolute; top: 50%; transform: translateY(-50%); background: rgba(255,255,255,.15); border: none; color: #fff; font-size: 24px; padding: 12px 18px; cursor: pointer; border-radius: var(--radius-sm); transition: background .15s; }
.lightbox-nav:hover { background: rgba(255,255,255,.25); }
.lightbox-prev { left: 16px; }
.lightbox-next { right: 16px; }

/* ── Loading spinner ─────────────────────────────────────────────────────── */
.spinner { width: 22px; height: 22px; border: 2.5px solid rgba(255,255,255,.3); border-top-color: #fff; border-radius: 50%; animation: spin .7s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

/* ── Responsive ──────────────────────────────────────────────────────────── */
@media (max-width: 900px) {
  .detail-layout { grid-template-columns: 1fr; }
  .booking-card { position: static; }
  .contact-grid { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .gallery-grid { height: 300px; }
}
/* Mobile-only nav items hidden on desktop */
.nav-mobile-only { display: none !important; }

@media (max-width: 768px) {
  /* Show hamburger, hide desktop nav links */
  .nav-links { display: none; }
  .nav-toggle { display: flex !important; }

  /* Hide desktop auth buttons and lang switcher from nav-actions bar */
  .nav-auth-desktop { display: none !important; }
  /* Hide the desktop lang switcher (the div before nav-toggle) */
  .nav-actions > div:not(:last-child) { display: none !important; }

  /* Show mobile-only items when nav is open */
  .nav-links.open .nav-mobile-only { display: flex !important; }
}

@media (max-width: 640px) {
  .properties-grid { grid-template-columns: 1fr; }
  .nav-links { display: none; }
  .nav-toggle { display: block; }
  .footer-grid { grid-template-columns: 1fr; gap: 28px; }
  .hero { min-height: 380px; }
  .booking-dates { grid-template-columns: 1fr; }
  .specs-grid { grid-template-columns: 1fr 1fr; }

  /* Search bar: stack vertically with full-width fields */
  .search-bar {
    flex-direction: column;
    padding: 16px;
    gap: 12px;
    margin-top: -24px;
  }
  .search-field {
    width: 100%;
    flex: none;
    min-width: unset;
  }
  .search-field select,
  .search-field input {
    width: 100%;
    font-size: 15px;
    padding: 11px 14px;
  }
  .search-divider { display: none; }
  .search-bar .btn {
    width: 100%;
    padding: 12px;
    font-size: 15px;
    margin-top: 4px;
  }
}

/* ── Availability Calendar ───────────────────────────────────────────────── */
/* Flatpickr booked-date colour overrides */
.flatpickr-day.flatpickr-disabled[style*="ffe8cc"],
.flatpickr-day[style*="ffe8cc"]:hover { opacity: .85 !important; cursor: not-allowed !important; }
.flatpickr-day[style*="d4edda"]:hover { filter: brightness(.95); }
.avail-cal {
  background: var(--f-surface);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow);
  overflow: hidden;
  margin-top: 20px;
}
.avail-cal-head {
  background: var(--f-primary);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 18px;
}
.avail-cal-head h3 { font-family: var(--font-display); font-size: 1rem; font-weight: 600; margin: 0; }
.avail-cal-nav {
  background: rgba(255,255,255,.15);
  border: none; color: #fff; cursor: pointer;
  width: 30px; height: 30px; border-radius: 50%;
  font-size: 16px; display: flex; align-items: center; justify-content: center;
  transition: background .15s;
}
.avail-cal-nav:hover { background: rgba(255,255,255,.28); }
.avail-cal-grid {
  padding: 14px 16px 18px;
}
.avail-cal-dow {
  display: grid; grid-template-columns: repeat(7,1fr);
  margin-bottom: 6px;
}
.avail-cal-dow span {
  text-align: center; font-size: 11px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .05em;
  color: var(--f-muted); padding: 4px 0;
}
.avail-cal-days {
  display: grid; grid-template-columns: repeat(7,1fr); gap: 3px;
}
.avail-cal-day {
  aspect-ratio: 1; display: flex; align-items: center; justify-content: center;
  border-radius: 6px; font-size: 13px; font-weight: 500;
  position: relative;
}
.avail-cal-day.empty       { background: transparent; }
.avail-cal-day.available   { background: #d4edda; color: #155724; }
.avail-cal-day.booked      { background: #ffe8cc; color: #7c4a00; }
.avail-cal-day.blocked     { background: #ffe8cc; color: #7c4a00; opacity: .7; }
.avail-cal-day.past        { background: #f3f4f6; color: #bbb; }
.avail-cal-day.today       { outline: 2px solid var(--f-primary); }
.avail-cal-legend {
  display: flex; gap: 14px; padding: 0 16px 14px; flex-wrap: wrap;
}
.avail-cal-legend-item {
  display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--f-muted);
}
.avail-cal-legend-dot {
  width: 12px; height: 12px; border-radius: 3px; flex-shrink: 0;
}
.avail-cal-loading {
  text-align: center; padding: 32px; color: var(--f-muted); font-size: 14px;
}

/* ── Flatpickr calendar display fix ─────────────────────────────────────── */
.booking-card .flatpickr-calendar {
  z-index: 9999 !important;
}
.flatpickr-calendar {
  overflow: visible !important;
}
.flatpickr-months .flatpickr-month {
  overflow: visible !important;
}
/* ── Datepicker header — flexbox: [‹] [month ▾][year ▾] [›], equal columns ──
   Mirrors the admin picker. The year spinner is hidden by JS (dgeYearDropdown)
   only once it swaps in select.dge-year, so the year never vanishes if JS is
   slow. The number-spinner arrows are hidden here. */
.flatpickr-current-month .numInputWrapper span{display:none!important}
.flatpickr-months{display:flex!important;align-items:center!important;height:40px!important;padding:0 4px!important;overflow:hidden}
.flatpickr-months .flatpickr-prev-month,
.flatpickr-months .flatpickr-next-month{position:static!important;flex:0 0 auto!important;height:auto!important;line-height:1!important;padding:0 6px!important}
.flatpickr-current-month{position:static!important;left:auto!important;width:auto!important;flex:1 1 auto!important;display:flex!important;align-items:center!important;gap:8px!important;padding:0!important;font-size:inherit!important;overflow:visible!important}
.flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-current-month .numInputWrapper,
.flatpickr-current-month select.dge-year{
  flex:1 1 0!important;min-width:62px!important;width:auto!important;height:30px!important;
  margin:0!important;padding:2px 6px!important;box-sizing:border-box!important;
  text-align:center!important;text-align-last:center!important;
  color:#2b2b2b!important;font-size:14px!important;font-weight:600!important;cursor:pointer!important;
  background:#fff!important;border:1px solid var(--f-border,#dce8f0)!important;border-radius:6px!important}
.flatpickr-current-month input.cur-year{width:100%!important;text-align:center!important;border:none!important;padding:0!important;color:#2b2b2b!important;font-weight:600!important}
.flatpickr-calendar{max-width:calc(100vw - 24px)}

/* ── GDPR: cookie consent banner + click-to-load maps + form consent ──────── */
.dge-cookie{position:fixed;left:0;right:0;bottom:0;z-index:9999;background:#fff;border-top:1px solid var(--f-border,#e5e7eb);box-shadow:0 -4px 20px rgba(0,0,0,.10)}
.dge-cookie-inner{max-width:var(--max-w);margin:0 auto;padding:14px 18px;display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.dge-cookie-text{font-size:13px;line-height:1.5;color:var(--f-text,#1c1c1c);margin:0;flex:1;min-width:240px}
.dge-cookie-btns{display:flex;gap:8px;flex-shrink:0}
.dge-map{position:relative;display:block}
.dge-map-ph{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;height:100%;min-height:220px;padding:24px;text-align:center;background:var(--f-bg,#f4f8fb);border:1px dashed var(--f-border,#dce8f0);border-radius:var(--radius-lg,12px)}
.dge-map-note{font-size:12.5px;color:var(--f-muted,#6b7280);margin:0;max-width:360px;line-height:1.5}
.dge-map.loaded .dge-map-ph{display:none}
.dge-consent{display:flex;gap:8px;align-items:flex-start;font-size:12px;color:var(--f-muted,#6b7280);margin:2px 0 10px;line-height:1.45}
.dge-consent input{margin-top:2px;flex-shrink:0}
.dge-consent a{color:var(--f-primary,#0069A7)}

/* ══ v0.24 — icons, cards, ribbons, blocks, listing pages ═══════════════════ */
.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}
.ic{width:1.1em;height:1.1em;display:inline-block;vertical-align:-.18em;flex-shrink:0}

/* Operation badge + status ribbons (were duplicated in the list and detail views) */
.op-badge{display:inline-block;padding:2px 10px;border-radius:12px;font-size:11px;font-weight:700;line-height:1.6;letter-spacing:.02em}
.op-badge.op-sale{background:#1a56db;color:#fff}.op-badge.op-long_term{background:#177245;color:#fff}.op-badge.op-short_term{background:#b45309;color:#fff}

/* Card */
.prop-card{border:1px solid var(--f-border)}
.prop-card:focus-visible{outline:3px solid var(--f-accent);outline-offset:2px}
.prop-thumb{height:auto;aspect-ratio:3/2}
.prop-thumb-placeholder{font-size:56px;color:var(--f-muted)}
.prop-badge{top:auto;bottom:14px;left:14px}
.prop-ribbons{position:absolute;top:12px;left:12px;display:flex;flex-direction:column;align-items:flex-start;gap:6px;z-index:1}
.prop-ribbon{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#fff;background:var(--f-primary);box-shadow:0 1px 4px rgba(0,0,0,.15)}
.rb-reserved{background:#b45309}.rb-sold,.rb-rented{background:#b91c1c}
.rb-label{background:var(--f-accent)}.rb-price_reduced{background:#0f766e}
.prop-imgcount{position:absolute;bottom:14px;right:14px;display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:600;color:#fff;background:rgba(0,0,0,.55)}
.prop-body{gap:8px}
.prop-price{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px;color:var(--f-primary)}
.prop-price-prefix{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--f-muted)}
.prop-price-now{font-size:1.2rem;font-weight:800}
.prop-price-now small{font-size:.75em;font-weight:600;color:var(--f-muted);margin-left:2px}
.prop-price-was{font-size:13px;color:var(--f-muted)}
.prop-location .ic,.prop-meta-item .ic{color:var(--f-accent)}
.prop-foot{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:11.5px;color:var(--f-muted)}
.prop-ref{font-size:11.5px;color:var(--f-muted)}
.properties-list{display:flex;flex-direction:column;gap:16px}
.prop-card-list{display:grid;grid-template-columns:320px 1fr;align-items:stretch}
.prop-card-list .prop-thumb{aspect-ratio:auto;height:100%;min-height:210px}
.prop-card-compact .prop-body{padding:12px 14px}.prop-card-compact .prop-name{font-size:.98rem}
@media (max-width:640px){.prop-card-list{grid-template-columns:1fr}.prop-card-list .prop-thumb{aspect-ratio:3/2;height:auto;min-height:0}}

/* Blocks */
.blk{padding:64px 0}
.blk-head{margin-bottom:36px}
.blk-head.center{text-align:center}
.blk-head .h2{margin:6px 0 0}
.blk-sub{color:var(--f-muted);margin-top:10px;max-width:640px}
.blk-head.center .blk-sub{margin-left:auto;margin-right:auto}
.blk-actions{text-align:center;margin-top:40px}
.properties-grid.cols-2{grid-template-columns:repeat(auto-fill,minmax(min(100%,420px),1fr))}
.properties-grid.cols-3{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}
.properties-grid.cols-4{grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr))}
@media (min-width:1100px){.properties-grid.cols-3{grid-template-columns:repeat(3,1fr)}.properties-grid.cols-4{grid-template-columns:repeat(4,1fr)}}
.blk-search{position:relative;z-index:2}
.blk-search.layout-horizontal .search-bar{margin-top:0}
.blk-search.layout-horizontal{padding:32px 0}
.search-bar .btn .ic{margin-right:4px}
.blk-richtext .rich-text{line-height:1.8}
.blk-richtext.w-narrow .rich-text{max-width:820px}
.blk-richtext.w-narrow .blk-head{max-width:820px}

/* Listing results page */
.page-band{background:var(--f-primary);padding:40px 0 44px}
.page-band .h1{color:#fff;margin-bottom:12px}
.page-band-meta{color:rgba(255,255,255,.75)}
.sec-tab{display:inline-block;padding:7px 16px;border-radius:20px;font-size:13px;font-weight:600;color:#fff;background:rgba(255,255,255,.14);text-decoration:none}
.sec-tab.active{background:#fff;color:var(--f-primary,#0069A7)}
.listing-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;flex-wrap:wrap}
.listing-count{font-size:14px;color:var(--f-muted)}
.pager{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;margin:36px 0 0}
.pager a,.pager span{min-width:38px;height:38px;padding:0 10px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);border:1px solid var(--f-border);background:var(--f-surface);color:var(--f-text);text-decoration:none;font-size:14px;font-weight:600}
.pager a:hover{border-color:var(--f-primary);color:var(--f-primary)}
.pager .current{background:var(--f-primary);border-color:var(--f-primary);color:#fff}
.pager .gap{border:none;background:none}
.empty-state{text-align:center;padding:80px 20px;color:var(--f-muted)}
.empty-state .ic{width:48px;height:48px;margin-bottom:16px}

/* Detail page (moved out of inline styles) */
.detail-band{background:var(--f-primary);padding:32px 0}
.detail-band-inner{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.detail-band .h1{color:#fff;margin:6px 0 4px}
.detail-band-loc{color:rgba(255,255,255,.78);display:flex;align-items:center;gap:6px}
.detail-band-price{text-align:right;color:#fff}
.detail-band-price .prop-price{justify-content:flex-end;color:#fff}
.detail-band-price .prop-price-now{font-size:28px}
.detail-band-price .prop-price-prefix,.detail-band-price .prop-price-was,.detail-band-price small{color:rgba(255,255,255,.75)}
.detail-band-ref{color:rgba(255,255,255,.6);font-size:13px}
.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:28px;align-items:start}
.detail-card{background:var(--f-surface);border:1px solid var(--f-border);border-radius:12px;padding:22px;margin-bottom:22px}
.detail-card .h3{margin-bottom:14px}
.facts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px}
.fact-label{font-size:12px;color:var(--f-muted)}
.fact-value{font-weight:700}
.features-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.feature{display:flex;align-items:center;gap:8px}
.feature .ic{color:var(--f-accent)}
.agent-line{margin-top:14px;font-size:13px;color:var(--f-muted);display:flex;align-items:center;gap:6px}
.side-price .prop-price-now{font-size:24px}
@media (max-width:900px){.detail-grid{grid-template-columns:minmax(0,1fr)}.detail-band-price{text-align:left}.detail-band-price .prop-price{justify-content:flex-start}}

/* ══ v0.25 — slider, featured hero, filterable grid ══════════════════════════ */
.dge-slider{position:relative;--pv:1}
.dge-slider[data-per-view="2"]{--pv:2}.dge-slider[data-per-view="3"]{--pv:3}.dge-slider[data-per-view="4"]{--pv:4}
@media (max-width:1024px){.dge-slider[data-per-view="3"],.dge-slider[data-per-view="4"]{--pv:2}}
@media (max-width:640px){.dge-slider{--pv:1!important}}
.dge-slider-track{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:4px 2px 8px;outline:none}
.dge-slider-track::-webkit-scrollbar{display:none}
.dge-slider-track:focus-visible{outline:3px solid var(--f-accent);outline-offset:2px}
.dge-slide{flex:0 0 calc((100% - (var(--pv) - 1) * 24px) / var(--pv));scroll-snap-align:start;min-width:0}
.dge-slide > .prop-card{height:100%}
.dge-sl-arrow{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;border:none;background:rgba(255,255,255,.95);color:var(--f-primary);box-shadow:var(--shadow);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:3;transition:opacity .2s}
.dge-sl-arrow .ic{width:20px;height:20px}
.dge-sl-arrow:disabled{opacity:.35;cursor:default}
.dge-sl-prev{left:-10px}.dge-sl-next{right:-10px}
.dge-sl-dots{display:flex;justify-content:center;gap:8px;margin-top:14px}
.dge-sl-dot{width:10px;height:10px;border-radius:50%;border:none;padding:0;background:var(--f-border);cursor:pointer}
.dge-sl-dot[aria-current="true"]{background:var(--f-primary);width:26px;border-radius:6px}
.dge-sl-pause{position:absolute;right:12px;bottom:12px;z-index:3;width:34px;height:34px;border-radius:50%;border:none;background:rgba(0,0,0,.5);color:#fff;font-size:11px;cursor:pointer}
.dge-sl-arrow:focus-visible,.dge-sl-dot:focus-visible,.dge-sl-pause:focus-visible{outline:3px solid var(--f-accent);outline-offset:2px}

/* Hero variant: full-bleed photography, restrained content panel */
.blk-slider-hero{position:relative}
.dge-slider-hero .dge-slider-track{gap:0;padding:0}
.dge-slider-hero .dge-sl-prev{left:16px}.dge-slider-hero .dge-sl-next{right:16px}
.dge-slider-hero .dge-sl-dots{position:absolute;left:0;right:0;bottom:18px;margin:0;z-index:3}
.dge-slider-hero .dge-sl-dot{background:rgba(255,255,255,.5)}
.dge-slider-hero .dge-sl-dot[aria-current="true"]{background:#fff}
.hs-slide{position:relative;display:block;height:70vh;min-height:440px;max-height:780px;color:#fff;text-decoration:none;background:var(--f-primary);overflow:hidden}
.hs-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hs-shade{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.62) 0%,rgba(0,0,0,.15) 55%,rgba(0,0,0,0) 100%)}
.hs-wrap{position:relative;height:100%;display:flex;align-items:flex-end;padding-bottom:64px}
.hs-panel{display:flex;flex-direction:column;align-items:flex-start;gap:8px;max-width:620px}
.hs-ribbons{display:flex;gap:6px;flex-wrap:wrap}
.hs-eyebrow{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;opacity:.85}
.hs-title{font-family:var(--font-display);font-size:clamp(1.8rem,4vw,3rem);font-weight:700;line-height:1.1;text-shadow:0 2px 18px rgba(0,0,0,.25)}
.hs-loc,.hs-meta{display:flex;align-items:center;gap:14px;font-size:14px;opacity:.92}
.hs-meta span{display:inline-flex;align-items:center;gap:5px;font-variant:small-caps;letter-spacing:.02em}
.hs-price{font-size:1.6rem;font-weight:800}
.hs-price small{font-size:.55em;font-weight:600;opacity:.85}
.hs-price del{font-size:.6em;opacity:.7;margin-left:6px}
.hs-cta{margin-top:8px;pointer-events:none}
.hs-slide:hover .hs-cta{background:var(--f-accent-h)}
.hs-search .blk-search{margin-top:-40px}
@media (max-width:640px){.hs-slide{height:auto;min-height:480px}.hs-wrap{padding-bottom:56px}}

/* Filterable grid */
.pg-bar{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin:-12px 0 24px;border-bottom:1px solid var(--f-border)}
.pg-tabs{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;max-width:100%}
.pg-tabs::-webkit-scrollbar{display:none}
.pg-tab{flex:0 0 auto;padding:10px 14px;font-size:14px;font-weight:600;color:var(--f-muted);text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;transition:color .2s,border-color .2s}
.pg-tab:hover{color:var(--f-primary)}
.pg-tab[aria-selected="true"]{color:var(--f-primary);border-bottom-color:var(--f-primary)}
.pg-tab:focus-visible{outline:3px solid var(--f-accent);outline-offset:-3px}
.pg-count{font-size:12px;font-weight:600;color:var(--f-muted);opacity:.8}
.pg-sort select{border:1.5px solid var(--f-border);border-radius:var(--radius-sm);padding:7px 10px;font-size:13px;background:var(--f-surface);margin-bottom:8px}
.pg-foot{display:flex;flex-direction:column;align-items:center;gap:18px;margin-top:36px}
.pg-foot:empty{display:none}
.pg-pager{margin:0}
.pg-pager button{min-width:38px;height:38px;padding:0 10px;border-radius:var(--radius-sm);border:1px solid var(--f-border);background:var(--f-surface);color:var(--f-text);font-weight:600;cursor:pointer}
.pg-pager button:hover{border-color:var(--f-primary);color:var(--f-primary)}
.blk-grid.is-loading .pg-items{opacity:.45;pointer-events:none;transition:opacity .2s}
.blk-grid.is-loading .pg-items .prop-thumb{background:linear-gradient(90deg,var(--f-border) 0%,#eef3f7 50%,var(--f-border) 100%);background-size:200% 100%;animation:dge-shimmer 1.1s linear infinite}
@keyframes dge-shimmer{from{background-position:200% 0}to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.dge-slider-track{scroll-behavior:auto}.blk-grid.is-loading .pg-items .prop-thumb{animation:none}.prop-card,.prop-thumb img{transition:none}}
/* With the search bar overlapping the hero, lift the dots and pause button clear of it. */
.blk-slider-hero.has-search .dge-slider-hero .dge-sl-dots{bottom:60px}
.blk-slider-hero.has-search .dge-sl-pause{bottom:56px}
.blk-slider-hero.has-search .hs-wrap{padding-bottom:96px}

/* ══ v0.26 — search form, advanced search, results page ═════════════════════ */
.sf-form{align-items:flex-end}
.sf-form .search-field{position:relative}
.sf-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--f-muted)}
.sf-pair{display:flex;gap:6px}
.sf-pair select,.sf-pair input{min-width:0;flex:1}
.sf-range{min-width:200px}
.ms{position:relative}
.ms-sum{list-style:none;cursor:pointer;border:1.5px solid var(--f-border);border-radius:var(--radius-sm);padding:9px 30px 9px 12px;font-size:14px;background:var(--f-bg);color:var(--f-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative}
.ms-sum::-webkit-details-marker{display:none}
.ms-sum::after{content:'';position:absolute;right:12px;top:50%;width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-70%) rotate(45deg)}
.ms[open] .ms-sum{border-color:var(--f-primary)}
.ms-sum:focus-visible{outline:3px solid var(--f-accent);outline-offset:1px}
.ms-panel{position:absolute;z-index:20;left:0;top:calc(100% + 6px);min-width:240px;max-height:320px;overflow:auto;background:var(--f-surface);border:1px solid var(--f-border);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:8px}
.ms-filter{width:100%;margin-bottom:6px;border:1.5px solid var(--f-border);border-radius:var(--radius-sm);padding:7px 10px;font-size:13px}
.ms-group{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--f-muted);padding:8px 6px 4px}
.ms-opt{display:flex;align-items:center;gap:8px;padding:6px;border-radius:6px;font-size:14px;cursor:pointer}
.ms-opt:hover{background:var(--f-bg)}
.sf-actions{display:flex;align-items:center;gap:10px;margin-left:auto}
.sf-adv-toggle{background:none;border:none;color:var(--f-primary);font-weight:600;font-size:13px;cursor:pointer;padding:8px 4px;white-space:nowrap}
.sf-adv-toggle::after{content:' ▾'}
.sf-adv-toggle[aria-expanded="true"]::after{content:' ▴'}
.sf-submit .ic{margin-right:6px}
.sf-adv{flex:1 1 100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 18px;padding-top:16px;margin-top:6px;border-top:1px solid var(--f-border)}
.sf-adv[hidden]{display:none}
.sf-checks{border:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px 14px;font-size:14px}
.sf-checks legend{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--f-muted);margin-bottom:6px;width:100%}
.sf-checks label{display:inline-flex;gap:6px;align-items:center}
.sf-reset{align-self:end;font-size:13px;color:var(--f-muted)}
.sf-optabs{flex:1 1 100%;display:flex;gap:6px;margin-bottom:4px}
.sf-optab input{position:absolute;opacity:0}
.sf-optab span{display:inline-block;padding:7px 18px;border-radius:999px;font-size:13px;font-weight:600;background:var(--f-bg);color:var(--f-muted);cursor:pointer}
.sf-optab input:checked + span{background:var(--f-primary);color:#fff}
.sf-optab input:focus-visible + span{outline:3px solid var(--f-accent)}
.sf-open,.sf-sheet-head{display:none}
.blk-search.layout-vertical .search-bar{flex-direction:column;align-items:stretch;margin-top:0}
.blk-search.layout-vertical .sf-adv{grid-template-columns:1fr}
.blk-search.layout-hero .search-bar{background:rgba(255,255,255,.88);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
@media (max-width:900px){.sf-adv{grid-template-columns:1fr 1fr}}
@media (max-width:640px){
  .sf-open{display:inline-flex;align-items:center;gap:8px;width:100%;justify-content:center;margin:-20px 0 0;position:relative;z-index:2}
  .blk-search .sf-form{display:none}
  .blk-search.sheet-open .sf-form{display:flex;flex-direction:column;align-items:stretch;position:fixed;inset:0;z-index:1000;margin:0;border-radius:0;overflow:auto;padding:16px 16px 88px}
  .blk-search.sheet-open .sf-sheet-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
  .sf-close{background:none;border:none;font-size:20px;cursor:pointer;padding:6px}
  .blk-search.sheet-open .sf-actions{position:fixed;left:0;right:0;bottom:0;padding:12px 16px;background:var(--f-surface);box-shadow:0 -4px 16px rgba(0,0,0,.08);margin:0}
  .blk-search.sheet-open .sf-submit{flex:1;justify-content:center}
  .sf-adv{grid-template-columns:1fr}
  .ms-panel{position:static;box-shadow:none;margin-top:6px}
}

/* Results page */
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.chip{display:inline-flex;align-items:center;gap:6px;padding:5px 8px 5px 12px;border-radius:999px;background:var(--f-surface);border:1px solid var(--f-border);font-size:13px;color:var(--f-text);text-decoration:none}
.chip:hover{border-color:var(--f-primary);color:var(--f-primary)}
.chip-x{display:inline-flex;width:18px;height:18px;align-items:center;justify-content:center;border-radius:50%;background:var(--f-bg);font-size:11px}
.chip-clear{font-size:13px;color:var(--f-muted);align-self:center;margin-left:4px}
.results-layout{display:grid;grid-template-columns:1fr;gap:28px}
.results-layout.has-side{grid-template-columns:minmax(0,1fr) 300px}
.results-side .detail-card h3{font-size:1rem;margin-bottom:10px}
.side-terms{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px;font-size:14px}
.side-terms a{display:flex;justify-content:space-between;color:var(--f-text);text-decoration:none}
.side-terms a:hover{color:var(--f-primary)}
.empty-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:18px}
.demand-box{max-width:560px;margin:28px auto 0;text-align:left}
.demand-box .field-group{margin-bottom:10px}
@media (max-width:1024px){.results-layout.has-side{grid-template-columns:minmax(0,1fr)}}
/* Options inside a search field must not inherit the uppercase field-label style. */
.search-field .ms-opt,.search-field .ms-opt span{text-transform:none;letter-spacing:0;font-size:14px;font-weight:400;color:var(--f-text)}

/* ══ v0.27 — detail page: gallery, lightbox, share, favourites, agent, CTA bar ═ */
.crumbs{padding-top:14px;font-size:13px;color:var(--f-muted)}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;padding:0;margin:0}
.crumbs li+li::before{content:'›';margin-right:6px;opacity:.6}
.crumbs a{color:var(--f-muted);text-decoration:none}.crumbs a:hover{color:var(--f-primary)}
.gal{margin-bottom:18px}
.gal-stage{position:relative}
.gal-slider .dge-slider-track{gap:0;padding:0;border-radius:12px}
.gal-open{display:block;width:100%;padding:0;border:0;background:var(--f-border);cursor:zoom-in}
.gal-open img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
.gal-slider .dge-sl-prev{left:12px}.gal-slider .dge-sl-next{right:12px}
.gal-media{position:absolute;left:14px;bottom:14px;display:flex;gap:8px;flex-wrap:wrap;z-index:3}
.gal-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;border:none;background:rgba(0,0,0,.6);color:#fff;font-size:13px;font-weight:600;cursor:pointer;text-decoration:none}
.gal-chip:hover{background:rgba(0,0,0,.78)}
.gal-thumbs{display:flex;gap:8px;overflow-x:auto;margin-top:10px;padding-bottom:4px;scrollbar-width:thin}
.gal-thumb{flex:0 0 auto;padding:0;border:2px solid transparent;border-radius:8px;overflow:hidden;cursor:pointer;background:none;opacity:.75}
.gal-thumb img{width:96px;height:64px;object-fit:cover;display:block}
.gal-thumb[aria-current="true"],.gal-thumb:hover{opacity:1;border-color:var(--f-primary)}
.lb{position:fixed;inset:0;z-index:2000;background:rgba(10,12,16,.94);display:flex;align-items:center;justify-content:center}
.lb[hidden]{display:none}
.lb-top{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:14px 18px;color:#fff;z-index:2}
.lb-count{font-size:14px;opacity:.85}
.lb-close{background:none;border:none;color:#fff;font-size:24px;cursor:pointer;padding:6px 10px}
.lb-body{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:56px 70px}
.lb-body img{max-width:100%;max-height:100%;object-fit:contain;border-radius:4px}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;border:none;background:rgba(255,255,255,.12);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:2}
.lb-nav .ic{width:22px;height:22px}.lb-prev{left:14px}.lb-next{right:14px}
.lb-nav:hover{background:rgba(255,255,255,.24)}
.lb-close:focus-visible,.lb-nav:focus-visible{outline:3px solid var(--f-accent)}
.lb-frame{width:min(1100px,100%);aspect-ratio:16/9;max-height:100%}
.lb-frame iframe{width:100%;height:100%;border:0;border-radius:8px;background:#000}
@media (max-width:640px){.lb-body{padding:56px 8px}.lb-nav{display:none}}
.detail-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:22px;font-size:14px}
.detail-ref{color:var(--f-muted)}
.detail-action-btns{display:flex;gap:8px;flex-wrap:wrap}
.act-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;border:1px solid var(--f-border);background:var(--f-surface);color:var(--f-text);font-size:13px;font-weight:600;cursor:pointer}
.act-btn:hover{border-color:var(--f-primary);color:var(--f-primary)}
.act-btn.is-on{color:#d6336c;border-color:#d6336c}
.act-btn.is-on .ic{fill:currentColor}
.share{position:relative}
.share-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:20;min-width:180px;background:var(--f-surface);border:1px solid var(--f-border);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:6px;display:flex;flex-direction:column}
.share-menu[hidden]{display:none}
.share-menu a,.share-menu button{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:6px;color:var(--f-text);text-decoration:none;font-size:14px;background:none;border:none;cursor:pointer;text-align:left}
.share-menu a:hover,.share-menu button:hover{background:var(--f-bg)}
.prop-card-wrap{position:relative;display:flex;flex-direction:column}
.prop-card-wrap > .prop-card{flex:1}
.fav-btn{position:absolute;top:10px;right:10px;z-index:2;width:38px;height:38px;border-radius:50%;border:none;background:rgba(255,255,255,.92);color:#444;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 1px 6px rgba(0,0,0,.15);transition:transform .15s}
.fav-btn .ic{width:19px;height:19px}
.fav-btn:hover{transform:scale(1.08)}
.fav-btn.is-on{color:#d6336c}.fav-btn.is-on .ic{fill:currentColor}
.fav-btn:focus-visible{outline:3px solid var(--f-accent);outline-offset:2px}
.prop-card-list + .fav-btn{right:auto;left:270px}
@media (max-width:640px){.prop-card-list + .fav-btn{left:auto;right:10px}}
.nav-icon{position:relative;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;color:var(--f-primary);text-decoration:none}
.nav-icon .ic{width:20px;height:20px}
.nav-icon:hover{background:var(--f-bg)}
.nav-wa{color:#1fa855}
.fav-badge{position:absolute;top:2px;right:0;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:#d6336c;color:#fff;font-size:10.5px;font-weight:700;display:flex;align-items:center;justify-content:center}
.fav-badge[hidden]{display:none}
.wa-float{position:fixed;right:18px;bottom:18px;z-index:900;width:56px;height:56px;border-radius:50%;background:#25d366;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 20px rgba(0,0,0,.2)}
.wa-float .ic{width:28px;height:28px}
.btn-wa{background:#25d366;color:#fff;border:none}
.btn-wa:hover{background:#1fa855;color:#fff}
.agent-card .agent-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.agent-photo{width:56px;height:56px;border-radius:50%;object-fit:cover;flex-shrink:0;background:var(--f-bg)}
.agent-initial{display:flex;align-items:center;justify-content:center;font-weight:700;font-size:22px;color:var(--f-primary)}
.agent-role{font-size:12px;color:var(--f-muted);text-transform:uppercase;letter-spacing:.06em}
.agent-name{font-weight:700;font-size:16px}
.agent-links{display:flex;flex-direction:column;gap:8px}
.agent-links .btn{justify-content:center;display:inline-flex;align-items:center;gap:8px}
.similar-card .dge-slide{flex-basis:calc((100% - 24px) / 2)}
.cta-bar{display:none}
@media (max-width:900px){
  .cta-bar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:950;background:var(--f-surface);box-shadow:0 -4px 16px rgba(0,0,0,.1);padding:8px;gap:8px}
  .cta-bar a{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:7px 4px;border-radius:10px;font-size:12px;line-height:1.15;font-weight:600;text-align:center;color:var(--f-primary);text-decoration:none;background:var(--f-bg)}
  .cta-bar a span{display:block;max-width:100%;overflow-wrap:anywhere;text-wrap:balance}
  .cta-bar a .ic{width:20px;height:20px}
  .cta-bar .cta-wa{color:#1fa855}
  .cta-bar .cta-main{background:var(--f-primary);color:#fff}
  body:has(.cta-bar){padding-bottom:90px}
}
/* Print: the listing itself, without chrome (the brochure stays the PDF option) */
@media print{
  .site-nav,.site-footer,.cta-bar,.wa-float,.detail-actions,.gal-thumbs,.gal-media,.dge-sl-arrow,.dge-sl-dots,.dge-sl-pause,.detail-side form,.similar-card,.dge-cookie,.crumbs,.fav-btn{display:none!important}
  .detail-grid{grid-template-columns:minmax(0,1fr)!important}
  .detail-band{background:none!important;color:#000}.detail-band .h1,.detail-band-price,.detail-band-price .prop-price{color:#000!important}
  .gal-slider .dge-slider-track{overflow:visible}.gal-slider .dge-slide:not(:first-child){display:none}
  .detail-card{break-inside:avoid;border-color:#ccc}
  body{background:#fff}
}

/* ══ v0.28 — landing pages, location cards, testimonials, nav dropdowns ══════ */
.tax-hero{position:relative;background:var(--f-primary);color:#fff;padding:48px 0 52px;overflow:hidden}
.tax-hero.has-img{padding:120px 0 56px}
.tax-hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tax-hero-shade{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.6),rgba(0,0,0,.1))}
.tax-hero-inner{position:relative}
.tax-hero .h1{color:#fff;margin-bottom:8px}
.tax-intro{max-width:880px;margin-top:32px;line-height:1.75}
.tax-body .rich-text{max-width:880px;line-height:1.8}
.loc-grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr))}
@media (min-width:1100px){.loc-grid.cols-2{grid-template-columns:repeat(2,1fr)}.loc-grid.cols-3{grid-template-columns:repeat(3,1fr)}.loc-grid.cols-4{grid-template-columns:repeat(4,1fr)}}
.loc-card{position:relative;display:block;aspect-ratio:4/3;border-radius:var(--radius-lg);overflow:hidden;background:var(--f-primary);color:#fff;text-decoration:none}
.loc-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.loc-card:hover img{transform:scale(1.05)}
.loc-shade{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.65),rgba(0,0,0,.05) 60%)}
.loc-text{position:absolute;left:18px;right:18px;bottom:16px;display:flex;flex-direction:column;gap:2px}
.loc-name{font-family:var(--font-display);font-size:1.4rem;font-weight:700}
.loc-count{font-size:13px;opacity:.9}
.loc-more{font-size:13px;font-weight:600;margin-top:6px;opacity:0;transform:translateY(4px);transition:opacity .2s,transform .2s}
.loc-card:hover .loc-more,.loc-card:focus-visible .loc-more{opacity:1;transform:none}
.loc-card:focus-visible{outline:3px solid var(--f-accent);outline-offset:3px}
.blk-testimonials{background:var(--f-surface)}
.tm-card{margin:0;background:var(--f-bg);border-radius:var(--radius-lg);padding:28px;display:flex;flex-direction:column;gap:16px}
.tm-stars{color:#e0a100;letter-spacing:2px}.tm-off{color:var(--f-border)}
.tm-quote{margin:0;font-size:1.05rem;line-height:1.7;color:var(--f-text);flex:1}
.tm-quote::before{content:'“';font-family:Georgia,serif;font-size:2.4rem;line-height:0;vertical-align:-.45em;color:var(--f-accent);margin-right:4px}
.tm-who{display:flex;align-items:center;gap:12px;font-size:14px}
.tm-who img,.tm-initial{width:48px;height:48px;border-radius:50%;object-fit:cover;flex-shrink:0}
.tm-initial{display:flex;align-items:center;justify-content:center;background:var(--f-primary);color:#fff;font-weight:700}
.tm-who small{color:var(--f-muted)}
.has-sub{position:relative}
.nav-sub-btn{background:none;border:none;font:inherit;font-size:14px;font-weight:500;color:var(--f-muted);cursor:pointer;padding:0}
.nav-sub-btn:hover,.has-sub.open .nav-sub-btn{color:var(--f-primary)}
.nav-sub{display:none;position:absolute;left:-12px;top:calc(100% + 10px);min-width:220px;background:var(--f-surface);border:1px solid var(--f-border);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:6px;list-style:none;z-index:150}
.has-sub:hover .nav-sub,.has-sub:focus-within .nav-sub,.has-sub.open .nav-sub{display:block}
.nav-sub a{display:flex;justify-content:space-between;gap:12px;padding:8px 10px;border-radius:6px;font-size:14px;color:var(--f-text)!important}
.nav-sub a:hover{background:var(--f-bg)}
.nav-sub-all{border-top:1px solid var(--f-border);margin-top:4px;padding-top:4px}
@media (max-width:900px){.nav-sub{position:static;box-shadow:none;border:none;padding:4px 0 4px 12px}.has-sub:hover .nav-sub{display:none}.has-sub.open .nav-sub{display:block}}
.nav-phone{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--f-primary);text-decoration:none;margin-right:4px}
@media (max-width:1100px){.nav-phone span{display:none}}
.site-nav.not-sticky{position:relative}

/* ══ v0.29 — blog ═══════════════════════════════════════════════════════════ */
.post-grid{display:grid;gap:28px;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}
@media (min-width:1100px){.post-grid{grid-template-columns:repeat(3,1fr)}}
.post-list{display:flex;flex-direction:column;gap:20px}
.post-card{background:var(--f-surface);border:1px solid var(--f-border);border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column}
.post-card-list{flex-direction:row}
.post-card-list .post-card-img{flex:0 0 280px}
@media (max-width:640px){.post-card-list{flex-direction:column}.post-card-list .post-card-img{flex-basis:auto}}
.post-card-img{display:block;aspect-ratio:16/9;background:var(--f-border);overflow:hidden}
.post-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.post-card:hover .post-card-img img{transform:scale(1.04)}
.post-card-ph{display:flex;height:100%;align-items:center;justify-content:center;color:var(--f-muted)}
.post-card-ph .ic{width:40px;height:40px}
.post-card-body{padding:20px 22px;display:flex;flex-direction:column;gap:8px;flex:1}
.post-card-title{font-family:var(--font-display);font-size:1.15rem;line-height:1.3;margin:0}
.post-card-title a{color:var(--f-text);text-decoration:none}
.post-card-title a:hover{color:var(--f-primary)}
.post-card-meta{font-size:12.5px;color:var(--f-muted);margin:0}
.post-card-excerpt{font-size:14px;color:var(--f-text);margin:0;flex:1}
.post-card-more{font-size:13px;font-weight:600;color:var(--f-primary);text-decoration:none}
.post{max-width:820px;margin:20px auto 40px}
.post-head{margin-bottom:22px}
.post-cat{display:inline-block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--f-accent);text-decoration:none;margin-bottom:8px}
.post-meta{color:var(--f-muted);font-size:14px}
.post-hero{width:100%;height:auto;border-radius:var(--radius-lg);margin-bottom:26px;aspect-ratio:1200/630;object-fit:cover}
.post-body{line-height:1.85;font-size:1.05rem}
.post-body img{max-width:100%;height:auto;border-radius:8px}
.post-share{position:relative;display:inline-block;margin-top:28px}

/* ══ v0.32 — header ═════════════════════════════════════════════════════════ */
/* Pre-header and navigation are one block: sticky together, transparent together. */
.site-header{position:sticky;top:0;z-index:100}
.site-header.not-sticky{position:relative}
.site-header .site-nav{position:relative;top:auto;z-index:auto}
.nav-inner{height:72px;gap:28px}
.nav-brand img{height:auto;max-height:48px!important;max-width:200px!important}
.nav-links{gap:28px;flex:1;justify-content:center;margin:0}
.nav-links > li > a,.nav-sub-btn{font-size:14.5px;font-weight:600;letter-spacing:.01em;padding:8px 0;position:relative}
.nav-links > li > a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:2px;border-radius:2px;background:currentColor;transform:scaleX(0);transition:transform .2s}
.nav-links > li > a:hover::after,.nav-links > li > a.active::after{transform:scaleX(1)}
.nav-actions{gap:6px;flex-shrink:0}
.nav-auth-desktop .btn{padding:8px 16px!important;font-size:13.5px}
.preheader-inner{height:34px}
.f-flag{width:20px;height:14px;border-radius:2px;flex:0 0 auto;box-shadow:0 0 0 1px rgba(0,0,0,.12);display:block}
.lang-switch a .f-flag{width:18px;height:12px}
.lang-switch a:not(.active){opacity:.85}
.lang-switch a:not(.active):hover{opacity:1}
.lang-chip{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;padding:6px 10px;border-radius:6px;text-decoration:none;border:1.5px solid var(--f-border);color:var(--f-muted)}
.lang-chip.active{border-color:var(--f-primary);color:var(--f-primary);background:var(--f-bg)}

/* Transparent over a full-width hero: both rows float over the image and turn solid on scroll. */
.site-header.is-transparent{position:absolute;left:0;right:0;top:0}
.site-header.is-transparent.is-sticky{position:fixed}
.site-header.is-transparent .site-preheader{background:rgba(0,0,0,.28);border-bottom:1px solid rgba(255,255,255,.12)}
.site-header.is-transparent .site-nav{background:linear-gradient(to bottom,rgba(0,0,0,.38),rgba(0,0,0,0));border-bottom-color:transparent;backdrop-filter:none}
.site-header.is-transparent .nav-links > li > a,.site-header.is-transparent .nav-sub-btn,.site-header.is-transparent .nav-brand-name,.site-header.is-transparent .nav-icon,.site-header.is-transparent .nav-phone,.site-header.is-transparent .nav-toggle{color:#fff}
.site-header.is-transparent .nav-sub a{color:var(--f-text)}
.site-header.is-transparent .nav-auth-desktop .btn-outline{color:#fff;border-color:rgba(255,255,255,.7);background:transparent}
.site-header.is-transparent .nav-auth-desktop .btn-outline:hover{background:rgba(255,255,255,.14)}
.site-header.is-transparent .nav-icon:hover{background:rgba(255,255,255,.14)}
.site-header.is-transparent.is-scrolled .site-nav{background:var(--f-nav-bg,rgba(247,243,238,.97));backdrop-filter:blur(10px);border-bottom-color:var(--f-border);box-shadow:0 2px 14px rgba(0,0,0,.08)}
.site-header.is-transparent.is-scrolled .nav-links > li > a,.site-header.is-transparent.is-scrolled .nav-sub-btn,.site-header.is-transparent.is-scrolled .nav-brand-name,.site-header.is-transparent.is-scrolled .nav-icon,.site-header.is-transparent.is-scrolled .nav-phone,.site-header.is-transparent.is-scrolled .nav-toggle{color:var(--f-primary)}
.site-header.is-transparent.is-scrolled .nav-auth-desktop .btn-outline{color:var(--f-primary);border-color:var(--f-primary)}
.site-header.is-sticky .site-preheader{transition:margin-top .25s ease}
.site-header.is-sticky.is-scrolled .site-preheader{margin-top:-35px}
/* The first block under a transparent header must clear it. */
.site-header.is-transparent ~ .hero .hero-content{padding-top:140px}
.site-header.is-transparent ~ .hero{min-height:600px}
@media (max-width:1100px){.nav-links{gap:20px}}
@media (max-width:860px){.site-header.is-sticky.is-scrolled .site-preheader{margin-top:0}}
@media (max-width:768px){.nav-inner{height:64px}.site-header.is-transparent ~ .hero .hero-content{padding-top:96px}}

/* Open mobile menu sits on a light panel: dark text even under a transparent header. */
.site-header.is-transparent .nav-links.open > li > a,.site-header.is-transparent .nav-links.open .nav-sub-btn{color:var(--f-text)}
.nav-links > li > a.lang-chip{padding:6px 10px;white-space:nowrap;color:var(--f-muted)}
.nav-links > li > a.lang-chip.active{color:var(--f-primary)}
.nav-links > li > a.lang-chip::after{display:none}

/* ══ v0.34 — navbar colour at the top of the page (separate from the scrolled one) ══ */
.site-header.has-top-bg:not(.is-scrolled) .site-nav{background:var(--f-nav-top-bg);backdrop-filter:none}
.site-header.is-transparent.has-top-bg.top-dark-text:not(.is-scrolled) .nav-links > li > a,
.site-header.is-transparent.has-top-bg.top-dark-text:not(.is-scrolled) .nav-sub-btn,
.site-header.is-transparent.has-top-bg.top-dark-text:not(.is-scrolled) .nav-brand-name,
.site-header.is-transparent.has-top-bg.top-dark-text:not(.is-scrolled) .nav-icon,
.site-header.is-transparent.has-top-bg.top-dark-text:not(.is-scrolled) .nav-phone,
.site-header.is-transparent.has-top-bg.top-dark-text:not(.is-scrolled) .nav-toggle{color:var(--f-primary)}
.site-header.is-transparent.has-top-bg.top-dark-text:not(.is-scrolled) .nav-auth-desktop .btn-outline{color:var(--f-primary);border-color:var(--f-primary)}

/* ══ v0.36 — mobile polish ══════════════════════════════════════════════════ */
/* Property page: breadcrumbs sit between the title band and the photos. */
.crumbs-detail{padding-top:16px}
/* Navbar language dropdown: phones only (desktop has the flag row in the pre-header). */
.nav-lang{display:none;position:relative}
.nav-lang summary{list-style:none;display:flex;align-items:center;gap:5px;padding:7px 8px;border-radius:8px;cursor:pointer;font-size:13px;font-weight:700;color:var(--f-primary);user-select:none}
.nav-lang summary::-webkit-details-marker{display:none}
.nav-lang summary::after{content:"";width:6px;height:6px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);margin-left:2px;opacity:.7}
.nav-lang ul{position:absolute;right:0;top:calc(100% + 6px);min-width:170px;margin:0;padding:6px;list-style:none;background:var(--f-surface,#fff);border:1px solid var(--f-border);border-radius:10px;box-shadow:0 12px 30px rgba(0,0,0,.16);z-index:300}
.nav-lang li a{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:7px;color:var(--f-text);text-decoration:none;font-size:14px}
.nav-lang li a:hover,.nav-lang li a[aria-current]{background:var(--f-bg)}
.nav-lang li a[aria-current]{font-weight:700}
.site-header.is-transparent:not(.is-scrolled):not(.top-dark-text) .nav-lang summary{color:#fff}
.nav-mobile-fav{display:inline-flex;align-items:center;gap:8px;position:relative}
.nav-mobile-fav .fav-badge{position:static}
@media (max-width:860px){
  .nav-lang{display:block}
  /* Phone and WhatsApp are in the bottom quick actions; favourites live in the menu. */
  .nav-actions .nav-phone,.nav-actions .nav-wa,.nav-actions .nav-fav{display:none}
}
/* Login / account buttons in the mobile menu: always on one line each. */
.nav-auth-m{flex:1 1 130px;min-width:0;padding:10px 12px!important;font-size:14px;white-space:nowrap;justify-content:center}
/* Featured slider on phones: text block at the bottom, clear of the header, nothing cut. */
@media (max-width:640px){
  .hs-slide{height:auto;min-height:0}
  .hs-wrap{min-height:520px;height:auto;padding-top:96px;padding-bottom:56px}
  .hs-panel{gap:6px;max-width:100%}
  .hs-title{font-size:1.55rem;line-height:1.15;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .hs-loc,.hs-meta{font-size:13px;gap:10px;flex-wrap:wrap}
  .hs-price{font-size:1.35rem}
  .hs-cta{padding:10px 18px;font-size:14px;margin-top:4px}
  .hs-eyebrow{font-size:11px}
  .dge-slider-hero .dge-sl-arrow{display:none}
  .blk-slider-hero.has-search .hs-wrap{padding-bottom:84px}
}

.nav-links.open > li.nav-mobile-only{align-self:stretch;width:100%;justify-content:center}

/* ══ v0.38.1 — header ══════════════════════════════════════════════════════ */
/* Sticky header in the page flow (subpages): the pre-header scrolls away by
   itself (negative top) instead of collapsing on scroll. Collapsing changed the
   page height, the browser moved the scroll back above the trigger point, and
   the header blinked open and shut. The transparent header is out of the flow
   and keeps its fold. */
.site-header.is-sticky:not(.is-transparent).is-scrolled .site-preheader{margin-top:0}
.site-header.is-sticky.has-pre:not(.is-transparent){top:-34px}
@media (max-width:860px){.site-header.is-sticky.has-pre:not(.is-transparent){top:0}}

/* Light navbar text wherever the navbar background is dark: the top colour on any
   page, and the scrolled / default colour (.nav-dark). The open mobile menu keeps
   its own light panel colours. */
.site-header.has-top-bg:not(.top-dark-text):not(.is-scrolled) .nav-links:not(.open) > li > a,
.site-header.nav-dark.is-scrolled .nav-links:not(.open) > li > a,
.site-header.nav-dark:not(.has-top-bg):not(.is-transparent) .nav-links:not(.open) > li > a{color:rgba(255,255,255,.82)}
.site-header.has-top-bg:not(.top-dark-text):not(.is-scrolled) .nav-links:not(.open) > li > a:hover,
.site-header.has-top-bg:not(.top-dark-text):not(.is-scrolled) .nav-links:not(.open) > li > a.active,
.site-header.nav-dark.is-scrolled .nav-links:not(.open) > li > a:hover,
.site-header.nav-dark.is-scrolled .nav-links:not(.open) > li > a.active,
.site-header.nav-dark:not(.has-top-bg):not(.is-transparent) .nav-links:not(.open) > li > a:hover,
.site-header.nav-dark:not(.has-top-bg):not(.is-transparent) .nav-links:not(.open) > li > a.active{color:#fff}
.site-header.has-top-bg:not(.top-dark-text):not(.is-scrolled) :is(.nav-sub-btn,.nav-brand-name,.nav-icon,.nav-phone,.nav-toggle,.nav-lang summary),
.site-header.nav-dark.is-scrolled :is(.nav-sub-btn,.nav-brand-name,.nav-icon,.nav-phone,.nav-toggle,.nav-lang summary),
.site-header.nav-dark:not(.has-top-bg):not(.is-transparent) :is(.nav-sub-btn,.nav-brand-name,.nav-icon,.nav-phone,.nav-toggle,.nav-lang summary){color:#fff}
.site-header.has-top-bg:not(.top-dark-text):not(.is-scrolled) .nav-icon:hover,
.site-header.nav-dark.is-scrolled .nav-icon:hover,
.site-header.nav-dark:not(.has-top-bg):not(.is-transparent) .nav-icon:hover{background:rgba(255,255,255,.14)}
.site-header.has-top-bg:not(.top-dark-text):not(.is-scrolled) .nav-auth-desktop .btn,
.site-header.nav-dark.is-scrolled .nav-auth-desktop .btn,
.site-header.nav-dark:not(.has-top-bg):not(.is-transparent) .nav-auth-desktop .btn{border-color:rgba(255,255,255,.55)}
.site-header.has-top-bg:not(.top-dark-text):not(.is-scrolled) .nav-auth-desktop .btn-outline,
.site-header.nav-dark.is-scrolled .nav-auth-desktop .btn-outline,
.site-header.nav-dark:not(.has-top-bg):not(.is-transparent) .nav-auth-desktop .btn-outline{color:#fff;background:transparent}

/* 1.0.0-beta.30: menu labels never break over two lines (the ▾ stays beside its label). */
.nav-links > li > a,.nav-sub-btn{white-space:nowrap}
@media (max-width:1280px){.nav-links{gap:20px}.nav-inner{gap:20px}}
@media (max-width:1100px){.nav-links{gap:14px}.nav-links > li > a,.nav-sub-btn{font-size:14px}}
/* 1.0.0-beta.29: the signed-in visitor's chip (name, messages, log out) follows the
   same light-on-dark rules as the sign-in buttons. */
.site-header.is-transparent:not(.is-scrolled):not(.top-dark-text) .user-chip,
.site-header.has-top-bg:not(.top-dark-text):not(.is-scrolled) .user-chip,
.site-header.nav-dark.is-scrolled .user-chip,
.site-header.nav-dark:not(.has-top-bg):not(.is-transparent) .user-chip{color:#fff}
.site-header.is-transparent:not(.is-scrolled):not(.top-dark-text) .user-chip .user-avatar,
.site-header.has-top-bg:not(.top-dark-text):not(.is-scrolled) .user-chip .user-avatar,
.site-header.nav-dark.is-scrolled .user-chip .user-avatar,
.site-header.nav-dark:not(.has-top-bg):not(.is-transparent) .user-chip .user-avatar{box-shadow:0 0 0 2px rgba(255,255,255,.7)}

/* ══ v0.38.2 — mobile property page, rich text ═════════════════════════════ */
/* Grid columns must be allowed to shrink below their content: a gallery slider
   otherwise sizes the column (and the page) to its own width on phones. */
.detail-main,.detail-side,.results-main{min-width:0}
/* Paragraph rhythm for editor HTML (descriptions, pages, posts). The global
   reset zeroes every margin, which ran paragraphs together. */
.rich-text > * + *{margin-top:1em}
.rich-text > :is(h2,h3,h4,h5) + *{margin-top:.5em}
.rich-text > * + :is(h2,h3,h4,h5){margin-top:1.4em}
.rich-text :is(ul,ol){padding-left:2.5em}  /* v0.39: bullets sit clearly in from the text edge */
.rich-text li + li{margin-top:.35em}
.rich-text img{max-width:100%;height:auto}
.rich-text table{display:block;max-width:100%;overflow-x:auto}
/* Cookie bar: on phones the two buttons share the row equally instead of running off the edge. */
@media (max-width:480px){.dge-cookie .dge-cookie-btns{display:grid;grid-template-columns:1fr 1fr;width:100%}}

/* ══ v0.39.0 — listing descriptions ════════════════════════════════════════ */
/* Headings inside a description sit below the card's own title ("Description"),
   whatever the global heading size in Settings → Styling (which uses !important). */
.detail-card .rich-text h3{font-size:1.2rem!important;line-height:1.35;font-weight:700}
.detail-card .rich-text h4{font-size:1.05rem!important;line-height:1.4;font-weight:700}
.rich-text hr{border:0;border-top:1px solid var(--f-border,#e5e7eb);margin:1.4em 0}


/* ══ 1.0.0-beta.2 — readable and usable by default, whatever the agency's settings ══
   Brand colours stay exactly as chosen for fills, lines and icons; text and buttons
   use the readable "ink" the layout computes (--f-accent-ink, --f-on-primary). */

/* Skip link + keyboard focus */
.skip-link{position:absolute;left:12px;top:-64px;z-index:2000;background:var(--f-primary);color:var(--f-on-primary,#fff);padding:10px 16px;border-radius:8px;font-weight:600;text-decoration:none}
.skip-link:focus{top:12px}
main:focus{outline:none}
a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:not([tabindex="-1"]):focus-visible{outline:3px solid var(--f-accent-ink,var(--f-accent));outline-offset:2px}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Readable brand colours */
.eyebrow,.post-cat{color:var(--f-accent-ink,var(--f-accent))}
.btn-accent,.rb-label{background:var(--f-accent-ink,var(--f-accent));color:#fff}
.btn-accent:hover,.hs-slide:hover .hs-cta{background:var(--f-accent-ink-h,var(--f-accent-h))}
.hs-cta{background:var(--f-accent-ink,var(--f-accent))}
.btn-primary,.pager .current,.sf-optab input:checked + span,.cta-bar .cta-main,.tm-initial,.contact-icon,.modal-head{color:var(--f-on-primary,#fff)}
.wa-float,.btn-wa{background:#188741}
.btn-wa:hover{background:#127035}
.cta-bar .cta-wa{color:#127035}

/* Sentence case instead of small capitals (labels read faster, in every language) */
.eyebrow,.hs-eyebrow,.sf-label,.post-cat,.prop-ribbon{text-transform:none;letter-spacing:0}
.eyebrow{font-size:14px;font-weight:600}
.hs-eyebrow{font-size:14px}
.sf-label{font-size:13px;color:var(--f-text)}
.prop-ribbon{font-size:12px}
.post-cat{font-size:13px}

/* Text: body copy at 16px, nothing smaller than 12px */
p,li,.rich,.prop-desc{font-size:max(16px,1em)}
.prop-ref{font-size:13px}
.prop-meta-item{font-size:14px}
.prop-location{font-size:14px}
.footer-links a{font-size:15px}
.lang-switch a{font-size:13px}
@media (max-width:768px){
  input,select,textarea{font-size:16px!important}  /* below 16px iPhones zoom into the field */
}

/* Tap targets: 24px everywhere, 44px on touch screens */
.lang-switch a{min-height:32px;padding:6px 9px}
.footer-links a{display:inline-block;padding:4px 0}
.fav-btn{width:40px;height:40px}
@media (pointer:coarse){
  .lang-switch a,.lang-chip{min-height:44px;min-width:44px;justify-content:center}
  .fav-btn{width:44px;height:44px}
  .footer-links a{padding:10px 0}
  .dge-sl-dot{min-width:24px;min-height:24px}
}

/* Hero slider: arrows sit bottom-right, clear of the listing title */
.dge-slider-hero .dge-sl-arrow{top:auto;bottom:20px;transform:none}
.dge-slider-hero .dge-sl-prev{left:auto;right:76px}
.dge-slider-hero .dge-sl-next{right:20px}

/* Line icons inherit size from text */
.ic-inline{width:1.1em;height:1.1em;vertical-align:-.18em}

/* Large icons on empty / status pages (were emoji) */
.empty-icon{display:flex;justify-content:center;margin-bottom:16px;color:var(--f-accent-ink,var(--f-accent))}
.empty-icon .ic{width:56px;height:56px}
.empty-icon.is-ok{color:#177245}.empty-icon.is-error{color:#b91c1c}
.spec-value .ic,.contact-icon .ic{width:20px;height:20px}

/* Visible field labels on public forms (were placeholder-only) */
.f-label{display:block;font-size:14px;font-weight:600;color:var(--f-text);margin:0 0 4px}
.f-label .req{color:#b91c1c;margin-left:2px}

/* Headings in order (h1 → h2 → h3): footer column titles are h2, contact details h3.
   !important because the Typography settings size every h2/h3 with !important. */
.site-footer .footer-title{color:var(--f-on-primary,#fff);font-weight:600;font-size:15px!important;line-height:1.3;margin:0 0 14px}
.contact-item-text .contact-item-title{font-size:16px!important;line-height:1.35;font-weight:600;margin:0 0 3px}

/* Similar listings: one card at a time on phones (the 2-up rule above overrode the slider's phone rule) */
@media (max-width:640px){.similar-card .dge-slide{flex-basis:100%}}
/* The price shows in the band above; the sidebar box starts with what follows it */
.side-price > :first-child{margin-top:0!important}

/* Contact form: labels as written (no forced capitals) and the same gap between every field */
.contact-form form{display:flex;flex-direction:column;gap:18px}
.contact-form form > div{margin:0}
.contact-form .f-label{text-transform:none;letter-spacing:0;font-size:14px;color:var(--f-text);margin:0 0 6px}
.contact-form .dge-consent{margin:0}

/* Staff preview of an unpublished listing */
.preview-bar{background:#FFF4D6;color:#5C3B00;text-align:center;font-weight:600;font-size:14px;line-height:1.4;padding:10px 16px;border-bottom:1px solid #F1D28A}

/* Key facts: always two columns on phones */
@media (max-width:640px){.facts-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}.facts-grid > div{min-width:0;overflow-wrap:anywhere}}

/* ── Footer social profiles and "Cookie settings" (1.0.0-beta.15, Settings → SEO) ── */
.footer-social { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 0; padding: 0; }
.footer-social a { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(255,255,255,.25); color: rgba(255,255,255,.85); transition: background .15s, color .15s, border-color .15s; }
.footer-social a:hover, .footer-social a:focus-visible { background: #fff; color: var(--f-primary); border-color: #fff; }
.footer-social .ic { width: 18px; height: 18px; }
.footer-linkbtn { background: none; border: 0; padding: 0; font: inherit; color: rgba(255,255,255,.6); cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
.footer-linkbtn:hover { color: #fff; }

/* ── Hero alignment and buttons (1.0.0-beta.24) ── */
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.hero-align-center .hero-content .container { text-align: center; }
.hero-align-center .hero-sub { margin-left: auto; margin-right: auto; }
.hero-align-center .hero-actions { justify-content: center; }
.hero-align-right .hero-content .container { text-align: right; }
.hero-align-right .hero-sub { margin-left: auto; }
.hero-align-right .hero-actions { justify-content: flex-end; }
.btn-hero-ghost { background: transparent; color: #fff; border: 1.5px solid rgba(255,255,255,.85); }
.btn-hero-ghost:hover, .btn-hero-ghost:focus-visible { background: #fff; color: var(--f-primary); border-color: #fff; }
@media (max-width: 560px) { .hero-actions .btn { flex: 1 1 100%; justify-content: center; } }
/* ── Footer: compact language selector (1.0.0-beta.24) ── */
.footer-lang { display: flex; flex-wrap: wrap; align-items: center; gap: 2px; margin: 0; padding: 0; list-style: none; }
.footer-lang a { display: inline-flex; align-items: center; min-height: 32px; padding: 4px 8px; border-radius: 6px; font-size: 12.5px; font-weight: 600; letter-spacing: .03em; color: rgba(255,255,255,.65); text-decoration: none; }
.footer-lang a:hover, .footer-lang a:focus-visible { color: #fff; background: rgba(255,255,255,.1); }
.footer-lang a[aria-current="true"] { color: #fff; background: rgba(255,255,255,.16); }

/* ── Footer widgets (1.0.0-beta.25) ── */
.fw { min-width: 0; }
.fw .footer-desc + .footer-desc { margin-top: 8px; }
.footer-text { font-size: 13.5px; color: rgba(255,255,255,.7); }
.footer-links a .ic { width: 16px; height: 16px; vertical-align: -3px; margin-right: 4px; }
.footer-hours { margin: 14px 0 0; display: grid; gap: 4px; font-size: 13px; }
.footer-hours div { display: flex; gap: 10px; justify-content: space-between; max-width: 240px; }
.footer-hours dt { color: rgba(255,255,255,.6); }
.footer-hours dd { margin: 0; color: rgba(255,255,255,.85); font-variant-numeric: tabular-nums; }
.footer-rich p { margin: 0 0 8px; }
.footer-rich a { color: #fff; text-decoration: underline; }
