:root{
  --grafito:#22262b; --grafito2:#2e343c; --grafito3:#3c444e;
  --celeste:#15688f; --celeste2:#5cb8e3; --celeste3:#1a7cab; --celeste-suave:#e9f3f9;
  --tinta:#191c20; --tinta2:#525a64; --tinta3:#7c858f;
  --linea:#e1e4e8; --fondo:#f6f7f8; --blanco:#fff;
  --ancho:1120px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  color:var(--tinta); background:var(--blanco); line-height:1.65; font-size:16.5px;
  -webkit-font-smoothing:antialiased;
}
.wrap{max-width:var(--ancho); margin:0 auto; padding:0 24px}
a{color:inherit}
h1,h2,h3{line-height:1.2; letter-spacing:-.018em}
.enlace{color:var(--celeste); font-weight:600}
.enlace:hover{color:var(--celeste3)}

/* ---------- barra ---------- */
.barra{position:sticky; top:0; z-index:40; background:rgba(34,38,43,.97); backdrop-filter:blur(8px);
  border-bottom:1px solid rgba(255,255,255,.08)}
.barra .wrap{display:flex; align-items:center; justify-content:space-between; height:66px; gap:24px}
.logo{display:flex; align-items:center; gap:11px; text-decoration:none; flex-shrink:0}
.logo svg{display:block}
.logo .txt{color:#fff; font-size:22px; font-weight:700; letter-spacing:.035em; line-height:1}
.nav{display:flex; align-items:center; gap:27px}
.nav a{color:#c3cad2; text-decoration:none; font-size:14.2px; font-weight:500; white-space:nowrap}
.nav a:hover{color:#fff}
.nav a.cta{background:var(--celeste); color:#fff; padding:9px 17px; border-radius:6px; font-weight:600}
.nav a.cta:hover{background:var(--celeste3)}
@media(max-width:900px){ .nav a:not(.cta){display:none} .barra .wrap{height:60px} }
@media(max-width:470px){
  .barra .wrap{gap:10px; padding:0 16px}
  .logo svg{width:26px; height:26px}
  .logo .txt{font-size:19px}
  .nav a.cta{font-size:13px; padding:8px 12px}
  .wrap{padding:0 16px}
}

/* ---------- hero ---------- */
.hero{background:linear-gradient(160deg,#22262b 0%,#2e343c 58%,#363d47 100%); color:#fff;
  padding:82px 0 88px; position:relative; overflow:hidden}
.hero::after{content:""; position:absolute; right:-130px; top:-130px; width:460px; height:460px;
  border:72px solid rgba(92,184,227,.10); border-radius:50%}
.hero .wrap{position:relative; z-index:1}
.kicker{display:inline-block; font-size:11.4px; font-weight:700; letter-spacing:.19em; text-transform:uppercase;
  color:var(--celeste2); border:1px solid rgba(92,184,227,.4); padding:6px 13px; border-radius:40px; margin-bottom:26px}
.hero h1{font-size:46px; font-weight:700; max-width:17ch; margin-bottom:22px}
.hero h1 em{font-style:normal; color:var(--celeste2)}
.hero p.lead{font-size:18.5px; color:#c7ced6; max-width:62ch; margin-bottom:34px}
.acciones{display:flex; flex-wrap:wrap; gap:13px; margin-bottom:46px}
.btn{display:inline-block; padding:13px 25px; border-radius:7px; text-decoration:none; font-weight:600; font-size:15.5px}
.btn.p{background:var(--celeste); color:#fff}
.btn.p:hover{background:var(--celeste3)}
.btn.s{border:1px solid rgba(255,255,255,.3); color:#fff}
.btn.s:hover{border-color:#fff; background:rgba(255,255,255,.06)}
.hero-pie{display:flex; flex-wrap:wrap; gap:16px 36px; padding-top:28px; border-top:1px solid rgba(255,255,255,.13)}
.hero-pie div{font-size:13.4px; color:#a8b2bd}
.hero-pie b{display:block; color:#fff; font-size:15px; font-weight:600; margin-bottom:1px}
@media(max-width:760px){ .hero{padding:58px 0 62px} .hero h1{font-size:33px} .hero p.lead{font-size:16.5px} }

/* ---------- secciones ---------- */
section{padding:76px 0}
section.alt{background:var(--fondo); border-top:1px solid var(--linea); border-bottom:1px solid var(--linea)}
.eyebrow{font-size:11.4px; font-weight:700; letter-spacing:.19em; text-transform:uppercase;
  color:var(--celeste); margin-bottom:13px}
section h2{font-size:33px; font-weight:700; max-width:20ch; margin-bottom:17px}
.intro{font-size:17.2px; color:var(--tinta2); max-width:68ch; margin-bottom:38px}
.sub-t{font-size:13.4px; color:var(--celeste); letter-spacing:.14em; text-transform:uppercase; margin-bottom:17px}
@media(max-width:760px){ section{padding:52px 0} section h2{font-size:26px} }

.grid{display:grid; gap:22px}
.g3{grid-template-columns:repeat(3,1fr)}
.g2{grid-template-columns:repeat(2,1fr)}
@media(max-width:860px){ .g3,.g2{grid-template-columns:1fr} }

.tarjeta{background:var(--blanco); border:1px solid var(--linea); border-radius:11px; padding:27px 25px}
.tarjeta .num{display:inline-flex; align-items:center; justify-content:center; width:31px; height:31px;
  border-radius:8px; background:var(--celeste-suave); color:var(--celeste); font-weight:700; font-size:14px;
  margin-bottom:15px}
.tarjeta h3{font-size:17.5px; margin-bottom:9px}
.tarjeta p{font-size:15px; color:var(--tinta2)}

.trio{display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin-top:4px}
.trio div{padding:20px 20px 20px 0; border-top:3px solid var(--celeste)}
.trio div + div{padding-left:24px}
.trio b{display:block; font-size:17.5px; margin-bottom:6px}
.trio span{font-size:15px; color:var(--tinta2)}
@media(max-width:760px){ .trio{grid-template-columns:1fr} .trio div + div{padding-left:0} }

.listado{list-style:none; display:grid; gap:13px}
.listado li{position:relative; padding-left:28px; font-size:15.8px; color:var(--tinta2)}
.listado li::before{content:""; position:absolute; left:0; top:9px; width:11px; height:11px;
  border:2.5px solid var(--celeste); border-radius:3px}
.listado li b{color:var(--tinta)}

.nota{border-left:3px solid var(--celeste); background:var(--celeste-suave); padding:17px 21px;
  border-radius:0 8px 8px 0; margin-top:30px; font-size:15.3px; color:#3c4a55}
.nota b{color:#143a4e}

/* ---------- portal ---------- */
.portal{display:grid; grid-template-columns:1.15fr .85fr; gap:40px; align-items:center}
@media(max-width:900px){ .portal{grid-template-columns:1fr} }
.ticket{background:var(--grafito); border-radius:12px; padding:25px 25px 21px; color:#fff}
.ticket .cab{display:flex; justify-content:space-between; align-items:baseline;
  border-bottom:1px solid rgba(255,255,255,.14); padding-bottom:12px; margin-bottom:5px}
.ticket .cab span{font-size:10.6px; letter-spacing:.14em; text-transform:uppercase; color:#98a2ad; font-weight:600}
.ticket .cab b{font-size:14px; color:var(--celeste2)}
.ticket .fila{display:flex; justify-content:space-between; gap:16px; padding:10px 0;
  border-bottom:1px solid rgba(255,255,255,.07); font-size:14.4px}
.ticket .fila:last-of-type{border-bottom:none}
.ticket .fila i{font-style:normal; color:#c3cad2}
.ticket .fila em{font-style:normal; color:#fff; font-weight:600; white-space:nowrap}
.ticket .ok{margin-top:13px; background:rgba(92,184,227,.17); color:var(--celeste2); border-radius:7px;
  padding:9px 13px; font-size:13.2px; font-weight:600; text-align:center}
.ticket .pie{margin-top:11px; font-size:11.4px; color:#79828d; text-align:center}

/* ---------- etapas ---------- */
.etapas{display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin-top:8px}
.etapas div{padding:22px 18px 22px 0; border-top:3px solid var(--linea)}
.etapas div.on{border-top-color:var(--celeste)}
.etapas div + div{padding-left:22px}
.etapas b{display:block; font-size:15.5px; margin-bottom:6px}
.etapas p{font-size:14.2px; color:var(--tinta2)}
@media(max-width:860px){ .etapas{grid-template-columns:1fr 1fr} .etapas div + div{padding-left:0} }
@media(max-width:520px){ .etapas{grid-template-columns:1fr} }

/* ---------- cobertura ---------- */
.ciudades{display:flex; flex-wrap:wrap; gap:11px; margin-top:6px}
.ciudades span{border:1px solid var(--linea); background:var(--blanco); border-radius:40px;
  padding:9px 19px; font-size:15px; font-weight:600}
.ciudades span::before{content:""; display:inline-block; width:7px; height:7px; border-radius:50%;
  background:var(--celeste); margin-right:9px; vertical-align:middle}

/* ---------- contacto ---------- */
.contacto{background:var(--grafito); color:#fff; padding:72px 0}
.contacto h2{color:#fff; max-width:22ch; font-size:33px; font-weight:700; margin-bottom:17px}
.contacto .eyebrow{color:var(--celeste2)}
.contacto .intro{color:#c3cad2}
.vias{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:34px}
@media(max-width:860px){ .vias{grid-template-columns:1fr} }
.via{border:1px solid rgba(255,255,255,.17); border-radius:11px; padding:23px; text-decoration:none; display:block}
.via:hover{border-color:var(--celeste2); background:rgba(255,255,255,.04)}
.via span{display:block; font-size:10.8px; letter-spacing:.17em; text-transform:uppercase;
  color:#98a2ad; font-weight:700; margin-bottom:9px}
.via b{display:block; font-size:18px; font-weight:600; color:#fff; word-break:break-word}
.via i{font-style:normal; display:block; font-size:13.6px; color:#a8b2bd; margin-top:5px}

/* ---------- pie ---------- */
footer{background:#1a1d21; color:#8b949e; padding:34px 0; font-size:13.6px}
footer .wrap{display:flex; flex-wrap:wrap; justify-content:space-between; gap:14px}
footer b{color:#dfe4e9; font-weight:600}
footer a{color:var(--celeste2)}

/* ---------- página interior ---------- */
.doc{padding:60px 0 80px}
.doc .wrap{max-width:820px}
.doc h1{font-size:34px; margin-bottom:10px}
.doc .meta{color:var(--tinta3); font-size:14.2px; margin-bottom:34px; padding-bottom:22px;
  border-bottom:1px solid var(--linea)}
.doc h2{font-size:21px; margin:38px 0 12px; color:var(--grafito)}
.doc h3{font-size:16.5px; margin:22px 0 8px}
.doc p{margin-bottom:13px; color:var(--tinta2)}
.doc ul{margin:4px 0 16px 0; padding-left:20px}
.doc li{margin-bottom:8px; color:var(--tinta2)}
.tabla{overflow-x:auto; margin:14px 0 20px; -webkit-overflow-scrolling:touch}
.doc table{width:100%; min-width:560px; border-collapse:collapse; font-size:14.6px}
.doc th{background:var(--grafito); color:#fff; text-align:left; padding:9px 12px; font-size:12.4px;
  letter-spacing:.06em; text-transform:uppercase; font-weight:600}
.doc td{padding:9px 12px; border-bottom:1px solid var(--linea); color:var(--tinta2); vertical-align:top}
.doc tr:last-child td{border-bottom:none}
.volver{display:inline-block; margin-bottom:24px; font-size:14.4px; color:var(--celeste); font-weight:600;
  text-decoration:none}
