:root{
  --fondo: #06080a;
  --fondo-alt: rgba(12, 9, 9, 0.03);
  --texto: #ffffff;
  --muted: rgba(255,255,255,.80);

  --surface-1: rgba(255,255,255,.03);
  --surface-2: rgba(255,255,255,.04);
  --surface-3: rgba(255,255,255,.06);

  --borde-soft: rgba(255,255,255,.10);
  --borde: rgba(255,255,255,.12);
  --borde-strong: rgba(255,255,255,.18);

  --max: 1200px;

  --verde: #1fad0d;
  --verde-hover: #16680c;
  --verde-alt: #34a300;

  --sombra-btn: 0 10px 25px rgba(16, 116, 3, 0.25);
  --sombra-card: 0 10px 25px rgba(0, 0, 0, 0.45);
  --sombra-float: 0 12px 30px rgba(0,0,0,.35);

  --alto-header: 97px;

  --font-display: "Inter", system-ui, -apple-system, sans-serif;
  --font-body: "IBM Plex Sans", system-ui, -apple-system, sans-serif;
}

*{ box-sizing:border-box; }

html{ scroll-behavior:smooth; }

body{
  margin:0;
  font-family: var(--font-body);
  background: var(--fondo);
  color: var(--texto);
  font-size: 16px;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

body.no-scroll{
  overflow: hidden;
}

img{
  max-width: 100%;
  height: auto;
}

[hidden]{
  display: none !important;
}

.contenedor{
  max-width: var(--max);
  width: 100%;
  margin: 0 auto;
  padding-inline: 64px;
}

@media (max-width: 1100px){
  .contenedor{
    padding-inline: 32px;
  }
}

@media (max-width: 600px){
  .contenedor{
    padding-inline: 18px;
  }
}

/* =========================
   HEADER
========================= */
.header{
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 50;
  background: rgba(9, 9, 10, 0.88);
  border-bottom: 1px solid rgba(255,255,255,.06);
  backdrop-filter: blur(10px);
}

.header__contenido{
  height: var(--alto-header);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 16px;
}

.logo{
  display:flex;
  align-items:center;
  text-decoration:none;
}

.logo__img{
  height: 50px;
  width: auto;
  object-fit: contain;
  display:block;
  transition: transform 0.2s ease, filter 0.2s ease;
}

.logo__img:hover{
  transform: scale(1.03);
  filter: brightness(1.12);
}

.nav{
  display:flex;
  align-items:center;
  gap: 16px;
}

.nav__link{
  color: rgba(255,255,255,.85);
  text-decoration:none;
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 13px;
  padding: 10px 12px;
  border-radius: 10px;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  transition: background .18s ease, color .18s ease;
}

.nav__link:hover{
  background: rgba(255,255,255,.08);
}

.header__acciones{
  display:flex;
  align-items:center;
  gap: 12px;
}

.menu{
  display:none;
  border: 1px solid var(--borde-strong);
  background: rgba(255,255,255,.06);
  color: #fff;
  border-radius: 10px;
  padding: 10px 12px;
  cursor:pointer;
}

/* =========================
   HERO
========================= */
.hero{
  position: relative;
  min-height: 100svh;
  padding-top: calc(var(--alto-header) + 10px);
  overflow: hidden;
  background: #595959;
}

.hero__media{
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
}

.hero__video{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  opacity: 0.78;
}

.hero__overlay{
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(0,0,0,.78) 0%, rgba(0,0,0,.45) 55%, rgba(0,0,0,.18) 100%),
    radial-gradient(900px 500px at 18% 25%, rgba(0,0,0,.55), transparent 80%);
}

.hero > .contenedor{
  position: relative;
  z-index: 2;
  min-height: calc(100svh - var(--alto-header) - 10px);
  display: flex;
  align-items: center;
}

.hero__contenido{
  position: relative;
  z-index: 3;
  width: 100%;
  max-width: 980px;
  padding: 36px 0;
}

.hero__titulo{
  margin: 0 0 20px;
  font-family: var(--font-display);
  font-weight: 700;
  line-height: 1.04;
  font-size: clamp(42px, 5.2vw, 72px);
  letter-spacing: -0.035em;
  text-shadow: 0 6px 24px rgba(0,0,0,.50);
  max-width: 15ch;
  color: #fff;
}

.hero__texto{
  margin: 0 0 22px;
  font-family: var(--font-body);
  font-size: clamp(15px, 1.8vw, 19px);
  line-height: 1.65;
  color: rgba(255,255,255,.86);
  max-width: 62ch;
  font-weight: 300;
  letter-spacing: 0.011em;
}

.hero__validacion{
  margin: 0 0 22px;
  font-size: 0.95rem;
  color: rgba(255,255,255,.78);
  font-weight: 400;
  max-width: 62ch;
}


/* =========================
   BOTONES
========================= */
.boton{
  position: relative;
  overflow: hidden;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 13px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  border: none;
  cursor:pointer;
  user-select:none;
  transition:
    background 0.18s ease,
    transform 0.12s cubic-bezier(0.34, 1.56, 0.64, 1),
    box-shadow 0.18s ease;
}

.boton:active{
  transform: scale(0.94);
}

.boton--verde{
  background: var(--verde);
  color: #0b0f14;
  padding: 14px 22px;
  border-radius: 8px;
  min-width: 160px;
  font-size: 15px;
  box-shadow: var(--sombra-btn);
}

.boton--verde:hover{
  background: var(--verde-hover);
}

.boton--verde-alt{
  background: var(--verde-alt);
  color: #0b0f14;
  padding: 14px 22px;
  border-radius: 8px;
  min-width: 160px;
  font-size: 15px;
  box-shadow: var(--sombra-card);
}

.boton--verde-alt:hover{
  background: var(--verde);
}

.boton--sm{
  padding: 10px 16px;
  font-size: 14px;
  min-width: 0;
}

.boton--centrado{
  margin-top: auto;
  align-self: center;
}

.boton--secundario,
.servicios-landing__boton-sec,
.producto-hero__boton-sec{
  padding: 14px 22px;
  border-radius: 4px;
  border: 1px solid var(--borde-strong);
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.92);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.55);
}

.boton--secundario:hover,
.servicios-landing__boton-sec:hover,
.producto-hero__boton-sec:hover{
  background: rgba(255,255,255,.10);
}

/* Ripple */
.boton__ripple{
  position: absolute;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.22);
  transform: scale(0);
  animation: ripple-anim 0.55s linear forwards;
  pointer-events: none;
}

@keyframes ripple-anim{
  to{
    transform: scale(4);
    opacity: 0;
  }
}

/* =========================
   CONTROLES HERO
========================= */
.hero__control{
  position:absolute;
  z-index: 3;
  top: 50%;
  transform: translateY(-50%);
  width: 42px;
  height: 42px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(0,0,0,.30);
  color: #fff;
  font-size: 28px;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  backdrop-filter: blur(10px);
  transition: transform .15s ease, background .15s ease;
}

.hero__control:hover{
  transform: translateY(-50%) scale(1.06);
  background: rgba(64, 64, 64, 0.45);
}

.hero__control--izq{ left: 18px; }
.hero__control--der{ right: 18px; }

.hero__dots{
  position:absolute;
  z-index: 3;
  left: 50%;
  bottom: 14px;
  transform: translateX(-50%);
  display:flex;
  gap: 8px;
  padding: 7px 10px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(0,0,0,.22);
  backdrop-filter: blur(8px);
}

.hero__dot{
  width: 8px;
  height: 8px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.18);
  cursor:pointer;
}

.hero__dot--activo{
  background: var(--verde);
  border-color: var(--verde);
}

/* =========================
   SECCIONES / TIPOGRAFÍA
========================= */
.seccion{
  padding: 64px 0;
  scroll-margin-top: calc(var(--alto-header) + 24px);
}

.seccion--alt{
  background: var(--fondo-alt);
  border-top: 1px solid rgba(255,255,255,.08);
  border-bottom: 1px solid rgba(255,255,255,.08);
}

h2{
  margin:0 0 12px;
  font-family: var(--font-display);
  font-size: clamp(22px, 2.6vw, 30px);
  font-weight: 700;
  letter-spacing: 0.08em;
}

.subtitulo{
  margin:0 0 24px;
  color: rgba(255,255,255,.70);
  font-family: var(--font-body);
  font-size: 16px;
  font-weight: 300;
  line-height: 1.85;
  letter-spacing: 0.02em;
}

.subtitulo-seccion{
  margin: 0 0 14px;
  font-family: var(--font-display);
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: rgba(255,255,255,.88);
}

/* =========================
   GRID / TARJETAS
========================= */
.grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.grid--2{
  grid-template-columns: repeat(2, 1fr);
}

.tarjeta{
  border: 1px solid var(--borde);
  background: var(--surface-2);
  border-radius: 2px;
  padding: 18px;
}

.tarjeta h3{
  margin: 0 0 10px;
  font-family: var(--font-display);
  font-size: 17px;
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1.3;
  color: rgba(255,255,255,.95);
}

.tarjeta p{
  margin:0 0 10px;
  font-family: var(--font-body);
  color: rgba(255,255,255,.72);
  line-height: 1.75;
  font-weight: 300;
  letter-spacing: 0.015em;
}

.lista{
  margin:0;
  padding-left: 18px;
  color: rgba(255,255,255,.68);
  font-family: var(--font-body);
  font-weight: 300;
  line-height: 1.85;
  letter-spacing: 0.01em;
}

.lista li{
  margin: 8px 0;
}

/* =========================
   PRODUCTOS HOME
========================= */
.grid--productos{
  gap: 26px;
  align-items: stretch;
  margin-top: 18px;
}

.tarjeta--vertical{
  max-width: 650px;
  margin: 0 auto;
  text-align: left;
  display:flex;
  flex-direction: column;
  height: 100%;

  background: rgba(16, 16, 16, 0.942);

  border: 2px solid var(--verde);
  border-radius: 2px;

  overflow: hidden;

  box-shadow: 0 10px 24px rgba(0,0,0,.30);
  border-color: rgba(22, 83, 14, 0.38);
}

.tarjeta__descripcion{
  min-height: 48px;
}

.tarjeta__media{
  margin: 14px 0;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.10);
}

.tarjeta__img{
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  display:block;
}

/* =========================
   SERVICIOS INTRO
========================= */
.servicios-intro{
  margin-bottom: 18px;
}

.servicios-intro h3{
  margin: 0 0 12px;
  font-family: var(--font-display);
  font-size: 17px;
  font-weight: 600;
  letter-spacing: -0.01em;
}

/* =========================
   SERVICIOS LANDING
========================= */
.servicios-landing{
  margin-top: 18px;
}

.servicios-landing__intro{
  margin-bottom: 16px;
  max-width: 72ch;
}

.servicios-landing__titulo{
  margin: 0 0 10px;
  font-family: var(--font-display);
  font-size: 17px;
  font-weight: 600;
  letter-spacing: -0.01em;
}

.servicios-landing__texto{
  margin: 0;
  color: rgba(255,255,255,.78);
  line-height: 1.7;
}

.servicios-landing__grid{
  align-items: stretch;
  gap: 22px;
}

.servicios-landing__card{
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 26px 24px 24px;
  border: 1px solid rgba(18, 79, 10, 0.38);
  border-radius: 2px;
  background: rgba(255,255,255,.03);
  box-shadow: 0 10px 24px rgba(0,0,0,.22);
}

.servicios-landing__top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
}

.servicios-landing__eyebrow{
  margin:0;
  font-size:12px;
  font-weight:700;
  color:#59d84a;
  letter-spacing:0.18em;
  text-transform:uppercase;
}

.servicios-landing__badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:6px 10px;
  border-radius:2px;
  border:1px solid rgba(31,173,13,.28);
  background:rgba(31,173,13,.10);
  color:rgba(230,255,226,.92);
  font-size:11px;
  font-weight:600;
  letter-spacing:0.08em;
  text-transform:uppercase;
  white-space: nowrap;
}

.servicios-landing__card h3{
  margin:0 0 12px;
  font-size:20px;
  line-height:1.3;
  color:rgba(255,255,255,.95);
}

.servicios-landing__resumen{
  margin:0 0 16px;
  color:rgba(255,255,255,.72);
  line-height:1.75;
  font-size:15px;
}

.lista--servicios{
  margin:0;
  padding:0;
  list-style:none;
}

.lista--servicios li{
  position:relative;
  margin:0 0 10px;
  padding-left:18px;
  color:rgba(255,255,255,.75);
  line-height:1.7;
}

.lista--servicios li::before{
  content:"";
  position:absolute;
  left:0;
  top:11px;
  width:7px;
  height:7px;
  border-radius:2px;
  background:var(--verde);
}

.servicios-landing__resultado{
  margin-top:auto;
  padding-top:16px;
  border-top:1px solid rgba(255,255,255,.08);
  color:rgba(255,255,255,.80);
  line-height:1.7;
  font-size:14px;
}

.servicios-landing__card--enfoque{
  border-color: rgba(31,173,13,.45);
}

.servicios-landing__cta{
  display:flex;
  gap: 12px;
  flex-wrap: wrap;
  align-items: center;
}

.servicios-impacto h3{
  margin-top: 28px;
}

/* =========================
   ACCIONES
========================= */
.acciones-seccion{
  margin-top: 20px;
}

.acciones-seccion--centrada{
  display: flex;
  justify-content: center;
  margin-top: 22px;
}

/* =========================
   NOSOTROS
========================= */
.bloque-servicio{
  border: 1px solid rgba(41, 118, 31, 0.42);
  background: var(--surface-1);
  border-radius: 2px;
  padding: 18px;
  margin-top: 14px;
  box-shadow: 0 8px 20px rgba(0,0,0,.18);
  transition:
    transform 0.26s cubic-bezier(0.22, 1, 0.36, 1),
    border-color 0.26s ease,
    box-shadow 0.26s ease,
    background 0.26s ease;
}

.bloque-servicio:hover{
  transform: translateY(-3px);
  border-color: rgba(24, 88, 16, 0.65);
  box-shadow: 0 14px 28px rgba(0,0,0,.26);
  background: linear-gradient(180deg, rgba(255,255,255,.04) 0%, rgba(255,255,255,.025) 100%);
}

.bloque-servicio h4{
  margin: 0 0 8px;
  font-size: 16px;
  font-weight: 700;
}

.bloque-servicio p{
  margin: 0;
  color: rgba(255,255,255,.75);
  line-height: 1.7;
}

/* =========================
   FORMULARIO
========================= */
.formulario{
  max-width: 650px;
  border: 2px solid var(--borde);
  background: #000;
  border-radius: 4px;
  padding: 18px;
  border: 1px solid rgba(22, 79, 14, 0.42);
}

.campo{
  display:flex;
  flex-direction:column;
  gap: 8px;
  margin-bottom: 14px;
}

label{
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 12px;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: rgba(255,255,255,.75);
}

input,
textarea{
  border-radius: 2px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(31, 31, 31, 0.25);
  color: #fff;
  padding: 12px;
  outline: none;
  font-family: var(--font-body);
  font-weight: 300;
  font-size: 15px;
  letter-spacing: 0.015em;
}

input:focus,
textarea:focus{
  border-color: rgba(22, 65, 17, 0.8);
}

textarea{
  resize: vertical;
  min-height: 120px;
}

.nota{
  margin: 10px 0 0;
  color: rgba(255,255,255,.70);
  font-size: 13px;
}

/* =========================
   FOOTER
========================= */
.footer{
  padding: 56px 0;
  border-top: 1px solid rgba(255,255,255,.08);
  background-color: #000;
}

.footer__contenido{
  display:flex;
  justify-content:space-between;
  gap: 14px;
  color: rgba(255,255,255,.55);
  flex-wrap: wrap;
  align-items: center;
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 300;
  letter-spacing: 0.06em;
}

.footer__izq{
  display:flex;
  flex-direction: column;
  gap: 6px;
}

.footer__mini,
.footer__ubicacion{
  opacity: .85;
}

/* =========================
   WHATSAPP
========================= */
.whatsapp-fijo{
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 60;
  width: 60px;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #25D366;
  border-radius: 50%;
  box-shadow: var(--sombra-float);
  text-decoration: none;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}

.whatsapp-fijo:hover{
  transform: scale(1.08);
  box-shadow: 0 16px 35px rgba(0,0,0,.45);
  background: var(--verde-hover);
}

/* =========================
   PRODUCTO HERO
========================= */
.producto-hero{
  position: relative;
  min-height: 88svh;
  display: flex;
  align-items: center;
  padding: 22px;
  padding-top: var(--alto-header);
  overflow: hidden;
  background: #000;
}

.producto-hero__bg{
  position:absolute;
  inset:0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  opacity: .75;
  transform: scale(1.05);
}

.producto-hero__overlay{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, rgba(0,0,0,.85) 0%, rgba(0,0,0,.55) 55%, rgba(0,0,0,.25) 100%),
    radial-gradient(900px 500px at 18% 25%, rgba(0,0,0,.55), transparent 80%);
}

.producto-hero__contenido{
  position: relative;
  z-index: 2;
  max-width: 900px;
  padding: 26px 0;
}

.producto-hero__eyebrow{
  margin:0 0 14px;
  color: rgba(255,255,255,.72);
  font-weight: 600;
  letter-spacing: .4px;
  text-transform: uppercase;
  font-size: 12px;
}

.producto-hero__titulo{
  margin: 0 0 16px;
  font-family: var(--font-display);
  font-size: clamp(34px, 5vw, 68px);
  font-weight: 700;
  line-height: 1.06;
  letter-spacing: -0.03em;
}

.producto-hero__texto{
  margin: 0 0 22px;
  color: rgba(255,255,255,.82);
  font-size: 18px;
  line-height: 1.7;
  max-width: 62ch;
}

.producto-hero__acciones{
  display:flex;
  gap: 12px;
  flex-wrap: wrap;
}

.hero--producto{
  height: 90vh;
}

.hero--producto .hero__slide{
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  background-color: #111;
}

.hero__overlay--suave{
  background: linear-gradient(
    to bottom,
    rgba(0,0,0,0.35),
    rgba(0,0,0,0.25)
  );
}

.hero__contenido--producto{
  max-width: 720px;
}

.imagen-producto{
  width:100%;
  max-width:900px;
  border-radius:10px;
  margin:25px auto;
  display:block;
}

/* =========================
   REVEAL
========================= */
.reveal{
  opacity: 0;
  transform: translateY(26px);
  transition:
    opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}

.reveal--visible{
  opacity: 1;
  transform: translateY(0);
}

.reveal--d1{ transition-delay: 0.06s; }
.reveal--d2{ transition-delay: 0.12s; }
.reveal--d3{ transition-delay: 0.18s; }
.reveal--d4{ transition-delay: 0.24s; }
.reveal--d5{ transition-delay: 0.30s; }

/* =========================
   ACCESIBILIDAD
========================= */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible{
  outline: 2px solid var(--verde);
  outline-offset: 2px;
}


/* =========================
   responsivo
========================= */
@media (max-width: 900px){
  .grid,
  .grid--2{
    grid-template-columns: 1fr;
  }

  .hero__control{
    display:none;
  }

  .hero{
    min-height: 84svh;
    padding-top: calc(var(--alto-header) + 10px);
  }

  .hero__slide{
    background-size: cover;
    background-position: center center;
    transform: none;
    transition: opacity 900ms ease;
  }

  .hero__slide--activa{
    opacity: 0.72;
    transform: none;
  }

  .hero__overlay{
    background:
      linear-gradient(180deg, rgba(0,0,0,.78) 0%, rgba(0,0,0,.62) 56%, rgba(0,0,0,.46) 100%),
      radial-gradient(560px 340px at 28% 34%, rgba(0,0,0,.30), transparent 78%);
  }

  .hero > .contenedor{
    min-height: calc(84svh - var(--alto-header) - 10px);
    display: flex;
    align-items: center;
  }

  .hero__contenido{
    max-width: 620px;
    padding: 16px 0 48px;
  }

  .hero__titulo{
    font-size: clamp(32px, 8vw, 50px);
    line-height: 1.08;
    max-width: 12ch;
  }

  .hero__texto,
  .hero__validacion{
    max-width: 34ch;
  }

  .hero__contenido .boton--verde{
    font-size: 13px;
    padding: 11px 20px;
    min-width: 0;
  }

  .producto-hero{
    min-height: 76svh;
  }

  .servicios-landing__card{
    padding: 20px 18px;
    border-radius: 14px;
  }

  .servicios-landing__top{
    align-items: flex-start;
    flex-direction: column;
    gap: 8px;
  }

  .servicios-landing__card h3{
    font-size: 19px;
  }

  .servicios-landing__resumen{
    font-size: 14px;
  }

  .hero__video{
    object-fit: cover;
    object-position: center center;
  }
}


@media (max-width: 860px){
  :root{
    --alto-header: 68px;
  }

  .menu{
    display:inline-flex;
  }

  .logo__img{
    height: 34px;
  }

  .header__contenido{
    height: var(--alto-header);
  }

  .nav{
    position: fixed;
    top: var(--alto-header);
    left: 0;
    right: 0;
    flex-direction:column;
    align-items:stretch;
    background: rgba(22,24,26,.98);
    border-bottom: 1px solid var(--borde);
    padding: 12px 18px;
    gap: 8px;
    z-index: 55;
    max-height: calc(100svh - var(--alto-header));
    overflow-y: auto;

    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-8px);
    transition:
      opacity .22s ease,
      transform .22s ease,
      visibility .22s ease;
  }

  .nav.nav--abierto{
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
  }

  .nav__link{
    padding: 12px;
    border-radius: 10px;
    background: rgba(255,255,255,.04);
  }

  .nav__link:hover{
    background: rgba(255,255,255,.08);
  }
}

@media (min-width: 861px){
  .nav{
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: none !important;
  }
}

@media (max-width: 520px){
  .whatsapp-fijo{
    width: 54px;
    height: 54px;
    right: 12px;
    bottom: 12px;
    padding: 0;
  }

  .hero{
    min-height: 84svh;
    padding-inline: 16px;
  }

  .hero > .contenedor{
    min-height: calc(84svh - var(--alto-header) - 10px);
  }

  .hero__overlay{
    background:
      linear-gradient(180deg, rgba(0,0,0,.78) 0%, rgba(0,0,0,.62) 56%, rgba(0,0,0,.46) 100%),
      radial-gradient(520px 320px at 26% 34%, rgba(0,0,0,.30), transparent 78%);
  }

   .hero__contenido{
  max-width: 100%;
  padding: 22px 18px 56px;
  background: transparent;
  border-radius: 14px;
}

  .hero__titulo{
    max-width: 100%;
    color: #ffffff;
    text-shadow: 0 4px 18px rgba(0,0,0,.42);
  }

  .hero__texto{
    max-width: 100%;
    color: rgba(255,255,255,.94);
    text-shadow: 0 2px 10px rgba(0,0,0,.22);
  }

  .hero__validacion{
    max-width: 100%;
    color: rgba(255,255,255,.90);
    text-shadow: 0 2px 10px rgba(0,0,0,.20);
  }

  .hero__video{
    object-fit: cover;
    object-position: 66% center;
  }
}

@media (prefers-reduced-motion: reduce){
  .reveal{
    opacity: 1;
    transform: none;
    transition: none;
  }

  .boton__ripple{
    display: none;
  }

  .hero__slide{
    transition: none;
  }

  .nav{
    transition: none;
  }

  html{
    scroll-behavior: auto;
  }
}

.hero__validacion{
  margin: 0 0 22px;
  font-size: 0.95rem;
  color: #b0b0b0;
  font-weight: 400;
  max-width: 38ch;
}

.hero__media{
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
}

.hero__video{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  opacity: 0.78;
}