/* ==========================================================================
   The Christian Haven — WooCommerce skins
   Loaded after theme.css; overrides WooCommerce core styling where needed.
   ========================================================================== */

:root {
	--tch-woo-radius: 9999px;
	--tch-woo-radius-card: 1rem;
	--tch-woo-heading: var(--heading);
	--tch-woo-foreground: var(--foreground);
	--tch-woo-muted: var(--muted);
	--tch-woo-border: var(--border);
	--tch-woo-blush: var(--blush);
	--tch-woo-mauve: var(--mauve);
}

/* ---------- global ---------- */
.woocommerce-notices-wrapper,
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-NoticeGroup {
	font-family: var(--font-sans);
}

.woocommerce-notices-wrapper {
	margin-bottom: 2rem;
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	padding: 1rem 1.25rem;
	border-radius: var(--tch-woo-radius-card);
	border: 1px solid var(--tch-woo-border);
	background-color: var(--color-card);
	color: var(--tch-woo-heading);
	font-size: 0.875rem;
	line-height: 1.5;
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-items: center;
	margin-bottom: 1rem;
}

.woocommerce-message {
	border-color: color-mix(in oklab, var(--tch-woo-mauve) 35%, var(--tch-woo-border));
	background-color: color-mix(in oklab, var(--tch-woo-blush) 12%, var(--color-card));
}

.woocommerce-error {
	border-color: color-mix(in oklab, var(--destructive) 40%, var(--tch-woo-border));
	background-color: color-mix(in oklab, var(--destructive) 8%, var(--color-card));
}

.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error .button {
	margin-left: auto;
	padding: 0.5rem 1rem !important;
	border-radius: var(--tch-woo-radius) !important;
	background-color: var(--tch-woo-heading) !important;
	color: var(--color-background) !important;
	font-size: 0.7rem !important;
	letter-spacing: 0.18em !important;
	text-transform: uppercase;
}

/* ---------- forms ---------- */
.tch-field,
.woocommerce-form-row input.input-text,
.woocommerce-form-row textarea.input-text,
.woocommerce-form-row select,
.form-row input.input-text,
.form-row textarea.input-text,
.form-row select,
.woocommerce-billing-fields .input-text,
.woocommerce-shipping-fields .input-text,
.woocommerce-edit-address .input-text,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
	background-color: var(--color-card) !important;
	border: 1px solid var(--tch-woo-border) !important;
	border-radius: var(--tch-woo-radius) !important;
	padding: 0.85rem 1.25rem !important;
	font-size: 0.9rem !important;
	color: var(--tch-woo-foreground) !important;
	font-family: var(--font-sans);
	line-height: 1.4;
	min-height: 3rem;
	box-shadow: none !important;
	transition: box-shadow 200ms ease, border-color 200ms ease;
}

.tch-field:focus,
.form-row input.input-text:focus,
.form-row textarea.input-text:focus,
.form-row select:focus,
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
	border-color: var(--tch-woo-blush) !important;
	outline: 0 !important;
	box-shadow: 0 0 0 3px color-mix(in oklab, var(--tch-woo-blush) 30%, transparent) !important;
}

.form-row label,
.woocommerce form .form-row label {
	display: block;
	margin-bottom: 0.5rem;
	font-size: 0.7rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--tch-woo-mauve);
	font-family: var(--font-sans);
	font-weight: 500;
}

.form-row,
.woocommerce form .form-row {
	margin-bottom: 1.25rem;
}

.select2-container .select2-selection--single {
	height: auto !important;
	border-radius: var(--tch-woo-radius) !important;
	border: 1px solid var(--tch-woo-border) !important;
	background-color: var(--color-card) !important;
	padding: 0.6rem 1rem !important;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
	color: var(--tch-woo-foreground) !important;
	font-family: var(--font-sans);
	line-height: 1.5 !important;
	padding-left: 0 !important;
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 100% !important;
	right: 1rem !important;
}

.select2-dropdown {
	border-radius: var(--tch-woo-radius-card) !important;
	border-color: var(--tch-woo-border) !important;
}

/* ---------- buttons ---------- */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce .cart .button,
.woocommerce .checkout-button,
.woocommerce button[type="submit"]:not(.tch-share):not(.tch-qty-btn) {
	font-family: var(--font-sans) !important;
	font-size: 0.7rem !important;
	letter-spacing: 0.22em !important;
	text-transform: uppercase !important;
	padding: 1rem 2rem !important;
	border-radius: var(--tch-woo-radius) !important;
	background-color: var(--tch-woo-heading) !important;
	color: var(--color-background) !important;
	border: 1px solid var(--tch-woo-heading) !important;
	cursor: pointer !important;
	transition: all 250ms ease;
	box-shadow: none !important;
	line-height: 1.2 !important;
	font-weight: 500 !important;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce .checkout-button:hover,
.woocommerce button[type="submit"]:hover {
	box-shadow: var(--shadow-elegant) !important;
	transform: translateY(-1px);
}

.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce button.button.tch-outline {
	background-color: transparent !important;
	color: var(--tch-woo-heading) !important;
	border-color: var(--tch-woo-heading) !important;
}

.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce button.button.tch-outline:hover {
	background-color: var(--tch-woo-heading) !important;
	color: var(--color-background) !important;
}

.woocommerce a.button,
.woocommerce button.button[name="apply_coupon"],
.woocommerce button.button[name="update_cart"] {
	background-color: transparent !important;
	color: var(--tch-woo-heading) !important;
	border-color: var(--tch-woo-border) !important;
}

.woocommerce a.button:hover,
.woocommerce button.button[name="apply_coupon"]:hover,
.woocommerce button.button[name="update_cart"]:hover {
	background-color: var(--tch-woo-muted) !important;
	color: var(--tch-woo-heading) !important;
	border-color: var(--tch-woo-muted) !important;
}

/* product page add-to-cart button */
.single-product .product form.cart .button,
.woocommerce .single-product form.cart button.single_add_to_cart_button {
	background-color: var(--tch-woo-heading) !important;
	color: var(--color-background) !important;
	border-color: var(--tch-woo-heading) !important;
	font-size: 0.7rem !important;
	letter-spacing: 0.22em !important;
	text-transform: uppercase !important;
	padding: 1rem 2rem !important;
	border-radius: var(--tch-woo-radius) !important;
	flex: 1 1 220px;
	min-width: 220px;
	min-height: 3.5rem;
}

/* loop add-to-cart button on card */
.woocommerce ul.products li.product .button.tch-card-add {
	background-color: var(--tch-woo-heading) !important;
	color: var(--color-background) !important;
	font-size: 0.7rem !important;
	letter-spacing: 0.22em !important;
	padding: 0.75rem 1rem !important;
	border-radius: var(--tch-woo-radius) !important;
	width: 100%;
	display: inline-block;
	text-align: center;
}

/* ---------- single product summary layout ---------- */
.single-product .product {
	display: block !important;
}

.single-product .product .summary,
.single-product div.product .summary {
	width: 100%;
	float: none;
}

.single-product .product .woocommerce-product-details__short-description,
.single-product .product .product_meta {
	margin-top: 1.5rem;
}

.product_meta {
	font-size: 0.8rem;
	color: var(--tch-woo-foreground);
	opacity: 0.75;
}

.product_meta .posted_in,
.product_meta .tagged_as {
	display: block;
	margin-top: 0.25rem;
}

.tch-product-card-cats a {
	color: inherit;
	text-decoration: none;
	border-bottom: 1px solid color-mix( in oklab, var(--foreground) 20%, transparent );
	transition: color 200ms ease, border-color 200ms ease;
}

.tch-product-card-cats a:hover {
	color: var(--mauve);
	border-bottom-color: var(--mauve);
}

/* ---------- footer base ---------- */
.haven-footer {
	background-color: oklch(22% 0.02 30);
	color: oklch(96% 0.015 60);
}

.haven-footer a {
	color: inherit;
}

.haven-footer a:hover {
	color: oklch(88.1% 0.036 76);
}

.haven-footer .widget,
.haven-footer .widget a {
	color: inherit;
}

.haven-footer .menu,
.haven-footer .menu ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

/* ---------- variations table ---------- */
.tch-variations,
table.variations {
	width: 100% !important;
	margin-top: 1rem;
	border-collapse: collapse;
	background: transparent;
}

.tch-variations th,
table.variations th,
.tch-variations td,
table.variations td {
	padding: 0.5rem 0 !important;
	background: transparent !important;
	border: 0 !important;
	font-weight: 400 !important;
	font-size: 0.85rem;
	text-align: left;
}

.tch-variations label,
table.variations label {
	font-size: 0.7rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--tch-woo-mauve);
	margin: 0;
}

.tch-variations select,
table.variations select {
	width: 100%;
}

/* ---------- price + sale ---------- */
.price {
	font-family: var(--font-serif);
	color: var(--tch-woo-heading);
	font-size: 1.5rem;
}

.price del {
	opacity: 0.5;
	font-size: 1rem;
	margin-right: 0.5rem;
}

.price ins {
	background: transparent;
	color: var(--tch-woo-heading);
	text-decoration: none;
}

.woocommerce-Price-amount {
	color: inherit;
}

/* ---------- rating ---------- */
.woocommerce-product-rating {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-top: 1rem;
}

.star-rating {
	overflow: hidden;
	position: relative;
	height: 1.1em;
	line-height: 1.1;
	font-family: inherit;
	letter-spacing: 0.25em;
	width: 5.4em;
	font-size: 1rem;
	color: var(--tch-woo-mauve);
}

.star-rating::before {
	content: "★★★★★";
	opacity: 0.25;
	float: left;
	top: 0;
	left: 0;
	position: absolute;
}

.star-rating span {
	overflow: hidden;
	float: left;
	top: 0;
	left: 0;
	position: absolute;
	padding-top: 1.5em;
}

.star-rating span::before {
	content: "★★★★★";
	top: 0;
	left: 0;
	position: absolute;
}

.woocommerce-review-link {
	color: var(--tch-woo-mauve);
	font-size: 0.85rem;
	opacity: 0.85;
}

/* ---------- tabs ---------- */
.woocommerce-tabs {
	margin-top: 3rem;
}

.woocommerce-tabs ul.tabs {
	padding: 0;
	margin: 0 0 1.5rem;
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem;
	border-bottom: 1px solid var(--tch-woo-border);
}

.woocommerce-tabs ul.tabs li {
	border: 0 !important;
	background: transparent !important;
	padding: 0 !important;
	margin: 0 !important;
}

.woocommerce-tabs ul.tabs li::before,
.woocommerce-tabs ul.tabs li::after {
	display: none !important;
}

.woocommerce-tabs ul.tabs li a {
	display: inline-block;
	padding: 0.85rem 1.25rem;
	font-size: 0.7rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--tch-woo-foreground);
	border-bottom: 2px solid transparent;
	transition: color 200ms ease, border-color 200ms ease;
}

.woocommerce-tabs ul.tabs li.active a {
	color: var(--tch-woo-heading);
	border-bottom-color: var(--tch-woo-heading);
}

.woocommerce-Tabs-panel {
	padding-top: 1rem;
}

.woocommerce-Tabs-panel h2 {
	font-family: var(--font-serif);
	color: var(--tch-woo-heading);
	font-size: 1.5rem;
}

/* ---------- reviews ---------- */
.woocommerce-Reviews,
#reviews {
	margin-top: 2rem;
}

.woocommerce-noreviews {
	background-color: var(--color-card);
	border: 1px solid var(--tch-woo-border);
	border-radius: var(--tch-woo-radius-card);
	padding: 2rem;
	text-align: center;
}

.woocommerce-review__author {
	font-family: var(--font-serif);
	color: var(--tch-woo-heading);
	font-size: 1.1rem;
}

.commentlist {
	list-style: none;
	margin: 0;
	padding: 0;
}

.commentlist li {
	background-color: var(--color-card);
	border: 1px solid var(--tch-woo-border);
	border-radius: var(--tch-woo-radius-card);
	padding: 1.5rem;
	margin-bottom: 1rem;
}

.commentlist .star-rating {
	font-size: 0.9rem;
}

#review_form_wrapper {
	margin-top: 2rem;
}

#review_form_wrapper form {
	background-color: var(--color-card);
	border: 1px solid var(--tch-woo-border);
	border-radius: var(--tch-woo-radius-card);
	padding: 2rem;
}

.comment-form-rating {
	margin-bottom: 1rem;
}

.comment-form-rating label {
	font-size: 0.7rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--tch-woo-mauve);
	display: block;
	margin-bottom: 0.5rem;
}

.comment-form-rating .stars {
	display: inline-flex;
	gap: 0.25rem;
}

.comment-form-rating .stars a {
	color: var(--tch-woo-mauve);
	text-decoration: none;
}

#respond textarea,
#respond input[type="text"],
#respond input[type="email"] {
	width: 100%;
	background-color: var(--color-background) !important;
	border: 1px solid var(--tch-woo-border) !important;
	border-radius: var(--tch-woo-radius-card) !important;
	padding: 0.85rem 1.25rem !important;
	font-size: 0.9rem !important;
	font-family: var(--font-sans);
	color: var(--tch-woo-foreground);
}

#respond input[type="submit"],
#respond .form-submit input {
	background-color: var(--tch-woo-heading) !important;
	color: var(--color-background) !important;
	border: 1px solid var(--tch-woo-heading) !important;
	border-radius: var(--tch-woo-radius) !important;
	padding: 1rem 2rem !important;
	font-size: 0.7rem !important;
	letter-spacing: 0.22em !important;
	text-transform: uppercase !important;
}

/* ---------- cart page ---------- */
.woocommerce-cart-form table.shop_table {
	border: 0 !important;
	background: transparent !important;
}

.woocommerce-cart-form table.shop_table thead {
	display: none;
}

.woocommerce-cart-form table.shop_table td {
	border: 0 !important;
	padding: 0 !important;
	background: transparent !important;
}

.woocommerce-cart-form table.shop_table .product-remove {
	width: auto !important;
}

.woocommerce-cart-form table.shop_table .product-thumbnail a {
	display: block;
	width: 100%;
	max-width: 9rem;
	aspect-ratio: 1 / 1;
	border-radius: var(--tch-woo-radius-card);
	overflow: hidden;
	background: var(--tch-woo-muted);
}

.woocommerce-cart-form table.shop_table .product-thumbnail img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.woocommerce-cart-form table.shop_table .product-name a {
	color: var(--tch-woo-heading);
	font-family: var(--font-serif);
	font-size: 1.25rem;
}

.woocommerce-cart-form table.shop_table .product-quantity {
	min-width: 140px;
}

.woocommerce-cart-form table.shop_table .quantity .qty,
.woocommerce-cart-form table.shop_table .quantity input {
	width: 100% !important;
	max-width: 60px;
}

/* cart totals */
.cart_totals {
	background-color: var(--color-card);
	border: 1px solid var(--tch-woo-border);
	border-radius: var(--tch-woo-radius-card);
	padding: 2rem;
}

.cart_totals h2 {
	font-family: var(--font-serif);
	color: var(--tch-woo-heading);
	font-size: 1.5rem;
	margin-bottom: 1rem;
}

.cart_totals table.shop_table {
	border: 0 !important;
	background: transparent !important;
}

.cart_totals table.shop_table th,
.cart_totals table.shop_table td {
	border: 0 !important;
	padding: 0.5rem 0 !important;
	background: transparent !important;
}

.cart_totals table.shop_table th {
	font-weight: 400;
	color: var(--tch-woo-foreground);
	opacity: 0.75;
}

.cart_totals .order-total th,
.cart_totals .order-total td {
	font-family: var(--font-serif);
	font-size: 1.4rem;
	color: var(--tch-woo-heading);
	padding-top: 1rem !important;
	border-top: 1px solid var(--tch-woo-border) !important;
}

.cart_totals .shipping-calculator-button {
	color: var(--tch-woo-mauve);
	font-size: 0.85rem;
}

/* ---------- checkout ---------- */
.woocommerce-checkout #customer_details {
	margin-bottom: 2rem;
}

.woocommerce-checkout h3 {
	font-family: var(--font-serif);
	color: var(--tch-woo-heading);
	font-size: 1.5rem;
	margin-bottom: 1rem;
}

#order_review,
#order_review_heading {
	margin-top: 2rem;
}

#order_review_heading {
	font-family: var(--font-serif);
	color: var(--tch-woo-heading);
	font-size: 1.5rem;
}

.checkout.woocommerce-checkout {
	background-color: transparent;
}

.woocommerce-checkout-review-order-table {
	border: 1px solid var(--tch-woo-border);
	border-radius: var(--tch-woo-radius-card);
	background-color: var(--color-card);
	overflow: hidden;
}

.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td {
	padding: 0.75rem 1rem !important;
	background: transparent !important;
}

.woocommerce-checkout-review-order-table tfoot tr.order-total th,
.woocommerce-checkout-review-order-table tfoot tr.order-total td {
	font-family: var(--font-serif);
	font-size: 1.4rem;
	color: var(--tch-woo-heading);
	border-top: 1px solid var(--tch-woo-border);
}

#payment {
	background-color: var(--color-card) !important;
	border-radius: var(--tch-woo-radius-card) !important;
	border: 1px solid var(--tch-woo-border) !important;
	padding: 1.5rem !important;
}

#payment ul.payment_methods {
	border: 0 !important;
	padding: 0 !important;
}

#payment div.payment_box {
	background-color: var(--tch-woo-muted) !important;
	border-radius: var(--tch-woo-radius-card) !important;
	color: var(--tch-woo-foreground);
}

#payment div.payment_box::before {
	border-bottom-color: var(--tch-woo-muted) !important;
}

#place_order {
	width: 100%;
	margin-top: 1rem;
}

/* ---------- my account ---------- */
.woocommerce-account .woocommerce-MyAccount-navigation {
	width: 100%;
	max-width: 18rem;
	margin-bottom: 2rem;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
	list-style: none;
	padding: 0;
	margin: 0;
	background-color: var(--color-card);
	border: 1px solid var(--tch-woo-border);
	border-radius: var(--tch-woo-radius-card);
	overflow: hidden;
}

.woocommerce-account .woocommerce-MyAccount-navigation li {
	border-bottom: 1px solid var(--tch-woo-border);
}

.woocommerce-account .woocommerce-MyAccount-navigation li:last-child {
	border-bottom: 0;
}

.woocommerce-account .woocommerce-MyAccount-navigation a {
	display: block;
	padding: 0.85rem 1.25rem;
	color: var(--tch-woo-foreground);
	font-size: 0.85rem;
	letter-spacing: 0.04em;
	transition: background-color 200ms ease, color 200ms ease;
}

.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation a:hover {
	background-color: var(--tch-woo-muted);
	color: var(--tch-woo-heading);
}

.woocommerce-MyAccount-content {
	flex: 1;
	min-width: 0;
}

@media ( min-width: 900px ) {
	.woocommerce-account .woocommerce-MyAccount-navigation,
	.woocommerce-account .woocommerce-MyAccount-content {
		display: table-cell;
		vertical-align: top;
	}
	.woocommerce-account .woocommerce-MyAccount-navigation {
		padding-right: 2rem;
		width: 18rem;
	}
}

.woocommerce-table--order-details,
.woocommerce-table--customer-details,
.woocommerce-table--my-orders,
.woocommerce-orders-table {
	background-color: var(--color-card);
	border: 1px solid var(--tch-woo-border);
	border-radius: var(--tch-woo-radius-card);
	overflow: hidden;
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
}

.woocommerce-table--order-details th,
.woocommerce-table--order-details td,
.woocommerce-table--customer-details th,
.woocommerce-table--customer-details td,
.woocommerce-table--my-orders th,
.woocommerce-table--my-orders td,
.woocommerce-orders-table th,
.woocommerce-orders-table td {
	padding: 0.85rem 1.25rem !important;
	border: 0 !important;
	border-bottom: 1px solid var(--tch-woo-border) !important;
	background: transparent !important;
}

.woocommerce-table--order-details thead th,
.woocommerce-table--my-orders thead th,
.woocommerce-orders-table thead th {
	background-color: var(--tch-woo-muted) !important;
	font-size: 0.7rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--tch-woo-heading);
}

.woocommerce-Address {
	background-color: var(--color-card);
	border: 1px solid var(--tch-woo-border);
	border-radius: var(--tch-woo-radius-card);
	padding: 1.5rem;
	margin-bottom: 1rem;
}

.woocommerce-Address h3 {
	font-family: var(--font-serif);
	color: var(--tch-woo-heading);
	font-size: 1.25rem;
	margin-bottom: 0.75rem;
}

/* ---------- lost password / forms ---------- */
.woocommerce-ResetPassword,
.woocommerce-form-login,
.woocommerce-form-register {
	background-color: var(--color-card);
	border: 1px solid var(--tch-woo-border);
	border-radius: var(--tch-woo-radius-card);
	padding: 2rem;
	max-width: 30rem;
	margin: 2rem auto;
}

.woocommerce-form-login .form-row,
.woocommerce-form-register .form-row {
	margin-bottom: 1rem;
}

.woocommerce-LostPassword,
.woocommerce-form-login .lost_password a {
	color: var(--tch-woo-mauve);
	font-size: 0.85rem;
}

/* ---------- breadcrumb from Woo ---------- */
.woocommerce-breadcrumb {
	font-size: 0.7rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--tch-woo-foreground);
	opacity: 0.7;
	margin-bottom: 1.5rem;
}

.woocommerce-breadcrumb a {
	color: inherit;
}

/* ---------- pagination (default Woo) ---------- */
.woocommerce-pagination ul.page-numbers {
	display: flex;
	gap: 0.5rem;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	padding: 0;
	margin: 0;
	list-style: none;
}

.woocommerce-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.75rem;
	height: 2.75rem;
	padding: 0 0.75rem;
	border-radius: var(--tch-woo-radius) !important;
	border: 1px solid var(--tch-woo-border);
	font-size: 0.85rem;
	color: var(--tch-woo-foreground);
	background-color: transparent;
}

.woocommerce-pagination .page-numbers.current {
	background-color: var(--tch-woo-heading) !important;
	color: var(--color-background) !important;
	border-color: var(--tch-woo-heading) !important;
}

/* ---------- filters sidebar / form ---------- */
.woocommerce-ordering {
	margin: 0;
}

.tch-price-range {
	accent-color: var(--tch-woo-blush);
	width: 100%;
}

/* ---------- sticky header shrink ---------- */
.tch-header {
	-webkit-backdrop-filter: blur(0);
	backdrop-filter: blur(0);
	box-shadow: none;
}

.tch-header.is-scrolled {
	background-color: color-mix( in oklab, var(--background) 80%, transparent ) !important;
	box-shadow: var(--shadow-soft);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
}

/* ---------- accordion open state ---------- */
.tch-acc-panel.tch-open {
	grid-template-rows: 1fr !important;
}

.tch-acc-panel.tch-open > * {
	padding-bottom: 1.25rem;
}

/* ---------- quantity wrap stylings for cart context ---------- */
.woocommerce-cart-form .quantity {
	display: inline-flex;
	align-items: center;
	border-radius: var(--tch-woo-radius);
	overflow: hidden;
}

.woocommerce-cart-form .quantity .qty {
	font-size: 0.9rem;
	border: 0 !important;
	background: transparent !important;
}

/* ---------- product image lightbox ---------- */
.tch-lightbox {
	position: fixed;
	inset: 0;
	z-index: 100;
	background-color: rgba(0, 0, 0, 0.95);
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
	display: flex;
	flex-direction: column;
	animation: tchLbFadeIn 0.2s ease;
}

.tch-lightbox[hidden] {
	display: none;
}

@keyframes tchLbFadeIn {
	from { opacity: 0; }
	to { opacity: 1; }
}

body.tch-lb-open {
	overflow: hidden;
}

.tch-lightbox-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 4rem;
	padding: 0 1.25rem;
	color: rgba(255, 255, 255, 0.8);
	flex-shrink: 0;
}

@media ( min-width: 768px ) {
	.tch-lightbox-bar { padding: 0 2rem; }
}

.tch-lightbox-count {
	font-size: 0.75rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

.tch-lightbox-close {
	height: 2.75rem;
	width: 2.75rem;
	border-radius: 9999px;
	display: grid;
	place-items: center;
	color: #fff;
	transition: background-color 0.2s ease, transform 0.2s ease;
}

.tch-lightbox-close:hover {
	background-color: rgba(255, 255, 255, 0.1);
}

.tch-lightbox-stage {
	position: relative;
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 1rem;
	overflow: hidden;
	user-select: none;
	touch-action: pan-y;
}

@media ( min-width: 768px ) {
	.tch-lightbox-stage { padding: 0 4rem; }
}

.tch-lightbox-stage img[data-tch-lb-slide] {
	position: absolute;
	max-height: 100%;
	max-width: 100%;
	object-fit: contain;
	opacity: 0;
	pointer-events: none;
	transform: translateX(2rem) scale(0.98);
	transition: opacity 0.5s ease-out, transform 0.5s ease-out;
}

.tch-lightbox-stage img[data-tch-lb-slide].is-left {
	transform: translateX(-2rem) scale(0.98);
}

.tch-lightbox-stage img[data-tch-lb-slide].is-active {
	opacity: 1;
	pointer-events: auto;
	transform: translateX(0) scale(1);
}

.tch-lightbox-prev,
.tch-lightbox-next {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	height: 3rem;
	width: 3rem;
	border-radius: 9999px;
	display: grid;
	place-items: center;
	background-color: rgba(255, 255, 255, 0.1);
	color: #fff;
	transition: background-color 0.2s ease, transform 0.2s ease;
}

@media ( min-width: 768px ) {
	.tch-lightbox-prev,
	.tch-lightbox-next {
		height: 3.5rem;
		width: 3.5rem;
	}
}

.tch-lightbox-prev:hover,
.tch-lightbox-next:hover {
	background-color: rgba(255, 255, 255, 0.2);
	transform: translateY(-50%) scale(1.05);
}

.tch-lightbox-prev { left: 0.75rem; }
.tch-lightbox-next { right: 0.75rem; }

@media ( min-width: 768px ) {
	.tch-lightbox-prev { left: 1.5rem; }
	.tch-lightbox-next { right: 1.5rem; }
}

.tch-lightbox-thumbs {
	display: flex;
	gap: 0.5rem;
	overflow-x: auto;
	justify-content: flex-start;
	padding: 1rem 1rem;
	flex-shrink: 0;
	scrollbar-width: none;
}

.tch-lightbox-thumbs::-webkit-scrollbar {
	display: none;
}

@media ( min-width: 768px ) {
	.tch-lightbox-thumbs {
		gap: 0.75rem;
		justify-content: center;
		padding: 1.5rem 2rem;
	}
}

.tch-lightbox-thumbs button.is-active {
	box-shadow: 0 0 0 2px #fff;
	opacity: 1 !important;
}

/* ---------- pagination niceties (custom template) ---------- */
.tch-pagination {
	font-family: var(--font-sans);
}

/* ---------- blog article prose ---------- */
.tch-prose {
	color: var(--color-foreground, var(--foreground));
	font-size: 1rem;
	line-height: 1.85;
}

.tch-prose > * + * {
	margin-top: 1.25em;
}

.tch-prose p {
	margin: 0;
}

.tch-prose h2,
.tch-prose h3,
.tch-prose h4 {
	font-family: var(--font-serif);
	color: var(--heading);
	font-weight: 500;
	letter-spacing: -0.01em;
	line-height: 1.25;
	margin: 2em 0 0.75em;
}

.tch-prose h2 { font-size: 1.9em; }
.tch-prose h3 { font-size: 1.45em; }
.tch-prose h4 { font-size: 1.15em; }

.tch-prose > * + h2,
.tch-prose > * + h3,
.tch-prose > * + h4 {
	margin-top: 0;
}

.tch-prose a {
	color: var(--mauve);
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-color: color-mix( in oklab, var(--mauve) 45%, transparent );
	transition: text-decoration-color 0.2s ease;
}

.tch-prose a:hover {
	text-decoration-color: var(--mauve);
}

.tch-prose strong {
	color: var(--heading);
}

.tch-prose ul,
.tch-prose ol {
	padding-left: 1.4em;
	display: flex;
	flex-direction: column;
	gap: 0.5em;
}

.tch-prose ul { list-style: disc; }
.tch-prose ol { list-style: decimal; }

.tch-prose li::marker {
	color: var(--mauve);
}

.tch-prose blockquote {
	border-left: 3px solid var(--blush);
	padding: 0.25rem 0 0.25rem 1.5rem;
	font-family: var(--font-serif);
	font-size: 1.2em;
	font-style: italic;
	color: var(--heading);
}

.tch-prose blockquote p {
	margin: 0;
}

.tch-prose img,
.tch-prose .wp-block-image img {
	border-radius: 1.25rem;
}

.tch-prose figure {
	margin: 2em 0;
}

.tch-prose figcaption {
	font-size: 0.8rem;
	opacity: 0.65;
	text-align: center;
	margin-top: 0.75em;
}

.tch-prose hr {
	border: 0;
	border-top: 1px solid var(--border);
	margin: 2.5em auto;
	width: 60%;
}

.tch-prose code {
	background-color: var(--card);
	border: 1px solid var(--border);
	border-radius: 0.4em;
	padding: 0.15em 0.45em;
	font-size: 0.9em;
}

.tch-prose pre {
	background-color: var(--card);
	border: 1px solid var(--border);
	border-radius: 1rem;
	padding: 1.25rem;
	overflow-x: auto;
	font-size: 0.9em;
}

.tch-prose pre code {
	background: transparent;
	border: 0;
	padding: 0;
}

.tch-prose table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.95em;
}

.tch-prose th,
.tch-prose td {
	border: 1px solid var(--border);
	padding: 0.6em 0.9em;
	text-align: left;
}

.tch-prose th {
	font-family: var(--font-sans);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 0.75em;
	color: var(--heading);
}

.tch-pagination ul.page-numbers {
	display: flex;
	gap: 0.5rem;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	padding: 0;
	margin: 0;
	list-style: none;
}

.tch-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.75rem;
	height: 2.75rem;
	padding: 0 0.75rem;
	border-radius: var(--tch-woo-radius);
	border: 1px solid var(--tch-woo-border);
	font-size: 0.85rem;
	text-decoration: none;
	color: var(--tch-woo-foreground);
	background-color: transparent;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.tch-pagination a.page-numbers:hover {
	background-color: var(--tch-woo-card);
	color: var(--tch-woo-heading);
}

.tch-pagination span.page-numbers.current,
.tch-pagination .page-numbers.current {
	background-color: var(--tch-woo-heading) !important;
	color: var(--color-background) !important;
	border-color: var(--tch-woo-heading) !important;
}

/* ---------- screen reader ---------- */
.screen-reader-text,
.woocommerce-form-login .screen-reader-text {
	border: 0;
	clip: rect( 1px, 1px, 1px, 1px );
	-webkit-clip-path: inset( 50% );
	clip-path: inset( 50% );
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

/* ---------- responsive ---------- */
@media ( max-width: 767px ) {
	.woocommerce-form-login,
	.woocommerce-form-register,
	.woocommerce-ResetPassword {
		padding: 1.5rem;
	}
}
/* ==========================================================================
   Header nav — dropdowns (desktop) + nested (mobile)
   ========================================================================== */

.tch-nav {
	position: relative;
}

.tch-nav > li {
	position: relative;
	display: flex;
	align-items: center;
	isolation: isolate;
}

.tch-nav .sub-menu.tch-sub-menu {
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translate(-50%, 8px);
	min-width: 220px;
	max-width: 320px;
	max-height: min(70vh, 480px);
	overflow-y: auto;
	padding: 0.5rem;
	margin: 0;
	list-style: none;
	background-color: var(--color-card);
	border: 1px solid var(--border);
	border-radius: 1rem;
	box-shadow: 0 18px 40px -18px rgb(0 0 0 / 0.45);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 200ms ease, transform 200ms ease, visibility 200ms;
	z-index: 50;
}

.tch-nav > li.has-children > .sub-menu.tch-sub-menu {
	transform: translate(-50%, 8px);
}

.tch-nav > li.has-children:hover > .sub-menu.tch-sub-menu,
.tch-nav > li.has-children:focus-within > .sub-menu.tch-sub-menu,
.tch-nav > li.has-children.is-open > .sub-menu.tch-sub-menu {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translate(-50%, 0);
}

.tch-nav .sub-menu.tch-sub-menu .sub-menu.tch-sub-menu {
	top: 0;
	left: 100%;
	transform: translate(-8px, 0);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}

.tch-nav .sub-menu.tch-sub-menu li.has-children:hover > .sub-menu.tch-sub-menu,
.tch-nav .sub-menu.tch-sub-menu li.has-children:focus-within > .sub-menu.tch-sub-menu {
	transform: translate(0, 0);
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.tch-nav .sub-menu.tch-sub-menu li {
	position: relative;
	display: block;
	margin: 0;
}

.tch-nav .sub-menu.tch-sub-menu li a {
	display: block;
	padding: 0.5rem 0.75rem;
	border-radius: 0.5rem;
	color: var(--foreground);
	white-space: nowrap;
}

.tch-nav .sub-menu.tch-sub-menu li a:hover,
.tch-nav .sub-menu.tch-sub-menu li.is-active > a,
.tch-nav .sub-menu.tch-sub-menu li.is-ancestor > a {
	background-color: var(--muted);
	color: var(--heading);
}

.tch-nav .sub-menu.tch-sub-menu li.has-children > a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
}

.tch-nav .sub-menu.tch-sub-menu li.has-children > a::after {
	content: "";
	width: 0.35rem;
	height: 0.35rem;
	border-right: 1.5px solid currentColor;
	border-top: 1.5px solid currentColor;
	transform: rotate(45deg);
	opacity: 0.6;
}

.tch-nav .tch-sub-toggle {
	display: none;
}

/* ---------- mobile drawer ---------- */
.tch-mobile-nav-wrap[hidden] {
	display: none !important;
}

.tch-mobile-nav-wrap.hidden {
	display: none !important;
}

.tch-mobile-nav {
	list-style: none;
	margin: 0;
	padding: 0;
	gap: 0.25rem;
}

.tch-mobile-nav > li {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	border-top: 1px solid var(--border);
}

.tch-mobile-nav > li > a {
	flex: 1 1 auto;
	padding: 0.75rem 0;
	font-size: 0.875rem;
	letter-spacing: 0.02em;
	color: var(--foreground);
}

.tch-mobile-nav > li > a:hover {
	color: var(--mauve);
}

.tch-mobile-nav .tch-sub-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.25rem;
	height: 2.25rem;
	margin-left: auto;
	color: var(--foreground);
	opacity: 0.7;
	cursor: pointer;
	background: transparent;
	border: 0;
	border-radius: 9999px;
	transition: opacity 200ms ease, background-color 200ms ease;
}

.tch-mobile-nav .tch-sub-toggle:hover {
	opacity: 1;
	background-color: var(--muted);
}

.tch-mobile-nav .tch-sub-toggle .tch-sub-toggle-icon {
	display: inline-flex;
	transition: transform 250ms ease;
}

.tch-mobile-nav li.is-open > .tch-sub-toggle .tch-sub-toggle-icon {
	transform: rotate(180deg);
}

.tch-mobile-nav .sub-menu.tch-sub-menu {
	flex: 0 0 100%;
	max-height: 0;
	overflow: hidden;
	list-style: none;
	margin: 0;
	padding: 0 0 0 1rem;
	transition: max-height 250ms ease;
}

.tch-mobile-nav li.is-open > .sub-menu.tch-sub-menu {
	max-height: 1000px;
	padding-bottom: 0.5rem;
}

.tch-mobile-nav .sub-menu.tch-sub-menu > li {
	border-top: 0;
}

.tch-mobile-nav .sub-menu.tch-sub-menu > li > a {
	padding: 0.5rem 0;
	font-size: 0.8125rem;
	opacity: 0.85;
}

.tch-mobile-nav .sub-menu.tch-sub-menu > li > a:hover {
	opacity: 1;
}
