/* Accessibility and mobile contact, preserving the existing Gerow palette. */
html:root {
    --tg-body-font-color: #465775;
    --tg-paragraph-color: #465775;
}
.elementor-kit-8 { --e-global-color-text: #465775; }
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
    outline: 3px solid #0055ff !important;
    outline-offset: 4px;
}
.niop-skip-link {
    position: fixed;
    left: 16px;
    top: 12px;
    transform: translateY(-200%);
    z-index: 100000;
    color: #fff;
    background: #00194c;
    padding: 12px 18px;
    border-radius: 4px;
}
.niop-skip-link:focus { transform: translateY(0); color: #fff; }
#main-content:focus { outline: none; }
.menu-area button.mobile-nav-toggler { background: transparent; min-width: 44px; min-height: 44px; }
.mobile-menu { transition-property: transform; }
.mobile-menu[aria-hidden="true"] { visibility: hidden; }
.mobile-menu[aria-hidden="false"] { visibility: visible; }
.mobile-menu button.close-btn {
    background: transparent;
    border: 0;
    min-width: 44px;
    min-height: 44px;
    padding: 0;
}
.mobile-menu .navigation li.menu-item-has-children button.dropdown-btn {
    border: 0;
    padding: 0;
    width: 44px;
    height: 44px;
    top: 0;
}
.mobile-menu .navigation li > a { min-height: 44px; }
.niop-mobile-contact { display: none; }
@media (max-width: 767px) {
    body.niop-reviewed-page { padding-bottom: calc(76px + env(safe-area-inset-bottom)); }
    .niop-mobile-contact {
        position: fixed;
        display: flex;
        gap: 8px;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 80;
        padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
        background: #fff;
        border-top: 1px solid #dbe2ee;
        box-shadow: 0 -3px 15px rgba(0,25,76,.09);
    }
    .niop-mobile-contact a {
        display: flex;
        flex: 1;
        justify-content: center;
        align-items: center;
        min-height: 46px;
        padding: 10px 8px;
        border-radius: 5px;
        font-size: 15px;
        line-height: 1.3;
        font-weight: 700;
        text-decoration: none;
    }
    .niop-call-link { background: #eef3ff; color: #00194c; }
    .niop-inquiry-link { background: #0055ff; color: #fff; }
    .niop-inquiry-link:hover, .niop-inquiry-link:focus { color: #fff; background: #0044cc; }
    .mobile-menu-visible .niop-mobile-contact { visibility: hidden; }
    .scroll-top { bottom: calc(88px + env(safe-area-inset-bottom)); }
}
/* Show reviewed service-page content immediately, independent of AOS load timing. */
body.niop-reviewed-page [data-aos] {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
}
@media (prefers-reduced-motion: reduce) {
    .mobile-menu, .menu-backdrop, .mobile-menu .close-btn { transition: none !important; }
    .niop-skip-link { transition: none; }
}
