/* =========================================================
   SMKN 4 BOGOR
   MAIN WEBSITE STYLE
========================================================= */


/* =========================================================
   RESET
========================================================= */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: "Poppins", "Segoe UI", Arial, sans-serif;
    background: #ffffff;
    color: #222222;
    overflow-x: hidden;
}

a {
    text-decoration: none;
    color: inherit;
}

img {
    max-width: 100%;
    display: block;
}

button,
input,
textarea,
select {
    font-family: inherit;
}


/* =========================================================
   NAVBAR
========================================================= */

.navbar {
    width: 100%;
    height: 82px;

    padding: 0 70px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    background: #ffffff;

    position: sticky;
    top: 0;

    z-index: 999;

    box-shadow: 0 2px 15px rgba(0, 0, 0, 0.06);
}


/* LOGO */

.logo {
    display: flex;
    align-items: center;

    gap: 12px;
}

.logo img {
    width: 52px;
    height: 52px;

    object-fit: contain;
}

.logo h2 {
    color: #0756a3;

    font-size: 19px;
    font-weight: 700;

    letter-spacing: 0.3px;
}


/* NAV MENU */

.nav-menu {
    display: flex;
    align-items: center;

    gap: 30px;
}

.nav-menu a {
    position: relative;

    color: #333333;

    font-size: 14px;
    font-weight: 500;

    transition: 0.3s ease;
}

.nav-menu a:not(.btn-login)::after {
    content: "";

    position: absolute;

    left: 0;
    bottom: -8px;

    width: 0;
    height: 2px;

    background: #0756a3;

    transition: 0.3s ease;
}

.nav-menu a:not(.btn-login):hover {
    color: #0756a3;
}

.nav-menu a:not(.btn-login):hover::after {
    width: 100%;
}


/* BUTTON LOGIN */

.btn-login {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    padding: 11px 23px;

    background: #0756a3;

    color: #ffffff !important;

    border-radius: 6px;

    transition: 0.3s ease;
}

.btn-login:hover {
    background: #06467f;

    transform: translateY(-1px);
}


/* =========================================================
   HERO
========================================================= */

.hero {
    position: relative;

    min-height: 585px;

    display: flex;
    align-items: center;

    background-image: url("../images/hero-sekolah.jpg");

    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.hero-overlay {
    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            90deg,
            rgba(0, 52, 103, 0.88) 0%,
            rgba(0, 71, 137, 0.72) 50%,
            rgba(0, 71, 137, 0.35) 100%
        );
}

.hero-content {
    position: relative;

    z-index: 2;

    width: 650px;

    margin-left: 70px;

    color: #ffffff;
}

.hero-small {
    margin-bottom: 17px;

    font-size: 13px;
    font-weight: 700;

    letter-spacing: 3px;
}

.hero-content h1 {
    margin-bottom: 22px;

    font-size: 56px;
    line-height: 1.08;

    font-weight: 700;

    letter-spacing: -1px;
}

.hero-description {
    max-width: 580px;

    margin-bottom: 30px;

    color: rgba(255, 255, 255, 0.9);

    font-size: 16px;
    line-height: 1.8;
}

.hero-button {
    display: inline-flex;

    align-items: center;

    padding: 13px 27px;

    background: #ffffff;

    color: #0756a3;

    border-radius: 6px;

    font-size: 14px;
    font-weight: 600;

    transition: 0.3s ease;
}

.hero-button:hover {
    background: #eaf3fb;

    transform: translateY(-2px);
}


/* =========================================================
   STATISTICS
========================================================= */

.stats {
    width: 100%;

    display: grid;

    grid-template-columns: repeat(4, 1fr);

    padding: 42px 70px;

    background: #0756a3;

    color: #ffffff;
}

.stat-item {
    text-align: center;

    border-right:
        1px solid rgba(255, 255, 255, 0.25);
}

.stat-item:last-child {
    border-right: none;
}

.stat-item h2 {
    margin-bottom: 7px;

    font-size: 34px;
    font-weight: 700;
}

.stat-item p {
    font-size: 14px;

    color: rgba(255, 255, 255, 0.88);
}


/* =========================================================
   GENERAL SECTION
========================================================= */

.section-label {
    color: #0756a3;

    font-size: 12px;
    font-weight: 700;

    letter-spacing: 2.5px;
}

.section-heading {
    margin-bottom: 45px;

    text-align: center;
}

.section-heading h2 {
    margin-top: 10px;

    color: #0756a3;

    font-size: 35px;
    font-weight: 700;

    line-height: 1.25;
}

.section-heading p:last-child {
    max-width: 650px;

    margin: 15px auto 0;

    color: #6d6d6d;

    font-size: 14px;
    line-height: 1.8;
}


/* =========================================================
   ABOUT
========================================================= */

.about-section {
    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 70px;

    align-items: center;

    padding: 90px 70px;
}

.about-image {
    position: relative;
}

.about-image::after {
    content: "";

    position: absolute;

    width: 100%;
    height: 100%;

    left: 12px;
    top: 12px;

    border: 2px solid #0756a3;

    border-radius: 12px;

    z-index: -1;
}

.about-image img {
    width: 100%;
    height: 420px;

    object-fit: cover;

    border-radius: 12px;
}

.about-content h2 {
    margin: 10px 0 20px;

    color: #0756a3;

    font-size: 38px;

    line-height: 1.2;
}

.about-content p {
    margin-bottom: 17px;

    color: #606060;

    font-size: 14px;

    line-height: 1.9;
}


/* OUTLINE BUTTON */

.outline-button {
    display: inline-flex;

    align-items: center;

    padding: 11px 23px;

    margin-top: 8px;

    border: 1.5px solid #0756a3;

    border-radius: 6px;

    color: #0756a3;

    font-size: 13px;
    font-weight: 600;

    transition: 0.3s ease;
}

.outline-button:hover {
    background: #0756a3;

    color: #ffffff;
}


/* =========================================================
   KEUNGGULAN
========================================================= */

.features {
    padding: 90px 70px;

    background: #f5f8fc;
}

.feature-grid {
    display: grid;

    grid-template-columns: repeat(4, 1fr);

    gap: 22px;
}

.feature-card {
    padding: 32px 24px;

    background: #ffffff;

    border-radius: 10px;

    text-align: center;

    border: 1px solid #e8edf3;

    transition: 0.3s ease;
}

.feature-card:hover {
    transform: translateY(-5px);

    box-shadow:
        0 10px 30px
        rgba(0, 64, 125, 0.09);
}

.feature-icon {
    width: 65px;
    height: 65px;

    display: flex;

    align-items: center;
    justify-content: center;

    margin: 0 auto 18px;

    border-radius: 50%;

    background: #edf5fc;

    font-size: 29px;
}

.feature-card h3 {
    margin-bottom: 11px;

    color: #0756a3;

    font-size: 17px;
}

.feature-card p {
    color: #6a6a6a;

    font-size: 13px;

    line-height: 1.7;
}


/* =========================================================
   ORGANISASI KESISWAAN
========================================================= */

.organisasi-section {
    padding: 70px 70px 40px;

    background: #ffffff;
}

.organisasi-heading {
    max-width: 750px;

    margin: 0 auto 45px;

    text-align: center;
}

.organisasi-heading h2 {
    margin-bottom: 15px;

    color: #0756a3;

    font-size: 34px;
    font-weight: 700;
}

.organisasi-heading p {
    color: #666666;

    font-size: 14px;

    line-height: 1.8;
}

.organisasi-grid {
    display: grid;

    grid-template-columns: repeat(2, 1fr);

    gap: 30px;

    max-width: 1000px;

    margin: auto;
}

.organisasi-card {
    min-height: 430px;

    padding: 40px 45px 50px;

    display: flex;

    flex-direction: column;

    align-items: center;

    background: #5f82a3;

    border-radius: 16px;

    text-align: center;

    color: #ffffff;

    transition: 0.3s ease;
}

.organisasi-card:hover {
    transform: translateY(-6px);

    box-shadow:
        0 15px 30px
        rgba(40, 82, 125, 0.25);
}

.organisasi-logo {
    width: 130px;
    height: 130px;

    display: flex;

    align-items: center;
    justify-content: center;

    margin-bottom: 25px;

    background: #f5f5f5;

    border-radius: 50%;
}

.organisasi-logo img {
    width: 85px;
    height: 85px;

    object-fit: contain;
}

.organisasi-card h3 {
    margin-bottom: 25px;

    color: #ffffff;

    font-size: 25px;
    font-weight: 700;

    line-height: 1.25;
}

.organisasi-card p {
    max-width: 380px;

    color: #f5f5f5;

    font-size: 18px;

    line-height: 1.45;
}


/* =========================================================
   EKSTRAKURIKULER
========================================================= */

.eskul-section {
    padding: 90px 70px;

    background: #ffffff;
}

.eskul-grid {
    display: grid;

    grid-template-columns: repeat(4, 1fr);

    gap: 17px;
}

.eskul-card {
    min-height: 75px;

    display: flex;

    align-items: center;
    justify-content: center;

    padding: 20px;

    background: #ffffff;

    border: 1px solid #dfe6ee;

    border-radius: 8px;

    color: #0756a3;

    font-size: 14px;
    font-weight: 600;

    text-align: center;

    transition: 0.3s ease;
}

.eskul-card:hover {
    background: #0756a3;

    border-color: #0756a3;

    color: #ffffff;

    transform: translateY(-3px);

    box-shadow:
        0 8px 20px
        rgba(7, 86, 163, 0.15);
}


/* =========================================================
   JURUSAN
========================================================= */

.jurusan-section {
    padding: 90px 70px;

    background: #f5f8fc;
}

.jurusan-grid {
    display: grid;

    grid-template-columns: repeat(4, 1fr);

    gap: 22px;
}

.jurusan-card {
    min-height: 210px;

    padding: 30px;

    background: #ffffff;

    border: 1px solid #e6ebf1;

    border-radius: 10px;

    transition: 0.3s ease;
}

.jurusan-card:hover {
    transform: translateY(-4px);

    box-shadow:
        0 10px 30px
        rgba(0, 60, 120, 0.08);
}

.logo-jurusan {
    width: 180px;
    height: 180px;

    margin: 10px auto 20px;

    object-fit: contain;
}

.jurusan-card span {
    color: #a0a8b1;

    font-size: 12px;
    font-weight: 600;
}

.jurusan-card h3 {
    margin: 20px 0 12px;

    color: #0756a3;

    font-size: 21px;
}

.jurusan-card p {
    color: #666666;

    font-size: 13px;

    line-height: 1.7;
}


/* =========================================================
   PENGUMUMAN HALAMAN UTAMA
========================================================= */

.pengumuman-section {
    padding: 80px 70px;

    background: #f7f9fc;
}

.pengumuman-grid {
    display: grid;

    grid-template-columns: repeat(3, 1fr);

    gap: 25px;
}

.pengumuman-card {
    padding: 28px;

    background: #ffffff;

    border: 1px solid #d7e0ea;

    border-radius: 14px;

    transition: 0.3s ease;
}

.pengumuman-card:hover {
    transform: translateY(-5px);

    box-shadow:
        0 12px 25px
        rgba(0, 0, 0, 0.08);
}

.pengumuman-card-date {
    margin-bottom: 18px;

    color: #0756a3;

    font-size: 13px;
    font-weight: 600;
}

.pengumuman-card h3 {
    margin-bottom: 14px;

    color: #0756a3;

    font-size: 19px;

    line-height: 1.4;
}

.pengumuman-card p {
    color: #666666;

    font-size: 14px;

    line-height: 1.7;
}

.empty-pengumuman {
    grid-column: 1 / -1;

    padding: 30px;

    color: #777777;

    text-align: center;
}


/* =========================================================
   GALERI HALAMAN UTAMA
========================================================= */

.gallery-section {
    padding: 90px 70px;

    background: #ffffff;
}

.gallery-heading {
    display: flex;

    align-items: flex-end;
    justify-content: space-between;

    margin-bottom: 40px;
}

.gallery-heading h2 {
    margin-top: 10px;

    color: #0756a3;

    font-size: 35px;
}

.gallery-heading .outline-button {
    margin-top: 0;
}

.gallery-grid {
    display: grid;

    grid-template-columns: repeat(4, 1fr);

    gap: 18px;
}

.gallery-item {
    height: 250px;

    overflow: hidden;

    background: #eeeeee;

    border-radius: 10px;
}

.gallery-item img {
    width: 100%;
    height: 100%;

    object-fit: cover;

    transition: 0.45s ease;
}

.gallery-item:hover img {
    transform: scale(1.07);
}


/* =========================================================
   HALAMAN GALERI
========================================================= */

.gallery-page-header {
    padding: 75px 70px 60px;

    background: #f5f8fc;

    text-align: center;
}

.gallery-page-header h1 {
    max-width: 750px;

    margin: 12px auto 15px;

    color: #0756a3;

    font-size: 42px;

    line-height: 1.25;
}

.gallery-page-header > p:not(.section-label) {
    max-width: 650px;

    margin: 0 auto 25px;

    color: #666666;

    font-size: 14px;

    line-height: 1.8;
}

.gallery-page {
    padding: 70px;
}

.gallery-page-grid {
    display: grid;

    grid-template-columns: repeat(4, 1fr);

    gap: 20px;
}

.gallery-page-item {
    height: 260px;

    overflow: hidden;

    background: #eeeeee;

    border: 1px solid #e3e8ee;

    border-radius: 10px;
}

.gallery-page-item img {
    width: 100%;
    height: 100%;

    object-fit: cover;

    transition: 0.4s ease;
}

.gallery-page-item:hover img {
    transform: scale(1.06);
}


/* =========================================================
   KONTAK
========================================================= */

.contact-section {
    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 60px;

    align-items: center;

    padding: 90px 70px;

    background: #f5f8fc;
}

.contact-content h2 {
    margin: 10px 0 20px;

    color: #0756a3;

    font-size: 36px;

    line-height: 1.2;
}

.contact-content > p {
    max-width: 580px;

    color: #666666;

    font-size: 14px;

    line-height: 1.8;
}

.contact-info {
    margin-top: 25px;
}

.contact-info p {
    margin-bottom: 18px;

    color: #555555;

    font-size: 14px;

    line-height: 1.7;
}

.contact-info strong {
    color: #0756a3;
}

.map-button {
    display: inline-flex;

    padding: 12px 23px;

    margin-top: 5px;

    background: #0756a3;

    color: #ffffff;

    border-radius: 6px;

    font-size: 13px;
    font-weight: 600;

    transition: 0.3s ease;
}

.map-button:hover {
    background: #06467f;

    transform: translateY(-2px);
}

.map-box {
    width: 100%;
    height: 350px;

    overflow: hidden;

    border-radius: 12px;

    box-shadow:
        0 7px 25px
        rgba(0, 0, 0, 0.08);
}

.map-box a {
    display: block;

    width: 100%;
    height: 100%;
}

.map-box img {
    width: 100%;
    height: 100%;

    object-fit: cover;

    transition: 0.4s ease;
}

.map-box:hover img {
    transform: scale(1.04);
}


/* =========================================================
   FOOTER
========================================================= */

.footer {
    background: #063d73;

    color: #ffffff;
}

.footer-container {
    display: grid;

    grid-template-columns: 2fr 1fr 1.5fr;

    gap: 70px;

    padding: 60px 70px;
}

.footer-logo {
    display: flex;

    align-items: center;

    gap: 12px;

    margin-bottom: 20px;
}

.footer-logo img {
    width: 52px;
    height: 52px;

    object-fit: contain;
}

.footer-logo h3 {
    font-size: 18px;
}

.footer-about p,
.footer-contact p {
    max-width: 390px;

    color: rgba(255, 255, 255, 0.76);

    font-size: 13px;

    line-height: 1.8;
}

.footer h3 {
    margin-bottom: 20px;

    font-size: 16px;
}

.footer-links {
    display: flex;

    flex-direction: column;
}

.footer-links a {
    width: fit-content;

    margin-bottom: 12px;

    color: rgba(255, 255, 255, 0.76);

    font-size: 13px;

    transition: 0.3s ease;
}

.footer-links a:hover {
    color: #ffffff;

    transform: translateX(3px);
}

.footer-bottom {
    padding: 20px 70px;

    border-top:
        1px solid rgba(255, 255, 255, 0.14);

    text-align: center;
}

.footer-bottom p {
    color: rgba(255, 255, 255, 0.65);

    font-size: 12px;
}


/* =========================================================
   LOGIN ADMIN
========================================================= */

.login-page {
    min-height: 100vh;

    display: flex;

    align-items: center;
    justify-content: center;

    padding: 40px 20px;

    background: #f5f8fc;
}

.login-container {
    width: 100%;
    max-width: 450px;

    padding: 45px 42px;

    background: #ffffff;

    border: 1px solid #e4eaf0;

    border-radius: 12px;

    box-shadow:
        0 12px 35px
        rgba(0, 50, 100, 0.08);

    text-align: center;
}

.login-logo {
    display: flex;

    justify-content: center;

    margin-bottom: 20px;
}

.login-logo img {
    width: 75px;
    height: 75px;

    object-fit: contain;
}

.login-heading h1 {
    margin: 8px 0 10px;

    color: #0756a3;

    font-size: 30px;
}

.login-heading > p:last-child {
    color: #777777;

    font-size: 13px;

    line-height: 1.7;
}

.login-error {
    margin-top: 22px;

    padding: 12px 15px;

    background: #fff1f1;

    border: 1px solid #ffd4d4;

    border-radius: 6px;

    color: #c62828;

    font-size: 13px;

    text-align: left;
}

.login-form {
    margin-top: 28px;

    text-align: left;
}


/* =========================================================
   FORM UMUM
========================================================= */

.form-group {
    margin-bottom: 19px;
}

.form-group label {
    display: block;

    margin-bottom: 8px;

    color: #333333;

    font-size: 13px;
    font-weight: 600;
}

.form-group input,
.form-group textarea,
.form-group select {
    width: 100%;

    padding: 13px 14px;

    background: #ffffff;

    border: 1px solid #d9e1e9;

    border-radius: 6px;

    outline: none;

    color: #333333;

    font-size: 13px;

    transition: 0.3s ease;
}

.form-group textarea {
    min-height: 120px;

    resize: vertical;
}

.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus {
    border-color: #0756a3;

    box-shadow:
        0 0 0 3px
        rgba(7, 86, 163, 0.08);
}

.login-button {
    width: 100%;

    padding: 13px;

    margin-top: 5px;

    border: none;

    border-radius: 6px;

    background: #0756a3;

    color: #ffffff;

    font-size: 14px;
    font-weight: 600;

    cursor: pointer;

    transition: 0.3s ease;
}

.login-button:hover {
    background: #06467f;

    transform: translateY(-1px);
}

.back-home {
    display: inline-block;

    margin-top: 25px;

    color: #0756a3;

    font-size: 13px;
    font-weight: 500;
}


    /* =====================================
           DASHBOARD ADMIN
        ====================================== */

        .admin-page {
            min-height: 100vh;
            background: #f4f7fb;
            padding-bottom: 60px;
        }


        /* =====================================
           HEADER
        ====================================== */

        .admin-header {
            background: #ffffff;
            padding: 20px 70px;

            display: flex;
            align-items: center;
            justify-content: space-between;

            border-bottom: 1px solid #e5e7eb;
        }


        .admin-header h1 {
            margin: 0;

            color: #1f4f7d;

            font-size: 24px;
            font-weight: 700;
        }


        .admin-header p {
            margin: 5px 0 0;

            color: #64748b;

            font-size: 14px;
        }


        /* =====================================
           BUTTON BERANDA
        ====================================== */

        .btn-login {
            display: inline-block;

            background: #1f5b92;

            color: #ffffff;

            padding: 12px 24px;

            border-radius: 8px;

            text-decoration: none;

            font-size: 14px;

            font-weight: 600;

            transition: 0.2s;
        }


        .btn-login:hover {
            background: #164675;

            color: #ffffff;
        }


        /* =====================================
           CONTENT
        ====================================== */

        .admin-content {
            max-width: 1140px;

            margin: auto;

            padding: 45px 30px;
        }


        /* =====================================
           HERO
        ====================================== */

        .dashboard-hero {
            background: #ffffff;

            border: 1px solid #dbe3ec;

            border-radius: 14px;

            padding: 30px;

            display: flex;

            align-items: center;

            justify-content: space-between;

            gap: 25px;

            margin-bottom: 30px;

            box-shadow:
                0 5px 20px
                rgba(0, 0, 0, 0.04);
        }


        .dashboard-hero h1 {
            margin: 0 0 8px;

            color: #234f7b;

            font-size: 28px;

            font-weight: 700;
        }


        .dashboard-hero p {
            margin: 0;

            color: #64748b;

            font-size: 14px;

            line-height: 1.6;
        }


        /* =====================================
           STATISTIK
        ====================================== */

        .dashboard-cards {

            display: grid;

            grid-template-columns:
                repeat(2, 1fr);

            gap: 100px;

            margin-bottom: 30px;
        }


        /* =====================================
           CARD
        ====================================== */

        .dash-card {

            background: #ffffff;

            border: 1px solid #dbe3ec;

            border-radius: 15px;

            padding: 28px 25px;

            text-decoration: none;

            display: flex;

            flex-direction: column;

            justify-content: center;

            text-align: center;
            
            align-items: center;

            min-height: 150px;

            box-shadow:
                0 5px 20px
                rgba(0, 0, 0, 0.04);

            transition: 0.2s;

            margin-right: 70px;
        }


        .dash-card:hover {

            transform:
                translateY(-4px);

            box-shadow:
                0 10px 25px
                rgba(0, 0, 0, 0.08);

            border-color: #b9cfe3;
        }


        .dash-card strong {

            color: #1f5b92;

            font-size: 36px;

            font-weight: 700;

            line-height: 1;

            margin-bottom: 12px;
        }


        .dash-card span {

            color: #475569;

            font-size: 15px;

            font-weight: 600;
        }


        /* =====================================
           ICON / AKSEN CARD
        ====================================== */

        .dash-card::before {

            content: "";

            width: 45px;

            height: 4px;

            background: #1f5b92;

            border-radius: 10px;

            margin-bottom: 18px;
        }


        /* =====================================
           MENU ADMIN
        ====================================== */

        .admin-menu-panel {

            background: #ffffff;

            border: 1px solid #dbe3ec;

            border-radius: 14px;

            padding: 28px 30px;

            box-shadow:
                0 5px 20px
                rgba(0, 0, 0, 0.04);
        }


        .admin-menu-panel h2 {

            margin: 0 0 10px;

            color: #234f7b;

            font-size: 20px;

            font-weight: 700;
        }


        .admin-menu-panel p {

            margin: 0;

            color: #64748b;

            font-size: 14px;

            line-height: 1.7;
        }


        /* =====================================
           RESPONSIVE
        ====================================== */

        @media (max-width: 900px) {

            .admin-header {

                padding: 20px 30px;

            }


            .dashboard-cards {

                grid-template-columns:
                    repeat(2, 1fr);

            }

        }


        @media (max-width: 650px) {

            .admin-header {

                padding: 18px 20px;

                gap: 15px;

            }


            .admin-header h1 {

                font-size: 20px;

            }


            .admin-header p {

                font-size: 12px;

            }


            .btn-login {

                padding: 10px 16px;

                font-size: 12px;

            }


            .admin-content {

                padding: 30px 20px;

            }


            .dashboard-hero {

                padding: 25px;

                flex-direction: column;

                align-items: flex-start;

            }


            .dashboard-hero h1 {

                font-size: 24px;

            }


            .dashboard-cards {

                grid-template-columns: 1fr;

            }


            .dash-card {

                min-height: 130px;

            }


            .admin-menu-panel {

                padding: 24px;

            }

        }



/* =========================================================
   SIDEBAR ADMIN
========================================================= */

.admin-sidebar-overlay {
    position: fixed;

    inset: 0;

    display: none;

    background:
        rgba(0, 0, 0, 0.4);

    z-index: 9998;
}

.admin-sidebar-overlay.active {
    display: block;
}

.admin-sidebar {
    position: fixed;

    top: 0;
    left: -280px;

    width: 260px;
    height: 100vh;

    padding: 20px 12px;

    background: #0756a3;

    box-shadow:
        5px 0 20px
        rgba(0, 0, 0, 0.15);

    transition: left 0.35s ease;

    z-index: 9999;

    overflow-y: auto;
}

.admin-sidebar.active {
    left: 0;
}


/* CLOSE SIDEBAR */

.admin-sidebar-close {
    display: flex;

    justify-content: flex-end;

    margin-bottom: 15px;
}

.admin-sidebar-close button {
    width: 38px;
    height: 38px;

    border: none;

    background: transparent;

    color: #ffffff;

    font-size: 30px;

    cursor: pointer;

    border-radius: 6px;
}

.admin-sidebar-close button:hover {
    background:
        rgba(255, 255, 255, 0.15);
}


/* SIDEBAR TITLE */

.admin-sidebar-title {
    padding: 10px 15px 25px;
}

.admin-sidebar-title h2 {
    margin-bottom: 5px;

    color: #ffffff;

    font-size: 22px;
}

.admin-sidebar-title p {
    color:
        rgba(255, 255, 255, 0.75);

    font-size: 13px;
}


/* SIDEBAR MENU */

.admin-sidebar-menu {
    display: flex;

    flex-direction: column;

    gap: 7px;
}

.admin-sidebar-menu a {
    display: flex;

    align-items: center;

    gap: 12px;

    width: 100%;

    padding: 14px 15px;

    border-radius: 7px;

    color: #ffffff;

    font-size: 14px;
    font-weight: 500;

    transition: 0.25s ease;
}

.admin-sidebar-menu a:hover,
.admin-sidebar-menu a.active {
    background:
        rgba(255, 255, 255, 0.16);

    transform: translateX(3px);
}

.menu-icon {
    width: 25px;

    text-align: center;
}

.logout-menu {
    margin-top: 10px;

    background: #b62d2d;
}

.logout-menu:hover {
    background: #962222 !important;
}


/* MENU TOGGLE */

.admin-menu-toggle {
    position: absolute;

    top: 30px;
    right: 70px;

    z-index: 10;

    width: 70px;
    height: 70px;

    display: flex;

    flex-direction: column;

    justify-content: center;
    align-items: center;

    gap: 9px;

    border: none;

    border-radius: 10px;

    background: #0756a3;

    cursor: pointer;

    transition: 0.3s ease;
}

.admin-menu-toggle span {
    display: block;

    width: 38px;
    height: 4px;

    background: #ffffff;

    border-radius: 10px;
}

.admin-menu-toggle:hover {
    background: #06467f;

    transform: scale(1.05);
}


/* =========================================================
   ADMIN GALERI
========================================================= */


        /* =====================================
           HALAMAN GALERI ADMIN
        ====================================== */

        .galeri-admin-page {
            min-height: 100vh;
            background: #f4f7fb;
            padding-bottom: 60px;
        }


        /* =====================================
           HEADER
        ====================================== */

        .galeri-header {
            background: #ffffff;
            padding: 20px 70px;
            display: flex;
            align-items: center;
            justify-content: space-between;
            border-bottom: 1px solid #e5e7eb;
        }

        .galeri-header h1 {
            margin: 0;
            color: #1f4f7d;
            font-size: 24px;
            font-weight: 700;
        }

        .galeri-header p {
            margin: 5px 0 0;
            color: #64748b;
            font-size: 14px;
        }


        .btn-beranda {
            background: #1f5b92;
            color: white;
            padding: 12px 25px;
            border-radius: 8px;
            text-decoration: none;
            font-size: 14px;
            font-weight: 600;
            transition: 0.2s;
        }

        .btn-beranda:hover {
            background: #164675;
            color: white;
        }


        /* =====================================
           CONTENT
        ====================================== */

        .galeri-admin-content {
            max-width: 1140px;
            margin: auto;
            padding: 45px 30px;
        }


        .galeri-title-area {
            margin-bottom: 25px;
        }

        .galeri-title-area h2 {
            margin: 0;
            color: #234f7b;
            font-size: 28px;
            font-weight: 700;
        }

        .galeri-title-area p {
            color: #64748b;
            margin: 7px 0 0;
            font-size: 14px;
        }


        /* =====================================
           ALERT
        ====================================== */

        .galeri-alert {
            border-radius: 10px;
            margin-bottom: 25px;
            font-size: 14px;
        }


        /* =====================================
           PANEL
        ====================================== */

        .galeri-panel {
            background: white;
            border: 1px solid #dbe3ec;
            border-radius: 14px;
            padding: 30px;
            margin-bottom: 30px;
            box-shadow: 0 5px 20px rgba(0, 0, 0, 0.04);
        }

        .galeri-panel h3 {
            margin: 0 0 25px;
            color: #234f7b;
            font-size: 21px;
            font-weight: 700;
        }


        /* =====================================
           FORM
        ====================================== */

        .galeri-form-label {
            color: #334155;
            font-size: 14px;
            font-weight: 600;
            margin-bottom: 8px;
        }

        .galeri-form-control {
            border: 1px solid #cbd5e1;
            border-radius: 8px;
            padding: 12px 14px;
            font-size: 14px;
        }

        .galeri-form-control:focus {
            border-color: #2563a5;
            box-shadow: 0 0 0 3px rgba(37, 99, 165, 0.1);
        }

        textarea.galeri-form-control {
            min-height: 110px;
            resize: vertical;
        }


        /* =====================================
           BUTTON SIMPAN
        ====================================== */

        .btn-simpan {
            background: #1f5b92;
            color: white;
            border: none;
            padding: 12px 23px;
            border-radius: 8px;
            font-size: 14px;
            font-weight: 600;
            cursor: pointer;
            transition: 0.2s;
        }

        .btn-simpan:hover {
            background: #164675;
            color: white;
        }


        /* =====================================
           GRID GALERI
        ====================================== */

        .gallery-admin-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 24px;
        }


        /* =====================================
           CARD FOTO
        ====================================== */

        .gallery-admin-card {
            background: white;
            border: 1px solid #dbe3ec;
            border-radius: 14px;
            overflow: hidden;
            display: flex;
            flex-direction: column;
            min-height: 390px;
            box-shadow: 0 5px 20px rgba(0, 0, 0, 0.05);
            transition: 0.2s;
        }

        .gallery-admin-card:hover {
            transform: translateY(-4px);
            box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08);
        }


        /* =====================================
           GAMBAR
        ====================================== */

        .gallery-admin-image {
            width: 100%;
            height: 230px;
            overflow: hidden;
            background: #e2e8f0;
        }

        .gallery-admin-image img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
        }


        /* =====================================
           ISI CARD
        ====================================== */

        .gallery-admin-body {
            padding: 18px;
            display: flex;
            flex-direction: column;
            flex: 1;
        }

        .gallery-admin-body h4 {
            margin: 0 0 8px;
            color: #1e3a5f;
            font-size: 17px;
            font-weight: 700;
        }

        .gallery-admin-body p {
            margin: 0;
            color: #64748b;
            font-size: 13px;
            line-height: 1.6;
            flex: 1;
        }


        /* =====================================
           ACTION
        ====================================== */

        .gallery-actions {
            display: flex;
            gap: 10px;
            margin-top: 20px;
        }

        .btn-edit {
            flex: 1;
            background: #e8f0f8;
            color: #1f5b92;
            text-align: center;
            padding: 10px;
            border-radius: 7px;
            border: none;
            cursor: pointer;
            font-size: 14px;
            font-weight: 600;
            transition: 0.2s;
        }

        .btn-edit:hover {
            background: #d6e5f3;
            color: #164675;
        }

        .btn-delete {
            flex: 1;
            background: #fee2e2;
            color: #b91c1c;
            padding: 10px;
            border-radius: 7px;
            border: none;
            cursor: pointer;
            font-size: 14px;
            font-weight: 600;
            transition: 0.2s;
        }

        .btn-delete:hover {
            background: #fecaca;
            color: #991b1b;
        }


        /* =====================================
           EMPTY
        ====================================== */

        .empty-gallery {
            grid-column: span 3;
            text-align: center;
            padding: 55px 30px;
            background: white;
            border: 1px solid #dbe3ec;
            border-radius: 12px;
            color: #64748b;
            font-size: 14px;
        }


        /* =====================================
           MODAL EDIT
        ====================================== */

        .modal-edit {
            display: none;
            position: fixed;
            inset: 0;
            background: rgba(15, 23, 42, 0.55);
            z-index: 9999;
            align-items: center;
            justify-content: center;
            padding: 20px;
        }

        .modal-edit.show {
            display: flex;
        }

        .modal-box {
            background: white;
            width: 100%;
            max-width: 600px;
            max-height: 90vh;
            overflow-y: auto;
            border-radius: 15px;
            padding: 30px;
            position: relative;
            box-shadow: 0 15px 40px rgba(0, 0, 0, 0.15);
        }

        .modal-box h2 {
            color: #234f7b;
            margin: 0 40px 25px 0;
            font-size: 23px;
            font-weight: 700;
        }

        .modal-close {
            position: absolute;
            right: 18px;
            top: 12px;
            border: none;
            background: transparent;
            color: #64748b;
            font-size: 28px;
            line-height: 1;
            cursor: pointer;
        }

        .modal-close:hover {
            color: #1e3a5f;
        }


        /* =====================================
           RESPONSIVE
        ====================================== */

        @media (max-width: 900px) {

            .gallery-admin-grid {
                grid-template-columns: repeat(2, 1fr);
            }

            .empty-gallery {
                grid-column: span 2;
            }

            .galeri-header {
                padding: 20px 30px;
            }

        }


        @media (max-width: 650px) {

            .galeri-header {
                padding: 18px 20px;
                gap: 15px;
            }

            .galeri-header h1 {
                font-size: 20px;
            }

            .galeri-header p {
                font-size: 12px;
            }

            .btn-beranda {
                padding: 10px 16px;
                font-size: 12px;
            }

            .galeri-admin-content {
                padding: 30px 20px;
            }

            .galeri-title-area h2 {
                font-size: 24px;
            }

            .galeri-panel {
                padding: 22px;
            }

            .gallery-admin-grid {
                grid-template-columns: 1fr;
            }

            .empty-gallery {
                grid-column: span 1;
            }

            .gallery-actions {
                gap: 8px;
            }

            .modal-box {
                padding: 25px 20px;
            }

        }



/* =========================================================
   MODAL
========================================================= */

.gallery-modal {
    position: fixed;

    inset: 0;

    display: none;

    align-items: center;
    justify-content: center;

    padding: 20px;

    background:
        rgba(0, 0, 0, 0.45);

    z-index: 9999;
}

.gallery-modal.active {
    display: flex;
}

.gallery-modal-content {
    position: relative;

    width: 100%;
    max-width: 550px;

    padding: 30px;

    background: #ffffff;

    border-radius: 14px;
}

.gallery-modal-content h2 {
    margin-bottom: 25px;

    color: #0756a3;
}

.modal-close {
    position: absolute;

    top: 15px;
    right: 18px;

    border: none;

    background: transparent;

    color: #777777;

    font-size: 30px;

    cursor: pointer;
}


/* =========================================================
   RESPONSIVE TABLET
========================================================= */

@media (max-width: 1100px) {

    .navbar {
        padding: 0 35px;
    }

    .nav-menu {
        gap: 18px;
    }

    .hero-content {
        margin-left: 45px;
    }

    .stats,
    .about-section,
    .features,
    .organisasi-section,
    .eskul-section,
    .jurusan-section,
    .pengumuman-section,
    .gallery-section,
    .contact-section {
        padding-left: 40px;
        padding-right: 40px;
    }

    .feature-grid,
    .eskul-grid,
    .jurusan-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .gallery-grid,
    .pengumuman-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .footer-container {
        padding-left: 40px;
        padding-right: 40px;
    }

    .admin-gallery-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}


/* =========================================================
   RESPONSIVE MOBILE
========================================================= */

@media (max-width: 768px) {

    /* NAVBAR */

    .navbar {
        height: auto;

        padding: 16px 20px;

        flex-direction: column;

        gap: 18px;
    }

    .logo h2 {
        font-size: 17px;
    }

    .nav-menu {
        width: 100%;

        flex-wrap: wrap;

        justify-content: center;

        gap: 13px 18px;
    }

    .nav-menu a {
        font-size: 12px;
    }

    .btn-login {
        padding: 8px 15px;
    }


    /* HERO */

    .hero {
        min-height: 520px;
    }

    .hero-content {
        width: auto;

        margin: 0 25px;
    }

    .hero-content h1 {
        font-size: 40px;
    }

    .hero-description {
        font-size: 14px;
    }


    /* STATS */

    .stats {
        grid-template-columns: repeat(2, 1fr);

        gap: 25px;

        padding: 35px 20px;
    }

    .stat-item {
        border-right: none;
    }

    .stat-item h2 {
        font-size: 28px;
    }


    /* ABOUT */

    .about-section {
        grid-template-columns: 1fr;

        gap: 45px;

        padding: 65px 25px;
    }

    .about-image img {
        height: 300px;
    }

    .about-content h2 {
        font-size: 31px;
    }


    /* ORGANISASI */

    .organisasi-section {
        padding: 60px 25px;
    }

    .organisasi-grid {
        grid-template-columns: 1fr;
    }

    .organisasi-card {
        min-height: auto;

        padding: 40px 25px;
    }


    /* SECTIONS */

    .features,
    .eskul-section,
    .jurusan-section,
    .pengumuman-section,
    .gallery-section,
    .contact-section {
        padding: 65px 25px;
    }

    .section-heading h2,
    .gallery-heading h2 {
        font-size: 29px;
    }


    /* GRID */

    .feature-grid,
    .eskul-grid,
    .jurusan-grid,
    .gallery-grid,
    .pengumuman-grid {
        grid-template-columns: 1fr;
    }


    /* GALLERY */

    .gallery-heading {
        display: block;
    }

    .gallery-heading .outline-button {
        margin-top: 20px;
    }

    .gallery-item {
        height: 280px;
    }


    /* CONTACT */

    .contact-section {
        grid-template-columns: 1fr;

        gap: 40px;
    }

    .contact-content h2 {
        font-size: 30px;
    }

    .map-box {
        height: 300px;
    }


    /* FOOTER */

    .footer-container {
        grid-template-columns: 1fr;

        gap: 40px;

        padding: 50px 25px;
    }

    .footer-bottom {
        padding: 20px 25px;
    }


    /* GALLERY PAGE */

    .gallery-page-header {
        padding: 55px 25px 45px;
    }

    .gallery-page-header h1 {
        font-size: 30px;
    }

    .gallery-page {
        padding: 50px 25px;
    }

    .gallery-page-grid {
        grid-template-columns: 1fr;
    }

    .gallery-page-item {
        height: 280px;
    }


    /* ADMIN */

    .admin-header {
        padding: 0 20px;
    }

    .admin-content {
        padding: 30px 20px;
    }

    .dashboard-hero {
        flex-direction: column;

        align-items: flex-start;
    }

    .dashboard-cards {
        grid-template-columns: 1fr;

        max-width: none;
    }

    .admin-menu-toggle {
        top: 20px;
        right: 20px;

        width: 55px;
        height: 55px;
    }

    .admin-menu-toggle span {
        width: 28px;
        height: 3px;
    }

    .admin-gallery-grid {
        grid-template-columns: 1fr;
    }

    .form-grid {
        grid-template-columns: 1fr;
    }

    .data-form-card,
    .gallery-admin-card {
        padding: 20px;
    }

}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media (max-width: 480px) {

    .hero-content h1 {
        font-size: 34px;
    }

    .hero-small {
        font-size: 11px;

        letter-spacing: 2px;
    }

    .stat-item h2 {
        font-size: 24px;
    }

    .stat-item p {
        font-size: 12px;
    }

    .gallery-item {
        height: 230px;
    }

    .login-container {
        padding: 35px 25px;
    }

    .login-heading h1 {
        font-size: 27px;
    }

    .admin-header h1 {
        font-size: 18px;
    }

}

    /* ==============================
                PENGUMUMAN
    =============================== *
        body.admin-page {
            background: #f5f8fc;
        }


        /* ==============================
           HEADER
        =============================== */

        .admin-header {
            background: #ffffff;
            padding: 20px 70px;
            display: flex;
            align-items: center;
            justify-content: space-between;
            border-bottom: 1px solid #e5eaf0;
        }

        .admin-header h1 {
            color: #0756a3;
            font-size: 24px;
            margin: 0 0 4px;
            font-weight: 700;
        }

        .admin-header p {
            margin: 0;
            color: #667085;
            font-size: 14px;
        }

        .admin-header .btn-login {
            text-decoration: none;
            background: #0756a3;
            color: white;
            padding: 11px 25px;
            border-radius: 7px;
            font-weight: 500;
        }

        .admin-header .btn-login:hover {
            background: #064986;
            color: white;
        }


        /* ==============================
           CONTENT
        =============================== */

        .admin-content {
            max-width: 1140px;
            margin: 0 auto;
            padding: 45px 20px 60px;
        }


        /* ==============================
           JUDUL
        =============================== */

        .page-title-row {
            margin-bottom: 30px;
        }

        .page-title-row h1 {
            color: #0756a3;
            font-size: 32px;
            font-weight: 700;
            margin-bottom: 7px;
        }

        .page-title-row p {
            color: #667085;
            margin: 0;
            font-size: 15px;
        }


        /* ==============================
           ALERT
        =============================== */

        .pengumuman-alert {
            border-radius: 8px;
            margin-bottom: 25px;
        }


        /* ==============================
           CARD
        =============================== */

        .data-form-card,
        .gallery-admin-card {
            background: #ffffff;
            border: 1px solid #e1e8f0;
            border-radius: 12px;
            padding: 30px;
            margin-bottom: 30px;
            box-shadow: 0 4px 15px rgba(20, 50, 80, 0.05);
        }

        .data-form-card h2,
        .gallery-admin-card h2 {
            color: #0756a3;
            font-size: 23px;
            font-weight: 700;
            margin-bottom: 25px;
        }


        /* ==============================
           FORM TAMBAH
        =============================== */

        .input-group {
            display: block;
            margin-bottom: 20px;
        }

        .input-group label {
            display: block;
            margin-bottom: 8px;
            color: #1d2939;
            font-size: 14px;
            font-weight: 600;
        }

        .pengumuman-input,
        .pengumuman-textarea {
            width: 100%;
            border: 1px solid #ccd6e0;
            border-radius: 7px;
            padding: 12px 14px;
            font-size: 14px;
            color: #344054;
            outline: none;
            background: #ffffff;
            transition: 0.2s ease;
        }

        .pengumuman-input {
            height: 46px;
        }

        .pengumuman-textarea {
            min-height: 150px;
            resize: vertical;
        }

        .pengumuman-input:focus,
        .pengumuman-textarea:focus {
            border-color: #0756a3;
            box-shadow: 0 0 0 3px rgba(7, 86, 163, 0.10);
        }


        /* ==============================
           BUTTON TAMBAH
        =============================== */

        .btn-tambah-pengumuman {
            background: #0756a3;
            border: none;
            color: white;
            padding: 11px 22px;
            border-radius: 7px;
            font-size: 14px;
            font-weight: 600;
            transition: 0.2s ease;
        }

        .btn-tambah-pengumuman:hover {
            background: #064986;
            color: white;
            transform: translateY(-1px);
        }


        /* ==============================
           HEADER DAFTAR
        =============================== */

        .data-heading {
            display: flex;
            justify-content: space-between;
            align-items: center;
            gap: 20px;
            margin-bottom: 20px;
        }

        .data-heading h2 {
            margin: 0;
        }

        .data-heading p {
            margin: 0;
            color: #667085;
            font-size: 14px;
        }


        /* ==============================
           TABLE
        =============================== */

        .table-wrap {
            width: 100%;
            overflow-x: auto;
        }

        .data-table {
            width: 100%;
            min-width: 800px;
            margin: 0;
            border-collapse: collapse;
        }

        .data-table thead th {
            background: #0756a3;
            color: #ffffff;
            font-size: 14px;
            font-weight: 600;
            padding: 14px 15px;
            border: none;
            white-space: nowrap;
        }

        .data-table tbody td {
            padding: 14px 15px;
            border-bottom: 1px solid #e8edf2;
            color: #344054;
            font-size: 14px;
            vertical-align: middle;
        }

        .data-table tbody tr:hover {
            background: #f8fbff;
        }

        .data-table th:first-child,
        .data-table td:first-child {
            width: 60px;
            text-align: center;
        }

        .data-table th:nth-child(4),
        .data-table td:nth-child(4) {
            white-space: nowrap;
        }


        /* ==============================
           ISI PENGUMUMAN
        =============================== */

       .isi-pengumuman {
    max-width: 360px;
    line-height: 1.6;

    display: -webkit-box;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    -webkit-box-orient: vertical;

    overflow: hidden;
}


        /* ==============================
           AKSI
        =============================== */

        .table-actions {
            display: flex;
            align-items: center;
            gap: 8px;
        }

        .table-actions form {
            margin: 0;
        }

        .btn-edit-pengumuman {
            background: #f0ad00;
            border: none;
            color: #ffffff;
            padding: 8px 14px;
            border-radius: 6px;
            font-size: 13px;
            font-weight: 600;
        }

        .btn-edit-pengumuman:hover {
            background: #d99a00;
            color: #ffffff;
        }

        .btn-hapus-pengumuman {
            background: #dc3545;
            border: none;
            color: #ffffff;
            padding: 8px 14px;
            border-radius: 6px;
            font-size: 13px;
            font-weight: 600;
        }

        .btn-hapus-pengumuman:hover {
            background: #bb2d3b;
            color: #ffffff;
        }


        /* ==============================
           EDIT PANEL
        =============================== */

        .edit-panel {
            background: #f8fafc;
            border: 1px solid #e1e8f0;
            border-radius: 10px;
            padding: 25px;
        }

        .edit-panel h2 {
            color: #0756a3;
            font-size: 21px;
            margin-bottom: 22px;
        }

        .edit-panel label {
            display: block;
            color: #344054;
            font-size: 14px;
            font-weight: 600;
            margin-bottom: 8px;
        }

        .edit-panel .form-control {
            border-color: #ccd6e0;
            border-radius: 7px;
            padding: 11px 13px;
        }

        .edit-panel .form-control:focus {
            border-color: #0756a3;
            box-shadow: 0 0 0 3px rgba(7, 86, 163, 0.10);
        }

        .btn-simpan {
            background: #198754;
            border: none;
            color: white;
            padding: 10px 20px;
            border-radius: 7px;
            font-weight: 600;
        }

        .btn-simpan:hover {
            background: #157347;
            color: white;
        }


        /* ==============================
           DATA KOSONG
        =============================== */

        .empty-pengumuman {
            text-align: center;
            padding: 40px 20px;
            color: #667085;
            background: #f8fafc;
            border-radius: 8px;
        }


        /* ==============================
           KEMBALI
        =============================== */

        .back-link {
            display: inline-block;
            color: #0756a3;
            text-decoration: none;
            font-size: 14px;
            font-weight: 600;
            margin-top: 5px;
        }

        .back-link:hover {
            text-decoration: underline;
        }


        /* ==============================
           RESPONSIVE
        =============================== */

        @media (max-width: 768px) {

            .admin-header {
                padding: 18px 20px;
            }

            .admin-header h1 {
                font-size: 20px;
            }

            .admin-header p {
                font-size: 12px;
            }

            .admin-header .btn-login {
                padding: 9px 15px;
                font-size: 13px;
            }

            .admin-content {
                padding: 30px 15px 50px;
            }

            .page-title-row h1 {
                font-size: 27px;
            }

            .data-form-card,
            .gallery-admin-card {
                padding: 20px;
            }

            .data-heading {
                align-items: flex-start;
                flex-direction: column;
                gap: 5px;
            }

            .table-actions {
                flex-direction: column;
                align-items: stretch;
            }

            .table-actions .btn-edit-pengumuman,
            .table-actions .btn-hapus-pengumuman {
                width: 100%;
            }

        }



        /* =====================================
                   LOGIN ADMIN
        ====================================== */

        .login-page {

            min-height: 100vh;

            background: #f4f7fb;

            display: flex;

            align-items: center;

            justify-content: center;

            padding: 30px 20px;

        }


        /* =====================================
           CONTAINER
        ====================================== */

        .login-container {

            width: 100%;

            max-width: 430px;

            background: #ffffff;

            border: 1px solid #dbe3ec;

            border-radius: 16px;

            padding: 40px;

            box-shadow:
                0 10px 35px
                rgba(0, 0, 0, 0.07);

        }


        /* =====================================
           LOGO
        ====================================== */

        .login-logo {

            display: flex;

            justify-content: center;

            margin-bottom: 22px;

        }


        .login-logo img {

            width: 90px;

            height: 90px;

            object-fit: contain;

        }


        /* =====================================
           HEADING
        ====================================== */

        .login-heading {

            text-align: center;

            margin-bottom: 28px;

        }


        .login-heading .section-label {

            margin: 0 0 7px;

            color: #1f5b92;

            font-size: 12px;

            font-weight: 700;

            letter-spacing: 1.5px;

        }


        .login-heading h1 {

            margin: 0 0 10px;

            color: #234f7b;

            font-size: 28px;

            font-weight: 700;

        }


        .login-heading p:last-child {

            margin: 0;

            color: #64748b;

            font-size: 14px;

            line-height: 1.6;

        }


        /* =====================================
           ERROR
        ====================================== */

        .login-error {

            background: #fee2e2;

            border: 1px solid #fecaca;

            color: #b91c1c;

            padding: 12px 15px;

            border-radius: 8px;

            margin-bottom: 22px;

            font-size: 14px;

        }


        /* =====================================
           FORM
        ====================================== */

        .login-form {

            display: flex;

            flex-direction: column;

            gap: 20px;

        }


        .login-form .form-group {

            display: flex;

            flex-direction: column;

        }


        .login-form label {

            color: #334155;

            font-size: 14px;

            font-weight: 600;

            margin-bottom: 8px;

        }


        .login-form input {

            width: 100%;

            box-sizing: border-box;

            border: 1px solid #cbd5e1;

            border-radius: 8px;

            padding: 12px 14px;

            font-size: 14px;

            outline: none;

            transition: 0.2s;

        }


        .login-form input:focus {

            border-color: #2563a5;

            box-shadow:
                0 0 0 3px
                rgba(37, 99, 165, 0.1);

        }


        .login-form input::placeholder {

            color: #94a3b8;

        }


        /* =====================================
           LUPA PASSWORD
        ====================================== */

        .forgot-password {

            display: block;

            text-align: right;

            margin-top: -10px;

            color: #1f5b92;

            text-decoration: none;

            font-size: 13px;

            font-weight: 600;

        }


        .forgot-password:hover {

            color: #164675;

            text-decoration: underline;

        }


        /* =====================================
           BUTTON LOGIN
        ====================================== */

        .login-button {

            width: 100%;

            border: none;

            background: #1f5b92;

            color: #ffffff;

            padding: 13px 20px;

            border-radius: 8px;

            font-size: 14px;

            font-weight: 600;

            cursor: pointer;

            transition: 0.2s;

        }


        .login-button:hover {

            background: #164675;

        }


        /* =====================================
           DAFTAR
        ====================================== */

        .register-link {

            display: block;

            text-align: center;

            margin-top: 20px;

            color: #1f5b92;

            text-decoration: none;

            font-size: 14px;

            font-weight: 600;

        }


        .register-link:hover {

            color: #164675;

            text-decoration: underline;

        }


        /* =====================================
           BACK HOME
        ====================================== */

        .back-home {

            display: block;

            text-align: center;

            margin-top: 14px;

            color: #64748b;

            text-decoration: none;

            font-size: 14px;

            font-weight: 500;

        }


        .back-home:hover {

            color: #1f5b92;

            text-decoration: underline;

        }


        /* =====================================
           RESPONSIVE
        ====================================== */

        @media (max-width: 500px) {

            .login-container {

                padding: 30px 22px;

                border-radius: 13px;

            }


            .login-logo img {

                width: 75px;

                height: 75px;

            }


            .login-heading h1 {

                font-size: 24px;

            }

        }  

        /* =====================================
   KOMENTAR PENGUNJUNG
===================================== */

.komentar-section {
    padding: 70px 8%;
    background: #f4f8fc;
}

.komentar-container {
    max-width: 900px;
    margin: auto;
}

.komentar-title {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 30px;
}

.komentar-title span {
    font-size: 35px;
}

.komentar-title h2 {
    margin: 0;
    color: #1f5b92;
}

.komentar-title p {
    margin: 5px 0 0;
    color: #777;
}

.komentar-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.komentar-input {
    margin-bottom: 20px;
}

.komentar-input label {
    display: block;
    margin-bottom: 8px;
    font-weight: 600;
    color: #234f7b;
}

.komentar-input input,
.komentar-input textarea {
    width: 100%;
    padding: 13px 15px;
    border: 1px solid #d5dce5;
    border-radius: 10px;
    font-family: inherit;
    outline: none;
    box-sizing: border-box;
}

.komentar-input input:focus,
.komentar-input textarea:focus {
    border-color: #1f5b92;
}

.btn-kirim-komentar {
    border: none;
    padding: 13px 25px;
    border-radius: 10px;
    background: #1f5b92;
    color: white;
    font-weight: 600;
    cursor: pointer;
}

.btn-kirim-komentar:hover {
    opacity: .9;
}

.komentar-success {
    padding: 12px 15px;
    margin-bottom: 20px;
    border-radius: 8px;
    background: #dff5e5;
    color: #26733d;
}

.komentar-error {
    padding: 12px 15px;
    margin-bottom: 20px;
    border-radius: 8px;
    background: #ffe1e1;
    color: #a33;
}

@media (max-width: 700px) {
    .komentar-row {
        grid-template-columns: 1fr;
        gap: 0;
    }
}

/* =====================================
   KOMENTAR PENGUNJUNG - ADMIN
===================================== */

.admin-comment-panel {
    background: white;
    border-radius: 18px;
    padding: 30px;
    margin-top: 30px;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.06);
}

.comment-panel-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    margin-bottom: 25px;
}

.comment-panel-header h2 {
    margin: 0;
    color: #1f5b92;
    font-size: 24px;
}

.comment-panel-header p {
    margin: 6px 0 0;
    color: #777;
}

.comment-total {
    background: #eaf3fb;
    color: #1f5b92;
    padding: 8px 15px;
    border-radius: 20px;
    font-weight: 600;
    white-space: nowrap;
}

.comment-list {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.comment-item {
    border: 1px solid #e5eaf0;
    border-radius: 14px;
    padding: 20px;
}

.comment-info h3 {
    margin: 0 0 4px;
    color: #234f7b;
    font-size: 17px;
}

.comment-info span {
    font-size: 13px;
    color: #888;
}

.comment-text {
    margin: 15px 0 10px;
    color: #444;
    line-height: 1.6;
}

.comment-date {
    color: #999;
}

.empty-comment {
    text-align: center;
    padding: 35px;
    color: #888;
    background: #f8fafc;
    border-radius: 12px;
}

@media (max-width: 700px) {

    .comment-panel-header {
        flex-direction: column;
        align-items: flex-start;
    }

}
.btn-hapus-komentar {
    margin-top: 15px;
    padding: 9px 16px;
    border: none;
    border-radius: 8px;
    background: #fee2e2;
    color: #b91c1c;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: 0.2s ease;
}

.btn-hapus-komentar:hover {
    background: #dc2626;
    color: white;
}