/* =============================================================================
 * Product page + Quick View extras (inc/product-ui.php)
 * ========================================================================== */

/* ---------- Variant picker (also needed in the Quick View on listing pages) ---------- */
.tf-product-info-variant-picker {
	display: flex;
	gap: 20px;
	flex-direction: column;
}

.variant-picker-item .variant-picker-label {
	margin-bottom: 12px;
}

.variant-picker-item .variant-picker-values {
	display: flex;
	gap: 10px;
	align-items: center;
	flex-wrap: wrap;
}

.variant-picker-item .variant-picker-values input {
	position: absolute !important;
	overflow: hidden;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	border: 0;
	clip: rect(0 0 0 0);
}

.variant-picker-item .variant-picker-values label {
	position: relative;
	margin: 0;
	cursor: pointer;
	transition: all .3s ease-in-out;
}

.variant-picker-item .variant-picker-values label.style-text {
	padding: 8px 10px;
	border-radius: 3px;
	border: 1px solid var(--line);
	background-color: var(--white);
}

.variant-picker-item .variant-picker-values label.style-text p {
	margin: 0;
	font-size: 14px;
	line-height: 1;
}

.variant-picker-item .variant-picker-values label.style-text:hover {
	border-color: var(--main);
}

.variant-picker-item .variant-picker-values input:checked+label.style-text {
	background-color: var(--main);
	border-color: var(--main);
	box-shadow: 0 .4rem .4rem rgba(0, 0, 0, .1);
}

.variant-picker-item .variant-picker-values input:checked+label.style-text p {
	color: var(--white);
}

.ibf-variation-selects {
	display: none;
}

.variant-picker-values.is-shake {
	animation: ibf-shake .45s;
}

@keyframes ibf-shake {

	0%,
	100% {
		transform: translateX(0);
	}

	25%,
	75% {
		transform: translateX(-6px);
	}

	50% {
		transform: translateX(6px);
	}
}

/* ---------- Other colours ---------- */
.ibf-color-siblings .variant-picker-label {
	margin-bottom: 12px;
}

.ibf-color-siblings-list {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.ibf-color-sibling {
	position: relative;
	display: block;
	width: 56px;
	height: 72px;
	padding: 2px;
	border: 1px solid var(--line);
	border-radius: 6px;
	transition: border-color .25s, transform .25s;
}

.ibf-color-sibling img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 4px;
	display: block;
}

.ibf-color-sibling:hover {
	border-color: var(--main);
	transform: translateY(-2px);
}

.ibf-color-sibling.active {
	border: 2px solid var(--main);
	padding: 1px;
}

.ibf-color-sibling .tooltip {
	white-space: nowrap;
}

/* ---------- Buy row: Add to cart + wishlist on one line, Buy it now full width ---------- */
.ibf-single-main .single_variation_wrap .woocommerce-variation-add-to-cart,
.ibf-single-main .tf-product-info-buy-button,
.popup-quickadd .single_variation_wrap .woocommerce-variation-add-to-cart,
.popup-quickadd .tf-product-info-buy-button {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
}

.ibf-single-main .woocommerce-variation-add-to-cart .quantity,
.popup-quickadd .woocommerce-variation-add-to-cart .quantity {
	order: 0;
}

.ibf-single-main .single_add_to_cart_button,
.ibf-single-main .tf-product-info-buy-button .btn-add-to-cart,
.popup-quickadd .single_add_to_cart_button,
.popup-quickadd .tf-product-info-buy-button .btn-add-to-cart {
	order: 1;
}

.ibf-single-main .tf-product-btn-wishlist,
.popup-quickadd .tf-product-btn-wishlist {
	order: 2;
}

.ibf-buy-now {
	order: 3;
	flex: 1 1 100%;
	height: 49px;
	justify-content: center;
	background-color: var(--white);
	border: 1px solid var(--main);
	color: var(--main);
	cursor: pointer;
}

.ibf-buy-now:hover {
	background-color: var(--main);
	color: var(--white);
}

.ibf-atc-error {
	order: 4;
	flex: 1 1 100%;
}

/* WooCommerce's own quantity box + button inside the Quick View. */
.popup-quickadd .single_variation_wrap .quantity {
	display: flex;
	align-items: center;
	height: 49px;
	border: 1px solid var(--line);
	border-radius: 3px;
	overflow: hidden;
}

.popup-quickadd .single_variation_wrap .quantity .qty {
	width: 70px;
	height: 100%;
	border: 0;
	text-align: center;
	background-color: transparent;
}

body .popup-quickadd button.single_add_to_cart_button,
body .popup-quickadd .btn-add-to-cart {
	flex: 1 1 180px;
	height: 49px;
	padding: 0 22px;
	border: 0;
	border-radius: 3px;
	background-color: var(--main);
	color: var(--white);
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	transition: opacity .3s;
}

body .popup-quickadd button.single_add_to_cart_button:hover {
	background-color: var(--main);
	opacity: .85;
}

body .popup-quickadd button.single_add_to_cart_button.disabled {
	opacity: .45;
	cursor: not-allowed;
}

.popup-quickadd .woocommerce-variation-price {
	margin-bottom: 12px;
	font-weight: 600;
}

.popup-quickadd .woocommerce-variation-price .screen-reader-text {
	display: none;
}

.popup-quickadd .woocommerce-variation-availability p {
	margin: 0 0 10px;
	font-size: 13px;
}

.popup-quickadd .ibf-color-siblings,
.popup-quickadd .tf-product-info-variant-picker {
	margin-bottom: 20px;
}

.popup-quickadd .variant-picker-item .variant-picker-label {
	font-size: 14px;
}

/* ---------- Quick View layout ---------- */
.popup-quickadd .ibf-qa-dialog {
	max-width: min(940px, calc(100vw - 32px));
}

.popup-quickadd .ibf-qa-grid {
	grid-template-columns: 420px minmax(0, 1fr);
}

.popup-quickadd .ibf-qa-media {
	overflow: hidden;
}

.popup-quickadd .ibf-qa-slider {
	position: absolute;
	inset: 0;
}

.popup-quickadd .ibf-qa-slider .swiper-slide img {
	position: static;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.popup-quickadd .ibf-qa-slider .swiper-slide {
	height: 100%;
}

.popup-quickadd .ibf-qa-nav {
	position: absolute;
	top: 50%;
	z-index: 3;
	width: 38px;
	height: 38px;
	margin-top: -19px;
	border-radius: 50%;
	background-color: var(--white);
	color: var(--main);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 11px;
	cursor: pointer;
	box-shadow: 0 4px 14px rgba(0, 0, 0, .12);
	transition: background-color .25s, color .25s;
}

.popup-quickadd .ibf-qa-nav:hover {
	background-color: var(--main);
	color: var(--white);
}

.popup-quickadd .ibf-qa-prev {
	left: 14px;
}

.popup-quickadd .ibf-qa-next {
	right: 14px;
}

.popup-quickadd .ibf-qa-nav.swiper-button-disabled {
	opacity: .35;
	pointer-events: none;
}

.popup-quickadd .ibf-qa-dots {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 14px;
	z-index: 3;
	display: flex;
	justify-content: center;
	gap: 6px;
}

.popup-quickadd .ibf-qa-dots .swiper-pagination-bullet {
	width: 8px;
	height: 8px;
	margin: 0 !important;
	border-radius: 50%;
	background-color: var(--white);
	opacity: .6;
}

.popup-quickadd .ibf-qa-dots .swiper-pagination-bullet-active {
	opacity: 1;
	width: 20px;
	border-radius: 8px;
}

.popup-quickadd .ibf-qa-sale {
	position: absolute;
	top: 14px;
	left: 14px;
	z-index: 3;
	padding: 3px 12px;
	border-radius: 999px;
	background-color: var(--primary);
	color: var(--white);
	font-size: 12px;
	font-weight: 600;
}

.popup-quickadd .ibf-qa-content {
	padding: 36px 34px;
}

.popup-quickadd .ibf-qa-price {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 4px 10px;
}

.popup-quickadd .ibf-qa-off {
	padding: 2px 10px;
	border-radius: 999px;
	background-color: rgb(252, 87, 50);
	color: var(--white);
	font-size: 12px;
	font-weight: 700;
	line-height: 22px;
}

.popup-quickadd .ibf-qa-desc {
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.popup-quickadd .ibf-quick-add-link {
	margin-top: 18px;
	font-weight: 600;
}

.modal.popup-quickadd .modal-content {
	display: flex;
	flex-direction: column;
	max-height: calc(100dvh - 40px);
	overflow: hidden;
}

.popup-quickadd .ibf-quick-add-body {
	flex: 1 1 auto;
	min-height: 0;
	display: flex;
}

.popup-quickadd .ibf-qa-grid {
	flex: 1 1 auto;
	min-height: 0;
	grid-template-rows: minmax(0, 1fr);
}

.popup-quickadd .ibf-qa-content {
	min-height: 0;
	max-height: none;
	overflow-y: auto;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
}

.popup-quickadd .ibf-qa-content::-webkit-scrollbar {
	width: 4px;
}

.popup-quickadd .ibf-qa-content::-webkit-scrollbar-thumb {
	background: rgba(0, 0, 0, .25);
	border-radius: 4px;
}

@media (max-width: 1149px) {
	.popup-quickadd .ibf-qa-grid {
		grid-template-columns: 340px minmax(0, 1fr);
	}
}

@media (max-width: 767px) {
	.popup-quickadd .ibf-quick-add-body {
		display: block;
		overflow-y: auto;
		overscroll-behavior: contain;
		-webkit-overflow-scrolling: touch;
	}

	.popup-quickadd .ibf-qa-grid {
		grid-template-rows: auto;
		grid-template-columns: minmax(0, 1fr);
	}

	.popup-quickadd .ibf-qa-media {
		.variant-picker-item .variant-picker-values label.style-text
		/* height: 380px; */
		height: 100%;
		aspect-ratio: 1 / 1.1;
	}

	.popup-quickadd .ibf-qa-content {
		overflow: visible;
		padding: 22px 18px 26px;
	}

	.ibf-color-sibling {
		width: 48px;
		height: 62px;
	}
}

@media only screen and (max-width: 575.5px) {
	.popup-quickadd .ibf-qa-dialog {
		max-width: 100%;
	}
}

/* ---------- Sticky bar size dropdown ---------- */
.tf-sticky-btn-atc .tf-select {
	-webkit-appearance: none;
	appearance: none;
	min-width: 190px;
	height: 46px;
	padding: 0 38px 0 16px;
	border: 1px solid var(--line);
	border-radius: 3px;
	background: var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7' viewBox='0 0 12 7'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 14px center / 12px 7px;
	color: var(--main);
	font-size: 14px;
	cursor: pointer;
}

.tf-sticky-btn-atc .tf-select:hover,
.tf-sticky-btn-atc .tf-select:focus {
	border-color: var(--main);
	outline: none;
}

.tf-sticky-btn-atc .tf-sticky-atc-btns .wg-quantity {
	height: 46px;
}

.ibf-compare-page .ibf-compare-page-empty>p {
	margin-bottom: 16px;
	width: 100%;
	max-width: 406px;
	margin-left: auto;
	margin-right: auto;
}

/* ---------- Shop pagination ---------- */
.ibf-shop .woocommerce-pagination {
	margin: 40px 0 0 !important;
}

.ibf-shop .woocommerce-pagination li>.page-numbers .icon {
	font-size: 11px;
}

.ibf-shop .woocommerce-pagination .screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
}

.ibf-shop>.flat-spacing-1,
.ibf-shop section.flat-spacing-1 {
	padding: 90px 0;
}

@media (max-width: 767px) {
	.ibf-shop .woocommerce-pagination {
		margin-top: 36px;
	}

	.ibf-shop section.flat-spacing-1 {
		padding: 50px 0;
	}
}

/* =============================================================================
 * Brand accent #F95C4B for every buy button (product page, Quick View,
 * sticky bar). !important because WooCommerce / GeneratePress style
 * ".woocommerce button.button.alt(.disabled)" with heavier selectors
 * (that is where the blue came from).
 * ========================================================================== */
:root {
	--ibf-accent: #F95C4B;
	--ibf-accent-dark: #e2402f;
}

/* Add to cart - solid */
.ibf-single-main .single_add_to_cart_button,
.ibf-single-main .btn-add-to-cart,
.popup-quickadd .single_add_to_cart_button,
.popup-quickadd .btn-add-to-cart,
.tf-sticky-btn-atc .btn-add-to-cart {
	background-color: var(--ibf-accent) !important;
	border: 1px solid var(--ibf-accent) !important;
	color: #fff !important;
	opacity: 1 !important;
	transition: background-color .3s, border-color .3s, box-shadow .3s !important;
}

.ibf-single-main .single_add_to_cart_button:hover,
.ibf-single-main .btn-add-to-cart:hover,
.popup-quickadd .single_add_to_cart_button:hover,
.popup-quickadd .btn-add-to-cart:hover,
.tf-sticky-btn-atc .btn-add-to-cart:hover {
	background-color: var(--ibf-accent-dark) !important;
	border-color: var(--ibf-accent-dark) !important;
	box-shadow: 0 8px 20px -8px rgba(249, 92, 75, .6);
}

/* Size not chosen yet: same colour, just faded */
.ibf-single-main .single_add_to_cart_button.disabled,
.popup-quickadd .single_add_to_cart_button.disabled {
	opacity: .5 !important;
	box-shadow: none;
}

/* Buy it now - outline, fills on hover */
.ibf-buy-now {
	background-color: #fff !important;
	border: 1px solid var(--ibf-accent) !important;
	color: var(--ibf-accent) !important;
}

.ibf-buy-now:hover {
	background-color: var(--ibf-accent) !important;
	color: #fff !important;
}

/* Wishlist square + size boxes pick up the accent on hover / when chosen */
.tf-product-btn-wishlist:hover {
	border-color: var(--ibf-accent);
}

.tf-product-btn-wishlist:hover .icon {
	color: var(--ibf-accent);
}

.variant-picker-item .variant-picker-values label.style-text:hover {
	border-color: var(--ibf-accent);
}

.variant-picker-item .variant-picker-values input:checked+label.style-text,
.ibf-single-main .variant-picker-item .variant-picker-values input:checked+label.style-text:not(.color-btn) {
	background-color: var(--ibf-accent);
	border-color: var(--ibf-accent);
}

.ibf-color-sibling:hover,
.ibf-color-sibling.active {
	border-color: var(--ibf-accent);
}

/* Quick View links / arrows */
.popup-quickadd .ibf-quick-add-link:hover {
	color: var(--ibf-accent);
}

.popup-quickadd .ibf-qa-nav:hover {
	background-color: var(--ibf-accent);
}

.popup-quickadd .ibf-qa-off {
	background-color: var(--ibf-accent);
}

.popup-quickadd .ibf-qa-sale {
	background-color: var(--ibf-accent);
}

/* WooCommerce adds its own "View cart" link after an AJAX add - the drawer
   opens instead, so hide only the link. The loading spinner and the tick on
   the button stay, so the shopper sees the add happening. */
form.cart a.added_to_cart,
.tf-product-info-buy-button a.added_to_cart,
.tf-sticky-atc-infos a.added_to_cart {
	display: none !important;
}