/* WP2Static UI Polyfill — sticky header + utility */
header.fusion-header-wrapper, #masthead, header.site-header, header#header, .header-main {
    position: sticky !important;
    top: 0 !important;
    z-index: 1000;
    transition: box-shadow .2s ease, padding .2s ease;
}
header.wp2s-scrolled {
    box-shadow: 0 2px 12px rgba(0,0,0,.08);
    background: rgba(255,255,255,.98) !important;
    backdrop-filter: blur(6px);
}
/* Hide Avada slider loading spinner — Avada JS removes it normally,
   but we strip that JS, so it would stay forever. Hide it always. */
.fusion-slider-loading, .fusion-slider-loading-progress, .fusion-slider-loading-progress-bar,
.fusion-loader, .fusion-page-loading, .fusion-preloader,
#preloader, #fusion-preloader, .preloader-wrap, .preloader { display: none !important; }
/* Ensure slider slides themselves stay visible if loader was hiding them */
.fusion-slider, .fusion-slider-sc, .flexslider, .fusion-flexslider { opacity: 1 !important; visibility: visible !important; }

/* Desktop menu must NEVER be hidden by our polyfill — guard against accidental display:none */
@media (min-width: 800px) {
    .fusion-main-menu, nav.fusion-main-menu, .fusion-main-menu > ul,
    .fusion-menu, ul.fusion-menu { display: block !important; }
    .fusion-main-menu > ul, .fusion-menu { display: flex !important; }
}

/* Make sure toggle/accordion content can be shown */
.fusion-toggle-content, .elementor-tab-content, .elementor-accordion-content,
.panel-collapse, .accordion-content, .collapse { display: none; }
.fusion-toggle-content.fusion-toggle-content-open,
.elementor-tab-content.active, .elementor-accordion-content.active,
.panel-collapse.in, .panel-collapse.show, .collapse.in, .collapse.show,
.accordion-content.active { display: block !important; }
.fusion-toggle-heading, .elementor-tab-title, .elementor-accordion-title,
.panel-heading[role="tab"], .accordion-toggle, [data-toggle="collapse"] {
    cursor: pointer; user-select: none;
}
/* v1.3.9: Pages where sidebar is removed (contact-us etc.) — make content full-width */
body.wp2s-no-sidebar #content,
body.wp2s-no-sidebar section#content,
body.wp2s-no-sidebar .fusion-content-widget-area-wrapper,
body.wp2s-no-sidebar .has-sidebar #content {
    flex: 1 1 100% !important;
    max-width: 100% !important;
    width: 100% !important;
    float: none !important;
}
body.wp2s-no-sidebar #sidebar,
body.wp2s-no-sidebar aside#sidebar,
body.wp2s-no-sidebar .fusion-sidebar { display: none !important; }
body.wp2s-no-sidebar .has-sidebar #main .fusion-row { display: block !important; }

/* Avada search overlay — hidden permanently when our inline search is used (v1.3.8). */
.fusion-overlay-search { display: none !important; }

/* Modal styling */
.modal { display: none; position: fixed; inset: 0; z-index: 10000;
    background: rgba(0,0,0,.5); align-items: center; justify-content: center; }
.modal.in, .modal.show, .modal.active { display: flex !important; }
.modal-dialog { background: #fff; max-width: 600px; max-height: 80vh; overflow-y: auto;
    border-radius: 8px; padding: 20px; box-shadow: 0 10px 40px rgba(0,0,0,.2); }
.modal .close, .modal-close { cursor: pointer; font-size: 24px; background: none;
    border: none; position: absolute; top: 10px; right: 16px; color: #666; }
/* Mobile menu */
@media (max-width: 800px) {
    .fusion-mobile-menu, .mobile-menu, .menu-mobile { display: none; }
    .fusion-mobile-menu.wp2s-open, .mobile-menu.wp2s-open, .menu-mobile.wp2s-open {
        display: block !important; position: absolute; top: 100%; left: 0; right: 0;
        background: #fff; box-shadow: 0 4px 12px rgba(0,0,0,.1); padding: 20px; z-index: 999;
    }
}

/* WPBakery image-carousel resilience fix — .vc_item is visibility:hidden by
   default and relies entirely on vc_carousel.min.js to reveal any slide at
   all. If that plugin JS ever fails to initialize (script-load timing, a
   conflicting error elsewhere on the page, etc.) the whole carousel goes
   permanently blank with no fallback. Force the first slide visible by
   default so there's always something to see even if the JS never runs;
   once the JS does initialize correctly it takes over slide-switching as
   normal (this rule only affects the default/unstyled state). */
.vc_images_carousel .vc_item:first-child { visibility: visible !important; }

/* WPBakery "parallax row" background images — these rely entirely on
   WPBakery's own JS reading a data-vc-parallax-image attribute and
   injecting a background dynamically at runtime; the attribute also
   pointed at unconverted wp-content/uploads/... paths that don't exist
   in this static export (now fixed in the HTML itself). Set the
   background directly via CSS as a guaranteed fallback that doesn't
   depend on any JS running at all. */
.vc_custom_1771930174384 { background-image: url('/assets/images/banner.jpeg') !important; background-size: cover !important; background-position: center !important; }
.vc_custom_1746247601408 { background-image: url('/assets/images/20241114_115453-scaled.jpg') !important; background-size: cover !important; background-position: center !important; }

/* Preloader safety net — #preload is a full-viewport opaque white overlay
   (z-index 9999999) that's only removed by a window.onload JS handler. If
   that event is ever delayed or doesn't fire cleanly (any slow/broken
   resource on the page), the header/nav and everything else stays hidden
   behind it indefinitely. Force it to fade out and stop blocking clicks
   after a few seconds regardless of JS, as a pure-CSS safety net alongside
   the existing JS removal (both can coexist safely). */
#preload {
    animation: rsd-preload-fade 0.4s ease-out 0.6s forwards;
}
@keyframes rsd-preload-fade {
    to { opacity: 0; visibility: hidden; pointer-events: none; }
}

/* #wrapper-container is forced to exactly height:100vh by the theme's
   off-canvas mobile-menu-push system (the whole page is meant to "slide"
   when that menu opens). The new header doesn't depend on that system,
   and constraining a wrapper to one screen's height while its actual
   content (topbar + header + hero + full page) is far taller than that
   causes layout distortion. Let it size to its real content instead. */
#wrapper-container { height: auto !important; min-height: 100vh; }
.content-pusher { height: auto !important; }
