/* ==========================================================================
   SapIA — hoja de estilo de la maqueta
   Paleta tomada del propio logotipo: navy #1B447B, celeste #4BBEE1
   ========================================================================== */

:root{
  --navy:#1B447B;
  --navy-osc:#122F57;
  --navy-noche:#0C1F3C;
  --cyan:#4BBEE1;
  --cyan-osc:#2FA6CC;
  --tinta:#132338;
  --gris:#5C6E85;
  --linea:#E3EAF3;
  --tono:#F3F7FB;
  --blanco:#fff;
  --radio:18px;
  --radio-sm:12px;
  --ancho:1180px;
  --sombra:0 18px 40px -24px rgba(19,35,56,.45);
  --sombra-alta:0 30px 60px -30px rgba(19,35,56,.55);
  --ease:cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{box-sizing:border-box}

html{scroll-behavior:smooth;scroll-padding-top:104px}

body{
  margin:0;
  font-family:'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  color:var(--tinta);
  background:var(--blanco);
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}

img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;border:0;background:none;cursor:pointer}
h1,h2,h3,h4{margin:0;line-height:1.16;letter-spacing:-.02em;font-weight:800}
p{margin:0}
ul{margin:0;padding:0;list-style:none}

.contenedor{width:100%;max-width:var(--ancho);margin:0 auto;padding:0 24px}

.saltar{
  position:absolute;left:-9999px;top:0;z-index:200;
  background:var(--navy);color:#fff;padding:12px 18px;border-radius:0 0 10px 0;
}
.saltar:focus{left:0}

:focus-visible{outline:3px solid var(--cyan);outline-offset:3px;border-radius:6px}

/* ---------- Botones ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  padding:14px 26px;border-radius:999px;font-weight:700;font-size:15.5px;
  transition:transform .25s var(--ease),background-color .25s,color .25s,box-shadow .25s;
  white-space:nowrap;
}
.btn:hover{transform:translateY(-2px)}
.btn--cyan{background:var(--cyan);color:#06263a;box-shadow:0 14px 30px -16px rgba(75,190,225,.9)}
.btn--cyan:hover{background:#63cbec}
.btn--navy{background:var(--navy);color:#fff;box-shadow:0 14px 30px -18px rgba(27,68,123,.9)}
.btn--navy:hover{background:#245795}
.btn--linea{border:1.5px solid rgba(255,255,255,.55);color:#fff}
.btn--linea:hover{border-color:#fff;background:rgba(255,255,255,.1)}

.enlace-mas{
  display:inline-flex;align-items:center;gap:8px;
  font-weight:700;font-size:15.5px;color:var(--navy);
  transition:gap .25s var(--ease),color .25s;
}
.enlace-mas svg{width:19px;height:19px;flex:none}
.enlace-mas:hover{gap:14px;color:var(--cyan-osc)}
.enlace-mas--sm{font-size:14.5px;margin-top:6px}
.seccion--oscura .enlace-mas{color:var(--cyan)}

/* ---------- Redes ---------- */
.redes{display:flex;align-items:center;gap:10px}
.redes a{
  display:grid;place-items:center;width:36px;height:36px;border-radius:50%;
  background:rgba(255,255,255,.1);transition:background-color .25s,transform .25s var(--ease);
}
.redes svg{width:17px;height:17px;fill:currentColor}
.redes a:hover{background:var(--cyan);color:#06263a;transform:translateY(-2px)}
.redes--mini a{width:30px;height:30px}
.redes--mini svg{width:15px;height:15px}

.contacto__datos .redes a{background:#E8EFF7;color:var(--navy)}
.contacto__datos .redes a:hover{background:var(--navy);color:#fff}

/* ==========================================================================
   Cintillo + cabecera
   ========================================================================== */
.cintillo{background:var(--navy-noche);color:rgba(255,255,255,.82);font-size:13.5px}
.cintillo__in{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:42px}
.cintillo__mail{font-weight:600}
.cintillo__mail:hover,.cintillo__vuelta:hover{color:var(--cyan)}
.cintillo__der{display:flex;align-items:center;gap:14px}
.cintillo__sep{width:1px;height:18px;background:rgba(255,255,255,.2)}

.cabecera{
  position:sticky;top:0;z-index:90;background:#fff;
  border-bottom:1px solid var(--linea);
  transition:box-shadow .3s,padding .3s;
}
.cabecera.es-fija{box-shadow:0 10px 30px -22px rgba(19,35,56,.6)}
.cabecera__in{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:86px}
.cabecera.es-fija .cabecera__in{min-height:70px}

.marca img{height:42px;width:auto;transition:height .3s var(--ease)}
.cabecera.es-fija .marca img{height:34px}

.nav ul{display:flex;align-items:center;gap:4px}
.nav a{
  display:block;padding:10px 14px;white-space:nowrap;border-radius:999px;
  font-size:15.5px;font-weight:600;color:#3A4D66;
  transition:color .2s,background-color .2s;
}
.nav a:hover{color:var(--navy);background:var(--tono)}
.nav a.es-activo{color:var(--navy)}
.nav a.es-activo::after{
  content:"";display:block;height:2.5px;width:22px;margin:5px auto -2px;
  background:var(--cyan);border-radius:2px;
}
/* El registro de iniciativas es lo único que sale del micrositio: va en cyan
   y con flecha para que se distinga de los enlaces internos. */
.nav__cta{
  display:flex!important;align-items:center;gap:8px;
  background:var(--cyan);color:#06263a!important;margin-left:10px;padding:11px 20px!important;
  box-shadow:0 12px 26px -16px rgba(75,190,225,.95);
  transition:background-color .2s,transform .25s var(--ease),box-shadow .25s!important;
}
.nav__cta svg{width:17px;height:17px;flex:none;transition:transform .25s var(--ease)}
.nav__cta:hover{background:#63cbec!important;transform:translateY(-1px)}
.nav__cta:hover svg{transform:translateX(3px)}
.nav__cta.es-activo::after{display:none}
@media (min-width:1081px) and (max-width:1240px){
  .nav ul{gap:0}
  .nav a{padding:10px 10px;font-size:15px}
  .nav__cta{margin-left:6px;padding:10px 16px!important}
}

.hamb{display:none;width:44px;height:44px;border-radius:12px;padding:11px 10px}
.hamb span{display:block;height:2.5px;border-radius:2px;background:var(--navy);transition:transform .3s var(--ease),opacity .2s}
.hamb span+span{margin-top:6px}
.hamb[aria-expanded="true"] span:nth-child(1){transform:translateY(8.5px) rotate(45deg)}
.hamb[aria-expanded="true"] span:nth-child(2){opacity:0}
.hamb[aria-expanded="true"] span:nth-child(3){transform:translateY(-8.5px) rotate(-45deg)}

/* ==========================================================================
   Hero
   ========================================================================== */
.hero{
  position:relative;overflow:hidden;color:#fff;
  min-height:min(720px,86vh);
  display:flex;flex-direction:column;justify-content:center;
  padding:80px 0 96px;
  background:var(--navy-noche);
}
.hero__fondos{position:absolute;inset:0}
.hero__fondo{
  position:absolute;inset:0;background-size:cover;background-position:center;
  opacity:0;transform:scale(1.08);
  transition:opacity 1.1s var(--ease),transform 7s linear;
}
.hero__fondo.es-activa{opacity:1;transform:scale(1)}
.hero__velo{
  position:absolute;inset:0;
  background:
    linear-gradient(100deg,rgba(9,24,48,.95) 0%,rgba(12,31,60,.88) 42%,rgba(12,31,60,.55) 72%,rgba(12,31,60,.62) 100%),
    radial-gradient(120% 90% at 85% 15%,rgba(75,190,225,.22),transparent 60%);
}
.hero__circuito{
  position:absolute;right:-40px;top:8%;width:min(520px,46vw);color:rgba(75,190,225,.32);
  pointer-events:none;
}
.hero__circuito svg{width:100%;height:auto}

.hero__grid{
  position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);
  gap:clamp(34px,4vw,60px);align-items:center;
}
.hero__paneles{display:grid;min-height:340px}
.hero__panel{
  grid-area:1/1;align-self:center;max-width:640px;
  opacity:0;visibility:hidden;transform:translateY(26px);
  transition:opacity .6s var(--ease),transform .6s var(--ease),visibility .6s;
}
.hero__panel.es-activa{opacity:1;visibility:visible;transform:none}
.hero__panel h1{font-size:clamp(2.3rem,4.6vw,3.9rem);letter-spacing:-.035em}
.hero__panel h1 em{font-style:normal;color:var(--cyan)}
.hero__panel h2{font-size:clamp(1.7rem,3.2vw,2.7rem);letter-spacing:-.03em}
.hero__panel p{margin-top:20px;font-size:clamp(1rem,1.25vw,1.13rem);color:rgba(255,255,255,.84);max-width:560px}
.hero__fecha{margin:0 0 14px!important;font-size:14.5px!important;color:var(--cyan)!important;font-weight:600}
.hero__botones{display:flex;flex-wrap:wrap;gap:14px;margin-top:32px}

.hero__media{position:relative}

/* Carrusel del costado: el video de presentación y el registro de iniciativas
   ocupan la misma celda y se turnan con un fundido. */
.carrusel{display:grid}
.carrusel__pieza{
  grid-area:1/1;display:flex;
  opacity:0;visibility:hidden;transform:translateY(14px);
  transition:opacity .6s var(--ease),transform .6s var(--ease),visibility .6s;
}
.carrusel__pieza.es-activa{opacity:1;visibility:visible;transform:none}
.carrusel__pieza>*{flex:1}
.carrusel__puntos{display:flex;justify-content:center;gap:10px;margin-top:20px}
.carrusel__punto{
  width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.35);
  transition:background-color .3s,width .3s var(--ease);
}
.carrusel__punto:hover{background:rgba(255,255,255,.6)}
.carrusel__punto.es-activa{background:var(--cyan);width:30px;border-radius:999px}

.registro{
  position:relative;overflow:hidden;display:flex;align-items:flex-end;
  border-radius:var(--radio);color:#fff;
  background:
    radial-gradient(90% 80% at 100% 0%,rgba(75,190,225,.3),transparent 62%),
    linear-gradient(160deg,#1B447B 0%,#112A4E 70%);
  box-shadow:0 40px 80px -34px rgba(0,0,0,.75);
  transition:transform .35s var(--ease);
}
.registro:hover{transform:translateY(-4px)}
.registro__red{
  position:absolute;right:-18px;top:-10px;width:58%;max-width:300px;
  stroke:rgba(75,190,225,.38);stroke-width:1.5;
}
.registro__red circle{fill:#122F57;stroke:var(--cyan);stroke-width:2}
.registro__texto{position:relative;display:block;padding:clamp(28px,3.2vw,40px)}
.registro__titulo{
  display:block;max-width:19ch;
  font-size:clamp(1.45rem,2.2vw,1.9rem);font-weight:800;line-height:1.18;letter-spacing:-.025em;
}
.registro__titulo em{font-style:normal;color:var(--cyan)}
.registro__bajada{display:block;margin-top:14px;max-width:44ch;font-size:15px;line-height:1.6;color:rgba(255,255,255,.76)}
.registro__btn{margin-top:24px}
.registro__btn svg{width:18px;height:18px;transition:transform .25s var(--ease)}
.registro:hover .registro__btn{background:#63cbec}
.registro:hover .registro__btn svg{transform:translateX(3px)}

.hero__ctrl{
  position:relative;display:flex;align-items:center;gap:16px;
  margin-top:48px;
}
.hero__flecha{
  width:46px;height:46px;border-radius:50%;display:grid;place-items:center;
  border:1.5px solid rgba(255,255,255,.35);color:#fff;
  transition:background-color .25s,border-color .25s,transform .25s var(--ease);
}
.hero__flecha svg{width:20px;height:20px}
.hero__flecha:hover{background:var(--cyan);border-color:var(--cyan);color:#06263a;transform:translateY(-2px)}
.hero__puntos{display:flex;gap:10px;align-items:center}
.hero__punto{
  width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.35);
  transition:background-color .3s,width .3s var(--ease);
}
.hero__punto.es-activa{background:var(--cyan);width:30px;border-radius:999px}
.hero__barra{position:absolute;left:0;right:0;bottom:0;height:3px;background:rgba(255,255,255,.14)}
.hero__barra span{display:block;height:100%;width:0;background:var(--cyan)}

/* Tarjeta de video */
.video-tarjeta{
  position:relative;display:block;width:100%;overflow:hidden;
  border-radius:var(--radio);text-align:left;
  background:#0C1F3C;box-shadow:var(--sombra-alta);
  transition:transform .35s var(--ease);
}
.video-tarjeta img{
  width:100%;aspect-ratio:16/9;object-fit:cover;
  transition:transform .6s var(--ease),opacity .3s;
}
.video-tarjeta:hover img{transform:scale(1.05);opacity:.85}
.video-tarjeta__play{
  position:absolute;top:calc(50% - 16px);left:50%;transform:translate(-50%,-50%);
  width:66px;height:66px;border-radius:50%;
  background:rgba(255,255,255,.92);
  box-shadow:0 10px 30px -10px rgba(0,0,0,.6);
  transition:transform .3s var(--ease),background-color .3s;
}
.video-tarjeta__play::after{
  content:"";position:absolute;top:50%;left:54%;transform:translate(-50%,-50%);
  border-left:19px solid var(--navy);border-top:12px solid transparent;border-bottom:12px solid transparent;
}
.video-tarjeta:hover .video-tarjeta__play{transform:translate(-50%,-50%) scale(1.08);background:var(--cyan)}
.video-tarjeta:hover .video-tarjeta__play::after{border-left-color:#06263a}
.video-tarjeta__texto{
  display:block;padding:16px 20px 20px;color:#fff;
}
.video-tarjeta__texto strong{display:block;font-size:16px;font-weight:700;line-height:1.35}
.video-tarjeta__texto small{display:block;margin-top:5px;font-size:13.5px;color:rgba(255,255,255,.6)}
.video-tarjeta--hero:hover{transform:translateY(-4px)}

/* El video de presentación manda en el hero: más grande que una tarjeta normal. */
.video-tarjeta--hero{box-shadow:0 40px 80px -34px rgba(0,0,0,.75)}
.video-tarjeta--hero .video-tarjeta__play{width:86px;height:86px}
.video-tarjeta--hero .video-tarjeta__play::after{
  border-left-width:25px;border-top-width:16px;border-bottom-width:16px;
}
.video-tarjeta--hero .video-tarjeta__texto{padding:20px 26px 24px}
.video-tarjeta--hero .video-tarjeta__texto strong{font-size:1.12rem}
.video-tarjeta--hero .video-tarjeta__texto small{font-size:14px;margin-top:6px}

/* ==========================================================================
   Secciones
   ========================================================================== */
.seccion{padding:clamp(64px,8vw,110px) 0}
.seccion--tono{background:var(--tono)}
.seccion--oscura{background:var(--navy-noche);color:#fff}
.seccion--oscura .seccion__bajada{color:rgba(255,255,255,.7)}

.seccion__cabeza{
  display:flex;align-items:flex-end;justify-content:space-between;gap:32px;
  margin-bottom:clamp(34px,4vw,54px);
}
.seccion__cabeza h2{font-size:clamp(1.85rem,3.1vw,2.6rem);max-width:19ch}
.seccion__bajada{margin-top:16px;color:var(--gris);max-width:62ch;font-size:1.02rem}

/* ---------- Ejes ---------- */
.ejes{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.eje{
  background:var(--tono);border-radius:var(--radio);padding:34px 32px 36px;
  transition:transform .35s var(--ease),background-color .35s;
}
.eje:hover{transform:translateY(-5px);background:#EAF2FA}
.eje__num{
  display:block;font-size:14px;font-weight:800;color:var(--cyan-osc);margin-bottom:16px;
}
.eje h3{font-size:1.32rem;margin-bottom:12px}
.eje p{color:var(--gris);font-size:.99rem}

/* ---------- Noticias ---------- */
.noticias{display:grid;grid-template-columns:1.25fr 1fr;gap:26px}
.noticias__col{display:grid;gap:26px;align-content:start}

.noticia{
  background:#fff;border-radius:var(--radio);overflow:hidden;
  box-shadow:var(--sombra);
  transition:transform .35s var(--ease),box-shadow .35s;
}
.noticia:hover{transform:translateY(-5px);box-shadow:var(--sombra-alta)}
.noticia__foto{display:block;overflow:hidden;background:#dce6f1}
.noticia__foto img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.noticia:hover .noticia__foto img{transform:scale(1.05)}
.noticia__cuerpo{padding:24px 26px 28px}
.noticia__meta{font-size:14px;color:var(--cyan-osc);font-weight:600;margin-bottom:10px}
.noticia h3{font-size:1.16rem;line-height:1.35}
.noticia h3 a{background-image:linear-gradient(var(--cyan),var(--cyan));background-size:0 2px;background-repeat:no-repeat;background-position:0 100%;transition:background-size .35s var(--ease)}
.noticia:hover h3 a{background-size:100% 2px}
.noticia__extracto{margin-top:14px;color:var(--gris);font-size:.99rem}

.noticia--destacada .noticia__foto img{aspect-ratio:16/10}
.noticia--destacada .noticia__cuerpo{padding:30px 34px 34px}
.noticia--destacada h3{font-size:1.6rem}
.noticias__col .noticia{display:grid;grid-template-columns:150px 1fr}
.noticias__col .noticia__foto img{aspect-ratio:auto;height:100%;min-height:150px}
.noticias__col .noticia__cuerpo{padding:20px 22px;align-self:center}

/* Las noticias que no caben en el bloque de arriba: una retícula de tarjetas. */
.noticias-mas{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:26px}
.noticias-mas .noticia__foto img{aspect-ratio:16/10}

/* ---------- Álbumes ---------- */
.albumes{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
/* La tarjeta es un botón cuando abre el visor y un enlace cuando lleva
   a la página del álbum: las dos se ven igual. */
a.album{display:block;color:inherit}
.album{
  position:relative;overflow:hidden;border-radius:var(--radio);
  aspect-ratio:1/1;background:#0C1F3C;
  box-shadow:var(--sombra);
  transition:transform .35s var(--ease),box-shadow .35s;
}
.album--ancho{grid-column:span 2;aspect-ratio:2/1}
.album img{width:100%;height:100%;object-fit:cover;opacity:.88;transition:transform .8s var(--ease),opacity .35s}
.album::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to top,rgba(9,24,48,.92) 0%,rgba(9,24,48,.35) 45%,transparent 75%);
}
.album:hover{transform:translateY(-5px);box-shadow:var(--sombra-alta)}
.album:hover img{transform:scale(1.07);opacity:1}
.album__pie{
  position:absolute;left:0;right:0;bottom:0;z-index:2;
  display:block;padding:22px 24px;color:#fff;text-align:left;
}
.album__pie strong{display:block;font-size:1.12rem;font-weight:700;line-height:1.3}
.album__pie small{display:block;margin-top:5px;font-size:13.5px;color:rgba(255,255,255,.72)}

/* ---------- Videos ---------- */
.videos{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.videos .video-tarjeta{background:#112A4E}
.videos__sub{margin:clamp(40px,5vw,60px) 0 22px;font-size:1.3rem}

/* ---------- La sección de videos de la portada ----------
   Arriba una charla grande y, a su lado, dos cápsulas estiradas a su misma
   altura (así no queda hueco bajo las verticales). Abajo, el resto de las
   charlas en tarjetas compactas que ocupan todo el ancho. */
.videos-portada{
  display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);
  gap:clamp(20px,2.4vw,28px);align-items:stretch;
}
.videos-portada .video-tarjeta{background:#112A4E}
.videos-portada__principal{display:flex;flex-direction:column}
.videos-portada__principal .video-tarjeta__play{width:78px;height:78px}
.videos-portada__principal .video-tarjeta__play::after{border-left-width:22px;border-top-width:14px;border-bottom-width:14px}
.videos-portada__principal .video-tarjeta__texto{flex:1;padding:20px 24px 24px}
.videos-portada__principal .video-tarjeta__texto strong{font-size:1.15rem}
.videos-portada__capsulas{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.videos-portada__capsulas .short{aspect-ratio:auto;min-height:320px}
.videos-portada__resto{
  grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:16px;
}
.videos-portada.es-sin-capsulas .videos-portada__principal img{aspect-ratio:16/7}
.videos-portada.es-sin-capsulas,
.videos-portada.es-solo-capsulas{grid-template-columns:1fr}
.videos-portada.es-solo-capsulas .videos-portada__capsulas{grid-template-columns:repeat(4,1fr)}
.videos-portada.es-solo-capsulas .short{aspect-ratio:9/14}

.video-fila{
  display:grid;grid-template-columns:132px minmax(0,1fr);gap:16px;align-items:center;
  padding:12px;border-radius:var(--radio);background:#112A4E;text-align:left;color:#fff;
  transition:background-color .25s,transform .35s var(--ease);
}
.video-fila:hover{background:#17365F;transform:translateY(-3px)}
.video-fila__foto{position:relative;display:block;border-radius:12px;overflow:hidden}
.video-fila__foto img{width:100%;aspect-ratio:16/9;object-fit:cover;transition:transform .6s var(--ease)}
.video-fila:hover .video-fila__foto img{transform:scale(1.06)}
.video-fila .video-tarjeta__play{top:50%;width:38px;height:38px}
.video-fila .video-tarjeta__play::after{border-left-width:11px;border-top-width:7px;border-bottom-width:7px}
.video-fila:hover .video-tarjeta__play{transform:translate(-50%,-50%) scale(1.08);background:var(--cyan)}
.video-fila__texto strong{
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
  font-size:14.5px;font-weight:700;line-height:1.38;
}
.video-fila__texto small{display:block;margin-top:6px;font-size:13px;color:rgba(255,255,255,.55)}

.short__tipo{
  display:block;width:fit-content;margin-bottom:8px;padding:3px 10px;border-radius:999px;
  background:rgba(75,190,225,.2);color:var(--cyan);font-size:12.5px;font-weight:700;
}
.shorts{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.short{
  position:relative;overflow:hidden;border-radius:var(--radio);
  aspect-ratio:9/14;background:#112A4E;text-align:left;
  transition:transform .35s var(--ease)
}
/* La miniatura vertical (o la maxres, con el video al centro) ya encaja
   con object-fit. Solo la de respaldo, hqdefault, trae franjas negras
   arriba y a los lados: esa se amplía para esconderlas. */
.short img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease);opacity:.9}
.short img.es-hq{transform:scale(1.55)}
.short:hover{transform:translateY(-5px)}
.short:hover img{transform:scale(1.05);opacity:1}
.short:hover img.es-hq{transform:scale(1.65)}
.short::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to top,rgba(9,24,48,.94) 8%,rgba(9,24,48,.25) 52%,transparent 80%);
}
.short__texto{
  position:absolute;left:0;right:0;bottom:0;z-index:2;
  display:block;padding:18px 20px;color:#fff;font-size:14.5px;font-weight:600;line-height:1.4;
}
.short__fecha{display:block;margin-top:6px;font-size:12.5px;font-weight:500;color:rgba(255,255,255,.6)}
.short .video-tarjeta__play{width:54px;height:54px;top:calc(50% - 20px)}
.short .video-tarjeta__play::after{border-left-width:15px;border-top-width:10px;border-bottom-width:10px}

/* ---------- Equipo ---------- */
.equipo{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(36px,5vw,70px);align-items:center}
.equipo__intro h2{font-size:clamp(1.85rem,3.1vw,2.6rem)}
.equipo__intro .btn{margin-top:26px}

.persona{
  display:grid;grid-template-columns:230px 1fr;gap:34px;align-items:center;
  background:var(--tono);border-radius:var(--radio);padding:34px;
}
.persona__foto{
  border-radius:16px;overflow:hidden;background:#dce6f1;
  box-shadow:0 20px 40px -26px rgba(19,35,56,.65);
}
.persona__foto img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:top center}
.persona__datos h3{font-size:1.6rem}
.persona__cargo{color:var(--cyan-osc);font-weight:700;margin:6px 0 16px}
.persona__datos p{color:var(--gris)}
.persona__mail{
  display:inline-flex;align-items:center;gap:9px;margin-top:20px;
  font-weight:700;color:var(--navy);
}
.persona__mail svg{width:19px;height:19px}
.persona__mail:hover{color:var(--cyan-osc)}

/* ---------- Contacto ---------- */
.contacto{display:grid;grid-template-columns:.9fr 1.1fr;gap:34px;align-items:stretch}
.contacto__datos{
  display:grid;grid-template-columns:repeat(2,1fr);gap:28px 30px;align-content:start;
  background:#fff;border-radius:var(--radio);padding:36px;box-shadow:var(--sombra);
}
.dato h3{font-size:1.02rem;margin-bottom:9px}
.dato p{color:var(--gris);font-size:.98rem}
.dato a:hover{color:var(--navy)}
.contacto__mapa{
  border-radius:var(--radio);overflow:hidden;min-height:340px;
  box-shadow:var(--sombra);background:#dce6f1;
}
.contacto__mapa iframe{width:100%;height:100%;min-height:340px;border:0;display:block}

/* ==========================================================================
   Pie
   ========================================================================== */
.pie{background:var(--navy-noche);color:rgba(255,255,255,.72);position:relative}
.pie__filo{height:4px;background:linear-gradient(90deg,var(--navy) 0%,var(--cyan) 55%,var(--navy) 100%)}

.pie__rejilla{
  display:grid;grid-template-columns:1.5fr 1fr 1fr 1.3fr;
  gap:clamp(28px,4vw,56px);
  padding-top:clamp(48px,5vw,68px);padding-bottom:44px;
}

.pie__logo{height:52px;width:auto}
.pie__lema{margin:20px 0 24px;max-width:38ch;font-size:.96rem;line-height:1.6}
.pie__ubo{display:inline-block;transition:opacity .25s}
.pie__ubo img{height:42px;width:auto;opacity:.85}
.pie__ubo:hover img{opacity:1}

.pie__col h4{
  font-size:.82rem;font-weight:700;color:#fff;margin-bottom:18px;
  text-transform:uppercase;letter-spacing:.09em;
}
.pie__col li+li{margin-top:11px}
.pie__col li,.pie__col a,.pie__col p{font-size:.95rem}
.pie__col a{transition:color .2s}
.pie__col a:hover{color:var(--cyan)}

.pie__datos p{line-height:1.6}
.pie__horario{margin-top:12px;color:rgba(255,255,255,.55)}
.pie__correo{
  display:inline-flex;align-items:center;gap:9px;margin-top:18px;
  font-weight:600;color:var(--cyan);
}
.pie__correo svg{width:18px;height:18px}
.pie__correo:hover{text-decoration:underline}

.pie__redes{display:none}
.pie__base{border-top:1px solid rgba(255,255,255,.1);background:rgba(0,0,0,.18)}
.pie__base-in{
  display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;
  padding-top:20px;padding-bottom:20px;font-size:13.5px;color:rgba(255,255,255,.55);
}
.pie__base a:hover{color:var(--cyan)}

/* ---------- Redes flotantes, pegadas a la mitad del costado derecho ---------- */
.redes-flot{
  position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:85;
  display:flex;flex-direction:column;align-items:flex-end;gap:7px;
}
.red-flot{
  display:flex;align-items:center;gap:10px;
  padding:13px 13px 13px 15px;max-width:48px;overflow:hidden;
  border-radius:12px 0 0 12px;color:#fff;
  box-shadow:-5px 6px 22px rgba(7,18,34,.28);
  transition:max-width .28s var(--ease);
}
.red-flot svg{width:22px;height:22px;flex:none;fill:currentColor}
.red-flot span{font-weight:700;font-size:.87rem;white-space:nowrap}
.red-flot:hover,.red-flot:focus-visible{max-width:220px}
.red-flot--instagram{background:linear-gradient(135deg,#f9ce34 0%,#ee2a7b 50%,#6228d7 100%)}
.red-flot--linkedin{background:#0a66c2}
.red-flot--youtube{background:#ff0000}
body.sin-scroll .redes-flot{display:none}

/* ---------- Volver arriba ---------- */
.arriba{
  position:fixed;right:22px;bottom:22px;z-index:80;
  width:48px;height:48px;border-radius:50%;display:grid;place-items:center;
  background:var(--navy);color:#fff;box-shadow:var(--sombra-alta);
  opacity:0;visibility:hidden;transform:translateY(12px);
  transition:opacity .3s,visibility .3s,transform .3s var(--ease),background-color .25s;
}
.arriba svg{width:21px;height:21px}
.arriba.es-visible{opacity:1;visibility:visible;transform:none}
.arriba:hover{background:var(--cyan);color:#06263a}

/* ==========================================================================
   Visor de fotos
   ========================================================================== */
.visor{
  position:fixed;inset:0;z-index:150;
  display:grid;grid-template-columns:70px 1fr 70px;grid-template-rows:1fr auto;
  align-items:center;gap:10px;padding:24px;
  background:rgba(7,18,34,.96);backdrop-filter:blur(6px);
  opacity:0;transition:opacity .3s;
}
.visor.es-abierto{opacity:1}
/* El atributo hidden tiene que ganarle al display:grid de mas arriba: si no,
   la capa queda invisible pero extendida sobre la pagina y se come los clics. */
.visor[hidden]{display:none}
.visor__marco{margin:0;grid-row:1;grid-column:2;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:0;gap:16px}
.visor__marco img{
  max-width:100%;max-height:calc(100vh - 230px);width:auto;border-radius:12px;
  box-shadow:0 30px 70px -30px rgba(0,0,0,.9);
}
.visor__marco figcaption{
  display:flex;align-items:center;gap:14px;color:rgba(255,255,255,.8);font-size:14.5px;
}
#visorContador{color:var(--cyan);font-weight:700}
.visor__nav{
  grid-row:1;width:54px;height:54px;border-radius:50%;display:grid;place-items:center;
  background:rgba(255,255,255,.1);color:#fff;transition:background-color .25s,transform .25s var(--ease);
}
.visor__nav svg{width:24px;height:24px}
.visor__nav:hover{background:var(--cyan);color:#06263a}
.visor__nav--prev{grid-column:1;justify-self:start}
.visor__nav--next{grid-column:3;justify-self:end}
.visor__cerrar{
  position:absolute;top:20px;right:22px;width:46px;height:46px;border-radius:50%;
  display:grid;place-items:center;background:rgba(255,255,255,.1);color:#fff;
  transition:background-color .25s}
.visor__cerrar svg{width:22px;height:22px}
.visor__cerrar:hover{background:#e0574f}
.visor__tiras{
  grid-row:2;grid-column:1/-1;
  display:flex;gap:10px;overflow-x:auto;padding:6px 2px 2px;justify-content:center;
  /* La barra de desplazamiento no se ve: con álbumes de muchas fotos cortaba
     la tira por abajo. Se sigue pudiendo arrastrar y girar la rueda. */
  scrollbar-width:none;-ms-overflow-style:none;
  /* Cuando no caben, se difuminan los extremos para que se note que hay más. */
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 40px,#000 calc(100% - 40px),transparent);
          mask-image:linear-gradient(90deg,transparent,#000 40px,#000 calc(100% - 40px),transparent);
  scroll-behavior:smooth;
}
.visor__tiras::-webkit-scrollbar{display:none}
/* Con pocas fotos caben todas: ni difuminado ni desplazamiento. */
.visor__tiras.es-completa{
  -webkit-mask-image:none;mask-image:none;overflow-x:visible;
}
.visor__tiras img{
  width:78px;height:54px;object-fit:cover;border-radius:8px;cursor:pointer;
  opacity:.45;transition:opacity .25s,outline-color .25s;outline:2px solid transparent;
}
.visor__tiras img:hover{opacity:.8}
.visor__tiras img.es-activa{opacity:1;outline-color:var(--cyan)}

/* ---------- Ventana de video ---------- */
.modal-video{
  position:fixed;inset:0;z-index:150;display:grid;place-items:center;padding:24px;
  background:rgba(7,18,34,.96);backdrop-filter:blur(6px);
  opacity:0;transition:opacity .3s;
}
.modal-video.es-abierto{opacity:1}
.modal-video[hidden]{display:none}
.modal-video__marco{width:min(1040px,100%);aspect-ratio:16/9;border-radius:14px;overflow:hidden;background:#000;box-shadow:0 30px 70px -30px rgba(0,0,0,.9)}
/* El hueco intermedio tiene que llenar el marco: si queda con alto
   automatico, el iframe cae a los 150px que trae por defecto y YouTube
   dibuja el reproductor aplastado dentro de una caja negra. */
.modal-video__marco > *{width:100%;height:100%}
.modal-video__marco iframe{width:100%;height:100%;border:0;display:block}
.modal-video__cerrar{
  position:absolute;top:20px;right:22px;width:46px;height:46px;border-radius:50%;
  display:grid;place-items:center;background:rgba(255,255,255,.1);color:#fff;transition:background-color .25s}
.modal-video__cerrar svg{width:22px;height:22px}
.modal-video__cerrar:hover{background:#e0574f}

body.sin-scroll{overflow:hidden}

/* ==========================================================================
   Motivos de inteligencia artificial
   Son adornos: van detrás del contenido, no capturan el cursor y se apagan
   con prefers-reduced-motion.
   ========================================================================== */

/* Los nodos del circuito del hero laten, como una señal recorriendo la placa. */
.hero__circuito circle{
  fill:var(--navy-noche);stroke:var(--cyan);stroke-width:2;
  animation:sapia-latido 3.4s var(--ease) infinite;
}
.hero__circuito circle:nth-of-type(2){animation-delay:.45s}
.hero__circuito circle:nth-of-type(3){animation-delay:.9s}
.hero__circuito circle:nth-of-type(4){animation-delay:1.35s}
.hero__circuito circle:nth-of-type(5){animation-delay:1.8s}
.hero__circuito circle:nth-of-type(6){animation-delay:2.25s}
@keyframes sapia-latido{
  0%,100%{opacity:.35;r:6}
  50%    {opacity:1;  r:8}
}

/* Red neuronal de fondo en el bloque "Qué hacemos". */
.seccion--red{position:relative;overflow:hidden}
.seccion--red > .contenedor{position:relative;z-index:1}
.red-neuronal{
  position:absolute;right:-60px;top:50%;transform:translateY(-50%);
  width:min(560px,48vw);color:var(--navy);opacity:.09;
  pointer-events:none;z-index:0;
}
.red-neuronal svg{width:100%;height:auto}
.red-neuronal line{stroke:currentColor;stroke-width:1.4}
.red-neuronal circle{fill:currentColor}
.red-neuronal .es-nodo-vivo{
  animation:sapia-nodo 4s ease-in-out infinite;
  transform-box:fill-box;transform-origin:center;
}
.red-neuronal .es-nodo-vivo:nth-of-type(even){animation-delay:1.3s}
@keyframes sapia-nodo{
  0%,100%{opacity:.4;transform:scale(.8)}
  50%    {opacity:1;  transform:scale(1.25)}
}

/* Cada eje lleva su nodo con conexiones, numerado. */
.eje{position:relative;overflow:hidden}
.eje__nodo{
  position:absolute;right:-22px;top:-22px;width:112px;height:112px;
  color:var(--cyan);opacity:.22;pointer-events:none;
}
.eje__nodo svg{width:100%;height:100%}
.eje:hover .eje__nodo{opacity:.4}

/* Cinta de datos: separa secciones con un pulso que cruza la pantalla. */
.cinta-datos{
  height:2px;width:100%;position:relative;overflow:hidden;
  background:linear-gradient(90deg,transparent,var(--linea) 20%,var(--linea) 80%,transparent);
}
.cinta-datos::after{
  content:"";position:absolute;top:0;left:-30%;width:30%;height:100%;
  background:linear-gradient(90deg,transparent,var(--cyan),transparent);
  animation:sapia-dato 5.5s linear infinite;
}
@keyframes sapia-dato{
  0%  {left:-30%}
  100%{left:100%}
}

@media (prefers-reduced-motion:reduce){
  .hero__circuito circle,
  .red-neuronal .es-nodo-vivo,
  .cinta-datos::after{animation:none}
}

/* ==========================================================================
   Páginas internas (noticias y videos)
   ========================================================================== */
.cabeza-pagina{
  background:var(--navy-noche);color:#fff;
  padding:54px 0 48px;
  border-bottom:4px solid var(--cyan);
}
.cabeza-pagina h1{font-size:clamp(2rem,4vw,2.9rem);margin-bottom:12px}
.cabeza-pagina p{color:rgba(255,255,255,.72);max-width:62ch}
.cabeza-pagina .btn{margin-top:22px}

.migas{display:flex;align-items:center;gap:9px;font-size:14.5px;margin-bottom:16px;color:rgba(255,255,255,.6)}
.migas a{color:var(--cyan)}
.migas a:hover{text-decoration:underline}

.paginas{display:flex;justify-content:center;gap:8px;margin-top:40px;flex-wrap:wrap}
.paginas__n{
  display:grid;place-items:center;min-width:42px;height:42px;padding:0 12px;
  border-radius:999px;font-weight:700;font-size:15px;
  background:var(--tono);color:var(--navy);
  transition:background-color .25s,color .25s;
}
.paginas__n:hover{background:var(--cyan);color:#06263a}
.paginas__n.es-activa{background:var(--navy);color:#fff}

.video-tarjeta--ancha{width:100%;margin-bottom:34px}
.video-tarjeta--ancha img{aspect-ratio:16/7}
.video-tarjeta--ancha .video-tarjeta__texto strong{font-size:1.25rem}
.seccion--oscura .videos__sub:first-child{margin-top:0}

/* ==========================================================================
   Animación de entrada
   ========================================================================== */
.reveal>*{opacity:0;transform:translateY(22px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal.es-visible>*{opacity:1;transform:none}
.reveal.es-visible>*:nth-child(2){transition-delay:.09s}
.reveal.es-visible>*:nth-child(3){transition-delay:.18s}
.reveal.es-visible>*:nth-child(4){transition-delay:.27s}

/* ==========================================================================
   Adaptable
   ========================================================================== */
/* Con el botón de registro el menú completo ya no cabe bajo esta anchura:
   pasa a la hamburguesa antes que el resto del diseño. */
@media (max-width:1080px){
  .hamb{display:block}
  .cabecera__in{min-height:72px}
  .nav{
    position:absolute;left:0;right:0;top:100%;background:#fff;
    border-bottom:1px solid var(--linea);box-shadow:var(--sombra);
    max-height:0;overflow:hidden;transition:max-height .35s var(--ease);
  }
  .nav.es-abierto{max-height:640px}
  .nav ul{flex-direction:column;align-items:stretch;gap:0;padding:12px 16px 20px}
  .nav a{padding:13px 12px;border-radius:10px}
  .nav a.es-activo::after{display:none}
  .nav a.es-activo{background:var(--tono)}
  .nav__cta{margin:10px 0 0;justify-content:center}
}

@media (max-width:1080px){
  /* Por debajo de esta anchura el contenido llega al borde derecho y las
     pastillas flotantes se montan encima. Las redes pasan al pie. */
  .redes-flot{display:none}
  .pie__redes{display:flex;justify-content:center;margin-top:20px}
  .hero__grid{grid-template-columns:1fr;gap:38px}
  .hero__media{max-width:520px}
  .hero__circuito{display:none}
  .albumes{grid-template-columns:repeat(2,1fr)}
  .album--ancho{grid-column:span 2}
  .shorts{grid-template-columns:repeat(2,1fr)}
  .videos-portada{grid-template-columns:1fr}
  .videos-portada__capsulas .short{min-height:0;aspect-ratio:9/12}
  .video-fila{grid-template-columns:1fr;align-items:start}
  .equipo{grid-template-columns:1fr}
  .contacto{grid-template-columns:1fr}
}

@media (max-width:920px){
  html{scroll-padding-top:80px}
  /* Cuatro columnas no caben: la marca arriba y los enlaces debajo. */
  .pie__rejilla{grid-template-columns:repeat(3,1fr);gap:30px}
  .pie__marca{grid-column:1/-1;max-width:none}
  .pie__lema{max-width:52ch}
  .noticias{grid-template-columns:1fr}
  .noticias-mas{grid-template-columns:repeat(2,1fr)}
  .videos{grid-template-columns:1fr}
  .ejes{grid-template-columns:1fr}
  .persona{grid-template-columns:170px 1fr;gap:26px;padding:26px}
  .cintillo__vuelta{display:none}
  .cintillo__sep{display:none}
}

@media (max-width:640px){
  body{font-size:16px}
  .contenedor{padding:0 18px}
  .hero{padding:56px 0 76px;min-height:auto}
  .hero__paneles{min-height:300px}
  .registro__red{width:44%;opacity:.45}
  .hero__botones .btn{flex:1 1 auto}
  .seccion__cabeza{flex-direction:column;align-items:flex-start;gap:16px}
  .seccion__cabeza h2{max-width:none}
  .albumes{grid-template-columns:1fr;gap:16px}
  .album,.album--ancho{aspect-ratio:16/10;grid-column:span 1}
  .shorts{grid-template-columns:repeat(2,1fr);gap:14px}
  .videos-portada{grid-template-columns:1fr;gap:16px}
  .videos-portada__capsulas .short{aspect-ratio:9/16;min-height:0}
  .short .video-tarjeta__play{top:32%;width:46px;height:46px}
  .short__texto{padding:14px;font-size:13.5px}
  .videos-portada.es-solo-capsulas .videos-portada__capsulas{grid-template-columns:repeat(2,1fr)}
  .videos-portada__resto{grid-template-columns:1fr;gap:12px}
  .video-fila{grid-template-columns:112px minmax(0,1fr);gap:14px;padding:10px}
  .noticias__col .noticia{grid-template-columns:1fr}
  .noticias__col .noticia__foto img{min-height:0;aspect-ratio:16/9}
  .noticia--destacada h3{font-size:1.3rem}
  .noticia--destacada .noticia__cuerpo{padding:24px}
  .persona{grid-template-columns:1fr;text-align:left}
  .persona__foto{max-width:200px}
  .contacto__datos{grid-template-columns:1fr;padding:28px}
  /* ---------- Pie en móvil ---------- */
  .pie__rejilla{
    grid-template-columns:1fr 1fr;
    gap:26px 18px;
    padding-top:40px;padding-bottom:26px;
  }

  .pie__marca{grid-column:1/-1;text-align:center}
  /* El reset global pone las imágenes en display:block, así que el
     text-align del padre no las centra: hacen falta márgenes automáticos. */
  .pie__logo{height:44px;margin-left:auto;margin-right:auto}
  .pie__lema{margin:16px auto 20px;max-width:34ch}
  .pie__ubo img{height:60px;opacity:.95;margin-left:auto;margin-right:auto}

  .pie__col h4{font-size:.74rem;margin-bottom:12px}
  .pie__col li+li{margin-top:9px}

  /* Los datos de contacto, a lo ancho, centrados y tras una línea. */
  .pie__datos{
    grid-column:1/-1;
    padding-top:24px;margin-top:2px;
    border-top:1px solid rgba(255,255,255,.1);
    text-align:center;
  }
  .pie__datos p{max-width:32ch;margin-left:auto;margin-right:auto}
  .pie__correo{margin-top:16px;justify-content:center}

  /* La barra inferior se apila, y deja sitio al botón de volver arriba. */
  .pie__base-in{
    flex-direction:column;align-items:center;text-align:center;gap:7px;
    padding-top:18px;padding-bottom:76px;
  }
  .visor{grid-template-columns:1fr;grid-template-rows:auto 1fr auto;padding:16px}
  .visor__marco{grid-row:2;grid-column:1}
  .visor__marco img{max-height:calc(100vh - 260px)}
  .visor__nav{grid-row:3;width:48px;height:48px;align-self:center}
  .visor__nav--prev{grid-column:1;justify-self:start;margin-bottom:6px}
  .visor__nav--next{grid-column:1;justify-self:end;margin-bottom:6px}
  .visor__tiras{display:none}
  .arriba{right:14px;bottom:14px}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}
  .reveal>*{opacity:1;transform:none}
  .hero__fondo{transform:none}
}

/* ==========================================================================
   Ajustes propios de WordPress
   Solo lo que hace falta para convivir con la barra de administración y con
   los restos de marcado que el núcleo imprime en la página.
   ========================================================================== */

/* La barra de administración es fija: la cabecera pegajosa baja lo mismo. */
body.admin-bar .cabecera{top:32px}
body.admin-bar{--barra-admin:32px}
@media (max-width:782px){
  body.admin-bar .cabecera{top:46px}
  body.admin-bar{--barra-admin:46px}
}
body.admin-bar .visor,
body.admin-bar .modal-video{top:var(--barra-admin,0)}

/* WordPress mete #wpadminbar al final: que no altere el flujo de la página. */
#wpadminbar{box-sizing:content-box}

/* Por si algún plugin deja su contenedor vacío colgando entre secciones. */
.sapia-cuerpo > p:empty{display:none}
