/* =============================================================
   FoodRabbit — Main Stylesheet  (Sayweee-inspired redesign)
   All color/font/spacing values via CSS custom properties.
   No hardcoded hex, px, or font names — only var(--token).
   ============================================================= */

/* ---- Layout constants (not Customizer-controlled) ---------- */
:root {
	--header-height:    70px;
	--cat-nav-height:   52px;
	--total-header-h:   calc(var(--header-height) + var(--cat-nav-height));
	--card-radius:      var(--radius-lg);
	--deal-color:       #EF4444;
	--deal-color-light: #FEE2E2;
	--green-badge:      #16A34A;
	--section-gap:      var(--space-12);
}

/* ---- Reset + Base ------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { font-size: var(--font-size-base); scroll-behavior: smooth; overflow-x: hidden; }

body {
	background-color: var(--color-bg);
	color: var(--color-text);
	font-family: var(--font-body);
	line-height: var(--line-height-base);
	-webkit-font-smoothing: antialiased;
}

img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; }
button { cursor: pointer; }

/* ---- Skip link --------------------------------------------- */
.fr-skip-link {
	position: absolute; top: -100px; left: var(--space-4);
	background: var(--color-primary); color: var(--color-white);
	padding: var(--space-2) var(--space-4); border-radius: var(--radius-md);
	z-index: 9999; transition: top .2s;
}
.fr-skip-link:focus { top: var(--space-4); }

/* ---- Container --------------------------------------------- */
.fr-container {
	max-width: var(--container-width);
	margin: 0 auto;
	padding: 0 var(--container-pad-desktop);
}

/* ---- Utility ----------------------------------------------- */
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }

/* Page content wrapper (replaces the old main in templates) */
.fr-page {
	padding: var(--space-12) 0;
	min-height: 40vh;
}
.fr-page-content__title {
	font-family: var(--font-display);
	font-size: var(--font-size-h2);
	font-weight: 700;
	margin-bottom: var(--space-8);
	line-height: var(--line-height-tight);
}
.fr-page-content__body {
	font-size: var(--font-size-base);
	line-height: var(--line-height-base);
	max-width: 1200px;
}
.fr-page-content__body h2 { font-family: var(--font-display); font-size: var(--font-size-h3); font-weight: 700; margin: var(--space-8) 0 var(--space-4); }
.fr-page-content__body h3 { font-family: var(--font-display); font-size: var(--font-size-h4); font-weight: 600; margin: var(--space-6) 0 var(--space-3); }
.fr-page-content__body p { margin-bottom: var(--space-4); }
.fr-page-content__body ul, .fr-page-content__body ol { padding-left: var(--space-6); margin-bottom: var(--space-4); }
.fr-page-content__body li { margin-bottom: var(--space-2); }
/* Only style plain prose links — never buttons or WC links */
.fr-page-content__body a:not([class]):not([class*="fr-btn"]):not(.button):not(.wc-backward) {
	color: var(--color-primary);
	text-decoration: underline;
}

.fr-single-post__header { margin-bottom: var(--space-8); padding-bottom: var(--space-6); border-bottom: 1px solid var(--color-border); }
.fr-single-post__title { font-family: var(--font-display); font-size: var(--font-size-h2); font-weight: 800; line-height: var(--line-height-tight); margin-bottom: var(--space-3); }
.fr-single-post__meta { font-size: var(--font-size-sm); color: var(--color-muted); }
.fr-single-post__content { max-width: 760px; }

/* Contact block */
.fr-contact-block { padding: var(--section-gap) 0; }
.fr-contact-block__inner { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-8); align-items: start; }
.fr-contact-block__details { display: flex; flex-direction: column; gap: var(--space-4); }
.fr-contact-block__row { display: flex; align-items: flex-start; gap: var(--space-3); font-size: var(--font-size-base); }
.fr-contact-block__icon { font-size: 1.25rem; flex-shrink: 0; }
.fr-contact-block__row a { color: var(--color-primary); }
.fr-contact-block__row a:hover { color: var(--color-primary-dark); }
.fr-contact-block__map iframe { border-radius: var(--radius-lg); overflow: hidden; max-width: 100%; }
@media (max-width: 768px) { .fr-contact-block__inner { grid-template-columns: 1fr; } }

/* Content section block */
.fr-content-section--center { text-align: center; }
.fr-content-section--center .fr-content-section__content { margin: 0 auto; }
.fr-content-section__title { font-family: var(--font-display); font-size: var(--font-size-h3); font-weight: 700; margin-bottom: var(--space-6); }
.fr-content-section__content { max-width: 760px; line-height: var(--line-height-base); margin-bottom: var(--space-6); }

/* Empty state */
.fr-empty-state { text-align: center; padding: var(--space-16) var(--space-4); }
.fr-empty-state svg { margin: 0 auto var(--space-6); }

/* WooCommerce page title */
.fr-page-title {
	font-family: var(--font-display);
	font-size: var(--font-size-h2);
	font-weight: 700;
	margin-bottom: var(--space-8);
	line-height: var(--line-height-tight);
}

/* ============================================================
   HEADER
   ============================================================ */
.fr-header {
	position: sticky;
	top: 0;
	z-index: 200;
	background: var(--color-white);
	box-shadow: var(--shadow-nav);
}

/* Shared horizontal alignment for top bar + category nav */
.fr-header__container {
	width: 100%;
	max-width: var(--container-width);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--container-pad-desktop);
	padding-right: var(--container-pad-desktop);
}

.fr-header__main {
	height: var(--header-height);
	display: flex;
	align-items: center;
	gap: var(--space-4);
	min-width: 0;
}

/* Logo */
.fr-nav__logo {
	flex-shrink: 0;
	display: flex;
	align-items: center;
}
/* Logo image — constrained by both dimensions, aspect ratio always preserved */
.fr-logo-img {
	display: block;
	max-width: var(--logo-max-width, 180px);
	max-height: var(--logo-max-height, 54px);
	width: auto;
	height: auto;
	object-fit: contain;
}
.fr-nav__logo-text {
	font-family: var(--font-display);
	font-size: 1.5rem;
	font-weight: 800;
	color: var(--color-primary);
	white-space: nowrap;
}

/* Location pill */
.fr-header__location-pill {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	gap: var(--space-1);
	background: var(--color-light-bg);
	border: 1.5px solid var(--color-border);
	border-radius: var(--radius-full);
	padding: var(--space-2) var(--space-4);
	font-size: var(--font-size-sm);
	font-family: var(--font-display);
	font-weight: 600;
	color: var(--color-text);
	white-space: nowrap;
	cursor: pointer;
	transition: border-color .15s;
	max-width: 180px;
}
.fr-header__location-pill:hover { border-color: var(--color-primary); }
.fr-header__location-pill svg { color: var(--color-primary); flex-shrink: 0; }
.fr-header__location-name {
	overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

/* Search bar */
.fr-search-form {
	flex: 1;
	min-width: 0;
	max-width: 100%;
	display: flex;
	align-items: center;
	background: var(--color-light-bg);
	border: 1.5px solid transparent;
	border-radius: var(--radius-full);
	padding: 0 var(--space-4);
	height: 44px;
	transition: border-color .15s, box-shadow .15s, background-color .15s;
}
.fr-search-form:focus-within {
	border-color: var(--color-primary);
	box-shadow: 0 0 0 3px rgba(15,118,110,.1);
	background: var(--color-white);
}
.fr-search-form > form,
.fr-search-form > svg {
	flex-shrink: 0;
}
.fr-search-form svg { color: var(--color-muted); flex-shrink: 0; }
.fr-search-form input {
	flex: 1;
	min-width: 0;
	border: none;
	background: transparent;
	padding: 0 var(--space-3);
	font-family: var(--font-body);
	font-size: var(--font-size-base);
	color: var(--color-text);
	outline: none;
}
.fr-search-form input::placeholder { color: var(--color-muted); font-style: normal; }
.fr-search-form button[type="submit"] {
	background: var(--color-primary);
	color: var(--color-white);
	border: none;
	border-radius: var(--radius-full);
	padding: var(--space-1) var(--space-4);
	font-family: var(--font-display);
	font-size: var(--font-size-sm);
	font-weight: 600;
	white-space: nowrap;
}
.fr-search-form button[type="submit"]:hover { background: var(--color-primary-dark); }

/* FiboSearch — header pill (solaris, no submit button) */
.fr-search-form--fibosearch {
	padding: 0 var(--space-3);
	overflow: visible;
	align-self: center;
	flex-shrink: 1;
}
.fr-search-form--fibosearch .dgwt-wcas-search-wrapp,
.fr-search-form--fibosearch .dgwt-wcas-search-form,
.fr-search-form--fibosearch .dgwt-wcas-sf-wrapp {
	width: 100%;
	max-width: none;
	margin: 0;
	background: none;
	border: none;
	box-shadow: none;
	line-height: 1;
}
.fr-search-form--fibosearch .dgwt-wcas-search-wrapp,
.fr-search-form--fibosearch .dgwt-wcas-search-form {
	display: flex;
	align-items: center;
}
.fr-search-form--fibosearch .dgwt-wcas-sf-wrapp {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 100%;
	padding: 0;
}
.fr-search-form--fibosearch .dgwt-wcas-sf-wrapp::before,
.fr-search-form--fibosearch .dgwt-wcas-sf-wrapp::after {
	display: none;
}
.fr-search-form--fibosearch .dgwt-wcas-sf-wrapp input[type="search"].dgwt-wcas-search-input {
	width: 100%;
	height: 42px;
	border: none;
	background: transparent;
	font-family: var(--font-body);
	font-size: var(--font-size-base);
	color: var(--color-text);
	box-shadow: none;
	padding: 0 var(--space-3) 0 calc(var(--space-8) + var(--space-1));
	margin: 0;
	border-radius: 0;
	-webkit-appearance: none;
	appearance: none;
}
.fr-search-form--fibosearch .dgwt-wcas-sf-wrapp input[type="search"].dgwt-wcas-search-input:focus {
	outline: none;
	box-shadow: none;
	background: transparent;
}
.fr-search-form--fibosearch .dgwt-wcas-sf-wrapp input[type="search"].dgwt-wcas-search-input::placeholder {
	color: var(--color-muted);
	font-style: normal;
	font-weight: 400;
}
.fr-search-form--fibosearch .dgwt-wcas-no-submit .dgwt-wcas-ico-magnifier {
	left: var(--space-1);
	right: auto;
	top: 50%;
	bottom: auto;
	transform: translateY(-50%);
	width: 18px;
	height: 18px;
	max-width: 18px;
	max-height: 18px;
	margin: 0;
	opacity: 1;
}
.fr-search-form--fibosearch .dgwt-wcas-no-submit .dgwt-wcas-ico-magnifier path {
	fill: var(--color-muted);
}
.fr-search-form--fibosearch .dgwt-wcas-preloader,
.fr-search-form--fibosearch .dgwt-wcas-voice-search {
	right: var(--space-1);
	width: 28px;
	background-position: center;
}
.fr-search-form--fibosearch .dgwt-wcas-suggestions-wrapp {
	top: calc(100% + var(--space-2));
	border-radius: var(--radius-lg);
	border-color: var(--color-border);
	box-shadow: var(--shadow-modal);
	overflow: hidden;
}

/* FiboSearch — mobile modal */
.fr-search-modal__body--fibosearch .dgwt-wcas-search-wrapp,
.fr-search-modal__body--fibosearch .dgwt-wcas-search-form {
	width: 100%;
}
.fr-search-modal__body--fibosearch .dgwt-wcas-sf-wrapp {
	position: relative;
	display: flex;
	flex-direction: column;
	background: none;
	padding: 0;
}
.fr-search-modal__body--fibosearch .dgwt-wcas-has-submit .dgwt-wcas-sf-wrapp input[type="search"].dgwt-wcas-search-input {
	padding-left: var(--space-4);
}
.fr-search-modal__body--fibosearch .dgwt-wcas-sf-wrapp input[type="search"].dgwt-wcas-search-input {
	width: 100%;
	height: 48px;
	border: 1.5px solid var(--color-border);
	border-radius: var(--radius-md);
	padding: 0 var(--space-4) 0 calc(var(--space-8) + var(--space-2));
	font-family: var(--font-body);
	font-size: var(--font-size-base);
	background: var(--color-white);
	box-shadow: none;
}
.fr-search-modal__body--fibosearch .dgwt-wcas-sf-wrapp input[type="search"].dgwt-wcas-search-input:focus {
	border-color: var(--color-primary);
	outline: none;
	box-shadow: 0 0 0 3px rgba(15,118,110,.1);
}
.fr-search-modal__body--fibosearch .dgwt-wcas-has-submit .dgwt-wcas-ico-magnifier,
.fr-search-modal__body--fibosearch .dgwt-wcas-no-submit .dgwt-wcas-ico-magnifier {
	left: var(--space-4);
	right: auto;
	top: 50%;
	bottom: auto;
	transform: translateY(-50%);
	width: 18px;
	height: 18px;
	max-width: 18px;
	max-height: 18px;
	margin: 0;
	opacity: 1;
}
.fr-search-modal__body--fibosearch .dgwt-wcas-ico-magnifier path {
	fill: var(--color-muted);
}
.fr-search-modal__body--fibosearch .dgwt-wcas-sf-wrapp button.dgwt-wcas-search-submit {
	position: static;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: auto;
	min-height: 0;
	margin-top: var(--space-3);
	padding: var(--space-3) var(--space-4);
	background: var(--color-primary);
	border-radius: var(--radius-md);
	font-family: var(--font-display);
	font-size: var(--font-size-base);
	font-weight: 600;
	text-transform: none;
	text-shadow: none;
	box-shadow: none;
}
.fr-search-modal__body--fibosearch .dgwt-wcas-sf-wrapp button.dgwt-wcas-search-submit::before {
	display: none;
}
.fr-search-modal__body--fibosearch .dgwt-wcas-sf-wrapp button.dgwt-wcas-search-submit:hover {
	background: var(--color-primary-dark);
	opacity: 1;
}

/* Header actions */
.fr-header__actions {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	gap: var(--space-3);
}

.fr-nav__cart {
	position: relative;
	display: flex;
	align-items: center;
	gap: var(--space-2);
	background: var(--color-accent);
	color: var(--color-white);
	border-radius: var(--radius-full);
	padding: var(--space-2) var(--space-4);
	font-family: var(--font-display);
	font-size: var(--font-size-sm);
	font-weight: 600;
	transition: background .15s;
}
.fr-nav__cart:hover { background: var(--color-accent-dark); color: var(--color-white); }
.fr-cart-count {
	background: var(--color-white);
	color: var(--color-accent-dark);
	border-radius: var(--radius-full);
	min-width: 20px;
	height: 20px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: var(--font-size-xs);
	font-weight: 700;
	padding: 0 var(--space-1);
}
.fr-cart-count:empty, .fr-cart-count[data-count="0"] { display: none; }

.fr-nav__driver {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-1);
	height: 40px;
	padding: 0 var(--space-3);
	border-radius: var(--radius-full);
	background: var(--color-accent);
	color: var(--color-white);
	font-family: var(--font-body);
	font-size: var(--font-size-xs);
	font-weight: 600;
	white-space: nowrap;
	transition: background .15s, color .15s;
}
.fr-nav__driver:hover { background: var(--color-accent-dark); }
.fr-nav__driver--active { background: var(--color-accent-dark); color: var(--color-white); }
.fr-nav__driver--active:hover { background: #B45309; }
.fr-nav__driver-text { line-height: 1; }

.fr-nav__account {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--color-light-bg);
	color: var(--color-text);
	transition: background .15s;
}
.fr-nav__account:hover { background: var(--color-border); }

.fr-nav__membership {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-1);
	height: 40px;
	padding: 0 var(--space-3);
	border-radius: var(--radius-full);
	background: var(--color-primary);
	border: none;
	color: var(--color-white);
	font-family: var(--font-body);
	font-size: var(--font-size-xs);
	font-weight: 600;
	white-space: nowrap;
	transition: background .15s;
}
.fr-nav__membership:hover { background: var(--color-primary-dark); color: var(--color-white); }
.fr-nav__membership--active {
	background: var(--color-primary-dark);
}
.fr-nav__membership--active:hover { filter: brightness(0.9); }
.fr-nav__membership-text { line-height: 1; }


.fr-nav__mobile-toggle {
	display: none;
	flex-direction: column;
	justify-content: center;
	align-items: stretch;
	gap: 5px;
	width: 40px;
	height: 40px;
	background: none;
	border: none;
	padding: var(--space-2);
}
.fr-nav__mobile-toggle span {
	display: block;
	width: 100%;
	min-width: 18px;
	height: 2px;
	background: var(--color-text);
	border-radius: var(--radius-sm);
	transition: transform .2s, opacity .2s;
	flex-shrink: 0;
}

/* ---- Category navigation bar ------------------------------- */
.fr-cat-nav {
	border-top: 1px solid var(--color-border);
	background: var(--color-white);
	height: var(--cat-nav-height);
	overflow: hidden;
}
.fr-cat-nav__shell {
	position: relative;
	height: 100%;
}
.fr-cat-nav__inner {
	height: 100%;
	display: flex;
	align-items: center;
	gap: var(--space-2);
	overflow-x: auto;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
	scroll-behavior: smooth;
}
.fr-cat-nav__inner::-webkit-scrollbar { display: none; }

.fr-cat-nav__link {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	gap: var(--space-1);
	padding: var(--space-2) var(--space-3);
	border-radius: var(--radius-full);
	font-family: var(--font-display);
	font-size: var(--font-size-sm);
	font-weight: 600;
	color: var(--color-text);
	white-space: nowrap;
	transition: background .15s, color .15s;
}
.fr-cat-nav__link:hover,
.fr-cat-nav__link.is-active {
	background: var(--color-accent);
	color: var(--color-white);
}
.fr-cat-nav__link--all {
	background: var(--color-accent);
	color: var(--color-white);
}
.fr-cat-nav__emoji { font-size: 1rem; }

/* ============================================================
   PRIMARY NAVIGATION BAR
   ============================================================ */
.fr-primary-nav {
	background: var(--color-white);
	border-bottom: 1px solid var(--color-border);
}
.fr-primary-nav__list {
	list-style: none;
	margin: 0;
	padding: 0 var(--container-pad-desktop);
	max-width: var(--container-width);
	margin-left: auto;
	margin-right: auto;
	display: flex;
	align-items: center;
	gap: 0;
	flex-wrap: wrap;
}
.fr-primary-nav__list li { position: relative; }
.fr-primary-nav__list > li > a {
	display: block;
	padding: 10px var(--space-4);
	font-family: var(--font-display);
	font-size: var(--font-size-sm);
	font-weight: 600;
	color: var(--color-text);
	white-space: nowrap;
	transition: color .15s;
	border-bottom: 2px solid transparent;
}
.fr-primary-nav__list > li > a:hover,
.fr-primary-nav__list > li.current-menu-item > a,
.fr-primary-nav__list > li.current-menu-ancestor > a {
	color: var(--color-accent-dark);
	border-bottom-color: var(--color-accent);
}
/* Simple dropdown for depth-2 items */
.fr-primary-nav__list .sub-menu {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-modal);
	min-width: 180px;
	z-index: 500;
	list-style: none;
	padding: var(--space-2) 0;
	margin: 0;
}
.fr-primary-nav__list li:hover > .sub-menu { display: block; }
.fr-primary-nav__list .sub-menu li a {
	display: block;
	padding: var(--space-2) var(--space-4);
	font-size: var(--font-size-sm);
	color: var(--color-text);
	transition: background .12s;
}
.fr-primary-nav__list .sub-menu li a:hover { background: var(--color-accent); color: var(--color-white); }

/* Mobile drawer primary nav */
.fr-mobile-drawer__primary-nav { padding: 0 var(--space-6); }
.fr-mobile-drawer__nav-list {
	list-style: none;
	margin: 0; padding: 0;
}
.fr-mobile-drawer__nav-list li a {
	display: block;
	padding: var(--space-3) 0;
	font-family: var(--font-display);
	font-size: var(--font-size-base);
	font-weight: 600;
	color: var(--color-text);
	border-bottom: 1px solid var(--color-border);
}
.fr-mobile-drawer__nav-list li:last-child a { border-bottom: none; }
.fr-mobile-drawer__nav-list li.current-menu-item a { color: var(--color-accent-dark); }
.fr-mobile-drawer__section-label {
	font-family: var(--font-display);
	font-size: var(--font-size-xs);
	font-weight: 700;
	color: var(--color-muted);
	text-transform: uppercase;
	letter-spacing: .06em;
	padding: var(--space-4) var(--space-6) var(--space-2);
	margin: 0;
}

/* ============================================================
   BUTTONS
   ============================================================ */
.fr-btn,
a.fr-btn,
button.fr-btn,
input.fr-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-2);
	font-family: var(--font-display);
	font-weight: 600;
	border: none;
	border-radius: var(--radius-md);
	cursor: pointer;
	transition: background .15s, color .15s, opacity .15s, transform .1s;
	text-decoration: none !important;   /* beats any external stylesheet underline */
	white-space: nowrap;
	padding: var(--space-3) var(--space-6);
	font-size: var(--font-size-base);
	line-height: 1.25;
	box-sizing: border-box;
}
.fr-btn:hover,
.fr-btn:focus,
.fr-btn:visited,
a.fr-btn:hover,
a.fr-btn:focus,
a.fr-btn:visited {
	text-decoration: none !important;
}
.fr-btn:active { transform: scale(.97); }
.fr-btn:disabled,
.fr-btn[disabled] { opacity: .5; pointer-events: none; }

/* Primary — teal fill, always white text */
.fr-btn--primary,
a.fr-btn--primary,
a.fr-btn--primary:link,
a.fr-btn--primary:visited {
	background: var(--color-primary);
	color: #ffffff !important;  /* !important to beat .fr-page-content__body a */
}
.fr-btn--primary:hover,
a.fr-btn--primary:hover { background: var(--color-primary-dark); color: #ffffff !important; }

/* Accent — saffron fill */
.fr-btn--accent,
a.fr-btn--accent,
a.fr-btn--accent:link,
a.fr-btn--accent:visited {
	background: var(--color-accent);
	color: var(--color-white) !important;
}
.fr-btn--accent:hover,
a.fr-btn--accent:hover { background: var(--color-accent-dark); color: var(--color-white) !important; }

/* Outline — transparent, teal border */
.fr-btn--outline,
a.fr-btn--outline,
a.fr-btn--outline:link,
a.fr-btn--outline:visited {
	background: transparent;
	border: 2px solid var(--color-primary);
	color: var(--color-primary) !important;
}
.fr-btn--outline:hover,
a.fr-btn--outline:hover { background: var(--color-primary); color: #ffffff !important; }

/* White */
.fr-btn--white,
a.fr-btn--white,
a.fr-btn--white:link,
a.fr-btn--white:visited {
	background: var(--color-white);
	color: var(--color-primary) !important;
}
.fr-btn--white:hover,
a.fr-btn--white:hover { background: var(--color-light-bg); }

/* Ghost — same as outline visually */
.fr-btn--ghost {
	background: transparent;
	color: var(--color-primary) !important;
	border: 1.5px solid var(--color-primary);
}

.fr-btn--lg  { padding: var(--space-4) var(--space-8); font-size: 1.0625rem; border-radius: var(--radius-lg); }
.fr-btn--sm  { padding: var(--space-2) var(--space-4); font-size: var(--font-size-sm); }
.fr-btn--xs  { padding: var(--space-1) var(--space-3); font-size: var(--font-size-xs); }
.fr-btn--full { width: 100%; }
.fr-btn--round { border-radius: var(--radius-full) !important; }

/* ============================================================
   HERO — Full-width banner (Sayweee style)
   ============================================================ */
.fr-hero {
	background: linear-gradient(135deg, var(--color-primary) 0%, #134e4a 100%);
	color: var(--color-white);
	overflow: hidden;
	position: relative;
}
.fr-hero--cream {
	background: linear-gradient(135deg, var(--color-bg) 0%, #fef3c7 100%);
	color: var(--color-text);
}
.fr-hero__inner {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: var(--space-8);
	align-items: center;
	padding-top: var(--space-12);
	padding-bottom: var(--space-12);
	min-height: 340px;
}
.fr-hero__badge {
	display: inline-block;
	background: rgba(255,255,255,.2);
	border-radius: var(--radius-full);
	padding: var(--space-1) var(--space-4);
	font-size: var(--font-size-sm);
	font-weight: 600;
	margin-bottom: var(--space-4);
	backdrop-filter: blur(4px);
}
.fr-hero--cream .fr-hero__badge {
	background: var(--color-primary);
	color: var(--color-white);
}
.fr-hero__headline {
	font-family: var(--font-display);
	font-size: clamp(1.75rem, 4vw, var(--font-size-h1));
	font-weight: 800;
	line-height: var(--line-height-tight);
	margin-bottom: var(--space-4);
}
.fr-hero__sub {
	font-size: var(--font-size-h5);
	opacity: .9;
	max-width: 520px;
	margin-bottom: var(--space-6);
}
.fr-hero__actions { display: flex; gap: var(--space-4); flex-wrap: wrap; }
.fr-hero__visual {
	width: 320px;
	height: 320px;
	flex-shrink: 0;
	position: relative;
}
.fr-hero__visual img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	filter: drop-shadow(0 20px 40px rgba(0,0,0,.3));
}

/* ============================================================
   TRUST STRIP
   ============================================================ */
.fr-trust-strip {
	background: var(--color-white);
	border-bottom: 1px solid var(--color-border);
	padding: var(--space-4) 0;
}
.fr-trust-strip__inner {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-8);
	flex-wrap: wrap;
}
.fr-trust-item {
	display: flex;
	align-items: center;
	gap: var(--space-2);
	font-family: var(--font-display);
	font-size: var(--font-size-sm);
	font-weight: 600;
	color: var(--color-text);
	white-space: nowrap;
}
.fr-trust-item__icon {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--color-primary);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--color-white);
	flex-shrink: 0;
}

/* ============================================================
   SECTION LAYOUT
   ============================================================ */
.fr-section {
	padding: var(--section-gap) 0;
}
.fr-section--sm { padding: var(--space-8) 0; }
.fr-section--white { background: var(--color-white); }
.fr-section--light { background: var(--color-light-bg); }

.fr-section-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: var(--space-6);
	gap: var(--space-4);
}
.fr-section-header__title {
	font-family: var(--font-display);
	font-size: var(--font-size-h3);
	font-weight: 700;
	color: var(--color-text);
	line-height: var(--line-height-tight);
}
.fr-section-header__title span {
	color: var(--color-primary);
}
.fr-section-header__link {
	font-family: var(--font-display);
	font-size: var(--font-size-sm);
	font-weight: 600;
	color: var(--color-primary);
	display: flex;
	align-items: center;
	gap: var(--space-1);
	white-space: nowrap;
	flex-shrink: 0;
}
.fr-section-header__link:hover { color: var(--color-primary-dark); }

/* ============================================================
   CATEGORY CIRCLES
   ============================================================ */
.fr-categories-scroll {
	overflow-x: auto;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
	padding-bottom: var(--space-3);
	margin: 0 calc(-1 * var(--container-pad-desktop));
	padding-left: var(--container-pad-desktop);
	padding-right: var(--container-pad-desktop);
}
.fr-categories-scroll::-webkit-scrollbar { display: none; }

.fr-categories-row {
	display: flex;
	gap: var(--space-4);
	width: max-content;
}

.fr-cat-circle {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--space-2);
	width: 88px;
	text-decoration: none;
	flex-shrink: 0;
}
.fr-cat-circle__img {
	width: 80px;
	height: 80px;
	border-radius: 50%;
	overflow: hidden;
	background: var(--color-light-bg);
	border: 3px solid transparent;
	transition: border-color .2s, transform .2s;
	display: flex;
	align-items: center;
	justify-content: center;
}
.fr-cat-circle:hover .fr-cat-circle__img {
	border-color: var(--color-primary);
	transform: translateY(-2px);
}
.fr-cat-circle__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.fr-cat-circle__placeholder {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 2rem;
	background: var(--color-light-bg);
}
.fr-cat-circle__name {
	font-family: var(--font-display);
	font-size: var(--font-size-xs);
	font-weight: 600;
	color: var(--color-text);
	text-align: center;
	line-height: 1.3;
	word-break: break-word;
}

/* ============================================================
   PRODUCT CARDS — Sayweee style
   ============================================================ */
.fr-product-card {
	background: var(--color-white);
	border-radius: var(--card-radius);
	box-shadow: var(--shadow-card);
	overflow: hidden;
	transition: box-shadow .2s, transform .2s;
	display: flex;
	flex-direction: column;
	position: relative;
}
.fr-product-card:hover {
	box-shadow: 0 6px 24px rgba(0,0,0,.12);
	transform: translateY(-2px);
}

/* Image area */
.fr-product-card__img-wrap {
	position: relative;
	aspect-ratio: 1;
	overflow: hidden;
	background: var(--color-light-bg);
}
.fr-product-card__img-wrap a { display: block; width: 100%; height: 100%; }
.fr-product-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .3s;
}
.fr-product-card:hover .fr-product-card__img { transform: scale(1.04); }

/* Sale badge */
.fr-product-card__badge {
	position: absolute;
	top: var(--space-2);
	left: var(--space-2);
	background: var(--deal-color);
	color: var(--color-white);
	font-family: var(--font-display);
	font-size: var(--font-size-xs);
	font-weight: 700;
	padding: 2px var(--space-2);
	border-radius: var(--radius-sm);
	z-index: 1;
	line-height: 1.4;
}
.fr-product-card__badge--new {
	background: var(--green-badge);
}

/* Out of stock overlay */
.fr-product-card__oos {
	position: absolute;
	inset: 0;
	background: rgba(255,255,255,.75);
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-display);
	font-weight: 700;
	font-size: var(--font-size-sm);
	color: var(--color-muted);
}

/* Card body */
.fr-product-card__body {
	padding: var(--space-3);
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
}
.fr-product-card__name {
	font-family: var(--font-display);
	font-size: var(--font-size-sm);
	font-weight: 600;
	color: var(--color-text);
	line-height: 1.35;
	/* 2-line clamp */
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.fr-product-card__name a { color: inherit; }
.fr-product-card__name a:hover { color: var(--color-primary); }
.fr-product-card__meta {
	font-size: var(--font-size-xs);
	color: var(--color-muted);
}

/* Card footer: price + add button */
.fr-product-card__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: auto;
	padding-top: var(--space-2);
}
.fr-product-card__price {
	font-family: var(--font-display);
	font-weight: 700;
	font-size: 1.0625rem;
	color: var(--color-primary);
	line-height: 1;
}
.fr-product-card__price del {
	font-size: var(--font-size-xs);
	color: var(--color-muted);
	font-weight: 400;
	text-decoration: line-through;
	display: block;
}
.fr-product-card__price ins {
	text-decoration: none;
}
/* WooCommerce price HTML reset */
.fr-product-card__price .price { color: var(--color-primary); font-weight: 700; }
.fr-product-card__price .woocommerce-Price-amount { color: var(--color-primary); }

/* Add to cart button — circular "+" */
.fr-product-card__add {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--color-primary);
	color: var(--color-white);
	border: none;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.25rem;
	font-weight: 300;
	line-height: 1;
	transition: background .15s, transform .15s;
	flex-shrink: 0;
}
.fr-product-card__add:hover { background: var(--color-primary-dark); transform: scale(1.08); }
.fr-product-card__add.is-loading {
	opacity: .6;
	pointer-events: none;
}
.fr-product-card__out-of-stock {
	font-size: var(--font-size-xs);
	color: var(--color-muted);
	font-weight: 600;
}

/* ============================================================
   PRODUCT GRID
   ============================================================ */
.fr-product-grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: var(--space-4);
}

/* WooCommerce overrides — make ul.products match fr-product-grid */
ul.products {
	display: grid !important;
	grid-template-columns: repeat(5, 1fr) !important;
	gap: var(--space-4) !important;
	margin: 0 !important;
	padding: 0 !important;
}
ul.products li.product {
	margin: 0 !important;
	padding: 0 !important;
}

/* ============================================================
   HORIZONTAL SCROLL PRODUCT ROW
   ============================================================ */
.fr-product-scroll-wrap {
	overflow-x: auto;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
	margin: 0 calc(-1 * var(--container-pad-desktop));
	padding: var(--space-1) var(--container-pad-desktop) var(--space-4);
}
.fr-product-scroll-wrap::-webkit-scrollbar { display: none; }

.fr-product-scroll {
	display: flex;
	gap: var(--space-4);
	width: max-content;
}
.fr-product-scroll .fr-product-card {
	width: 192px;
	flex-shrink: 0;
}

/* ============================================================
   PROMO BANNERS
   ============================================================ */
.fr-promo-strip {
	border-radius: var(--radius-xl);
	overflow: hidden;
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	gap: var(--space-8);
	padding: var(--space-8) var(--space-12);
	background: linear-gradient(135deg, var(--color-primary) 0%, #134e4a 100%);
	color: var(--color-white);
	margin: var(--space-4) 0;
}
.fr-promo-strip--accent {
	background: linear-gradient(135deg, var(--color-accent) 0%, var(--color-accent-dark) 100%);
	color: var(--color-white);
}
.fr-promo-strip__eyebrow {
	font-size: var(--font-size-sm);
	font-weight: 600;
	opacity: .85;
	margin-bottom: var(--space-2);
	text-transform: uppercase;
	letter-spacing: .05em;
}
.fr-promo-strip__headline {
	font-family: var(--font-display);
	font-size: clamp(1.25rem, 2.5vw, var(--font-size-h3));
	font-weight: 800;
	line-height: var(--line-height-tight);
	margin-bottom: var(--space-4);
}
.fr-promo-strip__visual img {
	max-height: 160px;
	object-fit: contain;
}

/* ============================================================
   SHOP PAGE (ARCHIVE)
   ============================================================ */
.fr-shop__layout {
	display: grid;
	grid-template-columns: 240px 1fr;
	gap: var(--space-8);
	padding-top: var(--space-8);
	padding-bottom: var(--space-12);
	align-items: start;
}
.fr-shop__sidebar {
	position: sticky;
	top: calc(var(--total-header-h) + var(--space-4));
	background: var(--color-white);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-card);
	overflow: hidden;
}
.fr-shop__sidebar-title {
	font-family: var(--font-display);
	font-size: var(--font-size-h5);
	font-weight: 700;
	padding: var(--space-4) var(--space-4) var(--space-2);
	border-bottom: 1px solid var(--color-border);
}
.fr-cat-sidebar__list {
	padding: var(--space-2) 0;
}
.fr-cat-sidebar__item {
	display: flex;
	align-items: center;
	gap: var(--space-2);
	padding: var(--space-2) var(--space-4);
	width: 100%;
	font-size: var(--font-size-sm);
	color: var(--color-text);
	transition: background .12s, color .12s;
	border-left: 3px solid transparent;
}
.fr-cat-sidebar__item:hover { background: var(--color-light-bg); color: var(--color-accent-dark); }
.fr-cat-sidebar__item.is-active {
	background: rgba(245,158,11,.1);
	color: var(--color-accent-dark);
	border-left-color: var(--color-accent);
	font-weight: 600;
}
/* Name span: grows to fill space, truncates with ellipsis */
.fr-cat-sidebar__name {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.fr-cat-sidebar__img {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	object-fit: cover;
	flex-shrink: 0;
	background: var(--color-light-bg);
}
.fr-cat-sidebar__count {
	flex-shrink: 0;
	font-size: var(--font-size-xs);
	color: var(--color-muted);
	margin-left: var(--space-1);
}

.fr-shop__main {}
.fr-shop__topbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: var(--space-6);
	gap: var(--space-4);
	flex-wrap: wrap;
}
.fr-shop__title {
	font-family: var(--font-display);
	font-size: var(--font-size-h3);
	font-weight: 700;
}
.fr-shop__sort-wrap {
	display: flex;
	align-items: center;
	gap: var(--space-3);
}
.fr-shop__count {
	font-size: var(--font-size-sm);
	color: var(--color-muted);
}
.fr-shop__sort select {
	border: 1.5px solid var(--color-border);
	border-radius: var(--radius-md);
	padding: var(--space-2) var(--space-3);
	font-family: var(--font-body);
	font-size: var(--font-size-sm);
	background: var(--color-white);
	cursor: pointer;
}

/* WooCommerce ordering/result in shop page */
.woocommerce-result-count { font-size: var(--font-size-sm); color: var(--color-muted); }
.woocommerce-ordering select {
	border: 1.5px solid var(--color-border);
	border-radius: var(--radius-md);
	padding: var(--space-2) var(--space-3);
	font-size: var(--font-size-sm);
	background: var(--color-white);
}

/*
 * WooCommerce product loop — li.product is now just a passthrough container.
 * Our content-product.php template puts fr-product-card inside each li,
 * so the card handles all its own styling. Reset any WC defaults that
 * would create a double-box effect.
 */
ul.products li.product {
	background: none !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	overflow: visible !important;
	padding: 0 !important;
	margin: 0 !important;
}
ul.products li.product:hover {
	box-shadow: none !important;
	transform: none !important;
}
/* fr-product-card inside the grid li fills its cell */
ul.products li.product .fr-product-card {
	height: 100%;
}

/* Pagination */
.woocommerce nav.woocommerce-pagination ul {
	border: none;
	display: flex;
	gap: var(--space-2);
	flex-wrap: wrap;
	margin-top: var(--space-8);
	justify-content: center;
}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	border: 1.5px solid var(--color-border);
	border-radius: var(--radius-md);
	padding: var(--space-2) var(--space-3);
	font-family: var(--font-display);
	font-weight: 600;
	font-size: var(--font-size-sm);
	color: var(--color-text);
}
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li span.current {
	background: var(--color-primary);
	border-color: var(--color-primary);
	color: var(--color-white);
}

/* ============================================================
   SINGLE PRODUCT PAGE
   ============================================================ */
.fr-single-product { padding: var(--space-8) 0 var(--space-16); }

/* Breadcrumb (used on single product and other WC pages) */
.fr-breadcrumb {
	margin-bottom: var(--space-6);
}
.fr-breadcrumb p {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-1);
	font-size: var(--font-size-sm);
	color: var(--color-muted);
}
.fr-breadcrumb a { color: var(--color-muted); transition: color .12s; }
.fr-breadcrumb a:hover { color: var(--color-primary); }
.fr-breadcrumb__sep { color: var(--color-border); font-size: var(--font-size-xs); }
/* WooCommerce outputs the current item (no link) as plain text at the end */
.woocommerce-breadcrumb { display: none; } /* hide WC's default if Rank Math not active */

.woocommerce div.product {
	position: relative;
	display: grid;
	grid-template-columns: minmax(280px, 480px) minmax(0, 1fr);
	grid-template-areas: "media summary";
	gap: var(--space-8);
	align-items: start;
}
.woocommerce div.product .fr-product-media {
	grid-area: media;
	position: relative;
	min-width: 0;
}
.woocommerce div.product > .summary.entry-summary {
	grid-area: summary;
	min-width: 0;
}
/* Sale badge — WC default styles are disabled; must not participate in grid flow */
.woocommerce div.product span.onsale,
.woocommerce div.product .fr-product-media span.onsale {
	position: absolute;
	top: var(--space-4);
	left: var(--space-4);
	z-index: 3;
	margin: 0;
	min-height: auto;
	min-width: auto;
	padding: var(--space-1) var(--space-3);
	border-radius: var(--radius-full);
	background: var(--deal-color);
	color: var(--color-white);
	font-family: var(--font-display);
	font-size: var(--font-size-xs);
	font-weight: 700;
	line-height: 1.4;
	text-align: center;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
/* Both the classic div.images and WC 8+ .woocommerce-product-gallery */
.woocommerce div.product .fr-product-media {
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-xl);
	box-shadow: var(--shadow-card);
	overflow: hidden;
	padding: var(--space-6);
}
.woocommerce div.product .fr-product-media div.images,
.woocommerce div.product .fr-product-media .woocommerce-product-gallery {
	background: transparent;
	border: none;
	box-shadow: none;
	border-radius: 0;
	overflow: visible;
}
.woocommerce div.product div.images img,
.woocommerce div.product .woocommerce-product-gallery img,
.woocommerce div.product .woocommerce-product-gallery__image img {
	width: 100%;
	height: auto;
	max-height: min(460px, 52vh);
	object-fit: contain;
	display: block;
	margin: 0 auto;
}
.woocommerce div.product .woocommerce-product-gallery__trigger {
	border-radius: var(--radius-full);
	background: color-mix(in srgb, var(--color-text) 72%, transparent);
	color: var(--color-white);
}
.woocommerce div.product > .summary.entry-summary {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-xl);
	box-shadow: var(--shadow-card);
	padding: var(--space-8);
}
.woocommerce div.product .product_title {
	font-family: var(--font-display);
	font-size: var(--font-size-h2);
	font-weight: 800;
	line-height: var(--line-height-tight);
	color: var(--color-text);
}
.woocommerce div.product .price {
	font-family: var(--font-display);
	font-size: var(--font-size-h3);
	font-weight: 700;
	color: var(--color-primary);
}
.woocommerce div.product .price del { color: var(--color-muted); font-size: var(--font-size-h5); }
.woocommerce div.product .price ins { text-decoration: none; }
.woocommerce div.product .woocommerce-product-rating {
	display: flex; align-items: center; gap: var(--space-2);
}
.woocommerce div.product .stock {
	font-size: var(--font-size-sm);
	font-weight: 600;
	padding: var(--space-1) var(--space-3);
	border-radius: var(--radius-full);
}
.woocommerce div.product .in-stock  { background: #D1FAE5; color: #065F46; }
.woocommerce div.product .out-of-stock { background: #FEE2E2; color: #991B1B; }
.woocommerce div.product .quantity input {
	border: 1.5px solid var(--color-border);
	border-radius: var(--radius-md);
	padding: var(--space-3);
	font-size: var(--font-size-h5);
	font-weight: 600;
	width: 80px;
	text-align: center;
}
.woocommerce div.product .single_add_to_cart_button {
	background: var(--color-primary);
	color: var(--color-white);
	font-family: var(--font-display);
	font-weight: 700;
	border: none;
	border-radius: var(--radius-lg);
	padding: var(--space-4) var(--space-8);
	font-size: var(--font-size-h5);
	cursor: pointer;
	transition: background .15s;
	width: 100%;
}
.woocommerce div.product .single_add_to_cart_button:hover { background: var(--color-primary-dark); }
.woocommerce div.product .woocommerce-product-details__short-description {
	border-top: 1px solid var(--color-border);
	padding-top: var(--space-4);
	font-size: var(--font-size-sm);
	color: var(--color-muted);
	line-height: var(--line-height-base);
}
.woocommerce div.product .woocommerce-tabs {
	grid-column: 1 / -1;
	margin-top: var(--space-8);
}
.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex;
	gap: 0;
	border-bottom: 2px solid var(--color-border);
	padding: 0;
	margin-bottom: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	margin: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: var(--space-3) var(--space-6);
	font-family: var(--font-display);
	font-weight: 600;
	font-size: var(--font-size-sm);
	color: var(--color-muted);
	border: none;
	background: none;
	border-bottom: 2px solid transparent;
	margin-bottom: -2px;
	transition: color .15s, border-color .15s;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
	color: var(--color-primary);
	border-bottom-color: var(--color-primary);
}
.woocommerce div.product .woocommerce-tabs .panel {
	padding: var(--space-6) 0;
	border: none;
}
/* Related products */
.related.products, .upsells.products {
	margin-top: var(--space-12);
}
.related.products h2, .upsells.products h2 {
	font-family: var(--font-display);
	font-size: var(--font-size-h3);
	font-weight: 700;
	margin-bottom: var(--space-6);
}
.related.products ul.products,
.upsells.products ul.products {
	grid-template-columns: repeat(3, 1fr) !important;
}

/* ============================================================
   CART + CHECKOUT STYLES
   ============================================================ */
.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce {
	padding: var(--space-8) 0;
}
.woocommerce table.shop_table {
	border-collapse: collapse;
	width: 100%;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	overflow: hidden;
}
.woocommerce table.shop_table th {
	background: var(--color-light-bg);
	font-family: var(--font-display);
	font-weight: 600;
	padding: var(--space-4) var(--space-4);
	border-bottom: 1px solid var(--color-border);
	font-size: var(--font-size-sm);
}
.woocommerce table.shop_table td {
	padding: var(--space-4);
	border-bottom: 1px solid var(--color-border);
	vertical-align: middle;
}
.woocommerce-cart-form__cart-item td.product-name a {
	font-family: var(--font-display);
	font-weight: 600;
	color: var(--color-text);
}
.woocommerce-cart-form__cart-item td.product-name a:hover { color: var(--color-primary); }
.woocommerce button.button,
.woocommerce a.button {
	background: var(--color-primary);
	color: var(--color-white);
	font-family: var(--font-display);
	font-weight: 600;
	border: none;
	border-radius: var(--radius-md);
	padding: var(--space-3) var(--space-6);
	transition: background .15s;
	cursor: pointer;
}
.woocommerce button.button:hover,
.woocommerce a.button:hover { background: var(--color-primary-dark); }
.woocommerce button.button.alt { background: var(--color-primary); }

/* Cart totals */
.cart_totals { background: var(--color-white); border-radius: var(--radius-lg); box-shadow: var(--shadow-card); padding: var(--space-6); }
.cart_totals h2 { font-family: var(--font-display); font-weight: 700; margin-bottom: var(--space-4); }
.wc-proceed-to-checkout a.checkout-button {
	background: var(--color-primary);
	color: var(--color-white);
	display: block;
	text-align: center;
	border-radius: var(--radius-lg);
	padding: var(--space-4);
	font-family: var(--font-display);
	font-size: var(--font-size-h5);
	font-weight: 700;
	transition: background .15s;
}
.wc-proceed-to-checkout a.checkout-button:hover { background: var(--color-primary-dark); }

/* Checkout form */
.woocommerce-checkout .woocommerce-input-wrapper input,
.woocommerce-checkout .woocommerce-input-wrapper textarea,
.woocommerce-checkout .woocommerce-input-wrapper select {
	border: 1.5px solid var(--color-border);
	border-radius: var(--radius-md);
	padding: var(--space-3) var(--space-4);
	font-family: var(--font-body);
	font-size: var(--font-size-base);
	width: 100%;
	transition: border-color .15s;
}
.woocommerce-checkout .woocommerce-input-wrapper input:focus,
.woocommerce-checkout .woocommerce-input-wrapper textarea:focus {
	outline: none;
	border-color: var(--color-primary);
	box-shadow: 0 0 0 3px rgba(15,118,110,.1);
}

/* State field gets select2-enhanced by WooCommerce core (recognized
   "state_select" class) while the custom Town/City field does not (no
   recognized class, so it stays a plain <select> and picks up the rule
   above directly) — restyle select2's own markup to match exactly so both
   fields look identical instead of State falling back to select2's default skin. */
.woocommerce-checkout .select2-container { width: 100% !important; }
.woocommerce-checkout .select2-container--default .select2-selection--single {
	border: 1.5px solid var(--color-border);
	border-radius: var(--radius-md);
	height: auto;
	padding: var(--space-3) var(--space-4);
	font-family: var(--font-body);
	font-size: var(--font-size-base);
	transition: border-color .15s;
}
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
	padding: 0;
	line-height: 1.5;
	color: var(--color-text);
}
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 100%;
	top: 0;
	right: var(--space-4);
}
.woocommerce-checkout .select2-container--default.select2-container--open .select2-selection--single,
.woocommerce-checkout .select2-container--default.select2-container--focus .select2-selection--single {
	outline: none;
	border-color: var(--color-primary);
	box-shadow: 0 0 0 3px rgba(15,118,110,.1);
}

/* ============================================================
   HERO STATS ROW
   ============================================================ */
.fr-hero__stats { display: flex; align-items: center; gap: var(--space-4); margin-top: var(--space-6); flex-wrap: wrap; }
.fr-hero__stat { display: flex; flex-direction: column; }
.fr-hero__stat strong { font-family: var(--font-display); font-size: var(--font-size-h4); font-weight: 800; color: var(--color-white); line-height: 1; }
.fr-hero__stat span { font-size: var(--font-size-xs); opacity: .8; }
.fr-hero__stat-divider { width: 1px; height: 32px; background: rgba(255,255,255,.3); }

/* ============================================================
   MOBILE DRAWER
   ============================================================ */
.fr-mobile-drawer { position: fixed; inset: 0; z-index: 300; pointer-events: none; }
.fr-mobile-drawer.is-open { pointer-events: all; }
.fr-mobile-drawer__overlay { position: absolute; inset: 0; background: rgba(0,0,0,0); transition: background .25s; }
.fr-mobile-drawer.is-open .fr-mobile-drawer__overlay { background: rgba(0,0,0,.5); }
.fr-mobile-drawer__panel {
	position: absolute; top: 0; right: 0; bottom: 0; width: 300px;
	background: var(--color-white); box-shadow: var(--shadow-modal);
	transform: translateX(100%); transition: transform .25s cubic-bezier(.4,0,.2,1);
	display: flex; flex-direction: column; overflow: hidden;
}
.fr-mobile-drawer.is-open .fr-mobile-drawer__panel { transform: none; }
.fr-mobile-drawer__head { display: flex; align-items: center; justify-content: space-between; padding: var(--space-4) var(--space-6); border-bottom: 1px solid var(--color-border); }
.fr-mobile-drawer__title { font-family: var(--font-display); font-weight: 800; font-size: 1.125rem; color: var(--color-primary); }
.fr-mobile-drawer__close { background: none; border: none; color: var(--color-muted); cursor: pointer; padding: var(--space-1); }
.fr-mobile-drawer__location { display: flex; align-items: center; gap: var(--space-2); padding: var(--space-3) var(--space-6); background: rgba(15,118,110,.06); color: var(--color-primary); font-size: var(--font-size-sm); font-weight: 600; cursor: pointer; border-bottom: 1px solid var(--color-border); }
.fr-mobile-drawer__cats { flex: 1; overflow-y: auto; padding: var(--space-2) 0; }
.fr-mobile-drawer__cat-link { display: block; padding: var(--space-3) var(--space-6); font-size: var(--font-size-sm); color: var(--color-text); border-left: 3px solid transparent; transition: background .12s, color .12s, border-color .12s; }
.fr-mobile-drawer__cat-link:hover { background: var(--color-light-bg); color: var(--color-accent-dark); border-left-color: var(--color-accent); }
.fr-mobile-drawer__actions { padding: var(--space-4) var(--space-6); border-top: 1px solid var(--color-border); display: flex; flex-direction: column; gap: var(--space-3); }

/* ============================================================
   LOCATION MODAL
   ============================================================ */
/* Modal uses [hidden] attribute — JS removes it to show, sets it to hide */
.fr-modal {
	position: fixed;
	inset: 0;
	z-index: 1000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--space-4);
}
.fr-modal[hidden] { display: none; }

.fr-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0,0,0,.5);
	cursor: pointer;
}
.fr-modal__box {
	position: relative;
	z-index: 1;
	background: var(--color-white);
	border-radius: var(--radius-xl);
	box-shadow: var(--shadow-modal);
	width: 100%; max-width: 480px;
	max-height: 80vh;
	overflow: hidden;
	display: flex; flex-direction: column;
	animation: fr-modal-in .2s ease;
}
@keyframes fr-modal-in {
	from { opacity: 0; transform: translateY(12px) scale(.97); }
	to   { opacity: 1; transform: none; }
}
.fr-modal__header {
	padding: var(--space-6) var(--space-6) var(--space-4);
	border-bottom: 1px solid var(--color-border);
	display: flex; align-items: center; justify-content: space-between;
	flex-shrink: 0;
}
.fr-modal__title {
	font-family: var(--font-display);
	font-size: var(--font-size-h4);
	font-weight: 700;
	color: var(--color-text);
}
.fr-modal__close {
	background: none; border: none;
	color: var(--color-muted); cursor: pointer;
	padding: var(--space-1);
	font-size: 20px; line-height: 1;
	border-radius: var(--radius-sm);
	transition: color .15s;
}
.fr-modal__close:hover { color: var(--color-text); }
.fr-modal__body {
	overflow-y: auto;
	flex: 1;
	padding: var(--space-4) var(--space-6);
}
.fr-modal__empty {
	text-align: center;
	color: var(--color-muted);
	padding: var(--space-8) 0;
}
.fr-location-list {
	list-style: none;
	margin: 0; padding: 0;
	display: flex; flex-direction: column;
	gap: var(--space-3);
}
.fr-location-list__item { margin: 0; }
.fr-location-list__btn {
	display: block;
	width: 100%;
	text-align: left;
	padding: var(--space-4);
	border: 1.5px solid var(--color-border);
	border-radius: var(--radius-lg);
	background: none;
	cursor: pointer;
	transition: border-color .15s, background .15s;
}
.fr-location-list__btn:hover {
	border-color: var(--color-primary);
	background: rgba(15,118,110,.04);
}
.fr-location-list__name {
	font-family: var(--font-display);
	font-weight: 700;
	color: var(--color-text);
	display: block;
	margin-bottom: var(--space-1);
}
.fr-location-list__address,
.fr-location-list__hours {
	font-size: var(--font-size-xs);
	color: var(--color-muted);
	display: block;
}

/* ============================================================
   ORDER TRACKING STEPPER
   ============================================================ */
.fr-order-tracking { margin: var(--space-8) 0; }
.fr-tracking-steps {
	display: flex;
	align-items: center;
	justify-content: space-between;
	position: relative;
}
.fr-tracking-steps::before {
	content: '';
	position: absolute;
	top: 20px; left: 20px; right: 20px;
	height: 2px;
	background: var(--color-border);
	z-index: 0;
}
.fr-tracking-step {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--space-2);
	position: relative;
	z-index: 1;
	flex: 1;
}
.fr-tracking-step__dot {
	width: 40px; height: 40px;
	border-radius: 50%;
	background: var(--color-border);
	display: flex; align-items: center; justify-content: center;
	font-family: var(--font-display);
	font-size: var(--font-size-xs);
	font-weight: 700;
	color: var(--color-muted);
	border: 3px solid var(--color-border);
	transition: background .3s, border-color .3s;
}
.fr-tracking-step.is-complete .fr-tracking-step__dot {
	background: var(--color-primary);
	border-color: var(--color-primary);
	color: var(--color-white);
}
.fr-tracking-step.is-active .fr-tracking-step__dot {
	background: var(--color-white);
	border-color: var(--color-primary);
	color: var(--color-primary);
	box-shadow: 0 0 0 4px rgba(15,118,110,.15);
}
.fr-tracking-step__label {
	font-size: var(--font-size-xs);
	font-family: var(--font-display);
	font-weight: 600;
	color: var(--color-muted);
	text-align: center;
	max-width: 80px;
}
.fr-tracking-step.is-active .fr-tracking-step__label,
.fr-tracking-step.is-complete .fr-tracking-step__label { color: var(--color-primary); }

/* ============================================================
   TOAST NOTIFICATION
   ============================================================ */
.fr-toast {
	position: fixed;
	bottom: var(--space-6);
	right: var(--space-6);
	background: var(--color-text);
	color: var(--color-white);
	padding: var(--space-3) var(--space-6);
	border-radius: var(--radius-lg);
	font-family: var(--font-display);
	font-size: var(--font-size-sm);
	font-weight: 600;
	z-index: 2000;
	display: flex;
	align-items: center;
	gap: var(--space-3);
	box-shadow: var(--shadow-modal);
	transform: translateY(100px);
	opacity: 0;
	transition: transform .3s, opacity .3s;
}
.fr-toast.is-visible { transform: none; opacity: 1; }
.fr-toast--success { background: var(--green-badge); }
.fr-toast a { color: var(--color-accent); font-weight: 700; }

/* ============================================================
   FOOTER — modern ecommerce layout
   ============================================================ */
.fr-footer-cta {
	background: linear-gradient(135deg, var(--color-accent) 0%, var(--color-accent-dark) 100%);
	color: var(--color-white);
	padding: var(--space-8) 0;
	margin-top: var(--space-16);
}

.fr-footer-cta__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-6);
	flex-wrap: wrap;
}

.fr-footer-cta__text h2 {
	font-family: var(--font-display);
	font-size: var(--font-size-h4);
	font-weight: 700;
	line-height: var(--line-height-tight);
	margin: 0 0 var(--space-2);
	color: var(--color-white);
}

.fr-footer-cta__text p {
	margin: 0;
	font-size: var(--font-size-sm);
	color: rgba(255, 255, 255, 0.88);
	max-width: 36rem;
	line-height: var(--line-height-base);
}

.fr-footer-cta__btn {
	flex-shrink: 0;
	white-space: nowrap;
}

.fr-footer {
	background: var(--color-text);
	color: rgba(255, 255, 255, 0.82);
	margin-top: 0;
}

.fr-footer__trust {
	padding: var(--space-6) 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

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

.fr-footer__trust-item {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	font-size: var(--font-size-sm);
	font-weight: 600;
	font-family: var(--font-display);
	color: rgba(255, 255, 255, 0.9);
}

.fr-footer__trust-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: var(--radius-full);
	background: rgba(255, 255, 255, 0.08);
	color: var(--color-accent);
	flex-shrink: 0;
}

.fr-footer__main {
	padding: var(--space-12) 0 var(--space-8);
}

.fr-footer__grid {
	display: grid;
	grid-template-columns: 1.4fr repeat(4, 1fr);
	gap: var(--space-8) var(--space-6);
}

.fr-footer__brand-logo {
	display: inline-block;
	margin-bottom: var(--space-4);
}

.fr-footer__brand-logo img {
	max-width: var(--footer-logo-max-width, 160px);
	max-height: none;
	width: auto;
	height: auto;
}

.fr-footer__brand-name {
	font-family: var(--font-display);
	font-size: var(--font-size-h4);
	font-weight: 800;
	color: var(--color-white);
}

.fr-footer__tagline {
	font-size: var(--font-size-sm);
	color: rgba(255, 255, 255, 0.62);
	margin: 0 0 var(--space-4);
	line-height: var(--line-height-base);
	max-width: 20rem;
}

.fr-footer__location {
	display: flex;
	align-items: center;
	gap: var(--space-2);
	font-size: var(--font-size-sm);
	color: var(--color-accent);
	font-weight: 600;
	margin: 0 0 var(--space-4);
	font-family: var(--font-display);
}

.fr-footer__contact {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.fr-footer__contact a {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	font-size: var(--font-size-sm);
	color: rgba(255, 255, 255, 0.72);
	transition: color 0.15s ease;
}

.fr-footer__contact a:hover {
	color: var(--color-accent);
}

.fr-footer__col-title {
	font-family: var(--font-display);
	font-size: var(--font-size-sm);
	font-weight: 700;
	color: var(--color-white);
	margin: 0 0 var(--space-4);
	letter-spacing: 0.02em;
}

.fr-footer__links {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
}

.fr-footer__links a {
	display: inline-block;
	font-size: var(--font-size-sm);
	color: rgba(255, 255, 255, 0.62);
	padding: var(--space-1) 0;
	transition: color 0.15s ease, transform 0.15s ease;
}

.fr-footer__links a:hover {
	color: var(--color-accent);
	transform: translateX(2px);
}

.fr-footer__bottom {
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	background: rgba(0, 0, 0, 0.18);
	padding: var(--space-5) 0;
}

.fr-footer__bottom-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-4);
	flex-wrap: wrap;
}

.fr-footer__copy {
	margin: 0;
	font-size: var(--font-size-xs);
	color: rgba(255, 255, 255, 0.45);
}

.fr-footer__payments {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2);
	align-items: center;
}

.fr-footer__pay-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 1.75rem;
	padding: 0 var(--space-2);
	border-radius: var(--radius-sm);
	border: 1px solid rgba(255, 255, 255, 0.14);
	background: rgba(255, 255, 255, 0.06);
	font-family: var(--font-display);
	font-size: var(--font-size-xs);
	font-weight: 600;
	color: rgba(255, 255, 255, 0.55);
	letter-spacing: 0.03em;
	text-transform: uppercase;
}

/* ============================================================
   BLOCKS STYLES
   ============================================================ */
/* Hero block */
.fr-hero-block {
	background: linear-gradient(135deg, var(--color-primary) 0%, #134e4a 100%);
	color: var(--color-white);
	padding: var(--space-12) 0;
	overflow: hidden;
}
.fr-hero-block--teal { background: linear-gradient(135deg, var(--color-primary) 0%, #134e4a 100%); }
.fr-hero-block--cream {
	background: linear-gradient(135deg, var(--color-bg) 0%, #fef3c7 100%);
	color: var(--color-text);
}
.fr-hero-block__inner {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: var(--space-8);
	align-items: center;
}
.fr-hero-block__headline {
	font-family: var(--font-display);
	font-size: clamp(1.75rem, 4vw, var(--font-size-h1));
	font-weight: 800;
	line-height: var(--line-height-tight);
	margin-bottom: var(--space-4);
}
.fr-hero-block__sub { font-size: var(--font-size-h5); opacity: .9; margin-bottom: var(--space-6); max-width: 520px; }
.fr-hero-block__actions { display: flex; gap: var(--space-4); flex-wrap: wrap; }
.fr-hero-block__mascot img { width: 280px; }

/* Category grid block */
.fr-cat-grid-block { padding: var(--section-gap) 0; }
.fr-cat-grid-block__title {
	font-family: var(--font-display); font-size: var(--font-size-h3); font-weight: 700;
	margin-bottom: var(--space-6);
}
.fr-cat-grid-block__grid {
	display: grid;
	grid-template-columns: repeat(var(--fr-cols, 4), 1fr);
	gap: var(--space-4);
}
.fr-category-card {
	display: flex; flex-direction: column; align-items: center;
	gap: var(--space-2); text-decoration: none;
}
.fr-category-card__img-wrap {
	width: 100%; aspect-ratio: 1;
	border-radius: 50%;
	overflow: hidden;
	background: var(--color-light-bg);
	border: 3px solid transparent;
	transition: border-color .2s, transform .2s;
}
.fr-category-card:hover .fr-category-card__img-wrap {
	border-color: var(--color-primary); transform: translateY(-3px);
}
.fr-category-card__img-wrap img { width: 100%; height: 100%; object-fit: cover; }
.fr-category-card__placeholder { width: 100%; height: 100%; background: var(--color-light-bg); display: flex; align-items: center; justify-content: center; font-size: 2rem; }
.fr-category-card__name {
	font-family: var(--font-display); font-size: var(--font-size-xs); font-weight: 600;
	color: var(--color-text); text-align: center;
}

/* Promo block */
.fr-promo-block {
	padding: var(--space-12) 0;
	text-align: center;
}
.fr-promo-block--teal { background: linear-gradient(135deg, var(--color-primary), #134e4a); color: var(--color-white); }
.fr-promo-block--accent { background: linear-gradient(135deg, var(--color-accent), var(--color-accent-dark)); color: var(--color-white); }
.fr-promo-block--light { background: var(--color-light-bg); color: var(--color-text); }
.fr-promo-block__inner { display: flex; flex-direction: column; align-items: center; gap: var(--space-4); max-width: 640px; margin: 0 auto; }
.fr-promo-block__eyebrow { font-size: var(--font-size-sm); font-weight: 600; text-transform: uppercase; letter-spacing: .08em; opacity: .8; }
.fr-promo-block__headline { font-family: var(--font-display); font-size: clamp(1.5rem, 3vw, var(--font-size-h2)); font-weight: 800; line-height: var(--line-height-tight); }
.fr-promo-block__body { opacity: .85; max-width: 480px; }

/* Trust strip block */
.fr-trust-strip-block { background: var(--color-white); border-top: 1px solid var(--color-border); border-bottom: 1px solid var(--color-border); padding: var(--space-6) 0; }
.fr-trust-strip__inner { display: flex; align-items: center; justify-content: center; gap: var(--space-8); flex-wrap: wrap; }
.fr-trust-strip__item { display: flex; align-items: center; gap: var(--space-3); }
.fr-trust-strip__icon { font-size: 1.5rem; }
.fr-trust-strip__label { font-family: var(--font-display); font-weight: 600; font-size: var(--font-size-sm); color: var(--color-text); }

/* Feature step block */
.fr-feature-step {
	background: var(--color-white);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-card);
	padding: var(--space-6);
	text-align: center;
	display: flex; flex-direction: column; align-items: center; gap: var(--space-3);
}
.fr-feature-step__icon { font-size: 2.5rem; }
.fr-feature-step__num {
	width: 28px; height: 28px; border-radius: 50%;
	background: var(--color-primary); color: var(--color-white);
	font-family: var(--font-display); font-weight: 700; font-size: var(--font-size-sm);
	display: flex; align-items: center; justify-content: center;
}
.fr-feature-step__heading { font-family: var(--font-display); font-size: var(--font-size-h5); font-weight: 700; }
.fr-feature-step__desc { font-size: var(--font-size-sm); color: var(--color-muted); line-height: var(--line-height-base); }

/* FAQ accordion */
.fr-faq-block { padding: var(--section-gap) 0; }
.fr-faq-block__title { font-family: var(--font-display); font-size: var(--font-size-h3); font-weight: 700; margin-bottom: var(--space-6); }
.fr-accordion { display: flex; flex-direction: column; gap: var(--space-3); max-width: 720px; }
.fr-accordion__item { border: 1.5px solid var(--color-border); border-radius: var(--radius-lg); overflow: hidden; }
.fr-accordion__trigger {
	width: 100%; display: flex; align-items: center; justify-content: space-between;
	padding: var(--space-4) var(--space-6); background: var(--color-white);
	border: none; cursor: pointer; font-family: var(--font-display); font-weight: 600;
	font-size: var(--font-size-base); color: var(--color-text); text-align: left; gap: var(--space-4);
	transition: background .15s;
}
.fr-accordion__trigger:hover { background: var(--color-light-bg); }
.fr-accordion__trigger[aria-expanded="true"] { border-bottom: 1px solid var(--color-border); }
.fr-accordion__icon { flex-shrink: 0; font-size: 1.25rem; color: var(--color-primary); transition: transform .2s; }
.fr-accordion__trigger[aria-expanded="true"] .fr-accordion__icon { transform: rotate(45deg); }
.fr-accordion__panel { padding: var(--space-4) var(--space-6); background: var(--color-white); }
.fr-accordion__panel p { color: var(--color-muted); line-height: var(--line-height-base); font-size: var(--font-size-sm); }


/* Location cards block */
.fr-location-cards-block { padding: var(--section-gap) 0; }
.fr-location-cards-block__title { font-family: var(--font-display); font-size: var(--font-size-h3); font-weight: 700; margin-bottom: var(--space-6); }
.fr-location-cards-block__grid { display: grid; grid-template-columns: repeat(var(--fr-cols, 3), 1fr); gap: var(--space-6); }
.fr-location-card {
	background: var(--color-white); border-radius: var(--radius-lg); box-shadow: var(--shadow-card);
	padding: var(--space-6); display: flex; flex-direction: column; gap: var(--space-3);
}
.fr-location-card__name a { font-family: var(--font-display); font-size: var(--font-size-h5); font-weight: 700; color: var(--color-text); }
.fr-location-card__name a:hover { color: var(--color-primary); }
.fr-location-card__address, .fr-location-card__hours, .fr-location-card__fee { font-size: var(--font-size-sm); color: var(--color-muted); }

/* Content section block */
.fr-content-section { padding: var(--section-gap) 0; }

/* Contact info block */
.fr-contact-info { padding: var(--section-gap) 0; }

/* ============================================================
   MY ACCOUNT — layout + extra-space fix
   ============================================================ */

/* Kill min-height that leaves dead space when account content is short */
.woocommerce-account .fr-page { min-height: 0; padding-bottom: var(--space-8); }

/* WC account wrapper — reset margin so nothing bleeds below footer
   :not(.dgwt-wcas-details-wrapp) excludes FiboSearch's absolutely-positioned
   results popup, which also carries a bare "woocommerce" class — without the
   exclusion these !important rules override its own display:none and force
   it visible, showing as a blank block on every My Account page. */
.woocommerce-account .woocommerce:not(.dgwt-wcas-details-wrapp) { display: block; margin-bottom: 0 !important; }
.woocommerce-account .woocommerce:not(.dgwt-wcas-details-wrapp)::after { content: ''; display: table; clear: both; }
.woocommerce-account .woocommerce-MyAccount-content > *:last-child { margin-bottom: 0 !important; }

/* WC nav sidebar */
.woocommerce-MyAccount-navigation { width: 220px; float: left; margin-right: var(--space-8); }
.woocommerce-MyAccount-navigation ul {
	background: var(--color-white); border-radius: var(--radius-lg); box-shadow: var(--shadow-card);
	overflow: hidden; list-style: none; padding: var(--space-2) 0;
}
.woocommerce-MyAccount-navigation ul li a {
	display: block; padding: var(--space-3) var(--space-5);
	font-family: var(--font-display); font-size: var(--font-size-sm); font-weight: 600;
	color: var(--color-text); border-left: 3px solid transparent;
	transition: background .12s, color .12s, border-color .12s;
}
.woocommerce-MyAccount-navigation ul li a:hover,
.woocommerce-MyAccount-navigation ul li.is-active a,
.woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--active a {
	background: rgba(15,118,110,.06); color: var(--color-primary); border-left-color: var(--color-primary);
}

/* WC account content sits beside the float nav */
.woocommerce-MyAccount-content { overflow: hidden; margin-bottom: 0; }

/* Account sub-forms (edit-account, edit-address) */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-form-row label,
.woocommerce-account .woocommerce-MyAccount-content p.form-row label {
	font-size: var(--font-size-sm); font-weight: 600; display: block; margin-bottom: var(--space-1);
}
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-input-wrapper input,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-form-row input,
.woocommerce-account .woocommerce-MyAccount-content p.form-row input,
.woocommerce-account .woocommerce-MyAccount-content p.form-row select {
	border: 1.5px solid var(--color-border); border-radius: var(--radius-md);
	padding: var(--space-3) var(--space-4); font-family: var(--font-body);
	font-size: var(--font-size-base); width: 100%; transition: border-color .15s; background: var(--color-white);
}
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-form-row input:focus,
.woocommerce-account .woocommerce-MyAccount-content p.form-row input:focus {
	outline: none; border-color: var(--color-primary); box-shadow: 0 0 0 3px rgba(15,118,110,.1);
}

@media (max-width: 768px) {
	.woocommerce-MyAccount-navigation { width: 100%; float: none; margin-right: 0; margin-bottom: var(--space-4); }
}

/* ============================================================
   WC MESSAGES + NOTICES
   ============================================================ */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
	border-radius: var(--radius-lg);
	padding: var(--space-4) var(--space-6);
	margin-bottom: var(--space-6);
	display: flex; align-items: center; gap: var(--space-4);
}
.woocommerce-message { background: #D1FAE5; border-left: 4px solid var(--green-badge); color: #065F46; }
.woocommerce-info    { background: #DBEAFE; border-left: 4px solid #1D4ED8; color: #1E40AF; }
.woocommerce-error   { background: #FEE2E2; border-left: 4px solid var(--deal-color); color: #991B1B; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1024px) {
	.fr-product-grid,
	ul.products { grid-template-columns: repeat(4, 1fr) !important; }
	.fr-footer__grid { grid-template-columns: 1fr 1fr 1fr; }
	.fr-footer__brand { grid-column: 1 / -1; }
	.fr-footer__trust-list { grid-template-columns: repeat(2, 1fr); }
	.fr-hero__visual { width: 220px; height: 220px; }
}

@media (max-width: 1024px) {
	.fr-header__container {
		padding-left: var(--container-pad-tablet);
		padding-right: var(--container-pad-tablet);
	}
}

@media (max-width: 768px) {
	.fr-header__container {
		padding-left: var(--container-pad-mobile);
		padding-right: var(--container-pad-mobile);
	}

	.fr-header__main { gap: var(--space-3); }
	.fr-header__location-pill { display: none; }
	.fr-search-form button[type="submit"] { display: none; }

	.fr-nav__mobile-toggle {
		display: inline-flex;
		flex-direction: column;
		justify-content: center;
		align-items: stretch;
	}
	.fr-header__actions .fr-nav__account { display: none; }
	.fr-header__actions .fr-nav__membership { display: none; }

	.fr-hero__inner { grid-template-columns: 1fr; text-align: center; padding-top: var(--space-8); padding-bottom: var(--space-8); }
	.fr-hero__visual { display: none; }
	.fr-hero__actions { justify-content: center; }
	.fr-hero__badge { margin: 0 auto var(--space-4); }

	.fr-product-grid,
	ul.products { grid-template-columns: repeat(2, 1fr) !important; gap: var(--space-3) !important; }

	.fr-shop__layout { grid-template-columns: 1fr; }
	.fr-shop__sidebar { position: static; }

	.fr-footer-cta__inner {
		flex-direction: column;
		align-items: flex-start;
		text-align: left;
	}
	.fr-footer-cta__btn { width: 100%; justify-content: center; }
	.fr-footer__grid { grid-template-columns: 1fr 1fr; gap: var(--space-6) var(--space-8); }
	.fr-footer__brand { grid-column: 1 / -1; }
	.fr-footer__trust-list { grid-template-columns: 1fr 1fr; gap: var(--space-3); }
	.fr-footer__bottom-inner { flex-direction: column; align-items: flex-start; }

	.woocommerce div.product {
		grid-template-columns: 1fr;
		grid-template-areas:
			"media"
			"summary";
	}
	.fr-trust-strip__inner { gap: var(--space-4); }
	.fr-tracking-steps { flex-wrap: wrap; gap: var(--space-4); }
	.fr-tracking-steps::before { display: none; }

	.related.products ul.products,
	.upsells.products ul.products { grid-template-columns: repeat(2, 1fr) !important; }

	.fr-cat-grid-block__grid { grid-template-columns: repeat(4, 1fr); }
	.fr-location-cards-block__grid { grid-template-columns: 1fr; }
	.fr-hero-block__inner { grid-template-columns: 1fr; text-align: center; }
	.fr-hero-block__mascot { display: none; }
	.fr-hero-block__actions { justify-content: center; }
	.fr-hero-block__stats { justify-content: center; }
	.fr-promo-strip { grid-template-columns: 1fr; text-align: center; }
	.fr-promo-strip__visual { display: none; }
}

@media (max-width: 480px) {
	.fr-footer__grid { grid-template-columns: 1fr; }
	.fr-footer__trust-list { grid-template-columns: 1fr; }
	.fr-cat-grid-block__grid { grid-template-columns: repeat(3, 1fr); }
	.fr-product-scroll .fr-product-card { width: 160px; }
}

/* FoodRabbit final polish: forms, account, product, checkout */
.fr-commerce-hero { background: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark)); color: var(--color-white); padding: var(--space-8) 0; }
.fr-commerce-hero span, .fr-account-hero span, .fr-auth-card__head span { display: inline-flex; font-family: var(--font-display); font-size: var(--font-size-xs); font-weight: 700; letter-spacing: 0; text-transform: uppercase; opacity: .85; margin-bottom: var(--space-2); }
.fr-commerce-hero h1 { font-family: var(--font-display); font-size: var(--font-size-h2); line-height: var(--line-height-tight); margin: 0 0 var(--space-2); color: var(--color-white); }
.fr-commerce-hero p { margin: 0; max-width: 620px; opacity: .9; }

/* Static marketing page hero — alternate teal/saffron/charcoal so the site
   doesn't read as all-teal; how-it-works + contact keep the default teal above. */
.fr-page-hero--about-us,
.fr-page-hero--faqs,
.fr-page-hero--faq {
	background: linear-gradient(135deg, var(--color-accent) 0%, var(--color-accent-dark) 100%);
}

.fr-page-hero--terms-conditions,
.fr-page-hero--privacy-policy {
	background: linear-gradient(135deg, var(--color-text) 0%, #111827 100%);
}

/* ============================================================
   FORMS — global styled form system
   ============================================================ */
.fr-styled-form,
.woocommerce form.login,
.woocommerce form.register,
.woocommerce form.lost_reset_password,
.woocommerce form.edit-account,
.woocommerce form.checkout,
#review_form form,
.fr-driver-form {
	display: grid;
	gap: var(--space-4);
}

/* Reset WooCommerce's half-width float layout inside our grid forms */
.woocommerce form.login .form-row,
.woocommerce form.register .form-row,
.woocommerce form.lost_reset_password .form-row,
.woocommerce form.edit-account .form-row,
.fr-styled-form .form-row,
.fr-driver-form .form-row {
	float: none !important;
	width: auto !important;
	display: block;
	margin: 0;
	padding: 0;
	clear: none;
}

/* WC clears after form-row-last — not needed in grid */
.woocommerce form.login::after,
.woocommerce form.register::after,
.woocommerce form.edit-account::after { content: none; display: none; }

.woocommerce form .form-row,
.fr-styled-form .form-row,
#review_form .comment-form > p { margin: 0; padding: 0; }

.woocommerce form label,
#review_form label,
.fr-driver-form label {
	display: block;
	font-family: var(--font-display);
	font-size: var(--font-size-sm);
	font-weight: 700;
	color: var(--color-text);
	margin-bottom: var(--space-2);
}

/* Text, email, password, number, tel inputs */
.woocommerce input.input-text,
.woocommerce input[type="text"],
.woocommerce input[type="email"],
.woocommerce input[type="password"],
.woocommerce input[type="tel"],
.woocommerce input[type="number"],
.woocommerce textarea,
.woocommerce select,
#review_form input[type="text"],
#review_form input[type="email"],
#review_form textarea,
.fr-driver-form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.fr-driver-form select,
.fr-driver-form textarea {
	width: 100%;
	min-height: 48px;
	border: 1.5px solid var(--color-border);
	border-radius: var(--radius-md);
	background: var(--color-white);
	color: var(--color-text);
	padding: 0 var(--space-4);
	font-family: var(--font-body);
	font-size: var(--font-size-base);
	box-shadow: none;
	box-sizing: border-box;
	transition: border-color .15s;
	-webkit-appearance: none;
	appearance: none;
}

.woocommerce textarea,
#review_form textarea,
.fr-driver-form textarea {
	min-height: 120px;
	padding-top: var(--space-3);
	resize: vertical;
}

.woocommerce input:focus,
.woocommerce textarea:focus,
.woocommerce select:focus,
#review_form input:focus,
#review_form textarea:focus,
.fr-driver-form input:focus,
.fr-driver-form select:focus,
.fr-driver-form textarea:focus {
	outline: none;
	border-color: var(--color-primary);
	box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.12);
}

/* Checkboxes inside WC forms — don't stretch */
.woocommerce .woocommerce-form__input-checkbox,
.woocommerce input[type="checkbox"],
.fr-driver-form input[type="checkbox"],
.fr-driver-form input[type="radio"] {
	width: auto;
	min-height: auto;
	accent-color: var(--color-primary);
}

/* Select arrow */
.woocommerce select,
.fr-driver-form select {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%239CA3AF' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right var(--space-4) center;
	padding-right: var(--space-8);
}

/* Buttons */
.woocommerce button.button,
.woocommerce a.button,
.woocommerce input.button,
#review_form #submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	border: 0;
	border-radius: var(--radius-md);
	background: var(--color-primary);
	color: var(--color-white) !important;
	font-family: var(--font-display);
	font-weight: 700;
	font-size: var(--font-size-sm);
	padding: 0 var(--space-6);
	text-decoration: none !important;
	cursor: pointer;
	transition: background .15s;
}
.woocommerce button.button:hover,
.woocommerce a.button:hover,
.woocommerce input.button:hover,
#review_form #submit:hover { background: var(--color-primary-dark); color: var(--color-white) !important; }

/* Validation states */
.woocommerce-invalid input.input-text,
.woocommerce-invalid input[type="text"],
.woocommerce-invalid input[type="email"],
.woocommerce-invalid input[type="password"] { border-color: #DC2626; }
.woocommerce-invalid label { color: #DC2626; }
.woocommerce-form-row .required { color: #DC2626; }

/* Form notices (above the form) */
.woocommerce-notices-wrapper .woocommerce-error,
.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-info { border-radius: var(--radius-md); margin-bottom: var(--space-4); list-style: none; }

/* Auth shell (login + register side by side) */
.fr-auth-shell {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-8);
	align-items: start;
	padding: var(--space-8) 0;
}
.fr-auth-shell--single { grid-template-columns: minmax(0, 560px); justify-content: center; }
.fr-auth-card,
.fr-account-panel,
.woocommerce-MyAccount-content,
.fr-order-summary-card {
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-xl);
	box-shadow: var(--shadow-card);
	padding: var(--space-8);
}
.fr-auth-card__head h1,
.fr-auth-card__head h2,
.fr-account-hero h1,
.fr-account-panel h2 { font-family: var(--font-display); line-height: var(--line-height-tight); margin: 0 0 var(--space-2); }
.fr-auth-card__head p,
.fr-account-hero p { color: var(--color-muted); margin: 0 0 var(--space-6); }
.fr-auth-actions { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); flex-wrap: wrap; }
.woocommerce-LostPassword a, .lost_password a { color: var(--color-primary); text-decoration: none !important; font-weight: 700; }

@media (max-width: 900px) {
	.fr-auth-shell { grid-template-columns: 1fr; max-width: 560px; margin: 0 auto; }
}

.woocommerce-account .woocommerce:not(.dgwt-wcas-details-wrapp) { display: block; gap: 0; align-items: start; }
.woocommerce-MyAccount-navigation { background: var(--color-white); border: 1px solid var(--color-border); border-radius: var(--radius-xl); box-shadow: var(--shadow-card); padding: var(--space-3); position: sticky; top: calc(var(--header-height) + var(--space-4)); }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-1); }
.woocommerce-MyAccount-navigation a { display: flex; padding: var(--space-3) var(--space-4); border-radius: var(--radius-md); color: var(--color-text); font-family: var(--font-display); font-weight: 700; text-decoration: none !important; }
.woocommerce-MyAccount-navigation .is-active a, .woocommerce-MyAccount-navigation a:hover { background: var(--color-primary); color: var(--color-white); }
.fr-account-hero { display: flex; justify-content: space-between; gap: var(--space-6); align-items: center; background: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark)); color: var(--color-white); border-radius: var(--radius-xl); padding: var(--space-8); margin-bottom: var(--space-6); }
.fr-account-hero > div { min-width: 0; }
.fr-account-hero h1, .fr-account-hero p { color: var(--color-white); overflow-wrap: break-word; }
.fr-account-quick-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-4); margin-bottom: var(--space-6); }
.fr-account-quick-grid a, .fr-account-order-card { background: var(--color-white); border: 1px solid var(--color-border); border-radius: var(--radius-lg); padding: var(--space-5, var(--space-4)); text-decoration: none !important; color: var(--color-text); box-shadow: var(--shadow-card); display: grid; gap: var(--space-1); }
.fr-account-quick-grid strong, .fr-account-order-card span { font-family: var(--font-display); font-weight: 800; }
.fr-account-quick-grid span, .fr-account-order-card em { color: var(--color-muted); font-style: normal; font-size: var(--font-size-sm); }
.fr-account-panel__head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); margin-bottom: var(--space-4); }
.fr-account-panel__head a { color: var(--color-primary); font-weight: 800; text-decoration: none !important; }
.fr-account-order-list { display: grid; gap: var(--space-3); }

.woocommerce div.product form.cart {
	display: grid;
	grid-template-columns: auto minmax(220px, 1fr);
	align-items: stretch;
	gap: var(--space-3);
	margin: var(--space-6) 0;
}
.woocommerce div.product form.cart div.quantity,
.woocommerce div.product form.cart .quantity { margin: 0 !important; }
.woocommerce .quantity .qty,
.woocommerce div.product .quantity input {
	width: 92px;
	min-height: 54px;
	height: 54px;
	text-align: center;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	font-family: var(--font-display);
	font-weight: 800;
}
.woocommerce div.product form.cart .button,
.woocommerce div.product .single_add_to_cart_button {
	min-height: 54px;
	width: 100%;
	margin: 0;
}
.woocommerce div.product .product_meta { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-top: var(--space-6); padding-top: var(--space-5, var(--space-4)); border-top: 1px solid var(--color-border); }
.woocommerce div.product .product_meta > span { display: inline-flex; align-items: center; gap: var(--space-2); border: 1px solid var(--color-border); border-radius: var(--radius-full); background: var(--color-light-bg); padding: var(--space-2) var(--space-4); font-size: var(--font-size-sm); color: var(--color-muted); }
.woocommerce div.product .product_meta a, .woocommerce div.product .product_meta .sku { color: var(--color-text); font-weight: 800; text-decoration: none !important; }

.woocommerce div.product .woocommerce-tabs, .related.products, .upsells.products { background: var(--color-white); border: 1px solid var(--color-border); border-radius: var(--radius-xl); box-shadow: var(--shadow-card); padding: var(--space-8); margin-top: var(--space-10, var(--space-8)); clear: both; }
.woocommerce div.product .woocommerce-tabs ul.tabs { display: flex; gap: var(--space-2); flex-wrap: wrap; list-style: none; margin: 0 0 var(--space-6); padding: 0; border: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { border: 0; background: transparent; margin: 0; padding: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { display: inline-flex; padding: var(--space-2) var(--space-4); border-radius: var(--radius-full); background: var(--color-light-bg); color: var(--color-text); font-family: var(--font-display); font-weight: 800; text-decoration: none !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { background: var(--color-primary); color: var(--color-white); }
.related.products > h2, .upsells.products > h2 { font-family: var(--font-display); font-size: var(--font-size-h3); margin: 0 0 var(--space-6); }
.related.products ul.products, .upsells.products ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: var(--space-5, var(--space-4)) !important; }

/* Reviews tab */
#reviews { display: grid; gap: var(--space-6); }
#reviews #comments, #reviews #review_form_wrapper { background: var(--color-light-bg); border-radius: var(--radius-lg); padding: var(--space-6); }
#reviews h2, #reviews h3 { font-family: var(--font-display); font-weight: 700; margin: 0 0 var(--space-4); }
#reviews .commentlist { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-4); }
#reviews .comment_container { display: grid; grid-template-columns: 48px 1fr; gap: var(--space-3); align-items: start; }
#reviews img.avatar { width: 48px; height: 48px; border-radius: var(--radius-full); object-fit: cover; display: block; }
#reviews .comment-text { background: var(--color-white); border: 1px solid var(--color-border); border-radius: var(--radius-lg); padding: var(--space-4); }
#reviews .woocommerce-review__author { font-family: var(--font-display); font-weight: 700; font-size: var(--font-size-sm); color: var(--color-text); }
#reviews .woocommerce-review__published-date { font-size: var(--font-size-xs); color: var(--color-muted); margin-left: var(--space-2); }
#reviews .description { margin: var(--space-3) 0 0; font-size: var(--font-size-sm); line-height: var(--line-height-base); color: var(--color-text); }

/* Star rating display — WC icon font is disabled; use Unicode stars */
.star-rating { display: inline-flex; align-items: center; gap: 2px; color: var(--color-accent); font-size: 14px; line-height: 1; }
.star-rating span { overflow: hidden; display: block; }
.star-rating span::before { content: "★★★★★"; letter-spacing: 2px; }
.woocommerce-product-rating .star-rating { width: auto; float: none; }
.woocommerce-review-link { font-size: var(--font-size-sm); color: var(--color-muted); margin-left: var(--space-2); }

/* Review form star picker */
.comment-form-rating { margin-bottom: var(--space-4); }
.comment-form-rating label { display: block; font-family: var(--font-display); font-size: var(--font-size-sm); font-weight: 700; color: var(--color-text); margin-bottom: var(--space-2); }
.comment-form-rating .stars { display: flex; align-items: center; gap: 4px; margin: 0; }
.comment-form-rating .stars span { display: flex; gap: 4px; }
.comment-form-rating .stars a {
	color: var(--color-border);
	font-size: 28px;
	text-decoration: none !important;
	line-height: 1;
	transition: color .12s;
}
.comment-form-rating .stars a::after { content: "★"; display: block; }
.comment-form-rating .stars a:hover,
.comment-form-rating .stars a:hover ~ a,
.comment-form-rating .stars.selected a,
.comment-form-rating .stars.selected .active ~ a { color: var(--color-border); }
.comment-form-rating .stars a:hover,
.comment-form-rating .stars a:hover + a,
.comment-form-rating .stars .selected a { color: var(--color-accent); }
.comment-form-rating .stars span:hover a,
.comment-form-rating .stars span a:hover ~ a,
.comment-form-rating .stars span a.active { color: var(--color-accent); }

/* review form title + must-login notice */
#review_form_wrapper .comment-reply-title { font-family: var(--font-display); font-weight: 700; font-size: var(--font-size-h5); margin: 0 0 var(--space-4); }
.woocommerce-no-reviews { color: var(--color-muted); font-size: var(--font-size-sm); }
.must-log-in { font-size: var(--font-size-sm); color: var(--color-muted); margin-bottom: var(--space-4); }

.fr-order-summary-card__head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); margin-bottom: var(--space-5, var(--space-4)); }
.fr-order-summary-card__head h2 { margin: 0; font-family: var(--font-display); font-size: var(--font-size-h4); }
.fr-order-summary-card__head strong { color: var(--color-primary); }
.fr-order-summary-card__items { display: grid; gap: var(--space-3); }
.fr-order-line { display: grid; grid-template-columns: 72px minmax(0, 1fr) auto; gap: var(--space-4); align-items: center; border-bottom: 1px solid var(--color-border); padding-bottom: var(--space-3); }
.fr-order-line__image img { width: 72px; height: 72px; object-fit: cover; border-radius: var(--radius-md); }
.fr-order-line__main { display: grid; gap: var(--space-1); }
.fr-order-line__main span { color: var(--color-muted); font-size: var(--font-size-sm); }
.fr-order-line__total { font-family: var(--font-display); font-weight: 800; }
.fr-order-summary-card__totals { margin-top: var(--space-4); display: grid; gap: var(--space-2); }
.fr-order-summary-card__totals > div { display: flex; justify-content: space-between; gap: var(--space-4); }
.fr-order-summary-card__totals strong { font-family: var(--font-display); }


@media (max-width: 1024px) {
	.woocommerce div.product {
		grid-template-columns: 1fr;
		grid-template-areas:
			"media"
			"summary";
	}
	.woocommerce-MyAccount-navigation { position: static; }
	.related.products ul.products, .upsells.products ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 768px) { .fr-auth-shell, .fr-account-quick-grid { grid-template-columns: 1fr; } .fr-account-hero { align-items: flex-start; flex-direction: column; } .fr-order-line { grid-template-columns: 56px 1fr; } .fr-order-line__total { grid-column: 2; } .woocommerce div.product form.cart .button { width: 100%; } }

/* Account layout correction - single column, no left grid offset.
   :not(.dgwt-wcas-details-wrapp) excludes FiboSearch's hidden results popup —
   see note above; this rule's !important is what actually overrides its
   inline display:none and makes it show as a blank box on account pages. */
.woocommerce-account .woocommerce:not(.dgwt-wcas-details-wrapp) {
	display: block !important;
	grid-template-columns: none !important;
	gap: 0 !important;
}
.woocommerce-account .woocommerce-MyAccount-navigation {
	position: static !important;
	margin: 0 0 var(--space-6);
	position: static !important;
    margin: 0 0 var(--space-6);
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    align-content: center;
    justify-content: center;
    align-items: center;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2);
}
.woocommerce-account .woocommerce-MyAccount-navigation li {
	margin: 0;
}
.woocommerce-account .woocommerce-MyAccount-navigation a {
	display: flex;
	min-height: 42px;
	align-items: center;
	background: var(--color-light-bg);
	padding:10px;
}
.woocommerce-account .woocommerce-MyAccount-navigation .is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation a:hover,
.woocommerce-account .woocommerce-MyAccount-navigation a:focus {
	background: var(--color-primary) !important;
	color: var(--color-white) !important;
}
.woocommerce-account .woocommerce-MyAccount-navigation .is-active a *,
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a * {
	color: var(--color-white) !important;
}
.woocommerce-account .woocommerce-MyAccount-content {
	width: 100%;
}

/* Clean cart/checkout banner and compact cart remove column */
.fr-commerce-hero {
	width: 100%;
	max-width: 100%;
	padding: var(--space-10, var(--space-8)) 0;
}
.fr-commerce-hero .fr-container {
	padding-top: 0;
	padding-bottom: 0;
}
.fr-commerce-hero h1 {
	margin-bottom: var(--space-2);
}
.fr-commerce-hero span {
	display: none !important;
}
.fr-cart-table th.product-remove,
.fr-cart-table td.product-remove {
	width: 44px !important;
	min-width: 44px !important;
	max-width: 44px !important;
	padding-left: var(--space-2) !important;
	padding-right: var(--space-2) !important;
	text-align: center !important;
}
.fr-cart-table .product-thumbnail {
	width: 88px;
}
.fr-cart-table .remove {
	width: 30px;
	height: 30px;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	border-radius: var(--radius-full);
	background: var(--color-light-bg);
	color: var(--color-muted) !important;
	font-size: 18px !important;
	line-height: 1 !important;
	text-decoration: none !important;
}
.fr-cart-table .remove:hover,
.fr-cart-table .remove:focus {
	background: var(--color-bg);
	color: var(--deal-color) !important;
}
@media (max-width: 768px) {
	.fr-commerce-hero {
		padding: var(--space-8) 0;
	}
}

/* Header menu overflow correction */
.fr-cat-nav__control {
	position: absolute;
	top: 50%;
	z-index: 3;
	width: 34px;
	height: 34px;
	transform: translateY(-50%);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-full);
	background: var(--color-white);
	color: var(--color-text);
	box-shadow: var(--shadow-card);
	transition: opacity .15s, color .15s, background .15s;
}
.fr-cat-nav__control:hover,
.fr-cat-nav__control:focus {
	background: var(--color-primary);
	border-color: var(--color-primary);
	color: var(--color-white);
}
.fr-cat-nav__control[disabled] {
	opacity: 0;
	pointer-events: none;
}
.fr-cat-nav__control--prev {
	left: var(--container-pad-desktop);
}
.fr-cat-nav__control--next {
	right: var(--container-pad-desktop);
}
.fr-primary-nav {
	overflow: hidden;
}
.fr-primary-nav__list {
	flex-wrap: nowrap;
	overflow-x: auto;
	overflow-y: visible;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}
.fr-primary-nav__list::-webkit-scrollbar {
	display: none;
}
.fr-primary-nav__list > li {
	flex: 0 0 auto;
}
@media (max-width: 1024px) {
	.fr-cat-nav__control--prev { left: var(--container-pad-tablet); }
	.fr-cat-nav__control--next { right: var(--container-pad-tablet); }
}

@media (max-width: 768px) {
	.fr-cat-nav__control--prev { left: var(--container-pad-mobile); }
	.fr-cat-nav__control--next { right: var(--container-pad-mobile); }
}

/* Static page banners */
.fr-page-hero {
	margin-top: 0;
}
.fr-page-hero + .fr-container.fr-page {
	padding-top: var(--space-10, var(--space-8));
}
.fr-page-content__title {
	display: none;
}

/* Final UI pass: cart, checkout, tracking, mobile search, product detail */
.fr-nav__search-toggle {
	display: none;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-full);
	background: var(--color-white);
	color: var(--color-text);
	padding: 0;
}
.fr-nav__search-toggle:hover,
.fr-nav__search-toggle:focus {
	border-color: var(--color-primary);
	color: var(--color-primary);
}
.fr-search-modal {
	position: fixed;
	inset: 0;
	z-index: 1200;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding: var(--space-6) var(--container-pad-mobile);
}
.fr-search-modal[hidden] { display: none; }
.fr-search-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0,0,0,.45);
}
.fr-search-modal__panel {
	position: relative;
	z-index: 1;
	width: min(680px, 100%);
	background: var(--color-white);
	border-radius: var(--radius-xl);
	box-shadow: var(--shadow-modal);
	padding: var(--space-5, var(--space-4));
}
.fr-search-modal__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-4);
	margin-bottom: var(--space-4);
}
.fr-search-modal__head h2 {
	font-family: var(--font-display);
	font-size: var(--font-size-h4);
	margin: 0;
}
.fr-search-modal__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border: 0;
	border-radius: var(--radius-full);
	background: var(--color-light-bg);
	color: var(--color-text);
}
.fr-search-modal__form {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: var(--space-3);
}
.fr-search-modal__form input[type="search"] {
	width: 100%;
	min-height: 52px;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	padding: 0 var(--space-4);
	font-family: var(--font-body);
	font-size: var(--font-size-base);
}
.fr-search-modal__form input[type="search"]:focus {
	outline: none;
	border-color: var(--color-primary);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary) 15%, transparent);
}

.fr-cart-table td.actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-4);
	flex-wrap: wrap;
}
.fr-cart-table .coupon {
	flex: 1 1 520px;
	display: flex;
	align-items: center;
	gap: var(--space-3);
	min-width: min(100%, 360px);
}
.fr-cart-table .coupon .input-text,
.woocommerce-cart-form .coupon #coupon_code {
	flex: 1 1 320px;
	min-width: min(100%, 280px);
	height: 46px;
	padding: 0 var(--space-4);
}

.fr-checkout-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(340px, 420px);
	gap: var(--space-8);
	align-items: start;
}
.fr-checkout-section {
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-xl);
	box-shadow: var(--shadow-card);
	padding: var(--space-6);
	margin-bottom: var(--space-6);
}
.fr-checkout-section__title,
.fr-checkout-subtitle {
	font-family: var(--font-display);
	font-size: var(--font-size-h4);
	font-weight: 800;
	margin: 0 0 var(--space-5, var(--space-4));
	padding-bottom: var(--space-3);
	border-bottom: 1px solid var(--color-border);
}
.fr-checkout-fields {
	display: grid;
	gap: var(--space-5, var(--space-4));
	margin-top: var(--space-6);
}
.fr-delivery-type-options {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-3);
}
.fr-delivery-type-option {
	position: relative;
	display: flex !important;
	gap: var(--space-3);
	align-items: flex-start;
	padding: var(--space-4);
	border: 1.5px solid var(--color-border);
	border-radius: var(--radius-lg);
	background: var(--color-white);
	cursor: pointer;
	transition: border-color .15s, background .15s, box-shadow .15s;
}
.fr-delivery-type-option:has(input:checked) {
	border-color: var(--color-primary);
	background: color-mix(in srgb, var(--color-primary) 7%, var(--color-white));
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary) 12%, transparent);
}
.fr-delivery-type-option input {
	margin-top: 3px;
	accent-color: var(--color-primary);
	flex: 0 0 auto;
}
.fr-delivery-type-option__body {
	display: grid;
	gap: var(--space-1);
}
.fr-delivery-type-option__body strong {
	font-family: var(--font-display);
	color: var(--color-text);
}
.fr-delivery-type-option__body small {
	color: var(--color-muted);
	font-size: var(--font-size-xs);
	line-height: 1.4;
}
.fr-hotel-fields {
	background: var(--color-bg);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	padding: var(--space-4);
}
.fr-hotel-fields[hidden] { display: none; }
.fr-substitution-option .form-row {
	margin: 0;
}
.fr-substitution-option label.checkbox {
	display: flex !important;
	align-items: center;
	gap: var(--space-3);
	background: var(--color-light-bg);
	border-radius: var(--radius-lg);
	padding: var(--space-4);
}
.fr-checkout-section--shipping .woocommerce-additional-fields {
	display: none;
}
.fr-checkout-section--additional textarea {
	min-height: 132px;
}
.fr-order-review #payment,
.fr-order-review .woocommerce-checkout-payment {
	display: block !important;
	background: transparent;
	border: 0;
	padding: 0;
}
.fr-order-review #payment ul.payment_methods {
	list-style: none;
	margin: var(--space-5, var(--space-4)) 0;
	padding: 0;
	border: 0;
}
.fr-order-review #payment ul.payment_methods li {
	background: var(--color-light-bg);
	border-radius: var(--radius-lg);
	padding: var(--space-4);
	margin-bottom: var(--space-3);
}
.fr-order-review #payment div.payment_box {
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	margin: var(--space-3) 0 0;
	padding: var(--space-3);
}
.fr-order-review #place_order {
	width: 100%;
	min-height: 52px;
}

.fr-single-product .woocommerce div.product .product_title {
	font-size: clamp(28px, 3vw, var(--font-size-h2));
	margin: 0;
}
.fr-single-product .related.products,
.fr-single-product .upsells.products,
.fr-single-product .woocommerce div.product .woocommerce-tabs {
	grid-column: 1 / -1;
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-xl);
	box-shadow: var(--shadow-card);
	padding: var(--space-8);
	margin-top: var(--space-8);
}
.fr-single-product .related.products ul.products,
.fr-single-product .upsells.products ul.products {
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: var(--space-5, var(--space-4)) !important;
}

.fr-back-link {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	color: var(--color-muted);
	font-size: var(--font-size-sm);
	margin-bottom: var(--space-6);
	text-decoration: none !important;
}
.fr-back-link:hover { color: var(--color-primary); }
.fr-order-view__header {
	display: flex;
	align-items: center;
	gap: var(--space-4);
	margin-bottom: var(--space-8);
	flex-wrap: wrap;
}
.fr-status-badge {
	font-family: var(--font-display);
	font-size: var(--font-size-sm);
	font-weight: 700;
	padding: var(--space-1) var(--space-4);
	border-radius: var(--radius-full);
	background: var(--color-light-bg);
	color: var(--color-text);
}
.fr-stepper {
	display: flex;
	align-items: center;
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-xl);
	box-shadow: var(--shadow-card);
	padding: var(--space-8);
	margin-bottom: var(--space-8);
	overflow-x: auto;
}
.fr-tracking-step {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--space-2);
	min-width: 98px;
	flex: 1;
	text-align: center;
}
.fr-tracking-step__icon {
	width: 50px;
	height: 50px;
	border-radius: var(--radius-full);
	background: var(--color-light-bg);
	color: var(--color-muted);
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background .2s, color .2s, transform .2s, box-shadow .2s;
}
.fr-tracking-step__icon svg {
	width: 24px;
	height: 24px;
	display: block;
}
.fr-tracking-step.is-complete .fr-tracking-step__icon {
	background: var(--color-primary);
	color: var(--color-white);
}
.fr-tracking-step.is-active .fr-tracking-step__icon {
	background: var(--color-accent);
	color: var(--color-white);
	transform: scale(1.08);
	box-shadow: 0 0 0 4px color-mix(in srgb, var(--color-accent) 25%, transparent);
}
.fr-tracking-step__label {
	font-family: var(--font-display);
	font-size: var(--font-size-xs);
	font-weight: 700;
	color: var(--color-muted);
}
.fr-tracking-step.is-active .fr-tracking-step__label,
.fr-tracking-step.is-complete .fr-tracking-step__label { color: var(--color-primary); }
.fr-stepper__line {
	flex: 1;
	min-width: 38px;
	height: 3px;
	background: var(--color-border);
	border-radius: var(--radius-full);
	margin: 0 var(--space-2) 22px;
}
.fr-stepper__line.is-complete { background: var(--color-primary); }
.fr-order-view__details {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: var(--space-6);
}
.fr-order-section {
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-xl);
	box-shadow: var(--shadow-card);
	padding: var(--space-6);
}
.fr-order-section h2 {
	font-family: var(--font-display);
	font-size: var(--font-size-h4);
	margin: 0 0 var(--space-4);
	padding-bottom: var(--space-3);
	border-bottom: 1px solid var(--color-border);
}

/* Single fr_location page */
.fr-location-detail { padding: var(--space-12) 0; }
.fr-location-detail__grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: var(--space-6);
	align-items: start;
}
.fr-location-detail__list { margin: 0 0 var(--space-6); }
.fr-location-detail__row {
	display: flex;
	justify-content: space-between;
	gap: var(--space-4);
	padding: var(--space-3) 0;
	border-bottom: 1px solid var(--color-border);
}
.fr-location-detail__row:last-child { border-bottom: none; }
.fr-location-detail__row dt { font-weight: 600; color: var(--color-muted); }
.fr-location-detail__row dd { margin: 0; text-align: right; color: var(--color-text); }
.fr-location-detail__cta .fr-status-badge { display: inline-block; margin-bottom: var(--space-4); }
@media (max-width: 768px) {
	.fr-location-detail__grid { grid-template-columns: 1fr; }
}

/* Your Driver card (order tracking) */
.fr-driver-card {
	margin-bottom: var(--space-6);
}
.fr-driver-card__row {
	display: flex;
	align-items: center;
	gap: var(--space-4);
}
.fr-driver-card__avatar {
	flex-shrink: 0;
	width: 48px;
	height: 48px;
	border-radius: var(--radius-full);
	background: var(--color-primary);
	color: var(--color-white);
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}
.fr-driver-card__avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.fr-driver-card__info {
	flex: 1;
	min-width: 0;
}
.fr-driver-card__name {
	font-family: var(--font-display);
	font-size: var(--font-size-h5);
	font-weight: 600;
	color: var(--color-text);
	margin: 0;
}
.fr-driver-card__meta {
	font-size: var(--font-size-sm);
	color: var(--color-muted);
	margin: var(--space-1) 0 0;
}
.fr-driver-card__phone {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	gap: var(--space-1);
	background: var(--color-primary);
	color: var(--color-white) !important;
	font-family: var(--font-display);
	font-size: var(--font-size-sm);
	font-weight: 600;
	padding: var(--space-2) var(--space-4);
	border-radius: var(--radius-full);
	text-decoration: none !important;
	transition: background .15s;
}
.fr-driver-card__phone:hover {
	background: var(--color-primary-dark);
}

/* Pending-substitute card (order tracking — customer confirm/decline in place) */
.fr-substitute-card {
	margin-bottom: var(--space-6);
	border-left: 4px solid var(--color-accent);
}
.fr-substitute-card__copy {
	margin: 0 0 var(--space-3);
	color: var(--color-muted);
	font-size: var(--font-size-sm);
}
.fr-substitute-card__swap {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	flex-wrap: wrap;
	background: var(--color-light-bg);
	border-radius: var(--radius-md);
	padding: var(--space-3) var(--space-4);
	margin-bottom: var(--space-4);
}
.fr-substitute-card__original {
	color: var(--color-muted);
	text-decoration: line-through;
	font-weight: 600;
}
.fr-substitute-card__swap svg {
	color: var(--color-accent-dark);
	flex-shrink: 0;
}
.fr-substitute-card__new {
	color: var(--color-text);
	font-weight: 700;
}
.fr-substitute-card__actions {
	display: flex;
	gap: var(--space-3);
	flex-wrap: wrap;
}
.fr-substitute-card__notice {
	margin: var(--space-3) 0 0;
	font-size: var(--font-size-sm);
	font-weight: 600;
}
.fr-substitute-card__notice--error { color: #b91c1c; }
.fr-substitute-card__notice--success { color: #15803d; }

.fr-substitute-card__price-note {
	margin: 0 0 var(--space-4);
	font-size: var(--font-size-sm);
	font-weight: 600;
	padding: var(--space-2) var(--space-3);
	border-radius: var(--radius-sm);
}
.fr-substitute-card__price-note--pay {
	background: #fdecc8;
	color: #b45309;
}
.fr-substitute-card__price-note--refund {
	background: #dcf5e3;
	color: #15803d;
}

/* Substitute confirmation page */
.fr-substitute-shell {
	display: grid;
	justify-content: center;
}
.fr-substitute-card {
	width: min(100%, 920px);
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-xl);
	box-shadow: var(--shadow-card);
	padding: var(--space-8);
}
.fr-substitute-card__head {
	margin-bottom: var(--space-6);
}
.fr-substitute-card__head span,
.fr-substitute-product__label {
	display: inline-flex;
	font-family: var(--font-display);
	font-size: var(--font-size-xs);
	font-weight: 700;
	text-transform: uppercase;
	color: var(--color-muted);
	margin-bottom: var(--space-2);
}
.fr-substitute-card__head h2 {
	font-family: var(--font-display);
	font-size: var(--font-size-h3);
	line-height: var(--line-height-tight);
	margin: 0;
}
.fr-substitute-notice,
.fr-substitute-status,
.fr-substitute-empty {
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	background: var(--color-light-bg);
	padding: var(--space-4);
	margin-bottom: var(--space-6);
}
.fr-substitute-notice--success {
	border-color: var(--color-primary);
	color: var(--color-primary);
}
.fr-substitute-notice--error {
	border-color: var(--deal-color);
	color: var(--deal-color);
}
.fr-substitute-notice--warning {
	border-color: var(--color-accent);
	color: var(--color-text);
}
.fr-substitute-empty {
	display: grid;
	gap: var(--space-4);
	justify-items: start;
	margin-bottom: 0;
}
.fr-substitute-empty p {
	margin: 0;
	color: var(--color-muted);
}
.fr-substitute-products {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	align-items: stretch;
	gap: var(--space-5, var(--space-4));
	margin-bottom: var(--space-6);
}
.fr-substitute-product {
	display: grid;
	align-content: start;
	gap: var(--space-3);
	background: var(--color-light-bg);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	padding: var(--space-5, var(--space-4));
}
.fr-substitute-product--recommended {
	border-color: var(--color-primary);
	background: color-mix(in srgb, var(--color-primary) 8%, var(--color-white));
}
.fr-substitute-product img {
	aspect-ratio: 1 / 1;
	width: 100%;
	max-height: 220px;
	object-fit: contain;
	border-radius: var(--radius-md);
	background: var(--color-white);
}
.fr-substitute-product h3 {
	font-family: var(--font-display);
	font-size: var(--font-size-h5);
	line-height: var(--line-height-tight);
	margin: 0;
}
.fr-substitute-product__price {
	font-family: var(--font-display);
	font-weight: 800;
	color: var(--color-primary);
}
.fr-substitute-product__price del {
	color: var(--color-muted);
	font-size: var(--font-size-sm);
}
.fr-substitute-product__price ins {
	text-decoration: none;
}
.fr-substitute-arrow {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin: auto 0;
	border-radius: var(--radius-full);
	background: var(--color-primary);
	color: var(--color-white);
	font-family: var(--font-display);
	font-weight: 800;
}
.fr-substitute-actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3);
}
.fr-substitute-actions .fr-btn {
	flex: 1 1 220px;
}

@media (max-width: 1024px) {
	.fr-checkout-grid,
	.woocommerce div.product,
	.fr-order-view__details {
		grid-template-columns: 1fr;
	}
	.woocommerce div.product {
		grid-template-areas:
			"media"
			"summary";
	}
}
@media (max-width: 768px) {
	/* Mobile header layout: hamburger left, logo centered, search+cart right.
	   Grid placement lets us position .fr-nav__mobile-toggle (a direct child of
	   .fr-header__main, moved there in markup since it's display:none on desktop)
	   without disturbing the desktop flex layout, which lives outside this media query. */
	.fr-header__main {
		display: grid;
		grid-template-columns: 40px 1fr auto;
		align-items: center;
		min-width: 0;
		gap: var(--space-2);
	}
	.fr-nav__logo { min-width: 0; grid-column: 2; justify-self: center; }
	.fr-logo-img { max-width: min(var(--logo-max-width, 180px), 116px); }
	.fr-search-form { display: none; }
	.fr-nav__search-toggle,
	.fr-nav__mobile-toggle { display: inline-flex; flex: 0 0 auto; }
	.fr-nav__mobile-toggle {
		grid-column: 1;
		justify-self: start;
		flex-direction: column;
		justify-content: center;
		align-items: stretch;
		width: 40px;
		height: 40px;
		border: 1px solid var(--color-border);
		border-radius: var(--radius-full);
		background: var(--color-white);
		padding: var(--space-2);
	}
	.fr-nav__mobile-toggle span {
		width: 100%;
		background: var(--color-text);
	}
	.fr-header__actions {
		grid-column: 3;
		justify-self: end;
		gap: var(--space-2);
		margin-left: 0;
		min-width: max-content;
	}
	.fr-nav__cart {
		width: 40px;
		height: 40px;
		padding: 0;
		justify-content: center;
	}
	.fr-nav__cart .fr-cart-count {
		position: absolute;
		top: -5px;
		right: -5px;
	}
	.fr-nav__driver {
		width: 40px;
		padding: 0;
		justify-content: center;
	}
	.fr-nav__driver-text { display: none; }
	.fr-delivery-type-options,
	.fr-search-modal__form {
		grid-template-columns: 1fr;
	}
	.fr-cart-table td.actions,
	.fr-cart-table .coupon {
		align-items: stretch;
		flex-direction: column;
	}
	.fr-cart-table .coupon .input-text,
	.woocommerce-cart-form .coupon #coupon_code {
		width: 100%;
		min-width: 0;
	}
	.woocommerce div.product > .summary.entry-summary,
	.fr-single-product .related.products,
	.fr-single-product .upsells.products,
	.fr-single-product .woocommerce div.product .woocommerce-tabs {
		padding: var(--space-5, var(--space-4));
	}
	.woocommerce div.product .fr-product-media {
		padding: var(--space-4);
	}
	.woocommerce div.product form.cart {
		grid-template-columns: 1fr;
	}
	.woocommerce div.product .quantity .qty,
	.woocommerce div.product .quantity input {
		width: 100%;
	}
	.related.products ul.products,
	.upsells.products ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
	.fr-stepper {
		padding: var(--space-4);
	}
	.fr-tracking-step {
		min-width: 76px;
	}
	.fr-stepper__line {
		min-width: 24px;
	}
	.fr-substitute-card {
		padding: var(--space-5, var(--space-4));
	}
	.fr-substitute-products {
		grid-template-columns: 1fr;
	}
	.fr-substitute-arrow {
		transform: rotate(90deg);
		margin: 0 auto;
	}
}

/* ---- PWA install banner ------------------------------------ */
.fr-pwa-install {
	position: fixed;
	left: var(--container-pad-mobile, 16px);
	right: var(--container-pad-mobile, 16px);
	bottom: var(--space-4, 16px);
	z-index: 9999;
}

.fr-pwa-install[hidden] {
	display: none !important;
}

.fr-pwa-install__inner {
	display: flex;
	align-items: center;
	gap: var(--space-3, 12px);
	padding: var(--space-3, 12px) var(--space-4, 16px);
	background: var(--color-white);
	border-radius: var(--radius-lg, 12px);
	box-shadow: var(--shadow-modal, 0 8px 32px rgba(0,0,0,0.16));
	border: 1px solid var(--color-border, #D1D5DB);
}

.fr-pwa-install__icon {
	flex-shrink: 0;
	border-radius: var(--radius-md, 8px);
}

.fr-pwa-install__text {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
	font-family: var(--font-body);
	font-size: var(--font-size-sm, 14px);
	color: var(--color-text);
}

.fr-pwa-install__text strong {
	font-family: var(--font-display);
	font-size: var(--font-size-base, 16px);
}

.fr-pwa-install__close {
	flex-shrink: 0;
	border: 0;
	background: transparent;
	font-size: 1.5rem;
	line-height: 1;
	color: var(--color-muted);
	cursor: pointer;
	padding: 0 var(--space-1, 4px);
}

@media (min-width: 768px) {
	.fr-pwa-install {
		left: auto;
		right: var(--space-6, 24px);
		max-width: 420px;
	}
}

/* Track Order — guest order lookup (no login) */
.fr-track-order-form {
	max-width: 480px;
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-xl);
	box-shadow: var(--shadow-card);
	padding: var(--space-8);
	margin-top: var(--space-6);
}
.fr-track-order-form__intro {
	color: var(--color-muted);
	margin: 0 0 var(--space-6);
}
.fr-form-row {
	margin-bottom: var(--space-4);
}
.fr-form-row label {
	display: block;
	font-family: var(--font-display);
	font-weight: 600;
	font-size: var(--font-size-sm);
	margin-bottom: var(--space-2);
}
.fr-form-row input {
	width: 100%;
	border: 1.5px solid var(--color-border);
	border-radius: var(--radius-md);
	padding: var(--space-3) var(--space-4);
	font-size: var(--font-size-base);
	font-family: var(--font-body);
	background: var(--color-white);
}
.fr-form-row input:focus {
	outline: none;
	border-color: var(--color-primary);
}
.fr-notice {
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	background: var(--color-light-bg);
	padding: var(--space-4);
	margin-bottom: var(--space-6);
	max-width: 480px;
}
.fr-notice--error {
	border-color: var(--deal-color);
	color: var(--deal-color);
}

/* ============================================================
   MOBILE RESPONSIVENESS — responsive container + layout fixes
   ============================================================ */

/* Responsive container padding.
   Previously .fr-container always used --container-pad-desktop (32px).
   Now it steps down to tablet/mobile padding at narrower widths. */
@media (max-width: 1024px) {
	.fr-container {
		padding-left: var(--container-pad-tablet);
		padding-right: var(--container-pad-tablet);
	}
	/* Horizontal scroll rows use negative margin = container padding,
	   so they update in sync. */
	.fr-categories-scroll,
	.fr-product-scroll-wrap {
		margin-left:  calc(-1 * var(--container-pad-tablet));
		margin-right: calc(-1 * var(--container-pad-tablet));
		padding-left:  var(--container-pad-tablet);
		padding-right: var(--container-pad-tablet);
	}
}

@media (max-width: 768px) {
	.fr-container {
		padding-left: var(--container-pad-mobile);
		padding-right: var(--container-pad-mobile);
	}
	.fr-categories-scroll,
	.fr-product-scroll-wrap {
		margin-left:  calc(-1 * var(--container-pad-mobile));
		margin-right: calc(-1 * var(--container-pad-mobile));
		padding-left:  var(--container-pad-mobile);
		padding-right: var(--container-pad-mobile);
	}

	/* Section vertical rhythm on mobile */
	.fr-section { padding: var(--space-8) 0; }
	.fr-section-header { flex-wrap: wrap; gap: var(--space-2); margin-bottom: var(--space-4); }

	/* Promo strip inner padding on mobile */
	.fr-promo-strip { padding: var(--space-6) var(--space-4); }

	/* Checkout grid single column on mobile (already at 1024px but explicit here) */
	.fr-checkout-grid { grid-template-columns: 1fr !important; }

	/* Cart totals full width on mobile */
	.cart-collaterals,
	.woocommerce .cart-collaterals .cart_totals { float: none; width: 100%; }
}

/* Cart table — mobile stacked layout
   Converts 6-column HTML table to flex card rows on small screens. */
@media (max-width: 640px) {
	.fr-cart-table,
	.fr-cart-table tbody { display: block; width: 100%; }
	.fr-cart-table thead { display: none; }

	.fr-cart-table tr.cart_item {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		gap: var(--space-2);
		padding: var(--space-4) 5px;
		border-bottom: 1px solid var(--color-border);
	}
	/* Reset table-cell display and spacing for each cell */
	.fr-cart-table tr.cart_item td {
		display: block;
		padding: 0 !important;
		border: 0 !important;
		width: auto;
	}
	.fr-cart-table td.product-remove {
		order: 2;
		width: auto !important;
		min-width: auto !important;
		margin-left: auto;
		text-align: right;
	}
	.fr-cart-table td.product-thumbnail {
		order: 0;
		width: 72px !important;
		min-width: 72px !important;
		flex-shrink: 0;
	}
	.fr-cart-table td.product-thumbnail img { width: 72px; height: 72px; object-fit: cover; }
	.fr-cart-table td.product-name {
		order: 1;
		flex: 1 1 140px;
		min-width: 0;
		font-size: var(--font-size-sm);
	}
	.fr-cart-table td.product-quantity {
		order: 3;
		width: auto;
	}
	.fr-cart-table td.product-quantity .qty,
	.fr-cart-table td.product-quantity input[type="number"] { width: 64px !important; }
	.fr-cart-table td.product-price {
		order: 4;
		width: 100%;
		font-size: var(--font-size-sm);
	}
	.fr-cart-table td.product-price::before {
		content: attr(data-title) ': ';
		font-weight: 600;
		font-family: var(--font-display);
		color: var(--color-muted);
	}
	.fr-cart-table td.product-subtotal {
		order: 5;
		width: 100%;
		font-weight: 700;
		color: var(--color-primary);
	}
	.fr-cart-table td.product-subtotal::before {
		content: attr(data-title) ': ';
		font-weight: 600;
		font-family: var(--font-display);
		color: var(--color-muted);
	}

	/* Actions row (coupon + update cart button) */
	.fr-cart-table tr:not(.cart_item) { display: block; }
	.fr-cart-table td.actions {
		display: flex !important;
		flex-direction: column !important;
		align-items: stretch !important;
		gap: var(--space-3) !important;
		padding: var(--space-4) 0 !important;
		border: 0 !important;
	}
	.fr-cart-table .coupon {
		flex: none !important;
		width: 100% !important;
		min-width: 0 !important;
		flex-direction: column;
		align-items: stretch;
	}
	.fr-cart-table .coupon .input-text,
	.woocommerce-cart-form .coupon #coupon_code {
		flex: none !important;
		width: 100% !important;
		min-width: 0 !important;
	}
	.fr-cart-table td.actions > button[name="update_cart"] {
		align-self: flex-start;
	}
}
