/* Consys mobile navigation and HospitalSys action repair. */

@media (max-width: 1120px) {
    .site-header {
        z-index: 2147483000 !important;
        overflow: visible !important;
        -webkit-backdrop-filter: none !important;
        backdrop-filter: none !important;
        transform: none !important;
        filter: none !important;
        contain: none !important;
    }

    .site-header .header-inner {
        position: relative;
        overflow: visible !important;
    }

    .site-header .nav-toggle {
        position: relative;
        z-index: 100002;
        display: block !important;
        flex: 0 0 46px;
        pointer-events: auto !important;
        touch-action: manipulation;
        cursor: pointer;
    }

    .site-header .nav-toggle > span:not(.screen-reader-text) {
        pointer-events: none;
    }

    .site-header .primary-nav {
        z-index: 100001;
        pointer-events: none;
        -webkit-overflow-scrolling: touch;
    }

    /*
     * The JavaScript moves the mobile panel directly under <body>. This avoids
     * the sticky header's small containing block on Safari and Chrome mobile.
     */
    body > .primary-nav.consys-mobile-nav {
        position: fixed !important;
        z-index: 2147482999 !important;
        top: var(--header-height, 88px) !important;
        right: 0 !important;
        bottom: 0 !important;
        left: 0 !important;
        display: block !important;
        visibility: hidden !important;
        width: 100vw !important;
        max-width: none !important;
        height: calc(100vh - var(--header-height, 88px)) !important;
        height: calc(100dvh - var(--header-height, 88px)) !important;
        margin: 0 !important;
        padding: 20px 20px 40px !important;
        background: #fff !important;
        box-shadow: 0 18px 40px rgba(2, 18, 45, .24) !important;
        opacity: 0 !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        overscroll-behavior: contain;
        pointer-events: none !important;
        transform: translateX(100%) !important;
        -webkit-overflow-scrolling: touch;
    }

    body > .primary-nav.consys-mobile-nav.is-open {
        visibility: visible !important;
        opacity: 1 !important;
        pointer-events: auto !important;
        transform: translateX(0) !important;
    }

    body > .primary-nav.consys-mobile-nav > ul {
        display: block !important;
        width: 100% !important;
        max-width: 760px;
        min-height: 100%;
        margin: 0 auto !important;
        padding: 0 !important;
    }

    body > .primary-nav.consys-mobile-nav li {
        position: relative;
        display: block !important;
        width: 100% !important;
    }

    body > .primary-nav.consys-mobile-nav a,
    body > .primary-nav.consys-mobile-nav .submenu-toggle {
        display: flex !important;
        width: 100% !important;
        min-height: 52px !important;
        padding: 12px 14px !important;
        white-space: normal !important;
    }

    body > .primary-nav.consys-mobile-nav .submenu {
        position: static !important;
        width: 100% !important;
        max-height: none !important;
        overflow: visible !important;
    }

    .site-header .primary-nav.is-open,
    .site-header .nav-toggle[aria-expanded="true"] + .primary-nav {
        visibility: visible !important;
        opacity: 1 !important;
        transform: translateX(0) !important;
        pointer-events: auto !important;
    }

    body.nav-open {
        overflow: hidden !important;
        touch-action: none;
    }

    body.nav-open .primary-nav {
        touch-action: pan-y;
    }
}

@media (max-width: 600px) {
    /* Keep the complete HospitalSys card in normal document flow. */
    .product-grid .consys-hospital-card,
    .product-grid .product-card-wide:has(a[href*="/hospital-management-system/"]) {
        display: block !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        overflow: visible !important;
    }

    .product-grid .consys-hospital-card > img,
    .product-grid .product-card-wide:has(a[href*="/hospital-management-system/"]) > img {
        display: block !important;
        width: 100% !important;
        height: auto !important;
        aspect-ratio: 16 / 9 !important;
        object-fit: cover !important;
    }

    .product-grid .consys-hospital-card .product-card-body,
    .product-grid .product-card-wide:has(a[href*="/hospital-management-system/"]) .product-card-body {
        display: flex !important;
        height: auto !important;
        min-height: 0 !important;
        overflow: visible !important;
        padding: 28px 22px 32px !important;
    }

    .product-grid .consys-hospital-card .product-actions,
    .product-grid .product-card-wide:has(a[href*="/hospital-management-system/"]) .product-actions {
        position: relative !important;
        z-index: 5;
        display: flex !important;
        visibility: visible !important;
        width: 100% !important;
        height: auto !important;
        max-height: none !important;
        margin-top: 22px !important;
        opacity: 1 !important;
        overflow: visible !important;
        transform: none !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 12px !important;
    }

    .product-grid .consys-hospital-card .product-actions .button,
    .product-grid .product-card-wide:has(a[href*="/hospital-management-system/"]) .product-actions .button {
        display: inline-flex !important;
        visibility: visible !important;
        width: 100% !important;
        min-height: 48px !important;
        margin: 0 !important;
        opacity: 1 !important;
        transform: none !important;
    }

    /* Buttons belong exclusively to the HospitalSys feature card. */
    .product-grid .consys-non-hospital-card .product-actions {
        display: none !important;
    }
}

/* Correct the menu position for administrators testing while logged in. */
@media (max-width: 782px) {
    body.admin-bar .site-header {
        top: 46px;
    }

    body.admin-bar .primary-nav,
    body.admin-bar > .primary-nav.consys-mobile-nav {
        top: calc(var(--header-height) + 46px) !important;
        height: calc(100vh - var(--header-height) - 46px) !important;
        height: calc(100dvh - var(--header-height) - 46px) !important;
    }
}
