/* Generated by scripts/build-critical-css.cjs. Edit the source files. */

/* Source: remontaje-cine.css */
/* ================================================================
   ENSUTEX · REMONTAJE CINE 2026
   Capa final de experiencia. No reemplaza el sistema existente:
   lo calibra con un marco, una escala y un lenguaje de movimiento.
   ================================================================ */

:root {
  --ens-cinema-bg: #000000;
  --ens-ink: #070707;
  --ens-paper: #fdfbff;
  --ens-red: #e20613;
  /* --ens-sky ya NO se define acá: colisionaba con ensutex-visual-system.css
     (#e20613) y tokens-premium.css (#87CEEB), y quién ganaba dependía del
     orden de carga. Definición única en assets/css/premium-video.css. */
  --ens-frame: 76rem;
  --ens-frame-pad: max(4rem, calc((100vw - var(--ens-frame)) / 2));
  --space-section-sm: clamp(3rem, 6vw, 4.5rem);
  --space-section-md: clamp(4.5rem, 8vw, 6.5rem);
  --space-section-lg: clamp(6rem, 10vw, 8.5rem);
  --space-heading: clamp(2rem, 4vw, 3.5rem);
  --ens-spring: cubic-bezier(0.34, 1.35, 0.64, 1);
  --ens-ease: cubic-bezier(0.16, 1, 0.3, 1);
}

html {
  background: var(--ens-cinema-bg);
  max-width: 100%;
  overflow-x: clip;
}

body {
  max-width: 100%;
  overflow-x: clip;
}

/* La opacidad nunca se aplica a una secciÃ³n completa: degrada contraste y crea capas gigantes. */
body section:not(:first-of-type) {
  opacity: 1 !important;
  transform: none !important;
  animation-name: none !important;
}

@supports (content-visibility: auto) {
  main > section:not(#hero-section) {
    content-visibility: auto;
    contain-intrinsic-size: auto 900px;
  }
}

/* Los nombres de ligadura nunca se muestran. local-icons.js inyecta SVG. */
.material-symbols-outlined {
  display: inline-flex !important;
  width: 1em;
  min-width: 1em;
  height: 1em;
  align-items: center;
  justify-content: center;
  font-family: inherit !important;
  font-size: 1em;
  font-feature-settings: normal !important;
  letter-spacing: 0 !important;
  line-height: 1;
  text-transform: none !important;
  visibility: visible !important;
}

.material-symbols-outlined:not([data-icon-ready]) {
  color: transparent !important;
  font-size: 0 !important;
}

.material-symbols-outlined[data-icon-ready] {
  color: inherit;
}

.material-symbols-outlined > svg,
.ens-local-icon {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
  stroke: currentColor;
}

.ens-frame {
  width: min(100%, var(--ens-frame));
  margin-inline: auto;
  padding-inline: 4rem;
}

.ens-section-head {
  max-width: 52rem;
  margin-bottom: var(--space-heading);
}

.ens-section-head--center {
  margin-inline: auto;
  text-align: center;
}

.ens-eyebrow {
  display: inline-flex;
  min-height: 1.75rem;
  align-items: center;
  gap: 0.6rem;
  margin: 0 0 1rem;
  color: var(--ens-sky);
  font-size: 0.75rem;
  font-weight: 850;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
}

.ens-eyebrow::before {
  width: 2.2rem;
  height: 1px;
  background: currentColor;
  content: "";
}

.ens-cinema {
  position: relative;
  overflow: clip;
  background: var(--ens-cinema-bg);
  color: #ffffff;
  isolation: isolate;
}

.ens-cinema::before {
  position: absolute;
  z-index: 0;
  inset: 0;
  background:
    radial-gradient(circle at 12% 16%, rgba(135, 206, 235, 0.08), transparent 30%),
    radial-gradient(circle at 84% 70%, rgba(226, 6, 19, 0.07), transparent 29%);
  content: "";
  pointer-events: none;
}

.ens-cinema__texture,
.ens-cinema .ens-motion-grid {
  position: absolute;
  z-index: 2;
  inset: 0;
  overflow: hidden;
  opacity: 0.42;
  pointer-events: none;
}

.ens-cinema__texture::before,
.ens-cinema .ens-motion-grid::before {
  position: absolute;
  inset: -1px;
  background-image:
    linear-gradient(rgba(135, 206, 235, 0.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(135, 206, 235, 0.045) 1px, transparent 1px);
  background-size: 4rem 4rem;
  content: "";
  -webkit-mask-image: radial-gradient(circle at 50% 50%, #000 12%, transparent 72%);
  mask-image: radial-gradient(circle at 50% 50%, #000 12%, transparent 72%);
}

.ens-cinema__video,
.ens-cinema .ens-motion-product {
  display: block;
  width: 100%;
  max-width: 100%;
  height: 100%;
  margin: 0;
  background: var(--ens-cinema-bg);
  object-fit: contain;
  filter:
    drop-shadow(0 0 1px rgba(135, 206, 235, 0.3))
    drop-shadow(0 0 24px rgba(135, 206, 235, 0.09));
  -webkit-mask-image: radial-gradient(ellipse 96% 96% at 50% 50%, #000 72%, rgba(0, 0, 0, 0.88) 86%, transparent 100%);
  mask-image: radial-gradient(ellipse 96% 96% at 50% 50%, #000 72%, rgba(0, 0, 0, 0.88) 86%, transparent 100%);
}

/* ---------- Hero: una sola escena completa dentro de 100dvh ---------- */
#hero-section.ens-cinema-hero {
  box-sizing: border-box;
  display: flex;
  min-height: 100svh;
  padding-top: 5rem;
  align-items: stretch;
  background: var(--ens-cinema-bg) !important;
  color: #ffffff;
}

.ens-cinema-hero__inner {
  position: relative;
  z-index: 3;
  display: grid;
  width: min(100%, var(--ens-frame));
  min-height: calc(100svh - 5rem);
  margin-inline: auto;
  padding: clamp(1.75rem, 4vh, 3.25rem) 3rem;
  grid-template-columns: minmax(0, 0.93fr) minmax(28rem, 1.07fr);
  gap: clamp(2rem, 5vw, 5.5rem);
  align-items: center;
}

.ens-cinema-hero__copy {
  min-width: 0;
  max-width: 40rem;
}

#hero-section .ens-motion-eyebrow {
  display: flex;
  max-width: 35rem;
  margin: 0 0 clamp(0.65rem, 1.5vh, 1rem);
  color: #c9c6c3;
  font-size: clamp(0.75rem, 0.8vw, 0.82rem);
  font-weight: 800;
  letter-spacing: 0.08em;
  line-height: 1.45;
  text-align: left;
  text-transform: uppercase;
}

#hero-section .ens-motion-hero__title {
  max-width: 11ch;
  margin: 0;
  color: #ffffff;
  font-size: clamp(2.4rem, 4.6vw, 3.8rem);
  font-weight: 900;
  letter-spacing: -0.055em;
  line-height: 0.92;
  text-align: left;
  text-wrap: balance;
  text-transform: uppercase;
}

#hero-section .ens-hero-line {
  display: block;
  white-space: nowrap;
}

#hero-section .ens-hero-line--accent {
  color: var(--ens-sky);
  text-shadow: 0 0 28px rgba(135, 206, 235, 0.14);
}

#hero-section .ens-motion-hero__lead {
  max-width: 38rem;
  margin: clamp(1rem, 2.4vh, 1.55rem) 0 0;
  color: #dad9d7;
  font-size: clamp(1rem, 1.18vw, 1.08rem);
  line-height: 1.6;
  text-align: left;
}

#hero-section .ens-motion-chips {
  display: flex;
  margin: clamp(0.9rem, 2.2vh, 1.4rem) 0 0;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: flex-start;
}

#hero-section .ens-motion-chips span {
  display: inline-flex;
  min-height: 2rem;
  padding: 0.42rem 0.72rem;
  align-items: center;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.055);
  color: #ebeae9;
  font-size: 0.75rem;
  font-weight: 750;
  letter-spacing: 0.01em;
  line-height: 1.15;
  white-space: nowrap;
  backdrop-filter: blur(8px) saturate(130%);
  -webkit-backdrop-filter: blur(8px) saturate(130%);
}

#hero-section .ens-motion-chips strong {
  margin-left: 0.28rem;
  color: var(--ens-sky);
}

#hero-section .ens-motion-actions {
  display: flex;
  margin-top: clamp(1rem, 2.4vh, 1.5rem);
  align-items: center;
  flex-wrap: wrap;
  gap: 0.8rem;
  justify-content: flex-start;
}

#hero-section .ens-motion-button,
#hero-section .ens-motion-link {
  display: inline-flex;
  min-height: 2.9rem;
  padding: 0.72rem 1.2rem;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  font-size: 0.82rem;
  font-weight: 850;
  letter-spacing: 0.02em;
  line-height: 1.1;
  text-decoration: none;
  transition: transform 220ms var(--ens-spring), border-color 220ms ease, background-color 220ms ease;
}

#hero-section .ens-motion-button--primary {
  order: -1;
  border: 1px solid var(--ens-red);
  background: var(--ens-red);
  color: #ffffff;
  box-shadow: 0 16px 44px rgba(226, 6, 19, 0.24);
}

#hero-section .ens-motion-link {
  border: 1px solid rgba(255, 255, 255, 0.2);
  background: rgba(255, 255, 255, 0.04);
  color: #ffffff;
}

#hero-section .ens-motion-button:hover,
#hero-section .ens-motion-link:hover {
  transform: translateY(-2px);
}
/* 04-oct · El pulsado del botón del héroe del inicio, que es el más apretado del sitio y no respondía:
   medido con el mouse apretado encima, el transform quedaba idéntico al del reposo. Estas reglas van
   DESPUÉS del :hover a propósito —pesan lo mismo (un id, una clase, una pseudoclase) y en el empate
   gana la última—, así que al apretar manda ésta. Se copia el gesto de la referencia (Klarna: 0,09 s
   lineal) y el botón baja en vez de subir, para que se sienta que se hundió. */
#hero-section .ens-motion-button:active,
#hero-section .ens-motion-link:active {
  transform: translateY(0) scale(.975);
  transition: transform 90ms linear, background-color 90ms linear, border-color 90ms linear;
}

.ens-cinema-hero__media {
  position: relative;
  display: grid;
  min-width: 0;
  height: min(66vh, 39rem);
  max-height: calc(100svh - 5rem - 3.5rem);
  place-items: center;
}

.ens-cinema-hero__poster,
.ens-cinema-hero__video {
  grid-area: 1 / 1;
}

#hero-section .ens-cinema-hero__video {
  z-index: 2;
  opacity: 0 !important;
  transition: opacity 360ms ease;
}

#hero-section .ens-cinema-hero__video.is-playing {
  opacity: 1 !important;
}

.ens-cinema-hero__media::after {
  position: absolute;
  z-index: 0;
  width: min(70%, 30rem);
  height: 1.2rem;
  bottom: 8%;
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(135, 206, 235, 0.18), transparent 70%);
  content: "";
  filter: blur(8px);
}

.ens-cinema-hero__media video {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
}

.motion-ready .ens-cinema-enter {
  animation: ens-cinema-enter 640ms var(--ens-ease) both;
  animation-delay: var(--ens-enter-delay, 0ms);
}

/* El poster del producto es el LCP: entra inmediato; el copy conserva el stagger. */
#hero-section .ens-cinema-hero__media.ens-cinema-enter {
  opacity: 1 !important;
  animation: none !important;
}

@keyframes ens-cinema-enter {
  from { opacity: 0; transform: translate3d(0, 18px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

/* ---------- Storytelling oscuro ---------- */
.ens-cinema-proof,
.ens-cinema-showcase {
  padding-block: var(--space-section-lg);
}

.ens-cinema-proof__layout,
.ens-cinema-story__row {
  position: relative;
  z-index: 3;
  display: grid;
  grid-template-columns: minmax(0, .94fr) minmax(24rem, 1.06fr);
  gap: clamp(2.5rem, 5vw, 5rem);
  align-items: center;
}

.ens-cinema-proof__copy h2,
.ens-cinema-story__copy h2 {
  max-width: 14ch;
  margin: 0;
  color: #ffffff;
  font-size: clamp(2.2rem, 4.2vw, 4rem);
  font-weight: 900;
  letter-spacing: -0.055em;
  line-height: 0.95;
  text-transform: uppercase;
}

.ens-cinema-proof__copy > p:not(.ens-eyebrow),
.ens-cinema-story__copy > p:not(.ens-eyebrow) {
  max-width: 38rem;
  margin-top: 1.3rem;
  color: #c6c3c1;
  font-size: 1rem;
  line-height: 1.65;
}

.ens-cinema-proof__features,
.ens-magic-steps {
  display: grid;
  margin: 2rem 0 0;
  padding: 0;
  gap: 0;
  list-style: none;
}

.ens-cinema-proof__features li,
.ens-magic-steps li {
  display: grid;
  padding: 1rem 0;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  grid-template-columns: 2.7rem minmax(0, 1fr);
  gap: 0.9rem;
}

.ens-cinema-proof__features li::before {
  display: grid;
  width: 2rem;
  height: 2rem;
  border: 1px solid rgba(135, 206, 235, 0.35);
  border-radius: 50%;
  color: var(--ens-sky);
  content: "\2713";
  font-weight: 900;
  place-items: center;
}

.ens-cinema-proof__features strong,
.ens-magic-steps strong {
  display: block;
  color: #ffffff;
  font-size: 1rem;
}

.ens-cinema-proof__features span,
.ens-magic-steps p {
  display: block;
  margin: 0.2rem 0 0;
  color: #b7b3b0;
  font-size: 0.9rem;
  line-height: 1.55;
}

.ens-cinema-stage {
  position: relative;
  display: grid;
  min-height: min(74vh, 44rem);
  place-items: center;
}

.ens-cinema-stage video {
  position: relative;
  z-index: 1;
  max-height: min(74vh, 44rem);
}

.ens-cinema-showcase {
  padding-top: 0;
}

.ens-cinema-story {
  position: relative;
  z-index: 3;
  display: grid;
  gap: clamp(4rem, 10vw, 8rem);
}

.ens-cinema-story__row:nth-child(even) {
  grid-template-columns: minmax(24rem, 1.12fr) minmax(0, 0.88fr);
}

.ens-cinema-story__row:nth-child(even) .ens-cinema-stage {
  order: -1;
}

.ens-cinema-story__copy .ens-motion-link {
  display: inline-flex;
  min-height: 44px;
  margin-top: 1.5rem;
  align-items: center;
  color: #ffffff;
  font-size: 0.88rem;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 0.35rem;
}

/* Continuidad de las escenas reales y del marquee. */
#client-3d-world.ens-client-section,
[data-marquee].ens-cinema-marquee {
  border: 0;
  background: var(--ens-cinema-bg) !important;
}

#client-3d-world.ens-client-section {
  padding-block: var(--space-section-md);
}

#client-3d-world .ens-client-layout {
  position: relative;
  z-index: 3;
}

#client-3d-world .ens-client-copy {
  color: #ffffff;
}

#client-3d-world .ens-client-copy h2 {
  color: #ffffff;
}

#client-3d-world .ens-client-copy > p:last-child {
  color: #c6c3c1;
}

#client-3d-world .ens-motion-kicker {
  color: var(--ens-sky);
}

[data-marquee].ens-cinema-marquee {
  padding-block: var(--space-section-sm);
}

/* ---------- Proceso: respiro claro ---------- */
.ens-process {
  scroll-margin-top: 7rem;
  position: relative;
  overflow: clip;
  padding-block: var(--space-section-md);
  background:
    radial-gradient(circle at 7% 10%, rgba(135, 206, 235, 0.15), transparent 22rem),
    linear-gradient(180deg, #ffffff, var(--ens-paper));
  color: var(--ens-ink);
}

.ens-process__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
}

.ens-process-step {
  position: relative;
  min-width: 0;
  padding: 1.5rem 1rem 1.25rem;
  border-top: 1px solid #d9dadd;
}

.ens-process-step:not(:last-child)::after {
  position: absolute;
  width: 1.6rem;
  height: 1px;
  top: 3.15rem;
  right: -0.8rem;
  background: #b0aca8;
  content: "";
}

.ens-process-step__icon {
  display: grid;
  width: 3.5rem;
  height: 3.5rem;
  margin-bottom: 1.2rem;
  border: 1px solid rgba(0, 0, 0, 0.14);
  border-radius: 1.1rem;
  background: rgba(255, 255, 255, 0.8);
  color: #0b0a09;
  place-items: center;
  box-shadow: 0 16px 34px rgba(0, 0, 0, 0.08), inset 0 1px rgba(255, 255, 255, 0.9);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .06em;
}

.ens-process-step__icon svg {
  width: 1.65rem;
  height: 1.65rem;
}

.ens-process-step__number {
  display: block;
  margin-bottom: 0.55rem;
  color: var(--ens-red);
  font-size: 0.75rem;
  font-weight: 900;
  letter-spacing: 0.14em;
}

.ens-process-step h3 {
  margin: 0;
  color: #0b0a09;
  font-size: 1rem;
  font-weight: 900;
  letter-spacing: -0.02em;
  line-height: 1.2;
  text-transform: uppercase;
}

.ens-process-step p {
  margin: 0.65rem 0 0;
  color: #57534f;
  font-size: 0.9rem;
  line-height: 1.55;
}

.ens-process__cta {
  display: flex;
  margin-top: 2rem;
  justify-content: center;
}

.ens-process__cta a {
  display: inline-flex;
  min-height: 3rem;
  padding: 0.8rem 1.45rem;
  align-items: center;
  gap: 0.6rem;
  border-radius: 999px;
  background: var(--ens-red);
  color: #ffffff;
  font-size: 0.82rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  box-shadow: 0 15px 36px rgba(226, 6, 19, 0.22);
}

.ens-trust-card {
  position: relative;
  display: grid;
  max-width: 66rem;
  margin: 2.5rem auto 0;
  padding: clamp(1.3rem, 3vw, 2rem);
  overflow: hidden;
  border-radius: 1.4rem;
  background: rgba(255, 255, 255, 0.68);
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 1.2rem;
  align-items: center;
  box-shadow: 0 22px 65px rgba(10, 10, 10, 0.1), inset 0 1px rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(18px) saturate(150%);
  -webkit-backdrop-filter: blur(18px) saturate(150%);
}

.ens-trust-card::before {
  position: absolute;
  inset: 0;
  padding: 1px;
  border-radius: inherit;
  background: linear-gradient(130deg, rgba(135, 206, 235, 0.8), rgba(255, 255, 255, 0.2), rgba(226, 6, 19, 0.35));
  content: "";
  pointer-events: none;
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
}

.ens-trust-card__icon {
  display: grid;
  width: 3.4rem;
  height: 3.4rem;
  border-radius: 1rem;
  background: #0b0a09;
  color: var(--ens-sky);
  place-items: center;
}

.ens-trust-card__icon svg {
  width: 1.8rem;
  height: 1.8rem;
}

.ens-trust-card__copy strong {
  display: block;
  color: var(--ens-red);
  font-size: 0.75rem;
  font-weight: 900;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.ens-trust-card__copy span {
  display: block;
  margin-top: 0.3rem;
  color: #1a1817;
  font-size: 1rem;
  font-weight: 750;
  line-height: 1.45;
}

.ens-trust-card__link {
  display: inline-flex;
  min-height: 44px;
  padding-inline: 1rem;
  align-items: center;
  border: 1px solid rgba(0, 0, 0, 0.18);
  border-radius: 999px;
  color: #0b0a09;
  font-size: 0.75rem;
  font-weight: 850;
}

.ens-process-doubts {
  display: flex;
  max-width: 66rem;
  margin: 1rem auto 0;
  flex-wrap: wrap;
  gap: 0.6rem;
  justify-content: center;
}

.ens-doubt-chip {
  position: relative;
  display: inline-flex;
  min-height: 44px;
  padding: 0.65rem 0.9rem;
  align-items: center;
  border: 1px solid rgba(0, 0, 0, 0.14);
  border-radius: 999px;
  background: #ffffff;
  color: #1a1817;
  font-size: 0.78rem;
  font-weight: 800;
}

.ens-doubt-chip[aria-expanded="true"] {
  border-color: var(--ens-sky);
  box-shadow: 0 0 0 3px rgba(135, 206, 235, 0.18);
}

.ens-doubt-popover {
  display: none;
  width: min(100%, 42rem);
  margin: 0.8rem auto 0;
  padding: 0.9rem 1rem;
  border: 1px solid rgba(0, 0, 0, 0.12);
  border-radius: 0.9rem;
  background: #ffffff;
  color: #3f3f46;
  font-size: 0.9rem;
  line-height: 1.55;
  text-align: center;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.08);
}

.ens-doubt-popover.is-visible {
  display: block;
}

/* ---------- Teaser y diseño/canje ---------- */
.ens-catalog-teaser,
.ens-exchange {
  padding-block: var(--space-section-md);
}

body.ensutex-home #catalogo.ens-catalog-teaser {
  background: var(--ens-cinema-bg) !important;
  color: #ffffff;
}

.ens-catalog-teaser__layout,
.ens-exchange__layout {
  position: relative;
  z-index: 3;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(23rem, 0.84fr);
  gap: clamp(2.5rem, 7vw, 6rem);
  align-items: center;
}

.ens-catalog-teaser h2,
.ens-exchange h2 {
  max-width: 13ch;
  margin: 0;
  color: #ffffff;
  font-size: clamp(2.15rem, 4.5vw, 4.25rem);
  font-weight: 900;
  letter-spacing: -0.05em;
  line-height: 0.98;
  text-transform: uppercase;
}

.ens-catalog-teaser__copy > p:not(.ens-eyebrow),
.ens-exchange__copy > p:not(.ens-eyebrow) {
  max-width: 44rem;
  margin: 1.15rem 0 0;
  color: #c6c3c1;
  font-size: 1rem;
  line-height: 1.65;
}

.ens-catalog-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.65rem;
}

.ens-catalog-stat {
  display: flex;
  min-height: 9rem;
  padding: 1.1rem;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 1.2rem;
  background: rgba(255, 255, 255, 0.045);
  flex-direction: column;
  justify-content: flex-end;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.ens-catalog-stat strong {
  color: #ffffff;
  font-size: clamp(2.35rem, 5vw, 4rem);
  font-weight: 900;
  letter-spacing: -0.06em;
  line-height: 0.9;
}

.ens-catalog-stat span {
  margin-top: 0.7rem;
  color: #c6c3c1;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.ens-section-actions {
  display: flex;
  margin-top: 1.7rem;
  flex-wrap: wrap;
  gap: 0.8rem;
}

.ens-section-actions a {
  display: inline-flex;
  min-height: 3rem;
  padding: 0.8rem 1.35rem;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 850;
}

.ens-section-actions__primary {
  background: var(--ens-red);
  color: #ffffff;
}

.ens-section-actions__secondary {
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: #ffffff;
}

.ens-exchange__guides {
  display: grid;
  margin-top: 1.5rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.8rem;
}

.ens-guide-link {
  display: flex;
  min-height: 8.6rem;
  padding: 1rem;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.035);
  flex-direction: column;
  color: #ffffff;
  transition: transform 240ms var(--ens-spring), border-color 240ms ease;
}

.ens-guide-link:hover {
  border-color: rgba(135, 206, 235, 0.5);
  transform: translateY(-3px);
}

.ens-guide-link svg {
  width: 1.5rem;
  height: 1.5rem;
  color: var(--ens-sky);
}

.ens-guide-link strong {
  margin-top: auto;
  font-size: 1rem;
  text-transform: uppercase;
}

.ens-guide-link span {
  margin-top: 0.35rem;
  color: #b8b4b1;
  font-size: 0.82rem;
  line-height: 1.45;
}

.ens-exchange-card {
  position: relative;
  padding: clamp(1.4rem, 4vw, 2.4rem);
  overflow: hidden;
  border-radius: 1.5rem;
  background:
    radial-gradient(circle at 84% 12%, rgba(135, 206, 235, 0.14), transparent 34%),
    rgba(255, 255, 255, 0.035);
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.45), inset 0 1px rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(18px) saturate(145%);
  -webkit-backdrop-filter: blur(18px) saturate(145%);
}

.ens-exchange-card::before {
  position: absolute;
  inset: 0;
  padding: 1px;
  border-radius: inherit;
  background: linear-gradient(130deg, rgba(135, 206, 235, 0.65), rgba(255, 255, 255, 0.08), rgba(226, 6, 19, 0.42));
  content: "";
  pointer-events: none;
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
}

.ens-exchange-card__label {
  color: var(--ens-sky);
  font-size: 0.75rem;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.ens-exchange-card__title {
  display: block;
  margin-top: 1.3rem;
  color: #ffffff;
  font-size: clamp(2rem, 4.2vw, 3.5rem);
  font-weight: 900;
  letter-spacing: -0.06em;
  line-height: 0.94;
  text-transform: uppercase;
}

.ens-exchange-card__condition {
  display: flex;
  margin-top: 1.4rem;
  padding-top: 1rem;
  border-top: 1px dashed rgba(255, 255, 255, 0.22);
  color: #d0cdca;
  font-size: 0.9rem;
  line-height: 1.5;
}

.ens-exchange-card__seal {
  display: grid;
  width: 4.2rem;
  height: 4.2rem;
  margin-top: 1.5rem;
  border: 1px solid rgba(135, 206, 235, 0.45);
  border-radius: 50%;
  color: var(--ens-sky);
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  line-height: 1.1;
  text-align: center;
  text-transform: uppercase;
  place-items: center;
  transform: rotate(-7deg);
}

/* ---------- FAQ única ---------- */
.ens-faq {
  scroll-margin-top: 7rem;
  padding-block: var(--space-section-md);
  background:
    radial-gradient(circle at 92% 4%, rgba(135, 206, 235, 0.18), transparent 24rem),
    var(--ens-paper);
  color: #0b0a09;
}

.ens-faq__intro {
  max-width: 40rem;
  margin: -1rem auto 0;
  color: #52525b;
  line-height: 1.65;
}

.ens-faq__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.25rem, 3vw, 2rem);
}

.ens-faq__group {
  display: grid;
  align-content: start;
  gap: .7rem;
}

.ens-faq__group-label {
  margin: 0 0 .1rem;
  color: #6b252a;
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.ens-faq__tabs {
  max-width: 100%;
  overflow-x: auto;
  display: flex;
  width: fit-content;
  max-width: 100%;
  margin: 0 auto 1.5rem;
  padding: 0.3rem;
  overflow-x: auto;
  border: 1px solid rgba(0, 0, 0, 0.1);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.76);
  gap: 0.25rem;
  scrollbar-width: none;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

.ens-faq__tabs::-webkit-scrollbar {
  display: none;
}

.ens-faq__tab {
  min-height: 44px;
  padding: 0.65rem 0.95rem;
  flex: 0 0 auto;
  border-radius: 999px;
  color: #52525b;
  font-size: 0.76rem;
  font-weight: 850;
  white-space: nowrap;
}

.ens-faq__tab[aria-selected="true"] {
  background: #0b0a09;
  color: #ffffff;
}

.ens-faq__panel {
  display: grid;
  max-width: 52rem;
  margin-inline: auto;
  gap: 0.7rem;
}

.ens-faq__panel[hidden] {
  display: none;
}

.ens-faq__item {
  position: relative;
  overflow: hidden;
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.76);
  box-shadow: 0 14px 36px rgba(0, 0, 0, 0.055), inset 0 1px rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.ens-faq__item::before {
  position: absolute;
  inset: 0;
  padding: 1px;
  border-radius: inherit;
  background: linear-gradient(130deg, rgba(135, 206, 235, 0.55), rgba(0, 0, 0, 0.08), rgba(226, 6, 19, 0.2));
  content: "";
  pointer-events: none;
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
}

.ens-faq__question {
  display: grid;
  width: 100%;
  min-height: 3.5rem;
  padding: 1rem 1.1rem;
  grid-template-columns: minmax(0, 1fr) 1.5rem;
  gap: 1rem;
  align-items: center;
  color: #151413;
  font-size: 0.96rem;
  font-weight: 800;
  line-height: 1.35;
  text-align: left;
}

.ens-faq__question svg {
  width: 1.25rem;
  height: 1.25rem;
  transition: transform 240ms var(--ens-spring);
}

.ens-faq__question[aria-expanded="true"] svg {
  transform: rotate(45deg);
}

.ens-faq__answer {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 280ms var(--ens-ease);
}

.ens-faq__answer > div {
  overflow: hidden;
}

.ens-faq__answer p {
  margin: 0;
  padding: 0 1.1rem 1.1rem;
  color: #52525b;
  font-size: 0.94rem;
  line-height: 1.65;
}

.ens-faq__question[aria-expanded="true"] + .ens-faq__answer {
  grid-template-rows: 1fr;
}

/* ---------- Contacto: cupón llena el lateral sin alterar el flujo ---------- */
#contacto.ens-contact {
  padding-block: var(--space-section-md) !important;
}

#contacto.ens-contact > div {
  padding-inline: 3rem;
}

.ens-contact-coupon {
  margin-bottom: 1rem;
  padding: 1.3rem;
  border: 1px dashed rgba(0, 0, 0, 0.24);
  border-radius: 1rem;
  background: linear-gradient(135deg, #fbfaf9, #ffffff 55%, #fafaf9);
}

.ens-contact-coupon span {
  display: block;
  color: var(--ens-red);
  font-size: 0.75rem;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.ens-contact-coupon strong {
  display: block;
  margin-top: 0.5rem;
  color: #0b0a09;
  font-size: 1.5rem;
  font-weight: 900;
  letter-spacing: -0.04em;
  line-height: 1.05;
  text-transform: uppercase;
}

/* ---------- Catálogo: hero sin tablet, carrusel centrado, telas grandes ---------- */
.catalog-page-hero.ens-catalog-hero {
  min-height: min(100svh, 56rem);
  padding: 5rem 0 0 !important;
  background: var(--ens-cinema-bg) !important;
  color: #ffffff !important;
}

.catalog-page-hero.ens-catalog-hero > .absolute {
  display: none;
}

.catalog-page-hero.ens-catalog-hero > .relative.z-10 {
  display: grid;
  width: min(100%, var(--ens-frame));
  max-width: none !important;
  min-height: calc(min(100svh, 56rem) - 5rem);
  padding: var(--space-section-sm) 3rem !important;
  grid-template-columns: minmax(0, 0.9fr) minmax(28rem, 1.1fr);
  gap: clamp(2.5rem, 6vw, 5rem);
  align-items: center;
}

.ens-catalog-hero .catalog-page-hero__copy {
  max-width: 40rem;
  margin: 0;
  text-align: left;
}

.ens-catalog-hero .catalog-hero-badge {
  display: inline-flex;
  min-height: 1.8rem;
  margin-bottom: 1rem;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--ens-sky);
  font-size: 0.75rem;
  letter-spacing: 0.12em;
}

.ens-catalog-hero .catalog-hero-badge::before {
  width: 2.2rem;
  height: 1px;
  background: currentColor;
  content: "";
}

.ens-catalog-hero .catalog-hero-badge > span {
  display: none;
}

.ens-catalog-hero h1 {
  margin-bottom: 1.2rem !important;
  color: #ffffff;
  font-size: clamp(2.25rem, 4.7vw, 4.4rem) !important;
  line-height: 0.98 !important;
}

.ens-catalog-hero .catalog-page-hero__copy > p {
  color: #cccac7 !important;
  font-size: 1rem !important;
  line-height: 1.65;
}

.ens-catalog-hero .cta-flow {
  justify-content: flex-start !important;
}

.ens-catalog-hero .cta-flow a:first-child {
  border-color: var(--ens-red);
  border-radius: 999px;
  background: var(--ens-red);
}

.ens-catalog-hero .cta-flow a:last-child {
  border-color: rgba(255, 255, 255, 0.28);
  border-radius: 999px;
  color: #ffffff;
}

.ens-catalog-hero #cat-prueba-visual {
  min-width: 0;
  margin: 0;
}

.ens-catalog-hero .showreel-frame {
  width: min(100%, 38rem);
  margin-inline: auto;
  overflow: visible;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent;
  box-shadow: none !important;
  -webkit-mask-image: radial-gradient(ellipse 96% 96% at 50% 50%, #000 74%, rgba(0, 0, 0, 0.84) 88%, transparent 100%);
  mask-image: radial-gradient(ellipse 96% 96% at 50% 50%, #000 74%, rgba(0, 0, 0, 0.84) 88%, transparent 100%);
}

.ens-catalog-hero #cat-prueba-visual .showreel-frame {
  overflow: hidden !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.ens-catalog-hero #cat-prueba-visual .showreel-slide {
  border-radius: 0 !important;
  background: transparent !important;
}

#catalogo.ens-catalog-carousel-section {
  padding-block: var(--space-section-md) !important;
  border: 0 !important;
  background: #050505 !important;
  color: #ffffff;
}

#catalogo.ens-catalog-carousel-section h2,
#catalogo.ens-catalog-carousel-section .catalog-carousel__status {
  color: inherit;
}

#catalogo.ens-catalog-carousel-section .cat-card,
#catalogo.ens-catalog-carousel-section .catalog-search,
#catalogo.ens-catalog-carousel-section .catalog-paths {
  color: #0b0a09;
}

#catalogo.ens-catalog-carousel-section .md\:flex .inline-block.mb-3 {
  color: #d4d4d8 !important;
}

#catalogo.ens-catalog-carousel-section .catalog-swipe-hint {
  color: #87ceeb !important;
}

#catalogo.ens-catalog-carousel-section > div {
  padding-inline: 3rem;
}

.ens-catalog-carousel-section .catalog-carousel-shell {
  position: relative;
  width: min(100%, 76rem);
  margin-inline: auto;
  overflow: visible;
}

.ens-catalog-carousel-section .catalog-carousel__toolbar {
  position: absolute;
  z-index: 12;
  width: min(100%, 64rem);
  height: min(72vh, 40rem);
  inset: 0 0 auto;
  margin: 0 auto;
  grid-template-columns: 3.25rem minmax(0, 1fr) 3.25rem;
  pointer-events: none;
}

.ens-catalog-carousel-section .catalog-carousel__arrow {
  width: 3.25rem;
  height: 3.25rem;
  border-color: rgba(255, 255, 255, 0.22);
  background: rgba(14, 13, 12, 0.82);
  pointer-events: auto;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.ens-catalog-carousel-section .catalog-carousel__status {
  position: absolute;
  width: min(28rem, calc(100vw - 9rem));
  top: -2.4rem;
  left: 50%;
  color: #c0bdba;
  transform: translateX(-50%);
}

.ens-catalog-carousel-section #cat-grid[data-catalog-carousel] {
  min-height: min(72vh, 40rem);
  height: min(72vh, 40rem) !important;
  overflow: visible !important;
}

.ens-catalog-carousel-section #cat-grid[data-catalog-carousel] > [data-product-id] {
  width: min(25rem, 48vw);
  max-height: min(72vh, 40rem);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 1.2rem;
  background: #ffffff;
}

.ens-catalog-carousel-section #cat-grid[data-catalog-carousel] .catalog-product-stage {
  height: min(38vh, 18rem);
  max-height: 18rem;
  padding: 0.8rem;
}

.ens-catalog-carousel-section #cat-grid[data-catalog-carousel] > .is-carousel-center > .p-5 {
  margin-top: 0;
  padding: 0.9rem 1rem;
  border: 0;
  border-radius: 0 0 1.15rem 1.15rem;
  box-shadow: none;
}

.ens-catalog-carousel-section #cat-grid[data-catalog-carousel] > .is-carousel-prev,
.ens-catalog-carousel-section #cat-grid[data-catalog-carousel] > .is-carousel-next {
  opacity: 0.42;
  filter: saturate(0.7);
}

#telas.ens-fabrics {
  padding-block: var(--space-section-md) !important;
  border: 0 !important;
  background: #f5f3f2 !important;
}

#telas.ens-fabrics > div {
  padding-inline: 3rem;
}

#telas.ens-fabrics .fabric-content > .grid > div,
#telas.ens-fabrics .fabric-content > .max-w-4xl,
#telas.ens-fabrics .fabric-content > .max-w-3xl {
  display: grid !important;
  min-height: 42rem;
  padding: 0.9rem !important;
  border-radius: 1.2rem !important;
  grid-template-rows: minmax(0, 1.7fr) minmax(0, 0.75fr);
  background: #ffffff !important;
}

#telas.ens-fabrics .fabric-content > .grid > div > .mb-6,
#telas.ens-fabrics .fabric-content > .max-w-4xl > .mb-6,
#telas.ens-fabrics .fabric-content > .max-w-3xl > .mb-6 {
  order: 2;
  margin: 0;
  padding: 1rem 0.35rem 0.2rem;
}

#telas.ens-fabrics .fabric-content > .grid > div > .mt-auto,
#telas.ens-fabrics .fabric-content > .max-w-4xl > .mt-auto,
#telas.ens-fabrics .fabric-content > .max-w-3xl > .mt-auto {
  display: flex;
  width: 100%;
  max-width: none;
  margin: 0;
  order: 1;
  flex-direction: column;
}

#telas.ens-fabrics .fabric-photo {
  width: 100%;
  min-height: 0;
  flex: 1;
  border-radius: 0.9rem !important;
  aspect-ratio: 4 / 5 !important;
}

#telas.ens-fabrics .fabric-photo img {
  padding: 0 !important;
  object-fit: cover !important;
  transform: scale(1.02);
}

#telas.ens-fabrics .fabric-content .grid.grid-cols-2.gap-4.text-xs {
  margin-top: 0.8rem !important;
  padding: 0.8rem !important;
}

#cotizador-express[data-fade-rise] #cotizador-box {
  opacity: 0;
  transform: translate3d(0, 28px, 0);
  transition: opacity 680ms var(--ens-ease), transform 760ms var(--ens-ease);
}

#cotizador-express[data-fade-rise].fade-rise-active #cotizador-box {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

/* Standalone telas.html: la muestra manda, el marco acompaña. */
body.ensutex-fabric-guide main .fabric-card,
body:has(main [aria-labelledby="fabric-title"]) .fabric-card {
  padding: 0.85rem;
}

body.ensutex-fabric-guide .fabric-card img,
body:has(main [aria-labelledby="fabric-title"]) .fabric-card img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
}

.ens-fabric-cards .tl-card {
  display: flex;
  min-height: 36rem;
  padding: 0.85rem;
  overflow: hidden;
  border: 1px solid #e4e3e2;
  border-radius: 1.2rem;
  flex-direction: column;
  box-shadow: 0 18px 55px rgba(0, 0, 0, 0.07);
}

.ens-fabric-cards .tl-card__media {
  position: relative;
  width: 100%;
  min-height: 0;
  margin: 0 0 1rem;
  overflow: hidden;
  border-radius: 0.9rem;
  flex: 1 1 70%;
  background: #f5f5f6;
}

.ens-fabric-cards .tl-card__media img {
  width: 100%;
  height: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  transform: scale(1.04);
  transition: transform 420ms var(--ens-ease);
}

.ens-fabric-cards .tl-card:hover .tl-card__media img {
  transform: scale(1.08);
}

.ens-fabric-cards .tl-card > div,
.ens-fabric-cards .tl-card > p {
  margin-inline: 0.35rem;
}

/* ---------- Responsive ---------- */
@media (max-width: 1023px) {
  :root {
    --ens-frame-pad: 2rem;
  }

  .ens-frame,
  #contacto.ens-contact > div,
  #catalogo.ens-catalog-carousel-section > div,
  #telas.ens-fabrics > div {
    padding-inline: 2.5rem;
  }

  .ens-cinema-hero__inner,
  .catalog-page-hero.ens-catalog-hero > .relative.z-10 {
    grid-template-columns: minmax(0, 0.95fr) minmax(22rem, 1.05fr);
    gap: 2rem;
  }

  .ens-cinema-proof__layout,
  .ens-cinema-story__row,
  .ens-cinema-story__row:nth-child(even),
  .ens-catalog-teaser__layout,
  .ens-exchange__layout {
    gap: 2.5rem;
  }

  .ens-process__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ens-process-step:nth-child(2)::after {
    display: none;
  }

  .ens-process-step:nth-child(n+3) {
    border-top: 0;
  }
}

@media (max-width: 767px) {
  :root {
    --ens-frame-pad: 1.5rem;
    --space-section-sm: clamp(3rem, 15vw, 4rem);
    --space-section-md: clamp(3.8rem, 17vw, 5rem);
    --space-section-lg: clamp(4.2rem, 20vw, 5.8rem);
  }

  .ens-frame,
  #contacto.ens-contact > div,
  #catalogo.ens-catalog-carousel-section > div,
  #telas.ens-fabrics > div {
    padding-inline: 1.5rem;
  }

  #hero-section.ens-cinema-hero {
    min-height: 100svh;
    padding-top: 4rem;
  }

  .ens-cinema-hero__inner {
    display: flex;
    min-height: calc(100svh - 4rem);
    padding: clamp(1rem, 2.5vh, 1.35rem) 1.5rem max(1.15rem, env(safe-area-inset-bottom));
    flex-direction: column;
    gap: clamp(0.65rem, 1.6vh, 0.95rem);
    justify-content: center;
  }

  .ens-cinema-hero__copy {
    display: contents;
  }

  #hero-section .ens-motion-eyebrow {
    width: 100%;
    margin: 0;
    justify-content: center;
    font-size: 0.75rem;
    line-height: 1.35;
    text-align: center;
  }

  #hero-section .ens-motion-hero__title {
    width: 100%;
    max-width: 13ch;
    margin-inline: auto;
    font-size: clamp(2.2rem, 9vw, 2.8rem);
    line-height: 0.92;
    text-align: center;
  }

  .ens-cinema-hero__media {
    width: 100%;
    height: min(27dvh, 13.5rem);
    max-height: 13.5rem;
    order: 3;
  }

  #hero-section .ens-motion-hero__lead {
    margin: 0;
    order: 4;
    font-size: 1rem;
    line-height: 1.45;
    text-align: center;
  }

  #hero-section .ens-motion-chips {
    margin: 0;
    order: 5;
    gap: 0.38rem;
    justify-content: center;
  }

  #hero-section .ens-motion-chips span {
    min-height: 1.75rem;
    padding: 0.34rem 0.6rem;
    font-size: 0.75rem;
  }

  #hero-section .ens-motion-actions {
    display: grid;
    width: 100%;
    margin: 0;
    order: 6;
    grid-template-columns: 1fr;
    gap: 0.45rem;
  }

  #hero-section .ens-motion-button,
  #hero-section .ens-motion-link {
    width: 100%;
    min-height: 44px;
    padding-block: 0.68rem;
  }

  #hero-section .ens-motion-link {
    order: 2;
  }

  .ens-cinema-proof__layout,
  .ens-cinema-story__row,
  .ens-cinema-story__row:nth-child(even),
  .ens-catalog-teaser__layout,
  .ens-exchange__layout,
  .catalog-page-hero.ens-catalog-hero > .relative.z-10 {
    grid-template-columns: 1fr;
  }

  .ens-cinema-proof__copy h2,
  .ens-cinema-story__copy h2,
  .ens-catalog-teaser h2,
  .ens-exchange h2 {
    font-size: clamp(2.15rem, 11vw, 3.3rem);
  }

  .ens-cinema-stage {
    min-height: min(70vh, 32rem);
  }

  .ens-cinema-stage video {
    max-height: min(70vh, 32rem);
  }

  .ens-cinema-story__row:nth-child(even) .ens-cinema-stage {
    order: initial;
  }

  .ens-process__grid {
    grid-template-columns: 1fr;
  }

  .ens-faq__grid {
    grid-template-columns: 1fr;
  }

  .ens-process-step {
    display: grid;
    padding: 1.1rem 0;
    border-top: 1px solid #d9dadd !important;
    grid-template-columns: 3.5rem minmax(0, 1fr);
    gap: 1rem;
  }

  .ens-process-step::after {
    display: none;
  }

  .ens-process-step__icon {
    grid-row: 1 / 4;
    margin: 0;
  }

  .ens-process-step__number {
    margin: 0;
  }

  .ens-process-step p {
    margin-top: 0.5rem;
  }

  .ens-trust-card {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .ens-trust-card__link {
    grid-column: 1 / -1;
    justify-content: center;
  }

  .ens-catalog-stats {
    gap: 0.45rem;
  }

  .ens-catalog-stat {
    min-height: 7rem;
    padding: 0.75rem;
  }

  .ens-catalog-stat strong {
    font-size: 2.4rem;
  }

  .ens-catalog-stat span {
    font-size: 0.75rem;
    letter-spacing: 0.03em;
  }

  .ens-exchange__guides {
    grid-template-columns: 1fr;
  }

  .ens-guide-link {
    min-height: 7.4rem;
  }

  .ens-faq__tabs {
    width: 100%;
    justify-content: flex-start;
  }

  .catalog-page-hero.ens-catalog-hero {
    min-height: auto;
    padding-top: 4rem !important;
  }

  .catalog-page-hero.ens-catalog-hero > .relative.z-10 {
    min-height: auto;
    padding: var(--space-section-sm) 1.5rem !important;
  }

  .ens-catalog-hero .catalog-page-hero__copy {
    text-align: center;
  }

  .ens-catalog-hero .catalog-hero-badge,
  .ens-catalog-hero .cta-flow {
    justify-content: center !important;
  }

  .ens-catalog-carousel-section .catalog-carousel__toolbar {
    width: calc(100% + 1rem);
    height: min(72vh, 39rem);
    margin-left: -0.5rem;
    grid-template-columns: 2.8rem minmax(0, 1fr) 2.8rem;
  }

  .ens-catalog-carousel-section .catalog-carousel__arrow {
    width: 2.8rem;
    height: 2.8rem;
  }

  .ens-catalog-carousel-section #cat-grid[data-catalog-carousel] {
    min-height: min(72vh, 39rem);
    height: min(72vh, 39rem) !important;
  }

  .ens-catalog-carousel-section #cat-grid[data-catalog-carousel] > [data-product-id] {
    width: calc(100% - 2.2rem) !important;
    max-height: min(72vh, 39rem);
  }

  .ens-catalog-carousel-section #cat-grid[data-catalog-carousel] .catalog-product-stage {
    height: min(34vh, 15.5rem);
  }

  #telas.ens-fabrics .fabric-content > .grid > div,
  #telas.ens-fabrics .fabric-content > .max-w-4xl,
  #telas.ens-fabrics .fabric-content > .max-w-3xl {
    min-height: 38rem;
  }

  .floating-widgets {
    right: 0.75rem !important;
    bottom: calc(0.75rem + env(safe-area-inset-bottom)) !important;
  }

  body.ensutex-home.ens-hero-in-view .floating-widgets {
    opacity: 0;
    transform: translateY(0.75rem);
    pointer-events: none;
  }

  #chatbot-trigger.ens-chat-trigger {
    width: 3.25rem !important;
    height: 3.25rem !important;
    min-width: 3.25rem;
    min-height: 3.25rem;
  }

  #chatbot-cta.ens-chat-prompt {
    right: 3.7rem;
    bottom: auto;
    max-width: 7.8rem;
    font-size: 0.66rem;
  }

  #chatbot-panel.ens-chat-panel {
    width: auto !important;
    height: min(39rem, calc(100dvh - 6rem)) !important;
    max-height: calc(100dvh - 6rem) !important;
    right: 0.65rem !important;
    left: 0.65rem !important;
    bottom: calc(4.8rem + env(safe-area-inset-bottom)) !important;
  }
}

@media (max-height: 730px) and (min-width: 768px) {
  .ens-cinema-hero__inner {
    padding-top: 1.2rem;
    padding-bottom: 1.2rem;
  }

  #hero-section .ens-motion-hero__title {
    font-size: clamp(2.25rem, 4vw, 3.2rem);
  }

  #hero-section .ens-motion-hero__lead {
    line-height: 1.45;
  }

  .ens-cinema-hero__media {
    height: calc(100svh - 7.4rem);
  }
}

@supports not (backdrop-filter: blur(1px)) {
  .ens-trust-card,
  .ens-exchange-card,
  .ens-faq__tabs,
  .ens-faq__item,
  #chatbot-panel.ens-chat-panel,
  #chatbot-trigger.ens-chat-trigger {
    background-color: rgba(14, 13, 12, 0.96);
  }

  .ens-trust-card,
  .ens-faq__tabs,
  .ens-faq__item {
    background-color: rgba(255, 255, 255, 0.96);
  }
}

@media (prefers-reduced-transparency: reduce) {
  .ens-trust-card,
  .ens-faq__tabs,
  .ens-faq__item {
    background: #ffffff;
    backdrop-filter: none;
  }

  .ens-exchange-card,
  #chatbot-panel.ens-chat-panel,
  #chatbot-trigger.ens-chat-trigger {
    background: #0c0b0a !important;
    backdrop-filter: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .motion-ready .ens-cinema-enter,
  #chatbot-panel.ens-chat-panel.is-open,
  .ens-chat-typing span {
    animation: none !important;
  }

  .ens-cinema-enter,
  #cotizador-express[data-fade-rise] #cotizador-box {
    opacity: 1 !important;
    transform: none !important;
  }

  .ens-faq__answer,
  .ens-faq__question svg,
  .ens-guide-link,
  #hero-section .ens-motion-button,
  #hero-section .ens-motion-link {
    transition-duration: 0.01ms !important;
  }
}


/* Source: original-video-scenes.css */
/* Escenas construidas desde los seis videos fuente: sin recorte ni marco negro. */
:root { --ens-original-shadow: rgba(30, 28, 26, 0.18); }

.ens-original-scene {
  --ens-original-paper: #f5f3f2;
  --ens-original-ink: #1a1917;
  --ens-original-muted: #4d5254;
  --ens-original-accent: #e20613;
  --ens-sky: var(--ens-original-accent);
  position: relative;
  background: var(--ens-original-paper) !important;
  color: var(--ens-original-ink);
}
.ens-original-scene::before {
  z-index: 0;
  background: radial-gradient(circle at 86% 15%, color-mix(in srgb, var(--ens-original-accent) 13%, transparent), transparent 29rem), radial-gradient(circle at 7% 78%, rgba(255,255,255,.76), transparent 32rem), linear-gradient(135deg, color-mix(in srgb, var(--ens-original-paper) 92%, #fff), var(--ens-original-paper));
}
.ens-original-scene .ens-cinema__texture { z-index: 1; opacity: .31; mix-blend-mode: multiply; }
.ens-original-scene .ens-cinema__texture::before { background-image: linear-gradient(color-mix(in srgb, var(--ens-original-ink) 12%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--ens-original-ink) 12%, transparent) 1px, transparent 1px); }
.ens-original-scene .ens-frame,.ens-original-scene .ens-cinema-hero__inner { position: relative; z-index: 3; }
.ens-original-scene .ens-cinema__video,.ens-original-scene .ens-motion-product {
  background: transparent; object-fit: contain;
  filter: drop-shadow(0 24px 34px var(--ens-original-shadow)) drop-shadow(0 0 1px color-mix(in srgb, var(--ens-original-accent) 36%, transparent));
  -webkit-mask-image: radial-gradient(ellipse 96% 97% at 50% 50%,#000 73%,rgba(0,0,0,.78) 89%,transparent 100%);
  mask-image: radial-gradient(ellipse 96% 97% at 50% 50%,#000 73%,rgba(0,0,0,.78) 89%,transparent 100%);
}
.ens-original-scene .ens-eyebrow,.ens-original-scene .ens-motion-kicker { color: var(--ens-original-accent); }
.ens-original-scene .ens-cinema-proof__copy h2,.ens-original-scene .ens-cinema-story__copy h2,.ens-original-scene .ens-catalog-teaser__copy h2,.ens-original-scene .ens-exchange__copy h2 { color: var(--ens-original-ink); }
.ens-original-scene .ens-cinema-proof__copy > p:not(.ens-eyebrow),.ens-original-scene .ens-cinema-story__copy > p:not(.ens-eyebrow),.ens-original-scene .ens-catalog-teaser__copy > p,.ens-original-scene .ens-exchange__copy > p { color: var(--ens-original-muted); }
.ens-original-scene .ens-cinema-proof__features li,.ens-original-scene .ens-magic-steps li { border-color: color-mix(in srgb, var(--ens-original-ink) 16%, transparent); }
.ens-original-scene .ens-cinema-proof__features li::before { border-color: color-mix(in srgb, var(--ens-original-accent) 48%, transparent); color: var(--ens-original-accent); }
.ens-original-scene .ens-cinema-proof__features strong,.ens-original-scene .ens-magic-steps strong,.ens-original-scene .ens-cinema-story__copy .ens-motion-link { color: var(--ens-original-ink); }
.ens-original-scene .ens-cinema-proof__features span,.ens-original-scene .ens-magic-steps p { color: var(--ens-original-muted); }

/* 01 rojo/gris · 05 lavanda · 02 teal · 04 negro/fucsia · 03 textil · 06 rosado. */
.ens-original-scene--stone { --ens-original-paper:#d8dcda; --ens-original-ink:#1a1817; --ens-original-muted:#4a4642; --ens-original-accent:#e20613; --ens-original-shadow:rgba(46, 43, 40,.26); }
.ens-original-scene--lavender { --ens-original-paper:#e7e6e5; --ens-original-ink:#373430; --ens-original-muted:#65605c; --ens-original-accent:#847e77; --ens-original-shadow:rgba(85, 80, 76,.18); }
.ens-original-scene--teal { --ens-original-paper:#f5f3f2; --ens-original-ink:#24221f; --ens-original-muted:#5e5a56; --ens-original-accent:#e20613; --ens-original-shadow:rgba(226, 6, 19,.16); }
.ens-original-scene--fuchsia { --ens-original-paper:#fbfaf9; --ens-original-ink:#1d1c1a; --ens-original-muted:#e20613; --ens-original-accent:#e20613; --ens-original-shadow:rgba(226, 6, 19,.15); }
.ens-original-scene--textile { --ens-original-paper:#f1f0f0; --ens-original-ink:#23211f; --ens-original-muted:#e20613; --ens-original-accent:#e20613; --ens-original-shadow:rgba(50, 48, 45,.16); }
.ens-original-scene--rose { --ens-original-paper:#fbfbfa; --ens-original-ink:#22201f; --ens-original-muted:#e20613; --ens-original-accent:#e20613; --ens-original-shadow:rgba(226, 6, 19,.15); }

#hero-section.ens-original-scene--stone { background:radial-gradient(circle at 75% 47%,rgba(255,255,255,.54),transparent 31rem),linear-gradient(135deg,#ff8a92 0%,#e8e7e6 52%,#d1d5d2 100%) !important; color:var(--ens-original-ink); }
#hero-section.ens-original-scene--stone .ens-motion-eyebrow,#hero-section.ens-original-scene--stone .ens-motion-hero__lead { color:var(--ens-original-muted); }
#hero-section.ens-original-scene--stone .ens-motion-hero__title,#hero-section.ens-original-scene--stone .ens-hero-line { color:var(--ens-original-ink); }
#hero-section.ens-original-scene--stone .ens-hero-line--accent { color:var(--ens-original-accent); text-shadow:none; }
#hero-section.ens-original-scene--stone .ens-motion-chips span { border-color:rgba(26, 24, 23,.16); background:rgba(255,255,255,.48); color:var(--ens-original-ink); backdrop-filter:blur(10px) saturate(120%); }
#hero-section.ens-original-scene--stone .ens-motion-chips strong { color:var(--ens-original-accent); }
#hero-section.ens-original-scene--stone .ens-motion-button--primary { border-color:var(--ens-original-accent); background:var(--ens-original-accent); box-shadow:0 15px 34px rgba(226, 6, 19,.24); }
#hero-section.ens-original-scene--stone .ens-motion-link { border-color:rgba(26, 24, 23,.25); background:rgba(255,255,255,.46); color:var(--ens-original-ink); }

.ens-original-video-frame { position:relative; display:grid; min-width:0; min-height:0; place-items:center; }
.ens-original-video-frame::after { position:absolute; z-index:0; width:min(70%,20rem); height:1.3rem; bottom:9%; border-radius:50%; background:radial-gradient(ellipse,color-mix(in srgb,var(--ens-original-accent) 22%,transparent),transparent 70%); content:""; filter:blur(8px); }
.ens-original-video-frame video { position:relative; z-index:1; }

#catalogo.ens-original-scene .ens-catalog-teaser__layout { grid-template-columns:minmax(0,1.06fr) minmax(12rem,.56fr) minmax(14rem,.72fr); gap:clamp(1.5rem,4vw,4rem); align-items:center; }
#catalogo.ens-original-scene .ens-catalog-stats { border-color:color-mix(in srgb,var(--ens-original-ink) 13%,transparent); background:rgba(255,255,255,.54); box-shadow:0 18px 48px rgba(36, 34, 31,.08); }
#catalogo.ens-original-scene .ens-catalog-stat + .ens-catalog-stat { border-color:color-mix(in srgb,var(--ens-original-ink) 13%,transparent); }
#catalogo.ens-original-scene .ens-catalog-stat strong,#catalogo.ens-original-scene .ens-catalog-stat span { color:var(--ens-original-ink); }
#catalogo.ens-original-scene .ens-section-actions__primary { background:var(--ens-original-accent); box-shadow:0 14px 34px color-mix(in srgb,var(--ens-original-accent) 25%,transparent); }
#catalogo.ens-original-scene .ens-section-actions__secondary { border-color:color-mix(in srgb,var(--ens-original-ink) 22%,transparent); color:var(--ens-original-ink); }
#catalogo .ens-catalog-teaser__copy { order:0; }
#catalogo .ens-catalog-teaser__media { min-height:clamp(15rem,30vw,24rem); order:1; }
#catalogo .ens-catalog-stats { order:2; }

#diseno-gratis.ens-original-scene .ens-exchange__layout { grid-template-columns:minmax(0,1fr) minmax(12rem,.65fr) minmax(14rem,.72fr); gap:clamp(1.5rem,4vw,4.5rem); align-items:center; }
#diseno-gratis .ens-exchange__copy { order:0; }
#diseno-gratis .ens-exchange__visual { min-height:clamp(17rem,30vw,25rem); order:1; }
#diseno-gratis .ens-exchange-card { order:2; }
#diseno-gratis.ens-original-scene .ens-guide-link { border-color:color-mix(in srgb,var(--ens-original-ink) 13%,transparent); background:rgba(255,255,255,.58); color:var(--ens-original-ink); }
#diseno-gratis.ens-original-scene .ens-guide-link span { color:var(--ens-original-muted); }
#diseno-gratis.ens-original-scene .ens-exchange-card { border-color:rgba(226, 6, 19,.22); background:rgba(255,255,255,.68); box-shadow:0 24px 65px rgba(226, 6, 19,.12); }
#diseno-gratis.ens-original-scene .ens-exchange-card::before { background:linear-gradient(130deg,rgba(226, 6, 19,.7),rgba(255,255,255,.4),rgba(226, 6, 19,.42)); }
#diseno-gratis.ens-original-scene .ens-exchange-card__label,#diseno-gratis.ens-original-scene .ens-exchange-card__seal { color:var(--ens-original-accent); }
#diseno-gratis.ens-original-scene .ens-exchange-card__title { color:var(--ens-original-ink); }
#diseno-gratis.ens-original-scene .ens-exchange-card__condition { border-color:rgba(34, 32, 31,.16); color:var(--ens-original-muted); }

@media (max-width:1023px) {
  #catalogo.ens-original-scene .ens-catalog-teaser__layout,#diseno-gratis.ens-original-scene .ens-exchange__layout { grid-template-columns:minmax(0,1fr) minmax(14rem,.68fr); }
  #catalogo.ens-original-scene .ens-catalog-stats,#diseno-gratis.ens-original-scene .ens-exchange-card { grid-column:1 / -1; }
  #catalogo .ens-catalog-teaser__media,#diseno-gratis .ens-exchange__visual { min-height:clamp(17rem,44vw,24rem); }
}
@media (max-width:767px) {
  .ens-original-scene .ens-cinema__texture { opacity:.2; }
  #hero-section.ens-original-scene--stone { min-height:auto; background:linear-gradient(165deg,#e7e6e5,#d4d8d5 68%,#eeeeed) !important; }
  #hero-section.ens-original-scene--stone .ens-cinema-hero__inner { padding-top:5.25rem; padding-bottom:2.5rem; }
  #hero-section.ens-original-scene--stone .ens-cinema-hero__media { height:min(41dvh,24rem); max-height:none; margin-top:.4rem; }
  #hero-section.ens-original-scene--stone .ens-motion-actions { margin-top:1.1rem; }
  .ens-original-scene .ens-cinema-stage { min-height:clamp(19rem,64dvh,31rem); }
  .ens-original-scene .ens-cinema-stage video { max-height:clamp(19rem,64dvh,31rem); }
  #catalogo.ens-original-scene .ens-catalog-teaser__layout,#diseno-gratis.ens-original-scene .ens-exchange__layout { grid-template-columns:1fr; }
  #catalogo.ens-original-scene .ens-catalog-stats,#diseno-gratis.ens-original-scene .ens-exchange-card { grid-column:auto; }
  #catalogo .ens-catalog-teaser__media,#diseno-gratis .ens-exchange__visual { min-height:clamp(18rem,70vw,23rem); }
  #catalogo .ens-catalog-teaser__media,#diseno-gratis .ens-exchange__visual { order:-1; }
}
@media (prefers-reduced-motion:reduce) { .ens-original-scene .ens-cinema__video { filter:drop-shadow(0 16px 24px var(--ens-original-shadow)); } }


/* Source: experience-refinement.css */
/* Ensutex — refinamiento editorial de catálogo y home (13-jul-2026).
   Superficies limpias, textura CSS ligera y flujo de cotización explícito. */

:root {
  --ens-font-display-family: 'Hussar Bold', 'Jost', system-ui, -apple-system, sans-serif;
  --ens-font-body-family: 'Jost', system-ui, -apple-system, sans-serif;
  --ens-paper: #f7f6f5;
  --ens-ink: #151515;
  --ens-muted: #5d5c5a;
  --ens-line: rgba(21, 21, 21, .12);
}

h1, h2, h3, h4, .font-display {
  font-family: var(--ens-font-display-family) !important;
  font-weight: 700;
  letter-spacing: -.035em;
}

/* El video es una pieza editorial, no un teléfono oscuro dentro del hero. */
.catalog-page-hero {
  background:
    radial-gradient(circle at 50% -20%, rgba(226, 6, 19, .08), transparent 34rem),
    var(--ens-paper) !important;
}

/* Esta escena tenía una regla legacy más específica que la devolvía a negro. */
body.ensutex-home #catalogo.ens-catalog-teaser.ens-original-scene {
  background:
    radial-gradient(circle at 84% 20%, rgba(226, 6, 19, .13), transparent 26rem),
    repeating-linear-gradient(135deg, rgba(35, 33, 31, .035) 0 1px, transparent 1px 12px),
    #f1f0f0 !important;
  color: #23211f !important;
}

#cat-prueba-visual {
  width: min(100%, 58rem) !important;
  max-width: none !important;
  margin-top: clamp(.5rem, 2vw, 1.5rem);
}

body[data-ens-page="catalog"] #chatbot-cta {
  display: inline-flex !important;
}
body[data-ens-page="catalog"] #chatbot-cta[hidden] { display: none !important; }

#cat-prueba-visual .showreel-frame {
  /* Los originales son verticales: conservar su proporción muestra la prenda
     completa y evita la franja recortada que parecía un marco decorativo. */
  aspect-ratio: 4 / 5 !important;
  max-width: none !important;
  overflow: hidden !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

#cat-prueba-visual .showreel-slide,
#cat-prueba-visual .showreel-slide.is-active {
  border-radius: 0 !important;
  background: transparent !important;
}

#cat-prueba-visual .showreel-slide video {
  object-position: center 42% !important;
}

#cat-prueba-visual .showreel-label {
  bottom: .9rem !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #fff !important;
  font-family: var(--ens-font-display-family) !important;
  font-size: .68rem !important;
  text-shadow: 0 2px 16px rgba(0, 0, 0, .72) !important;
}

/* Inicio: tres decisiones compactas, numeradas y sin iconografía gigantesca. */
#caminos {
  padding-block: clamp(3.5rem, 6vw, 5.5rem) !important;
}

#caminos .text-center {
  margin-bottom: 2rem !important;
}

#caminos h2 {
  font-size: clamp(2rem, 4vw, 3.25rem) !important;
  line-height: 1.02;
  text-transform: none !important;
}

#caminos .grid {
  gap: 1px !important;
  overflow: hidden;
  border: 1px solid var(--ens-line);
  background: var(--ens-line);
  counter-reset: ens-journey;
}

#caminos .grid > a {
  min-height: 14rem;
  padding: clamp(1.35rem, 2vw, 2rem) !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #fff !important;
  color: var(--ens-ink) !important;
  box-shadow: none !important;
}

#caminos .grid > a:last-child {
  background:
    repeating-linear-gradient(135deg, rgba(226, 6, 19, .045) 0 1px, transparent 1px 9px),
    #f9f8f8 !important;
}

#caminos .grid > a::before {
  counter-increment: ens-journey;
  content: '0' counter(ens-journey);
  display: block;
  margin-bottom: 1.25rem;
  color: #e20613;
  font-family: var(--ens-font-display-family);
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .16em;
}

#caminos .grid > a > .material-symbols-outlined {
  display: none !important;
}

#caminos .grid > a h3 {
  font-size: clamp(1.15rem, 2vw, 1.4rem) !important;
  font-weight: 700 !important;
  text-transform: none !important;
}

#caminos .grid > a p,
#caminos .grid > a .text-zinc-300 {
  color: var(--ens-muted) !important;
}

#caminos .grid > a .text-white {
  color: var(--ens-ink) !important;
}

#caminos .grid > a:hover,
#caminos .grid > a:focus-visible {
  position: relative;
  z-index: 1;
  background: #f2f2f1 !important;
  outline: 3px solid #e20613;
  outline-offset: -3px;
}

/* El catálogo conserva aire, pero su prioridad pasa a ser elegir y no navegar un showreel. */
.ens-catalog-carousel-section {
  padding-block: clamp(3.75rem, 7vw, 6.5rem) !important;
  background:
    repeating-linear-gradient(135deg, rgba(21, 21, 21, .025) 0 1px, transparent 1px 12px),
    #f5f4f3 !important;
}

#catalogo .mb-14 {
  margin-bottom: 2rem !important;
}

.catalog-intro {
  max-width: 62rem !important;
  margin-bottom: 2rem !important;
  padding: 1.25rem 1.5rem !important;
  border: 1px solid var(--ens-line) !important;
  border-radius: 0 !important;
  background: rgba(255, 255, 255, .72) !important;
  box-shadow: none !important;
}

.catalog-intro .absolute {
  width: 3px !important;
  background: #e20613 !important;
}

.catalog-intro > div:first-of-type {
  width: 2.25rem !important;
  height: 2.25rem !important;
  border-radius: 0 !important;
  background: transparent !important;
}

.catalog-intro > div:nth-of-type(2) {
  display: none !important;
}

.catalog-toolbar {
  max-width: 62rem;
  margin-inline: auto;
}

.catalog-toolbar.scene-reveal,
.catalog-toolbar.scene-reveal.scene-reveal--in {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}

/* La elección "uno o pack" antes de ver prendas dividía el flujo y comprimía
   el texto. El pack sigue disponible después, cuando la decisión ya es útil. */
#catalogo .catalog-toolbar {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: .8rem !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

#catalogo .catalog-toolbar .catalog-paths {
  display: none !important;
}

#catalogo .catalog-toolbar .catalog-search,
#catalogo .catalog-toolbar__filters {
  grid-column: 1 / -1 !important;
}

#catalogo .catalog-toolbar__filters {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: .75rem !important;
  padding: .85rem 0 0 !important;
  border-top: 1px solid var(--ens-line) !important;
}

#catalogo .catalog-toolbar__filters #cat-tabs {
  min-width: 0;
}

/* Packs y comparación ya tienen sus propios momentos en el recorrido; aquí
   sólo se filtran prendas para que el primer paso no se disperse. */
#catalogo .catalog-toolbar__filters > div[aria-label] {
  display: none !important;
}

/* El paso contextual bajo la grilla reemplaza la barra fija heredada. La barra
   antigua calculaba cantidades por defecto antes de pedirlas y tapaba la tela. */
.qc-summary-bar {
  display: none !important;
}

#cat-grid:not([data-catalog-carousel]) {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(1rem, 2vw, 1.5rem) !important;
  min-height: 0 !important;
  height: auto !important;
  overflow: visible !important;
}

#cat-grid:not([data-catalog-carousel]) > [data-product-id] {
  position: relative !important;
  display: flex !important;
  width: auto !important;
  min-width: 0 !important;
  margin: 0 !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  transform: none !important;
  filter: none !important;
  overflow: hidden !important;
  border: 1px solid var(--ens-line) !important;
  border-radius: 14px !important;
  background: #fff !important;
  box-shadow: none !important;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease !important;
}

#cat-grid:not([data-catalog-carousel]) > [data-product-id]:hover {
  border-color: rgba(226, 6, 19, .52) !important;
  box-shadow: 0 16px 32px rgba(18, 18, 18, .08) !important;
  transform: translateY(-3px) !important;
}

#cat-grid .catalog-product-stage {
  min-height: 0 !important;
  margin: 0 !important;
  padding: 1.15rem !important;
  overflow: hidden !important;
  border-radius: 0 !important;
  background: transparent !important;
}

#cat-grid .catalog-product-stage::after {
  bottom: 7% !important;
  width: 55% !important;
  background: radial-gradient(ellipse, rgba(0, 0, 0, .2), transparent 72%) !important;
}

#cat-grid .catalog-product-visual {
  transform: scale(1.1) !important;
  filter: drop-shadow(0 18px 18px rgba(0, 0, 0, .16)) !important;
}

#cat-grid [data-product-id] > .p-5 {
  padding: 1.1rem !important;
  border-top: 1px solid var(--ens-line) !important;
  background: #fff !important;
}

#cat-grid [data-product-id] h3 {
  min-height: 2.8em;
  font-size: .94rem !important;
  font-weight: 700 !important;
  text-transform: none !important;
}

/* Etiquetas pequeñas: el gris anterior quedaba apenas por debajo de AA. */
#cat-grid [data-product-id] .bg-zinc-100.text-zinc-500 {
  color: #52525b !important;
  background: #f4f4f5 !important;
}

button[data-pack-partner] {
  background: #166534 !important;
}

#cat-grid [data-product-id] .bg-black {
  background: var(--ens-ink) !important;
}

#cat-grid [data-product-id] [data-product-btn] {
  min-height: 46px;
  border-radius: 8px !important;
  background: var(--ens-ink) !important;
  color: #fff !important;
}

#cat-grid [data-product-id] [data-product-btn]:hover,
#cat-grid [data-product-id] [data-product-btn]:focus-visible {
  background: #e20613 !important;
  border-color: #e20613 !important;
}

#cat-grid [data-product-id].selected-product {
  border-color: #e20613 !important;
  box-shadow: 0 0 0 2px rgba(226, 6, 19, .16) !important;
}

.catalog-next-step {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1.25rem;
  align-items: center;
  max-width: 62rem;
  margin: clamp(2rem, 4vw, 3.5rem) auto 0;
  padding: 1.25rem 1.4rem;
  color: #fdfcff;
  background:
    repeating-linear-gradient(135deg, rgba(255, 255, 255, .07) 0 1px, transparent 1px 10px),
    #141414;
  border-radius: 12px;
}

.catalog-next-step[hidden] {
  display: none !important;
}

.catalog-next-step__kicker {
  display: block;
  margin-bottom: .3rem;
  color: #ff8b92;
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.catalog-next-step h3 {
  margin: 0;
  color: #fff;
  font-size: 1.05rem;
  letter-spacing: -.02em;
}

.catalog-next-step p {
  margin: .3rem 0 0;
  color: #c8c6c4;
  font-size: .88rem;
}

.catalog-next-step button {
  min-height: 46px;
  padding: .75rem 1rem;
  border: 1px solid transparent;
  border-radius: 8px;
  background: #e20613;
  color: #fff;
  font-size: .73rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.catalog-next-step button:disabled {
  border-color: rgba(255,255,255,.16);
  background: rgba(255,255,255,.08);
  color: #aaa;
  cursor: not-allowed;
}

#catalogo .catalog-flow-bridge {
  display: none !important;
}

/* Las telas son material de decisión: una macro-foto amplia y no una miniatura encerrada. */
.ens-fabrics {
  padding-block: clamp(3.75rem, 6vw, 6rem) !important;
  background:
    repeating-linear-gradient(135deg, rgba(21, 21, 21, .035) 0 1px, transparent 1px 11px),
    #ececeb !important;
  border-color: var(--ens-line) !important;
}

.ens-fabrics .fabric-content > .grid {
  gap: clamp(1rem, 2.4vw, 2rem) !important;
}

.ens-fabrics .fabric-content > .grid > div {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(13rem, .7fr);
  gap: clamp(1.25rem, 3vw, 2.5rem);
  align-items: center;
  padding: clamp(1.25rem, 3vw, 2.25rem) !important;
  border: 1px solid var(--ens-line) !important;
  border-radius: 0 !important;
  background: rgba(255, 255, 255, .74) !important;
  box-shadow: none !important;
}

.ens-fabrics .fabric-content > .grid > div > .mb-6 {
  margin: 0 !important;
}

.ens-fabrics .fabric-content > .grid > div > .mt-auto,
.ens-fabrics .fabric-content > .grid > div > .max-w-md {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}

.ens-fabrics .fabric-photo {
  aspect-ratio: 4 / 5 !important;
  overflow: hidden !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #fbe3e0 !important;
  box-shadow: none !important;
  transform: none !important;
}

.ens-fabrics .fabric-photo:hover {
  border: 0 !important;
  box-shadow: none !important;
  transform: none !important;
}

.ens-fabrics .fabric-photo .fabric-img {
  object-fit: cover !important;
  transition: transform .45s ease;
}

.ens-fabrics .fabric-photo:hover .fabric-img {
  transform: scale(1.045);
}

.ens-fabrics .fabric-photo > div {
  display: none !important;
}

.ens-fabrics .bg-zinc-900 {
  background: #e9e8e7 !important;
  border-color: transparent !important;
  color: #292827 !important;
}

.ens-fabrics .bg-zinc-900 .text-zinc-300,
.ens-fabrics .bg-zinc-900 .text-green-400,
.ens-fabrics .bg-zinc-900 .text-yellow-400 {
  color: #3f3e3c !important;
}

.ens-fabrics .fabric-cta {
  min-height: 46px;
  border-radius: 8px !important;
  box-shadow: none !important;
}

/* El negro queda reservado para el momento de decisión: el cotizador. */
#cotizador-express {
  padding-block: clamp(4rem, 7vw, 6.5rem) !important;
  background: #f7f6f5 !important;
}

#cotizador-box {
  max-width: 68rem !important;
  padding: clamp(2rem, 5vw, 4.5rem) !important;
  border-radius: 18px !important;
  background:
    radial-gradient(circle at 85% 10%, rgba(226, 6, 19, .19), transparent 25rem),
    repeating-linear-gradient(135deg, rgba(255, 255, 255, .045) 0 1px, transparent 1px 11px),
    #0d0d0e !important;
}

.catalog-page-hero a:focus-visible,
#catalogo button:focus-visible,
.ens-fabrics button:focus-visible,
.catalog-next-step button:focus-visible {
  outline: 3px solid #e20613;
  outline-offset: 3px;
}

@media (max-width: 1023px) {
  #cat-grid:not([data-catalog-carousel]) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  #hero-section.ens-original-scene--stone .ens-cinema-hero__inner {
    padding: 4.45rem 1.25rem 1rem !important;
    gap: .48rem !important;
  }

  #hero-section.ens-original-scene--stone .ens-cinema-hero__media {
    height: min(23dvh, 12rem) !important;
    margin-top: 0 !important;
  }

  #hero-section.ens-original-scene--stone .ens-motion-hero__lead {
    font-size: .94rem !important;
    line-height: 1.38 !important;
  }

  #hero-section.ens-original-scene--stone .ens-motion-chips {
    display: none !important;
  }

  #cat-prueba-visual .showreel-slide video {
    object-position: center 35% !important;
  }

  #caminos .grid > a {
    min-height: 0;
  }

  .catalog-intro {
    margin-bottom: 1.5rem !important;
    padding: 1rem 1.1rem !important;
  }

  .catalog-intro .flex-1 {
    text-align: left !important;
  }

  .catalog-intro h3 {
    font-size: .82rem !important;
    line-height: 1.25 !important;
  }

  .catalog-intro p {
    font-size: .84rem !important;
    line-height: 1.48 !important;
  }

  #catalogo .catalog-toolbar__filters {
    display: block !important;
  }

  #catalogo .catalog-toolbar__filters #cat-tabs {
    display: flex !important;
    width: 100%;
    overflow-x: auto !important;
    padding-inline: .1rem !important;
  }

  #catalogo .catalog-toolbar__filters .catalog-swipe-hint {
    margin-top: .45rem;
  }

  #cat-grid:not([data-catalog-carousel]) {
    grid-template-columns: 1fr !important;
    gap: 1rem !important;
  }

  #cat-grid [data-product-id] h3 {
    min-height: 0;
  }

  #cat-grid .catalog-product-stage {
    aspect-ratio: 4 / 3;
  }

  .catalog-next-step {
    grid-template-columns: 1fr;
    padding: 1.1rem;
  }

  .catalog-next-step button {
    width: 100%;
  }

  .ens-fabrics .fabric-content > .grid > div {
    grid-template-columns: 1fr;
  }

  .ens-fabrics .fabric-content > .grid > div > .mt-auto,
  .ens-fabrics .fabric-content > .grid > div > .max-w-md {
    grid-row: 1;
  }

  .ens-fabrics .fabric-content > .grid > div > .mb-6 {
    grid-row: 2;
  }

  .ens-fabrics .fabric-photo {
    aspect-ratio: 4 / 3 !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  #cat-grid:not([data-catalog-carousel]) > [data-product-id],
  .ens-fabrics .fabric-photo .fabric-img {
    transition: none !important;
  }
}


/* Source: premium-video.css */
/* Premium-video integration: audiovisual layer placed over the repaired cinema flow. */

/* =====================================================================
   --ens-sky · ÚNICA DEFINICIÓN DEL TOKEN (decisión 2026-09-25)

   Antes estaba definido tres veces con dos valores distintos
   (ensutex-visual-system.css #e20613 · remontaje-cine.css #87ceeb ·
   tokens-premium.css #87CEEB) y quién ganaba dependía del orden de carga:
   eso es el bug, no un estilo.

   Este archivo se eligió como sede porque es el único de los tres que
   index.html y catalogo.html cargan AMBOS, así que el valor es el mismo
   en las tres marcas sin depender del orden.

   Valor: #E20613 (rojo de marca). Motivo: la paleta vigente es
   #FDFBFF claro · #0d0c0b oscuro · #E20613 rojo de marca y CTA, y el
   azul cielo queda fuera. --ens-sky se consume como ACENTO (trazo,
   etiqueta, borde, outline), no como escena: los dos colores de escena
   no sirven de acento (el casi-blanco se confunde con el titular blanco
   del hero; el casi-negro se confunde con la tinta del texto claro).
   El rojo de marca es el único token que sigue funcionando como acento.

   Los tres archivos anteriores conservan un comentario apuntando acá.
   ===================================================================== */
:root {
  --ens-sky: #E20613;
  --ens-sky-soft: rgba(226, 6, 19, .16);
}

html.ens-chat-consent-pending .floating-widgets {
  visibility: hidden;
  pointer-events: none;
}

/* ---------- Home hero · video v1 ---------- */
#hero-section.ens-motion-hero--video {
  min-height: 100dvh;
  isolation: isolate;
  background: #080807 !important;
  /* Dentro del hero --ens-sky se fija al rojo de marca. `.ens-original-scene`
     (original-video-scenes.css) re-declara --ens-sky: var(--ens-original-accent)
     y esta sección trae ens-original-scene--stone, cuyo acento es #e20613: un
     rojo que no está en la paleta. Esta regla lo devuelve a #E20613. */
  --ens-sky: #E20613;
}

/* El scrim deja de ser una capa lavada y pasa a ser el shading del hero:
   video a sangre (object-fit: cover) debajo, degradado encima. Es la
   estructura que Carlos aprobó en REBXN, con los negros de Ensutex.
   Sustituye al lavado claro legado (`.ens-cinema::before`).

   Sobre esa estructura va una tercera capa, horizontal, sobre la columna de
   texto. El degradado vertical de REBXN deja la banda central en .2-.3 y por
   ahí pasa el video: con texto blanco alcanzaba, pero el acento -- rojo, cuya
   luminancia está mucho más cerca de la del video -- perdía sus trazos sobre
   los píxeles claros. La capa no cambia el vocabulario (lineal + radial):
   sólo asegura la columna donde vive la copia. Medido en _qa_hero/. */
#hero-section.ens-motion-hero--video::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(6, 6, 5, .82) 0%, rgba(6, 6, 5, .66) 26%, rgba(6, 6, 5, .3) 52%, rgba(6, 6, 5, .06) 74%, transparent 88%),
    linear-gradient(to bottom, rgba(6, 6, 5, .8) 0%, rgba(6, 6, 5, .2) 24%, rgba(6, 6, 5, .3) 62%, rgba(6, 6, 5, .95) 100%),
    radial-gradient(70% 60% at 50% 50%, rgba(6, 6, 5, .15), rgba(6, 6, 5, .6)) !important;
}

#hero-section.ens-motion-hero--video .ens-hero-video {
  position: absolute !important;
  z-index: -2 !important;
  inset: 0;
  width: 100%;
  height: 100%;
  /* cover: el video llena el marco y no deja bandas. v1 es 1280x720
     dentro de un marco 1,60:1, así que contain recortaba el 11% del
     cuadro y dejaba dos franjas negras: eso es lo que se percibía. */
  object-fit: cover;
  object-position: center;
  pointer-events: none;
  filter: saturate(1.04) contrast(1.04);
}

.ens-hero-scrim {
  position: absolute !important;
  z-index: 1 !important;
  inset: 0;
  pointer-events: none;
}

/* El shading vive en el ::before del hero. En celular el video está
   apagado y hero-movil.css le pone a esta capa su propio degradado
   (con !important), así que ahí el scrim sigue siendo este div. */
#hero-section.ens-motion-hero--video .ens-hero-scrim {
  background: none;
}

/* La retícula es textura: vive detrás del texto (z-index 1 contra el 2 de la
   copia). A .3 sus líneas caen justo sobre la línea de acento y son el ~1% de
   píxeles claros que le bajaban el peor caso: una línea blanca a .3 sobre
   negro es rgb(76,76,76), y contra el rojo del acento eso da 1,7:1. A .14 la
   línea queda en rgb(36,36,36) y el acento recupera 3,4:1 en ese mismo punto,
   sin que la textura desaparezca. Medido en _qa_hero/final4.json. */
#hero-section.ens-motion-hero--video .ens-motion-grid {
  position: absolute;
  z-index: 1;
  inset: 0;
  opacity: .14;
  pointer-events: none;
}

#hero-section.ens-motion-hero--video .ens-cinema-hero__inner {
  z-index: 2;
  min-height: calc(100dvh - 5rem);
}

@media (min-width: 768px) {
  /* Keep copy inside the intentional black negative space, never over v1's jersey. */
  #hero-section.ens-motion-hero--video .ens-cinema-hero__inner {
    grid-template-columns: minmax(0, .62fr) minmax(0, .38fr);
    gap: 0;
  }

  #hero-section.ens-motion-hero--video .ens-cinema-hero__copy {
    grid-column: 1;
    justify-self: start;
    max-width: 34rem;
  }
}

#hero-section.ens-motion-hero--video .ens-cinema-hero__media {
  display: none;
}

#hero-section.ens-motion-hero--video .ens-motion-eyebrow,
#hero-section.ens-motion-hero--video .ens-motion-hero__lead {
  color: #f4f3f2;
  text-shadow: 0 2px 14px rgba(0, 0, 0, .88);
}

#hero-section.ens-motion-hero--video .ens-motion-hero__title {
  color: #ffffff;
  text-shadow: 0 6px 30px rgba(0, 0, 0, .88), 0 2px 8px rgba(0, 0, 0, .92);
}

#hero-section.ens-motion-hero--video .ens-hero-line {
  color: #ffffff;
  text-shadow: 0 6px 30px rgba(0, 0, 0, .88), 0 2px 8px rgba(0, 0, 0, .92);
}

/* El acento es rojo, y el rojo tiene un techo de contraste propio: su
   luminancia (L≈.163) está mucho más cerca de la del video que la del blanco
   (L=1). Aunque el scrim deje el fondo en negro, el rojo no pasa de ~4,2:1;
   sobre un píxel claro se cae a 1,3:1 y el trazo desaparece.
   Dos sombras hacen el trabajo: una corta y casi opaca que pega el contorno
   de cada glifo a un fondo oscuro local (es la que sube el peor caso, y sirve
   igual en escritorio y en celular), y el halo rojo de marca, que no aporta
   legibilidad pero sostiene el acento. Medido en _qa_hero/final.json. */
#hero-section.ens-motion-hero--video .ens-hero-line--accent {
  color: var(--ens-sky);
  text-shadow:
    0 1px 2px rgba(0, 0, 0, .95),
    0 2px 6px rgba(0, 0, 0, .9),
    0 6px 30px rgba(0, 0, 0, .75),
    0 0 22px rgba(226, 6, 19, .3);
}

#hero-section.ens-motion-hero--video .ens-motion-chips span {
  border-color: rgba(255, 255, 255, .18);
  background: rgba(15, 14, 13, .52);
  color: #fbfaf9;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .3);
}

/* ---------- Video v2 · storytelling on its native gray ---------- */
.ens-vfranja {
  position: relative;
  overflow: hidden;
  padding: clamp(4.75rem, 9vw, 7.5rem) 0;
  background: #ff8a92;
  color: #1a1817;
}

.ens-vfranja__wrap {
  display: grid;
  width: min(calc(100% - 8rem), 76rem);
  margin: 0 auto;
  gap: clamp(1.75rem, 4vw, 2.75rem);
}

.ens-vfranja__media {
  overflow: hidden;
  aspect-ratio: 16 / 9;
  border-radius: 1.5rem;
  background: #ff8a92;
  box-shadow: 0 24px 56px -30px rgba(26, 24, 23, .42);
}

.ens-vfranja__media video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.ens-vfranja--complete .ens-vfranja__copy {
  max-width: 46rem;
  margin-inline: auto;
  text-align: center;
}

.ens-vfranja__copy .ens-eyebrow { margin-bottom: .65rem; color: #282624; }
.ens-vfranja__copy h2 {
  max-width: 18ch;
  margin: 0 auto;
  color: #1a1817;
  font-size: clamp(2rem, 4.2vw, 3.6rem);
  font-weight: 900;
  letter-spacing: -.055em;
  line-height: 1;
  text-wrap: balance;
}
.ens-vfranja__copy p:last-child { max-width: 42rem; margin: 1rem auto 0; color: #33302e; line-height: 1.6; }

/* ---------- Videos v3–v6 · uncut, rounded, and deliberately quiet ---------- */
.ens-video-frame {
  position: relative;
  width: min(100%, 28rem) !important;
  margin-inline: auto;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 1.5rem;
  background: #0d0c0b;
  box-shadow: 0 32px 68px -30px rgba(0, 0, 0, .56), 0 10px 24px rgba(0, 0, 0, .2);
  isolation: isolate;
}

.ens-video-frame video {
  display: block;
  width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
}

.ens-video-frame--light {
  border-color: rgba(0, 0, 0, .1);
  background: #f4f3f2;
  box-shadow: 0 26px 56px -28px rgba(0, 0, 0, .32), 0 8px 18px rgba(0, 0, 0, .1);
}

.ens-premium-mockup-trio {
  display: grid;
  margin-top: 1.35rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .6rem;
}

.ens-premium-mockup-trio img {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1.08;
  padding: .45rem;
  border: 1px solid rgba(26, 24, 23, .1);
  border-radius: 1rem;
  background: rgba(255, 255, 255, .56);
  object-fit: contain;
}

.ens-logo-break {
  position: relative;
  display: grid;
  min-height: clamp(17rem, 28vw, 25rem);
  overflow: hidden;
  align-content: center;
  justify-items: center;
  gap: 1rem;
  background: #080807;
}

.ens-logo-break--compact { min-height: clamp(13rem, 24vw, 20rem); }
.ens-logo-break video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.ens-logo-break__scrim { position: absolute; inset: 0; background: radial-gradient(ellipse at center, transparent 36%, rgba(8, 8, 7, .58) 100%); pointer-events: none; }
.ens-logo-break__mark { position: relative; z-index: 2; display: block; width: min(42rem, 76vw); height: auto; object-fit: contain; }
.ens-logo-break__line { position: relative; z-index: 2; max-width: 30rem; margin: 0; padding-inline: 1.5rem; color: rgba(255, 255, 255, .82); font-size: clamp(.92rem, 1.3vw, 1.1rem); line-height: 1.5; text-align: center; }

.ens-premium-video-story { padding: clamp(4rem, 8vw, 7rem) 0; background: #0d0c0c; color: #ffffff; }
.ens-premium-video-story__layout { display: grid; align-items: center; gap: clamp(2rem, 6vw, 6rem); }
.ens-premium-video-story__copy { max-width: 34rem; }
.ens-premium-video-story .ens-eyebrow { margin-bottom: .7rem; color: rgba(255, 255, 255, .78); }
.ens-premium-video-story h2 { margin: 0; font-size: clamp(2rem, 4vw, 3.5rem); font-weight: 900; letter-spacing: -.055em; line-height: .98; text-transform: uppercase; text-wrap: balance; }
.ens-premium-video-story p:last-child { margin: 1rem 0 0; color: #d0cdca; line-height: 1.65; }

/* ---------- Catalog video hero · v7 ---------- */
.catalog-page-hero--video {
  min-height: min(42rem, 78svh);
  isolation: isolate;
  background: #080807 !important;
  color: #ffffff !important;
}

.catalog-page-hero--video .ens-hero-video {
  position: absolute !important;
  z-index: 0 !important;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  pointer-events: none;
}

.catalog-page-hero--video .ens-hero-scrim {
  z-index: 1 !important;
  background: radial-gradient(ellipse at center, rgba(8, 8, 7, .08), rgba(8, 8, 7, .7) 85%), linear-gradient(180deg, rgba(8, 8, 7, .62), rgba(8, 8, 7, .25) 45%, rgba(8, 8, 7, .8));
}

/* El catálogo deja su turquesa (--catalog-blue: #e20613) por el rojo de
   marca. Se re-declara el token DENTRO del hero: un solo punto, y todo lo
   que lo consume (fondo y borde del botón principal, borde del secundario
   al pasar el mouse, `p strong`) queda alineado sin editar
   catalog-premium-v2.css. */
.catalog-page-hero--video { --catalog-blue: #E20613; }
/* Texto chico en rojo sobre el video oscuro: el rojo de marca da 4,26:1 y no pasa AA.
   Sobre fondo oscuro va el rojo claro de la paleta (#ff3b47, 5,6:1 sobre negro). */
.catalog-page-hero--video .catalog-page-hero__copy p strong { color: #ff3b47; }

/* Blanco sobre rojo = 4,92:1. El texto oscuro del turquesa (#0c0c0b)
   sobre rojo daba 3,92:1 y no pasa AA. */
.catalog-page-hero--video .catalog-hero-primary {
  border-color: var(--ens-sky) !important;
  background: var(--ens-sky) !important;
  color: #ffffff !important;
}

.catalog-page-hero--video .catalog-hero-primary:hover {
  background: var(--ens-sky) !important;
  box-shadow: 0 0 0 4px rgba(255, 255, 255, .16);
}

.catalog-page-hero--video > .relative { z-index: 2; }
.catalog-page-hero--video .catalog-page-hero__copy h1 { color: #ffffff; text-shadow: 0 6px 30px rgba(0, 0, 0, .88), 0 2px 8px rgba(0, 0, 0, .92); }
.catalog-page-hero--video .catalog-page-hero__copy p { color: #ebeae8; text-shadow: 0 2px 14px rgba(0, 0, 0, .88); }
.catalog-page-hero--video .catalog-hero-badge { border-color: rgba(255, 255, 255, .28); background: rgba(255, 255, 255, .12); color: #ffffff; backdrop-filter: blur(6px); }
.ens-catalog-showreel .showreel-frame { border-color: rgba(255, 255, 255, .13); box-shadow: 0 26px 58px -30px rgba(0, 0, 0, .8); }

/* ---------- Catalog carousel and fabric decision ---------- */
#catalogo.ens-catalog-carousel-section #cat-grid .catalog-product-stage,
#cat-grid .cat-card .catalog-product-stage {
  background: radial-gradient(circle at 50% 38%, #1f1e1c 0%, #0a0908 75%) !important;
}

#catalogo.ens-catalog-carousel-section #cat-grid .catalog-product-stage img {
  filter: drop-shadow(0 18px 28px rgba(0, 0, 0, .46));
}

.catalog-path-chip { display: inline-flex; align-items: center; justify-content: center; gap: .55rem; }
.catalog-path-icon { width: 1.75rem; height: 1.75rem; flex: 0 0 auto; object-fit: contain; mix-blend-mode: screen; }
.catalog-path-chip:focus-visible,
.catalog-page-hero--video a:focus-visible { outline: 3px solid var(--ens-sky); outline-offset: 3px; }

#telas.ens-fabrics .fabric-content > .grid {
  display: flex !important;
  gap: 1rem !important;
  overflow-x: auto !important;
  padding: .35rem .35rem 1.1rem !important;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
}

#telas.ens-fabrics .fabric-content > .grid > div {
  flex: 0 0 min(30rem, 76vw);
  max-width: min(30rem, 76vw);
  scroll-snap-align: center;
}

#telas.ens-fabrics .fabric-content > .grid::-webkit-scrollbar { height: 6px; }
#telas.ens-fabrics .fabric-content > .grid::-webkit-scrollbar-thumb { border-radius: 999px; background: rgba(26, 24, 23, .3); }

@media (min-width: 900px) {
  .ens-premium-video-story__layout { grid-template-columns: minmax(0, 1fr) minmax(18rem, .78fr); }
}

@media (max-width: 767px) {
  #hero-section.ens-motion-hero--video { min-height: 100dvh; background: #080807 !important; }
  #hero-section.ens-motion-hero--video .ens-cinema-hero__inner {
    display: block;
    min-height: calc(100dvh - 4rem);
    padding: clamp(1.35rem, 4.5vh, 2.25rem) 1.25rem min(42dvh, 22rem);
  }
  #hero-section.ens-motion-hero--video .ens-cinema-hero__copy {
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    max-width: 22rem;
  }
  #hero-section.ens-motion-hero--video .ens-motion-eyebrow,
  #hero-section.ens-motion-hero--video .ens-motion-hero__title,
  #hero-section.ens-motion-hero--video .ens-motion-hero__lead {
    width: 100%;
    margin-inline: 0;
    text-align: left;
  }
  #hero-section.ens-motion-hero--video .ens-motion-eyebrow { justify-content: flex-start; }
  #hero-section.ens-motion-hero--video .ens-motion-hero__title {
    max-width: 100%;
    font-size: clamp(2.1rem, 9vw, 2.45rem);
  }
  #hero-section.ens-motion-hero--video .ens-hero-line { white-space: normal; }
  #hero-section.ens-motion-hero--video .ens-motion-chips,
  #hero-section.ens-motion-hero--video .ens-motion-actions { justify-content: flex-start; }
  /* En celular este video está apagado: hero-movil.css lo pone display:none
     y premium-video.js no lo descarga (medido: readyState 0, 0x0). La pieza
     que se ve es hero-inicio-movil.webp, en cover.
     El object-fit de acá es inerte: home-refinement.css:1359 declara
     `contain !important` sobre este mismo selector y carga después, así que
     el valor computado en celular es contain aunque nadie lo vea. Se deja
     escrito para que el siguiente que mida no crea que hay dos intenciones:
     lo que manda en celular es la imagen, no este video. */
  #hero-section.ens-motion-hero--video .ens-hero-video {
    top: auto;
    height: min(42dvh, 22rem);
    object-fit: cover;
    object-position: center bottom;
  }
  #hero-section.ens-motion-hero--video .ens-hero-scrim {
    background: linear-gradient(180deg, rgba(8, 8, 7, .5), rgba(8, 8, 7, .04) 48%, transparent 100%);
  }
  .ens-vfranja__copy .ens-eyebrow { justify-content: center; }
  .ens-vfranja__wrap { width: min(calc(100% - 3rem), 42rem); }
  .ens-premium-video-story__copy { margin-inline: auto; text-align: center; }
  .ens-premium-video-story .ens-eyebrow { justify-content: center; }
  .ens-video-frame { width: min(100%, 23rem) !important; }
  .catalog-page-hero--video { min-height: min(40rem, 76svh); }
  .catalog-page-hero--video .ens-hero-video { object-position: 56% center; }
  #telas.ens-fabrics .fabric-content > .grid > div { flex-basis: 88%; max-width: 88%; }
}

@media (prefers-reduced-motion: reduce) {
  .ens-logo-break video,
  .ens-vfranja video,
  .ens-video-frame video { animation: none !important; }
}


/* Source: home-refinement.css */
/* Home refinement 2026-07-15: black CTAs with cyan emphasis and a video edge blend.
   The Securify reference informs hierarchy and pill navigation only; this remains
   vanilla CSS and preserves Ensutex's real video, navigation and conversion flow. */

:root {
  --ens-home-cyan: #e20613;
  --ens-home-cyan-strong: #e20613;
  --ens-home-ink: #0f0e0e;
  --ens-home-black: #080807;
}

/* The native v1 image remains fully visible with contain. A slightly smaller,
   right-shifted stage protects perceived detail and leaves the copy more air. */
#hero-section.ens-motion-hero--video .ens-hero-video {
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 14%, #000 86%, transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0%, #000 14%, #000 86%, transparent 100%);
}

@media (min-width: 768px) {
  #hero-section.ens-motion-hero--video .ens-hero-video {
    inset: 4% -4% auto auto;
    width: 90.2%;
    height: 90.2%;
    transform: translate3d(0, clamp(1.65rem, 3.4vh, 2.35rem), 0);
  }
}

#hero-section.ens-motion-hero--video .ens-hero-scrim {
  background:
    linear-gradient(90deg, var(--ens-home-black) 0%, rgba(8, 8, 7, .97) 6%, rgba(8, 8, 7, .58) 15%, rgba(8, 8, 7, .08) 42%, transparent 64%, rgba(8, 8, 7, .18) 82%, rgba(8, 8, 7, .96) 100%),
    linear-gradient(180deg, rgba(8, 8, 7, .48) 0%, transparent 31%, rgba(8, 8, 7, .7) 100%);
}

/* Desktop home navigation: three intentional regions, not one long black bar. */
@media (min-width: 1024px) {
  .ensutex-site-nav.ens-home-nav {
    padding: .85rem clamp(1rem, 2.2vw, 2.6rem);
    border: 0 !important;
    background: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    contain: layout style;
    font-family: var(--ens-font-body-family);
    pointer-events: none;
  }

  .ens-home-nav > .max-w-7xl {
    width: 100%;
    max-width: none;
    padding: 0;
    pointer-events: auto;
  }

  .ens-home-nav .h-20 {
    height: auto !important;
  }

  .ens-home-nav .ensutex-brand-group {
    min-height: 2.85rem;
    padding: 0;
    gap: .8rem;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  .ensutex-site-nav.ens-home-nav .ensutex-brand-logo {
    height: 2.25rem !important;
    filter: brightness(0) invert(1) drop-shadow(0 8px 18px rgba(0, 0, 0, .38));
  }

  .ensutex-site-nav.ens-home-nav .ensutex-brand-text {
    display: inline-flex !important;
    align-items: center;
    min-height: 2.55rem;
    padding: .6rem 1rem;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 999px;
    background: rgba(14, 14, 13, .84);
    box-shadow: 0 14px 42px rgba(0, 0, 0, .2);
    color: rgba(255, 255, 255, .76);
    font-family: var(--ens-font-body-family);
    font-size: .6rem;
    font-style: normal;
    font-weight: 600;
    letter-spacing: .145em;
    backdrop-filter: blur(16px) saturate(130%);
    -webkit-backdrop-filter: blur(16px) saturate(130%);
  }

  .ens-home-nav .ensutex-nav-menu {
    gap: .15rem;
    padding: .25rem;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 999px;
    background: rgba(14, 14, 13, .84);
    box-shadow: 0 14px 42px rgba(0, 0, 0, .2);
    backdrop-filter: blur(16px) saturate(130%);
    -webkit-backdrop-filter: blur(16px) saturate(130%);
  }

  .ens-home-nav .ensutex-nav-menu > a,
  .ens-home-nav .ensutex-nav-menu > div > a {
    min-height: 2.45rem;
    padding: .52rem .9rem;
    border-radius: 999px;
    color: rgba(255, 255, 255, .72);
    font-family: var(--ens-font-body-family);
    font-size: .75rem;
    font-weight: 500;
  }

  .ens-home-nav .ensutex-nav-menu > a:hover,
  .ens-home-nav .ensutex-nav-menu > div > a:hover,
  .ens-home-nav .ensutex-nav-menu > div:focus-within > a {
    color: #ffffff;
    background: rgba(255, 255, 255, .09);
  }

  .ens-home-nav .ensutex-nav-cta {
    position: relative;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-height: 2.85rem;
    min-width: 12.8rem;
    padding: .55rem 1.1rem;
    overflow: hidden;
    border: 1px solid rgba(226, 6, 19, .58);
    border-radius: 999px;
    background: #0c0b0a;
    box-shadow: 0 14px 38px rgba(0, 0, 0, .28);
    color: #ffffff;
    font-family: var(--ens-font-body-family);
    font-size: .75rem;
    font-weight: 700;
    transform: none;
    transition: background-color .15s ease, color .15s ease, border-color .15s ease;
  }

  .ens-home-nav .ensutex-nav-cta:hover {
    border-color: rgba(226, 6, 19, .9);
    background: #181615;
    color: #ffffff;
    transform: none;
  }

  /* El rótulo va blanco sobre la píldora #0c0b0a (19,7:1). En rojo de marca
     daba 4,01:1 y a 12 px no pasa AA: el rojo va en el borde, que marca el
     CTA sin cargar el texto. */
  .ens-home-nav .ensutex-nav-cta strong {
    color: #ffffff;
    font-weight: 800;
  }
}

@media (min-width: 1024px) and (max-width: 1199px) {
  .ens-home-nav .ensutex-nav-cta { display: none !important; }
  .ens-home-nav .ensutex-nav-menu > a,
  .ens-home-nav .ensutex-nav-menu > div > a { padding-inline: .78rem; }
}

@media (max-width: 767px) {
  .ensutex-site-nav.ens-home-nav .ensutex-brand-logo {
    height: 2.1rem !important;
  }
}

/* Directional navigation: visible at the top and while ascending; out of the
   reading area while the visitor descends. Keyboard focus always reveals it. */
.ens-scroll-nav {
  transition: transform .3s cubic-bezier(.22, 1, .36, 1), opacity .2s ease;
  will-change: transform;
}

.ens-scroll-nav.ens-nav-hidden {
  opacity: 0;
  pointer-events: none !important;
  transform: translate3d(0, calc(-100% - 1.5rem), 0);
}

.ens-scroll-nav.ens-nav-hidden > * {
  pointer-events: none !important;
}

.ens-scroll-nav:focus-within {
  opacity: 1 !important;
  transform: translate3d(0, 0, 0) !important;
}

/* Questions: the former negative intro margin physically overlapped the title.
   Use an explicit type rhythm so long headings remain readable at every width. */
#preguntas-frecuentes .ens-section-head {
  max-width: min(72rem, 100%);
  margin-bottom: clamp(2.75rem, 5vw, 4.5rem);
}

#preguntas-frecuentes #faq-title {
  max-width: 72rem;
  margin: 0 auto;
  font-size: clamp(2.4rem, 4.2vw, 4rem) !important;
  font-weight: 700;
  letter-spacing: -.045em !important;
  /* El interlineado de este titular lo manda ahora el ritmo tipografico de
     assets/css/ensutex-fuentes.css (22-09-2026). El 1.04 de aqui era mas
     especifico (dos ids) que aquel bloque y dejaba la tilde de las mayusculas
     pegada a la linea de arriba (se midio con canvas). El tamano de letra y el
     interletrado siguen siendo los de esta hoja. */
  text-wrap: balance;
}

#preguntas-frecuentes .ens-faq__intro {
  max-width: 44rem;
  margin: clamp(1.2rem, 2vw, 1.55rem) auto 0;
  color: #52525b;
  font-size: clamp(1rem, 1.18vw, 1.14rem);
  font-weight: 400;
  line-height: 1.55;
}

/* FAQ journey accents belong to the product-cyan system too. The darker teal
   keeps the small uppercase labels and icons readable on the paper surface;
   the brighter cyan remains in borders and interaction feedback. */
#preguntas-frecuentes .ens-faq__group-label {
  color: #e20613;
}

#preguntas-frecuentes .ens-faq__item::before {
  background: linear-gradient(130deg, rgba(226, 6, 19, .72), rgba(226, 6, 19, .2), rgba(226, 6, 19, .38));
}

#preguntas-frecuentes .ens-faq__question svg {
  color: #e20613;
}

#preguntas-frecuentes .ens-faq__question[aria-expanded="true"] {
  background: linear-gradient(100deg, rgba(226, 6, 19, .1), rgba(255, 255, 255, .2));
  color: #33302d;
}

#preguntas-frecuentes .ens-faq__question[aria-expanded="true"] svg {
  color: var(--ens-home-cyan);
}

/* A deliberately staged copy block: headline, explanation, proof, action. */
@media (min-width: 768px) {
  #hero-section.ens-motion-hero--video .ens-cinema-hero__inner {
    grid-template-columns: minmax(0, .6fr) minmax(0, .4fr);
    padding-inline: clamp(2rem, 4.6vw, 5.5rem);
  }

  #hero-section.ens-motion-hero--video .ens-cinema-hero__copy {
    width: min(100%, 44rem);
    max-width: 44rem;
  }
}

#hero-section.ens-motion-hero--video .ens-motion-eyebrow {
  max-width: 42rem;
  margin-bottom: clamp(.8rem, 1.5vh, 1rem);
  /* Blanco neutro: era rgb(225, 240, 247) — blanco teñido de cian. */
  color: rgba(255, 255, 255, .86);
  font-family: var(--ens-font-body-family);
  font-size: clamp(.66rem, .73vw, .76rem);
  font-weight: 600;
  letter-spacing: .105em;
  line-height: 1.45;
}

#hero-section.ens-motion-hero--video .ens-motion-hero__title {
  max-width: 100%;
  color: #ffffff;
  font-family: var(--ens-font-body-family);
  font-size: clamp(3rem, 3.3vw, 3.85rem);
  font-weight: 600;
  letter-spacing: -.052em;
  line-height: 1.03;
  text-wrap: initial;
}

#hero-section.ens-motion-hero--video .ens-hero-line {
  white-space: nowrap;
}

#hero-section.ens-motion-hero--video .ens-hero-line--accent {
  max-width: 18ch;
  white-space: normal;
  /* Rojo de marca: era --ens-home-cyan (#e20613). El acento del hero es
     marca, no interfaz. El resto del home sigue con --ens-home-cyan. */
  color: var(--ens-sky);
  text-shadow: 0 0 24px rgba(226, 6, 19, .2), 0 5px 28px rgba(0, 0, 0, .62);
}

#hero-section.ens-motion-hero--video .ens-motion-hero__lead {
  max-width: 39rem;
  margin-top: clamp(1rem, 2.1vh, 1.35rem);
  /* Blanco neutro: era rgb(246, 245, 244) — blanco teñido de cian. */
  color: rgba(255, 255, 255, .9);
  font-family: var(--ens-font-body-family);
  font-size: clamp(1rem, 1.12vw, 1.15rem);
  font-weight: 400;
  line-height: 1.58;
}

/* 25-sep: los chips bajaron debajo del botón principal (pedido de Carlitos). La
   entrada sigue el orden nuevo: primero el botón, después los chips. */
#hero-section.ens-motion-hero--video .ens-motion-actions { animation-delay: 1.02s; }
#hero-section.ens-motion-hero--video .ens-motion-chips { animation-delay: 1.16s; }

#hero-section.ens-motion-hero--video .ens-motion-chips {
  max-width: 39rem;
  margin-top: clamp(1rem, 2vh, 1.25rem);
  gap: .6rem;
  justify-content: center;
}

#hero-section.ens-motion-hero--video .ens-motion-chips span {
  justify-content: center;
  min-height: 2.24rem;
  padding: .45rem .78rem;
  border-color: rgba(255, 255, 255, .22);
  background: rgba(13, 12, 12, .48);
  color: rgba(250, 250, 249, .92);
  font-family: var(--ens-font-body-family);
  font-size: .72rem;
  font-weight: 500;
  text-align: center;
}

#hero-section.ens-motion-hero--video .ens-motion-chips strong {
  /* Blanco y no acento: sobre la píldora oscura el rojo de marca da
     3,88:1 a 11 px, bajo el mínimo AA de 4,5:1. Aquí manda el contraste. */
  color: #ffffff;
  font-weight: 600;
}

#hero-section.ens-motion-hero--video .ens-motion-actions {
  max-width: 34rem;
  margin-top: clamp(1.05rem, 2.1vh, 1.3rem);
  gap: .75rem;
}

@media (min-width: 1024px) {
  #hero-section.ens-motion-hero--video .ens-motion-chips {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  #hero-section.ens-motion-hero--video .ens-motion-chips span {
    width: 100%;
    min-width: 0;
    justify-content: center;
    white-space: normal;
  }

  #hero-section.ens-motion-hero--video .ens-motion-actions {
    display: grid;
    grid-template-columns: minmax(0, .84fr) minmax(0, 1.16fr);
  }

  #hero-section.ens-motion-hero--video .ens-motion-button--primary {
    order: 2;
  }

  #hero-section.ens-motion-hero--video .ens-motion-actions > a {
    width: 100%;
  }
}

/* The hero must present its final composition immediately. Movement belongs to
   the product video and interaction states, never to a sales message shifting
   after the visitor has started reading it. */
#hero-section.ens-motion-hero--video .ens-cinema-enter,
.motion-ready #hero-section.ens-motion-hero--video .ens-cinema-enter {
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
}

#hero-section.ens-motion-hero--video .ens-motion-button,
#hero-section.ens-motion-hero--video .ens-motion-link {
  min-height: 3.15rem;
  padding: .8rem 1.25rem;
  border-radius: 999px;
  font-family: var(--ens-font-body-family);
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .005em;
}

#hero-section.ens-motion-hero--video .ens-motion-button--primary {
  /* Rojo de marca: era #e20613 (azul). Esta regla gana sobre la del CSS
     crítico de index.html porque ambas son !important y ésta carga
     después: por eso el azul se cambia en los dos lados, no sólo allá. */
  border-color: #E20613 !important;
  background: #E20613 !important;
  box-shadow: 0 16px 42px rgba(226, 6, 19, .32);
  color: #ffffff !important;
}

#hero-section.ens-motion-hero--video .ens-motion-button--primary strong {
  color: #ffffff !important;
}

#hero-section.ens-motion-hero--video .ens-motion-button--primary:hover {
  border-color: #E20613 !important;
  background: #B0000D !important;
  color: #ffffff !important;
}

#hero-section.ens-motion-hero--video .ens-motion-link {
  border-color: rgba(255, 255, 255, .22);
  background: rgba(9, 8, 8, .54);
  color: #ffffff;
}

@media (max-width: 1023px) {
  #hero-section.ens-motion-hero--video .ens-motion-button--primary {
    order: -1;
  }
  body.ensutex-home #chatbot-panel.ens-chat-panel.is-open {
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    transform: none !important;
  }
}

/* Primary CTA contract: black base, bold white copy and one intentional cyan
   keyword. This utility is reused by every conversion action on Home. */
.ensutex-home .ens-cta-primary {
  gap: .32rem !important;
  border: 1px solid rgba(226, 6, 19, .58) !important;
  border-radius: 999px !important;
  background: #0c0b0a !important;
  box-shadow: 0 14px 36px rgba(0, 0, 0, .26);
  color: #ffffff !important;
  font-family: var(--ens-font-body-family);
  font-weight: 700 !important;
}

.ensutex-home .ens-cta-primary strong {
  color: var(--ens-home-cyan) !important;
  font-weight: 800 !important;
}

.ensutex-home .ens-cta-primary:hover {
  border-color: rgba(226, 6, 19, .92) !important;
  background: #181615 !important;
  color: #ffffff !important;
}

/* Excepción: la píldora del nav es chrome de marca, no interfaz. Estas reglas
   existen para ganarle a las `.ensutex-home .ens-cta-primary` de arriba, que
   son (0,2,0) !important y cargan después del CSS crítico de index.html: por
   eso el borde de la píldora se cambia acá y no sólo allá. El rótulo va
   blanco; en rojo daba 4,01:1 y a 12 px no pasa AA. */
.ensutex-home .ens-home-nav .ensutex-nav-cta {
  border-color: rgba(226, 6, 19, .58) !important;
}

.ensutex-home .ens-home-nav .ensutex-nav-cta:hover {
  border-color: rgba(226, 6, 19, .92) !important;
}

.ensutex-home .ens-home-nav .ensutex-nav-cta strong {
  color: #ffffff !important;
}

/* Copy accents follow the same product blue so the journey has one clear
   visual signal. Red stays available only for alerts and the chat badge. */
.ensutex-home .ens-process-step__number,
.ensutex-home .ens-trust-card__copy strong,
.ensutex-home .ens-contact-coupon span {
  color: var(--ens-home-cyan);
}

.ensutex-home .ens-trust-card::before {
  background: linear-gradient(130deg, rgba(226, 6, 19, .76), rgba(255, 255, 255, .26), rgba(226, 6, 19, .36));
}

.ensutex-home .ens-contact-coupon {
  background: linear-gradient(135deg, #f7f6f5, #ffffff 55%, #f8f8f7);
}

@media (max-width: 767px) {
  #hero-section.ens-motion-hero--video .ens-hero-video {
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 10%, #000 90%, transparent 100%);
    mask-image: linear-gradient(90deg, transparent 0%, #000 10%, #000 90%, transparent 100%);
  }

  #hero-section.ens-motion-hero--video .ens-motion-hero__title {
    font-size: clamp(2.45rem, 10.5vw, 3.2rem);
    line-height: 1.01;
  }

  #hero-section.ens-motion-hero--video .ens-hero-line {
    white-space: normal;
  }

  #hero-section.ens-motion-hero--video .ens-motion-chips span {
    font-size: .68rem;
  }

  #preguntas-frecuentes #faq-title {
    font-size: clamp(2rem, 8.8vw, 2.8rem) !important;
    /* Sin line-height a proposito: lo pone ensutex-fuentes.css (ver arriba). */
  }

  #preguntas-frecuentes .ens-faq__intro {
    margin-top: 1.1rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ens-scroll-nav,
  .ens-home-nav .ensutex-nav-cta,
  #hero-section.ens-motion-hero--video .ens-motion-button,
  #hero-section.ens-motion-hero--video .ens-motion-link {
    transition: none;
  }
}

/* Storytelling uses one quiet language: static supporting copy and a clean
   typewriter title. The former whole-section cinematic zoom is intentionally
   absent from these scenes. */
.ensutex-home [data-storytelling],
.ensutex-home [data-storytelling].scene-reveal,
.ensutex-home [data-storytelling].scene-reveal--in {
  opacity: 1 !important;
  transform: none !important;
}

/* The browser must treat product films as presentation, not as interactive
   players. This suppresses PiP/visual-search affordances on hover. */
.ensutex-home video[data-premium-video],
.ensutex-home video[data-cinema-video] {
  pointer-events: none !important;
  user-select: none !important;
  -webkit-user-select: none !important;
  -webkit-user-drag: none !important;
}

/* Guided emotional bridge: the copy arrives first; the full-width film rises
   into view only after the visitor has continued past the message. */
#esencia-equipo {
  min-height: 132svh;
  padding: clamp(6rem, 10vw, 9rem) 0 clamp(5rem, 8vw, 7.5rem);
  overflow: clip;
  background:
    radial-gradient(circle at 50% 22%, rgba(226, 6, 19, .08), transparent 30rem),
    #070606 !important;
  color: #ffffff !important;
}

#esencia-equipo .ens-vfranja__wrap {
  width: min(calc(100% - 5rem), 96rem);
  gap: 0;
}

#esencia-equipo .ens-vfranja__copy {
  position: relative;
  z-index: 2;
  max-width: 55rem;
}

#esencia-equipo .ens-vfranja__copy .ens-eyebrow {
  color: var(--ens-home-cyan) !important;
}

#esencia-equipo .ens-vfranja__copy h2 {
  max-width: 19ch;
  color: #ffffff !important;
  font-size: clamp(2.65rem, 5.35vw, 5.4rem);
  font-weight: 700;
  letter-spacing: -.055em;
  line-height: .99;
}

#esencia-equipo .ens-vfranja__copy p:last-child {
  max-width: 46rem;
  margin-top: clamp(1.25rem, 2vw, 1.75rem);
  color: rgba(255, 255, 255, .72) !important;
  font-size: clamp(1.05rem, 1.4vw, 1.3rem);
  line-height: 1.58;
}

#esencia-equipo .ens-vfranja__media {
  width: 100%;
  margin-top: clamp(8rem, 17vh, 12rem);
  border: 1px solid rgba(255, 255, 255, .13);
  border-radius: clamp(1.2rem, 2vw, 2rem);
  background: #0c0b0a;
  box-shadow: 0 34px 110px rgba(0, 0, 0, .62);
  opacity: .04;
  transform: translate3d(0, clamp(5rem, 14vh, 9rem), 0) scale(.965);
  transform-origin: center bottom;
  transition:
    opacity .78s cubic-bezier(.22, 1, .36, 1),
    transform 1.05s cubic-bezier(.22, 1, .36, 1);
  will-change: opacity, transform;
}

#esencia-equipo.is-video-revealed .ens-vfranja__media {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
}

#esencia-equipo .ens-vfranja__media video {
  object-fit: contain;
  background: #0c0b0a;
}

/* Questions remain in the same black world, while each answer group behaves
   like a white floating conversation bubble with its own outline color. */
#preguntas-frecuentes.ens-faq {
  padding-top: clamp(6rem, 9vw, 8rem);
  padding-bottom: clamp(6rem, 9vw, 8rem);
  background:
    radial-gradient(circle at 12% 18%, rgba(226, 6, 19, .07), transparent 24rem),
    radial-gradient(circle at 88% 78%, rgba(135, 206, 235, .06), transparent 25rem),
    #070606 !important;
  color: #ffffff !important;
}

#preguntas-frecuentes .ens-eyebrow,
#preguntas-frecuentes #faq-title {
  color: #ffffff !important;
}

#preguntas-frecuentes .ens-faq__intro {
  color: rgba(255, 255, 255, .68) !important;
}

#preguntas-frecuentes .ens-faq__group:nth-child(1) { --faq-accent: #e20613; }
#preguntas-frecuentes .ens-faq__group:nth-child(2) { --faq-accent: #ff8a92; }
#preguntas-frecuentes .ens-faq__group:nth-child(3) { --faq-accent: #87ceeb; }
#preguntas-frecuentes .ens-faq__group:nth-child(4) { --faq-accent: #48d597; }

#preguntas-frecuentes .ens-faq__group-label {
  color: var(--faq-accent) !important;
}

#preguntas-frecuentes .ens-faq__item {
  border: 2px solid var(--faq-accent);
  border-radius: 1.35rem;
  background: #ffffff !important;
  box-shadow: 0 18px 54px rgba(0, 0, 0, .34);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

#preguntas-frecuentes .ens-faq__item::before {
  display: none;
}

#preguntas-frecuentes .ens-faq__question,
#preguntas-frecuentes .ens-faq__question[aria-expanded="true"] {
  background: #ffffff !important;
  color: #161413 !important;
}

#preguntas-frecuentes .ens-faq__question svg,
#preguntas-frecuentes .ens-faq__question[aria-expanded="true"] svg {
  color: var(--faq-accent) !important;
}

#preguntas-frecuentes .ens-faq__answer,
#preguntas-frecuentes .ens-faq__answer p {
  color: #474441 !important;
}

#preguntas-frecuentes .ens-faq__question:focus-visible {
  outline: 3px solid var(--faq-accent);
  outline-offset: -5px;
}

@media (max-width: 767px) {
  #esencia-equipo {
    min-height: auto;
    padding: 5.5rem 0 4.5rem;
  }

  #esencia-equipo .ens-vfranja__wrap {
    width: min(calc(100% - 2rem), 42rem);
  }

  #esencia-equipo .ens-vfranja__copy h2 {
    font-size: clamp(2.25rem, 11.2vw, 3.5rem);
  }

  #esencia-equipo .ens-vfranja__media {
    margin-top: clamp(6rem, 16vh, 8rem);
    border-radius: 1.15rem;
    transform: translate3d(0, 5rem, 0) scale(.97);
  }

  #preguntas-frecuentes.ens-faq {
    padding-top: 5rem;
    padding-bottom: 5rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  #esencia-equipo .ens-vfranja__media {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* Home 2026-07-16: the deeper video scenes remain available for their own
   pages, but they must not lengthen or overpromise on the landing page. */
.ensutex-home [data-home-reserved] {
  display: none !important;
}

/* A single, honest multi-mockup sample replaces the oversized proof scenes. */
#mockups-resumen.ens-home-mockups {
  padding: clamp(4rem, 7vw, 6rem) 0;
  background:
    radial-gradient(circle at 50% 0%, rgba(226, 6, 19, .08), transparent 30rem),
    #070606 !important;
}

#mockups-resumen .ens-home-mockups__head {
  width: min(calc(100% - 3rem), 58rem);
  margin: 0 auto clamp(2rem, 4vw, 3rem);
  text-align: center;
}

#mockups-resumen .ens-home-mockups__head .ens-eyebrow {
  justify-content: center;
  color: var(--ens-home-cyan);
}

#mockups-resumen .ens-home-mockups__head h2 {
  max-width: 18ch;
  margin: .9rem auto 0;
  color: #ffffff;
  font-size: clamp(2.2rem, 4.4vw, 4.35rem);
  font-weight: 700;
  letter-spacing: -.05em;
  line-height: 1;
  text-wrap: balance;
}

#mockups-resumen .ens-home-mockups__head p {
  max-width: 42rem;
  margin: 1.2rem auto 0;
  color: rgba(255, 255, 255, .68);
  font-size: clamp(.98rem, 1.2vw, 1.12rem);
  line-height: 1.6;
}

#mockups-resumen .ens-marquee {
  gap: 0;
}

#mockups-resumen .ens-marquee__row {
  gap: clamp(.65rem, 1vw, .9rem);
}

#mockups-resumen .ens-marquee__tile {
  width: clamp(138px, 15vw, 205px);
  border: 1px solid rgba(255, 255, 255, .1);
  border-radius: 1.1rem;
  box-shadow: 0 14px 36px rgba(0, 0, 0, .34);
}

/* One deliberate closing scene restores visual breathing room without
   turning the Home back into a sequence of repeated product films. */
#cierre-equipo.ens-home-close {
  min-height: 100svh;
  padding: clamp(5.5rem, 8vw, 7.5rem) 0;
  display: flex;
  align-items: center;
  overflow: clip;
  background:
    radial-gradient(circle at 14% 18%, rgba(226, 6, 19, .12), transparent 28rem),
    linear-gradient(135deg, #f1f0ef 0%, #f7f6f4 52%, #efeeee 100%);
  color: #161413;
}

.ens-home-close__layout {
  display: grid;
  grid-template-columns: minmax(22rem, .9fr) minmax(0, 1.1fr);
  gap: clamp(3rem, 7vw, 7rem);
  align-items: center;
}

.ens-home-close__copy {
  width: min(100%, 42rem);
  min-width: 0;
  text-align: left;
}

.ens-home-close__copy .ens-eyebrow {
  justify-content: flex-start;
  color: #e20613;
}

.ens-home-close__copy h2 {
  max-width: 12ch;
  margin: .9rem 0 0;
  color: #161413;
  font-size: clamp(2.8rem, 4.7vw, 4.9rem);
  font-weight: 700;
  letter-spacing: -.055em;
  line-height: .96;
  text-wrap: balance;
}

.ens-home-close__copy > p:not(.ens-eyebrow) {
  max-width: 35rem;
  margin: 1.35rem 0 0;
  color: #605b56;
  font-size: clamp(1rem, 1.2vw, 1.14rem);
  line-height: 1.6;
}

.ens-home-close__steps {
  max-width: 38rem;
  margin: 2rem 0 0;
  padding: 0;
  display: grid;
  gap: 0;
  list-style: none;
}

.ens-home-close__steps li {
  padding: 1rem 0;
  display: grid;
  grid-template-columns: 2.5rem minmax(0, 1fr);
  gap: .9rem;
  border-top: 1px solid rgba(22, 20, 19, .13);
}

.ens-home-close__steps li:last-child {
  border-bottom: 1px solid rgba(22, 20, 19, .13);
}

.ens-home-close__steps > li > span {
  color: #e20613;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .08em;
}

.ens-home-close__steps strong {
  display: block;
  color: #161413;
  font-size: 1rem;
  font-weight: 700;
}

.ens-home-close__steps p {
  margin: .3rem 0 0;
  color: #656971;
  font-size: .9rem;
  line-height: 1.5;
}

.ens-home-close__copy .ens-cta-primary {
  display: inline-flex !important;
  width: auto !important;
  min-height: 3.75rem;
  margin-top: 2rem;
  padding: .9rem 1.45rem;
  align-items: center;
  justify-content: center;
  gap: .55rem !important;
  border: 1px solid rgba(226, 6, 19, .65);
  box-shadow: 0 18px 48px rgba(0, 0, 0, .16);
  line-height: 1.1;
  text-decoration: none !important;
}

.ens-home-close__copy .ens-cta-primary svg {
  position: static !important;
  width: 1.1rem;
  height: 1.1rem;
  margin-left: .15rem;
  flex: 0 0 auto;
  transform: none !important;
}

.ens-home-close__media {
  width: min(100%, 35rem);
  aspect-ratio: 834 / 1112;
  margin-inline: auto;
  overflow: hidden;
  border: 1px solid rgba(22, 20, 19, .1);
  border-radius: clamp(1.25rem, 2.3vw, 2rem);
  background: #ffffff;
  box-shadow: 0 34px 90px rgba(33, 31, 29, .18);
  opacity: .04;
  transform: translate3d(0, 5rem, 0) scale(.975);
  transform-origin: center bottom;
  transition: opacity .72s cubic-bezier(.22, 1, .36, 1), transform 1s cubic-bezier(.22, 1, .36, 1);
}

#cierre-equipo.is-video-revealed .ens-home-close__media {
  opacity: 1;
  transform: none;
}

.ens-home-close__media video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: #ffffff;
}

/* The former catalog video and guide coupon become one short exit ramp. */
#catalogo.ens-home-next {
  padding: clamp(4.5rem, 8vw, 7rem) 0;
  background: #f4f3f2;
  color: #131211;
}

.ens-home-next__layout {
  display: grid;
  grid-template-columns: minmax(0, .72fr) minmax(0, 1.28fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: center;
}

.ens-home-next__layout header {
  min-width: 0;
}

.ens-home-next__layout header .ens-eyebrow {
  color: #e20613;
}

.ens-home-next__layout h2 {
  max-width: 12ch;
  margin-top: .85rem;
  color: #131211;
  font-size: clamp(2.3rem, 4vw, 4.25rem);
  font-weight: 700;
  letter-spacing: -.052em;
  line-height: 1;
}

.ens-home-next__layout header > p:last-child {
  max-width: 34rem;
  margin-top: 1.15rem;
  color: #5a5d64;
  font-size: 1rem;
  line-height: 1.6;
}

.ens-home-next__links {
  display: grid;
  gap: .8rem;
}

.ens-home-next__choices {
  min-width: 0;
  display: grid;
  gap: 1rem;
}

.ens-home-next__shortcuts {
  min-width: 0;
  padding: .8rem .9rem;
  border: 1px solid rgba(19, 18, 17, .13);
  border-radius: 1rem;
  background: rgba(255, 255, 255, .64);
}

.ens-home-next__shortcuts > span {
  display: block;
  margin-bottom: .55rem;
  color: #5f5a56;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.ens-home-next__shortcut-rail {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
}

.ens-home-next__shortcut-rail::-webkit-scrollbar {
  display: none;
}

.ens-home-next__shortcut-rail a {
  min-height: 44px;
  padding: .65rem .85rem;
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  border: 1px solid rgba(19, 18, 17, .16);
  border-radius: 999px;
  background: #ffffff;
  color: #131211;
  font-size: .79rem;
  font-weight: 700;
  line-height: 1.2;
  scroll-snap-align: start;
}

.ens-home-next__shortcut-rail a:hover {
  border-color: #e20613;
  color: #e20613;
}

.ens-home-next__shortcut-rail a:focus-visible {
  outline: 3px solid var(--ens-home-cyan);
  outline-offset: 2px;
}

.ens-home-next__link {
  min-height: 5.75rem;
  padding: 1.15rem 1.35rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: .45rem 1.25rem;
  border: 1px solid rgba(19, 18, 17, .13);
  border-radius: 1.25rem;
  background: #ffffff;
  color: #131211;
  box-shadow: 0 14px 40px rgba(24, 23, 22, .06);
  transition: transform 240ms ease, border-color 240ms ease, box-shadow 240ms ease;
}

.ens-home-next__link span {
  color: #6a6d74;
  font-size: .82rem;
  font-weight: 500;
}

.ens-home-next__link strong {
  font-size: clamp(1rem, 1.3vw, 1.18rem);
  font-weight: 700;
}

.ens-home-next__link--primary {
  border-color: rgba(226, 6, 19, .55);
  background: #0c0b0a;
  color: #ffffff;
}

.ens-home-next__link--primary span {
  color: var(--ens-home-cyan);
}

.ens-home-next__link:hover {
  border-color: rgba(226, 6, 19, .7);
  box-shadow: 0 20px 52px rgba(24, 23, 22, .1);
  transform: translateY(-2px);
}

.ens-home-next__link:focus-visible {
  outline: 3px solid var(--ens-home-cyan);
  outline-offset: 3px;
}

/* Final visual beat: the former contact-detail block exits cleanly and the
   actual animated Ensutex mark arrives from below as the last full scene. */
#contacto.ens-logo-finale {
  position: relative;
  isolation: isolate;
  min-height: 100svh;
  height: 100svh;
  padding: 3rem 1.5rem;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: #030405;
}

#contacto.ens-logo-finale::before,
#contacto.ens-logo-finale::after {
  position: absolute;
  z-index: -1;
  content: '';
  pointer-events: none;
}

#contacto.ens-logo-finale::before {
  inset: 0;
  background:
    radial-gradient(circle at 50% 52%, rgba(226, 6, 19, .11), transparent 33%),
    radial-gradient(circle at 50% 100%, rgba(226, 6, 19, .08), transparent 45%),
    #030405;
}

#contacto.ens-logo-finale::after {
  inset: auto 0 0;
  height: 22%;
  background: linear-gradient(0deg, #030405 0%, transparent 100%);
}

.ens-logo-finale__glow {
  position: absolute;
  inset: 12% 12% auto;
  z-index: -1;
  height: 60%;
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(226, 6, 19, .1), transparent 66%);
  filter: blur(28px);
  pointer-events: none;
}

.ens-logo-finale__media {
  width: min(100%, 88rem, 145svh);
  aspect-ratio: 16 / 9;
  overflow: hidden;
  transform-origin: center bottom;
}

#contacto.ens-logo-finale .ens-logo-finale__media[data-story-video] {
  opacity: 0;
  transform: translate3d(0, clamp(7rem, 16vh, 10rem), 0) scale(.975);
  transition: opacity .56s ease-out, transform 1s cubic-bezier(.22, 1, .36, 1);
  will-change: opacity, transform;
}

#contacto.ens-logo-finale.is-logo-revealed .ens-logo-finale__media[data-story-video],
#contacto.ens-logo-finale.is-video-revealed .ens-logo-finale__media[data-story-video] {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
}

.ens-logo-finale__media video {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  pointer-events: none !important;
  user-select: none;
}

@media (max-width: 767px) {
  #mockups-resumen.ens-home-mockups {
    padding: 4.25rem 0;
  }

  #mockups-resumen .ens-home-mockups__head {
    width: min(calc(100% - 2rem), 36rem);
  }

  #mockups-resumen .ens-home-mockups__head h2 {
    font-size: clamp(2.15rem, 10vw, 3.25rem);
  }

  #mockups-resumen .ens-marquee__tile {
    width: clamp(128px, 39vw, 160px);
  }

  #cierre-equipo.ens-home-close {
    min-height: auto;
    padding: 5rem 0 5.5rem;
  }

  .ens-home-close__layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 3rem;
  }

  .ens-home-close__copy {
    order: -1;
    text-align: left;
  }

  .ens-home-close__copy .ens-eyebrow {
    justify-content: flex-start;
  }

  .ens-home-close__copy h2,
  .ens-home-close__copy > p:not(.ens-eyebrow) {
    margin-left: 0;
    margin-right: 0;
  }

  .ens-home-close__copy h2 {
    font-size: clamp(2.3rem, 11vw, 3.55rem);
  }

  .ens-home-close__media {
    width: min(100%, 27rem);
    border-radius: 1.2rem;
    transform: translate3d(0, 3.5rem, 0) scale(.98);
  }

  #catalogo.ens-home-next {
    padding: 4.5rem 0;
  }

  #contacto.ens-logo-finale {
    min-height: 100svh;
    height: 100svh;
    padding: 3rem 1rem;
  }

  .ens-logo-finale__media {
    width: min(100%, 34rem);
  }

  #contacto.ens-logo-finale .ens-logo-finale__media[data-story-video] {
    transform: translate3d(0, 5rem, 0) scale(.98);
  }

  .ens-home-next__layout {
    grid-template-columns: 1fr;
    gap: 1.75rem;
  }

  .ens-home-next__layout h2 {
    max-width: 14ch;
    font-size: clamp(2.2rem, 10vw, 3.15rem);
  }

  .ens-home-next__link {
    min-height: 5.25rem;
    align-items: flex-start;
    flex-direction: column;
  }

  .ens-home-next__shortcuts {
    margin-inline: -1rem;
    padding-inline: 1rem;
    border-inline: 0;
    border-radius: 0;
  }

  .ens-home-next__shortcut-rail {
    flex-wrap: nowrap;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ens-home-close__media {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .ens-home-next__link {
    transition: none;
  }

  #contacto.ens-logo-finale .ens-logo-finale__media[data-story-video] {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .ens-home-next__link:hover {
    transform: none;
  }
}
@media (max-width: 1023px) {
  body.ensutex-home.ens-hero-in-view .floating-widgets {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    pointer-events: auto !important;
  }
}

/* 2026-07-18 · Home mobile: primero la promesa, luego la imagen de producto. */
@media (max-width: 767px) {
  #hero-section.ens-motion-hero--video {
    display: flex !important;
    min-height: 0 !important;
    padding-top: 4rem !important;
    flex-direction: column !important;
    background: #080807 !important;
  }

  #hero-section.ens-motion-hero--video .ens-cinema-hero__inner {
    position: relative !important;
    z-index: 3 !important;
    order: 1 !important;
    min-height: 0 !important;
    padding: 1.3rem 1.15rem .65rem !important;
  }

  #hero-section.ens-motion-hero--video .ens-cinema-hero__copy {
    width: 100% !important;
    max-width: 31rem !important;
    margin: 0 auto !important;
  }

  #hero-section.ens-motion-hero--video .ens-motion-eyebrow {
    margin-bottom: .65rem !important;
    font-size: .61rem !important;
    letter-spacing: .09em !important;
    line-height: 1.35 !important;
  }

  #hero-section.ens-motion-hero--video .ens-motion-hero__title {
    margin: 0 !important;
    font-size: clamp(2.35rem, 10.7vw, 3.08rem) !important;
    line-height: .98 !important;
  }

  #hero-section.ens-motion-hero--video .ens-motion-hero__lead {
    margin-top: .85rem !important;
    font-size: .91rem !important;
    line-height: 1.5 !important;
  }

  #hero-section.ens-motion-hero--video .ens-motion-chips {
    display: none !important;
  }

  #hero-section.ens-motion-hero--video .ens-motion-actions {
    display: grid !important;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr) !important;
    gap: .55rem !important;
    margin-top: 1rem !important;
  }

  #hero-section.ens-motion-hero--video .ens-motion-actions > a {
    min-width: 0 !important;
    min-height: 3.15rem !important;
    padding: .68rem .72rem !important;
    font-size: .68rem !important;
    line-height: 1.25 !important;
    text-align: center !important;
  }

  #hero-section.ens-motion-hero--video .ens-motion-button--primary {
    grid-column: 1 !important;
    order: 1 !important;
  }

  #hero-section.ens-motion-hero--video .ens-motion-link {
    grid-column: 2 !important;
    order: 2 !important;
  }

  #hero-section.ens-motion-hero--video .ens-hero-video {
    position: relative !important;
    inset: auto !important;
    z-index: 1 !important;
    order: 2 !important;
    width: 100% !important;
    height: clamp(12.8rem, 53vw, 15.2rem) !important;
    margin: 0 !important;
    object-fit: contain !important;
    object-position: center bottom !important;
    background: #080807 !important;
    transform: none !important;
    -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 14%, #000 88%, transparent 100%) !important;
    mask-image: linear-gradient(180deg, transparent 0%, #000 14%, #000 88%, transparent 100%) !important;
  }

  #hero-section.ens-motion-hero--video .ens-hero-scrim,
  #hero-section.ens-motion-hero--video .ens-motion-grid {
    display: none !important;
  }
}

/* 25-sep: franja de beneficios bajo el hero (antes eran chips dentro del hero). */
.ens-beneficios { background: #0d0c0b; border-bottom: 1px solid rgba(255, 255, 255, .08); padding: 1.1rem 1rem; }
.ens-beneficios__lista { max-width: 72rem; margin: 0 auto; display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem 1.75rem; }
.ens-beneficios__lista span { display: inline-flex; align-items: center; gap: .5rem; color: rgba(253, 251, 255, .86); font-size: .875rem; font-weight: 600; letter-spacing: .01em; }
.ens-beneficios__lista span::before { content: ""; width: 6px; height: 6px; border-radius: 999px; background: #ff3b47; flex: 0 0 auto; }
.ens-beneficios__lista strong { color: #fff; font-weight: 800; }
@media (max-width: 767px) {
  .ens-beneficios__lista { justify-content: flex-start; gap: .55rem; flex-direction: column; align-items: flex-start; }
}

/* 25-sep: la escena "La esencia del equipo" lleva el video lila (vertical 834x1112, fondo gris
   claro). Marco redondeado centrado del ancho de la prenda, no franja 16:9 a todo el ancho. */
@media (min-width: 768px) {
  #esencia-equipo .ens-vfranja__media { width: min(100%, 30rem); margin-inline: auto; aspect-ratio: 834 / 1112; background: #acacac; }
  #esencia-equipo .ens-vfranja__media video { width: 100%; height: 100%; object-fit: cover; background: #acacac; }
}


/* Source: asu-acompana.css */
/* ================================================================
   ASU ACOMPAÑA AL BOTÓN (Ensutex)
   El lanzador del chat deja de vivir pegado a la esquina: se acomoda
   al lado del CTA principal que está en pantalla y, si no hay ninguno
   a la vista, se recoge como una pestaña en el borde derecho.

   Lo que hace el movimiento lo escribe assets/js/asu-acompana.js con
   transform (translate3d). Acá solo viven el resorte del viaje y las
   dos formas de estar: junto a un botón (asu-junto) y recogida
   (asu-recogida).
   ================================================================ */

.ens-chat-widgets.asu-acompana {
  transition: transform 420ms cubic-bezier(.34, 1.35, .64, 1) !important;
}

/* Recogida: queda solo el botón redondo, sin la píldora de texto.
   El selector lleva el id porque chat-conversational.css fuerza
   `#chatbot-cta…{ display: inline-flex !important }` para que las
   hojas viejas no lo escondan: hace falta ganarle en especificidad. */
.ens-chat-widgets.asu-acompana.asu-recogida #chatbot-cta.ens-chat-prompt.chatbot-cta-fixed {
  display: none !important;
}

/* Junto a un CTA la píldora se lee con calma: no se toca su tamaño,
   solo se le da un pelín más de aire cuando Asu está acompañando. */
.ens-chat-widgets.asu-acompana.asu-junto #chatbot-cta.ens-chat-prompt.chatbot-cta-fixed {
  box-shadow: 0 16px 38px rgba(8, 8, 8, .28) !important;
}

/* Marca de estado: la pieza ya terminó su viaje y volvió a medirse.
   No pinta nada. Está porque el guardián del sitio (assets/js/inbound-flow.js)
   esconde el lanzador en cuanto lo mide encima de un botón o un enlace, y
   mira los cambios de clase del lanzador: mover esta marca al final del
   viaje le pide que vuelva a medir, ya quieto. */
.ens-chat-widgets.asu-acompana.asu-asentada {
  /* sin estilos: es solo un aviso de estado */
}

/* Guardado mientras el camino vivo ocupa la pantalla (asu-fuera lo pone
   assets/js/asu-acompana.js): el camino lleva su propio Asu y no puede
   haber dos a la vez. Se apaga entero con display: none, que no lo puede
   reencender ninguna de las reglas que el sitio ya trae para el lanzador
   (chat-conversational.css fuerza `display: block !important` con dos
   clases; home-refinement.css fuerza opacidad y visibilidad con body más
   dos clases): de ahí las cuatro clases del selector. Las reglas de los
   hijos quedan como segunda red, por si alguna hoja futura vuelve a
   mostrar el envoltorio. El panel del chat vive fuera de esta pieza, así
   que no lo toca. */
.floating-widgets.ens-chat-widgets.asu-acompana.asu-fuera {
  display: none !important;
}

.floating-widgets.ens-chat-widgets.asu-acompana.asu-fuera #chatbot-trigger,
.floating-widgets.ens-chat-widgets.asu-acompana.asu-fuera #chatbot-cta.ens-chat-prompt.chatbot-cta-fixed {
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

@media (prefers-reduced-motion: reduce) {
  .ens-chat-widgets.asu-acompana { transition: none !important; }
}
