/* ==========================================================================
   Semeton Child — gaya global, header/footer, dan section halaman Elementor.
   Token warna/ukuran ada di semeton-core/assets/css/components.css (:root --smt-*).
   Konvensi: widget Elementor diberi class "smt-w-*" (lihat scripts/seed.php).
   ========================================================================== */

html { scroll-behavior: smooth; }
body {
	margin: 0;
	background: var(--smt-surface, #f8f9fa);
	color: var(--smt-text, #111827);
	font-family: var(--smt-font);
	font-size: 16px;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}
a { color: var(--smt-green-dark); }
img { max-width: 100%; height: auto; }
::selection { background: #c9f0d8; color: var(--smt-text); }
:focus-visible { outline: 3px solid rgba(0, 177, 79, .35); outline-offset: 2px; }

/* Skip link */
.skip-link.screen-reader-text:focus { z-index: 100000; clip: auto; width: auto; height: auto; padding: 12px 18px; background: #fff; color: var(--smt-text); }

/* ---------- Header (Theme Builder) ---------- */
.elementor-location-header {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 1000;
}
.smt-header {
	min-height: var(--smt-header-h);
	border-bottom: 1px solid var(--smt-border);
	background: rgba(248, 249, 250, .92);
	backdrop-filter: saturate(160%) blur(12px);
	-webkit-backdrop-filter: saturate(160%) blur(12px);
	transition: box-shadow .25s;
}
.smt-header.is-scrolled, .is-scrolled .smt-header { box-shadow: 0 6px 24px -14px rgba(17, 24, 39, .25); }
.smt-logo { display: inline-flex; align-items: center; text-decoration: none; }
.smt-logo .smt-logo__img, .elementor .smt-logo .smt-logo__img { display: block; width: auto; max-width: none; height: 28px; }
.smt-logo--footer .smt-logo__img, .elementor .smt-logo--footer .smt-logo__img { height: 32px; }
.smt-header__logo, .smt-header__actions { flex-shrink: 0; }
.smt-nav .elementor-nav-menu--main .elementor-nav-menu { justify-content: center; }
.smt-logo__text { color: var(--smt-text); font: 800 24px var(--smt-font-alt); letter-spacing: -.03em; }
.smt-logo__text b { color: var(--smt-green); }

/* Nav menu Elementor Pro */
.smt-nav .elementor-nav-menu--main .elementor-item {
	position: relative;
	padding: 26px 15px;
	color: var(--smt-text-2);
	font: 500 14px/1 var(--smt-font);
	transition: color .2s;
}
.smt-nav .elementor-nav-menu--main .elementor-item:hover,
.smt-nav .elementor-nav-menu--main .elementor-item:focus { color: var(--smt-text); }
.smt-nav .elementor-nav-menu--main .elementor-item.elementor-item-active { color: var(--smt-green-dark); font-weight: 600; }
.smt-nav .elementor-nav-menu--main .elementor-item.elementor-item-active::after {
	content: "";
	position: absolute;
	right: 15px;
	bottom: 18px;
	left: 15px;
	height: 2px;
	border-radius: 2px;
	background: var(--smt-green);
}
.smt-nav .elementor-menu-toggle {
	width: 44px;
	height: 44px;
	border: 1px solid var(--smt-border);
	border-radius: 50%;
	background: #fff;
	color: var(--smt-text);
	font-size: 20px;
}
.smt-nav .elementor-nav-menu--dropdown {
	margin-top: 12px;
	border: 1px solid var(--smt-border);
	border-radius: 18px;
	background: #fff;
	box-shadow: var(--smt-shadow-lg);
	overflow: hidden;
}
.smt-nav .elementor-nav-menu--dropdown .elementor-item {
	padding: 16px 22px !important;
	border-bottom: 1px solid #f1f3f5;
	color: var(--smt-text);
	font: 600 15px var(--smt-font);
}
.smt-nav .elementor-nav-menu--dropdown .elementor-item.elementor-item-active,
.smt-nav .elementor-nav-menu--dropdown .elementor-item:hover { background: var(--smt-green-soft); color: var(--smt-green-dark); }

/* ---------- Section halaman ---------- */
.smt-sec { border-top: 1px solid var(--smt-border); }
.smt-sec--first { border-top: 0; }
.smt-sec--white { background: #fff; }

.smt-w-eyebrow .elementor-heading-title {
	font: 800 12px/1.4 var(--smt-font);
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--smt-green-dark);
}
.smt-w-h1 .elementor-heading-title {
	font: 800 clamp(38px, 5vw, 64px)/1.04 var(--smt-font);
	letter-spacing: -.045em;
	color: var(--smt-text);
	text-wrap: balance;
}
.smt-w-h2 .elementor-heading-title {
	font: 800 clamp(30px, 4vw, 46px)/1.1 var(--smt-font);
	letter-spacing: -.035em;
	color: var(--smt-text);
	text-wrap: balance;
}
.smt-w-h3 .elementor-heading-title { font: 800 22px/1.3 var(--smt-font); letter-spacing: -.02em; color: var(--smt-text); }
.smt-w-h3-muted .elementor-heading-title { font: 700 21px/1.35 var(--smt-font); color: #4b5563; letter-spacing: -.01em; }
.smt-w-lead, .smt-w-lead p { color: var(--smt-muted); font: 400 17px/1.7 var(--smt-font); }
.smt-w-lead p:last-child, .smt-w-text p:last-child { margin-bottom: 0; }
.smt-w-text, .smt-w-text p { color: #4b5563; font: 400 17px/1.72 var(--smt-font); }
.smt-w-text strong, .smt-w-text a { color: #374151; font-weight: 700; }
.smt-w-text a { text-decoration: none; }
.smt-w-text a:hover { color: var(--smt-green-dark); }
.smt-w-small, .smt-w-small p { color: var(--smt-muted); font: 400 14.5px/1.7 var(--smt-font); }
.smt-w-small strong { color: #374151; }

/* Tombol Elementor (widget Button) mengikuti .smt-btn */
.smt-w-btn .elementor-button {
	display: inline-flex;
	align-items: center;
	min-height: 46px;
	padding: 0 22px;
	border: 1px solid transparent;
	border-radius: 999px;
	font: 800 12px/1 var(--smt-font);
	letter-spacing: .08em;
	text-transform: uppercase;
	transition: background-color .2s, color .2s, border-color .2s, box-shadow .2s, transform .2s;
}
.smt-w-btn .elementor-button:hover { transform: translateY(-1px); }
.smt-w-btn--primary .elementor-button { background: var(--smt-green); color: #fff; }
.smt-w-btn--primary .elementor-button:hover { background: #009a45; color: #fff; box-shadow: 0 10px 24px -10px rgba(0, 177, 79, .7); }
.smt-w-btn--light .elementor-button { background: #fff; color: var(--smt-text); border-color: var(--smt-border); }
.smt-w-btn--light .elementor-button:hover { border-color: var(--smt-green); color: var(--smt-green-dark); }
.smt-w-btn--white .elementor-button { background: #fff; color: var(--smt-text); }
.smt-w-btn--white-green .elementor-button { background: #fff; color: var(--smt-green-dark); }
.smt-w-btn--white .elementor-button:hover, .smt-w-btn--white-green .elementor-button:hover { box-shadow: 0 10px 26px -12px rgba(0, 0, 0, .45); }
.smt-w-link .elementor-button { padding: 0; min-height: 0; background: none; color: var(--smt-green-dark); font: 800 14px var(--smt-font); letter-spacing: 0; text-transform: none; }
.smt-w-link .elementor-button-icon { font-size: 16px; }

/* Baris kartu: kolom sama lebar & boleh menyusut (desktop) */
@media (min-width: 1025px) {
	.smt-cards-row > .elementor-element { flex: 1 1 0 !important; min-width: 0; }
}
@media (min-width: 768px) and (max-width: 1024px) {
	.smt-cards-row > .elementor-widget { flex: 1 1 0 !important; min-width: 0; }
}

/* Kolom footer */
.smt-footer-cols.e-con { display: grid !important; grid-template-columns: 1.7fr 1fr 1fr 1.15fr; gap: 40px; }
.smt-footer-cols.e-con > .e-con { width: auto !important; }

/* Kepala section dengan tombol di kanan */
.smt-head-row { align-items: flex-end !important; }

/* Hero halaman dalam */
.smt-page-hero__badge { display: inline-flex; }
.smt-hero-card {
	position: relative;
	overflow: hidden;
	border-radius: var(--smt-radius-lg);
	box-shadow: 0 30px 70px -30px rgba(17, 24, 39, .35);
}
.smt-hero-card img, .elementor .smt-hero-card img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.smt-hero-card__caption {
	position: absolute;
	right: 16px;
	bottom: 16px;
	left: 16px;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 16px;
	border-radius: 16px;
	background: rgba(255, 255, 255, .9);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	font-style: normal;
}
.smt-hero-card__caption .material-symbols-outlined { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--smt-green-soft); color: var(--smt-green-dark); font-size: 22px; }
.smt-hero-card__caption strong { display: block; color: var(--smt-text); font: 800 17px var(--smt-font); }
.smt-hero-card__caption span:not(.material-symbols-outlined) { color: var(--smt-muted); font-size: 13px; }
.smt-hero-card__caption > .material-symbols-outlined:last-child { margin-left: auto; background: none; }

.smt-minifeatures { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.smt-minifeature { padding: 16px; border: 1px solid var(--smt-border); border-radius: 16px; background: #fff; }
.smt-minifeature .material-symbols-outlined { color: var(--smt-green-dark); font-size: 22px; }
.smt-minifeature strong { display: block; margin: 8px 0 4px; color: var(--smt-text); font: 800 14px/1.3 var(--smt-font); }
.smt-minifeature span:not(.material-symbols-outlined) { color: var(--smt-muted); font-size: 12.5px; line-height: 1.45; }
.smt-chiprow { display: flex; flex-wrap: wrap; gap: 8px; }

/* Kartu layanan besar (Transportation) */
.smt-service {
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: 28px;
	border: 1px solid var(--smt-border);
	border-radius: 22px;
	background: var(--smt-surface);
	text-decoration: none;
	transition: box-shadow .25s, border-color .25s, transform .25s;
}
.smt-service:hover { border-color: #cdeedb; box-shadow: var(--smt-shadow-lg); transform: translateY(-2px); }
.smt-service > .material-symbols-outlined { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 14px; background: var(--smt-green-soft); color: var(--smt-green-dark); font-size: 26px; }
.smt-service h3 { margin: 22px 0 10px; color: var(--smt-text); font: 800 24px/1.25 var(--smt-font); letter-spacing: -.02em; }
.smt-service p { margin: 0 0 26px; color: #4b5563; font-size: 15.5px; line-height: 1.65; }
.smt-service__cta { display: flex; align-items: center; justify-content: space-between; margin-top: auto; color: var(--smt-green-dark); font: 800 13px var(--smt-font); letter-spacing: .08em; text-transform: uppercase; }

/* Langkah (how it works) */
.smt-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; counter-reset: step; }
.smt-step { position: relative; padding: 24px 22px; border: 1px solid var(--smt-border); border-radius: 18px; background: #fff; }
.smt-step::before { counter-increment: step; content: counter(step, decimal-leading-zero); display: block; margin-bottom: 18px; color: var(--smt-green); font: 800 14px var(--smt-font); letter-spacing: .12em; }
.smt-step h3 { margin: 0 0 6px; color: var(--smt-text); font: 800 18px/1.3 var(--smt-font-alt); }
.smt-step p { margin: 0; color: var(--smt-muted); font-size: 14px; line-height: 1.6; }

/* CTA hijau */
.smt-cta { border-radius: 28px; background: var(--smt-green-dark); overflow: hidden; position: relative; }
.smt-cta::after {
	content: "";
	position: absolute;
	top: -120px;
	right: -80px;
	width: 380px;
	height: 380px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(0, 177, 79, .55), transparent 70%);
	pointer-events: none;
}
.smt-cta > * { position: relative; z-index: 1; }
.smt-cta .smt-w-eyebrow .elementor-heading-title { color: #a8e6c1; font-size: 15px; letter-spacing: .14em; }
.smt-cta .smt-w-h2 .elementor-heading-title { color: #fff; }
.smt-cta .smt-w-lead, .smt-cta .smt-w-lead p { color: rgba(255, 255, 255, .85); }

/* Kartu SEO / area */
.smt-seo-card { border: 1px solid var(--smt-border); border-radius: 18px; background: #fff; }
.smt-seo-card .smt-w-h3 .elementor-heading-title { font-size: 20px; }

/* Tentang / angka */
.smt-statgrid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.smt-statbox { padding: 22px; border: 1px solid var(--smt-border); border-radius: 18px; background: #fff; text-align: center; }
.smt-statbox strong { display: block; color: var(--smt-green-dark); font: 800 34px/1.1 var(--smt-font); letter-spacing: -.03em; }
.smt-statbox span { display: block; margin-top: 6px; color: var(--smt-muted); font: 700 11.5px var(--smt-font); letter-spacing: .12em; text-transform: uppercase; }

/* Konten legal */
.smt-legal h2 { margin: 36px 0 10px; color: var(--smt-text); font: 800 22px var(--smt-font); letter-spacing: -.02em; }
.smt-legal p, .smt-legal li { color: #4b5563; font-size: 16px; line-height: 1.75; }

/* ---------- Footer (Theme Builder) ---------- */
.smt-footer { border-top: 1px solid var(--smt-border); background: #fff; }
.smt-footer-brand p { margin: 0 0 12px; color: var(--smt-muted); font-size: 14.5px; line-height: 1.7; }
.smt-footer-brand p b { color: var(--smt-text); }
.smt-footer-brand .smt-logo { margin-bottom: 18px; }
.smt-footer-title .elementor-heading-title { color: var(--smt-text); font: 800 13px var(--smt-font); letter-spacing: .12em; text-transform: uppercase; }
.smt-footer-menu .elementor-nav-menu--main .elementor-item,
.smt-footer-links a {
	padding: 7px 0 !important;
	color: var(--smt-muted) !important;
	font: 400 15px/1.5 var(--smt-font) !important;
	text-decoration: none;
}
.smt-footer-menu .elementor-nav-menu--main .elementor-item:hover,
.smt-footer-links a:hover { color: var(--smt-green-dark) !important; }
.smt-footer-menu .elementor-nav-menu--main .elementor-item::after { display: none; }
.smt-footer-links { margin: 0; padding: 0; list-style: none; }
.smt-footer-links li { padding: 0; }
.smt-footer-links a { display: inline-block; }
.smt-footer-note { margin: 12px 0 0; color: var(--smt-muted); font-size: 14.5px; line-height: 1.65; }
.smt-social { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
.smt-social a { padding: 7px 12px; border: 1px solid var(--smt-border); border-radius: 999px; color: var(--smt-text-2); font: 700 12px var(--smt-font); text-decoration: none; }
.smt-social a:hover { border-color: var(--smt-green); color: var(--smt-green-dark); }
.smt-footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; padding-top: 26px; border-top: 1px solid var(--smt-border); }
.smt-footer-bottom p { margin: 0; color: var(--smt-muted); font-size: 13px; }

@media (max-width: 480px) {
	.smt-header .smt-header-book { display: none; }
}

/* ---------- Fallback header/footer (tanpa Elementor Pro) ---------- */
.smt-fallback-header { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 1000; }
.smt-fallback-header .smt-wrap { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: var(--smt-header-h); }
.smt-fallback-nav ul { display: flex; gap: 6px; margin: 0; padding: 0; list-style: none; }
.smt-fallback-nav a { display: block; padding: 10px 14px; color: var(--smt-text-2); font: 500 14px var(--smt-font); text-decoration: none; }
.smt-fallback-nav .current-menu-item a { color: var(--smt-green-dark); font-weight: 600; }
.smt-fallback-footer { padding: 56px 0 28px; }

/* ---------- Halaman pencarian ---------- */
.smt-search-page { padding: 64px 0 96px; }
.smt-search-page__head { margin-bottom: 32px; }
.smt-search-page .smt-search { margin-top: 20px; }
.smt-search-group + .smt-search-group { margin-top: 48px; }
.smt-search-group h2 { margin: 0 0 18px; font: 800 22px var(--smt-font); }

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
	.smt-nav .elementor-nav-menu--dropdown .elementor-item { padding: 15px 20px !important; }
	.smt-footer-cols.e-con { grid-template-columns: 1fr 1fr; }
	.smt-footer-cols.e-con > .e-con:first-child { grid-column: 1 / -1; }
	.smt-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.smt-statgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
	:root { --smt-header-h: 64px; }
	.smt-header > .e-con-inner > .smt-nav, .smt-header > .smt-nav { order: 3; flex-grow: 0 !important; }
	.smt-header .smt-header-actions { gap: 8px; }
	.smt-logo .smt-logo__img, .elementor .smt-logo .smt-logo__img { height: 22px; }
	.smt-footer-cols.e-con { grid-template-columns: 1fr; gap: 28px; }
	.smt-minifeatures { grid-template-columns: 1fr; }
	.smt-steps { grid-template-columns: 1fr; }
	.smt-cta { border-radius: 22px; }
	.smt-w-text, .smt-w-text p { font-size: 16px; }
	.smt-fallback-nav { display: none; }
	.smt-service { padding: 22px; }
}
