/* ==========================================================================
   PEPADB UNIFIED NAVIGATION SYSTEM
   ========================================================================== */

/* Enhanced Design System Variables for Navigation */
:root {
    /* Brand Colors */
    --color-primary: #475569;
    --color-primary-light: #64748b;
    --color-primary-dark: #334155;
    --color-accent: #dc2626;
    --color-accent-light: #ef4444;
    --color-accent-dark: #b91c1c;

    /* Neutral Colors */
    --color-white: #ffffff;
    --color-gray-50: #f8fafc;
    --color-gray-100: #f1f5f9;
    --color-gray-200: #e2e8f0;
    --color-gray-300: #cbd5e1;
    --color-gray-400: #94a3b8;
    --color-gray-500: #64748b;
    --color-gray-600: #475569;
    --color-gray-700: #334155;
    --color-gray-800: #1e293b;
    --color-gray-900: #0f172a;

    /* Background Colors */
    --bg-primary: #ffffff;
    --bg-secondary: #f8fafc;
    --bg-tertiary: #f1f5f9;

    /* Text Colors */
    --text-primary: #1e293b;
    --text-secondary: #334155;
    --text-tertiary: #64748b;
    --text-muted: #94a3b8;

    /* Border Colors */
    --border-light: rgba(0, 0, 0, 0.04);
    --border-medium: rgba(0, 0, 0, 0.08);
    --border-dark: rgba(0, 0, 0, 0.16);

    /* Modern Shadow System */
    --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.03);
    --shadow-base: 0 1px 3px 0 rgba(0, 0, 0, 0.08), 0 1px 2px -1px rgba(0, 0, 0, 0.04);
    --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.08), 0 2px 4px -2px rgba(0, 0, 0, 0.04);
    --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.08), 0 4px 6px -4px rgba(0, 0, 0, 0.04);
    --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.08), 0 8px 10px -6px rgba(0, 0, 0, 0.04);
    --shadow-elevated: 0 8px 16px -4px rgba(71, 85, 105, 0.12), 0 6px 12px -6px rgba(71, 85, 105, 0.08);
    --shadow-floating: 0 12px 24px -4px rgba(71, 85, 105, 0.10), 0 8px 16px -8px rgba(71, 85, 105, 0.06);

    /* Border Radius System */
    --radius-xs: 4px;
    --radius-sm: 6px;
    --radius-base: 8px;
    --radius-md: 12px;
    --radius-lg: 16px;
    --radius-xl: 20px;
    --radius-2xl: 24px;
    --radius-3xl: 32px;
    --radius-full: 9999px;

    /* Spacing Scale */
    --space-px: 1px;
    --space-0-5: 2px;
    --space-1: 4px;
    --space-1-5: 6px;
    --space-2: 8px;
    --space-2-5: 10px;
    --space-3: 12px;
    --space-3-5: 14px;
    --space-4: 16px;
    --space-5: 20px;
    --space-6: 24px;
    --space-7: 28px;
    --space-8: 32px;
    --space-10: 40px;
    --space-12: 48px;
    --space-16: 64px;

    /* Transition System */
    --transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
    --transition-base: 250ms cubic-bezier(0.4, 0, 0.2, 1);
    --transition-slow: 350ms cubic-bezier(0.4, 0, 0.2, 1);
    --transition-bounce: 400ms cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

/* ==========================================================================
   UNIFIED NAVIGATION STYLES
   ========================================================================== */

/* Main Navigation Container */
.custom_nav {
    background-color: var(--color-primary) !important;
    box-shadow: var(--shadow-base) !important;
    transition: all 0.3s ease !important;
    position: fixed !important;
    top: 0 !important;
    width: 100% !important;
    z-index: 1030 !important;
}

.custom_nav .container {
    padding: 0 1.5rem !important;
}

/* Mobile Toggle Button */
.navbar-toggler {
    border: 2px solid rgba(255, 255, 255, 0.2) !important;
    border-radius: 8px !important;
    padding: 0.5rem 0.75rem !important;
    transition: all 0.2s ease !important;
}

.navbar-toggler:hover {
    border-color: rgba(255, 255, 255, 0.4) !important;
    background-color: rgba(255, 255, 255, 0.1) !important;
}

.navbar-toggler:focus {
    border-color: var(--color-accent) !important;
    box-shadow: 0 0 0 2px rgba(220, 38, 38, 0.3) !important;
    outline: none !important;
}

.navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.8%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='m4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") !important;
}

/* Social Media Links - Direct children of custom_nav */
.custom_nav>.nav-item.nav-link {
    padding: var(--space-2) var(--space-3) !important;
    border-radius: var(--radius-sm) !important;
    transition: all var(--transition-base) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: rgba(255, 255, 255, 0.9) !important;
    font-weight: 500 !important;
    margin: 0 0.25rem !important;
    text-decoration: none !important;
}

.custom_nav>.nav-item.nav-link:hover {
    background-color: rgba(255, 255, 255, 0.1) !important;
    transform: translateY(-1px) !important;
    color: var(--color-white) !important;
    text-decoration: none !important;
}

.custom_nav>.nav-item.nav-link:focus {
    outline: 2px solid var(--color-accent) !important;
    outline-offset: 2px !important;
    background-color: rgba(255, 255, 255, 0.1) !important;
}

/* Social Media Icons */
.custom_nav>.nav-item.nav-link i {
    color: rgba(255, 255, 255, 0.9) !important;
    transition: all var(--transition-base) !important;
    font-size: 1.125rem !important;
}

.custom_nav>.nav-item.nav-link:hover i {
    color: var(--color-white) !important;
    transform: scale(1.1) !important;
}

/* Specific icon classes for better targeting */
.custom_nav>.nav-item.nav-link .fa-x-twitter,
.custom_nav>.nav-item.nav-link .fa-linkedin-in {
    color: rgba(255, 255, 255, 0.9) !important;
}

.custom_nav>.nav-item.nav-link:hover .fa-x-twitter,
.custom_nav>.nav-item.nav-link:hover .fa-linkedin-in {
    color: var(--color-white) !important;
}

/* Navigation List Items */
.custom_nav .navbar-nav {
    margin-left: auto !important;
}

.custom_nav .navbar-nav .nav-link {
    color: rgba(255, 255, 255, 0.9) !important;
    font-weight: 500 !important;
    padding: 0.5rem 1rem !important;
    transition: all var(--transition-fast) !important;
    border-radius: var(--radius-sm) !important;
    margin: 0 0.25rem !important;
    text-transform: uppercase !important;
    font-size: 0.875rem !important;
    letter-spacing: 0.05em !important;
    position: relative !important;
    overflow: hidden !important;
}

.custom_nav .navbar-nav .nav-link:hover {
    color: var(--color-white) !important;
    background-color: rgba(255, 255, 255, 0.15) !important;
    transform: translateY(-1px) !important;
    box-shadow: var(--shadow-base) !important;
}

.custom_nav .navbar-nav .nav-link.active {
    color: var(--color-white) !important;
    background-color: rgba(255, 255, 255, 0.15) !important;
}

.custom_nav .navbar-nav .nav-link:focus {
    outline: 2px solid var(--color-accent) !important;
    outline-offset: 2px !important;
    color: var(--color-white) !important;
    background-color: rgba(255, 255, 255, 0.1) !important;
}

.custom_nav .navbar-nav .nav-link:active {
    transform: translateY(0) !important;
    box-shadow: var(--shadow-sm) !important;
}

/* Stroke Effect for Navigation Links */
nav.stroke ul li a,
nav.fill ul li a {
    position: relative !important;
}

nav.stroke ul li a:after,
nav.fill ul li a:after {
    position: absolute !important;
    bottom: 0 !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    width: 0% !important;
    content: '' !important;
    background: var(--color-white) !important;
    height: 2px !important;
    border-radius: 1px !important;
    transition: width 0.3s ease !important;
}

nav.stroke ul li a:hover:after {
    width: 80% !important;
}

/* Social Media Icon Spacing */
.custom_nav>.nav-item.nav-link:first-child {
    margin-right: 0.5rem !important;
}

/* ==========================================================================
   MOBILE RESPONSIVE NAVIGATION
   ========================================================================== */

@media (max-width: 991px) {
    .navbar-collapse {
        background: var(--color-primary) !important;
        margin-top: 1rem !important;
        padding: 1rem !important;
        border-radius: 8px !important;
        box-shadow: var(--shadow-md) !important;
    }

    .custom_nav .navbar-nav .nav-link {
        color: var(--color-white) !important;
        padding: 0.75rem 1rem !important;
        border-radius: 6px !important;
        margin-bottom: 0.5rem !important;
        transition: all 0.2s ease !important;
        display: block !important;
        margin: 0 0 0.5rem 0 !important;
    }

    .custom_nav .navbar-nav .nav-link:hover {
        background: rgba(255, 255, 255, 0.1) !important;
        transform: translateX(0.25rem) !important;
    }

    .custom_nav .navbar-nav .nav-link.active {
        background: rgba(255, 255, 255, 0.15) !important;
        color: var(--color-white) !important;
    }

    /* Hide stroke effect on mobile */
    nav.stroke ul li a:after {
        display: none !important;
    }

    /* Social links styling for mobile */
    .custom_nav>.nav-item.nav-link {
        justify-content: center !important;
        height: 3rem !important;
        border-radius: 50% !important;
        margin: 0 0.25rem !important;
        width: 3rem !important;
    }
}

/* ==========================================================================
   ACCESSIBILITY ENHANCEMENTS
   ========================================================================== */

/* Skip Navigation Link */
.skip-link {
    position: absolute !important;
    top: -50px !important;
    left: 6px !important;
    background: var(--color-primary) !important;
    color: var(--color-white) !important;
    padding: 8px 16px !important;
    text-decoration: none !important;
    border-radius: 0 0 8px 8px !important;
    font-weight: 500 !important;
    z-index: 1100 !important;
    transition: top 0.3s ease !important;
    opacity: 0 !important;
    visibility: hidden !important;
}

.skip-link:focus {
    top: 0 !important;
    opacity: 1 !important;
    visibility: visible !important;
    color: var(--color-white) !important;
    text-decoration: none !important;
}

/* Screen Reader Only Content */
.sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* ==========================================================================
   UTILITY CLASSES FOR CONSISTENCY
   ========================================================================== */

/* Font family now handled by centralized font system */

/* Prevent text selection on navigation elements */
.custom_nav .navbar-nav .nav-link {
    user-select: none !important;
    -webkit-user-select: none !important;
    -moz-user-select: none !important;
    -ms-user-select: none !important;
}

/* ==========================================================================
   OVERRIDE PROTECTION
   ========================================================================== */

/* These styles use !important to ensure they override any existing styles
   and provide a consistent navigation experience across all pages */