:root{
  --azul:#0a1a30; --azul2:#0f2a4d; --azul3:#16375f;
  --cian:#00c2e0; --cian2:#0090b8; --verde:#1fb98a; --ambar:#ffb020;
  --crema:#f7fafc; --blanco:#fff; --texto:#12233d; --muted:#677c96; --borde:#e0eaf4;
  --sombra:0 18px 50px rgba(10,26,48,.12);
  --r:16px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  color:var(--texto);background:var(--blanco);line-height:1.65;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.wrap{width:min(1180px,92%);margin-inline:auto}

/* ── NAV ── */
header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  transition:background .3s,box-shadow .3s,padding .3s;
  padding:18px 0;
}
header.solido{background:rgba(10,26,48,.97);backdrop-filter:blur(12px);
  box-shadow:0 4px 24px rgba(0,0,0,.18);padding:10px 0}
.nav{display:flex;align-items:center;gap:18px}
.logo{display:flex;align-items:center;gap:10px;font-weight:800;color:#fff;font-size:1.02rem;letter-spacing:.2px}
.logo .marca{
  width:34px;height:34px;border-radius:9px;display:grid;place-items:center;flex:none;
  background:linear-gradient(135deg,var(--cian),var(--verde));color:#04212c;font-weight:800;font-size:.95rem;
}
.menu{margin-left:auto;display:flex;gap:26px;align-items:center}
.menu a{color:rgba(255,255,255,.86);font-size:.87rem;font-weight:500;transition:color .2s;position:relative}
.menu a:hover{color:#fff}
.menu a::after{content:"";position:absolute;left:0;bottom:-5px;width:0;height:2px;
  background:var(--cian);transition:width .25s}
.menu a:hover::after{width:100%}
.btn-nav{
  background:linear-gradient(135deg,var(--cian),var(--cian2));color:#fff;font-weight:600;
  padding:11px 22px;border-radius:999px;font-size:.85rem;transition:.22s;
  border:0;cursor:pointer;font-family:inherit;
}
.btn-nav:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(0,194,224,.38)}
.hamburguesa{display:none;background:none;border:0;cursor:pointer;padding:8px}
.hamburguesa span{display:block;width:24px;height:2px;background:#fff;margin:5px 0;transition:.3s}

/* ── HERO ── */
.hero{
  position:relative;min-height:100vh;display:flex;align-items:center;
  background:linear-gradient(150deg,#071427 0%,var(--azul) 42%,#123055 100%);
  color:#fff;padding:120px 0 90px;overflow:hidden;
}
.hero::before{
  content:"";position:absolute;inset:0;
  background-image:url("/assets/cilara/hero-cilara.jpg");
  background-size:cover;background-position:center;opacity:.28;
}
.hero::after{
  content:"";position:absolute;inset:0;
  background:radial-gradient(ellipse at 75% 25%,rgba(0,194,224,.16),transparent 55%),
             linear-gradient(180deg,rgba(10,26,48,.35),rgba(10,26,48,.92));
}
.hero .wrap{position:relative;z-index:2}
.etiqueta{
  display:inline-flex;align-items:center;gap:9px;background:rgba(0,194,224,.13);
  border:1px solid rgba(0,194,224,.34);color:#8ff0ff;padding:8px 17px;border-radius:999px;
  font-size:.75rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase;margin-bottom:26px;
}
.punto{width:7px;height:7px;border-radius:50%;background:var(--verde);animation:latir 2s infinite}
@keyframes latir{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(31,185,138,.6)}50%{opacity:.7;box-shadow:0 0 0 7px rgba(31,185,138,0)}}
.hero h1{
  font-size:clamp(2.1rem,5.2vw,3.9rem);line-height:1.1;font-weight:800;
  letter-spacing:-1.2px;max-width:16ch;margin-bottom:24px;
}
.hero h1 em{
  font-style:normal;
  background:linear-gradient(120deg,var(--cian),var(--verde));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero p.sub{font-size:clamp(1rem,1.6vw,1.16rem);color:#b9cee5;max-width:58ch;margin-bottom:34px}
.acciones{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:52px}
.btn{
  display:inline-flex;align-items:center;gap:9px;padding:15px 30px;border-radius:999px;
  font-weight:600;font-size:.94rem;transition:.24s;border:0;cursor:pointer;font-family:inherit;
}
.btn-prim{background:linear-gradient(135deg,var(--cian),var(--cian2));color:#fff}
.btn-prim:hover{transform:translateY(-3px);box-shadow:0 14px 32px rgba(0,194,224,.4)}
.btn-sec{background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.24)}
.btn-sec:hover{background:rgba(255,255,255,.16);transform:translateY(-3px)}
.cifras{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:22px;
  border-top:1px solid rgba(255,255,255,.13);padding-top:32px;max-width:760px}
.cifra b{display:block;font-size:1.85rem;font-weight:800;color:var(--cian);line-height:1.1}
.cifra span{font-size:.79rem;color:#93aecb;text-transform:uppercase;letter-spacing:.7px}

/* ── SECCIONES ── */
section{padding:92px 0}
.encabezado{max-width:720px;margin-bottom:52px}
.encabezado .mini{
  color:var(--cian2);font-size:.76rem;font-weight:700;letter-spacing:1.5px;
  text-transform:uppercase;margin-bottom:13px;display:block;
}
.encabezado h2{font-size:clamp(1.7rem,3.4vw,2.6rem);line-height:1.15;letter-spacing:-.8px;margin-bottom:16px}
.encabezado p{color:var(--muted);font-size:1.03rem}
.gris{background:var(--crema)}

/* ── DOLORES ── */
.dolores{display:grid;grid-template-columns:repeat(auto-fit,minmax(268px,1fr));gap:20px}
.dolor{
  background:#fff;border:1px solid var(--borde);border-radius:var(--r);padding:26px 24px;
  transition:.26s;position:relative;overflow:hidden;
}
.dolor::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;
  background:linear-gradient(180deg,var(--cian),var(--verde));transform:scaleY(0);
  transform-origin:top;transition:transform .3s}
.dolor:hover{transform:translateY(-5px);box-shadow:var(--sombra);border-color:#cbe0f2}
.dolor:hover::before{transform:scaleY(1)}
.dolor h3{font-size:1.02rem;margin-bottom:9px;font-weight:700}
.dolor p{color:var(--muted);font-size:.9rem}

/* ── SERVICIOS ── */
.servicios{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:22px}
.servicio{
  background:#fff;border:1px solid var(--borde);border-radius:var(--r);padding:30px 26px;
  transition:.26s;display:flex;flex-direction:column;
}
.servicio:hover{transform:translateY(-6px);box-shadow:var(--sombra);border-color:#cbe0f2}
.servicio .icono{
  width:56px;height:56px;border-radius:14px;display:grid;place-items:center;margin-bottom:19px;
  background:linear-gradient(135deg,rgba(0,194,224,.13),rgba(31,185,138,.13));
  color:var(--cian2);font-size:1.5rem;
}
.servicio h3{font-size:1.1rem;margin-bottom:10px;font-weight:700}
.servicio p{color:var(--muted);font-size:.9rem;flex:1;margin-bottom:16px}
.servicio ul{list-style:none;display:flex;flex-direction:column;gap:7px}
.servicio li{font-size:.85rem;color:#42586f;padding-left:22px;position:relative}
.servicio li::before{
  content:"✓";position:absolute;left:0;color:var(--verde);font-weight:800;
}

/* ── PLANES ── */
.planes{display:grid;grid-template-columns:repeat(auto-fit,minmax(292px,1fr));gap:24px;align-items:start}
.plan{
  background:#fff;border:1px solid var(--borde);border-radius:20px;padding:34px 28px;
  transition:.28s;position:relative;
}
.plan:hover{transform:translateY(-6px);box-shadow:var(--sombra)}
.plan.destacado{
  border:2px solid var(--cian);box-shadow:0 20px 55px rgba(0,194,224,.2);
  transform:scale(1.025);
}
.plan.destacado:hover{transform:scale(1.025) translateY(-6px)}
.cinta{
  position:absolute;top:-13px;left:50%;transform:translateX(-50%);
  background:linear-gradient(135deg,var(--cian),var(--verde));color:#fff;
  padding:6px 18px;border-radius:999px;font-size:.7rem;font-weight:700;
  letter-spacing:.8px;text-transform:uppercase;white-space:nowrap;
}
.plan .nombre{font-size:.79rem;font-weight:700;color:var(--cian2);
  letter-spacing:1.3px;text-transform:uppercase;margin-bottom:14px}
.plan .precio{display:flex;align-items:baseline;gap:6px;margin-bottom:6px}
.plan .precio b{font-size:2.7rem;font-weight:800;letter-spacing:-1.5px;line-height:1}
.plan .precio small{color:var(--muted);font-size:.86rem}
.plan .nota{color:var(--muted);font-size:.82rem;margin-bottom:22px;
  padding-bottom:20px;border-bottom:1px solid var(--borde)}
.plan ul{list-style:none;display:flex;flex-direction:column;gap:11px;margin-bottom:26px}
.plan li{font-size:.88rem;color:#3c5168;padding-left:24px;position:relative}
.plan li::before{content:"✓";position:absolute;left:0;color:var(--verde);font-weight:800}
.plan .btn{width:100%;justify-content:center}

/* ── COLECTIVO ── */
.colectivo{
  background:linear-gradient(150deg,var(--azul),var(--azul3));color:#fff;
  border-radius:24px;padding:56px 44px;position:relative;overflow:hidden;
}
.colectivo::before{
  content:"";position:absolute;right:-80px;top:-80px;width:320px;height:320px;
  border-radius:50%;background:radial-gradient(circle,rgba(0,194,224,.24),transparent 68%);
}
.colectivo .wrap-int{position:relative;z-index:2}
.colectivo h2{font-size:clamp(1.6rem,3vw,2.3rem);margin-bottom:16px;letter-spacing:-.6px}
.colectivo > .wrap-int > p{color:#b9cee5;max-width:66ch;margin-bottom:36px}
.escalas{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}
.escala{
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);
  border-radius:14px;padding:20px;text-align:center;transition:.24s;
}
.escala:hover{background:rgba(255,255,255,.13);transform:translateY(-4px)}
.escala b{display:block;font-size:1.9rem;font-weight:800;color:var(--ambar);line-height:1.1;margin-bottom:5px}
.escala span{font-size:.79rem;color:#a8c1da}

/* ── CASOS ── */
.casos{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px}
.caso{border-radius:var(--r);overflow:hidden;border:1px solid var(--borde);background:#fff;transition:.26s}
.caso:hover{transform:translateY(-5px);box-shadow:var(--sombra)}
.caso img{aspect-ratio:16/10;object-fit:cover;width:100%}
.caso .cuerpo{padding:22px}
.caso h3{font-size:1rem;margin-bottom:7px}
.caso p{color:var(--muted);font-size:.86rem}

/* ── SALOMÉ ── */
.salome-sec{background:var(--crema)}
.salome-caja{
  display:grid;grid-template-columns:1fr 1.15fr;gap:44px;align-items:center;
  background:#fff;border:1px solid var(--borde);border-radius:24px;padding:46px;
  box-shadow:var(--sombra);
}
.salome-texto h2{font-size:clamp(1.5rem,2.8vw,2.1rem);line-height:1.2;margin-bottom:16px;letter-spacing:-.6px}
.salome-texto p{color:var(--muted);margin-bottom:22px}
.salome-texto ul{list-style:none;display:flex;flex-direction:column;gap:10px;margin-bottom:26px}
.salome-texto li{font-size:.9rem;padding-left:26px;position:relative;color:#3c5168}
.salome-texto li::before{content:"▸";position:absolute;left:0;color:var(--cian2);font-weight:800}
.mock{
  background:linear-gradient(150deg,#071427,var(--azul2));border-radius:18px;
  padding:22px;color:#fff;box-shadow:0 22px 50px rgba(10,26,48,.28);
}
.mock-top{display:flex;align-items:center;gap:11px;padding-bottom:16px;
  border-bottom:1px solid rgba(255,255,255,.12);margin-bottom:16px}
.mock-av{width:38px;height:38px;border-radius:50%;flex:none;display:grid;place-items:center;
  font-weight:800;font-size:.85rem;
  background:conic-gradient(from 200deg,var(--ambar),var(--cian),var(--verde),var(--ambar))}
.mock-top b{font-size:.88rem;display:block;line-height:1.2}
.mock-top small{color:#8fb0d0;font-size:.7rem}
.burbuja{
  background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.1);
  border-radius:13px;border-bottom-left-radius:4px;padding:12px 15px;
  font-size:.83rem;line-height:1.55;margin-bottom:10px;color:#dbe9f6;
}
.burbuja.yo{background:linear-gradient(135deg,var(--cian2),#00789b);border:0;
  border-radius:13px;border-bottom-right-radius:4px;margin-left:auto;max-width:82%;color:#fff}
.onda{display:flex;align-items:center;gap:3px;height:20px;margin-top:12px}
.onda i{width:3px;border-radius:2px;background:var(--cian);animation:onda 1.1s infinite ease-in-out}
@keyframes onda{0%,100%{height:5px;opacity:.5}50%{height:19px;opacity:1}}

/* ── MAPA ── */
.mapa-caja{display:grid;grid-template-columns:1fr 1.35fr;gap:36px;align-items:stretch}
.mapa-info{display:flex;flex-direction:column;gap:18px}
.dato{display:flex;gap:14px;align-items:flex-start}
.dato .ic{
  width:42px;height:42px;border-radius:11px;flex:none;display:grid;place-items:center;
  background:rgba(0,194,224,.1);color:var(--cian2);font-size:1.05rem;
}
.dato b{display:block;font-size:.79rem;color:var(--muted);text-transform:uppercase;
  letter-spacing:.8px;font-weight:600;margin-bottom:2px}
.dato span{font-size:.94rem}
.dato a{color:var(--cian2);font-weight:600}
.mapa-caja iframe{
  width:100%;height:100%;min-height:380px;border:0;border-radius:var(--r);
  box-shadow:var(--sombra);
}

/* ── CTA FINAL ── */
.cta-final{
  background:linear-gradient(140deg,var(--azul),#12375f);color:#fff;
  border-radius:24px;padding:64px 40px;text-align:center;position:relative;overflow:hidden;
}
.cta-final::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 50% 0%,rgba(0,194,224,.2),transparent 62%);
}
.cta-final > *{position:relative;z-index:2}
.cta-final h2{font-size:clamp(1.6rem,3.2vw,2.4rem);margin-bottom:15px;letter-spacing:-.7px}
.cta-final p{color:#b9cee5;max-width:56ch;margin:0 auto 30px}
.cta-final .acciones{justify-content:center;margin-bottom:0}

/* ── FOOTER ── */
footer{background:#071427;color:#8ba6c2;padding:56px 0 26px;font-size:.86rem}
.pie-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:40px;margin-bottom:38px}
.pie-grid h4{color:#fff;font-size:.83rem;margin-bottom:15px;letter-spacing:.6px;text-transform:uppercase}
.pie-grid ul{list-style:none;display:flex;flex-direction:column;gap:9px}
.pie-grid a:hover{color:var(--cian)}
.legal{border-top:1px solid rgba(255,255,255,.1);padding-top:22px;
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.78rem}

/* ── REVEAL ── */
.rev{opacity:0;transform:translateY(26px);transition:opacity .65s ease,transform .65s ease}
.rev.visto{opacity:1;transform:none}

/* ── RESPONSIVE ── */
@media(max-width:940px){
  .salome-caja{grid-template-columns:1fr;padding:32px}
  .mapa-caja{grid-template-columns:1fr}
  .pie-grid{grid-template-columns:1fr 1fr}
  .plan.destacado{transform:none}
  .plan.destacado:hover{transform:translateY(-6px)}
}
@media(max-width:760px){
  .menu{
    position:fixed;top:0;right:0;bottom:0;width:min(300px,82vw);
    background:rgba(7,20,39,.99);backdrop-filter:blur(16px);
    flex-direction:column;justify-content:center;gap:26px;
    transform:translateX(100%);transition:transform .32s ease;padding:40px;
    box-shadow:-8px 0 40px rgba(0,0,0,.4);
  }
  .menu.abierto{transform:none}
  .menu a{font-size:1.05rem}
  .hamburguesa{display:block;margin-left:auto}
  header{padding:14px 0}
  section{padding:66px 0}
  .hero{padding:110px 0 70px;min-height:auto}
  .acciones{flex-direction:column;align-items:stretch}
  .btn{justify-content:center}
  .cifras{grid-template-columns:1fr 1fr;gap:18px}
  .colectivo{padding:38px 24px}
  .cta-final{padding:46px 24px}
  .pie-grid{grid-template-columns:1fr;gap:28px}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .rev{opacity:1;transform:none}
}

/* ══════════ PÁGINAS INTERNAS ══════════ */
.cabecera-pagina{
  background:linear-gradient(150deg,#071427 0%,var(--azul) 45%,#123055 100%);
  color:#fff;padding:150px 0 70px;position:relative;overflow:hidden;
}
.cabecera-pagina::after{
  content:"";position:absolute;inset:0;
  background:radial-gradient(ellipse at 78% 20%,rgba(0,194,224,.15),transparent 58%);
  pointer-events:none;
}
.cabecera-pagina .wrap{position:relative;z-index:2}
.cabecera-pagina h1{
  font-size:clamp(1.9rem,4.2vw,3rem);line-height:1.12;letter-spacing:-1px;
  margin-bottom:16px;max-width:20ch;
}
.cabecera-pagina p{color:#b9cee5;max-width:62ch;font-size:1.03rem}
.migas{font-size:.78rem;color:#8fb0d0;margin-bottom:18px}
.migas a{color:#8fb0d0}
.migas a:hover{color:var(--cian)}

.rejilla{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:22px;
}
.tarjeta{
  background:#fff;border:1px solid var(--borde);border-radius:var(--r);
  padding:28px 26px;transition:.26s;display:flex;flex-direction:column;
}
.tarjeta:hover{transform:translateY(-5px);box-shadow:var(--sombra);border-color:#cbe0f2}
.tarjeta h3{font-size:1.06rem;margin-bottom:10px;font-weight:700}
.tarjeta p{color:var(--muted);font-size:.9rem;flex:1;margin-bottom:14px}
.tarjeta .num{
  display:inline-grid;place-items:center;width:38px;height:38px;border-radius:10px;
  background:linear-gradient(135deg,rgba(0,194,224,.14),rgba(31,185,138,.14));
  color:var(--cian2);font-weight:800;font-size:.85rem;margin-bottom:14px;
}
.tarjeta ul{list-style:none;display:flex;flex-direction:column;gap:7px}
.tarjeta li{font-size:.85rem;color:#42586f;padding-left:20px;position:relative}
.tarjeta li::before{content:"✓";position:absolute;left:0;color:var(--verde);font-weight:800}

.precio-fila{
  display:flex;justify-content:space-between;gap:14px;padding:13px 0;
  border-bottom:1px solid var(--borde);font-size:.92rem;align-items:baseline;
}
.precio-fila:last-child{border-bottom:0}
.precio-fila b{color:var(--cian2);white-space:nowrap;font-weight:700}
.tabla-caja{
  background:#fff;border:1px solid var(--borde);border-radius:var(--r);
  padding:24px 26px;box-shadow:0 2px 10px rgba(15,40,80,.04);
}
.tabla-caja h3{font-size:1rem;margin-bottom:8px}
.tabla-caja .nota{font-size:.8rem;color:var(--muted);margin-bottom:14px}

.pasos{counter-reset:paso;display:grid;gap:20px}
.paso{
  display:flex;gap:18px;background:#fff;border:1px solid var(--borde);
  border-radius:var(--r);padding:24px;transition:.24s;
}
.paso:hover{box-shadow:var(--sombra);border-color:#cbe0f2}
.paso::before{
  counter-increment:paso;content:counter(paso);
  flex:none;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--cian),var(--verde));color:#fff;
  font-weight:800;font-size:1rem;
}
.paso h3{font-size:1rem;margin-bottom:6px}
.paso p{color:var(--muted);font-size:.9rem}

/* Iconos de servicio con imagen */
.icono-img{
  width:56px;height:56px;object-fit:contain;border-radius:12px;
  margin-bottom:14px;display:block;background:#f2f8fe;padding:6px;
}
.servicio .icono-img{transition:transform .25s}
.servicio:hover .icono-img{transform:scale(1.08)}
/* Casos con imagen garantizada */
.caso img{width:100%;height:190px;object-fit:cover;display:block;background:#e8f0f8}

/* Imagen de cabecera en paginas internas */
.cabecera-img{
  width:100%;max-width:900px;height:auto;border-radius:14px;
  margin-top:30px;display:block;opacity:.92;
  box-shadow:0 14px 40px rgba(0,0,0,.35);
}
