/* ==========================================================================
   Tavakal Consulting: design tokens dan gaya dasar
   Sumber desain: "Tavakal Website.dc.html" artboard 1a "Sistem Rapi"
   ========================================================================== */

:root{
  /* Warna inti */
  --tv-navy:#12304A;
  --tv-blue:#1C7FB8;
  --tv-cyan:#29ABE2;
  --tv-amber:#F5A623;
  --tv-amber-dark:#B87200;
  --tv-surface:#F4F7FA;
  --tv-white:#FFFFFF;

  /* Turunan transparan, dipakai berulang di desain */
  --tv-navy-90:rgba(18,48,74,.9);
  --tv-navy-80:rgba(18,48,74,.8);
  --tv-navy-72:rgba(18,48,74,.72);
  --tv-navy-60:rgba(18,48,74,.6);
  --tv-navy-50:rgba(18,48,74,.5);
  --tv-navy-12:rgba(18,48,74,.12);
  --tv-navy-09:rgba(18,48,74,.09);

  /* Tipografi */
  --tv-font:'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --tv-fs-h1:46px;
  --tv-fs-h2:32px;
  --tv-fs-h3:20px;
  --tv-fs-body:17px;
  --tv-fs-small:13.5px;
  --tv-fs-eyebrow:11.5px;

  /* Layout */
  --tv-container:1200px;
  --tv-gutter:20px;
  --tv-radius:10px;
  --tv-radius-sm:6px;
  --tv-shadow:0 4px 20px rgba(18,48,74,.1);
  --tv-header-h:72px;
}

/* --------------------------------------------------------------------------
   Reset ringan
   -------------------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;
  font-family:var(--tv-font);
  font-size:16px;
  line-height:1.65;
  color:var(--tv-navy);
  background:var(--tv-white);
  -webkit-font-smoothing:antialiased;
}
img,svg,video{max-width:100%;height:auto;display:block}
a{color:var(--tv-blue);text-decoration:none;transition:color .18s ease}
a:hover{color:var(--tv-amber)}
h1,h2,h3,h4,h5,h6{
  margin:0 0 .5em;
  font-weight:800;
  line-height:1.15;
  letter-spacing:-.02em;
  color:var(--tv-navy);
}
h1{font-size:clamp(30px,5.2vw,var(--tv-fs-h1));line-height:1.1;letter-spacing:-.025em}
h2{font-size:clamp(24px,3.6vw,var(--tv-fs-h2))}
h3{font-size:var(--tv-fs-h3)}
p{margin:0 0 1.1em}
p:last-child{margin-bottom:0}
ul,ol{margin:0 0 1.1em;padding-left:1.25em}

/* Fokus terlihat, syarat aksesibilitas dasar */
:where(a,button,input,select,textarea,[tabindex]):focus-visible{
  outline:3px solid var(--tv-cyan);
  outline-offset:2px;
  border-radius:3px;
}

.tv-sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}
.tv-skip-link{
  position:absolute;left:-9999px;top:0;z-index:200;
  background:var(--tv-navy);color:#fff;padding:12px 20px;font-weight:700;
}
.tv-skip-link:focus{left:0;color:#fff}

/* --------------------------------------------------------------------------
   Layout dasar
   -------------------------------------------------------------------------- */
.tv-container{
  width:100%;
  max-width:var(--tv-container);
  margin-inline:auto;
  padding-inline:var(--tv-gutter);
}
.tv-section{padding-block:clamp(48px,7vw,70px)}
.tv-surface{background:var(--tv-surface)}
.tv-eyebrow{
  font-size:var(--tv-fs-eyebrow);
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--tv-blue);
  margin-bottom:14px;
}

/* --------------------------------------------------------------------------
   Tombol
   -------------------------------------------------------------------------- */
.tv-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:inherit;font-size:13px;font-weight:700;
  padding:12px 22px;border-radius:var(--tv-radius-sm);border:1px solid transparent;
  cursor:pointer;transition:background .18s ease,color .18s ease,border-color .18s ease;
  line-height:1.2;text-align:center;
}
.tv-btn--primary{background:var(--tv-cyan);color:#fff}
.tv-btn--primary:hover{background:var(--tv-blue);color:#fff}
.tv-btn--ghost{background:transparent;color:var(--tv-navy);border-color:var(--tv-navy-12)}
.tv-btn--ghost:hover{border-color:var(--tv-cyan);color:var(--tv-blue)}

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */
.tv-header{
  position:sticky;top:0;z-index:100;
  background:var(--tv-white);
  border-bottom:1px solid var(--tv-navy-09);
}
.tv-header__inner{
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  min-height:var(--tv-header-h);
}
.tv-logo img{height:34px;width:auto}
.tv-logo__text{font-size:19px;font-weight:800;color:var(--tv-navy)}

.tv-nav ul{display:flex;gap:30px;list-style:none;margin:0;padding:0}
.tv-nav a{
  font-size:var(--tv-fs-small);font-weight:600;color:var(--tv-navy);
  padding-bottom:3px;border-bottom:2px solid transparent;display:inline-block;
}
.tv-nav a:hover{color:var(--tv-blue)}
.tv-nav .current-menu-item > a,
.tv-nav .current_page_item > a,
.tv-nav .current-menu-ancestor > a{color:var(--tv-blue);border-bottom-color:var(--tv-blue)}

.tv-header__actions{display:flex;align-items:center;gap:12px}
.tv-header__phone{font-size:13px;font-weight:600;color:var(--tv-navy-60)}
.tv-header__phone:hover{color:var(--tv-blue)}

/* Panel menu mobile: tersembunyi secara bawaan, termasuk di desktop. */
.tv-mobile-nav{display:none}

/* Tombol menu mobile */
.tv-burger{
  display:none;background:none;border:0;padding:8px;cursor:pointer;
  color:var(--tv-navy);
}
.tv-burger svg{width:24px;height:24px;display:block}
.tv-burger__close{display:none}
.tv-burger[aria-expanded="true"] .tv-burger__open{display:none}
.tv-burger[aria-expanded="true"] .tv-burger__close{display:block}

@media (max-width:1024px){
  .tv-nav,
  .tv-header__phone{display:none}
  .tv-burger{display:block;order:3}

  .tv-header__actions{gap:8px}

  /* Panel menu mobile */
  .tv-mobile-nav{
    border-top:1px solid var(--tv-navy-09);
    padding:14px 0 22px;
  }
  .tv-mobile-nav.is-open{display:block}
  .tv-mobile-nav ul{list-style:none;margin:0;padding:0}
  .tv-mobile-nav li + li{border-top:1px solid var(--tv-navy-09)}
  .tv-mobile-nav a{
    display:block;padding:13px 0;
    font-size:15px;font-weight:600;color:var(--tv-navy);
  }
  .tv-mobile-nav a:hover{color:var(--tv-blue)}
  .tv-mobile-nav__phone{
    display:block;margin-top:16px;font-size:14px;font-weight:600;color:var(--tv-navy-60);
  }
}
@media (max-width:520px){
  .tv-header__actions .tv-btn{padding:10px 14px;font-size:12.5px}
  .tv-logo img{height:28px}
}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */
.tv-footer{background:var(--tv-navy);color:rgba(255,255,255,.78);margin-top:0}
.tv-footer a{color:rgba(255,255,255,.78)}
.tv-footer a:hover{color:var(--tv-amber)}


.tv-footer__cols{
  padding-block:clamp(36px,5vw,52px);
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:36px;
}
.tv-footer__col h3{
  color:rgba(255,255,255,.45);
  font-size:11.5px;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;margin-bottom:14px;
}
.tv-footer__col p{font-size:14px;line-height:1.7;color:rgba(255,255,255,.72)}
.tv-footer__label{color:#fff;font-weight:700;font-size:14px}

/* Kolom identitas di footer */
.tv-footer__nama{font-size:15px;font-weight:700;color:#fff;margin-bottom:6px}
.tv-footer__tagline{font-size:14px;color:rgba(255,255,255,.65);margin-bottom:16px}
.tv-footer__brand .tv-footer__tag{font-size:13px}

.tv-footer__bottom{
  border-top:1px solid rgba(255,255,255,.14);
  padding-block:20px;
  display:flex;flex-wrap:wrap;gap:10px;
  align-items:center;justify-content:space-between;
  font-size:12.5px;color:rgba(255,255,255,.5);
}
.tv-footer__tag{color:var(--tv-amber);font-weight:700;font-size:12.5px}

/* Blok ajakan berlatar navy, dibangun di konten halaman lewat Elementor.
   Garis bawahnya menyambung ke kolom footer, seperti dokumen desain. */
.tv-cta-navy{border-bottom:1px solid rgba(255,255,255,.14)}

/* --------------------------------------------------------------------------
   Konten artikel bawaan (halaman non Elementor, single post, arsip)
   -------------------------------------------------------------------------- */
.tv-page-head{background:var(--tv-surface);border-bottom:1px solid var(--tv-navy-09);padding-block:clamp(40px,6vw,60px)}
.tv-breadcrumb{font-size:12px;font-weight:600;color:var(--tv-navy-50);margin-bottom:18px}
.tv-page-head p{font-size:18px;color:var(--tv-navy-72);max-width:680px}

.tv-prose{max-width:760px}
.tv-prose h2{margin-top:1.6em}
.tv-prose h3{margin-top:1.4em}
.tv-prose img{border-radius:var(--tv-radius);margin-block:1.4em}
.tv-prose table{
  width:100%;border-collapse:collapse;margin:1.6em 0;font-size:15px;
  display:block;overflow-x:auto;white-space:nowrap;
}
.tv-prose table thead th{
  background:var(--tv-navy);color:#fff;font-weight:700;text-align:left;
}
.tv-prose table th,.tv-prose table td{
  padding:11px 14px;border:1px solid var(--tv-navy-09);vertical-align:top;
}
.tv-prose table tbody tr:nth-child(even){background:var(--tv-surface)}
@media(min-width:760px){
  .tv-prose table{display:table;white-space:normal}
}
.tv-prose ul,.tv-prose ol{margin-bottom:1.2em}
.tv-prose li{margin-bottom:.45em}
.tv-prose li>strong:first-child{color:var(--tv-navy)}

.tv-prose blockquote{
  margin:1.6em 0;padding:4px 0 4px 22px;
  border-left:3px solid var(--tv-cyan);color:var(--tv-navy-80);font-style:italic;
}
.tv-meta{font-size:13px;color:var(--tv-navy-50);margin-bottom:24px}

.tv-grid-posts{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:28px;
}
.tv-card{
  background:#fff;border:1px solid var(--tv-navy-09);
  border-radius:var(--tv-radius);overflow:hidden;
  display:flex;flex-direction:column;
  transition:box-shadow .2s ease,transform .2s ease;
}
.tv-card:hover{box-shadow:var(--tv-shadow);transform:translateY(-2px)}
.tv-card__thumb img{width:100%;aspect-ratio:16/9;object-fit:cover}
.tv-card__body{padding:20px 22px 24px}
.tv-card__body h3{font-size:18px;margin-bottom:8px}
.tv-card__body h3 a{color:var(--tv-navy)}
.tv-card__body h3 a:hover{color:var(--tv-blue)}
.tv-card__excerpt{font-size:14.5px;color:var(--tv-navy-72)}

.tv-pagination{margin-top:44px;display:flex;gap:8px;flex-wrap:wrap}
.tv-pagination .page-numbers{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:40px;height:40px;padding:0 12px;
  border:1px solid var(--tv-navy-12);border-radius:var(--tv-radius-sm);
  font-size:14px;font-weight:600;color:var(--tv-navy);
}
.tv-pagination .page-numbers.current{background:var(--tv-navy);color:#fff;border-color:var(--tv-navy)}
.tv-pagination a.page-numbers:hover{border-color:var(--tv-cyan);color:var(--tv-blue)}

/* --------------------------------------------------------------------------
   Penyelarasan dengan Elementor
   Container tema tidak boleh mengunci lebar section full width Elementor.
   -------------------------------------------------------------------------- */
.elementor-page .tv-main{padding:0}
.tv-main{min-height:40vh}

/* Hormati preferensi pengguna yang mengurangi animasi */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important}
}

/* --------------------------------------------------------------------------
   Formulir pencarian
   -------------------------------------------------------------------------- */
.tv-searchform{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:24px}
.tv-searchform input[type="search"]{
  flex:1 1 220px;
  font-family:inherit;font-size:15px;
  padding:11px 14px;
  border:1px solid var(--tv-navy-12);
  border-radius:var(--tv-radius-sm);
  background:#fff;color:var(--tv-navy);
}
.tv-searchform input[type="search"]::placeholder{color:var(--tv-navy-50)}
.tv-searchform input[type="search"]:focus{border-color:var(--tv-cyan)}

/* Menu footer */
.tv-footer__menu{list-style:none;margin:0;padding:0;font-size:14.5px}
.tv-footer__menu li + li{margin-top:8px}

/* --------------------------------------------------------------------------
   Utilitas untuk elemen desain yang tidak punya widget bawaan Elementor.
   Dipakai sebagai markup kecil di dalam widget Heading dan Text Editor,
   sehingga teksnya tetap bisa diedit di Elementor sementara gayanya dari tema.
   Nilai diambil dari dokumen desain artboard 1a.
   -------------------------------------------------------------------------- */

/* Pil eyebrow di hero */
.tv-pill{
  display:inline-block;
  font-size:12px;font-weight:700;
  color:var(--tv-blue);background:rgba(41,171,226,.1);
  padding:8px 14px;border-radius:100px;
}

/* Pil nomor pada kartu layanan */
.tv-pill-num{
  display:inline-block;
  font-size:15px;font-weight:800;line-height:1;
  padding:7px 11px;border-radius:7px;
}
.tv-pill-num--cyan{color:var(--tv-blue);background:rgba(41,171,226,.12)}
.tv-pill-num--amber{color:var(--tv-amber-dark);background:rgba(245,166,35,.16)}
.tv-pill-num--putih{color:#fff;background:rgba(255,255,255,.14)}

/* Lencana centang pada kartu nilai */
.tv-badge{
  display:inline-flex;align-items:center;justify-content:center;
  width:24px;height:24px;border-radius:6px;
  font-size:13px;font-weight:800;
  margin-bottom:12px;
}
.tv-badge--cyan{background:var(--tv-cyan);color:#fff}
.tv-badge--amber{background:var(--tv-amber);color:var(--tv-navy)}

/* Baris judul dengan keterangan di ujung kanan, pola "Klien Saat Ini". */
.tv-judul-baris{
  display:flex;align-items:baseline;justify-content:space-between;
  gap:16px;flex-wrap:wrap;
}
.tv-judul-baris strong{font-size:20px;font-weight:800;color:var(--tv-navy)}
.tv-judul-baris span{font-size:13px;font-weight:400;color:rgba(18,48,74,.55)}

/* Label kecil di atas deretan logo partner */
.tv-label-kecil{
  font-size:13px;font-weight:700;color:rgba(18,48,74,.55);
}

/* Ukuran teks daftar bercentang Elementor.
   Diatur di sini karena kontrol tipografi widget icon-list tidak punya nama
   yang stabil antar versi, sehingga setelan lewat JSON template terabaikan. */
/* Spesifisitas disamakan dengan aturan tipografi global Kit Elementor
   (.elementor-widget-icon-list .elementor-icon-list-item > .elementor-icon-list-text),
   kalau tidak, ukuran dan bobot di sini kalah dan diam diam terabaikan. */
.elementor-widget-icon-list.tv-list .elementor-icon-list-item > .elementor-icon-list-text{line-height:1.55}
.elementor-widget-icon-list.tv-list--14 .elementor-icon-list-item > .elementor-icon-list-text{font-size:14px}
.elementor-widget-icon-list.tv-list--15 .elementor-icon-list-item > .elementor-icon-list-text{font-size:15px}
.elementor-widget-icon-list.tv-list--15-5 .elementor-icon-list-item > .elementor-icon-list-text{font-size:15.5px}
.elementor-widget-icon-list.tv-list--16 .elementor-icon-list-item > .elementor-icon-list-text{font-size:16px}

/* Baris kontak footer berdiri sendiri, jaraknya rapat seperti desain. */
.tv-footer__col p + p{margin-top:2px}

/* Pil nomor pada halaman dalam berukuran 13px, sedikit lebih kecil dari
   pil di kartu layanan homepage. */
.tv-pill-num--kecil{font-size:13px;padding:6px 10px}
.tv-pill-num--amberputih{color:var(--tv-amber);background:rgba(255,255,255,.14)}

/* Varian pil dan daftar untuk halaman Layanan. Nilai persis dari artboard 2b. */
.tv-pill-num--amber18{color:var(--tv-amber-dark);background:rgba(245,166,35,.18)}
.tv-pill-num--navy{color:var(--tv-amber);background:var(--tv-navy)}
.tv-pill-num--16{font-size:16px;padding:8px 12px}
.elementor-widget-icon-list.tv-list--tebal .elementor-icon-list-item > .elementor-icon-list-text{font-weight:600}

/* Tab lini layanan di kepala halaman */
.tv-tabs{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.tv-tab{
  font-size:13.5px;font-weight:700;color:var(--tv-navy);
  background:#fff;border:1px solid rgba(18,48,74,.12);
  padding:9px 16px;border-radius:100px;
}

/* Lencana nomor tahap di halaman Alur Kerja, warnanya pekat bukan transparan.
   Nilai dari artboard 2c. */
.tv-pill-num--14{font-size:14px;padding:7px 12px}
.tv-pill-num--pekat-cyan{color:#fff;background:var(--tv-cyan)}
.tv-pill-num--pekat-amber{color:var(--tv-navy);background:var(--tv-amber)}
.tv-pill-num--pekat-navy{color:var(--tv-amber);background:var(--tv-navy)}

/* --------------------------------------------------------------------------
   Halaman arsip artikel, mengikuti artboard 2e
   -------------------------------------------------------------------------- */
.tv-tabs--filter{margin-top:24px}
.tv-tab{text-decoration:none}
.tv-tab.is-aktif{background:var(--tv-navy);color:#fff;border-color:var(--tv-navy)}
.tv-tab:hover{color:var(--tv-blue)}
.tv-tab.is-aktif:hover{color:#fff}

.tv-lencana{
  display:inline-block;
  font-size:11.5px;font-weight:800;
  color:var(--tv-amber-dark);background:rgba(245,166,35,.18);
  padding:6px 12px;border-radius:100px;margin-bottom:16px;
}

.tv-utama__grid{
  display:grid;grid-template-columns:1.15fr .85fr;gap:44px;align-items:center;
}
.tv-utama h2{font-size:clamp(24px,4vw,32px);margin-bottom:14px}
.tv-utama h2 a{color:var(--tv-navy)}
.tv-utama h2 a:hover{color:var(--tv-blue)}
.tv-utama__ringkas{font-size:16px;color:var(--tv-navy-72);margin-bottom:16px}
.tv-meta-baris{display:flex;gap:8px;font-size:13px;color:var(--tv-navy-55, rgba(18,48,74,.55))}
.tv-utama__gambar img{border-radius:var(--tv-radius);width:100%}

.tv-gambar-kosong{
  display:flex;align-items:center;justify-content:center;
  aspect-ratio:16/9;border-radius:var(--tv-radius);
  border:1px dashed rgba(18,48,74,.18);
  font-size:12px;color:rgba(18,48,74,.4);
}

.tv-card__kat{
  font-size:11.5px;font-weight:800;color:var(--tv-blue);
  letter-spacing:.06em;margin-bottom:8px;
}
.tv-card__body h3{font-size:19px;line-height:1.3;margin-bottom:8px}
.tv-card__excerpt{font-size:14.5px;color:rgba(18,48,74,.7)}
.tv-card__meta{margin-top:12px;font-size:12.5px;color:rgba(18,48,74,.5)}

/* Ajakan penutup versi tema, dipakai halaman non Elementor. */
.tv-cta{
  background:var(--tv-navy);color:#fff;text-align:center;
  padding-block:56px 44px;
  border-bottom:1px solid rgba(255,255,255,.14);
}
.tv-cta h2{color:#fff;font-size:clamp(24px,3.4vw,28px);margin-bottom:12px}
.tv-cta p{max-width:560px;margin:0 auto 24px;font-size:15px;color:rgba(255,255,255,.7)}
.tv-btn--amber{background:var(--tv-amber);color:var(--tv-navy);font-size:15px;font-weight:800;padding:14px 26px}
.tv-btn--amber:hover{background:#ffb941;color:var(--tv-navy)}

@media (max-width:820px){
  .tv-utama__grid{grid-template-columns:1fr;gap:26px}
}

/* Kategori pajak memakai amber, selebihnya biru. Sesuai artboard 2e. */
.tv-kat--amber{color:var(--tv-amber-dark)}
.tv-lencana.tv-kat--amber{color:var(--tv-amber-dark);background:rgba(245,166,35,.18)}
.tv-card__kat.tv-kat--amber{color:var(--tv-amber-dark)}
/* Tab filter berukuran 13px, yang tidak aktif bobot 600. */
.tv-tabs--filter .tv-tab{font-size:13px;font-weight:600}
.tv-tabs--filter .tv-tab.is-aktif{font-weight:700}
/* Kotak gambar kosong berlatar surface seperti desain. */
.tv-gambar-kosong{background:var(--tv-surface)}

.tv-muat-lagi{margin-top:36px;text-align:center}

/* Kolom ajakan di footer beranda. Lebarnya lebih besar dari dua kolom lain,
   mengikuti grid 402/335/335 di artboard 1a. */
.tv-footer__cols:has(.tv-footer__ajak){grid-template-columns:1.2fr 1fr 1fr}
.tv-footer__ajak h2{color:#fff;font-size:clamp(26px,3.4vw,34px);margin-bottom:12px}
.tv-footer__ajak p{font-size:15.5px;color:rgba(255,255,255,.7);margin-bottom:24px}

/* --------------------------------------------------------------------------
   Hero beranda: dua kolom, panel kanan menempel ke tepi layar.
   Di artboard 1a panel abu membentang dari x691 sampai tepi kanan 1280,
   jadi section dibuat full width dan padding kiri kanan mengikuti container.
   -------------------------------------------------------------------------- */
/* Elementor tidak merender kelas kustom pada section, hanya pada widget,
   jadi hero ditarget lewat strukturnya: section penuh pertama di beranda. */
.home main .elementor-top-section:first-child > .elementor-container{max-width:100% !important}
.home main .elementor-top-section:first-child > .elementor-container > .elementor-column:first-child > .elementor-widget-wrap{
  padding:76px 44px 80px max(20px, calc((100vw - var(--tv-container)) / 2));
}
.home main .elementor-top-section:first-child > .elementor-container > .elementor-column:last-child > .elementor-widget-wrap{
  padding:76px max(20px, calc((100vw - var(--tv-container)) / 2)) 80px 48px;
}

/* Kartu nilai versi mendatar: lencana di kiri, teks di kanan. */
.tv-nilai{
  display:flex;gap:14px;align-items:flex-start;
  background:#fff;border:1px solid rgba(18,48,74,.1);
  border-radius:10px;padding:18px 20px;
}
.tv-nilai + .tv-nilai{margin-top:12px}
.tv-nilai--gelap{background:var(--tv-navy);border-color:var(--tv-navy)}
.tv-nilai__ikon{
  flex:none;display:inline-flex;align-items:center;justify-content:center;
  width:24px;height:24px;border-radius:6px;font-size:13px;font-weight:800;
}
.tv-nilai__judul{font-size:15px;font-weight:700;color:var(--tv-navy);margin-bottom:4px}
.tv-nilai__isi{font-size:13px;line-height:1.5;color:rgba(18,48,74,.6)}
.tv-nilai--gelap .tv-nilai__judul{color:#fff}
.tv-nilai--gelap .tv-nilai__isi{color:rgba(255,255,255,.65)}

/* Baris statistik hero dengan garis pemisah di atas. */
.tv-statistik{
  display:grid;grid-template-columns:repeat(3,1fr);gap:20px;
  border-top:1px solid rgba(18,48,74,.12);padding-top:22px;
}
.tv-statistik__angka{font-size:26px;font-weight:800;color:var(--tv-navy);line-height:1.2}
.tv-statistik__ket{font-size:12.5px;color:rgba(18,48,74,.6);margin-top:4px}

/* Baris judul dengan aksi di ujung kanan, pola header section Layanan. */
.tv-judul-aksi{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap}
.tv-judul-aksi a{font-size:13.5px;font-weight:700;color:var(--tv-blue)}

@media (max-width:900px){
  .tv-hero .elementor-column:first-child > .elementor-widget-wrap,
  .tv-hero .elementor-column:last-child > .elementor-widget-wrap{
    padding-left:20px;padding-right:20px;
  }
  .tv-statistik{grid-template-columns:1fr 1fr}
}

/* Label tombol tidak dipatahkan, di desain selalu satu baris. */
.elementor-button,.tv-btn{white-space:nowrap}

/* Tab lini di kepala halaman Layanan berada di kanan, sejajar tengah. */
.tv-tabs--kanan{justify-content:flex-end;margin-top:0}
@media (max-width:900px){ .tv-tabs--kanan{justify-content:flex-start;margin-top:20px} }

/* Kepala halaman arsip: teks di kiri, tab filter di kanan.
   Mengikuti artboard 2e yang memakai dua kolom 600/331. */
.tv-page-head--dua{
  display:grid;grid-template-columns:1.6fr 1fr;gap:32px;align-items:end;
}
.tv-page-head--dua .tv-tabs--filter{justify-content:flex-end;margin-top:0}
@media (max-width:820px){
  .tv-page-head--dua{grid-template-columns:1fr;align-items:start}
  .tv-page-head--dua .tv-tabs--filter{justify-content:flex-start}
}

/* Aturan tautan footer lebih spesifik dari kelas tombol, jadi warna teks
   tombol amber perlu ditegaskan di dalam konteks footer. */
.tv-footer a.tv-btn--amber{color:var(--tv-navy)}
.tv-footer a.tv-btn--amber:hover{color:var(--tv-navy)}

/* Jarak antara dua tombol di hero, mengikuti jeda pada artboard. */
.home main .elementor-top-section:first-child .elementor-inner-section .elementor-column:first-child .elementor-widget-button{
  margin-right:14px;
}

/* --------------------------------------------------------------------------
   Kartu lini layanan dan grid tahap, mengikuti artboard 1a
   -------------------------------------------------------------------------- */

/* Pil nomor menyatu dengan judul kartu dalam satu baris. */
.elementor-widget-heading h3 .tv-pill-num{
  margin-right:12px;vertical-align:middle;
}

/* Hashtag kartu dipisah garis tipis di atasnya. */
.tv-hashtag{
  margin-top:20px;padding-top:16px;
  border-top:1px solid rgba(18,48,74,.1);
}
.tv-hashtag--terang{border-top-color:rgba(255,255,255,.16)}

/* Enam tahap sebagai satu bidang menyatu: sudut hanya di ujung, celah antar
   sel diisi garis tipis, bukan jarak kosong. */
.tv-tahap{border-radius:0 !important;margin:0 !important}
.tv-tahap > .elementor-widget-wrap{padding:26px 24px 28px !important}
.tv-tahap--atas:first-child{border-top-left-radius:11px !important}
.tv-tahap--atas:last-child{border-top-right-radius:11px !important}
.tv-tahap--bawah:first-child{border-bottom-left-radius:11px !important}
.tv-tahap--bawah:last-child{border-bottom-right-radius:11px !important}
.tv-tahap:not(:first-child){border-left:0 !important}
.tv-tahap--bawah{border-top:0 !important}

/* --------------------------------------------------------------------------
   Halaman Layanan: kotak nomor dan grid sel daftar, mengikuti artboard 2b.
   Garis antar sel dibuat dari celah 1px yang memperlihatkan latar wadah,
   teknik yang sama dengan dokumen desain.
   -------------------------------------------------------------------------- */
.tv-kotak-num{
  display:flex;align-items:center;justify-content:center;
  width:44px;height:44px;border-radius:10px;
  font-size:16px;font-weight:800;
}
.tv-kotak-num--cyan{color:var(--tv-blue);background:rgba(41,171,226,.12)}
.tv-kotak-num--amber{color:var(--tv-amber-dark);background:rgba(245,166,35,.18)}
.tv-kotak-num--navy{color:var(--tv-amber);background:var(--tv-navy)}

.tv-sel-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:1px;
  background:rgba(18,48,74,.12);
  border:1px solid rgba(18,48,74,.12);
  border-radius:11px;overflow:hidden;
}
.tv-sel-grid > div{
  background:#fff;padding:20px 22px;
  font-size:15px;font-weight:600;line-height:1.45;color:var(--tv-navy);
  display:flex;align-items:center;
}
.tv-sel-grid--gelap{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.16)}
.tv-sel-grid--gelap > div{background:var(--tv-navy);color:#fff}

@media (max-width:700px){
  .tv-sel-grid{grid-template-columns:1fr}
}

/* --------------------------------------------------------------------------
   Alur kerja sebagai timeline vertikal, mengikuti artboard 2c.
   Kolom nomor selebar 56px berisi lencana bulat 40px dan garis penghubung.
   -------------------------------------------------------------------------- */
.tv-timeline{display:grid;grid-template-columns:56px 1fr;gap:0}
.tv-timeline__nomor{
  display:grid;place-items:start center;padding-top:4px;position:relative;
}
.tv-timeline__bulat{
  display:grid;place-items:center;width:40px;height:40px;border-radius:50%;
  color:#fff;font-size:14px;font-weight:800;
}
.tv-timeline__bulat--cyan{background:var(--tv-cyan)}
.tv-timeline__bulat--amber{background:var(--tv-amber);color:var(--tv-navy)}
.tv-timeline__bulat--navy{background:var(--tv-navy);color:var(--tv-amber)}
.tv-timeline__garis{
  position:absolute;top:44px;bottom:0;width:2px;
  background:rgba(18,48,74,.12);
}
.tv-timeline__isi{padding:0 0 34px 22px}
.tv-timeline__isi h3{font-size:22px;font-weight:800;margin:0 0 8px;line-height:1.2}
.tv-timeline__isi p{font-size:16px;line-height:1.6;color:rgba(18,48,74,.75);margin:0}
.tv-timeline > .tv-timeline__isi:last-child{padding-bottom:0}

@media (max-width:600px){
  .tv-timeline{grid-template-columns:44px 1fr}
  .tv-timeline__bulat{width:34px;height:34px;font-size:13px}
  .tv-timeline__garis{top:38px}
}

/* Kartu testimoni: kutipan di atas, atribusi didorong ke bawah,
   tinggi minimum mengikuti proporsi artboard 2d. */
.tv-testimoni > .elementor-widget-wrap{
  min-height:118px;display:flex;flex-direction:column;justify-content:space-between;
}

/* --------------------------------------------------------------------------
   Direktori Kantor Pelayanan Pajak
   -------------------------------------------------------------------------- */
.tv-kpp__grid{display:grid;grid-template-columns:1.6fr 1fr;gap:44px;align-items:start}
.tv-kpp__sub{font-size:22px;margin:0 0 14px}
.tv-kpp__sub + .tv-kpp__ket{margin-top:-6px}
.tv-kpp__ket{font-size:14.5px;color:rgba(18,48,74,.7);margin-bottom:16px}

.tv-fakta{margin:0 0 36px;display:grid;gap:0;border:1px solid rgba(18,48,74,.12);border-radius:11px;overflow:hidden}
.tv-fakta > div{display:grid;grid-template-columns:180px 1fr;gap:16px;padding:14px 18px;background:#fff}
.tv-fakta > div + div{border-top:1px solid rgba(18,48,74,.1)}
.tv-fakta dt{font-size:13px;font-weight:700;color:rgba(18,48,74,.55);margin:0}
.tv-fakta dd{margin:0;font-size:15px;font-weight:600;color:var(--tv-navy)}

.tv-wilayah{list-style:none;margin:0 0 22px;padding:0;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1px;
  background:rgba(18,48,74,.12);border:1px solid rgba(18,48,74,.12);border-radius:11px;overflow:hidden}
.tv-wilayah li{background:#fff;padding:13px 18px;font-size:14.5px;font-weight:600;color:var(--tv-navy)}

.tv-sumber{font-size:13px;color:rgba(18,48,74,.55);margin-bottom:10px}
.tv-sumber--lama{color:var(--tv-amber-dark)}
.tv-sanggahan{font-size:12.5px;line-height:1.6;color:rgba(18,48,74,.5);
  border-top:1px solid rgba(18,48,74,.1);padding-top:14px;margin-top:14px}

.tv-kpp__aside{position:sticky;top:96px;display:grid;gap:22px}
.tv-kpp__cta{background:var(--tv-navy);color:#fff;border-radius:11px;padding:26px 24px 28px}
.tv-kpp__cta h2{color:#fff;font-size:20px;margin-bottom:8px}
.tv-kpp__cta p{font-size:14.5px;color:rgba(255,255,255,.7);margin-bottom:20px}
.tv-kpp__lain{border:1px solid rgba(18,48,74,.12);border-radius:11px;padding:22px 24px}
.tv-kpp__lain h2{font-size:15px;margin-bottom:12px}
.tv-kpp__lain ul{list-style:none;margin:0 0 14px;padding:0;font-size:14.5px}
.tv-kpp__lain li + li{margin-top:8px}
.tv-kpp__semua{font-size:13.5px;font-weight:700}

.tv-kpp__daftar{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}
.tv-kpp__item{border:1px solid rgba(18,48,74,.12);border-radius:11px;padding:22px 24px;background:#fff}
.tv-kpp__item h2{font-size:18px;margin-bottom:8px}
.tv-kpp__alamat{font-size:14px;color:rgba(18,48,74,.7);margin-bottom:10px}
.tv-kpp__meta{display:flex;gap:8px;font-size:12.5px;color:rgba(18,48,74,.5);margin:0}

@media (max-width:900px){
  .tv-kpp__grid{grid-template-columns:1fr;gap:32px}
  .tv-kpp__aside{position:static}
  .tv-wilayah{grid-template-columns:1fr}
  .tv-fakta > div{grid-template-columns:1fr;gap:4px}
}

/* Pemisah tautan di bar bawah footer */
.tv-footer__pisah{margin:0 6px;opacity:.6}

/* Peta lokasi kantor. Rasio dikunci supaya tidak ada geseran tata letak
   saat iframe selesai dimuat. */
.tv-peta{margin:0 0 26px}
.tv-peta__bingkai{
  position:relative;aspect-ratio:16/9;
  border:1px solid rgba(18,48,74,.12);border-radius:11px;overflow:hidden;
  background:var(--tv-surface);
}
.tv-peta__bingkai iframe{
  position:absolute;inset:0;width:100%;height:100%;border:0;display:block;
}
.tv-peta__ket{
  display:flex;flex-wrap:wrap;gap:10px;align-items:baseline;
  margin-top:10px;font-size:12.5px;color:rgba(18,48,74,.55);
}
.tv-peta__ket a{font-weight:700}
@media (max-width:600px){ .tv-peta__bingkai{aspect-ratio:4/3} }

/* Penelusuran per kota di halaman provinsi */
.tv-wilayah-anak{padding-block:44px}
.tv-wilayah-anak h2{font-size:18px;margin-bottom:16px}
.tv-wilayah-anak .tv-tab{display:inline-flex;align-items:center;gap:8px;text-decoration:none}
.tv-wilayah-anak .tv-tab span{
  font-size:11.5px;font-weight:800;color:rgba(18,48,74,.5);
  background:rgba(18,48,74,.07);border-radius:100px;padding:2px 7px;
}
