:root {
  --r2gh-red: #b51522;
  --r2gh-black: #070807;
  --r2gh-green: #08743b;
  --r2gh-ease-out: cubic-bezier(.16, 1, .3, 1);
  --r2gh-ease-wipe: cubic-bezier(.76, 0, .24, 1);
}

html.r2gh-motion-ready { scroll-behavior: smooth; }

.r2gh-page-transition {
  position: fixed;
  z-index: 2147483000;
  inset: 0;
  pointer-events: none;
  transform: translate3d(0, 0, 0);
  background: linear-gradient(90deg, var(--r2gh-red) 0 33.333%, var(--r2gh-black) 33.333% 66.666%, var(--r2gh-green) 66.666% 100%);
  animation: r2gh-page-reveal .92s var(--r2gh-ease-wipe) forwards;
  will-change: transform;
}

.r2gh-page-transition::before,
.r2gh-page-transition::after {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .24;
}

.r2gh-page-transition::before {
  background: repeating-linear-gradient(100deg, transparent 0 9vw, rgba(255,255,255,.12) 9vw 9.15vw);
}

.r2gh-page-transition::after {
  background: linear-gradient(100deg, transparent 0 42%, rgba(255,255,255,.2) 50%, transparent 58%);
  transform: translateX(-90%);
  animation: r2gh-glint 1s ease-out .08s both;
}

.r2gh-page-transition.is-leaving { animation: r2gh-page-cover .58s var(--r2gh-ease-wipe) forwards; }
body.r2gh-cinematic-motion .elementor { animation: r2gh-page-in 1.05s var(--r2gh-ease-out) both; }

.r2gh-motion-section {
  position: relative;
  isolation: isolate;
  overflow: clip;
  transform-style: preserve-3d;
}

.r2gh-motion-section::after {
  content: "";
  position: absolute;
  z-index: 40;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(102deg, var(--r2gh-red) 0 31%, var(--r2gh-black) 31% 69%, var(--r2gh-green) 69% 100%);
  transform: scaleX(1.18) skewX(-7deg);
  transform-origin: left;
  transition: transform 1.25s var(--r2gh-ease-wipe) .05s;
}

.r2gh-motion-section:nth-of-type(even)::after { transform-origin: right; }
.r2gh-motion-section.r2gh-visible::after { transform: translateX(118%) scaleX(1.18) skewX(-7deg); }
.r2gh-motion-section:nth-of-type(even).r2gh-visible::after { transform: translateX(-118%) scaleX(1.18) skewX(-7deg); }

.r2gh-reveal {
  opacity: 0;
  clip-path: inset(0 0 18% 0);
  transform: translate3d(var(--r2gh-reveal-x, 0), 105px, 0) rotate(var(--r2gh-reveal-rotate, 0deg)) scale(.93);
  transition:
    opacity .78s ease calc(var(--r2gh-stagger, 0) * 85ms),
    transform 1.2s var(--r2gh-ease-out) calc(var(--r2gh-stagger, 0) * 85ms),
    clip-path 1.25s var(--r2gh-ease-out) calc(var(--r2gh-stagger, 0) * 85ms);
  will-change: transform, opacity, clip-path;
}

.r2gh-from-left { --r2gh-reveal-x: -12vw; --r2gh-reveal-rotate: -2.4deg; }
.r2gh-from-right { --r2gh-reveal-x: 12vw; --r2gh-reveal-rotate: 2.4deg; }

.r2gh-motion-section.r2gh-visible .r2gh-reveal {
  opacity: 1;
  clip-path: inset(0);
  transform: translate3d(0, 0, 0) rotate(0) scale(1);
}

body.r2gh-cinematic-home .r2gh-hero-section { min-height: min(100svh, 1100px); perspective: 1400px; }

body.r2gh-cinematic-home .r2gh-hero-section > .elementor-container,
body.r2gh-cinematic-home .r2gh-hero-section > .e-con-inner {
  transform: translate3d(var(--r2gh-hero-pointer-x, 0px), var(--r2gh-hero-copy-y, 0px), 0);
  opacity: var(--r2gh-hero-copy-opacity, 1);
  transition: transform .18s linear;
  will-change: transform, opacity;
}

.r2gh-parallax-frame { overflow: hidden; transform: translateZ(0); }

.r2gh-parallax-frame img,
.r2gh-parallax-frame video {
  transform: translate3d(var(--r2gh-image-x, 0px), var(--r2gh-image-y, 0px), 0) scale(var(--r2gh-image-scale, 1.075));
  transform-origin: center;
  transition: filter .45s ease, scale .45s var(--r2gh-ease-out);
  will-change: transform;
}

.r2gh-parallax-frame:hover img,
.r2gh-parallax-frame:hover video { filter: contrast(1.06) saturate(1.1); scale: 1.025; }

.r2gh-motion-section .elementor-widget-button .elementor-button,
.r2gh-motion-section .elementor-widget-image-box,
.r2gh-motion-section .elementor-widget-icon-box {
  transition: transform .42s var(--r2gh-ease-out), box-shadow .42s ease, filter .35s ease;
}

.r2gh-motion-section .elementor-widget-button .elementor-button:hover,
.r2gh-motion-section .elementor-widget-button .elementor-button:focus-visible {
  transform: translate3d(10px, -5px, 0) rotate(-1deg);
  box-shadow: -9px 12px 0 rgba(181, 21, 34, .24);
}

.r2gh-motion-section .elementor-widget-image-box:hover,
.r2gh-motion-section .elementor-widget-icon-box:hover {
  transform: translate3d(0, -16px, 0) rotate(var(--r2gh-card-tilt, -1deg));
  filter: saturate(1.08);
}

.r2gh-motion-section:nth-of-type(even) .elementor-widget-image-box,
.r2gh-motion-section:nth-of-type(even) .elementor-widget-icon-box { --r2gh-card-tilt: 1deg; }

.r2gh-motion-section .elementor-heading-title { transform-origin: left center; }
.r2gh-motion-section.r2gh-visible .elementor-heading-title { animation: r2gh-heading-settle 1.2s var(--r2gh-ease-out) both; }

@keyframes r2gh-page-reveal { to { transform: translate3d(-102%, 0, 0); } }
@keyframes r2gh-page-cover { from { transform: translate3d(102%, 0, 0); } to { transform: translate3d(0, 0, 0); } }
@keyframes r2gh-page-in { from { opacity: .12; transform: translate3d(10vw, 0, 0); } to { opacity: 1; transform: none; } }
@keyframes r2gh-glint { to { transform: translateX(90%); } }
@keyframes r2gh-heading-settle { 0% { letter-spacing: .08em; filter: blur(5px); } 100% { letter-spacing: normal; filter: none; } }

@media (max-width: 900px) {
  .r2gh-reveal { --r2gh-reveal-x: 0; --r2gh-reveal-rotate: 0deg; transform: translate3d(0, 68px, 0) scale(.96); }
  .r2gh-parallax-frame img, .r2gh-parallax-frame video { --r2gh-image-scale: 1.045; }
  .r2gh-motion-section::after { transition-duration: .95s; }
}

@media (prefers-reduced-motion: reduce) {
  html.r2gh-motion-ready { scroll-behavior: auto; }
  .r2gh-page-transition { display: none !important; }
  body.r2gh-cinematic-motion .elementor,
  .r2gh-motion-section,
  .r2gh-reveal,
  .r2gh-parallax-frame img,
  .r2gh-parallax-frame video,
  .r2gh-motion-section .elementor-heading-title,
  .r2gh-motion-section .elementor-widget-button .elementor-button,
  .r2gh-motion-section .elementor-widget-image-box,
  .r2gh-motion-section .elementor-widget-icon-box {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
    translate: none !important;
    clip-path: none !important;
    transition: none !important;
  }
  .r2gh-motion-section::after { display: none !important; }
}

