/*
Theme Name: GeneratePress Child - Bumble Bee Botanicals
Theme URI: https://bumblebeesd.com
Description: Child theme for Bumble Bee Botanicals built on GeneratePress.
Author: Tribe
Author URI: https://madebytribe.com
Template: generatepress
Version: 0.2.0
Text Domain: generatepress-child
*/

/* ---------- Typography ----------
   GP free's customizer keeps a "System Stack" default and doesn't write our
   selected fonts into its dynamic CSS when settings are saved outside the
   customizer UI. Force the brand fonts here so they actually render. */
body,
button,
input,
select,
textarea,
.entry-content,
.entry-content p,
.wp-block-paragraph {
	font-family: 'Nunito Sans', -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
}

h1, h2, h3, h4, h5, h6,
.entry-title,
.site-title,
.woocommerce-products-header__title,
.product_title,
.bbb-shop-hero__title {
	font-family: 'Jost', -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
	text-transform: uppercase;
	letter-spacing: 0.01em;
}

.main-navigation a,
.main-navigation .menu-item a {
	font-family: 'Jost', -apple-system, system-ui, BlinkMacSystemFont, sans-serif;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.wp-block-button__link,
.button {
	font-family: 'Nunito Sans', -apple-system, system-ui, BlinkMacSystemFont, sans-serif;
}

/* ---------- Body background ---------- */
html,
body,
body.wp-singular,
#page,
.site,
.site-content,
.inside-article,
.entry-content,
.woocommerce-page .site-content,
.woocommerce.archive .site-content {
	background: #ffffff;
}

/* Suppress horizontal scroll site-wide. Full-bleed heroes and slide-out
   mobile menu can briefly push content past the viewport edge. */
html,
body {
	overflow-x: hidden;
}

/* ---------- Header & logo ---------- */
.bbb-header {
	background: #ffffff;
	border-bottom: 1px solid #ececec;
	position: relative;
}
.bbb-header__inner {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 32px;
	max-width: 1280px;
	margin: 0 auto;
	padding: 14px 32px;
}
.bbb-header__nav {
	display: flex;
	align-items: center;
}
.bbb-header__nav--left {
	justify-self: start;
}
.bbb-header__nav--right {
	justify-self: end;
	gap: 8px;
}
.bbb-menu {
	display: flex;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.bbb-menu__item a {
	font-family: 'Jost', sans-serif;
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #1d1d1d;
	padding: 10px 14px;
	display: inline-block;
	text-decoration: none;
	transition: color 0.15s ease;
}
.bbb-menu__item a:hover {
	color: #db995a;
}
.bbb-menu__item.is-current a {
	color: #db995a;
}

.bbb-header__logo {
	justify-self: center;
	display: inline-flex;
	align-items: center;
}
.bbb-header__logo img {
	display: block;
	height: 80px;
	width: auto;
}

/* Cart + search icons */
.bbb-header__icon {
	background: transparent;
	border: 0;
	color: #1d1d1d;
	font-size: 18px;
	width: 40px;
	height: 40px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	position: relative;
	text-decoration: none;
	transition: color 0.15s ease;
}
.bbb-header__icon:hover { color: #db995a; }

.bbb-header__cart-count {
	position: absolute;
	top: 4px;
	right: 2px;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	background: #db995a;
	color: #ffffff;
	font-size: 11px;
	font-weight: 700;
	font-family: 'Jost', sans-serif;
	border-radius: 999px;
	display: none;
	align-items: center;
	justify-content: center;
	line-height: 1;
}
.bbb-header__cart-count.is-active { display: inline-flex; }

/* Search panel (toggled by icon) */
.bbb-header__search {
	border-top: 1px solid #ececec;
	background: #ffffff;
	padding: 16px 32px;
}
.bbb-header__search[hidden] { display: none; }
.bbb-header__search-form {
	display: flex;
	max-width: 720px;
	margin: 0 auto;
	gap: 8px;
}
.bbb-header__search-form input[type="search"] {
	flex: 1;
	padding: 12px 16px;
	border: 1px solid #dddddd;
	border-radius: 4px;
	font-size: 16px;
	font-family: 'Nunito Sans', sans-serif;
}
.bbb-header__search-form input[type="search"]:focus {
	outline: none;
	border-color: #db995a;
}
.bbb-header__search-form button {
	background: #1d1d1d;
	color: #ffffff;
	border: 0;
	padding: 0 20px;
	border-radius: 4px;
	cursor: pointer;
}
.bbb-header__search-form button:hover { background: #db995a; }

/* Hide GP defaults that we replaced */
.site-branding .site-title,
.site-branding .site-description { display: none !important; }

/* ---------- Mobile header ---------- */
.bbb-header__hamburger {
	display: none;
	background: transparent;
	border: 0;
	color: #1d1d1d;
	font-size: 22px;
	width: 40px;
	height: 40px;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	padding: 0;
}
.bbb-header__hamburger:hover { color: #db995a; }

/* Mobile slide-out menu */
.bbb-mobile-menu {
	position: fixed;
	top: 0;
	left: 0;
	width: min(85vw, 360px);
	height: 100vh;
	background: #ffffff;
	z-index: 9999;
	overflow-y: auto;
	transform: translateX(-100%);
	transition: transform 0.25s ease;
	padding: 0;
	box-shadow: 4px 0 16px rgba(0, 0, 0, 0.08);
}
.bbb-mobile-menu.is-open { transform: translateX(0); }
.bbb-mobile-menu[hidden] { display: block; visibility: hidden; }
.bbb-mobile-menu.is-open[hidden] { display: block; visibility: visible; }
.bbb-mobile-menu__overlay {
	position: fixed;
	inset: 0;
	background: rgba(29, 29, 29, 0.55);
	z-index: 9998;
	opacity: 0;
	transition: opacity 0.25s ease;
}
.bbb-mobile-menu__overlay.is-open { opacity: 1; }
body.bbb-menu-open { overflow: hidden; }

.bbb-mobile-menu__head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 16px 20px;
	border-bottom: 1px solid #ececec;
}
.bbb-mobile-menu__brand img {
	height: 48px;
	width: auto;
	display: block;
}
.bbb-mobile-menu__close {
	background: transparent;
	border: 0;
	font-size: 22px;
	color: #1d1d1d;
	width: 36px;
	height: 36px;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.bbb-mobile-menu__search {
	display: flex;
	gap: 8px;
	padding: 16px 20px;
	border-bottom: 1px solid #ececec;
}
.bbb-mobile-menu__search input[type="search"] {
	flex: 1;
	padding: 10px 12px;
	border: 1px solid #dddddd;
	border-radius: 0;
	font-size: 15px;
	font-family: 'Nunito Sans', sans-serif;
}
.bbb-mobile-menu__search input[type="search"]:focus {
	outline: none;
	border-color: #db995a;
}
.bbb-mobile-menu__search button {
	background: #1d1d1d;
	color: #ffffff;
	border: 0;
	padding: 0 16px;
	cursor: pointer;
}
.bbb-mobile-menu__nav {
	list-style: none;
	margin: 0;
	padding: 8px 0;
}
.bbb-mobile-menu__item a {
	display: block;
	padding: 16px 20px;
	font-family: 'Jost', sans-serif;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #1d1d1d;
	text-decoration: none;
	border-bottom: 1px solid #f6f6f6;
}
.bbb-mobile-menu__item a:hover { color: #db995a; }
.bbb-mobile-menu__item.is-current a { color: #db995a; }

/* Header responsive: collapse to hamburger | logo | cart */
@media (max-width: 900px) {
	.bbb-header__hamburger { display: inline-flex; }
	.bbb-header__inner {
		grid-template-columns: auto 1fr auto;
		gap: 12px;
		padding: 10px 16px;
	}
	.bbb-header__nav--left { display: none; }
	.bbb-header__nav--right .bbb-menu { display: none; }
	.bbb-header__nav--right { gap: 0; }
	.bbb-header__logo img { height: 56px; }
}
@media (max-width: 480px) {
	.bbb-header__logo img { height: 48px; }
	.bbb-header__hamburger,
	.bbb-header__icon { width: 36px; height: 36px; font-size: 18px; }
}

/* ---------- Cover image hero ---------- */
.wp-block-cover.alignfull img.wp-block-cover__image-background {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 0;
}
.wp-block-cover .wp-block-cover__inner-container {
	position: relative;
	z-index: 2;
}

/* Shop hero (full-width, hooked into generate_after_header so it sits
   directly under the header and outside any constrained container). */
.bbb-shop-hero {
	background-size: cover;
	background-position: center;
	color: #ffffff;
	padding: 110px 24px;
	text-align: center;
	box-sizing: border-box;
	margin: 0 0 40px;
	width: 100%;
}

/* Kill top padding on shop archive AND single product so content hugs the
   header without an awkward gap. */
body.woocommerce-shop .site-content,
body.tax-product_cat .site-content,
body.tax-product_tag .site-content,
body.single-product .site-content {
	padding-top: 0;
}
body.woocommerce-shop .site-content .inside-article,
body.tax-product_cat .site-content .inside-article,
body.tax-product_tag .site-content .inside-article {
	padding-top: 32px;
}
body.single-product .inside-article {
	padding-top: 0;
}
body.single-product div.product {
	margin-top: 32px;
}
.bbb-shop-hero__inner {
	max-width: 720px;
	margin: 0 auto;
}
.bbb-shop-hero__title {
	font-family: 'Jost', sans-serif;
	font-size: 52px;
	font-weight: 700;
	margin: 0 0 12px;
	letter-spacing: -0.01em;
	color: #ffffff;
	line-height: 1.05;
}
.bbb-shop-hero__sub {
	font-size: 17px;
	line-height: 1.5;
	margin: 0;
	color: #ffffff;
}
@media (max-width: 768px) {
	.bbb-shop-hero { padding: 70px 20px; }
	.bbb-shop-hero__title { font-size: 36px; }
}

/* Primary menu - give it presence */
.main-navigation {
	background: #ffffff;
}
.main-navigation .main-nav ul li a {
	font-size: 13px;
	letter-spacing: 0.06em;
	padding: 18px 18px;
}

/* ---------- Full-bleed cover/group blocks ---------- */
.entry-content > .alignfull,
.page-content > .alignfull {
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	max-width: 100vw;
	width: 100vw;
}
.entry-content > .alignfull > .wp-block-group__inner-container,
.entry-content > .alignfull .wp-block-cover__inner-container {
	padding-left: 24px;
	padding-right: 24px;
}

/* Strip the default page-title region on full-width pages so hero hugs header */
.page.generate-full-width-content .entry-header,
.page-template-default .generate-full-width-content + * .entry-header {
	display: none;
}
.generate-full-width-content .entry-content {
	margin-top: 0;
}
.generate-full-width-content .inside-article > .entry-header { display: none; }

/* Tighten the "container" wrapper so full-width pages have no padding gap */
body.page-template-default.generate-full-width-content #primary,
body.generate-full-width-content #primary,
body.generate-full-width-content .site-content {
	padding: 0;
}

/* ---------- Hero text legibility ---------- */
.wp-block-cover h1,
.wp-block-cover h2 {
	letter-spacing: -0.01em;
}

/* ---------- Unified buttons ----------
   One set of rules for every button across the site.
   - Shape (font, padding, radius, transform) is forced via !important so
     inline block styles can't break visual consistency.
   - Colors are NOT forced, so per-block inline styles still win. The default
     (no inline style) is primary: #db995a bg + #000 text. */
.wp-block-button__link,
.button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
button[type="submit"],
input[type="submit"],
input[type="button"],
.fluentform .ff-btn-submit {
	display: inline-block;
	font-family: 'Jost', -apple-system, system-ui, sans-serif !important;
	font-weight: 700 !important;
	font-size: 14px !important;
	letter-spacing: 0.05em !important;
	text-transform: uppercase !important;
	padding: 16px 32px !important;
	border: 0 !important;
	border-radius: 0 !important;
	line-height: 1.2 !important;
	cursor: pointer;
	text-decoration: none;
	transition: background-color 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

/* Default (primary) colors - applied only if the markup didn't set its own. */
.wp-block-button__link,
.button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
button[type="submit"]:not(.bbb-header__search-form button),
input[type="submit"],
input[type="button"],
.fluentform .ff-btn-submit {
	background-color: #db995a;
	color: #000000;
}
.wp-block-button__link:hover,
.button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
button[type="submit"]:hover:not(.bbb-header__search-form button),
input[type="submit"]:hover,
.fluentform .ff-btn-submit:hover {
	background-color: #c08247;
	color: #000000;
	transform: translateY(-1px);
}

/* Secondary: dark charcoal. Used for product card "Add to Cart"
   and any button explicitly tagged .bbb-btn--secondary. */
.bbb-btn--secondary .wp-block-button__link,
.wp-block-button .wp-block-button__link.bbb-btn--secondary,
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart {
	background-color: #1d1d1d;
	color: #ffffff;
}
.bbb-btn--secondary .wp-block-button__link:hover,
.woocommerce ul.products li.product .button:hover {
	background-color: #db995a;
	color: #000000;
}

/* Disabled add-to-cart (variable products before variation selected) */
.woocommerce div.product form.cart .button.disabled,
.woocommerce div.product form.cart .button:disabled {
	opacity: 0.45 !important;
	cursor: not-allowed !important;
	transform: none !important;
}

/* Override WC's `.button.alt` (used for "Select Options" / "Place Order" /
   anywhere WC tags a button as the primary alternate). WC's stylesheet ships
   a teal-blue default that we do not want. */
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt,
.woocommerce-page a.button.alt,
.woocommerce-page button.button.alt,
.woocommerce-page input.button.alt {
	background-color: #db995a !important;
	color: #000000 !important;
	border: 0 !important;
}
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce-page a.button.alt:hover,
.woocommerce-page button.button.alt:hover {
	background-color: #c08247 !important;
	color: #000000 !important;
}
.woocommerce a.button.alt.disabled,
.woocommerce button.button.alt:disabled {
	background-color: #db995a !important;
	color: #000000 !important;
	opacity: 0.45 !important;
}

/* ---------- Category cards on home ---------- */
.wp-block-column.has-background {
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.wp-block-column.has-background:hover {
	transform: translateY(-3px);
	box-shadow: 0 12px 28px rgba(0, 0, 0, 0.06);
}

/* ---------- WooCommerce shop ---------- */
.woocommerce ul.products li.product {
	text-align: center;
	background: #ffffff;
	padding: 0 0 24px;
	border-radius: 6px;
	border: 1px solid #ececec;
	overflow: hidden;
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}
/* Image fills the card edge-to-edge at the top (no padding gap).
   Soft #fafafa backdrop keeps white-bg product photos visible. */
.woocommerce ul.products li.product .wp-post-image,
.woocommerce ul.products li.product a img,
.woocommerce ul.products li.product img.attachment-woocommerce_thumbnail {
	display: block;
	width: 100%;
	height: 260px;
	aspect-ratio: 1 / 1;
	object-fit: contain;
	background: #fafafa;
	padding: 0;
	margin: 0 0 16px;
	box-sizing: border-box;
}
/* Side padding for the text + button block below the image. */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .star-rating {
	margin-left: 16px;
	margin-right: 16px;
}
/* Buttons stretch full-width inside the card. */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart {
	display: block !important;
	width: calc(100% - 32px) !important;
	margin: 14px 16px 0 !important;
	box-sizing: border-box;
	text-align: center !important;
}
.woocommerce ul.products li.product:hover {
	box-shadow: 0 12px 28px rgba(0, 0, 0, 0.07);
	transform: translateY(-2px);
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: 'Jost', sans-serif;
	font-size: 16px;
	font-weight: 600;
	margin-top: 14px;
	color: #1d1d1d;
}
.woocommerce ul.products li.product .price {
	color: #db995a;
	font-weight: 700;
	font-size: 16px;
}
.woocommerce ul.products li.product .button {
	margin-top: 10px;
}
.woocommerce ul.products li.product img {
	border-radius: 4px;
	margin-bottom: 0;
}

/* Single product */
.woocommerce-product-gallery,
.woocommerce-product-gallery__wrapper {
	width: 100%;
}
.woocommerce-product-gallery__wrapper > div img,
.woocommerce-product-gallery__image img {
	max-width: 100%;
	height: auto;
	display: block;
}
.woocommerce-product-gallery {
	margin-bottom: 32px;
}

.single-product div.product .product_title {
	font-family: 'Jost', sans-serif;
	font-weight: 700;
}
.single-product div.product p.price,
.single-product div.product span.price {
	color: #db995a;
	font-size: 24px;
	font-weight: 700;
	margin-bottom: 20px;
}
.single-product div.product .woocommerce-variation-price,
.woocommerce-variation-price {
	margin-bottom: 20px;
}
/* Force single product Add to Cart to primary brand color (WC's stylesheet
   has a high-specificity rule that otherwise wins). */
.single-product div.product form.cart .single_add_to_cart_button,
.woocommerce div.product form.cart .single_add_to_cart_button {
	background-color: #db995a !important;
	color: #000000 !important;
}
.single-product div.product form.cart .single_add_to_cart_button:hover,
.woocommerce div.product form.cart .single_add_to_cart_button:hover {
	background-color: #c08247 !important;
	color: #000000 !important;
}

/* Layout: qty input keeps natural size, ATC button grows to fill the row. */
.single-product div.product form.cart {
	display: flex;
	align-items: stretch;
	gap: 12px;
	flex-wrap: wrap;
}
.single-product div.product form.cart .quantity {
	flex: 0 0 auto;
	margin: 0 !important;
}
.single-product div.product form.cart .single_add_to_cart_button {
	flex: 1 1 auto;
	width: auto !important;
	min-width: 0;
	text-align: center !important;
}
/* Variation row (price + qty/button) shouldn't shrink the button below
   readable width on tighter viewports. */
@media (max-width: 480px) {
	.single-product div.product form.cart .single_add_to_cart_button {
		flex: 1 1 100%;
	}
}

/* Variations dropdown */
.woocommerce .variations select {
	padding: 10px 12px;
	border-radius: 4px;
	border: 1px solid #dddddd;
}

/* Cart + Checkout page headings: centered + bold */
.woocommerce-cart .entry-title,
.woocommerce-cart h1.entry-title,
.woocommerce-checkout .entry-title,
.woocommerce-checkout h1.entry-title {
	text-align: center;
	font-weight: 700;
	margin-bottom: 40px;
	letter-spacing: 0.02em;
}
.woocommerce-cart .cart_totals h2,
.woocommerce-cart .cross-sells > h2,
.woocommerce-checkout #order_review_heading,
.woocommerce-checkout h3#ship-to-different-address,
.woocommerce-checkout-review-order-table .product-name,
.woocommerce-checkout form.checkout h3 {
	text-align: center;
	font-weight: 700;
	font-size: 22px;
	margin-bottom: 20px;
	letter-spacing: 0.02em;
}

/* Per-gram pricing UI */
.bbb-per-gram-hint {
	background: #fff8ec;
	border-left: 3px solid #db995a;
	padding: 12px 14px;
	font-size: 14px;
	margin: 0 0 20px;
	color: #1d1d1d;
}
.bbb-per-gram-hint i {
	color: #db995a;
	margin-right: 8px;
}
.bbb-per-gram {
	font-size: 0.7em;
	color: #6b6b6b;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	margin-left: 4px;
}
.bbb-grams-label {
	font-family: 'Jost', sans-serif;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	margin-right: 10px;
	color: #1d1d1d;
}
.bbb-cart-grams-label {
	font-size: 12px;
	color: #6b6b6b;
	margin-right: 4px;
}

/* ---------- Single product tabs (Description / Reviews / etc) ---------- */
.woocommerce div.product .woocommerce-tabs {
	margin-top: 56px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs.wc-tabs {
	display: flex;
	gap: 0;
	margin: 0 0 32px;
	padding: 0 !important;
	border: 0 !important;
	border-bottom: 1px solid #ececec !important;
	background: transparent !important;
	justify-content: center;
}
.woocommerce div.product .woocommerce-tabs ul.tabs.wc-tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs.wc-tabs::after {
	display: none !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs.wc-tabs li {
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	box-shadow: none !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs.wc-tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs.wc-tabs li::after {
	display: none !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs.wc-tabs li a {
	display: inline-block;
	padding: 16px 28px !important;
	font-family: 'Jost', sans-serif !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	letter-spacing: 0.06em !important;
	text-transform: uppercase !important;
	color: #6b6b6b !important;
	text-decoration: none !important;
	border-bottom: 2px solid transparent !important;
	margin-bottom: -1px !important;
	transition: color 0.15s ease, border-color 0.15s ease;
}
.woocommerce div.product .woocommerce-tabs ul.tabs.wc-tabs li a:hover {
	color: #1d1d1d !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs.wc-tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs.wc-tabs li.active a:hover {
	color: #1d1d1d !important;
	border-bottom-color: #db995a !important;
}

/* Center and bold the panel heading + max-width body. */
.woocommerce div.product .woocommerce-Tabs-panel h2,
.woocommerce div.product .wc-tab h2,
.woocommerce-Tabs-panel--description h2,
.woocommerce-Tabs-panel--additional_information h2,
.woocommerce-Tabs-panel--reviews h2 {
	text-align: center !important;
	font-weight: 700 !important;
	font-size: 28px !important;
	margin: 0 auto 24px !important;
	letter-spacing: 0.02em !important;
}
.woocommerce div.product .woocommerce-Tabs-panel,
.woocommerce div.product .wc-tab {
	max-width: 880px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	float: none !important;
	width: 100% !important;
}

/* Related products heading: centered + bold. */
.woocommerce.single-product section.related > h2,
.woocommerce.single-product section.upsells > h2,
.woocommerce.single-product .related.products > h2 {
	text-align: center;
	font-weight: 700;
	font-size: 28px;
	margin: 56px auto 28px;
	letter-spacing: 0.02em;
}

/* ---------- My Account: logged-out forms ---------- */
.woocommerce-account:not(.logged-in) .woocommerce > .u-columns,
.woocommerce-account:not(.logged-in) .woocommerce > .col2-set,
.woocommerce-account:not(.logged-in) .woocommerce {
	max-width: 480px;
	margin: 60px auto;
}

.woocommerce-account .woocommerce h2 {
	text-align: center;
	font-size: 22px;
	font-weight: 700;
	margin: 0 0 28px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.woocommerce-account form.woocommerce-form-login,
.woocommerce-account form.woocommerce-form-register,
.woocommerce-account form.lost_reset_password {
	background: #ffffff !important;
	padding: 40px !important;
	border: 1px solid #ececec !important;
	border-radius: 0 !important;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
}

.woocommerce-account form.woocommerce-form-login .form-row,
.woocommerce-account form.woocommerce-form-register .form-row,
.woocommerce-account form.lost_reset_password .form-row {
	margin: 0 0 20px;
	padding: 0;
}

.woocommerce-account form.woocommerce-form-login label:not(.woocommerce-form__label-for-checkbox),
.woocommerce-account form.woocommerce-form-register label:not(.woocommerce-form__label-for-checkbox),
.woocommerce-account form.lost_reset_password label {
	display: block;
	font-family: 'Jost', sans-serif;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--charcoal);
	margin-bottom: 8px;
}

.woocommerce-account form.woocommerce-form-login input[type="text"],
.woocommerce-account form.woocommerce-form-login input[type="email"],
.woocommerce-account form.woocommerce-form-login input[type="password"],
.woocommerce-account form.woocommerce-form-register input[type="text"],
.woocommerce-account form.woocommerce-form-register input[type="email"],
.woocommerce-account form.woocommerce-form-register input[type="password"],
.woocommerce-account form.lost_reset_password input[type="text"] {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid #dddddd;
	background: #ffffff;
	border-radius: 0;
	font-family: 'Nunito Sans', sans-serif;
	font-size: 15px;
	color: var(--wp--preset--color--charcoal);
	transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.woocommerce-account form input:focus {
	outline: none;
	border-color: var(--wp--preset--color--honey);
	box-shadow: 0 0 0 3px rgba(219, 153, 90, 0.18);
}

.woocommerce-account form.woocommerce-form-login button[type="submit"],
.woocommerce-account form.woocommerce-form-register button[type="submit"],
.woocommerce-account form.lost_reset_password button[type="submit"] {
	width: 100%;
	margin-top: 4px;
}

.woocommerce-account .woocommerce-form-login__rememberme,
.woocommerce-account .woocommerce-form__label-for-checkbox {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	color: var(--wp--preset--color--muted);
	margin: 0;
}

.woocommerce-account .woocommerce-form-login__submit + p,
.woocommerce-account .woocommerce-LostPassword {
	margin-top: 16px;
	font-size: 14px;
	text-align: center;
}

.woocommerce-account .woocommerce-LostPassword a {
	color: var(--wp--preset--color--honey);
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: border-color 0.18s ease;
}

.woocommerce-account .woocommerce-LostPassword a:hover {
	border-bottom-color: var(--wp--preset--color--honey);
}

.woocommerce-account .show-password-input {
	color: var(--wp--preset--color--muted);
}

/* Logged-in: dashboard sidebar + content layout. */
.woocommerce-MyAccount-navigation {
	background: #fafafa;
	border: 1px solid #ececec;
	padding: 8px 0;
}
.woocommerce-MyAccount-navigation ul {
	list-style: none;
	padding: 0;
	margin: 0;
}
.woocommerce-MyAccount-navigation ul li {
	margin: 0;
	border-bottom: 1px solid #ececec;
}
.woocommerce-MyAccount-navigation ul li:last-child { border-bottom: 0; }
.woocommerce-MyAccount-navigation ul li a {
	display: block;
	padding: 14px 22px;
	font-family: 'Jost', sans-serif;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #1d1d1d;
	text-decoration: none;
	border-left: 3px solid transparent;
	transition: color 0.15s, background 0.15s, border-color 0.15s;
}
.woocommerce-MyAccount-navigation ul li a:hover {
	color: #db995a;
	background: #ffffff;
}
.woocommerce-MyAccount-navigation ul li.is-active a,
.woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--dashboard.is-active a {
	color: #db995a;
	background: #ffffff;
	border-left-color: #db995a;
}

/* Dashboard intro */
.woocommerce-MyAccount-content p:first-child {
	font-size: 16px;
	line-height: 1.6;
	color: #444444;
}
.woocommerce-MyAccount-content mark {
	background: transparent;
	color: #db995a;
	font-weight: 700;
}

/* Orders / Downloads / Addresses tables */
.woocommerce-account .woocommerce-orders-table,
.woocommerce-account .shop_table {
	border: 1px solid #ececec;
	border-collapse: collapse;
}
.woocommerce-account .woocommerce-orders-table th,
.woocommerce-account .shop_table th {
	background: #fafafa;
	font-family: 'Jost', sans-serif;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #1d1d1d;
	padding: 14px 16px;
}
.woocommerce-account .woocommerce-orders-table td,
.woocommerce-account .shop_table td {
	padding: 14px 16px;
	border-top: 1px solid #ececec;
}

/* ---------- Footer ---------- */
.site-info,
.site-footer {
	background: #1d1d1d;
	color: #cccccc;
	padding: 0;
	text-align: left;
}
/* GP's .inside-site-info wrapper has its own 40px padding which would
   narrow our footer to 1200. Zero it so .bbb-footer gets the full 1280
   max-width and lines up with .bbb-header__inner. */
.inside-site-info {
	max-width: none !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

.bbb-footer {
	max-width: 1280px;
	margin: 0 auto;
	padding: 64px 32px 24px;
}
.bbb-footer__grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1.2fr 1.4fr;
	gap: 48px;
	padding-bottom: 48px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.bbb-footer__wordmark {
	display: inline-block;
	margin-bottom: 18px;
	color: #ffffff;
	text-decoration: none;
	font-family: 'Jost', sans-serif;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	line-height: 1.05;
}
.bbb-footer__wordmark-line {
	display: block;
	font-weight: 700;
	font-size: 26px;
}
.bbb-footer__wordmark-line--small {
	font-weight: 500;
	font-size: 14px;
	letter-spacing: 0.18em;
	color: #db995a;
	margin-top: 2px;
}
.bbb-footer__about {
	font-size: 14px;
	line-height: 1.6;
	color: #aaaaaa;
	margin: 0 0 18px;
}
.bbb-footer__social {
	display: flex;
	gap: 12px;
}
.bbb-footer__social a {
	color: #cccccc;
	font-size: 18px;
	width: 36px;
	height: 36px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 50%;
	transition: color 0.15s, border-color 0.15s, background 0.15s;
}
.bbb-footer__social a:hover {
	color: #000000;
	background: #db995a;
	border-color: #db995a;
}
.bbb-footer__heading {
	font-family: 'Jost', sans-serif;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #ffffff;
	margin: 0 0 18px;
}
.bbb-footer__heading--spaced {
	margin-top: 28px;
}
.bbb-footer__links {
	list-style: none;
	margin: 0;
	padding: 0;
}
.bbb-footer__links li {
	margin: 0 0 10px;
}
.bbb-footer__links a {
	color: #aaaaaa;
	font-size: 14px;
	text-decoration: none;
	transition: color 0.15s;
}
.bbb-footer__links a:hover {
	color: #db995a;
}
.bbb-footer__cities {
	font-size: 13px;
	line-height: 1.7;
	color: #888888;
	margin: 0;
}
.bbb-footer__newsletter-copy {
	font-size: 14px;
	color: #aaaaaa;
	margin: 0 0 14px;
	line-height: 1.6;
}
.bbb-footer__newsletter {
	display: flex;
	margin-bottom: 16px;
}
.bbb-footer__newsletter input[type="email"] {
	flex: 1 1 auto;
	min-width: 0;
	padding: 12px 14px;
	border: 1px solid rgba(255, 255, 255, 0.2);
	background: rgba(255, 255, 255, 0.05);
	color: #ffffff;
	border-radius: 0;
	font-size: 14px;
	font-family: 'Nunito Sans', sans-serif;
}
.bbb-footer__newsletter input[type="email"]::placeholder {
	color: #777777;
}
.bbb-footer__newsletter input[type="email"]:focus {
	outline: none;
	border-color: #db995a;
}
.bbb-footer__newsletter button {
	flex: 0 0 auto;
	padding: 0 18px !important;
	font-size: 12px !important;
	min-height: auto;
}
.bbb-footer__newsletter button[disabled] {
	opacity: 0.7;
	cursor: default;
}
.bbb-footer__newsletter-status {
	font-size: 13px;
	margin: 8px 0 0;
	min-height: 1em;
	color: #cccccc;
}
.bbb-footer__newsletter-status.is-error {
	color: #ffb380;
}
.bbb-footer__newsletter-status.is-success {
	color: #db995a;
}
.bbb-footer__contact {
	font-size: 14px;
	margin: 0;
}
.bbb-footer__contact i {
	color: #db995a;
	margin-right: 8px;
}
.bbb-footer__contact a {
	color: #cccccc;
	text-decoration: none;
}
.bbb-footer__contact a:hover {
	color: #db995a;
}
.bbb-footer__hours {
	font-size: 14px;
	color: #cccccc;
	margin: 6px 0 0;
}
.bbb-footer__hours i {
	color: #db995a;
	margin-right: 8px;
}

/* Legal row */
.bbb-footer__legal {
	padding-top: 24px;
}
.bbb-footer__disclaimer {
	font-size: 12px;
	line-height: 1.6;
	color: #888888;
	margin: 0 0 18px;
}
.bbb-footer__disclaimer strong {
	color: #aaaaaa;
}
.bbb-footer__meta {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px;
	font-size: 12px;
	color: #888888;
}
.bbb-footer__legal-links {
	display: flex;
	gap: 16px;
}
.bbb-footer__legal-links a {
	color: #aaaaaa;
	text-decoration: none;
}
.bbb-footer__legal-links a:hover {
	color: #db995a;
}

@media (max-width: 960px) {
	.bbb-footer__grid {
		grid-template-columns: 1fr 1fr;
		gap: 36px;
	}
}
@media (max-width: 600px) {
	.bbb-footer { padding: 48px 24px 24px; }
	.bbb-footer__grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}
	.bbb-footer__meta {
		justify-content: flex-start;
	}
}

/* ---------- Forms (Fluent + checkout) ---------- */
.fluentform input[type="text"],
.fluentform input[type="email"],
.fluentform textarea,
form.checkout input[type="text"],
form.checkout input[type="email"],
form.checkout input[type="tel"],
form.checkout textarea,
form.checkout select {
	border-radius: 4px !important;
	border: 1px solid #dddddd !important;
	padding: 12px 14px !important;
	font-size: 15px !important;
}
/* Fluent Forms submit picks up unified button rules above */

/* ---------- Mobile nudges ---------- */
@media (max-width: 768px) {
	.wp-block-cover h1 {
		font-size: 36px !important;
	}
	.wp-block-cover h2 {
		font-size: 26px !important;
	}
	.wp-block-columns {
		gap: 16px;
	}
}

/* ---------- Page-content utility classes ----------
   Compositions used by docs/scripts/build_*_page.php block markup.
   Brand tokens (colour, font family, font size) come from theme.json
   presets so the palette is editable in one place. */

.bbb-hero-h1 {
	font-size: var(--wp--preset--font-size--huge);
	font-weight: 700;
	line-height: 1.05;
	letter-spacing: -0.01em;
}

.bbb-section-h2 {
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 700;
}

.bbb-feature-h3 {
	font-size: var(--wp--preset--font-size--large);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.bbb-feature-text {
	font-size: var(--wp--preset--font-size--base);
	line-height: 1.6;
	color: var(--wp--preset--color--muted);
}

.bbb-feature-icon {
	color: var(--wp--preset--color--honey);
	font-size: 48px;
	display: flex;
	justify-content: center;
	margin-bottom: 18px;
}

.bbb-hero-lead {
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.5;
	margin-top: 20px;
	margin-bottom: 32px;
}

.bbb-cover-body {
	font-size: 17px;
	line-height: 1.6;
	margin-top: 16px;
	margin-bottom: 32px;
}

.bbb-page-h1 {
	font-size: 44px !important;
	font-weight: 700 !important;
	line-height: 1.1 !important;
	font-family: 'Jost', sans-serif !important;
}

.bbb-page-eyebrow {
	font-size: var(--wp--preset--font-size--medium) !important;
	line-height: 1.5 !important;
	margin-top: 12px;
	color: #ffffff !important;
}

.bbb-meta-h3 {
	color: var(--wp--preset--color--honey);
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	margin-top: 32px;
	margin-bottom: 6px;
}

.bbb-meta-h3--tight {
	margin-top: 24px;
}

.bbb-meta-text {
	font-size: 15px;
	color: var(--wp--preset--color--muted);
}

.bbb-form-card {
	background-color: var(--wp--preset--color--soft);
	border-radius: 8px;
	padding: 40px;
}

/* Inner-page hero (cart, checkout, my-account, returns, etc).
   Mirrors the editorial-page hero styling baked into Contact / Terms
   block content so every non-home page reads as the same component. */
.bbb-page-hero {
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	padding: 80px 24px;
	margin: 0 0 32px;
	color: #ffffff;
	text-align: center;
}

/* On WC system pages the hero sits directly above the form/dashboard, so
   the standard inside-article top padding becomes redundant whitespace. */
body.woocommerce-cart .inside-article,
body.woocommerce-checkout .inside-article,
body.woocommerce-account .inside-article {
	padding-top: 0;
}

/* ---------- Section + container utility classes ----------
   Applied via Gutenberg's `className` attribute so block markup carries
   class names instead of inline padding / margin. Containers (1280 max,
   centred, 32px padding) line up with .bbb-header__inner so the visible
   content edge is identical site-wide. */

.bbb-section { padding-top: 80px; padding-bottom: 80px; }
.bbb-section--md { padding-top: 60px; padding-bottom: 60px; }
.bbb-section--lg { padding-top: 100px; padding-bottom: 100px; }
.bbb-section--xl { padding-top: 160px; padding-bottom: 160px; }

/* Constrain any direct child of entry-content that uses alignwide to
   1280 max + 32px horizontal padding (header geometry). */
.entry-content > .alignwide {
	max-width: 1280px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: 32px;
	padding-right: 32px;
	box-sizing: border-box;
	width: auto !important;
}

/* For alignfull sections (covers, full-bleed groups) the OUTER element
   spans the viewport for bleed effects; the INNER content is pulled in
   to 1280 with 32px gutter so the visible content lines up with the
   header. Two patterns covered: cover blocks (have inner-container) and
   constrained groups (children get max-width via Gutenberg CSS). */
.entry-content > .alignfull > .wp-block-cover__inner-container {
	max-width: 1280px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 32px;
	padding-right: 32px;
	box-sizing: border-box;
}
.entry-content > .alignfull.wp-block-group-is-layout-constrained > * {
	padding-left: 32px;
	padding-right: 32px;
	box-sizing: border-box;
}

/* WC block-based pages (Cart, Checkout, Mini Cart) ship with .alignwide,
   which breaks out of .entry-content via negative margins and overflows
   the inside-article container. Constrain them to the normal content
   width so they sit inside the GP container with breathing room. */
.wp-block-woocommerce-cart.alignwide,
.wp-block-woocommerce-checkout.alignwide,
.wp-block-woocommerce-mini-cart.alignwide {
	width: auto !important;
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}
.bbb-page-hero__inner {
	max-width: 1080px;
	margin: 0 auto;
	text-align: center;
}
.bbb-page-hero__title {
	margin: 0;
	font-size: 44px !important;
	font-weight: 700 !important;
	line-height: 1.1 !important;
	font-family: 'Jost', sans-serif !important;
}

/* Local-delivery info card on the order confirmation page. Sits above the
   order summary so customers see operational next-steps before scrolling
   to the line items. */
.bbb-thankyou-delivery {
	background-color: var(--wp--preset--color--soft);
	border-left: 4px solid var(--wp--preset--color--honey);
	padding: 32px 40px;
	margin: 0 0 40px;
	border-radius: 4px;
}
.bbb-thankyou-delivery__title {
	font-family: 'Jost', sans-serif;
	font-size: 24px;
	font-weight: 700;
	margin: 0 0 16px;
	letter-spacing: 0.02em;
}
.bbb-thankyou-delivery__body .wp-block-group {
	padding: 0 !important;
}
.bbb-thankyou-delivery__body h2 {
	font-family: 'Jost', sans-serif;
	font-size: 18px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	margin: 24px 0 8px;
}
.bbb-thankyou-delivery__body p,
.bbb-thankyou-delivery__body li {
	font-size: 15px;
	line-height: 1.55;
}
.bbb-thankyou-delivery__body ul {
	margin: 8px 0 16px 20px;
}

