/**
 * WooCommerce styling.
 *
 * Loaded only on WooCommerce views. Re-skins the shop grid, product page, cart
 * and checkout in the Holmes Grown design system, replacing the default
 * woocommerce-layout / smallscreen sheets that inc/assets.php dequeues.
 */

/* =========================================================================
   1. SHOP LAYOUT
   ========================================================================= */

.hg-shop { padding-block: clamp(2.5rem, 5vw, 4.5rem); }

.woocommerce-products-header { margin-bottom: 1.5rem; }
.woocommerce-products-header__title { font-size: var(--hg-fs-h2); }
.term-description { color: var(--hg-muted); max-width: 46rem; }

/* Result count + ordering row */
.woocommerce-notices-wrapper:empty { display: none; }

.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering {
	margin: 0;
	font-size: .9375rem;
	color: var(--hg-muted);
}
.woocommerce-result-count,
.woocommerce-ordering {
	display: inline-block;
	vertical-align: middle;
}
.woocommerce-ordering { float: right; }
.woocommerce-ordering select { width: auto; min-width: 14rem; padding-block: .5rem; font-size: .9375rem; }

.hg-main > .woocommerce-result-count,
.hg-main > .woocommerce-ordering { margin-bottom: 1.75rem; }

/* =========================================================================
   2. PRODUCT GRID
   ========================================================================= */

.woocommerce ul.products,
.woocommerce-page ul.products {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr));
	gap: clamp(1.25rem, 3vw, 2.25rem);
	margin: 0 0 2.5rem;
	padding: 0;
	list-style: none;
	clear: both;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { content: none; }

.woocommerce ul.products li.product,
.hg-product-card {
	display: flex;
	flex-direction: column;
	width: auto !important;   /* WooCommerce sets percentage widths inline. */
	margin: 0 !important;
	float: none !important;
	padding: 0;
	background: var(--hg-white);
	border: 1px solid var(--hg-rule-soft);
	border-radius: var(--hg-radius-lg);
	overflow: hidden;
	text-align: left;
	transition: transform var(--hg-transition), box-shadow var(--hg-transition);
}
.hg-product-card:hover { transform: translateY(-4px); box-shadow: var(--hg-shadow-md); }

.hg-product-card__media {
	position: relative;
	display: block;
	aspect-ratio: 1 / 1;
	background: var(--hg-cream);
	overflow: hidden;
}
.hg-product-card__media img {
	width: 100%; height: 100%;
	object-fit: cover;
	margin: 0;
	transition: transform 400ms ease;
}
.hg-product-card:hover .hg-product-card__media img { transform: scale(1.04); }

.hg-product-card__badge {
	position: absolute; top: .75rem; left: .75rem;
	padding: .25rem .7rem;
	border-radius: 999px;
	font-size: .6875rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--hg-cream);
}
.hg-product-card__badge--sale { background: var(--hg-green-500); }
.hg-product-card__badge--oos  { background: var(--hg-bark); }

/* WooCommerce prints its own .onsale span; ours replaces it. */
.woocommerce span.onsale { display: none; }

.hg-product-card__body {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	padding: 1.15rem 1.25rem 1.4rem;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	margin: 0 0 .45rem;
	padding: 0;
	font-family: var(--hg-font-display);
	font-size: 1.125rem;
	font-weight: 700;
	line-height: 1.35;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title a { color: var(--hg-green-900); }
.woocommerce ul.products li.product .woocommerce-loop-product__title a:hover { color: var(--hg-green-700); text-decoration: none; }

.woocommerce ul.products li.product .price {
	margin: 0 0 1rem;
	color: var(--hg-green-800);
	font-family: var(--hg-font-body);
	font-size: 1.0625rem;
	font-weight: 700;
}
.woocommerce ul.products li.product .price del { color: var(--hg-quiet); font-weight: 400; opacity: 1; }
.woocommerce ul.products li.product .price ins { text-decoration: none; }

.hg-product-card__footer { margin-top: auto; }
.woocommerce ul.products li.product .button { margin: 0; }

/* Star ratings */
.woocommerce .star-rating { color: var(--hg-tan-600); font-size: .9em; margin: 0 0 .5rem; }
.woocommerce ul.products li.product .star-rating { display: block; }

.hg-shop-note {
	display: flex;
	align-items: center;
	gap: .6rem;
	margin: 2rem 0 0;
	padding: .9rem 1.15rem;
	border-radius: var(--hg-radius);
	background: var(--hg-cream);
	color: var(--hg-green-900);
	font-size: .9375rem;
	font-weight: 600;
}
.hg-shop-note svg { flex: 0 0 auto; width: 20px; height: 20px; fill: var(--hg-green-700); }

/* =========================================================================
   3. SINGLE PRODUCT
   ========================================================================= */

.woocommerce div.product { margin-top: 1rem; }

.woocommerce div.product .product_title {
	margin-bottom: .35rem;
	font-family: var(--hg-font-display);
	font-size: var(--hg-fs-h2);
	color: var(--hg-green-900);
}

.woocommerce div.product div.images,
.woocommerce div.product div.summary {
	float: none;
	width: auto;
	margin: 0;
}

/* Gallery + buy box grid. Tabs and recommendations follow as ordinary blocks
   so the sticky gallery is bounded by this wrapper (inc/product-page.php). */
.hg-product-top {
	display: grid;
	gap: clamp(1.75rem, 4vw, 3.5rem);
	grid-template-columns: minmax(0, 1fr);
	align-items: start;
}
@media (min-width: 860px) {
	.hg-product-top { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); }
}

.woocommerce div.product div.images img { border-radius: var(--hg-radius-lg); }
.woocommerce div.product div.images .flex-control-thumbs { margin-top: .75rem; gap: .5rem; display: flex; padding: 0; }
.woocommerce div.product div.images .flex-control-thumbs li { width: auto; flex: 0 0 22%; margin: 0; float: none; }
.woocommerce div.product div.images .flex-control-thumbs img { border-radius: var(--hg-radius-sm); opacity: .7; transition: opacity var(--hg-transition); }
.woocommerce div.product div.images .flex-control-thumbs img:hover,
.woocommerce div.product div.images .flex-control-thumbs .flex-active { opacity: 1; }

.woocommerce div.product p.price,
.woocommerce div.product span.price {
	margin-bottom: 1.1rem;
	color: var(--hg-green-800);
	font-family: var(--hg-font-body);
	font-size: 1.75rem;
	font-weight: 700;
}
.woocommerce div.product p.price del { font-size: .65em; color: var(--hg-quiet); }
.woocommerce div.product p.price ins { text-decoration: none; }

.woocommerce div.product .woocommerce-product-details__short-description {
	padding-bottom: 1.25rem;
	margin-bottom: 1.25rem;
	border-bottom: 1px solid var(--hg-rule-soft);
	color: var(--hg-body);
}

/* Stock state */
.woocommerce div.product .stock { font-weight: 600; }
.woocommerce div.product .stock.in-stock { color: var(--hg-green-700); }
.woocommerce div.product .stock.out-of-stock { color: var(--hg-bark); }
.hg-out-of-season {
	padding: .85rem 1.1rem;
	border-radius: var(--hg-radius);
	border-left: 4px solid var(--hg-tan);
	background: var(--hg-cream);
	font-weight: 500;
}

/* Add to cart */
.woocommerce div.product form.cart { margin-bottom: 1.5rem; display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }
.woocommerce div.product form.cart .variations { width: 100%; margin-bottom: .5rem; }
.woocommerce div.product form.cart .variations td,
.woocommerce div.product form.cart .variations th { padding: .4rem 0; border: 0; background: none; }
.woocommerce div.product form.cart .button { flex: 1 1 12rem; padding-block: .8em; }

.quantity, .hg-qty { display: inline-flex; align-items: stretch; }
.hg-qty__btn {
	width: 2.75rem;
	padding: 0;
	border: 1px solid var(--hg-border);
	background: var(--hg-white);
	color: var(--hg-green-800);
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1;
	transform: none;
}
.hg-qty__btn:hover { background: var(--hg-cream); border-color: var(--hg-green-500); color: var(--hg-green-800); transform: none; }
.hg-qty__btn--down { border-radius: var(--hg-radius-sm) 0 0 var(--hg-radius-sm); }
.hg-qty__btn--up { border-radius: 0 var(--hg-radius-sm) var(--hg-radius-sm) 0; }
.hg-qty input.qty,
.woocommerce .quantity input.qty {
	width: 4rem;
	border-radius: 0;
	border-inline: 0;
	text-align: center;
	-moz-appearance: textfield;
}
.hg-qty input.qty::-webkit-outer-spin-button,
.hg-qty input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.woocommerce .quantity input.qty { border-radius: var(--hg-radius-sm); border: 1px solid var(--hg-border); }

/* Farm promise list */
.hg-product-promise {
	list-style: none;
	margin: 1.5rem 0;
	padding: 1.1rem 1.25rem;
	background: var(--hg-cream);
	border-radius: var(--hg-radius);
	display: grid;
	gap: .7rem;
}
.hg-product-promise li {
	display: flex;
	gap: .7rem;
	align-items: flex-start;
	margin: 0;
	font-size: .9375rem;
	color: var(--hg-green-900);
}
.hg-product-promise svg { flex: 0 0 auto; width: 18px; height: 18px; margin-top: .15em; fill: var(--hg-green-700); }

.woocommerce div.product .product_meta {
	padding-top: 1rem;
	border-top: 1px solid var(--hg-rule-soft);
	font-size: .875rem;
	color: var(--hg-muted);
}
.woocommerce div.product .product_meta > span { display: block; margin-bottom: .3rem; }

/* Tabs */
.woocommerce div.product .woocommerce-tabs { margin-top: clamp(2.5rem, 5vw, 4rem); }
.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: .35rem;
	margin: 0 0 -1px;
	padding: 0;
	border: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	margin: 0;
	padding: 0;
	border: 1px solid var(--hg-rule-soft);
	border-radius: var(--hg-radius) var(--hg-radius) 0 0;
	background: var(--hg-cream-200);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: .75rem 1.35rem;
	font-family: var(--hg-font-body);
	font-size: .9375rem;
	font-weight: 700;
	letter-spacing: .03em;
	color: var(--hg-muted);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: var(--hg-white); border-bottom-color: var(--hg-white); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--hg-green-800); }

.woocommerce div.product .woocommerce-tabs .panel {
	margin: 0;
	padding: clamp(1.5rem, 3vw, 2.25rem);
	border: 1px solid var(--hg-rule-soft);
	border-radius: 0 var(--hg-radius) var(--hg-radius) var(--hg-radius);
	background: var(--hg-white);
}
.woocommerce div.product .woocommerce-tabs .panel h2 { font-size: 1.5rem; }
.woocommerce div.product .woocommerce-tabs .panel h2:first-child { margin-top: 0; }

/* Related / upsells */
.woocommerce .related > h2,
.woocommerce .upsells > h2,
.woocommerce .cross-sells > h2 {
	margin-bottom: 1.75rem;
	font-size: var(--hg-fs-h3);
	color: var(--hg-green-900);
}
.woocommerce .related, .woocommerce .upsells { margin-top: clamp(2.5rem, 5vw, 4rem); }

/* Reviews */
.woocommerce #reviews #comments ol.commentlist { list-style: none; margin: 0; padding: 0; }
.woocommerce #reviews #comments ol.commentlist li { margin-bottom: 1.25rem; }
.woocommerce #reviews #comments ol.commentlist li .comment_container {
	padding: 1.25rem;
	border: 1px solid var(--hg-rule-soft);
	border-radius: var(--hg-radius);
	background: var(--hg-cream-200);
}
.woocommerce #reviews #comments ol.commentlist li img.avatar {
	position: static;
	float: left;
	width: 52px;
	margin-right: 1rem;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: none;
}
.woocommerce #reviews #comments ol.commentlist li .comment-text { margin: 0; padding: 0; border: 0; overflow: hidden; }
.woocommerce #review_form #respond { padding: clamp(1.25rem, 3vw, 2rem); background: var(--hg-cream); border-radius: var(--hg-radius-lg); }
/* WooCommerce zeroes the notice margin inside #reviews, so "There are no
   reviews yet." sat flush against the review form below it. */
.woocommerce #reviews #comments .woocommerce-noreviews { margin: 0 0 1.5rem; }
.woocommerce #reviews #review_form_wrapper { margin-top: 0; }
.woocommerce #review_form #respond input#submit {
	padding: .85em 1.9em;
	border: 2px solid var(--hg-green-800);
	border-radius: var(--hg-radius);
	background: var(--hg-green-800);
	color: var(--hg-cream);
	font-family: var(--hg-font-body);
	font-size: .9375rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background var(--hg-transition), border-color var(--hg-transition), transform var(--hg-transition);
}
.woocommerce #review_form #respond input#submit:hover,
.woocommerce #review_form #respond input#submit:focus-visible {
	background: var(--hg-green-700);
	border-color: var(--hg-green-700);
	color: var(--hg-white);
	transform: translateY(-1px);
}

/* Review form in the brand form language (matches the Forminator cards):
   Merriweather heading, small uppercase Lato labels, tan rating stars. */
.woocommerce #review_form #respond .comment-reply-title {
	display: block;
	margin: 0 0 .35rem;
	color: var(--hg-green-900);
	font-family: var(--hg-font-display);
	font-size: 1.375rem;
	font-weight: 700;
	line-height: 1.3;
}
.woocommerce #review_form #respond .comment-notes {
	margin: 0 0 1.5rem;
	color: var(--hg-muted);
	font-size: .875rem;
}
.woocommerce #review_form #respond p { margin: 0 0 1.25rem; }
.woocommerce #review_form #respond label {
	display: block;
	margin: 0 0 .45rem;
	color: var(--hg-green-900);
	font-family: var(--hg-font-body);
	font-size: .8125rem;
	font-weight: 700;
	letter-spacing: .06em;
	line-height: 1.3;
	text-transform: uppercase;
}
.woocommerce #review_form #respond .required { color: var(--hg-bark); text-decoration: none; }
.woocommerce #review_form #respond :is(input[type="text"], input[type="email"], input[type="url"], textarea) {
	width: 100%;
	border: 1px solid var(--hg-rule);
	border-radius: var(--hg-radius-sm);
	background: var(--hg-white);
	font-size: 1rem;
}
.woocommerce #review_form #respond :is(input[type="text"], input[type="email"], input[type="url"], textarea):focus {
	border-color: var(--hg-green-500);
	box-shadow: 0 0 0 3px rgba(100, 175, 115, .22);
	outline: 0;
}

/* Rating stars: brand tan, like the star ratings shown on product cards. */
.woocommerce #review_form #respond .comment-form-rating { margin: 0 0 1.5rem; }
.woocommerce #review_form #respond p.stars { margin: 0; line-height: 1; }
.woocommerce #review_form #respond p.stars a { color: var(--hg-tan-600); font-size: 1.6rem; }
.woocommerce #review_form #respond p.stars a:focus-visible { outline: 2px solid var(--hg-green-500); outline-offset: 2px; border-radius: 4px; }

/* "Save my name..." sits beside its checkbox, in sentence case. */
.woocommerce #review_form #respond .comment-form-cookies-consent {
	display: flex;
	gap: .6rem;
	align-items: flex-start;
}
.woocommerce #review_form #respond .comment-form-cookies-consent input[type="checkbox"] {
	flex: 0 0 auto;
	width: 1.125rem;
	height: 1.125rem;
	margin: .15rem 0 0;
	accent-color: var(--hg-green-800);
	cursor: pointer;
}
.woocommerce #review_form #respond .comment-form-cookies-consent label {
	display: inline;
	margin: 0;
	color: var(--hg-body);
	font-size: .9375rem;
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1.45;
	text-transform: none;
	cursor: pointer;
}
.woocommerce #review_form #respond .form-submit { margin: 1.5rem 0 0; }

/* =========================================================================
   4. CART
   ========================================================================= */

.woocommerce table.shop_table {
	border: 1px solid var(--hg-rule-soft);
	border-radius: var(--hg-radius-lg);
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
	font-size: .9375rem;
}
.woocommerce table.shop_table th {
	padding: .95rem 1rem;
	background: var(--hg-cream);
	font-family: var(--hg-font-body);
	font-size: .8125rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--hg-green-900);
	border: 0;
}
.woocommerce table.shop_table td {
	padding: 1rem;
	border: 0;
	border-top: 1px solid var(--hg-rule-soft);
	vertical-align: middle;
}
.woocommerce table.shop_table img { width: 72px; border-radius: var(--hg-radius-sm); }
.woocommerce table.cart .product-name a { font-family: var(--hg-font-display); font-weight: 700; color: var(--hg-green-900); }
.woocommerce a.remove {
	display: grid;
	place-items: center;
	width: 26px; height: 26px;
	border-radius: 50%;
	background: var(--hg-cream);
	color: var(--hg-bark) !important;
	font-size: 1.1rem;
	line-height: 1;
}
.woocommerce a.remove:hover { background: var(--hg-bark); color: var(--hg-white) !important; }

.woocommerce .cart-collaterals { margin-top: 2.5rem; }
.woocommerce .cart_totals {
	padding: clamp(1.25rem, 3vw, 1.75rem);
	background: var(--hg-cream);
	border-radius: var(--hg-radius-lg);
	float: none;
	width: 100%;
	max-width: 26rem;
	margin-left: auto;
}
.woocommerce .cart_totals h2 { font-size: 1.35rem; }
.woocommerce .cart_totals table.shop_table { background: var(--hg-white); }
.woocommerce .cart_totals .wc-proceed-to-checkout { padding: 1.25rem 0 0; }
.woocommerce .cart_totals .checkout-button { display: flex; width: 100%; font-size: 1.125rem; }

.woocommerce .coupon { display: flex; gap: .5rem; flex-wrap: wrap; }
.woocommerce .coupon input.input-text { width: auto; flex: 1 1 12rem; }

.hg-shipping-progress {
	margin-bottom: 1.75rem;
	padding: 1rem 1.25rem;
	background: var(--hg-cream);
	border-radius: var(--hg-radius);
}
.hg-shipping-progress p {
	display: flex;
	align-items: center;
	gap: .55rem;
	margin: 0 0 .65rem;
	font-size: .9375rem;
	font-weight: 600;
	color: var(--hg-green-900);
}
.hg-shipping-progress svg { width: 18px; height: 18px; fill: var(--hg-green-700); }
.hg-shipping-progress__track { height: 8px; border-radius: 4px; background: rgba(45, 79, 60, .14); overflow: hidden; }
.hg-shipping-progress__track span {
	display: block;
	height: 100%;
	border-radius: 4px;
	background: var(--hg-green-500);
	transition: width 400ms ease;
}

.hg-empty-cart-cta { margin-top: 1.5rem; text-align: center; }

/* =========================================================================
   5. CHECKOUT + ACCOUNT
   ========================================================================= */

.woocommerce-checkout .col2-set { display: grid; gap: clamp(1.5rem, 3vw, 2.5rem); grid-template-columns: 1fr; }
@media (min-width: 860px) { .woocommerce-checkout .col2-set { grid-template-columns: 1fr 1fr; } }
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 { float: none; width: auto; }

.woocommerce form .form-row { margin: 0 0 1.1rem; padding: 0; display: block; }
.woocommerce form .form-row label { margin-bottom: .35rem; }
.woocommerce form .form-row-first,
.woocommerce form .form-row-last { width: 100%; float: none; }
@media (min-width: 560px) {
	.woocommerce form .form-row-first,
	.woocommerce form .form-row-last { display: inline-block; width: calc(50% - .5rem); vertical-align: top; }
	.woocommerce form .form-row-first { margin-right: .9rem; }
}

.woocommerce-checkout #order_review,
.woocommerce-checkout .woocommerce-checkout-review-order {
	padding: clamp(1.25rem, 3vw, 1.75rem);
	background: var(--hg-cream);
	border-radius: var(--hg-radius-lg);
}
.woocommerce-checkout #payment { background: transparent; border-radius: 0; }
.woocommerce-checkout #payment ul.payment_methods { padding: 0 0 1rem; border-bottom: 1px solid rgba(45, 79, 60, .12); list-style: none; }
.woocommerce-checkout #payment div.payment_box {
	background: var(--hg-white);
	border-radius: var(--hg-radius-sm);
	color: var(--hg-body);
	font-size: .875rem;
}
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--hg-white); }
.woocommerce-checkout #payment .form-row.place-order { padding: 1.25rem 0 0; margin: 0; }
.woocommerce-checkout #payment #place_order { display: flex; width: 100%; font-size: 1.125rem; }

.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0 0 2rem; padding: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li { margin: 0; border-bottom: 1px solid var(--hg-rule-soft); }
.woocommerce-account .woocommerce-MyAccount-navigation li a { display: block; padding: .7rem 0; font-weight: 600; color: var(--hg-body); }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { color: var(--hg-green-800); }
@media (min-width: 860px) {
	.woocommerce-account .woocommerce-MyAccount-navigation { float: left; width: 24%; }
	.woocommerce-account .woocommerce-MyAccount-content { float: right; width: 72%; }
}

/* =========================================================================
   6. NOTICES
   ========================================================================= */

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
p.no-comments {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .75rem 1rem;
	margin: 0 0 1.75rem;
	padding: 1rem 1.25rem;
	border: 0;
	border-left: 4px solid var(--hg-green-500);
	border-radius: var(--hg-radius);
	background: var(--hg-cream);
	color: var(--hg-green-900);
	font-size: .9375rem;
	line-height: 1.5;
}
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before { display: none; }
.woocommerce-error { border-left-color: var(--hg-bark); list-style: none; }
.woocommerce-info { border-left-color: var(--hg-tan-600); }
.woocommerce-message .button,
.woocommerce-info .button { margin-left: auto; }

/* Shop breadcrumb: beat WooCommerce's own .woocommerce .woocommerce-breadcrumb
   (grey #767676, .92em, no padding) and give it room under the menu bar. */
.woocommerce .hg-breadcrumbs.woocommerce-breadcrumb {
	margin: 0;
	padding: clamp(1.25rem, 2.5vw, 1.75rem) 0 0;
	color: var(--hg-muted);
	font-size: .875rem;
}
.woocommerce .hg-breadcrumbs.woocommerce-breadcrumb a { color: var(--hg-muted); }
.woocommerce .hg-breadcrumbs.woocommerce-breadcrumb a:hover,
.woocommerce .hg-breadcrumbs.woocommerce-breadcrumb a:focus-visible { color: var(--hg-green-800); }

/* =========================================================================
   7. RECIPE CROSS-SELL
   Moved to assets/css/wprm.css: the band renders on recipe posts, which are
   not WooCommerce views, so this sheet never loads there.
   ========================================================================= */

/* =========================================================================
   8. PRINT
   ========================================================================= */

@media print {
	.hg-recipe-cta,
	.woocommerce .related,
	.woocommerce .upsells,
	.hg-shipping-progress { display: none !important; }
}

/* =========================================================================
   SHOP LANDING: featured band + one brand-colour band per category
   ([hg_shop_sections], inc/shop-sections.php)
   ========================================================================= */

.hg-shop-band {
	--band-bg: var(--hg-white);
	--band-ink: var(--hg-green-900);
	--band-lead: var(--hg-body);
	--band-eyebrow: var(--hg-bark);
	--band-rule: var(--hg-green-500);
	position: relative;
	padding: var(--hg-section-y-sm) var(--hg-gutter);
	background: var(--band-bg);
	color: var(--band-lead);
}
.hg-shop-band--featured { --band-bg: var(--hg-cream); --band-eyebrow: var(--hg-green-500); --band-rule: var(--hg-tan-600); }
.hg-shop-band--green    { --band-bg: var(--hg-green-800); --band-ink: var(--hg-cream); --band-lead: rgba(240, 239, 227, .88); --band-eyebrow: var(--hg-tan); --band-rule: var(--hg-tan); }
.hg-shop-band--tan      { --band-bg: var(--hg-tan); --band-ink: var(--hg-green-900); --band-lead: #3a3325; --band-eyebrow: var(--hg-bark); --band-rule: var(--hg-green-800); }
.hg-shop-band--bark     { --band-bg: var(--hg-bark); --band-ink: var(--hg-cream); --band-lead: rgba(240, 239, 227, .88); --band-eyebrow: var(--hg-tan); --band-rule: var(--hg-tan); }
.hg-shop-band--sage     { --band-bg: var(--hg-hero-fallback); --band-ink: var(--hg-green-900); --band-lead: var(--hg-green-900); --band-eyebrow: var(--hg-cream); --band-rule: var(--hg-green-800); }
.hg-shop-band--cream    { --band-bg: var(--hg-cream-200); }

.hg-shop-band__inner {
	max-width: var(--hg-content-max);
	margin-inline: auto;
	container-type: inline-size;
}

.hg-shop-band__header { margin-bottom: clamp(1.5rem, 3vw, 2.25rem); text-align: center; }
.hg-shop-band__eyebrow {
	margin: 0 0 .35rem;
	color: var(--band-eyebrow);
	font-family: var(--hg-font-display);
	font-size: var(--hg-fs-eyebrow);
	font-style: italic;
}
.hg-shop-band__title {
	margin: 0;
	color: var(--band-ink) !important;
	font-size: var(--hg-fs-h2);
}
/* Short rule under each title in the band's accent colour. */
.hg-shop-band__title::after {
	content: "";
	display: block;
	width: 56px;
	height: 3px;
	margin: .7rem auto 0;
	border-radius: 3px;
	background: var(--band-rule);
}
.hg-shop-band__lead { max-width: 40rem; margin: .9rem auto 0; color: var(--band-lead); }

/* Grid: 1 / 2 / 3 / 4 across by the band's own width. Tracks have a fixed
   share of the row and auto-fit collapses the unused ones, so a category with
   one or two products stays centred at normal card size instead of stretching
   or hugging the left edge. */
.hg-shop-band .woocommerce ul.products {
	--hg-shop-gap: clamp(1.25rem, 2.5vw, 2rem);
	grid-template-columns: minmax(0, 1fr);
	gap: var(--hg-shop-gap);
	justify-content: center;
	margin: 0;
}
@container (min-width: 520px) {
	.hg-shop-band .woocommerce ul.products { grid-template-columns: repeat(auto-fit, calc((100% - var(--hg-shop-gap)) / 2)); }
}
@container (min-width: 760px) {
	.hg-shop-band .woocommerce ul.products { grid-template-columns: repeat(auto-fit, calc((100% - 2 * var(--hg-shop-gap)) / 3)); }
}
@container (min-width: 980px) {
	.hg-shop-band .woocommerce ul.products { grid-template-columns: repeat(auto-fit, calc((100% - 3 * var(--hg-shop-gap)) / 4)); }
}

.hg-shop-band .hg-product-card { border-color: transparent; box-shadow: var(--hg-shadow-sm); }
.hg-shop-band--green .hg-product-card,
.hg-shop-band--bark .hg-product-card { box-shadow: 0 10px 28px rgba(0, 0, 0, .18); }

.hg-shop-band__more { margin: clamp(1.5rem, 3vw, 2rem) 0 0; text-align: center; }
.hg-shop-band--green .hg-shop-band__more .hg-btn,
.hg-shop-band--bark .hg-shop-band__more .hg-btn { background: var(--hg-tan); color: var(--hg-green-900); }

/* Category jump links */
.hg-shop-jump {
	padding: 1.1rem var(--hg-gutter);
	background: var(--hg-white);
	border-bottom: 1px solid var(--hg-rule-soft);
}
.hg-shop-jump .hg-shop-band__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: .6rem 1rem;
	container-type: normal;
}
.hg-shop-jump__label {
	color: var(--hg-muted);
	font-size: .8125rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.hg-shop-jump__list { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.hg-shop-jump__link {
	display: inline-block;
	padding: .45rem 1rem;
	border-radius: 999px;
	font-size: .9375rem;
	font-weight: 700;
	text-decoration: none !important;
	transition: transform var(--hg-transition), box-shadow var(--hg-transition);
}
.hg-shop-jump__link:hover { transform: translateY(-2px); box-shadow: var(--hg-shadow-sm); }
.hg-shop-jump__link--green { background: var(--hg-green-800); color: var(--hg-cream) !important; }
.hg-shop-jump__link--tan   { background: var(--hg-tan); color: var(--hg-green-900) !important; }
.hg-shop-jump__link--bark  { background: var(--hg-bark); color: var(--hg-cream) !important; }
.hg-shop-jump__link--sage  { background: var(--hg-hero-fallback); color: var(--hg-green-900) !important; }
.hg-shop-jump__link--cream { background: var(--hg-cream); color: var(--hg-green-900) !important; }

/* Bands sit flush against each other. */
.hg-entry--sectioned > .hg-shop-band + .hg-shop-band,
.hg-entry--sectioned > .hg-shop-jump + .hg-shop-band { margin-top: 0; }

/* =========================================================================
   PRODUCT PAGE: conversion-focused buy box (inc/product-page.php)
   ========================================================================= */

.single-product .hg-shop { padding-top: clamp(.5rem, 2vw, 1.5rem); }

/* Brand CTA everywhere WooCommerce uses its purple .button.alt. */
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt,
.woocommerce button.button.alt.disabled {
	background: var(--hg-green-800);
	border: 2px solid var(--hg-green-800);
	border-radius: var(--hg-radius);
	color: var(--hg-cream);
	font-weight: 700;
}
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce #respond input#submit.alt:hover {
	background: var(--hg-green-700);
	border-color: var(--hg-green-700);
	color: var(--hg-white);
}

/* Gallery stays in view while the buy box scrolls on desktop. */
@media (min-width: 860px) {
	/* The whole media column sticks, so the harvest note travels with it. */
	.hg-product-media {
		position: sticky;
		top: calc(var(--hg-adminbar, 0px) + var(--hg-header-h) + 1.5rem);
	}
}

.woocommerce div.product div.summary > * + * { margin-top: 0; }

.hg-product-eyebrow {
	margin: 0 0 .35rem;
	font-size: .8125rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
}
.hg-product-eyebrow a { color: var(--hg-green-500); text-decoration: none; }
.hg-product-eyebrow a:hover { color: var(--hg-green-800); }

.woocommerce div.product .product_title { margin: 0 0 .6rem; line-height: 1.15; }
.woocommerce div.product .woocommerce-product-rating { margin-bottom: .5rem; }

/* Price and its badge share a line. */
.woocommerce div.product div.summary p.price { display: inline-block; margin: 0 .75rem .9rem 0; vertical-align: middle; }
.hg-product-badges { display: inline-flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 .9rem; vertical-align: middle; }
.hg-pill {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	padding: .3rem .75rem;
	border-radius: 999px;
	font-size: .8125rem;
	font-weight: 700;
	line-height: 1.2;
}
.hg-pill svg { width: 15px; height: 15px; fill: currentColor; }
.hg-pill--green { background: #E3F0E6; color: var(--hg-green-800); }

.woocommerce div.product .woocommerce-product-details__short-description {
	margin-bottom: 1.25rem;
	padding-bottom: 0;
	border-bottom: 0;
	font-size: 1.0625rem;
	line-height: 1.65;
}
.woocommerce div.product .woocommerce-product-details__short-description p:last-child { margin-bottom: 0; }

/* Delivery promise */
.hg-product-delivery {
	display: flex;
	gap: .7rem;
	align-items: flex-start;
	margin: 0 0 1.25rem;
	padding: .8rem 1rem;
	border-radius: var(--hg-radius);
	background: var(--hg-cream);
	color: var(--hg-green-900);
	font-size: .9375rem;
}
.hg-product-delivery p { margin: 0; }
.hg-product-delivery svg { flex: 0 0 auto; width: 20px; height: 20px; margin-top: .1em; fill: var(--hg-green-700); }

.woocommerce div.product p.stock { margin: 0 0 .75rem; font-size: .9375rem; }

/* Add to cart: quantity + one dominant button, full width. */
.woocommerce div.product form.cart { margin: 0 0 1.25rem; }
.woocommerce div.product form.cart .button.single_add_to_cart_button {
	flex: 1 1 14rem;
	min-height: 3.25rem;
	font-size: 1.0625rem;
	letter-spacing: .02em;
}
.woocommerce div.product form.cart .quantity .hg-qty__btn,
.woocommerce div.product form.cart .quantity input.qty { min-height: 3.25rem; }
.hg-product-buy-anchor { display: block; position: relative; top: calc(-1 * (var(--hg-header-h) + 1rem)); }

/* Trust list */
.hg-product-trust {
	display: grid;
	gap: .8rem;
	margin: 0 0 1.5rem;
	padding: 1.1rem 0 0;
	border-top: 1px solid var(--hg-rule-soft);
	list-style: none;
}
.hg-product-trust li {
	display: flex;
	gap: .75rem;
	align-items: flex-start;
	margin: 0;
	font-size: .9375rem;
	line-height: 1.5;
	color: var(--hg-body);
}
.hg-product-trust strong { display: block; color: var(--hg-green-900); }
.hg-product-trust svg {
	flex: 0 0 auto;
	box-sizing: content-box;
	width: 18px;
	height: 18px;
	padding: .45rem;
	border-radius: 50%;
	background: var(--hg-cream);
	fill: var(--hg-green-700);
}
.hg-product-trust a { color: var(--hg-green-700); font-weight: 600; }

/* Out-of-season harvest alert */
.hg-product-alert {
	margin: .25rem 0 1.5rem;
	padding: 1.25rem;
	border-radius: var(--hg-radius-lg);
	background: var(--hg-green-800);
	color: rgba(240, 239, 227, .9);
}
.hg-product-alert__title { margin: 0 0 .25rem; color: var(--hg-cream); font-family: var(--hg-font-display); font-size: 1.25rem; font-weight: 700; }
.hg-product-alert__lead { margin: 0 0 1rem; font-size: .9375rem; }
.hg-product-alert .forminator-ui.forminator-custom-form { margin: 0 !important; box-shadow: none; }
.hg-product-alert .forminator-button-submit { background: var(--hg-tan) !important; color: var(--hg-green-900) !important; }
.single-product .hg-out-of-season { margin-bottom: 1rem; }

.woocommerce div.product .product_meta { font-size: .8125rem; }

/* Tabs read as sections, not a form control. */
.woocommerce div.product .woocommerce-tabs .panel { font-size: 1.0625rem; line-height: 1.7; }
.woocommerce div.product .woocommerce-tabs .panel > :first-child { margin-top: 0; }

/* Recommendations */
.hg-product-recs {
	grid-column: 1 / -1;
	margin-top: clamp(2.5rem, 5vw, 4rem);
	padding-top: clamp(2rem, 4vw, 3rem);
	border-top: 1px solid var(--hg-rule-soft);
	container-type: inline-size;
}
.hg-product-recs__title { margin: 0 0 1.5rem; text-align: center; font-size: var(--hg-fs-h3); color: var(--hg-green-900); }
.hg-product-recs ul.products {
	--hg-shop-gap: clamp(1.25rem, 2.5vw, 2rem);
	grid-template-columns: minmax(0, 1fr);
	gap: var(--hg-shop-gap);
	justify-content: center;
	margin: 0;
}
@container (min-width: 520px) {
	.hg-product-recs ul.products { grid-template-columns: repeat(auto-fit, calc((100% - var(--hg-shop-gap)) / 2)); }
}
@container (min-width: 760px) {
	.hg-product-recs ul.products { grid-template-columns: repeat(auto-fit, calc((100% - 3 * var(--hg-shop-gap)) / 4)); }
}

/* Sticky mobile bar on product pages: name + price + CTA. */
.hg-mobile-cta--product { align-items: center; }
.hg-mobile-cta__info { display: flex; flex-direction: column; min-width: 0; flex: 1 1 auto; }
.hg-mobile-cta__name { overflow: hidden; color: var(--hg-green-900); font-size: .8125rem; font-weight: 700; white-space: nowrap; text-overflow: ellipsis; }
.hg-mobile-cta__price { color: var(--hg-green-800); font-size: .9375rem; font-weight: 700; }
.hg-mobile-cta__price del { font-weight: 400; opacity: .6; }
.hg-mobile-cta--product .hg-btn { flex: 0 0 auto; padding-inline: 1.1rem; font-size: .9375rem; }

/* Safeguard: the main product wrapper is never a card, even if the card class
   reaches it (cached markup, a plugin re-running post_class). No border, no
   hover lift, and no overflow clipping that would break the sticky gallery. */
.single-product .hg-main > div.product.hg-product-card {
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	overflow: visible;
	transform: none;
}

/* =========================================================================
   PRODUCT DETAILS TABLE ("Details & Sizing" tab)
   Replaces WooCommerce's dotted rules, italic values, unpadded value cells and
   zebra striping with a brand spec sheet: rounded panel, cream label column in
   the small uppercase label style used on the forms, even cell padding.
   ========================================================================= */

.woocommerce div.product table.shop_attributes {
	width: 100%;
	max-width: 40rem;
	margin: 0;
	border: 1px solid var(--hg-rule-soft);
	border-collapse: separate;
	border-spacing: 0;
	border-radius: var(--hg-radius);
	overflow: hidden;
	font-size: 1rem;
}
.woocommerce div.product table.shop_attributes th,
.woocommerce div.product table.shop_attributes td {
	padding: .95rem 1.25rem;
	border: 0;
	border-bottom: 1px solid var(--hg-rule-soft);
	background: transparent;
	vertical-align: middle;
	line-height: 1.45;
}
.woocommerce div.product table.shop_attributes tr:last-child th,
.woocommerce div.product table.shop_attributes tr:last-child td { border-bottom: 0; }

.woocommerce div.product table.shop_attributes th {
	width: 11rem;
	background: var(--hg-cream);
	color: var(--hg-green-900);
	font-family: var(--hg-font-body);
	font-size: .8125rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
}
.woocommerce div.product table.shop_attributes td {
	background: var(--hg-white);
	color: var(--hg-body);
	font-style: normal;
}
.woocommerce div.product table.shop_attributes td p { margin: 0; padding: 0; }
.woocommerce div.product table.shop_attributes tr:nth-child(even) :is(th, td) { background-image: none; }
.woocommerce div.product table.shop_attributes tr:nth-child(even) td { background: var(--hg-white); }
.woocommerce div.product table.shop_attributes tr:nth-child(even) th { background: var(--hg-cream); }

@media (max-width: 480px) {
	.woocommerce div.product table.shop_attributes th { width: 40%; padding-inline: 1rem; }
	.woocommerce div.product table.shop_attributes td { padding-inline: 1rem; }
}

/* Loop add-to-cart keeps WooCommerce's .button/.add_to_cart_button classes
   (needed for AJAX add), so restate the brand button over WooCommerce's grey. */
.woocommerce ul.products li.product a.button.hg-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	padding: .5em 1.1em;
	border: 2px solid var(--hg-green-800);
	border-radius: var(--hg-radius);
	background: var(--hg-green-800);
	color: var(--hg-cream);
	font-size: .9375rem;
	font-weight: 600;
	line-height: 1.3;
}
.woocommerce ul.products li.product a.button.hg-btn:hover {
	background: var(--hg-green-700);
	border-color: var(--hg-green-700);
	color: var(--hg-white);
}
.woocommerce ul.products li.product a.button.hg-btn.loading { opacity: .7; padding-right: 2.4em; }
.woocommerce ul.products li.product a.button.hg-btn.added::after { margin-left: .5em; }
/* WooCommerce's "View cart" link after an AJAX add. */
.woocommerce ul.products li.product a.added_to_cart {
	display: block;
	margin-top: .6rem;
	color: var(--hg-green-700);
	font-size: .875rem;
	font-weight: 700;
	text-align: center;
}

/* Cart and checkout get the full content width, not the 760px text measure. */
.hg-wc-page > .woocommerce { max-width: var(--hg-content-max) !important; }

/* Secondary WooCommerce buttons (Continue shopping, Apply coupon, Update cart,
   notice actions) in the brand outline style instead of WooCommerce grey. */
.woocommerce a.button:not(.alt):not(.hg-btn),
.woocommerce button.button:not(.alt):not(.hg-btn),
.woocommerce input.button:not(.alt):not(.hg-btn) {
	padding: .6em 1.2em;
	border: 2px solid var(--hg-green-800);
	border-radius: var(--hg-radius);
	background: transparent;
	color: var(--hg-green-800);
	font-weight: 700;
	line-height: 1.3;
}
.woocommerce a.button:not(.alt):not(.hg-btn):hover,
.woocommerce button.button:not(.alt):not(.hg-btn):hover:not(:disabled),
.woocommerce input.button:not(.alt):not(.hg-btn):hover:not(:disabled) {
	background: var(--hg-green-800);
	color: var(--hg-cream);
}
.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled] { padding: .6em 1.2em; opacity: .45; color: var(--hg-green-800); }

/* =========================================================================
   PRODUCT PAGE ON PHONES
   ========================================================================= */

/* Sticky buy bar slides in once the real button has scrolled away
   (assets/js/theme.js initProductBar). Without JS it simply stays visible. */
@media (max-width: 767px) {
	body.hg-product-bar-managed .hg-mobile-cta--product {
		transform: translateY(110%);
		transition: transform 220ms ease;
	}
	body.hg-product-bar-managed .hg-mobile-cta--product.is-visible { transform: none; }
	/* The page keeps its bottom padding so the bar never covers the footer. */
}

@media (max-width: 600px) {
	/* Gallery thumbnails: tighter row. */
	.woocommerce div.product div.images .flex-control-thumbs { gap: .4rem; }

	/* Tabs: one scrollable row instead of wrapping "Reviews" onto a second line. */
	.woocommerce div.product .woocommerce-tabs { margin-top: 2rem; }
	.woocommerce div.product .woocommerce-tabs ul.tabs {
		flex-wrap: nowrap;
		gap: .3rem;
		margin-inline: calc(-1 * var(--hg-gutter));
		padding-inline: var(--hg-gutter);
		overflow-x: auto;
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;
	}
	.woocommerce div.product .woocommerce-tabs ul.tabs::-webkit-scrollbar { display: none; }
	.woocommerce div.product .woocommerce-tabs ul.tabs li { flex: 0 0 auto; }
	.woocommerce div.product .woocommerce-tabs ul.tabs li a { padding: .6rem .9rem; font-size: .875rem; white-space: nowrap; }

	/* Panel: less chrome so the copy gets the width. */
	.woocommerce div.product .woocommerce-tabs .panel {
		padding: 1.25rem 1rem;
		font-size: 1rem;
		line-height: 1.65;
	}
	.woocommerce div.product .woocommerce-tabs .panel :is(h2, h3) { font-size: 1.25rem; line-height: 1.3; margin: 1.5rem 0 .6rem; }
	.woocommerce div.product .woocommerce-tabs .panel > :is(h2, h3):first-child { margin-top: 0; }
	.woocommerce div.product .woocommerce-tabs .panel ul { padding-left: 1.1rem; }

	/* Harvest alert: less padding around the form card. */
	.hg-product-alert { padding: 1.1rem; }
	.hg-product-alert .forminator-ui.forminator-custom-form { padding: 1.1rem !important; }

	/* Recommendations: two compact cards per row instead of one screen-tall card. */
	.hg-product-recs { margin-top: 2rem; padding-top: 1.75rem; }
	.hg-product-recs ul.products {
		--hg-shop-gap: .75rem;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
	.hg-product-recs .hg-product-card__body { padding: .75rem .8rem .9rem; }
	.hg-product-recs ul.products li.product .woocommerce-loop-product__title { font-size: .9375rem; }
	.hg-product-recs ul.products li.product .price { margin-bottom: .6rem; font-size: .9375rem; }
	.hg-product-recs ul.products li.product a.button.hg-btn { padding: .45em .5em; font-size: .8125rem; }
	.hg-product-recs .hg-product-card__badge { top: .5rem; left: .5rem; padding: .2rem .5rem; font-size: .5625rem; }
}

/* =========================================================================
   CART & CHECKOUT: brand type and controls
   WooCommerce ships its own sizes (a 1.25em checkout button), its lavender
   form borders and boxed table cells. This puts the pages back on the theme's
   type scale, form language and button styles.
   ========================================================================= */

/* --- Tables --------------------------------------------------------------- */

.woocommerce table.shop_table {
	border: 1px solid var(--hg-rule-soft);
	border-radius: var(--hg-radius-lg);
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
}
.woocommerce table.shop_table :is(th, td) {
	border: 0;
	border-bottom: 1px solid var(--hg-rule-soft);
	padding: 1rem;
	vertical-align: middle;
}
.woocommerce table.shop_table tbody tr:last-child :is(th, td) { border-bottom: 0; }
.woocommerce table.shop_table thead th {
	background: var(--hg-cream);
	color: var(--hg-green-900);
	font-family: var(--hg-font-body);
	font-size: .8125rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
}
.woocommerce table.shop_table td.product-name a {
	font-family: var(--hg-font-display);
	font-size: 1.0625rem;
	color: var(--hg-green-900);
	text-decoration: none;
}
.woocommerce table.shop_table td.product-name a:hover { color: var(--hg-green-700); }
.woocommerce table.shop_table td.product-price,
.woocommerce table.shop_table td.product-subtotal {
	color: var(--hg-green-800);
	font-size: 1rem;
	font-weight: 700;
}
.woocommerce table.shop_table td.product-thumbnail img { width: 72px; border-radius: var(--hg-radius-sm); }
.woocommerce a.remove {
	width: 1.75rem;
	height: 1.75rem;
	line-height: 1.6;
	color: var(--hg-bark) !important;
	background: var(--hg-cream);
	font-size: 1.1rem;
}
.woocommerce a.remove:hover { background: var(--hg-bark); color: var(--hg-cream) !important; }

/* --- Coupon row ----------------------------------------------------------- */

.woocommerce .coupon { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }

/* Cart actions row: coupon field on the left, "Update cart" on the right.
   The cell stays a table-cell (making it a flex container collapses the row's
   width), so the button is floated instead. */
.woocommerce table.shop_table td.actions {
	padding: 1.25rem 1rem;
	text-align: right;
	overflow: hidden;   /* contains the float */
}
.woocommerce table.shop_table td.actions .coupon {
	float: left;
	width: min(60%, 34rem);
	margin: 0;
	text-align: left;
}
.woocommerce table.shop_table td.actions button[name="update_cart"] { margin: 0; }
.woocommerce #coupon_code,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
	padding: .7rem .9rem;
	border: 1px solid var(--hg-border);
	border-radius: var(--hg-radius-sm);
	background: var(--hg-white);
	font-family: var(--hg-font-body);
	font-size: 1rem;
}
.woocommerce #coupon_code { flex: 1 1 14rem; min-width: 0; }
.woocommerce #coupon_code:focus,
.woocommerce form .form-row :is(input.input-text, textarea, select):focus {
	border-color: var(--hg-green-500);
	box-shadow: 0 0 0 3px rgba(100, 175, 115, .22);
	outline: 0;
}

/* --- Cart totals ---------------------------------------------------------- */

.woocommerce .cart_totals h2 {
	margin: 0 0 1rem;
	color: var(--hg-green-900);
	font-size: 1.375rem;
}
.woocommerce .cart_totals table.shop_table {
	border: 0;
	border-radius: 0;
	background: transparent;
}
.woocommerce .cart_totals table.shop_table :is(th, td) {
	padding: .85rem 0;
	background: transparent;
	border-bottom: 1px solid rgba(45, 79, 60, .12);
}
.woocommerce .cart_totals table.shop_table th {
	width: 40%;
	color: var(--hg-green-900);
	font-family: var(--hg-font-body);
	font-size: .8125rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
}
.woocommerce .cart_totals table.shop_table td { color: var(--hg-body); font-size: 1rem; text-align: right; }
.woocommerce .cart_totals table.shop_table .order-total :is(th, td) { border-bottom: 0; }
.woocommerce .cart_totals table.shop_table .order-total td,
.woocommerce .cart_totals table.shop_table .order-total td :is(strong, .amount, bdi) {
	color: var(--hg-green-800);
	font-size: 1.25rem;
	font-weight: 700;
}
.woocommerce .cart_totals .woocommerce-shipping-destination,
.woocommerce .cart_totals .woocommerce-shipping-methods label { color: var(--hg-muted); font-size: .875rem; }
.woocommerce .cart_totals ul#shipping_method { margin: 0; padding: 0; list-style: none; text-align: right; }

/* --- Buttons -------------------------------------------------------------- */

.woocommerce .wc-proceed-to-checkout { padding: 0; margin-top: 1.25rem; }
.woocommerce .wc-proceed-to-checkout a.checkout-button,
.woocommerce #place_order {
	display: block;
	width: 100%;
	padding: .9em 1.5em;
	font-family: var(--hg-font-body);
	font-size: 1.0625rem;
	font-weight: 700;
	letter-spacing: .02em;
	line-height: 1.3;
	text-align: center;
}
.woocommerce .wc-proceed-to-checkout a.checkout-button::after { content: none; }

/* --- Checkout form -------------------------------------------------------- */

.woocommerce-checkout h3,
.woocommerce-checkout #order_review_heading {
	margin: 0 0 1.25rem;
	color: var(--hg-green-900);
	font-family: var(--hg-font-display);
	font-size: 1.5rem;
	line-height: 1.25;
}
.woocommerce form .form-row label,
.woocommerce-checkout .woocommerce-shipping-fields label {
	display: block;
	margin-bottom: .4rem;
	color: var(--hg-green-900);
	font-family: var(--hg-font-body);
	font-size: .8125rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	line-height: 1.3;
}
/* Checkbox rows read as sentences, not field labels. */
.woocommerce form .form-row.woocommerce-validated label.checkbox,
.woocommerce form label.checkbox,
.woocommerce-checkout label.woocommerce-form__label-for-checkbox {
	display: inline-flex;
	gap: .5rem;
	align-items: flex-start;
	color: var(--hg-body);
	font-size: .9375rem;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
}
.woocommerce form .form-row .required { color: var(--hg-bark); text-decoration: none; }
.woocommerce form .form-row { margin-bottom: 1.1rem; }
.woocommerce form .form-row select,
.woocommerce .select2-container .select2-selection--single {
	height: auto;
	padding: .7rem .9rem;
	border: 1px solid var(--hg-border);
	border-radius: var(--hg-radius-sm);
	background-color: var(--hg-white);
	color: var(--hg-ink);
	font-family: var(--hg-font-body);
	font-size: 1rem;
	line-height: 1.4;
}
.woocommerce .select2-container .select2-selection--single .select2-selection__rendered { padding: 0; color: var(--hg-ink); line-height: 1.4; }
.woocommerce .select2-container .select2-selection--single .select2-selection__arrow { top: 50%; transform: translateY(-50%); }

.woocommerce-checkout #payment { background: var(--hg-cream); border-radius: var(--hg-radius-lg); }
.woocommerce-checkout #payment div.payment_box { background: var(--hg-white); color: var(--hg-body); font-size: .9375rem; }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--hg-white); }
.woocommerce-checkout #payment .woocommerce-privacy-policy-text,
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper { color: var(--hg-muted); font-size: .875rem; }

.woocommerce #payment #place_order,
.woocommerce-page #payment #place_order {
	padding: .9em 1.5em;
	font-family: var(--hg-font-body);
	font-size: 1.0625rem;
	font-weight: 700;
	letter-spacing: .02em;
	line-height: 1.3;
}

/* --- Cart on phones ------------------------------------------------------- */
/* WooCommerce's own small-screen stacking is part of its stylesheet, which this
   theme replaces; restate it in the brand's card language so the cart never
   overflows a phone. Cells carry data-title from the cart template. */

@media (max-width: 600px) {
	.woocommerce table.shop_table_responsive,
	.woocommerce table.shop_table_responsive tbody,
	.woocommerce table.shop_table_responsive tr,
	.woocommerce table.shop_table_responsive td { display: block; width: auto; }
	.woocommerce table.shop_table_responsive thead { display: none; }
	.woocommerce table.shop_table_responsive { border: 0; overflow: visible; }

	.woocommerce table.shop_table_responsive tbody tr.cart_item {
		position: relative;
		margin-bottom: 1rem;
		padding: 1rem 1rem .5rem;
		border: 1px solid var(--hg-rule-soft);
		border-radius: var(--hg-radius-lg);
		background: var(--hg-white);
	}
	.woocommerce table.shop_table_responsive tbody tr.cart_item td {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 1rem;
		padding: .5rem 0;
		border-bottom: 1px solid var(--hg-rule-soft);
		text-align: right;
	}
	.woocommerce table.shop_table_responsive tbody tr.cart_item td:last-child { border-bottom: 0; }
	.woocommerce table.shop_table_responsive td::before {
		content: attr(data-title) ": ";
		color: var(--hg-green-900);
		font-size: .75rem;
		font-weight: 700;
		letter-spacing: .06em;
		text-transform: uppercase;
	}
	/* Thumbnail and remove control need no label. */
	.woocommerce table.shop_table_responsive td.product-thumbnail,
	.woocommerce table.shop_table_responsive td.product-remove { justify-content: flex-start; border-bottom: 0; }
	.woocommerce table.shop_table_responsive td.product-thumbnail::before,
	.woocommerce table.shop_table_responsive td.product-remove::before,
	.woocommerce table.shop_table_responsive td.actions::before { content: none; }
	.woocommerce table.shop_table_responsive td.product-thumbnail img { width: 96px; }
	.woocommerce table.shop_table_responsive td.product-remove { position: absolute; top: .6rem; right: .6rem; padding: 0; }
	.woocommerce table.shop_table_responsive td.actions { display: block; padding: 0; text-align: left; overflow: visible; }
	.woocommerce table.shop_table_responsive td.actions .coupon {
		float: none;
		width: 100%;
		margin-bottom: .75rem;
	}
	.woocommerce table.shop_table_responsive td.actions .coupon #coupon_code { flex: 1 1 100%; }
	.woocommerce table.shop_table_responsive td.actions .button { width: 100%; }

	.woocommerce .cart_totals table.shop_table_responsive tbody tr { display: flex; justify-content: space-between; gap: 1rem; }
	.woocommerce .cart_totals table.shop_table_responsive tbody tr :is(th, td) { display: block; padding: .75rem 0; text-align: right; }
	.woocommerce .cart_totals table.shop_table_responsive td::before { content: none; }
}

/* =========================================================================
   OFFER STRIP + FREE GIFT
   The shop's gift and shipping promises sit directly under the hero, and the
   gift repeats on the product it applies to (card badge and buy-box line).
   ========================================================================= */

.hg-offer-strip {
	padding-block: clamp(1.25rem, 3vw, 2rem) !important;
	background: var(--hg-tan);
	color: var(--hg-green-900);
	text-align: center;
}
.hg-offer-strip :is(h2, h3) {
	margin: 0 0 .35rem;
	color: var(--hg-green-900);
	font-size: clamp(1.125rem, .95rem + .7vw, 1.5rem);
	line-height: 1.3;
}
.hg-offer-strip p {
	max-width: 46rem;
	margin: 0 auto;
	color: #3a3325;
	font-size: .9375rem;
	line-height: 1.55;
}
.hg-offer-strip p + p { margin-top: .35rem; }
.hg-offer-strip strong { color: var(--hg-green-900); }

/* Card badges stack in the corner: stock state first, then the gift. */
.hg-product-card__badges {
	position: absolute;
	top: .75rem;
	left: .75rem;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: .35rem;
	max-width: calc(100% - 1.5rem);
}
.hg-product-card__badges .hg-product-card__badge { position: static; }
.hg-product-card__badge--gift {
	background: var(--hg-tan);
	color: var(--hg-green-900);
}

/* Buy-box gift line */
.hg-product-gift {
	display: flex;
	gap: .7rem;
	align-items: flex-start;
	margin: 0 0 1.25rem;
	padding: .8rem 1rem;
	border-radius: var(--hg-radius);
	border-left: 4px solid var(--hg-tan);
	background: var(--hg-cream);
	color: var(--hg-green-900);
	font-size: .9375rem;
	line-height: 1.5;
}
.hg-product-gift strong { display: block; }
.hg-product-gift svg { flex: 0 0 auto; width: 20px; height: 20px; margin-top: .1em; fill: var(--hg-green-700); }

/* Harvest promise under the product gallery. */
.hg-product-ship-note {
	display: flex;
	gap: .6rem;
	align-items: center;
	margin: 1.1rem 0 0;
	padding: .75rem .9rem;
	border-radius: var(--hg-radius);
	background: var(--hg-cream);
	color: var(--hg-green-900);
	font-size: .9375rem;
	line-height: 1.45;
}
.hg-product-ship-note svg { flex: 0 0 auto; width: 20px; height: 20px; fill: var(--hg-green-700); }
