@font-face{font-family:"Montserrat";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/montserrat-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:700;font-display:swap;src:url(fonts/montserrat-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:800;font-display:swap;src:url(fonts/montserrat-latin-800-normal.woff2) format("woff2")}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/public-sans-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/public-sans-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:700;font-display:swap;src:url(fonts/public-sans-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2")}
:root{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
/* Layout: banda de marca azul marino (cabecera de portada) y secciones claras a una columna ancha con rejillas internas; motivo propio: los filetes dorados del logo flanqueando cada antetítulo */
:root{
  color-scheme:light only;
  --bg:#F5F6F9; --surface:#FFFFFF; --surface-2:#EDF0F6; --ink:#0F1B33; --muted:#4A5770; --line:#D6DCE6;
  --accent:#B00916; --btn:#C70A19; --btn-hover:#A80815; --btn-ink:#FFFFFF; --gold:#F6AF07; --gold-ink:#8A5C00;
  --band:#062353; --band-2:#0C2F68; --band-ink:#F2F5FA; --band-muted:#BAC6DD; --band-line:#22427C;
  --land:#D3DBE7; --sea:#E9EEF6; --map-edge:#FFFFFF; --grat:#D6DEEA; --home:#062353;
  --al-rojo:#CF1D29; --al-naranja:#D46A00; --al-verde:#2C8A55;
  --shadow:0 1px 2px rgba(6,35,83,.06),0 8px 24px rgba(6,35,83,.07);
  --f-display:"Montserrat","Avenir Next","Segoe UI",system-ui,sans-serif;
  --f-body:"Public Sans","Segoe UI",system-ui,-apple-system,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
  --r:10px; --wrap:1160px;
}

/* Diseño de un solo tema (claro) en todos los dispositivos */
.solo-oscuro{display:none}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth; scroll-padding-top:84px}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto} *{animation:none!important; transition:none!important} }
body{background:var(--bg); color:var(--ink); font-family:var(--f-body); font-size:1.0625rem; line-height:1.6; margin:0; -webkit-font-smoothing:antialiased}
body::before{content:""; position:fixed; inset:0 0 auto; height:env(safe-area-inset-top,0px); z-index:60; background:var(--surface)}
img{max-width:100%; height:auto; display:block}
a{color:var(--accent); text-underline-offset:.18em}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--gold); outline-offset:2px; border-radius:4px}
h1,h2,h3,h4{font-family:var(--f-display); line-height:1.15; margin:0; text-wrap:balance; letter-spacing:-.01em}
p{margin:0}
.wrap{max-width:var(--wrap); margin-inline:auto; padding-left:max(16px,env(safe-area-inset-left,0px)); padding-right:max(16px,env(safe-area-inset-right,0px))}
@media (min-width:720px){ .wrap{padding-left:max(28px,env(safe-area-inset-left,0px)); padding-right:max(28px,env(safe-area-inset-right,0px))} }
.mono{font-family:var(--f-mono); font-variant-numeric:tabular-nums}
.salto{position:absolute; left:-9999px; top:0}
.salto:focus{left:16px; top:calc(env(safe-area-inset-top,0px) + 8px); z-index:100; background:var(--surface); padding:.6rem 1rem; border-radius:6px}

/* Botones */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:.5rem; min-height:46px; padding:.7rem 1.25rem; border-radius:8px; font-family:var(--f-display); font-weight:700; font-size:.95rem; letter-spacing:.01em; text-decoration:none; border:2px solid transparent; cursor:pointer; transition:background .15s,border-color .15s,color .15s}
.btn-rojo{background:var(--btn); color:var(--btn-ink)}
.btn-rojo:hover{background:var(--btn-hover)}
.btn-borde{background:transparent; border-color:currentColor; color:var(--ink)}
.btn-borde:hover{background:var(--surface-2)}
.btn-claro{background:transparent; border-color:var(--band-muted); color:var(--band-ink)}
.btn-claro:hover{border-color:var(--band-ink); background:var(--band-2)}
.btn-sm{min-height:38px; padding:.45rem .95rem; font-size:.85rem}
.btn[disabled]{opacity:.6; cursor:progress}

/* Antetítulo con filetes dorados (motivo del logo) */
.antetitulo{display:flex; align-items:center; gap:.75rem; font-family:var(--f-display); font-weight:700; font-size:.78rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted)}
.antetitulo::before,.antetitulo::after{content:""; height:3px; width:28px; background:var(--gold); border-radius:2px; flex:none}
.antetitulo-banda{color:var(--band-muted)}

/* Cabecera */
.cabecera{position:sticky; top:env(safe-area-inset-top,0px); z-index:50; background:var(--surface); border-bottom:1px solid var(--line)}
.cab-inner{display:flex; align-items:center; gap:1rem; min-height:68px; padding-block:.5rem}
.marca{display:flex; align-items:center; gap:.7rem; text-decoration:none; color:var(--ink); margin-right:auto; min-width:0}
.marca img{height:46px; width:auto}
.marca-txt{display:flex; flex-direction:column; line-height:1.1; min-width:0}
.marca-pre{font-family:var(--f-display); font-weight:600; font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted)}
.marca-nom{font-family:var(--f-display); font-weight:800; font-size:1.02rem; letter-spacing:-.005em}
.nav{display:flex; align-items:center; gap:.25rem}
.nav a:not(.btn){font-family:var(--f-display); font-weight:600; font-size:.88rem; color:var(--ink); text-decoration:none; padding:.5rem .55rem; border-radius:6px; white-space:nowrap}
.nav .btn{white-space:nowrap}
.nav a:not(.btn):hover{background:var(--surface-2)}
.nav .btn{margin-left:.5rem}
.menu-btn{display:none; align-items:center; gap:.45rem; min-height:42px; padding:.4rem .8rem; border:1px solid var(--line); border-radius:8px; background:var(--surface); color:var(--ink); font-family:var(--f-display); font-weight:700; font-size:.85rem; cursor:pointer}
.menu-btn svg{width:18px; height:18px}
@media (max-width:960px){
  .menu-btn{display:inline-flex}
  .nav{position:absolute; left:0; right:0; top:100%; flex-direction:column; align-items:stretch; gap:0; background:var(--surface); border-bottom:1px solid var(--line); box-shadow:var(--shadow); padding:.5rem max(16px,env(safe-area-inset-right,0px)) 1rem max(16px,env(safe-area-inset-left,0px)); display:none}
  .nav.abierto{display:flex}
  .nav a:not(.btn){padding:.85rem .5rem; border-bottom:1px solid var(--line); border-radius:0}
  .nav .btn{margin:.9rem 0 0}
}
@media (max-width:400px){ .marca-pre{font-size:.58rem; letter-spacing:.1em} .marca-nom{font-size:.92rem} .marca img{height:40px} }

/* Portada */
.hero{background:var(--band); color:var(--band-ink); position:relative; overflow:hidden}
.hero::after{content:""; position:absolute; inset:auto 0 0 0; height:4px; background:linear-gradient(90deg,var(--btn) 0 50%,var(--gold) 50% 100%)}
.hero-grid{display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr); gap:clamp(1.5rem,5vw,4rem); align-items:center; padding-block:clamp(2.5rem,6vw,4.5rem) 2rem}
.hero h1{font-size:clamp(2rem,4.6vw,3.35rem); font-weight:800; margin-top:1.1rem; letter-spacing:-.02em}
.hero h1 em{font-style:normal; color:var(--gold)}
.hero-lead{margin-top:1.25rem; max-width:58ch; font-size:1.12rem; color:var(--band-muted)}
.hero-cta{display:flex; flex-wrap:wrap; gap:.75rem; margin-top:1.9rem}
.hero-logo{margin:0; justify-self:center}
.hero-logo img{width:clamp(180px,24vw,300px)}
.hero-marca{display:none}
.hero-grid,.hero .situacion,.hero .proximo{position:relative; z-index:1}
@media (max-width:760px){
  .hero-grid{grid-template-columns:1fr}
  .hero-logo{display:none}
  .hero-marca{display:block; position:absolute; top:1.5rem; right:-72px; width:250px; height:auto; max-width:none; opacity:.07; pointer-events:none; z-index:0}
}
.situacion{display:flex; flex-wrap:wrap; align-items:center; gap:.6rem 1.4rem; padding-block:1.1rem 1.4rem; border-top:1px solid var(--band-line); font-size:.95rem}
.sit-tit{font-family:var(--f-display); font-weight:700; font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; color:var(--band-muted)}
.sit-dato{display:inline-flex; align-items:center; gap:.45rem}
.sit-dato b{font-family:var(--f-mono); font-size:1.15rem; font-weight:500}
.sit-punto{width:10px; height:10px; border-radius:50%; display:inline-block}
.sit-per{color:var(--band-muted); font-size:.88rem}
.sit-link{color:var(--band-ink); font-family:var(--f-display); font-weight:700; font-size:.88rem; margin-left:auto}
@media (max-width:620px){ .sit-link{margin-left:0} .sit-tit{flex-basis:100%} }

/* Secciones */
.seccion{padding-block:clamp(3.5rem,8vw,6rem)}
.seccion-alt{background:var(--surface-2)}
.sec-cab{display:grid; gap:.9rem; max-width:760px; margin-bottom:clamp(2rem,4vw,3rem)}
.sec-cab h2{font-size:clamp(1.65rem,3.4vw,2.4rem); font-weight:800}
.sec-intro{color:var(--muted); font-size:1.08rem; max-width:64ch}

/* Quiénes somos */
.lineas{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(1.5rem,3vw,2.5rem)}
@media (max-width:980px){ .lineas{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:560px){ .lineas{grid-template-columns:1fr} }
.linea{display:grid; gap:.6rem; align-content:start; padding-top:1.1rem; border-top:3px solid var(--ink)}
.linea svg{width:30px; height:30px; color:var(--accent)}
.linea h3{font-size:1.12rem; font-weight:700}
.linea p{color:var(--muted); font-size:.98rem}
.principios{margin-top:clamp(2.5rem,5vw,3.5rem); display:flex; flex-wrap:wrap; align-items:baseline; gap:.5rem 1.5rem; padding:1.2rem 1.4rem; border:1px solid var(--line); border-radius:var(--r); background:var(--surface)}
.principios h3{font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); font-weight:700}
.principios ul{list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:.4rem 1.4rem}
.principios li{font-family:var(--f-display); font-weight:700; font-size:1.02rem}
.principios p{flex-basis:100%; color:var(--muted); font-size:.95rem}

/* Actualidad / mapa */
.mapa-panel{background:var(--surface); border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow); overflow:hidden}
.mapa-barra{display:flex; flex-wrap:wrap; gap:.75rem 1.5rem; align-items:center; justify-content:space-between; padding:1rem 1.1rem; border-bottom:1px solid var(--line)}
.chips{display:flex; flex-wrap:wrap; gap:.45rem}
.chip{display:inline-flex; align-items:center; gap:.45rem; min-height:36px; padding:.35rem .8rem; border-radius:999px; border:1px solid var(--line); background:var(--surface); color:var(--ink); font-family:var(--f-body); font-size:.86rem; font-weight:600; cursor:pointer}
.chip[aria-pressed="true"]{background:var(--ink); color:var(--surface); border-color:var(--ink)}
.chip .n{font-family:var(--f-mono); font-size:.78rem; opacity:.75}
.chip .sit-punto{width:9px; height:9px}
.mapa-wrap{position:relative; background:var(--sea)}
#mapa{display:block; width:100%; height:auto}
#mapa .esfera{fill:var(--sea)}
#mapa .tierra{fill:var(--land)}
#mapa .fronteras{fill:none; stroke:var(--map-edge); stroke-width:.6}
#mapa .reticula{fill:none; stroke:var(--grat); stroke-width:.6}
#mapa .casa{fill:var(--home)}
#mapa .casa-txt{font-family:var(--f-display); font-weight:700; font-size:11px; fill:var(--home); letter-spacing:.06em}
.pt{cursor:pointer; stroke:var(--surface); stroke-width:1.4}
.pt-rojo{fill:var(--al-rojo)} .pt-naranja{fill:var(--al-naranja)} .pt-verde{fill:var(--al-verde)}
.halo{fill:var(--al-rojo); opacity:.18; pointer-events:none}
.pt:hover,.pt:focus-visible,.pt.activo{stroke:var(--ink); stroke-width:2.2; outline:none}
@media (prefers-reduced-motion: no-preference){ .halo-vivo{animation:latido 2.4s ease-out infinite; transform-box:fill-box; transform-origin:center} @keyframes latido{0%{transform:scale(.6); opacity:.35} 100%{transform:scale(1.6); opacity:0}} }
.mapa-tip{position:absolute; z-index:5; max-width:260px; padding:.65rem .8rem; background:var(--surface); color:var(--ink); border:1px solid var(--line); border-radius:8px; box-shadow:var(--shadow); font-size:.85rem; line-height:1.4; pointer-events:none}
.mapa-tip strong{display:block; font-family:var(--f-display); font-size:.92rem}
.mapa-pie{display:flex; flex-wrap:wrap; gap:.5rem 1.5rem; justify-content:space-between; align-items:center; padding:.8rem 1.1rem; border-top:1px solid var(--line); font-size:.85rem; color:var(--muted)}
.leyenda{display:flex; flex-wrap:wrap; gap:.4rem 1rem; align-items:center}
.leyenda span{display:inline-flex; align-items:center; gap:.4rem}
.estado-datos{display:inline-flex; align-items:center; gap:.5rem}
.estado-datos::before{content:""; width:8px; height:8px; border-radius:50%; background:var(--muted); flex:none}
.estado-datos[data-estado="directo"]::before{background:var(--al-verde)}
.estado-datos[data-estado="muestra"]::before,.estado-datos[data-estado="reserva"]::before{background:var(--gold)}

.eventos{list-style:none; margin:1.5rem 0 0; padding:0; display:grid; gap:0; border-top:1px solid var(--line)}
.evento{display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:.35rem 1.1rem; align-items:center; padding:1rem .25rem; border-bottom:1px solid var(--line); scroll-margin-top:96px}
.evento.activo{background:var(--surface); box-shadow:inset 4px 0 0 var(--gold)}
.ev-cuerpo{min-width:0}
.ev-tit{font-family:var(--f-display); font-weight:700; font-size:1.02rem}
.ev-tit .ev-clase{color:var(--muted); font-weight:600}
.ev-det{color:var(--muted); font-size:.92rem}
.ev-meta{display:grid; justify-items:end; gap:.1rem; font-size:.85rem; color:var(--muted); text-align:right}
.ev-meta .fecha{font-family:var(--f-mono); color:var(--ink)}
.ev-link{grid-column:2 / -1; font-size:.86rem; font-weight:600; justify-self:start}
.nivel{display:inline-flex; align-items:center; gap:.4rem; min-width:92px; padding:.25rem .6rem; border-radius:6px; font-size:.78rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; border:1.5px solid currentColor}
.nivel::before{content:""; width:8px; height:8px; border-radius:50%; background:currentColor}
.nivel-rojo{color:var(--al-rojo)} .nivel-naranja{color:var(--al-naranja)} .nivel-verde{color:var(--al-verde)}
.en-curso{display:inline-block; margin-left:.45rem; padding:.05rem .45rem; border-radius:4px; background:var(--gold); color:#2B1D00; font-size:.7rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; vertical-align:2px}
@media (max-width:640px){
  .evento{grid-template-columns:minmax(0,1fr) auto}
  .evento .nivel{grid-column:1; justify-self:start; min-width:0}
  .ev-cuerpo{grid-column:1 / -1}
  .ev-meta{grid-column:2; grid-row:1; }
  .ev-link{grid-column:1 / -1}
}
.mas-eventos{margin-top:1.25rem}
.vacio{padding:1.5rem .25rem; color:var(--muted)}

.fuentes{margin-top:clamp(2.5rem,5vw,3.5rem)}
.fuentes h3{font-size:1.15rem; margin-bottom:1rem}
.fuentes ul{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--r); overflow:hidden}
@media (max-width:860px){ .fuentes ul{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:520px){ .fuentes ul{grid-template-columns:1fr} }
.fuentes li{background:var(--surface)}
.fuentes a{display:grid; gap:.2rem; padding:1rem 1.1rem; height:100%; text-decoration:none; color:var(--ink)}
.fuentes a:hover{background:var(--surface-2)}
.fuentes a strong{font-family:var(--f-display); font-size:.98rem; color:var(--accent)}
.fuentes a span{font-size:.9rem; color:var(--muted)}
.aviso-fuente{margin-top:1rem; font-size:.86rem; color:var(--muted); max-width:80ch}

/* Formación */
.filtro-cursos{display:flex; flex-wrap:wrap; gap:.45rem; margin-bottom:1.25rem}
.cursos{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem}
@media (max-width:820px){ .cursos{grid-template-columns:1fr} }
.curso{display:grid; grid-template-rows:auto auto 1fr auto; gap:.55rem; padding:1.2rem 1.25rem; background:var(--surface); border:1px solid var(--line); border-radius:var(--r)}
.curso-para{font-size:.72rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--muted)}
.curso[data-para="operativos"] .curso-para{color:var(--accent)}
.curso h3{font-size:1.08rem; font-weight:700}
.curso p{color:var(--muted); font-size:.95rem}
.curso-datos{display:flex; flex-wrap:wrap; gap:.4rem .5rem; margin-top:.35rem}
.dato{display:inline-flex; padding:.15rem .55rem; border-radius:5px; background:var(--surface-2); font-size:.8rem; font-weight:600; color:var(--ink)}
.dato-fecha{background:transparent; border:1px dashed var(--line); color:var(--muted)}
.formacion-bajo{display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:clamp(1.5rem,4vw,3rem); margin-top:clamp(2.5rem,5vw,3.5rem); align-items:start}
@media (max-width:860px){ .formacion-bajo{grid-template-columns:1fr} }
.recursos h3,.caja-form h3{font-size:1.15rem; margin-bottom:.4rem}
.recursos > p{color:var(--muted); font-size:.95rem; margin-bottom:1rem}
.recursos ul{list-style:none; margin:0; padding:0; display:grid; gap:.1rem}
.recursos li a{display:grid; gap:.1rem; padding:.75rem 0; border-bottom:1px solid var(--line); text-decoration:none; color:var(--ink)}
.recursos li a strong{font-family:var(--f-display); font-size:.96rem; color:var(--accent)}
.recursos li a span{font-size:.9rem; color:var(--muted)}

/* Socios */
.tipos{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem}
@media (max-width:820px){ .tipos{grid-template-columns:1fr} }
.tipo{display:grid; gap:.75rem; align-content:start; padding:1.4rem 1.4rem 1.5rem; background:var(--surface); border:2px solid var(--line); border-radius:14px; scroll-margin-top:96px; cursor:pointer; text-align:left; font:inherit; color:inherit}
.tipo[aria-pressed="true"]{border-color:var(--ink); box-shadow:var(--shadow)}
.tipo-cab{display:flex; align-items:center; justify-content:space-between; gap:1rem}
.tipo h3{font-size:1.3rem; font-weight:800}
.tipo-marca{width:22px; height:22px; border-radius:50%; border:2px solid var(--line); flex:none; display:grid; place-items:center}
.tipo[aria-pressed="true"] .tipo-marca{border-color:var(--btn); background:var(--btn)}
.tipo[aria-pressed="true"] .tipo-marca::after{content:""; width:8px; height:8px; border-radius:50%; background:#fff}
.tipo .quien{font-weight:600}
.tipo ul{margin:0; padding-left:1.15rem; color:var(--muted); font-size:.95rem; display:grid; gap:.25rem}
.tipo-etq{font-size:.72rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--accent)}
.pasos{list-style:none; counter-reset:paso; margin:clamp(2rem,4vw,2.75rem) 0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem}
@media (max-width:760px){ .pasos{grid-template-columns:1fr} }
.pasos li{counter-increment:paso; display:grid; grid-template-columns:auto minmax(0,1fr); gap:.2rem .8rem; align-items:start}
.pasos li::before{content:counter(paso); grid-row:span 2; width:34px; height:34px; border-radius:50%; display:grid; place-items:center; background:var(--ink); color:var(--surface); font-family:var(--f-display); font-weight:800}
.pasos strong{font-family:var(--f-display); font-size:1rem}
.pasos span{color:var(--muted); font-size:.93rem}

/* Formularios */
.caja-form{background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:clamp(1.25rem,3vw,2rem); box-shadow:var(--shadow)}
.caja-form > p.sub{color:var(--muted); font-size:.95rem; margin-bottom:1.25rem}
.form-tit{display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:.5rem; margin-bottom:.35rem}
.form-tit h3{font-size:1.35rem; font-weight:800}
.obligatorio-nota{font-size:.82rem; color:var(--muted)}
form{display:grid; gap:1.2rem}
.fila{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.2rem 1rem}
.fila-3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:700px){ .fila,.fila-3{grid-template-columns:1fr} }
.campo{display:grid; gap:.35rem; min-width:0}
.campo > label,.grupo legend{font-weight:600; font-size:.93rem}
.req{color:var(--accent)}
.ayuda{font-size:.83rem; color:var(--muted)}
input[type=text],input[type=email],input[type=tel],select,textarea{width:100%; min-height:46px; padding:.6rem .75rem; border:1.5px solid var(--line); border-radius:8px; background:var(--bg); color:var(--ink); font:inherit; font-size:1rem}
textarea{min-height:96px; resize:vertical}
input:focus,select:focus,textarea:focus{outline:none; border-color:var(--ink); box-shadow:0 0 0 3px color-mix(in srgb,var(--gold) 55%,transparent)}
.campo.con-error input,.campo.con-error select,.campo.con-error textarea{border-color:var(--al-rojo)}
.error{color:var(--al-rojo); font-size:.85rem; font-weight:600}
.grupo{border:0; margin:0; padding:0; min-width:0; display:grid; gap:.5rem}
.opciones{display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:.35rem 1rem}
.opciones label,.check{display:flex; align-items:flex-start; gap:.55rem; font-size:.95rem; line-height:1.4; padding:.3rem 0; cursor:pointer}
input[type=checkbox],input[type=radio]{width:19px; height:19px; margin:.1rem 0 0; accent-color:var(--btn); flex:none}
.legal-checks{display:grid; gap:.3rem; padding-top:.5rem; border-top:1px solid var(--line)}
.oculto{position:absolute!important; left:-9999px!important}
.form-acciones{display:flex; flex-wrap:wrap; align-items:center; gap:1rem}
.form-acciones .ayuda{max-width:48ch}
.resultado{display:grid; gap:.8rem; padding:1.25rem; border-radius:10px; border:1.5px solid var(--line); background:var(--bg)}
.resultado h4{font-size:1.15rem}
.resultado.ok{border-color:var(--al-verde)}
.resultado.previa{border-color:var(--gold); border-style:dashed}
.resultado.fallo{border-color:var(--al-rojo)}
.resultado dl{display:grid; grid-template-columns:minmax(0,max-content) minmax(0,1fr); gap:.3rem 1rem; margin:0; font-size:.9rem}
.resultado dt{color:var(--muted)} .resultado dd{margin:0; overflow-wrap:anywhere}
@media (max-width:520px){ .resultado dl{grid-template-columns:1fr} .resultado dd{margin-bottom:.4rem} }

/* Contacto */
.contacto-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--r); overflow:hidden}
@media (max-width:520px){ .contacto-grid{grid-template-columns:1fr} }
.contacto-item{display:grid; gap:.4rem; align-content:start; padding:1.2rem; background:var(--surface); min-width:0}
.contacto-item h3{font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); font-weight:700}
.contacto-item p{font-weight:600; overflow-wrap:anywhere}
.copiar{justify-self:start; margin-top:.2rem}
.pendiente{display:inline-block; padding:.05rem .45rem; border:1px dashed var(--gold-ink); border-radius:4px; color:var(--gold-ink); font-weight:600; font-size:.9em}

/* Pie */
.pie{background:var(--band); color:var(--band-muted); padding-block:2.5rem 2rem; font-size:.9rem}
.pie-grid{display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:1.5rem 2rem; align-items:center}
@media (max-width:760px){ .pie-grid{grid-template-columns:1fr} }
.pie img{height:72px; width:auto}
.pie strong{color:var(--band-ink); font-family:var(--f-display)}
.pie a{color:var(--band-ink)}
.pie nav{display:flex; flex-wrap:wrap; gap:.4rem 1.2rem}
.pie-fuentes{grid-column:1 / -1; padding-top:1.2rem; border-top:1px solid var(--band-line); font-size:.82rem}

/* Diálogos legales */
dialog{width:min(760px,calc(100vw - 32px)); max-height:min(86vh,900px); padding:0; border:1px solid var(--line); border-radius:14px; background:var(--surface); color:var(--ink); box-shadow:0 20px 60px rgba(0,0,0,.35)}
dialog::backdrop{background:rgba(6,20,45,.55)}
.dlg-cab{position:sticky; top:0; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 1.25rem; background:var(--surface); border-bottom:1px solid var(--line)}
.dlg-cab h2{font-size:1.2rem}
.dlg-cuerpo{padding:1.25rem 1.25rem 1.75rem; display:grid; gap:.85rem; font-size:.97rem}
.dlg-cuerpo h3{font-size:1rem; margin-top:.6rem}
.dlg-cuerpo ul{margin:0; padding-left:1.2rem; display:grid; gap:.25rem}
.nota-plantilla{padding:.75rem .9rem; border-radius:8px; background:var(--surface-2); font-size:.88rem; color:var(--muted)}
.cerrar{min-height:40px; min-width:40px; border-radius:8px; border:1px solid var(--line); background:var(--surface); color:var(--ink); font-size:1.3rem; line-height:1; cursor:pointer}

/* Próximo evento en portada */
.proximo{display:flex; flex-wrap:wrap; align-items:center; gap:.5rem 1rem; padding-block:1rem; border-top:1px solid var(--band-line); font-size:.95rem}
.prox-etq{display:inline-flex; padding:.2rem .6rem; border-radius:5px; background:var(--gold); color:#2B1D00; font-family:var(--f-display); font-weight:800; font-size:.72rem; letter-spacing:.12em; text-transform:uppercase}
.prox-txt{color:var(--band-ink); text-decoration:none; min-width:0}
.prox-txt strong{font-family:var(--f-display); font-weight:700}
.prox-txt span{color:var(--band-muted)}
.prox-txt:hover strong{text-decoration:underline; text-underline-offset:.2em}
.prox-cuenta{margin-left:auto; font-family:var(--f-mono); font-size:.85rem; color:var(--gold)}
@media (max-width:620px){ .prox-cuenta{margin-left:0} }

/* Noticias y eventos */
.ev-dest{display:grid; grid-template-columns:minmax(0,250px) minmax(0,1fr); gap:clamp(1.25rem,3vw,2.25rem); padding:clamp(1rem,2.5vw,1.5rem); background:var(--surface); border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow)}
.ev-dest.sin-cartel{grid-template-columns:1fr}
.cartel-btn{position:relative; display:block; width:100%; aspect-ratio:440/643; padding:0; border:0; border-radius:10px; overflow:hidden; cursor:zoom-in; background:var(--surface-2); align-self:start}
.cartel-btn img{width:100%; height:100%; object-fit:cover}
.cartel-zoom{position:absolute; left:.6rem; bottom:.6rem; padding:.3rem .6rem; border-radius:6px; background:rgba(6,20,45,.85); color:#fff; font-family:var(--f-body); font-size:.8rem; font-weight:700}
@media (max-width:700px){ .ev-dest{grid-template-columns:1fr} .cartel-btn{max-width:220px} }
.ev-dest-info{display:grid; gap:.75rem; align-content:start; min-width:0}
.ev-dest-etq{display:flex; flex-wrap:wrap; align-items:center; gap:.5rem .9rem}
.estado-ev{padding:.2rem .6rem; border-radius:5px; background:var(--btn); color:var(--btn-ink); font-family:var(--f-display); font-weight:800; font-size:.72rem; letter-spacing:.12em; text-transform:uppercase}
.estado-ev.pasado{background:var(--surface-2); color:var(--muted)}
.cuenta{font-size:.88rem; color:var(--accent)}
.ev-dest h3{font-size:clamp(1.5rem,3vw,2.1rem); font-weight:800}
.lema{font-family:var(--f-display); font-weight:600; font-style:italic; color:var(--gold-ink); font-size:1.08rem}
.ev-dest-desc{color:var(--muted); max-width:62ch}
.ev-dest-datos{display:grid; grid-template-columns:auto auto minmax(0,1fr); gap:.75rem 2rem; margin:.25rem 0 0; padding:.9rem 0; border-block:1px solid var(--line)}
@media (max-width:860px){ .ev-dest-datos{grid-template-columns:1fr} }
.ev-dest-datos dt{font-size:.72rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--muted)}
.ev-dest-datos dd{margin:0; font-weight:600}
.ev-mapa{white-space:nowrap}
.ev-dest-acciones{display:flex; flex-wrap:wrap; align-items:center; gap:.75rem 1rem}
.ev-google{font-size:.9rem; font-weight:600}
.programa{grid-column:1 / -1; border-top:1px solid var(--line)}
.programa summary{cursor:pointer; padding:.9rem 0; font-family:var(--f-display); font-weight:700}
.programa summary:hover{color:var(--accent)}
.ponencias{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:10px; overflow:hidden}
@media (max-width:980px){ .ponencias{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:600px){ .ponencias{grid-template-columns:1fr} }
.ponencias li{display:grid; gap:.3rem; align-content:start; padding:1rem; background:var(--surface)}
.pon-tit{font-family:var(--f-display); font-weight:700; font-size:.98rem; line-height:1.3}
.pon-quien{font-weight:600; font-size:.92rem}
.pon-ent{color:var(--muted); font-size:.86rem}
.mesa{display:grid; gap:.35rem; margin-top:1rem; padding:1rem 1.1rem; border-radius:10px; background:var(--surface-2)}
.mesa-etq{font-size:.72rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--accent)}
.mesa-tit{font-family:var(--f-display); font-weight:700; font-size:1.1rem}
.mesa-part{color:var(--muted); font-size:.93rem}
.noticias-bloque{display:grid; gap:1rem; margin-top:clamp(2rem,4vw,2.75rem)}
.noticias-bloque h3{font-size:1.15rem}
.noticias-bloque .btn{justify-self:start}
.noticias{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem}
@media (max-width:860px){ .noticias{grid-template-columns:1fr} }
.noticia{display:grid; gap:.4rem; align-content:start; padding:1.1rem; background:var(--surface); border:1px solid var(--line); border-radius:var(--r)}
.noticia time{font-size:.8rem; color:var(--muted)}
.noticia h4{font-size:1.02rem}
.noticia p{color:var(--muted); font-size:.93rem}
.pasados{list-style:none; margin:0; padding:0; border-top:1px solid var(--line)}
.pasados li{display:flex; flex-wrap:wrap; align-items:baseline; gap:.3rem 1rem; padding:.75rem 0; border-bottom:1px solid var(--line)}
.pas-fecha{min-width:7.5rem; font-size:.85rem; color:var(--muted)}
.pas-tit{font-weight:600}
.enlace-btn{margin-left:auto; padding:0; border:0; background:none; color:var(--accent); font:inherit; font-size:.9rem; font-weight:600; text-decoration:underline; text-underline-offset:.18em; cursor:pointer}
.dlg-cartel{width:min(620px,calc(100vw - 32px))}
.dlg-cartel .dlg-cuerpo img{width:100%; height:auto; border-radius:8px; background:var(--surface-2)}

/* Junta directiva y entidades colaboradoras */
:root{ --logo-bg:#FFFFFF; --logo-ink:#0F1B33 }
.bloque-equipo{display:grid; gap:1.1rem; margin-top:clamp(2.5rem,5vw,3.5rem)}
.bloque-cab{display:grid; gap:.4rem; max-width:70ch}
.bloque-cab h3{font-size:1.25rem; font-weight:800}
.bloque-cab p{color:var(--muted); font-size:.98rem}
.junta{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:1rem}
.miembro{display:grid; justify-items:center; align-content:start; gap:.75rem; padding:1.4rem 1rem 1.25rem; text-align:center; background:var(--surface); border:1px solid var(--line); border-radius:var(--r)}
.avatar{width:64px; height:64px; border-radius:50%; display:grid; place-items:center; overflow:hidden; background:var(--band); color:var(--band-ink); font-family:var(--f-display); font-weight:800; font-size:1.2rem; box-shadow:0 0 0 3px var(--surface),0 0 0 5px var(--gold); flex:none}
.avatar svg{width:34px; height:34px; color:var(--band-muted)}
.avatar img{width:100%; height:100%; object-fit:cover}
.miembro-txt{display:grid; gap:.2rem; min-width:0}
.miembro-cargo{font-size:.72rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--accent)}
.miembro-nombre{font-family:var(--f-display); font-weight:700; font-size:1rem; overflow-wrap:anywhere}
.miembro-perfil{color:var(--muted); font-size:.88rem}
@media (max-width:980px){
  .junta{grid-template-columns:1fr; gap:0; border-top:1px solid var(--line)}
  .miembro{grid-template-columns:auto minmax(0,1fr); justify-items:start; align-items:center; gap:1rem; padding:.8rem .25rem; text-align:left; background:none; border:0; border-bottom:1px solid var(--line); border-radius:0}
  .avatar{width:50px; height:50px; font-size:1rem}
}
.entidades{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:1rem}
.entidad > a,.entidad > span{display:grid; place-items:center; min-height:96px; padding:1rem; background:var(--logo-bg); color:var(--logo-ink); border:1px solid var(--line); border-radius:var(--r); text-decoration:none; text-align:center}
.entidad > a:hover{border-color:var(--ink)}
.entidad img{max-height:56px; width:auto; object-fit:contain}
.entidad-nombre{font-family:var(--f-display); font-weight:700; font-size:.95rem}
.entidad-cta{display:grid; place-items:center; gap:.7rem; min-height:96px; padding:1rem; text-align:center; border:1.5px dashed var(--line); border-radius:var(--r)}
.entidad-cta.sola{grid-column:1 / -1; grid-template-columns:minmax(0,1fr) auto; justify-items:start; align-items:center; text-align:left; padding:1.1rem 1.25rem}
.entidad-cta p{color:var(--muted); font-size:.95rem}
@media (max-width:600px){ .entidad-cta.sola{grid-template-columns:1fr} }

/* Móvil: filtros del mapa en una sola fila deslizable */
@media (max-width:640px){
  .mapa-barra{gap:.6rem; padding:.8rem 0}
  .mapa-barra .chips{flex-wrap:nowrap; overflow-x:auto; width:100%; padding-inline:max(16px,env(safe-area-inset-left,0px)) max(16px,env(safe-area-inset-right,0px)); scrollbar-width:none}
  .mapa-barra .chips::-webkit-scrollbar{display:none}
  .mapa-barra .chip{flex:none}
}

/* Selector de idioma */
.nav{order:2}
.idioma{order:3; position:relative; display:inline-flex; align-items:center; margin-left:.5rem; flex:none}
.idioma svg{position:absolute; left:.55rem; width:17px; height:17px; color:var(--muted); pointer-events:none}
.idioma select{appearance:none; -webkit-appearance:none; min-height:38px; padding:.35rem 1.7rem .35rem 2rem; border:1px solid var(--line); border-radius:8px; background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5 6 8l3.5-3.5' fill='none' stroke='%234A5770' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right .55rem center / 11px; color:var(--ink); font-family:var(--f-display); font-weight:700; font-size:.85rem; letter-spacing:.04em; cursor:pointer}
.idioma select:hover{border-color:var(--ink)}
.idioma select:focus-visible{outline:3px solid var(--gold); outline-offset:2px}
.menu-btn{order:4}
@media (max-width:960px){ .idioma{margin-left:0} }
@media (max-width:420px){
  .menu-txt{display:none}
  .menu-btn{padding:.4rem .6rem}
  .cab-inner{gap:.6rem}
  .idioma select{padding-left:1.85rem; padding-right:1.5rem}
}
.ev-idioma{font-size:.88rem; font-weight:600; color:var(--accent)}

/* Redes sociales */
.redes-lista{list-style:none; margin:0; padding:0; display:grid; gap:.45rem}
.redes-lista li{display:grid; gap:0; font-weight:600}
.red-usuario{color:var(--muted); font-weight:400; font-size:.86rem; overflow-wrap:anywhere}
.contacto-item p a{overflow-wrap:anywhere}
.pie-redes{margin-top:.45rem}
[data-redes-inline] a{white-space:nowrap}

/* Alertas y avisos en Canarias */
:root{ --aem-0:#CFE6D6; --aem-1:#F5D328; --aem-2:#F0901A; --aem-3:#D7262F; --aem-sd:#D7DCE5; --sem-amarillo:#E9B800 }
.hero .can-portada{position:relative; z-index:1}
.can-portada{display:flex; flex-wrap:wrap; align-items:center; gap:.5rem 1.2rem; padding-block:1rem; border-top:1px solid var(--band-line); font-size:.95rem}
.can-portada-items{display:flex; flex-wrap:wrap; gap:.5rem 1.4rem; min-width:0}
.cp-item{display:block; color:var(--band-ink); line-height:1.75}
.cp-item .chip-niv,.cp-item .nivel-aemet,.cp-item .chip-acc{vertical-align:.08em; margin-right:.2rem}
.cp-desde{color:var(--band-muted)}
.cp-item strong{font-family:var(--f-display); font-weight:700}
@media (max-width:620px){ .can-portada .sit-tit{flex-basis:100%} .can-portada .sit-link{margin-left:0} }

.can-estado{margin:0 0 1.25rem; padding:.7rem 1rem; border-radius:8px; background:var(--surface-2); color:var(--muted); font-size:.92rem}
.can-estado.previa{background:#FFF6DC; color:#5C4300; border:1px solid #F0D58A}
.can-estado.error{background:#FCEBEC; color:#8A0712; border:1px solid #F1C2C6; font-weight:600}
.can-grid{display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:1.25rem; align-items:start}
.can-grid-b{margin-top:1.25rem; grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.can-col{display:grid; gap:1.25rem}
@media (max-width:920px){ .can-grid,.can-grid-b{grid-template-columns:1fr} }
.can-card{display:flex; flex-direction:column; gap:.85rem; padding:clamp(1rem,2.4vw,1.4rem); background:var(--surface); border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow); min-width:0}
.can-cab{display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:.25rem 1rem}
.can-cab h3{font-size:1.12rem; font-weight:800}
.can-fuente{font-family:var(--f-mono); font-size:.76rem; color:var(--muted); letter-spacing:.02em}
.can-sub{color:var(--muted); font-size:.92rem; margin-top:-.35rem}
.can-nota{font-size:.85rem; color:var(--muted); margin-top:auto; padding-top:.2rem}

/* Mapa de islas */
.islas-wrap{background:var(--sea); border-radius:10px; overflow:hidden}
#mapa-islas{display:block; width:100%; height:auto}
#mapa-islas .isla{stroke:#FFFFFF; stroke-width:1.2; stroke-linejoin:round; transition:fill .2s}
.isla.n0{fill:var(--aem-0)} .isla.n1{fill:var(--aem-1)} .isla.n2{fill:var(--aem-2)} .isla.n3{fill:var(--aem-3)}
.isla.sd{fill:var(--aem-sd); stroke:#97A2B4; stroke-dasharray:4 3}
.islas-etiquetas text{font-family:var(--f-display); font-weight:700; font-size:24px; fill:var(--ink); paint-order:stroke; stroke:rgba(255,255,255,.92); stroke-width:6px; stroke-linejoin:round; pointer-events:none}
@media (max-width:560px){ .islas-etiquetas text{font-size:30px; stroke-width:7px} .islas-wrap{margin-inline:calc(-1 * clamp(1rem,2.4vw,1.4rem)); border-radius:0} }
.sismo-pt{fill:rgba(176,9,22,.16); stroke:var(--accent); stroke-width:1.6}
.can-leyenda{font-size:.82rem; color:var(--muted); gap:.35rem .9rem}
.ley-caja{display:inline-block; width:14px; height:14px; border-radius:3px; border:1px solid rgba(15,27,51,.18); flex:none}
.ley-caja.n0{background:var(--aem-0)} .ley-caja.n1{background:var(--aem-1)} .ley-caja.n2{background:var(--aem-2)} .ley-caja.n3{background:var(--aem-3)}
.ley-caja.sd{background:repeating-linear-gradient(135deg,var(--aem-sd) 0 3px,#FFFFFF 3px 5px); border:1px dashed #AEB6C4}
.ley-sismo{display:inline-block; width:13px; height:13px; border-radius:50%; background:rgba(176,9,22,.16); border:1.6px solid var(--accent); flex:none}

/* Lista de avisos por isla */
.avisos-islas{list-style:none; margin:0; padding:0; display:grid; border-top:1px solid var(--line)}
.aviso-isla{padding:.75rem 0; border-bottom:1px solid var(--line); display:grid; gap:.45rem}
.aviso-isla details{display:grid; gap:.45rem}
.aviso-isla summary{list-style:none; cursor:pointer; border-radius:6px}
.aviso-isla summary::-webkit-details-marker{display:none}
.aviso-isla summary .aviso-isla-cab::after{content:""; margin-left:auto; width:8px; height:8px; border-right:2px solid var(--muted); border-bottom:2px solid var(--muted); transform:rotate(45deg); transition:transform .15s; flex:none}
.aviso-isla details[open] summary .aviso-isla-cab::after{transform:rotate(-135deg)}
.aviso-isla details[open] > summary{margin-bottom:.45rem}
.aviso-resumen{font-family:var(--f-body); font-size:.86rem; font-weight:400; color:var(--muted); min-width:0}
.aviso-isla-cab{display:flex; flex-wrap:wrap; align-items:center; gap:.2rem .55rem; font-family:var(--f-display); font-size:.98rem}
.aviso-ninguno .aviso-isla-cab{font-family:var(--f-body); font-size:.92rem; color:var(--muted)}
.avisos-lista{list-style:none; margin:0; padding:0 0 0 calc(14px + .55rem); display:grid; gap:.55rem}
.avisos-lista > li{display:grid; grid-template-columns:auto minmax(0,1fr); gap:.6rem; align-items:start; font-size:.93rem}
.aviso-txt strong{font-weight:700}
.aviso-det{color:var(--muted)}
.aviso-cuando{display:flex; flex-wrap:wrap; align-items:center; gap:.4rem; margin-top:.15rem; font-family:var(--f-mono); font-size:.8rem; color:var(--muted)}
.aviso-estado{display:inline-flex; padding:.05rem .45rem; border-radius:4px; border:1px solid var(--line); font-family:var(--f-body); font-size:.72rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--muted)}
.aviso-estado.vigor{border-color:var(--accent); color:var(--accent)}
.aviso-sd{font-size:.86rem; color:var(--muted); padding-left:calc(14px + .55rem)}
.aviso-error{padding:.8rem 1rem; border-radius:8px; background:#FCEBEC; color:#8A0712; font-size:.92rem; font-weight:600; list-style:none}
.nivel-aemet{display:inline-flex; align-items:center; padding:.12rem .5rem; border-radius:5px; font-size:.74rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; white-space:nowrap}
.nivel-aemet.amarillo{background:var(--aem-1); color:#3A2E00}
.nivel-aemet.naranja{background:var(--aem-2); color:#2B1500}
.nivel-aemet.rojo{background:var(--aem-3); color:#FFFFFF}

/* Situaciones declaradas (Gobierno de Canarias) */
.comunicados{list-style:none; margin:0; padding:0; display:grid; border-top:1px solid var(--line)}
.comunicado{display:grid; gap:.35rem; padding:.8rem .2rem .8rem .9rem; border-bottom:1px solid var(--line); box-shadow:inset 3px 0 0 var(--line)}
.comunicado.reciente{box-shadow:inset 3px 0 0 var(--gold); background:linear-gradient(90deg,rgba(246,175,7,.07),transparent 60%)}
.comunicado.acc-finaliza{box-shadow:inset 3px 0 0 var(--al-verde)}
.com-chips{display:flex; flex-wrap:wrap; align-items:center; gap:.4rem}
.com-fen{font-family:var(--f-display); font-size:1rem}
.com-ambito{font-size:.93rem}
.com-meta{font-size:.82rem; color:var(--muted)}
.chip-acc{display:inline-flex; padding:.1rem .45rem; border-radius:4px; background:var(--surface-2); color:var(--ink); font-size:.72rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase}
.acc-finaliza .chip-acc{background:#DDF0E4; color:#1D5E39}
.chip-niv{display:inline-flex; padding:.1rem .5rem; border-radius:4px; font-size:.74rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; white-space:nowrap}
.niv-prealerta{background:var(--aem-1); color:#3A2E00}
.niv-alerta{background:var(--aem-2); color:#2B1500}
.niv-alerta-maxima{background:var(--aem-3); color:#FFFFFF}
.niv-emergencia{background:#7A0510; color:#FFFFFF}
.acc-finaliza .chip-niv{opacity:.65}
.cp-item .chip-acc{background:var(--band-2); color:var(--band-ink)}

/* Semáforo volcánico */
.semaforo{list-style:none; margin:0; padding:0; display:grid; gap:.7rem}
.sem-isla{display:grid; grid-template-columns:auto minmax(0,1fr); gap:.75rem; align-items:start}
.sem-luz{width:22px; height:22px; border-radius:50%; margin-top:.15rem; box-shadow:0 0 0 3px var(--surface),0 0 0 4px var(--line)}
.sem-verde{background:var(--al-verde)} .sem-amarillo{background:var(--sem-amarillo)} .sem-naranja{background:var(--al-naranja)} .sem-rojo{background:var(--al-rojo)}
.sem-cab{font-family:var(--f-display); font-size:.98rem}
.sem-nivel{font-weight:700; text-transform:uppercase; font-size:.8rem; letter-spacing:.06em; color:var(--muted)}
.sem-desc{font-size:.9rem; color:var(--muted)}

/* Terremotos */
.sismos{list-style:none; margin:0; padding:0; display:grid; border-top:1px solid var(--line)}
.sismo{display:grid; grid-template-columns:auto minmax(0,1fr); gap:.85rem; align-items:center; padding:.65rem 0; border-bottom:1px solid var(--line)}
.sismo-mag{display:inline-grid; place-items:center; min-width:3.1rem; padding:.3rem .4rem; border-radius:8px; background:var(--band); color:var(--band-ink); font-family:var(--f-mono); font-size:1.05rem; font-weight:500}
.sismo-txt{display:grid; gap:.1rem; min-width:0}
.sismo-txt strong{font-size:.95rem; overflow-wrap:anywhere}
.sismo-meta{font-family:var(--f-mono); font-size:.8rem; color:var(--muted)}
.sismo-ninguno{padding:.8rem 0; color:var(--muted); font-size:.93rem}

/* Consejos de autoprotección */
.consejos-tabs .chip{min-height:38px}
.chip-activo{border-color:var(--accent); color:var(--accent)}
.chip-activo::before{content:""; width:8px; height:8px; border-radius:50%; background:var(--accent)}
.chip-activo[aria-pressed="true"]{background:var(--accent); border-color:var(--accent); color:#FFFFFF}
.chip-activo[aria-pressed="true"]::before{background:#FFFFFF}
.consejos-lista{list-style:none; margin:0; padding:0; display:grid; gap:.6rem}
.consejos-lista li{position:relative; padding-left:1.6rem; font-size:.95rem}
.consejos-lista li::before{content:""; position:absolute; left:.1rem; top:.42em; width:.85rem; height:.5rem; border-left:2.5px solid var(--al-verde); border-bottom:2.5px solid var(--al-verde); transform:rotate(-45deg)}

/* 112 y ES-Alert */
.can-112{display:grid; grid-template-columns:auto minmax(0,1fr); gap:1.25rem; align-items:center; margin-top:1.25rem; padding:clamp(1rem,2.6vw,1.4rem) clamp(1rem,3vw,1.75rem); background:var(--band); color:var(--band-ink); border-radius:14px}
.num112{font-family:var(--f-display); font-weight:800; font-size:clamp(2.4rem,6vw,3.4rem); line-height:1; color:#FFFFFF; padding:.35rem .7rem; border-radius:10px; background:var(--btn); letter-spacing:-.02em}
.can-112-txt{display:grid; gap:.45rem; font-size:.97rem; color:var(--band-muted)}
.can-112-txt strong{color:var(--band-ink)}
@media (max-width:520px){ .can-112{grid-template-columns:1fr; gap:.85rem} .num112{justify-self:start} }
.aviso-ninguno .aviso-isla-cab{flex-wrap:nowrap; align-items:flex-start}
.aviso-ninguno .ley-caja{margin-top:.2em}

/* ---------- Web en varias páginas ---------- */
[hidden]{display:none!important}

/* Página actual en el menú */
.nav a[aria-current="page"]:not(.btn){box-shadow:inset 0 -3px 0 var(--gold); border-radius:6px 6px 0 0}
.nav .btn[aria-current="page"]{box-shadow:0 0 0 3px rgba(246,175,7,.55)}
@media (max-width:960px){
  .nav a[aria-current="page"]:not(.btn){box-shadow:inset 4px 0 0 var(--gold); border-radius:0; background:var(--surface-2); padding-left:.9rem}
}

/* Cabecera de cada página (banda azul) */
.pag-cab{background:var(--band); color:var(--band-ink); position:relative; overflow:hidden}
.pag-cab::after{content:""; position:absolute; inset:auto 0 0 0; height:4px; background:linear-gradient(90deg,var(--btn) 0 50%,var(--gold) 50% 100%)}
.pag-cab .wrap{display:grid; gap:.9rem; padding-block:clamp(2.1rem,5.5vw,3.5rem) clamp(2.3rem,5vw,3.25rem)}
.pag-cab h1{font-size:clamp(1.75rem,4.2vw,2.75rem); font-weight:800; letter-spacing:-.02em; max-width:28ch}
.pag-intro{color:var(--band-muted); font-size:1.08rem; max-width:64ch}
.subnav{display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.5rem}
.subnav a{display:inline-flex; align-items:center; min-height:40px; padding:.4rem 1rem; border-radius:999px; border:1.5px solid var(--band-muted); color:var(--band-ink); font-family:var(--f-display); font-weight:700; font-size:.88rem; text-decoration:none}
.subnav a:hover{border-color:var(--band-ink); background:var(--band-2)}
.pag-cab + .seccion{padding-top:clamp(2.25rem,5vw,3.5rem)}
.seccion{scroll-margin-top:72px}

/* Inicio: «Qué hacemos» y «Únete» */
.sec-mas{margin-top:clamp(1.75rem,4vw,2.5rem)}
.unete-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem}
@media (max-width:760px){ .unete-grid{grid-template-columns:1fr} }
.unete-card{display:grid; grid-template-rows:auto auto 1fr auto; gap:.7rem; padding:clamp(1.2rem,3vw,1.6rem); background:var(--surface); border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow)}
.unete-card h3{font-size:1.3rem; font-weight:800}
.unete-card p{color:var(--muted)}
.unete-card .btn{justify-self:start; margin-top:.4rem}
@media (max-width:560px){
  .lineas-resumen{grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.4rem 1rem}
  .lineas-resumen .linea p{display:none}
  .lineas-resumen .linea h3{font-size:1rem}
}

/* Inicio: mapa de avisos de la AEMET dentro de la zona azul */
.hero .hero-avisos{position:relative; z-index:1; padding-bottom:clamp(1.75rem,4vw,2.5rem)}
.hero .can-inicio{color:var(--ink)}
.can-inicio .can-cab h2{font-size:1.15rem; font-weight:800}
.can-inicio-grid{display:grid; grid-template-columns:minmax(0,1.45fr) minmax(0,1fr); gap:1.25rem 1.75rem; align-items:start}
.can-inicio-mapa{display:grid; gap:.75rem}
.can-inicio-lista{display:grid; gap:.6rem}
@media (max-width:860px){ .can-inicio-grid{grid-template-columns:1fr} }
