/* ==================================================
   terbitan bbpr
================================================== */

.terbitan-container {
    max-width: 1400px;
    margin: auto;
    padding: 60px 20px;
}

.terbitan-header {
    text-align: center;
    margin-bottom: 48px;
}

.terbitan-header h1 {
    font-size: 40px;
    font-weight: 800;
    color: #0f172a;
}

.terbitan-header p {
    font-size: 16px;
    color: #64748b;
    margin-top: 10px;
}

/* GRID */
.terbitan-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 28px;
}

/* CARD */
.book-card {
    background: #ffffff;
    border-radius: 14px;
    padding: 16px;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.12);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.book-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 40px rgba(15, 23, 42, 0.18);
}

/* COVER */
.book-cover {
    aspect-ratio: 3 / 4;
    overflow: hidden;
    background: #f1f5f9;
}

.book-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* INFO */
.book-info {
    padding-top: 14px;
    text-align: center;
}

.book-info h3 {
    font-size: 14px;
    font-weight: 700;
    color: #0f172a;
    margin-bottom: 12px;
}

/* BUTTON */
.book-actions {
    display: flex;
    justify-content: center;
}

.book-actions button {
    padding: 8px 22px;
    font-size: 13px;
    font-weight: 600;
    border-radius: 999px;
    background: #2563eb;
    color: #ffffff;
    border: none;
    cursor: pointer;
}

.book-actions button:hover {
    background: #1e40af;
}

/* RESPONSIVE */
@media (max-width: 1200px) {
    .terbitan-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

@media (max-width: 992px) {
    .terbitan-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 576px) {
    .terbitan-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .terbitan-header h1 {
        font-size: 28px;
    }
}

/* ==================================================
   MODAL FLIPBOOK (DEARFLIP EMBED)
================================================== */

.flip-modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: none;
}

.flip-modal.active {
    display: block;
}

.flip-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.85);
}

.flip-wrapper {
    position: relative;
    width: 95%;
    height: 95vh;
    margin: 2.5vh auto;
    background: #111;
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.7);
}

.flip-close {
    position: absolute;
    top: 14px;
    right: 18px;
    font-size: 28px;
    background: none;
    border: none;
    color: #fff;
    cursor: pointer;
    z-index: 10;
}
.book-read-btn {
    display: inline-block;
    padding: 8px 22px;
    font-size: 13px;
    font-weight: 600;
    border-radius: 999px;
    background: #2563eb;
    color: #fff;
    text-decoration: none;
}

.book-read-btn:hover {
    background: #1e40af;
}

/* ==================================================
    jurnal
================================================== */
.jurnal-container {
    max-width: 1400px;
    margin: auto;
    padding: 60px 20px;
}

.jurnal-header {
    text-align: center;
    margin-bottom: 48px;
}

.jurnal-header h1 {
    font-size: 40px;
    font-weight: 800;
    color: #0f172a;
}

.jurnal-header p {
    font-size: 16px;
    color: #64748b;
    margin-top: 10px;
}

/* GRID */
.jurnal-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 28px;
}
/* ==================================================
    Majalah
================================================== */
.majalah-container {
    max-width: 1400px;
    margin: auto;
    padding: 60px 20px;
}

.majalah-header {
    text-align: center;
    margin-bottom: 48px;
}

.majalah-header h1 {
    font-size: 40px;
    font-weight: 800;
    color: #0f172a;
}

.majalah-header p {
    font-size: 16px;
    color: #64748b;
    margin-top: 10px;
}

/* GRID */
.majalah-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 28px;
}
/* ==================================================
    Sembari
================================================== */

.ak-container {
    max-width: 1200px;
    margin: auto;
    margin-top: -40px;
}
/* ==================================================
   SEMBARI
================================================== */

/* ===============================
   PREVIEW MODAL (SMALL, RAPI)
================================ */

.ak-preview-modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: none;
}

.ak-preview-modal.active {
    display: flex; /* ðŸ”¥ PENTING */
    align-items: center;
    justify-content: center;
}

.ak-preview-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.55);
    z-index: 1; /* ðŸ”¥ */
}

.ak-preview-box {
    position: relative;
    background: #fff;
    width: 90%;
    max-width: 900px; /* ðŸ”¥ KUNCI UKURAN */
    height: 85vh;
    margin: 5vh auto;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
    z-index: 2; /* ðŸ”¥ INI KUNCI */
}

.ak-preview-header {
    height: 56px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 18px;
    font-weight: 600;
    border-bottom: 1px solid #e6ecf5;
}

.ak-preview-close {
    background: none;
    border: none;
    font-size: 22px;
    cursor: pointer;
}

.ak-preview-body {
    height: calc(100% - 56px); /* ðŸ”¥ KUNCI */
}

.ak-preview-body iframe {
    width: 100%;
    height: 100%;
    border: none;
    display: block;
}

.ak-sembari-ui {
    padding: 18px 0 60px;
}

/* ================= HEADER ================= */
.ak-sembari-pagehead {
    background: #0b2a4a;
    color: #fff;
    border-radius: 14px;
    padding: 22px 20px;
}

.ak-sembari-pagehead h1 {
    margin: 0;
    font-size: 30px;
    font-weight: 900;
}

.ak-sembari-breadcrumb {
    margin-top: 8px;
    font-size: 13px;
}

.ak-sembari-breadcrumb a {
    color: #fff;
    text-decoration: none;
}

/* ================= CARD ================= */
.ak-sembari-card {
    background: #fff;
    border: 1px solid #e6ecf5;
    border-radius: 14px;
    margin-top: 14px;
    box-shadow: 0 10px 30px rgba(16, 24, 40, 0.08);
}

.ak-sembari-card-section {
    padding: 16px 20px;
}

.ak-sembari-section-title {
    font-size: 18px;
    font-weight: 900;
}

.ak-sembari-section-subtitle {
    margin-top: 6px;
    font-size: 14px;
    color: #6b7a90;
}

/* ================= TOOLS ================= */
.ak-sembari-tools {
    padding: 14px 20px;
    border-bottom: 1px solid #e6ecf5;
}

.ak-sembari-tools-row {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

/* Search */
.ak-sembari-search {
    position: relative;
    flex: 1;
    max-width: 420px;
}

.ak-sembari-search input {
    width: 100%;
    height: 42px;
    padding: 0 14px; /* kiri-kanan sama */
    border-radius: 12px;
    border: 1px solid #e6ecf5;
    font-size: 14px;
}

.ak-sembari-search input:focus {
    border-color: #e6ecf5;
    box-shadow: none;
}

.ak-sembari-search-icon {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 14px;
    opacity: 0.6;
    pointer-events: none;
}

/* Select */
.ak-sembari-year {
    height: 42px;
    padding: 0 14px;
    border-radius: 12px;
    border: 1px solid #e6ecf5;
    font-size: 14px;
    min-width: 150px;
}

/* Button */
.ak-sembari-btn-primary,
.ak-sembari-btn-ghost {
    height: 42px;
    padding: 0 18px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 400;
    border: 0;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.ak-sembari-btn-primary {
    background: #1d5aa6;
    color: #fff;
}

.ak-sembari-btn-ghost {
    background: transparent;
    border: 1px solid #e6ecf5;
    color: #1a2433;
}

/* ================= TABLE ================= */
.ak-sembari-table {
    width: 100%;
}

.ak-sembari-thead,
.ak-sembari-row {
    display: grid;
    grid-template-columns:
        1fr
        100px
        140px
        90px
        90px;
    padding: 14px 20px;
    align-items: center;
}

.ak-sembari-thead {
    font-size: 12px;
    color: #6b7a90;
}

.ak-sembari-row {
    border-top: 1px solid #e6ecf5;
}

.ak-sembari-docname {
    font-size: 13px;
    line-height: 1.35;
}

/* Center kolom kecil */
.ak-sembari-thead .c,
.ak-sembari-row .c {
    display: flex;
    justify-content: center;
    align-items: center;
}

/* Badge */
.ak-sembari-badge {
    padding: 6px 10px;
    border-radius: 999px;
    background: #eaf2ff;
    color: #2d5aa6;
    font-size: 12px;
}

/* File pill */
.ak-sembari-filepill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 10px;
    border-radius: 999px;
    border: 1px solid #e6ecf5;
    font-size: 12px;
}

/* Icon button (preview & download) */
.ak-sembari-ui .ak-icon-btn {
    background: transparent;
    border: none;
    padding: 6px;
    cursor: pointer;
    color: #9ca3af;
    font-size: 16px;
    transition: color 0.15s ease, transform 0.15s ease;
}

.ak-sembari-ui .ak-icon-btn:hover {
    color: #4b5563;
    transform: scale(1.05);
}

.ak-icon-btn.is-disabled {
    color: #d1d5db; /* abu-abu pucat */
    cursor: not-allowed;
    pointer-events: none; /* benar-benar nonaktif */
    transform: none;
}

/* ================= MOBILE ================= */
@media (max-width: 820px) {
    .ak-sembari-thead {
        display: none;
    }

    .ak-sembari-row {
        grid-template-columns: 1fr;
        gap: 10px;
    }
}

/* =========================================
   SEMBARI â€” MATIKAN SEMUA EFEK HOVER CARD
========================================= */

.ak-sembari-ui .ak-sembari-card {
    transition: none !important;
    transform: none !important;
    cursor: default;
}

.ak-sembari-ui .ak-sembari-card:hover,
.ak-sembari-ui .ak-sembari-card:focus,
.ak-sembari-ui .ak-sembari-card:active {
    background: #fff !important;
    box-shadow: 0 10px 30px rgba(16, 24, 40, 0.08) !important;
    transform: none !important;
}

/* Mobile */
@media (max-width: 820px) {
    .ak-sembari-thead {
        display: none;
    }
    .ak-sembari-row {
        grid-template-columns: 1fr;
        gap: 10px;
    }
}

/* ==================================================
    Peta Pembinaan Bahasa
================================================== */
.peta-bahasa-container {
    max-width: 1400px;
    margin: auto;
    padding: 60px 20px;
}

.peta-bahasa-header {
    text-align: center;
    margin-bottom: 48px;
}

.peta-bahasa-header h1 {
    font-size: 40px;
    font-weight: 800;
    color: #0f172a;
}

.peta-bahasa-header p {
    font-size: 16px;
    color: #64748b;
    margin-top: 10px;
}

/* GRID */
.peta-bahasa-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 28px;
}
/* ==================================================
    Peta Pembinaan Sastra
================================================== */
.peta-sastra-container {
    max-width: 1400px;
    margin: auto;
    padding: 60px 20px;
}

.peta-sastra-header {
    text-align: center;
    margin-bottom: 48px;
}

.peta-sastra-header h1 {
    font-size: 40px;
    font-weight: 800;
    color: #0f172a;
}

.peta-sastra-header p {
    font-size: 16px;
    color: #64748b;
    margin-top: 10px;
}

/* GRID */
.peta-sastra-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 28px;
}

/* ==================================================
    bipa
================================================== */
.bipa-container {
    max-width: 1400px;
    margin: auto;
    padding: 60px 20px;
}

.bipa-header {
    text-align: center;
    margin-bottom: 48px;
}

.bipa-header h1 {
    font-size: 40px;
    font-weight: 800;
    color: #0f172a;
}

.bipa-header p {
    font-size: 16px;
    color: #64748b;
    margin-top: 10px;
}

/* GRID */
.bipa-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 28px;
}

/* ==================================================
    kemala
================================================== */
.kemala-container {
    max-width: 1400px;
    margin: auto;
    padding: 60px 20px;
}

.kemala-header {
    text-align: center;
    margin-bottom: 48px;
}

.kemala-header h1 {
    font-size: 40px;
    font-weight: 800;
    color: #0f172a;
}

.kemala-header p {
    font-size: 16px;
    color: #64748b;
    margin-top: 10px;
}

/* GRID */
.kemala-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 28px;
}

/* ==================================================
   SAPA BIPA
================================================== */
.sapa-bipa {
    background: #f6f6f6;
    padding: 100px 0;
    overflow: hidden;
}

.sapa-bipa-title {
    text-align: center;
    margin-bottom: 70px;
}

.sapa-bipa-title h2 {
    font-size: 48px;
    font-weight: 800;
    color: #e11d48;
    margin-bottom: 6px;
}

.sapa-bipa-title span {
    font-size: 16px;
    font-weight: 600;
    color: #1f2937;
}

.sapa-bipa-wrap {
    display: grid;
    grid-template-columns: 1fr 520px 1fr;
    gap: 40px;
    align-items: center;
}

.sapa-bipa-item {
    text-align: center;
}

.sapa-bipa-item h3 {
    font-size: 22px;
    font-weight: 600;
    margin-bottom: 8px;
    color: #111;
}

.sapa-bipa-item p {
    font-size: 15px;
    line-height: 1.7;
    color: #6b7280;
    max-width: 320px;
    margin: 0 auto;
    word-wrap: break-word;
}

.sapa-bipa-item .mt {
    margin-top: 40px;
}

/* GAMBAR */
.sapa-bipa-center img {
    max-width: 100%;
    height: auto;
}

/* ==========================
   ANIMASI HALUS SAPA BIPA
========================== */
.fade-up {
    animation: fadeUp 1s ease forwards;
}

.fade-left {
    animation: fadeLeft 1s ease forwards;
}

.fade-right {
    animation: fadeRight 1s ease forwards;
}

.zoom-in {
    animation: zoomIn 1s ease forwards;
}

@keyframes fadeUp {
    from {
        opacity: 0;
        transform: translateY(40px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeLeft {
    from {
        opacity: 0;
        transform: translateX(-40px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes fadeRight {
    from {
        opacity: 0;
        transform: translateX(40px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes zoomIn {
    from {
        opacity: 0;
        transform: scale(0.92);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

/* RESPONSIVE */
@media (max-width: 1024px) {
    .sapa-bipa-wrap {
        grid-template-columns: 1fr;
        gap: 60px;
    }

    .sapa-bipa-center img {
        max-width: 420px;
        margin: 0 auto;
        display: block;
    }
}
/* ==========================
   MOBILE FIX (INTI PERBAIKAN)
========================== */
@media (max-width: 768px) {
    .sapa-bipa {
        padding: 64px 0;
    }

    .sapa-bipa-title {
        margin-bottom: 48px;
        padding: 0 16px;
    }

    .sapa-bipa-title h2 {
        font-size: 40px;
        margin-bottom: 8px;
    }

    .sapa-bipa-title span {
        font-size: 15px;
        line-height: 1.5;
        display: block;
    }

    .sapa-bipa-wrap {
        gap: 48px;
    }

    .sapa-bipa-item {
        padding: 0 16px;
    }

    .sapa-bipa-item h3 {
        font-size: 20px;
        margin-bottom: 10px;
    }

    .sapa-bipa-item p {
        font-size: 14px;
        max-width: 100%;
        line-height: 1.7;
    }

    .sapa-bipa-center img {
        max-width: 320px;
    }
}
/* ===== CARD ===== */
.quick-access-card {
    background: #ffffff;
    border-radius: 16px;
    padding: 30px;
    border: 1px solid #e2e8f0;
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.1);
}

/* =========================================
   QUICK ACCESS – FINAL CLEAN VERSION
   ========================================= */

/* ===== SPLIT KIRI - KANAN ===== */
.qa-split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 64px;
    align-items: start;
}
.group:last-child {
    margin-bottom: 0;
}
.qa-col:first-child .group-title {
    text-align: left;
    margin-left: 185px; /* sejajar ikon (40px + gap) */
}

/* ===== JUDUL ===== */
.group-title {
    font-size: 15px;
    font-weight: 700;
    color: #0f172a;
    margin-bottom: 20px;
    text-align: center;
    letter-spacing: 0.3px;
}

/* =========================================
   LAYANAN
   DESKTOP: 2 KOLOM x 3 BARIS
   ========================================= */
.grid-layanan {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0px 32px;
}

.grid-layanan .access-item {
    width: 100%;
    justify-content: flex-start;
}

/* =========================================
   SUPERAPLIKASI
   DESKTOP: 3 KOLOM x 3 BARIS
   ========================================= */
.grid-produk {
    margin-top: 28px;
}

.grid-super {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0px 30px;
}

.grid-super .access-item {
    justify-content: flex-start;
}

/* =========================================
   ITEM (UMUM)
   ========================================= */
.access-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 6px 10px;
    text-decoration: none;
    border-radius: 10px;
    background: transparent;
    border: 1px solid transparent;
    transition: background 0.2s ease;
    height: 64px; /* ⬅️ lebih rapat */
    min-height: 50px; /* tetap aman */
}

.access-item:hover {
    background: #f8fafc;
}

/* =========================================
   ICON
   ========================================= */
.icon-wrap {
    width: 50px;
    height: 50px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    background: #fff;
    border: 2px solid;
}
.icon-wrap img {
    width: 70%;
    height: 70%;
    object-fit: contain; /* ⬅️ JAGA LOGO TIDAK TERPOTONG */
    object-position: center; /* ⬅️ PAKSA TENGAH */
    display: block;
}
/* =========================================
   TEXT
   ========================================= */
.app-desc {
    font-size: 11px; /* ⬅️ lebih kecil */
    font-weight: 400;
    color: #475569; /* ⬅️ abu gelap (bukan biru) */
    line-height: 1.2;

    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.text-wrap {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 2px;
}
.app-title {
    font-weight: 700;
    font-size: 14px;
    color: #0f172a;
    line-height: 1.2;

    white-space: nowrap; /* ⬅️ PAKSA 1 BARIS */
    overflow: hidden; /* ⬅️ POTONG JIKA PANJANG */
    text-overflow: ellipsis; /* ⬅️ TAMPILKAN ... */
    max-width: 100%;
}

/* =========================================
   WARNA IKON
   ========================================= */
.color-blue {
    color: #2563eb;
    border-color: #dbeafe;
    background: #eff6ff;
}
.color-cyan {
    color: #0891b2;
    border-color: #cffafe;
    background: #ecfeff;
}
.color-indigo {
    color: #4f46e5;
    border-color: #e0e7ff;
    background: #eef2ff;
}
.color-red {
    color: #dc2626;
    border-color: #fee2e2;
    background: #fef2f2;
}
.color-rose {
    color: #e11d48;
    border-color: #ffe4e6;
    background: #fff1f2;
}
.color-orange {
    color: #ea580c;
    border-color: #ffedd5;
    background: #fff7ed;
}
.color-purple {
    color: #9333ea;
    border-color: #f3e8ff;
    background: #faf5ff;
}
.color-green {
    color: #16a34a;
    border-color: #dcfce7;
    background: #f0fdf4;
}
.color-teal {
    color: #0d9488;
    border-color: #ccfbf1;
    background: #f0fdfa;
}
.color-blue-dark {
    color: #1e3a8a;
    border-color: #dbeafe;
    background: #eff6ff;
}
.color-slate {
    color: #475569;
    border-color: #e2e8f0;
    background: #f8fafc;
}
.color-pink {
    color: #db2777;
    border-color: #fce7f3;
    background: #fdf2f8;
}

/* =========================================
   RESPONSIVE – LAPTOP KECIL
   ========================================= */
@media (max-width: 1280px) {
    .qa-split {
        gap: 48px;
    }
}

/* =========================================
   RESPONSIVE – TABLET LANDSCAPE
   ========================================= */
@media (max-width: 1024px) {
    /* Split jadi atas-bawah */
    .qa-split {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    /* Layanan tetap 2 kolom */
    .grid-layanan {
        grid-template-columns: repeat(2, 1fr);
        max-width: 520px;
        margin: 0 auto;
    }

    /* Superaplikasi jadi 2 kolom */
    .grid-super {
        grid-template-columns: repeat(2, 1fr);
        max-width: 520px;
        margin: 0 auto;
    }

    /* Judul layanan kembali rapi */
    .qa-col:first-child .group-title {
        margin-left: 0;
        text-align: center;
    }
}

/* =========================================
   RESPONSIVE – TABLET PORTRAIT
   ========================================= */
@media (max-width: 768px) {
    /* Semua grid jadi list */
    .grid-layanan,
    .grid-super {
        display: flex;
        flex-direction: column;
        gap: 0;
    }

    /* Item full width */
    .access-item {
        width: 100%;
        min-height: 56px;
        padding: 12px 14px;
        border-radius: 0;
        border-bottom: 1px solid #eef2f7;
    }

    /* Judul rapi di tengah */
    .group-title {
        text-align: center;
        margin-left: 0;
    }
}

/* =========================================
   RESPONSIVE – MOBILE KECIL
   ========================================= */
@media (max-width: 480px) {
    .access-item {
        gap: 14px;
        padding: 14px 16px;
    }

    .icon-wrap {
        width: 42px;
        height: 42px;
    }

    .app-title {
        font-size: 14px;
        line-height: 1.2;
    }
}

