/* ============ AKSESIBILITAS & NAVIGASI MOBILE ============ */

/* Lewati ke konten */
.skip-link{ position:absolute; left:-9999px; top:0; z-index:3000; background:#0a5232; color:#fff;
    padding:12px 18px; border-radius:0 0 10px 0; font-weight:700; text-decoration:none; }
.skip-link:focus{ left:0; }

/* Indikator fokus jelas (keyboard) */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible,
[tabindex]:focus-visible{ outline:3px solid #1565c0 !important; outline-offset:2px !important; border-radius:4px; }

/* Perbesar teks (memakai zoom agar seluruh tata letak ikut proporsional) */
body.teks-1 .portal-navbar, body.teks-1 main, body.teks-1 .portal-footer{ zoom:1.12; }
body.teks-2 .portal-navbar, body.teks-2 main, body.teks-2 .portal-footer{ zoom:1.25; }

/* Mode kontras tinggi */
body.kontras-tinggi{ background:#fff; }
body.kontras-tinggi main, body.kontras-tinggi .portal-footer{ background:#fff !important; }
body.kontras-tinggi main, body.kontras-tinggi main p, body.kontras-tinggi main li,
body.kontras-tinggi main td, body.kontras-tinggi main th, body.kontras-tinggi h1,
body.kontras-tinggi h2, body.kontras-tinggi h3, body.kontras-tinggi .stat-label,
body.kontras-tinggi .welcome-left p, body.kontras-tinggi .text-muted{ color:#111 !important; }
body.kontras-tinggi main a:not(.btn):not(.stat-link){ color:#00437a !important; text-decoration:underline !important; }
body.kontras-tinggi .stat-card, body.kontras-tinggi .dash-card, body.kontras-tinggi .card,
body.kontras-tinggi table, body.kontras-tinggi .info-box{ border:2px solid #111 !important; }
body.kontras-tinggi .btn-katalog{ color:#3a2b00 !important; }

/* Target sentuh cukup besar */
.portal-navbar .nav-center a, .btn, .hero-chips a{ min-height:44px; }

/* ---- Tombol menu (hamburger) ---- */
.nav-toggle{ display:none; background:transparent; border:0; color:#0a5232; font-size:26px;
    cursor:pointer; padding:6px 10px; line-height:1; align-items:center; }
@media (max-width:820px){
    .nav-toggle{ display:inline-flex; }
    .portal-navbar{ flex-wrap:wrap; align-items:center; }
    .portal-navbar .brand{ flex:1; }
    .portal-navbar .nav-right{ display:none; }
    .nav-center{ display:none !important; flex-direction:column; width:100%; order:5; gap:0 !important;
        margin-top:8px; border-top:1px solid #e2ebe4; }
    .nav-center.open{ display:flex !important; }
    .nav-center a{ width:100%; padding:13px 8px !important; border-bottom:1px solid #eef3ef;
        display:flex; align-items:center; }
}

/* ---- Panel aksesibilitas mengambang ---- */
.a11y-fab{ position:fixed; left:16px; bottom:18px; z-index:2500; width:52px; height:52px; border-radius:50%;
    background:#0a5232; color:#fff; border:0; box-shadow:0 6px 18px rgba(10,45,26,.35); cursor:pointer; font-size:24px; }
.a11y-panel{ position:fixed; left:16px; bottom:80px; z-index:2500; width:250px; background:#fff;
    border:1px solid #e2ebe4; border-radius:14px; box-shadow:0 10px 30px rgba(10,45,26,.2); padding:14px; display:none; }
.a11y-panel.open{ display:block; }
.a11y-panel h4{ font-size:14px; margin:0 0 10px; color:#0a5232; display:flex; align-items:center; gap:6px; }
.a11y-row{ display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; font-size:13px; color:#333; }
.a11y-row .grp{ display:flex; gap:6px; }
.a11y-btn{ border:1px solid #cfe0d5; background:#f5faf6; color:#0a5232; border-radius:8px; padding:6px 10px;
    cursor:pointer; font-size:13px; font-weight:700; min-width:38px; }
.a11y-btn.aktif{ background:#0a5232; color:#fff; border-color:#0a5232; }

/* ===== Penguncian tata letak (menimpa aturan lama style.css apapun urutannya) ===== */
.portal-navbar{ height:auto !important; min-height:56px !important; }
.quick-stats{ margin-top:28px !important; }
.quick-stats > h3, .quick-stats h3{ color:#0a5232 !important; font-size:15px !important; }
