/* WooCommerce, dressed to match the rest of the site.
   Loaded only on shop, product, cart, checkout and account pages. */

.woocommerce-page main,
.woocommerce main { padding-block: var(--wp--preset--spacing--40); }

/* ---------- breadcrumbs ---------- */
.hos-crumbs {
	font-size: .68rem;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--wp--preset--color--mist);
	margin-bottom: var(--wp--preset--spacing--30);
}
.hos-crumbs a { color: var(--wp--preset--color--smoke); }
.hos-crumbs a:hover { color: var(--wp--preset--color--gold); }

/* ---------- page titles ---------- */
.woocommerce-products-header__title,
.product_title {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 300;
	line-height: 1.08;
	font-size: var(--wp--preset--font-size--heading-lg);
	color: var(--wp--preset--color--charcoal);
	margin-bottom: var(--wp--preset--spacing--20);
}

/* ---------- catalogue grid ---------- */
.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
	gap: clamp(1.2rem, 2.4vw, 2rem);
	margin: 0;
	padding: 0;
	list-style: none;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { content: none; }

.woocommerce ul.products li.product {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--hos-hair);
	padding: clamp(1.8rem, 3vw, 2.4rem);
	display: flex;
	flex-direction: column;
	gap: .8rem;
	position: relative;
	transition: transform .55s cubic-bezier(.22, 1, .36, 1), box-shadow .55s ease;
}
.woocommerce ul.products li.product:hover {
	transform: translateY(-7px);
	box-shadow: 0 26px 54px rgba(20, 16, 14, .1);
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--heading-md);
	font-weight: 300;
	line-height: 1.22;
	padding: 0;
	margin: 0;
	color: var(--wp--preset--color--charcoal);
}
.woocommerce ul.products li.product img {
	margin-bottom: .6rem;
	border-radius: 4px;
}
.woocommerce ul.products li.product .price,
.woocommerce div.product p.price {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.7rem;
	color: var(--wp--preset--color--gold);
	margin: 0;
	padding-top: 1rem;
	border-top: 1px solid var(--hos-hair);
	margin-top: auto;
}
/* A struck-through "was" price should read as context, not as the headline. */
.woocommerce .price del {
	color: var(--wp--preset--color--mist);
	font-family: var(--wp--preset--font-family--body);
	font-size: .82rem;
	margin-right: .6em;
	opacity: 1;
}
.woocommerce .price ins {
	text-decoration: none;
	background: none;
	color: var(--wp--preset--color--gold);
}

/* ---------- sale badge ---------- */
.woocommerce span.onsale {
	background: var(--wp--preset--color--noir);
	color: var(--wp--preset--color--blush);
	font-family: var(--wp--preset--font-family--body);
	font-size: .58rem;
	letter-spacing: .2em;
	text-transform: uppercase;
	font-weight: 400;
	border-radius: 999px;
	padding: .55em 1.3em;
	min-height: 0;
	min-width: 0;
	line-height: 1.6;
	top: -11px;
	right: 1.4rem;
	left: auto;
	margin: 0;
}

/* ---------- buttons ---------- */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt {
	background: var(--wp--preset--color--noir);
	color: var(--wp--preset--color--ivory);
	font-family: var(--wp--preset--font-family--body);
	font-size: .72rem;
	font-weight: 400;
	letter-spacing: .22em;
	text-transform: uppercase;
	padding: 1.15em 2.4em;
	border-radius: 999px;
	border: 1px solid transparent;
	transition: background .45s ease, color .45s ease, transform .45s 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 {
	background: var(--wp--preset--color--gold);
	color: #fff;
	transform: translateY(-2px);
}

/* ---------- single product ---------- */
.woocommerce div.product .woocommerce-product-details__short-description {
	font-size: var(--wp--preset--font-size--lede);
	line-height: 1.85;
	color: var(--wp--preset--color--smoke);
	margin-bottom: var(--wp--preset--spacing--20);
}
.woocommerce div.product form.cart { margin-block: var(--wp--preset--spacing--20); }
.woocommerce div.product form.cart .quantity { margin-right: 1rem; }
.woocommerce div.product .quantity input {
	border: 1px solid var(--hos-hair);
	border-radius: 999px;
	padding: .9em 1em;
	font-family: var(--wp--preset--font-family--body);
	background: transparent;
}
.hos-course-note {
	font-size: .82rem;
	line-height: 1.9;
	color: var(--wp--preset--color--mist);
	padding-left: 1rem;
	border-left: 1px solid var(--hos-hair);
	margin-top: var(--wp--preset--spacing--20);
	max-width: 34em;
}

/* Tabs */
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; margin-bottom: var(--wp--preset--spacing--20); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { border-bottom-color: var(--hos-hair); }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: transparent;
	border: 0;
	border-radius: 0;
	padding: 0 1.6rem 0 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { content: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	font-size: .68rem;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--wp--preset--color--mist);
	padding: .8em 0;
	font-weight: 400;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--wp--preset--color--charcoal); }
.woocommerce div.product .woocommerce-tabs .panel h2 { font-size: var(--wp--preset--font-size--heading-md); }

/* Related products heading */
.woocommerce .related > h2,
.woocommerce .upsells > h2 {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 300;
	font-size: var(--wp--preset--font-size--heading-md);
	margin-bottom: var(--wp--preset--spacing--30);
}

/* ---------- notices ---------- */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	background: var(--wp--preset--color--blush);
	border-top-color: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--charcoal);
	border-radius: 4px;
}
.woocommerce-message::before,
.woocommerce-info::before { color: var(--wp--preset--color--gold); }

/* ---------- cart and checkout ---------- */
.woocommerce table.shop_table {
	border-radius: 4px;
	border-color: var(--hos-hair);
}
.woocommerce table.shop_table th {
	font-family: var(--wp--preset--font-family--body);
	font-size: .68rem;
	letter-spacing: .2em;
	text-transform: uppercase;
	font-weight: 400;
	color: var(--wp--preset--color--smoke);
}
.woocommerce-checkout h3,
.woocommerce-cart h2 {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 300;
	font-size: var(--wp--preset--font-size--heading-md);
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.select2-container .select2-selection--single {
	border: 1px solid var(--hos-hair);
	border-radius: 4px;
	padding: .9em 1em;
	font-family: var(--wp--preset--font-family--body);
	background: var(--wp--preset--color--white);
}
.woocommerce form .form-row label {
	font-size: .68rem;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--smoke);
}

@media (prefers-reduced-motion: reduce) {
	.woocommerce ul.products li.product:hover { transform: none; }
	.woocommerce a.button:hover, .woocommerce button.button:hover { transform: none; }
}
