/* =====================================================================
 Los seis colores salen del logo de ASOCANAVEN. No hay ninguno más.
   ===================================================================== */
:root{
  --marino:#013B79; --azul:#076EA1; --cian:#3FB8C2;
  --verde:#5DA34A;  --oro:#D6A046;  --crema:#FBDBA8;
  --hondo:#012143;                       /* marino más oscuro, para el fondo */
  --tinta:#0B1B2B;  --gris:#556675; --linea:#E1E8EF;
  --nata:#FDF8EE;                        /* el crema, rebajado para fondos */
  --hielo:#EDF5FA;                       /* el cian, rebajado */
  --r:20px;
  --sombra:0 14px 40px -16px rgba(1,59,121,.24);
  --sombra-alta:0 30px 70px -26px rgba(1,33,67,.55);
  --fuente:"Segoe UI",-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;
}

/* El tamaño de TODO el texto cuelga de aquí: por eso el botón de
 agrandar letra funciona en la página entera y no solo en un trozo. */
html{font-size:16px}
html.letra-g{font-size:18px}
html.letra-x{font-size:20px}

*{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--fuente);color:var(--tinta);background:#fff;
 font-size:1.0625rem;line-height:1.68;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit}
.env{width:min(1180px,100% - 40px);margin-inline:auto}

/* ---------------------------------------------------------------------
 APARECER AL ENTRAR
 Sólo con JavaScript (html.js). Sin él no se esconde nada: la página
 se ve entera, que es lo que leen Google y los asistentes de IA.
 Y es UNA sola vez, 0,45 s. Nada se mueve solo.
   --------------------------------------------------------------------- */
html.js .entra{opacity:0;transform:translateY(12px)}
html.js .entra.dentro{opacity:1;transform:none;
 transition:opacity .45s ease-out, transform .45s ease-out}

/* ---------- barra ---------- */
.barra{position:fixed;inset:0 0 auto;z-index:60;padding:14px 0;
 background:transparent;transition:background .3s, box-shadow .3s, padding .3s}
.barra.pegada{background:rgba(255,255,255,.96);backdrop-filter:blur(12px);
 box-shadow:0 1px 0 var(--linea);padding:9px 0}
.barra .env{display:flex;align-items:center;gap:16px}
.marca{display:flex;align-items:center;gap:11px;text-decoration:none;font-weight:800;
 letter-spacing:-.02em;font-size:1.22rem;color:#fff;transition:color .3s}
.barra.pegada .marca{color:var(--marino)}
/* El logo es el puente, y es APAISADO (560x203). Metido en una caja
 cuadrada se dibujaba a un tercio de su tamaño: por eso se veía
 diminuto. Se le manda la ALTURA y el ancho sale solo. */
.marca img{height:48px;width:auto;object-fit:contain;
 filter:drop-shadow(0 2px 7px rgba(0,0,0,.45));transition:filter .3s,height .3s}
.barra.pegada .marca img{filter:none}
/* al pegarse la barra se encoge un poco, para no comerse la pantalla */
.barra.pegada .marca img{height:40px}
.menu{margin-left:auto;display:flex;align-items:center;gap:24px}
.menu a{text-decoration:none;font-weight:600;font-size:.95rem;color:rgba(255,255,255,.9);
 transition:color .3s}
.barra.pegada .menu a{color:var(--gris)}
.barra.pegada .menu a:hover{color:var(--marino)}

/* el botón de agrandar la letra: para quien lo necesita, es lo que más vale */
.letra-btn{display:flex;align-items:center;gap:7px;border:1.5px solid rgba(255,255,255,.4);
 background:rgba(255,255,255,.12);color:#fff;cursor:pointer;font:inherit;font-weight:800;
 padding:7px 14px;border-radius:999px;font-size:.88rem;transition:background .2s,border-color .2s,color .3s}
.letra-btn:hover{background:rgba(255,255,255,.24)}
.barra.pegada .letra-btn{border-color:var(--linea);background:var(--hielo);color:var(--marino)}
.letra-btn span{font-size:1rem;line-height:1;min-width:2.1em;text-align:center}

/* ---------- hero ---------- */
/* Cuatro capas, todas quietas: la foto, el velo de color, la red de los
   31 municipios y el contenido. Así hay profundidad sin que nada se mueva. */
.hero{position:relative;overflow:hidden;color:#fff;padding:94px 0 46px;
 background:var(--hondo)}
/* Seis fotos, una encima de otra. Se van relevando con un fundido
 lento: no es movimiento, es un cambio de imagen, y por eso no marea.
 Cada una trae ya su color del logo, así que el velo de encima es
 oscuro neutro: si fuera azul, se comería el dorado y el verde.
 La primera lleva "ver" puesto en el HTML: sin JavaScript se queda
 esa fija y el hero se ve igual de bien. */
.hero-foto{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
 opacity:0;transition:opacity 1.5s ease-in-out}
.hero-foto.ver{opacity:.92}
/* El velo va de casi opaco donde está el texto (que tiene que leerse) a
 casi transparente a la derecha, donde el asistente ya tapa por sí solo.
 Si fuera parejo, se comería la foto y sus colores. */
.hero-velo{position:absolute;inset:0;background:
 linear-gradient(100deg, rgba(1,13,27,.95) 0%, rgba(1,14,29,.88) 26%,
 rgba(2,20,40,.6) 58%, rgba(2,22,44,.2) 100%)}
.hero .env{position:relative;z-index:2}
.hero-cabeza{max-width:56rem;margin-bottom:26px}
.pildora{display:inline-flex;align-items:center;gap:9px;font-size:.78rem;font-weight:800;
 letter-spacing:.07em;text-transform:uppercase;padding:9px 17px;border-radius:999px;
 background:rgba(63,184,194,.18);border:1px solid rgba(63,184,194,.42);
 color:#CFF3F6;margin-bottom:22px}
.pildora i{width:8px;height:8px;border-radius:50%;background:var(--cian);flex:none}
/* el titular ya se parte solo con el <br>: sin max-width, que lo estrangula */
h1{font-size:clamp(2.3rem,5.4vw,3.85rem);line-height:1.04;letter-spacing:-.035em;
 font-weight:800}
h1 em{font-style:normal;color:var(--crema)}
.bajada{font-size:clamp(1.02rem,1.7vw,1.2rem);color:rgba(255,255,255,.9);margin-top:20px;
 max-width:52rem}
/* tres datos que contestan lo que todo el mundo se pregunta antes de escribir */
.sellos{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px;list-style:none}
.sellos li{display:flex;align-items:center;gap:8px;font-size:.85rem;font-weight:600;
 padding:9px 16px;border-radius:999px;background:rgba(255,255,255,.1);
 border:1px solid rgba(255,255,255,.22);color:rgba(255,255,255,.92)}
.sellos b{color:var(--crema);font-weight:800}
.hero-cuerpo{display:grid;gap:26px;grid-template-columns:minmax(0,1fr) minmax(0,1.04fr);
 align-items:start}

/* ---------- la demostración ---------- */
.demo{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);
 border-radius:var(--r);overflow:hidden}
.demo-cab{display:flex;align-items:center;gap:9px;padding:13px 18px;
 border-bottom:1px solid rgba(255,255,255,.16);font-size:.78rem;font-weight:800;
 letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.8)}
.pantalla{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--hondo)}
/* La carátula: el recuadro del vídeo tenía que enseñar algo, no ser un
 agujero negro. Desaparece en cuanto se pulsa el play. */
.caratula{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* la web publicada lleva un video de verdad en vez de la demostracion */
.pantalla.pantalla-video{aspect-ratio:16/9;background:var(--hondo)}
.pantalla-video video{display:block;width:100%;height:100%;object-fit:contain;background:var(--hondo)}
.pantalla.va .caratula{display:none}
.pantalla.va{background:linear-gradient(162deg,rgba(1,33,67,.92),rgba(7,110,161,.5))}
.escena{position:absolute;inset:0;padding:26px 28px 86px;display:flex;flex-direction:column;
 justify-content:center;gap:12px;opacity:0;pointer-events:none;transition:opacity .4s}
.escena.ver{opacity:1}
.paso-n{display:inline-flex;align-items:center;gap:9px;font-size:.76rem;font-weight:800;
 letter-spacing:.07em;text-transform:uppercase;color:var(--cian)}
.paso-n i{width:23px;height:23px;border-radius:50%;background:var(--cian);color:#012143;
 display:grid;place-items:center;font-style:normal;font-size:.76rem;flex:none}
.escena h3{font-size:clamp(1rem,1.9vw,1.24rem);letter-spacing:-.02em;color:#fff;line-height:1.32}
.tecleo{background:#fff;color:var(--tinta);border-radius:13px;padding:13px 16px;
 font-size:.9rem;line-height:1.5;min-height:4.4em;text-align:left}
.cursor{display:inline-block;width:2px;height:1em;background:var(--marino);vertical-align:-2px}
.resp-demo{background:#fff;color:var(--tinta);border-radius:13px;padding:14px 16px;
 font-size:.87rem;line-height:1.55;text-align:left}
.resp-demo strong{color:var(--marino)}
.resp-demo span{display:block;margin-top:8px;padding-top:8px;border-top:1px dashed var(--linea);
 font-size:.75rem;color:var(--verde);font-weight:800}
.temas{display:flex;flex-wrap:wrap;gap:7px}
.temas b{font-size:.8rem;font-weight:700;padding:6px 12px;border-radius:999px;
 background:rgba(255,255,255,.17);border:1px solid rgba(255,255,255,.26);color:#fff}
.play{position:absolute;inset:0;display:grid;place-items:center;cursor:pointer;border:0;
 z-index:3;transition:background .25s;background:
 linear-gradient(to top, rgba(1,21,44,.9) 0%, rgba(1,21,44,.4) 45%, rgba(1,21,44,.28) 100%)}
.play:hover{background:
 linear-gradient(to top, rgba(1,21,44,.86) 0%, rgba(1,21,44,.26) 45%, rgba(1,21,44,.14) 100%)}
/* el dorado del logo, para lo que se pulsa: hasta ahora era todo azul sobre azul */
.play span{width:78px;height:78px;border-radius:50%;background:var(--oro);display:grid;
 place-items:center;box-shadow:0 14px 38px -8px rgba(0,0,0,.65),
  0 0 0 10px rgba(214,160,70,.18)}
.play span::after{content:"";width:0;height:0;margin-left:6px;
 border-left:23px solid #2A1B00;border-top:15px solid transparent;
 border-bottom:15px solid transparent}
.play small{position:absolute;bottom:24px;font-size:.85rem;font-weight:700;color:#fff;
 text-shadow:0 2px 8px rgba(0,0,0,.6)}
.play.fuera{display:none}
.subtitulo{position:absolute;left:0;right:0;bottom:0;z-index:4;padding:14px 18px;
 background:linear-gradient(transparent,rgba(1,26,54,.94) 42%);font-size:.85rem;
 line-height:1.45;color:#fff;text-align:center;opacity:0;transition:opacity .35s;
 pointer-events:none}
.subtitulo.ver{opacity:1}
.silencio{position:absolute;top:12px;right:12px;z-index:5;width:38px;height:38px;
 border-radius:50%;border:1px solid rgba(255,255,255,.3);cursor:pointer;
 background:rgba(1,33,67,.6);color:#fff;display:none;place-items:center;font-size:.95rem;
 line-height:1}
.silencio.ver{display:grid}
.progreso{height:4px;background:rgba(255,255,255,.18)}
.progreso i{display:block;height:100%;width:0;background:var(--cian);transition:width .4s}
.otra-vez{padding:12px;text-align:center;font-size:.88rem;font-weight:700;
 color:rgba(255,255,255,.9);cursor:pointer;background:none;border:0;font-family:inherit;
 width:100%;display:none}
.otra-vez.ver{display:block}

/* ---------- el asistente ---------- */
.chat{background:#fff;border-radius:var(--r);overflow:hidden;color:var(--tinta);
 display:flex;flex-direction:column;
 box-shadow:var(--sombra-alta), 0 0 0 1px rgba(251,219,168,.3)}
.chat-cab{display:flex;align-items:center;gap:12px;padding:15px 19px;
 background:linear-gradient(100deg,var(--marino),var(--azul));color:#fff}
.chat-cab img{width:36px;height:36px;object-fit:contain;background:#fff;border-radius:50%;padding:3px}
.chat-cab b{display:block;font-size:.98rem;letter-spacing:-.01em}
.chat-cab small{display:flex;align-items:center;gap:6px;font-size:.78rem;opacity:.9}
.chat-cab i{width:7px;height:7px;border-radius:50%;background:#84E6A6;flex:none}
.chat-cuerpo{padding:18px;overflow-y:auto;background:var(--hielo);display:flex;
 flex-direction:column;gap:13px;height:14.2rem}
.burbuja{max-width:92%;padding:14px 17px;border-radius:16px;font-size:.95rem;line-height:1.6}
.burbuja.nueva{animation:entra .34s ease-out both}
@keyframes entra{from{opacity:0;transform:translateY(8px)}}
.de-ellos{background:#fff;border:1px solid var(--linea);border-bottom-left-radius:5px}
.de-mi{background:var(--marino);color:#fff;align-self:flex-end;border-bottom-right-radius:5px}
.burbuja strong{color:var(--marino)}
.de-mi strong{color:#fff}
.burbuja .fuente{display:block;margin-top:10px;padding-top:10px;
 border-top:1px dashed var(--linea);font-size:.79rem;color:var(--gris);line-height:1.5}
.burbuja .fuente strong{color:var(--verde)}
.escribe{display:flex;gap:5px;padding:15px 18px;background:#fff;border:1px solid var(--linea);
 border-radius:16px;border-bottom-left-radius:5px;width:fit-content}
.escribe i{width:7px;height:7px;border-radius:50%;background:var(--cian);animation:bota 1.3s infinite}
.escribe i:nth-child(2){animation-delay:.18s}.escribe i:nth-child(3){animation-delay:.36s}
@keyframes bota{0%,60%,100%{transform:translateY(0);opacity:.45}30%{transform:translateY(-6px);opacity:1}}
.decir{display:flex;align-items:flex-end;gap:10px;padding:14px;background:#fff;
 border-top:1px solid var(--linea)}
.decir textarea{flex:1;font:inherit;font-size:1rem;line-height:1.5;resize:none;
 border:1.5px solid var(--linea);border-radius:14px;padding:12px 15px;color:var(--tinta);
 background:var(--hielo);max-height:7rem;transition:border-color .2s,background .2s}
.decir textarea:focus{outline:0;border-color:var(--cian);background:#fff;
 box-shadow:0 0 0 4px rgba(63,184,194,.18)}
.decir textarea::placeholder{color:#93A6B6}
.enviar{flex:none;width:52px;height:52px;border-radius:50%;border:0;cursor:pointer;
 background:var(--oro);color:#2A1B00;display:grid;place-items:center;
 transition:background .2s;box-shadow:0 8px 20px -8px rgba(214,160,70,.9)}
.enviar:hover{background:#C89235}
.aviso-chat{padding:0 18px 14px;font-size:.76rem;color:var(--gris);background:#fff;line-height:1.5}
.oculto{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---------- las cifras ---------- */
.cifras{background:var(--nata);padding:52px 0;border-bottom:1px solid #F0E6D2}
.cifras .env{display:grid;gap:30px;grid-template-columns:repeat(4,1fr);text-align:center}
.cifras div{position:relative;padding-top:18px}
.cifras div::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);
 width:42px;height:4px;border-radius:99px}
.cifras div:nth-child(1)::before{background:var(--marino)}
.cifras div:nth-child(2)::before{background:var(--cian)}
.cifras div:nth-child(3)::before{background:var(--verde)}
.cifras div:nth-child(4)::before{background:var(--oro)}
.cifras div:nth-child(5)::before{background:var(--azul)}
.cifras b{display:block;font-size:clamp(2.1rem,3.6vw,2.9rem);font-weight:800;
 letter-spacing:-.04em;color:var(--marino);line-height:1.05}
.cifras span{display:block;margin-top:6px;font-size:.86rem;color:var(--gris);line-height:1.4}

/* ---------- secciones ---------- */
section{padding:84px 0}
.hielo{background:var(--hielo)}
.nata{background:var(--nata)}
.rotulo{font-size:.78rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase;
 color:var(--azul);margin-bottom:14px}
h2{font-size:clamp(1.65rem,3.3vw,2.5rem);line-height:1.16;letter-spacing:-.03em;
 font-weight:800;max-width:32rem}
h2.ancho{max-width:42rem}
.parrafo{font-size:1.06rem;color:var(--gris);margin-top:18px;max-width:46rem}

.caja-resumen{background:#fff;border:1px solid var(--linea);border-left:6px solid var(--cian);
 border-radius:var(--r);padding:34px 38px;box-shadow:var(--sombra)}
.caja-resumen h2{font-size:clamp(1.28rem,2.2vw,1.6rem);margin-bottom:16px;max-width:none}
.caja-resumen p{max-width:58rem}
.caja-resumen p + p{margin-top:14px}
.caja-resumen strong{color:var(--marino)}

/* ---------- tarjetas ---------- */
.rejilla{display:grid;gap:22px;grid-template-columns:repeat(auto-fit,minmax(248px,1fr));
 margin-top:44px}
.tarjeta{background:#fff;border:1px solid var(--linea);border-top:5px solid var(--marino);
 border-radius:16px;padding:30px;transition:box-shadow .25s}
.tarjeta:hover{box-shadow:var(--sombra)}
.tarjeta:nth-child(2){border-top-color:var(--verde)}
.tarjeta:nth-child(3){border-top-color:var(--oro)}
.tarjeta:nth-child(4){border-top-color:var(--cian)}
.icono{width:52px;height:52px;border-radius:15px;display:grid;place-items:center;
 margin-bottom:18px;font-size:1.5rem;background:var(--hielo)}
.tarjeta:nth-child(2) .icono{background:#E9F6E6}
.tarjeta:nth-child(3) .icono{background:#FBF2E0}
.tarjeta:nth-child(4) .icono{background:#E2F6F8}
.tarjeta h3{font-size:1.1rem;margin-bottom:9px;letter-spacing:-.02em}
.tarjeta p{font-size:.95rem;color:var(--gris)}
/* ---------- el eslogan de la asociación, junto a la marca ----------
 Es su eslogan de verdad, vectorizado de su propio arte: la letra es
 la misma, no una parecida. Al ser trazo y no imagen hereda el color
 de la barra, así que sirve igual en blanco sobre el hero que en
 marino cuando la barra se pega. */
.eslogan{display:flex;align-items:center;padding-left:14px;margin-left:3px;
 border-left:1.5px solid rgba(255,255,255,.34)}
.barra.pegada .eslogan{border-left-color:var(--linea)}
.eslogan svg{display:block;width:auto;height:21px;transition:height .3s}
.barra.pegada .eslogan svg{height:18px}
/* Por debajo de 1120px la barra se queda sin sitio: el menú manda. */
@media(max-width:1120px){.eslogan{display:none}}

/* Los iconos de "Qué hacemos" son dibujo propio, no emojis del sistema. */
.icono svg{display:block;width:30px;height:30px}
.art{display:inline-block;margin-top:15px;font-size:.76rem;font-weight:800;color:var(--azul);
 background:var(--hielo);padding:5px 12px;border-radius:999px}

/* ---------- la gente ---------- */
.gente{display:grid;gap:18px;grid-template-columns:repeat(3,1fr);margin-top:46px}
.gente figure{position:relative;border-radius:16px;overflow:hidden;box-shadow:var(--sombra)}
.gente img{width:100%;height:230px;object-fit:cover}
.gente figcaption{position:absolute;left:0;right:0;bottom:0;padding:26px 18px 14px;
 background:linear-gradient(transparent,rgba(1,33,67,.9));color:#fff;
 font-size:.88rem;font-weight:700;line-height:1.35}

/* ---------- los pasos ---------- */
.pasos{display:grid;gap:22px;grid-template-columns:repeat(auto-fit,minmax(252px,1fr));
 margin-top:46px;counter-reset:n}
.paso{background:#fff;border:1px solid var(--linea);border-radius:16px;padding:30px;
 position:relative}
.paso::before{counter-increment:n;content:counter(n);position:absolute;top:-19px;left:28px;
 width:42px;height:42px;border-radius:50%;background:var(--marino);color:#fff;
 display:grid;place-items:center;font-weight:800;font-size:1.05rem;
 box-shadow:0 8px 18px -8px rgba(1,59,121,.8)}
.paso:nth-child(2)::before{background:var(--azul)}
.paso:nth-child(3)::before{background:var(--verde)}
.paso h3{font-size:1.08rem;margin:14px 0 9px;letter-spacing:-.02em}
.paso p{font-size:.95rem;color:var(--gris)}

/* ---------- de dónde sale ---------- */
.fuente-sec{background:linear-gradient(150deg,var(--hondo),var(--marino) 65%,#05558A);
 color:#fff}
.fuente-sec .rotulo{color:var(--cian)}
.fuente-sec .parrafo{color:rgba(255,255,255,.85)}
.app-fila{display:grid;gap:52px;grid-template-columns:minmax(0,1fr) minmax(0,400px);
 align-items:center}
.moviles{display:flex;justify-content:center}
.moviles img{width:200px;border-radius:22px;box-shadow:var(--sombra-alta)}
.moviles img:first-child{transform:rotate(-5deg) translateX(24px);z-index:1}
.moviles img:last-child{transform:rotate(4deg) translateX(-24px)}
.lista{margin-top:30px;display:grid;gap:15px}
.lista li{list-style:none;display:flex;gap:13px;font-size:1rem;color:rgba(255,255,255,.86)}
.lista strong{color:#fff}
.tic{flex:none;width:25px;height:25px;border-radius:50%;background:var(--verde);color:#fff;
 display:grid;place-items:center;font-size:.72rem;font-weight:800;margin-top:4px}

/* ---------- preguntas ---------- */
.faq{max-width:52rem;margin:42px auto 0}
details{background:#fff;border:1px solid var(--linea);border-radius:14px;padding:20px 24px;
 margin-bottom:11px}
details[open]{border-color:var(--cian);box-shadow:var(--sombra)}
summary{cursor:pointer;font-weight:700;font-size:1.02rem;list-style:none;display:flex;
 justify-content:space-between;gap:18px;letter-spacing:-.01em}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";color:var(--azul);font-size:1.4rem;font-weight:400;flex:none;line-height:1}
details[open] summary::after{content:"–"}
details p{margin-top:14px;color:var(--gris);font-size:.98rem}
details strong{color:var(--marino)}

/* ---------- cierre ---------- */
.cierre{position:relative;overflow:hidden;color:#fff;text-align:center;padding:92px 0}
.cierre img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cierre .velo{position:absolute;inset:0;
 background:linear-gradient(120deg,rgba(1,33,67,.88),rgba(7,110,161,.78))}
.cierre .env{position:relative;z-index:2}
.cierre h2{margin-inline:auto;color:#fff}
.cierre .parrafo{color:rgba(255,255,255,.9);margin-inline:auto;text-align:center}
.socio{display:inline-flex;align-items:baseline;gap:10px;margin-top:32px;padding:16px 32px;
 border-radius:16px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28)}
.socio b{font-size:2rem;font-weight:800;color:var(--crema);letter-spacing:-.03em}
.acciones{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px;justify-content:center}
.btn{display:inline-flex;align-items:center;gap:9px;border:0;cursor:pointer;font:inherit;
 font-weight:700;padding:15px 28px;border-radius:999px;text-decoration:none;font-size:1rem;
 transition:background .2s}
/* accesibilidad (30-sep): el verde de marca un punto más oscuro para que la
   letra blanca se lea bien (contraste 4,62; el mínimo es 4,5) */
.btn-verde{background:#4A823B;color:#fff}
.btn-verde:hover{background:#407033}

/* ---------- pie ---------- */
footer{background:var(--hondo);color:rgba(255,255,255,.72);padding:54px 0 30px;font-size:.92rem}
/* Cada columna toma el ancho de SU texto y el sitio que sobra se
 reparte IGUAL entre las tres. Antes eran 1.4fr 1fr 1fr y quedaba
 un hueco de 73 px a un lado y de 198 px al otro. */
.pie-fila{display:grid;grid-template-columns:repeat(3,max-content);
 justify-content:space-between;gap:36px;margin-bottom:34px}
footer h3{color:#fff;font-size:.98rem;margin-bottom:13px;letter-spacing:-.01em}
footer a{color:rgba(255,255,255,.72);text-decoration:none}
footer a:hover{color:var(--crema)}
footer .marca{color:#fff;margin-bottom:13px;font-size:1.1rem}
/* =====================================================================
   ASOCANAVEN · HERO v4 · "EL SISTEMA ESTÁ DESPIERTO"
   ---------------------------------------------------------------------
   Antonio, del v3: "¿cuántos ejemplos de hero tienes? Como para que me
   metas una cuadrícula con puntico sobre las imágenes. Destácate con el
   puto hero y haz una vaina verdaderamente impactante."

   Tenía razón otra vez. Una textura encima de una foto no es un hero:
   es una foto ensuciada. Fuera la cuadrícula.

   LO QUE HACE ESTE, Y POR QUÉ:

   El hero no tiene que enseñar una foto bonita. Tiene que enseñar LO
   QUE ESTA ASOCIACIÓN TIENE Y NADIE MÁS TIENE: un motor que entra solo
   cada noche en los 31 ayuntamientos de Tenerife y se trae lo nuevo.
   Eso no se contaba en ningún sitio. Ahora se VE.

     1 · LA FOTO, A COLOR       — estaba apagada al 92% y con un velo
                                  encima: la gente salía gris. Ahora se
                                  les ve la cara y la ropa.
     2 · EL FOCO DE TEATRO      — un haz de luz que baja en diagonal y
                                  cae sobre el titular. Esto es lo que
                                  se nota desde el otro lado del cuarto.
     3 · EL RADAR               — una cinta con los 31 municipios
                                  desfilando y su visto verde. Es la
                                  prueba, en movimiento, de que el
                                  sistema trabaja.
     4 · EL TITULAR             — más grande, dorado de marca, y entra
                                  por líneas al cargar. Una sola vez.
     5 · CRISTAL Y HALO         — el vídeo y el chat, encendidos.

   Y SIGUE SIN MAREAR:
     · Nada salta ni se desplaza al hacer scroll.
     · El vídeo y el chat NO se mueven ni un píxel de donde estaban.
     · La entrada del titular pasa UNA VEZ, en menos de un segundo.
     · El resto es luz, o va a 18 segundos o más.
     · El radar se para solo si pones el ratón encima.
     · Con "reducir movimiento" activado se apaga TODO.
   ===================================================================== */

/* ---------------------------------------------------------------------
   1 · LA FOTO · que se vea la gente, que para eso están
   El velo se retira hacia la derecha en vez de cubrirlo todo: a la
   izquierda tapa lo justo para que el texto se lea, a la derecha deja
   la foto limpia.
   --------------------------------------------------------------------- */
.hero{ padding:88px 0 0 }
.hero-foto{
  filter:saturate(1.14) contrast(1.05) brightness(1.06);
  transform:scale(1.005); transform-origin:58% 42%;
}
.hero-foto.ver{ opacity:1; animation: acercar 28s linear forwards }
@keyframes acercar{ from{ transform:scale(1.005) } to{ transform:scale(1.05) } }

.hero-velo{
  background:
    linear-gradient(98deg,
      rgba(1,13,27,.96)  0%,
      rgba(1,14,29,.90) 26%,
      rgba(2,20,40,.66) 54%,
      rgba(2,22,44,.20) 80%,
      rgba(2,22,44,0)  100%),
    linear-gradient(to bottom,
      rgba(1,20,40,.55) 0%, transparent 20%,
      transparent 58%, rgba(1,20,40,.80) 100%);
}

/* ---------------------------------------------------------------------
   2 · EL FOCO DE TEATRO
   Un haz de luz que entra por arriba a la izquierda y se abre sobre el
   titular. Está desenfocado a propósito (46px) para que sea luz y no
   una figura con bordes. Y SUMA en vez de tapar: mix-blend-mode screen.
   --------------------------------------------------------------------- */
.hero::before{
  content:"";
  position:absolute; z-index:1; pointer-events:none;
  top:-46%; left:-14%; width:66%; height:190%;
  background:radial-gradient(closest-side,
    rgba(214,235,240,.30) 0%,
    rgba(120,200,215,.13) 46%,
    rgba(63,184,194,.05) 68%,
    transparent 82%);
  transform:rotate(-17deg);
  mix-blend-mode:screen;
  animation: foco 18s ease-in-out infinite alternate;
  will-change:opacity;
}
@keyframes foco{ from{ opacity:.45 } to{ opacity:.85 } }

/* ---------------------------------------------------------------------
   3 · EL COLOR DE LA MARCA, SÓLO POR LOS BORDES
   Aurora de los cuatro colores del logo, pero con una máscara que la
   vacía por el centro: ahí están las caras y no se tocan.
   --------------------------------------------------------------------- */
.hero::after{
  content:"";
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background:
    radial-gradient(34rem 24rem at 99% 10%, rgba(63,184,194,.20), transparent 58%),
    radial-gradient(32rem 22rem at 2% 96%,  rgba(214,160,70,.17), transparent 60%),
    radial-gradient(26rem 20rem at 84% 102%,rgba(93,163,74,.10),  transparent 62%);
  mix-blend-mode:screen;
  -webkit-mask-image:radial-gradient(58% 54% at 60% 44%, transparent 0%, #000 82%);
          mask-image:radial-gradient(58% 54% at 60% 44%, transparent 0%, #000 82%);
  animation: aurora 30s ease-in-out infinite alternate;
  will-change:opacity;
}
@keyframes aurora{ from{ opacity:.50 } to{ opacity:.82 } }

.hero .env{ position:relative; z-index:3 }

/* ---------------------------------------------------------------------
   4 · EL TITULAR
   Más grande, más apretado, y el dorado de la marca de verdad: el
   degradado anterior se iba al cian y quedaba lavado.
   --------------------------------------------------------------------- */
h1{
  font-size:clamp(2.6rem, 6.4vw, 5.1rem);
  line-height:.98; letter-spacing:-.045em; font-weight:800;
  text-wrap:balance;
  text-shadow:0 2px 46px rgba(1,20,40,.6);
}
h1 em{
  font-style:normal;
  background:linear-gradient(96deg, #FBDBA8 0%, #FFD98A 42%, #FFF3DC 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.bajada{ max-width:44rem; color:rgba(255,255,255,.95) }

/* AQUI HABIA una entrada por lineas, y se ha quitado a proposito.
   El titular es lo que Google cronometra al cargar (el LCP): hacerle
   esperar 1,27 s es pagar impacto con velocidad. Y si la animacion
   fallara, el titular se quedaria invisible para siempre. El impacto
   lo dan la luz y el radar, que no tapan nada. */

/* ---------------------------------------------------------------------
   5 · CRISTAL ESMERILADO · píldora, sellos y el recuadro del vídeo
   Valores de la guía: desenfoque 10-20px, blanco al 15-30%, borde 1px
   al 20%.
   --------------------------------------------------------------------- */
.pildora{
  background:linear-gradient(135deg, rgba(63,184,194,.32), rgba(7,110,161,.22));
  border-color:rgba(63,184,194,.62);
  box-shadow:0 0 42px -10px rgba(63,184,194,.8);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
}
.sellos li{
  background:rgba(255,255,255,.10);
  border-color:rgba(255,255,255,.26);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  transition:background .25s ease, border-color .25s ease, transform .25s ease;
}
.sellos li:hover{
  background:rgba(255,255,255,.18);
  border-color:rgba(207,243,246,.55);
  transform:translateY(-2px);
}
.demo{
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.22);
  backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  box-shadow:0 30px 80px -30px rgba(0,0,0,.75),
             inset 0 1px 0 rgba(255,255,255,.14);
}

/* ---------------------------------------------------------------------
   6 · EL CHAT · el borde de luz que lo recorre
   Da la vuelta entera cada 14 segundos. Es lo que hace que la caja
   parezca encendida. Dentro no se toca nada.
   --------------------------------------------------------------------- */
.chat{ position:relative; isolation:isolate }
.chat::before{
  content:"";
  position:absolute; inset:-1.5px;
  border-radius:calc(var(--r) + 1.5px);
  z-index:-1;
  background:conic-gradient(from 0deg,
    transparent 0deg, rgba(63,184,194,.9) 45deg, rgba(251,219,168,.9) 90deg,
    transparent 150deg, transparent 210deg, rgba(7,110,161,.8) 260deg,
    transparent 320deg, transparent 360deg);
  animation: halo 14s linear infinite;
}
@keyframes halo{ to{ transform:rotate(360deg) } }

/* ---------------------------------------------------------------------
   7 · EL RADAR · los 31 municipios desfilando
   La franja que cierra el hero. Los nombres pasan de derecha a
   izquierda a velocidad de letrero de aeropuerto: 96 segundos la vuelta
   entera. Es movimiento CONSTANTE, no un salto, y por eso no marea:
   el ojo lo lee como un letrero, no como algo que se le viene encima.
   Se para solo si le pones el ratón encima, para poder leerlo.
   --------------------------------------------------------------------- */
.radar{
  position:relative; z-index:3;
  margin-top:40px;
  border-top:1px solid rgba(255,255,255,.14);
  background:linear-gradient(to bottom, rgba(1,20,40,.34), rgba(1,20,40,.72));
  backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  display:flex; align-items:center; gap:0;
  overflow:hidden;
}
.radar-rotulo{
  flex:none; display:flex; align-items:center; gap:9px;
  padding:14px 20px; margin:0;
  font-size:.72rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase;
  color:#CFF3F6; white-space:nowrap;
  border-right:1px solid rgba(255,255,255,.14);
  background:rgba(63,184,194,.10);
}
.radar-rotulo i{
  width:8px; height:8px; border-radius:50%; background:#6BE08A; flex:none;
  box-shadow:0 0 0 0 rgba(107,224,138,.7);
  animation: latido 2.6s ease-out infinite;
}
@keyframes latido{
  0%  { box-shadow:0 0 0 0 rgba(107,224,138,.7) }
  70% { box-shadow:0 0 0 9px rgba(107,224,138,0) }
  100%{ box-shadow:0 0 0 0 rgba(107,224,138,0) }
}
.radar-ventana{
  flex:1 1 auto; overflow:hidden; min-width:0;
  -webkit-mask-image:linear-gradient(to right, transparent 0, #000 5%, #000 92%, transparent 100%);
          mask-image:linear-gradient(to right, transparent 0, #000 5%, #000 92%, transparent 100%);
}
.radar-pista{
  display:flex; width:max-content;
  animation: desfilar 96s linear infinite;
  will-change:transform;
}
.radar-ventana:hover .radar-pista{ animation-play-state:paused }
@keyframes desfilar{ from{ transform:translateX(0) } to{ transform:translateX(-50%) } }
.radar-pista span{
  display:flex; align-items:center; gap:7px;
  padding:14px 22px;
  font-size:.83rem; font-weight:600; white-space:nowrap;
  color:rgba(255,255,255,.80);
}
.radar-pista span::before{
  content:"";
  width:13px; height:13px; flex:none; border-radius:50%;
  background:rgba(107,224,138,.16);
  border:1px solid rgba(107,224,138,.5);
  /* el visto, dibujado con dos rayas: sin imagen y sin emoji */
  background-image:
    linear-gradient(45deg, transparent 44%, #6BE08A 44%, #6BE08A 58%, transparent 58%),
    linear-gradient(-45deg, transparent 52%, #6BE08A 52%, #6BE08A 66%, transparent 66%);
  background-size:7px 4px, 5px 6px;
  background-position:2.5px 5px, 5.5px 3px;
  background-repeat:no-repeat;
}

/* ---------------------------------------------------------------------
   8 · LAS FOTOS DE LA GENTE · A SANGRE, sin recuadro
   Antonio: "las fotos no de recuadro". Una franja continua de pared a
   pared, que es como se ven las fotos en una web que impone.
   --------------------------------------------------------------------- */
.gente{
  grid-template-columns:repeat(3,1fr);
  gap:0;
  margin-top:56px;
  width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
}
.gente figure{ border-radius:0; box-shadow:none }
.gente img{ height:clamp(230px, 26vw, 340px) }
.gente figcaption{
  padding:34px 22px 18px;
  background:linear-gradient(transparent, rgba(1,20,40,.88));
  font-size:.95rem;
}

/* ---------------------------------------------------------------------
   9 · EN EL MÓVIL
   --------------------------------------------------------------------- */
@media(max-width:760px){
  .hero{ padding-top:74px }
  .hero::before{ width:130%; left:-25% }
  .radar-rotulo{ padding:12px 14px; font-size:.66rem }
  .radar-pista span{ padding:12px 16px; font-size:.78rem }
  .gente{ grid-template-columns:1fr }
  .gente img{ height:250px }
}

/* ---------------------------------------------------------------------
   10 · QUIEN PIDE MENOS MOVIMIENTO, NO VE NINGUNO
   Regla número uno de accesibilidad en animación. Mucha gente mayor y
   con vértigo lo tiene puesto sin saberlo.
   --------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce){
  .hero::before{ animation:none; opacity:.78 }
  .hero::after { animation:none; opacity:.80 }
  .hero-foto, .hero-foto.ver{ animation:none; transform:none }
  .chat::before{ animation:none }
  .radar-pista{ animation:none }
  .radar-rotulo i{ animation:none }
  .sellos li{ transition:none }
  .sellos li:hover{ transform:none }
}

/* =====================================================================
   ASOCANAVEN · LA PUERTA · el registro para usar el asistente
   ---------------------------------------------------------------------
   Antonio: "la persona, para poder consultar, tiene que registrarse.
   Al intentar comenzar a escribir en el chat inmediatamente le tiene
   que saltar una ventana de registro."

   Está pensada para quien la va a rellenar: gente mayor, gente con el
   móvil en la mano y gente con prisa.
     · Fondo claro, no oscuro: un formulario oscuro no se lee.
     · Campos de 52px de alto y letra de 16px. Por debajo de 16px el
       iPhone hace zoom solo al tocar el campo y descoloca la página.
     · La casilla, de 24px. Las de 13px no se aciertan con el dedo.
     · Cuatro campos y ya. Cada campo de más es gente que se va.
   ===================================================================== */

.puerta{
  position:fixed; inset:0; z-index:9999; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
  padding:20px;
}
.puerta[hidden]{ display:none }
.puerta-fondo{
  position:absolute; inset:0;
  background:rgba(1,20,40,.72);
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  animation: puerta-entra .22s ease-out both;
}
.puerta-caja{
  position:relative;
  /* min-width:0 es OBLIGATORIO aqui: .puerta es flex, y un hijo flex no
     se encoge por debajo de su contenido salvo que se le diga. El
     desplegable de municipios mide lo que "La Victoria de Acentejo", y
     sin esto la ventana se sale de la pantalla en el movil. Medido:
     se cortaba el texto a partir de los 420px de ancho. */
  min-width:0;
  width:min(520px, 100%);
  max-height:calc(100vh - 40px); overflow-y:auto;
  background:#fff; color:var(--tinta);
  border-radius:var(--r);
  box-shadow:0 40px 90px -30px rgba(1,33,67,.7);
  padding:30px 30px 26px;
  animation: puerta-sube .28s cubic-bezier(.22,1,.36,1) both;
}
@keyframes puerta-entra{ from{ opacity:0 } to{ opacity:1 } }
@keyframes puerta-sube{
  from{ opacity:0; transform:translateY(16px) scale(.985) }
  to  { opacity:1; transform:none }
}

.puerta-x{
  position:absolute; top:12px; right:12px;
  width:38px; height:38px; border-radius:50%;
  border:1px solid var(--linea); background:#fff; color:var(--gris);
  font-size:20px; line-height:1; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
}
.puerta-x:hover{ background:var(--hielo); color:var(--marino) }

.puerta-marca{
  display:flex; align-items:center; gap:10px;
  font-size:.72rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase;
  color:var(--azul); margin:0 0 14px;
}
.puerta-marca i{
  width:9px; height:9px; border-radius:50%; background:var(--cian); flex:none;
}
.puerta h2{
  font-size:clamp(1.4rem,3.4vw,1.72rem); line-height:1.15;
  letter-spacing:-.025em; color:var(--marino); margin:0 0 10px;
}
.puerta-sub{
  font-size:.96rem; line-height:1.55; color:var(--gris); margin:0 0 20px;
}

.puerta-campo{ display:block; margin-bottom:14px }
.puerta-campo > span{
  display:block; font-size:.84rem; font-weight:700;
  color:var(--tinta); margin-bottom:6px;
}
.puerta-campo > span em{
  font-style:normal; font-weight:600; color:var(--gris);
}
.puerta-campo input,
.puerta-campo select{
  width:100%; height:52px; padding:0 14px;
  font-family:inherit; font-size:16px; color:var(--tinta);
  background:#fff; border:1.5px solid var(--linea); border-radius:12px;
  transition:border-color .18s ease, box-shadow .18s ease;
}
.puerta-campo select{ padding-right:34px; appearance:none; max-width:100%;
  background-image:linear-gradient(45deg,transparent 50%,var(--gris) 50%),
                   linear-gradient(135deg,var(--gris) 50%,transparent 50%);
  background-size:6px 6px,6px 6px;
  background-position:calc(100% - 18px) 23px, calc(100% - 12px) 23px;
  background-repeat:no-repeat;
}
.puerta-campo input:focus,
.puerta-campo select:focus{
  outline:none; border-color:var(--cian);
  box-shadow:0 0 0 4px rgba(63,184,194,.18);
}
.puerta-campo.mal input,
.puerta-campo.mal select{
  border:2px solid #C2410C; background:#FEF2F2;
  box-shadow:0 0 0 4px rgba(194,65,12,.16);
}
.puerta-campo small{
  display:none; margin-top:6px; font-size:.82rem; color:#C2410C; font-weight:600;
}
.puerta-campo.mal small{ display:block }

/* el campo trampa: invisible para las personas, apetecible para un robot.
   No se usa display:none porque algunos robots ya lo miran. */
.puerta-trampa{
  position:absolute; left:-9999px; width:1px; height:1px;
  overflow:hidden; opacity:0;
}

.puerta-casilla{
  display:flex; gap:12px; align-items:flex-start;
  margin:18px 0 6px; padding:14px;
  background:var(--hielo); border-radius:12px;
  border:1.5px solid transparent;
  cursor:pointer;
}
.puerta-casilla.mal{ border-color:#C2410C }
.puerta-casilla input{
  width:24px; height:24px; flex:none; margin-top:1px;
  accent-color:var(--azul); cursor:pointer;
}
.puerta-casilla span{
  font-size:.87rem; line-height:1.5; color:var(--tinta);
}
.puerta-casilla a{ color:var(--azul); font-weight:700 }

.puerta-enviar{
  width:100%; height:54px; margin-top:16px;
  font-family:inherit; font-size:1.02rem; font-weight:800; color:#fff;
  background:linear-gradient(135deg, var(--azul), var(--marino));
  border:0; border-radius:12px; cursor:pointer;
  box-shadow:0 14px 30px -14px rgba(1,59,121,.8);
  transition:transform .16s ease, box-shadow .16s ease;
}
.puerta-enviar:hover{ transform:translateY(-1px);
  box-shadow:0 18px 36px -14px rgba(1,59,121,.9) }
.puerta-enviar:disabled{ opacity:.6; cursor:wait; transform:none }

.puerta-pie{
  margin:16px 0 0; font-size:.8rem; line-height:1.5; color:var(--gris);
  text-align:center;
}
.puerta-fallo{
  display:none; margin:14px 0 0; padding:12px 14px;
  background:#FEF2F2; border:1.5px solid #FCA5A5; border-radius:10px;
  font-size:.87rem; color:#991B1B; font-weight:600;
}
.puerta-fallo.ver{ display:block }

/* «¿Ya te registraste?» (29-sep): para quien ya se registró en otro
   movil u ordenador. Cambia la ventana a dos casillas: telefono y correo. */
.puerta-ya{
  display:block; width:100%; margin:-4px 0 20px; padding:13px 16px;
  text-align:left; font-family:inherit; cursor:pointer;
  background:var(--hielo); color:var(--marino);
  border:1.5px solid var(--linea); border-radius:12px;
  transition:border-color .18s ease;
}
.puerta-ya:hover, .puerta-ya:focus-visible{ border-color:var(--cian) }
.puerta-ya strong{ display:block; font-size:.93rem; line-height:1.35 }
.puerta-ya span{ display:block; margin-top:3px; font-size:.87rem; font-weight:700; color:var(--azul) }
.puerta-ya[hidden], .puerta form[hidden]{ display:none }
.puerta-volver{
  display:block; width:100%; min-height:44px; margin-top:10px;
  font-family:inherit; font-size:.92rem; font-weight:700; color:var(--azul);
  background:none; border:0; cursor:pointer; text-decoration:underline;
}

@media(max-width:560px){
  .puerta{ padding:0; align-items:flex-end }
  .puerta-caja{
    width:100%; max-height:92vh;
    border-radius:var(--r) var(--r) 0 0;
    padding:26px 20px 22px;
  }
  @keyframes puerta-sube{
    from{ opacity:0; transform:translateY(40px) }
    to  { opacity:1; transform:none }
  }
}

@media (prefers-reduced-motion: reduce){
  .puerta-fondo, .puerta-caja{ animation:none }
  .puerta-enviar:hover{ transform:none }
}

/* ---------- el pie ----------
 El logo, más grande: abajo hay sitio y es donde se despide la marca.
 Y el eslogan DEBAJO, con su letra de verdad, reutilizando el mismo
 trazo de la cabecera con <use> (no pesa dos veces). */
footer{--logo-alto:72px}
footer .marca img{height:var(--logo-alto)}
/* ASOCANAVEN va a 1.814rem porque es el tamaño EXACTO al que mide
 lo mismo que 'Asociación Canario Venezolana.' debajo (200 px).
 Medido con la fuente real, no a ojo. Al ir las dos en rem, la
 proporción se mantiene con el botón de agrandar la letra. */
footer .marca{font-size:1.814rem;gap:16px;align-items:center;margin-bottom:20px}
.pie-nombre{display:block;line-height:1.14}
/* .49606em = 110,33 / 222,41, la razón entre el ancho de
   'ASOCANAVEN' y el de 'Asociación Canario Venezolana.' a un
 mismo tamaño. Al ir en EM, las dos líneas miden lo mismo
 SIEMPRE, se cambie el tamaño del bloque que se cambie. */
.pie-nombre small{display:block;font-size:.49606em;font-weight:400;
 letter-spacing:0;color:rgba(255,255,255,.72);margin-top:.28em}
/* El logo lleva 55 px de aire transparente a cada lado (de 560 de ancho):
 un 27,1% de su alto. Sin compensarlo, el eslogan se sale por la
 izquierda y no cuadra con el dibujo del puente. */
.eslo-pie{margin:0 0 16px;margin-left:calc(var(--logo-alto) * .271)}
.eslo-pie svg{display:block;width:400px;max-width:100%;height:auto;opacity:.93}
@media(max-width:640px){footer{--logo-alto:52px}
 footer .marca{font-size:1.3rem;gap:12px;margin-bottom:16px}
  .eslo-pie svg{width:280px}}
@media(max-width:380px){footer{--logo-alto:46px}
 footer .marca{font-size:1.14rem}
  .eslo-pie svg{width:240px}}
/* El renglón del WhatsApp. Va aquí y no como style= dentro del
 HTML, porque un style suelto obliga a abrir la CSP con
   'unsafe-inline', que es justo por donde entra un XSS. */
.pie-wa{margin-top:10px}
.pie-correo{margin-top:8px;line-height:1.7}
/* Los enlaces legales y los créditos, debajo de la línea del pie.
 El aviso legal tiene que ser "permanente, fácil y gratuito" (LSSI
 art. 10) y el sitio donde la gente lo busca es el pie. */
.legal-enlaces{border-top:0;padding-top:0;margin-top:-8px}
.legal-enlaces a{text-decoration:underline;text-underline-offset:3px}
.legal-enlaces a:hover{color:var(--crema)}
.creditos{margin-top:12px;font-size:.78rem;color:rgba(255,255,255,.48);text-align:center}
.creditos a{color:rgba(255,255,255,.85);text-decoration:underline;text-underline-offset:2px}
.creditos a:hover{color:var(--crema)}
.legal{border-top:1px solid rgba(255,255,255,.15);padding-top:20px;display:flex;
 flex-wrap:wrap;gap:9px 24px;font-size:.8rem;color:rgba(255,255,255,.52);
 justify-content:center;text-align:center}
/* la fila de enlaces va SIN raya encima. Antes se la ponía la regla de arriba
   (va después y pesa lo mismo), y como la fila sube 8 px, la raya se colaba
   entre las dos filas a media anchura. Con las dos clases, manda ésta. */
.legal.legal-enlaces{border-top:0;padding-top:0;margin-top:14px}

/* ---------- móvil ---------- */
@media(max-width:980px){
  .hero-cuerpo{grid-template-columns:1fr;gap:22px}
  .chat{order:1}            /* el asistente primero: es la novedad */
  .demo{order:2}
  .gente{grid-template-columns:1fr 1fr}
  .gente figure:last-child{grid-column:1 / -1}
  .cifras .env{grid-template-columns:repeat(2,1fr);gap:26px}
}
@media(max-width:860px){
  .app-fila{grid-template-columns:1fr}
  .hero{padding:92px 0 48px}
  .hero-cabeza{margin-bottom:24px;max-width:none}
  .chat-cuerpo{height:16rem}
  .pie-fila{grid-template-columns:1fr}
  .menu a{display:none}
  /* en el móvil no caben el nombre entero y el botón: se aprieta */
  .marca{font-size:1.02rem;gap:8px}
  .marca img{height:38px;width:auto}
  .letra-btn{padding:7px 12px}
  .letra-btn b{display:none}
  /* los sellos, apretados: si ocupan tres lineas empujan al asistente */
  .sellos{gap:7px;margin-top:16px}
  .sellos li{font-size:.75rem;padding:6px 11px;gap:5px}
  .bajada{font-size:.98rem;margin-top:14px}
  .moviles img{width:min(44vw,180px)}
 section{padding:62px 0}
  .env{width:min(1180px,100% - 30px)}
  .caja-resumen{padding:26px 22px}
  .gente img{height:190px}
}
@media(max-width:520px){
  .gente{grid-template-columns:1fr}
  .cifras .env{grid-template-columns:1fr 1fr}
}

/* Quien pide en su sistema que no haya movimiento, no lo tiene. */
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
