/* =========================================================
   I.E.P. San José · Tumbes — Hoja de estilos principal
   Colores institucionales: azul marino #12286A y dorado #E3B53A
   ========================================================= */
:root{
  --marino:#12286A; --azul:#1B3A8C; --oscuro:#0C1C4E; --dorado:#E3B53A; --dorado-osc:#7A5C0C;
  --fondo:#F7F8FC; --blanco:#fff; --texto:#1C2340; --suave:#465072; --linea:#DFE3EF; --wa:#168A45;
  --error:#B3261E; --ok:#167A3F;
  --r:18px; --sombra:0 10px 30px rgba(18,40,106,.08);
}
html.contraste{
  --fondo:#fff; --texto:#000; --suave:#1a1a1a; --linea:#000; --dorado-osc:#5A4300; --azul:#0A2470; --wa:#0B6B30;
}
html.contraste .card,html.contraste .logro,html.contraste details,html.contraste .dist,html.contraste .cto{border-width:2px}
html.contraste a:not(.btn){text-decoration:underline}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:80px;-webkit-text-size-adjust:100%}
body{margin:0;font-family:'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;color:var(--texto);background:var(--fondo);line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--azul)}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}
h1,h2,h3{line-height:1.15;letter-spacing:-.015em;margin:0;color:var(--marino)}
h2{font-size:clamp(28px,4.5vw,40px);font-weight:800}
h3{font-weight:800}
p{margin:0 0 1em}
.eyebrow{display:inline-block;font-size:12.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--dorado-osc);margin-bottom:10px}
.lead{font-size:17.5px;color:var(--suave);max-width:680px;margin:14px 0 0}
section{padding:72px 0}
.sec-blanca{background:var(--blanco);border-top:1px solid var(--linea);border-bottom:1px solid var(--linea)}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Accesibilidad */
.saltar{position:absolute;left:12px;top:-60px;z-index:100;background:var(--dorado);color:var(--oscuro);padding:10px 16px;border-radius:10px;font-weight:800;text-decoration:none}
.saltar:focus{top:12px}
:focus-visible{outline:3px solid var(--dorado);outline-offset:3px;border-radius:6px}

/* Botones */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:0;border-radius:999px;padding:14px 22px;min-height:48px;font:700 15.5px 'Plus Jakarta Sans',sans-serif;text-decoration:none;cursor:pointer;transition:transform .15s,box-shadow .15s,background .15s;text-align:center}
.btn:hover{transform:translateY(-1px)}
.btn-oro{background:var(--dorado);color:var(--oscuro);box-shadow:0 6px 20px rgba(227,181,58,.35)}
.btn-marino{background:var(--marino);color:#fff}
.btn-wa{background:var(--wa);color:#fff}
.btn-linea{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.6)}
.btn-linea-osc{background:transparent;color:var(--marino);border:1.5px solid var(--marino)}
.btn svg{width:19px;height:19px;flex:none}
.btn[disabled]{opacity:.55;cursor:not-allowed;transform:none}

/* Cabecera */
header.cab{position:sticky;top:0;z-index:50;background:rgba(18,40,106,.97);backdrop-filter:blur(8px);color:#fff}
.nav{display:flex;align-items:center;justify-content:space-between;gap:12px;height:68px}
.marca{display:flex;align-items:center;gap:10px;text-decoration:none;color:#fff;flex:none}
.marca img{width:38px;height:41px}
.marca b{font-size:14px;font-weight:800;letter-spacing:.12em;display:block}
.marca small{display:block;font-size:10.5px;letter-spacing:.2em;color:var(--dorado);font-weight:700}
.menu{display:flex;gap:2px;list-style:none;margin:0;padding:0;align-items:center}
.menu a{display:block;padding:9px 11px;border-radius:10px;font-size:14.5px;font-weight:600;text-decoration:none;color:#DCE3F7}
.menu a:hover,.menu a[aria-current="page"]{color:#fff;background:rgba(255,255,255,.12)}
.menu .cta-menu a{background:var(--dorado);color:var(--oscuro);margin-left:6px}
.herr{display:flex;gap:6px;align-items:center}
.icon-btn{background:rgba(255,255,255,.1);border:0;color:#fff;border-radius:10px;width:42px;height:42px;display:flex;align-items:center;justify-content:center;cursor:pointer}
.icon-btn svg{width:22px;height:22px}
.menu-btn{display:none}
@media (max-width:1000px){
  .menu-btn{display:flex}
  .menu{position:fixed;top:68px;left:0;right:0;flex-direction:column;align-items:stretch;background:var(--marino);padding:10px 16px 22px;gap:2px;transform:translateY(-140%);transition:transform .25s;box-shadow:0 20px 30px rgba(0,0,0,.25);max-height:calc(100vh - 68px);overflow:auto}
  .menu.abierto{transform:none}
  .menu a{padding:14px 12px;font-size:16.5px}
  .menu .cta-menu a{margin:8px 0 0;text-align:center}
}

/* Cabecera de página interior */
.pag-hero{background:linear-gradient(160deg,var(--marino),var(--oscuro));color:#fff;padding:48px 0 44px}
.pag-hero h1{color:#fff;font-size:clamp(32px,5.5vw,52px);font-weight:800}
.pag-hero .eyebrow{color:var(--dorado)}
.pag-hero p{color:#D3DBF3;font-size:18px;max-width:700px;margin:12px 0 0}
.migas{font-size:13.5px;color:#AEB9DD;margin-bottom:14px}
.migas a{color:#DCE3F7}

/* Portada */
.hero{background:radial-gradient(1200px 600px at 85% -10%,#2A4FB0 0%,transparent 60%),linear-gradient(160deg,var(--marino) 0%,var(--oscuro) 100%);color:#fff;padding:60px 0 0;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:center}
.hero .eyebrow{color:var(--dorado)}
.hero h1{color:#fff;font-size:clamp(40px,7vw,70px);font-weight:800}
.hero h1 span{color:var(--dorado);display:block}
.hero .lema{font-size:clamp(18px,2.4vw,22px);color:#DCE3F7;margin:16px 0 26px;font-weight:500;max-width:560px}
.acciones{display:flex;flex-wrap:wrap;gap:12px}
.hero-escudo{display:flex;justify-content:center}
.hero-escudo img{width:min(290px,70vw);filter:drop-shadow(0 24px 40px rgba(0,0,0,.35))}
.familias-link{display:inline-flex;gap:8px;align-items:center;margin-top:18px;color:#DCE3F7;font-weight:700;font-size:15px}
.familias-link:hover{color:#fff}
.datos{display:grid;grid-template-columns:repeat(4,1fr);margin-top:52px;border-top:1px solid rgba(255,255,255,.15)}
.dato{padding:22px 8px;text-align:center}
.dato+.dato{border-left:1px solid rgba(255,255,255,.15)}
.dato b{display:block;font-size:clamp(26px,4vw,36px);color:var(--dorado);font-weight:800}
.dato span{font-size:13.5px;color:#C9D2EE;font-weight:600}
@media (max-width:760px){
  .hero{padding-top:32px}
  .hero-grid{grid-template-columns:1fr;text-align:center}
  .hero-escudo{order:-1}.hero-escudo img{width:130px}
  .hero .lema{margin-left:auto;margin-right:auto}
  .acciones{justify-content:center}
  .acciones .btn{flex:1 1 100%}
  .datos{grid-template-columns:repeat(2,1fr);margin-top:34px}
  .dato:nth-child(3){border-left:0}
  .dato:nth-child(n+3){border-top:1px solid rgba(255,255,255,.15)}
}

/* Rejillas y tarjetas */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
@media (max-width:900px){.grid-3,.grid-4{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}
.card{background:var(--blanco);border:1px solid var(--linea);border-radius:var(--r);padding:24px}
.card h3{font-size:19px;margin-bottom:8px}
.card p{color:var(--suave);margin:0}
.card .ico{font-size:26px;margin-bottom:10px;display:block}
a.card{text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s}
a.card:hover{border-color:var(--dorado);box-shadow:var(--sombra)}
.mas{display:inline-block;margin-top:12px;font-weight:800;color:var(--azul)}

/* Pendientes (solo visibles en modo revisión: añadir #revision a la URL) */
.pend{display:none!important}
html.revision .pend{display:flex!important}
html.revision .pend.bloque{display:block!important}
.pendiente{border:2px dashed #B9A15A;background:repeating-linear-gradient(-45deg,#FFFCF2 0 12px,#FFF6DD 12px 24px);border-radius:var(--r);flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#6B5310;padding:20px;font-size:14px;font-weight:700;gap:6px;min-height:140px}
.verificar{background:#FFF1C9;color:#6B5310;border:1px dashed #B9A15A;border-radius:6px;padding:0 6px;font-size:.85em;font-weight:700;margin-left:4px;display:none}
html.revision .verificar{display:inline}
.aviso-revision{display:none;position:sticky;top:68px;z-index:40;background:#FFF1C9;color:#5A4300;border-bottom:2px solid #B9A15A;padding:10px 0;font-size:14px;font-weight:700}
html.revision .aviso-revision{display:block}

/* Fortalezas */
.fortaleza{display:flex;gap:14px;align-items:flex-start}
.fortaleza i{font-style:normal;flex:none;width:48px;height:48px;border-radius:14px;background:#EEF1FA;display:flex;align-items:center;justify-content:center;font-size:24px}
.fortaleza b{display:block;color:var(--marino);font-size:16.5px}
.fortaleza span{color:var(--suave);font-size:15px}

/* Niveles */
.nivel{position:relative;overflow:hidden;border-radius:22px;padding:30px;color:#fff;display:flex;flex-direction:column}
.nivel.p{background:linear-gradient(150deg,var(--azul),var(--marino))}
.nivel.s{background:linear-gradient(150deg,var(--marino),var(--oscuro))}
.nivel h3{color:#fff;font-size:30px;margin:16px 0 8px}
.nivel p{color:#D3DBF3;margin:0}
.tag{align-self:flex-start;background:var(--dorado);color:var(--oscuro);font-weight:800;font-size:12px;letter-spacing:.12em;padding:6px 12px;border-radius:999px}
.horario{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:20px 0 22px}
.horario div{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:12px;padding:10px;text-align:center}
.horario small{display:block;font-size:11px;font-weight:800;letter-spacing:.1em;color:var(--dorado)}
.horario b{font-size:14px}
.nivel .btn{margin-top:auto;align-self:flex-start}
.marca-agua{position:absolute;right:-24px;bottom:-24px;width:170px;opacity:.08;pointer-events:none}
.plan{width:100%;border-collapse:collapse;font-size:14.5px;margin-top:10px}
.plan th,.plan td{padding:9px 10px;border-bottom:1px solid var(--linea);text-align:left}
.plan th{color:var(--marino);font-size:13px;letter-spacing:.04em}
.plan td:last-child,.plan th:last-child{text-align:right}

/* Historia */
.anios{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 10px;margin-top:28px;scrollbar-width:thin}
.anio{flex:none;border:1.5px solid var(--linea);background:var(--blanco);color:var(--marino);border-radius:999px;padding:10px 18px;font:800 15px 'Plus Jakarta Sans',sans-serif;cursor:pointer;min-height:44px}
.anio:hover{border-color:var(--dorado)}
.anio[aria-pressed="true"]{background:var(--marino);color:var(--dorado);border-color:var(--marino)}
.hito-box{margin-top:12px;background:var(--blanco);border:1px solid var(--linea);border-radius:22px;padding:30px;display:grid;grid-template-columns:auto 1fr;gap:28px;align-items:start;min-height:180px}
@media (max-width:640px){.hito-box{grid-template-columns:1fr;gap:8px;padding:22px}}
.hito-anio{font-size:clamp(44px,8vw,64px);font-weight:800;color:var(--marino);line-height:1}
.hito-fecha{font-size:12px;font-weight:800;letter-spacing:.14em;color:var(--dorado-osc);text-transform:uppercase}
.hito-box h3{font-size:23px;margin:6px 0 8px}
.hito-box p{margin:0;color:var(--suave);font-size:16px}
.hito-box b{color:var(--marino)}
.hito-nav{display:flex;gap:8px;margin-top:14px}
.hito-nav button{border:1.5px solid var(--linea);background:var(--blanco);border-radius:999px;width:46px;height:46px;cursor:pointer;color:var(--marino);font-size:18px;font-weight:800}
.hito-nav button:disabled{opacity:.35;cursor:default}
.fade{animation:fade .35s ease}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.cifras{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:22px}
@media (max-width:760px){.cifras{grid-template-columns:1fr}}
.cifra{background:linear-gradient(160deg,var(--marino),var(--oscuro));color:#fff;border-radius:var(--r);padding:22px}
.cifra b{font-size:36px;font-weight:800;color:var(--dorado);display:block;line-height:1.1}
.cifra span{color:#C9D2EE;font-size:14.5px}

/* Valores */
.valores{margin-top:20px;display:grid;grid-template-columns:.9fr 1.1fr;gap:20px}
@media (max-width:860px){.valores{grid-template-columns:1fr}}
.vbtns{display:flex;flex-direction:column;gap:10px}
.vbtn{text-align:left;border:1.5px solid var(--linea);background:var(--fondo);border-radius:16px;padding:18px 20px;font:800 19px 'Plus Jakarta Sans',sans-serif;color:var(--marino);cursor:pointer;display:flex;justify-content:space-between;align-items:center}
.vbtn::after{content:"→";color:var(--dorado-osc)}
.vbtn[aria-pressed="true"]{background:var(--marino);color:#fff;border-color:var(--marino)}
.vbtn[aria-pressed="true"]::after{color:var(--dorado)}
.micro{background:linear-gradient(160deg,var(--marino),var(--oscuro));border-radius:22px;padding:26px;color:#fff}
.micro small{font-size:12px;font-weight:800;letter-spacing:.14em;color:var(--dorado)}
.micro h3{color:#fff;font-size:28px;margin-top:6px}
.micro-lista{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.micro-lista span{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);border-radius:999px;padding:10px 16px;font-weight:700;animation:fade .35s ease both}
.dist{display:flex;gap:12px;align-items:center;background:var(--fondo);border:1px solid var(--linea);border-radius:14px;padding:14px 16px;font-weight:700;color:var(--marino);font-size:15px}
.dist i{font-style:normal;font-size:20px}
.chips-estaticas{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.chips-estaticas span{background:#FFF8E4;color:#5A4300;border:1px solid #F1DB9A;border-radius:999px;padding:8px 14px;font-weight:700;font-size:14px}

/* Logros */
.filtros{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0 8px;align-items:center}
.filtro{border:1.5px solid var(--linea);background:var(--blanco);border-radius:999px;padding:9px 16px;min-height:44px;font:700 14px 'Plus Jakarta Sans',sans-serif;color:var(--marino);cursor:pointer}
.filtro[aria-pressed="true"]{background:var(--marino);color:#fff;border-color:var(--marino)}
.conteo{margin-left:auto;font-size:14px;font-weight:700;color:var(--suave)}
.logros{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px;margin-top:14px}
.logro{display:flex;gap:14px;align-items:flex-start;background:var(--blanco);border:1px solid var(--linea);border-radius:16px;padding:16px;animation:fade .35s ease both}
.medalla{flex:none;min-width:52px;height:52px;border-radius:14px;background:linear-gradient(150deg,#F3CF6A,var(--dorado));color:var(--oscuro);font-weight:800;font-size:14px;display:flex;align-items:center;justify-content:center;padding:0 6px}
.medalla.plata{background:linear-gradient(150deg,#E8ECF3,#B9C2D3)}
.logro small{display:block;font-size:12px;font-weight:800;color:var(--dorado-osc);letter-spacing:.06em}
.logro b{display:block;color:var(--marino);font-size:15.5px;line-height:1.3}
.logro span{font-size:13.5px;color:var(--suave)}
.ver-mas{margin-top:18px;text-align:center}

/* Admisión */
.adm-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:start}
@media (max-width:900px){.adm-grid{grid-template-columns:1fr}}
.fechas{list-style:none;padding:0;margin:20px 0 0;border-left:3px solid var(--dorado)}
.fechas li{position:relative;padding:0 0 16px 20px}
.fechas li::before{content:"";position:absolute;left:-8px;top:5px;width:13px;height:13px;border-radius:50%;background:var(--blanco);border:3px solid var(--marino)}
.fechas li.prox::before{background:var(--dorado);border-color:var(--dorado);box-shadow:0 0 0 5px rgba(227,181,58,.25)}
.fechas small{display:block;font-size:12.5px;font-weight:800;color:var(--dorado-osc);letter-spacing:.04em}
.fechas b{color:var(--marino)}
.fechas em{font-style:normal;font-size:11px;font-weight:800;background:var(--dorado);color:var(--oscuro);border-radius:999px;padding:2px 8px;margin-left:6px;vertical-align:2px}
.pasos{list-style:none;padding:0;margin:18px 0 0;display:flex;flex-direction:column;gap:14px}
.pasos li{display:flex;gap:14px;align-items:flex-start}
.pasos .n{flex:none;width:34px;height:34px;border-radius:50%;background:var(--marino);color:var(--dorado);font-weight:800;display:flex;align-items:center;justify-content:center}
.pasos span{color:var(--suave);font-size:15.5px}
.seg{display:flex;gap:8px;margin:20px 0 12px;flex-wrap:wrap}
.seg button{border:1.5px solid var(--linea);background:var(--blanco);border-radius:999px;padding:9px 16px;min-height:44px;font:700 14px 'Plus Jakarta Sans',sans-serif;color:var(--marino);cursor:pointer}
.seg button[aria-pressed="true"],.seg button[aria-selected="true"]{background:var(--marino);color:#fff;border-color:var(--marino)}
.lista-check{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
.lista-check li{display:flex;gap:10px;align-items:flex-start;font-size:15.5px}
.lista-check li::before{content:"✓";flex:none;width:22px;height:22px;border-radius:50%;background:#E3F3E9;color:var(--ok);font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center;margin-top:2px}
.nota{display:flex;gap:10px;align-items:flex-start;background:#FFF8E4;border:1px solid #F1DB9A;color:#5A4300;padding:14px 16px;border-radius:14px;font-size:15px;font-weight:600;margin-top:20px}
.nota-azul{background:#EEF1FA;border-color:#CBD3EA;color:var(--marino)}

/* Formularios */
.form{background:var(--blanco);border:1px solid var(--linea);border-radius:22px;padding:26px;box-shadow:var(--sombra)}
.form h3{font-size:22px}
.form .sub{color:var(--suave);font-size:15px;margin:6px 0 18px}
.campo{margin-bottom:14px}
.campo label,.campo legend{display:block;font-size:14px;font-weight:700;margin-bottom:6px;color:var(--marino)}
.campo .opc{font-weight:500;color:var(--suave)}
.campo input,.campo select,.campo textarea{width:100%;padding:13px 14px;min-height:48px;border-radius:12px;border:1.5px solid #C9D0E3;background:#fff;color:var(--texto);font:500 16px 'Plus Jakarta Sans',sans-serif}
.campo textarea{min-height:90px;resize:vertical}
.campo input:focus,.campo select:focus,.campo textarea:focus{border-color:var(--azul);outline:3px solid rgba(27,58,140,.18);outline-offset:0}
.campo [aria-invalid="true"]{border-color:var(--error)}
.err{display:none;color:var(--error);font-size:13.5px;font-weight:600;margin-top:5px}
.campo.mal .err{display:block}
fieldset{border:0;padding:0;margin:0}
.dos{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:480px){.dos{grid-template-columns:1fr}}
.radios{display:flex;flex-wrap:wrap;gap:8px}
.radios label{display:flex;align-items:center;gap:8px;border:1.5px solid #C9D0E3;border-radius:999px;padding:9px 14px;font-weight:600;color:var(--texto);cursor:pointer;margin:0;min-height:44px}
.radios input{width:auto;min-height:0;accent-color:var(--marino)}
.radios label:has(input:checked){border-color:var(--marino);background:#EEF1FA}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--suave)}
.consent input{width:20px;height:20px;min-height:0;margin-top:2px;accent-color:var(--marino);flex:none}
.trampa{position:absolute;left:-9999px}
.estado{display:none;border-radius:14px;padding:16px;margin-top:14px;font-weight:600}
.estado.ok{display:block;background:#E3F3E9;color:#0E5A2C;border:1px solid #9FD3B4}
.estado.mal{display:block;background:#FBE9E7;color:#7A1A14;border:1px solid #EFB3AC}
.estado a{font-weight:800}

/* Pagos */
.pagos{background:var(--marino);color:#fff}
.pagos h2,.pagos h3.blanco{color:#fff}
.pagos .eyebrow{color:var(--dorado)}
.pagos .lead{color:#C9D2EE}
.tabs{display:flex;gap:8px;margin:26px 0 18px;flex-wrap:wrap}
.tab{border:1.5px solid rgba(255,255,255,.3);background:transparent;color:#fff;border-radius:999px;padding:10px 18px;min-height:44px;font:700 14.5px 'Plus Jakarta Sans',sans-serif;cursor:pointer}
.tab[aria-selected="true"]{background:var(--dorado);border-color:var(--dorado);color:var(--oscuro)}
.panel{background:#fff;color:var(--marino);border-radius:22px;padding:26px;max-width:640px}
.panel[hidden]{display:none}
.panel h3{font-size:22px;margin-bottom:4px}
.panel .sub{color:#465072;font-size:14.5px;margin:0 0 16px}
.fila{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:#F4F6FC;border-radius:14px;margin-bottom:10px}
.fila small{display:block;font-size:11.5px;font-weight:800;letter-spacing:.12em;color:#7A5C0C}
.fila .num{font-size:clamp(17px,4.5vw,24px);font-weight:800;letter-spacing:.01em;word-break:break-all;color:var(--marino)}
.copiar{flex:none;border:0;background:var(--marino);color:#fff;border-radius:10px;padding:10px 14px;min-height:44px;font:700 13.5px 'Plus Jakarta Sans',sans-serif;cursor:pointer;display:flex;gap:6px;align-items:center}
.copiar.ok{background:var(--wa)}
.copiar[disabled]{background:#9AA3C2;cursor:not-allowed}
.titular{font-size:14.5px;color:#465072;margin:8px 0 0}
.titular b{color:var(--marino)}
.aviso-pago{margin-top:18px;display:flex;gap:12px;align-items:center;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);border-radius:16px;padding:16px 18px;max-width:640px;color:#DCE3F7;font-size:15px}
.aviso-pago a{color:var(--dorado);font-weight:700}

/* Preguntas */
.faq{max-width:820px}
details{background:var(--blanco);border:1px solid var(--linea);border-radius:16px;margin-bottom:10px;overflow:hidden}
summary{list-style:none;cursor:pointer;padding:18px 20px;font-weight:700;color:var(--marino);display:flex;justify-content:space-between;gap:12px;align-items:center;min-height:56px}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font-size:24px;font-weight:500;color:var(--dorado-osc);transition:transform .2s;flex:none}
details[open] summary::after{transform:rotate(45deg)}
details .resp{padding:0 20px 18px;color:var(--suave)}
details .resp a{font-weight:700}

/* Contacto */
.cto{display:flex;gap:14px;align-items:center;background:var(--blanco);border:1px solid var(--linea);border-radius:var(--r);padding:18px 20px;text-decoration:none;color:inherit}
a.cto:hover{border-color:var(--dorado)}
.icono{width:46px;height:46px;border-radius:14px;background:#EEF1FA;color:var(--azul);display:flex;align-items:center;justify-content:center;flex:none}
.icono svg{width:24px;height:24px}
.cto small{display:block;font-size:12px;font-weight:700;color:var(--suave);letter-spacing:.06em;text-transform:uppercase}
.cto b{color:var(--marino);font-size:16px;word-break:break-word}
.redes{display:flex;gap:10px;margin-top:22px;flex-wrap:wrap;align-items:center}
.red{display:flex;align-items:center;gap:8px;padding:11px 18px;min-height:44px;border-radius:999px;font-weight:700;font-size:14.5px;text-decoration:none;color:#fff}
.red svg{width:18px;height:18px}
dl.datos-inst{display:grid;grid-template-columns:auto 1fr;gap:8px 20px;margin:0;font-size:15px}
dl.datos-inst dt{font-weight:800;color:var(--marino)}
dl.datos-inst dd{margin:0;color:var(--suave)}

/* Accesos familias */
.acceso{display:flex;flex-direction:column;gap:6px}
.acceso .ico{font-size:28px}
.acceso.deshabilitado{opacity:.7}
@media (max-width:640px){.accesos{grid-template-columns:1fr 1fr;gap:10px}.accesos .card{padding:16px}.accesos h3{font-size:16px}.accesos p{font-size:13.5px}}

/* Tabla calendario */
.tabla{width:100%;border-collapse:collapse;background:var(--blanco);border-radius:16px;overflow:hidden;border:1px solid var(--linea)}
.tabla th,.tabla td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--linea);font-size:15px}
.tabla th{background:#EEF1FA;color:var(--marino);font-size:13px;letter-spacing:.05em;text-transform:uppercase}
.tabla tr:last-child td{border-bottom:0}
.tabla-scroll{overflow-x:auto}

/* Texto legal */
.legal{max-width:820px}
.legal h2{font-size:24px;margin:34px 0 10px}
.legal p,.legal li{color:var(--texto)}

/* Pie */
footer.pie{background:var(--oscuro);color:#C9D2EE;padding:52px 0 110px}
.pie-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:30px}
@media (max-width:760px){.pie-grid{grid-template-columns:1fr}}
.pie h4{color:#fff;font-size:14px;letter-spacing:.12em;margin:0 0 12px}
.pie ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.pie a{color:#DCE3F7;text-decoration:none}
.pie a:hover{color:#fff;text-decoration:underline}
.pie .lema{color:var(--dorado);font-weight:700;font-size:17px;margin:10px 0}
.pie-legal{border-top:1px solid rgba(255,255,255,.12);margin-top:30px;padding-top:18px;font-size:13.5px;display:flex;flex-wrap:wrap;gap:8px 18px;justify-content:space-between}

/* Barra de acción móvil y WhatsApp */
.barra-movil{display:none}
.wa-flot{position:fixed;right:18px;bottom:18px;z-index:60;width:60px;height:60px;border-radius:50%;background:var(--wa);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 26px rgba(0,0,0,.25)}
.wa-flot svg{width:32px;height:32px}
@media (max-width:760px){
  .wa-flot{display:none}
  .barra-movil{display:grid;grid-template-columns:1fr 1fr;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:60;background:rgba(255,255,255,.97);backdrop-filter:blur(8px);padding:10px 12px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--linea);box-shadow:0 -6px 20px rgba(0,0,0,.08)}
  .barra-movil .btn{padding:12px 10px;font-size:14.5px}
}

.toast{visibility:hidden;position:fixed;left:50%;bottom:90px;transform:translate(-50%,30px);opacity:0;background:var(--oscuro);color:#fff;padding:12px 20px;border-radius:999px;font-weight:700;font-size:14px;z-index:70;transition:all .25s}
.toast.ver{visibility:visible;opacity:1;transform:translate(-50%,0)}

.revelar{opacity:0;transform:translateY(16px);transition:opacity .5s,transform .5s}
.revelar.ver{opacity:1;transform:none}
html.sin-js .revelar{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .revelar{opacity:1;transform:none;transition:none}
  .fade,.logro,.micro-lista span{animation:none}
  html{scroll-behavior:auto}
}
@media print{header.cab,.barra-movil,.wa-flot,.aviso-revision{display:none!important}}
