/*
Theme Name: GoKlinik
Theme URI: https://gogov.id/goklinik
Author: GoGov
Description: Theme Rumah Sakit, Klinik & Puskesmas yang mandiri penuh — dokter & jadwal (dengan cuti/pengecualian), Dokter Hari Ini, pendaftaran online bernomor antrian, ketersediaan bed real-time, tarif terpadu, info BPJS, dan pencarian dokter. Tanpa plugin, tanpa jQuery di frontend.
Version: 1.1.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: goklinik
Tags: medical, health, custom-menu, custom-logo, featured-images, threaded-comments, translation-ready, right-sidebar
*/

/* ---------- Token turunan (skin memberi nilai dasar) ---------- */
:root {
	--gk-primary-soft: color-mix(in srgb, var(--gk-primary) 10%, var(--gk-bg));
	--gk-primary-dark: color-mix(in srgb, var(--gk-primary) 78%, #000);
	--gk-danger-soft: color-mix(in srgb, var(--gk-danger) 10%, #fff);
	--gk-font: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--gk-gap: clamp(16px, 2.5vw, 28px);
	--gk-sec: clamp(48px, 7vw, 88px);
}

/* ---------- Dasar ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; background: var(--gk-bg); color: var(--gk-text); font: 400 16px/1.65 var(--gk-font); -webkit-font-smoothing: antialiased; }
img, svg, video, iframe { max-width: 100%; }
img { height: auto; display: block; }
a { color: var(--gk-primary); text-underline-offset: 3px; }
a:hover { color: var(--gk-primary-dark); }
h1, h2, h3, h4 { line-height: 1.25; margin: 0 0 .5em; font-weight: 700; letter-spacing: -.01em; }
h1 { font-size: clamp(1.75rem, 3.6vw, 2.6rem); }
h2 { font-size: clamp(1.35rem, 2.6vw, 1.85rem); }
h3 { font-size: 1.1rem; }
p { margin: 0 0 1em; }
:focus-visible { outline: 3px solid color-mix(in srgb, var(--gk-primary) 55%, transparent); outline-offset: 2px; border-radius: 6px; }
input, select, textarea, button { font: inherit; color: inherit; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.gk-skip:focus { clip: auto; width: auto; height: auto; z-index: 999; top: 8px; left: 8px; padding: 10px 16px; background: #fff; border-radius: 8px; }
.gk-container { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 16px; }
.gk-icon { width: 1.2em; height: 1.2em; flex: none; vertical-align: -.2em; }
.gk-muted { color: var(--gk-muted); }
.gk-small { font-size: .875rem; }
.gk-center { text-align: center; }
.gk-empty { padding: 28px; text-align: center; background: var(--gk-bg-soft); border-radius: var(--gk-radius); color: var(--gk-muted); }
[hidden] { display: none !important; }

/* ---------- Tombol ---------- */
.gk-btn { display: inline-flex; align-items: center; justify-content: center; gap: .5em; white-space: nowrap; min-height: 44px; padding: .6em 1.2em; border: 1.5px solid transparent; border-radius: 999px; font-weight: 600; font-size: .95rem; line-height: 1.2; text-decoration: none; cursor: pointer; transition: background .2s, color .2s, border-color .2s, transform .2s; }
.gk-btn:active { transform: translateY(1px); }
.gk-btn--primary { background: var(--gk-primary); color: #fff; }
.gk-btn--primary:hover { background: var(--gk-primary-dark); color: #fff; }
.gk-btn--ghost { background: transparent; border-color: var(--gk-line); color: var(--gk-text); }
.gk-btn--ghost:hover { border-color: var(--gk-primary); color: var(--gk-primary); }
.gk-btn--light { background: #fff; color: var(--gk-primary-dark); }
.gk-btn--light:hover { background: var(--gk-primary-soft); color: var(--gk-primary-dark); }
.gk-btn--danger { background: var(--gk-danger); color: #fff; }
.gk-btn--wa { background: var(--gk-wa); color: #fff; }
.gk-btn--wa:hover { background: color-mix(in srgb, var(--gk-wa) 82%, #000); color: #fff; }
.gk-btn--sm { min-height: 38px; padding: .4em .9em; font-size: .85rem; }
.gk-btn--lg { min-height: 52px; padding: .75em 1.6em; font-size: 1rem; }
.gk-btn--block { display: flex; width: 100%; }
.gk-link-arrow { display: inline-flex; align-items: center; gap: .4em; font-weight: 600; text-decoration: none; white-space: nowrap; }
.gk-link-arrow .gk-icon { transition: transform .2s; }
.gk-link-arrow:hover .gk-icon { transform: translateX(3px); }

/* ---------- Topbar & header ---------- */
.gk-topbar { background: var(--gk-primary-dark); color: #E6F2F2; font-size: .82rem; }
.gk-topbar a { color: inherit; text-decoration: none; }
.gk-topbar__in { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 38px; }
.gk-topbar__info { display: flex; flex-wrap: wrap; gap: 6px 20px; list-style: none; margin: 0; padding: 0; }
.gk-topbar__info li { display: flex; align-items: center; gap: 6px; }
.gk-topbar .gk-sosmed a { color: inherit; width: 32px; height: 32px; }
.gk-open { display: inline-block; padding: 1px 8px; border-radius: 999px; font-size: .75rem; font-weight: 700; }
.gk-open.is-open { background: #DCFCE7; color: #166534; }
.gk-open.is-closed { background: #FEE2E2; color: #991B1B; }
.gk-header { background: color-mix(in srgb, var(--gk-bg) 92%, transparent); backdrop-filter: saturate(1.4) blur(10px); border-bottom: 1px solid var(--gk-line); z-index: 50; }
.gk-header.is-sticky { position: sticky; top: 0; }
.admin-bar .gk-header.is-sticky { top: 32px; }
.gk-header .gk-container { max-width: 1360px; }
.gk-header__in { display: flex; align-items: center; gap: 20px; min-height: 72px; }
.gk-brand { flex: none; }
.gk-brand .custom-logo { max-height: 52px; width: auto; }
.gk-brand__text { display: flex; align-items: center; gap: 10px; font-weight: 800; font-size: 1.15rem; color: var(--gk-text); text-decoration: none; }
.gk-brand__text--light { color: #fff; }
.gk-brand__mark { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 11px; background: var(--gk-primary); color: #fff; }
.gk-brand__mark .gk-icon { width: 20px; height: 20px; fill: currentColor; stroke: none; }
.gk-nav { display: flex; align-items: center; gap: 16px; flex: 1; justify-content: flex-end; }
.gk-menu, .gk-menu ul { list-style: none; margin: 0; padding: 0; }
.gk-menu { display: flex; gap: 4px; }
.gk-menu > li { position: relative; }
.gk-menu a { display: block; padding: 10px 9px; white-space: nowrap; border-radius: 10px; color: var(--gk-text); font-weight: 500; font-size: .95rem; text-decoration: none; }
.gk-menu a:hover, .gk-menu .current-menu-item > a { background: var(--gk-primary-soft); color: var(--gk-primary-dark); }
.gk-menu .sub-menu { position: absolute; top: 100%; left: 0; min-width: 220px; padding: 8px; background: var(--gk-surface); border: 1px solid var(--gk-line); border-radius: 12px; box-shadow: var(--gk-shadow); opacity: 0; visibility: hidden; transform: translateY(6px); transition: .2s; }
.gk-menu li:hover > .sub-menu, .gk-menu li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.gk-header__cta { display: flex; align-items: center; gap: 12px; }
.gk-igd { display: flex; align-items: center; gap: 8px; color: var(--gk-danger); font-weight: 800; text-decoration: none; line-height: 1.1; }
.gk-igd .gk-icon { width: 36px; height: 36px; padding: 8px; border-radius: 50%; background: var(--gk-danger-soft); }
.gk-igd small { display: block; white-space: nowrap; font-size: .7rem; font-weight: 600; color: var(--gk-muted); }
.gk-igd:hover { color: var(--gk-danger); }
.gk-navtoggle { display: none; margin-left: auto; width: 44px; height: 44px; border: 1px solid var(--gk-line); border-radius: 12px; background: var(--gk-surface); cursor: pointer; }
.gk-navtoggle__close { display: none; }

@media (max-width: 1399px) {
	.js .gk-navtoggle { display: grid; place-items: center; }
	.js .gk-nav { position: absolute; top: 100%; left: 0; right: 0; display: none; flex-direction: column; align-items: stretch; gap: 12px; padding: 12px 16px 20px; background: var(--gk-surface); border-bottom: 1px solid var(--gk-line); box-shadow: var(--gk-shadow); max-height: calc(100vh - 80px); overflow-y: auto; }
	.js .gk-nav.is-open { display: flex; }
	.gk-header__in { position: relative; flex-wrap: wrap; }
	.gk-nav { flex-wrap: wrap; }
	.gk-menu { flex-direction: column; }
	.gk-menu .sub-menu { position: static; opacity: 1; visibility: visible; transform: none; border: 0; box-shadow: none; padding: 0 0 0 12px; }
	.gk-header__cta { flex-wrap: wrap; justify-content: space-between; }
	.gk-navtoggle[aria-expanded="true"] .gk-navtoggle__open { display: none; }
	.gk-navtoggle[aria-expanded="true"] .gk-navtoggle__close { display: block; }
}
@media (max-width: 782px) { .admin-bar .gk-header.is-sticky { top: 0; } }
@media (max-width: 640px) { .gk-hide-sm { display: none !important; } }

/* ---------- Kepala halaman & breadcrumb ---------- */
.gk-pagehead { padding: 28px 0 32px; background: var(--gk-hero); border-bottom: 1px solid var(--gk-line); }
.gk-pagehead__title { margin: 6px 0 4px; }
.gk-pagehead__sub { color: var(--gk-muted); }
.gk-pagehead--profil { padding: 14px 0; }
.gk-breadcrumb ol { display: flex; flex-wrap: wrap; gap: 4px; list-style: none; margin: 0; padding: 0; font-size: .85rem; color: var(--gk-muted); }
.gk-breadcrumb li + li::before { content: "/"; margin-right: 4px; opacity: .5; }
.gk-breadcrumb a { color: inherit; text-decoration: none; }
.gk-breadcrumb a:hover { color: var(--gk-primary); }

/* ---------- Section & grid ---------- */
.gk-section { padding-block: var(--gk-sec); }
.gk-section--sm { padding-top: 40px; }
.gk-section--tint { background: var(--gk-bg-soft); }
.gk-sechead { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 24px; }
.gk-sechead__title { margin: 0; }
.gk-sechead__sub { margin: 4px 0 0; color: var(--gk-muted); }
.gk-eyebrow { margin: 0 0 8px; color: var(--gk-primary); font-weight: 700; font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; }
.gk-grid { display: grid; gap: var(--gk-gap); grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); }
.gk-grid--2 { grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); }
@media (min-width: 900px) {
	.gk-grid--2 { grid-template-columns: repeat(2, 1fr); }
	.gk-grid--3 { grid-template-columns: repeat(3, 1fr); }
	.gk-grid--4 { grid-template-columns: repeat(4, 1fr); }
}
@media (min-width: 600px) and (max-width: 899px) { .gk-grid--3, .gk-grid--4 { grid-template-columns: repeat(2, 1fr); } }
.gk-layout { display: grid; gap: 40px; }
@media (min-width: 960px) {
	.gk-layout--kanan { grid-template-columns: minmax(0, 1fr) 320px; }
	.gk-layout--kiri { grid-template-columns: 320px minmax(0, 1fr); }
	.gk-layout--kiri .gk-layout__side { order: -1; }
}
.gk-layout--narrow { max-width: 860px; margin-inline: auto; }
.gk-layout__main { min-width: 0; }

/* ---------- Kartu ---------- */
.gk-card { position: relative; background: var(--gk-surface); border: 1px solid var(--gk-line); border-radius: var(--gk-radius); box-shadow: var(--gk-shadow); overflow: hidden; }
.gk-card__body { padding: 18px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.gk-card__title { margin: 0; font-size: 1.05rem; }
.gk-card__title a { color: var(--gk-text); text-decoration: none; }
.gk-card__title a:hover { color: var(--gk-primary); }
.gk-card__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; padding-top: 10px; }
.gk-stretch::after { content: ""; position: absolute; inset: 0; }
.gk-ph { display: grid; place-items: center; width: 100%; aspect-ratio: 3 / 2; background: linear-gradient(135deg, var(--gk-primary-soft), color-mix(in srgb, var(--gk-primary) 22%, var(--gk-bg))); color: var(--gk-primary-dark); font-weight: 800; font-size: 2rem; letter-spacing: .04em; }
.gk-dokter { display: flex; flex-direction: column; transition: transform .25s, box-shadow .25s; }
.gk-dokter:hover, .gk-kamar:hover, .gk-kartu:hover, .gk-layanan:hover { transform: translateY(-3px); box-shadow: 0 2px 4px rgba(15, 23, 42, .05), 0 14px 32px rgba(15, 23, 42, .08); }
.gk-dokter__foto img, .gk-dokter__foto .gk-ph { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.gk-dokter__foto .gk-ph { font-size: 2.6rem; }
.gk-dokter__sp { margin: 0; color: var(--gk-primary); font-weight: 600; font-size: .9rem; }
.gk-dokter__jam { display: flex; gap: 6px; align-items: flex-start; margin: 0; color: var(--gk-muted); font-size: .88rem; }
.gk-badge { align-self: flex-start; display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 999px; font-size: .75rem; font-weight: 700; background: var(--gk-bg-soft); color: var(--gk-muted); }
.gk-badge::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.gk-badge--sekarang { background: #DCFCE7; color: #166534; }
.gk-badge--sekarang::before { animation: gk-pulse 1.6s infinite; }
.gk-badge--hari_ini { background: var(--gk-primary-soft); color: var(--gk-primary-dark); }
.gk-badge--selesai { background: #F1F5F9; color: #475569; }
.gk-badge--tidak { background: #F8FAFC; color: #64748B; }
@keyframes gk-pulse { 50% { box-shadow: 0 0 0 5px rgba(22, 101, 52, .15); } }
.gk-chip { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: .75rem; font-weight: 700; background: var(--gk-bg-soft); }
.gk-chip--ok { background: #DCFCE7; color: #166534; }
.gk-chip--muted { background: #E2E8F0; color: #475569; }
.gk-chip--warn { background: #FEF3C7; color: #92400E; }
.gk-kartu { display: flex; flex-direction: column; transition: transform .25s, box-shadow .25s; }
.gk-kartu__media { position: relative; }
.gk-kartu__media img, .gk-kartu__media .gk-ph { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.gk-kartu--medis .gk-kartu__media img, .gk-kartu--medis .gk-kartu__media .gk-ph { aspect-ratio: 4 / 5; }
.gk-kartu--rekanan .gk-kartu__media img { object-fit: contain; padding: 18px; background: #fff; }
.gk-kartu__media .gk-chip { position: absolute; top: 12px; left: 12px; }
.gk-kartu__play { position: absolute; inset: 0; display: grid; place-items: center; color: #fff; }
.gk-kartu__play .gk-icon { width: 54px; height: 54px; padding: 14px; border-radius: 50%; background: rgba(0, 0, 0, .45); fill: currentColor; }
.gk-kartu__meta { margin: 0; font-size: .8rem; font-weight: 600; color: var(--gk-primary); text-transform: uppercase; letter-spacing: .04em; }
.gk-layanan { padding: 24px; transition: transform .25s, box-shadow .25s; }
.gk-layanan .gk-card__title { margin: 14px 0 6px; }
.gk-layanan__jam { display: flex; gap: 6px; align-items: center; margin: 0; font-size: .85rem; color: var(--gk-muted); }
.gk-iconbox { display: grid; place-items: center; width: 54px; height: 54px; border-radius: 16px; background: var(--gk-primary-soft); color: var(--gk-primary); }
.gk-iconbox .gk-icon { width: 26px; height: 26px; }
.gk-iconbox--img { object-fit: cover; }
.gk-iconbox--lg { width: 72px; height: 72px; }
.gk-iconbox--lg .gk-icon { width: 34px; height: 34px; }

/* ---------- Kamar & bed ---------- */
.gk-kamar { display: flex; flex-direction: column; transition: transform .25s, box-shadow .25s; }
.gk-kamar__foto img, .gk-kamar__foto .gk-ph { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.gk-kamar__kelas { margin: 0; font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--gk-primary); }
.gk-kamar__harga { margin: 0; font-weight: 700; }
.gk-kamar__harga small { font-weight: 500; color: var(--gk-muted); }
.gk-kamar__harga--lg { font-size: 1.5rem; }
.gk-kamar__sisa { margin: 6px 0 0; font-size: .95rem; }
.gk-kamar__sisa b { font-size: 1.7rem; color: var(--gk-ok); vertical-align: -.1em; }
.gk-kamar--hampir .gk-kamar__sisa b { color: var(--gk-warn); }
.gk-kamar--penuh .gk-kamar__sisa b { color: var(--gk-danger); font-size: 1.1rem; }
.gk-bar { height: 10px; border-radius: 99px; background: #DCFCE7; overflow: hidden; }
.gk-bar span { display: block; height: 100%; border-radius: 99px; background: color-mix(in srgb, var(--gk-danger) 75%, #fff); transition: width .6s; }
.gk-beds { display: flex; flex-wrap: wrap; gap: 4px; }
.gk-beds span { width: 18px; height: 18px; border-radius: 4px; background: #BBF7D0; }
.gk-beds span.is-full { background: color-mix(in srgb, var(--gk-danger) 70%, #fff); }
.gk-bedsum { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; list-style: none; margin: 0 0 14px; padding: 0; }
.gk-bedsum li { padding: 18px; border-radius: var(--gk-radius); background: var(--gk-bg-soft); text-align: center; }
.gk-bedsum span { display: block; font-size: .85rem; color: var(--gk-muted); }
.gk-bedsum b { font-size: clamp(1.8rem, 5vw, 2.6rem); line-height: 1.1; }
.gk-bedsum .is-full b { color: var(--gk-danger); }
.gk-bedsum .is-free { background: #DCFCE7; }
.gk-bedsum .is-free b { color: var(--gk-ok); }
.gk-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 24px; font-size: .8rem; font-weight: 700; letter-spacing: .05em; }
.gk-legend span[class^="gk-legend__"] { width: 14px; height: 14px; border-radius: 4px; }
.gk-legend__full { background: color-mix(in srgb, var(--gk-danger) 70%, #fff); }
.gk-legend__free { background: #BBF7D0; margin-left: 10px; }
.gk-live { margin-left: auto; font-weight: 500; letter-spacing: 0; color: var(--gk-muted); }
.gk-live::before { content: ""; display: inline-block; width: 8px; height: 8px; margin-right: 6px; border-radius: 50%; background: var(--gk-ok); animation: gk-pulse 1.6s infinite; }
.gk-bignum { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin: 10px 0; }
.gk-bignum b { font-size: 3rem; line-height: 1; color: var(--gk-ok); }
.gk-bignum-card { padding: 22px; }
.gk-kamar-home { display: grid; gap: var(--gk-gap); grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); }
.gk-kamar-detail { display: grid; gap: 28px; }
.gk-kamar-detail__box { padding: 22px; display: flex; flex-direction: column; gap: 8px; align-self: start; }
@media (min-width: 960px) {
	.gk-kamar-detail { grid-template-columns: minmax(0, 1fr) 340px; }
	.gk-kamar-detail__box { position: sticky; top: 100px; }
	.gk-kamar-detail__body { grid-column: 1; }
}

/* ---------- Galeri varian ---------- */
.gk-varian__main { position: relative; margin: 0; border-radius: var(--gk-radius); overflow: hidden; background: var(--gk-bg-soft); }
.gk-varian__img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; transition: opacity .25s; }
.gk-varian__img.is-swap { opacity: .2; }
.gk-varian__cap:not(:empty) { position: absolute; left: 12px; bottom: 12px; padding: 6px 12px; border-radius: 999px; background: rgba(15, 23, 42, .65); color: #fff; font-size: .85rem; }
.gk-varian__thumbs { display: flex; gap: 8px; margin-top: 10px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 4px; }
.gk-varian__thumb { flex: none; width: 88px; padding: 0; border: 2px solid transparent; border-radius: 10px; overflow: hidden; cursor: pointer; background: none; scroll-snap-align: start; opacity: .7; transition: .2s; }
.gk-varian__thumb img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.gk-varian__thumb.is-active, .gk-varian__thumb:hover { border-color: var(--gk-primary); opacity: 1; }

/* ---------- Testimoni & slider ---------- */
.gk-testi { margin: 0; padding: 24px; display: flex; flex-direction: column; gap: 14px; height: 100%; }
.gk-testi blockquote { margin: 0; font-size: 1rem; }
.gk-testi blockquote p:last-child { margin: 0; }
.gk-testi figcaption { display: flex; align-items: center; gap: 12px; margin-top: auto; }
.gk-testi figcaption small { display: block; color: var(--gk-muted); }
.gk-testi__foto, .gk-testi figcaption .gk-ph { width: 46px; height: 46px; border-radius: 50%; object-fit: cover; font-size: .9rem; aspect-ratio: 1; }
.gk-stars { display: inline-flex; gap: 2px; color: #CBD5E1; }
.gk-stars .gk-icon { width: 18px; height: 18px; fill: currentColor; stroke: none; }
.gk-stars .is-on { color: #F59E0B; }
.gk-slider { position: relative; }
.gk-slider__track { display: flex; gap: var(--gk-gap); overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; }
.gk-slider__track::-webkit-scrollbar { display: none; }
.gk-slide { flex: 0 0 100%; scroll-snap-align: start; position: relative; }
.gk-slider--cards .gk-slide { flex-basis: min(100%, 360px); }
.gk-slider__nav { position: absolute; top: 50%; transform: translateY(-50%); display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid var(--gk-line); border-radius: 50%; background: var(--gk-surface); color: var(--gk-text); box-shadow: var(--gk-shadow); cursor: pointer; z-index: 2; }
.gk-slider__prev { left: -8px; }
.gk-slider__next { right: -8px; }
.no-js .gk-slider__nav, html:not(.js) .gk-slider__nav { display: none; }
.gk-slide__img { width: 100%; height: clamp(320px, 52vw, 560px); object-fit: cover; }
.gk-slide__body { position: absolute; inset: auto 0 0 0; padding: clamp(24px, 5vw, 56px); padding-bottom: 96px; color: #fff; background: linear-gradient(0deg, rgba(10, 20, 30, .75), transparent); }
.gk-slide:not(:has(img)) { min-height: clamp(320px, 46vw, 480px); background: linear-gradient(120deg, var(--gk-primary-dark), var(--gk-primary)); }
.gk-slide__title { font-size: clamp(1.6rem, 4vw, 2.8rem); max-width: 18ch; color: #fff; }
.gk-slide__body p { max-width: 52ch; opacity: .92; }
.gk-slider--mini .gk-slide__img { height: 200px; }
.gk-slider--mini .gk-slide__body { padding: 16px; }
.gk-slider--mini .gk-slide__title { font-size: 1.1rem; }

/* ---------- Hero ---------- */
.gk-hero { background: var(--gk-hero); padding-bottom: 8px; }
.gk-hero__in { display: grid; gap: 32px; align-items: center; padding-top: clamp(36px, 6vw, 72px); padding-bottom: 36px; }
@media (min-width: 900px) { .gk-hero__in { grid-template-columns: 1.15fr .85fr; } }
.gk-hero__title { font-size: clamp(2rem, 4.6vw, 3.25rem); line-height: 1.1; margin-bottom: 16px; }
.gk-hero__sub { font-size: 1.1rem; color: var(--gk-muted); max-width: 54ch; }
.gk-hero__btns { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }
.gk-hero__img { width: 100%; border-radius: calc(var(--gk-radius) * 2); aspect-ratio: 4 / 3; object-fit: cover; }
.gk-hero__art { position: relative; aspect-ratio: 1; max-width: 420px; margin-inline: auto; width: 100%; }
.gk-hero__ring { position: absolute; inset: 8%; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #fff, var(--gk-primary-soft) 60%); border: 1px solid var(--gk-line); }
.gk-hero__cross { position: absolute; inset: 0; display: grid; place-items: center; color: var(--gk-primary); }
.gk-hero__cross .gk-icon { width: 34%; height: 34%; fill: currentColor; stroke: none; filter: drop-shadow(0 18px 30px color-mix(in srgb, var(--gk-primary) 35%, transparent)); }
.gk-hero__pill { position: absolute; display: flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: 999px; background: var(--gk-surface); box-shadow: var(--gk-shadow); font-size: .85rem; font-weight: 600; }
.gk-hero__pill .gk-icon { color: var(--gk-primary); }
.gk-hero__pill--a { top: 14%; left: -2%; animation: gk-float 6s ease-in-out infinite; }
.gk-hero__pill--b { bottom: 14%; right: -2%; animation: gk-float 6s ease-in-out -3s infinite; }
@keyframes gk-float { 50% { transform: translateY(-8px); } }
.gk-hero__cari { padding: 18px; margin-bottom: 28px; }
.gk-hero--slider .gk-hero__cari { margin-top: -48px; position: relative; z-index: 3; }

/* ---------- Cari dokter & form umum ---------- */
.gk-cari { display: grid; gap: 12px; align-items: end; grid-template-columns: 1fr; }
@media (min-width: 720px) { .gk-cari { grid-template-columns: 2fr repeat(3, 1fr) auto; } }
.gk-cari-wrap { padding: 18px; margin-bottom: 28px; }
.gk-field { display: flex; flex-direction: column; gap: 6px; font-size: .85rem; font-weight: 600; color: var(--gk-muted); min-width: 0; }
.gk-field input, .gk-field select, .gk-field textarea { width: 100%; min-height: 46px; padding: 10px 14px; border: 1.5px solid var(--gk-line); border-radius: 12px; background: var(--gk-surface); font-weight: 400; font-size: 1rem; color: var(--gk-text); transition: border-color .2s, box-shadow .2s; }
.gk-field input:focus, .gk-field select:focus, .gk-field textarea:focus { outline: none; border-color: var(--gk-primary); box-shadow: 0 0 0 4px color-mix(in srgb, var(--gk-primary) 15%, transparent); }
.gk-field--full { grid-column: 1 / -1; }
.gk-result-count { color: var(--gk-muted); font-size: .9rem; }
.gk-cari__hasil.is-loading { opacity: .5; transition: opacity .2s; }
.gk-filter { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 20px; }
.gk-filter .gk-field { flex: 1 1 200px; max-width: 280px; }
.search-form { display: flex; gap: 8px; }
.search-form .search-field { flex: 1; min-height: 46px; padding: 10px 14px; border: 1.5px solid var(--gk-line); border-radius: 12px; }
.search-form .search-submit { min-height: 46px; padding: 0 18px; border: 0; border-radius: 12px; background: var(--gk-primary); color: #fff; font-weight: 600; }

/* ---------- Strip darurat ---------- */
.gk-darurat { background: var(--gk-surface); border-block: 1px solid var(--gk-line); }
.gk-darurat__in { display: grid; gap: 0; grid-template-columns: 1fr; }
@media (min-width: 800px) { .gk-darurat__in { grid-template-columns: repeat(3, 1fr); } }
.gk-darurat__in > * { display: flex; align-items: center; gap: 12px; padding: 16px 12px; color: var(--gk-text); text-decoration: none; }
.gk-darurat__in > * + * { border-top: 1px solid var(--gk-line); }
@media (min-width: 800px) { .gk-darurat__in > * + * { border-top: 0; border-left: 1px solid var(--gk-line); } }
.gk-darurat__in small { display: block; color: var(--gk-muted); font-size: .8rem; }
.gk-darurat__in b { font-size: 1.05rem; }
.gk-darurat__in > * > .gk-icon { width: 42px; height: 42px; padding: 10px; border-radius: 12px; background: var(--gk-primary-soft); color: var(--gk-primary); }
.gk-darurat__igd b { color: var(--gk-danger); font-size: 1.3rem; }
.gk-darurat__igd > .gk-icon { background: var(--gk-danger-soft) !important; color: var(--gk-danger) !important; }
.gk-darurat__arrow { margin-left: auto; width: 20px !important; height: 20px !important; padding: 0 !important; background: none !important; }

/* ---------- Statistik, tentang, cara ---------- */
.gk-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; list-style: none; margin: 32px 0 0; padding: 0; }
.gk-stats li { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: 12px; align-items: center; padding: 18px; border-radius: var(--gk-radius); background: var(--gk-surface); border: 1px solid var(--gk-line); }
.gk-stats .gk-icon { grid-row: span 2; width: 40px; height: 40px; padding: 9px; border-radius: 12px; background: var(--gk-primary-soft); color: var(--gk-primary); }
.gk-stats b { font-size: 1.6rem; line-height: 1.1; }
.gk-stats span { font-size: .85rem; color: var(--gk-muted); }
.gk-stats--footer { margin: 0 0 40px; }
.gk-stats--footer li { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .12); }
.gk-stats--footer .gk-icon { background: rgba(255, 255, 255, .1); color: #fff; }
.gk-stats--footer span { color: rgba(255, 255, 255, .7); }
.gk-tentang { display: grid; gap: 32px; align-items: center; }
@media (min-width: 900px) { .gk-tentang { grid-template-columns: 1fr 1fr; } }
.gk-tentang__img img { border-radius: calc(var(--gk-radius) * 1.5); width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.gk-cara { display: grid; gap: var(--gk-gap); grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); list-style: none; margin: 0 0 28px; padding: 0; counter-reset: cara; }
.gk-cara li { position: relative; padding: 26px; border-radius: var(--gk-radius); background: var(--gk-bg-soft); counter-increment: cara; }
.gk-cara li::after { content: counter(cara); position: absolute; top: 14px; right: 20px; font-size: 3rem; font-weight: 800; line-height: 1; color: color-mix(in srgb, var(--gk-primary) 18%, transparent); }
.gk-cara h3 { margin: 16px 0 6px; }
.gk-cara p { margin: 0; color: var(--gk-muted); }

/* ---------- Tabs ---------- */
.gk-tabs__list { display: none; gap: 6px; overflow-x: auto; margin-bottom: 16px; padding-bottom: 4px; }
.js .gk-tabs__list { display: flex; }
.gk-tabs__list button { flex: 1 0 64px; display: flex; flex-direction: column; align-items: center; min-height: 56px; padding: 8px; border: 1.5px solid var(--gk-line); border-radius: 12px; background: var(--gk-surface); cursor: pointer; font-weight: 700; }
.gk-tabs__list button small { font-weight: 500; color: var(--gk-muted); }
.gk-tabs__list button[aria-selected="true"] { background: var(--gk-primary); border-color: var(--gk-primary); color: #fff; }
.gk-tabs__list button[aria-selected="true"] small { color: rgba(255, 255, 255, .8); }
.gk-tabs__panel { padding: 8px 0 16px; }
.js .gk-tabs__panel { padding: 0; }
.js .gk-tabs__h { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.gk-besok { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); }
.gk-besok li { display: flex; flex-direction: column; padding: 12px 16px; border: 1px solid var(--gk-line); border-radius: 12px; background: var(--gk-surface); }
.gk-besok a { font-weight: 600; color: var(--gk-text); text-decoration: none; }
.gk-besok span { font-size: .88rem; color: var(--gk-muted); }

/* ---------- Tabel ---------- */
.gk-table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: .92rem; }
.gk-table th, .gk-table td { padding: 12px 14px; text-align: left; border-bottom: 1px solid var(--gk-line); vertical-align: top; }
.gk-table thead th { background: var(--gk-bg-soft); font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; color: var(--gk-muted); }
.gk-table small { display: block; color: var(--gk-muted); font-weight: 400; }
.gk-table .is-today { background: var(--gk-primary-soft); }
.gk-table thead .is-today { background: var(--gk-primary); color: #fff; }
.gk-table thead .is-today small { color: rgba(255, 255, 255, .85); }
.gk-table .is-off td { color: var(--gk-muted); }
.gk-table-wrap { overflow-x: auto; border: 1px solid var(--gk-line); border-radius: var(--gk-radius); background: var(--gk-surface); }
.gk-jadwal { min-width: 960px; }
.gk-jadwal__dokter { position: sticky; left: 0; background: var(--gk-surface); min-width: 220px; z-index: 1; }
.gk-jadwal__dokter a { display: flex; align-items: center; gap: 10px; color: var(--gk-text); text-decoration: none; }
.gk-avatar, .gk-jadwal__dokter .gk-ph { width: 42px; height: 42px; border-radius: 50%; object-fit: cover; flex: none; font-size: .8rem; aspect-ratio: 1; }
.gk-jadwal td b { display: block; font-size: .9rem; }
.gk-sesi { display: inline-block; font-size: .7rem; font-weight: 700; color: var(--gk-primary); text-transform: uppercase; letter-spacing: .04em; }
@media (max-width: 760px) {
	.gk-table-wrap { border: 0; background: none; overflow: visible; }
	.gk-jadwal { min-width: 0; }
	.gk-jadwal thead { display: none; }
	.gk-jadwal, .gk-jadwal tbody, .gk-jadwal tr { display: block; }
	.gk-jadwal tr { margin-bottom: 14px; padding: 14px; border: 1px solid var(--gk-line); border-radius: var(--gk-radius); background: var(--gk-surface); display: flex; flex-wrap: wrap; gap: 6px; }
	.gk-jadwal th, .gk-jadwal td { border: 0; padding: 0; }
	.gk-jadwal__dokter { position: static; width: 100%; margin-bottom: 6px; }
	.gk-jadwal td { padding: 6px 10px; border-radius: 10px; background: var(--gk-bg-soft); font-size: .82rem; }
	.gk-jadwal td::before { content: attr(data-label); display: block; font-weight: 700; font-size: .72rem; color: var(--gk-primary); text-transform: uppercase; }
	.gk-jadwal td.is-empty { display: none; }
	.gk-jadwal td.is-today { background: var(--gk-primary-soft); outline: 1.5px solid var(--gk-primary); }
}
.gk-table--tarif td { padding: 14px; }
.gk-num { text-align: right !important; white-space: nowrap; font-weight: 700; font-variant-numeric: tabular-nums; }

/* ---------- Tarif ---------- */
.gk-tarif__tools { position: sticky; top: 72px; z-index: 5; display: grid; gap: 12px; padding: 14px 0; background: var(--gk-bg); }
.gk-tarif__search { position: relative; }
.gk-tarif__search .gk-icon { position: absolute; left: 14px; top: 13px; color: var(--gk-muted); }
.gk-tarif__search input { padding-left: 42px; }
.gk-chips { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 2px; }
.gk-chipbtn { flex: none; min-height: 40px; padding: 6px 16px; border: 1.5px solid var(--gk-line); border-radius: 999px; background: var(--gk-surface); font-weight: 600; font-size: .88rem; cursor: pointer; }
.gk-chipbtn.is-active { background: var(--gk-primary); border-color: var(--gk-primary); color: #fff; }
.gk-tarif__group { margin-top: 24px; }
.gk-tarif__title { font-size: 1.1rem; padding-bottom: 6px; border-bottom: 2px solid var(--gk-primary); display: inline-block; }
.gk-tarif__foot { margin-top: 28px; display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }

/* ---------- Form pendaftaran ---------- */
.gk-daftar { display: flex; flex-direction: column; gap: 20px; }
.gk-step { margin: 0; padding: 20px; border: 1px solid var(--gk-line); border-radius: var(--gk-radius); background: var(--gk-surface); }
.gk-step legend { display: flex; align-items: center; gap: 10px; padding: 0 6px; font-weight: 700; font-size: 1.05rem; }
.gk-step__n { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--gk-primary); color: #fff; font-size: .9rem; }
.gk-choices { display: flex; flex-wrap: wrap; gap: 8px; }
.gk-choice { position: relative; }
.gk-choice input, .gk-date input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.gk-choice span { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 16px; border: 1.5px solid var(--gk-line); border-radius: 999px; font-weight: 600; transition: .15s; }
.gk-choice input:checked + span { background: var(--gk-primary); border-color: var(--gk-primary); color: #fff; }
.gk-choice input:focus-visible + span, .gk-date input:focus-visible + span { outline: 3px solid color-mix(in srgb, var(--gk-primary) 55%, transparent); outline-offset: 2px; }
.gk-choices--sm .gk-choice span { min-height: 44px; font-size: .9rem; color: var(--gk-text); }
.gk-dates { display: grid; grid-template-columns: repeat(auto-fill, minmax(74px, 1fr)); gap: 8px; }
.gk-date { position: relative; }
.gk-date span { display: flex; flex-direction: column; align-items: center; padding: 8px 4px; min-height: 76px; border: 1.5px solid var(--gk-line); border-radius: 12px; line-height: 1.2; text-align: center; transition: .15s; }
.gk-date b { font-size: 1.3rem; }
.gk-date small { font-size: .72rem; color: var(--gk-muted); }
.gk-date input:checked + span { background: var(--gk-primary); border-color: var(--gk-primary); color: #fff; }
.gk-date input:checked + span small { color: rgba(255, 255, 255, .85); }
.gk-date input:disabled + span { opacity: .45; background: var(--gk-bg-soft); text-decoration: line-through; cursor: not-allowed; }
.gk-date__why { font-size: .62rem; font-style: normal; text-decoration: none; display: inline-block; }
.gk-form-grid { display: grid; gap: 14px; }
@media (min-width: 640px) { .gk-form-grid { grid-template-columns: 1fr 1fr; } }
.gk-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.gk-consent { display: flex; gap: 10px; align-items: flex-start; margin-top: 16px; font-size: .9rem; }
.gk-consent input { width: 22px; height: 22px; margin-top: 2px; accent-color: var(--gk-primary); flex: none; }
.gk-alert { display: flex; gap: 12px; padding: 14px 18px; margin-bottom: 20px; border-radius: 12px; border: 1px solid; }
.gk-alert ul { margin: 0; padding-left: 18px; }
.gk-alert--error { background: #FEF2F2; border-color: #FECACA; color: #991B1B; }
.gk-alert--warn { background: #FFFBEB; border-color: #FDE68A; color: #92400E; }
.gk-alert--warn a { color: inherit; font-weight: 700; }
.gk-tiket { padding: clamp(24px, 5vw, 44px); text-align: center; }
.gk-tiket__ok { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; border-radius: 999px; background: #DCFCE7; color: #166534; font-weight: 700; }
.gk-tiket__label { margin: 18px 0 0; color: var(--gk-muted); }
.gk-tiket__no { margin: 0 0 18px; font-size: clamp(3rem, 12vw, 5rem); font-weight: 800; letter-spacing: .04em; color: var(--gk-primary); line-height: 1.1; font-variant-numeric: tabular-nums; }
.gk-tiket .gk-facts { text-align: left; margin-bottom: 18px; }
.gk-tiket__note { padding: 12px; border-radius: 12px; background: var(--gk-bg-soft); font-size: .92rem; }

/* ---------- Profil dokter ---------- */
.gk-profil { display: grid; gap: 32px; }
.gk-profil__foto img, .gk-profil__foto .gk-ph { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: calc(var(--gk-radius) * 1.5); font-size: 4rem; }
.gk-profil__info { display: flex; flex-direction: column; gap: 12px; }
.gk-profil__nama { margin: 0; }
.gk-profil__today { display: flex; gap: 8px; align-items: center; margin: 0; font-weight: 600; color: var(--gk-primary-dark); }
@media (min-width: 900px) {
	.gk-profil { grid-template-columns: 340px minmax(0, 1fr); }
	.gk-profil__foto { grid-row: span 2; }
	.gk-profil__jadwal, .gk-profil__bio { grid-column: 2; }
}
.gk-facts { display: grid; gap: 10px; margin: 0; }
.gk-facts > div { display: grid; grid-template-columns: 150px 1fr; gap: 12px; padding: 10px 0; border-bottom: 1px dashed var(--gk-line); }
.gk-facts dt { display: flex; gap: 6px; align-items: center; color: var(--gk-muted); font-size: .9rem; }
.gk-facts dd { margin: 0; font-weight: 600; }
.gk-facts--inline { grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); }
.gk-facts--inline > div { display: block; padding: 10px 14px; border: 1px solid var(--gk-line); border-radius: 12px; }
.gk-facts--inline dt { font-size: .78rem; }
.gk-contact-btns { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.gk-sosmed { display: flex; gap: 6px; list-style: none; margin: 0; padding: 0; }
.gk-sosmed a { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; color: #fff; background: rgba(255, 255, 255, .08); }
.gk-sosmed--dark a { color: var(--gk-primary); background: var(--gk-primary-soft); }
.gk-share { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 28px 0 0; font-size: .9rem; color: var(--gk-muted); }
.gk-share a { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--gk-bg-soft); color: var(--gk-text); }
.gk-share a:hover { background: var(--gk-primary); color: #fff; }

/* ---------- Grup Dokter Hari Ini ---------- */
.gk-group + .gk-group { margin-top: 44px; }
.gk-group__title { display: flex; align-items: center; gap: 10px; }
.gk-group__title .gk-icon { color: var(--gk-primary); }
.gk-group__title small { padding: 2px 10px; border-radius: 999px; background: var(--gk-primary-soft); color: var(--gk-primary-dark); font-size: .85rem; }
.gk-group--igd .gk-group__title .gk-icon { color: var(--gk-danger); }
.gk-offlist { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.gk-offlist li { padding: 16px; display: flex; flex-direction: column; gap: 4px; }

/* ---------- BPJS ---------- */
.gk-steps { list-style: none; margin: 0; padding: 0; counter-reset: s; display: grid; gap: 14px; }
.gk-steps li { position: relative; padding: 16px 18px 16px 70px; border: 1px solid var(--gk-line); border-radius: var(--gk-radius); background: var(--gk-surface); counter-increment: s; }
.gk-steps li::before { content: counter(s); position: absolute; left: 18px; top: 16px; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: var(--gk-primary); color: #fff; font-weight: 800; }
.gk-steps p { margin: 4px 0 0; color: var(--gk-muted); }
.gk-syarat { padding: 24px; margin-top: 40px; }
.gk-checks { list-style: none; margin: 0 0 18px; padding: 0; display: grid; gap: 8px; }
.gk-checks li { display: flex; gap: 10px; align-items: flex-start; }
.gk-checks .gk-icon { color: var(--gk-ok); margin-top: 3px; }
.gk-checks--2 { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.gk-faq details { border: 1px solid var(--gk-line); border-radius: 12px; background: var(--gk-surface); margin-bottom: 10px; }
.gk-faq summary { padding: 16px 48px 16px 18px; font-weight: 600; cursor: pointer; list-style: none; position: relative; }
.gk-faq summary::-webkit-details-marker { display: none; }
.gk-faq summary::after { content: "+"; position: absolute; right: 18px; top: 50%; transform: translateY(-50%); font-size: 1.4rem; color: var(--gk-primary); transition: transform .2s; }
.gk-faq details[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.gk-faq details > div { padding: 0 18px 8px; color: var(--gk-muted); }
.gk-bpjs-home { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; padding: clamp(22px, 4vw, 36px); }
.gk-bpjs-home > div { flex: 1 1 320px; }
.gk-bpjs-home p { margin: 6px 0 0; color: var(--gk-muted); }

/* ---------- CTA ---------- */
.gk-cta-wrap { display: grid; gap: var(--gk-gap); }
@media (min-width: 900px) { .gk-cta-wrap { grid-template-columns: 1.4fr 1fr; } }
.gk-cta { padding: clamp(28px, 5vw, 52px); border-radius: calc(var(--gk-radius) * 1.5); background: linear-gradient(130deg, var(--gk-primary-dark), var(--gk-primary)); color: #fff; }
.gk-cta h2 { color: #fff; max-width: 22ch; }
section.gk-cta { text-align: center; }
section.gk-cta h2 { margin-inline: auto; }
.gk-cta-kontak { padding: 24px; }

/* ---------- Kontak, jam, peta ---------- */
.gk-contact { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 10px; }
.gk-contact li { display: flex; gap: 10px; align-items: flex-start; }
.gk-contact .gk-icon { margin-top: 3px; color: var(--gk-primary); }
.gk-contact a { color: inherit; text-decoration: none; }
.gk-contact__igd a { color: var(--gk-danger); font-weight: 800; }
.gk-contact__igd .gk-icon { color: var(--gk-danger); }
.gk-hours { list-style: none; margin: 0; padding: 0; }
.gk-hours li { display: flex; justify-content: space-between; padding: 6px 0; border-bottom: 1px dashed rgba(255, 255, 255, .12); }
.gk-hours .is-today { font-weight: 700; color: #fff; }
.gk-peta iframe { width: 100%; height: 240px; border: 0; border-radius: 12px; }

/* ---------- Rekanan ---------- */
.gk-rekanan { padding: 28px 0; border-top: 1px solid rgba(255, 255, 255, .1); }
.gk-rekanan__label { font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; opacity: .7; margin-bottom: 12px; }
.gk-rekanan__list { display: flex; flex-wrap: wrap; gap: 12px; list-style: none; margin: 0; padding: 0; }
.gk-rekanan__list li > * { display: grid; place-items: center; min-height: 56px; padding: 8px 18px; border-radius: 12px; background: #fff; color: #334155; font-weight: 600; font-size: .9rem; text-decoration: none; }
.gk-rekanan__list img { max-height: 40px; width: auto; filter: grayscale(1); opacity: .85; transition: .2s; }
.gk-rekanan__list a:hover img { filter: none; opacity: 1; }
.gk-rekanan--page { border-top: 0; }
.gk-rekanan--page .gk-rekanan__list li > * { border: 1px solid var(--gk-line); }

/* ---------- Footer ---------- */
.gk-footer { background: #0F1F2A; color: rgba(255, 255, 255, .78); padding-top: 56px; font-size: .93rem; }
.gk-footer a { color: rgba(255, 255, 255, .85); }
.gk-footer a:hover { color: #fff; }
.gk-footer .gk-contact .gk-icon { color: color-mix(in srgb, var(--gk-primary) 50%, #fff); }
.gk-footer .gk-contact__igd a { color: #FCA5A5; }
.gk-footer__grid { display: grid; gap: 36px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); padding-bottom: 40px; }
.gk-footer__title { font-size: 1rem; color: #fff; margin: 0 0 14px; }
.gk-footer__title:not(:first-child) { margin-top: 26px; }
.gk-footer__about-text { margin: 16px 0; }
.gk-footer__note { font-size: .85rem; opacity: .75; margin-top: 10px; }
.gk-footer__links, .gk-footer__today { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.gk-footer__links a { text-decoration: none; }
.gk-footer__today li { display: flex; flex-direction: column; }
.gk-footer__today a { text-decoration: none; font-weight: 600; }
.gk-footer__today small { opacity: .7; }
.gk-footer__bottom { padding: 18px 0; border-top: 1px solid rgba(255, 255, 255, .1); font-size: .85rem; }
.gk-footer__bottom p { margin: 0; }
.gk-footer .gk-btn--ghost { color: #fff; border-color: rgba(255, 255, 255, .25); }

/* ---------- Bilah aksi bawah (HP) ---------- */
.gk-bottombar { display: none; }
@media (max-width: 768px) {
	.gk-has-bottombar { padding-bottom: calc(68px + env(safe-area-inset-bottom)); }
	.gk-bottombar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; padding-bottom: env(safe-area-inset-bottom); background: var(--gk-surface); border-top: 1px solid var(--gk-line); box-shadow: 0 -6px 20px rgba(15, 23, 42, .08); }
	.gk-bottombar a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: 64px; color: var(--gk-text); font-size: .72rem; font-weight: 700; text-decoration: none; }
	.gk-bottombar .gk-icon { width: 22px; height: 22px; color: var(--gk-primary); }
	.gk-bottombar__igd { background: var(--gk-danger); color: #fff !important; }
	.gk-bottombar__igd .gk-icon { color: #fff; }
	.gk-bottombar__wa .gk-icon { color: var(--gk-wa); }
	.gk-tarif__tools { top: 0; }
}

/* ---------- Widget ---------- */
.gk-widget { margin-bottom: 28px; padding: 20px; border: 1px solid var(--gk-line); border-radius: var(--gk-radius); background: var(--gk-surface); }
.gk-widget__title { font-size: 1.05rem; margin-bottom: 14px; }
.gk-widget ul { margin: 0; padding-left: 18px; }
.gk-wlist { list-style: none; margin: 0; padding: 0 !important; display: grid; gap: 4px; }
.gk-wlist li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 2px 8px; padding: 8px 0; border-bottom: 1px dashed var(--gk-line); }
.gk-wlist a { font-weight: 600; text-decoration: none; color: var(--gk-text); }
.gk-wlist small { color: var(--gk-muted); display: flex; gap: 6px; align-items: center; }
.gk-wgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.gk-wgrid img { border-radius: 8px; aspect-ratio: 1; object-fit: cover; }
.gk-wbig b { font-size: 2.2rem; color: var(--gk-ok); }
.gk-wdarurat { display: grid; gap: 10px; }
.gk-embed { position: relative; aspect-ratio: 16 / 9; border-radius: var(--gk-radius); overflow: hidden; background: #000; }
.gk-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; }

/* ---------- Konten ---------- */
.gk-prose { font-size: 1.02rem; }
.gk-prose > * + * { margin-top: 1em; }
.gk-prose img { border-radius: 12px; }
.gk-prose blockquote { margin: 1.5em 0; padding: 4px 20px; border-left: 4px solid var(--gk-primary); color: var(--gk-muted); }
.gk-prose table { width: 100%; border-collapse: collapse; }
.gk-prose td, .gk-prose th { padding: 8px; border: 1px solid var(--gk-line); }
.gk-intro { margin-bottom: 28px; }
.gk-feature { margin: 0 0 24px; }
.gk-feature img { width: 100%; border-radius: var(--gk-radius); }
.gk-feature--logo img { max-width: 320px; margin: auto; }
.gk-layanan-head { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin-bottom: 20px; }
.gk-layanan-head p { margin: 0; display: flex; gap: 6px; align-items: center; color: var(--gk-muted); }
.alignwide { margin-inline: calc(-1 * min(8vw, 120px)); }
.alignfull { margin-inline: calc(50% - 50vw); }
.wp-caption-text, figcaption { font-size: .85rem; color: var(--gk-muted); }
.sticky .gk-card__title::before { content: "★ "; color: #F59E0B; }

/* ---------- Pagination & komentar ---------- */
.gk-pagination { margin-top: 36px; }
.gk-pagination ul { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; list-style: none; margin: 0; padding: 0; }
.gk-pagination .page-numbers { display: grid; place-items: center; min-width: 44px; height: 44px; padding: 0 12px; border: 1px solid var(--gk-line); border-radius: 12px; color: var(--gk-text); text-decoration: none; font-weight: 600; }
.gk-pagination .current { background: var(--gk-primary); border-color: var(--gk-primary); color: #fff; }
.gk-comments { margin-top: 48px; }
.gk-comments__list { list-style: none; padding: 0; }
.gk-comments__list .children { list-style: none; padding-left: 24px; }
.comment-body { padding: 16px 0; border-bottom: 1px solid var(--gk-line); }
.comment-author img { border-radius: 50%; float: left; margin-right: 12px; }
.comment-form input:not([type="checkbox"]):not([type="submit"]), .comment-form textarea { width: 100%; padding: 10px 14px; border: 1.5px solid var(--gk-line); border-radius: 12px; }
.comment-form .submit { min-height: 46px; padding: 0 22px; border: 0; border-radius: 999px; background: var(--gk-primary); color: #fff; font-weight: 600; cursor: pointer; }
.nav-links { display: flex; justify-content: space-between; gap: 16px; margin-top: 32px; }

/* ---------- Animasi masuk ---------- */
@media (prefers-reduced-motion: no-preference) {
	.js body:not(.gk-no-anim) .gk-reveal { opacity: 0; transform: translateY(16px); transition: opacity .6s ease, transform .6s ease; }
	.js body:not(.gk-no-anim) .gk-reveal.is-in { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* ---------- Cetak ---------- */
@media print {
	.gk-topbar, .gk-header, .gk-footer, .gk-bottombar, .gk-share { display: none !important; }
	.gk-tiket { box-shadow: none; border: 2px solid #000; }
}
