/* Shared header compatibility layer. The primary visual design remains in custom.css. */
.pfs-topbar,
.pfs-top-info-bar,
.pfs-fixed-header { width: 100%; }
.pfs-fixed-header { position: sticky; top: 0; z-index: 1040; isolation: isolate; }
.pfs-navbar,
.pfs-navbar .container-fluid,
.pfs-desktop-menu { min-width: 0; }
.pfs-navbar .nav-link,
.pfs-quote,
.pfs-mobile-call,
.pfs-mobile-quote { text-decoration: none; }
.pfs-navbar .nav-link:focus-visible,
.pfs-quote:focus-visible,
.pfs-mobile-call:focus-visible,
.pfs-mobile-quote:focus-visible,
.pfs-mobile-toggler:focus-visible { outline: 3px solid rgba(255,255,255,.72); outline-offset: -4px; }
.pfs-mobile-menu { max-width: min(86vw, 340px); }
.pfs-mobile-menu .offcanvas-body { overflow-y: auto; }
.pfs-mobile-menu .nav-link { min-height: 46px; }
.pfs-mobile-menu-shade { display: none; }
.pfs-mobile-menu-shade[hidden] { display: none !important; }
@media (max-width: 991.98px) {
    .pfs-fixed-header { box-shadow: 0 8px 24px rgba(7,28,45,.12); }
    .pfs-mobile-nav-inner { width: 100%; }

    body.pfs-public-nav-open { overflow: hidden; }

    .pfs-mobile-menu {
        position: fixed !important;
        inset: 0 auto 0 0 !important;
        z-index: 1060 !important;
        width: min(330px, 86vw) !important;
        max-width: 86vw !important;
        height: 100dvh !important;
        display: flex !important;
        visibility: hidden !important;
        transform: translateX(-103%) !important;
        transition: transform .32s cubic-bezier(.22,.61,.36,1), visibility .32s ease !important;
        box-shadow: 18px 0 48px rgba(3,18,38,.28);
    }

    .pfs-mobile-menu.is-open {
        visibility: visible !important;
        transform: translateX(0) !important;
    }

    .pfs-mobile-menu-shade {
        position: fixed;
        inset: 0;
        z-index: 1055;
        width: 100%;
        height: 100%;
        margin: 0;
        padding: 0;
        display: block;
        visibility: hidden;
        border: 0;
        background: rgba(3,18,38,.6);
        opacity: 0;
        cursor: pointer;
        pointer-events: none;
        backdrop-filter: blur(3px);
        -webkit-backdrop-filter: blur(3px);
        transition: opacity .25s ease, visibility .25s ease;
    }

    body.pfs-public-nav-open .pfs-mobile-menu-shade {
        visibility: visible;
        opacity: 1;
        pointer-events: auto;
    }

    .pfs-mobile-toggler[aria-expanded="true"] {
        background: #e4311b;
        color: #fff;
    }

    .pfs-mobile-toggler[aria-expanded="true"] .navbar-toggler-icon {
        filter: brightness(0) invert(1);
    }
}
@media (prefers-reduced-motion: reduce) {
    .pfs-navbar *, .pfs-mobile-menu * { scroll-behavior: auto !important; transition-duration: .01ms !important; }
    .pfs-mobile-menu,
    .pfs-mobile-menu-shade { transition-duration: .01ms !important; }
}
