/* =========================================================
   HEADER.CSS — UNIVERSITY OF GOMA (UNIGOM)
   Shared responsive header for all pages
   Supports English and French navigation
========================================================= */

/* =========================================================
   1. DESIGN TOKENS
========================================================= */
:root {
    --unigom-blue: #12345b;
    --unigom-blue-dark: #0b2745;
    --unigom-blue-deep: #071b31;
    --unigom-gold: #c9a227;
    --unigom-gold-light: #f1e4b5;
    --unigom-light: #f5f7fa;
    --unigom-white: #ffffff;
    --unigom-text: #243447;
    --unigom-muted: #657487;
    --unigom-border: #e2e7ed;
    --unigom-hover: #edf3f9;

    --font-main: "DM Sans", Arial, sans-serif;
    --font-heading: "Playfair Display", Georgia, serif;

    --utility-height: 78px;
    --header-height: 86px;

    --mobile-utility-height: 42px;
    --mobile-header-height: 64px;
}


/* =========================================================
   2. GLOBAL HEADER RESET
========================================================= */
.utility-bar,
.utility-bar *,
.site-header,
.site-header *,
.main-nav,
.main-nav * {
    box-sizing: border-box;
}

html,
body {
    max-width: 100%;
    overflow-x: clip;
}

body {
    margin: 0 !important;
    padding-top: 0 !important;
    font-family: var(--font-main);
}

.site-header a,
.utility-bar a {
    text-decoration: none;
}


/* =========================================================
   3. TOP UTILITY BAR
========================================================= */
.utility-bar {
    display: block !important;

    position: fixed !important;
    top: 0 !important;
    left: 0 !important;

    width: 100% !important;
    height: var(--utility-height) !important;

    z-index: 11000 !important;

    overflow: visible;

    color: var(--unigom-white) !important;

    background:
        linear-gradient(
            90deg,
            var(--unigom-blue-dark) 0%,
            var(--unigom-blue) 100%
        ) !important;

    border: 0 !important;
}

.utility-bar .container,
.site-header .container {
    width: 100% !important;
    max-width: none !important;

    margin: 0 !important;

    padding-left: 22px !important;
    padding-right: 22px !important;
}


/* =========================================================
   UTILITY INNER
========================================================= */
.utility-inner {
    display: grid;

    grid-template-columns:
        minmax(180px, 1fr)
        minmax(200px, 1.2fr)
        auto;

    align-items: center;

    gap: 14px;

    width: 100%;
    max-width: none;

    height: var(--utility-height);

    margin: 0;

    padding: 0 22px;

    box-sizing: border-box;
}

.utility-left,
.utility-center,
.utility-right {
    display: flex;
    align-items: center;

    min-width: 0;
}

.utility-left {
    justify-content: flex-start;
}

.utility-center {
    justify-content: center;

    gap: 16px;

    margin: 0 auto;

    color: #fff;

    font-size: 14px;

    white-space: nowrap;
}

.utility-right {
    justify-content: flex-end;

    gap: 10px;
}


/* =========================================================
   UTILITY TEXT
========================================================= */
.contact-text {
    color: #fff;

    font-size: clamp(17px, 1.6vw, 27px);

    font-weight: 400;

    letter-spacing: 0.1px;

    line-height: 1.2;

    white-space: nowrap;
}

.utility-email {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    color: #fff;

    font-size: 14px;

    font-weight: 500;

    white-space: nowrap;

    opacity: 0.96;
}

.unigom-utility-contact {
    display: inline-flex;

    align-items: center;

    gap: 8px;

    color: #fff;

    font-size: 13px;

    white-space: nowrap;
}


/* =========================================================
   LANGUAGES
========================================================= */
.unigom-languages {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    gap: 13px;

    font-size: 12px;

    font-weight: 700;

    letter-spacing: 0.2px;

    white-space: nowrap;
    text-decoration:none;
}

.unigom-languages a {
    color: #fff;

    opacity: 0.86;

    text-decoration: none;

    transition:
        opacity 0.2s ease,
        color 0.2s ease;
}

.unigom-languages a:hover {
    color: var(--unigom-gold-light);

    opacity: 1;
}

.unigom-languages a[aria-current="page"] {
    color: var(--unigom-gold-light);

    opacity: 1;

    text-decoration:none;

    text-decoration-thickness: 2px;

    text-underline-offset: 4px;
}


/* =========================================================
   SOCIAL ICONS
========================================================= */
.util-social {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    width: 22px;
    height: 22px;

    color: #fff;

    opacity: 0.9;

    transition:
        color 0.2s ease,
        opacity 0.2s ease;
}

.util-social:hover {
    color: var(--unigom-gold-light);

    opacity: 1;
}

.util-social svg {
    width: 18px;
    height: 18px;
}


/* =========================================================
   UTILITY LINKS
========================================================= */
.util-link {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    min-height: 30px;

    padding: 0 12px;

    color: var(--unigom-blue-dark);

    background: #e8eef6;

    border-radius: 999px;

    font-family: var(--font-main);

    font-size: 11px;

    font-weight: 700;

    line-height: 1;

    white-space: nowrap;

    transition:
        background 0.2s ease,
        color 0.2s ease;
}

.util-link:hover {
    color: #fff;

    background: var(--unigom-blue);
}

.utility-right .util-link:last-child {
    color: #fff;

    background: var(--unigom-gold);
}

.utility-right .util-link:last-child:hover {
    background: #ad841b;
}

.util-sep {
    display: inline-block;

    width: 1px;
    height: 18px;

    background: rgba(255,255,255,0.3);
}


/* =========================================================
   4. RADIO PLAYER
========================================================= */
.unigom-radio {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    gap: 9px;

    min-width: 205px;
    min-height: 48px;

    padding: 7px 14px;

    color: var(--unigom-blue-dark);

    background: rgba(255,255,255,0.97);

    border: 1px solid rgba(255,255,255,0.55);

    border-radius: 999px;

    box-shadow: 0 6px 18px rgba(0,0,0,0.14);

    cursor: pointer;

    font: inherit;

    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease;
}

.unigom-radio:hover {
    transform: translateY(-1px);

    box-shadow: 0 9px 22px rgba(0,0,0,0.18);
}

.unigom-radio .radio-icon,
.unigom-radio .radio-end-icon {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    width: 27px;
    height: 27px;

    flex: 0 0 27px;

    color: var(--unigom-blue);
}

.unigom-radio .radio-icon svg,
.unigom-radio .radio-end-icon svg {
    display: block;

    width: 21px;
    height: 21px;
}

.unigom-radio .radio-label {
    color: var(--unigom-blue-dark);

    font-size: 14px;

    font-weight: 700;

    line-height: 1.1;

    white-space: nowrap;
}

.unigom-radio.is-playing .radio-icon,
.unigom-radio.is-playing .radio-end-icon {
    color: #16845e;
}

.radio-live-dot {
    display: inline-block;

    width: 8px;
    height: 8px;

    flex: 0 0 8px;

    border-radius: 50%;

    background: #aab2bc;

    transition: background 0.3s ease;
}

.unigom-radio.is-playing .radio-live-dot {
    background: #16845e;

    animation: radio-pulse 1.2s ease-in-out infinite;
}

@keyframes radio-pulse {

    0%,
    100% {
        opacity: 1;
        transform: scale(1);
    }

    50% {
        opacity: 0.4;
        transform: scale(1.4);
    }
}


/* =========================================================
   5. MAIN SITE HEADER
========================================================= */
/* =========================================================
   UNIGOM — CONSISTENT HEADER
   Keep identical position and dimensions on every page
========================================================= */

.site-header {
    position: sticky !important;
    top: var(--utility-height) !important;
    left: 0 !important;
    z-index: 9999 !important;

    width: 100% !important;
    height: var(--header-height) !important;
    min-height: var(--header-height) !important;

    margin: 0 !important;
    padding: 0 !important;

    background: #ffffff !important;
    border-bottom: 1px solid var(--unigom-border) !important;

    box-shadow: 0 3px 14px rgba(7, 27, 49, 0.07) !important;

    box-sizing: border-box !important;
}


/* =========================================================
   NAV INNER
========================================================= */

.site-header .nav-inner,
.site-header .nav-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;

    width: 100%;
    max-width: 100%;

    height: var(--header-height);
    min-height: var(--header-height);

    margin: 0;
    padding: 0 18px;

    gap: 10px;

    box-sizing: border-box;
}


/* =========================================================
   BRAND / LOGO
========================================================= */

.site-header .brand {
    display: flex;
    align-items: center;
    justify-content: flex-start;

    min-width: 0;
    flex: 0 1 205px;

    margin: 0;

    position: relative;
    z-index: 10001;
}

.site-header .brand-logo {
    display: block;

    width: auto;
    height: 60px;
    max-width: 205px;

    object-fit: contain;
}


/* =========================================================
   MAIN MENU
   Dark blue, but NOT bold
========================================================= */

.site-header .nav-menu,
.site-header .nav-links,
.site-header nav ul {
    font-family: "DM Sans", "Open Sans", Arial, sans-serif;
}


/* Main menu links */

.site-header .nav-link,
.site-header .nav-menu > li > a,
.site-header nav > ul > li > a {
    color: #12345b !important;

    font-family: "DM Sans", "Open Sans", Arial, sans-serif !important;

    font-size: 14px !important;
    font-weight: 500 !important;

    line-height: 1.2 !important;
    letter-spacing: 0 !important;

    text-decoration: none !important;

    transition:
        color 0.2s ease,
        background-color 0.2s ease;
}


/* Hover / active */

.site-header .nav-link:hover,
.site-header .nav-menu > li > a:hover,
.site-header nav > ul > li > a:hover {
    color: #c9a227 !important;
}


/* Active menu */

.site-header .nav-link.active,
.site-header .nav-menu > li.active > a,
.site-header nav > ul > li.active > a {
    color: #12345b !important;
    font-weight: 500 !important;
}


/* =========================================================
   DROPDOWN TOGGLE
========================================================= */

.site-header .drop-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 5px;

    color: #12345b !important;

    font-weight: 500 !important;
}

.site-header .drop-toggle span:first-child {
    font-weight: 500 !important;
}

.site-header .caret {
    color: #12345b !important;

    font-size: 11px !important;
    font-weight: 400 !important;

    line-height: 1;
}


/* =========================================================
   DROPDOWN MENU
   Same position/alignment across all pages
========================================================= */

.site-header .nav-dropdown {
    position: relative;
}

.site-header .nav-submenu {
    position: absolute;

    top: calc(100% + 8px);
    left: 50%;

    transform: translateX(-50%);

    width: 215px;
    min-width: 215px;
    max-width: 215px;

    margin: 0;
    padding: 7px 0;

    background: #ffffff;

    border: 1px solid #dce3ea;
    border-top: 3px solid #c9a227;

    border-radius: 0 0 5px 5px;

    box-shadow:
        0 10px 25px rgba(7, 27, 49, 0.12);

    box-sizing: border-box;

    z-index: 10010;
}


/* Dropdown links */

.site-header .nav-submenu li {
    width: 100%;
    margin: 0;
    padding: 0;
}

.site-header .nav-submenu li a {
    display: flex;
    align-items: center;

    width: 100%;

    padding: 9px 15px;

    color: #12345b !important;

    font-family: "DM Sans", "Open Sans", Arial, sans-serif !important;

    font-size: 13px !important;
    font-weight: 400 !important;

    line-height: 1.35 !important;

    text-decoration: none !important;

    box-sizing: border-box;

    transition:
        background-color 0.2s ease,
        color 0.2s ease,
        padding-left 0.2s ease;
}

.site-header .nav-submenu li a:hover {
    color: #12345b !important;
    background: #f5f7fa !important;
    padding-left: 19px;
}


/* =========================================================
   MENU BUTTON
========================================================= */

.site-header .menu-btn {
    display: none;

    align-items: center;
    justify-content: center;

    flex-direction: column;

    gap: 5px;

    width: 44px;
    height: 44px;
    min-width: 44px;

    padding: 8px;
    margin: 0;

    color: #12345b;

    background: #ffffff;

    border: 1px solid var(--unigom-border);

    border-radius: 5px;

    cursor: pointer;

    position: relative;
    z-index: 10005;

    flex: 0 0 44px;

    box-sizing: border-box;

    appearance: none;
    -webkit-appearance: none;
}

.site-header .menu-btn span {
    display: block;

    width: 24px;
    height: 2px;

    background: #12345b;

    border-radius: 3px;

    transform-origin: center;

    transition:
        transform 0.25s ease,
        opacity 0.2s ease;
}

.site-header .menu-btn.active span:nth-child(1) {
    transform:
        translateY(7px)
        rotate(45deg);
}

.site-header .menu-btn.active span:nth-child(2) {
    opacity: 0;
}

.site-header .menu-btn.active span:nth-child(3) {
    transform:
        translateY(-7px)
        rotate(-45deg);
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 1100px) {

    .site-header .nav-inner {
        padding: 0 15px;
    }

    .site-header .brand {
        flex: 0 1 180px;
    }

    .site-header .brand-logo {
        max-width: 180px;
        height: 56px;
    }

    .site-header .nav-link,
    .site-header .nav-menu > li > a,
    .site-header nav > ul > li > a {
        font-size: 13px !important;
    }
}

@media (max-width: 1199px) {
    .site-header .brand {
        position: relative !important;
        z-index: 1 !important;
    }

    .site-header .menu-btn {
        display: flex !important;
    }
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 900px) {

    .site-header {
        top: 0 !important;
        height: 64px !important;
        min-height: 64px !important;
    }

    .site-header .nav-inner {
        height: 64px;
        min-height: 64px;

        padding: 0 14px;
    }

    .site-header .brand {
        flex: 0 1 auto;
    }

    .site-header .brand-logo {
        height: 52px;
        max-width: 175px;
    }

    .site-header .menu-btn {
        display: flex;
    }

}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media (max-width: 480px) {

    .site-header .nav-inner {
        padding: 0 12px;
    }

    .site-header .brand-logo {
        height: 48px;
        max-width: 160px;
    }

    .site-header .menu-btn {
        width: 42px;
        height: 42px;
        min-width: 42px;
        flex-basis: 42px;
    }
}


/* =========================================================
   8. DESKTOP NAVIGATION
========================================================= */
@media (min-width: 1200px) {

    .menu-btn {
        display: none !important;
    }

    /* -----------------------------------------------------
       NAV INNER
    ----------------------------------------------------- */
    .site-header .nav-inner {
        padding: 0 18px;

        gap: 12px;
    }

    /* -----------------------------------------------------
       BRAND
    ----------------------------------------------------- */
    .brand {
        flex: 0 0 190px;

        width: 190px;

        max-width: 190px;

        margin-right: 8px;
    }

    .brand-logo {
        height: 58px;

        max-width: 190px;
    }

    /* -----------------------------------------------------
       MAIN NAVIGATION
    ----------------------------------------------------- */
    .main-nav {
        display: flex !important;

        align-items: center;

        justify-content: flex-end;

        gap: 3px;

        height: var(--header-height);

        flex: 1 1 auto;

        min-width: 0;

        margin: 0 0 0 auto;

        padding: 0;

        position: static !important;

        width: auto !important;

        max-height: none !important;

        overflow: visible;

        flex-direction: row !important;

        background: transparent !important;

        border: 0 !important;

        box-shadow: none !important;

        opacity: 1 !important;

        visibility: visible !important;

        pointer-events: auto !important;

        transform: none !important;
    }

    /* -----------------------------------------------------
       TOP LEVEL MENU LINKS
    ----------------------------------------------------- */
    .main-nav > .nav-link,
    .main-nav > .nav-dropdown > .nav-link {
        display: flex;

        align-items: center;

        justify-content: center;

        min-width: 0;

        height: var(--header-height);

        padding: 0 9px;

        color: var(--unigom-blue-dark);

        background: transparent;

        border: 0;

        position: relative;

        flex: 0 1 auto;

        flex-shrink: 1;

        font-family: var(--font-main);

        /*
         * Increased from the previous very small size.
         */
        font-size: 14.5px;

        font-weight: 700;

        line-height: 1.2;

        letter-spacing: 0.05px;

        white-space: nowrap;

        transition:
            color 0.2s ease,
            background 0.2s ease;
    }

    /* -----------------------------------------------------
       GOLD ACTIVE LINE
    ----------------------------------------------------- */
    .main-nav > .nav-link::after,
    .main-nav > .nav-dropdown > .nav-link::after {
        content: "";

        position: absolute;

        left: 9px;

        right: 9px;

        bottom: 9px;

        height: 2px;

        background: var(--unigom-gold);

        transform: scaleX(0);

        transform-origin: center;

        transition: transform 0.22s ease;
    }

    .main-nav > .nav-link:hover,
    .main-nav > .nav-dropdown > .nav-link:hover {
        color: var(--unigom-blue);

        background: rgba(18,52,91,0.035);
    }

    .main-nav > .nav-link:hover::after,
    .main-nav > .nav-dropdown > .nav-link:hover::after {
        transform: scaleX(1);
    }

    /* -----------------------------------------------------
       CARET
    ----------------------------------------------------- */
    .caret {
        display: inline-flex;

        align-items: center;

        justify-content: center;

        margin-left: 5px;

        color: currentColor;

        font-size: 11px;

        line-height: 1;

        flex: 0 0 auto;

        transform: translateY(-1px);
    }

    /* -----------------------------------------------------
       DROPDOWN WRAPPER
    ----------------------------------------------------- */
    .nav-dropdown {
        position: relative;

        flex: 0 1 auto;

        min-width: 0;
    }

    /* -----------------------------------------------------
       MAIN DROPDOWN
    ----------------------------------------------------- */
    .nav-submenu {
        display: block;

        position: absolute !important;

        top: calc(100% - 1px) !important;

        left: 0 !important;

        z-index: 1200 !important;

        /*
         * Reduced width so dropdowns remain compact.
         */
        min-width: 205px !important;

        max-width: 260px !important;

        width: max-content !important;

        max-height: none !important;

        margin: 0 !important;

        padding: 4px 0 !important;

        overflow: visible !important;

        background: #fff !important;

        border: 1px solid var(--unigom-border) !important;

        border-top: 3px solid var(--unigom-gold) !important;

        border-radius: 0 0 6px 6px;

        box-shadow:
            0 8px 24px rgba(7,27,49,0.13),
            0 2px 6px rgba(7,27,49,0.05) !important;

        opacity: 0 !important;

        visibility: hidden !important;

        pointer-events: none !important;

        transform: translateY(6px) !important;

        transition:
            opacity 0.18s ease,
            transform 0.18s ease,
            visibility 0.18s ease !important;
    }

    .nav-dropdown:hover > .nav-submenu,
    .nav-dropdown.active > .nav-submenu {
        opacity: 1 !important;

        visibility: visible !important;

        pointer-events: auto !important;

        transform: translateY(0) !important;
    }

    /* -----------------------------------------------------
       DROPDOWN LIST
    ----------------------------------------------------- */
    .nav-submenu li {
        display: block;

        width: 100%;

        margin: 0;

        padding: 0;

        position: relative;

        list-style: none;
    }

    .nav-submenu li a {
        display: flex !important;

        align-items: center !important;

        justify-content: space-between !important;

        width: 100%;

        min-height: 38px;

        margin: 0;

        padding: 9px 13px !important;

        color: var(--unigom-text) !important;

        background: transparent !important;

        border: 0 !important;

        border-bottom: 1px solid #edf0f4 !important;

        font-family: var(--font-main);

        font-size: 13px !important;

        font-weight: 600;

        line-height: 1.35;

        text-align: left;

        white-space: normal;

        overflow-wrap: break-word;

        gap: 7px;

        transition:
            color 0.15s ease,
            background 0.15s ease,
            padding-left 0.15s ease;
    }

    .nav-submenu li:last-child > a {
        border-bottom: 0 !important;
    }

    .nav-submenu li a:hover {
        color: var(--unigom-blue) !important;

        background: var(--unigom-hover) !important;

        padding-left: 16px !important;
    }

    /* -----------------------------------------------------
       SMALL BOX INDICATOR
    ----------------------------------------------------- */
    .nav-submenu li a.menu-with-box::after {
        content: "";

        display: inline-block;

        width: 12px;

        height: 12px;

        flex: 0 0 12px;

        margin-left: 7px;

        border: 1px solid rgba(18,52,91,0.55);

        background: transparent;

        border-radius: 2px;
    }

    /* -----------------------------------------------------
       NESTED DROPDOWN
    ----------------------------------------------------- */
    .has-nested-menu {
        position: relative;
    }

    .has-nested-menu > .nested-submenu {
        display: block;

        position: absolute !important;

        top: -3px !important;

        left: calc(100% + 1px) !important;

        z-index: 1300 !important;

        min-width: 195px !important;

        max-width: 250px !important;

        width: max-content !important;

        max-height: none !important;

        margin: 0 !important;

        padding: 4px 0 !important;

        overflow: visible !important;

        background: #fff !important;

        border: 1px solid var(--unigom-border) !important;

        border-top: 3px solid var(--unigom-gold) !important;

        border-radius: 0 0 6px 6px;

        box-shadow:
            0 8px 24px rgba(7,27,49,0.13),
            0 2px 6px rgba(7,27,49,0.05) !important;

        opacity: 0 !important;

        visibility: hidden !important;

        pointer-events: none !important;

        transform: translateX(6px) !important;

        transition:
            opacity 0.18s ease,
            transform 0.18s ease,
            visibility 0.18s ease !important;
    }

    .has-nested-menu:hover > .nested-submenu,
    .has-nested-menu.active > .nested-submenu {
        opacity: 1 !important;

        visibility: visible !important;

        pointer-events: auto !important;

        transform: translateX(0) !important;
    }

    /* -----------------------------------------------------
       NESTED LINKS
    ----------------------------------------------------- */
    .nested-submenu li a {
        min-height: 37px;

        padding: 9px 13px !important;

        font-size: 12.5px !important;

        font-weight: 600;

        line-height: 1.35;
    }

    .nested-submenu li a:hover {
        padding-left: 16px !important;
    }

    /* -----------------------------------------------------
       NESTED ARROW
    ----------------------------------------------------- */
    .submenu-arrow {
        display: inline-flex;

        align-items: center;

        justify-content: center;

        margin-left: 7px;

        color: var(--unigom-muted);

        font-size: 15px;

        line-height: 1;

        flex: 0 0 auto;
    }

    /* -----------------------------------------------------
       APPLY BUTTON
    ----------------------------------------------------- */
    .nav-apply-btn {
        display: inline-flex;

        align-items: center;

        justify-content: center;

        min-width: 88px;

        height: 42px;

        margin-left: 7px;

        padding: 0 13px;

        flex: 0 0 auto;

        color: #fff !important;

        background: var(--unigom-gold);

        border: 0;

        border-radius: 5px;

        font-family: var(--font-main);

        font-size: 12.5px;

        font-weight: 800;

        line-height: 1;

        white-space: nowrap;

        transition:
            background 0.2s ease,
            transform 0.2s ease,
            box-shadow 0.2s ease;
    }

    .nav-apply-btn:hover {
        color: #fff !important;

        background: #ad841b;

        transform: translateY(-1px);

        box-shadow:
            0 4px 10px rgba(173,132,27,0.22);
    }
}


/* =========================================================
   9. COMPACT DESKTOP
   1200px — 1399px
========================================================= */
@media (min-width: 1200px) and (max-width: 1399px) {

    .site-header .nav-inner {
        padding-left: 12px;

        padding-right: 12px;

        gap: 6px;
    }

    /* -----------------------------------------------------
       COMPACT LOGO
    ----------------------------------------------------- */
    .brand {
        flex: 0 0 165px;

        width: 165px;

        max-width: 165px;

        margin-right: 4px;
    }

    .brand-logo {
        max-width: 165px;

        height: 54px;
    }

    /* -----------------------------------------------------
       COMPACT NAV
    ----------------------------------------------------- */
    .main-nav {
        gap: 1px;
    }

    /*
     * Previously this was 11px.
     * Increased so menu remains readable.
     */
    .main-nav > .nav-link,
    .main-nav > .nav-dropdown > .nav-link {
        padding-left: 6px;

        padding-right: 6px;

        font-size: 13.5px;

        font-weight: 700;
    }

    .main-nav > .nav-link::after,
    .main-nav > .nav-dropdown > .nav-link::after {
        left: 6px;

        right: 6px;

        bottom: 9px;
    }

    .caret {
        margin-left: 3px;

        font-size: 10px;
    }

    /* -----------------------------------------------------
       COMPACT DROPDOWN
    ----------------------------------------------------- */
    .nav-submenu {
        min-width: 195px !important;

        max-width: 245px !important;
    }

    .nav-submenu li a {
        padding: 8px 12px !important;

        font-size: 12.5px !important;
    }

    /* -----------------------------------------------------
       COMPACT NESTED DROPDOWN
    ----------------------------------------------------- */
    .has-nested-menu > .nested-submenu {
        min-width: 190px !important;

        max-width: 235px !important;
    }

    .nested-submenu li a {
        padding: 8px 12px !important;

        font-size: 12px !important;
    }

    /* -----------------------------------------------------
       COMPACT APPLY BUTTON
    ----------------------------------------------------- */
    .nav-apply-btn {
        min-width: 82px;

        height: 40px;

        margin-left: 4px;

        padding: 0 10px;

        font-size: 11.5px;
    }
}


/* =========================================================
   9B. WIDE DESKTOP
   1400px+
========================================================= */
@media (min-width: 1400px) {

    .main-nav > .nav-link,
    .main-nav > .nav-dropdown > .nav-link {
        font-size: 15px;

        padding-left: 10px;

        padding-right: 10px;
    }

    .nav-submenu {
        min-width: 210px !important;

        max-width: 260px !important;
    }

    .has-nested-menu > .nested-submenu {
        min-width: 200px !important;

        max-width: 250px !important;
    }
}


/* =========================================================
   10. TABLET AND MOBILE HEADER
========================================================= */
@media (max-width: 1199px) {

    /* -----------------------------------------------------
       MOBILE UTILITY BAR
    ----------------------------------------------------- */
    .utility-bar {
        position: fixed !important;

        top: 0 !important;

        left: 0 !important;

        width: 100% !important;

        height: var(--mobile-utility-height) !important;

        z-index: 11000 !important;

        overflow: hidden !important;

        background: var(--unigom-blue-dark) !important;

        border-bottom:
            1px solid rgba(255,255,255,0.12) !important;
    }

    .utility-inner {
        display: flex !important;

        align-items: center !important;

        justify-content: space-between !important;

        width: 100% !important;

        height: var(--mobile-utility-height) !important;

        padding: 0 12px !important;

        gap: 8px !important;
    }

    .utility-left {
        display: flex !important;

        align-items: center !important;

        justify-content: flex-start !important;

        gap: 10px !important;

        min-width: 0 !important;

        flex: 1 1 auto !important;
    }

    .utility-center {
        display: none !important;
    }

    .utility-right {
        display: flex !important;

        align-items: center !important;

        justify-content: flex-end !important;

        gap: 6px !important;

        min-width: 0 !important;

        flex: 0 0 auto !important;
    }

    .contact-text {
        max-width: 100%;

        color: #fff;

        font-size: 14px;

        white-space: nowrap;
    }

    .unigom-utility-contact {
        display: none !important;
    }

    .util-social {
        width: 19px !important;

        height: 19px !important;

        color: #fff !important;
    }

    .util-social svg {
        width: 16px;

        height: 16px;
    }

    .unigom-languages {
        display: inline-flex !important;

        gap: 8px !important;

        font-size: 11px !important;
    }

    .unigom-languages a {
        color: #fff !important;
    }

    .unigom-languages a[aria-current="page"] {
        color: var(--unigom-gold-light) !important;
    }

    .util-link {
        display: inline-flex !important;

        align-items: center !important;

        justify-content: center !important;

        height: 25px !important;

        min-height: 25px !important;

        padding: 0 9px !important;

        color: var(--unigom-blue-dark) !important;

        background: #e8eef6 !important;

        border-radius: 999px !important;

        font-size: 10px !important;

        font-weight: 700 !important;

        white-space: nowrap !important;
    }

    .utility-right .util-link:last-child {
        color: #fff !important;

        background: var(--unigom-gold) !important;
    }

    .util-sep {
        display: none !important;
    }

    /* -----------------------------------------------------
       BODY OFFSET
    ----------------------------------------------------- */
    body {
        padding-top: 106px !important;
    }

    /* -----------------------------------------------------
       MOBILE SITE HEADER
    ----------------------------------------------------- */
    .site-header {
        position: sticky !important;

        top: var(--mobile-utility-height) !important;

        height: var(--mobile-header-height) !important;

        min-height: var(--mobile-header-height) !important;

        background: #fff !important;
    }

    .site-header .nav-inner,
    .nav-inner {
        display: flex !important;

        align-items: center !important;

        justify-content: space-between !important;

        width: 100% !important;

        height: var(--mobile-header-height) !important;

        min-height: var(--mobile-header-height) !important;

        padding: 0 15px !important;

        gap: 10px !important;
    }

    /* -----------------------------------------------------
       MOBILE BRAND
    ----------------------------------------------------- */
    .brand {
        display: flex !important;

        align-items: center !important;

        justify-content: flex-start !important;

        min-width: 0 !important;

        margin: 0 !important;

        flex: 0 1 auto !important;

        z-index: 1 !important;

        position: relative !important;
    }

    .brand-logo {
        width: auto !important;

        height: 47px !important;

        max-width: 150px !important;

        object-fit: contain !important;
    }

    /* -----------------------------------------------------
       MOBILE MENU BUTTON
    ----------------------------------------------------- */
    .menu-btn {
        display: flex !important;

        align-items: center !important;

        justify-content: center !important;

        flex-direction: column !important;

        gap: 5px !important;

        width: 44px !important;

        height: 44px !important;

        min-width: 44px !important;

        padding: 8px !important;

        margin: 0 !important;

        color: var(--unigom-blue) !important;

        background: #fff !important;

        border: 1px solid var(--unigom-border) !important;

        border-radius: 5px !important;

        cursor: pointer !important;

        position: relative !important;

        z-index: 10005 !important;

        flex: 0 0 44px !important;

        box-sizing: border-box !important;

        appearance: none !important;

        -webkit-appearance: none !important;
    }

    .menu-btn span {
        display: block !important;

        width: 24px !important;

        height: 2.5px !important;

        background: var(--unigom-blue) !important;

        border-radius: 3px !important;

        transform-origin: center !important;

        transition:
            transform 0.25s ease,
            opacity 0.2s ease !important;
    }

    .menu-btn.active span:nth-child(1) {
        transform:
            translateY(7.5px)
            rotate(45deg) !important;
    }

    .menu-btn.active span:nth-child(2) {
        opacity: 0 !important;
    }

    .menu-btn.active span:nth-child(3) {
        transform:
            translateY(-7.5px)
            rotate(-45deg) !important;
    }

    /* -----------------------------------------------------
       MOBILE NAVIGATION PANEL
    ----------------------------------------------------- */
    .main-nav {
        display: flex !important;

        flex-direction: column !important;

        align-items: stretch !important;

        justify-content: flex-start !important;

        gap: 0 !important;

        position: fixed !important;

        top: 106px !important;

        right: 0 !important;

        left: auto !important;

        width: min(420px, 100%) !important;

        height: auto !important;

        min-height: 0 !important;

        max-height:
            calc(100dvh - 106px) !important;

        margin: 0 !important;

        padding: 6px 0 14px !important;

        overflow-x: hidden !important;

        overflow-y: auto !important;

        background: #fff !important;

        border-left:
            1px solid var(--unigom-border) !important;

        box-shadow:
            -8px 0 28px rgba(7,27,49,0.15) !important;

        z-index: 10002 !important;

        transform: translateX(100%) !important;

        visibility: hidden !important;

        opacity: 0 !important;

        pointer-events: none !important;

        transition:
            transform 0.28s ease,
            opacity 0.22s ease,
            visibility 0.28s ease !important;
    }

    #mainNav.active,
    #mainNav.open {
        transform: translateX(0) !important;

        visibility: visible !important;

        opacity: 1 !important;

        pointer-events: auto !important;
    }

    /* -----------------------------------------------------
       MOBILE TOP LEVEL LINKS
    ----------------------------------------------------- */
    .main-nav > .nav-link,
    .main-nav > .nav-dropdown > .nav-link {
        display: flex !important;

        align-items: center !important;

        justify-content: space-between !important;

        width: 100% !important;

        min-width: 0 !important;

        height: auto !important;

        min-height: 46px !important;

        margin: 0 !important;

        padding: 11px 16px !important;

        color: var(--unigom-blue-dark) !important;

        background: #fff !important;

        border: 0 !important;

        border-bottom:
            1px solid #edf0f4 !important;

        font-family: var(--font-main) !important;

        /*
         * Slightly increased mobile menu size.
         */
        font-size: 14px !important;

        font-weight: 700 !important;

        line-height: 1.4 !important;

        text-decoration: none !important;

        white-space: normal !important;

        overflow-wrap: anywhere;

        flex-shrink: 0 !important;
    }

    .main-nav > .nav-link::after,
    .main-nav > .nav-dropdown > .nav-link::after {
        display: none !important;
    }

    .main-nav > .nav-link:hover,
    .main-nav > .nav-dropdown > .nav-link:hover {
        color: var(--unigom-blue) !important;

        background: var(--unigom-hover) !important;
    }

    /* -----------------------------------------------------
       MOBILE DROPDOWN
    ----------------------------------------------------- */
    .nav-dropdown {
        display: block !important;

        width: 100% !important;

        min-width: 0 !important;

        margin: 0 !important;

        padding: 0 !important;

        position: relative !important;

        flex: 0 0 auto !important;
    }

    .main-nav > .nav-dropdown > .nav-link .caret {
        display: inline-flex !important;

        align-items: center !important;

        justify-content: center !important;

        width: 32px !important;

        height: 32px !important;

        min-width: 32px !important;

        margin-left: 10px !important;

        color: var(--unigom-blue) !important;

        background: #f0f4f9 !important;

        border:
            1px solid #dce5ef !important;

        border-radius: 50% !important;

        font-size: 17px !important;

        line-height: 1 !important;

        flex: 0 0 32px !important;

        box-sizing: border-box !important;

        transition:
            background 0.2s ease,
            color 0.2s ease,
            transform 0.25s ease !important;
    }

    .nav-dropdown.active > .nav-link .caret {
        color: #fff !important;

        background: var(--unigom-blue) !important;

        border-color: var(--unigom-blue) !important;

        transform: rotate(180deg) !important;
    }

    /* -----------------------------------------------------
       MOBILE MAIN DROPDOWN
    ----------------------------------------------------- */
    .main-nav > .nav-dropdown > .nav-submenu {
        display: block !important;

        position: static !important;

        width: 100% !important;

        min-width: 0 !important;

        max-width: none !important;

        max-height: 0 !important;

        margin: 0 !important;

        padding: 0 !important;

        overflow: hidden !important;

        background: var(--unigom-light) !important;

        border: 0 !important;

        border-radius: 0 !important;

        box-shadow: none !important;

        opacity: 1 !important;

        visibility: visible !important;

        transform: none !important;

        pointer-events: auto !important;

        transition:
            max-height 0.28s ease !important;
    }

    .main-nav > .nav-dropdown.active > .nav-submenu {
        max-height: 1200px !important;
    }

    /* -----------------------------------------------------
       MOBILE SUBMENU ITEMS
    ----------------------------------------------------- */
    .nav-submenu > li {
        display: block !important;

        width: 100% !important;

        margin: 0 !important;

        padding: 0 !important;

        list-style: none !important;
    }

    .nav-submenu > li > a {
        display: flex !important;

        align-items: center !important;

        justify-content: space-between !important;

        width: 100% !important;

        min-width: 0 !important;

        min-height: 41px !important;

        height: auto !important;

        margin: 0 !important;

        padding:
            10px 16px 10px 34px !important;

        color: #34465a !important;

        background: var(--unigom-light) !important;

        border: 0 !important;

        border-bottom:
            1px solid #e4eaf1 !important;

        font-family: var(--font-main) !important;

        font-size: 13px !important;

        font-weight: 500 !important;

        line-height: 1.45 !important;

        text-decoration: none !important;

        white-space: normal !important;

        overflow-wrap: anywhere;

        position: static !important;

        transform: none !important;

        opacity: 1 !important;

        visibility: visible !important;

        pointer-events: auto !important;
    }

    .nav-submenu > li > a:hover {
        color: var(--unigom-blue) !important;

        background: #eaf0f7 !important;
    }

    /* -----------------------------------------------------
       MOBILE NESTED MENU
    ----------------------------------------------------- */
    .main-nav .has-nested-menu {
        display: block !important;

        width: 100% !important;

        position: relative !important;
    }

    .main-nav .has-nested-menu > .submenu-toggle {
        display: flex !important;

        align-items: center !important;

        justify-content: space-between !important;

        width: 100% !important;
    }

    .main-nav .has-nested-menu > .submenu-toggle .submenu-arrow {
        display: inline-flex !important;

        align-items: center !important;

        justify-content: center !important;

        min-width: 25px !important;

        margin-left: auto !important;

        color: var(--unigom-blue) !important;

        font-size: 19px !important;

        line-height: 1 !important;

        transition:
            transform 0.25s ease,
            color 0.2s ease !important;
    }

    .main-nav .has-nested-menu.active > .submenu-toggle .submenu-arrow {
        color: var(--unigom-gold) !important;

        transform: rotate(90deg) !important;
    }

    /* -----------------------------------------------------
       MOBILE NESTED SUBMENU
    ----------------------------------------------------- */
    .main-nav .has-nested-menu > .nested-submenu {
        display: block !important;

        position: static !important;

        width: 100% !important;

        min-width: 0 !important;

        max-width: none !important;

        max-height: 0 !important;

        margin: 0 !important;

        padding: 0 !important;

        overflow: hidden !important;

        background: #edf2f8 !important;

        border: 0 !important;

        border-radius: 0 !important;

        box-shadow: none !important;

        opacity: 1 !important;

        visibility: visible !important;

        pointer-events: auto !important;

        transform: none !important;

        transition:
            max-height 0.28s ease !important;
    }

    .main-nav .has-nested-menu.active > .nested-submenu {
        max-height: 700px !important;
    }

    .main-nav .nested-submenu > li > a {
        display: flex !important;

        align-items: center !important;

        width: 100% !important;

        min-height: 40px !important;

        height: auto !important;

        padding:
            10px 16px 10px 49px !important;

        color: #34465a !important;

        background: #edf2f8 !important;

        border: 0 !important;

        border-bottom:
            1px solid #dfe7f0 !important;

        font-size: 12.5px !important;

        font-weight: 500 !important;

        line-height: 1.45 !important;

        text-decoration: none !important;

        white-space: normal !important;

        overflow-wrap: anywhere;
    }

    .main-nav .nested-submenu > li > a:hover {
        color: var(--unigom-blue) !important;

        background: #e3ebf5 !important;
    }

    /* -----------------------------------------------------
       MOBILE APPLY BUTTON
    ----------------------------------------------------- */
    .main-nav .nav-apply-btn {
        display: flex !important;

        align-items: center !important;

        justify-content: center !important;

        width: calc(100% - 30px) !important;

        min-width: 0 !important;

        height: 44px !important;

        min-height: 44px !important;

        margin: 13px 15px 3px !important;

        padding: 0 16px !important;

        color: #fff !important;

        background: var(--unigom-gold) !important;

        border: 0 !important;

        border-radius: 5px !important;

        font-size: 13px !important;

        font-weight: 800 !important;

        text-decoration: none !important;

        flex-shrink: 0 !important;

        position: static !important;

        transform: none !important;
    }

    .main-nav .nav-apply-btn:hover {
        background: #ad841b !important;
    }
}


/* =========================================================
   11. SMALL MOBILE
========================================================= */
@media (max-width: 576px) {

    .utility-bar {
        height: 38px !important;
    }

    .utility-inner {
        height: 38px !important;

        padding: 0 10px !important;

        gap: 5px !important;
    }

    .utility-left {
        gap: 8px !important;
    }

    .util-social {
        width: 17px !important;

        height: 17px !important;
    }

    .util-social svg {
        width: 15px !important;

        height: 15px !important;
    }

    .unigom-languages {
        gap: 6px !important;

        font-size: 10px !important;
    }

    .utility-right {
        gap: 4px !important;
    }

    .util-link {
        height: 23px !important;

        min-height: 23px !important;

        padding: 0 7px !important;

        font-size: 9px !important;
    }

    body {
        padding-top: 98px !important;
    }

    .site-header {
        top: 38px !important;

        height: 60px !important;

        min-height: 60px !important;
    }

    .site-header .nav-inner,
    .nav-inner {
        height: 60px !important;

        min-height: 60px !important;

        padding: 0 12px !important;
    }

    .brand-logo {
        height: 43px !important;

        max-width: 135px !important;
    }

    .menu-btn {
        width: 42px !important;

        height: 42px !important;

        min-width: 42px !important;

        flex-basis: 42px !important;
    }

    .main-nav {
        top: 98px !important;

        width: min(420px, 100%) !important;

        max-width: 100vw !important;

        max-height:
            calc(100dvh - 98px) !important;
    }

    .main-nav > .nav-link,
    .main-nav > .nav-dropdown > .nav-link {
        min-height: 45px !important;

        padding: 10px 13px !important;

        font-size: 13.5px !important;
    }

    .nav-submenu > li > a {
        padding:
            10px 13px 10px 29px !important;

        font-size: 12.5px !important;
    }

    .main-nav .nested-submenu > li > a {
        padding-left: 43px !important;

        font-size: 12px !important;
    }
}


/* =========================================================
   12. EXTRA SMALL MOBILE
========================================================= */
@media (max-width: 360px) {

    .utility-inner {
        padding-left: 7px !important;

        padding-right: 7px !important;
    }

    .utility-left {
        gap: 5px !important;
    }

    .unigom-languages {
        gap: 5px !important;

        font-size: 9px !important;
    }

    .util-link {
        padding: 0 6px !important;

        font-size: 8px !important;
    }

    .brand-logo {
        max-width: 120px !important;

        height: 40px !important;
    }

    .main-nav {
        width: 100% !important;

        max-width: 100% !important;
    }

    .main-nav > .nav-link,
    .main-nav > .nav-dropdown > .nav-link {
        font-size: 13px !important;
    }
}


/* =========================================================
   13. ACCESSIBILITY & INTERACTION
========================================================= */
.site-header a:focus-visible,
.utility-bar a:focus-visible,
.menu-btn:focus-visible,
.unigom-radio:focus-visible {
    outline:
        3px solid var(--unigom-gold) !important;

    outline-offset: 2px !important;
}


/* =========================================================
   REDUCED MOTION
========================================================= */
@media (prefers-reduced-motion: reduce) {

    .site-header *,
    .utility-bar *,
    .unigom-radio,
    .radio-live-dot {
        scroll-behavior: auto !important;

        animation-duration: 0.01ms !important;

        animation-iteration-count: 1 !important;

        transition-duration: 0.01ms !important;
    }
}