:root {
	--wd-text-font: "Proxima-nova", Arial, Helvetica, sans-serif;
	--wd-text-font-weight: 400;
	--wd-text-color: rgb(42,41,38);
	--wd-text-font-size: 16px;
	--wd-title-font: "Proxima-nova", Arial, Helvetica, sans-serif;
	--wd-title-font-weight: 700;
	--wd-title-transform: capitalize;
	--wd-title-color: rgb(25,24,23);
	--wd-entities-title-font: "Proxima-nova", Arial, Helvetica, sans-serif;
	--wd-entities-title-font-weight: 400;
	--wd-entities-title-color: rgb(25,24,23);
	--wd-entities-title-color-hover: rgb(51 51 51 / 65%);
	--wd-alternative-font: "Bree-greek-variable", Arial, Helvetica, sans-serif;
	--wd-widget-title-font: "Proxima-nova", Arial, Helvetica, sans-serif;
	--wd-widget-title-font-weight: 700;
	--wd-widget-title-transform: uppercase;
	--wd-widget-title-color: rgb(42,41,38);
	--wd-widget-title-font-size: 16px;
	--wd-header-el-font: "Proxima-nova", Arial, Helvetica, sans-serif;
	--wd-header-el-font-weight: 600;
	--wd-header-el-transform: uppercase;
	--wd-header-el-font-size: 13px;
	--wd-otl-style: dotted;
	--wd-otl-width: 2px;
	--wd-primary-color: rgb(25,24,23);
	--wd-alternative-color: rgb(250,248,246);
	--btn-default-font-family: "Proxima-nova", Arial, Helvetica, sans-serif;
	--btn-default-font-weight: 700;
	--btn-default-transform: capitalize;
	--btn-default-bgcolor: #191817;
	--btn-default-bgcolor-hover: rgb(250,248,246);
	--btn-accented-font-family: "Proxima-nova", Arial, Helvetica, sans-serif;
	--btn-accented-font-weight: 700;
	--btn-accented-transform: capitalize;
	--btn-accented-bgcolor: rgb(250,248,246);
	--btn-accented-bgcolor-hover: #191817;
	--wd-form-brd-width: 2px;
	--notices-success-bg: rgb(203,222,211);
	--notices-success-color: rgb(42,41,38);
	--notices-warning-bg: rgb(212,175,55);
	--notices-warning-color: #fff;
	--wd-link-color: rgb(42,41,38);
	--wd-link-color-hover: rgb(212,175,55);
	--wd-link-decor-color: rgb(212,175,55);
	--wd-link-decor-color-hover: rgb(42,41,38);
	--wd-sticky-btn-height: 95px;
}
.wd-age-verify-wrap {
	--wd-popup-width: 500px;
}
.wd-popup.wd-promo-popup {
	background-color: rgb(255,255,255);
	background-image: url(https://kallist.gr/wp-content/uploads/2021/09/glasses-popup.jpg);
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center center;
}
.wd-promo-popup-wrap {
	--wd-popup-width: 800px;
}
:is(.woodmart-woocommerce-layered-nav, .wd-product-category-filter) .wd-scroll-content {
	max-height: 350px;
}
.wd-page-title .wd-page-title-bg img {
	object-fit: cover;
	object-position: center center;
}
.wd-footer {
	background-color: #ffffff;
	background-image: none;
}
.mfp-wrap.wd-popup-quick-view-wrap {
	--wd-popup-width: 920px;
}

@media (max-width: 1024px) {
	:root {
		--wd-sticky-btn-height: 100px;
	}

}

@media (max-width: 768.98px) {
	:root {
		--wd-sticky-btn-height: 120px;
	}

}
:root{
--wd-container-w: 1222px;
--wd-form-brd-radius: 0px;
--btn-default-color: #fff;
--btn-default-color-hover: #333;
--btn-accented-color: #333;
--btn-accented-color-hover: #fff;
--btn-default-brd-radius: 5px;
--btn-default-box-shadow: none;
--btn-default-box-shadow-hover: none;
--btn-accented-brd-radius: 5px;
--btn-accented-box-shadow: none;
--btn-accented-box-shadow-hover: none;
--wd-brd-radius: 0px;
}

@media (min-width: 1222px) {
section.elementor-section.wd-section-stretch > .elementor-container {
margin-left: auto;
margin-right: auto;
}
}


.wd-page-title {
background-color: rgb(250,248,246);
}

/* General */
:root {
	--font-kal-primary: "Proxima-nova", Arial, Helvetica, sans-serif;
	
	--color-kal-primary: #191817;
	--color-kal-secondary: #FAFAFA;
	
	--color-kal-accent: #C8BBA8;
	--color-kal-accent-light: #F2EDE6;
	--color-kal-accent-dark: #635247;
	
	--color-kal-text: #2A2926;
	--color-kal-text-muted: #5F5E5B;
	
	--color-kal-highlight: #C05540;
	--color-kal-highlight-dark: #8C3D2C;
	
	--color-kal-background: #FAF8F6;
	--color-kal-chrome: #DDD9D4;
	--color-kal-vip: #efbf04;
	
	--color-kal-warning: #bc1e1e;
	--color-kal-success: #00B67A;
	
	--tracking-s: 0.02em;
	--tracking-m: 0.04em;
	--tracking-l: 0.06em;
	
	--header-margin: 20px;
	--transintion-hover: all 0.3s ease-in-out;
	--wd-block-spacing: 0.5em;
	
	--radius-s: 0.25rem;
	--radius-m: 0.5rem;
	
	--t-300: 0.3s;
	--ease-default: ease-in-out;
}

body {
	letter-spacing: var( --tracking-s );
}

a,
button {
	transition: var( --transintion-hover );
}

h1 {
	margin-bottom: 0.8em;
}

h2, h3, h4 {
	margin-bottom: 0.4em;
}

p {
	+ :is(h2, h3, h4, h5) {
		margin-top: 0.9em;
	}
	
	&:last-child {
		margin-bottom: 0;
	}
}

/* Buttons */
:is:not(.elementor-editor-active .elementor-add-section-area-button),
:is(.btn, .button, button, [type="submit"], [type="button"]):not(.plus):not(.minus),
#place_order {
	font-size: 0.9rem;
	letter-spacing: var( --tracking-m );
	padding: 0.3em 2em 0.4em;
}

:is(.btn.alt, .button.alt, button.alt, .alt[type="submit"],
.alt[type="button"]):not(.plus):not(.minus) {
	border: 1px solid var( --color-kal-primary );
	
	&:hover {
		border: 1px solid var( --color-kal-primary );
	}
}

#place_order,
.cart-totals-inner .checkout-button,
.widget_shopping_cart .woocommerce-mini-cart__buttons .checkout {
	color: #ffffff;
	background-color: var(--color-kal-primary);
	
	&:hover {
		color: var(--color-kal-primary);
		background-color: var(--color-kal-accent);
		border-color: var(--color-kal-accent);
	}
}

.widget_shopping_cart .woocommerce-mini-cart__buttons .btn-cart {
	color: var(--color-kal-primary);
	background-color: var(--color-kal-accent);
	border-color: var(--color-kal-accent);
	
	&:hover {
		color: #ffffff;
		background-color: var(--color-kal-primary);
	}
}


/* Forms */
.elementor-form .elementor-field-group .elementor-field {
	padding: 0.5em 1em;
}

/* Header - Top Bar */
header .whb-top-bar {
	.wd-header-secondary-nav .menu {
		gap: 0.6em;
	}
	
	.wd-header-text {
		font-size: 0.8rem;
		
		p {
			margin-bottom: -0.2em;
		}
	}
	
	img {
		margin-top: -0.2em;
	}
	
	@media (width <= 1080px) {
		.wd-info-box {
			.box-icon-wrapper {
				display: flex;
				align-items: center;
			}
			
			.info-box-icon {
				color: #ffffff;
				font-size: 1.2rem;
				line-height: 1em;
			}
			
			.info-box-subtitle {
				color: #ffffff;
				font-size: 0.9rem;
				letter-spacing: var(--tracking-m);
			}
		}
	}
}

/* Header - Bottom Bar */
header .whb-header-bottom {
	@media (width <= 1080px) {
		.wd-header-text {
			font-size: 0.8rem;
			line-height: 1.1em;
		}
		
		p {
			margin: 0.3em;
		}
		
		img {
			margin-top: -0.2em;
		}
	}
}

/* Header - Main Menu */
.menu-highlight .woodmart-nav-link {
	border-radius: 999rem;
	min-height: unset;
	padding-block: 0.5em;
	padding-inline: 1.3em;
}

.menu-quiz .woodmart-nav-link {
	min-height: unset;
	border-radius: 999rem;
	padding-block: 0.5em;
	padding-inline: 1em;
}

.menu-item .skin-concerns .elementor-nav-menu {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	grid-template-rows: repeat(4, auto);
	grid-auto-flow: column;
}

.menu-item .health-concerns .elementor-nav-menu {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	grid-template-rows: repeat(7, auto);
	grid-auto-flow: column;
}

.wd-dropdown-menu, .whb-main-header{
	box-shadow: none;
	transition: none;
}

/* Header - Mobile Menu */
.mobile-nav {
	display: flex;
	flex-direction: column;
	
	.wd-search-form  {
		order: 1;
	}
	
	.menu {
		order: 3;
	}
	
	.widgetarea-mobile {
		order: 2;
		padding-inline: 1rem;
		padding-block: 1rem;
		
		.woodmart-html-block:first-of-type {
			margin-bottom: 1rem;
			padding-bottom: 0;
			border: none;
		}
	}
}

/* Header - Mobile Menu - Info Boxes */
.mobile-menu-widget .elementor-image-box-wrapper {
	display: flex;
	gap: 0.7em;
	justify-content: flex-start;
	align-items: center;
}

/* Footer */
footer .wd-menu .menu {
	gap: 1.3em;

	.woodmart-nav-link {
		min-height: unset;
		
		@media (width < 1024px) {
			justify-content: center;
		}
	}
}

/* Page Title */
.wd-page-title .wd-back-btn {
	display: none;
}

.wd-page-title .entry-title.title {
	font-size: clamp( 1.3rem, 5vw, 1.7rem);
	font-weight: 800;
}

/* Homepage */
.home-cta .btn-style-link {
	padding: 0.2em 0;
}

/* Homepage - Trust Carousel */
.trust-carousel .wd-carousel-item .elementor-image-box-wrapper {
	display: flex;
	flex-direction: row;
	gap: 0.7em;
	justify-content: flex-start;
	align-items: center;
}

/* Homepage - Highlight Tabs */
.list-highlights .elementor-icon-list-item {
	padding: 0.5em;
	background-color: var( --color-kal-highlight );
}

.elementor section .elementor-element .list-highlights .elementor-icon-list-items:not(.elementor-inline-items) .elementor-icon-list-item:not(:last-child) {
	padding: 0.5em;
}

/* Store */
.archive .wd-content-area .shop-loop-head .wd-shop-tools .orderby {
	max-width: 300px;
	
	option {
		color: var(--color-kal-text);
		font-size: 0.9rem;
	}
}

/* Products - Grid */
.products .wd-product .product-element-bottom {
	padding: 1rem 0;
	
	.wd-entities-title a {
		font-weight: 700;
		font-size: 1.4rem;
		letter-spacing: var( --tracking-m );
	}
	
	.price {
		.amount {
			font-size: 1.1rem;
		}
		
		del .amount {
			font-size: 1rem;
			font-weight: 500;
			color: rgb(0 0 0 / 0.5);
		}
	}
}

/* Products - Grid - Tags */
.product-grid-item .product-element-bottom .loop-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.3em;
}

.product-grid-item .product-element-bottom .loop-tag {
	color: var( --color-kal-text-muted );
	font-size: 0.65rem;
	font-weight: 400;
	line-height: 1em;
	text-transform: uppercase;
	letter-spacing: var(--tracking-m);
	border: 1px solid var( --color-kal-text-muted );
	padding-inline: 0.5em;
	padding-block: 0.2em 0.25em;
	transition:
		background-color var(--t-300) var(--ease-default),
		color var(--t-300) var(--ease-default);
	
	&:hover {
		background-color: var( --color-kal-primary );
		color: #ffffff;
	}
}

/* Products - Carousel */
.wd-loop-builder-off .wd-product {
	.product-element-top {
		.product-labels {
			font-family: var( --font-kal-primary );
		}
		
		img {
			aspect-ratio: 5 / 6;
			object-fit: cover;
		}
	}
	
	.product-element-bottom {
		.wd-entities-title a {
			font-size: 0.95rem;
		}
	}
}

/* Products - Single */
.woocommerce-product-gallery img {
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

.usage-attr span {
	font-weight: 400;
}


.woocommerce-product-attributes-item__value .wd-term:has(.wd-term-img) .wd-term-sep {
	display: none;
}

.wd-single-tabs .wd-tab-wrapper .title {
	margin-bottom: 0.3em;
}

.single-product .elementor-add-to-cart .cart .quantity {
	border: 1px solid rgb(0 0 0 / 0.1);
	border-radius: var( --radius-s );
	
	.qty {
		border: none;
	}
	
	.btn {
		color: var( --color-kal-primary );
		background-color: transparent;
		border: none;
		padding: 1em;
		
		&:hover {
			background-color: var( --color-kal-primary );
		}
	}
	
	.minus.btn {
		border-radius: var( --radius-s ) 0 0 var( --radius-s );
		margin-inline: 0 0.5em;
	}
	
	.plus.btn {
		border-radius: 0 var( --radius-s ) var( --radius-s ) 0;
		margin-inline: 0.5em 0;
	}
}

/* Products - Single - PayPal Button */
.ppc-button-wrapper {
	margin-block-start: 0.8rem;
}

/* Products - Single - Gallery */
.woocommerce-product-gallery__image img {
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

/* Products - Single - Rating */
.elementor-widget-rating .e-rating .e-rating-wrapper .e-icon {
	margin-block-end: 0;
}

.elementor-widget-rating .e-rating .e-icon .e-icon-wrapper {
  &.e-icon-unmarked {
    padding: 0.15em;
    background-color: #dcdce6;
  }

  &.e-icon-marked {
		width: auto;
    padding: 0.15em;
    background: linear-gradient(
      to right,
      #00b67a var(--e-rating-icon-marked-width, 100%),
      #dcdce6 var(--e-rating-icon-marked-width, 100%)
    );
  }
}

/* Products - Single - Highlights (ACF Repeater Accordion) */
.product .product-highlights .elementor-accordion .elementor-accordion-item {
	border: none;
	
	&:not(:last-of-type) {
		margin-block-end: 0.3em;
	}
	
	.elementor-accordion-icon svg {
		width: 0.75rem;
		height: 0.75rem;
	}
	
	.elementor-tab-title {
		display: flex;
		flex-direction: row-reverse;
		justify-content: space-between;
		align-items: center;
		border-radius: 999rem;
	}
	
	.elementor-tab-content {
		border: 0;
	}
	
	.elementor-accordion-title {
		display: flex;
		align-items: center;
		
		&::before {
			content: '\f00c';
			color: var( --color-kal-highlight-dark );
			font-family: 'Font Awesome 5 Free';
			font-weight: 900;
			margin-right: 0.4em;
		}
	}
}

/* Products - Single - Progress Bar */
.progress-msg p {
	font-size: clamp(0.85rem, 2vw, 1rem);
	line-height: 1.2;
}

/* Products - Single - FAQ Accordion */
.product-faq .elementor-tab-title {
	display: flex;
	flex-direction: row-reverse;
	justify-content: space-between;
	align-items: center;
}

/* Products - Single - Combo Selector */
.cart .wc-combo-selector .wc-combo-selector-title {
	margin-bottom: 0.3rem;
}
		
.cart .wc-combo-selector .wc-combo-selector-options {
	border: none;
	border-radius: var( --radius-s );
	gap: 0.3rem;
	
	.wc-combo-option {
		border: none;
		margin: 0;
		
		&.selected {
			outline: none;
		}
		
		.wc-combo-option-button {
			background-color: #ffffff;
			border: 1px solid var( --color-kal-chrome );
			border-radius: var( --radius-s );
			align-items: center;
			gap: 0.7rem;
			padding: 1rem;
			
			&:hover {
				background-color: #ffffff;
			}
			
			.wc-combo-qty {
				color: var( --color-kal-text );
				font-size: 0.85rem;
				letter-spacing: var( --tracking-s );
			}
		}
		
		&.selected .wc-combo-option-button {
			border-color: var( --color-kal-primary );
		}
		
		.wc-combo-radio-dot {
			width: 12px;
			height: 12px;
			border: 1px solid var( --color-kal-chrome );
			margin: 0;
			
			.selected & {
				background: var( --color-kal-accent-dark );
				border-color: transparent;
				outline: 2px solid var( --color-kal-accent-dark );
				outline-offset: 3px;
			}
			
			&::after {
				width: 0px;
				height: 0px;
			}
		}
		
		.wc-combo-ribbon {
			background: var( --color-kal-accent-light );
			color: var( --color-kal-accent-dark );
			font-weight: 400;
		}
		
		.wc-combo-option-right {
			.wc-combo-total del .amount,
			.wc-combo-regular-total .amount {
				color: var( --color-kal-text-muted );
				font-size: 0.8rem;
				font-weight: 400;
			}
			
			ins .amount,
			.wc-combo-total .amount {
				color: var( --color-kal-text );
				font-size: 0.9rem;
			}
			
			.wc-combo-unit-price {
				font-size: 0.8rem;
				letter-spacing: var( --tracking-s );
			}
			
			.wc-combo-badge {
				font-size: 0.85rem;
				font-weight: 400;
				line-height: 1em;
				padding: 0 0.3em 0.2em;
			}
		}
	}
}

/* Products - Single - UpSells Form */
/* Usage of !important is necessary due to inline styles */
.product .cuw-fbt-products {
	margin: 0 !important;
	
	.cuw-heading {
		color: var(--e-global-color-text);
		font-family: var( --font-kal-primary );
		font-size: 0.8rem;
		font-weight: 600;
		text-transform: uppercase;
		letter-spacing: var(--tracking-m);
		margin-bottom: 1rem !important;
	}
	
	.cuw-form .cuw-gird {
		justify-content: flex-start;
		gap: 1rem;
	}
	
	.cuw-product {
		width: 100%;
		margin: 0 !important;
		align-items: flex-start !important;
		
		.cuw-product-separator {
			display: none !important;
		}
	}
	
	.cuw-product-card {
		width: unset !important;
		display: grid;
		grid-template-areas:
			"image title"
			"image price";
		align-items: center;
		column-gap: 0.5rem;
		position: relative;
		
		.cuw-product-actions {
			position: absolute !important;
			top: 0;
			left: 0;
			
			> div {
				position: unset !important;
			}
		}
		
		.cuw-product-image {
			width: 100px !important;
			height: 100px !important;
			grid-area: image;
			
			img {
				aspect-ratio: 1 / 1;
				object-fit: cover;
			}
		}
		
		.cuw-product-title {
			font-size: 0.8rem;
			font-weight: 300;
			text-transform: uppercase;
			text-align: left !important;
			line-height: 1em;
			margin: 0 !important;
			align-self: end;
			grid-area: title;
		}
		
		.cuw-product-price {
			text-align: left !important;
			align-self: start;
			grid-area: price;
			
			del .amount {
				font-size: 0.8rem;
				color: var( --color-kal-text-muted );
			}
			
			ins .amount {
				font-size: 0.9rem;
			}
		}
	}
	
	.cuw-buy-section {
		padding: 0 !important;
		
		.cuw-total-price-section {
			margin: 0!important;
			
			span:first-child {
				display: none;
			}
			
			del {
				font-size: 0.9rem;
				color: var( --color-kal-text-muted );
			}
		}
		
		.cuw-add-to-cart {
			border-radius: var( --radius-s );
		}
	}
}

/* Products - Single - Actives Attributes Grid */
.actives-grid .wd-el-title {
	margin-bottom: 0.4rem;
}

.actives-grid .woocommerce-product-attributes-item td {
	width: 100%;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 0.5rem;
	
	@media (width < 560px) {
		grid-template-columns: 1fr;
	}
	
	.wd-term {
		display: flex;
		flex-direction: column;
		align-items: center;
		padding: 0.7rem;
		
		background-color: var( --e-global-color-680dbcf );
		border-radius: 4px;
		
		.wd-term-img {
			border-radius: 999rem;
			margin: 0 0 1rem;
		}
		
		.wd-term-name {
			text-align: center;
			margin-bottom: 0.5rem;
			transition: color 0.3s ease-in-out;
			
			&:hover {
				color: var( --e-global-color-3b6149e );
			}
		}
		
		.wd-hint {
			margin: 0;
			pointer-events: none;
			
			&::before {
				display: none;
			}
			
			.wd-tooltip-content {
				display: block;
				font-size: 0.9rem;
				font-weight: 400;
				line-height: 1.3em;
				text-align: center;
			}
		}
	}
}

/* Products - Single - ACF Repeater - Before/After Carousel */
.product .acf-repeater-carousel {
	--swiper-navigation-size: 1.5rem;

	.beforeafter-pair {
    display: flex;
    align-items: center;
    gap: 0.5rem;
	}
	
	.beforeafter-item {
		flex: 1;
		position: relative;
		overflow: hidden;
		border-radius: 4px;
	}
	
	.beforeafter-arrow {
		&::after {
			content: "\f30b";
			font-family: "Font Awesome 5 Free" !important;
			font-size: 1.2rem;
			font-weight: 900;
			color: hsla(32.73 13.36% 48.43% / 1);
			transition: all 0.3s ease-in-out;
		}
	}

	.beforeafter-tag {
		position: absolute;
		top: 0.5rem;
		left: 0.5rem;
		background-color: hsl(35 31.58% 92.55% / 0.9);
		color: var(--e-global-color-primary);
		font-family: var(--e-global-typography-primary-font-family);
		font-size: clamp(0.7rem, 1vw, 0.8rem);
		font-weight: 700;
		letter-spacing: var( --tracking-l );
		line-height: 1.1em;
		text-transform: uppercase;
		padding: 0.2em 1em;
		border-radius: 999px;
	}
	
	.swiper-button-next {
		&::after {
			content: "\f054";
			font-family: "Font Awesome 5 Free";
			font-weight: 900;
			color: hsla(0 0% 93% / .6);
			transition: all 0.3s ease-in-out;
		}
		
		&:hover::after {
			color: hsla(0 0% 93% / 1);
		}
	}
	
	.swiper-button-prev {
		&::after {
			content: "\f053";
			font-family: "Font Awesome 5 Free";
			font-weight: 900;
			color: hsla(0 0% 93% / .6);
			transition: all 0.3s ease-in-out;
		}
		
		&:hover::after {
			color: hsla(0 0% 93% / 1);
		}
	}
}

/* Products - Single - ACF Repeater - Product Stats Grid */
.product-stats {
	display: flex;
	
	.elementor-shortcode {
		width: 100%;
	}
	
	.acf-grid {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1rem;
		height: 100%;
		
		@media (width < 400px) {
			grid-template-columns: 1fr;
		}
	
		.acf-grid-item {
			background-color: var( --e-global-color-680dbcf );
			display: flex;
			flex-direction: column;
			justify-content: flex-end;
			padding: 1.5rem 1.5rem;

			.acf-grid-title {
				font-size: clamp(1.3rem, 2vw, 1.7rem);
				font-weight: 800;
			}

			.acf-grid-desc {
				font-size: clamp(0.9rem, 1vw, 1rem);
				font-weight: 400;
				line-height: 1.2em;
			}
		}
	}
}

/* Products - Single - Reviews */
.product .woocommerce-Reviews {
	.wd-rating-summary-wrap {
		background-color: var( --e-global-color-11cf006 );
		padding: 3rem;
		border-radius: 4px;
	}
}

/* Products - Single - FAQs (ACF Repeater) */
.product-faq {
	.elementor-accordion {
		display: flex;
		flex-direction: column;
		gap: 0.5rem;
	}
}

/* Products - Single - Related Products Carousel */
.wd-carousel-item .product-element-bottom {
	line-height: 1.1em;
	padding-bottom: 0;
	
	.wd-entities-title a {
		font-size: 0.95rem;
		font-weight: 600;
	}
	
	.price {
		del bdi {
			font-size: 1rem;
			font-weight: 600;
		}
		
		ins bdi {
			font-size: 1.2rem;
			font-weight: 700;
		}
	}
	
	.button {
		padding: 0;
	}
}

/* Blog - Archive */
.wd-blog-element .wd-posts .wd-post {
	height: 100%;
}

.wd-blog-element .wd-posts .wd-post .wd-post-inner {
	height: 100%;
	border-radius: var(--radius-m);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	
	.wd-post-img img {
		aspect-ratio: 4 / 3;
		object-fit: cover;
	}
	
	.wd-post-content {
		flex-grow: 1;
	}
	
	.wd-post-title {
		font-size: 1rem;
		font-weight: 800;
	}
	
	.wd-post-excerpt {
		font-size: 0.95rem;
		line-height: 1.4em;
		flex-grow: 1;
	}
	
	.wd-post-read-more {
		text-transform: capitalize;
		text-decoration: underline;
	}
}

/* Blog - Single */
.post-single-page .wd-single-post-header .wd-post-meta {
	display: none;
}

/* Pages - Skincare Routines */
/* Usage of !important is necessary due to inline styles */
.routines-tabs .info-box-icon {
	color: var(--color-kal-highlight-dark);
	font-size: 1.7rem;
	font-weight: 800;
}

.routine-bundle #bundlewp-mix-and-match {
	margin: 0 !important;
	padding: 0 !important;
	
	.bundlewp-heading {
		display: none;
	}
	
	.bundlewp-form {
		flex-direction: column;
	}
	
	.bundlewp-gird {
		width: 100% !important;
		display: grid !important;
		grid-template-columns: repeat(3, 1fr);
		gap: 0.5rem !important;
		margin-block-end: 1rem;
	}
	
	.bundlewp-product {
		border-radius: var(--radius-m);
		background-color: #ffffff;
		padding-inline: 1rem;
		padding-block: 1rem;
		position: relative;
	}
	
	.bundlewp-product-image-wrapper {
		width: 100% !important;

	}
	
	.bundlewp-product-title {
		font-size: 0.9rem !important;
		line-height: 1.2em;
		text-align: center;
	}
	
	.bundlewp-product-link {
		position: absolute;
		top: 1rem;
		right: 1rem;
	}
	
	.add-to-bundle {
		background-color: var(--color-kal-primary);
		color: #ffffff;
		
		&:hover {
			background-color: var(--color-kal-accent);
			color: var(--color-kal-primary);
		}
	}
	
	.bundlewp-bundle-info {
		width: 100% !important;
	}
	
	.bundlewp-add-to-cart {
		background-color: var(--color-kal-primary);
		color: #ffffff;
		opacity: 1 !important;
		border: none !important;
		
		&:hover {
			background-color: var(--color-kal-accent);
			color: var(--color-kal-primary);
		}
	}
	
	.remove-product {
		
	}
	
	#main-product-info {
		display: none;
	}
}


/* Reels Carousel */
.elementor-shortcode .reelswp-group-short-code .ecr-front-carousel__track--zoom {
	padding: 0 0.6rem;
}

/* Pages - Key Ingredients */
.elementor .ingredients-grid .elementor-shortcode {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
	gap: 0.7rem;
	
	.wd-attribute-card {
		background-color: var( --color-kal-background );
		border-radius: var( --radius-m );
		padding: 1rem;
		transition: background-color var( --t-300 ) var( --ease-default );
		
		.wd-attribute-image {
			margin-block-end: 1rem;
		}
		
		.wd-attribute-thumb {
			border-radius: var( --radius-m );
		}
		
		.wd-attribute-title {
			font-size: 1.2rem;
			font-weight: 800;
			margin-block-end: 0;
		}
		
		.wd-attribute-description {
			color: var( --color-kal-text );
			font-size: 0.9rem;
			line-height: 1.3em;
		}
		
		&:hover {
			background-color: oklch(from var( --color-kal-background ) l c h / 0.4);
		}
	}
}

/* Gifts Progress Bar */
.cart-content-wrapper .gift-bar {
	margin-block-end: 1rem;
}

.gift-bar {
	max-width: 100%;
	background: var(--color-kal-background);
	display: flex;
	flex-direction: column;
	gap: 1rem;
	padding: 1.5rem;
	border-radius: var(--radius-m);

	.gift-bar-message {
		text-align: center;
		font-size: 0.95rem;
	}

	.gift-bar-progress {
		position: relative;
		height: 0.4rem;
		border-radius: 999rem;
		background: oklch(0% 0 0 / 0.08);
		overflow: hidden;
	}

	.gift-bar-fill {
		height: 100%;
		width: 0;
		background: var(--color-kal-success);
		transition: width var(--t-300) var(--ease-default);
	}

	.gift-bar-gifts {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 1rem;
		
		@media (width < 500px) {
			grid-template-columns: repeat(2, 1fr);
			gap: 0.5rem;
		}
	}

	/* Gift Card */
	.gift-bar-gift {
		position: relative;
		display: flex;
		flex-direction: column;
		align-items: center;
		text-align: center;
		padding-inline: 1rem;
		padding-block: 1.5rem;

		background: oklch(from var(--color-kal-success) l c h / 0.04);
		border: 2px solid oklch(from var(--color-kal-success) l c h / 0.5);
		border-radius: var(--radius-m);

		opacity: 0.5;

		transition:
			opacity var(--t-300) var(--ease-default),
			border-color var(--t-300) var(--ease-default),
			background-color var(--t-300) var(--ease-default);

		.gift-bar-badge {
			position: absolute;
			top: -0.75rem;
			left: 50%;
			transform: translateX(-50%);

			padding: 0.45ex 1.5ch;

			border-radius: 999rem;

			background: var(--color-kal-vip);
			color: var(--color-kal-primary);

			font-size: .75rem;
			font-weight: 800;
			line-height: 1;
			letter-spacing: var(--tracking-l);
		}
		
		@media (width < 500px) {
			padding-inline: 0.5rem;
			padding-block: 0.7rem;
		}
	}

	/* Highlight Card */
	.is-highlight {
		background-color: oklch(from var(--color-kal-vip) l c h / 0.1);
		border: 2px solid oklch(from var(--color-kal-vip) l c h / 0.5);
		
		@media (width < 500px) {
			grid-column: 1 / -1;
		}
	}

	/* Gift States */
	.is-current {
		opacity: .5;
	}

	.is-unlocked {
		opacity: 1;

		.gift-bar-image img {
			border-color: var(--color-kal-success);
		}

		.gift-bar-status-unlocked {
			color: var(--color-kal-success);
		}

		&.is-highlight {
			.gift-bar-image img {
				border-color: var(--color-kal-vip);
			}

			.gift-bar-status-unlocked {
				color: oklch(from var(--color-kal-vip) 0.65 0.13 calc(h - 8));
			}
		}
	}

	/* Gift Image */
	.gift-bar-image {
		margin-bottom: 0.75rem;
	}

	.gift-bar-image img {
		width: 5rem;
		height: auto;
		background: white;

		border: 3px solid var(--color-kal-chrome);
		border-radius: var(--radius-s);

		aspect-ratio: 1;
		object-fit: cover;

		transition: inherit;

		@media (width < 500px) {
			width: 3.5rem;
		}
	}

	/* Gift Content */
	.gift-bar-content {
		display: flex;
		flex-direction: column;
		flex: 1;
		width: 100%;
	}

	.gift-bar-title {
		color: var(--color-kal-primary);
		font-size: clamp(0.75rem, 1vw, 0.9rem);
		font-weight: 700;
		line-height: 1.25;
	}

	.gift-bar-value {
		color: oklch(from var(--color-kal-vip) 0.65 0.13 calc(h - 8));
		font-size: clamp(0.9rem, 2vw, 1rem);
		font-weight: 800;
		line-height: 1em;
		margin-block-start: 1rem;
	}

	.gift-bar-status {
		font-size: 0.8rem;
		font-weight: 800;
		line-height: 1em;
		margin-top: auto;
		padding-block-start: 1rem;
	}

	.gift-bar-status-locked {
		color: var(--color-kal-text-muted);
	}

	.gift-bar-status-unlocked {
		color: var(--color-kal-success);

		&::before {
			content: "✓";
			margin-inline-end: 0.35em;
		}
	}

	.is-highlight .gift-bar-status-unlocked {
		color: oklch(from var(--color-kal-vip) 0.65 0.13 calc(h - 8));

		&::before {
			content: "★";
			color: oklch(from var(--color-kal-vip) 0.65 0.13 calc(h - 8));
		}
	}
	
	@media (width <= 1080px) {
		padding: 1rem;
	}
}


/* Checkout - Gifts */
/* Usage of !important is necessary due to inline styles */
.checkout .cuw-offers {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	
	.cuw-offer {
		margin-block: 0 !important;
	}
	
	.cuw-container {
		border-radius: var(--radius-s);
	}
	
	.cuw-offer-cta-section {
		border-radius: var(--radius-s) var(--radius-s) 0 0;
	}
	
	.cuw-offer-cta-text {
		font-size: 1rem !important;
		font-weight: 700;
	}
	
	.cuw-offer-title {
		font-size: 0.75rem;
		font-weight: 600;
		line-height: 1em;
		letter-spacing: var(--tracking-m);
		padding-block: 0.2em 0.3em !important;
	}
	
	.cuw-product-image {
		min-width: 60px !important;
		
		img {
			aspect-ratio: 1 / 1;
			object-fit: cover;
		}
	}
	
	.cuw-product-title {
		font-size: 0.9rem;
	}
	
	div:has(> .cuw-product-quantity) {
		display: none !important;
	}
	
	@media (width <= 500px) {
		.cuw-product-section > div:not(.cuw-product-image) > div {
			flex-direction: column-reverse;
			align-items: flex-start !important;
		}
	}
}



/*
Visibility Fixes
Hide the parent container if an inner container is empty
Use for product fields that can't be hidden another way
*/
.product .elementor-element:has( > .elementor-widget-shortcode .elementor-shortcode:empty) {
	display: none;
}

.product .elementor-widget-repeaterly-icon-list:not(:has(.elementor-icon-list-items li)) {
	display: none;
}

.product .elementor-element:has(.product-faq):not(:has(.elementor-accordion-item)) {
	display: none;
}

/* Checkout */
.wc_payment_methods p {
	font-size: 0.85rem;
}

.place-order p {
	font-size: 0.85rem;
	margin-bottom: 2em;
}

.wd-sticky-btn-cart .wc-combo-selector { 
	display:none;
}

.woocommerce-checkout .woocommerce {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wd-block-spacing);
}

.woocommerce-checkout .woocommerce-form-coupon-toggle {
	display: none;
}

.woocommerce-checkout .checkout_coupon {
	width: calc(35% - (var(--wd-block-spacing) / 2));
	background-color: var(--color-kal-background);
	border: none;
	border-radius: var(--radius-m);
	display: flex !important;
	flex-direction: column;
	margin: 0;
	padding: 1.5rem;
	
	.form-row {
		margin: 0;
	}
	
	.button {
		color: #ffffff;
		background-color: var(--color-kal-primary);

		&:hover {
			color: var(--color-kal-primary);
			background-color: var(--color-kal-accent);
			border-color: var(--color-kal-accent);
		}
	}
	
	@media (width <= 1080px) {
		padding: 1rem;
		
		input {
			height: 2rem;
		}
		
		.button {
			min-height: 2rem;
			padding-block: 0.7em;
			padding-inline: 1em;
		}
	}
	
	@media (width < 500px) {
		width: 100%;
	}
}

.woocommerce-checkout .woocommerce div:has(> .gift-nad) {
	width: calc(65% - (var(--wd-block-spacing) / 2));
	
	@media (width < 500px) {
		width: 100%;
	}
}

.woocommerce-checkout form.checkout {
	margin-block-start: 1rem;
}

/* Prefooter - Klaviyo Form */
.klaviyo-form form {
	> div > div {
		gap: 0.4rem;
	}
	
	input {
		font-family: var(--font-kal-primary) !important;
		font-size: 1rem !important;
		border-width: 2px !important;
		border-radius: 999rem 0 0 999rem !important;
		padding-inline: 1.3em 1em !important;
		transition: all var(--t-300) var(--ease-default);
		
		&::placeholder {
			font-family: var(--font-kal-primary) !important;
			font-size: 1rem !important;
		}
	}
	
	button {
		font-family: var(--font-kal-primary) !important;
		font-size: 0.9rem !important;
		border: none !important;
		border-radius: 0 999rem 999rem 0 !important;
		padding-inline: 1em 1.3em !important;
		transition: all var(--t-300) var(--ease-default);
	}
	
	@media (width <= 500px) {
		> div > div {
			flex-direction: column !important;
		}
		
		> div > div > div {
			flex: 0 1 auto !important;
		}
		
		input {
			width: 100% !important;
			border-radius: 999rem !important;
		}
		
		div:has(button) {
			margin: 0 !important;
		}
		
		button {
			width: 100% !important;
			border-radius: 999rem !important;
		}
	}
}

/* Sticky Add to Cart */
.wd-sticky-btn-container {
	justify-content: space-between;
}

.wd-sticky-btn .wd-sticky-btn-content {
	flex: 0;
	
	.wd-entities-title {
		font-size: 0.8rem;
		font-weight: 500;
		line-height: 1.3em;
		width: 45ch;
	}
}

.wd-sticky-btn .wd-sticky-btn-cart .cart {
	flex-wrap: nowrap;
	flex: unset;
	align-items: center;
}

.wd-sticky-btn .wd-sticky-btn-cart .button {
	background-color: var( --color-kal-primary );
	color: #ffffff;
	/* Woodmart has hardcoded !important for the border radius*/
	border-radius: var(--radius-s) !important;
	
	&:hover {
		background-color: #ffffff;
		color: var( --color-kal-primary );
	}
}

.wd-sticky-btn .wd-sticky-btn-cart:has(.wc-combo-selector) .quantity {
	display: none;
}

.wd-sticky-btn .wd-sticky-btn-cart .quantity {
	border: 1px solid var( --color-kal-primary );
	border-radius: var( --radius-s );
	
	.qty {
		border: none;
	}
	
	.btn {
		border: none;
	}
	
	.minus.btn {
		border-radius: var( --radius-s ) 0 0 var( --radius-s );
	}
	
	.plus.btn {
		border-radius: 0 var( --radius-s ) var( --radius-s ) 0;
	}
}

.wd-sticky-btn .wd-sticky-btn-cart:has(.wc-combo-selector) > .price {
	display: none;
}

.wd-sticky-btn .wd-sticky-btn-cart .wd-wishlist-btn {
	display: none;
}

/* Sticky Add to Cart - Combo Selector */
.wd-sticky-btn .wd-sticky-btn-cart .wc-combo-selector {
	display: flex;
	margin: 0;
	
	.wc-combo-selector-title {
		display: none;
	}
	
	.wc-combo-selector-options {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
	}
}

.wd-sticky-btn .wd-sticky-btn-cart .cart .wc-combo-selector .wc-combo-option .wc-combo-option-button {
	flex-direction: column;
	justify-content: center;
	padding: 0.7em;
	
	.wc-combo-option-content {
		flex-direction: column;
		gap: 0.2em;
	}
	
	.wc-combo-radio-dot {
		width: 7px;
		height: 7px;
		margin-block-start: 0.2em;
		
		.selected & {
			outline-offset: 2px;
		}
	}
	
	.wc-combo-qty {
		font-size: 0.75rem;
	}
	
	.wc-combo-option-right {
		text-align: center;
	}
	
	.wc-combo-unit-price-line {
		display: none;
	}
	
	.wc-combo-badge {
		display: none;
	}
	
	.wc-combo-ribbon {
		display: none;
	}
}

/* Responsive for Sticky Add to Cart */
@media (width <= 1080px) {
	.wd-sticky-btn.wd-sticky-btn-shown {
		--quantity-space: 0;
		
		background-color: var( --color-kal-accent-light );
		padding: 1rem;
	}

	.wd-sticky-btn .wd-sticky-btn-content {
		display: none;
	}
	
	.wd-sticky-btn .wd-sticky-btn-cart {
		width: 100%;
	}
	
	.wd-sticky-btn .wd-sticky-btn-cart .cart {
		flex: 1;
		gap: 0.3rem;
		justify-content: space-between;
	}

	.wd-sticky-btn .wd-sticky-btn-container .wd-sticky-btn-cart .cart button.button {
		height: auto;
		width: auto;
		padding-inline: 1em;
	}
	
	.wd-sticky-btn .wd-sticky-btn-cart .wc-combo-selector {
		flex: 1 1 0;
	}
	
	.wc-combo-option-content .wc-combo-option-right .wc-combo-total {
		display: flex;
		flex: 1;
		gap: 0.3em;
	}
	
	.wd-sticky-btn .wd-sticky-btn-cart .quantity {
		display: flex;
		position: relative;
		
		.btn, .qty {
			min-height: var(--wd-form-height);
			background-color: var(--btn-accented-bgcolor);
		}
	}
	
	.wd-quantity-overlap :is(div, .cart):hover > div.quantity {
		filter: brightness(1);
		
		input[type].qty {
			background-color: #ffffff;
			color: var(--color-kal-primary);
		}
		
		button.btn {
			background-color: #ffffff;
			color: var(--color-kal-primary);
			
			&:hover {
				background-color: var(--color-kal-primary);
				color: #ffffff;
			}
		}
		
		+ button.button {
			background-color: var(--color-kal-primary);
			color: #ffffff;
			
			&:hover {
				background-color: #ffffff;
				color: var(--color-kal-primary);
			}
		}
	}
}

@media (width < 500px) {
	.wd-sticky-btn .wd-sticky-btn-cart .cart {
		flex-direction: column;
	}
	
	.wd-sticky-btn .wd-sticky-btn-cart .wc-combo-selector {
		width: 100%;
	}
	
	.wd-sticky-btn .wd-sticky-btn-cart .wc-combo-selector .wc-combo-selector-options {
		min-width: 100%;
	}
	
	.wd-sticky-btn .wd-sticky-btn-cart .wc-combo-selector .wc-combo-option .wc-combo-option-button {
		min-height: unset;
		gap: 0.3rem;
		padding: 0.3em 0.7em;
	}
	
	.wd-sticky-btn .wd-sticky-btn-cart .wc-combo-option-content {
		flex: 0;
		align-items: center;
	}
	
	.wd-sticky-btn .wc-combo-option-button .wc-combo-option-right {
		align-items: center;
		
		.wc-combo-prices-line del,
		.wc-combo-total del {
			display: none;
		}
	}
	
	.wd-sticky-btn .wd-sticky-btn-container .wd-sticky-btn-cart .cart button.button {
		min-height: unset;
	}
}



/* RESPONSIVE */
/* Ensures the mobile menu appears earlier than the default Woodmart breakpoint */
@media (max-width: 1080px) {
	.whb-desktop-only,
	.whb-visible-lg {
		display: none !important;
	}
	
	.whb-mobile-only,
	.whb-hidden-lg,
	.whb-column.whb-mobile-left, 
	.whb-column.whb-mobile-center, 
	.whb-column.whb-mobile-right {
		display: flex !important;
	}

	.wd-tools-element.wd-header-mobile-nav {
		display: inline-flex !important;
	}
}

/* Hero Video Square on Mobile */
@media (width < 600px) {
	.home .wd-page-content .elementor .elementor-widget-video .elementor-wrapper {
		--video-aspect-ratio: 1 / 1;
	}
}

/* Product - Single - Gallery Sticky on Tablet */
@media ( 1080px >= width > 767px ) {
	.single-product-page .wd-single-gallery {
		position: sticky !important;
		top: 1rem;
	}
}
