﻿/* ============================================================
   GWM Dropdown Height Control
   File: assets/css/components/dropdown-height-control.css

   Purpose:
   - Keeps long dropdown menus inside the visible browser screen.
   - Allows visitors to scroll inside long dropdown panels.
   - Does not change menu hierarchy.
   - Designed for the depth-2 frontend menu:
     Home | About | Ministries | Education | Media | More
   ============================================================ */


   /* ============================================================
   GWM Dropdown Height Control - Desktop + Mobile
   File: assets/css/components/dropdown-height-control.css

   Purpose:
   - Desktop: long dropdowns stay inside visible screen and scroll.
   - Mobile: submenus display naturally as stacked menu items.
   - Does not alter WordPress menu hierarchy.
   - Works with:
     .gwm-simple-menu
     .gwm-dropdown-menu
   ============================================================ */


/* ------------------------------------------------------------
   Shared safety
   ------------------------------------------------------------ */

.gwm-primary-navigation,
.gwm-site-header,
.gwm-main-header {
    overflow: visible !important;
}

.gwm-simple-menu,
.gwm-simple-menu ul {
    list-style: none !important;
}


/* ------------------------------------------------------------
   Desktop dropdown behavior
   ------------------------------------------------------------ */

@media (min-width: 769px) {

    .gwm-simple-menu {
        display: flex !important;
        align-items: center !important;
        gap: 6px !important;
    }

    .gwm-simple-menu > li {
        position: relative !important;
    }

    .gwm-simple-menu > li > a {
        display: inline-flex !important;
        align-items: center !important;
        padding: 14px 12px !important;
        text-decoration: none !important;
        white-space: nowrap !important;
    }

    .gwm-simple-menu > li > .sub-menu {
        display: none !important;
        position: absolute !important;
        top: 100% !important;
        left: 0 !important;
        min-width: 250px !important;
        max-height: calc(100vh - 130px) !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        overscroll-behavior: contain !important;
        background: #ffffff !important;
        border: 1px solid rgba(15, 23, 42, 0.12) !important;
        box-shadow: 0 20px 45px rgba(15, 23, 42, 0.16) !important;
        border-radius: 14px !important;
        padding: 8px !important;
        margin: 0 !important;
        z-index: 999999 !important;
        scrollbar-width: thin;
    }

    .gwm-simple-menu > li:hover > .sub-menu,
    .gwm-simple-menu > li:focus-within > .sub-menu {
        display: block !important;
    }

    .gwm-simple-menu .sub-menu li {
        position: relative !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .gwm-simple-menu .sub-menu a {
        display: block !important;
        padding: 9px 13px !important;
        color: #111827 !important;
        background: transparent !important;
        text-decoration: none !important;
        white-space: nowrap !important;
        border-radius: 10px !important;
        font-size: 0.92rem !important;
        line-height: 1.25 !important;
    }

    .gwm-simple-menu .sub-menu a:hover,
    .gwm-simple-menu .sub-menu a:focus {
        background: #f3f4f6 !important;
        color: #000000 !important;
    }

    .gwm-simple-menu > li > .sub-menu::-webkit-scrollbar {
        width: 8px;
    }

    .gwm-simple-menu > li > .sub-menu::-webkit-scrollbar-track {
        background: #f1f5f9;
        border-radius: 999px;
    }

    .gwm-simple-menu > li > .sub-menu::-webkit-scrollbar-thumb {
        background: #cbd5e1;
        border-radius: 999px;
    }

    .gwm-simple-menu > li > .sub-menu::-webkit-scrollbar-thumb:hover {
        background: #94a3b8;
    }
}


/* ------------------------------------------------------------
   Mobile menu behavior
   ------------------------------------------------------------ */

@media (max-width: 768px) {

    .gwm-simple-menu {
        display: block !important;
        width: 100% !important;
        max-height: calc(100vh - 96px) !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        padding: 8px 0 !important;
        margin: 0 !important;
        overscroll-behavior: contain !important;
    }

    .gwm-simple-menu > li {
        position: relative !important;
        width: 100% !important;
        border-bottom: 1px solid rgba(15, 23, 42, 0.08) !important;
    }

    .gwm-simple-menu > li > a {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        width: 100% !important;
        padding: 14px 18px !important;
        color: #111827 !important;
        text-decoration: none !important;
        white-space: normal !important;
        line-height: 1.35 !important;
    }

    /*
       Mobile: keep submenus in normal document flow.
       This prevents hidden dropdown content below the screen.
    */
    .gwm-simple-menu .sub-menu {
        position: static !important;
        display: block !important;
        max-height: none !important;
        overflow: visible !important;
        width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 0 0 10px 0 !important;
        background: rgba(248, 250, 252, 0.95) !important;
        border: 0 !important;
        box-shadow: none !important;
        border-radius: 0 !important;
    }

    .gwm-simple-menu .sub-menu li {
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .gwm-simple-menu .sub-menu a {
        display: block !important;
        width: 100% !important;
        padding: 10px 18px 10px 34px !important;
        color: #334155 !important;
        background: transparent !important;
        text-decoration: none !important;
        white-space: normal !important;
        font-size: 0.95rem !important;
        line-height: 1.35 !important;
    }

    .gwm-simple-menu .sub-menu a:hover,
    .gwm-simple-menu .sub-menu a:focus {
        background: rgba(15, 23, 42, 0.06) !important;
        color: #000000 !important;
    }

    /*
       Hide third-level flyouts on mobile if any exist.
       They become normal stacked nested links.
    */
    .gwm-simple-menu .sub-menu .sub-menu {
        position: static !important;
        display: block !important;
        padding-left: 12px !important;
        background: rgba(241, 245, 249, 0.9) !important;
    }

    .gwm-simple-menu .sub-menu .sub-menu a {
        padding-left: 48px !important;
        font-size: 0.9rem !important;
    }
}


/* ------------------------------------------------------------
   Very small phones
   ------------------------------------------------------------ */

@media (max-width: 420px) {

    .gwm-simple-menu > li > a {
        padding: 13px 14px !important;
        font-size: 0.95rem !important;
    }

    .gwm-simple-menu .sub-menu a {
        padding-left: 28px !important;
        font-size: 0.9rem !important;
    }
}