/* SeychellesEstates — child theme CSS
   Minimalist, photography-first, mobile-first.
   Brand teal #0F6E56 evokes Indian Ocean + Vallée de Mai.
   ---------------------------------------------------------------- */

:root {
  --sey-ink: #0E1F1A;
  --sey-ink-soft: #4A5A55;
  --sey-ink-mute: #87938F;
  --sey-line: #E6E8E6;
  --sey-line-soft: #F1F2F0;
  --sey-bg: #FFFFFF;
  --sey-bg-soft: #F7F8F7;
  --sey-bg-cream: #FAF7F1;
  --sey-teal: #0F6E56;
  --sey-teal-d: #04342C;
  --sey-teal-l: #E1F5EE;
  --sey-amber: #BA7517;
  --sey-amber-l: #FAEEDA;
  --sey-coral: #D85A30;
  --sey-coral-l: #FAECE7;
  --sey-radius: 12px;
  --sey-radius-sm: 8px;
  --sey-shadow: 0 1px 2px rgba(15, 110, 86, 0.04);
}

/* Suppress parent theme noise on the homepage */
body.home .container-fluid > .row > .col-md-12 > section.no-padding { padding: 0 !important; }
body.home #wrapper > .container > .row { margin: 0; }

/* Use system fonts as base. Houzez loads its own; this overrides on our pages. */
body.home, body.home .sey-home {
  font-family: -apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", Roboto, sans-serif;
  color: var(--sey-ink);
  background: var(--sey-bg);
  -webkit-font-smoothing: antialiased;
  line-height: 1.55;
}

/* Houzez parent forces text-transform: capitalize on most headings and
   nav items. Kill it across every page — buyers shouldn't read prose in
   Title Case. Apply broadly, since Houzez also uses .page-title-wrap,
   .breadcrumb-section etc. */
body, body h1, body h2, body h3, body h4, body h5,
body p, body a, body span, body button, body label,
.page-title-wrap h1, .page-title-wrap h2,
.breadcrumb-section, .breadcrumb-section *,
.entry-content h1, .entry-content h2, .entry-content h3, .entry-content h4,
.entry-content p, .entry-content li,
.widget-title, .widget-title span,
.sey-home, .sey-home *,
.sey-card-title, .sey-card-title a,
.sey-card-loc,
.sey-howit h2, .sey-howit h3, .sey-howit p,
.sey-price, .sey-badge, .sey-chip {
  text-transform: none !important;
}
/* Restore tighter letter-spacing only on our headings (Houzez sets wide tracking) */
.sey-home h1, .sey-home h2, .sey-home h3,
.entry-content h1, .entry-content h2, .entry-content h3,
.page-title-wrap h1 {
  letter-spacing: -0.005em;
}

.sey-home * { box-sizing: border-box; }
.sey-home a { color: inherit; text-decoration: none; }
.sey-home button { font-family: inherit; cursor: pointer; }

/* ----------- TRUST BANNER ----------- */
.sey-trust {
  background: var(--sey-teal-l);
  color: var(--sey-teal-d);
  border-bottom: 1px solid #C4E8DA;
}
.sey-trust-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 9px 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: -0.005em;
  text-align: center;
}
.sey-trust-icon { display: inline-flex; align-items: center; color: var(--sey-teal); }

/* ----------- HERO ----------- */
.sey-hero {
  max-width: 1200px;
  margin: 0 auto;
  padding: 36px 20px 12px;
}
.sey-hero-text { margin-bottom: 22px; }
.sey-hero h1 {
  font-size: clamp(28px, 4.2vw, 44px);
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 1.1;
  margin: 0 0 6px;
  color: var(--sey-ink);
}
.sey-tagline {
  font-size: 16px;
  color: var(--sey-ink-soft);
  margin: 0;
  letter-spacing: -0.005em;
}

/* ----------- MAP ----------- */
.sey-map-wrap {
  position: relative;
  border-radius: var(--sey-radius);
  overflow: hidden;
  border: 1px solid var(--sey-line);
  background: var(--sey-bg-soft);
}
#sey-map {
  width: 100%;
  height: 420px;
  background: #E6F1FB;
}
.leaflet-container { font-family: inherit; background: #E6F1FB; }
.leaflet-popup-content-wrapper { border-radius: 10px; }
.leaflet-popup-content { margin: 10px 12px; font-size: 13px; line-height: 1.45; }
.leaflet-popup-content img { width: 100%; height: 90px; object-fit: cover; border-radius: 6px; margin-bottom: 6px; display: block; }
.leaflet-popup-content strong { display: block; font-weight: 500; color: var(--sey-teal); margin-bottom: 2px; }
.leaflet-popup-content small { color: var(--sey-ink-mute); display: block; }

.sey-pin {
  background: #FFFFFF;
  border: 2px solid var(--sey-teal);
  color: var(--sey-teal-d);
  font-size: 11px;
  font-weight: 600;
  padding: 4px 8px;
  border-radius: 999px;
  white-space: nowrap;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.18);
  transition: transform 0.12s ease;
}
.sey-pin:hover { transform: scale(1.06); background: var(--sey-teal); color: #fff; }

.sey-map-legend {
  position: absolute;
  top: 14px;
  right: 14px;
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(6px);
  border: 1px solid var(--sey-line);
  border-radius: var(--sey-radius-sm);
  padding: 9px 12px;
  font-size: 12px;
  display: flex;
  flex-direction: column;
  gap: 5px;
  box-shadow: var(--sey-shadow);
  z-index: 400;
}
.sey-map-legend label { display: flex; align-items: center; gap: 6px; cursor: pointer; color: var(--sey-ink); }
.sey-map-legend input { width: 13px; height: 13px; accent-color: var(--sey-teal); }
.sey-map-legend .n { color: var(--sey-ink-mute); margin-left: auto; }

/* ----------- FILTER CHIPS ----------- */
.sey-filters {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin: 18px 0 4px;
}
.sey-chip {
  background: var(--sey-bg);
  border: 1px solid var(--sey-line);
  color: var(--sey-ink-soft);
  font-size: 13px;
  padding: 7px 14px;
  border-radius: 999px;
  transition: all 0.12s ease;
  font-weight: 500;
  letter-spacing: -0.005em;
}
.sey-chip:hover { border-color: var(--sey-ink-mute); color: var(--sey-ink); }
.sey-chip.active {
  background: var(--sey-teal-d);
  color: var(--sey-teal-l);
  border-color: var(--sey-teal-d);
}

/* ----------- LISTINGS ----------- */
.sey-listings {
  max-width: 1200px;
  margin: 0 auto;
  padding: 24px 20px 48px;
}
.sey-listings-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 16px;
}
.sey-listings-count { font-size: 14px; color: var(--sey-ink-soft); margin: 0; }
.sey-sort { font-size: 13px; color: var(--sey-ink-mute); display: flex; align-items: center; gap: 8px; }
.sey-sort select {
  background: transparent;
  border: 0;
  font-size: 13px;
  color: var(--sey-ink);
  font-family: inherit;
  cursor: pointer;
  padding: 4px 0;
}

.sey-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 22px;
}

/* ----------- CARD ----------- */
.sey-card {
  background: var(--sey-bg);
  border-radius: var(--sey-radius);
  overflow: hidden;
  border: 1px solid var(--sey-line);
  transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
  display: flex;
  flex-direction: column;
}
.sey-card:hover {
  transform: translateY(-2px);
  border-color: #D1D5D3;
  box-shadow: 0 8px 20px rgba(15, 110, 86, 0.07);
}
.sey-card.is-hidden { display: none; }

.sey-card-photo {
  position: relative;
  aspect-ratio: 4 / 3;
  display: block;
  background: var(--sey-bg-soft);
  overflow: hidden;
}
.sey-card-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}
.sey-card:hover .sey-card-photo img { transform: scale(1.03); }
.sey-card-noimage {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  color: var(--sey-ink-mute);
  background: var(--sey-bg-cream);
}

.sey-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  background: rgba(255, 255, 255, 0.96);
  color: var(--sey-teal-d);
  font-size: 11px;
  font-weight: 500;
  padding: 4px 9px;
  border-radius: var(--sey-radius-sm);
  letter-spacing: 0.01em;
}
.sey-badge-featured { color: var(--sey-amber); }

.sey-heart {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 32px; height: 32px;
  background: rgba(255, 255, 255, 0.92);
  border: 0;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--sey-ink);
  transition: all 0.15s ease;
}
.sey-heart:hover { background: #fff; transform: scale(1.06); }
.sey-heart.saved { color: var(--sey-coral); background: #fff; }
.sey-heart.saved svg { fill: var(--sey-coral); }

.sey-card-body {
  padding: 14px 16px 16px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.sey-card-row1 {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 8px;
}
.sey-price {
  font-size: 18px;
  font-weight: 500;
  color: var(--sey-ink);
  margin: 0;
  letter-spacing: -0.01em;
}
.sey-source {
  font-size: 11px;
  color: var(--sey-ink-mute);
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: 2px;
}
.sey-source:hover { color: var(--sey-teal); }

.sey-card-title {
  font-size: 14px;
  font-weight: 500;
  color: var(--sey-ink);
  margin: 4px 0 0;
  line-height: 1.35;
  letter-spacing: -0.005em;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.sey-card-loc {
  font-size: 12.5px;
  color: var(--sey-ink-soft);
  margin: 2px 0 0;
  display: flex;
  align-items: center;
  gap: 4px;
}
.sey-card-meta {
  display: flex;
  gap: 14px;
  margin-top: 8px;
  font-size: 11.5px;
  color: var(--sey-ink-mute);
}
.sey-card-meta span { display: inline-flex; align-items: center; gap: 4px; }

.sey-empty {
  grid-column: 1 / -1;
  text-align: center;
  color: var(--sey-ink-mute);
  padding: 60px 20px;
  font-size: 15px;
}

/* ----------- HOW IT WORKS ----------- */
.sey-howit {
  background: var(--sey-bg-cream);
  padding: 56px 20px;
  border-top: 1px solid var(--sey-line);
}
.sey-howit h2 {
  text-align: center;
  font-size: 22px;
  font-weight: 500;
  letter-spacing: -0.015em;
  margin: 0 0 32px;
  color: var(--sey-ink);
}
.sey-howit-grid {
  max-width: 1000px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 32px;
}
.sey-howit-grid > div { text-align: left; }
.sey-howit-grid .num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px; height: 28px;
  border-radius: 50%;
  background: var(--sey-teal-l);
  color: var(--sey-teal-d);
  font-size: 13px;
  font-weight: 500;
  margin-bottom: 10px;
}
.sey-howit-grid h3 {
  font-size: 16px;
  font-weight: 500;
  color: var(--sey-ink);
  margin: 0 0 6px;
  letter-spacing: -0.005em;
}
.sey-howit-grid p {
  font-size: 14px;
  color: var(--sey-ink-soft);
  margin: 0;
  line-height: 1.55;
}

/* ----------- CURRENCY TOGGLE (injected into header) ----------- */
.sey-currency-toggle {
  display: inline-flex;
  background: var(--sey-bg-soft);
  border-radius: var(--sey-radius-sm);
  padding: 2px;
  gap: 2px;
  margin-right: 10px;
  vertical-align: middle;
}
.sey-currency-toggle button {
  background: transparent;
  border: 0;
  padding: 4px 10px;
  font-size: 12px;
  font-weight: 500;
  border-radius: 6px;
  color: var(--sey-ink-soft);
  transition: all 0.1s ease;
}
.sey-currency-toggle button.active {
  background: var(--sey-bg);
  color: var(--sey-ink);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}

/* ----------- HOUZEZ HEADER OVERRIDES on our pages ----------- */
body.home #header-container,
body.home .header-style-v6,
body.home .header_style_v6 {
  background: #fff !important;
  border-bottom: 1px solid var(--sey-line);
  box-shadow: none !important;
}
body.home .navbar { box-shadow: none !important; }

/* ----------- RESPONSIVE ----------- */
@media (max-width: 720px) {
  .sey-hero { padding: 24px 16px 8px; }
  .sey-hero h1 { font-size: 28px; }
  .sey-tagline { font-size: 15px; }
  #sey-map { height: 320px; }
  .sey-map-legend {
    top: auto; bottom: 12px; right: 12px;
    font-size: 11.5px;
    padding: 7px 10px;
  }
  .sey-listings { padding: 18px 16px 40px; }
  .sey-grid { grid-template-columns: 1fr; gap: 18px; }
  .sey-howit { padding: 40px 16px; }
  .sey-howit-grid { gap: 24px; }
  .sey-trust-inner { font-size: 12px; padding: 8px 14px; }
  .sey-filters { gap: 6px; }
  .sey-chip { font-size: 12px; padding: 6px 12px; }
}

@media (max-width: 380px) {
  .sey-hero h1 { font-size: 24px; }
  .sey-card-meta { gap: 10px; font-size: 11px; }
}

/* Remove Mortgage Calculator + Schedule a Tour entirely (Sam request 2026-06-30) */
#property-mortgage-calculator-wrap,
#property-schedule-tour-wrap,
.fw-property-mortgage-calculator-wrap,
.fw-property-schedule-tour-wrap { display: none !important; }


/* Hide broken Houzez demo asset references (demo09.houzez.co) */
img[src*="demo09.houzez.co"] { display: none !important; }


/* ------------------------------------------------------------------
 * Non-commercial directory: the image lightbox must NOT capture leads.
 * Hide the agent contact form in the gallery popup and let the images
 * use the full width. Source agency is shown on the page instead.
 * ------------------------------------------------------------------ */
#property-lightbox .lightbox-form-wrap { display: none !important; }
#property-lightbox .lightbox-gallery-wrap { width: 100% !important; float: none !important; }

/* Elementor entrance-animation safety net: never leave content stuck at
 * opacity:0 if the animation CSS fails to load after a cache purge. */
.elementor-invisible { opacity: 1 !important; }
.elementor-element.animated,
.elementor-section.animated { opacity: 1 !important; }

/* ---- Non-commercial: hide Houzez agent lead-capture ---------------
 * This is a directory, not a broker. We must not intercept leads under a
 * generic "Seychelles Estates" agent. Our own .sey-source-card (injected
 * at the top of the content) routes visitors to the real listing agency.
 * Hides: inline "Contact Information" agent block, "Enquire About This
 * Property" form, the mobile sticky agent bar, and the "Contact me" modal.
 * ------------------------------------------------------------------ */
.block-wrap:has(.houzez_agent_property_form),
.block-wrap:has(.agent-details),
.mobile-property-contact,
#mobile-property-form,
.property-agent-form,
.agent-contact-form-wrap { display: none !important; }

/* ---- Sold-prices page ([sey-sold-prices]) ------------------------- */
.sey-soldpage { max-width: 1200px; margin: 0 auto; }
.sey-soldpage-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin: 8px 0 28px;
}
.sey-soldpage-stats .sey-stat {
  flex: 1 1 180px;
  background: var(--sey-teal-l);
  border: 1px solid var(--sey-line);
  border-radius: var(--sey-radius);
  padding: 20px 22px;
  text-align: center;
}
.sey-soldpage-stats .sey-stat-num {
  display: block;
  font-size: clamp(24px, 3.4vw, 34px);
  font-weight: 700;
  color: var(--sey-teal-d);
  line-height: 1.1;
}
.sey-soldpage-stats .sey-stat-lbl {
  display: block;
  margin-top: 6px;
  font-size: 13px;
  color: var(--sey-ink-soft);
  text-transform: none;
}
.sey-soldpage-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 26px;
}
.sey-soldpage-chips .sey-chip .n { opacity: 0.6; font-weight: 400; }
.sey-ppsqm {
  font-size: 12px;
  color: var(--sey-ink-mute);
  white-space: nowrap;
}
.sey-ppsqm .sey-price { font-size: 12px; color: var(--sey-ink-mute); font-weight: 500; }
.sey-sold-agency {
  margin: 10px 0 0;
  font-size: 12px;
  color: var(--sey-ink-mute);
  border-top: 1px solid var(--sey-line-soft);
  padding-top: 8px;
}

/* ---- Status badges ------------------------------------------------ */
.sey-badge-sold {
  background: var(--sey-coral);
  color: #fff;
}
.sey-badge-offer {
  background: var(--sey-amber);
  color: #fff;
}
/* If both featured + status show, stack the status badge below featured */
.sey-badge-featured + .sey-badge-sold,
.sey-badge-featured + .sey-badge-offer { top: 44px; }

/* ---- Recently sold section (market activity / "slutpriser") -------- */
.sey-sold {
  max-width: var(--sey-maxw, 1200px);
  margin: 0 auto;
  padding: 56px 24px 8px;
}
.sey-sold-head {
  margin-bottom: 22px;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 20px;
  flex-wrap: wrap;
}
.sey-sold-viewall {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  white-space: nowrap;
  font-size: 14px;
  font-weight: 500;
  color: var(--sey-teal);
  text-decoration: none;
  padding: 9px 16px;
  border: 1px solid var(--sey-teal-l);
  border-radius: var(--sey-radius-sm);
  transition: background 0.2s ease, border-color 0.2s ease;
}
.sey-sold-viewall:hover { background: var(--sey-teal-l); border-color: var(--sey-teal); }
.sey-sold-head h2 {
  font-size: clamp(22px, 3vw, 30px);
  color: var(--sey-ink);
  margin: 0 0 6px;
  font-weight: 600;
}
.sey-sold-head p {
  color: var(--sey-ink-soft);
  margin: 0;
  max-width: 640px;
  font-size: 15px;
  line-height: 1.5;
}
.sey-sold-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px;
}
/* Sold cards read as "past" — image gently desaturated until hover */
.sey-card-sold .sey-card-photo img {
  filter: saturate(0.72) brightness(0.98);
  transition: filter 0.3s ease, transform 0.4s ease;
}
.sey-card-sold:hover .sey-card-photo img { filter: none; }
.sey-card-sold .sey-price { color: var(--sey-ink-mute); }
@media (max-width: 1024px) {
  .sey-sold-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .sey-sold-grid { grid-template-columns: 1fr; }
  .sey-sold { padding: 40px 16px 4px; }
}

/* ---- Buyer's guide ([sey-buyer-guide]) ---------------------------- */
.sey-guide {
  max-width: 860px;
  margin: 0 auto;
  color: var(--sey-ink);
  font-size: 16.5px;
  line-height: 1.72;
}
.sey-guide p { color: var(--sey-ink-soft); }
.sey-guide-updated {
  font-size: 13px;
  color: var(--sey-ink-mute);
  border-left: 3px solid var(--sey-teal);
  padding-left: 12px;
  margin: 0 0 22px;
}
.sey-guide-lede {
  font-size: 19px;
  line-height: 1.6;
  color: var(--sey-ink) !important;
  margin: 0 0 30px;
}
/* key facts */
.sey-guide-keyfacts {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
  margin: 0 0 34px;
}
.sey-kf {
  background: var(--sey-teal-l);
  border: 1px solid var(--sey-line);
  border-radius: var(--sey-radius);
  padding: 16px 14px;
  text-align: center;
}
.sey-kf-v {
  display: block;
  font-weight: 700;
  color: var(--sey-teal-d);
  font-size: 17px;
  line-height: 1.2;
  margin-bottom: 6px;
}
.sey-kf-l { display: block; font-size: 12px; color: var(--sey-ink-soft); line-height: 1.4; }
/* toc */
.sey-guide-toc {
  background: #fff;
  border: 1px solid var(--sey-line);
  border-radius: var(--sey-radius);
  padding: 18px 22px;
  margin: 0 0 40px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 20px;
  align-items: center;
}
.sey-toc-title {
  width: 100%;
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--sey-ink-mute);
  font-weight: 600;
  margin-bottom: 4px;
}
.sey-guide-toc a {
  font-size: 14px;
  color: var(--sey-teal);
  text-decoration: none;
  border-bottom: 1px solid transparent;
}
.sey-guide-toc a:hover { border-bottom-color: var(--sey-teal); }
/* sections */
.sey-guide-section { margin: 0 0 44px; scroll-margin-top: 90px; }
.sey-guide-section h2 {
  font-size: clamp(22px, 3vw, 28px);
  color: var(--sey-ink);
  font-weight: 600;
  margin: 0 0 14px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--sey-teal-l);
}
.sey-guide-section h3 {
  font-size: 17px;
  color: var(--sey-teal-d);
  font-weight: 600;
  margin: 0 0 10px;
}
/* callout */
.sey-callout {
  background: var(--sey-amber-l);
  border: 1px solid #EAD9B8;
  border-radius: var(--sey-radius);
  padding: 16px 20px;
  margin: 22px 0;
  font-size: 15.5px;
  color: var(--sey-ink);
  line-height: 1.6;
}
.sey-callout strong { color: var(--sey-amber); }
/* two columns */
.sey-guide-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin: 18px 0; }
.sey-guide-col {
  background: #fff;
  border: 1px solid var(--sey-line);
  border-radius: var(--sey-radius);
  padding: 20px 22px;
}
.sey-guide-col ul { margin: 0; padding-left: 20px; }
.sey-guide-col li { margin: 7px 0; color: var(--sey-ink-soft); }
.sey-col-yes { border-top: 3px solid var(--sey-teal); }
.sey-col-no { border-top: 3px solid var(--sey-coral); }
.sey-col-yes h3 { color: var(--sey-teal); }
.sey-col-no h3 { color: var(--sey-coral); }
/* table */
.sey-table-wrap { overflow-x: auto; margin: 18px 0; }
.sey-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 15px;
  background: #fff;
  border: 1px solid var(--sey-line);
  border-radius: var(--sey-radius);
  overflow: hidden;
}
.sey-table th {
  background: var(--sey-teal-d);
  color: #fff;
  text-align: left;
  padding: 12px 16px;
  font-weight: 600;
  font-size: 14px;
}
.sey-table td { padding: 12px 16px; border-top: 1px solid var(--sey-line); color: var(--sey-ink-soft); vertical-align: top; }
.sey-table tbody tr:nth-child(even) td, .sey-table tr:nth-child(even) td { background: var(--sey-line-soft); }
.sey-table td:first-child { font-weight: 600; color: var(--sey-ink); }
/* steps */
.sey-steps { list-style: none; counter-reset: none; margin: 20px 0 0; padding: 0; }
.sey-step { display: flex; gap: 16px; padding: 0 0 22px; position: relative; }
.sey-step:not(:last-child)::before {
  content: ""; position: absolute; left: 15px; top: 34px; bottom: 0;
  width: 2px; background: var(--sey-teal-l);
}
.sey-step-n {
  flex: 0 0 auto;
  width: 32px; height: 32px;
  border-radius: 50%;
  background: var(--sey-teal);
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 15px;
  position: relative; z-index: 1;
}
.sey-step h3 { margin: 4px 0 4px; }
.sey-step p { margin: 0; font-size: 15px; }
/* checklist */
.sey-checklist { list-style: none; margin: 0; padding: 0; }
.sey-checklist li { position: relative; padding-left: 26px; margin: 9px 0; color: var(--sey-ink-soft); }
.sey-checklist li::before {
  content: ""; position: absolute; left: 0; top: 3px;
  width: 16px; height: 16px; border-radius: 4px;
  background: var(--sey-teal-l);
  border: 1.5px solid var(--sey-teal);
}
.sey-checklist li::after {
  content: ""; position: absolute; left: 5px; top: 6px;
  width: 4px; height: 8px; border: solid var(--sey-teal);
  border-width: 0 2px 2px 0; transform: rotate(45deg);
}
/* cta */
.sey-guide-cta { display: flex; flex-wrap: wrap; gap: 12px; margin: 22px 0 0; }
.sey-guide-cta-btn {
  display: inline-flex; align-items: center;
  padding: 12px 22px; border-radius: 8px;
  font-weight: 500; font-size: 15px; text-decoration: none;
  border: 1px solid var(--sey-teal); color: var(--sey-teal);
  transition: background 0.2s ease, color 0.2s ease;
}
.sey-guide-cta-btn:hover { background: var(--sey-teal-l); }
.sey-guide-cta-btn.primary { background: var(--sey-teal); color: #fff; }
.sey-guide-cta-btn.primary:hover { background: var(--sey-teal-d); }
/* faq accordion */
.sey-guide-faq { border: 1px solid var(--sey-line); border-radius: var(--sey-radius); overflow: hidden; }
.sey-faq-item { border-bottom: 1px solid var(--sey-line); background: #fff; }
.sey-faq-item:last-child { border-bottom: 0; }
.sey-faq-item summary {
  cursor: pointer; padding: 16px 20px;
  font-weight: 600; color: var(--sey-ink);
  font-size: 16px; list-style: none;
  display: flex; justify-content: space-between; align-items: center; gap: 12px;
}
.sey-faq-item summary::-webkit-details-marker { display: none; }
.sey-faq-item summary::after {
  content: "+"; color: var(--sey-teal); font-size: 22px; font-weight: 400; line-height: 1;
}
.sey-faq-item[open] summary::after { content: "\2212"; }
.sey-faq-item p { margin: 0; padding: 0 20px 18px; font-size: 15.5px; }
/* disclaimer */
.sey-guide-disclaimer {
  margin: 40px 0 0;
  padding: 18px 20px;
  background: var(--sey-line-soft);
  border-radius: var(--sey-radius);
  font-size: 13px !important;
  line-height: 1.6;
  color: var(--sey-ink-mute) !important;
}
@media (max-width: 760px) {
  .sey-guide-keyfacts { grid-template-columns: repeat(2, 1fr); }
  .sey-guide-cols { grid-template-columns: 1fr; }
}

/* ---- Market report bars ([sey-market-report]) --------------------- */
.sey-report-bars { margin: 20px 0 8px; display: flex; flex-direction: column; gap: 12px; }
.sey-bar-row { display: grid; grid-template-columns: 110px 1fr auto; align-items: center; gap: 14px; }
.sey-bar-label { font-size: 14px; font-weight: 600; color: var(--sey-ink); }
.sey-bar-track { height: 22px; background: var(--sey-line-soft); border-radius: 6px; overflow: hidden; }
.sey-bar-fill {
  display: block; height: 100%;
  background: linear-gradient(90deg, var(--sey-teal), var(--sey-teal-d));
  border-radius: 6px;
}
.sey-bar-val { font-size: 14px; font-weight: 600; color: var(--sey-teal-d); white-space: nowrap; min-width: 78px; text-align: right; }
@media (max-width: 560px) {
  .sey-bar-row { grid-template-columns: 84px 1fr auto; gap: 8px; }
  .sey-bar-label { font-size: 12.5px; }
  .sey-bar-val { font-size: 12.5px; min-width: 62px; }
}

/* ---- Island guide areas + guides hub ------------------------------ */
.sey-area-list { display: flex; flex-direction: column; gap: 4px; margin-top: 8px; }
.sey-area {
  padding: 16px 0;
  border-bottom: 1px solid var(--sey-line-soft);
}
.sey-area:last-child { border-bottom: 0; }
.sey-area h3 { margin: 0 0 5px; color: var(--sey-teal-d); font-size: 17px; }
.sey-area p { margin: 0; }
.sey-hub-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
  margin-top: 8px;
}
.sey-hub-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--sey-line);
  border-radius: var(--sey-radius);
  padding: 22px 24px;
  text-decoration: none;
  transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}
.sey-hub-card:hover { box-shadow: 0 8px 24px rgba(15,110,86,0.10); transform: translateY(-2px); border-color: var(--sey-teal-l); }
.sey-hub-tag {
  align-self: flex-start;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--sey-teal);
  background: var(--sey-teal-l);
  padding: 3px 9px;
  border-radius: 5px;
  margin-bottom: 12px;
}
.sey-hub-card h3 { margin: 0 0 8px; color: var(--sey-ink); font-size: 18px; font-weight: 600; }
.sey-hub-card p { margin: 0 0 14px; color: var(--sey-ink-soft); font-size: 14.5px; line-height: 1.55; flex-grow: 1; }
.sey-hub-more { display: inline-flex; align-items: center; gap: 6px; color: var(--sey-teal); font-weight: 500; font-size: 14px; }
@media (max-width: 640px) {
  .sey-hub-grid { grid-template-columns: 1fr; }
}

/* ---- Full-width reading layout for guide/report/sold pages --------
 * These are long-form authority pages. Drop the generic Houzez sidebar
 * and let the content column go full width; .sey-guide (max 860) then
 * centres for a clean reading measure. Scoped via :has() so only the
 * resource pages are affected. Reversible. */
body:has(.sey-guide) .bt-sidebar-wrap,
body:has(.sey-soldpage) .bt-sidebar-wrap { display: none !important; }
body:has(.sey-guide) .bt-content-wrap,
body:has(.sey-soldpage) .bt-content-wrap {
  flex: 0 0 100% !important;
  max-width: 100% !important;
}
body:has(.sey-guide) .page-content-wrap,
body:has(.sey-soldpage) .page-content-wrap { padding-bottom: 20px; }

/* ---- Guides hub section headings + sold crumb --------------------- */
.sey-hub-heading {
  font-size: 15px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--sey-ink-mute);
  font-weight: 600;
  margin: 34px 0 14px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--sey-line);
}
.sey-hub-heading:first-of-type { margin-top: 10px; }
.sey-soldpage-crumb { margin: 0 0 22px; }
.sey-soldpage-crumb a { color: var(--sey-teal); text-decoration: none; font-size: 14px; font-weight: 500; }
.sey-soldpage-crumb a:hover { text-decoration: underline; }

/* ---- Glossary ([sey-glossary]) ------------------------------------ */
.sey-glossary-list { margin: 8px 0 0; }
.sey-glossary-item {
  padding: 16px 0;
  border-bottom: 1px solid var(--sey-line-soft);
}
.sey-glossary-item:last-child { border-bottom: 0; }
.sey-glossary-item dt {
  font-weight: 600;
  color: var(--sey-teal-d);
  font-size: 16.5px;
  margin: 0 0 5px;
}
.sey-glossary-item dd { margin: 0; color: var(--sey-ink-soft); line-height: 1.6; }

/* ---- How-to step timing label ------------------------------------- */
.sey-step-when {
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--sey-teal);
  background: var(--sey-teal-l);
  padding: 2px 8px;
  border-radius: 5px;
  margin-left: 6px;
  vertical-align: middle;
}

/* ---------------------------------------------------------------------
 * Footer "Explore the directory" links column (footer-sidebar-3).
 * Fills the wide third footer column left empty by the unused newsletter
 * widget. Site-wide internal links to the authority cluster.
 * ------------------------------------------------------------------- */
.sey-foot-explore {
  display: flex;
  gap: 48px;
  flex-wrap: wrap;
}
.sey-foot-links {
  display: flex;
  flex-direction: column;
  gap: 11px;
  min-width: 150px;
}
.sey-foot-links a {
  color: #63636b;
  font-size: 14px;
  line-height: 1.3;
  text-decoration: none;
  transition: color .15s ease;
}
.sey-foot-links a:hover,
.sey-foot-links a:focus {
  color: var(--sey-teal);
}

/* Small caption under a place guide's live data block. */
.sey-guide-datanote {
  margin: -6px 0 30px;
  font-size: 13px;
  line-height: 1.5;
  color: #8a8f8c;
}

/* ---------------------------------------------------------------------
 * Listing-page source hand-off card. Replaces the stock agent lead form
 * on single properties: attribution + link to the original agency + a
 * funnel into our own research. Honest aggregator, no lead interception.
 * ------------------------------------------------------------------- */
.sey-source-cta {
  background: #fff;
  border: 1px solid var(--sey-line);
  border-radius: var(--sey-radius);
}
.sey-source-tag {
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--sey-teal);
  background: rgba(15, 110, 86, .07);
  padding: 3px 9px;
  border-radius: 20px;
  margin-bottom: 12px;
}
.sey-source-title {
  font-size: 19px;
  margin: 0 0 8px;
  color: var(--sey-ink);
}
.sey-source-body {
  font-size: 14px;
  line-height: 1.55;
  color: #63636b;
  margin: 0 0 18px;
}
.sey-source-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  padding: 13px 18px;
  background: var(--sey-teal);
  color: #fff !important;
  font-weight: 600;
  font-size: 15px;
  text-decoration: none;
  border-radius: 8px;
  transition: background .15s ease;
}
.sey-source-btn:hover { background: #0c5946; color: #fff !important; }
.sey-source-btn svg { flex: 0 0 auto; }
.sey-source-research {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid var(--sey-line);
  display: flex;
  flex-direction: column;
  gap: 9px;
}
.sey-source-research-label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: #9aa09c;
}
.sey-source-research a {
  font-size: 14px;
  color: var(--sey-teal);
  text-decoration: none;
}
.sey-source-research a:hover { text-decoration: underline; }

/* Non-commercial: remove the mobile sticky agent-contact modal + its
 * trigger button. The honest source hand-off card (in the content column)
 * shows on mobile too, so buyers still reach the original agency. */
#mobile-property-form,
[data-bs-target="#mobile-property-form"] { display: none !important; }
