/* =========================================================
   APP Loreto — sitio público
   Tokens compartidos con la página "Muy pronto"
   ========================================================= */
@font-face{font-family:"Hombros";src:url(../fonts/BSD-900.woff2) format("woff2");font-weight:900;font-display:swap}
@font-face{font-family:"Hombros";src:url(../fonts/BSD-700.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"Barlow";src:url(../fonts/Barlow-Regular.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Barlow";src:url(../fonts/Barlow-SemiBold.woff2) format("woff2");font-weight:600;font-display:swap}

:root{
  --noche:#081D55;
  --navy:#0C2A72;
  --azul:#1D4FB3;
  --rojo:#E01F0E;
  --rojo-osc:#B8190B;
  --blanco:#FFFFFF;
  --cielo:#BFD3FF;
  --niebla:#EEF2FB;
  --tinta:#0E1B3D;
  --gris:#5A6788;
  --display:"Hombros","Arial Narrow",Impact,sans-serif;
  --texto:"Barlow",system-ui,-apple-system,"Segoe UI",sans-serif;
  --pad:clamp(1.25rem,4vw,3.5rem);
  --ancho:1240px;
  --cab:72px;
  --ease-out:cubic-bezier(.16,1,.3,1);
  --ease-pop:cubic-bezier(.34,1.56,.64,1);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--cab) + 12px);overflow-x:hidden}
body{margin:0;font-family:var(--texto);font-size:1.0625rem;line-height:1.55;color:var(--tinta);background:var(--noche);-webkit-font-smoothing:antialiased;overflow-x:clip}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--rojo);outline-offset:3px}
.oculto-lector{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.envoltura{width:min(100% - 2*var(--pad), var(--ancho));margin-inline:auto}

/* ---------- Botones ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;flex:0 0 auto;min-height:48px;padding:.75rem 1.5rem;border:0;border-radius:999px;cursor:pointer;text-decoration:none;font-weight:600;font-size:1rem;line-height:1.1;white-space:nowrap;transition:transform .2s var(--ease-out),box-shadow .2s,background-color .2s}
.btn:active{transform:scale(.97)}
.btn--rojo{background:var(--rojo);color:var(--blanco);box-shadow:0 10px 26px -10px rgba(224,31,14,.8)}
.btn--rojo:hover{background:var(--rojo-osc)}
.btn--blanco{background:var(--blanco);color:var(--navy)}
.btn--blanco:hover{box-shadow:0 10px 26px -10px rgba(0,0,0,.5)}
.btn--linea{background:transparent;color:var(--blanco);box-shadow:inset 0 0 0 2px rgba(255,255,255,.55)}
.btn--linea:hover{box-shadow:inset 0 0 0 2px var(--blanco)}
.btn--navy{background:var(--navy);color:var(--blanco)}
.btn--navy:hover{background:var(--azul)}
.btn svg{flex:none}

/* ---------- Pantalla de entrada ---------- */
.puerta{display:none}
.js .puerta{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2.25rem;padding:var(--pad);text-align:center;color:var(--blanco);
  background:radial-gradient(circle at 50% 42%,#173F97 0%,var(--navy) 45%,var(--noche) 100%);transition:opacity .55s ease,visibility .55s,transform .55s var(--ease-out)}
.puerta.fuera{opacity:0;visibility:hidden;transform:scale(1.06)}
.puerta__marca{position:relative;width:clamp(120px,32vw,168px);aspect-ratio:1}
.puerta__marca img{position:relative;z-index:1;width:100%;height:100%}
.puerta__pulso{position:absolute;inset:0;border-radius:50%;border:2px solid var(--rojo);animation:llamado 2.4s var(--ease-out) infinite}
.puerta__pulso+.puerta__pulso{animation-delay:1.2s}
@keyframes llamado{from{transform:scale(1);opacity:.9}to{transform:scale(2.1);opacity:0}}
.puerta__titulo{position:relative;z-index:1;margin:0;max-width:14ch;font-family:var(--display);font-weight:900;font-size:clamp(2.6rem,9vw,4.5rem);line-height:.9}
.puerta__acciones{display:flex;flex-direction:column;align-items:center;gap:.9rem}
.puerta__silencio{background:none;border:0;padding:.5rem .75rem;cursor:pointer;color:var(--cielo);text-decoration:underline;text-underline-offset:4px}
.puerta .btn--rojo{font-size:1.15rem;padding:.95rem 2rem}

/* ---------- Cabecera ---------- */
.cabecera{position:sticky;top:0;z-index:40;height:var(--cab);color:var(--blanco);background:rgba(8,29,85,.9);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:box-shadow .3s}
.cabecera.con-sombra{box-shadow:0 8px 30px -12px rgba(0,0,0,.6)}
.cabecera__fila{height:100%;display:flex;align-items:center;gap:1.5rem}
.cabecera__marca{display:flex;align-items:center;gap:.75rem;text-decoration:none;margin-right:auto}
.cabecera__logo{position:relative;width:48px;height:48px;flex:none}
.cabecera__logo img{width:100%;height:100%;position:relative;z-index:1}
.cabecera__logo .js-brillo{position:absolute;inset:0;border-radius:50%;box-shadow:0 0 18px 4px rgba(224,31,14,.85);opacity:.15}
.cabecera__nombre{font-family:var(--display);font-weight:700;font-size:1.35rem;line-height:1;letter-spacing:.01em}
.cabecera__nombre small{display:block;font-family:var(--texto);font-weight:400;font-size:.8rem;color:var(--cielo);letter-spacing:0}
.menu{display:flex;align-items:center;gap:.25rem;list-style:none;margin:0;padding:0}
.menu a{display:block;padding:.55rem .8rem;border-radius:8px;text-decoration:none;font-weight:600;font-size:.98rem;color:rgba(255,255,255,.88)}
.menu a:hover{color:var(--blanco);background:rgba(255,255,255,.08)}
.cabecera__acciones{display:flex;align-items:center;gap:.6rem}
.sonido{display:inline-flex;align-items:center;gap:.55rem;height:44px;padding:0 1rem 0 .85rem;border-radius:999px;cursor:pointer;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.28);font-size:.92rem;font-weight:600;color:var(--blanco)}
.sonido:hover{background:rgba(255,255,255,.18)}
.sonido.invita{animation:invita 1.6s ease-in-out infinite}
@keyframes invita{50%{box-shadow:0 0 0 6px rgba(224,31,14,.35)}}
.barras{display:flex;align-items:flex-end;gap:3px;height:16px}
.barras i{display:block;width:3px;height:100%;background:currentColor;border-radius:2px;transform-origin:bottom;transform:scaleY(.25)}
.cabecera .btn--rojo{min-height:44px;padding:.6rem 1.2rem}
.menu-boton{display:none;width:44px;height:44px;border-radius:10px;border:1px solid rgba(255,255,255,.28);background:transparent;cursor:pointer;color:var(--blanco)}

/* ---------- Portada: carrusel de banners ---------- */
.portada{position:relative;background:var(--noche)}
.portada__marco{position:relative;width:min(100%, calc((100svh - var(--cab)) * 2));margin-inline:auto}
.portada__pista{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior-x:contain}
.portada__pista::-webkit-scrollbar{display:none}
.portada__slide{flex:0 0 100%;margin:0;scroll-snap-align:start;scroll-snap-stop:always;aspect-ratio:2/1;background:var(--navy)}
.portada__slide img{width:100%;height:100%;object-fit:cover}
.portada__slide a{display:block;height:100%}
.portada__flecha{position:absolute;top:50%;z-index:2;width:52px;height:52px;margin-top:-26px;border-radius:50%;border:0;cursor:pointer;display:grid;place-items:center;
  background:rgba(8,29,85,.55);color:var(--blanco);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;transition:opacity .25s,background-color .2s}
.portada:hover .portada__flecha,.portada__flecha:focus-visible{opacity:1}
.portada__flecha:hover{background:var(--rojo)}
.portada__flecha--izq{left:clamp(.5rem,2vw,1.5rem)}
.portada__flecha--der{right:clamp(.5rem,2vw,1.5rem)}
.portada__puntos{position:absolute;left:0;right:0;bottom:clamp(.6rem,2vw,1.2rem);z-index:2;display:flex;justify-content:center;gap:.5rem}
.portada__punto{position:relative;width:38px;height:6px;padding:0;border:0;border-radius:6px;cursor:pointer;background:rgba(255,255,255,.4);overflow:hidden}
.portada__punto span{position:absolute;inset:0;background:var(--blanco);transform:scaleX(0);transform-origin:left}
.portada__punto.activo span{animation:avance var(--dur,6.5s) linear forwards}
.portada.pausada .portada__punto.activo span{animation-play-state:paused}
@keyframes avance{to{transform:scaleX(1)}}

/* ---------- Franja de lemas ---------- */
.franja{position:relative;z-index:3;background:var(--rojo);color:var(--blanco);overflow:hidden;padding:.8rem 0;transform:rotate(-1deg) scale(1.02);margin-block:-6px;box-shadow:0 10px 30px -12px rgba(8,29,85,.8)}
.franja__pista{display:flex;width:max-content;animation:desfile 40s linear infinite}
.franja__grupo{display:flex;align-items:center}
.franja__grupo span{display:flex;align-items:center;gap:1.4rem;padding-right:1.4rem;white-space:nowrap;font-family:var(--display);font-weight:700;font-size:clamp(1.3rem,2.3vw,1.9rem);line-height:1}
.franja__grupo span::after{content:"";width:.6em;height:.6em;border-radius:50%;border:.14em solid var(--blanco)}
@keyframes desfile{to{transform:translateX(-50%)}}

/* ---------- Cuenta regresiva a la elección ---------- */
.cuenta{background:var(--noche);color:var(--blanco);padding:clamp(3rem,6vw,4.5rem) 0 clamp(2.5rem,5vw,3.5rem)}
.cuenta__fila{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(1.5rem,4vw,3rem);align-items:center}
.cuenta h2{margin:0 0 .5rem;font-family:var(--display);font-weight:900;font-size:clamp(2rem,4.2vw,3.4rem);line-height:.95;max-width:18ch}
.cuenta p{margin:0 0 1.25rem;color:var(--cielo);max-width:46ch}
.reloj{display:flex;gap:.6rem}
.reloj div{min-width:clamp(4.4rem,9vw,6.2rem);padding:.8rem .6rem .6rem;text-align:center;border-radius:14px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16)}
.reloj b{display:block;font-family:var(--display);font-weight:900;font-size:clamp(2.4rem,5vw,3.8rem);line-height:.9;font-variant-numeric:tabular-nums}
.reloj small{font-size:.85rem;color:var(--cielo)}
.reloj div:first-child{background:var(--rojo);border-color:var(--rojo)}
.reloj div:first-child small{color:rgba(255,255,255,.9)}

/* ---------- Candidato (medallón que late con la música) ---------- */
.candidato{position:relative;overflow:hidden;color:var(--blanco);padding:clamp(3.5rem,7vw,6rem) 0 0;
  background:radial-gradient(ellipse 55% 70% at 28% 70%,var(--azul) 0%,rgba(29,79,179,0) 70%),linear-gradient(180deg,var(--navy),var(--noche))}
.candidato__fila{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(2rem,5vw,5rem);align-items:end}
.candidato__texto{padding-bottom:clamp(3rem,7vw,5.5rem);max-width:38rem}
.candidato__cargo{margin:0 0 .35rem;color:var(--cielo);font-size:clamp(1rem,1.3vw,1.1rem)}
.candidato__nombre{margin:0 0 1.2rem;font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:clamp(3.6rem,8vw,7.2rem);line-height:.84}
.candidato__lema{margin:0 0 1rem;font-weight:600;font-size:clamp(1.15rem,1.7vw,1.4rem);line-height:1.35;max-width:30ch}
.candidato__bio{margin:0 0 1.6rem;color:var(--cielo);max-width:52ch;white-space:pre-line}
.candidato__botones{display:flex;flex-wrap:wrap;gap:.75rem}

.medallon-zona{--w:min(40vw,500px);--ring:calc(var(--w)*.045);position:relative}
.medallon-zona::before{content:"";position:absolute;z-index:0;left:50%;bottom:calc(var(--w)*.5);width:calc(var(--w)*2.3);aspect-ratio:1;transform:translate(-50%,50%);border-radius:50%;
  background:repeating-radial-gradient(circle,transparent 0 calc(var(--w)*.17 - 1.5px),rgba(255,255,255,.08) calc(var(--w)*.17 - 1.5px) calc(var(--w)*.17));
  -webkit-mask:radial-gradient(circle,#000 35%,transparent 70%);mask:radial-gradient(circle,#000 35%,transparent 70%)}
.medallon{position:relative;z-index:1;width:var(--w);height:calc(var(--w)*1.25)}
.medallon .js-latido{position:absolute;inset:0;transform-origin:50% 100%;will-change:transform}
.medallon__disco,.medallon__brillo,.medallon__aro,.onda{position:absolute;left:0;bottom:0;width:var(--w);height:var(--w);border-radius:50%}
.medallon__disco{background:radial-gradient(circle at 50% 30%,#FFFFFF 0%,#E4ECFF 75%);box-shadow:inset 0 0 0 var(--ring) var(--rojo)}
.medallon__brillo{box-shadow:0 0 calc(var(--w)*.14) calc(var(--w)*.03) rgba(224,31,14,.8);opacity:.2;will-change:opacity}
.medallon__aro{box-shadow:inset 0 0 0 var(--ring) var(--rojo);clip-path:inset(50% 0 0 0)}
.onda{border:2px solid rgba(255,255,255,.55);opacity:0;pointer-events:none}
.medallon__persona{position:absolute;inset:0;
  -webkit-mask:radial-gradient(circle at 50% calc(100% - var(--w)/2),#000 calc(var(--w)/2 - var(--ring)*.6),transparent calc(var(--w)/2 - var(--ring)*.6 + 1px)),linear-gradient(#000 0 0) top/100% calc(100% - var(--w)/2) no-repeat;
  mask:radial-gradient(circle at 50% calc(100% - var(--w)/2),#000 calc(var(--w)/2 - var(--ring)*.6),transparent calc(var(--w)/2 - var(--ring)*.6 + 1px)),linear-gradient(#000 0 0) top/100% calc(100% - var(--w)/2) no-repeat}
.medallon__persona img{position:absolute;left:7.5%;bottom:0;width:85%;filter:drop-shadow(0 18px 30px rgba(8,29,85,.35))}

/* ---------- Secciones genéricas ---------- */
.seccion{padding:clamp(3.5rem,7vw,6rem) 0}
.seccion--blanca{background:var(--blanco)}
.seccion--niebla{background:var(--niebla)}
.seccion--navy{background:var(--navy);color:var(--blanco)}
.seccion__cabeza{display:flex;align-items:end;justify-content:space-between;gap:1.5rem;margin-bottom:clamp(1.8rem,4vw,2.8rem)}
.seccion__titulo{margin:0;font-family:var(--display);font-weight:900;font-size:clamp(2.6rem,6vw,4.6rem);line-height:.88;color:var(--navy)}
.seccion--navy .seccion__titulo{color:var(--blanco)}
.seccion__intro{margin:.6rem 0 0;color:var(--gris);max-width:48ch}
.seccion--navy .seccion__intro{color:var(--cielo)}

/* ---------- Propuestas ---------- */
.propuestas{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:clamp(1rem,2vw,1.5rem)}
.propuesta{position:relative;display:flex;flex-direction:column;background:var(--blanco);border-radius:18px;overflow:hidden;box-shadow:0 1px 0 rgba(14,27,61,.06),0 18px 40px -26px rgba(12,42,114,.55)}
.propuesta__foto{aspect-ratio:3/2;overflow:hidden;background:var(--niebla)}
.propuesta__foto img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease-out)}
.propuesta:hover .propuesta__foto img{transform:scale(1.04)}
.propuesta__cuerpo{padding:1.2rem 1.3rem 1.5rem;border-top:5px solid var(--rojo)}
.propuesta h3{margin:0 0 .45rem;font-family:var(--display);font-weight:900;font-size:1.85rem;line-height:.95;color:var(--navy)}
.propuesta p{margin:0;color:var(--gris);font-size:1rem}

/* ---------- Noticias ---------- */
.noticias{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:clamp(1rem,2vw,1.6rem)}
.nota{display:flex;flex-direction:column;background:var(--blanco);border-radius:16px;overflow:hidden;text-decoration:none;color:inherit;box-shadow:0 18px 40px -30px rgba(12,42,114,.6);transition:transform .25s var(--ease-out)}
.nota:hover{transform:translateY(-3px)}
.nota__foto{aspect-ratio:16/10;background:linear-gradient(135deg,var(--navy),var(--azul))}
.nota__foto img{width:100%;height:100%;object-fit:cover}
.nota__cuerpo{padding:1.1rem 1.25rem 1.4rem;display:flex;flex-direction:column;gap:.45rem;flex:1}
.nota time{font-size:.88rem;color:var(--rojo);font-weight:600}
.nota h3{margin:0;font-family:var(--display);font-weight:700;font-size:1.55rem;line-height:1.05;color:var(--navy)}
.nota p{margin:0;color:var(--gris);font-size:.98rem}
.nota__leer{margin-top:auto;padding-top:.4rem;font-weight:600;color:var(--navy);text-decoration:underline;text-underline-offset:4px}

/* ---------- Agenda ---------- */
.agenda{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}
.actividad{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1.25rem;align-items:center;padding:1rem;border-radius:16px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12)}
.actividad__fecha{width:86px;padding:.55rem 0 .5rem;border-radius:12px;background:var(--blanco);color:var(--navy);text-align:center;line-height:1}
.actividad__fecha b{display:block;font-family:var(--display);font-weight:900;font-size:2.5rem}
.actividad__fecha span{font-weight:600;font-size:.9rem;color:var(--rojo)}
.actividad h3{margin:0 0 .25rem;font-family:var(--display);font-weight:700;font-size:1.6rem;line-height:1.05}
.actividad__datos{margin:0;color:var(--cielo);font-size:.98rem}
.actividad__desc{margin:.35rem 0 0;color:rgba(255,255,255,.85);font-size:.98rem}

/* ---------- Súmate ---------- */
.sumate{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);border-radius:24px;overflow:hidden;box-shadow:0 30px 60px -36px rgba(12,42,114,.7)}
.sumate__lado{position:relative;padding:clamp(2rem,4vw,3.25rem);background:var(--rojo);color:var(--blanco);display:flex;flex-direction:column;justify-content:space-between;gap:2rem;overflow:hidden}
.sumate__lado::after{content:"";position:absolute;right:-90px;bottom:-90px;width:280px;height:280px;border-radius:50%;border:26px solid rgba(255,255,255,.14)}
.sumate__lado h2{margin:0 0 .8rem;font-family:var(--display);font-weight:900;font-size:clamp(3rem,6vw,5rem);line-height:.85}
.sumate__lado p{margin:0;max-width:34ch;font-size:1.1rem}
.sumate__wa{position:relative;z-index:1;align-self:flex-start}
.formulario{padding:clamp(1.75rem,4vw,3rem);background:var(--blanco);display:grid;grid-template-columns:1fr 1fr;gap:1rem 1.1rem}
.campo{display:flex;flex-direction:column;gap:.35rem}
.campo--ancho{grid-column:1/-1}
.campo label{font-weight:600;font-size:.95rem;color:var(--navy)}
.campo input,.campo select,.campo textarea{width:100%;min-height:48px;padding:.7rem .85rem;border-radius:12px;border:1.5px solid #CCD6EE;background:#FBFCFF;color:var(--tinta);transition:border-color .2s,box-shadow .2s}
.campo textarea{min-height:92px;resize:vertical}
.campo input:focus,.campo select:focus,.campo textarea:focus{outline:0;border-color:var(--azul);box-shadow:0 0 0 4px rgba(29,79,179,.15)}
.campo--check{flex-direction:row;align-items:flex-start;gap:.65rem;font-size:.92rem;color:var(--gris)}
.campo--check input{width:20px;height:20px;min-height:0;margin-top:.15rem;accent-color:var(--rojo);flex:none}
.campo--trampa{position:absolute;left:-9999px}
.formulario__pie{grid-column:1/-1;display:flex;align-items:center;flex-wrap:wrap;gap:1rem}
.formulario__estado{margin:0;font-weight:600;font-size:.98rem}
.formulario__estado.ok{color:#11804A}
.formulario__estado.error{color:var(--rojo)}

/* ---------- Noticia completa ---------- */
.articulo{background:var(--blanco);padding:clamp(2.5rem,6vw,4.5rem) 0 clamp(3rem,6vw,5rem)}
.articulo__envoltura{width:min(100% - 2*var(--pad),760px);margin-inline:auto}
.articulo__volver{display:flex;width:max-content;gap:.4rem;align-items:center;margin-bottom:1.5rem;font-weight:600;color:var(--navy);text-decoration:none}
.articulo time{color:var(--rojo);font-weight:600}
.articulo h1{margin:.4rem 0 1rem;font-family:var(--display);font-weight:900;font-size:clamp(2.6rem,6vw,4.2rem);line-height:.92;color:var(--navy)}
.articulo__resumen{font-size:1.2rem;color:var(--gris);margin:0 0 1.5rem}
.articulo__foto{border-radius:18px;overflow:hidden;margin:0 0 2rem}
.prosa{font-size:1.125rem;line-height:1.7}
.prosa h2,.prosa h3{font-family:var(--display);font-weight:900;color:var(--navy);line-height:1;margin:2rem 0 .6rem}
.prosa h2{font-size:2.2rem}.prosa h3{font-size:1.7rem}
.prosa blockquote{margin:1.5rem 0;padding:.5rem 0 .5rem 1.2rem;border-left:5px solid var(--rojo);font-size:1.25rem;color:var(--navy)}
.prosa a{color:var(--azul)}
.compartir{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:2.25rem;padding-top:1.5rem;border-top:1px solid #E1E7F5}

/* ---------- Modal de noticia ---------- */
.modal{width:min(100% - 1.5rem,820px);max-height:min(92svh,1000px);padding:0;border:0;border-radius:20px;background:var(--blanco);color:var(--tinta);box-shadow:0 40px 80px -30px rgba(0,0,0,.6)}
.modal::backdrop{background:rgba(8,29,85,.72);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.modal[open]{animation:aparece .35s var(--ease-out)}
@keyframes aparece{from{opacity:0;transform:translateY(16px) scale(.98)}}
.modal__cerrar{position:sticky;top:.75rem;float:right;margin:.75rem .75rem 0 0;z-index:2;width:44px;height:44px;border-radius:50%;border:0;cursor:pointer;background:var(--navy);color:var(--blanco);display:grid;place-items:center}
.modal__cuerpo{padding:clamp(1.25rem,4vw,2.5rem)}
.modal__cuerpo h2{margin:.3rem 0 1rem;font-family:var(--display);font-weight:900;font-size:clamp(2.1rem,5vw,3.2rem);line-height:.92;color:var(--navy)}
.modal__foto{border-radius:14px;overflow:hidden;margin-bottom:1.5rem}
.modal__cargando{padding:4rem 1rem;text-align:center;color:var(--gris)}

/* ---------- Pie ---------- */
.pie{background:var(--noche);color:var(--cielo);padding:clamp(3rem,6vw,4rem) 0 2rem}
.pie__fila{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2rem;align-items:flex-start}
.pie__marca{display:flex;gap:1rem;align-items:center;color:var(--blanco)}
.pie__marca img{width:64px;height:64px}
.pie__marca strong{display:block;font-family:var(--display);font-weight:900;font-size:1.8rem;line-height:1}
.pie__lema{margin:1rem 0 0;max-width:34ch}
.pie .redes{display:flex;gap:.5rem;list-style:none;margin:0;padding:0}
.pie .redes a{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.08);color:var(--blanco);transition:background-color .2s}
.pie .redes a:hover{background:var(--rojo)}
.pie__legal{margin-top:2.5rem;padding-top:1.25rem;border-top:1px solid rgba(255,255,255,.1);font-size:.88rem;display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem}

/* ---------- Entrada orquestada (una sola, al pasar la puerta) ---------- */
.js .es-inicio:not(.en-vivo) .medallon__disco,.js .es-inicio:not(.en-vivo) .medallon__aro{transform:scale(.6);opacity:0}
.js .es-inicio:not(.en-vivo) .portada__marco{opacity:0;transform:scale(1.03)}
.medallon__disco,.medallon__aro{transition:transform .8s var(--ease-pop),opacity .4s ease}
.portada__marco{transition:opacity .8s ease .1s,transform 1.1s var(--ease-out) .1s}
/* Ya en vivo, el marco responde al ritmo cuadro a cuadro: sin transición,
   o el movimiento llegaría con un segundo de retraso. */
body.en-vivo .portada__marco,body.es-interna .portada__marco{transition:opacity .8s ease;will-change:transform}

/* ---------- Responsivo ---------- */
@media (max-width:1080px){
  .menu{display:none}
  .menu-boton{display:grid;place-items:center}
  .menu.abierto{display:flex;position:fixed;top:var(--cab);left:0;right:0;flex-direction:column;align-items:stretch;gap:0;padding:.75rem var(--pad) 1.25rem;background:rgba(8,29,85,.97);box-shadow:0 20px 40px -20px rgba(0,0,0,.7)}
  .menu.abierto a{padding:.9rem .5rem;font-size:1.1rem;border-bottom:1px solid rgba(255,255,255,.08);border-radius:0}
}
@media (max-width:860px){
  .cabecera__nombre small{display:none}
  .sonido__txt{display:none}
  .sonido{padding:0;width:44px;justify-content:center}
  .cuenta__fila{grid-template-columns:1fr}
  .candidato__fila{grid-template-columns:1fr}
  .medallon-zona{--w:min(74vw,420px);justify-self:center;order:-1}
  .candidato__texto{padding-bottom:3rem}
  .sumate{grid-template-columns:1fr}
  .portada__flecha{display:none}
}
@media (max-width:560px){
  .cabecera__nombre{display:none}
  .cabecera .btn--rojo{display:none}
  .formulario{grid-template-columns:1fr}
  .reloj{gap:.4rem}
  .reloj div{min-width:0;flex:1}
  .actividad{grid-template-columns:1fr}
  .actividad__fecha{width:auto;display:flex;gap:.6rem;align-items:baseline;justify-content:center}
  .actividad__fecha b{font-size:1.8rem}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:.01ms!important;transition-delay:0s!important;animation:none!important;scroll-behavior:auto!important}
  .franja__pista{flex-wrap:wrap;width:auto}
  .franja__grupo[aria-hidden]{display:none}
}

/* ---------- Síguenos: canal de WhatsApp y Facebook ---------- */
.siguenos__cajas{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:clamp(1rem,2vw,1.6rem);align-items:start}
.canal,.fb{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);border-radius:20px;padding:clamp(1.4rem,3vw,2.2rem)}
.canal{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(1.2rem,3vw,2rem);align-items:center;background:linear-gradient(150deg,#128C4B 0%,#0B6B39 100%);border-color:rgba(255,255,255,.25)}
.canal__etiqueta{display:flex;align-items:center;gap:.5rem;margin:0 0 .6rem;font-weight:600;font-size:.95rem;opacity:.92}
.canal h3,.fb h3{margin:0 0 .5rem;font-family:var(--display);font-weight:900;font-size:clamp(1.8rem,3vw,2.4rem);line-height:.98}
.canal p{margin:0;font-size:1rem;opacity:.95;max-width:38ch}
.canal__botones{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.2rem}
.btn--wa{background:var(--blanco);color:#0B6B39}
.btn--wa:hover{box-shadow:0 10px 26px -10px rgba(0,0,0,.5)}
.canal__qr{margin:0;text-align:center}
.canal__qr img{width:clamp(150px,18vw,200px);height:auto;padding:.6rem;border-radius:14px;background:var(--blanco)}
.canal__qr figcaption{margin-top:.5rem;font-size:.82rem;opacity:.85;max-width:16ch;margin-inline:auto}
.fb__cabeza{display:flex;align-items:center;justify-content:space-between;gap:1rem 1.25rem;flex-wrap:wrap;margin-bottom:1.2rem}
.fb__muro{display:flex;justify-content:center}
.fb__cabeza .canal__etiqueta{margin:0}
.fb__muro{min-height:420px;border-radius:14px;overflow:hidden;background:rgba(255,255,255,.06)}
.fb__muro iframe{display:block;width:100%;border:0}
.fb__espera{margin:0;padding:2rem 1rem;text-align:center;color:var(--cielo);font-size:.98rem}

/* Botón flotante del canal */
.flotante{position:fixed;right:clamp(.75rem,2vw,1.5rem);bottom:clamp(.75rem,2vw,1.5rem);z-index:35;display:flex;align-items:center;
  border-radius:999px;background:#128C4B;color:var(--blanco);box-shadow:0 16px 36px -14px rgba(0,0,0,.7);animation:asoma .4s var(--ease-out)}
.flotante[hidden]{display:none}
@keyframes asoma{from{opacity:0;transform:translateY(14px)}}
.flotante__enlace{display:flex;align-items:center;gap:.6rem;padding:.85rem 1.1rem;text-decoration:none;font-weight:600;color:inherit}
.flotante__cerrar{display:grid;place-items:center;width:34px;height:44px;padding:0 .7rem 0 0;border:0;background:none;color:rgba(255,255,255,.75);cursor:pointer}
.flotante__cerrar:hover{color:var(--blanco)}

/* Invitación al canal tras registrarse en Súmate */
.tras-registro{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:.25rem;padding:1rem 1.15rem;border-radius:14px;background:#E9F7EF;border:1px solid #BDE5CD}
.tras-registro[hidden]{display:none}
.tras-registro p{margin:0;flex:1;min-width:14rem;color:#0B6B39;font-weight:600}
.tras-registro .btn{background:#128C4B;color:var(--blanco)}

@media (max-width:640px){
  .canal{grid-template-columns:1fr}
  .canal__qr{display:none}
  .flotante__enlace span{font-size:.95rem}
}

/* ---------- Movimiento en los banners ---------- */
.portada__slide img{transform-origin:center}
.portada__slide.activo img{animation:asentar 7s var(--ease-out) both}
/* Entra un poco acercada y se asienta en su tamaño exacto: así el flyer
   termina completo, sin recortar el texto que llega al borde. */
@keyframes asentar{from{transform:scale(1.06)}to{transform:scale(1)}}
.portada::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:24%;pointer-events:none;z-index:1;
  background:linear-gradient(to top,rgba(8,29,85,.32),rgba(8,29,85,0));
}
/* Brillo lento que cruza la portada: movimiento permanente sin recortar el flyer */
.portada__brillo{
  position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;
  -webkit-mask:linear-gradient(#000,#000);mask:linear-gradient(#000,#000);
}
.portada__brillo::before{
  content:"";position:absolute;top:-40%;bottom:-40%;width:28%;left:-35%;
  background:linear-gradient(100deg,rgba(255,255,255,0),rgba(255,255,255,.16),rgba(255,255,255,0));
  transform:rotate(8deg);animation:cruzar 9s ease-in-out 2.5s infinite;
}
@keyframes cruzar{0%{left:-35%}55%,100%{left:118%}}
.portada__flecha{opacity:.55}
.portada:hover .portada__flecha{opacity:1}

/* Cabecera compacta al bajar */
.cabecera{transition:height .25s var(--ease-out),box-shadow .3s,background-color .3s}
.cabecera.con-sombra{height:60px;background:rgba(8,29,85,.96)}
.cabecera__logo,.cabecera__logo img{transition:width .25s var(--ease-out),height .25s var(--ease-out)}
.cabecera.con-sombra .cabecera__logo,.cabecera.con-sombra .cabecera__logo img{width:38px;height:38px}
.cabecera.con-sombra .cabecera__nombre small{opacity:0;height:0;overflow:hidden}

/* ---------- Propuestas: ampliar y compartir ---------- */
.propuesta__foto{display:block;position:relative;width:100%;padding:0;border:0;cursor:zoom-in;background:var(--niebla)}
.propuesta__lupa{
  position:absolute;right:.7rem;bottom:.7rem;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;
  background:rgba(8,29,85,.75);color:var(--blanco);opacity:0;transform:translateY(6px);transition:opacity .25s,transform .25s;
}
.propuesta:hover .propuesta__lupa,.propuesta__foto:focus-visible .propuesta__lupa{opacity:1;transform:none}
.propuesta__cuerpo h3 a{color:inherit;text-decoration:none}
.propuesta__cuerpo h3 a:hover{text-decoration:underline;text-underline-offset:3px}
.propuesta__acciones{display:flex;flex-wrap:wrap;gap:.4rem 1rem;margin-top:.9rem;padding-top:.8rem;border-top:1px solid #EDF1F9}
.propuesta__wa,.propuesta__copiar{
  display:inline-flex;align-items:center;gap:.4rem;padding:.3rem 0;border:0;background:none;cursor:pointer;
  font-family:var(--texto);font-weight:600;font-size:.92rem;color:var(--navy);text-decoration:none;
}
.propuesta__wa:hover,.propuesta__copiar:hover{color:var(--rojo)}
.propuesta__copiar.copiado{color:#11804A}

/* Visor de propuestas */
.visor{width:min(100% - 1.5rem,1000px);max-height:94svh;padding:0;border:0;border-radius:18px;background:transparent;overflow:visible}
.visor::backdrop{background:rgba(8,29,85,.82);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.visor[open]{animation:aparece .3s var(--ease-out)}
.visor__marco{margin:0;border-radius:18px;overflow:hidden;background:var(--blanco);box-shadow:0 40px 90px -30px rgba(0,0,0,.7)}
.visor__marco img{width:100%;max-height:68svh;object-fit:contain;background:#0B1B44;opacity:0;transition:opacity .3s}
.visor__marco img.lista{opacity:1}
.visor__pie{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem clamp(1rem,3vw,1.75rem) 1.4rem;text-align:left}
.visor__pie h2{margin:0 0 .25rem;font-family:var(--display);font-weight:900;font-size:clamp(1.8rem,3.4vw,2.6rem);line-height:1;color:var(--navy)}
.visor__pie p{margin:0;max-width:52ch;color:var(--gris)}
.visor__pie p[hidden]{display:none}
.visor__botones{display:flex;gap:.6rem;flex-wrap:wrap}
.visor__botones .btn--linea{color:var(--navy);box-shadow:inset 0 0 0 2px #CCD6EE}
.visor__cerrar,.visor__flecha{
  position:absolute;z-index:2;display:grid;place-items:center;width:48px;height:48px;border:0;border-radius:50%;cursor:pointer;
  background:rgba(255,255,255,.16);color:var(--blanco);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background-color .2s;
}
.visor__cerrar:hover,.visor__flecha:hover{background:var(--rojo)}
.visor__cerrar{top:-58px;right:0}
.visor__flecha{top:50%;margin-top:-24px}
.visor__flecha--izq{left:-64px}
.visor__flecha--der{right:-64px}
.visor__flecha[hidden]{display:none}

/* El botón del canal llama la atención cada cierto tiempo */
.flotante.atencion{animation:saltito 1.1s var(--ease-pop) 3}
.flotante.atencion::after{
  content:"";position:absolute;inset:0;border-radius:999px;border:2px solid #4AD07E;
  animation:aro 1.6s var(--ease-out) 4;pointer-events:none;
}
@keyframes saltito{0%,60%,100%{transform:translateY(0)}25%{transform:translateY(-7px)}40%{transform:translateY(-3px)}}
@keyframes aro{from{transform:scale(1);opacity:.9}to{transform:scale(1.55);opacity:0}}

/* Página de una propuesta */
.propuesta-pag{background:var(--blanco);padding:clamp(2rem,5vw,3.5rem) 0 clamp(2.5rem,5vw,4rem)}
.propuesta-pag__fila{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(1.5rem,4vw,3rem);align-items:center}
.propuesta-pag__foto{margin:0;border-radius:20px;overflow:hidden;box-shadow:0 30px 60px -34px rgba(12,42,114,.8)}
.propuesta-pag__texto .canal__etiqueta{color:var(--rojo)}
.propuesta-pag h1{margin:0 0 .8rem;font-family:var(--display);font-weight:900;font-size:clamp(2.6rem,6vw,4.4rem);line-height:.92;color:var(--navy)}
.propuesta-pag__resumen{margin:0 0 1.5rem;font-size:1.2rem;color:var(--gris)}
.propuesta-pag .compartir{margin-top:0;padding-top:0;border:0}

@media (max-width:860px){
  .propuesta-pag__fila{grid-template-columns:1fr}
  .visor__flecha--izq{left:.4rem}
  .visor__flecha--der{right:.4rem}
  .visor__cerrar{top:-52px;right:.2rem}
  .visor__marco img{max-height:52svh}
}

/* Nota bajo el botón de la pantalla de entrada */
.puerta__nota{margin:.2rem 0 0;max-width:26ch;font-size:.92rem;color:var(--cielo);opacity:.9}

/* ---------- Plan de Gobierno ---------- */
.plan-cabeza{background:linear-gradient(180deg,var(--navy),var(--noche));color:var(--blanco);padding:clamp(2rem,5vw,3.5rem) 0 clamp(2.5rem,5vw,3.5rem)}
.plan-cabeza__volver{color:var(--cielo)}
.plan-cabeza__fila{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(1.5rem,4vw,3rem);align-items:center}
.plan-cabeza .canal__etiqueta{color:var(--cielo)}
.plan-cabeza h1{margin:0 0 .3rem;font-family:var(--display);font-weight:900;font-size:clamp(2.6rem,6vw,4.6rem);line-height:.92;max-width:16ch}
.plan-cabeza__periodo{margin:0 0 1rem;font-family:var(--display);font-weight:700;font-size:clamp(1.3rem,2.2vw,1.8rem);color:var(--rojo);background:var(--blanco);display:inline-block;padding:.15rem .7rem;border-radius:8px}
.plan-cabeza__intro{margin:0 0 1.6rem;max-width:52ch;color:var(--cielo);font-size:1.08rem}
.plan-cabeza__botones{display:flex;flex-wrap:wrap;gap:.7rem}
.plan-qr{margin:0;text-align:center}
.plan-qr img{width:clamp(160px,20vw,230px);height:auto;padding:.75rem;border-radius:16px;background:var(--blanco)}
.plan-qr figcaption{margin-top:.6rem;font-size:.88rem;color:var(--cielo);max-width:18ch;margin-inline:auto}

.plan-lector{background:var(--noche);padding:0 0 clamp(2rem,5vw,3rem)}
.plan-lector__marco{border-radius:18px;overflow:hidden;background:#12234f;box-shadow:0 30px 60px -30px rgba(0,0,0,.7)}
.plan-lector__pdf{display:block;width:100%;height:min(80svh,900px);border:0;background:#12234f}
.plan-lector__aviso{margin:0;padding:.9rem 1.1rem;background:rgba(255,255,255,.06);color:var(--cielo);font-size:.95rem;text-align:center}
.plan-lector__aviso a{color:var(--blanco);font-weight:600}

.ejes{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:clamp(1rem,2vw,1.5rem)}
.eje{position:relative;padding:1.4rem 1.5rem 1.6rem;border-radius:18px;background:var(--blanco);border-top:5px solid var(--rojo);box-shadow:0 18px 40px -28px rgba(12,42,114,.6)}
.eje__numero{position:absolute;top:1rem;right:1.2rem;margin:0;font-family:var(--display);font-weight:900;font-size:2.6rem;line-height:1;color:#E7EDFA}
.eje h3{margin:0 0 .5rem;max-width:18ch;padding-right:2.5rem;font-family:var(--display);font-weight:900;font-size:1.75rem;line-height:1;color:var(--navy)}
.eje__resumen{margin:0 0 .9rem;color:var(--gris)}
.eje__metas{margin:0;padding:0;list-style:none;display:grid;gap:.5rem}
.eje__metas li{position:relative;padding-left:1.4rem;font-size:.98rem;line-height:1.45}
.eje__metas li::before{content:"";position:absolute;left:0;top:.55em;width:.5rem;height:.5rem;border-radius:50%;background:var(--rojo)}
.ejes__pie{margin:1.8rem 0 0;color:var(--gris);font-size:.95rem}

@media (max-width:860px){
  .plan-cabeza__fila{grid-template-columns:1fr}
  .plan-qr{justify-self:center}
  .plan-lector__pdf{height:70svh}
}

/* En celular se muestra la portada del PDF; el visor incrustado queda para pantallas grandes */
.plan-portada{display:none}
@media (max-width:860px){
  .plan-portada{display:flex;flex-direction:column;align-items:center;gap:1rem;text-decoration:none;color:inherit}
  .plan-portada img{width:min(100%,320px);border-radius:12px;box-shadow:0 20px 40px -22px rgba(0,0,0,.8)}
  .plan-lector__marco{display:none}
}
