/* A long, native scroll gives the film room before Servicios. */
.rv-video-stage {
  --full-stage-height: max(500svh, 3000px);
  --hero-height: max(100svh, 760px);
  position: relative;
  /* Remove the old final 16% reserved for the hold and white dissolve. */
  height: calc(var(--hero-height) + (var(--full-stage-height) - var(--hero-height)) * .84);
  background: #fff;
}
.rv-video-stage .rv-video-hero {
  position: sticky; top: var(--pin-top, 0px); height: 100svh;
  min-height: 760px; background: #07080a;
  --content-opacity: 1;
}
.rv-video-hero::before { display: none; }
.rv-video-hero::after {
  z-index: 1; opacity: var(--content-opacity);
  background: linear-gradient(90deg, rgba(5,6,8,.88), rgba(5,6,8,.5) 48%, rgba(5,6,8,.06));
}
.hero-film { position: absolute; inset: 0; pointer-events: none; }
.hero-film { z-index: 0; background: var(--film-surround, #07080a); }
.hero-film video { display: block; width: 100%; height: 100%; object-fit: cover; }
.hero-static-poster { display: none; }
.hero-mobile-effects { display: none; }
.rv-video-hero h1 em {
  color: #d71920; -webkit-text-fill-color: #d71920;
  -webkit-text-stroke: 2px rgba(8,9,11,.92);
  paint-order: stroke fill;
  text-shadow:
    0 3px 0 rgba(0,0,0,.82),
    0 0 12px rgba(0,0,0,.9),
    0 0 28px rgba(0,0,0,.72);
}
.about-logo-trails {
  position: absolute; z-index: 1; left: 50%; top: 50%;
  width: min(86%, 720px); height: 58%; transform: translate(-50%, -50%);
  overflow: hidden; pointer-events: none; mix-blend-mode: screen;
}
.about-logo-trails::before,
.about-logo-trails > i {
  content: ""; position: absolute; inset: 0; display: block;
}
.about-logo-trails::before {
  background:
    linear-gradient(90deg, transparent 0 5%, rgba(255,255,255,.05) 20%, rgba(255,255,255,.92) 48%, rgba(211,20,28,.82) 53%, transparent 76%) 0 34% / 64% 2px no-repeat,
    linear-gradient(90deg, transparent 0 12%, rgba(204,16,24,.86) 42%, rgba(255,255,255,.58) 55%, transparent 82%) 0 54% / 78% 3px no-repeat,
    linear-gradient(90deg, transparent 0 18%, rgba(255,255,255,.46) 48%, rgba(188,17,24,.78) 62%, transparent 88%) 0 70% / 58% 1px no-repeat;
  filter: drop-shadow(0 0 7px rgba(210,18,26,.88));
  animation: rv-logo-trail-forward 7.6s cubic-bezier(.4,0,.2,1) infinite;
}
.about-logo-trails > i {
  background:
    radial-gradient(circle at 30% 43%, rgba(255,255,255,.92) 0 1px, rgba(222,25,33,.48) 2px, transparent 5px),
    radial-gradient(circle at 67% 62%, rgba(255,255,255,.8) 0 1px, rgba(222,25,33,.38) 2px, transparent 5px),
    radial-gradient(circle at 78% 37%, rgba(222,25,33,.78) 0 1px, transparent 5px);
  animation: rv-logo-trail-sparks 5.4s ease-in-out infinite;
}
.rv-video-hero .hero-content, .rv-video-hero .hero-badge { opacity: var(--content-opacity); }
.rv-video-hero .hero-content { transform: translateY(var(--content-y, 0px)); }
.rv-video-hero .hero-badge { z-index: 2; }
.rv-video-stage > .proof-strip {
  position: absolute; z-index: 4; left: 0; right: 0; bottom: 0;
}
.rv-video-stage.video-unavailable { height: auto; min-height: 0; }
.rv-video-stage.video-unavailable .rv-video-hero { position: relative; top: 0; }
@media (max-width: 760px) {
  .rv-video-stage { --full-stage-height: max(550svh, 2900px); }
  .hero-film video { object-fit: contain; }
  .rv-video-hero::after { background: linear-gradient(90deg, rgba(5,6,8,.84), rgba(5,6,8,.38)); }
}
@media (prefers-reduced-motion: reduce) {
  .rv-video-stage { height: auto; min-height: 0; }
  .rv-video-stage .rv-video-hero { position: relative; top: 0; }
}

/* Phones and touch tablets use the dark opening image and normal page scroll. */
@media (max-width: 1024px), (hover: none) and (pointer: coarse) {
  .rv-video-stage { height: auto; min-height: 0; }
  .rv-video-stage .rv-video-hero {
    position: relative; top: 0; height: 100svh;
  }
  .hero-film video { display: none; }
  .hero-static-poster {
    display: block; width: 100%; height: 100%; object-fit: contain;
  }
  .hero-mobile-effects {
    position: absolute; z-index: 2; inset: 0; display: block;
    overflow: hidden; pointer-events: none; mix-blend-mode: screen;
  }
  .hero-mobile-effects::before,
  .hero-mobile-effects::after {
    content: ""; position: absolute;
  }
  .hero-mobile-effects::before {
    z-index: 1; inset: -4%;
    background:
      radial-gradient(circle at 52% 61%, rgba(255,43,49,.72) 0, rgba(216,15,24,.38) 19%, rgba(153,4,12,.12) 36%, transparent 55%),
      radial-gradient(circle at 63% 48%, #fff 0 1.5px, rgba(255,78,84,.95) 3px, transparent 8px),
      radial-gradient(circle at 37% 58%, #fff 0 1.5px, rgba(255,42,48,.86) 3px, transparent 7px),
      radial-gradient(circle at 57% 72%, rgba(255,255,255,.96) 0 1px, rgba(255,42,48,.8) 3px, transparent 7px),
      radial-gradient(circle at 26% 68%, rgba(255,255,255,.9) 0 1px, rgba(255,48,54,.8) 3px, transparent 7px),
      radial-gradient(circle at 76% 65%, rgba(255,255,255,.88) 0 1px, rgba(255,48,54,.76) 3px, transparent 7px);
    filter: saturate(1.25) drop-shadow(0 0 18px rgba(214,16,25,.56));
    animation: rv-mobile-glow 5.8s ease-in-out infinite;
  }
  .hero-mobile-effects::after {
    /* Reflejo móvil/tablet: elemento muy ancho para que nunca entren sus bordes visibles. */
    z-index: 3; top: -28%; bottom: -28%; left: -235%; width: 270%;
    background:
      linear-gradient(108deg,
        transparent 0 38%,
        rgba(255,255,255,.015) 42%,
        rgba(255,255,255,.07) 45.5%,
        rgba(255,255,255,.24) 48.2%,
        rgba(255,255,255,.72) 50%,
        rgba(255,255,255,.28) 51.8%,
        rgba(255,255,255,.08) 54.5%,
        rgba(255,255,255,.018) 58%,
        transparent 62% 100%);
    filter: blur(11px);
    opacity: 0;
    will-change: transform, opacity;
    animation: rv-mobile-sheen 14s cubic-bezier(.46,.02,.25,1) infinite;
  }
  .mobile-particles {
    position: absolute; z-index: 2; inset: -18%; display: block;
    background-repeat: repeat; will-change: transform, opacity;
    filter: drop-shadow(0 0 4px rgba(255,255,255,.42));
  }
  .mobile-particles-a {
    background-image:
      radial-gradient(circle, rgba(255,255,255,.86) 0 1px, transparent 2.4px),
      radial-gradient(circle, rgba(255,255,255,.62) 0 1px, transparent 2.8px);
    background-size: 94px 118px, 157px 181px;
    background-position: 14px 26px, 63px 91px;
    animation: rv-particles-a 18s linear infinite, rv-particles-twinkle 3.8s ease-in-out infinite alternate;
  }
  .mobile-particles-b {
    background-image:
      radial-gradient(circle, rgba(255,255,255,.72) 0 1px, transparent 2.5px),
      radial-gradient(circle, rgba(255,255,255,.48) 0 1px, transparent 2.5px);
    background-size: 137px 163px, 211px 229px;
    background-position: 31px 54px, 104px 18px;
    animation: rv-particles-b 24s linear infinite, rv-particles-twinkle 5.2s ease-in-out 1.1s infinite alternate;
  }
  .rv-video-hero .hero-content,
  .rv-video-hero .hero-badge { z-index: 3; }
  .rv-video-stage > .proof-strip {
    position: relative; left: auto; right: auto; bottom: auto;
  }
}

@keyframes rv-mobile-glow {
  0%, 100% { opacity: .5; transform: scale(1); }
  34% { opacity: .94; transform: scale(1.025); }
  48% { opacity: .62; transform: scale(1.01); }
  67% { opacity: 1; transform: scale(1.045); }
}
@keyframes rv-mobile-sheen {
  /* El reflejo permanece invisible en los extremos y sólo aparece al cruzar el centro. */
  0%, 29% { opacity: 0; transform: translate3d(0, 0, 0); }
  34% { opacity: .08; }
  42% { opacity: .42; }
  50% { opacity: .92; }
  58% { opacity: .46; }
  66% { opacity: .10; }
  71%, 100% { opacity: 0; transform: translate3d(165%, 0, 0); }
}
@keyframes rv-particles-a {
  from { transform: translate3d(-2%, 9%, 0); }
  to { transform: translate3d(4%, -12%, 0); }
}
@keyframes rv-particles-b {
  from { transform: translate3d(4%, 6%, 0); }
  to { transform: translate3d(-5%, -10%, 0); }
}
@keyframes rv-particles-twinkle {
  0% { opacity: .36; }
  38% { opacity: .82; }
  62% { opacity: .48; }
  100% { opacity: .9; }
}
@keyframes rv-logo-trail-forward {
  0%, 18% { opacity: 0; transform: translate3d(-70%, 0, 0); }
  28% { opacity: .9; }
  58% { opacity: .72; }
  76%, 100% { opacity: 0; transform: translate3d(72%, 0, 0); }
}
@keyframes rv-logo-trail-sparks {
  0%, 100% { opacity: .25; transform: translate3d(-2%, 2%, 0); }
  42% { opacity: .95; transform: translate3d(3%, -2%, 0); }
  68% { opacity: .48; transform: translate3d(1%, 1%, 0); }
}

@media (prefers-reduced-motion: reduce) {
  .hero-mobile-effects::before,
  .hero-mobile-effects::after,
  .mobile-particles,
  .about-logo-trails::before,
  .about-logo-trails > i { animation: none; }
  .hero-mobile-effects::before { opacity: .5; }
  .hero-mobile-effects::after { opacity: 0; }
  .mobile-particles { opacity: .45; }
  .about-logo-trails::before { opacity: .35; transform: none; }
}
