/* Bellbird brand pass (2026-10) — loaded on every page by inc/brand.php.
   Tokens from the Bellbird Bakery Design System (colors_and_type.css).
   Sections: fonts · tokens · type · buttons · header · homepage.
   The redesigned checkout keeps its own scoped tokens (checkout-v2.css). */

/* ---------- fonts ---------------------------------------------------- */
@font-face { font-family: "Myriad Pro"; src: url("../fonts/MyriadPro-Regular.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Myriad Pro"; src: url("../fonts/MyriadPro-It.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "Myriad Pro"; src: url("../fonts/MyriadPro-Semibold.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Myriad Pro"; src: url("../fonts/MyriadPro-Bold.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Myriad Pro"; src: url("../fonts/MyriadPro-BoldIt.woff2") format("woff2"); font-weight: 700; font-style: italic; font-display: swap; }
@font-face { font-family: "Myriad Pro"; src: url("../fonts/MyriadPro-BlackSemiExt.woff2") format("woff2"); font-weight: 900; font-style: normal; font-display: swap; }
@font-face { font-family: "Amaranth"; src: url("../fonts/Amaranth-Regular.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Amaranth"; src: url("../fonts/Amaranth-Bold.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }

/* ---------- tokens --------------------------------------------------- */
:root {
	--bb-brown: #2E1100;
	--bb-cream: #F7F6F0;
	--bb-red: #B12B2A;
	--bb-yellow: #F9CC4F;
	--bb-warm: #EFEADC;
	--bb-line: #E4DED1;
	--bb-ink-soft: #604535;
	--bb-font-body: "Myriad Pro", "Source Sans 3", "Helvetica Neue", Arial, sans-serif;
	--bb-font-display: "Amaranth", "Myriad Pro", sans-serif;
	--bb-radius-card: 14px;
	--bb-shadow-1: 0 1px 2px rgba(46, 17, 0, .06), 0 1px 1px rgba(46, 17, 0, .04);
	--bb-shadow-focus: 0 0 0 3px rgba(249, 204, 79, .55);
	--bb-page-max: 1280px;
	--bb-gutter: 24px;
	--bb-section-y: 80px;
}

/* ---------- buttons -------------------------------------------------- */
/* Pill, sentence case, never all caps. Used directly (.bb-btn) by PHP-rendered
   markup, and as wrapper classes (.bb-eb--*) on Elementor Button widgets. */
.bb-btn,
.bb-eb .elementor-button {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 44px; padding: 0 22px; box-sizing: border-box;
	font-family: var(--bb-font-body); font-weight: 700; font-size: 16px; line-height: 1;
	letter-spacing: .04em; text-transform: none; text-decoration: none;
	border-radius: 999px; border: 1.5px solid transparent;
	transition: background-color .2s, color .2s, border-color .2s;
}
.bb-btn:focus-visible,
.bb-eb .elementor-button:focus-visible { outline: none; box-shadow: var(--bb-shadow-focus); }
.bb-btn--primary, .bb-btn--primary:visited { background: var(--bb-brown); color: var(--bb-cream); }
.bb-btn--primary:hover, .bb-btn--primary:focus { background: #1f0a00; color: var(--bb-cream); }
.bb-btn--secondary, .bb-btn--secondary:visited { background: transparent; color: var(--bb-brown); border-color: var(--bb-brown); }
.bb-btn--secondary:hover, .bb-btn--secondary:focus { background: var(--bb-brown); color: var(--bb-cream); }
.bb-btn--on-dark, .bb-btn--on-dark:visited { background: transparent; color: var(--bb-cream); border-color: var(--bb-cream); }
.bb-btn--on-dark:hover, .bb-btn--on-dark:focus { background: var(--bb-cream); color: var(--bb-brown); }

.elementor-widget.bb-eb .elementor-button { min-height: 48px; padding: 0 26px; font-size: 17px; }
.elementor-widget.bb-eb--accent .elementor-button { background: var(--bb-yellow); color: var(--bb-brown); }
.elementor-widget.bb-eb--accent .elementor-button:hover,
.elementor-widget.bb-eb--accent .elementor-button:focus { background: #f5c134; color: var(--bb-brown); }
.elementor-widget.bb-eb--on-dark .elementor-button { background: transparent; color: var(--bb-cream); border-color: var(--bb-cream); }
.elementor-widget.bb-eb--on-dark .elementor-button:hover,
.elementor-widget.bb-eb--on-dark .elementor-button:focus { background: var(--bb-cream); color: var(--bb-brown); }

/* ---------- header (Astra legacy header, every page) ----------------- */
/* Colours come from Astra settings (scripts/homepage-redesign/site-brand.php);
   this is layout and the details Astra has no setting for. */
.main-header-bar { border-bottom: 1px solid var(--bb-line); }
.main-header-bar .main-header-menu > .menu-item > .menu-link {
	font-family: var(--bb-font-body); font-size: 17px; text-transform: none; letter-spacing: 0;
}
/* The old yellow underline for the current item → bold, like the mockup. */
.main-header-menu .current-menu-item > a,
.main-header-menu .current-menu-ancestor > a,
.main-header-menu .current_page_item > a { border-bottom: 0; font-weight: 700; }
.main-header-menu .sub-menu { background: var(--bb-cream); border-color: var(--bb-line) !important; }
.main-header-menu .sub-menu .menu-link { text-transform: none; }

/* Right-hand items: search, basket, Order online. */
.ast-masthead-custom-menu-items.widget-custom-menu-item,
.ast-masthead-custom-menu-items .ast-header-widget-area { display: flex; align-items: center; }
.ast-header-widget-area .widget { margin: 0; }
.ast-header-widget-area { display: flex; align-items: center; gap: 8px; }
.ast-header-widget-area .ast-search-menu-icon .astra-search-icon,
.ast-header-widget-area .wc-block-mini-cart__button { color: var(--bb-brown); }
.ast-header-widget-area .wc-block-mini-cart__button { min-height: 44px; min-width: 44px; }
.ast-header-widget-area .wc-block-mini-cart__badge { background: var(--bb-red); color: var(--bb-cream); border-color: var(--bb-cream); }
.bb-header-order { margin-left: 8px; white-space: nowrap; }
/* Astra colours every header link brown; keep the pill's cream text. */
.site-header .ast-header-widget-area a.bb-header-order,
.site-header .ast-header-widget-area a.bb-header-order:hover,
.site-header .ast-header-widget-area a.bb-header-order:focus { color: var(--bb-cream); }

/* Phones/tablets (Astra's header breakpoint): logo, basket, menu button. */
.ast-header-break-point .bb-header-order,
.ast-header-break-point .ast-header-widget-area .astra-search-shortcode { display: none; }
.ast-header-break-point .main-header-bar-navigation,
.ast-header-break-point .main-header-menu { background: var(--bb-cream); }
.ast-header-break-point .main-header-menu .menu-link { border-color: var(--bb-line) !important; }

/* ---------- homepage + landing pages (body.bb-landing: pages flagged _bb_landing, inc/shop.php) -- */
:is(.home, .bb-landing) .site-content { background: var(--bb-cream); }
:is(.home, .bb-landing) .e-con.bb-section-head { max-width: 640px; }

/* Hero: photo + brown gradient are Elementor container settings; type here. */
.e-con.bb-hero .bb-hero__title .elementor-heading-title {
	margin: 0; max-width: 760px;
	font-family: var(--bb-font-body); font-weight: 900; font-size: clamp(2.25rem, 5vw, 3.75rem);
	line-height: 1.08; letter-spacing: -.01em; color: var(--bb-cream); text-align: left;
	text-shadow: 0 1px 16px rgba(46, 17, 0, .35);
}
.e-con.bb-hero .bb-hero__lede, .e-con.bb-hero .bb-hero__lede p {
	max-width: 560px; margin: 0; font-family: var(--bb-font-body); font-size: 20px; line-height: 1.4; color: var(--bb-cream);
	text-shadow: 0 1px 10px rgba(46, 17, 0, .45);
}
.e-con.bb-hero .bb-hero__actions { margin-top: 4px; }

/* What's on band ([bb_whats_on]). The shortcode prints nothing when it's off. */
.bb-whats-on { background: var(--bb-red); color: var(--bb-cream); }
.bb-whats-on__inner {
	max-width: var(--bb-page-max); margin: 0 auto; padding: 18px var(--bb-gutter); box-sizing: border-box;
	display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px;
}
.bb-whats-on__text { margin: 0; flex: 1 1 420px; font-size: 18px; line-height: 1.4; text-align: left; }
.bb-whats-on__headline { font-family: var(--bb-font-display); font-weight: 700; font-size: 20px; }
.e-con.bb-whats-on-wrap, .e-con.bb-whats-on-wrap .elementor-widget-shortcode,
.e-con.bb-whats-on-wrap .elementor-shortcode { padding: 0; margin: 0; }

/* Section headings (Our range, Visit us). */
:is(.home, .bb-landing) .bb-h2 .elementor-heading-title {
	margin: 0; font-family: var(--bb-font-body); font-size: 34px; font-weight: 700; line-height: 1.2; color: var(--bb-brown); text-align: left;
}
:is(.home, .bb-landing) .bb-intro, :is(.home, .bb-landing) .bb-intro p { margin: 0; font-family: var(--bb-font-body); font-size: 18px; line-height: 1.45; color: var(--bb-ink-soft); text-align: left; }

/* Our range cards. */
.e-con.bb-card {
	background: var(--bb-cream); border: 1px solid var(--bb-line); border-radius: var(--bb-radius-card);
	box-shadow: var(--bb-shadow-1); overflow: hidden;
}
.e-con.bb-card .bb-card__img img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 0; }
.e-con.bb-card .bb-card__body { flex-grow: 1; }
.e-con.bb-card .bb-card__title .elementor-heading-title {
	margin: 0; font-family: var(--bb-font-display); font-weight: 700; font-size: 24px; line-height: 1.2; color: var(--bb-brown);
}
.e-con.bb-card .bb-card__text { flex-grow: 1; }
.e-con.bb-card .bb-card__text, .e-con.bb-card .bb-card__text p { margin: 0; font-family: var(--bb-font-body); font-size: 16px; line-height: 1.45; color: var(--bb-ink-soft); }
/* Card link: red text + arrow, not a filled button. */
.elementor-widget.bb-card__link .elementor-button {
	min-height: 44px; padding: 0; background: none; border: 0; border-radius: 0; box-shadow: none;
	font-family: var(--bb-font-body); font-weight: 700; font-size: 16px; letter-spacing: 0; text-transform: none; color: var(--bb-red);
}
.elementor-widget.bb-card__link .elementor-button:hover,
.elementor-widget.bb-card__link .elementor-button:focus { background: none; color: #8f2221; text-decoration: underline; text-underline-offset: 3px; }
.elementor-widget.bb-card__link .elementor-button-text::after {
	content: ""; display: inline-block; width: 18px; height: 18px; margin-left: 6px; vertical-align: -3px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Visit us ([bb_visit_us] inside a warm container). */
.e-con.bb-visit { scroll-margin-top: 120px; }
.bb-visit-cards { display: grid; grid-template-columns: 1fr; gap: 24px; }
/* Three across from tablet up — auto-fit left a lone third card on tablets. */
@media (min-width: 768px) { .bb-visit-cards { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 768px) and (max-width: 1024px) { .bb-visit-cards { gap: 16px; } .bb-visit-card { padding: 20px; } }
.bb-visit-card {
	display: flex; flex-direction: column; gap: 14px; padding: 28px;
	background: var(--bb-cream); border: 1px solid var(--bb-line); border-radius: var(--bb-radius-card); box-shadow: var(--bb-shadow-1);
	color: var(--bb-brown); font-family: var(--bb-font-body); font-size: 16px; line-height: 1.45; text-align: left;
}
.bb-visit-card__name { margin: 0; font-family: var(--bb-font-display); font-weight: 700; font-size: 26px; line-height: 1.2; color: var(--bb-brown); }
.bb-visit-card__row { display: flex; gap: 10px; align-items: flex-start; margin: 0; }
.bb-visit-card__row svg { flex-shrink: 0; margin-top: 1px; }
.bb-visit-card__hours { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.bb-visit-card__directions { margin-top: auto; align-self: flex-start; }
:is(.home, .bb-landing) .bb-visit-phone, :is(.home, .bb-landing) .bb-visit-phone p { margin: 0; font-family: var(--bb-font-body); font-size: 16px; color: var(--bb-brown); text-align: left; }
:is(.home, .bb-landing) .bb-visit-phone a { color: var(--bb-brown); font-weight: 700; }

/* ---------- shop + category pages (template #337) -------------------- */
/* Template structure is scripts/shop-fixes/shop-fixes.php; markup from
   inc/shop.php and mu-plugins/bb-ordering-rules.php. */
:is(.elementor-337, .bb-landing) .bb-shop-title .elementor-heading-title {
	margin: 0; font-family: var(--bb-font-body); font-weight: 700; font-size: clamp(2rem, 4vw, 2.75rem);
	line-height: 1.12; color: var(--bb-brown); text-align: left;
}
:is(.elementor-337, .bb-landing) .bb-shop-desc, :is(.elementor-337, .bb-landing) .bb-shop-desc p {
	max-width: 760px; margin: 0; font-family: var(--bb-font-body); font-size: 17px; line-height: 1.5; color: var(--bb-ink-soft); text-align: left;
}
:is(.elementor-337, .bb-landing) .bb-shop-desc:empty, :is(.elementor-337, .bb-landing) .bb-shop-desc .elementor-widget-container:empty { display: none; }

/* Ordering rules box (shop, cart, checkout). */
.bb-order-info {
	max-width: 760px; box-sizing: border-box; padding: 16px 20px; margin: 0;
	background: var(--bb-warm); border: 1px solid var(--bb-line); border-left: 4px solid var(--bb-red); border-radius: 10px;
	font-family: var(--bb-font-body); font-size: 16px; line-height: 1.45; color: var(--bb-brown); text-align: left;
}
.bb-order-info__title { margin: 0 0 6px; font-weight: 700; font-size: 18px; }
.bb-order-info__list { margin: 0; padding: 0 0 0 1.2em; }
.bb-order-info__list li { margin: 0 0 4px; }
.bb-order-info__more { margin: 6px 0 0; }
.bb-order-info a { color: var(--bb-red); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.woocommerce-cart .bb-order-info { margin: 0 0 24px; }
.bb-checkout-v2 .bb-order-info--checkout { margin: 0 0 14px; padding: 12px 16px; font-size: 15px; }

/* Category pills. */
.bb-shop-nav ul { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.bb-shop-nav li { margin: 0; }
.bb-shop-nav__link, .bb-shop-nav__link:visited {
	display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; box-sizing: border-box;
	border: 1.5px solid var(--bb-brown); border-radius: 999px; background: transparent; color: var(--bb-brown);
	font-family: var(--bb-font-body); font-weight: 700; font-size: 16px; text-decoration: none; white-space: nowrap;
}
.bb-shop-nav__link:hover, .bb-shop-nav__link:focus { background: var(--bb-warm); color: var(--bb-brown); }
.bb-shop-nav__link:focus-visible { outline: none; box-shadow: var(--bb-shadow-focus); }
.bb-shop-nav__link[aria-current="page"] { background: var(--bb-brown); color: var(--bb-cream); }
@media (max-width: 767px) { .bb-shop-nav ul { gap: 8px; } .bb-shop-nav__link { padding: 0 14px; font-size: 15px; } }

/* Grouped /shop/ sections. */
.bb-shop-section { margin: 0 0 56px; scroll-margin-top: 120px; }
.bb-shop-section:last-child { margin-bottom: 0; }
/* Cream page, as on the homepage. */
.post-type-archive-product .site-content, .tax-product_cat .site-content, .tax-product_tag .site-content { background: var(--bb-cream); }
.bb-shop-section__title { margin: 0 0 20px; font-family: var(--bb-font-body); font-size: 30px; font-weight: 700; line-height: 1.2; color: var(--bb-brown); text-align: left; }

/* Product cards — both the category grid widget and the /shop/ sections. */
:is(.elementor-337, .bb-landing) ul.products {
	display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin: 0; padding: 0;
}
:is(.elementor-337, .bb-landing) ul.products::before, :is(.elementor-337, .bb-landing) ul.products::after { display: none !important; }
@media (max-width: 1024px) { :is(.elementor-337, .bb-landing) ul.products { gap: 16px; } }
@media (max-width: 767px) { :is(.elementor-337, .bb-landing) ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } }
:is(.elementor-337, .bb-landing) ul.products li.product {
	display: flex !important; flex-direction: column !important; width: auto !important; float: none !important; margin: 0 !important; padding: 0 !important;
	background: var(--bb-cream); border: 1px solid var(--bb-line); border-radius: var(--bb-radius-card); box-shadow: var(--bb-shadow-1);
	overflow: hidden; text-align: left;
}
:is(.elementor-337, .bb-landing) ul.products li.product .astra-shop-thumbnail-wrap { margin: 0 !important; }
:is(.elementor-337, .bb-landing) ul.products li.product .astra-shop-thumbnail-wrap img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; margin: 0 !important; }
:is(.elementor-337, .bb-landing) ul.products li.product .ast-quick-view-text { display: none !important; }
:is(.elementor-337, .bb-landing) ul.products li.product .astra-shop-summary-wrap {
	display: flex; flex-direction: column; align-items: stretch; gap: 6px; flex-grow: 1;
	padding: 14px 16px 16px !important; margin: 0 !important; text-align: left;
}
:is(.elementor-337, .bb-landing) ul.products li.product .woocommerce-loop-product__title {
	margin: 0 !important; padding: 0 !important; font-family: var(--bb-font-display) !important; font-weight: 700; font-size: 20px !important;
	line-height: 1.2; color: var(--bb-brown) !important;
}
:is(.elementor-337, .bb-landing) ul.products li.product .price {
	margin: 0 0 6px !important; font-family: var(--bb-font-body); font-weight: 700; font-size: 17px !important; color: var(--bb-brown) !important;
}
:is(.elementor-337, .bb-landing) ul.products li.product .astra-shop-summary-wrap > a.button {
	display: inline-flex; align-items: center; justify-content: center; margin: auto 0 0 !important; min-height: 44px; /* bottom of the card, so a row's buttons line up */ padding: 0 16px !important;
	box-sizing: border-box; width: 100%; border: 1.5px solid var(--bb-brown); border-radius: 999px;
	background: var(--bb-brown) !important; color: var(--bb-cream) !important;
	font-family: var(--bb-font-body); font-weight: 700; font-size: 16px !important; line-height: 1.1; letter-spacing: .02em; text-transform: none;
	opacity: 1 !important; position: static; text-align: center;
}
:is(.elementor-337, .bb-landing) ul.products li.product .astra-shop-summary-wrap > a.button:hover,
:is(.elementor-337, .bb-landing) ul.products li.product .astra-shop-summary-wrap > a.button:focus { background: #1f0a00 !important; }
:is(.elementor-337, .bb-landing) ul.products li.product .astra-shop-summary-wrap > a.button:focus-visible { outline: none; box-shadow: var(--bb-shadow-focus); }
/* "Choose options" / "View product" are links to the product page, not adds: outline them. */
:is(.elementor-337, .bb-landing) ul.products li.product .astra-shop-summary-wrap > a.button:not(.ajax_add_to_cart) { background: transparent !important; color: var(--bb-brown) !important; }
:is(.elementor-337, .bb-landing) ul.products li.product .astra-shop-summary-wrap > a.button:not(.ajax_add_to_cart):hover,
:is(.elementor-337, .bb-landing) ul.products li.product .astra-shop-summary-wrap > a.button:not(.ajax_add_to_cart):focus { background: var(--bb-brown) !important; color: var(--bb-cream) !important; }
:is(.elementor-337, .bb-landing) ul.products li.product .astra-shop-summary-wrap > a.button.loading { opacity: .6 !important; }
:is(.elementor-337, .bb-landing) ul.products li.product .astra-shop-summary-wrap > a.button::after { display: none !important; }
:is(.elementor-337, .bb-landing) ul.products li.product a.added_to_cart {
	display: block; margin: 4px 0 0; padding: 0; font-weight: 700; font-size: 15px; color: var(--bb-red); text-align: center; text-decoration: underline;
}
/* Quick add: a variable product's option toggle, above its Add to cart (inc/shop.php). */
:is(.elementor-337, .bb-landing) .bb-quick-add { display: flex; gap: 6px; min-width: 0; margin: auto 0 0; padding: 0; border: 0; }
:is(.elementor-337, .bb-landing) ul.products li.product .astra-shop-summary-wrap > .bb-quick-add + a.button { margin-top: 8px !important; }
.bb-quick-add__opt { position: relative; flex: 1 1 0; min-width: 0; margin: 0; cursor: pointer; }
.bb-quick-add__opt input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.bb-quick-add__opt span {
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: 48px; padding: 4px 6px; box-sizing: border-box;
	border: 1.5px solid var(--bb-line); border-radius: 10px; background: transparent;
	font-family: var(--bb-font-body); font-size: 15px; line-height: 1.15; color: var(--bb-ink-soft); text-align: center;
}
.bb-quick-add__opt b { font-weight: 700; color: var(--bb-brown); }
.bb-quick-add__opt:hover span { border-color: var(--bb-ink-soft); }
.bb-quick-add__opt input:checked + span { border-color: var(--bb-brown); background: var(--bb-warm); color: var(--bb-brown); box-shadow: inset 0 0 0 1px var(--bb-brown); }
.bb-quick-add__opt input:focus-visible + span { box-shadow: inset 0 0 0 1px var(--bb-brown), var(--bb-shadow-focus); }
@media (max-width: 767px) {
	:is(.elementor-337, .bb-landing) .bb-quick-add { gap: 4px; }
	.bb-quick-add__opt span { padding: 4px 3px; font-size: 13px; }
	:is(.elementor-337, .bb-landing) ul.products li.product .astra-shop-summary-wrap { padding: 10px 10px 12px !important; }
	:is(.elementor-337, .bb-landing) ul.products li.product .woocommerce-loop-product__title { font-size: 17px !important; }
	:is(.elementor-337, .bb-landing) ul.products li.product .astra-shop-summary-wrap > a.button { padding: 0 8px !important; font-size: 15px !important; letter-spacing: 0; }
}

/* "In shops only" — grid label and product-page note. */
.bb-in-shops {
	display: inline-flex; align-items: center; align-self: flex-start; margin-top: auto; min-height: 32px; padding: 0 12px;
	border-radius: 999px; background: var(--bb-warm); border: 1px solid var(--bb-line);
	font-family: var(--bb-font-body); font-weight: 700; font-size: 14px; color: var(--bb-ink-soft);
}
.bb-in-shops-note { margin: 8px 0 16px; color: var(--bb-brown); font-size: 16px; line-height: 2; }
.bb-in-shops-note .bb-in-shops { display: inline-flex; margin: 0 10px 0 0; vertical-align: middle; line-height: 1; }
.bb-in-shops-note a { color: var(--bb-red); font-weight: 700; }

/* Product details modal on the grids (inc/shop.php, assets/product-modal.js). */
html.bb-pd-open { overflow: hidden; }
/* Desktop: the photo is the hero — a square as tall as the screen allows (up
   to 680px, against the grid card's ~400px) — and the text column beside it
   scrolls on its own, the buy control pinned to its foot. */
.bb-pd {
	--pd-img: min(680px, calc(100vh - 48px), calc((100vw - 48px) * .6));
	width: min(calc(var(--pd-img) + 420px), calc(100vw - 48px)); max-width: none; max-height: calc(100vh - 48px); margin: auto; padding: 0;
	border: 0; border-radius: var(--bb-radius-card); background: var(--bb-cream); color: var(--bb-brown);
	box-shadow: 0 20px 60px rgba(46, 17, 0, .3); overflow: hidden;
}
.bb-pd::backdrop { background: rgba(46, 17, 0, .55); }
.bb-pd__inner { display: grid; grid-template-columns: var(--pd-img) minmax(0, 1fr); height: var(--pd-img); }
.bb-pd__media { background: var(--bb-warm); }
.bb-pd__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.bb-pd__media img[hidden] { display: none; }
.bb-pd__body {
	display: flex; flex-direction: column; gap: 12px; min-height: 0; padding: 32px 28px 0; overflow-y: auto; overscroll-behavior: contain;
	font-family: var(--bb-font-body); font-size: 16px; line-height: 1.5;
}
.bb-pd__title { margin: 0; padding-right: 36px; font-family: var(--bb-font-display); font-weight: 700; font-size: 30px; line-height: 1.15; color: var(--bb-brown); }
.bb-pd__price { margin: 0; font-weight: 700; font-size: 19px; }
.bb-pd__price .screen-reader-text { position: absolute; }
.bb-pd__desc p { margin: 0 0 .7em; }
.bb-pd__desc p:last-child { margin-bottom: 0; }
.bb-pd__facts { margin: 0; padding: 14px 0 0; border-top: 1px solid var(--bb-line); font-size: 15px; }
.bb-pd__facts dt { margin: 0; font-weight: 700; }
.bb-pd__facts dd { margin: 0 0 10px; color: var(--bb-ink-soft); }
.bb-pd__facts dd:last-child { margin-bottom: 0; }
.bb-pd__buy { position: sticky; bottom: 0; display: flex; flex-direction: column; gap: 8px; margin: auto -28px 0; padding: 12px 28px 20px; background: var(--bb-cream); border-top: 1px solid var(--bb-line); }
.bb-pd__buy:empty { display: none; }
.bb-pd__buy .bb-quick-add { display: flex; gap: 6px; margin: 0; padding: 0; border: 0; }
.bb-pd__buy a.button {
	display: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: 48px; margin: 0; padding: 0 20px; box-sizing: border-box;
	border: 1.5px solid var(--bb-brown); border-radius: 999px; background: var(--bb-brown); color: var(--bb-cream);
	font-family: var(--bb-font-body); font-weight: 700; font-size: 17px; line-height: 1.1; letter-spacing: .02em; text-transform: none; text-decoration: none;
}
.bb-pd__buy a.button:hover, .bb-pd__buy a.button:focus { background: #1f0a00; color: var(--bb-cream); }
.bb-pd__buy a.button:focus-visible { outline: none; box-shadow: var(--bb-shadow-focus); }
.bb-pd__buy a.button:not(.ajax_add_to_cart) { background: transparent; color: var(--bb-brown); }
.bb-pd__buy a.button.loading { opacity: .6; }
.bb-pd__buy a.button::after { display: none; }
.bb-pd__buy a.added_to_cart { display: block !important; font-weight: 700; color: var(--bb-red); text-align: center; text-decoration: underline; }
.bb-pd__buy .bb-in-shops { margin: 0; }
.bb-pd__more { align-self: flex-start; font-size: 15px; color: var(--bb-ink-soft); text-decoration: underline; }
.bb-pd__close {
	position: absolute; top: 12px; right: 12px; z-index: 1; display: flex; align-items: center; justify-content: center;
	width: 44px; height: 44px; padding: 0; border: 0; border-radius: 999px; background: var(--bb-cream); color: var(--bb-brown);
	box-shadow: var(--bb-shadow-1); font-size: 28px; line-height: 1; cursor: pointer;
}
.bb-pd__close:hover, .bb-pd__close:focus { background: var(--bb-warm); color: var(--bb-brown); }
.bb-pd__close:focus-visible { outline: none; box-shadow: var(--bb-shadow-focus); }
/* Phones and small tablets: a bottom sheet that scrolls as one, the buy
   control pinned to its foot. */
@media (max-width: 860px) {
	.bb-pd { width: 100vw; max-height: 92vh; margin: auto 0 0; border-radius: var(--bb-radius-card) var(--bb-radius-card) 0 0; }
	.bb-pd__inner { display: block; height: auto; max-height: 92vh; overflow-y: auto; overscroll-behavior: contain; }
	.bb-pd__media img { height: auto; aspect-ratio: 1; max-height: 50vh; }
	.bb-pd__body { padding: 20px 16px 0; overflow: visible; }
	.bb-pd__title { font-size: 25px; padding-right: 0; }
	.bb-pd__buy { margin: 4px -16px 0; padding: 12px 16px; }
}

/* Product page — Elementor template #291 (CSS only; its widget styles still
   carry the old red, so these override with !important). */
.single-product .site-content { background: var(--bb-cream); }
.elementor-291 .product_title { font-weight: 700 !important; font-size: 38px !important; line-height: 1.15 !important; color: var(--bb-brown) !important; }
.elementor-291 .woocommerce-breadcrumb { font-size: 15px !important; color: var(--bb-ink-soft) !important; }
.elementor-291 .woocommerce-breadcrumb a { color: var(--bb-ink-soft) !important; text-decoration: underline; text-decoration-color: var(--bb-line); text-underline-offset: 3px; }
.elementor-291 .woocommerce-product-details__short-description { color: var(--bb-brown) !important; font-size: 17px; }
.elementor-291 .woocommerce-product-details__short-description a { color: var(--bb-red); }
.elementor-291 p.price, .elementor-291 .woocommerce-variation-price .price { font-family: var(--bb-font-body) !important; font-weight: 700 !important; color: var(--bb-brown) !important; }
.elementor-291 form.cart table.variations label { font-weight: 700; color: var(--bb-brown) !important; }
.woocommerce .elementor-291 form.cart table.variations td.value select,
.woocommerce .elementor-291 form.cart table.variations td.value:before { min-height: 48px; border: 1.5px solid var(--bb-line) !important; border-radius: 10px !important; background-color: #fff !important; color: var(--bb-brown) !important; font-family: var(--bb-font-body); font-size: 16px; }
.elementor-291 form.cart .quantity .qty { min-height: 48px; width: 4.5em; border: 1.5px solid var(--bb-line) !important; border-radius: 999px !important; color: var(--bb-brown); background: #fff; font-size: 16px; }
.elementor-291 form.cart .single_add_to_cart_button {
	min-height: 48px; padding: 0 28px !important; border: 1.5px solid var(--bb-brown) !important; border-radius: 999px !important;
	background: var(--bb-brown) !important; color: var(--bb-cream) !important;
	font-family: var(--bb-font-body) !important; font-weight: 700 !important; font-size: 17px !important; letter-spacing: .02em !important; text-transform: none !important;
}
.elementor-291 form.cart .single_add_to_cart_button:hover, .elementor-291 form.cart .single_add_to_cart_button:focus { background: #1f0a00 !important; }
.elementor-291 form.cart .single_add_to_cart_button:focus-visible { outline: none; box-shadow: var(--bb-shadow-focus); }
.elementor-291 form.cart .single_add_to_cart_button.disabled { opacity: .45 !important; }
.elementor-291 a.reset_variations { color: var(--bb-ink-soft); }
/* Ingredients / Allergens: stacked label + text, no box. Weight is always "N/A" here. */
.elementor-291 table.shop_attributes { border: 0 !important; color: var(--bb-brown) !important; }
.elementor-291 table.shop_attributes tr.woocommerce-product-attributes-item--weight,
.elementor-291 table.shop_attributes tr.woocommerce-product-attributes-item--dimensions { display: none; }
.elementor-291 table.shop_attributes tr { display: block; padding: 14px 0; border-top: 1px solid var(--bb-line); background: transparent !important; }
.elementor-291 table.shop_attributes th, .elementor-291 table.shop_attributes td { display: block; width: auto; padding: 0 !important; border: 0 !important; background: transparent !important; text-align: left; }
.elementor-291 table.shop_attributes th { font-weight: 700; font-size: 16px; }
.elementor-291 table.shop_attributes td p { margin: 0; padding: 0; font-style: normal; color: var(--bb-ink-soft); font-size: 16px; line-height: 1.5; }
/* "You might also like" */
.elementor-291 .elementor-element-99283eb .elementor-heading-title { font-family: var(--bb-font-body) !important; font-weight: 700 !important; font-size: 26px !important; color: var(--bb-brown) !important; }
.elementor-291 .elementor-widget-loop-grid .elementor-heading-title { font-family: var(--bb-font-display) !important; font-size: 19px !important; line-height: 1.2 !important; color: var(--bb-brown) !important; }
.elementor-291 .elementor-widget-loop-grid .price { color: var(--bb-brown) !important; }
@media (max-width: 767px) { .elementor-291 .product_title { font-size: 30px !important; } }

/* Category-page pagination (rare at 48 per page). */
:is(.elementor-337, .bb-landing) nav.woocommerce-pagination { margin: 24px 0 0; text-align: left; }
:is(.elementor-337, .bb-landing) nav.woocommerce-pagination ul { display: inline-flex; flex-wrap: wrap; gap: 6px; border: 0 !important; }
:is(.elementor-337, .bb-landing) nav.woocommerce-pagination ul li { border: 0 !important; }
:is(.elementor-337, .bb-landing) nav.woocommerce-pagination ul li .page-numbers {
	display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; padding: 0 12px; box-sizing: border-box;
	border: 1.5px solid var(--bb-brown); border-radius: 999px; color: var(--bb-brown); background: transparent;
}
:is(.elementor-337, .bb-landing) nav.woocommerce-pagination ul li .page-numbers.current { background: var(--bb-brown); color: var(--bb-cream); }

/* ---------- landing pages (body.bb-landing, e.g. the Christmas page) ---- */
/* The product grid shortcode [bb_product_grid] reuses the shop card styles
   above (scoped :is(.elementor-337, .bb-landing)); this is only what's extra. */
.bb-landing .bb-product-grid { width: 100%; }
/* FAQ: question + answer pairs in one warm card, no accordion script. */
.e-con.bb-faq { background: #fff; border: 1px solid var(--bb-line); border-radius: var(--bb-radius-card); box-shadow: var(--bb-shadow-1); }
.e-con.bb-faq .bb-faq__q .elementor-heading-title { margin: 0; font-family: var(--bb-font-body); font-weight: 700; font-size: 20px; line-height: 1.3; color: var(--bb-brown); text-align: left; }
.e-con.bb-faq .bb-faq__a, .e-con.bb-faq .bb-faq__a p { margin: 0; font-family: var(--bb-font-body); font-size: 16px; line-height: 1.5; color: var(--bb-ink-soft); text-align: left; }
.e-con.bb-faq .bb-faq__a p + p { margin-top: 8px; }
.e-con.bb-faq .bb-faq__a a { color: var(--bb-red); font-weight: 700; }
.e-con.bb-faq .e-con.bb-faq__item + .e-con.bb-faq__item { border-top: 1px solid var(--bb-line); }
/* Closing call to action: brown band, cream type. */
.e-con.bb-cta .bb-h2 .elementor-heading-title, .e-con.bb-cta .bb-intro, .e-con.bb-cta .bb-intro p { color: var(--bb-cream); }
