/* ===========================================================
   1 Flamingo Realty LLC — Ecosistema digital
   Identidad: negro monolítico + oro, sobre marfil cálido.
   Tipografías: Sora (títulos) / Manrope (texto).
   Lujo silencioso: hairlines de oro, aire generoso, sin relieves.
   =========================================================== */

:root{
  --deep:#0B0B0C;            /* negro profundo — fondo */
  --deep-2:#131316;          /* superficie */
  --deep-3:#1A1A1D;          /* superficie elevada */
  --deep-4:#232327;
  --accent:#C8A24A;          /* oro */
  --accent-soft:#E3C480;
  --accent-ink:#C8A24A;
  --accent-dim:rgba(200,162,74,.12);
  --paper:#0B0B0C;
  --paper-2:#131316;
  --ink:#F5F1E8;             /* marfil */
  --muted:rgba(245,241,232,.46);
  --muted-2:rgba(245,241,232,.30);
  --line:rgba(200,162,74,.16);
  --line-soft:rgba(245,241,232,.09);
  --line-dark:rgba(245,241,232,.09);
  --ok:#5fb98a; --warn:#d9a441; --bad:#d1685e; --info:#E3C480;
  --shadow:0 1px 2px rgba(0,0,0,.5), 0 10px 26px -16px rgba(0,0,0,.9);
  --shadow-lg:0 2px 6px rgba(0,0,0,.5), 0 30px 60px -30px rgba(0,0,0,1);
  --shadow-dark:0 24px 60px -30px rgba(0,0,0,1);
  --radius:2px;
  --wrap:1280px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth; background:var(--deep)}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:Manrope,system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:16px; line-height:1.75; font-weight:300;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
::selection{background:var(--accent); color:var(--deep)}
h1,h2,h3,h4{
  font-family:Sora,Manrope,sans-serif; line-height:1.05;
  margin:0 0 .5em; letter-spacing:-.035em; font-weight:300; color:var(--ink);
}
h1{font-size:clamp(2.6rem,6.2vw,5.2rem)}
h2{font-size:clamp(2rem,3.9vw,3.2rem)}
h3{font-size:1.15rem; letter-spacing:-.015em; font-weight:600}
h4{font-size:1rem; font-weight:600}
p{margin:0 0 1em}
a{color:inherit; text-decoration:none}
img{max-width:100%; display:block}
button,input,select,textarea{font:inherit; color:inherit}
.wrap{width:min(100% - 2.5rem,var(--wrap)); margin-inline:auto}

.skip-link{position:absolute; left:-9999px; top:0; background:var(--accent); color:var(--deep); padding:.6rem 1rem; z-index:999; font-weight:800}
.skip-link:focus{left:.5rem; top:.5rem}
:focus-visible{outline:1px solid var(--accent); outline-offset:3px}

/* ---------- Logotipo de marca ---------- */
.brand-mark{
  display:grid; place-items:center; width:66px; height:66px; flex:none;
  border-radius:0; background:transparent; border:0;
}
.brand-mark img{width:100%; height:100%; object-fit:contain; display:block}
.brand-mark.sm{width:42px; height:42px}
.brand-mark.lg{width:140px; height:140px}

/* ---------- Botones ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding:1rem 2rem; border-radius:0; border:1px solid var(--line);
  font-family:Manrope,sans-serif; font-weight:800; font-size:.68rem;
  letter-spacing:.25em; text-transform:uppercase; cursor:pointer;
  background:transparent; color:var(--ink);
  transition:background .45s var(--ease), color .45s var(--ease), border-color .45s var(--ease);
}
.btn-gold{background:var(--accent); color:var(--deep); border-color:var(--accent)}
.btn-gold:hover{background:var(--ink); border-color:var(--ink); color:var(--deep)}
.btn-dark{background:transparent; color:var(--ink); border-color:var(--accent)}
.btn-dark:hover{background:var(--accent); color:var(--deep)}
.btn-ghost{background:transparent; border-color:var(--line-soft); color:var(--ink)}
.btn-ghost:hover{border-color:var(--accent); color:var(--accent)}
.btn-sm{padding:.55rem 1.1rem; font-size:.62rem; letter-spacing:.18em}
.btn-block{width:100%}

/* ---------- Header ---------- */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  background:linear-gradient(to bottom,rgba(11,11,12,.92),rgba(11,11,12,.55));
  border-bottom:1px solid var(--line); backdrop-filter:blur(14px);
  transition:background .4s var(--ease);
}
body.scrolled .site-header{background:rgba(11,11,12,.97)}
.header-inner{display:flex; align-items:center; gap:1rem; min-height:92px; flex-wrap:wrap}
.brand{display:flex; align-items:center; gap:.85rem; margin-right:auto; flex:none}
.brand-text{
  display:flex; flex-direction:column; align-items:center;
  width:fit-content; line-height:1.2; text-align:center;
}
.brand-agent{
  display:block; white-space:nowrap;
  font-family:Sora,sans-serif; font-size:.98rem; font-weight:300;
  color:var(--ink); letter-spacing:.06em;
}
.brand-broker{
  display:block; white-space:nowrap;
  font-family:Sora,sans-serif; font-size:.7rem; font-weight:500;
  color:var(--accent); text-transform:uppercase; margin-top:.25rem;
  letter-spacing:.14em;
}
.site-nav{display:flex; align-items:center; gap:.1rem}
.site-nav a{
  color:rgba(245,241,232,.62); padding:.55rem .85rem; font-size:.66rem; font-weight:800;
  letter-spacing:.22em; text-transform:uppercase; position:relative;
  transition:color .35s var(--ease); white-space:nowrap;
}
.site-nav a::after{
  content:""; position:absolute; left:.85rem; right:.85rem; bottom:.15rem; height:1px;
  background:var(--accent); transform:scaleX(0); transform-origin:left;
  transition:transform .45s var(--ease);
}
.site-nav a:hover{color:var(--accent)}
.site-nav a:hover::after{transform:scaleX(1)}
.site-nav a.active{color:var(--accent)}
.site-nav a.active::after{transform:scaleX(1)}
.nav-private{color:var(--accent) !important}
.lang-switch{
  margin-left:1rem; background:transparent; border:1px solid rgba(200,162,74,.3); color:var(--ink);
  border-radius:0; padding:.45rem .7rem; cursor:pointer; font-size:.6rem;
  font-weight:800; letter-spacing:.2em; display:flex; gap:.45rem; white-space:nowrap;
  transition:border-color .35s var(--ease);
}
.lang-switch:hover{border-color:var(--accent)}
.lang-switch .lang-on{color:var(--accent)}
.lang-switch .lang-off{color:rgba(245,241,232,.28)}
.nav-toggle{display:none !important}

/* ---------- Secciones ---------- */
.section{padding:clamp(4.5rem,9vw,8rem) 0}
.section-dark{background:var(--deep-2); border-block:1px solid var(--line)}
.section-cream{background:var(--deep-2); border-block:1px solid var(--line)}
.eyebrow{
  display:inline-block; font-size:.62rem; letter-spacing:.42em; text-transform:uppercase;
  color:var(--accent); font-weight:800; margin-bottom:1.1rem;
}
.lead{font-size:1.05rem; color:var(--muted); max-width:62ch; font-weight:300; line-height:1.85}
.center{text-align:center}
.center .lead{margin-inline:auto}
.rule{width:64px; height:1px; background:var(--accent); margin:1.4rem 0}
.center .rule{margin-inline:auto}

/* ---------- Hero: portada cinematográfica a pantalla completa ---------- */
.hero{
  position:relative; min-height:100vh; display:flex; align-items:center;
  overflow:hidden; background:var(--deep); padding:8rem 0 6rem;
}
.hero-media{position:absolute; inset:0; z-index:0; overflow:hidden}
.hero-media iframe{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:100vw; height:56.25vw; min-height:100vh; min-width:177.78vh;
  border:0; pointer-events:none;
}
.hero-scrim{
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background:
    linear-gradient(to top,rgba(11,11,12,.92) 2%,rgba(11,11,12,.18) 45%,rgba(11,11,12,.42) 100%),
    radial-gradient(120% 90% at 50% 45%,rgba(11,11,12,.05),rgba(11,11,12,.48));
}
.hero-inner{position:relative; z-index:2; width:min(100% - 2.5rem,var(--wrap)); margin-inline:auto; text-align:center}
.hero-copy{display:flex; flex-direction:column; align-items:center}
.hero h1{
  font-size:clamp(2.2rem,5vw,4rem);
  font-weight:200; letter-spacing:-.045em; line-height:.96;
  margin:0 0 1.4rem; max-width:18ch;
}
.hero h1 em{font-style:italic; color:var(--accent); font-weight:300}
.hero .lead{text-align:center; margin:0 auto 2rem; max-width:52ch}

/* Buscador de lujo sobre el video */
.hero-search{
  display:flex; width:min(100%,880px); margin:0 auto;
  background:rgba(19,19,22,.86); backdrop-filter:blur(24px);
  border:1px solid rgba(200,162,74,.28); padding:.4rem; gap:0;
}
.hero-search input{
  flex:1; border:0; background:none; padding:1.15rem 1.5rem; outline:none;
  font-family:Sora,sans-serif; font-weight:300; font-size:.95rem; color:var(--ink);
}
.hero-search input::placeholder{color:rgba(245,241,232,.3)}
.hero-search .btn{padding:1.15rem 2.4rem}
.hero-actions{display:flex; gap:1rem; flex-wrap:wrap; justify-content:center; margin-top:1.8rem}
.hero-stats{
  display:flex; gap:clamp(2rem,6vw,5rem); margin-top:2.6rem; justify-content:center;
  border-top:1px solid var(--line); padding-top:1.6rem; flex-wrap:wrap;
}
.hero-stats b{
  display:block; font-family:Sora,sans-serif; font-size:2.4rem;
  font-weight:200; color:var(--accent); line-height:1;
}
.hero-stats span{font-size:.6rem; color:var(--muted); letter-spacing:.28em; text-transform:uppercase; font-weight:800}
.hero-scroll{
  display:none; position:absolute; bottom:1.4rem; left:50%; transform:translateX(-50%); z-index:2;
  display:flex; flex-direction:column; align-items:center; gap:.55rem;
}
.hero-scroll span{font-size:.55rem; letter-spacing:.5em; text-transform:uppercase; color:var(--accent); font-weight:800}
.hero-scroll i{display:block; width:1px; height:34px; background:linear-gradient(to bottom,var(--accent),transparent)}
.hero-legal{
  position:absolute; bottom:2rem; left:2rem; z-index:2; font-size:.55rem;
  letter-spacing:.34em; text-transform:uppercase; color:rgba(245,241,232,.32); font-weight:800;
}
.hero-visual{position:relative}
.hero-visual img{width:100%; aspect-ratio:4/5; object-fit:cover}
.hero-tag{display:none}

/* ---------- Grids / tarjetas ---------- */
.grid{display:grid; gap:2.5rem}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.grid-3{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.grid-4{grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:1px}

.card{
  background:var(--deep-2); border:1px solid var(--line-soft); border-radius:0;
  overflow:hidden; transition:border-color .45s var(--ease), background .45s var(--ease);
}
.card:hover{border-color:rgba(200,162,74,.45)}
.section-dark .card{background:var(--deep)}
.card-pad{padding:1.8rem}

/* Servicios numerados */
.service-card{display:flex; flex-direction:column; padding:3rem 2rem; border:1px solid var(--line); background:var(--deep); position:relative; overflow:hidden}
.service-card .broker-line{margin-top:auto !important; padding-top:1.4rem}
.section-cream .service-card{background:var(--deep)}
.service-card:hover{background:var(--deep-3)}
.service-card::after{
  content:""; position:absolute; left:0; bottom:0; width:100%; height:2px; background:var(--accent);
  transform:scaleX(0); transform-origin:left; transition:transform .6s var(--ease);
}
.service-card:hover::after{transform:scaleX(1)}
.service-card h3{font-family:Sora,sans-serif; font-weight:600; letter-spacing:-.01em; margin-bottom:.9rem}
.service-icon{
  width:auto; height:auto; display:block; margin-bottom:1.8rem;
  font-family:Sora,sans-serif; font-size:2.4rem; font-weight:200; color:var(--accent);
  opacity:.25; background:none; transition:opacity .5s var(--ease);
}
.service-card:hover .service-icon{opacity:1}

/* ---------- Propiedades ---------- */
.prop-media{position:relative; aspect-ratio:4/5; overflow:hidden; background:var(--deep-3)}
.prop-media img{width:100%; height:100%; object-fit:cover; transition:transform .9s var(--ease)}
.card:hover .prop-media img{transform:scale(1.08)}
.prop-badge{
  position:absolute; top:1.2rem; left:1.2rem;
  background:rgba(11,11,12,.8); backdrop-filter:blur(10px);
  color:var(--accent); border:1px solid rgba(200,162,74,.3);
  padding:.45rem .9rem; border-radius:0; font-size:.58rem; font-weight:800;
  letter-spacing:.24em; text-transform:uppercase;
}
.prop-badge.sold{background:var(--accent); color:var(--deep); border-color:var(--accent)}
.prop-price{font-family:Sora,sans-serif; font-size:1.6rem; font-weight:200; color:var(--ink); letter-spacing:-.02em}
.prop-addr{font-size:.8rem; color:var(--muted); margin:.35rem 0 1.1rem}
.prop-facts{
  display:flex; gap:1.6rem; flex-wrap:wrap; font-size:.58rem; color:var(--muted-2);
  letter-spacing:.2em; text-transform:uppercase; font-weight:800;
  border-top:1px solid var(--line-soft); padding-top:1rem;
}
.prop-facts b{color:var(--accent); font-weight:800; margin-right:.35rem; font-size:.72rem; letter-spacing:0}
.prop-mls{font-size:.55rem; letter-spacing:.3em; text-transform:uppercase; color:var(--muted-2); margin-top:1.2rem; font-weight:800}

.filters .btn{white-space:nowrap; flex:1 1 auto}
.filters{display:grid; grid-template-columns:repeat(auto-fit,minmax(165px,1fr)); gap:1rem; margin-bottom:3rem}
.field label{display:block; font-size:.58rem; text-transform:uppercase; letter-spacing:.3em; color:var(--accent); margin-bottom:.45rem; font-weight:800}
.field input,.field select,.field textarea{
  width:100%; padding:.72rem .9rem; border-radius:0; border:1px solid var(--line-soft);
  background:var(--deep-2); color:var(--ink); outline:none; font-weight:300;
  transition:border-color .35s var(--ease);
}
.field input::placeholder,.field textarea::placeholder{color:rgba(245,241,232,.25)}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent)}
.field textarea{min-height:90px; resize:vertical}
.field select option{background:var(--deep-2); color:var(--ink)}

/* Formulario compacto de contacto */
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:1rem}
.form-grid .field{margin:0}
.form-grid .field:nth-last-child(2),
.form-grid .field:nth-last-child(3),
.form-grid button[type="submit"]{grid-column:1 / -1}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:1rem}
.form-row .field{margin:0}
.contact-center{max-width:680px; margin-inline:auto; text-align:center}
.contact-center .card{text-align:left}
.contact-info-row{display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; max-width:900px; margin:2rem auto 0; text-align:left}
@media (max-width:900px){
  .form-grid{grid-template-columns:1fr}
  .form-row{grid-template-columns:1fr}
  .contact-info-row{grid-template-columns:1fr}
}

/* ---------- Detalle ---------- */
.gallery{display:grid; grid-template-columns:2fr 1fr; gap:2px; border-radius:0; overflow:hidden}
.gallery .main{grid-row:span 2; aspect-ratio:16/11}
.gallery img{width:100%; height:100%; object-fit:cover; cursor:pointer; transition:opacity .35s}
.gallery img:hover{opacity:.75}
.spec-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:1px; margin:2.2rem 0}
.spec{background:var(--deep-2); border:1px solid var(--line-soft); padding:1.2rem}
.spec span{display:block; font-size:.55rem; text-transform:uppercase; letter-spacing:.28em; color:var(--muted-2); font-weight:800}
.spec b{font-family:Sora,sans-serif; font-size:1.25rem; font-weight:300; color:var(--accent)}

/* Calculadora */
.calc{background:var(--deep-2); border:1px solid var(--line); color:var(--ink); border-radius:0; padding:2rem}
.calc .field label{color:var(--accent)}
.calc-result{margin-top:1.6rem; border-top:1px solid var(--line); padding-top:1.6rem}
.calc-total{font-family:Sora,sans-serif; font-size:2.4rem; color:var(--accent); font-weight:200}
.calc-rows{display:grid; gap:.5rem; font-size:.82rem; color:var(--muted); margin-top:1rem}
.calc-rows div{display:flex; justify-content:space-between; gap:1rem}
.calc-bar{display:flex; height:6px; overflow:hidden; margin-top:1.2rem}
.calc-bar i{display:block}

/* ---------- Blog ---------- */
.post-thumb{aspect-ratio:16/10; object-fit:cover; width:100%}
.post-meta{font-size:.58rem; letter-spacing:.3em; text-transform:uppercase; color:var(--accent); font-weight:800}
.tags{display:flex; gap:.5rem; flex-wrap:wrap; margin-top:1.1rem}
.tag{font-size:.58rem; padding:.3rem .7rem; background:transparent; border:1px solid var(--line); color:var(--accent); font-weight:800; letter-spacing:.18em; text-transform:uppercase}
.article{max-width:70ch; margin-inline:auto; font-size:1.05rem; color:rgba(245,241,232,.72)}
.article h1{font-size:clamp(1.7rem,3.2vw,2.4rem); line-height:1.18; letter-spacing:-.015em; font-weight:600; margin:.6rem 0 1rem}
.article h2{margin-top:2.6rem; color:var(--ink); font-size:1.25rem; letter-spacing:-.01em; font-weight:600}
.article h3{margin-top:2rem; font-size:1.05rem; font-weight:600; color:var(--accent)}
.article img{width:min(100%,640px); max-height:400px; object-fit:cover; display:block; margin:1.5rem auto}
.article ul{padding-left:1.2rem; margin:1rem 0 1.4rem}
.article li{margin-bottom:.55rem; line-height:1.7}
.share{display:flex; justify-content:center; gap:.6rem; margin-top:2.5rem; flex-wrap:wrap}
.btn-wa{background:#25D366; color:#fff; border-color:#25D366; padding:.85rem 1.6rem}
.btn-wa:hover{background:#fff; color:#25D366; border-color:#25D366}

/* ---------- Panel / tablas / CRM ---------- */
.panel{background:var(--deep-2); border:1px solid var(--line-soft); border-radius:0}
.tabs{display:flex; gap:0; border-bottom:1px solid var(--line-soft); padding:0 .6rem; overflow-x:auto}
.tabs button{
  background:none; border:0; padding:1rem 1.2rem; cursor:pointer; font-weight:800;
  color:var(--muted); border-bottom:1px solid transparent; white-space:nowrap;
  font-size:.62rem; letter-spacing:.2em; text-transform:uppercase;
}
.tabs button.active{color:var(--accent); border-bottom-color:var(--accent)}
.table-wrap{overflow-x:auto}
table{width:100%; border-collapse:collapse; font-size:.78rem}
th{text-align:left; font-size:.52rem; letter-spacing:.2em; text-transform:uppercase; color:var(--accent); padding:.6rem .7rem; border-bottom:1px solid var(--line); white-space:nowrap; font-weight:800}
td{padding:.55rem .7rem; border-bottom:1px solid var(--line-soft); vertical-align:middle; color:rgba(245,241,232,.78); white-space:nowrap}
td strong{font-weight:600}
tbody tr:hover{background:rgba(200,162,74,.05)}
/* Desplegable de estado: fondo oscuro + letra clara (contraste garantizado) */
.stSel{
  appearance:none; -webkit-appearance:none;
  background:var(--deep-3); color:var(--ink);
  border:1px solid var(--line); border-radius:0;
  padding:.32rem 1.6rem .32rem .6rem; font-size:.7rem; font-weight:700;
  letter-spacing:.06em; cursor:pointer; max-width:100%;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23C8A24A' stroke-width='1.4' fill='none'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right .55rem center;
}
.stSel:focus{outline:1px solid var(--accent); outline-offset:1px}
.stSel option{background:var(--deep-3); color:var(--ink)}
.pill{font-size:.58rem; padding:.25rem .65rem; font-weight:800; white-space:nowrap; letter-spacing:.14em; text-transform:uppercase; border:1px solid}
.src-chatbot{background:transparent; color:#7ba3d8; border-color:rgba(123,163,216,.4)}
.src-whatsapp{background:transparent; color:#5fb98a; border-color:rgba(95,185,138,.4)}
.src-campaign{background:transparent; color:#c08fd0; border-color:rgba(192,143,208,.4)}
.src-manual{background:transparent; color:var(--muted); border-color:var(--line-soft)}
.st-new{background:transparent; color:var(--muted); border-color:var(--line-soft)}
.st-contacted{background:transparent; color:#7ba3d8; border-color:rgba(123,163,216,.4)}
.st-qualified{background:transparent; color:var(--accent); border-color:rgba(200,162,74,.45)}
.st-negotiation{background:transparent; color:#d1685e; border-color:rgba(209,104,94,.4)}
.st-closed{background:transparent; color:#5fb98a; border-color:rgba(95,185,138,.4)}

.pipeline{display:grid; grid-template-columns:repeat(5,minmax(210px,1fr)); gap:1px; overflow-x:auto; padding:1.4rem}
.pipe-col{background:var(--deep); border:1px solid var(--line-soft); padding:.9rem; min-height:300px}
.pipe-col.drag-over{border-color:var(--accent); background:var(--accent-dim)}
.pipe-head{display:flex; justify-content:space-between; align-items:center; font-size:.56rem; text-transform:uppercase; letter-spacing:.26em; font-weight:800; color:var(--accent); margin-bottom:1rem}
.pipe-count{background:transparent; border:1px solid var(--line-soft); padding:0 .5rem; color:var(--muted)}
.lead-card{background:var(--deep-2); border:1px solid var(--line-soft); border-left:2px solid var(--accent); padding:.85rem; margin-bottom:.6rem; cursor:grab}
.lead-card:hover{border-color:rgba(200,162,74,.4); border-left-color:var(--accent)}
.lead-card:active{cursor:grabbing}
.lead-card strong{display:block; font-size:.88rem; color:var(--ink); font-weight:600}
.lead-card small{color:var(--muted); font-size:.74rem}

.kpis{display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:1px; padding:1.4rem}
.kpi{background:var(--deep); border:1px solid var(--line-soft); padding:1.4rem}
.kpi span{display:block; font-size:.55rem; text-transform:uppercase; letter-spacing:.26em; color:var(--muted-2); font-weight:800}
.kpi b{font-family:Sora,sans-serif; font-size:2rem; color:var(--accent); font-weight:200}
.bars{display:grid; gap:.6rem; padding:0 1.4rem 1.6rem}
.bar-row{display:grid; grid-template-columns:150px 1fr 50px; gap:1rem; align-items:center; font-size:.8rem; color:var(--muted)}
.bar-track{background:var(--deep); border:1px solid var(--line-soft); height:8px; overflow:hidden}
.bar-fill{height:100%; background:var(--accent); transition:width .9s var(--ease)}
.spark{display:flex; align-items:flex-end; gap:3px; height:112px; padding:0 1.4rem 1.6rem}
.spark i{flex:1; background:var(--accent); opacity:.6; min-height:3px}

/* ---------- Footer ---------- */
.site-footer{background:var(--deep); border-top:1px solid var(--line); color:var(--muted); padding:clamp(4rem,8vw,6.5rem) 0 2rem}
.footer-grid{display:grid; gap:3rem; grid-template-columns:1.6fr 1.2fr .8fr .8fr}
.site-footer h4{
  color:var(--accent); font-size:.58rem; letter-spacing:.34em; text-transform:uppercase;
  font-family:Manrope,sans-serif; font-weight:800; margin-bottom:1.4rem;
}
.site-footer p{font-size:.86rem; margin-bottom:1rem; font-weight:300}
.site-footer a{color:rgba(245,241,232,.66); transition:color .35s var(--ease)}
.site-footer a:hover{color:var(--accent)}
.footer-grid > div > a{display:block; font-size:.86rem; margin-bottom:.6rem}
.site-footer small{display:block; font-size:.58rem; color:var(--muted-2); letter-spacing:.2em; text-transform:uppercase; font-weight:800}
.footer-brand{display:flex; align-items:center; gap:1rem; margin-bottom:1.4rem}
.footer-brand strong{display:block; color:var(--ink); font-family:Sora,sans-serif; font-size:1rem; font-weight:300; letter-spacing:.08em}
.footer-brand span{font-size:.6rem; color:var(--accent); letter-spacing:.24em; text-transform:uppercase; font-weight:800}
.footer-legal{font-size:.74rem !important; color:var(--muted-2); max-width:48ch}
.footer-pages{
  display:flex; flex-wrap:wrap; justify-content:center; gap:.6rem 2.4rem;
  border-top:1px solid var(--line); margin-top:3.5rem; padding-top:2.2rem;
}
.footer-pages a{
  color:rgba(245,241,232,.7); font-size:.62rem; font-weight:800; letter-spacing:.24em;
  text-transform:uppercase; padding:.3rem 0; border-bottom:1px solid transparent;
  transition:color .35s var(--ease), border-color .35s var(--ease);
}
.footer-pages a:hover{color:var(--accent); border-bottom-color:var(--accent)}
.footer-bottom{
  display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap;
  border-top:1px solid var(--line-soft); margin-top:2rem; padding-top:1.6rem;
  font-size:.6rem; color:var(--muted-2); letter-spacing:.16em; text-transform:uppercase; font-weight:800;
}

/* ---------- Dock flotante unificado ---------- */
.float-dock{
  position:fixed; right:1.4rem; bottom:1.4rem; z-index:80;
  display:flex; flex-direction:column; gap:.55rem; align-items:center;
}
.float-btn{
  width:50px; height:50px; border-radius:0;
  border:1px solid var(--line);
  background:rgba(19,19,22,.92); backdrop-filter:blur(10px);
  color:var(--ink);
  display:grid; place-items:center;
  box-shadow:var(--shadow);
  cursor:pointer;
  transition:border-color .35s var(--ease), background .35s var(--ease), color .35s var(--ease);
}
.float-btn:hover{border-color:var(--accent)}

/* Cartelito al pasar el cursor */
.float-btn{position:relative}
.float-tip{
  position:absolute; right:calc(100% + .8rem); top:50%;
  transform:translateY(-50%) translateX(6px);
  white-space:nowrap; background:rgba(19,19,22,.97);
  border:1px solid var(--accent); color:var(--ink);
  font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; font-weight:700;
  padding:.5rem .85rem; opacity:0; pointer-events:none;
  box-shadow:var(--shadow-lg);
  transition:opacity .3s var(--ease), transform .3s var(--ease);
}
.float-tip::after{
  content:""; position:absolute; left:100%; top:50%; transform:translateY(-50%);
  border:5px solid transparent; border-left-color:var(--accent);
}
.float-btn:hover .float-tip{opacity:1; transform:translateY(-50%) translateX(0)}
@media (max-width:900px){.float-tip{display:none}}


/* Instagram */
.social-instagram{background:#E1306C; color:#fff; border-color:#E1306C}
.social-instagram:hover{background:#fff; color:#E1306C}

/* Facebook */
.social-facebook{background:#1877F2; color:#fff; border-color:#1877F2}
.social-facebook:hover{background:#fff; color:#1877F2}

/* WhatsApp */
.social-whatsapp{background:#25D366; color:#fff; border-color:#25D366}
.social-whatsapp:hover{background:#fff; color:#25D366}

/* ---------- Chat ---------- */
.chat-dock{position:relative}
.chat-fab{position:relative; width:50px; height:50px; padding:0; background:var(--accent); border-color:var(--accent)}
.chat-fab:hover{border-color:var(--accent-soft); background:var(--accent-soft)}
.chat-avatar{
  display:grid; place-items:center; width:100%; height:100%;
  background:transparent; border:0;
  overflow:hidden;
}
.chat-avatar img{width:100%; height:100%; object-fit:cover; display:block}
.chat-fab .pulse{position:absolute; inset:0; border:1px solid var(--accent); opacity:0; animation:pulse 3.4s ease-out infinite}
@keyframes pulse{0%{transform:scale(.92);opacity:.6}100%{transform:scale(1.2);opacity:0}}
.chat-panel{
  position:absolute; right:60px; bottom:0; width:min(92vw,370px); height:min(70vh,520px);
  background:var(--deep-2); border:1px solid var(--line); border-radius:0; overflow:hidden;
  display:flex; flex-direction:column; box-shadow:var(--shadow-lg);
}
.chat-head{display:flex; align-items:center; gap:.8rem; padding:1rem; background:var(--deep); border-bottom:1px solid var(--line); color:var(--ink)}
.chat-head strong{display:block; font-size:.88rem; font-family:Sora,sans-serif; font-weight:300; letter-spacing:.04em}
.chat-head small{color:var(--accent); font-size:.58rem; letter-spacing:.2em; text-transform:uppercase; font-weight:800}
.chat-head button{margin-left:auto; background:none; border:0; color:var(--muted); font-size:1rem; cursor:pointer}
.chat-head button:hover{color:var(--accent)}
.chat-log{flex:1; overflow-y:auto; padding:1.2rem; display:flex; flex-direction:column; gap:.7rem; background:var(--deep)}
.msg{max-width:84%; padding:.7rem 1rem; font-size:.86rem; line-height:1.6}
.msg.bot{background:var(--deep-2); border:1px solid var(--line-soft); border-left:2px solid var(--accent); align-self:flex-start; color:rgba(245,241,232,.82)}
.msg.me{background:var(--accent); color:var(--deep); align-self:flex-end; font-weight:500}
.chat-form{display:flex; gap:.5rem; padding:.8rem; border-top:1px solid var(--line-soft); background:var(--deep-2)}
.chat-form input{flex:1; border:1px solid var(--line-soft); background:var(--deep); color:var(--ink); padding:.65rem .9rem; outline:none}
.chat-form input:focus{border-color:var(--accent)}
.chat-form button{width:44px; border:0; background:var(--accent); cursor:pointer; color:var(--deep); font-weight:800}
.chat-full{min-height:100vh; display:flex; flex-direction:column; background:var(--deep)}
.chat-full .chat-log{max-width:760px; width:100%; margin-inline:auto}
.chat-full .chat-form{max-width:760px; width:100%; margin:0 auto 1.4rem; border:1px solid var(--line)}

/* ---------- Accesibilidad ---------- */
.a11y-dock{position:relative}
.a11y-fab{font-size:1.4rem; background:#fff; color:#0055CC; border-color:#fff}
.a11y-fab:hover{background:#0055CC; color:#fff; border-color:#0055CC}
.a11y-panel{position:absolute; right:60px; bottom:0; width:250px; background:var(--deep-2); border:1px solid var(--line); padding:1.1rem; box-shadow:var(--shadow-lg)}
.a11y-panel h4{font-size:.6rem; letter-spacing:.3em; text-transform:uppercase; color:var(--accent); margin-bottom:1rem; font-weight:800}
.a11y-panel button{display:block; width:100%; text-align:left; padding:.6rem .75rem; border:1px solid var(--line-soft); background:var(--deep); color:var(--ink); margin-bottom:.4rem; cursor:pointer; font-size:.8rem; font-weight:300}
.a11y-panel button:hover{border-color:var(--accent)}
.a11y-panel button[aria-pressed="true"]{background:var(--accent-dim); border-color:var(--accent); color:var(--accent); font-weight:700}
.a11y-reset{color:var(--bad) !important}
.reading-guide{position:fixed; left:0; right:0; height:42px; background:var(--accent-dim); border-top:1px solid var(--accent); border-bottom:1px solid var(--accent); pointer-events:none; z-index:70}

/* El filtro se aplica a cada hijo directo (no al body) para no romper
   los elementos fijos como el chat y el botón de accesibilidad. */
body.a11y-contrast > *{filter:contrast(1.3) saturate(1.15)}
body.a11y-bigtext{font-size:19px}
body.a11y-spacing{letter-spacing:.05em; word-spacing:.14em; line-height:2}
body.a11y-dyslexia,body.a11y-dyslexia *{font-family:Verdana,Tahoma,sans-serif !important}
body.a11y-links a{text-decoration:underline !important; text-underline-offset:3px}
body.a11y-nomotion *{animation:none !important; transition:none !important}

/* ---------- Cookies ---------- */
.cookie-bar{
  position:fixed; left:0; right:0; bottom:0; z-index:90; background:rgba(11,11,12,.97);
  backdrop-filter:blur(14px); color:var(--muted);
  padding:1.2rem 1.6rem; display:flex; gap:1.2rem; align-items:center; justify-content:center;
  flex-wrap:wrap; border-top:1px solid var(--accent);
}
.cookie-bar p{margin:0; font-size:.82rem; max-width:70ch}
.cookie-bar > div{display:flex; gap:.6rem; flex-wrap:wrap}

/* ---------- Utilidades ---------- */
.reveal{opacity:0; transform:translateY(26px)}
.reveal.in{opacity:1; transform:none; transition:opacity 1s var(--ease), transform 1s var(--ease)}
.notice{padding:1rem 1.2rem; border:1px solid; border-left-width:2px; font-size:.86rem; margin-bottom:1.2rem; background:var(--deep-2)}
.notice-ok{border-color:var(--ok); color:var(--ok)}
.notice-info{border-color:var(--info); color:var(--info)}
.notice-warn{border-color:var(--warn); color:var(--warn)}
.broker-line{font-size:.55rem; color:var(--muted-2); display:block; letter-spacing:.26em; text-transform:uppercase; font-weight:800; margin-top:.3rem}
.empty{padding:4rem 1rem; text-align:center; color:var(--muted); letter-spacing:.1em}
.breadcrumb{font-size:.6rem; color:var(--muted-2); margin-bottom:1.4rem; letter-spacing:.24em; text-transform:uppercase; font-weight:800}
.page-head{
  background:var(--deep); border-bottom:1px solid var(--line);
  padding:calc(92px + clamp(3.5rem,7vw,6rem)) 0 clamp(3.5rem,7vw,6rem);
}
.page-head h1{margin:0}
.page-head .lead{color:var(--muted)}
.split{display:grid; grid-template-columns:1.6fr 1fr; gap:3.5rem; align-items:start}
.stack{display:grid; gap:1rem}
.row{display:flex; gap:1rem; flex-wrap:wrap; align-items:center}
.hidden{display:none !important}
[hidden]{display:none !important}

/* Compensación del header fijo para rutas sin .page-head ni .hero */
main.route-outlet > section:first-child:not(.hero):not(.page-head){padding-top:calc(92px + 3rem)}
main.route-outlet > div:first-child{padding-top:92px}

/* ---------- Responsive ---------- */
@media (min-height:960px){
  .hero-scroll{display:flex}
}
@media (max-width:1100px){
  .hero-media iframe{min-height:120vh}
}
@media (max-width:980px){
  .hero{min-height:auto; padding:9rem 0 5rem}
  .hero h1{font-size:clamp(2.4rem,9vw,3.6rem)}
  .hero-visual img{aspect-ratio:16/10}
  .hero-search{flex-direction:column; padding:.6rem}
  .hero-search .btn{width:100%}
}
@media (max-width:900px){
  .split{grid-template-columns:1fr}
  .gallery{grid-template-columns:1fr}
  .gallery .main{grid-row:auto}
  .footer-grid{grid-template-columns:1fr 1fr}
  .header-inner{min-height:auto; padding-top:.7rem; padding-bottom:.7rem; gap:.5rem}
  .brand{flex:none}
  .site-nav{
    position:static; flex-direction:row; align-items:center; gap:0;
    background:transparent; padding:0; border:0; width:100%; justify-content:space-between;
    max-height:none; overflow:visible;
  }
  .site-nav a{padding:.45rem .2rem; font-size:.56rem; letter-spacing:.14em}
  .site-nav a::after{left:.2rem; right:.2rem}
  .lang-switch{align-self:center; margin:0 0 0 .2rem; padding:.3rem .4rem; font-size:.54rem; gap:.3rem}
  .bar-row{grid-template-columns:110px 1fr 44px}
  .page-head{padding-top:calc(120px + 2.5rem)}
  main.route-outlet > section:first-child:not(.hero):not(.page-head){padding-top:calc(120px + 2rem)}
}
@media (max-width:560px){
  .footer-grid{grid-template-columns:1fr}
  .hero-stats{gap:1.8rem}
  .hero-stats b{font-size:1.8rem}
  .hero-legal{display:none}
}
@media print{.site-header,.site-footer,.chat-dock,.a11y-dock,.cookie-bar{display:none}}

/* ============================================================
   Confianza, proceso, testimonios, zonas, valuación, FAQ,
   barra de contacto móvil.
   ============================================================ */
.trust-strip{background:var(--deep-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:1.6rem 0}
.trust-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem}
.trust-item{display:flex; flex-direction:column; gap:.35rem; text-align:center}
.trust-item span{font-size:.55rem; letter-spacing:.26em; text-transform:uppercase; color:var(--muted-2); font-weight:800}
.trust-item b{font-size:.82rem; letter-spacing:.14em; color:var(--accent); font-weight:700}
.trust-item i[data-pending]{font-style:normal; opacity:.55}

.proc-cols{display:grid; grid-template-columns:1fr 1fr; gap:3rem; margin-top:3.5rem}
.proc-col{border:1px solid var(--line); background:var(--deep-2); padding:2.5rem 2rem}
.proc-h{margin:0 0 1.8rem; font-size:.62rem; letter-spacing:.3em; text-transform:uppercase; color:var(--accent); font-weight:800}
.proc-list{list-style:none; margin:0; padding:0; display:grid; gap:1.6rem}
.proc-list li{display:flex; gap:1.1rem; align-items:flex-start}
.proc-n{flex:none; width:30px; height:30px; display:grid; place-items:center; border:1px solid var(--line);
  color:var(--accent); font-size:.7rem; font-weight:800}
.proc-list b{display:block; margin-bottom:.35rem; font-weight:500}
.proc-list p{margin:0; color:var(--muted); font-size:.86rem; line-height:1.65}

.testi{margin:0; border:1px solid var(--line); background:var(--deep-2); padding:2.2rem 1.9rem; display:flex; flex-direction:column}
.testi-stars{color:var(--accent); letter-spacing:.25em; font-size:.72rem; margin-bottom:1.2rem}
.testi blockquote{margin:0 0 1.6rem; font-size:.94rem; line-height:1.75; color:var(--ink); font-weight:300}
.testi figcaption{margin-top:auto; border-top:1px solid var(--line-soft); padding-top:1rem}
.testi figcaption b{display:block; font-weight:600; font-size:.9rem}
.testi figcaption span{font-size:.58rem; letter-spacing:.22em; text-transform:uppercase; color:var(--muted-2); font-weight:800}
.testi-disc{margin-top:2rem; font-size:.7rem; color:var(--muted-2); letter-spacing:.06em}

.areas-split{grid-template-columns:1fr 1fr; align-items:center}
.area-list{list-style:none; margin:2rem 0; padding:0; display:flex; flex-wrap:wrap; gap:.5rem}
.area-list li{border:1px solid var(--line); padding:.5rem .9rem; font-size:.62rem; letter-spacing:.18em;
  text-transform:uppercase; color:var(--muted); font-weight:700}
.area-map{border:1px solid var(--line); aspect-ratio:4/3; overflow:hidden; filter:grayscale(1) invert(.92) contrast(.85)}
.area-map iframe{width:100%; height:100%; border:0; display:block}

.val-split{grid-template-columns:1fr 1fr; align-items:center}
.val-form{display:grid; gap:1.1rem}

.faq-wrap{max-width:860px; margin:3rem auto 0; border-top:1px solid var(--line)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item summary{cursor:pointer; list-style:none; padding:1.5rem .2rem; font-size:1.02rem; font-weight:400;
  display:flex; justify-content:space-between; gap:1.5rem; align-items:center; transition:color .3s var(--ease)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+"; color:var(--accent); font-size:1.2rem; flex:none}
.faq-item[open] summary{color:var(--accent)}
.faq-item[open] summary::after{content:"\2013"}
.faq-item summary:hover{color:var(--accent)}
.faq-item p{margin:0 0 1.6rem; color:var(--muted); line-height:1.8; max-width:70ch; font-size:.92rem}

.final-cta{background:var(--deep-2); border-top:1px solid var(--line)}

/* Barra de contacto fija en móvil */
.mobile-bar{display:none}
@media (max-width:900px){
  .mobile-bar{
    display:grid; grid-template-columns:repeat(3,1fr); position:fixed; left:0; right:0; bottom:0; z-index:120;
    background:var(--deep); border-top:1px solid var(--line); backdrop-filter:blur(14px);
  }
  .mobile-bar a{
    padding:.85rem .3rem; text-align:center; font-size:.55rem; letter-spacing:.18em; text-transform:uppercase;
    font-weight:800; color:var(--ink); border-right:1px solid var(--line-soft); display:block;
  }
  .mobile-bar a:last-child{border-right:0; background:var(--accent); color:var(--deep)}
  body{padding-bottom:52px}
  .trust-grid{grid-template-columns:1fr 1fr; gap:1.2rem}
  .proc-cols,.areas-split,.val-split{grid-template-columns:1fr; gap:2rem}
  .float-dock{bottom:calc(52px + .9rem); right:.9rem}
}
.nav-call{margin-left:1rem; padding:.5rem .9rem !important; border:1px solid var(--line);
  color:var(--accent) !important; font-size:.62rem !important; letter-spacing:.14em !important; white-space:nowrap}
.nav-call::after{display:none}
.nav-call:hover{background:var(--accent); color:var(--deep) !important}
.footer-lic{font-size:.66rem; color:var(--muted); letter-spacing:.05em; margin:.8rem 0 .4rem; line-height:1.7}
.footer-lic b{color:var(--accent); font-weight:700}
@media (max-width:900px){ .nav-call{display:none} }
