:root{
  --bg:#0b1220;
  --card:#0f1b33;
  --text:#e8f0ff;
  --muted:#b7c7e6;
  --line:rgba(255,255,255,.14);
  --brand:#f59e0b; /* orange */
  --accent:#5b86a6; /* steel blue */
  --shadow: 0 18px 40px rgba(0,0,0,.35);
  --radius: 22px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  background: radial-gradient(1200px 600px at 15% 10%, rgba(91,134,166,.35), transparent 55%),
              radial-gradient(900px 500px at 85% 35%, rgba(245,158,11,.22), transparent 60%),
              var(--bg);
  color:var(--text);
}
a{color:inherit; text-decoration:none}
.container{width:min(1150px, 92vw); margin:0 auto}
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  gap:.55rem;
  padding:.95rem 1.15rem;
  border-radius:999px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.06);
  backdrop-filter: blur(10px);
  box-shadow: 0 10px 24px rgba(0,0,0,.25);
  transition: transform .2s ease, background .2s ease, border-color .2s ease;
  font-weight:650;
}
.btn:hover{transform: translateY(-2px); background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.25)}
.btn.primary{
  background: linear-gradient(135deg, rgba(245,158,11,.95), rgba(245,158,11,.55));
  border-color: rgba(245,158,11,.55);
  color:#121212;
}
.btn.primary:hover{background: linear-gradient(135deg, rgba(245,158,11,1), rgba(245,158,11,.65))}
.badge{
  display:inline-flex; align-items:center; gap:.45rem;
  padding:.35rem .7rem;
  border-radius:999px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.05);
  color:var(--muted);
  font-weight:600;
  font-size:.86rem;
}
header{
  position:sticky; top:0; z-index:50;
  background: rgba(11,18,32,.58);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  padding:.75rem 0;
  gap:1rem;
}
.brand{
  display:flex; align-items:center; gap:.75rem;
  min-width: 220px;
}
.brand img{
  width:52px; height:52px; border-radius:14px;
  object-fit:cover;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.04);
}
.brand .title{
  display:flex; flex-direction:column; line-height:1.05;
}
.brand .title strong{font-size:1.05rem; letter-spacing:.2px}
.brand .title span{font-size:.82rem; color:var(--muted)}
nav ul{
  list-style:none; padding:0; margin:0;
  display:flex; align-items:center; gap:.9rem;
}
nav a{
  padding:.55rem .7rem;
  border-radius:999px;
  color:var(--muted);
  border:1px solid transparent;
}
nav a:hover{border-color: rgba(255,255,255,.14); color:var(--text); background:rgba(255,255,255,.05)}
.nav-cta{display:flex; align-items:center; gap:.65rem}
.hamburger{
  display:none; width:44px; height:44px; border-radius:14px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.05);
}
.hero{
  position:relative;
  padding: 4.6rem 0 3.2rem;
}
.hero .bg{
  position:absolute; inset:0; z-index:-2;
  background:
    linear-gradient(180deg, rgba(11,18,32,.15), rgba(11,18,32,.92)),
    url('./../img/portada.jpg') center/cover no-repeat;
  filter: saturate(1.05) contrast(1.05);
}
.hero .glow{
  position:absolute; inset:0; z-index:-1;
  background: radial-gradient(700px 380px at 18% 30%, rgba(245,158,11,.22), transparent 55%),
              radial-gradient(800px 420px at 72% 25%, rgba(91,134,166,.25), transparent 60%);
}
.hero-grid{
  display:grid;
  grid-template-columns: 1.3fr .9fr;
  gap: 2.2rem;
  align-items:center;
}
h1{
  margin:.6rem 0 1rem;
  font-size: clamp(2rem, 3.2vw, 3.15rem);
  letter-spacing:-.6px;
}
.lead{
  color:var(--muted);
  font-size:1.05rem;
  line-height:1.6;
  max-width: 60ch;
}
.hero-actions{display:flex; gap:.8rem; flex-wrap:wrap; margin-top:1.35rem}
.card{
  border-radius: var(--radius);
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.05);
  backdrop-filter: blur(12px);
  box-shadow: var(--shadow);
}
.hero-card{
  padding: 1.1rem;
}
.hero-card .row{
  display:flex; align-items:center; justify-content:space-between;
  gap:.9rem;
}
.hero-card .row h3{
  margin:0;
  font-size:1.05rem;
}
.hero-card .row p{margin:.15rem 0 0; color:var(--muted); font-size:.92rem}
.hero-card .kpis{
  margin-top:1rem;
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:.8rem;
}
.kpi{
  padding:.9rem;
  border-radius: 18px;
  background: rgba(15,27,51,.55);
  border:1px solid rgba(255,255,255,.08);
}
.kpi strong{display:block; font-size:1.1rem}
.kpi span{color:var(--muted); font-size:.86rem}
section{
  padding: 3.2rem 0;
}
.section-head{
  display:flex; align-items:flex-end; justify-content:space-between;
  gap: 1.2rem;
  margin-bottom:1.35rem;
}
.section-head h2{
  margin:0;
  font-size: clamp(1.5rem, 2.2vw, 2.1rem);
  letter-spacing:-.3px;
}
.section-head p{margin:0; color:var(--muted); max-width: 60ch; line-height:1.55}
.grid{
  display:grid; gap:1rem;
}
.services{
  grid-template-columns: repeat(3, minmax(0,1fr));
}
.service{
  padding:1.2rem 1.1rem;
  position:relative;
  overflow:hidden;
}
.service:before{
  content:"";
  position:absolute; inset:-60px -90px auto auto;
  width:220px; height:220px;
  background: radial-gradient(circle, rgba(245,158,11,.22), transparent 60%);
  transform: rotate(18deg);
}
.service h3{margin:.1rem 0 .55rem; font-size:1.05rem}
.service p{margin:0; color:var(--muted); line-height:1.55}
.service ul{margin:.8rem 0 0; padding-left:1.05rem; color:var(--muted); line-height:1.55}
.pills{display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.75rem}
.pills span{
  font-size:.83rem;
  color:var(--muted);
  padding:.35rem .6rem;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.03);
}
.gallery{
  grid-template-columns: repeat(4, minmax(0,1fr));
}
.gallery a{
  position:relative;
  display:block;
  border-radius: 18px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.03);
  min-height: 150px;
}
.gallery img{
  width:100%; height:100%;
  object-fit: cover;
  display:block;
  transform: scale(1.02);
  transition: transform .25s ease, opacity .25s ease;
}
.gallery a:hover img{transform: scale(1.07); opacity:.95}
.gallery a .cap{
  position:absolute; left:0; right:0; bottom:0;
  padding:.7rem .8rem;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,.55));
  font-weight:650;
  font-size:.92rem;
}
.split{
  display:grid; grid-template-columns: 1fr 1fr;
  gap: 1.2rem;
  align-items:stretch;
}
.list{
  padding:1.2rem;
}
.list h3{margin:0 0 .6rem}
.list ul{margin:0; padding-left:1.1rem; color:var(--muted); line-height:1.7}
.embed{
  padding:1.1rem;
}
.embed iframe{
  width:100%; height: 420px;
  border:0;
  border-radius: 18px;
  background:#fff;
}
.contact-grid{
  display:grid; grid-template-columns: 1fr 1fr;
  gap: 1.2rem;
}
form{
  display:grid; gap:.75rem;
  padding:1.2rem;
}
label{font-weight:650; font-size:.92rem}
input, textarea{
  width:100%;
  padding:.95rem 1rem;
  border-radius: 16px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(0,0,0,.15);
  color:var(--text);
  outline:none;
}
textarea{min-height: 140px; resize:vertical}
input:focus, textarea:focus{border-color: rgba(245,158,11,.55)}
.form-note{color:var(--muted); font-size:.86rem; line-height:1.45}
.map{
  padding:1.1rem;
}
.map iframe{width:100%; height: 420px; border:0; border-radius:18px; background:#fff}
.footer{
  padding: 2.2rem 0 2.8rem;
  border-top:1px solid rgba(255,255,255,.1);
  background: rgba(0,0,0,.15);
}
.footer .row{
  display:flex; align-items:flex-start; justify-content:space-between; gap: 1.2rem;
  flex-wrap:wrap;
}
.footer small{color:var(--muted)}
.footer .links{display:flex; gap:.6rem; flex-wrap:wrap}
.footer .links a{padding:.4rem .65rem; border-radius:999px; border:1px solid rgba(255,255,255,.12); color:var(--muted)}
.footer .links a:hover{color:var(--text); border-color: rgba(255,255,255,.22)}
/* Lightbox */
.lightbox{
  position:fixed; inset:0; z-index: 999;
  display:none;
  background: rgba(0,0,0,.82);
  align-items:center; justify-content:center;
  padding: 24px;
}
.lightbox.open{display:flex}
.lightbox .frame{
  width:min(1100px, 96vw);
  max-height: 86vh;
  border-radius: 20px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.18);
  background:#000;
  position:relative;
}
.lightbox img{
  width:100%; height: 100%;
  max-height: 86vh;
  object-fit: contain;
  display:block;
}
.lightbox .close{
  position:absolute; top:10px; right:10px;
  width:42px; height:42px; border-radius:14px;
  border:1px solid rgba(255,255,255,.22);
  background: rgba(0,0,0,.35);
  color:#fff;
  display:grid; place-items:center;
  cursor:pointer;
}
.lightbox .navbtn{
  position:absolute; top:50%;
  transform: translateY(-50%);
  width:44px; height:44px; border-radius:16px;
  border:1px solid rgba(255,255,255,.22);
  background: rgba(0,0,0,.35);
  color:#fff; display:grid; place-items:center;
  cursor:pointer;
}
.lightbox .prev{left:10px}
.lightbox .next{right:10px}
/* Floating buttons */
.floatbar{
  position:fixed; right:16px; bottom:16px; z-index:80;
  display:flex; flex-direction:column; gap:.65rem;
}
.fbtn{
  width:56px; height:56px; border-radius: 18px;
  display:grid; place-items:center;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(15,27,51,.62);
  backdrop-filter: blur(10px);
  box-shadow: 0 14px 30px rgba(0,0,0,.35);
  transition: transform .2s ease, background .2s ease;
}
.fbtn:hover{transform: translateY(-2px); background: rgba(15,27,51,.78)}
.fbtn svg{width:22px; height:22px}
.fbtn.whatsapp{border-color: rgba(34,197,94,.35)}
.fbtn.call{border-color: rgba(245,158,11,.35)}
/* Responsive */
@media (max-width: 900px){
  .hero-grid{grid-template-columns: 1fr; gap: 1.2rem}
  .services{grid-template-columns: 1fr}
  .gallery{grid-template-columns: repeat(2, minmax(0,1fr))}
  .split{grid-template-columns: 1fr}
  .contact-grid{grid-template-columns: 1fr}
  nav ul{display:none}
  .hamburger{display:inline-grid; place-items:center}
  .nav.open nav ul{
    display:flex; flex-direction:column; align-items:stretch;
    position:absolute; left:4vw; right:4vw; top:74px;
    background: rgba(11,18,32,.92);
    border:1px solid rgba(255,255,255,.12);
    border-radius: 18px;
    padding:.6rem;
    backdrop-filter: blur(14px);
  }
  .nav.open nav a{display:block}
}