/* ==========================================
   CSS VARIABLES
   ========================================== */
:root {
    --primary:    #002472;
    --secondary:  #020c56;
    --gold:       #d4a574;
    --text-dark:  #333333;
    --text-light: #666666;
    --bg-light:   #f8f9fa;
    --white:      #ffffff;
    --shadow:     0 4px 20px rgba(0,0,0,0.10);
    --shadow-lg:  0 10px 40px rgba(0,0,0,0.15);
    --ease:       all 0.3s cubic-bezier(0.4,0,0.2,1);

    --topbar-h:  40px;
    --header-h:  110px;
    --nav-h:     50px;
    --fixed-top: calc(var(--topbar-h) + var(--header-h) + var(--nav-h));
}

/* ==========================================
   RESET & BASE
   ========================================== */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
    font-family:'Poppins', sans-serif;
    color: var(--text-dark);
    line-height:1.6;
    overflow-x:hidden;
    padding-top: var(--fixed-top);
    background: var(--bg-light);
}
.container-fluid { width:100%; padding:0 2rem; max-width:1920px; margin:0 auto; }
.container       { max-width:1400px; margin:0 auto; padding:0 2rem; }

/* ==========================================
   TOP BAR
   ========================================== */
.top-bar {
    position:fixed; top:0; left:0; right:0;
    height: var(--topbar-h);
    background: var(--secondary);
    color: var(--white);
    display:flex; align-items:center;
    font-size:0.8rem;
    z-index:1003;
}
.top-bar-content {
    display:flex; justify-content:space-between;
    align-items:center; width:100%; height:100%;
}
.top-bar-left  { display:flex; align-items:center; gap:2rem; }
.top-bar-info  { display:flex; align-items:center; gap:0.4rem; }
.top-bar-info i{ color: var(--gold); font-size:0.72rem; }
.email-link    { color: var(--white); text-decoration:none; }
.top-bar-right { display:flex; align-items:center; gap:1.5rem; flex-shrink:0; }
.top-bar-right a{
    color: var(--white); text-decoration:none;
    transition: var(--ease);
    display:flex; align-items:center; gap:0.35rem; font-size:0.8rem;
}
.top-bar-right a:hover { color: var(--gold); }

/* ==========================================
   HEADER
   ========================================== */
.header {
    position:fixed;
    top: var(--topbar-h); left:0; right:0;
    height: var(--header-h);
    background: var(--white);
    /* border-bottom:3px solid var(--gold); */
    z-index:1002;
    display:flex; align-items:center;
}
.header-content {
    display:flex; align-items:center;
    gap:1.4rem; width:100%; height:100%;
}

/* Logo */
.header-logo {
    flex-shrink:0;
    display:flex; align-items:center; justify-content:center;
}
.header-logo img {
    height:82px; width:auto;
    object-fit:contain; border-radius:8px; display:block;
}
.header-logo-fallback {
    width:82px; height:82px;
    background: linear-gradient(135deg, var(--primary) 0%, #1a4db8 100%);
    border-radius:12px;
    display:flex; align-items:center; justify-content:center;
    font-size:1.7rem; font-weight:800; color:var(--white);
    letter-spacing:-1px; flex-shrink:0;
    box-shadow: 0 4px 16px rgba(0,36,114,0.4);
    user-select:none;
    border:2px solid rgba(212,165,116,0.5);
}

/* Divider */
.header-divider {
    width:2px; height:62px;
    background: linear-gradient(to bottom, transparent, var(--gold), transparent);
    flex-shrink:0; opacity:0.5;
}

/* Text */
.header-text    { flex: 1; min-width: 0; display: flex; flex-direction: column; justify-content: center; }
.header-text h1 { 
    font-family: 'Cooper Black','Georgia',serif; 
    font-size: clamp(1.08rem,1.9vw,1.45rem); 
    color: var(--blue); 
    font-weight: 900; 
    margin-bottom: 2px; 
    line-height: 1.2; 
    white-space: nowrap; 
    overflow: hidden; 
    text-overflow: ellipsis;  
    letter-spacing: 0.08em;
}

.header-subtitle { 
    font-size: clamp(.68rem,.9vw,.78rem); 
    color: var(--blue);        /* ← changed from --accent-copper to --blue */
    font-weight: 600; 
    margin-bottom: 1px; 
    font-style: italic; 
    line-height: 1.3;  
    letter-spacing: 0.05em;
}

.header-info { 
    font-size: clamp(.62rem,.8vw,.72rem); 
    color: var(--blue);        /* ← changed from --accent-copper to --blue */
    line-height: 1.3; 
    font-weight: 600;  
    letter-spacing: 0.05em;
}
/* Badges */
.header-badges { display:flex; gap:5px; flex-wrap:wrap; }
.h-badge {
    font-size:0.61rem; font-weight:700; letter-spacing:0.3px;
    padding:2px 8px; border-radius:20px; border:1px solid; line-height:1.6;
}
.h-badge-aicte { border-color:#0077cc; color:#0077cc; background:rgba(0,119,204,0.06); }
.h-badge-anna  { border-color:#cc5500; color:#cc5500; background:rgba(204,85,0,0.06); }
.h-badge-naac  { border-color:#009966; color:#009966; background:rgba(0,153,102,0.06); }

/* ==========================================
   NAVBAR


/* ── Body ── */
body {
    padding-top: calc(var(--topbar-h) + var(--header-h) + var(--nav-h));
}

/* ── Navbar ── */
.navbar {
    position: fixed;
    top: calc(var(--topbar-h) + var(--header-h));
    left: 0; right: 0;
    height: var(--nav-h);
    background: var(--primary);
    box-shadow: 0 3px 14px rgba(0,0,0,0.3);
    z-index: 1001;
}

/* ── Nav Container ── */
.nav-container {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    width: 100%;
    max-width: 1920px;
    margin: 0 auto;
    padding: 0;
}

/* ── Nav Links ── */
.nav-links {
    display: flex;
    list-style: none;
    gap: 0;
    margin: 0;
    padding: 0;
    justify-content: center;
    align-items: stretch;      /* stretch items full height */
    height: 100%;
}

/* ── Nav Item ── */
.nav-item {
    position: relative;
    display: flex;
    align-items: stretch;      /* stretch anchor full height */
    height: 100%;
}

/* ── Nav Link ── */
.nav-item a {
    display: flex;
    align-items: center;       /* vertically center icon + text */
    justify-content: center;   /* horizontally center icon + text */
    gap: 0.42rem;
    height: 100%;
    padding: 0 1.3rem;
    text-decoration: none;
    color: rgba(255,255,255,0.88);
    font-weight: 500;
    font-size: 0.87rem;
    line-height: var(--nav-h); /* lock line-height to nav height */
    transition: var(--ease);
    border-right: 1px solid rgba(255,255,255,0.1);
    white-space: nowrap;
}

.nav-item:first-child a {
    border-left: 1px solid rgba(255,255,255,0.1);
}

.nav-item a:hover,
.nav-item a.active {
    background: rgba(255,255,255,0.13);
    color: var(--gold);
}

/* ── Nav Icon ── */
.nav-item a .nav-icon {
    font-size: 0.82rem;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;            /* reset icon line-height */
}

/* ── Nav Text ── */
.nav-item a .nav-text {
    display: flex;
    align-items: center;
    line-height: 1;            /* reset text line-height */
}
/* Hamburger */
.hamburger {
    display: none;
    flex-direction: column;
    cursor: pointer;
    gap: 5px;
    padding: 0.6rem 0.75rem;
    position: absolute;
    right: 1rem;
    top: 50%;
    transform: translateY(-50%);
    background: var(--primary);       /* ← dark blue background */
    border: none;
    border-radius: 8px;               /* ← rounded corners */
    z-index: 10;
    box-shadow: 0 2px 10px rgba(0,36,114,0.35);
}
.hamburger span {
    display:block; width:23px; height:2.5px;
    background: var(--white); border-radius:3px; transition: var(--ease);
}
.hamburger.open span:nth-child(1){ transform:translateY(7.5px) rotate(45deg); }
.hamburger.open span:nth-child(2){ opacity:0; transform:scaleX(0); }
.hamburger.open span:nth-child(3){ transform:translateY(-7.5px) rotate(-45deg); }

.nav-overlay {
    display:none; position:fixed; inset:0;
    background:rgba(0,0,0,0.5); z-index:998;
}
.nav-overlay.active { display:block; }

/* ==========================================
   BREADCRUMB
   ========================================== */
.breadcrumb-section {
    background: var(--white); padding:1rem 0;
    box-shadow:0 2px 8px rgba(0,0,0,0.04);
    border-bottom:1px solid #eee;
}
.breadcrumb {
    display:flex; align-items:center;
    gap:0.6rem; font-size:0.87rem; flex-wrap:wrap;
}
.breadcrumb a {
    color: var(--text-light); text-decoration:none;
    transition: var(--ease); display:flex; align-items:center; gap:0.4rem;
}
.breadcrumb a:hover { color: var(--primary); }
.breadcrumb .separator { color:#ccc; font-size:0.7rem; }
.breadcrumb .current   { color: var(--primary); font-weight:600; }

/* ==========================================
   PAGE HEADER BANNER
   ========================================== */
.page-header {
    background:linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);
    padding:3.5rem 0; color: var(--white); position:relative; overflow:hidden;
}
.page-header::before {
    content:''; position:absolute; inset:0;
    background:url('data:image/svg+xml,<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg"><defs><pattern id="g" width="40" height="40" patternUnits="userSpaceOnUse"><path d="M40 0L0 0 0 40" fill="none" stroke="rgba(255,255,255,0.05)" stroke-width="1"/></pattern></defs><rect width="100" height="100" fill="url(%23g)"/></svg>');
    opacity:.4;
}
.page-header-content { position:relative; z-index:1; text-align:center; }
.page-title { font-size:clamp(1.8rem,4vw,2.8rem); font-weight:800; margin-bottom:0.8rem; }
.page-subtitle { font-size:1rem; color: var(--gold); max-width:680px; margin:0 auto; line-height:1.8; }

/* ==========================================
   FILTER SECTION
   ========================================== */
.filter-section {
    background: var(--white); padding:1.5rem 0; margin-bottom:2.5rem;
    box-shadow:0 2px 15px rgba(0,0,0,0.07);
    position:sticky; top: var(--fixed-top); z-index:100;
}
.filter-bar {
    display:flex; justify-content:space-between;
    align-items:center; gap:1rem; flex-wrap:wrap;
}
.filter-group { display:flex; gap:0.6rem; flex-wrap:wrap; }
.filter-btn {
    display:flex; align-items:center; gap:0.45rem;
    padding:0.6rem 1.1rem; background: var(--bg-light);
    border:2px solid transparent; border-radius:50px;
    color: var(--text-dark); font-weight:600; font-size:0.83rem;
    cursor:pointer; transition: var(--ease); font-family:'Poppins',sans-serif;
}
.filter-btn:hover {
    background: var(--white); border-color: var(--gold);
    transform:translateY(-2px); box-shadow:0 4px 12px rgba(0,0,0,0.08);
}
.filter-btn.active { background: var(--primary); color: var(--white); border-color: var(--primary); }
.search-box {
    display:flex; align-items:center; gap:0.6rem;
    background: var(--bg-light); padding:0.6rem 1.1rem;
    border-radius:50px; border:2px solid transparent;
    transition: var(--ease); min-width:260px; flex:1; max-width:360px;
}
.search-box:focus-within {
    background: var(--white); border-color: var(--primary);
    box-shadow:0 4px 12px rgba(0,0,0,0.08);
}
.search-box i     { color: var(--text-light); font-size:0.9rem; flex-shrink:0; }
.search-box input {
    border:none; background:transparent; outline:none;
    font-family:'Poppins',sans-serif; font-size:0.86rem;
    color: var(--text-dark); width:100%;
}
.search-box input::placeholder { color: var(--text-light); }

/* ==========================================
   FACULTY GRID
   ========================================== */
.faculty-grid-section { padding:2.5rem 0 5rem; }
.faculty-cards-grid {
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(320px,1fr));
    gap:2rem;
}
.faculty-card {
    background: var(--white); border-radius:18px; overflow:hidden;
    box-shadow:0 8px 28px rgba(0,0,0,0.07);
    transition: var(--ease); border:2px solid transparent;
    display:flex; flex-direction:column;
    animation:fadeInUp 0.4s ease both;
}
.faculty-card:hover {
    transform:translateY(-8px);
    box-shadow:0 18px 48px rgba(0,0,0,0.13);
    border-color: var(--gold);
}
.faculty-card-header {
    background:linear-gradient(135deg, #f0f4ff 0%, #e4e9f5 100%);
    padding:1.8rem; display:flex; flex-direction:column;
    align-items:center; gap:0.8rem;
}

/* ─── AVATAR: image + fallback ─── */
.faculty-avatar {
    width:110px; height:110px;
    border-radius:50%;
    overflow:hidden;
    border:3px solid rgba(0,36,114,0.15);
    box-shadow:0 6px 20px rgba(0,36,114,0.18);
    transition: var(--ease);
    position:relative;
    display:flex; align-items:center; justify-content:center;
    background:linear-gradient(135deg, var(--primary), var(--gold));
    flex-shrink:0;
}
.faculty-avatar img {
    width:100%; height:100%;
    object-fit:cover;
    object-position:center top;
    display:block;
    border-radius:50%;
}
.faculty-avatar .avatar-fallback {
    width:100%; height:100%;
    display:none;
    align-items:center; justify-content:center;
    font-size:2.6rem; color: var(--white);
}

.faculty-card:hover .faculty-avatar {
    transform:scale(1.06);
    border-color: var(--gold);
    box-shadow:0 8px 26px rgba(212,165,116,0.4);
}

.faculty-badge {
    display:inline-block; padding:0.35rem 0.95rem;
    border-radius:50px; font-size:0.72rem;
    font-weight:700; text-transform:uppercase; letter-spacing:0.4px;
}
.hod-badge       { background:linear-gradient(135deg,#f093fb,#f5576c); color:#fff; }
.professor-badge { background:linear-gradient(135deg,#667eea,#764ba2); color:#fff; }
.assistant-badge { background:linear-gradient(135deg,#4facfe,#00c6fb); color:#fff; }

.faculty-card-body { padding:1.5rem; flex:1; }
.faculty-name { font-size:1.1rem; color: var(--primary); margin-bottom:0.3rem; font-weight:700; text-align:center; }
.faculty-qualification { text-align:center; color: var(--gold); font-weight:600; margin-bottom:1.1rem; font-size:0.88rem; }
.faculty-specialization,
.faculty-experience,
.faculty-contact {
    display:flex; align-items:flex-start; gap:0.6rem;
    margin-bottom:0.7rem; padding:0.6rem 0.8rem;
    background: var(--bg-light); border-radius:9px;
}
.faculty-specialization i,
.faculty-experience i,
.faculty-contact i { color: var(--gold); font-size:0.9rem; margin-top:2px; flex-shrink:0; }
.faculty-specialization span,
.faculty-experience span { color: var(--text-dark); font-size:0.83rem; line-height:1.5; }
.faculty-contact a {
    color: var(--primary); text-decoration:none;
    font-size:0.83rem; word-break:break-word; transition: var(--ease);
}
.faculty-contact a:hover { color: var(--gold); }

.faculty-card-footer { padding:1.1rem 1.5rem 1.5rem; }
.view-profile-btn {
    width:100%; padding:0.78rem 1.2rem;
    background: var(--primary); color: var(--white);
    border:none; border-radius:50px;
    font-size:0.88rem; font-weight:600; cursor:pointer; transition: var(--ease);
    display:flex; align-items:center; justify-content:center; gap:0.6rem;
    font-family:'Poppins',sans-serif;
}
.view-profile-btn:hover {
    background: var(--secondary); transform:translateY(-2px);
    box-shadow:0 6px 18px rgba(0,36,114,0.3);
}
.view-profile-btn i { transition: var(--ease); }
.view-profile-btn:hover i { transform:translateX(4px); }

.no-results { text-align:center; padding:5rem 2rem; }
.no-results i  { font-size:4rem; color: var(--text-light); margin-bottom:1.2rem; display:block; }
.no-results h3 { font-size:1.5rem; color: var(--text-dark); margin-bottom:0.5rem; }
.no-results p  { color: var(--text-light); }

/* ==========================================
   FOOTER
   ========================================== */
.footer { background: var(--secondary); color: var(--white); padding:3.5rem 0 1rem; margin-top:4rem; }
.footer-grid {
    display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
    gap:2.5rem; margin-bottom:2.5rem;
}
.footer-title  { color: var(--gold); font-size:1rem; margin-bottom:1.1rem; font-weight:600; }
.footer-contact, .footer-links { list-style:none; }
.footer-contact li { display:flex; gap:0.7rem; margin-bottom:0.8rem; color:#ccc; font-size:0.85rem; }
.footer-contact i  { color: var(--gold); width:15px; flex-shrink:0; margin-top:3px; }
.footer-links li   { margin-bottom:0.65rem; }
.footer-links a    { color:#ccc; text-decoration:none; transition: var(--ease); font-size:0.85rem; }
.footer-links a:hover { color: var(--gold); padding-left:0.4rem; }
.footer-bottom {
    border-top:1px solid rgba(255,255,255,0.1);
    padding-top:1.5rem; text-align:center; color:#999; font-size:0.82rem;
}
.footer-bottom p { margin-bottom:0.4rem; }
.footer-bottom a { color: var(--gold); text-decoration:none; }

.scroll-top {
    position:fixed; bottom:24px; right:24px;
    width:44px; height:44px; border-radius:50%;
    background: var(--primary); color: var(--white);
    border:none; font-size:1rem; cursor:pointer;
    opacity:0; visibility:hidden; transition: var(--ease);
    z-index:900; box-shadow:0 4px 16px rgba(0,0,0,0.25);
    display:flex; align-items:center; justify-content:center;
}
.scroll-top.show { opacity:1; visibility:visible; }
.scroll-top:hover { transform:translateY(-4px); }

/* ==========================================
   MODAL
   ========================================== */
.modal-backdrop {
    position:fixed; inset:0;
    background:rgba(2,12,86,0.72);
    backdrop-filter:blur(5px); z-index:2000;
    opacity:0; visibility:hidden; transition: var(--ease);
    overflow-y:auto; display:flex;
    align-items:flex-start; justify-content:center; padding:2rem 1rem;
}
.modal-backdrop.open { opacity:1; visibility:visible; }
.modal-box {
    background: var(--white); border-radius:20px; width:100%; max-width:820px;
    overflow:hidden; box-shadow:0 40px 100px rgba(2,12,86,0.35);
    transform:translateY(24px) scale(0.97); transition: var(--ease); margin:auto;
}
.modal-backdrop.open .modal-box { transform:none; }
.modal-hero {
    background:linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);
    padding:2.2rem; display:grid; grid-template-columns:auto 1fr;
    gap:1.8rem; align-items:center; position:relative;
}
.modal-hero::after {
    content:''; position:absolute; bottom:0; left:0; right:0; height:3px;
    background:linear-gradient(90deg,transparent, var(--gold),transparent);
}
.modal-close {
    position:absolute; top:0.9rem; right:0.9rem;
    width:32px; height:32px; border-radius:50%;
    background:rgba(255,255,255,0.12); border:1px solid rgba(255,255,255,0.22);
    color: var(--white); cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    font-size:0.82rem; transition: var(--ease);
}
.modal-close:hover { background: var(--gold); border-color: var(--gold); }

/* ─── MODAL AVATAR: image or icon ─── */
.modal-avatar {
    width:110px; height:110px;
    border-radius:50%;
    overflow:hidden;
    border:3px solid rgba(212,165,116,0.5);
    box-shadow:0 6px 24px rgba(0,0,0,0.3);
    flex-shrink:0;
    background:linear-gradient(135deg, var(--primary), var(--gold));
    display:flex; align-items:center; justify-content:center;
    position:relative;
}
.modal-avatar img {
    width:100%; height:100%;
    object-fit:cover;
    object-position:center top;
    display:block;
    border-radius:50%;
}
.modal-avatar i {
    font-size:2.8rem;
    color: var(--white);
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%; height:100%;
    position:absolute;
    top:0; left:0;
}

.modal-badge-row {
    display:flex; align-items:center; gap:0.45rem;
    font-size:0.63rem; font-weight:700; text-transform:uppercase;
    letter-spacing:2px; color: var(--gold); margin-bottom:0.35rem;
}
.modal-badge-dot { width:5px; height:5px; border-radius:50%; background: var(--gold); }
.modal-name  { font-size:clamp(1.1rem,2.2vw,1.6rem); font-weight:800; color: var(--white); line-height:1.2; margin-bottom:0.25rem; }
.modal-dept  { font-size:0.76rem; color:rgba(255,255,255,0.5); margin-bottom:0.8rem; }
.modal-contacts { display:flex; flex-wrap:wrap; gap:0.8rem; }
.modal-contact-item { display:flex; align-items:center; gap:0.4rem; font-size:0.77rem; color:rgba(255,255,255,0.68); }
.modal-contact-item i { color: var(--gold); font-size:0.7rem; width:13px; }
.modal-contact-item a { color:rgba(255,255,255,0.68); text-decoration:none; transition: var(--ease); }
.modal-contact-item a:hover { color: var(--gold); }

.modal-body { padding:1.8rem 2.2rem; }
.modal-section { margin-bottom:1.6rem; }
.modal-section:last-child { margin-bottom:0; }
.modal-section-title {
    font-size:0.62rem; letter-spacing:2.5px; text-transform:uppercase;
    color: var(--primary); font-weight:700; margin-bottom:0.8rem;
    display:flex; align-items:center; gap:0.6rem;
}
.modal-section-title::after { content:''; flex:1; height:1px; background:#dee2e6; }
.detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:0.8rem; }
.detail-card {
    background: var(--bg-light); border-radius:10px;
    padding:0.85rem 1rem; border:1px solid #dee2e6;
}
.detail-card label {
    font-size:0.59rem; text-transform:uppercase; letter-spacing:1.4px;
    color: var(--text-light); font-weight:700; display:block; margin-bottom:0.22rem;
}
.detail-card p { font-size:0.84rem; color: var(--text-dark); font-weight:600; }
.qual-list { display:flex; flex-direction:column; gap:0.5rem; }
.qual-item {
    display:flex; align-items:center; gap:0.8rem; padding:0.7rem 1rem;
    background: var(--bg-light); border-radius:9px; border:1px solid #dee2e6;
}
.qual-degree { font-size:0.66rem; font-weight:800; color: var(--primary); text-transform:uppercase; letter-spacing:0.4px; min-width:50px; flex-shrink:0; }
.qual-divider { width:1px; height:16px; background:#dee2e6; flex-shrink:0; }
.qual-field   { font-size:0.82rem; color: var(--text-dark); font-weight:500; }
.spec-tags { display:flex; flex-wrap:wrap; gap:0.5rem; }
.spec-tag {
    padding:0.35rem 0.85rem; background:rgba(0,36,114,0.05);
    border:1px solid rgba(0,36,114,0.15); border-radius:50px;
    font-size:0.73rem; color: var(--primary); font-weight:600;
    transition: var(--ease); cursor:default;
}
.spec-tag:hover { background: var(--primary); color: var(--white); }
.modal-footer {
    padding:1rem 2.2rem; border-top:1px solid #dee2e6;
    display:flex; justify-content:flex-end; gap:0.65rem;
    background: var(--bg-light);
}
.btn-modal-close {
    padding:0.6rem 1.4rem; border:2px solid #dee2e6; border-radius:50px;
    font-size:0.82rem; font-weight:600; cursor:pointer;
    background:transparent; color: var(--text-light);
    transition: var(--ease); font-family:'Poppins',sans-serif;
}
.btn-modal-close:hover { border-color: var(--primary); color: var(--primary); }
.btn-modal-email {
    padding:0.6rem 1.6rem; background: var(--primary); border:2px solid var(--primary);
    border-radius:50px; font-size:0.82rem; font-weight:700; cursor:pointer;
    color: var(--white); transition: var(--ease); font-family:'Poppins',sans-serif;
    display:flex; align-items:center; gap:0.45rem;
}
.btn-modal-email:hover { background: var(--secondary); border-color: var(--secondary); }

/* ==========================================
   ANIMATIONS
   ========================================== */
@keyframes fadeInUp {
    from { opacity:0; transform:translateY(20px); }
    to   { opacity:1; transform:translateY(0); }
}

/* ==========================================
   RESPONSIVE ≤1024px
   ========================================== */
@media(max-width:1024px){
    .header-text h1 { font-size:clamp(0.9rem,1.5vw,1.3rem); }
    .faculty-cards-grid { grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); }
}

/* ==========================================
   RESPONSIVE ≤768px
   ========================================== */
@media(max-width:768px){
    :root {
        --topbar-h:  0px;
        --header-h:  80px;
        --nav-h:     50px;
    }
    .top-bar { display:none; }
    .header-logo img,
    .header-logo-fallback { height:56px; width:56px; font-size:1.2rem; border-radius:9px; }
    .header-divider { height:40px; }
    .header-badges  { display:none; }
    .header-info    { display:none; }
    .header-text h1 { font-size:clamp(0.82rem,3.5vw,1.1rem); white-space:normal; }
    .header-subtitle{ font-size:0.76rem; }

    .hamburger { display:flex; }
    .nav-links {
        position:fixed; top:0; right:-100%;
        width:min(72vw,280px); height:100vh;
        background: var(--primary); flex-direction:column;
        padding:4.5rem 0 2rem;
        box-shadow: var(--shadow-lg);
        transition: right 0.32s cubic-bezier(0.4,0,0.2,1);
        overflow-y:auto; z-index:999; gap:0;
    }
    .nav-links.active { right:0; }
    .nav-item { height:auto; }
    .nav-item a {
        height:auto; padding:0.9rem 1.5rem;
        border-right:none; border-bottom:1px solid rgba(255,255,255,0.08);
        font-size:0.92rem;
    }
    .nav-item:first-child a { border-left:none; }

    .filter-section { position:relative; top:auto; }
    .filter-bar     { flex-direction:column; align-items:stretch; }
    .search-box     { min-width:100%; max-width:100%; }
    .filter-group   { width:100%; }
    .filter-btn     { flex:1; justify-content:center; font-size:0.78rem; padding:0.55rem 0.7rem; }

    .faculty-cards-grid { grid-template-columns:1fr; gap:1.4rem; }
    .faculty-avatar     { width:90px; height:90px; }
    .page-title    { font-size:1.8rem; }
    .page-subtitle { font-size:0.9rem; }

    .modal-hero  { 
        grid-template-columns:1fr; 
        text-align:center;
         padding:1.8rem 1.4rem; 
         gap:0.9rem;
     }
    .modal-avatar{ margin:0 auto; width:90px; height:90px; }
    .modal-contacts { justify-content:center; }
    .modal-badge-row{ justify-content:center; }
    .modal-body  { padding:1.3rem; }
    .modal-footer{ padding:0.9rem 1.3rem; }
    .detail-grid { grid-template-columns:1fr; }
}

/* ==========================================
   RESPONSIVE ≤480px
   ========================================== */
@media(max-width:480px){
    .container { padding:0 0.9rem; }
    .header-content { gap:0.7rem; }
    .header-text h1 { font-size:0.8rem; }
    .header-subtitle{ font-size:0.7rem; }
    .page-title { font-size:1.5rem; }
    .faculty-card-body { padding:1.2rem; }
    .faculty-name { font-size:1rem; }
    .filter-btn { font-size:0.73rem; padding:0.5rem 0.6rem; }
}