/* =====================================================================
   ICAN 2026 · Sistema visual
   Paleta:  midnight / atlantic / sky / brass / jade
   Tipos:   serif institucional (display) + monoespaciado aeronáutico (datos)
   ===================================================================== */
@font-face{
  font-family:"Great Vibes";
  src:url("../../assets/fonts/GreatVibes-Regular.woff2") format("woff2"),
      url("../../assets/fonts/GreatVibes-Regular.ttf") format("truetype");
  font-weight:400;font-style:normal;font-display:swap;
}
:root{
  --midnight:#06263c; --deep:#0a3352; --atlantic:#0f4f78; --azure:#2b7cb0;
  --sky:#cfe6f4; --mist:#f2f7fa; --line:#dbe7ef; --line-soft:#eaf1f6;
  --brass:#b8893f; --brass-soft:#f3e6d0; --jade:#1f6f52; --ruby:#9c3440;
  /* Oro de portada: unico origen del color del slogan y del "con el mundo"
     del titular. Cambiando esta variable cambian los dos a la vez. */
  --oro:#f0d6ab; --oro-fuerte:#e8c489;
  --ink:#122c3d; --body:#3c5a6d; --muted:#6b8497; --white:#fff;
  /* tono unico de las tarjetas: cambielo aqui y cambia en todo el sitio */
  --card-soft:#E9F2F7; --card-soft-hover:#DFEBF3;
  --org-panel:#f6fafc;
  --display:Georgia,"Noto Serif","Times New Roman",serif;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,"Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
  --wrap:1240px; --pad:clamp(1.15rem,5vw,3.5rem);
  --r:14px; --r-lg:22px;
  --shadow-s:0 2px 10px rgba(6,38,60,.05);
  --shadow-m:0 14px 38px rgba(6,38,60,.09);
  --shadow-l:0 30px 70px rgba(6,38,60,.20);
}
/* El chino necesita su propia pila tipográfica: Georgia no tiene glifos CJK */
html[lang="zh"]{
  --display:"Noto Serif SC","Source Han Serif SC","Songti SC","STSong",Georgia,serif;
  --sans:"Noto Sans SC","PingFang SC","Microsoft YaHei","Hiragino Sans GB",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
html[lang="zh"] .eyebrow,html[lang="zh"] .chip,html[lang="zh"] .cd-unit span,
html[lang="zh"] .stat>span,html[lang="zh"] .utility .wrap,html[lang="zh"] .foot h4{letter-spacing:.06em}
html[lang="zh"] h1,html[lang="zh"] h2{letter-spacing:0}
html[lang="zh"] .langsel a{letter-spacing:0}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--sans);color:var(--body);background:var(--white);
  line-height:1.65;font-size:16.5px;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--atlantic)}
h1,h2,h3,h4{color:var(--ink);font-weight:700;line-height:1.15;margin:0}
h1,h2{font-family:var(--display);letter-spacing:-.022em;font-weight:400}
h3,h4{letter-spacing:-.01em}
p{margin:0 0 1rem}
p:last-child{margin-bottom:0}
:focus-visible{outline:3px solid var(--brass);outline-offset:3px;border-radius:4px}

/* ---------- utilidades ---------- */
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding-inline:var(--pad)}
.eyebrow{font-family:var(--mono);font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--azure);font-weight:600;display:block;margin-bottom:.85rem}
/* Slogan de portada: mismo tratamiento tipografico que el "con el mundo" del
   titular (serif en cursiva, oro). No es un eyebrow tecnico, por eso se le
   quita la caja monoespaciada en versales. */
.eyebrow.slogan{font-family:"Great Vibes",cursive;font-style:normal;font-weight:400;
  font-size:clamp(1.3rem,2.6vw,1.9rem);letter-spacing:0;text-transform:none;
  color:var(--oro);margin-bottom:.6rem;text-wrap:balance;line-height:1.3}
.lead{font-size:clamp(1.02rem,1.6vw,1.15rem);max-width:74ch;color:var(--body)}
.hd{max-width:80ch;margin-bottom:2.6rem}
.hd h2{font-size:clamp(1.95rem,4vw,3rem);margin-bottom:.9rem;text-wrap:balance}
/* el informe pide estos titulares y entradillas en una sola linea */
.hd.ancho{max-width:none}
.hd.ancho h2{white-space:normal;text-wrap:balance}
.hd.ancho .lead{max-width:none;text-wrap:balance}
@media(min-width:1180px){
  .hd.ancho .lead{font-size:1.06rem}
}
.chip{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--mono);font-size:.66rem;
  letter-spacing:.13em;text-transform:uppercase;font-weight:600;padding:.32rem .6rem;border-radius:5px;
  background:var(--sky);color:var(--deep);white-space:nowrap}
.chip.out{background:transparent;border:1px solid var(--line);color:var(--muted)}

/* ---------- botones ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:0;cursor:pointer;
  font-family:var(--sans);font-size:.92rem;font-weight:650;text-decoration:none;padding:.85rem 1.5rem;
  border-radius:999px;background:var(--atlantic);color:#fff;transition:background .2s,transform .2s,box-shadow .2s;
  box-shadow:0 6px 18px rgba(15,79,120,.22)}
.btn:hover{background:var(--deep);transform:translateY(-2px);box-shadow:0 12px 26px rgba(15,79,120,.28)}
.btn.ghost{background:transparent;color:var(--deep);border:1.5px solid var(--line);box-shadow:none}
.btn.ghost:hover{background:var(--mist);border-color:var(--azure);color:var(--deep)}
.btn.brass{background:var(--brass);color:#fff;box-shadow:0 6px 18px rgba(184,137,63,.28)}
.btn.brass:hover{background:#9c7132;color:#fff}
.btn.light{background:#fff;color:var(--deep);box-shadow:0 8px 22px rgba(0,0,0,.18)}
.btn.light:hover{background:var(--sky)}

/* ---------- barra superior ---------- */
.flagrule{height:5px;background:linear-gradient(90deg,var(--jade) 0 25%,#fff 25% 50%,var(--ruby) 50% 75%,var(--atlantic) 75%)}
.utility{background:var(--midnight);color:#a9c6d8}
.utility .wrap{display:flex;justify-content:flex-end!important;align-items:center;gap:.6rem 1rem;flex-wrap:wrap;
  padding-block:.55rem;font-family:var(--mono);font-size:.68rem;letter-spacing:.11em;text-transform:uppercase}
.utility .wrap>span{min-width:0}
.utility b{color:#fff;font-weight:600}
.langsel{display:inline-flex;gap:.25rem;align-items:center;flex-wrap:wrap}
.utility .wrap>.langsel{margin-left:auto!important;margin-right:0!important}
.langsel a{display:inline-flex;align-items:center;gap:.34rem;padding:.22rem .46rem;border-radius:6px;
  text-decoration:none;font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;font-weight:700;
  border:1px solid transparent;transition:.18s;line-height:1}
.langsel .flw{display:inline-flex;width:19px;height:13px;border-radius:2.5px;overflow:hidden;flex-shrink:0;
  box-shadow:0 1px 2px rgba(0,0,0,.35);opacity:.88;transition:.18s}
.langsel .fl{display:block;width:100%;height:100%}
.langsel .nm{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0}
.langsel a:hover .flw,.langsel a.on .flw{opacity:1}
@media(max-width:620px){.langsel .cd{display:none}.langsel a{padding:.22rem .3rem}}
.langsel a{color:#a9c6d8}
.langsel a:hover{color:#fff;border-color:rgba(255,255,255,.28);background:rgba(255,255,255,.07)}
.langsel a.on{background:#fff;color:var(--midnight);border-color:#fff}
.langsel a.on .flw{box-shadow:0 1px 3px rgba(6,38,60,.4)}

/* ---------- navegación ---------- */
/* Cabecera institucional: va sobre fondo claro porque el logotipo lleva
   los colores oficiales de la OACI, del escudo y de la bandera. Sobre el
   azul de la portada seria ilegible. */
.nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.93);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);transition:box-shadow .25s}
.nav.stuck{box-shadow:0 6px 24px rgba(6,38,60,.08)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:.75rem;height:74px;position:relative;
  max-width:none;padding-inline:clamp(1rem,3vw,3.5rem)}
.brand{display:flex;align-items:center;gap:.75rem;text-decoration:none;flex-shrink:0;height:100%;overflow:hidden}
.brand .mark{width:46px;height:46px;border-radius:12px;background:var(--midnight);color:#fff;
  display:grid;place-items:center;font-family:var(--mono);font-size:.62rem;font-weight:700;
  letter-spacing:.04em;line-height:1.15;text-align:center;position:relative;overflow:hidden}
.brand .mark::after{content:"";position:absolute;left:-10%;right:-10%;bottom:9px;height:14px;
  border-top:1.5px solid rgba(184,137,63,.85);border-radius:50%}
/* Logo subido por el panel (Imágenes del sitio > logo_evento): libre, sin
   caja ni fondo forzado. Para agrandarlo o achicarlo solo hace falta
   cambiar --logo-h aquí, no toca layout ni rompe nada alrededor. */
.logo-subido{--logo-h:42px;height:var(--logo-h);max-height:100%;width:auto;max-width:220px;object-fit:contain;display:block;flex-shrink:0}
.foot .logo-subido{--logo-h:40px;max-height:60px}
.brand .txt b{display:block;font-family:var(--display);font-size:1.02rem;color:var(--ink);line-height:1.1;font-weight:400}
.brand .txt span{font-family:var(--mono);font-size:.6rem;letter-spacing:.19em;text-transform:uppercase;color:var(--muted)}
.navlinks{display:flex;align-items:center;justify-content:space-between;gap:.08rem;flex:1;min-width:0}
.site-navgroup{position:relative;height:74px;display:flex;align-items:center}
.site-navgroup summary{list-style:none;display:flex;align-items:center;gap:.3rem;cursor:pointer;
  color:#3f6076;font-size:.79rem;font-weight:680;padding:.62rem .52rem;border-radius:9px;white-space:nowrap;
  transition:color .18s,background .18s;user-select:none}
.site-navgroup summary::-webkit-details-marker{display:none}
.site-navgroup summary::after{content:"";width:6px;height:6px;border-right:1.7px solid currentColor;border-bottom:1.7px solid currentColor;
  transform:rotate(45deg) translateY(-2px);transition:transform .2s;margin-left:.12rem}
.site-navgroup:hover summary,.site-navgroup:focus-within summary,.site-navgroup[open] summary{background:var(--mist);color:var(--deep)}
.site-navgroup[open] summary::after{transform:rotate(225deg) translate(-1px,-1px)}
.site-drop{position:absolute;top:calc(100% - 3px);left:0;width:260px;padding:.55rem;background:#fff;
  border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 42px rgba(6,38,60,.16);
  opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .18s,transform .18s,visibility .18s;z-index:60}
.site-navgroup:last-of-type .site-drop{left:auto;right:0}
.site-navgroup:hover .site-drop,.site-navgroup:focus-within .site-drop,.site-navgroup[open] .site-drop{opacity:1;visibility:visible;transform:none}
.navlinks .site-drop a{display:flex;align-items:center;justify-content:space-between;padding:.7rem .78rem;border-radius:8px;
  font-size:.83rem;border-bottom:1px solid var(--line-soft)}
.navlinks .site-drop a:last-child{border-bottom:0}.navlinks .site-drop a::after{content:"›";color:var(--azure);font-size:1.05rem}
.envivo{display:flex;align-items:center;gap:.4rem;color:#a83440;font-weight:800;margin-left:.4rem}
.envivo:hover{color:#8a2a35}
.punto{width:9px;height:9px;border-radius:50%;background:#e0323f;flex-shrink:0;animation:pulso 1.6s ease-in-out infinite}
@keyframes pulso{0%,100%{box-shadow:0 0 0 0 rgba(224,50,63,.55)}50%{box-shadow:0 0 0 6px rgba(224,50,63,0)}}
@media(prefers-reduced-motion:reduce){.punto{animation:none}}
.navlinks a{text-decoration:none;font-size:.85rem;font-weight:600;color:#3f6076;padding:.5rem .68rem;
  border-radius:8px;white-space:nowrap;transition:color .18s,background .18s}
.navlinks a:hover{background:var(--mist);color:var(--deep)}
.navlinks a.active{color:var(--atlantic)}
.navlinks a.active::after{content:"";display:block;height:2px;background:var(--brass);border-radius:2px;margin-top:3px}
.navcta{margin-left:.5rem;display:inline-flex}
/* Llamada del programa: dorada, para que destaque sobre la barra blanca sin
   competir con el azul institucional de los enlaces. */
.navcta a{padding:.62rem 1.2rem;font-size:.85rem;font-weight:700;letter-spacing:.01em;white-space:nowrap}
.burger{display:none;background:var(--mist);border:1px solid var(--line);border-radius:10px;
  width:44px;height:44px;cursor:pointer;padding:0;position:relative}
.burger span{position:absolute;left:12px;right:12px;height:2px;background:var(--deep);border-radius:2px;transition:.25s}
.burger span:nth-child(1){top:15px}.burger span:nth-child(2){top:21px}.burger span:nth-child(3){top:27px}
.burger[aria-expanded=true] span:nth-child(1){top:21px;transform:rotate(45deg)}
.burger[aria-expanded=true] span:nth-child(2){opacity:0}
.burger[aria-expanded=true] span:nth-child(3){top:21px;transform:rotate(-45deg)}
.progress{position:absolute;left:0;bottom:-1px;height:2px;width:0;background:linear-gradient(90deg,var(--atlantic),var(--brass))}

/* ---------- hero ---------- */
.hero{position:relative;background:#04203a;color:#dbeaf3;overflow:hidden;isolation:isolate;
  min-height:clamp(420px,58vh,580px);display:flex;align-items:center}
.hero::before{content:"";position:absolute;inset:0;z-index:-3;
  background:radial-gradient(ellipse 62% 58% at 72% 34%,rgba(43,124,176,.40),transparent 64%),
             radial-gradient(ellipse 48% 60% at 88% 84%,rgba(184,137,63,.20),transparent 62%),
             linear-gradient(160deg,#04203a 0%,#072e4c 55%,#0a3a5f 100%)}
/* ---- escenario aéreo del hero ---- */
.skyfield{position:absolute;inset:0;z-index:-2;pointer-events:none;overflow:hidden}
.skymap{position:absolute;inset:0;
  background:url("../../assets/mapa-mundo.svg") center center / cover no-repeat;
  opacity:.85;filter:drop-shadow(0 0 22px rgba(60,150,215,.35))}
.skyarcs{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.skyarcs .arc{fill:none;stroke:url(#arcGrad);stroke-width:1.5;stroke-linecap:round}
.skyarcs .arc.soft{stroke:rgba(150,205,240,.34);stroke-width:1}
.skyarcs .orbit{fill:none;stroke:rgba(214,170,96,.30);stroke-width:1.2}
.skyarcs .orbit.thin{stroke:rgba(214,170,96,.16);stroke-width:.9}
.skyarcs .jet{fill:#eef5fb}
.skyarcs .estela{fill:none;stroke:url(#estelaGrad);stroke-width:3.4;stroke-linecap:round;opacity:.5}
.skyarcs .spark{fill:#ffe7bb}
.skyarcs .halo{fill:none;stroke:rgba(214,170,96,.55)}
.skyarcs .hubdot{fill:#f0cf90}
.skyarcs .hublabel{fill:rgba(240,214,171,.90);font-family:var(--mono);font-size:11px;
  letter-spacing:.22em;text-transform:uppercase}
@keyframes hubPulso{0%{r:14;opacity:.75}70%{r:46;opacity:0}100%{r:46;opacity:0}}
.skyarcs .pulso{animation:hubPulso 3.4s ease-out infinite}
.skyarcs .pulso.b{animation-delay:1.7s}
/* velo para que el texto siempre se lea sobre el mapa */
.hero::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(100deg,rgba(4,32,58,.94) 0%,rgba(4,32,58,.80) 34%,rgba(4,32,58,.30) 60%,rgba(4,32,58,.10) 100%)}
@media(prefers-reduced-motion:reduce){
  .skyarcs .pulso{animation:none;opacity:.25}
  .skyarcs .plane,.skyarcs .spark{display:none}
}
.hero .wrap{position:relative;z-index:2;display:grid;grid-template-columns:1.3fr .7fr;
  gap:clamp(2rem,5vw,4.5rem);align-items:center;padding-block:clamp(.9rem,2vw,1.6rem);width:100%}
.hero h1{text-shadow:0 2px 30px rgba(2,18,34,.45)}
.hero .eyebrow{color:#8fc4e4}
.hero .eyebrow.slogan{display:block;color:var(--oro)!important;font-family:"Great Vibes",cursive!important;
  font-style:normal!important;font-weight:400;text-transform:none;letter-spacing:0;
  font-size:clamp(1.3rem,2.6vw,1.9rem);line-height:1.3}
.hero h1{color:#fff;font-size:clamp(2.4rem,5.6vw,4.35rem);line-height:1.04;letter-spacing:-.032em;margin-bottom:.6rem}
.hero h1,.hero h1 *{font-family:var(--display)!important;color:#fff!important}
/* Los titulares traducidos suelen ser mas largos que el original espanol. */
html:not([lang="es"]) .hero h1{font-size:clamp(2.15rem,4.65vw,3.85rem);line-height:1.08;max-width:19ch}
html:not([lang="es"]) .hero .eyebrow.slogan{max-width:38ch}
.hero p.lead{color:#c3dcec;max-width:56ch;margin:.5rem 0}
.hero .actions{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1rem}
.hero .btn.ghost{color:#dbeaf3;border-color:rgba(255,255,255,.32)}
.hero .btn.ghost:hover{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.5)}

/* Composicion estable de la portada multilingue. Cada escritura ocupa un
   volumen diferente: se ajusta tipografia, no contenido. Ingles conserva
   exactamente la escala general de arriba. */
@media(min-width:1281px){
  .hero{min-height:calc(100vh - 153px)}
  .hero .eyebrow.slogan{max-width:none;white-space:nowrap}
  html[lang="fr"] .hero h1,html[lang="pt"] .hero h1{font-size:clamp(2.15rem,4.25vw,3.65rem);max-width:20ch}
  html[lang="ru"] .hero h1{font-size:clamp(2rem,3.8vw,3.25rem);line-height:1.04;max-width:22ch}
  html[lang="ru"] .hero .eyebrow.slogan{font-family:"Marck Script","Segoe Script","Comic Sans MS",cursive!important;
    line-height:1.3}
  html[lang="ru"] .hero p.lead{font-size:.98rem;line-height:1.48;max-width:62ch}
  html[lang="zh"] .hero h1{font-size:clamp(2.2rem,4.2vw,3.55rem);line-height:1.12;max-width:17ch}
  html[lang="zh"] .hero .eyebrow.slogan{font-family:"STKaiti","KaiTi","Noto Serif SC",serif!important}
  html[lang="zh"] .hero p.lead{font-size:1rem;line-height:1.65;max-width:48ch}
  html[lang="ar"] .hero h1{font-size:clamp(2.15rem,4vw,3.45rem);line-height:1.13;max-width:18ch}
  html[lang="ar"] .hero .eyebrow.slogan{font-family:"Noto Naskh Arabic","Amiri","Traditional Arabic",serif!important;
    font-style:italic}
  html[lang="ar"] .hero p.lead{font-size:1rem;line-height:1.65;max-width:48ch}
  html[lang="ru"] .site-navgroup summary{font-size:.69rem;padding-inline:.34rem}
  html[lang="fr"] .site-navgroup summary,html[lang="pt"] .site-navgroup summary{font-size:.74rem;padding-inline:.42rem}
  html[lang="ru"] .navcta a{font-size:.76rem;padding-inline:.9rem}
}

/* cuenta atrás */
.countdown{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:rgba(255,255,255,.16);
  border-top:1px solid rgba(255,255,255,.16)}
.cd-unit{background:var(--deep);padding:.85rem .5rem;text-align:center}
.cd-unit b{display:block;font-family:var(--display);font-size:1.9rem;color:#fff;line-height:1;font-weight:400}
.cd-unit span{font-family:var(--mono);font-size:.56rem;letter-spacing:.14em;text-transform:uppercase;color:#8fb6ce}

/* tarjeta de datos esenciales */
/* Cabecera institucional sobre la tarjeta: aqui el fondo es blanco, que
   es lo unico que respeta los colores oficiales de la OACI, del escudo y
   de la bandera. */
.factlogo{background:#fff;padding:.85rem 1rem .7rem}
.factlogo img{display:block;width:100%;height:auto}
/* Franja de logotipos administrada desde el panel: reparte los que haya (uno,
   tres o siete) en una fila que se parte sola, con un alto comun y separadores
   finos. El alto se hereda de --logo-alto, que fija el panel. */
.factlogo.lista{--logo-alto:42px;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;
  gap:.55rem .9rem;padding:.95rem 1rem}
.factlogo.lista .factlogo-item{display:inline-flex;align-items:center;justify-content:center;
  position:relative;padding:0 .45rem;max-width:100%}
.factlogo.lista .factlogo-item+.factlogo-item::before{content:"";position:absolute;left:-.45rem;top:12%;
  bottom:12%;width:1px;background:var(--line-soft)}
.factlogo.lista img{width:auto;height:var(--logo-alto);max-height:var(--logo-alto);max-width:100%;object-fit:contain}
/* Cabecera completa en una sola imagen: manda el ancho, no el alto. */
.factlogo.lista.unica{display:block;padding:.85rem 1rem .7rem}
.factlogo.lista.unica .factlogo-item{display:block;width:100%;padding:0}
.factlogo.lista.unica img{width:100%;height:auto;max-height:none}
.ficha-enlace{color:inherit;font:inherit;letter-spacing:inherit;
  text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}
.ficha-enlace:hover{color:var(--atlantic)}
.factcard{background:#fff;color:var(--ink);border-radius:var(--r-lg);box-shadow:var(--shadow-l);
  overflow:hidden;max-width:460px;margin-left:auto}
.factcard .top{background:linear-gradient(120deg,var(--deep),var(--atlantic));color:#fff;padding:1.15rem 1.4rem}
.factcard .top b{font-family:var(--display);font-size:1.15rem;font-weight:400;display:block;color:#fff}
.factcard .top span{font-family:var(--mono);font-size:.63rem;letter-spacing:.17em;text-transform:uppercase;color:#a8cde4}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line-soft);margin:0}
.facts>div{background:#fff;padding:.9rem 1.15rem}
.facts>div.destacado{background:linear-gradient(180deg,#f7fbfd,#fff)}
.facts>div.ancho{grid-column:1/-1}
.facts dt{font-family:var(--mono);font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:.15rem}
.facts dd{margin:0;font-weight:650;color:var(--ink);font-size:1rem;line-height:1.25}
.facts dd small{display:block;font-weight:500;font-size:.78rem;color:var(--muted);letter-spacing:0}
.facts dd .grande{font-family:var(--display);font-weight:400;font-size:1.35rem;letter-spacing:-.02em;color:var(--atlantic)}
/* La celda del registro es la mitad de ancha que la de fechas, asi que la
   fecha se deja en bloque para que parta limpia si hace falta, pero sin tocar
   familia ni tamano: son los mismos que los de "7-11 diciembre". */
.facts dd .grande{display:block;line-height:1.2}
.factnote{padding:1.1rem 1.4rem;background:var(--mist);border-top:1px solid var(--line-soft);font-size:.85rem;line-height:1.55}
.factnote b{color:var(--deep)}

/* ---------- secciones ---------- */
/* Ritmo vertical compacto desde la bienvenida presidencial. Al compartir una
   unica regla, las secciones conservan la misma distancia aunque el flujo se
   reordene desde JavaScript o desde los nomencladores. */
.sec{padding-block:clamp(2.25rem,4vw,3.75rem)}
/* Solo se pinta lo que se ve: alivia el coste de una pagina unica tan larga */
.gallery-viewport{content-visibility:auto;contain-intrinsic-size:auto 340px}
.sec.junto-arriba{padding-top:0}
/* Acerca estas secciones a la anterior reduciendo a la mitad su entrada. */
.sec.entrada-media{padding-top:clamp(1.35rem,2.5vw,2.25rem)}
.sec.mist{background:var(--mist)}
.sec.dark{background:var(--midnight);color:#c3dcec}
.sec.dark h2,.sec.dark h3{color:#fff}
.sec.dark .eyebrow{color:#8fc4e4}
.sec.dark .lead{color:#b7d3e5}

/* divisores de eje */
.axis{background:linear-gradient(115deg,var(--deep),var(--atlantic) 65%,#14608e);color:#fff;position:relative;overflow:hidden}
.axis::after{content:"";position:absolute;right:-60px;top:-70px;width:290px;height:290px;border-radius:50%;
  border:1px solid rgba(255,255,255,.14)}
.axis .wrap{padding-block:clamp(1.8rem,3.2vw,2.6rem);position:relative;z-index:1}
.axis .rule{width:54px;height:3px;background:#f0d6ab;border-radius:2px;margin-bottom:1rem}
.axis h2{color:#fff;font-size:clamp(1.4rem,2.8vw,2.05rem);margin-bottom:.35rem}
.axis p{margin:0;color:#c9e0ef;font-size:.96rem;max-width:none;text-wrap:balance}

/* ---------- bienvenida presidencial (una sola imagen completa) ---------- */
.pres-full{background:#001b35;padding-top:0}
.pres-full .wrap{padding-block:0;display:flex;justify-content:center}
.pres-full img{display:block;width:auto;max-width:100%;height:auto;max-height:var(--pres-h,640px);object-fit:contain}.pres-foto-vacio{display:flex;align-items:center;justify-content:center;text-align:center;
  min-height:220px;padding:2rem;color:#9fc0d6;font-size:.9rem;line-height:1.5}
/* Desde el bloque presidencial, los textos editoriales mantienen bordes
   uniformes en todos los idiomas sin alterar botones, cifras ni titulares. */
#eje1 ~ section p{text-align:justify;text-justify:inter-word;hyphens:auto}
/* Las entradillas bajo cada título son textos de presentación. En párrafos
   cortos el justificado crea huecos exagerados; se mantienen con espaciado
   natural, mientras el cuerpo editorial largo continúa justificado. */
#eje1 ~ section .hd > p.lead{text-align:start;text-justify:auto;word-spacing:normal;hyphens:none}

/* ---------- rejillas y tarjetas ---------- */
.grid{display:grid;gap:1.1rem}
.g2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(275px,1fr))}
.g4{grid-template-columns:repeat(auto-fit,minmax(232px,1fr))}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.5rem;
  box-shadow:var(--shadow-s);transition:transform .22s,box-shadow .22s,border-color .22s}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-m);border-color:var(--sky)}
.card h3{font-size:1.05rem;margin-bottom:.5rem}
.card p{font-size:.93rem}
.card .num{font-family:var(--display);font-size:2.1rem;color:var(--atlantic);line-height:1;
  display:block;margin-bottom:.7rem;font-weight:400}
.card .ic{font-size:1.6rem;line-height:1;display:block;margin-bottom:.7rem}
/* Información práctica: fondo original de sección y azul claro solo en fichas. */
#viaje .art-info{background:var(--card-soft);border-color:var(--line)}
#viaje .art-info:hover{background:var(--card-soft-hover);border-color:var(--sky)}
/* imagen de ficha (Informacion practica): NO ampliable, no reacciona al clic */
.card .ic-img{display:block;margin-bottom:.9rem;line-height:0;text-align:center}
.card .ic-img img{height:56px;width:auto;max-width:100%;object-fit:contain;display:block;
  margin-inline:auto;cursor:default;pointer-events:none;user-select:none;-webkit-user-drag:none}
.art-info .info-actions{display:flex;align-items:stretch;gap:.42rem;flex-wrap:nowrap;margin-top:.9rem}
.art-info .info-actions .btn{display:inline-flex;align-items:center;justify-content:center;flex:1 1 0;width:auto;min-width:0;min-height:34px;
  margin:0;padding:.4rem .55rem;border:1px solid var(--atlantic);border-radius:999px;background:var(--atlantic);
  color:#fff;font-size:.7rem;font-weight:700;line-height:1.12;text-align:center;white-space:normal;text-decoration:none;box-shadow:0 4px 10px rgba(15,79,120,.16)}
.art-info .info-actions .btn:hover{background:var(--deep);border-color:var(--deep);color:#fff;transform:translateY(-1px)}
.art-info .info-actions .btn:focus-visible{outline:3px solid rgba(62,131,180,.3);outline-offset:2px}
/* Tarjetas dentro de una seccion oscura: caja clara y letra oscura, con el
   mismo tono que el resto de tarjetas del sitio (--card-soft). */
.sec.dark .card{background:var(--card-soft);border-color:rgba(255,255,255,.16);box-shadow:var(--shadow-s);color:var(--body)}
.sec.dark .card:hover{background:var(--card-soft-hover);border-color:var(--azure)}
.sec.dark .card h3{color:var(--ink)}
.sec.dark .card p,.sec.dark .card li,.sec.dark .card span{color:var(--body)}
.sec.dark .card .bullets li::before{background:var(--azure)}
.sec.dark .card a{color:var(--atlantic)}

/* paneles */
.panels{display:grid;grid-template-columns:1fr 1fr;gap:1.3rem;margin-top:1.6rem}
.panel{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:1.7rem;box-shadow:var(--shadow-s)}
.panel h3{font-size:1.12rem;margin-bottom:.85rem}
.panel img{width:100%;height:210px;object-fit:cover;border-radius:var(--r);margin-bottom:1.1rem;background:var(--mist)}
.timeline{list-style:none;margin:0;padding:0}
.timeline li{display:grid;grid-template-columns:auto 1fr;gap:.95rem;padding:.7rem 0;border-bottom:1px solid var(--line-soft)}
.timeline li:last-child{border-bottom:0;padding-bottom:0}
.timeline .d{font-family:var(--mono);font-size:.68rem;letter-spacing:.09em;color:var(--deep);
  background:var(--sky);border-radius:6px;padding:.35rem .5rem;height:max-content;white-space:nowrap;font-weight:600}
.timeline .t{font-size:.93rem;color:var(--body)}
.timeline .t b{color:var(--ink);display:block;font-size:.95rem}
/* rutas del bloque de logistica: flex, para que la fila aguante con o sin
   miniatura y con o sin etiqueta corta sin descuadrarse */
.timeline.rutas li{display:flex;align-items:flex-start;gap:.95rem}
.timeline.rutas .t{flex:1;min-width:0}
.timeline .rimg{display:block;width:54px;height:54px;border-radius:8px;overflow:hidden;
  background:var(--mist);border:1px solid var(--line);flex-shrink:0}
.timeline .rimg img{width:100%;height:100%;object-fit:cover;display:block;
  cursor:default;pointer-events:none;user-select:none;-webkit-user-drag:none}
/* un solo panel visible: ocupa todo el ancho sin romper la caja */
.panels.uno{grid-template-columns:1fr}
@media(max-width:640px){
  .timeline.rutas li{flex-wrap:wrap}
  .timeline.rutas .t{flex-basis:100%}
}
.bullets{list-style:none;margin:0;padding:0}
.bullets li{position:relative;padding-left:1.3rem;margin-bottom:.7rem;font-size:.93rem}
.bullets li::before{content:"";position:absolute;left:0;top:.62em;width:7px;height:7px;border-radius:50%;background:var(--azure)}
.bullets li:last-child{margin-bottom:0}

/* avisos */
.note{border:1px solid var(--line);border-left:3px solid var(--atlantic);background:#fff;
  border-radius:0 var(--r) var(--r) 0;padding:1.05rem 1.3rem;font-size:.9rem;line-height:1.6;
  margin-top:1.8rem;color:var(--body)}
.note b{color:var(--deep)}

/* estadísticas */
.stats{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.14);border-radius:var(--r-lg);overflow:hidden;margin-top:2.2rem}
.stat{background:var(--midnight);padding:1.5rem 1.4rem}
.stat>b{display:block;font-family:var(--display);font-size:clamp(1.7rem,3vw,2.35rem);color:#fff;
  line-height:1;margin-bottom:.5rem;letter-spacing:-.02em;font-weight:400}
.stat>span{font-family:var(--mono);font-size:.66rem;letter-spacing:.13em;text-transform:uppercase;color:#8fb6ce;line-height:1.5;display:block}
@media(max-width:1100px){.stats{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.stats{grid-template-columns:repeat(2,1fr)}}

/* buscador + directorio */
.search{position:relative;max-width:520px;margin-bottom:1.5rem}
.search input{width:100%;border:1px solid var(--line);border-radius:999px;padding:.85rem 1.15rem .85rem 2.9rem;
  font:inherit;font-size:.93rem;background:#fff;color:var(--ink)}
.search input::placeholder{color:var(--muted)}
.search svg{position:absolute;left:1.05rem;top:50%;transform:translateY(-50%);width:17px;height:17px;
  stroke:var(--muted);fill:none;stroke-width:2}
.empty{display:none;text-align:center;color:var(--muted);font-size:.9rem;padding:1.6rem;grid-column:1/-1}

/* fichas de contacto (agencias de viaje) */
.dircount{font-size:.84rem;color:var(--muted);margin:-.7rem 0 1.4rem}
.agc{background:var(--card-soft);border:1px solid var(--line);border-radius:var(--r);padding:1.5rem 1.4rem;
  box-shadow:var(--shadow-s);transition:transform .22s,box-shadow .22s,border-color .22s;
  display:flex;flex-direction:column}
.agc:hover{transform:translateY(-4px);box-shadow:var(--shadow-m);border-color:var(--sky);background:var(--card-soft-hover)}
.agc .hd{display:flex;align-items:center;gap:.85rem;margin-bottom:1.1rem}
.agc .mono{width:44px;height:44px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--atlantic),var(--azure));color:#fff;
  font-family:var(--display);font-size:1rem;font-weight:600;letter-spacing:.01em}
.agc .hd b{color:var(--ink);font-size:1.01rem;line-height:1.3}
.agc .acciones{display:flex;flex-direction:column;gap:.5rem;margin-top:auto}
.agc .acciones a{display:flex;align-items:center;gap:.6rem;font-size:.87rem;font-weight:600;
  color:var(--body);text-decoration:none;transition:color .2s}
.agc .acciones a:hover{color:var(--atlantic)}
.agc .acciones .ic{width:16px;text-align:center;flex-shrink:0;color:var(--azure);font-size:.9rem;line-height:1}

/* fichas con imagen */
.media{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;
  box-shadow:var(--shadow-s);display:flex;flex-direction:column;transition:transform .22s,box-shadow .22s}
.media:hover{transform:translateY(-5px);box-shadow:var(--shadow-m)}
.media .ph{position:relative;overflow:hidden;background:var(--mist)}
.media .ph img{width:100%;height:215px;object-fit:cover;transition:transform .5s ease;cursor:zoom-in}
.media:hover .ph img{transform:scale(1.05)}
.media .ph .code{position:absolute;top:.75rem;right:.75rem;background:rgba(6,38,60,.86);color:#fff;
  font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;padding:.32rem .58rem;border-radius:5px;
  text-transform:uppercase;max-width:75%;text-align:right;line-height:1.3}
.media .bd{padding:1.2rem 1.35rem 1.4rem;flex:1;display:flex;flex-direction:column}
.media .bd b{font-size:1.04rem;color:var(--ink);display:block;line-height:1.3}
.media .bd .meta{font-size:.87rem;color:var(--body);margin-top:.5rem;line-height:1.6;flex:1}
.media .bd .chip{margin-top:.8rem;align-self:flex-start}
.media .bd .acciones{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.85rem}
.media .bd .acciones a{font-size:.79rem;font-weight:650;text-decoration:none;color:var(--atlantic);
  border:1px solid var(--line);border-radius:999px;padding:.3rem .75rem;transition:.2s}
.media .bd .acciones a:hover{background:var(--atlantic);color:#fff;border-color:var(--atlantic)}

/* aerolíneas */
.filters{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.5rem}
.filters button{font-family:var(--sans);font-size:.84rem;font-weight:620;border:1px solid var(--line);
  background:#fff;color:#4a6b80;border-radius:999px;padding:.5rem 1rem;cursor:pointer;transition:.2s}
.filters button:hover{border-color:var(--azure);color:var(--deep)}
.filters button.on{background:var(--midnight);border-color:var(--midnight);color:#fff}
.airline{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.3rem;text-align:center;
  display:flex;flex-direction:column;align-items:center;transition:transform .22s,box-shadow .22s}
.airline:hover{transform:translateY(-4px);box-shadow:var(--shadow-m)}
.airline .logo{width:100%;height:124px;display:grid;place-items:center;background:#fff;
  border:1px solid var(--line-soft);border-radius:10px;padding:.9rem;margin-bottom:1rem}
.airline .logo-link{display:block;width:100%;text-decoration:none;border-radius:10px}
.airline .logo-link .logo{transition:border-color .2s,box-shadow .2s,transform .2s}
.airline .logo-link:hover .logo{border-color:var(--azure);box-shadow:0 8px 20px rgba(15,79,120,.12);transform:translateY(-2px)}
.airline .logo-link:focus-visible{outline:3px solid rgba(43,124,176,.3);outline-offset:3px}
.airline .logo img{max-height:96px;max-width:92%;object-fit:contain;cursor:pointer}
.airline .logo .sinlogo{font-family:var(--display);font-size:1.5rem;color:var(--atlantic);line-height:1.15;text-align:center}
.airline .enlace{display:inline-block;margin-top:.65rem;font-size:.8rem;font-weight:650;text-decoration:none;
  color:var(--atlantic);border:1px solid var(--line);border-radius:999px;padding:.3rem .8rem;transition:.2s}
.airline .enlace:hover{background:var(--atlantic);color:#fff;border-color:var(--atlantic)}
.airline h3{font-size:.99rem;margin-bottom:.4rem}
.airline p{font-size:.86rem;color:var(--muted)}
.airlines-block{margin:3.5rem calc(50% - 50vw) 0;padding-block:clamp(2.2rem,4vw,3.5rem);
  padding-inline:max(var(--pad),calc((100vw - var(--wrap))/2 + var(--pad)));background:#dcecf6;border-radius:0}
.airlines-block .hd{margin-top:0!important}
.airlines-block .hd h2{color:var(--deep)}
.airlines-block .hd .eyebrow{color:var(--atlantic)}
.airlines-block .hd .lead{color:var(--body)}
.airlines-block .filters button.on{background:var(--midnight);border-color:var(--midnight)}

/* ---------- centro de ayuda lateral ---------- */
#helpLauncher{position:fixed;left:18px;bottom:18px;z-index:60;display:inline-flex;align-items:center;gap:.6rem;
  background:#fff;color:var(--deep);border:1px solid var(--line);border-radius:999px;padding:.7rem 1rem .7rem .72rem;
  font-family:var(--sans);font-weight:700;font-size:.88rem;cursor:pointer;box-shadow:0 14px 34px rgba(6,38,60,.20);
  transition:transform .2s,box-shadow .2s,border-color .2s,background .2s}
#helpLauncher:hover{transform:translateY(-2px);box-shadow:0 18px 40px rgba(6,38,60,.27);border-color:var(--sky);background:var(--mist)}
#helpLauncher .help-icon{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--midnight);
  color:#fff;font-family:var(--display);font-size:1.25rem;font-weight:700;line-height:1;box-shadow:0 5px 14px rgba(6,38,60,.22)}
.help-backdrop{position:fixed;inset:0;z-index:68;background:rgba(4,20,32,.54);backdrop-filter:blur(3px);
  opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s,visibility .25s}
.help-backdrop.open{opacity:1;visibility:visible;pointer-events:auto}
.help-drawer{position:fixed;inset:0 auto 0 0;z-index:69;width:min(430px,calc(100vw - 22px));background:#fff;
  box-shadow:24px 0 70px rgba(4,20,32,.26);display:flex;flex-direction:column;transform:translateX(-104%);
  visibility:hidden;transition:transform .3s cubic-bezier(.22,.61,.36,1),visibility .3s}
.help-drawer.open{transform:none;visibility:visible}
.help-head{background:linear-gradient(125deg,var(--midnight),var(--atlantic));color:#fff;padding:1.35rem 1.35rem 1.25rem;
  display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.help-head .help-kicker{display:block;font-family:var(--mono);font-size:.61rem;letter-spacing:.16em;text-transform:uppercase;
  color:#9fc9e2;margin-bottom:.35rem}
.help-head h2{color:#fff;font-family:var(--display);font-size:1.65rem;font-weight:400;letter-spacing:-.02em}
.help-close{width:38px;height:38px;flex:0 0 auto;border:1px solid rgba(255,255,255,.18);border-radius:50%;
  background:rgba(255,255,255,.12);color:#fff;font-size:1.45rem;line-height:1;cursor:pointer;transition:background .2s}
.help-close:hover{background:rgba(255,255,255,.23)}
.help-body{flex:1;overflow-y:auto;padding:1.25rem;background:linear-gradient(180deg,#f7fbfd 0,#fff 170px)}
.help-intro{font-size:.92rem;line-height:1.65;color:var(--body);margin-bottom:1rem}
.help-faq{display:grid;gap:.58rem}
.help-faq details{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:var(--shadow-s);
  transition:border-color .2s,box-shadow .2s}
.help-faq details[open]{border-color:var(--sky);box-shadow:0 10px 26px rgba(6,38,60,.08)}
.help-faq summary{cursor:pointer;padding:.9rem 1rem;font-weight:680;color:var(--ink);font-size:.91rem;line-height:1.4;
  list-style:none;display:flex;justify-content:space-between;align-items:center;gap:.85rem}
.help-faq summary::-webkit-details-marker{display:none}
.help-faq summary::after{content:"+";width:25px;height:25px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto;
  background:var(--mist);color:var(--atlantic);font-family:var(--mono);font-size:1rem;transition:transform .22s,background .22s}
.help-faq details[open] summary::after{transform:rotate(45deg);background:var(--sky)}
.help-faq .ans{padding:0 1rem 1rem;font-size:.87rem;line-height:1.62;color:var(--body)}
.help-foot{padding:1rem 1.25rem 1.2rem;border-top:1px solid var(--line);background:#fff}
.help-foot p{font-size:.82rem;color:var(--muted);margin-bottom:.75rem}
.help-contact{width:100%;box-shadow:none}

/* recursos */
.res{display:flex;justify-content:space-between;align-items:center;gap:1.3rem;flex-wrap:wrap;
  background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.3rem 1.5rem;box-shadow:var(--shadow-s)}
.res b{color:var(--ink);font-size:1rem;display:block}
.res .meta{font-size:.87rem;color:var(--muted);margin-top:.2rem}
.reslist{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:.65rem;margin-top:1.3rem}
.reslist span{background:#fff;border:1px solid var(--line);border-radius:10px;padding:.75rem .95rem;
  font-size:.87rem;color:var(--body);display:flex;align-items:center;gap:.55rem}
.reslist span::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--azure);flex-shrink:0}

/* ---------- patrocinadores ---------- */
.sponsor-stack{display:flex;flex-direction:column}
.sponsor-block{min-width:0}
.tier{margin-top:2.9rem}
.tier:first-of-type{margin-top:2rem}
.tierhead{display:flex;align-items:center;gap:.85rem;flex-wrap:wrap;padding-bottom:.75rem;border-bottom:1px solid var(--line)}
.tierhead .code{font-family:var(--mono);font-size:.63rem;letter-spacing:.2em;text-transform:uppercase;
  font-weight:700;color:#fff;padding:.34rem .75rem;border-radius:5px;white-space:nowrap}
.tierhead h3{font-family:var(--display);font-weight:400;font-size:clamp(1.15rem,2.1vw,1.55rem);letter-spacing:-.02em}
.tierhead .slots{margin-left:auto;font-family:var(--mono);font-size:.65rem;letter-spacing:.13em;
  text-transform:uppercase;color:var(--muted);white-space:nowrap}
.tierdesc{font-size:.89rem;color:var(--muted);margin:.85rem 0 0;max-width:84ch}

/* niveles destacados (p. ej. Diamante, Platino): ficha ancha con logo, descripción y enlaces */
.wall.top{display:grid;gap:1.1rem;margin-top:1.5rem;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}
.spot{background:#fff;border:1px solid var(--line);border-left:4px solid var(--acc,var(--atlantic));
  border-radius:var(--r-lg);overflow:hidden;display:flex;box-shadow:var(--shadow-s);
  transition:transform .22s,box-shadow .22s,border-color .22s}
.spot:hover{transform:translateY(-4px);box-shadow:var(--shadow-m)}
.spot .logo{width:150px;flex:0 0 auto;display:grid;place-items:center;padding:1.2rem;background:var(--mist)}
.spot .logo img{max-width:100%;max-height:100%;object-fit:contain}
.spot .logo .ini{font-family:var(--display);font-size:1.7rem;color:var(--atlantic);font-weight:400;
  letter-spacing:.03em;display:grid;place-items:center;width:64px;height:64px;border-radius:50%;
  background:#fff;border:1px solid var(--line)}
.spot .bd{padding:1.25rem 1.5rem;flex:1;display:flex;flex-direction:column;gap:.5rem;min-width:0}
.spot .bd b{font-size:1.06rem;color:var(--ink);line-height:1.3}
.spot .bd .meta{font-size:.87rem;color:var(--body);line-height:1.6}
.spot .links{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center;margin-top:.15rem}
.spot .links a{font-size:.78rem;font-weight:640;text-decoration:none;color:var(--atlantic);
  border:1px solid var(--line);border-radius:999px;padding:.3rem .7rem;transition:.2s}
.spot .links a:hover{background:var(--atlantic);color:#fff;border-color:var(--atlantic)}

/* resto de niveles: malla limpia de solo logotipos, sin caja ni sombra individual */
.wall.logos{display:grid;gap:1.7rem 1.3rem;margin-top:1.5rem;
  grid-template-columns:repeat(auto-fill,minmax(140px,1fr));
  padding:1.7rem 1.5rem;border-radius:var(--r-lg)}
.tile{display:flex;flex-direction:column;align-items:center;gap:.6rem;text-decoration:none}
.tile .ph{width:100%;max-width:150px;aspect-ratio:16/10;display:grid;place-items:center;padding:.3rem}
.tile .ph img{max-width:100%;max-height:100%;object-fit:contain;filter:grayscale(.2);opacity:.88;
  transition:filter .2s,opacity .2s}
a.tile:hover .ph img{filter:none;opacity:1}
.tile .ph .ini{font-family:var(--display);font-size:1.15rem;color:var(--atlantic);font-weight:400;
  display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#fff;border:1px solid var(--line)}
.tile .nm{font-size:.74rem;color:var(--muted);text-align:center;line-height:1.3;font-weight:650}
a.tile:hover .nm{color:var(--atlantic)}

.sp-vacio{background:#fff;border:1px dashed var(--line);border-radius:var(--r);padding:2.2rem;
  text-align:center;color:var(--muted);font-size:.92rem;margin-top:1.4rem}

/* tarjetas de clasificación de patrocinio */
.plans{display:grid;gap:1.3rem;margin-top:1.7rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.plan{background:#fff;border:1px solid var(--line);border-top:4px solid var(--acc,var(--atlantic));
  border-radius:var(--r-lg);padding:1.7rem 1.5rem;display:flex;flex-direction:column;position:relative;
  box-shadow:var(--shadow-s);transition:transform .22s,box-shadow .22s}
.plan:hover{transform:translateY(-5px);box-shadow:var(--shadow-m)}
.plan.top{background:linear-gradient(165deg,var(--midnight),var(--deep));color:#fff;
  box-shadow:var(--shadow-l);border-top-color:transparent}
.plan.top .plan-cat{color:#fff}
.plan.top .plan-cod{color:#9fc6df}
.plan.top .plan-benef li{color:#c3dcec}
.plan.top .plan-benef li::before{background:#8fc4e4}
.plan.top .plan-benef.txt{color:#c3dcec}
.plan.top .plan-slots{color:#a8cde4}
.plan.top .plan-slots b{color:#fff}
.plan .ribbon{position:absolute;top:-11px;right:1.4rem;background:var(--brass);color:#fff;
  font-family:var(--mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;
  padding:.32rem .75rem;border-radius:999px;font-weight:700;box-shadow:0 4px 10px rgba(0,0,0,.22)}
.plan-cat{display:flex;align-items:center;gap:.55rem;font-size:1.05rem;font-weight:700;color:var(--ink)}
.plan-cat .dot{width:11px;height:11px;border-radius:3px;flex:0 0 auto}
.plan-cod{font-family:var(--mono);font-size:.63rem;letter-spacing:.16em;color:var(--muted);
  text-transform:uppercase;margin:.55rem 0 1.15rem}
.plan-benef{list-style:none;margin:0 0 1.3rem;padding:0;flex:1}
.plan-benef li{position:relative;padding-left:1.3rem;margin-bottom:.6rem;font-size:.87rem;
  color:var(--body);line-height:1.5}
.plan-benef li::before{content:"";position:absolute;left:0;top:.5em;width:6px;height:6px;
  border-radius:50%;background:var(--azure)}
.plan-benef.txt{font-size:.87rem;color:var(--body);line-height:1.6}
.plan-slots{font-family:var(--mono);font-size:.68rem;letter-spacing:.06em;color:var(--muted);margin-bottom:1.15rem}
.plan-slots b{color:var(--jade)}
.plan-slots.lleno b{color:var(--muted)}
.plan .solicitar{display:flex;align-items:center;justify-content:center;gap:.35rem;
  font-size:.86rem;font-weight:650;text-decoration:none;color:#fff;background:var(--atlantic);
  border-radius:999px;padding:.68rem 1rem;transition:.2s;margin-top:auto}
.plan .solicitar:hover{background:var(--deep)}
.plan .solicitar::before{content:"+";font-family:var(--mono);font-weight:700}
.plan.top .solicitar{background:#fff;color:var(--deep)}
.plan.top .solicitar:hover{background:var(--sky)}
.plan .completo{display:block;text-align:center;font-size:.82rem;font-weight:650;color:var(--muted);
  margin-top:auto;padding:.68rem 0}
.plan.top .completo{color:#a8cde4}
.spcta{display:grid;grid-template-columns:1.5fr auto;gap:2rem;align-items:center;margin-top:3rem;
  background:linear-gradient(120deg,var(--midnight),var(--atlantic));color:#fff;border-radius:var(--r-lg);
  padding:clamp(1.7rem,3.5vw,2.6rem);position:relative;overflow:hidden}
.spcta::after{content:"";position:absolute;right:-70px;bottom:-90px;width:270px;height:270px;
  border-radius:50%;border:1px solid rgba(255,255,255,.16)}
.spcta>div{position:relative;z-index:1}
.spcta h3{color:#fff;font-family:var(--display);font-weight:400;font-size:clamp(1.3rem,2.6vw,1.85rem);margin-bottom:.6rem}
.spcta p{color:#c3dcec;font-size:.94rem;margin:0;max-width:64ch}

/* ---------- pie ---------- */
.foot{background:var(--midnight);color:#9fbdd0;padding-top:clamp(2.8rem,5vw,4rem)}
.footgrid{display:grid;grid-template-columns:1.45fr repeat(4,minmax(130px,1fr));gap:2rem}
.foot h4{color:#fff;font-family:var(--mono);font-size:.68rem;letter-spacing:.19em;text-transform:uppercase;
  font-weight:600;margin-bottom:1rem}
.foot a{color:#bcd6e6;text-decoration:none;font-size:.9rem;display:block;padding:.24rem 0;transition:color .18s}
.foot a:hover{color:#fff}
.foot p{font-size:.89rem;line-height:1.7}
.foot .brandline{display:flex;align-items:center;gap:.8rem;margin-bottom:1.1rem}
.foot .brandline .mark{width:44px;height:44px;border-radius:11px;background:rgba(255,255,255,.09);
  border:1px solid rgba(255,255,255,.16);color:#fff;display:grid;place-items:center;
  font-family:var(--mono);font-size:.6rem;font-weight:700;line-height:1.15;text-align:center}
.foot .brandline b{font-family:var(--display);font-size:1.1rem;color:#fff;font-weight:400}
.footbase{margin-top:2.6rem;border-top:1px solid rgba(255,255,255,.11);padding-block:1.3rem;
  display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  font-family:var(--mono);font-size:.65rem;letter-spacing:.11em;text-transform:uppercase;color:#7b9cb2}
.footlangs{margin-top:1.2rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.1)}
.footlangs>span{display:block;color:#fff;font-family:var(--mono);font-size:.62rem;letter-spacing:.15em;text-transform:uppercase;margin-bottom:.65rem}
.footlangs .langsel a{color:#bcd6e6}.footlangs .langsel a.on{color:var(--midnight)}

/* ---------- ampliacion progresiva del mapa web ---------- */
.arch-sec{background:#fff}.arch-sec.alt{background:var(--mist)}
.arch-intro{display:flex;justify-content:space-between;gap:2rem;align-items:end;margin-bottom:1.8rem}
.arch-intro .hd{margin-bottom:0}.arch-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:1.25rem;align-items:stretch}
.arch-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.arch-card{position:relative;min-height:220px;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.45rem;box-shadow:var(--shadow-s);overflow:hidden;display:flex;flex-direction:column}
.arch-sec:not(.alt) .arch-card{background:var(--card-soft)}
.arch-code{display:inline-block;font-family:var(--mono);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--atlantic);margin-bottom:.75rem}
.arch-card h3{font-size:1.08rem;margin-bottom:.55rem}.arch-card p{font-size:.91rem;color:var(--body)}
.arch-meta{margin-top:.85rem;font-family:var(--mono);font-size:.65rem;letter-spacing:.08em;color:var(--muted);text-transform:uppercase}
.arch-img{aspect-ratio:16/9;min-height:170px;margin:-1.45rem -1.45rem 1.1rem;overflow:hidden;background:#dcecf6}
.arch-img img{width:100%;height:100%;object-fit:cover}.arch-card .btn{margin-top:1rem;padding:.58rem 1rem;font-size:.78rem}
.arch-card .arch-meta{margin-top:auto;padding-top:1rem}.arch-card .btn{align-self:flex-start}
.arch-plano{min-height:320px}.arch-plano .arch-img{min-height:210px}
.arch-agenda{border-top:4px solid var(--atlantic)}
.oaci-message{display:grid;grid-template-columns:minmax(0,.42fr) minmax(0,1fr);background:linear-gradient(120deg,var(--midnight),var(--atlantic));color:#fff;border-radius:var(--r-lg);overflow:hidden}
.oaci-sign{display:grid;place-items:center;min-height:250px;padding:2rem;border-right:1px solid rgba(255,255,255,.15);font-family:var(--display);font-size:clamp(2.8rem,7vw,5.5rem);color:#e7c781}
.oaci-list{display:grid;gap:1.25rem}.oaci-sign img{width:100%;height:100%;max-height:310px;object-fit:cover;border-radius:10px}
.oaci-copy{padding:clamp(1.6rem,4vw,3rem)}.oaci-copy h3{color:#fff;font-family:var(--display);font-size:clamp(1.6rem,3vw,2.35rem);font-weight:400}
.oaci-copy p{color:#c9deeb;margin-top:.8rem}.oaci-copy .arch-meta{color:#91bdd7}
.press-card{border-left:4px solid var(--brass)}
@media(max-width:820px){.arch-grid,.arch-grid.two{grid-template-columns:1fr}.arch-intro{display:block}.oaci-message{grid-template-columns:1fr}.oaci-sign{min-height:120px;border-right:0;border-bottom:1px solid rgba(255,255,255,.15)} }

/* ---------- botón subir ---------- */
.totop{position:fixed;right:18px;bottom:88px;z-index:45;width:46px;height:46px;border-radius:50%;
  background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-m);cursor:pointer;
  display:grid;place-items:center;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;color:var(--deep)}
.totop.show{opacity:1;pointer-events:auto}
.totop:hover{transform:translateY(-3px)}

/* ---------- galería visual ---------- */
.gallery-sec{padding-block:clamp(2.2rem,4vw,3.6rem);background:#fff;overflow:hidden}
.gallery-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;margin-bottom:1.5rem}
.gallery-head .copy{max-width:760px}
.gallery-head h2{font-size:clamp(1.8rem,3.6vw,2.65rem);margin-bottom:.65rem}
.gallery-head p{color:var(--body);max-width:68ch;font-size:.96rem}
/* Cabecera de Salas: banda independiente del contenido audiovisual. */
#salas>.wrap>.salas-intro-band{position:relative;isolation:isolate;padding-block:clamp(2.25rem,4vw,3.75rem);margin-top:calc(-1 * clamp(2.25rem,4vw,3.75rem));margin-bottom:clamp(2rem,3.5vw,3rem)}
#salas>.wrap>.salas-intro-band.cabecera-azul::before{content:"";position:absolute;z-index:-1;inset:0 50%;width:100vw;transform:translateX(-50%);background:#001f3d}
#salas>.wrap>.salas-intro-band.cabecera-azul .eyebrow,
#salas>.wrap>.salas-intro-band.cabecera-azul h2,
#salas>.wrap>.salas-intro-band.cabecera-azul .lead{color:#fff!important;-webkit-text-fill-color:#fff!important;opacity:1!important}
.gallery-controls{display:flex;gap:.55rem;flex:0 0 auto}
.gallery-control{width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--deep);
  display:grid;place-items:center;cursor:pointer;box-shadow:var(--shadow-s);transition:transform .2s,background .2s,border-color .2s}
.gallery-control:hover{transform:translateY(-2px);background:var(--mist);border-color:var(--sky)}
.gallery-control svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.gallery-viewport{overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-inline:contain;
  scrollbar-width:thin;scrollbar-color:var(--sky) transparent;padding:.25rem .1rem .8rem}
.gallery-track{display:flex;gap:1rem;width:max-content;min-width:100%}
.gallery-thumb{position:relative;flex:0 0 clamp(210px,24vw,292px);padding:0;border:1px solid var(--line);border-radius:var(--r);
  overflow:hidden;background:#fff;cursor:zoom-in;text-align:left;scroll-snap-align:start;box-shadow:var(--shadow-s);
  transition:transform .22s,box-shadow .22s,border-color .22s}
.gallery-thumb:hover{transform:translateY(-4px);box-shadow:var(--shadow-m);border-color:var(--sky)}
.gallery-thumb img{width:100%;height:178px;object-fit:cover;transition:transform .5s ease;background:var(--mist)}
.gallery-thumb:hover img{transform:scale(1.045)}
.gallery-thumb .gallery-caption{display:flex;align-items:center;justify-content:space-between;gap:.7rem;padding:.85rem 1rem;
  color:var(--ink);font-weight:650;font-size:.89rem;line-height:1.3;background:#fff}
.gallery-thumb .gallery-caption::after{content:"+";width:25px;height:25px;border-radius:50%;display:grid;place-items:center;
  flex:0 0 auto;background:var(--mist);color:var(--atlantic);font-family:var(--mono);font-size:1rem}
.gallery-status{font-family:var(--mono);font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:.65rem}
.gallery-viewport.compacta .gallery-thumb{flex-basis:clamp(150px,17vw,200px)}
.gallery-viewport.compacta .gallery-thumb img{height:118px}
.gallery-viewport.compacta .gallery-thumb .gallery-caption{padding:.6rem .75rem;font-size:.8rem}

/* Vídeos de las salas: bloque editorial integrado en la galería de sede. */
.room-video-headrow{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;margin-top:clamp(2.2rem,5vw,4.2rem);padding-top:clamp(1.4rem,3vw,2.2rem);border-top:1px solid var(--line)}
.room-video-heading{margin:0 0 1.35rem;min-width:0}
.room-video-heading h3{margin:.35rem 0 .45rem;font-family:var(--serif);font-size:clamp(1.65rem,3vw,2.35rem);font-weight:500;color:var(--deep)}
.room-video-heading p{margin:0;max-width:72ch;color:var(--body);font-size:1rem;line-height:1.65}
.room-video-controls{margin-bottom:1.35rem}
.room-video-viewport{max-width:100%;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-inline:contain;scrollbar-width:thin;scrollbar-color:var(--sky) transparent;padding:.25rem .15rem 1rem}
.room-video-track{display:flex;gap:clamp(.85rem,1.6vw,1.25rem);width:max-content;min-width:100%}
/* Tarjetas compactas: tres piezas visibles en un escritorio habitual, sin
   perder la proporcion 16:9 ni la lectura de los controles del reproductor. */
.room-video-card{flex:0 0 clamp(285px,28vw,370px);overflow:hidden;min-width:0;scroll-snap-align:start;border:1px solid var(--line);border-radius:calc(var(--r) + 2px);background:#fff;box-shadow:0 12px 28px rgba(6,38,60,.08);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.room-video-card:hover{transform:translateY(-4px);border-color:rgba(44,132,177,.42);box-shadow:0 20px 44px rgba(6,38,60,.14)}
.room-video-media{position:relative;aspect-ratio:16/9;overflow:hidden;background:linear-gradient(135deg,#06263c,#145779)}
.room-video-media iframe,.room-video-media video,.room-video-link,.room-video-link img{display:block;width:100%;height:100%;border:0}
.room-video-media video,.room-video-link img{object-fit:cover}
.room-video-link{position:relative;color:#fff;text-decoration:none;background:radial-gradient(circle at 70% 25%,rgba(73,157,196,.55),transparent 38%),linear-gradient(135deg,#06263c,#145779)}
.room-video-link::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(1,25,42,.62));pointer-events:none}
.room-play{position:absolute;z-index:2;left:50%;top:50%;width:68px;height:68px;display:grid;place-items:center;transform:translate(-50%,-50%);border:1px solid rgba(255,255,255,.7);border-radius:50%;background:rgba(255,255,255,.94);box-shadow:0 12px 34px rgba(0,0,0,.24);transition:transform .25s ease,background .25s ease}
.room-play svg{width:27px;height:27px;margin-left:4px;fill:var(--deep)}
.room-video-link:hover .room-play{transform:translate(-50%,-50%) scale(1.08);background:#fff}
.room-video-duration{position:absolute;z-index:3;right:.75rem;bottom:.7rem;padding:.28rem .55rem;border-radius:999px;background:rgba(1,25,42,.86);color:#fff;font:700 .7rem/1.2 var(--sans);letter-spacing:.05em;box-shadow:0 4px 12px rgba(0,0,0,.18);pointer-events:none}
.room-video-copy{padding:.9rem 1rem 1rem}
.room-video-copy h4{margin:0;color:var(--deep);font-size:.98rem;line-height:1.3}
.room-video-copy p{margin:.45rem 0 0;color:var(--body);font-size:.84rem;line-height:1.5}
.organizers-section{background:#001b35;color:#fff;isolation:isolate}
.organizers-section .hd{margin-bottom:1.25rem}
/* Esta cabecera pertenece solo a su sección y queda fuera del editor visual:
   su autoridad es Admin > Organizadores. */
.organizers-section>.wrap>.hd .eyebrow,.organizers-section>.wrap>.hd h2,
.organizers-section>.wrap>.hd .lead{
  color:#fff!important;-webkit-text-fill-color:#fff!important;opacity:1!important}
.organizers-section>.wrap>.hd .eyebrow{letter-spacing:.22em}
.organizers-section>.wrap>.hd h2{font-family:var(--display);font-weight:400}
.gallery-viewport.organizadores .gallery-thumb{flex-basis:clamp(170px,19vw,230px)}
.gallery-viewport.organizadores .gallery-thumb img{height:145px;object-fit:contain;background:#fff;padding:1rem}
.gallery-viewport.organizadores .gallery-caption{justify-content:center;text-align:center;min-height:58px}
.gallery-viewport.organizadores .gallery-caption::after{display:none}

/* Organizadores: imagen + su parrafo, uno debajo de otro (orden desde el panel) */
.orglist{display:flex;flex-direction:column;gap:1.15rem;margin-top:1.6rem}
.orgitem{display:grid;grid-template-columns:210px 1fr;gap:1.6rem;align-items:start;
  background:var(--org-panel);border:1px solid var(--line);border-radius:var(--r);padding:1.5rem;
  box-shadow:var(--shadow-s);transition:box-shadow .22s,border-color .22s}
/* El blanco pertenece solo al encabezado exterior. Dentro de las tarjetas
   todos los textos recuperan contraste oscuro sobre el fondo blanco. */
.organizers-section .orgitem,.organizers-section .orgtxt,
.organizers-section .orgtxt h3,.organizers-section .orgtxt p,
.organizers-section .orgtxt span{color:var(--ink)!important}
.orgitem:hover{box-shadow:var(--shadow-m);border-color:var(--sky)}
/* La tarjeta entera va en el azul claro. Los dos recuadros interiores
   pierden fondo y borde para que el bloque se lea como una sola pieza. */
.orgimg{display:flex;align-items:center;justify-content:center;background:transparent;
  border:0;border-radius:calc(var(--r) - 4px);padding:1rem;min-height:130px;
  align-self:start}
.orgimg img{max-width:100%;max-height:110px;object-fit:contain;cursor:default;pointer-events:none;
  user-select:none;-webkit-user-drag:none}
/* con enlace externo configurado: la imagen si es pulsable */
.orgimg.con-enlace{transition:border-color .22s,background .22s}
.orgimg.con-enlace:hover img{filter:brightness(1.04)}
.orgimg.con-enlace a{display:flex;align-items:center;justify-content:center;width:100%;height:100%}
.orgimg.con-enlace img{pointer-events:auto;cursor:pointer;transition:transform .25s ease}
.orgimg.con-enlace:hover img{transform:scale(1.04)}
.orgtxt{background:transparent;border:0;padding:0}
.orgtxt h3{font-size:1.06rem;margin-bottom:.55rem;color:var(--atlantic)}
.orgtxt p{font-size:.95rem;max-width:none}
.orgtxt p + p{margin-top:.75rem}
@media(max-width:760px){
  .room-video-headrow{align-items:flex-end;gap:.75rem}
  .room-video-heading{margin-bottom:1rem}
  .room-video-controls{margin-bottom:1rem;gap:.35rem}
  .room-video-controls .gallery-control{width:42px;height:42px}
  .room-video-card{flex-basis:min(78vw,320px)}
  .room-video-card:hover{transform:none}
  .room-play{width:58px;height:58px}
  .orgitem{grid-template-columns:1fr;gap:1.1rem;padding:1.2rem}
  .orgimg{min-height:112px;padding:.6rem}
}

/* ---------- visor de imágenes ---------- */
.visa-modal{position:fixed;inset:0;z-index:95;display:none;align-items:center;justify-content:center;
  padding:clamp(.8rem,3vw,2rem);background:rgba(4,20,32,.76);backdrop-filter:blur(4px)}
.visa-modal.open{display:flex}
.visa-dialog{position:relative;width:min(1040px,100%);max-height:min(88vh,820px);overflow:auto;background:#fff;
  border:1px solid rgba(255,255,255,.35);border-radius:var(--r-lg);box-shadow:0 28px 80px rgba(4,20,32,.42)}
.visa-head{padding:1.45rem 4.5rem 1.15rem 1.5rem;background:linear-gradient(120deg,var(--midnight),var(--atlantic));color:#fff}
.visa-head .eyebrow{color:#9fc9e2;margin-bottom:.35rem}
.visa-head h2{color:#fff;font-size:clamp(1.45rem,3vw,2rem);margin:0}
.visa-head p{color:#c8deeb;font-size:.88rem;margin:.45rem 0 0;max-width:72ch}
.visa-close{position:absolute;right:1rem;top:1rem;width:38px;height:38px;border:1px solid rgba(255,255,255,.28);
  border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font-size:1.4rem;line-height:1;cursor:pointer}
.visa-close:hover{background:rgba(255,255,255,.24)}
.visa-body{padding:1.35rem 1.5rem 1.5rem}
.visa-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.visa-group{border:1px solid var(--line);border-radius:var(--r);padding:1.05rem;background:#f8fbfd}
.visa-group h3{font-size:1rem;color:var(--deep);margin:0 0 .7rem}
.visa-group p{font-size:.82rem;color:var(--body);margin:0 0 .7rem;line-height:1.5}
.visa-countries{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.42rem .7rem;list-style:none;margin:0;padding:0}
.visa-countries li{display:flex;align-items:center;gap:.48rem;min-width:0;padding:.38rem .5rem;border-radius:8px;
  background:#fff;border:1px solid var(--line-soft);font-size:.82rem;color:var(--ink);line-height:1.25}
.visa-countries .flag{display:block;width:24px;height:18px;object-fit:cover;border-radius:2px;box-shadow:0 0 0 1px rgba(6,38,60,.13);flex:0 0 auto}
.visa-note{margin:1rem 0 0;padding:.9rem 1rem;border-left:3px solid var(--brass);border-radius:0 9px 9px 0;
  background:#fff9ed;color:#5d4a2d;font-size:.8rem;line-height:1.55}
@media(max-width:720px){
  .visa-groups{grid-template-columns:1fr}
  .visa-countries{grid-template-columns:repeat(2,minmax(0,1fr))}
  .visa-head,.visa-body{padding-left:1rem;padding-right:1rem}
}
@media(max-width:430px){.visa-countries{grid-template-columns:1fr}}

.lightbox{position:fixed;inset:0;z-index:90;background:rgba(4,20,32,.93);display:none;
  place-items:center;padding:clamp(1rem,4vw,3rem)}
.lightbox.open{display:grid}
.lightbox figure{margin:0;max-width:1000px;width:100%}
.lightbox img{width:100%;max-height:74vh;object-fit:contain;border-radius:var(--r)}
.lightbox figcaption{color:#fff;text-align:center;margin-top:1.1rem}
.lightbox figcaption b{display:block;font-family:var(--display);font-size:1.2rem;font-weight:400;color:#fff}
.lightbox figcaption span{display:block;font-size:.87rem;color:#a9c6d8;margin-top:.35rem;max-width:70ch;margin-inline:auto}
.lightbox .x{position:absolute;top:1.2rem;right:1.2rem;width:44px;height:44px;border-radius:50%;
  background:rgba(255,255,255,.14);border:0;color:#fff;font-size:1.5rem;cursor:pointer;line-height:1}
.lightbox .x:hover,.lightbox .lbnav:hover{background:rgba(255,255,255,.24)}
.lightbox .lbnav{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;
  border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.13);color:#fff;display:grid;place-items:center;
  cursor:pointer;font-size:2rem;line-height:1;transition:background .2s,transform .2s}
.lightbox .lbnav:hover{transform:translateY(-50%) scale(1.04)}
.lightbox .lbprev{left:clamp(.65rem,2vw,1.6rem)}
.lightbox .lbnext{right:clamp(.65rem,2vw,1.6rem)}
.lightbox .lbnav[hidden],.lightbox .lbcount[hidden]{display:none}
.lightbox .lbcount{position:absolute;left:50%;top:1.35rem;transform:translateX(-50%);font-family:var(--mono);
  font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:#d7e8f2;background:rgba(6,38,60,.58);
  border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:.38rem .8rem;white-space:nowrap}

/* ---------- chat ---------- */
#chatLauncher{position:fixed;right:18px;bottom:18px;z-index:60;display:inline-flex;align-items:center;gap:.55rem;
  background:var(--midnight);color:#fff;border:0;border-radius:999px;padding:.85rem 1.3rem;
  font-family:var(--sans);font-weight:650;font-size:.9rem;cursor:pointer;box-shadow:0 14px 34px rgba(6,38,60,.35);
  transition:transform .2s,background .2s}
#chatLauncher:hover{transform:translateY(-2px);background:var(--deep)}
#chatLauncher .dot{width:8px;height:8px;border-radius:50%;background:#5fd39a;box-shadow:0 0 0 4px rgba(95,211,154,.24)}
#chatPanel{position:fixed;right:18px;bottom:18px;z-index:61;width:378px;max-width:calc(100vw - 36px);
  height:min(620px,calc(100vh - 36px));background:#fff;border-radius:var(--r-lg);border:1px solid var(--line);
  box-shadow:var(--shadow-l);display:none;flex-direction:column;overflow:hidden}
#chatPanel.open{display:flex}
.chat-head{background:linear-gradient(120deg,var(--midnight),var(--atlantic));color:#fff;
  padding:1.05rem 1.2rem;display:flex;justify-content:space-between;align-items:flex-start;gap:.8rem}
.chat-head b{display:block;font-family:var(--display);font-size:1.05rem;font-weight:400;color:#fff}
.chat-head span{font-family:var(--mono);font-size:.6rem;letter-spacing:.11em;text-transform:uppercase;color:#a8cde4}
.chat-head button{background:rgba(255,255,255,.16);border:0;color:#fff;border-radius:9px;width:30px;height:30px;
  font-size:1.15rem;cursor:pointer;line-height:1;flex-shrink:0}
.chat-ticket{background:var(--sky);color:var(--deep);font-family:var(--mono);font-size:.66rem;
  letter-spacing:.11em;text-transform:uppercase;padding:.55rem;text-align:center;border-bottom:1px solid var(--line-soft)}
.chat-scroll{flex:1;overflow-y:auto;padding:1.1rem;background:var(--mist)}
.chat-form label{display:block;font-family:var(--mono);font-size:.62rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--muted);margin:.85rem 0 .3rem;font-weight:600}
.chat-form input,.chat-form select,.chat-form textarea{width:100%;border:1px solid var(--line);border-radius:9px;
  padding:.62rem .75rem;font:inherit;font-size:.9rem;background:#fff;color:var(--ink)}
.chat-form textarea{min-height:84px;resize:vertical}
.chat-form .two{display:grid;grid-template-columns:1fr 1fr;gap:.55rem}
.chat-intro{font-size:.87rem;color:var(--body);margin:0}
.chat-send{width:100%;margin-top:1.15rem;border:0;border-radius:999px;background:var(--atlantic);color:#fff;
  font-family:var(--sans);font-weight:650;font-size:.9rem;padding:.75rem;cursor:pointer}
.chat-send:hover{background:var(--deep)}
.chat-hint{font-size:.79rem;color:var(--muted);margin:.85rem 0 0;line-height:1.5}
.chat-err{background:#fbe5e7;color:#7f2b34;font-size:.83rem;font-weight:600;border-radius:9px;padding:.6rem .8rem;margin-bottom:.7rem}
.chat-msg{max-width:84%;margin-bottom:.75rem;padding:.65rem .9rem;border-radius:14px;font-size:.89rem;
  line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}
.chat-msg.me{background:var(--atlantic);color:#fff;margin-left:auto;border-bottom-right-radius:4px}
.chat-msg.them{background:#fff;border:1px solid var(--line);border-bottom-left-radius:4px;color:var(--ink)}
.chat-msg .who{font-family:var(--mono);font-size:.6rem;letter-spacing:.11em;text-transform:uppercase;opacity:.72;margin-bottom:.25rem}
.chat-msg .hr{font-size:.66rem;opacity:.62;text-align:right;margin-top:.3rem}
.chat-bar{border-top:1px solid var(--line);padding:.7rem;display:flex;gap:.5rem;background:#fff}
.chat-bar textarea{flex:1;border:1px solid var(--line);border-radius:11px;padding:.6rem .75rem;font:inherit;
  font-size:.9rem;resize:none;height:44px;max-height:110px;color:var(--ink)}
.chat-bar button{border:0;background:var(--atlantic);color:#fff;border-radius:11px;padding:0 1rem;
  font-family:var(--sans);font-weight:650;cursor:pointer;font-size:.88rem}

/* ---------- revelado ---------- */
.rv{opacity:0;transform:translateY(22px)}
.rv.in{opacity:1;transform:none;transition:opacity .65s cubic-bezier(.22,.61,.36,1),transform .65s cubic-bezier(.22,.61,.36,1)}

/* ---------- responsive ---------- */
@media(max-width:1080px){
  .hero .wrap{grid-template-columns:1fr;gap:2.6rem}
  /* La ficha institucional conserva la misma proporcion compacta del
     escritorio: nunca se estira al ancho de una tableta o un movil. */
  .factcard{width:min(100%,460px);max-width:460px;margin-inline:auto}
  .footgrid{grid-template-columns:1fr 1fr}
}
@media(max-width:1280px){
  .navlinks{position:absolute;top:calc(100% + 1px);left:0;right:0;flex-direction:column;align-items:stretch;
    background:#fff;padding:1rem var(--pad) 1.6rem;border-bottom:1px solid var(--line);box-shadow:var(--shadow-m);
    transform:translateY(-140%);transition:transform .3s cubic-bezier(.22,.61,.36,1);gap:.1rem;
    max-height:calc(100vh - 70px);overflow-y:auto;z-index:-1}
  .navlinks.open{transform:none;z-index:1}
  .navlinks a{padding:.85rem .5rem;font-size:.98rem;border-bottom:1px solid var(--line-soft)}
  .navlinks a.active::after{display:none}
  .site-navgroup{display:block;height:auto;border-bottom:1px solid var(--line-soft)}
  .site-navgroup summary{padding:.9rem .5rem;font-size:.98rem;justify-content:space-between}
  .site-navgroup:hover summary,.site-navgroup:focus-within summary{background:transparent}
  .site-drop{position:static;width:auto;padding:0 0 .65rem .7rem;border:0;border-radius:0;box-shadow:none;
    opacity:1;visibility:visible;transform:none;display:none;transition:none}
  .site-navgroup:hover .site-drop,.site-navgroup:focus-within .site-drop{display:none}
  .site-navgroup[open] .site-drop{display:block}
  .navlinks .site-drop a{font-size:.9rem;padding:.68rem .75rem;border-bottom:0;color:var(--body)}
  /* En movil el CTA deja de ser un enlace mas de la lista: se separa del
     bloque de navegacion y ocupa todo el ancho como boton solido. */
  .navcta{margin:1.1rem 0 .2rem;display:block}
  .navcta a{display:flex;width:100%;padding:.95rem 1rem;font-size:.95rem;border-bottom:0}
  .burger{display:block}
  .panels{grid-template-columns:1fr}
  .axis .wrap{grid-template-columns:1fr;gap:.9rem}
  .spcta{grid-template-columns:1fr}
}
@media(max-width:680px){
  body{font-size:16px}
  .hero .wrap{padding-block:1.4rem}
  .hero h1{font-size:clamp(1.9rem,9vw,2.5rem);margin-bottom:.45rem}
  .eyebrow.slogan{font-size:clamp(1.05rem,5.4vw,1.35rem);margin-bottom:.45rem}
  .hero p.lead{font-size:.95rem;margin:.4rem 0}
  .hero .actions{gap:.55rem;margin-top:.8rem}
  .hero .actions .btn{flex:1 1 auto;justify-content:center;text-align:center}
  .footgrid{grid-template-columns:1fr;gap:1.8rem}
  .utility .wrap{justify-content:center;text-align:center;font-size:.62rem}
  .chat-form .two{grid-template-columns:1fr}
  #chatPanel{right:8px;left:8px;bottom:8px;width:auto;height:calc(100vh - 16px);border-radius:16px}
  .totop{bottom:80px;right:12px}
  #chatLauncher{right:12px;bottom:12px}
  #helpLauncher{left:12px;bottom:12px;width:48px;height:48px;padding:0;border-radius:50%;justify-content:center}
  #helpLauncher>span:last-child{display:none}
  #helpLauncher .help-icon{width:34px;height:34px;box-shadow:none}
  .help-drawer{width:min(390px,calc(100vw - 12px))}
  .help-head{padding:1.15rem}
  .help-body{padding:1rem}
  .help-foot{padding:1rem}
  .media .ph img{height:190px}
  .gallery-head{align-items:flex-start}
  #salas>.wrap>.salas-intro-band{margin-top:-1.2rem;padding-block:1.7rem;margin-bottom:1.55rem}
  .gallery-thumb{flex-basis:78vw;max-width:290px}
  .gallery-thumb img{height:170px}
  .lightbox{padding:4.5rem .8rem 1rem}
  .lightbox figure{max-width:100%}
  .lightbox img{max-height:68vh}
  .lightbox .lbnav{top:auto;bottom:1rem;transform:none;width:46px;height:46px}
  .lightbox .lbnav:hover{transform:scale(1.04)}
  .lightbox .lbprev{left:calc(50% - 58px)}
  .lightbox .lbnext{right:calc(50% - 58px)}
  .lightbox .lbcount{top:1.35rem}
  .cd-unit{min-width:64px;padding:.5rem .6rem}
  .cd-unit b{font-size:1.3rem}
  .footbase{justify-content:center;text-align:center}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
  html{scroll-behavior:auto}
  .rv{opacity:1;transform:none}
}
@media(max-width:400px){
  .hero .wrap{padding-block:1.1rem}
  .hero h1{font-size:clamp(1.6rem,10vw,2.1rem)}
  .eyebrow.slogan{font-size:clamp(.95rem,6vw,1.15rem)}
  /* La ficha institucional conserva las dos columnas tambien en movil. */
  .facts{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .facts>div{min-width:0;padding:.78rem .82rem}
  .facts dt{font-size:.52rem;letter-spacing:.12em}
  .facts dd{font-size:.92rem;overflow-wrap:anywhere}
  .facts dd small{font-size:.72rem}
  .hero .actions{flex-direction:column}
  .hero .actions .btn{width:100%}
}
@media print{
  .nav,.utility,.flagrule,#chatLauncher,#chatPanel,#helpLauncher,.help-drawer,.help-backdrop,.totop,.lightbox,.spcta,.countdown,.gallery-controls,.skyfield{display:none!important}
  body{font-size:11pt;color:#000}
  .sec{padding-block:1.2rem}
  .hero,.sec.dark,.axis{background:#fff!important;color:#000!important;min-height:0!important;display:block!important}
  .hero::before,.hero::after{display:none!important}
  .hero h1,.sec.dark h2,.sec.dark h3,.axis h2{color:#000!important}
  .rv{opacity:1!important;transform:none!important}
}
.card.art-event,
.card.art-info {
  background: var(--card-soft);
}
.card.art-event:hover,
.card.art-info:hover {
  background: var(--card-soft-hover);
}
.panel.p-evento {
  background: #10527B;
  color: #FFFFFF;
  padding: 20px;
  border-radius: 8px;
}

.panel.p-evento h3 {
  color: #FFFFFF;
}

.panel.p-evento .timeline {
  list-style: none;
  padding-left: 0;
  color: #FFFFFF;
}

.panel.p-evento .timeline li {
  color: #FFFFFF;
  padding: 8px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

.panel.p-evento .timeline li .d {
  font-weight: bold;
  margin-right: 10px;
  color: #FFFFFF;
  background: none;
}

.panel.p-evento .timeline li .t {
  color: #FFFFFF;
}

.panel.p-evento .timeline li .t b {
  color: #FFFFFF;
}
.reslist span.tag-evento {
  background: #10527B !important;
  color: #FFFFFF !important
}

/* ========================================================================
   R9 · Confirmacion de invitaciones dentro de la portada
   Un unico logo (logo_evento), modal limpio y sin navegar a archivos .php.
   ===================================================================== */
.carta-confirm-modal{position:fixed;inset:0;z-index:1200;display:none;align-items:center;justify-content:center;
  padding:clamp(1rem,4vw,2rem);background:rgba(3,22,35,.72);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.carta-confirm-modal.open{display:flex;animation:cartaConfirmFade .2s ease-out}
.carta-confirm-dialog{position:relative;width:min(520px,100%);overflow:hidden;background:#fff;border:1px solid rgba(255,255,255,.56);
  border-radius:24px;box-shadow:0 28px 90px rgba(2,22,35,.38);transform-origin:center;animation:cartaConfirmUp .28s cubic-bezier(.2,.78,.24,1)}
.carta-confirm-brand{min-height:112px;display:flex;align-items:center;justify-content:center;padding:22px 70px 18px;
  background:linear-gradient(180deg,#fffdf8 0%,#fbf7ed 100%);border-bottom:1px solid #eadfc9}
.carta-confirm-logo{display:block;width:auto;max-width:min(280px,82%);max-height:82px;object-fit:contain}
.carta-confirm-wordmark{font-family:var(--display);font-size:2rem;letter-spacing:.02em;color:var(--deep);font-weight:600}
.carta-confirm-x{position:absolute;z-index:2;right:16px;top:16px;width:38px;height:38px;border:1px solid #e0d7c8;border-radius:50%;
  background:rgba(255,255,255,.9);color:#587080;font:400 1.45rem/1 Arial,sans-serif;cursor:pointer;transition:.18s ease}
.carta-confirm-x:hover,.carta-confirm-x:focus-visible{background:#fff;border-color:#b8893f;color:#7f571a;outline:none;box-shadow:0 0 0 3px rgba(184,137,63,.14)}
.carta-confirm-content{padding:30px 34px 32px;text-align:center}
.carta-confirm-status{width:58px;height:58px;margin:-1px auto 17px;border-radius:50%;display:grid;place-items:center;
  background:#fff8e9;border:1px solid #ead7ae;box-shadow:0 8px 24px rgba(154,102,23,.09)}
.carta-confirm-status span{position:relative;display:block;width:21px;height:21px;border:2px solid #a96f14;border-radius:50%}
.carta-confirm-status span::after{content:"";position:absolute;left:5px;top:2px;width:5px;height:10px;border-right:2px solid #a96f14;border-bottom:2px solid #a96f14;transform:rotate(45deg);opacity:0}
.carta-confirm-kicker{font-family:var(--mono);font-size:.67rem;line-height:1.35;letter-spacing:.18em;text-transform:uppercase;color:#9a6617;font-weight:800;margin-bottom:.55rem}
.carta-confirm-content h2{margin:0;color:var(--deep);font-family:var(--display);font-size:clamp(1.65rem,5vw,2.15rem);line-height:1.08;font-weight:600}
.carta-confirm-message{max-width:430px;margin:1rem auto 0;color:#536f80;font-size:.93rem;line-height:1.65}
.carta-confirm-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:22px 0 0;text-align:left}
.carta-confirm-meta>div{min-width:0;padding:12px 13px;border:1px solid #e3eaed;border-radius:11px;background:#f7fafb}
.carta-confirm-meta span{display:block;font-family:var(--mono);font-size:.61rem;line-height:1.2;letter-spacing:.1em;text-transform:uppercase;color:#8198a6;margin-bottom:4px}
.carta-confirm-meta b{display:block;color:#173f59;font-size:.82rem;line-height:1.35;overflow-wrap:anywhere}
.carta-confirm-error{margin:16px 0 0;padding:10px 12px;border:1px solid #efc2c6;border-radius:10px;background:#fff4f5;color:#9a3340;font-size:.82rem;line-height:1.45;text-align:left}
.carta-confirm-actions{display:flex;justify-content:center;gap:10px;margin-top:24px}
.carta-confirm-actions button{min-height:46px;border-radius:10px;padding:.74rem 1.3rem;font:800 .88rem/1 var(--sans);cursor:pointer;transition:transform .18s,box-shadow .18s,background .18s,border-color .18s}
.carta-confirm-cancel{border:1px solid #d9e2e7;background:#fff;color:#526d7e}
.carta-confirm-cancel:hover,.carta-confirm-cancel:focus-visible{border-color:#9eb1bd;background:#f6f9fa;outline:none}
.carta-confirm-cancel.primary{background:var(--deep);border-color:var(--deep);color:#fff}
.carta-confirm-ok{border:1px solid #9a6617;background:linear-gradient(180deg,#b77a18,#9d6714);color:#fff;box-shadow:0 8px 20px rgba(154,102,23,.18)}
.carta-confirm-ok:hover,.carta-confirm-ok:focus-visible{transform:translateY(-1px);box-shadow:0 11px 24px rgba(154,102,23,.24);outline:none}
.carta-confirm-ok:disabled{opacity:.68;cursor:wait;transform:none}
.carta-confirm-modal.state-ok .carta-confirm-status{background:#eff8f3;border-color:#b9dbc8;box-shadow:0 8px 24px rgba(31,122,82,.09)}
.carta-confirm-modal.state-ok .carta-confirm-status span{border-color:#1f7a52}
.carta-confirm-modal.state-ok .carta-confirm-status span::after{border-color:#1f7a52;opacity:1}
.carta-confirm-modal.state-error .carta-confirm-status{background:#fff3f4;border-color:#efc6ca;box-shadow:none}
.carta-confirm-modal.state-error .carta-confirm-status span{border-color:#b3404b}
.carta-confirm-modal.state-error .carta-confirm-status span::before,.carta-confirm-modal.state-error .carta-confirm-status span::after{content:"";position:absolute;left:9px;top:3px;width:2px;height:11px;background:#b3404b;border:0;opacity:1;transform:rotate(45deg)}
.carta-confirm-modal.state-error .carta-confirm-status span::after{transform:rotate(-45deg)}
@keyframes cartaConfirmFade{from{opacity:0}to{opacity:1}}
@keyframes cartaConfirmUp{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}
@media(max-width:560px){
  .carta-confirm-modal{padding:.75rem}.carta-confirm-dialog{border-radius:19px}.carta-confirm-brand{min-height:96px;padding:18px 58px 14px}
  .carta-confirm-logo{max-width:min(235px,86%);max-height:68px}.carta-confirm-content{padding:24px 20px 24px}.carta-confirm-meta{grid-template-columns:1fr}
  .carta-confirm-actions{flex-direction:column-reverse}.carta-confirm-actions button{width:100%}
}
@media(prefers-reduced-motion:reduce){.carta-confirm-modal.open,.carta-confirm-dialog{animation:none}.carta-confirm-actions button{transition:none}}

/* R10 - hardening visual del modal de confirmacion. */
.carta-confirm-dialog{max-height:calc(100vh - 32px);overflow:auto}
@media(max-width:560px){.carta-confirm-dialog{max-height:calc(100vh - 24px)}}
