/*
Theme Name: Bosques del Santuario
Theme URI: https://bdspropiedades.cl
Description: Tema hijo de Astra para Bosques del Santuario · Gestión Inmobiliaria. Replica el diseño de BDS 2.0 (Astro) sobre WordPress, con soporte para Estatik.
Author: BDS
Version: 1.0.0
Template: astra
Text Domain: bds-child
*/

/* ==============================================================
   1. Design tokens — paleta derivada del logo
   ============================================================== */
:root {
  --bds-bg: #ffffff;
  --bds-surface: #f6f4ed;
  --bds-surface-2: #efeadd;
  --bds-ink: #17241d;
  --bds-muted: #5f6b62;
  --bds-line: #e7e2d4;

  --bds-brand: #2f6b43;
  --bds-brand-dark: #1f4a2e;
  --bds-brand-light: #5a9a6a;
  --bds-brand-tint: #edf3ee;

  --bds-accent: #c47a4a;
  --bds-accent-dark: #a8623a;
  --bds-accent-tint: #f8efe6;

  --bds-font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, sans-serif;
  --bds-font-display: "Spectral", ui-serif, Georgia, "Times New Roman", serif;

  --bds-radius-card: 18px;
  --bds-radius-lg: 14px;
  --bds-radius-pill: 999px;

  --bds-ease-out: cubic-bezier(0.23, 1, 0.32, 1);
  --bds-ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);
  --bds-ease-drawer: cubic-bezier(0.32, 0.72, 0, 1);

  --bds-shadow-sm: 0 1px 2px rgba(23, 36, 29, 0.05);
  --bds-shadow-card: 0 1px 2px rgba(23, 36, 29, 0.04), 0 10px 34px -16px rgba(23, 36, 29, 0.26);
  --bds-shadow-pop: 0 16px 50px -18px rgba(23, 36, 29, 0.34);

  --bds-header-h: 72px;
  --bds-container: 1320px;
}

@media (min-width: 1024px) {
  :root { --bds-header-h: 96px; }
}

/* ==============================================================
   2. Base
   ============================================================== */
*, *::before, *::after { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--bds-header-h) + 16px);
  -webkit-text-size-adjust: 100%;
}

body.bds {
  margin: 0;
  background: var(--bds-bg);
  color: var(--bds-ink);
  font-family: var(--bds-font-sans);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

.bds h1, .bds h2, .bds h3, .bds h4 {
  font-family: var(--bds-font-display);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.006em;
  color: var(--bds-ink);
  text-wrap: balance;
  margin: 0;
}

.bds p { margin: 0; text-wrap: pretty; }
.bds img { max-width: 100%; height: auto; display: block; -webkit-user-drag: none; }
.bds a { color: inherit; text-decoration: none; }
.bds ul { margin: 0; padding: 0; list-style: none; }

.bds ::selection { background: #cfe2d5; color: var(--bds-brand-dark); }

.bds :focus-visible {
  outline: 2px solid var(--bds-brand);
  outline-offset: 2px;
  border-radius: 4px;
}

.bds-sr {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.bds-skip:focus {
  position: fixed; left: 1rem; top: 1rem; z-index: 100; width: auto; height: auto;
  clip: auto; margin: 0; padding: 0.6rem 1rem; border-radius: 10px;
  background: var(--bds-brand); color: #fff;
}

/* Layout */
.bds-container {
  width: 100%;
  max-width: var(--bds-container);
  margin-inline: auto;
  padding-inline: 1.25rem;
}
@media (min-width: 640px) { .bds-container { padding-inline: 2rem; } }
@media (min-width: 1024px) { .bds-container { padding-inline: 3rem; } }
.bds-container--narrow { max-width: 768px; }

.bds-section { padding-block: 3.5rem; }
@media (min-width: 640px) { .bds-section { padding-block: 5rem; } }
.bds-section--tight { padding-block: 2.5rem; }
.bds-section--surface { background: var(--bds-surface); }

/* ==============================================================
   3. Utilidades de movimiento
   ============================================================== */
.bds-eyebrow {
  display: inline-flex; align-items: center; gap: 0.5rem;
  font-size: 0.78rem; font-weight: 600; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--bds-brand);
}
.bds-eyebrow::before {
  content: ""; width: 22px; height: 1px; background: currentColor; opacity: 0.6;
}

.press { transition: transform 160ms var(--bds-ease-out); }
.press:active { transform: scale(0.97); }

.lift { transition: transform 0.35s var(--bds-ease-out), box-shadow 0.35s var(--bds-ease-out); }
@media (hover: hover) and (pointer: fine) {
  .lift:hover { transform: translateY(-5px); }
}

.link-underline {
  background-image: linear-gradient(currentColor, currentColor);
  background-size: 0% 1.5px;
  background-position: 0 100%;
  background-repeat: no-repeat;
  transition: background-size 0.3s var(--bds-ease-out);
}
@media (hover: hover) { .link-underline:hover { background-size: 100% 1.5px; } }

.js .reveal {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 0.5s var(--bds-ease-out), transform 0.5s var(--bds-ease-out);
  transition-delay: var(--reveal-delay, 0ms);
}
.js .reveal[data-revealed] { opacity: 1; transform: none; }

.js .reveal-clip {
  clip-path: inset(0 0 100% 0);
  transition: clip-path 0.8s var(--bds-ease-out);
  transition-delay: var(--reveal-delay, 0ms);
}
.js .reveal-clip[data-revealed] { clip-path: inset(0 0 0 0); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    transition-duration: 0.001ms !important;
  }
  .reveal, .reveal-clip {
    opacity: 1 !important; transform: none !important; clip-path: none !important;
  }
}

/* ==============================================================
   4. Botones y badges
   ============================================================== */
.bds-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  height: 2.75rem; padding-inline: 1.25rem;
  border: 0; border-radius: var(--bds-radius-pill);
  font-family: inherit; font-size: 0.95rem; font-weight: 500;
  white-space: nowrap; cursor: pointer;
  transition: background-color 0.2s var(--bds-ease-out), color 0.2s var(--bds-ease-out),
              border-color 0.2s var(--bds-ease-out), transform 160ms var(--bds-ease-out);
}
.bds-btn:active { transform: scale(0.97); }
.bds-btn--sm { height: 2.25rem; padding-inline: 1rem; font-size: 0.875rem; }
.bds-btn--lg { height: 3.25rem; padding-inline: 1.75rem; font-size: 1rem; }

.bds-btn--primary { background: var(--bds-brand); color: #fff; box-shadow: var(--bds-shadow-sm); }
.bds-btn--primary:hover { background: var(--bds-brand-dark); color: #fff; }
.bds-btn--accent { background: var(--bds-accent); color: #fff; }
.bds-btn--accent:hover { background: var(--bds-accent-dark); }
.bds-btn--outline { background: transparent; color: var(--bds-ink); border: 1px solid rgba(23,36,29,0.15); }
.bds-btn--outline:hover { background: var(--bds-surface); border-color: rgba(23,36,29,0.35); }
.bds-btn--white { background: #fff; color: var(--bds-ink); box-shadow: var(--bds-shadow-card); }
.bds-btn--ghost-white { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,0.3); }
.bds-btn--ghost-white:hover { background: rgba(255,255,255,0.1); color: #fff; }
.bds-btn--block { width: 100%; }

.bds-badge {
  display: inline-flex; align-items: center; gap: 0.375rem;
  border-radius: var(--bds-radius-pill);
  padding: 0.25rem 0.75rem;
  font-size: 0.75rem; font-weight: 600; letter-spacing: 0.01em;
}
.bds-badge--brand { background: var(--bds-brand-tint); color: var(--bds-brand-dark); }
.bds-badge--accent { background: var(--bds-accent-tint); color: var(--bds-accent-dark); }
.bds-badge--solid { background: var(--bds-ink); color: #fff; }
.bds-badge--neutral { background: rgba(255,255,255,0.88); color: var(--bds-ink); box-shadow: inset 0 0 0 1px rgba(23,36,29,0.1); backdrop-filter: blur(6px); }
.bds-badge--warning { background: #fef3c7; color: #78350f; }

/* ==============================================================
   5. Header
   ============================================================== */
.bds-header {
  position: sticky; top: 0; z-index: 40;
  height: var(--bds-header-h);
  border-bottom: 1px solid rgba(231,226,212,0.8);
  background: rgba(255,255,255,0.82);
  backdrop-filter: blur(12px);
}
body.admin-bar .bds-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .bds-header { top: 46px; } }

.bds-header__inner {
  max-width: var(--bds-container);
  margin-inline: auto;
  height: 100%;
  padding-inline: 1.25rem;
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
}
@media (min-width: 640px) { .bds-header__inner { padding-inline: 2rem; } }
@media (min-width: 1024px) { .bds-header__inner { padding-inline: 3rem; } }

.bds-logo img { height: 48px; width: auto; }
@media (min-width: 640px) { .bds-logo img { height: 56px; } }
@media (min-width: 1024px) { .bds-logo img { height: 68px; } }
.bds-logo__text { font-family: var(--bds-font-display); font-size: 1.4rem; color: var(--bds-ink); }

.bds-nav { display: none; align-items: center; gap: 0.25rem; }
@media (min-width: 1024px) { .bds-nav { display: flex; } }
.bds-nav a {
  display: block; padding: 0.5rem 1rem; border-radius: var(--bds-radius-pill);
  font-size: 0.95rem; color: rgba(23,36,29,0.8);
  transition: background-color 0.2s var(--bds-ease-out), color 0.2s var(--bds-ease-out);
}
.bds-nav a:hover { background: var(--bds-surface); color: var(--bds-ink); }
.bds-nav .current-menu-item > a,
.bds-nav .current_page_item > a,
.bds-nav .current-menu-ancestor > a { color: var(--bds-brand); font-weight: 500; }

.bds-header__actions { display: flex; align-items: center; gap: 0.5rem; }
.bds-header__cta { display: none; }
@media (min-width: 640px) { .bds-header__cta { display: inline-flex; } }

.bds-burger {
  display: flex; align-items: center; justify-content: center;
  height: 2.75rem; width: 2.75rem; border: 0; border-radius: 999px;
  background: transparent; color: var(--bds-ink); cursor: pointer;
}
.bds-burger:hover { background: var(--bds-surface); }
@media (min-width: 1024px) { .bds-burger { display: none; } }

/* Drawer móvil */
.bds-drawer {
  position: fixed; inset: 0; z-index: 50;
  visibility: hidden; opacity: 0;
  transition: opacity 0.3s var(--bds-ease-out), visibility 0.3s var(--bds-ease-out);
}
.bds-drawer[data-open] { visibility: visible; opacity: 1; }
@media (min-width: 1024px) { .bds-drawer { display: none; } }
.bds-drawer__overlay { position: absolute; inset: 0; background: rgba(23,36,29,0.35); backdrop-filter: blur(4px); }
.bds-drawer__panel {
  position: absolute; right: 0; top: 0; height: 100%;
  width: min(86vw, 360px);
  display: flex; flex-direction: column;
  background: var(--bds-bg);
  box-shadow: var(--bds-shadow-pop);
  transform: translateX(100%);
  transition: transform 0.42s var(--bds-ease-drawer);
}
.bds-drawer[data-open] .bds-drawer__panel { transform: translateX(0); }
.bds-drawer__head {
  display: flex; align-items: center; justify-content: space-between;
  height: var(--bds-header-h); padding-inline: 1.25rem;
  border-bottom: 1px solid var(--bds-line);
  font-family: var(--bds-font-display); font-size: 1.125rem;
}
.bds-drawer__close {
  height: 2.75rem; width: 2.75rem; border: 0; border-radius: 999px;
  background: transparent; cursor: pointer; color: var(--bds-ink);
  display: flex; align-items: center; justify-content: center;
}
.bds-drawer__nav { flex: 1; display: flex; flex-direction: column; gap: 0.25rem; padding: 1rem; }
.bds-drawer__nav a {
  padding: 0.75rem 1rem; border-radius: var(--bds-radius-lg);
  font-size: 1.125rem; color: var(--bds-ink);
  transition: background-color 0.2s var(--bds-ease-out);
}
.bds-drawer__nav a:hover { background: var(--bds-surface); }
.bds-drawer__nav .current-menu-item > a { background: var(--bds-brand-tint); color: var(--bds-brand-dark); font-weight: 500; }
.bds-drawer__foot { border-top: 1px solid var(--bds-line); padding: 1rem; }
.bds-drawer__phone { display: block; margin-top: 0.75rem; text-align: center; font-size: 0.875rem; color: var(--bds-muted); }

/* ==============================================================
   6. Hero + buscador
   ============================================================== */
.bds-hero { position: relative; isolation: isolate; overflow: hidden; }
.bds-hero__bg {
  position: absolute; inset: 0; z-index: -2;
  width: 100%; height: 100%; object-fit: cover;
}
.bds-hero__veil {
  position: absolute; inset: 0; z-index: -1;
  background:
    linear-gradient(to bottom, rgba(23,36,29,0.62), rgba(23,36,29,0.42) 45%, rgba(23,36,29,0.82)),
    linear-gradient(to right, rgba(23,36,29,0.55), rgba(23,36,29,0.12) 62%, transparent);
}
.bds-hero__inner {
  display: flex; flex-direction: column; justify-content: center;
  min-height: min(calc(100svh - var(--bds-header-h)), 780px);
  padding-block: 4.5rem;
}
body.admin-bar .bds-hero__inner {
  min-height: min(calc(100svh - var(--bds-header-h) - 32px), 780px);
}
.bds-hero__kicker {
  display: inline-flex; align-items: center; gap: 0.65rem;
  font-size: 0.75rem; font-weight: 600; letter-spacing: 0.16em;
  text-transform: uppercase; color: rgba(255,255,255,0.85);
}
.bds-hero__kicker::before { content: ""; width: 28px; height: 1px; background: rgba(255,255,255,0.6); }
.bds-hero h1 {
  margin-top: 1.25rem;
  font-size: 2.5rem; line-height: 1.05;
  color: #e8a877;
  max-width: 40rem;
  text-shadow: 0 2px 24px rgba(23, 36, 29, 0.45);
}
@media (min-width: 640px) { .bds-hero h1 { font-size: 3.5rem; } }
@media (min-width: 1024px) { .bds-hero h1 { font-size: 4rem; } }
.bds-hero__lead {
  margin-top: 1.25rem; max-width: 34rem;
  font-size: 1.0625rem; color: rgba(255,255,255,0.94);
  text-shadow: 0 1px 14px rgba(23, 36, 29, 0.5);
}
.bds-hero__note {
  margin-top: 1.125rem; font-size: 0.875rem; color: rgba(255,255,255,0.78);
  text-shadow: 0 1px 12px rgba(23, 36, 29, 0.5);
}

.bds-search {
  margin-top: 2.25rem; width: 100%; max-width: 56rem;
  display: grid; gap: 0.75rem;
  padding: 0.75rem;
  border-radius: 1rem;
  background: rgba(255,255,255,0.95);
  box-shadow: var(--bds-shadow-pop);
  backdrop-filter: blur(8px);
}
@media (min-width: 640px) { .bds-search { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .bds-search { grid-template-columns: 1fr 1fr 1fr auto; } }

.bds-field { position: relative; display: block; }
.bds-field select, .bds-field input {
  height: 3rem; width: 100%;
  appearance: none;
  border: 1px solid var(--bds-line); border-radius: var(--bds-radius-lg);
  background: var(--bds-bg);
  padding: 0 2.25rem 0 0.875rem;
  font-family: inherit; font-size: 0.95rem; color: var(--bds-ink);
  transition: border-color 0.2s var(--bds-ease-out);
}
.bds-field input { padding-right: 0.875rem; }
.bds-field select:focus, .bds-field input:focus { border-color: var(--bds-brand); outline: none; }
.bds-field__chevron {
  position: absolute; right: 0.75rem; top: 50%; transform: translateY(-50%);
  pointer-events: none; color: var(--bds-muted); width: 1rem; height: 1rem;
}

/* ==============================================================
   7. Tarjetas de propiedad
   ============================================================== */
.bds-grid {
  display: grid; gap: 1.5rem;
  grid-template-columns: repeat(1, minmax(0, 1fr));
}
@media (min-width: 640px) { .bds-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .bds-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1280px) { .bds-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

.bds-card {
  display: block; overflow: hidden;
  border-radius: var(--bds-radius-card);
  background: var(--bds-bg);
  box-shadow: var(--bds-shadow-card), inset 0 0 0 1px rgba(231,226,212,0.7);
}
.bds-card__media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--bds-surface-2); }
.bds-card__media img {
  height: 100%; width: 100%; object-fit: cover;
  transition: transform 0.7s var(--bds-ease-out);
}
.bds-card:hover .bds-card__media img { transform: scale(1.05); }
.bds-card__tags { position: absolute; left: 0.75rem; top: 0.75rem; display: flex; gap: 0.5rem; }
.bds-card__body { padding: 1.25rem; }
.bds-card__kicker {
  font-size: 0.75rem; font-weight: 500; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--bds-muted);
}
.bds-card__title {
  margin-top: 0.375rem; font-family: var(--bds-font-display);
  font-size: 1.25rem; line-height: 1.3;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.bds-card__city { margin-top: 0.25rem; font-size: 0.875rem; color: var(--bds-muted); }
.bds-card__price {
  margin-top: 1rem; font-family: var(--bds-font-display);
  font-size: 1.5rem; color: var(--bds-brand-dark);
}
.bds-card__specs {
  margin-top: 1rem; padding-top: 1rem;
  border-top: 1px solid var(--bds-line);
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem 1rem;
  font-size: 0.875rem; color: rgba(23,36,29,0.7);
}
.bds-card__specs span { display: inline-flex; align-items: center; gap: 0.375rem; }
.bds-card__specs svg { width: 1rem; height: 1rem; color: var(--bds-brand); }

/* ==============================================================
   8. Zonas
   ============================================================== */
.bds-zonas { display: grid; gap: 1.25rem; grid-template-columns: repeat(1, minmax(0,1fr)); }
@media (min-width: 640px) { .bds-zonas { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (min-width: 1024px) { .bds-zonas { grid-template-columns: repeat(4, minmax(0,1fr)); } }
.bds-zona {
  position: relative; display: block; aspect-ratio: 3 / 4;
  overflow: hidden; border-radius: var(--bds-radius-card);
  box-shadow: var(--bds-shadow-card);
}
.bds-zona img {
  position: absolute; inset: 0; height: 100%; width: 100%; object-fit: cover;
  transition: transform 0.7s var(--bds-ease-out);
}
.bds-zona:hover img { transform: scale(1.06); }
.bds-zona__veil {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(23,36,29,0.9), rgba(23,36,29,0.42) 45%, rgba(23,36,29,0.1));
}
.bds-zona__body { position: absolute; inset-inline: 0; bottom: 0; padding: 1.25rem; color: #fff; }
.bds-zona__body h3 { font-family: var(--bds-font-display); font-size: 1.5rem; color: #fff; }
.bds-zona__body p { margin-top: 0.25rem; font-size: 0.875rem; color: rgba(255,255,255,0.8); }

/* ==============================================================
   9. Bloques de contenido
   ============================================================== */
.bds-split { display: grid; gap: 3rem; align-items: center; }
@media (min-width: 1024px) { .bds-split { grid-template-columns: repeat(2, minmax(0,1fr)); } }
.bds-media { overflow: hidden; border-radius: var(--bds-radius-card); box-shadow: var(--bds-shadow-card); }

.bds-title-lg { font-size: 2.25rem; }
@media (min-width: 640px) { .bds-title-lg { font-size: 3rem; } }
.bds-title-md { font-size: 1.875rem; }
@media (min-width: 640px) { .bds-title-md { font-size: 2.25rem; } }
.bds-lead { font-size: 1.125rem; color: var(--bds-muted); }
.bds-mt-3 { margin-top: 0.75rem; }
.bds-mt-4 { margin-top: 1rem; }
.bds-mt-6 { margin-top: 1.5rem; }
.bds-mt-8 { margin-top: 2rem; }
.bds-mt-10 { margin-top: 2.5rem; }

.bds-values { margin-top: 2rem; display: flex; flex-direction: column; gap: 1.5rem; }
.bds-value { display: flex; gap: 1rem; }
.bds-value__icon {
  flex: none; display: flex; align-items: center; justify-content: center;
  height: 2.75rem; width: 2.75rem; border-radius: 999px;
  background: var(--bds-brand-tint); color: var(--bds-brand);
}
.bds-value__icon svg { width: 1.25rem; height: 1.25rem; }
.bds-value h3 { font-family: var(--bds-font-display); font-size: 1.25rem; }
.bds-value p { margin-top: 0.25rem; color: var(--bds-muted); }

.bds-stats { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0,1fr)); }
@media (min-width: 1024px) { .bds-stats { grid-template-columns: repeat(4, minmax(0,1fr)); } }
.bds-stat {
  border-radius: var(--bds-radius-card); background: var(--bds-surface);
  padding: 1.5rem; text-align: center;
}
.bds-stat__value { font-family: var(--bds-font-display); font-size: 2rem; color: var(--bds-brand-dark); }
.bds-stat__label { margin-top: 0.25rem; font-size: 0.875rem; color: var(--bds-muted); }

.bds-cta {
  overflow: hidden; border-radius: var(--bds-radius-card);
  background: var(--bds-brand); color: #fff;
  padding: 3.5rem 1.5rem; text-align: center;
}
@media (min-width: 640px) { .bds-cta { padding: 5rem 3rem; } }
.bds-cta h2 { color: #fff; margin-inline: auto; max-width: 42rem; }
.bds-cta p { margin: 1rem auto 0; max-width: 36rem; color: rgba(255,255,255,0.85); font-size: 1.125rem; }
.bds-cta__actions { margin-top: 2rem; display: flex; flex-wrap: wrap; justify-content: center; gap: 0.75rem; }

/* ==============================================================
   10. Equipo y contacto
   ============================================================== */
.bds-team { display: grid; gap: 1.5rem; grid-template-columns: repeat(1, minmax(0,1fr)); }
@media (min-width: 640px) { .bds-team { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (min-width: 1024px) { .bds-team { grid-template-columns: repeat(3, minmax(0,1fr)); } }
.bds-agent {
  border-radius: var(--bds-radius-card); background: var(--bds-bg);
  box-shadow: var(--bds-shadow-card), inset 0 0 0 1px rgba(231,226,212,0.7);
  padding: 1.5rem; text-align: center;
}
.bds-agent img {
  margin-inline: auto; height: 7rem; width: 7rem; border-radius: 999px;
  object-fit: cover; box-shadow: 0 0 0 4px var(--bds-surface);
}
.bds-agent__name { margin-top: 1.25rem; font-family: var(--bds-font-display); font-size: 1.25rem; }
.bds-agent__role { font-size: 0.875rem; color: var(--bds-brand); }
.bds-agent__bio { margin-top: 0.75rem; font-size: 0.875rem; color: var(--bds-muted); }

.bds-contact-grid { display: grid; gap: 2.5rem; }
@media (min-width: 1024px) { .bds-contact-grid { grid-template-columns: 1fr 1.1fr; } }
.bds-contact-cards { display: grid; gap: 0.75rem; }
@media (min-width: 640px) { .bds-contact-cards { grid-template-columns: repeat(2, minmax(0,1fr)); } }
.bds-contact-card {
  display: block; border-radius: var(--bds-radius-card);
  border: 1px solid var(--bds-line); background: var(--bds-bg); padding: 1.25rem;
}
.bds-contact-card__icon {
  display: flex; align-items: center; justify-content: center;
  height: 2.5rem; width: 2.5rem; border-radius: 999px;
  background: var(--bds-brand-tint); color: var(--bds-brand);
}
.bds-contact-card__icon svg { width: 1.25rem; height: 1.25rem; }
.bds-contact-card__label {
  margin-top: 1rem; font-size: 0.75rem; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--bds-muted);
}
.bds-contact-card__value { margin-top: 0.125rem; font-weight: 500; }

.bds-form-wrap {
  border-radius: var(--bds-radius-card); background: var(--bds-surface);
  box-shadow: inset 0 0 0 1px rgba(231,226,212,0.7);
  padding: 1.5rem;
}
@media (min-width: 640px) { .bds-form-wrap { padding: 2rem; } }
.bds-form { display: flex; flex-direction: column; gap: 1rem; }
.bds-form__row { display: grid; gap: 1rem; }
@media (min-width: 640px) { .bds-form__row { grid-template-columns: repeat(2, minmax(0,1fr)); } }
.bds-form label { display: block; }
.bds-form__label { display: block; margin-bottom: 0.375rem; font-size: 0.875rem; font-weight: 500; }
.bds-form input, .bds-form textarea {
  width: 100%; height: 3rem;
  border: 1px solid var(--bds-line); border-radius: var(--bds-radius-lg);
  background: var(--bds-bg); padding: 0 1rem;
  font-family: inherit; font-size: 0.95rem; color: var(--bds-ink);
  transition: border-color 0.2s var(--bds-ease-out);
}
.bds-form textarea { height: auto; min-height: 130px; padding: 1rem; resize: vertical; }
.bds-form input:focus, .bds-form textarea:focus { border-color: var(--bds-brand); outline: none; }
.bds-form__note { text-align: center; font-size: 0.75rem; color: var(--bds-muted); }
.bds-form__error { font-size: 0.875rem; color: #b91c1c; }
.bds-form__hp { position: absolute; left: -9999px; }

.bds-success { display: none; flex-direction: column; align-items: center; padding-block: 2.5rem; text-align: center; }
.bds-success.is-open { display: flex; }
.bds-success__check {
  display: flex; align-items: center; justify-content: center;
  height: 4rem; width: 4rem; border-radius: 999px;
  background: var(--bds-brand-tint); color: var(--bds-brand);
  transform: scale(0.9); opacity: 0;
  transition: transform 0.4s var(--bds-ease-out), opacity 0.4s var(--bds-ease-out);
}
.bds-success.is-open .bds-success__check { transform: scale(1); opacity: 1; }

/* ==============================================================
   11. WhatsApp flotante
   ============================================================== */
.bds-wa {
  position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 45;
  display: flex; align-items: center; justify-content: center;
  height: 3.5rem; width: 3.5rem; border-radius: 999px;
  background: #25d366; color: #fff;
  box-shadow: var(--bds-shadow-pop);
  transition: transform 0.2s var(--bds-ease-out);
}
.bds-wa:hover { transform: scale(1.05); color: #fff; }
.bds-wa svg { height: 1.75rem; width: 1.75rem; }

/* ==============================================================
   12. Footer
   ============================================================== */
.bds-footer { margin-top: 2rem; background: var(--bds-ink); color: rgba(255,255,255,0.85); }
.bds-footer__inner {
  max-width: var(--bds-container); margin-inline: auto;
  padding: 4rem 1.25rem;
}
@media (min-width: 640px) { .bds-footer__inner { padding-inline: 2rem; } }
@media (min-width: 1024px) { .bds-footer__inner { padding-inline: 3rem; } }
.bds-footer__cols { display: grid; gap: 3rem; }
@media (min-width: 768px) { .bds-footer__cols { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (min-width: 1024px) { .bds-footer__cols { grid-template-columns: 1.5fr 1fr 1fr 1.4fr; } }
.bds-footer__brand { font-family: var(--bds-font-display); font-size: 1.5rem; color: #fff; }
.bds-footer__legal { margin-top: 0.25rem; font-size: 0.875rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--bds-brand-light); }
.bds-footer__tagline { margin-top: 1.25rem; max-width: 20rem; font-size: 0.875rem; color: rgba(255,255,255,0.65); }
.bds-footer h3 {
  font-family: var(--bds-font-sans); font-size: 0.875rem; font-weight: 600;
  letter-spacing: 0.06em; text-transform: uppercase; color: rgba(255,255,255,0.5);
}
.bds-footer ul { margin-top: 1rem; display: flex; flex-direction: column; gap: 0.625rem; font-size: 0.875rem; }
.bds-footer a { color: rgba(255,255,255,0.75); transition: color 0.2s var(--bds-ease-out); }
.bds-footer a:hover { color: #fff; }
.bds-footer__address { color: rgba(255,255,255,0.6); }
.bds-socials { margin-top: 1.5rem; display: flex; gap: 0.75rem; }
.bds-socials a {
  display: flex; align-items: center; justify-content: center;
  height: 2.5rem; width: 2.5rem; border-radius: 999px;
  background: rgba(255,255,255,0.1); color: #fff;
  transition: background-color 0.2s var(--bds-ease-out);
}
.bds-socials a:hover { background: rgba(255,255,255,0.2); }
.bds-socials svg { height: 1.25rem; width: 1.25rem; }
.bds-footer__bottom {
  margin-top: 3.5rem; padding-top: 1.5rem;
  border-top: 1px solid rgba(255,255,255,0.1);
  display: flex; flex-direction: column; gap: 0.5rem;
  font-size: 0.75rem; color: rgba(255,255,255,0.45);
}
@media (min-width: 640px) {
  .bds-footer__bottom { flex-direction: row; align-items: center; justify-content: space-between; }
}

/* ==============================================================
   13. Neutralizar contenedores de Astra
   ============================================================== */
.bds #page, .bds .site-content, .bds #primary, .bds #content { padding: 0; margin: 0; max-width: none; }
.bds .ast-container, .bds .ast-container-fluid { max-width: none; padding: 0; }
.bds .site-header, .bds .site-footer, .bds .ast-above-header, .bds .ast-below-header { display: none !important; }
.bds .entry-content > *:first-child { margin-top: 0; }


/* Astra colorea los <a> con mas peso que nuestras clases: forzamos el color del boton. */
.bds a.bds-btn--primary, .bds a.bds-btn--primary:visited, .bds a.bds-btn--primary:hover { color: #fff; }
.bds a.bds-btn--white, .bds a.bds-btn--white:visited { color: var(--bds-ink); }
.bds a.bds-btn--white:hover { color: var(--bds-brand-dark); background: #fff; }
.bds a.bds-btn--ghost-white, .bds a.bds-btn--ghost-white:visited, .bds a.bds-btn--ghost-white:hover { color: #fff; }
.bds a.bds-btn--outline, .bds a.bds-btn--outline:visited { color: var(--bds-ink); }
.bds .bds-nav a:hover { color: var(--bds-ink); }

/* El boton «volver arriba» de Astra rompe la paleta y choca con el de WhatsApp. */
.bds #ast-scroll-top { display: none !important; }

/* Separaciones: sin huecos muertos entre la ultima seccion y el pie. */
.bds .bds-footer { margin-top: 0; }
.bds .bds-cta { margin-bottom: 0; }

/* Astra fuerza tipografias propias en titulos y controles. */
.bds h1, .bds h2, .bds h3, .bds h4 { font-family: var(--bds-font-display); }
.bds .bds-btn, .bds button, .bds input, .bds select, .bds textarea { font-family: var(--bds-font-sans); }

/* Catalogo de propiedades */
.bds-catalog__bar {
  position: sticky; top: var(--bds-header-h); z-index: 30;
  background: rgba(255,255,255,0.92); backdrop-filter: blur(10px);
  border-top: 1px solid var(--bds-line); border-bottom: 1px solid var(--bds-line);
}
body.admin-bar .bds-catalog__bar { top: calc(var(--bds-header-h) + 32px); }
@media (max-width: 782px) { body.admin-bar .bds-catalog__bar { top: var(--bds-header-h); } }
.bds-catalog .bds-field input { height: 2.75rem; }
.bds-prop[hidden] { display: none; }

/* wp_nav_menu imprime un <ul>: el flex tiene que vivir ahi, no en el contenedor. */
.bds-nav ul { display: flex; align-items: center; gap: 0.25rem; margin: 0; padding: 0; list-style: none; }
.bds-nav ul li { list-style: none; margin: 0; }
.bds-nav ul ul { display: none; }
.bds-drawer__nav ul { display: flex; flex-direction: column; gap: 0.25rem; margin: 0; padding: 0; list-style: none; }
.bds-drawer__nav ul li { list-style: none; margin: 0; }
.bds-drawer__nav ul a { display: block; padding: 0.75rem 1rem; border-radius: var(--bds-radius-lg); font-size: 1.125rem; }
.bds-drawer__nav ul a:hover { background: var(--bds-surface); }
.bds-footer nav ul { margin-top: 1rem; }
