/*
 * Identitas SIPD Kota Bekasi untuk tema magazine.
 *
 * Dimuat setelah style.css. Warna diambil dari logo SIPD: oranye untuk aksi
 * utama, teal untuk aksen informasi, di atas netral hangat yang condong ke
 * hijau. Sengaja tanpa ungu atau indigo. Sama dengan launcher di document
 * root, supaya pintu masuk dan beranda tahun anggaran terasa satu aplikasi.
 *
 * Bagian 1 menimpa variabel dan elemen bawaan tema (berlaku untuk semua
 * halaman depan: beranda, blog, galeri). Bagian 2 adalah komponen beranda
 * dengan awalan .sx- supaya tidak bertabrakan dengan kelas tema.
 */

/* ---------------------------------------------------------------------
 * 1. Token dan penimpaan tema
 * ------------------------------------------------------------------- */
:root {
	--sx-bg: #F6F5F0;
	--sx-surface: #FFFFFF;
	--sx-surface-2: #EFEEE7;
	--sx-ink: #15211F;
	--sx-muted: #5D6863;
	--sx-line: #E2E1D9;
	--sx-orange: #E8590C;
	--sx-orange-2: #F7931E;
	--sx-orange-soft: #FFE9DA;
	--sx-teal: #0A7C84;
	--sx-teal-soft: #DDF1EF;
	--sx-ok: #1C7A4B;
	--sx-shadow: 0 1px 2px rgba(21, 33, 31, .05), 0 10px 28px rgba(21, 33, 31, .07);
	--sx-radius: 18px;
	--sx-font: "Plus Jakarta Sans", "Segoe UI", system-ui, -apple-system, sans-serif;

	--font-body: var(--sx-font);
	--font-title: var(--sx-font);
	--color-primary: #E8590C;
	--color-primary-rgb: 232, 89, 12;
	--color-body: #4C5652;
	--color-body-rgb: 76, 86, 82;
	--color-body-bg: #F6F5F0;
	--color-border: #E2E1D9;
	--color-gray: #EFEEE7;
}
:root[data-theme=dark] {
	--sx-bg: #101514;
	--sx-surface: #182020;
	--sx-surface-2: #1F2827;
	--sx-ink: #EEF1EC;
	--sx-muted: #A4ADA7;
	--sx-line: #28312F;
	--sx-orange: #FF8A3D;
	--sx-orange-2: #FFB067;
	--sx-orange-soft: #3B2416;
	--sx-teal: #43C2C4;
	--sx-teal-soft: #14302F;
	--sx-ok: #5DC48E;
	--sx-shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 12px 30px rgba(0, 0, 0, .28);

	--color-primary: #FF8A3D;
	--color-primary-rgb: 255, 138, 61;
	--color-body: #C9D0CB;
	--color-body-rgb: 201, 208, 203;
	--color-body-bg: #101514;
	--color-border: #28312F;
	--color-dark-bg_2: #182020;
}

body {
	background: var(--sx-bg);
	font-family: var(--sx-font);
	-webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, h5, h6 { font-family: var(--sx-font); letter-spacing: -.01em; }
:focus-visible { outline: 3px solid var(--sx-orange); outline-offset: 3px; border-radius: 8px; }

/* Bilah atas: tren, bahasa, akun */
.topbar-style-1 { background: var(--sx-ink); }
:root[data-theme=dark] .topbar-style-1 { background: #0B0F0E; border-bottom: 1px solid var(--sx-line); }
.rt-trending .trending-title { font-weight: 700; letter-spacing: .06em; }
.rt-trending .trending-title .icon { background: var(--sx-orange) !important; }

/* Bilah navigasi */
.header-main-style-1 { background: var(--sx-surface) !important; border-bottom: 1px solid var(--sx-line); }
.main-menu__nav > ul > li > a { font-weight: 700; color: var(--sx-ink); }
.main-menu__nav > ul > li > a:hover { color: var(--sx-orange); }
.site-branding img, .rt-mobile-header .logo img { width: auto; height: 46px; object-fit: contain; }
.header-action-items .item a { color: var(--sx-ink); }

/* Tombol tema terang/gelap dan kembali ke atas memakai oranye, bukan biru bawaan */
.theme-switch-box { background: var(--sx-orange) !important; }
#back-to-top { background: var(--sx-orange) !important; }

/*
 * style.css memberi #content-wrapper margin 65px untuk header yang menempel,
 * padahal di desktop header tema ini statis; hasilnya pita kosong di atas isi.
 * Di layar kecil header seluler memang menempel, jadi margin itu dibiarkan.
 */
@media (min-width: 992px) {
	.sticky-on + .mobile-sticky + #content-wrapper { margin-top: 0; }
}

/*
 * Bilah logo dan menu di ponsel: tema memberinya animasi fadeInDown 1 detik
 * setiap kali menempel, sehingga di posisi paling atas logo dan tombol menu
 * sempat tak terlihat. Tampilkan langsung tanpa animasi.
 */
.mobile-sticky .mobile-menu-bar-wrap { animation: none !important; }

/* Kaki halaman */
.footer .footer-top { background: #121918; }
.footer .footer-bottom { background: #0C1110; }
.footer .footer-widget-title { color: #FFFFFF; font-family: var(--sx-font); }
.footer .widget-list-link, .footer .post-title a, .footer .text-light { color: #C9D0CB !important; }
.footer .widget-list-link:hover, .footer .post-title a:hover { color: var(--sx-orange-2) !important; }
.footer .copyright-text { color: #A4ADA7; }
.footer .footer-widget, .footer .footer-widget .text-center { color: #A4ADA7; }
.footer .rt-meta { color: #8C968F; }
.footer .copyright-text a { color: var(--sx-orange-2); }

/* ---------------------------------------------------------------------
 * 2. Komponen beranda (.sx-)
 * ------------------------------------------------------------------- */
.sx { color: var(--sx-ink); font-family: var(--sx-font); }
.sx a { text-decoration: none; }
.sx-wrap { max-width: 1240px; margin: 0 auto; padding-left: max(20px, env(safe-area-inset-left)); padding-right: max(20px, env(safe-area-inset-right)); }
.sx-section { padding-block: 56px 8px; }
.sx-head { display: flex; justify-content: space-between; align-items: end; gap: 16px; flex-wrap: wrap; margin-bottom: 22px; }
.sx-eyebrow { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 8px; font-size: 12.5px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--sx-teal); }
.sx-eyebrow::before { content: ""; width: 26px; height: 3px; border-radius: 2px; background: currentColor; }
.sx-title { font-size: clamp(24px, 3vw, 32px); font-weight: 800; margin: 0; color: var(--sx-ink); line-height: 1.15; }
.sx-sub { margin: 6px 0 0; color: var(--sx-muted); font-size: 15.5px; max-width: 60ch; }
.sx-more { display: inline-flex; align-items: center; gap: 6px; font-weight: 800; font-size: 14.5px; color: var(--sx-orange) !important; white-space: nowrap; }
.sx-more:hover { gap: 10px; }
.sx-more i { font-size: 18px; transition: transform .2s; }

.sx-btn { display: inline-flex; align-items: center; gap: 10px; padding: 14px 22px; border-radius: 14px; font-weight: 800; font-size: 15.5px; border: 1px solid transparent; transition: transform .2s ease, box-shadow .2s ease; cursor: pointer; }
.sx-btn i { font-size: 20px; }
.sx-btn-primary { background: linear-gradient(90deg, var(--sx-orange), var(--sx-orange-2)); color: #FFFFFF !important; box-shadow: 0 10px 22px rgba(232, 89, 12, .28); }
.sx-btn-primary:hover { transform: translateY(-2px); }
.sx-btn-ghost { background: var(--sx-surface); color: var(--sx-ink) !important; border-color: var(--sx-line); }
.sx-btn-ghost:hover { border-color: var(--sx-orange); }

/* Hero */
.sx-hero { position: relative; overflow: hidden; padding-block: 44px 36px; }
.sx-hero::before {
	content: ""; position: absolute; inset: 0;
	background:
		radial-gradient(600px 300px at 85% 10%, var(--sx-orange-soft), transparent 70%),
		radial-gradient(500px 260px at 0% 100%, var(--sx-teal-soft), transparent 70%);
	opacity: .9; pointer-events: none;
}
.sx-hero-grid { position: relative; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 44px; align-items: center; }
.sx-hero h1 { font-size: clamp(34px, 4.6vw, 56px); line-height: 1.05; letter-spacing: -.03em; font-weight: 800; margin: 0; color: var(--sx-ink); text-wrap: balance; }
.sx-hero h1 em { font-style: normal; background: linear-gradient(90deg, var(--sx-orange), var(--sx-orange-2)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.sx-hero .sx-lead { font-size: 17.5px; color: var(--sx-muted); margin: 16px 0 0; max-width: 54ch; line-height: 1.6; }
.sx-cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.sx-hello { display: inline-flex; align-items: center; gap: 8px; margin-top: 22px; padding: 6px 14px 6px 6px; border-radius: 999px; background: var(--sx-surface); border: 1px solid var(--sx-line); font-size: 14px; color: var(--sx-muted); }
.sx-hello b { color: var(--sx-ink); }
.sx-hello span.sx-avatar { width: 28px; height: 28px; border-radius: 50%; background: var(--sx-orange); color: #FFFFFF; display: grid; place-items: center; font-weight: 800; font-size: 13px; }

.sx-search { margin-top: 26px; display: flex; align-items: center; gap: 10px; max-width: 520px; padding: 6px 6px 6px 16px; background: var(--sx-surface); border: 1px solid var(--sx-line); border-radius: 16px; box-shadow: var(--sx-shadow); }
.sx-search i { color: var(--sx-muted); font-size: 20px; }
.sx-search input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--sx-ink); font: 500 15px var(--sx-font); padding: 10px 0; }
.sx-search input::placeholder { color: var(--sx-muted); }
.sx-search button { border: 0; border-radius: 12px; padding: 10px 16px; background: var(--sx-ink); color: var(--sx-bg); font: 700 14px var(--sx-font); cursor: pointer; }
.sx-search:focus-within { border-color: var(--sx-orange); }

.sx-stats { display: flex; flex-wrap: wrap; gap: 10px 22px; margin-top: 22px; font-size: 14px; color: var(--sx-muted); }
.sx-stats b { color: var(--sx-ink); font-size: 18px; font-weight: 800; margin-right: 4px; font-variant-numeric: tabular-nums; }

/* Kartu siklus APBD di hero */
.sx-cycle { position: relative; padding: 22px 24px; border-radius: 26px; background: var(--sx-surface); border: 1px solid var(--sx-line); box-shadow: var(--sx-shadow); }
.sx-cycle-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding-bottom: 14px; margin-bottom: 6px; border-bottom: 1px solid var(--sx-line); }
.sx-cycle-head small { display: block; font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--sx-muted); }
.sx-cycle-head b { font-size: 17px; font-weight: 800; color: var(--sx-ink); }
.sx-badge-soft { font-size: 12px; font-weight: 800; padding: 6px 12px; border-radius: 999px; background: var(--sx-teal-soft); color: var(--sx-teal); white-space: nowrap; }
.sx-steps { list-style: none; margin: 0; padding: 0; }
.sx-step { position: relative; display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 12px; padding: 12px 0; }
.sx-step::before { content: ""; position: absolute; left: 12px; top: 0; bottom: 0; width: 2px; background: var(--sx-line); }
.sx-step:first-child::before { top: 22px; }
.sx-step:last-child::before { bottom: calc(100% - 22px); }
.sx-step-dot { position: relative; z-index: 1; width: 26px; height: 26px; margin-top: 2px; border-radius: 50%; background: var(--sx-surface); border: 3px solid var(--sx-line); }
.sx-step.is-selesai .sx-step-dot { background: var(--sx-ink); border-color: var(--sx-ink); }
.sx-step.is-selesai .sx-step-dot::after { content: ""; position: absolute; left: 7px; top: 3px; width: 6px; height: 11px; border: solid var(--sx-surface); border-width: 0 2.5px 2.5px 0; transform: rotate(45deg); }
.sx-step.is-berjalan .sx-step-dot { border-color: var(--sx-orange); border-width: 7px; }
.sx-step.is-berjalan .sx-step-dot::after { content: ""; position: absolute; inset: -9px; border-radius: 50%; border: 2px solid var(--sx-orange); opacity: .4; animation: sx-pulse 2.2s ease-out infinite; }
@keyframes sx-pulse { 0% { transform: scale(.6); opacity: .6; } 100% { transform: scale(1.5); opacity: 0; } }
.sx-step-body { display: grid; gap: 3px; }
.sx-step-top { display: flex; justify-content: space-between; gap: 10px; align-items: baseline; }
.sx-step-top b { font-size: 15.5px; font-weight: 800; color: var(--sx-ink); }
.sx-step-top em { font-style: normal; color: var(--sx-muted); font-weight: 700; }
.sx-pill { font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; padding: 3px 9px; border-radius: 999px; background: var(--sx-surface-2); color: var(--sx-muted); white-space: nowrap; }
.sx-step.is-berjalan .sx-pill { background: var(--sx-orange); color: #FFFFFF; }
.sx-step.is-selesai .sx-pill { background: var(--sx-teal-soft); color: var(--sx-teal); }
.sx-step-desc { font-size: 13.5px; color: var(--sx-muted); }
.sx-bar { display: block; height: 6px; border-radius: 99px; background: var(--sx-surface-2); overflow: hidden; margin-top: 4px; }
.sx-bar i { display: block; height: 100%; border-radius: 99px; background: linear-gradient(90deg, var(--sx-orange), var(--sx-orange-2)); }

/* Banner (carousel): gambar unggahan 1920 x 479, jadi rasio 4:1 agar tidak terpotong */
.sx-banner { padding-block: 8px 0; }
.sx-frame { position: relative; border-radius: 22px; padding: 8px; background: var(--sx-surface); border: 1px solid var(--sx-line); }
.sx-slides { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; border-radius: 16px; }
.sx-slides::-webkit-scrollbar { display: none; }
.sx-slide { flex: 0 0 100%; scroll-snap-align: start; position: relative; margin: 0; aspect-ratio: 1920 / 479; max-width: 100%; border-radius: 16px; overflow: hidden; background: var(--sx-surface-2); }
.sx-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sx-slide figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 18px 20px; color: #FFFFFF; background: linear-gradient(0deg, rgba(0, 0, 0, .6), transparent); }
.sx-slide figcaption b { display: block; font-size: 18px; }
.sx-dots { display: flex; justify-content: center; gap: 8px; padding-top: 10px; }
.sx-dots button { width: 10px; height: 10px; border-radius: 99px; border: 0; padding: 0; background: var(--sx-line); cursor: pointer; transition: width .25s, background .25s; }
.sx-dots button[aria-current="true"] { width: 26px; background: var(--sx-orange); }
.sx-badge { position: absolute; top: -14px; left: 22px; background: var(--sx-ink); color: var(--sx-bg); font-size: 12px; font-weight: 800; letter-spacing: .05em; padding: 6px 12px; border-radius: 999px; }

/* Layanan */
.sx-services { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.sx-service { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 6px 16px; padding: 20px; border-radius: var(--sx-radius); background: var(--sx-surface); border: 1px solid var(--sx-line); color: var(--sx-ink) !important; transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
.sx-service:hover { transform: translateY(-4px); border-color: var(--sx-orange); box-shadow: var(--sx-shadow); }
.sx-ic { grid-row: span 3; width: 52px; height: 52px; border-radius: 15px; display: grid; place-items: center; font-size: 26px; background: var(--sx-orange-soft); color: var(--sx-orange); transition: transform .3s ease; }
.sx-service:hover .sx-ic { transform: rotate(-8deg) scale(1.06); }
.sx-ic i, .sx-ic .mdi::before { font-size: 26px; line-height: 1; }
.sx .mdi::before { line-height: 1; }
.sx-service:nth-child(even) .sx-ic { background: var(--sx-teal-soft); color: var(--sx-teal); }
.sx-service b { font-size: 17px; font-weight: 800; line-height: 1.3; }
.sx-service span { font-size: 14px; color: var(--sx-muted); line-height: 1.45; }
.sx-service small { margin-top: 6px; font-size: 13px; font-weight: 800; color: var(--sx-orange); display: inline-flex; align-items: center; gap: 4px; }
.sx-links { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.sx-chip { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 999px; border: 1px solid var(--sx-line); background: var(--sx-surface); color: var(--sx-ink) !important; font-size: 14px; font-weight: 700; cursor: pointer; font-family: var(--sx-font); }
.sx-chip i { color: var(--sx-teal); font-size: 17px; }
.sx-chip:hover { border-color: var(--sx-orange); }
.sx-chip .sx-count { font-size: 12px; font-weight: 800; min-width: 22px; padding: 1px 7px; border-radius: 99px; background: var(--sx-surface-2); color: var(--sx-muted); text-align: center; }
.sx-chip[aria-pressed="true"] { background: var(--sx-ink); color: var(--sx-bg) !important; border-color: var(--sx-ink); }
.sx-chip[aria-pressed="true"] .sx-count { background: var(--sx-orange); color: #FFFFFF; }

/* Regulasi */
.sx-filter { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.sx-filter .sx-chip { white-space: nowrap; }
.sx-docs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.sx-doc { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 16px; align-items: start; padding: 18px; border-radius: var(--sx-radius); background: var(--sx-surface); border: 1px solid var(--sx-line); color: var(--sx-ink) !important; transition: transform .2s ease, border-color .2s ease; }
.sx-doc:hover { transform: translateY(-3px); border-color: var(--sx-teal); }
.sx-doc[hidden] { display: none !important; }
.sx-doc-img { width: 64px; height: 64px; border-radius: 14px; background: var(--sx-surface-2); display: grid; place-items: center; overflow: hidden; }
.sx-doc-img img { width: 100%; height: 100%; object-fit: contain; padding: 6px; }
.sx-tag { display: inline-block; font-size: 11.5px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--sx-teal); margin-bottom: 6px; }
.sx-doc h3 { font-size: 15.5px; font-weight: 700; line-height: 1.4; margin: 0; color: var(--sx-ink); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.sx-meta { display: block; margin-top: 8px; font-size: 13px; color: var(--sx-muted); }
.sx-empty { padding: 28px; border-radius: var(--sx-radius); border: 1px dashed var(--sx-line); color: var(--sx-muted); text-align: center; }

/* Tutorial video */
.sx-video-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 18px; }
.sx-video-main { position: relative; display: block; border-radius: 22px; overflow: hidden; aspect-ratio: 16 / 9; max-width: 100%; background: var(--sx-ink); }
.sx-video-main img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s ease; }
.sx-video-main:hover img { transform: scale(1.04); }
.sx-video-main .sx-shade { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(10, 14, 13, .85), rgba(10, 14, 13, .1) 55%); }
.sx-video-main .sx-cap { position: absolute; left: 22px; right: 22px; bottom: 20px; color: #FFFFFF; }
.sx-video-main .sx-cap b { display: block; font-size: clamp(18px, 2vw, 24px); line-height: 1.25; text-transform: none; }
.sx-video-main .sx-cap span { font-size: 13.5px; opacity: .85; }
.sx-play { position: absolute; top: 50%; left: 50%; width: 76px; height: 76px; margin: -38px 0 0 -38px; border-radius: 50%; display: grid; place-items: center; background: var(--sx-orange); color: #FFFFFF; font-size: 38px; box-shadow: 0 0 0 10px rgba(232, 89, 12, .25); transition: transform .2s ease; }
.sx-video-main:hover .sx-play { transform: scale(1.08); }
.sx-video-list { display: grid; gap: 10px; align-content: start; }
.sx-video-item { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 14px; align-items: center; padding: 10px; border-radius: 16px; background: var(--sx-surface); border: 1px solid var(--sx-line); color: var(--sx-ink) !important; }
.sx-video-item:hover { border-color: var(--sx-orange); }
.sx-thumb { position: relative; aspect-ratio: 16 / 10; max-width: 100%; border-radius: 10px; overflow: hidden; background: var(--sx-surface-2); }
.sx-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sx-thumb i { position: absolute; inset: 0; display: grid; place-items: center; color: #FFFFFF; font-size: 26px; background: rgba(0, 0, 0, .25); }
.sx-video-item b { font-size: 14.5px; font-weight: 700; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* Kabar bidang */
.sx-tabs { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 18px; border: 0; }
.sx-tabs .sx-chip.active { background: var(--sx-ink); color: var(--sx-bg) !important; border-color: var(--sx-ink); }
.sx-news { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.sx-card { display: block; border-radius: var(--sx-radius); overflow: hidden; background: var(--sx-surface); border: 1px solid var(--sx-line); color: var(--sx-ink) !important; transition: transform .2s ease; }
.sx-card:hover { transform: translateY(-3px); }
.sx-card .sx-cover { aspect-ratio: 16 / 9; max-width: 100%; background: var(--sx-surface-2); overflow: hidden; }
.sx-card .sx-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sx-card .sx-body { padding: 16px 18px; }
.sx-card h3 { font-size: 16px; font-weight: 700; line-height: 1.4; margin: 0; color: var(--sx-ink); }

/* Galeri */
.sx-gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.sx-gal { position: relative; display: block; border-radius: var(--sx-radius); overflow: hidden; aspect-ratio: 4 / 3; max-width: 100%; background: var(--sx-surface); border: 1px solid var(--sx-line); }
.sx-gal img { width: 100%; height: 100%; object-fit: contain; padding: 18px 18px 64px; display: block; transition: transform .4s ease; }
.sx-gal:hover img { transform: scale(1.05); }
.sx-gal b { position: absolute; left: 0; right: 0; bottom: 0; padding: 14px 16px; font-size: 14.5px; font-weight: 700; line-height: 1.35; color: var(--sx-ink); background: linear-gradient(0deg, var(--sx-surface) 70%, transparent); }

/* Pita bantuan */
.sx-help { margin-block: 56px 64px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 20px; align-items: center; padding: 30px 34px; border-radius: 26px; background: var(--sx-ink); color: var(--sx-bg); position: relative; overflow: hidden; }
.sx-help::after { content: ""; position: absolute; right: -60px; top: -60px; width: 220px; height: 220px; border-radius: 50%; border: 36px solid rgba(247, 147, 30, .18); }
.sx-help h2 { color: var(--sx-bg); font-size: clamp(22px, 2.6vw, 28px); font-weight: 800; margin: 0; }
.sx-help p { margin: 8px 0 0; color: inherit; opacity: .78; max-width: 60ch; }
.sx-help .sx-cta { margin-top: 0; position: relative; z-index: 1; }
.sx-help .sx-btn-ghost { background: transparent; color: var(--sx-bg) !important; border-color: rgba(255, 255, 255, .3); }
:root[data-theme=dark] .sx-help { background: var(--sx-surface); color: var(--sx-ink); border: 1px solid var(--sx-line); }
:root[data-theme=dark] .sx-help h2 { color: var(--sx-ink); }
:root[data-theme=dark] .sx-help .sx-btn-ghost { color: var(--sx-ink) !important; border-color: var(--sx-line); }

/* Responsif */
@media (max-width: 1100px) {
	.sx-services, .sx-docs, .sx-news { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sx-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
	.sx-hero-grid, .sx-video-grid { grid-template-columns: minmax(0, 1fr); }
	.sx-hero { padding-top: 24px; }
}
@media (max-width: 640px) {
	.sx-section { padding-top: 40px; }
	.sx-services, .sx-docs, .sx-news { grid-template-columns: minmax(0, 1fr); }
	.sx-hero .sx-lead { font-size: 16px; }
	.sx-btn { flex: 1 1 auto; justify-content: center; }
	.sx-help { grid-template-columns: minmax(0, 1fr); padding: 24px; }
	.sx-video-item { grid-template-columns: 96px minmax(0, 1fr); }
	.sx-play { top: 38%; width: 56px; height: 56px; margin: -28px 0 0 -28px; font-size: 28px; box-shadow: 0 0 0 7px rgba(232, 89, 12, .25); }
	/* Di ponsel keterangan pindah ke bawah gambar agar tidak bertumpuk dengan tombol putar */
	.sx-video-main { aspect-ratio: auto; }
	.sx-video-main img { aspect-ratio: 16 / 9; height: auto; }
	.sx-video-main .sx-shade { display: none; }
	.sx-video-main .sx-cap { position: static; display: block; padding: 12px 16px 14px; background: var(--sx-ink); }
	.sx-video-main .sx-cap b { font-size: 16px; }
	.sx-play { top: 28%; }
	.sx-filter { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 6px; scrollbar-width: none; }
}
@media (prefers-reduced-motion: reduce) {
	.sx *, .sx *::before { transition: none !important; animation: none !important; }
}
