/* 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); }


/* ---------- 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; }
.tour-city.is-past .strong, .tour-city.is-past .xs { opacity: .6; }
.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; }
.sched-tabs { padding: 28px 0 4px; }
.sched-tabs .seg button { display: inline-flex; align-items: center; gap: 8px; padding: 0 16px; }
.sched-count { font-size: 11px; font-weight: 600; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; background: color-mix(in srgb, currentColor 14%, transparent); }
.sched-panel .month-head { padding-top: 32px; }
.sched-panel .when-filter { display: none; }
.sched-panel .is-filtered .when-all { display: none; }
.sched-panel .is-filtered .when-filter { display: block; }
.event-row.is-past .date-block { opacity: .55; }
.event-row.is-past .event-poster img, .event-row.is-past .event-poster .ph { filter: grayscale(.7); opacity: .75; }
.event-row.is-past .fs-h4 { color: var(--soft); }
.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: lebih lega & rapi ---------- */
.entry-head { gap: 18px; padding-top: 36px; }
.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: 24px; } }
.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: 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; } }
/* 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: 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; } }

/* ---------- 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; } }

/* ---------- 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; }

/* ---------- 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; }

/* ---------- 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; }

/* ---------- 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); }

/* ---------- 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); }

/* ---------- 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; }

/* ---------- 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); }

/* ---------- 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; } }

/* ---------- 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; } }

/* ---------- 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)); } }

/* ---------- 0.18: formulir komentar sederhana (nama + email bagi tamu) ---------- */
.cform { display: flex; flex-direction: column; gap: 14px; padding: 24px; border: 1px solid var(--line); border-radius: var(--r-lg); background: color-mix(in srgb, var(--ink) 1.6%, var(--bg)); }
.cform-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.cform-head .label { margin: 0; }
.cform-as { display: inline-flex; align-items: center; gap: 8px; }
.cform-as img { border-radius: 999px; }
.cform-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.cform .field { margin: 0; }
.cform-text { min-height: 110px; resize: vertical; }
.cform-foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.cform-note { margin: 0; max-width: 460px; }
.notice-line { margin: 0; padding: 12px 16px; border-radius: 12px; font-size: 14px; border: 1px solid var(--line); }
.notice-line.is-ok { background: color-mix(in srgb, var(--ok) 12%, transparent); border-color: color-mix(in srgb, var(--ok) 30%, transparent); }
.notice-line.is-err { background: color-mix(in srgb, var(--warn) 12%, transparent); border-color: color-mix(in srgb, var(--warn) 32%, transparent); }
@media (max-width: 640px) { .cform { padding: 18px; } .cform-row { grid-template-columns: minmax(0, 1fr); } }

/* 0.19: komentar dalam kotak yang bisa di-scroll (tampil kira-kira 3-4 komentar) */
.comment-scroll { position: relative; max-height: clamp(380px, 62vh, 520px); overflow-y: auto; overscroll-behavior: contain; padding: 4px 22px; border: 1px solid var(--line); border-radius: 16px; background: color-mix(in srgb, var(--ink) 1.6%, var(--bg)); scrollbar-width: thin; scrollbar-color: var(--line) transparent; }
.comment-scroll:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.comment-scroll::-webkit-scrollbar { width: 8px; }
.comment-scroll::-webkit-scrollbar-thumb { background: var(--line); border-radius: 8px; }
.comment-scroll .comment-list { margin: 0; padding: 0; }
.comment-scroll .comment-list > .comment:first-child { border-top: 0; }
.comment-scroll .comment-list .comment { padding: 18px 0; }
@media (max-width: 640px) { .comment-scroll { padding: 2px 16px; border-radius: 14px; max-height: 70vh; } }

/* Katalog blog (tata letak Grid): 3 kolom di tablet, 2 kolom di HP. */
@media (max-width: 1020px) {
  .g.blog-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px 18px; }
  .blog-grid .post-card-title { font-size: 17px; }
}
@media (max-width: 640px) {
  .g.blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 12px; }
  .blog-grid .post-card .ph { border-radius: 10px; }
  .blog-grid .post-card .xs { font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .blog-grid .post-card-title { font-size: 15px; line-height: 1.3; letter-spacing: -.015em; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
  .blog-grid .post-card .small.muted { font-size: 13px; line-height: 1.45; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
}

/* Hero Poster: 2–3 foto berganti pelan (pudar + zoom halus, bukan geser). */
.hero-poster .poster > img.poster-slide { opacity: 0; transform: scale(1.06); transition: opacity 1.8s cubic-bezier(.4, 0, .2, 1), transform 8s cubic-bezier(.2, .6, .3, 1); will-change: opacity, transform; }
.hero-poster .poster > img.poster-slide.is-on { opacity: 1; transform: scale(1); }
.poster-dots { position: absolute; z-index: 2; right: 24px; bottom: 24px; display: flex; gap: 6px; }
.poster-dot { width: 28px; height: 20px; padding: 0; border: 0; background: none; cursor: pointer; display: flex; align-items: center; }
.poster-dot i { display: block; width: 100%; height: 3px; border-radius: 3px; background: rgba(255,255,255,.35); overflow: hidden; position: relative; }
.poster-dot.is-on i::after { content: ""; position: absolute; inset: 0; background: #fff; transform-origin: left; animation: poster-dot var(--poster-ms, 6500ms) linear forwards; }
.poster.is-paused .poster-dot.is-on i::after { animation-play-state: paused; }
@keyframes poster-dot { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@media (max-width: 640px) { .poster-dots { right: 16px; bottom: auto; top: 16px; } }
@media (prefers-reduced-motion: reduce) {
  .hero-poster .poster > img.poster-slide { transform: none; transition: opacity 1.2s ease; }
  .poster-dot.is-on i::after { animation: none; transform: none; }
}


/* ---------- shop header points: beside the title on desktop, below it on tablet/phone ---------- */
.shop-head-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 40px; align-items: center; }
.shop-head .shop-points { display: grid !important; grid-template-columns: repeat(3, 156px); gap: 10px; margin: 0; padding: 0; overflow: visible; scroll-snap-type: none; }
.shop-head .shop-point { flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 10px; min-width: 0; max-width: none; padding: 14px; border-radius: 16px; }
.shop-head .shop-point-ic { width: 32px; height: 32px; border-radius: 10px; }
.shop-head .shop-point-ic svg { width: 16px; height: 16px; }
.shop-head .shop-point .stack { flex-direction: column; align-items: flex-start; gap: 2px; }
.shop-head .shop-point .strong { font-size: 13px; line-height: 1.3; }
.shop-head .shop-point .xs { font-size: 11.5px; line-height: 1.35; }
@media (max-width: 1020px) {
  .shop-head-row { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .shop-head .shop-points { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-right: 0; padding-right: 0; }
  .shop-head .shop-point { min-width: 0; }
}
@media (max-width: 640px) {
  .shop-head .shop-points { gap: 8px; }
  .shop-head .shop-point { align-items: center; text-align: center; gap: 6px; padding: 12px 6px; border-radius: 14px; }
  .shop-head .shop-point .stack { align-items: center; gap: 0; }
  .shop-head .shop-point .strong { font-size: 12px; line-height: 1.25; }
  .shop-head .shop-point .xs { display: none; }
}

/* ---------- very thin glass + faint shadow on small cards (episodes, show dates, shop points, hero socials) ---------- */
:root {
  --glass-bg: linear-gradient(180deg, rgba(255,255,255,.62), rgba(255,255,255,.5));
  --glass-line: rgba(17,17,17,.05);
  --glass-hi: rgba(255,255,255,.45);
  --glass-shadow: 0 4px 12px -8px rgba(17,17,17,.08);
  --glass-shadow-h: 0 6px 16px -9px rgba(17,17,17,.11);
}
[data-theme="dark"] {
  --glass-bg: linear-gradient(180deg, rgba(255,255,255,.028), rgba(255,255,255,.012));
  --glass-line: rgba(255,255,255,.045);
  --glass-hi: rgba(255,255,255,.025);
  --glass-shadow: 0 6px 14px -10px rgba(0,0,0,.4);
  --glass-shadow-h: 0 8px 18px -11px rgba(0,0,0,.46);
}
.ep-card, .tour-city, .shop-head .shop-point, .hero-soc {
  background: var(--glass-bg);
  border: 1px solid var(--glass-line);
  box-shadow: inset 0 1px 0 var(--glass-hi), var(--glass-shadow);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  transition: box-shadow .3s ease, border-color .3s ease;
}
.ep-card:hover, .tour-city:hover, .hero-soc:hover { box-shadow: inset 0 1px 0 var(--glass-hi), var(--glass-shadow-h); }
/* Hero B sits on a photo: lighter glass so the image shows through. */
.hero-poster .hero-soc, .hero-poster .tour-city {
  background: linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.018));
  border-color: rgba(255,255,255,.06);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04), 0 6px 14px -12px rgba(0,0,0,.35);
}
.hero-poster .hero-soc:hover { background: linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,.05)); border-color: rgba(255,255,255,.3); }

/* ---------- video cards (boxed, inset image, play button) + blog cards (image on top, category on the image) ---------- */
.vcard:not(.vcard-lg) {
  gap: 12px; padding: 9px 9px 16px; border-radius: 20px;
  background: var(--glass-bg); border: 1px solid var(--glass-line);
  box-shadow: inset 0 1px 0 var(--glass-hi), var(--glass-shadow);
  transition: border-color .25s ease, box-shadow .25s ease;
}
.vcard:not(.vcard-lg):hover { border-color: color-mix(in srgb, var(--ink) 16%, transparent); box-shadow: inset 0 1px 0 var(--glass-hi), var(--glass-shadow-h); }
.vcard:not(.vcard-lg) .ph { border-radius: 13px; overflow: hidden; }
.vcard:not(.vcard-lg) .ph img, .post-card.is-boxed .ph img { transition: transform .5s cubic-bezier(.2,.7,.2,1); }
.vcard:not(.vcard-lg):hover .ph, .post-card.is-boxed:hover .ph { transform: none; }
.vcard:not(.vcard-lg):hover .ph img, .post-card.is-boxed:hover .ph img { transform: scale(1.04); }
.vcard-body { display: flex; flex-direction: column; gap: 4px; padding: 0 6px; }
.vcard-body .pcard-title { margin-top: 0; font-weight: 600; letter-spacing: -.015em; }
.vcard-play {
  position: absolute; inset: 0; margin: auto; z-index: 1; width: 54px; height: 54px; border-radius: 50%;
  display: grid; place-items: center; color: #fff;
  background: rgba(17,17,17,.5); border: 1px solid rgba(255,255,255,.22);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  transition: transform .25s ease, background .25s ease, color .25s ease, border-color .25s ease;
}
.vcard-play svg { margin-left: 2px; }
.vcard:hover .vcard-play, .vcard:focus-visible .vcard-play { transform: scale(1.08); background: var(--accent); color: var(--on-accent); border-color: transparent; }

.post-card.is-boxed {
  gap: 0; padding: 0; overflow: hidden; border-radius: 18px;
  background: var(--glass-bg); border: 1px solid var(--glass-line);
  box-shadow: inset 0 1px 0 var(--glass-hi), var(--glass-shadow);
  transition: border-color .25s ease, box-shadow .25s ease;
}
.post-card.is-boxed:hover { border-color: color-mix(in srgb, var(--ink) 16%, transparent); box-shadow: inset 0 1px 0 var(--glass-hi), var(--glass-shadow-h); }
.post-card-media { position: relative; display: block; }
.post-card.is-boxed .ph { border-radius: 0; overflow: hidden; }
.post-card-cat {
  position: absolute; left: 12px; top: 12px; z-index: 1; max-width: calc(100% - 24px);
  padding: 6px 10px; border-radius: 999px; font-size: 11.5px; font-weight: 600; line-height: 1; color: #fff;
  background: rgba(17,17,17,.6); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.post-card-body { display: flex; flex-direction: column; gap: 7px; flex: 1; padding: 15px 16px 18px; }
.post-card.is-boxed .post-card-title { min-height: 0; font-size: 18px; }
.post-card.is-boxed .post-card-meta { margin-top: auto; padding-top: 4px; }
@media (max-width: 640px) {
  .vcard:not(.vcard-lg) { padding: 7px 7px 13px; border-radius: 16px; }
  .vcard:not(.vcard-lg) .ph { border-radius: 10px; }
  .vcard-play { width: 42px; height: 42px; }
  .vcard-play svg { width: 16px; height: 16px; }
  .vcard-body { padding: 0 4px; }
  .post-card.is-boxed { border-radius: 14px; }
  .post-card-cat { left: 8px; top: 8px; padding: 5px 8px; font-size: 10.5px; }
  .post-card-body { padding: 11px 12px 14px; gap: 5px; }
  .post-card.is-boxed .post-card-title { font-size: 15px; }
  .blog-grid .post-card.is-boxed .ph { border-radius: 0; }
}

/* ---------- How to buy page (neutral illustrations) + FAQ page ---------- */
:root { --il-frame: #ffffff; --il-soft: #efefec; --il-mid: #c9c9c4; --il-line: #dcdcd8; --il-ink: #1a1a1a; --il-paper: #ffffff; --il-edge: #e3e3df; --il-bg: #f6f6f4; }
[data-theme="dark"] { --il-frame: #1d1d1d; --il-soft: #2a2a2a; --il-mid: #4a4a48; --il-line: #3a3a38; --il-ink: #ececea; --il-paper: #232323; --il-edge: #343432; --il-bg: #171717; }
.howto-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; counter-reset: step; }
.howto-step { display: flex; flex-direction: column; gap: 18px; padding: 14px 14px 22px; border-radius: 22px; background: var(--glass-bg); border: 1px solid var(--glass-line); box-shadow: inset 0 1px 0 var(--glass-hi), var(--glass-shadow); }
.howto-il-wrap { border-radius: 14px; background: var(--il-bg); padding: 18px; display: grid; place-items: center; }
.howto-il { width: 100%; height: auto; max-width: 440px; display: block; color: var(--il-paper); }
.howto-il .f { fill: var(--il-frame); stroke: var(--il-edge); stroke-width: 1; }
.howto-il .s { fill: var(--il-soft); }
.howto-il .m { fill: var(--il-mid); }
.howto-il .l { fill: var(--il-line); }
.howto-il .k { fill: var(--il-ink); }
.howto-il .w { fill: var(--il-paper); }
.howto-il .o { stroke: var(--il-edge); stroke-width: 1.5; }
.howto-il .ok { stroke: var(--il-ink); stroke-width: 2; }
.howto-il .w-s { stroke: var(--il-paper); }
.howto-il .k-s { stroke: var(--il-ink); }
.howto-il .m-s { stroke: var(--il-mid); }
.howto-il text { font: 600 12px/1 var(--f-ui); }
.howto-il .tk { fill: var(--il-ink); } .howto-il .tw { fill: var(--il-paper); }
.howto-il .cur { stroke: var(--il-paper); stroke-width: 1.5; stroke-linejoin: round; }
.howto-text { padding: 0 8px; }
.howto-text h2 { margin: 0; }
.howto-help { padding: 22px 24px; align-items: center; }
.faq-page { min-width: 0; }
.faq-page .faq { border-top: 1px solid var(--line); }
@media (max-width: 760px) {
  .howto-steps { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .howto-step { padding: 10px 10px 18px; border-radius: 18px; gap: 14px; }
  .howto-il-wrap { padding: 12px; border-radius: 12px; }
  .howto-tabs { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-right: -16px; padding-right: 16px; }
  .howto-tabs::-webkit-scrollbar { display: none; }
  .howto-tabs .chip { flex: none; }
}

/* ---------- text links (fixed) + Rounded button style (Customize) ---------- */
.text-link { display: inline-flex; align-items: center; gap: 6px; font-size: 15px; font-weight: 600; color: var(--ink); text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--ink) 30%, transparent); text-underline-offset: 5px; text-decoration-thickness: 1px; transition: text-decoration-color .2s ease, color .2s ease; }
.text-link span { display: inline-block; transition: transform .2s ease; text-decoration: none; }
.text-link:hover { text-decoration-color: var(--accent); }
.text-link:hover span { transform: translate(2px, -2px); }
.text-link-row { display: flex; justify-content: flex-end; margin-top: 28px; }

body.jk-btn-rounded .btn, body.jk-btn-rounded .comment-form .submit, body.jk-btn-rounded .dicom-pw button, body.jk-btn-rounded .dc-trailer-btn { border-radius: 10px; }
body.jk-btn-rounded .btn-sm { border-radius: 9px; }
body.jk-btn-rounded .chip, body.jk-btn-rounded .seg, body.jk-btn-rounded .dicom-dash-link, body.jk-btn-rounded .dc-stepper { border-radius: 10px; }
body.jk-btn-rounded .seg button { border-radius: 7px; }
body.jk-btn-rounded .input-pill { border-radius: 10px; }
body.jk-btn-rounded .shop-head .shop-point { border-radius: 14px; }

/* ---------- Badges on product cards: tickets in the accent color, sold out in light red ---------- */
.prod-tags .prod-type--ticket { background: var(--accent); color: var(--on-accent); font-weight: 600; -webkit-backdrop-filter: none; backdrop-filter: none; }
.prod-tags .badge-err { background: #FEE4E2; color: #B42318; font-weight: 600; }
.badge.badge-err { font-weight: 600; }
/* Text links: no underline, the arrow carries the hint */
.text-link, .text-link:hover { text-decoration: none; }
.text-link:hover { opacity: .8; }

/* Language switch: the active button follows <html data-lang> (set before the page paints), so it never flickers */
html[data-lang="id"] .seg button[data-lang-set="id"], html[data-lang="en"] .seg button[data-lang-set="en"] { background: var(--ink); color: var(--bg); }
html[data-lang="id"] .seg button[data-lang-set="en"], html[data-lang="en"] .seg button[data-lang-set="id"] { background: none; color: var(--muted); }

/* ---------- Promo banners (Customize › Jenaka · Promo) ---------- */
/* Header bar: slides down by opening its row; a bar closed earlier is hidden before the first paint. */
.pb-bar { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .42s cubic-bezier(.2,.7,.2,1); background: var(--accent); color: var(--on-accent); position: relative; z-index: 41; }
.pb-bar.is-in, html:not(.js) .pb-bar { grid-template-rows: 1fr; }
.pb-bar-in { min-height: 0; overflow: hidden; }
html.pb-bar-closed .pb-bar { display: none; }
.pb-bar .wrap { display: flex; align-items: center; gap: 14px; min-height: 46px; padding-top: 6px; padding-bottom: 6px; font-size: 14px; font-weight: 600; }
.pb-bar-tag { flex: none; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; background: rgba(0,0,0,.85); color: #fff; border-radius: 99px; padding: 3px 9px; }
.pb-bar-txt { flex: 1; min-width: 0; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 4px 8px; text-align: center; line-height: 1.35; }
.pb-bar .mark { color: inherit; font-weight: 800; }
.pb-bar-code { border: 1.5px dashed currentColor; border-radius: 8px; padding: 1px 8px; font-size: 13px; letter-spacing: .06em; }
.pb-bar-cta { flex: none; color: inherit; font-weight: 700; white-space: nowrap; text-decoration: none; }
.pb-bar-cta:hover { opacity: .8; }
.pb-bar-x { flex: none; width: 28px; height: 28px; border-radius: 50%; border: 0; background: rgba(0,0,0,.12); color: inherit; display: grid; place-items: center; cursor: pointer; }
.pb-bar.is-dark { background: #0b0b0c; color: #fff; border-bottom: 1px solid rgba(255,255,255,.1); }
.pb-bar.is-dark .pb-bar-tag { background: var(--accent); color: var(--on-accent); }
.pb-bar.is-dark .pb-bar-x { background: rgba(255,255,255,.12); }
@media (max-width: 760px) {
  .pb-bar-tag, .pb-bar-code { display: none; }
  .pb-bar .wrap { gap: 10px; font-size: 13px; }
  .pb-bar-txt { justify-content: flex-start; text-align: left; }
}

/* Side banners: desktop only, in the empty space beside the 1136px content, centered below the header. */
.pb-side { display: none; }
@media (min-width: 1440px) and (min-height: 600px) {
  .pb-side { --pbw: min(160px, calc((100vw - 1136px) / 2 - 32px), calc((100vh - var(--hdr-h, 72px) - 48px) / 3.75)); display: block; position: fixed; z-index: 20; top: calc(var(--hdr-h, 72px) + (100vh - var(--hdr-h, 72px)) / 2); transform: translateY(-50%); width: var(--pbw); aspect-ratio: 160 / 600; border-radius: 12px; overflow: hidden; box-shadow: 0 1px 2px rgba(0,0,0,.08), 0 14px 34px -14px rgba(0,0,0,.45); transition: opacity .3s ease, visibility .3s; }
  .pb-side-left { left: calc(((100vw - 1136px) / 2 - var(--pbw)) / 2); }
  .pb-side-right { right: calc(((100vw - 1136px) / 2 - var(--pbw)) / 2); }
  .pb-side img { display: block; width: 100%; height: 100%; object-fit: cover; }
  .pb-side.is-away { opacity: 0; visibility: hidden; }
}

/* Popup: centered card on desktop, bottom sheet on phones. */
.pb-pop { position: fixed; inset: 0; z-index: 96; display: flex; align-items: center; justify-content: center; padding: 24px; background: rgba(0,0,0,.6); opacity: 0; transition: opacity .25s ease; }
.pb-pop[hidden] { display: none; }
.pb-pop.is-open { opacity: 1; }
.pb-pop-card { position: relative; width: min(740px, 100%); max-height: calc(100vh - 48px); overflow: auto; display: grid; grid-template-columns: 300px 1fr; border-radius: 24px; background: var(--bg); border: 1px solid var(--line); box-shadow: 0 30px 80px -20px rgba(0,0,0,.6); transform: translateY(14px); transition: transform .3s cubic-bezier(.2,.7,.2,1); }
.pb-pop.is-open .pb-pop-card { transform: none; }
.pb-pop-card.no-img { grid-template-columns: 1fr; width: min(460px, 100%); }
.pb-pop-img { position: relative; min-height: 400px; }
.pb-pop-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pb-pop-body { padding: 32px; display: flex; flex-direction: column; gap: 14px; justify-content: center; }
.pb-pop-title { font-size: clamp(24px, 3vw, 30px); line-height: 1.1; letter-spacing: -.02em; margin: 0; }
.pb-pop-body p { margin: 0; line-height: 1.55; }
.pb-pop-x { position: absolute; top: 12px; right: 12px; z-index: 2; width: 34px; height: 34px; border-radius: 50%; border: 0; background: rgba(0,0,0,.55); color: #fff; display: grid; place-items: center; cursor: pointer; }
.pb-pop-later { align-self: center; background: none; border: 0; color: var(--muted); font: inherit; font-size: 14px; cursor: pointer; padding: 4px 8px; }
.pb-pop-grab { display: none; }
@media (max-width: 640px) {
  .pb-pop { align-items: flex-end; padding: 0; }
  .pb-pop-card { grid-template-columns: 1fr; width: 100%; max-height: 88vh; border-radius: 24px 24px 0 0; border-bottom: 0; transform: translateY(100%); }
  .pb-pop-img { min-height: 0; aspect-ratio: 16 / 10; }
  .pb-pop-body { padding: 22px 20px 26px; gap: 12px; }
  .pb-pop-grab { display: block; position: absolute; top: 8px; left: 50%; width: 40px; height: 4px; margin-left: -20px; border-radius: 4px; background: rgba(255,255,255,.75); z-index: 2; }
}
@media (prefers-reduced-motion: reduce) {
  .pb-bar, .pb-pop, .pb-pop-card, .pb-side { transition: none; }
}

/* ---------- About page story styles: Magazine and Bento (Editorial is the original layout above) ---------- */
.ab-mag { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 28px 64px; align-items: start; }
.ab-mag-head { grid-column: 1 / -1; display: flex; flex-direction: column; gap: 16px; max-width: 900px; margin-bottom: 12px; }
.ab-mag-head h2 { font-size: clamp(34px, 4.4vw, 56px); line-height: 1.05; letter-spacing: -.03em; margin: 0; }
.ab-mag-photo { position: sticky; top: calc(var(--hdr-h, 72px) + 32px); display: flex; flex-direction: column; gap: 12px; margin: 0; }
.ab-mag-photo .ph { border-radius: 24px; overflow: hidden; aspect-ratio: 4 / 5; }
.ab-mag-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ab-mag-photo figcaption { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 13px; color: var(--muted); }
.ab-mag-photo figcaption b { color: var(--ink); font-weight: 600; }
.ab-mag-body { display: flex; flex-direction: column; gap: 28px; }
.ab-mag-body.is-full { grid-column: 1 / -1; max-width: 760px; }
.ab-mag-body .about-story > p:first-child::first-letter { float: left; font-size: 64px; line-height: .9; font-weight: 700; margin: 6px 10px 0 0; color: var(--accent); }
.ab-mag-quote { position: relative; margin: 8px 0; padding: 32px 0 8px; border: 0; border-top: 1px solid var(--line); font-size: clamp(24px, 2.6vw, 34px); line-height: 1.2; letter-spacing: -.02em; font-weight: 600; }
.ab-mag-quote::before { content: "\201C"; position: absolute; top: -30px; left: -4px; font-size: 96px; line-height: 1; color: var(--accent); font-family: Georgia, serif; }
.ab-bento { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 16px; }
.ab-tile { background: var(--glass-bg, var(--surface)); border: 1px solid var(--glass-line, var(--line)); border-radius: 24px; padding: 32px; display: flex; flex-direction: column; gap: 16px; box-shadow: var(--glass-shadow, none); margin: 0; }
.ab-b-title, .ab-b-story, .ab-b-quote { grid-column: span 7; }
.ab-b-title h2 { font-size: clamp(30px, 3.4vw, 44px); line-height: 1.08; letter-spacing: -.025em; margin: 0; }
.ab-b-photo { grid-column: span 5; grid-row: span 2; padding: 0; overflow: hidden; position: relative; min-height: 520px; }
.ab-b-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ab-b-chip { position: absolute; left: 16px; bottom: 16px; background: rgba(0,0,0,.6); color: #fff; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); border-radius: 99px; padding: 6px 12px; font-size: 13px; font-weight: 600; }
.ab-b-quote { background: var(--accent); color: var(--on-accent); border: 0; font-size: clamp(22px, 2.2vw, 28px); line-height: 1.2; font-weight: 700; letter-spacing: -.02em; justify-content: space-between; }
.ab-b-quote small { font-size: 13px; font-weight: 600; opacity: .75; letter-spacing: 0; }
.ab-b-facts { grid-column: span 5; display: grid; grid-template-columns: 1fr 1fr; gap: 18px; align-content: start; }
.ab-b-facts div { display: flex; flex-direction: column; gap: 4px; }
.ab-b-facts dd { margin: 0; }
.ab-bento.no-photo .ab-b-title, .ab-bento.no-photo .ab-b-story { grid-column: 1 / -1; }
@media (max-width: 1020px) {
  .ab-mag { grid-template-columns: 1fr; gap: 24px; }
  .ab-mag-photo { position: static; }
  .ab-mag-photo .ph { aspect-ratio: 4 / 4.4; }
  .ab-bento { grid-template-columns: 1fr; }
  .ab-bento > .ab-tile { grid-column: auto; grid-row: auto; }
  .ab-b-photo { min-height: 0; aspect-ratio: 4 / 5; }
  .ab-tile { padding: 24px; }
}
