/* Woodstocks theme — layout & WooCommerce styling on top of theme.json.
   Palette: charcoal #211C18, ember #D9601A, flame #E8833A, brown #6B4226,
   cream #F7F1E8, base #FFFDF9. */

/* Keep the scrollbar gutter reserved while the nav overlay locks scrolling,
   so the page (and the burger under the X) doesn't reflow sideways on
   browsers with classic scrollbars. No-op where scrollbars are overlays. */
html { scrollbar-gutter: stable; }

/* ---------- Header ---------- */

.ws-header {
	z-index: 100;
	background: transparent !important;
	border-bottom: 1px solid rgba(33, 28, 24, 0.08);
	transition: box-shadow 0.2s ease;
}
/* The translucent blur lives on a pseudo-element: backdrop-filter on the
   header itself would make it the containing block for the fixed-position
   mobile nav overlay, clipping the open menu inside the header bar. */
.ws-header::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: rgba(255, 253, 249, 0.92);
	backdrop-filter: blur(8px);
}
.ws-header.is-scrolled {
	box-shadow: 0 2px 18px rgba(33, 28, 24, 0.1);
}

/* Utility strip (phone + cart) above the main logo/nav row */
.ws-header-utility {
	font-size: 0.85rem;
	padding-bottom: 0.45rem;
	margin-bottom: 0.45rem;
	border-bottom: 1px solid rgba(33, 28, 24, 0.06);
}
.ws-header-phone,
.ws-header-account { margin: 0; }
.ws-header-phone a,
.ws-header-account a {
	font-weight: 600;
	text-decoration: none;
	color: var(--wp--preset--color--charcoal);
	white-space: nowrap;
}
.ws-header-phone a:hover,
.ws-header-account a:hover {
	color: var(--wp--preset--color--ember);
}
.ws-header .wc-block-mini-cart__button {
	border: 1.5px solid rgba(33, 28, 24, 0.3);
	border-radius: 8px;
	padding: 0.3rem 0.7rem;
	font-size: 0.85rem;
	transition: border-color 0.15s ease, color 0.15s ease;
}
.ws-header .wc-block-mini-cart__button:hover {
	border-color: var(--wp--preset--color--ember);
	color: var(--wp--preset--color--ember);
	opacity: 1;
}
.ws-header .wp-block-site-logo img { display: block; height: auto; }
.ws-header .wp-block-navigation a:hover {
	color: var(--wp--preset--color--ember);
}
/* Open mobile overlay: left-align (the desktop right-justification would pin
   links to the screen edge) and give links room to tap. */
.ws-header .wp-block-navigation__responsive-container.is-menu-open {
	--navigation-layout-justification-setting: flex-start;
	padding: 0 var(--wp--style--root--padding-right, 1.5rem) 2rem var(--wp--style--root--padding-left, 1.5rem);
	/* core's fade-in translates the overlay, which would drag the
	   fixed-position X with it — fade opacity only */
	animation: ws-overlay-fade 0.18s ease-out;
}
@keyframes ws-overlay-fade {
	from { opacity: 0; }
}
.ws-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.ws-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
.ws-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	align-items: flex-start;
}
/* menu list starts below the X button */
.ws-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: calc(var(--ws-burger-top, 12px) + 44px + 16px);
}
.ws-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item a {
	font-size: 1.2rem;
	padding: 0.4rem 0;
}

/* Burger + X: core's SVGs are replaced with three CSS bars so the open (≡)
   and close (✕) buttons can share geometry and morph. theme.js measures the
   burger and pins the fixed-position X to the same spot via --ws-burger-*. */
.ws-header .wp-block-navigation__responsive-container-open,
.ws-header .wp-block-navigation__responsive-container-close {
	width: 44px;
	height: 44px;
	background: linear-gradient(currentColor, currentColor) center / 24px 2.5px no-repeat; /* middle bar */
}
.ws-header .wp-block-navigation__responsive-container-open svg,
.ws-header .wp-block-navigation__responsive-container-close svg {
	display: none;
}
.ws-header .wp-block-navigation__responsive-container-open::before,
.ws-header .wp-block-navigation__responsive-container-open::after,
.ws-header .wp-block-navigation__responsive-container-close::before,
.ws-header .wp-block-navigation__responsive-container-close::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 24px;
	height: 2.5px;
	margin: -1.25px 0 0 -12px;
	border-radius: 2px;
	background: currentColor;
}
.ws-header .wp-block-navigation__responsive-container-open {
	position: relative;
	color: var(--wp--preset--color--charcoal);
}
.ws-header .wp-block-navigation__responsive-container-open::before { transform: translateY(-8px); }
.ws-header .wp-block-navigation__responsive-container-open::after { transform: translateY(8px); }

.ws-header .wp-block-navigation__responsive-container-close {
	position: fixed;
	top: var(--ws-burger-top, 12px);
	/* left-anchored to the burger's measured position (same coordinate origin
	   as getBoundingClientRect); the right value is only a no-JS fallback —
	   when --ws-burger-left is set, left wins because width is fixed */
	left: var(--ws-burger-left, auto);
	right: 1.25rem;
	color: var(--wp--preset--color--cream);
	background-size: 0 2.5px; /* middle bar gone in X state */
	animation: ws-burger-mid 0.3s ease;
}
.ws-header .wp-block-navigation__responsive-container-close::before {
	transform: rotate(45deg);
	animation: ws-burger-arm-top 0.3s ease;
}
.ws-header .wp-block-navigation__responsive-container-close::after {
	transform: rotate(-45deg);
	animation: ws-burger-arm-bottom 0.3s ease;
}
/* from-only keyframes: animate out of the burger pose into the X above */
@keyframes ws-burger-mid { from { background-size: 24px 2.5px; } }
@keyframes ws-burger-arm-top { from { transform: translateY(-8px) rotate(0deg); } }
@keyframes ws-burger-arm-bottom { from { transform: translateY(8px) rotate(0deg); } }

@media (max-width: 781px) {
	/* keep the sticky header compact on small screens */
	.ws-header .wp-block-site-logo,
	.ws-header .wp-block-site-logo img { width: 200px !important; }
}

/* Mobile header (< 600px = core's nav overlay breakpoint): flatten both
   header rows so items rearrange — phone centred on top, then logo left,
   cart + burger right with 44px tap targets. */
@media (max-width: 599px) {
	.ws-header .ws-header-utility,
	.ws-header .ws-header-main { display: contents; }
	.ws-header {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		gap: 0.3rem 0.5rem;
	}
	.ws-header .ws-header-phone {
		flex-basis: 100%;
		text-align: center;
		font-size: 0.85rem;
	}
	/* logo + account + cart + burger must fit one row on a 360px screen */
	.ws-header .wp-block-site-logo,
	.ws-header .wp-block-site-logo img { width: 160px !important; }
	.ws-header .wp-block-site-logo { order: 1; margin-right: auto; }
	.ws-header .ws-header-account { order: 2; }
	.ws-header .ws-header-account-label { display: none; } /* icon only */
	.ws-header .ws-header-account .ws-icon { width: 1.5rem; height: 1.5rem; }
	.ws-header .wc-block-mini-cart { order: 3; }
	.ws-header .wc-block-mini-cart__button {
		padding: 0.55rem 0.65rem;
		min-height: 44px;
	}
	.ws-header .wp-block-navigation { order: 4; }
}

/* ---------- Outline icons ---------- */
/* Simple stroke icons (Lucide, ISC licence) inlined as CSS masks: they render
   in currentColor and need no markup beyond <span class="ws-icon ws-icon-x">. */
.ws-icon {
	display: inline-block;
	width: 1.15em;
	height: 1.15em;
	vertical-align: -0.2em;
	background-color: currentColor;
	-webkit-mask: var(--ws-icon) center / contain no-repeat;
	mask: var(--ws-icon) center / contain no-repeat;
}
.ws-icon-flame { --ws-icon: 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.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5z'/%3E%3C/svg%3E"); }
.ws-icon-truck { --ws-icon: 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.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2'/%3E%3Cpath d='M15 18H9'/%3E%3Cpath d='M19 18h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.624l-3.48-4.35A1 1 0 0 0 17.52 8H14'/%3E%3Ccircle cx='17' cy='18' r='2'/%3E%3Ccircle cx='7' cy='18' r='2'/%3E%3C/svg%3E"); }
.ws-icon-clipboard { --ws-icon: 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.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3Cpath d='M12 11h4'/%3E%3Cpath d='M12 16h4'/%3E%3Cpath d='M8 11h.01'/%3E%3Cpath d='M8 16h.01'/%3E%3C/svg%3E"); }
.ws-icon-receipt { --ws-icon: 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.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z'/%3E%3Cpath d='M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8'/%3E%3Cpath d='M12 17.5v-11'/%3E%3C/svg%3E"); }
.ws-icon-phone { --ws-icon: 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.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E"); }
.ws-icon-user { --ws-icon: 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.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='5'/%3E%3Cpath d='M20 21a8 8 0 0 0-16 0'/%3E%3C/svg%3E"); }

/* ---------- USP badges ---------- */
.ws-usp .ws-icon {
	width: 34px;
	height: 34px;
	color: var(--wp--preset--color--ember);
	margin-bottom: 0.35rem;
}

.ws-usp-row { row-gap: 1rem; }
.ws-usp-sub {
	color: var(--wp--preset--color--brown);
	font-size: var(--wp--preset--font-size--small);
}
@media (max-width: 781px) {
	.ws-usp-row { flex-wrap: wrap !important; }
	.ws-usp-row > .wp-block-column { flex-basis: 45% !important; }
}

/* ---------- Category tiles ---------- */

.ws-cat-tile {
	overflow: hidden;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.ws-cat-tile:hover {
	transform: translateY(-4px);
	box-shadow: 0 14px 30px rgba(33, 28, 24, 0.22);
}
.ws-cat-tile h3 a::after {
	/* whole tile clickable */
	content: "";
	position: absolute;
	inset: 0;
}

/* ---------- Testimonials / FAQ ---------- */

.ws-testimonials .wp-block-quote {
	background: var(--wp--preset--color--cream);
	border-radius: 12px;
	padding: 1.5rem;
	height: 100%;
}
.ws-faq .wp-block-details {
	background: var(--wp--preset--color--base);
	border: 1px solid rgba(33, 28, 24, 0.1);
	border-radius: 10px;
	padding: 1rem 1.25rem;
	margin-bottom: 0.75rem;
}
.ws-faq .wp-block-details summary,
.wp-block-details summary {
	cursor: pointer;
	font-weight: 600;
}

/* ---------- Demo forms ([ghl_form] preview until GHL embeds go live) ---------- */

.ws-demo-form {
	display: grid;
	gap: 0.8rem;
	background: #fff;
	border: 1px solid rgba(33, 28, 24, 0.12);
	border-radius: 12px;
	padding: 1.5rem;
}
.ws-demo-form input,
.ws-demo-form select,
.ws-demo-form textarea {
	width: 100%;
	border: 1px solid rgba(33, 28, 24, 0.25);
	border-radius: 8px;
	padding: 0.7rem 0.9rem;
	font: inherit;
	font-size: 0.95rem;
	background: #fff;
	color: var(--wp--preset--color--charcoal);
}
.ws-demo-form textarea { min-height: 110px; resize: vertical; }
.ws-demo-form button {
	background: var(--wp--preset--color--ember);
	color: #fff;
	border: none;
	border-radius: 8px;
	font-weight: 600;
	font-size: 1rem;
	padding: 0.8rem 1.6rem;
	cursor: pointer;
	justify-self: start;
	transition: background 0.2s ease;
}
.ws-demo-form button:hover { background: var(--wp--preset--color--flame); }
.ws-demo-form .ws-demo-row { display: flex; gap: 0.8rem; }
.ws-demo-form .ws-demo-row input,
.ws-demo-form .ws-demo-row select { flex: 1; min-width: 0; }
.ws-demo-note {
	margin: 0;
	font-size: 0.8rem;
	color: var(--wp--preset--color--brown);
}
@media (max-width: 599px) {
	.ws-demo-form .ws-demo-row { flex-wrap: wrap; }
	.ws-demo-form .ws-demo-row input { flex-basis: 100%; }
}
/* newsletter slot sits on the charcoal footer */
.ws-footer .ws-demo-form {
	background: rgba(255, 255, 255, 0.06);
	border-color: rgba(247, 241, 232, 0.2);
	padding: 1rem;
}
.ws-footer .ws-demo-form .ws-demo-row input { flex-basis: auto; }
.ws-footer .ws-demo-note { color: rgba(247, 241, 232, 0.7); }

/* ---------- Footer ---------- */

.ws-footer a { color: var(--wp--preset--color--flame); }
.ws-footer a:hover { color: var(--wp--preset--color--cream); }
.ws-footer .is-style-plain { list-style: none; padding-left: 0; }
.ws-footer .is-style-plain li { margin-bottom: 0.4rem; }

/* ---------- WooCommerce: product grid (classic template, custom cards) ---------- */

/* Woo's float-layout clearfix would become an empty first grid cell */
.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after {
	content: none;
	display: none;
}
.woocommerce ul.products {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(15.5rem, 1fr));
	gap: 1.5rem;
	margin: 0 !important;
	padding: 0;
}
.woocommerce ul.products li.product {
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	background: #fff;
	border: 1px solid rgba(33, 28, 24, 0.08);
	border-radius: 14px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.woocommerce ul.products li.product:hover {
	transform: translateY(-4px);
	box-shadow: 0 14px 30px rgba(33, 28, 24, 0.14);
}
.woocommerce ul.products li.product img {
	width: 100%;
	height: auto;
	aspect-ratio: 1;
	object-fit: cover;
	margin: 0 !important;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.15rem !important;
	padding: 1rem 1.25rem 0.25rem !important;
	color: var(--wp--preset--color--charcoal);
}
.woocommerce ul.products li.product .price {
	padding: 0 1.25rem;
	color: var(--wp--preset--color--brown) !important;
	font-size: 1rem !important;
	font-weight: 600;
}
.woocommerce ul.products li.product .button {
	margin: auto 1.25rem 1.25rem !important;
	text-align: center;
	background: var(--wp--preset--color--ember) !important;
	color: #fff !important;
	border-radius: 8px !important;
	font-weight: 600 !important;
	padding: 0.7rem 1.2rem !important;
	transition: background 0.2s ease;
}
.woocommerce ul.products li.product .button:hover {
	background: var(--wp--preset--color--flame) !important;
}
.woocommerce ul.products li.product .onsale {
	background: var(--wp--preset--color--ember);
	border-radius: 999px;
	font-weight: 600;
}

/* Two-up product grid on phones */
@media (max-width: 599px) {
	.woocommerce ul.products {
		grid-template-columns: repeat(2, 1fr);
		gap: 0.9rem;
	}
	.woocommerce ul.products li.product .woocommerce-loop-product__title {
		font-size: 1rem !important;
		padding: 0.75rem 0.9rem 0.2rem !important;
	}
	.woocommerce ul.products li.product .price {
		padding: 0 0.9rem;
		font-size: 0.9rem !important;
	}
	.woocommerce ul.products li.product .button {
		margin: auto 0.9rem 0.9rem !important;
		padding: 0.6rem 0.8rem !important;
		font-size: 0.9rem !important;
	}
}

/* Category cluster (shop + category pages) */
.ws-cat-cluster {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	column-gap: 2.2rem;
	row-gap: 0.6rem;
	margin: 0.5rem auto 1.75rem;
	max-width: 46rem;
}
.ws-cat-cluster a {
	color: var(--wp--preset--color--charcoal);
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-size: 0.85rem;
	font-weight: 500;
}
.ws-cat-cluster a:hover { color: var(--wp--preset--color--ember); }
.ws-cat-cluster a.is-current { color: var(--wp--preset--color--ember); }

/* Result count / ordering row */
.woocommerce .woocommerce-result-count { color: var(--wp--preset--color--brown); }
.woocommerce .woocommerce-ordering select {
	border: 1px solid rgba(33, 28, 24, 0.2);
	border-radius: 8px;
	padding: 0.5rem 2rem 0.5rem 0.75rem;
	background-color: #fff;
}

/* Shop page title from the classic template */
.woocommerce-products-header__title {
	font-size: var(--wp--preset--font-size--xx-large);
}

/* ---------- WooCommerce: single product ---------- */

.ws-product div.product div.images img { border-radius: 14px; }
.ws-product div.product .product_title {
	font-size: var(--wp--preset--font-size--xx-large);
	line-height: 1.15;
}
.ws-product div.product p.price {
	color: var(--wp--preset--color--ember) !important;
	font-size: 1.6rem !important;
	font-weight: 700;
}
.ws-product div.product p.price .woocommerce-price-suffix {
	font-size: 1rem;
	color: var(--wp--preset--color--brown);
	font-weight: 400;
}

/* Variation table -> clean stack; the select is progressively enhanced into
   pill buttons by theme.js (.ws-pills). */
.ws-product .variations,
.ws-product .variations tbody,
.ws-product .variations tr,
.ws-product .variations td,
.ws-product .variations th {
	display: block;
	border: none;
	padding: 0;
	margin: 0;
}
.ws-product .variations .label label {
	font-weight: 600;
	margin-bottom: 0.5rem;
	display: inline-block;
}
.ws-product .variations select {
	border: 1px solid rgba(33, 28, 24, 0.25);
	border-radius: 8px;
	padding: 0.7rem 2.2rem 0.7rem 0.9rem;
	font-size: 1rem;
	background-color: #fff;
	min-width: 12rem;
}
.ws-product .variations select.ws-pills-hidden {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
}
.ws-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	margin: 0.25rem 0 0.75rem;
}
.ws-pills button {
	border: 2px solid rgba(33, 28, 24, 0.18);
	background: #fff;
	color: var(--wp--preset--color--charcoal);
	border-radius: 10px;
	padding: 0.75rem 1.4rem;
	font-size: 1.05rem;
	font-weight: 600;
	cursor: pointer;
	transition: border-color 0.15s ease, background 0.15s ease;
}
.ws-pills button:hover { border-color: var(--wp--preset--color--flame); }
.ws-pills button[aria-pressed="true"] {
	border-color: var(--wp--preset--color--ember);
	background: var(--wp--preset--color--ember);
	color: #fff;
}
.ws-pills button:focus-visible {
	outline: 2px solid var(--wp--preset--color--ember);
	outline-offset: 2px;
}
.ws-product .reset_variations { font-size: 0.85rem; }

/* Quantity + add to cart */
.ws-product form.cart {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-items: stretch;
	margin: 1.25rem 0;
}
.ws-product form.cart.variations_form { display: block; }
.ws-product form.cart .woocommerce-variation-add-to-cart {
	display: flex;
	gap: 0.75rem;
	flex-wrap: wrap;
}
.ws-product form.cart .quantity .qty {
	border: 1px solid rgba(33, 28, 24, 0.25);
	border-radius: 8px;
	padding: 0.7rem;
	width: 4.5rem;
	font-size: 1rem;
	height: 100%;
}
.ws-product form.cart .single_add_to_cart_button {
	background: var(--wp--preset--color--ember) !important;
	color: #fff !important;
	border-radius: 8px !important;
	font-weight: 600 !important;
	font-size: 1.1rem !important;
	padding: 0.85rem 2.2rem !important;
	flex-grow: 1;
	max-width: 22rem;
}
.ws-product form.cart .single_add_to_cart_button:hover {
	background: var(--wp--preset--color--flame) !important;
}

/* Product tabs -> understated */
.ws-product .woocommerce-tabs ul.tabs {
	padding: 0 !important;
	margin: 2.5rem 0 0 !important;
	border-bottom: 2px solid rgba(33, 28, 24, 0.1);
}
.ws-product .woocommerce-tabs ul.tabs li {
	background: none !important;
	border: none !important;
	border-radius: 0 !important;
	margin: 0 1.5rem 0 0 !important;
	padding: 0 !important;
}
.ws-product .woocommerce-tabs ul.tabs li a {
	padding: 0.75rem 0 !important;
	font-weight: 600;
	color: var(--wp--preset--color--brown) !important;
}
.ws-product .woocommerce-tabs ul.tabs li.active a {
	color: var(--wp--preset--color--ember) !important;
	box-shadow: inset 0 -2px 0 var(--wp--preset--color--ember);
}
.ws-product .woocommerce-tabs ul.tabs li::before,
.ws-product .woocommerce-tabs ul.tabs li::after { display: none !important; }
.ws-product .woocommerce-tabs .panel { margin-top: 1.5rem; }

.ws-product .related.products > h2,
.ws-product .upsells.products > h2 {
	font-size: var(--wp--preset--font-size--x-large);
	margin: 3rem 0 1.5rem;
}

/* Sticky add-to-cart bar (mobile) injected by theme.js */
.ws-sticky-atc {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 90;
	display: none;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.7rem 1rem calc(0.7rem + env(safe-area-inset-bottom));
	background: rgba(255, 253, 249, 0.97);
	backdrop-filter: blur(8px);
	border-top: 1px solid rgba(33, 28, 24, 0.12);
	box-shadow: 0 -6px 20px rgba(33, 28, 24, 0.12);
}
.ws-sticky-atc .ws-sticky-price {
	font-weight: 700;
	color: var(--wp--preset--color--ember);
	font-size: 1.1rem;
	white-space: nowrap;
}
.ws-sticky-atc button {
	background: var(--wp--preset--color--ember);
	color: #fff;
	border: none;
	border-radius: 8px;
	font-weight: 600;
	font-size: 1rem;
	padding: 0.8rem 1.6rem;
	flex-grow: 1;
	cursor: pointer;
}
@media (max-width: 781px) {
	.ws-sticky-atc.is-visible { display: flex; }
}

/* ---------- WooCommerce: notices, breadcrumbs, forms ---------- */

.woocommerce-breadcrumb {
	color: var(--wp--preset--color--brown) !important;
	font-size: var(--wp--preset--font-size--small) !important;
	margin-bottom: 1rem !important;
}
.woocommerce-breadcrumb a { color: var(--wp--preset--color--brown); }

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	border-radius: 10px;
	border-top-width: 3px !important;
}
.woocommerce-message { border-top-color: var(--wp--preset--color--ember) !important; }
.woocommerce-message .button,
.woocommerce-info .button {
	background: var(--wp--preset--color--ember) !important;
	color: #fff !important;
	border-radius: 8px !important;
}

/* Cart & checkout (block-based pages) — keep buttons on brand */
.wc-block-components-button:not(.is-link),
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
	background: var(--wp--preset--color--ember) !important;
	border-radius: 8px !important;
	font-weight: 600 !important;
}
.wc-block-components-button:not(.is-link):hover {
	background: var(--wp--preset--color--flame) !important;
}

/* ---------- Price list table ---------- */

.ws-price-table table {
	width: 100%;
	border-collapse: collapse;
	background: #fff;
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 2px 14px rgba(33, 28, 24, 0.07);
}
.ws-price-table th {
	background: var(--wp--preset--color--charcoal);
	color: var(--wp--preset--color--cream);
	text-align: left;
	padding: 0.85rem 1rem;
	font-weight: 600;
}
.ws-price-table td {
	padding: 0.8rem 1rem;
	border-bottom: 1px solid rgba(33, 28, 24, 0.07);
}
.ws-price-table tbody tr:nth-child(even) td { background: var(--wp--preset--color--cream); }
.ws-price-table tbody tr:hover td { background: #f3e8d9; }
.ws-price-table .ws-cat-row td {
	background: var(--wp--preset--color--brown) !important;
	color: var(--wp--preset--color--cream);
	font-weight: 600;
}
@media (max-width: 640px) {
	.ws-price-table { overflow-x: auto; }
}

/* ---------- Accessibility & misc ---------- */

:focus-visible {
	outline: 2px solid var(--wp--preset--color--ember);
	outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
	.ws-cat-tile,
	.woocommerce ul.products li.product { transition: none; }
}
.ghl-form-slot iframe { display: block; }
