/**
 * WooCommerce Styles
 *
 * Comprehensive styling for all WooCommerce components
 *
 * @package TaatiStudio
 */
:root {
	/* Size Guide Table Tokens */
	--ts-sg-font-size: 1rem;
	--ts-sg-font-size-sm: 0.875rem;
	--ts-sg-cell-padding: 0.75rem 1rem;
	--ts-sg-cell-padding-sm: 0.5rem;
	--ts-sg-head-bg: var(--color-light-gray);
	--ts-sg-head-color: var(--color-primary);
	--ts-sg-row-hover-bg: var(--color-light-gray);

	/* Badge Palette */
	--ts-badge-sale-bg: var(--color-accent-strong, var(--color-accent, #C3A46A));
	--ts-badge-new-bg: var(--color-success, #2E7D32);
	--ts-badge-out-of-stock-bg: var(--color-danger, #C62828);
	--ts-badge-low-stock-bg: var(--color-warning, #F59E0B);
	--ts-badge-limited-bg: var(--color-terra, var(--color-accent, #A3583B));
	--ts-badge-preorder-bg: var(--color-info, #2563EB);
	--ts-badge-backorder-bg: var(--color-mid, #6B7280);

	/* Generic Table Tokens (future use) – mapped to Size Guide tokens for now to avoid duplication */
	--ts-table-border-color: var(--color-border);
	--ts-table-border-radius: var(--border-radius);
	--ts-table-head-bg: var(--ts-sg-head-bg);
	--ts-table-head-color: var(--ts-sg-head-color);
	--ts-table-cell-padding: var(--ts-sg-cell-padding);
	--ts-table-cell-padding-sm: var(--ts-sg-cell-padding-sm);
}

/* ========================================
   Single Product Layout Tokens
   ======================================== */
/* NOTE: Single product layout tokens & grid moved to product-single.css to avoid duplication */

/* ========================================
   Product Grid - Mobile First
   ======================================== */
.woocommerce ul.products,
.woocommerce-page ul.products {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem 1.5rem;
	margin: 0 0 2rem;
	padding: 0;
	list-style: none;
}

/* Tablet: 2 columns */
@media (min-width: 768px) {
	.woocommerce ul.products.columns-2,
	.woocommerce ul.products.columns-3,
	.woocommerce ul.products.columns-4,
	.woocommerce-page ul.products.columns-3,
	.woocommerce-page ul.products.columns-4,
	.woocommerce-page ul.products.columns-5 {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* Desktop: Actual column count */
@media (min-width: 1024px) {
	.woocommerce ul.products.columns-2,
	.woocommerce-page ul.products.columns-2 {
		grid-template-columns: repeat(2, 1fr);
	}
	.woocommerce ul.products.columns-3,
	.woocommerce-page ul.products.columns-3 {
		grid-template-columns: repeat(3, 1fr);
	}
	.woocommerce ul.products.columns-4,
	.woocommerce-page ul.products.columns-4 {
		grid-template-columns: repeat(4, 1fr);
	}
	.woocommerce ul.products.columns-5,
	.woocommerce-page ul.products.columns-5 {
		grid-template-columns: repeat(5, 1fr);
	}
}

/* Product Item */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	margin: 0;
}

/* ========================================
   Product Card
   ======================================== */

.ts-product-card {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius);
	overflow: hidden;
	transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.ts-product-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--shadow-lg);
	border-color: var(--color-primary);
}

.ts-product-card-inner {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.ts-product-card-image { position: relative; overflow: hidden; aspect-ratio: 1 / 1; background: var(--color-light-gray); }
.ts-product-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; }
.ts-product-card:hover .ts-product-card-image img { transform: scale(1.05); }

/* Product Badges */
.ts-product-badges {
	position: absolute;
	top: 1rem;
	left: 1rem;
	z-index: 2;
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	gap: 0.4rem;
	max-width: min(92%, 280px);
}

/* Layout modifiers */
.ts-product-badges.ts-product-badges--horizontal { flex-direction: row; flex-wrap: wrap; gap: 0.4rem; }
.ts-product-badges.ts-product-badges--stack { flex-direction: column; flex-wrap: nowrap; }
.ts-product-badges.ts-product-badges--grid { display: grid; grid-auto-flow: row; grid-auto-rows: max-content; grid-template-columns: auto auto; gap: 0.35rem; }

/* Clamp badge text and prevent overflow wrapping weirdness */
.ts-product-badges .ts-badge { white-space: nowrap; max-width: 100%; }
.ts-product-badges--grid .ts-badge { white-space: normal; }

/* Optional multi-line truncation when too many badges present */
.ts-product-badges[data-badge-overflow="true"] .ts-badge { opacity: 0.85; }
.ts-badge-more { background: var(--color-mid, #6B7280); cursor: pointer; }

.ts-badge, .ts-badge--generic {
	display: inline-flex;
	align-items: center;
	padding: 0.25rem 0.75rem;
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	border-radius: 2px;
	background: var(--color-primary);
	color: var(--color-white);
	line-height: 1.2;
	box-shadow: var(--shadow-status-neutral, 0 0 0 1px rgba(0,0,0,0.1));
    opacity: 0;
    transform: translateY(-4px);
    animation: ts-badge-in 300ms var(--motion-ease-out, ease-out) forwards;
}
.ts-product-badges .ts-badge:nth-child(2){ animation-delay: 60ms; }
.ts-product-badges .ts-badge:nth-child(3){ animation-delay: 120ms; }

@keyframes ts-badge-in {
	to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
	.ts-badge { animation: none; opacity: 1; transform: none; }
	/* Disable hover/transition effects on product cards and action buttons */
	.ts-product-card,
	.ts-product-card-image img,
	.ts-quick-view-btn,
	.ts-quick-view-button,
	.ts-wishlist-btn,
	.ts-wishlist-button,
	.ts-btn-icon { transition: none !important; }
	.ts-product-card:hover,
	.ts-product-card:hover .ts-product-card-image img,
	.ts-quick-view-btn:hover,
	.ts-quick-view-button:hover,
	.ts-wishlist-btn:hover,
	.ts-wishlist-button:hover,
	.ts-btn-icon:hover { transform: none !important; }
}
.ts-badge-sale { background: var(--ts-badge-sale-bg); }
.ts-badge-new { background: var(--ts-badge-new-bg); }
.ts-badge-out-of-stock { background: var(--ts-badge-out-of-stock-bg); }
.ts-badge-low-stock { background: var(--ts-badge-low-stock-bg); }
.ts-badge-limited { background: var(--ts-badge-limited-bg); }
.ts-badge-preorder { background: var(--ts-badge-preorder-bg); }
.ts-badge-backorder { background: var(--ts-badge-backorder-bg); }

/* Product card modifier when any sale badge present */
.ts-product-card.ts-has-sale .ts-product-card-image img { outline: 2px solid rgba(var(--color-accent-rgb, 195,164,106),0.15); outline-offset: -2px; }

/* Responsive badge sizing for tighter grids */
.products.columns-4 .ts-product-badges .ts-badge { font-size: 0.68rem; padding: 0.18rem 0.5rem; }
.products.columns-5 .ts-product-badges .ts-badge { font-size: 0.65rem; padding: 0.16rem 0.45rem; }
.products.columns-3 .ts-product-badges .ts-badge { font-size: 0.7rem; padding: 0.2rem 0.55rem; }

/* When stacked, keep a clean single column */
.ts-product-badges.ts-product-badges--stack .ts-badge { width: max-content; }

/* Duplicate badge color overrides removed; canonical colors defined above for consistency */

/* WooCommerce Sale Badge */
.onsale,
.ts-onsale {
	position: absolute;
	top: 1rem;
	left: 1rem;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 50px;
	min-height: 50px;
	padding: 0.5rem;
	font-size: 0.875rem;
	font-weight: 700;
	text-transform: uppercase;
	background: var(--color-accent, #E74C3C);
	color: var(--color-white, #FFFFFF);
	border-radius: 50%;
	line-height: 1;
}

/* Product Actions (Quick View, Wishlist) */
.ts-product-actions {
	position: absolute;
	top: 1rem;
	right: 1rem;
	z-index: 2;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	opacity: 0;
	transform: translateX(10px);
	transition: all 0.3s ease;
}

.ts-product-card:hover .ts-product-actions {
	opacity: 1;
	transform: translateX(0);
}

.ts-quick-view-btn,
.ts-quick-view-button,
.ts-wishlist-btn,
.ts-wishlist-button,
.ts-btn-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: 50%;
	cursor: pointer;
	transition: all 0.3s ease;
	padding: 0;
	overflow: hidden;
}

/* Hide any text inside icon buttons - keep only screen reader text */
.ts-quick-view-btn > span:not(.screen-reader-text),
.ts-quick-view-button > span:not(.screen-reader-text),
.ts-wishlist-btn > span:not(.screen-reader-text),
.ts-wishlist-button > span:not(.screen-reader-text) {
	display: none !important;
}

.ts-quick-view-btn:hover,
.ts-quick-view-button:hover,
.ts-wishlist-btn:hover,
.ts-wishlist-button:hover,
.ts-btn-icon:hover {
	background: var(--color-primary);
	border-color: var(--color-primary);
	color: var(--color-white);
	transform: scale(1.1);
}

.ts-wishlist-btn.added,
.ts-wishlist-button.added {
	background: var(--color-accent);
	border-color: var(--color-accent);
	color: var(--color-white);
}

/* SVG icons inside action buttons */
.ts-product-actions svg,
.ts-btn-icon svg,
.ts-quick-view-button svg,
.ts-wishlist-button svg {
	width: 20px;
	height: 20px;
}

/* Product Content */
.ts-product-card-content {
	flex: 1;
	padding: 1.5rem;
	display: flex;
	flex-direction: column;
}

.ts-product-category {
	font-size: 0.875rem;
	color: var(--color-secondary);
	font-weight: 500;
	margin-bottom: 0.5rem;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.ts-product-title {
	margin: 0 0 1rem;
	font-size: 1.125rem;
	font-weight: 600;
	line-height: 1.4;
	color: var(--color-text);
}

.ts-product-title a {
	color: inherit;
	text-decoration: none;
	transition: color 0.3s ease;
}

.ts-product-title a:hover {
	color: var(--color-primary);
}

/* WooCommerce Default Product Title (fallback) */
.woocommerce-loop-product__title {
	margin: 0 0 1rem;
	font-size: 1.125rem;
	font-weight: 600;
	line-height: 1.4;
	color: var(--color-text);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	padding: 0;
	margin: 0 0 1rem;
}

.ts-product-excerpt {
	font-size: 0.875rem;
	color: var(--color-gray);
	line-height: 1.6;
	margin-bottom: 1rem;
}

/* Product Rating */
.ts-product-rating {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 1rem;
}

.star-rating {
	display: inline-flex;
	position: relative;
	font-size: 1rem;
	color: var(--color-secondary);
}

.woocommerce-review-link {
	font-size: 0.875rem;
	color: var(--color-gray);
	text-decoration: none;
}

.woocommerce-review-link:hover {
	color: var(--color-primary);
}

/* Product Price */
.ts-product-card-footer {
	margin-top: auto;
	padding: 0 1.5rem 1.5rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.price {
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--color-primary);
}

.price del {
	font-size: 1rem;
	font-weight: 400;
	color: var(--color-gray);
	margin-right: 0.5rem;
}

.price ins {
	text-decoration: none;
	color: var(--color-accent);
}

/* Woo Add to Cart states align to theme buttons */
.ts-product-card .ts-btn.loading { opacity: 0.6; pointer-events: none; }
.ts-product-card .ts-btn.added { background: var(--color-secondary); border-color: var(--color-secondary); color: var(--color-white); }

/* ========================================
   Single Product
   ======================================== */

/* 
 * Single product layout moved to product-single.css
 * Template uses .ts-product-main for grid layout
 * All product-specific styles consolidated in one file
 */

/* Product Gallery - WooCommerce core compatibility */
.ts-product-gallery,
.woocommerce-product-gallery {
	position: relative;
	margin-bottom: 2rem;
}

.ts-product-gallery__wrapper,
.woocommerce-product-gallery__wrapper {
	position: relative;
	margin-bottom: 1rem;
	border-radius: var(--border-radius, 8px);
	overflow: hidden;
}

/* Make gallery images visible and properly sized */
.woocommerce-product-gallery {
	opacity: 1 !important;
}

.woocommerce-product-gallery__wrapper img,
.ts-product-gallery__wrapper img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: var(--border-radius, 8px);
}

/* ========================================
   Quick View Modal
   ======================================== */
.woocommerce-product-gallery__image {
	position: relative;
}

.woocommerce-product-gallery__image img {
	width: 100%;
	height: auto;
	display: block !important;
	border-radius: var(--border-radius, 8px);
	border: 1px solid var(--color-border-mid);
}

/* Thumbnails Grid */
.ts-product-thumbnails,
.flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0.75rem;
	margin-top: 1rem;
	padding: 0;
	list-style: none;
}

.ts-product-thumbnails div,
.flex-control-thumbs li {
	position: relative;
	cursor: pointer;
	border-radius: var(--border-radius, 6px);
	overflow: hidden;
	border: 2px solid transparent;
	transition: all 0.3s ease;
}

.ts-product-thumbnails img,
.flex-control-thumbs img {
	width: 100%;
	height: auto;
	display: block !important;
	border-radius: var(--border-radius, 6px);
	opacity: 0.7;
	transition: opacity 0.3s ease;
}

.ts-product-thumbnails div:hover img,
.flex-control-thumbs li:hover img,
.ts-product-thumbnails img.active,
.flex-control-thumbs img.flex-active {
	opacity: 1;
}

.ts-product-thumbnails div:hover,
.flex-control-thumbs li:hover,
.ts-product-thumbnails .active,
.flex-control-thumbs li.flex-active {
	border-color: var(--color-secondary);
}

/* Responsive thumbnails */
@media (max-width: 767px) {
	.ts-product-thumbnails,
	.flex-control-thumbs {
		grid-template-columns: repeat(3, 1fr);
		gap: 0.5rem;
	}
}

/* ========================================
   Quick View Modal
   ======================================== */

.ts-quick-view-modal {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 99999;
	display: none;
	align-items: center;
	justify-content: center;
	opacity: 0;
	transition: opacity 0.3s ease;
}

.ts-quick-view-modal.ts-active,
.ts-quick-view-modal.active {
	display: flex;
	opacity: 1;
}

.ts-quick-view-overlay {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: var(--overlay-scrim-strong);
	backdrop-filter: blur(4px);
}

.ts-quick-view-container {
	position: relative;
	z-index: 1;
	width: 90%;
	max-width: 1000px;
	max-height: 90vh;
	background: var(--color-white, #FFFFFF);
	border-radius: var(--border-radius, 8px);
	overflow: hidden;
	box-shadow: var(--shadow-xl);
	display: flex;
	flex-direction: column;
}

.ts-quick-view-header {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	padding: 1rem 1.5rem;
	border-bottom: 1px solid var(--color-border, rgba(195, 164, 106, 0.2));
}

.ts-quick-view-close {
	width: 36px;
	height: 36px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: 1px solid var(--color-border);
	border-radius: 50%;
	cursor: pointer;
	transition: all 0.3s ease;
}


.ts-quick-view-close:hover {
	background: var(--color-secondary);
	border-color: var(--color-secondary);
	color: var(--color-white);
	transform: rotate(90deg);
	transition: transform var(--motion-duration-2) var(--motion-ease-standard), background var(--motion-duration-2) var(--motion-ease-standard);
}

.ts-quick-view-close svg {
	width: 20px;
	height: 20px;
}

.ts-quick-view-content {
	flex: 1;
	overflow-y: auto;
	padding: 2rem;
}

.ts-quick-view-loading {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	min-height: 400px;
	color: var(--color-gray);
}

.ts-quick-view-loading p {
	margin: 0;
	font-size: 0.9375rem;
	color: var(--color-text-light, #666);
}

/* Spinner animation */
.ts-spinner {
	width: 40px;
	height: 40px;
	border: 3px solid var(--color-border-mid);
	border-top-color: var(--color-secondary);
	border-radius: 50%;
	animation: ts-spin var(--motion-duration-2) linear infinite;
}

@keyframes ts-spin {
	from {
		transform: rotate(0deg);
	}
	to {
		transform: rotate(360deg);
	}
}

.ts-quick-view-product {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 3rem;
}

@media (prefers-reduced-motion: reduce) {
	.ts-step-current .ts-step-number { animation: none; box-shadow: var(--shadow-md); }
	.ts-shipping-progress-fill { animation: none; }
}

.ts-quick-view-images {
	position: relative;
}

.ts-quick-view-image {
	width: 100%;
	height: auto;
	border-radius: var(--border-radius, 8px);
	border: 1px solid var(--color-border);
}

.ts-quick-view-summary {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.ts-quick-view-summary .product_title {
	font-size: 1.75rem;
	margin: 0 0 0.5rem;
}

.ts-quick-view-summary .price {
	font-size: 1.5rem;
}

.ts-quick-view-summary .woocommerce-product-details__short-description {
	font-size: 0.9375rem;
	line-height: 1.6;
	color: var(--color-gray);
}

.ts-quick-view-summary form.cart {
	margin-top: auto;
}

.ts-quick-view-error {
	text-align: center;
	padding: 3rem;
	color: var(--color-gray);
}

/* Quick view modal responsive */
@media (max-width: 767px) {
	.ts-quick-view-container {
		width: 95%;
		max-height: 95vh;
	}

	.ts-quick-view-content {
		padding: 1.5rem;
	}

	.ts-quick-view-product {
		grid-template-columns: 1fr;
		gap: 2rem;
	}
}

/* Lock body scroll when modal is open */
body.ts-quick-view-open {
	overflow: hidden;
}

/* 
 * Single Product Page layouts moved to product-single.css
 * Eliminates duplicate grid definitions
 */

/* Gallery wrapper for premium Shopify-style layout */
.ts-product-gallery-wrapper {
	position: relative;
}

/* Moved summary wrapper/title/price styles to product-single.css to avoid duplication */

/* Short description (consolidated: removed later duplicate differing values) */
/* NOTE: Single source of truth lives here; previous wide-container variant removed. */
.woocommerce-product-details__short-description {
	font-size: 1rem;
	line-height: 1.8;
	color: var(--color-gray, #666);
	margin-bottom: 0.5rem;
}

/* ========================================
   (Removed duplicate wide-container Product Grid block)
   Wide view adjustments merged into initial mobile-first block via variables.
   ======================================== */
/* Enhancement: increase spacing for very wide layouts without duplicating base selectors */
@media (min-width: 1280px) {
	.woocommerce ul.products,
	.woocommerce-page ul.products {
		gap: 2.5rem 2rem;
		margin-bottom: 3rem;
	}
}

/* ========================================
   Related Products - 3 Columns Max
   ======================================== */

/* Related / Upsells / Cross-sells unified selector */
:is(.ts-related-products,.related.products,.upsells.products) ul.products {
	grid-template-columns: 1fr;
	gap: 2rem 1.5rem;
}

@media (min-width: 640px) {
	:is(.ts-related-products,.related.products,.upsells.products) ul.products {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	:is(.ts-related-products,.related.products,.upsells.products) ul.products {
		grid-template-columns: repeat(3, 1fr);
		gap: 2.5rem 2rem;
	}
}

/* Never show 4 columns for related products */
:is(.ts-related-products,.related.products,.upsells.products) ul.products.columns-4 {
	grid-template-columns: repeat(3, 1fr) !important;
}

/* Product Meta */
.ts-product-summary-wrapper .summary {
	max-width: 540px;
}

.product_title {
	margin: 0 0 1rem;
	font-size: 2rem;
	font-weight: 700;
	line-height: 1.3;
	color: var(--color-text);
}

.woocommerce-product-rating {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin-bottom: 1.5rem;
	padding-bottom: 1.5rem;
	border-bottom: 1px solid var(--color-border);
}

.woocommerce-product-rating .star-rating {
	font-size: 1.125rem;
}

.price {
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--color-primary);
	margin-bottom: 1.5rem;
	display: block;
}

/* Duplicate global short description removed; canonical block defined earlier */

/* Variations */
.ts-variations {
	margin-bottom: 2rem;
}

.ts-variation-item {
	margin-bottom: 1.5rem;
}

.ts-variation-item label {
	display: block;
	font-weight: 600;
	margin-bottom: 0.5rem;
	color: var(--color-text);
}

.ts-variation-select-wrapper select {
	width: 100%;
	padding: 0.75rem 1rem;
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius);
	font-size: 1rem;
	background: var(--color-white);
	cursor: pointer;
	transition: all 0.3s ease;
}

.ts-variation-select-wrapper select:focus {
	border-color: var(--color-primary);
	outline: none;
	box-shadow: var(--focus-ring);
}

/* ========================================
   Variation Swatches
   ======================================== */

.ts-variation-swatches {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-bottom: 1rem;
}

/* Base Swatch Styles */
.ts-swatch {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: all 0.2s ease;
	user-select: none;
}

.ts-swatch[aria-disabled="true"],
.ts-swatch.is-disabled {
	opacity: 0.3;
	cursor: not-allowed;
	pointer-events: none;
}

.ts-swatch.ts-swatch-clicked {
	animation: swatch-click 0.3s ease;
}

@keyframes swatch-click {
	0%, 100% { transform: scale(1); }
	50% { transform: scale(0.95); }
}

/* Color Swatches */

.ts-swatch-color {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	border: 2px solid var(--color-border);
	box-shadow: var(--shadow-sm);
	transition: all 0.2s ease;
}

.ts-swatch-color:hover {
	box-shadow: var(--shadow-md);
}

.ts-swatch-color.selected {
	box-shadow: 0 0 0 2px var(--color-gold);
	border-color: var(--color-white);
}

/* White color special styling */
/* Case-insensitive catch for white swatches (matches #fff, #ffffff, any case) */
.ts-swatch-color[style*="#fff" i] {
	border-color: #E5E7EB;
}

/* Size Swatches */
.ts-swatch-size {
	min-width: 48px;
	height: 40px;
	padding: 0 1rem;
	border: 2px solid var(--color-border);
	border-radius: 6px;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--color-text);
	background: var(--color-white);
	transition: all 0.2s ease;
}

.ts-swatch-size:hover {
	border-color: var(--color-primary);
	background: var(--color-light-gray);
}

.ts-swatch-size.selected {
	border-color: var(--color-gold);
	background: var(--color-gold);
	color: var(--color-white);
}

/* Image/Pattern Swatches */
.ts-swatch-image {
	width: 48px;
	height: 48px;
	border: 2px solid var(--color-border);
	border-radius: 6px;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	transition: all 0.2s ease;
}

.ts-swatch-image:hover {
	border-color: var(--color-primary);
	box-shadow: var(--shadow-md);
}

.ts-swatch-image.selected {
	border-color: var(--color-gold);
	box-shadow: 0 0 0 2px var(--color-gold);
}

/* Text Swatches (Fallback) */
.ts-swatch-text {
	min-width: 80px;
	height: 40px;
	padding: 0 1rem;
	border: 2px solid var(--color-border);
	border-radius: 6px;
	font-size: 0.875rem;
	font-weight: 500;
	color: var(--color-text);
	background: var(--color-white);
	transition: all 0.2s ease;
}

.ts-swatch-text:hover {
	border-color: var(--color-primary);
}

.ts-swatch-text.selected {
	border-color: var(--color-gold);
	background: var(--color-gold);
	color: var(--color-white);
}

/* Hide default select when swatches are visible */
.ts-variation-select-hidden {
	display: none !important;
}

/* Responsive Swatches */
@media (max-width: 767px) {
	.ts-variation-swatches {
		gap: 0.5rem;
	}
	
	.ts-swatch-color {
		width: 28px;
		height: 28px;
	}
	
	.ts-swatch-size,
	.ts-swatch-text {
		min-width: 40px;
		height: 36px;
		padding: 0 0.75rem;
		font-size: 0.8125rem;
	}
	
	.ts-swatch-image {
		width: 40px;
		height: 40px;
	}
}

/* Quantity */
.ts-quantity-wrapper {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin-bottom: 1.5rem;
}

.quantity {
	display: flex;
	align-items: center;
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius);
	overflow: hidden;
}

.quantity .qty {
	width: 60px;
	padding: 0.75rem 0.5rem;
	border: none;
	text-align: center;
	font-size: 1rem;
	font-weight: 600;
}

.quantity button {
	width: 40px;
	height: 40px;
	border: none;
	background: var(--color-light-gray);
	cursor: pointer;
	transition: background 0.3s ease;
}

.quantity button:hover {
	background: var(--color-primary);
	color: var(--color-white);
}

/* Add to Cart */
.single_add_to_cart_button {
	width: 100%;
	padding: 1rem 2rem;
	font-size: 1.125rem;
	font-weight: 600;
	background: var(--color-primary);
	color: var(--color-white);
	border: none;
	border-radius: var(--border-radius);
	cursor: pointer;
	transition: all 0.3s ease;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
}

.single_add_to_cart_button:hover {
	background: var(--color-primary-dark);
	transform: translateY(-2px);
	box-shadow: var(--shadow-md);
}

.single_add_to_cart_button:disabled {
	background: var(--color-gray);
	cursor: not-allowed;
	transform: none;
}

/* Product Meta */
.product_meta {
	margin-top: 2rem;
	padding-top: 2rem;
	border-top: 1px solid var(--color-border);
	font-size: 0.875rem;
}

.product_meta > span {
	display: block;
	margin-bottom: 0.5rem;
	color: var(--color-gray);
}

.product_meta a {
	color: var(--color-primary);
	text-decoration: none;
}

.product_meta a:hover {
	text-decoration: underline;
}

/* ========================================
   Single Product Custom Sections
   ======================================== */

/* Section Title */
.ts-section-title {
	font-size: 1.75rem;
	font-weight: 700;
	margin-bottom: 2rem;
	color: var(--color-text);
	font-family: var(--font-heading, 'Playfair Display', serif);
}

/* Product Story Section */
.ts-product-story-section {
	margin: 4rem 0;
	padding: 3rem 0;
	border-top: 1px solid var(--color-border);
}

.ts-story-card {
	background: var(--color-background, #F8F7F5);
	border-radius: var(--border-radius, 8px);
	padding: 2.5rem;
	border: 1px solid var(--color-border-mid);
}

.ts-story-card--full {
	max-width: 100%;
}

.ts-story-card__content {
	max-width: 800px;
	margin: 0 auto;
}

.ts-story-card__title {
	font-size: 1.5rem;
	font-weight: 600;
	margin-bottom: 0.75rem;
	color: var(--color-text);
	font-family: var(--font-heading, 'Playfair Display', serif);
}

.ts-story-card__subtitle {
	font-size: 1rem;
	color: var(--color-secondary, #3498DB);
	font-weight: 500;
	margin-bottom: 1.5rem;
}

.ts-story-card__text {
	font-size: 1rem;
	line-height: 1.8;
	color: var(--color-gray, #666);
}

.ts-story-card__text p {
	margin-bottom: 1rem;
}

/* Enhanced media layout for story card (overrides legacy) */
.ts-story-card__media {
	margin: 0 0 2rem 0;
	border-radius: var(--border-radius, 8px);
	overflow: hidden;
	box-shadow: 0 6px 20px -6px rgba(0,0,0,0.12);
	background: #fff;
}

.ts-story-card__media img.ts-story-card__img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
}

/* Responsive side-by-side layout when media present */
@media (min-width: 900px) {
	.ts-story-card.ts-story-card--full .ts-story-card__media + .ts-story-card__content {
		display: grid;
		grid-template-columns: minmax(340px, 480px) 1fr;
		gap: 3rem;
	}
	/* Move media into grid context */
	.ts-story-card.ts-story-card--full .ts-story-card__media {
		margin: 0; /* grid provides spacing */
		max-height: 560px;
	}
	.ts-story-card.ts-story-card--full .ts-story-card__media img.ts-story-card__img {
		height: 100%;
		object-fit: cover;
	}
}

/* Typography refinements */
.ts-story-card__title { letter-spacing: 0.01em; }
.ts-story-card__subtitle { opacity: 0.85; }
.ts-story-card__text p:last-child { margin-bottom: 0; }

/* Product Detail Section */
.ts-product-detail-section {
	margin: 4rem 0;
	padding: 3rem 0;
	border-top: 1px solid var(--color-border);
}

.ts-detail-card {
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius, 8px);
	padding: 2.5rem;
}

.ts-detail-card--full {
	max-width: 100%;
}

.ts-detail-card__content {
	max-width: 800px;
	margin: 0 auto;
}

.ts-detail-card__title {
	font-size: 1.5rem;
	font-weight: 600;
	margin-bottom: 0.75rem;
	color: var(--color-text);
	font-family: var(--font-heading, 'Playfair Display', serif);
}

.ts-detail-card__time {
	font-size: 0.875rem;
	color: var(--color-gray);
	margin-bottom: 1.5rem;
}

.ts-detail-card__description {
	font-size: 1rem;
	line-height: 1.8;
	color: var(--color-gray, #666);
	margin-bottom: 1.5rem;
}

.ts-detail-card__description p {
	margin-bottom: 1rem;
}

.ts-detail-card__video {
	margin-top: 1.5rem;
}

.ts-video-link {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.75rem 1.5rem;
	background: var(--color-secondary);
	color: var(--color-white);
	text-decoration: none;
	border-radius: var(--border-radius, 6px);
	font-weight: 500;
	transition: all 0.3s ease;
}

.ts-video-link:hover {
	background: var(--color-primary-dark, #B39559);
	transform: translateY(-2px);
	box-shadow: var(--shadow-md);
}

.ts-video-link svg {
	width: 20px;
	height: 20px;
}

/* Impact & Values Section */
.ts-impact-section {
	margin-top: 2.5rem;
	padding: 2rem;
	background: var(--color-background, #F8F7F5);
	border-radius: var(--border-radius, 8px);
	border: 1px solid var(--color-border);
}

.ts-impact-section__title {
	font-size: 1.25rem;
	font-weight: 600;
	margin-bottom: 1.5rem;
	color: var(--color-text);
	font-family: var(--font-heading, 'Playfair Display', serif);
}

.ts-impact-badges {
	margin-bottom: 2rem;
}

.ts-impact-badges--inline {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
}

.ts-impact-badge {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.75rem 1.25rem;
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius, 6px);
	font-size: 0.875rem;
	font-weight: 500;
}

.ts-impact-badge__icon {
	width: 20px;
	height: 20px;
	color: var(--color-primary, #C3A46A);
}

.ts-impact-badge__label {
	color: var(--color-text);
}

.ts-impact-certifications {
	margin-bottom: 1.5rem;
}

.ts-impact-certifications__title {
	font-size: 1rem;
	font-weight: 600;
	margin-bottom: 0.75rem;
	color: var(--color-text);
}

.ts-impact-certifications__list {
	font-size: 0.875rem;
	color: var(--color-gray);
	line-height: 1.6;
}

.ts-impact-note {
	font-size: 0.875rem;
	color: var(--color-gray);
	line-height: 1.6;
}

.ts-impact-note p {
	margin: 0;
}

/* Limited Counter */
.ts-limited-counter {
	margin-top: 2rem;
	padding: 1.5rem;
	background: var(--color-background, #F8F7F5);
	border-radius: var(--border-radius, 8px);
	border: 1px solid var(--color-border);
}

.ts-limited-counter__badge {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 1rem;
	font-weight: 600;
	color: var(--color-accent, #E74C3C);
}

.ts-limited-counter__icon {
	width: 16px;
	height: 16px;
}

.ts-limited-counter__progress {
	width: 100%;
	height: 8px;
	background: rgba(0, 0, 0, 0.1);
	border-radius: 4px;
	overflow: hidden;
	margin-bottom: 0.75rem;
}

.ts-limited-counter__progress-bar {
	height: 100%;
	background: var(--color-primary, #C3A46A);
	border-radius: 4px;
	transition: width 0.3s ease;
}

.ts-limited-counter__stats {
	font-size: 0.875rem;
	color: var(--color-gray);
	margin: 0;
}

/* Size Guide Trigger */
.ts-size-guide-trigger {
	margin: 1.5rem 0;
}

.ts-size-guide-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.75rem 1.25rem;
	background: transparent;
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius, 6px);
	color: var(--color-text);
	font-weight: 500;
	cursor: pointer;
	transition: all 0.3s ease;
}

.ts-size-guide-btn:hover {
	background: var(--color-secondary);
	border-color: var(--color-secondary);
	color: var(--color-white);
}

.ts-size-guide-btn svg {
	width: 20px;
	height: 20px;
}

/* Related Products */
.ts-related-products {
	margin: 4rem 0;
	padding: 3rem 0;
	border-top: 1px solid var(--color-border);
}

.ts-related-products .ts-section-title {
	text-align: center;
	margin-bottom: 3rem;
}

/* WooCommerce Tabs */
.woocommerce-tabs {
	--ts-tabs-gap: 2rem;
	--ts-tabs-border: 2px solid var(--color-border);
	--ts-tabs-active-color: var(--color-primary);
	--ts-tabs-inactive-color: var(--color-gray);
	--ts-tabs-padding-y: 1rem;
}
.woocommerce-tabs {
	margin: 4rem 0;
	padding: 3rem 0;
	border-top: 1px solid var(--color-border);
}

.woocommerce-tabs .tabs {
	display: flex;
	gap: var(--ts-tabs-gap);
	border-bottom: var(--ts-tabs-border);
	margin-bottom: 2rem;
	padding: 0;
	list-style: none;
}

.woocommerce-tabs .tabs li {
	margin: 0;
	padding: 0;
}

.woocommerce-tabs .tabs li a {
	display: block;
	padding: var(--ts-tabs-padding-y) 0;
	color: var(--ts-tabs-inactive-color);
	text-decoration: none;
	font-weight: 500;
	border-bottom: var(--ts-tabs-border);
	border-bottom-color: transparent;
	margin-bottom: -2px;
	transition: all 0.3s ease;
}

.woocommerce-tabs .tabs li.active a,
.woocommerce-tabs .tabs li a:hover {
	color: var(--ts-tabs-active-color);
	border-bottom-color: var(--ts-tabs-active-color);
}

.woocommerce-Tabs-panel {
	padding: 2rem 0;
}

.woocommerce-Tabs-panel h2 {
	font-size: 1.5rem;
	font-weight: 600;
	margin-bottom: 1.5rem;
	color: var(--color-text);
}

/* Reviews */
.woocommerce-Reviews-title {
	font-size: 1.5rem;
	font-weight: 600;
	margin-bottom: 2rem;
	color: var(--color-text);
}

/* Review form rating stars (accessible, no visible raw text) */
.comment-form-rating { display:flex; align-items:center; gap:.75rem; }
.comment-form-rating label { font-weight:600; margin:0; }
.comment-form-rating p.stars { margin:0; }
.comment-form-rating p.stars > span {
	display:inline-flex;
	flex-direction: row-reverse; /* allow fill of all stars to the left via ~ selector */
	gap:.25rem;
}
.comment-form-rating p.stars a {
	position:relative;
	display:inline-flex;
	width:1.5rem; height:1.5rem;
	text-indent:-9999px; /* hide text like "1 of 5 stars" while preserving accessible name */
	overflow:hidden;
}
.comment-form-rating p.stars a::before {
	content:'\2606'; /* ☆ */
	position:absolute; inset:0;
	display:flex; align-items:center; justify-content:center;
	font-size:1.35rem; line-height:1;
	color: var(--ts-accent-gold, #C3A46A);
	text-indent:0;
}
.comment-form-rating p.stars a:focus-visible { outline:2px solid var(--ts-accent-primary,#141433); outline-offset:2px; border-radius:2px; }
/* Hover/Focus fill */
.comment-form-rating p.stars a:hover::before,
.comment-form-rating p.stars a:focus::before,
.comment-form-rating p.stars a:hover ~ a::before,
.comment-form-rating p.stars a:focus ~ a::before { content:'\2605'; /* ★ */ }
/* Selected state (Woo adds .selected on p.stars and .active on chosen a) */
.comment-form-rating p.stars.selected a.active::before,
.comment-form-rating p.stars.selected a.active ~ a::before { content:'\2605'; }
/* Keep native select hidden visually (Woo already hides inline) */
.comment-form-rating select#rating { display:none !important; }

/* Show active filter count on the right */
.ts-review-filters .ts-review-count{ margin-left:auto; font-size:.75rem; color: var(--ts-text-secondary); }

.commentlist {
	list-style: none;
	padding: 0;
	margin: 0 0 2rem;
}

.commentlist .comment {
	margin-bottom: 2rem;
	padding-bottom: 2rem;
	border-bottom: 1px solid var(--color-border);
}

.comment_container {
	display: flex;
	gap: 1.5rem;
}

.ts-cart-drawer-footer {
	margin: 0;
	padding: 1rem 1.25rem calc(1.25rem + env(safe-area-inset-bottom));
}
.comment_container img {
	border-radius: 50%;
	flex-shrink: 0;
}

.comment-text {
	flex: 1;
}

.comment-text .meta {
	margin-bottom: 1rem;
	font-size: 0.875rem;
}

.comment-text .meta strong {
	color: var(--color-text);
	font-weight: 600;
}

.comment-text .meta time {
	color: var(--color-gray);
}

.comment-text .description {
	line-height: 1.6;
	color: var(--color-gray);
}
.ts-review-item img.avatar{ width:48px; height:48px; object-fit:cover; border-radius:50%; }
.ts-review-item{ display:flex; gap:1rem; padding:1rem 0; border-top:1px solid var(--ts-border-light); }
.ts-review-item:first-of-type{ border-top:none; }
.ts-review-item .comment_container{ display:flex; gap:1rem; width:100%; }
.ts-review-item .comment-text{ flex:1; }
@media (max-width:640px){
	.ts-review-item{ flex-direction:row; }
	.ts-review-item img.avatar{ width:40px; height:40px; }
	.ts-review-item .comment_container{ flex-direction:row; }
}
@media (max-width:480px){
	.ts-review-item{ flex-direction:column; }
	.ts-review-item .comment_container{ flex-direction:column; }
	.ts-review-item img.avatar{ width:48px; height:48px; }
}

/* ========================================
   Cart Drawer
   ======================================== */

.ts-cart-drawer {
	position: fixed;
	top: 0;
	right: 0;
	width: 400px;
	height: 100vh;
	background: var(--color-white);
	box-shadow: var(--shadow-drawer-side);
	z-index: 9999;
	display: flex;
	flex-direction: column;
	transform: translateX(100%);
	will-change: transform;
	transition: transform .35s cubic-bezier(.4,0,.2,1);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}

.ts-cart-drawer.active {
	transform: translateX(0);
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

/* Also key off aria-hidden for robustness */
.ts-cart-drawer[aria-hidden="true"] {
	transform: translateX(100%);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}
.ts-cart-drawer[aria-hidden="false"] {
	transform: translateX(0);
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.ts-cart-drawer-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100vh;
	background: var(--overlay-scrim);
	z-index: 9998; /* sits below drawer (9999) */
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: all 0.3s ease;
}

.ts-cart-drawer-overlay.active {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.ts-cart-drawer-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1.5rem;
	border-bottom: 1px solid var(--color-border);
}

/* Drawer content wrapper: stack header + scrollable body */
.ts-cart-drawer-content {
	display: flex;
	flex-direction: column;
	height: 100%;
}

/* Sticky footer */
.ts-cart-drawer-footer {
	margin: 0;
	padding: 1rem 1.25rem 1.25rem;
	border-top: 1px solid var(--color-border);
	background: var(--color-white);
	box-shadow: 0 -4px 12px -6px rgba(0,0,0,.06);
}

.ts-cart-subtotal-row {
	font-weight: 600;
	font-size: .95rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: .75rem;
}

.ts-cart-actions .button {
	width: 100%;
	margin: .5rem 0 0;
}
.ts-cart-actions .button:first-child { margin-top: 0; }

@media (min-width: 480px){
	.ts-cart-actions .button.checkout { margin-top: .5rem; }
}

.ts-cart-drawer-title {
	margin: 0;
	font-size: 1.25rem;
	font-weight: 700;
}

.ts-cart-drawer-close {
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: none;
	background: transparent;
	cursor: pointer;
	border-radius: 50%;
	transition: background 0.3s ease;
}

.ts-cart-drawer-close:hover {
	background: var(--color-light-gray);
}

.ts-cart-drawer-body {
	flex: 1;
	overflow-y: auto;
	padding: 1.5rem;
}

.ts-cart-drawer-empty {
	text-align: center;
	padding: 3rem 1.5rem;
}

.ts-cart-drawer-empty svg {
	width: 80px;
	height: 80px;
	margin-bottom: 1rem;
	color: var(--color-gray);
}

.ts-cart-item {
	display: flex;
	gap: 1rem;
	padding-bottom: 1.5rem;
	margin-bottom: 1.5rem;
	border-bottom: 1px solid var(--color-border);
}

.ts-cart-item:last-child {
	border-bottom: none;
	margin-bottom: 0;
}

.ts-cart-item-image {
	width: 80px;
	height: 80px;
	flex-shrink: 0;
	border-radius: var(--border-radius);
	overflow: hidden;
	border: 1px solid var(--color-border);
}

.ts-cart-item-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ts-cart-item-details {
	flex: 1;
}

.ts-cart-item-title {
	font-size: 0.9375rem;
	font-weight: 600;
	margin-bottom: 0.5rem;
	line-height: 1.4;
}

.ts-cart-item-title a {
	color: var(--color-text);
	text-decoration: none;
}

.ts-cart-item-price {
	font-size: 1rem;
	font-weight: 700;
	color: var(--color-primary);
	margin-bottom: 0.5rem;
}

.ts-cart-item-quantity {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.ts-cart-item-remove {
	color: var(--color-gray);
	cursor: pointer;
	transition: color 0.3s ease;
}

.ts-cart-item-remove:hover {
	color: var(--color-accent);
}

.ts-cart-drawer-footer {
	padding: 1.5rem;
	border-top: 1px solid var(--color-border);
}

.ts-cart-subtotal {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 1rem;
	font-size: 1.125rem;
	font-weight: 600;
}

.ts-cart-subtotal-amount {
	color: var(--color-primary);
	font-size: 1.5rem;
}

.ts-cart-actions {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

/* ========================================
   Shipping Progress Meter
   ======================================== */

.ts-shipping-progress {
	margin-bottom: 1.5rem;
	padding: 1.25rem;
	background: linear-gradient(135deg, var(--color-bg) 0%, var(--color-white) 100%);
	border: 2px solid #E5E7EB;
	border-radius: 12px;
	transition: all 0.3s ease;
}

.ts-shipping-progress.ts-shipping-achieved {
	background: linear-gradient(135deg, #ECFDF5 0%, #D1FAE5 100%);
	border-color: #10B981;
}

.ts-shipping-progress-message {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-bottom: 1rem;
}

.ts-shipping-icon {
	flex-shrink: 0;
	width: 24px;
	height: 24px;
	color: var(--color-gold);
}

.ts-shipping-achieved .ts-shipping-icon {
	color: #10B981;
}

.ts-shipping-text {
	font-size: 0.95rem;
	font-weight: 600;
	color: var(--color-text);
	line-height: 1.4;
}

.ts-shipping-text .amount {
	color: var(--color-gold);
	font-weight: 700;
}

.ts-shipping-achieved .ts-shipping-text {
	color: #059669;
}

.ts-shipping-progress-bar {
	position: relative;
	width: 100%;
	height: 8px;
	background: rgba(20, 20, 51, 0.1);
	border-radius: 999px;
	overflow: hidden;
}

.ts-shipping-progress-fill {
	position: absolute;
	top: 0;
	left: 0;
	height: 100%;
	background: linear-gradient(90deg, var(--color-gold) 0%, var(--color-accent) 100%);
	border-radius: 999px;
	transition: width 0.5s cubic-bezier(0.4, 0, 0.2, 1);
	box-shadow: var(--shadow-sm);
}

.ts-shipping-achieved .ts-shipping-progress-fill {
	background: linear-gradient(90deg, #10B981 0%, #059669 100%);
	box-shadow: var(--shadow-success);
}

/* Pulse animation for progress bar */
@keyframes shipping-pulse {
	0%, 100% {
		opacity: 1;
	}
	50% {
		opacity: 0.8;
	}
}

.ts-shipping-progress-fill {
	animation: shipping-pulse 2s ease-in-out infinite;
}

.ts-shipping-achieved .ts-shipping-progress-fill {
	animation: none;
}

/* Cart Drawer Shipping Progress */
.ts-cart-drawer-body .ts-shipping-progress {
	margin-bottom: 1rem;
	padding: 1rem;
}

.ts-cart-drawer-body .ts-shipping-progress-message {
	font-size: 0.875rem;
	margin-bottom: 0.75rem;
}

.ts-cart-drawer-body .ts-shipping-icon {
	width: 20px;
	height: 20px;
}

/* Responsive */
@media (max-width: 767px) {
	.ts-shipping-progress {
		padding: 1rem;
	}
	
	.ts-shipping-progress-message {
		font-size: 0.875rem;
	}
	
	.ts-shipping-icon {
		width: 20px;
		height: 20px;
	}
}

/* ========================================
   Cross-Sell Engine
   ======================================== */

/* Cart Cross-Sells */
.ts-cart-cross-sells {
	margin: 3rem 0 2rem;
	padding: 2rem;
	background: linear-gradient(135deg, #FAF9F6 0%, #FFFFFF 100%);
	border: 1px solid var(--color-border-mid);
	border-radius: 16px;
}

.ts-cart-cross-sells .ts-section-title {
	font-family: var(--font-heading);
	font-size: 1.75rem;
	font-weight: 700;
	color: var(--color-primary);
	margin: 0 0 1.5rem 0;
	text-align: center;
}

.ts-cross-sell-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 1.5rem;
}

.ts-cross-sell-item {
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: 12px;
	overflow: hidden;
	transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}


.ts-cross-sell-item:hover {
	transform: translateY(-4px);
	box-shadow: var(--shadow-lg);
	border-color: var(--color-gold);
	transition: transform var(--motion-duration-2) var(--motion-ease-standard), box-shadow var(--motion-duration-2) var(--motion-ease-standard);
}

.ts-cross-sell-image {
	display: block;
	position: relative;
	width: 100%;
	aspect-ratio: 1;
	overflow: hidden;
	background: var(--color-ivory);
}

.ts-cross-sell-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.ts-cross-sell-item:hover .ts-cross-sell-image img {
	transform: scale(1.08);
}

.ts-cross-sell-details {
	padding: 1.25rem;
	text-align: center;
}

.ts-cross-sell-title {
	margin: 0 0 0.75rem 0;
	font-size: 0.95rem;
	font-weight: 600;
	line-height: 1.4;
}

.ts-cross-sell-title a {
	color: var(--color-primary);
	text-decoration: none;
	transition: color 0.2s ease;
}

.ts-cross-sell-title a:hover {
	color: var(--color-gold);
}

.ts-cross-sell-price {
	margin-bottom: 1rem;
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--color-gold);
}

.ts-cross-sell-price del {
	opacity: 0.5;
	font-size: 0.9em;
	margin-right: 0.5rem;
}

.ts-cross-sell-add-btn {
	width: 100%;
	padding: 0.75rem 1.5rem;
	font-size: 0.875rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	transition: all 0.2s ease;
}

.ts-cross-sell-add-btn:hover {
	background-color: var(--color-gold);
	border-color: var(--color-gold);
	color: var(--color-white);
	transform: translateY(-1px);
}

.ts-cross-sell-add-btn.loading {
	position: relative;
	color: transparent;
	pointer-events: none;
}

.ts-cross-sell-add-btn.loading::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 16px;
	height: 16px;
	margin: -8px 0 0 -8px;
	border: 2px solid rgba(20, 20, 51, 0.2);
	border-top-color: var(--color-primary);
	border-radius: 50%;
	animation: ts-spin var(--motion-duration-1) linear infinite;
}

/* Checkout Cross-Sells */
.ts-checkout-cross-sells {
	margin-top: 2rem;
	padding: 1.5rem;
	background: var(--color-ivory);
	border: 1px solid var(--color-border);
	border-radius: 12px;
}

.ts-checkout-cross-sell-title {
	font-family: var(--font-heading);
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--color-primary);
	margin: 0 0 1rem 0;
}

.ts-checkout-cross-sell-list {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.ts-checkout-cross-sell-item {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 1rem;
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: 8px;
	transition: all 0.2s ease;
}

.ts-checkout-cross-sell-item:hover {
	border-color: var(--color-gold);
	box-shadow: var(--shadow-md);
}

.ts-checkout-cross-sell-image {
	flex-shrink: 0;
	width: 60px;
	height: 60px;
	border-radius: 6px;
	overflow: hidden;
	background: var(--color-ivory);
}

.ts-checkout-cross-sell-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ts-checkout-cross-sell-info {
	flex: 1;
	min-width: 0;
}

.ts-checkout-cross-sell-name {
	margin: 0 0 0.25rem 0;
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.3;
}

.ts-checkout-cross-sell-name a {
	color: var(--color-primary);
	text-decoration: none;
	transition: color 0.2s ease;
}

.ts-checkout-cross-sell-name a:hover {
	color: var(--color-gold);
}

.ts-checkout-cross-sell-price {
	font-size: 0.875rem;
	font-weight: 700;
	color: var(--color-gold);
}

.ts-checkout-cross-sell-action {
	flex-shrink: 0;
}

.ts-checkout-add-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	background: var(--color-white);
	border: 2px solid var(--color-primary);
	border-radius: 50%;
	color: var(--color-primary);
	cursor: pointer;
	transition: all 0.2s ease;
	text-decoration: none;
}

.ts-checkout-add-btn:hover {
	background: var(--color-gold);
	border-color: var(--color-gold);
	color: var(--color-white);
	transform: scale(1.1) rotate(90deg);
}

.ts-checkout-add-btn.loading {
	pointer-events: none;
	animation: ts-spin var(--motion-duration-1) linear infinite;
}

/* Recently Viewed */
.ts-recently-viewed {
	margin: 3rem 0;
	padding: 2rem 0;
}

.ts-recently-viewed .ts-section-title {
	font-family: var(--font-heading);
	font-size: 1.75rem;
	font-weight: 700;
	color: var(--color-primary);
	margin: 0 0 1.5rem 0;
	text-align: center;
}

.ts-recently-viewed-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 1.5rem;
}

.ts-recently-viewed-item {
	text-align: center;
	transition: transform 0.3s ease;
}

.ts-recently-viewed-item:hover {
	transform: translateY(-4px);
}

.ts-recently-viewed-item a {
	display: block;
	text-decoration: none;
	color: inherit;
}

.ts-recently-viewed-item img {
	width: 100%;
	height: auto;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 8px;
	margin-bottom: 0.75rem;
	transition: opacity 0.2s ease;
}

.ts-recently-viewed-item:hover img {
	opacity: 0.9;
}

.ts-recently-viewed-item h3 {
	font-size: 0.875rem;
	font-weight: 600;
	margin: 0 0 0.5rem 0;
	color: var(--color-primary);
}

.ts-recently-viewed-item .price {
	display: block;
	font-size: 0.95rem;
	font-weight: 700;
	color: var(--color-gold);
}

/* Responsive */
@media (max-width: 1024px) {
	.ts-cross-sell-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 767px) {
	.ts-cart-cross-sells {
		padding: 1.5rem;
		margin: 2rem -1rem 1.5rem;
		border-radius: 0;
		border-left: none;
		border-right: none;
	}
	
	.ts-cart-cross-sells .ts-section-title {
		font-size: 1.5rem;
	}
	
	.ts-cross-sell-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 1rem;
	}
	
	.ts-cross-sell-details {
		padding: 1rem;
	}
	
	.ts-cross-sell-title {
		font-size: 0.875rem;
	}
	
	.ts-cross-sell-price {
		font-size: 1rem;
	}
	
	.ts-checkout-cross-sells {
		padding: 1rem;
	}
	
	.ts-checkout-cross-sell-image {
		width: 50px;
		height: 50px;
	}
	
	.ts-recently-viewed-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 1rem;
	}
}

/* ========================================
   Gift Options
   ======================================== */

.ts-gift-options {
	margin: 2rem 0;
	padding: 2rem;
	background: linear-gradient(135deg, #FEF3F2 0%, #FFFFFF 100%);
	border: 2px solid rgba(195, 164, 106, 0.3);
	border-radius: 16px;
}

.ts-gift-toggle {
	margin-bottom: 1.5rem;
}

.ts-gift-toggle label {
	display: flex;
	align-items: center;
	cursor: pointer;
	user-select: none;
}

.ts-gift-toggle input[type="checkbox"] {
	width: 20px;
	height: 20px;
	margin: 0 0.75rem 0 0;
	cursor: pointer;
	accent-color: var(--color-gold);
}

.ts-gift-toggle-label {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 1.125rem;
	font-weight: 600;
	color: var(--color-primary);
}

.ts-gift-toggle-label svg {
	color: var(--color-gold);
}

.ts-gift-details {
	padding-top: 1.5rem;
	border-top: 1px solid var(--color-border-mid);
}

/* Gift Message */
.ts-gift-message-wrapper {
	margin-bottom: 1.5rem;
}

.ts-gift-message-wrapper label {
	display: block;
	margin-bottom: 0.5rem;
	font-weight: 600;
	color: var(--color-primary);
}

.ts-gift-message {
	width: 100%;
	padding: 1rem;
	border: 2px solid var(--color-border);
	border-radius: 8px;
	font-family: var(--font-body);
	font-size: 0.95rem;
	line-height: 1.6;
	resize: vertical;
	transition: all 0.2s ease;
}

.ts-gift-message:focus {
	outline: none;
	border-color: var(--color-gold);
	box-shadow: var(--focus-ring);
}

.ts-gift-message-counter {
	margin-top: 0.5rem;
	text-align: right;
	font-size: 0.875rem;
	color: var(--color-text-light);
}

.ts-char-count {
	font-weight: 600;
	color: var(--color-gold);
}

/* Gift Message Preview */
.ts-gift-message-preview {
	margin-top: 1rem;
	padding: 1.5rem;
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: 12px;
	box-shadow: var(--shadow-sm);
}

.ts-preview-label {
	display: block;
	margin-bottom: 0.75rem;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--color-text-light);
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.ts-preview-text {
	font-family: 'Sloop Script Pro', 'Dancing Script', cursive;
	font-size: 1.5rem;
	line-height: 1.8;
	color: var(--color-primary);
	font-style: italic;
	text-align: center;
	padding: 1rem;
	background: linear-gradient(135deg, #FAF9F6 0%, #FFFFFF 100%);
	border-radius: 8px;
}

/* Gift Wrap */
.ts-gift-wrap-wrapper {
	padding: 1.25rem;
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: 12px;
}

.ts-gift-wrap-wrapper label {
	display: flex;
	align-items: flex-start;
	cursor: pointer;
	user-select: none;
}

.ts-gift-wrap-wrapper input[type="checkbox"] {
	width: 18px;
	height: 18px;
	margin: 0.25rem 0.75rem 0 0;
	cursor: pointer;
	accent-color: var(--color-gold);
}

.ts-gift-wrap-label {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	font-weight: 600;
	color: var(--color-primary);
}

.ts-gift-wrap-fee {
	font-size: 0.875rem;
	font-weight: 700;
	color: var(--color-gold);
}

.ts-gift-wrap-description {
	margin: 0.75rem 0 0 0;
	padding-left: 2rem;
	font-size: 0.875rem;
	color: var(--color-text-light);
	line-height: 1.5;
}

/* Admin Gift Info */
.ts-gift-info-admin {
	animation: ts-fade-in 0.3s ease;
}

@keyframes ts-fade-in {
	from {
		opacity: 0;
		transform: translateY(-10px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* Responsive */
@media (max-width: 767px) {
	.ts-gift-options {
		padding: 1.5rem;
		margin: 1.5rem -1rem;
		border-radius: 0;
		border-left: none;
		border-right: none;
	}
	
	.ts-gift-toggle-label {
		font-size: 1rem;
	}
	
	.ts-preview-text {
		font-size: 1.25rem;
		padding: 0.75rem;
	}
	
	.ts-gift-wrap-wrapper {
		padding: 1rem;
	}
}

/* ========================================
   Checkout Progress Indicator
   ======================================== */

.ts-checkout-progress {
	margin: 0 0 3rem 0;
	padding: 2rem;
	background: linear-gradient(135deg, var(--color-bg) 0%, var(--color-white) 100%);
	border: 1px solid var(--color-border-mid);
	border-radius: 16px;
}

/* Order Received / Thank You page layout enhancements */
.woocommerce-order-received .woocommerce-order,
.woocommerce-order-received .woocommerce-order-overview,
.woocommerce-order-received .woocommerce-order-details,
.woocommerce-order-received .woocommerce-customer-details {
	max-width: 900px;
	margin-left: auto;
	margin-right: auto;
}
.woocommerce-order-received .woocommerce-order {
	padding: 2.5rem 2rem;
	background: var(--color-white);
	border: 1px solid var(--color-border-mid);
	border-radius: 20px;
	box-shadow: 0 4px 20px -4px rgba(20,20,51,.08);
	margin-bottom: 2.5rem;
}
.woocommerce-order-received .woocommerce-notice--success {
	font-size: 1.25rem;
	font-weight: 600;
	margin-bottom: 1.75rem;
	color: var(--color-primary);
}
.woocommerce-order-received .woocommerce-order-overview {
	display: flex;
	flex-wrap: wrap;
	gap: 1.25rem 2rem;
	padding: 0;
	margin: 0 0 2rem;
	list-style: none;
	border-bottom: 1px solid var(--color-border);
	padding-bottom: 1.5rem;
}
.woocommerce-order-received .woocommerce-order-overview li {
	min-width: 180px;
	font-size: .95rem;
	color: var(--color-text-light);
}
.woocommerce-order-received .woocommerce-order-overview strong {
	display: block;
	margin-top: .25rem;
	font-size: 1rem;
	color: var(--color-text);
}
.woocommerce-order-received .woocommerce-order-details__title,
.woocommerce-order-received .woocommerce-column__title {
	font-size: 1.1rem;
	font-weight: 700;
	margin: 2.5rem 0 1rem;
	color: var(--color-text);
	letter-spacing: .5px;
}
.woocommerce-order-received table.shop_table.order_details {
	width: 100%;
	border: 1px solid var(--color-border-mid);
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 2px 12px -2px rgba(20,20,51,.06);
}
.woocommerce-order-received table.shop_table.order_details thead th {
	background: var(--color-bg);
	padding: .85rem 1rem;
	font-weight: 600;
	font-size: .85rem;
	text-transform: uppercase;
	letter-spacing: .5px;
}
.woocommerce-order-received table.shop_table.order_details tbody td,
.woocommerce-order-received table.shop_table.order_details tfoot th,
.woocommerce-order-received table.shop_table.order_details tfoot td {
	padding: .85rem 1rem;
	font-size: .95rem;
}
.woocommerce-order-received table.shop_table.order_details tfoot th {
	font-weight: 600;
	color: var(--color-text-light);
	width: 50%;
}
.woocommerce-order-received .woocommerce-columns--addresses {
	display: grid;
	gap: 2rem;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	margin-top: 1rem;
}
.woocommerce-order-received address {
	background: var(--color-bg);
	padding: 1.25rem 1.25rem 1rem;
	border: 1px solid var(--color-border-mid);
	border-radius: 12px;
	font-style: normal;
	line-height: 1.5;
	font-size: .95rem;
}
.woocommerce-order-received .woocommerce-customer-details--email {
	margin-top: .5rem;
	font-size: .8rem;
	opacity: .75;
}
@media (max-width: 768px){
	.woocommerce-order-received .woocommerce-order { padding: 1.5rem 1.25rem; }
	.woocommerce-order-received .woocommerce-order-overview { gap: 1rem 1.25rem; }
}

.ts-checkout-steps {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
	max-width: 800px;
	margin: 0 auto;
}

.ts-checkout-step {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}

.ts-step-indicator {
	position: relative;
	width: 100%;
	display: flex;
	align-items: center;
	margin-bottom: 0.75rem;
}

.ts-step-number {
	position: relative;
	z-index: 2;
	width: 48px;
	height: 48px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--color-white);
	border: 3px solid var(--color-border-mid);
	border-radius: 50%;
	font-weight: 700;
	font-size: 1.125rem;
	color: var(--color-text-light);
	transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	margin: 0 auto;
	flex-shrink: 0;
}

.ts-step-connector {
	position: absolute;
	top: 50%;
	left: calc(50% + 24px);
	right: calc(-50% + 24px);
	height: 3px;
	background: var(--color-border-mid);
	transform: translateY(-50%);
	transition: background 0.3s ease;
	z-index: 1;
}

.ts-checkout-step:last-child .ts-step-connector {
	display: none;
}

.ts-step-label {
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--color-text-light);
	transition: all 0.2s ease;
	white-space: nowrap;
}

/* Step States */
.ts-step-completed .ts-step-number {
	background: var(--color-gold);
	border-color: var(--color-gold);
	color: var(--color-white);
	transform: scale(1.1);
	box-shadow: var(--shadow-md);
}

.ts-step-completed .ts-step-connector {
	background: var(--color-gold);
}

.ts-step-completed .ts-step-label {
	color: var(--color-gold);
}

.ts-step-current .ts-step-number {
	background: var(--color-primary);
	border-color: var(--color-primary);
	color: var(--color-white);
	transform: scale(1.15);
	box-shadow: var(--shadow-emphasis);
	animation: ts-pulse 2s ease-in-out infinite;
}

.ts-step-current .ts-step-label {
	color: var(--color-primary);
	font-weight: 700;
	font-size: 0.95rem;
}

.ts-step-future .ts-step-number {
	background: var(--color-white);
	border-color: var(--color-border);
	color: var(--color-text-light);
	opacity: 0.6;
}

.ts-step-future .ts-step-label {
	opacity: 0.6;
}

/* Animation */
@keyframes ts-pulse {
	0%, 100% { box-shadow: var(--shadow-md); }
	50% { box-shadow: var(--shadow-emphasis); }
}

/* Checkmark Icon Animation */
.ts-step-completed .ts-step-number svg {
	animation: ts-checkmark-draw 0.5s ease-out;
}

@keyframes ts-checkmark-draw {
	0% {
		stroke-dasharray: 0, 100;
		opacity: 0;
	}
	100% {
		stroke-dasharray: 100, 0;
		opacity: 1;
	}
}

/* Mobile Responsive */
@media (max-width: 1024px) {
	.ts-checkout-progress {
		padding: 1.5rem;
	}
	
	.ts-step-number {
		width: 42px;
		height: 42px;
		font-size: 1rem;
	}
	
	.ts-step-label {
		font-size: 0.8125rem;
	}
	
	.ts-step-current .ts-step-label {
		font-size: 0.875rem;
	}
}

@media (max-width: 767px) {
	.ts-checkout-progress {
		padding: 1.25rem;
		margin: 0 -1rem 2rem;
		border-radius: 0;
		border-left: none;
		border-right: none;
	}
	
	/* Vertical layout on mobile */
	.ts-checkout-steps {
		flex-direction: column;
		align-items: stretch;
		gap: 0.5rem;
	}
	
	.ts-checkout-step {
		flex-direction: row;
		align-items: center;
		text-align: left;
	}
	
	.ts-step-indicator {
		width: auto;
		flex-direction: column;
		margin-bottom: 0;
		margin-right: 1rem;
	}
	
	.ts-step-number {
		width: 36px;
		height: 36px;
		font-size: 0.875rem;
		margin: 0;
	}
	
	.ts-step-connector {
		position: static;
		width: 3px;
		height: 32px;
		margin: 0.25rem auto;
		transform: none;
	}
	
	.ts-checkout-step:last-child .ts-step-connector {
		display: block;
		opacity: 0;
	}
	
	.ts-step-label {
		flex: 1;
		white-space: normal;
	}
	
	.ts-step-current .ts-step-number {
		transform: scale(1.05);
	}
	
	.ts-step-completed .ts-step-number {
		transform: scale(1);
	}
}

/* Animation */
@keyframes ts-spin {
	to {
		transform: rotate(360deg);
	}
}

/* ========================================
   Cart Page
   ======================================== */

.ts-cart-table {
	width: 100%;
	margin-bottom: 2rem;
	border-collapse: collapse;
}

.ts-cart-table thead th {
	padding: 1rem;
	text-align: left;
	font-weight: 600;
	border-bottom: 2px solid var(--color-border);
}

.ts-cart-table tbody td {
	padding: 1.5rem 1rem;
	vertical-align: middle;
	border-bottom: 1px solid var(--color-border);
}

.product-thumbnail img {
	width: 80px;
	height: 80px;
	object-fit: cover;
	border-radius: var(--border-radius);
}

.product-name a {
	color: var(--color-text);
	text-decoration: none;
	font-weight: 600;
}

.product-name a:hover {
	color: var(--color-primary);
}

.product-remove .ts-remove-item {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	color: var(--color-gray);
	transition: all 0.3s ease;
	border-radius: 50%;
}

.product-remove .ts-remove-item:hover {
	background: var(--color-accent);
	color: var(--color-white);
}

.actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 1rem;
	padding: 1.5rem 1rem !important;
}

.coupon {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.coupon input {
	padding: 0.5rem 1rem;
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius);
}

/* Empty Cart */
.ts-empty-cart {
	text-align: center;
	padding: 4rem 2rem;
}

.ts-empty-cart-icon {
	margin-bottom: 2rem;
}

.ts-empty-cart-icon svg {
	width: 100px;
	height: 100px;
	color: var(--color-gray);
}

.ts-empty-cart-title {
	font-size: 1.5rem;

/* Footer content styling for moved fragments */
.ts-cart-drawer-footer [data-subtotal] .woocommerce-mini-cart__total,
.ts-cart-drawer-footer .woocommerce-mini-cart__total {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .75rem;
	margin: 0 0 .75rem;
}
.ts-cart-drawer-footer [data-actions] .woocommerce-mini-cart__buttons,
.ts-cart-drawer-footer .woocommerce-mini-cart__buttons {
	display: grid;
	grid-template-columns: 1fr;
	gap: .5rem;
}
.ts-cart-drawer-footer .woocommerce-mini-cart__buttons li { list-style: none; margin: 0; padding: 0; }
.ts-cart-drawer-footer .woocommerce-mini-cart__buttons .button,
.ts-cart-drawer-footer [data-actions] .button {
	width: 100%;
}

/* Prevent background scroll when cart drawer is open */
body.ts-cart-open { overflow: hidden; }
	margin-bottom: 1rem;
}

.ts-empty-cart-text {
	color: var(--color-gray);
	margin-bottom: 2rem;
}

/* ========================================
   Checkout
   ======================================== */

.ts-checkout-columns {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 3rem;
	margin-bottom: 3rem;
}

@media (max-width: 768px) {
	.ts-checkout-columns {
		grid-template-columns: 1fr;
	}
}

.ts-form-fields {
	display: grid;
	gap: 1.5rem;
}

.ts-form-row {
	display: flex;
	flex-direction: column;
}

.ts-form-row label {
	font-weight: 600;
	margin-bottom: 0.5rem;
	color: var(--color-text);
}

.ts-form-row .required {
	color: var(--color-accent);
}

.ts-input,
.ts-form-row input[type="text"],
.ts-form-row input[type="email"],
.ts-form-row input[type="tel"],
.ts-form-row input[type="password"],
.ts-form-row select,
.ts-form-row textarea {
	width: 100%;
	padding: 0.75rem 1rem;
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius);
	font-size: 1rem;
	transition: all 0.3s ease;
}

.ts-input:focus,
.ts-form-row input:focus,
.ts-form-row select:focus,
.ts-form-row textarea:focus {
	border-color: var(--color-primary);
	outline: none;
	box-shadow: var(--focus-ring);
}

.ts-order-review {
	background: var(--color-light-gray);
	padding: 2rem;
	border-radius: var(--border-radius);
}

.ts-payment-methods {
	list-style: none;
	padding: 0;
	margin: 0 0 2rem;
}

.ts-payment-methods li {
	padding: 1rem;
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius);
	margin-bottom: 1rem;
}

.ts-payment-methods li:last-child {
	margin-bottom: 0;
}

.ts-place-order {
	margin-top: 2rem;
}

/* ========================================
   My Account
   ======================================== */

.ts-account-login {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 3rem;
	max-width: 900px;
	margin: 3rem auto;
}

@media (max-width: 768px) {
	.ts-account-login {
		grid-template-columns: 1fr;
	}
}

.ts-login-form,
.ts-register-form {
	padding: 2rem;
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius);
}

.ts-orders-table {
	width: 100%;
	border-collapse: collapse;
}

.ts-orders-table thead th {
	padding: 1rem;
	text-align: left;
	font-weight: 600;
	border-bottom: 2px solid var(--color-border);
}

.ts-orders-table tbody td {
	padding: 1rem;
	border-bottom: 1px solid var(--color-border);
}

.ts-no-orders {
	text-align: center;
	padding: 3rem;
	background: var(--color-light-gray);
	border-radius: var(--border-radius);
}

/* ========================================
   Responsive Adjustments
   ======================================== */

@media (max-width: 480px) {
	/* Override legacy rule: use transform-based off-canvas hidden state */
	.ts-cart-drawer {
		width: min(92vw, 360px);
		transform: translateX(100%);
		right: auto; /* neutralize old positioning */
	}
	.ts-cart-drawer.active { transform: translateX(0); }
	
	.ts-cart-table {
		font-size: 0.875rem;
	}
	
	.ts-cart-table thead {
		display: none;
	}
	
	.ts-cart-table tbody td {
		display: block;
		text-align: right;
		padding: 0.5rem 1rem;
		border: none;
	}
	
	.ts-cart-table tbody td::before {
		content: attr(data-title);
		float: left;
		font-weight: 600;
	}
	
	.ts-cart-table tbody tr {
		display: block;
		margin-bottom: 1.5rem;
		border: 1px solid var(--color-border);
		border-radius: var(--border-radius);
		padding: 1rem;
	}
}

/* ========================================
   Artisan Cards & Technique Cards
   ======================================== */

/* Artisan Card - Full */
.ts-artisan-card {
	display: flex;
	gap: 2rem;
	padding: 2rem;
	background: #F6F3EE;
	border-radius: 12px;
	margin: 2rem 0;
}

.ts-artisan-image {
	flex-shrink: 0;
	width: 200px;
	height: 200px;
	border-radius: 50%;
	overflow: hidden;
}

.ts-artisan-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ts-artisan-info {
	flex: 1;
}

.ts-artisan-name {
	font-family: 'Playfair Display', serif;
	font-size: 1.75rem;
	font-weight: 600;
	color: #141433;
	margin: 0 0 0.5rem;
}

.ts-artisan-location,
.ts-artisan-years {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0.5rem 0;
	font-size: 0.95rem;
	color: #6E7F66;
}

.ts-artisan-location svg,
.ts-artisan-years svg {
	flex-shrink: 0;
	color: #C3A46A;
}

.ts-artisan-story {
	margin-top: 1rem;
	line-height: 1.7;
	color: #444;
}

/* Artisan Card - Compact */
.ts-artisan-card-compact {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 1.5rem;
	background: white;
	border: 1px solid #e0e0e0;
	border-radius: 8px;
}

.ts-artisan-card-compact .ts-artisan-image {
	width: 80px;
	height: 80px;
}

.ts-artisan-card-compact .ts-artisan-name {
	font-size: 1.25rem;
	margin-bottom: 0.25rem;
}

.ts-artisan-card-compact .ts-artisan-location,
.ts-artisan-card-compact .ts-artisan-years {
	font-size: 0.875rem;
}

/* Technique Card */
.ts-technique-card {
	padding: 2rem;
	background: white;
	border: 2px solid #C3A46A;
	border-radius: 12px;
	margin: 2rem 0;
}

.ts-technique-name {
	font-family: 'Playfair Display', serif;
	font-size: 1.75rem;
	font-weight: 600;
	color: #141433;
	margin: 0 0 1rem;
}

.ts-technique-time {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 1rem;
	font-size: 0.95rem;
	color: #6E7F66;
}

.ts-technique-time svg {
	flex-shrink: 0;
	color: #C3A46A;
}

.ts-technique-description {
	line-height: 1.7;
	color: #444;
	margin-bottom: 1.5rem;
}

.ts-technique-video-link {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.75rem 1.5rem;
	background: #141433;
	color: white;
	text-decoration: none;
	border-radius: 6px;
	font-weight: 600;
	transition: all 0.3s ease;
}

.ts-technique-video-link:hover {
	background: #1e1e50;
	transform: translateY(-2px);
}

/* Care Instructions */
.ts-care-instructions {
	padding: 1.5rem;
	background: #F6F3EE;
	border-radius: 8px;
	margin: 1rem 0;
}

.ts-care-item {
	display: flex;
	gap: 1rem;
	padding: 0.75rem 0;
    border-bottom: 1px solid #e0e0e0;
}

/* Mini cart item image sizing */
.woocommerce-mini-cart .mini_cart_item img,
.ts-cart-drawer .woocommerce-mini-cart .mini_cart_item img {
	width: 64px;
	height: 64px;
	object-fit: cover;
	border-radius: 6px;
	flex: 0 0 64px;
}

/* Mini cart list reset within drawer */
.ts-cart-drawer .woocommerce-mini-cart {
	list-style: none;
	margin: 0;
	padding: 0;
}

/* Use grid to layout thumbnail, title, and quantity nicely */
.ts-cart-drawer .woocommerce-mini-cart .mini_cart_item {
	position: relative;
	display: grid;
	grid-template-columns: 64px 1fr;
	grid-template-rows: auto auto auto;
	column-gap: .75rem;
	row-gap: .35rem;
	padding: .75rem 0;
	border-bottom: 1px solid var(--color-border, rgba(20,20,51,.1));
}

.ts-cart-drawer .woocommerce-mini-cart .mini_cart_item > a.remove {
	position: absolute;
	top: .5rem;
	right: 0;
	line-height: 1;
}

.ts-cart-drawer .woocommerce-mini-cart .mini_cart_item > a:not(.remove) {
	grid-column: 2;
	grid-row: 1;
	display: block;
	color: inherit;
	text-decoration: none;
	font-weight: 600;
	overflow: hidden;
	line-clamp: 2;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
}

.ts-cart-drawer .woocommerce-mini-cart .mini_cart_item img {
	grid-column: 1;
	grid-row: 1 / span 2;
}

.ts-cart-drawer .woocommerce-mini-cart .mini_cart_item .quantity {
	grid-column: 2;
	grid-row: 2;
	display: block;
	margin: 0;
	color: var(--color-gray);
}

/* Show unit price under title (row 2) */
.ts-cart-drawer .woocommerce-mini-cart .mini_cart_item .ts-mini-price {
	grid-column: 2;
	grid-row: 2;
	align-self: start;
	font-size: .95rem;
	color: var(--color-text);
}

/* Mini cart quantity controls */
.ts-mini-qty.quantity {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius);
	overflow: hidden;
	background: var(--color-lightest,#f7f7f9);
}
.ts-mini-qty .ts-qty-button {
	background: transparent;
	border: none;
	width: 34px;
	height: 34px;
	font-size: 1.1rem;
	line-height: 1;
	cursor: pointer;
	color: var(--color-text);
	transition: background .25s ease;
}
.ts-mini-qty .ts-qty-button:hover { background: var(--color-light-gray); }
.ts-mini-qty input.qty {
	width: 48px;
	text-align: center;
	border: none;
	background: transparent;
	font-size: .95rem;
	padding: 0;
}
.ts-mini-qty input.qty:focus { outline: 2px solid var(--color-accent); outline-offset: 2px; }

/* Empty state */
.ts-cart-drawer-empty { text-align: center; padding: 2.5rem 1rem 2.75rem; }
.ts-cart-drawer-empty svg { opacity: .55; margin-bottom: 1rem; }
.ts-cart-drawer-empty p { margin: 0 0 1rem; font-size: .95rem; color: var(--color-gray); }
.ts-cart-drawer-empty .button { width: auto; }

/* Ensure mini-cart images are constrained inside drawer */
.ts-cart-drawer .woocommerce-mini-cart .mini_cart_item img { width: 64px; height: 64px; object-fit: cover; }

/* Ensure drawer sits above overlay */
.ts-cart-drawer.active { z-index: 9999; }
.ts-cart-drawer-overlay.active { z-index: 9998; }

/* Mobile width adjustment */
@media (max-width: 480px) {
	.ts-cart-drawer {
		width: min(92vw, 360px);
		transform: translateX(100%);
	}
	.ts-cart-drawer.active {
		transform: translateX(0);
	}
}

/* Remove stray border style that leaked from care section */
/* (Was causing unexpected border under drawer on some breakpoints) */

.ts-care-item:last-child {
	border-bottom: none;
}

.ts-care-item strong {
	min-width: 100px;
	color: #141433;
}

.ts-care-item span {
	color: #444;
}

.ts-care-additional {
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 2px solid #C3A46A;
	color: #444;
	font-style: italic;
}

/* Sustainability Badges */
.ts-sustainability-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin: 1rem 0;
}

.ts-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.5rem 1rem;
	border-radius: 20px;
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1;
}

.ts-badge svg {
	flex-shrink: 0;
}

.ts-badge-eco {
	background: #E8F5E9;
	color: #2E7D32;
}

.ts-badge-fair {
	background: #FFF3E0;
	color: #E65100;
}

.ts-badge-cert {
	background: #E3F2FD;
	color: #1565C0;
	border: 1px solid #90CAF9;
}

/* Limited Edition Counter */
.ts-limited-edition {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.75rem 1.25rem;
	border-radius: 8px;
	font-weight: 600;
	margin: 1rem 0;
}

.ts-limited-edition svg {
	flex-shrink: 0;
	width: 20px;
	height: 20px;
}

.ts-limited-text {
	font-size: 0.95rem;
}

.ts-limited-batch {
	margin-left: auto;
	font-size: 0.8rem;
	opacity: 0.8;
	font-weight: normal;
}

/* Urgency levels */
.ts-urgency-high {
	background: #FFEBEE;
	color: #C62828;
	border: 2px solid #EF5350;
}

.ts-urgency-medium {
	background: #FFF3E0;
	color: #E65100;
	border: 2px solid #FF9800;
}

.ts-urgency-low {
	background: #FFF9C4;
	color: #F57F17;
	border: 2px solid #FDD835;
}

/* Responsive Adjustments for Cards */
@media (max-width: 768px) {
	.ts-artisan-card {
		flex-direction: column;
		text-align: center;
	}

	.ts-artisan-image {
		width: 150px;
		height: 150px;
		margin: 0 auto;
	}

	.ts-artisan-location,
	.ts-artisan-years {
		justify-content: center;
	}

	.ts-sustainability-badges {
		justify-content: center;
	}
}

/* ========================================
   Modal System
   ======================================== */

/* Modal Root Container */
#ts-modal-root {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 9999;
	pointer-events: none;
}

#ts-modal-root > * {
	pointer-events: auto;
}

/* Modal Backdrop */
.ts-modal-backdrop {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
	background: var(--overlay-scrim);
	backdrop-filter: none;
	opacity: 0;
	transition: opacity 0.3s ease;
	z-index: 9999;
}
.ts-modal-root { position: fixed; inset:0; z-index:10000; display:flex; align-items:center; justify-content:center; padding:1.25rem 1rem; pointer-events:none; }
.ts-modal-root > .ts-modal, .ts-modal-root > .ts-modal-backdrop { pointer-events:auto; }

.ts-modal-backdrop.ts-modal-active {
	opacity: 1;
}

/* Modal Container */
.ts-modal {
	position: relative;
	width: 100%;
	max-height: 90vh;
	background: var(--color-white);
	border-radius: 12px;
	box-shadow: var(--shadow-xl);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transform: scale(0.95);
	opacity: 0;
	transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	z-index: 10000;
}

.ts-modal-active .ts-modal {
	transform: scale(1);
	opacity: 1;
}

/* Modal Sizes */
.ts-modal { position:relative; width:100%; max-width:640px; max-height:90vh; background:var(--color-white); border-radius:16px; box-shadow:var(--shadow-xl); overflow:hidden; display:flex; flex-direction:column; transform:translateY(12px) scale(.96); opacity:0; transition:all .28s cubic-bezier(.4,0,.2,1); }
.ts-modal-active .ts-modal { transform:translateY(0) scale(1); opacity:1; }
.ts-modal-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1.5rem 2rem;
	border-bottom: 1px solid var(--color-border);
	flex-shrink: 0;
}

.ts-modal-title {
	margin: 0;
	font-size: 1.5rem;
	font-family: var(--font-heading);
	font-weight: 700;
	color: var(--color-primary);
}

/* Modal Close Button */
.ts-modal-close {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: none;
	background: transparent;
	color: var(--color-text);
	cursor: pointer;
	border-radius: 50%;
	transition: all 0.2s ease;
	flex-shrink: 0;
}

.ts-modal-close:hover {
	background: var(--color-light-gray);
	color: var(--color-primary);
}

.ts-modal-close:focus {
	outline: 2px solid var(--color-primary);
	outline-offset: 2px;
}

.ts-modal-close svg {
	width: 24px;
	height: 24px;
}

/* Absolute Close Button (for modals without header) */
.ts-modal-close-absolute {
	position: absolute;
	top: 1rem;
	right: 1rem;
	z-index: 10;
	background: rgba(255, 255, 255, 0.9);
	backdrop-filter: blur(8px);
}

.ts-modal-close-absolute:hover {
	background: rgba(255, 255, 255, 1);
}

/* Modal Content */
.ts-modal-content { flex:1; overflow-y:auto; padding:1.25rem 1.25rem 1.4rem; -webkit-overflow-scrolling:touch; }
.ts-video-wrapper { position:relative; width:100%; padding-bottom:56.25%; height:0; background:#000; border-radius:12px; overflow:hidden; }
.ts-video-wrapper iframe, .ts-video-wrapper video { position:absolute; inset:0; width:100%; height:100%; border:0; }
.ts-dark-card, .ts-gallery-card-dark { background:#141433; color:#F6F3EE; border-radius:14px; padding:.8rem .85rem; }
.ts-dark-card h3, .ts-dark-card h4, .ts-gallery-card-dark h3, .ts-gallery-card-dark h4 { color:#F6F3EE; font-family: var(--ts-font-serif); }
.ts-dark-card p, .ts-gallery-card-dark p { color:#E8E3DB; }

.ts-modal-content::-webkit-scrollbar {
	width: 8px;
}

.ts-modal-content::-webkit-scrollbar-track {
	background: var(--color-light-gray);
}

.ts-modal-content::-webkit-scrollbar-thumb {
	background: var(--color-gray);
	border-radius: 4px;
}

.ts-modal-content::-webkit-scrollbar-thumb:hover {
	background: var(--color-primary);
}

/* ========================================
   Modal Animations
   ======================================== */

/* Fade Animation */
.ts-modal-anim-fade .ts-modal {
	transform: none;
}

/* Slide Up Animation */
.ts-modal-anim-slide-up .ts-modal {
	transform: translateY(20px);
}

.ts-modal-anim-slide-up.ts-modal-active .ts-modal {
	transform: translateY(0);
}

/* ========================================
   Modal Types
   ======================================== */

/* Video Modal */
.ts-modal-type-video .ts-modal {
	background: #000;
}

.ts-modal-type-video .ts-modal-content {
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}

.ts-video-wrapper {
	position: relative;
	width: 100%;
	padding-bottom: 56.25%; /* 16:9 aspect ratio */
	height: 0;
}

.ts-video-wrapper iframe,
.ts-video-wrapper video {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border: none;
}

/* Size Guide Modal */
.ts-modal-type-size-guide .ts-modal-content {
	padding: 1.5rem;
}

.ts-size-guide-table {
	width: 100%;
	border-collapse: collapse;
	margin-top: 1rem;
	font-size: var(--ts-sg-font-size);
}

.ts-size-guide-table th,
.ts-size-guide-table td {
	padding: var(--ts-sg-cell-padding);
	text-align: left;
	border-bottom: 1px solid var(--color-border);
}

.ts-size-guide-table th {
	background: var(--ts-sg-head-bg);
	font-weight: 600;
	color: var(--ts-sg-head-color);
}

.ts-size-guide-table tbody tr:hover { background: var(--ts-sg-row-hover-bg); }

/* ========================================
   Quick View Modal: Container
   ======================================== */
.ts-modal-type-quick-view .ts-modal {
	max-width: 1000px;
}

/* Quick View Modal: Content wrapper */
.ts-modal-type-quick-view .ts-modal-content {
	padding: 0;
}

/* Quick View Modal: Loading State */
.ts-loading {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 200px;
	font-size: 1rem;
	color: var(--color-gray);
}

.ts-loading::after {
	content: '';
	display: inline-block;
	width: 24px;
	height: 24px;
	margin-left: 0.5rem;
	border: 3px solid var(--color-border);
	border-top-color: var(--color-primary);
	border-radius: 50%;
	animation: ts-spin var(--motion-duration-2) linear infinite;
}

@keyframes ts-spin {
	to { transform: rotate(360deg); }
}

/* ========================================
   Confirmation Modal
   ======================================== */
.ts-modal-confirm {
	text-align: center;
	padding: 1rem 0;
}

.ts-modal-confirm-message {
	font-size: 1.125rem;
	color: var(--color-text);
	margin-bottom: 2rem;
	line-height: 1.6;
}

.ts-modal-confirm-actions {
	display: flex;
	gap: 1rem;
	justify-content: center;
}

/* ========================================
   Body State When Modal Open
   ======================================== */

body.ts-modal-open {
	overflow: hidden;
}

/* ========================================
	Responsive Modal
	======================================== */

@media (max-width: 767px) {
	.ts-modal-backdrop {
		padding: 0;
		align-items: flex-end;
	}

	.ts-modal {
		max-height: 95vh;
		border-radius: 12px 12px 0 0;
		transform: translateY(100%);
	}

	.ts-modal-active .ts-modal {
		transform: translateY(0);
	}

	.ts-modal-small,
	.ts-modal-medium,
	.ts-modal-large {
		max-width: 100%;
	}

	.ts-modal-header {
		padding: 1rem 1.5rem;
	}

	.ts-modal-title {
		font-size: 1.25rem;
	}

	.ts-modal-content {
		padding: 1.5rem;
	}

	/* Size guide table responsive tweaks */
	.ts-size-guide-table { font-size: 0.875rem; }
	.ts-size-guide-table th, .ts-size-guide-table td { padding: 0.5rem; }
}

@media (max-width: 480px) {
	.ts-modal-confirm-actions {
		flex-direction: column;
	}

	.ts-modal-confirm-actions .ts-btn {
		width: 100%;
	}
}

/* ========================================
   Breadcrumbs
   ======================================== */

/* Hide duplicate breadcrumbs in main content (already shown in page header) */
.ts-woocommerce-main .ts-breadcrumbs {
	display: none;
}

/* Breadcrumb styles moved to components.css for unified implementation */

/* ========================================
   Sidebar Layout
   ======================================== */

/* Content wrapper - mobile-first (no grid by default) */
.ts-content-wrapper {
	display: block;
	margin: 2rem 0;
}

@media (min-width: 1024px) {
	/* Default: No sidebar - full width centered content */
	.ts-content-wrapper {
		max-width: 900px;
		margin-left: auto;
		margin-right: auto;
	}

	/* Only apply grid when sidebar actually exists */
	.ts-has-sidebar .ts-content-wrapper,
	.ts-template-sidebar-left .ts-content-wrapper,
	.ts-template-sidebar-right .ts-content-wrapper {
		display: grid;
		gap: 3rem;
		max-width: 100%;
		margin-left: 0;
		margin-right: 0;
	}

	/* Sidebar on right (default sidebar layout) */
	.ts-has-sidebar .ts-content-wrapper,
	.ts-template-sidebar-right .ts-content-wrapper {
		grid-template-columns: 1fr 300px;
	}

	/* Sidebar on left */
	.sidebar-left .ts-content-wrapper,
	.ts-template-sidebar-left .ts-content-wrapper {
		grid-template-columns: 300px 1fr;
	}

	/* Default order: main content first, sidebar second (for right sidebar) */
	.ts-main-content,
	#ts-main-content,
	#primary {
		order: 1;
	}

	.ts-sidebar,
	#ts-secondary {
		order: 2;
	}

	/* Sidebar left: reverse order - sidebar first, content second */
	.sidebar-left .ts-main-content,
	.sidebar-left #ts-main-content,
	.sidebar-left #primary,
	.ts-template-sidebar-left .ts-main-content,
	.ts-template-sidebar-left #ts-main-content,
	.ts-template-sidebar-left #primary {
		order: 2;
	}

	.sidebar-left .ts-sidebar,
	.sidebar-left #ts-secondary,
	.ts-template-sidebar-left .ts-sidebar,
	.ts-template-sidebar-left #ts-secondary {
		order: 1;
	}

	/* Full width templates - no grid, centered */
	.ts-template-full-width .ts-content-wrapper,
	.no-sidebar .ts-content-wrapper,
	.woocommerce-cart .ts-content-wrapper,
	.woocommerce-checkout .ts-content-wrapper,
	.woocommerce-account .ts-content-wrapper {
		display: block;
		max-width: 900px;
		margin-left: auto;
		margin-right: auto;
	}
}

/* Sidebar */
.ts-sidebar {
	position: relative;
}

.ts-sidebar-inner {
	position: sticky;
	top: calc(var(--header-height, 80px) + 2rem);
}

/* Make sure sidebar doesn't stick on mobile */
@media (max-width: 1023px) {
	.ts-sidebar-inner {
		position: relative;
		top: auto;
	}
}

/* ========================================
   Pagination - Premium Shopify Style
   ======================================== */

.ts-woocommerce-page nav.woocommerce-pagination,
nav.woocommerce-pagination {
	text-align: center;
	margin: 3rem 0 2rem;
	clear: both;
}

.ts-woocommerce-page nav.woocommerce-pagination ul,
nav.woocommerce-pagination ul {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0;
	margin: 0;
	border: none;
	list-style: none;
}

.ts-woocommerce-page nav.woocommerce-pagination ul li,
nav.woocommerce-pagination ul li {
	display: inline-block;
	margin: 0;
	padding: 0;
	border: none;
}

.ts-woocommerce-page nav.woocommerce-pagination ul li a,
.ts-woocommerce-page nav.woocommerce-pagination ul li span,
nav.woocommerce-pagination ul li a,
nav.woocommerce-pagination ul li span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 0.9rem;
	font-size: 0.9rem;
	font-weight: 500;
	color: var(--color-text);
	background: var(--color-white, #FFFFFF);
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius, 6px);
	text-decoration: none;
	transition: all 0.3s ease;
	line-height: 1;
}

.ts-woocommerce-page nav.woocommerce-pagination ul li a:hover,
.ts-woocommerce-page nav.woocommerce-pagination ul li a:focus,
nav.woocommerce-pagination ul li a:hover,
nav.woocommerce-pagination ul li a:focus {
	background: var(--color-secondary);
	border-color: var(--color-secondary);
	color: var(--color-white, #FFFFFF);
	transform: translateY(-2px);
	box-shadow: var(--shadow-md);
}

.ts-woocommerce-page nav.woocommerce-pagination ul li span.current,
nav.woocommerce-pagination ul li span.current {
	background: var(--color-secondary);
	border-color: var(--color-secondary);
	color: var(--color-white, #FFFFFF);
	font-weight: 600;
	box-shadow: var(--shadow-sm);
}

/* Previous/Next emphasis */
.ts-woocommerce-page nav.woocommerce-pagination ul li a.prev,
.ts-woocommerce-page nav.woocommerce-pagination ul li a.next,
nav.woocommerce-pagination ul li a.prev,
nav.woocommerce-pagination ul li a.next {
	font-weight: 600;
	color: var(--color-secondary);
}

/* Dots (ellipsis) */
.ts-woocommerce-page nav.woocommerce-pagination ul li span.dots,
nav.woocommerce-pagination ul li span.dots {
	border: none;
	background: transparent;
	color: var(--color-text-light, #666);
	pointer-events: none;
	min-width: auto;
	height: auto;
	padding: 0 .25rem;
}

/* Mobile responsive */
@media (max-width: 767px) {
	.ts-woocommerce-page nav.woocommerce-pagination,
	nav.woocommerce-pagination {
		margin: 2rem 0 1.5rem;
	}

	.ts-woocommerce-page nav.woocommerce-pagination ul,
	nav.woocommerce-pagination ul {
		gap: 0.375rem;
	}

	.ts-woocommerce-page nav.woocommerce-pagination ul li a,
	.ts-woocommerce-page nav.woocommerce-pagination ul li span,
	nav.woocommerce-pagination ul li a,
	nav.woocommerce-pagination ul li span {
		min-width: 40px;
		height: 40px;
		padding: 0 0.75rem;
		font-size: 0.875rem;
	}

	/* Hide some page numbers on mobile, keep first, last, current, and neighbors */
	.ts-woocommerce-page nav.woocommerce-pagination ul li:not(.active):not(:first-child):not(:last-child):not(:nth-child(2)):not(:nth-last-child(2)) a:not(.prev):not(.next),
	nav.woocommerce-pagination ul li:not(.active):not(:first-child):not(:last-child):not(:nth-child(2)):not(:nth-last-child(2)) a:not(.prev):not(.next) {
		display: none;
	}
}

/* Accessibility */
.ts-woocommerce-page nav.woocommerce-pagination ul li a:focus-visible,
nav.woocommerce-pagination ul li a:focus-visible {
	outline: 2px solid var(--color-secondary);
	outline-offset: 2px;
}

/* ========================================
   My Account Page - Premium UI/UX
   ======================================== */

/* My Account Wrapper */
.ts-my-account-wrapper {
	max-width: 1280px;
	margin: 3rem auto;
	padding: 0 2rem;
}

/* Horizontal Navigation Bar */
.ts-account-nav-wrapper {
	background: var(--color-white, #FFFFFF);
	border: 1px solid var(--color-border, rgba(195, 164, 106, 0.2));
	border-radius: 8px;
	margin-bottom: 2rem;
	overflow: hidden;
}

.woocommerce-MyAccount-navigation ul {
	display: flex;
	flex-wrap: wrap;
	list-style: none;
	margin: 0;
	padding: 0;
	gap: 0;
}

.woocommerce-MyAccount-navigation ul li {
	margin: 0;
	padding: 0;
	flex: 0 0 auto;
	border-right: 1px solid var(--color-border, rgba(195, 164, 106, 0.15));
}

.woocommerce-MyAccount-navigation ul li:last-child {
	border-right: none;
	margin-left: auto;
}

.woocommerce-MyAccount-navigation ul li a {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 1rem 1.5rem;
	color: var(--color-text, #141433);
	text-decoration: none;
	font-size: 0.9375rem;
	font-weight: 500;
	transition: all 0.3s ease;
	position: relative;
	white-space: nowrap;
}

.woocommerce-MyAccount-navigation ul li a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 3px;
	background: var(--color-secondary);
	opacity: 0;
	transition: opacity 0.3s ease;
}

.woocommerce-MyAccount-navigation ul li:hover a {
	background: var(--surface-hover);
	color: var(--color-secondary);
}

.woocommerce-MyAccount-navigation ul li.is-active a {
	color: var(--color-secondary);
	font-weight: 600;
}

.woocommerce-MyAccount-navigation ul li.is-active a::after {
	opacity: 1;
}

/* Content Area */
.ts-account-content-wrapper {
	background: var(--color-white, #FFFFFF);
	border: 1px solid var(--color-border, rgba(195, 164, 106, 0.2));
	border-radius: 8px;
	padding: 2.5rem;
}

.woocommerce-MyAccount-content {
	min-height: 400px;
}

/* Section Headings */
.woocommerce-MyAccount-content h2,
.woocommerce-MyAccount-content h3 {
	font-family: var(--font-heading, 'Playfair Display', serif);
	font-size: 1.75rem;
	font-weight: 700;
	margin: 0 0 1.5rem 0;
	color: var(--color-text, #141433);
	padding-bottom: 1rem;
	border-bottom: 2px solid var(--color-border, rgba(195, 164, 106, 0.2));
}

/* Dashboard Welcome */
.woocommerce-MyAccount-content > p:first-child {
	font-size: 1.125rem;
	line-height: 1.8;
	margin-bottom: 2rem;
	color: var(--color-text, #141433);
}

/* Orders Table */
.woocommerce-orders-table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	margin-bottom: 2rem;
	background: var(--color-white, #FFFFFF);
	border: 1px solid var(--color-border, rgba(195, 164, 106, 0.2));
	border-radius: 8px;
	overflow: hidden;
}

.woocommerce-orders-table thead {
	background: var(--color-background, #F8F7F5);
}

.woocommerce-orders-table thead th {
	padding: 1rem 1.5rem;
	text-align: left;
	font-size: 0.875rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: var(--color-text, #141433);
	border-bottom: 2px solid var(--color-border, rgba(195, 164, 106, 0.2));
}

.woocommerce-orders-table tbody tr {
	border-bottom: 1px solid var(--color-border, rgba(195, 164, 106, 0.15));
	transition: background 0.2s ease;
}

.woocommerce-orders-table tbody tr:hover {
	background: var(--surface-soft);
}

.woocommerce-orders-table tbody tr:last-child {
	border-bottom: none;
}

.woocommerce-orders-table tbody td {
	padding: 1.25rem 1.5rem;
	vertical-align: middle;
	font-size: 0.9375rem;
}

/* Order Status Badges */
.woocommerce-orders-table__cell-order-status {
	font-weight: 600;
}

.woocommerce-orders-table .order-status {
	display: inline-block;
	padding: 0.375rem 0.875rem;
	border-radius: 999px;
	font-size: 0.8125rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.woocommerce-orders-table .order-status.status-processing {
	background: rgba(255, 193, 7, 0.15);
	color: #e65100;
}

.woocommerce-orders-table .order-status.status-completed {
	background: rgba(76, 175, 80, 0.15);
	color: #2e7d32;
}

.woocommerce-orders-table .order-status.status-pending {
	background: rgba(158, 158, 158, 0.15);
	color: #616161;
}

.woocommerce-orders-table .order-status.status-failed,
.woocommerce-orders-table .order-status.status-cancelled {
	background: rgba(244, 67, 54, 0.15);
	color: #c62828;
}

.woocommerce-orders-table .order-status.status-on-hold {
	background: rgba(33, 150, 243, 0.15);
	color: #1565c0;
}

/* Action Buttons in Table */
.woocommerce-orders-table .woocommerce-button {
	padding: 0.5rem 1rem;
	font-size: 0.875rem;
	border-radius: 6px;
	background: var(--color-secondary);
	color: var(--color-white, #FFFFFF);
	border: none;
	font-weight: 500;
	transition: all 0.3s ease;
	text-decoration: none;
	display: inline-block;
}

.woocommerce-orders-table .woocommerce-button:hover {
	background: var(--color-text, #141433);
	transform: translateY(-2px);
	box-shadow: var(--shadow-gold-md);
}

/* Addresses */
.woocommerce-Address {
	background: var(--color-background, #F8F7F5);
	border: 1px solid var(--color-border, rgba(195, 164, 106, 0.2));
	border-radius: 8px;
	padding: 2rem;
	margin-bottom: 2rem;
}

.woocommerce-Address-title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 1.5rem;
}

.woocommerce-Address-title h3 {
	font-size: 1.25rem;
	margin: 0;
	border: none;
	padding: 0;
}

.woocommerce-Address-title .edit {
	font-size: 0.875rem;
	color: var(--color-secondary);
	text-decoration: none;
	font-weight: 500;
	transition: color 0.3s ease;
}

.woocommerce-Address-title .edit:hover {
	color: var(--color-text, #141433);
}

.woocommerce-Address address {
	font-style: normal;
	line-height: 1.8;
	color: var(--color-text-light, #666);
}

/* Forms */
.woocommerce-MyAccount-content form .form-row {
	margin-bottom: 1.5rem;
}

.woocommerce-MyAccount-content form label {
	display: block;
	margin-bottom: 0.5rem;
	font-size: 0.9375rem;
	font-weight: 500;
	color: var(--color-text, #141433);
}

.woocommerce-MyAccount-content form input[type="text"],
.woocommerce-MyAccount-content form input[type="email"],
.woocommerce-MyAccount-content form input[type="password"],
.woocommerce-MyAccount-content form input[type="tel"],
.woocommerce-MyAccount-content form select,
.woocommerce-MyAccount-content form textarea {
	width: 100%;
	padding: 0.875rem 1rem;
	border: 1px solid var(--color-border, rgba(195, 164, 106, 0.3));
	border-radius: 6px;
	font-size: 0.9375rem;
	font-family: var(--font-body, 'Public Sans', sans-serif);
	transition: all 0.3s ease;
	background: var(--color-white, #FFFFFF);
}

.woocommerce-MyAccount-content form input:focus,
.woocommerce-MyAccount-content form select:focus,
.woocommerce-MyAccount-content form textarea:focus {
	outline: none;
	border-color: var(--color-secondary);
	box-shadow: var(--focus-ring);
}

.woocommerce-MyAccount-content form button[type="submit"],
.woocommerce-MyAccount-content form .button {
	padding: 0.875rem 2rem;
	background: var(--color-secondary);
	color: var(--color-white, #FFFFFF);
	border: none;
	border-radius: 6px;
	font-size: 1rem;
	font-weight: 600;
	cursor: pointer;
	transition: all 0.3s ease;
	display: inline-block;
	text-decoration: none;
}

.woocommerce-MyAccount-content form button[type="submit"]:hover,
.woocommerce-MyAccount-content form .button:hover {
	background: var(--color-text, #141433);
	transform: translateY(-2px);
	box-shadow: var(--shadow-gold-md);
}

/* Downloads */
.woocommerce-MyAccount-downloads {
	border: 1px solid var(--color-border, rgba(195, 164, 106, 0.2));
	border-radius: 8px;
	overflow: hidden;
}

.woocommerce-MyAccount-downloads thead {
	background: var(--color-background, #F8F7F5);
}

.woocommerce-MyAccount-downloads td,
.woocommerce-MyAccount-downloads th {
	padding: 1rem 1.5rem;
	text-align: left;
}

/* Payment Methods */
.woocommerce-MyAccount-paymentMethods {
	border: 1px solid var(--color-border, rgba(195, 164, 106, 0.2));
	border-radius: 8px;
	overflow: hidden;
}

.woocommerce-MyAccount-paymentMethods thead {
	background: var(--color-background, #F8F7F5);
}

/* Mobile Responsive */
@media (max-width: 1023px) {
	.ts-my-account-wrapper {
		padding: 0 1.5rem;
		margin: 2rem auto;
	}

	.woocommerce-MyAccount-navigation ul {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	.woocommerce-MyAccount-navigation ul li a {
		padding: 1rem 1.25rem;
		font-size: 0.875rem;
	}

	.ts-account-content-wrapper {
		padding: 2rem 1.5rem;
	}

	/* Make table responsive */
	.woocommerce-orders-table {
		display: block;
		overflow-x: auto;
	}
}

@media (max-width: 767px) {
	.ts-my-account-wrapper {
		padding: 0 1rem;
		margin: 1.5rem auto;
	}

	.woocommerce-MyAccount-navigation ul {
		flex-direction: column;
	}

	.woocommerce-MyAccount-navigation ul li {
		border-right: none;
		border-bottom: 1px solid var(--color-border, rgba(195, 164, 106, 0.15));
	}

	.woocommerce-MyAccount-navigation ul li:last-child {
		margin-left: 0;
		border-bottom: none;
	}

	.woocommerce-MyAccount-navigation ul li a {
		justify-content: flex-start;
		padding: 1rem;
	}

	.woocommerce-MyAccount-navigation ul li a::after {
		left: 0;
		right: auto;
		bottom: 0;
		top: 0;
		width: 3px;
		height: auto;
	}

	.ts-account-content-wrapper {
		padding: 1.5rem 1rem;
	}

	.woocommerce-MyAccount-content h3 {
		font-size: 1.5rem;
	}
}

/* ========================================
   Login & Registration Page - Premium Design
   ======================================== */

/* Remove constraints ONLY when auth wrapper is present (login/register/lost-password pages) */
.woocommerce-account .ts-auth-wrapper ~ *,
.woocommerce-account:has(.ts-auth-wrapper) .ts-container,
.woocommerce-account:has(.ts-auth-wrapper) .ts-content-wrapper,
.woocommerce-account:has(.ts-auth-wrapper) .ts-main-content,
.woocommerce-account:has(.ts-auth-wrapper) .ts-entry,
.woocommerce-account:has(.ts-auth-wrapper) .ts-entry-content,
.woocommerce-account:has(.ts-auth-wrapper) .woocommerce {
	max-width: none !important;
	padding: 0 !important;
	margin: 0 !important;
	width: 100% !important;
}

/* Fix grid layout on account login page */
.woocommerce-account:has(.ts-auth-wrapper) .ts-content-wrapper {
	display: block !important;
	grid-template-columns: none !important;
	gap: 0 !important;
}

/* Main Wrapper - Full Width Breakout */
.ts-auth-wrapper {
	min-height: 70vh;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 4rem 1rem;
	background: linear-gradient(135deg, rgba(246, 243, 238, 0.5) 0%, rgba(246, 243, 238, 1) 100%);
	width: 100vw;
	max-width: none;
	position: relative;
	margin: 0;
}

/* Hide page header elements on account/login pages */
.woocommerce-account:has(.ts-auth-wrapper) .ts-entry-header,
.woocommerce-account:has(.ts-auth-wrapper) .ts-breadcrumb,
.woocommerce-account:has(.ts-auth-wrapper) .ts-entry-title,
.woocommerce-account:has(.ts-auth-wrapper) .ts-page-header {
	display: none !important;
}

.ts-auth-container {
	width: 100%;
	max-width: 480px;
	margin: 0 auto;
}

/* Welcome Header */
.ts-auth-header {
	text-align: center;
	margin-bottom: 3rem;
}

.ts-auth-title {
	font-family: var(--font-heading, 'Playfair Display', serif);
	font-size: 2.5rem;
	font-weight: 700;
	color: var(--color-text, #141433);
	margin: 0 0 0.5rem 0;
	line-height: 1.2;
}

.ts-auth-subtitle {
	font-family: var(--font-accent, 'Sloop Script Pro', cursive);
	font-size: 1.125rem;
	color: var(--color-primary, #C3A46A);
	margin: 0;
}

/* Forms Container */
.ts-auth-forms {
	position: relative;
}

/* Individual Form Wrapper */
.ts-auth-form-wrapper {
	background: var(--color-white, #FFFFFF);
	border-radius: 12px;
	padding: 3rem 2.5rem;
	box-shadow: var(--shadow-lg);
	border: 1px solid var(--color-border-subtle);
	transition: all 0.3s ease;
}

.ts-auth-form-wrapper:hover {
	box-shadow: var(--shadow-xl);
}

/* Hide register form by default if both forms exist */
.ts-auth-forms .ts-register-wrapper {
	display: none;
}

.ts-auth-forms .ts-register-wrapper.active {
	display: block;
	animation: fadeInUp 0.4s ease;
}

.ts-auth-forms .ts-login-wrapper.hidden {
	display: none;
}

/* Form Title */
.ts-form-title {
	font-family: var(--font-heading, 'Playfair Display', serif);
	font-size: 1.75rem;
	font-weight: 700;
	color: var(--color-text, #141433);
	margin: 0 0 2rem 0;
	text-align: center;
}

/* Form Fields */
.ts-form-field {
	margin-bottom: 1.5rem;
}

.ts-form-field label {
	display: block;
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--color-text, #141433);
	margin-bottom: 0.5rem;
}

.ts-form-field label .required {
	color: #d32f2f;
	margin-left: 2px;
}

.ts-form-field .ts-input {
	width: 100%;
	padding: 0.875rem 1.125rem;
	font-size: 1rem;
	font-family: var(--font-body, 'Public Sans', sans-serif);
	color: var(--color-text, #141433);
	background: var(--color-white, #FFFFFF);
	border: 2px solid var(--color-border, rgba(195, 164, 106, 0.25));
	border-radius: 8px;
	transition: all 0.3s ease;
	outline: none;
}

.ts-form-field .ts-input::placeholder {
	color: rgba(20, 20, 51, 0.4);
}

.ts-form-field .ts-input:focus {
	border-color: var(--color-secondary);
	box-shadow: var(--focus-ring-strong);
	background: var(--color-white, #FFFFFF);
}

/* Checkbox & Remember Me Row */
.ts-form-row-flex {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 1.5rem;
}

.ts-checkbox-label {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	cursor: pointer;
	font-size: 0.9375rem;
	color: var(--color-text, #141433);
	margin: 0;
}

.ts-checkbox {
	width: 18px;
	height: 18px;
	border: 2px solid var(--color-border, rgba(195, 164, 106, 0.4));
	border-radius: 4px;
	cursor: pointer;
	transition: all 0.2s ease;
}

.ts-checkbox:checked {
	background-color: var(--color-primary, #C3A46A);
	border-color: var(--color-primary, #C3A46A);
}

/* Links */
.ts-link-primary {
	color: var(--color-primary, #C3A46A);
	text-decoration: none;
	font-weight: 600;
	transition: color 0.3s ease;
}

.ts-link-primary:hover {
	color: var(--color-text, #141433);
}

.ts-link-secondary {
	color: var(--color-text, #141433);
	text-decoration: none;
	font-size: 0.9375rem;
	font-weight: 500;
	transition: color 0.3s ease;
}

.ts-link-secondary:hover {
	color: var(--color-primary, #C3A46A);
}

/* Submit Button */
.ts-btn-full {
	width: 100%;
	padding: 1rem 2rem;
	font-size: 1rem;
	font-weight: 600;
	border-radius: 8px;
	margin-bottom: 1.5rem;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	transition: all 0.3s ease;
}

.ts-btn-full:hover {
	transform: translateY(-2px);
	box-shadow: var(--shadow-gold-lg);
}

/* Form Footer */
.ts-form-footer {
	text-align: center;
	padding-top: 1.5rem;
	border-top: 1px solid var(--color-border, rgba(195, 164, 106, 0.2));
}

.ts-form-footer p {
	margin: 0;
	font-size: 0.9375rem;
	color: var(--color-text-light, #666);
}

/* Form Note */
.ts-form-note {
	padding: 1rem 1.25rem;
	background: rgba(195, 164, 106, 0.08);
	border-left: 3px solid var(--color-primary, #C3A46A);
	border-radius: 6px;
	font-size: 0.875rem;
	color: var(--color-text, #141433);
	margin-bottom: 1.5rem;
	line-height: 1.6;
}

/* Animation */
@keyframes fadeInUp {
	from {
		opacity: 0;
		transform: translateY(20px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* Error Messages */
.woocommerce-error,
.woocommerce-message,
.woocommerce-info {
	margin-bottom: 2rem;
	padding: 1rem 1.25rem;
	border-radius: 8px;
	border-left: 4px solid;
}

.woocommerce-error {
	background: rgba(244, 67, 54, 0.08);
	border-left-color: #f44336;
	color: #c62828;
}

.woocommerce-message {
	background: rgba(76, 175, 80, 0.08);
	border-left-color: #4caf50;
	color: #2e7d32;
}

.woocommerce-info {
	background: rgba(33, 150, 243, 0.08);
	border-left-color: #2196f3;
	color: #1565c0;
}

/* =============================
   Products Toolbar + Ordering
   ============================= */
.ts-products-toolbar {
	margin: 0 0 1rem;
}
.ts-products-toolbar-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.woocommerce-result-count {
	margin: 0;
	color: var(--color-muted, #5b5b73);
	font-size: .95rem;
}

.woocommerce-ordering {
	margin-left: auto;
	position: relative;
}
.woocommerce-ordering .orderby {
	-webkit-appearance: none;
	appearance: none;
	border: 1px solid var(--color-border, rgba(20,20,51,.18));
	background: #fff;
	color: var(--color-text, #141433);
	padding: .55rem 2.25rem .55rem .75rem;
	border-radius: 10px;
	font: inherit;
	line-height: 1.2;
	min-width: 220px;
	box-shadow: 0 1px 0 rgba(20,20,51,.02);
}
.woocommerce-ordering .orderby:focus {
	outline: 2px solid color-mix(in srgb, var(--color-accent, #C3A46A) 45%, transparent);
	outline-offset: 2px;
}
.woocommerce-ordering::after {
	content: '';
	position: absolute;
	right: .65rem;
	top: 50%;
	width: 12px; height: 12px;
	pointer-events: none;
	transform: translateY(-50%);
	background: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(-45deg, transparent 50%, currentColor 50%);
	background-position: 0 0, 100% 0;
	background-size: 50% 100%;
	background-repeat: no-repeat;
	color: var(--color-muted, #5b5b73);
	opacity: .85;
}

/* Compact on smaller screens */
@media (max-width: 640px){
	.ts-products-toolbar-inner { flex-direction: column; align-items: stretch; gap: .75rem; }
	.woocommerce-ordering { width: 100%; }
	.woocommerce-ordering .orderby { width: 100%; min-width: 0; }
}

/* =============================
   Premium Filters (Sidebar)
   ============================= */
.ts-sidebar .widget {
	margin: 0 0 1.25rem;
	padding: 0 0 1rem;
	border-bottom: 1px solid var(--color-border, rgba(20,20,51,.12));
}
.ts-sidebar .widget:last-child { border-bottom: none; }
.ts-sidebar .widget .widget-title,
.ts-sidebar .widgettitle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-weight: 700;
	font-size: 1rem;
	margin: 0 0 .75rem;
}
.ts-filter-toggle-btn {
	appearance: none;
	border: none;
	background: transparent;
	cursor: pointer;
	width: 28px;
	height: 28px;
	border-radius: 6px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.ts-filter-toggle-btn:focus { outline: 2px solid var(--color-accent); outline-offset: 2px; }
.ts-filter-collapsed .ts-filter-body { display: none; }

/* Layered Nav as pills */
.woocommerce-widget-layered-nav-list,
.woocommerce-widget-layered-nav ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
}
.woocommerce-widget-layered-nav-list .wc-layered-nav-term a,
.woocommerce-widget-layered-nav ul li a {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	padding: .4rem .65rem;
	border: 1px solid var(--color-border, rgba(20,20,51,.18));
	border-radius: 999px;
	text-decoration: none;
	color: var(--color-text, #141433);
	background: #fff;
	line-height: 1.2;
	font-size: .95rem;
}
.woocommerce-widget-layered-nav-list .wc-layered-nav-term.chosen a,
.woocommerce-widget-layered-nav ul li.chosen a {
	border-color: var(--color-accent, #C3A46A);
	background: color-mix(in srgb, var(--color-accent, #C3A46A) 10%, #fff);
}
.woocommerce-widget-layered-nav-list .count,
.woocommerce-widget-layered-nav ul li .count { opacity: .65; font-size: .85em; }

/* Active Filters chips */
.widget_layered_nav_filters ul,
.woocommerce-widget-layered-nav-filters ul {
	list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem;
}
.widget_layered_nav_filters ul li a,
.woocommerce-widget-layered-nav-filters ul li a {
	display: inline-flex; align-items: center; gap: .4rem;
	padding: .35rem .6rem; border-radius: 999px; text-decoration: none;
	background: var(--color-lightest, #f6f7f9); color: var(--color-text);
}
.widget_layered_nav_filters ul li a:before,
.woocommerce-widget-layered-nav-filters ul li a:before {
	content: '×'; display: inline-block; font-weight: 700; opacity: .85;
}
.ts-filters-clear-all { margin-left: auto; font-size: .9rem; }

/* Price slider */
.price_slider_wrapper .price_slider { position: relative; height: 4px; background: var(--color-border, rgba(20,20,51,.18)); border-radius: 999px; }
.price_slider_wrapper .ui-slider-range { height: 100%; background: var(--color-accent, #C3A46A); }
.price_slider_wrapper .ui-slider-handle { width: 18px; height: 18px; border-radius: 50%; top: 50%; transform: translate(-50%, -50%); background: #fff; border: 2px solid var(--color-accent, #C3A46A); cursor: grab; }
.price_slider_amount { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-top: .75rem; }
.price_slider_amount .price_label { font-weight: 600; font-size: .95rem; }
.price_slider_amount button.button { padding: .45rem .8rem; border-radius: 6px; }

/* Mobile: Sidebar collapsible */
@media (max-width: 768px){
	.ts-sidebar { position: relative; }
	.ts-sidebar .ts-sidebar-content { display: none; }
	.ts-sidebar.ts-open .ts-sidebar-content { display: block; }
}

/* Mobile Responsive */
@media (max-width: 767px) {
	.ts-auth-wrapper {
		padding: 2rem 1rem;
	}

	.ts-auth-title {
		font-size: 2rem;
	}

	.ts-auth-subtitle {
		font-size: 1rem;
	}

	.ts-auth-header {
		margin-bottom: 2rem;
	}

	.ts-auth-form-wrapper {
		padding: 2rem 1.5rem;
	}

	.ts-form-title {
		font-size: 1.5rem;
	}

	.ts-form-row-flex {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.75rem;
	}
}
 