/**
 * WooCommerce — brand overrides.
 *
 * Loaded after WooCommerce's own stylesheets, and only when the plugin is
 * active. Everything here restates WooCommerce's defaults in the theme's
 * design tokens so the store looks like the rest of the site: same buttons,
 * same cards, same cream-and-teal palette.
 */

/* ---------------------------------------------------------------- Layout */

.wc-woo {
	width: 100%;
}

.wc-woo__main > h1,
.wc-woo__main > h2 {
	font-family: var(--wc-font-display);
}

.woocommerce .wc-woo-grid {
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce .wc-woo-grid::before,
.woocommerce .wc-woo-grid::after {
	content: none;
}

/* WooCommerce floats loop items; the theme uses grid instead. */
.woocommerce .wc-woo-grid .wc-product,
.woocommerce .wc-woo-grid li.product {
	width: auto;
	float: none;
	margin: 0;
	clear: none;
}

.wc-woo-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--wc-space-4);
	flex-wrap: wrap;
	margin-bottom: var(--wc-space-5);
	padding-bottom: var(--wc-space-3);
	border-bottom: 1px solid var(--wc-line-soft);
}

.woocommerce .wc-woo-toolbar .woocommerce-result-count {
	margin: 0;
	font-size: var(--wc-fs-small);
	color: var(--wc-ink-55);
}

.woocommerce .wc-woo-toolbar .woocommerce-ordering {
	margin: 0;
	float: none;
}

/* ---------------------------------------------------------------- Buttons */

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.6rem;
	padding: 0.95rem 1.65rem;
	border: 1px solid transparent;
	border-radius: var(--wc-radius-pill);
	background: var(--wc-ink);
	color: #fff;
	font-family: var(--wc-font-body);
	font-size: var(--wc-fs-body-s);
	font-weight: 500;
	line-height: 1.2;
	text-transform: none;
	transition: transform 0.2s var(--wc-ease), background 0.2s var(--wc-ease),
		box-shadow 0.2s var(--wc-ease);
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
	background: var(--wc-teal);
	color: #fff;
	transform: translateY(-1px);
	box-shadow: var(--wc-shadow);
}

.woocommerce a.button.disabled,
.woocommerce button.button:disabled,
.woocommerce button.button.disabled {
	background: var(--wc-sage);
	color: var(--wc-ink-55);
	opacity: 1;
}

.woocommerce .wc-product__actions .added_to_cart {
	display: block;
	margin-top: 0.5rem;
	text-align: center;
	font-size: var(--wc-fs-small);
	color: var(--wc-terracotta);
}

/* ------------------------------------------------------------ Price & sale */

.woocommerce .wc-product__price ins,
.woocommerce.single-product div.product p.price ins {
	background: none;
	text-decoration: none;
	font-weight: 600;
	color: var(--wc-ink);
}

.woocommerce .wc-product__price del,
.woocommerce.single-product div.product p.price del {
	opacity: 1;
	margin-right: 0.4rem;
	color: var(--wc-ink-55);
	font-weight: 400;
}

.woocommerce span.onsale {
	position: absolute;
	top: 0.75rem;
	left: 0.75rem;
	right: auto;
	min-height: 0;
	min-width: 0;
	padding: 0.3rem 0.7rem;
	border-radius: var(--wc-radius-pill);
	background: var(--wc-terracotta);
	color: #fff;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	line-height: 1.4;
}

/* -------------------------------------------------------- Single product */

.woocommerce.single-product div.product {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(1.5rem, 4vw, 3.5rem);
	align-items: start;
}

.woocommerce.single-product div.product div.images,
.woocommerce.single-product div.product div.summary {
	width: auto;
	float: none;
	margin: 0;
}

.woocommerce.single-product div.product div.images img {
	border-radius: var(--wc-radius-sm);
}

.woocommerce.single-product div.product .product_title {
	font-family: var(--wc-font-display);
	font-size: var(--wc-fs-h2, 2.2rem);
	line-height: 1.15;
	margin: 0 0 var(--wc-space-3);
}

.woocommerce.single-product div.product p.price,
.woocommerce.single-product div.product span.price {
	font-family: var(--wc-font-body);
	font-size: var(--wc-fs-h4);
	font-weight: 600;
	color: var(--wc-ink);
}

.woocommerce.single-product div.product .woocommerce-product-details__short-description {
	color: var(--wc-ink-55);
}

.woocommerce.single-product div.product form.cart {
	display: flex;
	align-items: center;
	gap: var(--wc-space-3);
	flex-wrap: wrap;
	margin: var(--wc-space-5) 0;
}

.woocommerce.single-product div.product form.cart div.quantity {
	float: none;
	margin: 0;
}

.woocommerce .quantity .qty {
	width: 5rem;
	padding: 0.85rem 0.6rem;
	border: 1px solid var(--wc-line);
	border-radius: var(--wc-radius-pill);
	background: var(--wc-white);
	font-family: var(--wc-font-body);
	text-align: center;
}

.woocommerce.single-product div.product .product_meta {
	padding-top: var(--wc-space-4);
	border-top: 1px solid var(--wc-line-soft);
	font-size: var(--wc-fs-small);
	color: var(--wc-ink-55);
}

/* Tabs, related and upsells span the full width below the two columns. */
.woocommerce.single-product div.product .woocommerce-tabs,
.woocommerce.single-product div.product .related,
.woocommerce.single-product div.product .upsells,
.woocommerce.single-product div.product #reviews {
	grid-column: 1 / -1;
}

.woocommerce.single-product div.product .woocommerce-tabs ul.tabs {
	padding: 0;
	margin: 0 0 var(--wc-space-5);
	border-bottom: 1px solid var(--wc-line-soft);
}

.woocommerce.single-product div.product .woocommerce-tabs ul.tabs::before {
	border: 0;
}

.woocommerce.single-product div.product .woocommerce-tabs ul.tabs li {
	margin: 0 1.25rem 0 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
}

.woocommerce.single-product div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce.single-product div.product .woocommerce-tabs ul.tabs li::after {
	content: none;
}

.woocommerce.single-product div.product .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 0.65rem 0;
	border-bottom: 2px solid transparent;
	font-family: var(--wc-font-body);
	font-size: var(--wc-fs-body-s);
	font-weight: 500;
	color: var(--wc-ink-55);
}

.woocommerce.single-product div.product .woocommerce-tabs ul.tabs li.active a {
	color: var(--wc-ink);
	border-bottom-color: var(--wc-terracotta);
}

.woocommerce .star-rating span,
.woocommerce p.stars a {
	color: var(--wc-sand);
}

/* ---------------------------------------------- Cart, checkout, account */

.woocommerce table.shop_table {
	border: 1px solid var(--wc-line-soft);
	border-radius: var(--wc-radius-sm);
	border-collapse: separate;
}

.woocommerce table.shop_table th {
	font-family: var(--wc-font-body);
	font-size: var(--wc-fs-small);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wc-ink-55);
}

.woocommerce table.shop_table td {
	font-size: var(--wc-fs-body-s);
}

.woocommerce .cart_totals h2,
.woocommerce-checkout h3,
.woocommerce-account h2 {
	font-family: var(--wc-font-display);
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .select2-container .select2-selection--single {
	width: 100%;
	padding: 0.9rem 1.1rem;
	border: 1px solid var(--wc-line);
	border-radius: var(--wc-radius-sm);
	background: var(--wc-white);
	font-family: var(--wc-font-body);
	font-size: var(--wc-fs-body-s);
	color: var(--wc-ink);
	height: auto;
}

.woocommerce form .form-row label {
	font-size: var(--wc-fs-small);
	font-weight: 500;
	color: var(--wc-ink);
}

.woocommerce-checkout #payment,
.woocommerce .cart_totals,
.woocommerce-account .woocommerce-MyAccount-navigation {
	background: var(--wc-cream-3);
	border-radius: var(--wc-radius-sm);
	padding: var(--wc-space-5);
}

.woocommerce-checkout #payment div.payment_box {
	background: var(--wc-white);
	border-radius: var(--wc-radius-sm);
}

.woocommerce-checkout #payment div.payment_box::before {
	border-bottom-color: var(--wc-white);
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 0.55rem 0;
	font-size: var(--wc-fs-body-s);
	color: var(--wc-ink-55);
	text-decoration: none;
}

.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover {
	color: var(--wc-terracotta);
}

/* ---------------------------------------------------------- Notices etc. */

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
.woocommerce p.no-comments {
	border-top-color: var(--wc-sage-deep);
	background: var(--wc-sage);
	border-radius: var(--wc-radius-sm);
	font-size: var(--wc-fs-body-s);
	color: var(--wc-ink);
}

.woocommerce-message::before,
.woocommerce-info::before {
	color: var(--wc-sage-deep);
}

.woocommerce-error {
	border-top-color: var(--wc-terracotta);
	background: var(--wc-cream-4);
}

.woocommerce-error::before {
	color: var(--wc-terracotta);
}

.woocommerce nav.woocommerce-pagination ul {
	border: 0;
	display: flex;
	gap: 0.4rem;
	justify-content: center;
}

.woocommerce nav.woocommerce-pagination ul li {
	border: 0;
	overflow: visible;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	min-width: 2.4rem;
	padding: 0.55rem 0.7rem;
	border: 1px solid var(--wc-line-soft);
	border-radius: var(--wc-radius-pill);
	font-size: var(--wc-fs-small);
	color: var(--wc-ink);
}

.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover {
	background: var(--wc-ink);
	border-color: var(--wc-ink);
	color: #fff;
}

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

.wc-header__cart {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	/* 40px square keeps it a comfortable touch target on phones, where the
	   header CTA is hidden and the cart sits beside the burger. */
	width: 40px;
	height: 40px;
	flex: 0 0 auto;
	color: var(--wc-ink);
	text-decoration: none;
}

.wc-header__cart:hover { color: var(--wc-terracotta); }

.wc-header__cart-count {
	position: absolute;
	top: 1px;
	right: 0;
	min-width: 1.05rem;
	height: 1.05rem;
	padding: 0 0.25rem;
	border-radius: var(--wc-radius-pill);
	background: var(--wc-terracotta);
	color: #fff;
	font-size: 0.625rem;
	font-weight: 600;
	line-height: 1.05rem;
	text-align: center;
}

.wc-header__cart-count.is-empty { display: none; }

/* ------------------------------------------------------------- Responsive */

@media (max-width: 1024px) {
	.woocommerce .wc-woo-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 860px) {
	.woocommerce.single-product div.product {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 720px) {
	.wc-woo-toolbar {
		flex-direction: column;
		align-items: flex-start;
	}

	.woocommerce .wc-woo-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
