:root{
  /* Paleta y tokens */
  --color-primario:#1C2C6B;
  --color-secundario:#00AEEF;
  --color-acento:#FFD600;
  --color-texto:#0f172a;
  --color-texto-suave:#475569;
  --color-fondo:#f8fafc;
  --radio:16px;
  --sombra:0 6px 24px rgba(15,23,42,.08);
  --container:1100px;
}

/* Reset mínimo y utilidades */
*,:before,:after{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--color-fondo);color:var(--color-texto);line-height:1.6}
img{max-width:100%;height:auto;border-radius:var(--radio);display:block}
a{color:inherit;text-decoration:none}

/* Accesibilidad */
.skip-link{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.skip-link:focus{left:12px;top:12px;width:auto;height:auto;background:#fff;padding:8px 12px;border-radius:10px;box-shadow:var(--sombra);z-index:1000}
:focus-visible{outline:2px solid var(--color-secundario);outline-offset:2px}

/* Layout base */
.container{max-width:var(--container);margin:0 auto;padding:0 20px}
.section{padding:40px 0}
.section h2{font-size:clamp(22px,3vw,32px);margin:0 0 10px}
.sub{color:var(--color-texto-suave);margin-bottom:16px}
.card{background:#fff;border-radius:var(--radio);box-shadow:var(--sombra);padding:20px;transition:transform .2s ease,box-shadow .2s ease}
.card:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(15,23,42,.12)}

/* Botones */
.btn{display:inline-block;padding:12px 18px;border-radius:var(--radio);background:var(--color-primario);color:#fff;font-weight:600;box-shadow:var(--sombra);transition:transform .12s ease,background .12s ease}
.btn:hover{transform:translateY(-1px);background:var(--color-secundario)}
.btn-sec{background:var(--color-secundario);color:#fff}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap}

/* Header / Nav */
header{position:sticky;top:0;background:rgba(255,255,255,.9);backdrop-filter:blur(8px);border-bottom:1px solid #e5e7eb;z-index:20}
.nav{display:flex;align-items:center;justify-content:space-between;height:72px}
.brand{display:flex;gap:12px;align-items:center}
.brand img{height:46px;width:auto;border-radius:var(--radio)}
.menu{display:flex;gap:16px}
.menu a{padding:8px 12px;border-radius:12px;font-weight:600}
.menu a:hover{background:#eef2ff}
.hamb{display:none;border:1px solid #e5e7eb;background:#fff;border-radius:12px;padding:8px 12px}
.mobile-menu{display:block;padding:10px 0 16px}
.mobile-menu a{display:block;padding:10px 12px;border-radius:12px}
.mobile-menu a:hover{background:#eef2ff}

/* Hero */
.hero{padding:40px 0}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:20px;align-items:stretch}
.hero-grid .card,.hero-grid .slider{height:100%}
.hero h1{font-size:clamp(28px,4vw,44px);line-height:1.15;margin:6px 0 12px}
.hero p{color:var(--color-texto-suave)}

/* Indicadores (KPI) */
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.kpi-card{display:flex;align-items:center;gap:14px;background:#fff;border-radius:var(--radio);box-shadow:var(--sombra);padding:16px}
.kpi-icon{flex:0 0 54px;height:54px;display:grid;place-items:center;border-radius:16px;background:linear-gradient(135deg,var(--color-secundario) 0%,#8dd7ff 100%);color:#fff;box-shadow:0 8px 20px rgba(0,174,239,.25)}
.kpi-body{display:flex;flex-direction:column}
.kpi-value{font-size:clamp(22px,3.2vw,28px);font-weight:800;line-height:1;color:var(--color-primario)}
.kpi-label{color:var(--color-texto-suave);margin-top:4px}
#indicadores{padding-bottom:24px}
#indicadores+.section{padding-top:24px}

/* Plan de estudios (cards) */
.plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.plan-card{display:flex;flex-direction:column;background:#fff;border-radius:var(--radio);overflow:hidden;box-shadow:var(--sombra);color:inherit;text-decoration:none}
.plan-card .thumb{position:relative;aspect-ratio:16/9;overflow:hidden;background:#e5e7eb}
.plan-card .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.plan-card .content{padding:20px}
.plan-card h3{margin:0 0 8px}
.plan-card p{margin:0;color:var(--color-texto-suave)}
.plan-card:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(15,23,42,.15)}
.plan-card:hover .thumb img{transform:scale(1.05)}

/* Documentos */
.doc-card{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
#documentos .container{display:flex;flex-direction:column;gap:16px}

/* Contacto */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.contact-form label{display:block;margin-bottom:12px;font-weight:600}
.contact-form input,.contact-form select,.contact-form textarea{width:100%;padding:10px 14px;border:1px solid #cbd5e1;border-radius:12px;margin-top:4px;font-size:15px}
.contact-form button{width:100%;margin-top:12px}
.contact-info iframe{border:0;border-radius:12px}

/* Galería */
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin-top:20px}
.gallery img{width:100%;height:220px;object-fit:cover;border-radius:12px;box-shadow:var(--sombra);transition:transform .25s ease;cursor:pointer;background:#eef2f7}
.gallery img:hover{transform:scale(1.03)}

/* Slider */
.slider{position:relative;border-radius:var(--radio);overflow:hidden;box-shadow:var(--sombra);height:clamp(240px,45vw,480px)}
.slide{position:absolute;inset:0;opacity:0;transition:opacity .6s ease}
.slide.active{opacity:1}
.slider img{width:100%;height:100%;object-fit:cover;border-radius:0}
.slider .ctrl{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,.4);color:#fff;border:none;border-radius:999px;padding:10px 12px;cursor:pointer}
.slider .prev{left:10px}
.slider .next{right:10px}
.slider .dots{position:absolute;left:0;right:0;bottom:10px;display:flex;gap:6px;justify-content:center}
.slider .dot{width:10px;height:10px;border-radius:999px;background:rgba(255,255,255,.5);border:1px solid rgba(0,0,0,.15);cursor:pointer}
.slider .dot.active{background:#fff}

/* Lightbox */
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.85);display:none;align-items:center;justify-content:center;z-index:100;cursor:zoom-out}
.lightbox.show{display:flex}
.lightbox img{max-width:92vw;max-height:88vh;border-radius:14px;box-shadow:0 10px 40px rgba(0,0,0,.35);cursor:zoom-in}
.lightbox .close,.lightbox .prev,.lightbox .next{position:absolute;border:0;color:#0f172a;font-weight:700;background:#fff;padding:10px 12px;border-radius:999px;cursor:pointer;box-shadow:var(--sombra);z-index:2}
.lightbox .close{top:18px;right:18px}
.lightbox .prev{left:22px;top:50%;transform:translateY(-50%)}
.lightbox .next{right:22px;top:50%;transform:translateY(-50%)}

/* Footer */
footer{margin-top:36px;padding:20px 0;border-top:1px solid #e5e7eb;color:#64748b;text-align:center}
.socials{display:flex;gap:10px;align-items:center;justify-content:center;margin-top:10px}
.btn-social{width:42px;height:42px;display:grid;place-items:center;border-radius:999px;background:var(--color-primario);color:#fff;box-shadow:var(--sombra);transition:transform .12s ease,opacity .12s ease}
.btn-social:hover{transform:translateY(-1px);opacity:.9}
.btn-social.fb{background:#1877F2}
.btn-social.ig{background:#E1306C}
.btn-social.yt{background:#FF0000}
.btn-social.tk{background:#000}

/* Variaciones */
.container.wide{max-width:1100px}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}

/* Responsive */
@media(max-width:860px){
  .menu{display:none}
  .hamb{display:inline-flex}
  .hero-grid{grid-template-columns:1fr}
  .contact-grid{grid-template-columns:1fr}
}
@media(max-width:640px){
  .actions a{flex:1 1 100%;text-align:center}
}

/* === Corrección: menú móvil se mantiene abierto === */

/* Respeta el atributo [hidden] globalmente */
[hidden] { 
  display: none !important;
}

/* Menú móvil oculto por defecto */
#mobile {
  display: none;
}

/* En pantallas pequeñas, mostrar solo si NO está oculto */
@media (max-width: 860px) {
  .menu { display: none; }
  .hamb { display: inline-flex; }
  #mobile:not([hidden]) {
    display: block;
    padding: 10px 0 16px;
  }
  #mobile a {
    display: block;
    padding: 10px 12px;
    border-radius: 12px;
  }
  #mobile a:hover {
    background: #eef2ff;
  }
}


