/* ---------------------------------------------------------------------------
 * FireBox Pizza: the warm-neighbourhood look (direction B).
 * Spec: docs/superpowers/specs/2026-10-16-site-redesign-design.md
 * Loads after the theme's generated style_dynamic.css and woocommerce CSS, so equal specificity wins.
 * Contrast (measured): orange on cream 4.52:1, white on orange 4.98:1, cheese on black 10.5:1.
 * Never cheese or light peach text on orange.
 * ------------------------------------------------------------------------- */
:root {
	--fb-cream: #fbf3e6;
	--fb-white: #ffffff;
	--fb-line: #e6d8c2;
	--fb-orange: #c14824;
	--fb-black: #131313;
	--fb-cheese: #f0ba54;
	--fb-muted: #5d5147;
	--fb-muted-on-cream: #6b5d50;
	--fb-tint: #fdf0ea;
	--fb-serif: "Fraunces", Georgia, serif;
	--fb-sans: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
	--fb-radius: 14px;
	/* Side gutter of full-width sections: content 1180px wide, at least 2.2rem (1rem on phones). Textual, so 100% is
	 * the element's own containing block. */
	--fb-gutter: max(2.2rem, calc((100% - 1180px) / 2));
}
/* Phones: content 1rem from the screen edge once WPBakery's 15px column padding (and the grid rule below) adds on. */
@media (max-width: 767px) { :root { --fb-gutter: calc(1rem - 15px); } }

/* ---- Base ---------------------------------------------------------------- */
body,
body .qodef-wrapper,
body .qodef-wrapper-inner,
body .qodef-content,
body .qodef-content .qodef-content-inner > .qodef-full-width,
body .qodef-content .qodef-content-inner > .qodef-container {
	background-color: var(--fb-cream);
}
/* Full-width pages without their own content padding (DonPeppe page settings; Home and Menu set theirs) get the
 * title area's spacing, not the theme's 70px on top of it. */
body .qodef-content .qodef-content-inner > .qodef-full-width > .qodef-full-width-inner { padding: 0 0 4rem; }
/* Default-template pages (cart, checkout, account): the content on the same line as the title and the sections,
 * instead of the theme's narrower 1100px grid. Phones use the rule under the page title. */
@media (min-width: 769px) {
	body .qodef-content .qodef-content-inner > .qodef-container > .qodef-container-inner { width: auto; margin: 0 calc(var(--fb-gutter) + 15px); }
}
body,
body p,
body input,
body select,
body textarea,
body button,
body .qodef-btn,
body .woocommerce,
body table,
body label,
body li {
	font-family: var(--fb-sans);
}
body { color: var(--fb-black); }
body p { color: inherit; }

body h1, body h2, body h3, body h4, body h5, body h6,
body .qodef-page-title,
body .woocommerce h1, body .woocommerce h2, body .woocommerce h3,
body .qodef-woo-single-page .qodef-single-product-summary .product_title,
body .qodef-section-title-holder .qodef-st-title {
	font-family: var(--fb-serif);
	font-weight: 900;
	font-style: normal;
	text-transform: none;
	letter-spacing: -0.015em;
	color: var(--fb-black);
}
body h1 em, body h2 em, body h3 em { font-style: italic; color: var(--fb-orange); }

a { color: var(--fb-orange); }

/* Small uppercase label above a heading */
.fb-label,
body .qodef-page-subtitle,
body .qodef-section-title-holder .qodef-st-subtitle {
	display: block;
	margin: 0 0 .5rem;
	font-family: var(--fb-sans) !important;
	font-size: .72rem !important;
	font-weight: 700 !important;
	line-height: 1.4 !important;
	letter-spacing: .12em !important;
	text-transform: uppercase !important;
	color: var(--fb-orange) !important;
}

/* ---- Buttons ------------------------------------------------------------- */
.fb-btn,
body .qodef-btn.qodef-btn-solid,
body .qodef-btn.qodef-btn-outline,
body .woocommerce .button,
body .woocommerce button.button,
body .woocommerce a.button,
body .woocommerce input.button,
body button.single_add_to_cart_button,
body #place_order {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .4em;
	padding: .85rem 1.4rem;
	border: 2px solid transparent;
	border-radius: 8px;
	font-family: var(--fb-sans);
	font-size: .9rem;
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1.2;
	text-transform: none;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .15s, color .15s, border-color .15s;
}
.fb-btn--orange,
body .qodef-btn.qodef-btn-solid,
body .woocommerce .button.alt,
body button.single_add_to_cart_button,
body #place_order {
	background-color: var(--fb-orange);
	border-color: var(--fb-orange);
	color: #fff;
}
.fb-btn--black,
body .woocommerce .button:not(.alt) {
	background-color: var(--fb-black);
	border-color: var(--fb-black);
	color: #fff;
}
.fb-btn--outline,
body .qodef-btn.qodef-btn-outline {
	background-color: transparent;
	border-color: var(--fb-black);
	color: var(--fb-black);
}
.fb-btn--orange:hover, .fb-btn--orange:focus-visible,
body .qodef-btn.qodef-btn-solid:hover,
body button.single_add_to_cart_button:hover,
body #place_order:hover {
	background-color: var(--fb-black) !important;
	border-color: var(--fb-black) !important;
	color: #fff !important;
}
.fb-btn--black:hover, .fb-btn--black:focus-visible,
body .woocommerce .button:not(.alt):hover {
	background-color: var(--fb-orange) !important;
	border-color: var(--fb-orange) !important;
	color: #fff !important;
}
.fb-btn--outline:hover, .fb-btn--outline:focus-visible,
body .qodef-btn.qodef-btn-outline:hover {
	background-color: var(--fb-black) !important;
	color: #fff !important;
}
body .qodef-btn .qodef-btn-text { font: inherit; }

/* ---- Header -------------------------------------------------------------- */
body .qodef-page-header .qodef-menu-area,
body .qodef-page-header .qodef-sticky-header .qodef-sticky-holder,
body .qodef-mobile-header .qodef-mobile-header-inner {
	background-color: var(--fb-cream) !important;
	border-bottom: 1px solid var(--fb-line);
}
/* The bar stays full width; its contents line up with the 1180px sections (gutter plus the 15px column padding). */
body .qodef-page-header .qodef-menu-area .qodef-vertical-align-containers,
body .qodef-page-header .qodef-sticky-header .qodef-vertical-align-containers {
	padding-left: calc(var(--fb-gutter) + 15px);
	padding-right: calc(var(--fb-gutter) + 15px);
}
body .qodef-main-menu > ul > li > a,
body .qodef-sticky-header .qodef-main-menu > ul > li > a,
body .qodef-mobile-nav ul li a,
body .qodef-mobile-nav ul li h6 {
	font-family: var(--fb-sans);
	font-size: .92rem;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
	color: var(--fb-black);
}
body .qodef-main-menu > ul > li > a:hover,
body .qodef-main-menu > ul > li.qodef-active-item > a,
body .qodef-main-menu > ul > li.current-menu-item > a,
body .qodef-mobile-nav ul li a:hover,
body .qodef-mobile-nav ul li.current-menu-item > a {
	color: var(--fb-orange);
}
body .qodef-page-header .qodef-btn.qodef-btn-solid,
body .qodef-sticky-header .qodef-btn.qodef-btn-solid {
	background-color: var(--fb-black);
	border-color: var(--fb-black);
}
body .qodef-page-header .qodef-btn.qodef-btn-solid:hover,
body .qodef-sticky-header .qodef-btn.qodef-btn-solid:hover {
	background-color: var(--fb-orange) !important;
	border-color: var(--fb-orange) !important;
}
/* Phone header: the cart and the menu icon centred on the bar (the theme pushes the cart 13px down with an inline
 * margin), and a 28px menu icon in a 44px tap target whose glyph lines up with the content edge. */
body .qodef-mobile-header .qodef-position-right-inner { display: inline-flex; align-items: center; gap: .9rem; }
body .qodef-mobile-header .qodef-shopping-cart-holder { margin: 0 !important; vertical-align: middle; }
body .qodef-mobile-header .qodef-mobile-menu-opener a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin-right: -8px;
}
body .qodef-mobile-header .qodef-mobile-menu-icon,
body .qodef-mobile-header .qodef-mobile-menu-icon .icon_menu { display: block; font-size: 28px; line-height: 1; }
body .qodef-mobile-header .qodef-mobile-nav { background-color: var(--fb-cream); border-bottom: 1px solid var(--fb-line); }
body .qodef-shopping-cart-holder .qodef-header-cart .qodef-cart-number {
	background-color: var(--fb-orange);
	color: #fff;
	font-family: var(--fb-sans);
}

/* ---- Title area (every page except home) --------------------------------- */
body .qodef-title-holder {
	height: auto !important;
	background-color: var(--fb-cream) !important;
	background-image: none !important;
}
body .qodef-title-holder .qodef-title-wrapper { height: auto !important; padding: 2.6rem 0 1.4rem; }
body .qodef-title-holder .qodef-title-inner { text-align: left; }
/* Line the title up with the sections below (their gutter plus the 15px WPBakery column padding). */
body .qodef-title-holder .qodef-title-inner .qodef-grid {
	width: auto;
	max-width: none;
	margin: 0;
	padding: 0 calc(var(--fb-gutter) + 15px);
	text-align: left;
}
/* Phones and small tablets: the theme's fixed 300-600px grid (header, cart, checkout, footer) on the same line as the
 * sections and title, instead of a narrower column. */
@media (max-width: 768px) {
	body .qodef-grid,
	body .qodef-container-inner,
	body .qodef-row-grid-section { width: calc(100% - 2 * (var(--fb-gutter) + 15px)); }
}
body .qodef-title-holder .qodef-page-title {
	margin: 0;
	font-size: clamp(2.3rem, 6vw, 3.2rem) !important;
	line-height: 1.05 !important;
	color: var(--fb-black) !important;
}
body .qodef-title-holder .qodef-page-subtitle { max-width: none !important; }
body .qodef-title-holder .qodef-breadcrumbs { display: none; }

/* ---- Footer -------------------------------------------------------------- */
body .qodef-page-footer .qodef-footer-top-holder,
body .qodef-page-footer .qodef-footer-bottom-holder {
	background-color: var(--fb-black) !important;
	background-image: none !important;
	color: #d9cfc0;
}
body .qodef-page-footer .qodef-footer-bottom-holder { border-top: 1px solid #2c2824; }
/* Columns on the same line as the 1180px sections, instead of the theme's 1300px grid. */
body .qodef-page-footer .qodef-footer-top-holder .qodef-footer-top-inner.qodef-grid,
body .qodef-page-footer .qodef-footer-bottom-holder .qodef-footer-bottom-inner.qodef-grid {
	width: auto;
	max-width: none;
	margin: 0;
	padding-left: calc(var(--fb-gutter) + 15px);
	padding-right: calc(var(--fb-gutter) + 15px);
}
body .qodef-page-footer .widget,
body .qodef-page-footer .widget p,
body .qodef-page-footer .widget li,
body .qodef-page-footer .widget a { font-family: var(--fb-sans); color: #d9cfc0; }
body .qodef-page-footer .widget .qodef-widget-title {
	font-family: var(--fb-serif);
	font-weight: 900;
	font-size: 1.15rem;
	letter-spacing: 0;
	text-transform: none;
	color: #fff;
}
body .qodef-page-footer .widget a:hover { color: var(--fb-cheese); }
body .qodef-page-footer .qodef-footer-bottom-holder .widget p { color: #a89e8f; font-size: .8rem; }
body .qodef-page-footer .fb-footer-logo {
	display: inline-block;
	margin-bottom: .8rem;
	padding: 6px;
	border-radius: 10px;
	background: var(--fb-cream);
	line-height: 0;
}
body .qodef-page-footer .fb-footer-logo img { height: 56px; width: auto; }

/* ---- Pickup or delivery panel (ordering plugin) -------------------------- */
body .fo-gate--modal { background: rgba(19, 19, 19, .55); }
body .fo-gate__panel {
	max-width: 440px;
	padding: 1.9rem 2rem 2rem;
	border-radius: 16px;
	background: var(--fb-cream);
	color: var(--fb-black);
	font-family: var(--fb-sans);
}
body .fo-gate__title {
	margin: 0 0 1.2rem;
	font-family: var(--fb-serif);
	font-weight: 900;
	font-size: 1.75rem;
	letter-spacing: -.015em;
	text-transform: none;
	color: var(--fb-black);
}
body .fo-gate__title::after {
	content: "You can change this before you check out.";
	display: block;
	margin-top: .35rem;
	font-family: var(--fb-sans);
	font-size: .88rem;
	font-weight: 400;
	letter-spacing: 0;
	color: var(--fb-muted-on-cream);
}
body .fo-gate__choices { gap: .6rem; }
body .fo-gate__choices .fo-gate__btn {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 1.1rem .5rem;
	border: 1.5px solid #d9cab2;
	border-radius: 12px;
	background: var(--fb-white);
	color: var(--fb-black);
	font-family: var(--fb-sans);
	font-size: 1.05rem;
	font-weight: 700;
}
body .fo-gate__choices .fo-gate__btn::after {
	margin-top: .2rem;
	font-size: .76rem;
	font-weight: 400;
	color: var(--fb-muted);
}
body .fo-gate__choices .fo-gate__btn[data-fo-choice="pickup"]::after { content: "19897 56 Ave"; }
body .fo-gate__choices .fo-gate__btn[data-fo-choice="delivery"]::after { content: "Free in Langley"; }
body .fo-gate__choices .fo-gate__btn:hover,
body .fo-gate__choices .fo-gate__btn:focus-visible { border-color: var(--fb-orange); background: var(--fb-tint); }
body .fo-gate__btn--small { background: var(--fb-orange); color: #fff; border-radius: 8px; }
body .fo-gate__btn--small:hover { background: var(--fb-black); }
body .fo-gate__row input { box-sizing: border-box; height: 52px; margin: 0; padding: 0 1rem; border: 1.5px solid #d9cab2; border-radius: 8px; background: var(--fb-white); } /* no theme bottom margin, so the Check button (stretched to the row) is the same height */
body .fo-gate__link { color: var(--fb-orange); }

/* ---- Order bar (ordering plugin): fixed to the bottom of the screen ----- */
body .fo-order-bar {
	position: fixed;
	top: auto;
	bottom: 0;
	left: 0;
	right: 0;
	/* Above the theme's .qodef-wrapper (z-index 1000), which comes later in the page and would otherwise cover it. */
	z-index: 1001;
	align-items: center;
	flex-wrap: wrap;
	justify-content: flex-start;
	gap: .4rem 1rem;
	/* Contents on the same line as the sections: the choice on the left, the cart and its button on the right. */
	padding: .75rem calc(var(--fb-gutter) + 15px);
	background: var(--fb-black);
	color: #fff;
	font-family: var(--fb-sans);
	font-size: .88rem;
	box-shadow: 0 -4px 18px rgba(0, 0, 0, .18);
}
body .fo-order-bar__change { margin-right: auto; color: var(--fb-cheese); font-weight: 700; }
body .fo-order-bar__cart { font-weight: 700; }
body .fo-order-bar__view {
	padding: .55rem 1rem;
	border-radius: 8px;
	background: var(--fb-orange);
	color: #fff !important;
	font-weight: 700;
	text-decoration: none;
}
body .fo-order-bar__view:hover { background: #fff; color: var(--fb-black) !important; }
/* Room under the footer (in its own dark colour) so the bar never covers the copyright line. */
body:has(.fo-order-bar) .qodef-page-footer .qodef-footer-bottom-holder { padding-bottom: 4.5rem; }
/* The theme's back-to-top button sits above the bar instead of on its View order button. */
body:has(.fo-order-bar) #qodef-back-to-top { bottom: 5.5rem; }
/* "Added to your order" toast (inc/added-toast.php): centred above the bar, clear of the back-to-top button. */
body .fb-toast {
	position: fixed;
	left: 50%;
	bottom: 5.5rem;
	z-index: 1002;
	display: flex;
	align-items: center;
	gap: .5rem;
	width: max-content;
	max-width: calc(100% - 2 * (var(--fb-gutter) + 15px));
	box-sizing: border-box;
	padding: .8rem 1.15rem;
	border: 1px solid var(--fb-line);
	border-radius: var(--fb-radius);
	background: var(--fb-white);
	color: var(--fb-black);
	font: 600 .92rem/1.35 var(--fb-sans);
	box-shadow: 0 12px 30px rgba(19, 19, 19, .18);
	opacity: 0;
	visibility: hidden;
	transform: translate(-50%, 10px);
	transition: opacity .25s ease, transform .25s ease, visibility 0s linear .25s;
	pointer-events: none;
}
body .fb-toast.is-shown { opacity: 1; visibility: visible; transform: translate(-50%, 0); transition-delay: 0s; }
body .fb-toast svg { flex: none; color: var(--fb-orange); }
body:not(:has(.fo-order-bar)) .fb-toast { bottom: 1.5rem; }
@media (prefers-reduced-motion: reduce) {
	body .fb-toast, body .fb-toast.is-shown { transform: translate(-50%, 0); }
}
/* Phones: tighter, so pickup, the cart and the button usually fit on one line; room for two when they don't. */
@media (max-width: 767px) {
	body .fo-order-bar { gap: .3rem .6rem; font-size: .82rem; }
	body .fo-order-bar__view { padding: .5rem .75rem; }
	body:has(.fo-order-bar) .qodef-page-footer .qodef-footer-bottom-holder { padding-bottom: 6.5rem; }
	body:has(.fo-order-bar) #qodef-back-to-top { bottom: 7.5rem; }
	body:has(.fo-order-bar) .fb-toast { bottom: 7.5rem; }
}

/* ---- 404 (child 404.php) --------------------------------------------------- */
/* The parent sizes the 404 to the screen, pulls it up under the header and paints the flame pattern on it. */
body.error404 .qodef-content {
	height: auto !important;
	min-height: 0 !important;
	margin-top: 0 !important;
	background: var(--fb-cream) !important;
}
body.error404 .qodef-content-inner { display: block; height: auto; }
body .fb-404 { padding: 1.2rem calc(var(--fb-gutter) + 15px) 4rem; }
body .fb-404__text { max-width: 34rem; margin: 0 0 1.6rem; font-size: 1.05rem; line-height: 1.6; color: var(--fb-muted-on-cream); }
body .fb-404__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 1.4rem; margin: 0; }
body .fb-404__home { font-weight: 700; text-decoration: underline; text-underline-offset: .2em; }
body .fb-404__home:hover { color: var(--fb-black); }

/* Header cart label ("Cart") in the UI font */
body .qodef-shopping-cart-holder .qodef-header-cart,
body .qodef-shopping-cart-holder .qodef-header-cart * {
	font-family: var(--fb-sans);
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
	color: var(--fb-black);
}
/* The bag icon (an outline SVG set in DonPeppe Options) as an outline: the theme fills every cart SVG with currentColor. */
body .qodef-shopping-cart-holder .qodef-sc-opener-icon svg,
body .qodef-shopping-cart-holder .qodef-sc-opener-icon svg path { fill: none !important; stroke: currentColor; stroke-width: 1.8; }
body .qodef-shopping-cart-holder .qodef-header-cart:hover .qodef-sc-opener-icon svg { color: var(--fb-orange); }

/* ---- Sections and rows (homepage WPBakery rows with el_class fb-row) ------ */
body .fb-row { margin-left: 0; margin-right: 0; }
body .fb-row > .wpb_column > .vc_column-inner { padding-top: 0; }
body .fb-row .wpb_content_element,
body .fb-row .wpb_text_column { margin-bottom: 0; }
body .fb-section { padding: 4rem var(--fb-gutter); }
body .fb-section h2 { margin: 0 0 .35rem; font-size: clamp(1.9rem, 4vw, 2.4rem); line-height: 1.05; }
body .fb-section__sub { margin: 0 0 1.6rem; color: var(--fb-muted-on-cream); }
body .fb-section__more { margin: 1.8rem 0 0; text-align: center; }
body .fb-section--cream { background: var(--fb-cream); }
body .fb-section--black { background: var(--fb-black); color: var(--fb-cream); }
body .fb-section--black h2 { color: var(--fb-cream); }
body .fb-section--black .fb-section__sub { color: #bfb3a3; }
body .fb-section--black .fb-label { color: var(--fb-cheese) !important; }
body .fb-section--orange { background: var(--fb-orange); color: #fff; }
body .fb-section--orange h2 { color: #fff; font-size: clamp(2rem, 4.5vw, 2.7rem); }
body .fb-section--orange p { color: #fff; line-height: 1.65; }

/* ---- Hero ------------------------------------------------------------------ */
body .fb-hero { display: flex; flex-wrap: wrap; align-items: center; padding: 3.2rem var(--fb-gutter) 3.6rem; }
body .fb-hero h1 { margin: 0; font-size: clamp(2.6rem, 6.2vw, 4.7rem); line-height: 1; }
body .fb-hero__sub { max-width: 30rem; margin: 1.2rem 0 1.6rem; font-size: 1.05rem; color: #4a4038; }
body .fb-hero__buttons { display: flex; flex-wrap: wrap; gap: .6rem; margin: 0; }
body .fb-hero .fo-open-status { margin: 1.2rem 0 0; }
body .fb-hero__art .fb-pizza-art { display: block; width: 100%; height: auto; max-width: 560px; margin: 0 auto; }

/* Open/closed line ([fo_open_status]) */
body .fo-open-status { display: flex; align-items: center; gap: .45rem; font-size: .88rem; color: #4a4038; }
body .fo-open-status__dot { width: .6rem; height: .6rem; border-radius: 50%; background: #8a7a66; flex: none; }
body .fo-open-status--open { color: #2a5e2f; }
body .fo-open-status--open .fo-open-status__dot { background: #2f7d3a; }
body .fo-open-status--open::first-line { font-weight: 700; }

/* ---- Deals ticker ---------------------------------------------------------- */
body .fb-row--flush > .wpb_column > .vc_column-inner { padding: 0; }
body .fb-ticker { overflow: hidden; background: var(--fb-orange); color: #fff; white-space: nowrap; }
body .fb-ticker__track { display: inline-flex; animation: fb-ticker 32s linear infinite; }
body .fb-ticker:hover .fb-ticker__track { animation-play-state: paused; }
body .fb-ticker__run { display: inline-flex; align-items: center; }
body .fb-ticker__item { padding: .8rem 0; font-family: var(--fb-serif); font-weight: 900; font-size: 1.15rem; }
body .fb-ticker__sep { padding: 0 1.1rem; }
@keyframes fb-ticker { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
	body .fb-ticker { white-space: normal; }
	body .fb-ticker__track { animation: none; flex-wrap: wrap; justify-content: center; }
	body .fb-ticker__run[aria-hidden="true"] { display: none; }
}

/* ---- Cards (homepage and menu) -------------------------------------------- */
.fb-grid { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fb-grid--deals { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
.fb-card {
	display: flex;
	flex-direction: column;
	padding: 1.35rem 1.4rem 1.2rem;
	border: 1px solid var(--fb-line);
	border-radius: 12px;
	background: var(--fb-white);
}
body .fb-card .fb-card__label {
	margin: 0 0 .3rem;
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--fb-orange);
}
body .fb-card .fb-card__name { margin: 0 0 .4rem; font-size: 1.45rem; line-height: 1.1; color: var(--fb-black); }
body .fb-card .fb-card__desc { flex: 1; margin: 0 0 1.1rem; font-size: .88rem; line-height: 1.5; color: var(--fb-muted); }
.fb-card__foot { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: auto; }
.fb-card__price, .fb-card__price .amount { font-weight: 700; font-size: 1.05rem; color: var(--fb-orange); }
.fb-card__add:not(.fb-card__add--text) {
	display: grid;
	place-items: center;
	flex: none;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--fb-black);
	color: #fff !important;
	text-decoration: none;
}
.fb-card__plus { display: block; }
.fb-card__add:not(.fb-card__add--text):hover,
.fb-card__add:not(.fb-card__add--text):focus-visible { background: var(--fb-orange); }
.fb-card__add .qqvfw-m-spinner { display: none; }
.fb-card--deal { background: #1f1c19; border-color: #3a332c; }
body .fb-card--deal .fb-card__label { color: var(--fb-cheese); }
body .fb-card--deal .fb-card__name { color: var(--fb-cream); }
body .fb-card--deal .fb-card__desc { color: #cbbfae; }
.fb-card--deal .fb-card__price, .fb-card--deal .fb-card__price .amount { font-family: var(--fb-serif); font-weight: 900; font-size: 1.75rem; color: var(--fb-cheese); }
.fb-card--deal .fb-card__add--text { padding: .6rem 1rem; font-size: .82rem; }

/* ---- About band ------------------------------------------------------------ */
body .fb-about { display: flex; flex-wrap: wrap; gap: 0; }
body .fb-about .fb-about__accent { color: var(--fb-black); }
body .fb-about strong { color: #fff; }
.fb-chips { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.2rem 0 0; padding: 0; list-style: none; }
body .fb-chips li { padding: .35rem .85rem; border-radius: 99px; background: rgba(255, 255, 255, .18); color: #fff; font-size: .8rem; font-weight: 600; }

/* ---- Visit us -------------------------------------------------------------- */
body .fb-visit { display: flex; flex-wrap: wrap; align-items: flex-start; }
body .fb-visit__address { line-height: 1.7; }
body .fb-visit .fo-hours { margin: 0 0 1.3rem; }
.fb-map { overflow: hidden; border-radius: var(--fb-radius); border: 1px solid var(--fb-line); background: #eadfcb; line-height: 0; }
.fb-map iframe { width: 100%; height: 300px; border: 0; }

/* ---- Contact page (tools/pages/contact-us.txt): details on the left, a tall map on the right ---- */
body .fb-section.fb-contact { padding-top: 1.2rem; align-items: stretch; }
body .fb-contact__item { margin-bottom: 1.6rem; }
body .fb-contact__item .fb-label { margin-bottom: .4rem; }
body .fb-contact__item p:not(.fb-label) { margin: 0; font-size: 1.1rem; line-height: 1.6; }
body .fb-contact__item a { color: var(--fb-black); text-decoration: underline; text-decoration-color: var(--fb-line); text-underline-offset: 4px; }
body .fb-contact__item a:hover { color: var(--fb-orange); text-decoration-color: currentColor; }
body .fb-contact .fo-hours { max-width: 18rem; margin: 0; }
body .fb-contact__buttons { display: flex; flex-wrap: wrap; gap: .6rem; margin: .4rem 0 0; }
body .fb-map--tall iframe { height: 460px; }
@media (max-width: 767px) { body .fb-map--tall iframe { height: 320px; } }

@media (max-width: 767px) {
	.fb-grid { grid-template-columns: minmax(0, 1fr); }
	body .fb-section { padding-top: 3rem; padding-bottom: 3rem; }
	body .fb-hero__art .fb-pizza-art { max-width: 400px; margin-top: 2rem; }
	body .fb-hero .vc_column_container,
	body .fb-about .vc_column_container,
	body .fb-visit .vc_column_container { width: 100%; }
	body .fb-visit .vc_column_container + .vc_column_container { margin-top: 1.5rem; }
}

/* ---- Menu page ([firebox_menu]) ------------------------------------------- */
body .fb-menu-row { padding-top: 0; }
body .fb-menu > .fo-open-status { margin: 0 0 1.2rem; }
.fb-card[hidden], .fb-menu-section[hidden], .fb-menu-empty[hidden] { display: none !important; }
body .fb-menu-bar {
	position: sticky;
	top: var(--fb-menu-bar-top, 0px);
	z-index: 50;
	display: flex;
	align-items: center;
	gap: .8rem;
	margin: 0 -15px;
	padding: .8rem 15px;
	border-top: 1px solid var(--fb-line);
	border-bottom: 1px solid var(--fb-line);
	background: var(--fb-cream);
}
body .fb-menu-search {
	flex: 0 0 15rem;
	height: 40px;
	margin: 0;
	padding: 0 1rem;
	border: 1.5px solid #d9cab2;
	border-radius: 99px;
	background: var(--fb-white);
	font-family: var(--fb-sans);
	font-size: .88rem;
	color: var(--fb-black);
}
body .fb-menu-search:focus { border-color: var(--fb-orange); outline: none; box-shadow: 0 0 0 3px rgba(193, 72, 36, .18); }
.fb-menu-pills { display: flex; gap: .5rem; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.fb-menu-pills::-webkit-scrollbar { display: none; }
/* Desktop and tablet: the pills fade out at an end that has more, with an arrow there (menu.js sets the classes). */
.fb-menu-scroller { position: relative; flex: 1; min-width: 0; }
.fb-menu-arrow[hidden] { display: none !important; }
@media (min-width: 768px) {
	.fb-menu-scroller .fb-menu-pills {
		--fb-fade-l: 0px;
		--fb-fade-r: 0px;
		-webkit-mask-image: linear-gradient(to right, transparent 0, #000 var(--fb-fade-l), #000 calc(100% - var(--fb-fade-r)), transparent 100%);
		mask-image: linear-gradient(to right, transparent 0, #000 var(--fb-fade-l), #000 calc(100% - var(--fb-fade-r)), transparent 100%);
	}
	.fb-menu-scroller.can-prev .fb-menu-pills { --fb-fade-l: 64px; }
	.fb-menu-scroller.can-next .fb-menu-pills { --fb-fade-r: 64px; }
	body .fb-menu-arrow {
		position: absolute;
		top: 50%;
		z-index: 1;
		display: grid;
		place-items: center;
		width: 32px;
		height: 32px;
		margin: -16px 0 0;
		padding: 0;
		border: 1.5px solid var(--fb-black);
		border-radius: 50%;
		background: var(--fb-white);
		color: var(--fb-black);
		box-shadow: 0 2px 8px rgba(19, 19, 19, .12);
		cursor: pointer;
		opacity: 0;
		visibility: hidden;
		transition: opacity .15s ease, visibility 0s linear .15s, background-color .15s ease, color .15s ease;
	}
	body .fb-menu-arrow:hover { background: var(--fb-black); color: #fff; }
	body .fb-menu-arrow svg { display: block; }
	.fb-menu-arrow--prev { left: 0; }
	.fb-menu-arrow--next { right: 0; }
	.fb-menu-scroller.can-prev .fb-menu-arrow--prev,
	.fb-menu-scroller.can-next .fb-menu-arrow--next { opacity: 1; visibility: visible; transition: opacity .15s ease, visibility 0s, background-color .15s ease, color .15s ease; }
}
@media (max-width: 767px) {
	.fb-menu-arrow { display: none !important; }
}
body .fb-menu-pills a {
	flex: none;
	padding: .45rem .95rem;
	border: 1.5px solid var(--fb-black);
	border-radius: 99px;
	font-size: .8rem;
	font-weight: 600;
	white-space: nowrap;
	text-decoration: none;
	color: var(--fb-black);
}
body .fb-menu-pills a:hover { background: var(--fb-tint); }
body .fb-menu-pills a[aria-current="true"] { background: var(--fb-black); color: #fff; }
body .fb-menu-section { padding-top: 2.2rem; scroll-margin-top: 140px; }
body .fb-menu-section h2 { margin: 0 0 1rem; font-size: 1.9rem; }
body .fb-menu-empty { margin: 2rem 0 0; color: var(--fb-muted-on-cream); }
/* Phones: tighter cards and sections, so more of the menu fits on a screen; long descriptions stop at three lines. */
@media (max-width: 767px) {
	body .fb-menu-section { padding-top: 1.6rem; }
	body .fb-menu-section h2 { margin-bottom: .75rem; font-size: 1.6rem; }
	.fb-menu .fb-grid { gap: .75rem; }
	.fb-menu .fb-card { padding: 1rem 1.1rem .9rem; }
	body .fb-menu .fb-card .fb-card__name { font-size: 1.25rem; }
	body .fb-menu .fb-card .fb-card__desc { display: -webkit-box; margin-bottom: .6rem; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; }
}
body .fb-menu-clear { margin-left: .4rem; padding: .35rem .8rem; border: 1.5px solid var(--fb-black); border-radius: 99px; background: transparent; font-weight: 600; cursor: pointer; }
@media (max-width: 767px) {
	/* Edge to edge, so cards scrolling under the sticky bar don't show past its ends */
	body .fb-menu-bar {
		flex-direction: column;
		align-items: stretch;
		margin: 0 calc(-15px - var(--fb-gutter));
		padding: .8rem calc(15px + var(--fb-gutter));
	}
	body .fb-menu-search { flex: none; width: 100%; }
}
/* The theme clips the page with overflow: hidden on body and .qodef-wrapper-inner, which makes them scroll containers
 * and stops position: sticky. overflow: clip clips the same way without that, on the menu page only. */
html body:has(.fb-menu-bar),
html body:has(.fb-menu-bar) .qodef-wrapper-inner { overflow-x: clip !important; overflow-y: visible !important; }
/* Under the theme's sticky header while it is shown (it slides in on scroll up, 80 px tall). */
body:has(.qodef-sticky-header.header-appear) .fb-menu-bar { top: 80px; }
/* Phones and tablets: under the theme's phone header while it is shown (70 px; it slides in on scroll up). */
@media (max-width: 1024px) {
	body:has(.qodef-mobile-header.mobile-header-appear) .fb-menu-bar { top: 70px; }
}

/* ---- Product page and popup ------------------------------------------------ */
table.variations[hidden], table.variations tr[hidden], .single-product table.variations[hidden] { display: none !important; }
body .woocommerce-variation-price { display: none; } /* the add button carries the price */
body .wapf-product-totals { display: none !important; } /* Advanced Product Fields' totals: the add button carries them */
body.fb-no-product-image .qodef-single-product-summary,
body.fb-no-product-image .qodef-single-product-content .summary { float: none; width: 100%; max-width: none; padding: 0; }
body .qodef-single-product-summary .summary,
body .qqvfw-m-product .summary {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	column-gap: 2.5rem;
	align-items: start;
}
body .qodef-single-product-summary .summary > *,
body .qqvfw-m-product .summary > * { grid-column: 1; }
body .qodef-single-product-summary .summary > form.cart,
body .qqvfw-m-product .summary > form.cart {
	grid-column: 2;
	grid-row: 1 / span 20;
	margin: 0;
	padding: 1.5rem;
	border: 1px solid var(--fb-line);
	border-radius: var(--fb-radius);
	background: var(--fb-white);
}
body .qodef-single-product-title,
body .qqvfw-m-product .product_title {
	margin: 0 0 .7rem;
	font-family: var(--fb-serif);
	font-size: clamp(2.2rem, 5vw, 3.1rem);
	font-weight: 900;
	line-height: 1;
	letter-spacing: -.015em;
	text-transform: none;
	color: var(--fb-black);
}
body .qodef-single-product-summary .price,
body .qqvfw-m-product .summary .price,
body .qodef-single-product-summary .price .amount,
body .qqvfw-m-product .summary .price .amount {
	font-family: var(--fb-serif);
	font-size: 1.6rem;
	font-weight: 900;
	color: var(--fb-orange);
}
body .fb-product-desc p { margin: 0 0 1rem; font-size: 1.05rem; line-height: 1.55; color: #4a4038; }
.fb-badges { display: flex; flex-wrap: wrap; gap: .5rem; margin: .4rem 0 0; padding: 0; list-style: none; }
body .fb-badges li { padding: .35rem .8rem; border-radius: 99px; background: #f3e6cf; font-size: .78rem; font-weight: 600; color: var(--fb-black); }

/* Size buttons */
.fb-sizes { margin: 0 0 1.3rem; padding: 0; border: 0; }
body .fb-sizes legend { margin: 0 0 .7rem; padding: 0; font-family: var(--fb-serif); font-size: 1.05rem; font-weight: 900; color: var(--fb-black); }
.fb-sizes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; }
.fb-sizes legend { grid-column: 1 / -1; }
.fb-sizes:not(:has(label:nth-of-type(3))) { grid-template-columns: repeat(2, minmax(0, 1fr)); } /* Small/Large, Regular/Large */
.fb-sizes input { position: absolute; opacity: 0; width: 1px; height: 1px; }
body .fb-sizes label {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin: 0;
	padding: .7rem .4rem;
	border: 1.5px solid #d9cab2;
	border-radius: 10px;
	background: var(--fb-white);
	font-size: .85rem;
	text-align: center;
	cursor: pointer;
	color: var(--fb-black);
}
.fb-sizes__name { display: block; font-weight: 700; font-size: .95rem; }
.fb-sizes input:checked + label { border-color: var(--fb-orange); background: var(--fb-tint); }
.fb-sizes input:focus-visible + label { outline: 3px solid rgba(193, 72, 36, .35); outline-offset: 2px; }

/* Product options (Advanced Product Fields Pro): labels like the Size legend, choices as tiles like the size buttons.
 * Its own variables style the other field types (text, dropdown, text swatches) the same way. */
body .wapf {
	--apf-radius: 8px;
	--apf-input-height: 44px;
	--apf-input-bg: var(--fb-white);
	--apf-input-border: 1.5px solid #d9cab2;
	--apf-input-border-color-foc: var(--fb-orange);
	--apf-ts-radius: 10px;
	--apf-ts-border: 1.5px solid #d9cab2;
	--apf-ts-bg: var(--fb-white);
	--apf-ts-bg-hov: var(--fb-white);
	--apf-ts-border-color-hov: var(--fb-black);
	--apf-ts-bg-sel: var(--fb-tint);
	--apf-ts-border-color-sel: var(--fb-orange);
	--apf-ts-color-sel: var(--fb-black);
	flex: 0 0 100%; /* its own row in the form's flex row, above the quantity and the add button */
	margin: 0;
}
body .wapf .wapf-wrapper { margin: 0; }
body .wapf .wapf-field-container { margin: 0 0 1.2rem; padding: 0; } /* Pro adds a 5px side and 15px bottom gutter */
body .wapf .wapf-field-label { margin: 0 0 .7rem; }
body .wapf .wapf-field-label label { margin: 0; font-family: var(--fb-serif); font-size: 1.05rem; font-weight: 900; color: var(--fb-black); }
body .wapf .wapf-field-label abbr.required { margin-left: .25rem; border: 0; color: var(--fb-orange); text-decoration: none; }
/* Instructions ("Choose 2.") under the label, above the choices (Pro prints them after the choices). */
body .wapf .wapf-field-container:not(.wapf-hide) { display: flex; flex-direction: column; }
body .wapf .wapf-field-label { order: 0; }
body .wapf .wapf-field-description { order: 1; margin: -.35rem 0 .7rem; font-size: .85rem; color: var(--fb-muted); }
body .wapf .wapf-field-input { order: 2; }
body .wapf .wapf-checkboxes,
body .wapf .wapf-radios { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 8.5rem), 1fr)); gap: .5rem; width: 100%; } /* 2 across on a phone, 3 in the popup */
body .wapf .wapf-checkbox .wapf-input-label,
body .wapf .wapf-radio .wapf-input-label {
	position: relative;
	box-sizing: border-box;
	gap: .6rem;
	height: 100%;
	margin: 0;
	padding: .65rem .75rem;
	border: 1.5px solid #d9cab2;
	border-radius: 10px;
	background: var(--fb-white);
	font-size: .9rem;
	line-height: 1.25;
	color: var(--fb-black);
}
body .wapf .wapf-input-label:has(input:checked) { border-color: var(--fb-orange); background: var(--fb-tint); }
body .wapf .wapf-input-label:has(input:focus-visible) { outline: 3px solid rgba(193, 72, 36, .35); outline-offset: 2px; }
body .wapf .wapf-input-label:has(input:disabled) { opacity: .45; cursor: not-allowed; } /* e.g. a 3rd pick when 2 is the most */
/* The real input stays for keyboards, screen readers and the browser's "please choose" message; the box is drawn. */
body .wapf .wapf-checkbox input[type="checkbox"],
body .wapf .wapf-radio input[type="radio"] { position: absolute; top: 50%; left: .75rem; width: 1px; height: 1px; margin: 0; opacity: 0; }
body .wapf .wapf-checkbox .wapf-custom,
body .wapf .wapf-radio .wapf-custom { flex: none; box-sizing: border-box; width: 18px; height: 18px; border: 1.5px solid #bfae92; border-radius: 5px; background: var(--fb-white) center / 12px no-repeat; }
body .wapf .wapf-radio .wapf-custom { border-radius: 50%; }
body .wapf .wapf-checkbox input:checked + .wapf-custom { border-color: var(--fb-orange); background-color: var(--fb-orange); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 6.2l2.3 2.3 4.7-5' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
body .wapf .wapf-radio input:checked + .wapf-custom { border-color: var(--fb-orange); background: var(--fb-orange); box-shadow: inset 0 0 0 3px var(--fb-white); }
body .wapf .wapf-label-text { min-width: 0; padding: 0; }
body .wapf .wapf-pricing-hint { display: block; margin-top: .1rem; font-size: .8rem; color: var(--fb-muted); opacity: 1; }
body .wapf .wapf-swatch--text { margin: 0 .5rem .5rem 0; font-size: .9rem; font-weight: 600; }
body .wapf .wapf-swatch--text label { padding: .6rem .9rem; }

/* Quantity and the add button */
body form.cart .single_variation_wrap,
body form.cart:not(.variations_form) { display: block; }
body form.cart .woocommerce-variation-add-to-cart,
body form.cart:not(.variations_form) { display: flex; gap: .8rem; align-items: stretch; }
body form.cart .quantity { flex: none; margin: 0; }
body form.cart .fb-add-row { display: flex; flex: 0 0 100%; flex-wrap: nowrap; gap: .8rem; align-items: stretch; box-sizing: border-box; }
body form.cart .quantity .qty,
body form.cart .quantity input { height: 48px; border: 1.5px solid #d9cab2; border-radius: 8px; background: var(--fb-white); font-family: var(--fb-sans); color: var(--fb-black); }
body form.cart button.single_add_to_cart_button {
	flex: 1;
	min-height: 48px;
	font-size: .95rem !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
}
body form.cart button.single_add_to_cart_button.disabled { opacity: .55; }

/* Popup frame */
body .qqvfw-m-product { background: var(--fb-cream); }
body #qode-quick-view-for-woocommerce-pop-up .qqvfw-m-product > .product { background: transparent; } /* the plugin paints it white */
body .qqvfw-m-product .summary > form.cart { box-sizing: border-box; } /* the theme sets width: 100% on it */
body .qqvfw-m-product .woocommerce-product-gallery,
body .qqvfw-m-product .woocommerce-product-gallery__image--placeholder { display: none; }
body .qqvfw-m-product .summary { width: 100% !important; max-width: none; float: none; padding: 2.2rem !important; }
/* A dark scrim so the cream card stands off the cream page. */
body #qode-quick-view-for-woocommerce-pop-up .qqvfw-m-overlay { background: rgba(19, 19, 19, .6); }
body #qode-quick-view-for-woocommerce-pop-up .qqvfw-m-product {
	border-radius: var(--fb-radius);
	overflow: hidden;
	box-shadow: 0 24px 60px rgba(19, 19, 19, .3);
}
/* Round close button like the cards' "+", in place of the parent theme's corner triangle and its spinning icon. */
body #qode-quick-view-for-woocommerce-pop-up .qqvfw-m-close {
	top: 1rem;
	right: 1rem;
	z-index: 3;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--fb-black);
	color: #fff;
	clip-path: none;
	transition: background-color .2s ease;
}
body #qode-quick-view-for-woocommerce-pop-up .qqvfw-m-close::before { content: none; }
body #qode-quick-view-for-woocommerce-pop-up .qqvfw-m-close svg { display: block; width: 14px; height: 14px; stroke-width: 2.5; }
body #qode-quick-view-for-woocommerce-pop-up .qqvfw-m-close:hover,
body #qode-quick-view-for-woocommerce-pop-up .qqvfw-m-close:focus-visible { background: var(--fb-orange); color: #fff; }

/* Closed / paused notice (ordering plugin) */
body .woocommerce-info,
body .woocommerce-message { border: 0; border-left: 4px solid var(--fb-orange); border-radius: 10px; background: var(--fb-white); color: var(--fb-black); font-family: var(--fb-sans); }

@media (max-width: 880px) {
	body .qodef-single-product-summary .summary,
	body .qqvfw-m-product .summary { grid-template-columns: minmax(0, 1fr); }
	body .qodef-single-product-summary .summary > form.cart,
	body .qqvfw-m-product .summary > form.cart { grid-column: 1; grid-row: auto; margin-top: 1.2rem; }
	body .qqvfw-m-product .summary { padding: 1.4rem !important; }
}
@media (max-width: 600px) {
	body #qode-quick-view-for-woocommerce-pop-up .qqvfw-m-content .qqvfw-m-summary-wrapper { padding: 0; } /* the theme's 33px doubled the summary's */
	body .qqvfw-m-product .summary { padding: 1.25rem !important; }
	body .qqvfw-m-product .summary > form.cart { padding: 1rem; }
	body .qqvfw-m-product form.cart button.single_add_to_cart_button { padding-inline: .8rem; white-space: nowrap; }
	body .qqvfw-m-product .qodef-qode-quick-view-product-title { padding-right: 2.75rem; } /* clears the close button */
	/* No box in a box on a phone: the quantity and the add button sit on the cream, under a line. */
	body #qode-quick-view-for-woocommerce-pop-up .qqvfw-m-product .summary > form.cart { margin-top: 1.1rem; padding: 1.1rem 0 0; border: 0; border-top: 1px solid var(--fb-line); border-radius: 0; background: transparent; }
	body .qqvfw-m-product .fb-sizes { margin-bottom: 1rem; }
	body .qqvfw-m-product form.cart button.single_add_to_cart_button { min-width: 0; padding-inline: .6rem; }
	body .qqvfw-m-product .fb-product-desc p { margin-bottom: .8rem; font-size: 1rem; }
}
/* "Special requests" (ordering plugin, ItemNotes): under the options, above the quantity and the add button; its label
 * like an option label. */
body form.cart .fo-item-note { flex: 0 0 100%; width: 100%; margin: 0 0 1.2rem; }
body form.cart .fo-item-note label { display: block; margin: 0 0 .5rem; font-family: var(--fb-serif); font-size: 1.05rem; font-weight: 900; color: var(--fb-black); }
body form.cart .fo-item-note__optional { font-family: var(--fb-sans); font-size: .85rem; font-weight: 400; color: var(--fb-muted); }
body form.cart .fo-item-note textarea { box-sizing: border-box; display: block; width: 100%; min-height: 0; height: auto; margin: 0; padding: .65rem .75rem; border: 1.5px solid #d9cab2; border-radius: 10px; background: var(--fb-white); font-family: var(--fb-sans); font-size: .95rem; line-height: 1.4; color: var(--fb-black); resize: vertical; }
body form.cart .fo-item-note textarea:focus { border-color: var(--fb-orange); outline: none; }
body form.cart .fo-item-note textarea:focus-visible { outline: 3px solid rgba(193, 72, 36, .35); outline-offset: 2px; }

/* The popup only as tall as the product (the plugin fixes it at 640 px, or the whole screen up to 880 px); past 90vh
 * its content scrolls. */
body #qode-quick-view-for-woocommerce-pop-up .qqvfw-m-content { height: auto; }
body #qode-quick-view-for-woocommerce-pop-up .qqvfw-m-content .qqvfw-m-summary-wrapper { max-height: 90vh; overflow-y: auto; padding-bottom: 0; } /* no bottom padding: the pinned add row would stop short of the edge */
/* Products with options (Advanced Product Fields): one column, the name and description above the choices, in a narrower
 * popup; the quantity and add button stay in view at the bottom while the choices scroll, under a line. Products
 * without options keep the plain row. */
body #qode-quick-view-for-woocommerce-pop-up .qqvfw-m-content:has(.wapf) { width: 680px; }
body .qqvfw-m-product:has(.wapf) .summary { grid-template-columns: minmax(0, 1fr); }
body #qode-quick-view-for-woocommerce-pop-up .qqvfw-m-product .summary { overflow: visible !important; } /* the theme’s scrollbar script (.ps) sets overflow: hidden !important on desktop, which stops the add row sticking; the summary wrapper scrolls */
body .qqvfw-m-product:has(.wapf) .summary > form.cart { grid-column: 1; grid-row: auto; margin-top: 1.2rem; }
body .qqvfw-m-product form.cart:has(.wapf) .fb-add-row {
	position: sticky;
	bottom: 0;
	z-index: 2;
	flex-basis: auto;
	width: calc(100% + 3rem); /* out to the card's edges, over its padding */
	margin: 0 -1.5rem -1.5rem;
	padding: .9rem 1.5rem 1.5rem;
	border-top: 1px solid var(--fb-line);
	border-radius: 0 0 var(--fb-radius) var(--fb-radius);
	background: var(--fb-white);
}
@media (max-width: 600px) {
	body .qqvfw-m-product form.cart:has(.wapf) .fb-add-row { width: 100%; margin: 0; padding: .9rem 0 1.25rem; border-radius: 0; background: var(--fb-cream); }
}
/* The theme's WooCommerce CSS makes the form inline-block (by id in the popup), which beats the flex row above
 * (quantity beside the button). */
body #qode-quick-view-for-woocommerce-pop-up .qqvfw-m-summary-wrapper .summary form.cart:not(.variations_form),
body.qodef-woo-single-page .qodef-single-product-summary form.cart:not(.variations_form) { display: flex; }

/* Popup: no image column when there is no image; the summary takes the width. */
body .qqvfw-m-product .qqvfw-m-media-wrapper:not(:has(img)) { display: none; }
body .qqvfw-m-product .qqvfw-m-media-wrapper:not(:has(img)) + .qqvfw-m-summary-wrapper,
body #qode-quick-view-for-woocommerce-pop-up .qqvfw-m-content .qqvfw-m-media-wrapper:not(:has(img)) + .qqvfw-m-summary-wrapper { width: 100%; max-width: none; flex: 1 1 100%; } /* the theme's 45.5% is by id */
body .qqvfw-m-product .qodef-qode-quick-view-product-title {
	margin: 0 0 .7rem;
	font-family: var(--fb-serif);
	font-size: clamp(1.9rem, 4vw, 2.6rem);
	font-weight: 900;
	line-height: 1.02;
	letter-spacing: -.015em;
	text-transform: none;
	color: var(--fb-black);
}
body .summary .price,
body .qodef-single-product-price .price { text-transform: none !important; letter-spacing: 0; }

/* The theme's quantity stepper, as tall as the add button */
body form.cart .qodef-quantity-buttons { position: relative; width: 66px; height: 48px; padding: 0; border: 0; }
body form.cart .qodef-quantity-buttons .qodef-quantity-input {
	width: 100%;
	height: 48px;
	margin: 0;
	padding: 0 24px 0 12px;
	border: 1.5px solid #d9cab2;
	border-radius: 8px;
	background: var(--fb-white);
	text-align: left;
	font-size: 1rem;
}
/* The chevrons centred in their halves (the icon font's own line height left them about 2px high). */
body form.cart .qodef-quantity-buttons .qodef-quantity-plus,
body form.cart .qodef-quantity-buttons .qodef-quantity-minus { display: flex; align-items: center; justify-content: center; right: 4px; height: 18px; line-height: 1; color: var(--fb-black); }
body form.cart .qodef-quantity-buttons .qodef-quantity-plus::before,
body form.cart .qodef-quantity-buttons .qodef-quantity-minus::before { display: block; line-height: 1; }
body form.cart .qodef-quantity-buttons .qodef-quantity-plus { top: calc(50% - 19px); bottom: auto; }
body form.cart .qodef-quantity-buttons .qodef-quantity-minus { top: calc(50% + 1px); bottom: auto; }

body .woocommerce-notices-wrapper .woocommerce-info,
body .woocommerce-notices-wrapper .woocommerce-message,
body .woocommerce-notices-wrapper .woocommerce-error,
body .qodef-content .woocommerce-info { border: 0 !important; border-left: 4px solid var(--fb-orange) !important; border-radius: 10px; background: var(--fb-white) !important; color: var(--fb-black) !important; }

/* ---- Checkout ([inc/checkout.php] steps and summary) ----------------------- */
/* Clover's checkout script adds a "Secure Payments Powered by Clover" bar to the end of the page; the card fields stay. */
body > .clover-footer { display: none !important; }
/* Your details: the opt-in checkbox and the order notes (WooCommerce's second column) line up with the fields above. */
body .woocommerce-checkout #customer_details .col-2 { margin-left: 0; }
body .woocommerce-checkout #fo_marketing_opt_in { margin-left: 0; }
/* Payment: the privacy note close under the payment methods' line, and no empty space under Place order. */
body .fb-summary #payment { margin-bottom: 0; }
body .fb-summary #payment ul.wc_payment_methods { margin-bottom: 0; }
body .fb-summary #payment .place-order { padding-top: 1rem; }
body .fb-summary #payment .woocommerce-terms-and-conditions-wrapper { margin-bottom: 1rem; }
body .fb-summary #payment .woocommerce-privacy-policy-text p { margin: 0; }
body.fb-checkout form.checkout {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
	gap: 1.5rem;
	align-items: start;
}
body.fb-checkout form.checkout > * { grid-column: 1; }
body.fb-checkout form.checkout > .fb-summary { grid-column: 2; grid-row: 1 / span 10; }
.fb-step,
.fb-summary {
	margin: 0 0 1rem;
	padding: 1.3rem 1.4rem;
	border: 1px solid var(--fb-line);
	border-radius: var(--fb-radius);
	background: var(--fb-white);
}
.fb-summary { position: sticky; top: 100px; margin: 0; }
.fb-summary .fb-step { margin: 1rem 0 0; padding: 1rem 0 0; border: 0; border-top: 1px dashed #d9cab2; border-radius: 0; }
body .fb-step__title,
body .fb-summary #order_review_heading {
	display: flex;
	align-items: center;
	gap: .6rem;
	margin: 0 0 .9rem;
	font-family: var(--fb-serif);
	font-size: 1.2rem;
	font-weight: 900;
	text-transform: none;
	letter-spacing: 0;
	color: var(--fb-black);
}
.fb-step__n {
	display: grid;
	place-items: center;
	flex: none;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--fb-black);
	color: #fff;
	font-family: var(--fb-sans);
	font-size: .8rem;
	font-weight: 700;
}
/* The blocks' own headings are replaced by the step titles. */
body .fb-step .fo-when > h3,
body .fb-step .fo-tip > h3,
body .fb-step .woocommerce-billing-fields > h3,
body .fb-step .woocommerce-additional-fields > h3 { display: none; }
body .fb-step #customer_details .col-1,
body .fb-step #customer_details .col-2 { float: none; width: 100%; max-width: none; padding: 0; }

/* 1 · Pickup or delivery: the current choice and a Change button */
body .fb-step .fo-checkout-type {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin: 0;
	padding: .75rem 1rem;
	border: 1.5px solid var(--fb-orange);
	border-radius: 10px;
	background: var(--fb-tint);
	color: var(--fb-orange);
	font-weight: 700;
}
body .fb-step .fo-checkout-type__change {
	padding: .4rem .9rem;
	border: 1.5px solid var(--fb-black);
	border-radius: 8px;
	background: var(--fb-white);
	color: var(--fb-black) !important;
	font-weight: 600;
	text-decoration: none;
	text-transform: capitalize;
	cursor: pointer;
}

/* 2 · When: ASAP / Later as a segmented control */
body .fb-step .fo-when { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; }
body .fb-step .fo-when > p,
body .fb-step .fo-when__pickers,
body .fb-step .fo-when__changed { flex: 1 1 100%; margin: 0; }
body .fb-step .fo-when__status { font-size: .88rem; color: var(--fb-orange); }
body .fb-step .fo-when__option {
	flex: 1 1 0;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: .75rem;
	border: 1.5px solid #d9cab2;
	border-radius: 10px;
	font-weight: 600;
	text-align: center;
	cursor: pointer;
}
body .fb-step .fo-when__option[hidden] { display: none; }
body .fb-step .fo-when__option input { position: absolute; opacity: 0; width: 1px; height: 1px; }
body .fb-step .fo-when__option:has(input:checked) { border-color: var(--fb-orange); background: var(--fb-tint); color: var(--fb-orange); }
body .fb-step .fo-when__option:has(input:focus-visible) { outline: 3px solid rgba(193, 72, 36, .35); outline-offset: 2px; }
body .fb-step .fo-when__pickers { display: flex; gap: .5rem; min-width: 0; }
body .fb-step .fo-when__pickers select,
body .fb-step .fo-when__pickers .select2-container { flex: 1; width: auto !important; }
/* Date and time: the form fields' look, with a chevron in place of the browser's own arrow */
body .fb-step .fo-when__pickers select {
	min-width: 0;
	height: auto;
	margin: 0;
	padding: .75rem 2.4rem .75rem 1rem;
	border: 1.5px solid #d9cab2;
	border-radius: 8px;
	background: #fffdf9 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 1.5l5 5 5-5' fill='none' stroke='%23131313' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 1rem center;
	font-family: var(--fb-sans);
	font-size: .95rem;
	line-height: 1.4;
	color: var(--fb-black);
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}
body .fb-step .fo-when__pickers select:focus { border-color: var(--fb-orange); outline: none; }
body .fb-step .fo-when__pickers select:focus-visible { outline: 3px solid rgba(193, 72, 36, .35); outline-offset: 2px; }
/* Phones: side by side, "Today, Oct 16" would be cut off, so date sits above time */
@media (max-width: 480px) {
	body .fb-step .fo-when__pickers { flex-direction: column; }
	body .fb-step .fo-when__pickers select { flex: none; }
}

/* Form fields */
body.fb-checkout .form-row label { font-family: var(--fb-sans); font-size: .82rem; font-weight: 600; color: var(--fb-black); }
body.fb-checkout .form-row input.input-text,
body.fb-checkout .form-row textarea,
body.fb-checkout .select2-container .select2-selection--single {
	border: 1.5px solid #d9cab2;
	border-radius: 8px;
	background: #fffdf9;
	font-family: var(--fb-sans);
	color: var(--fb-black);
}
/* The theme's 21px 26px padding, down to the date and time pickers' size */
body.fb-checkout .form-row input.input-text,
body.fb-checkout .form-row textarea { height: auto; padding: .75rem 1rem; font-size: .95rem; line-height: 1.4; }
body.fb-checkout .select2-container .select2-selection--single { height: auto; }
body.fb-checkout .select2-container .select2-selection--single .select2-selection__rendered { padding: .75rem 2.4rem .75rem 1rem; font-size: .95rem; line-height: 1.4; }
body.fb-checkout .form-row input.input-text:focus,
body.fb-checkout .form-row textarea:focus { border-color: var(--fb-orange); outline: none; }

/* Summary: order table, tip, payment */
body .fb-summary table.shop_table { margin: 0; border: 0; font-family: var(--fb-sans); font-size: .9rem; }
body .fb-summary table.shop_table th,
body .fb-summary table.shop_table td { padding: .45rem 0; border: 0; background: none; color: var(--fb-black); }
body .fb-summary table.shop_table thead { display: none; }
body .fb-summary table.shop_table tfoot tr:first-child th,
body .fb-summary table.shop_table tfoot tr:first-child td { border-top: 1px dashed #d9cab2; padding-top: .8rem; }
body .fb-summary table.shop_table .order-total th,
body .fb-summary table.shop_table .order-total td,
body .fb-summary table.shop_table .order-total .amount { font-family: var(--fb-serif); font-size: 1.3rem; font-weight: 900; }
body .fb-summary .fo-tip { margin: 0; }
body .fb-summary .fo-tip__buttons { display: flex; flex-wrap: nowrap; gap: .35rem; }
body .fb-summary .fo-tip__btn {
	flex: 1 1 0;
	min-width: 0;
	padding: .55rem .2rem;
	border: 1.5px solid #d9cab2;
	border-radius: 8px;
	background: var(--fb-white);
	font-family: var(--fb-sans);
	font-size: .78rem;
	font-weight: 600;
	color: var(--fb-black);
	white-space: nowrap;
}
body .fb-summary .fo-tip__btn.is-active { border-color: var(--fb-orange); background: var(--fb-tint); color: var(--fb-orange); }
body .fb-summary #payment { border-radius: 0; background: none; }
body .fb-summary #payment ul.payment_methods { padding: 0; border: 0; }
body .fb-summary #payment .place-order { padding: 1rem 0 0; }
body .fb-summary #place_order { display: block; width: 100%; padding: 1rem; font-size: 1rem; float: none; }

@media (max-width: 900px) {
	body.fb-checkout form.checkout { grid-template-columns: minmax(0, 1fr); }
	body.fb-checkout form.checkout > .fb-summary { grid-column: 1; grid-row: auto; order: -1; position: static; }
}

/* ---- Cart ------------------------------------------------------------------ */
body.woocommerce-cart .product-thumbnail { display: none; }
body.woocommerce-cart table.shop_table { border: 1px solid var(--fb-line); border-radius: var(--fb-radius); background: var(--fb-white); font-family: var(--fb-sans); }
body.woocommerce-cart table.shop_table th { font-family: var(--fb-sans); font-weight: 700; text-transform: none; letter-spacing: 0; color: var(--fb-black); }
body.woocommerce-cart table.shop_table .product-name a { font-family: var(--fb-serif); font-weight: 900; font-size: 1.1rem; color: var(--fb-black); }
body.woocommerce-cart .cart_totals { padding: 1.3rem 1.4rem; border: 1px solid var(--fb-line); border-radius: var(--fb-radius); background: var(--fb-white); }
body.woocommerce-cart .cart_totals h2 { font-size: 1.3rem; }
body.woocommerce-cart .wc-proceed-to-checkout .checkout-button { display: block; width: 100%; background: var(--fb-orange); border-color: var(--fb-orange); }

/* The theme's uppercase, letter-spaced table text and buttons, and its hard table lines, in WooCommerce areas */
body .woocommerce table.shop_table th,
body .woocommerce table.shop_table td,
body .woocommerce table.shop_table td a,
body .woocommerce .button,
body .woocommerce button.button,
body .woocommerce a.button,
body .woocommerce input.button,
body .woocommerce-cart .cart_totals th,
body .woocommerce-cart .cart_totals td {
	font-family: var(--fb-sans) !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
}
body .woocommerce table.shop_table tr,
body .woocommerce table.shop_table th,
body .woocommerce table.shop_table td,
body .woocommerce table.shop_table tfoot tr,
body .woocommerce .cart_totals table,
body .woocommerce .cart_totals table tr,
body .woocommerce .cart_totals table th,
body .woocommerce .cart_totals table td { border-color: var(--fb-line) !important; }
body .woocommerce .cart_totals table { border: 0; }
body .woocommerce .cart_totals table th,
body .woocommerce .cart_totals table td { border-width: 0 0 1px !important; background: none; }
/* Beats the parent's .qodef-woocommerce-page .woocommerce-checkout h3#order_review_heading { margin: 82px 0 0 }. */
body .woocommerce-checkout .fb-summary h3#order_review_heading { margin-top: 0; padding-top: 0; }
body .fb-summary table.shop_table tfoot tr th,
body .fb-summary table.shop_table tfoot tr td { border-width: 0 !important; }
/* The total is the table's last row; the step below brings its own dashed rule. */
body .fb-summary table.shop_table tr.order-total { border-bottom: 0 !important; }
body .fb-step .fo-when { padding: 0; border: 0; background: none; }
body.woocommerce-cart .coupon .input-text { height: 46px; border: 1.5px solid #d9cab2; border-radius: 8px; background: var(--fb-white); }
body.woocommerce-cart table.shop_table td.product-name,
body.woocommerce-cart table.shop_table td.product-name a { font-family: var(--fb-serif) !important; font-weight: 900; font-size: 1.05rem; color: var(--fb-black); }
body.woocommerce-cart table.shop_table td.product-remove a { color: var(--fb-muted) !important; }
body.woocommerce-cart .qodef-quantity-buttons .qodef-quantity-input { border: 1.5px solid #d9cab2; border-radius: 8px; background: var(--fb-white); }

/* ---- Checkout fixes (final review) ----------------------------------------- */
/* Sticky needs the same overflow: clip as the menu page. */
html body.fb-checkout,
html body.fb-checkout .qodef-wrapper-inner { overflow-x: clip !important; overflow-y: visible !important; }
/* Desktop: the summary never grows taller than the screen, so Place order is always reachable inside it. */
@media (min-width: 901px) {
	body.fb-checkout .fb-summary { max-height: calc(100vh - 120px); overflow-y: auto; overscroll-behavior: contain; }
}
/* Phones and tablets: the order and total first, then steps 1-3, then 4 Tip, 5 Payment and Place order at the end.
 * The summary card and #order_review drop out of the layout so their parts can be placed in that order. */
@media (max-width: 900px) {
	body.fb-checkout form.checkout > .fb-summary,
	body.fb-checkout .fb-summary #order_review { display: contents; }
	body.fb-checkout #order_review_heading,
	body.fb-checkout .woocommerce-checkout-review-order-table { grid-column: 1; }
	body.fb-checkout #order_review_heading {
		order: -2;
		margin: 0 !important;
		padding: 1.3rem 1.4rem 0 !important;
		border: 1px solid var(--fb-line);
		border-bottom: 0;
		border-radius: var(--fb-radius) var(--fb-radius) 0 0;
		background: var(--fb-white);
	}
	body.fb-checkout .woocommerce-checkout-review-order-table {
		order: -1;
		margin-top: -1.5rem !important;
		padding: 0 1.4rem 1rem !important;
		border: 1px solid var(--fb-line) !important;
		border-top: 0 !important;
		border-radius: 0 0 var(--fb-radius) var(--fb-radius) !important;
		background: var(--fb-white) !important;
		border-collapse: separate;
	}
	body.fb-checkout .fb-checkout-main { order: 0; }
	body.fb-checkout .fb-summary .fb-step {
		grid-column: 1;
		order: 1;
		margin: 0;
		padding: 1.3rem 1.4rem;
		border: 1px solid var(--fb-line);
		border-radius: var(--fb-radius);
		background: var(--fb-white);
	}
	body.fb-checkout .fb-summary .fo-tip__buttons { flex-wrap: wrap; }
	body.fb-checkout .fb-summary .fo-tip__btn { flex: 1 1 calc(33.333% - .35rem); padding: .6rem .2rem; font-size: .82rem; }
}

/* ---- Header cart dropdown (DonPeppe) ---------------------------------------- */
/* Opens just under the cart icon, not at the bottom of the header bar, and fades in instead of the parent's
   overflow-hidden reveal, which clipped the card's shadow into a square. */
body .qodef-shopping-cart-holder .qodef-sc-dropdown {
	top: calc(50% + 24px);
	max-height: none;
	overflow: visible;
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity .2s ease, transform .2s ease, visibility 0s linear .2s;
}
.no-touch .qodef-shopping-cart-holder:hover .qodef-sc-dropdown,
body .qodef-shopping-cart-holder:focus-within .qodef-sc-dropdown {
	opacity: 1;
	visibility: visible;
	transform: none;
	pointer-events: auto;
	transition: opacity .2s ease, transform .2s ease, visibility 0s;
}
body .qodef-sc-dropdown .qodef-sc-dropdown-inner {
	border: 1px solid var(--fb-line);
	border-radius: var(--fb-radius);
	background: var(--fb-white);
	box-shadow: 0 12px 30px rgba(19, 19, 19, .12);
	font-family: var(--fb-sans);
}
body .qodef-sc-dropdown .qodef-sc-dropdown-item-image { display: none !important; }
body .qodef-sc-dropdown .qodef-sc-dropdown-item { border-color: var(--fb-line) !important; }
body .qodef-sc-dropdown .qodef-sc-dropdown-item-content { width: 100%; padding-left: 0 !important; }
body .qodef-sc-dropdown .qodef-sc-dropdown-title,
body .qodef-sc-dropdown .qodef-sc-dropdown-item-title,
body .qodef-sc-dropdown .qodef-sc-dropdown-item-title a {
	font-family: var(--fb-serif) !important;
	font-weight: 900;
	font-size: 1rem;
	letter-spacing: 0 !important;
	text-transform: none !important;
	color: var(--fb-black) !important;
}
body .qodef-sc-dropdown .qodef-sc-dropdown-item-price,
body .qodef-sc-dropdown .qodef-sc-dropdown-total,
body .qodef-sc-dropdown .qodef-sc-dropdown-subtotal,
body .qodef-sc-dropdown .qodef-sc-dropdown-subtotal-note {
	font-family: var(--fb-sans) !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	color: var(--fb-black);
}
body .qodef-sc-dropdown .qodef-sc-dropdown-item-price .amount,
body .qodef-sc-dropdown .qodef-sc-dropdown-total-amount .amount { color: var(--fb-orange); font-weight: 700; }
body .qodef-sc-dropdown .qodef-sc-dropdown-total,
body .qodef-sc-dropdown .qodef-sc-dropdown-subtotal { border-color: var(--fb-line) !important; background-image: none !important; }
body .qodef-sc-dropdown .qodef-sc-dropdown-button-holder a,
body .qodef-sc-dropdown a.qodef-btn,
body .qodef-sc-dropdown .qodef-sc-dropdown-button {
	border-radius: 8px;
	font-family: var(--fb-sans) !important;
	font-weight: 700;
	letter-spacing: 0 !important;
	text-transform: none !important;
}
body .qodef-sc-dropdown .qodef-sc-dropdown-checkout,
body .qodef-sc-dropdown a.qodef-sc-dropdown-checkout { background: var(--fb-orange) !important; border-color: var(--fb-orange) !important; color: #fff !important; }
body .qodef-sc-dropdown .qodef-sc-dropdown-cart,
body .qodef-sc-dropdown a.qodef-sc-dropdown-cart { background: var(--fb-black) !important; border-color: var(--fb-black) !important; color: #fff !important; }
body .qodef-sc-dropdown .qodef-sc-dropdown-inner { padding: 1.2rem 1.3rem !important; }
body .qodef-sc-dropdown .qodef-sc-dropdown-title,
body .qodef-sc-dropdown .qodef-sc-dropdown-items,
body .qodef-sc-dropdown .qodef-sc-dropdown-item { border-image: none !important; border-style: dashed !important; border-color: #d9cab2 !important; }

/* ---- Cart page polish --------------------------------------------------------- */
/* Rounded table: border-radius needs separate borders; the theme's dotted header line becomes the site's line. */
body.woocommerce-cart table.shop_table.cart { border-collapse: separate; border-spacing: 0; overflow: hidden; }
body.woocommerce-cart table.shop_table.cart thead th { border-bottom: 1px solid var(--fb-line) !important; border-image: none !important; }
body.woocommerce-cart table.shop_table.cart th:first-child,
body.woocommerce-cart table.shop_table.cart td:first-child { padding-left: 1.4rem !important; }
body.woocommerce-cart table.shop_table.cart th:last-child,
body.woocommerce-cart table.shop_table.cart td:last-child { padding-right: 1.4rem !important; }
/* Coupon and Update cart sit inside the card, not on its edge. */
body.woocommerce-cart table.shop_table.cart td.actions { padding: 1.2rem 1.4rem !important; border-top: 1px solid var(--fb-line) !important; }
body.woocommerce-cart table.shop_table.cart td.actions .coupon { display: inline-flex; gap: .6rem; align-items: center; }
body.woocommerce-cart table.shop_table.cart td.actions .coupon .input-text { width: 13rem; margin: 0; padding: 0 1rem; }
/* WooCommerce buttons in the site's button font (the theme sets 12px / 500). */
body .woocommerce .button,
body .woocommerce button.button,
body .woocommerce a.button,
body .woocommerce input.button {
	padding: .8rem 1.3rem !important;
	font-size: .9rem !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
}
/* Proceed to checkout: a normal-sized button at the right of the totals card, not a stretched bar. */
body.woocommerce-cart .wc-proceed-to-checkout { padding: 1.2rem 0 0; text-align: right; }
body.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
	display: inline-flex !important;
	width: auto !important;
	min-width: 260px;
	justify-content: center;
	text-align: center;
	padding: 1rem 1.8rem !important;
	font-size: 1rem !important;
}
body.woocommerce-cart .cart_totals h2 { margin-top: 0; }
/* Notices: normal line height, and close under the title area on the cart and checkout. */
body .woocommerce .woocommerce-info,
body .woocommerce .woocommerce-message,
body .woocommerce .woocommerce-error {
	padding: 1rem 1.3rem !important;
	font-family: var(--fb-sans);
	font-size: .95rem;
	line-height: 1.5 !important;
}
body.woocommerce-cart .qodef-content .qodef-container-inner,
body.woocommerce-checkout .qodef-content .qodef-container-inner { padding-top: 1rem !important; }
@media (max-width: 767px) {
	body.woocommerce-cart .wc-proceed-to-checkout .checkout-button { display: flex !important; width: 100% !important; min-width: 0; }
	body.woocommerce-cart table.shop_table.cart td.actions .coupon { display: flex; flex-wrap: wrap; }
	body.woocommerce-cart table.shop_table.cart td.actions .coupon .input-text { flex: 1 1 100%; width: auto; }
}
/* The height limit includes the card's padding, so the stuck card never runs off the bottom of the screen. */
body.fb-checkout .fb-summary { box-sizing: border-box; }
/* The theme's gold dotted rule (drawn by each cart row's ::after) and the black frame around the quantity box. */
body.woocommerce-cart table.shop_table.cart tr::after,
body.woocommerce-cart table.shop_table.cart tr::before { display: none !important; }
body.woocommerce-cart table.shop_table.cart tbody tr.cart_item td { border-bottom: 1px solid var(--fb-line) !important; }
body.woocommerce-cart .qodef-quantity-buttons { border: 0 !important; }
body.woocommerce-cart .qodef-quantity-buttons .qodef-quantity-input { height: 44px; padding: 0 26px 0 12px; }
body.woocommerce-cart .woocommerce-cart-form { margin-bottom: 1.2rem; }
/* Phones and tablets: the theme drops the title area's top padding, so page titles touched the header. */
@media (max-width: 1024px) {
	html body .qodef-title-holder { padding: 1.8rem 0 1rem !important; box-sizing: border-box; }
}
