/* ============================================
   THE BALLOON HOUSE — WOOCOMMERCE COMPONENTS
   Version: 1.0.0
   ============================================ */

/* ==========================================================
   1. SHOP / COLLECTION ARCHIVE PAGE
   ========================================================== */

/* ---------- Hero Banner ---------- */
.tbh-collection-hero {
	position: relative;
	padding: var(--tbh-space-4xl) 0 var(--tbh-space-3xl);
	background: linear-gradient(135deg, var(--tbh-pink) 0%, var(--tbh-purple) 50%, var(--tbh-pink-dark) 100%);
	overflow: hidden;
	text-align: center;
}

.tbh-collection-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background:
		radial-gradient(circle at 20% 50%, rgba(255, 210, 63, 0.15) 0%, transparent 50%),
		radial-gradient(circle at 80% 30%, rgba(181, 234, 215, 0.12) 0%, transparent 50%),
		radial-gradient(circle at 50% 80%, rgba(168, 216, 234, 0.1) 0%, transparent 50%);
	pointer-events: none;
}

.tbh-collection-hero .tbh-container {
	position: relative;
	z-index: 1;
}

.tbh-collection-hero__title {
	font-family: var(--tbh-font-display);
	font-size: var(--tbh-text-5xl);
	font-weight: var(--tbh-weight-black);
	color: var(--tbh-white);
	text-transform: uppercase;
	letter-spacing: -0.02em;
	margin-bottom: var(--tbh-space-sm);
}

.tbh-collection-hero__description {
	font-family: var(--tbh-font-body);
	font-size: var(--tbh-text-lg);
	color: rgba(255, 255, 255, 0.9);
	max-width: 600px;
	margin: 0 auto;
	line-height: var(--tbh-leading-relaxed);
}

/* ---------- Page Layout Wrapper ---------- */
.tbh-collection-page {
	padding-bottom: var(--tbh-space-4xl);
}

/* ---------- Collection Breadcrumb ---------- */
.tbh-collection-breadcrumbs,
.tbh-pdp-breadcrumbs {
	margin: var(--tbh-space-lg) 0 var(--tbh-space-xl);
}

.woocommerce .tbh-collection-breadcrumbs .tbh-breadcrumb,
.woocommerce-page .tbh-collection-breadcrumbs .tbh-breadcrumb,
.woocommerce .tbh-pdp-breadcrumbs .tbh-breadcrumb,
.woocommerce-page .tbh-pdp-breadcrumbs .tbh-breadcrumb {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: var(--tbh-space-xs);
	width: fit-content;
	max-width: 100%;
	margin: 0 !important;
	padding: 0.65rem 0.75rem !important;
	border: 1px solid rgba(123, 45, 142, 0.12);
	border-radius: var(--tbh-radius-full);
	background: rgba(255, 255, 255, 0.92);
	box-shadow: var(--tbh-shadow-sm);
	color: var(--tbh-navy) !important;
	font-family: var(--tbh-font-body) !important;
	font-size: var(--tbh-text-sm) !important;
	font-weight: var(--tbh-weight-semibold);
	line-height: 1.2;
}

.woocommerce .tbh-collection-breadcrumbs .tbh-breadcrumb a,
.woocommerce-page .tbh-collection-breadcrumbs .tbh-breadcrumb a,
.woocommerce .tbh-pdp-breadcrumbs .tbh-breadcrumb a,
.woocommerce-page .tbh-pdp-breadcrumbs .tbh-breadcrumb a {
	display: inline-flex;
	align-items: center;
	min-height: 2rem;
	padding: 0.4rem 0.75rem;
	border-radius: var(--tbh-radius-full);
	background: var(--tbh-cream);
	color: var(--tbh-purple-dark) !important;
	font-weight: var(--tbh-weight-bold);
	text-decoration: none !important;
	transition: color var(--tbh-transition-fast), background-color var(--tbh-transition-fast), transform var(--tbh-transition-fast);
}

.woocommerce .tbh-collection-breadcrumbs .tbh-breadcrumb a:hover,
.woocommerce-page .tbh-collection-breadcrumbs .tbh-breadcrumb a:hover,
.woocommerce .tbh-pdp-breadcrumbs .tbh-breadcrumb a:hover,
.woocommerce-page .tbh-pdp-breadcrumbs .tbh-breadcrumb a:hover {
	background: var(--tbh-pink);
	color: var(--tbh-white) !important;
	transform: translateY(-1px);
}

.tbh-collection-breadcrumbs .tbh-breadcrumb__separator,
.tbh-pdp-breadcrumbs .tbh-breadcrumb__separator {
	display: inline-grid;
	place-items: center;
	width: 1rem;
	color: var(--tbh-pink);
	font-size: 1.35em;
	font-weight: var(--tbh-weight-regular);
}

@media (max-width: 600px) {
	.tbh-collection-breadcrumbs,
	.tbh-pdp-breadcrumbs {
		margin: var(--tbh-space-md) 0 var(--tbh-space-lg);
	}

	.woocommerce .tbh-collection-breadcrumbs .tbh-breadcrumb,
	.woocommerce-page .tbh-collection-breadcrumbs .tbh-breadcrumb,
	.woocommerce .tbh-pdp-breadcrumbs .tbh-breadcrumb,
	.woocommerce-page .tbh-pdp-breadcrumbs .tbh-breadcrumb {
		width: 100%;
		padding: 0.5rem !important;
		border-radius: var(--tbh-radius-xl);
	}
}

/* ---------- Sidebar + Content Grid ---------- */
.tbh-collection-layout {
	display: grid;
	grid-template-columns: 260px 1fr;
	gap: var(--tbh-space-2xl);
	align-items: start;
	overflow: hidden;
}

.tbh-collection-main {
	min-width: 0;
	overflow: hidden;
}

/* Override WooCommerce Bootstrap column classes for product grid */
ul.products li.product[class*="col-"] {
	min-width: 0 !important;
	width: auto !important;
}

/* ---------- Filter Sidebar ---------- */
.tbh-collection-sidebar {
	position: sticky;
	top: 100px;
	background-color: var(--tbh-white);
	border-radius: var(--tbh-radius-2xl);
	padding: var(--tbh-space-xl);
	border: 1px solid var(--tbh-grey-200);
	box-shadow: var(--tbh-shadow-xs);
}

.tbh-sidebar__title {
	font-family: var(--tbh-font-display);
	font-size: var(--tbh-text-xl);
	font-weight: var(--tbh-weight-bold);
	color: var(--tbh-navy);
	margin-bottom: var(--tbh-space-lg);
	padding-bottom: var(--tbh-space-sm);
	border-bottom: 2px solid var(--tbh-grey-200);
}

/* ---------- Filter Section (Accordion) ---------- */
.tbh-filter-section {
	border-bottom: 1px solid var(--tbh-grey-200);
	padding-bottom: var(--tbh-space-md);
	margin-bottom: var(--tbh-space-md);
}

.tbh-filter-section:last-child {
	border-bottom: none;
	margin-bottom: 0;
	padding-bottom: 0;
}

.tbh-filter-heading {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: var(--tbh-space-xs) 0;
	background: none;
	border: none;
	cursor: pointer;
	font-family: var(--tbh-font-display);
	font-size: var(--tbh-text-sm);
	font-weight: var(--tbh-weight-semibold);
	color: var(--tbh-navy);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	transition: color var(--tbh-transition-fast);
}

.tbh-filter-heading:hover {
	color: var(--tbh-pink);
}

.tbh-filter-heading::after {
	content: '';
	width: 10px;
	height: 10px;
	border-right: 2px solid var(--tbh-grey-500);
	border-bottom: 2px solid var(--tbh-grey-500);
	transform: rotate(45deg);
	transition: transform var(--tbh-transition-fast);
	flex-shrink: 0;
	margin-left: var(--tbh-space-xs);
}

.tbh-filter-section.is-open .tbh-filter-heading::after {
	transform: rotate(-135deg);
}

/* ---------- Filter Options ---------- */
.tbh-filter-options {
	display: none;
	padding-top: var(--tbh-space-sm);
}

.tbh-filter-section.is-open .tbh-filter-options {
	display: block;
}

.tbh-filter-options label,
.tbh-filter-option {
	display: flex;
	align-items: center;
	gap: var(--tbh-space-xs);
	padding: var(--tbh-space-2xs) 0;
	font-size: var(--tbh-text-sm);
	color: var(--tbh-grey-700);
	cursor: pointer;
	transition: color var(--tbh-transition-fast);
}

.tbh-filter-options label:hover,
.tbh-filter-option:hover {
	color: var(--tbh-pink);
}

.tbh-filter-options input[type="checkbox"],
.tbh-filter-options input[type="radio"] {
	width: 18px;
	height: 18px;
	border-radius: var(--tbh-radius-sm);
	border: 2px solid var(--tbh-grey-400);
	background-color: var(--tbh-white);
	cursor: pointer;
	accent-color: var(--tbh-pink);
	flex-shrink: 0;
	transition: border-color var(--tbh-transition-fast);
}

.tbh-filter-options input[type="checkbox"]:checked,
.tbh-filter-options input[type="radio"]:checked {
	border-color: var(--tbh-pink);
	background-color: var(--tbh-pink);
}

.tbh-filter-options input[type="radio"] {
	border-radius: 50%;
}

.tbh-filter-option__count {
	margin-left: auto;
	font-size: var(--tbh-text-xs);
	color: var(--tbh-grey-400);
}

/* ---------- Subcategory Chips ---------- */
.tbh-filter-chip {
	display: inline-flex;
	align-items: center;
	gap: var(--tbh-space-2xs);
	padding: var(--tbh-space-xs) var(--tbh-space-md);
	background-color: var(--tbh-grey-100);
	border: 1px solid var(--tbh-grey-200);
	border-radius: var(--tbh-radius-full);
	font-family: var(--tbh-font-display);
	font-size: var(--tbh-text-xs);
	font-weight: var(--tbh-weight-medium);
	color: var(--tbh-grey-700);
	cursor: pointer;
	transition: all var(--tbh-transition-fast);
	text-decoration: none;
	white-space: nowrap;
}

.tbh-filter-chip:hover {
	border-color: var(--tbh-pink);
	color: var(--tbh-pink);
	background-color: rgba(232, 67, 107, 0.06);
}

.tbh-filter-chip--active,
.tbh-filter-chip.active {
	background-color: var(--tbh-pink);
	border-color: var(--tbh-pink);
	color: var(--tbh-white);
}

.tbh-filter-chip--active:hover,
.tbh-filter-chip.active:hover {
	background-color: var(--tbh-pink-dark);
	border-color: var(--tbh-pink-dark);
	color: var(--tbh-white);
}

/* ---------- Active Filters ---------- */
.tbh-active-filters {
	display: flex;
	flex-wrap: wrap;
	gap: var(--tbh-space-xs);
	padding: var(--tbh-space-md) 0;
}

.tbh-active-filter {
	display: inline-flex;
	align-items: center;
	gap: var(--tbh-space-xs);
	padding: var(--tbh-space-2xs) var(--tbh-space-sm);
	background-color: rgba(232, 67, 107, 0.08);
	border: 1px solid rgba(232, 67, 107, 0.2);
	border-radius: var(--tbh-radius-full);
	font-family: var(--tbh-font-display);
	font-size: var(--tbh-text-xs);
	font-weight: var(--tbh-weight-medium);
	color: var(--tbh-pink-dark);
}

.tbh-active-filter__remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background-color: var(--tbh-pink);
	color: var(--tbh-white);
	border: none;
	cursor: pointer;
	font-size: 10px;
	line-height: 1;
	transition: background-color var(--tbh-transition-fast);
	padding: 0;
}

.tbh-active-filter__remove:hover {
	background-color: var(--tbh-pink-dark);
}

.tbh-active-filters__clear {
	font-family: var(--tbh-font-display);
	font-size: var(--tbh-text-xs);
	font-weight: var(--tbh-weight-semibold);
	color: var(--tbh-grey-500);
	text-decoration: underline;
	text-underline-offset: 2px;
	cursor: pointer;
	background: none;
	border: none;
	transition: color var(--tbh-transition-fast);
}

.tbh-active-filters__clear:hover {
	color: var(--tbh-pink);
}

/* ---------- Toolbar (Sort + Count) ---------- */
.tbh-collection-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: var(--tbh-space-md) 0;
	margin-bottom: var(--tbh-space-lg);
	border-bottom: 1px solid var(--tbh-grey-200);
	flex-wrap: wrap;
	gap: var(--tbh-space-sm);
}

.tbh-product-count {
	font-family: var(--tbh-font-body);
	font-size: var(--tbh-text-sm);
	color: var(--tbh-grey-600);
}

.tbh-product-count strong {
	font-weight: var(--tbh-weight-semibold);
	color: var(--tbh-navy);
}

.tbh-collection-toolbar .woocommerce-ordering {
	margin-bottom: 0;
}

.tbh-collection-toolbar .woocommerce-ordering select {
	padding: var(--tbh-space-xs) var(--tbh-space-lg) var(--tbh-space-xs) var(--tbh-space-sm);
	border: 1px solid var(--tbh-grey-300);
	border-radius: var(--tbh-radius-full);
	font-family: var(--tbh-font-body);
	font-size: var(--tbh-text-sm);
	color: var(--tbh-navy);
	background-color: var(--tbh-white);
	cursor: pointer;
	transition: border-color var(--tbh-transition-fast);
	appearance: none;
	-webkit-appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23757575' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
}

.tbh-collection-toolbar .woocommerce-ordering select:focus {
	outline: none;
	border-color: var(--tbh-pink);
}

/* ---------- Product Grid ---------- */
.tbh-collection-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--tbh-space-xl);
}

/* ---------- Pagination ---------- */
.tbh-collection-pagination {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: var(--tbh-space-xs);
	padding: var(--tbh-space-2xl) 0 var(--tbh-space-lg);
}

.tbh-collection-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	padding: 0 var(--tbh-space-sm);
	border-radius: var(--tbh-radius-full);
	border: 1px solid var(--tbh-grey-300);
	background-color: var(--tbh-white);
	font-family: var(--tbh-font-display);
	font-size: var(--tbh-text-sm);
	font-weight: var(--tbh-weight-medium);
	color: var(--tbh-navy);
	text-decoration: none;
	transition: all var(--tbh-transition-fast);
	cursor: pointer;
}

.tbh-collection-pagination .page-numbers:hover {
	border-color: var(--tbh-pink);
	color: var(--tbh-pink);
}

.tbh-collection-pagination .page-numbers.current,
.tbh-collection-pagination .page-numbers:active {
	background-color: var(--tbh-pink);
	border-color: var(--tbh-pink);
	color: var(--tbh-white);
	box-shadow: var(--tbh-shadow-pink);
}

.tbh-collection-pagination .page-numbers.prev,
.tbh-collection-pagination .page-numbers.next {
	padding: 0 var(--tbh-space-md);
}

.tbh-collection-pagination .page-numbers.dots {
	border: none;
	background: none;
	min-width: auto;
	cursor: default;
	color: var(--tbh-grey-500);
}

/* ---------- SEO Content Section ---------- */
.tbh-seo-content {
	padding: var(--tbh-space-3xl) 0;
	border-top: 1px solid var(--tbh-grey-200);
	margin-top: var(--tbh-space-3xl);
}

.tbh-seo-content h2 {
	font-family: var(--tbh-font-display);
	font-size: var(--tbh-text-2xl);
	font-weight: var(--tbh-weight-bold);
	color: var(--tbh-navy);
	margin-bottom: var(--tbh-space-md);
}

.tbh-seo-content p {
	font-size: var(--tbh-text-base);
	color: var(--tbh-grey-700);
	line-height: var(--tbh-leading-relaxed);
	margin-bottom: var(--tbh-space-md);
}

.tbh-seo-content p:last-child {
	margin-bottom: 0;
}

/* ---------- Related Collections ---------- */
.tbh-related-collections {
	padding: var(--tbh-space-3xl) 0 var(--tbh-space-4xl);
}

.tbh-related-collections__title {
	font-family: var(--tbh-font-display);
	font-size: var(--tbh-text-3xl);
	font-weight: var(--tbh-weight-extrabold);
	color: var(--tbh-navy);
	text-align: center;
	margin-bottom: var(--tbh-space-2xl);
}

.tbh-related-collections__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: var(--tbh-space-lg);
}

.tbh-related-collection-card {
	display: flex;
	align-items: center;
	gap: var(--tbh-space-md);
	background-color: var(--tbh-white);
	border: 1px solid var(--tbh-grey-200);
	border-radius: var(--tbh-radius-xl);
	padding: var(--tbh-space-md);
	text-decoration: none;
	color: var(--tbh-navy);
	transition: all var(--tbh-transition-base);
	box-shadow: var(--tbh-shadow-xs);
	overflow: hidden;
}

.tbh-related-collection-card:hover {
	box-shadow: var(--tbh-shadow-md);
	border-color: var(--tbh-pink);
	transform: translateY(-2px);
}

.tbh-related-collection-card__image {
	flex-shrink: 0;
	width: 64px;
	height: 64px;
	border-radius: var(--tbh-radius-lg);
	overflow: hidden;
	background-color: var(--tbh-grey-100);
}

.tbh-related-collection-card__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.tbh-related-collection-card__fallback {
	flex-shrink: 0;
	width: 64px;
	height: 64px;
	border-radius: var(--tbh-radius-lg);
	background: linear-gradient(135deg, var(--tbh-pink), var(--tbh-purple));
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--tbh-white);
	font-family: var(--tbh-font-display);
	font-size: var(--tbh-text-2xl);
	font-weight: var(--tbh-weight-bold);
}

.tbh-related-collection-card__info {
	flex: 1;
	min-width: 0;
}

.tbh-related-collection-card__name {
	font-family: var(--tbh-font-display);
	font-size: var(--tbh-text-sm);
	font-weight: var(--tbh-weight-semibold);
	color: var(--tbh-navy);
	margin-bottom: 2px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.tbh-related-collection-card__count {
	font-family: var(--tbh-font-body);
	font-size: var(--tbh-text-xs);
	color: var(--tbh-grey-500);
}

/* ---------- Mobile Filter Toggle ---------- */
.tbh-mobile-filter-toggle {
	display: none;
	position: fixed;
	bottom: var(--tbh-space-lg);
	left: 50%;
	transform: translateX(-50%);
	z-index: var(--tbh-z-sticky);
	padding: var(--tbh-space-sm) var(--tbh-space-xl);
	background-color: var(--tbh-navy);
	color: var(--tbh-white);
	border: none;
	border-radius: var(--tbh-radius-full);
	font-family: var(--tbh-font-display);
	font-size: var(--tbh-text-sm);
	font-weight: var(--tbh-weight-semibold);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	cursor: pointer;
	box-shadow: var(--tbh-shadow-xl);
	transition: all var(--tbh-transition-fast);
	gap: var(--tbh-space-xs);
	align-items: center;
}

.tbh-mobile-filter-toggle:hover {
	background-color: var(--tbh-pink);
	box-shadow: var(--tbh-shadow-pink);
}

.tbh-mobile-filter-toggle svg {
	width: 18px;
	height: 18px;
}

/* ---------- Filter Drawer (Mobile) ---------- */
.tbh-filter-drawer-overlay {
	display: none;
	position: fixed;
	inset: 0;
	background-color: rgba(26, 31, 54, 0.5);
	z-index: var(--tbh-z-overlay);
	opacity: 0;
	visibility: hidden;
	transition: all var(--tbh-transition-base);
}

.tbh-filter-drawer-overlay.is-visible {
	opacity: 1;
	visibility: visible;
}

.tbh-filter-drawer {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 320px;
	max-width: 85vw;
	height: 100%;
	background-color: var(--tbh-white);
	z-index: calc(var(--tbh-z-overlay) + 1);
	transform: translateX(-100%);
	transition: transform var(--tbh-transition-slow);
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	padding: var(--tbh-space-xl);
	box-shadow: var(--tbh-shadow-xl);
}

.tbh-filter-drawer.is-open {
	transform: translateX(0);
}

.tbh-filter-drawer__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: var(--tbh-space-xl);
	padding-bottom: var(--tbh-space-md);
	border-bottom: 1px solid var(--tbh-grey-200);
}

.tbh-filter-drawer__title {
	font-family: var(--tbh-font-display);
	font-size: var(--tbh-text-xl);
	font-weight: var(--tbh-weight-bold);
	color: var(--tbh-navy);
}

.tbh-filter-drawer__close {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background-color: var(--tbh-grey-100);
	border: none;
	cursor: pointer;
	color: var(--tbh-navy);
	transition: all var(--tbh-transition-fast);
	padding: 0;
}

.tbh-filter-drawer__close:hover {
	background-color: var(--tbh-pink);
	color: var(--tbh-white);
}

.tbh-filter-drawer__close svg {
	width: 20px;
	height: 20px;
}

.tbh-filter-drawer__footer {
	position: sticky;
	bottom: 0;
	padding: var(--tbh-space-md) 0;
	background-color: var(--tbh-white);
	border-top: 1px solid var(--tbh-grey-200);
	display: flex;
	gap: var(--tbh-space-sm);
}

.tbh-filter-drawer__footer .tbh-btn {
	flex: 1;
}

/* ==========================================================
   2. PRODUCT DETAIL PAGE
   ========================================================== */

/* ---------- PDP Layout ---------- */
.tbh-pdp-layout {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--tbh-space-3xl);
	align-items: start;
	padding: var(--tbh-space-2xl) 0 var(--tbh-space-4xl);
}

/* ---------- Gallery ---------- */
.tbh-pdp-gallery {
	position: sticky;
	top: 100px;
}

.tbh-pdp-gallery__main {
	width: 100%;
	aspect-ratio: 1;
	border-radius: var(--tbh-radius-2xl);
	overflow: hidden;
	background-color: var(--tbh-grey-100);
	margin-bottom: var(--tbh-space-md);
	cursor: zoom-in;
}

.tbh-pdp-gallery__main img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--tbh-transition-slow);
}

.tbh-pdp-gallery__main:hover img {
	transform: scale(1.05);
}

.tbh-pdp-gallery__thumbnails {
	display: flex;
	gap: var(--tbh-space-sm);
	overflow-x: auto;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
	padding-bottom: var(--tbh-space-2xs);
}

.tbh-pdp-gallery__thumbnails::-webkit-scrollbar {
	display: none;
}

.tbh-pdp-gallery__thumb {
	flex-shrink: 0;
	width: 80px;
	height: 80px;
	border-radius: var(--tbh-radius-lg);
	overflow: hidden;
	cursor: pointer;
	border: 2px solid transparent;
	transition: all var(--tbh-transition-fast);
	opacity: 0.6;
	background-color: var(--tbh-grey-100);
	padding: 0;
}

.tbh-pdp-gallery__thumb:hover {
	opacity: 0.85;
}

.tbh-pdp-gallery__thumb--active,
.tbh-pdp-gallery__thumb.is-active {
	border-color: var(--tbh-pink);
	opacity: 1;
	box-shadow: var(--tbh-shadow-pink);
}

.tbh-pdp-gallery__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* ---------- Product Info ---------- */
.tbh-pdp-info {
	padding-top: var(--tbh-space-sm);
}

/* Breadcrumbs */
.tbh-pdp-breadcrumbs {
	display: flex;
	align-items: center;
	gap: var(--tbh-space-xs);
	font-family: var(--tbh-font-body);
	font-size: var(--tbh-text-xs);
	color: var(--tbh-grey-500);
	margin-bottom: var(--tbh-space-lg);
	flex-wrap: wrap;
}

.tbh-pdp-breadcrumbs a {
	color: var(--tbh-grey-500);
	text-decoration: none;
	transition: color var(--tbh-transition-fast);
}

.tbh-pdp-breadcrumbs a:hover {
	color: var(--tbh-pink);
}

.tbh-pdp-breadcrumbs .separator {
	color: var(--tbh-grey-400);
}

.tbh-pdp-breadcrumbs .current {
	color: var(--tbh-navy);
	font-weight: var(--tbh-weight-medium);
}

/* Title */
.tbh-pdp-info__title .tbh-pdp-title {
	font-family: var(--tbh-font-display);
	font-size: var(--tbh-text-3xl);
	font-weight: var(--tbh-weight-extrabold);
	color: var(--tbh-navy);
	line-height: var(--tbh-leading-tight);
	margin-bottom: var(--tbh-space-sm);
}

/* Rating */
.tbh-pdp-info__rating .tbh-pdp-rating {
	display: flex;
	align-items: center;
	gap: var(--tbh-space-xs);
	margin-bottom: var(--tbh-space-md);
}

.tbh-pdp-info__rating .tbh-pdp-rating__stars {
	display: flex;
	gap: 2px;
	color: var(--tbh-yellow);
}

.tbh-pdp-info__rating .tbh-pdp-rating__stars svg {
	width: 18px;
	height: 18px;
}

.tbh-pdp-info__rating .tbh-pdp-rating__count {
	font-size: var(--tbh-text-sm);
	color: var(--tbh-grey-500);
}

.tbh-pdp-info__rating .tbh-pdp-rating__count a {
	color: var(--tbh-pink);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.tbh-pdp-info__rating .tbh-pdp-rating__count a:hover {
	text-decoration: none;
}

/* Price */
.tbh-pdp-info__price .tbh-pdp-price {
	display: flex;
	align-items: baseline;
	gap: var(--tbh-space-sm);
	margin-bottom: var(--tbh-space-lg);
	font-family: var(--tbh-font-display);
}

.tbh-pdp-info__price .tbh-pdp-price__regular {
	font-size: var(--tbh-text-2xl);
	font-weight: var(--tbh-weight-bold);
	color: var(--tbh-navy);
}

.tbh-pdp-info__price .tbh-pdp-price__sale {
	font-size: var(--tbh-text-2xl);
	font-weight: var(--tbh-weight-bold);
	color: var(--tbh-pink);
}

.tbh-pdp-info__price .tbh-pdp-price__del,
.tbh-pdp-info__price .tbh-pdp-price del {
	font-size: var(--tbh-text-lg);
	font-weight: var(--tbh-weight-regular);
	color: var(--tbh-grey-500);
	text-decoration: line-through;
}

.tbh-pdp-info__price .tbh-pdp-price__ins,
.tbh-pdp-info__price .tbh-pdp-price ins {
	text-decoration: none;
	color: var(--tbh-pink);
	font-weight: var(--tbh-weight-bold);
}

.tbh-pdp-info__price .tbh-pdp-price .price-label {
	font-size: var(--tbh-text-xs);
	font-weight: var(--tbh-weight-medium);
	color: var(--tbh-grey-600);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

/* Short Description */
.tbh-pdp-info__excerpt .tbh-pdp-short-desc {
	font-size: var(--tbh-text-base);
	color: var(--tbh-grey-700);
	line-height: var(--tbh-leading-relaxed);
	margin-bottom: var(--tbh-space-xl);
	padding-bottom: var(--tbh-space-xl);
	border-bottom: 1px solid var(--tbh-grey-200);
}

.tbh-pdp-info__excerpt .tbh-pdp-short-desc p {
	margin-bottom: var(--tbh-space-xs);
}

/* ---------- Option Groups ---------- */
/* Options */
.tbh-pdp-info__options .tbh-pdp-options {
	margin-bottom: var(--tbh-space-lg);
}

.tbh-pdp-info__options .tbh-pdp-options__label {
	font-family: var(--tbh-font-display);
	font-size: var(--tbh-text-sm);
	font-weight: var(--tbh-weight-semibold);
	color: var(--tbh-navy);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	margin-bottom: var(--tbh-space-xs);
	display: block;
}

.tbh-pdp-info__options .tbh-pdp-options__label span {
	font-weight: var(--tbh-weight-regular);
	color: var(--tbh-grey-500);
	text-transform: none;
	letter-spacing: 0;
}

/* Colour Swatches */
.tbh-pdp-info__options .tbh-pdp-swatches {
	display: flex;
	gap: var(--tbh-space-sm);
	flex-wrap: wrap;
}

.tbh-pdp-info__options .tbh-pdp-swatch {
	position: relative;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	cursor: pointer;
	border: 3px solid var(--tbh-white);
	box-shadow: 0 0 0 1px var(--tbh-grey-300);
	transition: all var(--tbh-transition-fast);
	padding: 0;
}

.tbh-pdp-info__options .tbh-pdp-swatch:hover {
	box-shadow: 0 0 0 2px var(--tbh-pink);
	transform: scale(1.1);
}

.tbh-pdp-info__options .tbh-pdp-swatch--active,
.tbh-pdp-info__options .tbh-pdp-swatch.active {
	box-shadow: 0 0 0 2px var(--tbh-pink);
}

.tbh-pdp-info__options .tbh-pdp-swatch--active::after,
.tbh-pdp-info__options .tbh-pdp-swatch.active::after {
	content: '';
	position: absolute;
	inset: 5px;
	border-radius: 50%;
	border: 2px solid var(--tbh-white);
}

.tbh-pdp-info__options .tbh-pdp-swatch img {
	width: 100%;
	height: 100%;
	border-radius: 50%;
	object-fit: cover;
}

/* Theme Options (Chips) */
.tbh-pdp-info__options .tbh-pdp-chips {
	display: flex;
	gap: var(--tbh-space-xs);
	flex-wrap: wrap;
}

.tbh-pdp-info__options .tbh-pdp-chip {
	display: inline-flex;
	align-items: center;
	gap: var(--tbh-space-2xs);
	padding: var(--tbh-space-xs) var(--tbh-space-md);
	background-color: var(--tbh-grey-100);
	border: 1px solid var(--tbh-grey-200);
	border-radius: var(--tbh-radius-full);
	font-family: var(--tbh-font-display);
	font-size: var(--tbh-text-xs);
	font-weight: var(--tbh-weight-medium);
	color: var(--tbh-grey-700);
	cursor: pointer;
	transition: all var(--tbh-transition-fast);
	text-transform: capitalize;
}

.tbh-pdp-info__options .tbh-pdp-chip:hover {
	border-color: var(--tbh-pink);
	color: var(--tbh-pink);
	background-color: rgba(232, 67, 107, 0.06);
}

.tbh-pdp-info__options .tbh-pdp-chip--active,
.tbh-pdp-info__options .tbh-pdp-chip.active {
	background-color: var(--tbh-pink);
	border-color: var(--tbh-pink);
	color: var(--tbh-white);
}

.tbh-pdp-info__options .tbh-pdp-chip--active:hover,
.tbh-pdp-info__options .tbh-pdp-chip.active:hover {
	background-color: var(--tbh-pink-dark);
	border-color: var(--tbh-pink-dark);
	color: var(--tbh-white);
}

/* Size Selector */
.tbh-pdp-info__options .tbh-pdp-btn-group {
	display: flex;
	gap: var(--tbh-space-xs);
	flex-wrap: wrap;
}

.tbh-pdp-info__options .tbh-pdp-btn-group__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 52px;
	height: 48px;
	padding: 0 var(--tbh-space-md);
	background-color: var(--tbh-white);
	border: 2px solid var(--tbh-grey-300);
	border-radius: var(--tbh-radius-lg);
	font-family: var(--tbh-font-display);
	font-size: var(--tbh-text-sm);
	font-weight: var(--tbh-weight-semibold);
	color: var(--tbh-navy);
	cursor: pointer;
	transition: all var(--tbh-transition-fast);
	text-align: center;
}

.tbh-pdp-info__options .tbh-pdp-btn-group__btn:hover {
	border-color: var(--tbh-pink);
	color: var(--tbh-pink);
}

.tbh-pdp-info__options .tbh-pdp-btn-group__btn--active,
.tbh-pdp-info__options .tbh-pdp-btn-group__btn.active {
	background-color: var(--tbh-pink);
	border-color: var(--tbh-pink);
	color: var(--tbh-white);
	box-shadow: var(--tbh-shadow-pink);
}

.tbh-pdp-size-btn--disabled,
.tbh-pdp-size-btn.disabled {
	opacity: 0.4;
	cursor: not-allowed;
	text-decoration: line-through;
}

/* Quantity */
.tbh-pdp-info__quantity .tbh-pdp-quantity {
	display: flex;
	align-items: center;
	gap: 0;
	border: 2px solid var(--tbh-grey-300);
	border-radius: var(--tbh-radius-lg);
	overflow: hidden;
	width: fit-content;
	margin-bottom: var(--tbh-space-lg);
	background-color: var(--tbh-white);
}

.tbh-pdp-info__quantity .tbh-pdp-quantity__btn {
	display: flex;
	align-items: center;
	justify_content: center;
	width: 48px;
	height: 48px;
	background: none;
	border: none;
	cursor: pointer;
	color: var(--tbh-navy);
	transition: all var(--tbh-transition-fast);
	font-size: var(--tbh-text-lg);
	padding: 0;
}

.tbh-pdp-info__quantity .tbh-pdp-quantity__btn:hover {
	background-color: var(--tbh-grey-100);
	color: var(--tbh-pink);
}

.tbh-pdp-info__quantity .tbh-pdp-quantity__input {
	width: 60px;
	height: 48px;
	text-align: center;
	font-family: var(--tbh-font-display);
	font-size: var(--tbh-text-base);
	font-weight: var(--tbh-weight-semibold);
	color: var(--tbh-navy);
	border: none;
	border-left: 1px solid var(--tbh-grey-200);
	border-right: 1px solid var(--tbh-grey-200);
	background: var(--tbh-white);
	-moz-appearance: textfield;
}

/* Add to Cart Actions */
.tbh-pdp-info__cart-actions {
	display: flex;
	flex-direction: column;
	gap: var(--tbh-space-md);
}

.tbh-pdp-info__cart-actions form.cart {
	margin-bottom: 0;
}

.tbh-pdp-info__cart-actions .single_add_to_cart_button {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: var(--tbh-space-xs) !important;
	width: 100% !important;
	padding: 1.1rem var(--tbh-space-2xl) !important;
	background-color: var(--tbh-pink) !important;
	color: var(--tbh-white) !important;
	border: 2px solid var(--tbh-pink) !important;
	border-radius: var(--tbh-radius-full) !important;
	font-family: var(--tbh-font-display) !important;
	font-size: var(--tbh-text-md) !important;
	font-weight: var(--tbh-weight-bold) !important;
	text-transform: uppercase !important;
	letter-spacing: 0.04em !important;
	cursor: pointer !important;
	transition: all var(--tbh-transition-base) !important;
	text-align: center !important;
	line-height: 1 !important;
}

.tbh-pdp-info__cart-actions .single_add_to_cart_button:hover {
	background-color: var(--tbh-pink-dark) !important;
	border-color: var(--tbh-pink-dark) !important;
	box-shadow: var(--tbh-shadow-pink) !important;
	transform: translateY(-2px) !important;
}

.tbh-pdp-info__cart-actions .tbh-pdp-buy-now {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--tbh-space-xs);
	width: 100%;
	padding: 1rem var(--tbh-space-2xl);
	background-color: var(--tbh-purple);
	color: var(--tbh-white);
	border: 2px solid var(--tbh-purple);
	border-radius: var(--tbh-radius-full);
	font-family: var(--tbh-font-display);
	font-size: var(--tbh-text-base);
	font-weight: var(--tbh-weight-semibold);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	cursor: pointer;
	transition: all var(--tbh-transition-base);
	text-align: center;
	line-height: 1;
}

.tbh-pdp-info__cart-actions .tbh-pdp-buy-now:hover {
	background-color: var(--tbh-purple-dark);
	border-color: var(--tbh-purple-dark);
	box-shadow: var(--tbh-shadow-purple);
	transform: translateY(-2px);
}

/* Wishlist Button (PDP) */
.tbh-pdp-wishlist-btn,
.tbh-pdp-share-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background-color: var(--tbh-grey-100);
	border: 1px solid var(--tbh-grey-200);
	cursor: pointer;
	color: var(--tbh-grey-500);
	transition: all var(--tbh-transition-fast);
	padding: 0;
	flex-shrink: 0;
}

.tbh-pdp-wishlist-btn:hover,
.tbh-pdp-share-btn:hover {
	background-color: rgba(232, 67, 107, 0.08);
	border-color: var(--tbh-pink);
	color: var(--tbh-pink);
}

.tbh-pdp-wishlist-btn.is-active,
.tbh-pdp-wishlist-btn.active {
	background-color: var(--tbh-pink);
	border-color: var(--tbh-pink);
	color: var(--tbh-white);
}

.tbh-pdp-wishlist-btn svg {
	width: 22px;
	height: 22px;
	transition: transform var(--tbh-transition-spring);
}

.tbh-pdp-wishlist-btn.is-active svg,
.tbh-pdp-wishlist-btn.active svg {
	animation: tbh-heart-pop 0.5s ease forwards;
}

@keyframes tbh-heart-pop {
	0% { transform: scale(1); }
	25% { transform: scale(1.3); }
	50% { transform: scale(0.9); }
	75% { transform: scale(1.1); }
	100% { transform: scale(1); }
}

/* ---------- Availability ---------- */
.tbh-pdp-availability {
	display: flex;
	align-items: center;
	gap: var(--tbh-space-xs);
	padding: var(--tbh-space-sm) var(--tbh-space-md);
	background-color: rgba(76, 175, 80, 0.08);
	border-radius: var(--tbh-radius-lg);
	font-size: var(--tbh-text-sm);
	font-weight: var(--tbh-weight-medium);
	color: var(--tbh-success);
	margin-bottom: var(--tbh-space-lg);
}

.tbh-pdp-availability--out-of-stock {
	background-color: rgba(229, 57, 53, 0.08);
	color: var(--tbh-error);
}

.tbh-pdp-availability__dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background-color: currentColor;
	flex-shrink: 0;
	animation: tbh-pulse-dot 2s ease-in-out infinite;
}

@keyframes tbh-pulse-dot {
	0%, 100% { opacity: 1; }
	50% { opacity: 0.4; }
}

/* ---------- Delivery Fields ---------- */
.tbh-pdp-delivery-fields {
	margin-bottom: var(--tbh-space-xl);
	padding: var(--tbh-space-lg);
	background-color: var(--tbh-grey-50);
	border-radius: var(--tbh-radius-xl);
	border: 1px solid var(--tbh-grey-200);
}

.tbh-pdp-delivery-fields__title {
	font-family: var(--tbh-font-display);
	font-size: var(--tbh-text-sm);
	font-weight: var(--tbh-weight-semibold);
	color: var(--tbh-navy);
	margin-bottom: var(--tbh-space-md);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.tbh-pdp-delivery-fields__field {
	display: flex;
	gap: var(--tbh-space-sm);
	margin-bottom: var(--tbh-space-sm);
}

.tbh-pdp-delivery-fields__field:last-child {
	margin-bottom: 0;
}

.tbh-pdp-delivery-fields input,
.tbh-pdp-delivery-fields select {
	flex: 1;
	padding: var(--tbh-space-sm) var(--tbh-space-md);
	border: 1px solid var(--tbh-grey-300);
	border-radius: var(--tbh-radius-md);
	font-family: var(--tbh-font-body);
	font-size: var(--tbh-text-sm);
	color: var(--tbh-navy);
	background-color: var(--tbh-white);
	transition: border-color var(--tbh-transition-fast);
}

.tbh-pdp-delivery-fields input:focus,
.tbh-pdp-delivery-fields select:focus {
	outline: none;
	border-color: var(--tbh-pink);
	box-shadow: 0 0 0 3px rgba(232, 67, 107, 0.1);
}

/* ---------- Personalisation ---------- */
.tbh-pdp-personalisation {
	margin-bottom: var(--tbh-space-xl);
	padding: var(--tbh-space-lg);
	background: linear-gradient(135deg, rgba(232, 67, 107, 0.04) 0%, rgba(123, 45, 142, 0.04) 100%);
	border-radius: var(--tbh-radius-xl);
	border: 1px dashed rgba(232, 67, 107, 0.25);
}

.tbh-pdp-personalisation__title {
	font-family: var(--tbh-font-accent);
	font-size: var(--tbh-text-xl);
	color: var(--tbh-pink);
	margin-bottom: var(--tbh-space-md);
}

.tbh-pdp-personalisation-field {
	margin-bottom: var(--tbh-space-md);
}

.tbh-pdp-personalisation-field:last-child {
	margin-bottom: 0;
}

.tbh-pdp-personalisation-field label {
	display: block;
	font-family: var(--tbh-font-display);
	font-size: var(--tbh-text-xs);
	font-weight: var(--tbh-weight-semibold);
	color: var(--tbh-navy);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	margin-bottom: var(--tbh-space-2xs);
}

.tbh-pdp-personalisation-field input,
.tbh-pdp-personalisation-field textarea,
.tbh-pdp-personalisation-field select {
	width: 100%;
	padding: var(--tbh-space-sm) var(--tbh-space-md);
	border: 1px solid var(--tbh-grey-300);
	border-radius: var(--tbh-radius-md);
	font-family: var(--tbh-font-body);
	font-size: var(--tbh-text-sm);
	color: var(--tbh-navy);
	background-color: var(--tbh-white);
	transition: border-color var(--tbh-transition-fast);
}

.tbh-pdp-personalisation-field textarea {
	min-height: 80px;
	resize: vertical;
}

.tbh-pdp-personalisation-field input:focus,
.tbh-pdp-personalisation-field textarea:focus,
.tbh-pdp-personalisation-field select:focus {
	outline: none;
	border-color: var(--tbh-pink);
	box-shadow: 0 0 0 3px rgba(232, 67, 107, 0.1);
}

.tbh-pdp-personalisation-field .char-count {
	display: block;
	text-align: right;
	font-size: var(--tbh-text-xs);
	color: var(--tbh-grey-500);
	margin-top: var(--tbh-space-2xs);
}

/* ---------- Accordions (Product Info) ---------- */
.tbh-pdp-accordions {
	margin-top: var(--tbh-space-xl);
	border-top: 1px solid var(--tbh-grey-200);
}

.tbh-pdp-accordion {
	border-bottom: 1px solid var(--tbh-grey-200);
}

.tbh-pdp-accordion-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: var(--tbh-space-md) 0;
	background: none;
	border: none;
	cursor: pointer;
	font-family: var(--tbh-font-display);
	font-size: var(--tbh-text-sm);
	font-weight: var(--tbh-weight-semibold);
	color: var(--tbh-navy);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	transition: color var(--tbh-transition-fast);
	text-align: left;
}

.tbh-pdp-accordion-header:hover {
	color: var(--tbh-pink);
}

.tbh-pdp-accordion-header svg,
.tbh-pdp-accordion-header .accordion-icon {
	width: 16px;
	height: 16px;
	color: var(--tbh-grey-500);
	transition: transform var(--tbh-transition-fast);
	flex-shrink: 0;
}

.tbh-pdp-accordion--open .tbh-pdp-accordion-header svg,
.tbh-pdp-accordion--open .tbh-pdp-accordion-header .accordion-icon {
	transform: rotate(180deg);
}

.tbh-pdp-accordion-content {
	display: none;
	padding: 0 0 var(--tbh-space-lg);
}

.tbh-pdp-accordion--open .tbh-pdp-accordion-content {
	display: block;
}

.tbh-pdp-accordion-content p,
.tbh-pdp-accordion-content ul,
.tbh-pdp-accordion-content ol {
	font-size: var(--tbh-text-sm);
	color: var(--tbh-grey-700);
	line-height: var(--tbh-leading-relaxed);
	margin-bottom: var(--tbh-space-sm);
}

.tbh-pdp-accordion-content ul,
.tbh-pdp-accordion-content ol {
	padding-left: var(--tbh-space-lg);
}

.tbh-pdp-accordion-content ul {
	list-style: disc;
}

.tbh-pdp-accordion-content ol {
	list-style: decimal;
}

.tbh-pdp-accordion-content li {
	margin-bottom: var(--tbh-space-2xs);
}

/* ---------- Badges ---------- */
.tbh-pdp-badges {
	display: flex;
	gap: var(--tbh-space-xs);
	flex-wrap: wrap;
	margin-bottom: var(--tbh-space-md);
}

.tbh-pdp-badge {
	display: inline-flex;
	align-items: center;
	padding: var(--tbh-space-2xs) var(--tbh-space-sm);
	border-radius: var(--tbh-radius-full);
	font-family: var(--tbh-font-display);
	font-size: var(--tbh-text-xs);
	font-weight: var(--tbh-weight-bold);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.tbh-pdp-badge--sale {
	background-color: var(--tbh-pink);
	color: var(--tbh-white);
}

.tbh-pdp-badge--new {
	background-color: var(--tbh-mint);
	color: var(--tbh-navy);
}

.tbh-pdp-badge--premium {
	background-color: var(--tbh-yellow);
	color: var(--tbh-navy);
}

/* ---------- Sticky Add-to-Cart Bar (Mobile) ---------- */
.tbh-pdp-sticky-bar {
	display: none;
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: var(--tbh-z-sticky);
	padding: var(--tbh-space-sm) var(--tbh-section-px);
	background-color: var(--tbh-white);
	box-shadow: 0 -4px 20px rgba(26, 31, 54, 0.12);
	transform: translateY(100%);
	transition: transform var(--tbh-transition-base);
}

.tbh-pdp-sticky-bar.is-visible {
	transform: translateY(0);
}

.tbh-pdp-sticky-bar__inner {
	display: flex;
	align-items: center;
	gap: var(--tbh-space-md);
}

.tbh-pdp-sticky-bar__price {
	font-family: var(--tbh-font-display);
	font-size: var(--tbh-text-lg);
	font-weight: var(--tbh-weight-bold);
	color: var(--tbh-navy);
	flex-shrink: 0;
}

.tbh-pdp-sticky-bar__btn {
	flex: 1;
	padding: var(--tbh-space-sm) var(--tbh-space-lg);
	background-color: var(--tbh-pink);
	color: var(--tbh-white);
	border: none;
	border-radius: var(--tbh-radius-full);
	font-family: var(--tbh-font-display);
	font-size: var(--tbh-text-sm);
	font-weight: var(--tbh-weight-bold);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	cursor: pointer;
	transition: background-color var(--tbh-transition-fast);
	text-align: center;
}

.tbh-pdp-sticky-bar__btn:hover {
	background-color: var(--tbh-pink-dark);
}

/* ==========================================================
   3. QUICK VIEW MODAL
   ========================================================== */
.tbh-quickview-overlay {
	position: fixed;
	inset: 0;
	background-color: rgba(26, 31, 54, 0.55);
	z-index: var(--tbh-z-modal);
	opacity: 0;
	visibility: hidden;
	transition: all var(--tbh-transition-base);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--tbh-space-lg);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
}

.tbh-quickview-overlay.is-visible {
	opacity: 1;
	visibility: visible;
}

.tbh-quickview-modal {
	background-color: var(--tbh-white);
	border-radius: var(--tbh-radius-2xl);
	max-width: 960px;
	width: 100%;
	max-height: 90vh;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	box-shadow: var(--tbh-shadow-xl);
	position: relative;
	transform: scale(0.95) translateY(16px);
	transition: transform var(--tbh-transition-base);
}

.tbh-quickview-overlay.is-visible .tbh-quickview-modal {
	transform: scale(1) translateY(0);
}

.tbh-quickview-close {
	position: absolute;
	top: var(--tbh-space-md);
	right: var(--tbh-space-md);
	z-index: 10;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background-color: var(--tbh-grey-100);
	border: none;
	cursor: pointer;
	color: var(--tbh-navy);
	transition: all var(--tbh-transition-fast);
	padding: 0;
}

.tbh-quickview-close:hover {
	background-color: var(--tbh-pink);
	color: var(--tbh-white);
}

.tbh-quickview-close svg {
	width: 20px;
	height: 20px;
}

.tbh-quickview-content {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0;
}

.tbh-quickview-gallery {
	background-color: var(--tbh-grey-50);
	border-radius: var(--tbh-radius-2xl) 0 0 var(--tbh-radius-2xl);
	overflow: hidden;
}

.tbh-quickview-gallery img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	min-height: 300px;
}

.tbh-quickview-info {
	padding: var(--tbh-space-2xl);
	display: flex;
	flex-direction: column;
	gap: var(--tbh-space-md);
}

.tbh-quickview-info .tbh-pdp-title {
	font-size: var(--tbh-text-2xl);
}

/* ==========================================================
   4. WISHLIST
   ========================================================== */
.tbh-wishlist-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: none;
	border: none;
	cursor: pointer;
	color: var(--tbh-grey-500);
	transition: all var(--tbh-transition-fast);
	padding: 0;
	position: relative;
}

.tbh-wishlist-btn:hover {
	color: var(--tbh-pink);
	background-color: rgba(232, 67, 107, 0.08);
}

.tbh-wishlist-btn svg {
	width: 20px;
	height: 20px;
	transition: all var(--tbh-transition-fast);
}

.tbh-wishlist-btn--active,
.tbh-wishlist-btn.active,
.tbh-wishlist-btn.is-active {
	color: var(--tbh-pink);
}

.tbh-wishlist-btn--active svg,
.tbh-wishlist-btn.active svg,
.tbh-wishlist-btn.is-active svg {
	animation: tbh-heart-pop 0.5s ease forwards;
}

/* ==========================================================
   5. WOOCOMMERCE DEFAULT OVERRIDES
   ========================================================== */

/* ---------- Notices / Errors ---------- */
.woocommerce-info,
.woocommerce-message,
.woocommerce-error,
.woocommerce-info::before,
.woocommerce-message::before,
.woocommerce-error::before {
	font-family: var(--tbh-font-body) !important;
	font-size: var(--tbh-text-sm) !important;
	border-radius: var(--tbh-radius-lg) !important;
	box-shadow: var(--tbh-shadow-sm) !important;
	padding: var(--tbh-space-md) var(--tbh-space-lg) !important;
	margin-bottom: var(--tbh-space-lg) !important;
}

.woocommerce-info {
	background-color: rgba(33, 150, 243, 0.08) !important;
	border: 1px solid rgba(33, 150, 243, 0.2) !important;
	color: var(--tbh-navy) !important;
}

.woocommerce-info::before {
	color: var(--tbh-info) !important;
}

.woocommerce-message {
	background-color: rgba(76, 175, 80, 0.08) !important;
	border: 1px solid rgba(76, 175, 80, 0.2) !important;
	color: var(--tbh-navy) !important;
}

.woocommerce-message::before {
	color: var(--tbh-success) !important;
}

.woocommerce-error {
	background-color: rgba(229, 57, 53, 0.08) !important;
	border: 1px solid rgba(229, 57, 53, 0.2) !important;
	color: var(--tbh-navy) !important;
}

.woocommerce-error::before {
	color: var(--tbh-error) !important;
}

/* ---------- Breadcrumb Override ---------- */
.woocommerce .woocommerce-breadcrumb,
.woocommerce-page .woocommerce-breadcrumb {
	font-family: var(--tbh-font-body) !important;
	font-size: var(--tbh-text-xs) !important;
	color: var(--tbh-grey-500) !important;
	margin-bottom: var(--tbh-space-lg) !important;
	padding: 0 !important;
}

.woocommerce .woocommerce-breadcrumb a,
.woocommerce-page .woocommerce-breadcrumb a {
	color: var(--tbh-grey-500) !important;
	text-decoration: none !important;
	transition: color var(--tbh-transition-fast);
}

.woocommerce .woocommerce-breadcrumb a:hover,
.woocommerce-page .woocommerce-breadcrumb a:hover {
	color: var(--tbh-pink) !important;
}

.woocommerce .woocommerce-breadcrumb .separator,
.woocommerce-page .woocommerce-breadcrumb .separator {
	color: var(--tbh-grey-400) !important;
	margin: 0 var(--tbh-space-2xs) !important;
}

/* ---------- Result Count & Ordering ---------- */
.woocommerce .woocommerce-result-count,
.woocommerce-page .woocommerce-result-count {
	font-family: var(--tbh-font-body) !important;
	font-size: var(--tbh-text-sm) !important;
	color: var(--tbh-grey-600) !important;
	margin: 0 !important;
}

.woocommerce .woocommerce-result-count strong {
	font-weight: var(--tbh-weight-semibold) !important;
	color: var(--tbh-navy) !important;
}

.woocommerce .woocommerce-ordering,
.woocommerce-page .woocommerce-ordering {
	margin: 0 !important;
}

.woocommerce .woocommerce-ordering select,
.woocommerce-page .woocommerce-ordering select {
	padding: var(--tbh-space-xs) var(--tbh-space-lg) var(--tbh-space-xs) var(--tbh-space-sm) !important;
	border: 1px solid var(--tbh-grey-300) !important;
	border-radius: var(--tbh-radius-full) !important;
	font-family: var(--tbh-font-body) !important;
	font-size: var(--tbh-text-sm) !important;
	color: var(--tbh-navy) !important;
	background-color: var(--tbh-white) !important;
	cursor: pointer !important;
	appearance: none !important;
	-webkit-appearance: none !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23757575' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 12px center !important;
}

/* ---------- Product Pagination Override ---------- */
.woocommerce nav.woocommerce-pagination ul {
	border: none !important;
	display: flex !important;
	justify-content: center !important;
	gap: var(--tbh-space-xs) !important;
	padding: 0 !important;
}

.woocommerce nav.woocommerce-pagination ul li {
	border: none !important;
	padding: 0 !important;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-width: 44px !important;
	height: 44px !important;
	padding: 0 var(--tbh-space-sm) !important;
	border-radius: var(--tbh-radius-full) !important;
	border: 1px solid var(--tbh-grey-300) !important;
	background-color: var(--tbh-white) !important;
	font-family: var(--tbh-font-display) !important;
	font-size: var(--tbh-text-sm) !important;
	font-weight: var(--tbh-weight-medium) !important;
	color: var(--tbh-navy) !important;
	text-decoration: none !important;
	transition: all var(--tbh-transition-fast) !important;
	text-decoration: none !important;
}

.woocommerce nav.woocommerce-pagination ul li a:hover {
	border-color: var(--tbh-pink) !important;
	color: var(--tbh-pink) !important;
}

.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li span.current {
	background-color: var(--tbh-pink) !important;
	border-color: var(--tbh-pink) !important;
	color: var(--tbh-white) !important;
	box-shadow: var(--tbh-shadow-pink) !important;
}

/* ---------- Product Tabs ---------- */
.woocommerce div.product .woocommerce-tabs ul.tabs {
	padding: 0 !important;
	margin: 0 !important;
	list-style: none !important;
	display: flex !important;
	gap: 0 !important;
	border-bottom: 2px solid var(--tbh-grey-200) !important;
	border-radius: 0 !important;
	background: none !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: none !important;
	border: none !important;
	border-radius: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	box-shadow: none !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	font-family: var(--tbh-font-display) !important;
	font-size: var(--tbh-text-sm) !important;
	font-weight: var(--tbh-weight-semibold) !important;
	color: var(--tbh-grey-500) !important;
	text-transform: uppercase !important;
	letter-spacing: 0.04em !important;
	padding: var(--tbh-space-md) var(--tbh-space-lg) !important;
	border-radius: 0 !important;
	border-bottom: 2px solid transparent !important;
	margin-bottom: -2px !important;
	transition: all var(--tbh-transition-fast) !important;
	text-decoration: none !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
	color: var(--tbh-pink) !important;
	border-bottom-color: var(--tbh-pink) !important;
}

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

.woocommerce div.product .woocommerce-tabs .panel {
	margin: 0 !important;
	padding: var(--tbh-space-xl) 0 !important;
	border: none !important;
	box-shadow: none !important;
	border-radius: 0 !important;
}

.woocommerce div.product .woocommerce-tabs .panel h2 {
	font-family: var(--tbh-font-display) !important;
	font-size: var(--tbh-text-xl) !important;
	font-weight: var(--tbh-weight-bold) !important;
	color: var(--tbh-navy) !important;
	margin-bottom: var(--tbh-space-md) !important;
}

.woocommerce div.product .woocommerce-tabs .panel p {
	font-size: var(--tbh-text-base) !important;
	color: var(--tbh-grey-700) !important;
	line-height: var(--tbh-leading-relaxed) !important;
}

/* ---------- Reviews Section ---------- */
.woocommerce #reviews #comments {
	margin-bottom: var(--tbh-space-xl) !important;
}

.woocommerce #reviews h2,
.woocommerce #reviews #reviews-title {
	font-family: var(--tbh-font-display) !important;
	font-size: var(--tbh-text-xl) !important;
	font-weight: var(--tbh-weight-bold) !important;
	color: var(--tbh-navy) !important;
}

.woocommerce #reviews .commentlist {
	padding: 0 !important;
}

.woocommerce #reviews .commentlist .comment {
	padding: var(--tbh-space-lg) 0 !important;
	border-bottom: 1px solid var(--tbh-grey-200) !important;
	margin: 0 !important;
}

.woocommerce #reviews .commentlist .comment img.avatar {
	border-radius: 50% !important;
	width: 48px !important;
	height: 48px !important;
}

.woocommerce #reviews .commentlist .comment .comment-text {
	border: none !important;
	border-radius: 0 !important;
	padding: 0 !important;
	margin-left: 64px !important;
}

.woocommerce #reviews .commentlist .comment .star-rating {
	color: var(--tbh-yellow) !important;
}

.woocommerce #reviews .commentlist .comment .woocommerce-review__author {
	font-family: var(--tbh-font-display) !important;
	font-weight: var(--tbh-weight-semibold) !important;
	color: var(--tbh-navy) !important;
}

.woocommerce #reviews .commentlist .comment .woocommerce-review__published-date {
	font-size: var(--tbh-text-xs) !important;
	color: var(--tbh-grey-500) !important;
}

.woocommerce #reviews .commentlist .comment p {
	font-size: var(--tbh-text-sm) !important;
	color: var(--tbh-grey-700) !important;
	line-height: var(--tbh-leading-relaxed) !important;
}

/* Review Form */
.woocommerce #reviews #review_form_wrapper {
	padding: var(--tbh-space-xl) !important;
	background-color: var(--tbh-grey-50) !important;
	border-radius: var(--tbh-radius-xl) !important;
	border: 1px solid var(--tbh-grey-200) !important;
}

.woocommerce #reviews #review_form #respond p {
	margin-bottom: var(--tbh-space-md) !important;
}

.woocommerce #reviews #review_form label {
	font-family: var(--tbh-font-display) !important;
	font-size: var(--tbh-text-sm) !important;
	font-weight: var(--tbh-weight-semibold) !important;
	color: var(--tbh-navy) !important;
	display: block !important;
	margin-bottom: var(--tbh-space-2xs) !important;
}

.woocommerce #reviews #review_form input[type="text"],
.woocommerce #reviews #review_form input[type="email"],
.woocommerce #reviews #review_form textarea {
	padding: var(--tbh-space-sm) var(--tbh-space-md) !important;
	border: 1px solid var(--tbh-grey-300) !important;
	border-radius: var(--tbh-radius-md) !important;
	font-family: var(--tbh-font-body) !important;
	font-size: var(--tbh-text-sm) !important;
	color: var(--tbh-navy) !important;
	background-color: var(--tbh-white) !important;
	transition: border-color var(--tbh-transition-fast) !important;
	width: 100% !important;
}

.woocommerce #reviews #review_form input[type="text"]:focus,
.woocommerce #reviews #review_form input[type="email"]:focus,
.woocommerce #reviews #review_form textarea:focus {
	outline: none !important;
	border-color: var(--tbh-pink) !important;
	box-shadow: 0 0 0 3px rgba(232, 67, 107, 0.1) !important;
}

.woocommerce #reviews #review_form textarea {
	min-height: 100px !important;
	resize: vertical !important;
}

.woocommerce #reviews #review_form .form-submit input[type="submit"],
.woocommerce #reviews #review_form .form-submit .tbh-btn {
	padding: var(--tbh-space-sm) var(--tbh-space-xl) !important;
	background-color: var(--tbh-pink) !important;
	color: var(--tbh-white) !important;
	border: 2px solid var(--tbh-pink) !important;
	border-radius: var(--tbh-radius-full) !important;
	font-family: var(--tbh-font-display) !important;
	font-weight: var(--tbh-weight-semibold) !important;
	text-transform: uppercase !important;
	letter-spacing: 0.04em !important;
	cursor: pointer !important;
	transition: all var(--tbh-transition-fast) !important;
}

.woocommerce #reviews #review_form .form-submit input[type="submit"]:hover {
	background-color: var(--tbh-pink-dark) !important;
	border-color: var(--tbh-pink-dark) !important;
	box-shadow: var(--tbh-shadow-pink) !important;
}

/* Star Rating Widget */
.woocommerce #reviews .star-rating {
	color: var(--tbh-yellow) !important;
	font-size: var(--tbh-text-lg) !important;
}

/* ---------- Variation Select Override ---------- */
.woocommerce table.variations {
	border: none !important;
	padding: 0 !important;
	margin-bottom: var(--tbh-space-lg) !important;
	width: 100% !important;
}

.woocommerce table.variations td,
.woocommerce table.variations th {
	padding: var(--tbh-space-xs) 0 !important;
	border: none !important;
	vertical-align: middle !important;
}

.woocommerce table.variations th label {
	font-family: var(--tbh-font-display) !important;
	font-size: var(--tbh-text-sm) !important;
	font-weight: var(--tbh-weight-semibold) !important;
	color: var(--tbh-navy) !important;
	text-transform: uppercase !important;
	letter-spacing: 0.04em !important;
}

.woocommerce table.variations select {
	padding: var(--tbh-space-xs) var(--tbh-space-lg) var(--tbh-space-xs) var(--tbh-space-sm) !important;
	border: 1px solid var(--tbh-grey-300) !important;
	border-radius: var(--tbh-radius-md) !important;
	font-family: var(--tbh-font-body) !important;
	font-size: var(--tbh-text-sm) !important;
	color: var(--tbh-navy) !important;
	background-color: var(--tbh-white) !important;
	appearance: none !important;
	-webkit-appearance: none !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23757575' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 12px center !important;
	cursor: pointer !important;
}

.woocommerce table.variations select:focus {
	outline: none !important;
	border-color: var(--tbh-pink) !important;
}

.woocommerce table.variations .variations_button {
	margin-top: var(--tbh-space-sm) !important;
}

.woocommerce table.variations .variations_button .btn-reset,
.woocommerce table.variations .variations_button a.reset_variations {
	font-size: var(--tbh-text-xs) !important;
	color: var(--tbh-grey-500) !important;
	text-decoration: underline !important;
	text-underline-offset: 2px !important;
}

.woocommerce table.variations .variations_button .btn-reset:hover,
.woocommerce table.variations .variations_button a.reset_variations:hover {
	color: var(--tbh-pink) !important;
}

.woocommerce .variations-price {
	font-family: var(--tbh-font-display) !important;
	font-size: var(--tbh-text-lg) !important;
	font-weight: var(--tbh-weight-bold) !important;
	color: var(--tbh-pink) !important;
	margin-top: var(--tbh-space-sm) !important;
}

/* ---------- Empty State ---------- */
.woocommerce .no-results,
.woocommerce-page .no-results,
.woocommerce ul.products li.product .no-product-results,
.woocommerce-page ul.products li.product .no-product-results {
	padding: var(--tbh-space-4xl) var(--tbh-space-xl) !important;
	text-align: center !important;
}

.woocommerce .no-results .woocommerce-info,
.woocommerce-page .no-results .woocommerce-info {
	font-family: var(--tbh-font-display) !important;
	font-size: var(--tbh-text-xl) !important;
	font-weight: var(--tbh-weight-semibold) !important;
	color: var(--tbh-grey-600) !important;
	background: none !important;
	border: 2px dashed var(--tbh-grey-300) !important;
	border-radius: var(--tbh-radius-2xl) !important;
	padding: var(--tbh-space-3xl) var(--tbh-space-2xl) !important;
	box-shadow: none !important;
}

/* ---------- Sale Badge Override ---------- */
.woocommerce span.onsale,
.woocommerce .product span.onsale {
	background-color: var(--tbh-pink) !important;
	color: var(--tbh-white) !important;
	font-family: var(--tbh-font-display) !important;
	font-size: var(--tbh-text-xs) !important;
	font-weight: var(--tbh-weight-bold) !important;
	text-transform: uppercase !important;
	letter-spacing: 0.04em !important;
	padding: 0.3rem 0.75rem !important;
	border-radius: var(--tbh-radius-full) !important;
	min-width: auto !important;
	min-height: auto !important;
	line-height: 1.4 !important;
	left: var(--tbh-space-sm) !important;
	top: var(--tbh-space-sm) !important;
}

/* ---------- Product Meta ---------- */
.woocommerce div.product .product_meta {
	font-size: var(--tbh-text-sm) !important;
	color: var(--tbh-grey-600) !important;
	margin-top: var(--tbh-space-md) !important;
	padding-top: var(--tbh-space-md) !important;
	border-top: 1px solid var(--tbh-grey-200) !important;
}

.woocommerce div.product .product_meta span {
	display: block !important;
	margin-bottom: var(--tbh-space-xs) !important;
}

.woocommerce div.product .product_meta span.label {
	font-family: var(--tbh-font-display) !important;
	font-weight: var(--tbh-weight-semibold) !important;
	text-transform: uppercase !important;
	letter-spacing: 0.04em !important;
	font-size: var(--tbh-text-xs) !important;
	color: var(--tbh-grey-500) !important;
	margin-right: var(--tbh-space-xs) !important;
}

.woocommerce div.product .product_meta span a {
	color: var(--tbh-pink) !important;
	text-decoration: underline !important;
	text-underline-offset: 2px !important;
	transition: color var(--tbh-transition-fast) !important;
}

.woocommerce div.product .product_meta span a:hover {
	color: var(--tbh-pink-dark) !important;
	text-decoration: none !important;
}

.woocommerce div.product .product_meta .tagged_as,
.woocommerce div.product .product_meta .posted_in {
	font-size: var(--tbh-text-sm) !important;
}

/* ---------- Product Sharing ---------- */
.woocommerce div.product .social-sharing,
.woocommerce div.product .yith-wcwl-add-to-wishlist {
	margin-top: var(--tbh-space-md) !important;
}

/* ---------- Upsells & Related Products Grid ---------- */
.woocommerce .products ul.products,
.woocommerce-page .products ul.products {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: var(--tbh-space-xl) !important;
	padding: 0 !important;
	margin: var(--tbh-space-2xl) 0 !important;
}

.woocommerce .products ul.products li.product,
.woocommerce-page .products ul.products li.product {
	float: none !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	background-color: var(--tbh-white) !important;
	border-radius: var(--tbh-radius-2xl) !important;
	overflow: hidden !important;
	border: 1px solid var(--tbh-grey-200) !important;
	transition: all var(--tbh-transition-base) !important;
	position: relative !important;
}

.woocommerce .products ul.products li.product:hover,
.woocommerce-page .products ul.products li.product:hover {
	box-shadow: var(--tbh-shadow-card-hover) !important;
	border-color: transparent !important;
	transform: translateY(-4px) !important;
}

.woocommerce .products ul.products li.product a img,
.woocommerce-page .products ul.products li.product a img {
	margin: 0 !important;
	border-radius: 0 !important;
	transition: transform var(--tbh-transition-slow) !important;
}

.woocommerce .products ul.products li.product:hover a img,
.woocommerce-page .products ul.products li.product:hover a img {
	transform: scale(1.05) !important;
}

.woocommerce .products ul.products li.product .woocommerce-loop-product__title,
.woocommerce-page .products ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--tbh-font-display) !important;
	font-size: var(--tbh-text-md) !important;
	font-weight: var(--tbh-weight-semibold) !important;
	color: var(--tbh-navy) !important;
	padding: 0 var(--tbh-space-lg) !important;
	margin-bottom: var(--tbh-space-xs) !important;
	line-height: var(--tbh-leading-snug) !important;
}

.woocommerce .products ul.products li.product .price,
.woocommerce-page .products ul.products li.product .price {
	font-family: var(--tbh-font-display) !important;
	font-size: var(--tbh-text-lg) !important;
	font-weight: var(--tbh-weight-bold) !important;
	color: var(--tbh-pink) !important;
	padding: 0 var(--tbh-space-lg) !important;
	margin: 0 !important;
}

.woocommerce .products ul.products li.product .price del,
.woocommerce-page .products ul.products li.product .price del {
	font-size: var(--tbh-text-sm) !important;
	font-weight: var(--tbh-weight-regular) !important;
	color: var(--tbh-grey-500) !important;
	opacity: 1 !important;
}

.woocommerce .products ul.products li.product .price ins,
.woocommerce-page .products ul.products li.product .price ins {
	text-decoration: none !important;
	color: var(--tbh-pink) !important;
}

.woocommerce .products ul.products li.product .button,
.woocommerce-page .products ul.products li.product .button {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 6px !important;
	width: 100% !important;
	padding: var(--tbh-space-sm) !important;
	margin: var(--tbh-space-sm) 0 0 !important;
	margin-left: var(--tbh-space-sm) !important;
	margin-right: var(--tbh-space-sm) !important;
	width: calc(100% - var(--tbh-space-xl)) !important;
	background-color: var(--tbh-navy) !important;
	color: var(--tbh-white) !important;
	border: none !important;
	border-radius: 0 0 var(--tbh-radius-2xl) var(--tbh-radius-2xl) !important;
	font-family: var(--tbh-font-display) !important;
	font-size: var(--tbh-text-sm) !important;
	font-weight: var(--tbh-weight-semibold) !important;
	text-transform: uppercase !important;
	letter-spacing: 0.04em !important;
	cursor: pointer !important;
	transition: all var(--tbh-transition-fast) !important;
	text-align: center !important;
}

.woocommerce .products ul.products li.product .button:hover,
.woocommerce-page .products ul.products li.product .button:hover {
	background-color: var(--tbh-pink) !important;
	transform: none !important;
	box-shadow: none !important;
}

.woocommerce .products ul.products li.product .onsale,
.woocommerce-page .products ul.products li.product .onsale {
	border-radius: var(--tbh-radius-full) !important;
	left: var(--tbh-space-sm) !important;
	top: var(--tbh-space-sm) !important;
}

.woocommerce .products ul.products li.product .star-rating,
.woocommerce-page .products ul.products li.product .star-rating {
	padding: 0 var(--tbh-space-lg) !important;
	color: var(--tbh-yellow) !important;
}

/* ---------- Cross-sells ---------- */
.woocommerce .cross-sells {
	margin-top: var(--tbh-space-3xl) !important;
	padding-top: var(--tbh-space-3xl) !important;
	border-top: 1px solid var(--tbh-grey-200) !important;
}

.woocommerce .cross-sells > h2,
.woocommerce .cross-sells > ul > li {
	all: unset;
}

/* ---------- Price Styling Override ---------- */
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	font-family: var(--tbh-font-display) !important;
	font-size: var(--tbh-text-2xl) !important;
	font-weight: var(--tbh-weight-bold) !important;
	color: var(--tbh-navy) !important;
}

.woocommerce div.product p.price del,
.woocommerce div.product span.price del {
	font-size: var(--tbh-text-lg) !important;
	font-weight: var(--tbh-weight-regular) !important;
	color: var(--tbh-grey-500) !important;
	opacity: 1 !important;
}

.woocommerce div.product p.price ins,
.woocommerce div.product span.price ins {
	text-decoration: none !important;
	color: var(--tbh-pink) !important;
	font-weight: var(--tbh-weight-bold) !important;
}

.woocommerce .price del + ins {
	margin-left: var(--tbh-space-xs) !important;
}

/* ---------- WooCommerce Form Fields ---------- */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
	padding: var(--tbh-space-sm) var(--tbh-space-md) !important;
	border: 1px solid var(--tbh-grey-300) !important;
	border-radius: var(--tbh-radius-md) !important;
	font-family: var(--tbh-font-body) !important;
	font-size: var(--tbh-text-sm) !important;
	color: var(--tbh-navy) !important;
	background-color: var(--tbh-white) !important;
	transition: border-color var(--tbh-transition-fast), box-shadow var(--tbh-transition-fast) !important;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
	outline: none !important;
	border-color: var(--tbh-pink) !important;
	box-shadow: 0 0 0 3px rgba(232, 67, 107, 0.1) !important;
}

.woocommerce form .form-row label {
	font-family: var(--tbh-font-display) !important;
	font-size: var(--tbh-text-sm) !important;
	font-weight: var(--tbh-weight-semibold) !important;
	color: var(--tbh-navy) !important;
	margin-bottom: var(--tbh-space-2xs) !important;
}

.woocommerce form .form-row .required {
	color: var(--tbh-pink) !important;
}

/* ---------- WooCommerce Buttons Override ---------- */
.woocommerce .button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
	font-family: var(--tbh-font-display) !important;
	font-weight: var(--tbh-weight-semibold) !important;
	font-size: var(--tbh-text-sm) !important;
	text-transform: uppercase !important;
	letter-spacing: 0.04em !important;
	padding: var(--tbh-space-sm) var(--tbh-space-xl) !important;
	border-radius: var(--tbh-radius-full) !important;
	background-color: var(--tbh-navy) !important;
	color: var(--tbh-white) !important;
	border: 2px solid var(--tbh-navy) !important;
	cursor: pointer !important;
	transition: all var(--tbh-transition-fast) !important;
	line-height: 1.4 !important;
}

.woocommerce .button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
	background-color: var(--tbh-pink) !important;
	border-color: var(--tbh-pink) !important;
	color: var(--tbh-white) !important;
	box-shadow: var(--tbh-shadow-pink) !important;
	transform: translateY(-1px) !important;
}

.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
	background-color: var(--tbh-pink) !important;
	border-color: var(--tbh-pink) !important;
}

.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
	background-color: var(--tbh-pink-dark) !important;
	border-color: var(--tbh-pink-dark) !important;
}

/* ---------- Single Product Add to Cart Form ---------- */
.woocommerce div.product form.cart {
	margin-bottom: var(--tbh-space-lg) !important;
}

.woocommerce div.product form.cart .quantity {
	display: flex !important;
	align-items: center !important;
	border: 2px solid var(--tbh-grey-300) !important;
	border-radius: var(--tbh-radius-lg) !important;
	overflow: hidden !important;
	width: fit-content !important;
	margin-bottom: var(--tbh-space-md) !important;
	background-color: var(--tbh-white) !important;
}

.woocommerce div.product form.cart .quantity .qty {
	width: 60px !important;
	height: 48px !important;
	text-align: center !important;
	font-family: var(--tbh-font-display) !important;
	font-size: var(--tbh-text-base) !important;
	font-weight: var(--tbh-weight-semibold) !important;
	color: var(--tbh-navy) !important;
	border: none !important;
	background: var(--tbh-white) !important;
	padding: 0 !important;
	margin: 0 !important;
	-moz-appearance: textfield !important;
}

.woocommerce div.product form.cart .quantity .qty::-webkit-outer-spin-button,
.woocommerce div.product form.cart .quantity .qty::-webkit-inner-spin-button {
	-webkit-appearance: none !important;
	margin: 0 !important;
}

.woocommerce div.product form.cart .quantity .plus,
.woocommerce div.product form.cart .quantity .minus {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 48px !important;
	height: 48px !important;
	background: none !important;
	border: none !important;
	cursor: pointer !important;
	color: var(--tbh-navy) !important;
	font-size: var(--tbh-text-lg) !important;
	transition: all var(--tbh-transition-fast) !important;
	padding: 0 !important;
}

.woocommerce div.product form.cart .quantity .plus:hover,
.woocommerce div.product form.cart .quantity .minus:hover {
	background-color: var(--tbh-grey-100) !important;
	color: var(--tbh-pink) !important;
}

.woocommerce div.product form.cart .single_add_to_cart_button {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: var(--tbh-space-xs) !important;
	width: 100% !important;
	padding: 1.1rem var(--tbh-space-2xl) !important;
	background-color: var(--tbh-pink) !important;
	color: var(--tbh-white) !important;
	border: 2px solid var(--tbh-pink) !important;
	border-radius: var(--tbh-radius-full) !important;
	font-family: var(--tbh-font-display) !important;
	font-size: var(--tbh-text-md) !important;
	font-weight: var(--tbh-weight-bold) !important;
	text-transform: uppercase !important;
	letter-spacing: 0.04em !important;
	cursor: pointer !important;
	transition: all var(--tbh-transition-base) !important;
	text-align: center !important;
	line-height: 1 !important;
}

.woocommerce div.product form.cart .single_add_to_cart_button:hover {
	background-color: var(--tbh-pink-dark) !important;
	border-color: var(--tbh-pink-dark) !important;
	box-shadow: var(--tbh-shadow-pink) !important;
	transform: translateY(-2px) !important;
}

/* ---------- WooCommerce Star Rating ---------- */
.woocommerce .star-rating {
	color: var(--tbh-yellow) !important;
	font-size: var(--tbh-text-base) !important;
}

.woocommerce .star-rating::before,
.woocommerce .star-rating span {
	font-family: inherit !important;
}

/* ---------- WooCommerce Product Grid (Shop Page) ---------- */
.woocommerce ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr) !important;
	gap: var(--tbh-space-xl) !important;
	padding: 0 !important;
	margin: 0 !important;
}

.woocommerce ul.products li.product {
	float: none !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	background-color: var(--tbh-white) !important;
	border-radius: var(--tbh-radius-2xl) !important;
	overflow: hidden !important;
	border: 1px solid var(--tbh-grey-200) !important;
	transition: all var(--tbh-transition-base) !important;
	position: relative !important;
}

.woocommerce ul.products li.product:hover {
	box-shadow: var(--tbh-shadow-card-hover) !important;
	border-color: transparent !important;
	transform: translateY(-4px) !important;
}

.woocommerce ul.products li.product a img {
	margin: 0 !important;
	display: block !important;
	transition: transform var(--tbh-transition-slow) !important;
}

.woocommerce ul.products li.product:hover a img {
	transform: scale(1.05) !important;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--tbh-font-display) !important;
	font-size: var(--tbh-text-md) !important;
	font-weight: var(--tbh-weight-semibold) !important;
	color: var(--tbh-navy) !important;
	padding: var(--tbh-space-md) var(--tbh-space-lg) var(--tbh-space-xs) !important;
	margin: 0 !important;
	line-height: var(--tbh-leading-snug) !important;
}

.woocommerce ul.products li.product .price {
	font-family: var(--tbh-font-display) !important;
	font-size: var(--tbh-text-lg) !important;
	font-weight: var(--tbh-weight-bold) !important;
	color: var(--tbh-pink) !important;
	padding: 0 var(--tbh-space-lg) var(--tbh-space-sm) !important;
	display: block !important;
}

.woocommerce ul.products li.product .price del {
	font-size: var(--tbh-text-sm) !important;
	font-weight: var(--tbh-weight-regular) !important;
	color: var(--tbh-grey-500) !important;
	opacity: 1 !important;
}

.woocommerce ul.products li.product .price ins {
	text-decoration: none !important;
	color: var(--tbh-pink) !important;
}

.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .add_to_cart_button {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 6px !important;
	width: calc(100% - var(--tbh-space-xl)) !important;
	margin: var(--tbh-space-sm) var(--tbh-space-sm) !important;
	padding: var(--tbh-space-sm) !important;
	background-color: var(--tbh-navy) !important;
	color: var(--tbh-white) !important;
	border: none !important;
	border-radius: 0 0 var(--tbh-radius-2xl) var(--tbh-radius-2xl) !important;
	font-family: var(--tbh-font-display) !important;
	font-size: var(--tbh-text-sm) !important;
	font-weight: var(--tbh-weight-semibold) !important;
	text-transform: uppercase !important;
	letter-spacing: 0.04em !important;
	cursor: pointer !important;
	transition: all var(--tbh-transition-fast) !important;
	text-align: center !important;
}

.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product .add_to_cart_button:hover {
	background-color: var(--tbh-pink) !important;
}

.woocommerce ul.products li.product .onsale {
	border-radius: var(--tbh-radius-full) !important;
	left: var(--tbh-space-sm) !important;
	top: var(--tbh-space-sm) !important;
	right: auto !important;
}

.woocommerce ul.products li.product .star-rating {
	padding: 0 var(--tbh-space-lg) !important;
}

/* ---------- Archive polish: current template class names ---------- */
.tbh-collection-sidebar .tbh-filter-group {
	padding: 0 0 var(--tbh-space-md);
	margin: 0 0 var(--tbh-space-md);
	border-bottom: 1px solid var(--tbh-grey-200);
}

.tbh-collection-sidebar .tbh-filter-group:last-child {
	border-bottom: 0;
	margin-bottom: 0;
	padding-bottom: 0;
}

.tbh-filter-group__title {
	font-family: var(--tbh-font-display);
	font-size: var(--tbh-text-lg);
	line-height: 1.05;
	font-weight: var(--tbh-weight-bold);
	letter-spacing: -0.03em;
	color: var(--tbh-navy);
	margin: 0 0 var(--tbh-space-xs);
}

.tbh-filter-group .tbh-active-filters,
.tbh-filter-group .tbh-filter-widget {
	font-size: var(--tbh-text-sm);
	color: var(--tbh-grey-700);
}

.tbh-filter-group .tbh-active-filters {
	display: block;
	padding: 0;
}

.tbh-filter-group .tbh-active-filters__empty,
.tbh-filter-group .tbh-filter-widget__empty,
.tbh-filter-group .tbh-filter-widget > p {
	margin: 0;
	font-size: var(--tbh-text-sm);
	line-height: 1.45;
	color: var(--tbh-grey-600);
}

/* Do not make empty filter categories look like available controls. */
.tbh-filter-group:has(.tbh-filter-widget__empty),
.tbh-filter-group:has(.tbh-filter-widget > p:only-child) {
	display: none;
}

.tbh-filter-checklist {
	list-style: none;
	padding: 0;
	margin: 0;
}

.tbh-filter-checklist__label {
	display: flex;
	align-items: center;
	gap: .45rem;
	font-size: var(--tbh-text-sm);
	line-height: 1.4;
	cursor: pointer;
}

.tbh-filter-checklist__input {
	accent-color: var(--tbh-pink);
}

.tbh-collection-main .products {
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)) !important;
	gap: var(--tbh-space-lg) !important;
}

.tbh-related-collection-card__image--placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, rgba(232,67,107,.18), rgba(124,58,237,.18));
	color: var(--tbh-pink);
	font-family: var(--tbh-font-display);
	font-size: var(--tbh-text-xl);
	font-weight: var(--tbh-weight-bold);
}

.tbh-related-collection-card__content {
	min-width: 0;
}

.tbh-related-collection-card__title {
	margin: 0 0 .2rem;
	font-family: var(--tbh-font-display);
	font-size: var(--tbh-text-md);
	line-height: 1.1;
	font-weight: var(--tbh-weight-bold);
	color: var(--tbh-navy);
}

.tbh-related-collection-card__count {
	display: block;
	font-size: var(--tbh-text-xs);
	font-weight: var(--tbh-weight-semibold);
	color: var(--tbh-pink);
}

@media (max-width: 1024px) {
	.tbh-collection-main .products {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

/* ---------- Responsive Tables (Cart) ---------- */
.woocommerce table.shop_table {
	border: 1px solid var(--tbh-grey-200) !important;
	border-radius: var(--tbh-radius-xl) !important;
	overflow: hidden !important;
}

.woocommerce table.shop_table thead th {
	background-color: var(--tbh-grey-50) !important;
	font-family: var(--tbh-font-display) !important;
	font-size: var(--tbh-text-xs) !important;
	font-weight: var(--tbh-weight-bold) !important;
	text-transform: uppercase !important;
	letter-spacing: 0.04em !important;
	color: var(--tbh-grey-600) !important;
	padding: var(--tbh-space-md) var(--tbh-space-lg) !important;
	border-bottom: 1px solid var(--tbh-grey-200) !important;
}

.woocommerce table.shop_table td {
	padding: var(--tbh-space-md) var(--tbh-space-lg) !important;
	border-bottom: 1px solid var(--tbh-grey-100) !important;
	font-size: var(--tbh-text-sm) !important;
	color: var(--tbh-grey-700) !important;
	vertical-align: middle !important;
}

.woocommerce table.shop_table td.product-name {
	font-family: var(--tbh-font-display) !important;
	font-weight: var(--tbh-weight-semibold) !important;
	color: var(--tbh-navy) !important;
}

.woocommerce table.shop_table td.product-price,
.woocommerce table.shop_table td.product-subtotal {
	font-family: var(--tbh-font-display) !important;
	font-weight: var(--tbh-weight-bold) !important;
	color: var(--tbh-navy) !important;
}

.woocommerce table.shop_table .product-remove a {
	color: var(--tbh-grey-500) !important;
	font-size: var(--tbh-text-lg) !important;
	transition: color var(--tbh-transition-fast) !important;
}

.woocommerce table.shop_table .product-remove a:hover {
	color: var(--tbh-error) !important;
}

/* ---------- Cart Totals ---------- */
.woocommerce .cart_totals {
	background-color: var(--tbh-grey-50) !important;
	border-radius: var(--tbh-radius-2xl) !important;
	padding: var(--tbh-space-xl) !important;
	border: 1px solid var(--tbh-grey-200) !important;
}

.woocommerce .cart_totals h2 {
	font-family: var(--tbh-font-display) !important;
	font-size: var(--tbh-text-xl) !important;
	font-weight: var(--tbh-weight-bold) !important;
	color: var(--tbh-navy) !important;
	margin-bottom: var(--tbh-space-md) !important;
}

.woocommerce .cart_totals table {
	border-collapse: collapse !important;
	width: 100% !important;
}

.woocommerce .cart_totals table td,
.woocommerce .cart_totals table th {
	padding: var(--tbh-space-xs) 0 !important;
	border: none !important;
	font-size: var(--tbh-text-sm) !important;
}

.woocommerce .cart_totals table th {
	font-family: var(--tbh-font-display) !important;
	font-weight: var(--tbh-weight-medium) !important;
	color: var(--tbh-grey-600) !important;
}

.woocommerce .cart_totals table td {
	text-align: right !important;
	font-family: var(--tbh-font-display) !important;
	font-weight: var(--tbh-weight-semibold) !important;
	color: var(--tbh-navy) !important;
}

.woocommerce .cart_totals .order-total td {
	font-size: var(--tbh-text-lg) !important;
	font-weight: var(--tbh-weight-bold) !important;
	color: var(--tbh-pink) !important;
}

.woocommerce .cart_totals .checkout-button {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	padding: 1.1rem var(--tbh-space-2xl) !important;
	background-color: var(--tbh-pink) !important;
	color: var(--tbh-white) !important;
	border: 2px solid var(--tbh-pink) !important;
	border-radius: var(--tbh-radius-full) !important;
	font-family: var(--tbh-font-display) !important;
	font-size: var(--tbh-text-md) !important;
	font-weight: var(--tbh-weight-bold) !important;
	text-transform: uppercase !important;
	letter-spacing: 0.04em !important;
	cursor: pointer !important;
	transition: all var(--tbh-transition-base) !important;
	margin-top: var(--tbh-space-lg) !important;
	text-align: center !important;
	text-decoration: none !important;
}

.woocommerce .cart_totals .checkout-button:hover {
	background-color: var(--tbh-pink-dark) !important;
	border-color: var(--tbh-pink-dark) !important;
	box-shadow: var(--tbh-shadow-pink) !important;
	transform: translateY(-2px) !important;
}

/* ---------- Product Add-to-Cart Notices ---------- */
.woocommerce .woocommerce-notices-wrapper .woocommerce-message:has(.add_to_cart_button) {
	display: none !important;
}

/* ---------- WooCommerce Page Wrapper ---------- */
.woocommerce-page {
	padding-bottom: var(--tbh-space-4xl);
}

.woocommerce-page .tbh-container {
	width: 100%;
}

/* ---------- WC Add-to-Cart Animation ---------- */
@keyframes tbh-added-to-cart {
	0% { transform: scale(1); }
	50% { transform: scale(1.05); }
	100% { transform: scale(1); }
}

.woocommerce .products li.product .added_to_cart {
	animation: tbh-added-to-cart 0.3s ease;
}

/* ==========================================================
   6. RESPONSIVE RULES
   ========================================================== */

/* ---------- Tablet (769px – 1024px) ---------- */
@media (max-width: 1024px) {
	.tbh-collection-layout {
		grid-template-columns: 1fr;
	}

	.tbh-collection-sidebar {
		display: none;
	}

	.tbh-collection-sidebar.is-open {
		display: block;
		position: fixed;
		top: 0;
		left: 0;
		width: 320px;
		max-width: 85vw;
		height: 100%;
		z-index: var(--tbh-z-overlay);
		border-radius: 0;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		box-shadow: var(--tbh-shadow-xl);
	}

	.tbh-collection-grid {
		grid-template-columns: repeat(3, 1fr);
		gap: var(--tbh-space-lg);
	}

	.tbh-mobile-filter-toggle {
		display: inline-flex;
	}

	.tbh-filter-drawer,
	.tbh-filter-drawer-overlay {
		display: block;
	}

	.tbh-pdp-layout {
		gap: var(--tbh-space-2xl);
	}

	.woocommerce ul.products,
	.woocommerce .products ul.products,
	.woocommerce-page .products ul.products {
		grid-template-columns: repeat(3, 1fr) !important;
	}
}

/* ---------- Mobile (max-width: 768px) ---------- */
@media (max-width: 768px) {
	/* Collection Hero */
	.tbh-collection-hero {
		padding: var(--tbh-space-2xl) 0 var(--tbh-space-xl);
	}

	.tbh-collection-hero__title {
		font-size: var(--tbh-text-3xl);
	}

	.tbh-collection-hero__description {
		font-size: var(--tbh-text-base);
	}

	/* Collection Grid */
	.tbh-collection-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: var(--tbh-space-md);
	}

	.woocommerce .products ul.products,
	.woocommerce-page .products ul.products {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: var(--tbh-space-md) !important;
		min-width: 0 !important;
	}

	.woocommerce .products ul.products li.product,
	.woocommerce-page .products ul.products li.product {
		min-width: 0 !important;
		overflow: hidden;
	}

	.woocommerce .products ul.products li.product,
	.woocommerce-page .products ul.products li.product {
		min-width: 0 !important;
		max-width: none !important;
		overflow: hidden;
	}

	/* Override WooCommerce Bootstrap column classes */
	ul.products li.product[class*="col-"] {
		min-width: 0 !important;
		width: auto !important;
	}

	/* Toolbar */
	.tbh-collection-toolbar {
		flex-direction: column;
		align-items: stretch;
		gap: var(--tbh-space-xs);
	}

	/* Pagination */
	.tbh-collection-pagination .page-numbers {
		min-width: 40px;
		height: 40px;
		font-size: var(--tbh-text-xs);
	}

	/* PDP Layout */
	.tbh-pdp-layout {
		grid-template-columns: 1fr;
		gap: var(--tbh-space-xl);
		padding: var(--tbh-space-lg) 0 var(--tbh-space-4xl);
	}

	.tbh-pdp-gallery {
		position: static;
	}

	.tbh-pdp-gallery-main {
		border-radius: var(--tbh-radius-xl);
	}

	.tbh-pdp-gallery-thumb {
		width: 64px;
		height: 64px;
	}

	/* PDP Info */
	.tbh-pdp-title {
		font-size: var(--tbh-text-2xl);
	}

	.tbh-pdp-price__regular,
	.tbh-pdp-price__sale,
	.tbh-pdp-price del,
	.tbh-pdp-price del {
		font-size: var(--tbh-text-xl);
	}

	/* Quantity */
	.tbh-pdp-quantity {
		width: 100%;
		max-width: 180px;
	}

	/* Accordion */
	.tbh-pdp-accordion-header {
		padding: var(--tbh-space-md) 0;
		font-size: var(--tbh-text-xs);
	}

	/* Sticky Bar */
	.tbh-pdp-sticky-bar {
		display: block;
	}

	/* Quick View */
	.tbh-quickview-content {
		grid-template-columns: 1fr;
	}

	.tbh-quickview-gallery {
		border-radius: var(--tbh-radius-2xl) var(--tbh-radius-2xl) 0 0;
	}

	.tbh-quickview-gallery img {
		min-height: 200px;
		max-height: 300px;
	}

	.tbh-quickview-info {
		padding: var(--tbh-space-lg);
	}

	/* WooCommerce Product Grid */
	.woocommerce ul.products,
	.woocommerce .products ul.products,
	.woocommerce-page .products ul.products {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: var(--tbh-space-md) !important;
	}

	.woocommerce ul.products li.product .woocommerce-loop-product__title {
		font-size: var(--tbh-text-sm) !important;
		padding: var(--tbh-space-sm) var(--tbh-space-md) var(--tbh-space-2xs) !important;
	}

	.woocommerce ul.products li.product .price {
		font-size: var(--tbh-text-base) !important;
		padding: 0 var(--tbh-space-md) var(--tbh-space-xs) !important;
	}

	.woocommerce ul.products li.product .button,
	.woocommerce ul.products li.product .add_to_cart_button {
		margin: var(--tbh-space-xs) !important;
		padding: var(--tbh-space-xs) !important;
		font-size: var(--tbh-text-xs) !important;
	}

	/* WooCommerce Tabs */
	.woocommerce div.product .woocommerce-tabs ul.tabs {
		flex-wrap: wrap !important;
	}

	.woocommerce div.product .woocommerce-tabs ul.tabs li a {
		padding: var(--tbh-space-sm) var(--tbh-space-md) !important;
		font-size: var(--tbh-text-xs) !important;
	}

	/* Reviews */
	.woocommerce #reviews .commentlist .comment .comment-text {
		margin-left: 0 !important;
	}

	/* Cart */
	.woocommerce table.shop_table {
		display: block !important;
		overflow-x: auto !important;
		-webkit-overflow-scrolling: touch !important;
	}

	.woocommerce .cart_totals {
		padding: var(--tbh-space-lg) !important;
	}
}

/* ---------- Small Mobile (max-width: 480px) ---------- */
@media (max-width: 480px) {
	.tbh-collection-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: var(--tbh-space-sm);
	}

	.tbh-pdp-gallery-thumbs {
		gap: var(--tbh-space-xs);
	}

	.tbh-pdp-gallery-thumb {
		width: 56px;
		height: 56px;
	}

	.tbh-pdp-colour-swatches {
		gap: var(--tbh-space-xs);
	}

	.tbh-pdp-colour-swatch {
		width: 38px;
		height: 38px;
	}

	.tbh-pdp-size-btn {
		min-width: 48px;
		height: 44px;
		font-size: var(--tbh-text-xs);
	}

	.tbh-quickview-modal {
		border-radius: var(--tbh-radius-xl);
		max-height: 95vh;
	}

	.woocommerce ul.products,
	.woocommerce .products ul.products,
	.woocommerce-page .products ul.products {
		gap: var(--tbh-space-sm) !important;
	}

	.woocommerce ul.products li.product .button,
	.woocommerce ul.products li.product .add_to_cart_button {
		margin: var(--tbh-space-2xs) !important;
		padding: var(--tbh-space-xs) var(--tbh-space-sm) !important;
		font-size: 0.65rem !important;
		letter-spacing: 0.02em !important;
	}

	.woocommerce ul.products li.product .onsale {
		padding: 0.2rem 0.5rem !important;
		font-size: 0.6rem !important;
	}

	.tbh-pdp-sticky-bar {
		padding: var(--tbh-space-xs) var(--tbh-space-md);
	}

	.tbh-pdp-sticky-bar__price {
		font-size: var(--tbh-text-base);
	}
}

/* ---------- Touch-friendly Interactions ---------- */
@media (pointer: coarse) {
	.tbh-pdp-gallery-thumb {
		width: 72px;
		height: 72px;
	}

	.tbh-pdp-colour-swatch {
		width: 48px;
		height: 48px;
	}

	.tbh-pdp-size-btn {
		min-width: 56px;
		height: 52px;
	}

	.tbh-pdp-accordion-header {
		padding: var(--tbh-space-md) 0;
		min-height: 48px;
	}

	.tbh-filter-heading {
		min-height: 44px;
	}

	.tbh-filter-chip {
		padding: var(--tbh-space-sm) var(--tbh-space-md);
	}

	.woocommerce .products ul.products li.product .button,
	.woocommerce ul.products li.product .button,
	.woocommerce ul.products li.product .add_to_cart_button {
		min-height: 44px;
	}

	.tbh-collection-pagination .page-numbers {
		min-width: 44px;
		height: 44px;
	}
}

/* ---------- Safe Area (Notch Devices) ---------- */
@supports (padding: max(0px)) {
	.tbh-pdp-sticky-bar {
		padding-bottom: max(var(--tbh-space-sm), env(safe-area-inset-bottom));
	}
}

/* ==========================================================
   7. MINI CART
   ========================================================== */

.tbh-mini-cart {
    position: fixed;
    inset: 0;
    z-index: var(--tbh-z-modal);
    display: none;
    pointer-events: none;
}

.tbh-mini-cart.is-open {
    display: block;
    pointer-events: auto;
}

.tbh-mini-cart__overlay {
    position: absolute;
    inset: 0;
    background-color: rgba(26, 31, 54, 0.45);
    opacity: 0;
    transition: opacity var(--tbh-transition-base);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
}

.tbh-mini-cart.is-open .tbh-mini-cart__overlay {
    opacity: 1;
}

.tbh-mini-cart__panel {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 420px;
    max-width: 100vw;
    background-color: var(--tbh-white);
    box-shadow: var(--tbh-shadow-xl);
    display: flex;
    flex-direction: column;
    transform: translateX(100%);
    transition: transform var(--tbh-transition-slow);
}

.tbh-mini-cart.is-open .tbh-mini-cart__panel {
    transform: translateX(0);
}

.tbh-mini-cart__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--tbh-space-md) var(--tbh-space-lg);
    border-bottom: 1px solid var(--tbh-grey-200);
    flex-shrink: 0;
}

.tbh-mini-cart__title {
    font-family: var(--tbh-font-display);
    font-size: var(--tbh-text-xl);
    font-weight: var(--tbh-weight-bold);
    color: var(--tbh-navy);
    margin: 0;
}

.tbh-mini-cart__count {
    font-family: var(--tbh-font-display);
    font-size: var(--tbh-text-sm);
    font-weight: var(--tbh-weight-medium);
    color: var(--tbh-pink);
    margin-left: var(--tbh-space-xs);
}

.tbh-mini-cart__close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background-color: var(--tbh-grey-100);
    border: none;
    cursor: pointer;
    color: var(--tbh-navy);
    transition: all var(--tbh-transition-fast);
    padding: 0;
}

.tbh-mini-cart__close:hover {
    background-color: var(--tbh-pink);
    color: var(--tbh-white);
}

.tbh-mini-cart__close svg {
    width: 20px;
    height: 20px;
}

.tbh-mini-cart__body {
    flex: 1;
    overflow-y: auto;
    padding: var(--tbh-space-lg);
    display: flex;
    flex-direction: column;
    gap: var(--tbh-space-lg);
    -webkit-overflow-scrolling: touch;
}

.tbh-mini-cart__items {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--tbh-space-md);
}

.tbh-mini-cart__item {
    border-bottom: 1px solid var(--tbh-grey-200);
    padding-bottom: var(--tbh-space-md);
}

.tbh-mini-cart__item:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.tbh-mini-cart__item-inner {
    display: flex;
    gap: var(--tbh-space-md);
}

.tbh-mini-cart__item-link {
    flex-shrink: 0;
    width: 72px;
    height: 72px;
    border-radius: var(--tbh-radius-lg);
    overflow: hidden;
    background-color: var(--tbh-grey-100);
    text-decoration: none;
}

.tbh-mini-cart__item-link img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--tbh-transition-base);
}

.tbh-mini-cart__item-link:hover img {
    transform: scale(1.05);
}

.tbh-mini-cart__item-details {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: var(--tbh-space-xs);
}

.tbh-mini-cart__item-name {
    font-family: var(--tbh-font-display);
    font-size: var(--tbh-text-sm);
    font-weight: var(--tbh-weight-semibold);
    color: var(--tbh-navy);
    line-height: var(--tbh-leading-snug);
    text-decoration: none;
    transition: color var(--tbh-transition-fast);
}

.tbh-mini-cart__item-name:hover {
    color: var(--tbh-pink);
}

.tbh-mini-cart__item-meta {
    font-size: var(--tbh-text-xs);
    color: var(--tbh-grey-600);
}

.tbh-mini-cart__item-meta dd {
    margin: 0;
    padding-left: var(--tbh-space-xs);
}

.tbh-mini-cart__item-personalisation {
    display: flex;
    flex-direction: column;
    gap: var(--tbh-space-2xs);
    margin-top: var(--tbh-space-xs);
    padding-top: var(--tbh-space-xs);
    border-top: 1px solid var(--tbh-grey-100);
}

.tbh-mini-cart__personalisation-row {
    display: flex;
    gap: var(--tbh-space-xs);
    font-size: var(--tbh-text-xs);
}

.tbh-mini-cart__personalisation-label {
    color: var(--tbh-grey-500);
    font-weight: var(--tbh-weight-medium);
    flex-shrink: 0;
}

.tbh-mini-cart__personalisation-value {
    color: var(--tbh-grey-700);
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tbh-mini-cart__personalisation-row--delivery {
    color: var(--tbh-navy);
}

.tbh-mini-cart__delivery-icon {
    flex-shrink: 0;
    color: var(--tbh-pink);
}

.tbh-mini-cart__delivery-window {
    color: var(--tbh-pink);
    font-weight: var(--tbh-weight-medium);
}

.tbh-mini-cart__item-controls {
    display: flex;
    align-items: center;
    gap: var(--tbh-space-md);
    flex-shrink: 0;
}

.tbh-mini-cart__quantity {
    display: flex;
    align-items: center;
    border: 1px solid var(--tbh-grey-300);
    border-radius: var(--tbh-radius-md);
    overflow: hidden;
    background-color: var(--tbh-white);
}

.tbh-mini-cart__qty-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background: none;
    border: none;
    cursor: pointer;
    color: var(--tbh-navy);
    transition: all var(--tbh-transition-fast);
    padding: 0;
}

.tbh-mini-cart__qty-btn:hover:not(:disabled) {
    background-color: var(--tbh-grey-100);
    color: var(--tbh-pink);
}

.tbh-mini-cart__qty-btn:disabled {
    opacity: 0.3;
    cursor: not-allowed;
}

.tbh-mini-cart__qty-input {
    width: 44px;
    height: 36px;
    text-align: center;
    font-family: var(--tbh-font-display);
    font-size: var(--tbh-text-sm);
    font-weight: var(--tbh-weight-semibold);
    color: var(--tbh-navy);
    border: none;
    border-left: 1px solid var(--tbh-grey-200);
    border-right: 1px solid var(--tbh-grey-200);
    background: var(--tbh-white);
    -moz-appearance: textfield;
}

.tbh-mini-cart__qty-input::-webkit-outer-spin-button,
.tbh-mini-cart__qty-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.tbh-mini-cart__item-price {
    font-family: var(--tbh-font-display);
    font-size: var(--tbh-text-sm);
    font-weight: var(--tbh-weight-bold);
    color: var(--tbh-navy);
    min-width: 60px;
    text-align: right;
}

.tbh-mini-cart__remove {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: var(--tbh-radius-md);
    background: none;
    border: none;
    cursor: pointer;
    color: var(--tbh-grey-400);
    transition: all var(--tbh-transition-fast);
    padding: 0;
}

.tbh-mini-cart__remove:hover {
    background-color: rgba(229, 57, 53, 0.08);
    color: var(--tbh-error);
}

.tbh-mini-cart__remove svg {
    width: 18px;
    height: 18px;
}

.tbh-mini-cart__subtotal {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--tbh-space-md) 0;
    border-top: 2px solid var(--tbh-grey-200);
    margin-top: var(--tbh-space-xs);
}

.tbh-mini-cart__subtotal-label {
    font-family: var(--tbh-font-display);
    font-size: var(--tbh-text-md);
    font-weight: var(--tbh-weight-semibold);
    color: var(--tbh-navy);
}

.tbh-mini-cart__subtotal-value {
    font-family: var(--tbh-font-display);
    font-size: var(--tbh-text-xl);
    font-weight: var(--tbh-weight-bold);
    color: var(--tbh-pink);
}

.tbh-mini-cart__progress {
    padding: var(--tbh-space-sm) 0;
    border-top: 1px solid var(--tbh-grey-100);
}

.tbh-mini-cart__progress-bar {
    height: 6px;
    background-color: var(--tbh-grey-200);
    border-radius: var(--tbh-radius-full);
    overflow: hidden;
    margin-bottom: var(--tbh-space-xs);
}

.tbh-mini-cart__progress-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--tbh-pink), var(--tbh-purple));
    border-radius: var(--tbh-radius-full);
    transition: width var(--tbh-transition-slow);
}

.tbh-mini-cart__progress-bar--complete .tbh-mini-cart__progress-fill {
    background: linear-gradient(90deg, var(--tbh-success), var(--tbh-mint));
}

.tbh-mini-cart__progress-text {
    font-size: var(--tbh-text-xs);
    color: var(--tbh-grey-600);
    margin: 0;
}

.tbh-mini-cart__progress-text--success {
    color: var(--tbh-success);
    font-weight: var(--tbh-weight-semibold);
}

.tbh-mini-cart__actions {
    display: flex;
    flex-direction: column;
    gap: var(--tbh-space-sm);
    margin-top: var(--tbh-space-sm);
    padding-top: var(--tbh-space-md);
    border-top: 1px solid var(--tbh-grey-200);
}

.tbh-mini-cart__btn-view-cart,
.tbh-mini-cart__btn-checkout {
    text-align: center;
    padding: var(--tbh-space-sm) var(--tbh-space-lg);
    border-radius: var(--tbh-radius-full);
    font-family: var(--tbh-font-display);
    font-size: var(--tbh-text-sm);
    font-weight: var(--tbh-weight-semibold);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    transition: all var(--tbh-transition-fast);
    text-decoration: none;
}

.tbh-mini-cart__btn-view-cart {
    background-color: var(--tbh-white);
    color: var(--tbh-navy);
    border: 2px solid var(--tbh-grey-300);
}

.tbh-mini-cart__btn-view-cart:hover {
    border-color: var(--tbh-pink);
    color: var(--tbh-pink);
}

.tbh-mini-cart__btn-checkout {
    background-color: var(--tbh-pink);
    color: var(--tbh-white);
    border: 2px solid var(--tbh-pink);
}

.tbh-mini-cart__btn-checkout:hover {
    background-color: var(--tbh-pink-dark);
    border-color: var(--tbh-pink-dark);
    box-shadow: var(--tbh-shadow-pink);
}

.tbh-mini-cart__empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: var(--tbh-space-3xl) var(--tbh-space-lg);
}

.tbh-mini-cart__empty-icon {
    color: var(--tbh-grey-300);
    margin-bottom: var(--tbh-space-lg);
}

.tbh-mini-cart__empty-title {
    font-family: var(--tbh-font-display);
    font-size: var(--tbh-text-lg);
    font-weight: var(--tbh-weight-semibold);
    color: var(--tbh-navy);
    margin: 0 0 var(--tbh-space-xs);
}

.tbh-mini-cart__empty-text {
    font-size: var(--tbh-text-sm);
    color: var(--tbh-grey-500);
    margin: 0 0 var(--tbh-space-lg);
    max-width: 240px;
}

.tbh-mini-cart__empty-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--tbh-space-xs);
    padding: var(--tbh-space-sm) var(--tbh-space-xl);
    background-color: var(--tbh-pink);
    color: var(--tbh-white);
    border: 2px solid var(--tbh-pink);
    border-radius: var(--tbh-radius-full);
    font-family: var(--tbh-font-display);
    font-size: var(--tbh-text-sm);
    font-weight: var(--tbh-weight-semibold);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    text-decoration: none;
    transition: all var(--tbh-transition-fast);
}

.tbh-mini-cart__empty-btn:hover {
    background-color: var(--tbh-pink-dark);
    border-color: var(--tbh-pink-dark);
    box-shadow: var(--tbh-shadow-pink);
}

/* ==========================================================
   8. CART PAGE
   ========================================================== */

.tbh-cart-page {
    padding: var(--tbh-space-2xl) 0 var(--tbh-space-4xl);
}

.tbh-cart-page .tbh-container {
    max-width: 1200px;
}

.tbh-cart-layout {
    display: grid;
    grid-template-columns: 1fr 400px;
    gap: var(--tbh-space-3xl);
    align-items: start;
}

.tbh-cart__title {
    font-family: var(--tbh-font-display);
    font-size: var(--tbh-text-3xl);
    font-weight: var(--tbh-weight-extrabold);
    color: var(--tbh-navy);
    margin-bottom: var(--tbh-space-xl);
}

.tbh-cart-table-wrapper {
    overflow-x: auto;
    border-radius: var(--tbh-radius-2xl);
    border: 1px solid var(--tbh-grey-200);
    background-color: var(--tbh-white);
}

.tbh-cart-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 700px;
}

.tbh-cart-table thead th {
    background-color: var(--tbh-grey-50);
    font-family: var(--tbh-font-display);
    font-size: var(--tbh-text-xs);
    font-weight: var(--tbh-weight-bold);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--tbh-grey-600);
    padding: var(--tbh-space-md) var(--tbh-space-lg);
    border-bottom: 1px solid var(--tbh-grey-200);
    text-align: left;
}

.tbh-cart-table th:first-child {
    width: 360px;
}

.tbh-cart-table th:nth-child(2),
.tbh-cart-table th:nth-child(3) {
    width: 120px;
    text-align: center;
}

.tbh-cart-table th:last-child {
    width: 60px;
    text-align: center;
}

.tbh-cart-table tbody tr {
    border-bottom: 1px solid var(--tbh-grey-100);
    transition: background-color var(--tbh-transition-fast);
}

.tbh-cart-table tbody tr:hover {
    background-color: var(--tbh-grey-50);
}

.tbh-cart-table tbody tr:last-child {
    border-bottom: none;
}

.tbh-cart-table td {
    padding: var(--tbh-space-md) var(--tbh-space-lg);
    vertical-align: middle;
}

.tbh-cart-table .product-thumbnail {
    width: 80px;
    height: 80px;
    border-radius: var(--tbh-radius-lg);
    overflow: hidden;
    flex-shrink: 0;
}

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

.tbh-cart-table .product-name {
    font-family: var(--tbh-font-display);
    font-size: var(--tbh-text-sm);
    font-weight: var(--tbh-weight-semibold);
    color: var(--tbh-navy);
    text-decoration: none;
    transition: color var(--tbh-transition-fast);
}

.tbh-cart-table .product-name:hover {
    color: var(--tbh-pink);
}

.tbh-cart-table .product-meta {
    font-size: var(--tbh-text-xs);
    color: var(--tbh-grey-600);
    margin-top: var(--tbh-space-2xs);
    display: flex;
    flex-direction: column;
    gap: var(--tbh-space-2xs);
}

.tbh-cart-table .product-price,
.tbh-cart-table .product-subtotal {
    font-family: var(--tbh-font-display);
    font-size: var(--tbh-text-base);
    font-weight: var(--tbh-weight-bold);
    color: var(--tbh-navy);
    text-align: center;
}

.tbh-cart-table .product-quantity {
    text-align: center;
}

.tbh-cart-table .product-remove {
    text-align: center;
}

.tbh-cart-table .product-remove a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    color: var(--tbh-grey-400);
    transition: all var(--tbh-transition-fast);
}

.tbh-cart-table .product-remove a:hover {
    background-color: rgba(229, 57, 53, 0.08);
    color: var(--tbh-error);
}

.tbh-cart-table .product-remove svg {
    width: 18px;
    height: 18px;
}

.tbh-cart-table .quantity {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--tbh-grey-300);
    border-radius: var(--tbh-radius-md);
    overflow: hidden;
    background-color: var(--tbh-white);
}

.tbh-cart-table .quantity .qty {
    width: 50px;
    height: 40px;
    text-align: center;
    font-family: var(--tbh-font-display);
    font-size: var(--tbh-text-sm);
    font-weight: var(--tbh-weight-semibold);
    color: var(--tbh-navy);
    border: none;
    background: var(--tbh-white);
    -moz-appearance: textfield;
}

.tbh-cart-table .quantity .qty::-webkit-outer-spin-button,
.tbh-cart-table .quantity .qty::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.tbh-cart-table .quantity .plus,
.tbh-cart-table .quantity .minus {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: none;
    border: none;
    cursor: pointer;
    color: var(--tbh-navy);
    transition: all var(--tbh-transition-fast);
}

.tbh-cart-table .quantity .plus:hover,
.tbh-cart-table .quantity .minus:hover {
    background-color: var(--tbh-grey-100);
    color: var(--tbh-pink);
}

/* Cart Totals Sidebar */
.tbh-cart-sidebar {
    position: sticky;
    top: 100px;
}

.tbh-cart-totals {
    background-color: var(--tbh-grey-50);
    border: 1px solid var(--tbh-grey-200);
    border-radius: var(--tbh-radius-2xl);
    padding: var(--tbh-space-xl);
}

.tbh-cart-totals__title {
    font-family: var(--tbh-font-display);
    font-size: var(--tbh-text-xl);
    font-weight: var(--tbh-weight-bold);
    color: var(--tbh-navy);
    margin-bottom: var(--tbh-space-lg);
    padding-bottom: var(--tbh-space-md);
    border-bottom: 1px solid var(--tbh-grey-200);
}

.tbh-cart-totals__rows {
    display: flex;
    flex-direction: column;
    gap: var(--tbh-space-sm);
    margin-bottom: var(--tbh-space-lg);
}

.tbh-cart-totals__row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: var(--tbh-text-sm);
}

.tbh-cart-totals__row--label {
    color: var(--tbh-grey-600);
}

.tbh-cart-totals__row--value {
    font-family: var(--tbh-font-display);
    font-weight: var(--tbh-weight-semibold);
    color: var(--tbh-navy);
}

.tbh-cart-totals__row--delivery .tbh-cart-totals__row--value {
    color: var(--tbh-pink);
}

.tbh-cart-totals__row--total {
    padding-top: var(--tbh-space-md);
    border-top: 2px solid var(--tbh-grey-200);
    margin-top: var(--tbh-space-sm);
}

.tbh-cart-totals__row--total .tbh-cart-totals__row--label {
    font-family: var(--tbh-font-display);
    font-size: var(--tbh-text-md);
    font-weight: var(--tbh-weight-bold);
    color: var(--tbh-navy);
}

.tbh-cart-totals__row--total .tbh-cart-totals__row--value {
    font-family: var(--tbh-font-display);
    font-size: var(--tbh-text-xl);
    font-weight: var(--tbh-weight-bold);
    color: var(--tbh-pink);
}

.tbh-cart-totals__progress {
    padding: var(--tbh-space-md) 0;
    border-top: 1px solid var(--tbh-grey-200);
    border-bottom: 1px solid var(--tbh-grey-200);
    margin: var(--tbh-space-md) 0;
}

.tbh-cart-totals__progress-bar {
    height: 8px;
    background-color: var(--tbh-grey-200);
    border-radius: var(--tbh-radius-full);
    overflow: hidden;
    margin-bottom: var(--tbh-space-xs);
}

.tbh-cart-totals__progress-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--tbh-pink), var(--tbh-purple));
    border-radius: var(--tbh-radius-full);
    transition: width var(--tbh-transition-slow);
}

.tbh-cart-totals__progress-text {
    font-size: var(--tbh-text-xs);
    color: var(--tbh-grey-600);
    text-align: center;
    margin: 0;
}

.tbh-cart-totals__progress-text--success {
    color: var(--tbh-success);
    font-weight: var(--tbh-weight-semibold);
}

.tbh-cart-totals__checkout {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--tbh-space-xs);
    width: 100%;
    padding: 1.1rem var(--tbh-space-2xl);
    background-color: var(--tbh-pink);
    color: var(--tbh-white);
    border: 2px solid var(--tbh-pink);
    border-radius: var(--tbh-radius-full);
    font-family: var(--tbh-font-display);
    font-size: var(--tbh-text-md);
    font-weight: var(--tbh-weight-bold);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    cursor: pointer;
    transition: all var(--tbh-transition-base);
    text-align: center;
    text-decoration: none;
    line-height: 1;
}

.tbh-cart-totals__checkout:hover {
    background-color: var(--tbh-pink-dark);
    border-color: var(--tbh-pink-dark);
    box-shadow: var(--tbh-shadow-pink);
    transform: translateY(-2px);
}

.tbh-cart-totals__note {
    font-size: var(--tbh-text-xs);
    color: var(--tbh-grey-500);
    text-align: center;
    margin-top: var(--tbh-space-md);
    line-height: var(--tbh-leading-relaxed);
}

.tbh-cart-totals__note a {
    color: var(--tbh-pink);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.tbh-cart-totals__note a:hover {
    text-decoration: none;
}

/* Empty Cart */
.tbh-cart-empty {
    text-align: center;
    padding: var(--tbh-space-4xl) var(--tbh-space-xl);
}

.tbh-cart-empty__icon {
    width: 120px;
    height: 120px;
    color: var(--tbh-grey-300);
    margin: 0 auto var(--tbh-space-xl);
}

.tbh-cart-empty__title {
    font-family: var(--tbh-font-display);
    font-size: var(--tbh-text-2xl);
    font-weight: var(--tbh-weight-bold);
    color: var(--tbh-navy);
    margin-bottom: var(--tbh-space-sm);
}

.tbh-cart-empty__text {
    font-size: var(--tbh-text-base);
    color: var(--tbh-grey-600);
    margin-bottom: var(--tbh-space-xl);
    max-width: 400px;
    margin-left: auto;
    margin-right: auto;
}

.tbh-cart-empty__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--tbh-space-xs);
    padding: var(--tbh-space-md) var(--tbh-space-2xl);
    background-color: var(--tbh-pink);
    color: var(--tbh-white);
    border: 2px solid var(--tbh-pink);
    border-radius: var(--tbh-radius-full);
    font-family: var(--tbh-font-display);
    font-size: var(--tbh-text-base);
    font-weight: var(--tbh-weight-semibold);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    text-decoration: none;
    transition: all var(--tbh-transition-fast);
}

.tbh-cart-empty__btn:hover {
    background-color: var(--tbh-pink-dark);
    border-color: var(--tbh-pink-dark);
    box-shadow: var(--tbh-shadow-pink);
}

/* ==========================================================
   9. CHECKOUT PAGE
   ========================================================== */

.tbh-checkout-page {
    padding: var(--tbh-space-2xl) 0 var(--tbh-space-4xl);
}

.tbh-checkout-page .tbh-container {
    max-width: 1200px;
}

.tbh-checkout-intro {
    max-width: 650px;
    margin: 0 auto var(--tbh-space-2xl);
    text-align: center;
}

.tbh-checkout-intro .tbh-eyebrow {
    color: var(--tbh-pink);
    font-family: var(--tbh-font-display);
    font-weight: var(--tbh-weight-bold);
    letter-spacing: .08em;
    text-transform: uppercase;
    font-size: var(--tbh-text-xs);
    margin-bottom: var(--tbh-space-xs);
}

.tbh-checkout-intro p:last-child {
    color: var(--tbh-grey-600);
    margin: 0;
}

.tbh-checkout-layout {
    display: grid;
    grid-template-columns: 1fr 420px;
    gap: var(--tbh-space-3xl);
    align-items: start;
}

.tbh-checkout__title {
    font-family: var(--tbh-font-display);
    font-size: var(--tbh-text-3xl);
    font-weight: var(--tbh-weight-extrabold);
    color: var(--tbh-navy);
    margin-bottom: var(--tbh-space-xl);
}

.tbh-checkout-form {
    background-color: var(--tbh-white);
	border: 1px solid var(--tbh-grey-200);
	border-radius: var(--tbh-radius-2xl);
	box-shadow: var(--tbh-shadow-xs);
	overflow: hidden;
}

.tbh-checkout-section {
    padding: var(--tbh-space-xl);
    border-bottom: 1px solid var(--tbh-grey-200);
}

.tbh-checkout-section:last-child {
    border-bottom: none;
}

.tbh-checkout-section__title {
    font-family: var(--tbh-font-display);
    font-size: var(--tbh-text-lg);
    font-weight: var(--tbh-weight-bold);
    color: var(--tbh-navy);
    margin-bottom: var(--tbh-space-lg);
    padding-bottom: var(--tbh-space-sm);
    border-bottom: 1px solid var(--tbh-grey-200);
}

.tbh-checkout-form .col2-set,
.tbh-checkout-form .col-1,
.tbh-checkout-form .col-2 {
    width: 100%;
    float: none;
}

.tbh-checkout-form h3 {
    font-family: var(--tbh-font-display);
    font-size: var(--tbh-text-xl);
    color: var(--tbh-navy);
    margin: 0 0 var(--tbh-space-lg);
}

.tbh-checkout-form .woocommerce-billing-fields,
.tbh-checkout-form .woocommerce-shipping-fields,
.tbh-checkout-form .woocommerce-additional-fields {
    padding: var(--tbh-space-xl);
}

.tbh-checkout-form .woocommerce-shipping-fields,
.tbh-checkout-form .woocommerce-additional-fields {
    border-top: 1px solid var(--tbh-grey-200);
}

.tbh-checkout-section__title svg {
    width: 20px;
    height: 20px;
    margin-right: var(--tbh-space-sm);
    color: var(--tbh-pink);
    vertical-align: middle;
}

/* Form fields */
.tbh-checkout-form .form-row {
    margin-bottom: var(--tbh-space-md);
}

.tbh-checkout-form .form-row:last-child {
    margin-bottom: 0;
}

.tbh-checkout-form .form-row-first,
.tbh-checkout-form .form-row-last {
    float: none;
    width: 100%;
}

.tbh-checkout-form label {
    display: block;
    font-family: var(--tbh-font-display);
    font-size: var(--tbh-text-sm);
    font-weight: var(--tbh-weight-semibold);
    color: var(--tbh-navy);
    margin-bottom: var(--tbh-space-2xs);
}

.tbh-checkout-form .required {
    color: var(--tbh-pink);
}

.tbh-checkout-form input.input-text,
.tbh-checkout-form textarea,
.tbh-checkout-form select {
    width: 100%;
    padding: var(--tbh-space-sm) var(--tbh-space-md);
    border: 1px solid var(--tbh-grey-300);
    border-radius: var(--tbh-radius-md);
    font-family: var(--tbh-font-body);
    font-size: var(--tbh-text-sm);
    color: var(--tbh-navy);
    background-color: var(--tbh-white);
    transition: border-color var(--tbh-transition-fast), box-shadow var(--tbh-transition-fast);
}

.tbh-checkout-form input.input-text:focus,
.tbh-checkout-form textarea:focus,
.tbh-checkout-form select:focus {
    outline: none;
    border-color: var(--tbh-pink);
    box-shadow: 0 0 0 3px rgba(232, 67, 107, 0.1);
}

.tbh-checkout-form input.input-text::placeholder,
.tbh-checkout-form textarea::placeholder {
    color: var(--tbh-grey-400);
}

.tbh-checkout-form textarea {
    min-height: 80px;
    resize: vertical;
}

/* Postcode validation state */
.tbh-checkout-form .form-row.is-validating input,
.tbh-checkout-form .form-row.is-validating select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23E8436B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpath d='M12 6v6l4 2'%3E%3C/path%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 20px 20px;
}

.tbh-checkout-form .form-row.is-valid input,
.tbh-checkout-form .form-row.is-valid select {
    border-color: var(--tbh-success);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%234CAF50' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 20px 20px;
}

.tbh-checkout-form .form-row.is-invalid input,
.tbh-checkout-form .form-row.is-invalid select {
    border-color: var(--tbh-error);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23E53935' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='15' y1='9' x2='9' y2='15'%3E%3C/line%3E%3Cline x1='9' y1='9' x2='15' y2='15'%3E%3C/line%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 20px 20px;
}

.tbh-checkout-form .field-validation-message {
    display: none;
    font-size: var(--tbh-text-xs);
    margin-top: var(--tbh-space-2xs);
    padding: var(--tbh-space-xs) var(--tbh-space-sm);
    border-radius: var(--tbh-radius-sm);
}

.tbh-checkout-form .form-row.is-invalid .field-validation-message {
    display: block;
    color: var(--tbh-error);
    background-color: rgba(229, 57, 53, 0.08);
}

.tbh-checkout-form .form-row.is-valid .field-validation-message {
    display: block;
    color: var(--tbh-success);
    background-color: rgba(76, 175, 80, 0.08);
}

/* Delivery date picker */
.tbh-checkout-form .delivery-date-wrapper {
    position: relative;
}

.tbh-checkout-form .delivery-date-wrapper .field-validation-message {
    position: absolute;
    bottom: -28px;
    left: 0;
    right: 0;
    z-index: 1;
}

/* Checkout Sidebar / Order Review */
.tbh-checkout-sidebar {
    position: sticky;
    top: 100px;
}

.tbh-checkout-review {
    background-color: var(--tbh-white);
    border: 1px solid var(--tbh-grey-200);
    border-radius: var(--tbh-radius-2xl);
    padding: var(--tbh-space-xl);
    box-shadow: var(--tbh-shadow-sm);
}

.tbh-checkout-review__title {
    font-family: var(--tbh-font-display);
    font-size: var(--tbh-text-xl);
    font-weight: var(--tbh-weight-bold);
    color: var(--tbh-navy);
    margin-bottom: var(--tbh-space-lg);
    padding-bottom: var(--tbh-space-md);
    border-bottom: 1px solid var(--tbh-grey-200);
}

.tbh-checkout-review__items {
    margin-bottom: var(--tbh-space-lg);
    max-height: 300px;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.tbh-checkout-review__item {
    display: flex;
    gap: var(--tbh-space-md);
    padding: var(--tbh-space-md) 0;
    border-bottom: 1px solid var(--tbh-grey-100);
}

.tbh-checkout-review__item:last-child {
    border-bottom: none;
}

.tbh-checkout-review__item-image {
    flex-shrink: 0;
    width: 60px;
    height: 60px;
    border-radius: var(--tbh-radius-lg);
    overflow: hidden;
    background-color: var(--tbh-grey-100);
}

.tbh-checkout-review__item-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.tbh-checkout-review__item-details {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: var(--tbh-space-2xs);
}

.tbh-checkout-review__item-name {
    font-family: var(--tbh-font-display);
    font-size: var(--tbh-text-sm);
    font-weight: var(--tbh-weight-semibold);
    color: var(--tbh-navy);
    line-height: var(--tbh-leading-snug);
}

.tbh-checkout-review__item-meta {
    font-size: var(--tbh-text-xs);
    color: var(--tbh-grey-600);
}

.tbh-checkout-review__item-qty-price {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: var(--tbh-space-2xs);
}

.tbh-checkout-review__item-qty {
    font-size: var(--tbh-text-xs);
    color: var(--tbh-grey-500);
}

.tbh-checkout-review__item-price {
    font-family: var(--tbh-font-display);
    font-size: var(--tbh-text-sm);
    font-weight: var(--tbh-weight-bold);
    color: var(--tbh-navy);
}

.tbh-checkout-review__totals {
    border-top: 2px solid var(--tbh-grey-200);
    padding-top: var(--tbh-space-lg);
}

.tbh-checkout-review__total-row {
    display: flex;
    justify-content: space-between;
    margin-bottom: var(--tbh-space-sm);
    font-size: var(--tbh-text-sm);
}

.tbh-checkout-review__total-row--label {
    color: var(--tbh-grey-600);
}

.tbh-checkout-review__total-row--value {
    font-family: var(--tbh-font-display);
    font-weight: var(--tbh-weight-semibold);
    color: var(--tbh-navy);
}

.tbh-checkout-review__total-row--delivery .tbh-checkout-review__total-row--value {
    color: var(--tbh-pink);
}

.tbh-checkout-review__total-row--grand {
    padding-top: var(--tbh-space-md);
    border-top: 2px solid var(--tbh-grey-200);
    margin-top: var(--tbh-space-sm);
    font-size: var(--tbh-text-md);
}

.tbh-checkout-review__total-row--grand .tbh-checkout-review__total-row--label {
    font-family: var(--tbh-font-display);
    font-weight: var(--tbh-weight-bold);
    color: var(--tbh-navy);
}

.tbh-checkout-review__total-row--grand .tbh-checkout-review__total-row--value {
    font-family: var(--tbh-font-display);
    font-size: var(--tbh-text-lg);
    font-weight: var(--tbh-weight-bold);
    color: var(--tbh-pink);
}

.tbh-checkout-review__place-order {
    margin-top: var(--tbh-space-lg);
}

.tbh-checkout-review__place-order-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--tbh-space-xs);
    width: 100%;
    padding: 1.1rem var(--tbh-space-2xl);
    background-color: var(--tbh-pink);
    color: var(--tbh-white);
    border: 2px solid var(--tbh-pink);
    border-radius: var(--tbh-radius-full);
    font-family: var(--tbh-font-display);
    font-size: var(--tbh-text-md);
    font-weight: var(--tbh-weight-bold);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    cursor: pointer;
    transition: all var(--tbh-transition-base);
    text-decoration: none;
    line-height: 1;
}

.tbh-checkout-review__place-order-btn:hover:not(:disabled) {
    background-color: var(--tbh-pink-dark);
    border-color: var(--tbh-pink-dark);
    box-shadow: var(--tbh-shadow-pink);
    transform: translateY(-2px);
}

.tbh-checkout-review__place-order-btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none;
}

.tbh-checkout-review__terms {
    font-size: var(--tbh-text-xs);
    color: var(--tbh-grey-500);
    text-align: center;
    margin-top: var(--tbh-space-md);
    line-height: var(--tbh-leading-relaxed);
}

.tbh-checkout-review__terms a {
    color: var(--tbh-pink);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.tbh-checkout-review__terms a:hover {
    text-decoration: none;
}

.tbh-checkout-review__secure {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--tbh-space-xs);
    font-size: var(--tbh-text-xs);
    color: var(--tbh-grey-500);
    margin-top: var(--tbh-space-md);
}

.tbh-checkout-review__secure svg {
    width: 16px;
    height: 16px;
    color: var(--tbh-success);
}

.tbh-checkout-review table.shop_table {
    margin: 0;
    border: 0 !important;
    border-radius: 0 !important;
}

.tbh-checkout-review table.shop_table th,
.tbh-checkout-review table.shop_table td {
    padding: var(--tbh-space-sm) 0 !important;
}

.tbh-checkout-review .woocommerce-checkout-payment {
    background: transparent;
    border-top: 1px solid var(--tbh-grey-200);
    border-radius: 0;
    margin-top: var(--tbh-space-md);
    padding-top: var(--tbh-space-md);
}

.tbh-checkout-review #place_order {
    width: 100%;
    min-height: 54px;
    margin-top: var(--tbh-space-md);
    border-radius: var(--tbh-radius-full);
    background: var(--tbh-pink);
    font-family: var(--tbh-font-display);
    font-weight: var(--tbh-weight-bold);
    text-transform: uppercase;
    letter-spacing: .04em;
}

.tbh-checkout-trust {
    margin: var(--tbh-space-md) 0 0;
    text-align: center;
    color: var(--tbh-grey-500);
    font-size: var(--tbh-text-xs);
}

.tbh-checkout-trust span { color: var(--tbh-pink); }

/* Product purchase panel: keep the real WooCommerce add-to-cart form as the single source of quantity. */
.tbh-pdp-info {
    position: relative;
    padding: clamp(1.25rem, 2.4vw, 2.25rem);
    background: var(--tbh-white);
    border: 1px solid var(--tbh-grey-200);
    border-radius: var(--tbh-radius-2xl);
    box-shadow: var(--tbh-shadow-xs);
}

/* Product summary is a purchase panel fed entirely by the current WooCommerce product. */
.tbh-pdp-info__category {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin: 0 3.5rem var(--tbh-space-sm) 0;
}

.tbh-pdp-info__category a {
    color: var(--tbh-pink);
    font-family: var(--tbh-font-display);
    font-size: var(--tbh-text-xs);
    font-weight: var(--tbh-weight-bold);
    letter-spacing: .08em;
    text-decoration: none;
    text-transform: uppercase;
}

.tbh-pdp-info__utility {
    position: absolute;
    top: var(--tbh-space-lg);
    right: var(--tbh-space-lg);
    display: flex;
    gap: var(--tbh-space-xs);
    z-index: 1;
}

.tbh-pdp-info__utility .tbh-pdp-wishlist-btn,
.tbh-pdp-info__utility .tbh-pdp-share-btn {
    position: static;
}

.tbh-pdp-share-btn.is-copied {
    background-color: var(--tbh-success);
    border-color: var(--tbh-success);
    color: var(--tbh-white);
}

.tbh-pdp-share-btn:focus-visible {
    outline: 3px solid var(--tbh-yellow);
    outline-offset: 2px;
}

.tbh-pdp-info__cart-actions form.cart::before {
    content: 'Quantity';
    grid-column: 1 / -1;
    color: var(--tbh-grey-600);
    font-family: var(--tbh-font-display);
    font-size: var(--tbh-text-xs);
    font-weight: var(--tbh-weight-bold);
    letter-spacing: .06em;
    text-transform: uppercase;
}

.tbh-pdp-info__personalisation .tbh-gift-addons {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--tbh-space-sm);
    margin: 0 0 var(--tbh-space-lg);
    padding: var(--tbh-space-md);
    border: 1px solid rgba(232, 67, 107, .18);
    border-radius: var(--tbh-radius-lg);
    background: rgba(232, 67, 107, .045);
}

.tbh-pdp-info__personalisation .tbh-gift-addons legend {
    width: auto;
    padding: 0 .3rem;
    color: var(--tbh-navy);
    font-family: var(--tbh-font-display);
    font-size: var(--tbh-text-sm);
    font-weight: var(--tbh-weight-bold);
}

.tbh-pdp-info__personalisation .tbh-gift-addons label {
    display: flex;
    align-items: center;
    gap: .45rem;
    color: var(--tbh-grey-700);
    font-size: var(--tbh-text-sm);
}

.tbh-pdp-info__personalisation .tbh-gift-addons input[type="checkbox"] {
    accent-color: var(--tbh-pink);
}

.tbh-pdp-info__personalisation .tbh-gift-addons input[type="text"] {
    width: 100%;
    margin-top: .25rem;
    border: 1px solid var(--tbh-grey-300);
    border-radius: var(--tbh-radius-sm);
    padding: .6rem .7rem;
}

/* Product personalisation fields — always usable within the add-to-cart form. */
.tbh-personalisation-fields { width:100%; margin:0 0 18px; padding:18px; border:1px solid rgba(26,31,54,.13); border-radius:16px; background:linear-gradient(135deg,#fff 0%,#fff8f3 100%); }
.tbh-personalisation-fields legend { width:auto; padding:0 6px; color:var(--tbh-navy); font:800 18px var(--tbh-font-display); }.tbh-personalisation-fields legend small { color:var(--tbh-pink); font:600 11px var(--tbh-font-body); }.tbh-personalisation-fields__intro { margin:0 0 14px; color:var(--tbh-grey-600); font-size:13px; }.tbh-personalisation-fields__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }.tbh-personalisation-fields__field { margin:0; }.tbh-personalisation-fields__field--textarea { grid-column:1/-1; }.tbh-personalisation-fields__field label { display:block; margin:0 0 6px; color:var(--tbh-navy); font:700 12px var(--tbh-font-display); }.tbh-personalisation-fields input,.tbh-personalisation-fields textarea,.tbh-personalisation-fields select { width:100%; box-sizing:border-box; border:1px solid var(--tbh-grey-300); border-radius:9px; background:#fff; color:var(--tbh-navy); padding:10px 11px; font:400 14px var(--tbh-font-body); }.tbh-personalisation-fields textarea { resize:vertical; min-height:72px; }.tbh-personalisation-fields input:focus,.tbh-personalisation-fields textarea:focus,.tbh-personalisation-fields select:focus { border-color:var(--tbh-pink); outline:3px solid rgba(232,67,107,.14); }.tbh-personalisation-fields select { cursor:pointer; }
@media (max-width:520px) { .tbh-personalisation-fields { padding:15px; }.tbh-personalisation-fields__grid { grid-template-columns:1fr; }.tbh-personalisation-fields__field--textarea { grid-column:auto; } }

/* Current product-template accordion and recommendation markup. */
.tbh-pdp-accordions {
    max-width: 980px;
    margin: var(--tbh-space-4xl) auto 0;
    border-top: 1px solid var(--tbh-grey-200);
}

.tbh-pdp-accordion { border-bottom: 1px solid var(--tbh-grey-200); }

.tbh-pdp-accordion__heading { margin: 0; }

.tbh-pdp-accordion__trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 1.2rem .25rem;
    border: 0;
    background: transparent;
    color: var(--tbh-navy);
    cursor: pointer;
    font-family: var(--tbh-font-display);
    font-size: clamp(1rem, 1.7vw, 1.25rem);
    font-weight: var(--tbh-weight-bold);
    text-align: left;
}

.tbh-pdp-accordion__trigger:hover,
.tbh-pdp-accordion__trigger:focus-visible { color: var(--tbh-pink); outline: none; }
.tbh-pdp-accordion__trigger:focus-visible { box-shadow: inset 0 0 0 2px var(--tbh-pink); border-radius: var(--tbh-radius-sm); }
.tbh-pdp-accordion__icon { flex: 0 0 auto; transition: transform .2s ease; }
.tbh-pdp-accordion__trigger[aria-expanded="true"] .tbh-pdp-accordion__icon { transform: rotate(180deg); }
.tbh-pdp-accordion__panel { display: none; padding: 0 .25rem 1.25rem; }
.tbh-pdp-accordion__trigger[aria-expanded="true"] + .tbh-pdp-accordion__panel { display: block; }
.tbh-pdp-accordion__content { max-width: 72ch; color: var(--tbh-grey-700); font-size: var(--tbh-text-base); line-height: 1.65; }

.tbh-pdp-related { margin-top: var(--tbh-space-4xl); padding: var(--tbh-space-3xl) 0; border-top: 1px solid var(--tbh-grey-200); }
.tbh-pdp-related__heading { margin: 0 0 var(--tbh-space-xl); color: var(--tbh-navy); font-family: var(--tbh-font-display); font-size: clamp(2rem,4vw,3.25rem); line-height: .95; }
.tbh-pdp-related__grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: var(--tbh-space-lg); }
.tbh-pdp-related__item { min-width: 0; overflow: hidden; border: 1px solid var(--tbh-grey-200); border-radius: var(--tbh-radius-xl); background: var(--tbh-white); transition: transform .2s ease, box-shadow .2s ease; }
.tbh-pdp-related__item:hover { transform: translateY(-4px); box-shadow: var(--tbh-shadow-card-hover); }
.tbh-pdp-related__link { display:block; color:inherit; text-decoration:none; }
.tbh-pdp-related__image { aspect-ratio: 1 / 1; overflow:hidden; background:var(--tbh-grey-100); }
.tbh-pdp-related__image img { width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.tbh-pdp-related__item:hover img { transform:scale(1.04); }
.tbh-pdp-related__details { padding: var(--tbh-space-md); }
.tbh-pdp-related__name { margin:0 0 .4rem; color:var(--tbh-navy); font-family:var(--tbh-font-display); font-size:var(--tbh-text-md); line-height:1.1; }
.tbh-pdp-related__price { color:var(--tbh-pink); font-family:var(--tbh-font-display); font-size:var(--tbh-text-lg); font-weight:var(--tbh-weight-bold); }
.tbh-product-card__title-link { color: inherit; text-decoration: none; }
.tbh-product-card__title-link:hover, .tbh-product-card__title-link:focus-visible { color: var(--tbh-pink); text-decoration: none; }

.tbh-lightbox-open { overflow: hidden; }
.tbh-product-lightbox { position: fixed; z-index: 99999; inset: 0; display:flex; align-items:center; justify-content:center; padding:clamp(1rem,4vw,4rem); background:rgba(10,14,34,.92); cursor:zoom-out; animation:tbh-lightbox-in .18s ease-out; }
.tbh-product-lightbox img { max-width:100%; max-height:100%; object-fit:contain; border-radius:var(--tbh-radius-lg); box-shadow:0 24px 70px rgba(0,0,0,.45); cursor:default; }
.tbh-product-lightbox__close { position:absolute; top:1.25rem; right:1.25rem; width:48px; height:48px; border:0; border-radius:50%; background:var(--tbh-white); color:var(--tbh-navy); cursor:pointer; font-size:2rem; line-height:1; }
.tbh-product-lightbox__close:hover,.tbh-product-lightbox__close:focus-visible { background:var(--tbh-pink); color:var(--tbh-white); outline:2px solid var(--tbh-white); }
@keyframes tbh-lightbox-in { from { opacity:0; } to { opacity:1; } }
@media (max-width: 800px) { .tbh-pdp-related__grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--tbh-space-md); } .tbh-pdp-accordions { margin-top:var(--tbh-space-2xl); } }

/* The add-on hook is rendered inside WooCommerce's cart form. Do not show an
   empty fieldset when this product has no add-ons enabled in WooCommerce. */
.tbh-gift-addons:not(:has(label)) {
    display: none !important;
}

form.cart .tbh-gift-addons:has(label) {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--tbh-space-sm);
    margin: 0 0 var(--tbh-space-sm);
    padding: var(--tbh-space-md);
    border: 1px solid rgba(232, 67, 107, .18);
    border-radius: var(--tbh-radius-lg);
    background: rgba(232, 67, 107, .045);
}

form.cart .tbh-gift-addons:has(label) legend {
    padding: 0 .3rem;
    color: var(--tbh-navy);
    font-family: var(--tbh-font-display);
    font-size: var(--tbh-text-sm);
    font-weight: var(--tbh-weight-bold);
}

.tbh-pdp-info__cart-actions form.cart {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: var(--tbh-space-sm);
    align-items: stretch;
}

.tbh-pdp-info__cart-actions form.cart .quantity {
    margin: 0;
}

.tbh-pdp-info__cart-actions form.cart .qty {
    min-height: 52px;
    width: 4.5rem;
    border: 1px solid var(--tbh-grey-300);
    border-radius: var(--tbh-radius-lg);
    text-align: center;
    font: var(--tbh-weight-bold) var(--tbh-text-base) var(--tbh-font-display);
}

.tbh-pdp-info__cart-actions form.cart .single_add_to_cart_button {
    min-height: 52px;
    margin: 0 !important;
}

@media (max-width: 600px) {
    .tbh-checkout-page { padding-top: var(--tbh-space-xl); }
    .tbh-checkout-form .woocommerce-billing-fields,
    .tbh-checkout-form .woocommerce-shipping-fields,
    .tbh-checkout-form .woocommerce-additional-fields { padding: var(--tbh-space-lg); }
    .tbh-pdp-info { padding: var(--tbh-space-lg); }
    .tbh-pdp-info__personalisation .tbh-gift-addons { grid-template-columns: 1fr; }
}

/* Payment Methods */
.tbh-checkout-payment {
    margin-top: var(--tbh-space-xl);
    padding-top: var(--tbh-space-xl);
    border-top: 1px solid var(--tbh-grey-200);
}

.tbh-checkout-payment__methods {
    display: flex;
    flex-direction: column;
    gap: var(--tbh-space-md);
}

.tbh-checkout-payment__method {
    display: flex;
    align-items: center;
    gap: var(--tbh-space-md);
    padding: var(--tbh-space-md) var(--tbh-space-lg);
    border: 2px solid var(--tbh-grey-200);
    border-radius: var(--tbh-radius-lg);
    cursor: pointer;
    transition: all var(--tbh-transition-fast);
}

.tbh-checkout-payment__method:hover {
    border-color: var(--tbh-pink);
    background-color: rgba(232, 67, 107, 0.03);
}

.tbh-checkout-payment__method input[type="radio"] {
    width: 20px;
    height: 20px;
    accent-color: var(--tbh-pink);
    flex-shrink: 0;
}

.tbh-checkout-payment__method input[type="radio"]:checked + .tbh-checkout-payment__method-label {
    color: var(--tbh-pink);
}

.tbh-checkout-payment__method:has(input:checked) {
    border-color: var(--tbh-pink);
    background-color: rgba(232, 67, 107, 0.05);
}

.tbh-checkout-payment__method-label {
    font-family: var(--tbh-font-display);
    font-size: var(--tbh-text-sm);
    font-weight: var(--tbh-weight-semibold);
    color: var(--tbh-navy);
    margin: 0;
    flex: 1;
    cursor: pointer;
}

.tbh-checkout-payment__method-icon {
    width: 40px;
    height: 24px;
    flex-shrink: 0;
}

.tbh-checkout-payment__details {
    padding: var(--tbh-space-md) var(--tbh-space-lg);
    background-color: var(--tbh-grey-50);
    border-radius: var(--tbh-radius-lg);
    border: 1px solid var(--tbh-grey-200);
    animation: tbh-slide-down 0.2s ease;
}

@keyframes tbh-slide-down {
    from {
        opacity: 0;
        transform: translateY(-8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* WooCommerce errors on checkout */
.tbh-checkout-page .woocommerce-error,
.tbh-checkout-page .woocommerce-notices-wrapper .woocommerce-error {
    background-color: rgba(229, 57, 53, 0.08) !important;
    border-color: rgba(229, 57, 53, 0.2) !important;
    color: var(--tbh-navy) !important;
    border-radius: var(--tbh-radius-lg) !important;
    padding: var(--tbh-space-md) var(--tbh-space-lg) !important;
    margin-bottom: var(--tbh-space-lg) !important;
    font-family: var(--tbh-font-body) !important;
    font-size: var(--tbh-text-sm) !important;
    box-shadow: var(--tbh-shadow-sm) !important;
}

.tbh-checkout-page .woocommerce-error li {
    margin: 0;
    padding: var(--tbh-space-xs) 0;
}

.tbh-checkout-page .woocommerce-error::before {
    color: var(--tbh-error) !important;
}

/* ==========================================================
   10. RESPONSIVE - CART & CHECKOUT
   ========================================================== */

@media (max-width: 1024px) {
    .tbh-cart-layout,
    .tbh-checkout-layout {
        grid-template-columns: 1fr;
    }

    .tbh-cart-sidebar,
    .tbh-checkout-sidebar {
        position: static;
        order: -1;
    }

    .tbh-cart-totals,
    .tbh-checkout-review {
        max-width: 100%;
    }

    .tbh-checkout-review__items {
        max-height: none;
    }
}

@media (max-width: 768px) {
    .tbh-cart-page,
    .tbh-checkout-page {
        padding: var(--tbh-space-lg) 0 var(--tbh-space-3xl);
    }

    .tbh-cart__title,
    .tbh-checkout__title {
        font-size: var(--tbh-text-2xl);
    }

    .tbh-cart-table-wrapper {
        border-radius: var(--tbh-radius-xl);
    }

    .tbh-cart-table {
        min-width: 100%;
    }

    .tbh-cart-table thead {
        display: none;
    }

    .tbh-cart-table tbody,
    .tbh-cart-table tr,
    .tbh-cart-table td {
        display: block;
        width: 100%;
    }

    .tbh-cart-table tr {
        padding: var(--tbh-space-lg);
        border-bottom: 1px solid var(--tbh-grey-200);
        border-radius: var(--tbh-radius-xl);
        background-color: var(--tbh-white);
        box-shadow: var(--tbh-shadow-xs);
    }

    .tbh-cart-table tbody {
        display: flex;
        flex-direction: column;
        gap: var(--tbh-space-md);
    }

    .tbh-cart-table td {
        padding: var(--tbh-space-xs) 0;
        border: none;
    }

    .tbh-cart-table .product-thumbnail {
        width: 64px;
        height: 64px;
        margin-bottom: var(--tbh-space-sm);
    }

    .tbh-cart-table .product-name {
        display: block;
        margin-bottom: var(--tbh-space-xs);
    }

    .tbh-cart-table .product-meta {
        margin-bottom: var(--tbh-space-md);
    }

    .tbh-cart-table .product-price,
    .tbh-cart-table .product-quantity,
    .tbh-cart-table .product-subtotal,
    .tbh-cart-table .product-remove {
        display: inline-flex;
        align-items: center;
        margin-right: var(--tbh-space-lg);
    }

    .tbh-cart-table .product-remove {
        margin-right: 0;
    }

    .tbh-checkout-section {
        padding: var(--tbh-space-lg);
    }

    .tbh-checkout-review {
        padding: var(--tbh-space-lg);
    }

    .tbh-checkout-review__item {
        gap: var(--tbh-space-sm);
    }

    .tbh-checkout-review__item-image {
        width: 52px;
        height: 52px;
    }

    .tbh-checkout-payment__method {
        padding: var(--tbh-space-sm) var(--tbh-space-md);
    }
}

/* ==========================================================
   11. PRINT STYLES
   ========================================================== */

@media print {
    .tbh-pdp-sticky-bar,
    .tbh-mobile-filter-toggle,
    .tbh-filter-drawer,
    .tbh-filter-drawer-overlay,
    .tbh-quickview-overlay,
    .tbh-pdp-wishlist-btn,
    .tbh-wishlist-btn,
    .tbh-pdp-buy-now,
    .tbh-mini-cart,
    .tbh-cart-table .product-remove,
    .tbh-cart-table .quantity,
    .tbh-checkout-review__place-order-btn {
        display: none !important;
    }

    .tbh-pdp-gallery,
    .tbh-collection-sidebar {
        position: static !important;
    }

    .tbh-collection-grid,
    .woocommerce ul.products,
    .woocommerce .products ul.products {
        grid-template-columns: repeat(3, 1fr) !important;
    }
}

/* ==========================================================
   PRODUCT EXPERIENCE V2 — reference-led catalogue and PDP
   ========================================================== */
:root { --tbh-v2-navy:#12346b; --tbh-v2-pink:#f52873; --tbh-v2-blush:#fff2f7; --tbh-v2-mint:#dff9f4; }

/* Collection hero */
.tbh-collection-hero { position:relative; overflow:hidden; height:390px; min-height:390px; margin:0; padding:0; background:linear-gradient(115deg,#fff2f7 0%,#fff9fb 52%,#e6fbf8 100%); color:var(--tbh-v2-navy); }
.tbh-collection-hero::before,.tbh-collection-hero::after,.tbh-pdp::before,.tbh-pdp::after { position:absolute; z-index:0; width:190px; height:420px; background:radial-gradient(ellipse at 40% 15%,rgba(86,221,204,.35) 0 21%,transparent 22%),radial-gradient(ellipse at 75% 41%,rgba(249,127,171,.25) 0 21%,transparent 22%),radial-gradient(ellipse at 34% 70%,rgba(255,216,102,.25) 0 21%,transparent 22%); content:''; pointer-events:none; }
.tbh-collection-hero::before { left:-105px; top:-60px; transform:rotate(15deg); }
.tbh-collection-hero::after { right:-110px; bottom:-115px; transform:rotate(195deg); }
.tbh-collection-hero__layout { position:relative; z-index:1; display:grid; grid-template-columns:minmax(340px,.82fr) minmax(480px,1.18fr); align-items:stretch; height:390px; min-height:390px; }
.tbh-collection-hero__content { display:flex; flex-direction:column; justify-content:center; max-width:570px; padding:52px clamp(28px,5vw,78px) 52px 14px; text-align:left; }
.tbh-collection-hero__eyebrow { margin:0 0 14px; color:var(--tbh-v2-pink); font:900 11px/1 var(--tbh-font-display); letter-spacing:.15em; text-transform:uppercase; }
.tbh-collection-hero__title { max-width:570px; margin:0; color:var(--tbh-v2-navy); font:900 clamp(3.2rem,5.5vw,6rem)/.85 var(--tbh-font-display); letter-spacing:-.065em; text-transform:uppercase; text-shadow:none; }
.tbh-collection-hero__script { margin:15px 0 20px; color:var(--tbh-v2-pink); font:700 clamp(2rem,3.4vw,3.6rem)/.8 var(--tbh-font-accent); transform:rotate(-2deg); }
.tbh-collection-hero__description { max-width:480px; margin:0; color:#4d6382; font-size:15px; line-height:1.55; }
.tbh-collection-hero__description p { margin:0; }
.tbh-collection-hero__visual { position:relative; height:390px; min-height:390px; overflow:hidden; clip-path:polygon(9% 0,100% 0,100% 100%,0 100%); }
.tbh-collection-hero__visual::after { position:absolute; inset:0; background:linear-gradient(90deg,rgba(255,249,251,.38),transparent 26%); content:''; }
.tbh-collection-hero__visual img { width:100%; height:100%; object-fit:cover; object-position:center; }

/* Catalogue layout, filters and card grid */
.tbh-collection-page { padding:26px 0 80px; background:linear-gradient(180deg,#fffaf7,#fff 40%); }
.tbh-collection-breadcrumbs { margin-bottom:24px; }
.tbh-collection-breadcrumbs .woocommerce-breadcrumb { display:inline-flex; align-items:center; min-height:36px; padding:0 15px; border:1px solid #e8eaf0; border-radius:99px; background:#fff; color:#65758e; font-size:12px; box-shadow:0 4px 14px rgba(18,52,107,.05); }
.tbh-collection-layout { grid-template-columns:230px minmax(0,1fr); gap:28px; }
.tbh-collection-sidebar { position:sticky; top:112px; overflow:hidden; height:max-content; padding:8px 20px; border:1px solid #e2e6ee; border-radius:20px; background:#fff; box-shadow:0 10px 30px rgba(18,52,107,.055); }
.tbh-filter-group { padding:18px 0; border-bottom:1px solid #e9ebf0; }
.tbh-filter-group:last-child { border-bottom:0; }
.tbh-filter-group__title { margin:0 0 11px; color:var(--tbh-v2-navy); font:800 14px/1.2 var(--tbh-font-display); }
.tbh-filter-checklist__label,.tbh-filter-widget { color:#5b6c84; font-size:12px; }
.tbh-collection-toolbar { min-height:48px; margin:0 0 17px; padding:0; border:0; background:transparent; }
.tbh-collection-toolbar__count,.tbh-collection-toolbar .woocommerce-result-count { color:#65758e; font-size:12px; }
.tbh-collection-toolbar select { min-width:185px; height:42px; padding:0 42px 0 16px; border:1px solid #dfe3eb; border-radius:99px; background-color:#fff; color:var(--tbh-v2-navy); font-weight:700; }
.tbh-collection-main .woocommerce ul.products,.tbh-collection-main ul.products { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; margin:0; }
.tbh-collection-main ul.products::before,.tbh-collection-main ul.products::after { display:none; }
.woocommerce .tbh-collection-main ul.products li.product.tbh-product-card { display:flex; float:none!important; flex-direction:column; width:auto!important; min-width:0; margin:0!important; overflow:hidden; border:1px solid #e1e5ed; border-radius:18px; background:#fff; box-shadow:0 8px 20px rgba(18,52,107,.07); transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease; }
.woocommerce .tbh-collection-main ul.products li.product.tbh-product-card:hover { border-color:#f4b7ce; box-shadow:0 15px 34px rgba(18,52,107,.12); transform:translateY(-4px); }
.tbh-collection-main .tbh-product-card__image-wrap { overflow:hidden; aspect-ratio:1/1.04; border-radius:0; background:#f4f4f3; }
.tbh-collection-main .tbh-product-card__image-wrap img { width:100%; height:100%; margin:0!important; object-fit:cover; transition:transform .45s ease; }
.tbh-collection-main .tbh-product-card:hover .tbh-product-card__image-wrap img { transform:scale(1.035); }
.tbh-collection-main .tbh-product-card__actions { top:12px; right:12px; display:flex; flex-direction:column; gap:7px; opacity:1; transform:none; }
.tbh-collection-main .tbh-product-card__action-btn { display:grid; width:34px; height:34px; padding:0; place-items:center; border:1px solid rgba(18,52,107,.1); border-radius:50%; background:rgba(255,255,255,.94); color:var(--tbh-v2-navy); box-shadow:0 4px 12px rgba(18,52,107,.09); }
.tbh-collection-main .tbh-product-card__action-btn:hover,.tbh-collection-main .tbh-product-card__action-btn[aria-pressed="true"] { border-color:var(--tbh-v2-pink); background:var(--tbh-v2-pink); color:#fff; }
.tbh-collection-main .tbh-product-card__info { display:flex; flex:1; flex-direction:column; padding:17px 16px 15px; }
.tbh-collection-main .tbh-product-card__title { min-height:3.6em; margin:0 0 9px!important; padding:0!important; color:#101d3e; font:800 14px/1.25 var(--tbh-font-display)!important; }
.tbh-collection-main .tbh-product-card__price { margin:auto 0 14px; color:var(--tbh-v2-pink); font:900 18px/1.2 var(--tbh-font-display); }
.tbh-collection-main .tbh-product-card__price--from { display:block; margin-bottom:3px; color:#7f8999; font-size:9px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }
.tbh-collection-main .tbh-product-card__swatches { display:none; }
.woocommerce .tbh-collection-main .tbh-product-card__add-btn { display:flex; align-items:center; justify-content:center; width:100%; min-height:43px; margin:0!important; padding:0 10px!important; border:0!important; border-radius:8px!important; background:var(--tbh-v2-navy)!important; color:#fff!important; font:800 12px/1 var(--tbh-font-display)!important; text-align:center; text-transform:uppercase; box-shadow:none!important; }
.woocommerce .tbh-collection-main .tbh-product-card__add-btn:hover { background:var(--tbh-v2-pink)!important; }

/* Product page */
.tbh-pdp { position:relative; overflow:hidden; padding:22px 0 84px; background:linear-gradient(180deg,#fff,#fffafd 78%,#f1fffc); color:var(--tbh-v2-navy); }
.tbh-pdp::before { left:-122px; top:80px; }
.tbh-pdp::after { right:-120px; top:270px; transform:rotate(180deg); }
.tbh-pdp>.tbh-container { position:relative; z-index:1; }
.tbh-pdp-breadcrumbs { margin-bottom:20px; color:#8a5d74; font-size:12px; }
.tbh-pdp-layout { grid-template-columns:minmax(0,1fr) minmax(410px,.92fr); gap:34px; align-items:start; }
.tbh-pdp-gallery { top:108px; }
.tbh-pdp-gallery__main { overflow:hidden; border:1px solid #e4e7ed; border-radius:18px; background:#f6f6f5; box-shadow:0 12px 34px rgba(18,52,107,.075); }
.tbh-pdp-gallery__main img { width:100%; aspect-ratio:1/1.02; object-fit:cover; }
.tbh-pdp-gallery__thumbnails { margin-top:13px; }
.tbh-pdp-gallery__thumbnails-track { gap:10px; }
.tbh-pdp-gallery__thumb { overflow:hidden; width:74px; height:74px; padding:0; border:2px solid transparent; border-radius:11px; background:#f4f4f2; }
.tbh-pdp-gallery__thumb.is-active { border-color:var(--tbh-v2-pink); }
.tbh-pdp-gallery__thumb img { width:100%; height:100%; object-fit:cover; }
.tbh-pdp-info { position:relative; padding:16px 0 0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.tbh-pdp-info__utility { top:0; right:0; }
.tbh-pdp-wishlist-btn,.tbh-pdp-share-btn { display:grid; width:42px; height:42px; padding:0; place-items:center; border:1px solid #dfe4ed; border-radius:50%; background:#fff; color:var(--tbh-v2-navy); }
.tbh-pdp-wishlist-btn[aria-pressed="true"] { border-color:var(--tbh-v2-pink); background:#fff0f5; color:var(--tbh-v2-pink); }
.tbh-pdp-info__category { margin:0 105px 10px 0; color:var(--tbh-v2-pink); font:900 11px/1 var(--tbh-font-display); letter-spacing:.1em; text-transform:uppercase; }
.tbh-pdp-info__title .product_title { max-width:680px; margin:0 100px 12px 0; color:var(--tbh-v2-navy); font:900 clamp(2rem,3.3vw,3.5rem)/.93 var(--tbh-font-display); letter-spacing:-.045em; }
.tbh-pdp-info__price { margin:7px 0 12px; color:var(--tbh-v2-pink); font:900 27px/1.2 var(--tbh-font-display); }
.tbh-pdp-info__excerpt { max-width:680px; margin-bottom:18px; color:#455b7b; font-size:14px; line-height:1.55; }
.tbh-pdp-options__label { color:var(--tbh-v2-navy); font:800 12px var(--tbh-font-display); text-transform:uppercase; }
.tbh-pdp-btn-group__btn,.tbh-pdp-chip { min-height:46px; border:1px solid #dce2eb; border-radius:9px; background:#fff; color:var(--tbh-v2-navy); font-weight:800; }
.tbh-pdp-btn-group__btn.is-selected,.tbh-pdp-chip.is-selected,.tbh-pdp-btn-group__btn[aria-checked="true"],.tbh-pdp-chip[aria-checked="true"] { border-color:var(--tbh-v2-pink); background:#fff3f8; color:var(--tbh-v2-navy); box-shadow:inset 0 0 0 1px var(--tbh-v2-pink); }
.tbh-pdp-info__personalisation { margin:18px 0 10px; padding:18px; border:0; border-radius:15px; background:linear-gradient(135deg,#fff0f6,#fff7fb); }
.tbh-pdp-info__delivery { margin:10px 0; padding:14px 16px; border:1px solid #e4e7ed; border-radius:14px; background:#fff; }
.tbh-pdp-info__personalisation:empty,.tbh-pdp-info__delivery:empty { display:none; }
.tbh-pdp-trust { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:12px 0 16px; }
.tbh-pdp-trust span { display:flex; align-items:center; gap:7px; color:#435a79; font-size:10px; font-weight:700; line-height:1.25; }
.tbh-pdp-trust b { display:grid; flex:0 0 31px; width:31px; height:31px; place-items:center; border-radius:50%; background:#fff0f6; color:var(--tbh-v2-pink); font-size:17px; }
.tbh-pdp-info__cart-actions { display:block; margin-top:8px; }
.tbh-pdp-info__cart-actions form.cart { display:block; width:100%; margin:0!important; }
.tbh-pdp-info__cart-actions form.cart::after { display:table; clear:both; content:''; }
.tbh-pdp-info__cart-actions--custom-options table.variations { display:none!important; }
.tbh-pdp-info__cart-actions form.cart .single_add_to_cart_button,.tbh-pdp-buy-now { width:100%; min-height:52px!important; margin:10px 0 0!important; border:0!important; border-radius:99px!important; font:800 14px var(--tbh-font-display)!important; }
.tbh-pdp-info__cart-actions form.cart .single_add_to_cart_button { background:var(--tbh-v2-pink)!important; color:#fff!important; }
.tbh-pdp-buy-now { background:var(--tbh-v2-navy)!important; color:#fff!important; }
.tbh-pdp-accordions { display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin-top:54px; overflow:hidden; border:1px solid #e1e5ed; border-radius:17px; background:#fff; box-shadow:0 10px 30px rgba(18,52,107,.055); }
.tbh-pdp-accordion { border:0; border-right:1px solid #e8eaf0; border-bottom:1px solid #e8eaf0; }
.tbh-pdp-accordion__trigger { min-height:58px; padding:0 18px; color:#455b7b; font-size:12px; }
.tbh-pdp-accordion__trigger[aria-expanded="true"] { color:var(--tbh-v2-pink); }
.tbh-pdp-accordion__panel { grid-column:1/-1; }
.tbh-pdp-accordion__content { padding:21px; color:#50637f; line-height:1.65; }
.tbh-pdp-related { margin-top:54px; }
.tbh-pdp-related__heading { margin-bottom:22px; color:var(--tbh-v2-navy); font:900 clamp(1.8rem,3vw,2.8rem)/1 var(--tbh-font-display); letter-spacing:-.04em; }
.tbh-pdp-related__heading::after { margin-left:8px; color:var(--tbh-v2-pink); content:'♡'; font-family:serif; }
.tbh-pdp-related__grid { gap:15px; }
.tbh-pdp-related__item { position:relative; overflow:hidden; padding-bottom:12px; border:1px solid #e1e5ed; border-radius:16px; background:#fff; box-shadow:0 7px 20px rgba(18,52,107,.06); }
.tbh-pdp-related__image { overflow:hidden; aspect-ratio:1.3; background:#f4f4f2; }
.tbh-pdp-related__image img { width:100%; height:100%; object-fit:cover; }
.tbh-pdp-related__details { padding:13px 14px 8px; }
.tbh-pdp-related__name { min-height:2.5em; color:#101d3e; font:800 13px/1.25 var(--tbh-font-display); }
.tbh-pdp-related__price { color:var(--tbh-v2-pink); font-weight:900; }
.tbh-pdp-related__favourite { position:absolute; z-index:2; top:10px; right:10px; display:grid; width:34px; height:34px; padding:0; place-items:center; border:1px solid rgba(18,52,107,.12); border-radius:50%; background:#fff; color:var(--tbh-v2-navy); font-size:20px; box-shadow:0 4px 11px rgba(18,52,107,.1); }
.tbh-pdp-related__favourite[aria-pressed="true"] { background:var(--tbh-v2-pink); color:#fff; }
.tbh-pdp-related__cta { display:flex; align-items:center; justify-content:center; min-height:36px; margin:0 14px; border:1.5px solid var(--tbh-v2-pink); border-radius:99px; color:var(--tbh-v2-pink); font:800 11px var(--tbh-font-display); text-decoration:none; text-transform:uppercase; }
.tbh-pdp-related__cta:hover { background:var(--tbh-v2-pink); color:#fff; }

@media (max-width:1180px) {
	.tbh-collection-main .woocommerce ul.products,.tbh-collection-main ul.products { grid-template-columns:repeat(3,minmax(0,1fr)); }
	.tbh-pdp-layout { grid-template-columns:minmax(0,1fr) minmax(390px,.95fr); gap:26px; }
}
@media (max-width:900px) {
	.tbh-collection-hero__layout { grid-template-columns:1fr 1fr; }
	.tbh-collection-layout { grid-template-columns:1fr; }
	.tbh-collection-sidebar { display:none; }
	.tbh-collection-main .woocommerce ul.products,.tbh-collection-main ul.products { grid-template-columns:repeat(2,minmax(0,1fr)); }
	.tbh-pdp-layout { grid-template-columns:1fr; }
	.tbh-pdp-gallery { position:static; }
	.tbh-pdp-accordions { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:640px) {
	.tbh-collection-hero { height:auto; min-height:0; }
	.tbh-collection-hero__layout { display:flex; flex-direction:column-reverse; height:auto; min-height:0; padding:0; }
	.tbh-collection-hero__visual { height:260px; min-height:260px; clip-path:none; }
	.tbh-collection-hero__content { padding:34px 20px 39px; }
	.tbh-collection-hero__title { font-size:3.1rem; }
	.tbh-collection-hero__script { font-size:2.2rem; }
	.tbh-collection-page { padding-top:18px; }
	.tbh-collection-main .woocommerce ul.products,.tbh-collection-main ul.products { gap:11px; }
	.tbh-collection-main .tbh-product-card__info { padding:12px 11px; }
	.tbh-collection-main .tbh-product-card__title { font-size:12px!important; }
	.tbh-collection-main .tbh-product-card__price { font-size:15px; }
	.tbh-collection-main .tbh-product-card__action-btn--quickview,.tbh-collection-main .tbh-product-card__action-btn--share { display:none; }
	.woocommerce .tbh-collection-main .tbh-product-card__add-btn { min-height:38px; font-size:10px!important; }
	.tbh-pdp { padding-top:14px; }
	.tbh-pdp-info__title .product_title { margin-right:72px; font-size:2.15rem; }
	.tbh-pdp-info__utility { gap:6px; }
	.tbh-pdp-wishlist-btn,.tbh-pdp-share-btn { width:36px; height:36px; }
	.tbh-pdp-info__cart-actions { grid-template-columns:1fr; }
	.tbh-pdp-trust { display:flex; overflow-x:auto; padding-bottom:5px; }
	.tbh-pdp-trust span { flex:0 0 180px; }
	.tbh-pdp-accordions { display:block; margin-top:35px; border-radius:13px; }
	.tbh-pdp-accordion { border-right:0; }
	.tbh-pdp-related__grid { display:flex; overflow-x:auto; margin-right:-16px; padding-right:16px; scroll-snap-type:x mandatory; }
	.tbh-pdp-related__item { flex:0 0 235px; scroll-snap-align:start; }
}
