:root{
  --rojo:#c8102e; --rojo-osc:#a00d25; --rojo-claro:#fdecee;
  --texto:#333f48; --texto-2:#5f6b74; --gris:#f4f5f6; --linea:#dfe3e6; --blanco:#ffffff;
  --verde:#1e7b48; --verde-claro:#e6f4ec; --ambar:#8a5a00; --ambar-claro:#fff4d6;
  --r:10px; --sombra:0 2px 10px rgba(51,63,72,.08);
  --f:"Montserrat", "Segoe UI", Arial, sans-serif;
}
:root{box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
*,*::before,*::after{box-sizing:inherit}
html{scroll-padding-top:calc(80px + env(safe-area-inset-top,0px));scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--blanco);color:var(--texto);font:400 16px/1.6 var(--f)}
img{max-width:100%;display:block}
a{color:var(--rojo)}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid #f0a8b4;outline-offset:2px}
h1,h2,h3{line-height:1.2;color:var(--texto)}
.wrap{max-width:1240px;margin:0 auto;padding:0 20px}

/* encabezado */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;background:var(--blanco);box-shadow:0 1px 0 var(--linea)}
.top .wrap{display:flex;align-items:center;gap:20px;min-height:68px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--texto);font-weight:700;font-size:1.05rem;line-height:1.15}
.brand .mark{width:36px;height:36px;border-radius:8px;background:var(--rojo);display:grid;place-items:center;flex:none}
.brand .bt{white-space:nowrap;font-size:.95rem;font-weight:700;line-height:1.1}
.brand b{display:block;color:var(--rojo);font-size:1.35rem;font-weight:800;letter-spacing:-.01em}
.brand .mark{width:44px;height:44px}
.menu{display:flex;gap:2px;margin-left:auto;align-items:center}
.menu a{white-space:nowrap;padding:8px 10px;border-radius:6px;text-decoration:none;color:var(--texto);font-weight:600;font-size:.92rem}
.menu a:hover{background:var(--gris)}
.menu a[aria-current="page"]{color:var(--rojo)}
.menu .btn{margin-left:8px}


/* botones */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:6px;padding:12px 22px;font-weight:700;font-size:.95rem;cursor:pointer;text-decoration:none;background:var(--rojo);color:#fff}
.btn:hover{background:var(--rojo-osc)}
.btn.alt{background:var(--blanco);color:var(--rojo);border:2px solid var(--rojo)}
.btn.alt:hover{background:var(--rojo-claro)}
.btn.wa{background:#1f9d55}.btn.wa:hover{background:#18834a}
.btn.sm{padding:8px 14px;font-size:.88rem}
.btn:disabled{opacity:.5;cursor:not-allowed}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}

/* hero */
.hero{background:var(--gris)}
.hero .wrap{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:center;padding-top:52px;padding-bottom:52px}
.hero h1{font-size:clamp(2rem,4.6vw,3.1rem);font-weight:800;margin:0 0 14px;letter-spacing:-.01em}
.hero h1 span{display:block;color:var(--rojo)}
.hero p.sub{font-size:1.1rem;color:var(--texto-2);margin:0 0 24px;max-width:36em}
.hero-card{background:var(--blanco);border-radius:var(--r);box-shadow:var(--sombra);padding:24px;border-top:5px solid var(--rojo)}
.hero-card h2{font-size:1.1rem;margin:0 0 12px}
.ticks{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.ticks li{padding-left:30px;position:relative}
.ticks li::before{content:"";position:absolute;left:0;top:3px;width:20px;height:20px;border-radius:50%;background:var(--verde-claro) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3 3 7-7' fill='none' stroke='%231e7b48' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px no-repeat}
.ticks.no li::before{background:var(--rojo-claro) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M6 6l8 8M14 6l-8 8' fill='none' stroke='%23c8102e' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E") center/12px no-repeat}

/* secciones */
.sec{padding:60px 0}
.sec.gris{background:var(--gris)}
.sec h2{font-size:clamp(1.5rem,3vw,2rem);font-weight:800;margin:0 0 10px}
.sec .intro{color:var(--texto-2);max-width:42em;margin:0 0 30px;font-size:1.05rem}
.bar{width:56px;height:4px;background:var(--rojo);border-radius:2px;margin-bottom:14px}
.cols2{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.card{background:var(--blanco);border:1px solid var(--linea);border-radius:var(--r);padding:24px;box-shadow:var(--sombra)}
.card h3{margin:0 0 14px;font-size:1.15rem}
.pasos{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;list-style:none;margin:0;padding:0;counter-reset:p}
.pasos li{counter-increment:p;background:var(--blanco);border-radius:var(--r);padding:22px;box-shadow:var(--sombra)}
.pasos li::before{content:counter(p);display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--rojo);color:#fff;font-weight:800;margin-bottom:12px}
.pasos b{display:block;margin-bottom:6px}
.pasos span{color:var(--texto-2);font-size:.95rem}

/* casas */
.grid-casas{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:22px}
.casa{display:flex;flex-direction:column;background:var(--blanco);border:1px solid var(--linea);border-radius:var(--r);overflow:hidden;box-shadow:var(--sombra);text-decoration:none;color:inherit}
.casa:hover{border-color:#b9c1c7}
.foto{aspect-ratio:4/3;background:var(--gris);display:grid;place-items:center;color:var(--texto-2);font-size:.85rem;font-weight:600;position:relative;overflow:hidden}
.foto img{width:100%;height:100%;object-fit:cover}
.foto .ph{display:grid;justify-items:center;gap:6px}
.etq{position:absolute;top:12px;left:12px;background:var(--rojo);color:#fff;font-size:.75rem;font-weight:700;padding:4px 10px;border-radius:4px}
.etq.ok{background:var(--verde)}
.casa .info{padding:18px;display:flex;flex-direction:column;gap:6px;flex:1}
.precio{font-size:1.45rem;font-weight:800;color:var(--texto)}
.ubic{color:var(--texto-2);font-size:.92rem}
.datos{display:flex;gap:14px;flex-wrap:wrap;font-size:.88rem;color:var(--texto);margin-top:4px}
.chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.chip{background:var(--gris);border-radius:4px;padding:3px 8px;font-size:.78rem;font-weight:600}
.chip.cr{background:var(--verde-claro);color:var(--verde)}
.filtros{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:24px;align-items:end}
.filtros label{display:flex;flex-direction:column;gap:4px;font-weight:600;font-size:.85rem}
.filtros select{border:1px solid var(--linea);border-radius:6px;padding:9px 12px;background:var(--blanco);min-width:200px}
.vacio{padding:30px;border:2px dashed var(--linea);border-radius:var(--r);color:var(--texto-2);text-align:center}

/* ficha técnica */
.ficha{display:grid;grid-template-columns:1.35fr 1fr;gap:32px;align-items:start}
.galeria .principal{aspect-ratio:4/3;border-radius:var(--r);overflow:hidden;background:var(--gris);display:grid;place-items:center}
.galeria .principal img{width:100%;height:100%;object-fit:cover}
.thumbs{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:8px}
.thumbs button{padding:0;border:2px solid transparent;border-radius:6px;overflow:hidden;cursor:pointer;aspect-ratio:1;background:var(--gris)}
.thumbs button[aria-current="true"]{border-color:var(--rojo)}
.thumbs img{width:100%;height:100%;object-fit:cover}
.resumen{position:sticky;top:90px}
.resumen h1{font-size:1.5rem;margin:0 0 6px}
.resumen .precio{font-size:2rem;margin:10px 0 4px}
.tabla{width:100%;border-collapse:collapse;margin:8px 0 0;font-size:.95rem}
.tabla th,.tabla td{padding:10px 0;border-bottom:1px solid var(--linea);text-align:left;vertical-align:top}
.tabla th{font-weight:600;color:var(--texto-2);width:45%}
.migas{font-size:.85rem;color:var(--texto-2);margin:22px 0}
.migas a{color:var(--texto-2)}

/* preguntas */
.faq{max-width:860px}
.faq details{border-bottom:1px solid var(--linea)}
.faq summary{cursor:pointer;list-style:none;padding:18px 40px 18px 0;font-weight:700;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:6px;top:12px;font-size:1.6rem;font-weight:400;color:var(--rojo)}
.faq details[open] summary::after{content:"–"}
.faq .resp{padding:0 0 18px;color:var(--texto-2)}
.faq .resp ul{margin:8px 0 0;padding-left:20px}

/* formularios */
.formcard{background:var(--blanco);border:1px solid var(--linea);border-radius:var(--r);padding:28px;max-width:820px;box-shadow:var(--sombra)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}
.field{display:flex;flex-direction:column;gap:6px}
.field.full{grid-column:1/-1}
.field label{font-weight:600;font-size:.92rem}
.field small{color:var(--texto-2);font-size:.82rem}
.field input,.field select,.field textarea{background:var(--blanco);border:1px solid #c9d0d5;border-radius:6px;padding:11px 12px;width:100%}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--rojo);outline:2px solid var(--rojo-claro)}
.field textarea{min-height:90px;resize:vertical}
.check{flex-direction:row;align-items:flex-start;gap:10px}
.check input{width:20px;height:20px;margin-top:2px;accent-color:var(--rojo);flex:none}
.check label{font-weight:500}
.aviso-box{grid-column:1/-1;background:var(--ambar-claro);color:var(--ambar);border-radius:6px;padding:12px 14px;font-weight:600}
.err{color:var(--rojo);font-weight:600}
.done{background:var(--verde-claro);border-radius:var(--r);padding:26px;max-width:820px}
.done h3{margin:0 0 8px}
.nota{font-size:.88rem;color:var(--texto-2)}
.hidden{display:none}

/* legal y pie */
.legal{max-width:780px}.legal h2{font-size:1.2rem;margin-top:30px}
.pie{background:var(--texto);color:#dfe4e8;padding:40px 0 calc(40px + env(safe-area-inset-bottom,0px));font-size:.9rem}
.pie a{color:#fff}
.pie .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:28px}
.pie h4{color:#fff;margin:0 0 10px}
.pie ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.pie .disc{border-top:1px solid #4d5a63;margin-top:28px;padding-top:18px;color:#b9c3ca;font-size:.82rem}
.wa-flot{position:fixed;left:20px;bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:40;display:flex;align-items:center;gap:10px;background:#1f9d55;color:#fff;text-decoration:none;font-weight:700;padding:14px 22px 14px 16px;border-radius:999px;box-shadow:0 6px 20px rgba(0,0,0,.28)}
.wa-flot:hover{background:#18834a}
@media (prefers-reduced-motion:no-preference){.wa-flot{animation:latido 2.4s ease-in-out 1.5s 3}}
@keyframes latido{0%,100%{transform:scale(1)}50%{transform:scale(1.07)}}
.grupo{background:var(--gris);border-radius:8px;padding:16px}
.grupo-t{font-weight:700;margin:0 0 4px}
.grid4{display:grid;grid-template-columns:2fr 1fr 2fr 1fr;gap:12px}
.pie{padding-bottom:calc(100px + env(safe-area-inset-bottom,0px))}

@media (max-width:900px){
  .hero .wrap,.cols2,.ficha{grid-template-columns:1fr}
  .pasos{grid-template-columns:1fr 1fr}
  .resumen{position:static}
  .pie .cols{grid-template-columns:1fr}
}
@media (max-width:600px){ .wa-flot{left:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));padding:12px 18px 12px 14px;font-size:.92rem} .grid4{grid-template-columns:2fr 1fr}  .grid2,.pasos{grid-template-columns:1fr} .thumbs{grid-template-columns:repeat(4,1fr)} }
.grid2>.full{grid-column:1/-1}

/* ===== encabezado adaptable ===== */
.top .wrap{gap:16px}
.menu{margin-left:auto}
.menu .solo-movil{display:none}
.acciones{display:flex;align-items:center;gap:8px;flex:none}
.acciones .btn{padding:9px 14px}
.toggle{display:none;width:44px;height:44px;border:1px solid var(--linea);border-radius:8px;background:var(--blanco);cursor:pointer;padding:0;flex-direction:column;align-items:center;justify-content:center;gap:5px}
.toggle span{display:block;width:20px;height:2px;background:var(--texto);border-radius:2px;transition:transform .2s,opacity .2s}
.toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media (max-width:1200px){
  .toggle{display:flex}
  .acciones{margin-left:auto}
  .menu{display:none;position:absolute;top:100%;left:0;right:0;margin:0;background:var(--blanco);flex-direction:column;align-items:stretch;padding:8px 20px 20px;box-shadow:0 10px 20px rgba(0,0,0,.10);max-height:calc(100vh - 80px);overflow:auto}
  .menu.open{display:flex}
  .menu a{padding:14px 6px;border-bottom:1px solid var(--linea);border-radius:0;font-size:1rem}
}
@media (max-width:640px){
  .top .wrap{min-height:62px;gap:10px;padding:0 14px}
  .brand .mark{width:38px;height:38px}
  .brand .bt{font-size:.8rem}
  .brand b{font-size:1.18rem}
  .acciones .vende{display:none}
  .acciones .wa .txt{display:none}
  .acciones .wa{width:44px;height:44px;padding:0;border-radius:8px}
  .menu .solo-movil{display:flex;margin-top:14px;border-bottom:0}
  .hero .wrap{padding-top:34px;padding-bottom:34px;gap:24px}
  .sec{padding:44px 0}
  .formcard{padding:18px}
  .hero .row .btn{flex:1 1 100%}
  .ficha .resumen .row .btn{flex:1 1 100%}
}
@media (min-width:601px) and (max-width:900px){ .pasos{grid-template-columns:1fr 1fr} }
@media (min-width:901px) and (max-width:1100px){ .pasos{grid-template-columns:1fr 1fr} .hero .wrap{grid-template-columns:1fr 1fr} }
