/**
 * HIF theme — front-end styles.
 * Only what theme.json cannot express: decorative dividers, sticky bars,
 * header behaviour, card surfaces, and component polish for the HIF blocks.
 */

/* ---------- Self-hosted fonts ----------
   Titillium Web, Savor, and SignPainter are registered via theme.json fontFace.
   Duplicated here so they load even if fontFace is bypassed. */
@font-face {
	font-family: "Savor";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("../fonts/savor.regular.ttf") format("truetype");
}
@font-face {
	font-family: "SignPainter";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("../fonts/SignPainterHouseScript.ttf") format("truetype");
}

/* Clip horizontal overflow site-wide. WooCommerce renders the mini-cart
   off-canvas drawer in-flow off to the right, which widens the document and
   causes horizontal scroll / "cut" full-bleed sections on mobile. `clip`
   (not `hidden`) avoids creating a scroll container, so the sticky header and
   sticky filter sidebar keep working, and the fixed drawer still slides in. */
body,
.wp-site-blocks { overflow-x: clip; }

/* Suppress WP core's automatic block-gap top-margin on constrained layouts;
   we control vertical rhythm per-section via padding/spacers instead. */
:root :where(.wp-site-blocks) > * { margin-block-start: 0; }
:root :where(.wp-site-blocks) > * + * { margin-block-start: 0; }
:root :where(.is-layout-constrained) > * { margin-block-start: 0; }
:root :where(.is-layout-constrained) > * + * { margin-block-start: 0; }
:root :where(.is-layout-flow) > * { margin-block-start: 0; }
:root :where(.is-layout-flow) > * + * { margin-block-start: 0; }

/* ---------- Inner page / single-post content rhythm ----------
   The block-gap reset above keeps the homepage sections flush, but it also
   strips the vertical rhythm out of editorial content (pages, posts — Privacy
   Policy, Terms, etc.). Restore normal spacing, scoped to the post-title and
   post-content so the homepage patterns keep managing their own spacing.
   `margin-block-end` is used where possible since the reset only zeroes
   `margin-block-start`. */
.wp-block-post-title { margin-block-end: 0.6rem; }
.wp-block-post-featured-image { margin-block-end: var(--wp--preset--spacing--40); }

/* Space between sibling blocks inside the article body. */
.wp-block-post-content.is-layout-flow > * + *,
.wp-block-post-content.is-layout-constrained > * + * {
	margin-block-start: var(--wp--style--block-gap, 1.5rem);
}

/* Headings need more breathing room above than the default gap, and a tight
   gap below to bind them to the paragraph they introduce. */
.wp-block-post-content :where(h1, h2, h3, h4, h5, h6) {
	margin-block-start: 2.25rem;
	margin-block-end: 0.5rem;
}
.wp-block-post-content > :first-child { margin-block-start: 0; }

/* Lists: restore indent + item spacing. */
.wp-block-post-content :where(ul, ol) {
	margin-block-start: var(--wp--style--block-gap, 1.5rem);
	padding-left: 1.5rem;
}
.wp-block-post-content :where(li + li) { margin-block-start: 0.35rem; }

/* Page post-content is `align:full` so an alignfull section (e.g. the FAQ band)
   breaks out to the viewport while normal text stays at the constrained reading
   width. When the title is hidden (hif-core sets `body.hif-page-title-hidden` on
   full-bleed landing pages), drop the main's vertical margin so the band sits
   flush under the header / above the footer. `!important` overrides the inline
   margin on the main element. */
.hif-page-title-hidden main.hif-page { margin-block: 0 !important; }
.hif-page-title-hidden main.hif-page > .wp-block-post-content > :first-child { margin-block-start: 0; }

/* WP constrained layout caps each direct child at content-size (1300px) and centres it.
   Header/footer use nested groups as layout shells — only the inner content wrapper
   should be width-constrained; structural children must fill their column/track. */
.hif-header.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
.hif-footer.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
.hif-header .hif-header__announcement.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
.hif-header .hif-header__main.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
.hif-header .hif-header__nav-bar.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
.hif-footer .hif-footer__main.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
.hif-footer .hif-footer__bar.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
.hif-footer__brand.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
.hif-footer__col.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
	max-width: none;
	margin-left: 0;
	margin-right: 0;
}

/* ---------- Header ---------- */
.hif-header {
	position: sticky;
	top: 0;
	z-index: 100;
}
.hif-header::after {
	content: "";
	display: block;
	width: 100%;
	height: var(--wp--custom--border--height, 30px);
	background: url("../images/patterns/border.png") repeat-x center top / auto var(--wp--custom--border--height, 30px);
}

/* Announcement bar */
.hif-header__announcement { width: 100%; }
.hif-header__announcement-text {
	margin: 0;
	color: #fff;
	letter-spacing: 0.01em;
}
.hif-header__announcement-icon {
	display: inline-block;
	margin-right: 0.45em;
	transform: translateY(1px);
}

/* Main saffron bar */
.hif-header__main { width: 100%; }
.hif-header__row {
	max-width: var(--wp--style--global--wide-size, 1300px);
	margin-left: auto;
	margin-right: auto;
	gap: var(--wp--preset--spacing--40);
	width: 100%;
}
.hif-header__brand { flex: 0 0 auto; }
.hif-header__brand .hif-logo img { width: 170px; max-width: 170px; }

/* Search — large pill, takes the middle space */
.hif-header__search {
	flex: 1 1 auto;
	max-width: 720px;
	margin: 0 var(--wp--preset--spacing--30);
}
.hif-header__search .wp-block-search__inside-wrapper {
	background: var(--wp--preset--color--cream);
	border: 0;
	border-radius: 6px;
	padding: 0.25rem 0.4rem 0.25rem 1.25rem;
	box-shadow: inset 0 0 0 1px rgba(0,0,0,0.04);
}
.hif-header__search .wp-block-search__input {
	background: transparent;
	border: 0;
	box-shadow: none;
	padding: 0 0.5rem;
	font-size: 1rem;
	color: var(--wp--preset--color--contrast);
}
.hif-header__search .wp-block-search__input::placeholder {
	color: var(--wp--preset--color--contrast-muted);
	opacity: 0.8;
}
.hif-header__search .wp-block-search__button {
	background: transparent;
	color: var(--wp--preset--color--contrast);
	border: 0;
	padding: 0.4rem 0.7rem;
	min-width: 0;
}
.hif-header__search .wp-block-search__button svg { fill: currentColor; }

/* Live search results dropdown */
.hif-header__search { position: relative; }
.hif-search-results {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	z-index: 9999;
	margin-top: 4px;
	background: #fff;
	border-radius: 6px;
	box-shadow: 0 8px 30px rgba(0,0,0,0.15);
	overflow: hidden;
	max-height: 420px;
	overflow-y: auto;
}
.hif-search-results.is-open { display: block; }

.hif-search-results__item { border-bottom: 1px solid rgba(0,0,0,0.06); }
.hif-search-results__item:last-of-type { border-bottom: 0; }
.hif-search-results__item.is-highlighted,
.hif-search-results__item:hover { background: var(--wp--preset--color--cream, #FDF6EC); }

.hif-search-results__link {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 16px;
	text-decoration: none;
	color: var(--wp--preset--color--contrast, #1a1a1a);
}

.hif-search-results__thumb {
	flex: 0 0 48px;
	width: 48px;
	height: 48px;
	object-fit: cover;
	border-radius: 6px;
	background: var(--wp--preset--color--cream, #FDF6EC);
}
.hif-search-results__thumb--empty {
	display: block;
	background: var(--wp--preset--color--cream, #FDF6EC) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='1.5'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Ccircle cx='8.5' cy='8.5' r='1.5'/%3E%3Cpath d='m21 15-5-5L5 21'/%3E%3C/svg%3E") no-repeat center / 24px;
}

.hif-search-results__text {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.hif-search-results__title {
	font-size: 0.9rem;
	font-weight: 600;
	line-height: 1.3;
	min-width: 0;
}
.hif-search-results__price {
	font-size: 0.82rem;
	font-weight: 700;
	line-height: 1.2;
	color: var(--wp--preset--color--primary, #C2185B);
}
.hif-search-results__title mark {
	background: rgba(244,166,35,0.3);
	color: inherit;
	border-radius: 2px;
	padding: 0 1px;
}

.hif-search-results__empty {
	padding: 20px 16px;
	text-align: center;
	color: var(--wp--preset--color--contrast-muted, #666);
	font-size: 0.9rem;
}

.hif-search-results__view-all {
	border-top: 1px solid rgba(0,0,0,0.06);
	text-align: center;
}
.hif-search-results__view-all a {
	display: block;
	padding: 10px 16px;
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--wp--preset--color--primary, #C2185B);
	text-decoration: none;
}
.hif-search-results__view-all a:hover { background: var(--wp--preset--color--cream, #FDF6EC); }

/* Right cluster: phone, icons, CTA */
.hif-header__actions {
	flex: 0 0 auto;
	gap: var(--wp--preset--spacing--30);
}
.hif-header__phone {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
	font-weight: 400;
	font-size: 0.95rem;
	white-space: nowrap;
}
.hif-header__phone:hover { color: var(--wp--preset--color--primary); }
.hif-header__phone-icon {
	background: #fff;
	border-radius: 999px;
	padding: 6px;
	color: var(--wp--preset--color--contrast);
	box-sizing: content-box;
}
.hif-header__icon-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px; height: 36px;
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
}
.hif-header__icon-link:hover { color: var(--wp--preset--color--primary); }
.hif-header__cta { margin-left: 0.25rem; }
.hif-header__cta .wp-block-button__link {
	padding: 0.7rem 1.4rem;
	font-weight: 600;
}

/* Forest nav bar */
.hif-header__nav-bar { width: 100%; }
.hif-header__nav {
	max-width: var(--wp--style--global--wide-size, 1300px);
	margin: 0 auto;
}
.hif-header__nav .wp-block-navigation-item__content,
.hif-header__nav a {
	color: var(--wp--preset--color--accent) !important;
	font-weight: 600;
	font-size: 1rem;
	padding: 0 10px;
}
.hif-header__nav .wp-block-navigation-item__content:hover,
.hif-header__nav a:hover { color: #fff !important; }
.hif-header__nav .wp-block-navigation__submenu-icon { fill: currentColor; }
/* WC auto-renders mini-cart + customer-account blocks as siblings of the
   navigation block when "Cart" / "My account" pages appear in a wp:navigation.
   We already have our own icons in the saffron bar, so hide the duplicates. */
.hif-header .wp-block-woocommerce-mini-cart,
.hif-header .wp-block-woocommerce-customer-account { display: none !important; }

/* Mobile/tablet navigation — a second nav block (same primary menu) whose
   hamburger sits beside the search, per Figma. Hidden on desktop, where the
   forest nav bar handles the menu. Selectors are scoped under `.hif-header`
   (and the block layout classes) so they outweigh WordPress's generated
   `.is-layout-flex` / navigation flex rules. */
.hif-header .hif-header__mobile-nav { display: none; }
.hif-header__mobile-nav .wp-block-navigation__responsive-container-open {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	padding: 0;
	background-color: var(--wp--preset--color--primary);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M16.6667 10L8.33342 10' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M16.6667 4.16669L3.33342 4.16669' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M16.6667 15.8333L3.33342 15.8333' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 24px 24px;
	color: var(--wp--preset--color--base);
	border-radius: var(--wp--custom--radius--product, 10px);
}
.hif-header__mobile-nav .wp-block-navigation__responsive-container-open:hover {
	background-color: var(--wp--preset--color--primary-dark);
}
/* Use our supplied bar icon instead of the block's default hamburger SVG. */
.hif-header__mobile-nav .wp-block-navigation__responsive-container-open svg {
	display: none;
}

/* Responsive header: phones + tablets (≤1024px) */
@media (max-width: 1024px) {
	/* Two rows: [logo | icons] on top, [search | menu] below. */
	.hif-header .hif-header__row {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-areas:
			"brand actions"
			"search menu";
		align-items: center;
		column-gap: var(--wp--preset--spacing--30);
		row-gap: 0.85rem;
	}
	.hif-header .hif-header__brand { grid-area: brand; min-width: 0; }
	.hif-header .hif-header__actions { grid-area: actions; justify-self: end; }
	.hif-header .hif-header__search {
		grid-area: search;
		max-width: none;
		margin: 0;
	}
	.hif-header__search .wp-block-search__inside-wrapper { min-height: 52px; }
	/* Toggle hugs the right edge (aligns with the cart/account icons above). */
	.hif-header .hif-header__mobile-nav { grid-area: menu; display: block; justify-self: end; }

	/* Icons only in the cluster (Figma): drop the phone number + CTA. */
	.hif-header .hif-header__phone-number { display: none; }
	.hif-header .hif-header__cta { display: none; }

	/* The mobile hamburger replaces the desktop forest nav bar. */
	.hif-header .hif-header__nav-bar { display: none; }

	/* Menu opens as a right-side drawer (not a full-screen popup). The open
	   container becomes a dimmed scrim that right-aligns the sliding panel
	   (the `responsive-close` wrapper). */
	.hif-header__mobile-nav .wp-block-navigation__responsive-container.is-menu-open {
		inset: 0;
		width: 100%;
		height: 100%;
		flex-direction: row;
		justify-content: flex-end;
		align-items: stretch;
		/* Override WordPress's default opaque overlay background (set !important). */
		background-color: rgba(0, 0, 0, 0.5) !important;
	}
	.hif-header__mobile-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close {
		width: min(86vw, 360px);
		max-width: none;
		height: 100%;
		margin: 0;
		padding: 1rem 1.5rem calc(1.4rem + env(safe-area-inset-bottom, 0px));
		background-color: var(--wp--preset--color--base);
		box-shadow: -8px 0 30px rgba(0, 0, 0, 0.28);
		overflow-y: auto;
		animation: hif-nav-drawer-in 0.28s ease;
	}
	/* Trim the big top gap: core reserves 56px to clear the close button, but the
	   button is absolute top-right and the menu is left-aligned, so they coexist. */
	.hif-header__mobile-nav .is-menu-open .wp-block-navigation__responsive-container-content {
		padding-top: 0 !important;
	}
	/* White drawer → forest-green menu text (overrides the saffron nav-link rule). */
	.hif-header__mobile-nav .is-menu-open .wp-block-navigation-item__content,
	.hif-header__mobile-nav .is-menu-open .wp-block-navigation__container a {
		color: var(--wp--preset--color--forest) !important;
	}
	.hif-header__mobile-nav .is-menu-open .wp-block-navigation-item__content:hover,
	.hif-header__mobile-nav .is-menu-open .wp-block-navigation__container a:hover {
		color: var(--wp--preset--color--primary) !important;
	}
	/* Close (X) must be dark on the white drawer. */
	.hif-header__mobile-nav .is-menu-open .wp-block-navigation__responsive-container-close {
		color: var(--wp--preset--color--forest);
	}
}

@keyframes hif-nav-drawer-in {
	from { transform: translateX(100%); }
	to { transform: translateX(0); }
}

@media (max-width: 600px) {
	.hif-header__brand .hif-logo img { width: 140px; max-width: 140px; }
	.hif-header__announcement-text { font-size: 0.8rem; }
	.hif-header .hif-header__actions { gap: 0.6rem; }
}

/* ---------- Decorative section border & divider ---------- */
/* Repeating folk-art band at the bottom of each homepage section (border.png). */
.hif-section-band::after,
.hif-divider {
	display: block;
	width: 100%;
	height: var(--wp--custom--border--height, 30px);
	background-color: transparent;
	background-image: url("../images/patterns/border.png");
	background-repeat: repeat-x;
	background-position: center top;
	background-size: auto var(--wp--custom--border--height, 30px);
}

.hif-section-band::after {
	content: "";
}

.hif-divider {
	margin: 0;
}

/* Legacy zig-zag fallback removed — border.png is the design token. */

/* ---------- Logo ---------- */
.hif-logo { margin: 0; }
.hif-logo img { display: block; height: auto; }

/* ---------- Footer ---------- */
.hif-footer {
	background-color: var(--wp--preset--color--primary) !important;
	color: var(--wp--preset--color--base);
	overflow: hidden;
}

.hif-footer__main {
	background-color: var(--wp--preset--color--primary);
	background-image: url("../images/patterns/pink-pattern.png");
	background-repeat: repeat;
	background-size: 50px;
}

.hif-footer__inner {
	max-width: var(--wp--style--global--wide-size, 1300px);
	margin-left: auto;
	margin-right: auto;
	padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40) var(--wp--preset--spacing--50);
}

.hif-footer__columns {
	display: grid;
	grid-template-columns: minmax(264px, 2fr) repeat(4, minmax(110px, 1fr));
	gap: var(--wp--preset--spacing--40) var(--wp--preset--spacing--30);
	align-items: start;
}

.hif-footer__brand {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.hif-footer__logo {
	display: inline-block;
	line-height: 0;
	margin-left: 0 !important;
}

/* Logo asset ships on black — screen blend removes the plate on the pink field. */
.hif-footer__logo img {
	display: block;
	width: 220px;
	max-width: 100%;
	height: auto;
	/* mix-blend-mode: screen; */
}

.hif-footer__handle {
	margin: 0;
	color: var(--wp--preset--color--base);
	font-weight: 600;
	margin-left: 0 !important;
}

.hif-footer__social {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	margin: 0;
	padding: 0;
	list-style: none;
	margin-left: 0 !important;
}

.hif-footer__social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2rem;
	height: 2rem;
	color: var(--wp--preset--color--base);
	text-decoration: none;
	transition: opacity 0.15s ease;
}

.hif-footer__social a:hover,
.hif-footer__social a:focus-visible {
	opacity: 0.8;
}

.hif-footer__delivery-intro,
.hif-footer__cities {
	margin: 0;
	color: var(--wp--preset--color--base);
	max-width: 24.2rem;
}

.hif-footer__cities {
	font-weight: 500;
	line-height: 1.55;
}

.hif-footer__col-title {
	margin: 0 0 0.85rem;
	font-family: var(--wp--preset--font-family--body) !important;
	font-size: var(--wp--preset--font-size--large);
	font-weight: 500;
	line-height: 1.2;
	color: var(--wp--preset--color--base);
}

.hif-footer__links {
	margin: 0;
	padding: 0;
	list-style: none;
}

.hif-footer__links li + li {
	margin-top: 0.3rem;
}

.hif-footer__links a {
	color: var(--wp--preset--color--base);
	text-decoration: none;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.55;
}

.hif-footer__links a:hover,
.hif-footer__links a:focus-visible {
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.hif-footer__tagline {
	display: flex;
	align-items: center;
	gap: 1.25rem;
	margin: var(--wp--preset--spacing--50) 0 var(--wp--preset--spacing--40);
}

.hif-footer__tagline-rule {
	flex: 1 1 auto;
	height: 1px;
	background: var(--wp--preset--color--accent);
	opacity: 0.9;
}

.hif-footer__tagline-text {
	flex: 0 0 auto;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	line-height: 1.3;
	text-transform: uppercase;
	white-space: nowrap;
	color: var(--wp--preset--color--base);
}

.hif-footer__tagline-dot {
	color: var(--wp--preset--color--accent);
}

.hif-footer__wordmark {
	margin: 0;
	padding: 0 0 var(--wp--preset--spacing--40);
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--wordmark);
	font-weight: 400;
	line-height: 0.92;
	letter-spacing: 0.01em;
	color: rgba(255, 255, 255, 0.94);
	overflow: hidden;
	/* font-size: 100px !important; */
}

.hif-footer__bar {
	width: 100%;
}

.hif-footer__copyright {
	margin: 0;
	color: var(--wp--preset--color--base);
	font-size: 0.8125rem;
	line-height: 1.4;
	opacity: 0.95;
}

@media (max-width: 1100px) {
	.hif-footer__columns {
		grid-template-columns: repeat(3, minmax(140px, 1fr));
	}

	.hif-footer__brand {
		grid-column: 1 / -1;
		max-width: 26.4rem;
	}
}

@media (max-width: 700px) {
	.hif-footer__inner {
		padding-top: var(--wp--preset--spacing--50);
		padding-bottom: var(--wp--preset--spacing--40);
	}

	.hif-footer__columns {
		grid-template-columns: repeat(2, minmax(130px, 1fr));
		gap: var(--wp--preset--spacing--40) var(--wp--preset--spacing--30);
	}

	.hif-footer__tagline {
		flex-direction: column;
		gap: 0.75rem;
		text-align: center;
	}

	.hif-footer__tagline-rule {
		width: 100%;
	}

	.hif-footer__tagline-text {
		white-space: normal;
	}
}

@media (max-width: 480px) {
	.hif-footer__columns {
		grid-template-columns: 1fr;
	}
}

/* ---------- Card surface ---------- */
.hif-card {
	background: var(--wp--preset--color--cream);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--card);
	box-shadow: var(--wp--preset--shadow--card);
}

/* ---------- Pills / badges ---------- */
.hif-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
	padding: 0.25em 0.75em;
	border-radius: var(--wp--custom--radius--pill);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	line-height: 1.4;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
}

.hif-badge--diet { background: color-mix(in srgb, var(--wp--preset--color--success) 18%, white); color: var(--wp--preset--color--success); }
.hif-badge--allergen { background: color-mix(in srgb, var(--wp--preset--color--secondary) 16%, white); color: var(--wp--preset--color--secondary); }
.hif-badge--bestseller { background: var(--wp--preset--color--accent); color: var(--wp--preset--color--contrast); }
.hif-badge--spicy { background: color-mix(in srgb, var(--wp--preset--color--secondary) 20%, white); color: var(--wp--preset--color--secondary); }
.hif-badge--nutfree { background: color-mix(in srgb, var(--wp--preset--color--success) 18%, white); color: var(--wp--preset--color--success); }

/* ---------- Buttons (site-wide) ---------- */
.wp-block-button__link,
.wp-element-button,
.hif-hero__btn,
.hif-newsletter__button {
	font-weight: 600;
}

.hif-section {
	width: 100%;
	max-width: var(--wp--style--global--wide-size, 1300px);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--wp--preset--spacing--40);
	padding-right: var(--wp--preset--spacing--40);
}

.hif-section--wide > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
	max-width: none;
	margin-left: 0;
	margin-right: 0;
}

/* ---------- Hero ---------- */
.hif-hero {
	overflow: hidden;
}

.hif-hero__border {
	height: 30px;
	background: url("../images/patterns/border.png") repeat-x center / auto 30px;
}

.hif-hero__split {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	min-height: clamp(520px, 52vw, 640px);
}

.hif-hero__content {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: var(--wp--preset--spacing--60) clamp(1.5rem, 5vw, 4.5rem);
	background-color: var(--wp--preset--color--primary);
	background-image: url("../images/patterns/pink-pattern.png");
	background-repeat: repeat;
	background-size: 50px;
	color: var(--wp--preset--color--base);
}

.hif-hero__eyebrow {
	margin: 0 0 var(--wp--preset--spacing--30);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	line-height: 1.4;
	color: var(--wp--preset--color--base);
}

.hif-hero__title {
	margin: 0 0 var(--wp--preset--spacing--40);
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(2rem, 4.2vw, 3.25rem);
	font-weight: 400;
	line-height: 1.12;
	letter-spacing: 0.01em;
	color: var(--wp--preset--color--base);
}

.hif-hero__accent {
	font-family: var(--wp--preset--font-family--script, "SignPainter", cursive);
	font-style: normal;
	font-weight: 400;
	color: var(--wp--preset--color--accent);
	white-space: nowrap;
}

.hif-hero__body {
	margin: 0 0 var(--wp--preset--spacing--50);
	max-width: 34rem;
	font-size: clamp(0.9375rem, 1.5vw, 1.0625rem);
	line-height: 1.65;
	color: rgba(255, 255, 255, 0.92);
}

.hif-hero__ctas {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--30);
	margin-bottom: var(--wp--preset--spacing--40);
}

.hif-hero__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	gap: 0.35rem;
	padding: 0.85rem 1.65rem;
	border-radius: var(--wp--custom--radius--pill);
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.hif-hero__btn::after {
	content: "→";
	font-weight: 600;
}

.hif-hero__btn--primary {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--forest);
	border: 2px solid var(--wp--preset--color--accent);
	box-shadow: 0 4px 14px rgba(42, 33, 24, 0.12);
}

.hif-hero__btn--primary:hover,
.hif-hero__btn--primary:focus-visible {
	background: color-mix(in srgb, var(--wp--preset--color--accent) 92%, white);
	color: var(--wp--preset--color--forest-dark);
}

.hif-hero__btn--ghost {
	background: transparent;
	color: var(--wp--preset--color--base);
	border: 2px solid var(--wp--preset--color--base);
}

.hif-hero__btn--ghost:hover,
.hif-hero__btn--ghost:focus-visible {
	background: rgba(255, 255, 255, 0.1);
	color: var(--wp--preset--color--base);
}

.hif-hero__trust {
	margin: 0;
	font-size: 0.8125rem;
	font-weight: 600;
	line-height: 1.5;
	color: var(--wp--preset--color--accent);
}

.hif-hero__visual {
	position: relative;
	background: #12080c;
	overflow: hidden;
}

.hif-hero__photo {
	display: block;
	width: 100%;
	height: 100%;
	min-height: clamp(520px, 52vw, 640px);
	object-fit: cover;
	object-position: center 35%;
}

.hif-hero__badges {
	position: absolute;
	left: 50%;
	bottom: clamp(1.25rem, 4vw, 2.75rem);
	display: flex;
	align-items: flex-end;
	justify-content: center;
	gap: clamp(0.35rem, 1.2vw, 0.85rem);
	width: min(100% - 2rem, 34rem);
	transform: translateX(-50%);
	pointer-events: none;
}

.hif-hero__badge {
	display: block;
	height: auto;
	width: auto;
	max-height: clamp(52px, 8vw, 76px);
	filter: drop-shadow(0 6px 16px rgba(0, 0, 0, 0.28));
}

.hif-hero__badge--protein {
	max-height: clamp(58px, 9vw, 84px);
}

@media (max-width: 900px) {
	.hif-hero__split {
		grid-template-columns: 1fr;
		min-height: 0;
	}

	.hif-hero__content {
		padding-top: var(--wp--preset--spacing--50);
		padding-bottom: var(--wp--preset--spacing--50);
		order: 1;
	}

	.hif-hero__visual {
		order: 2;
		min-height: 320px;
	}

	.hif-hero__photo {
		min-height: 320px;
	}

	.hif-hero__badges {
		width: calc(100% - 1.5rem);
		bottom: 1rem;
	}

	.hif-hero__badge {
		max-height: 52px;
	}

	.hif-hero__badge--protein {
		max-height: 58px;
	}
}

@media (max-width: 520px) {
	.hif-hero__ctas {
		flex-direction: column;
		align-items: stretch;
	}

	.hif-hero__btn {
		width: 100%;
	}
}


/* (Feature grid removed — replaced by .hif-busy-lives__feature-map) */

.hif-why-choose__callout {
	margin-top: var(--wp--preset--spacing--40);
	padding: var(--wp--preset--spacing--40);
	text-align: center;
}

/* ---------- Why Families Choose HIF (homepage section) ---------- */
.hif-why-choose {
	background-color: #FAF5E8;
	background-image: url("../images/patterns/cream-pattern.jpg");
	background-repeat: repeat;
	background-size: 50px;
}
.hif-why-choose__border {
	height: 30px;
	background: url("../images/patterns/border.png") repeat-x center / auto 30px;
}
.hif-why-choose__body {
	padding: clamp(2.5rem, 5vw, 4rem) var(--wp--preset--spacing--40);
}
.hif-why-choose__inner {
	max-width: 1300px;
	margin: 0 auto;
}
.hif-why-choose__title {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 500;
	color: var(--wp--preset--color--forest);
	text-align: center;
	font-size: clamp(2rem, 4vw, 3rem);
	line-height: 1.15;
	margin: 0 0 clamp(2rem, 4vw, 3.25rem);
}
.hif-why-choose__title-mark {
	font-family: var(--wp--preset--font-family--script, "SignPainter", cursive);
	color: var(--wp--preset--color--primary);
	font-style: normal;
	margin-left: 0.4rem;
}
.hif-why-choose__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0;
}
.hif-why-choose__item {
	padding: 0 clamp(1rem, 2vw, 2rem);
	text-align: center;
	position: relative;
}
.hif-why-choose__item + .hif-why-choose__item::before {
	content: "";
	position: absolute;
	left: 0;
	top: 12%;
	bottom: 12%;
	width: 1px;
	background: rgba(194, 24, 91, 0.25);
}
.hif-why-choose__media {
	display: flex;
	align-items: flex-end;
	justify-content: center;
	min-height: 220px;
	margin-bottom: 1.25rem;
}
.hif-why-choose__media img {
	max-width: 220px;
	width: 100%;
	height: auto;
	display: block;
}
.hif-why-choose__heading {
	font-family: var(--wp--preset--font-family--body);
	color: var(--wp--preset--color--primary);
	font-weight: 500;
	font-size: clamp(1.05rem, 1.4vw, 1.25rem);
	margin: 0 0 0.6rem;
	line-height: 1.25;
}
.hif-why-choose__copy {
	color: var(--wp--preset--color--forest);
	font-size: 0.95rem;
	line-height: 1.5;
	margin: 0 auto;
	max-width: 22ch;
}

@media (max-width: 900px) {
	.hif-why-choose__grid { grid-template-columns: repeat(2, 1fr); row-gap: 2.5rem; }
	.hif-why-choose__item + .hif-why-choose__item::before { display: none; }
	.hif-why-choose__item:nth-child(odd) { border-right: 1px solid rgba(194, 24, 91, 0.2); }
}
@media (max-width: 560px) {
	/* Peeking horizontal carousel (Figma). */
	.hif-why-choose__grid {
		display: flex;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		gap: 0.9rem;
		row-gap: 0;
		padding-bottom: 0.75rem;
		scrollbar-width: none;
	}
	.hif-why-choose__grid::-webkit-scrollbar { display: none; }
	.hif-why-choose__item {
		flex: 0 0 78%;
		scroll-snap-align: start;
		border-right: 0 !important;
		background: var(--wp--preset--color--base);
		border: 1px solid rgba(194, 24, 91, 0.15);
		border-radius: 14px;
		padding: 1.25rem 1rem 1.5rem;
		box-shadow: 0 6px 18px rgba(0, 0, 0, 0.06);
	}
	.hif-why-choose__item:nth-child(odd) { border-right: 0; }
	.hif-why-choose__media { min-height: 150px; margin-bottom: 1rem; }
}

/* ---------- How it works — "Effortless" band (homepage) ---------- */
.hif-how-it-works {
	background-color: var(--wp--preset--color--accent);
	background-image: url("../images/patterns/yellow-pattern.png");
	background-repeat: repeat;
	background-size: 50px;
}
.hif-how-it-works__border {
	height: 30px;
	background: url("../images/patterns/border.png") repeat-x center / auto 30px;
}
.hif-how-it-works__body {
	padding: clamp(2.5rem, 5vw, 4rem) var(--wp--preset--spacing--40);
}
.hif-how-it-works__inner {
	max-width: 1300px;
	margin: 0 auto;
}

/* Header row — heading+intro on the left, pink stat card on the right */
.hif-how-it-works__header {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: clamp(1.5rem, 3vw, 3rem);
	align-items: start;
	margin-bottom: clamp(2rem, 4vw, 3rem);
}
.hif-how-it-works__lead { max-width: 60ch; }
.hif-how-it-works__title {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 500;
	color: var(--wp--preset--color--forest);
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	line-height: 1.2;
	margin: 0 0 1rem;
}
.hif-how-it-works__title-mark {
	font-family: var(--wp--preset--font-family--script, "SignPainter", cursive);
	color: var(--wp--preset--color--primary);
	font-style: normal;
	margin-left: 0.4rem;
	font-size: 50px
}
.hif-how-it-works__intro {
	color: var(--wp--preset--color--forest);
	font-size: 1rem;
	line-height: 1.55;
	margin: 0;
	max-width: 55ch;
}
.hif-how-it-works__stat {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	border-radius: 8px;
	padding: 1.1rem 1.6rem;
	min-width: 260px;
	max-width: 320px;
}
.hif-how-it-works__stat-value {
	margin: 0;
	font-family: var(--wp--preset--font-family--body);
	font-weight: 500;
	font-size: clamp(1.75rem, 2.6vw, 2.25rem);
	line-height: 1.1;
}
.hif-how-it-works__stat-label {
	margin: 0.4rem 0 0;
	font-size: 0.95rem;
	font-weight: 500;
	opacity: 0.95;
}

/* Three step cards */
.hif-how-it-works__steps {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(1rem, 2vw, 1.75rem);
}
.hif-step {
	background: var(--wp--preset--color--base);
	border-radius: 12px;
	padding: 1rem 1rem 1.5rem;
	display: flex;
	flex-direction: column;
}
.hif-step--dark {
	background: var(--wp--preset--color--forest);
	color: var(--wp--preset--color--base);
}
.hif-step__media {
	margin: 0 0 1.1rem;
	border-radius: 8px;
	overflow: hidden;
	aspect-ratio: 3 / 2;
}
.hif-step__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.hif-step__title {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 500;
	color: var(--wp--preset--color--forest);
	font-size: clamp(1.1rem, 1.4vw, 1.35rem);
	line-height: 1.25;
	margin: 0 0 0.6rem;
	padding: 0 0.25rem;
}
.hif-step--dark .hif-step__title { color: var(--wp--preset--color--base); }
.hif-step__body {
	margin: 0;
	padding: 0 0.25rem;
	color: var(--wp--preset--color--forest);
	font-size: 0.95rem;
	line-height: 1.55;
}
.hif-step--dark .hif-step__body { color: var(--wp--preset--color--base); opacity: 0.92; }

/* CTA */
.hif-how-it-works__cta {
	display: flex;
	justify-content: center;
	margin-top: clamp(2rem, 4vw, 3rem);
}
.hif-how-it-works__btn {
	display: inline-flex;
	align-items: center;
	gap: 0.65rem;
	background: var(--wp--preset--color--primary-dark);
	color: var(--wp--preset--color--base);
	font-weight: 600;
	font-size: 1.05rem;
	text-decoration: none;
	padding: 0.95rem 2rem;
	border-radius: 6px;
	transition: background-color 0.15s ease;
}
.hif-how-it-works__btn:hover,
.hif-how-it-works__btn:focus-visible {
	background: var(--wp--preset--color--primary-dark);
	color: var(--wp--preset--color--base);
}
.hif-how-it-works__btn-arrow { transition: transform 0.15s ease; }
.hif-how-it-works__btn:hover .hif-how-it-works__btn-arrow { transform: translateX(3px); }

@media (max-width: 900px) {
	.hif-how-it-works__header { grid-template-columns: 1fr; }
	.hif-how-it-works__stat { min-width: 0; max-width: none; }
	.hif-how-it-works__steps { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
	/* Peeking step carousel (Figma). */
	.hif-how-it-works__steps {
		display: flex;
		grid-template-columns: none;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		gap: 1rem;
		padding-bottom: 0.75rem;
		scrollbar-width: none;
	}
	.hif-how-it-works__steps::-webkit-scrollbar { display: none; }
	.hif-step { flex: 0 0 82%; scroll-snap-align: start; }
	.hif-how-it-works__btn { width: 100%; justify-content: center; }
	.hif-how-it-works__cta { margin-top: 1.75rem; }
}

/* ---------- Meal Bowls mega-section (forest-green homepage band) ---------- */
.hif-meal-bowls {
	background-color: var(--wp--preset--color--forest); background-image: url("../images/patterns/green-pattern.png"); background-repeat: repeat; background-size: 50px;
	color: var(--wp--preset--color--base);
}
.hif-meal-bowls__border {
	height: 30px;
	background: url("../images/patterns/border.png") repeat-x center / auto 30px;
}
.hif-meal-bowls__body {
	padding: clamp(2.5rem, 5vw, 4rem) var(--wp--preset--spacing--40);
}
.hif-meal-bowls__inner {
	max-width: 1300px;
	margin: 0 auto;
}

/* Intro block */
.hif-meal-bowls__intro { text-align: center; margin-bottom: clamp(1.5rem, 3vw, 2.5rem); }
.hif-meal-bowls__badge {
	display: inline-block;
	padding: 0.45rem 1.5rem;
	
	border-radius: 6px;
	color: var(--wp--preset--color--accent);
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	margin-bottom: 1rem;
	background: #60716eb3;
}
.hif-meal-bowls__title {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 500;
	color: var(--wp--preset--color--base);
	font-size: clamp(1.75rem, 3.5vw, 2.75rem);
	line-height: 1.15;
	margin: 0 0 1rem;
}
.hif-meal-bowls__title-mark {
	font-family: var(--wp--preset--font-family--script, "SignPainter", cursive);
	color: var(--wp--preset--color--luminous-vivid-amber);
	font-style: normal;
	margin-left: 0.4rem;
	font-size: 50px
}
.hif-meal-bowls__desc {
	max-width: 55ch;
	margin: 0 auto;
	font-size: 0.95rem;
	line-height: 1.55;
	opacity: 0.92;
}

/* Day picker pills */
.hif-meal-bowls__days { text-align: center; margin-bottom: clamp(2rem, 3vw, 3rem); }
.hif-meal-bowls__days-list {
	display: inline-flex;
	gap: var(--wp--preset--spacing--30);
	list-style: none;
	margin: 0;
	padding: 0;
}
.hif-meal-bowls__day-pill {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	min-width: 5.5rem;
	padding: 0.7rem 1.3rem;
	border: 2px solid rgba(255,255,255,0.25);
	border-radius: 6px;
	background: transparent;
	color: var(--wp--preset--color--base);
	text-decoration: none;
	font-weight: 600;
	transition: border-color 0.15s ease, background 0.15s ease;
}
.hif-meal-bowls__day-pill.is-active,
.hif-meal-bowls__day-pill[aria-current="true"] {
	border-color: var(--wp--preset--color--accent);
	background: rgba(244, 166, 35, 0.12);
}
.hif-meal-bowls__day-label { font-weight: 500; font-size: 0.95rem; }
.hif-meal-bowls__day-date { font-size: 0.85rem; opacity: 0.85; }

/* Sub-section header row (title+availability left, CTA right) */
.hif-meal-bowls__section { margin-bottom: clamp(2rem, 4vw, 3.5rem); }
.hif-meal-bowls__section-header {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 1.25rem;
}
.hif-meal-bowls__section-title {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 500;
	font-size: clamp(1.35rem, 2vw, 1.75rem);
	color: var(--wp--preset--color--base);
	margin: 0 0 0.3rem;
	line-height: 1.2;
}
.hif-meal-bowls__availability {
	margin: 0;
	font-size: 0.8rem;
	color: rgba(255,255,255,0.8);
	font-weight: 500;
}
.hif-meal-bowls__availability strong {
	color: var(--wp--preset--color--accent);
}
.hif-meal-bowls__availability-dot {
	display: inline-block;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--wp--preset--color--accent);
	margin-right: 0.3rem;
	vertical-align: middle;
}
.hif-meal-bowls__section-action {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 0.4rem;
}
.hif-meal-bowls__section-tag {
	font-size: 0.75rem;
	font-weight: 600;
	color: rgba(255,255,255,0.7);
	border: 1px solid rgba(255,255,255,0.3);
	border-radius: 6px;
	padding: 0.25rem 0.75rem;
}
.hif-meal-bowls__cta-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	background: var(--wp--preset--color--primary-dark);
	color: var(--wp--preset--color--base);
	font-weight: 600;
	font-size: 0.95rem;
	text-decoration: none;
	padding: 0.75rem 1.5rem;
	border-radius: 6px;
	transition: background 0.15s ease;
}
.hif-meal-bowls__cta-btn:hover,
.hif-meal-bowls__cta-btn:focus-visible {
	background: var(--wp--preset--color--primary-dark);
	color: var(--wp--preset--color--base);
}

/* Product scroller */
.hif-product-scroller {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
	scrollbar-color: rgba(255,255,255,0.3) transparent;
	padding-bottom: 0.75rem;
}
.hif-product-scroller__track {
	display: flex;
	gap: var(--wp--preset--spacing--30);
}
.hif-product-scroller__track > * {
	flex: 0 0 240px;
}

/* ============================================================
   Reusable product card (Figma "shop" card)
   Used by: homepage meal-bowls scroller, shop grid, related products.
   ============================================================ */
.hif-product-card {
	display: flex;
	flex-direction: column;
	background: var(--wp--preset--color--base);
	border: 1.5px solid var(--wp--preset--color--forest);
	border-radius: var(--wp--custom--radius--product);
	overflow: hidden;
	color: var(--wp--preset--color--contrast);
	position: relative;
	transition: box-shadow 0.18s ease, transform 0.18s ease;
}
.hif-product-card:hover {
	box-shadow: var(--wp--preset--shadow--card);
	transform: translateY(-2px);
}

/* Media + corner badge */
.hif-product-card__media {
	position: relative;
	margin: 0.55rem 0.55rem 0;
	border-radius: var(--wp--custom--radius--product-media);
	overflow: hidden;
}
.hif-product-card__media img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}
.hif-pbadge {
	position: absolute;
	top: 0.6rem;
	right: 0.6rem;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	padding: 0.3rem 0.6rem;
	border-radius: 10px;
	font-size: 0.8rem;
	font-weight: 600;
	line-height: 1;
	background: var(--wp--preset--color--base);
	box-shadow: 0 2px 8px rgba(42, 33, 24, 0.14);
}
.hif-pbadge .hif-icon { flex: 0 0 auto; }
.hif-pbadge--bestseller { background: #FFF4D6; color: var(--wp--preset--color--contrast); }
.hif-pbadge--bestseller .hif-icon { color: var(--wp--preset--color--accent); }
.hif-pbadge--spicy { background: #FCE0E8; color: var(--wp--preset--color--primary); }
.hif-pbadge--spicy .hif-icon { color: var(--wp--preset--color--primary); }
.hif-pbadge--nutfree { background: #FBE9D7; color: var(--wp--preset--color--secondary); }
.hif-pbadge--nutfree .hif-icon { color: var(--wp--preset--color--secondary); }

/* Body */
.hif-product-card__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 0.9rem 1rem 1rem;
}
.hif-product-card__title {
	margin: 0 0 0.4rem;
	font-family: var(--wp--preset--font-family--body);
	font-size: 1.1rem;
	font-weight: 600;
	line-height: 1.25;
	color: var(--wp--preset--color--contrast);
}
.hif-product-card__title a { color: inherit; text-decoration: none; }
.hif-product-card__title a:hover { color: var(--wp--preset--color--primary); }
.hif-product-card__desc {
	margin: 0 0 0.9rem;
	font-size: 0.9rem;
	color: var(--wp--preset--color--contrast-muted);
	line-height: 1.45;
	flex: 1;
}

/* Footer: nutrition (left) + add/stepper (right) */
.hif-product-card__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	padding-top: 0.85rem;
	border-top: 1px solid var(--wp--preset--color--border);
}
.hif-product-card__nutri {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
}
.hif-product-card__nutri li {
	display: flex;
	align-items: center;
	gap: 0.45rem;
	font-size: 0.9rem;
	font-weight: 500;
	color: var(--wp--preset--color--contrast);
	white-space: nowrap;
}
.hif-product-card__nutri .hif-icon { color: var(--wp--preset--color--contrast); flex: 0 0 auto; }

/* Price footer variant */
.hif-product-card__price { margin: 0; display: flex; align-items: baseline; gap: 0.4rem; }
.hif-product-card__price-now { font-size: 1.25rem; font-weight: 700; color: var(--wp--preset--color--contrast); }
.hif-product-card__price-was {
	font-size: 0.95rem;
	font-weight: 500;
	color: var(--wp--preset--color--contrast-muted);
	text-decoration: line-through;
}

/* Circular logo mark on the image (bannered cards) */
.hif-product-card__mark {
	position: absolute;
	left: 0.6rem;
	bottom: 0.6rem;
	z-index: 2;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	overflow: hidden;
	background: var(--wp--preset--color--base);
	box-shadow: 0 2px 8px rgba(42, 33, 24, 0.2);
	display: inline-flex;
}
.hif-product-card__mark img { width: 100%; height: 100%; object-fit: cover; }

/* Add button */
.hif-product-card__add {
	border: none;
	cursor: pointer;
	padding: 0.7rem 1.6rem;
	border-radius: 10px;
	font-family: var(--wp--preset--font-family--body);
	font-size: 1rem;
	font-weight: 600;
	color: var(--wp--preset--color--base);
	background: var(--wp--preset--color--primary);
	transition: background 0.15s ease;
}
.hif-product-card__add { text-decoration: none; display: inline-flex; align-items: center; justify-content: center; }
.hif-product-card__add:hover { background: var(--wp--preset--color--primary-dark); color: var(--wp--preset--color--base); }
.hif-product-card__add.is-disabled,
.hif-product-card__add:disabled {
	background: color-mix(in srgb, var(--wp--preset--color--primary) 45%, white);
	cursor: not-allowed;
}
/* WooCommerce AJAX add-to-cart states (classes added by wc-add-to-cart.js) */
.hif-product-card__add.loading {
	pointer-events: none;
	opacity: 0.85;
	padding-right: 2.6rem;
	position: relative;
}
.hif-product-card__add.loading::after {
	content: "";
	position: absolute;
	right: 1rem;
	top: 50%;
	width: 1rem;
	height: 1rem;
	margin-top: -0.5rem;
	border: 2px solid color-mix(in srgb, var(--wp--preset--color--base) 50%, transparent);
	border-top-color: var(--wp--preset--color--base);
	border-radius: 50%;
	animation: hif-spin 0.6s linear infinite;
}
.hif-product-card__add.added { background: var(--wp--preset--color--forest); }
.hif-product-card__add.added:hover { background: var(--wp--preset--color--forest-dark); }
/* The inline "View cart" link WC injects after the button is redundant here —
   the sticky header cart count refreshes via fragments — so keep the card tidy. */
.hif-product-card__footer .added_to_cart { display: none; }
@keyframes hif-spin { to { transform: rotate(360deg); } }

/* Quantity stepper */
.hif-product-card__stepper {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	background: color-mix(in srgb, var(--wp--preset--color--primary) 8%, white);
	border-radius: 12px;
	padding: 0.25rem;
}
.hif-stepper__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.1rem;
	height: 2.1rem;
	border: none;
	cursor: pointer;
	border-radius: 9px;
	color: var(--wp--preset--color--base);
	background: var(--wp--preset--color--primary);
	transition: background 0.15s ease;
}
.hif-stepper__btn:hover { background: var(--wp--preset--color--primary-dark); }
.hif-stepper__count {
	min-width: 1.4rem;
	text-align: center;
	font-size: 1rem;
	font-weight: 600;
	color: var(--wp--preset--color--contrast);
}

/* "Popular with Indian" bottom banner */
.hif-product-card__banner {
	display: flex;
	align-items: center;
	gap: 0.45rem;
	margin: 0;
	padding: 0.6rem 1rem;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
	font-size: 0.9rem;
	font-weight: 600;
}
.hif-product-card__banner-flag { font-size: 1.05rem; line-height: 1; }

/* Box-builder selection state */
.hif-product-card.is-selected {
	border-style: dashed;
	border-color: var(--wp--preset--color--forest);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--wp--preset--color--forest) 18%, transparent);
}

@media (max-width: 900px) {
	.hif-meal-bowls__section-header { flex-direction: column; align-items: flex-start; }
	.hif-meal-bowls__section-action { align-items: flex-start; }
	.hif-product-scroller__track > * { flex-basis: 220px; }
}
@media (max-width: 560px) {
	/* Day pills scroll horizontally instead of overflowing. */
	.hif-meal-bowls__days { overflow-x: auto; scrollbar-width: none; }
	.hif-meal-bowls__days::-webkit-scrollbar { display: none; }
	.hif-meal-bowls__days-list { flex-wrap: nowrap; }
	.hif-meal-bowls__day-pill { flex: 0 0 auto; min-width: 4.75rem; padding: 0.6rem 1rem; }
	/* Cards sized so ~2 show with the next peeking (Figma). */
	.hif-product-scroller__track > * { flex-basis: 52vw; }
	.hif-meal-bowls__section-action { width: 100%; }
	.hif-meal-bowls__cta-btn { width: 100%; justify-content: center; }
}

/* ============================================================
   Shop / Menu page (hif/shop pattern) — forest-green, Figma
   ============================================================ */
.hif-shop {
	background: var(--wp--preset--color--forest);
	background-image: url("../images/patterns/green-pattern.png");
	background-repeat: repeat;
	background-size: 60px;
	color: var(--wp--preset--color--base);
}

/* Header */
.hif-shop__header {
	text-align: center;
	padding: clamp(2.5rem, 5vw, 4rem) var(--wp--preset--spacing--40) var(--wp--preset--spacing--40);
}
.hif-shop__title {
	margin: 0 0 0.6rem;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.7rem, 5vw, 3.6rem);
	font-weight: 500;
	line-height: 1.05;
	color: var(--wp--preset--color--base);
	overflow-wrap: break-word;
}
.hif-shop__intro {
	max-width: 680px;
	margin: 0 auto;
	font-size: clamp(1rem, 2vw, 1.15rem);
	line-height: 1.5;
	color: color-mix(in srgb, var(--wp--preset--color--base) 85%, transparent);
}

/* Body + two-column layout */
.hif-shop__body { padding: 0 var(--wp--preset--spacing--40) var(--wp--preset--spacing--60); }
.hif-shop__layout {
	max-width: 1500px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 280px 1fr;
	gap: var(--wp--preset--spacing--40);
	align-items: start;
}

/* ---- Filter sidebar ---- */
.hif-filter {
	background: var(--wp--preset--color--base);
	border: 2px solid var(--wp--preset--color--forest-dark);
	border-radius: var(--wp--custom--radius--filter);
	overflow: hidden;
	color: var(--wp--preset--color--contrast);
	position: sticky;
	top: 1.5rem;
}
.hif-filter__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1rem 1.25rem;
	background: color-mix(in srgb, var(--wp--preset--color--primary) 10%, white);
}
.hif-filter__head-label {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 1.15rem;
	font-weight: 600;
}
.hif-filter__clear {
	border: none;
	background: none;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	font-size: 0.92rem;
	font-weight: 500;
	color: var(--wp--preset--color--contrast);
	font-family: var(--wp--preset--font-family--body);
}
.hif-filter__clear:hover { color: var(--wp--preset--color--primary); }

.hif-filter__group { padding: 1.1rem 1.25rem; border-top: 1px solid var(--wp--preset--color--border); }
.hif-filter__group:first-of-type { border-top: none; }
.hif-filter__group-title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	cursor: pointer;
	list-style: none;
	font-size: 1.1rem;
	font-weight: 600;
	color: var(--wp--preset--color--contrast);
}
.hif-filter__group-title::-webkit-details-marker { display: none; }
.hif-filter__chevron { transition: transform 0.2s ease; flex: 0 0 auto; }
.hif-filter__group:not([open]) .hif-filter__chevron { transform: rotate(180deg); }
.hif-filter__options { list-style: none; margin: 0.9rem 0 0; padding: 0; display: flex; flex-direction: column; gap: 0.7rem; }
.hif-filter__option {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	cursor: pointer;
	font-size: 0.98rem;
	color: var(--wp--preset--color--contrast);
}
.hif-filter__option input { position: absolute; opacity: 0; width: 0; height: 0; }
.hif-filter__box {
	flex: 0 0 auto;
	width: 22px;
	height: 22px;
	border: 2px solid var(--wp--preset--color--primary);
	border-radius: 6px;
	background: var(--wp--preset--color--cream);
	position: relative;
	transition: background 0.15s ease;
}
.hif-filter__option input:checked + .hif-filter__box { background: var(--wp--preset--color--primary); }
.hif-filter__option input:checked + .hif-filter__box::after {
	content: "";
	position: absolute;
	left: 6px;
	top: 2px;
	width: 6px;
	height: 11px;
	border: solid var(--wp--preset--color--base);
	border-width: 0 2.5px 2.5px 0;
	transform: rotate(45deg);
}
.hif-filter__option input:focus-visible + .hif-filter__box {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 2px;
}
.hif-filter__label { flex: 1 1 auto; }
.hif-filter__count {
	flex: 0 0 auto;
	font-size: 0.8rem;
	font-weight: 600;
	color: var(--wp--preset--color--contrast);
	opacity: 0.45;
}
.hif-filter__option input:checked ~ .hif-filter__count { opacity: 0.8; }

/* ---- Main column ---- */
.hif-shop__main { min-width: 0; }
.hif-shop__toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: var(--wp--preset--spacing--40);
}
.hif-shop__count { margin: 0; font-size: 1.05rem; color: var(--wp--preset--color--base); }
.hif-shop__count strong { font-weight: 600; }
.hif-shop__sort {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	border: none;
	cursor: pointer;
	padding: 0.6rem 1.25rem;
	border-radius: 8px;
	background: var(--wp--preset--color--cream);
	color: var(--wp--preset--color--contrast);
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.95rem;
	font-weight: 600;
}
.hif-shop__sort:hover { background: var(--wp--preset--color--base); }
.hif-shop__sortform { margin: 0; }
/* Functional sort <select> (archive) styled like the button + custom arrow. */
select.hif-shop__sort {
	appearance: none;
	-webkit-appearance: none;
	padding-right: 2.4rem;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%232A2118' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.9rem center;
}

/* Product grid — 4-up, responsive */
.hif-shop__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--wp--preset--spacing--40);
}

/* Pagination */
.hif-shop__pagination { display: flex; justify-content: center; margin-top: var(--wp--preset--spacing--50); }
.hif-shop__loadmore {
	display: inline-block;
	padding: 0.85rem 2.2rem;
	border-radius: 999px;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
	font-weight: 600;
	text-decoration: none;
	transition: background 0.15s ease;
}
.hif-shop__loadmore:hover { background: color-mix(in srgb, var(--wp--preset--color--accent) 80%, black); }

/* Numbered pagination (archive) */
.hif-shop__pagination ul.page-numbers { list-style: none; display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0; padding: 0; }
.hif-shop__pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.5rem;
	height: 2.5rem;
	padding: 0 0.7rem;
	border-radius: 8px;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
	font-weight: 600;
	transition: background 0.15s ease, color 0.15s ease;
}
.hif-shop__pagination a.page-numbers:hover { background: var(--wp--preset--color--cream); }
.hif-shop__pagination .page-numbers.current { background: var(--wp--preset--color--primary); color: var(--wp--preset--color--base); }
.hif-shop__pagination .page-numbers.dots { background: transparent; color: var(--wp--preset--color--base); }
.hif-shop__empty { color: var(--wp--preset--color--base); text-align: center; padding: var(--wp--preset--spacing--50) 0; font-size: 1.05rem; }

@media (max-width: 1100px) {
	.hif-shop__grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 900px) {
	.hif-shop__layout { grid-template-columns: 1fr; }
	.hif-filter { position: static; }
	.hif-shop__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
	.hif-shop__grid { grid-template-columns: 1fr; gap: var(--wp--preset--spacing--30); }
	.hif-shop__toolbar { flex-direction: column; align-items: flex-start; }
}

/* ---- Real WooCommerce archive: align Product Collection cards to the HIF shell ---- */
.hif-product-grid.wc-block-product-template,
.hif-product-grid {
	gap: var(--wp--preset--spacing--40) !important;
}
.hif-product-grid .wc-block-product,
.hif-product-grid .wp-block-post {
	display: flex;
	flex-direction: column;
	background: var(--wp--preset--color--base);
	border: 1.5px solid var(--wp--preset--color--forest);
	border-radius: var(--wp--custom--radius--product);
	overflow: hidden;
	padding: 0.55rem 0.55rem 1rem;
	transition: box-shadow 0.18s ease, transform 0.18s ease;
}
.hif-product-grid .wc-block-product:hover,
.hif-product-grid .wp-block-post:hover {
	box-shadow: var(--wp--preset--shadow--card);
	transform: translateY(-2px);
}
.hif-product-grid .wc-block-components-product-image img,
.hif-product-grid .wp-block-woocommerce-product-image img {
	border-radius: var(--wp--custom--radius--product-media);
	aspect-ratio: 1 / 1;
	object-fit: cover;
	width: 100%;
}
.hif-product-grid .wp-block-post-title { padding: 0 0.45rem; }
.hif-product-grid .wp-block-woocommerce-product-price { padding: 0 0.45rem; font-weight: 600; }
.hif-product-grid .wp-block-woocommerce-product-button { padding: 0 0.45rem; margin-top: auto; }
.hif-product-grid .wp-block-button__link,
.hif-product-grid .wc-block-components-product-button .wp-block-button__link {
	width: 100%;
	border-radius: 10px;
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	font-weight: 600;
}

/* Archive page header band reused on the real shop template */
.hif-archive__header {
	background: var(--wp--preset--color--cream);
	background-image: url("../images/patterns/cream-pattern.jpg");
	background-repeat: repeat;
	background-size: 50px;
	padding: clamp(2rem, 5vw, 3.5rem) var(--wp--preset--spacing--40);
	text-align: center;
}
.hif-archive__sidebar { /* WC filters rail */ }

/* ---------- Busy Lives (cream, center-image, floating cards) ---------- */
.hif-busy-lives { background: var(--wp--preset--color--cream); color: var(--wp--preset--color--contrast); background-image: url("../images/patterns/cream-pattern.jpg"); background-repeat: repeat; background-size: 50px; }
.hif-busy-lives__border { height: 30px; background: url("../images/patterns/border.png") repeat-x center / auto 30px; }
.hif-busy-lives__body { padding: clamp(2.5rem, 5vw, 4rem) var(--wp--preset--spacing--40); }
.hif-busy-lives__inner { max-width: 1300px; margin: 0 auto; }
.hif-busy-lives__title {
	text-align: center;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.75rem, 3.5vw, 2.75rem);
	font-weight: 500;
	line-height: 1.15;
	margin: 0 0 1rem;
}
.hif-busy-lives__title-mark {
	font-family: var(--wp--preset--font-family--script, "SignPainter", cursive);
	color: var(--wp--preset--color--primary);
	font-style: normal;
}
.hif-busy-lives__intro {
	text-align: center;
	max-width: 60ch;
	margin: 0 auto 2.5rem;
	font-size: 0.95rem;
	line-height: 1.6;
	color: var(--wp--preset--color--contrast-muted);
}

/* Feature map: center image + 6 floating cards joined by dashed connectors */
.hif-busy-lives__feature-map {
	position: relative;
	max-width: 1180px;
	margin: 0 auto 1.5rem;
	min-height: 740px;
}
.hif-busy-lives__connectors {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
	pointer-events: none;
}
.hif-busy-lives__center-img {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 46%;
	max-width: 480px;
	z-index: 2;
}
.hif-busy-lives__center-img img { width: 100%; height: auto; display: block; }

/* Floating cards, positioned around the centre image */
.hif-busy-lives__card {
	position: absolute;
	z-index: 3;
	width: 274px;
	display: flex;
	align-items: flex-start;
	gap: 0.85rem;
	background: var(--wp--preset--color--base);
	border-radius: 14px;
	padding: 0.9rem 1rem;
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.09);
}
.hif-busy-lives__card--top-center { left: 30%; top: 1%; }
.hif-busy-lives__card--top-right  { right: 1%; top: 6%; }
.hif-busy-lives__card--mid-left   { left: 1%; top: 27%; }
.hif-busy-lives__card--mid-right  { right: 0; top: 47%; }
.hif-busy-lives__card--bot-left   { left: 2%; top: 62%; }
.hif-busy-lives__card--bot-right  { right: 3%; top: 73%; }

.hif-busy-lives__card-icon { flex: 0 0 auto; width: 52px; height: 52px; border-radius: 10px; object-fit: contain; }
.hif-busy-lives__card-title {
	margin: 0 0 0.2rem;
	font-size: 1.02rem;
	font-weight: 600;
	line-height: 1.2;
	color: var(--wp--preset--color--forest);
}
.hif-busy-lives__card-body { margin: 0; font-size: 0.82rem; line-height: 1.4; color: var(--wp--preset--color--contrast-muted); }

.hif-busy-lives__cta { text-align: center; }
.hif-busy-lives__btn {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
	font-weight: 600;
	font-size: 1rem;
	text-decoration: none;
	padding: 0.85rem 2rem;
	border-radius: 6px;
	transition: background 0.15s ease;
}
.hif-busy-lives__btn:hover,
.hif-busy-lives__btn:focus-visible { background: #d99117; color: var(--wp--preset--color--contrast); }

/* Narrow desktop: scale the canvas down a touch before stacking */
@media (max-width: 1180px) and (min-width: 1025px) {
	.hif-busy-lives__feature-map { min-height: 62vw; }
	.hif-busy-lives__card { width: 23vw; }
	.hif-busy-lives__card-body { font-size: 0.75rem; }
}

/* Tablet / mobile: drop the float, stack centre image + cards */
@media (max-width: 1024px) {
	.hif-busy-lives__connectors { display: none; }
	.hif-busy-lives__feature-map {
		min-height: 0;
		max-width: 460px;
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 1rem;
	}
	.hif-busy-lives__center-img {
		position: static;
		transform: none;
		width: 72%;
		max-width: 340px;
		margin: 0 auto 0.5rem;
		order: -1;
	}
	.hif-busy-lives__card {
		position: static;
		left: auto; right: auto; top: auto;
		width: 100%;
	}
}

/* ---------- Customer Reviews (pink bg, 4x2 grid) ---------- */
.hif-reviews { background: var(--wp--preset--color--primary); color: var(--wp--preset--color--base); background-image: url("../images/patterns/pink-pattern.png"); background-repeat: repeat; background-size: 50px; }
.hif-reviews__border { height: 30px; background: url("../images/patterns/border.png") repeat-x center / auto 30px; }
.hif-reviews__body { padding: clamp(2.5rem, 5vw, 4rem) var(--wp--preset--spacing--40); }
.hif-reviews__inner { max-width: 1300px; margin: 0 auto; }
.hif-reviews__title {
	text-align: center;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.75rem, 3.5vw, 2.75rem);
	font-weight: 500;
	margin: 0 0 0.75rem;
}
.hif-reviews__title-mark {
	font-family: var(--wp--preset--font-family--script, "SignPainter", cursive);
	color: var(--wp--preset--color--accent);
	font-style: normal;
}
.hif-reviews__intro {
	text-align: center;
	max-width: 50ch;
	margin: 0 auto 1.5rem;
	font-size: 0.9rem;
	line-height: 1.55;
	opacity: 0.92;
}

/* Segmented tab bar — single rounded container */
.hif-reviews__tabs { text-align: center; margin-bottom: 2rem; }
.hif-reviews__tabs-bar {
	display: inline-flex;
	align-items: stretch;
	background: rgb(228 226 221 / 30%);
	border-radius: 999px;
	padding: 4px;
	gap: 0;
}
.hif-reviews__tab {
	display: inline-block;
	padding: 0.6rem 1.5rem;
	border-radius: 999px;
	font-size: 0.9rem;
	font-weight: 600;
	font-family: inherit;
	color: var(--wp--preset--color--base);
	background: transparent;
	border: 0;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease;
	white-space: nowrap;
}
.hif-reviews__tab:hover,
.hif-reviews__tab:focus-visible {
	background: rgba(255, 255, 255, 0.2);
}
.hif-reviews__tab.is-active {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
}

/* 4x2 card grid */
.hif-reviews__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1rem;
	margin-bottom: 2rem;
}
.hif-reviews__card {
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	border-radius: 10px;
	padding: 1.25rem;
	box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}
.hif-reviews__card-header { display: flex; align-items: center; gap: 0.65rem; margin-bottom: 0.75rem; }
.hif-reviews__avatar {
	width: 54px;
	height: 54px;
	border-radius: 50%;
	object-fit: cover;
	flex-shrink: 0;
}
.hif-reviews__card-name { margin: 0; font-size: 21px; font-weight: 500; margin-bottom: 6px;}
.hif-reviews__stars { display: flex; gap: 2px; }

.hif-reviews__scores {
	display: flex;
	gap: 4px;
	list-style: none;
	margin: 0 0 0.75rem;
	padding: 0;
	flex-wrap: wrap;
}
.hif-reviews__scores li {
	font-size: 0.72rem;
	font-weight: 600;
	padding: 0.3rem 0.65rem;
	border-radius: 6px;
	background: #F5F5F5;
}
.hif-reviews__card-quote { margin: 0; font-size: 0.82rem; line-height: 1.5; color: var(--wp--preset--color--contrast-muted); }

.hif-reviews__cta { text-align: center; }
.hif-reviews__btn {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
	font-weight: 600;
	font-size: 1rem;
	text-decoration: none;
	padding: 0.85rem 2.5rem;
	border-radius: 6px;
	transition: background 0.15s ease;
}
.hif-reviews__btn:hover,
.hif-reviews__btn:focus-visible { background: #d99117; color: var(--wp--preset--color--contrast); }

@media (max-width: 900px) {
	.hif-reviews__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
	/* Scrollable tab bar + single-card review carousel (Figma). */
	.hif-reviews__tabs-bar {
		display: flex;
		max-width: 100%;
		overflow-x: auto;
		scrollbar-width: none;
	}
	.hif-reviews__tabs-bar::-webkit-scrollbar { display: none; }
	.hif-reviews__tab { flex: 0 0 auto; }
	.hif-reviews__grid {
		display: flex;
		grid-template-columns: none;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		gap: 0.85rem;
		padding-bottom: 0.5rem;
		scrollbar-width: none;
	}
	.hif-reviews__grid::-webkit-scrollbar { display: none; }
	.hif-reviews__card { flex: 0 0 86%; scroll-snap-align: start; }
	.hif-reviews__btn { width: 100%; justify-content: center; }
}
@media (max-width: 600px) {
	.hif-reviews__grid { grid-template-columns: 1fr; }
}

/* ---------- HIF Difference comparison grid (forest bg) ---------- */
.hif-diff { background: var(--wp--preset--color--forest); color: var(--wp--preset--color--base); background-image: url("../images/patterns/green-pattern.png"); background-repeat: repeat; background-size: 50px; }
.hif-diff__body { padding: clamp(2.5rem, 5vw, 4rem) var(--wp--preset--spacing--40); }
.hif-diff__inner { max-width: 1300px; margin: 0 auto; }
.hif-diff__border { height: 30px; background: url("../images/patterns/border.png") repeat-x center / auto 30px; }
.hif-diff__title {
	text-align: center;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.75rem, 3.5vw, 2.75rem);
	font-weight: 500;
	margin: 0 0 0.75rem;
}
.hif-diff__title-mark {
	font-family: "Savor", var(--wp--preset--font-family--display);
	font-style: italic;
}
.hif-diff__intro {
	text-align: center;
	max-width: 55ch;
	margin: 0 auto 2rem;
	font-size: 0.9rem;
	line-height: 1.55;
	opacity: 0.85;
}

/* 5-column CSS Grid */
.hif-diff__grid {
	display: grid;
	grid-template-columns: 1.1fr 1.3fr 1fr 1fr 1fr;
	font-size: 0.88rem;
	color: var(--wp--preset--color--contrast);
	border-radius: 12px;
	overflow: visible;
}

/* ---- Header cells ---- */
.hif-diff__head {
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 1.1rem 1.25rem;
	font-weight: 500;
}
.hif-diff__head--attr {
	background: var(--wp--preset--color--cream);
	color: var(--wp--preset--color--contrast-muted);
	justify-content: flex-start;
	text-align: left;
	border-radius: 12px 0 0 0;
}
.hif-diff__head--hif {
	flex-direction: column;
	gap: 0.15rem;
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	border-radius: 12px 12px 0 0;
	position: relative;
	z-index: 2;
	box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.12);
	padding: 1.3rem 1.25rem;
}
.hif-diff__head-sub {
	font-weight: 400;
	font-size: 0.78rem;
	opacity: 0.8;
}
.hif-diff__head--comp {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
}
.hif-diff__head--comp:last-child {
	border-radius: 0 12px 0 0;
}

/* ---- Body cells ---- */
.hif-diff__cell {
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 1.15rem 1.25rem;
	border-bottom: 1px solid var(--wp--preset--color--border);
	line-height: 1.45;
}

/* Attribute label column */
.hif-diff__cell--attr {
	background: #f5efe4;
	justify-content: flex-start;
	text-align: left;
	font-weight: 500;
}
.hif-diff__cell--attr.is-last {
	border-bottom: 0;
	border-radius: 0 0 0 12px;
}

/* HIF highlighted column */
.hif-diff__cell--hif {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	justify-content: flex-start;
	text-align: left;
	border-bottom-color: rgba(255, 255, 255, 0.12);
	position: relative;
	z-index: 2;
	box-shadow: -4px 0 16px rgba(0, 0, 0, 0.06), 4px 0 16px rgba(0, 0, 0, 0.06);
	gap: 0.6rem;
}
.hif-diff__cell--hif.is-last {
	border-bottom: 0;
	border-radius: 0 0 12px 12px;
	box-shadow: -4px 0 16px rgba(0, 0, 0, 0.06), 4px 4px 16px rgba(0, 0, 0, 0.10);
}

/* Competitor columns */
.hif-diff__cell--comp {
	background: var(--wp--preset--color--cream);
}
.hif-diff__cell--comp.is-last {
	border-bottom: 0;
}
.hif-diff__cell--comp.is-last:last-child {
	border-radius: 0 0 12px 0;
}

/* HIF cell content */
.hif-diff__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	min-width: 32px;
	background: rgba(255, 255, 255, 0.15);
	border-radius: 50%;
	font-size: 0.95rem;
}
.hif-diff__hif-text {
	display: flex;
	flex-direction: column;
	gap: 0.1rem;
}
.hif-diff__hif-title { font-weight: 500; color: var(--wp--preset--color--accent); }
.hif-diff__hif-sub { font-size: 0.8rem; opacity: 0.9; }

/* Responsive: horizontal scroll wrapper on small screens */
@media (max-width: 900px) {
	.hif-diff__grid {
		min-width: 820px;
	}
	.hif-diff__inner {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
}
@media (max-width: 600px) {
	.hif-diff__grid {
		grid-template-columns: 1fr;
		min-width: 0;
	}
	.hif-diff__head--attr,
	.hif-diff__cell--attr { display: none; }
	.hif-diff__head--hif { border-radius: 12px 12px 0 0; }
	.hif-diff__head--comp:last-child { border-radius: 0; }
	.hif-diff__cell--hif {
		box-shadow: none;
	}
	.hif-diff__cell--comp {
		padding: 0.75rem 1.25rem;
		font-size: 0.82rem;
	}
	.hif-diff__cell--comp::before {
		content: attr(data-label);
		font-weight: 600;
		margin-right: 0.5rem;
		color: var(--wp--preset--color--contrast-muted);
	}
}

/* ---------- Transform band + bento grid ---------- */
.hif-transform { background: var(--wp--preset--color--cream); color: var(--wp--preset--color--contrast); background-image: url("../images/patterns/cream-pattern.jpg"); background-repeat: repeat; background-size: 50px; }
.hif-transform__border { height: 30px; background: url("../images/patterns/border.png") repeat-x center / auto 30px; }
.hif-transform__body { padding: clamp(2.5rem, 5vw, 4rem) var(--wp--preset--spacing--40); }
.hif-transform__inner { max-width: 1300px; margin: 0 auto; }
.hif-transform__title {
	text-align: center;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.75rem, 3.5vw, 2.75rem);
	font-weight: 500;
	line-height: 1.15;
	margin: 0 0 1rem;
	color: var(--wp--preset--color--forest);
	max-width: 750px;
	margin: 0 auto;
}
.hif-transform__mark {
	font-family: "Savor", var(--wp--preset--font-family--display);
	color: var(--wp--preset--color--primary);
	font-style: italic;
}
.hif-transform__intro {
	text-align: center;
	max-width: 55ch;
	margin: 0 auto 2.5rem;
	font-size: 0.9rem;
	line-height: 1.6;
	color: var(--wp--preset--color--contrast-muted);
}

/* Bento: 2-col, left tall, right stacked */
.hif-transform__bento {
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-template-rows: auto auto;
	gap: 1.25rem;
}
.hif-transform__card {
	border-radius: 14px;
	padding: 1.5rem;
	overflow: hidden;
	position: relative;
}
.hif-transform__card-title {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.5rem;
	font-weight: 500;
	margin: 0 0 0.75rem;
	color: var(--wp--preset--color--forest);
}
.hif-transform__card-text { margin: 0 0 0.75rem; font-size: 0.88rem; line-height: 1.55; }
.hif-transform__card-media { border-radius: 10px; overflow: hidden; margin-bottom: 1rem; }
.hif-transform__card-media img { display: block; width: 100%; height: auto; }
.hif-transform__card-btn {
	display: inline-flex; align-items: center; gap: 0.4rem;
	font-weight: 600; font-size: 0.9rem; text-decoration: none;
	padding: 0.65rem 1.5rem; border-radius: 6px; transition: opacity 0.15s ease;
}
.hif-transform__card-btn:hover { opacity: 0.88; }
.hif-transform__card-btn--pink { background: var(--wp--preset--color--primary); color: var(--wp--preset--color--base); }
.hif-transform__card-btn--white { background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast); }

/* About Us — saffron, spans both rows */
.hif-transform__card--about {
	grid-row: 1 / 3;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
	background-image: url("../images/patterns/yellow-pattern.png");
	background-repeat: repeat;
	background-size: 50px;
}

/* Cooking Experience — pink */
.hif-transform__card--experience {
	background: var(--wp--preset--color--primary); background-image: url("../images/patterns/pink-pattern.png");
	background-repeat: repeat;
	background-size: 50px;
	color: var(--wp--preset--color--base);
}
.hif-transform__card--experience .hif-transform__card-title { color: var(--wp--preset--color--base); }
.hif-transform__exp-layout { display: flex; gap: 1rem; align-items: center; max-width: 70%;}
.hif-transform__exp-text { flex: 1; }
.hif-transform__exp-text p { margin: 3rem 0 2rem; font-size: 0.85rem; line-height: 1.55; opacity: 0.92; background-color: var(--wp--preset--color--primary-dark); padding: 10px; border-radius: 6px;}
.hif-transform__exp-img {
	flex-shrink: 0;     
	width: auto;
    height: 310px;
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
}

/* Gift Vouchers — forest */
.hif-transform__card--gifts {
	background: var(--wp--preset--color--forest); background-image: url("../images/patterns/green-pattern.png");
	background-repeat: repeat;
	background-size: 50px;
	color: var(--wp--preset--color--base);
}
.hif-transform__card--gifts p { font-size: 0.88rem; line-height: 1.5; opacity: 0.9; margin: 0 0 1rem; }
.hif-transform__gift-img {
	position: absolute;
	bottom: -10px; right: -10px;
	width: 55%; height: auto;
	object-fit: contain;
	pointer-events: none;
}

@media (max-width: 768px) {
	.hif-transform__bento { grid-template-columns: 1fr; }
	.hif-transform__card--about { grid-row: auto; }
	.hif-transform__exp-layout { flex-direction: column; }
	.hif-transform__exp-img { width: 120px; height: 120px; }
}

/* ---------- Instagram (saffron bg, masonry grid) ---------- */
.hif-insta { background: var(--wp--preset--color--accent); color: var(--wp--preset--color--forest); background-image: url("../images/patterns/yellow-pattern.png"); background-repeat: repeat; background-size: 50px; }
.hif-insta__border { height: 30px; background: url("../images/patterns/border.png") repeat-x center / auto 30px; }
.hif-insta__body { padding: clamp(2.5rem, 5vw, 3.5rem) var(--wp--preset--spacing--40); }
.hif-insta__inner { max-width: 1300px; margin: 0 auto; }
.hif-insta__title {
	text-align: center;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.75rem, 3.5vw, 2.75rem);
	font-weight: 500;
	margin: 0 0 0.5rem;
	color: var(--wp--preset--color--forest);
}
.hif-insta__icon { width: 36px; height: 36px; object-fit: contain; vertical-align: middle; margin-right: 0.4rem; border-radius: 4px; }
.hif-insta__intro {
	text-align: center;
	font-size: 0.9rem;
	color: var(--wp--preset--color--forest);
	opacity: 0.8;
	margin: 0 0 2rem;
}

/* Masonry-style 5-col staggered grid */
.hif-insta__grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	grid-template-rows: auto auto;
	gap: 1rem;
	margin-bottom: 1.5rem;
}
.hif-insta__item {
	display: block;
	border-radius: 10px;
	overflow: hidden;
}
.hif-insta__item img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.2s ease;
}
.hif-insta__item:hover img,
.hif-insta__item:focus-visible img { transform: scale(1.04); }

/* Staggered layout positions */
.hif-insta__item--1 { grid-column: 1; grid-row: 1; }
.hif-insta__item--2 { grid-column: 2; grid-row: 1 / 3; }
.hif-insta__item--3 { grid-column: 3; grid-row: 1 / 3; }
.hif-insta__item--4 { grid-column: 4; grid-row: 1 / 3; }
.hif-insta__item--5 { grid-column: 5; grid-row: 1; }
.hif-insta__item--6 { grid-column: 1; grid-row: 2; }
.hif-insta__item--7 { grid-column: 5; grid-row: 2; }

.hif-insta__cta { text-align: center; }
.hif-insta__btn {
	display: inline-flex; align-items: center; gap: 0.5rem;
	background: var(--wp--preset--color--primary); color: var(--wp--preset--color--base);
	font-weight: 600; font-size: 0.95rem; text-decoration: none;
	padding: 0.75rem 2rem; border-radius: 6px;
	transition: background 0.15s ease;
}
.hif-insta__btn:hover,
.hif-insta__btn:focus-visible { background: var(--wp--preset--color--primary-dark); color: var(--wp--preset--color--base); }
.hif-insta__btn-icon { font-size: 1.1rem; }

@media (max-width: 768px) {
	.hif-insta__grid { grid-template-columns: repeat(3, 1fr); grid-template-rows: auto; }
	.hif-insta__item { grid-column: auto !important; grid-row: auto !important; }
}

/* ---------- Newsletter band (forest bg, email form, trust badges) ---------- */
.hif-newsletter-band { background: var(--wp--preset--color--forest); color: var(--wp--preset--color--base); background-image: url("../images/patterns/green-pattern.png"); background-repeat: repeat; background-size: 50px; }
.hif-newsletter-band__border { height: 30px; background: url("../images/patterns/border.png") repeat-x center / auto 30px; }
.hif-newsletter-band__body { padding: clamp(2.5rem, 5vw, 4rem) var(--wp--preset--spacing--40); }
.hif-newsletter-band__inner { max-width: 1300px; margin: 0 auto; }
.hif-newsletter-band__title {
	text-align: center;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.75rem, 3.5vw, 2.75rem);
	font-weight: 500;
	margin: 0 0 0.75rem;
}
.hif-newsletter-band__intro {
	text-align: center;
	max-width: 50ch;
	margin: 0 auto 2rem;
	font-size: 0.9rem;
	line-height: 1.55;
	opacity: 0.85;
}

/* Email form */
.hif-newsletter-band__form {
	display: flex;
	gap: 0.75rem;
	max-width: 600px;
	margin: 0 auto 3rem;
}
.hif-newsletter-band__input {
	flex: 1;
	min-width: 0;
	padding: 0.85rem 1.25rem;
	border-radius: 6px;
	border: 0;
	background: rgba(255, 255, 255, 0.15);
	color: var(--wp--preset--color--base);
	font-size: 0.9rem;
	font-family: inherit;
}
.hif-newsletter-band__input::placeholder { color: rgba(255, 255, 255, 0.55); }
.hif-newsletter-band__submit {
	display: inline-flex; align-items: center; gap: 0.4rem;
	padding: 0.85rem 1.75rem;
	border: 0; border-radius: 6px;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
	font-weight: 600; font-size: 0.95rem;
	font-family: inherit; cursor: pointer;
	transition: background 0.15s ease;
}
.hif-newsletter-band__submit:hover { background: #d99117; }

/* Trust badges — 4-col with white card + circular images */
.hif-newsletter-band__badges {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.5rem;
	text-align: center;
}
.hif-newsletter-band__badge { display: flex; flex-direction: column; align-items: center; }
.hif-newsletter-band__badge-img {
	width: 140px; height: 140px;
	background: var(--wp--preset--color--base);
	border-radius: 16px;
	display: flex; align-items: center; justify-content: center;
	margin-bottom: 0.75rem;
	box-shadow: 0 2px 10px rgba(0,0,0,0.08);
	overflow: hidden;
}
.hif-newsletter-band__badge-img img {
	width: 110px; height: 110px;
	object-fit: contain;
	border-radius: 50%;
}
.hif-newsletter-band__badge-title {
	display: block;
	font-size: 0.9rem;
	font-weight: 500;
	margin-bottom: 0.2rem;
}
.hif-newsletter-band__badge-body {
	font-size: 0.8rem;
	opacity: 0.75;
}

@media (max-width: 768px) {
	.hif-newsletter-band__form { flex-direction: column; }
	.hif-newsletter-band__badges { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
	.hif-newsletter-band__badges { grid-template-columns: 1fr 1fr; gap: 1rem; }
}


/* ---------- Sticky add-to-cart / running total bars ---------- */
.hif-sticky-bar {
	position: sticky;
	bottom: 0;
	z-index: 90;
	background: var(--wp--preset--color--base);
	box-shadow: var(--wp--preset--shadow--sticky);
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
}

/* ---------- Accordion (ingredients / allergens / FAQ) ---------- */
.hif-accordion__item {
	border-bottom: 1px solid var(--wp--preset--color--border);
}
.hif-accordion__trigger {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	padding: var(--wp--preset--spacing--30) 0;
	background: none;
	border: 0;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
	text-align: left;
}
.hif-accordion__panel[hidden] { display: none; }
.hif-accordion__panel { padding-bottom: var(--wp--preset--spacing--30); }

/* ---------- Newsletter form ---------- */
.hif-newsletter {
	display: flex;
	gap: 0.5rem;
	flex-wrap: wrap;
}
.hif-newsletter__input {
	flex: 1 1 160px;
	min-width: 0;
	padding: 0.7rem 1rem;
	border-radius: var(--wp--custom--radius--pill);
	border: 1px solid var(--wp--preset--color--border);
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
}
.hif-newsletter__button {
	padding: 0.7rem 1.5rem;
	border: 0;
	border-radius: var(--wp--custom--radius--pill);
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
	font-weight: 600;
	cursor: pointer;
}

/* ---------- Comparison table ---------- */
.hif-comparison table { border-collapse: collapse; }
.hif-comparison th,
.hif-comparison td {
	text-align: center;
	padding: 0.85rem 1rem;
	border-bottom: 1px solid var(--wp--preset--color--border);
}
.hif-comparison thead th {
	background: var(--wp--preset--color--forest);
	color: var(--wp--preset--color--base);
}
.hif-comparison tbody td:first-child,
.hif-comparison thead th:first-child { text-align: left; }
.hif-comparison tbody td:nth-child(2) {
	color: var(--wp--preset--color--success);
	font-weight: 500;
}

/* ---------- 404 page ---------- */
.hif-404 {
	text-align: center;
	min-height: 60vh;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	background-image: url("../images/patterns/cream-pattern.jpg");
	background-repeat: repeat;
	background-size: 50px;
}
.hif-404__code { opacity: 1; letter-spacing: 0.05em; margin-bottom: 0.25rem !important; }
.hif-404__search .wp-block-search__inside-wrapper {
	background: #fff;
	border: 1px solid rgba(0,0,0,0.1);
	border-radius: 6px;
	max-width: 500px;
	margin: 0 auto;
}
.hif-404__search { max-width: 500px; margin: 0 auto; }
.hif-404__search .wp-block-search__input {
	background: transparent;
	border: 0;
	color: var(--wp--preset--color--contrast);
	font-size: 1rem;
}
.hif-404__search .wp-block-search__input::placeholder { color: var(--wp--preset--color--contrast-muted, #666); }
.hif-404__search .wp-block-search__button {
	background: transparent;
	color: var(--wp--preset--color--contrast);
	border: 0;
}

/* ---------- FAQ accordion (core/details) ---------- */
.hif-faq {
	background-color: var(--wp--preset--color--accent);
	background-image: url("../images/patterns/yellow-pattern.png");
	background-repeat: repeat;
	background-size: 50px;
	color: var(--wp--preset--color--contrast);
}
.hif-faq__inner { margin-left: auto; margin-right: auto; }

.hif-faq__title {
	text-align: center;
	font-family: var(--wp--preset--font-family--display);
	color: var(--wp--preset--color--forest);
	font-size: clamp(2rem, 4vw, 3rem);
	margin: 0 0 0.75rem;
}
.hif-faq__title-mark {
	font-family: var(--wp--preset--font-family--script, "SignPainter", cursive);
	color: var(--wp--preset--color--primary);
	font-style: normal;
	margin-left: 0.3rem;
}
.hif-faq__intro {
	text-align: center;
	max-width: 620px;
	margin: 0 auto 2.5rem;
	color: var(--wp--preset--color--contrast);
	line-height: 1.55;
}

/* Accordion items — styled generically so admin-added Details blocks inherit it */
.hif-faq .wp-block-details {
	background: rgb(255 223 144 / 99%);
	border-radius: var(--wp--custom--radius--card, 6px);
	padding: 1.1rem 1.5rem;
	margin: 0 0 1rem;
	box-shadow: 0 1px 2px rgba(42, 33, 24, 0.06);
	transition: background-color 0.2s ease;
}
.hif-faq .wp-block-details:last-child { margin-bottom: 0; }

.hif-faq .wp-block-details summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	cursor: pointer;
	list-style: none;
	font-weight: 500;
	font-size: 1.05rem;
	color: var(--wp--preset--color--contrast);
}
.hif-faq .wp-block-details summary::-webkit-details-marker { display: none; }

/* Custom chevron */
.hif-faq .wp-block-details summary::after {
	content: "";
	flex: 0 0 auto;
	width: 11px;
	height: 11px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg);
	transform-origin: center;
	transition: transform 0.2s ease;
	margin-right: 4px;
}
.hif-faq .wp-block-details[open] summary::after { transform: rotate(-135deg); }

/* Open state — pink panel, light text */
.hif-faq .wp-block-details[open] {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
}
.hif-faq .wp-block-details[open] summary {
	color: var(--wp--preset--color--base);
	padding-bottom: 0.9rem;
	margin-bottom: 0.9rem;
	border-bottom: 1px solid rgba(255, 255, 255, 0.3);
}
.hif-faq .wp-block-details[open] p {
	color: var(--wp--preset--color--cream);
	margin: 0;
	line-height: 1.6;
}

.hif-faq__border { height: 30px; background: url("../images/patterns/border.png") repeat-x center / auto 30px; }

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

/* ---------- Side cart drawer ---------- */
/* Header cart icon + count badge */
.hif-header__cart { position: relative; overflow: visible; }
.hif-header__cart-count {
	position: absolute;
	top: -4px;
	right: -6px;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--wp--custom--radius--pill, 999px);
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	font-size: 0.7rem;
	font-weight: 700;
	line-height: 1;
	box-sizing: border-box;
}
.hif-header__cart-count[hidden] { display: none; }

/* Overlay scrim */
.hif-side-cart-overlay {
	position: fixed;
	inset: 0;
	z-index: 9998;
	background: rgba(0, 0, 0, 0.45);
	opacity: 0;
	transition: opacity 0.3s ease;
}
.hif-side-cart-overlay.is-open { opacity: 1; }

/* Drawer */
.hif-side-cart {
	position: fixed;
	inset: 0 0 0 auto;
	z-index: 9999;
	width: min(420px, 100%);
	display: flex;
	flex-direction: column;
	background: var(--wp--preset--color--cream, #fdf6ec);
	box-shadow: -6px 0 30px rgba(0, 0, 0, 0.18);
	transform: translateX(100%);
	transition: transform 0.3s ease;
	will-change: transform;
}
.hif-side-cart.is-open { transform: translateX(0); }
body.hif-cart-open { overflow: hidden; }

/* Header */
.hif-side-cart__header {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.1rem 1.25rem;
	background: var(--wp--preset--color--forest);
	color: var(--wp--preset--color--base);
}
.hif-side-cart__title {
	margin: 0;
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--wp--preset--color--base);
}
.hif-side-cart__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	padding: 0;
	border: none;
	border-radius: 50%;
	background: transparent;
	color: var(--wp--preset--color--base);
	cursor: pointer;
	transition: background 0.15s ease;
}
.hif-side-cart__close:hover { background: rgba(255, 255, 255, 0.15); }

/* Body */
.hif-side-cart__body {
	flex: 1 1 auto;
	overflow-y: auto;
	padding: 0.5rem 1.25rem;
}
.hif-side-cart__items {
	list-style: none;
	margin: 0;
	padding: 0;
}
.hif-side-cart__item {
	display: grid;
	grid-template-columns: 64px 1fr auto;
	gap: 0.85rem;
	align-items: start;
	padding: 1rem 0;
	border-bottom: 1px solid rgba(27, 77, 62, 0.12);
	transition: opacity 0.15s ease;
}
.hif-side-cart__item.is-loading { opacity: 0.5; pointer-events: none; }
.hif-side-cart__thumb img {
	width: 64px;
	height: 64px;
	object-fit: cover;
	border-radius: var(--wp--custom--radius--card, 8px);
	display: block;
}
.hif-side-cart__details { min-width: 0; }
.hif-side-cart__name {
	font-weight: 600;
	line-height: 1.25;
	font-size: 0.95rem;
}
.hif-side-cart__name a {
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
}
.hif-side-cart__name a:hover { color: var(--wp--preset--color--primary); }
.hif-side-cart__unit-price {
	margin-top: 0.2rem;
	font-size: 0.85rem;
	color: var(--wp--preset--color--contrast);
	opacity: 0.7;
}
.hif-side-cart__controls {
	margin-top: 0.55rem;
	display: flex;
	align-items: center;
	gap: 0.85rem;
}
.hif-side-cart__stepper {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
}
.hif-side-cart__qty {
	min-width: 1.4rem;
	text-align: center;
	font-weight: 600;
	color: var(--wp--preset--color--contrast);
}
.hif-side-cart__remove {
	border: none;
	background: transparent;
	padding: 0;
	font-size: 0.8rem;
	color: var(--wp--preset--color--contrast);
	opacity: 0.6;
	text-decoration: underline;
	cursor: pointer;
}
.hif-side-cart__remove:hover { color: var(--wp--preset--color--primary); opacity: 1; }
.hif-side-cart__line-total {
	font-weight: 700;
	white-space: nowrap;
	color: var(--wp--preset--color--contrast);
}

/* Empty state */
.hif-side-cart__empty {
	padding: 3rem 1rem;
	text-align: center;
}
.hif-side-cart__empty-text {
	margin: 0 0 1rem;
	color: var(--wp--preset--color--contrast);
	opacity: 0.75;
}
.hif-side-cart__empty-link {
	display: inline-block;
	padding: 0.6rem 1.4rem;
	border-radius: var(--wp--custom--radius--pill, 999px);
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	font-weight: 600;
	text-decoration: none;
}

/* Footer */
.hif-side-cart__footer:empty { display: none; }
.hif-side-cart__footer {
	flex: 0 0 auto;
	padding: 1.1rem 1.25rem calc(1.1rem + env(safe-area-inset-bottom, 0px));
	border-top: 1px solid rgba(27, 77, 62, 0.15);
	background: var(--wp--preset--color--base, #fff);
}
.hif-side-cart__subtotal {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	margin-bottom: 0.9rem;
}
.hif-side-cart__subtotal-label {
	font-weight: 600;
	color: var(--wp--preset--color--contrast);
}
.hif-side-cart__subtotal-value {
	font-size: 1.25rem;
	font-weight: 800;
	color: var(--wp--preset--color--forest);
}
.hif-side-cart__actions {
	display: flex;
	gap: 0.75rem;
}
.hif-side-cart__btn {
	flex: 1 1 0;
	text-align: center;
	padding: 0.8rem 1rem;
	border-radius: var(--wp--custom--radius--pill, 999px);
	font-weight: 700;
	text-decoration: none;
	transition: background 0.15s ease, color 0.15s ease;
}
.hif-side-cart__btn--primary {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
}
.hif-side-cart__btn--primary:hover { background: var(--wp--preset--color--primary-dark); }
.hif-side-cart__btn--ghost {
	background: transparent;
	color: var(--wp--preset--color--forest);
	border: 2px solid var(--wp--preset--color--forest);
}
.hif-side-cart__btn--ghost:hover {
	background: var(--wp--preset--color--forest);
	color: var(--wp--preset--color--base);
}

@media (max-width: 480px) {
	.hif-side-cart { width: 100%; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
	* { scroll-behavior: auto !important; }
	.hif-side-cart,
	.hif-side-cart-overlay { transition: none !important; }
}

/* ============================================================
   Checkout (hif/checkout pattern, page-checkout template)
   Forest page · numbered step cards · saffron order summary
   ============================================================ */
.hif-checkout-page { margin: 0; }
.hif-checkout {
	background: var(--wp--preset--color--forest) url("../images/patterns/green-pattern.png") repeat;
	background-size: 50px;
	min-height: 60vh;
	padding: 0 var(--wp--preset--spacing--40) clamp(2.5rem, 5vw, 4.5rem);
	color: var(--wp--preset--color--base);
}

/* Top bar */
.hif-checkout__topbar {
	max-width: 1300px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	gap: 1rem;
	position: relative;
	padding: clamp(1.25rem, 2.5vw, 2rem) 0;
}
.hif-checkout__back {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px; height: 48px;
	border-radius: 12px;
	background: var(--wp--preset--color--cream);
	color: var(--wp--preset--color--primary);
	text-decoration: none;
	box-shadow: 0 4px 14px rgba(0,0,0,0.12);
	transition: transform 0.15s ease;
}
.hif-checkout__back:hover { transform: translateX(-2px); }
.hif-checkout__title {
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 500;
	font-size: clamp(1.4rem, 2.4vw, 2rem);
	color: var(--wp--preset--color--base);
	line-height: 1.1;
}
.hif-checkout__logo {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	height: 60px; width: 60px;
	border-radius: 10px;
	box-shadow: 0 4px 14px rgba(0,0,0,0.18);
	display: block;
}

/* Two-column grid */
.hif-checkout__grid {
	max-width: 1300px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1.45fr 1fr;
	gap: clamp(1.25rem, 2.5vw, 2rem);
	align-items: start;
}
/* Let grid tracks shrink below their content's min-width (prevents mobile overflow). */
.hif-checkout__form,
.hif-checkout__summary { min-width: 0; }

/* ---- Step cards ---- */
.hif-co-card {
	background: var(--wp--preset--color--base);
	border-radius: 18px;
	padding: clamp(1.25rem, 2.2vw, 1.9rem);
	box-shadow: 0 10px 30px rgba(0,0,0,0.10);
	color: var(--wp--preset--color--contrast);
}
.hif-co-card + .hif-co-card { margin-top: clamp(1rem, 2vw, 1.5rem); }
.hif-co-card__head {
	display: flex;
	align-items: flex-start;
	gap: 0.85rem;
	margin-bottom: 1.4rem;
}
.hif-co-step {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px; height: 30px;
	border-radius: 50%;
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	font-weight: 700;
	font-size: 0.95rem;
	margin-top: 2px;
}
.hif-co-card__title {
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 500;
	font-size: 1.3rem;
	color: var(--wp--preset--color--primary);
	line-height: 1.1;
}
.hif-co-card__sub { margin: 0.25rem 0 0; font-size: 0.92rem; color: var(--wp--preset--color--contrast-muted); }

/* ---- Fields ---- */
.hif-co-fields {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem 1.1rem;
}
.hif-co-field { display: flex; flex-direction: column; gap: 0.4rem; min-width: 0; }
.hif-co-field--full { grid-column: 1 / -1; }
.hif-co-field__label { font-size: 0.82rem; font-weight: 600; color: var(--wp--preset--color--contrast); }
.hif-co-input {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	background: #f6f2ea;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 10px;
	padding: 0 0.9rem;
	height: 50px;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.hif-co-input:focus-within {
	border-color: var(--wp--preset--color--primary);
	box-shadow: 0 0 0 3px rgba(194,24,91,0.12);
}
.hif-co-input input,
.hif-co-input select {
	flex: 1 1 auto;
	min-width: 0;
	border: 0;
	background: transparent;
	font: inherit;
	font-size: 0.95rem;
	color: var(--wp--preset--color--contrast);
	outline: none;
	height: 100%;
	appearance: none;
}
.hif-co-input input::placeholder { color: var(--wp--preset--color--contrast-muted); }
.hif-co-input__icon { flex: 0 0 auto; color: var(--wp--preset--color--contrast-muted); display: inline-flex; }
.hif-co-flag { font-size: 1.1rem; }
.hif-co-input.is-select { position: relative; }
.hif-co-input__chevron { flex: 0 0 auto; color: var(--wp--preset--color--contrast-muted); pointer-events: none; }

/* ---- Info notes ---- */
.hif-co-note {
	display: flex;
	gap: 0.8rem;
	margin-top: 1.3rem;
	padding: 0.9rem 1.1rem;
	background: color-mix(in srgb, var(--wp--preset--color--forest) 7%, white);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--forest) 18%, transparent);
	border-radius: 12px;
	color: var(--wp--preset--color--forest);
}
.hif-co-note__icon { flex: 0 0 auto; margin-top: 2px; }
.hif-co-note p { margin: 0; font-size: 0.86rem; line-height: 1.5; }
.hif-co-note strong { font-weight: 700; }

/* ---- Billing radios ---- */
.hif-co-radios { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.hif-co-radio {
	display: flex;
	align-items: flex-start;
	gap: 0.7rem;
	padding: 1rem 1.1rem;
	border: 1.5px solid var(--wp--preset--color--border);
	border-radius: 12px;
	cursor: pointer;
	transition: border-color 0.15s ease, background 0.15s ease;
}
.hif-co-radio input { position: absolute; opacity: 0; width: 0; height: 0; }
.hif-co-radio__dot {
	flex: 0 0 auto;
	width: 20px; height: 20px;
	border-radius: 50%;
	border: 2px solid var(--wp--preset--color--border);
	margin-top: 2px;
	position: relative;
	transition: border-color 0.15s ease;
}
.hif-co-radio.is-active,
.hif-co-radio:has(input:checked) {
	border-color: var(--wp--preset--color--primary);
	background: color-mix(in srgb, var(--wp--preset--color--primary) 6%, white);
}
.hif-co-radio.is-active .hif-co-radio__dot,
.hif-co-radio:has(input:checked) .hif-co-radio__dot { border-color: var(--wp--preset--color--primary); }
.hif-co-radio.is-active .hif-co-radio__dot::after,
.hif-co-radio:has(input:checked) .hif-co-radio__dot::after {
	content: "";
	position: absolute;
	inset: 3px;
	border-radius: 50%;
	background: var(--wp--preset--color--primary);
}
.hif-co-radio__text { display: flex; flex-direction: column; gap: 0.15rem; }
.hif-co-radio__text strong { font-size: 0.92rem; font-weight: 700; }
.hif-co-radio__text small { font-size: 0.8rem; color: var(--wp--preset--color--contrast-muted); }

/* ---- Payment tabs ---- */
.hif-co-pays { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.85rem; margin-bottom: 1.4rem; }
.hif-co-pay {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.2rem;
	min-height: 64px;
	padding: 0.6rem;
	background: var(--wp--preset--color--base);
	border: 1.5px solid var(--wp--preset--color--border);
	border-radius: 12px;
	cursor: pointer;
	font: inherit;
	text-align: center;
	transition: border-color 0.15s ease, background 0.15s ease;
}
.hif-co-pay.is-active {
	border-color: var(--wp--preset--color--primary);
	background: color-mix(in srgb, var(--wp--preset--color--primary) 6%, white);
}
.hif-co-pay__title { font-size: 0.9rem; font-weight: 600; color: var(--wp--preset--color--contrast); }
.hif-co-pay.is-active .hif-co-pay__title { color: var(--wp--preset--color--primary); }
.hif-co-pay__sub { font-size: 0.72rem; color: var(--wp--preset--color--contrast-muted); }
.hif-co-pay__mark {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 28px; height: 20px; font-size: 0.8rem; font-weight: 700;
}
.hif-co-pay__mark--g { color: #4285F4; }
.hif-co-pay__mark--upi { color: var(--wp--preset--color--secondary); font-size: 0.72rem; letter-spacing: 0.5px; }

/* ---- Save-card checkbox ---- */
.hif-co-check { display: flex; align-items: center; gap: 0.55rem; margin-top: 1rem; font-size: 0.88rem; cursor: pointer; }
.hif-co-check input { width: 18px; height: 18px; accent-color: var(--wp--preset--color--primary); }

/* ============ ORDER SUMMARY ============ */
.hif-checkout__summary { position: sticky; top: 1.5rem; }
.hif-co-summary {
	border-radius: 18px;
	overflow: hidden;
	box-shadow: 0 12px 34px rgba(0,0,0,0.16);
	background: var(--wp--preset--color--cream);
}
.hif-co-summary__head {
	margin: 0;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
	font-family: var(--wp--preset--font-family--display);
	font-weight: 500;
	font-size: 1.2rem;
	padding: 1rem 1.4rem;
}
.hif-co-summary__body { padding: 1.2rem 1.4rem 1.5rem; }

/* Product line */
.hif-co-line { display: flex; gap: 0.9rem; background: var(--wp--preset--color--base); border-radius: 14px; padding: 0.85rem; box-shadow: 0 4px 14px rgba(0,0,0,0.05); }
.hif-co-line__media img { width: 64px; height: 64px; border-radius: 10px; object-fit: cover; background: var(--wp--preset--color--cream); display: block; }
.hif-co-line__info { flex: 1 1 auto; min-width: 0; }
.hif-co-line__top { display: flex; justify-content: space-between; gap: 0.5rem; align-items: baseline; flex-wrap: wrap; }
.hif-co-line__name { margin: 0; min-width: 0; font-size: 0.98rem; font-weight: 700; color: var(--wp--preset--color--contrast); }
.hif-co-line__edit { flex: 0 0 auto; font-size: 0.8rem; font-weight: 600; color: var(--wp--preset--color--primary); text-decoration: none; white-space: nowrap; }
.hif-co-line__meta { margin: 0.25rem 0 0; font-size: 0.82rem; color: var(--wp--preset--color--contrast-muted); }
.hif-co-line__pref { margin: 0.3rem 0 0; font-size: 0.82rem; font-weight: 600; }
.hif-co-line__desc { margin: 0.2rem 0 0; font-size: 0.78rem; color: var(--wp--preset--color--contrast-muted); line-height: 1.4; }

.hif-co-subnote {
	margin: 0.7rem 0 1.1rem;
	padding: 0.6rem 0.85rem;
	background: color-mix(in srgb, var(--wp--preset--color--primary) 8%, white);
	border-radius: 10px;
	font-size: 0.8rem;
	color: var(--wp--preset--color--primary-dark);
	text-align: center;
}

/* Totals */
.hif-co-totals { margin: 0; }
.hif-co-totals__row { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 0.35rem 0; font-size: 0.92rem; }
.hif-co-totals__row dt { display: flex; align-items: center; gap: 0.5rem; color: var(--wp--preset--color--contrast); }
.hif-co-totals__row dd { margin: 0; font-weight: 600; text-align: right; }
.is-free { color: var(--wp--preset--color--success); font-weight: 700; }
.is-discount { color: var(--wp--preset--color--primary); }
.hif-co-pill {
	display: inline-block;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
	font-size: 0.68rem;
	font-weight: 700;
	padding: 0.1rem 0.5rem;
	border-radius: 999px;
}
.hif-co-totals__applied { margin: 0 0 0.4rem; font-size: 0.74rem; color: var(--wp--preset--color--primary); font-weight: 600; }
.hif-co-totals__row--grand {
	border-top: 1px solid var(--wp--preset--color--border);
	padding-top: 0.7rem;
	margin-top: 0.3rem;
	align-items: flex-start;
}
.hif-co-totals__row--grand dt { font-weight: 700; font-size: 1rem; }
.hif-co-totals__row--grand dd { line-height: 1.3; }
.hif-co-was { color: var(--wp--preset--color--contrast-muted); text-decoration: line-through; font-weight: 400; font-size: 0.85rem; }
.hif-co-now { color: var(--wp--preset--color--primary); font-weight: 700; font-size: 1.15rem; }
.hif-co-totals__row--grand small { color: var(--wp--preset--color--contrast-muted); font-weight: 400; font-size: 0.72rem; }

/* Free-delivery progress */
.hif-co-progress {
	margin: 1.1rem 0;
	padding: 0.9rem 1rem;
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 14px;
}
.hif-co-progress__head { display: flex; flex-direction: column; gap: 0.1rem; margin-bottom: 0.8rem; }
.hif-co-progress__head strong { font-size: 0.9rem; }
.hif-co-progress__hint { font-size: 0.76rem; color: var(--wp--preset--color--primary); }
.hif-co-progress__track { list-style: none; margin: 0; padding: 0; display: flex; justify-content: space-between; position: relative; }
.hif-co-progress__track::before {
	content: ""; position: absolute; top: 13px; left: 12%; right: 12%; height: 2px;
	background: var(--wp--preset--color--border);
}
.hif-co-progress__track li { display: flex; flex-direction: column; align-items: center; gap: 0.3rem; position: relative; z-index: 1; font-size: 0.72rem; color: var(--wp--preset--color--contrast-muted); }
.hif-co-progress__dot {
	display: inline-flex; align-items: center; justify-content: center;
	width: 26px; height: 26px; border-radius: 50%;
	background: var(--wp--preset--color--base);
	border: 2px solid var(--wp--preset--color--border);
	font-size: 0.78rem; font-weight: 700;
}
.hif-co-progress__track li.is-done .hif-co-progress__dot { background: var(--wp--preset--color--primary); border-color: var(--wp--preset--color--primary); color: var(--wp--preset--color--base); }
.hif-co-progress__foot { display: flex; justify-content: space-between; margin-top: 0.7rem; font-size: 0.72rem; color: var(--wp--preset--color--contrast-muted); }

/* Trust icons */
.hif-co-trust { list-style: none; margin: 1rem 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.5rem; }
.hif-co-trust li { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 0.35rem; font-size: 0.7rem; color: var(--wp--preset--color--contrast-muted); line-height: 1.25; }
.hif-co-trust__ico { font-size: 1.1rem; }

/* Place order */
.hif-co-place {
	width: 100%;
	border: 0;
	cursor: pointer;
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	font: inherit;
	font-weight: 700;
	font-size: 1.05rem;
	padding: 1rem;
	border-radius: 12px;
	transition: background 0.15s ease;
}
.hif-co-place:hover { background: var(--wp--preset--color--primary-dark); }
.hif-co-terms { margin: 0.8rem 0 0; font-size: 0.76rem; text-align: center; color: var(--wp--preset--color--contrast-muted); }
.hif-co-terms a { color: var(--wp--preset--color--primary); }
.hif-co-social { margin: 0.9rem 0 0; text-align: center; font-size: 0.82rem; color: var(--wp--preset--color--contrast); }
.hif-co-love { margin: 0.3rem 0 0; text-align: center; font-size: 0.82rem; font-weight: 600; color: var(--wp--preset--color--primary); }

/* Responsive */
@media (max-width: 980px) {
	.hif-checkout__grid { grid-template-columns: 1fr; }
	.hif-checkout__summary { position: static; order: -1; }
}
@media (max-width: 560px) {
	.hif-co-fields,
	.hif-co-radios,
	.hif-co-pays { grid-template-columns: 1fr; }
	.hif-co-trust { grid-template-columns: repeat(2, 1fr); }
	.hif-checkout__logo { display: none; }
}

/* ---------- Product quick view ---------- */
/* Hover-reveal trigger on the card image */
.hif-product-card__quickview {
	position: absolute;
	left: 50%;
	bottom: 12px;
	transform: translate(-50%, 8px);
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.5rem 1.05rem;
	border: none;
	cursor: pointer;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--primary);
	border-radius: var(--wp--custom--radius--pill, 999px);
	font-weight: 600;
	font-size: 0.85rem;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.2s ease, transform 0.2s ease;
}
.hif-product-card__media:hover .hif-product-card__quickview,
.hif-product-card__quickview:focus-visible {
	opacity: 1;
	transform: translate(-50%, 0);
	pointer-events: auto;
}
.hif-product-card__quickview:hover { background: var(--wp--preset--color--cream); }
/* Touch devices have no hover — keep it visible */
@media (hover: none) {
	.hif-product-card__quickview {
		opacity: 1;
		transform: translate(-50%, 0);
		pointer-events: auto;
	}
}

/* Overlay + modal shell */
.hif-qv-overlay {
	position: fixed;
	inset: 0;
	z-index: 10000;
	background: rgba(0, 0, 0, 0.55);
	opacity: 0;
	transition: opacity 0.25s ease;
}
.hif-qv-overlay.is-open { opacity: 1; }
body.hif-qv-open { overflow: hidden; }

.hif-qv-wrap {
	position: fixed;
	inset: 0;
	z-index: 10001;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 3.25rem 1rem 1rem;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.25s ease, visibility 0.25s ease;
}
.hif-qv-wrap.is-open { opacity: 1; visibility: visible; }

.hif-qv__close {
	position: absolute;
	top: 1rem;
	right: 1.25rem;
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.6rem 1.15rem;
	border: none;
	cursor: pointer;
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	border-radius: var(--wp--custom--radius--card, 8px);
	font-weight: 700;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
}
.hif-qv__close:hover { background: var(--wp--preset--color--primary-dark); }

.hif-qv {
	width: min(1080px, 100%);
	max-height: min(88vh, 920px);
	overflow-y: auto;
	border-radius: 16px;
	box-shadow: 0 30px 80px rgba(0, 0, 0, 0.4);
	transform: translateY(14px);
	transition: transform 0.25s ease;
}
.hif-qv-wrap.is-open .hif-qv { transform: none; }
.hif-qv__loading {
	margin: 0;
	padding: 5rem 2rem;
	text-align: center;
	font-weight: 600;
	color: var(--wp--preset--color--forest);
	background: var(--wp--preset--color--cream);
	border-radius: 16px;
}

/* Two-column card */
.hif-qv__card {
	display: grid;
	grid-template-columns: 5fr 6fr;
	border-radius: 16px;
	overflow: hidden;
}
.hif-qv__media {
	padding: 1.5rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
	background-color: var(--wp--preset--color--primary);
	background-image: url("../images/patterns/pink-pattern.png");
	background-size: 320px;
}
.hif-qv__media-main {
	background: var(--wp--preset--color--base);
	border-radius: 12px;
	overflow: hidden;
}
.hif-qv__img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}
.hif-qv__thumbs {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0.6rem;
}
.hif-qv__thumb img {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: 8px;
	background: var(--wp--preset--color--base);
}

.hif-qv__info {
	padding: 1.85rem;
	color: var(--wp--preset--color--contrast);
	background-color: var(--wp--preset--color--cream);
	background-image: url("../images/patterns/cream-pattern.jpg");
	background-size: 360px;
}
.hif-qv__title {
	margin: 0 0 0.5rem;
	font-size: clamp(1.4rem, 1.1rem + 1.2vw, 1.95rem);
	line-height: 1.2;
	color: var(--wp--preset--color--forest);
}
.hif-qv__desc { margin-bottom: 0.5rem; }
.hif-qv__desc p { margin: 0; }
.hif-qv__section {
	margin-top: 1.2rem;
	padding-top: 1.2rem;
	border-top: 1px solid rgba(27, 77, 62, 0.14);
}
.hif-qv__heading {
	margin: 0 0 0.85rem;
	font-size: 1.15rem;
	font-weight: 700;
	color: var(--wp--preset--color--forest);
}
.hif-qv__tiles {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(92px, 1fr));
	gap: 0.6rem;
}
.hif-qv__tile {
	padding: 0.6rem 0.45rem;
	text-align: center;
	background: var(--wp--preset--color--base);
	border: 1px solid rgba(194, 24, 91, 0.28);
	border-radius: 8px;
}
.hif-qv__tile-label {
	display: block;
	font-size: 0.72rem;
	font-weight: 700;
	color: var(--wp--preset--color--primary);
}
.hif-qv__tile-value {
	display: block;
	margin-top: 0.25rem;
	font-size: 0.85rem;
	font-weight: 600;
}
.hif-qv__ingredients p,
.hif-qv__heating p { margin: 0; line-height: 1.55; }
.hif-qv__allergens { margin: 0; font-weight: 600; }

@media (max-width: 860px) {
	.hif-qv__card { grid-template-columns: 1fr; }
	.hif-qv__media { padding: 1.1rem; }
}
@media (max-width: 560px) {
	.hif-qv-wrap { padding: 3.5rem 0.5rem 0.5rem; }
	.hif-qv__close { top: 0.6rem; right: 0.6rem; padding: 0.5rem 0.9rem; }
	.hif-qv__info { padding: 1.25rem; }
	.hif-qv__tiles { grid-template-columns: repeat(auto-fill, minmax(82px, 1fr)); }
}

/* ---------- Footer accordion (mobile ≤600px) ---------- */
@media (max-width: 600px) {
	.hif-footer__columns {
		grid-template-columns: 1fr;
		gap: 0;
	}
	.hif-footer__brand { margin-bottom: 1.4rem; }

	.hif-footer__col {
		border-top: 1px solid rgba(255, 255, 255, 0.18);
		padding: 0.95rem 0;
	}
	.hif-footer__col:last-child { border-bottom: 1px solid rgba(255, 255, 255, 0.18); }

	.hif-footer__col-title {
		margin: 0;
		display: flex;
		align-items: center;
		justify-content: space-between;
		cursor: pointer;
		-webkit-user-select: none;
		user-select: none;
	}
	.hif-footer__col-title::after {
		content: "";
		flex: 0 0 auto;
		width: 10px;
		height: 10px;
		margin-left: 1rem;
		border-right: 2px solid currentColor;
		border-bottom: 2px solid currentColor;
		transform: rotate(45deg);
		transition: transform 0.2s ease;
	}
	.hif-footer__col.is-open .hif-footer__col-title::after {
		transform: rotate(-135deg);
	}
	.hif-footer__col-title:focus-visible {
		outline: 2px solid var(--wp--preset--color--accent);
		outline-offset: 4px;
	}

	.hif-footer__links {
		max-height: 0;
		overflow: hidden;
		visibility: hidden;
		opacity: 0;
		margin-top: 0;
		transition: max-height 0.25s ease, opacity 0.2s ease, margin-top 0.2s ease, visibility 0.25s;
	}
	.hif-footer__col.is-open .hif-footer__links {
		max-height: 420px;
		visibility: visible;
		opacity: 1;
		margin-top: 0.9rem;
	}
	.hif-footer__links li + li { margin-top: 0.55rem; }
	.hif-footer__links a { font-size: 0.95rem; }
}

/* ============================================================
   Single product templates — Indian (pink) + British (forest)
   ============================================================ */
.hif-sp { color: var(--wp--preset--color--contrast); }
.hif-sp--indian {
	--sp-hero-bg: var(--wp--preset--color--cream);
	--sp-gallery-bg: var(--wp--preset--color--primary);
	--sp-text: var(--wp--preset--color--contrast);
	--sp-accent: var(--wp--preset--color--primary);
}
.hif-sp--british {
	--sp-hero-bg: var(--wp--preset--color--forest);
	--sp-gallery-bg: rgba(0, 0, 0, 0.16);
	--sp-text: var(--wp--preset--color--base);
	--sp-accent: var(--wp--preset--color--accent);
}

/* ---- Hero (gallery + summary) ---- */
.hif-sp__hero {
	background-color: var(--sp-hero-bg);
	background-image: url("../images/patterns/cream-pattern.jpg");
	background-size: 360px;
}
.hif-sp--indian .hif-sp__hero { background-image: url("../images/patterns/cream-pattern.jpg"); }
.hif-sp--british .hif-sp__hero { background-image: url("../images/patterns/green-pattern.png"); background-size: 60px; }
.hif-sp__hero-inner {
	max-width: 1300px;
	margin: 0 auto;
	padding: clamp(1.75rem, 4vw, 3.5rem) var(--wp--preset--spacing--40);
	display: grid;
	grid-template-columns: 1fr 1.05fr;
	gap: clamp(1.5rem, 3vw, 3rem);
	align-items: start;
}

/* Gallery */
.hif-sp__gallery {
	background: var(--sp-gallery-bg);
	background-image: url("../images/patterns/pink-pattern.png");
	background-size: 320px;
	border-radius: 18px;
	padding: clamp(1rem, 2vw, 1.5rem);
}
.hif-sp--british .hif-sp__gallery { background-image: none; }
.hif-sp__gallery-main { background: var(--wp--preset--color--base); border-radius: 12px; overflow: hidden; }
.hif-sp__gallery-img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; }
.hif-sp__thumbs {
	list-style: none; margin: 0.85rem 0 0; padding: 0;
	display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.6rem;
}
.hif-sp__thumbs img { display: block; width: 100%; aspect-ratio: 1/1; object-fit: cover; border-radius: 8px; background: var(--wp--preset--color--base); }

/* Summary */
.hif-sp__summary { color: var(--sp-text); }
.hif-sp__title {
	margin: 0 0 0.6rem;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.6rem, 1.2rem + 1.8vw, 2.4rem);
	line-height: 1.15;
	color: var(--sp-text);
}
.hif-sp__rating { margin-bottom: 0.75rem; font-size: 0.9rem; opacity: 0.95; }
.hif-sp__stars { letter-spacing: 1px; }
.hif-sp__star { color: rgba(127, 127, 127, 0.4); }
.hif-sp__star.is-on { color: var(--wp--preset--color--accent); }
.hif-sp__rating-count { margin-left: 0.4rem; opacity: 0.75; }
.hif-sp__price { margin: 0 0 1rem; display: flex; align-items: baseline; gap: 0.6rem; }
.hif-sp__price-now { font-size: 1.7rem; font-weight: 800; color: var(--sp-text); }
.hif-sp__price-was { font-size: 1.05rem; text-decoration: line-through; opacity: 0.55; }
.hif-sp__desc { margin: 0 0 1.1rem; font-size: 0.95rem; line-height: 1.6; opacity: 0.92; }
.hif-sp__desc p { margin: 0; }

.hif-sp__promise { list-style: none; margin: 0 0 1.5rem; padding: 0; display: grid; gap: 0.55rem; }
.hif-sp__promise li { display: flex; align-items: flex-start; gap: 0.6rem; font-size: 0.95rem; line-height: 1.4; }
.hif-sp__check {
	flex: 0 0 auto; width: 20px; height: 20px; margin-top: 1px; border-radius: 5px;
	background: var(--wp--preset--color--primary); position: relative;
}
.hif-sp__check::after {
	content: ""; position: absolute; left: 7px; top: 3px; width: 5px; height: 10px;
	border: solid var(--wp--preset--color--base); border-width: 0 2px 2px 0; transform: rotate(45deg);
}

/* Purchase options */
.hif-sp__options { border: 0; margin: 0 0 1.5rem; padding: 0; display: grid; gap: 0.85rem; }
.hif-sp__options--bundle { grid-template-columns: 1fr 1fr; }
.hif-sp__options-title { padding: 0; margin: 0 0 0.5rem; font-weight: 700; font-size: 1.05rem; color: var(--sp-text); }
.hif-sp__option {
	position: relative; display: flex; flex-direction: column; gap: 0.25rem;
	background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast);
	border: 2px solid rgba(0, 0, 0, 0.12); border-radius: 12px;
	padding: 0.9rem 1rem 0.9rem 2.6rem; cursor: pointer;
}
.hif-sp__option input { position: absolute; left: 0.9rem; top: 1rem; accent-color: var(--wp--preset--color--primary); }
.hif-sp__option.is-selected { border-color: var(--wp--preset--color--primary); box-shadow: 0 0 0 3px rgba(194, 24, 91, 0.12); }
.hif-sp__option-head, .hif-sp__option-main { font-weight: 700; }
.hif-sp__option-price { font-weight: 800; color: var(--wp--preset--color--primary); }
.hif-sp__option-sub, .hif-sp__option-main + .hif-sp__option-price { font-weight: 700; }
.hif-sp__option-sub { font-size: 0.82rem; color: var(--wp--preset--color--contrast-muted); }
.hif-sp__option-tag {
	display: inline-block; margin-left: 0.4rem; padding: 0.1rem 0.5rem; border-radius: 999px;
	background: var(--wp--preset--color--accent); color: var(--wp--preset--color--contrast);
	font-size: 0.68rem; font-weight: 700; vertical-align: middle;
}

/* Buy row */
.hif-sp__buy { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; }
.hif-sp__qty { display: inline-flex; align-items: center; gap: 0.5rem; }
.hif-sp__qty-input {
	width: 3rem; text-align: center; font-weight: 700; font-size: 1rem;
	border: 2px solid rgba(0, 0, 0, 0.15); border-radius: 8px; padding: 0.5rem 0.25rem;
	background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast);
}
.hif-sp__add, .hif-sp__buynow {
	display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box;
	padding: 0.85rem 1.75rem; border-radius: 8px; font-weight: 700; text-decoration: none; cursor: pointer;
	transition: background 0.15s ease;
}
.hif-sp__add { background: var(--wp--preset--color--primary); color: var(--wp--preset--color--base); flex: 1 1 auto; }
.hif-sp__add:hover { background: var(--wp--preset--color--primary-dark); }
.hif-sp__buynow { background: var(--wp--preset--color--accent); color: var(--wp--preset--color--contrast); }
.hif-sp__buynow:hover { background: #d99117; }
.hif-sp__soldout { font-weight: 700; color: var(--sp-text); }
.hif-sp__buy .added_to_cart { display: none; }

/* ---- Mid content wrapper ---- */
.hif-sp__inner { max-width: 1300px; margin: 0 auto; padding: clamp(2rem, 4vw, 3.5rem) var(--wp--preset--spacing--40); }
.hif-sp__section { margin-bottom: clamp(2rem, 4vw, 3.25rem); }
.hif-sp__section:last-child { margin-bottom: 0; }
.hif-sp__band-title, .hif-sp__section-title {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 500; color: var(--wp--preset--color--forest); margin: 0 0 1rem;
}
.hif-sp__band-title { text-align: center; font-size: clamp(1.6rem, 3vw, 2.3rem); }
.hif-sp__band-intro { text-align: center; max-width: 60ch; margin: 0 auto 1.75rem; opacity: 0.8; font-size: 0.95rem; }

/* Nutrition */
.hif-sp__nutrition {
	background: var(--wp--preset--color--forest); color: var(--wp--preset--color--base);
	border-radius: 16px; padding: clamp(1.5rem, 3vw, 2.25rem);
	background-image: url("../images/patterns/green-pattern.png"); background-size: 60px;
}
.hif-sp__nutrition-head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: 1.25rem; flex-wrap: wrap; }
.hif-sp__nutrition .hif-sp__section-title { color: var(--wp--preset--color--base); margin: 0; }
.hif-sp__nutrition-per { font-size: 0.85rem; opacity: 0.85; }
.hif-sp__nutri-tiles { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 0.85rem; }
.hif-sp__nutri-tile {
	background: rgba(255, 255, 255, 0.1); border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 12px; padding: 1rem 0.75rem; text-align: center;
}
.hif-sp__nutri-value { display: block; font-size: 1.35rem; font-weight: 800; }
.hif-sp__nutri-label { display: block; margin-top: 0.2rem; font-size: 0.8rem; opacity: 0.85; }

/* Details */
.hif-sp__details { display: grid; grid-template-columns: 1.6fr 1fr; gap: clamp(1.5rem, 3vw, 2.5rem); align-items: start; }
.hif-sp__details-title { margin: 1.25rem 0 0.5rem; font-size: 1.1rem; font-weight: 700; color: var(--wp--preset--color--forest); }
.hif-sp__details-main > .hif-sp__details-title:first-child { margin-top: 0; }
.hif-sp__ingredients p, .hif-sp__heating p { margin: 0; line-height: 1.6; }
.hif-sp__allergens { margin: 0; font-weight: 600; }
.hif-sp__love {
	background: var(--wp--preset--color--primary); color: var(--wp--preset--color--base);
	border-radius: 16px; padding: 1.5rem; background-image: url("../images/patterns/pink-pattern.png"); background-size: 200px;
}
.hif-sp__love-title { margin: 0 0 1rem; font-size: 1.2rem; }
.hif-sp__love ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.9rem; }
.hif-sp__love li { display: flex; flex-direction: column; }
.hif-sp__love strong { font-weight: 700; }
.hif-sp__love span { font-size: 0.85rem; opacity: 0.9; }

/* Google reviews */
.hif-sp__google { background: var(--wp--preset--color--accent); border-radius: 16px; padding: clamp(1.5rem, 3vw, 2.25rem); background-image: url("../images/patterns/yellow-pattern.png"); background-size: 50px; }
.hif-sp__google .hif-sp__band-title { color: var(--wp--preset--color--forest); }
.hif-sp__google-grid { display: grid; grid-template-columns: 0.8fr 1fr 1fr auto; gap: 1rem; align-items: stretch; }
.hif-sp__google-rating, .hif-sp__google-card { background: var(--wp--preset--color--base); border-radius: 12px; padding: 1.1rem; }
.hif-sp__google-rating { display: flex; flex-direction: column; gap: 0.25rem; justify-content: center; }
.hif-sp__google-logo { font-weight: 700; color: var(--wp--preset--color--forest); }
.hif-sp__google-score { font-size: 1.8rem; font-weight: 800; }
.hif-sp__google-stars, .hif-sp__google-cardstars { color: #f5b301; }
.hif-sp__google-count { font-size: 0.78rem; color: var(--wp--preset--color--contrast-muted); }
.hif-sp__google-card blockquote { margin: 0.5rem 0; font-size: 0.85rem; line-height: 1.5; }
.hif-sp__google-card figcaption { font-weight: 700; font-size: 0.85rem; }
.hif-sp__google-cta {
	display: inline-flex; align-items: center; justify-content: center; align-self: center;
	background: var(--wp--preset--color--primary); color: var(--wp--preset--color--base);
	font-weight: 700; text-decoration: none; padding: 0.85rem 1.5rem; border-radius: 8px; white-space: nowrap;
}

/* Your meals your way */
.hif-sp__yourway-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
.hif-sp__yourway-card { border-radius: 16px; padding: 1.75rem; color: var(--wp--preset--color--base); }
.hif-sp__yourway-card--build { background: var(--wp--preset--color--primary); background-image: url("../images/patterns/pink-pattern.png"); background-size: 200px; }
.hif-sp__yourway-card--sub { background: var(--wp--preset--color--accent); color: var(--wp--preset--color--contrast); background-image: url("../images/patterns/yellow-pattern.png"); background-size: 60px; }
.hif-sp__yourway-card h3 { margin: 0 0 0.5rem; font-size: 1.3rem; }
.hif-sp__yourway-card p { margin: 0 0 1.1rem; font-size: 0.9rem; line-height: 1.5; }
.hif-sp__yourway-btn { display: inline-flex; background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast); font-weight: 700; text-decoration: none; padding: 0.75rem 1.5rem; border-radius: 8px; }

/* Cross-sell reuses .hif-product-scroller */
.hif-sp__cross .hif-product-scroller__track > * { flex-basis: 240px; }

@media (max-width: 900px) {
	.hif-sp__hero-inner { grid-template-columns: 1fr; }
	.hif-sp__details { grid-template-columns: 1fr; }
	.hif-sp__google-grid { grid-template-columns: 1fr 1fr; }
	.hif-sp__google-cta { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
	.hif-sp__options--bundle { grid-template-columns: 1fr; }
	.hif-sp__google-grid { grid-template-columns: 1fr; }
	.hif-sp__yourway-grid { grid-template-columns: 1fr; }
	.hif-sp__buy { gap: 0.6rem; }
	.hif-sp__add, .hif-sp__buynow { flex: 1 1 100%; }
	.hif-sp__cross .hif-product-scroller__track > * { flex-basis: 64vw; }
}
