/* Jenaka Theme by Dikreasi
   Token dari desain V2: latar #111/#1E1E1E, teks #FFF/#CCC, satu aksen.
   Variabel --accent* dihitung dari Customize (inline di <head>). */

/* ---------- Token ---------- */
:root {
  --bg: #FFFFFF; --surface: #F4F4F2; --ink: #111111; --soft: #3D3D3D; --muted: #5C5C5C; --line: #E6E6E3;
  --accent: #F5C542; --on-accent: #111111; --accent-ink: #8A6A00; --accent-soft: #FDF6E1;
  --ok: #18794E; --warn: #9A5B00; --err: #C62828;
  --shadow: 0 1px 2px rgba(17,17,17,.04), 0 12px 32px rgba(17,17,17,.07);
  --r: 12px; --r-lg: 18px;
  --f-ui: 'Geist', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
  --f-read: 'Newsreader', Georgia, 'Times New Roman', serif;
  --hdr-h: 72px;
  color-scheme: light;
}
[data-theme="dark"] {
  --bg: #111111; --surface: #1E1E1E; --ink: #FFFFFF; --soft: #CCCCCC; --muted: #8F8F8F; --line: #2A2A2A;
  --ok: #4CC38A; --warn: #F1A10D; --err: #FF7A7A;
  --shadow: 0 1px 2px rgba(0,0,0,.5), 0 16px 40px rgba(0,0,0,.5);
  color-scheme: dark;
}

/* ---------- Dasar ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--hdr-h) + 16px); }
body { margin: 0; background: var(--bg); color: var(--ink); font: 400 16px/1.6 var(--f-ui); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img, svg, video { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, h4, h5, h6, p, ul, ol, figure, blockquote, dl, dd { margin: 0; }
ul, ol { padding: 0; list-style: none; }
button, input, select, textarea { font: inherit; color: inherit; }
::selection { background: var(--accent); color: var(--on-accent); }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 4px; }
.i18n-pending body { visibility: hidden; }
.skip-link { position: absolute; left: 16px; top: -60px; z-index: 100; padding: 10px 16px; border-radius: 999px; background: var(--accent); color: var(--on-accent); font-weight: 600; }
.skip-link:focus { top: 12px; }
.screen-reader-text, .sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.icon { flex: none; }

/* ---------- Tipografi ---------- */
.display { font-weight: 600; letter-spacing: -.04em; line-height: 1.04; }
.fs-hero { font-size: clamp(44px, 6vw, 84px); }
.fs-h1 { font-size: clamp(36px, 4.4vw, 56px); }
.fs-h2 { font-size: clamp(28px, 3vw, 38px); letter-spacing: -.035em; }
.fs-h3 { font-size: clamp(21px, 2vw, 24px); letter-spacing: -.025em; line-height: 1.2; }
.fs-h4 { font-size: 18px; font-weight: 600; letter-spacing: -.015em; line-height: 1.35; }
.lead { font-size: clamp(17px, 1.5vw, 19px); line-height: 1.6; color: var(--soft); }
.eyebrow { font-size: 12px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.eyebrow.accent { color: var(--accent-ink); }
.muted { color: var(--muted); } .soft { color: var(--soft); }
.small { font-size: 14px; } .xs { font-size: 12px; } .strong { font-weight: 600; }
.num { font-variant-numeric: tabular-nums; }
.mark { color: var(--accent-ink); }
.link { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.link:hover { text-decoration-color: var(--accent); }

/* ---------- Tata letak ---------- */
.wrap { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 32px; }
.wrap-md { max-width: 1000px; } .wrap-sm { max-width: 740px; }
.section { padding: 112px 0; } .section.pt-0 { padding-top: 0; }
.stack { display: flex; flex-direction: column; }
.row { display: flex; align-items: center; }
.wrapx { flex-wrap: wrap; } .between { justify-content: space-between; } .end { align-items: flex-end; } .start { align-items: flex-start; } .center { justify-content: center; }
.gap-4 { gap: 4px; } .gap-6 { gap: 6px; } .gap-8 { gap: 8px; } .gap-10 { gap: 10px; } .gap-12 { gap: 12px; } .gap-14 { gap: 14px; } .gap-16 { gap: 16px; } .gap-20 { gap: 20px; } .gap-24 { gap: 24px; } .gap-32 { gap: 32px; } .gap-48 { gap: 48px; } .gap-64 { gap: 64px; }
.mt-8 { margin-top: 8px; } .mt-16 { margin-top: 16px; } .mt-40 { margin-top: 40px; } .mt-56 { margin-top: 56px; }
.grow { flex: 1 1 0; min-width: 0; }
.g { display: grid; gap: 24px; }
.g-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.g-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.g-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.sec-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin-bottom: 40px; }
.hr { height: 1px; background: var(--line); border: 0; margin: 0; width: 100%; }
.page-head { padding: 96px 0 48px; }
.page-head-lead { max-width: 440px; }

/* ---------- Tombol ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 46px; padding: 0 22px; border-radius: 999px; font: 500 15px/1 var(--f-ui); border: 1px solid transparent; cursor: pointer; white-space: nowrap; background: none; color: var(--ink); transition: transform .15s, background .15s, border-color .15s, color .15s; }
.btn:active { transform: translateY(1px); }
.btn-primary, .btn-accent { background: var(--accent); color: var(--on-accent); font-weight: 600; }
.btn-primary:hover, .btn-accent:hover { background: color-mix(in srgb, var(--accent) 86%, #fff); }
.btn-ink { background: var(--ink); color: var(--bg); }
.btn-ghost { border-color: var(--line); }
.btn-ghost:hover { border-color: var(--ink); }
.btn-sm { height: 38px; padding: 0 16px; font-size: 14px; }
.btn-lg { height: 54px; padding: 0 28px; font-size: 16px; }
.btn-block { width: 100%; }
.btn[disabled], .btn.is-disabled { opacity: .45; cursor: not-allowed; pointer-events: none; }
.icon-btn { width: 42px; height: 42px; flex: none; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--line); background: transparent; color: var(--ink); cursor: pointer; position: relative; }
.icon-btn:hover { border-color: var(--ink); }
.icon-btn.plain { border-color: transparent; }
.count { position: absolute; top: -2px; right: -2px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; background: var(--accent); color: var(--on-accent); font-size: 11px; font-weight: 700; display: flex; align-items: center; justify-content: center; }

/* ---------- Chip, badge, tab ---------- */
.chip { display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--line); font-size: 14px; font-weight: 500; background: transparent; color: var(--soft); cursor: pointer; white-space: nowrap; }
.chip:hover { border-color: var(--ink); color: var(--ink); }
.chip.on, .chip[aria-pressed="true"], .chip.current { background: var(--ink); color: var(--bg); border-color: var(--ink); }
.badge { display: inline-flex; align-items: center; gap: 6px; height: 24px; padding: 0 10px; border-radius: 999px; font-size: 12px; font-weight: 500; background: var(--surface); color: var(--soft); white-space: nowrap; }
.badge-accent { background: var(--accent); color: var(--on-accent); font-weight: 600; }
.badge-ink { background: var(--ink); color: var(--bg); }
.badge-line { background: transparent; border: 1px solid var(--line); }
.badge-ok { background: color-mix(in srgb, var(--ok) 15%, transparent); color: var(--ok); }
.badge-warn { background: color-mix(in srgb, var(--warn) 16%, transparent); color: var(--warn); }
.badge-err { background: color-mix(in srgb, var(--err) 14%, transparent); color: var(--err); }
.seg { display: inline-flex; border: 1px solid var(--line); border-radius: 999px; padding: 3px; height: 40px; align-items: center; }
.seg button { height: 32px; padding: 0 12px; border-radius: 999px; border: 0; background: none; font-size: 13px; font-weight: 600; color: var(--muted); cursor: pointer; }
.seg button[aria-pressed="true"] { background: var(--ink); color: var(--bg); }
.topics { display: flex; gap: 28px; overflow-x: auto; border-bottom: 1px solid var(--line); scrollbar-width: none; }
.nav-a { font-size: 14px; font-weight: 500; color: var(--soft); padding: 8px 0; white-space: nowrap; }
.nav-a:hover { color: var(--ink); }
.nav-a.on { color: var(--ink); box-shadow: inset 0 -2px 0 var(--accent); }
.topics .nav-a { padding: 14px 0; }

/* ---------- Kartu & media ---------- */
.card { background: var(--bg); border: 1px solid var(--line); border-radius: var(--r-lg); }
[data-theme="dark"] .card { background: var(--surface); }
.box { background: var(--surface); border-radius: var(--r-lg); }
.ph { position: relative; display: flex; align-items: center; justify-content: center; overflow: hidden; border-radius: var(--r); background-color: var(--surface); background-image: repeating-linear-gradient(135deg, transparent 0 12px, color-mix(in srgb, var(--ink) 5%, transparent) 12px 13px); color: var(--muted); font-size: 12px; font-weight: 500; letter-spacing: .04em; text-align: center; }
.ph > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ph-dark { background-color: #0A0A0A; background-image: repeating-linear-gradient(135deg, transparent 0 12px, rgba(255,255,255,.04) 12px 13px); color: #7A7A7A; }
.media-16x9 { aspect-ratio: 16 / 9; } .media-4x5 { aspect-ratio: 4 / 5; } .media-1x1 { aspect-ratio: 1 / 1; } .media-21x9 { aspect-ratio: 21 / 9; } .media-16x10 { aspect-ratio: 16 / 10; } .media-3x2 { aspect-ratio: 3 / 2; }
.pcard { display: flex; flex-direction: column; gap: 6px; text-align: left; background: none; border: 0; padding: 0; color: var(--ink); cursor: pointer; width: 100%; }
.pcard .ph { transition: transform .25s ease; }
.pcard:hover .ph { transform: translateY(-3px); }
.pcard-title { font-weight: 500; font-size: 16px; line-height: 1.35; margin-top: 8px; }
.price { font-weight: 600; font-variant-numeric: tabular-nums; }
.price-old { color: var(--muted); text-decoration: line-through; font-weight: 400; font-size: 14px; margin-left: 8px; }
.play { width: 54px; height: 54px; border-radius: 999px; background: var(--accent); color: var(--on-accent); display: flex; align-items: center; justify-content: center; position: relative; z-index: 1; }
.play-lg { width: 72px; height: 72px; }
.dur { position: absolute; right: 10px; bottom: 10px; z-index: 1; background: rgba(0,0,0,.8); color: #fff; font-size: 12px; font-weight: 600; padding: 3px 7px; border-radius: 6px; }
.date-block { width: 68px; flex: none; text-align: center; border: 1px solid var(--line); border-radius: var(--r); padding: 10px 0; }
.date-block .d { font-size: 26px; font-weight: 600; line-height: 1; letter-spacing: -.04em; }
.date-block .m { font-size: 11px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); margin-top: 5px; }

/* ---------- Form ---------- */
.field { display: flex; flex-direction: column; gap: 8px; }
.label { font-size: 14px; font-weight: 500; color: var(--soft); }
.input { height: 48px; width: 100%; padding: 0 16px; border-radius: 12px; border: 1px solid var(--line); background: var(--bg); color: var(--ink); font: 400 15px var(--f-ui); }
[data-theme="dark"] .input { background: var(--surface); }
.input::placeholder { color: var(--muted); }
.input:focus { outline: 2px solid var(--accent); outline-offset: 1px; border-color: transparent; }
textarea.input { height: auto; min-height: 150px; padding: 14px 16px; line-height: 1.5; resize: vertical; }
select.input { appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%); background-position: calc(100% - 22px) 21px, calc(100% - 16px) 21px; background-size: 6px 6px; background-repeat: no-repeat; padding-right: 44px; }
.input-pill { border-radius: 999px; }
.hint { font-size: 13px; color: var(--muted); }
.notice { padding: 12px 16px; border-radius: 12px; font-size: 14px; margin: 0 0 16px; }
.notice-ok { background: color-mix(in srgb, var(--ok) 14%, transparent); color: var(--ok); }
.notice-err { background: color-mix(in srgb, var(--err) 12%, transparent); color: var(--err); }
.prog { height: 4px; border-radius: 999px; background: var(--line); overflow: hidden; }
.prog > i { display: block; height: 100%; width: 0; background: var(--accent); border-radius: 999px; }

/* ---------- Header ---------- */
.site-header { position: sticky; top: 0; z-index: 40; background: color-mix(in srgb, var(--bg) 88%, transparent); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border-bottom: 1px solid var(--line); }
.admin-bar .site-header { top: 32px; }
.site-header .bar { height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.brand { display: inline-flex; align-items: center; gap: 10px; flex: none; }
.brand-dot { width: 8px; height: 8px; border-radius: 999px; background: var(--accent); }
.brand-name { font-size: 17px; font-weight: 600; letter-spacing: -.02em; }
.custom-logo-link img { max-height: 40px; width: auto; }
.site-nav .nav-list { display: flex; gap: 28px; align-items: center; }
.site-nav .sub-menu { display: none; }
.tools { display: flex; align-items: center; gap: 6px; flex: none; }
.tools .seg { height: 38px; } .tools .seg button { height: 30px; }
.theme-icon-sun { display: none; }
[data-theme="dark"] .theme-icon-sun { display: block; }
[data-theme="dark"] .theme-icon-moon { display: none; }
.nav-toggle { display: none; }
.mobile-nav { display: none; border-top: 1px solid var(--line); background: var(--bg); }
.site-header.is-open .mobile-nav { display: block; }
.mobile-nav .nav-list { display: flex; flex-direction: column; padding: 12px 0; }
.mobile-nav .nav-list a { display: block; font-size: 24px; font-weight: 600; letter-spacing: -.03em; padding: 12px 0; border-bottom: 1px solid var(--line); }
.mobile-nav .mobile-tools { display: flex; gap: 10px; padding: 16px 0 24px; }

/* ---------- Footer ---------- */
.site-footer { border-top: 1px solid var(--line); padding: 72px 0 32px; }
.footer-news { display: flex; flex-wrap: wrap; gap: 32px; justify-content: space-between; align-items: flex-end; padding-bottom: 56px; border-bottom: 1px solid var(--line); }
.footer-news form { display: flex; flex-wrap: wrap; gap: 10px; flex: 1 1 420px; max-width: 540px; }
.footer-news .input { flex: 2 1 200px; }
.footer-news select.input { flex: 1 1 130px; }
.footer-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 40px; padding: 56px 0; }
.footer-cols ul { display: flex; flex-direction: column; gap: 12px; }
.foot-a, .footer-cols ul a { color: var(--muted); font-size: 15px; }
.foot-a:hover, .footer-cols ul a:hover { color: var(--ink); }
.footer-bottom { display: flex; flex-wrap: wrap; gap: 16px; justify-content: space-between; padding-top: 24px; border-top: 1px solid var(--line); font-size: 14px; color: var(--muted); }

/* ---------- Hero ---------- */
.hero-sorot { position: relative; overflow: hidden; border-bottom: 1px solid var(--line); }
.hero-sorot .hero-photo { position: absolute; top: 0; right: 0; bottom: 0; width: 56%; border-radius: 0; }
.hero-sorot .hero-photo img { object-position: center top; }
.hero-sorot .hero-fade { position: absolute; top: 0; bottom: 0; right: 0; width: 56%; background: linear-gradient(90deg, var(--bg) 0%, transparent 45%); }
.hero-sorot .hero-inner { position: relative; min-height: 680px; display: flex; flex-direction: column; justify-content: space-between; padding-top: 112px; }
.hero-sorot .hero-copy { max-width: 560px; display: flex; flex-direction: column; gap: 24px; }
.hero-next { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; padding: 22px 0; margin-top: 72px; border-top: 1px solid var(--line); max-width: 640px; }
.hero-next .go { display: inline-flex; gap: 6px; align-items: center; margin-left: auto; font-weight: 600; }
.hero-poster { padding: 24px 0 0; }
.hero-poster .poster { position: relative; aspect-ratio: 21 / 9; min-height: 440px; border-radius: var(--r-lg); align-items: flex-end; justify-content: flex-start; }
.hero-poster .poster::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,.8) 0%, transparent 62%); }
.hero-poster .poster-copy { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 16px; padding: 44px; max-width: 680px; color: #fff; text-align: left; }
.hero-poster .poster-copy .lead { color: #CCCCCC; }
.hero-poster .btn-ghost { color: #fff; border-color: rgba(255,255,255,.3); }
.hero-split { padding: 96px 0 104px; border-bottom: 1px solid var(--line); }
.next-card { display: flex; gap: 20px; padding: 22px; align-items: center; }
.date-accent { display: flex; flex-direction: column; align-items: center; width: 72px; flex: none; padding: 10px 0; border-radius: 12px; background: var(--accent); color: var(--on-accent); }
.date-accent .d { font-size: 30px; font-weight: 600; letter-spacing: -.04em; line-height: 1; }
.date-accent .m { font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }

/* ---------- Acara ---------- */
.event-list { border-top: 1px solid var(--line); }
.event-row { display: flex; flex-wrap: wrap; align-items: center; gap: 24px; padding: 22px 0; border-bottom: 1px solid var(--line); }
.event-main { flex: 1 1 280px; min-width: 0; }
.event-price { width: 160px; }
.event-cta { min-width: 130px; }
.event-poster { width: 88px; flex: none; }
.event-poster .ph, .event-poster img { aspect-ratio: 4 / 5; border-radius: 10px; object-fit: cover; }
.month-head { padding: 48px 0 14px; border-bottom: 1px solid var(--line); color: var(--accent-ink); }
.filterbar { position: sticky; top: var(--hdr-h); z-index: 4; background: var(--bg); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.admin-bar .filterbar { top: calc(var(--hdr-h) + 32px); }
.filterbar .wrap { display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between; padding-top: 14px; padding-bottom: 14px; }
.chips { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; }

/* ---------- Video modal ---------- */
.yt-modal { position: fixed; inset: 0; z-index: 90; display: none; align-items: center; justify-content: center; padding: 24px; background: rgba(0,0,0,.88); }
.yt-modal.is-open { display: flex; }
.yt-modal .inner { width: min(1000px, 100%); display: flex; flex-direction: column; gap: 16px; }
.yt-modal .top { display: flex; justify-content: space-between; align-items: center; gap: 16px; color: #fff; }
.yt-modal .frame { position: relative; aspect-ratio: 16 / 9; background: #000; border-radius: var(--r); overflow: hidden; }
.yt-modal iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.yt-modal .icon-btn { color: #fff; border-color: rgba(255,255,255,.3); }
.vcard-lg { flex-direction: row; flex-wrap: wrap; gap: 40px; align-items: center; }
.vcard-lg .ph { flex: 1.6 1 560px; border-radius: var(--r-lg); }

/* ---------- Podcast ---------- */
.ep-row { display: flex; gap: 20px; padding: 24px 0; border-bottom: 1px solid var(--line); align-items: flex-start; }
.ep-play { width: 50px; height: 50px; }
.ep-play.is-playing { background: var(--accent); color: var(--on-accent); border-color: var(--accent); }
.ep-play .icon-pause { display: none; } .ep-play.is-playing .icon-pause { display: block; } .ep-play.is-playing .icon-play { display: none; }
.ep-row .prog { margin-top: 10px; max-width: 520px; cursor: pointer; }
.audio-bar { position: sticky; bottom: 0; z-index: 30; background: var(--surface); border-top: 1px solid var(--line); }
.audio-bar[hidden] { display: none; }
.audio-bar .wrap { display: flex; align-items: center; gap: 16px; height: 74px; }

/* ---------- Blog ---------- */
.post-list-item { display: flex; gap: 32px; padding: 32px 0; border-bottom: 1px solid var(--line); align-items: flex-start; }
.post-list-item .ph { width: 168px; flex: none; border-radius: 8px; }
.post-title { font-size: 22px; font-weight: 600; letter-spacing: -.025em; line-height: 1.3; }
.post-excerpt { font-family: var(--f-read); font-size: 18px; line-height: 1.5; color: var(--soft); }
.blog-side { flex: 0 0 300px; position: sticky; top: calc(var(--hdr-h) + 24px); }
.pagination { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; margin-top: 56px; }
.pagination .dots { border: 0; }

/* ---------- Artikel (gaya Medium) ---------- */
.read-progress { position: sticky; top: var(--hdr-h); z-index: 8; height: 2px; }
.read-progress i { display: block; height: 2px; width: 0; background: var(--accent); }
.entry-head { padding-top: 72px; display: flex; flex-direction: column; gap: 22px; }
.entry-title { font-size: clamp(32px, 4.2vw, 44px); font-weight: 600; letter-spacing: -.035em; line-height: 1.12; }
.entry-sub { font-family: var(--f-read); font-size: 22px; line-height: 1.45; color: var(--soft); }
.byline { display: flex; flex-wrap: wrap; gap: 14px; padding: 18px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); justify-content: space-between; align-items: center; }
.avatar { border-radius: 999px; flex: none; }
.prose { font-family: var(--f-read); font-size: 21px; line-height: 1.72; color: var(--ink); }
[data-theme="dark"] .prose { color: #E6E6E6; }
.prose > * + * { margin-top: 30px; }
.prose h2, .prose h3 { font-family: var(--f-ui); color: var(--ink); letter-spacing: -.025em; line-height: 1.25; }
.prose h2 { font-size: 25px; font-weight: 600; margin-top: 52px; }
.prose h3 { font-size: 21px; font-weight: 600; margin-top: 40px; }
.prose h2 + *, .prose h3 + * { margin-top: 14px; }
.prose a { text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--accent); }
.prose ul, .prose ol { padding-left: 28px; } .prose ul { list-style: disc; } .prose ol { list-style: decimal; }
.prose li + li { margin-top: 10px; }
.prose blockquote { font-family: var(--f-ui); font-size: 27px; line-height: 1.3; letter-spacing: -.025em; font-weight: 500; color: var(--ink); }
.prose blockquote p + p { margin-top: 12px; }
.prose figure, .prose .wp-block-image { margin-left: 0; margin-right: 0; }
.prose img { border-radius: var(--r); }
.prose figcaption, .prose .wp-element-caption { font-family: var(--f-ui); font-size: 14px; color: var(--muted); text-align: center; margin-top: 12px; }
.prose pre, .prose code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .8em; }
.prose pre { background: var(--surface); padding: 16px; border-radius: var(--r); overflow-x: auto; }
.prose hr { border: 0; height: 1px; background: var(--line); }
.prose table { width: 100%; border-collapse: collapse; font-family: var(--f-ui); font-size: 15px; }
.prose th, .prose td { border-bottom: 1px solid var(--line); padding: 10px 8px; text-align: left; }
.alignwide { max-width: 1000px; margin-left: auto; margin-right: auto; }
.alignfull { width: 100vw; margin-left: calc(50% - 50vw); }
.alignleft { float: left; margin: 0 24px 16px 0; } .alignright { float: right; margin: 0 0 16px 24px; } .aligncenter { margin-left: auto; margin-right: auto; }
.prose-ui { font-size: 17px; line-height: 1.75; color: var(--soft); }
.prose-ui > * + * { margin-top: 18px; }
.prose-ui h2 { font-size: 20px; font-weight: 600; color: var(--ink); margin-top: 40px; }
.prose-ui ul { list-style: disc; padding-left: 22px; }
.prose-ui a { text-decoration: underline; }

/* Komentar */
.comments { padding: 48px 0; display: flex; flex-direction: column; gap: 24px; }
.comment-list .comment { padding: 20px 0; border-top: 1px solid var(--line); }
.comment-list .children { padding-left: 24px; }
.comment-meta { display: flex; align-items: center; gap: 10px; font-size: 14px; }
.comment-meta img { border-radius: 999px; }
.comment-content { margin-top: 8px; color: var(--soft); }
.comment-form { display: flex; flex-direction: column; gap: 12px; }
.comment-form input[type=text], .comment-form input[type=email], .comment-form input[type=url], .comment-form textarea { width: 100%; padding: 12px 16px; border-radius: 12px; border: 1px solid var(--line); background: var(--bg); color: var(--ink); }
[data-theme="dark"] .comment-form input:not([type=submit]):not([type=checkbox]), [data-theme="dark"] .comment-form textarea { background: var(--surface); }
.comment-form .submit { height: 38px; padding: 0 16px; border-radius: 999px; border: 0; background: var(--accent); color: var(--on-accent); font-weight: 600; cursor: pointer; }
.reply a, .comment-reply-link { font-size: 14px; color: var(--muted); }

/* ---------- Popup promo ---------- */
.promo { position: fixed; inset: 0; z-index: 95; display: none; align-items: center; justify-content: center; padding: 24px; background: rgba(0,0,0,.65); }
.promo.is-open { display: flex; }
.promo .card { position: relative; width: min(400px, 100%); padding: 28px; display: flex; flex-direction: column; gap: 14px; box-shadow: var(--shadow); }
.promo .close { position: absolute; top: 10px; right: 10px; }
.promo-bar { display: none; background: var(--accent); color: var(--on-accent); font-size: 14px; font-weight: 600; }
.promo-bar.is-open { display: block; }
.promo-bar .wrap { display: flex; gap: 12px; justify-content: space-between; align-items: center; min-height: 44px; }
.promo-bar button { background: none; border: 0; color: inherit; cursor: pointer; }

/* ---------- FAQ ---------- */
.faq details { border-bottom: 1px solid var(--line); }
.faq summary { display: flex; justify-content: space-between; gap: 16px; padding: 22px 0; cursor: pointer; list-style: none; font-size: 18px; font-weight: 600; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; color: var(--accent-ink); font-size: 22px; line-height: 1; }
.faq details[open] summary::after { content: "−"; }
.faq details p { padding: 0 40px 24px 0; color: var(--soft); max-width: 720px; }

/* ---------- Responsif ---------- */
@media (max-width: 1020px) {
  .g-4, .g-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .site-nav, .tools .hide-t { display: none !important; }
  .nav-toggle { display: inline-flex; }
  .section { padding: 80px 0; }
  .hero-sorot .hero-photo { width: 100%; opacity: .35; }
  .hero-sorot .hero-fade { width: 100%; background: linear-gradient(0deg, var(--bg) 10%, transparent 80%); }
  .blog-side { display: none; }
}
@media (max-width: 640px) {
  .g-2, .g-3, .g-4 { grid-template-columns: minmax(0, 1fr); }
  .g.g-m2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .wrap { padding: 0 16px; }
  .section { padding: 64px 0; }
  .page-head { padding: 64px 0 32px; }
  .hide-m { display: none !important; }
  .prose { font-size: 19px; }
  .sec-head { margin-bottom: 28px; }
  .hero-sorot .hero-inner { min-height: 560px; padding-top: 72px; }
  .hero-poster .poster { min-height: 520px; aspect-ratio: auto; }
  .hero-poster .poster-copy { padding: 24px; }
  .event-row { gap: 14px; }
  .event-price { width: auto; }
  .event-cta { flex: 1 1 100%; }
  .post-list-item .ph { width: 96px; }
  .post-title { font-size: 19px; }
  .admin-bar .site-header { top: 0; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* ---------- Tambahan komponen ---------- */
.footer-news .notice { flex: 1 1 100%; margin: 0; }
.promo-code { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 8px 8px 16px; border: 1px dashed var(--line); border-radius: 12px; letter-spacing: .08em; }
.section + .section.pt-first { padding-top: 0; }
.gap-18 { gap: 18px; }
.xs.muted, .small.muted { line-height: 1.45; }
.about-photo { flex: 1 1 320px; max-width: 440px; border-radius: var(--r-lg); }
.home-pod { flex: 1 1 460px; padding: 28px; }
.pod-cover { width: 112px; flex: none; }
.ep-play.is-accent { background: var(--accent); color: var(--on-accent); border-color: var(--accent); }
.home-pod .ep-play { width: 48px; height: 48px; }
.home-pod .prog { margin: 0; max-width: none; }
.home-posts { flex: 1 1 460px; border-top: 1px solid var(--line); }
.home-post { padding: 18px 0; border-bottom: 1px solid var(--line); }
.home-post:hover .strong { color: var(--accent-ink); }
.booking-card { padding: 48px; align-items: center; }
.tour-cities { gap: 12px; }
.tour-city { padding: 16px 18px; }
.builder-content > .elementor { width: 100%; }
@media (max-width: 640px) {
  .booking-card { padding: 28px; }
  .home-pod { padding: 22px; }
  .pod-cover { width: 84px; }
}
.gap-28 { gap: 28px; } .pt-0 { padding-top: 0 !important; }
.about-head { padding: 96px 0 56px; }
.about-lead { flex: 1 1 480px; max-width: 600px; font-size: 21px; }
.about-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; flex: 1 1 420px; }
.about-wide { border-radius: var(--r-lg); }
.about-story { font-size: 18px; }
.timeline { border-top: 1px solid var(--line); }
.timeline li { display: flex; flex-wrap: wrap; gap: 32px; padding: 26px 0; border-bottom: 1px solid var(--line); }
.timeline-year { font-size: 28px; font-weight: 600; letter-spacing: -.03em; width: 140px; color: var(--accent-ink); }
.svc-card { padding: 28px; }
.schedule-list { padding: 0 0 80px; }
.schedule-list .event-row { padding: 24px 0; }
.schedule-list .date-block { width: 78px; }
.city-select { height: 40px; width: 190px; font-size: 14px; background-position: calc(100% - 22px) 17px, calc(100% - 16px) 17px; }
.empty-box { margin-top: 48px; padding: 56px; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 10px; }
.empty-box[hidden] { display: none; }
.past-card { flex: 1 1 520px; padding: 32px; }
.past-row { padding: 14px 0; border-top: 1px solid var(--line); }
.past-date { width: 120px; flex: none; }
.suggest-card { flex: 1 1 380px; padding: 32px; }
[hidden] { display: none !important; }
@media (max-width: 640px) {
  .about-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .timeline-year { width: auto; font-size: 22px; }
  .past-card, .suggest-card { padding: 22px; }
  .empty-box { padding: 32px 20px; }
}
.gap-22 { gap: 22px; } .gap-56 { gap: 56px; } .gap-72 { gap: 72px; }
.contact-wrap { padding: 96px 0 104px; }
.contact-side { flex: 1 1 340px; }
.contact-lines { border-top: 1px solid var(--line); }
.contact-lines > div { padding: 20px 0; border-bottom: 1px solid var(--line); }
.contact-card { flex: 1.3 1 520px; padding: 40px; min-width: 0; }
fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
legend { padding: 0; }
.chip-radio { position: relative; }
.chip-radio:has(input:checked) { background: var(--ink); color: var(--bg); border-color: var(--ink); }
.chip-radio:has(input:focus-visible) { outline: 2px solid var(--accent); outline-offset: 2px; }
.booking-fields { padding: 22px; border: 1px solid var(--line); border-radius: var(--r); }
.sent-box { align-items: flex-start; padding: 40px 0; }
.sent-icon { width: 52px; height: 52px; border-radius: 999px; background: var(--accent); color: var(--on-accent); display: flex; align-items: center; justify-content: center; }
.sync-badge { height: 36px; padding: 0 14px; }
.dot-ok { width: 8px; height: 8px; border-radius: 9px; background: var(--ok); }
.featured-video { padding-bottom: 72px; }
.featured-copy { flex: 1 1 320px; }
.playlist-chips { padding-bottom: 32px; border-bottom: 1px solid var(--line); margin-bottom: 40px; }
.video-grid { gap: 40px 24px; }
.pod-head { padding: 96px 0 64px; }
.pod-head .row { align-items: center; }
.pod-cover-lg { flex: 0 1 320px; min-width: 220px; border-radius: var(--r-lg); }
.ep-head { padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.ep-search { height: 42px; max-width: 300px; }
.legal-toc { flex: 0 0 240px; }
.legal-body { max-width: 740px; }
@media (max-width: 640px) {
  .contact-wrap { padding: 64px 0; }
  .contact-card { padding: 22px; }
  .pod-head { padding: 64px 0 40px; }
  .pod-cover-lg { flex-basis: 100%; max-width: 260px; }
}
.gap-40 { gap: 40px; }
.blog-head { padding: 88px 0 0; }
.blog-body { padding: 48px 0 112px; }
.blog-main { max-width: 700px; }
.pop-n { font-size: 20px; font-weight: 600; color: var(--accent-ink); width: 32px; flex: none; line-height: 1.2; }
.side-news { padding: 24px; }
.post-list-item .ph { aspect-ratio: 3 / 2; }
.post-list-item:hover .post-title { color: var(--accent-ink); }
.blog-grid { gap: 48px 28px; }
.post-card-title { font-size: 20px; font-weight: 600; letter-spacing: -.025em; line-height: 1.3; }
.post-card-small .post-card-title { font-size: 18px; }
.post-card-big .ph { border-radius: var(--r-lg); }
.mag-top { align-items: stretch; padding-bottom: 56px; border-bottom: 1px solid var(--line); }
.mag-feature { flex: 1.7 1 520px; min-width: 0; }
.mag-side { flex: 1 1 300px; min-width: 0; }
.mag-rest { gap: 0 56px; margin-top: 16px; }
.post-row { padding: 24px 0; border-bottom: 1px solid var(--line); }
.post-row-img { width: 112px; flex: none; border-radius: 10px; }
.post-row-title { font-size: 17px; line-height: 1.35; }
.archive-head { padding: 80px 0 40px; border-bottom: 1px solid var(--line); }
.archive-body { padding: 16px 0 112px; }
.search-form { width: 100%; }
.search-form .input { flex: 1 1 auto; }
.search-big .input { height: 58px; font-size: 19px; padding: 0 24px; }
.nf { padding: 112px 0 128px; }
.nf .wrap { align-items: center; }
.nf-code { flex: 1 1 380px; font-size: clamp(120px, 18vw, 240px); font-weight: 600; line-height: .85; letter-spacing: -.07em; }
.nf-code span { color: var(--accent-ink); }
.entry-figure { margin: 40px auto 0; }
.entry-figure figcaption { text-align: center; margin-top: 12px; }
.entry-body { padding-top: 48px; }
.entry-foot { padding-top: 32px; }
.author-box { padding: 32px 0; margin-top: 40px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.related { background: var(--surface); padding: 72px 0 96px; }
.related .ph { background-color: var(--bg); }
.page-body { padding-bottom: 32px; }
.comment-form p { margin: 0; }
.comment-form label { font-size: 14px; color: var(--soft); display: block; margin-bottom: 6px; }
.comment-form textarea { min-height: 110px; }
.comment-form .form-submit { display: flex; justify-content: flex-end; }
.comment-form-cookies-consent { display: flex; gap: 8px; align-items: center; }
.comment-form-cookies-consent label { margin: 0; }
.comment-reply-title small { margin-left: 8px; font-size: 13px; }
.comment-list .comment { list-style: none; }
.prose .wp-block-embed iframe, .prose iframe { width: 100%; border-radius: var(--r); }
@media (max-width: 640px) {
  .blog-head { padding-top: 56px; }
  .nf { padding: 64px 0; }
  .mag-rest { gap: 0; }
}

/* ---------- Logo teks (gaya radityadika.com: foto bulat + nama besar) ---------- */
.brand { gap: 12px; }
.brand-avatar { width: 40px; height: 40px; border-radius: 999px; object-fit: cover; flex: none; background: var(--surface); }
.brand-md .brand-name { font-size: 18px; }
.brand-lg .brand-name { font-size: 22px; font-weight: 700; letter-spacing: -.01em; }
.brand-xl .brand-name { font-size: 27px; font-weight: 700; letter-spacing: -.015em; }
.brand-xl .brand-avatar { width: 46px; height: 46px; }
.brand-upper .brand-name { text-transform: uppercase; letter-spacing: .01em; }
.brand-accent .brand-name { color: var(--accent-ink); }
[data-theme="dark"] .brand-accent .brand-name { color: var(--accent); }
.site-footer .brand-name { font-size: 18px; }
.site-footer .brand-avatar { width: 34px; height: 34px; }
@media (max-width: 640px) {
  .brand-lg .brand-name, .brand-xl .brand-name { font-size: 19px; }
  .brand-avatar, .brand-xl .brand-avatar { width: 34px; height: 34px; }
}
.rich > * + * { margin-top: .85em; }
.rich a { text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--accent); }
.rich ul { list-style: disc; padding-left: 1.3em; } .rich ol { list-style: decimal; padding-left: 1.3em; }
.rich blockquote { border-left: 2px solid var(--accent); padding-left: 16px; }
.pod-desc { max-width: 560px; }
.tentang-row { align-items: center; }
.tentang-row.photo-right .about-photo { order: 2; }
.about-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 24px; padding: 40px 0; margin-top: 40px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.about-stat { font-size: clamp(40px, 4.4vw, 60px); font-weight: 600; letter-spacing: -.045em; line-height: 1; color: var(--accent-ink); }
[data-theme="dark"] .about-stat { color: var(--accent); }
.about-stats dd { margin-top: 10px; }
.about-story-side { flex: 1 1 300px; position: sticky; top: calc(var(--hdr-h) + 32px); }
.about-story-main { flex: 2 1 520px; min-width: 0; }
.about-story { font-size: 19px; line-height: 1.75; color: var(--soft); }
.about-portrait { border-radius: var(--r-lg); max-width: 360px; margin-top: 12px; }
.about-quote { font-size: clamp(26px, 2.6vw, 34px); font-weight: 600; letter-spacing: -.03em; line-height: 1.2; padding-left: 24px; border-left: 3px solid var(--accent); }
.svc-no { font-size: 14px; font-weight: 600; color: var(--accent-ink); }
[data-theme="dark"] .svc-no, [data-theme="dark"] .timeline-year { color: var(--accent); }
@media (max-width: 1020px) { .about-story-side { position: static; } }
.shop-head { padding: 88px 0 40px; }
.shop-lead { max-width: 520px; }
.shop-points { grid-template-columns: repeat(3, minmax(0, auto)); gap: 28px; }
.shop-points > div { max-width: 180px; }
.shop-featured { padding-bottom: 56px; }
.shop-feature { overflow: hidden; align-items: stretch; }
.shop-feature-copy { flex: 1 1 420px; padding: 48px; justify-content: center; }
.shop-feature-img { flex: 1 1 420px; min-height: 320px; border-radius: 0; }
.shop-body { padding: 48px 0 112px; }
.shop-grid { gap: 48px 24px; }
.chip-n { opacity: .6; font-variant-numeric: tabular-nums; }
@media (max-width: 640px) { .shop-feature-copy { padding: 24px; } .shop-head { padding-top: 56px; } }
@media (max-width: 640px) { .tour-city { padding: 12px 14px; flex-direction: column; align-items: flex-start; gap: 8px; } }

/* ---------- Podcast & tulisan di Beranda ---------- */
.ep-card { display: flex; flex-direction: column; gap: 12px; padding: 22px; }
.ep-card-cover { width: 56px; flex: none; border-radius: 10px; }
.ep-card-text { flex: 1; }
.ep-card-play { margin-top: auto; padding-top: 6px; }
.ep-card .ep-play { width: 44px; height: 44px; }
.ep-card .prog { margin: 0; max-width: none; }
.blog-home-grid { gap: 40px 24px; }

/* ---------- Tablet & HP: deretan geser ke samping ---------- */
@media (max-width: 1020px) {
  .rail {
    display: grid !important; grid-auto-flow: column; grid-template-columns: none !important;
    grid-auto-columns: 44%; gap: 14px !important;
    overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch;
    scrollbar-width: none; margin-right: -32px; padding-right: 32px; padding-bottom: 4px;
  }
  .rail::-webkit-scrollbar { display: none; }
  .rail > * { scroll-snap-align: start; min-width: 0; }
  .rail-sm { grid-auto-columns: 30%; }
  /* Foto Tentang tampil lebih dulu, lalu teks. */
  .tentang-row .about-photo, .tentang-row.photo-right .about-photo { order: -1; max-width: none; flex-basis: 100%; }
  .video-home-grid { gap: 24px 14px; }
}
@media (max-width: 640px) {
  .rail { grid-auto-columns: 68%; margin-right: -16px; padding-right: 16px; }
  .video-home-grid > :nth-child(odd):last-child { display: none; }
  .rail-sm { grid-auto-columns: 46%; }
  .video-home-grid .pcard-title { font-size: 14px; }
  .video-home-grid .small.muted { font-size: 12px; }
  .tentang-row .about-photo { aspect-ratio: 4 / 4; }
}

/* ---------- Artikel v0.5: lebih lega & rapi ---------- */
.entry-head { gap: 18px; }
.entry-sub { font-family: var(--f-ui); font-size: 20px; line-height: 1.5; letter-spacing: -.01em; }
.byline { padding: 16px 0; }
.entry-figure { margin: 36px auto 0; }
.entry-figure .ph { border-radius: var(--r); }
.entry-body { padding-top: 40px; }

/* Isi artikel: huruf sans (bawaan) */
.prose { font-family: var(--f-ui); font-size: 18px; line-height: 1.85; letter-spacing: -.003em; color: var(--soft); }
[data-theme="dark"] .prose { color: #D9D9D9; }
.prose > * + * { margin-top: 1.5em; }
.prose p { text-wrap: pretty; }
.prose strong { color: var(--ink); font-weight: 600; }
.prose h2 { font-size: 24px; margin-top: 2.2em; color: var(--ink); }
.prose h3 { font-size: 20px; margin-top: 1.9em; color: var(--ink); }
.prose h2 + *, .prose h3 + * { margin-top: .7em; }
.prose blockquote, .prose .wp-block-quote { font-family: var(--f-ui); font-size: 20px; line-height: 1.6; font-weight: 500; letter-spacing: -.01em; font-style: italic; color: var(--ink); margin: 2em 0; padding: 4px 0 4px 22px; border-left: 3px solid var(--accent); }
.prose blockquote cite { display: block; margin-top: 8px; font-size: 14px; font-style: normal; color: var(--muted); }
.prose li { padding-left: 4px; }
.prose li + li { margin-top: .5em; }
.prose figure, .prose .wp-block-image { margin-top: 2em; margin-bottom: 2em; }
/* Gaya majalah (pilihan Serif) */
.article-serif .prose { font-family: var(--f-read); font-size: 20px; line-height: 1.75; color: var(--ink); }
[data-theme="dark"] .article-serif .prose { color: #E6E6E6; }
.article-serif .prose blockquote { font-family: var(--f-read); font-size: 22px; }

/* Tombol bagikan */
.share { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.share > span { margin-right: 4px; }
.share-btn { width: 36px; height: 36px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; color: #fff; border: 0; cursor: pointer; transition: transform .15s, opacity .15s; }
.share-btn:hover { transform: translateY(-1px); opacity: .9; }
.share-fb { background: #3B5998; }
.share-x, .share-th { background: #111; }
[data-theme="dark"] .share-x, [data-theme="dark"] .share-th { background: #2A2A2A; }
.share-wa { background: #25D366; }
.share-link { background: var(--surface); color: var(--ink); border: 1px solid var(--line); }
.share-link.is-copied { background: var(--accent); color: var(--on-accent); border-color: var(--accent); }

.related { margin-top: 64px; padding: 64px 0 88px; }

/* ---------- Kartu sama tinggi, judul maksimal 2 baris ---------- */
.post-card { height: 100%; }
.post-card .post-card-title, .pcard-title, .post-title, .post-row-title, .home-post .strong {
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden;
}
.post-card .small.muted, .post-excerpt, .ep-card-text {
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden;
}
.post-card .post-card-title { min-height: 2.6em; }
.blog-grid > *, .blog-home-grid > *, .related-grid > * { display: flex; }
.blog-grid > * > .pcard, .blog-home-grid > * > .pcard, .related-grid > .pcard { flex: 1; }
.ep-card { height: 100%; }
.ep-card .fs-h4 { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; min-height: 2.7em; }
.shop-grid .pcard-title, .video-home-grid .pcard-title { min-height: 2.7em; }
@media (max-width: 640px) {
  .prose { font-size: 17px; line-height: 1.8; }
  .article-serif .prose { font-size: 19px; }
  .entry-title { font-size: 30px; }
  .entry-sub { font-size: 18px; }
  .byline { flex-direction: column; align-items: flex-start; }
}
.byline .avatar, .author-box .avatar { object-fit: cover; }
@media (max-width: 640px) { .entry-head { padding-top: 40px; } }
.post-excerpt { font-family: var(--f-ui); font-size: 16px; line-height: 1.6; }
.article-serif .post-excerpt { font-family: var(--f-read); font-size: 18px; line-height: 1.5; }
.post-list-item .avatar { width: 22px; height: 22px; object-fit: cover; }

/* ---------- Footer ringkas ---------- */
.footer-compact { display: flex; flex-wrap: wrap; gap: 24px; justify-content: space-between; align-items: flex-end; padding: 48px 0 32px; }
.footer-news + .footer-compact { padding-top: 48px; }
.site-footer > .wrap > .footer-compact:first-child { padding-top: 0; }
.footer-legal { display: flex; flex-wrap: wrap; gap: 6px 20px; }
.footer-bottom { align-items: center; }
@media (max-width: 640px) {
  .footer-compact { flex-direction: column; align-items: flex-start; }
  .footer-bottom { flex-direction: column; align-items: flex-start; gap: 12px; }
}
.footer-compact-side { align-items: flex-end; text-align: right; }
@media (max-width: 640px) { .footer-compact-side { align-items: flex-start; text-align: left; } }
/* Footer satu baris: tanpa garis atas bila tidak ada bagian lain di atasnya. */
.site-footer > .wrap > .footer-bottom:first-child { border-top: 0; padding-top: 0; }
.site-footer:has(> .wrap > .footer-bottom:first-child) { padding: 28px 0; }
.footer-news + .footer-bottom { border-top: 0; }

/* Artikel v0.6.2: jarak baris & paragraf lebih rapat dan proporsional. */
.prose { line-height: 1.65; }
.prose > * + * { margin-top: 1.05em; }
.prose h2 { margin-top: 1.7em; }
.prose h3 { margin-top: 1.5em; }
.prose h2 + *, .prose h3 + * { margin-top: .5em; }
.prose blockquote, .prose .wp-block-quote { margin: 1.5em 0; line-height: 1.5; }
.prose figure, .prose .wp-block-image { margin-top: 1.5em; margin-bottom: 1.5em; }
.prose li + li { margin-top: .35em; }
.article-serif .prose { line-height: 1.6; }
.entry-body { padding-top: 32px; }
@media (max-width: 640px) { .prose { line-height: 1.6; } }
/* v0.6.3: jarak sebelum subjudul tidak terlalu jauh dari paragraf di atasnya. */
.prose > * + * { margin-top: .95em; }
.prose h2, .prose > h2 { margin-top: 1.1em; }
.prose h3, .prose > h3 { margin-top: 1em; }
.prose h2 + *, .prose h3 + * { margin-top: .45em; }
.prose blockquote, .prose .wp-block-quote { margin: 1.2em 0; }
.shop-feature-img.is-portrait { flex: 0 1 340px; aspect-ratio: 4 / 5; min-height: 0; margin: 20px 20px 20px auto; border-radius: var(--r); }
@media (max-width: 760px) { .shop-feature-img.is-portrait { flex-basis: 100%; margin: 0 20px 20px; } }
/* Ringan di HP: header tanpa blur (blur saat scroll berat di HP kelas menengah). */
@media (max-width: 1020px) { .site-header { -webkit-backdrop-filter: none; backdrop-filter: none; background: var(--bg); } }

/* ---------- Kartu produk v0.8: blok, gambar 3:2, tombol beli ---------- */
.shop-grid { gap: 20px; align-items: stretch; }
.shop-grid > * { display: flex; min-width: 0; }
.prod { flex: 1; display: flex; flex-direction: column; min-width: 0; overflow: hidden; border-radius: var(--r-lg); border: 1px solid var(--line); background: var(--bg); transition: border-color .2s, transform .2s, box-shadow .2s; }
[data-theme="dark"] .prod { background: #171717; }
.prod:hover { border-color: color-mix(in srgb, var(--ink) 22%, transparent); transform: translateY(-3px); box-shadow: var(--shadow); }
.prod-media { position: relative; display: block; aspect-ratio: 3 / 2; overflow: hidden; background: var(--surface); }
.prod-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s cubic-bezier(.2,.7,.2,1); }
.prod:hover .prod-media img { transform: scale(1.04); }
.prod-ph { position: absolute; inset: 0; display: grid; place-items: center; color: var(--muted); font-size: 13px; background-image: repeating-linear-gradient(135deg, transparent 0 12px, color-mix(in srgb, var(--ink) 5%, transparent) 12px 13px); }
.prod-tags { position: absolute; top: 12px; left: 12px; right: 12px; display: flex; flex-wrap: wrap; gap: 6px; pointer-events: none; }
.prod-tags .badge { height: 24px; box-shadow: 0 2px 10px rgba(0,0,0,.18); }
.prod-tags .prod-type { background: rgba(17,17,17,.72); color: #fff; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.prod-tags .badge-ok { background: #16A34A; color: #fff; }
.prod-tags .badge-warn { background: #F59E0B; color: #111; }
.prod-tags .badge-ink { background: #fff; color: #111; }
.prod-body { flex: 1; display: flex; flex-direction: column; gap: 6px; padding: 16px 16px 18px; }
.prod-title { font-size: 16px; font-weight: 600; line-height: 1.35; letter-spacing: -.01em; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; }
.prod-title:hover { color: var(--accent-ink); }
[data-theme="dark"] .prod-title:hover { color: var(--accent); }
.prod-meta { font-size: 12.5px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.prod-desc { font-size: 13.5px; line-height: 1.55; color: var(--soft); opacity: .85; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden; }
.prod-price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 8px; margin-top: auto; padding-top: 10px; }
.prod-now { font-size: 18px; font-weight: 700; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.prod-old { font-size: 13px; color: var(--muted); text-decoration: line-through; font-variant-numeric: tabular-nums; }
.prod-btn { margin-top: 10px; }
@media (max-width: 1020px) { .shop-grid.rail { gap: 14px !important; } }
@media (max-width: 640px) {
  .g-m2.shop-grid { gap: 12px; }
  .g-m2.shop-grid .prod-body { padding: 12px 12px 14px; gap: 4px; }
  .g-m2.shop-grid .prod-title { font-size: 14px; }
  .g-m2.shop-grid .prod-desc { font-size: 12.5px; }
  .g-m2.shop-grid .prod-now { font-size: 15px; }
  .g-m2.shop-grid .prod-tags { top: 8px; left: 8px; }
  .g-m2.shop-grid .prod-tags .badge { height: 20px; padding: 0 8px; font-size: 11px; }
  .g-m2.shop-grid .prod-btn { height: 34px; padding: 0 10px; font-size: 13px; }
}
/* Produk unggulan Toko: gambar 3:2 */
.shop-feature-img.is-product { flex: 0 1 520px; aspect-ratio: 3 / 2; min-height: 0; margin: 20px 20px 20px auto; border-radius: var(--r); }
@media (max-width: 760px) { .shop-feature-img.is-product { flex-basis: 100%; margin: 0 16px 16px; } }

/* ---------- v0.9: kartu produk lebih rapat + tombol simpan ---------- */
.prod-media-link { position: absolute; inset: 0; display: block; }
.prod-tags { right: 56px; }
.prod-body { gap: 4px; padding: 14px 16px 16px; }
.prod-desc { margin-top: 2px; }
.dc-fav { display: inline-flex; align-items: center; justify-content: center; gap: 6px; color: inherit; transition: transform .15s, background .15s, color .15s; }
.dc-fav svg { transition: fill .15s; }
.dc-fav.is-on { color: #F43F5E; }
.dc-fav.is-on svg { fill: currentColor; }
.dc-fav-card { position: absolute; top: 10px; right: 10px; z-index: 2; width: 36px; height: 36px; border-radius: 50%; background: rgba(17,17,17,.62); color: #fff; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.dc-fav-card:hover { background: rgba(17,17,17,.85); transform: scale(1.06); }
.dc-fav-card.is-on { color: #FF5A78; }
@media (max-width: 640px) { .dc-fav-card { width: 32px; height: 32px; top: 8px; right: 8px; } .g-m2.shop-grid .prod-tags { right: 46px; } }

/* ---------- v0.9: blog & podcast — judul ke deskripsi lebih rapat ---------- */
.post-card .post-card-title { min-height: 0; }
.post-card .post-card-title + .small.muted { margin-top: -2px; }
.post-card .xs.muted.mt-8 { margin-top: 6px; }
.ep-card .fs-h4 { min-height: 0; }
.ep-card .fs-h4 + .ep-card-text { margin-top: -6px; }
.shop-grid .pcard-title, .video-home-grid .pcard-title { min-height: 0; }

/* ---------- v0.10: popup trailer lebih ringkas ---------- */
.yt-modal { padding: 20px; background: rgba(0,0,0,.78); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.yt-modal .inner { width: min(820px, 100%, calc((100vh - 160px) * 16 / 9)); gap: 12px; }
.yt-modal .top .fs-h4 { font-size: 16px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.yt-modal .frame { border-radius: 14px; box-shadow: 0 30px 80px rgba(0,0,0,.6); }
.yt-modal .btn-sm { height: 34px; padding: 0 14px; font-size: 13px; }
.yt-modal .icon-btn { width: 36px; height: 36px; }

/* ---------- v0.10: poin Toko dalam kotak minimalis ---------- */
.shop-points { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.shop-point { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 14px; background: color-mix(in srgb, var(--surface) 45%, transparent); min-width: 0; }
.shop-point-ic { flex: none; width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; background: color-mix(in srgb, var(--accent) 16%, transparent); color: var(--accent-ink); }
[data-theme="dark"] .shop-point-ic { color: var(--accent); }
.shop-point .stack { min-width: 0; }
@media (max-width: 1020px) { .shop-points { grid-template-columns: 1fr; } }
.shop-head .shop-points { flex: 1 1 100%; margin-top: 8px; } .shop-points > div { max-width: none; }

/* ---------- v0.10: pencarian cepat ---------- */
.search-modal { position: fixed; inset: 0; z-index: 95; display: flex; justify-content: center; align-items: flex-start; padding: 12vh 16px 16px; background: rgba(0,0,0,.55); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.search-modal[hidden] { display: none; }
.search-open body { overflow: hidden; }
.search-box { width: min(620px, 100%); max-height: 76vh; display: flex; flex-direction: column; border-radius: 18px; border: 1px solid var(--line); background: var(--bg); box-shadow: 0 30px 80px rgba(0,0,0,.4); overflow: hidden; animation: jk-pop .16s ease-out; }
[data-theme="dark"] .search-box { background: #171717; }
.search-bar { display: flex; align-items: center; gap: 12px; padding: 0 14px 0 18px; height: 60px; border-bottom: 1px solid var(--line); color: var(--muted); }
.search-bar input { flex: 1; min-width: 0; height: 100%; border: 0; background: none; outline: none; font-size: 17px; color: var(--ink); }
.search-bar input::-webkit-search-cancel-button { display: none; }
.search-esc { flex: none; height: 26px; padding: 0 8px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); color: var(--muted); font-size: 11px; font-weight: 600; cursor: pointer; }
.search-results { overflow-y: auto; padding: 6px 8px 8px; }
.search-results:empty { display: none; }
.search-results.is-loading { opacity: .6; }
.search-group { padding: 12px 10px 6px; font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.search-item { display: flex; align-items: center; gap: 12px; padding: 8px 10px; border-radius: 12px; outline: none; }
.search-item:hover, .search-item:focus { background: var(--surface); }
[data-theme="dark"] .search-item:hover, [data-theme="dark"] .search-item:focus { background: #222; }
.search-thumb { flex: none; width: 40px; height: 40px; border-radius: 9px; overflow: hidden; background: var(--surface); }
.search-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.search-text { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.search-title { font-size: 14.5px; font-weight: 600; line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.search-meta { font-size: 12px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.search-price { flex: none; font-size: 13px; font-weight: 700; font-variant-numeric: tabular-nums; }
.search-all { display: block; margin: 6px 2px 2px; padding: 11px 10px; border-radius: 10px; text-align: center; font-size: 13.5px; font-weight: 600; border: 1px solid var(--line); }
.search-all:hover, .search-all:focus { background: var(--surface); outline: none; }
.search-empty { padding: 22px 10px; text-align: center; color: var(--muted); font-size: 14px; }
@keyframes jk-pop { from { opacity: 0; transform: translateY(-8px) scale(.99); } to { opacity: 1; transform: none; } }
@media (max-width: 640px) { .search-modal { padding: 0; align-items: stretch; } .search-box { max-height: none; height: 100%; border-radius: 0; border: 0; } }
@media (prefers-reduced-motion: reduce) { .search-box { animation: none; } }
/* iPhone berponi (viewport-fit=cover): isi tidak masuk ke area poni saat lanskap. */
body { padding-left: env(safe-area-inset-left, 0px); padding-right: env(safe-area-inset-right, 0px); }

/* ---------- v0.11: ikon media sosial di hero (gaya tombol ghost bulat) ---------- */
.hero-socials { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.hero-soc { display: inline-flex; align-items: center; justify-content: center; width: 54px; height: 54px; border-radius: 50%; border: 1px solid var(--line); color: var(--ink); transition: background .15s, border-color .15s, transform .15s, color .15s; }
.hero-soc:hover { border-color: var(--accent); color: var(--accent-ink); transform: translateY(-2px); }
[data-theme="dark"] .hero-soc:hover { color: var(--accent); }
.hero-poster .hero-soc { color: #fff; border-color: rgba(255,255,255,.3); background: rgba(255,255,255,.04); }
.hero-poster .hero-soc:hover { color: #fff; border-color: #fff; background: rgba(255,255,255,.12); }

/* ---------- v0.11: foto hero di HP digeser supaya orangnya terlihat ---------- */
@media (max-width: 760px) {
  .hero-poster .poster > img { object-position: var(--mpos, 78%) center; }
  .hero-poster .poster::after { background: linear-gradient(0deg, rgba(0,0,0,.92) 0%, rgba(0,0,0,.55) 48%, rgba(0,0,0,.05) 80%); }
  .hero-sorot .hero-photo img { object-position: var(--mpos, 78%) top; }
  .hero-soc { width: 48px; height: 48px; }
}

/* Hero Poster: kotak ikut memanjang bila judul panjang (tidak terpotong di atas). */
.hero-poster .poster { aspect-ratio: auto; min-height: max(440px, calc(min(100vw - 64px, 1136px) * 9 / 21)); }
.hero-poster .poster-copy { max-width: 760px; }

/* ---------- v0.12: ikon media sosial minimalis (1 warna) ---------- */
.soc-icons { display: flex; flex-wrap: wrap; gap: 8px; }
.soc-icon { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--line); color: var(--soft); transition: color .15s, border-color .15s, transform .15s; }
.soc-icon:hover { color: var(--ink); border-color: var(--ink); transform: translateY(-1px); }

/* ---------- v0.12: Toko — poin di samping judul, di HP bergeser ke samping ---------- */
.shop-head-row { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 40px; align-items: end; }
.shop-head .shop-points { display: flex !important; flex-direction: column; gap: 10px; margin: 0; }
.shop-head .shop-point { padding: 12px 14px; }
@media (max-width: 1020px) {
  .shop-head-row { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .shop-head .shop-points { flex-direction: row; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin-right: -32px; padding-right: 32px; }
  .shop-head .shop-points::-webkit-scrollbar { display: none; }
  .shop-head .shop-point { flex: 0 0 auto; min-width: 250px; scroll-snap-align: start; }
}
@media (max-width: 640px) { .shop-head .shop-points { margin-right: -16px; padding-right: 16px; } .shop-head .shop-point { min-width: 232px; } }

/* ---------- v0.12: angka di Tentang dalam kotak kuning tipis ---------- */
.about-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; padding: 0; border: 0; margin-top: 40px; }
.about-stats > div { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 26px 16px; border-radius: 18px; background: var(--accent-soft); border: 1px solid color-mix(in srgb, var(--accent) 28%, transparent); }
[data-theme="dark"] .about-stats > div { background: color-mix(in srgb, var(--accent) 7%, transparent); border-color: color-mix(in srgb, var(--accent) 20%, transparent); }
.about-stat { font-size: clamp(34px, 3.6vw, 52px); }
.about-stats dd { margin-top: 8px; font-size: 14px; }
@media (max-width: 760px) { .about-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .about-stats > div { padding: 20px 12px; } }

/* ---------- v0.12: video beranda bergeser ke samping di HP ---------- */
@media (max-width: 640px) { .video-home-grid > :nth-child(odd):last-child { display: flex; } }
.shop-head-row { align-items: center; }
.about-stats { max-width: 960px; margin-left: auto; margin-right: auto; }

/* ---------- 0.14: background section selang-seling, polaroid Tentang, teks deskripsi lebih rapat ---------- */
.home-bands > .section, .home-bands > .section + .section.pt-first { padding: 96px 0; }
.home-bands > .section:nth-child(even) { background: color-mix(in srgb, var(--ink) 1.6%, var(--bg)); }
@media (max-width: 1020px) { .home-bands > .section, .home-bands > .section + .section.pt-first { padding: 72px 0; } }
@media (max-width: 640px) { .home-bands > .section, .home-bands > .section + .section.pt-first { padding: 56px 0; } }

.tentang-row.is-polaroid { gap: 88px; }
.polaroid { margin: 0; outline: 1px solid rgba(0,0,0,.06); flex: 0 1 380px; max-width: 380px; position: relative; padding: 14px 14px 0; border-radius: 6px; background: #F6F3EC; transform: rotate(-3deg); box-shadow: 0 30px 60px -24px rgba(0,0,0,.55), 0 2px 6px rgba(0,0,0,.12); transition: transform .35s ease; }
.polaroid.tilt-r { transform: rotate(3deg); }
.polaroid:hover { transform: rotate(-1deg) translateY(-4px); }
.polaroid.tilt-r:hover { transform: rotate(1deg) translateY(-4px); }
.polaroid .ph { border-radius: 2px; background-color: #DDD8CD; }
.polaroid .ph img { width: 100%; height: 100%; object-fit: cover; }
.polaroid figcaption { padding: 14px 4px 16px; text-align: center; font-size: 15px; font-weight: 500; letter-spacing: -.01em; line-height: 1.3; color: #2B2B2B; }
.polaroid:not(:has(figcaption)) { padding-bottom: 44px; }
.polaroid-tape { position: absolute; top: -14px; left: 50%; width: 112px; height: 28px; margin-left: -56px; background: color-mix(in srgb, var(--accent) 85%, transparent); transform: rotate(2deg); z-index: 1; }
.tentang-row.photo-right .polaroid { order: 2; }
@media (max-width: 1020px) {
  .tentang-row.is-polaroid { gap: 56px; }
  .tentang-row .polaroid, .tentang-row.photo-right .polaroid { order: -1; flex-basis: 100%; max-width: 320px; margin: 8px auto 0; }
}
@media (max-width: 640px) { .tentang-row .polaroid, .tentang-row.photo-right .polaroid { max-width: 260px; transform: rotate(-2deg); } }

.lead { font-size: 16px; line-height: 1.5; }
.lead p + p, .lead > * + * { margin-top: 12px; }
.prose-ui { font-size: 16px; line-height: 1.6; }
.about-story { font-size: 17px; line-height: 1.6; }
.post-excerpt, .article-serif .post-excerpt { font-size: 15px; line-height: 1.5; }
.prose { font-size: 17px; line-height: 1.65; }
.article-serif .prose { font-size: 18px; line-height: 1.6; }
.entry-sub { font-size: 18px; line-height: 1.45; }
@media (max-width: 640px) { .prose { font-size: 16px; line-height: 1.6; } .entry-sub { font-size: 17px; } }

/* Mini player YouTube untuk episode podcast dari playlist YouTube/YouTube Music. */
.yt-mini { position: fixed; right: 20px; bottom: 20px; z-index: 60; width: 360px; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; overflow: hidden; box-shadow: 0 24px 48px -16px rgba(0,0,0,.5); }
.yt-mini[hidden] { display: none; }
.yt-mini-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 8px 8px 14px; }
.yt-mini-head [data-yt-title] { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.yt-mini-x { flex: none; width: 30px; height: 30px; border-radius: 999px; border: 0; background: transparent; color: var(--ink); font-size: 22px; line-height: 1; cursor: pointer; }
.yt-mini-x:hover { background: var(--line); }
.yt-mini-frame { position: relative; aspect-ratio: 16 / 9; background: #000; }
.yt-mini-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
@media (max-width: 640px) { .yt-mini { left: 12px; right: 12px; width: auto; bottom: calc(12px + env(safe-area-inset-bottom)); } }
