/*
Theme Name: Arenga Theme
Theme URI: https://arenga.id
Author: Arenga
Author URI: https://arenga.id
Description: Custom WordPress theme for Arenga (aren sugar brand), built from scratch without a page builder.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: arenga-theme
*/

/* ==========================================================================
   Design Tokens
   ========================================================================== */

:root {
	/* Colors */
	--color-green: #0e3a2e;
	--color-brown: #4a2d18;
	--color-yellow: #f8a938;
	--color-white: #ffffff;
	--color-black: #1a1512;

	/* Fonts */
	--font-heading: 'Philosopher', serif;
	--font-body: 'Inter', sans-serif;

	/* Type scale — Desktop */
	--fs-h1: 60px;
	--lh-h1: 72px;

	--fs-h2: 36px;
	--lh-h2: 52px;

	--fs-h3: 24px;
	--lh-h3: 35px;

	--fs-body: 18px;
	--lh-body: 30px;

	--fs-banner-h1: 65px;
	--lh-banner-h1: 78px;

	--fs-button: 20px;

	/* Tinggi header: padding 18px x2 + tinggi logo 40px + border 1px.
	   Dipakai juga sebagai padding-top <body> karena header-nya fixed. */
	--header-height: 77px;
}

/* Type scale — Mobile */
@media (max-width: 767px) {
	:root {
		--fs-h1: 25px;
		--lh-h1: 28px;

		--fs-h2: 16px;
		--lh-h2: 20px;

		--fs-h3: 14px;
		--lh-h3: 18px;

		--fs-body: 14px;
		--lh-body: 18px;

		/* Padding header-nya lebih kecil di mobile: 14px x2 + 40 + 1. */
		--header-height: 69px;
	}
}

/* ==========================================================================
   Base
   ========================================================================== */

* {
	box-sizing: border-box;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

body {
	margin: 0;
	/* Ngasih ruang buat .site-header yang position:fixed, biar konten
	   paling atas nggak ketiban header. */
	padding-top: var(--header-height);
	font-family: var(--font-body);
	font-size: var(--fs-body);
	line-height: var(--lh-body);
	color: var(--color-black);
	background-color: var(--color-white);

	/*
	 * Sticky footer: di halaman yang isinya dikit (mis. kategori blog masih
	 * kosong), <main> ngembang ngisi sisa layar biar footer-nya nggak naik ke
	 * tengah dan halamannya nggak kelihatan kepotong.
	 *
	 * Aman dibikin flex: anak <body> yang ikut flow cuma <main> sama <footer>.
	 * .site-header, .mobile-menu, dan .wa-float semuanya position:fixed, jadi
	 * keluar dari flow dan nggak jadi flex item. min-height 100vh udah termasuk
	 * padding-top karena box-sizing global-nya border-box.
	 */
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

body > main {
	flex: 1 0 auto;
}

/*
 * Admin bar WP nambah margin-top di <html>, jadi 100vh bakal kelebihan dan
 * bikin scrollbar tipis. Angkanya ngikutin breakpoint admin bar-nya sendiri,
 * sama kayak yang dipakai .site-header di atas.
 */
body.admin-bar {
	min-height: calc(100vh - 32px);
}

@media screen and (max-width: 782px) {
	body.admin-bar {
		min-height: calc(100vh - 46px);
	}
}

@media screen and (max-width: 600px) {
	/* Di bawah 600px admin bar-nya ikut ke-scroll, bukan fixed. */
	body.admin-bar {
		min-height: 100vh;
	}
}

body.mobile-menu-is-open {
	overflow: hidden;
}

h1,
h2,
h3 {
	font-family: var(--font-heading);
	color: var(--color-green);
	margin: 0 0 1em;
}

h1 {
	font-size: var(--fs-h1);
	line-height: var(--lh-h1);
}

h1.banner-title {
	font-size: var(--fs-banner-h1);
	line-height: var(--lh-banner-h1);
}

h2 {
	font-size: var(--fs-h2);
	line-height: var(--lh-h2);
}

h3 {
	font-size: var(--fs-h3);
	line-height: var(--lh-h3);
}

p {
	font-size: var(--fs-body);
	line-height: var(--lh-body);
	margin: 0 0 1em;
}

a {
	color: var(--color-brown);
}

button,
.button,
input[type="submit"] {
	display: inline-block;
	font-family: var(--font-body);
	font-size: var(--fs-button);
	color: var(--color-white);
	background-color: var(--color-green);
	border: none;
	border-radius: 999px;
	padding: 0.75em 1.75em;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}

button:hover,
.button:hover,
input[type="submit"]:hover {
	background-color: var(--color-brown);
}

.button--yellow {
	background-color: var(--color-yellow);
	color: var(--color-white);
	font-weight: 700;
}

.button--yellow:hover {
	background-color: var(--color-brown);
	color: var(--color-white);
}

/* ==========================================================================
   Layout
   ========================================================================== */

.site-footer {
	background-color: var(--color-green);
	color: var(--color-white);
}

.site-footer a {
	color: var(--color-white);
}

.site-main {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}

.container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}

/* ==========================================================================
   Site Header
   ========================================================================== */

/*
 * Header nempel di atas pas discroll. z-index 1000 sengaja di bawah admin
 * bar WordPress (99999) supaya nggak nutupin toolbar-nya, dan di bawah
 * .mobile-menu (999999) yang sekarang jadi sibling di luar <header>.
 */
.site-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 1000;
	background-color: var(--color-white);
	border-bottom: 1px solid #ececec;
	box-shadow: 0 2px 10px rgba(26, 21, 18, 0.08);
}

/*
 * Admin bar WordPress fixed di atas layar, jadi header-nya digeser turun
 * biar nggak ketiban. Tingginya 32px di layar besar, 46px di bawah 782px,
 * dan di bawah 600px admin bar-nya jadi absolute (ikut ke-scroll) — jadi
 * header balik ke top: 0.
 */
body.admin-bar .site-header {
	top: 32px;
}

@media screen and (max-width: 782px) {
	body.admin-bar .site-header {
		top: 46px;
	}
}

@media screen and (max-width: 600px) {
	body.admin-bar .site-header {
		top: 0;
	}
}

.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 40px;
	padding: 18px 20px;
}

.site-logo-link {
	display: inline-flex;
}

.site-logo {
	display: block;
	height: 40px;
	width: auto;
}

.primary-navigation {
	flex: 1 1 auto;
	display: flex;
	justify-content: center;
}

.primary-menu {
	display: flex;
	align-items: center;
	gap: 32px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.primary-menu li {
	position: relative;
}

.primary-menu > li > a {
	display: inline-flex;
	align-items: center;
	padding: 6px 0;
	font-size: 15px;
	font-weight: 500;
	color: var(--color-green);
	text-decoration: none;
	border-bottom: 2px solid transparent;
}

.primary-menu > li > a:hover {
	color: var(--color-brown);
}

.primary-menu > li.current-menu-item > a {
	font-weight: 600;
	border-bottom-color: var(--color-brown);
}

.primary-menu .menu-item-has-children > a::after {
	content: "";
	display: inline-block;
	width: 6px;
	height: 6px;
	margin-left: 7px;
	margin-bottom: 3px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg);
}

.primary-menu .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 20;
	min-width: 180px;
	margin: 0;
	padding: 8px 0;
	list-style: none;
	background-color: var(--color-white);
	border-radius: 8px;
	box-shadow: 0 12px 28px rgba(26, 21, 18, 0.14);
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
}

.primary-menu li:hover > .sub-menu,
.primary-menu li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.primary-menu .sub-menu a {
	display: block;
	padding: 8px 18px;
	font-size: 14px;
	color: var(--color-black);
	text-decoration: none;
	white-space: nowrap;
}

.primary-menu .sub-menu a:hover {
	background-color: #f8f5f0;
	color: var(--color-brown);
}

.site-header__actions {
	display: flex;
	align-items: center;
	gap: 16px;
}

.icon-button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border: none;
	border-radius: 50%;
	background-color: var(--color-green);
	color: var(--color-white);
	padding: 0;
	cursor: pointer;
}

.icon-button:hover {
	background-color: var(--color-brown);
}

.mobile-menu-toggle {
	display: none;
	background-color: transparent;
	color: var(--color-green);
}

.mobile-menu-toggle:hover {
	background-color: transparent;
	color: var(--color-brown);
}

.lang-switch {
	display: flex;
	align-items: stretch;
	border: 1px solid var(--color-green);
	border-radius: 999px;
	overflow: hidden;
}

.lang-switch__option {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	padding: 6px 14px;
	font-size: 13px;
	font-weight: 600;
	color: #9a9a9a;
	background-color: transparent;
	text-decoration: none;
}

.lang-switch__option.is-active {
	background-color: var(--color-green);
	color: var(--color-white);
}

.site-header__search-panel {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	z-index: 30;
	max-height: 0;
	overflow: hidden;
	opacity: 0;
	background-color: var(--color-white);
	border-bottom: 1px solid #ececec;
	box-shadow: 0 16px 28px rgba(26, 21, 18, 0.1);
	transition: max-height 0.25s ease, opacity 0.2s ease;
}

.site-header__search-panel.is-open {
	max-height: 120px;
	opacity: 1;
}

.site-search-form {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 16px 0;
}

.site-search-form__input {
	flex: 1 1 auto;
	font-family: var(--font-body);
	font-size: 16px;
	color: var(--color-black);
	background: transparent;
	border: none;
	border-bottom: 1px solid #ddd;
	padding: 8px 2px;
}

.site-search-form__input:focus {
	outline: none;
	border-bottom-color: var(--color-green);
}

.site-search-form__submit {
	flex: 0 0 auto;
}

/*
 * Tombol search di navbar mobile. Di desktop disembunyiin karena ikonnya
 * sudah ada di .site-header__actions; di mobile dia yang gantiin, ditaruh di
 * kiri (mirror-nya tombol hamburger di kanan).
 */
.header-search-toggle--mobile {
	display: none;
}

@media (max-width: 767px) {
	.primary-navigation,
	.site-header__actions {
		display: none;
	}

	.header-search-toggle--mobile {
		display: flex;
		position: absolute;
		left: 20px;
		top: 50%;
		transform: translateY(-50%);
	}

	/* Panelnya dipakai bareng sama versi desktop, jadi jangan di-hide di
	   mobile — cuma dirapetin dikit paddingnya. */
	.site-search-form {
		padding: 12px 0;
	}

	.site-header__search-panel.is-open {
		max-height: 100px;
	}

	.site-header__inner {
		position: relative;
		justify-content: center;
		padding: 14px 20px;
	}

	.mobile-menu-toggle {
		display: flex;
		position: absolute;
		right: 20px;
		top: 50%;
		transform: translateY(-50%);
	}
}

/* ==========================================================================
   Mobile Menu
   ========================================================================== */

.mobile-menu {
	position: fixed;
	inset: 0;
	/* Higher than WP admin bar's z-index (99999) so the overlay isn't
	 * cropped/covered by it when viewed while logged in. */
	z-index: 999999;
	background-color: var(--color-white);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-8px);
	overflow-y: auto;
	transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s ease;
}

.mobile-menu.is-open {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.mobile-menu__topbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-top: 18px;
	padding-bottom: 18px;
}

.mobile-menu__logo-link {
	display: inline-flex;
}

.mobile-menu__logo {
	display: block;
	height: 40px;
	width: auto;
}

.mobile-menu__close {
	background-color: transparent;
	color: var(--color-green);
}

.mobile-menu__close:hover {
	background-color: transparent;
	color: var(--color-brown);
}

.mobile-menu__divider {
	border-top: 1px solid #ececec;
}

.mobile-menu__body {
	padding-top: 20px;
	padding-bottom: 40px;
}

.mobile-search-panel {
	max-height: 0;
	overflow: hidden;
	opacity: 0;
	transition: max-height 0.25s ease, opacity 0.2s ease, margin-bottom 0.25s ease;
}

.mobile-search-panel.is-open {
	max-height: 80px;
	opacity: 1;
	margin-bottom: 16px;
}

.mobile-search-form {
	display: flex;
	align-items: center;
	gap: 10px;
	border: 1px solid var(--color-green);
	border-radius: 8px;
	padding: 10px 14px;
	color: var(--color-green);
}

.mobile-search-form__icon {
	display: inline-flex;
	flex: 0 0 auto;
}

.mobile-search-form__input {
	flex: 1 1 auto;
	min-width: 0;
	font-family: var(--font-body);
	font-size: 15px;
	color: var(--color-black);
	background: transparent;
	border: none;
}

.mobile-search-form__input:focus {
	outline: none;
}

.mobile-menu__nav .primary-menu {
	display: block;
}

.mobile-menu__nav .primary-menu > li > a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 0;
	font-size: 18px;
	font-weight: 500;
	color: var(--color-black);
	border-bottom: none;
}

.mobile-menu__nav .primary-menu > li.current-menu-item > a {
	color: var(--color-brown);
	font-weight: 600;
}

.mobile-menu__nav .primary-menu .menu-item-has-children > a::after {
	width: 8px;
	height: 8px;
	border-width: 1.8px;
	margin-left: 8px;
	margin-bottom: 1px;
}

.mobile-menu__nav .primary-menu .menu-item-has-children.is-open > a::after {
	transform: rotate(225deg);
	margin-bottom: -3px;
}

.mobile-menu__nav .sub-menu {
	position: static;
	visibility: visible;
	opacity: 1;
	transform: none;
	box-shadow: none;
	background: transparent;
	max-height: 0;
	overflow: hidden;
	margin: 0;
	padding: 0;
	transition: max-height 0.25s ease;
}

.mobile-menu__nav .menu-item-has-children.is-open > .sub-menu {
	max-height: 200px;
}

.mobile-menu__nav .sub-menu a {
	padding: 10px 0;
	font-size: 16px;
	color: var(--color-black);
}

.lang-switch--mobile {
	margin-top: 16px;
	width: 100%;
	max-width: 280px;
}

.lang-switch--mobile .lang-switch__option {
	flex: 1 1 50%;
	height: 44px;
	font-size: 15px;
}

@media (min-width: 768px) {
	.mobile-menu,
	.mobile-menu-toggle {
		display: none !important;
	}
}

/* ==========================================================================
   Hero Banner
   ========================================================================== */

.hero-banner {
	position: relative;
	color: var(--color-white);
	/* Nahan slide tetangga yang lagi nunggu giliran di kiri/kanan rel. */
	overflow: hidden;
}

/*
 * Rel geser. Tiap slide selebar 100% .hero-banner dan sengaja meluber keluar
 * rel-nya — rel sendiri tetap 100%, jadi translateX(-100%) pas geser tepat
 * satu layar. Kalau rel-nya dibikin selebar total slide, 1 langkah = 300%.
 */
.hero-banner__slides {
	display: flex;
	transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
	will-change: transform;
}

.hero-banner__slide {
	position: relative;
	flex: 0 0 100%;
	display: flex;
	align-items: center;
	min-height: clamp(720px, 90vh, 900px);
	background-color: var(--color-black);
	background-image: var(--hero-bg-desktop);
	background-size: cover;
	background-position: right center;
	background-repeat: no-repeat;
}

/*
 * Overlay rata, bukan gradien kiri-ke-kanan. Diukur dari mock: alpha-nya 0.45
 * konstan di semua posisi x (paling jelas kebaca di slide 2 yang fotonya
 * terang). Gradien lama (0.82 di kiri) di-tune buat foto hero yang lama —
 * dipakai ke foto baru bikin sisi kirinya kegelapan.
 */
.hero-banner__slide::before {
	content: "";
	position: absolute;
	inset: 0;
	background-color: rgba(26, 21, 18, 0.45);
}

/* Hormatin setelan "kurangi animasi" di OS-nya. */
@media (prefers-reduced-motion: reduce) {
	.hero-banner__slides {
		transition: none;
	}
}

.hero-banner__inner {
	position: relative;
	width: 100%;
	padding-top: 60px;
	padding-bottom: 90px;
}

.hero-banner__content {
	max-width: 560px;
	text-align: left;
}

.hero-banner__title {
	color: var(--color-white);
	font-weight: 700;
	margin-bottom: 20px;
}

.hero-banner__description {
	color: var(--color-white);
	opacity: 0.9;
	max-width: 460px;
	margin-bottom: 28px;
}

.hero-banner__cta {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
}

.hero-banner__cta-icon {
	display: inline-block;
}

.hero-banner__controls {
	position: absolute;
	left: 50%;
	bottom: 28px;
	transform: translateX(-50%);
	z-index: 1;
	display: flex;
	align-items: center;
	gap: 14px;
}

.hero-banner__arrow {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, 0.7);
	background-color: transparent;
	color: var(--color-white);
	padding: 0;
	font-size: 14px;
	line-height: 1;
}

.hero-banner__arrow:hover {
	background-color: var(--color-white);
	color: var(--color-black);
}

.hero-banner__dots {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.hero-banner__dot {
	display: block;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background-color: transparent;
	border: 1px solid var(--color-white);
	padding: 0;
}

.hero-banner__dot.is-active {
	background-color: var(--color-white);
	border-color: var(--color-white);
}

@media (max-width: 767px) {
	/*
	 * Tinggi hero mobile murni proporsional ngikut lebar layar via
	 * aspect-ratio (rasio asli hero-mobile-*.jpg, 393x482), jadi di lebar
	 * mobile berapapun framing fotonya tetap utuh tanpa crop samping.
	 * min-height: 0 wajib untuk mematikan clamp() tinggi dari rule
	 * desktop di atas. Kalau kontennya lebih tinggi dari rasio (layar
	 * super sempit), slide-nya melar sendiri mengikuti konten.
	 */
	.hero-banner__slide {
		aspect-ratio: 393 / 482;
		min-height: 0;
		align-items: flex-start;
		background-image: var(--hero-bg-mobile);
		background-position: center center;
	}

	.hero-banner__inner {
		padding-top: 32px;
		padding-bottom: 40px;
	}

	/*
	 * ".banner-title" (h1.banner-title, specificity 0-1-1) is more
	 * specific than a bare ".hero-banner__title" (0-1-0), so it would
	 * otherwise keep winning over this override regardless of media
	 * query — matching both classes here brings it back to (0-2-0).
	 */
	.hero-banner__title.banner-title {
		font-size: var(--fs-h1);
		line-height: var(--lh-h1);
		margin-bottom: 10px;
	}

	.hero-banner__content {
		max-width: none;
	}

	.hero-banner__description {
		max-width: none;
		margin-bottom: 16px;
	}

	.hero-banner__cta {
		font-size: 14px;
	}

	.hero-banner__controls {
		bottom: 18px;
		gap: 10px;
	}
}

/* ==========================================================================
   Kenapa Arenga Indonesia?
   ========================================================================== */

.why-arenga {
	position: relative;
	overflow: hidden;
	background-color: var(--color-green);
	color: var(--color-white);
}

/* Motif daun palem — dekoratif, samar (opacity 6% ada di dalam SVG-nya).
   z-index perlu karena .why-arenga__inner juga positioned dan muncul
   belakangan di DOM — tanpa ini background band hijau (mobile) nutupin
   motifnya. Aman di atas teks karena nyaris transparan + pointer-events
   none. */
.why-arenga__palm {
	position: absolute;
	z-index: 1;
	pointer-events: none;
	user-select: none;
}

.why-arenga__palm--left {
	top: -40px;
	left: -60px;
}

.why-arenga__palm--right {
	bottom: -80px;
	right: -80px;
}

.why-arenga__inner {
	position: relative;
	display: grid;
	grid-template-columns: 340px 1fr;
	gap: 48px 90px;
	align-items: center;
	padding-top: 96px;
	padding-bottom: 96px;
}

.why-arenga__eyebrow {
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.35em;
	text-transform: uppercase;
	margin: 0 0 10px;
}

.why-arenga__title {
	color: var(--color-white);
	font-size: 52px;
	line-height: 1.25;
	font-weight: 700;
	margin: 0;
}

.why-arenga__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 36px;
}

.why-arenga__item {
	display: flex;
	align-items: flex-start;
	gap: 24px;
}

.why-arenga__number {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	margin-top: 2px;
	border-radius: 50%;
	background-color: var(--color-yellow);
	color: var(--color-green);
	font-size: 15px;
	font-weight: 600;
	line-height: 1;
}

.why-arenga__text {
	margin: 0;
	max-width: 760px;
	color: var(--color-white);
}

/*
 * Mobile — desainnya beda dari desktop: band hijau full-bleed berisi
 * heading (rata tengah) di atas, lalu daftar poinnya turun ke bawah di
 * atas background PUTIH dengan teks hijau dan lingkaran nomor hijau
 * berangka putih (kebalikan versi desktop yang kuning berangka hijau).
 */
@media (max-width: 767px) {
	.why-arenga {
		background-color: var(--color-white);
	}

	.why-arenga__inner {
		display: block;
		padding-top: 0;
		padding-bottom: 48px;
	}

	/* Negative margin 20px = padding horizontal .container, supaya band
	   hijaunya full-bleed sampai tepi layar. */
	.why-arenga__heading {
		margin: 0 -20px;
		padding: 28px 20px 24px;
		background-color: var(--color-green);
		text-align: center;
	}

	.why-arenga__eyebrow {
		font-size: 13px;
		margin-bottom: 6px;
	}

	.why-arenga__title {
		font-size: 26px;
	}

	.why-arenga__list {
		padding-top: 36px;
		gap: 26px;
	}

	.why-arenga__item {
		gap: 16px;
	}

	.why-arenga__number {
		width: 22px;
		height: 22px;
		margin-top: 0;
		font-size: 12px;
		background-color: var(--color-green);
		color: var(--color-white);
	}

	.why-arenga__text {
		color: var(--color-green);
	}

	/* Motif palem pindah ke area band hijau di atas, dikecilkan supaya
	   proporsional di layar sempit. Bagian yang menjuntai ke area putih
	   praktis tak terlihat (opacity 6% di atas putih). */
	.why-arenga__palm--left {
		width: 220px;
		height: auto;
		top: -20px;
		left: -70px;
	}

	.why-arenga__palm--right {
		width: 320px;
		height: auto;
		top: -10px;
		right: -100px;
		bottom: auto;
	}
}

/* ==========================================================================
   Produk Arenga Indonesia
   ========================================================================== */

.products {
	background-color: var(--color-white);
	padding: 80px 0;
}

.products__title {
	text-align: center;
	color: var(--color-brown);
	font-size: 44px;
	line-height: 1.2;
	font-weight: 700;
	margin: 0 0 28px;
}

.products__divider {
	width: min(100%, 620px);
	height: 1px;
	margin: 0 auto 48px;
	background-color: #aca18e;
}

/*
 * Kartu besar (kiri) span 2 baris; tingginya ditentukan aspect-ratio-nya,
 * lalu dua kartu promo di kanan berbagi tinggi itu lewat baris 1fr 1fr.
 */
.products__grid {
	display: grid;
	grid-template-columns: 1fr 300px;
	grid-template-rows: 1fr 1fr;
	gap: 22px 30px;
}

.products__main-card {
	grid-row: 1 / 3;
	position: relative;
	aspect-ratio: 628 / 513;
	border-radius: 20px;
	overflow: hidden;
}

.products__main-card img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Layer fade gelap di bagian bawah foto — sama seperti di kartu promo. */
.products__main-card::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(26, 21, 18, 0) 40%, rgba(26, 21, 18, 0.7) 100%);
	pointer-events: none;
}

.products__main-cta {
	position: absolute;
	z-index: 1; /* di atas layer fade ::after */
	left: 50%;
	bottom: 22px;
	transform: translateX(-50%);
	white-space: nowrap;
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
}

/* Panah chevron di tombol utama cuma muncul di mobile (sesuai desain). */
.products__main-cta-icon {
	display: none;
}

/* Border gradasi emas: kartu luarnya jadi "bingkai" gradien, isinya
   dibulatkan sedikit lebih kecil di dalamnya. */
.products__promo-card {
	padding: 3px;
	border-radius: 20px;
	background: linear-gradient(120deg, #d8aa5b 0%, #efd480 100%);
}

.products__promo-inner {
	position: relative;
	height: 100%;
	min-height: 220px;
	border-radius: 17px;
	overflow: hidden;
}

.products__promo-inner img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Gradasi gelap tipis di bawah supaya teks putihnya kebaca. */
.products__promo-inner::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(26, 21, 18, 0) 35%, rgba(26, 21, 18, 0.7) 100%);
}

.products__promo-content {
	position: relative;
	z-index: 1;
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	align-items: center;
	text-align: center;
	gap: 12px;
	padding: 18px 16px 16px;
}

.products__promo-text {
	margin: 0;
	color: var(--color-white);
	font-size: 17px;
	line-height: 1.35;
	font-weight: 700;
	text-shadow: 0 1px 6px rgba(26, 21, 18, 0.4);
}

.products__promo-cta {
	font-size: 15px;
	padding: 0.5em 1.6em;
}

@media (max-width: 767px) {
	.products {
		padding: 48px 0 56px;
	}

	.products__title {
		font-size: 24px;
		margin-bottom: 24px;
	}

	/* Di mobile nggak ada garis pembatas di bawah judul. */
	.products__divider {
		display: none;
	}

	/* Kartu besar full-width di atas (span 2 kolom), lalu dua kartu
	   promo berdampingan di bawahnya. */
	.products__grid {
		grid-template-columns: 1fr 1fr;
		grid-template-rows: none;
		gap: 14px 12px;
	}

	.products__main-card {
		grid-column: 1 / 3;
		grid-row: auto;
		aspect-ratio: 13 / 8;
		border-radius: 16px;
	}

	.products__main-cta {
		font-size: 14px;
		bottom: 14px;
		padding: 0.6em 1.5em;
	}

	.products__main-cta-icon {
		display: inline-flex;
	}

	.products__promo-card {
		padding: 2px;
		border-radius: 16px;
	}

	.products__promo-inner {
		min-height: 0;
		aspect-ratio: 1 / 1.05;
		border-radius: 14px;
	}

	.products__promo-content {
		padding: 12px 10px;
		gap: 8px;
	}

	.products__promo-text {
		font-size: 13px;
	}

	.products__promo-cta {
		font-size: 13px;
		padding: 0.45em 1.5em;
	}
}

/* ==========================================================================
   Manis Alami, Rasa Lebih Kaya
   ========================================================================== */

/* overflow hidden: hiasan kotak kuning nongol 24px keluar dari foto,
   jangan sampai bikin scrollbar horizontal di layar pas-pasan. */
.recipes {
	background-color: var(--color-white);
	padding: 48px 0 72px;
	overflow: hidden;
}

.recipes__top {
	display: grid;
	grid-template-columns: 1.3fr 1fr;
	gap: 48px 90px;
	align-items: start;
}

.recipes__title {
	color: var(--color-brown);
	font-size: 44px;
	line-height: 1.25;
	font-weight: 700;
	margin: 0 0 28px;
}

.recipes__description {
	font-size: 16px;
	line-height: 26px;
	margin: 0 0 30px;
}

.recipes__link {
	color: var(--color-yellow);
	font-size: 16px;
	text-decoration: underline;
	text-underline-offset: 6px;
}

.recipes__link:hover {
	color: var(--color-brown);
}

.recipes__badges {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 44px;
	margin: 44px 0 0;
	padding: 0;
}

.recipes__badges img {
	display: block;
	height: 105px;
	width: auto;
}

/* Foto kanan + hiasan: balok hijau kecil nabrak sudut kiri-atas foto,
   kotak kuning nongol di sudut kanan-bawah. */
.recipes__media {
	position: relative;
}

.recipes__media img {
	display: block;
	width: 100%;
	height: auto;
}

.recipes__media::before {
	content: "";
	position: absolute;
	top: -14px;
	left: -60px;
	width: 100px;
	height: 26px;
	background-color: var(--color-green);
}

.recipes__media::after {
	content: "";
	position: absolute;
	right: -24px;
	bottom: -10px;
	width: 48px;
	height: 48px;
	background-color: var(--color-yellow);
}

/* Deretan kartu resep — scroll horizontal, scrollbar disembunyikan. */
.recipes__cards {
	list-style: none;
	display: flex;
	gap: 40px;
	margin: 88px 0 0;
	padding: 0;
	overflow-x: auto;
	scroll-snap-type: x proximity;
	scrollbar-width: none;
}

.recipes__cards::-webkit-scrollbar {
	display: none;
}

/*
 * Tinggi dikunci (84px thumbnail + 12px padding atas-bawah) supaya semua kartu
 * seragam walau panjang judulnya beda. Judul yang kepanjangan dipangkas 2 baris
 * (lihat .recipe-card__title), jadi nggak pernah ngedorong tinggi kartu.
 */
.recipe-card {
	flex: 0 0 280px;
	height: 108px;
	display: flex;
	align-items: center;
	gap: 18px;
	padding: 12px;
	border: 1px solid #e0ddd8;
	border-radius: 14px;
	background-color: var(--color-white);
	color: var(--color-black);
	text-decoration: none;
	scroll-snap-align: start;
	transition: border-color 0.2s ease;
}

.recipe-card:hover {
	border-color: var(--color-yellow);
}

.recipe-card__thumb {
	flex-shrink: 0;
	display: block;
	width: 84px;
	height: 84px;
	border-radius: 10px;
	object-fit: cover;
}

.recipe-card__title {
	min-width: 0;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.4;
	/* Pangkas maksimal 2 baris + "…" biar judul panjang nggak bikin kartu miring. */
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	overflow: hidden;
}

@media (max-width: 767px) {
	.recipes {
		padding: 40px 0 48px;
	}

	.recipes__top {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.recipes__title {
		font-size: 22px;
		margin-bottom: 14px;
	}

	.recipes__description {
		font-size: 14px;
		line-height: 22px;
		margin-bottom: 20px;
	}

	/* Di mobile deskripsinya ngalir jadi satu paragraf (tanpa baris baru
	   setelah kalimat pertama seperti di desktop). */
	.recipes__description br {
		display: none;
	}

	.recipes__link {
		font-size: 13px;
	}

	.recipes__badges {
		justify-content: space-between;
		gap: 12px;
		margin-top: 26px;
	}

	.recipes__badges img {
		height: 58px;
	}

	/* Sisakan ruang untuk kotak kuning yang nongol keluar tepi kanan. */
	.recipes__media {
		margin-right: 14px;
	}

	/* Balok hijau nempel di tepi kiri foto, nongol setengah ke atas. */
	.recipes__media::before {
		top: -13px;
		left: 0;
		width: 30px;
		height: 26px;
	}

	/* Kotak kuning lebih kecil, menggantung keluar sudut kanan-bawah. */
	.recipes__media::after {
		width: 40px;
		height: 40px;
		right: -14px;
		bottom: -16px;
	}

	.recipes__cards {
		gap: 12px;
		margin-top: 44px;
	}

	.recipe-card {
		flex-basis: 158px;
		height: 64px;
		gap: 10px;
		padding: 8px;
		border-radius: 10px;
	}

	.recipe-card__thumb {
		width: 48px;
		height: 48px;
		border-radius: 8px;
	}

	.recipe-card__title {
		font-size: 13px;
	}
}

/* ==========================================================================
   Artikel
   ========================================================================== */

.articles {
	background-color: #fff9ee;
	padding: 64px 0 80px;
}

.articles__title {
	text-align: center;
	color: var(--color-brown);
	font-size: 44px;
	line-height: 1.2;
	font-weight: 700;
	margin: 0 0 24px;
}

.articles__description {
	max-width: 760px;
	margin: 0 auto 30px;
	text-align: center;
	font-size: 15px;
	line-height: 26px;
}

/* Di desktop deskripsinya satu paragraf ngalir; break-nya khusus mobile. */
.articles__description br {
	display: none;
}

.articles__cta-wrap {
	text-align: center;
	margin-bottom: 52px;
}

.articles__cta {
	display: inline-flex;
	align-items: center;
	gap: 0.7em;
	font-size: 16px;
	padding: 0.65em 1.6em;
}

.articles__cta-icon {
	display: inline-flex;
}

.articles__grid {
	list-style: none;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 28px;
	margin: 0;
	padding: 0;
}

.article-card {
	position: relative;
	display: block;
	aspect-ratio: 282 / 340;
	border-radius: 8px;
	overflow: hidden;
	text-decoration: none;
}

.article-card__image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Fade gelap di bawah supaya judul putihnya kebaca. */
.article-card::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(26, 21, 18, 0) 35%, rgba(26, 21, 18, 0.75) 100%);
}

.article-card__title {
	position: absolute;
	z-index: 1;
	left: 12px;
	right: 12px;
	bottom: 16px;
	color: var(--color-white);
	font-size: 17px;
	line-height: 1.45;
	font-weight: 700;
	text-align: center;
}

@media (max-width: 767px) {
	.articles {
		padding: 48px 0 56px;
	}

	.articles__title {
		font-size: 26px;
		margin-bottom: 16px;
	}

	.articles__description {
		font-size: 14px;
		line-height: 22px;
		margin-bottom: 24px;
	}

	.articles__description br {
		display: inline;
	}

	.articles__cta-wrap {
		margin-bottom: 32px;
	}

	.articles__cta {
		font-size: 14px;
	}

	/* Di mobile tombolnya polos tanpa panah. */
	.articles__cta-icon {
		display: none;
	}

	/* Jadi baris scroll horizontal seperti kartu resep. */
	.articles__grid {
		display: flex;
		gap: 8px;
		overflow-x: auto;
		scroll-snap-type: x proximity;
		scrollbar-width: none;
	}

	.articles__grid::-webkit-scrollbar {
		display: none;
	}

	.articles__grid > li {
		flex: 0 0 140px;
		scroll-snap-align: start;
	}

	.article-card {
		aspect-ratio: 12 / 13;
	}

	.article-card__title {
		font-size: 12px;
		line-height: 1.4;
		bottom: 10px;
		left: 8px;
		right: 8px;
	}
}

/* ==========================================================================
   Arenga Updates (Instagram)
   ========================================================================== */

.ig-updates {
	background-color: var(--color-white);
	padding: 64px 0 72px;
}

.ig-updates__title {
	text-align: center;
	color: var(--color-brown);
	font-size: 44px;
	line-height: 1.2;
	font-weight: 700;
	margin: 0 0 44px;
}

.ig-feed {
	max-width: 1000px;
	margin: 0 auto;
	padding: 26px 30px 34px;
	border: 1px solid #d9d5cf;
	border-radius: 26px;
}

.ig-feed__header {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 22px;
}

.ig-feed__avatar {
	flex-shrink: 0;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	background-color: #d9d9d9;
}

/* margin-right auto: dorong tombol Follow ke ujung kanan. */
.ig-feed__meta {
	margin-right: auto;
}

.ig-feed__username {
	display: block;
	color: var(--color-black);
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
}

.ig-feed__username:hover {
	color: var(--color-yellow);
}

.ig-feed__posts {
	margin: 2px 0 0;
	font-size: 13px;
	color: var(--color-black);
}

.ig-feed__follow {
	font-size: 13px;
	font-weight: 700;
	padding: 0.55em 1.4em;
}

.ig-feed__grid {
	list-style: none;
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 12px;
	margin: 0;
	padding: 0;
}

.ig-feed__item {
	aspect-ratio: 1 / 1;
	background-color: #d9d9d9;
}

@media (max-width: 767px) {
	.ig-updates {
		padding: 48px 0 56px;
	}

	.ig-updates__title {
		font-size: 26px;
		margin-bottom: 24px;
	}

	.ig-feed {
		padding: 16px 14px 20px;
		border-radius: 20px;
	}

	.ig-feed__header {
		gap: 12px;
		margin-bottom: 14px;
	}

	.ig-feed__avatar {
		width: 52px;
		height: 52px;
	}

	.ig-feed__username {
		font-size: 15px;
		font-weight: 400;
	}

	.ig-feed__posts {
		font-size: 14px;
		color: #6f6f6f;
	}

	.ig-feed__follow {
		font-size: 14px;
		padding: 0.6em 1.2em;
	}

	.ig-feed__grid {
		grid-template-columns: repeat(3, 1fr);
		gap: 10px;
	}

	/* Mobile cuma menampilkan 9 kotak (3x3); sisanya disembunyikan. */
	.ig-feed__item:nth-child(n + 10) {
		display: none;
	}
}

/* ==========================================================================
   Halaman Umum (page.php)
   ========================================================================== */

.page-content {
	max-width: 1200px;
	margin: 0 auto;
	padding: 64px 20px 80px;
}

.page-content__title {
	color: var(--color-brown);
	font-size: 44px;
	line-height: 1.2;
	font-weight: 700;
	margin: 0 0 24px;
}

@media (max-width: 767px) {
	.page-content {
		padding: 40px 20px 56px;
	}

	.page-content__title {
		font-size: 26px;
	}
}

/* ==========================================================================
   Halaman Produk — Daftar Produk
   ========================================================================== */

/* Hero foto cuma ada di versi mobile. */
.product-hero-mobile {
	display: none;
}

.product-list {
	background-color: var(--color-white);
	padding: 64px 0 80px;
}

.product-list__title {
	text-align: center;
	color: var(--color-brown);
	font-size: 44px;
	line-height: 1.2;
	font-weight: 700;
	margin: 0 0 52px;
}

/* max-width 1060px: 3 kolom x 290px (ukuran asli gambar produk) + gap. */
.product-list__grid {
	list-style: none;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 64px 90px;
	max-width: 1060px;
	margin: 0 auto;
	padding: 0;
}

.product-item {
	text-align: center;
}

.product-item__image-link {
	display: block;
	margin-bottom: 22px;
}

.product-item__image {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 10px;
}

/* max-width bikin nama produknya pecah dua baris & tetap rata tengah
   seperti di desain, tanpa perlu <br> manual di teksnya. */
.product-item__name {
	max-width: 200px;
	margin: 0 auto 12px;
	color: var(--color-brown);
	font-family: var(--font-body);
	font-size: 26px;
	line-height: 1.35;
	font-weight: 600;
}

.product-item__size {
	margin: 0 0 22px;
	color: var(--color-green);
	font-size: 19px;
	line-height: 1.3;
}

.product-item__cta {
	display: block;
	width: 100%;
	font-size: 16px;
	padding: 0.7em 1em;
	text-align: center;
}

@media (max-width: 767px) {
	/* Full-bleed: foto ngikut lebar layar, tingginya proporsional. */
	.product-hero-mobile {
		display: block;
	}

	.product-hero-mobile img {
		display: block;
		width: 100%;
		height: auto;
	}

	.product-list {
		padding: 32px 0 48px;
	}

	.product-list__title {
		font-size: 24px;
		margin-bottom: 28px;
	}

	/* Kartu sengaja nggak selebar kolom penuh — grid-nya dipersempit
	   supaya tiap kartu lebih kecil, tetap 2 kolom dan rata tengah. */
	.product-list__grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 28px 22px;
		max-width: 320px;
	}

	.product-item__image-link {
		margin-bottom: 12px;
	}

	.product-item__name {
		max-width: none;
		font-size: 15px;
		margin-bottom: 5px;
	}

	.product-item__size {
		font-size: 13px;
		margin-bottom: 10px;
	}

	.product-item__cta {
		font-size: 12px;
		padding: 0.6em 0.8em;
	}
}

/* ==========================================================================
   Halaman Tentang Kami — Intro
   ========================================================================== */

.about-intro {
	background-color: var(--color-white);
	padding: 64px 0 48px;
	text-align: center;
}

.about-intro__eyebrow {
	margin: 0 0 6px;
	color: var(--color-brown);
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.35em;
	text-transform: uppercase;
}

.about-intro__title {
	margin: 0 0 26px;
	color: var(--color-brown);
	font-size: 44px;
	line-height: 1.2;
	font-weight: 700;
}

.about-intro__divider {
	width: 280px;
	height: 1px;
	margin: 0 auto 34px;
	background-color: var(--color-brown);
}

.about-intro__description {
	max-width: 1080px;
	margin: 0 auto;
	color: var(--color-black);
	font-size: 17px;
	line-height: 30px;
}

@media (max-width: 767px) {
	.about-intro {
		padding: 40px 0 32px;
	}

	.about-intro__eyebrow {
		font-size: 13px;
	}

	.about-intro__title {
		font-size: 26px;
		margin-bottom: 18px;
	}

	.about-intro__divider {
		width: 180px;
		margin-bottom: 22px;
	}

	.about-intro__description {
		font-size: 14px;
		line-height: 23px;
	}

	/* Di layar sempit biarin teksnya ngalir, jangan patah di tengah. */
	.about-intro__description br {
		display: none;
	}
}

/* ==========================================================================
   Halaman Tentang Kami — Mempersembahkan
   ========================================================================== */

/*
 * min-height-nya sama persis dengan .about-artisans (39.7vw = rasio
 * 1440x572 foto section itu) supaya tinggi dua section ini seragam dan
 * nggak timpang. Pakai min-height, bukan aspect-ratio, karena section ini
 * isinya teks — kalau kontennya lebih tinggi dari rasio (mis. layar
 * desktop sempit), section-nya melar sendiri daripada teksnya kepotong
 * kena overflow:hidden.
 */
.about-presents {
	position: relative;
	overflow: hidden;
	display: flex;
	align-items: center;
	min-height: clamp(460px, 39.7vw, 780px);
	background-color: var(--color-brown);
	color: var(--color-white);
}

/* Motif daun palem — dekoratif, samar (opacity 6% ada di dalam SVG-nya).
   z-index sama alasannya seperti di .why-arenga__palm: .about-presents__inner
   juga positioned dan muncul belakangan di DOM. */
.about-presents__palm {
	position: absolute;
	z-index: 1;
	pointer-events: none;
	user-select: none;
}

.about-presents__palm--left {
	top: -40px;
	left: -60px;
}

.about-presents__palm--right {
	bottom: -80px;
	right: -80px;
}

.about-presents__inner {
	position: relative;
	width: 100%;
	display: grid;
	grid-template-columns: 300px 1fr;
	gap: 48px 90px;
	align-items: center;
	padding-top: 60px;
	padding-bottom: 60px;
}

.about-presents__eyebrow {
	margin: 0 0 18px;
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0.3em;
	text-transform: uppercase;
}

/* Judulnya pecah tiga baris ngikut lebar kolomnya, tanpa <br> manual. */
.about-presents__title {
	margin: 0;
	color: var(--color-yellow);
	font-size: 40px;
	line-height: 1.45;
	font-weight: 700;
}

.about-presents__body p {
	margin: 0 0 22px;
	font-size: 15px;
	line-height: 28px;
}

.about-presents__body p:last-child {
	margin-bottom: 0;
}

/*
 * Mobile — kebalikan dari desktop: heading pindah ke band PUTIH
 * full-bleed di atas (eyebrow jadi hijau karena latarnya putih), lalu
 * body-nya yang duduk di background coklat. Semuanya rata tengah.
 */
@media (max-width: 767px) {
	/* min-height: 0 matiin lantai tinggi versi desktop — di mobile tinggi
	   section-nya ngikut konten, biar band putihnya nempel di atas. */
	.about-presents {
		min-height: 0;
		align-items: stretch;
	}

	.about-presents__inner {
		grid-template-columns: 1fr;
		gap: 0;
		padding-top: 0;
		padding-bottom: 44px;
	}

	/* Negative margin 20px = padding horizontal .container, supaya band
	   putihnya nyampe tepi layar. z-index biar nggak ketiban motif palem. */
	.about-presents__heading {
		position: relative;
		z-index: 2;
		margin: 0 -20px 30px;
		padding: 22px 20px 20px;
		background-color: var(--color-white);
		text-align: center;
	}

	.about-presents__eyebrow {
		color: var(--color-green);
		font-size: 12px;
		margin-bottom: 10px;
	}

	.about-presents__title {
		font-size: 26px;
		line-height: 1.35;
	}

	.about-presents__body {
		text-align: center;
	}

	.about-presents__body p {
		font-size: 14px;
		line-height: 23px;
		margin-bottom: 16px;
	}

	.about-presents__palm--left {
		width: 220px;
		height: auto;
		top: -20px;
		left: -70px;
	}

	.about-presents__palm--right {
		width: 320px;
		height: auto;
		bottom: -40px;
		right: -100px;
	}
}

/* ==========================================================================
   Halaman Tentang Kami — Didukung Pengrajin
   ========================================================================== */

/*
 * 39.7vw = rasio asli tentang-kami.jpg (1440x572), jadi fotonya tampil
 * proporsional di lebar layar berapapun; clamp ngasih lantai biar teksnya
 * nggak kesempitan di desktop sempit. Nilai min-height ini SAMA PERSIS
 * dengan .about-presents supaya tinggi dua section-nya seragam — kalau
 * diubah, ubah dua-duanya.
 */
.about-artisans {
	position: relative;
	min-height: clamp(460px, 39.7vw, 780px);
	display: flex;
	align-items: center;
	background-color: var(--color-black);
	background-image: url('assets/images/tentang-kami.jpg');
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	color: var(--color-white);
}

/* Layer gelap biar teks putihnya kebaca di atas foto yang terang.
   Nilai 0.62 hasil ukur dari desain: bandingkan pixel foto asli vs mock,
   rata-rata alpha-nya 0.62 di desktop dan 0.65 di mobile — merata, bukan
   gradasi, jadi satu nilai dipakai untuk dua-duanya. */
.about-artisans::before {
	content: "";
	position: absolute;
	inset: 0;
	background-color: rgba(26, 21, 18, 0.62);
}

.about-artisans__inner {
	position: relative;
	width: 100%;
	display: grid;
	grid-template-columns: 1fr 1fr;
}

/* Teksnya di kolom kanan; kolom kiri sengaja dibiarkan kosong supaya
   foto pemanjat pohon arennya kelihatan. */
.about-artisans__content {
	grid-column: 2;
}

.about-artisans__title {
	margin: 0 0 22px;
	color: var(--color-white);
	font-size: 46px;
	line-height: 1.3;
	font-weight: 700;
}

.about-artisans__description {
	margin: 0;
	max-width: 570px;
	font-size: 15px;
	line-height: 28px;
}

/*
 * Mobile pakai foto potret sendiri (crop-nya beda dari desktop), dan
 * teksnya turun ke bawah-kiri. aspect-ratio ngikut rasio asli
 * tentang-kami-mobile.jpg, min-height: 0 buat matiin lantai desktop.
 */
@media (max-width: 767px) {
	.about-artisans {
		aspect-ratio: 393 / 522;
		min-height: 0;
		align-items: flex-end;
		background-image: url('assets/images/tentang-kami-mobile.jpg');
	}

	.about-artisans__inner {
		grid-template-columns: 1fr;
		padding-bottom: 32px;
	}

	.about-artisans__content {
		grid-column: 1;
	}

	.about-artisans__title {
		font-size: 22px;
		line-height: 1.35;
		margin-bottom: 12px;
	}

	.about-artisans__description {
		max-width: none;
		font-size: 14px;
		line-height: 23px;
	}
}

/* ==========================================================================
   Halaman Tentang Kami — Nilai-nilai Keberlanjutan
   ========================================================================== */

.about-values {
	background-color: var(--color-white);
	padding: 60px 0 72px;
}

.about-values__title {
	max-width: 620px;
	margin: 0 auto 40px;
	text-align: center;
	color: var(--color-brown);
	font-size: 44px;
	line-height: 1.25;
	font-weight: 700;
}

.about-values__grid {
	list-style: none;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 34px;
	margin: 0;
	padding: 0;
}

.value-card {
	background-color: var(--color-white);
	border-radius: 11px;
	padding: 26px 22px 30px;
	box-shadow: 0 2px 12px rgba(26, 21, 18, 0.09);
}

/* Ukuran natural SVG-nya (56x51 & 60x60) sudah pas sama desain. */
.value-card__icon {
	display: block;
	margin-bottom: 16px;
}

.value-card__title {
	margin: 0 0 12px;
	color: var(--color-green);
	font-family: var(--font-body);
	font-size: 20px;
	line-height: 1.3;
	font-weight: 700;
}

.value-card__description {
	margin: 0;
	color: var(--color-green);
	font-size: 15px;
	line-height: 24px;
}

@media (max-width: 767px) {
	.about-values {
		padding: 44px 0 48px;
	}

	.about-values__title {
		font-size: 26px;
		margin-bottom: 26px;
	}

	.about-values__grid {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.value-card {
		padding: 20px 18px 22px;
	}

	.value-card__icon {
		margin-bottom: 12px;
	}

	.value-card__title {
		font-size: 17px;
		margin-bottom: 8px;
	}

	.value-card__description {
		font-size: 14px;
		line-height: 22px;
	}
}

/* ==========================================================================
   Halaman Detail Produk
   ========================================================================== */

.product-detail {
	padding: 40px 0 72px;
}

.product-detail__back {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: var(--color-brown);
	font-size: 15px;
	text-decoration: none;
	padding-bottom: 8px;
	border-bottom: 1px dotted #604734;
	margin-bottom: 40px;
}

.product-detail__back:hover {
	color: var(--color-yellow);
	border-bottom-color: var(--color-yellow);
}

.product-detail__back-icon {
	display: inline-flex;
}

.product-detail__body {
	display: grid;
	grid-template-columns: 344px 1fr;
	gap: 56px;
	align-items: start;
}

/*
 * Tinggi kotak foto dikunci lewat aspect-ratio (rasio dari desain), jadi
 * tinggi halaman nggak loncat-loncat antar produk — file fotonya sendiri
 * tingginya beda-beda (472x490 sampai 472x696). object-fit: cover bikin
 * foto ngisi penuh; yang kepotong cuma tepi latar belakang, produknya
 * selalu di tengah frame jadi tetap utuh.
 */
.product-detail__media {
	aspect-ratio: 343 / 396;
	border-radius: 4px;
	overflow: hidden;
}

.product-detail__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.product-detail__eyebrow {
	margin: 0 0 8px;
	color: var(--color-green);
	font-size: 17px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.product-detail__name {
	margin: 0 0 12px;
	color: var(--color-green);
	font-size: 46px;
	line-height: 1.15;
	font-weight: 700;
}

/* text-transform: biar "225 gr" tampil "225 GR" tanpa nulis ulang datanya. */
.product-detail__size {
	margin: 0 0 26px;
	color: var(--color-brown);
	font-size: 22px;
	font-style: italic;
	font-weight: 600;
	text-transform: uppercase;
}

.product-detail__description p {
	margin: 0 0 20px;
	font-size: 15px;
	line-height: 26px;
}

/*
 * Logo disamakan LEBARNYA, bukan tingginya: logo Shopee punya ikon di
 * atas wordmark-nya sehingga lebih jangkung, kalau tingginya yang
 * disamakan tulisan "tokopedia" jadi kelihatan kegedean. Rata bawah
 * (flex-end) bikin kedua wordmark duduk di garis yang sama.
 */
.product-detail__marketplaces {
	list-style: none;
	display: flex;
	align-items: flex-end;
	gap: 16px;
	margin: 30px 0 0;
	padding: 0;
}

.product-detail__marketplaces a {
	display: inline-flex;
	transition: opacity 0.2s ease;
}

.product-detail__marketplaces a:hover {
	opacity: 0.75;
}

.product-detail__marketplaces img {
	display: block;
	width: 102px;
	height: auto;
}

/* Paginasi antar produk. */
.product-pagination {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 18px;
	margin-top: 64px;
}

.product-pagination__numbers {
	list-style: none;
	display: flex;
	align-items: center;
	gap: 20px;
	margin: 0;
	padding: 0;
}

.product-pagination__number {
	color: #bbb0a7;
	font-size: 16px;
	text-decoration: none;
}

.product-pagination__number:hover {
	color: var(--color-brown);
}

.product-pagination__number.is-active {
	color: var(--color-brown);
	font-weight: 700;
}

.product-pagination__ellipsis {
	color: #bbb0a7;
	font-size: 16px;
	text-decoration: none;
}

.product-pagination__ellipsis:hover {
	color: var(--color-brown);
}

.product-pagination__arrow {
	display: inline-flex;
	align-items: center;
	color: var(--color-brown);
}

.product-pagination__arrow:hover {
	color: var(--color-yellow);
}

.product-pagination__arrow.is-disabled {
	color: #d8d2cc;
}

@media (max-width: 767px) {
	.product-detail {
		padding: 24px 0 48px;
	}

	.product-detail__back {
		font-size: 13px;
		margin-bottom: 24px;
	}

	.product-detail__body {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.product-detail__eyebrow {
		font-size: 14px;
	}

	.product-detail__name {
		font-size: 30px;
	}

	.product-detail__size {
		font-size: 18px;
		margin-bottom: 18px;
	}

	.product-detail__description p {
		font-size: 14px;
		line-height: 23px;
		margin-bottom: 16px;
	}

	.product-detail__marketplaces {
		gap: 14px;
		margin-top: 24px;
	}

	.product-detail__marketplaces img {
		width: 88px;
	}

	.product-pagination {
		margin-top: 40px;
		gap: 14px;
	}

	.product-pagination__numbers {
		gap: 16px;
	}
}

/* ==========================================================================
   Tombol WhatsApp mengambang
   ========================================================================== */

/*
 * z-index 9999: di atas konten biasa, tapi sengaja di bawah .mobile-menu
 * (999999) supaya tombolnya nggak nembus overlay menu mobile pas dibuka.
 */
.wa-float {
	position: fixed;
	right: 24px;
	bottom: 24px;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 62px;
	height: 62px;
	border-radius: 50%;
	background-color: var(--color-yellow);
	color: var(--color-white);
	box-shadow: 0 4px 14px rgba(26, 21, 18, 0.22);
	transition: transform 0.2s ease, background-color 0.2s ease;
}

.wa-float:hover {
	background-color: var(--color-brown);
	transform: translateY(-2px);
}

@media (max-width: 767px) {
	.wa-float {
		right: 16px;
		bottom: 16px;
		width: 52px;
		height: 52px;
	}

	.wa-float svg {
		width: 28px;
		height: 28px;
	}
}

/* ==========================================================================
   Cerita Pelanggan
   ========================================================================== */

.testimonials {
	background-color: #f7f7f7;
	padding: 56px 0 72px;
}

.testimonials__title {
	text-align: center;
	color: var(--color-brown);
	font-size: 44px;
	line-height: 1.2;
	font-weight: 700;
	margin: 0 0 44px;
}

/* Scroll horizontal — di mock kartu kedua sengaja kepotong di tepi.
   align-items: stretch bikin semua kartu setinggi kartu terpanjang,
   jadi ukurannya seragam walau panjang teksnya beda. */
.testimonials__list {
	list-style: none;
	display: flex;
	align-items: stretch;
	gap: 50px;
	margin: 0;
	padding: 0;
	overflow-x: auto;
	scroll-snap-type: x proximity;
	scrollbar-width: none;
}

.testimonials__list::-webkit-scrollbar {
	display: none;
}

.testimonial {
	flex: 0 0 560px;
	display: flex;
	flex-direction: column;
	scroll-snap-align: start;
}

/* flex: 1 — kartunya ngisi sisa tinggi yang di-stretch di atas.
   padding-bottom besar: nyisain ruang buat foto yang nimpa tepi bawah,
   supaya teks quote-nya nggak ketiban. */
.testimonial__card {
	flex: 1;
	background-color: var(--color-white);
	border: 1px solid #e2e0dd;
	border-radius: 20px;
	padding: 34px 40px 78px;
}

.testimonial__stars {
	display: flex;
	gap: 8px;
	color: var(--color-yellow);
	margin-bottom: 26px;
}

.testimonial__quote {
	margin: 0;
	font-size: 14px;
	line-height: 24px;
}

/* Foto nimpa tepi bawah kartu: margin-top negatif setinggi separuh foto
   (96px + border 4px x2 = 104px, separuhnya 52px). */
.testimonial__person {
	position: relative;
	text-align: center;
	margin-top: -52px;
}

.testimonial__photo {
	display: block;
	width: 96px;
	height: 96px;
	margin: 0 auto 12px;
	border-radius: 50%;
	border: 4px solid var(--color-white);
	object-fit: cover;
	background-color: var(--color-white);
}

.testimonial__name {
	margin: 0 0 6px;
	font-size: 20px;
	font-weight: 500;
}

.testimonial__role {
	margin: 0;
	font-size: 13px;
	line-height: 1.55;
}

@media (max-width: 767px) {
	.testimonials {
		padding: 44px 0 56px;
	}

	.testimonials__title {
		font-size: 26px;
		margin-bottom: 28px;
	}

	.testimonials__list {
		gap: 20px;
	}

	.testimonial {
		flex-basis: 290px;
	}

	.testimonial__card {
		padding: 22px 20px 58px;
		border-radius: 16px;
	}

	.testimonial__stars {
		gap: 5px;
		margin-bottom: 16px;
	}

	.testimonial__stars svg {
		width: 22px;
		height: 21px;
	}

	.testimonial__quote {
		font-size: 13px;
		line-height: 21px;
	}

	/* 72px + border 3px x2 = 78px, separuhnya 39px. */
	.testimonial__person {
		margin-top: -39px;
	}

	.testimonial__photo {
		width: 72px;
		height: 72px;
		border-width: 3px;
	}

	.testimonial__name {
		font-size: 17px;
	}

	.testimonial__role {
		font-size: 12px;
	}
}

/* ==========================================================================
   Site Footer
   ========================================================================== */

/* Motif palem full-width (palm-3.svg, opacity 5% bawaan file-nya). */
.site-footer {
	background-color: var(--color-green);
	background-image: url('assets/images/palm-3.svg');
	background-repeat: no-repeat;
	background-position: center bottom;
	background-size: cover;
	padding: 56px 0 36px;
}

.site-footer__inner {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 40px 60px;
	align-items: start;
}

.site-footer__logo-link {
	display: inline-block;
}

.site-footer__logo {
	display: block;
	width: 150px;
	height: auto;
}

.site-footer__company {
	font-size: 15px;
	font-weight: 700;
	margin: 18px 0 16px;
}

.site-footer__contacts {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 14px;
	max-width: 290px;
}

.site-footer__contacts li {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	font-size: 13px;
	line-height: 1.55;
}

.site-footer__contacts a {
	text-decoration: none;
}

.site-footer__contacts a:hover {
	text-decoration: underline;
}

.site-footer__contact-icon {
	flex-shrink: 0;
	display: inline-flex;
	margin-top: 2px;
}

/* Menu footer — selector via container (bukan class menu) supaya style-nya
   sama, baik pakai fallback (ul.primary-menu) maupun menu asli wp-admin
   (ul.footer-menu). */
.site-footer__nav ul {
	list-style: none;
	display: flex;
	align-items: center;
	gap: 40px;
	margin: 0;
	padding: 0;
}

.site-footer__nav ul a {
	color: var(--color-white);
	font-size: 14px;
	text-decoration: none;
}

.site-footer__nav ul a:hover {
	color: var(--color-yellow);
}

/* Di footer nggak ada dropdown — submenu disembunyikan. */
.site-footer__nav .sub-menu {
	display: none !important;
}

.site-footer__nav-divider {
	height: 1px;
	background-color: rgba(255, 255, 255, 0.35);
	margin: 22px 0 30px;
}

.site-footer__socials {
	list-style: none;
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: 30px;
	margin: 0;
	padding: 0;
}

.site-footer__socials a {
	display: inline-flex;
	color: var(--color-white);
}

.site-footer__socials a:hover {
	color: var(--color-yellow);
}

.site-footer__bottom {
	margin-top: 56px;
	text-align: center;
	font-size: 14px;
	line-height: 1.7;
}

.site-footer__bottom p {
	margin: 0;
}

@media (max-width: 767px) {
	.site-footer {
		padding: 32px 0 28px;
	}

	.site-footer__inner {
		grid-template-columns: 1fr;
		gap: 28px;
	}

	/* Logo di tengah; company & kontak tetap rata kiri di bawahnya. */
	.site-footer__logo-link {
		display: block;
		text-align: center;
	}

	.site-footer__logo {
		display: inline-block;
		width: 140px;
	}

	.site-footer__company {
		margin-top: 24px;
	}

	/* Urutan mobile: divider dulu, baru menu, lalu sosial (di desktop
	   urutannya menu → divider → sosial). */
	.site-footer__nav-area {
		display: flex;
		flex-direction: column;
	}

	.site-footer__nav-divider {
		order: -1;
		margin: 0 0 18px;
	}

	/* Menu satu baris kecil, disebar rata selebar layar. */
	.site-footer__nav ul {
		flex-wrap: wrap;
		justify-content: space-between;
		gap: 10px 12px;
	}

	.site-footer__nav ul a {
		font-size: 11.5px;
	}

	.site-footer__socials {
		justify-content: center;
		gap: 26px;
		margin-top: 22px;
	}

	.site-footer__socials svg {
		width: 22px;
		height: 22px;
	}

	.site-footer__bottom {
		margin-top: 26px;
		font-size: 13px;
	}
}

/* ==========================================================================
   Blog — section "tulisan terbaru" (Cerita Arenga & Resep Arenga)
   ========================================================================== */

/*
 * <main> ngembang ngisi sisa layar (lihat sticky footer di :root/body). Ruang
 * lebihnya bakal pakai background <body> yang putih — di halaman ini section
 * terakhirnya krem, jadi bakal muncul strip putih antara grid sama footer.
 * Makanya section terakhirnya yang disuruh ngembang, bukan main-nya.
 *
 * Pas kategori kosong, anak terakhirnya .blog-latest (putih) — tetap aman.
 */
.blog-page {
	display: flex;
	flex-direction: column;
}

.blog-page > :last-child {
	flex: 1 0 auto;
}

.blog-latest {
	background-color: var(--color-white);
	padding: 64px 0 80px;
}

/* Judul halamannya sengaja lebih besar dari --fs-h1: di desain dia jadi
   judul display halaman, bukan heading section biasa. */
.blog-latest__title {
	margin: 0 0 64px;
	color: var(--color-brown);
	font-size: 72px;
	line-height: 1.2;
	font-weight: 700;
	text-align: center;
}

/* 540 : 585 dengan gap 35 = persis 1160px, lebar isi .container. */
.blog-latest__feature {
	display: grid;
	grid-template-columns: 540fr 585fr;
	align-items: center;
	gap: 35px;
}

/* Post tanpa featured image: teksnya pakai selebar container, jangan
   nyangkut di kolom kiri. */
.blog-latest__feature--no-media {
	grid-template-columns: 1fr;
}

/* Rasio dikunci + object-fit:cover, karena featured image tiap post
   ukurannya beda-beda dan nggak boleh bikin tinggi halaman lompat-lompat. */
.blog-latest__media {
	display: block;
	aspect-ratio: 540 / 398;
	border-radius: 20px;
	overflow: hidden;
}

.blog-latest__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.blog-latest__heading {
	margin: 0 0 22px;
	font-family: var(--font-body);
	font-size: var(--fs-h2);
	line-height: 1.33;
	font-weight: 700;
}

.blog-latest__heading a {
	color: var(--color-brown);
	text-decoration: none;
}

.blog-latest__heading a:hover {
	color: var(--color-green);
}

.blog-latest__excerpt {
	margin: 0 0 30px;
	color: var(--color-black);
	font-size: var(--fs-body);
	line-height: var(--lh-body);
}

.blog-latest__cta {
	display: inline-flex;
	align-items: center;
	gap: 0.7em;
}

.blog-latest__cta-icon {
	display: inline-flex;
}

.blog-latest__cta-icon--mobile {
	display: none;
}

/* Kondisi kategori masih kosong. Belum ada referensi desainnya — dibikin
   sederhana dulu, yang penting halamannya nggak kelihatan rusak. */
.blog-latest__empty {
	margin: 0;
	padding: 32px 0 16px;
	color: var(--color-black);
	font-size: var(--fs-body);
	line-height: var(--lh-body);
	text-align: center;
	opacity: 0.7;
}

/*
 * Mobile bukan sekadar versi sempit dari desktop — bentuknya beda:
 * semuanya masuk ke dalam satu kartu putih ber-shadow, dan tombol kuningnya
 * berubah jadi link teks bergaris putus-putus.
 */
@media (max-width: 767px) {
	.blog-latest {
		padding: 24px 0 40px;
	}

	.blog-latest__title {
		font-size: 28px;
		margin-bottom: 18px;
	}

	/* Kartunya lebih sempit ~12px dari isi .container di tiap sisi. */
	.blog-latest__feature {
		display: block;
		margin: 0 12px;
		background-color: var(--color-white);
		border-radius: 20px;
		box-shadow: 0 2px 12px rgba(26, 21, 18, 0.09);
		padding: 9px 9px 0;
	}

	/* Radius 11 = 20 (kartu) - 9 (padding), biar lengkungnya sepusat. */
	.blog-latest__media {
		aspect-ratio: 331 / 225;
		border-radius: 11px;
	}

	.blog-latest__body {
		padding: 14px 14px 18px;
	}

	.blog-latest__heading {
		font-size: 18px;
		line-height: 22px;
		margin-bottom: 12px;
	}

	.blog-latest__excerpt {
		font-size: 15px;
		line-height: 19px;
		margin-bottom: 36px;
	}

	/* Balikin gaya .button ke link teks biasa. */
	.blog-latest__cta {
		padding: 0 0 5px;
		border-radius: 0;
		background-color: transparent;
		border-bottom: 2px dashed var(--color-yellow);
		color: var(--color-yellow);
		font-size: 15px;
		font-weight: 700;
		gap: 0.5em;
	}

	.blog-latest__cta:hover {
		background-color: transparent;
		color: var(--color-brown);
		border-bottom-color: var(--color-brown);
	}

	.blog-latest__cta-icon--desktop {
		display: none;
	}

	.blog-latest__cta-icon--mobile {
		display: inline-flex;
	}
}

/* ==========================================================================
   Blog — grid artikel (Cerita Arenga & Resep Arenga)
   ========================================================================== */

/* Warna krem yang sama dipakai section Artikel di beranda. */
.post-grid-section {
	background-color: #fff9ee;
	padding: 56px 0 72px;
}

/* 1060px = lebar grid yang sama dipakai halaman Produk. */
.post-grid {
	list-style: none;
	max-width: 1060px;
	margin: 0 auto;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	column-gap: 46px;
	row-gap: 62px;
}

.post-card__media {
	display: block;
	aspect-ratio: 248 / 180;
	border-radius: 12px;
	overflow: hidden;
	margin-bottom: 28px;
}

.post-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.post-card__title {
	margin: 0 0 28px;
	font-family: var(--font-body);
	font-size: 20px;
	line-height: 28px;
	font-weight: 600;
}

.post-card__title a {
	color: var(--color-brown);
	text-decoration: none;
}

.post-card__title a:hover {
	color: var(--color-green);
}

.post-card__excerpt {
	margin: 0;
	color: var(--color-black);
	font-size: 14px;
	line-height: 23px;
}

/* ==========================================================================
   Paginasi
   ========================================================================== */

.pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	margin-top: 56px;
}

.pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 22px;
	color: var(--color-brown);
	font-size: 16px;
	line-height: 1;
	text-decoration: none;
	/* Nomor halaman yang nggak aktif tampil pudar; yang aktif pekat. */
	opacity: 0.45;
	transition: opacity 0.2s ease;
}

.pagination .page-numbers:hover {
	opacity: 1;
}

.pagination .page-numbers.current {
	opacity: 1;
	font-weight: 700;
}

/* Panahnya selalu pekat — dia kontrol, bukan penanda posisi. */
.pagination .prev,
.pagination .next {
	opacity: 1;
}

.pagination .dots {
	cursor: default;
}

.pagination .dots:hover {
	opacity: 0.45;
}

.pagination__arrow {
	display: inline-flex;
}

@media (max-width: 767px) {
	.post-grid-section {
		padding: 32px 0 44px;
	}

	/*
	 * Mobile bentuknya beda: tiap artikel jadi kartu putih memanjang —
	 * judul di kiri, gambar persegi di kanan, tanpa snippet.
	 */
	.post-grid {
		grid-template-columns: 1fr;
		row-gap: 16px;
	}

	.post-card {
		display: flex;
		align-items: center;
		gap: 20px;
		padding: 12px;
		background-color: var(--color-white);
		border-radius: 12px;
		box-shadow: 0 2px 12px rgba(26, 21, 18, 0.09);
	}

	/* order 2 = gambarnya pindah ke kanan tanpa ngubah urutan markup. */
	.post-card__media {
		order: 2;
		flex: 0 0 150px;
		aspect-ratio: 1;
		border-radius: 10px;
		margin-bottom: 0;
	}

	.post-card__body {
		flex: 1;
		min-width: 0;
	}

	.post-card__title {
		font-size: 18px;
		line-height: 22px;
		margin: 0;
	}

	/* Di desain mobile kartunya cuma judul — snippet-nya nggak ditampilin. */
	.post-card__excerpt {
		display: none;
	}

	.pagination {
		margin-top: 32px;
	}
}

/* ==========================================================================
   Satu artikel (single post)
   ========================================================================== */

.post-single {
	background-color: var(--color-white);
	padding: 56px 20px 88px;
}

/* Kolom sempit ala Medium — panjang baris enak dibaca (~70 karakter). */
.post-single__inner {
	max-width: 720px;
	margin: 0 auto;
}

.post-single__category {
	margin: 0 0 14px;
}

.post-single__category a {
	color: var(--color-yellow);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-decoration: none;
}

.post-single__category a:hover {
	color: var(--color-brown);
}

.post-single__title {
	margin: 0 0 20px;
	color: var(--color-brown);
	font-family: var(--font-body);
	font-size: 40px;
	line-height: 1.25;
	font-weight: 700;
}

.post-single__excerpt {
	margin: 0 0 20px;
	color: var(--color-black);
	font-size: 20px;
	line-height: 32px;
	opacity: 0.75;
}

.post-single__date {
	margin: 0 0 32px;
	color: var(--color-black);
	font-size: 14px;
	opacity: 0.6;
}

.post-single__media {
	margin: 0 0 36px;
}

.post-single__media img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 12px;
}

.post-single__content {
	color: var(--color-black);
	font-size: var(--fs-body);
	line-height: var(--lh-body);
}

.post-single__content > *:first-child {
	margin-top: 0;
}

.post-single__content > *:last-child {
	margin-bottom: 0;
}

.post-single__content p {
	margin: 0 0 26px;
}

.post-single__content h2 {
	margin: 44px 0 16px;
	color: var(--color-brown);
	font-family: var(--font-body);
	font-size: 28px;
	line-height: 1.3;
	font-weight: 700;
}

.post-single__content h3 {
	margin: 34px 0 14px;
	color: var(--color-brown);
	font-family: var(--font-body);
	font-size: 22px;
	line-height: 1.35;
	font-weight: 700;
}

.post-single__content ul,
.post-single__content ol {
	margin: 0 0 26px;
	padding-left: 22px;
}

.post-single__content li {
	margin-bottom: 10px;
}

.post-single__content blockquote {
	margin: 32px 0;
	padding: 4px 0 4px 22px;
	border-left: 3px solid var(--color-yellow);
	color: var(--color-brown);
	font-size: 20px;
	line-height: 32px;
}

.post-single__content blockquote p:last-child {
	margin-bottom: 0;
}

.post-single__content img {
	max-width: 100%;
	height: auto;
	border-radius: 12px;
}

.post-single__content a {
	color: var(--color-green);
}

@media (max-width: 767px) {
	.post-single {
		padding: 28px 20px 56px;
	}

	.post-single__category a {
		font-size: 12px;
	}

	.post-single__title {
		font-size: 26px;
		margin-bottom: 14px;
	}

	.post-single__excerpt {
		font-size: 16px;
		line-height: 26px;
	}

	.post-single__date {
		margin-bottom: 22px;
		font-size: 13px;
	}

	.post-single__media {
		margin-bottom: 24px;
	}

	.post-single__content h2 {
		font-size: 21px;
		margin: 32px 0 12px;
	}

	.post-single__content h3 {
		font-size: 18px;
		margin: 26px 0 10px;
	}

	.post-single__content blockquote {
		font-size: 16px;
		line-height: 26px;
		padding-left: 16px;
		margin: 24px 0;
	}
}


/* ==========================================================================
   Kontak
   ========================================================================== */

.contact-intro {
	background-color: var(--color-white);
	padding: 44px 0 64px;
	text-align: center;
}

/* Philosopher + --fs-h1/--lh-h1 udah dateng dari gaya h1 dasar; di sini
   tinggal ganti warnanya (default h1 itu hijau) sama jaraknya. */
.contact-intro__title {
	margin: 0 0 32px;
	color: var(--color-brown);
}

/*
 * 900px = lebar blok teks di desain (baris terpanjangnya ~882px).
 *
 * text-wrap: balance bikin browser nyeimbangin panjang tiap baris sendiri,
 * jadi nggak perlu <br> manual yang gampang ngaco kalau lebarnya meleset
 * dikit. Browser lama yang belum dukung tinggal wrap biasa — nggak rusak.
 */
.contact-intro__description {
	max-width: 900px;
	margin: 0 auto;
	color: var(--color-black);
	text-wrap: balance;
}

/* Full-bleed. Fotonya tampil utuh dan ikut ngecil bareng viewport —
   rasio aslinya (1440x575) dijaga sama width/height di markup-nya. */
.contact-hero__image {
	display: block;
	width: 100%;
	height: auto;
}

@media (max-width: 767px) {
	.contact-intro {
		padding: 16px 0 20px;
	}

	.contact-intro__title {
		margin-bottom: 20px;
	}
}

/* --------------------------------------------------------------------------
   Kontak — Lokasi & Kontak + Maps
   -------------------------------------------------------------------------- */

.contact-map {
	background-color: var(--color-white);
	padding: 72px 0;
}

/* Perbandingan kolomnya ngikutin desain (teks : peta = 426 : 727). */
.contact-map__inner {
	display: grid;
	grid-template-columns: 426fr 727fr;
	gap: 60px;
	align-items: center;
}

.contact-map__title {
	margin: 0 0 20px;
	color: var(--color-green);
	font-family: var(--font-body);
	font-size: var(--fs-h2);
	line-height: 1.2;
	font-weight: 700;
}

.contact-map__title--kontak {
	margin-top: 44px;
}

.contact-map__company {
	margin: 0 0 26px;
	color: var(--color-brown);
	font-size: var(--fs-h3);
	line-height: var(--lh-h3);
}

.contact-map__company span {
	display: block;
}

.contact-map__row {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin: 0 0 16px;
	color: var(--color-brown);
}

.contact-map__row:last-child {
	margin-bottom: 0;
}

.contact-map__row a {
	color: var(--color-brown);
	text-decoration: none;
}

.contact-map__row a:hover {
	color: var(--color-green);
}

/* Ikonnya nggak boleh ikut menyusut pas teksnya kepatah dua baris. */
.contact-map__icon {
	display: inline-flex;
	flex: 0 0 auto;
	/* Diturunin dikit biar sejajar sama garis pandang baris pertama. */
	margin-top: 4px;
}

/*
 * Rasionya dikunci di sini (bukan di tinggi iframe-nya) supaya tinggi
 * halaman udah final sejak awal — peta Google baru kegambar belakangan.
 * Abu-abunya jadi latar selama peta belum kemuat.
 */
.contact-map__embed {
	aspect-ratio: 727 / 462;
	background-color: #d9d9d9;
	overflow: hidden;
}

.contact-map__embed iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}

@media (max-width: 767px) {
	.contact-map {
		padding: 28px 0 0;
	}

	.contact-map__inner {
		display: block;
	}

	.contact-map__title {
		margin-bottom: 10px;
	}

	.contact-map__title--kontak {
		margin-top: 24px;
	}

	.contact-map__company {
		margin-bottom: 12px;
	}

	.contact-map__row {
		gap: 8px;
		margin-bottom: 10px;
	}

	.contact-map__icon {
		margin-top: 2px;
	}

	.contact-map__icon svg {
		width: 16px;
		height: 16px;
	}

	/* Petanya full-bleed: -20px ngebatalin padding .container. */
	.contact-map__embed {
		margin: 28px -20px 0;
		aspect-ratio: 414 / 232;
	}
}

/* --------------------------------------------------------------------------
   Kontak — form "Butuh Bantuan?"
   -------------------------------------------------------------------------- */

.contact-form {
	background-color: var(--color-white);
	padding: 0 0 80px;
}

.contact-form__title {
	margin: 0 0 40px;
	color: var(--color-brown);
	/* Philosopher + --fs-h1/--lh-h1 dateng dari gaya h1/h2 dasar; h2 default
	   ukurannya 36, jadi di sini dinaikin ke --fs-h1 sesuai desain. */
	font-size: var(--fs-h1);
	line-height: var(--lh-h1);
}

.contact-form__card {
	border: 1px solid var(--color-yellow);
	border-radius: 20px;
	padding: 72px;
}

.contact-form__grid {
	display: grid;
	/* Perbandingan kolom ngikutin desain (input : textarea = 494 : 629). */
	grid-template-columns: 494fr 629fr;
	gap: 100px;
}

.contact-form__field {
	margin-bottom: 54px;
}

.contact-form__field:last-child {
	margin-bottom: 0;
}

.contact-form__label {
	display: block;
	margin-bottom: 24px;
	color: var(--color-brown);
	font-size: var(--fs-h3);
	line-height: 1.2;
}

/* Merah ini cuma dipakai buat penanda wajib-isi. */
.contact-form__req {
	color: #ef4f36;
	margin-left: 6px;
}

/* CF7 mbungkus tiap input pakai <span class="wpcf7-form-control-wrap">
   yang default-nya inline — dijadiin block biar lebarnya penuh. */
.contact-form .wpcf7-form-control-wrap {
	display: block;
}

.contact-form__input,
.contact-form__textarea {
	display: block;
	width: 100%;
	border: 1px solid var(--color-brown);
	border-radius: 4px;
	background-color: var(--color-white);
	color: var(--color-brown);
	font-family: var(--font-body);
	font-size: var(--fs-h3);
	line-height: var(--lh-body);
	padding: 0 16px;
}

.contact-form__input {
	height: 78px;
}

.contact-form__textarea {
	height: 320px;
	padding: 16px;
	resize: vertical;
}

.contact-form__input:focus,
.contact-form__textarea:focus {
	outline: 2px solid var(--color-yellow);
	outline-offset: 1px;
}

.contact-form__input::placeholder,
.contact-form__textarea::placeholder {
	color: var(--color-brown);
	opacity: 0.6;
}

.contact-form__actions {
	margin-top: 74px;
	text-align: right;
}

/* Ukuran .button default (20px, padding .75em/1.75em) udah pas sama desain:
   269x61 di mock vs 269x60 hasil hitung. */
.contact-form__submit {
	background-color: var(--color-yellow);
	color: var(--color-white);
	font-weight: 700;
}

.contact-form__submit:hover {
	background-color: var(--color-brown);
}

.contact-form__missing {
	margin: 0;
	color: #ef4f36;
}

/* Pesan validasi & status bawaan CF7 — dibikin senada, jangan biru default. */
.contact-form .wpcf7-not-valid-tip {
	margin-top: 8px;
	color: #ef4f36;
	font-size: 15px;
}

.contact-form .wpcf7-not-valid {
	border-color: #ef4f36;
}

.contact-form .wpcf7-response-output {
	margin: 24px 0 0;
	padding: 14px 18px;
	border-radius: 4px;
	border-width: 1px;
	font-size: 16px;
}

@media (max-width: 767px) {
	.contact-form {
		padding: 0 0 48px;
	}

	/*
	 * Di mobile judulnya keluar dari kotak dan rata tengah, jadi bordernya
	 * dipindah dari .card ke .grid — bukan dihapus dari kartunya doang.
	 */
	.contact-form__title {
		margin-bottom: 16px;
		text-align: center;
	}

	.contact-form__card {
		border: 0;
		padding: 0;
		border-radius: 0;
	}

	.contact-form__grid {
		display: block;
		border: 1px solid var(--color-yellow);
		border-radius: 16px;
		padding: 24px;
	}

	.contact-form__field {
		margin-bottom: 24px;
	}

	.contact-form__label {
		margin-bottom: 10px;
		font-size: var(--fs-h2);
	}

	.contact-form__req {
		margin-left: 2px;
	}

	.contact-form__input,
	.contact-form__textarea {
		font-size: var(--fs-h2);
		padding: 0 12px;
	}

	.contact-form__input {
		height: 40px;
	}

	.contact-form__textarea {
		height: 182px;
		padding: 12px;
	}

	.contact-form__actions {
		margin-top: 24px;
		text-align: center;
	}

	.contact-form__submit {
		font-size: 14px;
		padding: 8px 28px;
	}
}

/* ==========================================================================
   Arenga Cafe
   ========================================================================== */

/* ==========================================================================
   Intro halaman — teks di kiri, gambar nempel tepi kanan.
   Dipakai bareng Arenga Cafe & Arenga Industri (asetnya sama-sama 681x557
   desktop / 393x477 mobile). Lebar kolom teksnya beda per halaman, jadi
   diatur lewat --intro-text-max.
   ========================================================================== */

.page-intro {
	--intro-text-max: 460px;
	background-color: var(--color-white);
}

/* Paragraf Industri lebih panjang, kolomnya lebih lebar di desain. */
.page-intro--wide {
	--intro-text-max: 540px;
}

/*
 * Gambarnya nempel ke tepi kanan layar (bukan ke .container), makanya
 * grid-nya full-width. 47.3% = 681/1440, proporsi di desain.
 */
.page-intro__inner {
	display: grid;
	grid-template-columns: 1fr 47.3%;
	align-items: center;
}

/*
 * Kolom teksnya full-width, jadi padding kirinya dihitung sendiri biar
 * sejajar sama .container (dan sama logo di navbar atasnya).
 */
.page-intro__content {
	padding-top: 40px;
	padding-right: 40px;
	padding-bottom: 40px;
	padding-left: max(20px, calc((100vw - 1200px) / 2 + 20px));
}

.page-intro__title {
	max-width: var(--intro-text-max);
	margin: 0 0 24px;
	color: var(--color-brown);
	/* Philosopher + --fs-h1/--lh-h1 dateng dari gaya h1 dasar. */
}

.page-intro__description {
	max-width: var(--intro-text-max);
	margin: 0;
	color: var(--color-black);
}

/*
 * Jarak antar-paragraf pas satu baris kosong (diukur 29.7px di desain, dan
 * --lh-body emang 30). Pakai token biar di mobile ikut jadi 18px sendiri.
 */
.page-intro__description + .page-intro__description {
	margin-top: var(--lh-body);
}

.page-intro__media {
	display: block;
	/* Rasio asli cafe-restaurant.jpg. */
	aspect-ratio: 681 / 557;
}

.page-intro__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Krem ini beda tipis dari #fff9ee yang dipakai section Artikel — diukur
   dari desain, jangan disamain. */
.cafe-warning {
	background-color: #fff3e1;
	padding: 88px 0;
}

.cafe-warning__text {
	max-width: 900px;
	margin: 0;
	color: var(--color-black);
}

/* Merah ini beda dari #ef4f36 yang dipakai penanda wajib-isi di form Kontak —
   dua-duanya diukur dari desain, emang beda. */
.cafe-warning__text strong {
	color: #ff131b;
	font-weight: 700;
}

/* ==========================================================================
   Halaman Arenga Cafe — Keunggulan + Sertifikat
   ========================================================================== */

.cafe-usp {
	background-color: var(--color-white);
	padding-top: 88px;
}

/* padding-top-nya ruang buat ring ikon yang nongol 66px di atas kartu. */
.cafe-usp__grid {
	list-style: none;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px;
	margin: 0;
	padding: 66px 0 0;
}

.cafe-usp__card {
	position: relative;
	background-color: var(--color-white);
	border: 2px solid var(--color-green);
	border-radius: 20px;
	padding: 60px 40px 32px;
	text-align: center;
}

/* Ring-nya nembus ke atas kartu: 66px di luar, 24px di dalam. */
.cafe-usp__icon {
	position: absolute;
	top: -66px;
	left: 50%;
	transform: translateX(-50%);
	display: grid;
	place-items: center;
	width: 90px;
	height: 90px;
	border: 2px solid var(--color-green);
	border-radius: 50%;
	background-color: var(--color-white);
}

/* 32px, bukan --fs-h2 (36px) — desainnya emang segini. */
.cafe-usp__title {
	margin: 0 0 20px;
	color: var(--color-green);
	font-family: var(--font-body);
	font-size: 32px;
	line-height: 1.25;
	font-weight: 600;
}

.cafe-usp__text {
	margin: 0;
	color: var(--color-black);
	font-size: var(--fs-body);
	line-height: var(--lh-body);
}

.cafe-usp__certificate {
	margin-top: 68px;
}

.cafe-usp__certificate-image {
	display: block;
	width: 100%;
	height: auto;
}

/* ==========================================================================
   Halaman Arenga Cafe — Arenga memperkaya rasa + keunggulan usaha
   ========================================================================== */

.cafe-benefit {
	background-color: var(--color-white);
	padding: 88px 0;
}

/*
 * Kartunya di kolom kanan, nutupin dua baris; teks & tombol numpuk di kiri.
 * 569px itu lebar blok kartu di desain (2 x 267 + gap 35).
 */
.cafe-benefit__inner {
	display: grid;
	grid-template-columns: 1fr 569px;
	grid-template-rows: auto 1fr;
	column-gap: 56px;
	row-gap: 62px;
}

.cafe-benefit__intro {
	grid-column: 1;
	grid-row: 1;
}

.cafe-benefit__actions {
	grid-column: 1;
	grid-row: 2;
	align-self: start;
}

.cafe-benefit__grid {
	grid-column: 2;
	grid-row: 1 / 3;
	list-style: none;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 52px 35px;
	margin: 0;
	padding: 0;
}

/* max-width-nya yang bikin patah baris "…rasa / di setiap sajian" — bukan <br>. */
.cafe-benefit__title {
	max-width: 460px;
	margin: 0 0 46px;
	color: var(--color-yellow);
	font-family: var(--font-body);
	font-size: var(--fs-h2);
	line-height: var(--lh-h2);
	font-weight: 700;
}

.cafe-benefit__text {
	margin: 0 0 32px;
	color: var(--color-black);
	font-size: var(--fs-body);
	line-height: var(--lh-body);
}

.cafe-benefit__text:last-child {
	margin-bottom: 0;
}

.cafe-benefit__subtitle {
	display: none;
}

.cafe-benefit__wa {
	display: inline-flex;
	align-items: center;
	gap: 26px;
	padding: 0.75em 54px;
	font-weight: 700;
}

.cafe-benefit__wa-icon {
	flex: none;
	width: 34px;
	height: 34px;
}

.cafe-benefit__back {
	display: inline-block;
	margin-top: 32px;
	padding-bottom: 5px;
	border-bottom: 2px dashed var(--color-yellow);
	color: var(--color-yellow);
	font-size: var(--fs-button);
	font-weight: 700;
	text-decoration: none;
}

.cafe-benefit__back:hover {
	color: var(--color-brown);
	border-bottom-color: var(--color-brown);
}

/*
 * min-height-nya disengaja: di mock kartunya jauh lebih tinggi dari isinya,
 * jadi ada ruang kosong di bawah teks.
 */
.cafe-benefit__card {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	min-height: 369px;
	border: 1px solid var(--color-yellow);
	border-radius: 8px;
	padding: 34px 26px;
}

.cafe-benefit__icon {
	display: block;
	margin-bottom: 20px;
}

.cafe-benefit__card-title {
	margin: 0 0 16px;
	color: var(--color-green);
	font-family: var(--font-body);
	font-size: var(--fs-h3);
	line-height: var(--lh-h3);
	font-weight: 700;
}

.cafe-benefit__card-text {
	margin: 0;
	color: var(--color-black);
	font-size: var(--fs-body);
	line-height: var(--lh-body);
}

/* ==========================================================================
   Arenga Industri — "Sejak 2006" + pita "Dari Petani Sendiri"
   ========================================================================== */
.industri-origin {
	background-color: var(--color-white);
	padding: 64px 0 48px;
}

.industri-origin__header {
	text-align: center;
}

.industri-origin__title {
	margin: 0;
	color: var(--color-brown);
	font-family: var(--font-heading);
	font-size: var(--fs-h1);
	line-height: var(--lh-h1);
}

/* Garis emas pendek di bawah judul. */
.industri-origin__divider {
	display: block;
	width: 160px;
	height: 2px;
	margin: 22px auto;
	background-color: var(--color-yellow);
}

.industri-origin__subtitle {
	max-width: 620px;
	margin: 0 auto;
	color: #6a5748;
	font-size: var(--fs-body);
	line-height: var(--lh-body);
}

/* Pita hijau — background full-bleed, konten dibatasi .container. */
.origin-band {
	background-color: var(--color-green);
}

.origin-band__inner {
	display: flex;
	align-items: center;
	gap: 40px;
	padding-top: 52px;
	padding-bottom: 52px;
}

/*
 * Kotak ikon: gradient hijau terang (kiri) ke hijau tua (kanan). Ikon bibit-nya
 * sudah putih dari file SVG-nya, jadi nggak perlu diwarnai ulang.
 */
.origin-band__icon {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 150px;
	height: 150px;
	border-radius: 26px;
	background: linear-gradient(120deg, #90b565 0%, #6b8a4b 100%);
}

.origin-band__icon-img {
	display: block;
	width: 116px;
	height: auto;
}

.origin-band__text {
	max-width: 620px;
}

.origin-band__title {
	margin: 0 0 12px;
	color: var(--color-white);
	font-family: var(--font-body);
	font-size: var(--fs-h2);
	line-height: var(--lh-h2);
	font-weight: 700;
}

.origin-band__desc {
	margin: 0;
	color: var(--color-white);
	font-size: var(--fs-body);
	line-height: var(--lh-body);
}

/*
 * Gambar full-bleed. Di desktop teksnya overlay di pojok kanan-bawah gambar
 * (tepi kanan sejajar .container). Di mobile teks turun ke bawah gambar (lihat
 * media query).
 */
.origin-proof {
	position: relative;
}

.origin-proof__media,
.origin-proof__image {
	display: block;
	width: 100%;
}

.origin-proof__image {
	height: auto;
}

.origin-proof__text {
	position: absolute;
	right: max(20px, calc((100vw - 1200px) / 2 + 20px));
	bottom: 72px;
	width: min(570px, 46%);
}

.origin-proof__desc {
	margin: 0;
	color: var(--color-white);
	font-size: var(--fs-body);
	line-height: var(--lh-body);
}

.origin-proof__desc + .origin-proof__desc {
	margin-top: var(--lh-body);
}

/* ==========================================================================
   Arenga Industri — penutup: kartu keunggulan + CTA
   ========================================================================== */
.industri-close {
	background-color: var(--color-white);
	padding: 72px 0 96px;
}

.industri-close__grid {
	list-style: none;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px;
	margin: 0;
	padding: 0;
}

/*
 * Kartu ketiga tingginya ikut kartu tertinggi (grid stretch), teks nempel di
 * atas — sisa ruang jadi kosong di bawah, sesuai desain.
 */
.close-card {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	border: 1px solid #c3cecb;
	border-radius: 14px;
	padding: 32px 30px;
}

.close-card__emoji {
	margin-bottom: 26px;
	font-size: 34px;
	line-height: 1;
}

.close-card__title {
	margin: 0 0 16px;
	color: var(--color-green);
	font-family: var(--font-body);
	font-size: 28px;
	line-height: 1.4;
	font-weight: 700;
}

/* Judul pendek cuma dipakai di mobile. */
.close-card__title-short {
	display: none;
}

.close-card__body {
	margin: 0;
	color: #48645b;
	font-size: var(--fs-body);
	line-height: var(--lh-body);
}

/* Tombol WA + link balik, ketengah di bawah kartu. */
.industri-close__cta {
	margin-top: 56px;
	text-align: center;
}

.industri-close__wa {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	padding: 0.75em 40px;
	font-weight: 700;
}

.industri-close__wa-icon {
	flex: none;
	width: 26px;
	height: 26px;
}

.industri-close__back {
	display: block;
	width: fit-content;
	margin: 28px auto 0;
	padding-bottom: 5px;
	border-bottom: 2px dashed var(--color-yellow);
	color: var(--color-yellow);
	font-size: var(--fs-button);
	font-weight: 700;
	text-decoration: none;
}

.industri-close__back:hover {
	color: var(--color-brown);
	border-bottom-color: var(--color-brown);
}

/* ==========================================================================
   Halaman FAQ — Punya Pertanyaan?
   ========================================================================== */
.faq {
	background-color: var(--color-white);
	padding: 64px 0 120px;
}

.faq__header {
	margin-bottom: 56px;
	text-align: center;
}

.faq__title {
	margin: 0 0 16px;
	color: var(--color-brown);
	/* Philosopher + --fs-h1/--lh-h1 dateng dari gaya h1 dasar. */
}

.faq__subtitle {
	max-width: 620px;
	margin: 0 auto;
	color: #5f5f5f;
	font-size: var(--fs-body);
	line-height: var(--lh-body);
}

/* Kiri sidebar kategori, kanan akordeon. */
.faq__body {
	display: grid;
	grid-template-columns: 240px 1fr;
	column-gap: 56px;
}

.faq__sidebar-title {
	margin: 0 0 24px;
	color: var(--color-black);
	font-family: var(--font-body);
	font-size: 20px;
	line-height: 1.4;
	font-weight: 600;
}

.faq__cats {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 20px;
}

.faq__cat {
	margin: 0;
	padding: 0;
	border: none;
	background: none;
	color: #4b6b62;
	font-family: var(--font-body);
	font-size: var(--fs-body);
	line-height: 1.3;
	text-align: left;
	cursor: pointer;
	transition: color 0.2s ease;
}

.faq__cat:hover {
	color: var(--color-green);
	background-color: transparent;
}

.faq__cat.is-active {
	color: var(--color-green);
	font-weight: 700;
}

.faq__empty {
	margin: 0;
	color: #4b6b62;
	font-size: var(--fs-body);
	line-height: var(--lh-body);
}

/* Satu pertanyaan = satu tombol + panel jawaban. */
.faq-item + .faq-item {
	margin-top: 4px;
}

.faq-item__q {
	display: flex;
	align-items: center;
	gap: 24px;
	width: 100%;
	margin: 0;
	padding: 18px 0;
	border: none;
	border-radius: 0;
	background: none;
	color: var(--color-black);
	font-family: var(--font-body);
	font-size: 20px;
	line-height: 1.4;
	font-weight: 500;
	text-align: left;
	cursor: pointer;
}

/*
 * Tombol pertanyaan itu <button>, jadi kena gaya pill hijau/hover coklat dari
 * aturan `button` global. Netralkan hover-nya biar teksnya tetap datar.
 */
.faq-item__q:hover {
	background-color: transparent;
	color: var(--color-black);
}

/* Di desktop ikon di kiri, teks di kanan. */
.faq-item__icon {
	order: 1;
	flex: none;
	display: block;
	width: 20px;
	height: 20px;
	color: var(--color-yellow);
}

.faq-item__q-text {
	order: 2;
	flex: 1;
}

.faq-item__icon-plus,
.faq-item__icon-chevron {
	display: block;
	width: 100%;
	height: 100%;
	transition: transform 0.2s ease;
}

.faq-item__icon-chevron {
	display: none;
}

/* Plus muter jadi "x" pas kebuka. */
.faq-item.is-open .faq-item__icon-plus {
	transform: rotate(45deg);
}

.faq-item__a {
	display: none;
	padding: 0 0 20px 44px;
	color: #48645b;
	font-size: var(--fs-body);
	line-height: var(--lh-body);
}

.faq-item.is-open .faq-item__a {
	display: block;
}

.faq-item__a > :first-child {
	margin-top: 0;
}

.faq-item__a > :last-child {
	margin-bottom: 0;
}

@media (max-width: 767px) {
	.page-intro__inner {
		display: block;
	}

	.page-intro__content {
		padding: 28px 20px 14px;
	}

	.page-intro__title,
	.page-intro__description {
		max-width: none;
	}

	.page-intro__title {
		margin-bottom: 12px;
	}

	/* Rasio asli cafe-restaurant-mobile.jpg; full-bleed karena di luar .container. */
	.page-intro__media {
		aspect-ratio: 393 / 477;
	}

	/* Di mobile pitanya nggak krem — putih, sama kayak section atasnya. */
	.cafe-warning {
		background-color: var(--color-white);
		padding: 32px 0 40px;
	}

	.cafe-usp {
		padding-top: 48px;
	}

	/* Kartu 1 & 2 sebelahan; kartu 3 (sertifikat) melebar penuh di bawahnya. */
	.cafe-usp__grid {
		grid-template-columns: 1fr 1fr;
		gap: 24px 15px;
		padding-top: 24px;
	}

	.cafe-usp__card {
		border-width: 1px;
		border-radius: 14px;
		padding: 22px 20px 12px;
		text-align: left;
	}

	.cafe-usp__icon {
		top: -24px;
		width: 38px;
		height: 38px;
		border-width: 1px;
	}

	.cafe-usp__icon img {
		width: 28px;
		height: auto;
	}

	.cafe-usp__title {
		font-size: var(--fs-h2);
		line-height: var(--lh-h2);
		margin-bottom: 4px;
	}

	/* Kartu sertifikat beda sendiri di mobile: latar mint, ikonnya kotak isi
	   di dalam kartu (bukan ring nembus), judul sebaris di sampingnya. */
	.cafe-usp__card--certified {
		grid-column: 1 / -1;
		display: grid;
		grid-template-columns: auto 1fr;
		column-gap: 12px;
		align-items: center;
		background-color: #effffa;
		padding: 14px 16px 16px;
	}

	.cafe-usp__card--certified .cafe-usp__icon {
		position: static;
		transform: none;
		width: 40px;
		height: 40px;
		border: 0;
		border-radius: 6px;
		background-color: var(--color-green);
	}

	/* SVG-nya di-load lewat <img>, jadi warnanya nggak bisa disetel CSS.
	   brightness(0) bikin item dulu, invert(1) baru jadiin putih. */
	.cafe-usp__card--certified .cafe-usp__icon img {
		filter: brightness(0) invert(1);
	}

	.cafe-usp__card--certified .cafe-usp__title {
		grid-column: 2;
		margin: 0;
	}

	.cafe-usp__card--certified .cafe-usp__text {
		grid-column: 1 / -1;
		margin-top: 12px;
	}

	.cafe-usp__certificate {
		margin-top: 38px;
	}

	.cafe-benefit {
		padding: 48px 0 56px;
	}

	/* Satu kolom; urutan DOM udah bener, tinggal ditumpuk. */
	.cafe-benefit__inner {
		grid-template-columns: 1fr;
		grid-template-rows: none;
		row-gap: 0;
	}

	.cafe-benefit__intro,
	.cafe-benefit__actions,
	.cafe-benefit__grid {
		grid-column: 1;
		grid-row: auto;
	}

	.cafe-benefit__grid {
		gap: 20px 21px;
		margin: 20px 0 32px;
	}

	.cafe-benefit__title {
		margin-bottom: 18px;
	}

	.cafe-benefit__text {
		margin-bottom: 20px;
	}

	.cafe-benefit__subtitle {
		display: block;
		margin: 32px 0 0;
		color: var(--color-yellow);
		font-family: var(--font-body);
		font-size: var(--fs-h2);
		line-height: var(--lh-h2);
		font-weight: 700;
	}

	.cafe-benefit__actions {
		text-align: center;
	}

	.cafe-benefit__wa {
		gap: 10px;
		padding: 0.75em 18px;
		font-size: var(--fs-body);
	}

	.cafe-benefit__wa-icon {
		width: 16px;
		height: 16px;
	}

	.cafe-benefit__back {
		margin-top: 24px;
		font-size: var(--fs-body);
	}

	.cafe-benefit__card {
		min-height: 0;
		padding: 22px 20px;
	}

	.cafe-benefit__icon {
		width: 28px;
		height: auto;
		margin-bottom: 8px;
	}

	.cafe-benefit__card-title {
		margin-bottom: 6px;
		font-size: var(--fs-h2);
		line-height: 22px;
	}

	/* ---- Arenga Industri: Sejak 2006 / Dari Petani Sendiri ---- */
	.industri-origin {
		padding: 40px 0 28px;
	}

	.industri-origin__divider {
		width: 64px;
		margin: 14px auto;
	}

	/* Ikon + judul sebaris di atas, paragraf turun di kolom yang sama. */
	.origin-band__inner {
		align-items: flex-start;
		gap: 14px;
		padding-top: 22px;
		padding-bottom: 22px;
	}

	.origin-band__icon {
		width: 44px;
		height: 44px;
		border-radius: 12px;
	}

	.origin-band__icon-img {
		width: 32px;
	}

	.origin-band__title {
		margin-bottom: 8px;
		font-size: var(--fs-h2);
		line-height: var(--lh-h2);
	}

	/* Teks pindah ke bawah gambar: alur normal, teks gelap di atas putih. */
	.origin-proof__text {
		position: static;
		width: auto;
		padding: 28px 20px 8px;
	}

	.origin-proof__desc {
		color: var(--color-black);
	}

	/* ---- Penutup Industri: kartu 2 kolom, kartu ke-3 melebar ---- */
	.industri-close {
		padding: 40px 0 56px;
	}

	.industri-close__grid {
		grid-template-columns: 1fr 1fr;
		gap: 14px;
	}

	.close-card {
		padding: 18px 16px;
		border-radius: 12px;
	}

	.close-card__emoji {
		margin-bottom: 12px;
		font-size: 26px;
	}

	.close-card__title {
		margin-bottom: 10px;
		font-size: 17px;
		line-height: 1.3;
	}

	.close-card__title-full {
		display: none;
	}

	.close-card__title-short {
		display: inline;
	}

	/* Kartu ke-3: full-width, emoji di kiri judul, body turun di bawah. */
	.close-card--wide {
		grid-column: 1 / -1;
		display: grid;
		grid-template-columns: auto 1fr;
		column-gap: 12px;
		align-items: center;
	}

	.close-card--wide .close-card__emoji {
		margin-bottom: 0;
	}

	.close-card--wide .close-card__title {
		margin-bottom: 0;
	}

	.close-card--wide .close-card__body {
		grid-column: 1 / -1;
		margin-top: 12px;
	}

	.industri-close__cta {
		margin-top: 32px;
	}

	.industri-close__wa {
		gap: 10px;
		padding: 0.7em 22px;
		font-size: var(--fs-body);
	}

	.industri-close__wa-icon {
		width: 18px;
		height: 18px;
	}

	.industri-close__back {
		margin-top: 20px;
		font-size: var(--fs-body);
	}

	/* ---- FAQ mobile: pill kategori + akordeon teks-kiri chevron-kanan ---- */
	.faq {
		padding: 32px 0 56px;
	}

	.faq__header {
		margin-bottom: 24px;
	}

	.faq__body {
		display: block;
	}

	/* Sidebar berubah jadi pill horizontal yang bisa digeser. */
	.faq__sidebar-title {
		display: none;
	}

	.faq__cats {
		flex-direction: row;
		flex-wrap: nowrap;
		gap: 12px;
		margin-bottom: 28px;
		padding-bottom: 6px;
		overflow-x: auto;
	}

	.faq__cat {
		flex: none;
		padding: 9px 22px;
		border: 1px solid var(--color-green);
		border-radius: 999px;
		color: var(--color-green);
		font-weight: 600;
		white-space: nowrap;
	}

	.faq__cat.is-active {
		color: var(--color-white);
		background-color: var(--color-green);
	}

	/* Teks kiri, chevron kanan, dengan garis pemisah antar item. */
	.faq-item {
		border-bottom: 1px solid #d9d5cf;
	}

	.faq-item + .faq-item {
		margin-top: 0;
	}

	.faq-item__q {
		gap: 16px;
		padding: 16px 0;
		font-size: 16px;
	}

	.faq-item__q-text {
		order: 1;
	}

	.faq-item__icon {
		order: 2;
	}

	.faq-item__icon-plus {
		display: none;
	}

	.faq-item__icon-chevron {
		display: block;
	}

	.faq-item.is-open .faq-item__icon-chevron {
		transform: rotate(180deg);
	}

	.faq-item__a {
		padding: 0 0 18px;
	}
}

/* ==========================================================================
   Animasi First Load
   ========================================================================== */

/*
 * Overlay hijau + logo yang nutupin layar sewaktu halaman pertama kali dibuka,
 * lalu fade out sambil kontennya naik pelan. Markup-nya di header.php,
 * penghilangnya di assets/js/page-load.js.
 *
 * z-index 1000000: di atas admin bar WordPress (99999) dan .mobile-menu
 * (999999), biar nggak ada yang nembus overlay-nya.
 */
.page-loader {
	position: fixed;
	inset: 0;
	z-index: 1000000;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: var(--color-green);

	/*
	 * Pengaman kalau JS mati atau gagal jalan: overlay-nya tetap keluar
	 * sendiri setelah 2.5 detik, jadi halaman nggak pernah kekunci di
	 * layar hijau. Kalau JS-nya normal, .is-hidden di bawah yang duluan
	 * kepakai (biasanya < 1 detik).
	 */
	animation: arenga-loader-out 0.5s ease 2.5s forwards;
}

.page-loader.is-hidden {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.5s ease, visibility 0.5s ease;
}

.page-loader__logo {
	width: 200px;
	max-width: 55vw;
	height: auto;
	animation: arenga-loader-pulse 1.6s ease-in-out infinite;
}

@keyframes arenga-loader-pulse {
	0%,
	100% {
		opacity: 0.55;
		transform: scale(0.97);
	}

	50% {
		opacity: 1;
		transform: scale(1);
	}
}

@keyframes arenga-loader-out {
	to {
		opacity: 0;
		visibility: hidden;
	}
}

/*
 * Navbar SENGAJA nggak dianimasiin. Dia elemen yang tetap ada di semua
 * halaman — kalau ikut fade tiap pindah halaman, navigasinya jadi kerasa
 * "loading" terus. Biarin dia langsung ada dan diam.
 */

/* ==========================================================================
   Animasi Masuk Per-Elemen (scroll reveal)
   ========================================================================== */

/*
 * Elemennya ditandai data-reveal="<efek>" oleh assets/js/reveal.js, lalu
 * dikasih .is-revealed pas masuk layar. Jeda antar kartu (biar munculnya
 * satu per satu) dipasang JS lewat inline transition-delay.
 *
 * Semua aturan penyembunyi digantung ke .has-js di <html> — kalau JS mati,
 * data-reveal nggak pernah kepasang DAN selectornya nggak pernah cocok, jadi
 * halamannya tetap tampil utuh.
 */
/*
 * Geserannya pakai properti `translate`/`scale`, BUKAN `transform`. Alasannya:
 * beberapa elemen sudah punya transform sendiri buat posisi (mis. tombol yang
 * di-center pakai translateX(-50%)) — kalau animasinya nimpa `transform`,
 * posisinya bakal loncat pas selesai animasi.
 */
.has-js [data-reveal] {
	opacity: 0;
	will-change: opacity, translate, scale;
	transition: opacity 0.7s cubic-bezier(0.2, 0.6, 0.2, 1),
		translate 0.7s cubic-bezier(0.2, 0.6, 0.2, 1),
		scale 0.7s cubic-bezier(0.2, 0.6, 0.2, 1);
}

/* Naik pelan — dipakai buat blok isi section (judul, deskripsi, tombol). */
.has-js [data-reveal="up"] {
	translate: 0 28px;
}

/* Maju ke depan — buat kartu produk, resep, dan galeri. */
.has-js [data-reveal="zoom"] {
	translate: 0 18px;
	scale: 0.96;
}

/* Mengalir dari kiri — buat daftar yang dibaca berurutan (poin "Kenapa
   Arenga", kategori & pertanyaan FAQ). */
.has-js [data-reveal="left"] {
	translate: -28px 0;
}

.has-js [data-reveal="right"] {
	translate: 28px 0;
}

.has-js [data-reveal].is-revealed {
	opacity: 1;
	translate: none;
	scale: none;
	will-change: auto;
}

/* Di layar kecil jaraknya dikecilin, biar gerakannya nggak berlebihan dan
   nggak ada risiko kegeser horizontal. */
@media (max-width: 767px) {
	.has-js [data-reveal="up"] {
		translate: 0 18px;
	}

	.has-js [data-reveal="zoom"] {
		translate: 0 12px;
		scale: 0.97;
	}

	.has-js [data-reveal="left"] {
		translate: -16px 0;
	}

	.has-js [data-reveal="right"] {
		translate: 16px 0;
	}
}

/* Hormatin setelan "kurangi animasi" di OS-nya: overlay nggak ditampilkan,
   konten langsung kelihatan tanpa gerakan apa pun. (reveal.js juga langsung
   berhenti sendiri di kondisi ini.) */
@media (prefers-reduced-motion: reduce) {
	.page-loader {
		display: none;
	}

	.has-js [data-reveal] {
		opacity: 1;
		translate: none;
		scale: none;
		transition: none;
	}
}

/* ==========================================================================
   Halaman Hasil Pencarian (search.php)
   ========================================================================== */

.search-head {
	padding: 56px 0 44px;
}

.search-head__eyebrow {
	margin: 0 0 10px;
	font-family: var(--font-body);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--color-yellow);
}

.search-head__title {
	margin: 0;
	font-family: var(--font-heading);
	font-size: var(--fs-h1);
	line-height: var(--lh-h1);
	color: var(--color-green);

	/* Kata kunci dari user bisa panjang banget tanpa spasi — biar nggak
	   nembus keluar container. */
	overflow-wrap: anywhere;
}

.search-head__divider {
	width: 72px;
	height: 3px;
	margin: 22px 0 18px;
	border-radius: 2px;
	background-color: var(--color-yellow);
}

.search-head__meta {
	margin: 0 0 26px;
	font-size: 16px;
	color: var(--color-brown);
}

.search-page-form {
	display: flex;
	align-items: center;
	gap: 12px;
	max-width: 560px;
}

.search-page-form__input {
	flex: 1 1 auto;
	min-width: 0;
	padding: 13px 20px;
	font-family: var(--font-body);
	font-size: 16px;
	color: var(--color-black);
	background-color: var(--color-white);
	border: 1px solid #e3ded6;
	border-radius: 999px;
}

.search-page-form__input:focus {
	outline: none;
	border-color: var(--color-green);
}

.search-page-form__submit {
	flex: 0 0 auto;
}

/* Krem yang sama dipakai grid artikel, biar nyambung sama halaman blog. */
.search-results {
	background-color: #fff9ee;
	padding: 56px 0 72px;
}

/* Penanda kecil di bawah cuplikan — hasil pencarian isinya campur (artikel,
   halaman, produk), jadi kasih petunjuk kalau kartunya bisa diklik. */
.post-card__more {
	display: inline-block;
	margin-top: 16px;
	font-size: 14px;
	font-weight: 600;
	color: var(--color-yellow);
	text-decoration: none;
	border-bottom: 2px dashed var(--color-yellow);
	padding-bottom: 3px;
	transition: color 0.2s ease, border-color 0.2s ease;
}

.post-card__more:hover,
.post-card:hover .post-card__more {
	color: var(--color-brown);
	border-bottom-color: var(--color-brown);
}

.search-empty {
	max-width: 560px;
	margin: 0 auto;
	text-align: center;
	padding: 24px 0 16px;
}

.search-empty__message {
	margin: 0 0 12px;
	font-family: var(--font-heading);
	font-size: var(--fs-h3);
	line-height: var(--lh-h3);
	color: var(--color-green);
}

.search-empty__hint {
	margin: 0 0 28px;
	font-size: 16px;
	line-height: 26px;
	color: var(--color-brown);
}

@media (max-width: 767px) {
	.search-head {
		padding: 32px 0 26px;
	}

	.search-head__eyebrow {
		font-size: 12px;
	}

	.search-head__divider {
		margin: 14px 0 12px;
	}

	.search-head__meta {
		font-size: 14px;
		margin-bottom: 18px;
	}

	.search-page-form {
		max-width: none;
	}

	.search-page-form__input {
		padding: 11px 16px;
		font-size: 15px;
	}

	.search-results {
		padding: 32px 0 48px;
	}

	.search-empty__hint {
		font-size: 14px;
		line-height: 22px;
	}
}
