/* =========================================================
   EL MAUCO GESTIÓN INMOBILIARIA
   Sistema de diseño — v1 (provisional, listo para ajustar)
   Todos los colores y tipografías se cambian SOLO aquí.
   ========================================================= */

:root{
  /* --- Paleta de marca (extraída del logotipo oficial) --- */
  --verde-900:#16291D;   /* fondo oscuro / footer */
  --verde-800:#254230;   /* VERDE BOSQUE del logo */
  --verde-700:#2F5540;   /* hover oscuro */
  --verde-500:#3E6B4E;   /* verde medio */
  --oliva-600:#46632B;   /* VERDE OLIVA del logo (acento sobre claro) */
  --oliva-300:#9BBA63;   /* oliva claro (acento sobre oscuro) */
  --arena-100:#F5F4EF;   /* fondo claro */
  --arena-200:#E5E4DB;   /* bordes suaves */
  --tinta-900:#1A1D19;   /* texto principal */
  --tinta-600:#585C55;   /* texto secundario */
  --tinta-400:#8A8E86;   /* texto terciario */
  --blanco:#FFFFFF;

  /* --- Roles semánticos --- */
  --bg:var(--blanco);
  --bg-alt:var(--arena-100);
  --bg-dark:var(--verde-800);
  --text:var(--tinta-900);
  --text-muted:var(--tinta-600);
  --brand:var(--verde-800);
  --accent:var(--oliva-600);
  --border:var(--arena-200);

  /* --- Tipografía --- */
  --font-display:"Montserrat","Inter","Helvetica Neue",Arial,sans-serif;
  --font-body:"Inter","Helvetica Neue",Arial,system-ui,-apple-system,sans-serif;

  /* Escala fluida */
  --fs-xs:.8125rem;
  --fs-sm:.9375rem;
  --fs-base:clamp(1rem,.97rem + .15vw,1.0625rem);
  --fs-lg:clamp(1.125rem,1.05rem + .35vw,1.3125rem);
  --fs-xl:clamp(1.375rem,1.2rem + .8vw,1.75rem);
  --fs-2xl:clamp(1.75rem,1.4rem + 1.6vw,2.5rem);
  --fs-3xl:clamp(2.125rem,1.6rem + 2.6vw,3.5rem);
  --fs-4xl:clamp(2.5rem,1.7rem + 3.6vw,4.5rem);

  /* Espaciado */
  --sp-1:.25rem; --sp-2:.5rem; --sp-3:.75rem; --sp-4:1rem;
  --sp-5:1.5rem; --sp-6:2rem; --sp-7:3rem; --sp-8:4rem;
  --sp-9:clamp(3.5rem,8vw,7rem);

  --radius:4px;
  --radius-lg:10px;
  --shadow-sm:0 1px 2px rgba(18,39,31,.06),0 2px 8px rgba(18,39,31,.05);
  --shadow-md:0 8px 30px rgba(18,39,31,.10);
  --container:1200px;
  --header-h:94px;
  --ease:cubic-bezier(.2,.7,.3,1);
}

/* ---------------- Reset ---------------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px)}
body{
  margin:0;background:var(--bg);color:var(--text);
  font-family:var(--font-body);font-size:var(--fs-base);line-height:1.65;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img,picture,video,svg{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.12;margin:0 0 var(--sp-4);letter-spacing:-.015em}
h1{font-size:var(--fs-4xl)}
h2{font-size:var(--fs-3xl)}
h3{font-size:var(--fs-xl)}
h4{font-size:var(--fs-lg)}
p{margin:0 0 var(--sp-4)}
ul{margin:0 0 var(--sp-4);padding-left:1.15rem}
:focus-visible{outline:3px solid var(--oliva-300);outline-offset:3px;border-radius:2px}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--verde-800);color:#fff;padding:.75rem 1.25rem;z-index:200}
.skip-link:focus{left:0}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* ---------------- Layout ---------------- */
.container{width:min(100% - 2.5rem,var(--container));margin-inline:auto}
.section{padding-block:var(--sp-9)}
.section--alt{background:var(--bg-alt)}
.section--dark{background:var(--bg-dark);color:#fff}
.section--dark p{color:rgba(255,255,255,.82)}
.section--tight{padding-block:var(--sp-8)}
.grid{display:grid;gap:var(--sp-5)}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(285px,1fr))}
.grid-4{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.stack>*+*{margin-top:var(--sp-4)}
.text-center{text-align:center}
.mx-auto{margin-inline:auto}
.measure{max-width:64ch}
.measure-center{max-width:64ch;margin-inline:auto;text-align:center}

/* ---------------- Tipografía utilitaria ---------------- */
.eyebrow{
  font-family:var(--font-body);font-size:var(--fs-xs);font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:var(--accent);
  margin:0 0 var(--sp-3);display:block;
}
.section--dark .eyebrow{color:var(--oliva-300)}
.lead{font-size:var(--fs-lg);color:var(--text-muted);line-height:1.55}
.section--dark .lead{color:rgba(255,255,255,.85)}
.rule{width:56px;height:2px;background:var(--accent);border:0;margin:0 0 var(--sp-5)}
.rule--center{margin-inline:auto}

/* ---------------- Botones ---------------- */
.btn{
  --btn-bg:var(--verde-800);--btn-fg:#fff;--btn-bd:var(--verde-800);
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  padding:.95rem 1.6rem;background:var(--btn-bg);color:var(--btn-fg);
  border:1.5px solid var(--btn-bd);border-radius:var(--radius);cursor:pointer;
  font-size:var(--fs-sm);font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  transition:transform .25s var(--ease),background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease);
  text-align:center;
}
.btn:hover{transform:translateY(-2px);--btn-bg:var(--verde-700);--btn-bd:var(--verde-700)}
.btn--accent{--btn-bg:var(--oliva-600);--btn-bd:var(--oliva-600);--btn-fg:#fff;position:relative;overflow:hidden}
/* Destello que recorre el botón para invitar al clic */
.btn--accent::after{
  content:"";position:absolute;top:-20%;left:-140%;width:55%;height:140%;pointer-events:none;
  background:linear-gradient(100deg,transparent 0%,rgba(255,255,255,.10) 35%,rgba(255,255,255,.42) 50%,rgba(255,255,255,.10) 65%,transparent 100%);
  transform:skewX(-22deg);animation:destello 4.5s ease-in-out infinite;
}
@keyframes destello{
  0%{left:-140%}
  22%{left:150%}
  100%{left:150%}
}
.btn--accent:hover::after{animation-duration:1.1s}
.btn--accent:hover{box-shadow:0 8px 26px rgba(70,99,43,.38)}
@media (prefers-reduced-motion:reduce){.btn--accent::after{animation:none;display:none}}
.btn--accent:hover{--btn-bg:#54763A;--btn-bd:#54763A}
.btn--ghost{--btn-bg:transparent;--btn-fg:var(--verde-800);--btn-bd:var(--verde-800)}
.btn--ghost:hover{--btn-bg:var(--verde-800);--btn-fg:#fff}
.btn--light{--btn-bg:transparent;--btn-fg:#fff;--btn-bd:rgba(255,255,255,.55)}
.btn--light:hover{--btn-bg:#fff;--btn-fg:var(--verde-900);--btn-bd:#fff}
.btn--sm{padding:.6rem 1.1rem;font-size:var(--fs-xs)}
.header__cta .btn{padding:.7rem 1.15rem;font-size:.6875rem;letter-spacing:.07em}
.btn--block{width:100%}
.btn-row{display:flex;flex-wrap:wrap;gap:var(--sp-3)}
.btn-row--center{justify-content:center}

/* ---------------- Header ---------------- */
.header{
  position:sticky;top:0;z-index:100;background:rgba(255,255,255,.92);
  backdrop-filter:saturate(150%) blur(10px);border-bottom:1px solid var(--border);
  transition:box-shadow .3s var(--ease);
}
.header.is-scrolled{box-shadow:var(--shadow-sm)}
.header__inner{display:flex;align-items:center;gap:var(--sp-6);height:var(--header-h)}
.logo{display:flex;align-items:center;gap:.7rem;flex-shrink:0}
.logo__mark{width:38px;height:38px;flex-shrink:0}
.logo__text{display:flex;flex-direction:column;line-height:1}
.logo__name{font-family:var(--font-display);font-size:1.15rem;font-weight:700;letter-spacing:.02em;color:var(--verde-800)}
.logo__tag{font-size:.5625rem;letter-spacing:.22em;text-transform:uppercase;color:var(--tinta-400);margin-top:3px}
.nav{margin-left:auto}
.nav__list{display:flex;align-items:center;gap:1.55rem;list-style:none;margin:0;padding:0}
.nav__link{
  position:relative;font-size:.8125rem;font-weight:600;letter-spacing:.09em;
  text-transform:uppercase;padding-block:.5rem;color:var(--tinta-600);transition:color .2s var(--ease);white-space:nowrap;
}
.nav__link::after{
  content:"";position:absolute;left:0;bottom:0;width:100%;height:1.5px;background:var(--accent);
  transform:scaleX(0);transform-origin:right;transition:transform .3s var(--ease);
}
.nav__link:hover,.nav__link[aria-current="page"]{color:var(--verde-800)}
.nav__link:hover::after,.nav__link[aria-current="page"]::after{transform:scaleX(1);transform-origin:left}
.header__cta{flex-shrink:0}
.nav-toggle{
  display:none;margin-left:auto;width:44px;height:44px;background:none;border:1px solid var(--border);
  border-radius:var(--radius);cursor:pointer;align-items:center;justify-content:center;
}
.nav-toggle__bars,.nav-toggle__bars::before,.nav-toggle__bars::after{
  display:block;width:20px;height:2px;background:var(--verde-800);transition:transform .3s var(--ease),opacity .2s
}
.nav-toggle__bars{position:relative}
.nav-toggle__bars::before,.nav-toggle__bars::after{content:"";position:absolute;left:0}
.nav-toggle__bars::before{top:-6px}
.nav-toggle__bars::after{top:6px}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars{background:transparent}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::before{transform:translateY(6px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::after{transform:translateY(-6px) rotate(-45deg)}

@media (max-width:1040px){
  .nav{
    position:fixed;inset:var(--header-h) 0 auto 0;background:#fff;border-bottom:1px solid var(--border);
    padding:var(--sp-5) 1.25rem var(--sp-6);margin:0;
    transform:translateY(-120%);transition:transform .35s var(--ease);box-shadow:var(--shadow-md);
    max-height:calc(100dvh - var(--header-h));overflow-y:auto;
  }
  .nav.is-open{transform:translateY(0)}
  .nav__list{flex-direction:column;align-items:stretch;gap:0}
  .nav__link{display:block;padding:.95rem 0;border-bottom:1px solid var(--border);font-size:.9375rem;letter-spacing:.06em}
  .nav__link::after{display:none}
  .nav__cta-mobile{margin-top:var(--sp-5)}
  .nav-toggle{display:inline-flex}
  .header__cta{display:none}
}
@media (min-width:1041px){.nav__cta-mobile{display:none}}

/* ---------------- Hero ---------------- */
.hero{position:relative;background:var(--verde-900);color:#fff;overflow:hidden;isolation:isolate}
.hero__media{position:absolute;inset:0;z-index:-2}
.hero__media img{width:100%;height:100%;object-fit:cover;opacity:.58}
.hero::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(100deg,rgba(22,41,29,.94) 0%,rgba(22,41,29,.84) 50%,rgba(22,41,29,.70) 100%);
}
.hero__inner{padding-block:clamp(4.5rem,12vw,9rem);max-width:760px}
.hero .eyebrow{color:#D4E7B4;text-shadow:0 1px 10px rgba(10,20,14,.65)}
.hero h1{color:#fff;margin-bottom:var(--sp-5);text-wrap:balance;text-shadow:0 2px 18px rgba(10,20,14,.45)}
.hero__sub,.hero__text{text-shadow:0 1px 12px rgba(10,20,14,.5)}
.hero h1 em{font-style:normal;color:var(--oliva-300)}
.hero__sub{font-size:var(--fs-lg);color:rgba(255,255,255,.9);max-width:56ch;margin-bottom:var(--sp-4)}
.hero__text{color:rgba(255,255,255,.72);max-width:60ch;margin-bottom:var(--sp-6)}
.hero--page .hero__inner{padding-block:clamp(3.5rem,8vw,6rem);max-width:840px}
.hero--page h1{font-size:var(--fs-3xl)}

/* Barra "¿qué necesitas?" */
.needs-bar{background:var(--verde-800);border-top:1px solid rgba(255,255,255,.12)}
.needs-bar__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--sp-3) var(--sp-5);padding-block:1.1rem;text-align:center}
.needs-bar__label{font-size:var(--fs-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--oliva-300);font-weight:600}
.needs-bar__links{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem 1.5rem;list-style:none;margin:0;padding:0}
.needs-bar__links a{
  font-size:var(--fs-sm);letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.82);
  padding-bottom:2px;border-bottom:1px solid transparent;transition:color .2s,border-color .2s;
}
.needs-bar__links a:hover{color:#fff;border-color:var(--oliva-300)}

/* ---------------- Tarjetas de servicio ---------------- */
.card{
  background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:var(--sp-6) var(--sp-5);height:100%;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease);
}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--verde-500)}
.card__icon{width:44px;height:44px;color:var(--accent);margin-bottom:var(--sp-4)}
.card h3{font-size:var(--fs-lg);margin-bottom:var(--sp-2)}
.card p{color:var(--text-muted);font-size:var(--fs-sm);margin:0}
.card__link{
  display:inline-flex;align-items:center;gap:.4rem;margin-top:var(--sp-4);
  font-size:var(--fs-xs);font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--verde-800)
}
.card__link:hover{color:var(--accent)}
a.card{display:block;color:inherit}

/* ---- Tarjeta con icono centrado y animado ---- */
.card--centro{text-align:center;display:flex;flex-direction:column;align-items:center}
.card__badge{
  width:74px;height:74px;border-radius:50%;display:grid;place-items:center;margin-bottom:var(--sp-4);
  background:var(--arena-100);border:1px solid var(--border);color:var(--oliva-600);
  transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease),transform .35s var(--ease);
}
.card__badge svg{width:34px;height:34px;transition:transform .45s var(--ease)}
.card--centro:hover .card__badge{background:var(--verde-800);border-color:var(--verde-800);color:#fff;transform:translateY(-4px) scale(1.06)}
.card--centro:hover .card__badge svg{transform:scale(1.12) rotate(-6deg)}
.card--centro h3{margin-bottom:var(--sp-2)}
.card--centro p{margin:0}

/* Entrada: el icono aparece con un pequeño rebote, escalonado por tarjeta */
@keyframes badgeIn{
  0%{opacity:0;transform:scale(.6) translateY(10px)}
  60%{opacity:1;transform:scale(1.08) translateY(0)}
  100%{opacity:1;transform:scale(1) translateY(0)}
}
@keyframes badgeDraw{from{stroke-dashoffset:120}to{stroke-dashoffset:0}}
html.js .reveal .card__badge{opacity:0}
html.js .reveal.is-visible .card__badge{
  animation:badgeIn .55s var(--ease) forwards;
  animation-delay:calc(var(--i,0) * 90ms);
}
html.js .reveal.is-visible .card__badge svg *{
  stroke-dasharray:120;animation:badgeDraw .9s var(--ease) forwards;
  animation-delay:calc(var(--i,0) * 90ms + 120ms);
}
@media (prefers-reduced-motion:reduce){
  html.js .reveal .card__badge{opacity:1}
  html.js .reveal.is-visible .card__badge,
  html.js .reveal.is-visible .card__badge svg *{animation:none}
}

/* Valores (4 columnas simples) */
.value{padding:var(--sp-5) 0}
.value__num{font-family:var(--font-display);font-size:var(--fs-xl);color:var(--accent);display:block;margin-bottom:var(--sp-2)}
.value__head{display:flex;align-items:center;gap:.6rem;margin-bottom:var(--sp-3)}
.value__head .value__num{margin:0}
.value__icon{width:32px;height:32px;color:var(--oliva-600);flex-shrink:0}
.section--dark .value__icon{color:var(--oliva-300)}
.value h3{font-size:1.0625rem;letter-spacing:.08em;text-transform:uppercase;font-family:var(--font-body);font-weight:700;margin-bottom:var(--sp-2)}
.value p{color:var(--text-muted);font-size:var(--fs-sm);margin:0}
.section--dark .value p{color:rgba(255,255,255,.75)}
.section--dark .step p,.section--dark .check-list li{color:rgba(255,255,255,.8)}
.section--dark .step h3{color:#fff}
.section--dark .step{border-top-color:rgba(255,255,255,.25)}
.section--dark .value h3{color:#fff}

/* Lista con checks */
.check-list{list-style:none;padding:0;margin:0;display:grid;gap:.7rem}
.check-list li{position:relative;padding-left:1.9rem;color:var(--text-muted)}
.check-list li::before{
  content:"";position:absolute;left:0;top:.5em;width:11px;height:6px;border-left:2px solid var(--accent);
  border-bottom:2px solid var(--accent);transform:rotate(-45deg)
}
.check-list--2{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.7rem var(--sp-5)}

/* Proceso numerado */
.steps{counter-reset:step;display:grid;gap:var(--sp-5);grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.step{position:relative;padding-top:var(--sp-5);border-top:2px solid var(--border)}
.step::before{
  counter-increment:step;content:"0" counter(step);
  font-family:var(--font-display);font-size:var(--fs-xl);color:var(--accent);display:block;margin-bottom:var(--sp-2)
}
.step h3{font-size:1.0625rem;margin-bottom:var(--sp-2)}
.step p{color:var(--text-muted);font-size:var(--fs-sm);margin:0}

/* Variante de 5 columnas en una sola línea, con icono */
.steps--5{grid-template-columns:repeat(5,1fr);gap:var(--sp-4)}
.steps--6{grid-template-columns:repeat(6,1fr);gap:var(--sp-4)}
.steps--4{grid-template-columns:repeat(4,1fr);gap:var(--sp-5)}
@media (max-width:1280px){.steps--6{grid-template-columns:repeat(3,1fr)}}
@media (max-width:900px){.steps--4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:720px){.steps--6{grid-template-columns:repeat(2,1fr)}}
@media (max-width:460px){.steps--6,.steps--4{grid-template-columns:1fr}}
.steps--6 .step h3{font-size:1rem;line-height:1.25}
.steps--6 .step p{font-size:var(--fs-xs);line-height:1.6}
@media (max-width:1100px){.steps--5{grid-template-columns:repeat(3,1fr)}}
@media (max-width:720px){.steps--5{grid-template-columns:repeat(2,1fr)}}
@media (max-width:460px){.steps--5{grid-template-columns:1fr}}
.step--icon::before{display:none}
.step__head{display:flex;align-items:center;gap:.6rem;margin-bottom:var(--sp-3)}
.step__icon{width:30px;height:30px;color:var(--oliva-600);flex-shrink:0}
.section--dark .step__icon{color:var(--oliva-300)}
.step__num{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:600;color:var(--accent);line-height:1}
.section--dark .step__num{color:var(--oliva-300)}
.steps--5 .step h3{font-size:1rem;line-height:1.25}
.steps--5 .step p{font-size:var(--fs-xs);line-height:1.6}

/* Split (texto + imagen) */
.split{display:grid;gap:var(--sp-7);align-items:center;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.split__media{border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:4/3;background:var(--arena-200)}
.split__media img{width:100%;height:100%;object-fit:cover}
@media (min-width:900px){.split--reverse .split__media{order:2}}

/* Frase destacada */
.quote{text-align:center;max-width:52ch;margin-inline:auto}
.quote h2{font-size:var(--fs-2xl);line-height:1.2;color:#fff;margin-bottom:var(--sp-4)}
.quote h2 span{display:block;color:var(--oliva-300)}

/* ---------------- Propiedades ---------------- */
.filters{
  background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:var(--sp-5);box-shadow:var(--shadow-sm);margin-bottom:var(--sp-6)
}
.filters__grid{display:grid;gap:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:end}
.field{display:flex;flex-direction:column;gap:.4rem}
.field label{font-size:var(--fs-xs);font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--tinta-600)}
.field input,.field select,.field textarea{
  width:100%;padding:.8rem .9rem;background:#fff;border:1px solid var(--border);border-radius:var(--radius);
  transition:border-color .2s,box-shadow .2s;font-size:var(--fs-sm)
}
.field input:focus,.field select:focus,.field textarea:focus{
  border-color:var(--verde-500);box-shadow:0 0 0 3px rgba(62,122,99,.15);outline:none
}
.field textarea{min-height:130px;resize:vertical}

/* ---- Select personalizado (reemplaza el desplegable del sistema) ---- */
.select{position:relative}
.select select{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
.select__btn{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:.75rem;
  padding:.8rem .9rem;background:#fff;border:1px solid var(--border);border-radius:var(--radius);
  font-size:var(--fs-sm);color:var(--text);cursor:pointer;text-align:left;
  transition:border-color .2s,box-shadow .2s;
}
.select__btn:hover{border-color:var(--verde-500)}
.select__btn[aria-expanded="true"]{border-color:var(--verde-500);box-shadow:0 0 0 3px rgba(62,107,78,.15)}
.select__btn::after{
  content:"";width:8px;height:8px;flex-shrink:0;border-right:2px solid var(--verde-800);
  border-bottom:2px solid var(--verde-800);transform:rotate(45deg) translateY(-2px);transition:transform .25s var(--ease)
}
.select__btn[aria-expanded="true"]::after{transform:rotate(-135deg) translateY(-2px)}
.select__value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.select__list{
  position:absolute;z-index:60;top:calc(100% + 6px);left:0;right:0;max-height:280px;overflow-y:auto;
  background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);
  padding:.35rem;margin:0;list-style:none;display:none;
}
.select__list.is-open{display:block}
.select__option{
  padding:.6rem .75rem;border-radius:var(--radius);font-size:var(--fs-sm);cursor:pointer;
  display:flex;align-items:center;justify-content:space-between;gap:.5rem;color:var(--text-muted)
}
.select__option:hover,.select__option.is-active{background:var(--arena-100);color:var(--text)}
.select__option[aria-selected="true"]{color:var(--verde-800);font-weight:600}
.select__option[aria-selected="true"]::after{
  content:"";width:10px;height:6px;border-left:2px solid var(--oliva-600);border-bottom:2px solid var(--oliva-600);
  transform:rotate(-45deg);flex-shrink:0;margin-bottom:3px
}
.field.has-error .select__btn{border-color:#B04226}
.filters__meta{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-5)}
.filters__count{font-size:var(--fs-sm);color:var(--text-muted)}
.filters__count strong{color:var(--text)}

.property-card{
  display:flex;flex-direction:column;background:#fff;border:1px solid var(--border);
  border-radius:var(--radius-lg);overflow:hidden;height:100%;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease)
}
.property-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.property-card__media{position:relative;aspect-ratio:4/3;background:var(--arena-200);overflow:hidden}
.property-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.property-card:hover .property-card__media img{transform:scale(1.05)}
.badge{
  position:absolute;top:.85rem;left:.85rem;padding:.35rem .7rem;border-radius:2px;background:var(--verde-800);
  color:#fff;font-size:.6875rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase
}
.badge--venta{background:var(--oliva-600);color:#fff}
.property-card__body{padding:var(--sp-5);display:flex;flex-direction:column;flex:1}
.property-card__type{font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--tinta-400);margin-bottom:.4rem}
.property-card__title{font-size:1.125rem;margin-bottom:.3rem}
.property-card__loc{font-size:var(--fs-sm);color:var(--text-muted);margin-bottom:var(--sp-4)}
.property-card__price{font-family:var(--font-display);font-size:1.375rem;color:var(--verde-800);margin-bottom:var(--sp-4)}
.property-card__price small{font-family:var(--font-body);font-size:var(--fs-xs);color:var(--tinta-400);display:block;font-weight:500}
.specs{display:flex;flex-wrap:wrap;gap:1rem;list-style:none;padding:var(--sp-4) 0 0;margin:auto 0 0;border-top:1px solid var(--border)}
.specs li{display:flex;align-items:center;gap:.4rem;font-size:var(--fs-sm);color:var(--text-muted)}
.specs svg{width:17px;height:17px;color:var(--verde-500);flex-shrink:0}
.empty-state{text-align:center;padding:var(--sp-8) var(--sp-4);border:1px dashed var(--border);border-radius:var(--radius-lg);color:var(--text-muted)}

/* Ficha de propiedad */
.breadcrumb{font-size:var(--fs-xs);letter-spacing:.06em;color:var(--tinta-400);padding-block:var(--sp-4)}
.breadcrumb a:hover{color:var(--verde-800)}
.gallery{display:grid;gap:var(--sp-3);grid-template-columns:2fr 1fr;border-radius:var(--radius-lg);overflow:hidden}
.gallery__main{aspect-ratio:16/11;background:var(--arena-200)}
.gallery__side{display:grid;gap:var(--sp-3)}
.gallery img{width:100%;height:100%;object-fit:cover}
.gallery__side>*{aspect-ratio:4/3;background:var(--arena-200)}
@media (max-width:760px){.gallery{grid-template-columns:1fr}.gallery__side{grid-template-columns:1fr 1fr}}
/* ---------------- Video de la propiedad ---------------- */
.video-bloque{margin-top:var(--sp-6)}
.video-bloque .eyebrow{margin-bottom:var(--sp-3)}
.video-marco{
  position:relative;width:100%;aspect-ratio:16/9;background:var(--verde-900);
  border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)
}
.video-marco video,.video-marco iframe{width:100%;height:100%;display:block;border:0;object-fit:cover}
/* Fachada: se muestra la portada y el iframe se carga recién al pulsar */
.video-fachada{position:absolute;inset:0;border:0;padding:0;margin:0;width:100%;height:100%;cursor:pointer;background:none;display:block}
.video-fachada img{width:100%;height:100%;object-fit:cover;filter:brightness(.62);transition:filter .35s var(--ease),transform .6s var(--ease)}
.video-fachada:hover img{filter:brightness(.5);transform:scale(1.03)}
.video-play{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:76px;height:76px;border-radius:50%;background:rgba(255,255,255,.94);
  display:grid;place-items:center;box-shadow:0 8px 30px rgba(10,20,14,.4);
  transition:transform .3s var(--ease),background .3s var(--ease)
}
.video-play svg{width:30px;height:30px;color:var(--verde-800);margin-left:4px}
.video-fachada:hover .video-play{transform:translate(-50%,-50%) scale(1.09);background:#fff}
.video-fachada:focus-visible{outline:3px solid var(--oliva-300);outline-offset:3px}
.video-etiqueta{
  position:absolute;left:1rem;bottom:1rem;display:inline-flex;align-items:center;gap:.45rem;
  padding:.4rem .8rem;border-radius:99px;background:rgba(22,41,29,.82);color:#fff;
  font-size:var(--fs-xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase
}
.video-etiqueta svg{width:15px;height:15px}
.video-nota{font-size:var(--fs-xs);color:var(--tinta-400);margin-top:.6rem}
@media (max-width:520px){.video-play{width:60px;height:60px}.video-play svg{width:24px;height:24px}}

.thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:var(--sp-3);margin-top:var(--sp-3)}
.thumb{padding:0;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:none;cursor:pointer;
  aspect-ratio:4/3;transition:transform .25s var(--ease),border-color .25s var(--ease)}
.thumb:hover{transform:translateY(-2px);border-color:var(--verde-500)}
.thumb img{width:100%;height:100%;object-fit:cover}
.detail{display:grid;gap:var(--sp-7);grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);align-items:start}
@media (max-width:960px){.detail{grid-template-columns:1fr}}
.detail__aside{
  position:sticky;top:calc(var(--header-h) + 20px);background:var(--arena-100);
  border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-6) var(--sp-5)
}
.spec-grid{display:grid;gap:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  padding:var(--sp-5) 0;border-block:1px solid var(--border);margin-block:var(--sp-5)}
.spec-grid dt{font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--tinta-400);margin-bottom:.25rem}
.spec-grid dd{margin:0;font-family:var(--font-display);font-size:1.25rem;color:var(--verde-800)}

/* ---------------- Formularios ---------------- */
.form-card{
  background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:clamp(1.5rem,4vw,var(--sp-7));box-shadow:var(--shadow-md)
}
.form-grid{display:grid;gap:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.form-grid--full{grid-column:1/-1}
.form-note{font-size:var(--fs-xs);color:var(--tinta-400);margin-top:var(--sp-3)}
.form-msg{margin-top:var(--sp-4);padding:.9rem 1rem;border-radius:var(--radius);font-size:var(--fs-sm);display:none}
.form-msg.is-ok{display:block;background:#EAF3EE;border:1px solid var(--verde-500);color:var(--verde-800)}
.form-msg.is-error{display:block;background:#FBEEEA;border:1px solid #C8654A;color:#8A3A22}
.field-error{font-size:var(--fs-xs);color:#B04226;margin-top:.25rem;display:none}
.field.has-error input,.field.has-error select,.field.has-error textarea{border-color:#B04226}
.field.has-error .field-error{display:block}
fieldset{border:0;padding:0;margin:0}

/* ---------------- CTA banda ---------------- */
.cta-band{background:var(--verde-800);color:#fff;text-align:center}
.cta-band h2{color:#fff;font-size:var(--fs-2xl);max-width:22ch;margin-inline:auto}
.cta-band p{color:rgba(255,255,255,.8);max-width:56ch;margin-inline:auto var(--sp-6);margin-bottom:var(--sp-6)}

/* ---------------- Footer ---------------- */
.footer{background:var(--verde-900);color:rgba(255,255,255,.72);padding-block:var(--sp-8) var(--sp-5);font-size:var(--fs-sm)}
.footer__grid{display:grid;gap:var(--sp-6);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-bottom:var(--sp-7)}
.footer h4{color:#fff;font-family:var(--font-body);font-size:var(--fs-xs);letter-spacing:.18em;text-transform:uppercase;margin-bottom:var(--sp-4)}
.footer a:hover{color:var(--oliva-300)}
.footer ul{list-style:none;padding:0;margin:0;display:grid;gap:.6rem}
.footer__brand .logo__name{color:#fff}
.footer__brand .logo__tag{color:rgba(255,255,255,.5)}
.footer__claim{font-family:var(--font-display);color:var(--oliva-300);font-size:1.05rem;margin-top:var(--sp-4)}
.footer__bottom{
  border-top:1px solid rgba(255,255,255,.12);padding-top:var(--sp-5);
  display:flex;flex-wrap:wrap;gap:var(--sp-3) var(--sp-5);justify-content:space-between;align-items:center;
  font-size:var(--fs-xs);color:rgba(255,255,255,.5)
}
.powered{display:inline-flex;align-items:center;gap:.4rem;letter-spacing:.1em;text-transform:uppercase;font-size:.6875rem}
.powered a{color:rgba(255,255,255,.75);font-weight:700;border-bottom:1px solid transparent;transition:color .2s,border-color .2s}
.powered a:hover{color:var(--oliva-300);border-color:var(--oliva-300)}

/* WhatsApp flotante */
.wa-float{
  position:fixed;right:1rem;bottom:1rem;z-index:90;width:56px;height:56px;border-radius:50%;
  background:#25D366;color:#fff;display:grid;place-items:center;box-shadow:var(--shadow-md);
  transition:transform .25s var(--ease)
}
.wa-float:hover{transform:scale(1.08)}
.wa-float svg{width:30px;height:30px}

/* Animación de entrada */
/* Solo se oculta si JS está activo (html.js). Sin JS, todo se ve. */
.reveal{opacity:1;transform:none}
html.js .reveal{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
html.js .reveal.is-visible{opacity:1;transform:none}

@media print{.header,.footer,.wa-float,.needs-bar{display:none}}

/* ---------------- Logotipo (imagen oficial) ---------------- */
.logo__img{height:70px;width:auto}
.footer .logo__img{height:64px}
@media (max-width:1040px){.logo__img{height:56px}}
@media (max-width:520px){.logo__img{height:46px}}
