/* =========================================================
   Skala tipografi global — semua halaman hanya memakai ukuran ini
   supaya ukuran font konsisten di setiap halaman.
   ========================================================= */
:root {
    --th-fs-xs: 12px;   /* badge, label kecil */
    --th-fs-sm: 14px;   /* meta, keterangan, breadcrumb */
    --th-fs-base: 16px; /* teks isi, tombol, input */
    --th-fs-md: 18px;   /* judul kartu, lead */
    --th-fs-lg: 22px;   /* harga, judul blok */
    --th-fs-xl: 28px;   /* angka besar */
    --th-fs-h2: clamp(23px, 1.3vw + 13px, 30px); /* judul section (dulu maks 34px: terlalu jauh dari teks isi 16px) */
    --th-fs-h1: clamp(30px, 2.6vw + 14px, 46px); /* judul hero */
}

/* main.css lama memasang body 20px, sehingga teks tanpa ukuran eksplisit tampil terlalu besar */
body {
    font-size: var(--th-fs-base);
    line-height: 1.6; /* main.css lama memakai 26px tetap, membuat jarak baris teks kecil/besar tidak proporsional */
}

/* responsive.css lama menyembunyikan "p br" di <768px, sehingga deskripsi dari editor (poin 1. / 2. / 2.1)
   menempel jadi satu paragraf di HP. Pindah baris dari editor harus tetap tampil di semua ukuran layar. */
p br {
    display: inline;
}

/* =========================================================
   Layout global frontend (header mobile + footer) — mobile first
   ========================================================= */
.th-footer {
    background: #063743;
    background: linear-gradient(180deg, #094e5d 0%, #063743 100%);
    color: rgba(255, 255, 255, .78);
    font-size: var(--th-fs-base);
    line-height: 1.6;
}

.th-footer a {
    color: rgba(255, 255, 255, .86);
    transition: color .2s ease;
}

.th-footer a:hover,
.th-footer a:focus-visible {
    color: #ff8a3d;
    text-decoration: none;
}

.th-footer-top {
    display: grid;
    gap: 32px;
    padding: 40px 0 28px;
}

.th-footer-logo {
    display: inline-block;
}

.th-footer-logo img {
    display: block;
    width: 168px;
    max-width: 100%;
    height: auto;
    margin: 0;
}

.th-footer-tagline {
    margin: 14px 0 0;
    max-width: 380px;
    color: rgba(255, 255, 255, .72);
    font-size: var(--th-fs-base);
    line-height: 1.6;
}

.th-footer-contact {
    display: grid;
    gap: 10px;
    margin: 20px 0 0;
    padding: 0;
    list-style: none;
}

.th-footer-contact li {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    font-size: var(--th-fs-sm);
    line-height: 1.5;
}

.th-footer-contact .fa {
    margin-top: 3px;
    color: #ff8a3d;
    text-align: center;
}

.th-footer-contact a,
.th-footer-contact span {
    overflow-wrap: anywhere;
}

/* Telp & email: link punya min-height 32px (teks di tengah), jadi ikon ikut ditengahkan */
.th-footer-contact li:has(> a) {
    align-items: center;
}

.th-footer-contact li:has(> a) .fa {
    margin-top: 0;
}

.th-footer-nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px 20px;
}

/* kolom 1: OJT lalu Perusahaan di bawahnya */
.th-footer-col ul + h4 {
    margin-top: 22px;
}

/* Hubungi Kami: di HP selebar 2 kolom menu */
.th-footer-col--contact {
    grid-column: 1 / -1;
}

.th-footer-col--contact .th-footer-contact {
    margin-top: 0;
}

/* HP: setelah email (jarak dirapatkan dari gap 32px grid footer) */
.th-footer-social {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: -14px 0 0;
    padding: 0;
    list-style: none;
}

/* URL belum diisi admin: ikon tetap tampil, redup & tidak bisa diklik */
.th-footer-social .is-empty {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: rgba(255, 255, 255, .08);
    color: rgba(255, 255, 255, .4);
    font-size: 17px;
    cursor: default;
}

.th-footer .th-footer-social a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: rgba(255, 255, 255, .08);
    color: #fff;
    font-size: 17px;
}

.th-footer-social a:hover,
.th-footer-social a:focus-visible {
    background: var(--th-accent);
    color: #fff;
}

.th-footer-col h4 {
    margin: 0 0 12px;
    color: #fff;
    font-family: poppins, sans-serif;
    font-size: var(--th-fs-sm);
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.th-footer-col ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.th-footer-col li a {
    display: inline-block;
    padding: 6px 0;
    font-size: var(--th-fs-base);
    line-height: 1.4;
}

.th-footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, .12);
    padding: 16px 0 calc(16px + env(safe-area-inset-bottom));
}

.th-footer-bottom p {
    margin: 0;
    color: rgba(255, 255, 255, .6);
    font-size: var(--th-fs-sm);
    line-height: 1.5;
    text-align: center;
}

/* Sticky CTA mobile disembunyikan saat footer terlihat (kelas di-set custom.js) */
.th-footer-in .th-sticky-cta.is-visible,
.th-footer-in .th-pd-bar.is-visible {
    transform: translateY(110%);
}

@media (max-width: 767.98px) {
}

@media (min-width: 768px) {
    .th-footer-nav {
        grid-template-columns: minmax(0, .8fr) minmax(0, .9fr) minmax(0, 1.5fr);
    }

    .th-footer-col--contact {
        grid-column: auto;
    }
}

@media (min-width: 992px) {
    /* desktop: sosmed di bawah tagline, menu di kanan setinggi dua baris */
    .th-footer-brand {
        grid-area: 1 / 1;
    }

    .th-footer-social {
        grid-area: 2 / 1;
        align-self: start;
        margin-top: -26px;
    }

    .th-footer-nav {
        grid-area: 1 / 2 / 3 / 3;
    }

    .th-footer-top {
        grid-template-rows: auto 1fr;
        grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
        gap: 48px;
        padding: 56px 0 40px;
    }

    .th-footer-logo img {
        width: 190px;
    }

    .th-footer-bottom p {
        text-align: left;
    }
}

/* Halaman pendek / overscroll: area di bawah footer ikut warna footer, bukan putih */
html {
    background-color: #063743;
}

/* ---------- Header: menu mobile ---------- */
@media (max-width: 992px) {
    /* area tap burger 44px (handler klik ada di .burger-menu) */
    .primary-header .burger-menu {
        box-sizing: content-box;
        padding: 13px 12px;
        margin-right: -12px;
    }

    .header-right .mobile-menu-icon {
        margin-left: 8px;
    }

    .primary-header .header-menu-wrap {
        top: calc(100% + 10px);
        left: -15px;
        right: -15px;
        width: auto;
        max-height: calc(100vh - 70px);
        overflow-y: auto;
        padding: 6px 16px 14px;
        border-top: 1px solid #e1eaec;
        border-radius: 0 0 16px 16px;
        background: #fff;
        box-shadow: 0 18px 40px rgba(9, 78, 93, .18);
    }

    .primary-header .header-menu-wrap ul li,
    .primary-header .header-menu-wrap ul li:first-child {
        border-top: 0;
        border-bottom: 1px solid #eef3f4;
    }

    .primary-header .header-menu-wrap > ul > li:last-child {
        border-bottom: 0;
    }

    .primary-header .header-menu-wrap ul li > a {
        display: flex;
        align-items: center;
        gap: 8px;
        min-height: 48px;
        padding: 0 4px;
        color: #1d2b30;
        font-family: poppins, sans-serif;
        font-size: var(--th-fs-base);
        font-weight: 600;
        letter-spacing: 0;
        text-transform: none;
    }

    .primary-header .header-menu-wrap ul li > a:hover,
    .primary-header .header-menu-wrap ul li > a:focus-visible {
        color: #e8650a;
    }

    .primary-header .header-menu-wrap li li {
        padding-left: 12px;
        border-bottom: 0;
    }

    .primary-header .header-menu-wrap li li > a {
        min-height: 44px;
        color: #55666c;
        font-size: var(--th-fs-sm);
    }

    .primary-header .header-menu-wrap .dropdown-plus {
        width: 48px;
        height: 48px;
    }
}

/* ---------- Target sentuh minimal (WCAG 2.5.8) ---------- */
/* Logo header: gambar cuma setinggi ~20px, area klik dibuat 44px */
.primary-header .header-logo > a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
}

/* Breadcrumb di hero halaman posisi & training */
.th-crumb a {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
}

/* Link kontak & menu footer */
.th-footer-contact a,
.th-footer-col ul a {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
}

/* ---------- Keterbacaan ---------- */
/* Placeholder kotak cari cukup kontras (CSS lama memakai abu-abu sangat pucat) */
.th-home input::placeholder {
    color: #6b7b80 !important;
    opacity: 1;
}

.th-home input::-webkit-input-placeholder {
    color: #6b7b80 !important;
}

/* Judul tidak menyisakan 1 kata di baris terakhir; paragraf menghindari kata yatim.
   Teks dibiarkan rata kiri: di layar sempit, rata kanan-kiri (justify) membuat jarak antar kata
   melebar tidak beraturan dan justru lebih sulit dibaca. */
.th-home h1,
.th-home h2,
.th-home h3 {
    text-wrap: balance;
}

.th-home p,
.th-home li {
    text-wrap: pretty;
}

/* =========================================================
   Header fixed (meeting 2026-10-18): selalu menempel di atas, desktop & HP.
   Home: transparan di atas hero (logo putih), jadi putih setelah di-scroll (.is-solid dari custom.js).
   ========================================================= */
:root {
    --th-header-h: 64px;
    --th-mbar-h: 64px;
    --th-green: #0f7a5c;      /* hijau karakter Terapan */
    /* Gradasi section pertama setelah hero di semua halaman: hijau Terapan memudar ke abu hampir putih.
       Warnanya bisa diganti di Admin > Konten Home & Kontak > Tampilan (di-inject layout sebagai :root). */
    --th-grad-from: #cfe7dc;
    --th-grad-to: #f6f8f8;
}

/* 2026-10-20: gradasi dihapus, section pertama putih polos */
.th-grad-section {
    background: #fff;
}

@media (min-width: 993px) {
    :root {
        --th-header-h: 84px;
    }
}

/* 2026-10-20: desktop lebih lebar dari 1140px Bootstrap. Laptop (<=1440px) hampir penuh dengan jarak 40px kiri-kanan;
   monitor besar dibatasi 1440px (konten 1360px) di tengah supaya tidak melebar berlebihan.
   Di bawah 1200px tetap ukuran container Bootstrap, jadi tablet & HP tidak berubah. */
@media (min-width: 1200px) {
    .container {
        max-width: 1440px;
        padding-right: 40px;
        padding-left: 40px;
    }
}

body {
    padding-top: var(--th-header-h);
}

body.th-has-overlay {
    padding-top: 0;
}

/* tujuan link #anchor tidak tertutup header fixed */
[id] {
    scroll-margin-top: calc(var(--th-header-h) + 12px);
}

.sticky-header {
    display: none !important;
}

.header.th-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    background: #fff;
    box-shadow: 0 1px 0 rgba(9, 78, 93, .08);
    transition: background-color .25s ease, box-shadow .25s ease;
}

.th-header.is-solid {
    box-shadow: 0 6px 20px rgba(9, 78, 93, .12);
}

.th-header .primary-header-inner {
    min-height: var(--th-header-h);
}

.th-header .primary-header {
    padding: 0;
}

/* Logo + jargon "Real Case Engineering Training" */
.primary-header .header-logo {
    max-width: none;
}

.th-brand {
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    gap: 3px;
    min-height: 44px;
    text-decoration: none !important;
}

.th-brand-logos {
    position: relative;
    display: block;
    width: 150px;
}

.th-brand-img {
    display: block;
    width: 100%;
    height: auto;
    transition: opacity .25s ease;
}

.th-brand-img--light {
    position: absolute;
    inset: 0;
    opacity: 0;
}

.th-brand-tag {
    color: #55666c;
    font-family: poppins, sans-serif;
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: .04em;
    line-height: 1.2;
    white-space: nowrap;
    transition: color .25s ease;
}

@media (min-width: 993px) {
    .th-brand-logos {
        width: 200px;
    }

    .th-brand-tag {
        font-size: var(--th-fs-xs);
        letter-spacing: .05em;
    }

    .th-header .header-menu-wrap ul li > a {
        height: var(--th-header-h);
        line-height: var(--th-header-h);
        padding: 0 16px;
        font-size: 13px;
    }

    .th-header .dl-menu > li.is-current > a {
        color: #e8650a;
    }
}

/* Bahasa | English */
.th-lang-switch {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0 0 0 16px;
    color: #094e5d;
    font-family: work sans, sans-serif;
    font-size: 13px;
    font-weight: 600;
}

.header-menu-wrap .th-lang-switch a {
    display: inline-flex;
    align-items: center;
    height: auto !important;
    min-height: 32px;
    padding: 0 2px !important;
    line-height: 1.2 !important;
    color: #6b7b80;
    font-weight: 500;
    text-transform: none;
}

.header-menu-wrap .th-lang-switch a.is-active {
    color: #094e5d;
    font-weight: 700;
}

.th-lang-sep {
    color: #b7c5c9;
}

/* Overlay di Home: header transparan + teks/logo putih sampai di-scroll */
@media (min-width: 993px) {
    .th-header.is-overlay:not(.is-solid) {
        background: transparent;
        box-shadow: none;
    }

    .th-header.is-overlay:not(.is-solid) .th-brand-img {
        opacity: 0;
    }

    .th-header.is-overlay:not(.is-solid) .th-brand-img--light {
        opacity: 1;
    }

    .th-header.is-overlay:not(.is-solid) .th-brand-tag,
    .th-header.is-overlay:not(.is-solid) .th-lang-switch,
    .th-header.is-overlay:not(.is-solid) .th-lang-sep {
        color: rgba(255, 255, 255, .82);
    }

    .th-header.is-overlay:not(.is-solid) .dl-menu > li > a,
    .th-header.is-overlay:not(.is-solid) .th-lang-switch a {
        color: #fff;
    }

    .th-header.is-overlay:not(.is-solid) .th-lang-switch a:not(.is-active) {
        color: rgba(255, 255, 255, .7);
    }

    .th-header.is-overlay:not(.is-solid) .dl-menu > li.is-current > a,
    .th-header.is-overlay:not(.is-solid) .dl-menu > li > a:hover {
        color: #ffb27a;
    }
}

/* HP: header Home juga transparan di atas hero, burger putih */
@media (max-width: 992px) {
    .th-header.is-overlay:not(.is-solid):not(.is-menu-open) {
        background: transparent;
        box-shadow: none;
    }

    .th-header.is-overlay:not(.is-solid):not(.is-menu-open) .th-brand-img {
        opacity: 0;
    }

    .th-header.is-overlay:not(.is-solid):not(.is-menu-open) .th-brand-img--light {
        opacity: 1;
    }

    .th-header.is-overlay:not(.is-solid):not(.is-menu-open) .th-brand-tag {
        color: rgba(255, 255, 255, .82);
    }

    .th-header.is-overlay:not(.is-solid):not(.is-menu-open) .line-menu {
        background-color: #fff;
    }

    .th-lang-switch {
        min-height: 48px;
        padding: 0 4px;
        font-family: poppins, sans-serif;
        font-size: var(--th-fs-base);
    }

    .header-menu-wrap .th-lang-switch a {
        min-height: 44px;
        font-family: poppins, sans-serif;
        font-size: var(--th-fs-base);
    }
}

/* =========================================================
   Kontak WhatsApp konsisten di semua halaman
   ========================================================= */
/* Desktop: blok "Kontak Kami" melayang di kanan bawah */
.th-fab-wa {
    position: fixed;
    right: 24px;
    bottom: calc(24px + env(safe-area-inset-bottom));
    z-index: 990;
    display: none;
    align-items: center;
    gap: 10px;
    min-height: 52px;
    padding: 0 22px 0 16px;
    border-radius: 999px;
    background: #25d366;
    color: #fff !important;
    font-family: poppins, sans-serif;
    font-size: var(--th-fs-base);
    font-weight: 600;
    text-decoration: none !important;
    box-shadow: 0 10px 26px rgba(18, 140, 76, .35);
    transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease;
}

.th-fab-wa i {
    font-size: 26px;
}

.th-fab-wa:hover,
.th-fab-wa:focus-visible {
    background: #1ebe5b;
    transform: translateY(-2px);
    box-shadow: 0 14px 30px rgba(18, 140, 76, .42);
}

.th-fab-wa:focus-visible {
    outline: 3px solid #0a6b3a;
    outline-offset: 3px;
}

/* tombol "kembali ke atas" naik supaya tidak bertumpuk dengan blok Kontak Kami */
body #scroll-to-top {
    right: 32px;
    bottom: calc(92px + env(safe-area-inset-bottom));
}

/* HP: bar bawah 50/50 [tombol utama | Kontak Kami], selalu tampil */
.th-mbar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 990;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    padding: 8px 12px calc(8px + env(safe-area-inset-bottom));
    background: #fff;
    box-shadow: 0 -6px 20px rgba(9, 78, 93, .12);
}

.th-mbar .th-btn {
    min-height: 48px;
    padding: 8px 10px;
    font-size: 15px;
    line-height: 1.15;
    border-radius: 10px;
}

.th-mbar .th-btn--primary {
    box-shadow: none;
}

.th-mbar-wa {
    background: #25d366;
    color: #fff !important;
}

.th-mbar-wa:hover,
.th-mbar-wa:focus-visible {
    background: #1ebe5b;
}

.th-mbar-wa i {
    font-size: 20px;
}

/* isi footer paling bawah tidak tertutup bar */
@media (max-width: 767.98px) {
    .th-footer-bottom {
        padding-bottom: calc(16px + var(--th-mbar-h) + env(safe-area-inset-bottom));
    }

    body #scroll-to-top {
        display: none !important;
    }
}

@media (min-width: 768px) {
    .th-mbar {
        display: none;
    }

    .th-fab-wa {
        display: inline-flex;
    }
}

/* sticky bar per halaman lama (diganti .th-mbar global) */
.th-sticky-cta,
.th-pd-bar {
    display: none !important;
}

/* =========================================================
   Dropdown posisi karir (Home & /ojt): pilih = langsung buka halaman posisi
   ========================================================= */
.th-pos-select {
    position: relative;
    display: block;
    width: 100%;
    max-width: 420px;
    margin: 0;
}

.th-pos-select select {
    width: 100%;
    min-height: 52px;
    padding: 0 44px 0 46px;
    border: 1.5px solid #c9dadd;
    border-radius: 12px;
    background: #fff;
    color: #1d2b30;
    font-family: poppins, sans-serif;
    font-size: var(--th-fs-base);
    font-weight: 500;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
    transition: border-color .2s, box-shadow .2s;
}

.th-pos-select select:hover,
.th-pos-select select:focus {
    border-color: #094e5d;
    outline: none;
    box-shadow: 0 0 0 3px rgba(9, 78, 93, .15);
}

.th-pos-select > i {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    color: #094e5d;
    pointer-events: none;
}

.th-pos-select > .fa-briefcase {
    left: 17px;
}

.th-pos-select-caret {
    right: 17px;
    font-size: 13px;
}

/* Bootstrap memasang garis fokus di setiap <button> setelah diklik mouse (mis. "Tutup" / "Baca selengkapnya" tampak berbingkai).
   Garis fokus tetap muncul saat navigasi keyboard (:focus-visible). */
button:focus:not(:focus-visible) {
    outline: none;
}

/* =========================================================
   Navbar menyatu dengan hero di halaman dalam (OJT, posisi, training, katalog), sama seperti Home:
   latar hero (warna/gradasi halaman itu sendiri) diperpanjang ke balik navbar transparan;
   setelah di-scroll navbar jadi putih (.is-solid). Halaman tanpa hero gelap tetap navbar putih.
   ========================================================= */
.th-overlay-inner #th-hero,
.th-overlay-inner #tc-hero {
    border-top: var(--th-header-h) solid transparent;
    background-origin: border-box;
}

.th-overlay-inner .th-page-hero::after {
    top: calc(-1 * var(--th-header-h));
}

/* =========================================================
   Konsistensi tipografi (audit 2026-10-18 malam)
   Skala: label 12-13 · meta 13-14 · isi 15-16 (prosa 16/1.75) · judul kartu 16-18 · H2 23-30 · H1 30-46.
   :root di depan selector supaya menang dari CSS per halaman yang dimuat sesudah layout.
   ========================================================= */
:root .th-sp-tagline,
:root .th-hero-tagline {
    font-size: 13px;
    line-height: 1.5;
    letter-spacing: .06em;
}

:root .th-sp-crumb a,
:root .th-sp-crumb span,
:root .th-crumb a,
:root .th-crumb span {
    font-size: 13px;
}

:root .th-sp-title small,
:root .th-card-title small,
:root .th-pos-name small {
    font-size: 12px;
    letter-spacing: .14em;
}

:root .th-topic-meta,
:root .th-topic-meta span {
    font-size: 13px;
}

/* kolom Sebelum / Setelah sama besar */
:root .th-sp-shift-from,
:root .th-sp-shift-to {
    font-size: 15px;
    line-height: 1.55;
}

:root .th-sp-shift-head span {
    font-size: 13px;
}

:root .th-sp-facts {
    font-size: 14px;
    line-height: 1.6;
}

:root .th-sp-lead,
:root .th-hero-desc,
:root .th-page-desc {
    font-size: 17px;
    line-height: 1.65;
}

/* prosa deskripsi dari admin: 16px, jarak baris lega */
:root .th-prose,
:root .th-prose p,
:root .th-prose li {
    font-size: 16px;
    line-height: 1.75;
}

:root .th-prose p + p {
    margin-top: 12px;
}

:root .th-step-item h3 {
    line-height: 1.35;
}

:root .th-trusted-title,
:root .th-sp-plan-label {
    line-height: 1.5;
}

:root .th-pos-for {
    font-size: 13.5px;
}

@media (max-width: 767.98px) {
    :root .th-sp-lead,
    :root .th-hero-desc,
    :root .th-page-desc {
        font-size: 16px;
    }

    :root .th-prose,
    :root .th-prose p,
    :root .th-prose li {
        font-size: 15.5px;
        line-height: 1.7;
    }
}

/* HP: tagline tidak huruf kapital, jadi tanpa jarak antar huruf */
@media (max-width: 767.98px) {
    :root .th-sp-tagline,
    :root .th-hero-tagline {
        letter-spacing: 0;
    }
}

/* Tombol WhatsApp: hijau lebih pekat supaya teks putih terbaca (#25d366 + putih = kontras 2.0, terlalu rendah) */
.th-fab-wa,
.th-mbar-wa {
    background: #15803d;
}

.th-fab-wa:hover,
.th-fab-wa:focus-visible,
.th-mbar-wa:hover,
.th-mbar-wa:focus-visible {
    background: #116b33;
}

.th-fab-wa {
    box-shadow: 0 10px 26px rgba(21, 128, 61, .35);
}

/* =========================================================
   Kontras teks mode terang (audit 2026-10-18 malam): semua teks >= 4.5:1
   ========================================================= */
/* oranye tombol = oranye brand terang #e8650a (dari home.css); sempat dipekatkan, dikembalikan atas permintaan klien */

:root .th-sp-kicker {
    color: #9a3f00;
}

:root .th-sp-kicker.is-solution {
    color: var(--th-primary);
}

:root .th-sp-price del {
    color: #5d6f74;
}

.th-footer-bottom p {
    color: rgba(255, 255, 255, .7);
}

/* tombol oranye terang: hover sedikit lebih gelap, teks tebal supaya tetap tegas */
.th-btn--primary:hover {
    background: #cf5806;
}

/* =========================================================
   Hero halaman dalam seragam dengan /ojt (permintaan 2026-10-18 malam):
   gradasi teal + cahaya oranye kanan atas + pola kotak-kotak memudar ke kanan.
   Berlaku untuk halaman posisi & training (.th-sp-hero) dan katalog (.tc-hero). Home tidak berubah.
   ========================================================= */
:root .th-sp-hero,
:root .tc-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background:
        radial-gradient(circle at 100% 0, rgba(255, 178, 122, .22), transparent 42%),
        radial-gradient(circle at 0 100%, rgba(79, 209, 165, .12), transparent 40%),
        linear-gradient(135deg, #094e5d 0%, #063743 100%);
}

:root .th-sp-hero::after,
:root .tc-hero::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    background-image: linear-gradient(rgba(255, 255, 255, .05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .05) 1px, transparent 1px);
    background-size: 32px 32px;
    -webkit-mask-image: linear-gradient(90deg, transparent 20%, #000 100%);
    mask-image: linear-gradient(90deg, transparent 20%, #000 100%);
    pointer-events: none;
}

/* hero di balik navbar transparan: pola kotak ikut sampai atas */
.th-overlay-inner .th-sp-hero::after,
.th-overlay-inner .tc-hero::after {
    top: calc(-1 * var(--th-header-h));
}

/* logo & tagline rata kiri (main.css lama memasang align-items:center pada link logo) */
.primary-header .header-logo > a.th-brand {
    align-items: flex-start;
}

/* =========================================================
   Ritme jarak antar section halaman dalam (semua kecuali Home), revisi 2026-10-18 malam.
   Desktop: hero bawah 48 · section 40/40 (jarak antar section 80) · section terakhir ke footer 56.
   HP:      hero bawah 28 · section 28/28 (jarak 56)               · section terakhir ke footer 40.
   ========================================================= */
@media (min-width: 768px) {
    :root .th-ojt #th-hero,
    :root .tc-hero,
    :root .th-sp-hero {
        padding-bottom: 48px;
    }

    :root .tc-hero {
        padding-top: 40px;
    }

    :root .th-ojt .th-catalog,
    :root .th-ojt #th-steps-section,
    :root .tc-catalog,
    :root #program,
    :root #cari-ojt,
    :root .th-sp-wrap .th-sp-block {
        padding-top: 40px;
        padding-bottom: 40px;
    }

    :root .th-ojt .th-final,
    :root .tc-final,
    :root main > .th-final {
        padding-top: 0;
        padding-bottom: 56px;
    }

    :root .th-sp-wrap .th-sp-block:last-child {
        padding-bottom: 56px;
    }
}

@media (max-width: 767.98px) {
    :root .th-ojt #th-hero,
    :root .tc-hero,
    :root .th-sp-hero {
        padding-bottom: 28px;
    }

    :root .tc-hero {
        padding-top: 24px;
    }

    :root .th-ojt .th-catalog,
    :root .th-ojt #th-steps-section,
    :root #program,
    :root #cari-ojt,
    :root .th-sp-wrap .th-sp-block {
        padding-top: 28px;
        padding-bottom: 28px;
    }

    :root main > .th-final {
        padding-top: 0;
        padding-bottom: 40px;
        background: #f3f8f9;
    }

    :root .th-sp-wrap .th-sp-block:last-child {
        padding-bottom: 40px;
    }

    :root[data-theme="dark"] main > .th-final {
        background: var(--th-dk-bg-2);
    }
}

/* CTA penutup menyatu dengan latar section di atasnya (tanpa pita warna berbeda) */
@media (min-width: 768px) {
    :root .th-section--soft + .th-final {
        background: #f3f8f9;
    }

    :root[data-theme="dark"] .th-section--soft + .th-final {
        background: var(--th-dk-bg-2);
    }
}

/* =========================================================
   Revisi 2026-10-20: tombol WA cukup ikon
   - desktop: ikon WA bulat melayang (posisi tetap kanan bawah)
   - HP: bar bawah = tombol utama lebar + ikon WA kecil (seperti sticky CTA lama)
   - Home HP: bar bawah baru muncul setelah tombol hero lewat (body.th-mbar-held dari custom.js)
   - Home HP: header transparan diberi garis putih tipis supaya terbaca sebagai navbar
   ========================================================= */
.th-fab-wa {
    justify-content: center;
    width: 56px;
    height: 56px;
    min-height: 0;
    padding: 0;
}

.th-fab-wa i {
    font-size: 30px;
}

.th-mbar {
    grid-template-columns: 1fr 48px;
    transition: transform .25s ease, visibility .25s;
}

.th-mbar .th-mbar-wa {
    width: 48px;
    padding: 0;
}

.th-mbar .th-mbar-wa i {
    font-size: 24px;
}

body.th-mbar-held .th-mbar {
    visibility: hidden;
    transform: translateY(calc(100% + 12px));
}

@media (max-width: 992px) {
    .th-header.is-overlay:not(.is-solid):not(.is-menu-open) {
        border-bottom: 1px solid rgba(255, 255, 255, .45);
    }
}

/* =========================================================
   Member Area (2026-10-22, fitur berbayar): tombol Masuk / Kelas Saya di header.
   HP: ikon bulat 40px di samping tombol tema; desktop >= 993px: pil ikon + teks.
   ========================================================= */
.th-member-link {
    display: inline-grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border: 1px solid #d6e3e6;
    border-radius: 50%;
    color: #094e5d !important;
    font-size: 18px;
    text-decoration: none !important;
    transition: background-color .2s, color .2s, border-color .2s;
}
.th-member-link span { display: none; }
.th-member-link:hover, .th-member-link.is-current { border-color: #e8650a; color: #e8650a !important; }
.th-header.is-overlay:not(.is-solid):not(.is-menu-open) .th-member-link { border-color: rgba(255, 255, 255, .45); color: #fff !important; }
:root[data-theme="dark"] .th-member-link { border-color: #3a3d43; color: #ffa86b !important; }

@media (min-width: 993px) {
    .th-member-link {
        display: inline-flex;
        gap: 8px;
        width: auto;
        padding: 0 16px;
        border-radius: 999px;
        font-size: 16px;
        font-family: poppins, sans-serif;
        font-weight: 600;
    }
    .th-member-link span { display: inline; font-size: 14px; }
}
