/**
* 1. General
* 2. Global Button Slide Fill
* 3. IconText InfiniteLoop
*/

/**
* Global Button Slide Fill
*
* Every CTA button in the plugin gets the same hover animation: a colour panel
* wipes across the button from right to left. It is painted by a ::before that
* sits above the button background but below the label (negative z-index inside
* the button's own stacking context), so no widget markup has to change.
*
* Several widgets already shipped this effect with their own fill colour, so
* `background-color` here is a default (a CSS variable, no !important) that a
* widget's later declaration still wins over. The per-button overrides at the
* bottom keep the fill matching each button's existing hover state, so no
* label ends up dark-on-dark.
*
* Override per section with Elementor Custom CSS, e.g.
*   selector .vrock-cta-btn { --vr-btn-fill: #FF8A6B; }
*
* Deliberately excluded: icon-only controls (play, close, slider arrows,
* accordion triggers, mobile toggle) where a wipe makes no sense.
*/
.vr-about-btn,
.vr-choose-cta-btn,
.vr-cov-global-btn,
.vr-dcv-quote-btn,
.vr-fic-quote-btn,
.vr-ft-btn-slide,
.vr-global-explore-btn,
.vr-hero-btn,
.vr-ins-hero-btn,
.vr-lsp-quote-btn,
.vr-map-action-btn,
.vr-matters-cta-btn,
.vr-mcv-quote-btn,
.vr-need-cta-btn,
.vr-perks-cta-btn,
.vr-plc-quote-btn,
.vr-prm-quote-btn,
.vr-protect-cta-btn,
.vr-quote-submit-btn,
.vr-rely-cta-btn,
.vr-rly-quote-btn,
.vr-tomorrow-cta-btn,
.vr-trm-global-btn,
.vr-wcu-quote-btn,
.vrock-cta-btn,
.vrock-cta-btn2,
.vrock-hero-btn,
.vrock-job-btn {
    position: relative !important;
    overflow: hidden !important;
    isolation: isolate;
}

.vr-about-btn::before,
.vr-choose-cta-btn::before,
.vr-cov-global-btn::before,
.vr-dcv-quote-btn::before,
.vr-fic-quote-btn::before,
.vr-ft-btn-slide::before,
.vr-global-explore-btn::before,
.vr-hero-btn::before,
.vr-ins-hero-btn::before,
.vr-lsp-quote-btn::before,
.vr-map-action-btn::before,
.vr-matters-cta-btn::before,
.vr-mcv-quote-btn::before,
.vr-need-cta-btn::before,
.vr-perks-cta-btn::before,
.vr-plc-quote-btn::before,
.vr-prm-quote-btn::before,
.vr-protect-cta-btn::before,
.vr-quote-submit-btn::before,
.vr-rely-cta-btn::before,
.vr-rly-quote-btn::before,
.vr-tomorrow-cta-btn::before,
.vr-trm-global-btn::before,
.vr-wcu-quote-btn::before,
.vrock-cta-btn::before,
.vrock-cta-btn2::before,
.vrock-hero-btn::before,
.vrock-job-btn::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    background-color: var(--vr-btn-fill, #273471);
    z-index: -1 !important;
    transform: scaleX(0) !important;
    transform-origin: right center !important;
    transition: transform .4s cubic-bezier(.77, 0, .175, 1) !important;
}

.vr-about-btn:hover::before,
.vr-choose-cta-btn:hover::before,
.vr-cov-global-btn:hover::before,
.vr-dcv-quote-btn:hover::before,
.vr-fic-quote-btn:hover::before,
.vr-ft-btn-slide:hover::before,
.vr-global-explore-btn:hover::before,
.vr-hero-btn:hover::before,
.vr-ins-hero-btn:hover::before,
.vr-lsp-quote-btn:hover::before,
.vr-map-action-btn:hover::before,
.vr-matters-cta-btn:hover::before,
.vr-mcv-quote-btn:hover::before,
.vr-need-cta-btn:hover::before,
.vr-perks-cta-btn:hover::before,
.vr-plc-quote-btn:hover::before,
.vr-prm-quote-btn:hover::before,
.vr-protect-cta-btn:hover::before,
.vr-quote-submit-btn:hover::before,
.vr-rely-cta-btn:hover::before,
.vr-rly-quote-btn:hover::before,
.vr-tomorrow-cta-btn:hover::before,
.vr-trm-global-btn:hover::before,
.vr-wcu-quote-btn:hover::before,
.vrock-cta-btn:hover::before,
.vrock-cta-btn2:hover::before,
.vrock-hero-btn:hover::before,
.vrock-job-btn:hover::before,
.vr-about-btn:focus-visible::before,
.vr-choose-cta-btn:focus-visible::before,
.vr-cov-global-btn:focus-visible::before,
.vr-dcv-quote-btn:focus-visible::before,
.vr-fic-quote-btn:focus-visible::before,
.vr-ft-btn-slide:focus-visible::before,
.vr-global-explore-btn:focus-visible::before,
.vr-hero-btn:focus-visible::before,
.vr-ins-hero-btn:focus-visible::before,
.vr-lsp-quote-btn:focus-visible::before,
.vr-map-action-btn:focus-visible::before,
.vr-matters-cta-btn:focus-visible::before,
.vr-mcv-quote-btn:focus-visible::before,
.vr-need-cta-btn:focus-visible::before,
.vr-perks-cta-btn:focus-visible::before,
.vr-plc-quote-btn:focus-visible::before,
.vr-prm-quote-btn:focus-visible::before,
.vr-protect-cta-btn:focus-visible::before,
.vr-quote-submit-btn:focus-visible::before,
.vr-rely-cta-btn:focus-visible::before,
.vr-rly-quote-btn:focus-visible::before,
.vr-tomorrow-cta-btn:focus-visible::before,
.vr-trm-global-btn:focus-visible::before,
.vr-wcu-quote-btn:focus-visible::before,
.vrock-cta-btn:focus-visible::before,
.vrock-cta-btn2:focus-visible::before,
.vrock-hero-btn:focus-visible::before,
.vrock-job-btn:focus-visible::before {
    transform: scaleX(1) !important;
    transform-origin: left center !important;
}

/* Fill colours for the buttons that did not already have a wipe. Each one is
   the colour that button used to flip its background to on hover - where that
   came from an Elementor control, the control's variable is reused, so the
   "Button Hover Background" settings now drive the wipe instead. */
.vr-ins-hero-btn {
    --vr-btn-fill: #27366F;
}

.vr-rly-quote-btn {
    --vr-btn-fill: #FFFFFF;
}

.vr-cov-global-btn {
    --vr-btn-fill: var(--vr-cov-btn-bg-hover, var(--vr-cov-btn-bg, #FFFFFF));
}

.vrock-job-btn {
    --vr-btn-fill: var(--vr-job-btn-bg-hover, #27366F);
}

.vr-services-style-2 .vr-global-explore-btn {
    --vr-btn-fill: var(--vr-svc-btn-bg-hover, #27366F);
}

.vr-plc-style-2 .vr-plc-quote-btn,
.vr-plc-style-3 .vr-plc-quote-btn {
    --vr-btn-fill: var(--vr-plc-btn-bg-hover, #FFFFFF);
}

.vr-plc-style-4 .vr-plc-quote-btn {
    --vr-btn-fill: var(--vr-plc-btn-bg-hover, #27366F);
}

/* This one has no hover colour change of its own, so give it the navy wipe
   plus the white label that goes with it. */
.vr-map-action-btn {
    --vr-btn-fill: #273471;
}

.vr-map-action-btn:hover,
.vr-map-action-btn:focus-visible {
    color: #FFFFFF !important;
}

@media (prefers-reduced-motion: reduce) {
    .vr-about-btn::before,
    .vr-choose-cta-btn::before,
    .vr-cov-global-btn::before,
    .vr-dcv-quote-btn::before,
    .vr-fic-quote-btn::before,
    .vr-ft-btn-slide::before,
    .vr-global-explore-btn::before,
    .vr-hero-btn::before,
    .vr-ins-hero-btn::before,
    .vr-lsp-quote-btn::before,
    .vr-map-action-btn::before,
    .vr-matters-cta-btn::before,
    .vr-mcv-quote-btn::before,
    .vr-need-cta-btn::before,
    .vr-perks-cta-btn::before,
    .vr-plc-quote-btn::before,
    .vr-prm-quote-btn::before,
    .vr-protect-cta-btn::before,
    .vr-quote-submit-btn::before,
    .vr-rely-cta-btn::before,
    .vr-rly-quote-btn::before,
    .vr-tomorrow-cta-btn::before,
    .vr-trm-global-btn::before,
    .vr-wcu-quote-btn::before,
    .vrock-cta-btn::before,
    .vrock-cta-btn2::before,
    .vrock-hero-btn::before,
    .vrock-job-btn::before {
        transition: none !important;
    }
}

/**
* IconText InfiniteLoop
*/
.vrockaddonsfe_infinite_loop_wrap .vrockaddonsfe_icon_box {
    display: flex;
    align-items: center;
    text-align: center;
    justify-content: center;
}

.vrockaddonsfe_infinite_loop_wrap .swiper-wrapper {
    transition-timing-function: linear;
}
