/**
 * 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.
 */

/* In-page anchor jumps (e.g. hero "View Menu First" → #hif-meal-bowls) glide.
   The reduced-motion block below forces this back to `auto`. */
html { scroll-behavior: smooth; }

/* ---------- 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; }

/* Drop WP core's default vertical padding on backgrounded groups
   (core emits `:where(.wp-block-group.has-background){padding:1.25em 2.25em}`).
   Sections that need vertical padding set it explicitly inline / via their own
   class, which still wins over this class-specificity override. */
.wp-block-group.has-background {
	padding-top: 0;
	padding-bottom: 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: 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: 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, 25px);
	background: url("../images/patterns/border.png") repeat-x center top / auto var(--wp--custom--border--height, 25px);
}

/* 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 — uses the SAME compositing approach as the
	   filter / side-cart drawers so the motion is identical: the scrim animates
	   `opacity` on a dedicated layer (the container's ::before — GPU-composited, no
	   per-frame repaint) and the panel animates `transform`. The container itself
	   stays transparent and never animates background-color (that forced a
	   full-screen repaint each frame, which was the real cause of the jank). The
	   container stays rendered when closed so it slides smoothly both ways. */
	.hif-header__mobile-nav .wp-block-navigation__responsive-container {
		position: fixed;
		inset: 0;
		display: flex !important;
		flex-direction: row;
		justify-content: flex-end;
		align-items: stretch;
		width: 100%;
		height: 100%;
		background-color: transparent !important;
		visibility: hidden;
		pointer-events: none;
		transition: visibility 0.3s ease;
		z-index: 1000;
	}
	/* Scrim layer — opacity only (composited), matches .hif-filter-scrim. */
	.hif-header__mobile-nav .wp-block-navigation__responsive-container::before {
		content: "";
		position: absolute;
		inset: 0;
		z-index: 0;
		background: rgba(0, 0, 0, 0.5);
		opacity: 0;
		transition: opacity 0.3s ease;
		will-change: opacity;
	}
	.hif-header__mobile-nav .wp-block-navigation__responsive-container.is-menu-open {
		visibility: visible;
		pointer-events: auto;
		/* Kill core's own fade-in keyframes — it ran on top of our slide. */
		animation: none !important;
	}
	.hif-header__mobile-nav .wp-block-navigation__responsive-container.is-menu-open::before {
		opacity: 1;
	}
	/* The sliding white panel — above the scrim layer. */
	.hif-header__mobile-nav .wp-block-navigation__responsive-close {
		position: relative;
		z-index: 1;
		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;
		transform: translateX(100%);
		transition: transform 0.3s ease;
		will-change: transform;
	}
	.hif-header__mobile-nav .is-menu-open .wp-block-navigation__responsive-close {
		transform: translateX(0);
	}
	/* 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 .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 .wp-block-navigation-item__content,
	.hif-header__mobile-nav .wp-block-navigation__container a {
		color: var(--wp--preset--color--forest) !important;
	}
	.hif-header__mobile-nav .wp-block-navigation-item__content:hover,
	.hif-header__mobile-nav .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 .wp-block-navigation__responsive-container-close {
		color: var(--wp--preset--color--forest);
	}
}

@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, 25px);
	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, 25px);
}

.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;
	justify-content: center;
	gap: 1.25rem;
	margin: var(--wp--preset--spacing--50) 0 var(--wp--preset--spacing--40);
}

.hif-footer__tagline-rule {
	flex: 0 1 140px;
	height: 2px;
	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%;
		flex: 0 1 2px;
	}

	.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: 25px;
	background: url("../images/patterns/border.png") repeat-x center / auto 25px;
}

.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: 6px;
	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: 25px;
	background: url("../images/patterns/border.png") repeat-x center / auto 25px;
}
.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;
}
/* Infinite auto-rotating carousel: 4 cards across on desktop. JS (why-choose.js)
   clones the set both sides and drives a transform track; it adds `.is-live` and
   sets each item's width. Without JS this degrades to a plain horizontal scroll.
   Arrows are nav controls (siblings of the viewport, so they aren't clipped). */
.hif-why-choose__carousel {
	position: relative;
}
.hif-why-choose__viewport {
	overflow-x: auto; /* no-JS fallback */
	scrollbar-width: none;
}
.hif-why-choose__viewport::-webkit-scrollbar { display: none; }
.hif-why-choose__carousel.is-live .hif-why-choose__viewport { overflow: hidden; }
.hif-why-choose__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: 0;
}
.hif-why-choose__carousel.is-live .hif-why-choose__grid {
	transition: transform 0.5s ease;
	will-change: transform;
}
.hif-why-choose__item {
	flex: 0 0 25%; /* 4 across; JS overrides width per breakpoint. border-box = padding included */
	box-sizing: border-box;
	padding: 0 clamp(1rem, 2vw, 2rem);
	text-align: center;
	position: relative;
}
.hif-why-choose__arrow {
	position: absolute;
	top: 38%;
	transform: translateY(-50%);
	z-index: 2;
	width: 44px;
	height: 44px;
	display: grid;
	place-items: center;
	border: 1px solid rgba(194, 24, 91, 0.25);
	border-radius: 999px;
	background: var(--wp--preset--color--base, #fff);
	color: var(--wp--preset--color--primary);
	font-size: 1.7rem;
	line-height: 1;
	cursor: pointer;
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
	transition: background 0.15s, color 0.15s, opacity 0.15s;
}
.hif-why-choose__arrow:hover { background: var(--wp--preset--color--primary); color: #fff; }
.hif-why-choose__arrow:focus-visible { outline: 2px solid var(--wp--preset--color--forest); outline-offset: 2px; }
.hif-why-choose__arrow[hidden] { display: none; }
.hif-why-choose__arrow--prev { left: -10px; }
.hif-why-choose__arrow--next { right: -10px; }
.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__item { flex-basis: 50%; } /* 2 across (no-JS fallback) */
}
@media (max-width: 560px) {
	.hif-why-choose__item { flex-basis: 100%; } /* 1 across */
	.hif-why-choose__item + .hif-why-choose__item::before { display: none; }
	.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: 25px;
	background: url("../images/patterns/border.png") repeat-x center / auto 25px;
}
.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);
	/* Anchor target for the hero "View Menu First" jump — clear the sticky header
	   (its real height is published as --hif-header-h by header-nav.js). */
	scroll-margin-top: var(--hif-header-h, 180px);
}
.hif-meal-bowls__border {
	height: 25px;
	background: url("../images/patterns/border.png") repeat-x center / auto 25px;
}
.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;
	align-items: stretch;
	gap: 0;
	list-style: none;
	margin: 0;
	padding: 0;
}
/* Faint hairline divider centred in the gap between each day. */
.hif-meal-bowls__days-list > li {
	position: relative;
	display: flex;
	align-items: center;
	padding-inline: clamp(1.25rem, 3.5vw, 3rem);
}
.hif-meal-bowls__days-list > li + li::before {
	content: "";
	position: absolute;
	inset-block: 0.6rem;
	inset-inline-start: 0;
	width: 1px;
	background: rgba(255, 255, 255, 0.22);
}
/* Inactive day: plain two-line text, no card. */
.hif-meal-bowls__day-pill {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.25rem;
	padding: 0.5rem 0.75rem;
	border: 0;
	border-radius: var(--wp--custom--radius--product, 16px);
	background: transparent;
	color: var(--wp--preset--color--base);
	text-decoration: none;
	transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}
.hif-meal-bowls__day-pill:hover {
	background: rgba(255, 255, 255, 0.08);
}
/* Active day: solid saffron card that pops above the row. */
.hif-meal-bowls__day-pill.is-active,
.hif-meal-bowls__day-pill[aria-current="true"] {
	padding: 1.3rem 2rem;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
	box-shadow: 0 10px 24px rgba(0, 0, 0, 0.18);
}
.hif-meal-bowls__day-pill.is-active:hover,
.hif-meal-bowls__day-pill[aria-current="true"]:hover {
	background: var(--wp--preset--color--accent);
}
.hif-meal-bowls__day-label { font-weight: 600; font-size: clamp(1.15rem, 1.6vw, 1.45rem); line-height: 1.1; }
.hif-meal-bowls__day-date { font-weight: 500; font-size: clamp(1rem, 1.4vw, 1.2rem); line-height: 1.1; }

/* 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 #CECECE;
	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.4rem;
	padding: 0.34rem 0.7rem;
	border-radius: 6px;
	font-size: 0.82rem;
	font-weight: 600;
	line-height: 1;
	color: var(--wp--preset--color--contrast);
	background: var(--wp--preset--color--cream);
	border: 1.5px solid var(--wp--preset--color--border);
	box-shadow: 0 2px 8px rgba(42, 33, 24, 0.14);
}
.hif-pbadge .hif-icon { flex: 0 0 auto; }
/* Bordered pills with dark text + colourful filled icons — match Figma. */
.hif-pbadge--bestseller { background: #FCEFD0; border-color: #F3C13B; }
.hif-pbadge--spicy { background: #F8DAD8; border-color: #E79C97; }
.hif-pbadge--nutfree { background: #FBEAD7; border-color: #F3C13B; }

/* 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__footer p{
	margin: 0;
}
.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; }

/* "More Info" link (homepage cards — no inline add-to-cart, per Figma) */
.hif-product-card__more {
	flex: 0 0 auto;
	font-family: var(--wp--preset--font-family--body);
	font-size: 1.0625rem;
	font-weight: 600;
	color: var(--wp--preset--color--primary);
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-thickness: 1.5px;
	white-space: nowrap;
	transition: color 0.15s ease;
}
.hif-product-card__more:hover,
.hif-product-card__more:focus-visible {
	color: var(--wp--preset--color--primary-dark);
}

/* Add button */
.hif-product-card__add {
	border: none;
	cursor: pointer;
	padding: 0.3rem 1.6rem;
	border-radius: 6px;
	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;
	width: 40px
}
.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: 20px;
	height: 20px;
	border: none;
	cursor: pointer;
	border-radius: 2px;
	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__days-list > li { flex: 0 0 auto; padding-inline: 1.1rem; }
	.hif-meal-bowls__day-pill { padding: 0.4rem 0.6rem; }
	.hif-meal-bowls__day-pill.is-active,
	.hif-meal-bowls__day-pill[aria-current="true"] { padding: 1rem 1.4rem; }
	/* 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: auto; 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__head-actions { display: inline-flex; align-items: center; gap: 0.5rem; }

/* Mobile-only filter chrome — hidden on desktop, shown as a drawer ≤900px. */
.hif-shop__filter-cell,
.hif-filter-scrim,
.hif-filter__close,
.hif-filter__apply { display: none; }

.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: 6px;
	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-shop__grid { grid-template-columns: repeat(2, 1fr); }

	/* The sidebar collapses to a compact trigger; the form becomes an off-canvas
	   drawer (mirrors the header mobile-nav drawer idiom). */
	.hif-shop__sidebar { position: static; }

	/* Toolbar: count on its own row, then "Filters" + sort side by side.
	   Both controls are flex cells so their single child fills the cell — equal
	   height and aligned tops. */
	.hif-shop__toolbar {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 0.75rem;
		align-items: stretch;
	}
	.hif-shop__count { grid-column: 1 / -1; }
	.hif-shop__filter-cell { display: flex; }
	.hif-shop__sortform { display: flex; width: 100%; margin: 0; }
	.hif-shop__sortform select.hif-shop__sort,
	.hif-shop__toolbar > .hif-shop__sort { width: 100%; }

	.hif-filter-toggle {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 100%;
		gap: 0.5rem;
		background: var(--wp--preset--color--base);
		border: 2px solid var(--wp--preset--color--forest-dark);
		border-radius: 6px;
		padding: 0.7rem 1.15rem;
		font-family: var(--wp--preset--font-family--body);
		font-size: 1rem;
		font-weight: 600;
		color: var(--wp--preset--color--contrast);
		cursor: pointer;
	}
	.hif-filter-toggle__badge {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-width: 1.4rem;
		height: 1.4rem;
		padding: 0 0.4rem;
		background: var(--wp--preset--color--primary);
		color: var(--wp--preset--color--base);
		border-radius: 999px;
		font-size: 0.78rem;
		font-weight: 700;
		line-height: 1;
	}

	.hif-filter-scrim {
		display: block;
		position: fixed;
		inset: 0;
		background: rgba(0, 0, 0, 0.5);
		z-index: 1000;
		opacity: 0;
		visibility: hidden;
		transition: opacity 0.3s ease, visibility 0.3s ease;
		will-change: opacity;
	}
	.hif-filter-scrim.is-open { opacity: 1; visibility: visible; }

	/* Drawer panel slides in from the left, scrolls internally. */
	.hif-filter {
		position: fixed;
		top: 0;
		left: 0;
		bottom: 0;
		width: min(86vw, 360px);
		z-index: 1001;
		border: none;
		border-radius: 0;
		overflow-y: auto;
		overscroll-behavior: contain;
		transform: translateX(-100%);
		transition: transform 0.3s ease;
		will-change: transform;
		box-shadow: 0 0 40px rgba(0, 0, 0, 0.3);
		display: flex;
		flex-direction: column;
	}
	.hif-filter.is-open { transform: translateX(0); }

	/* Sticky head + apply bar so they stay pinned while facets scroll. */
	.hif-filter__head {
		position: sticky;
		top: 0;
		z-index: 2;
	}
	.hif-filter__close {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		padding: 0;
		border: none;
		background: none;
		color: var(--wp--preset--color--contrast);
		cursor: pointer;
		line-height: 0;
	}
	.hif-filter__group { padding-block: 1.25rem; }
	.hif-filter__apply {
		display: block;
		position: sticky;
		bottom: 0;
		margin-top: auto;
		padding: 0.9rem 1.25rem;
		background: var(--wp--preset--color--base);
		border-top: 1px solid var(--wp--preset--color--border);
	}
	.hif-filter__apply-btn {
		width: 100%;
		border: none;
		cursor: pointer;
		border-radius: 6px;
		padding: 0.9rem 1rem;
		background: var(--wp--preset--color--primary);
		color: var(--wp--preset--color--base);
		font-family: var(--wp--preset--font-family--body);
		font-size: 1.05rem;
		font-weight: 600;
	}
	.hif-filter__apply-btn:hover { background: var(--wp--preset--color--primary-dark); }

	/* Lock background scroll while the drawer is open. */
	body.hif-filter-open { overflow: hidden; }
}
@media (max-width: 600px) {
	.hif-shop__grid { grid-template-columns: 1fr; gap: var(--wp--preset--spacing--30); }
	/* Keep "Filters" + sort side by side (the ≤900px toolbar grid); just tighten. */
	.hif-shop__toolbar { gap: 0.6rem; }
}

/* ---- 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: 25px; background: url("../images/patterns/border.png") repeat-x center / auto 25px; }
.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: auto;
	}
}

/* ---------- 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: 25px; background: url("../images/patterns/border.png") repeat-x center / auto 25px; }
.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: auto; 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: 25px; background: url("../images/patterns/border.png") repeat-x center / auto 25px; }
.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 comparison grid */
.hif-diff__grid {
	display: grid;
	grid-template-columns: 1.15fr 1.35fr 1fr 1fr 1fr;
	font-size: 0.9rem;
	color: var(--wp--preset--color--contrast);
	align-items: stretch;
}

/* ---- Header band (saffron) ---- */
.hif-diff__head {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	gap: 0.1rem;
	padding: 1.25rem;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
	font-weight: 600;
	line-height: 1.25;
}
.hif-diff__head--attr {
	align-items: flex-start;
	text-align: left;
	border-radius: 16px 0 0 0;
}
.hif-diff__head--comp:last-child {
	border-radius: 0 16px 0 0;
}

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

/* Attribute label column — light grey, dark bold labels */
.hif-diff__cell--attr {
	background: #F4F3F1;
	justify-content: flex-start;
	text-align: left;
	font-weight: 600;
	color: var(--wp--preset--color--contrast);
}
.hif-diff__cell--attr.is-last {
	border-bottom: 0;
	border-radius: 0 0 0 16px;
}

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

/* ===== HIF column = floating pink card ===== */
/* Header — solid pink, pops up above the saffron band */
.hif-diff__head--hif {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	border-radius: 18px 18px 0 0;
	margin-top: -16px;
	padding: 1.6rem 1.25rem 1.2rem;
	position: relative;
	z-index: 2;
	box-shadow: 0 -6px 18px rgba(0, 0, 0, 0.12), -6px 0 18px rgba(0, 0, 0, 0.05), 6px 0 18px rgba(0, 0, 0, 0.05);
}
.hif-diff__head--hif strong { font-size: 1rem; }
.hif-diff__head-sub {
	font-weight: 400;
	font-size: 0.78rem;
	opacity: 0.85;
}

/* Body cells — light pink, pink title, grey sub */
.hif-diff__cell--hif {
	background: #FCE7EF;
	justify-content: flex-start;
	text-align: left;
	gap: 0.7rem;
	border-bottom: 1px solid rgba(194, 24, 91, 0.10);
	position: relative;
	z-index: 2;
	box-shadow: -6px 0 18px rgba(0, 0, 0, 0.05), 6px 0 18px rgba(0, 0, 0, 0.05);
}
.hif-diff__cell--hif.is-last {
	border-bottom: 0;
	border-radius: 0 0 18px 18px;
	margin-bottom: -16px;
	padding-bottom: calc(1.2rem + 16px);
	box-shadow: -6px 0 18px rgba(0, 0, 0, 0.05), 6px 6px 18px rgba(0, 0, 0, 0.08), 0 8px 18px rgba(0, 0, 0, 0.10);
}

/* HIF cell content — white icon circle + pink title + grey sub */
.hif-diff__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	min-width: 42px;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--primary);
	border-radius: 50%;
	box-shadow: 0 2px 6px rgba(194, 24, 91, 0.12);
}
.hif-diff__hif-text {
	display: flex;
	flex-direction: column;
	gap: 0.1rem;
}
.hif-diff__hif-title { font-weight: 700; color: var(--wp--preset--color--primary); }
.hif-diff__hif-sub { font-size: 0.8rem; color: var(--wp--preset--color--contrast-muted); }

/* 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: 16px 16px 0 0;
		margin-top: 0;
		box-shadow: none;
	}
	.hif-diff__head--comp:last-child { border-radius: 0; }
	.hif-diff__cell--hif { box-shadow: none; }
	.hif-diff__cell--hif.is-last {
		margin-bottom: 0;
		padding-bottom: 1.2rem;
		box-shadow: none;
	}
	.hif-diff__cell--comp {
		padding: 0.75rem 1.25rem;
		font-size: 0.82rem;
	}
}

/* ---------- 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: 25px; background: url("../images/patterns/border.png") repeat-x center / auto 25px; }
.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,
.hif-transform__card--gifts .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: 25px; background: url("../images/patterns/border.png") repeat-x center / auto 25px; }
.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;
}

/* 4-column × 2-row grid of square (1:1) photo tiles. */
.hif-insta__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: clamp(0.75rem, 1.6vw, 1.25rem);
	margin: 0 auto 1.75rem;
}
.hif-insta__item {
	position: relative;
	display: block;
	aspect-ratio: 1 / 1;
	border-radius: 12px;
	overflow: hidden;
}
.hif-insta__item img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s ease;
}
.hif-insta__item:hover img,
.hif-insta__item:focus-visible img { transform: scale(1.06); }

/* Hover/focus: forest scrim + white Instagram icon. */
.hif-insta__overlay {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--wp--preset--color--base);
	background: rgba(27, 77, 62, 0.55);
	opacity: 0;
	transition: opacity 0.25s ease;
	pointer-events: none;
}
.hif-insta__overlay svg { width: clamp(34px, 4vw, 46px); height: auto; transform: scale(0.8); transition: transform 0.25s ease; }
.hif-insta__item:hover .hif-insta__overlay,
.hif-insta__item:focus-visible .hif-insta__overlay { opacity: 1; }
.hif-insta__item:hover .hif-insta__overlay svg,
.hif-insta__item:focus-visible .hif-insta__overlay svg { transform: scale(1); }

.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) {
	/* Drop to 2 columns on narrow screens. */
	.hif-insta__grid { grid-template-columns: repeat(2, 1fr); max-width: 460px; gap: 0.6rem; }
}

/* ---------- 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: 25px; background: url("../images/patterns/border.png") repeat-x center / auto 25px; }
.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: rgb(73 117 107);
	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: 220px; height: 220px;
	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: 200px; height: 200px;
	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: 6px;
	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 .wp-block-buttons { gap: 1rem; }
.hif-404__search .wp-block-search__inside-wrapper {
	background: #fff;
	border: 1px solid rgba(0,0,0,0.1);
	border-radius: 6px;
	max-width: 650px;
	width: 100%;
	margin: 0 auto;
}
.hif-404__search { max-width: 650px; margin: 0 auto; width: 100%;}
.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; }

/* Mobile: the band's root-padding-aware inset + the inner group's own inline
   horizontal padding stacked to ~54px each side. Collapse to a single ~16px
   gutter (band only) so the accordion cards aren't cramped. `!important` beats
   the inner group's inline padding + core's root padding. */
@media (max-width: 600px) {
	.hif-faq { padding-left: 1rem !important; padding-right: 1rem !important; }
	.hif-faq__inner { padding-left: 0 !important; padding-right: 0 !important; }
}

.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);
}
/* Open state: colour only — NO layout change on the summary, so opening doesn't
   jump. The divider + spacing live on the answer <p> (inside the animated area). */
.hif-faq .wp-block-details[open] summary {
	color: var(--wp--preset--color--base);
}
.hif-faq .wp-block-details[open] p {
	color: var(--wp--preset--color--cream);
	margin: 0;
	padding-top: 0.95rem;
	border-top: 1px solid rgba(255, 255, 255, 0.3);
	line-height: 1.6;
}

/* Smooth open/close. Animate the content height from 0 → auto. `interpolate-size:
   allow-keywords` (scoped to the band) is what lets `height: auto` be a
   transition endpoint; `transition-behavior: allow-discrete` keeps the content
   painted through the collapse (it has `content-visibility` toggled by the UA).
   An opacity fade rides along. (The summary no longer changes layout on open, so
   there's no jump — see the [open] rules above.) */
.hif-faq { interpolate-size: allow-keywords; }
.hif-faq .wp-block-details::details-content {
	height: 0;
	overflow: hidden;
	opacity: 0;
	transition:
		height 0.35s cubic-bezier(0.22, 0.61, 0.36, 1),
		opacity 0.3s ease,
		content-visibility 0.35s;
	transition-behavior: allow-discrete;
}
.hif-faq .wp-block-details[open]::details-content {
	height: auto;
	opacity: 1;
}
@media (prefers-reduced-motion: reduce) {
	.hif-faq .wp-block-details::details-content { transition: none; }
}

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

/* ---------- 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;
}
/* Funnel dish selections under a side-cart line (Plan / Preference / dishes …). */
.hif-side-cart__meta {
	margin: 0.5rem 0 0;
	padding: 0.5rem 0.6rem;
	background: rgba(42, 33, 24, 0.04);
	border-radius: 8px;
	font-size: 0.76rem;
	line-height: 1.4;
	color: var(--wp--preset--color--contrast);
}
.hif-side-cart__meta-row { display: flex; gap: 0.35rem; }
.hif-side-cart__meta-row + .hif-side-cart__meta-row { margin-top: 0.2rem; }
.hif-side-cart__meta dt { flex: 0 0 auto; font-weight: 700; margin: 0; }
.hif-side-cart__meta dd { margin: 0; min-width: 0; opacity: 0.85; }
.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: 6px;
	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: 6px;
	font-weight: 600;
	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; }
/* Native date picker — keep the calendar indicator visible + clickable. */
.hif-co-input--date input { cursor: pointer; }
.hif-co-input--date input::-webkit-calendar-picker-indicator { cursor: pointer; opacity: 0.6; margin-inline-start: 0.4rem; }
.hif-co-input--date input::-webkit-calendar-picker-indicator:hover { opacity: 0.9; }

/* ---- 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(auto-fit, minmax(160px, 1fr)); gap: 0.85rem; margin-bottom: 1.4rem; }
.hif-co-pay {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.25rem;
	min-height: 64px;
	padding: 0.6rem 0.8rem;
	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 input { position: absolute; opacity: 0; width: 0; height: 0; }
.hif-co-pay.is-active,
.hif-co-pay:has(input:checked) {
	border-color: var(--wp--preset--color--primary);
	background: color-mix(in srgb, var(--wp--preset--color--primary) 6%, white);
}
.hif-co-pay:focus-within { outline: 2px solid var(--wp--preset--color--primary); outline-offset: 2px; }
.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,
.hif-co-pay:has(input:checked) .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__icon { display: inline-flex; align-items: center; gap: 0.3rem; }
.hif-co-pay__icon img { max-height: 22px; width: auto; }

/* ---- Selected gateway's own fields / description ---- */
.hif-co-pay-fields {
	margin: -0.4rem 0 1.2rem;
	padding: 1rem 1.1rem;
	background: color-mix(in srgb, var(--wp--preset--color--primary) 4%, white);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 12px;
	font-size: 0.88rem;
	line-height: 1.55;
	color: var(--wp--preset--color--contrast-muted);
}
.hif-co-pay-fields[hidden] { display: none; }
.hif-co-pay-fields p { margin: 0 0 0.6rem; }
.hif-co-pay-fields p:last-child { margin-bottom: 0; }
.hif-co-pay-empty { margin: 0 0 1.2rem; font-size: 0.9rem; color: var(--wp--preset--color--contrast-muted); }

/* ---- Different-billing-address reveal ---- */
.hif-co-billing-fields { margin-top: 1.25rem; }
.hif-co-billing-fields[hidden] { display: none; }

/* ============ 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); margin-bottom:8px; }
.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; color: #444}
.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; color: var(--wp--preset--color--contrast);}
.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: 600;
	font-size: 1.05rem;
	padding: 1rem;
	border-radius: 6px;
	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; }
	/* Summary (with Place Order) sits AFTER the form steps so the flow reads
	   Delivery → Billing → Payment → review & place order. */
	.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: 6px;
	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;
	width: 60%;
    justify-content: center;
    max-width: 150px;
}
.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: 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: 1rem;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	width: 30px;
    height: 30px;
    line-height: 30px;
    border-radius: 50%;
    padding: 0;
    text-align: center;
    font-size: 23px;
    justify-content: center;
	border: none;
	cursor: pointer;
	background: #ff3728;
	color: var(--wp--preset--color--base);
	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 {
	position: relative;
	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: 50px;
}
.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(5, 1fr);
	gap: 0.6rem;
}
.hif-qv__thumb { cursor: pointer; }
.hif-qv__thumb img {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: 8px;
	/* background: var(--wp--preset--color--base); */
	border: 1px solid transparent;
	transition: border-color 0.15s ease;
}
.hif-qv__thumb.is-active img { border-color: rgba(255, 255, 255, 0.95); border: 1px solid #fff;}

.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: 50px;
}
.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);
}
/* Rating + price (mirrors the product hero) */
.hif-qv__rating { display: flex; align-items: center; gap: 0.55rem; margin: 0 0 0.5rem; font-size: 0.95rem; color: var(--wp--preset--color--contrast); }
.hif-qv__price { display: flex; align-items: baseline; gap: 0.6rem; margin: 0 0 0.75rem; }
.hif-qv__price-now { font-size: 1.5rem; font-weight: 800; color: var(--wp--preset--color--primary); }
.hif-qv__price-was { font-size: 1rem; text-decoration: line-through; color: var(--wp--preset--color--contrast-muted); }
.hif-qv__desc { margin-bottom: 1rem; }
.hif-qv__desc p { margin: 0; }

/* Buy row inside the modal — adapt the hero buy row to the cream panel:
   bordered qty box, solid-pink Add to Cart, saffron Buy Now. */
.hif-qv .hif-sp__buy { margin: 0 0 1.25rem; }
.hif-qv .hif-sp__qty { box-shadow: none; border: 1.5px solid rgba(42, 33, 24, 0.16); }
.hif-qv .hif-sp__add {
	background: var(--wp--preset--color--primary); color: var(--wp--preset--color--base);
	border: 0; box-shadow: 0 3px 12px rgba(194, 24, 91, 0.22);
}
.hif-qv .hif-sp__add:hover { background: var(--wp--preset--color--primary-dark); }
.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: 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); background: var(--wp--preset--color--cream); }
.hif-sp--indian {
	--sp-hero-bg: var(--wp--preset--color--cream);
	--sp-gallery-bg: var(--wp--preset--color--primary);
	--sp-text: #ffffff;
	--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: #ffffff;
	--sp-accent: var(--wp--preset--color--accent);
}

/* ---- Hero (gallery + summary) ---- */
.hif-sp__hero {
	background-color: var(--sp-hero-bg);
	background-image: url("../images/patterns/pink-pattern.png");
	background-size: 50px;
}
.hif-sp--indian .hif-sp__hero { background-image: url("../images/patterns/pink-pattern.png"); }
.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.4rem, 3.2vw, 2.8rem) var(--wp--preset--spacing--40) clamp(1.75rem, 4vw, 3.5rem);
	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 {
	display: block; width: 100%; position: relative; padding: 0; border: 0; cursor: zoom-in;
	background: var(--wp--preset--color--base); border-radius: 16px; overflow: hidden;
}
.hif-sp__gallery-img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; }
/* Product flag — reuse the .hif-pbadge pill, anchored top-left of the image. */
.hif-sp__gallery-main .hif-sp__flag { top: 0.9rem; left: 0.9rem; right: auto; }
/* Zoom affordance (bottom-right of the main image) */
.hif-sp__zoom {
	position: absolute; right: 0.9rem; bottom: 0.9rem; z-index: 2;
	display: inline-flex; align-items: center; justify-content: center;
	width: 38px; height: 38px; border-radius: 50%;
	background: rgba(255, 255, 255, 0.92); color: var(--wp--preset--color--contrast);
	box-shadow: 0 2px 8px rgba(42, 33, 24, 0.2); transition: background 0.15s ease;
}
.hif-sp__gallery-main:hover .hif-sp__zoom { background: #fff; }
/* Thumbnail strip — exactly 5 slots visible (20% each); 6+ scroll horizontally. */
.hif-sp__thumbs-wrap { position: relative; margin-top: 0.9rem; }
.hif-sp__thumbs {
	list-style: none; margin: 0; padding: 0;
	display: flex; gap: 0.6rem;
	overflow-x: auto; scroll-behavior: smooth; scroll-snap-type: x proximity;
	scrollbar-width: none;
}
.hif-sp__thumbs::-webkit-scrollbar { display: none; }
.hif-sp__thumb {
	flex: 0 0 calc((100% - 4 * 0.6rem) / 5); /* 5 across, fixed 1/5 slots */
	position: relative; margin: 0; cursor: pointer; scroll-snap-align: start;
}
.hif-sp__thumb img { display: block; width: 100%; aspect-ratio: 1/1; object-fit: cover; border-radius: 6px; border: 1px solid transparent; transition: border-color 0.15s ease; }
.hif-sp__thumb.is-active img { border-color: rgba(255, 255, 255, 0.95); border: 1px solid #fff; }
.hif-sp--british .hif-sp__thumb.is-active img { border-color: var(--wp--preset--color--accent); }
/* Scroll arrows (only when there are more than 5 images) */
.hif-sp__thumbs-nav {
	position: absolute; top: 50%; transform: translateY(-50%); z-index: 2;
	display: none; align-items: center; justify-content: center;
	width: 34px; height: 34px; border: 0; border-radius: 50%; cursor: pointer;
	background: rgba(255, 255, 255, 0.92); color: var(--wp--preset--color--contrast);
	box-shadow: 0 2px 8px rgba(42, 33, 24, 0.28); transition: background 0.15s ease;
}
.hif-sp__gallery--scroll .hif-sp__thumbs-nav { display: inline-flex; }
.hif-sp__thumbs-nav:hover { background: #fff; }
.hif-sp__thumbs-nav--prev { left: -6px; }
.hif-sp__thumbs-nav--next { right: -6px; }
/* Tracking line under the thumbnails — faint rail + bright position/active segment */
.hif-sp__thumb-track { position: relative; height: 3px; margin-top: 0.85rem; border-radius: 2px; background: rgba(255, 255, 255, 0.28); overflow: hidden; }
.hif-sp__thumb-track-bar {
	position: absolute; top: 0; left: 0; height: 100%; width: 20%; border-radius: 2px;
	background: rgba(255, 255, 255, 0.95); transition: left 0.18s ease, width 0.18s ease;
}
.hif-sp--british .hif-sp__thumb-track-bar { background: var(--wp--preset--color--accent); }

/* 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 { display: flex; align-items: center; gap: 0.55rem; font-size: 0.95rem; }
.hif-sp__stars { display: inline-flex; align-items: center; gap: 3px; }
.hif-sp__gstar svg { display: block; width: 19px; height: 19px; }
.hif-sp__score { font-weight: 800; }
.hif-sp__rating-sep { width: 1px; height: 1rem; background: currentColor; opacity: 0.35; }
.hif-sp__rating-count { opacity: 0.85; }

/* Dotted divider (white on the coloured hero) */
.hif-sp__divider { height: 0; margin: 1.05rem 0; border: 0; border-top: 2px dashed rgba(255, 255, 255, 0.5); }

.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; grid-template-columns: 1fr 1fr; gap: 0.7rem 1.25rem; }
.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;
}

/* Variation / bundle cards (Indian) — centred title, portion price, detail pill, footer action */
.hif-sp__vcards { display: grid; margin: 0 0 1.25rem; gap: 1rem; }
.hif-sp__vcards--bundle { grid-template-columns: 1fr 1fr; }
.hif-sp__vcard {
	position: relative; display: flex; flex-direction: column; align-items: center; text-align: center;
	gap: 0.28rem; background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast);
	border: 2px solid rgba(0, 0, 0, 0.1); border-radius: 16px; padding: 1.15rem 1.1rem 0; cursor: pointer;
	transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}
.hif-sp__vcard input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.hif-sp__vcard:has(input:checked) {
	border-color: var(--wp--preset--color--accent); background: #FFF8EC;
	box-shadow: 0 0 0 3px rgba(244, 166, 35, 0.2);
}
.hif-sp__vcard-title { font-weight: 700; font-size: 1.2rem; line-height: 1.15; }
.hif-sp__vcard-price { display: flex; flex-wrap: wrap; justify-content: center; align-items: baseline; gap: 0.4rem; }
.hif-sp__vcard-now { font-weight: 800; font-size: 1.35rem; color: var(--wp--preset--color--primary); }
.hif-sp__vcard-was { text-decoration: line-through; color: var(--wp--preset--color--contrast-muted); font-size: 0.92rem; }
.hif-sp__vcard-unit { color: #1EB059; font-weight: 700; font-size: 0.86rem; }
.hif-sp__vcard-sub { font-size: 0.82rem; color: var(--wp--preset--color--contrast-muted); }
.hif-sp__vcard-pill {
	width: 100%; margin-top: 0.6rem; padding: 0.6rem 0.85rem; border-radius: 9px; text-align: left;
	font-size: 0.85rem; background: rgba(0, 0, 0, 0.05);
}
.hif-sp__vcard:has(input:checked) .hif-sp__vcard-pill { background: rgba(244, 166, 35, 0.16); }
.hif-sp__vcard-pill strong { font-weight: 800; }
.hif-sp__vcard-action {
	align-self: stretch; margin: 0.7rem -1.1rem 0; padding: 0.75rem 1rem;
	border-radius: 0 0 14px 14px; font-weight: 700; font-size: 0.95rem;
	background: rgba(0, 0, 0, 0.05); color: var(--wp--preset--color--contrast-muted);
}
.hif-sp__vcard-action::after { content: "Select"; }
.hif-sp__vcard:has(input:checked) .hif-sp__vcard-action { background: var(--wp--preset--color--accent); color: var(--wp--preset--color--contrast); }
.hif-sp__vcard:has(input:checked) .hif-sp__vcard-action::after { content: "Selected"; }
.hif-sp__vcard:focus-within { outline: 2px solid var(--wp--preset--color--accent); outline-offset: 2px; }
.hif-sp__vcard-badge {
	position: absolute; top: -10px; right: 12px; z-index: 2;
	background: var(--wp--preset--color--accent); color: var(--wp--preset--color--contrast);
	font-size: 0.68rem; font-weight: 800; padding: 0.22rem 0.6rem; border-radius: 6px;
	box-shadow: 0 2px 6px rgba(42, 33, 24, 0.18);
}

/* Attribute-based variation picker (variable products, Indian variant) */
.hif-sp__attrs { display: flex; flex-direction: column; gap: 1rem; margin: 0 0 1.25rem; }
.hif-sp__attr { display: flex; flex-direction: column; gap: 0.45rem; }
.hif-sp__attr-label {
	font-size: 0.78rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;
	color: #fff;
}
.hif-sp__attr-opts { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.hif-sp__attr-btn {
	padding: 0.48rem 1.05rem; border: 2px solid rgba(0, 0, 0, 0.15); border-radius: 6px;
	background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast);
	font-weight: 600; font-size: 0.9rem; cursor: pointer;
	transition: border-color 0.14s ease, background 0.14s ease, box-shadow 0.14s ease;
}
.hif-sp__attr-btn:hover:not(.is-selected) { border-color: var(--wp--preset--color--accent); }
.hif-sp__attr-btn.is-selected {
	background: var(--wp--preset--color--accent); border-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
	box-shadow: 0 0 0 3px rgba(244, 166, 35, 0.22);
}
/* Out-of-stock add button */
.hif-sp__add--oos { opacity: 0.5; pointer-events: none; }

/* Curry-component note (Indian) */
.hif-sp__note {
	display: flex; align-items: center; gap: 0.65rem; margin: 0 0 0.25rem;
	padding: 0.85rem 1.05rem; border-radius: 11px;
	background: rgba(255, 255, 255, 0.16); color: var(--sp-text); font-size: 0.92rem; line-height: 1.4;
}
.hif-sp__note-ico { flex: 0 0 auto; }

/* Buy row */
.hif-sp__buy { display: flex; flex-wrap: wrap; align-items: stretch; gap: 1rem; justify-content: space-between;}
.hif-sp__qty {
	display: inline-flex; align-items: center; flex: 0 0 auto; min-height: 50px; height: 50px;
	background: var(--wp--preset--color--base); border-radius: 6px; padding: 0 0.4rem;
	box-shadow: 0 3px 12px rgba(42, 33, 24, 0.14);
}
.hif-sp__qty .hif-sp__qty-btn {
	width: 2.8rem; height: 2.8rem; display: inline-flex; align-items: center; justify-content: center;
	background: transparent; color: var(--wp--preset--color--contrast); border: 0; border-radius: 10px;
	font-size: 1.5rem; line-height: 1; cursor: pointer; box-shadow: none;
}
.hif-sp__qty .hif-sp__qty-btn:hover { background: rgba(0, 0, 0, 0.06); }
.hif-sp__qty-input {
	width: 2.6rem; text-align: center; font-weight: 700; font-size: 1.15rem;
	border: 0; background: transparent; color: var(--wp--preset--color--contrast); padding: 0;
}
.hif-sp__add, .hif-sp__buynow {
	display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; flex: 1 1 0; min-height: 50px; height: 50px;
	padding: 1rem 1.5rem; border: 0; border-radius: 6px; font-weight: 600; font-size: 1.1rem; text-decoration: none; cursor: pointer;
	transition: background 0.15s ease, filter 0.15s ease;
}
.hif-sp__add-container{
	display: flex;
    justify-content: space-around;
    gap: 1rem;
	flex: 1;
}
.hif-sp__add {
	background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast);
	box-shadow: 0 3px 12px rgba(42, 33, 24, 0.14);
}
.hif-sp__add:hover { background: #f5efe4; }
.hif-sp__buynow { background: var(--wp--preset--color--accent); color: var(--wp--preset--color--contrast); box-shadow: 0 3px 12px rgba(244, 166, 35, 0.3); }
.hif-sp__buynow:hover { filter: brightness(0.95); }
.hif-sp__soldout { font-weight: 700; color: var(--sp-text); }
.hif-sp__buy .added_to_cart { display: none; }

/* Image lightbox */
.hif-lightbox { position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center; padding: clamp(1rem, 4vw, 3rem); opacity: 0; transition: opacity 0.2s ease; }
.hif-lightbox.is-open { opacity: 1; }
.hif-lightbox[hidden] { display: none; }
.hif-lightbox__backdrop { position: absolute; inset: 0; background: rgba(20, 12, 16, 0.82); cursor: zoom-out; }
.hif-lightbox__figure { position: relative; margin: 0; max-width: min(900px, 92vw); max-height: 88vh; transform: scale(0.96); transition: transform 0.2s ease; }
.hif-lightbox.is-open .hif-lightbox__figure { transform: scale(1); }
.hif-lightbox__img { display: block; width: 100%; height: auto; max-height: 88vh; object-fit: contain; border-radius: 14px; box-shadow: 0 18px 50px rgba(0, 0, 0, 0.5); }
.hif-lightbox__close {
	position: absolute; top: 5px; right: 5px; width: 1.6rem; height: 1.6rem; border: 0; border-radius: 50%;
	background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast);
	font-size: 1.6rem; line-height: 1; cursor: pointer; box-shadow: 0 4px 14px rgba(0, 0, 0, 0.4);
}
.hif-lightbox__close:hover { background: var(--wp--preset--color--accent); }
/* Prev / next navigation */
.hif-lightbox__nav {
	position: absolute; top: 50%; transform: translateY(-50%); z-index: 2;
	display: none; align-items: center; justify-content: center;
	width: 3.25rem; height: 3.25rem; border: 0; border-radius: 50%; cursor: pointer;
	background: rgba(255, 255, 255, 0.92); color: var(--wp--preset--color--contrast);
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35); transition: background 0.15s ease;
}
.hif-lightbox--multi .hif-lightbox__nav { display: inline-flex; }
.hif-lightbox__nav:hover { background: #fff; }
.hif-lightbox__nav--prev { left: clamp(0.75rem, 3vw, 2.5rem); }
.hif-lightbox__nav--next { right: clamp(0.75rem, 3vw, 2.5rem); }
.hif-lightbox__count {
	position: absolute; bottom: 0.85rem; left: 50%; transform: translateX(-50%);
	padding: 0.25rem 0.75rem; border-radius: 999px;
	background: rgba(20, 12, 16, 0.6); color: #fff; font-size: 0.85rem; font-weight: 600;
}
.hif-lightbox:not(.hif-lightbox--multi) .hif-lightbox__count { display: none; }
@media (max-width: 600px) {
	.hif-lightbox__nav { width: 2.6rem; height: 2.6rem; }
}

/* ---- 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; }

/* What's in the box — left accordion + right nutrition card */
.hif-sp__box { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.5rem, 3.5vw, 3.5rem); align-items: start; }
.hif-sp__box-title {
	font-family: var(--wp--preset--font-family--display); font-weight: 500;
	font-size: clamp(1.7rem, 3vw, 2.4rem); color: var(--wp--preset--color--forest); margin: 0 0 1.5rem;
}
/* Left accordion */
.hif-sp__box-item { border-bottom: 1px dashed rgba(42, 33, 24, 0.28); }
.hif-sp__box-item summary {
	display: flex; align-items: center; justify-content: space-between; gap: 1rem; cursor: pointer;
	list-style: none; padding: 1.05rem 0; font-weight: 600; font-size: 1.05rem; color: var(--wp--preset--color--contrast);
}
.hif-sp__box-item summary::-webkit-details-marker { display: none; }
.hif-sp__box-item summary::after {
	content: ""; flex: 0 0 auto; width: 9px; height: 9px; margin-right: 2px;
	border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
	transform: rotate(45deg); transform-origin: center; transition: transform 0.2s ease;
}
.hif-sp__box-item[open] summary::after { transform: rotate(-135deg); }
.hif-sp__box-body { padding: 0 0 1.15rem; color: var(--wp--preset--color--contrast-muted); line-height: 1.65; font-size: 0.95rem; }
.hif-sp__box-body p { margin: 0 0 0.6rem; }
.hif-sp__box-body p:last-child { margin-bottom: 0; }

/* Right nutrition card */
.hif-sp__box-card {
	background: var(--wp--preset--color--primary); color: var(--wp--preset--color--base);
	border-radius: 20px; padding: clamp(1.4rem, 2.5vw, 2rem);
	background-image: url("../images/patterns/pink-pattern.png"); background-size: 320px;
}
.hif-sp__box-card-head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding-bottom: 1rem; margin-bottom: 1.25rem; border-bottom: 1px solid rgba(255, 255, 255, 0.25); }
.hif-sp__box-card-title { margin: 0; font-family: var(--wp--preset--font-family--display); font-weight: 500; font-size: clamp(1.5rem, 2.5vw, 1.9rem); color: var(--wp--preset--color--base); }
.hif-sp__box-card-per { font-size: 0.9rem; opacity: 0.9; font-weight: 600; white-space: nowrap; }
.hif-sp__box-tiles { list-style: none; margin: 0 0 1.25rem; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0.85rem; }
.hif-sp__box-tile { display: flex; align-items: center; gap: 0.85rem; background: rgba(0, 0, 0, 0.13); border: 1px solid rgba(255, 255, 255, 0.12); border-radius: 14px; padding: 0.85rem 1rem; }
.hif-sp__box-tile-ico {
	flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
	width: 48px; height: 48px; border-radius: 50%; background: rgb(252 238 243); color: var(--wp--preset--color--contrast);
}
.hif-sp__box-tile-text { display: flex; flex-direction: column; line-height: 1.1; }
.hif-sp__box-tile-val { font-size: 1.5rem; font-weight: 800; }
.hif-sp__box-tile-lbl { font-size: 0.78rem; letter-spacing: 0.04em; opacity: 0.92; }

/* Why you'll love it */
.hif-sp__box-love { background: rgb(252 238 243); color: var(--wp--preset--color--contrast); border-radius: 16px; padding: clamp(1.1rem, 2vw, 1.5rem); }
.hif-sp__box-love-title { margin: 0 0 1.1rem; font-size: 1.2rem; font-weight: 700; }
.hif-sp__box-love-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.1rem; }
.hif-sp__box-love-list li { display: flex; flex-direction: column; align-items: flex-start; gap: 0.45rem; }
.hif-sp__box-love-ico { color: var(--wp--preset--color--contrast); }
.hif-sp__box-love-name { font-weight: 700; font-size: 0.92rem; }
.hif-sp__box-love-desc { font-size: 0.8rem; line-height: 1.45; color: var(--wp--preset--color--contrast-muted); }

/* ---------- Customer reviews (real WooCommerce reviews + rating) ---------- */
.hif-spr__heading { text-align: center; margin-bottom: 1.5rem; }
.hif-spr__grid { display: grid; grid-template-columns: minmax(280px, 0.85fr) 1.3fr; gap: clamp(1.5rem, 3vw, 2.75rem); align-items: start; }

/* Fractional gold stars */
.hif-rstars { position: relative; display: inline-block; line-height: 1; font-size: 1.05rem; letter-spacing: 2px; white-space: nowrap; }
.hif-rstars__off { color: #e3d9c7; }
.hif-rstars__on { position: absolute; left: 0; top: 0; overflow: hidden; white-space: nowrap; color: #f5b301; }

/* Left: summary card */
.hif-spr__summary {
	background: var(--wp--preset--color--base); border-radius: 18px; padding: clamp(1.25rem, 2.5vw, 1.75rem);
	box-shadow: 0 3px 16px rgba(42, 33, 24, 0.08); text-align: center; margin-bottom: 1.25rem;
}
.hif-spr__avg { display: flex; align-items: baseline; justify-content: center; gap: 0.3rem; }
.hif-spr__avg-num { font-family: var(--wp--preset--font-family--display); font-size: clamp(2.6rem, 5vw, 3.4rem); font-weight: 500; color: var(--wp--preset--color--primary); line-height: 1; }
.hif-spr__avg-out { font-size: 1rem; font-weight: 700; color: var(--wp--preset--color--contrast-muted); }
.hif-spr__summary .hif-rstars { font-size: 1.35rem; margin: 0.5rem 0 0.35rem; }
.hif-spr__avg-count { margin: 0; font-size: 0.88rem; color: var(--wp--preset--color--contrast-muted); }
.hif-spr__bars { list-style: none; margin: 1.1rem 0 0; padding: 1.1rem 0 0; border-top: 1px solid rgba(42, 33, 24, 0.1); display: grid; gap: 0.5rem; }
.hif-spr__bar { display: grid; grid-template-columns: 2.2rem 1fr 2.6rem; align-items: center; gap: 0.6rem; }
.hif-spr__bar-num { font-size: 0.82rem; font-weight: 700; color: var(--wp--preset--color--contrast); white-space: nowrap; }
.hif-spr__bar-num span { color: #f5b301; }
.hif-spr__bar-track { height: 8px; border-radius: 4px; background: rgba(42, 33, 24, 0.1); overflow: hidden; }
.hif-spr__bar-fill { display: block; height: 100%; border-radius: 4px; background: var(--wp--preset--color--accent); }
.hif-spr__bar-pct { font-size: 0.78rem; color: var(--wp--preset--color--contrast-muted); text-align: right; }

/* Left: write-a-review panel */
.hif-spr__panel { background: var(--wp--preset--color--base); border-radius: 18px; padding: clamp(1.25rem, 2.5vw, 1.75rem); box-shadow: 0 3px 16px rgba(42, 33, 24, 0.08); }
.hif-spr__panel-title { margin: 0 0 1rem; font-size: 1.2rem; font-weight: 700; color: var(--wp--preset--color--forest); }
.hif-spr__gate { margin: 0; font-size: 0.92rem; line-height: 1.55; color: var(--wp--preset--color--contrast-muted); }
.hif-spr__form { margin: 0; }
.hif-spr__form p { margin: 0 0 0.9rem; }
.hif-spr__form label { display: block; font-size: 0.85rem; font-weight: 600; margin-bottom: 0.35rem; color: var(--wp--preset--color--contrast); }
.hif-spr__form .required { color: var(--wp--preset--color--primary); }
.hif-spr__form input[type="text"],
.hif-spr__form input[type="email"],
.hif-spr__form textarea {
	width: 100%; box-sizing: border-box; border: 1.5px solid rgba(42, 33, 24, 0.18); border-radius: 10px;
	padding: 0.7rem 0.85rem; font: inherit; font-size: 0.95rem; background: #fff; color: var(--wp--preset--color--contrast);
}
.hif-spr__form textarea { resize: vertical; min-height: 110px; }
.hif-spr__form input:focus, .hif-spr__form textarea:focus { outline: 2px solid var(--wp--preset--color--primary); outline-offset: 1px; border-color: transparent; }
/* Star rating input (pure CSS) */
.hif-spr__rate { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem; }
.hif-spr__rate-label { font-size: 0.85rem; font-weight: 600; }
.hif-stars-input { display: inline-flex; flex-direction: row-reverse; gap: 3px; }
.hif-stars-input input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.hif-stars-input label { font-size: 1.6rem; line-height: 1; color: #e3d9c7; cursor: pointer; transition: color 0.12s ease; }
.hif-stars-input input:focus-visible + label { outline: 2px solid var(--wp--preset--color--primary); outline-offset: 2px; }
.hif-stars-input input:checked ~ label { color: #f5b301; }
.hif-stars-input:hover input:checked ~ label { color: #e3d9c7; }
.hif-stars-input label:hover, .hif-stars-input label:hover ~ label { color: #f5b301; }
.hif-spr__form .form-submit { margin: 0.25rem 0 0; }
.hif-spr__submit {
	display: inline-flex; align-items: center; justify-content: center; cursor: pointer;
	background: var(--wp--preset--color--primary); color: var(--wp--preset--color--base); border: 0;
	font-weight: 600; font-size: 1rem; padding: 0.85rem 1.75rem; border-radius: 6px; transition: background 0.15s ease;
}
.hif-spr__submit:hover { background: var(--wp--preset--color--primary-dark); }
.hif-spr__form .comment-form-cookies-consent { display: flex; align-items: flex-start; gap: 0.5rem; font-size: 0.82rem; }
.hif-spr__form .comment-form-cookies-consent label { display: inline; font-weight: 400; margin: 0; }
.hif-spr__form .comment-form-cookies-consent input { width: auto; }
.hif-spr__form .must-log-in, .hif-spr__form .logged-in-as { font-size: 0.88rem; color: var(--wp--preset--color--contrast-muted); }

/* Right: reviews list */
.hif-spr__list { display: grid; gap: 1rem; }
.hif-sprc { background: var(--wp--preset--color--base); border-radius: 16px; padding: clamp(1.1rem, 2vw, 1.5rem); box-shadow: 0 2px 12px rgba(42, 33, 24, 0.06); }
.hif-sprc__head { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 0.75rem; margin-bottom: 0.7rem; }
.hif-sprc__avatar-img { display: block; width: 44px; height: 44px; border-radius: 50%; }
.hif-sprc__meta { display: flex; flex-direction: column; min-width: 0; }
.hif-sprc__name { font-weight: 700; color: var(--wp--preset--color--contrast); display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }
.hif-sprc__verified { font-size: 0.66rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; color: #1eb059; background: rgba(30, 176, 89, 0.12); padding: 0.12rem 0.45rem; border-radius: 999px; }
.hif-sprc__date { font-size: 0.8rem; color: var(--wp--preset--color--contrast-muted); }
.hif-sprc__stars { justify-self: end; }
.hif-sprc__body { font-size: 0.95rem; line-height: 1.6; color: var(--wp--preset--color--contrast); }
.hif-sprc__body p { margin: 0 0 0.6rem; }
.hif-sprc__body p:last-child { margin-bottom: 0; }
.hif-spr__empty { background: var(--wp--preset--color--base); border-radius: 16px; padding: 2rem 1.5rem; text-align: center; box-shadow: 0 2px 12px rgba(42, 33, 24, 0.06); }
.hif-spr__empty-stars { font-size: 1.5rem; }
.hif-spr__empty p { margin: 0.6rem 0 0; color: var(--wp--preset--color--contrast-muted); }
/* Folk-art bottom divider — full-bleed; negative bottom margin cancels the
   .hif-sp__inner bottom padding so the strip sits flush above the next band. */
.hif-spr__border {
	height: 25px; width: 100vw;
	margin: clamp(1.75rem, 3.5vw, 2.75rem) calc(50% - 50vw) calc(-1 * clamp(2rem, 4vw, 3.5rem));
	background: url("../images/patterns/border.png") repeat-x center / auto 25px;
}
/* Reviews — responsive: stack the summary + list, then relax the review head. */
@media (max-width: 782px) {
	.hif-spr__grid { grid-template-columns: 1fr; gap: 1.75rem; }
	.hif-spr__summary { max-width: 100%; margin-inline: auto;  }
}
@media (max-width: 480px) {
	.hif-sprc__head { grid-template-columns: auto 1fr; row-gap: 0.35rem; }
	.hif-sprc__stars { grid-column: 1 / -1; justify-self: start; }
	.hif-spr__bar { grid-template-columns: 1.8rem 1fr 2.4rem; gap: 0.5rem; }
}

/* ============================================================
   Product page — "Why Homemade Costs More" (pink band)
   ============================================================ */
.hif-whc {
	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-whc__border { height: 25px; background: url("../images/patterns/border.png") repeat-x center / auto 25px; }
.hif-whc__body { padding: clamp(2.5rem, 5vw, 4rem) var(--wp--preset--spacing--40); }
.hif-whc__inner { max-width: 1300px; margin: 0 auto; }
.hif-whc__title {
	text-align: center;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 500;
	font-size: clamp(1.9rem, 4vw, 3rem);
	margin: 0 0 0.6rem;
	color: var(--wp--preset--color--base);
}
.hif-whc__intro {
	text-align: center;
	max-width: 72ch;
	margin: 0 auto clamp(2rem, 4vw, 3rem);
	font-size: 0.95rem;
	line-height: 1.55;
	opacity: 0.9;
}
.hif-whc__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
	align-items: start;
}
.hif-whc__card {
	position: relative;
	border-radius: 20px;
	padding: 1.85rem 1.6rem;
}
.hif-whc__card--competitor {
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.18);
}
.hif-whc__card--winner {
	background: var(--wp--preset--color--cream);
	outline: 3px solid var(--wp--preset--color--accent);
	outline-offset: -10px;
	color: var(--wp--preset--color--contrast);
	box-shadow: 0 18px 44px rgba(0, 0, 0, 0.22);
	position: relative;
	top: -30px;
}
.hif-whc__winner {
	position: absolute;
	top: -6px;
	left: 50%;
	transform: translateX(-50%);
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	padding: 0.3rem 0.85rem;
	border-radius: 999px;
	white-space: nowrap;
}
.hif-whc__card-head { margin-bottom: 1.3rem; }
.hif-whc__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	margin-bottom: 0.9rem;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.92);
	color: var(--wp--preset--color--contrast);
	overflow: hidden;
}
.hif-whc__card--winner .hif-whc__icon { background: transparent; width: 60px; height: 60px; border-radius: 0; }
.hif-whc__icon img { object-fit: cover; }
.hif-whc__card-title { margin: 0; font-family: var(--wp--preset--font-family--body); font-size: 1.4rem; font-weight: 700; }
.hif-whc__card-sub { margin: 0.35rem 0 0; font-size: 0.92rem; line-height: 1.45; opacity: 0.85; }
.hif-whc__card--winner .hif-whc__card-sub { opacity: 1; color: var(--wp--preset--color--contrast-muted); }
.hif-whc__points {
	list-style: none;
	margin: 0 0 1.3rem;
	padding: 1rem 1.1rem;
	background: #FCE7EF;
	border-radius: 14px;
	display: flex;
	flex-direction: column;
	gap: 0.7rem;
}
.hif-whc__points li { display: flex; align-items: center; gap: 0.6rem; font-size: 0.9rem; line-height: 1.3; color: var(--wp--preset--color--contrast); }
.hif-whc__pt-ico { flex: 0 0 auto; display: inline-flex; color: var(--wp--preset--color--contrast-muted); }
.hif-whc__card--winner .hif-whc__pt-ico { color: var(--wp--preset--color--primary); }
.hif-whc__price { display: flex; align-items: center; gap: 0.55rem; margin: 0; font-weight: 700; font-size: 0.95rem; }
.hif-whc__price-ico { flex: 0 0 auto; display: inline-flex; opacity: 0.85; }
.hif-whc__card--winner .hif-whc__price { color: var(--wp--preset--color--primary); }

/* ============================================================
   Product page — "Your Meals, Your Way" (cream band)
   ============================================================ */
.hif-yw {
	background: var(--wp--preset--color--cream);
	background-image: url("../images/patterns/cream-pattern.jpg");
	background-repeat: repeat;
	background-size: 50px;
	color: var(--wp--preset--color--contrast);
}
.hif-yw__border { height: 25px; background: url("../images/patterns/border.png") repeat-x center / auto 25px; }
.hif-yw__body { padding: clamp(3rem, 6vw, 5rem) var(--wp--preset--spacing--40); }
.hif-yw__inner { max-width: 1200px; margin: 0 auto; }
.hif-yw__title {
	text-align: center;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 500;
	font-size: clamp(2.2rem, 4.5vw, 3.4rem);
	margin: 0 0 0.75rem;
	color: var(--wp--preset--color--forest);
}
.hif-yw__intro {
	text-align: center;
	max-width: 64ch;
	margin: 0 auto clamp(2.5rem, 5vw, 3.5rem);
	font-size: 1.05rem;
	line-height: 1.6;
	color: var(--wp--preset--color--contrast);
}
.hif-yw__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.5rem, 3vw, 2.25rem); }
.hif-yw__card {
	border-radius: 16px;
	padding: 20px;
	display: flex;
	flex-direction: column;
}
.hif-yw__card--build { background: var(--wp--preset--color--primary-dark); color: var(--wp--preset--color--base); }
.hif-yw__card--sub { background: var(--wp--preset--color--accent); color: var(--wp--preset--color--contrast); }
.hif-yw__card-head { display: flex;  gap: 10px; margin-bottom: 20px; }
.hif-yw__icon {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 80px;
	width: 80px;
	border-radius: 50%;
	background: rgb(252 238 243);
	color: var(--wp--preset--color--contrast);
}
.hif-yw__icon svg { width: 46%; height: 46%; }
.hif-yw__card-title { margin: 0; font-family: var(--wp--preset--font-family--body); font-size: 27px; font-weight: 600; line-height: 1.1; }
.hif-yw__card-desc { margin: 0.55rem 0 0; font-size: 14px; line-height: 1.5; opacity: 0.95; }
.hif-yw__features {
	list-style: none;
	margin: 0;
	padding: 0.5rem 0;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
}
.hif-yw__features li {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 0.7rem;
	padding: 0.5rem 0.5rem;
	font-size: 0.95rem;
	line-height: 1.3;
	font-weight: 600;
}
.hif-yw__features li + li { border-left: 1px solid rgba(255, 255, 255, 0.28); }
.hif-yw__card--sub .hif-yw__features li + li { border-left-color: rgba(42, 33, 24, 0.16); }
.hif-yw__feat-ico { display: inline-flex; }
.hif-yw__feat-ico svg { width: 30px; height: 30px; }
.hif-yw__card--build .hif-yw__feat-ico { color: var(--wp--preset--color--base); }
.hif-yw__card--sub .hif-yw__feat-ico { color: var(--wp--preset--color--contrast); }
.hif-yw__btn {
	margin-top: auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.6rem;
	padding: .8rem 1.5rem;
	border-radius: 6px;
	font-size: 1.1rem;
	font-weight: 600;
	text-decoration: none;
	transition: filter 0.15s ease;
	display: block;
    text-align: center;
    font-weight: 600;
}
.hif-yw__btn:hover { filter: brightness(0.94); }
.hif-yw__card--build .hif-yw__btn { background: var(--wp--preset--color--accent); color: var(--wp--preset--color--contrast); }
.hif-yw__card--sub .hif-yw__btn { background: var(--wp--preset--color--primary); color: var(--wp--preset--color--base); }

/* Responsive */
@media (max-width: 860px) {
	.hif-whc__grid { grid-template-columns: 1fr; max-width: 460px; margin: 0 auto; }
	.hif-whc__card--winner { order: -1; top: 0;}
	.hif-yw__grid { grid-template-columns: 1fr; }
}

/* Cross-sell — full-width coloured band */
.hif-sp__cross {
	background-repeat: repeat;
	background-size: 50px;
	padding-top: clamp(2rem, 4vw, 3.5rem);
}
.hif-sp__cross-inner {
	max-width: 1300px;
	margin: 0 auto;
	padding: 0 var(--wp--preset--spacing--40) clamp(2rem, 4vw, 3.5rem);
}
.hif-sp--indian .hif-sp__cross {
	background-color: var(--wp--preset--color--primary);
	background-image: url("../images/patterns/pink-pattern.png");
}
.hif-sp--indian .hif-sp__cross .hif-sp__band-title { color: var(--wp--preset--color--base); }
.hif-sp--british .hif-sp__cross {
	background-color: var(--wp--preset--color--accent);
	background-image: url("../images/patterns/yellow-pattern.png");
}
.hif-sp--british .hif-sp__cross .hif-sp__band-title { color: var(--wp--preset--color--forest); }
.hif-sp__cross-border { height: 25px; background: url("../images/patterns/border.png") repeat-x center / auto 25px; }
.hif-sp__cross .hif-product-scroller__track > * { flex-basis: 240px; }

/* FAQ (embedded in the single-product shortcode) — the band picks up root
   padding here, which insets its bottom border strip. Break the border out so
   it spans the viewport like every other section divider. */
.hif-sp .hif-faq__border { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); width: 100vw; }

@media (max-width: 900px) {
	.hif-sp__hero-inner { grid-template-columns: 1fr; }
	.hif-sp__details { grid-template-columns: 1fr; }
	.hif-sp__box { grid-template-columns: 1fr; }
	.hif-reviews__grid { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
	.hif-sp__options--bundle { grid-template-columns: 1fr; }
	.hif-sp__vcards--bundle { grid-template-columns: 1fr; }
	.hif-sp__promise { grid-template-columns: 1fr; }
	.hif-sp__box-tiles { grid-template-columns: 1fr; }
	.hif-sp__box-love-list { grid-template-columns: 1fr; gap: 0.85rem; }
	.hif-sp__buy { gap: 0.6rem; }
	.hif-sp__qty { flex: 0 0 96%; justify-content: space-around; }
	.hif-sp__add, .hif-sp__buynow { flex: 1 1 45%; }
	.hif-sp__cross .hif-product-scroller__track > * { flex-basis: 64vw; }
	.hif-yw__icon{width: 50px; height: 50px;}
	.hif-yw__icon svg{width: 60%; height: 60%; }
	.hif-yw__card-title{font-size: 22px;}
	.hif-yw__features li{font-size: 13px;}
	.hif-yw__card{padding: 10px;}
	.hif-yw__features li{padding: 3px}
}

/* ============================================================
   WooCommerce Cart + Checkout pages (real WC blocks, on-brand)
   ============================================================ */
.hif-cart-page,
.hif-checkout-wc { padding: clamp(1.5rem, 3vw, 2.5rem) var(--wp--preset--spacing--40) clamp(2.5rem, 5vw, 4rem); }
.hif-cart-page__title {
	text-align: center;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 500;
	color: var(--wp--preset--color--forest);
	font-size: clamp(1.8rem, 3vw, 2.6rem);
	margin: 0 0 1.5rem;
}

/* Primary action buttons → pink */
.hif-cart-page .wc-block-cart__submit-button,
.hif-cart-page .wp-block-woocommerce-cart .wc-block-cart__submit-container .wc-block-components-button,
.hif-checkout-wc .wc-block-components-checkout-place-order-button,
.hif-checkout-wc .wc-block-components-checkout-place-order-button.contained {
	background-color: var(--wp--preset--color--primary) !important;
	color: var(--wp--preset--color--base) !important;
	border-radius: 6px !important;
	font-weight: 600 !important;
}
.hif-cart-page .wc-block-cart__submit-button:hover,
.hif-checkout-wc .wc-block-components-checkout-place-order-button:hover {
	background-color: var(--wp--preset--color--primary-dark) !important;
}

/* Sidebar order-summary cards */
.hif-cart-page .wc-block-cart__sidebar .wc-block-components-sidebar,
.hif-checkout-wc .wc-block-checkout__sidebar {
	background: var(--wp--preset--color--cream);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 14px;
	padding: 1.25rem;
}
.hif-checkout-wc .wc-block-checkout__sidebar { position: sticky; top: 1.5rem; }

/* Totals + product names */
.hif-cart-page .wc-block-components-totals-item__value,
.hif-checkout-wc .wc-block-components-totals-item__value,
.hif-cart-page .wc-block-components-order-summary-item__total-price {
	font-weight: 700;
	color: var(--wp--preset--color--forest);
}
.hif-cart-page .wc-block-components-product-name,
.hif-checkout-wc .wc-block-components-product-name { color: var(--wp--preset--color--contrast); font-weight: 600; }

/* ---- Empty-cart "New in store" upsell ----
   Rendered by the [hif_cart_upsell] shortcode in templates/page-cart.html, *outside*
   the WooCommerce Cart block (which is client-hydrated and would strip custom HTML
   placed inside it). The cards are real .hif-product-card elements — identical to the
   shop archive — laid out with the shared .hif-shop__grid (responsive 4/3/2/1). */
.hif-cart-upsell {
	box-sizing: border-box;
	max-width: 100%;
	margin-top: var(--wp--preset--spacing--40);
	padding-bottom: var(--wp--preset--spacing--50);
}
.hif-cart-upsell__grid {
	width: 100%;
	margin-top: 0;
}
/* Let grid items shrink below their intrinsic content width so a card can never
   overflow its track (the default min-width:auto would push it past the viewport). */
.hif-cart-upsell .hif-product-card {
	min-width: 0;
}
/* The cart <main> has no side gutter, so add one on mobile to keep the single-column
   cards off the viewport edge (badge/Add button would otherwise clip). */
@media (max-width: 781px) {
	.hif-cart-upsell {
		padding-inline: var(--wp--preset--spacing--30);
	}
}
/* Belt-and-suspenders: if the WooCommerce Cart page is ever regenerated, its default
   empty-cart "Newest products" grid would reappear (squeezed). Hide it — the
   [hif_cart_upsell] cards render below the cart block instead. */
.wp-block-woocommerce-empty-cart-block .wp-block-woocommerce-product-new,
.wp-block-woocommerce-empty-cart-block .wc-block-grid {
	display: none;
}

/* Checkout step headings + numbers */
.hif-checkout-wc .wc-block-components-checkout-step__title,
.hif-checkout-wc .wc-block-components-title {
	font-family: var(--wp--preset--font-family--display);
	color: var(--wp--preset--color--forest);
}
.hif-checkout-wc .wc-block-components-checkout-step__index {
	background: var(--wp--preset--color--primary) !important;
	color: var(--wp--preset--color--base) !important;
}

/* Inputs — brand focus ring */
.hif-checkout-wc .wc-block-components-text-input input:focus,
.hif-checkout-wc .wc-block-components-text-input.is-active input,
.hif-checkout-wc .wc-block-components-text-input input:focus + label {
	box-shadow: none;
}
.hif-checkout-wc .wc-block-components-text-input.is-active {
	box-shadow: 0 0 0 2px var(--wp--preset--color--primary);
	border-radius: 6px;
}

/* Branded checkout top bar (hybrid chrome) */
.hif-checkout-wc__topbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	background-color: var(--wp--preset--color--forest);
	background-image: url("../images/patterns/green-pattern.png");
	background-size: 60px;
	color: var(--wp--preset--color--base);
	border-radius: 14px;
	padding: 0.9rem 1.25rem;
	margin: clamp(1rem, 2vw, 1.75rem) 0 1.5rem;
}
.hif-checkout-wc__back {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	color: var(--wp--preset--color--base);
	text-decoration: none;
	font-weight: 600;
	font-size: 0.95rem;
}
.hif-checkout-wc__back:hover { color: var(--wp--preset--color--accent); }
.hif-checkout-wc__heading {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.2rem, 2.5vw, 1.6rem);
}
.hif-checkout-wc__logo img { display: block; border-radius: 8px; }

@media (max-width: 600px) {
	.hif-checkout-wc__heading { font-size: 1.1rem; }
	.hif-checkout-wc__logo { display: none; }
	.hif-checkout-wc .wc-block-checkout__sidebar { position: static; }
}

/* ============================================================
   Order received / confirmation page (on-brand)
   ============================================================ */
.hif-confirm-page {
	background-color: var(--wp--preset--color--cream);
	background-image: url("../images/patterns/cream-pattern.jpg");
	background-size: 360px;
	padding: clamp(2rem, 4vw, 3.5rem) var(--wp--preset--spacing--40) clamp(3rem, 5vw, 4.5rem);
}

/* Success hero */
.hif-confirm__hero { max-width: 640px; margin: 0 auto 2rem; text-align: center; }
.hif-confirm__check {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 86px;
	height: 86px;
	margin-bottom: 1.1rem;
	border-radius: 50%;
	background: var(--wp--preset--color--forest);
	color: var(--wp--preset--color--base);
	box-shadow: 0 10px 26px rgba(27, 77, 62, 0.3);
}
.hif-confirm__title {
	margin: 0 0 0.6rem;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 500;
	color: var(--wp--preset--color--forest);
	font-size: clamp(2rem, 1.5rem + 2.5vw, 3rem);
	line-height: 1.1;
}
.hif-confirm__sub { margin: 0; color: var(--wp--preset--color--contrast); opacity: 0.8; font-size: 1rem; line-height: 1.6; }

/* Order details card wrapping the WC blocks */
.hif-confirm__panel {
	max-width: 940px;
	margin: 0 auto;
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 18px;
	padding: clamp(1.5rem, 3vw, 2.5rem);
	box-shadow: 0 14px 40px rgba(0, 0, 0, 0.06);
}
.hif-confirm__panel .wc-block-order-confirmation-status {
	font-size: 1.05rem;
	color: var(--wp--preset--color--contrast);
	margin-bottom: 1.25rem;
}
.hif-confirm__panel h2,
.hif-confirm__panel h3 {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 500;
	color: var(--wp--preset--color--forest);
}
/* Order overview → tidy stat strip */
.hif-confirm__panel .wc-block-order-confirmation-summary {
	background: var(--wp--preset--color--cream);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 12px;
	padding: 1rem 1.25rem;
	margin: 0 0 1.5rem;
}
.hif-confirm__panel .wc-block-order-confirmation-summary li > span:first-child,
.hif-confirm__panel .wc-block-order-confirmation-summary .wc-block-components-order-confirmation-summary-list-item__key {
	color: var(--wp--preset--color--contrast-muted);
	font-weight: 600;
}
/* Totals table */
.hif-confirm__panel table { width: 100%; }
.hif-confirm__panel table th,
.hif-confirm__panel .wc-block-order-confirmation-totals th { color: var(--wp--preset--color--forest); }
.hif-confirm__panel table a { color: var(--wp--preset--color--primary); text-decoration: none; font-weight: 600; }
.hif-confirm__panel table a:hover { text-decoration: underline; }
/* Address cards */
.wc-block-order-confirmation-address-wrapper .wp-block-column address,
.wc-block-order-confirmation-address-wrapper .woocommerce-column__title + address {
	background: var(--wp--preset--color--cream);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 12px;
	padding: 1rem 1.25rem;
	font-style: normal;
	line-height: 1.6;
}

/* What happens next */
.hif-confirm__next { max-width: 940px; margin: 2.75rem auto 0; }
.hif-confirm__next-title {
	text-align: center;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 500;
	color: var(--wp--preset--color--forest);
	font-size: clamp(1.5rem, 3vw, 2rem);
	margin: 0 0 1.5rem;
}
.hif-confirm__steps {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1rem;
}
.hif-confirm__step {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 14px;
	padding: 1.5rem 1.25rem;
	text-align: center;
}
.hif-confirm__step-num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	margin-bottom: 0.75rem;
	border-radius: 50%;
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	font-weight: 700;
}
.hif-confirm__step h3 { margin: 0 0 0.4rem; font-size: 1.1rem; color: var(--wp--preset--color--forest); font-family: var(--wp--preset--font-family--display); font-weight: 500; }
.hif-confirm__step p { margin: 0; font-size: 0.88rem; line-height: 1.5; color: var(--wp--preset--color--contrast-muted); }

.hif-confirm__actions { text-align: center; margin-top: 2.25rem; }
.hif-confirm__cta {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	font-weight: 600;
	text-decoration: none;
	padding: 0.95rem 2.25rem;
	border-radius: 6px;
	transition: background 0.15s ease;
}
.hif-confirm__cta:hover { background: var(--wp--preset--color--primary-dark); }
.hif-confirm__support { margin: 1rem 0 0; font-size: 0.9rem; color: var(--wp--preset--color--contrast-muted); }
.hif-confirm__support a { color: var(--wp--preset--color--primary); font-weight: 600; }

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

/* ---- Order receipt "ticket" on the confirmation page ---- */
.hif-order {
	max-width: 760px;
	margin: 0 auto;
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 18px;
	overflow: hidden;
	box-shadow: 0 14px 40px rgba(0, 0, 0, 0.06);
}
.hif-order__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.1rem 1.5rem;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
}
.hif-order__eyebrow {
	display: block;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	opacity: 0.7;
}
.hif-order__num {
	margin: 0.1rem 0 0;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 500;
	font-size: clamp(1.4rem, 1.1rem + 1.2vw, 1.9rem);
	line-height: 1;
	color: var(--wp--preset--color--forest);
}
.hif-order__status {
	flex: 0 0 auto;
	padding: 0.35rem 0.9rem;
	border-radius: var(--wp--custom--radius--pill, 999px);
	background: var(--wp--preset--color--forest);
	color: var(--wp--preset--color--base);
	font-size: 0.78rem;
	font-weight: 700;
	text-transform: capitalize;
}
.hif-order__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 1.25rem 2rem;
	margin: 0;
	padding: 1.25rem 1.5rem;
	border-bottom: 1px solid var(--wp--preset--color--border);
}
.hif-order__meta div { display: flex; flex-direction: column; gap: 0.15rem; }
.hif-order__meta dt {
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--contrast-muted);
}
.hif-order__meta dd { margin: 0; font-weight: 600; color: var(--wp--preset--color--contrast); }

.hif-order__items { list-style: none; margin: 0; padding: 0.5rem 1.5rem; }
.hif-order__item {
	display: grid;
	grid-template-columns: 48px 1fr auto;
	align-items: center;
	gap: 0.9rem;
	padding: 0.85rem 0;
	border-bottom: 1px solid rgba(27, 77, 62, 0.1);
}
.hif-order__item:last-child { border-bottom: 0; }
.hif-order__item-media img { width: 48px; height: 48px; object-fit: cover; border-radius: 8px; display: block; }
.hif-order__item-name { font-weight: 600; color: var(--wp--preset--color--contrast); line-height: 1.3; }
.hif-order__item-qty { color: var(--wp--preset--color--contrast-muted); font-weight: 600; margin-left: 0.4rem; }
.hif-order__item-price { font-weight: 700; white-space: nowrap; color: var(--wp--preset--color--contrast); }

.hif-order__totals { margin: 0; padding: 1rem 1.5rem; background: var(--wp--preset--color--cream); }
.hif-order__totals > div { display: flex; align-items: baseline; justify-content: space-between; padding: 0.3rem 0; }
.hif-order__totals dt { margin: 0; color: var(--wp--preset--color--contrast); }
.hif-order__totals dd { margin: 0; font-weight: 600; }
.hif-order__totals .is-free { color: var(--wp--preset--color--forest); font-weight: 700; }
.hif-order__totals .is-discount { color: var(--wp--preset--color--primary); font-weight: 700; }
.hif-order__totals--grand { border-top: 1px solid var(--wp--preset--color--border); margin-top: 0.4rem; padding-top: 0.7rem !important; }
.hif-order__totals--grand dt { font-weight: 700; }
.hif-order__totals--grand dd { font-size: 1.3rem; font-weight: 800; color: var(--wp--preset--color--forest); }

.hif-order__cols {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
	padding: 1.5rem;
}
.hif-order__col-title {
	margin: 0 0 0.5rem;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--forest);
}
.hif-order__addr {
	margin: 0;
	font-style: normal;
	line-height: 1.6;
	color: var(--wp--preset--color--contrast);
	font-size: 0.92rem;
}
.hif-order__slot {
	margin: 0.6rem 0 0;
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--wp--preset--color--primary);
}
.hif-order__note {
	margin: 0 1.5rem 1.25rem;
	padding: 0.85rem 1rem;
	border-radius: 10px;
	background: var(--wp--preset--color--cream);
	font-size: 0.9rem;
}
.hif-order__instructions { padding: 0 1.5rem 1.5rem; }
.hif-order__instructions:empty { display: none; }
.hif-order__instructions p { margin: 0; font-size: 0.9rem; color: var(--wp--preset--color--contrast-muted); }

@media (max-width: 560px) {
	.hif-order__cols { grid-template-columns: 1fr; }
	.hif-order__head { flex-wrap: wrap; }
}

/* ============================================================
   Meal-plan funnel ([hif_meal_funnel])
   ============================================================ */
.hif-meal-funnel-page { background: var(--wp--preset--color--cream); }
.hif-funnel {
	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--contrast);
}

/* Reused homepage bands below the funnel: the reviews band goes forest-green so it
   reads as a distinct section against the pink funnel page (homepage stays pink). */
.hif-meal-funnel-page .hif-reviews {
	background-color: var(--wp--preset--color--forest);
	background-image: url("../images/patterns/green-pattern.png");
}

/* ---- Stepper header (saffron) ---- */
.hif-funnel__stepper { background: var(--wp--preset--color--accent); padding: 0.85rem var(--wp--preset--spacing--40); }
.hif-funnel__steps { max-width: 820px; margin: 0 auto; display: flex; align-items: center; }
.hif-funnel__step { display: flex; align-items: center; gap: 0.55rem; flex: 0 0 auto; }
.hif-funnel__step-mark {
	display: inline-flex; align-items: center; justify-content: center;
	width: 28px; height: 28px; border-radius: 50%;
	background: rgba(255, 255, 255, 0.55);
	color: var(--wp--preset--color--contrast);
	font-size: 0.85rem; font-weight: 700;
}
.hif-funnel__step.is-done .hif-funnel__step-mark { background: var(--wp--preset--color--primary); color: var(--wp--preset--color--base); }
.hif-funnel__step-label { font-size: 1rem; font-weight: 600; color: var(--wp--preset--color--contrast); opacity: 0.65; white-space: nowrap; }
.hif-funnel__step.is-active .hif-funnel__step-label { opacity: 1; }
.hif-funnel__line { flex: 1 1 auto; height: 2px; min-width: 22px; margin: 0 0.5rem; background: rgba(42, 33, 24, 0.25); border-radius: 2px; }
.hif-funnel__line.is-done { background: var(--wp--preset--color--primary); }

/* ---- Folk-art border strips ---- */
.hif-funnel__border { height: 25px; width: 100%; background: url("../images/patterns/border.png") repeat-x center / auto 25px; }
.hif-funnel__border--bottom { margin-top: 0; }

/* ---- Stage / screens ---- */
.hif-funnel__stage { padding: clamp(2.25rem, 5vw, 3.75rem) var(--wp--preset--spacing--40); }
.hif-funnel__screen[hidden] { display: none; }

/* ---- Step 1: "Find Meals That Match Your Taste" ---- */
.hif-funnel__intro-head { text-align: center; max-width: 980px; margin: 0 auto clamp(2rem, 4vw, 3rem); }
.hif-funnel__intro-title {
	margin: 0 0 0.75rem;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 500;
	font-size: clamp(2rem, 4.2vw, 3rem);
	line-height: 1.1;
	color: #fff;
}
.hif-funnel__accent {
	font-family: var(--wp--preset--font-family--script);
	font-weight: 400;
	color: var(--wp--preset--color--accent);
	font-size: 1.06em;
	margin-left: 0.15em;
}
.hif-funnel__intro-sub { margin: 0 auto; max-width: 100%; font-size: 1rem; line-height: 1.6; color: rgba(255,255,255,0.85); }

.hif-funnel__cards { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.25rem, 2.5vw, 2rem); }
.hif-funnel__card {
	border-radius: 18px;
	padding: clamp(1.25rem, 2vw, 1.75rem);
	display: flex;
	flex-direction: column;
	background-repeat: repeat;
	background-size: 50px;
	color: var(--wp--preset--color--base);
	cursor: pointer;
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.hif-funnel__card { box-shadow: 0 6px 22px rgba(0, 0, 0, 0.20); outline: 1px solid rgba(255, 255, 255, 0.22); outline-offset: -1px; }
.hif-funnel__card:hover { transform: translateY(-3px); box-shadow: 0 12px 32px rgba(0, 0, 0, 0.28); }
.hif-funnel__card--new { background-color: var(--wp--preset--color--forest); background-image: url("../images/patterns/green-pattern.png"); }
.hif-funnel__card--love { background-color: var(--wp--preset--color--primary); background-image: url("../images/patterns/pink-pattern.png"); }
.hif-funnel__card-title { margin: 0; font-family: var(--wp--preset--font-family--display); font-weight: 500; font-size: clamp(1.6rem, 2.6vw, 2.1rem); line-height: 1.1; }
.hif-funnel__card-desc { margin: 0.6rem 0 1.1rem; font-size: 0.98rem; line-height: 1.5; opacity: 0.92; }

.hif-funnel__card-media { position: relative; margin: 0 0 1.1rem; }
.hif-funnel__card-media img { display: block; width: 100%; height: clamp(190px, 22vw, 250px); object-fit: cover; border-radius: 12px; }
.hif-funnel__badge {
	position: absolute; top: 12px; left: 12px;
	display: inline-flex; align-items: center; gap: 0.4rem;
	background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast);
	font-size: 0.82rem; font-weight: 600;
	padding: 0.35rem 0.7rem; border-radius: 8px;
	box-shadow: 0 3px 10px rgba(0, 0, 0, 0.18);
}
.hif-funnel__badge-ico { display: inline-flex; }

.hif-funnel__feats {
	list-style: none; margin: 0 0 1.25rem; padding: 1rem 0.25rem;
	display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 1.25rem;
	background: rgba(0, 0, 0, 0.16); border-radius: 12px;
}
.hif-funnel__feats li { display: flex; align-items: center; gap: 0.6rem; font-size: 0.95rem; font-weight: 600; line-height: 1.25; padding-left: 0.6rem; }
.hif-funnel__feat-ico { flex: 0 0 auto; display: inline-flex; color: var(--wp--preset--color--base); opacity: 0.95; }
.hif-funnel__feat-ico svg { width: 22px; height: 22px; }

.hif-funnel__card-cta {
	margin: auto 0 0;
	display: flex; align-items: center; justify-content: center; gap: 0.5rem;
	/* width: 100%; */
	padding: 0.95rem 1.25rem;
	border: 0; border-radius: 6px;
	font: inherit; font-size: 1.02rem; font-weight: 600;
	text-decoration: none; cursor: pointer;
	transition: filter 0.15s ease;
}
.hif-funnel__card-cta:hover { filter: brightness(0.96); }
.hif-funnel__card--new .hif-funnel__card-cta { background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast); }
.hif-funnel__card--love .hif-funnel__card-cta { background: var(--wp--preset--color--accent); color: var(--wp--preset--color--contrast); }
.hif-funnel__card-foot { margin: 0.85rem 0 0; text-align: center; font-size: 0.82rem; line-height: 1.4; opacity: 0.78; }

/* ---- Mobile toggle (segmented pill control — shown ≤860px only) ---- */
.hif-funnel__toggle {
	display: none;
	align-items: center;
	background: #fff;
	border-radius: 50px;
	padding: 4px;
	margin: 0 auto clamp(1.25rem, 3vw, 2rem);
	max-width: 360px;
	width: 100%;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.10);
}
.hif-funnel__toggle-btn {
	flex: 1;
	border: none;
	background: transparent;
	border-radius: 50px;
	padding: 0.65rem 0.75rem;
	font: inherit;
	font-size: 0.92rem;
	font-weight: 500;
	color: var(--wp--preset--color--contrast);
	cursor: pointer;
	transition: background 0.18s ease, font-weight 0.1s ease;
	white-space: nowrap;
	text-align: center;
}
.hif-funnel__toggle-btn.is-active {
	background: var(--wp--preset--color--accent);
	font-weight: 700;
	color: var(--wp--preset--color--contrast);
}

@media (max-width: 860px) {
	.hif-funnel__toggle { display: flex; }
	.hif-funnel__cards { grid-template-columns: 1fr; max-width: 480px; }
	.hif-funnel__card:not(.is-active) { display: none; }
}
@media (max-width: 600px) {
	.hif-funnel__steps { overflow-x: auto; }
	.hif-funnel__step-label { font-size: 0.9rem; }
	.hif-funnel__feats { grid-template-columns: 1fr; gap: 0.7rem; }
}

/* ============================================================
   STEP 2 — Order-type selector + config panel
   ============================================================ */

/* Two-column layout */
.hif-funnel__ot-layout {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
	gap: clamp(1.5rem, 3vw, 2.5rem);
	max-width: 1180px;
	margin: 0 auto;
}

/* ── Left column ── */
.hif-funnel__ot-nav {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	margin-bottom: 1rem;
}
.hif-funnel__ot-back {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px; height: 34px;
	border: 1.5px solid var(--wp--preset--color--primary);
	border-radius: 50%;
	background: none;
	cursor: pointer;
	color: var(--wp--preset--color--primary);
	transition: background 0.15s ease, color 0.15s ease;
	flex-shrink: 0;
}
.hif-funnel__ot-back:hover { background: var(--wp--preset--color--primary); color: #fff; }
.hif-funnel__ot-crumb {
	font-size: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.07em;
	color: var(--wp--preset--color--primary);
}
.hif-funnel__ot-heading {
	margin: 0 0 1.25rem;
	font-family: var(--wp--preset--font-family--display);
	font-weight: 500;
	font-size: clamp(1.4rem, 2.2vw, 1.9rem);
	line-height: 1.15;
	color: var(--wp--preset--color--forest);
}

/* Left order-type cards */
.hif-funnel__ot-cards { display: flex; flex-direction: column; gap: 0.75rem; }
.hif-funnel__ot-card {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 0.85rem;
	padding: 0.9rem 1rem;
	background: var(--wp--preset--color--base);
	border: 2px solid transparent;
	border-radius: 12px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.07);
	cursor: pointer;
	text-align: left;
	font: inherit;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.hif-funnel__ot-card:hover { border-color: var(--wp--preset--color--primary); box-shadow: 0 4px 16px rgba(0, 0, 0, 0.10); }
.hif-funnel__ot-card.is-active { border-color: var(--wp--preset--color--primary); box-shadow: 0 4px 18px rgba(205, 51, 114, 0.18); }

/* Icon circle */
.hif-funnel__ot-ico {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px; height: 44px;
	border-radius: 50%;
	flex-shrink: 0;
}
.hif-funnel__ot-ico--saffron { background: rgba(234, 167, 0, 0.15); color: #B8820A; }
.hif-funnel__ot-ico--forest  { background: rgba(30, 90, 60, 0.12);  color: var(--wp--preset--color--forest); }
.hif-funnel__ot-ico--primary { background: rgba(205, 51, 114, 0.12); color: var(--wp--preset--color--primary); }
.hif-funnel__ot-ico--accent  { background: rgba(234, 167, 0, 0.12); color: #B8820A; }

.hif-funnel__ot-card-body { display: flex; flex-direction: column; gap: 0.15rem; }
.hif-funnel__ot-card-title { font-size: 0.97rem; font-weight: 700; color: var(--wp--preset--color--contrast); line-height: 1.2; }
.hif-funnel__ot-card-desc  { font-size: 0.8rem; color: var(--wp--preset--color--contrast-muted); line-height: 1.4; }
.hif-funnel__ot-card-tag   { font-size: 0.75rem; font-weight: 600; color: var(--wp--preset--color--primary); margin-top: 0.1rem; }

.hif-funnel__ot-card-select {
	flex-shrink: 0;
	padding: 0.45rem 0.8rem;
	background: var(--wp--preset--color--primary);
	color: #fff;
	border-radius: 6px;
	font-size: 0.82rem;
	font-weight: 600;
	white-space: nowrap;
}
.hif-funnel__ot-card.is-active .hif-funnel__ot-card-select { background: var(--wp--preset--color--forest); }

/* ── Right panel ── */
.hif-funnel__ot-panel {
	background: var(--wp--preset--color--cream);
	border-radius: 16px;
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08);
	padding: clamp(1.25rem, 2vw, 1.75rem);
	display: flex;
	flex-direction: column;
	gap: 1.1rem;
	align-self: start;
	position: sticky;
	top: 100px;
}

/* Hero image */
.hif-funnel__ot-hero {
	position: relative;
	margin: 0;
	border-radius: 12px;
	overflow: hidden;
}
.hif-funnel__ot-hero img {
	display: block;
	width: 100%;
	height: clamp(180px, 20vw, 240px);
	object-fit: cover;
}
.hif-funnel__ot-hero .hif-funnel__badge { position: absolute; top: 12px; left: 12px; }

/* Stars */
.hif-funnel__ot-stars {
	display: flex;
	align-items: center;
	gap: 0.25rem;
	color: #F5B301;
}
.hif-funnel__ot-stars-label { font-size: 0.85rem; color: var(--wp--preset--color--contrast-muted); margin-left: 0.35rem; }
.hif-funnel__ot-stars-label a { color: var(--wp--preset--color--forest); }

/* Config panel (per type) */
.hif-funnel__ot-config { display: flex; flex-direction: column; gap: 0.9rem; }
.hif-funnel__ot-config[hidden] { display: none; }
.hif-funnel__ot-config-title {
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.1rem, 1.8vw, 1.4rem);
	font-weight: 500;
	color: var(--wp--preset--color--forest);
}

/* Pref / cadence tab rows */
.hif-funnel__ot-tabs-row { display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap; }
.hif-funnel__ot-tab-lbl { font-size: 0.82rem; font-weight: 700; color: var(--wp--preset--color--contrast-muted); white-space: nowrap; }
.hif-funnel__ot-tabs { display: flex; gap: 0.35rem; flex-wrap: wrap; }
.hif-funnel__ot-tab {
	padding: 0.35rem 0.85rem;
	border: 1.5px solid rgba(0, 0, 0, 0.15);
	border-radius: 50px;
	background: none;
	font: inherit;
	font-size: 0.82rem;
	font-weight: 500;
	cursor: pointer;
	color: var(--wp--preset--color--contrast);
	transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}
.hif-funnel__ot-tab.is-active {
	background: var(--wp--preset--color--forest);
	border-color: var(--wp--preset--color--forest);
	color: #fff;
	font-weight: 600;
}

/* Plan cards */
.hif-funnel__ot-plans { display: grid; grid-template-columns: repeat(auto-fit, minmax(100px, 1fr)); gap: 0.5rem; }
.hif-funnel__ot-plan {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.2rem;
	padding: 0.75rem 0.5rem;
	border: 2px solid rgba(0, 0, 0, 0.12);
	border-radius: 10px;
	background: none;
	font: inherit;
	cursor: pointer;
	text-align: center;
	transition: border-color 0.15s ease, background 0.15s ease;
}
.hif-funnel__ot-plan:hover { border-color: var(--wp--preset--color--primary); }
.hif-funnel__ot-plan.is-active, .hif-funnel__ot-plan.is-popular { border-color: var(--wp--preset--color--primary); background: rgba(205, 51, 114, 0.05); }
.hif-funnel__ot-plan-badge {
	position: absolute;
	top: -10px;
	left: 50%; transform: translateX(-50%);
	background: var(--wp--preset--color--primary);
	color: #fff;
	font-size: 0.68rem;
	font-weight: 700;
	padding: 0.15rem 0.55rem;
	border-radius: 50px;
	white-space: nowrap;
}
.hif-funnel__ot-plan-label { font-size: 0.92rem; font-weight: 700; color: var(--wp--preset--color--contrast); }
.hif-funnel__ot-plan-desc  { font-size: 0.75rem; color: var(--wp--preset--color--contrast-muted); }

/* Action area */
.hif-funnel__ot-actions { display: flex; flex-direction: column; gap: 0.6rem; }
.hif-funnel__ot-qty {
	display: flex;
	align-items: center;
	gap: 0;
	border: 1.5px solid rgba(0, 0, 0, 0.15);
	border-radius: 6px;
	overflow: hidden;
	width: fit-content;
}
.hif-funnel__ot-qty-btn {
	width: 40px; height: 40px;
	border: none;
	background: var(--wp--preset--color--cream, #fffaf5);
	font: inherit; font-size: 1.1rem; font-weight: 600;
	cursor: pointer;
	color: var(--wp--preset--color--contrast);
}
.hif-funnel__ot-qty-input {
	width: 48px; height: 40px;
	border: none;
	border-left: 1.5px solid rgba(0, 0, 0, 0.12);
	border-right: 1.5px solid rgba(0, 0, 0, 0.12);
	text-align: center;
	font: inherit; font-size: 0.95rem;
	background: #fff;
}
.hif-funnel__ot-btn-row { display: flex; gap: 0.6rem; }
.hif-funnel__ot-btn-primary {
	flex: 1;
	padding: 0.9rem 1rem;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
	border: none;
	border-radius: 6px;
	font: inherit; font-size: 0.97rem; font-weight: 600;
	cursor: pointer;
	transition: filter 0.15s ease;
}
.hif-funnel__ot-btn-primary:hover { filter: brightness(0.95); }
.hif-funnel__ot-btn-ghost {
	flex: 1;
	padding: 0.9rem 1rem;
	background: none;
	color: var(--wp--preset--color--contrast);
	border: 2px solid rgba(0, 0, 0, 0.18);
	border-radius: 6px;
	font: inherit; font-size: 0.97rem; font-weight: 600;
	cursor: pointer;
	transition: border-color 0.15s ease;
}
.hif-funnel__ot-btn-ghost:hover { border-color: var(--wp--preset--color--contrast); }

/* Discounts tracker */
.hif-funnel__ot-discounts {
	background: rgba(30, 90, 60, 0.06);
	border-radius: 10px;
	padding: 0.85rem 1rem;
}
.hif-funnel__ot-disc-title { margin: 0 0 0.5rem; font-size: 0.9rem; font-weight: 700; color: var(--wp--preset--color--forest); }
.hif-funnel__ot-disc-track {
	height: 8px;
	background: rgba(0, 0, 0, 0.10);
	border-radius: 50px;
	overflow: hidden;
	margin-bottom: 0.45rem;
}
.hif-funnel__ot-disc-fill {
	height: 100%;
	background: var(--wp--preset--color--forest);
	border-radius: 50px;
	transition: width 0.4s ease;
}
.hif-funnel__ot-disc-copy { margin: 0; font-size: 0.78rem; color: var(--wp--preset--color--contrast-muted); }

/* ── Responsive: stack on mobile ── */
@media (max-width: 860px) {
	.hif-funnel__ot-layout { grid-template-columns: minmax(0, 1fr); }
	.hif-funnel__ot-panel { position: static; }
	.hif-funnel__ot-hero img { height: 180px; }
}

/* ═══════════════════════════════════════════════════════════════
   STEP 2 — LEFT COLUMN REDESIGN (Figma: crimson bg, white text)
   ═══════════════════════════════════════════════════════════════ */
.hif-funnel__ot-left {
	background: transparent;
	border-radius: 0;
	padding: 0;
}
.hif-funnel__ot-back { border-color: rgba(255,255,255,0.45); color: #fff; }
.hif-funnel__ot-back:hover { background: rgba(255,255,255,0.18); color: #fff; border-color: #fff; }
.hif-funnel__ot-crumb { color: var(--wp--preset--color--accent); }
.hif-funnel__ot-heading { color: #fff; margin-bottom: 0.35rem; }
.hif-funnel__ot-subtitle {
	margin: 0 0 1.25rem;
	font-size: 0.88rem;
	color: rgba(255,255,255,0.72);
	line-height: 1.55;
}

/* Cards on crimson bg — square product image + stacked body */
.hif-funnel__ot-card {
	grid-template-columns: auto 1fr;
	align-items: stretch;
	gap: 1rem;
	padding: 0.8rem;
	background: rgba(255,255,255,0.55);
	border-color: transparent;
	box-shadow: none;
}
.hif-funnel__ot-card:hover { background: rgba(255,255,255,0.8); border-color: rgba(255,255,255,0.6); box-shadow: 0 4px 16px rgba(0,0,0,0.14); }
.hif-funnel__ot-card.is-active {
	background: var(--wp--preset--color--base);
	border-color: var(--wp--preset--color--accent);
	box-shadow: 0 6px 22px rgba(0,0,0,0.22);
}

/* Square product image (left), full card height */
.hif-funnel__ot-media {
	width: 118px;
	align-self: stretch;
	min-height: 118px;
	border-radius: 12px;
	overflow: hidden;
	flex-shrink: 0;
	background: var(--wp--preset--color--forest);
}
.hif-funnel__ot-media img { width: 100%; height: 100%; object-fit: cover; display: block; }

.hif-funnel__ot-card-body { justify-content: center; gap: 0.22rem; }
.hif-funnel__ot-card-title { font-size: 1.02rem; }
.hif-funnel__ot-card-desc  { font-size: 0.83rem; }

/* CTA button inside card — always crimson, visual only (whole card is the control) */
.hif-funnel__ot-card-cta {
	align-self: flex-start;
	display: inline-block;
	margin-top: 0.5rem;
	padding: 0.48rem 1rem;
	background: var(--wp--preset--color--primary);
	color: #fff;
	border-radius: 6px;
	font-size: 0.85rem;
	font-weight: 600;
	white-space: nowrap;
	pointer-events: none;
}
.hif-funnel__ot-card.is-active .hif-funnel__ot-card-cta { background: var(--wp--preset--color--forest); }

/* Footer caps line */
.hif-funnel__ot-card-footer {
	display: block;
	margin-top: 0.6rem;
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	color: var(--wp--preset--color--forest);
	opacity: 0.78;
}

/* Hide shared hero/rating row when a full self-contained panel is active */
.hif-funnel__ot-panel:has(.hif-tf:not([hidden])) > .hif-funnel__ot-hero,
.hif-funnel__ot-panel:has(.hif-tf:not([hidden])) > .hif-funnel__ot-stars { display: none; }

/* ═══════════════════════════════════════════════════════════════
   TIFFINS CONFIG PANEL  hif-tf__
   ═══════════════════════════════════════════════════════════════ */
.hif-tf { display: flex; flex-direction: column; gap: 0; }
.hif-tf[hidden] { display: none; }

/* 1. Carousel */
.hif-tf__carousel {
	background: var(--wp--preset--color--accent);
	border-radius: 12px 12px 0 0;
	overflow: hidden;
	margin: calc(-1 * clamp(1.25rem,2vw,1.75rem));
	margin-bottom: 0;
}
.hif-tf__track {
	--tf-slide: 68%;       /* center slide width — sides peek (3 visible) */
	--tf-gap: 10px;
	--tf-i: 0;             /* active index, set by JS */
	display: flex;
	gap: var(--tf-gap);
	padding: 1.1rem 0 0.3rem;
	/* Centre the active slide: half the leftover width, minus one step per index. */
	transform: translateX(calc((100% - var(--tf-slide)) / 2 - var(--tf-i) * (var(--tf-slide) + var(--tf-gap))));
	transition: transform 0.4s cubic-bezier(0.4,0,0.2,1);
}
.hif-tf__slide {
	flex: 0 0 var(--tf-slide);
	margin: 0;
	border-radius: 10px;
	overflow: hidden;
	transform: scale(0.88);
	opacity: 0.5;
	transition: transform 0.35s ease, opacity 0.35s ease;
}
.hif-tf__slide.is-active { transform: scale(1); opacity: 1; box-shadow: 0 8px 22px rgba(0,0,0,0.18); }
.hif-tf__slide img { width: 100%; height: 325px; object-fit: cover; display: block; }
.hif-tf__dots { display: flex; justify-content: center; gap: 6px; padding: 0.65rem 1rem; }
.hif-tf__dot {
	width: 10px; height: 10px;
	border-radius: 50%;
	border: 2px solid rgba(42,33,24,0.4);
	background: transparent;
	cursor: pointer; padding: 0;
	transition: background 0.15s ease, border-color 0.15s ease;
}
.hif-tf__dot.is-active { background: var(--wp--preset--color--contrast); border-color: var(--wp--preset--color--contrast); }

/* 2. Product header */
.hif-tf__header { padding: 1.1rem 0 0.6rem; border-bottom: 1px solid var(--wp--preset--color--border); margin-bottom: 0.9rem; }
.hif-tf__title { margin: 0 0 0.3rem; font-size: clamp(1.05rem,1.6vw,1.3rem); font-weight: 700; color: var(--wp--preset--color--contrast); line-height: 1.25; }
.hif-tf__rating { display: flex; align-items: center; gap: 3px; }
.hif-tf__star { display: inline-flex; flex-shrink: 0; }
.hif-tf__star svg { display: block; }
.hif-tf__rating-label { margin-left: 0.5rem; font-size: 0.85rem; font-weight: 600; color: var(--wp--preset--color--contrast); }

/* 3–4. Preference / delivery selectors */
.hif-tf__selector { margin-bottom: 0.85rem; }
.hif-tf__sel-label { margin: 0 0 0.45rem; font-size: 0.82rem; font-weight: 700; color: var(--wp--preset--color--contrast); }
/* Segmented control: one white pill container, active = crimson pill inside. */
.hif-tf__tabs {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	max-width: 100%;
	width: 100%;
	padding: 0.32rem;
	background: #fff;
	border: 1.5px solid var(--wp--preset--color--border);
	border-radius: 50px;
	box-shadow: 0 1px 4px rgba(0,0,0,0.05);
}
.hif-tf__tab {
	flex: 1;
	padding: 0.62rem 1.5rem;
	border: none;
	border-radius: 50px;
	background: transparent;
	color: var(--wp--preset--color--primary);
	font: inherit; font-size: 0.9rem; font-weight: 600;
	cursor: pointer; white-space: nowrap;
	transition: background 0.15s, color 0.15s;
}
.hif-tf__tab:hover { color: var(--wp--preset--color--primary-dark); }
.hif-tf__tab.is-active { background: var(--wp--preset--color--primary); color: #fff; }

/* 5. Box size plan cards (Figma: white card, centred, flush footer button) */
.hif-tf__plans { display: grid; grid-template-columns: repeat(3,1fr); gap: 0.6rem; margin-bottom: 1.1rem; }
.hif-tf__plan {
	position: relative;
	display: flex; flex-direction: column;
	background: #fff;
	border: 2px solid var(--wp--preset--color--border);
	border-radius: 12px;
	overflow: hidden;
	text-align: center;
	cursor: pointer;
	transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
}
.hif-tf__plan:hover { border-color: rgba(194,24,91,0.55); }
.hif-tf__plan.is-active { border-color: var(--wp--preset--color--primary); background: #FCEAF1; box-shadow: 0 6px 18px rgba(194,24,91,0.18); }

.hif-tf__plan-body { flex: 1 1 auto; display: flex; flex-direction: column; gap: 0.42rem; padding: 0.95rem 0.7rem 1rem; }
.hif-tf__plan-head { display: flex; flex-direction: column; line-height: 1.1; }
.hif-tf__plan-title { font-family: var(--wp--preset--font-family--display); font-weight: 500; font-size: 1.04rem; color: var(--wp--preset--color--contrast); }
.hif-tf__plan-dishes { font-family: var(--wp--preset--font-family--display); font-weight: 500; font-size: 1.04rem; color: var(--wp--preset--color--contrast); }

.hif-tf__plan-price-row { display: flex; align-items: baseline; justify-content: center; gap: 0.4rem; flex-wrap: wrap; }
.hif-tf__plan-price { font-size: 1.18rem; font-weight: 800; color: var(--wp--preset--color--primary); }
.hif-tf__plan-was { font-size: 0.88rem; font-weight: 500; color: var(--wp--preset--color--contrast-muted); text-decoration: line-through; }
.hif-tf__plan-per { font-size: 0.78rem; font-weight: 600; color: var(--wp--preset--color--forest); }
.hif-tf__plan-yield { font-size: 0.8rem; color: var(--wp--preset--color--contrast); }

.hif-tf__plan-includes {
	margin: 0.25rem 0 0; padding: 0.55rem 0.7rem;
	list-style: none; text-align: left;
	border: 1px solid var(--wp--preset--color--border); border-radius: 8px;
	background: rgba(42,33,24,0.025);
	display: flex; flex-direction: column; gap: 0.28rem;
}
.hif-tf__plan.is-active .hif-tf__plan-includes { background: #FBDDEA; border-color: rgba(194,24,91,0.22); }
.hif-tf__plan-includes li { font-size: 0.76rem; color: var(--wp--preset--color--contrast); line-height: 1.35; }
.hif-tf__plan-includes strong { font-weight: 700; }

.hif-tf__plan-btn {
	width: 100%; padding: 0.7rem 0.5rem;
	border: none; border-radius: 0;
	background: rgba(255,184,5,0.28); color: var(--wp--preset--color--contrast-muted);
	font: inherit; font-size: 0.86rem; font-weight: 600; cursor: pointer;
	transition: background 0.15s, color 0.15s;
}
.hif-tf__plan:hover .hif-tf__plan-btn { background: rgba(255,184,5,0.5); color: var(--wp--preset--color--contrast); }
.hif-tf__plan-btn.is-selected,
.hif-tf__plan.is-active .hif-tf__plan-btn { background: var(--wp--preset--color--primary); color: #fff; }

/* 6. Primary CTA */
.hif-tf__cta {
	display: block;
	padding: 0.9rem 1.5rem;
	background: var(--wp--preset--color--primary);
	color: #fff;
	border: none; border-radius: 6px;
	font: inherit; font-size: 1rem; font-weight: 600;
	cursor: pointer; text-align: center;
	margin-bottom: 1.1rem;
	transition: filter 0.15s;
}
.hif-tf__cta:hover { filter: brightness(0.95); }

/* 7. Info tabs */
.hif-tf__info { margin-bottom: 1.1rem; }
/* Segmented control: white pill container, active = saffron pill. Spans full width. */
.hif-tf__info-tabs {
	display: flex; align-items: center; justify-content: space-between;
	gap: 0.3rem;
	margin-bottom: 0.85rem;
	padding: 0.35rem;
	background: #fff;
	border: 1.5px solid var(--wp--preset--color--border);
	border-radius: 50px;
	box-shadow: 0 1px 4px rgba(0,0,0,0.05);
}
.hif-tf__info-tab {
	padding: 0.58rem 1.1rem;
	border: none; border-radius: 50px;
	background: transparent; color: var(--wp--preset--color--contrast);
	font: inherit; font-size: 0.9rem; font-weight: 600; cursor: pointer; white-space: nowrap;
	transition: background 0.15s, color 0.15s;
}
.hif-tf__info-tab:hover { background: rgba(255,184,5,0.18); }
.hif-tf__info-tab.is-active { background: var(--wp--preset--color--accent); color: var(--wp--preset--color--contrast); font-weight: 700; }
.hif-tf__info-panel {
	background: #fff;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 12px;
	padding: 1rem 1.15rem;
	font-size: 0.88rem; color: var(--wp--preset--color--contrast); line-height: 1.6;
}
.hif-tf__info-panel[hidden] { display: none; }
.hif-tf__info-panel ul { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 0.6rem; }
.hif-tf__info-panel li { padding-left: 1.1rem; position: relative; }
.hif-tf__info-panel li::before { content: '•'; position: absolute; left: 0; color: var(--wp--preset--color--contrast); font-weight: 700; }
.hif-tf__info-panel p { margin: 0; }

/* 8. Feature cards — white with a pink icon circle (matches "Perfect for"). */
.hif-tf__features { display: grid; grid-template-columns: 1fr 1fr; gap: 0.7rem; margin-bottom: 1.1rem; }
.hif-tf__feature { display: flex; align-items: flex-start; gap: 0.7rem; padding: 0.9rem; background: #fff; border-radius: 12px; border: 1px solid var(--wp--preset--color--border); }
.hif-tf__feature-ico {
	display: inline-flex; align-items: center; justify-content: center;
	width: 40px; height: 40px; border-radius: 50%;
	background: rgba(194,24,91,0.10);
	color: var(--wp--preset--color--primary);
	flex-shrink: 0;
}
.hif-tf__feature-ico svg { width: 20px; height: 20px; }
.hif-tf__feature strong { display: block; font-size: 0.9rem; font-weight: 700; color: var(--wp--preset--color--contrast); margin-bottom: 0.25rem; }
.hif-tf__feature p { margin: 0; font-size: 0.78rem; color: var(--wp--preset--color--contrast-muted); line-height: 1.45; }

/* 9. Perfect for chips */
.hif-tf__perfect { margin-bottom: 1.1rem; }
.hif-tf__chips { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0.5rem; }
.hif-tf__chip {
	display: flex; flex-direction: column; align-items: center; gap: 0.55rem;
	padding: 0.85rem 0.4rem;
	background: #fff;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 10px;
	text-align: center;
}
.hif-tf__chip-ico {
	display: inline-flex; align-items: center; justify-content: center;
	width: 46px; height: 46px;
	border-radius: 50%;
	background: rgba(194,24,91,0.10);
	color: var(--wp--preset--color--contrast);
}
.hif-tf__chip-label { font-size: 0.74rem; font-weight: 500; color: var(--wp--preset--color--contrast); line-height: 1.3; }

/* 10. Discounts & Rewards */
.hif-tf__rewards { margin-bottom: 0.25rem; }
.hif-tf__rewards-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.6rem; }
.hif-tf__rewards-title { font-size: 0.9rem; font-weight: 700; color: var(--wp--preset--color--contrast); }
.hif-tf__rewards-link { font-size: 0.8rem; font-weight: 600; color: var(--wp--preset--color--primary); text-decoration: none; }
.hif-tf__rewards-link:hover { text-decoration: underline; }
.hif-tf__rewards-card { background: #fff; border: 2.5px solid var(--wp--preset--color--accent); border-radius: 12px; overflow: hidden; }
.hif-tf__rewards-main { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.1rem; }
.hif-tf__rewards-copy { flex: 1 1 auto; }
.hif-tf__rewards-headline { margin: 0 0 0.3rem; font-size: 1rem; font-weight: 800; color: var(--wp--preset--color--contrast); line-height: 1.2; }
.hif-tf__rewards-sub { margin: 0; font-size: 0.82rem; font-weight: 500; color: var(--wp--preset--color--primary); }
.hif-tf__rewards-progress { display: flex; align-items: flex-start; flex-shrink: 0; }
.hif-tf__rewards-step { display: flex; flex-direction: column; align-items: center; gap: 0.3rem; flex-shrink: 0; }
.hif-tf__rewards-step > span:last-child { font-size: 0.72rem; color: var(--wp--preset--color--contrast); white-space: nowrap; }
.hif-tf__rewards-dot { width: 30px; height: 30px; border-radius: 50%; background: #fff; color: var(--wp--preset--color--contrast-muted); font-size: 0.82rem; font-weight: 700; display: flex; align-items: center; justify-content: center; border: 2px solid var(--wp--preset--color--border); }
.hif-tf__rewards-step.is-active .hif-tf__rewards-dot { background: var(--wp--preset--color--primary); border-color: var(--wp--preset--color--primary); color: #fff; }
.hif-tf__rewards-dot--gift { background: rgba(194,24,91,0.12); border-color: var(--wp--preset--color--primary); color: var(--wp--preset--color--primary); }
.hif-tf__rewards-line { width: 42px; height: 2px; background: var(--wp--preset--color--border); margin: 15px 3px 0; }
.hif-tf__rewards-line.is-done { background: var(--wp--preset--color--primary); }
.hif-tf__rewards-perks { display: flex; justify-content: space-between; gap: 0.5rem; padding: 0.65rem 1.1rem; font-size: 0.8rem; color: var(--wp--preset--color--contrast); border-top: 1px solid var(--wp--preset--color--border); background: rgba(42,33,24,0.02); }
.hif-tf__rewards-perks span { display: inline-flex; align-items: center; gap: 0.4rem; }
.hif-tf__rewards-perks svg { color: var(--wp--preset--color--contrast); flex-shrink: 0; }

/* Responsive: tiffins on mobile */
@media (max-width: 860px) {
	.hif-funnel__ot-left { border-radius: 12px; }
	.hif-tf__plans { grid-template-columns: 1fr; }
	.hif-tf__carousel { margin: calc(-1 * 1.25rem); }
	.hif-tf__track { --tf-slide: 82%; --tf-gap: 8px; }
	.hif-tf__slide img { height: 200px; }
	.hif-tf__features { grid-template-columns: 1fr; }
	.hif-tf__chips { grid-template-columns: repeat(3, 1fr); }
	.hif-tf__rewards-main { flex-direction: column; align-items: stretch; }
	.hif-tf__rewards-progress { justify-content: center; }
	.hif-tf__rewards-perks { flex-wrap: wrap; justify-content: center; gap: 0.5rem 1.1rem; }
	/* Preference/delivery segmented control fills the row; tabs share the width and
	   may shrink below their label width (min-width:0 + wrap) so they never force
	   the panel wider than the viewport. */
	.hif-tf__tabs { display: flex; width: 100%; }
	.hif-tf__tab { flex: 1 1 0; min-width: 0; padding: 0.5rem 0.35rem; font-size: 0.78rem; line-height: 1.15; white-space: normal; text-align: center; }
	/* Info tab bar scrolls horizontally when the four labels don't fit. */
	.hif-tf__info-tabs { justify-content: flex-start; overflow-x: auto; -webkit-overflow-scrolling: touch; }
	.hif-tf__info-tab { flex: 0 0 auto; padding: 0.5rem 0.9rem; font-size: 0.84rem; }
}

/* ═══════════════════════════════════════════════════════════════
   TASTER PACK CONFIG PANEL  hif-tf--taster  (variable product 247)
   ═══════════════════════════════════════════════════════════════ */
.hif-tf__plans--taster { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.85rem; margin-top: 0.4rem; }
.hif-tf__plan--taster { text-align: center; overflow: visible; }
.hif-tf__plan--taster .hif-tf__plan-body { gap: 0.5rem; padding: 1.15rem 0.85rem 1rem; }

/* Ribbon (First Delivery Free) + Best Value badge */
.hif-tf__plan-ribbon {
	position: absolute; top: -13px; left: 14px; z-index: 2;
	display: inline-flex; align-items: center; gap: 0.32rem;
	padding: 0.34rem 0.7rem;
	background: var(--wp--preset--color--forest); color: #fff;
	border-radius: 6px; font-size: 0.74rem; font-weight: 600; white-space: nowrap;
	box-shadow: 0 3px 8px rgba(0,0,0,0.15);
}
.hif-tf__plan-ribbon svg { flex-shrink: 0; }
.hif-tf__plan-badge {
	position: absolute; top: 10px; right: 0; z-index: 2;
	padding: 0.28rem 0.7rem;
	background: var(--wp--preset--color--accent); color: var(--wp--preset--color--contrast);
	border-radius: 6px 0 0 6px; font-size: 0.72rem; font-weight: 700; white-space: nowrap;
}

/* Includes: 2-column grid inside the taster card */
.hif-tf__plan-includes--2col { display: grid; grid-template-columns: 1fr 1fr; gap: 0.3rem 0.7rem; }

/* Feature icons row inside the taster card */
.hif-tf__plan-feats {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.4rem;
	margin-top: 0.55rem; padding-top: 0.8rem;
	border-top: 1px solid var(--wp--preset--color--border);
}
.hif-tf__plan.is-active .hif-tf__plan-feats { border-color: rgba(194,24,91,0.22); }
.hif-tf__plan-feat { display: flex; flex-direction: column; align-items: center; gap: 0.35rem; }
.hif-tf__plan-feat-ico {
	display: inline-flex; align-items: center; justify-content: center;
	width: 40px; height: 40px; border-radius: 50%;
	background: #fff; border: 1px solid var(--wp--preset--color--border);
	color: var(--wp--preset--color--primary);
}
.hif-tf__plan-feat-label { font-size: 0.68rem; line-height: 1.2; color: var(--wp--preset--color--contrast-muted); }

/* Action row: qty + Add to cart (outline) + Buy Now (crimson) */
.hif-tf__actions { display: flex; align-items: stretch; gap: 0.7rem; margin: 1.1rem 0; }
.hif-tf__actions .hif-funnel__ot-qty { flex: 0 0 auto; margin: 0; }
.hif-tf__btn-cart, .hif-tf__btn-buy {
	flex: 1 1 auto; display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
	padding: 0.85rem 1.1rem; border-radius: 6px; font: inherit; font-weight: 600; font-size: 0.98rem; cursor: pointer;
	transition: background 0.15s, color 0.15s, filter 0.15s;
}
.hif-tf__btn-cart { background: #fff; color: var(--wp--preset--color--contrast); border: 1.5px solid var(--wp--preset--color--border); }
.hif-tf__btn-cart:hover { border-color: var(--wp--preset--color--primary); color: var(--wp--preset--color--primary); }
.hif-tf__btn-buy { flex: 1.4 1 auto; background: var(--wp--preset--color--primary); color: #fff; border: 1.5px solid var(--wp--preset--color--primary); }
.hif-tf__btn-buy:hover { filter: brightness(0.95); }
.hif-tf__btn-buy svg { flex-shrink: 0; }

/* Persistent note (dish selection not possible) */
.hif-tf__note {
	margin: 0.8rem 0 0; padding: 0.7rem 0.9rem;
	background: #FCEAF1; border: 1px solid rgba(194,24,91,0.18); border-radius: 8px;
	font-size: 0.82rem; color: var(--wp--preset--color--contrast);
}
.hif-tf__note strong { font-weight: 700; }

/* Promise row (premium quality / frozen / delivered) */
.hif-tf__promise {
	display: grid; grid-template-columns: repeat(3, 1fr);
	margin: 1.1rem 0; padding: 0.9rem 0;
	border: 1px solid var(--wp--preset--color--border); border-radius: 10px; background: #fff;
}
.hif-tf__promise-item { display: flex; align-items: center; gap: 0.55rem; padding: 0 0.9rem; }
.hif-tf__promise-item + .hif-tf__promise-item { border-left: 1px solid var(--wp--preset--color--border); }
.hif-tf__promise-ico {
	display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0;
	width: 38px; height: 38px; border-radius: 50%;
	background: rgba(194,24,91,0.08); color: var(--wp--preset--color--primary);
}
.hif-tf__promise-text { display: flex; flex-direction: column; line-height: 1.25; text-align: left; }
.hif-tf__promise-text strong { font-size: 0.84rem; font-weight: 700; color: var(--wp--preset--color--contrast); }
.hif-tf__promise-text span { font-size: 0.74rem; color: var(--wp--preset--color--contrast-muted); }

@media (max-width: 860px) {
	.hif-tf__plans--taster { grid-template-columns: 1fr; }
	.hif-tf__actions { flex-wrap: wrap; }
	.hif-tf__actions .hif-funnel__ot-qty { flex: 1 1 100%; justify-content: center; }
	.hif-tf__promise { grid-template-columns: 1fr; }
	.hif-tf__promise-item + .hif-tf__promise-item { border-left: none; border-top: 1px solid var(--wp--preset--color--border); }
	.hif-tf__promise-item { padding: 0.55rem 0.9rem; }
}

/* ═══════════════════════════════════════════════════════════════
   CUSTOM ORDER CONFIG PANEL  hif-tf--custom  (no product)
   ═══════════════════════════════════════════════════════════════ */
.hif-tf__custom-desc { margin: 1rem 0 1.15rem; font-size: 0.92rem; line-height: 1.55; color: var(--wp--preset--color--contrast); }
.hif-tf__custom-feats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.7rem; margin-bottom: 1.15rem; }
.hif-tf__custom-feat {
	display: flex; align-items: center; gap: 0.6rem;
	padding: 0.75rem 0.85rem;
	background: #fff; border: 1px solid var(--wp--preset--color--border); border-radius: 10px;
}
.hif-tf__custom-feat-ico {
	display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0;
	width: 42px; height: 42px; border-radius: 50%;
	background: rgba(194,24,91,0.08); color: var(--wp--preset--color--primary);
}
.hif-tf__custom-feat-label { font-size: 0.86rem; font-weight: 600; line-height: 1.25; color: var(--wp--preset--color--contrast); }
.hif-tf__cta--link { display: block; text-decoration: none; }

@media (max-width: 860px) {
	.hif-tf__custom-feats { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════════════
   STEP 2 — MEAL-SELECTION MODAL  hif-funnel__meals / hif-mp__
   Full-screen overlay revealed by the funnel's show('meals').
   ═══════════════════════════════════════════════════════════════ */
.hif-funnel__meals {
	position: fixed; inset: 0; z-index: 99999;
	background: #5B1A30;
	display: flex; flex-direction: column;
}
.hif-funnel__meals.hif-funnel__screen[hidden] { display: none; }
html.hif-meals-open { overflow: hidden; }
/* The stepper inside the modal sits flush at the very top. */
.hif-funnel__meals .hif-funnel__stepper { flex: none; }
.hif-funnel__meals .hif-funnel__border { flex: none; }

/* Modal card */
.hif-mp {
	flex: 1 1 auto; min-height: 0;
	display: flex; flex-direction: column;
	width: min(1600px, 100% - 1.5rem);
	margin: 0.75rem auto;
	background: var(--wp--preset--color--cream);
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 12px 44px rgba(0, 0, 0, 0.35);
}

/* Header */
.hif-mp__header {
	flex: none;
	display: flex; align-items: center; gap: 1rem;
	padding: 1.15rem 1.5rem;
	background: var(--wp--preset--color--primary);
	color: #fff;
}
.hif-mp__back {
	flex: none; width: 48px; height: 48px;
	border: none; border-radius: 10px;
	background: var(--wp--preset--color--cream); color: var(--wp--preset--color--primary);
	display: inline-flex; align-items: center; justify-content: center; cursor: pointer;
	transition: background 0.15s;
}
.hif-mp__back:hover { background: #fff; }
.hif-mp__heading { flex: 1 1 auto; min-width: 0; }
.hif-mp__title { margin: 0; font-family: var(--wp--preset--font-family--display); font-weight: 500; font-size: clamp(1.35rem, 2.2vw, 1.9rem); line-height: 1.1; color: #fff; }
.hif-mp__sub { margin: 0.15rem 0 0; font-size: 0.9rem; font-weight: 600; color: rgba(255,255,255,0.9); }
.hif-mp__meta { flex: none; text-align: right; font-size: 0.9rem; line-height: 1.55; color: #fff; }
.hif-mp__meta p { margin: 0; }
.hif-mp__meta span { font-weight: 700; letter-spacing: 0.02em; }
.hif-mp__close {
	flex: none; width: 38px; height: 38px; margin-left: 0.25rem;
	border: none; border-radius: 50%;
	background: #fff; color: var(--wp--preset--color--primary);
	display: inline-flex; align-items: center; justify-content: center; cursor: pointer;
	transition: transform 0.15s;
}
.hif-mp__close:hover { transform: rotate(90deg); }

/* Scrolling body */
.hif-mp__body { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 1.5rem; }

/* Diet filter tabs */
.hif-mp__filters { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-bottom: 1.6rem; }
.hif-mp__filter {
	display: inline-flex; align-items: center; gap: 0.5rem;
	padding: 0.6rem 1.25rem;
	background: #fff; border: 1.5px solid var(--wp--preset--color--border); border-radius: 50px;
	font: inherit; font-size: 0.92rem; font-weight: 600; color: var(--wp--preset--color--contrast);
	cursor: pointer; transition: background 0.15s, border-color 0.15s;
}
.hif-mp__filter-ico { display: inline-flex; color: var(--wp--preset--color--primary); }
.hif-mp__filter-ico svg { width: 18px; height: 18px; }
.hif-mp__filter:hover { border-color: var(--wp--preset--color--accent); }
.hif-mp__filter.is-active { background: var(--wp--preset--color--accent); border-color: var(--wp--preset--color--accent); }
.hif-mp__filter.is-active .hif-mp__filter-ico { color: var(--wp--preset--color--contrast); }

/* Dish groups */
.hif-mp__group { margin-bottom: 1.9rem; }
.hif-mp__group:last-child { margin-bottom: 0; }
.hif-mp__group-head { margin: 0 0 0.9rem; font-size: 0.98rem; font-weight: 700; color: var(--wp--preset--color--contrast); }
.hif-mp__group-title { text-transform: uppercase; letter-spacing: 0.02em; }
.hif-mp__group-rule { font-weight: 600; }
.hif-mp__grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.85rem; }

/* Dish card */
.hif-mp__card {
	position: relative;
	display: grid; grid-template-columns: auto 1fr; gap: 0.7rem;
	padding: 0.6rem;
	background: #fff; border: 1px solid var(--wp--preset--color--border); border-radius: 10px;
}
.hif-mp__card[hidden], .hif-mp__group[hidden] { display: none; }
.hif-mp__diet { position: absolute; top: 0.45rem; right: 0.45rem; display: inline-flex; padding: 2px; background: rgba(255,184,5,0.22); border-radius: 5px; }
.hif-mp__diet svg { display: block; }
.hif-mp__card-media { width: 64px; height: 64px; border-radius: 8px; overflow: hidden; flex: none; }
.hif-mp__card-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hif-mp__card-body { display: flex; flex-direction: column; min-width: 0; }
.hif-mp__card-title { margin: 0 1.4rem 0 0; font-size: 0.82rem; font-weight: 600; color: var(--wp--preset--color--contrast); line-height: 1.25; }
.hif-mp__card-actions { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 0.4rem; padding-top: 0.45rem; }
.hif-mp__card-more { background: none; border: none; padding: 0; font: inherit; font-size: 0.78rem; font-weight: 600; color: var(--wp--preset--color--primary); cursor: pointer; text-decoration: underline; text-underline-offset: 2px; white-space: nowrap; }
.hif-mp__card-buy { flex: none; position: relative; }
.hif-mp__card-add {
	min-width: 70px; padding: 0.42rem 0.9rem;
	background: var(--wp--preset--color--primary); color: #fff;
	border: none; border-radius: 6px;
	font: inherit; font-size: 0.82rem; font-weight: 600; cursor: pointer;
	transition: background 0.15s;
}
.hif-mp__card-add:hover { background: var(--wp--preset--color--primary-dark); }
.hif-mp__stepper { display: none; align-items: stretch; border: 1.5px solid var(--wp--preset--color--primary); border-radius: 6px; overflow: hidden; }
.hif-mp__card.is-added .hif-mp__stepper { display: inline-flex; }
.hif-mp__card.is-added .hif-mp__card-add { display: none; }
.hif-mp__stepper-btn { width: 28px; border: none; background: var(--wp--preset--color--primary); color: #fff; font-size: 1.05rem; font-weight: 700; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; line-height: 1; }
.hif-mp__stepper-qty { min-width: 28px; padding: 0.3rem 0.2rem; text-align: center; font-size: 0.85rem; font-weight: 700; color: var(--wp--preset--color--contrast); background: #fff; display: inline-flex; align-items: center; justify-content: center; }
/* Group at its max: unadded cards' Add is muted + shows a tooltip on hover. */
.hif-mp__card.is-full .hif-mp__card-add { background: #E9A9C0; cursor: not-allowed; }
.hif-mp__card.is-max .hif-mp__stepper-btn[data-mp-step="1"] { opacity: 0.35; pointer-events: none; }
.hif-mp__card.is-full .hif-mp__card-add:hover::after {
	content: attr(data-full-msg);
	position: absolute; bottom: calc(100% + 8px); left: 50%; transform: translateX(-50%);
	background: #1a1a1a; color: #fff; font-size: 0.72rem; font-weight: 500; white-space: nowrap;
	padding: 0.3rem 0.6rem; border-radius: 5px; pointer-events: none; z-index: 3;
}

/* Substitution bar */
.hif-mp__subs {
	flex: none;
	display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 0.6rem 1.5rem;
	padding: 0.85rem 1.5rem;
	background: var(--wp--preset--color--accent); color: var(--wp--preset--color--contrast);
}
.hif-mp__subs-q { margin: 0; font-size: 0.92rem; }
.hif-mp__subs-q span { font-weight: 700; }
.hif-mp__subs-opts { display: flex; flex-wrap: wrap; gap: 1.25rem; }
.hif-mp__subs-opt { display: inline-flex; align-items: center; gap: 0.5rem; background: none; border: none; padding: 0; font: inherit; font-size: 0.9rem; font-weight: 600; color: var(--wp--preset--color--contrast); cursor: pointer; }
.hif-mp__subs-box { flex: none; width: 20px; height: 20px; border-radius: 4px; border: 2px solid var(--wp--preset--color--contrast); background: #fff; display: inline-flex; align-items: center; justify-content: center; }
.hif-mp__subs-opt.is-active .hif-mp__subs-box { background: var(--wp--preset--color--primary); border-color: var(--wp--preset--color--primary); }
.hif-mp__subs-opt.is-active .hif-mp__subs-box::after { content: ''; width: 5px; height: 9px; border: solid #fff; border-width: 0 2.5px 2.5px 0; transform: rotate(45deg) translateY(-1px); }

/* Sticky footer */
.hif-mp__footer {
	flex: none;
	display: flex; align-items: center; gap: 1.5rem;
	padding: 0.3rem 1.5rem;
	background: var(--wp--preset--color--primary); color: #fff;
}
.hif-mp__progress-wrap { flex: 0 0 auto; min-width: 210px; }
.hif-mp__count { margin: 0 0 0.5rem; font-size: 1.15rem; font-weight: 600; }
.hif-mp__count strong { font-weight: 800; }
.hif-mp__progress { height: 6px; border-radius: 3px; background: rgba(255,255,255,0.28); overflow: hidden; }
.hif-mp__progress-bar { display: block; height: 100%; width: 0; background: #fff; border-radius: 3px; transition: width 0.3s ease; }
.hif-mp__tray { flex: 1 1 auto; display: flex; align-items: center; justify-content: center; gap: 0.7rem; min-height: 46px; padding: 0 1.5rem; border-left: 1px solid rgba(255,255,255,0.3); border-right: 1px solid rgba(255,255,255,0.3); overflow: hidden; }
.hif-mp__tray:empty { border: none; }
.hif-mp__thumb { position: relative; flex: none; width: 46px; height: 46px; border-radius: 8px; overflow: visible; }
.hif-mp__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 8px; }
.hif-mp__thumb-badge { position: absolute; top: 0px; right: -3px; min-width: 15px; height: 15px; border-radius: 50%; background: var(--wp--preset--color--accent); color: #000; font-size: 0.68rem; font-weight: 600; display: flex; align-items: center; justify-content: center; }
.hif-mp__more { flex: none; min-width: 46px; height: 46px; padding: 0 0.35rem; border-radius: 8px; background: var(--wp--preset--color--accent); color: var(--wp--preset--color--contrast); font-size: 0.72rem; font-weight: 700; line-height: 1.05; display: inline-flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.hif-mp__confirm { flex: none; padding: 0.9rem 1.75rem; background: var(--wp--preset--color--accent); color: var(--wp--preset--color--contrast); border: none; border-radius: 8px; font: inherit; font-size: 1.05rem; font-weight: 700; cursor: pointer; transition: filter 0.15s, opacity 0.15s; }
.hif-mp__confirm:disabled { opacity: 0.5; cursor: not-allowed; }
.hif-mp__confirm:not(:disabled):hover { filter: brightness(0.95); }
.hif-mp__confirm.is-loading { opacity: 0.7; cursor: progress; }
.hif-mp__error { flex: 1 1 100%; margin: 0.4rem 0 0; color: #fff; background: rgba(0,0,0,0.18); border-radius: 6px; padding: 0.5rem 0.7rem; font-size: 0.82rem; text-align: center; }

/* Tiffins: a box combo with no matching variation (e.g. Mini × Mix) */
.hif-tf__plan.is-unavailable { opacity: 0.55; }
.hif-tf__plan.is-unavailable .hif-tf__plan-price { color: var(--wp--preset--color--contrast-muted); }

/* Funnel dish selection under a line on the custom checkout summary */
.hif-co-line__funnel { margin: 0.3rem 0 0; display: flex; flex-direction: column; gap: 0.12rem; }
.hif-co-line__funnel-row { display: flex; gap: 0.35rem; font-size: 0.76rem; line-height: 1.35; }
.hif-co-line__funnel-row dt { margin: 0; font-weight: 700; color: var(--wp--preset--color--contrast); flex: none; }
.hif-co-line__funnel-row dd { margin: 0; color: var(--wp--preset--color--contrast-muted); }

/* Funnel dish selection under an item on the order-confirmation page */
.hif-order__item-meta { display: block; margin-top: 0.25rem; font-size: 0.76rem; font-weight: 400; color: var(--wp--preset--color--contrast-muted); line-height: 1.4; }
.hif-order__item-meta strong { font-weight: 700; color: var(--wp--preset--color--contrast); }

/* Responsive: meal-selection modal */
@media (max-width: 1100px) {
	.hif-mp__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
	.hif-mp { width: 100%; margin: 0; border-radius: 0; }
	.hif-mp__header { flex-wrap: wrap; gap: 0.75rem; padding: 1rem; }
	.hif-mp__heading { order: 1; flex: 1 1 auto; }
	.hif-mp__close { order: 2; }
	.hif-mp__meta { order: 3; flex: 1 0 100%; text-align: left; font-size: 0.82rem; }
	.hif-mp__body { padding: 1rem; }
	.hif-mp__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.6rem; }
	.hif-mp__subs { flex-direction: column; align-items: flex-start; }
	.hif-mp__footer { flex-wrap: wrap; gap: 0.85rem 1rem; padding: 0.85rem 1rem; }
	.hif-mp__progress-wrap { flex: 1 1 100%; min-width: 0; }
	.hif-mp__tray { order: 3; border-left: none; border-right: none; padding: 0; flex: 1 1 auto; }
	.hif-mp__confirm { order: 2; flex: 1 1 auto; }
}
@media (max-width: 520px) {
	.hif-mp__grid { grid-template-columns: 1fr; }
	.hif-mp__filters { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; }
	.hif-mp__filter { flex: 0 0 auto; }
}

/* ==========================================================================
   Product attribute facets — single-product "facts" strip + product-card pills
   (hero nutrient / storage / dietary). Non-action pills, so the 6px/600 button
   rule does not apply; these follow the theme's badge/pill shapes.
   ========================================================================== */

/* Single-product facts strip (under the title). */
.hif-sp__facts {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 14px 0 0;
	padding: 0;
	list-style: none;
}
.hif-sp__fact {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 5px 12px;
	border-radius: var(--wp--custom--radius--pill, 999px);
	font-size: 0.78rem;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: 0.01em;
	background: var(--wp--preset--color--cream, #FDF6EC);
	color: var(--wp--preset--color--contrast, #1a1a1a);
	border: 1px solid rgba(0, 0, 0, 0.08);
}
.hif-sp__fact--storage {
	background: color-mix(in srgb, var(--wp--preset--color--accent, #f6a623) 16%, #fff);
	color: #7a4a00;
	border-color: color-mix(in srgb, var(--wp--preset--color--accent, #f6a623) 40%, transparent);
}
.hif-sp__fact--dietary {
	background: color-mix(in srgb, var(--wp--preset--color--primary, #C2185B) 8%, #fff);
	color: var(--wp--preset--color--primary-dark, #8e1145);
	border-color: color-mix(in srgb, var(--wp--preset--color--primary, #C2185B) 28%, transparent);
}

/* Product-card facet row (top of the card body). */
.hif-product-card__facets {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 8px;
}
.hif-product-card__facet {
	display: inline-flex;
	align-items: center;
	padding: 3px 9px;
	border-radius: var(--wp--custom--radius--pill, 999px);
	font-size: 0.7rem;
	font-weight: 600;
	line-height: 1.2;
	background: color-mix(in srgb, var(--wp--preset--color--forest, #1f5c3d) 12%, #fff);
	color: var(--wp--preset--color--forest-dark, #123a26);
}
/* Veg / non-veg mark — India-style square with a filled dot. */
.hif-product-card__diet {
	width: 14px;
	height: 14px;
	flex: 0 0 auto;
	border-radius: 3px;
	border: 1.5px solid var(--wp--preset--color--success, #2e7d32);
	position: relative;
	background: #fff;
}
.hif-product-card__diet::after {
	content: "";
	position: absolute;
	inset: 0;
	margin: auto;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--wp--preset--color--success, #2e7d32);
}
.hif-product-card__diet--nonveg {
	border-color: #b3261e;
}
.hif-product-card__diet--nonveg::after {
	border-radius: 0;
	width: 0;
	height: 0;
	background: transparent;
	border-left: 4px solid transparent;
	border-right: 4px solid transparent;
	border-bottom: 7px solid #b3261e;
}
