/* Rayven Fluid Hero v4 — reference-accurate configurable controls */
.elementor-widget-rayven_hero_slider,.elementor-widget-rayven_hero_slider>.elementor-widget-container{width:100%;max-width:none!important}
.rayven-fluid-hero{--light-ui:#fff;--dark-ui:#20201f;--dark-control-bg:#17191a;--light-control-bg:rgba(255,255,255,.88);--ui:var(--light-ui);--ui-soft:rgba(255,255,255,.55);--ui-faint:rgba(255,255,255,.28);--control-bg:var(--dark-control-bg);--control-fg:#fff;--gold:#ad7d28;position:relative;width:100vw!important;max-width:100vw!important;min-height:100vh;min-height:100svh;margin-left:calc(50% - 50vw)!important;margin-right:calc(50% - 50vw)!important;overflow:hidden;background:#0b0d0e;color:var(--ui);isolation:isolate}
.rayven-fluid-hero.is-ui-dark{--ui:var(--dark-ui);--ui-soft:rgba(25,25,24,.58);--ui-faint:rgba(25,25,24,.28);--control-bg:var(--light-control-bg);--control-fg:#181818}
.rayven-fluid-canvas,.rayven-fluid-fallback,.rayven-fluid-overlay{position:absolute;inset:0}.rayven-fluid-canvas{z-index:0}.rayven-fluid-canvas canvas{width:100%!important;height:100%!important;display:block}.rayven-fluid-fallback{z-index:-1;background-position:center;background-size:cover;transform:scale(1.02)}
.rayven-fluid-overlay{z-index:1;background:linear-gradient(90deg,rgba(5,7,8,calc(var(--rayven-overlay) + .12)) 0%,rgba(5,7,8,calc(var(--rayven-overlay) * .55)) 46%,rgba(5,7,8,calc(var(--rayven-overlay) * .45)) 100%);pointer-events:none;transition:opacity .45s ease}.rayven-fluid-hero.is-ui-dark .rayven-fluid-overlay{opacity:.35}
.rayven-fluid-content-wrap{position:absolute;z-index:3;left:28.2%;top:50%;width:min(780px,58vw);transform:translateY(-50%)}.rayven-fluid-content{position:absolute;left:0;top:50%;width:100%;opacity:0;visibility:hidden;transform:translateY(calc(-50% + 45px));pointer-events:none}.rayven-fluid-content.is-active{opacity:1;visibility:visible;transform:translateY(-50%);pointer-events:auto}
.rayven-fluid-eyebrow{display:flex;align-items:center;gap:16px;color:var(--ui);font-size:13px;font-weight:600;letter-spacing:.025em;margin-bottom:24px;transition:color .4s ease}.rayven-fluid-eyebrow span{width:48px;height:1px;background:var(--ui-faint)}.rayven-fluid-title{margin:0 0 28px;color:var(--ui);font-family:inherit;font-size:clamp(48px,4.2vw,78px);font-weight:700;line-height:1;letter-spacing:-.025em;text-transform:uppercase;transition:color .4s ease}
.rayven-fluid-cta{display:inline-flex;align-items:center;justify-content:center;min-width:112px;height:52px;padding:0 24px;border-radius:999px;background:var(--gold);color:#fff!important;text-decoration:none;font-size:13px;font-weight:600;transition:transform .3s ease,filter .3s ease}.rayven-fluid-cta:hover{transform:translateY(-2px);filter:brightness(1.08)}
/* exact-style left labels */
.rayven-fluid-side-list{position:absolute;z-index:4;left:5.2%;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:24px;width:285px}.rayven-fluid-side-list span{position:relative;padding-left:42px;color:var(--ui-soft);font-size:13px;letter-spacing:.045em;transition:color .35s ease,transform .35s ease}.rayven-fluid-side-list span:before{content:"";position:absolute;left:0;top:50%;width:29px;height:1px;background:var(--ui-faint);transition:width .35s ease,background .35s ease}.rayven-fluid-side-list span.is-active{color:var(--ui);transform:translateX(6px)}.rayven-fluid-side-list span.is-active:before{width:35px;background:var(--gold)}
/* exact reference arrows */
.rayven-fluid-controls{position:absolute;z-index:5;left:5.15%;bottom:4.3%;display:flex;gap:12px}.rayven-fluid-controls button{display:grid;place-items:center;width:61px;height:61px;padding:0;border:0;border-radius:50%;background:var(--control-bg);color:var(--control-fg);cursor:pointer;box-shadow:none;transition:background .3s ease,color .3s ease,transform .3s ease,backdrop-filter .3s ease}.rayven-fluid-controls button:hover{background:var(--gold);color:#fff;transform:scale(1.04)}.rayven-fluid-controls svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.rayven-fluid-hero.arrow-light .rayven-fluid-controls button{background:#fff;color:#151719}.rayven-fluid-hero.arrow-glass .rayven-fluid-controls button{background:rgba(15,17,18,.46);color:#fff;border:1px solid rgba(255,255,255,.25);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
/* exact stacked number counter: prev / current+line / next */
.rayven-fluid-counter{position:absolute;z-index:5;right:3.55%;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:5px;color:var(--ui);font-family:inherit;transition:color .4s ease}.rayven-fluid-counter>span{font-size:17px;line-height:1;color:var(--ui-faint);font-weight:700;min-height:17px}.rayven-fluid-counter-current{display:flex;align-items:center;gap:15px}.rayven-fluid-counter-current strong{font-size:58px;line-height:.95;font-weight:700;letter-spacing:-.055em}.rayven-fluid-counter-current i{display:block;width:38px;height:1px;background:var(--ui-faint)}
/* social rail */
.rayven-fluid-social{position:absolute;z-index:5;left:1.7%;bottom:4.6%;display:flex;flex-direction:column;align-items:center;color:var(--ui-soft);transition:color .4s ease}.rayven-fluid-social-icons{display:flex;flex-direction:column;gap:15px;margin-bottom:14px}.rayven-fluid-social a{display:grid;place-items:center;width:18px;height:18px;color:inherit;text-decoration:none;transition:color .25s ease,transform .25s ease}.rayven-fluid-social a:hover{color:var(--gold);transform:translateY(-1px)}.rayven-fluid-social svg{width:12px;height:12px;fill:currentColor}.rayven-fluid-social-line{width:1px;height:34px;background:var(--ui-faint);margin:0 0 12px}.rayven-fluid-follow{font-size:10px;font-weight:600;letter-spacing:.18em;writing-mode:vertical-rl;text-orientation:mixed;white-space:nowrap}
.elementor-editor-active .rayven-fluid-hero{min-height:780px}.elementor-editor-active .elementor-widget-rayven_hero_slider{width:100%!important;max-width:none!important}.elementor-editor-active .rayven-fluid-hero{margin-left:calc(50% - 50vw)!important;margin-right:calc(50% - 50vw)!important}
@media(max-width:1100px){.rayven-fluid-content-wrap{left:15%;width:70%}.rayven-fluid-side-list{display:none}.rayven-fluid-counter{right:3%}.rayven-fluid-social{left:2.3%}}
@media(max-width:767px){.rayven-fluid-hero{min-height:100svh}.rayven-fluid-content-wrap{left:24px!important;right:24px;width:auto!important;top:50%}.rayven-fluid-eyebrow{font-size:11px;margin-bottom:16px}.rayven-fluid-title{font-size:clamp(40px,12vw,60px);line-height:1;margin-bottom:24px}.rayven-fluid-controls{left:22px;bottom:24px}.rayven-fluid-controls button{width:50px;height:50px}.rayven-fluid-counter{right:21px;top:auto!important;bottom:30px;transform:none;align-items:flex-end}.rayven-fluid-counter>span{display:none}.rayven-fluid-counter-current{gap:8px}.rayven-fluid-counter-current strong{font-size:36px}.rayven-fluid-counter-current i{width:22px}.rayven-fluid-social{display:none}.rayven-fluid-hero.show-social-mobile .rayven-fluid-social{display:flex}}

/* =========================================================
   RAYVEN V4 AJAX — CLEAN FULLSCREEN ELEMENTOR PAGES
   Keeps the theme header, removes theme spacing around the hero.
========================================================= */
body.elementor-page {
    overflow-x: hidden;
}

body.elementor-page #page_wrapper,
body.elementor-page #page_wrapper.wrapper,
body.elementor-page .root-page,
body.elementor-page .post-full-content {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.elementor-page .elementor,
body.elementor-page .elementor-section-wrap,
body.elementor-page .elementor-widget-rayven_hero_slider,
body.elementor-page .elementor-widget-rayven_hero_slider > .elementor-widget-container {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.elementor-page .rayven-fluid-hero {
    width: 100vw !important;
    max-width: 100vw !important;
    min-height: 100vh !important;
    min-height: 100svh !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
}


/* =========================================================
   RAYVEN MOBILE FULLSCREEN + SWIPE LOCK
   Keeps the hero locked to the visible mobile viewport while
   using the slider, so a horizontal swipe cannot drag the page
   down and expose the footer.
========================================================= */
.rayven-fluid-hero {
    height: 100vh !important;
    height: 100dvh !important;
    min-height: 100vh !important;
    min-height: 100dvh !important;
    touch-action: none;
    overscroll-behavior: none;
}

.rayven-fluid-canvas,
.rayven-fluid-canvas canvas {
    touch-action: none;
}

@media (max-width: 767px) {
    html,
    body {
        overscroll-behavior-y: none;
    }

    body.elementor-page .rayven-fluid-hero,
    .rayven-fluid-hero {
        height: 100dvh !important;
        min-height: 100dvh !important;
        max-height: 100dvh !important;
    }

    .rayven-fluid-content-wrap {
        top: 49% !important;
    }

    .rayven-fluid-controls {
        bottom: max(24px, env(safe-area-inset-bottom)) !important;
    }

    .rayven-fluid-counter {
        bottom: max(30px, env(safe-area-inset-bottom)) !important;
    }
}

/* =========================================================
   RAYVEN — HERO SCROLL PARALLAX + MOBILE GESTURE FIX
   Vertical scrolling remains native; horizontal gestures remain
   available to the slider. JS adds the actual scroll parallax.
========================================================= */
.rayven-fluid-hero {
    touch-action: pan-y pinch-zoom !important;
    overscroll-behavior-x: contain;
    overflow: hidden;
}

.rayven-fluid-canvas,
.rayven-fluid-canvas canvas,
.rayven-fluid-fallback {
    transform-origin: 50% 50%;
    will-change: transform;
}

.rayven-fluid-content-wrap,
.rayven-fluid-side-list,
.rayven-fluid-counter,
.rayven-fluid-controls,
.rayven-fluid-social {
    will-change: transform, opacity;
}


/* =========================================================
   RAYVEN HERO — SCROLL PASS-THROUGH
   The WebGL slider remains interactive horizontally, but must never
   trap vertical mouse-wheel / trackpad scrolling.
========================================================= */
.rayven-fluid-hero {
    --gold: #ad7d28;
    touch-action: pan-y pinch-zoom !important;
}
.rayven-fluid-canvas,
.rayven-fluid-canvas canvas,
.rayven-fluid-fallback,
.rayven-fluid-overlay {
    pointer-events: none !important;
}
.rayven-fluid-content,
.rayven-fluid-controls,
.rayven-fluid-counter,
.rayven-fluid-social,
.rayven-fluid-side-list {
    pointer-events: auto;
}

/* =========================================================
   RAYVEN FINAL DESKTOP SCROLL PASS-THROUGH
   Do not trap the wheel/trackpad over the hero. The theme's smooth
   scrollbar receives the bubbled event and can continue to content below.
========================================================= */
.rayven-fluid-hero,
.rayven-fluid-hero * {
    overscroll-behavior-y: auto !important;
}
.rayven-fluid-hero {
    touch-action: pan-y pinch-zoom !important;
}
@media (min-width: 768px) {
    .rayven-fluid-hero,
    .rayven-fluid-canvas,
    .rayven-fluid-canvas canvas,
    .rayven-fluid-fallback,
    .rayven-fluid-overlay {
        touch-action: auto !important;
    }
}

/* =========================================================
   RAYVEN HERO TYPOGRAPHY — MATCH SITE DEFAULT
   Keeps heading, eyebrow, labels, button and number counter on
   Venite Adoremus Straight without changing sizing/layout.
========================================================= */
.rayven-fluid-hero,
.rayven-fluid-title,
.rayven-fluid-eyebrow,
.rayven-fluid-side-list,
.rayven-fluid-side-list *,
.rayven-fluid-counter,
.rayven-fluid-counter *,
.rayven-fluid-content,
.rayven-fluid-content *,
.rayven-fluid-controls button,
.rayven-fluid-social,
.rayven-fluid-social a,
.rayven-fluid-button,
.rayven-fluid-cta,
.rayven-fluid-hero .elementor-button {
    font-family: 'Venite Adoremus Straight', Arial, sans-serif !important;
}

/* RAYVEN HERO — FINAL FONT HIERARCHY */
.rayven-fluid-title,
.rayven-fluid-hero h1,
.rayven-fluid-hero h2,
.rayven-fluid-hero h3,
.rayven-fluid-counter,
.rayven-fluid-counter * {
    font-family: 'Venite Adoremus Straight', Arial, sans-serif !important;
}

.rayven-fluid-eyebrow,
.rayven-fluid-side-list,
.rayven-fluid-side-list *,
.rayven-fluid-content p,
.rayven-fluid-controls button,
.rayven-fluid-social,
.rayven-fluid-social a,
.rayven-fluid-button,
.rayven-fluid-cta,
.rayven-fluid-hero .elementor-button,
.rayven-fluid-hero .elementor-button-text {
    font-family: 'Poppins', Arial, sans-serif !important;
}
