/* Font Face Definitions */
@font-face {
    font-family: '72';
    src: url('./Web_Fonts/Web_Fonts/WOFF2/W01-subset/72-Regular.woff2') format('woff2'),
        url('./Web_Fonts/Web_Fonts/WOFF/W01-subset/72-Regular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: '72';
    src: url('./Web_Fonts/Web_Fonts/WOFF2/W01-subset/72-Bold.woff2') format('woff2'),
        url('./Web_Fonts/Web_Fonts/WOFF/W01-subset/72-Bold.woff') format('woff');
    font-weight: bold;
    font-style: normal;
}

html,
body {
    font-family: '72', '72full', Arial, Helvetica, sans-serif !important;
}

/* Global Body Background */
body {
    background-color: #EFF1F1 !important;
}

/* Custom Utility Classes for Navigation */
.bg-nav-primary {
    background-color: #15213B !important;
}

.text-nav-accent {
    color: #44C0AD !important;
}

.border-nav-accent {
    border-color: #44C0AD !important;
}

.h-nav-bar {
    height: 50px !important;
}

/* Main Content Spacing to clear fixed header */
.pt-main-content {
    padding-top: 120px !important;
}

/* Sub Navigation Link Styling */
.sub-nav-link {
    height: 100%;
    display: flex;
    align-items: center;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    border-bottom: 3px solid transparent;
    transition: all 0.2s;
    font-size: 0.95rem;
    color: #6B7280;
    padding-top: 6px;
    /* gray-500 default */
}

/* Active State */
.sub-nav-link.active {
    border-bottom-color: #44C0AD !important;
    color: #111827;
    /* gray-900 */
}

/* Hover State - No bolding to prevent layout shift */
.sub-nav-link:hover {
    border-bottom-color: #44C0AD;
    color: #111827;
}

/* Top Navigation Link Hover Effect */
.top-nav-link:hover {
    background-color: rgba(0, 0, 0, 0.2);
    border-radius: 6px;
}

/* Icon Button Link Hover Effect */
.nav-icon-btn {
    cursor: pointer;
    padding-left: 14px;
    padding-right: 14px;
}

.nav-icon-btn:hover {
    background-color: rgba(0, 0, 0, 0.2);
    border-radius: 6px;
}

/* Mobile Menu Z-Indices */
.z-mobile-overlay {
    z-index: 100 !important;
}

.z-mobile-drawer {
    z-index: 150 !important;
}


/* Responsive Visibility Overrides */
/* Base state (Mobile) */
.d-none {
    display: none !important;
}

/* Desktop State (>= 768px) */
@media (min-width: 768px) {
    .d-md-flex {
        display: flex !important;
    }

    .d-md-block {
        display: block !important;
    }

    .d-md-none {
        display: none !important;
    }
}

/* Mobile State (< 768px) */
@media (max-width: 767px) {
    .d-mobile-block {
        display: block !important;
    }

    .d-mobile-flex {
        display: flex !important;
    }
}

/* Primary Button Standardization */
.btn-primary,
button[class*="bg-primary-"],
a[class*="bg-primary-"] {
    background-color: #44C0AD !important;
    color: #ffffff !important;
    height: 36px !important;
    min-height: 36px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    border-radius: 8px !important;
    border: none !important;
    font-weight: normal !important;
    font-size: 14px !important;
}

.btn-primary:hover,
button[class*="bg-primary-"]:hover,
a[class*="bg-primary-"]:hover {
    background-color: #36998A !important;
}

/* Secondary Button Standardization */
.btn-secondary,
button.bg-white.border,
a.bg-white.border {
    height: 36px !important;
    min-height: 36px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 8px !important;
    font-weight: normal !important;
    background-color: #ffffff !important;
    border: 1px solid #d1d5db !important;
    /* gray-300 */
    color: #000000 !important;
    font-size: 14px !important;
}

/* Dropdown Navigation - Robust Hover */
.nav-dropdown-group {
    position: relative;
    height: 100%;
}

.nav-dropdown-menu {
    display: none;
    position: absolute;
    left: 0;
    top: 100%;
    z-index: 1000;
    /* High z-index */
    background: white;
    min-width: 12rem;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
    border: 1px solid #f3f4f6;
    border-radius: 0px;
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
    min-width: 20rem;
}

.nav-dropdown-group:hover .nav-dropdown-menu {
    display: block;
}

.nav-dropdown-menu.open {
    display: block;
}

/* Right-aligned dropdown for Profile */
.nav-dropdown-right {
    right: 0;
    left: auto;
}

/* Submenu Styling */
.nav-dropdown-submenu-parent {
    position: relative;
}

.nav-dropdown-submenu {
    display: none;
    position: absolute;
    right: 100%;
    /* Move to the left of the parent */
    top: 0;
    width: 12rem;
    background: white;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
    border: 1px solid #f3f4f6;
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
    z-index: 1001;
}

.nav-dropdown-submenu-parent:hover .nav-dropdown-submenu {
    display: block;
}