/*
Theme Name: Kabar Terkini News TV
Theme URI: https://kabarterkininewstv.com/
Author: Kabar Terkini News TV
Author URI: https://kabarterkininewstv.com/
Description: Tema portal video untuk Kabar Terkini News TV (kabarterkininewstv.com). Mode gelap navy + merah: menu gelap, hero carousel video headline dari YouTube, Berita Populer, Shorts, Program, Video Report. Dibangun dari tema Suara Kendari — tanpa plugin luar: SEO dasar, redirect, dan pengerasan keamanan dibuat kecil di dalam tema.
Version: 0.7.17
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: kabarterkininewstv
Tags: news, video, portal-berita, dark, two-columns, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready
*/

/*
 * Kabar Terkini News TV v0.7.17 — stylesheet utama.
 * Mode gelap: kontainer maks 1070px, padding 7px, latar navy #0a1930,
 * menu navy #05142b, merah #e60625. Tidak ada framework CSS eksternal,
 * supaya tema jalan walau tanpa internet.
 * Palet: brand #e60625 / #b3051f / #8f0418 / #6d0312,
 * navy #05142b / #0a1930 / #12233f, tinta terang #f1f5f9.
 */

/* ------------------------------------------------------------------ */
/* Font di-host sendiri (v0.2.9, optimasi PageSpeed).                 */
/* File woff2 variable dari Google Fonts (lisensi SIL OFL) di folder  */
/* fonts/: satu file per keluarga mencakup semua bobot yang dipakai   */
/* (Inter 400-800, Plus Jakarta Sans 600-800). font-display: swap     */
/* supaya teks langsung tampil dengan font sistem selagi font dimuat. */
/* ------------------------------------------------------------------ */
@font-face {
	font-family: "Inter";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("fonts/inter.woff2") format("woff2");
}
@font-face {
	font-family: "Plus Jakarta Sans";
	font-style: normal;
	font-weight: 200 800;
	font-display: swap;
	src: url("fonts/plus-jakarta-sans.woff2") format("woff2");
}
/* v0.2.45: tiga pilihan font tambahan dari ide joko (Source Sans Pro,
   Montserrat, Raleway) — variable woff2 latin dari Google Fonts,
   self-hosted seperti dua font di atas. Source Sans 3 adalah nama
   baru Source Sans Pro (desain sama); tumpukannya tetap memakai
   "Source Sans Pro" + "Helvetica Neue" sebagai cadangan. */
@font-face {
	font-family: "Montserrat";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("fonts/montserrat.woff2") format("woff2");
}
@font-face {
	font-family: "Raleway";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("fonts/raleway.woff2") format("woff2");
}
@font-face {
	font-family: "Source Sans 3";
	font-style: normal;
	font-weight: 200 900;
	font-display: swap;
	src: url("fonts/source-sans-3.woff2") format("woff2");
}

:root {
  --sk-brand-50: #fef0f2;
  --sk-brand-100: #fce1e5;
  --sk-brand-500: #ea2b46;
  --sk-brand-600: #e60625;
  --sk-brand-700: #c4051f;
  --sk-brand-800: #960418;
  --sk-accent-500: #ea580c;
  --sk-accent-600: #ce4d0b;
  /* Mode gelap: teks terang di atas navy. --sk-ink-900 dipakai judul
     dan teks isi; --sk-ink-500 untuk meta kecil (tanggal, dll). */
  --sk-ink-900: #f1f5f9;
  --sk-ink-700: #cbd5e1;
  --sk-ink-500: #94a3b8;
  --sk-paper: #0a1930;
  --sk-footer: #04122e;
  --sk-border: #1e3a5f;
  --sk-navy-900: #04122e;
  --sk-navy-800: #05142b;
  --sk-navy-700: #0a1930;
  --sk-navy-600: #12233f;
  --sk-navy-500: #1e3a5f;
  --sk-font-head: "Plus Jakarta Sans", "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --sk-font-ui: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--sk-paper);
  color: var(--sk-ink-900);
  font-family: var(--sk-font-ui);
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}

img { max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--sk-brand-600); }
ul, ol { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, h4, p { margin: 0; }

::selection { background: var(--sk-brand-600); color: #fff; }

.screen-reader-text {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.screen-reader-text:focus {
  position: static; width: auto; height: auto; margin: 0; clip: auto;
  background: var(--sk-brand-600); color: #fff; padding: 8px 16px;
}

/* ---------- Kerangka ---------- */
.sk-container {
  margin-left: auto; margin-right: auto;
  padding-left: 7px; padding-right: 7px;
  width: 100%;
}
@media (min-width: 768px) {
  .sk-container { width: min(1070px, 100%); }
}
.sk-layout {
  display: flex; flex-direction: column;
  padding-top: 24px; padding-bottom: 24px;
}
@media (min-width: 992px) {
  .sk-layout { flex-direction: row; align-items: flex-start; gap: 30px; padding-left: 0; padding-right: 0; }
  .sk-main { flex: 1; min-width: 0; }
  .sk-sidebar-col { width: 300px; flex-shrink: 0; position: sticky; top: 76px; }
  body.admin-bar .sk-sidebar-col { top: 108px; }
}
@media (max-width: 991px) {
  .sk-sidebar-col { margin-top: 28px; }
}
@media (max-width: 639px) {
  .sk-sidebar-col { margin-top: 28px; }
}

/* ---------- Header: bar menu gelap navy (v0.1.0, KTN TV) ---------- */
.sk-header { background: var(--sk-navy-800); }
.sk-logo { display: flex; align-items: center; }
.sk-logo img { height: 40px; width: auto; max-width: 260px; object-fit: contain; }
.sk-logo-link { display: inline-flex; flex-direction: column; align-items: flex-start; line-height: 1; }
@media (min-width: 640px) { .sk-logo img { height: 48px; } }
.sk-logo-text { font-family: var(--sk-font-head); font-size: 28px; font-weight: 900; letter-spacing: -0.02em; line-height: 1; color: #fff; text-transform: uppercase; }
.sk-logo-text span { color: var(--sk-brand-600); }
.sk-tagline { font-size: 9px; font-weight: 700; letter-spacing: 0.14em; color: var(--sk-ink-500); margin-top: 4px; text-transform: uppercase; white-space: nowrap; }
.sk-icon-btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; border: 0; background: transparent;
  color: #fff; cursor: pointer; font-size: 18px; line-height: 1;
}
.sk-icon-btn:hover { color: #fecaca; }
@media (min-width: 992px) { .sk-menu-toggle { display: none; } }

/* Menu utama: sticky, navy gelap, tebal, dropdown 2 tingkat. */
.sk-nav-sticky { position: sticky; top: 0; z-index: 40; }
body.admin-bar .sk-nav-sticky { top: 32px; }
/* Penanda + bayangan saat menempel. */
.sk-sticky-sentinel { height: 0; }
.sk-nav-sticky.is-stuck { filter: drop-shadow(0 4px 5px rgba(0, 0, 0, 0.28)); }
.sk-nav-main { background: var(--sk-navy-800); color: #fff; }
.sk-nav-main .sk-nav-inner { display: flex; align-items: center; gap: 8px; padding-top: 8px; padding-bottom: 8px; }
.sk-nav-main ul.menu { display: none; }
@media (min-width: 992px) { .sk-nav-main ul.menu { display: flex; align-items: center; margin-left: 12px; } }
.sk-nav-main ul.menu > li { position: relative; display: flex; align-items: center; }
.sk-nav-main ul.menu > li > a {
  display: flex; align-items: center; gap: 6px; padding: 10px 12px;
  font-family: var(--sk-font-head); font-size: 14px; font-weight: 800;
  letter-spacing: 0.02em; color: #fff; white-space: nowrap;
  border-bottom: 3px solid transparent;
}
.sk-nav-main ul.menu > li > a svg { flex-shrink: 0; }
/* Hover + item aktif: hanya warna huruf yang berubah, item aktif
   ditambah garis bawah merah (sesuai screenshot). */
.sk-nav-main ul.menu > li > a:hover, .sk-nav-main ul.menu > li.current-menu-item > a, .sk-nav-main ul.menu > li.current-category-parent > a { color: #fecaca; }
.sk-nav-main ul.menu > li.current-menu-item > a, .sk-nav-main ul.menu > li.current-category-parent > a { border-bottom-color: var(--sk-brand-600); }
/* Tanda dropdown (Program). */
.sk-nav-main ul.menu > li.menu-item-has-children > a::after { content: ""; border: 4px solid transparent; border-top-color: currentColor; margin-top: 3px; }
/* Tombol LIVE merah di menu. */
.sk-nav-main ul.menu > li.ktn-live > a { background: var(--sk-brand-600); border-radius: 6px; padding: 7px 12px; border-bottom-color: transparent; }
.sk-nav-main ul.menu > li.ktn-live > a:hover { background: var(--sk-brand-700); color: #fff; }
.sk-nav-main ul.menu > li.ktn-live.current-menu-item > a { border-bottom-color: transparent; }
/* Tautan dimatikan (halaman belum ada): tetap terlihat, klik ditahan JS. */
.sk-nav-main ul.menu > li > a[aria-disabled="true"] { opacity: 0.65; cursor: default; }
.sk-nav-main ul.sub-menu {
  display: none; position: absolute; top: calc(100% + 8px); left: 0; min-width: 220px;
  background: var(--sk-navy-600); z-index: 50; box-shadow: 0 8px 20px rgba(0, 0, 0, 0.4);
  border-radius: 0 0 8px 8px; overflow: hidden;
}
/* Jembatan tak terlihat setinggi celah (8px) di atas submenu. */
.sk-nav-main ul.sub-menu::before { content: ""; position: absolute; top: -8px; left: 0; right: 0; height: 8px; }
.sk-nav-main ul.menu > li:hover > ul.sub-menu, .sk-nav-main ul.menu > li:focus-within > ul.sub-menu { display: block; }
.sk-nav-main ul.sub-menu li { border-top: 1px solid rgba(255, 255, 255, 0.08); }
.sk-nav-main ul.sub-menu a { display: block; padding: 10px 14px; font-size: 13px; font-weight: 700; color: #fff; }
.sk-nav-main ul.sub-menu a:hover { color: #fecaca; }
.sk-nav-actions { display: flex; align-items: center; gap: 4px; margin-left: auto; }
.sk-nav-actions .sk-icon-btn { background: transparent; border: 0; color: #fff; }
.sk-nav-actions .sk-icon-btn:hover { color: #fecaca; }
/* Strip pencarian gelap selebar layar di bawah bar menu. */
.sk-search-strip { display: none; background: var(--sk-navy-600); border-top: 1px solid var(--sk-navy-500); }
.sk-search-strip.open { display: block; }
.sk-search-strip .sk-container { padding-top: 12px; padding-bottom: 12px; }
.sk-search-strip form { display: flex; gap: 8px; }
.sk-search-strip input[type="search"] { flex: 1; min-width: 0; padding: 10px 12px; border: 1px solid var(--sk-navy-500); border-radius: 6px; font-size: 15px; font-family: inherit; background: var(--sk-navy-700); color: #fff; }
.sk-search-strip input[type="search"]::placeholder { color: var(--sk-ink-500); }
.sk-search-strip input[type="search"]:focus { border-color: var(--sk-brand-600); outline: none; }
.sk-search-submit { flex-shrink: 0; background: var(--sk-brand-600); color: #fff; border: 0; border-radius: 6px; padding: 10px 16px; font-size: 14px; font-weight: 700; cursor: pointer; }
.sk-search-submit:hover { background: var(--sk-brand-700); }

/* Titik berdenyut (badge LIVE hero). */
@keyframes sk-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.35; } }

/* Drawer HP gelap */
.sk-drawer { display: none; background: var(--sk-navy-800); border-top: 1px solid var(--sk-navy-500); }
.sk-drawer.open { display: block; }
@media (min-width: 992px) { .sk-drawer { display: none !important; } }
.sk-drawer ul.menu a { display: flex; align-items: center; gap: 8px; padding: 11px 7px; border-top: 1px solid rgba(255, 255, 255, 0.08); font-weight: 700; font-size: 14px; color: #fff; }
.sk-drawer ul.menu > li.ktn-live > a { color: var(--sk-brand-500); }
.sk-drawer ul.sub-menu a { padding-left: 30px; font-weight: 600; color: var(--sk-ink-700); }

/* ---------- Hero carousel + Berita Populer (v0.1.0, KTN TV) ---------- */
.ktn-hero-wrap { display: grid; gap: 24px; margin-bottom: 32px; }
@media (min-width: 992px) { .ktn-hero-wrap { grid-template-columns: minmax(0, 1fr) 320px; align-items: start; } }
.ktn-hero { position: relative; border-radius: 12px; overflow: hidden; background: var(--sk-navy-600); }
.ktn-hero-track { position: relative; aspect-ratio: 16 / 10; }
@media (min-width: 640px) { .ktn-hero-track { aspect-ratio: 16 / 9; } }
.ktn-hero-slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity 0.5s ease, visibility 0.5s; }
.ktn-hero-slide.is-active { opacity: 1; visibility: visible; }
.ktn-hero-slide img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ktn-hero-fallback { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 96px; font-weight: 900; color: rgba(255, 255, 255, 0.25); background: linear-gradient(135deg, var(--sk-brand-500), var(--sk-brand-800)); }
.ktn-hero-overlay { position: absolute; left: 0; right: 0; bottom: 0; padding: 72px 24px 46px; background: linear-gradient(to top, rgba(2, 8, 23, 0.92), rgba(2, 8, 23, 0.45), transparent); }
.ktn-hero-title { font-family: var(--sk-font-head); font-size: 24px; font-weight: 800; line-height: 1.2; color: #fff; max-width: 560px; }
.ktn-hero-title a:hover { color: #fecaca; }
@media (min-width: 640px) { .ktn-hero-title { font-size: 32px; } }
.ktn-hero-sub { margin-top: 8px; font-size: 14px; line-height: 1.5; color: rgba(255, 255, 255, 0.85); max-width: 520px; }
.ktn-hero-actions { margin-top: 16px; display: flex; flex-wrap: wrap; gap: 12px; }
.ktn-btn { display: inline-flex; align-items: center; gap: 8px; padding: 11px 20px; border-radius: 8px; font-family: var(--sk-font-head); font-size: 13px; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; }
.ktn-btn-red { background: var(--sk-brand-600); color: #fff; }
.ktn-btn-red:hover { background: var(--sk-brand-700); color: #fff; }
.ktn-btn-outline { border: 1.5px solid rgba(255, 255, 255, 0.7); color: #fff; }
.ktn-btn-outline:hover { border-color: #fff; color: #fff; }
.ktn-btn.is-disabled { opacity: 0.55; cursor: default; }
.ktn-hero-live { position: absolute; top: 16px; left: 16px; z-index: 3; display: inline-flex; align-items: center; gap: 6px; background: var(--sk-brand-600); color: #fff; border-radius: 6px; padding: 5px 10px; font-size: 12px; font-weight: 800; letter-spacing: 0.08em; }
.ktn-hero-live i { width: 8px; height: 8px; border-radius: 50%; background: #fff; animation: sk-pulse 1.6s ease-in-out infinite; }
.ktn-hero-dots { position: absolute; left: 0; right: 0; bottom: 14px; z-index: 3; display: flex; justify-content: center; gap: 8px; }
.ktn-hero-dot { width: 8px; height: 8px; border-radius: 50%; border: 0; padding: 0; background: rgba(255, 255, 255, 0.45); cursor: pointer; }
.ktn-hero-dot.is-active { background: var(--sk-brand-600); width: 22px; border-radius: 999px; }

.ktn-bottomnav { display: none; }

/* ---------- Tampilan HP (v0.7.1, acuan KTNtv): hero carousel ala contoh
   (judul utuh dikecilkan + 1 tombol Tonton Sekarang), Shorts 3 kolom, dan
   bottom nav tetap di bawah layar. Desktop tidak disentuh. */
@media (max-width: 639px) {
	.ktn-hero-track { aspect-ratio: 4 / 3; }
	.ktn-hero-overlay { padding: 24px 16px 32px; }
	.ktn-hero-title { font-size: 18px; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
	.ktn-hero-sub { margin-top: 6px; font-size: 12px; }
	.ktn-hero-actions { margin-top: 12px; gap: 8px; }
	.ktn-hero-actions .ktn-btn-outline { display: none; }
	.ktn-btn { padding: 8px 14px; font-size: 11px; }
	.ktn-hero-dots { bottom: 12px; }
	.ktn-bottomnav { position: fixed; left: 0; right: 0; bottom: 0; z-index: 70; display: flex; background: #0a1930; border-top: 1px solid rgba(255, 255, 255, 0.12); padding: 6px 4px calc(6px + env(safe-area-inset-bottom)); }
	.ktn-bottomnav a { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 4px 2px; color: rgba(255, 255, 255, 0.65); font-size: 11px; font-weight: 700; text-decoration: none; }
	.ktn-bottomnav a svg { width: 22px; height: 22px; }
	.ktn-bottomnav a.is-active { color: #3b82f6; }
	.ktn-bottomnav a.is-live { color: var(--sk-brand-600); }
	.ktn-bottomnav a.is-disabled { opacity: 0.5; }
	body { padding-bottom: 60px; }
	.sk-backtotop { bottom: 76px; }
}

/* ---------- Shorts News + promo KTN Insight (v0.2.0) ---------- */
.ktn-shorts { margin-bottom: 32px; }
.ktn-shorts-head { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 12px; margin-bottom: 14px; }
.ktn-shorts-title { font-family: var(--sk-font-head); font-size: 24px; font-weight: 800; color: #fff; border-left: 4px solid var(--sk-brand-600); padding-left: 10px; line-height: 1.2; }
.ktn-shorts-sub { font-size: 13px; color: var(--sk-ink-500); }
.ktn-shorts-all { margin-left: auto; font-size: 13px; font-weight: 700; color: #fff; white-space: nowrap; }
.ktn-shorts-all:hover { color: var(--sk-brand-500); }
.ktn-shorts-all.is-disabled { color: var(--sk-ink-500); cursor: not-allowed; }
.ktn-shorts-body { display: grid; gap: 16px; }
@media (min-width: 992px) { .ktn-shorts-body { grid-template-columns: minmax(0, 1fr) 250px; } }
.ktn-shorts-track { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
@media (min-width: 640px) { .ktn-shorts-track { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 992px) { .ktn-shorts-track { grid-template-columns: repeat(5, 1fr); } }
.ktn-short-card { display: block; border-radius: 10px; overflow: hidden; }
.ktn-short-thumb { position: relative; display: block; aspect-ratio: 9 / 16; overflow: hidden; background: var(--sk-navy-600); }
.ktn-short-thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s; }
.ktn-short-card:hover .ktn-short-thumb img { transform: scale(1.05); }
.ktn-short-fallback { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 40px; color: rgba(255, 255, 255, 0.8); background: linear-gradient(135deg, #475569, var(--sk-navy-800)); }
.ktn-short-dur { position: absolute; top: 8px; right: 8px; background: rgba(0, 0, 0, 0.75); color: #fff; border-radius: 4px; padding: 2px 6px; font-size: 11px; font-weight: 700; }
.ktn-short-play { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 1; width: 48px; height: 48px; flex-shrink: 0; border-radius: 50%; background: rgba(0, 0, 0, 0.35); color: #fff; display: flex; align-items: center; justify-content: center; }
.ktn-short-play svg { width: 24px; height: 24px; margin-left: 2px; }
.ktn-short-title { position: absolute; bottom: 0; left: 0; right: 0; z-index: 1; display: -webkit-box; -webkit-line-clamp: 3; line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; padding: 10px 12px 12px; text-align: left; font-size: 13px; font-weight: 700; line-height: 1.35; color: #fff; text-shadow: 0 1px 3px rgba(0, 0, 0, 0.9), 0 2px 8px rgba(0, 0, 0, 0.7); }
.ktn-shorts-empty { grid-column: 1 / -1; color: var(--sk-ink-500); font-size: 14px; line-height: 1.6; }
.ktn-insight-promo { position: relative; overflow: hidden; border-radius: 12px; padding: 22px; background: linear-gradient(135deg, var(--sk-navy-500), var(--sk-navy-800)); display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 4px; min-height: 220px; }
.ktn-insight-promo svg { width: 40px; height: 40px; color: var(--sk-brand-500); margin-bottom: 6px; }
.ktn-insight-kicker { font-size: 30px; font-weight: 900; line-height: 1; color: #fff; letter-spacing: 0.02em; }
.ktn-insight-name { font-size: 30px; font-weight: 900; line-height: 1; color: var(--sk-brand-600); }
.ktn-insight-tag { margin-top: 6px; font-size: 14px; line-height: 1.5; color: rgba(255, 255, 255, 0.85); }
.ktn-insight-btn { display: inline-block; margin-top: 12px; background: var(--sk-brand-600); color: #fff; font-weight: 700; font-size: 13px; padding: 9px 16px; border-radius: 6px; }
.ktn-insight-btn:hover { background: var(--sk-brand-500); color: #fff; }
.ktn-insight-btn.is-disabled { background: #475569; color: #cbd5e1; cursor: not-allowed; }

/* ---------- Program KTN TV + kartu LIVE Streaming (v0.3.0) ---------- */
.ktn-programs { margin-bottom: 32px; }
.ktn-programs-head { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 12px; margin-bottom: 14px; }
.ktn-programs-title { font-family: var(--sk-font-head); font-size: 24px; font-weight: 800; color: #fff; border-left: 4px solid var(--sk-brand-600); padding-left: 10px; line-height: 1.2; }
.ktn-programs-sub { font-size: 13px; color: var(--sk-ink-500); }
.ktn-programs-all { margin-left: auto; font-size: 13px; font-weight: 700; color: #fff; white-space: nowrap; }
.ktn-programs-all:hover { color: var(--sk-brand-500); }
.ktn-programs-all.is-disabled { color: var(--sk-ink-500); cursor: not-allowed; }
.ktn-programs-body { display: grid; gap: 16px; }
@media (min-width: 992px) { .ktn-programs-body { grid-template-columns: minmax(0, 1fr) 250px; } }
.ktn-programs-track { display: grid; grid-template-columns: 1fr; gap: 16px 12px; }
@media (min-width: 640px) { .ktn-programs-track { grid-template-columns: repeat(3, 1fr); } }
.ktn-program-card { display: block; }
.ktn-program-thumb { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 10px; background: var(--sk-navy-600); }
.ktn-program-thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s; }
.ktn-program-card:hover .ktn-program-thumb img { transform: scale(1.05); }
.ktn-program-fallback { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 40px; color: rgba(255, 255, 255, 0.8); background: linear-gradient(135deg, #475569, var(--sk-navy-800)); }
.ktn-program-play { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; background: rgba(255, 255, 255, 0.25); color: #fff; backdrop-filter: blur(2px); }
.ktn-program-card:hover .ktn-program-play { background: rgba(230, 6, 37, 0.85); }
.ktn-program-shade { position: absolute; left: 0; right: 0; bottom: 0; height: 66%; background: linear-gradient(to top, rgba(0, 0, 0, 0.8), transparent); pointer-events: none; }
.ktn-program-overlay { position: absolute; left: 0; right: 0; bottom: 0; display: block; padding: 12px; }
.ktn-program-name { display: block; font-size: 15px; font-weight: 800; line-height: 1.35; color: #fff; }
.ktn-program-video-title { display: block; margin-top: 2px; font-size: 13px; line-height: 1.5; color: rgba(255, 255, 255, 0.85); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ktn-programs-empty { grid-column: 1 / -1; color: var(--sk-ink-500); font-size: 14px; line-height: 1.6; }
.ktn-live-card { position: relative; overflow: hidden; border-radius: 12px; padding: 22px; background: linear-gradient(135deg, var(--sk-navy-500), var(--sk-navy-800)); display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 8px; min-height: 200px; }
.ktn-live-head { display: inline-flex; align-items: center; gap: 8px; font-size: 20px; font-weight: 800; color: #fff; }
.ktn-live-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--sk-brand-600); animation: sk-pulse 1.6s ease-in-out infinite; }
.ktn-live-text { font-size: 14px; line-height: 1.5; color: rgba(255, 255, 255, 0.85); }

/* ---------- Video Report + Berita Terkini (v0.5.0) ---------- */
.ktn-report { margin-bottom: 32px; }
.ktn-report-body { display: grid; gap: 16px; }
@media (min-width: 992px) { .ktn-report-body { grid-template-columns: minmax(0, 1fr) 250px; } }
.ktn-report-head { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 12px; margin-bottom: 14px; }
.ktn-report-title { font-family: var(--sk-font-head); font-size: 24px; font-weight: 800; color: #fff; border-left: 4px solid var(--sk-brand-600); padding-left: 10px; line-height: 1.2; }
.ktn-report-sub { font-size: 13px; color: var(--sk-ink-500); }
.ktn-report-all { margin-left: auto; font-size: 13px; font-weight: 700; color: #fff; white-space: nowrap; }
.ktn-report-all:hover { color: var(--sk-brand-500); }
.ktn-report-all.is-disabled { color: var(--sk-ink-500); cursor: not-allowed; }
.ktn-report-track { display: grid; grid-template-columns: 1fr; gap: 16px 12px; }
@media (min-width: 640px) { .ktn-report-track { grid-template-columns: repeat(2, 1fr); } }
.ktn-report-card { display: flex; gap: 12px; align-items: flex-start; }
.ktn-report-thumb { position: relative; flex: 0 0 52%; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 10px; background: var(--sk-navy-600); }
.ktn-report-thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s; }
.ktn-report-card:hover .ktn-report-thumb img { transform: scale(1.05); }
.ktn-report-fallback { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 40px; color: rgba(255, 255, 255, 0.8); background: linear-gradient(135deg, #475569, var(--sk-navy-800)); }
.ktn-report-text { display: block; min-width: 0; padding-top: 2px; }
.ktn-report-name { display: block; font-size: 15px; font-weight: 800; line-height: 1.35; color: #fff; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.ktn-report-meta { display: block; margin-top: 6px; font-size: 13px; color: var(--sk-ink-500); }
.ktn-report-meta svg { vertical-align: -1px; }
.ktn-report-empty { grid-column: 1 / -1; color: var(--sk-ink-500); font-size: 14px; line-height: 1.6; }
.ktn-latest-head { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 12px; margin-bottom: 14px; }
.ktn-latest-title { font-family: var(--sk-font-head); font-size: 20px; font-weight: 800; color: #fff; border-left: 4px solid var(--sk-brand-600); padding-left: 10px; line-height: 1.2; }
.ktn-latest-all { margin-left: auto; font-size: 13px; font-weight: 700; color: #fff; white-space: nowrap; }
.ktn-latest-all:hover { color: var(--sk-brand-500); }
.ktn-latest-all.is-disabled { color: var(--sk-ink-500); cursor: not-allowed; }
.ktn-latest-list { display: grid; gap: 12px; }
.ktn-latest-item { display: flex; gap: 10px; align-items: flex-start; }
.ktn-latest-thumb { position: relative; flex-shrink: 0; width: 96px; aspect-ratio: 3 / 2; overflow: hidden; border-radius: 8px; background: var(--sk-navy-600); }
.ktn-latest-thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ktn-latest-fallback { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 20px; color: rgba(255, 255, 255, 0.8); background: linear-gradient(135deg, #475569, var(--sk-navy-800)); }
.ktn-latest-text { display: block; min-width: 0; }
.ktn-latest-name { display: block; font-size: 14px; font-weight: 700; line-height: 1.35; color: #fff; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ktn-latest-meta { display: block; margin-top: 2px; font-size: 12px; color: var(--sk-ink-500); }
.ktn-latest-meta svg { vertical-align: -1px; }
.ktn-latest-empty { color: var(--sk-ink-500); font-size: 14px; line-height: 1.6; }
.ktn-popular-head { display: flex; align-items: center; gap: 8px; font-family: var(--sk-font-head); font-size: 19px; font-weight: 800; color: #fff; margin-bottom: 16px; }
.ktn-popular-head svg { color: var(--sk-brand-600); flex-shrink: 0; }
.ktn-popular-list { display: flex; flex-direction: column; gap: 14px; }
.ktn-popular-list li a { display: flex; align-items: center; gap: 12px; }
.ktn-popular-num { font-family: var(--sk-font-head); font-size: 22px; font-weight: 900; color: var(--sk-brand-600); line-height: 1; flex-shrink: 0; width: 20px; text-align: center; }
.ktn-popular-thumb { flex-shrink: 0; width: 72px; height: 54px; border-radius: 6px; overflow: hidden; background: var(--sk-navy-600); }
.ktn-popular-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ktn-popular-fallback { display: flex; align-items: center; justify-content: center; height: 100%; font-size: 20px; font-weight: 900; color: rgba(255, 255, 255, 0.5); background: linear-gradient(135deg, var(--sk-brand-500), var(--sk-brand-800)); }
.ktn-popular-title { font-size: 14px; font-weight: 700; line-height: 1.35; color: #f1f5f9; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ktn-popular-list li a:hover .ktn-popular-title { color: #fecaca; }

/* ---------- Slot iklan ---------- */
.sk-ad { display: flex; align-items: center; justify-content: center; min-height: 90px; width: 100%; border: 1px dashed #d1d5db; background: #f9fafb; color: #525252; font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; text-align: center; margin-bottom: 20px; }
.sk-ad:empty { display: none; }
.sk-ad img { max-width: 100%; height: auto; }
@media (max-width: 991px) { .sk-ad-after-headline { display: none; } }

/* ---------- Big Headline ---------- */
.sk-big-headline { margin-bottom: 38px; background: #fff; border: 1px solid #e5e7eb; }
@media (min-width: 640px) { .sk-big-headline { background: transparent; border: 0; } }
.sk-big-hero { display: block; position: relative; overflow: hidden; aspect-ratio: 640 / 358; background: linear-gradient(135deg, var(--sk-brand-500), var(--sk-brand-800)); }
.sk-big-hero img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.sk-big-hero .sk-big-fallback { display: flex; align-items: center; justify-content: center; height: 100%; font-size: 72px; font-weight: 900; color: rgba(255, 255, 255, 0.5); }
.sk-big-overlay { position: absolute; left: 0; right: 0; bottom: 0; padding: 64px 16px 12px; background: linear-gradient(to top, rgba(0, 0, 0, 0.85), rgba(0, 0, 0, 0.4), transparent); }
.sk-big-overlay .sk-big-title { font-family: var(--sk-font-head); font-size: 22px; font-weight: 800; line-height: 1.25; color: #fff; }
@media (min-width: 640px) { .sk-big-overlay .sk-big-title { font-size: 28px; } }
.sk-big-meta { margin-top: 8px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.sk-cat-chip { display: inline-block; background: #fff; border-radius: 6px; padding: 2px 10px; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.04em; color: var(--sk-ink-900); }
.sk-big-meta time { font-size: 12px; font-weight: 500; color: rgba(255, 255, 255, 0.9); }
.sk-related { padding: 16px 12px 12px; }
@media (min-width: 640px) { .sk-related { padding: 16px 0 4px; } }
/* v0.2.56: jarak antar kartu track 10px (dulu 16px, tetap sendiri tidak
   ikut pengaturan grid). Lebar kartu dihitung dari jarak ini: 3 kolom
   = 33.333% - 2/3 jarak (7px), 2 kolom = 50% - 1/2 jarak (5px). */
.sk-related-track { display: flex; gap: 10px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 4px; }
.sk-related-track::-webkit-scrollbar { display: none; }
.sk-related-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
@media (min-width: 640px) { .sk-related-grid { display: none; } }
/* v0.2.11: grid = tampilan HP, track = tampilan desktop. Sebelumnya track
   tidak pernah disembunyikan di HP, jadi di bawah 640px kedua wadah
   tampil sekaligus dan 2 post terkait pertama muncul dobel (grid 2 kartu
   + track 7 kartu). Aturan ini mematikan track di HP; DOM-nya tetap ada
   tapi tidak di-render dan gambarnya tidak diunduh. */
.sk-related-track .sk-related-card { flex: 0 0 calc(33.333% - 7px); scroll-snap-align: start; }
@media (max-width: 639px) { .sk-related-track { display: none; } }
@media (max-width: 991px) and (min-width: 640px) { .sk-related-track .sk-related-card { flex-basis: calc(50% - 5px); } }
.sk-related-card .sk-related-thumb { display: block; position: relative; aspect-ratio: 200 / 112; overflow: hidden; background: linear-gradient(135deg, var(--sk-brand-500), var(--sk-brand-800)); }
.sk-related-card .sk-related-thumb img { width: 100%; height: 100%; object-fit: cover; }
.sk-related-card .sk-related-thumb .sk-big-fallback { font-size: 36px; }
.sk-related-card h3 { margin-top: 8px; font-size: 15px; font-weight: 700; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.sk-related-card h3 a:hover { color: var(--sk-brand-600); }
.sk-related-card .sk-related-cat { margin-top: 4px; font-size: 12px; font-weight: 500; color: var(--sk-ink-500); }

/* ---------- Tontonan 9/16 ---------- */
.sk-shorts { margin-bottom: 20px; padding-left: 13px; padding-right: 13px; }
@media (min-width: 640px) { .sk-shorts { padding-left: 0; padding-right: 0; } }
.sk-section-title { font-family: var(--sk-font-head); font-size: 24px; font-weight: 800; font-style: italic; letter-spacing: -0.02em; color: var(--sk-ink-900); margin-bottom: 12px; }
.sk-section-title span { color: var(--sk-brand-600); font-style: normal; }
.sk-shorts-track { display: flex; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 4px; scrollbar-width: none; }
@media (min-width: 640px) { .sk-shorts-track { gap: 12px; } }
.sk-shorts-track::-webkit-scrollbar { display: none; }
.sk-short-card { position: relative; display: block; flex-shrink: 0; width: 132px; aspect-ratio: 9 / 16; overflow: hidden; background: var(--sk-ink-900); scroll-snap-align: start; }
@media (min-width: 640px) { .sk-short-card { width: 158px; } }
.sk-short-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s; }
.sk-short-card:hover img { transform: scale(1.05); }
.sk-short-card .sk-short-fallback { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 48px; font-weight: 900; color: rgba(255, 255, 255, 0.8); background: linear-gradient(135deg, #475569, var(--sk-ink-900)); }
.sk-short-card .sk-short-shade { position: absolute; left: 0; right: 0; bottom: 0; height: 66%; background: linear-gradient(to top, rgba(0, 0, 0, 0.85), rgba(0, 0, 0, 0.3), transparent); }
.sk-short-badge { position: absolute; top: 8px; right: 8px; background: rgba(0, 0, 0, 0.7); border-radius: 999px; padding: 2px 8px; font-size: 10px; font-weight: 700; color: #fff; }
.sk-short-play { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; background: rgba(255, 255, 255, 0.25); color: #fff; font-size: 16px; backdrop-filter: blur(2px); }
.sk-short-card:hover .sk-short-play { background: rgba(200, 30, 30, 0.8); }
.sk-short-caption { position: absolute; left: 0; right: 0; bottom: 0; padding: 10px; }
.sk-short-caption .sk-short-title { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; font-size: 13px; font-weight: 700; line-height: 1.35; color: #fff; }

/* ---------- Feed / kartu artikel ---------- */
.sk-feed-title { font-family: var(--sk-font-head); font-size: 24px; font-weight: 800; color: var(--sk-ink-900); margin: 8px 0 16px; padding: 0 13px; }
@media (min-width: 640px) { .sk-feed-title { padding: 0; } }
.sk-article-card { display: flex; align-items: center; gap: 15px; padding: 0 13px 10px; margin-bottom: 10px; border-bottom: 1px solid var(--sk-border); }
@media (min-width: 640px) { .sk-article-card { padding: 0 0 20px; margin-bottom: 20px; } }
.sk-article-card:last-child { border-bottom: 0; }
.sk-article-thumb { flex-shrink: 0; width: 112px; }
@media (min-width: 601px) { .sk-article-thumb { width: 200px; } }
.sk-article-thumb a { display: block; position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: linear-gradient(135deg, var(--sk-brand-500), var(--sk-brand-800)); }
@media (min-width: 601px) { .sk-article-thumb a { aspect-ratio: 200 / 112; } }
.sk-article-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s; }
.sk-article-card:hover .sk-article-thumb img { transform: scale(1.05); }
.sk-article-thumb .sk-big-fallback { font-size: 36px; }
.sk-article-body { flex: 1; min-width: 0; }
.sk-article-body h2, .sk-article-body h3 { font-family: var(--sk-font-head); font-size: 16px; font-weight: 700; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
@media (min-width: 601px) { .sk-article-body h2, .sk-article-body h3 { font-size: 19px; -webkit-line-clamp: 2; } }
.sk-article-body h2 a:hover, .sk-article-body h3 a:hover { color: var(--sk-brand-600); }
.sk-article-excerpt { margin-top: 4px; font-size: 13px; line-height: 1.5; color: var(--sk-ink-700); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
@media (max-width: 600px) { .sk-article-excerpt { display: none; } }
.sk-article-meta { margin-top: 6px; font-size: 13px; }
.sk-article-meta .sk-cat-link { font-weight: 600; color: var(--sk-brand-600); display: inline-block; padding: 4px; margin: -4px; /* v0.2.10: area sentuh >=24px (audit PageSpeed) tanpa mengubah tampilan — padding dibatalkan margin negatif. */ }
.sk-article-meta .sk-sep { color: #d1d5db; margin: 0 6px; }
.sk-article-meta time { color: var(--sk-ink-500); }
.sk-article-meta .sk-readtime { color: var(--sk-ink-500); }
@media (max-width: 600px) { .sk-article-meta .sk-readtime { display: none; } }

/* Blok sisipan + blok kategori */
.sk-block { margin: 8px 0 24px; padding: 0 13px; }
@media (min-width: 640px) { .sk-block { padding: 0; } }
.sk-block-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding-bottom: 8px; margin-bottom: 16px; }
.sk-block-head h2 { font-family: var(--sk-font-head); font-size: 24px; font-weight: 800; color: var(--sk-ink-900); }
.sk-block-head h2::after { content: "\203A"; margin-left: 6px; color: var(--sk-ink-500); }
@media (min-width: 640px) { .sk-block-head h2 { font-size: 28px; } }
.sk-block-head a { font-size: 13px; font-weight: 700; color: var(--sk-brand-600); white-space: nowrap; }
.sk-cat-grid { display: grid; grid-template-columns: 1fr; gap: 20px; }
@media (min-width: 640px) { .sk-cat-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
.sk-grid-card { min-width: 0; }
.sk-cat-grid .sk-grid-card .sk-grid-thumb { display: block; position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: linear-gradient(135deg, var(--sk-brand-500), var(--sk-brand-800)); }
.sk-cat-grid .sk-grid-thumb img { width: 100%; height: 100%; object-fit: cover; }
.sk-cat-grid .sk-grid-thumb .sk-big-fallback { font-size: 48px; }
.sk-cat-grid h3 { margin-top: 8px; font-size: 16px; font-weight: 700; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.sk-cat-grid .sk-grid-meta { margin-top: 4px; font-size: 12px; color: var(--sk-ink-500); }

/* Grid Video homepage (v0.2.14): 2 kolom di HP, 4 kolom di desktop. */
.sk-video-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px 20px; }
@media (min-width: 992px) { .sk-video-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.sk-video-grid .sk-grid-card .sk-grid-thumb { display: block; position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: linear-gradient(135deg, var(--sk-brand-500), var(--sk-brand-800)); }
.sk-video-grid .sk-grid-thumb img { width: 100%; height: 100%; object-fit: cover; }
.sk-video-grid .sk-grid-thumb .sk-big-fallback { font-size: 48px; }
.sk-video-grid h3 { margin-top: 8px; font-size: 15px; font-weight: 700; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.sk-video-grid .sk-grid-meta { margin-top: 4px; font-size: 12px; color: var(--sk-ink-500); }
/* Grid Jaringan Media (v0.2.32, ala detikNetwork): 6 kartu, 3 kolom
   di desktop, 2 kolom di tablet, 1 kolom di HP. Kartu: gambar 16:9
   + label situs asal + judul (maks 3 baris) + waktu relatif. */
.sk-network-grid { display: grid; grid-template-columns: 1fr; gap: 20px; }
@media (min-width: 640px) { .sk-network-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
@media (min-width: 992px) { .sk-network-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.sk-network-grid .sk-grid-card .sk-grid-thumb { display: block; position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: linear-gradient(135deg, var(--sk-brand-500), var(--sk-brand-800)); }
.sk-network-grid .sk-grid-thumb img { width: 100%; height: 100%; object-fit: cover; }
.sk-network-grid h3 { margin-top: 8px; font-size: 16px; font-weight: 700; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.sk-network-grid .sk-grid-meta { margin-top: 4px; font-size: 12px; color: var(--sk-ink-500); }
.sk-network-source { margin-top: 8px; font-size: 12px; font-weight: 600; color: var(--sk-brand-600); }
/* Badge player di kartu grid Video (v0.2.16): lingkaran putih di kanan
   atas thumbnail, segitiga play merah di tengah. Menggantikan lingkaran
   gelap di tengah (v0.2.14). Tanpa judul di atas gambar. */
.sk-video-play { position: absolute; top: 8px; right: 8px; pointer-events: none; }
.sk-video-play span { width: 38px; height: 38px; border-radius: 50%; background: rgba(255, 255, 255, 0.92); box-shadow: 0 1px 6px rgba(0, 0, 0, 0.35); display: flex; align-items: center; justify-content: center; }
.sk-video-play span::before { content: ""; border-style: solid; border-width: 7px 0 7px 11px; border-color: transparent transparent transparent var(--sk-brand-600); margin-left: 2px; }
.sk-grid-thumb:hover .sk-video-play span { background: #fff; }

/* Byline penulis di header halaman artikel (v0.2.17):
   foto bulat 36px + nama; tanpa foto: huruf awal nama. */
.sk-byline-photo { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; object-position: 50% 15%; flex-shrink: 0; }
.sk-byline-initial { width: 36px; height: 36px; border-radius: 50%; background: #fef3c7; color: #b45309; font-size: 14px; font-weight: 700; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.sk-byline-name { display: block; font-size: 14px; font-weight: 500; color: var(--sk-ink-900); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* Gambar Besar + Daftar Ringkas (v0.2.27, pola varian
   gambar-besar-daftar-ringkas di GenericBlocks.tsx GEMAPRO — blok
   Palestina): 1 besar di kiri (55%) + daftar kecil bergambar di kanan
   (thumb 96px, tanpa tanggal). Di HP menumpuk vertikal. */
.sk-feature-row { display: flex; flex-direction: column; gap: 20px; }
@media (min-width: 640px) { .sk-feature-row { flex-direction: row; gap: 16px; } }
.sk-feature-big { min-width: 0; }
@media (min-width: 640px) { .sk-feature-big { width: 55%; flex-shrink: 0; } }
.sk-feature-big .sk-grid-thumb { display: block; position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: linear-gradient(135deg, var(--sk-brand-500), var(--sk-brand-800)); }
.sk-feature-big .sk-grid-thumb img { width: 100%; height: 100%; object-fit: cover; }
.sk-feature-big .sk-grid-thumb .sk-big-fallback { font-size: 48px; }
.sk-feature-cat { margin-top: 8px; font-size: 12px; font-weight: 600; }
.sk-feature-cat a { color: var(--sk-brand-600); }
.sk-feature-big h3 { margin-top: 2px; font-size: 16px; font-weight: 700; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.sk-feature-big .sk-grid-meta { margin-top: 4px; font-size: 12px; color: var(--sk-ink-500); }
.sk-feature-list { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 20px; }
@media (min-width: 640px) { .sk-feature-list { gap: 16px; } }
.sk-feature-item { display: flex; gap: 12px; min-width: 0; }
.sk-feature-item .sk-grid-thumb { display: block; position: relative; width: 96px; flex-shrink: 0; aspect-ratio: 200 / 112; overflow: hidden; background: linear-gradient(135deg, var(--sk-brand-500), var(--sk-brand-800)); }
.sk-feature-item .sk-grid-thumb img { width: 100%; height: 100%; object-fit: cover; }
.sk-feature-item .sk-grid-thumb .sk-big-fallback { font-size: 24px; }
.sk-feature-item .sk-feature-text { min-width: 0; }
.sk-feature-item .sk-feature-cat { margin-top: 0; }
.sk-feature-item h3 { margin-top: 2px; font-size: 14px; font-weight: 700; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* Mosaik Editorial 1+3 (v0.2.13, pola MosaikEditorial13 di
   GenericBlocks.tsx GEMAPRO): 1 berita besar terbelah mendatar
   (gambar kiri + judul/tanggal kanan) + 3 kartu sejajar di bawahnya.
   Di HP, kartu besar menumpuk (gambar di atas, teks di bawah)
   seperti aslinya. */
.sk-mosaik-feature { display: flex; flex-direction: column; gap: 16px; padding-bottom: 16px; }
.sk-mosaik-feature .sk-grid-thumb { display: block; position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: linear-gradient(135deg, var(--sk-brand-500), var(--sk-brand-800)); }
.sk-mosaik-feature .sk-grid-thumb img { width: 100%; height: 100%; object-fit: cover; }
.sk-mosaik-feature .sk-grid-thumb .sk-big-fallback { font-size: 48px; }
.sk-mosaik-feature .sk-mosaik-text { min-width: 0; }
.sk-mosaik-feature h3 { font-size: 18px; font-weight: 700; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.sk-mosaik-feature .sk-grid-meta { margin-top: 4px; font-size: 12px; color: var(--sk-ink-500); }
@media (min-width: 640px) {
  .sk-mosaik-feature { flex-direction: row; gap: 16px; align-items: center; }
  .sk-mosaik-feature .sk-grid-thumb { width: 50%; flex-shrink: 0; }
  .sk-mosaik-feature .sk-mosaik-text { width: 50%; }
  .sk-mosaik-feature h3 { font-size: 20px; }
}
.sk-mosaik-grid { display: grid; grid-template-columns: 1fr; gap: 20px; }
@media (min-width: 640px) { .sk-mosaik-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; } }
.sk-mosaik-grid .sk-grid-card { min-width: 0; }
.sk-mosaik-grid .sk-grid-thumb { display: block; position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: linear-gradient(135deg, var(--sk-brand-500), var(--sk-brand-800)); }
.sk-mosaik-grid .sk-grid-thumb img { width: 100%; height: 100%; object-fit: cover; }
.sk-mosaik-grid .sk-grid-thumb .sk-big-fallback { font-size: 48px; }
.sk-mosaik-grid h3 { margin-top: 8px; font-size: 16px; font-weight: 700; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.sk-mosaik-grid .sk-grid-meta { margin-top: 4px; font-size: 12px; color: var(--sk-ink-500); }

/* Tombol Muat Lebih Banyak */
.sk-loadmore-wrap { text-align: center; padding: 8px 13px 24px; }
@media (min-width: 640px) { .sk-loadmore-wrap { padding-left: 0; padding-right: 0; } }
.sk-btn { display: inline-block; padding: 12px 28px; border: none; background: var(--sk-brand-600); color: #fff; font-family: var(--sk-font-head); font-size: 14px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.03em; cursor: pointer; }
.sk-btn:hover { background: var(--sk-brand-700); color: #fff; }
.sk-btn:disabled { opacity: 0.6; cursor: wait; }
.sk-loadmore-note { margin-top: 8px; font-size: 12px; color: var(--sk-ink-500); }

/* Pesan kosong (bukan berita palsu) */
.sk-empty { background: var(--sk-navy-600); border: 1px solid var(--sk-navy-500); padding: 40px 20px; text-align: center; margin-bottom: 24px; border-radius: 12px; }
.sk-empty h2 { font-family: var(--sk-font-head); font-size: 22px; font-weight: 800; margin-bottom: 8px; color: #fff; }
.sk-empty p { font-size: 14px; color: var(--sk-ink-700); line-height: 1.6; max-width: 480px; margin: 0 auto; }

/* ---------- Sidebar ---------- */
.sk-sidebar section { margin-bottom: 24px; padding: 0 13px; }
@media (min-width: 640px) { .sk-sidebar section { padding: 0; } }
.sk-widget-title { font-family: var(--sk-font-head); font-size: 20px; font-weight: 800; color: var(--sk-ink-900); margin-bottom: 12px; }
.sk-side-list li { border-bottom: 1px solid #f3f4f6; padding-bottom: 12px; margin-bottom: 12px; }
.sk-side-list li:last-child { border-bottom: 0; padding-bottom: 0; margin-bottom: 0; }
.sk-side-list a { font-size: 14px; font-weight: 600; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.sk-side-list a:hover { color: var(--sk-brand-600); }
.sk-social-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.sk-social-grid a { display: block; text-align: center; border: 1px solid #e5e7eb; border-radius: 4px; padding: 8px 4px; font-size: 13px; font-weight: 600; background: #fff; }
.sk-social-grid a:hover { border-color: var(--sk-brand-600); color: var(--sk-brand-600); }
.sk-sidebar .widget { margin-bottom: 24px; }
.sk-sidebar .widgettitle, .sk-sidebar .widget-title { font-family: var(--sk-font-head); font-size: 20px; font-weight: 800; margin-bottom: 12px; }

/* ---------- Footer: satu bar gradasi biru (v0.6.0) ---------- */
.ktn-footer { position: relative; overflow: hidden; margin-top: 24px; color: #fff; background: linear-gradient(to bottom, var(--sk-paper) 0%, #12233f 100%); }
/* Aksen merah di sudut kanan bawah (v0.6.1): tidak menyentuh tepi
   atas supaya batas dengan halaman tetap tidak kelihatan. */
.ktn-footer::before { content: ""; position: absolute; inset: 0; background: radial-gradient(120% 130% at 100% 100%, rgba(230, 6, 37, .75) 0%, rgba(230, 6, 37, .30) 35%, transparent 60%); pointer-events: none; }
.ktn-footer-bar { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px 20px; padding-top: 20px; padding-bottom: 20px; }
.ktn-footer-logo { font-family: var(--sk-font-head); font-size: 26px; font-weight: 900; color: #fff; text-transform: uppercase; letter-spacing: -0.02em; line-height: 1; }
.ktn-footer-logo span { background: var(--sk-brand-500); color: #fff; border-radius: 4px; padding: 2px 6px; margin-left: 2px; }
.ktn-footer-logo img { height: 40px; width: auto; max-width: 220px; object-fit: contain; }
.ktn-footer-nav { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 16px; }
.ktn-footer-nav ul { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 16px; list-style: none; margin: 0; padding: 0; }
.ktn-footer-nav a { font-size: 14px; font-weight: 600; color: #fff; white-space: nowrap; }
.ktn-footer-nav a:hover { color: #fecaca; }
.ktn-footer-nav a.is-disabled { color: rgba(255, 255, 255, .6); cursor: default; }
.ktn-footer-nav a.is-disabled:hover { color: rgba(255, 255, 255, .6); }
.ktn-footer-home { display: inline-flex; }
.ktn-footer-home svg { width: 20px; height: 20px; display: block; }
.ktn-footer-social { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; }
.ktn-footer-social a { display: inline-flex; color: #fff; }
.ktn-footer-social a svg { width: 20px; height: 20px; display: block; }
.ktn-footer-social a:hover { color: var(--sk-brand-500); }
.ktn-footer-copy { position: relative; z-index: 1; text-align: center; font-size: 12px; color: rgba(255, 255, 255, .85); padding-bottom: 18px; }
@media (min-width: 992px) {
  .ktn-footer-bar { flex-wrap: nowrap; }
  .ktn-footer-nav { padding: 0 24px; border-left: 1px solid rgba(255, 255, 255, .28); border-right: 1px solid rgba(255, 255, 255, .28); }
}
@media (max-width: 991px) { .ktn-footer-bar { justify-content: center; text-align: center; } }

/* ---------- Single / arsip ---------- */
.sk-breadcrumb { font-size: 12px; color: var(--sk-ink-500); margin-bottom: 12px; padding: 0 13px; }
@media (min-width: 640px) { .sk-breadcrumb { padding: 0; } }
.sk-breadcrumb a:hover { color: var(--sk-brand-600); }
/* Tanpa bingkai kartu (v0.2.17): artikel duduk langsung di atas latar
   halaman, seperti acuan — hanya ada jarak dalam, tanpa kotak putih. */
.sk-single { padding: 0 13px; margin-bottom: 24px; }
@media (min-width: 640px) { .sk-single { padding: 0; } }
.sk-single h1 { font-family: var(--sk-font-head); font-size: 26px; font-weight: 800; line-height: 1.3; margin: 12px 0; }
@media (min-width: 640px) { .sk-single h1 { font-size: 32px; } }
.sk-byline { font-size: 13px; color: var(--sk-ink-500); border-bottom: 1px solid var(--sk-border); padding-bottom: 12px; margin-bottom: 16px; }
.sk-byline strong { color: var(--sk-ink-700); }
/* Baris penulis header artikel (v0.2.17, ala acuan): foto + nama di
   kiri, tombol bagikan di kanan; tanggal + views di baris bawahnya. */
.sk-author-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin: 12px 0 8px; }
.sk-author { display: flex; align-items: center; gap: 10px; min-width: 0; }
.sk-author-row .sk-byline-name { font-size: 15px; font-weight: 600; }
.sk-article-date { font-size: 13px; color: var(--sk-ink-500); margin: 0 0 16px; }
.sk-single figure { margin: 0 0 16px; }
.sk-single figure img { width: 100%; height: auto; }
/* Hero video (Format Video, v0.2.14): pemutar YouTube 16:9. */
.sk-video-hero { aspect-ratio: 16 / 9; margin: 0 0 16px; background: #000; }
.sk-video-hero iframe { width: 100%; height: 100%; border: 0; display: block; }

/* Pemutar Shorts vertikal di halaman detail (v0.7.14): video tegak
   9:16, di tengah, lebar maks 400px — mirip tampilan Shorts. */
.sk-shorts-hero { aspect-ratio: 9 / 16; max-width: 400px; margin: 0 auto 16px; background: #000; border-radius: 10px; overflow: hidden; }
.sk-shorts-hero iframe { width: 100%; height: 100%; border: 0; display: block; }
.sk-shorts-hero img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Susunan ala Reels di halaman detail Shorts (v0.7.15, acuan
   Instagram): desktop video di kiri, kotak deskripsi di kanan;
   HP menumpuk — video di atas, deskripsi di bawah. */
.sk-shorts-layout { display: grid; grid-template-columns: 1fr; gap: 16px; margin: 0 0 16px; }
@media (min-width: 768px) {
	.sk-shorts-layout { grid-template-columns: 5fr 7fr; align-items: stretch; }
}
.sk-shorts-layout .sk-shorts-hero { margin: 0; max-width: none; }
@media (max-width: 767px) {
	.sk-shorts-layout .sk-shorts-hero { max-width: 400px; margin: 0 auto; }
}
.sk-shorts-desc { background: var(--sk-navy-600); border: 1px solid var(--sk-navy-500); border-radius: 10px; padding: 16px 18px; }
.sk-shorts-desc-empty { color: var(--sk-ink-500); }
/* Kotak deskripsi sama tinggi dengan video + isi bisa di-scroll
   (v0.7.16): desktop saja. min-height: 0 membiarkan kotak
   mengecil mengikuti tinggi video (bukan memanjangkan baris
   grid); judul "Deskripsi" tetap terlihat, teksnya yang scroll. */
@media (min-width: 768px) {
	.sk-shorts-desc { min-height: 0; overflow: hidden; display: flex; flex-direction: column; }
	.sk-shorts-desc .sk-content { overflow-y: auto; min-height: 0; flex: 1; }
}
.sk-single figcaption { font-size: 12px; color: var(--sk-ink-500); margin-top: 6px; }
.sk-content { font-size: calc(var(--sk-article-fs, 1) * 17px); line-height: 1.8; color: var(--sk-ink-900); }
.sk-content p { margin-bottom: 16px; }
.sk-content h2, .sk-content h3 { font-family: var(--sk-font-head); margin: 24px 0 12px; }
.sk-content a { color: var(--sk-brand-600); text-decoration: underline; }
.sk-content img { max-width: 100%; height: auto; }
.sk-share { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--sk-border); }
.sk-share > span { display: block; font-size: 14px; font-weight: 700; margin-bottom: 10px; }
/* Tombol bagikan ikon bundar (v0.2.17): dipakai di baris penulis (atas)
   dan di bawah artikel ("Share Link"). */
.sk-share-icons { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.sk-share-btn { width: 36px; height: 36px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: #fff; border: 0; padding: 0; cursor: pointer; flex-shrink: 0; text-decoration: none; }
.sk-share-btn svg { width: 18px; height: 18px; }
.sk-share-btn:hover { opacity: 0.85; }
.sk-share-fb { background: #1877f2; }
.sk-share-wa { background: #25d366; }
.sk-share-x { background: #000; }
.sk-share-tg { background: #229ed9; }
.sk-share-copy { background: #6b7280; }
.sk-share-copy.is-copied { background: #16a34a; }
/* Tag artikel di bawah Share Link (v0.2.20, ala acuan): judul "Tag"
   + garis merah pendek, pil berawalan # dengan warna berputar. */
.sk-tags { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--sk-border); }
.sk-tags-title { display: flex; align-items: center; gap: 8px; font-family: var(--sk-font-head); font-size: 18px; font-weight: 800; margin: 0 0 12px; }
.sk-tags-title::after { content: ""; width: 24px; height: 3px; background: var(--sk-brand-600); }
.sk-tags-list { display: flex; flex-wrap: wrap; gap: 8px; }
.sk-tag-pill { display: inline-block; padding: 6px 14px; border-radius: 6px; color: #fff; font-size: 13px; font-weight: 600; text-decoration: none; }
.sk-tag-pill:hover { opacity: 0.85; color: #fff; }
/* Kotak "Baca Juga" di tengah artikel (v0.2.18, otomatis mengikuti
   panjang artikel; tampilan ala acuan v0.2.19): ikon kutip ungu +
   label merah + judul tautan, latar putih tanpa garis. */
.sk-baca-juga { display: flex; align-items: flex-start; gap: 12px; background: #fff; padding: 14px 16px; margin: 20px 0; }
.sk-baca-juga-quote { font-family: Georgia, 'Times New Roman', serif; font-size: 52px; line-height: 0.9; color: #4f46e5; flex-shrink: 0; }
.sk-baca-juga-body { min-width: 0; }
.sk-baca-juga-label { display: block; font-size: 14px; font-weight: 700; color: var(--sk-brand-600); margin-bottom: 2px; }
.sk-baca-juga-title { font-family: var(--sk-font-head); font-size: 18px; font-weight: 700; line-height: 1.4; color: var(--sk-ink-900); text-decoration: none; }
.sk-baca-juga-title:hover { color: var(--sk-brand-600); }
.sk-archive-head { margin-bottom: 20px; padding: 0 13px; }
@media (min-width: 640px) { .sk-archive-head { padding: 0; } }
.sk-archive-head h1 { font-family: var(--sk-font-head); font-size: 28px; font-weight: 800; }
.sk-archive-head p { margin-top: 6px; font-size: 14px; color: var(--sk-ink-500); line-height: 1.6; }
.sk-pagination { display: flex; gap: 6px; flex-wrap: wrap; justify-content: center; padding: 16px 0 8px; }
.sk-pagination .page-numbers { display: inline-block; padding: 8px 14px; border: 1px solid #e5e7eb; background: #fff; font-size: 14px; font-weight: 600; }
.sk-pagination .page-numbers.current { background: var(--sk-brand-600); border-color: var(--sk-brand-600); color: #fff; }
.sk-pagination a:hover { border-color: var(--sk-brand-600); color: var(--sk-brand-600); }

/* Bar filter + kolom kategori + daftar halaman Indeks (v0.2.41, ala Detik). */
.sk-indeks-bar { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; background: #f3f4f6; padding: 12px 14px; margin-bottom: 24px; }
.sk-indeks-group { display: flex; align-items: center; gap: 8px; min-width: 0; }
.sk-indeks-bar label { font-size: 12px; font-weight: 700; letter-spacing: .02em; color: var(--sk-ink); white-space: nowrap; }
.sk-indeks-bar input[type="date"], .sk-indeks-bar select { padding: 7px 8px; border: 1px solid #d1d5db; background: #fff; font: inherit; font-size: 14px; color: var(--sk-ink); }
.sk-indeks-bar select { max-width: 180px; }
.sk-indeks-cari { padding: 8px 18px; border: 0; background: #005baa; color: #fff; font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; white-space: nowrap; }
.sk-indeks-cari:hover { background: #004578; }
.sk-indeks-wrap { display: flex; gap: 28px; align-items: flex-start; }
.sk-indeks-cats { flex: 0 0 180px; }
.sk-indeks-cats ul { list-style: none; margin: 0; padding: 0; }
.sk-indeks-cats li { border-bottom: 1px solid var(--sk-border); }
.sk-indeks-cats a { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 12px 2px; font-size: 15px; font-weight: 600; color: var(--sk-ink); }
.sk-indeks-cats a:hover { color: var(--sk-brand-600); }
.sk-indeks-cats a.is-active { color: #ea580c; }
.sk-indeks-cats a span { color: var(--sk-ink-500); font-weight: 400; }
.sk-indeks-list { flex: 1; min-width: 0; }
.sk-indeks-item { display: flex; gap: 16px; padding-bottom: 20px; margin-bottom: 20px; border-bottom: 1px solid var(--sk-border); }
.sk-indeks-item:last-child { border-bottom: 0; }
.sk-indeks-thumb { flex: 0 0 200px; aspect-ratio: 4 / 3; overflow: hidden; background: #f3f4f6; }
.sk-indeks-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sk-indeks-body h2 { font-family: var(--sk-font-head); font-size: 20px; font-weight: 700; line-height: 1.35; }
.sk-indeks-body h2 a { color: var(--sk-ink); }
.sk-indeks-body h2 a:hover { color: var(--sk-brand-600); }
.sk-indeks-time { margin-top: 8px; font-size: 13px; color: var(--sk-ink-500); }
@media (max-width: 767px) {
	.sk-indeks-cats { display: none; }
	.sk-indeks-thumb { flex-basis: 112px; }
	.sk-indeks-body h2 { font-size: 16px; }
}
/* Tanpa bingkai kartu (v0.2.21, seperti artikel): komentar duduk
   langsung di atas latar halaman. */
.sk-comments { padding: 0 13px; margin-bottom: 24px; }
@media (min-width: 640px) { .sk-comments { padding: 0; } }
/* Komentar ala kabartimteng (v0.2.21): judul + jumlah, daftar polos
   tanpa avatar, form 3 kolom. */
.sk-comments-title { font-family: var(--sk-font-head); font-size: 18px; font-weight: 800; margin: 0 0 12px; }
.sk-comments-count { font-size: 14px; font-weight: 400; color: var(--sk-ink-500); }
.sk-comment-list { list-style: none; margin: 0 0 16px; padding: 0; }
.sk-comment-list li { border-bottom: 1px solid var(--sk-border); padding-bottom: 12px; margin-bottom: 12px; }
.sk-comment-list li:last-child { border-bottom: 0; padding-bottom: 0; margin-bottom: 0; }
.sk-comment-head { display: flex; align-items: center; gap: 8px; font-size: 14px; margin: 0 0 4px; }
.sk-comment-head .avatar { border-radius: 50%; flex-shrink: 0; }
.sk-comment-author { font-weight: 700; color: var(--sk-ink-900); }
.sk-comment-date { color: var(--sk-ink-500); }
.sk-comment-body { font-size: 15px; line-height: 1.7; color: var(--sk-ink-900); }
.sk-comment-body p { margin: 0 0 8px; }
.sk-comment-body p:last-child { margin-bottom: 0; }
.sk-comment-awaiting { font-size: 13px; color: #b45309; background: #fef3c7; border-radius: 6px; padding: 6px 10px; margin: 0 0 8px; }
.sk-comments-empty { font-size: 14px; color: var(--sk-ink-500); margin: 0 0 16px; }
.sk-comment-nav { margin: 16px 0; font-size: 14px; }
.sk-comment-nav .page-numbers { display: inline-block; padding: 4px 10px; border: 1px solid #e5e7eb; border-radius: 6px; margin-right: 4px; }
.sk-comment-nav .page-numbers.current { background: var(--sk-brand-600); border-color: var(--sk-brand-600); color: #fff; }
.comment-respond { margin-top: 0; }
.comment-respond .comment-reply-title { font-family: var(--sk-font-head); font-size: 17px; font-weight: 800; margin: 0 0 4px; }
/* Pelipat form komentar (v0.2.21, ala kabartimteng). */
.sk-comment-toggle { margin-top: 20px; }
.sk-comment-toggle-btn { background: var(--sk-brand-600); color: #fff; border: 0; border-radius: 6px; padding: 10px 20px; font-size: 14px; font-weight: 700; cursor: pointer; }
.sk-comment-toggle-btn:hover { background: #b91c1c; }
.sk-comment-form-wrap { margin-top: 16px; }
.sk-comment-form-wrap[hidden] { display: none; }
.sk-comment-notes { font-size: 13px; color: var(--sk-ink-500); margin: 0 0 12px; }
.comment-form-comment label, .comment-form-author label, .comment-form-email label { display: block; font-size: 14px; font-weight: 600; margin-bottom: 4px; }
.sk-comment-count { float: right; font-size: 12px; font-weight: 400; color: var(--sk-ink-500); }
.comment-form-comment textarea, .comment-form-author input, .comment-form-email input { width: 100%; border: 1px solid #d1d5db; border-radius: 6px; padding: 10px 12px; font-size: 15px; font-family: inherit; }
.comment-form-comment textarea:focus, .comment-form-author input:focus, .comment-form-email input:focus { border-color: var(--sk-brand-600); outline: none; }
.comment-form-comment, .comment-form-author, .comment-form-email { margin: 0 0 12px; }
.sk-comment-submit { background: var(--sk-brand-600); color: #fff; border: 0; border-radius: 6px; padding: 10px 20px; font-size: 14px; font-weight: 700; cursor: pointer; }
.sk-comment-submit:hover { background: #b91c1c; }
/* Bilah progres membaca (v0.2.22, ala kabartimteng): garis gradasi
   brand di tepi atas layar, di atas menu menempel. */
.sk-reading-progress { position: fixed; left: 0; top: 0; z-index: 70; height: 3px; width: 0; background: linear-gradient(to right, var(--sk-brand-600), var(--sk-accent-500), var(--sk-brand-600)); transition: width 0.1s; }
/* Breadcrumb + perkakas artikel sejajar (v0.2.23, ala kabartimteng):
   breadcrumb kiri, Dengarkan + ukuran huruf kanan, satu baris. */
.sk-crumb-tools { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 12px; margin-bottom: 12px; padding: 0 13px; }
@media (min-width: 640px) { .sk-crumb-tools { padding: 0; } }
.sk-crumb-tools .sk-breadcrumb { margin-bottom: 0; padding: 0; }
.sk-crumb-tools .sk-article-tools { margin: 0; }
/* Perkakas artikel (v0.2.22, ala kabartimteng): Dengarkan + ukuran
   huruf, di atas judul. */
.sk-article-tools { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin: 0; }
.sk-listen-btn { display: inline-flex; align-items: center; gap: 6px; border: 1px solid #d1d5db; border-radius: 6px; background: #fff; padding: 6px 10px; font-size: 12px; font-weight: 600; color: var(--sk-ink-900); cursor: pointer; }
.sk-listen-btn:hover { border-color: var(--sk-brand-600); color: var(--sk-brand-600); }
.sk-listen-stop { border: 1px solid #d1d5db; border-radius: 6px; background: #fff; padding: 6px 8px; font-size: 12px; cursor: pointer; }
.sk-listen-stop:hover { border-color: var(--sk-brand-600); color: var(--sk-brand-600); }
.sk-fontsize { display: inline-flex; align-items: center; gap: 4px; }
.sk-fontsize-label { font-size: 12px; font-weight: 600; color: var(--sk-ink-500); margin-right: 4px; }
.sk-fs-btn { border: 0; border-radius: 6px; background: #f3f4f6; padding: 6px 8px; font-size: 12px; font-weight: 700; color: var(--sk-ink-900); cursor: pointer; }
.sk-fs-btn:hover { background: #e5e7eb; }
.sk-fs-btn.is-active { background: linear-gradient(to bottom, var(--sk-brand-500), var(--sk-brand-700)); color: #fff; }
.sk-backtotop { position: fixed; right: 16px; bottom: 16px; z-index: 60; display: none; width: 42px; height: 42px; border: none; border-radius: 50%; background: var(--sk-brand-600); color: #fff; font-size: 18px; cursor: pointer; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25); }
.sk-backtotop.show { display: block; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}

/* ------------------------------------------------------------------ */
/* Widget Daftar Berita v0.1.2                                         */
/* ------------------------------------------------------------------ */
.sk-wlist-num-list li, .sk-wlist-list li { display: flex; gap: 12px; border-bottom: 1px solid #f3f4f6; padding-bottom: 12px; margin-bottom: 12px; }
.sk-wlist-num-list li:last-child, .sk-wlist-list li:last-child { border-bottom: 0; padding-bottom: 0; margin-bottom: 0; }
.sk-wlist-num { flex-shrink: 0; display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; background: #111827; color: #fff; font-size: 14px; font-weight: 800; }
.sk-wlist-body { min-width: 0; }
.sk-wlist-title { font-size: 14px; font-weight: 600; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.sk-wlist-title:hover { color: var(--sk-brand-600); }
.sk-wlist-meta { margin-top: 4px; font-size: 12px; color: var(--sk-ink-500); }
.sk-wlist-cat { color: var(--sk-brand-600); font-weight: 700; }
.sk-wlist-cat a { color: var(--sk-brand-600); }
.sk-wlist-thumb { flex-shrink: 0; width: 96px; display: block; }
.sk-wlist-thumb img { width: 100%; height: auto; display: block; }
.sk-wlist-fallback { display: flex; align-items: center; justify-content: center; width: 96px; height: 54px; background: linear-gradient(135deg, var(--sk-brand-600), var(--sk-accent-500)); color: rgba(255, 255, 255, 0.85); font-size: 28px; font-weight: 900; }
.sk-wlist-featured-img { display: block; margin-bottom: 8px; }
.sk-wlist-featured-img img { width: 100%; height: auto; display: block; }
.sk-wlist-featured-fallback { display: flex; align-items: center; justify-content: center; width: 100%; height: 150px; background: linear-gradient(135deg, var(--sk-brand-600), var(--sk-accent-500)); color: rgba(255, 255, 255, 0.85); font-size: 56px; font-weight: 900; }
.sk-wlist-featured-cat { font-size: 12px; font-weight: 700; }
.sk-wlist-featured-cat a { color: var(--sk-brand-600); }
.sk-wlist-featured-title { margin-top: 2px; font-size: 16px; font-weight: 800; line-height: 1.35; }
.sk-wlist-featured-title a:hover { color: var(--sk-brand-600); }
.sk-wlist-featured-date { margin-top: 2px; font-size: 12px; color: var(--sk-ink-500); }
.sk-wlist-featured .sk-wlist-list { margin-top: 12px; }
.sk-wlist-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 12px; }
.sk-wlist-grid-thumb { display: block; }
.sk-wlist-grid-thumb img { width: 100%; height: auto; display: block; }
.sk-wlist-grid-fallback { display: flex; align-items: center; justify-content: center; width: 100%; height: 78px; background: linear-gradient(135deg, var(--sk-brand-600), var(--sk-accent-500)); color: rgba(255, 255, 255, 0.85); font-size: 32px; font-weight: 900; }
.sk-wlist-grid-cat { margin-top: 6px; font-size: 12px; font-weight: 700; }
.sk-wlist-grid-cat a { color: var(--sk-brand-600); }
.sk-wlist-grid-title { margin-top: 2px; font-size: 14px; font-weight: 700; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.sk-wlist-grid-title a:hover { color: var(--sk-brand-600); }
.sk-wlist-grid-date { margin-top: 2px; font-size: 12px; color: var(--sk-ink-500); }

/* ------------------------------------------------------------------ */
/* Optimasi render DOM (v0.2.11).                                     */
/* content-visibility: auto — browser melewati layout/paint elemen di  */
/* bawah lipatan sampai mendekati viewport, jadi beban render saat     */
/* muat awal berkurang (terutama di HP lemah). contain-intrinsic-size: */
/* auto <perkiraan> menjaga tinggi placeholder supaya halaman tidak    */
/* melompat saat konten dirender (CLS); setelah sekali dirender,       */
/* browser mengingat tinggi aslinya. Hanya untuk konten bawah lipatan */
/* (kartu feed, blok kategori, widget sidebar, footer); hero, strip   */
/* terkait, dan rel Tontonan tidak disentuh. Browser lama yang tidak   */
/* mendukung akan mengabaikan aturan ini begitu saja.                  */
/* ------------------------------------------------------------------ */
.sk-article-card { content-visibility: auto; contain-intrinsic-size: auto 180px; }
.sk-block { content-visibility: auto; contain-intrinsic-size: auto 500px; }
.widget { content-visibility: auto; contain-intrinsic-size: auto 300px; }
.ktn-footer { content-visibility: auto; contain-intrinsic-size: auto 140px; }
