/* Header Responsive Styles - v2.4 */

/* Override Bootstrap responsive containers for consistent alignment across all screen sizes */
/* Base: all screens */
#nav-top .container-xl,
.logo-banner .container,
.navbar.nav-main .container-xl {
    max-width: 1600px !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

@media (min-width: 1200px) {
    .container, .container-xl,
    #nav-top .container-xl,
    .logo-banner .container,
    .navbar.nav-main .container-xl {
        max-width: 1600px !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
}

@media (min-width: 1400px) {
    .container, .container-xl, .container-xxl,
    #nav-top .container-xl,
    .logo-banner .container,
    .navbar.nav-main .container-xl {
        max-width: 1600px !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
}

@media (min-width: 1600px) {
    .container, .container-xl, .container-xxl,
    #nav-top .container-xl,
    .logo-banner .container,
    .navbar.nav-main .container-xl {
        max-width: 1600px !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
}

.logo-banner {
    background: #fff;
    border-bottom: 1px solid #e0e0e0;
    padding: 32px 16px 0 16px; /* match inline styles */
}

.logo-banner .container {
    display: flex;
    align-items: center;
    justify-content: flex-start !important; /* always left */
    padding-left: 16px !important; /* consistent with other containers */
    padding-right: 16px !important;
    max-width: 1600px !important;
}

.logo-banner .col-sm-12 {
    width: auto; /* don't force full width so content can align left */
    display: flex;
    align-items: center;
}

.logo-banner .row {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    width: auto;
}

.logo-banner .left {
    display: flex;
    align-items: center;
    flex: 0 0 auto;
    justify-content: flex-start !important;
}

.logo-banner .left > div {
    display: flex;
    align-items: center;
    flex-direction: row !important; /* force horizontal */
    gap: 20px;
    width: auto !important;
    margin: 0 !important;
}

.logo-banner .logo {
    max-width: 200px;
    height: auto;
    display: block;
    margin-right: 28px;
}

.logo-banner .left div:last-child {
    display: flex;
    flex-direction: column;
    gap: 4px;
    flex: 0 1 auto;
    text-align: left;
    justify-content: center; /* vertically center next to logo */
}

.logo-banner .left div:last-child > div:first-child {
    font-size: 26px;
    font-weight: 700;
    color: #0A4E8A;
    line-height: 1.3;
    text-align: left;
}

.logo-banner .left div:last-child > div:last-child {
    font-size: 17px;
    font-weight: 500;
    color: #666;
    line-height: 1.3;
    text-align: left;
}

.logo-banner .right {
    display: flex;
    align-items: center;
    gap: 15px;
}

.logo-banner .pull-right {
    display: flex;
    justify-content: flex-end;
}

/* Header element */
#header {
    background: #fff;
    position: sticky;
    top: 0;
    z-index: 11000 !important;
}

/* Tablet: 768px - 991px */
@media (min-width: 768px) and (max-width: 991px) {
    .logo-banner .left > div {
        gap: 15px;
        flex-direction: row; /* keep horizontal on tablet */
        align-items: center;
    }
    .logo-banner .logo { max-width: 150px; }
    .logo-banner .left div:last-child > div:first-child { font-size: 24px; }
    .logo-banner .left div:last-child > div:last-child { font-size: 16px; }
}

/* Desktop: >= 992px - force horizontal alignment of logo + text */
@media (min-width: 992px) {
    .logo-banner .left > div {
        flex-direction: row;
        align-items: center;
        gap: 20px;
    }
    .logo-banner .logo {
        max-width: 200px; /* final desktop logo size */
        height: auto;
        display: block;
        margin-right: 28px; /* spacing to match logo size */
    }
    .logo-banner .left div:last-child {
        flex: 0 1 auto;
        align-self: center; /* vertically center with logo */
    }
    .logo-banner .left div:last-child > div:first-child { font-size: 26px; }
    .logo-banner .left div:last-child > div:last-child { font-size: 17px; }
}

/* Mobile: < 768px */
@media (max-width: 767px) {
    .logo-banner {
        padding: 12px 12px; /* mobile: symmetric horizontal gutter */
    }

    /* allow wrapping: logo + title can wrap to next line to avoid overflow */
    .logo-banner .left > div {
        gap: 10px;
        flex-direction: row;
        align-items: center;
        flex-wrap: wrap;
    }

    /* slightly smaller logo on mobile */
    .logo-banner .logo {
        max-width: 90px;
        margin-right: 12px;
    }

    .logo-banner .left div:last-child {
        gap: 2px;
        flex: 1 1 auto;
        min-width: 0; /* allow flex item to shrink and wrap text */
    }

    .logo-banner .left div:last-child > div:first-child {
        font-size: 20px;
        white-space: normal;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .logo-banner .left div:last-child > div:last-child {
        font-size: 14px;
    }

    /* hide right ad area on small screens to free space */
    .logo-banner .right {
        display: none;
    }
}

/* Extra Small: < 576px */
@media (max-width: 575px) {
    .logo-banner {
        padding: 10px 10px; /* XS: symmetric horizontal gutter */
    }

    /* stack vertically on very small screens for readability */
    .logo-banner .left > div {
        gap: 6px;
        flex-direction: column;
        align-items: flex-start;
        flex-wrap: nowrap;
    }

    .logo-banner .logo {
        max-width: 80px;
        margin-right: 0;
    }

    .logo-banner .left div:last-child {
        gap: 2px;
        width: 100%;
    }

    .logo-banner .left div:last-child > div:first-child {
        font-size: 16px;
    }

    .logo-banner .left div:last-child > div:last-child {
        font-size: 13px;
    }

    .logo-banner .right {
        display: none;
    }
}

/* ============================================================================
   Dark Mode Overrides - Neutralize dark theme to maintain light appearance
   ============================================================================ */

/* Header structure: keep light appearance in dark mode */
.dark-mode .logo-banner,
.dark-mode #header {
    background-color: #1a1a1a;
    color: #fff;
}

/* Top menu in dark mode - dark background with white text */
.dark-mode #nav-top {
    background-color: #2d2d2d !important;
}

.dark-mode #nav-top .container-xl {
    background-color: #2d2d2d !important;
}

.dark-mode #nav-top .nav-link,
.dark-mode #nav-top .top-menu li a,
.dark-mode .top-bar .top-menu li a,
.dark-mode .top-bar .lang-switch,
.dark-mode .top-bar .dropdown-toggle {
    color: #ffffff !important;
}

.dark-mode #nav-top .nav-link:hover,
.dark-mode #nav-top .top-menu li a:hover,
.dark-mode .top-bar .top-menu li a:hover {
    color: #4a9eff !important;
}

.dark-mode .top-bar .lang-switch:hover,
.dark-mode .top-bar .lang-switch.active {
    background-color: #4a9eff !important;
    color: #fff !important;
}

.dark-mode .top-bar .dropdown-toggle:hover,
.dark-mode .top-bar .dropdown.open .dropdown-toggle {
    background-color: #4a9eff !important;
    color: #fff !important;
}

/* SVG icons in dark mode */
.dark-mode #nav-top svg {
    fill: #ffffff;
    color: #ffffff;
}

.dark-mode .logo-banner .left .logo {
    filter: none;
    opacity: 1;
}

/* Keep site title and subtitle colors identical to light mode */
.dark-mode .logo-banner .left div:last-child > div:first-child {
    color: #0A4E8A;
}

.dark-mode .logo-banner .left div:last-child > div:last-child {
    color: #666;
}

/* Desktop: profile and language dropdowns use white background with dark text */
.dark-mode #nav-top .profile-dropdown .dropdown-menu,
.dark-mode .profile-dropdown .dropdown-menu,
.dark-mode #nav-top .dropdown-languages .dropdown-menu,
.dark-mode .dropdown-languages .dropdown-menu {
    background-color: #fff;
    border: 1px solid #e6e6e6;
    box-shadow: 0 6px 18px rgba(0,0,0,0.08);
    color: #333;
}

.dark-mode #nav-top .profile-dropdown .dropdown-menu a,
.dark-mode .profile-dropdown .dropdown-menu a,
.dark-mode #nav-top .dropdown-languages .dropdown-menu a,
.dark-mode .dropdown-languages .dropdown-menu a {
    color: #333;
    font-weight: 500;
}

.dark-mode #nav-top .profile-dropdown .dropdown-menu a:hover,
.dark-mode .profile-dropdown .dropdown-menu a:hover,
.dark-mode #nav-top .dropdown-languages .dropdown-menu a:hover,
.dark-mode .dropdown-languages .dropdown-menu a:hover {
    background-color: #f5f5f5;
    color: #111;
}

/* Mobile: profile and language dropdowns */
.dark-mode .nav-mobile .profile-dropdown-mobile .menu-sub-items,
.dark-mode .nav-mobile .profile-dropdown-mobile .dropdown-menu,
.dark-mode .nav-mobile .dropdown-languages .dropdown-menu,
.dark-mode .nav-mobile .dropdown-languages .menu-sub-items {
    background-color: #fff;
    color: #333;
}

.dark-mode .nav-mobile .profile-dropdown-mobile .menu-sub-items .dropdown-item,
.dark-mode .nav-mobile .profile-dropdown-mobile .dropdown-menu .dropdown-item,
.dark-mode .nav-mobile .dropdown-languages .dropdown-item {
    color: #333;
}

.dark-mode .nav-mobile .profile-dropdown-mobile .menu-sub-items .dropdown-item:hover,
.dark-mode .nav-mobile .profile-dropdown-mobile .dropdown-menu .dropdown-item:hover,
.dark-mode .nav-mobile .dropdown-languages .dropdown-item:hover {
    background-color: #f5f5f5;
    color: #111;
}

/* Keep navigation appearance consistent */
.dark-mode .navbar.nav-main,
.dark-mode .navbar-default.main-menu {
    background-color: #0A4E8A;
    color: #ffffff;
}

.dark-mode .nav-dropdown-menu,
.dark-mode .dropdown-menu,
.dark-mode .mega-menu {
    background-color: #003d7a;
    color: #ffffff;
}

/* Keep footer appearance consistent */
.dark-mode #footer,
.dark-mode .footer-bottom {
    background: #181e27;
    color: #fff;
}

/* RTL Mode */
.rtl-mode .logo-banner .row {
    flex-direction: row-reverse;
}

.rtl-mode .logo-banner .left > div {
    flex-direction: row-reverse;
}

.rtl-mode .logo-banner .pull-right {
    justify-content: flex-start;
}

/* Force left alignment overrides (ensure logo + title are left-aligned) */
.logo-banner, .logo-banner .container, .logo-banner .row, .logo-banner .left {
    justify-content: flex-start !important;
    text-align: left !important;
}
.logo-banner .container {
    margin-left: 0 !important;
    padding-left: 15px !important;
}
.logo-banner .col-sm-12 {
    width: 100% !important;
}
.logo-banner .left > div {
    width: auto !important;
}
@media (min-width: 992px) {
    /* larger left gutter on wide screens */
    .logo-banner .container { padding-left: 40px !important; }
}

/* Ensure title and subtitle are strictly left-aligned */
.logo-banner .left div:last-child > div {
    display: block !important;
    width: auto !important;
    text-align: left !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* ---------------------------------------------------------------------------
   Header small set of overrides
   - Force header/logo height to 60px for consistent header sizing
   - Hide the larger `.logo-banner` on small screens to avoid duplicate logos
     when the mobile nav shows its own logo
   - Keep mobile nav logo sizing conservative
   ------------------------------------------------------------------------ */
.logo-banner .logo {
    height: 60px;
    width: auto;
    max-width: none;
}

@media (max-width: 767px) {
    /* Hide the top banner on mobile to avoid duplicate logos (mobile nav shows logo) */
    .logo-banner {
        display: none;
    }
    /* Ensure mobile nav logo remains visible and reasonably sized */
    .mobile-logo .logo {
        max-width: 90px;
        height: auto;
        width: auto;
    }
}
