/**
 * TTW Swatch Styling
 * Version 1.0.2
 *
 * Purple:      #6B2C91
 * Gold:        #D4AF37
 * Dark:        #2C1810
 * Body:        #4A4A4A
 * Pale purple: #F8F0FC
 * Border:      #E8E2DC
 */

/* =========================================================
   VARIATION LAYOUT
   ========================================================= */

.single-product form.cart .variations {
	width: 100%;
	margin: 0 0 18px;
	border: 0;
}

.single-product form.cart .variations tbody,
.single-product form.cart .variations tr,
.single-product form.cart .variations th,
.single-product form.cart .variations td {
	border: 0;
}

.single-product form.cart .variations tr {
	display: block;
	width: 100%;
	margin: 0 0 18px;
	padding: 0;
}

.single-product form.cart .variations th.label,
.single-product form.cart .variations td.label {
	display: block;
	width: 100%;
	margin: 0 0 8px;
	padding: 0;
	text-align: left;
}

.single-product form.cart .variations th.label label,
.single-product form.cart .variations td.label label {
	display: block;
	margin: 0;
	color: #2C1810;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
	text-align: left;
	text-transform: none;
}

.single-product form.cart .variations td.value {
	display: block;
	width: 100%;
	margin: 0;
	padding: 0;
}

/*
 * Preserve original selects for WooCommerce and WPC logic.
 * They remain in the document and continue receiving values/events.
 */
.single-product form.cart select.ttw-swatch-source,
.single-product form.cart select.wpcvs-select {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	margin: -1px !important;
	padding: 0 !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	clip-path: inset(50%) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

/* =========================================================
   SWATCH GROUP
   ========================================================= */

.single-product .wpcvs-terms {
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: stretch;
	gap: 8px !important;
	width: 100%;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	list-style: none !important;
}

/* =========================================================
   BASE BUTTON
   ========================================================= */

.single-product .wpcvs-terms .wpcvs-term {
	box-sizing: border-box;
	position: relative;
	display: inline-flex !important;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: auto;
	min-width: 48px;
	min-height: 44px;
	margin: 0 !important;
	padding: 0 !important;
	color: #2C1810 !important;
	background: #FFFFFF !important;
	border: 1px solid #D8D2CC !important;
	border-radius: 2px !important;
	box-shadow: none !important;
	cursor: pointer;
	line-height: 1;
	text-align: center;
	opacity: 1;
	transition:
		color 160ms ease,
		background-color 160ms ease,
		border-color 160ms ease,
		box-shadow 160ms ease,
		opacity 160ms ease;
}

.single-product .wpcvs-terms .wpcvs-term-inner {
	box-sizing: border-box;
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-width: 46px;
	min-height: 42px;
	margin: 0 !important;
	padding: 8px 12px !important;
	color: inherit !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: inherit;
	box-shadow: none !important;
	line-height: 1.2;
}

.single-product .wpcvs-terms .wpcvs-term-label {
	display: block;
	color: inherit !important;
	font-family: inherit;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: 0;
	text-align: center;
	white-space: nowrap;
}

/* =========================================================
   HOVER
   ========================================================= */

@media (hover: hover) {
	.single-product .wpcvs-terms .wpcvs-term:not(.ttw-is-unavailable):hover {
		color: #6B2C91 !important;
		background: #FAF8F5 !important;
		border-color: #6B2C91 !important;
	}
}

/* =========================================================
   SELECTED STATE
   ========================================================= */

/*
 * Only the TTW class controls the purple visual state.
 *
 * JavaScript synchronises this class from the real underlying select value.
 * Old/stale aria values can no longer leave multiple buttons purple.
 */
.single-product .wpcvs-terms .wpcvs-term.ttw-is-selected {
	color: #6B2C91 !important;
	background: #F8F0FC !important;
	border-color: #6B2C91 !important;
	box-shadow: inset 0 0 0 1px #6B2C91 !important;
	font-weight: 600;
}

/* Remove WPC selected effects when TTW says the term is not selected. */
.single-product .wpcvs-terms .wpcvs-term.wpcvs-selected:not(.ttw-is-selected),
.single-product .wpcvs-terms .wpcvs-term.selected:not(.ttw-is-selected) {
	color: #2C1810 !important;
	background: #FFFFFF !important;
	border-color: #D8D2CC !important;
	box-shadow: none !important;
}

/* Remove WPC green selected checkmarks. */
.single-product .wpcvs-terms .wpcvs-term::before,
.single-product .wpcvs-terms .wpcvs-term::after,
.single-product .wpcvs-terms .wpcvs-term-inner::before,
.single-product .wpcvs-terms .wpcvs-term-inner::after {
	box-sizing: border-box;
}

.single-product .wpcvs-terms .wpcvs-term.wpcvs-selected::before,
.single-product .wpcvs-terms .wpcvs-term.wpcvs-selected::after,
.single-product .wpcvs-terms .wpcvs-term.selected::before,
.single-product .wpcvs-terms .wpcvs-term.selected::after,
.single-product .wpcvs-terms .wpcvs-term.ttw-is-selected::before,
.single-product .wpcvs-terms .wpcvs-term.ttw-is-selected::after {
	display: none !important;
	content: none !important;
}

/* Some WPC versions add the check as a child element. */
.single-product .wpcvs-terms .wpcvs-term .wpcvs-check,
.single-product .wpcvs-terms .wpcvs-term .wpcvs-selected-check,
.single-product .wpcvs-terms .wpcvs-term .check,
.single-product .wpcvs-terms .wpcvs-term .checkmark {
	display: none !important;
}

/* =========================================================
   KEYBOARD FOCUS
   ========================================================= */

.single-product .wpcvs-terms .wpcvs-term:focus,
.single-product .wpcvs-terms .wpcvs-term:focus-visible,
.single-product .wpcvs-terms .wpcvs-term.ttw-keyboard-focus {
	outline: 3px solid rgba(212, 175, 55, 0.72) !important;
	outline-offset: 2px;
	border-color: #6B2C91 !important;
}

/* =========================================================
   UNAVAILABLE STATE
   ========================================================= */

.single-product .wpcvs-terms .wpcvs-term.ttw-is-unavailable {
	position: relative;
	color: #99928C !important;
	background: #F7F5F2 !important;
	border-color: #DED9D4 !important;
	box-shadow: none !important;
	cursor: not-allowed;
	opacity: 0.62;
}

.single-product .wpcvs-terms .wpcvs-term.ttw-is-unavailable::after {
	position: absolute !important;
	top: 50% !important;
	right: 5px !important;
	left: 5px !important;
	display: block !important;
	width: auto !important;
	height: 1px !important;
	background: #A9A29C !important;
	content: "" !important;
	pointer-events: none;
	transform: rotate(-18deg);
	transform-origin: center;
}

/* =========================================================
   SIZE BUTTONS
   ========================================================= */

.single-product .wpcvs-terms.ttw-swatch-group--size .wpcvs-term {
	flex: 0 0 auto;
	width: auto;
	min-width: 48px;
	height: 44px;
}

.single-product .wpcvs-terms.ttw-swatch-group--size .wpcvs-term-inner {
	min-width: 46px;
	padding-right: 11px !important;
	padding-left: 11px !important;
}

.single-product .wpcvs-terms.ttw-swatch-group--size .wpcvs-term-label {
	font-size: 14px;
	font-weight: 600;
}

/*
 * JavaScript assigns CSS order only.
 * It never moves the original WPC elements.
 */
.single-product .wpcvs-terms.ttw-swatch-group--size .wpcvs-term {
	order: 999;
}

/* =========================================================
   COLOUR AND SET OPTION
   ========================================================= */

.single-product .wpcvs-terms.ttw-swatch-group--colour .wpcvs-term,
.single-product .wpcvs-terms.ttw-swatch-group--set .wpcvs-term {
	width: auto;
	min-width: 0;
	height: auto;
	min-height: 44px;
}

.single-product .wpcvs-terms.ttw-swatch-group--colour .wpcvs-term-inner,
.single-product .wpcvs-terms.ttw-swatch-group--set .wpcvs-term-inner {
	width: auto;
	min-width: 0;
	min-height: 42px;
	padding: 9px 15px !important;
}

.single-product .wpcvs-terms.ttw-swatch-group--colour .wpcvs-term-label,
.single-product .wpcvs-terms.ttw-swatch-group--set .wpcvs-term-label {
	white-space: normal;
}

.single-product .wpcvs-terms.ttw-swatch-group--set .wpcvs-term {
	flex: 0 1 auto;
}

/* =========================================================
   CLEAR LINK
   ========================================================= */

.single-product form.cart .reset_variations {
	display: inline-block;
	margin-top: 9px;
	color: #6B2C91;
	font-size: 12px;
	font-weight: 500;
	line-height: 1.4;
	text-decoration: underline;
	text-underline-offset: 2px;
	opacity: 0.85;
}

.single-product form.cart .reset_variations:hover {
	color: #4D1F69;
	opacity: 1;
}

/* =========================================================
   SMART BUNDLE CLEAN-UP
   ========================================================= */

.single-product .woosb-products {
	margin-top: 14px;
	margin-bottom: 20px;
}

.single-product .woosb-products .woosb-product {
	margin: 0;
	padding-top: 18px;
	padding-bottom: 18px;
	background: transparent;
	border: 0;
	border-bottom: 1px solid #E8E2DC;
	border-radius: 0;
	box-shadow: none;
}

.single-product .woosb-products .woosb-product:first-child {
	padding-top: 4px;
}

/*
 * The site contains general table styling. Reset it inside bundle
 * variation selectors so it does not create large outlined boxes.
 */
.single-product .woosb-products .variations,
.single-product .woosb-products .variations tbody,
.single-product .woosb-products .variations tr,
.single-product .woosb-products .variations th,
.single-product .woosb-products .variations td,
.single-product .woosb-products .variations th.label,
.single-product .woosb-products .variations td.label,
.single-product .woosb-products .variations td.value {
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}

.single-product .woosb-products .variations {
	margin-top: 12px;
	margin-bottom: 4px;
	padding: 0 !important;
}

.single-product .woosb-products .variations tr {
	margin: 0 0 16px;
	padding: 0 !important;
}

.single-product .woosb-products .variations th.label,
.single-product .woosb-products .variations td.label {
	margin-bottom: 8px;
	padding: 0 !important;
}

.single-product .woosb-products .variations td.value {
	padding: 0 !important;
}

.single-product .woosb-products .variations th.label label,
.single-product .woosb-products .variations td.label label {
	color: #2C1810;
	font-size: 13px;
	font-weight: 600;
}

.single-product .woosb-products .wpcvs-terms {
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
}

/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 767px) {
	.single-product form.cart .variations tr {
		margin-bottom: 17px;
	}

	.single-product .wpcvs-terms {
		gap: 7px !important;
	}

	.single-product .wpcvs-terms .wpcvs-term {
		min-height: 44px;
	}

	.single-product .wpcvs-terms.ttw-swatch-group--size .wpcvs-term {
		min-width: 47px;
	}

	.single-product .wpcvs-terms.ttw-swatch-group--size .wpcvs-term-inner {
		min-width: 45px;
		padding-right: 9px !important;
		padding-left: 9px !important;
	}

	.single-product .wpcvs-terms.ttw-swatch-group--colour .wpcvs-term,
	.single-product .wpcvs-terms.ttw-swatch-group--set .wpcvs-term {
		flex: 0 1 auto;
	}

	.single-product .wpcvs-terms.ttw-swatch-group--colour .wpcvs-term-inner,
	.single-product .wpcvs-terms.ttw-swatch-group--set .wpcvs-term-inner {
		padding-right: 13px !important;
		padding-left: 13px !important;
	}
}
/* =========================================================
   TTW Swatch Styling v1.0.3
   Smart Bundle presentation
   ========================================================= */

/* Remove the unnecessary outer box around bundle swatches. */
.ttw-swatches-v103 .woosb-products .wpcvs-terms,
.ttw-swatches-v103 .woosb-products .wpcvs-terms-wrapper,
.ttw-swatches-v103 .woosb-products .variable-items-wrapper {
    border: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    padding: 0 !important;
}

/* Keep the individual size buttons intact. */
.ttw-swatches-v103 .woosb-products .wpcvs-term {
    box-shadow: none;
}

/* Remove WPC's small green tick/checkmark. */
.ttw-swatches-v103 .woosb-products .wpcvs-term.selected::before,
.ttw-swatches-v103 .woosb-products .wpcvs-term.selected::after,
.ttw-swatches-v103 .woosb-products .wpcvs-term.wpcvs-selected::before,
.ttw-swatches-v103 .woosb-products .wpcvs-term.wpcvs-selected::after,
.ttw-swatches-v103 .woosb-products .wpcvs-term.ttw-is-selected::before,
.ttw-swatches-v103 .woosb-products .wpcvs-term.ttw-is-selected::after {
    content: none !important;
    display: none !important;
}

/* Improve spacing between bundle components. */
.ttw-swatches-v103 .woosb-products .woosb-product {
    padding-top: 18px !important;
    padding-bottom: 18px !important;
    border-left: 0 !important;
    border-right: 0 !important;
    box-shadow: none !important;
}

/* Main bundle price presentation. */
.ttw-swatches-v103.product-type-woosb .summary > .price {
    display: flex !important;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px 10px;
    line-height: 1.25;
}

/* Put the selling price first and make it prominent. */
.ttw-swatches-v103.product-type-woosb .summary > .price ins {
    order: 1;
    color: #6B2C91 !important;
    font-weight: 700 !important;
    font-size: 1.2em;
    text-decoration: none !important;
}

/* Make the original value secondary. */
.ttw-swatches-v103.product-type-woosb .summary > .price del {
    order: 2;
    color: #786f7d !important;
    font-size: 0.78em;
    font-weight: 400;
    opacity: 0.8;
}

/* Clean saving badge. */
.ttw-swatches-v103 .ttw-bundle-saving {
    order: 3;
    display: inline-flex;
    align-items: center;
    min-height: 25px;
    padding: 4px 9px;
    border: 1px solid #D4AF37;
    border-radius: 999px;
    background: #fffaf0;
    color: #6B2C91;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.03em;
    white-space: nowrap;
}

/* Hide the duplicated WPC bundle total below the components. */
.ttw-swatches-v103 .woosb-total {
    display: none !important;
}

@media (max-width: 767px) {
    .ttw-swatches-v103.product-type-woosb .summary > .price {
        gap: 6px 8px;
    }

    .ttw-swatches-v103.product-type-woosb .summary > .price ins {
        font-size: 1.12em;
    }

    .ttw-swatches-v103 .woosb-products .woosb-product {
        padding-top: 14px !important;
        padding-bottom: 14px !important;
    }
}
/* TTW v1.0.6 — remove remaining selected check indicators */
.single-product .wpcvs-term.wpcvs-selected .wpcvs-term-inner::before,
.single-product .wpcvs-term.wpcvs-selected .wpcvs-term-inner::after,
.single-product .wpcvs-term.selected .wpcvs-term-inner::before,
.single-product .wpcvs-term.selected .wpcvs-term-inner::after,
.single-product .wpcvs-term.ttw-is-selected .wpcvs-term-inner::before,
.single-product .wpcvs-term.ttw-is-selected .wpcvs-term-inner::after {
	display: none !important;
	content: none !important;
}
