/* ============================================================
   HEXA-B S.A. DE C.V.
   Estructura inspirada en enkelmexico.com
   Paleta tomada de la presentación oficial:
   negro #0A0A0A · amarillo #E9CA2E · blanco #FAFAF9
   ============================================================ */

/* ---------- 1. Variables ---------- */
:root{
  --negro:      #0A0A0A;
  --negro-2:    #101010;
  --negro-3:    #171717;
  --linea:      #272727;
  --amarillo:   #E9CA2E;
  --amarillo-2: #C9A61E;
  --amarillo-3: #F4DA55;
  --blanco:     #FAFAF9;
  --gris:       #8A8A8A;
  --gris-2:     #BEBEBB;
  --wa:         #25D366;

  --fuente-titulo: 'Montserrat', 'Helvetica Neue', Arial, sans-serif;
  --fuente-texto:  'Inter', 'Helvetica Neue', Arial, sans-serif;

  --ancho: 1240px;
  --header-h: 86px;
  --transicion: .35s cubic-bezier(.4,0,.2,1);
}

/* ---------- 2. Reset ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;scroll-padding-top:var(--header-h);-webkit-text-size-adjust:100%;}
body{
  margin:0;background:var(--negro);color:var(--gris-2);
  font-family:var(--fuente-texto);font-size:1rem;line-height:1.8;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img,svg{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button{font:inherit;cursor:pointer;}
ul{margin:0;padding:0;list-style:none;}
h1,h2,h3,h4{font-family:var(--fuente-titulo);color:var(--blanco);margin:0;line-height:1.1;font-weight:800;}
p{margin:0 0 1.2em;}
p:last-child{margin-bottom:0;}
::selection{background:var(--amarillo);color:var(--negro);}
:focus-visible{outline:2px solid var(--amarillo);outline-offset:3px;}

/* ---------- 3. Utilidades ---------- */
.contenedor{width:100%;max-width:var(--ancho);margin-inline:auto;padding-inline:clamp(20px,5vw,44px);}
.seccion{padding-block:clamp(76px,10vw,132px);position:relative;}
.seccion--alt{background:var(--negro-2);}
.centrado{text-align:center;}

/* Encabezado de sección con guiones, como en la referencia */
.rotulo{
  display:flex;align-items:center;justify-content:center;gap:14px;
  font-family:var(--fuente-titulo);font-size:.72rem;font-weight:700;
  letter-spacing:.32em;text-transform:uppercase;color:var(--amarillo);
  margin-bottom:22px;
}
.rotulo::before,.rotulo::after{content:"";width:38px;height:1px;background:var(--amarillo);opacity:.75;}
.rotulo--izq{justify-content:flex-start;}
.rotulo--izq::before{width:22px;}
.rotulo--izq::after{display:none;}

.titulo{font-size:clamp(2rem,5.2vw,3.5rem);letter-spacing:-.02em;text-transform:uppercase;}
.titulo--sm{font-size:clamp(1.5rem,3.4vw,2.3rem);}
.entradilla{font-size:clamp(1rem,1.6vw,1.13rem);color:var(--gris-2);}
.entradilla--c{max-width:70ch;margin-inline:auto;}
.destacado{color:var(--blanco);font-weight:600;}
.oro{color:var(--amarillo);}
.subraya{display:block;width:70px;height:4px;background:var(--amarillo);margin-top:26px;}
.subraya--c{margin-inline:auto;}

/* Botones tipo píldora */
.btn{
  --bg:var(--amarillo);--fg:var(--negro);--bd:var(--amarillo);
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:56px;padding:0 34px;
  background:var(--bg);color:var(--fg);border:1px solid var(--bd);border-radius:999px;
  font-family:var(--fuente-titulo);font-size:.79rem;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;
  transition:var(--transicion);
}
.btn:hover{background:var(--amarillo-3);border-color:var(--amarillo-3);transform:translateY(-2px);}
.btn--fantasma{--bg:transparent;--fg:var(--blanco);--bd:rgba(250,250,249,.45);}
.btn--fantasma:hover{background:var(--blanco);border-color:var(--blanco);color:var(--negro);}
.btn--wa{--bg:var(--wa);--fg:#052B15;--bd:var(--wa);}
.btn--wa:hover{background:#2BE874;border-color:#2BE874;}
.btn svg{width:18px;height:18px;flex:none;}

/* ---------- 4. Cabecera ---------- */
.cabecera{
  position:fixed;inset:0 0 auto 0;z-index:80;height:var(--header-h);
  display:flex;align-items:center;background:transparent;
  border-bottom:1px solid transparent;
  transition:background var(--transicion),border-color var(--transicion),height var(--transicion);
}
.cabecera.pegada{background:rgba(10,10,10,.95);backdrop-filter:blur(12px);border-bottom-color:var(--linea);height:72px;}
.cabecera__fila{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;}

.marca{display:flex;align-items:center;gap:13px;}
.marca__mark{width:42px;height:42px;flex:none;}
.marca__texto{display:flex;flex-direction:column;line-height:1;}
.marca__nombre{font-family:var(--fuente-titulo);font-weight:800;font-size:1.3rem;color:var(--blanco);white-space:nowrap;}
.marca__sub{font-size:.55rem;letter-spacing:.34em;color:var(--amarillo);text-transform:uppercase;margin-top:6px;white-space:nowrap;}

.nav{display:flex;align-items:center;gap:clamp(14px,2vw,28px);}
.nav__lista{display:flex;align-items:center;gap:clamp(16px,2.2vw,30px);}
.nav__lista a{
  font-family:var(--fuente-titulo);font-size:.74rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:var(--gris-2);white-space:nowrap;
  padding-block:8px;position:relative;transition:color var(--transicion);
}
.nav__lista a::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--amarillo);transition:width var(--transicion);}
.nav__lista a:hover,.nav__lista a.activo{color:var(--blanco);}
.nav__lista a:hover::after,.nav__lista a.activo::after{width:100%;}
.nav__cta.btn{min-height:44px;padding:0 22px;font-size:.71rem;}

.hamburguesa{
  display:none;width:48px;height:48px;flex:none;
  background:rgba(10,10,10,.4);border:1px solid rgba(250,250,249,.28);border-radius:50%;
  align-items:center;justify-content:center;
}
.hamburguesa span{display:block;width:20px;height:2px;background:var(--blanco);position:relative;transition:var(--transicion);}
.hamburguesa span::before,.hamburguesa span::after{content:"";position:absolute;left:0;width:20px;height:2px;background:var(--blanco);transition:var(--transicion);}
.hamburguesa span::before{top:-6px;}
.hamburguesa span::after{top:6px;}
.menu-abierto .hamburguesa span{background:transparent;}
.menu-abierto .hamburguesa span::before{top:0;transform:rotate(45deg);}
.menu-abierto .hamburguesa span::after{top:0;transform:rotate(-45deg);}

/* ---------- 5. Portada ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden;background:var(--negro);}
.hero__foto{
  position:absolute;inset:0;
  background:url('../img/hero.jpg') center/cover no-repeat;
  transform:scale(1.06);
  animation:acercar 18s ease-out forwards;
}
@keyframes acercar{to{transform:scale(1);}}
.hero__velo{
  position:absolute;inset:0;
  background:
    linear-gradient(90deg,rgba(10,10,10,.94) 0%,rgba(10,10,10,.74) 46%,rgba(10,10,10,.42) 100%),
    linear-gradient(180deg,rgba(10,10,10,.72) 0%,rgba(10,10,10,.22) 40%,rgba(10,10,10,.92) 100%);
}
.hero__contenido{position:relative;z-index:2;max-width:820px;padding-top:var(--header-h);padding-bottom:130px;}
.hero__logo{width:clamp(66px,8vw,88px);margin-bottom:26px;}
.hero__lema{
  font-family:var(--fuente-titulo);font-size:clamp(.68rem,1.4vw,.82rem);font-weight:700;
  letter-spacing:.32em;text-transform:uppercase;color:var(--amarillo);margin-bottom:20px;
}
.hero h1{font-size:clamp(2.2rem,6vw,4.4rem);letter-spacing:-.025em;text-transform:uppercase;margin-bottom:22px;}
.hero h1 em{font-style:normal;color:var(--amarillo);}
.hero__texto{max-width:54ch;font-size:clamp(1rem,1.7vw,1.15rem);color:#D5D5D2;margin-bottom:38px;}
.hero__acciones{display:flex;flex-wrap:wrap;gap:14px;}

/* Franja inferior de la portada, como en la referencia */
.hero__pie{
  position:absolute;left:0;right:0;bottom:0;z-index:2;
  border-top:1px solid rgba(250,250,249,.14);
  background:linear-gradient(180deg,rgba(10,10,10,0),rgba(10,10,10,.55));
  padding-block:20px;
}
.hero__pie .contenedor{display:flex;flex-wrap:wrap;gap:8px 26px;align-items:center;justify-content:space-between;}
.hero__pie p{margin:0;min-width:0;font-size:.82rem;letter-spacing:.05em;color:#C9C9C6;}
.hero__pie span{color:var(--amarillo);}
.hero__pie small{font-size:.74rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gris);}

/* ---------- 6. Declaración de apertura ---------- */
.intro{background:var(--negro);text-align:center;}
.intro h2{font-size:clamp(1.8rem,4.6vw,3.1rem);text-transform:uppercase;letter-spacing:-.015em;margin-bottom:30px;}
.intro .entradilla{max-width:74ch;margin-inline:auto;}
.intro .entradilla + .entradilla{margin-top:20px;}

/* ---------- 7. Cifras ---------- */
.cifras{background:var(--amarillo);color:var(--negro);}
.cifras__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,3vw,42px);padding-block:clamp(40px,5vw,60px);}
.cifra__num{font-family:var(--fuente-titulo);font-size:clamp(1.9rem,4vw,3rem);font-weight:800;color:var(--negro);line-height:1;letter-spacing:-.03em;}
.cifra__txt{font-size:.83rem;line-height:1.55;color:#3B3208;margin:12px 0 0;font-weight:500;}
.cifra + .cifra{border-left:1px solid rgba(10,10,10,.2);padding-left:clamp(20px,3vw,42px);}

/* ---------- 8. Bloques alternados imagen + texto ---------- */
.bloque{
  display:grid;grid-template-columns:1fr 1fr;
  align-items:center;gap:clamp(30px,5vw,72px);
}
.bloque + .bloque{margin-top:clamp(60px,7vw,100px);}
.bloque--inv .bloque__media{order:2;}
.bloque__media{position:relative;}
.bloque__media img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;filter:grayscale(.35) contrast(1.05);transition:filter .5s ease;}
.bloque__media:hover img{filter:grayscale(0) contrast(1);}
.bloque__media::after{
  content:"";position:absolute;inset:0;
  box-shadow:inset 0 0 0 1px rgba(250,250,249,.12);
  pointer-events:none;
}
.bloque__num{
  position:absolute;left:0;top:0;z-index:2;
  width:64px;height:70px;display:grid;place-items:center;
  background:var(--amarillo);color:var(--negro);
  clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);
  font-family:var(--fuente-titulo);font-weight:800;font-size:1.05rem;
  transform:translate(-18px,-18px);
}
.bloque h3{font-size:clamp(1.35rem,2.8vw,2rem);text-transform:uppercase;margin-bottom:18px;letter-spacing:-.01em;}
.bloque__lista{margin-top:22px;}
.bloque__lista li{
  display:flex;gap:12px;align-items:flex-start;
  padding:9px 0;font-size:.95rem;color:var(--gris-2);
}
.bloque__lista li::before{
  content:"";flex:none;width:9px;height:10px;margin-top:9px;background:var(--amarillo);
  clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);
}

/* ---------- 9. Franja con foto fija ---------- */
.franja{
  position:relative;padding-block:clamp(90px,13vw,170px);
  background:url('../img/franja.jpg') center 30%/cover no-repeat;
  text-align:center;
}
.franja::before{content:"";position:absolute;inset:0;background:rgba(10,10,10,.78);}
.franja .contenedor{position:relative;z-index:1;}
.franja blockquote{margin:0;max-width:56ch;margin-inline:auto;}
.franja blockquote p{
  font-family:var(--fuente-titulo);font-size:clamp(1.2rem,2.8vw,1.95rem);font-weight:600;
  color:var(--blanco);line-height:1.42;font-style:italic;
}
.franja cite{display:block;margin-top:26px;font-style:normal;font-size:.74rem;letter-spacing:.3em;text-transform:uppercase;color:var(--amarillo);}

/* Variante de la franja para el cierre con llamada a la acción */
.franja--cta blockquote p{font-style:normal;}

/* ---------- 10. Galería de capacidades ---------- */
.galeria{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.6vw,20px);margin-top:52px;}
.galeria figure{position:relative;margin:0;overflow:hidden;}
.galeria img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;filter:grayscale(.5);transition:transform .7s ease,filter .5s ease;}
.galeria figure:hover img{transform:scale(1.06);filter:grayscale(0);}
.galeria figcaption{
  position:absolute;left:0;right:0;bottom:0;padding:22px;
  background:linear-gradient(180deg,rgba(10,10,10,0),rgba(10,10,10,.9));
  font-family:var(--fuente-titulo);font-size:.85rem;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;color:var(--blanco);
}
.galeria figcaption small{display:block;font-family:var(--fuente-texto);font-size:.78rem;font-weight:400;letter-spacing:0;text-transform:none;color:var(--amarillo);margin-top:6px;}

/* ---------- 11. Misión / Visión ---------- */
.mv__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--linea);border:1px solid var(--linea);margin-top:52px;}
.mv{background:var(--negro);padding:clamp(32px,4.5vw,60px);position:relative;overflow:hidden;}
.mv__letra{
  position:absolute;right:-6px;top:-46px;
  font-family:var(--fuente-titulo);font-size:clamp(9rem,17vw,15rem);font-weight:800;
  color:var(--blanco);opacity:.04;line-height:1;pointer-events:none;user-select:none;
}
.mv h3{font-size:clamp(1.4rem,3vw,2rem);text-transform:uppercase;margin-bottom:22px;}
.mv h3::after{content:"";display:block;width:50px;height:3px;background:var(--amarillo);margin-top:18px;}
.mv p{position:relative;z-index:1;}

/* ---------- 12. Valores ---------- */
.valores__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(272px,1fr));gap:clamp(16px,2.2vw,26px);margin-top:52px;}
.valor{
  border:1px solid var(--linea);background:var(--negro);
  padding:30px 28px;display:flex;gap:20px;align-items:flex-start;transition:var(--transicion);
}
.valor:hover{border-color:var(--amarillo);transform:translateY(-4px);}
.valor__hex{
  flex:none;width:52px;height:58px;display:grid;place-items:center;
  background:var(--amarillo);color:var(--negro);
  clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);
  font-family:var(--fuente-titulo);font-weight:800;font-size:1rem;
}
.valor h3{font-size:1rem;text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;font-weight:700;}
.valor p{font-size:.9rem;color:var(--gris);margin:0;}

/* ---------- 13. Diferenciadores ---------- */
.dif__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:clamp(16px,2.2vw,26px);margin-top:52px;}
.dif{border:1px solid var(--linea);background:var(--negro-2);padding:clamp(30px,3.4vw,42px);text-align:center;transition:var(--transicion);}
.dif:hover{border-color:var(--amarillo);}
.dif__icono{width:78px;height:78px;margin:0 auto 22px;color:var(--amarillo);}
.dif h3{font-size:1.05rem;text-transform:uppercase;color:var(--amarillo);letter-spacing:.07em;margin-bottom:14px;font-weight:700;}
.dif h3::before{content:"";display:block;width:44px;height:2px;background:var(--amarillo);margin:0 auto 16px;}
.dif p{font-size:.92rem;color:var(--gris);margin:0;}

/* ---------- 14. Contacto ---------- */
.contacto{position:relative;background:var(--negro);}
.contacto__foto{position:absolute;inset:0;background:url('../img/contacto.jpg') center/cover no-repeat;opacity:.6;}
.contacto::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,10,10,.82) 0%,rgba(10,10,10,.9) 55%,rgba(10,10,10,.96) 100%);}
.contacto .contenedor{position:relative;z-index:2;}
.contacto__grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:clamp(34px,5vw,70px);margin-top:52px;}

.datos__bloque + .datos__bloque{margin-top:32px;}
.datos__titulo{font-family:var(--fuente-titulo);font-size:.7rem;font-weight:700;letter-spacing:.26em;text-transform:uppercase;color:var(--amarillo);margin-bottom:14px;}
.datos__item{display:flex;gap:14px;align-items:flex-start;padding:11px 0;}
.datos__item svg{width:19px;height:19px;flex:none;margin-top:5px;color:var(--amarillo);}
.datos__item a,.datos__item span{color:var(--gris-2);transition:color var(--transicion);word-break:break-word;}
.datos__item a:hover{color:var(--amarillo);}
.datos__item strong{display:block;color:var(--blanco);font-weight:600;}
.datos__item small{display:block;color:var(--gris);font-size:.8rem;}

.formulario{background:rgba(20,20,20,.85);border:1px solid var(--linea);padding:clamp(26px,3.4vw,44px);backdrop-filter:blur(4px);}
.campo{margin-bottom:20px;}
.campo label{display:block;font-family:var(--fuente-titulo);font-size:.68rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--gris-2);margin-bottom:9px;}
.campo input,.campo select,.campo textarea{
  width:100%;background:rgba(10,10,10,.85);border:1px solid var(--linea);border-radius:6px;
  color:var(--blanco);font-family:inherit;font-size:.97rem;padding:14px 16px;
  transition:border-color var(--transicion);min-height:54px;
}
.campo textarea{min-height:134px;resize:vertical;}
.campo input:focus,.campo select:focus,.campo textarea:focus{border-color:var(--amarillo);outline:none;}
.campo input::placeholder,.campo textarea::placeholder{color:#5C5C5C;}
.campo select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%23E9CA2E' stroke-width='1.6'%3E%3Cpath d='M1 1l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;background-size:12px;padding-right:42px;}
.formulario .btn{width:100%;}
.aviso{font-size:.78rem;color:var(--gris);margin-top:14px;text-align:center;}
.miel{position:absolute;left:-9999px;opacity:0;height:0;}

/* ---------- 15. Pie ---------- */
.pie{background:var(--negro);border-top:1px solid var(--linea);padding-block:56px 30px;}
.pie__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:44px;margin-bottom:44px;}
.pie h4{font-family:var(--fuente-titulo);font-size:.72rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--blanco);margin-bottom:18px;}
.pie li{margin-bottom:9px;}
.pie a{font-size:.9rem;color:var(--gris);transition:color var(--transicion);}
.pie a:hover{color:var(--amarillo);}
.pie__desc{font-size:.9rem;color:var(--gris);max-width:38ch;margin-top:20px;}
.pie__redes{display:flex;gap:12px;margin-top:22px;}
.pie__redes a{width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--linea);border-radius:50%;color:var(--gris-2);transition:var(--transicion);}
.pie__redes a:hover{background:var(--amarillo);border-color:var(--amarillo);color:var(--negro);}
.pie__redes svg{width:17px;height:17px;}
.pie__base{border-top:1px solid var(--linea);padding-top:24px;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;font-size:.79rem;color:#636363;}

/* ---------- 16. Flotantes ---------- */
.rail{position:fixed;right:24px;top:50%;transform:translateY(-50%);z-index:70;display:flex;flex-direction:column;gap:12px;}
.rail a{
  width:44px;height:44px;display:grid;place-items:center;
  background:rgba(23,23,23,.86);border:1px solid rgba(250,250,249,.16);border-radius:50%;
  color:var(--gris-2);transition:var(--transicion);backdrop-filter:blur(6px);
}
.rail a:hover{background:var(--amarillo);border-color:var(--amarillo);color:var(--negro);transform:translateX(-3px);}
.rail svg{width:18px;height:18px;}

.wa-flotante{
  position:fixed;right:22px;bottom:22px;z-index:75;
  display:flex;align-items:center;gap:12px;height:62px;padding:0 24px 0 20px;
  background:var(--wa);color:#052B15;border-radius:40px;
  box-shadow:0 10px 30px rgba(0,0,0,.55);
  font-family:var(--fuente-titulo);font-weight:700;font-size:.8rem;letter-spacing:.08em;
  transition:var(--transicion);
}
.wa-flotante svg{width:28px;height:28px;flex:none;}
.wa-flotante:hover{transform:scale(1.05);box-shadow:0 14px 38px rgba(37,211,102,.4);}
.wa-flotante::before{content:"";position:absolute;inset:-4px;border-radius:44px;border:2px solid var(--wa);opacity:.5;animation:pulso 2.6s ease-out infinite;}
@keyframes pulso{0%{transform:scale(.96);opacity:.55;}70%{transform:scale(1.13);opacity:0;}100%{opacity:0;}}

/* ---------- 17. Aparición al hacer scroll ---------- */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s cubic-bezier(.4,0,.2,1);}
.reveal.visible{opacity:1;transform:none;}

/* ---------- 18. Responsive ---------- */
@media (max-width:1120px){
  .hamburguesa{display:flex;}
  .nav{
    display:block;
    position:fixed;inset:0 0 0 auto;width:min(340px,84vw);
    background:var(--negro-2);border-left:1px solid var(--linea);
    padding:calc(var(--header-h) + 26px) 30px 40px;
    transform:translateX(100%);transition:transform var(--transicion);overflow-y:auto;z-index:81;
  }
  .menu-abierto .nav{transform:none;}
  .nav__lista{flex-direction:column;align-items:stretch;gap:0;}
  .nav__lista li{border-bottom:1px solid var(--linea);}
  .nav__lista a{display:block;padding:17px 0;font-size:.86rem;}
  .nav__lista a::after{display:none;}
  .nav__cta{margin-top:26px;}
  .nav__cta.btn{width:100%;min-height:54px;font-size:.78rem;}
  .velo-menu{position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:60;opacity:0;visibility:hidden;transition:var(--transicion);}
  .menu-abierto .velo-menu{opacity:1;visibility:visible;}
  .rail{display:none;}
  .cifras__grid{grid-template-columns:repeat(2,1fr);gap:26px;}
  .cifra:nth-child(3){border-left:none;padding-left:0;}
  .mv__grid{grid-template-columns:1fr;}
  .contacto__grid{grid-template-columns:1fr;}
}
@media (max-width:860px){
  .bloque{grid-template-columns:1fr;gap:26px;}
  .bloque--inv .bloque__media{order:0;}
  .bloque__media img{aspect-ratio:16/10;}
  .galeria{grid-template-columns:1fr 1fr;}
  .galeria img{aspect-ratio:1;}
  .pie__grid{grid-template-columns:1fr 1fr;}
  .hero__pie small{display:none;}
  .hero__pie p{font-size:.76rem;line-height:1.5;}
}
@media (max-width:640px){
  :root{--header-h:72px;}
  .cifras__grid{grid-template-columns:1fr;}
  .cifra + .cifra{border-left:none;border-top:1px solid rgba(10,10,10,.2);padding-left:0;padding-top:22px;}
  .pie__grid{grid-template-columns:1fr;gap:34px;}
  .galeria{grid-template-columns:1fr;}
  .hero__contenido{padding-bottom:150px;}
  .hero__acciones .btn{width:100%;}
  .wa-flotante{height:58px;width:58px;padding:0;justify-content:center;border-radius:50%;font-size:0;gap:0;}
  .wa-flotante::before{border-radius:50%;}
  .marca__sub{display:none;}
  .bloque__num{transform:translate(-12px,-12px);width:56px;height:62px;font-size:.95rem;}
}
@media (max-width:400px){
  .marca__nombre{font-size:1.12rem;}
  .marca__mark{width:36px;height:36px;}
}

/* ---------- 20. Páginas legales ---------- */
.legal-cabecera{
  position:sticky;top:0;z-index:80;background:rgba(10,10,10,.96);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--linea);height:78px;display:flex;align-items:center;
}
.legal-cabecera .contenedor{display:flex;align-items:center;justify-content:space-between;gap:20px;}
.legal{padding-block:clamp(48px,7vw,88px) clamp(60px,8vw,110px);}
.legal__caja{max-width:820px;margin-inline:auto;}
.legal h1{font-size:clamp(1.9rem,4.4vw,2.9rem);text-transform:uppercase;letter-spacing:-.02em;margin-bottom:18px;}
.legal__fecha{font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gris);margin-bottom:40px;}
.legal__fecha::after{content:"";display:block;width:64px;height:4px;background:var(--amarillo);margin-top:24px;}
.legal h2{
  font-size:clamp(1.05rem,2.1vw,1.28rem);text-transform:uppercase;letter-spacing:.02em;
  margin:44px 0 16px;padding-top:26px;border-top:1px solid var(--linea);
  display:flex;gap:14px;align-items:baseline;
}
.legal h2 span{color:var(--amarillo);font-size:.82rem;letter-spacing:.14em;flex:none;}
.legal h3{font-size:.98rem;text-transform:uppercase;letter-spacing:.05em;color:var(--amarillo);margin:26px 0 10px;}
.legal p,.legal li{font-size:.98rem;color:var(--gris-2);}
.legal ul{margin:0 0 1.2em;}
.legal li{display:flex;gap:12px;align-items:flex-start;padding:7px 0;}
.legal li::before{
  content:"";flex:none;width:9px;height:10px;margin-top:9px;background:var(--amarillo);
  clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);
}
.legal a{color:var(--amarillo);text-decoration:underline;text-underline-offset:3px;}
.legal a:hover{color:var(--amarillo-3);}
.legal__nota{
  border:1px solid var(--linea);border-left:3px solid var(--amarillo);
  background:var(--negro-2);padding:24px 26px;margin-top:40px;
}
.legal__nota p{font-size:.93rem;margin:0;}
.legal__volver{margin-top:52px;}

/* Enlace legal bajo el formulario */
.consentimiento{font-size:.8rem;color:var(--gris);margin-top:16px;text-align:center;line-height:1.6;}
.consentimiento a{color:var(--amarillo);}

/* Enlaces del cierre del pie */
.pie__base a{color:#8A8A8A;text-decoration:none;transition:color var(--transicion);}
.pie__base a:hover{color:var(--amarillo);}
.pie__legales{display:flex;flex-wrap:wrap;gap:8px 20px;align-items:center;}

/* ---------- 19. Accesibilidad ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;}
  html{scroll-behavior:auto;}
  .reveal{opacity:1;transform:none;}
  .hero__foto{animation:none;transform:none;}
}
.saltar{position:absolute;left:-9999px;top:0;z-index:200;background:var(--amarillo);color:var(--negro);padding:12px 20px;font-weight:700;}
.saltar:focus{left:12px;top:12px;}
@media print{
  .cabecera,.rail,.wa-flotante,.formulario,.hero__pie{display:none;}
  body{background:#fff;color:#000;}
}
