:root{
  --negro:#0b0b0f;
  --negro-2:#14141c;
  --azul:#0a1f44;
  --azul-2:#10306b;
  --naranja:#ff7a18;
  --naranja-2:#ff9a4d;
  --texto:#e9ecf1;
  --muted:#9aa3b2;
  --linea:rgba(255,255,255,.08);
  --radio:14px;
  --radio-lg:22px;
  --sombra:0 10px 30px rgba(0,0,0,.35);
}
*{box-sizing:border-box}
html,body{background:var(--negro);color:var(--texto);font-family:'Poppins',system-ui,sans-serif;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,h5{font-family:'Space Grotesk','Poppins',sans-serif;font-weight:700;letter-spacing:-.01em;color:#fff}
h1{font-size:clamp(2rem,4vw,3.4rem);line-height:1.05}
h2{font-size:clamp(1.6rem,3vw,2.4rem)}
h3{font-size:1.35rem}
a{color:var(--naranja);text-decoration:none}
a:hover{color:var(--naranja-2)}
.section{padding:80px 0}
.section-sm{padding:50px 0}
.bg-azul{background:linear-gradient(180deg,var(--azul) 0%, var(--negro) 100%)}
.bg-grad{background:radial-gradient(1200px 600px at 10% -10%, rgba(255,122,24,.18), transparent 60%), radial-gradient(900px 500px at 110% 10%, rgba(16,48,107,.5), transparent 60%), var(--negro)}
.text-naranja{color:var(--naranja)!important}
.text-muted-2{color:var(--muted)!important}
.eyebrow{display:inline-block;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--naranja);font-weight:600;margin-bottom:.6rem}

/* Navbar */
.navbar-domus{background:rgba(11,11,15,.85);backdrop-filter:blur(10px);border-bottom:1px solid var(--linea);padding:.85rem 0}
.navbar-domus .navbar-brand{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:1.4rem;color:#fff}
.navbar-domus .navbar-brand span{color:var(--naranja)}
.navbar-domus .nav-link{color:#dfe3ec!important;font-weight:500;margin:0 .35rem;position:relative}
.navbar-domus .nav-link:hover{color:var(--naranja)!important}
.navbar-domus .nav-link.active::after{content:"";position:absolute;left:.5rem;right:.5rem;bottom:-4px;height:2px;background:var(--naranja);border-radius:2px}

/* Botones */
.btn-naranja{background:linear-gradient(135deg,var(--naranja),var(--naranja-2));border:0;color:#fff;font-weight:600;padding:.7rem 1.4rem;border-radius:999px;box-shadow:0 6px 18px rgba(255,122,24,.35);transition:transform .2s ease, box-shadow .2s ease}
.btn-naranja:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(255,122,24,.45);color:#fff}
.btn-outline-light-2{border:1px solid rgba(255,255,255,.25);color:#fff;border-radius:999px;padding:.65rem 1.3rem;font-weight:500}
.btn-outline-light-2:hover{background:#fff;color:var(--negro)}

/* Hero */
.hero{position:relative;overflow:hidden;padding:120px 0 90px}
.hero .badge-dot{display:inline-flex;align-items:center;gap:.5rem;background:rgba(255,255,255,.06);border:1px solid var(--linea);padding:.4rem .9rem;border-radius:999px;font-size:.85rem;color:#dfe3ec}
.hero .badge-dot i{color:var(--naranja)}
.hero-card{background:rgba(255,255,255,.04);border:1px solid var(--linea);border-radius:var(--radio-lg);padding:1.2rem;backdrop-filter:blur(6px)}
.hero-img{border-radius:var(--radio-lg);overflow:hidden;aspect-ratio:4/3;background:#222 center/cover no-repeat}

/* Cards */
.card-domus{background:linear-gradient(180deg,#181822, #11111a);border:1px solid var(--linea);border-radius:var(--radio-lg);overflow:hidden;transition:transform .25s ease, border-color .25s ease;height:100%}
.card-domus:hover{transform:translateY(-4px);border-color:rgba(255,122,24,.5)}
.card-domus .card-img{aspect-ratio:4/3;background:#222 center/cover no-repeat;border-bottom:1px solid var(--linea)}
.card-domus .card-body{padding:1.1rem 1.2rem 1.3rem}
.card-domus h3{font-size:1.05rem;line-height:1.3;min-height:2.6em}
.precio{font-family:'Space Grotesk',sans-serif;font-size:1.35rem;color:var(--naranja);font-weight:700}
.precio-usd{font-size:.85rem;color:var(--muted);margin-left:.4rem;font-weight:500}

/* Servicios */
.service-tile{background:linear-gradient(135deg, rgba(16,48,107,.6), rgba(11,11,15,.6));border:1px solid var(--linea);border-radius:var(--radio-lg);padding:1.6rem;height:100%;transition:.25s}
.service-tile:hover{border-color:var(--naranja);transform:translateY(-3px)}
.service-tile .icon{width:54px;height:54px;border-radius:14px;background:rgba(255,122,24,.15);color:var(--naranja);display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin-bottom:1rem}

/* Forms */
.form-control,.form-select,.form-control:focus,.form-select:focus{background:rgba(255,255,255,.04);border:1px solid var(--linea);color:#fff;border-radius:12px;padding:.7rem .9rem}
.form-control:focus,.form-select:focus{border-color:var(--naranja);box-shadow:0 0 0 .2rem rgba(255,122,24,.15);background:rgba(255,255,255,.05);color:#fff}
.form-label{font-weight:500;color:#dfe3ec;margin-bottom:.35rem}
.form-control::placeholder{color:#7c8597}

/* Modal */
.modal-content{background:#13131c;color:var(--texto);border:1px solid var(--linea);border-radius:var(--radio-lg);overflow:hidden}
.modal-header,.modal-footer{border-color:var(--linea)}
.btn-close{filter:invert(1)}

/* Tabla admin */
.table-domus{color:#dfe3ec}
.table-domus thead th{background:#10101a;color:#9aa3b2;font-weight:600;text-transform:uppercase;font-size:.75rem;letter-spacing:.08em;border-color:var(--linea)}
.table-domus tbody td{border-color:var(--linea);vertical-align:middle}

/* Badges estado CRM */
.badge-estado{padding:.4rem .7rem;border-radius:999px;font-weight:500;font-size:.75rem}
.b-nuevo{background:#1e2a4a;color:#9cb6ff}
.b-contactado{background:#3a2c1a;color:#ffb86b}
.b-interesado{background:#1a3a25;color:#7dffaa}
.b-no_interesado{background:#3a1a1a;color:#ff8a8a}
.b-cotizado{background:#2a1a3a;color:#caa3ff}
.b-ganado{background:#0e3b22;color:#5cffa1}
.b-perdido{background:#3a1a1a;color:#ff6b6b}

/* Footer */
.footer{background:#080810;border-top:1px solid var(--linea);padding:60px 0 30px;margin-top:80px}
.footer h5{color:#fff;font-size:1rem;margin-bottom:1rem}
.footer a{color:#9aa3b2;display:block;margin-bottom:.4rem}
.footer a:hover{color:var(--naranja)}
.footer .copy{border-top:1px solid var(--linea);padding-top:20px;margin-top:30px;color:#6b7280;font-size:.85rem}

/* Botón flotante WhatsApp */
.fab-wa{position:fixed;right:22px;bottom:22px;width:60px;height:60px;border-radius:50%;background:#25d366;color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.8rem;box-shadow:0 10px 25px rgba(37,211,102,.45);z-index:1000;transition:.2s}
.fab-wa:hover{transform:scale(1.08);color:#fff}
.fab-wa::before{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid rgba(37,211,102,.45);animation:pulse 2s infinite}
@keyframes pulse{0%{transform:scale(1);opacity:1}100%{transform:scale(1.4);opacity:0}}

/* Stepper */
.stepper{display:flex;gap:.5rem;margin-bottom:2rem;flex-wrap:wrap}
.stepper .step{flex:1;min-width:120px;padding:.6rem .8rem;background:rgba(255,255,255,.04);border:1px solid var(--linea);border-radius:12px;font-size:.85rem;color:var(--muted)}
.stepper .step.active{background:linear-gradient(135deg,var(--naranja),var(--naranja-2));color:#fff;border-color:transparent;font-weight:600}
.stepper .step.done{border-color:var(--naranja);color:var(--naranja)}

/* Slider hero (CSS-only) */
.slider{position:relative;border-radius:var(--radio-lg);overflow:hidden;aspect-ratio:16/9;background:#111}
.slider .slide{position:absolute;inset:0;opacity:0;transition:opacity 1s ease;background-size:cover;background-position:center;display:flex;align-items:flex-end;padding:2rem}
.slider .slide.active{opacity:1}
.slider .slide-caption{background:rgba(0,0,0,.55);backdrop-filter:blur(6px);padding:.8rem 1.2rem;border-radius:12px;border:1px solid var(--linea)}

/* Galería */
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.gallery-grid .gi{aspect-ratio:1/1;border-radius:14px;background:#222 center/cover no-repeat;border:1px solid var(--linea)}

/* Login admin */
.auth-shell{min-height:80vh;display:flex;align-items:center;justify-content:center;padding:40px 0}
.auth-card{max-width:430px;width:100%;background:#13131c;border:1px solid var(--linea);border-radius:var(--radio-lg);padding:2.2rem;box-shadow:var(--sombra)}

/* Responsive tweaks */
@media (max-width: 768px){
  .hero{padding:90px 0 50px}
  .section{padding:55px 0}
  .footer{padding:40px 0 20px}
  .fab-wa{width:54px;height:54px;font-size:1.5rem;right:16px;bottom:16px}
}
