/* ==========================================================================
   KRVE Wellness — frontend
   Palet: Forest · Oat · Cream · Fresh Leaf · Cocoa · Honey
   Tipografi: Fraunces (headline) + DM Sans (UI). Mobile-first (360–430 px).
   Semua selector diawali .krve- agar tidak menyentuh styling Kadence.
   ========================================================================== */

:root {
	--krve-forest: #1f3a2c;
	--krve-forest-2: #2c5240;
	--krve-forest-deep: #182e23;
	--krve-oat: #f5efe4;
	--krve-cream: #fffcf6;
	--krve-leaf: #a8c66c;
	--krve-leaf-soft: #e6eed3;
	--krve-cocoa: #6b3f2a;
	--krve-honey: #e8b04b;
	--krve-wa: #1f8a4c;
	--krve-ink: #1f3a2c;
	--krve-text: #3d4a40;
	--krve-muted: #6f6a5f;
	--krve-line: #e7ddcb;
	--krve-serif: "Fraunces", Georgia, "Times New Roman", serif;
	--krve-sans: "DM Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--krve-radius: 22px;
	--krve-radius-sm: 14px;
	--krve-shadow: 0 1px 2px rgba(31, 58, 44, .05), 0 8px 24px rgba(31, 58, 44, .06);
	--krve-ease: cubic-bezier(.2, .8, .2, 1);
}

.krve-root,
.krve-root *,
.krve-root *::before,
.krve-root *::after { box-sizing: border-box; }

.krve-root { font-family: var(--krve-sans); color: var(--krve-text); line-height: 1.5; }

.krve-sr {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

/* ---------- Tipografi section (dipakai pattern) ---------- */
.krve-eyebrow {
	font-family: var(--krve-sans); font-size: 12px; font-weight: 700; letter-spacing: .16em;
	text-transform: uppercase; color: var(--krve-forest-2); margin: 0 0 8px;
}
.krve-eyebrow--sm { font-size: 11px; margin: 18px 0 8px; }
.krve-display,
.krve-h2 {
	font-family: var(--krve-serif) !important; font-weight: 600; color: var(--krve-forest);
	letter-spacing: -.01em; line-height: 1.05; margin: 0 0 10px;
}
.krve-display { font-size: clamp(36px, 9vw, 64px); }
.krve-h2 { font-size: clamp(30px, 7vw, 44px); }
.krve-display em, .krve-h2 em { font-style: italic; font-weight: 500; color: var(--krve-cocoa); }
.krve-lead { font-size: 17px; color: var(--krve-muted); margin: 0 0 20px; }
.krve-small { font-size: 14px; color: var(--krve-muted); margin: 0 0 18px; }

/* ---------- Section wrapper (pattern) ---------- */
/* Gutter samping dikunci dengan !important: Kadence/WP memberi .alignfull &
   .has-global-padding padding 0 sehingga konten menempel ke tepi layar. */
.krve-section {
	--krve-gutter: 20px;
	box-sizing: border-box;
	padding-top: 36px; padding-bottom: 36px;
	padding-left: max(var(--krve-gutter), env(safe-area-inset-left)) !important;
	padding-right: max(var(--krve-gutter), env(safe-area-inset-right)) !important;
	font-family: var(--krve-sans);
}
@media (min-width: 600px) { .krve-section { --krve-gutter: 32px; } }
@media (min-width: 1200px) { .krve-section { --krve-gutter: 48px; } }
.krve-section--oat { background: var(--krve-oat); }
.krve-section--cream { background: var(--krve-cream); }
.krve-section--forest { background: var(--krve-forest); color: #e9efe6; }
.krve-section--tight { padding-top: 0; }
/* Section modul opsional hilang total saat modulnya OFF. */
.krve-section--batch:not(:has(.krve-batch, .krve-editor-notice)),
.krve-section--reminder:not(:has(.krve-reminder, .krve-editor-notice)) { display: none; }
/* Lebar konten section dikunci di sini (bukan bergantung theme.json),
   karena Kadence/tema klasik punya lebar konten sendiri. */
.krve-section { --krve-wrap: 1120px; margin-top: 0 !important; margin-bottom: 0 !important; }
.krve-faq { --krve-wrap: 760px; }
.krve-section--tight, .krve-section--forest { --krve-wrap: 560px; }
.krve-section > .wp-block-group__inner-container { max-width: none !important; width: 100%; margin: 0 !important; }
.krve-section > :not(.wp-block-group__inner-container),
.krve-section > .wp-block-group__inner-container > * {
	max-width: var(--krve-wrap) !important; width: 100%; margin-left: auto !important; margin-right: auto !important;
}

/* Hero */
.krve-hero__cols { gap: 22px !important; margin: 0 !important; }
.krve-hero__img { margin: 0 !important; }
.krve-hero__img img {
	width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--krve-radius); display: block;
	background: repeating-linear-gradient(135deg, #ebe2d1 0 14px, #e4d9c4 14px 28px);
}
.krve-chips-list { list-style: none; padding: 0 !important; margin: 16px 0 0 !important; display: flex; flex-wrap: wrap; gap: 8px; }
.krve-chips-list li {
	font-size: 13px; padding: 7px 12px; border-radius: 999px; background: var(--krve-cream);
	border: 1px solid var(--krve-line); color: var(--krve-forest); margin: 0;
}
.krve-button-primary .wp-block-button__link,
.krve-buttons .wp-block-button__link {
	background: var(--krve-forest) !important; color: #fff !important; border-radius: 999px !important;
	font-family: var(--krve-sans); font-weight: 700; font-size: 16px; padding: 16px 24px !important;
	box-shadow: none !important; border: 0 !important;
}
.krve-buttons .wp-block-button__link:hover { background: var(--krve-forest-2) !important; }
@media (min-width: 900px) {
	.krve-section { padding-top: 64px; padding-bottom: 64px; }
	.krve-hero__cols { flex-wrap: nowrap !important; gap: 56px !important; }
	.krve-hero__media { order: 2; }
	.krve-hero__img img { aspect-ratio: 16 / 12; }
	.krve-button-primary.wp-block-button__width-100 { width: auto !important; }
}

/* Cara pesan */
.krve-steps { gap: 8px !important; margin: 10px 0 12px !important; }
.krve-step {
	background: var(--krve-cream); border: 1px solid var(--krve-line); border-radius: var(--krve-radius-sm);
	padding: 14px 6px; text-align: center;
}
.krve-step p { margin: 0; }
.krve-step__num { font-family: var(--krve-serif); font-size: 28px; font-weight: 600; color: var(--krve-cocoa); line-height: 1.1; }
.krve-step__label { font-weight: 700; font-size: 13px; color: var(--krve-forest); line-height: 1.3; }

/* FAQ (blok Details) */
.krve-faq .wp-block-details { border-bottom: 1px solid var(--krve-line); padding: 0; margin: 0; }
.krve-faq .wp-block-details summary {
	list-style: none; cursor: pointer; padding: 18px 32px 18px 0; position: relative;
	font-weight: 500; font-size: 17px; color: var(--krve-forest);
}
.krve-faq .wp-block-details summary::-webkit-details-marker { display: none; }
.krve-faq .wp-block-details summary::after {
	content: "+"; position: absolute; right: 4px; top: 50%; transform: translateY(-50%);
	font-size: 22px; font-weight: 400; transition: transform .2s var(--krve-ease);
}
.krve-faq .wp-block-details[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.krve-faq .wp-block-details p { margin: 0 0 18px; color: var(--krve-muted); }

/* ---------- Reset tombol terhadap styling tema ----------
   Tema (Kadence / TT1, dll.) sering memberi warna tombol dengan selector panjang
   seperti `.site button:not(:hover):not(.has-background)`. Warna tombol KRVE
   dipasang lewat variabel + !important supaya selalu konsisten, sementara
   tiap varian cukup mengubah variabelnya. */
.krve-root :is(.krve-btn, .krve-link, .krve-chip, .krve-card__media, .krve-tab, .krve-qty__btn, .krve-line__remove, .krve-sheet__close, .krve-orderbar__btn) {
	background: var(--kb-bg, transparent) !important;
	color: var(--kb-fg, inherit) !important;
	border-color: var(--kb-bd, transparent) !important;
	text-decoration: var(--kb-td, none) !important;
	box-shadow: var(--kb-sh, none) !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
}

.krve-root .krve-link { --kb-fg: var(--krve-forest-2); }
.krve-root .krve-chip { --kb-bg: var(--krve-cream); --kb-fg: var(--krve-forest); --kb-bd: var(--krve-line); }
.krve-root .krve-card__media { --kb-bg: #ebe2d1; }
.krve-root .krve-tab { --kb-fg: var(--krve-muted); --kb-bd: transparent; }
.krve-root .krve-qty__btn { --kb-fg: var(--krve-forest); }
.krve-root .krve-line__remove { --kb-fg: var(--krve-cocoa); --kb-td: underline; }
.krve-root .krve-sheet__close { --kb-bg: rgba(255, 252, 246, .92); --kb-fg: var(--krve-forest); --kb-sh: 0 1px 6px rgba(0, 0, 0, .08); }
.krve-root .krve-orderbar__btn { --kb-bg: var(--krve-forest); --kb-fg: #fff; --kb-sh: 0 12px 32px rgba(24, 46, 35, .35); }
.krve-root .krve-btn:disabled { --kb-bg: #d9d2c4; --kb-fg: #6f6a5f; }

/* ---------- Tombol ---------- */
.krve-root .krve-btn {
	-webkit-appearance: none; appearance: none; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 52px; padding: 14px 22px; margin: 0; border: 0; border-radius: 999px;
	font-family: var(--krve-sans); font-size: 16px; font-weight: 700; line-height: 1.2; letter-spacing: 0;
	text-transform: none; text-decoration: none; cursor: pointer; box-shadow: none;
	transition: background-color .2s var(--krve-ease), transform .1s var(--krve-ease), opacity .2s;
}
.krve-root .krve-btn:active { transform: scale(.98); }
.krve-root .krve-btn:focus-visible,
.krve-root .krve-link:focus-visible,
.krve-root .krve-chip:focus-visible,
.krve-variant input:focus-visible + .krve-variant__box,
.krve-root .krve-tab:focus-visible { outline: 3px solid var(--krve-honey); outline-offset: 2px; }
.krve-tab:focus:not(:focus-visible) { outline: none !important; }
.krve-root .krve-btn--block { width: 100%; }
.krve-root .krve-btn--primary { --kb-bg: var(--krve-forest); --kb-fg: #fff; }
.krve-root .krve-btn--primary:hover { --kb-bg: var(--krve-forest-2); }
.krve-root .krve-btn--wa { --kb-bg: var(--krve-wa); --kb-fg: #fff; }
.krve-root .krve-btn--wa:hover { --kb-bg: #197a42; }
.krve-root .krve-btn--leaf { --kb-bg: var(--krve-leaf); --kb-fg: var(--krve-forest); }
.krve-root .krve-btn--leaf:hover { --kb-bg: #9bbb5c; }
.krve-root .krve-btn:disabled,
.krve-root .krve-btn[aria-busy="true"] { --kb-bg: #d9d2c4; --kb-fg: #6f6a5f; cursor: not-allowed; transform: none; }
.krve-root .krve-link {
	-webkit-appearance: none; appearance: none; background: none; border: 0; box-shadow: none; padding: 10px 4px; margin: 4px auto 0;
	display: block; font-family: var(--krve-sans); font-size: 14px; font-weight: 700; color: var(--krve-forest-2);
	cursor: pointer; text-transform: none; letter-spacing: 0; min-height: 44px;
}
.krve-root .krve-link:hover { --kb-fg: var(--krve-cocoa); --kb-td: underline; }

/* ---------- Filter chip ---------- */
.krve-chips { display: flex; gap: 8px; overflow-x: auto; padding: 2px 2px 14px; scrollbar-width: none; }
.krve-chips::-webkit-scrollbar { display: none; }
.krve-root .krve-chip {
	-webkit-appearance: none; appearance: none; flex: none; padding: 9px 16px; min-height: 40px; border-radius: 999px;
	border: 1px solid var(--krve-line); background: var(--krve-cream); color: var(--krve-forest);
	font-family: var(--krve-sans); font-size: 14px; font-weight: 500; cursor: pointer; box-shadow: none; text-transform: none; letter-spacing: 0;
}
.krve-root .krve-chip:hover { --kb-bg: var(--krve-oat); }
.krve-root .krve-chip.is-active { --kb-bg: var(--krve-forest); --kb-bd: var(--krve-forest); --kb-fg: #fff; }

/* ---------- Grid & kartu produk ---------- */
/* Container query: jumlah kolom mengikuti lebar area konten Kadence, bukan lebar layar. */
.krve-menu { container-type: inline-size; }
.krve-grid { display: grid; grid-template-columns: 1fr; gap: 18px; }
@container (min-width: 560px) { .krve-grid { grid-template-columns: repeat(min(2, var(--krve-cols, 3)), minmax(0, 1fr)); } }
@container (min-width: 860px) { .krve-grid { grid-template-columns: repeat(var(--krve-cols, 3), minmax(0, 1fr)); } }
.krve-card__body { container-type: inline-size; }
@container (max-width: 300px) {
	.krve-variants { grid-template-columns: 1fr; }
	.krve-variant__box { flex-direction: row; justify-content: space-between; min-height: 46px; padding: 10px 14px; }
}

.krve-card {
	display: flex; flex-direction: column; background: var(--krve-oat); border: 1px solid var(--krve-line);
	border-radius: var(--krve-radius); overflow: hidden; box-shadow: var(--krve-shadow);
}
.krve-card[hidden] { display: none; }
.krve-root .krve-card__media {
	-webkit-appearance: none; appearance: none; position: relative; display: block; width: 100%; padding: 0; margin: 0; border: 0;
	border-radius: 0; background: #ebe2d1; cursor: zoom-in; aspect-ratio: 1 / 1; overflow: hidden; box-shadow: none;
}

.krve-card__img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s var(--krve-ease); }
.krve-card__media:hover .krve-card__img { transform: scale(1.03); }
.krve-img-ph {
	display: block; width: 100%; height: 100%; min-height: 220px;
	background: repeating-linear-gradient(135deg, #ebe2d1 0 14px, #e4d9c4 14px 28px);
}
.krve-flag {
	position: absolute; left: 12px; top: 12px; background: var(--krve-cream); color: var(--krve-cocoa);
	font-size: 12px; font-weight: 700; padding: 6px 10px; border-radius: 999px;
}
.krve-card.is-soldout .krve-card__img { filter: grayscale(.5) opacity(.75); }
.krve-card__body { padding: 18px 18px 12px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.krve-card__head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.krve-root .krve-card__name,
.krve-root .krve-detail__name {
	font-family: var(--krve-serif); font-weight: 600; font-size: 24px; line-height: 1.1; color: var(--krve-forest);
	margin: 0; letter-spacing: -.01em;
}
.krve-card__price { margin: 0; text-align: right; white-space: nowrap; line-height: 1.1; }
.krve-price { font-family: var(--krve-serif); font-weight: 600; font-size: 22px; color: var(--krve-forest); display: block; }
.krve-card__price small { font-size: 12px; color: var(--krve-muted); }
.krve-card__tagline { margin: 0; font-size: 15px; color: var(--krve-muted); }
.krve-badges { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.krve-badges li {
	margin: 0; font-size: 12px; font-weight: 700; color: var(--krve-forest); background: var(--krve-leaf-soft);
	padding: 5px 10px; border-radius: 999px;
}
.krve-card .krve-btn { margin-top: auto; }

/* ---------- Pilihan varian ---------- */
.krve-variants { border: 0; margin: 0; padding: 0; min-width: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.krve-variants--list { grid-template-columns: 1fr; }
.krve-variant { position: relative; display: block; cursor: pointer; margin: 0 !important; padding: 0; }
.krve-root .krve-variant input[type="radio"] {
	position: absolute !important; opacity: 0 !important; inset: 0; width: 100% !important; height: 100% !important;
	margin: 0 !important; padding: 0; border: 0; -webkit-appearance: none; appearance: none; cursor: pointer; z-index: 1;
}
.krve-variant__box {
	display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 2px;
	min-height: 54px; padding: 8px 6px; border-radius: var(--krve-radius-sm); border: 1.5px solid var(--krve-line);
	background: var(--krve-cream); transition: border-color .15s, background-color .15s;
}
.krve-variant__box b { font-size: 14px; font-weight: 700; color: var(--krve-forest); line-height: 1.2; }
.krve-variant__box small { font-size: 12px; color: var(--krve-muted); }
.krve-variants--list .krve-variant__box { flex-direction: row; justify-content: space-between; text-align: left; padding: 12px 14px; }
.krve-variant input:checked + .krve-variant__box { border-color: var(--krve-forest); background: var(--krve-leaf-soft); }
.krve-variant.is-soldout .krve-variant__box { opacity: .55; }
.krve-variant.is-soldout .krve-variant__box b { text-decoration: line-through; }

/* ---------- Modul batch (v1.10: kartu lebar hijau tua) ---------- */
.krve-section--batch { --krve-wrap: 1120px; padding-top: 28px !important; padding-bottom: 28px !important; }
.krve-batch {
	position: relative; overflow: hidden; isolation: isolate;
	display: grid; gap: 18px; align-items: center;
	background: var(--krve-forest); color: #e9efe6; border-radius: var(--krve-radius);
	padding: 22px; box-shadow: 0 24px 50px -30px rgba(31, 58, 44, .6);
}
/* Cahaya halus di sudut kartu. */
.krve-batch::before {
	content: ""; position: absolute; z-index: -1; width: 420px; height: 420px; right: -160px; top: -220px; border-radius: 50%;
	background: radial-gradient(circle, rgba(168, 198, 108, .35), rgba(168, 198, 108, 0) 65%);
}
.krve-batch__live {
	display: inline-flex; align-items: center; gap: 8px; padding: 5px 11px; border-radius: 999px;
	background: rgba(168, 198, 108, .16); color: var(--krve-leaf); font-size: 12px; font-weight: 700; letter-spacing: .02em;
}
.krve-batch__live i { width: 7px; height: 7px; border-radius: 50%; background: var(--krve-leaf); box-shadow: 0 0 0 0 rgba(168, 198, 108, .6); animation: krve-pulse 2s ease-out infinite; }
@keyframes krve-pulse { 70% { box-shadow: 0 0 0 8px rgba(168, 198, 108, 0); } 100% { box-shadow: 0 0 0 0 rgba(168, 198, 108, 0); } }
.krve-batch__title {
	margin: 10px 0 6px !important; font-family: var(--krve-serif); font-weight: 600; color: #fff;
	font-size: clamp(22px, 2.4vw, 30px); line-height: 1.1; letter-spacing: -.015em;
}
.krve-batch__meta { margin: 0 !important; display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 14px; color: rgba(233, 239, 230, .72); }
.krve-batch__meta span + span::before { content: "·"; margin-right: 14px; color: rgba(233, 239, 230, .4); }
.krve-countdown { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.krve-countdown > div {
	background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .1); border-radius: 14px;
	min-width: 0; padding: 10px 4px 8px; text-align: center;
}
.krve-countdown b {
	display: block; font-family: var(--krve-serif); font-size: clamp(28px, 3.4vw, 40px); font-weight: 600; color: #fff;
	line-height: 1; font-variant-numeric: tabular-nums;
}
.krve-countdown > div:last-child b { color: var(--krve-honey); }
.krve-countdown span { display: block; font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: rgba(233, 239, 230, .6); margin-top: 6px; }
.krve-batch__act { display: grid; gap: 10px; }
.krve-batch__cta {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 50px; padding: 0 22px; border-radius: 999px;
	background: var(--krve-leaf); color: var(--krve-forest) !important; font-weight: 700; font-size: 15px; text-decoration: none !important;
	transition: background-color .2s, transform .1s ease-out;
}
.krve-batch__cta:hover { background: #b8d47e; }
.krve-batch__cta:active { transform: scale(.97); }
.krve-batch .krve-meter { margin-top: 2px; background: rgba(255, 255, 255, .12); }
.krve-batch__note { font-size: 13px; color: rgba(233, 239, 230, .62); margin: 0 !important; text-align: center; }
.krve-batch.is-closed .krve-countdown { opacity: .45; }
.krve-batch.is-closed .krve-batch__live { background: rgba(255, 255, 255, .1); color: rgba(233, 239, 230, .7); }
.krve-batch.is-closed .krve-batch__live i { background: rgba(233, 239, 230, .5); animation: none; }
@media (min-width: 900px) {
	.krve-batch { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.2fr) minmax(0, .8fr); gap: 32px; padding: 30px 34px; }
	.krve-batch__note { text-align: left; }
}
@media (prefers-reduced-motion: reduce) { .krve-batch__live i { animation: none; } }

/* ---------- Menu: tab Satuan | Paket bundle ---------- */
.krve-tabs {
	position: relative; display: inline-grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 4px;
	padding: 5px; margin: 0 0 18px; border-radius: 999px; background: var(--krve-oat); border: 1px solid var(--krve-line);
	max-width: 100%;
}
.krve-tab,
.krve-tab:hover,
.krve-tab:focus {
	position: relative; z-index: 1; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 46px; padding: 0 20px !important; margin: 0; border: 0 !important; border-radius: 999px; background: transparent !important;
	font-family: var(--krve-sans); font-size: 15px; font-weight: 700; color: var(--krve-muted) !important; cursor: pointer;
	box-shadow: none !important; white-space: nowrap; transition: color .25s ease;
}
.krve-tab[aria-selected="true"] { color: #fff !important; }
.krve-tab small {
	font-size: 12px; font-weight: 700; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 999px;
	display: inline-grid; place-items: center; background: rgba(31, 58, 44, .08); color: inherit; transition: background-color .25s;
}
.krve-tab[aria-selected="true"] small { background: rgba(255, 255, 255, .18); }
.krve-tab__save { font-style: normal; font-size: 11px; font-weight: 700; padding: 3px 8px; border-radius: 999px; background: var(--krve-honey); color: var(--krve-forest); }
.krve-tab:focus-visible { outline: 3px solid var(--krve-honey); outline-offset: 2px; }
.krve-tab:focus:not(:focus-visible) { outline: none !important; }
/* Penanda aktif yang bergeser (fallback: latar tab langsung bila JS belum siap). */
.krve-tabs__ind {
	position: absolute; z-index: 0; left: 0; top: 5px; bottom: 5px; border-radius: 999px; background: var(--krve-forest);
	box-shadow: 0 6px 16px -8px rgba(31, 58, 44, .6); transition: transform .5s cubic-bezier(.22, 1, .36, 1), width .5s cubic-bezier(.22, 1, .36, 1);
}
.krve-tabs:not(.is-ready) .krve-tabs__ind { display: none; }
.krve-tabs:not(.is-ready) .krve-tab[aria-selected="true"] { background: var(--krve-forest) !important; }
@media (max-width: 559px) { .krve-tabs { display: grid; width: 100%; } .krve-tab { padding: 0 10px !important; font-size: 14px; } .krve-tab__save { display: none; } }
.krve-group__title { font-family: var(--krve-serif); font-size: clamp(24px, 3vw, 32px); color: var(--krve-forest); margin: 28px 0 4px; }
.krve-group:first-child .krve-group__title { margin-top: 0; }
.krve-group__intro { font-size: 15px; color: var(--krve-muted); margin: 0 0 18px; }
.krve-group:focus { outline: none; }
.krve-group.is-enter { animation: krve-group-in .5s cubic-bezier(.22, 1, .36, 1); }
@keyframes krve-group-in { from { opacity: 0; transform: translateY(12px); } }
@media (prefers-reduced-motion: reduce) {
	.krve-tabs__ind { transition: none; }
	.krve-group.is-enter { animation: krve-fade-only .2s ease; }
	@keyframes krve-fade-only { from { opacity: 0; } }
}

/* ---------- Bar pengumuman ---------- */
.krve-announce {
	background: var(--krve-forest); color: #e9efe6; font-size: 13px; text-align: center;
	padding: 9px 16px; line-height: 1.4; position: relative; z-index: 2;
}
.krve-announce__dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--krve-leaf); margin-right: 8px; vertical-align: 1px; }

/* ---------- Form reminder ---------- */
.krve-reminder { color: #e9efe6; }
.krve-root .krve-reminder__title { font-family: var(--krve-serif); font-weight: 600; font-size: 28px; line-height: 1.1; color: #fff; margin: 0 0 8px; }
.krve-reminder__text { margin: 0 0 18px; color: #c9d5c6; font-size: 15px; }
.krve-reminder__form { display: grid; gap: 10px; }
.krve-root .krve-input {
	width: 100%; min-height: 52px; padding: 14px 16px; border-radius: var(--krve-radius-sm); border: 1px solid var(--krve-line);
	background: var(--krve-cream); color: var(--krve-forest); font-family: var(--krve-sans); font-size: 16px; box-shadow: none;
}
.krve-root .krve-input:focus { outline: 3px solid var(--krve-leaf); outline-offset: 1px; border-color: var(--krve-leaf); }
.krve-consent { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; color: #c9d5c6; cursor: pointer; }
.krve-consent input { margin-top: 3px; width: 18px; height: 18px; accent-color: var(--krve-leaf); flex: none; }
.krve-reminder__status { margin: 0; font-size: 14px; min-height: 1.4em; }
.krve-reminder__status.is-ok { color: var(--krve-leaf); }
.krve-reminder__status.is-err { color: #ffd59a; }
.krve-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ---------- Tombol WA melayang ---------- */
.krve-fab {
	position: fixed; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom)); z-index: 9990;
	width: 56px; height: 56px; border-radius: 50%; background: var(--krve-wa); color: #fff !important;
	display: grid; place-items: center; box-shadow: 0 8px 24px rgba(31, 138, 76, .35); text-decoration: none;
	transition: transform .25s var(--krve-ease), bottom .3s var(--krve-ease);
}
.krve-fab:hover { transform: scale(1.06); color: #fff; }
.krve-fab:focus-visible { outline: 3px solid var(--krve-honey); outline-offset: 3px; }
body.krve-has-list .krve-fab { bottom: calc(92px + env(safe-area-inset-bottom)); }

/* ---------- Bar Daftar Pesanan ---------- */
.krve-orderbar {
	position: fixed; left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); z-index: 9991;
	max-width: 560px; margin: 0 auto; animation: krve-up .35s var(--krve-ease);
}
.krve-orderbar[hidden] { display: none; }
.krve-root .krve-orderbar__btn {
	-webkit-appearance: none; appearance: none; width: 100%; display: flex; align-items: center; gap: 12px; min-height: 64px;
	padding: 12px 18px; border: 0; border-radius: 20px; background: var(--krve-forest); color: #fff; cursor: pointer;
	box-shadow: 0 12px 32px rgba(24, 46, 35, .35); font-family: var(--krve-sans); text-align: left; text-transform: none; letter-spacing: 0;
}
.krve-root .krve-orderbar__btn:hover { --kb-bg: var(--krve-forest-2); }
.krve-orderbar__count {
	background: var(--krve-leaf); color: var(--krve-forest); font-weight: 700; font-size: 13px; padding: 6px 10px; border-radius: 999px; white-space: nowrap;
}
.krve-orderbar__total { font-family: var(--krve-serif); font-weight: 600; font-size: 20px; flex: 1; }
.krve-orderbar__cta { font-weight: 700; font-size: 14px; white-space: nowrap; }
@keyframes krve-up { from { transform: translateY(120%); } to { transform: none; } }

/* ---------- Bottom sheet ---------- */
.krve-sheet { position: fixed; inset: 0; z-index: 99999; }
.krve-sheet[hidden] { display: none; }
.krve-sheet__backdrop { position: absolute; inset: 0; background: rgba(24, 46, 35, .5); animation: krve-fade .25s ease; }
.krve-sheet__panel {
	position: absolute; left: 0; right: 0; bottom: 0; max-height: 92vh; max-height: 92dvh; overflow-y: auto; overscroll-behavior: contain;
	background: var(--krve-cream); border-radius: 26px 26px 0 0; padding: 10px 20px calc(24px + env(safe-area-inset-bottom));
	animation: krve-up .35s var(--krve-ease); outline: none;
}
.krve-sheet__grip { width: 44px; height: 5px; border-radius: 9px; background: #d8cfbf; margin: 0 auto 10px; }
.krve-root .krve-sheet__close {
	-webkit-appearance: none; appearance: none; position: sticky; top: 0; float: right; z-index: 3; width: 40px; height: 40px; margin: -2px -6px 0 0;
	border-radius: 50%; border: 0; background: rgba(255, 252, 246, .92); color: var(--krve-forest); font-size: 26px; line-height: 1;
	cursor: pointer; padding: 0; box-shadow: 0 1px 6px rgba(0, 0, 0, .08);
}
.krve-root .krve-sheet__close:hover { --kb-bg: var(--krve-oat); }
body.krve-lock { overflow: hidden; }
@keyframes krve-fade { from { opacity: 0; } to { opacity: 1; } }
@media (min-width: 640px) {
	.krve-sheet__panel {
		left: 50%; right: auto; bottom: auto; top: 50%; width: min(560px, calc(100vw - 32px)); max-height: 88vh;
		transform: translate(-50%, -50%); border-radius: 26px; padding: 18px 26px 26px; animation: krve-fade .25s ease;
	}
	.krve-sheet__grip { display: none; }
}

/* ---------- Detail produk ---------- */
.krve-gallery {
	display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 8px; border-radius: 18px; scrollbar-width: none;
	margin-top: 4px; clear: both;
}
.krve-gallery::-webkit-scrollbar { display: none; }
.krve-gallery__img, .krve-gallery .krve-img-ph {
	flex: 0 0 100%; width: 100%; aspect-ratio: 1 / 1; height: auto; object-fit: cover; scroll-snap-align: start; border-radius: 18px; display: block;
}
.krve-dots { display: flex; justify-content: center; gap: 6px; margin-top: 10px; }
.krve-dots i { width: 6px; height: 6px; border-radius: 50%; background: #d8cfbf; transition: background .2s, width .2s; }
.krve-dots i.is-active { background: var(--krve-forest); width: 18px; border-radius: 6px; }
.krve-detail__head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin: 16px 0 6px; }
.krve-detail--page .krve-detail__head { margin-top: 18px; }
.krve-detail .krve-badges { margin-top: 10px; }
.krve-tabs { margin-top: 18px; }
.krve-tabs__list { display: flex; gap: 18px; border-bottom: 1px solid var(--krve-line); overflow-x: auto; scrollbar-width: none; }
.krve-root .krve-tab {
	-webkit-appearance: none; appearance: none; background: none; border: 0; border-bottom: 2px solid transparent; border-radius: 0;
	padding: 10px 0; margin: 0 0 -1px; font-family: var(--krve-sans); font-size: 14px; font-weight: 700; color: var(--krve-muted);
	cursor: pointer; box-shadow: none; text-transform: none; letter-spacing: 0; white-space: nowrap;
}
.krve-root .krve-tab:hover { --kb-fg: var(--krve-forest); }
.krve-root .krve-tab[aria-selected="true"] { --kb-fg: var(--krve-forest); --kb-bd: var(--krve-forest); }
.krve-tabs__panel { padding: 14px 0 0; font-size: 15px; color: var(--krve-text); }
.krve-tabs__panel p { margin: 0; }
.krve-ingredients { font-weight: 700; color: var(--krve-forest); }
.krve-nutrition { width: 100%; border-collapse: collapse; font-size: 14px; margin: 0; }
.krve-nutrition th, .krve-nutrition td { padding: 9px 0; border: 0; border-bottom: 1px solid var(--krve-line); text-align: left; background: none; }
.krve-nutrition td { text-align: right; font-weight: 700; color: var(--krve-forest); }
.krve-detail__actions { display: flex; gap: 10px; margin-top: 18px; }
.krve-detail__actions .krve-btn { flex: 1; }
.krve-note { font-size: 12px; color: var(--krve-muted); text-align: center; margin: 10px 0 0; }

/* Stepper jumlah */
.krve-qty { display: inline-flex; align-items: center; border: 1.5px solid var(--krve-line); border-radius: 999px; background: var(--krve-cream); flex: none; }
.krve-root .krve-qty__btn {
	-webkit-appearance: none; appearance: none; width: 44px; height: 48px; border: 0; background: none; color: var(--krve-forest);
	font-size: 22px; font-weight: 500; cursor: pointer; padding: 0; box-shadow: none; border-radius: 999px; line-height: 1;
}
.krve-root .krve-qty__btn:hover { --kb-bg: var(--krve-oat); }
.krve-root .krve-qty__input {
	-moz-appearance: textfield; width: 34px; height: 48px; border: 0; background: none; text-align: center; padding: 0; margin: 0;
	font-family: var(--krve-sans); font-size: 16px; font-weight: 700; color: var(--krve-forest); box-shadow: none;
}
.krve-qty__input::-webkit-outer-spin-button, .krve-qty__input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.krve-qty--sm .krve-qty__btn { width: 36px; height: 38px; font-size: 18px; }
.krve-qty--sm .krve-qty__input { width: 26px; height: 38px; font-size: 15px; }

/* ---------- Isi Daftar Pesanan (di sheet) ---------- */
.krve-list__title { font-family: var(--krve-serif); font-weight: 600; font-size: 26px; color: var(--krve-forest); margin: 4px 0 14px; }
.krve-list__items { list-style: none; margin: 0; padding: 0; }
.krve-line { display: grid; grid-template-columns: 56px 1fr auto; gap: 12px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--krve-line); margin: 0; }
.krve-line__img { width: 56px; height: 56px; border-radius: 12px; object-fit: cover; background: #ebe2d1; display: block; }
.krve-line__name { font-weight: 700; color: var(--krve-forest); font-size: 15px; line-height: 1.25; margin: 0; }
.krve-line__meta { font-size: 13px; color: var(--krve-muted); margin: 2px 0 0; }
.krve-line__side { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.krve-line__total { font-weight: 700; color: var(--krve-forest); font-size: 14px; }
.krve-root .krve-line__remove {
	-webkit-appearance: none; appearance: none; background: none; border: 0; padding: 4px 0; margin: 0; font-size: 12px; color: var(--krve-cocoa);
	text-decoration: underline; cursor: pointer; box-shadow: none; font-family: var(--krve-sans); text-transform: none; letter-spacing: 0;
}
.krve-root .krve-line__remove:hover { --kb-fg: var(--krve-forest); }
.krve-list__sum { display: flex; justify-content: space-between; align-items: baseline; margin: 16px 0 4px; }
.krve-list__sum span { color: var(--krve-muted); font-size: 15px; }
.krve-list__sum b { font-family: var(--krve-serif); font-size: 26px; font-weight: 600; color: var(--krve-forest); }
.krve-list__batch {
	background: var(--krve-leaf-soft); color: var(--krve-forest); font-size: 13px; font-weight: 700; padding: 10px 12px; border-radius: 12px; margin: 10px 0 0;
}
.krve-list__batch.is-late { background: #fbefd4; color: var(--krve-cocoa); }
.krve-list .krve-btn { margin-top: 16px; }
.krve-list__error { color: #a1381e; font-size: 14px; margin: 12px 0 0; }
.krve-list__empty { color: var(--krve-muted); padding: 20px 0; margin: 0; }
.krve-done { text-align: center; padding: 18px 0 6px; }
.krve-done__code { font-family: var(--krve-serif); font-weight: 600; font-size: 34px; color: var(--krve-forest); margin: 4px 0 8px; }
.krve-done p { margin: 0 0 6px; color: var(--krve-muted); }

/* ---------- Toast ---------- */
.krve-toast {
	position: fixed; left: 50%; top: 16px; transform: translate(-50%, -150%); z-index: 100000; background: var(--krve-forest);
	color: #fff; padding: 12px 18px; border-radius: 999px; font-size: 14px; font-weight: 700; font-family: var(--krve-sans);
	box-shadow: var(--krve-shadow); transition: transform .35s var(--krve-ease); pointer-events: none; white-space: nowrap;
}
.krve-toast.is-show { transform: translate(-50%, 0); }

/* ---------- Pesan khusus editor ---------- */
.krve-editor-notice {
	font-family: var(--krve-sans); font-size: 14px; padding: 16px 18px; border: 1.5px dashed #c9bfa9; border-radius: 14px;
	background: var(--krve-cream); color: var(--krve-muted);
}

@media (prefers-reduced-motion: reduce) {
	.krve-root *, .krve-sheet__panel, .krve-orderbar, .krve-toast { animation: none !important; transition: none !important; }
}
.krve-root .krve-btn:disabled:hover { --kb-bg: #d9d2c4; }

.krve-root .krve-btn:focus:not(:focus-visible), .krve-root .krve-link:focus:not(:focus-visible), .krve-root .krve-card__media:focus:not(:focus-visible) { outline: none; }

/* ==========================================================================
   Section tambahan untuk pattern halaman (v1.1)
   ========================================================================== */
.krve-display--md { font-size: clamp(32px, 7.5vw, 52px); }
.krve-pagehead { padding-bottom: 8px; }
.krve-pagehead .krve-lead { max-width: 560px; }
.krve-pagehead + .krve-section--tight { padding-top: 20px; }

/* Tombol hero penuh di HP, otomatis di desktop */
.krve-hero .krve-buttons .wp-block-button { width: 100%; }
@media (min-width: 900px) { .krve-hero .krve-buttons .wp-block-button { width: auto; } }
.krve-button-wa .wp-block-button__link {
	background: var(--krve-wa) !important; color: #fff !important; border-radius: 999px !important; border: 0 !important;
	font-family: var(--krve-sans); font-weight: 700; font-size: 16px; padding: 15px 26px !important; box-shadow: none !important;
}
.krve-button-wa .wp-block-button__link:hover { background: #197a42 !important; }

/* Panel/kartu konten */
.krve-panel {
	background: var(--krve-cream); border: 1px solid var(--krve-line); border-radius: var(--krve-radius);
	padding: 20px 22px; margin: 0 0 14px !important;
}
.krve-panel > * { margin-top: 0 !important; }
.krve-panel > :last-child { margin-bottom: 0 !important; }
.krve-panel--leaf { background: var(--krve-leaf-soft); border-color: #d5e2b8; }
.krve-panel--center { text-align: center; }
.krve-panel__title { font-weight: 700; color: var(--krve-forest); font-size: 17px; margin: 0 0 6px !important; }
.krve-panel .krve-small { margin-bottom: 0; }

/* Timeline jadwal batch */
.krve-timeline { list-style: none; margin: 8px 0 0 !important; padding: 0 0 0 26px !important; position: relative; }
.krve-timeline::before { content: ""; position: absolute; left: 6px; top: 8px; bottom: 8px; border-left: 2px dashed var(--krve-leaf); }
.krve-timeline li { position: relative; margin: 0 0 18px !important; font-size: 14px; color: var(--krve-muted); line-height: 1.45; }
.krve-timeline li:last-child { margin-bottom: 0 !important; }
.krve-timeline li::before {
	content: ""; position: absolute; left: -26px; top: 4px; width: 14px; height: 14px; border-radius: 50%;
	background: var(--krve-forest); box-shadow: 0 0 0 3px var(--krve-cream);
}
.krve-timeline strong { font-family: var(--krve-serif); font-size: 19px; font-weight: 600; color: var(--krve-forest); }

/* Fresh promise <7 */
.krve-fresh { display: flex; gap: 16px; align-items: center; margin: 0 !important; font-size: 14px; color: var(--krve-muted); }
.krve-fresh__num { font-family: var(--krve-serif); font-size: 56px; line-height: 1; color: var(--krve-cocoa); font-weight: 500; flex: none; }

/* Cerita kami */
.krve-img-43 img { aspect-ratio: 4 / 3 !important; }
.krve-quote { border: 0 !important; border-left: 3px solid var(--krve-cocoa) !important; padding: 2px 0 2px 18px !important; margin: 18px 0 0 !important; }
.krve-quote p { font-family: var(--krve-serif) !important; font-style: italic !important; font-size: 20px; line-height: 1.35; color: var(--krve-forest); margin: 0 0 6px !important; }
.krve-quote cite { font-style: normal; font-size: 13px; color: var(--krve-muted); }
.krve-story .krve-lead { margin-top: 6px; }

/* Nilai brand (latar Forest) */
.krve-values .krve-eyebrow { color: var(--krve-leaf); }
.krve-values__cols { gap: 22px !important; margin: 8px 0 0 !important; }
.krve-values h3 { font-family: var(--krve-serif) !important; font-weight: 600; font-size: 24px; line-height: 1.15; color: #fff !important; margin: 0 0 6px !important; }
.krve-values p { color: #c9d5c6; font-size: 15px; margin: 0 !important; }

/* Ajakan ke menu */
.krve-cta { text-align: center; }
.krve-cta .krve-h2 { margin-bottom: 18px; }

/* FAQ per kategori */
.krve-faq__group {
	font-family: var(--krve-sans) !important; font-size: 12px !important; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
	color: var(--krve-cocoa) !important; margin: 28px 0 0 !important;
}
.krve-faq__group:first-child { margin-top: 0 !important; }

/* Kebijakan */
.krve-policy__h { font-family: var(--krve-serif) !important; font-size: 24px !important; font-weight: 600; color: var(--krve-forest); margin: 28px 0 8px !important; }
.krve-policy__h:first-child { margin-top: 0 !important; }
.krve-policy p { color: var(--krve-text); font-size: 16px; }

/* Gambar placeholder SVG mengikuti rasio frame */
.krve-hero__img img[src$=".svg"] { object-fit: cover; }
.krve-quote::before, .krve-quote::after { content: none !important; display: none !important; }
.krve-section:empty, .krve-section:has(> .wp-block-group__inner-container:empty) { display: none; }
.krve-section--narrow { --krve-wrap: 560px; }
/* Isi panel selalu rata kiri & penuh, walau tema klasik menambah inner-container. */
.krve-panel > .wp-block-group__inner-container > *,
.krve-panel > * { max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; }
.krve-panel--center > .wp-block-group__inner-container > .wp-block-buttons { justify-content: center; }
@media (min-width: 900px) { .krve-section--tight { padding-bottom: 40px; } }

/* ==========================================================================
   Bundle (v1.2): kartu paket + pemilih isi
   ========================================================================== */
.krve-flag--bundle { background: var(--krve-forest); color: #fff; }
.krve-bundle-info {
	margin: 0; font-size: 14px; font-weight: 700; color: var(--krve-forest);
	background: var(--krve-leaf-soft); border-radius: 12px; padding: 10px 12px;
}
.krve-builder__bar {
	position: sticky; top: -10px; z-index: 2; background: var(--krve-cream); margin: 18px -4px 0; padding: 10px 4px 8px;
	border-bottom: 1px solid var(--krve-line);
}
.krve-builder__count { display: flex; justify-content: space-between; align-items: baseline; }
.krve-builder__count .krve-eyebrow { margin: 0; }
.krve-builder__count b { font-family: var(--krve-serif); font-size: 22px; font-weight: 600; color: var(--krve-forest); font-variant-numeric: tabular-nums; }
.krve-meter--leaf { margin-top: 8px; }
.krve-meter--leaf i { background: var(--krve-leaf); }
.krve-builder.is-complete .krve-meter--leaf i { background: var(--krve-forest); }
.krve-builder__tools { display: flex; gap: 16px; margin-top: 4px; }
.krve-root .krve-link--inline { display: inline-block; margin: 0; padding: 6px 0; min-height: 36px; font-size: 13px; }
.krve-note--left { text-align: left; margin-top: 8px; }
.krve-builder__list { list-style: none; margin: 8px 0 0 !important; padding: 0 !important; }
.krve-pick {
	display: grid; grid-template-columns: 52px 1fr auto; gap: 12px; align-items: center;
	padding: 10px 0; border-bottom: 1px solid var(--krve-line); margin: 0 !important;
}
.krve-pick__img { width: 52px; height: 52px; border-radius: 12px; object-fit: cover; background: #ebe2d1; display: block; }
.krve-pick__name { font-weight: 700; color: var(--krve-forest); font-size: 15px; line-height: 1.3; }
.krve-pick__name small { display: block; font-weight: 400; font-size: 12px; color: var(--krve-muted); }
.krve-pick__name .krve-pick__sold { color: var(--krve-cocoa); font-weight: 700; }
.krve-pick.is-soldout .krve-pick__img { filter: grayscale(.6) opacity(.6); }
.krve-pick.is-picked .krve-qty { border-color: var(--krve-forest); background: var(--krve-leaf-soft); }
.krve-pick output.krve-qty__input { display: inline-grid; place-items: center; }
.krve-root .krve-qty__btn:disabled { opacity: .35; cursor: not-allowed; }
.krve-line__picks { font-size: 12px; color: var(--krve-muted); margin: 4px 0 0; line-height: 1.4; }

/* ==========================================================================
   Testimoni (v1.3) — geser horizontal di HP, grid di desktop
   ========================================================================== */
.krve-section--testi:not(:has(.krve-testi, .krve-editor-notice)) { display: none; }
.krve-testi {
	display: grid; grid-auto-flow: column; grid-auto-columns: 82%; gap: 14px; overflow-x: auto;
	scroll-snap-type: x mandatory; padding: 4px 2px 14px; scrollbar-width: none; margin-top: 8px;
}
.krve-testi::-webkit-scrollbar { display: none; }
@media (min-width: 900px) { .krve-testi { grid-auto-flow: row; grid-template-columns: repeat(3, 1fr); overflow: visible; } }
.krve-testi__card {
	scroll-snap-align: start; margin: 0 !important; background: var(--krve-oat); border: 1px solid var(--krve-line);
	border-radius: var(--krve-radius); padding: 18px; display: flex; flex-direction: column; gap: 12px;
}
.krve-testi__img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 14px; display: block; }
.krve-testi__quote { margin: 0 !important; padding: 0 !important; border: 0 !important; }
.krve-testi__quote::before, .krve-testi__quote::after { content: none !important; }
.krve-testi__quote p { font-family: var(--krve-serif) !important; font-style: italic !important; font-size: 19px; line-height: 1.35; color: var(--krve-forest); margin: 0 !important; }
.krve-testi__who { text-align: left !important; font-size: 13px; color: var(--krve-muted); margin-top: auto; }
.krve-testi__who b { display: block; color: var(--krve-forest); font-size: 14px; }

/* ==========================================================================
   Hero & FAQ dinamis (v1.7 — diedit dari Panel Admin)
   ========================================================================== */
.krve-hero__grid { display: grid; grid-template-columns: 1fr; gap: 22px; align-items: center; }
.krve-hero__grid .krve-hero__img { margin: 0; }
.krve-hero__grid .krve-buttons { display: flex; margin: 0; }
.krve-hero__grid .krve-buttons .wp-block-button { width: 100%; }
.krve-hero__grid .wp-block-button__link { display: inline-flex; width: 100%; justify-content: center; text-decoration: none; }
@media (min-width: 900px) {
	.krve-hero__grid { grid-template-columns: 45fr 55fr; gap: 56px; }
	.krve-hero__grid .krve-hero__media { order: 2; }
	.krve-hero__grid .krve-buttons .wp-block-button, .krve-hero__grid .wp-block-button__link { width: auto; }
}
.krve-faq-list > :first-child { margin-top: 0 !important; }


/* ==========================================================================
   Hero video (v1.8) + layout "cover" (video/foto jadi latar penuh)
   ========================================================================== */
.krve-hero__img { position: relative; overflow: hidden; border-radius: var(--krve-radius); }
.krve-hero__video {
	position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block;
	border-radius: var(--krve-radius); opacity: 0; transition: opacity .8s ease; pointer-events: none;
}
.krve-hero__video.is-playing { opacity: 1; }

.krve-hero-block--cover .krve-hero__grid {
	position: relative; display: grid; grid-template-columns: 1fr; align-items: end;
	min-height: min(82svh, 720px); border-radius: var(--krve-radius); overflow: hidden; isolation: isolate;
}
.krve-hero-block--cover .krve-hero__media { position: absolute; inset: 0; z-index: -1; order: 0; }
.krve-hero-block--cover .krve-hero__img,
.krve-hero-block--cover .krve-hero__img img,
.krve-hero-block--cover .krve-hero__video { width: 100%; height: 100%; aspect-ratio: auto; border-radius: 0; }
.krve-hero-block--cover .krve-hero__img img { object-fit: cover; }
.krve-hero-block--cover .krve-hero__media::after {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background: linear-gradient(180deg, rgba(20, 38, 29, 0) 28%, rgba(20, 38, 29, .55) 58%, rgba(20, 38, 29, .88) 100%);
}
.krve-hero-block--cover .krve-hero__text { padding: 28px 22px 26px; color: #fff; }
.krve-hero-block--cover .krve-display { color: #fff !important; text-shadow: 0 2px 18px rgba(0, 0, 0, .18); }
.krve-hero-block--cover .krve-display em { color: var(--krve-honey); }
.krve-hero-block--cover .krve-lead { color: rgba(255, 255, 255, .9) !important; }
.krve-hero-block--cover .krve-buttons .wp-block-button__link { background: var(--krve-cream) !important; color: var(--krve-forest) !important; }
.krve-hero-block--cover .krve-buttons .wp-block-button__link:hover { background: #fff !important; }
.krve-hero-block--cover .krve-chips-list li {
	background: rgba(255, 255, 255, .14); border-color: rgba(255, 255, 255, .28); color: #fff;
	-webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
/* "mcover": latar penuh hanya di HP (video vertikal pas), desktop tetap samping. */
@media (max-width: 899px) {
	.krve-hero-block--mcover .krve-hero__grid {
		position: relative; display: grid; grid-template-columns: 1fr; align-items: end;
		min-height: min(82svh, 720px); border-radius: var(--krve-radius); overflow: hidden; isolation: isolate;
	}
	.krve-hero-block--mcover .krve-hero__media { position: absolute; inset: 0; z-index: -1; order: 0; }
	.krve-hero-block--mcover .krve-hero__img,
	.krve-hero-block--mcover .krve-hero__img img,
	.krve-hero-block--mcover .krve-hero__video { width: 100%; height: 100%; aspect-ratio: auto; border-radius: 0; }
	.krve-hero-block--mcover .krve-hero__img img { object-fit: cover; }
	.krve-hero-block--mcover .krve-hero__media::after {
		content: ""; position: absolute; inset: 0; pointer-events: none;
		background: linear-gradient(180deg, rgba(20, 38, 29, 0) 28%, rgba(20, 38, 29, .55) 58%, rgba(20, 38, 29, .88) 100%);
	}
	.krve-hero-block--mcover .krve-hero__text { padding: 28px 22px 26px; color: #fff; }
	.krve-hero-block--mcover .krve-display { color: #fff !important; text-shadow: 0 2px 18px rgba(0, 0, 0, .18); }
	.krve-hero-block--mcover .krve-display em { color: var(--krve-honey); }
	.krve-hero-block--mcover .krve-lead { color: rgba(255, 255, 255, .9) !important; }
	.krve-hero-block--mcover .krve-buttons .wp-block-button__link { background: var(--krve-cream) !important; color: var(--krve-forest) !important; }
	.krve-hero-block--mcover .krve-buttons .wp-block-button__link:hover { background: #fff !important; }
	.krve-hero-block--mcover .krve-chips-list li {
		background: rgba(255, 255, 255, .14); border-color: rgba(255, 255, 255, .28); color: #fff;
		-webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
	}
}
.krve-hero-block--cover .krve-stamp { right: 20px; top: 20px; }
@media (min-width: 900px) {
	.krve-hero-block--cover .krve-hero__grid { grid-template-columns: 1fr; align-items: center; min-height: min(78vh, 680px); }
	.krve-hero-block--cover .krve-hero__media::after {
		background: linear-gradient(90deg, rgba(20, 38, 29, .86) 0%, rgba(20, 38, 29, .6) 38%, rgba(20, 38, 29, 0) 72%);
	}
	.krve-hero-block--cover .krve-hero__text { max-width: 560px; padding: 56px; }
	.krve-hero-block--cover .krve-hero__grid .krve-buttons .wp-block-button,
	.krve-hero-block--cover .krve-hero__grid .wp-block-button__link { width: auto; }
}

/* ==========================================================================
   Fakta singkat (v1.10) — pengganti teks berjalan
   ========================================================================== */
.krve-facts { background: var(--krve-cream); padding: 30px 0 34px; width: 100%; --krve-fx-gutter: 20px; }
@media (min-width: 600px) { .krve-facts { --krve-fx-gutter: 32px; } }
@media (min-width: 1200px) { .krve-facts { --krve-fx-gutter: 48px; } }
.krve-facts__wrap { max-width: 1120px; margin: 0 auto !important; padding: 0 var(--krve-fx-gutter); box-sizing: content-box !important; }
.krve-facts__list {
	list-style: none; margin: 0 !important; padding: 0 !important; width: 100%;
	display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
}
.krve-facts__list li {
	container-type: inline-size; margin: 0 !important; padding: 16px 0 16px 18px; min-width: 0;
	border-left: 1px solid var(--krve-line);
}
.krve-facts__list li:nth-child(odd) { border-left: 0; padding-left: 0; padding-right: 14px; }
.krve-facts__list li:nth-child(n+3) { border-top: 1px solid var(--krve-line); }
/* Ukuran angka menyesuaikan lebar kolom: tidak pernah terpotong di tengah kata. */
.krve-facts__big {
	display: block; font-family: var(--krve-serif); font-weight: 600; color: var(--krve-forest);
	font-size: clamp(20px, 3vw, 40px); font-size: clamp(20px, 15cqi, 40px);
	line-height: 1.05; letter-spacing: -.02em; margin-bottom: 8px; white-space: nowrap; overflow-wrap: normal; word-break: keep-all;
}
.krve-facts__big em { font-style: italic; font-weight: 500; color: var(--krve-cocoa); }
.krve-facts__label { display: block; font-size: 14px; color: var(--krve-muted); line-height: 1.4; }
@media (min-width: 760px) {
	.krve-facts { padding-top: 40px; padding-bottom: 44px; }
	.krve-facts__list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.krve-facts__list li, .krve-facts__list li:nth-child(n) { border-top: 0; border-left: 1px solid var(--krve-line); padding: 4px 22px; }
	.krve-facts__list li:first-child { border-left: 0; padding-left: 0; }
	.krve-facts__list li:last-child { padding-right: 0; }
}
.krve-motion .krve-facts li { opacity: 0; transform: translateY(16px); }
.krve-motion .krve-facts.is-in li {
	opacity: 1; transform: none;
	transition: opacity .6s ease, transform .8s cubic-bezier(.22, 1, .36, 1); transition-delay: calc(var(--krve-i, 0) * 90ms);
}
