:root{
  --primary:#0B3B91;
  --primary-600:#0a3481;
  --secondary:#0FB37F;
  --accent:#7ae3c5;
  --bg:#0B1220;
  --muted:#6b7280;
  --text:#0f172a;
  --card:#ffffff;
  --surface:#f8fafc;
  --ring: rgba(15,179,127,0.35);
  --radius: 20px;
  --shadow: 0 10px 30px rgba(2,6,23,.08);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,'Helvetica Neue',Arial,sans-serif;color:var(--text);}
a{color:inherit;text-decoration:none}
.container{width:min(1120px,92vw);margin-inline:auto}

/* Utils */
.accent{color:var(--accent)}
.mt-12{margin-top:12px}
.mb-10{margin-bottom:10px}
.flex-1{flex:1}
.flex-2{flex:2}
.flex-3{flex:3}
.muted{color:#64748b}

/* Header */
header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(255,255,255,.9);
  border-bottom:1px solid #e5e7eb;
  backdrop-filter:saturate(180%) blur(6px);
  --header-h:64px; /* altura para móvil */
}
.nav{display:flex;align-items:center;justify-content:space-between;padding:14px 0;min-height:var(--header-h)}
.brand{display:flex;gap:12px;align-items:center}
.logo{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,var(--primary),#1e90ff);display:grid;place-items:center;color:#fff;font-weight:800;box-shadow:var(--shadow)}
.brand h1{font-size:18px;margin:0;font-weight:800;letter-spacing:.2px}
.nav a.btn{padding:10px 16px;border-radius:999px;background:var(--secondary);color:#fff;font-weight:700;box-shadow:0 6px 20px rgba(15,179,127,.35)}
.nav a.btn:hover{transform:translateY(-1px)}
.nav-links{display:flex;gap:16px;align-items:center}

/* Botón hamburguesa (oculto en desktop) */
.nav-toggle{
  display:none;
  width:44px;height:44px;
  border:1px solid #e5e7eb;
  border-radius:12px;
  background:#fff;
  align-items:center;justify-content:center;
  gap:4px;padding:0 10px;cursor:pointer;
}
.nav-toggle .bar{
  display:block;width:20px;height:2px;background:#0f172a;
  transition:transform .2s ease, opacity .2s ease;
}
/* Icono en X cuando está abierto */
header.open .nav-toggle .bar:nth-child(1){ transform: translateY(6px) rotate(45deg); }
header.open .nav-toggle .bar:nth-child(2){ opacity:0; }
header.open .nav-toggle .bar:nth-child(3){ transform: translateY(-6px) rotate(-45deg); }

/* Hero */
.hero{background:radial-gradient(1200px 600px at 50% -10%, #0b3b91 15%, #0b1220 55%, #070b14 80%), linear-gradient(180deg,#06112a,#070b14);color:#e6f0ff}
.hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:36px;padding:72px 0}
.kicker{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid rgba(255,255,255,.25);border-radius:999px;font-size:12px;color:#d1e3ff;background:rgba(255,255,255,.06)}
.hero h2{margin:14px 0 10px;font-size:42px;line-height:1.1;letter-spacing:-.5px}
.hero p{margin:0 0 18px;color:#bfd2ff}
.badges{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0 22px}
.badge{padding:6px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.2);font-size:12px;color:#cfe0ff}
.panel{background:#ffffff;border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);color:var(--text)}
.panel h3{margin:0 0 12px;font-size:18px}

/* ====== Form layout base (desktop/tablet) ====== */
.form-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:12px;
}
/* La fila email/plan en 2 columnas en pantallas grandes */
.form-grid .row{
  display:grid;
  grid-template-columns: 2fr 1fr; /* email más ancho que plan */
  gap:10px;
}
label{font-size:12px;color:#334155;font-weight:600}
/* Inputs cómodos para tocar */
input, select{
  width:100%;
  padding:12px 12px;
  border-radius:12px;
  border:1px solid #e5e7eb;
  outline:0;
  font-size:16px;   /* evita zoom en iOS al enfocar */
  min-height:44px;  /* objetivo táctil recomendado */
}
input:focus,select:focus{border-color:var(--secondary);box-shadow:0 0 0 4px var(--ring)}
.actions{display:flex;gap:10px;align-items:center}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;border-radius:12px;font-weight:700;border:none;cursor:pointer}
.btn-primary{background:var(--secondary);color:#fff}
.btn-secondary{background:#eef2ff;color:#1e40af}

/* Planes */
section{padding:56px 0}
.section-title{font-size:28px;margin:0 0 10px}
.section-sub{color:#64748b;margin:0 0 24px}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px;border:1px solid #e5e7eb}
.price{display:flex;align-items:baseline;gap:6px;margin:8px 0 14px}
.price .big{font-size:34px;font-weight:800}
.pill{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;background:#f1f5f9;font-size:12px;color:#0f172a}
.feat{display:grid;gap:8px;margin:12px 0}
.feat li{display:flex;gap:8px;align-items:flex-start}
.feat svg{flex:0 0 18px}

/* Beneficios */
.benefits{background:var(--surface)}
.benefit-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.benefit{background:#fff;border-radius:16px;padding:18px;border:1px solid #e5e7eb;box-shadow:var(--shadow)}

/* Cobertura */
.coverage .map{height:360px;border-radius:16px;overflow:hidden;border:1px solid #e5e7eb}
.coverage .map iframe{width:100%;height:100%;border:0}

/* FAQ */
details{background:#fff;border-radius:14px;border:1px solid #e5e7eb;padding:14px}
details+details{margin-top:10px}
summary{cursor:pointer;font-weight:700}

/* Footer */
footer{background:#0f172a;color:#cbd5e1;padding:36px 0;margin-top:36px}
footer a{color:#e2e8f0}
.cols{display:grid;grid-template-columns:2fr 1fr 1fr;gap:24px}
.credit{border-top:1px solid #1f2937;margin-top:16px;padding-top:16px;color:#9ca3af;font-size:12px}
.foot-list{list-style:none;padding:0;margin:10px 0;color:#cbd5e1}

/* Responsive generales */
@media (max-width:960px){
  .hero .wrap{grid-template-columns:1fr}
  .grid{grid-template-columns:1fr}
  .benefit-grid{grid-template-columns:1fr 1fr}
  .cols{grid-template-columns:1fr}
}

/* ====== Menú móvil (hamburguesa) ====== */
@media (max-width: 768px){
  .nav-toggle{ display:flex; }
  /* Panel del menú */
  .nav-links{
    position:fixed;
    top:var(--header-h); left:0; right:0;
    background:#ffffff;
    border-top:1px solid #e5e7eb;
    display:flex; flex-direction:column;
    padding:12px 16px;
    gap:8px;
    box-shadow:0 10px 30px rgba(2,6,23,.08);
    max-height:60vh;
    overflow:auto;
    z-index:60;

    /* Oculto por defecto */
    visibility:hidden; opacity:0; transform:translateY(-8px);
    pointer-events:none;
    transition:opacity .2s ease, transform .2s ease, visibility .2s;
  }
  /* Mostrar cuando el header tiene .open (JS la pone) */
  header.open .nav-links{
    visibility:visible; opacity:1; transform:translateY(0);
    pointer-events:auto;
  }
  /* Links más tocables en móvil */
  .nav-links a{
    padding:12px 10px;
    border-radius:10px;
  }
  .nav-links a:hover{ background:#f8fafc; }
  .nav-links .btn{ width:100%; text-align:center; }
}

/* ====== Ajustes formulario en teléfonos ====== */
@media (max-width: 640px){
  /* El grid del form se apila a 1 columna */
  .form-grid{
    grid-template-columns: 1fr;
    gap:12px;
  }
  /* La fila email/plan también se apila */
  .form-grid .row{
    grid-template-columns: 1fr;
    gap:10px;
  }
  /* Botones a ancho completo y en columna */
  .actions{
    flex-direction: column;
    align-items: stretch;
    gap:10px;
  }
  .actions .btn{
    width:100%;
  }
  /* Tarjeta con padding más contenido en móvil */
  .card{
    padding:16px;
    border-radius:16px;
  }
}

/* Bloqueo de scroll del body cuando el menú está abierto (se quita al cerrar) */
body.no-scroll{ overflow:hidden; }

/* WhatsApp fijo */
.wa{
  position:fixed;right:16px;bottom:16px;background:#25D366;color:#fff;
  padding:14px 16px;border-radius:999px;display:flex;gap:10px;align-items:center;
  font-weight:800;box-shadow:0 10px 30px rgba(37,211,102,.45)
}
