:root {

    --primary: #0d6efd;
    --primary-dark: #0a58ca;

    --dark: #172033;

    --light-bg: #f6f8fc;

    --border: #e7eaf0;

    --text: #212529;

    --muted: #6c757d;

    --radius: 14px;

}

html {
    scroll-behavior: smooth;
}

body {

    margin: 0;

    font-family:
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;

    color: var(--text);

    background: #ffffff;

    line-height: 1.6;

}

/* ---------------------------------------------------------
   SKIP LINK
--------------------------------------------------------- */

.skip-link {

    position: fixed;

    top: 10px;

    left: 10px;

    z-index: 9999;

}

/* ---------------------------------------------------------
   NAVBAR
--------------------------------------------------------- */

.navbar {

    min-height: 72px;

}

.navbar-brand {

    color: var(--dark) !important;

    font-size: 18px;

}

.site-brand-logo {

    width: 44px;

    height: 44px;

    object-fit: contain;

}

.navbar .nav-link {

    color: #495057;

    font-weight: 500;

    padding:
        10px 12px !important;

    border-radius: 8px;

    transition:
        background .2s ease,
        color .2s ease;

}

.navbar .nav-link:hover {

    color: var(--primary);

    background:
        rgba(13, 110, 253, .06);

}

.navbar .nav-link.active {

    color: var(--primary);

    background:
        rgba(13, 110, 253, .08);

}

/* ---------------------------------------------------------
   PAGE
--------------------------------------------------------- */

.page-header {

    padding:
        70px 0;

    background:
        linear-gradient(
            135deg,
            #0d6efd,
            #084298
        );

    color: #ffffff;

}

.page-header h1 {

    font-weight: 800;

    margin-bottom: 10px;

}

.section-padding {

    padding:
        70px 0;

}

.section-light {

    background:
        var(--light-bg);

}

/* ---------------------------------------------------------
   CARDS
--------------------------------------------------------- */

.card {

    border-radius:
        var(--radius);

}

.card-hover {

    transition:
        transform .2s ease,
        box-shadow .2s ease;

}

.card-hover:hover {

    transform:
        translateY(-3px);

    box-shadow:
        0 15px 35px
        rgba(0, 0, 0, .08);

}

/* ---------------------------------------------------------
   FORMS
--------------------------------------------------------- */

.form-control,
.form-select {

    min-height: 46px;

    border-color:
        var(--border);

    border-radius: 9px;

}

.form-control:focus,
.form-select:focus {

    border-color:
        var(--primary);

    box-shadow:
        0 0 0 .2rem
        rgba(13, 110, 253, .12);

}

/* ---------------------------------------------------------
   TABLE
--------------------------------------------------------- */

.table {

    vertical-align: middle;

}

.table thead th {

    white-space: nowrap;

}

/* ---------------------------------------------------------
   FOOTER
--------------------------------------------------------- */

.footer {

    background:
        var(--dark);

    color:
        #ffffff;

    padding:
        55px 0 25px;

}

.footer h5,
.footer h6 {

    color: #ffffff;

}

.footer-links li {

    margin-bottom:
        9px;

}

.footer-links a {

    color:
        rgba(255,255,255,.75);

    text-decoration:
        none;

    transition:
        color .2s ease;

}

.footer-links a:hover {

    color:
        #ffffff;

}

.social-links {

    display:
        flex;

    gap:
        8px;

}

.social-links a {

    width:
        38px;

    height:
        38px;

    display:
        inline-flex;

    align-items:
        center;

    justify-content:
        center;

    border:
        1px solid
        rgba(255,255,255,.2);

    border-radius:
        50%;

    color:
        #ffffff;

    text-decoration:
        none;

    transition:
        background .2s ease;

}

.social-links a:hover {

    background:
        rgba(255,255,255,.12);

}

/* ---------------------------------------------------------
   SCROLL TOP
--------------------------------------------------------- */

.scroll-top-btn {

    position:
        fixed;

    right:
        20px;

    bottom:
        20px;

    width:
        45px;

    height:
        45px;

    border:
        0;

    border-radius:
        50%;

    background:
        var(--primary);

    color:
        #ffffff;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    opacity:
        0;

    visibility:
        hidden;

    transform:
        translateY(10px);

    transition:
        .2s ease;

    z-index:
        1050;

}

.scroll-top-btn.show {

    opacity:
        1;

    visibility:
        visible;

    transform:
        translateY(0);

}

/* ---------------------------------------------------------
   BUTTONS
--------------------------------------------------------- */

.btn {

    border-radius:
        9px;

    font-weight:
        600;

}

/* ---------------------------------------------------------
   ALERTS
--------------------------------------------------------- */

.alert {

    border-radius:
        10px;

}

/* ---------------------------------------------------------
   MOBILE
--------------------------------------------------------- */

@media (max-width: 767.98px) {

    .section-padding {

        padding:
            45px 0;

    }

    .page-header {

        padding:
            50px 0;

    }

    .navbar-brand span {

        max-width:
            220px;

        overflow:
            hidden;

        text-overflow:
            ellipsis;

        white-space:
            nowrap;

    }

}
:root {
    --primary: #0d6efd;
    --dark: #172033;
    --light-bg: #f6f8fc;
}

body {
    font-family:
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;

    color: #212529;

    background: #fff;
}


/* =========================================================
   TOP BAR
========================================================= */

.top-bar {

    background: #172033;

    color: #fff;

    font-size: 14px;

    padding: 8px 0;
}

.top-bar a {

    color: #fff;

    text-decoration: none;

    opacity: .85;

    transition: .2s;
}

.top-bar a:hover {

    opacity: 1;
}


/* =========================================================
   NAVBAR
========================================================= */

.navbar {

    min-height: 72px;
}

.navbar-brand {

    color: #172033 !important;

    font-size: 18px;
}

.navbar .nav-link {

    color: #495057;

    font-weight: 500;

    padding-left: 12px !important;

    padding-right: 12px !important;

    transition: .2s;
}

.navbar .nav-link:hover,
.navbar .nav-link.active {

    color: var(--primary);
}

.dropdown-menu {

    border: 0;

    box-shadow:
        0 10px 30px
        rgba(0, 0, 0, .10);

    border-radius: 12px;

    padding: 8px;
}

.dropdown-item {

    border-radius: 8px;

    padding: 10px 12px;
}

.dropdown-item:hover {

    background: #f0f6ff;

    color: var(--primary);
}


/* =========================================================
   HERO
========================================================= */

.hero-section {

    padding:
        90px 0;

    background:
        linear-gradient(
            135deg,
            #f4f8ff 0%,
            #ffffff 55%,
            #eef5ff 100%
        );
}


/* =========================================================
   CARDS
========================================================= */

.card {

    border-radius: 16px;

    transition:
        transform .2s ease,
        box-shadow .2s ease;
}

.card:hover {

    transform:
        translateY(-3px);

    box-shadow:
        0 12px 30px
        rgba(0, 0, 0, .08) !important;
}


/* =========================================================
   FOOTER
========================================================= */

.footer {

    background: #172033;

    color: #dfe5ef;

    padding:
        60px 0 20px;
}

.footer h5 {

    color: #fff;

    font-weight: 700;

    margin-bottom: 20px;
}

.footer p {

    color: #bfc8d8;

    line-height: 1.7;
}

.footer ul {

    list-style: none;

    padding: 0;

    margin: 0;
}

.footer li {

    margin-bottom: 10px;
}

.footer a {

    color: #bfc8d8;

    text-decoration: none;

    transition: .2s;
}

.footer a:hover {

    color: #fff;
}

.social-links {

    display: flex;

    gap: 10px;

    margin-top: 20px;
}

.social-links a {

    width: 38px;

    height: 38px;

    border:
        1px solid
        rgba(255,255,255,.15);

    border-radius: 50%;

    display: flex;

    align-items: center;

    justify-content: center;
}

.social-links a:hover {

    background: var(--primary);

    border-color: var(--primary);

    color: #fff;
}

.footer-bottom {

    border-top:
        1px solid
        rgba(255,255,255,.10);

    margin-top: 40px;

    padding-top: 20px;

    text-align: center;
}


/* =========================================================
   SCROLL TOP
========================================================= */

#scrollTopBtn {

    position: fixed;

    right: 20px;

    bottom: 20px;

    width: 45px;

    height: 45px;

    border: 0;

    border-radius: 50%;

    background: var(--primary);

    color: #fff;

    display: none;

    align-items: center;

    justify-content: center;

    box-shadow:
        0 5px 20px
        rgba(0,0,0,.20);

    z-index: 999;
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 991px) {

    .navbar .btn {

        margin-top: 8px;
    }

    .hero-section {

        padding:
            60px 0;
    }

}

@media (max-width: 576px) {

    .top-bar {

        text-align: center;

        font-size: 12px;
    }

    .hero-section h1 {

        font-size: 2.2rem;
    }

}
/* =========================================================
   NEWS DETAIL
   ========================================================= */

.news-detail-image {
    width: 100%;
    max-height: 500px;
    object-fit: cover;
}

.news-content {
    font-size: 1.05rem;
    line-height: 1.9;
    color: var(--text);
}

/* =========================================================
   CONTACT PAGE
   ========================================================= */

.contact-info-item {
    display: flex;
    gap: 16px;
    margin-bottom: 25px;
}

.contact-info-icon {
    flex: 0 0 50px;

    width: 50px;
    height: 50px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 12px;

    background: #eef5ff;

    color: #0d6efd;

    font-size: 20px;
}

.contact-info-item h5 {
    margin-bottom: 5px;
}

.contact-form-card {
    padding: 35px;

    background: #ffffff;

    border-radius: 16px;

    box-shadow:
        0 8px 30px rgba(0, 0, 0, 0.07);

    border: 1px solid #eeeeee;
}

.contact-form-card .form-control {
    padding: 12px 14px;

    border-radius: 8px;
}

.contact-form-card .form-control:focus {
    border-color: #0d6efd;

    box-shadow:
        0 0 0 0.2rem rgba(
            13,
            110,
            253,
            0.12
        );
}

.contact-social-links {
    display: flex;
    gap: 10px;
}

.contact-social-links a {
    width: 42px;
    height: 42px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: #eef5ff;

    color: #0d6efd;

    text-decoration: none;

    transition:
        transform 0.2s ease,
        background 0.2s ease,
        color 0.2s ease;
}

.contact-social-links a:hover {
    transform: translateY(-3px);

    background: #0d6efd;

    color: #ffffff;
}

.map-container {
    overflow: hidden;

    border-radius: 16px;

    box-shadow:
        0 8px 30px rgba(0, 0, 0, 0.08);

    background: #eeeeee;
}

.map-container iframe {
    display: block;

    width: 100%;

    min-height: 450px;
}

@media (max-width: 767px) {

    .contact-form-card {
        padding: 25px 20px;
    }

    .map-container iframe {
        min-height: 350px;
    }

}
/* =========================================================
   NOTICES
   ========================================================= */

.notice-item {
    display: flex;
    gap: 20px;

    padding: 25px;

    margin-bottom: 20px;

    background: #fff;

    border-radius: 14px;

    border-left: 5px solid var(--primary);

    box-shadow:
        0 5px 20px rgba(0, 0, 0, 0.06);

    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease;
}

.notice-item:hover {
    transform: translateY(-3px);

    box-shadow:
        0 10px 28px rgba(0, 0, 0, 0.09);
}

.notice-icon {
    min-width: 55px;
    height: 55px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: #eef5ff;

    color: var(--primary);

    font-size: 23px;
}

.notice-content {
    flex: 1;
}

.notice-content h4 {
    margin-bottom: 8px;
}

.notice-content p {
    color: #6c757d;
    margin-bottom: 8px;
}

.notice-date {
    font-size: 13px;
    color: #6c757d;
}

.notice-expiry {
    font-size: 13px;
    color: #6c757d;
}

/* Priority */

.notice-high {
    border-color: #dc3545 !important;
}

.notice-high .notice-icon {
    background: #fff0f1;
    color: #dc3545;
}

.notice-medium {
    border-color: #0d6efd !important;
}

.notice-medium .notice-icon {
    background: #eef5ff;
    color: #0d6efd;
}

.notice-low {
    border-color: #198754 !important;
}

.notice-low .notice-icon {
    background: #effaf4;
    color: #198754;
}

/* Mobile */

@media (max-width: 576px) {

    .notice-item {
        gap: 12px;
        padding: 18px;
    }

    .notice-icon {
        min-width: 45px;
        width: 45px;
        height: 45px;
        font-size: 18px;
    }

}
/* =========================================================
   NOTICES
   ========================================================= */

.notice-item {
    display: flex;
    gap: 20px;

    padding: 25px;
    margin-bottom: 20px;

    background: #fff;

    border-radius: 14px;

    border-left: 5px solid #0d6efd;

    box-shadow:
        0 5px 20px rgba(0, 0, 0, 0.06);

    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease;
}

.notice-item:hover {
    transform: translateY(-3px);

    box-shadow:
        0 10px 28px rgba(0, 0, 0, 0.09);
}

.notice-icon {
    min-width: 55px;
    height: 55px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: #eef5ff;

    color: #0d6efd;

    font-size: 23px;
}

.notice-content {
    flex: 1;
}

.notice-content h4 {
    margin-bottom: 8px;
}

.notice-content p {
    color: #6c757d;
    margin-bottom: 10px;
    line-height: 1.7;
}

.notice-date {
    font-size: 13px;
    color: #6c757d;
}

.notice-expiry {
    font-size: 13px;
    color: #6c757d;
}


/* URGENT */

.notice-urgent {
    border-color: #dc3545 !important;
}

.notice-urgent .notice-icon {
    background: #fff0f1;
    color: #dc3545;
}

.badge.notice-urgent {
    background: #dc3545;
    color: #fff;
}


/* IMPORTANT */

.notice-important {
    border-color: #fd7e14 !important;
}

.notice-important .notice-icon {
    background: #fff4e8;
    color: #fd7e14;
}

.badge.notice-important {
    background: #fd7e14;
    color: #fff;
}


/* NORMAL */

.notice-normal {
    border-color: #198754 !important;
}

.notice-normal .notice-icon {
    background: #effaf4;
    color: #198754;
}

.badge.notice-normal {
    background: #198754;
    color: #fff;
}


/* MOBILE */

@media (max-width: 576px) {

    .notice-item {
        gap: 12px;
        padding: 18px;
    }

    .notice-icon {
        min-width: 45px;
        width: 45px;
        height: 45px;
        font-size: 18px;
    }

}
/* =========================================================
   DEPARTMENTS
   ========================================================= */

.department-card {
    overflow: hidden;
    padding: 0;
    text-align: left;
}

.department-card .card-body {
    padding: 25px;
}

.department-image {
    width: 100%;
    height: 220px;
    object-fit: cover;
}

.department-card .department-icon {
    width: 80px;
    height: 80px;

    display: flex;
    align-items: center;
    justify-content: center;

    margin: 30px auto 5px;

    border-radius: 50%;

    background:
        rgba(11, 94, 215, 0.10);

    color:
        var(--primary);

    font-size: 32px;
}

.program-search-item {
    transition: all 0.25s ease;
}

.program-search-item.hidden {
    display: none !important;
}
/* =========================================================
   NEWS
   ========================================================= */

.news-card {
    overflow: hidden;
}

.news-card img {
    width: 100%;
    height: 220px;
    object-fit: cover;
}

.news-placeholder {
    width: 100%;
    height: 220px;

    display: flex;
    align-items: center;
    justify-content: center;

    background:
        linear-gradient(
            135deg,
            #eef5ff,
            #f5f8fc
        );

    color: var(--primary);

    font-size: 55px;
}

.news-card .card-title {
    font-size: 1.25rem;
}

.news-date {
    color: var(--primary);
    font-size: 13px;
    font-weight: 600;
}

.news-card:hover .news-placeholder {
    background:
        linear-gradient(
            135deg,
            #e4efff,
            #eef5f9
        );
}
/* =========================================================
   ADADALE POLYTECHNIC COLLEGE
   Main Website CSS
   assets/css/style.css
   ========================================================= */
.navbar-toggler-icon {
    background-image:
        url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833,37,41,0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}
:root {
    --primary: #0b5ed7;
    --primary-dark: #084298;
    --secondary: #198754;
    --accent: #f5b301;

    --dark: #172033;
    --dark-2: #263248;

    --light: #f6f8fb;
    --white: #ffffff;

    --text: #333333;
    --muted: #6c757d;

    --border: #e5e7eb;

    --shadow-sm:
        0 2px 8px rgba(0, 0, 0, 0.06);

    --shadow:
        0 8px 25px rgba(0, 0, 0, 0.08);

    --shadow-lg:
        0 15px 45px rgba(0, 0, 0, 0.12);

    --radius: 12px;

    --transition:
        all 0.3s ease;
}


/* =========================================================
   1. GENERAL
   ========================================================= */

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    padding: 0;

    font-family:
        "Segoe UI",
        Roboto,
        Arial,
        sans-serif;

    color: var(--text);

    background:
        var(--white);

    line-height: 1.7;

    overflow-x: hidden;
}

a {
    color: var(--primary);
    text-decoration: none;
    transition: var(--transition);
}

a:hover {
    color: var(--primary-dark);
}

img {
    max-width: 100%;
    height: auto;
}

button,
input,
textarea,
select {
    font-family: inherit;
}

.container {
    position: relative;
}


/* =========================================================
   2. TYPOGRAPHY
   ========================================================= */

h1,
h2,
h3,
h4,
h5,
h6 {
    color: var(--dark);

    font-weight: 700;

    line-height: 1.3;

    margin-bottom: 1rem;
}

p {
    margin-bottom: 1rem;
}

.text-muted {
    color: var(--muted) !important;
}

.section-title {
    position: relative;

    text-align: center;

    margin-bottom: 3rem;

    font-size: 2rem;
}

.section-title::after {
    content: "";

    display: block;

    width: 60px;

    height: 4px;

    margin:
        12px auto 0;

    background:
        var(--primary);

    border-radius: 20px;
}


/* =========================================================
   3. TOP BAR
   ========================================================= */

.top-bar {
    background: var(--dark);

    color: var(--white);

    font-size: 14px;

    padding: 7px 0;
}

.top-bar a {
    color: var(--white);
}

.top-bar a:hover {
    color: var(--accent);
}

.top-bar i {
    margin-right: 5px;
}


/* =========================================================
   4. NAVBAR
   ========================================================= */

.navbar {
    background: var(--white);

    box-shadow:
        0 2px 12px rgba(0, 0, 0, 0.08);

    position: relative;

    z-index: 1000;

    transition: var(--transition);
}

.navbar-brand {
    display: flex;

    align-items: center;

    gap: 10px;

    font-weight: 700;

    color: var(--dark);

    font-size: 1.05rem;
}

.navbar-brand:hover {
    color: var(--primary);
}

.navbar-brand img {
    width: 55px;

    height: 55px;

    object-fit: contain;
}

.navbar-nav {
    align-items: center;
}

.navbar-nav .nav-link {
    color: var(--dark);

    font-weight: 600;

    padding:
        1rem 0.75rem;

    position: relative;
}

.navbar-nav .nav-link:hover,
.navbar-nav .nav-link.active {
    color: var(--primary);
}

.navbar-nav .nav-link::after {
    content: "";

    position: absolute;

    left: 50%;

    bottom: 5px;

    width: 0;

    height: 2px;

    background: var(--primary);

    transform:
        translateX(-50%);

    transition: var(--transition);
}

.navbar-nav .nav-link:hover::after,
.navbar-nav .nav-link.active::after {
    width: 30px;
}

.navbar-toggler {
    border: none;

    box-shadow: none !important;
}


/* =========================================================
   5. HERO SECTION
   ========================================================= */

.hero {
    position: relative;

    min-height: 600px;

    display: flex;

    align-items: center;

    background:
        linear-gradient(
            135deg,
            #eef5ff 0%,
            #ffffff 55%,
            #f3faf7 100%
        );

    padding:
        80px 0;
}

.hero::before {
    content: "";

    position: absolute;

    width: 350px;

    height: 350px;

    border-radius: 50%;

    background:
        rgba(11, 94, 215, 0.06);

    top: -120px;

    right: -100px;
}

.hero-label {
    display: inline-block;

    color: var(--primary);

    font-weight: 700;

    font-size: 14px;

    letter-spacing: 1px;

    margin-bottom: 15px;
}

.hero h1 {
    font-size:
        clamp(
            2.3rem,
            5vw,
            4.2rem
        );

    margin-bottom: 20px;

    color: var(--dark);
}

.hero p {
    font-size: 1.15rem;

    color: var(--muted);

    max-width: 650px;

    margin-bottom: 30px;
}

.hero img {
    width: 100%;

    max-height: 450px;

    object-fit: cover;

    box-shadow: var(--shadow-lg);
}


/* =========================================================
   6. BUTTONS
   ========================================================= */

.btn {
    border-radius: 8px;

    font-weight: 600;

    padding:
        10px 20px;

    transition: var(--transition);
}

.btn-primary {
    background:
        var(--primary);

    border-color:
        var(--primary);
}

.btn-primary:hover {
    background:
        var(--primary-dark);

    border-color:
        var(--primary-dark);

    transform:
        translateY(-2px);

    box-shadow:
        0 6px 18px
        rgba(11, 94, 215, 0.25);
}

.btn-success {
    background:
        var(--secondary);

    border-color:
        var(--secondary);
}

.btn-outline-primary {
    color:
        var(--primary);

    border-color:
        var(--primary);
}

.btn-outline-primary:hover {
    background:
        var(--primary);

    border-color:
        var(--primary);
}


/* =========================================================
   7. STATISTICS
   ========================================================= */

.stats {
    background:
        var(--white);

    position: relative;

    z-index: 2;

    margin-top: -35px;
}

.stats .container {
    background:
        var(--white);

    border-radius:
        var(--radius);

    box-shadow:
        var(--shadow);

    padding:
        35px 25px;
}

.stats .counter {
    color:
        var(--primary);

    font-size:
        2.5rem;

    font-weight:
        800;

    margin-bottom:
        5px;
}

.stats p {
    color:
        var(--muted);

    margin: 0;

    font-weight:
        600;
}


/* =========================================================
   8. GENERAL SECTION
   ========================================================= */

section {
    position: relative;
}

.section-padding {
    padding:
        80px 0;
}

.section-light {
    background:
        var(--light);
}

.section-dark {
    background:
        var(--dark);

    color:
        var(--white);
}

.section-dark h1,
.section-dark h2,
.section-dark h3,
.section-dark h4 {
    color:
        var(--white);
}


/* =========================================================
   9. CARDS
   ========================================================= */

.card {
    border:
        1px solid var(--border);

    border-radius:
        var(--radius);

    box-shadow:
        var(--shadow-sm);

    transition:
        var(--transition);

    overflow:
        hidden;

    background:
        var(--white);
}

.card:hover {
    transform:
        translateY(-6px);

    box-shadow:
        var(--shadow);
}

.card-title {
    color:
        var(--dark);

    font-weight:
        700;
}

.card-text {
    color:
        var(--muted);
}


/* =========================================================
   10. WHY CHOOSE US
   ========================================================= */

.feature-card {
    height: 100%;

    padding: 30px;

    text-align: center;

    border-radius:
        var(--radius);

    background:
        var(--white);

    border:
        1px solid var(--border);

    transition:
        var(--transition);
}

.feature-card:hover {
    transform:
        translateY(-8px);

    box-shadow:
        var(--shadow);
}

.feature-icon {
    width: 70px;

    height: 70px;

    margin:
        0 auto 20px;

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius:
        50%;

    background:
        rgba(11, 94, 215, 0.1);

    color:
        var(--primary);

    font-size:
        28px;
}


/* =========================================================
   11. PAGE HEADER
   ========================================================= */

.page-header {
    padding:
        80px 0;

    background:
        linear-gradient(
            135deg,
            var(--dark),
            var(--primary-dark)
        );

    color:
        var(--white);

    text-align:
        center;
}

.page-header h1 {
    color:
        var(--white);

    font-size:
        2.8rem;

    margin-bottom:
        10px;
}

.page-header p {
    margin:
        0;

    opacity:
        0.85;
}


/* =========================================================
   12. BREADCRUMB
   ========================================================= */

.breadcrumb-section {
    background:
        var(--light);

    padding:
        12px 0;
}

.breadcrumb {
    margin:
        0;
}

.breadcrumb-item a {
    color:
        var(--primary);
}


/* =========================================================
   13. NEWS
   ========================================================= */

.news-card {
    height:
        100%;
}

.news-card img {
    width:
        100%;

    height:
        220px;

    object-fit:
        cover;
}

.news-card .card-body {
    padding:
        25px;
}

.news-date {
    color:
        var(--primary);

    font-size:
        13px;

    font-weight:
        600;

    margin-bottom:
        10px;
}


/* =========================================================
   14. NOTICE
   ========================================================= */

.notice-list {
    list-style:
        none;

    padding:
        0;

    margin:
        0;
}

.notice-item {
    padding:
        18px;

    margin-bottom:
        12px;

    border:
        1px solid var(--border);

    border-left:
        4px solid var(--primary);

    background:
        var(--white);

    border-radius:
        6px;

    transition:
        var(--transition);
}

.notice-item:hover {
    box-shadow:
        var(--shadow-sm);

    transform:
        translateX(4px);
}

.notice-item.urgent {
    border-left-color:
        #dc3545;
}

.notice-item.important {
    border-left-color:
        var(--accent);
}


/* =========================================================
   15. GALLERY
   ========================================================= */

.gallery-item {
    position:
        relative;

    overflow:
        hidden;

    border-radius:
        var(--radius);

    background:
        var(--dark);

    height:
        250px;
}

.gallery-item img {
    width:
        100%;

    height:
        100%;

    object-fit:
        cover;

    transition:
        transform 0.5s ease;
}

.gallery-item:hover img {
    transform:
        scale(1.08);
}

.gallery-overlay {
    position:
        absolute;

    left:
        0;

    right:
        0;

    bottom:
        0;

    padding:
        20px;

    color:
        var(--white);

    background:
        linear-gradient(
            transparent,
            rgba(0, 0, 0, 0.8)
        );

    opacity:
        0;

    transition:
        var(--transition);
}

.gallery-item:hover
.gallery-overlay {
    opacity:
        1;
}


/* =========================================================
   16. DEPARTMENT CARDS
   ========================================================= */

.department-card {
    height:
        100%;

    padding:
        30px;

    text-align:
        center;
}

.department-card .department-icon {
    width:
        75px;

    height:
        75px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    margin:
        0 auto 20px;

    border-radius:
        50%;

    background:
        rgba(25, 135, 84, 0.1);

    color:
        var(--secondary);

    font-size:
        30px;
}


/* =========================================================
   17. LEADERSHIP
   ========================================================= */

.leader-card {
    text-align:
        center;

    overflow:
        hidden;
}

.leader-card img {
    width:
        160px;

    height:
        160px;

    object-fit:
        cover;

    border-radius:
        50%;

    margin:
        25px auto 15px;

    border:
        5px solid #eef5ff;
}

.leader-card h5 {
    margin-bottom:
        5px;
}

.leader-card .position {
    color:
        var(--primary);

    font-size:
        14px;

    font-weight:
        600;
}


/* =========================================================
   18. FORMS
   ========================================================= */

.form-control,
.form-select {
    border:
        1px solid #d9dee5;

    border-radius:
        8px;

    padding:
        11px 14px;

    transition:
        var(--transition);
}

.form-control:focus,
.form-select:focus {
    border-color:
        var(--primary);

    box-shadow:
        0 0 0 0.2rem
        rgba(11, 94, 215, 0.12);
}

.form-label {
    font-weight:
        600;

    color:
        var(--dark);
}

textarea.form-control {
    min-height:
        130px;
}

.required::after {
    content:
        " *";

    color:
        #dc3545;
}


/* =========================================================
   19. LOGIN PAGE
   ========================================================= */

.login-page {
    min-height:
        100vh;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    padding:
        30px;

    background:
        linear-gradient(
            135deg,
            #eef5ff,
            #f5faf7
        );
}

.login-card {
    width:
        100%;

    max-width:
        450px;

    background:
        var(--white);

    border-radius:
        16px;

    padding:
        35px;

    box-shadow:
        var(--shadow-lg);
}

.login-logo {
    width:
        90px;

    height:
        90px;

    object-fit:
        contain;

    display:
        block;

    margin:
        0 auto 15px;
}


/* =========================================================
   20. STUDENT DASHBOARD
   ========================================================= */

.dashboard-card {
    padding:
        25px;

    border-radius:
        var(--radius);

    background:
        var(--white);

    border:
        1px solid var(--border);

    box-shadow:
        var(--shadow-sm);

    height:
        100%;
}

.dashboard-card .icon {
    width:
        50px;

    height:
        50px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    border-radius:
        10px;

    background:
        rgba(11, 94, 215, 0.1);

    color:
        var(--primary);

    font-size:
        22px;

    margin-bottom:
        15px;
}


/* =========================================================
   21. TABLES
   ========================================================= */

.table {
    vertical-align:
        middle;
}

.table thead th {
    background:
        var(--dark);

    color:
        var(--white);

    border:
        none;

    font-weight:
        600;
}

.table tbody tr {
    transition:
        var(--transition);
}

.table tbody tr:hover {
    background:
        #f8faff;
}


/* =========================================================
   22. BADGES
   ========================================================= */

.badge {
    padding:
        7px 10px;

    border-radius:
        6px;

    font-weight:
        600;
}


/* =========================================================
   23. ALERTS
   ========================================================= */

.alert {
    border-radius:
        8px;
}


/* =========================================================
   24. SEARCH
   ========================================================= */

.search-box {
    position:
        relative;
}

.search-box input {
    padding-right:
        45px;
}

.search-box button {
    position:
        absolute;

    right:
        5px;

    top:
        50%;

    transform:
        translateY(-50%);

    border:
        none;

    background:
        transparent;

    color:
        var(--muted);
}

.search-result-item {
    background:
        var(--white);

    transition:
        var(--transition);
}

.search-result-item:hover {
    background:
        var(--light);
}


/* =========================================================
   25. DOCUMENT MANAGEMENT
   ========================================================= */

.document-card {
    display:
        flex;

    align-items:
        center;

    gap:
        15px;

    padding:
        20px;

    background:
        var(--white);

    border:
        1px solid var(--border);

    border-radius:
        var(--radius);

    transition:
        var(--transition);
}

.document-card:hover {
    box-shadow:
        var(--shadow);

    transform:
        translateY(-3px);
}

.document-icon {
    width:
        55px;

    height:
        55px;

    flex-shrink:
        0;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    border-radius:
        10px;

    background:
        rgba(11, 94, 215, 0.1);

    color:
        var(--primary);

    font-size:
        24px;
}


/* =========================================================
   26. UPLOAD AREA
   ========================================================= */

.upload-area {
    border:
        2px dashed #cfd6df;

    border-radius:
        var(--radius);

    padding:
        45px 20px;

    text-align:
        center;

    background:
        #fafbfd;

    cursor:
        pointer;

    transition:
        var(--transition);
}

.upload-area:hover {
    border-color:
        var(--primary);

    background:
        #f5f9ff;
}

.upload-area i {
    font-size:
        40px;

    color:
        var(--primary);

    margin-bottom:
        15px;
}


/* =========================================================
   27. FOOTER
   ========================================================= */

.footer {
    background:
        var(--dark);

    color:
        rgba(255, 255, 255, 0.75);

    padding:
        65px 0 0;
}

.footer h5 {
    color:
        var(--white);

    margin-bottom:
        20px;
}

.footer p {
    color:
        rgba(255, 255, 255, 0.7);
}

.footer ul {
    list-style:
        none;

    padding:
        0;

    margin:
        0;
}

.footer ul li {
    margin-bottom:
        9px;
}

.footer a {
    color:
        rgba(255, 255, 255, 0.7);
}

.footer a:hover {
    color:
        var(--white);

    padding-left:
        3px;
}

.footer-bottom {
    border-top:
        1px solid
        rgba(255, 255, 255, 0.1);

    margin-top:
        50px;

    padding:
        20px 0;

    text-align:
        center;

    font-size:
        14px;
}


/* =========================================================
   28. SOCIAL MEDIA
   ========================================================= */

.social-links {
    display:
        flex;

    gap:
        10px;

    flex-wrap:
        wrap;
}

.social-links a {
    width:
        40px;

    height:
        40px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    border-radius:
        50%;

    background:
        rgba(255, 255, 255, 0.1);

    color:
        var(--white);
}

.social-links a:hover {
    background:
        var(--primary);

    color:
        var(--white);

    transform:
        translateY(-3px);
}


/* =========================================================
   29. SCROLL TO TOP
   ========================================================= */

#scrollTopBtn {
    position:
        fixed;

    right:
        25px;

    bottom:
        25px;

    width:
        45px;

    height:
        45px;

    border:
        none;

    border-radius:
        50%;

    background:
        var(--primary);

    color:
        var(--white);

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    opacity:
        0;

    visibility:
        hidden;

    transform:
        translateY(15px);

    transition:
        var(--transition);

    z-index:
        999;
}

#scrollTopBtn.show {
    opacity:
        1;

    visibility:
        visible;

    transform:
        translateY(0);
}

#scrollTopBtn:hover {
    background:
        var(--primary-dark);

    transform:
        translateY(-3px);
}


/* =========================================================
   30. LOADING SPINNER
   ========================================================= */

.page-loading {
    position:
        fixed;

    inset:
        0;

    background:
        rgba(255, 255, 255, 0.95);

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    z-index:
        9999;

    transition:
        opacity 0.3s ease;
}

.page-loading.hidden {
    opacity:
        0;

    pointer-events:
        none;
}


/* =========================================================
   31. TOAST
   ========================================================= */

.toast-container {
    z-index:
        10000;
}


/* =========================================================
   32. PAGINATION
   ========================================================= */

.pagination .page-link {
    color:
        var(--primary);

    border-radius:
        6px;

    margin:
        0 3px;
}

.pagination .page-item.active
.page-link {
    background:
        var(--primary);

    border-color:
        var(--primary);

    color:
        var(--white);
}


/* =========================================================
   33. EMPTY STATE
   ========================================================= */

.empty-state {
    text-align:
        center;

    padding:
        60px 20px;

    color:
        var(--muted);
}

.empty-state i {
    font-size:
        55px;

    margin-bottom:
        20px;

    opacity:
        0.5;
}


/* =========================================================
   34. PROFILE
   ========================================================= */

.profile-photo {
    width:
        130px;

    height:
        130px;

    object-fit:
        cover;

    border-radius:
        50%;

    border:
        5px solid #eef5ff;
}

.profile-info {
    display:
        grid;

    grid-template-columns:
        repeat(2, 1fr);

    gap:
        15px;
}

.profile-info-item {
    padding:
        15px;

    background:
        var(--light);

    border-radius:
        8px;
}

.profile-info-item small {
    display:
        block;

    color:
        var(--muted);

    margin-bottom:
        3px;
}

.profile-info-item strong {
    color:
        var(--dark);
}


/* =========================================================
   35. STATUS COLORS
   ========================================================= */

.status-pending {
    color:
        #856404;

    background:
        #fff3cd;

    padding:
        5px 10px;

    border-radius:
        5px;
}

.status-approved {
    color:
        #0f5132;

    background:
        #d1e7dd;

    padding:
        5px 10px;

    border-radius:
        5px;
}

.status-rejected {
    color:
        #842029;

    background:
        #f8d7da;

    padding:
        5px 10px;

    border-radius:
        5px;
}


/* =========================================================
   36. RESULT TABLE
   ========================================================= */

.result-table th,
.result-table td {
    text-align:
        center;
}

.result-table th:first-child,
.result-table td:first-child {
    text-align:
        left;
}

.grade-A {
    color:
        #198754;

    font-weight:
        700;
}

.grade-B {
    color:
        #0d6efd;

    font-weight:
        700;
}

.grade-C {
    color:
        #fd7e14;

    font-weight:
        700;
}

.grade-D {
    color:
        #dc3545;

    font-weight:
        700;
}


/* =========================================================
   37. MODAL
   ========================================================= */

.modal-content {
    border:
        none;

    border-radius:
        14px;

    box-shadow:
        var(--shadow-lg);
}

.modal-header {
    border-bottom:
        1px solid var(--border);
}

.modal-footer {
    border-top:
        1px solid var(--border);
}


/* =========================================================
   38. ANIMATIONS
   ========================================================= */

.fade-in {
    animation:
        fadeIn 0.7s ease
        forwards;
}

@keyframes fadeIn {

    from {
        opacity: 0;

        transform:
            translateY(15px);
    }

    to {
        opacity: 1;

        transform:
            translateY(0);
    }

}

.slide-up {
    animation:
        slideUp 0.7s ease
        forwards;
}

@keyframes slideUp {

    from {
        opacity: 0;

        transform:
            translateY(30px);
    }

    to {
        opacity: 1;

        transform:
            translateY(0);
    }

}


/* =========================================================
   39. RESPONSIVE DESIGN
   ========================================================= */

@media (max-width: 1199px) {

    .hero {
        min-height:
            500px;
    }

    .hero h1 {
        font-size:
            3.2rem;
    }

}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 991px) {

    .navbar-nav {
        padding:
            15px 0;
    }

    .navbar-nav .nav-link {
        padding:
            10px 15px;
    }

    .navbar-nav .nav-link::after {
        display:
            none;
    }

    .hero {
        padding:
            65px 0;
    }

    .hero h1 {
        font-size:
            2.8rem;
    }

    .hero img {
        margin-top:
            35px;

        max-height:
            350px;
    }

    .stats {
        margin-top:
            0;
    }

    .section-padding {
        padding:
            60px 0;
    }

}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 767px) {

    body {
        font-size:
            15px;
    }

    .top-bar {
        text-align:
            center;

        font-size:
            12px;
    }

    .navbar-brand {
        font-size:
            0.9rem;
    }

    .navbar-brand img {
        width:
            45px;

        height:
            45px;
    }

    .hero {
        text-align:
            center;

        padding:
            55px 0;
    }

    .hero h1 {
        font-size:
            2.25rem;
    }

    .hero p {
        font-size:
            1rem;
    }

    .hero img {
        max-height:
            280px;
    }

    .stats {
        padding:
            30px 0;
    }

    .stats .container {
        padding:
            25px 15px;
    }

    .stats .counter {
        font-size:
            2rem;
    }

    .section-padding {
        padding:
            50px 0;
    }

    .section-title {
        font-size:
            1.7rem;

        margin-bottom:
            2rem;
    }

    .page-header {
        padding:
            55px 0;
    }

    .page-header h1 {
        font-size:
            2.1rem;
    }

    .gallery-item {
        height:
            220px;
    }

    .profile-info {
        grid-template-columns:
            1fr;
    }

    .footer {
        padding-top:
            45px;
    }

}


/* =========================================================
   SMALL MOBILE
   ========================================================= */

@media (max-width: 480px) {

    .hero h1 {
        font-size:
            1.95rem;
    }

    .hero .btn {
        width:
            100%;

        margin-bottom:
            8px;
    }

    .stats .col-6 {
        margin-bottom:
            20px;
    }

    .login-card {
        padding:
            25px 20px;
    }

    #scrollTopBtn {
        width:
            40px;

        height:
            40px;

        right:
            15px;

        bottom:
            15px;
    }

}


/* =========================================================
   40. PRINT
   ========================================================= */

@media print {

    .navbar,
    .top-bar,
    .footer,
    #scrollTopBtn,
    .btn,
    .no-print {
        display:
            none !important;
    }

    body {
        background:
            white;

        color:
            black;
    }

    .card {
        box-shadow:
            none;

        border:
            1px solid #ddd;
    }

}
/* =========================================================
   LEADERSHIP PAGE
   ========================================================= */

.leader-photo {
    width: 220px;
    height: 220px;

    object-fit: cover;

    border-radius: 50%;

    border: 6px solid #eef5ff;

    box-shadow:
        0 8px 25px rgba(0, 0, 0, 0.10);
}

.organizational-chart {
    position: relative;
}

.organizational-chart .card {
    height: 100%;
}

.leader-card img {
    width: 160px;
    height: 160px;

    object-fit: cover;

    border-radius: 50%;

    margin: 25px auto 10px;

    border: 5px solid #eef5ff;
}

.leader-card .position {
    color: var(--primary);

    font-size: 14px;

    font-weight: 600;
}

/* =========================================================
   END
   ========================================================= */
   /* =========================================================
   SERVICES
   ========================================================= */

.service-card {
    overflow: hidden;
    padding: 0;
}

.service-card .card-body {
    padding: 28px;
}

.service-image {
    width: 100%;
    height: 220px;
    object-fit: cover;
}

.service-icon {
    width: 80px;
    height: 80px;

    display: flex;
    align-items: center;
    justify-content: center;

    margin: 30px auto 5px;

    border-radius: 50%;

    background:
        rgba(11, 94, 215, 0.10);

    color:
        var(--primary);

    font-size: 32px;
}

.service-card:hover .service-icon {
    background: var(--primary);
    color: var(--white);
    transform: scale(1.05);
}

.service-card .btn {
    margin-top: 8px;
}
/* =========================================================
   GALLERY
   ========================================================= */

.gallery-section {
    padding: 30px 0 80px;
}


/* =========================================================
   FILTERS
   ========================================================= */

.gallery-filters {
    display: flex;

    flex-wrap: wrap;

    justify-content: center;

    gap: 10px;

    margin-bottom: 35px;
}

.gallery-filter-btn {
    border: 1px solid #dee2e6;

    background: #ffffff;

    color: #495057;

    padding: 9px 18px;

    border-radius: 50px;

    font-size: 14px;

    cursor: pointer;

    transition:
        background 0.2s ease,
        color 0.2s ease,
        border-color 0.2s ease,
        transform 0.2s ease;
}

.gallery-filter-btn:hover {
    transform: translateY(-2px);

    border-color: #0d6efd;

    color: #0d6efd;
}

.gallery-filter-btn.active {
    background: #0d6efd;

    border-color: #0d6efd;

    color: #ffffff;
}


/* =========================================================
   GALLERY CARD
   ========================================================= */

.gallery-card {
    height: 100%;

    background: #ffffff;

    border-radius: 14px;

    overflow: hidden;

    border: 1px solid #eeeeee;

    box-shadow:
        0 5px 20px rgba(0, 0, 0, 0.06);

    cursor: pointer;

    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease;
}

.gallery-card:hover {
    transform: translateY(-5px);

    box-shadow:
        0 12px 30px rgba(0, 0, 0, 0.12);
}


/* =========================================================
   IMAGE
   ========================================================= */

.gallery-image-wrapper {
    position: relative;

    height: 230px;

    overflow: hidden;

    background: #f1f3f5;
}

.gallery-image {
    width: 100%;

    height: 100%;

    object-fit: cover;

    display: block;

    transition:
        transform 0.4s ease;
}

.gallery-card:hover .gallery-image {
    transform: scale(1.06);
}


/* =========================================================
   OVERLAY
   ========================================================= */

.gallery-overlay {
    position: absolute;

    inset: 0;

    display: flex;

    align-items: center;

    justify-content: center;

    background:
        rgba(0, 0, 0, 0.45);

    opacity: 0;

    transition:
        opacity 0.25s ease;
}

.gallery-card:hover .gallery-overlay {
    opacity: 1;
}

.gallery-overlay-icon {
    width: 55px;

    height: 55px;

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius: 50%;

    background: rgba(255, 255, 255, 0.95);

    color: #0d6efd;

    font-size: 22px;
}


/* =========================================================
   CARD BODY
   ========================================================= */

.gallery-card-body {
    padding: 17px;
}

.gallery-card-body h5 {
    font-size: 1rem;

    margin-bottom: 7px;

    color: #212529;
}

.gallery-card-body p {
    color: #6c757d;

    font-size: 13px;

    line-height: 1.6;

    margin-bottom: 10px;
}

.gallery-album {
    color: #0d6efd;

    font-size: 12px;

    font-weight: 600;
}


/* =========================================================
   IMAGE ERROR
   ========================================================= */

.gallery-image-error {
    display: flex;

    align-items: center;

    justify-content: center;

    min-height: 230px;

    background: #f8f9fa;
}

.gallery-image-error::after {
    content: "Image unavailable";

    color: #6c757d;

    font-size: 14px;
}


/* =========================================================
   LIGHTBOX
   ========================================================= */

.gallery-lightbox {
    position: fixed;

    inset: 0;

    z-index: 9999;

    display: none;

    align-items: center;

    justify-content: center;

    padding: 25px;
}

.gallery-lightbox.show {
    display: flex;
}

.gallery-lightbox-backdrop {
    position: absolute;

    inset: 0;

    background:
        rgba(0, 0, 0, 0.85);
}

.gallery-lightbox-dialog {
    position: relative;

    z-index: 2;

    width: min(1000px, 95vw);

    max-height: 92vh;

    background: #ffffff;

    border-radius: 14px;

    overflow: hidden;

    box-shadow:
        0 20px 60px rgba(0, 0, 0, 0.35);
}

.gallery-lightbox-dialog img {
    width: 100%;

    max-height: 72vh;

    object-fit: contain;

    display: block;

    background: #111111;
}

.gallery-lightbox-close {
    position: absolute;

    top: 15px;

    right: 15px;

    z-index: 5;

    width: 42px;

    height: 42px;

    border: 0;

    border-radius: 50%;

    background:
        rgba(0, 0, 0, 0.65);

    color: #ffffff;

    display: flex;

    align-items: center;

    justify-content: center;

    cursor: pointer;

    font-size: 18px;
}

.gallery-lightbox-close:hover {
    background:
        rgba(0, 0, 0, 0.85);
}

.gallery-lightbox-caption {
    padding: 18px 22px;
}

.gallery-lightbox-caption h4 {
    margin-bottom: 5px;
}

.gallery-lightbox-caption p {
    color: #6c757d;

    margin-bottom: 0;
}

.gallery-lightbox-open {
    overflow: hidden;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 767px) {

    .gallery-section {
        padding-bottom: 50px;
    }

    .gallery-image-wrapper {
        height: 210px;
    }

    .gallery-lightbox {
        padding: 10px;
    }

    .gallery-lightbox-dialog {
        width: 100%;
    }

    .gallery-lightbox-dialog img {
        max-height: 65vh;
    }

}


@media (max-width: 480px) {

    .gallery-filters {
        justify-content: flex-start;

        overflow-x: auto;

        flex-wrap: nowrap;

        padding-bottom: 8px;
    }

    .gallery-filter-btn {
        white-space: nowrap;
    }

}
/*
|--------------------------------------------------------------------------
| MOBILE NAVBAR AUTO HIDE
|--------------------------------------------------------------------------
*/

@media (max-width: 991.98px) {

    .navbar.sticky-top {
        transition:
            transform .25s ease;
    }

    .navbar.sticky-top.navbar-hidden {
        transform: translateY(-100%);
    }

}


/*
|--------------------------------------------------------------------------
| PROGRAM SEARCH
|--------------------------------------------------------------------------
*/

.program-search-item.hidden {
    display: none !important;
}


/*
|--------------------------------------------------------------------------
| SCROLL TOP BUTTON
|--------------------------------------------------------------------------
*/

#scrollTopBtn {
    transition:
        opacity .2s ease,
        transform .2s ease;
}

#scrollTopBtn:hover {
    transform: translateY(-3px);
}