/* ==========================================

   JDIH DPRD PESISIR SELATAN - MAIN STYLES

   ========================================== */



/* ==================== RESET & BASE STYLES ==================== */

* {

    margin: 0;

    padding: 0;

    box-sizing: border-box;

}



html {

    scroll-behavior: smooth;

}



body {

    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;

    line-height: 1.6;

    color: #333;

    background-color: #f5f5f5;

}



.container {

    max-width: 1200px;

    margin: 0 auto;

    padding: 0 20px;

}



/* ==================== HEADER ==================== */

.header {

    position: sticky;

    top: 0;

    z-index: 1000;

    padding: 5px 0;

    color: black;



    /* Efek plastik / kaca transparan - sudah aktif sejak awal */

    background: rgba(30, 60, 114, 0.55); /* Lebih solid dari sebelumnya */

    backdrop-filter: blur(30px) saturate(200%);

    -webkit-backdrop-filter: blur(30px) saturate(200%); /* Untuk Safari */



    border-bottom: 1px solid rgba(255, 255, 255, 0.3);



    box-shadow:

        0 6px 18px rgba(0, 0, 0, 0.25),

        inset 0 1px 1px rgba(255, 255, 255, 0.3);

    transition: all 0.3s ease;

}



    .header-kategori {

        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

        color: white;

        padding: 40px;

        border-radius: 15px;

        margin-bottom: 40px;

        box-shadow: 0 10px 30px rgba(102, 126, 234, 0.3);

    }

    

    .header-content {

        display: flex;

        justify-content: space-between;

        align-items: center;

        flex-wrap: wrap;

        gap: 20px;

    }

    

    .header-info h1 {

        font-size: 32px;

        margin-bottom: 10px;

        font-weight: 700;

    }

    

    .header-info p {

        font-size: 16px;

        opacity: 0.95;

        margin: 0;

    }

    

    .header-stats {

        background: rgba(255,255,255,0.2);

        padding: 20px 30px;

        border-radius: 12px;

        text-align: center;

        backdrop-filter: blur(10px);

        min-width: 120px;

    }

    

    .header-stats .count {

        font-size: 36px;

        font-weight: bold;

        margin-bottom: 5px;

    }

    

    .header-stats .label {

        font-size: 14px;

        opacity: 0.9;

    }

    

/* Opsional: jika ingin efek lebih kuat saat di-scroll */

.header.scrolled {

    background: rgba(30, 60, 114, 0.7);

    backdrop-filter: blur(40px) saturate(250%);

    -webkit-backdrop-filter: blur(40px) saturate(250%);

}



.header-top {

    display: flex;

    justify-content: space-between;

    align-items: center;

}



.logo-container {

    display: flex;

    align-items: center;

    justify-content: center;

    padding: 5px;

}



.logo img {

    max-width: 250px;

    height: auto;

}



.logo {

    width: 160px;

    height: 50px;

    border-radius: 3%;

    display: flex;

    align-items: center;

    justify-content: center;

    font-weight: bold;

    color: #1e3c72;

    font-size: 24px;

    transition: transform 0.3s ease;

}



.logo:hover {

    transform: scale(1.05);

}



/* Mobile Menu Toggle */

.mobile-menu-toggle {

    display: none;

    flex-direction: column;

    gap: 4px;

    background: none;

    border: none;

    cursor: pointer;

    padding: 5px;

}



.mobile-menu-toggle span {

    width: 25px;

    height: 3px;

    background: white;

    border-radius: 3px;

    transition: all 0.3s ease;

}



.mobile-menu-toggle.active span:nth-child(1) {

    transform: rotate(45deg) translate(5px, 5px);

}



.mobile-menu-toggle.active span:nth-child(2) {

    opacity: 0;

}



.mobile-menu-toggle.active span:nth-child(3) {

    transform: rotate(-45deg) translate(7px, -6px);

}



/* ==================== NAVIGATION ==================== */

.navbar {

    flex: 1;

    display: flex;

    justify-content: flex-end;

}



.navbar > ul {

    list-style: none;

    display: flex;

    gap: 10px;

    align-items: center;

    position: relative;

    margin: 0;

    padding: 0;

}



.navbar > ul > li {

    position: relative;

}



.navbar li a {

    display: block;

    padding: 8px 12px;

    color: white;

    text-decoration: none;

    transition: all 0.3s ease;

    border-radius: 8px;

    font-weight: 500;

    cursor: pointer;

}



.navbar li a:hover,

.navbar li a.active {

    background: rgba(255,255,255,0.2);

}



/* ==================== DROPDOWN MENU (klik, bukan hover) ==================== */

.has-submenu {

    position: relative;

}



/* IMPORTANT: Submenu harus di luar flow dan display none */

.submenu {

    display: none !important; /* Force hide dengan !important */

    flex-direction: column;

    position: absolute;

    top: calc(100% + 5px); /* Keluar dari parent */

    left: 0;

    min-width: 220px;

    background: rgba(255, 255, 255, 0.95);

    border-radius: 10px;

    padding: 10px 0;

    box-shadow: 0 8px 25px rgba(0,0,0,0.2);

    backdrop-filter: blur(10px);

    z-index: 99999;

    margin: 0;

    list-style: none;

}



.submenu li {

    display: block;

    width: 100%;

    position: relative;

}



.submenu li a {

    color: #333 !important;

    padding: 10px 15px;

    display: block;

    font-weight: 500;

    border-radius: 6px;

    transition: all 0.3s ease;

    white-space: nowrap;

}



.submenu li a:hover {

    background: rgba(102, 126, 234, 0.1);

    color: #1e3c72 !important;

}



/* Saat submenu aktif (diklik) - tampilkan sebagai block vertikal */

.has-submenu.active > .submenu {

    display: flex !important; /* Force show dengan flex untuk vertical layout */

    flex-direction: column;

    animation: dropdownFadeIn 0.3s ease;

}



@keyframes dropdownFadeIn {

    from {

        opacity: 0;

        transform: translateY(-10px);

    }

    to {

        opacity: 1;

        transform: translateY(0);

    }

}



/* Panah dropdown ikut berputar */

.dropdown-arrow {

    font-size: 0.7em;

    margin-left: 6px;

    transition: transform 0.3s ease;

    display: inline-block;

}



.has-submenu.active .dropdown-arrow {

    transform: rotate(180deg);

}





/* ==================== RESPONSIVE ==================== */

@media (max-width: 768px) {

    .navbar ul {

        flex-direction: column;

        align-items: flex-start;

        gap: 5px;

    }



    .submenu {

        position: static;

        width: 100%;

        box-shadow: none;

        background: rgba(255,255,255,0.1);

        backdrop-filter: none;

    }



    .submenu li a {

        color: white !important;

        padding-left: 25px;

    }

}



.btn-login {

    background: rgba(255,255,255,0.9) !important;

    color: #1e3c72 !important;

    font-weight: 600;

}



.btn-login:hover {

    background: white !important;

    transform: translateY(-2px);

    box-shadow: 0 4px 8px rgba(0,0,0,0.2);

}



/* ==================== HERO SECTION ==================== */

/* Pastikan hero tidak ketimpa header sticky */





/* Biar background hero tetap responsif */

.hero {

    background: url('../assets/images/bgjdih.jpg') center center / cover no-repeat;

    background-attachment: scroll; /* ubah dari fixed agar responsif di mobile */

    color: white;

    padding: 100px 100px;

    text-align: center;

    position: relative;

    overflow: hidden;

}



/* Overlay tetap dipertahankan */

.hero::before {

    content: '';

    position: absolute;

    top: 0;

    left: 0;

    right: 0;

    bottom: 0;

    background: url('../assets/images/bgjdih.jpg') center center / cover no-repeat;

    opacity: 0.15;

    z-index: 0;

}



.hero > * {

    position: relative;

    z-index: 1;

}



.hero h2 {

    font-size: 42px;

    margin-bottom: 15px;

    text-shadow: 0 2px 10px rgba(0,0,0,0.3);

    font-weight: 700;

}



.hero p {

    font-size: 18px;

    opacity: 0.95;

    margin-bottom: 40px;

    max-width: 800px;

    margin-left: auto;

    margin-right: auto;

    text-shadow: 0 1px 5px rgba(0,0,0,0.2);

}



/* ==================== HERO SEARCH ==================== */

.hero-search {

    max-width: 750px;

    margin: 0 auto;

    padding-top: 120px;

}



.search-box {

    background: white;

    border-radius: 15px;

    margin-top: 200px;

    padding: 20px;

    box-shadow: 0 20px 60px rgba(0,0,0,0.3);

}



.search-input-group {

    display: flex;

    align-items: center;

    background: #f8f9fa;

    border-radius: 12px;

    padding: 5px;

    margin-bottom: 10px;

    border: 2px solid transparent;

    transition: all 0.3s;

}



.search-input-group:focus-within {

    border-color: #667eea;

    box-shadow: 0 0 0 4px rgba(102, 126, 234, 0.1);

}



.search-icon {

    font-size: 24px;

    padding: 0 15px;

    color: #666;

}



.search-input {

    flex: 1;

    border: none;

    background: transparent;

    padding: 15px 10px;

    font-size: 16px;

    color: #333;

    outline: none;

}



.search-input::placeholder {

    color: #999;

}



.search-button {

    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

    color: white;

    border: none;

    padding: 15px 35px;

    border-radius: 10px;

    font-size: 16px;

    font-weight: 600;

    cursor: pointer;

    transition: all 0.3s;

    white-space: nowrap;

}



.search-button:hover {

    transform: translateY(-2px);

    box-shadow: 0 8px 20px rgba(102, 126, 234, 0.4);

}



.search-filters {

    display: flex;

    gap: 15px;

    flex-wrap: wrap;

}



.filter-select {

    flex: 1;

    padding: 12px 15px;

    border: 2px solid #e0e0e0;

    border-radius: 10px;

    font-size: 14px;

    color: #333;

    background: white;

    cursor: pointer;

    transition: all 0.3s;

}



.filter-select:focus {

    outline: none;

    border-color: #667eea;

    box-shadow: 0 0 0 4px rgba(102, 126, 234, 0.1);

}



/* ==================== RESPONSIVE ==================== */

@media (max-width: 992px) {

    .hero {

        padding: 80px 40px;

        background-attachment: scroll;

    }



    .search-box {

        margin-top: 150px;

        margin-left: 0;

    }

}



@media (max-width: 768px) {

    .hero {

        padding: 70px 25px;

        background-size: cover;

        background-position: top center;

    }



    .hero h2 {

        font-size: 32px;

    }



    .hero p {

        font-size: 16px;

        max-width: 90%;

    }



    .search-box {

        margin-top: 120px;

        padding: 15px;

    }



    .search-filters {

        flex-direction: column;

    }

}



@media (max-width: 480px) {

    .hero {

        padding: 60px 15px;

        background-size: contain; /* agar gambar tidak terpotong di layar kecil */

    }



    .search-button {

        width: 100%;

        padding: 14px;

    }

}







/* ==================== MAIN CONTENT ==================== */

.main-content {

    padding: 60px 0;

}



.section-title {

    font-size: 32px;

    margin-bottom: 35px;

    color: #1e3c72;

    border-left: 5px solid #2a5298;

    padding-left: 20px;

    position: relative;

    font-weight: 700;

}



.section-title::after {

    content: '';

    position: absolute;

    bottom: -10px;

    left: 20px;

    width: 60px;

    height: 3px;

    background: linear-gradient(90deg, #2a5298, transparent);

}



/* ==================== KATEGORI CARDS ==================== */

.main-kategori-grid {

    display: grid;

    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));

    gap: 30px;

    margin-bottom: 60px;

}



.main-kategori-card {

    border-radius: 15px;

    padding: 10px 10px;

    text-align: center;

    min-height: 250px;

    display: flex;

    flex-direction: column;

    justify-content: space-between;

    color: white;

    transition: all 0.4s ease;

    box-shadow: 0 10px 30px rgba(0,0,0,0.15);

    position: relative;

    overflow: hidden;

}



.main-kategori-card::before {

    content: '';

    position: absolute;

    top: 0;

    left: 0;

    right: 0;

    bottom: 0;

    background: rgba(255, 255, 255, 0.1);

    opacity: 0;

    transition: opacity 0.3s ease;

}



.main-kategori-card:hover::before {

    opacity: 1;

}



.main-kategori-card:hover {

    transform: translateY(-10px);

    box-shadow: 0 15px 40px rgba(0,0,0,0.2);

}



.kategori-icon {

    font-size: 56px;

    margin-bottom: 15px;

    display: block;

    filter: drop-shadow(0 2px 4px rgba(0,0,0,0.2));

}



.main-kategori-card h3 {

    font-size: 20px;

    margin-bottom: 10px;

    font-weight: 600;

    color: white;

}



.kategori-desc {

    font-size: 13px;

    margin-bottom: 15px;

    line-height: 1.5;

    opacity: 0.95;

}



.kategori-count {

    display: flex;

    flex-direction: column;

    align-items: center;

    gap: 5px;

    margin: 20px 0;

    padding: 20px 0;

    border-top: 1px solid rgba(255,255,255,0.3);

    border-bottom: 1px solid rgba(255,255,255,0.3);

}



.count-number {

    font-size: 40px;

    font-weight: 700;

    line-height: 1;

}



.count-label {

    font-size: 14px;

    opacity: 0.9;

}



.btn-kategori {

    display: inline-block;

    background: rgba(255,255,255,0.2);

    border: 1px solid rgba(255,255,255,0.3);

    color: white;

    text-decoration: none;

    padding: 10px 20px;

    border-radius: 8px;

    font-size: 14px;

    font-weight: 500;

    transition: all 0.3s;

    backdrop-filter: blur(10px);

}



.btn-kategori:hover {

    background: rgba(255,255,255,0.3);

    border-color: rgba(255,255,255,0.5);

    transform: translateY(-2px);

}



.dokumen-statistik-section .section-container {

    display: flex;

    gap: 30px;

    align-items: flex-start;

}



/* Kiri */

.dokumen-terbaru {

    flex: 0 0 700px;

    background: #fff;

    border-radius: 12px;

    padding: 20px;

    box-shadow: 0 4px 15px rgba(0,0,0,0.08);

    overflow-x: auto;

}



/* Kanan */

.statistik {

    flex: 1;

    background: #fff;

    border-radius: 12px;

    padding: 25px;

    box-shadow: 0 4px 15px rgba(0,0,0,0.08);

}



/* Kanan */

.statistik_line {

    flex: 0 0 1200px;

    background: #fff;

    border-radius: 12px;

    padding: 10px;

    width: 100%;

    box-shadow: 0 4px 15px rgba(0,0,0,0.08);

}

.statistik-card {

    width: 100%;

    height: 300px;

}



/* ==================== TABEL DOKUMEN ==================== */

.tabel-container {

    width: 100%;

    overflow-x: auto;

}



.tabel-dokumen-list {

    width: 100%;

    border-collapse: collapse;

    font-size: 14px;

    margin-top: 15px;

}



.tabel-dokumen-list thead {

    background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);

    color: white;

}



.tabel-dokumen-list th,

.tabel-dokumen-list td {

    padding: 10px 12px;

    border-bottom: 1px solid #eee;

    text-align: left;

}



.tabel-dokumen-list th {

    font-weight: 600;

    white-space: nowrap;

}



.tabel-dokumen-list tr:hover {

    background: #E8CAFC;

}



.tabel-dokumen-list td.text-center {

    text-align: center;

}



.tabel-dokumen {

    width: 100%;

    border-collapse: collapse;

    font-size: 14px;

    margin-top: 15px;

}



.tabel-dokumen thead {

    background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);

    color: white;

}



.tabel-dokumen th,

.tabel-dokumen td {

    padding: 10px 12px;

    border-bottom: 1px solid #eee;

    text-align: left;

}



.tabel-dokumen th {

    font-weight: 600;

    white-space: nowrap;

}



.tabel-dokumen tr:hover {

    background: #E8CAFC;

}



.tabel-dokumen td.text-center {

    text-align: center;

}



/* Tombol kecil */

.btn-group {

    display: flex;

    justify-content: center;

    gap: 6px;

}



.btn {

    display: inline-block;

    padding: 5px 10px;

    border-radius: 6px;

    font-size: 12px;

    text-decoration: none;

    transition: 0.2s;

    color: white;

}



.btn-sm {

    font-size: 12px;

}



.btn-primary {

    background-color: #1e3c72;

}



.btn-success {

    background-color: #2a5298;

}



.btn:hover {

    opacity: 0.8;

}



/* ==================== RESPONSIF ==================== */

@media (max-width: 992px) {

    .dokumen-statistik-section .section-container {

        flex-direction: column;

    }



    .dokumen-terbaru, .statistik {

        flex: 1 1 100%;

    }

}



/* ==================== BADGES ==================== */

.badge {

    display: inline-block;

    padding: 6px 14px;

    border-radius: 20px;

    font-size: 12px;

    font-weight: 500;

}



.badge-primary {

    background: #e3f2fd;

    color: #1976d2;

}



.badge-success {

    background: #e8f5e9;

    color: #388e3c;

}



/* ==================== BUTTONS ==================== */

.btn {

    display: inline-block;

    padding: 10px 20px;

    border-radius: 8px;

    text-decoration: none;

    font-size: 14px;

    font-weight: 500;

    transition: all 0.3s;

    cursor: pointer;

    border: none;

    position: relative;

    overflow: hidden;

}



.btn::before {

    content: '';

    position: absolute;

    top: 50%;

    left: 50%;

    width: 0;

    height: 0;

    border-radius: 50%;

    background: rgba(255, 255, 255, 0.3);

    transform: translate(-50%, -50%);

    transition: width 0.6s, height 0.6s;

}



.btn:hover::before {

    width: 300px;

    height: 300px;

}



.btn > * {

    position: relative;

    z-index: 1;

}



.btn-primary {

    background: #2a5298;

    color: white;

}



.btn-primary:hover {

    background: #1e3c72;

    transform: translateY(-2px);

    box-shadow: 0 5px 15px rgba(42, 82, 152, 0.3);

}



.btn-success {

    background: #4caf50;

    color: white;

}



.btn-success:hover {

    background: #388e3c;

    transform: translateY(-2px);

    box-shadow: 0 5px 15px rgba(76, 175, 80, 0.3);

}



.btn-danger {

    background: #f44336;

    color: white;

}



.btn-danger:hover {

    background: #d32f2f;

    transform: translateY(-2px);

    box-shadow: 0 5px 15px rgba(244, 67, 54, 0.3);

}



.btn-outline {

    background: transparent;

    border: 2px solid #2a5298;

    color: #2a5298;

}



.btn-outline:hover {

    background: #2a5298;

    color: white;

    transform: translateY(-2px);

}



.btn-sm {

    padding: 8px 16px;

    font-size: 13px;

}



/* ==================== INFO BOX ==================== */

.info-box {

    background: white;

    padding: 35px;

    border-radius: 15px;

    box-shadow: 0 4px 15px rgba(0,0,0,0.08);

    text-align: center;

    transition: all 0.3s ease;

}



.info-box:hover {

    transform: translateY(-8px);

    box-shadow: 0 10px 30px rgba(0,0,0,0.15);

}



.info-icon {

    font-size: 56px;

    margin-bottom: 20px;

    filter: drop-shadow(0 2px 4px rgba(0,0,0,0.1));

}



.info-box h3 {

    color: #1e3c72;

    font-size: 22px;

    margin-bottom: 15px;

    font-weight: 600;

}



.info-box p {

    color: #666;

    line-height: 1.8;

    font-size: 15px;

}



/* ==================== STATISTICS ==================== */

.stats-grid {

    display: grid;

    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));

    gap: 25px;

    margin-bottom: 40px;

}



.stat-card {

    background: white;

    padding: 35px;

    border-radius: 15px;

    box-shadow: 0 10px 30px rgba(0,0,0,0.1);

    text-align: center;

    transition: all 0.3s ease;

}



.stat-card:hover {

    transform: translateY(-10px);

    box-shadow: 0 15px 40px rgba(0,0,0,0.15);

}



.stat-card h3 {

    font-size: 48px;

    color: #2a5298;

    margin-bottom: 10px;

    font-weight: 700;

}



.stat-card p {

    color: #666;

    font-size: 16px;

    font-weight: 500;

}



/* ==================== FOOTER ==================== */

.footer {

    background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);

    color: white;

    padding: 60px 0 0;

    position: relative;

    z-index: 1;

}



.footer-content {

    display: grid;

    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));

    gap: 40px;

    margin-bottom: 40px;

}



.footer-section h3 {

    font-size: 18px;

    margin-bottom: 20px;

    font-weight: 600;

}



.footer-section p {

    line-height: 1.8;

    opacity: 0.9;

    font-size: 14px;

}



.social-links {

    display: flex;

    gap: 12px;

    margin-top: 15px;

}



.social-links a {

    width: 40px;

    height: 40px;

    background: rgba(255, 255, 255, 0.1);

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius: 50%;

    text-decoration: none;

    font-size: 20px;

    transition: all 0.3s ease;

}



.social-links a:hover {

    background: rgba(255, 255, 255, 0.2);

    transform: translateY(-3px);

}



.contact-list, .links-list {

    list-style: none;

    padding: 0;

}



.contact-list li {

    display: flex;

    align-items: flex-start;

    gap: 10px;

    margin-bottom: 12px;

    opacity: 0.9;

    font-size: 14px;

}



.contact-list .icon {

    font-size: 18px;

    margin-top: 2px;

}



.contact-list a, .links-list a {

    color: white;

    text-decoration: none;

    transition: all 0.3s ease;

}



.contact-list a:hover, .links-list a:hover {

    opacity: 0.8;

    text-decoration: underline;

}



.links-list li {

    margin-bottom: 10px;

    font-size: 14px;

}



.links-list li::before {

    content: "▸ ";

    margin-right: 8px;

}



.footer-stats {

    display: grid;

    grid-template-columns: repeat(auto-fit, minmax(80px, 1fr));

    gap: 15px;

}



.stat-item {

    text-align: center;

    padding: 15px;

    background: rgba(255, 255, 255, 0.1);

    border-radius: 10px;

    transition: all 0.3s ease;

}



.stat-item:hover {

    background: rgba(255, 255, 255, 0.15);

}



.stat-number {

    font-size: 28px;

    font-weight: bold;

    margin-bottom: 5px;

}



.stat-label {

    font-size: 12px;

    opacity: 0.8;

}



.footer-divider {

    height: 1px;

    background: rgba(255, 255, 255, 0.2);

    margin: 30px 0;

}



.footer-bottom {

    display: flex;

    justify-content: space-between;

    align-items: center;

    padding: 25px 0;

    flex-wrap: wrap;

    gap: 20px;

}



.copyright p {

    margin: 0;

    opacity: 0.9;

    font-size: 14px;

}



.sub-copyright {

    font-size: 13px;

    opacity: 0.7;

    margin-top: 5px !important;

}



.footer-links {

    display: flex;

    gap: 15px;

    align-items: center;

}



.footer-links a {

    color: white;

    text-decoration: none;

    font-size: 14px;

    transition: all 0.3s ease;

}



.footer-links a:hover {

    opacity: 0.8;

}



.footer-links span {

    opacity: 0.5;

}



/* ==================== FLOATING WIDGETS ==================== */

.floating-widgets-right {

    position: fixed;

    right: 10px;

    top: 30%;

    transform: translateY(-50%);

    display: flex;

    flex-direction: column;

    gap: 15px;

    z-index: 9997;

}



.floating-widget {

    width: 40px;

    height: 40px;

    border-radius: 50%;

    display: flex;

    align-items: center;

    justify-content: center;

    text-decoration: none;

    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);

    transition: all 0.3s ease;

    cursor: pointer;

    border: none;

    position: relative;

}



/* WhatsApp Widget */

.whatsapp-widget {

    background: #25D366;

    color: white;

    animation: pulseWhatsApp 2s infinite;

}



.whatsapp-widget:hover {

    background: #128C7E;

    transform: scale(1.15);

    box-shadow: 0 6px 20px rgba(37, 211, 102, 0.5);

    animation: none;

}



.whatsapp-widget svg {

    width: 35px;

    height: 35px;

    pointer-events: none;

}



/* Scroll to Top Widget */

.scroll-widget {

    background: #146FF8;

    color: white;

    opacity: 0;

    visibility: hidden;

    transition: all 0.3s ease;

}



.scroll-widget.visible {

    opacity: 1;

    visibility: visible;

}



.scroll-widget:hover {

    background: #0d5dd7;

    transform: scale(1.15);

    box-shadow: 0 6px 20px rgba(20, 111, 248, 0.5);

}



.scroll-widget svg {

    width: 24px;

    height: 24px;

    pointer-events: none;

}



/* Pulse Animation */

@keyframes pulseWhatsApp {

    0% {

        box-shadow: 0 4px 12px rgba(37, 211, 102, 0.4);

    }

    50% {

        box-shadow: 0 4px 20px rgba(37, 211, 102, 0.7);

    }

    100% {

        box-shadow: 0 4px 12px rgba(37, 211, 102, 0.4);

    }

}



/* Tooltip */

.floating-widget::before {

    content: attr(title);

    position: absolute;

    right: calc(100% + 15px);

    top: 50%;

    transform: translateY(-50%);

    background: #333;

    color: white;

    padding: 8px 15px;

    border-radius: 6px;

    white-space: nowrap;

    opacity: 0;

    pointer-events: none;

    transition: opacity 0.3s;

    font-size: 14px;

    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;

    z-index: 1;

}



.floating-widget::after {

    content: '';

    position: absolute;

    right: calc(100% + 6px);

    top: 50%;

    transform: translateY(-50%);

    border: 6px solid transparent;

    border-left-color: #333;

    opacity: 0;

    pointer-events: none;

    transition: opacity 0.3s;

    z-index: 1;

}



.floating-widget:hover::before,

.floating-widget:hover::after {

    opacity: 1;

}



/* ==================== ACCESSIBILITY WIDGET ==================== */

.accessibility-widget {

    position: fixed;

    right: 10px;

    top: 30%;

    transform: translateY(calc(-50% - 85px));

    z-index: 9998;

}



.accessibility-trigger {

    width: 40px;

    height: 40px;

    border-radius: 50%;

    background: #56078F;

    color: white;

    border: none;

    cursor: pointer;

    box-shadow: 0 4px 12px rgba(20, 111, 248, 0.4);

    transition: all 0.3s ease;

    display: flex;

    align-items: center;

    justify-content: center;

    position: relative;

}



.accessibility-trigger:hover {

    background: #0d5dd7;

    transform: scale(1.15);

    box-shadow: 0 6px 20px rgba(20, 111, 248, 0.6);

}



.accessibility-trigger svg {

    width: 24px;

    height: 24px;

    pointer-events: none;

}



.accessibility-menu {

    position: absolute;

    bottom: 4;

    right: calc(100% + 15px);

    width: 320px;

    background: white;

    border-radius: 12px;

    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);

    overflow: hidden;

    z-index: 9999;

}



.accessibility-header {

    background: #146FF8;

    color: white;

    padding: 10px 10px;

    display: flex;

    justify-content: space-between;

    align-items: center;

}



.accessibility-header h3 {

    margin: 0;

    font-size: 16px;

    font-weight: 600;

}



.close-btn {

    background: transparent;

    border: none;

    color: white;

    font-size: 28px;

    cursor: pointer;

    line-height: 1;

    padding: 0;

    width: 30px;

    height: 30px;

    display: flex;

    align-items: center;

    justify-content: center;

}



.close-btn:hover {

    opacity: 0.8;

}



.accessibility-content {

    padding: 10px;

    max-height: 400px;

    overflow-y: auto;

}



.accessibility-content::-webkit-scrollbar {

    width: 8px;

}



.accessibility-content::-webkit-scrollbar-track {

    background: #f1f1f1;

    border-radius: 10px;

}



.accessibility-content::-webkit-scrollbar-thumb {

    background: #146FF8;

    border-radius: 10px;

}



.accessibility-content::-webkit-scrollbar-thumb:hover {

    background: #0d5dd7;

}



.accessibility-btn {

    width: 100%;

    padding: 12px 15px;

    margin-bottom: 8px;

    background: #f5f5f5;

    border: 2px solid transparent;

    border-radius: 8px;

    cursor: pointer;

    display: flex;

    align-items: center;

    gap: 12px;

    font-size: 14px;

    transition: all 0.2s ease;

    text-align: left;

}



.accessibility-btn:hover {

    background: #e8f2ff;

    border-color: #146FF8;

}



.accessibility-btn .icon {

    font-size: 20px;

    width: 30px;

    text-align: center;

    flex-shrink: 0;

}



.accessibility-btn.reset-btn {

    background: #ff4444;

    color: white;

    font-weight: 600;

    margin-top: 10px;

}



.accessibility-btn.reset-btn:hover {

    background: #cc0000;

    border-color: #cc0000;

}



/* BREADCRUMB */



    .breadcrumb-nav {

        margin-bottom: 30px;

        font-size: 14px;

        color: #666;

    }

    

    .breadcrumb-nav a {

        color: #2a5298;

        text-decoration: none;

        transition: color 0.3s;

    }

    

    .breadcrumb-nav a:hover {

        color: #667eea;

        text-decoration: underline;

    }

    

    .breadcrumb-nav .current {

        color: #333;

        font-weight: 600;

    }





/* Accessibility Effects */

body.accessibility-grayscale {

    filter: grayscale(100%);

}



body.accessibility-high-contrast {

    filter: contrast(150%);

}



body.accessibility-negative-contrast {

    filter: invert(100%);

}



body.accessibility-light-background * {

    background-color: #ffffff !important;

    color: #000000 !important;

}



body.accessibility-links-underline a {

    text-decoration: underline !important;

}



body.accessibility-readable-font * {

    font-family: Arial, sans-serif !important;

}



/* ==================== ANIMATIONS ==================== */

@keyframes fadeInUp {

    from {

        opacity: 0;

        transform: translateY(30px);

    }

    to {

        opacity: 1;

        transform: translateY(0);

    }

}



@keyframes spin {

    to { 

        transform: rotate(360deg); 

    }

}



/* ==================== ALERT MESSAGES ==================== */

.alert {

    padding: 15px 20px;

    border-radius: 10px;

    margin-bottom: 20px;

    display: flex;

    align-items: center;

    gap: 10px;

}



.alert-success {

    background: #d4edda;

    color: #155724;

    border: 1px solid #c3e6cb;

}



.alert-danger {

    background: #f8d7da;

    color: #721c24;

    border: 1px solid #f5c6cb;

}



.alert-info {

    background: #d1ecf1;

    color: #0c5460;

    border: 1px solid #bee5eb;

}







.download-section {

    margin-top: 30px;

    padding-top: 30px;

    border-top: 2px solid #eee;

    text-align: center;

}



.btn-download {

    display: inline-flex;

    align-items: center;

    gap: 10px;

    padding: 15px 30px;

    font-size: 16px;

}



/* ==================== SIDEBAR ==================== */

.sidebar-section {

    margin-bottom: 30px;

}



.sidebar-section h3 {

    font-size: 18px;

    color: #1e3c72;

    margin-bottom: 15px;

    padding-bottom: 10px;

    border-bottom: 2px solid #eee;

    font-weight: 600;

}



.related-list {

    list-style: none;

}



.related-list li {

    padding: 12px 0;

    border-bottom: 1px solid #f0f0f0;

}



.related-list li:last-child {

    border-bottom: none;

}



.related-list a {

    color: #333;

    text-decoration: none;

    font-size: 14px;

    display: block;

    transition: color 0.3s;

    line-height: 1.5;

}



.related-list a:hover {

    color: #2a5298;

}



/* ==================== PAGINATION ==================== */

.pagination {

    display: flex;

    justify-content: center;

    gap: 10px;

    margin-top: 40px;

}



.pagination a,

.pagination span {

    padding: 10px 15px;

    background: white;

    border: 1px solid #ddd;

    border-radius: 8px;

    color: #333;

    text-decoration: none;

    transition: all 0.3s;

}



.pagination a:hover {

    background: #2a5298;

    color: white;

    border-color: #2a5298;

}



.pagination .active {

    background: #2a5298;

    color: white;

    border-color: #2a5298;

}



/* ==================== SEARCH & FILTER ==================== */

.search-filter {

    background: white;

    padding: 25px;

    border-radius: 12px;

    box-shadow: 0 2px 10px rgba(0,0,0,0.08);

    margin-bottom: 30px;

}



.search-form {

    display: grid;

    grid-template-columns: 1fr 1fr 1fr auto;

    gap: 15px;

    align-items: end;

}



.form-group {

    display: flex;

    flex-direction: column;

}



.form-group label {

    margin-bottom: 8px;

    font-weight: 500;

    color: #333;

    font-size: 14px;

}



.form-control {

    padding: 12px 15px;

    border: 2px solid #e0e0e0;

    border-radius: 8px;

    font-size: 14px;

    transition: all 0.3s;

}



.form-control:focus {

    outline: none;

    border-color: #2a5298;

    box-shadow: 0 0 0 4px rgba(42, 82, 152, 0.1);

}



select.form-control {

    cursor: pointer;

}



/* ==================== UTILITIES ==================== */

.gradient-text {

    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

    -webkit-background-clip: text;

    -webkit-text-fill-color: transparent;

    background-clip: text;

}



.text-center {

    text-align: center;

}



.mb-0 { margin-bottom: 0; }

.mb-1 { margin-bottom: 10px; }

.mb-2 { margin-bottom: 20px; }

.mb-3 { margin-bottom: 30px; }

.mb-4 { margin-bottom: 40px; }

.mb-5 { margin-bottom: 60px; }



.mt-0 { margin-top: 0; }

.mt-1 { margin-top: 10px; }

.mt-2 { margin-top: 20px; }

.mt-3 { margin-top: 30px; }

.mt-4 { margin-top: 40px; }

.mt-5 { margin-top: 60px; }



.p-0 { padding: 0; }

.p-1 { padding: 10px; }

.p-2 { padding: 20px; }

.p-3 { padding: 30px; }

.p-4 { padding: 40px; }



/* ==================== LOADING STATES ==================== */

.loading {

    display: inline-block;

    width: 20px;

    height: 20px;

    border: 3px solid rgba(255,255,255,.3);

    border-radius: 50%;

    border-top-color: #fff;

    animation: spin 1s ease-in-out infinite;

}



/* ==================== ACCESSIBILITY ENHANCEMENTS ==================== */

.sr-only {

    position: absolute;

    width: 1px;

    height: 1px;

    padding: 0;

    margin: -1px;

    overflow: hidden;

    clip: rect(0, 0, 0, 0);

    white-space: nowrap;

    border-width: 0;

}



*:focus-visible {

    outline: 2px solid #2a5298;

    outline-offset: 2px;

}



button:focus-visible,

a:focus-visible {

    outline: 2px solid #2a5298;

    outline-offset: 2px;

}



/* ==================== CUSTOM SCROLLBAR ==================== */

::-webkit-scrollbar {

    width: 12px;

}



::-webkit-scrollbar-track {

    background: #f1f1f1;

}



::-webkit-scrollbar-thumb {

    background: #2a5298;

    border-radius: 6px;

}



::-webkit-scrollbar-thumb:hover {

    background: #1e3c72;

}



/* ==================== SELECTION ==================== */

::selection {

    background: #2a5298;

    color: white;

}



::-moz-selection {

    background: #2a5298;

    color: white;

}



/* ==================== RESPONSIVE DESIGN ==================== */

@media (max-width: 992px) {

    .main-kategori-grid {

        grid-template-columns: repeat(2, 1fr);

    }

    

    .detail-container {

        grid-template-columns: 1fr;

    }

    

    .floating-widgets-right {

        right: 20px;

    }

    

    .accessibility-widget {

        right: 20px;

    }

}



@media (max-width: 768px) {

    /* Header Mobile */

    .mobile-menu-toggle {

        display: flex;

    }

    

    .logo-text {

        display: none;

    }

    

    .logo {

        width: 50px;

        height: 50px;

        font-size: 20px;

    }

    

    .navbar {

        position: fixed;

        top: 80px;

        left: 0;

        right: 0;

        background: white;

        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);

        max-height: 0;

        overflow: hidden;

        transition: max-height 0.3s ease;

        z-index: 999;

    }

    

    .navbar.active {

        max-height: 500px;

    }

    

    .navbar ul {

        flex-direction: column;

        padding: 20px;

    }

    

    .navbar li {

        width: 100%;

        text-align: left;

    }

    

    .navbar a {

        display: block;

        padding: 12px 15px;

        color: #333 !important;

    }

    

    .navbar a:hover,

    .navbar a.active {

        background: #f5f5f5 !important;

        color: #2a5298 !important;

    }

    

    .btn-login {

        background: #2a5298 !important;

        color: white !important;

    }

    

    /* Hero Mobile */

    .hero {

        padding: 60px 0;

    }

    

    .hero h2 {

        font-size: 28px;

    }

    

    .hero p {

        font-size: 16px;

    }

    

    .search-box {

        padding: 20px;

    }

    

    .search-input-group {

        flex-direction: column;

        gap: 10px;

    }

    

    .search-button {

        width: 100%;

    }

    

    .search-filters {

        flex-direction: column;

        gap: 10px;

    }

    

    /* Content Mobile */

    .main-content {

        padding: 40px 0;

    }

    

    .section-title {

        font-size: 24px;

    }

    

    .cards-grid {

        grid-template-columns: 1fr;

    }

    

    .main-kategori-grid {

        grid-template-columns: 1fr;

    }

    

    .kategori-icon {

        font-size: 48px;

    }

    

    .main-kategori-card h3 {

        font-size: 18px;

    }

    

    .count-number {

        font-size: 32px;

    }

    

    .stats-grid {

        grid-template-columns: 1fr;

    }

    

    .search-form {

        grid-template-columns: 1fr;

    }

    

    /* Footer Mobile */

    .footer {

        padding: 40px 0 0;

    }

    

    .footer-content {

        grid-template-columns: 1fr;

        gap: 30px;

    }

    

    .footer-bottom {

        flex-direction: column;

        text-align: center;

    }

    

    .footer-section h3 {

        font-size: 16px;

    }

    

    .stat-number {

        font-size: 24px;

    }

    

    /* Floating Widgets Mobile */

    .floating-widgets-right {

        right: 15px;

        bottom: 20px;

        top: auto;

        transform: none;

        gap: 12px;

    }

    

    .floating-widget {

        width: 55px;

        height: 55px;

    }

    

    .whatsapp-widget svg {

        width: 30px;

        height: 30px;

    }

    

    .scroll-widget svg {

        width: 20px;

        height: 20px;

    }

    

    .floating-widget::before,

    .floating-widget::after {

        display: none;

    }

    

    /* Accessibility Widget Mobile */

    .accessibility-widget {

        right: 15px;

        bottom: 160px;

        top: auto;

        transform: none;

    }

    

    .accessibility-trigger {

        width: 55px;

        height: 55px;

    }

    

    .accessibility-trigger svg {

        width: 22px;

        height: 22px;

    }

    

    .accessibility-menu {

        width: 280px;

        right: 0;

        bottom: 70px;

        left: auto;

    }

    

    body.menu-open {

        overflow: hidden;

    }

}



@media (max-width: 576px) {

    .container {

        padding: 0 15px;

    }

    

    .hero h2 {

        font-size: 24px;

    }

    

    .hero p {

        font-size: 14px;

    }

    

    .section-title {

        font-size: 20px;

    }

    

    .card {

        padding: 20px;

    }

    

    .card-title {

        font-size: 16px;

    }

    

    .info-icon {

        font-size: 42px;

    }

    

    .info-box h3 {

        font-size: 18px;

    }

    

    .info-box p {

        font-size: 14px;

    }

    

    .btn {

        padding: 8px 16px;

        font-size: 13px;

    }

}



@media (max-width: 480px) {

    .hero {

        padding: 40px 0;

    }

    

    .search-box {

        padding: 15px;

    }

    

    .main-content {

        padding: 30px 0;

    }

    

    .footer {

        padding: 30px 0 0;

    }

    

    .floating-widgets-right {

        right: 10px;

        bottom: 15px;

    }

    

    .floating-widget {

        width: 50px;

        height: 50px;

    }

    

    .whatsapp-widget svg {

        width: 28px;

        height: 28px;

    }

    

    .scroll-widget svg {

        width: 18px;

        height: 18px;

    }

    

    .accessibility-widget {

        right: 10px;

        bottom: 145px;

    }

    

    .accessibility-trigger {

        width: 50px;

        height: 50px;

    }

    

    .accessibility-trigger svg {

        width: 20px;

        height: 20px;

    }

    

    .accessibility-menu {

        width: calc(100vw - 30px);

        max-width: 280px;

        right: 0;

    }

}



/* ==================== PRINT STYLES ==================== */

@media print {

    .header,

    .footer,

    .btn,

    .search-box,

    .floating-widgets-right,

    .accessibility-widget,

    .mobile-menu-toggle {

        display: none !important;

    }

    

    body {

        background: white;

    }

    

    .card,

    .detail-main,

    .detail-sidebar {

        box-shadow: none;

        border: 1px solid #ddd;

        page-break-inside: avoid;

    }

}



/* ==================== DARK MODE SUPPORT (Optional) ==================== */

@media (prefers-color-scheme: dark) {

    /* Uncomment to enable dark mode

    body {

        background-color: #1a1a1a;

        color: #e0e0e0;

    }

    

    .card,

    .detail-main,

    .detail-sidebar,

    .search-box {

        background: #2a2a2a;

        color: #e0e0e0;

    }

    */

}



/* ==================== MOBILE RESPONSIVE TABLE ==================== */

@media (max-width: 768px) {

    /* Fix container width di mobile */

    .container {

        max-width: 100%;

        padding: 0 15px;

    }



    .dokumen-terbaru {

        flex: 1;

        padding: 15px;

    }



    .section-container {

        padding: 0 10px;

    }



    .main-content {

        padding: 40px 0;

    }



    .tabel-container {

        overflow-x: visible;

        background: transparent;

        box-shadow: none;

        width: 100%;

        padding: 0;

        margin: 0;

    }



    /* Hide table headers on mobile */

    .tabel-dokumen thead {

        display: none;

    }



    /* Make table body display as block */

    .tabel-dokumen,

    .tabel-dokumen tbody,

    .tabel-dokumen tr,

    .tabel-dokumen td {

        display: block;

        width: 100%;

    }



    /* Style each row as a card */

    .tabel-dokumen tr {

        margin-bottom: 15px;

        border: 1px solid #e0e0e0;

        border-radius: 10px;

        overflow: hidden;

        box-shadow: 0 2px 8px rgba(0,0,0,0.08);

        background: white;

    }



    .tabel-dokumen tr:hover {

        background: white;

        box-shadow: 0 4px 12px rgba(0,0,0,0.12);

    }



    /* Style each cell */

    .tabel-dokumen td {

        padding: 12px 15px;

        border-bottom: 1px solid #f0f0f0;

        position: relative;

        padding-left: 45%;

        text-align: right;

        word-wrap: break-word;

    }



    .tabel-dokumen td:last-child {

        border-bottom: none;

    }



    /* Add labels before each cell */

    .tabel-dokumen td::before {

        content: attr(data-label);

        position: absolute;

        left: 15px;

        top: 12px;

        font-weight: 600;

        color: #1e3c72;

        text-align: left;

        width: 40%;

    }



    /* Center aligned cells */

    .tabel-dokumen td.text-center {

        text-align: right;

    }



    /* Button group in mobile */

    .btn-group {

        justify-content: flex-end;

        gap: 8px;

        flex-wrap: wrap;

    }



    .btn-sm {

        font-size: 13px;

        padding: 8px 14px;

        white-space: nowrap;

    }



    /* First cell (Judul) - make it stand out */

    .tabel-dokumen tr td:first-child {

        background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);

        color: white;

        font-weight: 600;

        font-size: 14px;

        padding: 15px;

        padding-left: 15px;

        text-align: left;

        line-height: 1.4;

    }



    .tabel-dokumen tr td:first-child::before {

        display: none;

    }

}



@media (max-width: 576px) {

    .tabel-dokumen td {

        padding: 10px 12px;

        padding-left: 40%;

        font-size: 13px;

    }



    .tabel-dokumen td::before {

        font-size: 12px;

        left: 12px;

    }



    .tabel-dokumen tr td:first-child {

        font-size: 14px;

        padding: 12px;

    }



    .btn-sm {

        font-size: 12px;

        padding: 6px 10px;

    }

}



/* ========================================

   HALAMAN TENTANG JDIH - ELEGANT DESIGN

   ======================================== */



/* ==================== PAGE HERO ==================== */

.page-hero {

    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

    padding: 20px 0 20px;

    position: relative;

    overflow: hidden;

}



.page-hero::before {

    content: '';

    position: absolute;

    top: 0;

    left: 0;

    right: 0;

    bottom: 0;

    background: url('data:image/svg+xml,<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg"><rect width="100" height="100" fill="none"/><path d="M0 0L100 100M100 0L0 100" stroke="rgba(255,255,255,0.1)" stroke-width="2"/></svg>');

    opacity: 0.1;

}



.hero-content {

    text-align: center;

    position: relative;

    z-index: 1;

}



.hero-icon {

    font-size: 62px;

    margin-bottom: 20px;

    animation: float 3s ease-in-out infinite;

}



@keyframes float {

    0%, 100% { transform: translateY(0px); }

    50% { transform: translateY(-10px); }

}



.hero-title {

    font-size: 48px;

    font-weight: 800;

    color: white;

    margin-bottom: 15px;

    text-shadow: 0 2px 20px rgba(0,0,0,0.2);

}



.hero-subtitle {

    font-size: 18px;

    color: rgba(255,255,255,0.95);

    margin-bottom: 30px;

    max-width: 800px;

    margin-left: auto;

    margin-right: auto;

}



.breadcrumb {

    display: flex;

    justify-content: center;

    gap: 10px;

    background: rgba(255,255,255,0.15);

    backdrop-filter: blur(10px);

    padding: 12px 25px;

    border-radius: 50px;

    list-style: none;

    margin: 0 auto;

    width: fit-content;

}



.breadcrumb-item {

    color: white;

    font-size: 14px;

}



.breadcrumb-item a {

    color: white;

    text-decoration: none;

    transition: all 0.3s ease;

    opacity: 0.9;

}



.breadcrumb-item a:hover {

    opacity: 1;

    text-decoration: underline;

}



.breadcrumb-item.active {

    opacity: 0.8;

}



.breadcrumb-item + .breadcrumb-item::before {

    content: '›';

    margin-right: 10px;

    opacity: 0.6;

}



/* ==================== CONTENT SECTION ==================== */

.content-section {

    padding: 60px 0;

    background: #f8f9fa;

}



.content-layout {

    display: grid;

    grid-template-columns: 1fr ;

    gap: 40px;

    align-items: start;

}



.main-content-area {

    display: flex;

    flex-direction: column;

    gap: 30px;

}



/* ==================== INFO CARD ==================== */

.info-card {

    background: white;

    border-radius: 20px;

    overflow: hidden;

    box-shadow: 0 4px 20px rgba(0,0,0,0.08);

    transition: all 0.3s ease;

}



.info-card:hover {

    transform: translateY(-5px);

    box-shadow: 0 8px 30px rgba(0,0,0,0.12);

}



.card-header {

    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

    padding: 30px;

    display: flex;

    align-items: center;

    gap: 20px;

}



.card-icon {

    font-size: 48px;

    filter: drop-shadow(0 2px 8px rgba(0,0,0,0.2));

}



.card-title {

    color: white;

    font-size: 24px;

    font-weight: 700;

    margin: 0;

    flex: 1;

    text-shadow: 0 2px 4px rgba(0,0,0,0.1);

}



.card-body {

    padding: 35px;

}



/* ==================== TEXT STYLES ==================== */

.lead-text {

    font-size: 17px;

    line-height: 1.8;

    color: #444;

    margin-bottom: 25px;

}



.intro-text {

    font-size: 16px;

    line-height: 1.7;

    color: #555;

    margin-bottom: 25px;

    font-weight: 500;

}



/* ==================== HIGHLIGHT BOX ==================== */

.highlight-box {

    background: linear-gradient(135deg, #f5f7ff 0%, #e8ebff 100%);

    border-left: 4px solid #667eea;

    border-radius: 12px;

    padding: 25px;

    display: flex;

    gap: 20px;

    margin-top: 25px;

}



.highlight-icon {

    font-size: 32px;

    flex-shrink: 0;

}



.highlight-box p {

    margin: 0;

    font-size: 15px;

    line-height: 1.7;

    color: #444;

}



/* ==================== FACTOR GRID ==================== */

.factor-grid {

    display: grid;

    grid-template-columns: repeat(2, 1fr);

    gap: 20px;

    margin-top: 25px;

}



.factor-item {

    background: linear-gradient(135deg, #f8f9ff 0%, #f0f2ff 100%);

    border-radius: 15px;

    padding: 25px;

    display: flex;

    gap: 20px;

    transition: all 0.3s ease;

    border: 2px solid transparent;

}



.factor-item:hover {

    border-color: #667eea;

    transform: translateY(-3px);

    box-shadow: 0 5px 20px rgba(102, 126, 234, 0.15);

}



.factor-number {

    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

    color: white;

    width: 50px;

    height: 50px;

    border-radius: 12px;

    display: flex;

    align-items: center;

    justify-content: center;

    font-size: 20px;

    font-weight: 700;

    flex-shrink: 0;

    box-shadow: 0 4px 15px rgba(102, 126, 234, 0.3);

}



.factor-content h4 {

    font-size: 16px;

    font-weight: 700;

    color: #1e3c72;

    margin-bottom: 8px;

}



.factor-content p {

    font-size: 14px;

    line-height: 1.6;

    color: #555;

    margin: 0;

}



/* ==================== RECOMMENDATION LIST ==================== */

.recommendation-list {

    display: flex;

    flex-direction: column;

    gap: 20px;

    margin-top: 25px;

}



.recommendation-item {

    background: #f8f9fa;

    border-radius: 15px;

    padding: 25px;

    display: flex;

    gap: 20px;

    transition: all 0.3s ease;

    border-left: 4px solid #667eea;

}



.recommendation-item:hover {

    background: #f0f2ff;

    transform: translateX(5px);

}



.rec-badge {

    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

    color: white;

    width: 45px;

    height: 45px;

    border-radius: 50%;

    display: flex;

    align-items: center;

    justify-content: center;

    font-size: 20px;

    font-weight: 700;

    flex-shrink: 0;

    box-shadow: 0 4px 15px rgba(102, 126, 234, 0.3);

}



.rec-content h4 {

    font-size: 18px;

    font-weight: 700;

    color: #1e3c72;

    margin-bottom: 10px;

}



.rec-content > p {

    font-size: 15px;

    line-height: 1.7;

    color: #555;

    margin: 0;

}



/* Sub Items */

.sub-items {

    margin-top: 20px;

    display: flex;

    flex-direction: column;

    gap: 15px;

}



.sub-item {

    display: flex;

    gap: 15px;

    padding-left: 10px;

}



.sub-badge {

    background: #667eea;

    color: white;

    width: 30px;

    height: 30px;

    border-radius: 8px;

    display: flex;

    align-items: center;

    justify-content: center;

    font-size: 14px;

    font-weight: 600;

    flex-shrink: 0;

}



.sub-item p {

    font-size: 14px;

    line-height: 1.6;

    color: #666;

    margin: 0;

}



/* ==================== INFO BANNER ==================== */

.info-banner {

    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

    border-radius: 20px;

    padding: 35px;

    display: flex;

    gap: 25px;

    align-items: center;

    color: white;

    box-shadow: 0 8px 25px rgba(102, 126, 234, 0.3);

}



.banner-icon {

    font-size: 64px;

    flex-shrink: 0;

    animation: pulse 2s ease-in-out infinite;

}



@keyframes pulse {

    0%, 100% { transform: scale(1); }

    50% { transform: scale(1.1); }

}



.banner-content h3 {

    font-size: 24px;

    font-weight: 700;

    margin-bottom: 10px;

    text-shadow: 0 2px 4px rgba(0,0,0,0.1);

}



.banner-content p {

    font-size: 16px;

    line-height: 1.7;

    margin: 0;

    opacity: 0.95;

}



/* ==================== SIDEBAR ==================== */

.content-sidebar {

    display: flex;

    flex-direction: column;

    gap: 25px;

}



.sidebar-card {

    background: white;

    border-radius: 20px;

    overflow: hidden;

    box-shadow: 0 4px 20px rgba(0,0,0,0.08);

}



.sticky-sidebar {

    position: sticky;

    top: 80px;

}



.sidebar-header {

    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

    padding: 20px 25px;

}



.sidebar-header h3 {

    color: white;

    font-size: 18px;

    font-weight: 700;

    margin: 0;

}



/* ==================== SIDEBAR NAVIGATION ==================== */

.sidebar-nav {

    list-style: none;

    padding: 0;

    margin: 0;

}



.sidebar-nav li a {

    display: flex;

    align-items: center;

    gap: 15px;

    padding: 18px 25px;

    color: #444;

    text-decoration: none;

    transition: all 0.3s ease;

    border-bottom: 1px solid #f0f0f0;

}



.sidebar-nav li:last-child a {

    border-bottom: none;

}



.sidebar-nav li a:hover {

    background: linear-gradient(90deg, #f5f7ff 0%, transparent 100%);

    color: #667eea;

    padding-left: 30px;

}



.sidebar-nav li.active a {

    background: linear-gradient(90deg, #e8ebff 0%, transparent 100%);

    color: #667eea;

    font-weight: 600;

    border-left: 4px solid #667eea;

}



.nav-icon {

    font-size: 20px;

    flex-shrink: 0;

}



.nav-text {

    flex: 1;

    font-size: 15px;

}



.nav-arrow {

    font-size: 18px;

    opacity: 0;

    transition: all 0.3s ease;

}



.sidebar-nav li a:hover .nav-arrow,

.sidebar-nav li.active a .nav-arrow {

    opacity: 1;

}





/* ==================== ANIMATIONS ==================== */

.fade-in {

    animation: fadeInUp 0.6s ease forwards;

    opacity: 0;

}



@keyframes fadeInUp {

    from {

        opacity: 0;

        transform: translateY(30px);

    }

    to {

        opacity: 1;

        transform: translateY(0);

    }

}



/* ==================== RESPONSIVE ==================== */

@media (max-width: 1024px) {

    .content-layout {

        grid-template-columns: 1fr 300px;

        gap: 30px;

    }



    .factor-grid {

        grid-template-columns: 1fr;

    }

}



@media (max-width: 768px) {

    .page-hero {

        padding: 60px 0 40px;

    }



    .hero-title {

        font-size: 36px;

    }



    .hero-subtitle {

        font-size: 16px;

    }



    .content-layout {

        grid-template-columns: 1fr;

        gap: 30px;

    }



    .content-sidebar {

        order: -1;

    }



    .sticky-sidebar {

        position: static;

    }



    .factor-grid {

        grid-template-columns: 1fr;

    }



    .card-header {

        padding: 25px 20px;

        flex-direction: column;

        text-align: center;

    }



    .card-icon {

        font-size: 40px;

    }



    .card-title {

        font-size: 20px;

    }



    .card-body {

        padding: 25px 20px;

    }



    .info-banner {

        flex-direction: column;

        text-align: center;

        padding: 30px 25px;

    }



    .recommendation-item {

        flex-direction: column;

        align-items: center;

        text-align: center;

    }

}



@media (max-width: 480px) {

    .hero-icon {

        font-size: 48px;

    }



    .hero-title {

        font-size: 28px;

    }



    .breadcrumb {

        font-size: 12px;

        padding: 10px 20px;

    }



    .card-header {

        padding: 20px 15px;

    }



    .card-body {

        padding: 20px 15px;

    }



    .factor-item {

        padding: 20px;

    }



    .recommendation-item {

        padding: 20px;

    }

}



/* ========================================

   HALAMAN VISI DAN MISI - ELEGANT DESIGN

   ======================================== */



/* Note: Hero section, content section, sidebar styles sudah ada di tentang-jdih-style.css */

/* File ini hanya berisi styling khusus untuk komponen Visi dan Misi */



/* ==================== INTRO CARD ==================== */

.intro-card {

    background: linear-gradient(135deg, #f5f7ff 0%, #e8ebff 100%);

    border-left: 5px solid #667eea;

}



.intro-card .card-body {

    padding: 35px;

}



/* ==================== VISI & MISI CARDS ==================== */

.vm-card {

    background: white;

    border-radius: 20px;

    overflow: hidden;

    box-shadow: 0 4px 20px rgba(0,0,0,0.08);

    transition: all 0.3s ease;

    position: relative;

}



.vm-card:hover {

    transform: translateY(-5px);

    box-shadow: 0 8px 30px rgba(0,0,0,0.12);

}



.vm-header {

    padding: 40px 35px 25px;

    position: relative;

    overflow: hidden;

}



.visi-card .vm-header {

    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

}



.misi-card .vm-header {

    background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);

}



.vm-header::before {

    content: '';

    position: absolute;

    top: -50%;

    right: -10%;

    width: 200px;

    height: 200px;

    background: rgba(255,255,255,0.1);

    border-radius: 50%;

}



.vm-icon-wrapper {

    display: inline-block;

    margin-bottom: 15px;

}



.vm-icon {

    font-size: 56px;

    filter: drop-shadow(0 4px 12px rgba(0,0,0,0.2));

    animation: bounce 2s ease-in-out infinite;

}



@keyframes bounce {

    0%, 100% { transform: translateY(0); }

    50% { transform: translateY(-10px); }

}



.vm-title {

    color: white;

    font-size: 32px;

    font-weight: 800;

    margin: 0;

    text-shadow: 0 2px 8px rgba(0,0,0,0.15);

}



.vm-body {

    padding: 35px;

    position: relative;

}



.vm-content p {

    font-size: 17px;

    line-height: 1.8;

    color: #444;

    margin: 0;

    font-weight: 500;

    position: relative;

    z-index: 1;

}



/* Decorative Elements */

.vm-decoration {

    position: absolute;

    bottom: 20px;

    right: 30px;

    display: flex;

    gap: 8px;

    opacity: 0.15;

}



.decoration-circle {

    width: 12px;

    height: 12px;

    background: #667eea;

    border-radius: 50%;

    animation: float 3s ease-in-out infinite;

}



.decoration-circle:nth-child(2) {

    animation-delay: 0.3s;

}



.decoration-circle:nth-child(3) {

    animation-delay: 0.6s;

}



.decoration-square {

    width: 12px;

    height: 12px;

    background: #f5576c;

    transform: rotate(45deg);

    animation: rotate 4s linear infinite;

}



.decoration-square:nth-child(2) {

    animation-delay: 0.5s;

}



.decoration-square:nth-child(3) {

    animation-delay: 1s;

}



@keyframes rotate {

    from { transform: rotate(45deg); }

    to { transform: rotate(405deg); }

}



/* ==================== TUJUAN, SASARAN, STRATEGI GRID ==================== */

.tss-grid {

    display: grid;

    grid-template-columns: repeat(3, 1fr);

    gap: 25px;

}



.tss-card {

    background: white;

    border-radius: 18px;

    padding: 35px 25px;

    text-align: center;

    position: relative;

    overflow: hidden;

    box-shadow: 0 4px 15px rgba(0,0,0,0.08);

    transition: all 0.3s ease;

}



.tss-card::before {

    content: '';

    position: absolute;

    top: -50%;

    left: -50%;

    width: 200%;

    height: 200%;

    background: linear-gradient(45deg, transparent, rgba(102, 126, 234, 0.05), transparent);

    transform: rotate(45deg);

    transition: all 0.5s ease;

}



.tss-card:hover::before {

    left: 100%;

}



.tss-card:hover {

    transform: translateY(-8px);

    box-shadow: 0 8px 25px rgba(0,0,0,0.15);

}



.tujuan-card {

    border-top: 4px solid #667eea;

}



.sasaran-card {

    border-top: 4px solid #f5576c;

}



.strategi-card {

    border-top: 4px solid #43e97b;

}



.tss-icon {

    font-size: 56px;

    margin-bottom: 20px;

    display: block;

    animation: float 3s ease-in-out infinite;

}



.tss-title {

    font-size: 22px;

    font-weight: 700;

    color: #1e3c72;

    margin-bottom: 15px;

}



.tss-divider {

    width: 50px;

    height: 3px;

    margin: 0 auto 20px;

    border-radius: 3px;

}



.tujuan-card .tss-divider {

    background: linear-gradient(90deg, #667eea, #764ba2);

}



.sasaran-card .tss-divider {

    background: linear-gradient(90deg, #f093fb, #f5576c);

}



.strategi-card .tss-divider {

    background: linear-gradient(90deg, #38f9d7, #43e97b);

}



.tss-text {

    font-size: 15px;

    line-height: 1.7;

    color: #555;

    margin: 0;

}



.tss-badge {

    position: absolute;

    top: 15px;

    right: 15px;

    background: rgba(102, 126, 234, 0.1);

    color: #667eea;

    width: 40px;

    height: 40px;

    border-radius: 50%;

    display: flex;

    align-items: center;

    justify-content: center;

    font-size: 16px;

    font-weight: 700;

}



/* ==================== POLICY CARD ==================== */

.policy-card .card-body {

    padding: 35px;

}



.policy-list {

    display: flex;

    flex-direction: column;

    gap: 20px;

    margin-top: 25px;

}



.policy-item {

    background: #f8f9fa;

    border-radius: 15px;

    padding: 25px;

    display: flex;

    gap: 20px;

    align-items: flex-start;

    transition: all 0.3s ease;

    border-left: 4px solid transparent;

}



.policy-item:hover {

    background: linear-gradient(135deg, #f5f7ff 0%, #e8ebff 100%);

    border-left-color: #667eea;

    transform: translateX(5px);

}



.policy-number {

    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

    color: white;

    min-width: 50px;

    height: 50px;

    border-radius: 12px;

    display: flex;

    align-items: center;

    justify-content: center;

    font-size: 18px;

    font-weight: 700;

    flex-shrink: 0;

    box-shadow: 0 4px 15px rgba(102, 126, 234, 0.3);

}



.policy-content h4 {

    font-size: 17px;

    font-weight: 700;

    color: #1e3c72;

    margin-bottom: 8px;

}



.policy-content p {

    font-size: 15px;

    line-height: 1.7;

    color: #555;

    margin: 0;

}



/* ==================== COMMITMENT BANNER ==================== */

.commitment-banner {

    background: linear-gradient(135deg, #43e97b 0%, #38f9d7 100%);

}



.commitment-banner .banner-icon {

    font-size: 64px;

}



/* ==================== INFO HIGHLIGHT CARD (SIDEBAR) ==================== */

.info-highlight-card {

    margin-top: 25px;

}



.highlight-content {

    padding: 20px;

    display: flex;

    flex-direction: column;

    gap: 20px;

}



.highlight-item {

    display: flex;

    align-items: center;

    gap: 15px;

    padding: 15px;

    background: linear-gradient(135deg, #f5f7ff 0%, #e8ebff 100%);

    border-radius: 12px;

    transition: all 0.3s ease;

}



.highlight-item:hover {

    transform: translateX(5px);

    box-shadow: 0 4px 15px rgba(102, 126, 234, 0.15);

}



.highlight-item .highlight-icon {

    font-size: 32px;

    flex-shrink: 0;

}



.highlight-text h4 {

    font-size: 15px;

    font-weight: 700;

    color: #1e3c72;

    margin-bottom: 4px;

}



.highlight-text p {

    font-size: 13px;

    color: #666;

    margin: 0;

    line-height: 1.4;

}



/* ==================== RESPONSIVE ==================== */

@media (max-width: 1024px) {

    .tss-grid {

        grid-template-columns: 1fr;

        gap: 20px;

    }

}



@media (max-width: 768px) {

    .vm-header {

        padding: 30px 25px 20px;

    }



    .vm-icon {

        font-size: 48px;

    }



    .vm-title {

        font-size: 26px;

    }



    .vm-body {

        padding: 25px;

    }



    .vm-content p {

        font-size: 15px;

    }



    .tss-grid {

        grid-template-columns: 1fr;

    }



    .tss-card {

        padding: 30px 20px;

    }



    .tss-icon {

        font-size: 48px;

    }



    .tss-title {

        font-size: 20px;

    }



    .policy-item {

        flex-direction: column;

        align-items: center;

        text-align: center;

        padding: 20px;

    }



    .policy-number {

        min-width: 45px;

        height: 45px;

        font-size: 16px;

    }

}



@media (max-width: 480px) {

    .vm-header {

        padding: 25px 20px 15px;

    }



    .vm-icon {

        font-size: 40px;

    }



    .vm-title {

        font-size: 22px;

    }



    .vm-body {

        padding: 20px;

    }



    .vm-content p {

        font-size: 14px;

    }



    .tss-card {

        padding: 25px 15px;

    }



    .tss-icon {

        font-size: 42px;

    }



    .tss-title {

        font-size: 18px;

    }



    .tss-text {

        font-size: 14px;

    }



    .policy-item {

        padding: 15px;

    }



    .policy-content h4 {

        font-size: 15px;

    }



    .policy-content p {

        font-size: 14px;

    }

}



/* ==================== PRINT STYLES ==================== */

@media print {

    .vm-decoration,

    .tss-badge,

    .commitment-banner {

        display: none;

    }



    .vm-card,

    .tss-card,

    .policy-item {

        break-inside: avoid;

        box-shadow: none;

        border: 1px solid #ddd;

    }

}



/* ========================================

   HALAMAN DASAR HUKUM - ELEGANT DESIGN

   ======================================== */



/* Note: Hero, content section, sidebar styles sudah ada di tentang-jdih-style.css */

/* File ini hanya berisi styling khusus untuk komponen Dasar Hukum */



/* ==================== INTRO HIGHLIGHT ==================== */

.intro-highlight {

    display: flex;

    align-items: center;

    gap: 20px;

    margin-top: 25px;

    padding: 25px;

    background: linear-gradient(135deg, #fff7ed 0%, #ffedd5 100%);

    border-radius: 15px;

    border-left: 4px solid #f59e0b;

}



.intro-highlight .highlight-icon {

    font-size: 48px;

    flex-shrink: 0;

}



.intro-highlight p {

    margin: 0;

    font-size: 15px;

    line-height: 1.7;

    color: #78350f;

    font-weight: 500;

}



/* ==================== LEGAL CATEGORIES GRID ==================== */

.legal-categories {

    display: grid;

    grid-template-columns: repeat(4, 1fr);

    gap: 20px;

    margin-bottom: 40px;

}



.category-card {

    background: white;

    border-radius: 15px;

    padding: 25px 20px;

    text-align: center;

    display: flex;

    flex-direction: column;

    align-items: center;
    gap: 15px;

    box-shadow: 0 4px 15px rgba(0,0,0,0.08);

    transition: all 0.3s ease;

    border-top: 4px solid;

}



.category-card:hover {

    transform: translateY(-5px);

    box-shadow: 0 8px 25px rgba(0,0,0,0.15);

}



.uu-category {

    border-top-color: #dc2626;

}



.perpres-category {

    border-top-color: #2563eb;

}



.permendagri-category {

    border-top-color: #f59e0b;

}



.perda-category {

    border-top-color: #16a34a;

}



.category-icon {

    font-size: 48px;

    animation: float 3s ease-in-out infinite;

}



.category-info h3 {

    font-size: 16px;

    font-weight: 700;

    color: #1e3c72;

    margin: 0 0 5px 0;

}



.category-info p {

    font-size: 13px;

    color: #666;

    margin: 0;

}



/* ==================== LEGAL SECTION ==================== */

.legal-section {

    margin-bottom: 40px;

}



.section-header {

    display: flex;

    align-items: center;

    gap: 20px;

    padding: 25px 30px;

    border-radius: 15px;

    margin-bottom: 25px;

}



.uu-header {

    background: linear-gradient(135deg, #dc2626 0%, #b91c1c 100%);

}



.perpres-header {

    background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);

}



.permendagri-header {

    background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);

}



.perda-header {

    background: linear-gradient(135deg, #16a34a 0%, #15803d 100%);

}



.section-header .section-icon {

    font-size: 40px;

    filter: drop-shadow(0 2px 8px rgba(0,0,0,0.2));

}



.section-title-legal {

    color: white;

    font-size: 24px;

    font-weight: 700;

    margin: 0;

    text-shadow: 0 2px 4px rgba(0,0,0,0.1);

}



/* ==================== LEGAL ITEMS GRID ==================== */

.legal-items-grid {

    display: grid;

    grid-template-columns: repeat(4, 1fr);

    gap: 20px;

}



.legal-card {

    background: white;

    border-radius: 15px;

    padding: 25px;

    position: relative;

    box-shadow: 0 4px 15px rgba(0,0,0,0.08);

    transition: all 0.3s ease;

    border-left: 4px solid;

    display: flex;

    flex-direction: column;

    gap: 12px;

}



.legal-card {

    border-left-color: #94a3b8;

}



.uu-badge {

    background: linear-gradient(135deg, #dc2626, #b91c1c);

}



.perpres-badge {

    background: linear-gradient(135deg, #2563eb, #1d4ed8);

}



.permendagri-badge {

    background: linear-gradient(135deg, #f59e0b, #d97706);

}



.perda-badge {

    background: linear-gradient(135deg, #16a34a, #15803d);

}



.legal-card:hover {

    transform: translateY(-5px);

    box-shadow: 0 8px 25px rgba(0,0,0,0.15);

}



.legal-badge {

    position: absolute;

    top: 15px;

    right: 15px;

    color: white;

    width: 45px;

    height: 45px;

    border-radius: 12px;

    display: flex;

    align-items: center;

    justify-content: center;

    font-size: 16px;

    font-weight: 700;

    box-shadow: 0 4px 15px rgba(0,0,0,0.2);

}



.legal-type {

    display: inline-block;

    font-size: 12px;

    font-weight: 600;

    color: #667eea;

    background: rgba(102, 126, 234, 0.1);

    padding: 5px 12px;

    border-radius: 20px;

    width: fit-content;

}



.legal-title {

    font-size: 18px;

    font-weight: 700;

    color: #1e3c72;

    margin: 0;

    padding-right: 50px;

    line-height: 1.3;

}



.legal-desc {

    font-size: 14px;

    line-height: 1.6;

    color: #555;

    margin: 0;

    flex: 1;

}



.legal-footer {

    display: flex;

    align-items: center;

    justify-content: space-between;

    padding-top: 12px;

    border-top: 1px solid #e5e7eb;

    margin-top: auto;

}



.legal-year {

    font-size: 13px;

    font-weight: 600;

    color: #667eea;

    background: rgba(102, 126, 234, 0.1);

    padding: 4px 12px;

    border-radius: 15px;

}



/* ==================== LEGAL BANNER ==================== */

.legal-banner {

    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

}



/* ==================== SUMMARY CARD (SIDEBAR) ==================== */

.summary-card {

    margin-top: 25px;

}



.summary-content {

    padding: 20px;

    display: flex;

    flex-direction: column;

    gap: 15px;

}



.summary-item {

    display: flex;

    align-items: center;

    gap: 15px;

    padding: 15px;

    background: #f8f9fa;

    border-radius: 12px;

    transition: all 0.3s ease;

}



.summary-item:hover {

    background: linear-gradient(135deg, #f5f7ff 0%, #e8ebff 100%);

    transform: translateX(5px);

}



.summary-icon {

    font-size: 28px;

    flex-shrink: 0;

}



.summary-info {

    flex: 1;

}



.summary-number {

    font-size: 24px;

    font-weight: 700;

    color: #667eea;

    line-height: 1;

    margin-bottom: 4px;

}



.summary-label {

    font-size: 13px;

    color: #666;

    font-weight: 500;

}



.summary-total {

    display: flex;

    align-items: center;

    justify-content: space-between;

    padding: 20px;

    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

    border-radius: 12px;

    color: white;

    margin-top: 10px;

}



.total-number {

    font-size: 36px;

    font-weight: 800;

    text-shadow: 0 2px 4px rgba(0,0,0,0.2);

}



.total-label {

    font-size: 14px;

    font-weight: 600;

    opacity: 0.95;

}



/* ==================== RESPONSIVE ==================== */

@media (max-width: 1024px) {

    .legal-categories {

        grid-template-columns: repeat(2, 1fr);

    }



    .legal-items-grid {

        grid-template-columns: 1fr;

    }

}



@media (max-width: 768px) {

    .legal-categories {

        grid-template-columns: 1fr;

        gap: 15px;

    }



    .category-card {

        padding: 20px 15px;

    }



    .category-icon {

        font-size: 40px;

    }



    .section-header {

        padding: 20px 25px;

        gap: 15px;

    }



    .section-header .section-icon {

        font-size: 32px;

    }



    .section-title-legal {

        font-size: 20px;

    }



    .legal-items-grid {

        gap: 15px;

    }



    .legal-card {

        padding: 20px;

    }



    .legal-badge {

        width: 40px;

        height: 40px;

        font-size: 14px;

        top: 12px;

        right: 12px;

    }



    .legal-title {

        font-size: 16px;

        padding-right: 45px;

    }



    .legal-desc {

        font-size: 13px;

    }



    .intro-highlight {

        flex-direction: column;

        text-align: center;

        padding: 20px;

    }



    .intro-highlight .highlight-icon {

        font-size: 40px;

    }

}



@media (max-width: 480px) {

    .category-card {

        padding: 15px;

    }



    .category-icon {

        font-size: 36px;

    }



    .category-info h3 {

        font-size: 14px;

    }



    .section-header {

        padding: 15px 20px;

    }



    .section-header .section-icon {

        font-size: 28px;

    }



    .section-title-legal {

        font-size: 18px;

    }



    .legal-card {

        padding: 18px 15px;

    }



    .legal-title {

        font-size: 15px;

    }



    .legal-desc {

        font-size: 12px;

    }



    .summary-item {

        padding: 12px;

    }



    .summary-icon {

        font-size: 24px;

    }



    .summary-number {

        font-size: 20px;

    }



    .total-number {

        font-size: 30px;

    }

}



/* ==================== PRINT STYLES ==================== */

@media print {

    .legal-categories,

    .legal-banner {

        display: none;

    }



    .legal-card {

        break-inside: avoid;

        box-shadow: none;

        border: 1px solid #ddd;

        page-break-inside: avoid;

    }



    .section-header {

        break-after: avoid;

    }



    .legal-items-grid {

        display: block;

    }



    .legal-card {

        margin-bottom: 15px;

    }

}



/* ==================== ANIMATIONS ==================== */

@keyframes float {

    0%, 100% {

        transform: translateY(0);

    }

    50% {

        transform: translateY(-10px);

    }

}



/* ==================== ADDITIONAL ENHANCEMENTS ==================== */

.legal-card::before {

    content: '';

    position: absolute;

    top: 0;

    left: 0;

    right: 0;

    height: 3px;

    background: linear-gradient(90deg, transparent, rgba(102, 126, 234, 0.3), transparent);

    opacity: 0;

    transition: opacity 0.3s ease;

}



.legal-card:hover::before {

    opacity: 1;

}



/* ========================================

   HALAMAN STRUKTUR ORGANISASI - FLOWCHART

   ======================================== */



/* Note: Hero, content section, sidebar styles sudah ada di tentang-jdih-style.css */

/* File ini berisi styling khusus untuk organizational chart & duties */



/* ==================== ORG CHART CONTAINER ==================== */

.org-chart-container {

    background: white;

    border-radius: 20px;

    padding: 40px;

    box-shadow: 0 4px 20px rgba(0,0,0,0.08);

    margin-bottom: 40px;

}



.chart-header {

    text-align: center;

    margin-bottom: 50px;

}



.chart-header h2 {

    font-size: 28px;

    font-weight: 800;

    color: #1e3c72;

    margin-bottom: 10px;

}



.chart-header p {

    font-size: 15px;

    color: #666;

    margin: 0;

}



/* ==================== ORG CHART ==================== */

.org-chart {

    display: flex;

    flex-direction: column;

    align-items: center;

    padding: 5px 5px;

    position: relative;

}



.org-level {

    display: flex;

    justify-content: center;

    width: 100%;

    margin: 0;

}



/* ==================== ORG NODES ==================== */

.org-node {

    background: white;

    border-radius: 16px;

    padding: 0;

    width: 320px;

    box-shadow: 0 8px 25px rgba(0,0,0,0.12);

    transition: all 0.3s ease;

    overflow: hidden;

    position: relative;

}



.org-node:hover {

    transform: translateY(-8px) scale(1.02);

    box-shadow: 0 12px 35px rgba(0,0,0,0.18);

}



.node-header {

    padding: 5px 5px 5px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    position: relative;

}



/* Node Header Colors */

.chairman-header {

    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

}



.secretary-header {

    background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);

}



.manager-header {

    background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);

}



.technical-header {

    background: linear-gradient(135deg, #43e97b 0%, #38f9d7 100%);

}



.documentation-header {

    background: linear-gradient(135deg, #fa709a 0%, #fee140 100%);

}



.publication-header {

    background: linear-gradient(135deg, #30cfd0 0%, #330867 100%);

}



.node-icon {

    font-size: 42px;

    filter: drop-shadow(0 4px 8px rgba(0,0,0,0.2));

}



.node-badge {

    background: rgba(255,255,255,0.25);

    color: white;

    padding: 6px 14px;

    border-radius: 20px;

    font-size: 12px;

    font-weight: 600;

    backdrop-filter: blur(10px);

}



.node-body {

    padding: 5px;

    text-align: center;

    background: white;

}



.node-title {

    font-size: 20px;

    font-weight: 700;

    color: #1e3c72;

    margin: 0 0 8px 0;

}



.node-subtitle {

    font-size: 14px;

    color: #666;

    margin: 0;

}



.node-footer {

    padding: 5px 5px;

    background: #f8f9fa;

    display: flex;

    justify-content: center;

}



.node-tag {

    background: rgba(102, 126, 234, 0.1);

    color: #667eea;

    padding: 5px 5px;

    border-radius: 15px;

    font-size: 12px;

    font-weight: 600;

}



.team-tag {

    background: rgba(67, 233, 123, 0.1);

    color: #16a34a;

}



/* ==================== CONNECTORS ==================== */

.org-connector {

    display: flex;

    flex-direction: column;

    align-items: center;

    margin: 0;

    padding: 0;

    position: relative;

}



.connector-line {

    background: linear-gradient(180deg, #667eea 0%, #764ba2 100%);

    position: relative;

}



.vertical-line {

    width: 4px;

    height: 50px;

    border-radius: 4px;

}



.vertical-line.short {

    height: 30px;

}



.connector-dot {

    width: 12px;

    height: 12px;

    background: #667eea;

    border-radius: 50%;

    box-shadow: 0 0 0 4px rgba(102, 126, 234, 0.2);

    position: absolute;

    bottom: -6px;

}



/* Multi Connector */

.multi-connector {

    margin: 0;

    padding: 0;

}



.connector-split {

    position: relative;

    width: 100%;

    display: flex;

    justify-content: center;

    margin-top: -2px;

}



.split-horizontal {

    width: 600px;

    height: 4px;

    background: linear-gradient(90deg, #667eea 0%, #764ba2 100%);

    border-radius: 4px;

}



.split-dots {

    position: absolute;

    bottom: -6px;

    display: flex;

    justify-content: space-between;

    width: 580px;

    left: 50%;

    transform: translateX(-50%);

}



.split-dot {

    width: 12px;

    height: 12px;

    background: #667eea;

    border-radius: 50%;

    box-shadow: 0 0 0 4px rgba(102, 126, 234, 0.2);

}



.connector-branches {

    display: flex;

    justify-content: space-between;

    width: 580px;

    margin-top: -2px;

}



.branch-line {

    width: 4px;

    height: 40px;

    background: linear-gradient(180deg, #667eea 0%, #764ba2 100%);

    border-radius: 4px;

}



/* ==================== TEAMS LEVEL ==================== */

.teams-level {

    display: flex;

    justify-content: center;

    gap: 30px;

    width: 100%;

    margin-top: 0;

}



.team-node {

    width: 320px;

}



/* ==================== CHART LEGEND ==================== */

.chart-legend {

    display: flex;

    justify-content: center;

    gap: 30px;

    margin-top: 50px;

    padding: 25px;

    background: #f8f9fa;

    border-radius: 15px;

    flex-wrap: wrap;

}



.legend-item {

    display: flex;

    align-items: center;

    gap: 10px;

}



.legend-color {

    width: 30px;

    height: 30px;

    border-radius: 8px;

    box-shadow: 0 2px 8px rgba(0,0,0,0.15);

}



.chairman-color {

    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

}



.secretary-color {

    background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);

}



.manager-color {

    background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);

}



.team-color {

    background: linear-gradient(135deg, #43e97b 0%, #38f9d7 100%);

}



.legend-item span {

    font-size: 14px;

    font-weight: 600;

    color: #444;

}



/* ==================== DUTIES CONTAINER ==================== */

.duties-container {

    margin-bottom: 40px;

}



.section-header-custom {

    display: flex;

    align-items: center;

    gap: 20px;

    margin-bottom: 30px;

    padding: 25px 30px;

    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

    border-radius: 15px;

}



.section-icon-custom {

    font-size: 40px;

    filter: drop-shadow(0 2px 8px rgba(0,0,0,0.2));

}



.section-header-custom h2 {

    color: white;

    font-size: 26px;

    font-weight: 700;

    margin: 0;

    text-shadow: 0 2px 4px rgba(0,0,0,0.1);

}



/* ==================== DUTY CARDS ==================== */

.duty-card {

    background: white;

    border-radius: 16px;

    padding: 0;

    margin-bottom: 25px;

    box-shadow: 0 4px 20px rgba(0,0,0,0.08);

    overflow: hidden;

    transition: all 0.3s ease;

    border-left: 5px solid;

}



.duty-card:hover {

    transform: translateX(5px);

    box-shadow: 0 8px 30px rgba(0,0,0,0.12);

}



.chairman-duty {

    border-left-color: #667eea;

}



.secretary-duty {

    border-left-color: #f5576c;

}



.manager-duty {

    border-left-color: #00f2fe;

}



.technical-duty {

    border-left-color: #43e97b;

}



.documentation-duty {

    border-left-color: #fee140;

}



.publication-duty {

    border-left-color: #30cfd0;

}



.duty-header {

    display: flex;

    align-items: center;

    gap: 20px;

    padding: 25px 30px;

    background: linear-gradient(135deg, #f8f9fa 0%, #e8ebff 100%);

    position: relative;

}



.duty-avatar {

    width: 60px;

    height: 60px;

    border-radius: 50%;

    display: flex;

    align-items: center;

    justify-content: center;

    font-size: 28px;

    box-shadow: 0 4px 15px rgba(0,0,0,0.15);

    flex-shrink: 0;

}



.chairman-avatar {

    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

}



.secretary-avatar {

    background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);

}



.manager-avatar {

    background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);

}



.technical-avatar {

    background: linear-gradient(135deg, #43e97b 0%, #38f9d7 100%);

}



.documentation-avatar {

    background: linear-gradient(135deg, #fa709a 0%, #fee140 100%);

}



.publication-avatar {

    background: linear-gradient(135deg, #30cfd0 0%, #330867 100%);

}



.duty-title-group {

    flex: 1;

}



.duty-title-group h3 {

    font-size: 20px;

    font-weight: 700;

    color: #1e3c72;

    margin: 0 0 5px 0;

}



.duty-role {

    font-size: 13px;

    color: #667eea;

    font-weight: 600;

    background: rgba(102, 126, 234, 0.1);

    padding: 4px 12px;

    border-radius: 15px;

}



.duty-number {

    width: 45px;

    height: 45px;

    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

    color: white;

    border-radius: 12px;

    display: flex;

    align-items: center;

    justify-content: center;

    font-size: 18px;

    font-weight: 700;

    box-shadow: 0 4px 15px rgba(102, 126, 234, 0.3);

}



.duty-body {

    padding: 30px;

}



.duty-list {

    list-style: none;

    padding: 0;

    margin: 0;

    display: flex;

    flex-direction: column;

    gap: 15px;

}



.duty-list li {

    display: flex;

    align-items: flex-start;

    gap: 15px;

    font-size: 15px;

    line-height: 1.7;

    color: #444;

}



.list-icon {

    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

    color: white;

    width: 24px;

    height: 24px;

    border-radius: 50%;

    display: flex;

    align-items: center;

    justify-content: center;

    font-size: 12px;

    font-weight: 700;

    flex-shrink: 0;

    margin-top: 2px;

}



/* ==================== TEAMS GRID ==================== */

.teams-grid {

    display: grid;

    grid-template-columns: repeat(3, 1fr);

    gap: 25px;

    margin-top: 25px;

}



/* ==================== ORG BANNER ==================== */

.org-banner {

    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

}



/* ==================== HIERARCHY CARD (SIDEBAR) ==================== */

.hierarchy-card {

    margin-top: 25px;

}



.hierarchy-content {

    padding: 20px;

    display: flex;

    flex-direction: column;

    gap: 0;

}



.hierarchy-item {

    display: flex;

    align-items: center;

    gap: 15px;

    padding: 15px;

    background: linear-gradient(135deg, #f5f7ff 0%, #e8ebff 100%);

    border-radius: 12px;

}



.hierarchy-level {

    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);

    color: white;

    padding: 8px 15px;

    border-radius: 20px;

    font-size: 12px;

    font-weight: 700;

    white-space: nowrap;

}



.hierarchy-info {

    display: flex;

    align-items: center;

    gap: 10px;

    flex: 1;

}



.hierarchy-icon {

    font-size: 20px;

}



.hierarchy-text {

    font-size: 14px;

    font-weight: 600;

    color: #1e3c72;

}



.hierarchy-arrow {

    text-align: center;

    font-size: 24px;

    color: #667eea;

    padding: 8px 0;

    font-weight: 700;

}



/* ==================== RESPONSIVE ==================== */

@media (max-width: 1024px) {

    .teams-level {

        flex-direction: column;

        align-items: center;

        gap: 40px;

    }



    .team-node {

        width: 320px;

    }



    .split-horizontal,

    .split-dots,

    .connector-branches {

        display: none;

    }



    .teams-grid {

        grid-template-columns: 1fr;

    }

}



@media (max-width: 768px) {

    .org-chart-container {

        padding: 25px 20px;

    }



    .chart-header h2 {

        font-size: 24px;

    }



    .org-node,

    .team-node {

        width: 100%;

        max-width: 350px;

    }



    .node-header {

        padding: 20px;

    }



    .node-icon {

        font-size: 36px;

    }



    .node-title {

        font-size: 18px;

    }



    .chart-legend {

        gap: 20px;

    }



    .duty-card {

        margin-bottom: 20px;

    }



    .duty-header {

        padding: 20px;

        gap: 15px;

    }



    .duty-avatar {

        width: 50px;

        height: 50px;

        font-size: 24px;

    }



    .duty-title-group h3 {

        font-size: 18px;

    }



    .duty-number {

        width: 40px;

        height: 40px;

        font-size: 16px;

    }



    .duty-body {

        padding: 20px;

    }



    .teams-grid {

        grid-template-columns: 1fr;

    }

}



@media (max-width: 480px) {

    .org-chart-container {

        padding: 20px 15px;

    }



    .chart-header {

        margin-bottom: 30px;

    }



    .chart-header h2 {

        font-size: 20px;

    }



    .org-node {

        width: 100%;

    }



    .node-header {

        padding: 18px 15px;

    }



    .node-icon {

        font-size: 32px;

    }



    .node-badge {

        font-size: 11px;

        padding: 5px 10px;

    }



    .node-body {

        padding: 20px 15px;

    }



    .node-title {

        font-size: 16px;

    }



    .node-subtitle {

        font-size: 13px;

    }



    .chart-legend {

        flex-direction: column;

        gap: 12px;

        padding: 20px;

    }



    .legend-color {

        width: 25px;

        height: 25px;

    }



    .duty-header {

        padding: 18px 15px;

        gap: 12px;

    }



    .duty-avatar {

        width: 45px;

        height: 45px;

        font-size: 22px;

    }



    .duty-title-group h3 {

        font-size: 16px;

    }



    .duty-number {

        width: 38px;

        height: 38px;

        font-size: 15px;

    }



    .duty-body {

        padding: 18px 15px;

    }



    .duty-list li {

        font-size: 14px;

        gap: 12px;

    }



    .list-icon {

        width: 22px;

        height: 22px;

        font-size: 11px;

    }

}



/* ==================== PRINT STYLES ==================== */

@media print {

    .org-chart-container,

    .duty-card {

        break-inside: avoid;

        box-shadow: none;

        border: 1px solid #ddd;

    }



    .connector-line,

    .connector-dot,

    .split-dot {

        background: #999 !important;

    }



    .org-banner {

        display: none;

    }

}



/* ==================== ANIMATIONS ==================== */

@keyframes pulse-shadow {

    0%, 100% {

        box-shadow: 0 0 0 0 rgba(102, 126, 234, 0.4);

    }

    50% {

        box-shadow: 0 0 0 10px rgba(102, 126, 234, 0);

    }

}



.connector-dot,

.split-dot {

    animation: pulse-shadow 2s ease-in-out infinite;

}

/* ==================== END OF STYLES ==================== */