/*
 Theme Name:   GeneratePress Child
 Theme URI:    https://generatepress.com
 Description:  Default GeneratePress child theme
 Author:       Tom Usborne
 Author URI:   https://tomusborne.com
 Template:     generatepress
 Version:      0.1
*/

/* =============================================================================
 * Global / common CSS
 *
 * Extracted from the Ecomus template stylesheet (assets/css/styles-bk.css).
 * Everything here is shared: CSS variables, the reset, typography, buttons,
 * containers, form elements, pagination dots, hover helpers and keyframes.
 *
 * Section-specific CSS does NOT live here - it sits in the <style> block of
 * the section that uses it, inside the page template.
 *
 * styles-bk.css remains the source to mine from as further pages are built.
 * ========================================================================== */

:root {
	--main: #000000;
	--white: #ffffff;
	--primary: #db1215;
	--red_1: #db1215;
	--backdrop: rgba(0, 0, 0, 0.5);
	--yellow: #ffb321;
	--main-rgba-1: rgba(0, 0, 0, 0.16);
	--main-rgba-2: rgba(0, 0, 0, 0.15);
	--text: #545454;
	--text-2:#909090;
	--text-3:#868686;
	--line: #ebebeb;
	--line-2: #ececec;
	--bg-1: #fcfbf9;
	--bg-2: #f6f6f6;
	--bg-3: #fcffb2;
	--bg-4: #c9f4aa;
	--bg-5: #ff7b54;
	--bg-6: #8054ff;
	--bg-7: #f1f0ed;
	--bg-8: #f0edf1;
	--bg-9: #edeef1;
	--bg-10: #fcfbf9;
	--bg-11: #f2f2f2;
	--success: #31A56D;
	--bg-load: #d9d9d9;
	--bg-scrollbar-track: #f1f1f1;
	--bg-scrollbar-thumb: #c1c1c1;
}

html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
	font-family: inherit;
	font-size: 100%;
	font-style: inherit;
	font-weight: inherit;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
	display: block;
}

html {
	margin-right: 0 !important;
	scroll-behavior: smooth;
}

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

body {
	font-family: "Albert Sans", sans-serif;
	font-size: 14px;
	line-height: 22px;
	font-weight: 400;
	color: var(--main);
	background-color: var(--white);
}

img {
	max-width: 100%;
	height: auto;
	transform: scale(1);
	vertical-align: middle;
	-ms-interpolation-mode: bicubic;
}

ul,
li {
	list-style-type: none;
	margin-bottom: 0;
	padding-left: 0;
	list-style: none;
}

.container {
	max-width: 1540px;
}

.container {
	width: 100%;
	margin: auto;
}

.container {
	padding-left: 15px;
	padding-right: 15px;
}

.container-full {
	width: 100%;
	max-width: 100%;
	margin: 0 auto;
	padding: 0px 15px;
}

textarea,
input[type=text],
input[type=password],
input[type=datetime],
input[type=datetime-local],
input[type=date],
input[type=month],
input[type=time],
input[type=week],
input[type=number],
input[type=email],
input[type=url],
input[type=search],
input[type=tel],
input[type=color] {
	font-family: "Albert Sans", sans-serif;
	border: 1px solid var(--line);
	outline: 0;
	-webkit-box-shadow: none;
	-moz-box-shadow: none;
	box-shadow: none;
	font-size: 14px;
	line-height: 24px;
	border-radius: 3px;
	padding: 12px 18px;
	width: 100%;
	background: var(--white);
	color: var(--text-2);
	font-weight: 400;
}

textarea:focus,
input[type=text]:focus,
input[type=password]:focus,
input[type=datetime]:focus,
input[type=datetime-local]:focus,
input[type=date]:focus,
input[type=month]:focus,
input[type=time]:focus,
input[type=week]:focus,
input[type=number]:focus,
input[type=email]:focus,
input[type=url]:focus,
input[type=search]:focus,
input[type=tel]:focus,
input[type=color]:focus {
	border-color: var(--line);
}

textarea::placeholder,
input[type=text]::placeholder,
input[type=password]::placeholder,
input[type=datetime]::placeholder,
input[type=datetime-local]::placeholder,
input[type=date]::placeholder,
input[type=month]::placeholder,
input[type=time]::placeholder,
input[type=week]::placeholder,
input[type=number]::placeholder,
input[type=email]::placeholder,
input[type=url]::placeholder,
input[type=search]::placeholder,
input[type=tel]::placeholder,
input[type=color]::placeholder {
	color: var(--text-2);
	-webkit-transition: all 0.3s ease-in-out;
	-moz-transition: all 0.3s ease-in-out;
	-ms-transition: all 0.3s ease-in-out;
	-o-transition: all 0.3s ease-in-out;
	transition: all 0.3s ease-in-out;
}

::-webkit-input-placeholder {
	color: var(--text-2);
}

:-moz-placeholder {
	color: var(--text-2);
}

::-moz-placeholder {
	color: var(--text-2);
	opacity: 1;
}

:-ms-input-placeholder {
	color: var(--text-2);
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: "Albert Sans", sans-serif;
	text-rendering: optimizeLegibility;
	color: var(--main);
	font-weight: 400;
}

a {
	-webkit-transition: all 0.3s ease-in-out;
	-moz-transition: all 0.3s ease-in-out;
	-ms-transition: all 0.3s ease-in-out;
	-o-transition: all 0.3s ease-in-out;
	transition: all 0.3s ease-in-out;
	text-decoration: none;
	cursor: pointer;
	display: inline-block;
	color: var(--main);
}

a:focus,
a:hover {
	-webkit-transition: all 0.3s ease-in-out;
	-moz-transition: all 0.3s ease-in-out;
	-ms-transition: all 0.3s ease-in-out;
	-o-transition: all 0.3s ease-in-out;
	transition: all 0.3s ease-in-out;
	text-decoration: none;
	outline: 0;
}

label {
	font-weight: 600;
}

.pt_0 {
	padding-top: 0px !important;
}

.flat-spacing-5 {
	padding: 76px 0px;
}

.flat-spacing-7 {
	padding-bottom: 60px;
}

.has-line-bottom {
	position: relative;
}

.has-line-bottom::after {
	position: absolute;
	content: "";
	bottom: 0;
	left: 50%;
	background-color: var(--line);
	height: 1px;
	width: 100%;
	max-width: 1440px;
	transform: translateX(-50%);
}

@keyframes slide-har {
  0% {
    -webkit-transform: translateX(0%);
    transform: translateX(0%);
  }
  100% {
    -webkit-transform: translateX(-100%);
    transform: translateX(-100%);
  }
}

header {
	position: sticky;
	position: -webkit-sticky;
	top: 0;
	left: 0;
	right: 0;
	-webkit-transition: 0.15s ease-out;
	-o-transition: 0.15s ease-out;
	transition: 0.15s ease-out;
	z-index: 888;
	background-color: var(--white);
}

header.header-bg {
	background-color: var(--white);
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.tf-btn {
	-webkit-transition: all 0.3s ease-in-out;
	-moz-transition: all 0.3s ease-in-out;
	-ms-transition: all 0.3s ease-in-out;
	-o-transition: all 0.3s ease-in-out;
	transition: all 0.3s ease-in-out;
	will-change: background-color, color, border;
	pointer-events: auto;
	overflow: hidden;
	font-size: 14px;
	line-height: 16px;
	font-weight: 500;
	box-sizing: border-box;
	padding: 14px 24px;
	display: inline-flex;
	border-radius: 3px;
	align-items: center;
	border: 1px solid transparent;
	background-color: transparent;
	cursor: pointer;
}

.tf-btn span {
	z-index: 1;
	color: inherit;
}

@keyframes shine {
  100% {
    left: -200%;
  }
}

@keyframes erFlashEffect {
  100%, 20% {
    left: -200%;
  }
}

@keyframes tf_rotator {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

.swiper-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet,
.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
	margin: 0px;
}

.sw-dots {
	display: flex;
	gap: 8px;
}

.sw-dots.swiper-pagination-bullets .swiper-pagination-bullet {
	display: flex;
	align-items: center;
	justify-content: center;
}

.sw-dots .swiper-pagination-bullet {
	width: 22px;
	height: 22px;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: transparent;
	opacity: 1;
	-webkit-transition: all 0.3s ease-in-out;
	-moz-transition: all 0.3s ease-in-out;
	-ms-transition: all 0.3s ease-in-out;
	-o-transition: all 0.3s ease-in-out;
	transition: all 0.3s ease-in-out;
	border: 2px solid transparent;
}

.sw-dots .swiper-pagination-bullet:before {
	content: "";
	display: inline-block;
	width: 6px;
	height: 6px;
	border-radius: 999px;
	background-color: var(--main);
	transition: 0.3s;
}

.sw-dots .swiper-pagination-bullet.swiper-pagination-bullet-active {
	background-color: rgba(0, 0, 0, 0.16);
}

.sw-dots.style-2 span::before {
	width: 8px;
	height: 8px;
	background-color: rgba(0, 0, 0, 0.16);
}

.sw-dots.style-2 span.swiper-pagination-bullet-active {
	background-color: transparent;
	border: 2px solid var(--main);
}

.sw-dots.style-2 span.swiper-pagination-bullet-active::before {
	background-color: var(--main);
}

.sw-dots:not(.swiper-pagination-lock) {
	margin-top: 15px;
}

.nav-sw {
	width: 30px;
	height: 30px;
	border-radius: 50%;
	color: var(--main);
	border: 1px solid var(--main);
	background-color: transparent;
	display: flex;
	align-items: center;
	justify-content: center;
	-webkit-transition: all 0.3s ease-in-out;
	-moz-transition: all 0.3s ease-in-out;
	-ms-transition: all 0.3s ease-in-out;
	-o-transition: all 0.3s ease-in-out;
	transition: all 0.3s ease-in-out;
	font-size: 12px;
	cursor: pointer;
}

.nav-sw.swiper-button-disabled {
	border-color: rgba(0, 0, 0, 0.14);
	color: rgba(0, 0, 0, 0.4);
}

.nav-sw:hover:not(.swiper-button-disabled) {
	background-color: var(--main);
	color: var(--white);
}

.wrap-carousel {
	position: relative;
}

.wrap-carousel .sw-dots {
	display: none;
}

@keyframes ripple {
  0% {
    box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.5);
  }
  50% {
    box-shadow: 0 0 0 20px rgba(255, 255, 255, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(255, 255, 255, 0);
  }
}

@keyframes ripple_black {
  0% {
    box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.5);
  }
  50% {
    box-shadow: 0 0 0 20px rgba(0, 0, 0, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(0, 0, 0, 0);
  }
}

.swiper-button-disabled {
	cursor: auto !important;
}

.box-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	-webkit-transition: all 0.4s ease-in-out;
	-moz-transition: all 0.4s ease-in-out;
	-ms-transition: all 0.4s ease-in-out;
	-o-transition: all 0.4s ease-in-out;
	transition: all 0.4s ease-in-out;
	cursor: pointer;
}

.hover-img .img-style {
	overflow: hidden;
}

.hover-img .img-style img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	-webkit-transition: transform 2s cubic-bezier(0, 0, 0.44, 1.18);
	transition: transform 1.5s cubic-bezier(0, 0, 0.44, 1.18);
}

.hover-img:hover img {
	-webkit-transform: scale(1.06);
	transform: scale(1.06);
}

@-webkit-keyframes tf-ani-tada {
  from, to {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
  10%, 20% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
    transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
  }
  30%, 50%, 70%, 90% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
  }
  40%, 60%, 80% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
  }
}

@keyframes tf-ani-tada {
  from, to {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
  10%, 20% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
    transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
  }
  30%, 50%, 70%, 90% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
  }
  40%, 60%, 80% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
  }
}

.btn-icon-action > *:last-child {
	display: none;
}

.btn-icon-action.active > *:first-child {
	display: none;
}

.btn-icon-action.active > *:last-child {
	display: block;
}

@keyframes tf-ani-flash {
  50%, from, to {
    opacity: 1;
  }
  25%, 75% {
    opacity: 0;
  }
}

.tooltip {
	z-index: 202;
	opacity: 0;
	visibility: hidden;
	display: block;
	position: absolute;
	top: 100%;
	margin-top: 8px;
	border-radius: 2px;
	white-space: nowrap;
	background-color: var(--main);
	color: var(--white);
	font-weight: 400;
	font-size: 12px;
	line-height: 12px;
	padding: 7px 10px 9px;
	max-width: 250px;
	width: max-content;
	transition: transform 0.4s ease 0.2s, opacity 0.4s ease 0.2s;
}

.tooltip::before {
	content: "";
	left: 50%;
	transform: translateX(-50%) rotate(45deg);
	top: -4px;
	position: absolute;
	background: var(--main);
	width: 8px;
	height: 8px;
	z-index: 100;
}

@keyframes showProduct {
  0% {
    transform: translateY(40px);
    opacity: 0;
  }
  100% {
    transform: translateY(0);
    opacity: 1;
  }
}

@keyframes infiniteScroll {
  0% {
    transform: translateX(0%);
  }
  100% {
    transform: translateX(-100%);
  }
}

@keyframes fadeShop {
  0% {
    opacity: 0;
    transform: translateY(30px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

.flat-title {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 18px;
	margin-bottom: 30px;
	padding-left: 15px;
	padding-right: 15px;
}

.flat-title .title {
	font-size: 22px;
	line-height: 26.4px;
}

.flat-title .sub-title {
	font-size: 14px;
	line-height: 20px;
	text-align: center;
}

@keyframes slideInRight {
  0% {
    transform: translateX(100%);
    opacity: 0;
  }
  100% {
    transform: translateX(0);
    opacity: 1;
  }
}

@keyframes tf-ani-flash {
  50%, from, to {
    opacity: 1;
  }
  25%, 75% {
    opacity: 0;
  }
}

@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

@media (min-width: 768px) {
	.container-full,
	.container {
		padding-left: 30px;
		padding-right: 30px;
	}

	.flat-title {
		margin-bottom: 50px;
	}

	.flat-title .title {
		font-size: 32px;
		line-height: 38.4px;
	}

	.flat-title .sub-title {
		font-size: 16px;
		line-height: 22px;
	}
}

@media (min-width: 1150px) {
	.container {
		padding-left: 50px;
		padding-right: 50px;
	}

	.container-full {
		padding-left: 40px;
		padding-right: 40px;
	}

	.flat-title {
		margin-bottom: 60px;
	}

	.flat-title .title {
		font-size: 42px;
		line-height: 50.4px;
	}
}

@media only screen and (max-width: 1470px) {
	.has-line-bottom {
		position: relative;
	}

	.has-line-bottom::after {
		left: 15px;
		right: 15px;
		transform: unset;
		width: unset;
	}
}

@media only screen and (max-width: 1149px) {
	.sw-dots.style-2 span::before {
		width: 6px;
		height: 6px;
	}

	.sw-dots.style-2 span.swiper-pagination-bullet-active {
		border-width: 1px;
	}

	.sw-dots.style-2 span.swiper-pagination-bullet-active::before {
		width: 4px;
		height: 4px;
	}

	.flat-spacing-5 {
		padding: 64px 0px;
	}

	.flat-spacing-7 {
		padding-bottom: 50px;
	}
}

@media only screen and (max-width: 767px) {
	.tf-variant-item > *:first-child {
		padding: 0;
	}

	.sw-dots {
		gap: 4px;
	}

	.sw-dots .swiper-pagination-bullet {
		width: 16px;
		height: 16px;
	}

	.nav-sw {
		width: 24px;
		height: 24px;
	}

	.flat-spacing-5 {
		padding: 38px 0px;
	}

	.flat-spacing-7 {
		padding-bottom: 45px;
	}

	.wrap-carousel .sw-dots {
		display: flex;
		margin-top: 15px;
	}

	.tf-btn:not(.btn-xl,
	.btn-md,
	.btn-line,
	.style-2,
	.style-3) {
		padding: 10px 24px;
	}

	.sw-dots.style-2 span,
	.sw-dots.medium span {
		width: 16px;
		height: 16px;
		border-width: 1px !important;
	}
}

@keyframes slide-har-reverse {
  0% {
    -webkit-transform: translateX(0%);
    transform: translateX(0%);
  }
  100% {
    -webkit-transform: translateX(100%);
    transform: translateX(100%);
  }
}


/* =============================================================================
 * Shared components picked up while building the product detail page.
 *
 * These matched in more than one section, or outside the sections entirely, so
 * they are common rather than page-specific: the product card, carousel
 * navigation, loading buttons and the grid row helpers.
 * ========================================================================== */

.row {
	margin-right: -15px;
	margin-left: -15px;
}

.row > * {
	padding-left: 15px;
	padding-right: 15px;
}

.bg_white {
	background-color: var(--white) !important;
}

.link {
	-webkit-transition: all 0.3s ease-in-out;
	-moz-transition: all 0.3s ease-in-out;
	-ms-transition: all 0.3s ease-in-out;
	-o-transition: all 0.3s ease-in-out;
	transition: all 0.3s ease-in-out;
}

.link:hover {
	color: var(--primary) !important;
}

.flat-spacing-4 {
	padding-top: 55px;
	padding-bottom: 100px;
}

.hover-sw-nav .sw-dots {
	margin-top: 15px;
	position: relative;
	z-index: 10;
	display: none;
	transform: unset !important;
	bottom: unset;
}

.tf-loading-default,
.tf-btn-loading {
	position: relative;
	-webkit-transition: all 0.3s ease-in-out;
	-moz-transition: all 0.3s ease-in-out;
	-ms-transition: all 0.3s ease-in-out;
	-o-transition: all 0.3s ease-in-out;
	transition: all 0.3s ease-in-out;
}

.tf-loading-default.loading,
.tf-btn-loading.loading {
	background-color: var(--main);
}

.tf-loading-default.loading .icon,
.tf-loading-default.loading i,
.tf-btn-loading.loading .icon,
.tf-btn-loading.loading i {
	display: none;
}

.tf-loading-default.loading::before,
.tf-btn-loading.loading::before {
	border: solid 2px var(--white);
	opacity: 1;
	animation-play-state: running;
}

.tf-loading-default::before,
.tf-btn-loading::before {
	width: 18px;
	height: 18px;
	border: solid 2px transparent;
	border-top-color: transparent !important;
	content: "";
	position: absolute;
	z-index: 2;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	margin: auto;
	border-radius: 50%;
	animation: tf_rotator 0.6s linear infinite paused;
	opacity: 0;
}

.nav-sw.round {
	border-radius: 999px;
}

.hover-sw-nav {
	position: relative;
}

.hover-sw-nav .nav-sw {
	z-index: 10;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	-webkit-transition: all 0.4s ease-in-out;
	-moz-transition: all 0.4s ease-in-out;
	-ms-transition: all 0.4s ease-in-out;
	-o-transition: all 0.4s ease-in-out;
	transition: all 0.4s ease-in-out;
	cursor: pointer;
	visibility: hidden;
	background-color: var(--white);
	border-color: transparent;
}

.hover-sw-nav .nav-sw.nav-next-slider {
	margin-left: 20px;
	left: 13px;
}

.hover-sw-nav .nav-sw.nav-prev-slider {
	right: 13px;
	margin-right: 20px;
}

.hover-sw-nav .nav-sw.w_46 .icon {
	font-size: 12px;
}

.hover-sw-nav .nav-sw.swiper-button-disabled {
	background-color: rgba(0, 0, 0, 0.2);
}

.hover-sw-nav .nav-sw:hover:not(.swiper-button-disabled) {
	background-color: var(--main);
	color: var(--white);
}

.hover-sw-nav.view-default .nav-sw,
.hover-sw-nav:hover .nav-sw {
	margin: 0;
	visibility: visible;
}

.hover-sw-nav.hover-sw-2 .nav-sw {
	top: 37%;
}

.box-icon.w_46 {
	width: 46px;
	height: 46px;
}

.box-icon.round {
	border-radius: 50% !important;
}

.card-product {
	-webkit-transition: all 0.3s ease-in-out;
	-moz-transition: all 0.3s ease-in-out;
	-ms-transition: all 0.3s ease-in-out;
	-o-transition: all 0.3s ease-in-out;
	transition: all 0.3s ease-in-out;
	text-align: start;
}

.card-product .product-img {
	display: flex;
	width: 100%;
	height: 100%;
	position: relative;
	align-items: stretch;
}

.card-product .card-product-wrapper {
	position: relative;
	border-radius: 10px;
	overflow: hidden;
	z-index: 20;
	aspect-ratio: 1/1.4;
}

.card-product .card-product-wrapper img {
	display: block;
	height: 100%;
	width: 100%;
	object-fit: cover;
	object-position: center;
	transition: opacity 0.5s ease, transform 2s cubic-bezier(0, 0, 0.44, 1.18);
}

.card-product .card-product-wrapper .img-hover {
	position: absolute;
	inset: 0;
	opacity: 0;
}

.card-product .card-product-wrapper:hover .product-img .img-product {
	opacity: 0;
}

.card-product .card-product-wrapper:hover .product-img .img-hover {
	display: block;
	z-index: 1;
	opacity: 1;
	-webkit-transform: scale(1.09);
	transform: scale(1.09);
}

.card-product .card-product-wrapper .list-product-btn {
	z-index: 10;
	position: absolute;
	bottom: 48px;
	left: 15px;
	right: 15px;
}

.card-product .card-product-wrapper .on-sale-wrap {
	position: absolute;
	top: 5px;
	right: 5px;
	left: 5px;
	z-index: 5;
}

.card-product .card-product-wrapper .on-sale-wrap .on-sale-item {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	word-break: break-word;
	padding: 0 6px;
	min-width: 40px;
	text-transform: capitalize;
	font-size: 12px;
	font-weight: 500;
	text-align: center;
	line-height: 22px;
	position: relative;
	background-color: #fc5732;
	color: var(--white);
	border-radius: 999px;
}

.card-product .card-product-info {
	padding-top: 10px;
	gap: 8px;
	display: grid;
}

.card-product .card-product-info .title {
	font-size: 16px;
	line-height: 19.2px;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	display: -webkit-box;
	overflow: hidden;
}

.card-product .card-product-info .price {
	font-size: 14px;
	line-height: 14px;
	font-weight: 600;
}

.card-product .card-product-info.has-padding {
	padding-right: 15px;
	padding-left: 15px;
	padding-bottom: 30px;
}

.list-product-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 5px;
}

.list-product-btn .box-icon {
	width: 32px;
	height: 32px;
	min-width: 32px;
	border-radius: 3px;
	box-shadow: 0 8px 24px rgba(149, 157, 165, 0.2);
	background-color: rgb(242, 242, 242);
	position: relative;
}

.list-product-btn .box-icon .icon {
	font-size: 14px;
	font-weight: 500;
	height: 13px;
}

.list-product-btn .box-icon .tooltip {
	top: -100%;
	margin-top: 5px;
}

.list-product-btn .box-icon .tooltip::before {
	top: unset;
	bottom: -4px;
}

.list-product-btn .box-icon:hover {
	background-color: var(--main) !important;
	color: var(--white);
}

.list-product-btn .box-icon:hover .tooltip {
	opacity: 0.9;
	visibility: visible;
}

.pswp__bg {
	background: var(--white);
}

.pswp__counter {
	color: #222;
	text-shadow: 1px 1px 3px #ffffff;
}

.wrap-sw-over {
	padding-bottom: 40px;
	margin-bottom: -40px;
	padding-left: 30px;
	margin-left: -30px;
}

@media (min-width: 576px) {
	.list-product-btn .box-icon {
		width: 36px;
		height: 36px;
	}
}

@media (min-width: 768px) {
	.hover-sw-nav .sw-dots {
		margin-top: 30px;
	}

	.card-product .card-product-info {
		padding-top: 15px;
		gap: 10px;
	}

	.card-product .card-product-wrapper .list-product-btn {
		bottom: 40px;
	}

	.card-product .card-product-wrapper .on-sale-wrap {
		top: 10px;
		left: 10px;
		right: 10px;
	}

	.card-product .card-product-wrapper .on-sale-wrap .on-sale-item {
		padding: 0 10px;
		min-width: 59px;
		font-size: 14px;
		line-height: 29px;
	}
}

@media (min-width: 992px) {
	.list-product-btn .box-icon {
		width: 40px;
		height: 40px;
	}
}

@media (min-width: 1150px) {
	.card-product .card-product-info {
		padding-top: 20px;
		gap: 12px;
	}

	.card-product:not(.list-layout) .box-icon {
		transform: translateY(20px);
		opacity: 0;
		visibility: hidden;
	}

	.card-product:not(.list-layout) .box-icon:nth-child(1) {
		transition: transform 0.4s ease 0s, opacity 0.4s ease 0s;
	}

	.card-product:not(.list-layout) .box-icon:nth-child(2) {
		transition: transform 0.4s ease 0.2s, opacity 0.4s ease 0s;
	}

	.card-product:not(.list-layout) .box-icon:nth-child(3) {
		transition: transform 0.4s ease 0.3s, opacity 0.4s ease 0s;
	}

	.card-product:not(.list-layout) .box-icon:nth-child(4) {
		transition: transform 0.4s ease 0.4s, opacity 0.4s ease 0s;
	}

	.card-product .card-product-wrapper .on-sale-wrap {
		top: 15px;
		left: 15px;
		right: 15px;
	}

	.card-product:hover .btn-quick-add,
	.card-product:hover .box-icon,
	.card-product:hover .size-list {
		opacity: 1;
		visibility: visible;
		transform: translateY(0);
	}

	.list-product-btn {
		gap: 6px;
	}

	.list-product-btn .box-icon {
		width: 42px;
		height: 42px;
	}
}

@media (min-width: 1440px) {
	.card-product .card-product-wrapper .list-product-btn {
		bottom: 48px;
	}
}

@media only screen and (max-width: 1149px) {
	.hover-sw-nav .sw-dots {
		display: flex;
	}

	.hover-sw-nav .nav-sw {
		display: none;
	}

	.flat-spacing-4 {
		padding-top: 46px;
		padding-bottom: 85px;
	}

	.nav-sw.w_46 {
		width: 40px;
		height: 40px;
	}
}

@media only screen and (max-width: 991px) {
	.card-product .list-product-btn .box-icon .tooltip {
		margin-top: 0;
	}
}

@media only screen and (max-width: 767px) {
	.card-product .countdown-box,
	.card-product .size-list,
	.card-product .wishlist,
	.card-product .compare {
		display: none;
	}

	.card-product .card-product-wrapper .list-product-btn {
		bottom: 5px;
		left: 5px;
		right: 5px;
	}

	.card-product.has-marquee .list-product-btn {
		bottom: 40px;
	}

	.card-product.has-marquee .card-product-wrapper {
		padding-bottom: 36px;
	}

	.flat-spacing-4 {
		padding-top: 33px;
		padding-bottom: 60px;
	}
}

@media only screen and (max-width: 575px) {
	.card-product .list-product-btn .box-icon .tooltip {
		display: none;
	}
}

/* -----------------------------------------------------------------------------
 * Product card colour swatches.
 *
 * Missed by the earlier CSS pass because no product had a colour attribute at
 * the time, so nothing on the page matched these selectors. Without the
 * ".list-color-item img" rule the swatch images render at full size and stack,
 * which blew the Best Seller grid row out to three times its height.
 * -------------------------------------------------------------------------- */

.list-color-product {
	display: flex;
	gap: 8.5px;
	margin-top: 2px;
	flex-wrap: wrap;
}

.list-color-product .list-color-item {
	width: 26px;
	height: 26px;
	padding: 3px;
	border: solid 1px rgb(238, 238, 238);
	background-color: transparent;
	-webkit-transition: all 0.4s ease-in-out;
	-moz-transition: all 0.4s ease-in-out;
	-ms-transition: all 0.4s ease-in-out;
	-o-transition: all 0.4s ease-in-out;
	transition: all 0.4s ease-in-out;
	border-radius: 50%;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
}

.list-color-product .list-color-item .swatch-value {
	width: 18px;
	height: 18px;
	display: inline-block;
	border-radius: 50%;
	border: 3px solid transparent;
	-webkit-transition: all 0.4s ease-in-out;
	-moz-transition: all 0.4s ease-in-out;
	-ms-transition: all 0.4s ease-in-out;
	-o-transition: all 0.4s ease-in-out;
	transition: all 0.4s ease-in-out;
}

.list-color-product .list-color-item .sold-out::after {
	content: "";
	width: 90%;
	height: 1px;
	background: rgb(34, 34, 34);
	display: block;
	position: absolute;
	z-index: 22;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%) rotate(135deg);
}

.list-color-product .list-color-item img {
	visibility: hidden;
	width: 18px;
	height: 18px;
	position: absolute;
}

.list-color-product .list-color-item.active,
.list-color-product .list-color-item:hover {
	border-color: var(--main);
}

.list-color-product .list-color-item.active .swatch-value,
.list-color-product .list-color-item:hover .swatch-value {
	border-color: var(--white);
}

.list-color-product .list-color-item:hover .tooltip {
	opacity: 0.9;
	visibility: visible;
}

.list-color-product .list-color-item .tooltip {
	text-transform: capitalize;
	margin-top: 5px;
	padding: 7px 10px;
}

@media only screen and (max-width: 1149px) {
	.list-color-product .list-color-item {
		width: 20px;
		height: 20px;
		padding: 2px;
	}

	.list-color-product .list-color-item .swatch-value {
		width: 14px;
		height: 14px;
		border-width: 1px;
	}
}

@media only screen and (max-width: 767px) {
	.tf-product-btn-wishlist .tooltip,
	.list-color-product .list-color-item .tooltip {
		display: none;
	}
}

/* -----------------------------------------------------------------------------
 * Product card size list.
 *
 * Same story as the colour swatches: no product carried a size attribute when
 * the CSS was first split, so these never got pulled across. Without them the
 * sizes render as plain text under the card instead of the overlay strip that
 * slides up on hover.
 * -------------------------------------------------------------------------- */

.card-product .card-product-wrapper .size-list {
	position: absolute;
	z-index: 20;
	bottom: 0;
	left: 0;
	right: 0;
}

.size-list {
	background-color: rgba(0, 0, 0, 0.3);
	gap: 10px;
	height: 30px;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	transition: 0.4s ease 0.1s;
}

.size-list span {
	font-size: 12px;
	font-weight: 600;
	line-height: 22px;
	color: rgb(242, 242, 242);
}

.size-list.style-2 {
	height: 33px;
	gap: 5px;
	background-color: var(--white);
}

.size-list.style-2 span {
	color: var(--main);
	min-width: 30px;
	height: 26px;
	border-radius: 3px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid rgb(236, 236, 236);
}

.size-list.style-3 {
	background-color: rgba(255, 255, 255, 0.5);
}

.size-list.style-3 span {
	color: var(--main);
}

@media (min-width: 992px) {
	.size-list {
		height: 30px;
		gap: 15px;
	}

	.size-list.style-2 {
		height: 40px;
		gap: 6px;
	}

	.size-list.style-2 span {
		height: 30px;
		min-width: 35px;
	}
}

@media (min-width: 1150px) {
	.card-product:not(.list-layout) .size-list {
		opacity: 0;
		visibility: hidden;
		transform: translateY(100%);
	}

	.size-list.style-2 {
		height: 42px;
		gap: 9px;
	}
}

/* -----------------------------------------------------------------------------
 * Quick Add modal.
 *
 * The modal lives in the footer on every page that lists products, so its CSS
 * is global rather than section-scoped.
 * -------------------------------------------------------------------------- */

.popup-quickadd .ibf-qa-dialog {
	max-width: min(820px, calc(100vw - 32px));
}

/*
 * The media column runs edge to edge, so the padding that used to sit on the
 * modal moves inside the content column and the corners are clipped here.
 */
.modal.popup-quickadd .modal-content {
	/*
	 * .modalDemo gives every modal a flex content box with side margins. Both
	 * fight the split layout: the margins shrink the dialog by 60px and the
	 * flex context stops the grid from filling it.
	 */
	display: block;
	margin: 0;
	padding: 0;
	overflow: hidden;
	border-radius: 12px;
}

/*
 * The close button used to sit in a .header row, which is where the template
 * positioned it. There is no header row in the split layout, so it positions
 * itself against the modal and is lifted out of the flow.
 */
.popup-quickadd .modal-content .icon-close-popup {
	position: absolute;
	top: 16px;
	right: 16px;
	z-index: 3;
	cursor: pointer;
}

.popup-quickadd .ibf-qa-grid {
	width: 100%;
	display: grid;
	grid-template-columns: 340px minmax(0, 1fr);
	align-items: stretch;
}

/*
 * The image fills its column whatever the source aspect ratio: the column is
 * the frame, cover does the cropping. Without a min-height the column would
 * collapse to the image's own height when the content column is shorter.
 */
.popup-quickadd .ibf-qa-media {
	position: relative;
	min-height: 100%;
	background-color: var(--line);
}

.popup-quickadd .ibf-qa-media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.popup-quickadd .ibf-qa-content {
	padding: 34px 32px;
	max-height: min(86vh, 700px);
	overflow-y: auto;
}

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

.popup-quickadd .ibf-qa-head {
	margin-bottom: 14px;
	padding-right: 30px;
}

.popup-quickadd .ibf-qa-title {
	margin: 0 0 8px;
	font-size: 22px;
	line-height: 1.3;
	font-weight: 500;
}

.popup-quickadd .ibf-qa-title a {
	color: inherit;
	text-decoration: none;
}

.popup-quickadd .ibf-qa-price {
	font-size: 20px;
	line-height: 1.2;
	font-weight: 500;
	color: var(--main);
}

.popup-quickadd .ibf-qa-price del { opacity: .5; margin-right: 8px; font-weight: 400; }
.popup-quickadd .ibf-qa-price ins { text-decoration: none; }
.popup-quickadd .ibf-qa-price .woocommerce-Price-amount { font: inherit; color: inherit; }
/* WooCommerce repeats the price as "Original price was: …" for screen readers. */
.popup-quickadd .ibf-qa-price .screen-reader-text { display: none; }

.popup-quickadd .ibf-qa-desc {
	margin: 0 0 22px;
	font-size: 14px;
	line-height: 22px;
	color: var(--text);
}

.popup-quickadd .payment-more-option {
	text-decoration: none;
}

.popup-quickadd .payment-more-option:hover {
	text-decoration: underline;
}

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

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

	.popup-quickadd .tf-btn {
		font-size: 14px !important;
	}
}

/*
 * Below the fold of a phone the two columns cannot both be useful, so the
 * image becomes a banner and the content flows under it.
 */
@media only screen and (max-width: 767px) {
	.popup-quickadd .ibf-qa-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.popup-quickadd .ibf-qa-media {
		height: 230px;
		min-height: 0;
	}

	.popup-quickadd .ibf-qa-content {
		padding: 22px 18px 26px;
		max-height: none;
	}

	.popup-quickadd .ibf-qa-title {
		font-size: 19px;
	}
}

/* Local additions for the dynamic version of the modal. */
.popup-quickadd .ibf-quick-add-body { min-height: 120px; }
.popup-quickadd .ibf-quick-add-note {
	margin: 0 0 14px;
	font-size: 14px;
	color: var(--text);
}
.popup-quickadd .ibf-quick-add-link {
	display: block;
	margin-top: 14px;
	text-align: center;
	font-size: 14px;
	text-decoration: underline;
}
.popup-quickadd .tf-product-info-price .woocommerce-Price-amount { font: inherit; color: inherit; }
.popup-quickadd .tf-product-info-price del { opacity: .5; margin-right: 6px; }
.popup-quickadd .tf-product-info-buy-button {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	align-items: center;
}
.popup-quickadd .btn-add-to-cart {
	height: 49px;
	border: 0;
	cursor: pointer;
	flex: 1 1 200px;
}
.popup-quickadd .ibf-variation-selects { display: none; }
.popup-quickadd .woocommerce-variation-add-to-cart {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	align-items: center;
}
.popup-quickadd .woocommerce-variation-add-to-cart .quantity {
	display: flex;
	align-items: center;
	height: 46px;
	border: 1px solid var(--line);
	border-radius: 3px;
	overflow: hidden;
}
.popup-quickadd .woocommerce-variation-add-to-cart .quantity .qty {
	width: 70px;
	height: 100%;
	border: 0;
	text-align: center;
	background-color: transparent;
}
body .popup-quickadd button.single_add_to_cart_button {
	flex: 1 1 180px;
	height: 49px;
	padding: 0 22px;
	border: 0;
	border-radius: 3px;
	background-color: var(--main);
	color: var(--white);
	font-size: 16px;
	font-weight: 600;
	cursor: pointer;
}

/* -----------------------------------------------------------------------------
 * Quantity stepper.
 *
 * Was scoped to the single-product section by the earlier split, since that was
 * the only place it appeared. The Quick Add modal needs it too, so it moves to
 * the shared sheet.
 * -------------------------------------------------------------------------- */

.wg-quantity .quantity-product {
	pointer-events: none;
}

.tf-product-info-quantity .quantity-title {
	margin-bottom: 5px;
}

.wg-quantity {
	width: 127px;
	display: flex;
	justify-content: space-between;
	background-color: rgb(242, 242, 242);
	border-radius: 3px;
	overflow: hidden;
}

.wg-quantity input {
	width: 51px;
	height: 46px;
	padding: 0;
	background-color: transparent;
	border: 0;
	text-align: center;
	font-size: 16px;
	font-weight: 600;
	line-height: 26px;
	color: var(--main);
}

.wg-quantity .btn-quantity {
	width: 38px;
	height: 46px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 24px;
	color: var(--main);
	cursor: pointer;
	-webkit-transition: all 0.3s ease-in-out;
	-moz-transition: all 0.3s ease-in-out;
	-ms-transition: all 0.3s ease-in-out;
	-o-transition: all 0.3s ease-in-out;
	transition: all 0.3s ease-in-out;
}

.wg-quantity .btn-quantity:hover {
	color: var(--primary);
}

.wg-quantity.small {
	width: 109px;
	height: 30px;
}

.wg-quantity.small .btn-quantity {
	width: 27px;
	height: 30px;
	font-size: 20px;
}

.wg-quantity.small input {
	width: 30px;
	height: 30px;
	font-size: 12px;
	line-height: 30px;
}

.tf-cart-item .wg-quantity {
	min-width: 86px;
	width: 86px;
	height: 30px;
}

.tf-cart-item .wg-quantity .btn-quantity {
	width: 25px;
	height: 30px;
	line-height: 25px;
}

.tf-cart-item .wg-quantity input {
	width: 30px;
	height: 30px;
	font-size: 12px;
	font-weight: 500;
	line-height: 16.8px;
}

/* -----------------------------------------------------------------------------
 * Modal shell, globally.
 *
 * These were scoped to the single-product section by an earlier split, so the
 * Quick Add modal - which lives in the footer - inherited none of them and its
 * close button fell back to position: static, landing top-left.
 * -------------------------------------------------------------------------- */

.mb_15 {
	margin-bottom: 15px;
}

.modalDemo .modal-content {
	padding: 0 50px 40px;
	background-color: var(--white);
	width: 100%;
	border-radius: 10px;
	margin: 0 30px;
	max-height: calc(100vh - 60px);
	border: 0;
	cursor: default;
	overflow: hidden;
}

.modalDemo .header {
	position: relative;
}

.modalDemo .header .icon-close-popup {
	position: absolute;
	top: 18px;
	right: 0;
	width: 30px;
	height: 30px;
	display: inline-flex;
	justify-content: flex-end;
	background-color: transparent;
	border: none;
	cursor: pointer;
	color: rgb(134, 134, 134);
}

/* Quick Add fixes. */
.popup-quickadd .tf-product-info-variant-picker,
.popup-quickadd .tf-product-info-quantity { margin-bottom: 15px; }

/* --------------------------------------------------------------------------
 * Card action buttons (wishlist, compare).
 *
 * The .active icon swap comes from .btn-icon-action, which these buttons keep.
 * What is added here is only the in-flight state and the header counter.
 * -------------------------------------------------------------------------- */

.ibf-wishlist.loading,
.ibf-compare.loading {
	pointer-events: none;
	opacity: .55;
}

.ibf-wishlist-count.is-empty {
	display: none;
}

/*
 * The single product page's compare control is a text row, not an icon button,
 * so it has no icon to swap. Its label changes with the state; the underline is
 * the visual half. Colour would not work here - --main is the body colour.
 */
.tf-product-extra-icon.ibf-compare.active .text {
	text-decoration: underline;
	text-underline-offset: 3px;
}


/* --------------------------------------------------------------------------
 * Compare drawer.
 *
 * Pulled from the template stylesheet rather than rewritten: the drawer never
 * rendered when the page CSS was split, so none of its rules were captured.
 * The compare table's own styles live in template-compare.php.
 * -------------------------------------------------------------------------- */

.canvas-compare {
  height: max-content !important;
  z-index: 5000;
}

.canvas-compare .close-popup {
  position: absolute;
  top: 30px;
  right: 30px;
  width: 30px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  cursor: pointer;
}

.canvas-compare .canvas-body {
  padding: 28px 0;
}

.canvas-compare .canvas-wrapper {
  height: unset;
}

.tf-compare-list {
  display: flex;
  align-items: center;
}

.tf-compare-list .tf-compare-head {
  flex: 0 0 22%;
  display: flex;
  align-items: center;
}

.tf-compare-list .tf-compare-head .title {
  font-size: 28px;
  line-height: 34px;
}

.tf-compare-list .tf-compare-offcanvas {
  display: flex;
  align-items: center;
  flex: 1 1 63%;
  overflow-x: auto;
}

.tf-compare-list .tf-compare-offcanvas .tf-compare-item {
  flex: 0 0 16.666%;
  padding: 0 10px;
  position: relative;
}

.tf-compare-list .tf-compare-offcanvas .tf-compare-item .icon {
  position: absolute;
  z-index: 5;
  top: 6px;
  right: 6px;
  width: 25px;
  height: 25px;
  background-color: var(--white);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 8px;
}

.tf-compare-list .tf-compare-offcanvas .tf-compare-item img {
  width: 100%;
  object-fit: cover;
}

/*
 * Every product image on this site is portrait at 1:1.4 - the cards crop to it
 * and the photography assumes it. The template's compare thumbnails inherited
 * a square box, which cut the top and bottom off every saree. Same frame as the
 * cards, so the drawer reads as the same catalogue.
 */
.tf-compare-list .tf-compare-offcanvas .tf-compare-item img {
	aspect-ratio: 1 / 1.4;
	height: auto;
	display: block;
}

.tf-compare-list .tf-compare-buttons {
  display: flex;
  align-items: center;
  justify-content: end;
  flex: 0 0 15%;
}

.tf-compare-list .tf-compare-buttons a {
  height: 47px;
  width: 147px;
}

.tf-compare-list .tf-compare-buttons .tf-compapre-button-clear-all {
  margin-top: 24px;
  font-weight: 600;
  line-height: 19px;
  text-align: center;
  text-decoration: underline;
  text-underline-offset: 4px;
  cursor: pointer;
}

.tf-compare-item {
  padding: 16px 10px;
  display: flex;
  flex-direction: column;
  text-align: center;
}

.tf-compare-item .tf-compare-remove {
  font-size: 12px;
  line-height: 19px;
  color: var(--text);
  text-decoration: underline;
  transition: 0.3s ease;
  cursor: pointer;
}

.tf-compare-item .tf-compare-image {
  width: 100%;
  padding: 18px 0;
}

.tf-compare-item .tf-compare-title {
  font-size: 16px;
  line-height: 25.6px;
  white-space: nowrap;
  text-overflow: ellipsis;
  max-width: 100%;
  overflow: hidden;
}

.tf-compare-item .price {
  margin-top: 10px;
  font-size: 16px;
  line-height: 16px;
  font-weight: 600;
}

.tf-compare-item .price .compare-at-price {
  font-size: 13px;
  line-height: 13px;
  text-decoration: line-through;
  color: rgba(0, 0, 0, 0.55);
  margin-right: 10px;
}

.tf-compare-item .price .price-on-sale {
  color: var(--primary);
}

.tf-compare-item .tf-compare-group-btns {
  margin-top: 21px;
  margin-bottom: 24px;
  justify-content: center;
}

.tf-compare-item .tf-compare-group-btns a {
  padding: 0 15px;
  font-size: 12px;
  font-weight: 700;
  height: 42px;
  gap: 10px;
  border-color: var(--line);
}

.tf-compare-item .tf-compare-group-btns a i {
  font-size: 15px;
}

.tf-compare-item .tf-compare-group-btns a span {
  display: none;
}

@media (min-width: 1150px) {
.tf-compare-item {
    padding: 16px 34px;
  }
  .tf-compare-item .tf-compare-group-btns a span {
    display: block;
  }
}

@media only screen and (max-width: 1399px) {
.canvas-compare .close-popup {
    top: 4px;
    right: 4px;
  }
}

@media only screen and (max-width: 1024px) {
.canvas-compare .canvas-body {
    padding: 20px 0;
  }
  .tf-compare-list {
    flex-direction: column;
    max-height: 100%;
    overflow-y: auto;
    gap: 20px;
  }
  .tf-compare-list > div {
    flex: 0 0 100% !important;
  }
  .tf-compare-list .tf-compare-offcanvas {
    width: 100%;
  }
  .tf-compare-list .tf-compare-offcanvas .tf-compare-item {
    flex: 0 0 25%;
  }
  .tf-compare-list .tf-compare-buttons {
    width: 100%;
  }
  .tf-compare-list .tf-compare-buttons .tf-compare-buttons-wrap {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 12px;
  }
  .tf-compare-list .tf-compare-buttons .tf-compare-buttons-wrap a {
    max-width: 147px;
  }
}

@media only screen and (max-width: 767px) {
.tf-compare-list .tf-compare-head .title {
    font-size: 24px;
  }
  .tf-compare-list .tf-compare-offcanvas .tf-compare-item {
    flex: 0 0 33.333%;
    padding: 0 8px;
  }
}

@media only screen and (max-width: 575px) {
.tf-compare-list .tf-compare-offcanvas .tf-compare-item {
    flex: 0 0 50%;
  }
}


/*
 * .btn-fill was missed by the page CSS split: no filled button rendered on the
 * home page at the moment the stylesheet was classified, so the rule was never
 * captured. Without it every .tf-btn.btn-fill on the site draws as bare text.
 */
.btn-fill {
	background-color: var(--main);
	border: 1px solid var(--main);
	color: var(--white);
}

.animate-hover-btn.btn-fill::after {
	background-image: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.25), transparent);
}

/* --------------------------------------------------------------------------
 * Standing compare button + drawer notice.
 *
 * The drawer only opened when a product was added, so a visitor who dismissed
 * it had no route back to the list and no way to take anything off it. This
 * button is that route.
 * -------------------------------------------------------------------------- */

.ibf-compare-fab {
	position: fixed;
	left: 20px;
	bottom: 20px;
	z-index: 1035;
	display: flex;
	align-items: center;
	gap: 8px;
	height: 46px;
	padding: 0 18px;
	border: 0;
	border-radius: 999px;
	background-color: var(--main);
	color: var(--white);
	font-size: 14px;
	font-weight: 600;
	line-height: 1;
	cursor: pointer;
	box-shadow: 0 6px 20px rgba(0, 0, 0, .18);
	transition: transform .25s ease, opacity .25s ease;
}

.ibf-compare-fab:hover {
	color: var(--white);
	transform: translateY(-2px);
}

.ibf-compare-fab .icon {
	font-size: 17px;
}

.ibf-compare-fab-count {
	min-width: 20px;
	height: 20px;
	padding: 0 5px;
	border-radius: 999px;
	background-color: var(--white);
	color: var(--main);
	font-size: 12px;
	line-height: 20px;
	text-align: center;
}

/*
 * Nothing on the list means nothing to go back to: the button takes itself out
 * of the way rather than sitting there reading "0".
 */
.ibf-compare-fab.is-empty {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateY(8px);
}

.ibf-compare-notice {
	margin: 0 0 16px;
	padding: 10px 14px;
	border-radius: 3px;
	background-color: var(--surface, #f6f6f6);
	font-size: 14px;
	line-height: 21px;
	color: var(--main);
}

@media only screen and (max-width: 767px) {
	.ibf-compare-fab {
		left: 16px;
		bottom: 16px;
		height: 42px;
		padding: 0 14px;
	}

	.ibf-compare-fab-label {
		display: none;
	}
}
