/**
 * Header, Footer & Cek Pesanan global restyle (2026-08-29, item 6 roadmap).
 * Header & Footer di tema Botiga ini dibangun lewat Botiga Header/Footer
 * Builder (BHFB) -- BUKAN header.php/footer.php polos -- jadi pendekatan di
 * sini SAMA kayak semua fix Botiga lain di plugin ini (lihat
 * woo-compat-botiga.php): tidak menyentuh file tema, murni override dari
 * plugin kita sendiri. Header (logo/menu/search/account/cart) di-RESKIN di
 * tempat (markup BHFB dipakai apa adanya, biar search-expand/sticky/offcanvas/
 * cart-AJAX bawaan Botiga TETAP jalan tanpa disentuh) -- HANYA Footer yang
 * di-ganti total (markup BHFB footer disembunyikan, digantikan versi baru
 * lewat wp_footer, lihat includes/header-footer-restyle.php).
 *
 * REVISI 2026-09-11 -- rollout "global visual setting" WARNA sempat
 * dipasang di sini (Home, Journal, Shop, Product Detail, About Us, Contact
 * sudah selesai duluan), tapi ATAS PERMINTAAN FERDIAN warna Header/Footer
 * DIKEMBALIKAN jadi berdiri sendiri lagi -- rencananya Header/Footer akan
 * punya pengaturan warna sendiri terpisah nanti (bukan ikut preset warna
 * global halaman lain). Yang TETAP ikut global cuma FONT heading (font
 * pairing), lihat blok token di bawah dan preset override font di bagian
 * bawah file ini.
 *
 * Selama proses rollout warna kemarin (sekarang sudah dilepas lagi) sempat
 * ditemukan bug pre-existing yang independen dari keputusan ini: token
 * warna di sini dulu di-declare di ":root" (elemen html, benar-benar
 * global) dan sebagian nilainya fallback-referencing "--zsd-jr-*" lewat
 * var(x, fallback) -- akibatnya warna Header/Footer bisa diam-diam ikut
 * berubah kalau halaman aktif kebetulan sudah declare "--zsd-jr-*" sendiri
 * (custom property CSS ikut turun ke elemen anak). Karena warna sekarang
 * balik jadi hardcode lokal (bukan var(--zsd-jr-*) lagi), risiko itu sudah
 * otomatis tidak ada lagi tanpa perlu penanganan khusus.
 *
 * Font TETAP di-declare di elemen pembungkus sendiri (".site"/".zsd-footer",
 * bukan body/html) -- alasan sama seperti sebelumnya: drawer mobile
 * off-canvas (".bhfb-mobile_offcanvas") ternyata SEJAJAR (sibling) dengan
 * header di DOM, bukan anak di dalamnya (dikonfirmasi lewat inspeksi DOM
 * live), keduanya sama-sama anak dari ".site". Footer TIDAK ikut ".site"
 * (dia sendiri anak langsung <body>), jadi ditulis sebagai selector
 * terpisah di baris yang sama.
 *
 * CATATAN: seluruh komentar rollout ini SENGAJA tidak pernah menulis
 * tanda bintang yang langsung diikuti garis miring di mana pun -- dua
 * karakter itu berurutan menutup komentar CSS lebih awal, pernah kejadian
 * nyata di rollout Product Detail (rule custom property hilang total dari
 * CSSOM walau teks sumbernya kelihatan benar).
 */

.site,
.zsd-footer {
	--zsd-hf-coklat: #6b5744;
	--zsd-hf-coklat-gelap: #574632;
	--zsd-hf-krem: #f8f2e9;
	/* FIX 2026-09-13 (round 2, laporan Ferdian "warna warm vs light tidak ada
	   bedanya di Footer"): root cause -- default "Light" Footer sebelumnya
	   pakai --zsd-hf-krem-lebih-muda: #fbf7f0 (krim pucat), padahal preset
	   "Warm" di bawah file ini (.zsd-footer.zsd-ff-warna-warm) set warna yang
	   HAMPIR SAMA (#f8f2e9) -- 2 krim yang nyaris identik, jadi switch
	   warm<->light nyaris tidak kelihatan. Header TIDAK kena bug ini karena
	   default Light Header hardcode PUTIH murni (.bhfb-header { background:
	   #fff !important }, lihat baris di bawah), BUKAN dari token krim ini --
	   jadi Header warm (krim) vs Header light (putih) kontras jelas. FIX:
	   samakan pola -- default Light Footer sekarang PUTIH murni juga, biar
	   preset Warm (krim) baru benar-benar kelihatan beda. */
	--zsd-hf-krem-lebih-muda: #ffffff;
	--zsd-hf-garis: #ece4d8;
	--zsd-hf-teks: #2b2622;
	--zsd-hf-teks-muted: #7a7168;

	/* Font TETAP ikut "global visual setting" (font pairing), lihat
	   zsd_body_class_header_footer() -- picu lewat body class
	   zsd-hf-font-*, override di bawah file ini. */
	--zsd-jr-font-heading: "Inter", -apple-system, "system-ui", "Segoe UI", Roboto, sans-serif;
	--zsd-hf-font-heading: var(--zsd-jr-font-heading);
}

body.zsd-hf-font-editorial-klasik .site,
body.zsd-hf-font-editorial-klasik .zsd-footer {
	--zsd-jr-font-heading: "Playfair Display", Georgia, serif;
}

body.zsd-hf-font-editorial-hangat .site,
body.zsd-hf-font-editorial-hangat .zsd-footer {
	--zsd-jr-font-heading: "Fraunces", Georgia, serif;
}

.zsd-footer-group h3 {
	font-family: var(--zsd-hf-font-heading);
}

/* =====================================================================
 * HEADER -- reskin di atas markup BHFB yang sudah ada (bukan rebuild)
 * ===================================================================== */

.bhfb-header {
	background: #fff !important;
	border-bottom: 1px solid var(--zsd-hf-garis) !important;
	box-shadow: none !important;
}
.bhfb-header.bhfb-sticky-header,
.bhfb-header .bhfb-row-wrapper.bhfb-sticky-header {
	transition: box-shadow .25s ease, background-color .25s ease;
}
.bhfb-header.botiga-scrolling-down .bhfb-main_header_row,
body.botiga-scrolling-down .bhfb-header {
	box-shadow: 0 1px 10px rgba(43,38,34,.06);
}
@media (prefers-reduced-motion: reduce) {
	.bhfb-header, .bhfb-header * { transition: none !important; }
}

/* Logo -- text "ZENOS." asli WordPress site-title diganti gambar hitam
 * (image-replacement technique: teks tetap ada di DOM buat screen reader/SEO,
 * cuma disembunyikan visual lewat text-indent, background-image ambil alih).
 * URL background-image di-inject lewat <style> inline (wp_head), lihat PHP. */
.site-title,
.bhfb-footer-logo-wrap .site-title,
.zsd-footer-logo-teks {
	overflow: hidden;
}
.site-title a {
	overflow: hidden;
	display: inline-block;
	width: 130px;
	height: 34px;
	text-indent: 110%;
	white-space: nowrap;
	background-repeat: no-repeat;
	background-position: left center;
	background-size: contain;
}
@media (max-width: 1024px) {
	.site-title a { width: 108px; height: 28px; }
}

/* Nav -- posisi tengah, hover/active coklat.
 * FIX (Contact ke-wrap ke baris 2): Botiga punya `.botiga-dropdown-ul`
 * generik dengan flex-wrap:wrap bawaan (dipakai buat submenu dropdown biasa)
 * -- di nav utama header ini nggak pernah di-override jadi nowrap, jadi begitu
 * 4 kolom Shop/About/Journal/Contact + gap 32px + font 16px LEBIH LEBAR dari
 * kolom tengah yang tersisa (kolom logo & search/account/cart di kanan-kiri
 * FIXED width, kolom nav yang dapat sisa), item terakhir (Contact) jatuh ke
 * baris baru. Terverifikasi lewat live DOM test: bahkan di lebar container
 * PALING LEBAR sekalipun (BHFB punya container max-width sendiri), ruang yang
 * tersisa buat nav CUMA pas-pasan/kurang dari kebutuhan nav ukuran default --
 * jadi compact sizing ini dipasang permanen (bukan cuma di 1 breakpoint
 * sempit), bukan cuma nowrap doang (nowrap doang malah bikin teks per-kata
 * kepotong wrap sendiri karena ruang kurang). Font tetap nyaman dibaca
 * (14.5px, bukan dikecilin sampai nggak kebaca), height header/logo/hamburger
 * mobile SAMA SEKALI TIDAK diubah -- cuma nav */
.bhfb-component-menu {
	flex: 1 1 auto;
	display: flex;
	justify-content: center;
	min-width: 0;
}
.bhfb-component-menu .botiga-dropdown-ul {
	display: flex;
	/* !important: ul ini juga kebawa class WP default `.menu.nav-menu` yang
	   punya flex-wrap:wrap sendiri di CSS Botiga, menang lawan selector kita
	   walau udah 2 class (urutan cascade, bukan soal specificity) -- makanya
	   1 property ini dipaksa, bukan seluruh rule. */
	flex-wrap: nowrap !important;
	gap: 20px;
}
.bhfb-component-menu .botiga-dropdown-link {
	color: var(--zsd-hf-teks) !important;
	font-weight: 500;
	font-size: 14.5px;
	white-space: nowrap;
	position: relative;
	padding-bottom: 4px;
	transition: color .15s ease;
}
.bhfb-component-menu .botiga-dropdown-link:hover,
.bhfb-component-menu .botiga-dropdown-link:focus-visible {
	color: var(--zsd-hf-coklat) !important;
}
.bhfb-component-menu .current-menu-item > .botiga-dropdown-link,
.bhfb-component-menu .current_page_item > .botiga-dropdown-link {
	color: var(--zsd-hf-coklat) !important;
}
.bhfb-component-menu .current-menu-item > .botiga-dropdown-link::after,
.bhfb-component-menu .current_page_item > .botiga-dropdown-link::after {
	content: '';
	position: absolute;
	left: 0; right: 0; bottom: -2px;
	height: 2px;
	background: var(--zsd-hf-coklat);
	border-radius: 2px;
}
.bhfb-header a:focus-visible,
.bhfb-header button:focus-visible {
	outline: 2px solid var(--zsd-hf-coklat);
	outline-offset: 2px;
}

/* Search -- expand-mechanism BAWAAN Botiga dipakai apa adanya (toggle
 * .active, autofocus, query, routing -- semua TIDAK disentuh), yang direfine
 * cuma presentasinya: sebelumnya field kotak (radius 0) + tombol submit blok
 * hitam solid, terasa kayak form berdiri sendiri, bukan bagian dari Header.
 * Sekarang jadi satu pill menyatu (field + tombol dibungkus 1 border rounded,
 * tombol transparan ikon coklat) -- lebih smooth & editorial. */
.header-search-form-row {
	transition: opacity .25s ease;
}
.header-search-form-row .woocommerce-product-search {
	max-width: 620px;
	border: 1px solid var(--zsd-hf-garis);
	border-radius: 999px;
	overflow: hidden;
	background: var(--zsd-hf-krem-lebih-muda);
	transition: border-color .15s ease;
}
.header-search-form-row .woocommerce-product-search:focus-within {
	border-color: var(--zsd-hf-coklat);
}
.header-search-form-row .wc-search-field,
.header-search-form-row .search-field {
	border: none !important;
	border-radius: 0 !important;
	background: transparent !important;
	padding-left: 22px !important;
}
.header-search-form-row .wc-search-field:focus,
.header-search-form-row .search-field:focus {
	border: none !important;
	outline: none;
	box-shadow: none !important;
}
.header-search-form-row .search-submit {
	background: transparent !important;
	color: var(--zsd-hf-coklat) !important;
	width: 52px !important;
}
.header-search-form-row .search-submit:hover,
.header-search-form-row .search-submit:focus-visible {
	color: var(--zsd-hf-coklat-gelap) !important;
}
@media (prefers-reduced-motion: reduce) {
	.header-search-form-row,
	.header-search-form-row .woocommerce-product-search { transition: none; }
}

/* Cart badge -- brown accent, bukan merah default */
#site-header-cart .count-number,
.site-header-cart .count-number {
	background-color: var(--zsd-hf-coklat) !important;
	color: #fff !important;
}

/**
 * =====================================================================
 * DROPDOWN MINI-CART (hover keranjang di Header) -- 2026-09-12, laporan
 * Ferdian (konsultasi: "class/posisinya nggak tahu, tolong dicek"). Sebelum
 * ini dropdown-nya 100% tampilan bawaan tema Botiga/WooCommerce, belum
 * pernah disentuh -- tombol CHECKOUT/icon hapus (X) hitam polos (#212121),
 * kotak Subtotal+tombol abu bawaan (#f2f2f2), judul "Your Cart" font
 * default, nggak nyambung sama tema warna/font yang sudah dipasang di
 * halaman lain.
 *
 * KEPUTUSAN WARNA (ditanyakan dulu ke Ferdian, dikonfirmasi eksplisit):
 * dropdown ini SENGAJA dibuat ikut var(--zsd-jr-*) -- token PALET HALAMAN
 * AKTIF (Cart/Checkout/Shop/dst, ikut preset admin "Pengaturan Global
 * Toko") -- BUKAN var(--zsd-hf-*) (token Header/Footer sendiri yang
 * berdiri lepas dari preset, lihat REVISI 2026-09-11 di atas berkas ini).
 * Ini SENGAJA membalik prinsip "Header/Footer independen" itu, TAPI
 * discope SEMPIT cuma buat elemen di dalam `#site-header-cart` -- bagian
 * Header lain (logo/menu/search/account/badge jumlah item di atas) TETAP
 * pakai var(--zsd-hf-*) seperti biasa, TIDAK ikut berubah.
 *
 * KONSEKUENSI TEKNIS yang perlu Ferdian tahu: karena mini-cart ini elemen
 * Header (dirender di SEMUA halaman), tapi var(--zsd-jr-*) di-declare per
 * body class per halaman (`.zsd-cart`, `body.zsd-halaman-checkout`,
 * `body.zsd-halaman-shop`, dst -- BUKAN `:root`), warnanya akan BEDA-BEDA
 * tergantung sedang di halaman mana customer meng-hover keranjang (persis
 * seperti yang diminta/disetujui). Untuk halaman yang BELUM/TIDAK
 * mendeklarasikan --zsd-jr-* sama sekali (mis. My Account, Order Received,
 * atau halaman lain di luar cakupan rollout warna), tiap var() di bawah
 * punya FALLBACK eksplisit -- nilainya SAMA PERSIS dengan --zsd-hf-coklat/
 * --zsd-hf-krem/--zsd-hf-teks/--zsd-hf-garis di atas (default Header
 * standalone), jadi di halaman yang belum kebagian preset, tampilannya
 * tetap konsisten & tidak pernah pecah/transparan, bukan sekadar warna
 * acak.
 */
#site-header-cart .widgettitle {
	font-family: var(--zsd-jr-font-heading, "Inter", -apple-system, "system-ui", "Segoe UI", Roboto, sans-serif);
	color: var(--zsd-jr-teks, #2b2622);
}
#site-header-cart .remove_from_cart_button {
	background-color: var(--zsd-jr-coklat, #6b5744);
}
#site-header-cart .woocommerce-mini-cart__total,
#site-header-cart .woocommerce-mini-cart__buttons {
	background-color: var(--zsd-jr-krem-muda, #f8f2e9);
}
/**
 * REVISI 2026-09-12 (2) -- laporan Ferdian: "warna tombol checkoutnya masih
 * belum sesuai". Ternyata sistem desain ini punya 2 warna coklat yang BEDA
 * fungsi (dicek langsung ke home-publik.css BAGIAN Buttons): --zsd-jr-coklat
 * (coklat redup, dipakai buat TEKS/border/aksen halus) vs --zsd-jr-aksen
 * (terracotta lebih hidup -- di home-publik.css bahkan `--zsd-home-brown`
 * WARNA TOMBOL PRIMER-nya di-alias LANGSUNG ke var(--zsd-jr-aksen), bukan
 * --zsd-jr-coklat). Semua CTA solid lain di storefront (Home "Jelajahi
 * Koleksi", About "Ada Cerita di Balik Toko Ini", Empty Cart "Mulai
 * Belanja") pakai warna aksen ini -- CHECKOUT di sini sebelumnya salah
 * pakai --zsd-jr-coklat (makanya kelihatan lebih redup/gelap, "belum
 * sesuai"), sekarang disamakan ke --zsd-jr-aksen biar konsisten sebagai
 * tombol CTA utama.
 */
#site-header-cart a.button.checkout.wc-forward {
	background-color: var(--zsd-jr-aksen, var(--zsd-jr-coklat, #6b5744)) !important;
}
#site-header-cart a.button.checkout.wc-forward:hover {
	background-color: color-mix(in srgb, var(--zsd-jr-aksen, var(--zsd-jr-coklat, #6b5744)) 82%, black) !important;
}
/**
 * REVISI 2026-09-12 (3) -- laporan Ferdian: VIEW CART sebagai teks polos
 * bergaris-bawah kelihatan "kaku" berdampingan dengan CHECKOUT yang solid --
 * diminta disamakan ke gaya tombol "Tentang Kami" di Hero Home (outline,
 * BUKAN solid). Anatominya disalin PERSIS dari `.zsd-home-btn` +
 * `.zsd-home-btn-outline` (home-publik.css, BAGIAN Buttons): pill radius
 * 15px (sama dgn --zsd-home-radius), border 1.5px warna aksen, teks warna
 * --zsd-jr-teks (BUKAN aksen -- home-publik.css sengaja mengoreksi warna
 * teks outline dari coklat ke charcoal, diikuti di sini), hover invert jadi
 * solid aksen + teks putih. SENGAJA masih lewat var(--zsd-jr-*) (BUKAN
 * var(--zsd-home-*) milik Home) supaya tetap konsisten sama keputusan
 * "ikut preset halaman aktif" untuk seluruh mini-cart ini (lihat komentar
 * besar di atas) -- cuma bentuk/anatominya yang disamakan, bukan sumber
 * warnanya.
 */
/**
 * REVISI 2026-09-12 (4) -- laporan Ferdian: padding/border kelihatan "kecil
 * sekali" & background hover tidak muncul. Dicek lewat getComputedStyle()
 * LANGSUNG di elemen (bukan cuma baca CSS-nya) -- ternyata computed padding
 * balik ke 0px & computed background hover tetap transparent, padahal border
 * & warna teks berhasil kepakai. Kesimpulannya ada rule lain (WooCommerce/
 * Botiga core, kemungkinan `!important`) yang menang di padding & background
 * doang -- BUKAN karena salah var/warna seperti dugaan awal. Fix: tambah
 * `!important` di properti yang kalah itu (padding/display/background),
 * SAMA PERSIS pola yang sudah dipakai tombol CHECKOUT di atas.
 */
/**
 * REVISI 2026-09-12 (4) -- laporan Ferdian lanjutan: walau padding/background
 * sudah kepakai (fix !important di atas), tombol VIEW CART masih kelihatan
 * jauh lebih kecil/sempit dibanding CHECKOUT di bawahnya -- CHECKOUT memang
 * lebar penuh (width:100% dari style dasar WooCommerce/Botiga utk
 * `.woocommerce-mini-cart__buttons .button`), sedangkan VIEW CART sengaja
 * di-override `display:inline-flex` (bukan block) di atas jadi ukurannya
 * mengikuti isi teksnya sendiri, bukan lebar kontainer. FIX (permintaan
 * eksplisit Ferdian, "tambahkan width 100%"): `width: 100%` supaya kedua
 * tombol sama lebar/sejajar rapi, `box-sizing: border-box` ditambah supaya
 * padding 10px/20px di atas tidak membuat lebar akhirnya melebihi 100%
 * kontainer (border+padding ikut dihitung DI DALAM lebar, bukan menambah).
 */
#site-header-cart a.wc-forward:not(.checkout) {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 100% !important;
	box-sizing: border-box !important;
	padding: 10px 20px !important;
	border-radius: 15px;
	border: 1.5px solid var(--zsd-jr-aksen, var(--zsd-jr-coklat, #6b5744));
	background: transparent !important;
	color: var(--zsd-jr-teks, #2b2622) !important;
	font-weight: 600;
	text-decoration: none !important;
	transition: background-color .2s ease, color .2s ease;
}
#site-header-cart a.wc-forward:not(.checkout):hover {
	background: var(--zsd-jr-aksen, var(--zsd-jr-coklat, #6b5744)) !important;
	color: #fff !important;
}

/* Account icon jadi trigger dropdown (dropdown-nya dibangun oleh JS,
 * lihat header-footer-restyle.js) */
.zsd-akun-wrap { position: relative; display: inline-flex; }
.zsd-akun-dropdown {
	position: absolute;
	top: calc(100% + 12px);
	right: 0;
	min-width: 200px;
	background: #fff;
	border: 1px solid var(--zsd-hf-garis);
	border-radius: 12px;
	box-shadow: 0 12px 30px rgba(43,38,34,.12);
	padding: 8px;
	z-index: 999;
	opacity: 0;
	transform: translateY(-6px);
	pointer-events: none;
	transition: opacity .15s ease, transform .15s ease;
}
@media (prefers-reduced-motion: reduce) {
	.zsd-akun-dropdown { transition: none; }
}
.zsd-akun-dropdown.zsd-terbuka {
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
}
.zsd-akun-dropdown a {
	display: block;
	padding: 10px 12px;
	border-radius: 8px;
	color: var(--zsd-hf-teks) !important;
	font-size: 14px;
	text-decoration: none !important;
}
.zsd-akun-dropdown a:hover,
.zsd-akun-dropdown a:focus-visible {
	background: var(--zsd-hf-krem);
	color: var(--zsd-hf-coklat) !important;
}

/* Mobile offcanvas drawer -- tambahan item (Search sudah ada bawaan Botiga,
 * yang ditambah cuma Akun Saya/Lacak Pesanan/Keranjang) */
.botiga-offcanvas-menu {
	background: #fff !important;
}
.bhfb-component-mobile_offcanvas_menu .botiga-dropdown-ul {
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.bhfb-component-mobile_offcanvas_menu .botiga-dropdown-link,
.zsd-drawer-extra .botiga-dropdown-link {
	display: block;
	padding: 14px 4px;
	font-size: 16px;
	color: var(--zsd-hf-teks) !important;
	border-bottom: 1px solid var(--zsd-hf-garis);
}
.zsd-drawer-extra {
	margin-top: 8px;
	border-top: 1px solid var(--zsd-hf-garis);
	padding-top: 8px;
}
.zsd-drawer-extra .botiga-dropdown-link.zsd-drawer-link-ikon {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

/* Icon utility drawer (Akun Saya/Lacak Pesanan/Keranjang/Keluar) -- tipis,
 * kecil, konsisten sama icon language Header (stroke-based, bukan filled).
 * Primary nav (Shop/About/Journal/Contact) SENGAJA tetap tanpa icon --
 * yang dikasih icon HANYA 4 item utility ini. */
.zsd-drawer-link-utama {
	display: inline-flex;
	align-items: center;
	gap: 12px;
}
.zsd-drawer-ikon {
	display: inline-flex;
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	/* BARU 2026-09-13 (round 2 lanjutan, permintaan eksplisit Ferdian:
	 * semua CSS warna Header/Footer wajib !important supaya tidak
	 * ketiban tie-specificity sama tema Botiga seperti kasus h3 footer
	 * sebelumnya -- lihat komentar lengkap di .zsd-footer-group h3). */
	color: var(--zsd-hf-teks-muted) !important;
}
.zsd-drawer-ikon svg {
	width: 100%;
	height: 100%;
}
.zsd-drawer-link-count {
	font-size: 13px;
	color: var(--zsd-hf-teks-muted) !important;
}

/* =====================================================================
 * FOOTER -- markup BHFB lama disembunyikan total, diganti versi baru
 * (di-render lewat wp_footer, lihat includes/header-footer-restyle.php)
 * ===================================================================== */

.bhfb-footer { display: none !important; }

.zsd-footer {
	background: var(--zsd-hf-krem-lebih-muda) !important;
	border-top: 1px solid var(--zsd-hf-garis);
	padding: 56px 24px 28px;
	/* BARU 2026-09-13 -- !important (lihat komentar di .zsd-drawer-ikon). */
	color: var(--zsd-hf-teks) !important;
}
.zsd-footer-inner {
	max-width: 1180px;
	margin: 0 auto;
}
.zsd-footer-grid {
	display: grid;
	grid-template-columns: minmax(220px, 1.4fr) repeat(auto-fit, minmax(140px, 1fr));
	gap: 40px;
	padding-bottom: 40px;
}
.zsd-footer-brand .zsd-footer-logo {
	display: inline-block;
	width: 120px;
	height: 32px;
	text-indent: 110%;
	overflow: hidden;
	white-space: nowrap;
	background-repeat: no-repeat;
	background-position: left center;
	background-size: contain;
	margin-bottom: 14px;
}
.zsd-footer-brand p {
	margin: 0;
	max-width: 34ch;
	color: var(--zsd-hf-teks-muted) !important;
	font-size: 14px;
	line-height: 1.6;
}
/**
 * FIX 2026-09-13 (round 2 lanjutan, laporan Ferdian: "footer tidak ada
 * semua ini navigasi footer yang muncul parah banget" -- dikonfirmasi
 * LANGSUNG lewat Claude in Chrome di staging, bukan cuma teori: heading
 * "Jelajahi"/"Bantuan" & tautannya SEBENARNYA ADA di HTML dan datanya
 * BENAR, TAPI warnanya nyaris tidak kelihatan di preset Warna Dark).
 * ROOT CAUSE heading (`h3`) DIKONFIRMASI PASTI lewat inspeksi CSSOM
 * live: tema Botiga (styles.min.css) punya rule
 * `h3:not(.has-text-color) { color: var(--bt-color-heading-3,#212121) }`
 * yang SPECIFICITY-nya PERSIS SAMA (0,1,1) dengan `.zsd-footer-group h3`
 * di sini -- saat specificity seri, CSS pakai urutan cascade/load
 * terakhir menang, dan rule tema itu yang menang (computed color jadi
 * #212121 gelap, bukan var(--zsd-hf-teks) terang, di atas background
 * gelap preset Dark = nyaris tidak kelihatan). FIX: `!important` supaya
 * rule kita PASTI menang terlepas dari urutan load stylesheet tema.
 */
.zsd-footer-group h3 {
	margin: 0 0 14px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .02em;
	color: var(--zsd-hf-teks) !important;
}
.zsd-footer-group ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.zsd-footer-group a {
	/* BARU 2026-09-13 -- !important (lihat komentar di .zsd-drawer-ikon).
	 * Ditambah font-weight 500 (dari 400) supaya goresan huruf lebih
	 * tebal di ukuran kecil (14px) -- laporan Ferdian teks tautan Footer
	 * "ngga kebacaan" di preset Dark walau warnanya sendiri sudah benar,
	 * juga sudah dinaikkan terangnya (lihat --zsd-hf-teks-muted Dark). */
	color: var(--zsd-hf-teks-muted) !important;
	text-decoration: none;
	font-size: 14px;
	font-weight: 500;
	transition: color .15s ease;
}
.zsd-footer-group a:hover,
.zsd-footer-group a:focus-visible {
	color: var(--zsd-hf-coklat) !important;
}
.zsd-footer-bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 16px;
	padding-top: 24px;
	border-top: 1px solid var(--zsd-hf-garis);
}
.zsd-footer-copyright {
	font-size: 13px;
	/* BARU 2026-09-13 -- !important (lihat komentar di .zsd-drawer-ikon). */
	color: var(--zsd-hf-teks-muted) !important;
	margin: 0;
}
.zsd-footer-sosmed {
	display: flex;
	gap: 10px;
}
.zsd-footer-sosmed a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	/* FIX 2026-09-13 (round 2, laporan Ferdian: ikon Media Sosial Footer
	   harus ikut disesuaikan warnanya biar kelihatan) -- SEBELUMNYA
	   background lingkaran ini hardcode putih (#fff), TIDAK ikut preset
	   Warna Footer sama sekali -- di preset Dark, ikonnya (var(--zsd-hf-
	   teks), jadi krem terang) digambar di atas lingkaran PUTIH, kontras
	   nyaris tidak kelihatan/salah (harusnya kontras ke background gelap,
	   bukan ke lingkaran putih terpisah). FIX: background lingkaran ikut
	   var(--zsd-hf-krem-lebih-muda) (token yang SUDAH berubah per preset,
	   putih di Light, krim di Warm, gelap di Dark) -- utk Light nilainya
	   TETAP putih (tidak ada perubahan visual dari sebelumnya), Warm jadi
	   krim (senada), Dark jadi lingkaran gelap dgn ikon krem terang di
	   atasnya (kontras benar). */
	background: var(--zsd-hf-krem-lebih-muda) !important;
	border: 1px solid var(--zsd-hf-garis);
	/* BARU 2026-09-13 -- !important (lihat komentar di .zsd-drawer-ikon). */
	color: var(--zsd-hf-teks) !important;
	transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.zsd-footer-sosmed a:hover,
.zsd-footer-sosmed a:focus-visible {
	background: var(--zsd-hf-coklat) !important;
	border-color: var(--zsd-hf-coklat);
	color: #fff !important;
}
.zsd-footer-sosmed svg { width: 16px; height: 16px; }

@media (max-width: 1024px) {
	.zsd-footer-grid {
		grid-template-columns: 1fr 1fr;
		row-gap: 32px;
	}
	.zsd-footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
	.zsd-footer { padding: 40px 20px 24px; }
	.zsd-footer-grid { grid-template-columns: 1fr 1fr; gap: 28px; }
	.zsd-footer-bottom { flex-direction: column; align-items: flex-start; }
}

/* =====================================================================
 * HEADER SETTINGS -- 2026-09-12, "HEADER SETTINGS -- FINAL IMPLEMENTATION
 * PROMPT ZENOS Project V1.0.0" (LOCKED spec Ferdian). SEMUA rule di bawah
 * murni toggle CSS di atas markup BHFB yang SUDAH ADA (class dikonfirmasi
 * lewat inspeksi DOM live) -- TIDAK ada markup Header baru. Body class
 * dipasang oleh zsd_body_class_header_footer() (includes/header-footer-
 * restyle.php).
 * ===================================================================== */

/* ----- Navigasi OFF ----- */
body.zsd-hf-nav-off .bhfb-component-menu { display: none !important; }
/* Drawer mobile: HANYA sembunyikan <li> menu utama (Shop/About/Journal/
   Contact) -- <li class="zsd-drawer-extra"> (Akun/Lacak/Keranjang/Keluar,
   ditambah header-footer-restyle.js) BUKAN bagian navigasi ini, tetap
   tampil apa adanya. */
body.zsd-hf-nav-off .bhfb-component-mobile_offcanvas_menu .botiga-dropdown-ul > li:not(.zsd-drawer-extra) {
	display: none !important;
}

/* ----- Search OFF -----
 * UBAH 2026-09-13 (bug lapor Ferdian, "element search tidak bisa di hide")
 * -- root cause dikonfirmasi lewat inspeksi DOM live storefront: rule lama
 * cuma menyembunyikan `.header-search-form-row` (form pencarian yang
 * expand saat ikon diklik), TIDAK menyembunyikan ikon kaca pembesarnya
 * sendiri (`<a class="header-search">` di dalam wrapper
 * `.bhfb-builder-item.bhfb-component-search`) -- jadi ikonnya tetap
 * tampil & bisa diklik meski toggle "Tampilkan Search" di-OFF-kan. Fix:
 * sembunyikan wrapper BHFB-nya langsung (pola SAMA PERSIS dgn
 * `.bhfb-component-menu` di "Navigasi OFF" di atas), rule form-row lama
 * TETAP dipertahankan sbg lapisan kedua (jaga-jaga kalau markup BHFB
 * berubah versi & form-nya sempat ter-render di luar wrapper itu). */
body.zsd-hf-search-off .bhfb-component-search { display: none !important; }
body.zsd-hf-search-off .header-search-form-row { display: none !important; }

/* ----- Akun OFF -- target class SPESIFIK saja (.wc-account-link/.zsd-akun-
   wrap), BUKAN wrapper bersama ".bhfb-component-woo_icons" yang juga
   dipakai Cart (#site-header-cart) -- dikonfirmasi lewat inspeksi DOM live
   keduanya sejajar di parent yang sama. ----- */
body.zsd-hf-akun-off .wc-account-link,
body.zsd-hf-akun-off .zsd-akun-wrap { display: none !important; }

/* ----- Keranjang OFF -- toggle PRESENTASI ikon saja (lihat catatan
   'keranjang_tampil' di includes/home-settings.php) -- TIDAK menyentuh
   #site-header-cart punya logic AJAX/fragment WooCommerce sama sekali,
   cuma disembunyikan visual. ----- */
body.zsd-hf-keranjang-off #site-header-cart,
body.zsd-hf-keranjang-off .site-header-cart { display: none !important; }

/* ----- Logo Text (mode "teks") ----- */
body.zsd-hf-logo-teks .site-title a {
	overflow: visible;
	width: auto;
	height: auto;
	text-indent: 0;
	background-image: none !important;
	font-size: 19px;
	font-weight: 700;
	/* BARU 2026-09-13 -- !important (lihat komentar di .zsd-drawer-ikon). */
	color: var(--zsd-hf-teks) !important;
	line-height: 1.15;
}
@media (max-width: 1024px) {
	body.zsd-hf-logo-teks .site-title a { font-size: 17px; }
}
.zsd-header-tagline {
	display: block;
	font-size: 10.5px;
	font-weight: 500;
	color: var(--zsd-hf-teks-muted) !important;
	letter-spacing: .01em;
	line-height: 1.2;
	margin-top: 1px;
}

/* ----- Warna Header (preset Light/Warm/Dark) -----
 * SENGAJA di-scope ke ".bhfb-header"/".bhfb-mobile_offcanvas" (BUKAN
 * ".site" tempat token --zsd-hf-* awalnya di-declare) -- custom property
 * CSS ikut turun ke elemen anak, jadi redeclare di sini HANYA mengubah
 * Header + drawer mobile-nya, ".zsd-footer" (sibling, bukan anak) TETAP
 * warna lama sama sekali tidak berubah (Warna Header !== Warna Footer,
 * scope LOCKED cuma Header). "Light" = default (sudah hardcode di atas
 * file ini), tidak butuh override apa pun.
 */
body.zsd-hf-warna-warm .bhfb-header,
body.zsd-hf-warna-warm .bhfb-mobile_offcanvas {
	--zsd-hf-coklat: #6b5744;
	--zsd-hf-coklat-gelap: #4a3c2d;
	--zsd-hf-krem: #f3e9da;
	--zsd-hf-krem-lebih-muda: #ffffff;
	--zsd-hf-garis: #e4d8c6;
	--zsd-hf-teks: #2b2622;
	--zsd-hf-teks-muted: #7a6f5f;
}
body.zsd-hf-warna-warm .bhfb-header { background: #f8f2e9 !important; }

/* KOREKSI 2026-09-13 (laporan Ferdian "warna header ngga jalan", dikonfirmasi
 * LIVE lewat Claude in Chrome di dashboard seller beneran -- bukan cuma teori):
 * class + custom property di atas SUDAH benar sampai ke `.bhfb-header`
 * (dikonfirmasi computed style background-nya SUDAH berubah jadi warna
 * preset), TAPI baris nav/logo yang KELIHATAN itu bukan `.bhfb-header`
 * langsung, melainkan 3 elemen ANAK di dalamnya
 * (`.bhfb-above_header_row`/`.bhfb-main_header_row`/`.bhfb-below_header_row`)
 * yang masing-masing PUNYA background putih SENDIRI dari file auto-generated
 * tema Botiga (wp-content/uploads/botiga/custom-styles.css) -- background
 * putih anak ini menutupi background gelap/krem parent-nya secara visual,
 * BUKAN soal specificity/!important (anak SELALU menang lapisan visual utk
 * background-nya sendiri, terlepas dari specificity). FIX: override juga
 * background 3 elemen anak ini saat preset Warm/Dark aktif -- pola yang sama
 * perlu dicek juga di Footer (.bhfb-above_footer_row/.bhfb-main_footer_row/
 * .bhfb-below_footer_row) kalau nanti Warna Footer dibuat.
 */
body.zsd-hf-warna-warm .bhfb-above_header_row,
body.zsd-hf-warna-warm .bhfb-main_header_row,
body.zsd-hf-warna-warm .bhfb-below_header_row {
	background: #f8f2e9 !important;
}

body.zsd-hf-warna-dark .bhfb-header,
body.zsd-hf-warna-dark .bhfb-mobile_offcanvas {
	--zsd-hf-coklat: #e7b65e;
	--zsd-hf-coklat-gelap: #c99a45;
	--zsd-hf-krem: #342d26;
	--zsd-hf-krem-lebih-muda: #2b241e;
	--zsd-hf-garis: #3a342c;
	--zsd-hf-teks: #f5f1ea;
	/* KOREKSI 2026-09-13 (round 2 lanjutan, laporan Ferdian "ada yang ngga
	 * kebacaan" di Footer preset Dark) -- nilai lama #b9ac9c SEBENARNYA
	 * lolos hitung rasio kontras WCAG (~7.5:1 di atas background gelap
	 * #211d19), TAPI di teks kecil (14px, berat normal) rasio itu ternyata
	 * TETAP kelihatan pudar/nyaris tidak terbaca secara visual nyata
	 * (dikonfirmasi lewat screenshot live, bukan cuma hitung-hitungan).
	 * Dinaikkan terangnya biar tidak ada keraguan lagi, tanpa mengubah nada
	 * warna (masih family krem/coklat muda yang sama, cuma lebih terang).
	 */
	--zsd-hf-teks-muted: #d9cfc0;
}
body.zsd-hf-warna-dark .bhfb-header { background: #211d19 !important; }
body.zsd-hf-warna-dark .bhfb-above_header_row,
body.zsd-hf-warna-dark .bhfb-main_header_row,
body.zsd-hf-warna-dark .bhfb-below_header_row {
	background: #211d19 !important;
}
body.zsd-hf-warna-dark .bhfb-mobile_offcanvas,
body.zsd-hf-warna-dark .botiga-offcanvas-menu { background: #211d19 !important; }

/**
 * ----- Ikon Search/Akun/Keranjang ikut warna preset Header -----
 * BARU 2026-09-13 (round 2, laporan Ferdian: "element tambahan Tampilkan
 * Search, Tampilkan Akun, Tampilkan Keranjang harusnya sama warnanya
 * dong kalau ngga pas background header berubah akan tidak kelihatan").
 * Nav utama (.botiga-dropdown-link) & Logo mode teks SUDAH ikut
 * var(--zsd-hf-teks) dari awal (lihat rule di atas) -- 3 elemen ini
 * SEBELUMNYA terlewat, masih pakai warna hitam/gelap bawaan tema Botiga
 * yang TIDAK berubah tiap preset, jadi nyaris tidak kelihatan lagi di
 * preset Dark (ikon gelap di atas background gelap).
 *
 * Logo mode GAMBAR SENGAJA TIDAK disentuh sama sekali di sini (sesuai
 * instruksi eksplisit Ferdian: "kalau bukan text biar seller
 * menyesuaikan") -- itu file gambar, bukan teks/ikon currentColor, jadi
 * memang di luar cakupan fix ini.
 */
.bhfb-header .header-search,
.bhfb-header .bhfb-component-search a,
.bhfb-header .zsd-akun-wrap,
.bhfb-header .zsd-akun-wrap > a,
.bhfb-header .wc-account-link,
.bhfb-header #site-header-cart .cart-icon,
.bhfb-header #site-header-cart > a,
.bhfb-header .bhfb-component-woo_icons > a,
.bhfb-mobile_offcanvas .header-search,
.bhfb-mobile_offcanvas .zsd-akun-wrap {
	color: var(--zsd-hf-teks) !important;
}
/**
 * KOREKSI 2026-09-13 (round 2 lanjutan, laporan Ferdian: "icon svg header
 * ngga ada yang muncul", dan beliau SENDIRI yang menemukan+menyebutkan
 * nama selector Botiga penyebabnya). DISCLOSURE lama di atas SUDAH
 * memperingatkan kemungkinan ini, dan TERBUKTI BENAR setelah dicek
 * lewat Claude in Chrome: rule `color` di atas TIDAK cukup, karena tema
 * Botiga (wp-content/uploads/botiga/custom-styles.css, dikonfirmasi
 * lewat inspeksi CSSOM live) mengunci warna SVG-nya lewat `fill`
 * eksplisit (BUKAN currentColor) di 2 rule:
 *   - `.bhfb-component-search .header-search svg { fill: #212121; }`
 *     (ikon kaca pembesar Search)
 *   - `.bhfb-component-woo_icons .header-item svg:not(.stroke-based)
 *     { fill: #212121; }` (ikon Akun DAN Keranjang, sama-sama lewat
 *     wrapper `.header-item`)
 * `color` di elemen pembungkus (<a>) tidak berpengaruh ke `fill` yang
 * di-set eksplisit begini. Kedua rule Botiga itu TIDAK pakai `!important`
 * -- jadi cukup override `fill` dengan `!important` di sini (spesifisitas
 * tidak perlu menang, `!important` sudah otomatis menang lawan rule
 * tanpa `!important`, siapapun yang deklarasi warna baru ditambahkan ke
 * Header/Footer nanti, ikuti pola ini: SELALU `!important` di properti
 * warna, jangan andalkan urutan/spesifisitas selector).
 */
.bhfb-header .bhfb-component-search .header-search svg,
.bhfb-header .bhfb-component-woo_icons .header-item svg:not(.stroke-based),
.bhfb-mobile_offcanvas .bhfb-component-search .header-search svg,
.bhfb-mobile_offcanvas .bhfb-component-woo_icons .header-item svg:not(.stroke-based) {
	fill: var(--zsd-hf-teks) !important;
}

/* =====================================================================
 * FOOTER SETTINGS -- BARU 2026-09-13, prompt Ferdian "WEBSITE TYPE + TOKO
 * SIDEBAR GROUP + FOOTER SETTINGS". `.zsd-footer` (BUKAN BHFB, lihat
 * catatan besar di zsd_render_footer_baru(), includes/header-footer-
 * restyle.php) SUDAH punya custom property --zsd-hf-* SENDIRI ter-declare
 * di elemen itu sendiri (baris 48-55 file ini) -- jadi (BEDA dari Header
 * yang harus di-scope ke .bhfb-header/.bhfb-mobile_offcanvas supaya TIDAK
 * ikut bocor ke .zsd-footer sibling) redeclare custom property di sini
 * CUKUP di-scope ke `.zsd-footer` itu sendiri, otomatis dipakai SEMUA
 * turunannya (.zsd-footer-group h3/.zsd-footer-brand p/.zsd-footer-sosmed
 * a/dst, yang semuanya SUDAH pakai var(--zsd-hf-*) dari awal) TANPA perlu
 * daftar ulang tiap elemen anak satu-satu.
 * ===================================================================== */
.zsd-footer.zsd-ff-warna-warm {
	--zsd-hf-coklat: #6b5744;
	--zsd-hf-coklat-gelap: #4a3c2d;
	--zsd-hf-krem: #f3e9da;
	--zsd-hf-krem-lebih-muda: #f8f2e9;
	--zsd-hf-garis: #e4d8c6;
	--zsd-hf-teks: #2b2622;
	--zsd-hf-teks-muted: #7a6f5f;
	background: #f8f2e9 !important;
}
.zsd-footer.zsd-ff-warna-dark {
	--zsd-hf-coklat: #e7b65e;
	--zsd-hf-coklat-gelap: #c99a45;
	--zsd-hf-krem: #342d26;
	--zsd-hf-krem-lebih-muda: #211d19;
	--zsd-hf-garis: #3a342c;
	--zsd-hf-teks: #f5f1ea;
	/* KOREKSI 2026-09-13 -- SAMA PERSIS dengan koreksi Header Dark di atas
	 * (body.zsd-hf-warna-dark .bhfb-header), supaya nada warna Header &
	 * Footer TETAP identik (satu preset Dark = satu nilai teks-muted,
	 * bukan dua definisi terpisah yang bisa mencar). Nilai lama #b9ac9c
	 * lolos hitung kontras WCAG tapi nyaris tidak terbaca di teks kecil
	 * Footer (Tautan Navigasi, Media Sosial) -- dinaikkan terangnya.
	 */
	--zsd-hf-teks-muted: #d9cfc0;
	background: #211d19 !important;
}

/* ----- Font Footer (preset ZENOS Modern/Friendly/Simple -- SAMA persis dgn
   "Gaya Font Logo" Header, zsd_home_header_daftar_font()) -- berlaku ke
   heading grup Footer (.zsd-footer-group h3), REUSE var(--zsd-hf-font-
   heading) yang SUDAH ada (sebelumnya cuma dipakai "global visual
   setting"/zsd-hf-font-editorial-*, sekarang jadi 2 sumber yang bisa
   override token yang SAMA -- Font Footer LEBIH SPESIFIK/di bawah kalau
   dua-duanya aktif, karena rule ini urutannya di bawah rule editorial-* di
   atas & sama-sama single class specificity). ----- */
.zsd-footer.zsd-ff-font-modern {
	--zsd-jr-font-heading: 'Manrope', -apple-system, sans-serif;
}
.zsd-footer.zsd-ff-font-ramah {
	--zsd-jr-font-heading: 'Plus Jakarta Sans', -apple-system, sans-serif;
}
.zsd-footer.zsd-ff-font-simpel {
	--zsd-jr-font-heading: 'DM Sans', -apple-system, sans-serif;
}

/* ----- Logo Footer mode "Text" (inherit Header mode teks, ATAU Footer
   sendiri diatur ke mode teks) -- mirror PERSIS body.zsd-hf-logo-teks
   .site-title a di atas, cuma target .zsd-footer-logo. Teks & tagline
   BENERAN disisip/diganti lewat terapkanLogoTeksFooter() (assets/header-
   footer-restyle.js), CSS di sini cuma reset style gambar-replacement. ----- */
body.zsd-ff-logo-teks .zsd-footer-logo {
	overflow: visible;
	width: auto;
	height: auto;
	text-indent: 0;
	background-image: none !important;
	font-size: 19px;
	font-weight: 700;
	/* BARU 2026-09-13 -- !important (lihat komentar di .zsd-drawer-ikon). */
	color: var(--zsd-hf-teks) !important;
	line-height: 1.15;
}
.zsd-footer-tagline {
	display: block;
	font-size: 11px;
	font-weight: 500;
	color: var(--zsd-hf-teks-muted) !important;
	letter-spacing: .01em;
	line-height: 1.2;
	margin-top: 2px;
}
