/* ==========================================================================
   IA ESTRATÉGICA · web pública (iaestrategica.es) · 16/09/2026
   --------------------------------------------------------------------------
   Portada: tres diapositivas que rotan C → B → A → C…, 6 segundos cada una,
   con fundido. Decidido por José en WEB_IA_01 a partir de las tres maquetas
   de 10_MAQUETAS_HOME. Cada diapositiva repite su animación al aparecer.
   Colores del manual oficial: negro #000000 y rojo #FF0000.
   Letra: Montserrat (licencia OFL), servida desde esta web, sin Google.
   ========================================================================== */

@font-face{
  font-family:"Montserrat";
  font-style:normal;
  font-weight:100 900;
  font-display:swap;
  src:url("../fuentes/montserrat-latin.woff2") format("woff2");
}

:root{
  --negro:#000000;
  --rojo:#FF0000;
  --blanco:#FFFFFF;
  --fuente:"Montserrat",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --curva:cubic-bezier(.2,.7,.2,1);
  --curva-traza:cubic-bezier(.65,0,.35,1);
  --margen:clamp(20px,4.5vw,72px);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font-family:var(--fuente);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;
  background:#000;color:#fff}
body.tono-claro{background:#fff}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
a:focus-visible,button:focus-visible{outline:2px solid var(--rojo);outline-offset:4px}

@keyframes aparece{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes funde{from{opacity:0}to{opacity:1}}
@keyframes traza{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes sube{from{transform:translateY(105%)}to{transform:none}}
@keyframes crece{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes revela{0%{clip-path:inset(0 100% 0 0)}38%{clip-path:inset(0 60% 0 0)}100%{clip-path:inset(0 0 0 0)}}
@keyframes abre{from{opacity:0;letter-spacing:1.5em;padding-left:1.5em}to{opacity:1;letter-spacing:.72em;padding-left:.72em}}
@keyframes acerca{from{transform:scale(1.08)}to{transform:scale(1)}}
@keyframes progreso{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* ==========================================================================
   LA PORTADA
   ========================================================================== */

.portada{position:relative;height:100vh;height:100svh;min-height:540px;overflow:hidden;background:#000}

/* Las tres diapositivas, una encima de otra. La activa, delante y visible. */
.diapo{position:absolute;inset:0;overflow:hidden;opacity:0;visibility:hidden;z-index:1;
  transition:opacity .9s ease,visibility 0s linear .9s}
.diapo.es-activa{opacity:1;visibility:visible;z-index:2;transition:opacity .9s ease,visibility 0s}

/* Las líneas del titular suben desde debajo de su propia caja */
.linea{display:block;overflow:hidden;padding-bottom:.03em}
.linea>span{display:block}

/* --------------------------------------------------------------------------
   C · Del caos al control — la maraña y la flecha oficiales en grande, sobre negro
   -------------------------------------------------------------------------- */
.diapo-c{background:#000;color:#fff;display:flex;flex-direction:column;
  padding:clamp(24px,4.5vh,44px) var(--margen) clamp(70px,11vh,104px)}
.c-cabecera img{width:clamp(150px,12vw,210px)}
.c-lienzo{position:relative;width:100%;aspect-ratio:2400/783;margin:auto 0;container-type:inline-size}
.c-grafico{position:absolute;inset:0}
.c-grafico img{width:100%;height:100%}
.c-titular{position:absolute;left:41.5%;right:0;bottom:39%;font-weight:900;text-transform:uppercase;
  font-size:10.4cqw;line-height:.86;letter-spacing:-.02em}
.c-pie{position:absolute;left:41.5%;right:1.6%;top:74%;display:flex;justify-content:space-between;align-items:flex-start;gap:6%}
.c-subtitulo{font-size:clamp(15px,1.5cqw,22px);line-height:1.45;font-weight:400;color:rgba(255,255,255,.8);max-width:27ch}
.c-contacto{flex:none;position:relative;display:inline-block;padding:4px 0 12px;font-weight:700;font-size:clamp(11px,.98cqw,14px);
  letter-spacing:.28em;text-transform:uppercase;text-decoration:none;color:#fff;transition:color .2s}
.c-contacto::after{content:"";position:absolute;left:0;right:.28em;bottom:0;height:2px;background:var(--rojo);transform-origin:left}
.c-contacto:hover,.c-contacto:focus-visible{color:var(--rojo)}

.es-activa .c-cabecera img{animation:funde 1s ease-out both}
.es-activa .c-grafico{animation:revela 2.2s var(--curva-traza) .1s both}
.es-activa .c-titular .linea:nth-child(1)>span{animation:sube .9s var(--curva) .5s both}
.es-activa .c-titular .linea:nth-child(2)>span{animation:sube .9s var(--curva) .62s both}
.es-activa .c-subtitulo{animation:aparece .8s var(--curva) 1.7s both}
.es-activa .c-contacto{animation:aparece .8s var(--curva) 1.9s both}
.es-activa .c-contacto::after{animation:crece .7s var(--curva-traza) 2.3s both}

/* --------------------------------------------------------------------------
   B · La reina roja — foto a pantalla completa, texto a la izquierda
   -------------------------------------------------------------------------- */
.diapo-b{background:#cfcfd0;color:#000;display:flex;flex-direction:column;isolation:isolate;
  padding:clamp(24px,4.5vh,44px) clamp(20px,5.5vw,88px) clamp(70px,11vh,110px)}
.b-imagen{position:absolute;inset:0;z-index:-2;background:#cfcfd0 url("../img/ajedrez.webp") 72% 50%/cover no-repeat}
.b-velo{position:absolute;inset:0;z-index:-1;
  background:linear-gradient(90deg,rgba(212,212,213,.94) 0%,rgba(212,212,213,.8) 30%,rgba(212,212,213,0) 58%)}
.b-cabecera img{width:clamp(170px,14vw,240px)}
.b-texto{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;
  max-width:min(54vw,780px);padding-top:clamp(12px,3vh,40px)}
.b-titular{font-weight:800;text-transform:uppercase;font-size:clamp(46px,min(7vw,13vh),118px);line-height:.9;letter-spacing:-.015em}
.b-titular::before{content:"";display:block;width:clamp(56px,5.5vw,88px);height:clamp(4px,.42vw,6px);background:var(--rojo);
  margin-bottom:clamp(18px,2.2vw,30px);transform-origin:left}
.b-subtitulo{margin-top:clamp(18px,2.4vw,32px);font-weight:500;font-size:clamp(17px,1.55vw,23px);line-height:1.45;color:#1b1b1b;max-width:25ch}
.b-contacto{margin-top:clamp(24px,3.4vw,44px);display:inline-block;background:#000;color:#fff;text-decoration:none;font-weight:600;
  font-size:clamp(11px,.86vw,13px);letter-spacing:.24em;text-transform:uppercase;padding:20px 30px 20px calc(30px + .24em);
  transition:background-color .25s}
.b-contacto:hover,.b-contacto:focus-visible{background:var(--rojo)}

.es-activa .b-imagen{animation:acerca 7s cubic-bezier(.2,.6,.2,1) both}
.es-activa .b-cabecera img{animation:funde 1s ease-out both}
.es-activa .b-titular::before{animation:traza .8s var(--curva-traza) .15s both}
.es-activa .b-titular .linea:nth-child(1)>span{animation:sube .9s var(--curva) .3s both}
.es-activa .b-titular .linea:nth-child(2)>span{animation:sube .9s var(--curva) .42s both}
.es-activa .b-subtitulo{animation:aparece .8s var(--curva) .8s both}
.es-activa .b-contacto{animation:aparece .8s var(--curva) 1s both}

/* --------------------------------------------------------------------------
   A · Solo marca y texto — sobre blanco
   -------------------------------------------------------------------------- */
.diapo-a{background:#fff;color:#000;display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:clamp(30px,6vh,72px) var(--margen) clamp(76px,12vh,110px)}
.a-marca img{width:clamp(200px,min(23vw,34vh),360px)}
.a-centro{display:flex;flex-direction:column;align-items:center;text-align:center;padding-top:clamp(28px,7vh,100px)}
.a-bloque-titular{display:flex;flex-direction:column;align-items:center}
.a-titular{display:flex;flex-direction:column;align-items:center;text-transform:uppercase;font-weight:900}
.a-antes{display:block;font-weight:500;font-size:clamp(13px,1.45vw,21px);letter-spacing:.72em;padding-left:.72em}
.a-palabra{display:block;font-size:clamp(60px,min(12.4vw,21vh),196px);line-height:.84;letter-spacing:-.02em;margin-top:.12em}
/* La flecha mide lo que mide «CONTROL»: no empuja el ancho, lo copia */
.a-flecha{align-self:stretch;width:0;min-width:100%;margin-top:clamp(10px,1.4vw,20px)}
.a-flecha img{width:100%}
.a-subtitulo{margin-top:clamp(22px,3.8vh,44px);font-weight:400;font-size:clamp(16px,1.45vw,21px);line-height:1.55;color:#2e2e2e;max-width:31ch}
.a-contacto{position:relative;margin-top:clamp(20px,4vh,46px);display:inline-block;padding:10px 0 14px .3em;font-weight:600;
  font-size:clamp(11px,.92vw,13px);letter-spacing:.3em;text-transform:uppercase;text-decoration:none;color:#000;transition:color .2s}
.a-contacto::after{content:"";position:absolute;left:.3em;right:.3em;bottom:0;height:2px;background:var(--rojo);transform-origin:left}
.a-contacto:hover,.a-contacto:focus-visible{color:var(--rojo)}

.es-activa .a-marca img{animation:aparece .8s var(--curva) both}
.es-activa .a-antes{animation:abre 1.3s var(--curva) .15s both}
.es-activa .a-palabra{animation:aparece .9s var(--curva) .35s both}
.es-activa .a-flecha{animation:traza 1.1s var(--curva-traza) .8s both}
.es-activa .a-subtitulo{animation:aparece .8s var(--curva) 1.4s both}
.es-activa .a-contacto{animation:aparece .8s var(--curva) 1.6s both}
.es-activa .a-contacto::after{animation:crece .7s var(--curva-traza) 2s both}

/* --------------------------------------------------------------------------
   Los mandos: una rayita por diapositiva (se va llenando) y la pausa
   -------------------------------------------------------------------------- */
.mandos{display:none;position:absolute;left:50%;bottom:clamp(18px,3vh,28px);transform:translateX(-50%);z-index:5;
  align-items:center;gap:10px;color:#fff;transition:color .6s}
.con-js .mandos{display:flex}
.tono-claro .mandos{color:#000}
.mandos__punto{appearance:none;border:0;background:none;cursor:pointer;width:44px;padding:14px 0;color:inherit}
.mandos__punto span{position:relative;display:block;height:3px;overflow:hidden;background:rgba(255,255,255,.3)}
.tono-claro .mandos__punto span{background:rgba(0,0,0,.2)}
.mandos__punto span::after{content:"";position:absolute;inset:0;background:currentColor;transform:scaleX(0);transform-origin:left}
.mandos__punto.es-activo span{background:rgba(255,255,255,.5)}
.tono-claro .mandos__punto.es-activo span{background:rgba(0,0,0,.35)}
.mandos__punto.es-activo span::after{animation:progreso 6s linear both}
.en-pausa .mandos__punto.es-activo span::after{animation-play-state:paused}
.mandos__pausa{appearance:none;border:0;background:none;cursor:pointer;position:relative;width:34px;height:34px;margin-left:2px;color:inherit}
.mandos__pausa::before,.mandos__pausa::after{content:"";position:absolute;top:11px;width:3px;height:12px;background:currentColor}
.mandos__pausa::before{left:12px}
.mandos__pausa::after{left:19px}
.mandos__pausa[aria-pressed="true"]::before{left:13px;top:10px;width:0;height:0;background:none;border-style:solid;
  border-width:7px 0 7px 11px;border-color:transparent transparent transparent currentColor}
.mandos__pausa[aria-pressed="true"]::after{display:none}

/* El pie legal, discreto, del color de la diapositiva que se ve */
.pie-legal{position:fixed;left:var(--margen);bottom:clamp(20px,3.2vh,30px);z-index:6;display:flex;align-items:center;gap:8px;
  font-size:11px;letter-spacing:.06em;color:rgba(255,255,255,.62);transition:color .6s}
.tono-claro .pie-legal{color:rgba(0,0,0,.55)}
.pie-legal a{text-decoration:none;padding:8px 0}
.pie-legal a:hover,.pie-legal a:focus-visible{color:var(--rojo)}

/* ==========================================================================
   EN EL MÓVIL
   ========================================================================== */
@media (max-width:760px){
  .diapo-c{padding:22px 18px 112px}
  .c-lienzo{aspect-ratio:auto;container-type:normal;margin:auto 0;display:flex;flex-direction:column}
  .c-grafico{position:relative;inset:auto;width:172%;margin-left:-5%;aspect-ratio:2400/783}
  .c-titular{position:static;font-size:min(16vw,9vh);margin-top:4vh}
  .c-pie{position:static;flex-direction:column;gap:22px;margin-top:20px}
  .c-subtitulo{font-size:17px;max-width:none}
  .c-contacto{font-size:12px;letter-spacing:.2em}

  .diapo-b{padding:24px 20px 112px;background:linear-gradient(#d3d3d4,#c5c5c7 62%)}
  .b-imagen{top:auto;height:46%;background:url("../img/ajedrez-movil.webp") 50% 100%/cover no-repeat;
    -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 34%);mask-image:linear-gradient(to bottom,transparent 0,#000 34%)}
  .b-velo{display:none}
  .b-texto{flex:none;max-width:none;justify-content:flex-start;padding-top:clamp(24px,5vh,56px)}
  .b-titular{font-size:clamp(42px,min(14.5vw,8vh),72px)}
  .b-contacto{letter-spacing:.16em;padding:18px 20px 18px calc(20px + .16em)}

  .diapo-a{padding:24px 18px 112px}
  .a-contacto{letter-spacing:.2em;padding-left:.2em}
  .a-contacto::after{left:.2em;right:.2em}

  .mandos{bottom:44px}
  .pie-legal{left:50%;transform:translateX(-50%);bottom:12px;white-space:nowrap}
}

/* ==========================================================================
   LAS PÁGINAS LEGALES
   ========================================================================== */
.pagina-legal{background:#fff;color:#161616}
.legal-cabecera{padding:26px var(--margen);border-bottom:1px solid #ececec}
.legal-cabecera img{width:190px}
.legal{max-width:760px;margin:0 auto;padding:56px 20px 72px;font-size:17px;line-height:1.7}
.legal h1{font-size:clamp(28px,4.2vw,40px);line-height:1.15;font-weight:800;letter-spacing:-.01em;color:#000}
.legal-fecha{margin-top:10px;font-size:14px;color:#767676}
.legal-resumen{margin-top:26px;padding:18px 20px;border-left:3px solid var(--rojo);background:#f6f6f6}
.legal h2{margin:42px 0 8px;font-size:20px;line-height:1.3;font-weight:700;color:#000}
.legal p,.legal ul{margin-top:12px}
.legal ul{padding-left:1.25em}
.legal li{margin-top:6px}
.legal a{color:#000;text-decoration-color:var(--rojo);text-underline-offset:3px}
.legal a:hover{color:var(--rojo)}
.legal-pie{display:flex;flex-wrap:wrap;gap:10px 18px;padding:24px var(--margen) 96px;border-top:1px solid #ececec;font-size:13px;color:#555}
.legal-pie a{text-decoration:none}
.legal-pie a:hover,.legal-pie a:focus-visible{color:var(--rojo)}

/* La página que no existe */
.pagina-404{background:#fff;color:#000;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:34px;padding:40px 20px;text-align:center}
.pagina-404 img{width:clamp(200px,24vw,320px)}
.pagina-404 h1{font-size:clamp(26px,3.6vw,40px);font-weight:800;text-transform:uppercase;letter-spacing:.02em}
.pagina-404 a{font-weight:600;font-size:13px;letter-spacing:.24em;text-transform:uppercase;text-decoration:none;
  padding-bottom:10px;border-bottom:2px solid var(--rojo)}
.pagina-404 a:hover{color:var(--rojo)}

/* ==========================================================================
   Revisión (?captura) y quien pide menos movimiento: todo quieto, en su estado final
   ========================================================================== */
.captura *,.captura *::before,.captura *::after{animation:none!important;transition:none!important}
/* ?limpia: sin mandos, sin pie y sin burbuja (para sacar la imagen que se ve al compartir la web) */
.limpia .mandos,.limpia .con-js .mandos,.limpia .pie-legal,.limpia #pbc-contacto{display:none!important}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
}
