:root {
    --ps-blue: #2563eb;
    --ps-blue-dark: #1d4ed8;
    --ps-blue-soft: #eff6ff;
    --ps-blue-pale: #f8fbff;
    --ps-ink: #1f2937;
    --ps-muted: #6b7280;
    --ps-line: #ece7e3;
    --ps-surface: #ffffff;
    --ps-bg: #f5f9ff;
    --ps-shadow: 0 10px 35px rgba(31, 41, 55, .07);
}

html { scroll-behavior: smooth; }

body {
    margin: 0;
    background: var(--ps-bg);
    color: var(--ps-ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

main { min-height: 55vh; }

a { transition: color .18s ease, background-color .18s ease, border-color .18s ease, transform .18s ease, box-shadow .18s ease; }

/* =========================
   GLOBAL BOOTSTRAP OVERRIDES
   ========================= */
.text-success { color: var(--ps-blue) !important; }
.btn-success {
    background: var(--ps-blue) !important;
    border-color: var(--ps-blue) !important;
}
.btn-success:hover,
.btn-success:focus {
    background: var(--ps-blue-dark) !important;
    border-color: var(--ps-blue-dark) !important;
}
.btn-outline-success {
    color: var(--ps-blue) !important;
    border-color: #93c5fd !important;
}
.btn-outline-success:hover,
.btn-outline-success:focus {
    color: #fff !important;
    background: var(--ps-blue) !important;
    border-color: var(--ps-blue) !important;
}
.bg-success { background-color: var(--ps-blue) !important; }
.text-bg-success { background-color: var(--ps-blue) !important; }
.bg-light { background-color: #f8fbff !important; }

.card {
    border-color: var(--ps-line);
    box-shadow: 0 4px 18px rgba(31, 41, 55, .045);
}

.form-control,
.form-select {
    border-color: #dbeafe;
    border-radius: 12px;
    padding-top: .72rem;
    padding-bottom: .72rem;
}

.form-control:focus,
.form-select:focus {
    border-color: #60a5fa;
    box-shadow: 0 0 0 .22rem rgba(37, 99, 235, .12);
}

/* =========================
   NAVBAR
   ========================= */
.navbar-main {
    background: rgba(255, 255, 255, .92) !important;
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-bottom: 1px solid rgba(236, 231, 227, .95);
}

.navbar-main .container { min-height: 72px; }

.navbar-main .navbar-brand {
    color: var(--ps-ink) !important;
    font-weight: 800;
    letter-spacing: -.4px;
}

.navbar-main .navbar-brand img {
    width: 188px;
    max-width: 70vw;
    height: auto;
    display: block;
}

.navbar-main .nav-link {
    position: relative;
    color: #4b5563 !important;
    font-weight: 600;
    padding: .7rem .8rem !important;
}

.navbar-main .nav-link::after {
    content: "";
    position: absolute;
    left: .8rem;
    right: .8rem;
    bottom: .25rem;
    height: 2px;
    border-radius: 10px;
    background: var(--ps-blue);
    transform: scaleX(0);
    transform-origin: center;
    transition: transform .18s ease;
}

.navbar-main .nav-link:hover,
.navbar-main .nav-link:focus,
.navbar-main .nav-link.active {
    color: var(--ps-blue) !important;
}

.navbar-main .nav-link:hover::after,
.navbar-main .nav-link.active::after { transform: scaleX(1); }

.navbar-main .navbar-toggler {
    border-color: #dbeafe;
    border-radius: 10px;
}

.navbar-main .navbar-toggler-icon {
    filter: brightness(0) saturate(100%) invert(49%) sepia(88%) saturate(2450%) hue-rotate(359deg) brightness(98%) contrast(96%);
}

/* =========================
   HOME / HERO
   ========================= */
.hero {
    position: relative;
    overflow: hidden;
    color: #fff;
    padding: 86px 0 92px;
    background:
        radial-gradient(circle at 90% 10%, rgba(255,255,255,.20), transparent 25%),
        radial-gradient(circle at 15% 90%, rgba(255,255,255,.10), transparent 26%),
        linear-gradient(135deg, #1e40af 0%, #2563eb 48%, #60a5fa 100%);
}

.hero::before,
.hero::after {
    content: "";
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
    border: 1px solid rgba(255,255,255,.14);
}

.hero::before {
    width: 420px;
    height: 420px;
    right: -170px;
    top: -205px;
}

.hero::after {
    width: 310px;
    height: 310px;
    left: -180px;
    bottom: -200px;
}

.hero-content { position: relative; z-index: 2; }

.hero-title {
    max-width: 720px;
    margin-bottom: 1.2rem;
    font-size: clamp(2.35rem, 4vw, 4.25rem);
    line-height: 1.05;
    font-weight: 850;
    letter-spacing: -2px;
}

.hero-description {
    max-width: 690px;
    font-size: 1.07rem;
    line-height: 1.8;
    color: rgba(255,255,255,.9);
}

.hero-card {
    background: rgba(255,255,255,.98);
    color: var(--ps-ink);
    border: 1px solid rgba(255,255,255,.6);
    border-radius: 24px;
    padding: 28px;
    box-shadow: 0 24px 65px rgba(124, 45, 18, .22);
}

.hero-card .border-bottom { border-color: #e2e8f0 !important; }

.section-padding { padding: 78px 0; }

.section-title {
    font-weight: 800;
    letter-spacing: -.8px;
    color: #171f2a;
}

.section-description { color: var(--ps-muted); }

/* =========================
   HOME CARDS / CONTENT
   ========================= */
.mode-card,
.tryout-card,
.subject-card,
.package-card,
.group-sidebar,
.related-soal,
.question-card,
.navigation-card,
.hasil-card,
.bank-page .card {
    border: 1px solid var(--ps-line);
    box-shadow: var(--ps-shadow);
}

.mode-card,
.tryout-card {
    border-radius: 20px;
    background: var(--ps-surface);
    height: 100%;
}

.mode-card:hover,
.tryout-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 18px 45px rgba(31, 41, 55, .10);
}

.mode-icon {
    width: 58px;
    height: 58px;
    border-radius: 16px;
    background: var(--ps-blue-soft);
    color: var(--ps-blue-dark);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 27px;
    margin-bottom: 20px;
}

.subject-card {
    background: #fff;
    border-radius: 16px;
    padding: 16px;
    text-decoration: none;
    display: block;
    color: var(--ps-ink);
    height: 100%;
}

.subject-card:hover {
    color: var(--ps-blue-dark);
    border-color: #93c5fd;
    background: #f5f9ff;
    transform: translateY(-3px);
    box-shadow: 0 12px 28px rgba(249, 115, 22, .10);
}

.subject-icon {
    width: 48px;
    height: 48px;
    border-radius: 14px;
    background: var(--ps-blue-soft);
    color: var(--ps-blue-dark);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 21px;
    margin-bottom: 14px;
}

.tryout-card { overflow: hidden; display: flex; flex-direction: column; }
.tryout-header { background: var(--ps-blue-soft); padding: 22px; min-height: 120px; }
.tryout-body { padding: 22px; flex: 1; display: flex; flex-direction: column; }
.tryout-body > .flex-grow-1 { flex: 1; }

.info-item { color: var(--ps-muted); font-size: 14px; }

.stat-section {
    background: linear-gradient(135deg, #1e40af, #2563eb);
    color: #fff;
}

.stat-number { font-size: 34px; font-weight: 800; letter-spacing: -1px; }

.cta-box {
    background: linear-gradient(135deg, #fff2e9, #f8fbff);
    border: 1px solid #dbeafe;
    border-radius: 26px;
    padding: 55px;
}

/* =========================
   GROUP / PACKAGE PAGES
   ========================= */
.bank-page { background: var(--ps-bg); padding: 32px 0 72px; min-height: 70vh; }

.bank-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    align-items: center;
    color: #64748b;
    font-size: 13px;
    margin-bottom: 22px;
}

.bank-breadcrumb a { color: #64748b; text-decoration: none; }
.bank-breadcrumb a:hover { color: var(--ps-blue-dark); }

.subject-info h1 {
    font-size: clamp(1.8rem, 3vw, 2.55rem);
    font-weight: 850;
    letter-spacing: -1px;
    color: #1f2937;
}

.subject-info p { color: #64748b; line-height: 1.75; }

.sidebar-sticky { position: sticky; top: 92px; }

.group-sidebar {
    background: #fff;
    border-radius: 20px;
    padding: 20px;
}

.group-title {
    font-size: 20px;
    font-weight: 800;
    color: #20252d;
    margin-bottom: 14px;
}

.group-title span { color: var(--ps-blue-dark); }
.group-list { margin: 0; padding: 0; list-style: none; }
.group-item { border-bottom: 1px solid #e2e8f0; }
.group-item:last-child { border-bottom: 0; }

.group-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 11px;
    margin: 3px 0;
    color: #475569;
    text-decoration: none;
    border-radius: 12px;
}

.group-link:hover {
    background: #eff6ff;
    color: var(--ps-blue-dark);
    transform: translateX(3px);
}

.group-link:hover .group-icon { background: var(--ps-blue); color: #fff; }
.group-link:hover .group-count { background: #dbeafe; color: var(--ps-blue-dark); }

.group-link.active {
    position: relative;
    background: var(--ps-blue-soft);
    color: var(--ps-blue-dark);
    font-weight: 750;
    box-shadow: inset 0 0 0 1px #dbeafe;
}

.group-link.active::before {
    content: "";
    position: absolute;
    left: 0;
    top: 7px;
    bottom: 7px;
    width: 4px;
    border-radius: 0 6px 6px 0;
    background: var(--ps-blue);
}

.group-link.active .group-icon {
    background: var(--ps-blue);
    color: #fff;
    box-shadow: 0 4px 10px rgba(249,115,22,.18);
}

.group-link.active .group-count { background: var(--ps-blue); color: #fff; }
.group-link.active:hover { background: #dbeafe; color: #1e40af; }

.group-left { display: flex; align-items: center; gap: 10px; min-width: 0; }
.group-icon {
    width: 27px;
    height: 27px;
    flex: 0 0 27px;
    border-radius: 8px;
    background: #f1f5f9;
    color: #2563eb;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
}
.group-count {
    flex: 0 0 auto;
    padding: 3px 8px;
    border-radius: 999px;
    background: #f7f4f2;
    color: #64748b;
    font-size: 11px;
}
.group-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.package-card {
    background: #fff;
    border-radius: 17px;
    overflow: hidden;
    height: 100%;
    transition: .2s ease;
}

.package-card:hover {
    transform: translateY(-3px);
    border-color: #93c5fd;
    box-shadow: 0 16px 34px rgba(31,41,55,.09);
}

.package-header {
    background: #f5f9ff;
    border-bottom: 1px solid #e2e8f0;
    padding: 17px 18px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 15px;
}
.package-title { font-size: 15px; font-weight: 750; color: #2c3036; margin: 0; line-height: 1.45; }
.package-count { white-space: nowrap; color: #64748b; font-size: 13px; }
.package-body { padding: 17px; }
.package-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.package-actions .btn { border-radius: 10px; padding: 10px 15px; font-size: 14px; font-weight: 700; }

.empty-box {
    background: #fff;
    border: 1px dashed #bfdbfe;
    border-radius: 18px;
    padding: 28px;
}

/* =========================
   QUIZ / LATIHAN
   ========================= */
.latihan-page { background: #f5f9ff; min-height: 70vh; }
.question-card,
.navigation-card {
    border: 1px solid var(--ps-line);
    border-radius: 20px;
    background: #fff;
}

.question-image,
.option-image,
.explanation-image {
    display: block;
    max-width: 100%;
    height: auto;
    margin-top: 12px;
    border-radius: 12px;
    object-fit: contain;
}
.question-image { max-height: 220px; margin-left: auto; margin-right: auto; }
.option-image { max-height: 220px; margin-left: 28px; }
.explanation-image { max-height: 360px; margin-left: auto; margin-right: auto; }
.option.has-image { min-height: 90px; }

.option {
    cursor: pointer;
    transition: .15s;
    border-radius: 13px !important;
    border-color: #e2e8f0 !important;
}
.option:hover {
    background: #f8fbff;
    border-color: #93c5fd !important;
}
.option.active {
    border-color: var(--ps-blue) !important;
    background: var(--ps-blue-soft);
}
.option-content { display: inline-block; width: calc(100% - 35px); vertical-align: top; }

.nomor-soal {
    width: 42px;
    height: 42px;
    min-width: 42px;
    max-width: 42px;
    padding: 0 !important;
    margin: 3px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 42px;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 700;
    box-sizing: border-box;
}

.nomor-current { outline: 3px solid rgba(249,115,22,.18); }
.timer-box { min-width: 130px; }

.tryout-alert {
    border: 1px solid #dbeafe;
    background: #fff4eb;
    color: #9a3412;
    border-radius: 16px;
}

.question-meta { color: #7b746d; }

.related-soal {
    margin-top: 28px;
    background: #fff;
    border-radius: 18px;
    overflow: hidden;
}
.related-soal-header { padding: 18px 22px; border-bottom: 1px solid #f0e9e5; background: #f5f9ff; }
.related-soal-title { margin: 0; font-size: 19px; font-weight: 800; color: #292e35; }
.related-soal-subtitle { margin: 4px 0 0; color: #81776e; font-size: 13px; }
.related-soal-list { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 18px 22px 22px; }
.related-soal-item { display: block; padding: 14px 15px; border: 1px solid #e8e1dd; border-radius: 12px; background: #fff; color: #3f4348; text-decoration: none; }
.related-soal-item:hover { background: #fff7f2; border-color: #93c5fd; color: #1e40af; transform: translateY(-2px); box-shadow: 0 8px 18px rgba(249,115,22,.08); }
.related-soal-item-title { display: block; font-weight: 700; line-height: 1.5; }
.related-soal-item-meta { display: block; margin-top: 5px; color: #8f867e; font-size: 12px; }
.navigation-card.sticky-top { top: 92px; z-index: 100; }

/* =========================
   RESULTS
   ========================= */
.result-stat {
    background: #f5f9ff;
    border: 1px solid #f0e5de;
    border-radius: 15px;
    padding: 14px;
}
.result-stat.success { background: #eff6ff; border-color: #dbeafe; }
.result-stat.danger { background: #fff5f4; }
.result-stat.muted { background: #f8f7f6; }
.result-stat-label { color: #857a72; font-size: 12px; }
.result-stat-value { margin-top: 3px; font-size: 20px; font-weight: 800; color: #262b33; }

/* =========================
   FOOTER
   ========================= */
footer {
    margin-top: 0;
    background: #1f2937;
    color: #aeb7c3;
}
footer a { color: #cbd5e1; text-decoration: none; }
footer a:hover { color: #60a5fa; }

/* =========================
   SCROLL TOP
   ========================= */
#scrollTopBtn {
    position: fixed;
    right: 24px;
    bottom: 24px;
    width: 46px;
    height: 46px;
    border: 0;
    border-radius: 14px;
    background: var(--ps-blue);
    color: #fff;
    font-size: 21px;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transform: translateY(15px);
    transition: all .25s ease;
    z-index: 9999;
    box-shadow: 0 10px 25px rgba(249,115,22,.25);
}
#scrollTopBtn.show { opacity: 1; visibility: visible; transform: translateY(0); }
#scrollTopBtn:hover { background: var(--ps-blue-dark); transform: translateY(-3px); }

@media (max-width: 991.98px) {
    .navbar-main .navbar-collapse { padding-top: .8rem; padding-bottom: .8rem; }
    .navbar-main .navbar-collapse .d-flex { margin-top: 12px; flex-direction: column; }
    .navbar-main .navbar-collapse .btn { width: 100%; }
    .hero { padding: 64px 0 72px; }
    .hero-title { letter-spacing: -1.2px; }
    .hero-card { margin-top: 30px; }
    .sidebar-sticky { position: static; }
    .navigation-card.sticky-top { position: static !important; }
}

@media (max-width: 575.98px) {
    .navbar-main .navbar-brand img { width: 165px; }
    .hero-title { font-size: 2.35rem; }
    .hero-description { font-size: 1rem; }
    .hero-card { padding: 20px; border-radius: 19px; }
    .cta-box { padding: 35px 24px; }
    .group-sidebar { padding: 16px; }
    .package-actions { grid-template-columns: 1fr; }
    .related-soal-list { grid-template-columns: 1fr; padding: 15px; }
    .related-soal-header { padding: 16px 18px; }
    #scrollTopBtn { right: 15px; bottom: 15px; width: 42px; height: 42px; }
}

/* =========================
   MODERN VISUAL REFRESH
   ========================= */
:root {
    --ps-blue: #2563eb;
    --ps-blue-dark: #1e40af;
    --ps-ink: #17202b;
    --ps-bg: #fffaf6;
}

body { background: #f5f9ff; }

.navbar-main { box-shadow: 0 1px 0 rgba(15, 23, 42, .03), 0 10px 35px rgba(15, 23, 42, .03); }
.nav-modern { gap: .25rem; }
.nav-modern .nav-link { border-radius: 12px; }
.nav-modern .nav-link:hover, .nav-modern .nav-link.active { background: #eff6ff; }

.hero-modern { min-height: 680px; padding: 82px 0 96px; background: linear-gradient(120deg, #9a3412 0%, #1d4ed8 44%, #2563eb 72%, #60a5fa 100%); }
.hero-modern::before, .hero-modern::after { display:none; }
.hero-glow { position:absolute; border-radius:50%; filter:blur(2px); pointer-events:none; }
.hero-glow-a { width:420px; height:420px; right:-100px; top:-160px; background:rgba(255,255,255,.12); }
.hero-glow-b { width:300px; height:300px; left:-130px; bottom:-160px; background:rgba(255,255,255,.08); }
.hero-kicker { display:inline-flex; align-items:center; gap:9px; color:#dbeafe; font-weight:700; margin-bottom:20px; font-size:.92rem; }
.hero-kicker-dot { width:9px; height:9px; border-radius:50%; background:#fff; box-shadow:0 0 0 5px rgba(255,255,255,.14); }
.hero-title { font-size:clamp(2.6rem, 5vw, 4.9rem); letter-spacing:-2.8px; line-height:1.01; }
.hero-title span { color:#dbeafe; }
.hero-description { font-size:1.08rem; max-width:650px; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; }
.btn-ghost-light { color:#fff; border:1px solid rgba(255,255,255,.42); background:rgba(255,255,255,.09); }
.btn-ghost-light:hover { color:#fff; border-color:#fff; background:rgba(255,255,255,.16); }
.hero-trust { display:flex; flex-wrap:wrap; gap:14px 22px; color:#dbeafe; font-size:.88rem; font-weight:600; }
.hero-visual { position:relative; margin:0 auto 24px; max-width:600px; }
.hero-visual img { display:block; width:100%; filter: drop-shadow(0 24px 35px rgba(67,20,7,.23)); }
.floating-badge { position:absolute; display:flex; flex-direction:column; gap:2px; background:#fff; color:#17202b; border:1px solid rgba(255,255,255,.75); border-radius:16px; padding:12px 16px; box-shadow:0 15px 35px rgba(67,20,7,.16); }
.floating-badge strong { color:#1e40af; font-size:1rem; }
.floating-badge span { color:#78716c; font-size:.76rem; }
.floating-badge-top { top:18%; left:-7%; }
.floating-badge-bottom { right:-4%; bottom:8%; }
.hero-card-modern { position:relative; z-index:3; margin-top:-3px; border-radius:22px; padding:24px; }
.hero-card-icon { width:52px;height:52px;border-radius:15px;background:#eff6ff;color:#1d4ed8;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:900;margin-right:14px; }

.section-soft { background:linear-gradient(180deg,#fffaf6 0%,#fff 100%); }
.section-heading { max-width:760px; margin-left:auto; margin-right:auto; }
.mode-card { border-radius:26px; overflow:hidden; position:relative; }
.mode-card::before { content:""; position:absolute; inset:0 auto auto 0; width:100%; height:5px; background:linear-gradient(90deg,#1d4ed8,#60a5fa); }
.mode-card .card-body { padding:26px !important; }
.mode-icon { width:100%; height:155px; border-radius:20px; background:#eff6ff; display:flex; align-items:center; justify-content:center; overflow:hidden; margin-bottom:22px; }
.mode-icon img { width:210px; height:auto; }
.mode-card ul { padding-left:1.1rem; line-height:1.9; }

.section-link { color:#1e40af; font-weight:750; text-decoration:none; white-space:nowrap; }
.section-link span { display:inline-block; transition:transform .18s ease; }
.section-link:hover { color:#9a3412; }
.section-link:hover span { transform:translateX(4px); }
.subject-card { padding:18px; border-radius:18px; transition:all .2s ease; }
.subject-card-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:18px; }
.subject-mini-icon { width:38px; height:38px; border-radius:12px; background:#eff6ff; color:#1d4ed8; display:flex; align-items:center; justify-content:center; }
.subject-arrow { color:#a8a29e; }
.subject-card:hover .subject-arrow { color:#1d4ed8; transform:translateX(3px); }

.tryout-card { border-radius:22px; overflow:hidden; }
.tryout-header { background:linear-gradient(135deg,#eff6ff,#fff9f5); border-bottom:1px solid #f3e8df; }
.tryout-header .badge { background:#1d4ed8 !important; }

.stat-section { background:linear-gradient(110deg,#7c2d12,#1d4ed8,#2563eb); }
.stat-number { font-size:clamp(2rem,3vw,2.8rem); }

.cta-modern { position:relative; overflow:hidden; background:linear-gradient(135deg,#fff0e3,#fffaf6); }
.cta-modern::before, .cta-modern::after { content:""; position:absolute; border-radius:50%; background:#fdba74; opacity:.18; }
.cta-modern::before { width:190px;height:190px; right:-55px;top:-90px; }
.cta-modern::after { width:120px;height:120px; left:-50px;bottom:-70px; }

.footer-modern { background:#17130f; color:#aaa39c; }
.footer-logo { width:176px; filter:brightness(0) invert(1); opacity:.95; }
.footer-lead { max-width:430px; line-height:1.8; }
.footer-modern h6 { color:#fff; font-weight:800; margin-bottom:16px; }
.footer-modern a { display:block; color:#aaa39c; text-decoration:none; margin:0 0 10px; }
.footer-modern a:hover { color:#60a5fa; }
.footer-pill { display:inline-flex; align-items:center; gap:9px; padding:9px 13px; border:1px solid #3b3028; border-radius:999px; font-size:.82rem; }
.pulse-dot { width:8px;height:8px;border-radius:50%;background:#60a5fa; box-shadow:0 0 0 5px rgba(251,146,60,.12); }
.footer-bottom { border-top:1px solid #332a24; display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-size:.82rem; }

#scrollTopBtn { border:1px solid #dbeafe; background:#fff; color:#1d4ed8; box-shadow:0 10px 25px rgba(31,41,55,.12); }
#scrollTopBtn:hover { background:#eff6ff; transform:translateY(-3px); }

@media (max-width: 991.98px) {
    .hero-modern { min-height:auto; padding:58px 0 72px; }
    .hero-visual { max-width:520px; }
    .floating-badge-top { left:0; }
    .floating-badge-bottom { right:0; }
}
@media (max-width: 575.98px) {
    .hero-title { letter-spacing:-1.7px; }
    .hero-actions .btn { width:100%; }
    .hero-trust { gap:8px 14px; }
    .floating-badge { transform:scale(.86); transform-origin:center; }
    .floating-badge-top { top:5%; }
    .floating-badge-bottom { bottom:2%; }
    .footer-bottom { display:block; }
    .footer-bottom span { display:block; margin-bottom:7px; }
}


/* ==========================================================
   SOALPRO.ID — MODERN BLUE DESIGN SYSTEM
   ========================================================== */
:root{
    --sp-blue:#2563eb;
    --sp-blue-dark:#1d4ed8;
    --sp-blue-deep:#1e3a8a;
    --sp-blue-soft:#eff6ff;
    --sp-blue-pale:#f8fbff;
    --sp-cyan:#0ea5e9;
    --sp-ink:#0f172a;
    --sp-muted:#64748b;
    --sp-line:#e2e8f0;
    --sp-bg:#f5f9ff;
    --sp-radius:18px;
}

body{
    background:
      radial-gradient(circle at 10% 0%, rgba(37,99,235,.055), transparent 24rem),
      linear-gradient(180deg,#f8fbff 0%,#f5f9ff 100%);
}

.navbar-main{
    background:rgba(255,255,255,.88)!important;
    border-bottom:1px solid rgba(226,232,240,.9);
    box-shadow:0 6px 24px rgba(15,23,42,.045);
}
.brand-text{color:var(--sp-ink)!important;font-weight:900!important}
.brand-text span,.footer-logo-text span{color:var(--sp-blue)!important}
.navbar-main .nav-link.active,.navbar-main .nav-link:hover{color:var(--sp-blue)!important}
.navbar-main .nav-link::after{background:linear-gradient(90deg,var(--sp-blue),var(--sp-cyan))!important}
.navbar-main .btn-outline-success{
    border-color:#bfdbfe!important;color:var(--sp-blue)!important;
}
.navbar-main .btn-success{
    background:linear-gradient(135deg,var(--sp-blue),var(--sp-blue-dark))!important;
    border-color:var(--sp-blue)!important;
    box-shadow:0 8px 20px rgba(37,99,235,.2);
}
.navbar-main .btn-success:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(37,99,235,.28)}

.hero{
    background:
      radial-gradient(circle at 82% 18%,rgba(125,211,252,.30),transparent 20%),
      radial-gradient(circle at 10% 88%,rgba(147,197,253,.20),transparent 24%),
      linear-gradient(135deg,#1e3a8a 0%,#2563eb 48%,#0ea5e9 100%)!important;
    padding:96px 0 105px;
}
.hero-title{font-weight:900;letter-spacing:-2.5px}
.hero-title span{color:#dbeafe}
.hero-description{color:rgba(255,255,255,.91)}
.hero-kicker{
    display:inline-flex;align-items:center;gap:9px;
    padding:8px 13px;border:1px solid rgba(255,255,255,.22);
    background:rgba(255,255,255,.10);border-radius:999px;
    font-size:.82rem;font-weight:700;margin-bottom:20px;
    backdrop-filter:blur(10px)
}
.hero-kicker-dot{width:8px;height:8px;border-radius:50%;background:#bfdbfe;box-shadow:0 0 0 5px rgba(191,219,254,.15)}
.hero-actions .btn{border-radius:13px;font-weight:800}
.btn-ghost-light{border:1px solid rgba(255,255,255,.3);color:#fff!important;background:rgba(255,255,255,.08)}
.btn-ghost-light:hover{background:rgba(255,255,255,.16)}
.hero-trust{display:flex;flex-wrap:wrap;gap:18px;color:rgba(255,255,255,.82);font-size:.88rem}
.hero-card-modern,.hero-card{
    border-radius:24px!important;
    box-shadow:0 26px 70px rgba(15,23,42,.24)!important;
}
.hero-card-icon{
    width:44px;height:44px;border-radius:14px;
    display:grid;place-items:center;background:var(--sp-blue-soft);
    color:var(--sp-blue);font-weight:900;margin-right:13px;
}
.floating-badge{
    background:rgba(255,255,255,.96)!important;
    border:1px solid rgba(255,255,255,.75)!important;
    box-shadow:0 14px 30px rgba(15,23,42,.16)!important;
    border-radius:15px!important;
}

.section-soft{background:linear-gradient(180deg,#f5f9ff,#eef6ff)!important}
.section-title{color:var(--sp-ink)!important;font-weight:900}
.section-description{color:var(--sp-muted)!important}

.mode-card,.tryout-card,.subject-card,.package-card,.group-sidebar,.question-card,.navigation-card{
    border-color:var(--sp-line)!important;
    border-radius:20px!important;
    box-shadow:0 10px 30px rgba(15,23,42,.055)!important;
}
.mode-card:hover,.tryout-card:hover,.package-card:hover{
    border-color:#bfdbfe!important;
    box-shadow:0 18px 42px rgba(37,99,235,.10)!important;
}
.mode-icon,.subject-icon{
    background:var(--sp-blue-soft)!important;color:var(--sp-blue)!important;
}
.subject-card:hover{
    color:var(--sp-blue)!important;
    border-color:#93c5fd!important;
    background:#f8fbff!important;
}
.tryout-header{background:linear-gradient(135deg,#eff6ff,#f8fbff)!important}
.stat-section{
    background:linear-gradient(135deg,#1e3a8a,#2563eb,#0ea5e9)!important;
}
.cta-box{
    background:linear-gradient(135deg,#eff6ff,#f8fbff)!important;
    border-color:#bfdbfe!important;
}

.bank-page,.latihan-page{background:var(--sp-bg)!important}
.subject-info{
    border-left-color:var(--sp-blue)!important;
    border-color:var(--sp-line)!important;
    box-shadow:0 8px 26px rgba(15,23,42,.045)!important;
}
.group-link:hover,.group-link.active{
    background:var(--sp-blue-soft)!important;
    color:var(--sp-blue-dark)!important;
}
.group-link.active{box-shadow:inset 0 0 0 1px #dbeafe!important}
.group-link.active::before{background:var(--sp-blue)!important}
.group-icon{color:var(--sp-blue)!important}
.group-link:hover .group-icon,.group-link.active .group-icon,.group-link.active .group-count{
    background:var(--sp-blue)!important;color:#fff!important
}
.group-link:hover .group-count{background:#dbeafe!important;color:var(--sp-blue-dark)!important}
.package-header{background:#f8fafc!important;border-color:var(--sp-line)!important}
.package-actions .btn-success{
    background:linear-gradient(135deg,var(--sp-blue),var(--sp-blue-dark))!important;
}
.package-actions .btn-outline-success{color:var(--sp-blue)!important;border-color:#93c5fd!important}
.package-actions .btn-outline-success:hover{background:var(--sp-blue-soft)!important;color:var(--sp-blue-dark)!important}
.option:hover{background:var(--sp-blue-soft)!important;border-color:#93c5fd!important}
.option.active{border-color:var(--sp-blue)!important;background:var(--sp-blue-soft)!important}
.form-control:focus,.form-select:focus{border-color:#60a5fa!important;box-shadow:0 0 0 .22rem rgba(37,99,235,.12)!important}

.footer-modern{
    background:#0b1736!important;
    color:#cbd5e1!important;
}
.footer-modern h6{color:#fff!important}
.footer-modern a{color:#cbd5e1!important}
.footer-modern a:hover{color:#93c5fd!important}
.footer-bottom{border-top-color:rgba(148,163,184,.18)!important}
#scrollTopBtn{
    background:linear-gradient(135deg,var(--sp-blue),var(--sp-blue-dark))!important;
    box-shadow:0 10px 25px rgba(37,99,235,.25)!important;
}

@media(max-width:767.98px){
    .hero{padding:70px 0 78px}
    .hero-title{font-size:clamp(2.2rem,11vw,3.2rem)}
    .hero-trust{gap:9px 14px}
}

/* ==========================================================
   SOALPRO.ID — HOMEPAGE STRUCTURE / PREVIEW MATCH
   ========================================================== */
.sp-brand{display:flex!important;align-items:center;gap:10px;text-decoration:none}
.sp-brand-mark{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,#2563eb,#0ea5e9);color:#fff;font-size:21px;box-shadow:0 7px 18px rgba(37,99,235,.2)}
.sp-brand-name{font-size:1.52rem;font-weight:900;letter-spacing:-1px;line-height:.9;color:#0f172a}
.sp-brand-name>span{color:#2563eb}
.sp-brand-name small{display:block;font-size:.58rem;font-weight:700;letter-spacing:0;color:#64748b;margin-top:6px}
.nav-modern{gap:.15rem}.nav-modern .nav-link{font-size:.88rem;font-weight:700;padding:.62rem .62rem!important;border-radius:10px}.nav-modern .nav-link:hover,.nav-modern .nav-link.active{background:#eff6ff!important;color:#2563eb!important}.nav-modern .nav-link::after{display:none}
.sp-search{height:42px;width:330px;border:1px solid #dbeafe;border-radius:13px;background:#f8fbff;display:flex;align-items:center;padding:0 13px;gap:9px;color:#2563eb}.sp-search input{width:100%;border:0;outline:0;background:transparent;font-size:.82rem;color:#0f172a}.sp-search input::placeholder{color:#94a3b8}.sp-nav-login{border:1px solid #93c5fd!important;color:#1d4ed8!important;background:#fff!important;border-radius:11px;padding:.58rem 1.1rem;font-weight:800}.sp-nav-register{background:#2563eb!important;color:#fff!important;border-color:#2563eb!important;border-radius:11px;padding:.58rem 1.05rem;font-weight:800;box-shadow:0 7px 18px rgba(37,99,235,.18)}

.sp-hero{position:relative;overflow:hidden;color:#fff;padding:62px 0 88px;background:linear-gradient(135deg,#0757c9 0%,#147bea 48%,#0ea5e9 100%);isolation:isolate}.sp-hero-orb{position:absolute;border-radius:50%;pointer-events:none;z-index:-1}.sp-orb-1{width:480px;height:480px;right:-170px;top:-240px;background:rgba(255,255,255,.12)}.sp-orb-2{width:360px;height:360px;left:-220px;bottom:-230px;background:rgba(125,211,252,.16)}.sp-hero-grid{position:absolute;inset:0;z-index:-1;opacity:.16;background-image:linear-gradient(rgba(255,255,255,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.18) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(to bottom,black,transparent 85%)}
.sp-eyebrow{font-size:.82rem;font-weight:800;letter-spacing:.12em;color:#dbeafe;margin-bottom:18px}.sp-eyebrow span{display:inline-block;width:9px;height:9px;background:#fff;border-radius:50%;margin-right:8px;box-shadow:0 0 0 5px rgba(255,255,255,.14)}.sp-hero-title{font-size:clamp(2.7rem,5vw,4.5rem);line-height:1.02;letter-spacing:-2.8px;font-weight:900;margin:0 0 22px}.sp-hero-title strong{color:#9be7ff}.sp-hero-text{font-size:1.06rem;line-height:1.75;max-width:650px;color:rgba(255,255,255,.9);margin-bottom:26px}.sp-hero-actions{display:flex;flex-wrap:wrap;gap:11px}.sp-btn-primary{background:#fff!important;color:#1466dc!important;border:0!important;border-radius:12px;font-weight:900;box-shadow:0 12px 28px rgba(2,32,85,.2)}.sp-btn-primary:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(2,32,85,.25)}.sp-btn-white{background:rgba(255,255,255,.11)!important;color:#fff!important;border:1px solid rgba(255,255,255,.5)!important;border-radius:12px;font-weight:800}.sp-btn-white:hover{background:rgba(255,255,255,.2)!important}.sp-hero-points{display:flex;flex-wrap:wrap;gap:10px 19px;margin-top:22px;color:#dbeafe;font-size:.82rem;font-weight:700}.sp-hero-points i{color:#fff;margin-right:5px}
.sp-hero-visual{position:relative;min-height:440px;max-width:520px;margin:auto}.sp-board{position:absolute;right:5%;top:42px;width:300px;background:rgba(255,255,255,.97);color:#0f172a;border-radius:22px;padding:22px;box-shadow:0 25px 65px rgba(2,32,85,.25);transform:rotate(2deg);z-index:3}.sp-board-top{display:flex;justify-content:space-between;align-items:center;font-size:.82rem;color:#64748b;font-weight:700;margin-bottom:11px}.sp-board-top b{color:#2563eb;font-size:1.1rem}.sp-progress{height:9px;background:#dbeafe;border-radius:99px;overflow:hidden;margin-bottom:19px}.sp-progress span{display:block;height:100%;width:80%;border-radius:99px;background:linear-gradient(90deg,#2563eb,#0ea5e9)}.sp-board-row{display:flex;align-items:center;gap:9px;border-top:1px solid #eef2f7;padding:11px 0;font-size:.8rem}.sp-board-row i{color:#2563eb}.sp-board-row strong{margin-left:auto;color:#0f172a}.sp-student-card{position:absolute;right:-2%;top:0;display:flex;align-items:center;gap:10px;background:#fff;color:#0f172a;border-radius:16px;padding:10px 14px;z-index:5;box-shadow:0 12px 35px rgba(2,32,85,.2)}.sp-student-avatar{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:#dbeafe;color:#2563eb}.sp-student-card strong{display:block;font-size:.78rem}.sp-student-card small{display:block;color:#64748b;font-size:.67rem;margin-top:2px}.sp-book-illustration{position:absolute;left:5%;bottom:22px;width:285px;height:250px;border-radius:48% 52% 45% 55%;background:linear-gradient(145deg,rgba(255,255,255,.16),rgba(255,255,255,.05));transform:rotate(-7deg);z-index:2}.sp-book{position:absolute;left:56px;bottom:38px;width:185px;height:130px;border-radius:15px 28px 28px 15px;background:linear-gradient(135deg,#fff,#dbeafe);display:grid;place-items:center;color:#2563eb;font-size:70px;box-shadow:0 25px 35px rgba(2,32,85,.18);transform:rotate(-7deg)}.sp-pencil{position:absolute;right:20px;bottom:62px;width:82px;height:24px;border-radius:99px;background:#fbbf24;color:#92400e;display:grid;place-items:center;font-size:12px;transform:rotate(-43deg);box-shadow:0 10px 20px rgba(2,32,85,.16)}.sp-star{position:absolute;color:#dbeafe;font-size:28px}.sp-star-a{left:12px;top:32px}.sp-star-b{right:5px;top:95px;font-size:19px}.sp-floating-tryout{position:absolute;left:-4%;bottom:0;display:flex;align-items:center;gap:10px;width:320px;background:#fff;color:#0f172a;padding:12px 13px;border-radius:17px;z-index:6;box-shadow:0 17px 40px rgba(2,32,85,.22)}.sp-ft-icon{width:40px;height:40px;border-radius:12px;background:#dbeafe;color:#2563eb;display:grid;place-items:center}.sp-floating-tryout small{display:block;color:#64748b;font-size:.65rem}.sp-floating-tryout strong{display:block;font-size:.76rem;max-width:190px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sp-floating-tryout>a{margin-left:auto;width:35px;height:35px;border-radius:10px;display:grid;place-items:center;background:#2563eb;color:#fff;text-decoration:none}

.sp-level-wrap{position:relative;margin-top:-43px;z-index:10}.sp-level-card{display:grid;grid-template-columns:repeat(8,1fr);background:#fff;border:1px solid #e2e8f0;border-radius:19px;box-shadow:0 14px 35px rgba(15,23,42,.1);overflow:hidden}.sp-level-item{text-decoration:none;color:#0f172a;text-align:center;padding:17px 8px 15px;border-right:1px solid #eef2f7;transition:.2s}.sp-level-item:last-child{border-right:0}.sp-level-item:hover{background:#f8fbff;color:#2563eb;transform:translateY(-2px)}.sp-level-item span{width:42px;height:42px;border-radius:13px;background:#eff6ff;color:#2563eb;display:grid;place-items:center;margin:0 auto 8px;font-size:19px}.sp-level-item b{display:block;font-size:.79rem}.sp-level-item small{display:block;color:#94a3b8;font-size:.64rem;margin-top:3px}

.sp-section{padding:72px 0}.sp-section-white{background:#fff}.sp-section-soft{background:linear-gradient(180deg,#f7fbff 0%,#eff6ff 100%)}.sp-section-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:28px}.sp-section-kicker{display:block;color:#2563eb;font-size:.7rem;font-weight:900;letter-spacing:.14em;margin-bottom:7px}.sp-section-head h2{margin:0;color:#0f172a;font-size:clamp(1.65rem,3vw,2.25rem);letter-spacing:-1.1px;font-weight:900}.sp-section-head p{margin:8px 0 0;color:#64748b}.sp-see-all{white-space:nowrap;color:#2563eb;text-decoration:none;font-weight:800;font-size:.84rem}.sp-see-all:hover{color:#1d4ed8}.sp-see-all i{transition:.2s}.sp-see-all:hover i{margin-left:4px}
.sp-category-card{position:relative;display:flex;align-items:center;gap:12px;height:100%;min-height:92px;padding:16px;background:#fff;border:1px solid #e2e8f0;border-radius:17px;text-decoration:none;color:#0f172a;box-shadow:0 7px 22px rgba(15,23,42,.045);transition:.2s}.sp-category-card:hover{border-color:#93c5fd;box-shadow:0 13px 30px rgba(37,99,235,.1);transform:translateY(-3px);color:#1d4ed8}.sp-category-icon{width:44px;height:44px;flex:0 0 44px;border-radius:13px;background:#eff6ff;color:#2563eb;display:grid;place-items:center;font-size:19px}.sp-category-content{min-width:0}.sp-category-content strong{display:block;font-size:.85rem;line-height:1.3}.sp-category-content small{display:block;color:#64748b;margin-top:4px;font-size:.7rem}.sp-category-arrow{margin-left:auto;color:#cbd5e1;transition:.2s}.sp-category-card:hover .sp-category-arrow{color:#2563eb;transform:translate(2px,-2px)}

.sp-tryout-card{background:#fff;border:1px solid #e2e8f0;border-radius:20px;padding:21px;box-shadow:0 8px 25px rgba(15,23,42,.05);transition:.2s}.sp-tryout-card:hover{transform:translateY(-4px);box-shadow:0 16px 38px rgba(37,99,235,.1);border-color:#bfdbfe}.sp-tryout-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.sp-hot{display:inline-flex;align-items:center;gap:5px;background:#eff6ff;color:#2563eb;border-radius:99px;padding:5px 9px;font-size:.63rem;font-weight:900}.sp-tryout-icon{width:43px;height:43px;border-radius:13px;background:#dbeafe;color:#2563eb;display:grid;place-items:center}.sp-tryout-card h3{font-size:1rem;font-weight:900;margin:0 0 8px;color:#0f172a}.sp-tryout-card p{color:#64748b;font-size:.78rem;line-height:1.6;min-height:39px;margin-bottom:17px}.sp-tryout-meta{display:flex;gap:15px;flex-wrap:wrap;color:#64748b;font-size:.7rem;border-top:1px solid #eef2f7;padding-top:14px;margin-bottom:16px}.sp-tryout-meta i{color:#2563eb;margin-right:4px}.sp-btn-blue{background:#2563eb!important;color:#fff!important;border-color:#2563eb!important;border-radius:11px;font-weight:800}.sp-btn-blue:hover{background:#1d4ed8!important}.sp-btn-blue i{margin-left:5px}.sp-promo-card{position:relative;overflow:hidden;background:linear-gradient(145deg,#e8f3ff,#dbeafe);border:1px solid #bfdbfe;border-radius:20px;padding:25px}.sp-promo-card:after{content:"";position:absolute;width:170px;height:170px;border-radius:50%;background:rgba(14,165,233,.1);right:-70px;top:-70px}.sp-promo-icon{width:51px;height:51px;border-radius:15px;background:#fff;color:#2563eb;display:grid;place-items:center;font-size:23px;box-shadow:0 9px 22px rgba(37,99,235,.12);margin-bottom:19px}.sp-promo-card>span{font-size:.68rem;letter-spacing:.14em;font-weight:900;color:#2563eb}.sp-promo-card h3{font-size:1.25rem;font-weight:900;line-height:1.35;margin:7px 0 10px;color:#0f172a}.sp-promo-card p{color:#475569;font-size:.79rem;line-height:1.7;margin-bottom:22px}.sp-empty{padding:30px;background:#fff;border:1px dashed #bfdbfe;border-radius:17px;text-align:center;color:#64748b}

.sp-stats{padding:52px 0;background:linear-gradient(135deg,#123c9b,#2563eb 55%,#0ea5e9);color:#fff}.sp-stats strong{display:block;font-size:clamp(2rem,3.2vw,2.8rem);font-weight:900;letter-spacing:-1.5px}.sp-stats span{display:block;color:#dbeafe;font-size:.83rem;margin-top:2px}
.sp-cta-section{padding:72px 0;background:#f8fbff}.sp-cta{position:relative;overflow:hidden;text-align:center;border-radius:28px;padding:66px 24px;background:linear-gradient(135deg,#0757c9,#2563eb 55%,#0ea5e9);color:#fff;box-shadow:0 20px 50px rgba(37,99,235,.17)}.sp-cta .sp-section-kicker{color:#bfdbfe}.sp-cta h2{font-size:clamp(2rem,4vw,3rem);font-weight:900;letter-spacing:-1.7px;line-height:1.1;margin-bottom:12px}.sp-cta h2 span{color:#9be7ff}.sp-cta p{color:#dbeafe;margin-bottom:23px}.sp-btn-white-blue{background:#fff!important;color:#2563eb!important;border:0!important;border-radius:12px;font-weight:900;box-shadow:0 10px 25px rgba(2,32,85,.18)}.sp-cta-decoration{position:absolute;border-radius:50%;background:rgba(255,255,255,.08)}.sp-cta-d1{width:260px;height:260px;left:-120px;top:-140px}.sp-cta-d2{width:200px;height:200px;right:-90px;bottom:-120px}
.footer-logo-text{align-items:center!important;color:#fff!important}.footer-logo-text .sp-brand-mark{width:35px;height:35px;font-size:17px}.footer-logo-text span:last-child{color:#60a5fa!important}

@media(max-width:1199.98px){.nav-modern .nav-link{padding-left:.45rem!important;padding-right:.45rem!important}.sp-level-card{grid-template-columns:repeat(4,1fr)}.sp-level-item:nth-child(4){border-right:0}.sp-level-item:nth-child(n+5){border-top:1px solid #eef2f7}.sp-level-item:nth-child(8){border-right:0}}
@media(max-width:991.98px){.sp-hero{padding:58px 0 78px}.sp-hero-visual{min-height:410px;margin-top:10px}.sp-board{right:7%}.sp-student-card{right:0}.sp-section-head{align-items:start;flex-direction:column;gap:10px}.sp-search{width:100%;margin-top:12px}.sp-nav-login,.sp-nav-register{width:100%}}
@media(max-width:767.98px){.sp-hero-title{font-size:clamp(2.35rem,11vw,3.4rem);letter-spacing:-2px}.sp-hero-text{font-size:.96rem}.sp-hero-actions .btn{width:100%}.sp-hero-visual{min-height:370px;transform:scale(.88);transform-origin:top center;margin-bottom:-45px}.sp-board{right:0;width:260px}.sp-student-card{right:-3%}.sp-floating-tryout{left:0;width:290px}.sp-book-illustration{left:0}.sp-level-wrap{margin-top:-20px}.sp-level-card{grid-template-columns:repeat(2,1fr)}.sp-level-item:nth-child(2n){border-right:0}.sp-level-item:nth-child(n+3){border-top:1px solid #eef2f7}.sp-section{padding:55px 0}.sp-cta{padding:48px 20px}.sp-hero-points{font-size:.76rem}}
@media(max-width:420px){.sp-level-item{padding-left:4px;padding-right:4px}.sp-hero-visual{transform:scale(.76);margin-bottom:-88px;margin-left:-28px;margin-right:-28px}.sp-floating-tryout{left:5px}.sp-board{right:-10px}}
