/*
	Elementor-specific rules and overrides.
*/

.elementor-container {
	form.elementor-form {
		input[type], select {
			margin-bottom: 0;
		}

		.elementor-field-textual{
			&.elementor-size-md {
				padding: 6px 16px;
			}

			&.elementor-size-sm {
				padding: 5px 14px;
			}

			&.elementor-size-xs {
				padding: 3px 12px;
			}
		}

		.elementor-field-option {
			input[type="radio"] {
				vertical-align: middle;
			}
			label {
				padding-left: 10px;
			}
		}
	}
}

.woocommerce.single-product.vamtam-is-elementor {
	form.cart {
		.single_add_to_cart_button.added{
			display: none;
		}

		.added_to_cart.wc-forward {
			display: inline-block;
		}
	}
}

// WC products override.
.cross-sells,
.elementor-wc-products {
	.products.vamtam-wc .product {
		.woocommerce-product-details__short-description,
		.woocommerce-loop-product__title {
			margin: 0;
		}

	}

	&.vamtam-scuola-el-products-btn-icon {
		.add_to_cart_button, .added_to_cart {
			&::before {
				display: inline;
				font-family: 'vamtam-theme';
				content: icon( vamtam-theme-plus );
				border-radius: 50%;
				background-color: var(--vamtam-accent-color-1);
				font-size: 16px;
				padding: .5em;
				color: #fff;
				fill: #fff;
				margin-right: 10px;
				vertical-align: middle;
			}
		}
	}

	&.vamtam-scuola-el-products-short-desc .product.product-type-booking {
		.woocommerce-product-details__short-description ul.elementor-price-list{
			li.elementor-price-list-item {
				&:not(:nth-of-type(1)):not(:nth-of-type(2)):not(:nth-of-type(3)) {
					display: none;
				}
			}
		}
	}
}

.elementor-element.elementor-products-grid ul.products li.product {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
}

// Elementor post meta widget vertical alignment fix (inline).
.elementor-inline-items.elementor-icon-list-items.elementor-post-info > li.elementor-inline-item {
	align-items: center;
}

.elementor-pagination {
	margin-top: 50px;
	border-top: 3px solid var(--vamtam-accent-color-7);
	padding-top: 30px;
}

.woocommerce div.product.elementor .elementor-product-booking form.cart:not(.grouped_form):not(.variations_form) {
	flex-flow: column;
}

.elementor-price-list-price {
	font-weight: 600;
}

.elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item {
	padding-bottom: 10px;
}

.elementor-field-subgroup:not(.elementor-subgroup-inline) .elementor-field-option {
	margin-bottom: 5px;
}


.elementor-select-wrapper {
	&:before {
		z-index: 1;
		color: currentColor;
	}

	&.woocommerce-input-wrapper:before {
		right: 30px;
	}
}

body[class*="elementor-"] {
	.select2.select2-container .select2-selection[role="combobox"] {
		line-height: normal;

		.select2-selection__arrow {
			display: none;
		}

		.select2-selection__rendered {
			line-height: inherit;
			padding: 0px;
		}
	}

	:not([class*="elementor-select-wrapper"]) > .select2.select2-container .select2-selection[role="combobox"] {
		&:before {
			content: "\e92a";
			font-family: eicons;
			font-size: 15px;
			position: absolute;
			top: 50%;
			transform: translateY(-50%);
			right: 30px;
			pointer-events: none;
		}
	}
}

// Theme Icons.
[class^="vamtam-theme-"], [class*=" vamtam-theme-"] {
	/* use !important to prevent issues with browser extensions that change fonts */
	font-family: "theme-icons" !important;
	speak: none;
	font-style: normal;
	font-weight: normal;
	font-variant: normal;
	text-transform: none;
	line-height: 1;

	/* Better Font Rendering =========== */
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

// Elementor Lightbox.
.dialog-lightbox-widget.dialog-type-buttons.elementor-lightbox {
	// Fix for slideshow controls.
	.swiper-container * {
		box-sizing: border-box;
	}
}

#elementor-lightbox.dialog-type-lightbox {
	z-index: 99999;
}

@keyframes vamtam-grow-left {
    from { clip-path: inset(0 100% 0 0); }
  	to { clip-path: inset(0); }
}
@keyframes vamtam-grow-right {
    from { clip-path: inset(0 0 0 100%); }
  	to { clip-path: inset(0); }
}
@keyframes vamtam-grow-top {
    from { clip-path: inset(100% 0 0 0); }
  	to { clip-path: inset(0); }
}
@keyframes vamtam-grow-bottom {
    from { clip-path: inset(0 0 100% 0); }
  	to { clip-path: inset(0); }
}

.growFromLeft {
	&:not(.elementor-widget-image ) {
		animation-name: vamtam-grow-left;
		will-change: clip-path;
	}
}

.growFromRight {
	&:not(.elementor-widget-image ) {
		animation-name: vamtam-grow-right;
		will-change: clip-path;
	}
}

.growFromLeftScroll {
	@val: calc(100% - var(--vamtam-scroll-ratio));
	&:not(.elementor-widget-image) {
		clip-path:inset(0 @val 0 0);
		transition: clip-path .35s ease;
		will-change: clip-path;
	}
}
.growFromRightScroll {
	@val: calc(100% - var(--vamtam-scroll-ratio));
	&:not(.elementor-widget-image) {
		clip-path:inset(0 0 0 @val);
		transition: clip-path .35s ease;
		will-change: clip-path;
	}
}

.growFromLeftScroll,
.growFromRightScroll {
	&.animated-fast {
		transition-duration: .25s;
	}
	&.animated-slow {
		transition-duration: .40s;
	}
}

@keyframes vamtam-scale-out {
    from { transform: scale(1.4); }
  	to { transform: scale(1);}
}

.vamtam-popup-toggle {
	&, &-clone {
		i, svg {
			transition: all .3s ease;
		}
	}
	&-clone {
		z-index: 99999;
		position: fixed;
		&, * {
			background: transparent !important;
			padding: 0 !important;
			margin: 0 !important;
		}
		a {
			pointer-events: none !important;
		}
		&, li {
			list-style: none;
		}
		opacity: 0;
		pointer-events: none;
		&.is-active {
			opacity: 1;
			&.is-clickable {
				pointer-events: all;
			}
			i {
				transition: all .3s ease !important;
			}
			&:hover i {
				color: var(--vamtam-accent-color-1) !important;
			}
		}
		// Use vamtam close Icon.
		&.vamtam-popup-close-icon {
			i {
				&::before {
					font-family: 'vamtam-theme' !important;
					content: icon('vamtam-theme-close-sample') !important;
				}
			}
		}
		&.vamtam-popup-close-dark {
			i, svg {
				color: var(--vamtam-accent-color-6) !important;
				fill: var(--vamtam-accent-color-6) !important;
				stroke: var(--vamtam-accent-color-6) !important;
			}
			&.is-active {
				&:hover {
					i, svg {
						color: var(--vamtam-accent-color-6) !important;
						fill: var(--vamtam-accent-color-6) !important;
						stroke: var(--vamtam-accent-color-6) !important;
					}
				}
			}
		}
		&.hidden {
			z-index: -99999;
			pointer-events: none;
			transition: none !important;
			opacity: 0 !important;
		}
	}
}

// ---------------- Custom Widget Styles -------------- //

.elementor-blockquote footer {
	align-items: center;
}

.elementor-blockquote__tweet-button {
	align-self: center;
}

// Button
.elementor-widget-button {
	&.vamtam-el-btn-flex[data-widget_type="button.default"] {
		&, .elementor-widget-container, .elementor-button-wrapper, .elementor-button {
			height: 100%;
		}
		.elementor-button {
			display: flex;
			justify-content: center;
			align-items: center;
		}
		&.elementor-align-left {
			.elementor-button {
				justify-content: flex-start;
			}
		}
		&.elementor-align-center {
			.elementor-button {
				justify-content: center;
			}
		}
		&.elementor-align-right {
			.elementor-button {
				justify-content: flex-end;
			}
		}
	}

	.elementor-button:hover {
		cursor: pointer;
	}

	&.vamtam-has-underline-anim {
		.elementor-button {
			position: relative;
			&::after {
				content: "";
				z-index: 1;
				display: block;
				position: absolute;
				bottom: -5px;
				left: 0;
				right: 0;
				height: 5px;
				background-size: 200% 100%;
				background-position: right center;
				transition: all 1s ease;
				background-image: linear-gradient(to right, var(--vamtam-underline-bg-hover-color ,var(--vamtam-accent-color-1)) 50%, var(--vamtam-underline-bg-color, var(--vamtam-accent-color-2)) 50%);
			}
			&:hover {
				&::after {
					background-position: left center;
				}
			}
		}
	}
}

// Flip-box
.elementor-widget-flip-box {
	// Scuola Elementor Custom Flib Box
	&.vamtam-scuola-el-flip-box-left.elementor-widget {
		.elementor-flip-box .elementor-flip-box__front {
			.elementor-flip-box__layer__inner {
				display: grid;
				grid-template-columns: repeat(4, 1fr);
				grid-template-rows: repeat(2, auto);
				grid-column-gap: 0px;
				grid-row-gap: 0px;

				.elementor-icon-wrapper {
					grid-area: 1 / 1 / 3 / 2;
				}
				.elementor-flip-box__layer__title {
					grid-area: 1 / 2 / 2 / 5;
					align-self: flex-end;
				}
				.elementor-flip-box__layer__description {
					grid-area: 2 / 2 / 3 / 5;
				}
				.elementor-icon {
					margin-right: 50px;
				}
			}
		}
	}
	//Scuola-only
	.elementor-view-stacked.elementor-shape-circle .elementor-icon {
		box-shadow: 0 3px 50px 0 rgba(105,102,130,0.20);
	}
}

// Gallery
.elementor-widget-gallery {
	// Safari-only fix for elementor gallery items.
	.elementor-gallery-item {
		// Add on element with overflow
		-webkit-mask-image: -webkit-radial-gradient(white, black);
	}
}

// Icon-Box
.elementor-widget-icon-box {
	&.elementor-shape-vamtam-amorph .elementor-icon {
		// Base64 version of vamtam-amorph-shape.
		mask: data-uri('image/svg+xml;base64', '../../../assets/images/vamtam-amorph-shape.svg');
	}

	// Maintain flex for all devices for icon box widget (icon left/right).
	&.vamtam-el-widget-icon-box-flex {
		&.elementor-position-left,
		&.elementor-position-right {
			.elementor-icon-box-wrapper {
				display: flex;
				align-items: center;
				.elementor-icon-box-icon {
					display: inline-flex;
					flex: 0 0 auto;
				}
			}
		}

		&.elementor-position-left {
			.elementor-icon-box-icon {
				margin-right: 10px !important;
			}
		}

		&.elementor-position-right {
			.elementor-icon-box-wrapper {
				flex-direction: row-reverse;
			}
			.elementor-icon-box-icon {
				margin-left: 10px !important;
			}
		}
	}

	// Whole box is link.
	&.vamtam-has-box-is-link {
		a.elementor-icon-box-wrapper {
			display: block;

			.elementor-icon-box-description,
			.elementor-icon-box-title {
				transition: all .3s;
			}
		}
	}
}

// Image-Box
.elementor-widget-image-box {
	&.vamtam-has-bg-mask .elementor-widget-container {
		// Base64 version of vamtam-imageBox-bg.
		mask: data-uri('image/svg+xml;base64','../../../assets/images/vamtam-imageBox-bg.svg');
		mask-repeat: no-repeat;
		mask-size: cover;
	}
	&.vamtam-has-image-mask .elementor-image-box-img img {
		// Base64 version of vamtam-imageBox-img.svg.
		mask: data-uri('image/svg+xml;base64','../../../assets/images/vamtam-imageBox-img.svg');
		mask-repeat: no-repeat;
		mask-size: cover;
	}
	&.vamtam-has-eye {
		&.vamtam-has-bg-mask .elementor-widget-container {
			.vamtam-eye {
				position: absolute;
				left: 0;
			}
		}
		.vamtam-eye {
			position: relative;
			bottom: 12px;
			width: 100%;

			&, .outer, .inner {
				display: flex;
				justify-content: center;
				align-items: center;
			}
			.outer, .inner {
				// Base64 version of vamtam-imageBox-eye.svg.
				mask: data-uri('image/svg+xml;base64','../../../assets/images/vamtam-imageBox-eye.svg');
				mask-repeat: no-repeat;
				mask-size: cover;
			}
			.outer {
				height: 50px;
				width: 50px;
			}
			.inner {
				height: 26px;
				width: 26px;
			}
			.eye {
				position: relative;
				width: 100%;
				height: 100%;
				&, &:after {
					border-radius: 50%;
				}
				&:after {
					content: ' ';
					position: absolute;
					height: 8px;
					width: 8px;
					top: 5px;
				}
			}
		}
	}
	.elementor-image-box-content {
		padding-left: 20px;
		padding-right: 20px;
	}

	// Whole box is link.
	&.vamtam-has-box-is-link {
		a.elementor-image-box-wrapper {
			display: block;

			.elementor-image-box-description,
			.elementor-image-box-title {
				transition: all .3s;
			}
		}
	}
}

// Image.
.elementor-widget-image {
	.imageGrowWithScaleLeft,
	.imageGrowWithScaleRight,
	.imageGrowWithScaleTop,
	.imageGrowWithScaleBottom {
		&.vamtam-image-wrapper {
			display: inline-block;
			img {
				width: 100% !important;
			}
		}
	}
	&.imageGrowWithScaleLeft .vamtam-image-wrapper {
		will-change: clip-path;
		animation-name: vamtam-grow-left;
		animation-timing-function: cubic-bezier(0.4, 0, 0, 0.9);
	}
	&.imageGrowWithScaleRight .vamtam-image-wrapper {
		will-change: clip-path;
		animation-name: vamtam-grow-right;
		animation-timing-function: cubic-bezier(0.4, 0, 0, 0.9);
	}
	&.imageGrowWithScaleTop .vamtam-image-wrapper {
		will-change: clip-path;
		animation-name: vamtam-grow-top;
		animation-timing-function: cubic-bezier(0.4, 0, 0, 0.9);
	}
	&.imageGrowWithScaleBottom .vamtam-image-wrapper {
		will-change: clip-path;
		animation-name: vamtam-grow-bottom;
		animation-timing-function: cubic-bezier(0.4, 0, 0, 0.9);
	}
	img.imageGrowWithScaleLeft,
	img.imageGrowWithScaleRight,
	img.imageGrowWithScaleTop,
	img.imageGrowWithScaleBottom {
		animation-name: vamtam-scale-out;
		animation-timing-function: cubic-bezier(0.4, 0, 0, 0.9);
	}

	&.growFromLeftScroll,
	&.growFromRightScroll {
		&.animated-fast .elementor-image img {
			transition-duration: .25s;
		}
		&.animated-slow .elementor-image img {
			transition-duration: .40s;
		}
	}

	&.growFromLeftScroll {
		@val: calc(100% - var(--vamtam-scroll-ratio));
		.elementor-image img {
			clip-path:inset(0 @val 0 0);
			transition: clip-path .35s ease;
			will-change: clip-path;
		}
	}
	&.growFromRightScroll {
		@val: calc(100% - var(--vamtam-scroll-ratio));
		.elementor-image img {
			clip-path:inset(0 0 0 @val);
			transition: clip-path .35s ease;
			will-change: clip-path;
		}
	}
}

// Nav menu
.elementor-widget-nav-menu {

	ul.elementor-nav-menu {
		flex-basis: 100%;
		z-index: 99;
		margin: 0;

		li {
			z-index: 99;
		}
	}

	.elementor-nav-menu ul ul a,
	.elementor-nav-menu--dropdown a	{
		&,
		&:active,
		&:focus,
		&:hover {
			border-left: 0 solid transparent;
		}
	}

	.elementor-nav-menu--dropdown .elementor-item-active {
		font-weight: 600;
	}

	.elementor-nav-menu--main {
		.current-menu-ancestor {
			> a.elementor-item:after {
				width: 100% !important;
				opacity: 1 !important;
				left: 0% !important;
			}
		}

		.elementor-item.elementor-item-active,
		.current-menu-ancestor > a {
			font-weight: 700;
		}

		> .elementor-nav-menu > .current-menu-ancestor .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted) {
			&:before, &:after {
				opacity: 1;
			}
		}

		&:not(.e--pointer-text):not(.e--pointer-none):not(.e--pointer-background) {
			> .elementor-nav-menu > .current-menu-ancestor .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted) {
				&:before, &:after {
					left: auto;
				}
			}
		}

		// Line through pointer.
		&.e--pointer-line-through {
			.elementor-item:after {
				top: 0;
				bottom: 0;
				margin: auto 0;
				z-index: -1;
			}

			.elementor-item.elementor-item-active:after,
			.current-menu-ancestor .elementor-item:after {
				width: 100% !important;
			}

			// Horizontal-grow animation.
			&.e--animation-horizontal-grow .elementor-item {
				&:after {
					opacity: 1 !important;
					transition: background-color .4s ease, width .3s ease-in;
					width: 0;
				}
				&:hover:not(.elementor-item-active):after {
					width: 100% !important;
				}
			}
		}

		// Prefix pointer.
		&.e--pointer-prefix {
			// Theme-dependant values.
			@prefix-width: 10px;
			@prefix-active-width: 25px;
			@prefix-height: 1px;

			.elementor-item:after {
				bottom: unset;
				z-index: -1;
				transform: translateX( calc( -100% - 10px ) );
				height: @prefix-height;
				width: @prefix-width !important;
			}

			.elementor-item.elementor-item-active:after,
			.current-menu-ancestor .elementor-item:after {
				width: @prefix-active-width !important;
			}

			// Prefix-grow animation.
			&.e--animation-prefix-grow .elementor-item {
				&:after {
					opacity: 1 !important;
					transition: background-color .4s ease, width .4s ease;
				}
				&:hover:not(.elementor-item-active):after {
					width: @prefix-active-width !important;
				}
			}
		}
	}

	// Nav menu dropdown item override.
	ul.elementor-nav-menu--dropdown a,
	ul.elementor-nav-menu--dropdown a:focus,
	ul.elementor-nav-menu--dropdown a:hover {
		border-left-width: 0;
	}

	// Pointer bounce anim.
	.e--animation-bounce {
		@keyframes nav-menu--pointer-bounce {
			0%{
			  opacity: 0;
			  transform: scale(0) translateY(200%);
			}
			30%{
				opacity: 0.5;
				transform: scale(0.89) translateY(-35%);
			}
			50%{
			  opacity: 0.9;
			  transform: scale(1) translateY(-35%);
			}
			70%{
				opacity: 0.9;
				transform: scale(1.2) translateY(35%);
			}
			80%{
			  opacity: 1;
			  transform: scale(0.89) translateY(0);
			}
			90%{
				opacity: 1;
				transform: scale(0.89) translateY(0);
			}
			100%{
			  opacity: 1;
			  transform: scale(1) translateY(0);
			}
		}

		.elementor-item:not(.elementor-item-active):hover:before,
		.elementor-item:not(.elementor-item-active):focus:before,
		.elementor-item:not(.elementor-item-active).highlighted:before {
			animation-name: nav-menu--pointer-bounce;
			animation-fill-mode: forwards;
			animation-duration: .5s;
		}
	}

	&.vamtam-has-custom-divider {
		.elementor-nav-menu--dropdown li {
			display: flex;
			justify-content: center;
			align-items: center;

			&:not(:last-child) {
				border-bottom: none;
				&:after {
					content: "";
					position: absolute;
					bottom: 0;
					width: 100%;
					height: 1px;
					z-index: 10;
					background-color: var(--vamtam-accent-color-1);
				}
			}
		}
	}
}

// Testimonial-Carousel.
.elementor-widget-testimonial-carousel {
	// Make duplicates of slides that were hidden (inner anims, etc) visible.
	.swiper-slide-duplicate {
		.elementor-invisible {
			visibility: visible;
		}
	}
}

// Section
.elementor-section {
	&.elementor-element {
		padding-left: 30px;
		padding-right: 30px;
	}
}

// Tabs widget.
.elementor-widget-tabs {
	.elementor-tab-desktop-title {
		padding: 20px;
	}

	// Scuola Elementor Custom Tabs
	&.vamtam-scuola-el-tabs.elementor-tabs-view-horizontal {
		.elementor-tabs .elementor-tabs-wrapper {
			margin-bottom: 60px;
			.elementor-tab-title.elementor-tab-desktop-title.elementor-active {
				font-weight: 600;
			}
		}
		.elementor-tabs-content-wrapper .elementor-tab-title.elementor-tab-mobile-title {
			padding: 15px;
			text-align: center;

			&:not(.elementor-active) {
				font-weight: 600;
				border-bottom: 3px solid var(--vamtam-accent-color-4) ;
				background-color: var(--vamtam-accent-color-3);
				color: var(--vamtam-accent-color-6)
			}
		}
	}

	.elementor-tabs-wrapper {
		padding: 20px;
	}

	// Title numbering mask.
	&.vamtam-has-numbering-bg {
		.elementor-tab-title {
			display: flex;
			align-items: center;

			.title-numbering {
				width: 35px;
				height: 36px;
				margin-right: 10px;
				display: flex;
				justify-content: center;
				align-items: center;
			}

			&.elementor-active .title-numbering {
				// Base64 version of vamtam-tabs-numbering-bg.
				background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNSAzNiI+PHBhdGggZmlsbD0iIzE2NzI4NyIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMzAgNy4zYzQuMiA0LjMgMy44IDkuNiAzLjggMTUuMiAwIDUtMy4zIDguNS0zLjggOS0uNy44LTEuNiAxLjQtMi40IDJsLjEtLjJhNiA2IDAgMCAwIDIuNi0xLjkgMjEgMjEgMCAwIDAgMy41LTUuNmMuMS0uMS4zIDAgLjIuMWE5LjggOS44IDAgMCAxLTEuMyAzLjIgMjAuNyAyMC43IDAgMCAxLTIgMi43IDcuNCA3LjQgMCAwIDEtMi44IDIgMTkuNiAxOS42IDAgMCAxLTMuMiAxYy0xLjkuNy0zLjggMS01LjcgMS02LjctLjEtNy40LjUtMTMuMi00LjNBMTYuNyAxNi43IDAgMCAxIC41IDE1LjggMTMuMiAxMy4yIDAgMCAxIDMgMTAuNUM0IDkuMiA1IDggNi4yIDYuOGExOSAxOSAwIDAgMSA0LTNjMS41LS44IDMuMi0xLjQgNC44LTEuNiAxLjctLjMgMy40LS4yIDUgLjMuMyAwIC4yLjIgMCAuMi0xLjYtLjQtMy4zLS40LTQuOSAwLTEuNi4yLTMuMi44LTQuNiAxLjZsLS4zLjFjMi41LTEgNS4zLTEuNSA3LjYtMS43IDQuOC0uMyA4LjUgMSAxMi4yIDQuNnptLTMuMi0zLjlsLS4xLjItNS0zVi40YTExIDExIDAgMCAxIDUgM3oiLz48L3N2Zz4K');
				background-repeat: no-repeat;
				background-size: cover;
			}
		}
	}

	// Empty title button
	&.vamtam-has-empty-title-button {
		.elementor-tabs-wrapper {
			padding-left: 0;
			padding-right: 0;
			align-items: center;
		}

		&.vamtam-has-nav-over-content {
			.elementor-tabs-wrapper {
				position: absolute;
				top: 0;
				bottom: 0;
				z-index: 1;
			}
		}

		.elementor-tab-title {
			padding: 0 20px;
		}

		.vamtam-no-title {
			a {
				display: block;
				background-color: var(--vamtam-accent-color-4);
			}
			&.elementor-active {
				a {
					background-color: var(--vamtam-accent-color-3);
				}
			}
		}
	}

	// Disable default switch-tab js animation.
	&.vamtam-has-disable-def-anim {
		.elementor-tab-content.elementor-active {
			display: block !important;
		}
	}
}

// Product Add To Cart.
.elementor-widget-woocommerce-product-add-to-cart {
	.added_to_cart {
		text-align: center;
	}
	&.elementor-add-to-cart--align-justify {
		.added_to_cart {
			flex-basis: 100%;
		}
	}
}

// Products archives.
.elementor-widget-wc-archive-products {
	> .elementor-widget-container {
		border-left-width: 0;
		border-right-width: 0;
	}
	.woocommerce-result-count,
	.woocommerce-ordering {
		margin: 20px 0;
	}
	.woocommerce-ordering select {
		margin-bottom: 0 !important;
		padding-right: 40px;
	}
	.woocommerce-result-count {
		padding-top: 15px;
		padding-bottom: 15px;
	}
	&.elementor-widget {
		// Products archives only.
		&.elementor-element.elementor-wc-products .navigation {
			.next:after,
			.prev:after {
				top: unset;
				vertical-align: middle;
			}
		}
	}
}

// Products.
.elementor-widget-woocommerce-products {
	&.vamtam-has-hide-price {
		.products .product span.price {
			display: none;
		}
	}

	&.vamtam-has-no-headers {
		.products.table-layout .vamtam-headers {
			display: none;
		}
	}

	// Table layout defaults.
	.table-layout {
		.product {
			.woocommerce-loop-product__title {
				font-size: 1em;
			}

			// Theme-dependant.
			.price {
				font-weight: 400;
				font-size: .857em;
			}

			.quantity input {
				width: 100%;

				// Theme dependant.
				border-width: 0 0 1px 0;
			}

			.vamtam-add-to-cart-wrap {
				> a.button,
				> .added_to_cart,
				> .add_to_cart {
					width: 100%;
				}
			}
		}
		.vamtam-headers {
			th {
				&:extend(.vamtam-font-h6);
			}
		}
		tr, th, td {
			border: solid var(--vamtam-default-line-color) 1px;
			padding: 0;
			margin: 0;
		}
	}
}

// Products Categories
.elementor-widget-wc-categories {
	&:not(.vamtam-no-count--yes) {
		.woocommerce-loop-category__title .count {
			display: none;
		}
	}

	&.vamtam-has-hide-title {
		.woocommerce-loop-category__title {
			display: none;
		}
	}
}

// Product Images.
.elementor-widget-woocommerce-product-images {
	&.vamtam-has-full-sized-gallery:not(.vamtam-mobile-gallery) {
		.woocommerce-product-gallery__wrapper,
		.woocommerce-product-gallery--vamtam__wrapper {
			display: grid;
			grid-template-columns: 1fr;
			justify-content: center;
			align-items: center;

			.woocommerce-product-gallery__image,
			.woocommerce-product-gallery--vamtam__image {
				width: 100% !important;
			}
		}
	}
}

// Menu cart widget.
// @import (reference) "../../../mixins.less";
// @import (reference) "../../../../buttons.less";
.elementor-widget-woocommerce-menu-cart {

	.elementor-menu-cart__container.elementor-menu-cart--shown {
		background-color: rgba(0,0,0,.80);
	}

	.elementor-menu-cart__container:not(.elementor-menu-cart--shown) .elementor-menu-cart__main {
		opacity: 1;
	}

	.elementor-menu-cart__container .elementor-menu-cart__main {
		width: 30%;
		display: grid;
		grid-template-columns: 1fr;
		grid-template-rows: min-content auto;
		overflow-y: auto;
		padding: 2% 0 0 0; // put bottom padding in .widget_shopping_cart_content to negate how overflow: scroll works.
		font-size: 100%;

		> .vamtam-elementor-menu-cart__header,
		> .widget_shopping_cart_content .cart_item,
		> .widget_shopping_cart_content > :not(.woocommerce-cart-form__contents) {
			padding-left: 7%; // Should also be replicated in Elementor selector (woocommerce-menu-cart.php->padding for footer btns).
			padding-right: 7%; // Should also be replicated in Elementor selector (woocommerce-menu-cart.php->padding for footer btns).
		}

		.widget_shopping_cart_content {
			display: grid;
			grid-template-columns: 1fr;
			grid-template-rows: 1fr min-content min-content;

			// Empty side cart
			.woocommerce-mini-cart__empty-message {
				position: absolute;
				top: 50%;
				left: 50%;
				transform: translate(-50%,-50%);

				&:before {
					content: "\e8e4";
					display: block;
					font-family: eicons;
					font-size: 10em;
					font-weight: 400;
					font-style: normal;
					font-variant: normal;
					line-height: 1;
					text-rendering: auto;
					-webkit-font-smoothing: antialiased;
					color: var(--vamtam-accent-color-6);
					margin-bottom: 20px;
				}
			}
		}

		.vamtam-elementor-menu-cart__header {
			display: flex;
			align-items: center;
			font-size: 16px;
			font-weight: bold;
			color: var(--vamtam-accent-color-6);
			padding-bottom: 20px;

			.elementor-menu-cart__close-button {
				margin: 0;
				margin-left: auto;
				align-self: center;
				width: auto;
				height: auto;
				display: flex;
				flex-direction: column;
				justify-items: center;

				&::before,
				&::after {
					display: none;
				}
			}

			span.label {
				margin-right: 15px;
			}
		}

		.elementor-menu-cart__footer-buttons {
			padding-top: 20px;
			padding-bottom: 20px;
			grid-row: 3;

			.elementor-button--checkout {
				order: 1;
			}

			.elementor-button--view-cart {
				order: 2;
			}

			> a {
				line-height: 30px;
			}
		}

		.elementor-menu-cart__product,
		.elementor-menu-cart__products,
		.elementor-menu-cart__subtotal {
			border-color: var(--vamtam-accent-color-7);
		}

		.vamtam-base-cart-styles();

		//base style overrides so mobile styles are always used for menu cart.
		.product-remove {
			grid-row: 1/2;
			align-self: flex-start;
			svg.vamtam-close {
				font-size: calc(1em - 3px);
			}
		}
		.product-price {
			grid-column: 1/4;
			padding-top: 20px;
			color: inherit;
			&, .amount {
				font-weight: inherit;
			}
		}
		.product-name {
			padding-top: 0;
			padding-left: 20px;
			padding-right: 25px;
		}
		.product-name,
		.product-price {
			font-size: 100%;
		}
		.product-thumbnail {
			grid-row: 1/3;
			> a, > a > img {
				display: block;
			}
		}
		.cart_item {
			grid-template-rows: auto;
			grid-template-columns: 25% auto auto;
			padding-top: 20px;
			padding-bottom: 10px;
		}
	}

	.elementor-menu-cart__container {
		.elementor-menu-cart__subtotal {
			grid-row: 2;
			display: flex;
			padding:  30px 0;
			color: var(--vamtam-accent-color-6);
			font-size: 16px;

			.woocommerce-Price-amount {
				margin-left: auto;
			}
		}
	}

	// This fixes an issue where the card icon flickers on page-load when the "Show Empty" option is used.
	&.elementor-menu-cart--empty-indicator-hide .elementor-menu-cart__toggle .elementor-button-icon[data-counter="0"] {
		&, :before {
			display: none !important;
		}
	}

	// This fixes a bug where the "Show Empty" option is set to true but the empty cart is still getting hidden from js.
	&.hidden:not(.elementor-menu-cart--empty-indicator-hide) {
		display: block;
		visibility: visible;
	}

	// Remove btn - Increased specificity.
	&:not(.elementor-menu-cart--show-remove-button-yes) .elementor-menu-cart__product-remove {
		display: none;
	}

	// Divider - Increased specificity.
	&.elementor-menu-cart--show-divider-yes .elementor-menu-cart__product:not(:last-of-type),
	&.elementor-menu-cart--show-divider-yes .elementor-menu-cart__products,
	&.elementor-menu-cart--show-divider-yes .elementor-menu-cart__subtotal {
		border-bottom-width: 1px;
		border-bottom-style: solid;
	}
}
.woocommerce {
	&.woocommerce-cart,
	&.woocommerce-checkout {
		.elementor-widget-woocommerce-menu-cart {
			&.vamtam-has-hide-cart-checkout {
				display: none;
			}
		}
	}
}

// Posts widget.
.elementor-widget-posts {
	.elementor-post {
		.elementor-post__thumbnail {
			.vamtam-shape {
				// Theme-dependant. Each theme should apply it's own post thumb (if supported).
				background-image: url('data:image/svg+xml,<svg></svg>');

				position: absolute;
				background-repeat: repeat-x;
				left: 0;
				bottom: 0;
				width: 100%;
				height: 26px;
				z-index: 1000;
			}
		}
	}
}

// Social-Icons widget.
.elementor-widget-social-icons {
	&.vamtam-layout-vertical {
		.elementor-social-icons-wrapper {
			display: flex;
			flex-direction: column;
		}
	}

	.elementor-icon {
		&, i {
			transition-duration: .5s;
		}
	}
	// If exists, local option should override kit/global one.
	a.elementor-icon {
		font-size: var(--icon-size);
	}
}

// Call to action.
.elementor-widget-call-to-action {
	// This is to override possible global link text-decoration styles
	// cause of the way text-decoration works on descendants (only for whole box link).
	.elementor-widget-container > a {
		&, &:hover {
			text-decoration: unset;
		}
	}

	// Team Member Skin.
	&[data-widget_type="call-to-action.team-member"] {
		.vamtam-tm-social-links-wrap {
			transition: all .4s ease;
			.vamtam-tm-social-links {
				list-style: none;
				margin: 0;
				padding: 0;
				line-height: 1;
				li {
					list-style: none;
					margin: 0;
					padding: 0;
					vertical-align: top;
				}
			}

			li,
			.vamtam-tm-social-icon,
			.vamtam-tm-divider {
				display: inline-block;
			}

			.vamtam-tm-social-icon-wrap {
				display: inline-flex;
			}
		}
	}

	// Class Skin.
	&[data-widget_type="call-to-action.class"] {
		.vamtam-class-info-wrap {
			transition: all .4s ease;
			.vamtam-class-info {
				list-style: none;
				margin: 0;
				padding: 0;
				line-height: 1;
				li {
					list-style: none;
					margin: 0;
					padding: 0;
					vertical-align: top;
				}
			}

			li,
			.vamtam-class-info-icon,
			.vamtam-tm-divider {
				display: inline-block;
			}

			.vamtam-class-info-content-wrap {
				display: inline-flex;
				justify-content: center;
				align-items: center;
				&, .vamtam-class-info-icon, .vamtam-class-info-text {
					transition: all .3s ease;
				}
			}
		}
	}
}

// Search form
.elementor-widget-search-form {
	&.elementor-search-form--skin-full_screen .elementor-search-form__container {
		background-color: var(--vamtam-accent-color-1);
		opacity: .9;

		::-webkit-search-cancel-button {
			display: none;
		}

		input.elementor-search-form__input {
			font-size: 9em;
			line-height: 1.3em;
			&, &:focus {
				text-align: left;
				color: var(--vamtam-accent-color-2);
				border-color: var(--vamtam-accent-color-2);
				border-width: 0 0 3px 0;
				border-radius: 0;
				padding-left: 0;
				padding-right: 0;

				&::placeholder {
					color: inherit;
					opacity: .5;
				}
			}
		}

		.dialog-close-button {
			color: var(--vamtam-accent-color-2);
			font-size: 3em;
			right: .6em;
			top: .6em;
			margin-top: 0;
			padding: .2em;
		}
	}
}

// Vamtam Animated Headline.
.elementor-widget-vamtam-animated-headline {
	// Blurred letters anim.
	// Anim triggering is being handled from vamtam-animated-headline.js
	&.elementor-headline--style-blurred_letters {
		@keyframes vamtam-blurred-letters {
			0% {
				filter: blur(10px);
				opacity: 0;
			}
			20% {
				filter: blur(10px);
				opacity: 0;
			}
			100% {
				filter: blur(0);
				opacity: 1;
			}
		}
		.vamtam-word {
			position: relative;
			display: inline-flex;
			.vamtam-letter {
				opacity: 0;
			}
		}
	}

	.elementor-headline {
		margin: 0;
	}
}

// Form.
.elementor-widget-form {
	.elementor-field-type-acceptance {
		.elementor-field-option {
			display: flex;
			align-items: center;
		}
	}
}

// Slides.
.elementor-widget-slides {
	.elementor-swiper-button {
		transition: color .3s ease;
	}
	&.elementor-arrows-position-overlap {
		.elementor-swiper-button-prev {
			left: -.6em;
		}
		.elementor-swiper-button-next {
			right: -.6em;
		}
	}
}

.elementor-post-navigation {
	.post-navigation__next--label,
	.post-navigation__next--title,
	.post-navigation__prev--label,
	.post-navigation__prev--title {
		white-space: normal;
		overflow: visible;
	}
}
