:root {
    --brand-white: #ffffff;
    --brand-ash: #f5f5f7;
    --brand-lemon: #ccff00;
    --brand-dark: #1d1d1f;
    
    /* Functional Overrides */
    --bs-primary: var(--brand-dark);
    --primary-color: var(--brand-dark);
    --accent-color: var(--brand-lemon);
}

body {
    background-color: #ffffff !important; /* Force White Background */
    color: var(--brand-dark) !important;
    font-family: 'Poppins', sans-serif !important;
    font-size: 15px !important; /* Reduced to 13px */
    overflow-x: hidden !important;
    width: 100%;
}

h1, h2, h3, h4, h5, h6 {
    color: var(--brand-dark) !important;
    line-height: 1.3;
    font-family: 'Poppins' !important;
    margin-bottom: 0.5em;
}

h1 { font-size: 38px !important; }
h2 { font-size: 28px !important; }
h3 { font-size: 23px !important; }
h4 { font-size: 18px !important; }
h5 { font-size: 16px !important; }
h6 { font-size: 14px !important; }

p, li {
    color: var(--brand-dark); /* Removed !important to allow section overrides */
    font-size: 15px !important; /* reduced to 13px */
    line-height: 1.7 !important;
    font-family: 'Poppins' !important;
}

a:not([class*="btn"]) {
    color: var(--brand-dark);
}

/* Base Button Styles */
.btn-lemon, .btn-dark-modern {
    padding: 12px 30px !important;
    border-radius: 12px !important;
    font-weight: 800 !important;
    font-size: 15px !important; /* Updated font size */
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    transition: all 0.3s ease !important;
    display: inline-block !important;
    text-decoration: none !important;
    border: none !important;
    z-index: 10 !important;
    position: relative !important;
}

.btn-lemon {
    background-color: var(--brand-lemon) !important;
    color: var(--brand-dark) !important;
}

.btn-lemon:hover {
    background-color: var(--brand-dark) !important;
    color: var(--brand-lemon) !important;
    transform: translateY(-3px);
}

.btn-dark-modern {
    background-color: var(--brand-dark) !important;
    color: #ffffff !important;
    border: 1px solid rgba(255,255,255,0.1) !important;
}

.btn-dark-modern:hover {
    background-color: var(--brand-lemon) !important;
    color: var(--brand-dark) !important;
    transform: translateY(-3px);
}

/* Sidebar & Navbar Overrides */
#side-nav, .sidebar-wrapper, .sidebar {
    background-color: var(--brand-dark) !important;
    color: var(--brand-white) !important;
}

#side-nav a, .sidebar-wrapper a, .sidebar a {
    color: var(--brand-white) !important;
    transition: all 0.3s;
}

#side-nav a:hover, .sidebar-wrapper a:hover, .sidebar a:hover {
    color: var(--brand-lemon) !important;
    background-color: rgba(204, 255, 0, 0.1) !important;
}

/* Selected/Active State - Lemon Highlighting */
#side-nav .active, .sidebar-wrapper .active, .sidebar .active,
#side-nav a.active, .sidebar-wrapper a.active, .sidebar a.active,
#side-nav li.active a, .sidebar-wrapper li.active a, .sidebar li.active a {
    background-color: var(--brand-lemon) !important;
    color: var(--brand-dark) !important;
}










/* Navbar on White Theme */
#top-navbar, .navbar, .wed-top {
    background-color: #ffffff !important; 
    border-bottom: 1px solid var(--brand-ash);
}

.wed-top a {
    color: var(--brand-dark) !important;
}

.wed-top a:hover {
    color: var(--brand-lemon) !important;
}

/* Accent Branded Elements */
.nav-link.active, .sidebar-btn.active, .btn-primary {
    background-color: var(--brand-lemon) !important;
    color: var(--brand-dark) !important;
    border-color: var(--brand-lemon) !important;
}

.nav-link:hover, .sidebar-btn:hover {
    background-color: rgba(204, 255, 0, 0.1) !important;
    color: var(--brand-lemon) !important;
}

/* Links specific overrides */
a:hover {
    color: var(--brand-lemon) !important;
}


.site-footer, footer, .wed-hom-footer, .wed-rights {
    background-color: var(--brand-dark) !important;
    color: var(--brand-white) !important;
    padding: 3rem 0;
    text-align: left !important; /* Left aligned as requested */
    border-top: 5px solid var(--brand-lemon);
}

/* Footer Text must be white on dark background */
.wed-hom-footer p, .wed-hom-footer a, .wed-hom-footer li, .wed-hom-footer span, .wed-hom-footer div,
.site-footer p, .site-footer a, .site-footer li, .site-footer span, .site-footer div {
    color: var(--brand-white) !important; 
    text-align: left !important;
}

/* Footer headers specifically left aligned but inheriting color (lemon elsewhere) */
.wed-hom-footer h4, .site-footer h4, .wed-hom-footer h3, .site-footer h3 {
    text-align: left !important;
}

.footer-logo {
    width: 60px;
    margin-bottom: 10px;
}

/* Sidebar bottom logo */
.sidebar-footer-logo {
    padding: 20px;
    text-align: center;
    margin-top: auto;
}

.sidebar-footer-logo img {
    max-width: 80px;
    opacity: 1;
    transition: transform 0.3s;
}

/* Footer Logo Text Styling */
.sidebar-footer-logo p,
.sidebar-footer-logo span,
.footer-logo-text,
#side-nav footer p {
    color: var(--brand-white) !important;
    font-size: 0.85rem;
    margin-top: 10px;
    font-weight: 600;
}

/* =========================================
   PREMIUM DASHBOARD STYLES
   ========================================= */

.dashboard-card {
    background: #ffffff;
    border-radius: 20px !important;
    border: 1px solid var(--brand-ash) !important;
    box-shadow: 0 10px 30px rgba(0,0,0,0.03) !important;
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275) !important;
}

.dashboard-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 15px 35px rgba(0,0,0,0.08) !important;
}

.stat-card {
    color: white !important;
    overflow: hidden;
    position: relative;
    z-index: 1;
}

.stat-card::after {
    content: '';
    position: absolute;
    top: -20%;
    right: -10%;
    width: 120px;
    height: 120px;
    background: rgba(255,255,255,0.1);
    border-radius: 50%;
    z-index: -1;
}

.stat-card-primary { background: linear-gradient(135deg, #1d1d1f 0%, #3a3a3c 100%) !important; }
.stat-card-success { background: linear-gradient(135deg, #28a745 0%, #34ce57 100%) !important; }
.stat-card-info { background: linear-gradient(135deg, #17a2b8 0%, #1fc8e3 100%) !important; }
.stat-card-warning { background: linear-gradient(135deg, var(--brand-lemon) 0%, #e6ff80 100%) !important; color: var(--brand-dark) !important; }

.table-premium thead th {
    background-color: var(--brand-ash) !important;
    color: var(--brand-dark) !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    font-size: 0.75rem;
    letter-spacing: 1px;
    border-bottom: 2px solid var(--brand-lemon) !important;
}

.progress-premium {
    height: 10px !important;
    border-radius: 10px !important;
    background-color: var(--brand-ash) !important;
}

.progress-bar-premium {
    border-radius: 10px !important;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

/* Chat System Redesign */
.chat-interface {
    border: none !important;
    box-shadow: 0 10px 40px rgba(0,0,0,0.05) !important;
    border-radius: 20px !important;
    overflow: hidden;
}

.chat-history {
    background: #fdfdfd !important;
}

.chat-bubble-me {
    background: var(--brand-dark) !important;
    color: white !important;
    border-radius: 18px 18px 2px 18px !important;
}

.chat-bubble-them {
    background: white !important;
    color: var(--brand-dark) !important;
    border: 1px solid var(--brand-ash) !important;
    border-radius: 18px 18px 18px 2px !important;
}


/* Input Fields on White Background */
input, textarea, select {
    background-color: #fff !important;
    color: #333 !important;
    border: 1px solid #ccc !important;
}

::placeholder {
    color: #999 !important;
}

/* Dropdown Menu Overrides */
.m-menu, .mm-pos, .about-mm, .admi-mm, .lms-main-menu .m-menu, .lms-main-menu .mm-pos {
    background-color: #ffffff !important;
    color: var(--brand-dark) !important;
}

.m-menu p, .m-menu span, .m-menu li, .m-menu h1, .m-menu h2, .m-menu h3, .m-menu h4, .m-menu h5, .m-menu h6,
.mm-pos p, .mm-pos span, .mm-pos li, .mm-pos h1, .mm-pos h2, .mm-pos h3, .mm-pos h4, .mm-pos h5, .mm-pos h6 {
    color: var(--brand-dark) !important;
}

.m-menu a, .mm-pos a, .about-menu .mm-pos a, .admi-menu .mm-pos a {
    color: var(--brand-dark) !important;
}

.m-menu a:hover, .mm-pos a:hover {
    color: var(--brand-lemon) !important;
}

/* Fix for any residual lemon text in headers or links within these blocks */
.m-menu .con-title h2 span, .mm-pos .con-title h2 span {
    color: var(--brand-dark) !important;
}

/* Footer Table Lines - Force Lemon */
.wed-foot-link {
    border-top: 1px groove var(--brand-lemon) !important;
    border-bottom: 1px groove var(--brand-lemon) !important;
}

.wed-foot-link div {
    border-right: 1px groove var(--brand-lemon) !important;
}

/* =========================================
   GLOBAL ANIMATIONS & INTERACTIVITY
   ========================================= */

/* Base transitions for all interactables */
a, button, .btn, .card, img {
    transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
}

/* Scroll Animation Classes */
.animate-on-scroll {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
    will-change: opacity, transform;
}

.animate-on-scroll.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Stagger delays */
.delay-100 { transition-delay: 0.1s; }
.delay-200 { transition-delay: 0.2s; }
.delay-300 { transition-delay: 0.3s; }
.delay-400 { transition-delay: 0.4s; }
.delay-500 { transition-delay: 0.5s; }

/* Specific Animation Types */
.anim-fade-up {
    opacity: 0;
    transform: translateY(30px);
}

.anim-fade-left {
    transform: translateX(-30px);
}
.anim-fade-left.is-visible {
    transform: translateX(0);
}

.anim-fade-right {
    transform: translateX(30px);
}
.anim-fade-right.is-visible {
    transform: translateX(0);
}

.anim-zoom-in {
    transform: scale(0.95);
}
.anim-zoom-in.is-visible {
    transform: scale(1);
}

/* Text Highlights */
.highlight-text {
    color: var(--brand-dark);
    position: relative;
    display: inline-block;
}
.highlight-text::after {
    content: '';
    position: absolute;
    width: 100%;
    transform: scaleX(0);
    height: 4px;
    bottom: -2px;
    left: 0;
    background-color: var(--brand-lemon);
    transform-origin: bottom right;
    transition: transform 0.4s ease-out;
}
.highlight-text:hover::after,
.section-title:hover .highlight-text::after {
    transform: scaleX(1);
    transform-origin: bottom left;
}

/* Card Hover Effects - Lighter Shadows */
.card, .course-item, .event-item {
    border: 1px solid var(--brand-ash);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 4px 15px rgba(0,0,0,0.03); /* Softened shadow */
    background: var(--brand-white);
}

.card:hover, .course-item:hover, .event-item:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 25px rgba(0,0,0,0.06); /* Lightened shadow */
    border-color: var(--brand-lemon);
}

/* Button Pulse */
.btn-pulse {
    animation: pulse-lemon 2s infinite;
}

@keyframes pulse-lemon {
    0% {
        box-shadow: 0 0 0 0 rgba(204, 255, 0, 0.7);
    }
    70% {
        box-shadow: 0 0 0 10px rgba(204, 255, 0, 0);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(204, 255, 0, 0);
    }
}

/* Modern Typography Tweaks */
h1, h2, h3, h4, h5, h6 {
    font-weight: 700;
    color: var(--brand-dark);
    letter-spacing: -0.5px;
}

p {
    line-height: 1.7;
    color: #555;
    font-family: 'Poppins', sans-serif !important;
    font-size: 15px !important; /* Updated to match 15px request */
}

/* =========================================
   RESPONSIVE NAVIGATION (Added by Agent)
   ========================================= */

/* Desktop View (Large Screens > 992px) */
@media screen and (min-width: 993px) {
    .ed-mob-menu {
        display: none !important;
    }
    .lms-header-sticky {
        display: block !important;
    }
}

/* Tablet & Mobile View (Screens < 992px) */
@media screen and (max-width: 992px) {
    /* Hide Desktop Navbar */
    .lms-header-sticky {
        display: none !important;
    }

    /* Show Mobile Menu Bar */
    .ed-mob-menu {
        display: block !important;
        background-color: #ffffff !important; /* White background */
        box-shadow: 0 2px 10px rgba(0,0,0,0.1);
        position: fixed;
        top: 0;
        width: 100%;
        z-index: 999;
    }
    
    /* Mobile Header Container */
    .ed-mob-menu-con {
        background-color: #ffffff !important;
        padding: 10px 20px;
        display: flex;
        justify-content: space-between;
        align-items: center;
    }

    /* Logo Styling */
    .ed-mm-left {
        float: none !important; 
        width: auto !important;
    }
    .wed-logo a {
        color: var(--brand-dark) !important;
        font-size: 18px !important;
        font-weight: 700;
        text-transform: uppercase;
        display: flex;
        align-items: center;
        gap: 10px;
    }

    /* Hamburger Icon */
    .ed-micon {
        color: var(--brand-dark) !important;
        font-size: 24px !important;
        margin-top: 0 !important;
        float: none !important;
    }
    
    /* Add extra padding to body to prevent content from hiding behind fixed header 
       REMOVED to fix Login Page layout */
    /* body {
        padding-top: 60px;
    } */

    /* Mobile Menu Dropdown */
    .ed-mm-inn {
        background-color: #ffffff !important;
        position: fixed;
        top: 0;
        left: -100%; /* Hidden by default */
        width: 80%; /* Drawer style */
        height: 100vh;
        overflow-y: auto;
        transition: 0.4s;
        box-shadow: 2px 0 10px rgba(0,0,0,0.1);
        padding-top: 60px; /* Space for close button */
        z-index: 1000;
    }
    
    /* Ensure close button is visible */
    .ed-mi-close {
        display: block;
        position: absolute;
        top: 20px;
        right: 20px;
        font-size: 24px;
        color: var(--brand-dark) !important;
        background: var(--brand-ash);
        width: 40px;
        height: 40px;
        line-height: 40px;
        text-align: center;
        border-radius: 50%;
        cursor: pointer;
        z-index: 1001;
    }

    /* When menu is active (this class needs to be toggled via JS, 
       but existing template uses a specific structure. 
       We will trust existing JS or add simple JS if needed.
       Existing CSS likely handles .ed-mm-act or similar. 
       We'll style the inner elements for now. */

    .ed-mm-inn h4 {
        color: var(--brand-lemon) !important;
        font-size: 16px;
        font-weight: 700;
        padding: 15px 20px 5px;
        border-bottom: 1px solid #eee;
        margin-top: 10px;
        text-transform: uppercase;
    }

    .ed-mm-inn ul li a {
        color: var(--brand-dark) !important;
        font-size: 15px;
        padding: 12px 20px;
        display: block;
        border-bottom: 1px solid #f5f5f5;
        font-weight: 500;
    }

    .ed-mm-inn ul li a:hover {
        background-color: var(--brand-ash);
        color: var(--brand-lemon) !important;
        padding-left: 25px; /* Slide effect */
    }

    /* Sponsor Button in Mobile Menu */
    .mobile-sponsor-btn {
        display: block;
        background-color: var(--brand-lemon) !important;
        color: var(--brand-dark) !important;
        font-weight: 700 !important;
        text-align: center;
        padding: 12px 20px;
        margin: 20px;
        border-radius: 5px;
        text-decoration: none;
    }
}

/* ---------------------------------------------------
   BRAND REVOLUTION: CARD BORDERS & CONTRAST
   --------------------------------------------------- */

/* Signature Double-Border for ALL Cards */
.link-card, .discover-card, .course-card, .media-card-modern, .card, 
.dashboard-card, .stat-card, .ho-ev-latest, .ho-st-login, .form-container-modern,
.media-card-modern, .event-item, .course-item {
    border: 3px solid var(--brand-dark) !important;
    box-shadow: 0 0 0 3px var(--brand-lemon) !important;
    margin: 15px 10px !important; /* Extra margin for shadow breathing room */
    transition: transform 0.3s ease, box-shadow 0.3s ease !important;
    background-color: var(--brand-white) !important;
    border-radius: 20px !important; /* Rounded corners as requested */
}

.link-card:hover, .discover-card:hover, .course-card:hover, .card:hover {
    transform: translateY(-8px) scale(1.02) !important;
    box-shadow: 0 0 0 5px var(--brand-lemon), 0 20px 40px rgba(0,0,0,0.1) !important;
}

/* Enforcing Black Background Rules (White Text + Lemon Highlights) */
.bg-dark, .wed-hom-happy, .wed-hom-app, .wed-rights, .ho-ev-latest, .site-footer, .wed-hom-footer {
    background-color: var(--brand-dark) !important;
    color: #ffffff !important;
}

.bg-dark h1, .bg-dark h2, .bg-dark h3, .bg-dark h4, .bg-dark h5, .bg-dark h6,
.wed-hom-happy h2, .wed-hom-app h2, .wed-rights p, .ho-ev-latest h4, 
.wed-hom-footer h4, .site-footer h4 {
    color: var(--brand-lemon) !important;
    font-family: 'Poppins', sans-serif !important;
}

.bg-dark p, .wed-hom-happy p, .wed-hom-app p, .ho-ev-latest p, .wed-hom-footer p, .site-footer p {
    color: #ffffff !important;
    opacity: 1 !important;
    font-family: 'Poppins', sans-serif !important;
}

/* Global Poppins Enforcement - Surgical Option (now safe for icons) */
body, h1, h2, h3, h4, h5, h6, p, a, li, input, button, label, select, textarea, div:not(.fa):not(.fas):not(.fab):not(.far) {
    font-family: 'Poppins', sans-serif !important;
}

/* Explicit Restoration of Icon Fonts */
.fa, .fas, .fab, .far, [class*="fa-"] {
    font-family: 'Font Awesome 5 Free', 'FontAwesome', 'Font Awesome 6 Free', sans-serif !important;
    font-weight: 400; /* Regular for FA4 brands or FA5 solid */
}

.fas, .fa-solid { font-weight: 900 !important; }
.fab, .fa-brands { font-weight: 400 !important; }

/* Specific Override for Hero Section Text Legibility */
.slider-con-modern h2 {
    color: #ffffff !important;
    font-size: 38px !important;
}

.slider-con-modern p {
    color: #ffffff !important;
    font-size: 15px !important; /* Reverted to 15px */
    background: rgba(0,0,0,0.4);
    padding: 10px 20px;
    border-radius: 10px;
    display: inline-block;
}

/* Subpage Hero Contrast Refinements - High Specificity Overrides */
section.awards-hero h1, 
section.departments-hero h1, 
section.seminar-section h2, 
section.event-detail-hero h1, 
section.contact-hero h1 {
    color: #ffffff !important;
}

section.awards-hero p, 
section.departments-hero p, 
section.seminar-section p, 
section.event-detail-hero p, 
section.contact-hero p,
section.awards-hero .modern-subheading,
section.departments-hero .modern-subheading,
section.seminar-section .modern-subheading,
section.event-detail-hero .modern-subheading,
section.contact-hero .modern-subheading {
    color: rgba(255, 255, 255, 0.9) !important;
}

.awards-hero .highlight, 
.departments-hero .highlight, 
.seminar-section .highlight, 
.event-detail-hero .highlight, 
.contact-hero .highlight {
    color: var(--brand-lemon) !important;
}

/* Footer Font Size */
.site-footer, .site-footer p, .site-footer li, .site-footer a, .copy-right p {
    font-size: 13px !important;
}


