/* ==========================================================================
   NIGRA — Cortinas y Toldos · City Bell, La Plata
   Hoja de estilos unica. Ordenada por bloques:
   1 Variables · 2 Base · 3 Utilidades y animaciones · 4 Cabecera
   5 Hero · 6 Tira · 7 Secciones · 8 Productos · 9 Motorizacion
   11 Trabajos y lightbox · 12 Reels · 15 Contacto · 16 Pie
   17 Boton flotante · 18 Responsive
   ========================================================================== */

/* ── 1. VARIABLES ──────────────────────────────────────────────────────── */
:root{
  /* Marca */
  --tinta:#0E0E10;
  --tinta-2:#151518;
  --tinta-3:#1D1D21;
  --arena:#F7F3ED;
  --arena-2:#EFE8DE;
  --acento:#DE8F3C;
  --acento-claro:#F0B471;
  --acento-oscuro:#B96F24;
  --verde-wa:#25D366;

  /* Texto sobre oscuro */
  --claro:#F4F1EC;
  --claro-medio:#B5ADA2;
  --claro-tenue:#7C766D;

  /* Texto sobre claro */
  --oscuro:#1A1815;
  --oscuro-medio:#615A50;
  --oscuro-tenue:#9A9186;

  --borde:rgba(255,255,255,.10);
  --borde-claro:rgba(26,24,21,.12);

  /* Tipografia */
  --tipo:'Archivo',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;

  /* Medidas */
  --ancho:1280px;
  --ancho-angosto:820px;
  --lado:clamp(20px,5vw,64px);
  --radio:14px;
  --radio-gr:22px;

  /* Movimiento */
  --suave:cubic-bezier(.22,1,.36,1);
  --rapido:cubic-bezier(.4,0,.2,1);
  --alto-cabecera:74px;
}

/* ── 2. BASE ───────────────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box}
html{
  scroll-behavior:smooth;
  scroll-padding-top:calc(var(--alto-cabecera) + 12px);
  -webkit-text-size-adjust:100%;
}
body{
  margin:0;
  font-family:var(--tipo);
  font-size:clamp(15px,.4vw + 14px,17px);
  line-height:1.65;
  color:var(--claro);
  background:var(--tinta);
  overflow-x:hidden;   /* clip no crea contexto de scroll y no rompe el sticky */
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
@supports (overflow-x:clip){ body{overflow-x:clip} }
body.sin-scroll{overflow:hidden}

img,video,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul,ol{margin:0;padding:0;list-style:none}
h1,h2,h3,h4,p{margin:0}
:focus-visible{outline:2px solid var(--acento);outline-offset:3px;border-radius:4px}
::selection{background:var(--acento);color:#fff}

h1,h2,h3,.display{
  font-weight:800;
  line-height:1.03;
  letter-spacing:-.035em;
  text-wrap:balance;
}
h1{font-size:clamp(2.4rem,6.6vw,5.1rem)}
h2{font-size:clamp(2rem,5.2vw,3.9rem)}
h3{font-size:clamp(1.15rem,1.6vw,1.45rem);letter-spacing:-.02em;line-height:1.2}

.envoltorio{width:100%;max-width:var(--ancho);margin-inline:auto;padding-inline:var(--lado)}
.angosto{max-width:var(--ancho-angosto)}

/* Barra de progreso de lectura */
.progreso{
  position:fixed;inset:0 0 auto 0;height:3px;z-index:120;
  background:linear-gradient(90deg,var(--acento),var(--acento-claro));
  transform:scaleX(0);transform-origin:0 50%;
  transition:transform .1s linear;
  pointer-events:none;
}

/* ── 3. UTILIDADES Y ANIMACIONES ──────────────────────────────────────── */
.solo-lectores{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}
.saltar{
  position:absolute;top:-100px;left:16px;z-index:200;
  background:var(--acento);color:#fff;padding:12px 20px;border-radius:0 0 10px 10px;
  font-weight:700;transition:top .25s var(--rapido);
}
.saltar:focus{top:0}

/* Aparicion al hacer scroll */
[data-anim]{
  opacity:0;
  transition:opacity .85s var(--suave),transform .85s var(--suave),filter .85s var(--suave);
  transition-delay:calc(var(--i,0) * 90ms);
  will-change:opacity,transform;
}
[data-anim="subir"]{transform:translateY(38px)}
[data-anim="bajar"]{transform:translateY(-28px)}
[data-anim="izq"]{transform:translateX(-42px)}
[data-anim="der"]{transform:translateX(42px)}
[data-anim="escala"]{transform:scale(.92)}
[data-anim="cortina"]{clip-path:inset(0 0 100% 0);transform:translateY(14px)}
[data-anim="borroso"]{filter:blur(14px);transform:translateY(20px) scale(1.02)}
.visible[data-anim]{
  opacity:1;transform:none;filter:none;clip-path:inset(0 0 0 0);
}

/* Titulo que se revela por lineas */
.linea-mascara{display:block;overflow:hidden;padding-bottom:.06em}
.linea-mascara > span{
  display:block;
  transform:translateY(105%);
  transition:transform 1s var(--suave);
  transition-delay:calc(var(--i,0) * 110ms);
}
.visible .linea-mascara > span,.linea-mascara.visible > span{transform:none}

/* Etiqueta de seccion */
.etiqueta{
  display:inline-flex;align-items:center;gap:10px;
  font-size:.72rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;
  color:var(--acento);margin-bottom:22px;
}
.etiqueta::before{
  content:"";width:30px;height:1px;background:currentColor;
  transform-origin:0 50%;transform:scaleX(0);
  transition:transform .8s var(--suave) .15s;
}
.visible .etiqueta::before,.etiqueta.visible::before{transform:scaleX(1)}
.claro .etiqueta{color:var(--acento-oscuro)}

.bajada{
  color:var(--claro-medio);font-size:clamp(1rem,1.2vw,1.15rem);
  max-width:62ch;margin-top:20px;
}
.claro .bajada{color:var(--oscuro-medio)}

/* Botones */
.boton{
  --fondo:var(--acento);--texto:#fff;
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:16px 30px;border-radius:100px;
  font-weight:700;font-size:.95rem;letter-spacing:-.01em;
  color:var(--texto);background:var(--fondo);
  overflow:hidden;isolation:isolate;
  transition:transform .35s var(--suave),box-shadow .35s var(--suave),color .3s var(--rapido);
  box-shadow:0 6px 24px -10px rgba(222,143,60,.7);
  white-space:nowrap;
}
.boton::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:var(--oscuro);
  transform:translateY(101%);border-radius:50% 50% 0 0;
  transition:transform .55s var(--suave),border-radius .55s var(--suave);
}
.boton:hover{transform:translateY(-3px);box-shadow:0 16px 34px -14px rgba(0,0,0,.6)}
.boton:hover::after{transform:translateY(0);border-radius:0}
.boton:active{transform:translateY(-1px)}
.boton svg{width:19px;height:19px;flex:none}
.ico-wa{width:20px;height:20px;flex:none}

.boton.wa{--fondo:var(--verde-wa);--texto:#fff;box-shadow:0 6px 24px -10px rgba(37,211,102,.75)}
.boton.wa::after{background:#128C4A}          /* al pasar el mouse, verde mas oscuro */
.boton.wa:hover{color:#fff}

.boton.fantasma{
  --fondo:rgba(255,255,255,.06);--texto:var(--claro);
  border:1px solid rgba(255,255,255,.26);box-shadow:none;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
}
.boton.fantasma::after{background:var(--claro)}
.boton.fantasma:hover{color:var(--tinta);border-color:transparent}
.claro .boton.fantasma{--texto:var(--oscuro);border-color:var(--borde-claro)}
.claro .boton.fantasma::after{background:var(--oscuro)}
.claro .boton.fantasma:hover{color:var(--arena)}

.boton.chico{padding:12px 22px;font-size:.86rem}
.grupo-botones{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}

/* Enlace con flecha */
.enlace-flecha{
  display:inline-flex;align-items:center;gap:9px;
  font-weight:700;font-size:.92rem;color:var(--acento);
}
.enlace-flecha svg{width:16px;height:16px;transition:transform .4s var(--suave)}
.enlace-flecha:hover svg{transform:translateX(6px)}

/* ── 4. CABECERA ───────────────────────────────────────────────────────── */
.barra-promo{
  position:relative;z-index:90;
  background:var(--acento);color:#fff;
  font-size:.82rem;font-weight:600;letter-spacing:.01em;
  text-align:center;padding:9px 46px 9px 20px;
}
.barra-promo strong{font-weight:800}
.barra-promo .cerrar{
  position:absolute;right:10px;top:50%;transform:translateY(-50%);
  width:30px;height:30px;display:grid;place-items:center;border-radius:50%;
  transition:background .25s;
}
.barra-promo .cerrar:hover{background:rgba(0,0,0,.16)}
.barra-promo[hidden]{display:none}

.cabecera{
  position:sticky;top:0;z-index:100;
  transition:transform .45s var(--suave),background .4s var(--rapido),
             box-shadow .4s var(--rapido),backdrop-filter .4s;
}
.cabecera.oculta{transform:translateY(-110%)}
.cabecera.pegada{
  background:rgba(14,14,16,.82);
  backdrop-filter:blur(18px) saturate(150%);
  -webkit-backdrop-filter:blur(18px) saturate(150%);
  box-shadow:0 1px 0 var(--borde),0 10px 34px -22px rgba(0,0,0,.9);
}
.cabecera-fila{
  display:flex;align-items:center;justify-content:space-between;gap:22px;
  height:var(--alto-cabecera);
}
.marca{display:flex;align-items:center;gap:12px;flex:none}
.marca svg{width:106px;height:auto}
.marca .lema{
  font-size:.62rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--claro-tenue);border-left:1px solid var(--borde);padding-left:12px;line-height:1.3;
  max-width:88px;
}

.nav{display:flex;align-items:center;gap:6px}
.nav a{
  position:relative;padding:9px 14px;border-radius:99px;
  font-size:.9rem;font-weight:600;color:var(--claro-medio);
  transition:color .3s var(--rapido);
}
.nav a::before{
  content:"";position:absolute;left:14px;right:14px;bottom:4px;height:1.5px;
  background:var(--acento);transform:scaleX(0);transform-origin:0 50%;
  transition:transform .4s var(--suave);
}
.nav a:hover,.nav a.activo{color:var(--claro)}
.nav a:hover::before,.nav a.activo::before{transform:scaleX(1)}

.acciones-cabecera{display:flex;align-items:center;gap:12px;flex:none}
.tel-cabecera{
  display:flex;align-items:center;gap:8px;font-weight:700;font-size:.9rem;
  color:var(--claro);transition:color .3s;
}
.tel-cabecera:hover{color:var(--acento)}
.tel-cabecera svg{width:17px;height:17px;color:var(--acento)}

/* Menu movil */
.hamburguesa{
  display:none;width:46px;height:46px;border-radius:50%;
  border:1px solid var(--borde);place-items:center;flex:none;
}
.hamburguesa span{
  display:block;width:19px;height:1.8px;background:var(--claro);border-radius:2px;
  transition:transform .4s var(--suave),opacity .25s;
}
.hamburguesa span + span{margin-top:5px}
body.menu-abierto .cabecera{background:transparent;box-shadow:none;backdrop-filter:none}
body.menu-abierto .hamburguesa span:nth-child(1){transform:translateY(6.8px) rotate(45deg)}
body.menu-abierto .hamburguesa span:nth-child(2){opacity:0}
body.menu-abierto .hamburguesa span:nth-child(3){transform:translateY(-6.8px) rotate(-45deg)}

.menu-movil{
  position:fixed;inset:0;z-index:95;
  background:var(--tinta);
  /* Columna con scroll propio: los enlaces nunca se encavalgan con el boton
     de abajo, aunque la pantalla sea chica o el telefono este apaisado. */
  display:flex;flex-direction:column;
  padding:calc(var(--alto-cabecera) + 16px) var(--lado) 0;
  overflow-y:auto;overscroll-behavior:contain;
  opacity:0;visibility:hidden;
  transform:translateY(-10px);
  transition:opacity .3s var(--rapido),transform .35s var(--suave),visibility .35s;
}
body.menu-abierto .menu-movil{opacity:1;visibility:visible;transform:none}

.menu-movil .enlaces{
  display:flex;flex-direction:column;
  margin:auto 0;                 /* centra el bloque si sobra lugar */
  padding-block:8px;
}
.menu-movil a.enlace-menu{
  display:flex;align-items:center;gap:14px;
  padding:16px 2px;
  border-bottom:1px solid var(--borde);
  font-size:clamp(1.45rem,6.4vw,2rem);font-weight:800;letter-spacing:-.03em;line-height:1.1;
  opacity:0;transform:translateY(12px);
  transition:opacity .32s var(--suave),transform .32s var(--suave),color .25s;
}
body.menu-abierto .menu-movil a.enlace-menu{
  opacity:1;transform:none;
  transition-delay:calc(var(--i) * 40ms + 80ms);
}
.menu-movil a.enlace-menu span{
  font-size:.68rem;color:var(--acento);font-weight:700;letter-spacing:.1em;
  min-width:22px;
}
.menu-movil a.enlace-menu:active{color:var(--acento)}

.menu-pie{
  margin-top:auto;
  padding:18px 0 calc(20px + env(safe-area-inset-bottom));
  background:linear-gradient(180deg,rgba(14,14,16,0),var(--tinta) 26%);
  display:flex;flex-direction:column;gap:12px;
  opacity:0;transform:translateY(12px);
  transition:opacity .3s var(--suave) .3s,transform .3s var(--suave) .3s;
}
body.menu-abierto .menu-pie{opacity:1;transform:none}
.menu-pie .boton{width:100%}
/* Con altura de sobra el boton queda fijo abajo; en pantallas bajas fluye al
   final del scroll, asi nunca tapa los ultimos enlaces. */
@media (min-height:620px){
  .menu-pie{position:sticky;bottom:0}
}
.menu-pie small{color:var(--claro-tenue);font-size:.84rem;line-height:1.6;text-align:center}

/* ── 5. HERO ───────────────────────────────────────────────────────────── */
.hero{
  position:relative;min-height:100svh;
  display:flex;align-items:flex-end;
  padding-top:calc(var(--alto-cabecera) + 28px);
  padding-bottom:clamp(52px,8vh,72px);
  margin-top:calc(var(--alto-cabecera) * -1);
  overflow:hidden;
  isolation:isolate;
}
.hero-fondo{position:absolute;inset:0;z-index:-2;overflow:hidden}
.hero-fondo picture,.hero-fondo video{position:absolute;inset:0}
.hero-fondo video,.hero-fondo img{
  width:100%;height:100%;object-fit:cover;
  transform:scale(1.03);
  animation:kenburns 26s ease-in-out infinite alternate;
}
/* El video aparece recien cuando empezo a reproducirse; mientras tanto
   se ve la foto, que carga mucho mas rapido. */
.hero-fondo video{opacity:0;transition:opacity 1.1s ease}
.hero-fondo video.listo{opacity:1}
@keyframes kenburns{
  from{transform:scale(1.03) translate3d(0,0,0)}
  to{transform:scale(1.12) translate3d(-1.2%,-1.2%,0)}
}
.hero-fondo::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(14,14,16,.72) 0%,rgba(14,14,16,.18) 32%,rgba(14,14,16,.62) 72%,rgba(14,14,16,.96) 100%),
    radial-gradient(110% 80% at 15% 100%,rgba(14,14,16,.7),transparent 62%);
}
/* grano sutil */
.hero-fondo::before{
  content:"";position:absolute;inset:0;z-index:1;opacity:.35;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.42'/%3E%3C/svg%3E");
}
.hero-contenido{position:relative;width:100%}
.hero h1{max-width:15ch}
.hero h1 em{
  font-style:normal;color:var(--acento);
  display:inline-block;
}
.hero .bajada{max-width:50ch;color:#DDD6CC;font-size:clamp(1rem,1.15vw,1.13rem);margin-top:16px}
.hero-encabezado{
  display:inline-flex;align-items:center;gap:12px;margin-bottom:20px;
  padding:8px 16px 8px 10px;border-radius:99px;
  background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.16);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  font-size:.8rem;font-weight:600;color:#EFE9E0;
}
.punto-vivo{
  width:8px;height:8px;border-radius:50%;background:var(--verde-wa);flex:none;
  box-shadow:0 0 0 0 rgba(37,211,102,.6);
  animation:latido 2.2s infinite;
}
@keyframes latido{
  70%{box-shadow:0 0 0 11px rgba(37,211,102,0)}
  100%{box-shadow:0 0 0 0 rgba(37,211,102,0)}
}

.hero-datos{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:2px;margin-top:clamp(26px,4.4vh,46px);
  border-top:1px solid var(--borde);
}
.dato{padding:18px 20px 2px 0}
.dato b{
  display:block;font-size:clamp(1.45rem,2.3vw,1.95rem);font-weight:800;
  letter-spacing:-.04em;line-height:1.05;white-space:nowrap;
}
.dato > span{
  display:block;margin-top:7px;font-size:.78rem;color:var(--claro-medio);
  letter-spacing:.02em;line-height:1.45;
}
.dato b span{display:inline;font-size:inherit;margin:0}
.dato b .sufijo{color:var(--acento)}

.baja-scroll{
  position:absolute;left:50%;bottom:22px;transform:translateX(-50%);
  display:grid;place-items:center;gap:8px;z-index:2;
  font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;color:var(--claro-tenue);
}
.baja-scroll i{
  display:block;width:1px;height:44px;background:var(--borde);position:relative;overflow:hidden;
}
.baja-scroll i::after{
  content:"";position:absolute;inset:0;background:var(--acento);
  animation:baja 2.1s var(--suave) infinite;
}
@keyframes baja{
  0%{transform:translateY(-100%)}
  60%,100%{transform:translateY(100%)}
}

/* ── 6. TIRA ANIMADA ───────────────────────────────────────────────────── */
.tira{
  background:var(--acento);color:#25150A;
  padding:14px 0;overflow:hidden;
  border-block:1px solid rgba(0,0,0,.12);
}
.tira-pista{display:flex;width:max-content;animation:desplazar 42s linear infinite}
.tira:hover .tira-pista{animation-play-state:paused}
.tira-grupo{display:flex;align-items:center;flex:none}
.tira-grupo span{
  display:inline-flex;align-items:center;gap:16px;padding-inline:22px;
  font-weight:800;font-size:.95rem;letter-spacing:-.01em;text-transform:uppercase;
  white-space:nowrap;
}
.tira-grupo span::after{
  content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.5;
}
@keyframes desplazar{to{transform:translateX(-50%)}}

/* ── 7. SECCIONES ──────────────────────────────────────────────────────── */
.seccion{padding-block:clamp(72px,11vh,132px);position:relative}
.seccion.claro{background:var(--arena);color:var(--oscuro)}
.seccion.claro h1,.seccion.claro h2,.seccion.claro h3{color:var(--oscuro)}
.seccion.tinta-2{background:var(--tinta-2)}

.encabezado-seccion{max-width:60ch;margin-bottom:clamp(42px,6vh,66px)}
.encabezado-seccion.centrado{margin-inline:auto;text-align:center}
.encabezado-seccion.centrado .etiqueta{justify-content:center}
.encabezado-seccion.centrado .bajada{margin-inline:auto}

.fila-titulo{
  display:flex;align-items:flex-end;justify-content:space-between;gap:30px;flex-wrap:wrap;
  margin-bottom:clamp(38px,5vh,58px);
}
.fila-titulo .encabezado-seccion{margin-bottom:0}

/* ── 8. PRODUCTOS ──────────────────────────────────────────────────────── */
.grilla-productos{
  display:grid;gap:clamp(18px,2.2vw,28px);
  grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));
}
.grilla-productos.de-dos{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}
/* 4 tarjetas: 2x2 en escritorio para que no quede una sola colgada abajo */
@media (min-width:900px){
  .grilla-productos.de-cuatro{grid-template-columns:repeat(2,1fr)}
  .grilla-productos.de-cuatro .tarjeta-foto{aspect-ratio:16/10}
}

.tarjeta{
  position:relative;display:flex;flex-direction:column;
  background:var(--tinta-2);border:1px solid var(--borde);
  border-radius:var(--radio-gr);overflow:hidden;
  transition:transform .5s var(--suave),border-color .4s,box-shadow .5s var(--suave);
}
.claro .tarjeta{background:#fff;border-color:var(--borde-claro)}
.tarjeta:hover{transform:translateY(-6px);border-color:rgba(222,143,60,.42);box-shadow:0 30px 60px -34px rgba(0,0,0,.75)}
.claro .tarjeta:hover{box-shadow:0 30px 60px -34px rgba(60,45,25,.42)}

.tarjeta-foto{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--tinta-3)}
.tarjeta-foto img{
  width:100%;height:100%;object-fit:cover;
  transition:transform 1.1s var(--suave),filter .6s;
}
.tarjeta:hover .tarjeta-foto img{transform:scale(1.07)}
.tarjeta-foto::after{
  content:"";position:absolute;inset:auto 0 0 0;height:52%;
  background:linear-gradient(180deg,transparent,rgba(10,10,12,.62));
  opacity:.85;
}
.claro .tarjeta-foto::after{opacity:.55}
.chapa{
  position:absolute;top:14px;left:14px;z-index:2;
  padding:7px 13px;border-radius:99px;
  background:rgba(14,14,16,.62);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.2);
  font-size:.68rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:#fff;
}
.chapa.destacada{background:var(--acento);border-color:transparent}

.tarjeta-cuerpo{padding:clamp(20px,2.3vw,28px);display:flex;flex-direction:column;flex:1;gap:14px}
.tarjeta-cuerpo p{color:var(--claro-medio);font-size:.94rem;line-height:1.62}
.claro .tarjeta-cuerpo p{color:var(--oscuro-medio)}
.lista-check{display:flex;flex-direction:column;gap:9px;margin-top:2px}
.lista-check li{
  position:relative;padding-left:25px;font-size:.88rem;color:var(--claro-medio);line-height:1.5;
}
.claro .lista-check li{color:var(--oscuro-medio)}
.lista-check li::before{
  content:"";position:absolute;left:0;top:.42em;width:13px;height:8px;
  border-left:2px solid var(--acento);border-bottom:2px solid var(--acento);
  transform:rotate(-45deg);
}
.tarjeta-pie{margin-top:auto;padding-top:6px}

/* Bloque destacado grande */
.destacado{
  display:grid;gap:clamp(26px,4vw,60px);align-items:center;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));
}
.destacado.invertido .destacado-medio{order:2}
.destacado-medio{
  position:relative;border-radius:var(--radio-gr);overflow:hidden;
  aspect-ratio:16/11;background:var(--tinta-3);
}
.destacado-medio img,.destacado-medio video{
  width:100%;height:100%;object-fit:cover;object-position:50% 42%;
}

.destacado-medio .parallax{will-change:transform;transition:transform .1s linear}
.marco-acento{position:relative}
.marco-acento::before{
  content:"";position:absolute;inset:auto auto -16px -16px;width:58%;height:58%;
  border-left:2px solid var(--acento);border-bottom:2px solid var(--acento);
  border-radius:0 0 0 var(--radio-gr);z-index:-1;
  transform:translate(14px,-14px);opacity:0;
  transition:transform .9s var(--suave) .2s,opacity .9s var(--suave) .2s;
}
.visible .marco-acento::before,.marco-acento.visible::before{transform:none;opacity:1}

/* ── 9. MOTORIZACION ───────────────────────────────────────────────────── */
.grilla-beneficios{
  display:grid;gap:1px;background:var(--borde);
  border:1px solid var(--borde);border-radius:var(--radio-gr);overflow:hidden;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));
}
.claro .grilla-beneficios{background:var(--borde-claro);border-color:var(--borde-claro)}
.beneficio{
  background:var(--tinta);padding:clamp(24px,2.6vw,34px);
  display:flex;flex-direction:column;gap:12px;
  transition:background .4s;
}
.claro .beneficio{background:var(--arena)}
.beneficio:hover{background:var(--tinta-3)}
.claro .beneficio:hover{background:#fff}
.beneficio .ico{
  width:44px;height:44px;border-radius:12px;display:grid;place-items:center;
  background:rgba(222,143,60,.13);color:var(--acento);margin-bottom:4px;
}
.beneficio .ico svg{width:22px;height:22px}
.beneficio h3{font-size:1.06rem}
.beneficio p{font-size:.9rem;color:var(--claro-medio);line-height:1.6}
.claro .beneficio p{color:var(--oscuro-medio)}


/* ── 9b. MOTORIZACION (bloque dentro de Toldos) ─────────────────────────── */
.motor{
  display:grid;gap:clamp(24px,3.4vw,48px);align-items:stretch;
  grid-template-columns:minmax(0,268px) minmax(0,1fr);
  margin-top:clamp(40px,5vh,64px);
  padding:clamp(26px,3.2vw,44px);
  background:var(--tinta-2);border:1px solid var(--borde);
  border-radius:var(--radio-gr);
}
.motor-video{
  border-radius:var(--radio);overflow:hidden;
  aspect-ratio:9/16;background:var(--tinta-3);
  align-self:center;
}
.motor-video video{width:100%;height:100%;object-fit:cover}
.motor-titulo{font-size:clamp(1.7rem,3vw,2.4rem);letter-spacing:-.035em;line-height:1.05}
.motor-texto .bajada{margin-top:16px;font-size:1rem}
.motor-texto .grilla-beneficios{
  margin-top:26px;
  grid-template-columns:repeat(3,1fr);   /* los tres tipos de motor en fila */
}
@media (max-width:960px){
  .motor-texto .grilla-beneficios{grid-template-columns:1fr}
}
.motor-texto .grupo-botones{margin-top:26px}
.motor .beneficio{background:var(--tinta-2)}
.motor .beneficio:hover{background:var(--tinta-3)}
@media (max-width:860px){
  .motor{grid-template-columns:1fr}
  .motor-video{max-width:260px;margin-inline:auto}
}

/* ── 11. TRABAJOS + LIGHTBOX ───────────────────────────────────────────── */
.filtros{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:30px}
.filtro{
  padding:9px 18px;border-radius:99px;border:1px solid var(--borde);
  font-size:.85rem;font-weight:600;color:var(--claro-medio);
  transition:color .3s,background .35s var(--rapido),border-color .3s,transform .3s var(--suave);
}
.filtro:hover{color:var(--claro);transform:translateY(-2px)}
.filtro.activo{background:var(--claro);color:var(--tinta);border-color:transparent}

.galeria{
  display:grid;gap:clamp(12px,1.4vw,20px);
  /* Todas las piezas iguales y en 4:3, que es como estan recortadas las fotos:
     asi se ve el producto entero y no un pedacito. */
  grid-template-columns:repeat(3,1fr);
}
.pieza{
  position:relative;overflow:hidden;border-radius:var(--radio);
  background:var(--tinta-3);aspect-ratio:4/3;margin:0;
  transition:opacity .45s var(--rapido),transform .5s var(--suave),filter .45s;
  cursor:zoom-in;
}
.pieza img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--suave)}
.pieza:hover img{transform:scale(1.06)}
.pieza::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 48%,rgba(10,10,12,.82));
  opacity:0;transition:opacity .45s;
}
.pieza:hover::after{opacity:1}
.pieza figcaption{
  position:absolute;left:16px;right:16px;bottom:14px;z-index:2;
  font-size:.84rem;font-weight:600;color:#fff;
  opacity:0;transform:translateY(10px);
  transition:opacity .45s var(--suave),transform .45s var(--suave);
}
.pieza:hover figcaption{opacity:1;transform:none}
.pieza.apagada{opacity:.12;filter:grayscale(1);pointer-events:none;transform:scale(.96)}

.lightbox{
  position:fixed;inset:0;z-index:150;display:grid;place-items:center;
  background:rgba(8,8,10,.96);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  opacity:0;visibility:hidden;transition:opacity .4s var(--rapido),visibility .4s;
  padding:clamp(16px,4vw,50px);
}
.lightbox.abierto{opacity:1;visibility:visible}
.lightbox img{
  max-width:100%;max-height:82vh;border-radius:10px;object-fit:contain;
  transform:scale(.94);transition:transform .5s var(--suave);
  box-shadow:0 40px 90px -40px #000;
}
.lightbox.abierto img{transform:scale(1)}
.lightbox-pie{
  position:absolute;left:0;right:0;bottom:clamp(14px,3vh,28px);text-align:center;
  font-size:.86rem;color:var(--claro-medio);padding-inline:20px;
}
.lb-btn{
  position:absolute;top:50%;transform:translateY(-50%);
  width:52px;height:52px;border-radius:50%;display:grid;place-items:center;
  background:rgba(255,255,255,.1);border:1px solid var(--borde);color:#fff;
  transition:background .3s,transform .3s var(--suave);
}
.lb-btn:hover{background:rgba(255,255,255,.2)}
.lb-prev{left:clamp(10px,2vw,28px)}
.lb-next{right:clamp(10px,2vw,28px)}
.lb-cerrar{top:clamp(14px,2.4vh,26px);right:clamp(14px,2vw,28px);transform:none}
.lb-btn svg{width:20px;height:20px}

/* ── 12. REELS ─────────────────────────────────────────────────────────── */
.reels{
  display:grid;gap:clamp(14px,2vw,24px);
  /* 3 columnas: con nueve videos quedan tres filas parejas, sin uno colgado */
  grid-template-columns:repeat(3,1fr);
}
@media (max-width:900px){ .reels{grid-template-columns:repeat(2,1fr)} }
.reel{
  position:relative;border-radius:var(--radio-gr);overflow:hidden;
  aspect-ratio:9/16;background:var(--tinta-3);cursor:pointer;
  transition:transform .5s var(--suave),box-shadow .5s var(--suave);
}
.reel:hover{transform:translateY(-6px);box-shadow:0 30px 60px -34px rgba(0,0,0,.8)}
.reel video{width:100%;height:100%;object-fit:cover}
.reel .play{
  position:absolute;inset:0;display:grid;place-items:center;z-index:2;
  background:linear-gradient(180deg,rgba(10,10,12,.10),rgba(10,10,12,.42));
  transition:opacity .4s;
}
.reel.reproduciendo .play{opacity:0;pointer-events:none}
.reel .play i{
  width:66px;height:66px;border-radius:50%;display:grid;place-items:center;
  background:rgba(255,255,255,.93);color:var(--tinta);
  box-shadow:0 10px 34px -12px rgba(0,0,0,.7);
  transition:transform .4s var(--suave);
}
.reel:hover .play i{transform:scale(1.11)}
.reel .play svg{width:22px;height:22px;margin-left:3px}
/* El titulo va en una chapa verde: se lee igual de bien sobre un video claro
   que sobre uno oscuro, y es el mismo verde de los botones de WhatsApp. */
.reel .rotulo{
  position:absolute;left:12px;bottom:12px;right:12px;z-index:3;
  display:block;
  padding:9px 13px;border-radius:10px;
  background:var(--verde-wa);color:#fff;
  font-size:.82rem;font-weight:700;line-height:1.3;letter-spacing:-.01em;
  box-shadow:0 8px 20px -10px rgba(0,0,0,.8);
  pointer-events:none;
}
.reel.reproduciendo .rotulo{opacity:0;transition:opacity .3s}

/* ── 15. CONTACTO ──────────────────────────────────────────────────────── */
.grilla-contacto{
  display:grid;gap:clamp(24px,3vw,44px);
  grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));
  align-items:start;
}
.ficha{
  background:var(--tinta-2);border:1px solid var(--borde);
  border-radius:var(--radio-gr);padding:clamp(24px,3vw,38px);
}
.dato-contacto{
  display:flex;gap:16px;padding:18px 0;border-bottom:1px solid var(--borde);
}
.dato-contacto:last-of-type{border-bottom:0}
.dato-contacto .ico{
  width:42px;height:42px;flex:none;border-radius:12px;display:grid;place-items:center;
  background:rgba(222,143,60,.13);color:var(--acento);
}
.dato-contacto .ico svg{width:20px;height:20px}
.dato-contacto h3{font-size:.98rem;margin-bottom:3px}
.dato-contacto p,.dato-contacto a{
  font-size:.93rem;color:var(--claro-medio);line-height:1.55;transition:color .3s;
}
.dato-contacto a:hover{color:var(--acento)}
.dato-contacto b{color:var(--claro);font-weight:700}

.mapa{
  position:relative;border-radius:var(--radio-gr);overflow:hidden;
  border:1px solid var(--borde);min-height:380px;background:var(--tinta-3);
}
.mapa iframe{width:100%;height:100%;min-height:380px;border:0;display:block;filter:grayscale(.35) contrast(1.05)}
.mapa-pie{
  position:absolute;left:14px;right:14px;bottom:14px;z-index:2;
  display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;
  padding:14px 18px;border-radius:14px;
  background:rgba(14,14,16,.86);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border:1px solid var(--borde);
}
.mapa-pie strong{display:block;font-size:.94rem}
.mapa-pie span{font-size:.83rem;color:var(--claro-medio)}

.cta-final{
  position:relative;overflow:hidden;isolation:isolate;
  background:var(--acento);color:#2A1808;
  border-radius:clamp(20px,3vw,32px);
  padding:clamp(38px,6vw,76px);
  text-align:center;
}
.cta-final::before{
  content:"";position:absolute;inset:0;z-index:-1;opacity:.16;
  background:radial-gradient(60% 90% at 20% 10%,#fff,transparent 60%),
             radial-gradient(50% 70% at 85% 95%,#fff,transparent 60%);
}
.cta-final h2{color:#22150A;max-width:18ch;margin-inline:auto}
.cta-final p{color:#4A3213;max-width:52ch;margin:18px auto 0;font-size:1.03rem}
.cta-final .grupo-botones{justify-content:center}
.cta-final .boton{--fondo:#1A1005;--texto:#fff;box-shadow:0 10px 30px -14px rgba(0,0,0,.6)}
.cta-final .boton::after{background:#fff}
.cta-final .boton:hover{color:#1A1005}
.cta-final .boton.wa{--fondo:#fff;--texto:#12331F}
.cta-final .boton.wa::after{background:#1A1005}
.cta-final .boton.wa:hover{color:#fff}

/* ── 16. PIE ───────────────────────────────────────────────────────────── */
.pie{background:var(--tinta);padding-block:clamp(50px,7vh,80px) 30px;border-top:1px solid var(--borde)}
.pie-grilla{
  display:grid;gap:clamp(28px,4vw,50px);
  grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));
  padding-bottom:40px;border-bottom:1px solid var(--borde);
}
.pie-marca svg{width:132px;height:auto;margin-bottom:18px}
.pie h4{
  font-size:.74rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;
  color:var(--claro-tenue);margin-bottom:18px;
}
.pie li{margin-bottom:11px}
.pie li a,.pie p{font-size:.91rem;color:var(--claro-medio);line-height:1.6;transition:color .3s}
.pie li a:hover{color:var(--acento)}
.pie-abajo{
  display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;
  padding-top:26px;
}
.pie-abajo small{font-size:.8rem;color:var(--claro-tenue)}
.redes{display:flex;gap:10px}
.redes a{
  width:40px;height:40px;border-radius:50%;display:grid;place-items:center;
  border:1px solid var(--borde);color:var(--claro-medio);
  transition:transform .4s var(--suave),color .3s,border-color .3s,background .3s;
}
.redes a:hover{transform:translateY(-3px);color:#fff;background:var(--acento);border-color:transparent}
.redes svg{width:18px;height:18px}

/* ── 17. FLOTANTES ─────────────────────────────────────────────────────── */
.wa-zona{
  position:fixed;right:clamp(16px,2.2vw,28px);bottom:clamp(16px,2.2vw,28px);z-index:110;
  display:flex;flex-direction:column;align-items:flex-end;gap:12px;
  pointer-events:none;                 /* solo los hijos reciben el clic */
}
.wa-zona > *{pointer-events:auto}

/* ── El boton ──────────────────────────────────────────────────────────── */
.wa-flotante{
  position:relative;
  width:72px;height:72px;border-radius:50%;
  display:grid;place-items:center;
  background:var(--verde-wa);color:#fff;
  box-shadow:0 16px 38px -12px rgba(37,211,102,.9),0 6px 16px -6px rgba(0,0,0,.5);
  transform:scale(0);
  animation:entraWa .7s var(--suave) .9s forwards;
  transition:transform .35s var(--suave),box-shadow .35s;
}
.wa-flotante:hover{transform:scale(1.07);box-shadow:0 22px 48px -14px rgba(37,211,102,1)}
.wa-flotante:active{transform:scale(1.02)}
.wa-flotante .wa-ico{display:grid;place-items:center}
.wa-flotante .ico-wa{width:38px;height:38px}
@keyframes entraWa{to{transform:scale(1)}}

/* Anillo que late para que se note */
.wa-flotante::after{
  content:"";position:absolute;inset:0;border-radius:50%;
  border:2px solid var(--verde-wa);
  animation:onda 2.8s var(--suave) infinite;
  pointer-events:none;
}
body.menu-abierto .wa-zona{opacity:0;visibility:hidden;transition:opacity .2s}
.wa-zona.quieto .wa-flotante::after,
.wa-flotante:hover::after{animation:none;opacity:0}
@keyframes onda{
  0%{transform:scale(1);opacity:.85}
  70%,100%{transform:scale(1.42);opacity:0}
}

/* ── La burbuja de chat ────────────────────────────────────────────────── */
.wa-globo{
  position:relative;
  max-width:min(74vw,268px);
  padding:12px 16px;border-radius:16px 16px 4px 16px;
  background:#fff;color:#12331F;
  font-size:.92rem;font-weight:600;line-height:1.35;
  box-shadow:0 14px 34px -14px rgba(0,0,0,.55);
  opacity:0;transform:translateY(10px) scale(.9);transform-origin:100% 100%;
  transition:opacity .4s var(--suave),transform .45s var(--suave);
  pointer-events:none;
}
.wa-globo.visible{opacity:1;transform:none;pointer-events:auto}
/* la colita, apuntando al boton */
.wa-globo::after{
  content:"";position:absolute;right:0;bottom:-7px;
  width:16px;height:12px;background:#fff;
  clip-path:polygon(0 0,100% 0,100% 100%);
}
/* hora, como en un chat de verdad */
.wa-globo-texto::after{
  content:"ahora";display:inline-block;margin-left:8px;
  font-size:.68rem;font-weight:600;color:#8A9A90;vertical-align:baseline;
}
.wa-globo-texto{display:none}
.wa-globo.escrito .wa-globo-texto{display:inline}
.wa-globo.escrito .wa-globo-puntos{display:none}

/* los tres puntitos de "escribiendo…" */
.wa-globo-puntos{display:flex;align-items:center;gap:5px;height:1.35em}
.wa-globo-puntos i{
  width:8px;height:8px;border-radius:50%;background:#9BB0A4;
  animation:puntito 1.25s ease-in-out infinite;
}
.wa-globo-puntos i:nth-child(2){animation-delay:.18s}
.wa-globo-puntos i:nth-child(3){animation-delay:.36s}
@keyframes puntito{
  0%,60%,100%{transform:translateY(0);opacity:.45}
  30%{transform:translateY(-5px);opacity:1}
}

/* ── 18. RESPONSIVE ────────────────────────────────────────────────────── */
@media (max-width:1100px){
  .galeria{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:1080px){
  .nav{display:none}
  .hamburguesa{display:grid}
  .marca .lema{display:none}
}
@media (max-width:760px){
  :root{--alto-cabecera:66px}
  .tel-cabecera span{display:none}
  .tel-cabecera{width:44px;height:44px;border-radius:50%;border:1px solid var(--borde);justify-content:center}
  .acciones-cabecera .boton{display:none}
  .hero{min-height:100svh;padding-bottom:70px}
  .hero .bajada{font-size:.97rem;line-height:1.55}
  .hero-datos{grid-template-columns:repeat(2,1fr);margin-top:26px}
  .dato{padding:14px 14px 2px 0}
  .dato b{font-size:1.4rem}
  .dato > span{font-size:.74rem;margin-top:5px}
  .baja-scroll{display:none}
  .wa-zona{right:14px;bottom:14px;gap:10px}
  .wa-flotante{width:64px;height:64px}
  .wa-flotante .ico-wa{width:34px;height:34px}
  .wa-globo{font-size:.87rem;padding:11px 14px}
  .galeria{grid-template-columns:repeat(2,1fr)}
  .destacado.invertido .destacado-medio{order:0}
  .lb-btn{width:44px;height:44px}
  .lb-prev{left:6px}.lb-next{right:6px}
}
@media (max-width:480px){
  .grupo-botones{flex-direction:column;align-items:stretch}
  .grupo-botones .boton{width:100%}
  .reels{grid-template-columns:1fr}
  .reel .rotulo{font-size:.8rem;padding:8px 11px}
}

/* Accesibilidad: menos movimiento */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.001ms !important;animation-iteration-count:1 !important;
    transition-duration:.001ms !important;scroll-behavior:auto !important;
  }
  [data-anim]{opacity:1 !important;transform:none !important;filter:none !important;clip-path:none !important}
  .linea-mascara > span{transform:none !important}
  .hero-fondo video,.hero-fondo img{animation:none;transform:scale(1.02)}
  .wa-flotante{transform:none;animation:none}
  .wa-flotante::after{animation:none;opacity:0}
}

/* Impresion */
@media print{
  .cabecera,.wa-zona,.baja-scroll,.tira,.progreso,.menu-movil{display:none !important}
  body{background:#fff;color:#000}
}
