/*
Theme Name: campusgo-theme
Author:     Anish
Author URI: https://pandeyanish.com.np
Description: Custom theme for CampusGO
Version:    1.0
License:    GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: campusgo
Tags: custom, responsive, wordpress
*/

:root {
  --color-primary:          #1D4ED8;  
  --color-primary-light:    #3B82F6;  
  --color-primary-dark:     #1E40AF;  
  --color-secondary:        #F59E0B;  
  --color-secondary-dark:   #D97706;  
  --color-bg:               #F8FAFC;  
  --color-card:             #FFFFFF; 
  --color-surface-blue:     #EFF6FF;  
  --color-surface-amber:    #FEF3C7;  
  --color-text-primary:     #1E293B;  
  --color-text-secondary:   #64748B;  
  --color-text-on-primary:  #FFFFFF;  
  --color-text-on-secondary:#1E293B; 
  --color-border:           #E2E8F0;  
  --color-border-focus:     #3B82F6;  
  --font-primary:           'Inter', sans-serif;
  --font-size-xs:           0.75rem;   
  --font-size-sm:           0.875rem;  
  --font-size-base:         1rem;     
  --font-size-md:           1.125rem; 
  --font-size-lg:           1.25rem;   
  --font-size-xl:           1.5rem;    
  --font-size-2xl:          2rem;      
  --font-size-3xl:          2.75rem;   
  --font-weight-regular:    400;
  --font-weight-medium:     500;
  --font-weight-semibold:   600;
  --font-weight-bold:       700;
  --line-height-tight:      1.2;  
  --line-height-normal:     1.6; 
  --line-height-loose:      1.8;    
  --space-xs:               0.25rem;   
  --space-sm:               0.5rem;   
  --space-md:               1rem;      
  --space-lg:               1.5rem;     
  --space-xl:               2rem;       
  --space-2xl:              3rem;      
  --space-3xl:              5rem;       
  --radius-sm:              4px;
  --radius-md:              8px;
  --radius-lg:              12px;
  --radius-xl:              16px;
  --radius-2xl:             24px;
  --radius-full:            9999px;   
  --shadow-sm:   0 1px 3px rgba(0,0,0,0.08);
  --shadow-md:   0 4px 12px rgba(0,0,0,0.10);
  --shadow-lg:   0 8px 24px rgba(0,0,0,0.12);
  --shadow-xl:   0 16px 40px rgba(0,0,0,0.14);
  --transition-fast:        0.15s ease;
  --transition-base:        0.25s ease;
  --transition-slow:        0.4s ease;
}

[data-theme="dark"],
.dark-mode {
  --color-primary:          #3B82F6;  
  --color-primary-light:    #60A5FA;   
  --color-primary-dark:     #2563EB;    
  --color-secondary:        #F59E0B;  
  --color-secondary-dark:   #FBBF24; 
  --color-bg:               #0F172A;  
  --color-card:             #1E293B;  /* Dark cards, forms */
  --color-surface-blue:     #1E3A5F;  /* Deep blue surface */
  --color-surface-amber:    #451A03;  /* Deep amber surface */
  --color-text-primary:     #F1F5F9;  /* Light text on dark bg */
  --color-text-secondary:   #94A3B8;  /* Muted light text */
  --color-text-on-primary:  #FFFFFF;  /* Text on blue buttons */
  --color-text-on-secondary:#1E293B;  /* Text on amber buttons */

  /* --- Borders --- */
  --color-border:           #334155;  /* Dark mode borders */
  --color-border-focus:     #60A5FA;  /* Focus ring on dark */

  /* --- Shadows (stronger on dark) --- */
  --shadow-sm:   0 1px 3px  rgba(0,0,0,0.30);
  --shadow-md:   0 4px 12px rgba(0,0,0,0.40);
  --shadow-lg:   0 8px 24px rgba(0,0,0,0.50);
  --shadow-xl:   0 16px 40px rgba(0,0,0,0.60);
}


/* =============================================
   SYSTEM-LEVEL DARK MODE FALLBACK
   (if user has no plugin but OS is dark)
   ============================================= */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {

    --color-primary:          #3B82F6;
    --color-primary-light:    #60A5FA;
    --color-primary-dark:     #2563EB;
    --color-secondary:        #F59E0B;
    --color-secondary-dark:   #FBBF24;

    --color-bg:               #0F172A;
    --color-card:             #1E293B;
    --color-surface-blue:     #1E3A5F;
    --color-surface-amber:    #451A03;

    --color-text-primary:     #F1F5F9;
    --color-text-secondary:   #94A3B8;
    --color-text-on-primary:  #FFFFFF;
    --color-text-on-secondary:#1E293B;

    --color-border:           #334155;
    --color-border-focus:     #60A5FA;

    --shadow-sm:   0 1px 3px  rgba(0,0,0,0.30);
    --shadow-md:   0 4px 12px rgba(0,0,0,0.40);
    --shadow-lg:   0 8px 24px rgba(0,0,0,0.50);
    --shadow-xl:   0 16px 40px rgba(0,0,0,0.60);
  }
}


/* =============================================
   GLOBAL BASE STYLES
   ============================================= */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family:      var(--font-primary);
  font-size:        var(--font-size-base);
  font-weight:      var(--font-weight-regular);
  line-height:      var(--line-height-normal);
  color:            var(--color-text-primary);
  background-color: var(--color-bg);
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
  font-family:  var(--font-primary);
  font-weight:  var(--font-weight-bold);
  line-height:  var(--line-height-tight);
  color:        var(--color-text-primary);
}

h1 { font-size: var(--font-size-3xl); }
h2 { font-size: var(--font-size-2xl); }
h3 { font-size: var(--font-size-xl);  }
h4 { font-size: var(--font-size-lg);  }
h5 { font-size: var(--font-size-md);  }
h6 { font-size: var(--font-size-base);}

p {
  font-size:   var(--font-size-base);
  line-height: var(--line-height-normal);
  color:       var(--color-text-primary);
}

a {
  color:           var(--color-primary);
  text-decoration: none;
  transition:      color var(--transition-fast);
}

a:hover {
  color: var(--color-primary-light);
}

img {
  max-width: 100%;
  display:   block;
}

/* ============================================================
   SITE HEADER
   ============================================================ */
.site-header {
    position: sticky;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    background-color: var(--color-card);
    border-bottom: 1px solid var(--color-border);
    transition: box-shadow var(--transition-base);
}

.site-header.scrolled {
    box-shadow: var(--shadow-md);
}

.header-container {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 24px;
    height: 70px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

/* ============================================================
   LOGO
   ============================================================ */
.logo-section {
    flex-shrink: 0;
}

.logo-link {
    display: flex;
    align-items: center;
    text-decoration: none;
}

.logo-icon img {
        width: auto;
    display: block;
}

.custom-logo-link img,
.custom-logo {
    height: 36px;
    width: auto;
    display: block;
}

/* ============================================================
   MAIN NAVIGATION
   ============================================================ */
.main-menu {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
}

.main-menu .menu {
    display: flex;
    align-items: center;
    gap: 4px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.main-menu .menu > .menu-item > a {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 8px 14px;
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-primary);
    border-radius: var(--radius-md);
    transition: color var(--transition-fast), background-color var(--transition-fast);
    white-space: nowrap;
    text-decoration: none;
}

.main-menu .menu > .menu-item > a:hover {
    color: var(--color-primary);
    background-color: var(--color-surface-blue);
}

.main-menu .menu > .menu-item.current-menu-item > a,
.main-menu .menu > .menu-item.current-menu-ancestor > a {
    color: var(--color-primary);
    font-weight: var(--font-weight-semibold);
    background-color: var(--color-surface-blue);
}

.main-menu .menu-item-has-children > a::after {
    content: '';
    display: inline-block;
    width: 7px;
    height: 7px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg) translateY(-2px);
    transition: transform var(--transition-fast);
    flex-shrink: 0;
}

.main-menu .menu-item-has-children:hover > a::after {
    transform: rotate(225deg) translateY(-2px);
}

.main-menu .menu-item-has-children {
    position: relative;
}

.main-menu .sub-menu {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    min-width: 220px;
    background-color: var(--color-card);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    padding: 6px;
    list-style: none;
    margin: 0;
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: opacity var(--transition-fast), transform var(--transition-fast), visibility var(--transition-fast);
    z-index: 1001;
}

.main-menu .menu-item-has-children:hover > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.main-menu .sub-menu .menu-item > a {
    display: block;
    padding: 9px 14px;
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    color: var(--color-text-primary);
    border-radius: var(--radius-md);
    transition: color var(--transition-fast), background-color var(--transition-fast);
    white-space: nowrap;
    text-decoration: none;
}

.main-menu .sub-menu .menu-item > a:hover {
    color: var(--color-primary);
    background-color: var(--color-surface-blue);
}

.main-menu .sub-menu .sub-menu {
    top: 0;
    left: 100%;
    margin-left: 6px;
}

/* ============================================================
   HEADER RIGHT
   ============================================================ */
.header-right {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
}

/* ============================================================
   DARK MODE TOGGLE
   ============================================================ */
.dark-mode-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    background: var(--color-bg);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-full);
    cursor: pointer;
    color: var(--color-text-secondary);
    transition: background var(--transition-fast), border-color var(--transition-fast),
                color var(--transition-fast), transform var(--transition-fast);
    flex-shrink: 0;
}

.dark-mode-toggle:hover {
    background: var(--color-surface-blue);
    border-color: var(--color-primary);
    color: var(--color-primary);
    transform: rotate(15deg);
}

.dark-mode-toggle .icon-moon { display: none; }
.dark-mode-toggle .icon-sun  { display: block; }

[data-theme="dark"] .dark-mode-toggle .icon-sun  { display: none; }
[data-theme="dark"] .dark-mode-toggle .icon-moon { display: block; }

/* ============================================================
   DESKTOP ACCOUNT — Login / Register buttons
   ============================================================ */
.desktop-account {
    display: flex;
}

.desktop-account .account {
    display: flex;
    align-items: center;
    gap: 8px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.desktop-account .account > .menu-item:first-child > a {
    display: inline-flex;
    align-items: center;
    padding: 8px 18px;
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-primary);
    border: 1.5px solid var(--color-primary);
    border-radius: var(--radius-md);
    text-decoration: none;
    transition: background-color var(--transition-fast);
}

.desktop-account .account > .menu-item:first-child > a:hover {
    background-color: var(--color-surface-blue);
}

.desktop-account .account > .menu-item:nth-child(2) > a {
    display: inline-flex;
    align-items: center;
    padding: 8px 18px;
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-on-primary);
    background-color: var(--color-primary);
    border: 1.5px solid var(--color-primary);
    border-radius: var(--radius-md);
    text-decoration: none;
    transition: background-color var(--transition-fast);
}

.desktop-account .account > .menu-item:nth-child(2) > a:hover {
    background-color: var(--color-primary-dark);
    border-color: var(--color-primary-dark);
}

/* MOBILE MENU — Account buttons at bottom of slide-in menu */
.mobile-menu-account {
    display: none; /* shown only on mobile via media query */
}

/* ============================================================
   HAMBURGER
   ============================================================ */
.menu-toggle {
    display: none;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    width: 38px;
    height: 38px;
    background: var(--color-bg);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    cursor: pointer;
    padding: 8px;
    transition: all var(--transition-fast);
}

.menu-toggle:hover {
    border-color: var(--color-primary);
    background-color: var(--color-surface-blue);
}

.hamburger-bar {
    display: block;
    width: 18px;
    height: 2px;
    background-color: var(--color-text-secondary);
    border-radius: var(--radius-sm);
    transition: transform var(--transition-base), opacity var(--transition-base), width var(--transition-base);
    transform-origin: center;
}

.menu-toggle.active .hamburger-bar:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}

.menu-toggle.active .hamburger-bar:nth-child(2) {
    opacity: 0;
    width: 0;
}

.menu-toggle.active .hamburger-bar:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

/* ============================================================
   BACKDROP
   ============================================================ */
.menu-backdrop {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    backdrop-filter: blur(2px);
    z-index: 997;
    opacity: 0;
    transition: opacity var(--transition-base);
}

.menu-backdrop.active {
    display: block;
    opacity: 1;
}

/* ============================================================
   BREADCRUMB
   ============================================================ */
.breadcrumb-nav {
    background-color: var(--color-surface-blue);
    border-bottom: 1px solid var(--color-border);
    padding: 10px 0;
}

.breadcrumb-container {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 24px;
}

.breadcrumb-list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    list-style: none;
    margin: 0;
    padding: 0;
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
}

.breadcrumb-item {
    display: flex;
    align-items: center;
    color: var(--color-text-secondary);
}

.breadcrumb-item + .breadcrumb-item::before {
    content: '/';
    margin-right: 6px;
    color: var(--color-border);
    font-size: var(--font-size-xs);
}

.breadcrumb-item a {
    color: var(--color-primary);
    font-weight: var(--font-weight-medium);
    transition: color var(--transition-fast);
}

.breadcrumb-item a:hover {
    color: var(--color-primary-light);
    text-decoration: underline;
}

.breadcrumb-item.active {
    color: var(--color-text-primary);
    font-weight: var(--font-weight-medium);
}

/* ============================================================
   RESPONSIVE ≤ 991px  — RIGHT SLIDE-IN MENU
   ============================================================ */
@media (max-width: 991px) {

    .menu-toggle {
        display: flex;
    }

    .desktop-account {
        display: none;
    }

    .main-menu {
        display: block;
        position: fixed;
        top: 0;
        right: 0;
        width: 280px;
        height: 100vh;
        background-color: var(--color-card);
        border-left: 1px solid var(--color-border);
        box-shadow: var(--shadow-xl);
        overflow-y: auto;
        padding-top: 70px;
        transform: translateX(100%);
        transition: transform var(--transition-slow);
        z-index: 998;
    }

    .main-menu.active {
        transform: translateX(0);
    }

    .main-menu .menu {
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        padding: 10px 16px 0;
    }

    .main-menu .menu > .menu-item > a {
        padding: 12px 10px;
        font-size: var(--font-size-sm);
        border-radius: var(--radius-md);
        justify-content: space-between;
    }

    .main-menu .sub-menu {
        position: static;
        opacity: 1;
        visibility: visible;
        transform: none;
        box-shadow: none;
        border: none;
        border-radius: 0;
        background-color: var(--color-bg);
        padding: 0 0 4px 14px;
        margin-top: 2px;
        max-height: 0;
        overflow: hidden;
        transition: max-height var(--transition-base);
    }

    .main-menu .menu-item-has-children.open > .sub-menu {
        max-height: 400px;
    }

    .main-menu .menu-item-has-children:hover > .sub-menu {
        opacity: 1;
        visibility: visible;
        transform: none;
    }

    .main-menu .sub-menu .menu-item > a {
        padding: 10px;
        font-size: var(--font-size-sm);
        border-radius: var(--radius-md);
    }

    /* Account buttons inside the slide-in menu */
    .mobile-menu-account {
        display: block;
        padding: 16px 16px 24px;
        border-top: 1px solid var(--color-border);
        margin-top: 10px;
    }

    .mobile-menu-account .account {
        display: flex;
        flex-direction: column;
        gap: 8px;
        list-style: none;
        margin: 0;
        padding: 0;
    }

    .mobile-menu-account .account > .menu-item:first-child > a {
        display: block;
        padding: 11px 16px;
        font-family: var(--font-primary);
        font-size: var(--font-size-sm);
        font-weight: var(--font-weight-semibold);
        color: var(--color-primary);
        border: 1.5px solid var(--color-primary);
        border-radius: var(--radius-md);
        text-align: center;
        text-decoration: none;
        transition: background-color var(--transition-fast);
    }

    .mobile-menu-account .account > .menu-item:first-child > a:hover {
        background-color: var(--color-surface-blue);
    }

    .mobile-menu-account .account > .menu-item:nth-child(2) > a {
        display: block;
        padding: 11px 16px;
        font-family: var(--font-primary);
        font-size: var(--font-size-sm);
        font-weight: var(--font-weight-semibold);
        color: var(--color-text-on-primary);
        background-color: var(--color-primary);
        border: 1.5px solid var(--color-primary);
        border-radius: var(--radius-md);
        text-align: center;
        text-decoration: none;
        transition: background-color var(--transition-fast);
    }

    .mobile-menu-account .account > .menu-item:nth-child(2) > a:hover {
        background-color: var(--color-primary-dark);
        border-color: var(--color-primary-dark);
    }
}

@media (max-width: 575px) {
    .header-container {
        padding: 0 16px;
        height: 62px;
    }

    .main-menu {
        padding-top: 62px;
    }
}

/* ============================================================
   SITE FOOTER
   ============================================================ */
.site-footer {
    background-color: var(--color-text-primary);
    color: var(--color-text-secondary);
    margin-top: auto;
}

.footer-container {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 24px;
}

/* ============================================================
   FOOTER TOP — 4-column grid
   ============================================================ */
.footer-top {
    display: grid;
    grid-template-columns: 1.8fr 1fr 1fr 1fr;
    gap: 48px;
    padding: 60px 0 48px;
    border-bottom: 1px solid var(--color-border);
}

/* ============================================================
   FOOTER LINKS WRAPPER — desktop invisible, mobile 2-col
   ============================================================ */
.footer-links-wrapper {
    display: contents; /* desktop ma duitai col aafno jagah ma rahcha */
}

/* ============================================================
   FOOTER BRAND
   ============================================================ */
.footer-brand {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.footer-logo img,
.footer-logo .custom-logo {
    width: auto;
    max-width: 220px;
    display: block;
    filter: brightness(0) invert(1);
}

.footer-logo a {
    display: inline-block;
    line-height: 0;
}

.footer-logo-text {
    font-family: var(--font-primary);
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-on-primary);
    text-decoration: none;
    letter-spacing: -0.3px;
    transition: color var(--transition-fast);
}

.footer-logo-text:hover {
    color: var(--color-secondary);
}

.footer-desc {
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    line-height: var(--line-height-loose);
    color: var(--color-text-secondary);
    max-width: 300px;
    margin: 0;
}

/* ── Social Icons ── */
.footer-social {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 4px;
}

.social-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: var(--radius-md);
    background-color: var(--color-border);
    color: var(--color-text-secondary);
    transition: background-color var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);
    text-decoration: none;
}

.social-icon:hover {
    background-color: var(--color-primary);
    color: var(--color-text-on-primary);
    transform: translateY(-2px);
}

.social-icon svg {
    display: block;
    flex-shrink: 0;
}

/* ============================================================
   FOOTER COLUMNS
   ============================================================ */
.footer-col {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.footer-heading {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-on-primary);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin: 0;
}

.footer-links {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.footer-links li a {
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: color var(--transition-fast), padding-left var(--transition-fast);
}

.footer-links li a::before {
    content: '';
    display: inline-block;
    width: 4px;
    height: 4px;
    border-radius: var(--radius-full);
    background-color: var(--color-secondary);
    flex-shrink: 0;
    opacity: 0;
    transition: opacity var(--transition-fast);
}

.footer-links li a:hover {
    color: var(--color-text-on-primary);
    padding-left: 4px;
}

.footer-links li a:hover::before {
    opacity: 1;
}

/* ============================================================
   FOOTER CONTACT LIST
   ============================================================ */
.footer-contact {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.footer-contact-item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
}

.footer-contact-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: var(--radius-md);
    background-color: var(--color-border);
    color: var(--color-secondary);
    flex-shrink: 0;
    margin-top: 1px;
}

.footer-contact-icon svg {
    display: block;
}

.footer-contact-item a {
    color: var(--color-text-secondary);
    text-decoration: none;
    transition: color var(--transition-fast);
    line-height: var(--line-height-normal);
}

.footer-contact-item a:hover {
    color: var(--color-text-on-primary);
}

.footer-contact-item span:not(.footer-contact-icon) {
    line-height: var(--line-height-normal);
}

/* ============================================================
   FOOTER BOTTOM
   ============================================================ */
.footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    padding: 20px 0;
}

.footer-bottom p {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    color: var(--color-text-secondary);
    margin: 0;
}

.footer-bottom-links {
    display: flex;
    align-items: center;
    gap: 20px;
}

.footer-bottom-links a {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    color: var(--color-text-secondary);
    text-decoration: none;
    transition: color var(--transition-fast);
}

.footer-bottom-links a:hover {
    color: var(--color-text-on-primary);
}

/* ============================================================
   BACK TO TOP BUTTON
   ============================================================ */
.back-to-top {
    position: fixed;
    bottom: 28px;
    right: 28px;
    width: 44px;
    height: 44px;
    border-radius: var(--radius-lg);
    background-color: var(--color-primary);
    color: var(--color-text-on-primary);
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: var(--shadow-lg);
    opacity: 0;
    visibility: hidden;
    transform: translateY(12px);
    transition: opacity var(--transition-base), visibility var(--transition-base),
                transform var(--transition-base), background-color var(--transition-fast),
                box-shadow var(--transition-fast);
    z-index: 999;
}

.back-to-top.visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.back-to-top:hover {
    background-color: var(--color-primary-light);
    box-shadow: var(--shadow-xl);
    transform: translateY(-2px);
}

.back-to-top svg {
    display: block;
    flex-shrink: 0;
}

/* ============================================================
   DARK MODE OVERRIDES
   ============================================================ */
[data-theme="dark"] .site-footer,
.dark-mode .site-footer {
    background-color: #0a0f1e;
    border-top: 1px solid var(--color-border);
}

[data-theme="dark"] .footer-top,
.dark-mode .footer-top {
    border-bottom-color: var(--color-border);
}

[data-theme="dark"] .footer-logo img,
[data-theme="dark"] .footer-logo .custom-logo,
.dark-mode .footer-logo img,
.dark-mode .footer-logo .custom-logo {
    filter: brightness(0) invert(1);
}

[data-theme="dark"] .social-icon,
.dark-mode .social-icon {
    background-color: var(--color-card);
}

[data-theme="dark"] .footer-contact-icon,
.dark-mode .footer-contact-icon {
    background-color: var(--color-card);
}

@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) .site-footer {
        background-color: #0a0f1e;
        border-top: 1px solid var(--color-border);
    }

    :root:not([data-theme="light"]) .social-icon {
        background-color: var(--color-card);
    }

    :root:not([data-theme="light"]) .footer-contact-icon {
        background-color: var(--color-card);
    }
}

/* ============================================================
   RESPONSIVE — TABLET (≤ 991px)
   ============================================================ */
@media (max-width: 991px) {
    .footer-top {
        grid-template-columns: 1fr 1fr;
        gap: 36px;
        padding: 48px 0 40px;
    }

    .footer-brand {
        grid-column: 1 / -1;
    }

    .footer-desc {
        max-width: 100%;
    }
}

/* ============================================================
   RESPONSIVE — MOBILE (≤ 575px)
   ============================================================ */
@media (max-width: 575px) {
    .footer-container {
        padding: 0 16px;
    }

    .footer-top {
        grid-template-columns: 1fr;
        gap: 28px;
        padding: 40px 0 32px;
    }

    .footer-brand {
        grid-column: auto;
    }

    /* ── Wrapper lai 2-column grid banaucha mobile ma ── */
    .footer-links-wrapper {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 16px;
    }

    /* ── Har link button style ── */
    .footer-links {
        display: flex;
        flex-direction: column;
        gap: 10px;
    }

    .footer-links li a {
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 12px 8px;
        border: 1px solid var(--color-border);
        border-radius: var(--radius-md);
        background-color: rgba(255, 255, 255, 0.05);
        text-align: center;
        font-size: var(--font-size-sm);
        transition: background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
    }

    .footer-links li a::before {
        display: none;
    }

    .footer-links li a:hover {
        padding-left: 8px;
        background-color: var(--color-primary);
        color: var(--color-text-on-primary);
        border-color: var(--color-primary);
    }

    .footer-bottom {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
        padding: 16px 0;
    }

    .footer-bottom-links {
        gap: 14px;
    }

    .back-to-top {
        bottom: 20px;
        right: 20px;
        width: 40px;
        height: 40px;
    }
}
@media (max-width: 575px) {
    .footer-heading {
        text-align: center;
    }
}

/*  FRONT PAGE STYLES — front-page.php */
.container {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 24px;
}

.text-center {
    text-align: center;
}

/* ── Section Header (centered) ── */
.section-header {
    margin-bottom: 48px;
}

.section-header.text-center {
    max-width: 680px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 48px;
}

/* ── Section Header Row (left + right button) ── */
.section-header-row {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 40px;
    flex-wrap: wrap;
}

.section-title {
    font-family: var(--font-primary);
    font-size: var(--font-size-2xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    line-height: var(--line-height-tight);
    margin: 10px 0 12px;
    letter-spacing: -0.4px;
}

.section-subtitle {
    font-family: var(--font-primary);
    font-size: var(--font-size-base);
    color: var(--color-text-secondary);
    line-height: var(--line-height-loose);
    margin: 0;
}

/* ── Badges ── */
.badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 14px;
    border-radius: var(--radius-full);
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-semibold);
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.badge-green {
    background-color: #DCFCE7;
    color: #16A34A;
}

.badge-navy {
    background-color: var(--color-surface-blue);
    color: var(--color-primary);
}

.badge-amber {
    background-color: var(--color-surface-amber);
    color: var(--color-secondary-dark);
}

/* ── Buttons ── */
.btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 11px 22px;
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    border-radius: var(--radius-md);
    text-decoration: none;
    transition: background-color var(--transition-fast), color var(--transition-fast),
                border-color var(--transition-fast), box-shadow var(--transition-fast),
                transform var(--transition-fast);
    cursor: pointer;
    border: 1.5px solid transparent;
    white-space: nowrap;
    line-height: 1;
}

.btn-primary {
    background-color: var(--color-primary);
    color: var(--color-text-on-primary);
    border-color: var(--color-primary);
    box-shadow: var(--shadow-md);
}

.btn-primary:hover {
    background-color: var(--color-primary-light);
    border-color: var(--color-primary-light);
    box-shadow: var(--shadow-lg);
    transform: translateY(-1px);
    color: var(--color-text-on-primary);
}

.btn-outline {
    background-color: transparent;
    color: var(--color-primary);
    border-color: var(--color-primary);
}

.btn-outline:hover {
    background-color: var(--color-surface-blue);
    border-color: var(--color-primary-light);
    color: var(--color-primary-light);
    transform: translateY(-1px);
}

.btn svg {
    flex-shrink: 0;
}

/* ============================================================
   ANNOUNCEMENT BAR
   ============================================================ */
.announcement-bar {
    display: flex;
    align-items: center;
    background-color: var(--color-text-primary);
    color: var(--color-border);
    overflow: hidden;
    height: 40px;
}

.announcement-label {
    display: flex;
    align-items: center;
    gap: 6px;
    background-color: var(--color-secondary);
    color: var(--color-text-primary);
    padding: 0 18px;
    height: 100%;
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-bold);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    white-space: nowrap;
    flex-shrink: 0;
}

.announcement-label svg {
    flex-shrink: 0;
}

.announcement-track-wrapper {
    flex: 1;
    overflow: hidden;
    position: relative;
}

.announcement-track-wrapper::before,
.announcement-track-wrapper::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    width: 40px;
    z-index: 1;
    pointer-events: none;
}

.announcement-track-wrapper::before {
    left: 0;
    background: linear-gradient(to right, var(--color-bg), transparent);
}

.announcement-track-wrapper::after {
    right: 0;
    background: linear-gradient(to left, var(--color-bg), transparent);
}

.announcement-track {
    display: flex;
    align-items: center;
    animation: marquee 30s linear infinite;
    white-space: nowrap;
}

.announcement-track:hover {
    animation-play-state: paused;
}

@keyframes marquee {
    0%   { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

.announcement-item {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 0 28px;
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    color: var(--color-border);
    text-decoration: none;
    transition: color var(--transition-fast);
    white-space: nowrap;
}

.announcement-item:hover {
    color: var(--color-secondary);
}

.announcement-dot {
    display: inline-block;
    width: 5px;
    height: 5px;
    border-radius: var(--radius-full);
    background-color: var(--color-secondary);
    flex-shrink: 0;
}

/* ============================================================
   HERO SECTION
   ============================================================ */
.hero-section {
    background-color: var(--color-bg);
    padding: 72px 0 80px;
    overflow: hidden;
    position: relative;
}

.hero-section::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(29, 78, 216, 0.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(29, 78, 216, 0.03) 1px, transparent 1px);
    background-size: 40px 40px;
    pointer-events: none;
}
[data-theme="dark"] .hero-section::before,
.dark-mode .hero-section::before {
    background-image:
        linear-gradient(rgba(59, 130, 246, 0.07) 1px, transparent 1px),
        linear-gradient(90deg, rgba(59, 130, 246, 0.07) 1px, transparent 1px);
}

.hero-container {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 24px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 64px;
    position: relative;
    z-index: 1;
}

/* ── Hero Left ── */
.hero-left {
    order: 1;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background-color: var(--color-surface-blue);
    color: var(--color-primary);
    border: 1px solid #BFDBFE;
    border-radius: var(--radius-full);
    padding: 6px 16px;
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-semibold);
    width: fit-content;
    
}
[data-theme="dark"] .hero-badge,
.dark-mode .hero-badge {
    border-color: rgba(96, 165, 250, 0.25);
}
.hero-badge-dot {
    width: 8px;
    height: 8px;
    border-radius: var(--radius-full);
    background-color: var(--color-primary);
    display: inline-block;
    animation: pulse-dot 2s ease-in-out infinite;
}

@keyframes pulse-dot {
    0%, 100% { opacity: 1; transform: scale(1); }
    50%       { opacity: 0.5; transform: scale(0.8); }
}

.hero-title {
    font-family: var(--font-primary);
    font-size: 52px;
    font-weight: 800;
    color: var(--color-text-primary) !important;
    line-height: var(--line-height-tight);
    letter-spacing: -0.8px;
    margin: 0;
}

.hero-title-accent {
    color: var(--color-primary);
}

.hero-description {
    font-family: var(--font-primary);
    font-size: var(--font-size-md);
    color: var(--color-text-secondary);
    line-height: 1.75;
    margin: 0;
    max-width: 500px;
}

/* ── Hero Search ── */
.hero-search {
    width: 100%;
}

.hero-search-inner {
    display: flex;
    align-items: center;
    background-color: var(--color-card);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: 6px 6px 6px 14px;
    gap: 10px;
    box-shadow: var(--shadow-sm);
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.hero-search-inner:focus-within {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(29, 78, 216, 0.12);
}

.hero-search-icon {
    color: var(--color-text-secondary);
    flex-shrink: 0;
}

.hero-search-inner input[type="search"] {
    flex: 1;
    border: none;
    outline: none;
    background: transparent;
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    color: var(--color-text-primary);
    padding: 6px 0;
}

.hero-search-inner input[type="search"]::placeholder {
    color: var(--color-text-secondary);
}

.hero-search-btn {
    background-color: var(--color-primary);
    color: var(--color-text-on-primary);
    border: none;
    border-radius: var(--radius-md);
    padding: 9px 20px;
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    cursor: pointer;
    transition: background-color var(--transition-fast);
    white-space: nowrap;
}

.hero-search-btn:hover {
    background-color: var(--color-primary-light);
}

/* ── Hero Buttons ── */
.hero-buttons {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
}

/* ── Hero Stats ── */
.hero-stats {
    display: flex;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
}

.hero-stat {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.hero-stat strong {
    font-family: var(--font-primary);
    font-size: var(--font-size-xl);
    font-weight: 800;
    color: var(--color-primary);
    line-height: 1;
}

.hero-stat span {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    color: var(--color-text-secondary);
    font-weight: var(--font-weight-medium);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.hero-stat-divider {
    width: 1px;
    height: 36px;
    background-color: var(--color-border);
    flex-shrink: 0;
}

/* ── Hero Right ── */
.hero-right {
    order: 2;
    display: flex;
    align-items: center;
    justify-content: center;
}

.hero-image-wrapper {
    position: relative;
    width: 100%;
    max-width: 520px;
}

.hero-image-wrapper img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: var(--radius-2xl);
}

.hero-float-card {
    position: absolute;
    display: flex;
    align-items: center;
    gap: 10px;
    background-color: var(--color-card);
    border-radius: var(--radius-xl);
    padding: 12px 16px;
    box-shadow: var(--shadow-lg);
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    min-width: 150px;
    animation: float-card 3s ease-in-out infinite;
}

.hero-float-card svg {
    color: var(--color-primary);
    flex-shrink: 0;
}
[data-theme="dark"] .hero-float-card,
.dark-mode .hero-float-card {
    border: 1px solid var(--color-border);
}
.hero-float-card div {
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.hero-float-card strong {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    line-height: 1;
}

.hero-float-card span {
    font-size: 11px;
    color: var(--color-text-secondary);
}

.hero-float-card-1 {
    bottom: 28px;
    left: -24px;
    animation-delay: 0s;
}

.hero-float-card-2 {
    top: 28px;
    right: -24px;
    animation-delay: 1.5s;
}

@keyframes float-card {
    0%, 100% { transform: translateY(0); }
    50%       { transform: translateY(-8px); }
}

/* ============================================================
   FACULTY SECTION
   ============================================================ */
.faculty-section {
    padding: 80px 0;
    background-color: var(--color-card);
}

.faculty-cards-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.faculty-card {
    display: flex;
    flex-direction: column;
    background-color: var(--color-card);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-xl);
    overflow: hidden;
    text-decoration: none;
    color: var(--color-text-primary);
    transition: border-color var(--transition-base), box-shadow var(--transition-base),
                transform var(--transition-base);
}

.faculty-card:hover {
    border-color: var(--color-primary);
    box-shadow: var(--shadow-lg);
    transform: translateY(-4px);
}

/* ── Top row ── */
.faculty-card-top {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 20px 22px 16px;
    background-color: var(--color-surface-blue);
    justify-content: center;
}

.faculty-card-icon {
    width: 48px;
    height: 48px;
    border-radius: var(--radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.faculty-icon-csit {
    background-color: var(--color-surface-blue);
    color: var(--color-primary);
}

.faculty-icon-bit {
    background-color: #F0FDF4;
    color: #16A34A;
}

.faculty-icon-bca {
    background-color: var(--color-surface-amber);
    color: var(--color-secondary-dark);
}

.faculty-card-title {
    font-family: var(--font-primary);
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin: 0;
}

/* ── Body ── */
.faculty-card-body {
    padding: 22px 14px;
    flex: 1;
    justify-items: center;
}

.faculty-card-body p {
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    margin: 0 0 12px;
    line-height: var(--line-height-normal);
}

/* ── Meta tags ── */
.faculty-card-meta {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.faculty-card-meta span {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary);
    background-color: var(--color-bg);
    border-radius: var(--radius-full);
    padding: 3px 10px;
}

/* ── Arrow / CTA ── */
.faculty-card-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 14px 22px;
    border-top: 1px solid var(--color-border);
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-primary);
    transition: background-color var(--transition-fast);
    width: 100%;
}

.faculty-card-arrow svg {
    transition: transform var(--transition-fast);
}

.faculty-card:hover .faculty-card-arrow {
    background-color: var(--color-surface-blue);
}

.faculty-card:hover .faculty-card-arrow svg {
    transform: translateX(4px);
}

/* ============================================================
   LATEST ARTICLES SECTION
   ============================================================ */
.homepage-articles {
    padding: 80px 0;
    background-color: var(--color-bg);
}

.articles-grid {
    display: grid;
    gap: 24px;
}

.homepage-articles-grid {
    grid-template-columns: repeat(3, 1fr);
}

.article-card {
    display: flex;
    flex-direction: column;
    background-color: var(--color-card);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-xl);
    overflow: hidden;
    text-decoration: none;
    color: var(--color-text-primary);
    transition: border-color var(--transition-base), box-shadow var(--transition-base),
                transform var(--transition-base);
}

.article-card:hover {
    border-color: var(--color-primary);
    box-shadow: var(--shadow-lg);
    transform: translateY(-4px);
}

.article-image {
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background-color: var(--color-surface-blue);
}

.article-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform var(--transition-slow);
}

.article-card:hover .article-image img {
    transform: scale(1.04);
}

.card-image-badges {
    position: absolute;
    top: 12px;
    left: 12px;
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.image-badge {
    font-family: var(--font-primary);
    font-size: 11px;
    font-weight: var(--font-weight-semibold);
    padding: 3px 10px;
    border-radius: var(--radius-full);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.faculty-badge-csit  { background-color: var(--color-surface-blue);  color: var(--color-primary); }
.faculty-badge-bit   { background-color: #F0FDF4; color: #16A34A; }
.faculty-badge-bca   { background-color: var(--color-surface-amber); color: var(--color-secondary-dark); }

.article-content {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 20px 22px 22px;
    flex: 1;
}

.article-meta {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
}

.article-date,
.article-read-time {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    color: var(--color-text-secondary);
    font-weight: var(--font-weight-medium);
}

.article-date svg,
.article-read-time svg {
    flex-shrink: 0;
    color: var(--color-text-secondary);
}

.article-title {
    font-family: var(--font-primary);
    font-size: var(--font-size-md);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    line-height: 1.4;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.article-excerpt {
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    line-height: 1.65;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    flex: 1;
}

.article-excerpt p {
    margin: 0;
}

.article-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: auto;
    padding-top: 14px;
    border-top: 1px solid var(--color-bg);
}

.article-author {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    color: var(--color-text-secondary);
    font-weight: var(--font-weight-medium);
}

.author-avatar {
    width: 24px !important;
    height: 24px !important;
    border-radius: var(--radius-full);
    object-fit: cover;
    flex-shrink: 0;
}

.read-more-btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--color-primary);
    transition: gap var(--transition-fast);
}

.article-card:hover .read-more-btn {
    gap: 8px;
}

/* ============================================================
   WHY CHOOSE US SECTION
   ============================================================ */
.why-choose-section {
    padding: 80px 0;
    background-color: var(--color-card);
}

.why-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
}

.why-card {
    position: relative;
    background-color: var(--color-bg);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-xl);
    padding: 28px 24px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    transition: border-color var(--transition-base), box-shadow var(--transition-base),
                transform var(--transition-base);
    overflow: hidden;
}

.why-card:hover {
    border-color: var(--color-primary);
    box-shadow: var(--shadow-lg);
    transform: translateY(-3px);
}

.why-card-number {
    position: absolute;
    top: 18px;
    right: 20px;
    font-family: var(--font-primary);
    font-size: 36px;
    font-weight: 800;
    color: var(--color-border);
    line-height: 1;
    letter-spacing: -1px;
    user-select: none;
}

.why-card:hover .why-card-number {
    color: #BFDBFE;
}

.why-card-icon {
    width: 52px;
    height: 52px;
    background-color: var(--color-surface-blue);
    border-radius: var(--radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-primary);
    transition: background-color var(--transition-fast), color var(--transition-fast);
    flex-shrink: 0;
}

.why-card:hover .why-card-icon {
    background-color: var(--color-primary);
    color: var(--color-text-on-primary);
}

.why-card h3 {
    font-family: var(--font-primary);
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin: 0;
    line-height: 1.4;
}

.why-card p {
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    line-height: 1.65;
    margin: 0;
}

.contribute-cta-section {
    padding: 80px 24px;
    background-color: var(--color-bg);
}

.contribute-cta-inner {
    max-width: 780px;
    margin: 0 auto;
    background: linear-gradient(135deg, #1e3a8a 0%, var(--color-primary) 100%);
    border-radius: var(--radius-2xl);
    padding: 64px 48px;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.cta-deco {
    position: absolute;
    border-radius: var(--radius-full);
    pointer-events: none;
}

.cta-deco-1 {
    width: 280px;
    height: 280px;
    background: rgba(255, 255, 255, 0.04);
    top: -80px;
    right: -80px;
}

.cta-deco-2 {
    width: 180px;
    height: 180px;
    background: rgba(245, 158, 11, 0.10);
    bottom: -60px;
    left: -40px;
}

.contribute-cta-content {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.contribute-cta-content h2 {
    font-family: var(--font-primary);
    font-size: var(--font-size-2xl);
    font-weight: 800;
    color: var(--color-text-on-primary);
    line-height: var(--line-height-tight);
    margin: 0 0 14px;
    letter-spacing: -0.4px;
}

.contribute-cta-content p {
    font-family: var(--font-primary);
    font-size: var(--font-size-base);
    color: rgba(255, 255, 255, 0.75);
    line-height: var(--line-height-loose);
    margin: 0 0 32px;
    max-width: 500px;
}

.contribute-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background-color: var(--color-secondary);
    color: var(--color-text-on-secondary);
    font-family: var(--font-primary);
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-bold);
    padding: 14px 32px;
    border-radius: var(--radius-lg);
    text-decoration: none;
    box-shadow: var(--shadow-md);
    transition: background-color var(--transition-fast), box-shadow var(--transition-fast),
                transform var(--transition-fast);
    margin-bottom: 28px;
}

.contribute-btn:hover {
    background-color: var(--color-secondary-dark);
    box-shadow: var(--shadow-lg);
    transform: translateY(-2px);
    color: var(--color-text-on-secondary);
}

.contribute-btn svg {
    flex-shrink: 0;
}

.cta-trust-row {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
    flex-wrap: wrap;
}

.cta-trust-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    color: rgba(255, 255, 255, 0.70);
    font-weight: var(--font-weight-medium);
}

.cta-trust-item svg {
    flex-shrink: 0;
}
/* ============================================================
   RESPONSIVE — TABLET (≤ 991px)
   ============================================================ */
@media (max-width: 991px) {

    .hero-container {
        grid-template-columns: 1fr;
        gap: 48px;
        text-align: center;
    }

    .hero-title {
        font-size: 40px;
    }

    .hero-description {
        max-width: 100%;
    }

    .hero-badge {
        margin: 0 auto;
    }

    .hero-buttons {
        justify-content: center;
    }

    .hero-stats {
        justify-content: center;
    }

    .hero-image-wrapper {
        max-width: 420px;
        margin: 0 auto;
    }

    .hero-float-card-1 { left: 0; }
    .hero-float-card-2 { right: 0; }

    .faculty-cards-grid {
        grid-template-columns: 1fr 1fr;
    }

    .homepage-articles-grid {
        grid-template-columns: 1fr 1fr;
    }

    .why-grid {
        grid-template-columns: 1fr 1fr;
    }

    .section-header-row {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* ============================================================
   RESPONSIVE — MOBILE (≤ 575px)
   ============================================================ */
@media (max-width: 575px) {

    .container {
        padding: 0 16px;
    }

    .hero-section {
        padding: 48px 0 56px;
    }

    .hero-container {
        padding: 0 16px;
        gap: 36px;
    }

    .hero-title {
        font-size: 32px;
    }

    .hero-description {
        font-size: var(--font-size-sm);
    }

    .hero-buttons {
        flex-direction: column;
        align-items: stretch;
    }

    .hero-buttons .btn {
        justify-content: center;
    }

    .hero-search-inner {
        flex-wrap: wrap;
    }

    .hero-search-btn {
        width: 100%;
        justify-content: center;
    }

    .faculty-cards-grid {
        grid-template-columns: 1fr;
    }

    .homepage-articles-grid {
        grid-template-columns: 1fr;
    }

    .why-grid {
        grid-template-columns: 1fr;
    }

    .section-title {
        font-size: var(--font-size-xl);
    }

    .contribute-cta-inner {
        padding: 40px 24px;
        border-radius: var(--radius-xl);
    }

    .contribute-cta-content h2 {
        font-size: var(--font-size-xl);
    }

    .cta-trust-row {
        flex-direction: column;
        gap: 12px;
    }

    .announcement-label {
        padding: 0 12px;
        font-size: 11px;
    }
}


/* 404 page */
.error-page-wrapper {
    min-height: calc(100vh - 70px);
    background-color: var(--color-bg);
    display: flex;
    align-items: center;
    padding: 72px 24px;
}

.error-container {
    max-width: 1100px;
    margin: 0 auto;
    width: 100%;
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 64px;
}

.error-content {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.error-badge {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    background-color: #FEF2F2;
    color: #DC2626;
    border: 1px solid #FECACA;
    border-radius: var(--radius-full);
    padding: 6px 14px;
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-semibold);
    width: fit-content;
}

.error-badge svg {
    flex-shrink: 0;
}

.error-code {
    font-family: var(--font-primary);
    font-size: 100px;
    font-weight: 800;
    color: var(--color-primary);
    line-height: 1;
    letter-spacing: -4px;
    margin: 0;
    opacity: 0.15;
    user-select: none;
    position: absolute;
    pointer-events: none;
}

.error-content {
    position: relative;
}

.error-title {
    font-family: var(--font-primary);
    font-size: 36px;
    font-weight: 800;
    color: var(--color-text-primary);
    line-height: var(--line-height-tight);
    margin: 0;
    letter-spacing: -0.5px;
}

.error-text {
    font-family: var(--font-primary);
    font-size: var(--font-size-base);
    color: var(--color-text-secondary);
    line-height: 1.75;
    margin: 0;
    max-width: 480px;
}

.error-search-box {
    display: flex;
    align-items: center;
    background-color: var(--color-card);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
    max-width: 480px;
}

.error-search-box:focus-within {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(29, 78, 216, 0.12);
}

.error-search-box input[type="text"] {
    flex: 1;
    border: none;
    outline: none;
    background: transparent;
    padding: 13px 16px;
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    color: var(--color-text-primary);
}

.error-search-box input[type="text"]::placeholder {
    color: var(--color-text-secondary);
}

.error-search-box button {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--color-primary);
    color: var(--color-text-on-primary);
    border: none;
    width: 48px;
    height: 48px;
    flex-shrink: 0;
    cursor: pointer;
    transition: background-color var(--transition-fast);
}

.error-search-box button:hover {
    background-color: var(--color-primary-light);
}

.error-search-box button svg {
    flex-shrink: 0;
}

.error-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.quick-help {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding-top: 4px;
    border-top: 1px solid var(--color-border);
}

.quick-help-title {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-secondary);
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.help-tags {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.help-tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 14px;
    background-color: var(--color-card);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-primary);
    text-decoration: none;
    transition: border-color var(--transition-fast), background-color var(--transition-fast),
                color var(--transition-fast), transform var(--transition-fast);
}

.help-tag svg {
    color: var(--color-text-secondary);
    flex-shrink: 0;
    transition: color var(--transition-fast);
}

.help-tag:hover {
    border-color: var(--color-primary);
    background-color: var(--color-surface-blue);
    color: var(--color-primary);
    transform: translateY(-1px);
}

.help-tag:hover svg {
    color: var(--color-primary);
}

.error-visual {
    display: flex;
    flex-direction: column;
    gap: 28px;
    align-items: center;
}

.error-illustration {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 24px 0;
}

.error-number-visual {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    position: relative;
    z-index: 1;
}

.big-4 {
    font-family: var(--font-primary);
    font-size: 110px;
    font-weight: 900;
    color: var(--color-primary);
    line-height: 1;
    letter-spacing: -4px;
    user-select: none;
    opacity: 0.9;
}

.zero-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    animation: spin-slow 12s linear infinite;
}

@keyframes spin-slow {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

.float-icon {
    position: absolute;
    width: 48px;
    height: 48px;
    border-radius: var(--radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: var(--shadow-md);
    animation: float-icon-anim 3s ease-in-out infinite;
}

.float-icon svg {
    flex-shrink: 0;
}

.float-icon-1 {
    background-color: var(--color-surface-blue);
    color: var(--color-primary);
    top: 10px;
    left: 10%;
    animation-delay: 0s;
}

.float-icon-2 {
    background-color: var(--color-surface-amber);
    color: var(--color-secondary-dark);
    top: 10px;
    right: 10%;
    animation-delay: 0.8s;
}

.float-icon-3 {
    background-color: #F0FDF4;
    color: #16A34A;
    bottom: 10px;
    left: 10%;
    animation-delay: 1.6s;
}

.float-icon-4 {
    background-color: #FDF2F8;
    color: #9333EA;
    bottom: 10px;
    right: 10%;
    animation-delay: 2.4s;
}

@keyframes float-icon-anim {
    0%, 100% { transform: translateY(0); }
    50%       { transform: translateY(-10px); }
}

.quick-access-title {
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin: 0;
    text-align: center;
}

.quick-links-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
    width: 100%;
    max-width: 420px;
}

.quick-link-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 20px 16px;
    background-color: var(--color-card);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-xl);
    text-decoration: none;
    text-align: center;
    transition: border-color var(--transition-base), box-shadow var(--transition-base),
                transform var(--transition-base);
}

.quick-link-card:hover {
    border-color: var(--color-primary);
    box-shadow: var(--shadow-lg);
    transform: translateY(-3px);
}

.quick-link-icon {
    width: 48px;
    height: 48px;
    border-radius: var(--radius-lg);
    background-color: var(--color-surface-blue);
    color: var(--color-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color var(--transition-fast), color var(--transition-fast);
    flex-shrink: 0;
}

.quick-link-card:hover .quick-link-icon {
    background-color: var(--color-primary);
    color: var(--color-text-on-primary);
}

.quick-link-card h4 {
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin: 0;
    line-height: 1;
}

.quick-link-card span {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    color: var(--color-text-secondary);
    line-height: 1.3;
}

@media (max-width: 991px) {
    .error-page-wrapper {
        padding: 56px 24px;
        align-items: flex-start;
    }

    .error-container {
        grid-template-columns: 1fr;
        gap: 48px;
    }

    .error-visual {
        order: -1;
    }

    .error-title {
        font-size: 28px;
    }

    .error-search-box {
        max-width: 100%;
    }

    .error-text {
        max-width: 100%;
    }

    .big-4 {
        font-size: 80px;
    }

    .zero-icon svg {
        width: 90px;
        height: 90px;
    }

    .quick-links-grid {
        max-width: 100%;
        grid-template-columns: repeat(4, 1fr);
    }
}

@media (max-width: 575px) {
    .error-page-wrapper {
        padding: 40px 16px;
    }

    .error-container {
        gap: 36px;
    }

    .error-title {
        font-size: 24px;
    }

    .error-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .error-actions .btn {
        justify-content: center;
    }

    .big-4 {
        font-size: 60px;
    }

    .zero-icon svg {
        width: 70px;
        height: 70px;
    }

    .quick-links-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .float-icon {
        width: 38px;
        height: 38px;
        border-radius: var(--radius-md);
    }

    .float-icon svg {
        width: 18px;
        height: 18px;
    }

    .help-tags {
        gap: 6px;
    }

    .help-tag {
        font-size: 12px;
        padding: 6px 11px;
    }
}

/* article */
.article-archive-wrapper {
    background-color: var(--color-bg);
    padding: 56px 0 80px;
    min-height: 60vh;
}

.archive-page-header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
    margin-bottom: 40px;
    flex-wrap: wrap;
    text-align: center;
}

.archive-header-text {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}

.archive-title {
    font-family: var(--font-primary);
    font-size: 38px;
    font-weight: 800;
    color: var(--color-text-primary);
    line-height: var(--line-height-tight);
    letter-spacing: -0.5px;
    margin: 0;
}

.archive-subtitle {
    font-family: var(--font-primary);
    font-size: var(--font-size-base);
    color: var(--color-text-secondary);
    line-height: var(--line-height-loose);
    margin: 0;
    max-width: 580px;
}

.faculty-filter-wrapper {
    margin-bottom: 36px;
    display: flex;
    justify-content: center;
}

.filter-buttons {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: center;
    padding: 6px;
    background-color: var(--color-card);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-lg);
    width: fit-content;
}

.filter-btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 18px;
    border: none;
    border-radius: var(--radius-md);
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary);
    background-color: transparent;
    cursor: pointer;
    transition: background-color var(--transition-fast), color var(--transition-fast);
    white-space: nowrap;
}

.filter-btn:hover {
    background-color: var(--color-surface-blue);
    color: var(--color-primary);
}

.filter-btn.active {
    background-color: var(--color-primary);
    color: var(--color-text-on-primary);
    font-weight: var(--font-weight-semibold);
    box-shadow: var(--shadow-sm);
}

.filter-btn.active:hover {
    background-color: var(--color-primary-light);
    color: var(--color-text-on-primary);
}

.filter-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    border-radius: var(--radius-full);
    font-family: var(--font-primary);
    font-size: 11px;
    font-weight: var(--font-weight-bold);
    background-color: rgba(100, 116, 139, 0.15);
    color: inherit;
    line-height: 1;
    transition: background-color var(--transition-fast);
}

.filter-btn.active .filter-count {
    background-color: rgba(255, 255, 255, 0.25);
    color: var(--color-text-on-primary);
}

.articles-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.article-archive-wrapper .article-card {
    height: 100%;
}

.article-archive-wrapper .article-title {
    font-family: var(--font-primary);
    font-size: var(--font-size-md);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    line-height: 1.4;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.no-articles {
    grid-column: 1 / -1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 80px 24px;
    background-color: var(--color-card);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-xl);
    gap: 16px;
}

.no-articles-icon {
    width: 88px;
    height: 88px;
    border-radius: var(--radius-2xl);
    background-color: var(--color-surface-blue);
    color: var(--color-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 4px;
}

.no-articles h3 {
    font-family: var(--font-primary);
    font-size: var(--font-size-xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin: 0;
}

.no-articles p {
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    margin: 0;
    max-width: 360px;
    line-height: var(--line-height-normal);
}

@media (max-width: 991px) {
    .article-archive-wrapper {
        padding: 40px 0 64px;
    }

    .articles-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .archive-title {
        font-size: 30px;
    }

    .filter-buttons {
        width: auto;
        justify-content: center;
    }
}

@media (max-width: 575px) {
    .article-archive-wrapper {
        padding: 32px 0 56px;
    }

    .archive-title {
        font-size: 26px;
    }

    .archive-subtitle {
        font-size: var(--font-size-sm);
    }

    .articles-grid {
        grid-template-columns: 1fr;
    }

    .filter-buttons {
        border-radius: var(--radius-lg);
        gap: 4px;
        padding: 4px;
    }

    .filter-btn {
        padding: 7px 14px;
        font-size: var(--font-size-xs);
    }
}

/*  SINGLE Article page */ 
.reading-progress-bar {
    position: fixed;
    top: 0;
    left: 0;
    width: 0%;
    height: 3px;
    background: linear-gradient(90deg, var(--color-primary), var(--color-secondary));
    z-index: 9999;
    transition: width 0.1s linear;
    border-radius: 0 2px 2px 0;
}

.single-article-wrapper {
    background-color: var(--color-bg);
    padding: 40px 0 80px;
    overflow: visible !important;
}

.single-article-container {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 var(--space-lg);
    display: grid;
    grid-template-columns: 240px 1fr 280px;
    gap: var(--space-2xl);
    align-items: flex-start;
    overflow: visible !important;
}

.toc-sidebar {
    position: sticky;
    top: 90px;
    max-height: calc(100vh - 110px);
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--color-border) transparent;
}

.toc-sidebar::-webkit-scrollbar {
    width: 4px;
}

.toc-sidebar::-webkit-scrollbar-track {
    background: transparent;
}

.toc-sidebar::-webkit-scrollbar-thumb {
    background-color: var(--color-border);
    border-radius: var(--radius-sm);
}

.toc-sidebar-inner {
    background-color: var(--color-card);
    border: 1.5px solid var(--color-border);
    border-radius: 14px;
    padding: 20px;
}

.toc-sidebar-title {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 12px;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin: 0 0 14px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--color-border);
}

.toc-sidebar-title svg {
    color: var(--color-primary);
    flex-shrink: 0;
}

.toc-empty {
    font-size: 13px;
    color: var(--color-text-secondary);
    margin: 0;
}

.toc-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.toc-item {
    line-height: 1;
}

.toc-link {
    display: block;
    padding: 6px var(--space-sm);
    font-size: 13px;
    color: var(--color-text-secondary);
    text-decoration: none;
    border-radius: 6px;
    border-left: 2px solid transparent;
    transition: color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast);
    line-height: 1.4;
}

.toc-link:hover {
    color: var(--color-primary);
    background-color: var(--color-surface-blue);
    border-left-color: var(--color-primary-light);
}

.toc-link.active {
    color: var(--color-primary);
    background-color: var(--color-surface-blue);
    border-left-color: var(--color-primary);
    font-weight: var(--font-weight-semibold);
}

.toc-h3 .toc-link {
    padding-left: 18px;
    font-size: 12px;
}

.toc-h4 .toc-link {
    padding-left: 28px;
    font-size: 12px;
}

.single-article-main {
    min-width: 0;
    overflow: visible !important;
}

.single-article {
    background-color: var(--color-card);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-xl);
        overflow: visible;
    padding: 0;
}

.article-header {
    padding: 36px 40px 28px;
    border-bottom: 1px solid var(--color-border);
    /* FIX: border-radius top मात्र राख्नु पर्छ किनकि parent overflow:visible भयो */
    border-radius: var(--radius-xl) var(--radius-xl) 0 0;
    overflow: hidden;
}

.article-faculty-badges {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    flex-wrap: wrap;
    margin-bottom: 14px;
}

.article-faculty-badges .image-badge {
    text-decoration: none;
    transition: opacity var(--transition-fast);
}

.article-faculty-badges .image-badge:hover {
    opacity: 0.8;
}

.single-article-title {
    font-size: 30px;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    line-height: 1.3;
    letter-spacing: -0.4px;
    margin: 0 0 18px;
}

.article-meta-row {
    display: flex;
    align-items: center;
    gap: 18px;
    flex-wrap: wrap;
}

.article-meta-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: var(--color-text-secondary);
    font-weight: var(--font-weight-medium);
}

.article-meta-item svg {
    color: var(--color-text-secondary);
    flex-shrink: 0;
}

.meta-author-avatar {
    width: 28px !important;
    height: 28px !important;
    border-radius: var(--radius-full);
    object-fit: cover;
    flex-shrink: 0;
    border: 2px solid var(--color-border);
}

.article-featured-image {
    width: 100%;
    aspect-ratio: 16 / 7;
    overflow: hidden;
    background-color: var(--color-surface-blue);
}

.article-featured-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.article-entry-content {
    padding: 36px 40px;
    font-size: var(--font-size-base);
    line-height: var(--line-height-loose);
    color: var(--color-text-primary);
}

.article-entry-content h2 {
    font-size: var(--font-size-xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin: 36px 0 14px;
    letter-spacing: -0.3px;
    padding-bottom: 10px;
    border-bottom: 2px solid var(--color-surface-blue);
}

.article-entry-content h3 {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin: 28px 0 10px;
    letter-spacing: -0.2px;
}

.article-entry-content h4 {
    font-size: 17px;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin: 22px 0 8px;
}

.article-entry-content p {
    margin: 0 0 18px;
}

.article-entry-content p:last-child {
    margin-bottom: 0;
}

.article-entry-content a {
    color: var(--color-primary);
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color var(--transition-fast);
}

.article-entry-content a:hover {
    color: var(--color-primary-light);
}

.article-entry-content ul,
.article-entry-content ol {
    padding-left: var(--space-lg);
    margin: 0 0 18px;
}

.article-entry-content li {
    margin-bottom: var(--space-sm);
    line-height: 1.7;
}

.article-entry-content ul li::marker {
    color: var(--color-primary);
}

.article-entry-content blockquote {
    border-left: 4px solid var(--color-primary);
    background-color: var(--color-surface-blue);
    margin: var(--space-lg) 0;
    padding: var(--space-md) 20px;
    border-radius: 0 10px 10px 0;
    font-style: italic;
    color: var(--color-text-secondary);
}

.article-entry-content blockquote p:last-child {
    margin-bottom: 0;
}

.article-entry-content pre {
    background-color: var(--color-text-primary);
    color: var(--color-border);
    padding: 20px var(--space-lg);
    border-radius: 10px;
    overflow-x: auto;
    font-size: var(--font-size-sm);
    line-height: 1.65;
    margin: 20px 0;
}

.article-entry-content code {
    font-size: 13px;
    background-color: var(--color-bg);
    color: var(--color-primary);
    padding: 2px 7px;
    border-radius: 5px;
    font-family: 'Courier New', monospace;
}

.article-entry-content pre code {
    background: none;
    color: inherit;
    padding: 0;
    border-radius: 0;
    font-size: inherit;
}

.article-entry-content img {
    max-width: 100%;
    height: auto;
    border-radius: 10px;
    display: block;
    margin: 20px auto;
}

.article-entry-content table {
    width: 100%;
    border-collapse: collapse;
    margin: var(--space-lg) 0;
    font-size: var(--font-size-sm);
    border-radius: 10px;
    overflow: hidden;
    border: 1px solid var(--color-border);
}

.article-entry-content th {
    background-color: var(--color-surface-blue);
    color: var(--color-text-primary);
    font-weight: var(--font-weight-bold);
    padding: 12px 16px;
    text-align: left;
    border-bottom: 2px solid var(--color-primary-light);
    font-size: 13px;
}

.article-entry-content td {
    padding: 11px 16px;
    border-bottom: 1px solid var(--color-border);
    color: var(--color-text-primary);
}

.article-entry-content tr:last-child td {
    border-bottom: none;
}

.article-entry-content tr:nth-child(even) td {
    background-color: var(--color-bg);
}

.article-entry-content hr {
    border: none;
    border-top: 2px solid var(--color-border);
    margin: var(--space-2xl) 0;
}

.article-share {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 20px 40px;
    border-top: 1px solid var(--color-border);
    background-color: var(--color-bg);
    flex-wrap: wrap;
}

.article-share-label {
    font-size: 13px;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    flex-shrink: 0;
}

.article-share-buttons {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    flex-wrap: wrap;
}

.share-btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 7px 16px;
    border-radius: var(--radius-md);
    font-size: 13px;
    font-weight: var(--font-weight-semibold);
    text-decoration: none;
    border: 1.5px solid transparent;
    cursor: pointer;
    font-family: var(--font-primary);
    transition: background-color var(--transition-fast), border-color var(--transition-fast),
                color var(--transition-fast), transform var(--transition-fast);
}

.share-btn:hover {
    transform: translateY(-1px);
}

.share-facebook {
    background-color: var(--color-surface-blue);
    color: var(--color-primary);
    border-color: var(--color-primary-light);
}

.share-facebook:hover {
    background-color: var(--color-primary);
    color: var(--color-text-on-primary);
    border-color: var(--color-primary);
}

.share-twitter {
    background-color: var(--color-bg);
    color: var(--color-text-primary);
    border-color: var(--color-border);
}

.share-twitter:hover {
    background-color: var(--color-text-primary);
    color: var(--color-text-on-primary);
    border-color: var(--color-text-primary);
}

.share-copy {
    background-color: var(--color-bg);
    color: var(--color-text-secondary);
    border-color: var(--color-border);
}

.share-copy:hover {
    background-color: #F0FDF4;
    color: #16A34A;
    border-color: #BBF7D0;
}

/* ============================================================
   FAQ SECTION
   FIX: overflow:hidden थियो .faq-item मा — accordion खुल्दा
   page scroll रोकिन्थ्यो। overflow:visible गरियो।
   border-radius clip हुन clip-path use गरियो।
   ============================================================ */
.faq-section {
    padding: var(--space-2xl) 40px;
    border-top: 1px solid var(--color-border);
}

.faq-section-title {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin: 0 0 var(--space-lg);
}

.faq-section-title svg {
    color: var(--color-primary);
    flex-shrink: 0;
}

.faq-container {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.faq-item {
    border: 1.5px solid var(--color-border);
    border-radius: 10px;
    /* FIX: overflow:hidden हटाइयो — यसले accordion animation हुँदा
       page scroll lock हुन्थ्यो। border-radius अब border नै दिन्छ। */
    overflow: visible;
    transition: border-color var(--transition-fast);
}

.faq-item.faq-open {
    border-color: var(--color-primary);
}

.faq-question {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 16px 20px;
    background-color: var(--color-card);
    border: none;
    cursor: pointer;
    font-family: var(--font-primary);
    text-align: left;
    gap: 16px;
    transition: background-color var(--transition-fast);
    /* FIX: top border-radius inherit गर्न */
    border-radius: 8px 8px 0 0;
}

.faq-question:hover {
    background-color: var(--color-bg);
}

.faq-open .faq-question {
    background-color: var(--color-surface-blue);
}

/* जब accordion बन्द छ, question को सबै corner round हुनु पर्छ */
.faq-item:not(.faq-open) .faq-question {
    border-radius: 8px;
}

.faq-question-text {
    font-size: 15px;
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    line-height: 1.4;
    flex: 1;
}

.faq-open .faq-question-text {
    color: var(--color-primary);
}

.faq-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-text-secondary);
    flex-shrink: 0;
    transition: transform 0.3s ease, color var(--transition-fast);
}

.faq-open .faq-icon {
    transform: rotate(180deg);
    color: var(--color-primary);
}

.faq-answer {
    max-height: 0;
    /* FIX: overflow:hidden यहाँ राख्नु पर्छ — answer expand/collapse को लागि
       तर parent .faq-item मा होइन। यसले page scroll affect गर्दैन। */
    overflow: hidden;
    transition: max-height 0.35s ease;
}

.faq-answer-inner {
    padding: 16px 20px 18px;
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    line-height: 1.75;
    border-top: 1px solid var(--color-border);
}

.faq-answer-inner p:last-child {
    margin-bottom: 0;
}

.single-article-sidebar {
    position: sticky;
    top: 90px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    max-height: calc(100vh - 110px);
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--color-border) transparent;
}

.single-article-sidebar::-webkit-scrollbar {
    width: 4px;
}

.single-article-sidebar::-webkit-scrollbar-thumb {
    background-color: var(--color-border);
    border-radius: var(--radius-sm);
}

.sidebar-widget {
    background-color: var(--color-card);
    border: 1.5px solid var(--color-border);
    border-radius: 14px;
    overflow: hidden;
}

.widget-title {
    font-size: 13px;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    text-transform: uppercase;
    letter-spacing: 0.07em;
    margin: 0;
    padding: 14px 18px;
    border-bottom: 1px solid var(--color-border);
    background-color: var(--color-bg);
}

.sidebar-search-inner {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    padding: 14px 16px;
    border-bottom: 1px solid var(--color-border);
}

.sidebar-search-inner svg {
    color: var(--color-text-secondary);
    flex-shrink: 0;
}

.sidebar-search-inner input[type="search"] {
    flex: 1;
    border: none;
    outline: none;
    background: transparent;
    font-size: 13px;
    color: var(--color-text-primary);
    font-family: var(--font-primary);
    padding: 2px 0;
}

.sidebar-search-inner input[type="search"]::placeholder {
    color: var(--color-text-secondary);
}

.sidebar-search-inner button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    background-color: var(--color-primary);
    color: var(--color-text-on-primary);
    border: none;
    border-radius: 6px;
    cursor: pointer;
    flex-shrink: 0;
    transition: background-color var(--transition-fast);
}

.sidebar-search-inner button:hover {
    background-color: var(--color-primary-light);
}

.related-posts-list {
    display: flex;
    flex-direction: column;
}

.related-post-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 16px;
    text-decoration: none;
    color: var(--color-text-primary);
    border-bottom: 1px solid var(--color-border);
    transition: background-color var(--transition-fast);
}

.related-post-item:last-child {
    border-bottom: none;
}

.related-post-item:hover {
    background-color: var(--color-surface-blue);
}

.related-post-thumb {
    width: 60px;
    height: 48px;
    border-radius: 7px;
    overflow: hidden;
    flex-shrink: 0;
    background-color: var(--color-surface-blue);
}

.related-post-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.related-post-img-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-primary-light);
}

.related-post-info {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
    flex: 1;
}

.related-post-title {
    font-size: 13px;
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    line-height: 1.4;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    transition: color var(--transition-fast);
}

.related-post-item:hover .related-post-title {
    color: var(--color-primary);
}

.related-post-date {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    color: var(--color-text-secondary);
}

.related-post-date svg {
    flex-shrink: 0;
}

@media (max-width: 1200px) {
    .single-article-container {
        grid-template-columns: 200px 1fr 260px;
        gap: var(--space-lg);
    }
}

@media (max-width: 991px) {

    .single-article-wrapper {
        padding: 28px 0 64px;
    }

    .toc-sidebar {
        display: none;
    }

    .single-article-container {
        grid-template-columns: 1fr 260px;
        gap: var(--space-lg);
    }

    .single-article-title {
        font-size: 24px;
    }

    .article-header,
    .article-entry-content,
    .article-share,
    .faq-section {
        padding-left: var(--space-lg);
        padding-right: var(--space-lg);
    }
}

@media (max-width: 767px) {

    .single-article-container {
        grid-template-columns: 1fr;
        gap: var(--space-lg);
    }

    .single-article-sidebar {
        position: static;
        max-height: none;
        overflow-y: visible;
    }

    .single-article-title {
        font-size: 22px;
    }

    .article-entry-content {
        font-size: 15px;
    }

    .article-entry-content h2 { font-size: 20px; }
    .article-entry-content h3 { font-size: 17px; }
    .article-entry-content h4 { font-size: 15px; }
}

@media (max-width: 575px) {

    .single-article-container {
        padding: 0 var(--space-md);
    }

    .article-header,
    .article-entry-content,
    .article-share,
    .faq-section {
        padding-left: 18px;
        padding-right: 18px;
    }

    .article-header {
        padding-top: var(--space-lg);
        padding-bottom: 20px;
    }

    .article-meta-row {
        gap: 12px;
    }

    .article-share {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }

    .article-entry-content pre {
        padding: 14px var(--space-md);
        font-size: 13px;
    }

    .faq-section {
        padding-top: var(--space-lg);
    }

    .faq-question {
        padding: 13px var(--space-md);
    }

    .faq-answer-inner {
        padding: 14px var(--space-md);
    }
}

[data-theme="dark"] .share-copy:hover,
.dark-mode .share-copy:hover {
    background-color: #052E16;
    color: #4ADE80;
    border-color: #166534;
}

[data-theme="dark"] .article-entry-content pre,
.dark-mode .article-entry-content pre {
    background-color: #0D1117;
    color: var(--color-border);
}

@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) .share-copy:hover {
        background-color: #052E16;
        color: #4ADE80;
        border-color: #166534;
    }

    :root:not([data-theme="light"]) .article-entry-content pre {
        background-color: #0D1117;
        color: var(--color-border);
    }
}
/* notice page */

.notice-archive-wrapper {
    background-color: var(--color-bg);
    padding: 56px 0 80px;
    min-height: 60vh;
}

.badge-blue {
    background-color: var(--color-surface-blue);
    color: var(--color-primary);
}

.notice-archive-wrapper .archive-page-header {
    text-align: center;
    margin-bottom: 32px;
}

.notice-archive-wrapper .archive-header-text {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}

.mobile-filter-toggle {
    display: none;
    width: 100%;
    align-items: center;
    justify-content: space-between;
    padding: 12px 18px;
    background-color: var(--color-card);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-lg);
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    cursor: pointer;
    margin-bottom: 20px;
    transition: border-color var(--transition-fast), background-color var(--transition-fast);
}

.mobile-filter-toggle:hover {
    border-color: var(--color-primary);
    background-color: var(--color-surface-blue);
    color: var(--color-primary);
}

.mobile-filter-toggle-inner {
    display: flex;
    align-items: center;
    gap: 8px;
}

.mobile-filter-arrow {
    display: flex;
    align-items: center;
    transition: transform var(--transition-fast);
}

.mobile-filter-toggle[aria-expanded="true"] .mobile-filter-arrow {
    transform: rotate(180deg);
}

.notice-archive-container {
    display: grid;
    grid-template-columns: 1fr 280px;
    gap: 32px;
    align-items: flex-start;
}

.notices-column {
    display: flex;
    flex-direction: column;
    gap: 24px;
    min-width: 0;
}

.results-info {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px;
}

.results-count {
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    margin: 0;
    font-weight: var(--font-weight-medium);
}

.results-count span {
    font-weight: var(--font-weight-bold);
    color: var(--color-primary);
}

.notices-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.notice-card {
    display: flex;
    flex-direction: column;
    gap: 12px;
    background-color: var(--color-card);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-xl);
    padding: 20px 22px;
    text-decoration: none;
    color: var(--color-text-primary);
    transition: border-color var(--transition-base), box-shadow var(--transition-base),
                transform var(--transition-base);
    position: relative;
    overflow: hidden;
}

.notice-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 4px;
    height: 100%;
    background-color: var(--color-primary);
    border-radius: var(--radius-sm) 0 0 var(--radius-sm);
    opacity: 0;
    transition: opacity var(--transition-fast);
}

.notice-card:hover {
    border-color: var(--color-primary);
    box-shadow: var(--shadow-lg);
    transform: translateY(-3px);
}

.notice-card:hover::before {
    opacity: 1;
}

.notice-card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
}

.notice-type-badge {
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    border-radius: var(--radius-full);
    font-family: var(--font-primary);
    font-size: 11px;
    font-weight: var(--font-weight-bold);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    background-color: var(--color-surface-blue);
    color: var(--color-primary);
}

.notice-type-exam,
.notice-type-exam-schedule  { background-color: var(--color-surface-amber); color: var(--color-secondary-dark); }
.notice-type-result         { background-color: #F0FDF4; color: #16A34A; }
.notice-type-general        { background-color: var(--color-surface-blue);  color: var(--color-primary); }
.notice-type-scholarship    { background-color: #FDF2F8; color: #9333EA; }
.notice-type-admission      { background-color: #FFF7ED; color: #EA580C; }
.notice-type-holiday        { background-color: #F0FDF4; color: #16A34A; }
.notice-type-event          { background-color: var(--color-surface-blue);  color: #0284C7; }

.notice-card-date {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    color: var(--color-text-secondary);
    font-weight: var(--font-weight-medium);
    white-space: nowrap;
}

.notice-card-date svg {
    flex-shrink: 0;
    color: var(--color-text-secondary);
}

.notice-card-title {
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    line-height: 1.45;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    transition: color var(--transition-fast);
}

.notice-card:hover .notice-card-title {
    color: var(--color-primary);
}

.notice-card-excerpt {
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    color: var(--color-text-secondary);
    line-height: var(--line-height-normal);
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    flex: 1;
}

.notice-card-meta {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    border-top: 1px solid var(--color-bg);
    padding-top: 10px;
    margin-top: auto;
}

.notice-meta-item {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    color: var(--color-text-secondary);
    font-weight: var(--font-weight-medium);
}

.notice-meta-item svg {
    flex-shrink: 0;
    color: var(--color-text-secondary);
}

.notice-card .read-more-btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--color-primary);
    transition: gap var(--transition-fast);
    margin-top: 2px;
}

.notice-card:hover .read-more-btn {
    gap: 8px;
}

.notice-pagination .nav-links {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.notice-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    min-width: 40px;
    height: 40px;
    padding: 0 10px;
    border-radius: var(--radius-md);
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary);
    background-color: var(--color-card);
    border: 1.5px solid var(--color-border);
    text-decoration: none;
    transition: border-color var(--transition-fast), background-color var(--transition-fast),
                color var(--transition-fast);
}

.notice-pagination .page-numbers:hover {
    border-color: var(--color-primary);
    background-color: var(--color-surface-blue);
    color: var(--color-primary);
}

.notice-pagination .page-numbers.current {
    background-color: var(--color-primary);
    border-color: var(--color-primary);
    color: var(--color-text-on-primary);
    font-weight: var(--font-weight-semibold);
    box-shadow: var(--shadow-sm);
}

.notice-pagination .page-numbers.dots {
    border-color: transparent;
    background: none;
    cursor: default;
    pointer-events: none;
}

.notice-pagination svg {
    flex-shrink: 0;
}

.filters-column {
    position: sticky;
    top: 90px;
}

.notice-filters {
    background-color: var(--color-card);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-xl);
    overflow: hidden;
}

.filters-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    border-bottom: 1px solid var(--color-border);
    background-color: var(--color-bg);
}

.filters-title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.filters-title svg {
    color: var(--color-primary);
    flex-shrink: 0;
}

.close-filters {
    display: none;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: none;
    background: none;
    color: var(--color-text-secondary);
    cursor: pointer;
    border-radius: var(--radius-md);
    transition: background-color var(--transition-fast), color var(--transition-fast);
    padding: 0;
}

.close-filters:hover {
    background-color: #FEE2E2;
    color: #DC2626;
}

.filter-group {
    padding: 18px 20px;
    border-bottom: 1px solid var(--color-bg);
}

.filter-group:last-of-type {
    border-bottom: none;
}

.filter-group-label {
    font-family: var(--font-primary);
    font-size: 11px;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin: 0 0 12px;
}

.filter-group-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.notice-filters .filter-btn {
    display: inline-flex;
    align-items: center;
    padding: 5px 12px;
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary);
    background-color: var(--color-bg);
    cursor: pointer;
    transition: border-color var(--transition-fast), background-color var(--transition-fast),
                color var(--transition-fast);
    white-space: nowrap;
}

.notice-filters .filter-btn:hover {
    border-color: var(--color-primary);
    background-color: var(--color-surface-blue);
    color: var(--color-primary);
}

.notice-filters .filter-btn.active {
    background-color: var(--color-primary);
    border-color: var(--color-primary);
    color: var(--color-text-on-primary);
    font-weight: var(--font-weight-semibold);
}

.reset-filters-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    width: calc(100% - 40px);
    margin: 16px 20px;
    padding: 10px;
    background-color: #FEF2F2;
    border: 1.5px solid #FECACA;
    border-radius: var(--radius-md);
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-semibold);
    color: #DC2626;
    cursor: pointer;
    transition: background-color var(--transition-fast), border-color var(--transition-fast);
}

.reset-filters-btn:hover {
    background-color: #FEE2E2;
    border-color: #FCA5A5;
}

.reset-filters-btn svg {
    flex-shrink: 0;
}

.notices-grid .no-articles {
    grid-column: 1 / -1;
}

@media (max-width: 991px) {
    .notice-archive-wrapper {
        padding: 40px 0 64px;
    }

    .mobile-filter-toggle {
        display: flex;
    }

    .notice-archive-container {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .notices-column {
        order: 1;
    }

    .filters-column {
        position: fixed;
        top: 0;
        right: -100%;
        width: 320px;
        max-width: 90vw;
        height: 100vh;
        overflow-y: auto;
        background-color: var(--color-card);
        box-shadow: var(--shadow-xl);
        z-index: 1100;
        transition: right var(--transition-base);
        border-radius: 0;
        order: 2;
    }

    .filters-column.active {
        right: 0;
    }

    .notice-filters {
        border: none;
        border-radius: 0;
        height: 100%;
    }

    .close-filters {
        display: flex;
    }

    .notices-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575px) {
    .notice-archive-wrapper {
        padding: 32px 0 56px;
    }

    .filters-column {
        width: 100%;
        max-width: 100%;
        right: -100%;
        top: 0;
        border-radius: 0;
    }

    .notices-grid {
        gap: 14px;
    }

    .notice-card {
        padding: 16px 18px;
    }

    .notice-card-title {
        font-size: var(--font-size-sm);
    }
}

/* single-notice */

.single-notice-wrapper {
    background-color: var(--color-bg);
    padding: 40px 0 80px;
    min-height: 60vh;
}

.single-notice-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
}

.breadcrumb {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    font-size: 13px;
    margin-bottom: 24px;
}

.breadcrumb a {
    color: var(--color-primary);
    text-decoration: none;
    font-weight: var(--font-weight-medium);
    transition: color var(--transition-fast);
}

.breadcrumb a:hover {
    color: var(--color-primary-light);
    text-decoration: underline;
}

.breadcrumb .separator {
    color: var(--color-text-secondary);
}

.breadcrumb .current {
    color: var(--color-text-secondary);
    font-weight: var(--font-weight-medium);
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.single-notice-content {
    display: flex;
    flex-direction: column;
    gap: 28px;
}

.notice-header {
    background-color: var(--color-card);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-xl);
    padding: 28px 32px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.notice-header-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.notice-type-badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 14px;
    border-radius: var(--radius-full);
    font-size: 12px;
    font-weight: var(--font-weight-bold);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    background-color: var(--color-surface-blue);
    color: var(--color-primary);
}

.notice-type-badge.exam,
.notice-type-badge.exam-schedule   { background-color: var(--color-surface-amber); color: var(--color-secondary-dark); }
.notice-type-badge.result           { background-color: #F0FDF4; color: #16A34A; }
.notice-type-badge.general          { background-color: var(--color-surface-blue); color: var(--color-primary); }
.notice-type-badge.scholarship      { background-color: #FDF2F8; color: #9333EA; }
.notice-type-badge.admission        { background-color: #FFF7ED; color: #EA580C; }
.notice-type-badge.holiday          { background-color: #F0FDF4; color: #16A34A; }
.notice-type-badge.event            { background-color: var(--color-surface-blue); color: #0284C7; }

.notice-publish-date {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: var(--color-text-secondary);
    font-weight: var(--font-weight-medium);
}

.notice-title {
    font-size: 26px;
    font-weight: 800;
    color: var(--color-text-primary);
    line-height: 1.3;
    margin: 0;
    letter-spacing: -0.3px;
}

.notice-info-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
    padding-top: 4px;
    border-top: 1px solid var(--color-surface-blue);
}

.info-box {
    display: flex;
    flex-direction: column;
    gap: 4px;
    background-color: var(--color-bg);
    border-radius: 9px;
    padding: 12px 14px;
    border: 1px solid var(--color-surface-blue);
}

.info-label {
    font-size: 11px;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.07em;
}

.info-value {
    font-size: 14px;
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
}

.notice-description {
    background-color: var(--color-card);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-xl);
    overflow: hidden;
}

.notice-description h2 {
    font-size: 15px;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin: 0;
    padding: 16px 28px;
    background-color: var(--color-bg);
    border-bottom: 1px solid var(--color-border);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.description-content {
    padding: 24px 28px;
    font-size: 15px;
    color: var(--color-text-secondary);
    line-height: 1.8;
}

.description-content p {
    margin: 0 0 14px;
}

.description-content p:last-child {
    margin-bottom: 0;
}

.description-content a {
    color: var(--color-primary);
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color var(--transition-fast);
}

.description-content a:hover {
    color: var(--color-primary-light);
}

.description-content ul,
.description-content ol {
    padding-left: 22px;
    margin: 0 0 14px;
}

.description-content li {
    margin-bottom: 7px;
    line-height: 1.7;
}

.description-content ul li::marker {
    color: var(--color-primary);
}

.description-content strong {
    color: var(--color-text-primary);
    font-weight: var(--font-weight-bold);
}

.description-content h3,
.description-content h4 {
    color: var(--color-text-primary);
    font-weight: var(--font-weight-bold);
    margin: 20px 0 8px;
}

.notice-featured-image {
    border-radius: 14px;
    overflow: hidden;
    border: 1.5px solid var(--color-border);
    background-color: var(--color-surface-blue);
}

.notice-featured-image .featured-image {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
}

.notice-pdf-embed {
    border-radius: 14px;
    overflow: hidden;
    border: 1.5px solid var(--color-border);
}

.notice-pdf-embed iframe {
    width: 100%;
    height: 600px;
    display: block;
    border: none !important;
    border-radius: 0 !important;
}

.notice-pdf-attachment {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    background-color: var(--color-card);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: 18px 22px;
    flex-wrap: wrap;
}

.pdf-info {
    display: flex;
    align-items: center;
    gap: 14px;
}

.pdf-icon {
    font-size: 32px;
    flex-shrink: 0;
    line-height: 1;
}

.pdf-details {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.pdf-details h3 {
    font-size: 15px;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin: 0;
}

.pdf-size {
    font-size: 13px;
    color: var(--color-text-secondary);
    margin: 0;
}

.download-pdf {
    display: inline-flex;
    align-items: center;
    gap: var(--space-sm);
    padding: 11px 22px;
    background-color: var(--color-primary);
    color: var(--color-text-on-primary);
    border-radius: 9px;
    font-size: 14px;
    font-weight: var(--font-weight-bold);
    text-decoration: none;
    box-shadow: 0 4px 14px rgba(29, 78, 216, 0.30);
    transition: background-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);
    white-space: nowrap;
    flex-shrink: 0;
}

.download-pdf:hover {
    background-color: var(--color-primary-light);
    box-shadow: 0 6px 20px rgba(59, 130, 246, 0.38);
    transform: translateY(-1px);
    color: var(--color-text-on-primary);
}

.download-icon {
    font-size: 16px;
}

.notice-share {
    background-color: var(--color-card);
    border: 1.5px solid var(--color-border);
    border-radius: 14px;
    padding: 22px 26px;
}

.notice-share h3 {
    font-size: 14px;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.07em;
    margin: 0 0 14px;
}

.share-buttons {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.notice-share .share-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: var(--radius-md);
    border: 1.5px solid var(--color-border);
    background-color: var(--color-bg);
    color: var(--color-text-secondary);
    text-decoration: none;
    cursor: pointer;
    transition: background-color var(--transition-fast), color var(--transition-fast),
                border-color var(--transition-fast), transform var(--transition-fast);
    flex-shrink: 0;
}

.notice-share .share-btn svg {
    display: block;
    flex-shrink: 0;
}

.notice-share .share-btn:hover {
    transform: translateY(-2px);
}

.notice-share .share-btn.facebook:hover {
    background-color: #1877F2;
    border-color: #1877F2;
    color: var(--color-text-on-primary);
}

.notice-share .share-btn.twitter:hover {
    background-color: var(--color-text-primary);
    border-color: var(--color-text-primary);
    color: var(--color-text-on-primary);
}

.notice-share .share-btn.whatsapp:hover {
    background-color: #25D366;
    border-color: #25D366;
    color: var(--color-text-on-primary);
}

.notice-share .share-btn.linkedin:hover {
    background-color: #0A66C2;
    border-color: #0A66C2;
    color: var(--color-text-on-primary);
}

.notice-share .share-btn.email:hover {
    background-color: #EA580C;
    border-color: #EA580C;
    color: var(--color-text-on-primary);
}

.notice-share .share-btn.copy-link:hover {
    background-color: #16A34A;
    border-color: #16A34A;
    color: var(--color-text-on-primary);
}

.related-notices {
    margin-top: 8px;
}

.related-notices h2 {
    font-size: 18px;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin: 0 0 18px;
    letter-spacing: -0.2px;
}

.related-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}

.related-card {
    display: flex;
    flex-direction: column;
    gap: 8px;
    background-color: var(--color-card);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: 18px;
    text-decoration: none;
    color: var(--color-text-primary);
    transition: border-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-base);
}

.related-card:hover {
    border-color: var(--color-primary);
    box-shadow: 0 6px 20px rgba(29, 78, 216, 0.10);
    transform: translateY(-3px);
}

.related-type {
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    border-radius: var(--radius-full);
    font-size: 11px;
    font-weight: var(--font-weight-bold);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    background-color: var(--color-surface-blue);
    color: var(--color-primary);
    width: fit-content;
}

.related-type.exam,
.related-type.exam-schedule { background-color: var(--color-surface-amber); color: var(--color-secondary-dark); }
.related-type.result         { background-color: #F0FDF4; color: #16A34A; }
.related-type.scholarship    { background-color: #FDF2F8; color: #9333EA; }
.related-type.admission      { background-color: #FFF7ED; color: #EA580C; }
.related-type.holiday        { background-color: #F0FDF4; color: #16A34A; }

.related-card h4 {
    font-size: 14px;
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    margin: 0;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    transition: color var(--transition-fast);
}

.related-card:hover h4 {
    color: var(--color-primary);
}

.related-date {
    font-size: 12px;
    color: var(--color-text-secondary);
    font-weight: var(--font-weight-medium);
    margin-top: auto;
}

@media (max-width: 768px) {

    .single-notice-wrapper {
        padding: 28px 0 64px;
    }

    .notice-header {
        padding: 22px 22px;
    }

    .notice-title {
        font-size: 22px;
    }

    .notice-info-grid {
        grid-template-columns: 1fr 1fr;
    }

    .related-grid {
        grid-template-columns: 1fr 1fr;
    }

    .notice-pdf-embed iframe {
        height: 400px;
    }
}

@media (max-width: 575px) {

    .single-notice-container {
        padding: 0 16px;
    }

    .single-notice-wrapper {
        padding: 24px 0 56px;
    }

    .notice-header {
        padding: 18px;
    }

    .notice-title {
        font-size: 19px;
    }

    .notice-info-grid {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .notice-description h2 {
        padding: 14px 18px;
    }

    .description-content {
        padding: 18px;
        font-size: 14px;
    }

    .notice-pdf-attachment {
        flex-direction: column;
        align-items: flex-start;
        gap: 14px;
    }

    .download-pdf {
        width: 100%;
        justify-content: center;
    }

    .notice-pdf-embed iframe {
        height: 320px;
    }

    .related-grid {
        grid-template-columns: 1fr;
    }

    .share-buttons {
        gap: 8px;
    }

    .notice-share .share-btn {
        width: 38px;
        height: 38px;
        border-radius: 9px;
    }
}

  /* ACCOUNT PAGE */
   .account-page-wrapper {
    background-color: var(--color-bg);
    padding: 56px 0 80px;
    min-height: 70vh;
}

.account-page-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-lg);
    margin-bottom: 40px;
    flex-wrap: wrap;
}

.account-page-header-text {
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
}

.account-header-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    flex-shrink: 0;
}

.btn-secondary {
    background-color: transparent;
    color: #DC2626;
    border: 1.5px solid #FECACA;
}

.btn-secondary:hover {
    background-color: #FEF2F2;
    border-color: #FCA5A5;
    color: #DC2626;
    transform: translateY(-1px);
}

.account-page-body {
    background-color: var(--color-card);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-xl);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
}

.account-page-body .um-account-main-nav,
.account-page-body .um-account-tabs-nav {
    background-color: var(--color-bg);
    border-bottom: 1.5px solid var(--color-border);
    padding: 0 var(--space-lg);
    display: flex;
    align-items: center;
    gap: 0;
    flex-wrap: wrap;
    list-style: none;
    margin: 0;
}

.account-page-body .um-account-main-nav li a,
.account-page-body .um-account-tabs-nav li a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 14px 18px;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary);
    text-decoration: none;
    border-bottom: 2px solid transparent;
    transition: color var(--transition-fast), border-color var(--transition-fast);
    white-space: nowrap;
}

.account-page-body .um-account-main-nav li a:hover,
.account-page-body .um-account-tabs-nav li a:hover {
    color: var(--color-primary);
    border-bottom-color: var(--color-primary-light);
}

.account-page-body .um-account-main-nav li.current a,
.account-page-body .um-account-main-nav li.active a,
.account-page-body .um-account-tabs-nav li.current a,
.account-page-body .um-account-tabs-nav li.active a {
    color: var(--color-primary);
    font-weight: var(--font-weight-semibold);
    border-bottom-color: var(--color-primary);
}

.account-page-body .um-account-tab,
.account-page-body .um-account-content {
    padding: var(--space-2xl) 28px;
}

.account-page-body .um-field {
    margin-bottom: 20px;
}

.account-page-body .um-field-label,
.account-page-body label {
    display: block;
    font-size: 13px;
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    margin-bottom: 7px;
    letter-spacing: 0.01em;
}

.account-page-body .um-field-area input[type="text"],
.account-page-body .um-field-area input[type="email"],
.account-page-body .um-field-area input[type="password"],
.account-page-body .um-field-area input[type="url"],
.account-page-body .um-field-area input[type="tel"],
.account-page-body .um-field-area input[type="number"],
.account-page-body .um-field-area textarea,
.account-page-body .um-field-area select {
    width: 100%;
    padding: 10px 14px;
    font-size: var(--font-size-sm);
    font-family: var(--font-primary);
    color: var(--color-text-primary);
    background-color: var(--color-bg);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    outline: none;
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast), background-color var(--transition-fast);
    appearance: none;
    -webkit-appearance: none;
}

.account-page-body .um-field-area input:focus,
.account-page-body .um-field-area textarea:focus,
.account-page-body .um-field-area select:focus {
    border-color: var(--color-primary);
    background-color: var(--color-card);
    box-shadow: 0 0 0 3px rgba(29, 78, 216, 0.10);
}

.account-page-body .um-field-area input::placeholder,
.account-page-body .um-field-area textarea::placeholder {
    color: var(--color-text-secondary);
}

.account-page-body .um-field-area textarea {
    min-height: 100px;
    resize: vertical;
}

.account-page-body .um-button,
.account-page-body button[type="submit"],
.account-page-body input[type="submit"] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 22px;
    background-color: var(--color-primary);
    color: var(--color-text-on-primary);
    border: 1.5px solid var(--color-primary);
    border-radius: var(--radius-md);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    font-family: var(--font-primary);
    cursor: pointer;
    transition: background-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);
    text-decoration: none;
    box-shadow: 0 2px 8px rgba(29, 78, 216, 0.25);
}

.account-page-body .um-button:hover,
.account-page-body button[type="submit"]:hover,
.account-page-body input[type="submit"]:hover {
    background-color: var(--color-primary-light);
    border-color: var(--color-primary-light);
    box-shadow: 0 4px 14px rgba(59, 130, 246, 0.35);
    transform: translateY(-1px);
}

.account-page-body .um-profile-photo,
.account-page-body .um-avatar {
    border-radius: var(--radius-lg);
    overflow: hidden;
    border: 3px solid var(--color-border);
    transition: border-color var(--transition-fast);
}

.account-page-body .um-profile-photo:hover,
.account-page-body .um-avatar:hover {
    border-color: var(--color-primary);
}

.account-page-body .um-notice,
.account-page-body .um-alert {
    padding: 12px 16px;
    border-radius: var(--radius-md);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    margin-bottom: 20px;
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.account-page-body .um-notice-success,
.account-page-body .um-alert-success {
    background-color: #F0FDF4;
    border: 1px solid #BBF7D0;
    color: #16A34A;
}

.account-page-body .um-notice-error,
.account-page-body .um-alert-error {
    background-color: #FEF2F2;
    border: 1px solid #FECACA;
    color: #DC2626;
}

.account-page-body .um-notice-info,
.account-page-body .um-alert-info {
    background-color: var(--color-surface-blue);
    border: 1px solid var(--color-primary-light);
    color: var(--color-primary);
}

.account-page-body .um-field-error {
    font-size: var(--font-size-xs);
    color: #DC2626;
    font-weight: var(--font-weight-medium);
    margin-top: 5px;
    display: flex;
    align-items: center;
    gap: 4px;
}

.account-page-body .um-field-area input.um-error,
.account-page-body .um-field-area input:invalid {
    border-color: #FCA5A5;
    background-color: #FFF5F5;
}

.account-page-body .um-account-tab h3,
.account-page-body .um-content-heading {
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin: 0 0 20px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--color-border);
}

.account-page-body .um-password-meter {
    margin-top: 6px;
    border-radius: var(--radius-sm);
    overflow: hidden;
}

.account-page-body .um-account-delete-account {
    margin-top: var(--space-2xl);
    padding: 20px;
    background-color: #FEF2F2;
    border: 1.5px solid #FECACA;
    border-radius: var(--radius-lg);
}

.account-page-body .um-account-delete-account h4 {
    font-size: 15px;
    font-weight: var(--font-weight-bold);
    color: #DC2626;
    margin: 0 0 var(--space-sm);
}

.account-page-body .um-account-delete-account p {
    font-size: 13px;
    color: var(--color-text-secondary);
    margin: 0 0 14px;
}

.account-page-body .um-account-delete-account .um-button {
    background-color: #DC2626;
    border-color: #DC2626;
    box-shadow: 0 2px 8px rgba(220, 38, 38, 0.25);
}

.account-page-body .um-account-delete-account .um-button:hover {
    background-color: #B91C1C;
    border-color: #B91C1C;
}

.account-page-body input[type="checkbox"],
.account-page-body input[type="radio"] {
    accent-color: var(--color-primary);
    width: 16px;
    height: 16px;
    cursor: pointer;
}

.account-page-body .um-field-area select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='%2364748B'%3E%3Cpath d='M7 10l5 5 5-5H7z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 36px;
}

.account-page-body .um-col-1,
.account-page-body .um-col-2 {
    float: none;
    width: 100%;
}

.account-page-body .um-clear,
.account-page-body .um-account-tab::after {
    content: '';
    display: table;
    clear: both;
}

@media (max-width: 991px) {

    .account-page-wrapper {
        padding: 40px 0 64px;
    }

    .account-page-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 20px;
    }

    .account-header-actions {
        width: 100%;
    }

    .account-header-actions .btn {
        flex: 1;
        justify-content: center;
    }

    .account-page-body .um-account-main-nav,
    .account-page-body .um-account-tabs-nav {
        padding: 0 var(--space-md);
        overflow-x: auto;
        flex-wrap: nowrap;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }

    .account-page-body .um-account-main-nav::-webkit-scrollbar,
    .account-page-body .um-account-tabs-nav::-webkit-scrollbar {
        display: none;
    }

    .account-page-body .um-account-tab,
    .account-page-body .um-account-content {
        padding: var(--space-lg) 20px;
    }
}

@media (max-width: 575px) {

    .account-page-wrapper {
        padding: var(--space-2xl) 0 56px;
    }

    .account-header-actions {
        flex-direction: column;
    }

    .account-header-actions .btn {
        width: 100%;
        justify-content: center;
    }

    .account-page-body .um-account-main-nav li a,
    .account-page-body .um-account-tabs-nav li a {
        padding: 12px 14px;
        font-size: 13px;
    }

    .account-page-body .um-account-tab,
    .account-page-body .um-account-content {
        padding: 20px var(--space-md);
    }

    .account-page-body .um-button,
    .account-page-body button[type="submit"],
    .account-page-body input[type="submit"] {
        width: 100%;
        justify-content: center;
    }
}

[data-theme="dark"] .btn-secondary,
.dark-mode .btn-secondary {
    color: #FCA5A5;
    border-color: #7F1D1D;
}

[data-theme="dark"] .btn-secondary:hover,
.dark-mode .btn-secondary:hover {
    background-color: #450A0A;
    border-color: #991B1B;
    color: #FCA5A5;
}

[data-theme="dark"] .account-page-body .um-notice-success,
[data-theme="dark"] .account-page-body .um-alert-success,
.dark-mode .account-page-body .um-notice-success,
.dark-mode .account-page-body .um-alert-success {
    background-color: #052E16;
    border-color: #166534;
    color: #4ADE80;
}

[data-theme="dark"] .account-page-body .um-notice-error,
[data-theme="dark"] .account-page-body .um-alert-error,
.dark-mode .account-page-body .um-notice-error,
.dark-mode .account-page-body .um-alert-error {
    background-color: #450A0A;
    border-color: #7F1D1D;
    color: #FCA5A5;
}

[data-theme="dark"] .account-page-body .um-field-error,
.dark-mode .account-page-body .um-field-error {
    color: #FCA5A5;
}

[data-theme="dark"] .account-page-body .um-field-area input.um-error,
[data-theme="dark"] .account-page-body .um-field-area input:invalid,
.dark-mode .account-page-body .um-field-area input.um-error,
.dark-mode .account-page-body .um-field-area input:invalid {
    border-color: #7F1D1D;
    background-color: #2D0A0A;
}

[data-theme="dark"] .account-page-body .um-account-delete-account,
.dark-mode .account-page-body .um-account-delete-account {
    background-color: #450A0A;
    border-color: #7F1D1D;
}

[data-theme="dark"] .account-page-body .um-account-delete-account h4,
.dark-mode .account-page-body .um-account-delete-account h4 {
    color: #FCA5A5;
}

[data-theme="dark"] .account-page-body .um-account-delete-account .um-button:hover,
.dark-mode .account-page-body .um-account-delete-account .um-button:hover {
    background-color: #991B1B;
    border-color: #991B1B;
}

@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) .btn-secondary {
        color: #FCA5A5;
        border-color: #7F1D1D;
    }

    :root:not([data-theme="light"]) .btn-secondary:hover {
        background-color: #450A0A;
        border-color: #991B1B;
        color: #FCA5A5;
    }

    :root:not([data-theme="light"]) .account-page-body .um-notice-success,
    :root:not([data-theme="light"]) .account-page-body .um-alert-success {
        background-color: #052E16;
        border-color: #166534;
        color: #4ADE80;
    }

    :root:not([data-theme="light"]) .account-page-body .um-notice-error,
    :root:not([data-theme="light"]) .account-page-body .um-alert-error {
        background-color: #450A0A;
        border-color: #7F1D1D;
        color: #FCA5A5;
    }

    :root:not([data-theme="light"]) .account-page-body .um-field-error {
        color: #FCA5A5;
    }

    :root:not([data-theme="light"]) .account-page-body .um-field-area input.um-error,
    :root:not([data-theme="light"]) .account-page-body .um-field-area input:invalid {
        border-color: #7F1D1D;
        background-color: #2D0A0A;
    }

    :root:not([data-theme="light"]) .account-page-body .um-account-delete-account {
        background-color: #450A0A;
        border-color: #7F1D1D;
    }

    :root:not([data-theme="light"]) .account-page-body .um-account-delete-account h4 {
        color: #FCA5A5;
    }

    :root:not([data-theme="light"]) .account-page-body .um-account-delete-account .um-button:hover {
        background-color: #991B1B;
        border-color: #991B1B;
    }
}

/* DASHBOARD PAGE*/
.dashboard-wrapper {
    background-color: var(--color-bg);
    padding: 48px 0 80px;
    min-height: 70vh;
}

.dashboard-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-lg);
    margin-bottom: var(--space-2xl);
    flex-wrap: wrap;
    background-color: var(--color-card);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-xl);
    padding: var(--space-lg) 28px;
    box-shadow: var(--shadow-sm);
}

.dashboard-user-info {
    display: flex;
    align-items: center;
    gap: 18px;
}

.dashboard-avatar {
    width: 72px;
    height: 72px;
    border-radius: var(--radius-full);
    overflow: hidden;
    border: 3px solid var(--color-surface-blue);
    flex-shrink: 0;
    box-shadow: 0 0 0 3px var(--color-primary-light);
}

.dashboard-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.dashboard-user-text {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.dashboard-greeting {
    font-size: 13px;
    color: var(--color-text-secondary);
    font-weight: var(--font-weight-medium);
}

.dashboard-username {
    font-size: 22px;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin: 0;
    line-height: var(--line-height-tight);
    letter-spacing: -0.3px;
}

.dashboard-email {
    font-size: 13px;
    color: var(--color-text-secondary);
    font-weight: var(--font-weight-regular);
}

.dashboard-quick-links {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 14px;
    margin-bottom: var(--space-2xl);
}

.dashboard-quick-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    padding: 20px 12px 16px;
    background-color: var(--color-card);
    border: 1.5px solid var(--color-border);
    border-radius: 14px;
    text-decoration: none;
    color: var(--color-text-primary);
    font-size: 13px;
    font-weight: var(--font-weight-semibold);
    transition: border-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-base);
    text-align: center;
}

.dashboard-quick-card:hover {
    border-color: var(--color-primary);
    box-shadow: 0 8px 24px rgba(29, 78, 216, 0.10);
    transform: translateY(-3px);
    color: var(--color-primary);
}

.dashboard-quick-icon {
    width: 48px;
    height: 48px;
    border-radius: var(--radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: transform var(--transition-fast);
}

.dashboard-quick-card:hover .dashboard-quick-icon {
    transform: scale(1.08);
}

.dashboard-quick-card span {
    line-height: 1;
}

.dashboard-layout {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: var(--space-lg);
    align-items: flex-start;
}

.dashboard-main {
    min-width: 0;
}

.dashboard-side {
    display: flex;
    flex-direction: column;
    gap: 20px;
    position: sticky;
    top: 90px;
}

.dashboard-card {
    background-color: var(--color-card);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-xl);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
}

.dashboard-card-title {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 15px;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin: 0;
    padding: 18px var(--space-lg);
    border-bottom: 1px solid var(--color-border);
    background-color: var(--color-bg);
}

.dashboard-card-title svg {
    color: var(--color-primary);
    flex-shrink: 0;
}

.dashboard-main .dashboard-card .um-form,
.dashboard-main .dashboard-card .um {
    padding: var(--space-lg);
}

.dashboard-main .dashboard-card .um-field {
    margin-bottom: 18px;
}

.dashboard-main .dashboard-card .um-field-label,
.dashboard-main .dashboard-card label {
    display: block;
    font-size: 13px;
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    margin-bottom: 6px;
}

.dashboard-main .dashboard-card .um-field-area input[type="text"],
.dashboard-main .dashboard-card .um-field-area input[type="email"],
.dashboard-main .dashboard-card .um-field-area input[type="password"],
.dashboard-main .dashboard-card .um-field-area input[type="url"],
.dashboard-main .dashboard-card .um-field-area input[type="tel"],
.dashboard-main .dashboard-card .um-field-area textarea,
.dashboard-main .dashboard-card .um-field-area select {
    width: 100%;
    padding: 10px 14px;
    font-size: var(--font-size-sm);
    font-family: var(--font-primary);
    color: var(--color-text-primary);
    background-color: var(--color-bg);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-md);
    outline: none;
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast), background-color var(--transition-fast);
    appearance: none;
    -webkit-appearance: none;
}

.dashboard-main .dashboard-card .um-field-area input:focus,
.dashboard-main .dashboard-card .um-field-area textarea:focus,
.dashboard-main .dashboard-card .um-field-area select:focus {
    border-color: var(--color-primary);
    background-color: var(--color-card);
    box-shadow: 0 0 0 3px rgba(29, 78, 216, 0.10);
}

.dashboard-main .dashboard-card .um-field-area input::placeholder,
.dashboard-main .dashboard-card .um-field-area textarea::placeholder {
    color: var(--color-text-secondary);
}

.dashboard-main .dashboard-card .um-button,
.dashboard-main .dashboard-card button[type="submit"],
.dashboard-main .dashboard-card input[type="submit"] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 22px;
    background-color: var(--color-primary);
    color: var(--color-text-on-primary);
    border: 1.5px solid var(--color-primary);
    border-radius: var(--radius-md);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    font-family: var(--font-primary);
    cursor: pointer;
    transition: background-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);
    box-shadow: 0 2px 8px rgba(29, 78, 216, 0.25);
}

.dashboard-main .dashboard-card .um-button:hover,
.dashboard-main .dashboard-card button[type="submit"]:hover,
.dashboard-main .dashboard-card input[type="submit"]:hover {
    background-color: var(--color-primary-light);
    border-color: var(--color-primary-light);
    box-shadow: 0 4px 14px rgba(59, 130, 246, 0.35);
    transform: translateY(-1px);
}

.dashboard-main .dashboard-card .um-notice,
.dashboard-main .dashboard-card .um-alert {
    padding: 10px 14px;
    border-radius: var(--radius-md);
    font-size: 13px;
    font-weight: var(--font-weight-medium);
    margin-bottom: var(--space-md);
}

.dashboard-main .dashboard-card .um-notice-success,
.dashboard-main .dashboard-card .um-alert-success {
    background-color: #F0FDF4;
    border: 1px solid #BBF7D0;
    color: #16A34A;
}

.dashboard-main .dashboard-card .um-notice-error,
.dashboard-main .dashboard-card .um-alert-error {
    background-color: #FEF2F2;
    border: 1px solid #FECACA;
    color: #DC2626;
}

.dashboard-notices-list {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: var(--space-sm) 0;
}

.dashboard-notice-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 20px;
    text-decoration: none;
    color: var(--color-text-primary);
    border-bottom: 1px solid var(--color-border);
    transition: background-color var(--transition-fast);
}

.dashboard-notice-item:last-child {
    border-bottom: none;
}

.dashboard-notice-item:hover {
    background-color: var(--color-surface-blue);
}

.dashboard-notice-dot {
    width: 8px;
    height: 8px;
    border-radius: var(--radius-full);
    background-color: var(--color-primary);
    flex-shrink: 0;
    margin-top: 5px;
}

.dashboard-notice-info {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}

.dashboard-notice-title {
    font-size: 13px;
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    transition: color var(--transition-fast);
}

.dashboard-notice-item:hover .dashboard-notice-title {
    color: var(--color-primary);
}

.dashboard-notice-date {
    font-size: 11px;
    color: var(--color-text-secondary);
    font-weight: var(--font-weight-regular);
}

.dashboard-view-all {
    display: block;
    padding: 12px 20px;
    font-size: 13px;
    font-weight: var(--font-weight-semibold);
    color: var(--color-primary);
    text-decoration: none;
    background-color: var(--color-bg);
    border-top: 1px solid var(--color-border);
    transition: background-color var(--transition-fast), color var(--transition-fast);
}

.dashboard-view-all:hover {
    background-color: var(--color-surface-blue);
    color: var(--color-primary-light);
}

@media (max-width: 1100px) {
    .dashboard-layout {
        grid-template-columns: 1fr 280px;
    }
}

@media (max-width: 991px) {

    .dashboard-wrapper {
        padding: 36px 0 64px;
    }

    .dashboard-layout {
        grid-template-columns: 1fr;
    }

    .dashboard-side {
        position: static;
        top: auto;
    }

    .dashboard-quick-links {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 575px) {

    .dashboard-wrapper {
        padding: 28px 0 56px;
    }

    .dashboard-header {
        padding: 18px 20px;
        gap: var(--space-md);
    }

    .dashboard-header .btn {
        width: 100%;
        justify-content: center;
    }

    .dashboard-avatar {
        width: 56px;
        height: 56px;
    }

    .dashboard-username {
        font-size: 18px;
    }

    .dashboard-quick-links {
        grid-template-columns: repeat(3, 1fr);
        gap: 10px;
    }

    .dashboard-quick-card {
        padding: 16px 10px 12px;
        font-size: 12px;
    }

    .dashboard-quick-icon {
        width: 40px;
        height: 40px;
        border-radius: 10px;
    }

    .dashboard-card-title {
        font-size: 14px;
        padding: 14px 18px;
    }

    .dashboard-main .dashboard-card .um-form,
    .dashboard-main .dashboard-card .um {
        padding: 18px;
    }

    .dashboard-notice-item {
        padding: 10px var(--space-md);
    }

    .dashboard-view-all {
        padding: 10px var(--space-md);
    }
}

[data-theme="dark"] .dashboard-main .dashboard-card .um-notice-success,
[data-theme="dark"] .dashboard-main .dashboard-card .um-alert-success,
.dark-mode .dashboard-main .dashboard-card .um-notice-success,
.dark-mode .dashboard-main .dashboard-card .um-alert-success {
    background-color: #052E16;
    border-color: #166534;
    color: #4ADE80;
}

[data-theme="dark"] .dashboard-main .dashboard-card .um-notice-error,
[data-theme="dark"] .dashboard-main .dashboard-card .um-alert-error,
.dark-mode .dashboard-main .dashboard-card .um-notice-error,
.dark-mode .dashboard-main .dashboard-card .um-alert-error {
    background-color: #450A0A;
    border-color: #7F1D1D;
    color: #FCA5A5;
}

@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) .dashboard-main .dashboard-card .um-notice-success,
    :root:not([data-theme="light"]) .dashboard-main .dashboard-card .um-alert-success {
        background-color: #052E16;
        border-color: #166534;
        color: #4ADE80;
    }

    :root:not([data-theme="light"]) .dashboard-main .dashboard-card .um-notice-error,
    :root:not([data-theme="light"]) .dashboard-main .dashboard-card .um-alert-error {
        background-color: #450A0A;
        border-color: #7F1D1D;
        color: #FCA5A5;
    }
}

/* Search page */
.search-page-wrapper {
    background-color: var(--color-bg);
    padding: 56px 0 80px;
    min-height: 60vh;
}

.search-page-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 10px;
    margin-bottom: var(--space-2xl);
}

.search-page-title {
    font-size: 34px;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    line-height: 1.25;
    letter-spacing: -0.5px;
    margin: 0;
}

.search-query-highlight {
    color: var(--color-primary);
}

.search-results-count {
    font-size: 15px;
    color: var(--color-text-secondary);
    margin: 0;
}

.search-results-count strong {
    color: var(--color-primary);
    font-weight: var(--font-weight-bold);
}

.search-bar-wrapper {
    max-width: 600px;
    margin: 0 auto 48px;
}

.search-results-form-inner {
    display: flex;
    align-items: center;
    background-color: var(--color-card);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: 6px 6px 6px 16px;
    gap: 10px;
    box-shadow: var(--shadow-sm);
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.search-results-form-inner:focus-within {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(29, 78, 216, 0.12);
}

.search-form-icon {
    color: var(--color-text-secondary);
    flex-shrink: 0;
}

.search-results-input {
    flex: 1;
    border: none;
    outline: none;
    background: transparent;
    font-size: 15px;
    color: var(--color-text-primary);
    font-family: var(--font-primary);
    padding: 7px 0;
}

.search-results-input::placeholder {
    color: var(--color-text-secondary);
}

.search-results-btn {
    background-color: var(--color-primary);
    color: var(--color-text-on-primary);
    border: none;
    border-radius: var(--radius-md);
    padding: 10px 22px;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    cursor: pointer;
    font-family: var(--font-primary);
    transition: background-color var(--transition-fast), box-shadow var(--transition-fast);
    white-space: nowrap;
    box-shadow: 0 2px 8px rgba(29, 78, 216, 0.25);
}

.search-results-btn:hover {
    background-color: var(--color-primary-light);
    box-shadow: 0 4px 14px rgba(59, 130, 246, 0.35);
}

.search-results-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-lg);
    margin-bottom: 40px;
}

.search-card {
    display: flex;
    flex-direction: column;
    background-color: var(--color-card);
    border: 1.5px solid var(--color-border);
    border-radius: 14px;
    overflow: hidden;
    transition: border-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-base);
    list-style: none;
}

.search-card:hover {
    border-color: var(--color-primary);
    box-shadow: 0 10px 36px rgba(29, 78, 216, 0.10);
    transform: translateY(-4px);
}

.search-card-image {
    display: block;
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background-color: var(--color-surface-blue);
    text-decoration: none;
    flex-shrink: 0;
}

.search-card-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform var(--transition-slow);
}

.search-card-img-default {
    object-fit: contain;
    padding: 20px;
    opacity: 0.4;
}

.search-card:hover .search-card-img:not(.search-card-img-default) {
    transform: scale(1.04);
}

.search-card-type-badge {
    position: absolute;
    top: 12px;
    left: 12px;
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    border-radius: var(--radius-full);
    font-size: 11px;
    font-weight: var(--font-weight-bold);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    background-color: var(--color-surface-blue);
    color: var(--color-primary);
}

.search-type-article  { background-color: var(--color-surface-blue);  color: var(--color-primary); }
.search-type-notice   { background-color: var(--color-surface-amber);  color: var(--color-secondary-dark); }
.search-type-course   { background-color: #F0FDF4;  color: #16A34A; }
.search-type-page     { background-color: var(--color-bg);  color: var(--color-text-secondary); }
.search-type-blog     { background-color: #FDF2F8;  color: #9333EA; }

.search-card-content {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 18px 20px 20px;
    flex: 1;
}

.search-card-meta {
    display: flex;
    align-items: center;
    gap: 12px;
}

.search-card-date {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 12px;
    color: var(--color-text-secondary);
    font-weight: var(--font-weight-medium);
}

.search-card-date svg {
    color: var(--color-text-secondary);
    flex-shrink: 0;
}

.search-card-title {
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    line-height: 1.4;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.search-card-title a {
    color: inherit;
    text-decoration: none;
    transition: color var(--transition-fast);
}

.search-card:hover .search-card-title a {
    color: var(--color-primary);
}

.search-card-excerpt {
    font-size: 13px;
    color: var(--color-text-secondary);
    line-height: 1.65;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    flex: 1;
}

.search-card-footer {
    margin-top: auto;
    padding-top: 12px;
    border-top: 1px solid var(--color-border);
}

.search-card-link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 13px;
    font-weight: var(--font-weight-semibold);
    color: var(--color-primary);
    text-decoration: none;
    transition: gap var(--transition-fast);
}

.search-card:hover .search-card-link {
    gap: 8px;
}

.search-pagination .nav-links {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    justify-content: center;
}

.search-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    min-width: 40px;
    height: 40px;
    padding: 0 10px;
    border-radius: var(--radius-md);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary);
    background-color: var(--color-card);
    border: 1.5px solid var(--color-border);
    text-decoration: none;
    transition: border-color var(--transition-fast), background-color var(--transition-fast), color var(--transition-fast);
}

.search-pagination .page-numbers:hover {
    border-color: var(--color-primary);
    background-color: var(--color-surface-blue);
    color: var(--color-primary);
}

.search-pagination .page-numbers.current {
    background-color: var(--color-primary);
    border-color: var(--color-primary);
    color: var(--color-text-on-primary);
    font-weight: var(--font-weight-semibold);
    box-shadow: 0 2px 8px rgba(29, 78, 216, 0.30);
}

.search-pagination .page-numbers.dots {
    border-color: transparent;
    background: none;
    pointer-events: none;
}

.search-no-results {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 14px;
    padding: 64px var(--space-lg);
    background-color: var(--color-card);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-xl);
}

.no-results-icon {
    width: 96px;
    height: 96px;
    border-radius: var(--radius-2xl);
    background-color: var(--color-surface-blue);
    color: var(--color-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 4px;
}

.search-no-results h2 {
    font-size: var(--font-size-xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin: 0;
}

.search-no-results > p {
    font-size: 15px;
    color: var(--color-text-secondary);
    margin: 0;
    max-width: 480px;
    line-height: 1.7;
}

.search-no-results > p strong {
    color: var(--color-text-primary);
}

.no-results-suggestions {
    width: 100%;
    max-width: 1200px;
    margin-top: 10px;
    padding-top: var(--space-lg);
    border-top: 1px solid var(--color-border);
}

.no-results-suggestions h3 {
    font-size: 13px;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin: 0 0 14px;
}

.suggestion-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
}

.suggestion-link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 16px;
    background-color: var(--color-bg);
    border: 1.5px solid var(--color-border);
    border-radius: 9px;
    font-size: 13px;
    font-weight: var(--font-weight-medium);
    color: var(--color-text-primary);
    text-decoration: none;
    transition: border-color var(--transition-fast), background-color var(--transition-fast),
                color var(--transition-fast), transform var(--transition-fast);
}

.suggestion-link svg {
    color: var(--color-text-secondary);
    flex-shrink: 0;
    transition: color var(--transition-fast);
}

.suggestion-link:hover {
    border-color: var(--color-primary);
    background-color: var(--color-surface-blue);
    color: var(--color-primary);
    transform: translateY(-1px);
}

.suggestion-link:hover svg {
    color: var(--color-primary);
}

@media (max-width: 991px) {

    .search-page-wrapper {
        padding: 40px 0 64px;
    }

    .search-results-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .search-page-title {
        font-size: 26px;
    }
}

@media (max-width: 575px) {

    .search-page-wrapper {
        padding: var(--space-2xl) 0 56px;
    }

    .search-page-title {
        font-size: 21px;
    }

    .search-results-grid {
        grid-template-columns: 1fr;
        gap: var(--space-md);
    }

    .search-results-form-inner {
        flex-wrap: wrap;
        padding: 10px 12px;
        gap: var(--space-sm);
    }

    .search-results-btn {
        width: 100%;
        justify-content: center;
    }

    .search-bar-wrapper {
        margin-bottom: var(--space-2xl);
    }

    .search-no-results {
        padding: 40px var(--space-md);
    }

    .no-results-icon {
        width: 72px;
        height: 72px;
        border-radius: 18px;
    }

    .no-results-icon svg {
        width: 36px;
        height: 36px;
    }

    .suggestion-links {
        gap: var(--space-sm);
    }

    .suggestion-link {
        font-size: 12px;
        padding: 7px 12px;
    }
}

[data-theme="dark"] .search-type-course,
.dark-mode .search-type-course {
    background-color: #052E16;
    color: #4ADE80;
}

[data-theme="dark"] .search-type-blog,
.dark-mode .search-type-blog {
    background-color: #3B0764;
    color: #D8B4FE;
}

@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) .search-type-course {
        background-color: #052E16;
        color: #4ADE80;
    }

    :root:not([data-theme="light"]) .search-type-blog {
        background-color: #3B0764;
        color: #D8B4FE;
    }
}

/* CONTACT PAGE STYLES */

.contact-top-banner {
    background: linear-gradient(145deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
    padding: var(--space-2xl) var(--space-xl);
    color: var(--color-text-on-primary);
}

.contact-banner-inner {
    max-width: 900px;
    margin: 0 auto;
    text-align: center;
}

.contact-banner-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--space-sm);
    background: rgba(255, 255, 255, 0.15);
    padding: var(--space-sm) 1.25rem;
    border-radius: var(--radius-full);
    font-size: 0.9rem;
    font-weight: var(--font-weight-medium);
    margin-bottom: var(--space-lg);
    backdrop-filter: blur(4px);
}

.contact-banner-badge i {
    font-size: 1rem;
    color: var(--color-secondary);
}

.contact-banner-inner h1 {
    font-size: 2.8rem;
    font-weight: var(--font-weight-bold);
    margin-bottom: var(--space-md);
    letter-spacing: -0.02em;
    color: var(--color-text-on-primary);
    line-height: var(--line-height-tight);
}

.banner-highlight {
    color: var(--color-secondary);
    position: relative;
    display: inline-block;
}

.contact-banner-inner p {
    font-size: var(--font-size-md);
    max-width: 650px;
    margin: 0 auto var(--space-xl);
    color: rgba(255, 255, 255, 0.9);
    line-height: var(--line-height-normal);
}

.contact-banner-stats {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2.5rem;
    flex-wrap: wrap;
}

.banner-stat {
    display: flex;
    align-items: center;
    gap: 10px;
    color: rgba(255, 255, 255, 0.9);
    font-size: 0.95rem;
}

.banner-stat i {
    color: var(--color-secondary);
    font-size: var(--font-size-md);
}

.contact-main-area {
    padding: var(--space-3xl) var(--space-xl);
    background: var(--color-bg);
}

.contact-form-panel {
    margin: 0 auto;
    background: var(--color-card);
    border-radius: var(--radius-2xl);
    padding: var(--space-2xl);
    box-shadow: var(--shadow-md);
    border: 1px solid var(--color-border);
}

.form-panel-header {
    text-align: center;
    margin-bottom: var(--space-xl);
}

.form-panel-header h2 {
    font-size: var(--font-size-2xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin-bottom: var(--space-sm);
    letter-spacing: -0.02em;
}

.form-panel-header p {
    color: var(--color-text-secondary);
    font-size: 0.95rem;
}

.contact-form-panel .forminator-ui {
    margin: 0;
}

.contact-form-panel .forminator-field {
    margin-bottom: 1.25rem;
}

.contact-form-panel .forminator-label {
    font-weight: var(--font-weight-medium);
    font-size: 0.9rem;
    color: var(--color-text-primary);
    margin-bottom: 0.35rem;
}

.contact-form-panel .forminator-input,
.contact-form-panel .forminator-textarea {
    width: 100%;
    padding: 0.8rem var(--space-md);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-lg);
    font-size: 0.95rem;
    background: var(--color-bg);
    transition: all var(--transition-fast);
    box-sizing: border-box;
}

.contact-form-panel .forminator-input:focus,
.contact-form-panel .forminator-textarea:focus {
    outline: none;
    border-color: var(--color-primary);
    background: var(--color-card);
    box-shadow: 0 0 0 3px rgba(29, 78, 216, 0.1);
}

.contact-form-panel .forminator-button-submit {
    width: 100%;
    background: var(--color-primary);
    color: var(--color-text-on-primary);
    border: none;
    padding: 0.9rem var(--space-lg);
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-semibold);
    border-radius: var(--radius-lg);
    cursor: pointer;
    transition: background var(--transition-fast);
}

.contact-form-panel .forminator-button-submit:hover {
    background: var(--color-primary-light);
}

.contact-form-panel .forminator-response-message {
    margin-top: var(--space-md);
    padding: 0.75rem var(--space-md);
    border-radius: 10px;
    font-size: 0.9rem;
}

.contact-form-panel .forminator-success {
    background: #F0FDF4;
    border: 1px solid #BBF7D0;
    color: #166534;
}

.contact-form-panel .forminator-error {
    background: #FEF2F2;
    border: 1px solid #FECACA;
    color: #991B1B;
}

.contact-location-section {
    padding: var(--space-3xl) var(--space-xl);
    background: var(--color-card);
}

.location-title {
    text-align: center;
    max-width: 700px;
    margin: 0 auto var(--space-2xl);
}

.location-title h2 {
    font-size: var(--font-size-2xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin-bottom: 0.75rem;
    letter-spacing: -0.02em;
}

.location-title p {
    color: var(--color-text-secondary);
    font-size: var(--font-size-base);
}

.location-main-container {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    gap: var(--space-xl);
    align-items: stretch;
}

.location-map-wrapper {
    flex: 1.2;
    position: relative;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: var(--shadow-md);
    min-height: 400px;
}

.location-map {
    width: 100%;
    height: 100%;
}

.location-map iframe {
    width: 100%;
    height: 100%;
    min-height: 400px;
    border: 0;
    display: block;
}

.map-overlay {
    position: absolute;
    bottom: 20px;
    left: 20px;
    background: var(--color-card);
    padding: 0.75rem 1.25rem;
    border-radius: var(--radius-full);
    display: inline-flex;
    align-items: center;
    gap: var(--space-sm);
    box-shadow: var(--shadow-md);
    font-size: 0.9rem;
    font-weight: var(--font-weight-medium);
    color: var(--color-text-primary);
}

.map-overlay i {
    color: var(--color-primary);
}

.location-office-info {
    flex: 0.9;
    background: var(--color-bg);
    border-radius: 20px;
    padding: var(--space-xl);
    display: flex;
    flex-direction: column;
}

.office-header {
    margin-bottom: var(--space-lg);
}

.office-header h3 {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin-bottom: var(--space-sm);
    letter-spacing: -0.02em;
}

.office-header p {
    color: var(--color-text-secondary);
    font-size: 0.9rem;
    display: flex;
    align-items: center;
    gap: 6px;
}

.office-header p i {
    color: var(--color-primary);
}

.info-grid {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    margin-bottom: var(--space-xl);
}

.info-card {
    display: flex;
    gap: var(--space-md);
    background: var(--color-card);
    padding: 1.25rem;
    border-radius: var(--radius-xl);
    border: 1px solid var(--color-border);
    transition: all var(--transition-fast);
}

.info-card:hover {
    border-color: var(--color-primary);
    box-shadow: 0 4px 12px rgba(29, 78, 216, 0.08);
}

.info-icon {
    width: 44px;
    height: 44px;
    background: var(--color-surface-blue);
    border-radius: var(--radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.info-icon i {
    font-size: 1.2rem;
    color: var(--color-primary);
}

.info-content {
    flex: 1;
}

.info-content strong {
    display: block;
    font-size: 0.9rem;
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    margin-bottom: 0.4rem;
}

.address-text {
    font-style: normal;
    font-size: 0.9rem;
    color: var(--color-text-secondary);
    line-height: 1.5;
}

.hours-text {
    font-size: 0.9rem;
    color: var(--color-text-secondary);
    margin: 0;
    line-height: var(--line-height-normal);
}

.hours-text span {
    font-weight: var(--font-weight-medium);
    color: var(--color-text-primary);
}

.phone-numbers {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.phone-numbers a {
    color: var(--color-text-secondary);
    text-decoration: none;
    font-size: 0.9rem;
    display: flex;
    align-items: center;
    gap: 6px;
    transition: color var(--transition-fast);
}

.phone-numbers a:hover {
    color: var(--color-primary);
}

.phone-numbers a i {
    font-size: 0.85rem;
    color: var(--color-primary);
}

.directions-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-sm);
    background: var(--color-primary);
    color: var(--color-text-on-primary);
    padding: 0.9rem var(--space-lg);
    border-radius: var(--radius-lg);
    text-decoration: none;
    font-weight: var(--font-weight-semibold);
    font-size: 0.95rem;
    transition: background var(--transition-fast);
    margin-top: auto;
    border: none;
    cursor: pointer;
}

.directions-btn:hover {
    background: var(--color-primary-light);
    color: var(--color-text-on-primary);
}

.directions-btn i {
    transition: transform var(--transition-fast);
}

.directions-btn:hover i {
    transform: translateX(4px);
}

@media (max-width: 968px) {
    .location-main-container {
        flex-direction: column;
    }

    .location-map-wrapper {
        min-height: 350px;
    }

    .location-map iframe {
        min-height: 350px;
    }
}

@media (max-width: 768px) {
    .contact-top-banner {
        padding: 2.5rem var(--space-lg);
    }

    .contact-banner-inner h1 {
        font-size: 2.2rem;
    }

    .contact-banner-inner p {
        font-size: var(--font-size-base);
    }

    .contact-banner-stats {
        gap: var(--space-lg);
    }

    .contact-main-area {
        padding: var(--space-2xl) var(--space-lg);
    }

    .contact-form-panel {
        padding: var(--space-lg);
    }

    .contact-location-section {
        padding: var(--space-2xl) var(--space-lg);
    }

    .location-title h2 {
        font-size: 1.8rem;
    }
}

@media (max-width: 480px) {
    .contact-top-banner {
        padding: var(--space-xl) var(--space-md);
    }

    .contact-banner-inner h1 {
        font-size: 1.8rem;
    }

    .contact-banner-badge {
        font-size: 0.8rem;
        padding: 0.4rem var(--space-md);
    }

    .contact-banner-stats {
        flex-direction: column;
        gap: 0.75rem;
        align-items: flex-start;
    }

    .banner-stat {
        justify-content: flex-start;
    }

    .contact-main-area {
        padding: var(--space-xl) var(--space-md);
    }

    .contact-form-panel {
        padding: 1.25rem;
    }

    .form-panel-header h2 {
        font-size: var(--font-size-xl);
    }

    .contact-location-section {
        padding: var(--space-xl) var(--space-md);
    }

    .location-title h2 {
        font-size: var(--font-size-xl);
    }

    .location-office-info {
        padding: var(--space-lg);
    }

    .info-card {
        padding: var(--space-md);
        gap: 0.75rem;
    }

    .info-icon {
        width: 40px;
        height: 40px;
    }

    .info-icon i {
        font-size: var(--font-size-base);
    }

    .map-overlay {
        bottom: 15px;
        left: 15px;
        font-size: 0.8rem;
        padding: 0.6rem var(--space-md);
    }
}

@media (max-width: 360px) {
    .contact-banner-inner h1 {
        font-size: var(--font-size-xl);
    }

    .location-map-wrapper {
        min-height: 280px;
    }

    .location-map iframe {
        min-height: 280px;
    }
}

[data-theme="dark"] .contact-form-panel .forminator-success,
.dark-mode .contact-form-panel .forminator-success {
    background-color: #052E16;
    border-color: #166534;
    color: #4ADE80;
}

[data-theme="dark"] .contact-form-panel .forminator-error,
.dark-mode .contact-form-panel .forminator-error {
    background-color: #450A0A;
    border-color: #7F1D1D;
    color: #FCA5A5;
}

@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) .contact-form-panel .forminator-success {
        background-color: #052E16;
        border-color: #166534;
        color: #4ADE80;
    }

    :root:not([data-theme="light"]) .contact-form-panel .forminator-error {
        background-color: #450A0A;
        border-color: #7F1D1D;
        color: #FCA5A5;
    }
}

/* CONTRIBUTE PAGE STYLES  */

.contribute-wrapper {
    max-width: 1200px;
    margin: 0 auto;
    padding: var(--space-2xl) var(--space-xl);
    background: var(--color-bg);
}

  .contribute-header {
    text-align: center;
    margin-bottom: var(--space-2xl);
    padding: var(--space-3xl) var(--space-xl);
    background: linear-gradient(135deg, var(--color-surface-blue) 0%, var(--color-bg) 100%);
    border-radius: var(--radius-2xl);
    border: 1px solid var(--color-border);
    position: relative;
    overflow: hidden;
}

/* Dark mode fix for contribute header */
[data-theme="dark"] .contribute-header,
.dark-mode .contribute-header {
    background: linear-gradient(135deg, var(--color-surface-blue) 0%, var(--color-card) 100%);
}

[data-theme="dark"] .contribute-header::before,
.dark-mode .contribute-header::before {
    background-image:
        linear-gradient(rgba(59, 130, 246, 0.08) 1px, transparent 1px),
        linear-gradient(90deg, rgba(59, 130, 246, 0.08) 1px, transparent 1px);

}

.contribute-header h1 {
    font-size: var(--font-size-3xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin-bottom: 0.75rem;
    letter-spacing: -0.02em;
}

.contribute-header p {
    font-size: var(--font-size-md);
    color: var(--color-text-secondary);
    max-width: 600px;
    margin: 0 auto;
}

.contribute-main {
    display: flex;
    gap: var(--space-xl);
    align-items: flex-start;
}

.guidelines-side {
    flex: 1;
    background: var(--color-card);
    border-radius: 20px;
    padding: var(--space-xl);
    box-shadow: var(--shadow-md);
    border: 1px solid var(--color-border);
}

.guidelines-title {
    font-size: var(--font-size-xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin-bottom: var(--space-lg);
    letter-spacing: -0.02em;
    padding-bottom: var(--space-md);
    border-bottom: 2px solid var(--color-border);
}

.guidelines-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-lg);
}

.guideline-card {
    display: flex;
    gap: var(--space-md);
    padding: var(--space-md);
    background: var(--color-bg);
    border-radius: var(--radius-xl);
    transition: all var(--transition-fast);
    border: 1px solid transparent;
}

.guideline-card:hover {
    background: var(--color-card);
    border-color: var(--color-border);
    box-shadow: var(--shadow-sm);
}

.guideline-icon {
    width: 44px;
    height: 44px;
    background: var(--color-surface-blue);
    border-radius: var(--radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.guideline-icon svg {
    width: 22px;
    height: 22px;
    fill: var(--color-primary);
}

.guideline-content {
    flex: 1;
}

.guideline-content h3 {
    font-size: var(--font-size-md);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    margin-bottom: 0.4rem;
}

.guideline-content p {
    font-size: 0.9rem;
    color: var(--color-text-secondary);
    line-height: var(--line-height-normal);
    margin-bottom: var(--space-sm);
}

.size-badge {
    display: inline-block;
    background: var(--color-surface-amber);
    color: var(--color-secondary);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-semibold);
    padding: 0.25rem 0.75rem;
    border-radius: var(--radius-full);
    margin-top: 0.25rem;
}

.form-side {
    flex: 1.2;
    background: var(--color-card);
    border-radius: 20px;
    padding: var(--space-xl);
    box-shadow: var(--shadow-md);
    border: 1px solid var(--color-border);
}

.form-title {
    font-size: var(--font-size-xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin-bottom: var(--space-sm);
    letter-spacing: -0.02em;
}

.form-subtitle {
    font-size: 0.95rem;
    color: var(--color-text-secondary);
    margin-bottom: var(--space-xl);
    padding-bottom: var(--space-md);
    border-bottom: 1px solid var(--color-border);
}

.contribute-form .forminator-ui {
    margin: 0;
}

.contribute-form .forminator-field {
    margin-bottom: var(--space-lg);
}

.contribute-form .forminator-label {
    font-weight: var(--font-weight-medium);
    font-size: 0.9rem;
    color: var(--color-text-primary);
    margin-bottom: 0.4rem;
    display: block;
}

.contribute-form .forminator-label .forminator-required {
    color: #EF4444;
    margin-left: 3px;
}

.contribute-form .forminator-input,
.contribute-form .forminator-select,
.contribute-form .forminator-textarea {
    width: 100%;
    padding: 0.8rem var(--space-md);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-lg);
    font-size: 0.95rem;
    background: var(--color-bg);
    color: var(--color-text-primary);
    transition: all var(--transition-fast);
    box-sizing: border-box;
}

.contribute-form .forminator-input:focus,
.contribute-form .forminator-select:focus,
.contribute-form .forminator-textarea:focus {
    outline: none;
    border-color: var(--color-primary);
    background: var(--color-card);
    box-shadow: 0 0 0 3px rgba(29, 78, 216, 0.1);
}

.contribute-form .forminator-textarea {
    min-height: 120px;
    resize: vertical;
}

.contribute-form .forminator-file-upload {
    width: 100%;
}

.contribute-form .forminator-file-upload .forminator-input-file {
    display: none;
}

.contribute-form .forminator-file-upload .forminator-button-upload {
    width: 100%;
    background: var(--color-bg);
    color: var(--color-text-primary);
    border: 1.5px dashed var(--color-border);
    padding: var(--space-md);
    border-radius: var(--radius-lg);
    font-size: 0.95rem;
    font-weight: var(--font-weight-medium);
    cursor: pointer;
    transition: all var(--transition-fast);
    text-align: center;
}

.contribute-form .forminator-file-upload .forminator-button-upload:hover {
    border-color: var(--color-primary);
    background: var(--color-surface-blue);
    color: var(--color-primary);
}

.contribute-form .forminator-file-upload .forminator-button-upload i {
    margin-right: var(--space-sm);
    color: var(--color-primary);
}

.contribute-form .forminator-radio,
.contribute-form .forminator-checkbox {
    background: var(--color-bg);
    padding: var(--space-md);
    border-radius: var(--radius-lg);
    border: 1.5px solid var(--color-border);
}

.contribute-form .forminator-radio-label,
.contribute-form .forminator-checkbox-label {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: var(--space-sm) 0;
    font-size: 0.95rem;
    color: var(--color-text-primary);
    cursor: pointer;
}

.contribute-form .forminator-radio input[type="radio"],
.contribute-form .forminator-checkbox input[type="checkbox"] {
    width: 18px;
    height: 18px;
    accent-color: var(--color-primary);
    cursor: pointer;
}

.contribute-form .forminator-button-submit {
    width: 100%;
    background: var(--color-primary);
    color: var(--color-text-on-primary);
    border: none;
    padding: 0.9rem var(--space-lg);
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-semibold);
    border-radius: var(--radius-lg);
    cursor: pointer;
    transition: background var(--transition-fast);
    margin-top: var(--space-sm);
}

.contribute-form .forminator-button-submit:hover {
    background: var(--color-primary-light);
}

.contribute-form .forminator-response-message {
    margin-top: var(--space-lg);
    padding: 0.75rem var(--space-md);
    border-radius: 10px;
    font-size: 0.9rem;
}

.contribute-form .forminator-success {
    background: #F0FDF4;
    border: 1px solid #BBF7D0;
    color: #166534;
}

.contribute-form .forminator-error {
    background: #FEF2F2;
    border: 1px solid #FECACA;
    color: #991B1B;
}

.contribute-form .forminator-description {
    font-size: 0.8rem;
    color: var(--color-text-secondary);
    margin-top: 0.35rem;
}

.contribute-form .forminator-description span {
    color: var(--color-primary);
    font-weight: var(--font-weight-medium);
}

.contribute-footer {
    margin-top: var(--space-xl);
    text-align: center;
}

@media (max-width: 968px) {
    .contribute-main {
        flex-direction: column;
    }

    .guidelines-side,
    .form-side {
        width: 100%;
    }
}

@media (max-width: 768px) {
    .contribute-wrapper {
        padding: var(--space-xl) var(--space-lg);
    }

    .contribute-header h1 {
        font-size: var(--font-size-2xl);
    }

    .contribute-header p {
        font-size: var(--font-size-base);
    }

    .guidelines-side,
    .form-side {
        padding: var(--space-lg);
    }

    .guidelines-title,
    .form-title {
        font-size: 1.3rem;
    }
}

@media (max-width: 480px) {
    .contribute-wrapper {
        padding: var(--space-lg) var(--space-md);
    }

    .contribute-header h1 {
        font-size: 1.6rem;
    }

    .guideline-card {
        padding: 0.75rem;
        gap: 0.75rem;
    }

    .guideline-icon {
        width: 38px;
        height: 38px;
    }

    .guideline-icon svg {
        width: 18px;
        height: 18px;
    }

    .guideline-content h3 {
        font-size: var(--font-size-base);
    }

    .guideline-content p {
        font-size: 0.85rem;
    }

    .guidelines-side,
    .form-side {
        padding: 1.25rem;
    }

    .contribute-form .forminator-radio,
    .contribute-form .forminator-checkbox {
        padding: 0.75rem;
    }

    .contribute-form .forminator-button-submit {
        padding: 0.8rem 1.25rem;
        font-size: 0.95rem;
    }
}

@media (max-width: 360px) {
    .contribute-header h1 {
        font-size: var(--font-size-lg);
    }

    .guideline-card {
        flex-direction: column;
        align-items: flex-start;
    }

    .guideline-icon {
        width: 36px;
        height: 36px;
    }
}

[data-theme="dark"] .contribute-form .forminator-success,
.dark-mode .contribute-form .forminator-success {
    background-color: #052E16;
    border-color: #166534;
    color: #4ADE80;
}

[data-theme="dark"] .contribute-form .forminator-error,
.dark-mode .contribute-form .forminator-error {
    background-color: #450A0A;
    border-color: #7F1D1D;
    color: #FCA5A5;
}

[data-theme="dark"] .contribute-form .forminator-label .forminator-required,
.dark-mode .contribute-form .forminator-label .forminator-required {
    color: #FCA5A5;
}

@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) .contribute-form .forminator-success {
        background-color: #052E16;
        border-color: #166534;
        color: #4ADE80;
    }

    :root:not([data-theme="light"]) .contribute-form .forminator-error {
        background-color: #450A0A;
        border-color: #7F1D1D;
        color: #FCA5A5;
    }

    :root:not([data-theme="light"]) .contribute-form .forminator-label .forminator-required {
        color: #FCA5A5;
    }
}

/*  FACULTY PAGE STYLES — single-faculty.php */

.faculty-page {
    background-color: var(--color-bg);
}

.faculty-hero {
    background: linear-gradient(135deg, #1E293B 0%, var(--color-primary) 100%);
    padding: 64px 24px 56px;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.faculty-hero::before {
    content: '';
    position: absolute;
    width: 380px;
    height: 380px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.04);
    top: -120px;
    right: -80px;
    pointer-events: none;
}

.faculty-hero::after {
    content: '';
    position: absolute;
    width: 240px;
    height: 240px;
    border-radius: 50%;
    background: rgba(245, 158, 11, 0.08);
    bottom: -80px;
    left: -60px;
    pointer-events: none;
}

.faculty-title {
    font-size: 42px;
    font-weight: 800;
    color: var(--color-text-on-primary);
    margin: 0 0 12px;
    letter-spacing: -0.6px;
    line-height: var(--line-height-tight);
    position: relative;
    z-index: 1;
}

.faculty-short-desc {
    font-size: 18px;
    font-weight: var(--font-weight-semibold);
   margin-bottom: 14px;
    position: relative;
    z-index: 1;
}

.faculty-long-desc {
    font-size: 15px;
     line-height: 1.75;
    max-width: 680px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}
.faculty-long-desc span {
    color: #ffffff !important;
    font-weight: 400;
}

.faculty-short-desc span {
    color: #ffffff !important;
}
.faculty-long-desc p {
    margin: 0;
}

.choose-semester {
    padding: 56px 0 64px;
}

.semester-faculty-container {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 24px;
}

.choose-semester .section-title {
    font-size: 28px;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin: 0 0 32px;
    letter-spacing: -0.3px;
}

.faculty-layout {
    display: grid;
    grid-template-columns: 1fr 280px;
    gap: 32px;
    align-items: flex-start;
}

.faculty-main {
    min-width: 0;
}

.semester-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.sem-wrap {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.semester-card {
    display: flex;
    flex-direction: column;
    background-color: var(--color-card);
    border: 1.5px solid var(--color-border);
    border-radius: 14px;
    overflow: hidden;
    text-decoration: none;
    color: var(--color-text-primary);
    transition: border-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-base);
    position: relative;
}

.semester-card:hover {
    border-color: var(--color-primary);
    box-shadow: 0 10px 32px rgba(29, 78, 216, 0.12);
    transform: translateY(-4px);
}

.card-top {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 12px;
    padding: 20px 18px 16px;
    text-align: left;
    border-bottom: 1px solid var(--color-surface-blue);
    background-color: var(--color-primary-dark);
    justify-content: center;
}

.card-top .icon {
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background-color: var(--color-card);
    color: var(--color-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    transition: background-color var(--transition-fast), color var(--transition-fast);
    flex-shrink: 0;
}

.semester-card:hover .card-top .icon {
    background-color: var(--color-primary);
    color: var(--color-text-on-primary);
}

.semester-title {
    font-size: 15px;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-on-primary);
    margin: 0;
    line-height: 1.35;
    transition: color var(--transition-fast);
    text-align: left;
}

.semester-card:hover .semester-title {
    color: var(--color-text-on-primary);
}

.card-center {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12px 0;
    flex: 1;
}

.watermark-icon {
    font-size: 48px;
    opacity: 0.08;
    user-select: none;
    transition: opacity var(--transition-fast);
}

.semester-card:hover .watermark-icon {
    opacity: 0.15;
}

.card-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 18px;
    border-top: 1px solid var(--color-surface-blue);
    background-color: var(--color-bg); /* FIX: was #FAFAFA — hardcoded white broke dark mode */
    gap: 8px;
    transition: background-color var(--transition-fast);
}

.semester-card:hover .card-bottom {
    background-color: var(--color-surface-blue);
}

.subject-btn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 10px;
    background-color: var(--color-surface-blue);
    color: var(--color-primary);
    border: 1px solid var(--color-primary-light);
    border-radius: 7px;
    font-size: 11px;
    font-weight: var(--font-weight-semibold);
    cursor: pointer;
    font-family: var(--font-primary);
    transition: background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);
    white-space: nowrap;
    flex-shrink: 0;
}

.subject-btn:hover,
.subject-btn.open {
    background-color: var(--color-primary);
    color: var(--color-text-on-primary);
    border-color: var(--color-primary);
}

.subject-btn svg {
    flex-shrink: 0;
    transition: transform var(--transition-fast);
}

.subject-btn.open svg {
    transform: rotate(180deg);
}

.explore-btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    font-weight: var(--font-weight-semibold);
    color: var(--color-primary);
    white-space: nowrap;
    transition: gap var(--transition-fast);
}

.explore-btn svg {
    transition: transform var(--transition-fast);
}

.semester-card:hover .explore-btn svg {
    transform: translateX(3px);
}

.subject-list {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.35s ease;
    background-color: var(--color-card);
    border: 1.5px solid var(--color-border);
    border-top: none;
    border-radius: 0 0 12px 12px;
    margin-top: -2px;
}

.subject-list.open {
    border-color: var(--color-primary-light);
}

.subject-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 14px;
    border-bottom: 1px solid var(--color-surface-blue);
    transition: background-color var(--transition-fast);
}

.subject-item:last-child {
    border-bottom: none;
}

.subject-item:hover {
    background-color: var(--color-bg);
}

.subject-name {
    font-size: 13px;
    color: var(--color-text-primary);
    font-weight: var(--font-weight-medium);
    line-height: 1.4;
    flex: 1;
}

.view-btn {
    display: inline-flex;
    align-items: center;
    padding: 4px 12px;
    background-color: var(--color-surface-blue);
    color: var(--color-primary);
    border-radius: var(--radius-md);
    font-size: 12px;
    font-weight: var(--font-weight-semibold);
    text-decoration: none;
    flex-shrink: 0;
    transition: background-color var(--transition-fast), color var(--transition-fast);
    border: 1px solid var(--color-primary-light);
}

.view-btn:hover {
    background-color: var(--color-primary);
    color: var(--color-text-on-primary);
    border-color: var(--color-primary);
}

.no-subjects {
    font-size: 13px;
    color: var(--color-text-secondary);
    padding: 14px;
    margin: 0;
    text-align: center;
}

.no-semesters {
    grid-column: 1 / -1;
    text-align: center;
    font-size: 15px;
    color: var(--color-text-secondary);
    padding: 40px;
}

.faculty-sidebar {
    position: sticky;
    top: 90px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.faculty-sidebar .ad-box {
    min-height: 260px;
    border-radius: var(--radius-lg);
    overflow: hidden;
    background-color: var(--color-card);
    border: 1.5px solid var(--color-border);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    text-align: center;
    padding: 24px;
    color: var(--color-text-secondary);
}

.faculty-sidebar .ad-box span {
    font-size: 12px;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.07em;
}

.why-choose-us {
    background-color: var(--color-card);
    padding: 56px 24px;
}

.why-choose-us h2 {
    font-size: 28px;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    text-align: center;
    margin: 0 0 36px;
    letter-spacing: -0.3px;
    max-width: 1280px;
    margin-left: auto;
    margin-right: auto;
}

.why-choose-us ul {
    list-style: none;
    margin: 0 auto;
    padding: 0;
    max-width: 1280px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.why-choose-us ul li {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    background-color: var(--color-bg);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: 20px;
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);
}

.why-choose-us ul li:hover {
    border-color: var(--color-primary);
    box-shadow: 0 6px 20px rgba(29, 78, 216, 0.09);
    transform: translateY(-2px);
}

.number-icon {
    width: 36px;
    height: 36px;
    border-radius: var(--radius-full);
    background-color: var(--color-primary);
    color: var(--color-text-on-primary);
    font-size: 15px;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 2px 8px rgba(29, 78, 216, 0.30);
}

.why-choose-us ul li strong {
    font-size: 14px;
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    line-height: var(--line-height-normal);
    padding-top: 6px;
}

.faculty-page > section:last-of-type {
    padding: 0 24px 72px;
    background-color: var(--color-bg);
}

.contribute-cta {
    max-width: 1280px;
    margin: 0 auto;
    background: linear-gradient(135deg, #1E293B 0%, var(--color-primary) 100%);
    border-radius: 20px;
    padding: 56px 48px;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.contribute-cta::before {
    content: '';
    position: absolute;
    width: 300px;
    height: 300px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.04);
    top: -80px;
    right: -80px;
    pointer-events: none;
}

.contribute-cta::after {
    content: '';
    position: absolute;
    width: 200px;
    height: 200px;
    border-radius: 50%;
    background: rgba(245, 158, 11, 0.10);
    bottom: -60px;
    left: -50px;
    pointer-events: none;
}

.cta-career {
    font-size: 30px;
    font-weight: 800;
    color: var(--color-text-on-primary);
    margin: 0 0 16px;
    letter-spacing: -0.4px;
    position: relative;
    z-index: 1;
}
.contribute-cta p span {
    color: #ffffff !important;
}

.contribute-cta > div {
    font-size: 15px;
    color: rgba(255, 255, 255, 0.75); 
    line-height: 1.75;
    max-width: 620px;
    margin: 0 auto 28px;
    position: relative;
    z-index: 1;
}

.contribute-cta > div p {
    margin: 0 0 10px;
}

.contribute-cta > div p:last-child {
    margin-bottom: 0;
}

.btn-contribute {
    display: inline-flex;
    align-items: center;
    gap: var(--space-sm);
    background-color: var(--color-secondary);
    color: var(--color-text-on-secondary);
    font-size: 15px;
    font-weight: var(--font-weight-bold);
    padding: 13px 28px;
    border-radius: var(--radius-md);
    text-decoration: none;
    box-shadow: 0 4px 14px rgba(245, 158, 11, 0.40);
    transition: background-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);
    position: relative;
    z-index: 1;
}

.btn-contribute:hover {
    background-color: var(--color-secondary-dark);
    box-shadow: 0 6px 20px rgba(245, 158, 11, 0.50);
    transform: translateY(-2px);
    color: var(--color-text-on-secondary);
}

.btn-contribute svg {
    flex-shrink: 0;
    transition: transform var(--transition-fast);
}

.btn-contribute:hover svg {
    transform: translateX(3px);
}

@media (max-width: 1200px) {
    .semester-faculty-container {
        padding: 0 20px;
    }

    .faculty-layout {
        grid-template-columns: 1fr 240px;
        gap: 24px;
    }

    .semester-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 18px;
    }
}

@media (max-width: 991px) {

    .faculty-hero {
        padding: 44px 20px 36px;
    }

    .faculty-title {
        font-size: 30px;
    }

    .faculty-short-desc {
        font-size: 16px;
    }

    .faculty-long-desc {
        font-size: 14px;
    }

    .choose-semester {
        padding: 40px 0 48px;
    }

    .faculty-sidebar {
        display: none;
    }

    .faculty-layout {
        grid-template-columns: 1fr;
    }

    .semester-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
    }

    .why-choose-us ul {
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
    }

    .contribute-cta {
        padding: 40px 28px;
        border-radius: var(--radius-xl);
    }

    .cta-career {
        font-size: 24px;
    }
}

@media (max-width: 767px) {

    .faculty-hero {
        padding: 36px 16px 30px;
    }

    .faculty-title {
        font-size: 26px;
    }

    .semester-faculty-container {
        padding: 0 16px;
    }

    .choose-semester {
        padding: 32px 0 40px;
    }

    .semester-grid {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .semester-card {
        flex-direction: column;
        border-radius: var(--radius-lg);
    }

    .card-top {
        flex-direction: row;
        align-items: center;
        justify-content: flex-start;
        padding: 16px 18px;
        gap: 14px;
        text-align: left;
        border-bottom: 1px solid var(--color-surface-blue);
    }

    .card-top .icon {
        width: 42px;
        height: 42px;
        font-size: 20px;
        border-radius: 10px;
        flex-shrink: 0;
    }

    .semester-title {
        font-size: 15px;
        font-weight: var(--font-weight-bold);
        text-align: left;
    }

    .card-center {
        display: flex;
        padding: 8px 0;
    }

    .watermark-icon {
        font-size: 36px;
    }

    .card-bottom {
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        padding: 12px 18px;
        border-top: 1px solid var(--color-surface-blue);
        background-color: var(--color-bg);
        gap: 10px;
        flex-wrap: nowrap;
    }

    .semester-card:hover .card-bottom {
        background-color: var(--color-surface-blue);
    }

    .subject-btn {
        display: inline-flex;
        align-items: center;
        gap: 5px;
        font-size: 12px;
        font-weight: var(--font-weight-semibold);
        padding: 6px 12px;
        flex-shrink: 0;
    }

    .explore-btn {
        display: inline-flex;
        align-items: center;
        gap: 4px;
        font-size: 13px;
        font-weight: var(--font-weight-semibold);
        color: var(--color-primary);
        white-space: nowrap;
        margin-left: auto;
    }

    .subject-item {
        padding: 9px 16px;
    }

    .subject-name {
        font-size: 13px;
    }

    .why-choose-us {
        padding: 36px 16px;
    }

    .why-choose-us h2 {
        font-size: 22px;
        margin-bottom: 24px;
    }

    .why-choose-us ul {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .faculty-page > section:last-of-type {
        padding: 0 16px 48px;
    }

    .contribute-cta {
        padding: 32px 20px;
        border-radius: 14px;
    }

    .cta-career {
        font-size: 21px;
    }

    .btn-contribute {
        padding: 11px 22px;
        font-size: 14px;
    }
}

@media (max-width: 575px) {

    .faculty-title {
        font-size: 22px;
    }

    .faculty-short-desc {
        font-size: 14px;
    }

    .semester-grid {
        gap: 12px;
    }

    .card-top {
        padding: 15px 15px 12px;
        gap: 12px;
    }

    .card-top .icon {
        width: 40px;
        height: 40px;
        font-size: 18px;
    }

    .semester-title {
        font-size: 14px;
    }

    .card-bottom {
        padding: 10px 15px;
    }

    .subject-btn {
        font-size: 11px;
        padding: 5px 10px;
    }

    .explore-btn {
        font-size: 11px;
    }

    .contribute-cta {
        padding: 28px 16px;
    }

    .cta-career {
        font-size: 18px;
    }

    .contribute-cta > div {
        font-size: 13px;
    }
}

[data-theme="dark"] .card-bottom,
.dark-mode .card-bottom {
    background-color: var(--color-card);
}

@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) .card-bottom {
        background-color: var(--color-card);
    }
}

/*    SEMESTER PAGE CSIT / BIT / BCA */

.hero-semester {
    width: 100%;
}

.hero-banner {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    position: relative;
    min-height: 280px;
    display: flex;
    align-items: flex-end;
}

.hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, var(--color-primary) 0%, #1E3A8A 55%, #0f1f5c 100%); /* FIX: was color-primary-dark which is too light in dark mode */
    display: flex;
    align-items: flex-end;
}

.hero-content {
    max-width: 1280px;
    width: 100%;
    margin: 0 auto;
    padding: 0 var(--space-lg) 36px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.hero-semester .hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background-color: rgba(245, 158, 11, 0.20);
    border: 1px solid rgba(245, 158, 11, 0.40);
    color: #FCD34D;
    padding: 5px 14px;
    border-radius: var(--radius-full);
    font-size: 12px;
    font-weight: var(--font-weight-bold);
    text-transform: uppercase;
    letter-spacing: 0.07em;
    width: fit-content;
}

.hero-semester .hero-badge svg {
    flex-shrink: 0;
}

.hero-semester .semester-hero-title {
    font-size: 36px;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-on-primary);
    margin: 0;
    line-height: var(--line-height-tight);
    letter-spacing: -0.4px;
}

.hero-subject-count {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: rgba(255, 255, 255, 0.75); /* FIX: was var(--color-border) — invisible in dark mode on gradient bg */
    font-weight: var(--font-weight-medium);
    margin: 0;
}

.hero-subject-count svg {
    flex-shrink: 0;
    color: var(--color-primary-light);
}

.hero-semester .breadcrumb-nav {
    background: none;
    border: none;
    padding: 0;
    margin-top: 4px;
}

.hero-semester .breadcrumb-wrapper {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.hero-semester .breadcrumb-item {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    color: rgba(255, 255, 255, 0.60); /* FIX: was color-text-secondary — too dark on gradient bg */
    text-decoration: none;
    font-weight: var(--font-weight-medium);
    transition: color var(--transition-fast);
}

.hero-semester .breadcrumb-item:hover {
    color: var(--color-secondary);
}

.hero-semester .breadcrumb-sep {
    color: rgba(255, 255, 255, 0.40); /* FIX: was color-text-secondary */
    font-size: 12px;
}

.hero-semester .breadcrumb-current {
    font-size: 12px;
    color: rgba(255, 255, 255, 0.75); /* FIX: was var(--color-border) — invisible in dark mode */
    font-weight: var(--font-weight-semibold);
}

.semester-page-wrapper {
    background-color: var(--color-bg);
    padding: 36px 0 80px;
}

.semester-three-col {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 var(--space-lg);
    display: grid;
    grid-template-columns: 220px 1fr 260px;
    gap: 28px;
    align-items: flex-start;
}

.semester-tab-sidebar {
    position: sticky;
    top: 90px;
    max-height: calc(100vh - 110px);
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--color-border) transparent;
}

.semester-tab-sidebar::-webkit-scrollbar {
    width: 4px;
}

.semester-tab-sidebar::-webkit-scrollbar-thumb {
    background-color: var(--color-border);
    border-radius: var(--radius-sm);
}

.tab-sidebar-inner {
    background-color: var(--color-card);
    border: 1.5px solid var(--color-border);
    border-radius: 14px;
    overflow: hidden;
}

.tab-sidebar-header {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 14px 16px;
    font-size: 11px;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    border-bottom: 1px solid var(--color-border);
    background-color: var(--color-bg);
}

.tab-sidebar-header svg {
    color: var(--color-primary);
    flex-shrink: 0;
}

.semester-tab-list {
    display: flex;
    flex-direction: column;
    padding: 6px;
    gap: 2px;
}

.semester-tab-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 9px 12px;
    border-radius: var(--radius-md);
    font-size: 13px;
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary);
    text-decoration: none;
    transition: background-color var(--transition-fast), color var(--transition-fast);
    gap: 6px;
}

.semester-tab-item:hover {
    background-color: var(--color-surface-blue);
    color: var(--color-primary);
}

.semester-tab-item.active {
    background-color: var(--color-primary);
    color: var(--color-text-on-primary);
    font-weight: var(--font-weight-semibold);
}

.tab-label {
    flex: 1;
    line-height: 1.3;
}

.tab-arrow {
    flex-shrink: 0;
    opacity: 0.7;
}

.faculty-switch {
    padding: 14px 16px;
    border-top: 1px solid var(--color-border);
    background-color: var(--color-bg);
}

.faculty-switch-label {
    font-size: 10px;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.09em;
    margin: 0 0 10px;
}

.faculty-switch-link {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    padding: 7px 10px;
    border-radius: 7px;
    font-size: 13px;
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary);
    text-decoration: none;
    transition: background-color var(--transition-fast), color var(--transition-fast);
    margin-bottom: 4px;
}

.faculty-switch-link:last-child {
    margin-bottom: 0;
}

.faculty-switch-link:hover {
    background-color: var(--color-surface-blue);
    color: var(--color-primary);
}

.fdot {
    width: 8px;
    height: 8px;
    border-radius: var(--radius-full);
    flex-shrink: 0;
}

.fdot-csit { background-color: var(--color-primary); }
.fdot-bit  { background-color: #16A34A; }
.fdot-bca  { background-color: var(--color-secondary-dark); }

.semester-center {
    min-width: 0;
}

.csit-section-header {
    margin-bottom: 20px;
}

.csit-section-title {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 18px;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin: 0;
}

.csit-section-title svg {
    color: var(--color-primary);
    flex-shrink: 0;
}

.subject-count-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 24px;
    height: 24px;
    padding: 0 7px;
    background-color: var(--color-primary);
    color: var(--color-text-on-primary);
    border-radius: var(--radius-full);
    font-size: 12px;
    font-weight: var(--font-weight-bold);
    line-height: 1;
}

.subject-wrapper {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.subject-card-link {
    display: block;
    text-decoration: none;
    color: inherit;
    animation: fadeInUp 0.4s ease both;
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(16px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.subject-card {
    display: flex;
    flex-direction: column;
    background-color: var(--color-card);
    border: 1.5px solid var(--color-border);
    border-radius: 14px;
    overflow: hidden;
    height: 100%;
    transition: border-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-base);
}

.subject-card-link:hover .subject-card {
    border-color: var(--color-primary);
    box-shadow: 0 10px 36px rgba(29, 78, 216, 0.11);
    transform: translateY(-4px);
}

.card-header {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 18px 18px 14px;
    border-bottom: 1px solid var(--color-border);
    background-color: var(--color-bg);
}

.card-icon-wrap {
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background-color: var(--color-surface-blue);
    color: var(--color-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background-color var(--transition-fast), color var(--transition-fast);
    font-size: 18px;
}

.subject-card-link:hover .card-icon-wrap {
    background-color: var(--color-primary);
    color: var(--color-text-on-primary);
}

.card-subject-name {
    font-size: 15px;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin: 0;
    line-height: 1.35;
    transition: color var(--transition-fast);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.subject-card-link:hover .card-subject-name {
    color: var(--color-primary);
}

.card-description {
    padding: 12px 18px 0;
    flex: 1;
}

.card-description p {
    font-size: 13px;
    color: var(--color-text-secondary);
    line-height: var(--line-height-normal);
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.card-meta {
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
    padding: 10px 18px;
}

.meta-chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 9px;
    background-color: var(--color-bg);
    color: var(--color-text-secondary);
    border-radius: var(--radius-full);
    font-size: 11px;
    font-weight: var(--font-weight-semibold);
    white-space: nowrap;
}

.meta-chip svg {
    flex-shrink: 0;
    color: var(--color-text-secondary);
}

.card-footer {
    padding: 12px 18px;
    border-top: 1px solid var(--color-border);
    background-color: var(--color-bg);
    transition: background-color var(--transition-fast);
}

.subject-card-link:hover .card-footer {
    background-color: var(--color-surface-blue);
}

.subject-btn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 13px;
    font-weight: var(--font-weight-semibold);
    color: var(--color-primary);
    transition: gap var(--transition-fast);
}

.subject-btn svg {
    transition: transform var(--transition-fast);
}

.subject-card-link:hover .subject-btn {
    gap: 8px;
}

.subject-card-link:hover .subject-btn svg {
    transform: translateX(2px);
}

.subjects-empty {
    grid-column: 1 / -1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 14px;
    padding: 64px var(--space-lg);
    background-color: var(--color-card);
    border: 1.5px solid var(--color-border);
    border-radius: 14px;
    color: var(--color-text-secondary);
}

.subjects-empty svg {
    color: var(--color-border);
}

.subjects-empty h3 {
    font-size: 18px;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-secondary);
    margin: 0;
}

.subjects-empty p {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    margin: 0;
    max-width: 320px;
}

.semester-ad-sidebar {
    position: sticky;
    top: 90px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.ad-box {
    border-radius: var(--radius-lg);
    overflow: hidden;
    background-color: var(--color-card);
    border: 1.5px solid var(--color-border);
}

.ad-box-tall {
    min-height: 260px;
    display: flex;
    align-items: stretch;
}

.ad-placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--space-sm);
    width: 100%;
    min-height: 260px;
    background: repeating-linear-gradient(
        45deg,
        var(--color-bg),
        var(--color-bg) 10px,
        var(--color-border) 10px,
        var(--color-border) 20px
    );
    color: var(--color-text-secondary);
    text-align: center;
    padding: var(--space-lg);
}

.ad-placeholder svg {
    color: var(--color-border);
}

.ad-placeholder span {
    font-size: 12px;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.07em;
}

.ad-placeholder small {
    font-size: 11px;
    color: var(--color-border);
}

@media (max-width: 1200px) {
    .semester-three-col {
        grid-template-columns: 200px 1fr 220px;
        gap: 20px;
    }
}

@media (max-width: 991px) {

    .semester-page-wrapper {
        padding: 24px 0 56px;
    }

    .semester-ad-sidebar {
        display: none;
    }

    .semester-three-col {
        grid-template-columns: 190px 1fr;
        gap: 18px;
    }

    .hero-semester .semester-hero-title {
        font-size: 26px;
    }

    .hero-banner {
        min-height: 240px;
    }

    .subject-wrapper {
        grid-template-columns: repeat(2, 1fr);
        gap: 14px;
    }
}

@media (max-width: 767px) {

    .semester-page-wrapper {
        padding: 20px 0 48px;
    }

    .semester-three-col {
        grid-template-columns: 1fr;
        gap: var(--space-md);
        padding: 0 var(--space-md);
    }

    .hero-banner {
        min-height: 200px;
    }

    .hero-content {
        padding: 0 var(--space-md) 28px;
    }

    .hero-semester .semester-hero-title {
        font-size: 22px;
    }

    .semester-tab-sidebar {
        position: static;
        max-height: none;
    }

    .tab-sidebar-inner {
        border-radius: var(--radius-lg);
        overflow: visible;
    }

    .tab-sidebar-header {
        border-radius: var(--radius-lg) var(--radius-lg) 0 0;
    }

    .semester-tab-list {
        flex-direction: row;
        flex-wrap: nowrap;
        overflow-x: auto;
        padding: var(--space-sm);
        gap: 6px;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }

    .semester-tab-list::-webkit-scrollbar {
        display: none;
    }

    .semester-tab-item {
        flex-shrink: 0;
        white-space: nowrap;
        padding: 7px 14px;
        border-radius: 7px;
    }

    .tab-arrow {
        display: none;
    }

    .faculty-switch {
        display: flex;
        flex-direction: row;
        align-items: center;
        gap: var(--space-sm);
        flex-wrap: wrap;
        padding: 10px 12px;
    }

    .faculty-switch-label {
        width: 100%;
        margin-bottom: 0;
    }

    .faculty-switch-link {
        flex: 1;
        justify-content: center;
        padding: 7px 10px;
        font-size: 12px;
        text-align: center;
    }

    .subject-wrapper {
        grid-template-columns: 1fr;
        gap: 12px;
    }
}

@media (max-width: 575px) {

    .hero-semester .semester-hero-title {
        font-size: 19px;
    }

    .hero-subject-count {
        font-size: 12px;
    }

    .hero-semester .breadcrumb-wrapper {
        font-size: 11px;
    }

    .tab-sidebar-header {
        font-size: 10px;
        padding: 10px 14px;
    }

    .semester-tab-item {
        font-size: 12px;
        padding: 6px 12px;
    }

    .card-header {
        padding: 13px 13px 10px;
        gap: 9px;
    }

    .card-icon-wrap {
        width: 38px;
        height: 38px;
    }

    .card-subject-name {
        font-size: 13px;
    }

    .card-description {
        padding: var(--space-sm) 13px 0;
    }

    .card-meta {
        padding: var(--space-sm) 13px;
    }

    .card-footer {
        padding: 10px 13px;
    }

    .subject-btn {
        font-size: 12px;
    }
}


/*  FAQ PAGE STYLES — single-faq.php */

.faq-page-wrapper,
body.page-template-single-faq {
    background-color: var(--color-bg);
}

.page-title {
    font-size: 36px;
    font-weight: 800;
    color: var(--color-text-primary);
    text-align: center;
    margin: 48px 0 40px;
    letter-spacing: -0.5px;
    line-height: var(--line-height-tight);
}

.faq-container {
    margin: 0 auto;
    padding: 0 0 80px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.faq-item {
    background-color: var(--color-card);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-lg);
    overflow: hidden;
    transition: border-color var(--transition-base), box-shadow var(--transition-base);
}

.faq-item:hover {
    border-color: var(--color-primary-light);
}

.faq-item.active {
    border-color: var(--color-primary);
    box-shadow: 0 4px 16px rgba(29, 78, 216, 0.10);
}

.faq-question {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 22px;
    cursor: pointer;
    background-color: var(--color-card);
    transition: background-color var(--transition-fast);
    user-select: none;
    outline: none;
}

.faq-question:hover {
    background-color: var(--color-bg);
}

.faq-item.active .faq-question {
    background-color: var(--color-surface-blue);
}

.faq-question:focus-visible {
    box-shadow: inset 0 0 0 2px var(--color-primary);
    border-radius: 10px;
}

.faq-question h3 {
    font-size: 15px;
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    margin: 0;
    line-height: var(--line-height-normal);
    flex: 1;
    transition: color var(--transition-fast);
}

.faq-item.active .faq-question h3 {
    color: var(--color-primary);
}

.toggle-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: var(--radius-full);
    background-color: var(--color-surface-blue);
    color: var(--color-primary);
    font-size: 20px;
    font-weight: var(--font-weight-regular);
    line-height: 1;
    flex-shrink: 0;
    transition: background-color var(--transition-fast), color var(--transition-fast), transform 0.3s ease;
}

.faq-item.active .toggle-icon {
    background-color: var(--color-primary);
    color: var(--color-text-on-primary);
    transform: rotate(180deg);
}

.faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.35s ease, padding var(--transition-base);
    padding: 0 22px;
    border-top: 0px solid var(--color-border);
}

.faq-item.active .faq-answer {
    max-height: 1000px;
    padding: 16px 22px 20px;
    border-top: 1px solid var(--color-border);
}

.faq-answer [itemprop="text"],
.faq-answer div {
    font-size: 14px;
    color: var(--color-text-secondary);
    line-height: 1.8;
}

.faq-answer p {
    margin: 0 0 12px;
    font-size: 14px;
    color: var(--color-text-secondary);
    line-height: 1.8;
}

.faq-answer p:last-child {
    margin-bottom: 0;
}

.faq-answer a {
    color: var(--color-primary);
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color var(--transition-fast);
}

.faq-answer a:hover {
    color: var(--color-primary-light);
}

.faq-answer ul,
.faq-answer ol {
    padding-left: 20px;
    margin: 0 0 12px;
}

.faq-answer li {
    font-size: 14px;
    color: var(--color-text-secondary);
    line-height: 1.7;
    margin-bottom: 6px;
}

.faq-answer ul li::marker {
    color: var(--color-primary);
}

.faq-answer strong {
    color: var(--color-text-primary);
    font-weight: var(--font-weight-semibold);
}

.faq-container > p {
    text-align: center;
    font-size: 15px;
    color: var(--color-text-secondary);
    padding: 48px 0;
}

@media (max-width: 991px) {
    .page-title {
        font-size: 28px;
        margin: 40px 0 32px;
    }

    .faq-container {
        padding: 0 0 64px;
    }
}

@media (max-width: 575px) {

    .page-title {
        font-size: 24px;
        margin: 32px 0 24px;
    }

    .faq-container {
        gap: 10px;
        padding: 0 0 48px;
    }

    .faq-question {
        padding: 15px 16px;
        gap: 12px;
    }

    .faq-question h3 {
        font-size: 14px;
    }

    .toggle-icon {
        width: 26px;
        height: 26px;
        font-size: 18px;
    }

    .faq-item.active .faq-answer {
        padding: 14px 16px 18px;
    }
}

/*   single-chapter.css*/

*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body {
    background: var(--color-bg);
    color: var(--color-text-primary);
    font-family: var(--font-primary);
    font-size: var(--font-size-base);
    line-height: var(--line-height-loose);
    -webkit-font-smoothing: antialiased;
}

a {
    color: inherit;
    text-decoration: none;
}

.hero {
    position: relative;
    background: linear-gradient(135deg, var(--color-primary) 0%, #1e3a8a 55%, #0f1f5c 100%);
    color: var(--color-text-on-primary);
    padding: 72px 0 56px;
    overflow: hidden;
}

.hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse 60% 80% at 80% 50%, rgba(59, 130, 246, .25) 0%, transparent 70%),
        radial-gradient(ellipse 40% 60% at 10% 80%, rgba(245, 158, 11, .13) 0%, transparent 60%);
    pointer-events: none;
}

.hero::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--color-secondary) 0%, var(--color-primary-light) 100%);
}

.hero-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
    position: relative;
    z-index: 1;
}

.chapter-hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: rgba(255, 255, 255, .12);
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: var(--radius-full);
    padding: 5px 14px;
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-bold);
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-bottom: 20px;
    backdrop-filter: blur(8px);
    color: var(--color-text-on-primary) !important;
}

.chapter-hero-badge i {
    color: var(--color-secondary);
    font-size: 9px;
}

.chapter-hero-title {
    font-family: var(--font-primary);
    font-size: clamp(26px, 5vw, 50px);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-on-primary);
    line-height: var(--line-height-tight);
    letter-spacing: -.025em;
    margin-bottom: 36px;
    justify-self: center;
}

.hero-cards {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    margin-bottom: 32px;
    justify-content: center;
}

.hero-card {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 12px;
    background: rgba(255, 255, 255, .10);
    border: 1px solid rgba(255, 255, 255, .15);
    border-radius: var(--radius-lg);
    padding: 16px 18px;
    backdrop-filter: blur(12px);
    transition: background var(--transition-base), transform var(--transition-base);
}

.hero-card:hover {
    background: rgba(255, 255, 255, .16);
    transform: translateY(-2px);
}

.hero-card-icon {
    width: 36px;
    height: 36px;
    background: rgba(245, 158, 11, .2);
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.hero-card-icon i {
    color: var(--color-secondary);
    font-size: 15px;
}

.hero-card-content {
    display: flex;
    flex-direction: column;
}

.hero-card-label {
    font-family: var(--font-primary);
    font-size: 10px;
    font-weight: var(--font-weight-semibold);
    letter-spacing: .08em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .55);
    margin-bottom: 3px;
}

.hero-card-value {
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-on-primary);
    line-height: var(--line-height-tight);
}

.hero-bc {
    font-family: var(--font-primary);
    font-size: 13px;
    color: rgba(255, 255, 255, .55);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
}

.hero-bc a {
    color: rgba(255, 255, 255, .7);
    transition: color var(--transition-base);
}

.hero-bc a:hover {
    color: var(--color-secondary);
}

.hero-bc .sep {
    color: rgba(255, 255, 255, .35);
}

.hero-bc span {
    color: rgba(255, 255, 255, .9);
}

.sec-header {
    max-width: 1200px;
    margin: 0 auto;
    padding: 52px 24px 28px;
    justify-items: center;
}

.sec-header h2 {
    font-family: var(--font-primary);
    font-size: clamp(20px, 3vw, 28px);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    letter-spacing: -.02em;
}

.sec-header h2 span {
    color: var(--color-secondary);
}

.sec-header p {
    color: var(--color-text-secondary);
    font-size: 14px;
    margin-top: 6px;
}

.tabs-wrap {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px 80px;
}

.tab-nav {
    display: flex;
    gap: 4px;
    background: var(--color-card);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-2xl);
    padding: 5px;
    margin-bottom: 28px;
    overflow-x: auto;
    scrollbar-width: none;
    box-shadow: var(--shadow-sm);
}

.tab-nav::-webkit-scrollbar {
    display: none;
}

.tab-btn {
    flex: 1;
    justify-content: center;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    padding: var(--space-sm) var(--space-md);
    border: none;
    background: transparent;
    border-radius: calc(var(--radius-2xl) - 4px);
    font-family: var(--font-primary);
    font-size: 13px;
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-secondary);
    cursor: pointer;
    transition: all var(--transition-base);
    white-space: nowrap;
    position: relative;
}

.tab-btn-icon {
    width: 28px;
    height: 28px;
    border-radius: 7px;
    background: rgba(0, 0, 0, .05);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    transition: all var(--transition-base);
    flex-shrink: 0;
}

.tab-btn-text {
    transition: all var(--transition-base);
}

.tab-btn:hover {
    color: var(--color-primary);
}

.tab-btn:hover .tab-btn-icon {
    background: var(--color-surface-blue);
    color: var(--color-primary);
}

.tab-btn.active {
    background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
    color: var(--color-text-on-primary);
    box-shadow: 0 2px 12px rgba(29, 78, 216, .25);
}

.tab-btn.active .tab-btn-icon {
    background: rgba(255, 255, 255, .18);
    color: var(--color-secondary);
}

.tab-panel {
    display: none;
}

.tab-panel.active {
    display: block;
    animation: fadeUp .25s ease;
}

@keyframes fadeUp {
    from {
        opacity: 0;
        transform: translateY(6px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.chapter-layout {
    display: grid;
    grid-template-columns: 256px 1fr;
    gap: 22px;
    align-items: start;
}

.ch-sidebar {
    background: var(--color-card);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-2xl);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
}

.ch-sidebar-head {
    background: var(--color-primary);
    padding: 15px 18px;
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-bold);
    letter-spacing: .08em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .75);
    display: flex;
    align-items: center;
    gap: var(--space-sm);
}

.ch-sidebar-head i {
    color: var(--color-secondary);
}

.ch-nav-list {
    padding: 6px 0;
}

.ch-nav-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 18px;
    font-family: var(--font-primary);
    font-size: 13px;
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary);
    cursor: pointer;
    transition: all var(--transition-base);
    border-left: 3px solid transparent;
}

.ch-nav-item:hover {
    color: var(--color-primary);
    background: var(--color-surface-blue);
}

.ch-nav-item.active {
    color: var(--color-primary);
    background: var(--color-surface-blue);
    border-left-color: var(--color-primary);
    font-weight: var(--font-weight-bold);
}

.ch-num {
    width: 22px;
    height: 22px;
    background: var(--color-surface-blue);
    color: var(--color-primary);
    border-radius: var(--radius-full);
    font-size: 11px;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background var(--transition-base), color var(--transition-base);
}

.ch-nav-item.active .ch-num {
    background: var(--color-primary);
    color: var(--color-text-on-primary);
}

.ch-cards-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 16px;
}

.ch-card {
    background: var(--color-card);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-2xl);
    padding: 22px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    box-shadow: var(--shadow-sm);
    transition: transform var(--transition-base), box-shadow var(--transition-base), border-color var(--transition-base);
}

.ch-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-xl);
    border-color: var(--color-primary-light);
}

.ch-card-head {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    justify-content: center;
}

.ch-card-icon {
    width: 46px;
    height: 46px;
    background: var(--color-surface-blue);
    border-radius: var(--radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 20px;
    color: var(--color-primary);
    transition: background var(--transition-base), color var(--transition-base);
}

.ch-card:hover .ch-card-icon {
    background: var(--color-primary);
    color: var(--color-text-on-primary);
}

.ch-card-title {
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    line-height: var(--line-height-tight);
    margin-top: 4px;
}

.ch-card-desc {
    font-size: 13.5px;
    color: var(--color-text-secondary);
    line-height: 1.55;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.ch-card-foot {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    padding-top: 12px;
    border-top: 1px solid var(--color-border);
    justify-content: center;
}

.btn-pdf {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 14px;
    background: var(--color-primary);
    color: var(--color-text-on-primary);
    border-radius: var(--radius-sm);
    font-family: var(--font-primary);
    font-size: 12px;
    font-weight: var(--font-weight-bold);
    transition: background var(--transition-base);
}

.btn-pdf:hover {
    background: var(--color-primary-dark);
}

.btn-visit {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-primary);
    font-size: 12px;
    font-weight: var(--font-weight-bold);
    color: var(--color-primary-light);
    transition: color var(--transition-base);
}

.btn-visit:hover {
    color: var(--color-primary);
}

.content-card {
    background: var(--color-card);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-2xl);
    padding: 36px 40px;
    box-shadow: var(--shadow-sm);
}

.content-card-head {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 14px;
    margin-bottom: 28px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--color-border);
}

.content-card-ico {
    width: 44px;
    height: 44px;
    background: var(--color-surface-blue);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.content-card-ico i {
    color: var(--color-primary);
    font-size: 20px;
}

.content-card-head h3 {
    font-family: var(--font-primary);
    font-size: var(--font-size-xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
}

.content-card-head p {
    font-size: 13px;
    color: var(--color-text-secondary);
    margin-top: 2px;
}

.syllabus-content {
    color: var(--color-text-primary);
    line-height: 1.8;
}

.syllabus-content h1,
.syllabus-content h2,
.syllabus-content h3 {
    font-family: var(--font-primary);
    margin: 24px 0 10px;
}

.syllabus-content ul,
.syllabus-content ol {
    padding-left: 22px;
    margin: 10px 0;
}

.syllabus-content li {
    margin-bottom: 6px;
}

.syllabus-content table {
    width: 100%;
    border-collapse: collapse;
    margin: 16px 0;
}

.syllabus-content th {
    background: var(--color-primary);
    color: var(--color-text-on-primary);
    padding: 10px 14px;
    text-align: left;
    font-family: var(--font-primary);
    font-size: 13px;
}

.syllabus-content td {
    padding: 10px 14px;
    border-bottom: 1px solid var(--color-border);
    font-size: 14px;
}

.syllabus-content tr:hover td {
    background: var(--color-surface-blue);
}

.tb-preview {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 18px;
    padding: 36px;
}

.tb-ico {
    width: 80px;
    height: 80px;
    background: linear-gradient(135deg, #ef4444, #b91c1c);
    border-radius: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 8px 24px rgba(239, 68, 68, .3);
}

.tb-ico i {
    color: var(--color-text-on-primary);
    font-size: 36px;
}

.tb-preview h4 {
    font-family: var(--font-primary);
    font-size: var(--font-size-md);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
}

.tb-preview p {
    color: var(--color-text-secondary);
    font-size: 14px;
    text-align: center;
}

.btn-open {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 13px 28px;
    background: var(--color-primary);
    color: var(--color-text-on-primary);
    border-radius: var(--radius-lg);
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-bold);
    box-shadow: 0 4px 14px rgba(29, 78, 216, .25);
    transition: background var(--transition-base), transform var(--transition-base), box-shadow var(--transition-base);
}

.btn-open:hover {
    background: var(--color-primary-dark);
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(29, 78, 216, .35);
    color: var(--color-text-on-primary);
}

.qb-layout {
    display: grid;
    grid-template-columns: 300px 1fr;
    gap: 20px;
    align-items: start;
}

.qb-year-nav {
    background: var(--color-card);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    overflow: hidden;
    position: sticky;
    top: 20px;
}

.qb-year-head {
    padding: 14px 18px;
    border-bottom: 1px solid var(--color-border);
    font-size: 0.72rem;
    font-weight: var(--font-weight-bold);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-text-secondary);
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    justify-content: center;
}

.qb-year-head i {
    color: var(--color-secondary);
    font-size: 0.8rem;
}

.qb-year-list {
    padding: 4px 0;
}

.qb-year-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 23px 18px;
    border: none;
    border-left: 3px solid transparent;
    background: transparent;
    text-align: left;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    cursor: pointer;
    transition: all var(--transition-fast);
    line-height: var(--line-height-tight);
}

.qb-year-btn:hover {
    background: var(--color-bg);
    color: var(--color-primary);
    border-left-color: var(--color-primary-light);
}

.qb-year-btn.active {
    color: var(--color-primary);
    background: var(--color-surface-blue);
    border-left-color: var(--color-primary);
}

.qb-year-btn .cnt {
    flex-shrink: 0;
    background: var(--color-surface-blue);
    color: var(--color-primary);
    border-radius: var(--radius-full);
    font-size: 0.7rem;
    font-weight: var(--font-weight-bold);
    padding: 2px 8px;
    line-height: var(--line-height-tight);
}

.qb-year-btn.active .cnt {
    background: var(--color-primary);
    color: var(--color-text-on-primary);
}

.qb-area {
    background: var(--color-card);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    overflow: hidden;
}

.qb-year-sec {
    display: none;
}

.qb-year-sec.active {
    display: block;
}

.qb-year-ttl {
    padding: 20px 28px 16px;
    background: var(--color-card);
}

.qb-year-ttl .wysiwyg-title,
.qb-year-ttl .year-plain {
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin: 0;
}


.qb-sec-wrap {
    padding: 0 28px 8px;
    border-bottom: 1px solid var(--color-surface-blue);
}

.qb-sec-wrap:last-child {
    border-bottom: none;
}

.qb-instruction {
    padding: 14px 0 10px;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
}

.qb-instruction p {
    margin: 0;
}

.qb-instruction strong,
.qb-instruction b {
    display: block;
    font-size: 0.9rem;
    font-weight: var(--font-weight-bold);
    letter-spacing: 0.05em;
    color: var(--color-text-primary);
    margin-bottom: 6px;
}

.qb-q-item {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 14px 8px;
    border-bottom: 1px dashed var(--color-border);
    cursor: pointer;
    border-radius: var(--radius-md);
    transition: background var(--transition-fast);
    margin: 0 -8px;
}

.qb-q-item:last-child {
    border-bottom: none;
}

.qb-q-item:hover {
    background: var(--color-bg);
}

.tu-exam-header {
    font-family: var(--font-primary);
    font-weight: var(--font-weight-regular);
    --exam-font-size: 14px; /* <-- YAHI matra change gara, sabai update huncha */
}
.tu-exam-header__top {
    text-align: center;
    margin-bottom: 45px;
}
.tu-exam-header__top p {
    margin: 0;
    font-size: calc(var(--exam-font-size) + 2px) !important;
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-loose);
    color: var(--color-text-primary);
}
.tu-exam-header__meta {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 20px;
    margin-bottom: 25px;
    padding-bottom: 12px;
    
}
.tu-exam-header__left p,
.tu-exam-header__right p {
    margin: 0;
    font-size: var(--exam-font-size) !important;
    color: var(--color-text-primary);
    line-height: 1.75;
    font-weight: var(--font-weight-regular);
}
.tu-exam-header__right {
    text-align: right;
    white-space: nowrap;
    flex-shrink: 0;
}
.tu-exam-header__notice p {
    margin: 0;
    font-size: var(--exam-font-size) !important;
    color: var(--color-text-primary);
    line-height: var(--line-height-loose);
    font-weight: var(--font-weight-regular);
}

.q-badge {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    background: var(--color-primary);
    color: var(--color-text-on-primary);
    border-radius: 6px;
    font-size: 0.75rem;
    font-weight: var(--font-weight-bold);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 1px;
}

.q-txt {
    flex: 1;
    font-size: 18px !important;
    color: var(--color-text-primary);
    line-height: 1.65;
}

.q-txt p {
    margin: 0 0 4px;
 
    font-size: 13px !important;
    line-height: 1.4 !important;

}

.q-txt p:last-child {
    margin: 0;
}

.q-eye {
    flex-shrink: 0;
    width: 26px;
    height: 26px;
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-full);
    display: flex;
    align-items: center;
    justify-content: center;
    align-self: flex-end;
    margin-bottom: 2px;
    color: var(--color-border);
    transition: all var(--transition-fast);
}

.q-txt ol,
.q-txt ul {
    margin: 2px 0 0 0;
    padding-left: 18px;
    font-size: 13px !important;
}

.q-txt li {
    margin: 0;
    padding: 0;
    font-size: 13px !important; 
}

.q-eye i {
    font-size: 0.65rem;
    color: var(--color-border);
    transition: color var(--transition-fast);
}

.qb-q-item:hover .q-eye {
    border-color: var(--color-primary);
    background: var(--color-primary);
}

.popup-q-text ol,
.popup-q-text ul {
    margin: 2px 0 0 0;
    padding-left: 18px;
    font-size: 13px !important;
}

.popup-q-text li {
    margin: 0;
    padding: 0;
    font-size: 13px !important;
}

.qb-q-item:hover .q-eye i {
    color: var(--color-text-on-primary);
}

.qbank-popup {
    margin: 0 20px 20px;
    background: var(--color-card);
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border);
    overflow: hidden;
}

.qbank-popup__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 13px 18px;
    background: var(--color-bg);
    border-bottom: 1px solid var(--color-border);
}

.qbank-popup__label {
    font-size: 0.72rem;
    font-weight: var(--font-weight-bold);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--color-primary);
}

.qbank-popup__close {
    width: 26px;
    height: 26px;
    border-radius: 6px;
    background: var(--color-border);
    border: none;
    color: var(--color-text-secondary);
    font-size: 0.8rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background var(--transition-fast), color var(--transition-fast);
}

.qbank-popup__close:hover {
    background: #FEE2E2;
    color: #DC2626;
}

.qbank-popup__question {
    padding: 18px 20px 12px;
    font-size: 0.9rem;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    border-bottom: 1px solid var(--color-surface-blue);
    line-height: var(--line-height-normal);
}

.qbank-popup__answer {
    padding: 14px 20px 18px;
    font-size: var(--font-size-sm);
    color: var(--color-text-primary);
    line-height: 1.8;
}

.qbank-popup__nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 18px;
    background: var(--color-bg);
    border-top: 1px solid var(--color-border);
}

.qbank-nav-btn {
    padding: 7px 16px;
    font-size: 0.8rem;
    font-weight: var(--font-weight-bold);
    color: var(--color-primary);
    background: var(--color-card);
    border: 1.5px solid var(--color-primary-light);
    border-radius: var(--radius-full);
    cursor: pointer;
    transition: all var(--transition-fast);
}

.qbank-nav-btn:hover {
    background: var(--color-primary);
    color: var(--color-text-on-primary);
    border-color: var(--color-primary);
}

.qbank-popup__counter {
    font-size: 0.8rem;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-secondary);
    background: var(--color-border);
    padding: 4px 12px;
    border-radius: var(--radius-full);
}

.empty {
    text-align: center;
    padding: 60px 24px;
    color: var(--color-text-secondary);
}

.empty i {
    font-size: 2rem;
    color: var(--color-border);
    display: block;
    margin-bottom: 12px;
}

.empty h4 {
    font-size: 0.9375rem;
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-secondary);
    margin: 0;
}

.viva-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
}

.viva-item {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 16px;
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    cursor: pointer;
    transition: all var(--transition-base);
}

.viva-item:hover {
    background: var(--color-surface-blue);
    border-color: var(--color-primary);
    transform: translateX(4px);
}

.viva-item:hover .viva-arrow {
    color: var(--color-primary);
}

.viva-badge {
    min-width: 28px;
    height: 28px;
    background: var(--color-primary);
    color: var(--color-text-on-primary);
    border-radius: var(--radius-full);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: var(--font-weight-bold);
    flex-shrink: 0;
}

.viva-q-text {
    flex: 1;
    font-size: 14px;
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    line-height: var(--line-height-tight);
}

.viva-arrow {
    color: var(--color-text-secondary);
    font-size: 13px;
    transition: all var(--transition-base);
    flex-shrink: 0;
}

.viva-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, .5);
    z-index: 9999;
    align-items: center;
    justify-content: center;
    padding: 20px;
    backdrop-filter: blur(4px);
}

.viva-overlay.open {
    display: flex;
    animation: fadeIn .2s ease;
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

.viva-popup {
    background: var(--color-card);
    border-radius: var(--radius-2xl);
    padding: 28px;
    max-width: 560px;
    width: 100%;
    box-shadow: 0 20px 60px rgba(0, 0, 0, .2);
    animation: popUp .25s ease;
}

@keyframes popUp {
    from {
        opacity: 0;
        transform: scale(.95) translateY(10px);
    }

    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

.viva-popup-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 18px;
}

.viva-popup-ico {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    font-size: 14px;
    font-weight: var(--font-weight-bold);
    color: var(--color-primary);
    background: var(--color-surface-blue);
    padding: 7px 14px;
    border-radius: 20px;
}

.viva-popup-ico i {
    font-size: 14px;
    color: var(--color-primary);
}

.viva-popup-close {
    width: 32px;
    height: 32px;
    border: 1px solid var(--color-border);
    background: transparent;
    border-radius: var(--radius-md);
    cursor: pointer;
    color: var(--color-text-secondary);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all var(--transition-base);
}

.viva-popup-close:hover {
    background: #fee2e2;
    color: #dc2626;
    border-color: #fca5a5;
}

.viva-popup-q {
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    line-height: var(--line-height-normal);
    margin-bottom: 18px;
}

.viva-popup-divider {
    height: 1px;
    background: var(--color-border);
    margin-bottom: 16px;
}

.viva-popup-label {
    font-size: 11px;
    font-weight: var(--font-weight-bold);
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--color-secondary);
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.viva-popup-a {
    font-size: 14px;
    color: var(--color-text-secondary);
    line-height: var(--line-height-loose);
}

.viva-popup-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 24px;
    padding-top: 16px;
    border-top: 1px solid var(--color-border);
}

.viva-nav-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: var(--space-sm) var(--space-md);
    background: var(--color-surface-blue);
    color: var(--color-primary);
    border: 1px solid var(--color-primary);
    border-radius: var(--radius-sm);
    font-family: var(--font-primary);
    font-size: 13px;
    font-weight: var(--font-weight-semibold);
    cursor: pointer;
    transition: all var(--transition-base);
}

.viva-nav-btn:hover {
    background: var(--color-primary);
    color: var(--color-text-on-primary);
}

.viva-nav-btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
    pointer-events: none;
}

.viva-nav-count {
    font-size: 13px;
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-secondary);
}

.popup-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, .65);
    backdrop-filter: blur(4px);
    z-index: 9999;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.popup-overlay.active {
    display: flex;
}

.popup {
    background: var(--color-card);
    border-radius: var(--radius-2xl);
    max-width: 680px;
    width: 100%;
    max-height: 85vh;
    overflow-y: auto;
    box-shadow: 0 24px 80px rgba(0, 0, 0, .25);
    animation: popIn .24s cubic-bezier(.34, 1.4, .64, 1);
}

@keyframes popIn {
    from {
        opacity: 0;
        transform: scale(.93) translateY(18px);
    }

    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

.popup-head {
    background: var(--color-surface-blue);
    display: flex;
    padding-bottom: 15px;
    align-items: flex-start;
    gap: 5px;
    border-radius: var(--radius-2xl) var(--radius-2xl) 0 0;
}

.popup-head-ico {
    width: 40px;
    height: 40px;
    background: rgba(255, 255, 255, .15);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.popup-head-ico i {
    color: var(--color-secondary);
    font-size: 18px;
}

.popup-head-info {
    flex: 1;
}

.popup-head-info .plabel {
    font-family: var(--font-primary);
    font-size: 13px;
    font-weight: var(--font-weight-bold);
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--color-primary);
    margin-bottom: 13px;
    margin-top: 10px;
}

.popup-q-text {
    font-family: var(--font-primary);
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    line-height: var(--line-height-tight);
}

.popup-q-text p {
    margin: 0;
    font-size: 13px !important;
    line-height: 1.4 !important;
}

.popup-close {
    width: 34px;
    height: 34px;
    background: rgba(255, 255, 255, .12);
    border: none;
    border-radius: var(--radius-md);
    color: rgba(255, 255, 255, .7);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 15px;
    flex-shrink: 0;
    transition: background var(--transition-base);
}

.popup-close:hover {
    background: rgba(255, 255, 255, .22);
    color: var(--color-text-on-primary);
}

.popup-body {
    padding: 26px 28px;
}

.ans-label {
    font-family: var(--font-primary);
    font-size: 10px;
    font-weight: var(--font-weight-bold);
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--color-text-secondary);
    margin-bottom: 14px;
    display: flex;
    align-items: center;
    gap: var(--space-sm);
}

.ans-label::after {
    content: '';
    flex: 1;
    height: 1px;
    background: var(--color-border);
}

.ans-content {
    color: var(--color-text-primary);
    font-size: var(--font-size-sm);
    line-height: 1.8;
}

.ans-content p {
    margin-bottom: 12px;
}

.ans-content p:last-child {
    margin-bottom: 0;
}

.popup-foot {
    padding: 16px 28px;
    border-top: 1px solid var(--color-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.popup-count {
    font-family: var(--font-primary);
    font-size: 13px;
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-secondary);
}

.popup-nav {
    display: flex;
    gap: 10px;
}

.nav-btn {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: var(--space-sm) 17px;
    border: 1.5px solid var(--color-border);
    background: var(--color-card);
    border-radius: var(--radius-md);
    font-family: var(--font-primary);
    font-size: 13px;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    cursor: pointer;
    transition: all var(--transition-base);
}

.nav-btn:hover:not(:disabled) {
    border-color: var(--color-primary);
    color: var(--color-primary);
    background: var(--color-surface-blue);
}

.nav-btn:disabled {
    opacity: .4;
    cursor: not-allowed;
}

.nav-btn.next {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: var(--color-text-on-primary);
}

.nav-btn.next:hover:not(:disabled) {
    background: var(--color-primary-dark);
    color: var(--color-text-on-primary);
}

.tab-video-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 5px;
    border-radius: var(--radius-full);
    background: var(--color-secondary);
    color: var(--color-text-on-primary);
    font-size: 11px;
    font-weight: var(--font-weight-bold);
    line-height: 1;
    margin-left: 4px;
}

.tab-btn.active .tab-video-count {
    background: rgba(255, 255, 255, .25);
    color: var(--color-text-on-primary);
}

.cv-layout {
    display: flex;
    gap: var(--space-lg);
    align-items: flex-start;
}

.cv-sidebar {
    width: 220px;
    flex-shrink: 0;
    background: var(--color-card);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-2xl);
    overflow: hidden;
    position: sticky;
    top: 90px;
}

.cv-sidebar-head {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    padding: 14px 16px;
    font-family: var(--font-primary);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-bold);
    letter-spacing: .08em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .75);
    background: var(--color-primary);
    border-bottom: 1px solid var(--color-border);
}

.cv-sidebar-head i {
    color: var(--color-secondary);
}

.cv-sidebar-count {
    margin-left: auto;
    background: rgba(255, 255, 255, .2);
    color: var(--color-text-on-primary);
    font-size: 11px;
    font-weight: var(--font-weight-bold);
    border-radius: var(--radius-full);
    padding: 1px 7px;
}

.cv-nav {
    max-height: 480px;
    overflow-y: auto;
    padding: 6px 0;
}

.cv-nav-btn {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    width: 100%;
    padding: 10px 16px;
    background: none;
    border: none;
    border-left: 3px solid transparent;
    cursor: pointer;
    text-align: left;
    transition: all var(--transition-base);
}

.cv-nav-btn:hover {
    background: var(--color-surface-blue);
    color: var(--color-primary);
    border-left-color: var(--color-primary-light);
}

.cv-nav-btn.active {
    background: var(--color-surface-blue);
    border-left-color: var(--color-primary);
}

.cv-nav-btn.active .cv-nav-num {
    background: var(--color-primary);
    color: var(--color-text-on-primary);
}

.cv-nav-num {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    border-radius: var(--radius-full);
    background: var(--color-surface-blue);
    color: var(--color-primary);
    font-size: 11px;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 1px;
}

.cv-nav-title {
    font-family: var(--font-primary);
    font-size: 12.5px;
    color: var(--color-text-primary);
    line-height: var(--line-height-tight);
    font-weight: var(--font-weight-medium);
}

.cv-cards-wrap {
    flex: 1;
    min-width: 0;
}

.cv-cards-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: var(--space-lg);
}

.cv-card {
    background: var(--color-card);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-2xl);
    overflow: hidden;
    cursor: pointer;
    transition: transform var(--transition-base), box-shadow var(--transition-base), border-color var(--transition-base);
    box-shadow: var(--shadow-sm);
}

.cv-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-xl);
    border-color: var(--color-primary-light);
}

.cv-thumb {
    position: relative;
    width: 100%;
    padding-top: 56.25%;
    background: #0f0f1a;
    overflow: hidden;
}

.cv-thumb img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .3s;
}

.cv-card:hover .cv-thumb img {
    transform: scale(1.04);
}

.cv-thumb-generic {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #1e3a8a 0%, var(--color-primary) 100%);
    color: rgba(255, 255, 255, .4);
    font-size: 2.5rem;
}

.cv-play-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, .35);
    opacity: 0;
    transition: opacity var(--transition-base);
}

.cv-card:hover .cv-play-overlay {
    opacity: 1;
}

.cv-play-btn {
    width: 52px;
    height: 52px;
    border-radius: var(--radius-full);
    background: var(--color-card);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-primary);
    font-size: 1.2rem;
    box-shadow: 0 4px 16px rgba(0, 0, 0, .3);
    transition: transform var(--transition-base);
}

.cv-card:hover .cv-play-btn {
    transform: scale(1.1);
}

.cv-platform-badge {
    position: absolute;
    bottom: 8px;
    left: 8px;
    font-size: 11px;
    font-weight: var(--font-weight-bold);
    padding: 3px 8px;
    border-radius: var(--radius-sm);
    display: flex;
    align-items: center;
    gap: 4px;
    font-family: var(--font-primary);
}

.cv-yt {
    background: rgba(220, 38, 38, .9);
    color: var(--color-text-on-primary);
}

.cv-mp4 {
    background: rgba(15, 23, 42, .85);
    color: rgba(255, 255, 255, .8);
}

.cv-card-body {
    padding: 14px 16px 16px;
}

.cv-card-num {
    font-family: var(--font-primary);
    font-size: 11px;
    font-weight: var(--font-weight-bold);
    color: var(--color-primary);
    text-transform: uppercase;
    letter-spacing: .05em;
    margin-bottom: 4px;
}

.cv-card-title {
    font-family: var(--font-primary);
    font-size: 14.5px;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    line-height: 1.35;
    margin-bottom: 6px;
}

.cv-card-desc {
    font-size: 12.5px;
    color: var(--color-text-secondary);
    line-height: var(--line-height-normal);
    margin: 0 0 10px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.cv-card-foot {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding-top: 10px;
    border-top: 1px solid var(--color-border);
}

.cv-watch-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-primary);
    font-size: 12.5px;
    font-weight: var(--font-weight-bold);
    color: var(--color-primary);
    padding: 5px 12px;
    border-radius: var(--radius-full);
    background: var(--color-surface-blue);
    transition: background var(--transition-base), color var(--transition-base);
}

.cv-card:hover .cv-watch-btn {
    background: var(--color-primary);
    color: var(--color-text-on-primary);
}

.cv-modal-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, .80);
    z-index: 9999;
    align-items: center;
    justify-content: center;
    padding: var(--space-md);
    backdrop-filter: blur(4px);
}

.cv-modal-overlay.active {
    display: flex;
    animation: fadeIn .2s ease;
}

.cv-modal {
    background: var(--color-card);
    border-radius: var(--radius-2xl);
    width: 100%;
    max-width: 860px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    max-height: 90vh;
    animation: popUp .25s ease;
}

.cv-modal-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 20px;
    border-bottom: 1px solid var(--color-border);
    gap: 12px;
}

.cv-modal-title-wrap {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.cv-modal-num {
    flex-shrink: 0;
    font-family: var(--font-primary);
    font-size: 11px;
    font-weight: var(--font-weight-bold);
    color: var(--color-primary);
    background: var(--color-surface-blue);
    padding: 3px 10px;
    border-radius: var(--radius-full);
}

.cv-modal-title {
    font-family: var(--font-primary);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cv-modal-close {
    flex-shrink: 0;
    width: 34px;
    height: 34px;
    border-radius: var(--radius-full);
    border: 1px solid var(--color-border);
    background: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-text-secondary);
    font-size: 15px;
    transition: background var(--transition-base), color var(--transition-base);
}

.cv-modal-close:hover {
    background: #fee2e2;
    color: #dc2626;
    border-color: #fca5a5;
}

.cv-modal-player {
    aspect-ratio: 16 / 9;
    background: #000;
    min-height: 0;
}

.cv-modal-player iframe,
.cv-modal-player video {
    width: 100%;
    height: 100%;
    display: block;
    border: none;
}

.cv-modal-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 20px;
    border-top: 1px solid var(--color-border);
    gap: 12px;
}

.cv-modal-count {
    font-family: var(--font-primary);
    font-size: 13px;
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-secondary);
}

.cv-modal-nav-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-primary);
    font-size: 13px;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    padding: 7px 16px;
    border-radius: var(--radius-sm);
    border: 1.5px solid var(--color-border);
    background: var(--color-card);
    cursor: pointer;
    transition: all var(--transition-base);
}

.cv-modal-nav-btn:hover:not(:disabled) {
    background: var(--color-surface-blue);
    border-color: var(--color-primary);
    color: var(--color-primary);
}

.cv-modal-nav-btn:disabled {
    opacity: .4;
    cursor: not-allowed;
}

.cv-modal-nav-btn.next {
    background: var(--color-primary);
    color: var(--color-text-on-primary);
    border-color: var(--color-primary);
}

.cv-modal-nav-btn.next:hover:not(:disabled) {
    background: var(--color-primary-dark);
    border-color: var(--color-primary-dark);
}

@media (max-width: 900px) {
    .hero-cards {
        grid-template-columns: repeat(2, 1fr);
    }

    .chapter-layout,
    .qb-layout {
        grid-template-columns: 1fr;
    }

    .ch-sidebar {
        display: none;
    }

    .ch-cards-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    .qb-layout {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .qb-year-nav {
        position: static;
        display: flex;
        flex-direction: row;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        border-radius: var(--radius-lg);
    }

    .qb-year-nav::-webkit-scrollbar {
        display: none;
    }

    .qb-year-head {
        display: none;
    }

    .qb-year-list {
        display: flex;
        flex-direction: row;
        padding: 4px;
        gap: 4px;
        width: 100%;
    }

    .qb-year-btn {
        border-left: none;
        border-bottom: 3px solid transparent;
        white-space: nowrap;
        padding: 10px 14px;
        font-size: 0.8rem;
        flex-shrink: 0;
        border-radius: var(--radius-md);
        justify-content: center;
        gap: 6px;
    }

    .qb-year-btn:hover {
        border-left: none;
        border-bottom-color: var(--color-primary-light);
    }

    .qb-year-btn.active {
        border-left: none;
        border-bottom-color: var(--color-primary);
        background: var(--color-surface-blue);
    }

    .tu-exam-header__meta {
        flex-direction: column;
        gap: var(--space-sm);
    }

    .tu-exam-header__right {
        text-align: left;
    }

    .qb-sec-wrap {
        padding: 0 16px 8px;
    }

    .qb-year-ttl {
        padding: 16px 16px 12px;
    }

    .qbank-popup {
        margin: 0 0 16px;
    }

    .qbank-popup__nav {
        flex-wrap: wrap;
    }

    .qbank-nav-btn {
        flex: 1;
        text-align: center;
    }

    .cv-layout {
        flex-direction: column;
    }

    .cv-sidebar {
        width: 100%;
        position: static;
    }

    .cv-nav {
        max-height: 180px;
    }

    .cv-cards-grid {
        grid-template-columns: 1fr 1fr;
    }

    .cv-modal {
        max-height: 95vh;
        border-radius: var(--radius-lg);
    }

    .cv-modal-foot {
        flex-wrap: wrap;
        justify-content: center;
    }
}

@media (max-width: 600px) {
    .hero {
        padding: 48px 0 38px;
    }

    .hero-cards {
        grid-template-columns: 1fr 1fr;
    }

    .content-card {
        padding: 22px 20px;
    }

    .tab-btn {
        padding: var(--space-sm) 13px;
        font-size: 12px;
    }

    .popup-body {
        padding: 20px;
    }

    .popup-foot {
        flex-direction: column;
        gap: 12px;
        align-items: stretch;
    }

    .popup-nav {
        justify-content: center;
    }
}

@media (max-width: 500px) {
    .cv-cards-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 480px) {
    .q-badge {
        width: 24px;
        height: 24px;
        font-size: 0.68rem;
        border-radius: 5px;
    }

    .q-txt {
        font-size: 0.8125rem;
    }

    .tu-exam-header__top p {
        font-size: var(--font-size-sm);
    }
}

a:focus-visible,
button:focus-visible {
    outline: 2px solid var(--color-secondary);
    outline-offset: 3px;
    border-radius: var(--radius-sm);
}

body {
  margin: 0;
  background-color: var(--color-bg);
  font-family: var(--font-primary);
}

.minimal-reset-wrapper {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-lg);
  box-sizing: border-box;
}

.minimal-reset-card {
  background: var(--color-card);
  max-width: 440px;
  width: 100%;
  padding: 2.5rem 2rem;
  border-radius: var(--radius-2xl);
  box-shadow: var(--shadow-md);
  border: 1px solid var(--color-border);
  text-align: center;
}

.minimal-reset-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-bottom: var(--space-xl);
}

.site-logo-img {
  width: 400px;
}

.site-logo-img.round-logo {
  border-radius: var(--radius-full);
  padding: 0;
  object-fit: cover;
}

.minimal-reset-logo span {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-bold);
  letter-spacing: -0.02em;
  color: var(--color-text-primary);
}

h2 {
  font-size: var(--font-size-2xl);
  font-weight: var(--font-weight-bold);
  letter-spacing: -0.02em;
  color: var(--color-text-primary);
  margin-bottom: var(--space-sm);
}

.sub-text {
  color: var(--color-text-secondary);
  font-size: var(--font-size-sm);
  margin-bottom: var(--space-xl);
}

.minimal-form-container {
  text-align: left;
  margin-bottom: var(--space-lg);
}

.minimal-form-container label {
  font-weight: var(--font-weight-medium);
  font-size: 0.9rem;
  color: var(--color-text-primary);
  margin-bottom: 0.3rem;
  display: block;
}

.minimal-form-container input[type="text"],
.minimal-form-container input[type="email"],
.minimal-form-container input[type="password"] {
  width: 100%;
  padding: 0.75rem var(--space-md);
  border: 1.5px solid var(--color-border);
  border-radius: 14px;
  font-size: var(--font-size-base);
  background: var(--color-bg);
  transition: all var(--transition-fast);
  box-sizing: border-box;
  margin-bottom: 1.2rem;
  color: var(--color-text-primary);
  font-family: var(--font-primary);
}

.minimal-form-container input:focus {
  outline: none;
  border-color: var(--color-primary);
  background: var(--color-card);
  box-shadow: 0 0 0 3px rgba(29, 78, 216, 0.1);
}

.minimal-form-container input[type="submit"],
.minimal-form-container button[type="submit"] {
  width: 100%;
  background: var(--color-primary);
  color: var(--color-text-on-primary);
  border: none;
  padding: 0.9rem var(--space-lg);
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-semibold);
  border-radius: 14px;
  cursor: pointer;
  transition: background var(--transition-base);
  border: 1px solid rgba(255,255,255,0.1);
  margin-top: var(--space-sm);
  font-family: var(--font-primary);
}

.minimal-form-container input[type="submit"]:hover,
.minimal-form-container button[type="submit"]:hover {
  background: var(--color-primary-light);
}

.um-error, .um-message {
  border-radius: var(--radius-lg) !important;
  font-size: 0.9rem !important;
}

.minimal-footer {
  margin-top: var(--space-lg);
  padding-top: var(--space-lg);
  border-top: 1px solid var(--color-border);
}

.back-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--color-text-secondary);
  text-decoration: none;
  font-weight: var(--font-weight-medium);
  font-size: var(--font-size-sm);
  transition: color var(--transition-base);
}

.back-link:hover {
  color: var(--color-primary);
}

.um.um-password {
  max-width: 100% !important;
  margin: 0 !important;
}

.auth-page-wrapper {
    min-height: 100vh;
    background: var(--color-bg);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-lg);
    box-sizing: border-box;
}

.auth-container {
    display: flex;
    max-width: 1100px;
    width: 100%;
    background: var(--color-card);
    border-radius: 28px;
    box-shadow: var(--shadow-xl);
    overflow: hidden;
    min-height: 600px;
}

.auth-left {
    flex: 1;
    background: linear-gradient(145deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
    color: var(--color-text-on-primary);
    padding: 2.5rem;
    display: flex;
    flex-direction: column;
}

.auth-left-inner {
    height: 100%;
    display: flex;
    flex-direction: column;
}

.auth-logo {
    display: inline-block;
    margin-bottom: var(--space-2xl);
}



.auth-logo-text {
    font-size: 1.8rem;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-on-primary);
    text-decoration: none;
    letter-spacing: -0.02em;
    font-family: var(--font-primary);
}

.auth-left-content {
    flex: 1;
}

.auth-left-content h2 {
    font-size: 2.2rem;
    font-weight: var(--font-weight-bold);
    margin-bottom: var(--space-md);
    letter-spacing: -0.02em;
    color: var(--color-text-on-primary);
}

.auth-left-content p {
    font-size: var(--font-size-base);
    opacity: 0.9;
    margin-bottom: var(--space-xl);
    line-height: var(--line-height-normal);
    color: rgba(255, 255, 255, 0.9);
}

.auth-features {
    list-style: none;
    padding: 0;
    margin: 0;
}

.auth-features li {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: var(--space-md);
    font-size: 0.95rem;
    color: rgba(255, 255, 255, 0.95);
}

.auth-features li svg {
    flex-shrink: 0;
    color: var(--color-secondary);
}

.auth-left-footer {
    padding-top: var(--space-xl);
    border-top: 1px solid rgba(255, 255, 255, 0.15);
}

.auth-left-footer p {
    margin: 0;
    font-size: 0.95rem;
    color: rgba(255, 255, 255, 0.8);
}

.auth-left-footer a {
    color: var(--color-text-on-primary);
    font-weight: var(--font-weight-semibold);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.auth-left-footer a:hover {
    color: var(--color-secondary);
}

.auth-right {
    flex: 1;
    padding: 2.5rem;
    display: flex;
    align-items: center;
    background: var(--color-card);
}

.auth-form-wrapper {
    width: 100%;
    max-width: 380px;
    margin: 0 auto;
}

.auth-form-header {
    margin-bottom: var(--space-xl);
    text-align: center;
}

.auth-form-header h1 {
    font-size: 1.8rem;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin-bottom: var(--space-sm);
    letter-spacing: -0.02em;
}

.auth-form-header p {
    color: var(--color-text-secondary);
    font-size: 0.95rem;
    margin: 0;
}

.auth-form-body {
    margin-bottom: var(--space-lg);
}

.auth-form-body .um {
    max-width: 100%;
    margin: 0;
}

.auth-form-body .um-form {
    margin: 0;
    padding: 0;
}

.auth-form-body .um-field {
    margin-bottom: 1.25rem;
}

.auth-form-body .um-field-label label {
    font-weight: var(--font-weight-medium);
    font-size: 0.9rem;
    color: var(--color-text-primary);
    margin-bottom: 0.35rem;
    display: block;
}

.auth-form-body .um-field-label .um-req {
    color: #EF4444;
    margin-left: 3px;
}

.auth-form-body .um-field-area input[type="text"],
.auth-form-body .um-field-area input[type="email"],
.auth-form-body .um-field-area input[type="password"] {
    width: 100%;
    padding: 0.8rem var(--space-md);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-lg);
    font-size: 0.95rem;
    background: var(--color-bg);
    transition: all var(--transition-fast);
    box-sizing: border-box;
    color: var(--color-text-primary);
    font-family: var(--font-primary);
}

.auth-form-body .um-field-area input:focus {
    outline: none;
    border-color: var(--color-primary);
    background: var(--color-card);
    box-shadow: 0 0 0 3px rgba(29, 78, 216, 0.1);
}

.auth-form-body .um input.um-button[type="submit"],
.auth-form-body .um button.um-button {
    width: 100%;
    background: var(--color-primary);
    color: var(--color-text-on-primary);
    border: none;
    padding: 0.85rem var(--space-lg);
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-semibold);
    border-radius: var(--radius-lg);
    cursor: pointer;
    transition: background var(--transition-base);
    text-transform: none;
    letter-spacing: normal;
    height: auto;
    line-height: var(--line-height-normal);
    margin-top: var(--space-sm);
    font-family: var(--font-primary);
}

.auth-form-body .um input.um-button[type="submit"]:hover,
.auth-form-body .um button.um-button:hover {
    background: var(--color-primary-light);
}

.auth-form-body .um-error {
    border-radius: var(--radius-md);
    font-size: var(--font-size-xs);
    padding: 0.7rem var(--space-md);
    margin-bottom: var(--space-lg);
    background: #FEF2F2;
    border: 1px solid #FECACA;
    color: #991B1B;
}

.auth-form-body .um-success {
    border-radius: var(--radius-md);
    font-size: var(--font-size-xs);
    padding: 0.7rem var(--space-md);
    margin-bottom: var(--space-lg);
    background: #F0FDF4;
    border: 1px solid #BBF7D0;
    color: #166534;
}

.auth-form-body .um-message {
    border-radius: var(--radius-md);
    font-size: var(--font-size-xs);
    padding: 0.7rem var(--space-md);
    margin-bottom: var(--space-lg);
}

.auth-form-body .um-field-checkbox .um-field-checkbox-option {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
}

.auth-form-body .um-field-checkbox input[type="checkbox"] {
    width: 18px;
    height: 18px;
    accent-color: var(--color-primary);
    cursor: pointer;
}

.auth-form-body .um-field-checkbox label {
    font-size: 0.9rem;
    color: var(--color-text-secondary);
    cursor: pointer;
    font-weight: var(--font-weight-regular);
}

.auth-form-footer {
    text-align: center;
}

.auth-form-footer p {
    margin: var(--space-sm) 0;
    font-size: 0.9rem;
    color: var(--color-text-secondary);
}

.auth-form-footer a {
    color: var(--color-primary);
    text-decoration: none;
    font-weight: var(--font-weight-medium);
    transition: color var(--transition-base);
}

.auth-form-footer a:hover {
    color: var(--color-primary-light);
    text-decoration: underline;
}

.um .um-field-label .um-tip {
    display: none;
}

@media (max-width: 768px) {
    .auth-page-wrapper {
        padding: 0;
        align-items: flex-start;
    }

    .auth-container {
        flex-direction: column;
        border-radius: 0;
        min-height: auto;
        box-shadow: none;
    }

    .auth-left {
        padding: var(--space-xl) var(--space-lg);
    }

    .auth-left-content h2 {
        font-size: 1.8rem;
    }

    .auth-right {
        padding: var(--space-xl) var(--space-lg);
    }

    .auth-form-wrapper {
        max-width: 100%;
    }
}

@media (max-width: 480px) {
    .auth-left {
        padding: var(--space-lg) 1.25rem;
    }
@media (max-width: 768px) {
    .auth-left {
        display: none;
    }
    
    .auth-right {
        width: 100%;
        min-height: 100vh;
    }
}
    .auth-left-content h2 {
        font-size: var(--font-size-xl);
    }

    .auth-left-content p {
        font-size: 0.9rem;
    }

    .auth-features li {
        font-size: var(--font-size-sm);
    }

    .auth-right {
        padding: var(--space-lg) 1.25rem;
    }

    .auth-form-header h1 {
        font-size: var(--font-size-xl);
    }
}

.auth-stats {
    display: flex;
    gap: var(--space-lg);
    margin-top: var(--space-xl);
    padding-top: var(--space-lg);
    border-top: 1px solid rgba(255, 255, 255, 0.15);
}

.auth-stat {
    display: flex;
    flex-direction: column;
}

.auth-stat strong {
    font-size: var(--font-size-xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-on-primary);
    line-height: var(--line-height-tight);
}

.auth-stat span {
    font-size: var(--font-size-xs);
    color: rgba(255, 255, 255, 0.7);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

@media (max-width: 768px) {
    .auth-stats {
        gap: 1.25rem;
    }

    .auth-stat strong {
        font-size: 1.3rem;
    }

    .auth-stat span {
        font-size: 0.75rem;
    }
}

@media (max-width: 480px) {
    .auth-stats {
        gap: var(--space-md);
    }

    .auth-stat strong {
        font-size: var(--font-size-lg);
    }

    .auth-stat span {
        font-size: 0.7rem;
    }
}

.lab-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: var(--space-lg);
  padding: var(--space-lg) 0;
}

.lab-card {
  background: var(--color-card);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-lg);
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  box-shadow: var(--shadow-sm);
  transition: transform var(--transition-base), box-shadow var(--transition-base);
}

.lab-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-lg);
}

.lab-card-header {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.lab-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 var(--space-sm);
  background: var(--color-primary);
  color: var(--color-text-on-primary);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-bold);
  border-radius: var(--radius-md);
  flex-shrink: 0;
  letter-spacing: 0.5px;
}

.lab-title {
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-primary);
  margin: 0;
  line-height: 1.4;
}

.lab-objective {
  font-size: var(--font-size-sm);
  color: var(--color-text-secondary);
  margin: 0;
  padding: 0.6rem 0.85rem;
  background: var(--color-surface-blue);
  border-left: 3px solid var(--color-primary);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  line-height: 1.55;
}

.lab-description {
  font-size: var(--font-size-sm);
  color: var(--color-text-secondary);
  line-height: var(--line-height-loose);
  flex: 1;
}

.lab-description p {
  margin: 0 0 var(--space-sm);
}

.lab-description p:last-child {
  margin-bottom: 0;
}

.lab-footer {
  margin-top: auto;
  padding-top: 0.75rem;
  border-top: 1px solid var(--color-border);
}

.lab-btn {
  display: inline-flex;
  align-items: center;
  gap: var(--space-sm);
  padding: 0.55rem 1.1rem;
  background: var(--color-primary);
  color: var(--color-text-on-primary);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  border-radius: var(--radius-md);
  text-decoration: none;
  transition: background var(--transition-base), transform var(--transition-fast);
}

.lab-btn:hover {
  background: var(--color-primary-dark);
  transform: translateY(-1px);
  color: var(--color-text-on-primary);
  text-decoration: none;
}

.lab-btn i {
  font-size: 0.95rem;
  color: #fca5a5;
}

.tab-panel .empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: var(--space-3xl) var(--space-xl);
  text-align: center;
  color: var(--color-text-secondary);
  gap: var(--space-md);
}

.tab-panel .empty i {
  font-size: 3rem;
  color: var(--color-border);
}

.tab-panel .empty h4 {
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-medium);
  color: var(--color-text-secondary);
  margin: 0;
}

@media (max-width: 640px) {
  .lab-grid {
    grid-template-columns: 1fr;
    gap: var(--space-md);
    padding: var(--space-md) 0;
  }

  .lab-card {
    padding: 1.1rem;
  }

  .lab-title {
    font-size: 0.95rem;
  }
}

.course-meta {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
border-top: 1px solid var(--color-border);
  padding-top: 15px;
  gap: var(--space-md);
  flex-wrap: wrap;
}

.course-meta__left {
  flex: 1;
  min-width: 220px;
}

.course-meta__right {
  flex: 1;
  min-width: 180px;
  text-align: right;
}

.course-meta__left p,
.course-meta__right p {
  margin: 0;
  line-height: var(--line-height-loose);
  font-size: 0.9rem;
  color: var(--color-text-secondary);
}

.course-meta__left p strong,
.course-meta__right p strong {
  color: var(--color-text-primary);
  font-weight: var(--font-weight-semibold);
}

@media (max-width: 520px) {
  .course-meta {
    flex-direction: column;
    gap: var(--space-sm);
  }

  .course-meta__right {
    text-align: left;
  }
}

.q-full-hidden,
.q-ans-hidden {
  display: none;
}

#popQ img,
#popA img {
  max-width: 100%;
  height: auto;
  border-radius: var(--radius-sm);
  margin-top: var(--space-sm);
}

[data-theme="dark"] .minimal-reset-card,
.dark-mode .minimal-reset-card {
  border-color: var(--color-border);
}

[data-theme="dark"] .minimal-form-container input[type="text"],
[data-theme="dark"] .minimal-form-container input[type="email"],
[data-theme="dark"] .minimal-form-container input[type="password"],
.dark-mode .minimal-form-container input[type="text"],
.dark-mode .minimal-form-container input[type="email"],
.dark-mode .minimal-form-container input[type="password"] {
  color: var(--color-text-primary);
}

[data-theme="dark"] .auth-form-body .um-error,
.dark-mode .auth-form-body .um-error {
  background: rgba(239, 68, 68, 0.15);
  border-color: rgba(239, 68, 68, 0.3);
  color: #FCA5A5;
}

[data-theme="dark"] .auth-form-body .um-success,
.dark-mode .auth-form-body .um-success {
  background: rgba(22, 101, 52, 0.2);
  border-color: rgba(187, 247, 208, 0.2);
  color: #86EFAC;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .minimal-reset-card {
    border-color: var(--color-border);
  }

  :root:not([data-theme="light"]) .minimal-form-container input[type="text"],
  :root:not([data-theme="light"]) .minimal-form-container input[type="email"],
  :root:not([data-theme="light"]) .minimal-form-container input[type="password"] {
    color: var(--color-text-primary);
  }

  :root:not([data-theme="light"]) .auth-form-body .um-error {
    background: rgba(239, 68, 68, 0.15);
    border-color: rgba(239, 68, 68, 0.3);
    color: #FCA5A5;
  }

  :root:not([data-theme="light"]) .auth-form-body .um-success {
    background: rgba(22, 101, 52, 0.2);
    border-color: rgba(187, 247, 208, 0.2);
    color: #86EFAC;
  }
}

.dark-mode-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  background: var(--color-bg);
  border: 1.5px solid var(--color-border);
  border-radius: var(--radius-full);
  cursor: pointer;
  color: var(--color-text-secondary);
  transition: background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);
  flex-shrink: 0;
}

.dark-mode-toggle:hover {
  background: var(--color-surface-blue);
  border-color: var(--color-primary);
  color: var(--color-primary);
  transform: rotate(15deg);
}

.dark-mode-toggle .icon-moon { display: none; }
.dark-mode-toggle .icon-sun  { display: block; }

[data-theme="dark"] .dark-mode-toggle .icon-sun  { display: none; }
[data-theme="dark"] .dark-mode-toggle .icon-moon { display: block; }









   
/* =============================================
   COURSES PAGE — courses.css
   CampusGO variables only. No new :root needed.
   ============================================= */

/* ─── Card stagger animation ─────────────────── */
@keyframes cardIn {
  from { opacity: 0; transform: translateY(18px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes fadeSlideUp {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ─── Page layout ────────────────────────────── */
.courses-page-wrapper {
  display: flex;
  min-height: 100vh;
  background: var(--color-bg);
}

/* ─── Sidebar ────────────────────────────────── */
.courses-sidebar {
  width: 210px;
  min-width: 190px;
  padding: var(--space-2xl) var(--space-lg);
  background: var(--color-card);
  border-right: 1px solid var(--color-border);
  display: flex;
  flex-direction: column;
  gap: var(--space-xl);
  flex-shrink: 0;
  position: sticky;
  top: 0;
  height: 100vh;
  overflow-y: auto;
}

.filter-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.filter-group + .filter-group {
  padding-top: var(--space-lg);
  border-top: 1px solid var(--color-border);
}

.filter-group-label {
  font-size: 10px;
  font-weight: var(--font-weight-bold);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-text-secondary);
  margin-bottom: var(--space-xs);
}

.filter-item {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  cursor: pointer;
  font-size: var(--font-size-sm);
  color: var(--color-text-primary);
  user-select: none;
  padding: 5px 8px;
  border-radius: var(--radius-md);
  transition: background var(--transition-fast);
}

.filter-item:hover {
  background: var(--color-surface-blue);
}

.filter-item input[type="checkbox"] {
  width: 15px;
  height: 15px;
  accent-color: var(--color-primary);
  cursor: pointer;
  flex-shrink: 0;
}

/* ─── Main ───────────────────────────────────── */
.courses-main {
  flex: 1;
  padding: var(--space-2xl) var(--space-2xl) var(--space-3xl);
  min-width: 0;
}

/* Eyebrow */
.section-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: var(--font-weight-semibold);
  color: var(--color-primary);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: var(--space-sm);
  background: var(--color-surface-blue);
  padding: 4px 12px 4px 8px;
  border-radius: var(--radius-full);
  border: 1px solid rgba(59,130,246,0.2);
}

.section-eyebrow svg {
  width: 12px;
  height: 12px;
  flex-shrink: 0;
}

/* Heading */
.courses-heading {
  font-size: 2.2rem;
  font-weight: var(--font-weight-bold);
  color: var(--color-text-primary);
  line-height: var(--line-height-tight);
  margin: 0 0 var(--space-sm);
  letter-spacing: -0.02em;
}

.courses-heading .highlight {
  color: var(--color-primary-light);
  position: relative;
}

.courses-subtext {
  font-size: var(--font-size-sm);
  color: var(--color-text-secondary);
  margin: 0 0 var(--space-xl);
  line-height: var(--line-height-normal);
  max-width: 480px;
}

/* Grid header */
.courses-grid-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 4px;
}

.courses-grid-header h2 {
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-bold);
  color: var(--color-text-primary);
  margin: 0;
}

.courses-count-badge {
  background: var(--color-primary);
  color: var(--color-text-on-primary);
  font-size: 11px;
  font-weight: var(--font-weight-semibold);
  padding: 4px 14px;
  border-radius: var(--radius-full);
  letter-spacing: 0.02em;
}

.courses-choose-text {
  font-size: var(--font-size-xs);
  color: var(--color-text-secondary);
  margin: 0 0 var(--space-lg);
}

/* ─── Grid ───────────────────────────────────── */
.courses-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-md);
}

/* ─── Card ───────────────────────────────────── */
.course-card {
  background: var(--color-card);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  padding: var(--space-lg);
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 10px;
  box-shadow: var(--shadow-sm);
  position: relative;
  overflow: hidden;
  transition:
    box-shadow var(--transition-base),
    transform var(--transition-base),
    border-color var(--transition-base);

  /* stagger via JS-injected --i custom property */
  animation: cardIn 0.4s ease both;
  animation-delay: calc(var(--i, 0) * 60ms);
}

/* subtle top accent line on hover */
.course-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--color-primary), var(--color-primary-light));
  opacity: 0;
  transition: opacity var(--transition-base);
  border-radius: var(--radius-xl) var(--radius-xl) 0 0;
}

.course-card:hover {
  box-shadow: var(--shadow-lg);
  transform: translateY(-3px);
  border-color: var(--color-border-focus);
}

.course-card:hover::before {
  opacity: 1;
}

/* Card header — icon + title side by side */
.course-card-header {
  display: flex;
  align-items: center;
  gap: var(--space-md);
}

/* Icon */
.course-card-icon {
  width: 44px;
  height: 44px;
  border-radius: var(--radius-lg);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.course-card-icon i {
  font-size: 18px;
}

.popup-icon i {
  font-size: 24px;
}

.icon-bg-blue   { background: var(--color-surface-blue); }
.icon-bg-blue   i { color: var(--color-primary); }

.icon-bg-amber  { background: var(--color-surface-amber); }
.icon-bg-amber  i { color: var(--color-secondary-dark); }

.icon-bg-green  { background: #ecfdf5; }
.icon-bg-green  i { color: #059669; }

.icon-bg-purple { background: #f5f3ff; }
.icon-bg-purple i { color: #7c3aed; }

.icon-bg-pink   { background: #fdf2f8; }
.icon-bg-pink   i { color: #db2777; }

.icon-bg-red    { background: #fff1f2; }
.icon-bg-red    i { color: #e11d48; }

/* Title + badge stacked vertically inside header */
.course-card-title-row {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  min-width: 0;
}

.course-card-title {
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-bold);
  color: var(--color-text-primary);
  margin: 0;
  line-height: var(--line-height-tight);
}

.badge-coming-soon {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 10px;
  font-weight: var(--font-weight-semibold);
  color: var(--color-secondary-dark);
  background: var(--color-surface-amber);
  border: 1px solid rgba(245,158,11,0.25);
  padding: 2px 8px;
  border-radius: var(--radius-full);
  white-space: nowrap;
  flex-shrink: 0;
}

/* FA icon inside badge injected via JS */

/* Description */
.course-card-desc {
  font-size: var(--font-size-sm);
  color: var(--color-text-secondary);
  line-height: 1.55;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Divider */
.course-card-divider {
  height: 1px;
  background: var(--color-border);
  margin: 2px 0;
}

/* Instructor */
.course-instructor {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-text-primary);
}

.instructor-avatar {
  width: 28px;
  height: 28px;
  border-radius: var(--radius-full);
  background: var(--color-primary);
  color: var(--color-text-on-primary);
  font-size: 10px;
  font-weight: var(--font-weight-bold);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 0 0 2px var(--color-card), 0 0 0 3px var(--color-border);
}

.avatar-amber  { background: var(--color-secondary);  color: var(--color-text-on-secondary); }
.avatar-green  { background: #10b981; color: #fff; }
.avatar-purple { background: #8b5cf6; color: #fff; }
.avatar-pink   { background: #ec4899; color: #fff; }
.avatar-red    { background: #ef4444; color: #fff; }
.avatar-teal   { background: #14b8a6; color: #fff; }
.avatar-indigo { background: #6366f1; color: #fff; }

/* Rating */
.course-rating {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-primary);
}

.stars {
  color: var(--color-secondary);
  letter-spacing: 1px;
  font-size: 12px;
  line-height: 1;
}

.rating-count {
  color: var(--color-text-secondary);
  font-weight: var(--font-weight-regular);
  font-size: var(--font-size-xs);
}

/* Tags */
.course-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.course-tag {
  font-size: 11px;
  font-weight: var(--font-weight-medium);
  padding: 3px 10px;
  border-radius: var(--radius-full);
  background: var(--color-bg);
  color: var(--color-text-secondary);
  border: 1px solid var(--color-border);
  transition: background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
}

.course-card:hover .course-tag {
  background: var(--color-surface-blue);
  color: var(--color-primary);
  border-color: rgba(59,130,246,0.2);
}

/* Footer */
.course-card-footer {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  margin-top: auto;
  padding-top: var(--space-sm);
  border-top: 1px solid var(--color-border);
  flex-wrap: wrap;
}

.level-badge {
  font-size: 10px;
  font-weight: var(--font-weight-semibold);
  padding: 3px 10px;
  border-radius: var(--radius-full);
  letter-spacing: 0.02em;
}

.level-beginner     { background: var(--color-surface-blue);  color: var(--color-primary); }
.level-intermediate { background: var(--color-surface-amber); color: var(--color-secondary-dark); }
.level-advanced     { background: #fdf2f8; color: #db2777; }

.free-badge {
  font-size: 10px;
  font-weight: var(--font-weight-semibold);
  padding: 3px 10px;
  border-radius: var(--radius-full);
  background: #ecfdf5;
  color: #059669;
  border: 1px solid rgba(16,185,129,0.2);
}

.lesson-count {
  margin-left: auto;
  font-size: var(--font-size-xs);
  color: var(--color-text-secondary);
  display: flex;
  align-items: center;
  gap: 4px;
}

/* ─── Popup overlay ──────────────────────────── */
.courses-popup-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.55);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-md);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--transition-base);
}

.courses-popup-overlay.active {
  opacity: 1;
  pointer-events: all;
}

/* Popup card */
.popup-card {
  background: var(--color-card);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-2xl);
  padding: var(--space-2xl) var(--space-xl);
  max-width: 480px;
  width: 100%;
  box-shadow: var(--shadow-xl);
  transform: translateY(20px) scale(0.96);
  transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
  position: relative;
  max-height: 90vh;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--color-border) transparent;
}

.courses-popup-overlay.active .popup-card {
  transform: translateY(0) scale(1);
}

/* top color strip on popup */
.popup-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--color-primary), var(--color-primary-light));
  border-radius: var(--radius-2xl) var(--radius-2xl) 0 0;
}

/* Close button */
.popup-close-btn {
  position: absolute;
  top: var(--space-md);
  right: var(--space-md);
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  width: 34px;
  height: 34px;
  border-radius: var(--radius-full);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--color-text-secondary);
  font-size: 16px;
  transition:
    background var(--transition-fast),
    color var(--transition-fast),
    transform var(--transition-fast),
    box-shadow var(--transition-fast);
}

.popup-close-btn:hover {
  background: var(--color-surface-blue);
  color: var(--color-primary);
  transform: rotate(90deg);
  box-shadow: var(--shadow-sm);
}

/* Popup icon */
.popup-icon {
  width: 56px;
  height: 56px;
  border-radius: var(--radius-xl);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: var(--space-md);
  box-shadow: var(--shadow-sm);
}

/* Popup title */
.popup-title {
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-bold);
  color: var(--color-text-primary);
  margin: 0 0 var(--space-sm);
  padding-right: 40px;
  line-height: var(--line-height-tight);
  letter-spacing: -0.01em;
}

/* Coming soon banner */
.popup-coming-soon-banner {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  background: var(--color-surface-amber);
  color: var(--color-secondary-dark);
  border: 1px solid rgba(245,158,11,0.3);
  border-radius: var(--radius-lg);
  padding: 10px var(--space-md);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  margin-bottom: var(--space-md);
}

/* Description */
.popup-desc {
  font-size: var(--font-size-sm);
  color: var(--color-text-secondary);
  line-height: var(--line-height-normal);
  margin: 0 0 var(--space-md);
}

/* Instructor */
.popup-instructor {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  font-size: var(--font-size-sm);
  color: var(--color-text-primary);
  font-weight: var(--font-weight-medium);
  margin-bottom: var(--space-md);
  padding: 10px var(--space-md);
  background: var(--color-bg);
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border);
}

/* Rating row */
.popup-rating-row {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  flex-wrap: wrap;
  margin-bottom: var(--space-md);
}

/* Tags */
.popup-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: var(--space-lg);
}

/* Footer */
.popup-footer {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  padding-top: var(--space-md);
  border-top: 1px solid var(--color-border);
}

/* Enroll button */
.popup-enroll-btn {
  flex: 1;
  padding: 11px var(--space-md);
  background: var(--color-primary);
  color: var(--color-text-on-primary);
  border: none;
  border-radius: var(--radius-lg);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  cursor: pointer;
  font-family: var(--font-primary);
  transition:
    background var(--transition-fast),
    transform var(--transition-fast),
    box-shadow var(--transition-fast);
  box-shadow: 0 2px 8px rgba(29,78,216,0.25);
}

.popup-enroll-btn:hover {
  background: var(--color-primary-dark);
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgba(29,78,216,0.35);
}

.popup-enroll-btn:active {
  transform: translateY(0);
}

.popup-enroll-btn.disabled {
  background: var(--color-bg);
  color: var(--color-text-secondary);
  border: 1px solid var(--color-border);
  cursor: not-allowed;
  box-shadow: none;
  transform: none;
}

.popup-meta-info {
  font-size: var(--font-size-xs);
  color: var(--color-text-secondary);
  display: flex;
  align-items: center;
  gap: 5px;
  white-space: nowrap;
}

/* ─── Responsive ─────────────────────────────── */
@media (max-width: 900px) {
  .courses-grid {
    grid-template-columns: 1fr;
  }
}

/* ─── Mobile filter drawer ───────────────────── */

/* Filter toggle button — only visible on mobile */
.filter-toggle-btn {
  display: none;
}

/* Drawer overlay backdrop */
.filter-drawer-backdrop {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.45);
  backdrop-filter: blur(3px);
  z-index: 998;
  opacity: 0;
  transition: opacity var(--transition-base);
}

.filter-drawer-backdrop.active {
  opacity: 1;
}

@media (max-width: 768px) {

  /* Hide static sidebar */
  .courses-sidebar {
    position: fixed;
    top: 0;
    left: 0;
    height: 100vh;
    width: 270px;
    z-index: 999;
    transform: translateX(-100%);
    transition: transform var(--transition-base);
    overflow-y: auto;
    border-right: 1px solid var(--color-border);
    box-shadow: var(--shadow-xl);
    padding-top: 60px; /* space for close button */
  }

  .courses-sidebar.open {
    transform: translateX(0);
  }

  /* Show backdrop */
  .filter-drawer-backdrop {
    display: block;
    pointer-events: none;
  }

  .filter-drawer-backdrop.active {
    pointer-events: all;
  }

  /* Drawer close button inside sidebar */
  .filter-drawer-close {
    display: flex !important;
  }

  /* Filter toggle button visible on mobile */
  .filter-toggle-btn {
    display: inline-flex;
    align-items: center;
    gap: var(--space-sm);
    padding: 8px 16px;
    background: var(--color-card);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-full);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-primary);
    cursor: pointer;
    font-family: var(--font-primary);
    box-shadow: var(--shadow-sm);
    transition: background var(--transition-fast), border-color var(--transition-fast);
    margin-bottom: var(--space-md);
  }

  .filter-toggle-btn:hover {
    background: var(--color-surface-blue);
    border-color: var(--color-primary);
    color: var(--color-primary);
  }

  .filter-toggle-btn i {
    font-size: 14px;
  }

  /* Active filter count badge on button */
  .filter-active-count {
    background: var(--color-primary);
    color: var(--color-text-on-primary);
    font-size: 10px;
    font-weight: var(--font-weight-bold);
    width: 18px;
    height: 18px;
    border-radius: var(--radius-full);
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .courses-main {
    padding: var(--space-lg);
  }

  .courses-heading {
    font-size: var(--font-size-2xl);
  }

  .filter-group + .filter-group {
    padding-top: var(--space-lg);
    border-top: 1px solid var(--color-border);
  }
}

/* Drawer close X button — hidden on desktop */
.filter-drawer-close {
  display: none;
  position: absolute;
  top: var(--space-md);
  right: var(--space-md);
  width: 34px;
  height: 34px;
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-full);
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--color-text-secondary);
  font-size: 15px;
  transition: background var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);
  z-index: 10;
}

.filter-drawer-close:hover {
  background: var(--color-surface-blue);
  color: var(--color-primary);
  transform: rotate(90deg);
}

/* =========================================================
   ABOUT PAGE — append to style.css
   Uses only existing campusgo-theme CSS variables. No hex colors.
   Breakpoints match theme: 991px tablet, 575px mobile.
========================================================= */

.about-page {
    font-family: var(--font-primary);
    color: var(--color-text-primary);
    background: var(--color-bg);
}

/* ---------- 1. HERO ---------- */
.about-hero {
    background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
    padding: var(--space-3xl) var(--space-lg);
    text-align: center;
    color: var(--color-text-on-primary);
}

.about-hero-inner {
    max-width: 720px;
    margin: 0 auto;
}

.about-hero-badge {
    display: inline-block;
    margin-bottom: var(--space-md);
}

.about-hero-title {
    font-size: var(--font-size-3xl);
    font-weight: var(--font-weight-bold);
    margin: 0 0 var(--space-md);
    line-height: 1.2;
    color:#ffffff;
}

.about-hero-subtext {
    font-size: var(--font-size-md, var(--font-size-lg));
    line-height: 1.6;
    opacity: 0.92;
    margin: 0 auto var(--space-xl);
    max-width: 560px;
    color:#ffffff;
}

.about-hero-stats {
    display: flex;
    justify-content: center;
    gap: var(--space-2xl);
    flex-wrap: wrap;
}

.about-hero-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-xs);
}

.about-hero-stat strong {
    font-size: var(--font-size-2xl);
    font-weight: var(--font-weight-bold);
}

.about-hero-stat span {
    font-size: var(--font-size-xs);
    opacity: 0.85;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* ---------- 2. MISSION ---------- */
.about-mission {
    padding: var(--space-3xl) var(--space-lg);
}

.about-mission-inner {
    max-width: 1100px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: var(--space-2xl);
    align-items: center;
}

.about-mission-content p {
    font-size: var(--font-size-sm);
    line-height: 1.7;
    color: var(--color-text-secondary);
    margin: 0 0 var(--space-md);
}

.about-mission-visual-box {
    background: var(--color-surface-blue);
    border-radius: var(--radius-2xl);
    aspect-ratio: 4 / 3;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* ---------- 3. WHAT WE OFFER ---------- */
.about-offer {
    padding: var(--space-3xl) var(--space-lg);
    background: var(--color-surface-amber);
}

.about-offer-inner {
    max-width: 1100px;
    margin: 0 auto;
}

.about-offer-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-lg);
    margin-top: var(--space-2xl);
}

.about-offer-card {
    position: relative;
    background: var(--color-card);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-xl);
    padding: var(--space-xl) var(--space-lg);
    transition: transform var(--transition-base), box-shadow var(--transition-base);
}

.about-offer-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-lg);
}

.about-offer-number {
    position: absolute;
    top: var(--space-md);
    right: var(--space-lg);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-secondary);
    opacity: 0.5;
}

.about-offer-icon {
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-surface-blue);
    border-radius: var(--radius-md);
    margin-bottom: var(--space-md);
}

.about-offer-card h3 {
    font-size: var(--font-size-md, var(--font-size-lg));
    font-weight: var(--font-weight-semibold);
    margin: 0 0 var(--space-xs);
}

.about-offer-card p {
    font-size: var(--font-size-xs);
    line-height: 1.6;
    color: var(--color-text-secondary);
    margin: 0;
}

/* ---------- 4. TEAM ---------- */
.about-team {
    padding: var(--space-3xl) var(--space-lg);
}

.about-team-inner {
    max-width: 1200px;
    margin: 0 auto;
}

.team-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--space-lg);
    margin-top: var(--space-2xl);
}

.team-card {
    flex: 0 1 260px;
    max-width: 280px;
    background: var(--color-card);
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-xl);
    padding: var(--space-xl) var(--space-lg);
    text-align: center;
    transition: transform var(--transition-base), box-shadow var(--transition-base);
}

.team-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-lg);
}

.team-card-photo {
    width: 88px;
    height: 88px;
    margin: 0 auto var(--space-md);
    border-radius: var(--radius-full);
    overflow: hidden;
    background: var(--color-surface-blue);
}

.team-card-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.team-card-name {
    font-size: var(--font-size-md, var(--font-size-lg));
    font-weight: var(--font-weight-semibold);
    margin: 0 0 2px;
}

.team-card-role {
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-medium);
    color: var(--color-primary);
    margin: 0 0 var(--space-sm);
}

.team-card-bio {
    font-size: var(--font-size-xs);
    line-height: 1.6;
    color: var(--color-text-secondary);
    margin: 0 0 var(--space-md);
}

.team-social-row {
    display: flex;
    justify-content: center;
    gap: var(--space-sm);
}

.team-social-icon {
    width: 38px;
    height: 38px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-md);
    background: var(--color-border);
    color: var(--color-text-primary);
    transition: background var(--transition-fast), color var(--transition-fast);
}

.team-social-icon:hover {
    background: var(--color-primary);
    color: var(--color-text-on-primary);
}

/* ---------- 5. WHY TRUST US ---------- */
.about-trust {
    padding: var(--space-3xl) var(--space-lg);
    background: var(--color-surface-blue);
}

.about-trust-inner {
    max-width: 1000px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-2xl);
    text-align: center;
}

.about-trust-icon {
    width: 56px;
    height: 56px;
    margin: 0 auto var(--space-md);
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-card);
    border-radius: var(--radius-full);
    box-shadow: var(--shadow-sm);
}

.about-trust-item h3 {
    font-size: var(--font-size-md, var(--font-size-lg));
    font-weight: var(--font-weight-semibold);
    margin: 0 0 var(--space-xs);
}

.about-trust-item p {
    font-size: var(--font-size-xs);
    line-height: 1.6;
    color: var(--color-text-secondary);
    margin: 0;
}

/* ---------- 6. CONTACT CTA ---------- */
.about-contact-cta {
    padding: var(--space-3xl) var(--space-lg);
}

.about-contact-cta-inner {
    max-width: 700px;
    margin: 0 auto;
    background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
    border-radius: var(--radius-2xl);
    padding: var(--space-2xl);
    text-align: center;
    color: var(--color-text-on-primary);
}

.about-contact-cta-inner h2 {
    font-size: var(--font-size-2xl);
    font-weight: var(--font-weight-bold);
    margin: 0 0 var(--space-sm);
    color:#ffffff;
}

.about-contact-cta-inner p {
    font-size: var(--font-size-sm);
    line-height: 1.6;
    opacity: 0.92;
    margin: 0 0 var(--space-lg);
    color:#ffffff;
}

.about-contact-cta .btn {
    background: var(--color-card);
    color: var(--color-primary);
}

/* =========================================================
   RESPONSIVE — tablet 991px, mobile 575px
========================================================= */
@media (max-width: 991px) {
    .about-mission-inner {
        grid-template-columns: 1fr;
    }

    .about-mission-visual {
        order: -1;
    }

    .about-mission-visual-box {
        aspect-ratio: 16 / 9;
    }

    .about-offer-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .team-grid {
        gap: var(--space-md);
    }

    .about-trust-inner {
        grid-template-columns: 1fr;
        gap: var(--space-xl);
    }
}

@media (max-width: 575px) {
    .about-hero-title {
        font-size: var(--font-size-2xl);
    }

    .about-hero-stats {
        gap: var(--space-lg);
    }

    .about-offer-grid {
        grid-template-columns: 1fr;
    }

    .team-card {
        flex: 1 1 100%;
        max-width: 100%;
    }
}

/* privacy and term*/

.site-main .container > h1 {
    display: none !important;
}

*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

.pri-body,
.ter-body {
    font-family: var(--font-primary);
    background-color: var(--color-bg);
    color: var(--color-text-primary);
    line-height: var(--line-height-loose);
    -webkit-font-smoothing: antialiased;
}

.pri-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: var(--color-card);
    border-bottom: 1px solid var(--color-border);
    box-shadow: var(--shadow-sm);
}

.pri-header-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 28px;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.pri-logo {
    display: flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
}

.pri-logo-icon {
    border-radius: var(--radius-md);
}

.pri-logo-text {
    font-size: var(--font-size-md);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    letter-spacing: -0.02em;
}

.pri-back-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: var(--space-sm) var(--space-md);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-primary);
    background: var(--color-surface-blue);
    border-radius: var(--radius-sm);
    text-decoration: none;
    transition: background var(--transition-fast), color var(--transition-fast);
}

.pri-back-btn:hover {
    background: rgba(29, 78, 216, 0.12);
    color: var(--color-primary-dark);
}

.ter-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: var(--color-card);
    border-bottom: 1px solid var(--color-border);
    box-shadow: var(--shadow-sm);
}

.ter-header-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 28px;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.ter-logo {
    display: flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
}

.ter-logo-icon {
    border-radius: var(--radius-md);
}

.ter-logo-text {
    font-size: var(--font-size-md);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    letter-spacing: -0.02em;
}

.ter-back-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: var(--space-sm) var(--space-md);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-primary);
    background: var(--color-surface-blue);
    border-radius: var(--radius-sm);
    text-decoration: none;
    transition: background var(--transition-fast), color var(--transition-fast);
}

.ter-back-btn:hover {
    background: rgba(29, 78, 216, 0.12);
    color: var(--color-primary-dark);
}

.pri-hero {
    background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 55%, #1e40af 100%);
    padding: 56px 28px;
    text-align: center;
}

.pri-hero-inner {
    max-width: 680px;
    margin: 0 auto;
}

.pri-hero-icon {
    width: 64px;
    height: 64px;
    background: rgba(255, 255, 255, 0.15);
    border-radius: var(--radius-xl);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 20px;
    color: var(--color-text-on-primary);
}

.pri-hero-title {
    font-size: clamp(1.8rem, 4vw, 2.6rem);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-on-primary);
    letter-spacing: -0.02em;
    margin-bottom: 14px;
}

.pri-hero-desc {
    font-size: var(--font-size-base);
    color: rgba(255, 255, 255, 0.82);
    line-height: var(--line-height-loose);
    margin-bottom: 24px;
}

.pri-hero-meta {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 12px;
}

.pri-meta-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.8rem;
    color: rgba(255, 255, 255, 0.75);
    font-weight: var(--font-weight-medium);
}

.pri-meta-divider {
    width: 4px;
    height: 4px;
    background: rgba(255, 255, 255, 0.4);
    border-radius: var(--radius-full);
}

.ter-hero {
    background: linear-gradient(135deg, var(--color-primary-dark) 0%, var(--color-primary) 55%, #2563eb 100%);
    padding: 56px 28px;
    text-align: center;
}

.ter-hero-inner {
    max-width: 680px;
    margin: 0 auto;
}

.ter-hero-icon {
    width: 64px;
    height: 64px;
    background: rgba(255, 255, 255, 0.15);
    border-radius: var(--radius-xl);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 20px;
    color: var(--color-text-on-primary);
}

.ter-hero-title {
    font-size: clamp(1.8rem, 4vw, 2.6rem);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-on-primary);
    letter-spacing: -0.02em;
    margin-bottom: 14px;
}

.ter-hero-desc {
    font-size: var(--font-size-base);
    color: rgba(255, 255, 255, 0.82);
    line-height: var(--line-height-loose);
    margin-bottom: 24px;
}

.ter-hero-meta {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 12px;
}

.ter-meta-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.8rem;
    color: rgba(255, 255, 255, 0.75);
    font-weight: var(--font-weight-medium);
}

.ter-meta-divider {
    width: 4px;
    height: 4px;
    background: rgba(255, 255, 255, 0.4);
    border-radius: var(--radius-full);
}

.pri-layout {
    max-width: 1200px;
    margin: 0 auto;
    padding: 48px 28px 80px;
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 40px;
    align-items: start;
}

.ter-layout {
    max-width: 1200px;
    margin: 0 auto;
    padding: 48px 28px 80px;
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 40px;
    align-items: start;
}

.pri-sidebar {
    position: sticky;
    top: 88px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.pri-toc {
    background: var(--color-card);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: 20px;
}

.pri-toc-label {
    font-size: 0.7rem;
    font-weight: var(--font-weight-bold);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-text-secondary);
    margin-bottom: 14px;
}

.pri-toc-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.pri-toc-link {
    display: block;
    padding: 7px 10px;
    font-size: 0.825rem;
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary);
    text-decoration: none;
    border-radius: var(--radius-sm);
    transition: background var(--transition-fast), color var(--transition-fast);
    line-height: var(--line-height-tight);
}

.pri-toc-link:hover {
    background: var(--color-surface-blue);
    color: var(--color-primary);
}

.pri-toc-link.active {
    background: var(--color-surface-blue);
    color: var(--color-primary);
    font-weight: var(--font-weight-semibold);
}

.pri-sidebar-card {
    background: var(--color-surface-blue);
    border: 1px solid rgba(29, 78, 216, 0.12);
    border-radius: var(--radius-lg);
    padding: 20px;
    text-align: center;
}

.pri-sidebar-card-icon {
    width: 44px;
    height: 44px;
    background: var(--color-primary);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 12px;
    color: var(--color-text-on-primary);
}

.pri-sidebar-card-title {
    font-size: 0.9rem;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin-bottom: 6px;
}

.pri-sidebar-card-text {
    font-size: 0.8rem;
    color: var(--color-text-secondary);
    line-height: var(--line-height-normal);
    margin-bottom: 14px;
}

.pri-sidebar-card-btn {
    display: inline-block;
    padding: var(--space-sm) 14px;
    font-size: 0.8rem;
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-on-primary);
    background: var(--color-primary);
    border-radius: var(--radius-sm);
    text-decoration: none;
    word-break: break-all;
    transition: background var(--transition-fast);
}

.pri-sidebar-card-btn:hover {
    background: var(--color-primary-dark);
}

.ter-sidebar {
    position: sticky;
    top: 88px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.ter-toc {
    background: var(--color-card);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: 20px;
}

.ter-toc-label {
    font-size: 0.7rem;
    font-weight: var(--font-weight-bold);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-text-secondary);
    margin-bottom: 14px;
}

.ter-toc-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.ter-toc-link {
    display: block;
    padding: 7px 10px;
    font-size: 0.825rem;
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary);
    text-decoration: none;
    border-radius: var(--radius-sm);
    transition: background var(--transition-fast), color var(--transition-fast);
    line-height: var(--line-height-tight);
}

.ter-toc-link:hover {
    background: var(--color-surface-blue);
    color: var(--color-primary);
}

.ter-toc-link.active {
    background: var(--color-surface-blue);
    color: var(--color-primary);
    font-weight: var(--font-weight-semibold);
}

.ter-sidebar-card {
    background: var(--color-surface-amber);
    border: 1px solid rgba(245, 158, 11, 0.20);
    border-radius: var(--radius-lg);
    padding: 20px;
    text-align: center;
}

.ter-sidebar-card-icon {
    width: 44px;
    height: 44px;
    background: var(--color-secondary);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 12px;
    color: var(--color-text-on-primary);
}

.ter-sidebar-card-title {
    font-size: 0.9rem;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin-bottom: 6px;
}

.ter-sidebar-card-text {
    font-size: 0.8rem;
    color: var(--color-text-secondary);
    line-height: var(--line-height-normal);
    margin-bottom: 14px;
}

.ter-sidebar-card-btn {
    display: inline-block;
    padding: var(--space-sm) 14px;
    font-size: 0.8rem;
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-on-primary);
    background: var(--color-secondary);
    border-radius: var(--radius-sm);
    text-decoration: none;
    word-break: break-all;
    transition: background var(--transition-fast);
}

.ter-sidebar-card-btn:hover {
    background: var(--color-secondary-dark);
}

.ter-sidebar-related {
    background: var(--color-card);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: 16px 20px;
}

.ter-related-label {
    font-size: 0.7rem;
    font-weight: var(--font-weight-bold);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-text-secondary);
    margin-bottom: 10px;
}

.ter-related-link {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    font-size: 0.85rem;
    font-weight: var(--font-weight-medium);
    color: var(--color-primary);
    text-decoration: none;
    padding: 6px var(--space-sm);
    border-radius: var(--radius-sm);
    transition: background var(--transition-fast);
}

.ter-related-link:hover {
    background: var(--color-surface-blue);
}

.pri-content {
    min-width: 0;
}

.pri-intro-box {
    display: flex;
    gap: 14px;
    background: var(--color-card);
    border: 1px solid var(--color-border);
    border-left: 4px solid var(--color-primary);
    border-radius: 10px;
    padding: 18px 20px;
    margin-bottom: 36px;
    font-size: 0.9rem;
    color: var(--color-text-secondary);
    line-height: var(--line-height-loose);
}

.pri-intro-icon {
    flex-shrink: 0;
    color: var(--color-primary);
    margin-top: 2px;
}

.pri-intro-box strong {
    color: var(--color-text-primary);
}

.pri-section {
    margin-bottom: var(--space-sm);
}

.pri-section-header {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 18px;
}

.pri-section-num {
    font-size: 0.75rem;
    font-weight: var(--font-weight-bold);
    color: var(--color-primary);
    background: var(--color-surface-blue);
    border-radius: var(--radius-sm);
    padding: 4px 10px;
    letter-spacing: 0.04em;
    flex-shrink: 0;
}

.pri-section-title {
    font-size: 1.3rem;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    letter-spacing: -0.01em;
}

.pri-sub-title {
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    margin: 20px 0 12px;
}

.pri-text {
    font-size: 0.925rem;
    color: var(--color-text-secondary);
    line-height: 1.78;
    margin-bottom: 14px;
}

.pri-divider {
    border: none;
    border-top: 1px solid var(--color-border);
    margin: 36px 0;
}

.pri-list {
    list-style: none;
    padding: 0;
    margin: 0 0 16px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.pri-list-item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 0.9rem;
    color: var(--color-text-secondary);
    line-height: var(--line-height-loose);
}

.pri-list-icon {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    background: var(--color-surface-blue);
    border-radius: var(--radius-full);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-primary);
    margin-top: 2px;
}

.pri-list-item strong {
    color: var(--color-text-primary);
}

.pri-highlight-box {
    display: flex;
    gap: 12px;
    border-radius: 10px;
    padding: 16px 18px;
    margin: 20px 0;
    font-size: 0.9rem;
    line-height: var(--line-height-loose);
}

.pri-highlight-blue {
    background: var(--color-surface-blue);
    border: 1px solid rgba(29, 78, 216, 0.15);
    color: var(--color-primary-dark);
}

.pri-highlight-amber {
    background: var(--color-surface-amber);
    border: 1px solid rgba(245, 158, 11, 0.20);
    color: #92400e;
}

.pri-highlight-icon {
    flex-shrink: 0;
    margin-top: 2px;
}

.pri-highlight-box strong {
    color: inherit;
}

.pri-card-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
    margin: 20px 0;
}

.pri-use-card {
    background: var(--color-card);
    border: 1px solid var(--color-border);
    border-radius: 10px;
    padding: 18px;
    transition: box-shadow var(--transition-fast), transform var(--transition-fast);
}

.pri-use-card:hover {
    box-shadow: 0 4px 16px rgba(29, 78, 216, 0.10);
    transform: translateY(-2px);
}

.pri-use-card-icon {
    width: 40px;
    height: 40px;
    background: var(--color-surface-blue);
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-primary);
    margin-bottom: 12px;
}

.pri-use-card-title {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin-bottom: 6px;
}

.pri-use-card-text {
    font-size: 0.8rem;
    color: var(--color-text-secondary);
    line-height: var(--line-height-normal);
    margin: 0;
}

.pri-table-wrap {
    overflow-x: auto;
    border-radius: 10px;
    border: 1px solid var(--color-border);
    margin: 20px 0;
}

.pri-table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--font-size-sm);
}

.pri-table thead {
    background: var(--color-bg);
}

.pri-table th {
    text-align: left;
    padding: 12px 16px;
    font-size: 0.75rem;
    font-weight: var(--font-weight-bold);
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--color-text-secondary);
    border-bottom: 1px solid var(--color-border);
    white-space: nowrap;
}

.pri-table td {
    padding: 12px 16px;
    color: var(--color-text-primary);
    border-bottom: 1px solid var(--color-border);
    vertical-align: middle;
}

.pri-table tr:last-child td {
    border-bottom: none;
}

.pri-table tbody tr:hover {
    background: var(--color-surface-blue);
}

.pri-badge {
    display: inline-flex;
    padding: 3px 10px;
    font-size: 0.75rem;
    font-weight: var(--font-weight-semibold);
    border-radius: var(--radius-full);
}

.pri-badge-blue  { background: var(--color-surface-blue);  color: var(--color-primary); }
.pri-badge-amber { background: var(--color-surface-amber); color: #92400e; }
.pri-badge-gray  { background: rgba(100, 116, 139, 0.10);  color: var(--color-text-secondary); }

.pri-security-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    margin: 20px 0;
}

.pri-security-item {
    background: var(--color-card);
    border: 1px solid var(--color-border);
    border-radius: 10px;
    padding: 20px;
}

.pri-security-icon {
    width: 44px;
    height: 44px;
    background: var(--color-surface-blue);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-primary);
    margin-bottom: 12px;
}

.pri-security-item h4 {
    font-size: 0.9rem;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin-bottom: 6px;
}

.pri-security-item p {
    font-size: 0.825rem;
    color: var(--color-text-secondary);
    line-height: 1.65;
    margin: 0;
}

.pri-rights-list {
    list-style: none;
    padding: 0;
    margin: 20px 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.pri-rights-item {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    background: var(--color-card);
    border: 1px solid var(--color-border);
    border-radius: 10px;
    padding: 16px 18px;
}

.pri-rights-icon {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    background: var(--color-surface-blue);
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-primary);
}

.pri-rights-item strong {
    display: block;
    font-size: 0.9rem;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin-bottom: 4px;
}

.pri-rights-item p {
    font-size: 0.85rem;
    color: var(--color-text-secondary);
    line-height: var(--line-height-normal);
    margin: 0;
}

.pri-contact-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin: 20px 0;
}

.pri-contact-card {
    background: var(--color-card);
    border: 1px solid var(--color-border);
    border-radius: 10px;
    padding: 20px;
    text-align: center;
}

.pri-contact-icon {
    width: 44px;
    height: 44px;
    background: var(--color-surface-blue);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-primary);
    margin: 0 auto 12px;
}

.pri-contact-card h4 {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin-bottom: 6px;
}

.pri-contact-card a {
    font-size: 0.825rem;
    color: var(--color-primary);
    text-decoration: none;
    font-weight: var(--font-weight-medium);
    word-break: break-all;
}

.pri-contact-card a:hover {
    text-decoration: underline;
}

.pri-contact-card p {
    font-size: 0.825rem;
    color: var(--color-text-secondary);
    line-height: var(--line-height-normal);
    margin: 0;
}

.ter-content {
    min-width: 0;
}

.ter-intro-box {
    display: flex;
    gap: 14px;
    background: var(--color-card);
    border: 1px solid var(--color-border);
    border-left: 4px solid var(--color-secondary);
    border-radius: 10px;
    padding: 18px 20px;
    margin-bottom: 36px;
    font-size: 0.9rem;
    color: var(--color-text-secondary);
    line-height: var(--line-height-loose);
}

.ter-intro-icon {
    flex-shrink: 0;
    color: var(--color-secondary);
    margin-top: 2px;
}

.ter-intro-box strong {
    color: var(--color-text-primary);
}

.ter-section {
    margin-bottom: var(--space-sm);
}

.ter-section-header {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 18px;
}

.ter-section-num {
    font-size: 0.75rem;
    font-weight: var(--font-weight-bold);
    color: var(--color-secondary-dark);
    background: var(--color-surface-amber);
    border-radius: var(--radius-sm);
    padding: 4px 10px;
    letter-spacing: 0.04em;
    flex-shrink: 0;
}

.ter-section-title {
    font-size: 1.3rem;
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    letter-spacing: -0.01em;
}

.ter-sub-title {
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    margin: 20px 0 12px;
}

.ter-text {
    font-size: 0.925rem;
    color: var(--color-text-secondary);
    line-height: 1.78;
    margin-bottom: 14px;
}

.ter-divider {
    border: none;
    border-top: 1px solid var(--color-border);
    margin: 36px 0;
}

.ter-list {
    list-style: none;
    padding: 0;
    margin: 0 0 16px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.ter-list-item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 0.9rem;
    color: var(--color-text-secondary);
    line-height: var(--line-height-loose);
}

.ter-list-icon {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    background: var(--color-surface-blue);
    border-radius: var(--radius-full);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-primary);
    margin-top: 2px;
}

.ter-list-item-warn .ter-list-icon-warn {
    background: #fee2e2;
    color: #991b1b;
}

.ter-list-item strong {
    color: var(--color-text-primary);
}

.ter-highlight-box {
    display: flex;
    gap: 12px;
    border-radius: 10px;
    padding: 16px 18px;
    margin: 20px 0;
    font-size: 0.9rem;
    line-height: var(--line-height-loose);
}

.ter-highlight-blue {
    background: var(--color-surface-blue);
    border: 1px solid rgba(29, 78, 216, 0.15);
    color: var(--color-primary-dark);
}

.ter-highlight-amber {
    background: var(--color-surface-amber);
    border: 1px solid rgba(245, 158, 11, 0.20);
    color: #92400e;
}

.ter-highlight-icon {
    flex-shrink: 0;
    margin-top: 2px;
}

.ter-highlight-box strong {
    color: inherit;
}

.ter-access-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
    margin: 20px 0;
}

.ter-access-card {
    background: var(--color-card);
    border: 1px solid var(--color-border);
    border-radius: 10px;
    padding: 18px;
    transition: box-shadow var(--transition-fast), transform var(--transition-fast);
}

.ter-access-card:hover {
    box-shadow: 0 4px 16px rgba(29, 78, 216, 0.10);
    transform: translateY(-2px);
}

.ter-access-card-icon {
    width: 40px;
    height: 40px;
    background: var(--color-surface-blue);
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-primary);
    margin-bottom: 12px;
}

.ter-access-card h4 {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin-bottom: 6px;
}

.ter-access-card p {
    font-size: 0.8rem;
    color: var(--color-text-secondary);
    line-height: var(--line-height-normal);
    margin: 0;
}

.ter-refund-box {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin: 20px 0;
}

.ter-refund-item {
    border-radius: 10px;
    padding: 18px;
    border: 1px solid transparent;
}

.ter-refund-yes {
    background: #f0fdf4;
    border-color: rgba(22, 163, 74, 0.20);
}

.ter-refund-no {
    background: #fef2f2;
    border-color: rgba(185, 28, 28, 0.15);
}

.ter-refund-header {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    font-size: 0.85rem;
    font-weight: var(--font-weight-bold);
    margin-bottom: 12px;
}

.ter-refund-yes .ter-refund-header { color: #166534; }
.ter-refund-no  .ter-refund-header { color: #991b1b; }

.ter-refund-item ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.ter-refund-item ul li {
    font-size: 0.825rem;
    line-height: var(--line-height-normal);
    padding-left: 12px;
    position: relative;
}

.ter-refund-item ul li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 9px;
    width: 5px;
    height: 5px;
    border-radius: var(--radius-full);
}

.ter-refund-yes ul li         { color: #166534; }
.ter-refund-yes ul li::before { background: #16a34a; }
.ter-refund-no  ul li         { color: #991b1b; }
.ter-refund-no  ul li::before { background: #ef4444; }

.ter-refund-item ul li strong {
    color: inherit;
}

.ter-ip-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin: 20px 0;
}

.ter-ip-card {
    border-radius: 10px;
    padding: 20px;
    border: 1px solid transparent;
}

.ter-ip-allowed    { background: #f0fdf4; border-color: rgba(22, 163, 74, 0.20); }
.ter-ip-prohibited { background: #fef2f2; border-color: rgba(185, 28, 28, 0.15); }

.ter-ip-card-header {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-bold);
    margin-bottom: 14px;
}

.ter-ip-allowed    .ter-ip-card-header { color: #166534; }
.ter-ip-prohibited .ter-ip-card-header { color: #991b1b; }

.ter-ip-card ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
}

.ter-ip-card ul li {
    font-size: 0.825rem;
    line-height: var(--line-height-normal);
    padding-left: 14px;
    position: relative;
}

.ter-ip-card ul li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 9px;
    width: 5px;
    height: 5px;
    border-radius: var(--radius-full);
}

.ter-ip-allowed    ul li         { color: #15803d; }
.ter-ip-allowed    ul li::before { background: #16a34a; }
.ter-ip-prohibited ul li         { color: #b91c1c; }
.ter-ip-prohibited ul li::before { background: #ef4444; }

.ter-contact-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin: 20px 0;
}

.ter-contact-card {
    background: var(--color-card);
    border: 1px solid var(--color-border);
    border-radius: 10px;
    padding: 20px;
    text-align: center;
}

.ter-contact-icon {
    width: 44px;
    height: 44px;
    background: var(--color-surface-amber);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-secondary-dark);
    margin: 0 auto 12px;
}

.ter-contact-card h4 {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin-bottom: 6px;
}

.ter-contact-card a {
    font-size: 0.825rem;
    color: var(--color-primary);
    text-decoration: none;
    font-weight: var(--font-weight-medium);
    word-break: break-all;
}

.ter-contact-card a:hover {
    text-decoration: underline;
}

.ter-contact-card p {
    font-size: 0.825rem;
    color: var(--color-text-secondary);
    line-height: var(--line-height-normal);
    margin: 0;
}

.pri-footer {
    background: var(--color-text-primary);
    padding: 24px 28px;
}

.pri-footer-inner {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
}

.pri-footer-copy {
    font-size: 0.825rem;
    color: rgba(255, 255, 255, 0.5);
}

.pri-footer-links {
    display: flex;
    align-items: center;
    gap: 12px;
}

.pri-footer-links a {
    font-size: 0.825rem;
    color: rgba(255, 255, 255, 0.55);
    text-decoration: none;
    transition: color var(--transition-fast);
}

.pri-footer-links a:hover {
    color: var(--color-text-on-primary);
}

.pri-footer-dot {
    width: 4px;
    height: 4px;
    background: rgba(255, 255, 255, 0.25);
    border-radius: var(--radius-full);
}

.ter-footer {
    background: var(--color-text-primary);
    padding: 24px 28px;
}

.ter-footer-inner {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
}

.ter-footer-copy {
    font-size: 0.825rem;
    color: rgba(255, 255, 255, 0.5);
}

.ter-footer-links {
    display: flex;
    align-items: center;
    gap: 12px;
}

.ter-footer-links a {
    font-size: 0.825rem;
    color: rgba(255, 255, 255, 0.55);
    text-decoration: none;
    transition: color var(--transition-fast);
}

.ter-footer-links a:hover {
    color: var(--color-text-on-primary);
}

.ter-footer-dot {
    width: 4px;
    height: 4px;
    background: rgba(255, 255, 255, 0.25);
    border-radius: var(--radius-full);
}

@media (max-width: 1024px) {
    .pri-layout,
    .ter-layout {
        grid-template-columns: 220px 1fr;
        gap: 28px;
    }

    .pri-card-grid    { grid-template-columns: repeat(2, 1fr); }
    .pri-contact-grid { grid-template-columns: repeat(2, 1fr); }
    .ter-access-grid  { grid-template-columns: repeat(2, 1fr); }
    .ter-contact-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
    .pri-layout,
    .ter-layout {
        grid-template-columns: 1fr;
        padding: 28px 20px 60px;
    }

    .pri-sidebar,
    .ter-sidebar {
        position: static;
        order: -1;
    }

    .pri-hero,
    .ter-hero { padding: 40px 20px; }

    .pri-card-grid     { grid-template-columns: repeat(2, 1fr); }
    .pri-security-grid { grid-template-columns: 1fr; }
    .pri-contact-grid  { grid-template-columns: 1fr; }

    .ter-ip-grid      { grid-template-columns: 1fr; }
    .ter-refund-box   { grid-template-columns: 1fr; }
    .ter-access-grid  { grid-template-columns: 1fr; }
    .ter-contact-grid { grid-template-columns: 1fr; }

    .pri-header-inner,
    .ter-header-inner { padding: 0 16px; }
}

@media (max-width: 480px) {
    .pri-card-grid    { grid-template-columns: 1fr; }
    .pri-contact-grid { grid-template-columns: 1fr; }

    .pri-hero-meta,
    .ter-hero-meta    { flex-direction: column; gap: var(--space-sm); }

    .pri-meta-divider,
    .ter-meta-divider { display: none; }

    .pri-footer-inner,
    .ter-footer-inner { flex-direction: column; text-align: center; }
}
