/* ==========================================================================
   1. GLOBAL & ROOT SETTINGS
   ========================================================================== */
:root { 
    --primary-color: #003366; 
    --secondary-color: #0056b3; 
    --text-dark: #2b2b2b; 
    --infra-primary: #06BBCC;
    --overlay: rgba(6, 187, 204, 0.8);
}

body {
    padding-top: 85px !important; /* Slider ko menu ke peeche chhupne se rokta hai */
    background-color: #f8f9fa;
}

.text-justify { text-align: justify; line-height: 1.7; }

/* ==========================================================================
   2. NAVBAR & HEADER SECTIONS (Live Site Replica)
   ========================================================================== */
.navbar {
    z-index: 1050 !important;
    background: #ffffff !important;
    box-shadow: 0 2px 15px rgba(0, 0, 0, 0.08) !important;
    padding: 0 !important;
}

.brand-logo {
    height: 55px;
    width: auto;
    object-fit: contain;
}

.brand-text {
    font-size: 1.1rem;
    font-weight: 700;
    line-height: 1.3;
    margin: 0;
    color: #06BBCC !important; 
    text-transform: uppercase;
}

.navbar-light .navbar-nav .nav-link {
    color: #444444 !important;
    font-weight: 600 !important;
    font-size: 0.85rem !important;
    text-transform: uppercase !important; 
    padding: 35px 15px !important; 
    letter-spacing: 0.5px;
    transition: all 0.2s ease;
}

.navbar-light .navbar-nav .nav-link:hover,
.navbar-light .navbar-nav .nav-link.active,
.navbar-light .navbar-nav .nav-item.show .nav-link {
    color: #06BBCC !important; 
}

.navbar-light .navbar-nav .dropdown-toggle::after {
    display: inline-block;
    margin-left: 0.255em;
    vertical-align: 0.255em;
    content: "";
    border-top: 0.3em solid;
    border-right: 0.3em solid transparent;
    border-bottom: 0;
    border-left: 0.3em solid transparent;
}

.dropdown-menu {
    border: none !important;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1) !important;
    border-radius: 0 0 4px 4px !important;
    margin-top: 0 !important;
}

.dropdown-item {
    font-weight: 600;
    font-size: 0.85rem !important;
    color: #444444 !important;
    text-transform: uppercase; 
    padding: 10px 20px !important;
    transition: all 0.2s ease;
}

.dropdown-item:hover {
    background-color: #06BBCC !important;
    color: #ffffff !important;
}

@media (min-width: 992px) {
    .custom-dropdown:hover .dropdown-menu {
        display: block !important;
        visibility: visible;
        opacity: 1;
    }
}

@media (max-width: 991.98px) {
    body { padding-top: 75px !important; }
    .brand-logo { height: 45px; }
    .brand-text { font-size: 0.85rem; }
    .navbar-light .navbar-nav .nav-link { padding: 12px 20px !important; border-bottom: 1px solid #f5f5f5; }
    .dropdown-menu { background-color: #f9f9f9 !important; box-shadow: none !important; padding-left: 15px !important; }
}

/* ==========================================================================
   3. INDEX & HOME PAGE COMPONENTS
   ========================================================================== */
.notice-container { display: flex; background: #f8f9fa; border: 1px solid #dee2e6; margin: 15px; border-radius: 30px; overflow: hidden; box-shadow: 0 4px 15px rgba(0,0,0,0.05); }
.notice-label { background: linear-gradient(45deg, var(--primary-color), var(--secondary-color)); color: white; padding: 10px 18px; font-weight: 700; display: flex; align-items: center; gap: 6px; border-radius: 30px 0 0 30px; z-index: 5; white-space: nowrap; font-size: 0.85rem; }
.marquee-wrapper { overflow: hidden; display: flex; align-items: center; width: 100%; background: white; position: relative; }
.marquee-track { display: flex; white-space: nowrap; padding-left: 10px; will-change: transform; animation: mobile-scroll 25s linear infinite; }
.marquee-track:hover { animation-play-state: paused; }
.notice-text { font-size: 0.95rem; color: var(--text-dark); font-weight: 500; padding-right: 40px; display: inline-flex; align-items: center; gap: 8px; }
@keyframes mobile-scroll { 0% { transform: translate3d(10%, 0, 0); } 100% { transform: translate3d(-100%, 0, 0); } }

@media (min-width: 768px) {
    .notice-container { margin: 15px 20px; border-radius: 50px; }
    .notice-label { padding: 10px 25px; font-size: 1rem; border-radius: 50px 0 0 50px; }
    .notice-text { font-size: 1rem; padding-right: 60px; }
    @keyframes mobile-scroll { 0% { transform: translate3d(30%, 0, 0); } 100% { transform: translate3d(-100%, 0, 0); } }
}

.about-img { object-fit: cover; border-radius: 12px; box-shadow: 0 8px 24px rgba(0,0,0,0.08); max-height: 450px; }
.slider-popup-img { object-fit: cover; height: 360px; cursor: zoom-in; }

/* ==========================================================================
   4. ACADEMIC CALENDAR SECTIONS
   ========================================================================== */
.calendar-card {
    border: none;
    border-radius: 15px;
    overflow: hidden;
    transition: all 0.3s ease;
    background: #fff;
    box-shadow: 0 5px 15px rgba(0,0,0,0.08);
    height: 100%;
}
.calendar-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 15px 30px rgba(0,0,0,0.15);
}
.calendar-img-container {
    position: relative;
    overflow: hidden;
    background: #f8f9fa;
    padding: 20px;
    text-align: center;
}
.calendar-img {
    width: 100%;
    max-width: 200px;
    height: 250px;
    object-fit: contain;
    transition: 0.3s;
    border: 1px solid #eee;
}
.calendar-card:hover .calendar-img { transform: scale(1.05); }
.calendar-body { padding: 20px; text-align: center; border-top: 1px solid #f1f1f1; }
.btn-download { border-radius: 50px; padding: 8px 25px; font-weight: 600; transition: 0.3s; }

/* ==========================================================================
   5. INFRASTRUCTURE GALLERY ENGINE (Strict 3-Column Layout)
   ========================================================================== */
.card-container {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important; /* Fixed 3 Columns layout force */
    gap: 30px 25px !important; 
    width: 100% !important;
    padding: 20px 0 !important;
    box-sizing: border-box !important;
}

.infra-card {
    position: relative !important;
    width: 100% !important; 
    height: 250px !important; 
    border-radius: 12px !important; 
    overflow: hidden !important;
    box-shadow: 0 4px 15px rgba(0,0,0,0.08) !important;
    cursor: pointer !important;
    border: none !important;
    transition: transform 0.3s ease !important;
}

.infra-card img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
}

.infra-card:hover img {
    transform: scale(1.04) !important; 
}

.infra-card .overlay {
    position: absolute !important;
    top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(6, 187, 204, 0.15) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    opacity: 0 !important;
    transition: 0.3s ease !important;
}

.infra-card:hover .overlay { 
    opacity: 1 !important; 
}

.infra-card .overlay i {
    color: #ffffff !important;
    font-size: 1.8rem !important;
}

/* Pagination Main Control Buttons Control Box */
.pagination-wrapper {
    display: flex !important; 
    justify-content: center !important;
    width: 100% !important;
    margin-top: 40px !important;
    margin-bottom: 20px !important;
    clear: both !important; 
}

.pg-btn {
    border: none !important;
    background: #e9ecef !important;
    color: #333 !important;
    padding: 10px 20px !important;
    margin: 0 6px !important;
    border-radius: 50px !important; 
    font-weight: 600 !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
}

.pg-btn.active {
    background: #06BBCC !important; 
    color: white !important;
    box-shadow: 0 4px 10px rgba(6, 187, 204, 0.3) !important;
}

.pg-btn:hover:not(.active) {
    background: #003366 !important; 
    color: white !important;
}

/* Infrastructure Dynamic Responsiveness Viewports */
@media (max-width: 991.98px) {
    .card-container {
        grid-template-columns: repeat(2, 1fr) !important; 
        gap: 20px !important;
    }
    .infra-card { height: 210px !important; }
}

@media (max-width: 575.98px) {
    .card-container {
        grid-template-columns: 1fr !important; 
        gap: 15px !important;
    }
    .infra-card { height: 190px !important; }
}

/* ==========================================================================
   6. FOOTER ENGINE (Clean Vertical Links Stack & Arrows)
   ========================================================================== */
.footer {
    background-color: #1A4D80 !important; 
    color: #ffffff !important;
}

.footer h4 {
    font-size: 1.5rem;
    font-weight: 700;
    color: #ffffff !important;
    margin-bottom: 25px !important;
}

.footer .footer-links-container {
    display: block !important; 
    text-align: left !important;
}

.footer .custom-footer-link {
    display: block !important; 
    color: rgba(255, 255, 255, 0.9) !important;
    font-size: 1rem !important;
    font-weight: 500 !important;
    text-decoration: none !important;
    padding: 6px 0 !important; 
    transition: all 0.3s ease;
}

.footer .custom-footer-link::before {
    content: "\f105" !important; 
    font-family: "Font Awesome 5 Free" !important;
    font-weight: 900 !important;
    margin-right: 10px !important;
    color: rgba(255, 255, 255, 0.7);
}

.footer .custom-footer-link:hover {
    color: #06BBCC !important; 
    padding-left: 6px !important;
}

.footer p { color: rgba(255, 255, 255, 0.9) !important; font-size: 0.95rem; }
.footer p i { color: #ffffff !important; width: 20px; }

.footer .btn-social {
    width: 38px; height: 38px;
    border: 1px solid rgba(255,255,255,0.6) !important;
    color: #ffffff !important;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 4px; margin-right: 8px; transition: all 0.3s ease;
}
.footer .btn-social:hover { background: #ffffff !important; color: #1A4D80 !important; }

/* ==========================================================================
   7. CONTACT US & MISC OTHERS
   ========================================================================== */
.icon-box { width: 50px; height: 50px; border-radius: 8px; }
.text-break-all { word-break: break-all !important; }
@media (min-width: 768px) { .map-wrapper { height: 100% !important; min-height: 400px; } }
.pagination .page-link { color: #007bff; border-radius: 5px; margin: 0 2px; }
.pagination .page-item.active .page-link { background-color: #007bff; border-color: #007bff; color: white; }

/* ==========================================================================
   8. IMAGE ZOOM POPUP SYSTEM (100% Solid Backdrop - Exact Match Screenshot)
   ========================================================================== */
#imgModal {
    display: none; 
    position: fixed !important;
    z-index: 999999 !important; 
    left: 0 !important;
    top: 0 !important;
    width: 100vw !important; 
    height: 100vh !important; 
    background-color: #0c0c0c !important; /* Pure Solid Dark Charcoal Backdrop */
    background: #0c0c0c !important; 
    padding: 30px !important;
    box-sizing: border-box !important;
    align-items: center !important;
    justify-content: center !important;
}

.modal-content {
    max-width: 85% !important;
    max-height: 80% !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important; 
    border: 5px solid #ffffff !important; /* Pure White Frame Boundary Border */
    border-radius: 6px !important; 
    box-shadow: 0 15px 50px rgba(0, 0, 0, 0.9) !important;
    margin: auto !important;
    display: block !important;
    z-index: 1000000 !important;
}

.close-mark {
    position: absolute !important;
    top: 30px !important;
    right: 40px !important;
    color: #ffffff !important; 
    font-size: 42px !important; 
    font-family: Arial, sans-serif !important;
    font-weight: 300 !important;
    cursor: pointer !important;
    line-height: 1 !important;
    z-index: 1000005 !important;
    user-select: none;
    transition: transform 0.2s ease !important;
}

.close-mark:hover {
    color: #06BBCC !important; 
    transform: scale(1.1);
}

@media (max-width: 767.98px) {
    #imgModal { padding: 15px !important; }
    .close-mark { top: 20px !important; right: 25px !important; font-size: 36px !important; }
    .modal-content { max-width: 95% !important; max-height: 75% !important; border: 4px solid #ffffff !important; }
}
/* ==========================================================================
   8. IMAGE ZOOM POPUP SYSTEM (Width Stretched Version)
   ========================================================================== */
#imgModal {
    display: none; 
    position: fixed !important;
    z-index: 999999 !important; 
    left: 0 !important;
    top: 0 !important;
    width: 100vw !important; 
    height: 100vh !important; 
    background-color: #0c0c0c !important; 
    background: #0c0c0c !important; 
    padding: 20px !important; /* Side padding kam ki taaki width aur zyada mile */
    box-sizing: border-box !important;
    align-items: center !important;
    justify-content: center !important;
}

/* Is class me image ki width ko stretch kiya gaya hai */
.popup-image-actual {
    width: 1284px !important;  /* chauwdaai exact locked */
    height: 660px !important;  /* oonchai exact locked */
    object-fit: fill !important; /* Isse image bina dabe poore 1284x844 size ko fill karegi */
    border: 5px solid #ffffff !important; 
    border-radius: 6px !important; 
    box-shadow: 0 15px 50px rgba(0, 0, 0, 0.9) !important;
    margin: auto !important;
    display: block !important;
}

.close-mark {
    position: absolute !important;
    top: 25px !important;
    right: 35px !important;
    color: #ffffff !important; 
    font-size: 45px !important; 
    font-family: Arial, sans-serif !important;
    font-weight: 300 !important;
    cursor: pointer !important;
    line-height: 1 !important;
    z-index: 1000005 !important;
    user-select: none;
    text-shadow: 0 2px 10px rgba(0,0,0,0.5); /* Cross icon ko solid black background par aur ubhaarne ke liye */
}

@media (max-width: 767.98px) {
    #imgModal { padding: 10px !important; }
    .close-mark { top: 15px !important; right: 20px !important; font-size: 38px !important; }
    .popup-image-actual { max-width: 100% !important; max-height: 80% !important; border: 4px solid #ffffff !important; }
}
/* ==========================================================================
   About Us Section Title - 100% EXACT SCREENSHOT SYMMETRY ENGINE
   ========================================================================== */
.section-title {
    position: relative !important;
    display: inline-block !important;
    padding: 0 15px !important;
    color: #06BBCC !important; /* Premium Cyan Blue text color */
    font-weight: 700 !important;
}

/* ─── LEFT SIDE DOUBLE LINES (Top Short Inner / Bottom Long Outer) ─── */
.section-title::before {
    content: "" !important;
    position: absolute !important;
    top: 50% !important;
    left: -55px !important; /* Text ke paas baseline boundary shift */
    width: 45px !important; /* Lambi line ki total length */
    height: 8px !important; /* Perfect vertical gap matching your image */
    
    /* Top line choti (30px) aur right-aligned (text se lagkar), bottom line lambi (45px) full scale */
    background: 
        linear-gradient(#06BBCC, #06BBCC) no-repeat top right / 30px 2px,
        linear-gradient(#06BBCC, #06BBCC) no-repeat bottom right / 45px 2px;
        
    transform: translateY(-50%) !important;
    display: block !important;
}

/* ─── RIGHT SIDE DOUBLE LINES (Top Short Inner / Bottom Long Outer) ─── */
.section-title::after {
    content: "" !important;
    position: absolute !important;
    top: 50% !important;
    right: -55px !important; /* Text ke paas baseline boundary shift */
    width: 45px !important; /* Lambi line ki total length */
    height: 8px !important; /* Perfect vertical gap matching your image */
    
    /* Top line choti (30px) aur left-aligned (text se lagkar), bottom line lambi (45px) full scale */
    background: 
        linear-gradient(#06BBCC, #06BBCC) no-repeat top left / 30px 2px,
        linear-gradient(#06BBCC, #06BBCC) no-repeat bottom left / 45px 2px;
        
    transform: translateY(-50%) !important;
    display: block !important;
}