/* pages.css — gaya pelengkap untuk halaman yang CSS-nya belum ada di styles.css
   (Artikel/blog, #PARTNER, Kontak, FAQ). Selaras dengan design token di styles.css. */

/* badge jumlah item di ikon keranjang nav */
.nav-cart { position: relative; }
.nav-cart-badge { position: absolute; top: -4px; right: -6px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; background: var(--accent); color: #fff; font-size: 11px; font-weight: 700; display: grid; place-items: center; line-height: 1; }
.nav-cart-badge.pop { animation: cartBadgePop .45s cubic-bezier(.2,1.4,.4,1); }
@keyframes cartBadgePop { 0% { transform: scale(.4); } 60% { transform: scale(1.35); } 100% { transform: scale(1); } }

/* elemen kecil yang "terbang" dari kartu produk ke ikon keranjang */
.cart-fly { position: fixed; z-index: 9999; border-radius: 12px; box-shadow: var(--shadow-lg); object-fit: cover; pointer-events: none; will-change: transform, opacity; transition: transform .75s cubic-bezier(.5,-0.2,.5,1), opacity .75s ease; }

/* toast konfirmasi "ditambahkan ke keranjang" */
.cart-toast-wrap { position: fixed; left: 50%; bottom: 26px; transform: translateX(-50%); z-index: 9998; display: flex; flex-direction: column; gap: 10px; align-items: center; pointer-events: none; }
.cart-toast { display: flex; align-items: center; gap: 10px; background: var(--ink); color: #fff; padding: 12px 18px; border-radius: var(--radius-pill); box-shadow: var(--shadow-lg); font-size: 14px; font-weight: 600; opacity: 0; transform: translateY(14px); transition: opacity .3s ease, transform .3s ease; max-width: 90vw; }
.cart-toast.in { opacity: 1; transform: translateY(0); }
.cart-toast .ck { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: #2FA37C; flex: none; }
.cart-toast a { color: #fff; text-decoration: underline; pointer-events: auto; font-weight: 700; }
.btn.is-loading { opacity: .7; pointer-events: none; }

/* tombol keranjang kecil di kartu kelas (pojok bawah-kanan thumb, hindari badge level) */
.card-cart-btn { position: absolute; z-index: 4; bottom: 12px; right: 12px; width: 42px; height: 42px; border-radius: 50%; border: none; background: rgba(255,255,255,.94); box-shadow: var(--shadow); display: grid; place-items: center; cursor: pointer; transition: transform .15s ease, background .15s ease; opacity: 0; transform: translateY(6px); }
.course .thumb:hover .card-cart-btn, .card-cart-btn:focus-visible { opacity: 1; transform: translateY(0); }
.card-cart-btn:hover { background: #fff; transform: scale(1.08); }
.card-cart-btn:active { transform: scale(.94); }
@media (hover: none) { .card-cart-btn { opacity: 1; transform: none; } }

/* tombol panah di kartu buku jadi tombol keranjang fungsional */
.book-buy-form { line-height: 0; }
button.book-buy { border: none; cursor: pointer; padding: 0; }

/* popup loker #KARIR: scrollbar tipis yang menyatu dengan kartu */
.job-modal { scrollbar-width: thin; scrollbar-color: var(--line) transparent; scroll-behavior: smooth; }
.job-modal::-webkit-scrollbar { width: 8px; }
.job-modal::-webkit-scrollbar-track { background: transparent; margin: 16px 0; }
.job-modal::-webkit-scrollbar-thumb { background: color-mix(in srgb, var(--accent) 28%, var(--line)); border-radius: 999px; border: 2px solid #fff; }
.job-modal::-webkit-scrollbar-thumb:hover { background: var(--accent); }

/* tabel penilaian mentor: kolom aksi cukup lebar untuk tombol (bukan 48px ikon) */
.mtable.grade .mtable-head, .mtable.grade .mtable-row { grid-template-columns: 1.6fr 1.4fr 1.1fr .9fr 130px; }
.mtable.grade .mtable-act { justify-self: end; }
.mtable.grade .mtable-act .btn { white-space: nowrap; }
@media (max-width: 920px) { .mtable.grade .mtable-row { grid-template-columns: 1fr auto; } }

/* pemutar LMS: stage YouTube + watermark email */
.pl-stage-frame { position: absolute; inset: 0; }
.pl-stage-frame iframe { width: 100%; height: 100%; border: 0; display: block; }
.pl-stage-empty { position: absolute; inset: 0; display: grid; place-items: center; color: rgba(255,255,255,.75); font-size: 15px; text-align: center; padding: 20px; }
.pl-watermark { position: absolute; right: 14px; bottom: 12px; z-index: 4; color: rgba(255,255,255,.5); font-size: 12px; font-weight: 600; letter-spacing: .03em; text-shadow: 0 1px 4px rgba(0,0,0,.6); pointer-events: none; user-select: none; }
.pl-stage-empty + .pl-watermark, .pl-watermark { mix-blend-mode: screen; }

/* input password dengan tombol mata */
.pwd-wrap { position: relative; }
.pwd-wrap input { flex: 1; }
.pwd-eye { border: none; background: transparent; cursor: pointer; display: grid; place-items: center; padding: 4px; margin: -4px -2px -4px 4px; border-radius: 8px; flex: none; }
.pwd-eye:hover { background: var(--bg-soft); }

/* slider mentor (Tentang Kami) */
.mentor-slider { position: relative; }
/* Slider mentor: geser hanya lewat tombol panah — tanpa scrollbar / scroll manual. */
.mentor-track { display: flex; gap: 20px; overflow: hidden; scroll-behavior: smooth; padding: 8px 4px 18px; scrollbar-width: none; -ms-overflow-style: none; }
.mentor-track::-webkit-scrollbar { display: none; }
.mentor-track > .mentor { flex: 0 0 clamp(220px, 24%, 260px); }

/* ===== Bagikan artikel (share sheet) ===== */
.share-sheet{position:fixed;inset:0;z-index:1200;display:none;place-items:center;background:rgba(20,16,38,.45);backdrop-filter:blur(3px);padding:20px;}
.share-sheet.open{display:grid;}
.share-card{background:#fff;border-radius:22px;padding:24px;width:100%;max-width:420px;box-shadow:0 24px 60px rgba(20,16,38,.28);animation:shareIn .22s cubic-bezier(.2,.8,.2,1);}
@keyframes shareIn{from{opacity:0;transform:translateY(14px) scale(.97);}to{opacity:1;transform:none;}}
.share-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;}
.share-card-head h3{font-size:18px;font-weight:800;}
.share-card-x{background:var(--tint);border:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;cursor:pointer;color:var(--muted);font-size:18px;line-height:1;}
.share-card p{color:var(--muted);font-size:13.5px;margin-bottom:16px;}
.share-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.share-opt{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 6px;border-radius:16px;border:1px solid var(--line);background:#fff;cursor:pointer;text-decoration:none;color:var(--ink);font-size:12.5px;font-weight:600;transition:transform .15s,border-color .15s,background .15s;}
.share-opt:hover{transform:translateY(-2px);border-color:transparent;background:var(--tint);}
.share-opt .si{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;color:#fff;}
.share-toast{position:fixed;left:50%;bottom:30px;transform:translateX(-50%) translateY(20px);background:var(--ink);color:#fff;padding:12px 20px;border-radius:999px;font-weight:600;font-size:14px;z-index:1300;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;display:flex;align-items:center;gap:8px;}
.share-toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
.mslide-btn { position: absolute; top: 38%; z-index: 3; width: 46px; height: 46px; border-radius: 50%; border: 1.5px solid var(--line); background: #fff; box-shadow: var(--shadow); display: grid; place-items: center; cursor: pointer; transition: transform .15s, opacity .15s; }
.mslide-btn:hover { transform: scale(1.06); }
.mslide-btn.prev { left: -8px; }
.mslide-btn.next { right: -8px; }
.mslide-btn:disabled { opacity: 0; pointer-events: none; }
@media (max-width: 720px) { .mslide-btn { display: none; } }

/* hover materi: video preview bisa diklik (pointer), yang terkunci default */
.lesson.preview { cursor: pointer; transition: background .15s; }
.lesson.preview:hover { background: var(--bg-soft); }
.lesson.locked { cursor: default; }
.lesson-att-badge { font-size: 11px; font-weight: 700; color: var(--accent); background: var(--tint-purple); padding: 2px 8px; border-radius: var(--radius-pill); }
a.lesson-att-row { font: inherit; cursor: pointer; }

/* popup preview (video / berkas) */
.preview-modal { position: relative; background: #fff; border-radius: 24px; max-width: 880px; width: 100%; padding: 26px; box-shadow: var(--shadow-lg); max-height: 90vh; overflow: auto; }
.preview-modal .close { position: absolute; top: 16px; right: 18px; font-size: 20px; color: var(--muted); background: none; border: none; cursor: pointer; line-height: 1; }
.preview-head { margin-bottom: 16px; padding-right: 30px; }
.preview-head h3 { font-size: 20px; font-weight: 800; margin-top: 8px; }
.preview-video { position: relative; padding-top: 56.25%; border-radius: var(--radius-sm); overflow: hidden; background: #000; }
.preview-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.preview-file iframe { width: 100%; height: 68vh; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--bg-soft); }
.preview-empty { padding: 40px 20px; text-align: center; color: var(--muted); background: var(--bg-soft); border-radius: var(--radius-sm); }

/* lampiran/berkas yang disematkan di dalam tiap video (Materi Kelas) */
.lesson-att { padding: 4px 20px 14px 50px; display: flex; flex-direction: column; gap: 6px; }
.lesson-att-row { display: flex; align-items: center; gap: 10px; background: var(--bg-soft); border: 1px solid var(--line); border-radius: 12px; padding: 9px 14px; font-size: 13.5px; transition: .15s; }
a.lesson-att-row:hover { border-color: color-mix(in srgb, var(--accent) 40%, var(--line)); background: #fff; }
.lesson-att-row.locked { opacity: .7; cursor: not-allowed; }
.lesson-att-t { font-weight: 600; color: var(--ink); }
.lesson-att-meta { margin-left: auto; font-size: 12px; color: var(--muted); white-space: nowrap; }

/* utilitas grid 2 kolom yang turun jadi 1 kolom di HP */
.g2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 560px) { .g2 { grid-template-columns: 1fr; } }

/* ============================ Menu mobile (burger) ============================ */
.nav-mobile { display: none; flex-direction: column; gap: 2px; padding: 10px 32px 22px; background: #fff; border-bottom: 1px solid var(--line); }
.nav-mobile.open { display: flex; }
.nav-mobile a { padding: 12px 6px; font-weight: 600; font-size: 15.5px; color: var(--ink-soft); border-radius: 10px; }
.nav-mobile a:hover { background: var(--bg-soft); color: var(--accent); }
.nav-mobile a b { color: var(--ink); }
.nav-mobile-div { height: 1px; background: var(--line); margin: 8px 0; }
@media (min-width: 921px) { .nav-mobile { display: none !important; } }

/* ============================ #PARTNER — dua jalur (pillar) ============================ */
.pillar-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }
.pillar {
  position: relative; background: #fff; border: 1px solid var(--line);
  border-radius: 28px; padding: 36px; display: flex; flex-direction: column;
  box-shadow: var(--shadow-sm); overflow: hidden;
}
.pillar.dark { background: linear-gradient(150deg, var(--ink), #2a2233 60%, #2d1d3c); color: #fff; border-color: transparent; }
.pillar-tag {
  display: inline-flex; align-items: center; gap: 8px; align-self: flex-start;
  font-size: 12.5px; font-weight: 700; padding: 6px 13px; border-radius: var(--radius-pill);
  background: var(--bg-soft); color: var(--ink-soft); margin-bottom: 20px;
}
.pillar.dark .pillar-tag { background: rgba(255,255,255,.16); color: #fff; }
.pillar-tag .dot { width: 8px; height: 8px; border-radius: 50%; }
.pillar-ic { width: 60px; height: 60px; border-radius: 18px; display: grid; place-items: center; margin-bottom: 18px; }
.pillar h3 { font-size: 26px; font-weight: 800; font-family: var(--font-display); }
.pillar > p { color: var(--muted); font-size: 15.5px; margin-top: 10px; text-wrap: pretty; }
.pillar.dark > p { color: rgba(255,255,255,.82); }
.pillar-list { display: flex; flex-direction: column; gap: 12px; margin: 22px 0 28px; }
.pillar-li { display: flex; align-items: flex-start; gap: 10px; font-size: 14.5px; }
.pillar-li svg { flex: none; margin-top: 2px; }
.pillar .btn { align-self: flex-start; margin-top: auto; }

/* ============================ ARTIKEL / BLOG ============================ */
.art-hero { position: relative; overflow: hidden; padding: 40px 0 10px; }
.art-hero .crumb { height: auto; margin-bottom: 22px; }
.art-hero .crumb em { color: var(--ink); font-style: normal; }
.art-head { max-width: 820px; }
.art-flag { display: inline-block; margin-bottom: 14px; }
.art-head h1 { font-size: clamp(30px, 4.4vw, 56px); font-weight: 800; letter-spacing: -.025em; line-height: 1.08; text-wrap: balance; }
.art-dek { font-size: 19px; color: var(--muted); margin-top: 18px; max-width: 64ch; text-wrap: pretty; }
.art-byline { display: flex; align-items: center; gap: 14px; margin-top: 26px; flex-wrap: wrap; }
.art-byline-who { display: flex; flex-direction: column; }
.art-byline-who b { font-weight: 700; font-size: 15px; }
.art-byline-who small { color: var(--muted); font-size: 13px; }
.art-byline-meta { display: flex; gap: 18px; flex-wrap: wrap; margin-left: auto; }
.art-byline-meta span { display: inline-flex; align-items: center; gap: 6px; color: var(--muted); font-size: 13.5px; white-space: nowrap; }
.art-cover { margin-top: 30px; border-radius: var(--radius); overflow: hidden; height: clamp(240px, 42vw, 520px); box-shadow: var(--shadow-lg); }

.art-layout-sec { padding: 48px 0 20px; }
.art-layout { display: grid; grid-template-columns: 64px minmax(0, 1fr) 340px; gap: 40px; align-items: start; }

/* rail vertikal sticky */
.share-rail { position: sticky; top: 100px; display: flex; flex-direction: column; gap: 12px; align-items: center; }
.eng-btn {
  display: inline-flex; align-items: center; gap: 10px; background: #fff; border: 1px solid var(--line);
  border-radius: var(--radius-pill); padding: 9px 16px; cursor: pointer; font-family: inherit;
  color: var(--ink-soft); transition: .16s; font-size: 14px;
}
.eng-btn:hover { border-color: color-mix(in srgb, var(--accent) 40%, var(--line)); transform: translateY(-1px); box-shadow: var(--shadow-sm); }
.eng-btn.v { flex-direction: column; gap: 3px; width: 60px; padding: 12px 0; border-radius: 18px; }
.eng-btn .eng-ic { display: grid; place-items: center; color: var(--ink-soft); }
.eng-btn .eng-meta { display: flex; flex-direction: column; line-height: 1.05; }
.eng-btn .eng-meta b { font-size: 14px; font-weight: 700; }
.eng-btn .eng-meta small { font-size: 11.5px; color: var(--muted); }
.eng-btn.v .eng-meta b { font-size: 13px; }
.eng-btn.like.on { color: #E0392B; border-color: color-mix(in srgb, #E0392B 35%, var(--line)); }
.eng-btn.like.on .eng-ic { color: #E0392B; }
.eng-btn.save.on { color: var(--accent); border-color: color-mix(in srgb, var(--accent) 35%, var(--line)); }
.eng-btn.save.on .eng-ic { color: var(--accent); }
.rail-div { width: 26px; height: 1px; background: var(--line); margin: 4px 0; }

.art-content { min-width: 0; }
.art-body p { font-size: 17.5px; line-height: 1.75; color: var(--ink-soft); margin-top: 20px; text-wrap: pretty; }
.art-body p.art-lead { font-size: 21px; line-height: 1.6; color: var(--ink); font-weight: 500; margin-top: 0; }
.art-body h2 { font-size: clamp(24px, 2.8vw, 32px); font-weight: 800; font-family: var(--font-display); margin-top: 40px; letter-spacing: -.02em; }
.art-body b { color: var(--ink); font-weight: 700; }
.art-quote { position: relative; margin: 34px 0; padding: 8px 0 8px 30px; border-left: 4px solid var(--accent); }
.art-quote .aq-mark { position: absolute; left: 16px; top: -6px; font-size: 40px; color: var(--accent); opacity: .25; font-family: var(--font-display); }
.art-quote p { font-size: 21px; font-weight: 600; color: var(--ink); font-style: italic; line-height: 1.5; margin: 0; }
.art-quote cite { display: block; margin-top: 12px; font-size: 14px; color: var(--muted); font-style: normal; font-weight: 600; }
.art-figure { margin: 34px 0; }
.art-figure-img { border-radius: var(--radius-sm); overflow: hidden; height: clamp(220px, 36vw, 420px); box-shadow: var(--shadow); }
.art-figure figcaption { margin-top: 12px; font-size: 13.5px; color: var(--muted); text-align: center; text-wrap: pretty; }
.art-ul { list-style: none; margin: 22px 0; display: flex; flex-direction: column; gap: 14px; }
.art-ul li { display: flex; align-items: flex-start; gap: 14px; font-size: 16.5px; line-height: 1.6; color: var(--ink-soft); }
.art-li-dot { flex: none; width: 9px; height: 9px; border-radius: 50%; background: var(--accent); margin-top: 9px; }

.art-tags { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 40px; }
.atag { font-size: 13.5px; font-weight: 600; color: var(--ink-soft); background: var(--bg-soft); border: 1px solid var(--line); padding: 7px 14px; border-radius: var(--radius-pill); transition: .15s; }
.atag:hover { color: var(--accent); border-color: color-mix(in srgb, var(--accent) 40%, var(--line)); }

.engage-bar { display: flex; align-items: center; gap: 12px; margin-top: 36px; padding: 16px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.eng-spacer { flex: 1; }
@media (max-width: 560px) { .only-wide { display: none; } }

.author-card { display: flex; gap: 20px; align-items: flex-start; background: var(--bg-soft); border: 1px solid var(--line); border-radius: 24px; padding: 28px; margin-top: 36px; flex-wrap: wrap; }
.author-main { flex: 1; min-width: 220px; }
.author-kicker { font-size: 12.5px; font-weight: 700; color: var(--accent); letter-spacing: .05em; text-transform: uppercase; }
.author-card h4 { font-size: 19px; font-weight: 800; margin-top: 4px; }
.author-role { font-size: 13.5px; color: var(--muted); }
.author-main p { font-size: 14.5px; color: var(--ink-soft); margin-top: 10px; line-height: 1.6; }

/* komentar */
.comments { margin-top: 48px; }
.comments-head h3 { font-size: 22px; font-weight: 800; display: flex; align-items: center; gap: 10px; }
.cmt-count { font-size: 13px; font-weight: 700; color: var(--accent); background: var(--tint-purple); padding: 3px 11px; border-radius: var(--radius-pill); }
.comments-head p { color: var(--muted); font-size: 14.5px; margin-top: 6px; }
.cmt-form { display: flex; gap: 14px; margin: 24px 0 32px; }
.cmt-form-main { flex: 1; }
.cmt-name, .cmt-input { width: 100%; border: 1.5px solid var(--line); border-radius: 14px; padding: 12px 16px; font-family: inherit; font-size: 15px; outline: none; transition: .15s; }
.cmt-name:focus, .cmt-input:focus { border-color: var(--accent); }
.cmt-input { margin-top: 10px; resize: vertical; line-height: 1.5; }
.cmt-form-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; flex-wrap: wrap; }
.cmt-hint { display: inline-flex; align-items: center; gap: 7px; font-size: 12.5px; color: var(--muted); }
.cmt-list { display: flex; flex-direction: column; gap: 22px; }
.cmt { display: flex; gap: 14px; }
.cmt-body { flex: 1; min-width: 0; }
.cmt-head { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.cmt-head b { font-weight: 700; font-size: 14.5px; }
.cmt-badge { font-size: 11px; font-weight: 700; color: var(--accent); background: var(--tint-purple); padding: 2px 9px; border-radius: var(--radius-pill); }
.cmt-when { font-size: 12.5px; color: var(--muted); }
.cmt-role { font-size: 12.5px; color: var(--muted); }
.cmt-body > p { font-size: 15px; line-height: 1.6; color: var(--ink-soft); margin-top: 6px; }
.cmt-actions { display: flex; gap: 16px; margin-top: 10px; }
.cmt-act { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; color: var(--muted); background: none; border: none; cursor: pointer; font-family: inherit; }
.cmt-act:hover { color: var(--accent); }
.cmt-replies { margin-top: 18px; padding-left: 22px; border-left: 2px solid var(--line); display: flex; flex-direction: column; gap: 18px; }
.cmt.author > .cmt-body { background: var(--tint-purple); border-radius: 16px; padding: 14px 16px; }

/* sidebar artikel */
.art-side { display: flex; flex-direction: column; gap: 24px; position: sticky; top: 100px; }
.side-card { background: #fff; border: 1px solid var(--line); border-radius: 24px; padding: 22px; }
.side-card-h { margin-bottom: 16px; }
.side-card-h h3 { font-size: 18px; font-weight: 800; margin-top: 8px; }
.side-list { display: flex; flex-direction: column; gap: 16px; }
.side-post { display: flex; gap: 12px; }
.side-thumb { flex: none; width: 72px; height: 64px; border-radius: 12px; overflow: hidden; }
.side-cat { font-size: 11.5px; font-weight: 700; color: var(--accent); text-transform: uppercase; letter-spacing: .03em; }
.side-post-body h4 { font-size: 14px; font-weight: 700; line-height: 1.3; margin: 3px 0 5px; }
.side-date { font-size: 12px; color: var(--muted); display: inline-flex; align-items: center; gap: 5px; }
.side-more { display: inline-flex; align-items: center; gap: 7px; margin-top: 16px; font-weight: 700; font-size: 14px; color: var(--accent); }
.side-list.pop { gap: 18px; }
.pop-post { display: flex; gap: 14px; align-items: flex-start; }
.pop-num { font-family: var(--font-display); font-weight: 800; font-size: 24px; color: var(--line); flex: none; line-height: 1; }
.pop-body h4 { font-size: 14px; font-weight: 700; line-height: 1.3; margin: 3px 0 5px; }
.pop-views { font-size: 12px; color: var(--muted); display: inline-flex; align-items: center; gap: 5px; }
.side-cta { position: relative; overflow: hidden; background: linear-gradient(150deg, var(--accent), var(--accent-2)); color: #fff; border-radius: 24px; padding: 28px; }
.side-cta h3 { font-size: 20px; font-weight: 800; margin-top: 12px; }
.side-cta p { font-size: 14px; color: rgba(255,255,255,.85); margin-top: 8px; line-height: 1.55; }
.side-cta .btn { margin-top: 18px; background: #fff; color: var(--ink); }

@media (max-width: 1000px) {
  .art-layout { grid-template-columns: 1fr; }
  .share-rail { position: static; flex-direction: row; flex-wrap: wrap; }
  .eng-btn.v { flex-direction: row; width: auto; padding: 9px 16px; border-radius: var(--radius-pill); }
  .art-side { position: static; }
}

/* ============================ KONTAK ============================ */
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; align-items: start; }
.contact-methods { display: flex; flex-direction: column; gap: 16px; }
.contact-method { display: flex; gap: 16px; align-items: flex-start; background: #fff; border: 1px solid var(--line); border-radius: 20px; padding: 22px; transition: .18s; }
.contact-method:hover { transform: translateY(-3px); box-shadow: var(--shadow); }
.contact-method .ic { flex: none; width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center; }
.contact-method h4 { font-size: 16px; font-weight: 700; }
.contact-method p { color: var(--muted); font-size: 14px; margin-top: 3px; }
.contact-method b { color: var(--ink); }
@media (max-width: 860px) { .contact-grid, .pillar-grid { grid-template-columns: 1fr; } }

/* Halaman pesanan: tautan bayar nanti */
.co-paylater{display:inline-flex;align-items:center;gap:8px;margin-top:16px;color:var(--muted);font-size:14px;font-weight:600;text-decoration:none;transition:color .15s;}
.co-paylater:hover{color:var(--ink);}
.co-paylater b{color:var(--accent);}

/* Dashboard: daftar tagihan / pembayaran tertunda */
.bill-list{display:flex;flex-direction:column;gap:18px;}
.bill-selbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px;padding:0 4px;}
.bill-selinfo{color:var(--muted);font-size:14px;}
.bill-selinfo b{color:var(--ink);}
.bill-check{display:inline-flex;align-items:center;gap:9px;cursor:pointer;font-weight:600;font-size:14px;user-select:none;}
.bill-check input{position:absolute;opacity:0;width:0;height:0;}
.bill-box{width:22px;height:22px;border-radius:7px;border:2px solid var(--line);background:#fff;display:inline-grid;place-items:center;flex:none;transition:background .15s,border-color .15s;}
.bill-box::after{content:'';width:11px;height:6px;border-left:2.5px solid #fff;border-bottom:2.5px solid #fff;transform:rotate(-45deg) translateY(-1px);opacity:0;transition:opacity .12s;}
.bill-check input:checked + .bill-box{background:var(--accent);border-color:var(--accent);}
.bill-check input:checked + .bill-box::after{opacity:1;}
.bill-check input:focus-visible + .bill-box{box-shadow:0 0 0 3px var(--tint-purple);}
.bill-card.off{opacity:.55;}
.bill-card.off .bill-items{filter:grayscale(.4);}
.bill-card{display:flex;flex-direction:column;gap:16px;}
.bill-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.bill-kicker{font-weight:800;font-size:15px;}
.bill-date{color:var(--muted);font-size:13px;margin-top:3px;}
.bill-items{display:flex;flex-direction:column;gap:12px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0;}
.bill-item{display:flex;align-items:center;gap:12px;}
.bill-thumb{width:54px;height:44px;border-radius:10px;overflow:hidden;flex:none;background:var(--tint);}
.bill-item-info{flex:1;min-width:0;}
.bill-item-info b{font-size:14px;font-weight:700;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.bill-item-info small{color:var(--muted);font-size:12.5px;}
.bill-item-price{font-weight:700;font-size:14px;white-space:nowrap;}
.bill-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;}
.bill-total{display:flex;align-items:baseline;gap:10px;}
.bill-total span{color:var(--muted);font-size:14px;}
.bill-total b{font-size:22px;font-weight:800;font-family:var(--font-display);}
.bill-paybar{position:sticky;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:20px;padding:16px 20px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 -6px 24px rgba(20,16,38,.06);}
.bill-paybar-l small{display:block;color:var(--muted);font-size:13px;}
.bill-paybar-l b{font-size:24px;font-weight:800;font-family:var(--font-display);}
.bill-paybar button:disabled{opacity:.5;cursor:not-allowed;}

/* Checkout: chip metode pembayaran (info, dipilih di Midtrans) */
.co-paylist{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px;}
.co-paychip{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border:1px solid var(--line);border-radius:999px;font-size:13.5px;font-weight:600;color:var(--ink-soft);background:var(--tint);}

/* ===== Lonceng notifikasi (topbar dashboard) ===== */
.notif{position:relative;}
.notif-btn{position:relative;width:46px;height:46px;border-radius:14px;border:1px solid var(--line);background:#fff;display:grid;place-items:center;cursor:pointer;transition:background .15s,border-color .15s;}
.notif-btn:hover{background:var(--tint);border-color:transparent;}
.notif-dot{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#E0392B;color:#fff;font-size:11px;font-weight:800;display:grid;place-items:center;border:2px solid #fff;}
.notif-dd{position:absolute;top:calc(100% + 10px);right:0;width:340px;max-width:86vw;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 22px 50px rgba(20,16,38,.18);z-index:60;overflow:hidden;}
.notif-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line);}
.notif-head b{font-size:15px;font-weight:800;}
.notif-readall{background:none;border:none;color:var(--accent);font-size:12.5px;font-weight:700;cursor:pointer;}
.notif-list{max-height:380px;overflow-y:auto;}
.notif-item{display:flex;gap:12px;align-items:flex-start;padding:13px 16px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink);transition:background .12s;}
.notif-item:last-child{border-bottom:none;}
.notif-item:hover{background:var(--tint);}
.notif-item.unread{background:var(--tint-purple);}
.notif-item.unread:hover{background:var(--tint-purple);filter:brightness(.98);}
.notif-ic{flex:none;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;}
.notif-body{display:flex;flex-direction:column;gap:2px;min-width:0;}
.notif-body b{font-size:13.5px;font-weight:700;}
.notif-body small{font-size:12.5px;color:var(--muted);line-height:1.35;}
.notif-body time{font-size:11px;color:var(--muted);margin-top:2px;}
.notif-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:34px 16px;color:var(--muted);font-size:13.5px;}

/* Dashboard: tampilkan blok langsung tanpa offset reveal (hindari blok turun 22px sebelum JS jalan) */
.dash-main .reveal{opacity:1;transform:none;}
/* Jarak konsisten antar blok dashboard yang ditumpuk (hindari blok saling menempel) */
.dash-main > .dash-block + .dash-block,
.dash-main > .dash-block + .resume,
.dash-main > .dash-block:not(:last-child){margin-bottom:24px;}

/* Kartu webinar di player */
.pl-webinar{padding:14px 16px;background:var(--tint-blue,#eef4ff);border:1px solid rgba(0,0,0,.06);border-radius:12px;margin:6px 10px 12px;}
.pl-web-badge{display:inline-block;font-size:11px;font-weight:800;padding:3px 10px;border:1.5px solid;border-radius:999px;margin-bottom:8px;}
.pl-web-when,.pl-web-plat{font-size:13.5px;color:var(--ink-soft,#444);margin-top:4px;}
.pl-web-note{font-size:13.5px;color:var(--muted);margin-top:8px;}
.pl-web-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px;}
.pl-web-actions .btn{padding:9px 16px;font-size:13.5px;}
.pl-web-hint{font-size:12.5px;color:var(--muted);align-self:center;}
