/*
		--accent: 		#CD9391
		--text:				#72787A
		--secondary:	#EBD8D5
		--headerbg:		#F4F0F2
		--gray: 			#F7F7F7
		--wrapper: 		1400px
*/

html {
	overflow-x:hidden;
}

html, body {
	font-family:'Inter';
	font-weight:400;
	color:var(--text);
	line-height:2.2;
	max-width:2560px;
	margin:0 auto;
	background-color:white;
	min-height:100%;
	overflow-x:hidden;
}

::-moz-selection {
  background-color: var(--accent);
  color:white;
  text-shadow: none;
}
::selection {
  background-color: var(--accent);
  color:white;
  text-shadow: none;
}

/* HELPERS */
.mb-0 { margin-bottom:0 !important; }
.mb-1 { margin-bottom:1rem !important; }
.mb-2 { margin-bottom:2rem !important; }
.mb-3 { margin-bottom:3rem !important; }
.mb-4 { margin-bottom:4rem !important; }
.mb-5 { margin-bottom:5rem !important; }
.mt-0 { margin-top:0 !important; }
.mt-1 { margin-top:1rem !important; }
.mt-2 { margin-top:2rem !important; }
.mt-3 { margin-top:3rem !important; }
.mt-4 { margin-top:4rem !important; }
.mt-5 { margin-top:5rem !important; }
.pb-0 { margin-bottom:0 !important; }
.pb-1 { padding-bottom:1rem !important; }
.pb-2 { padding-bottom:2rem !important; }
.pb-3 { padding-bottom:3rem !important; }
.pb-4 { padding-bottom:4rem !important; }
.pb-5 { padding-bottom:5rem !important; }
.pt-0 { padding-top:0 !important; }
.pt-1 { padding-top:1rem !important; }
.pt-2 { padding-top:2rem !important; }
.pt-3 { padding-top:3rem !important; }
.pt-4 { padding-top:4rem !important; }
.pt-5 { padding-top:5rem !important; }

.align-left { text-align:left !important; }
.align-right { text-align:right !important; }
.align-center { text-align:center !important; }
.align-justify { text-align:justify !important; }

cite {
	display:inline-block;
	color:var(--main);
	font-size:2rem;
	text-align:center;
	font-family:'PlayfairDisplay', Arial;
	font-style:normal;
	padding:1rem;
	line-height:1.2;
	margin-block:2rem;
}

hr {
	display:inline-block;
	border:none;
	height:0.25rem;
	width:10rem;
	background-color:var(--accent);
	margin-block:2rem;
}

a {
	color:var(--text);
	text-decoration:none;
	transition:all 0.3s ease;

	i {
		color:var(--text);
		transition:all 0.3s ease;
	}

	&:hover {
		color:var(--accent);

		i {
			color: var(--accent);
		}
	}
}

b, strong { font-weight:700; }
i, em { font-style:italic; }

.bg-accent { background-color:var(--accent) !important;	}
.bg-gray { background-color:var(--gray) !important;	}
.bg-secondary { background-color:var(--secondary) !important;	}
.accent { color:var(--accent) !important; }
.gray { color:var(--gray) !important; }
.secondary { color:var(--secondary) !important; }

img {
	width:100%;
	height:auto;
}

.wrapper {
	margin: 0 auto;
	width: min(92vw, var(--wrapper));
}
:root {
	--widespace:clamp(2rem, 5rem, 5vw);
	--nocat:inline-block;
}

.elementor-template-full-width #content,
.elementor-column-gap-default > .elementor-column > .elementor-element-populated {
    padding:0;
}
.elementor-button {
	text-decoration:none !important;
	text-transform:uppercase;
	padding:0.25rem 0.25rem 0.25rem 2rem;

	.elementor-button-content-wrapper {
		align-items:center;
		gap:2rem;
	}

	.elementor-button-icon {
    height: 2.165rem;
    width: 3.438rem;
    border-radius: 3.125rem;
    display: flex;
    justify-content: center;
    align-items: center;
    background: var(--accent);
    color: white;
    transition: all 0.3s ease-out;

    svg {
    	color:white;
    	fill:white;
    }
  }

  &:hover {
	  .elementor-button-icon {
	  	background-color: white;

	  	svg {
	  		color:var(--accent) !important;
	  		fill:var(--accent) !important;
	  	}
	  }
	}
}
/**/

/* TYPO */
h1, h2, h3 {
	font-family: 'PlayfairDisplay';
	line-height:1.2;
}

h1 {
	font-size:clamp(1.8rem, 3.75rem, 5vw);
	line-height:1.083;
}
h2 {
	font-size:clamp(1.7rem, 3.125rem, 4vw);
}
h3 {
	font-size:1.563rem;
	color:var(--accent);
}
h4 {
	font-weight:700;
	color:var(--accent);
	text-transform:uppercase;
}

/* HEADER */
header {
	height:5rem;
	z-index: 9;
	transition: all 0.3s ease;
	display: flex;
	justify-content: space-between;
	align-items: center;
	background-color: white;
	position: fixed;
	border-radius:2.5rem;
	left: 50%;
	transform: translateX(-50%);
	top: 1rem;

	#logo {
		padding-inline:1.5rem;
		height:3.375rem;
		display:flex;
		justify-content:center;
		align-items:center;

		img {
			height:40px;
		}
	}
	
	&.sticky {
		position:fixed;
		height:4rem;
		top:0;
		border-top-left-radius:0;
		border-top-right-radius:0;
		border-bottom-left-radius:1.4rem;
		border-bottom-right-radius:1.4rem;
		box-shadow: 0 0 1rem 0 rgba(0,0,0,0.2);
	}
	
	&.sticky #logo { height:60px; }

	.menu-item {
		padding-inline:1.5rem;
		position:relative;
	}

	.button {
		margin-right:1.5rem !important;
	}
}

.header-bg {
	max-height:40.625rem;
	aspect-ratio:2.95 / 1;
	width:100%;
	background-color: var(--headerbg);
	background-position:center center;
	background-repeat:no-repeat;
	background-size:cover;
	border-bottom-left-radius:clamp(3rem, 7.5rem, 7vw);
	border-bottom-right-radius:clamp(3rem, 7.5rem, 7vw);

	&.smallheader {
		max-height:25rem;
	}

	h1.white {
		color:white;
	}
}

.home-slider {
	background-color: var(--headerbg);
}

/* MENU */
.menu {
	display:flex;
}
.menu-item a {
	text-transform:uppercase;
	color:var(--menu);
}
header .menu-item a {
	display: inline-flex;
	align-items: center;
}
header.sticky .menu-item a {
	color:var(--text);
}

.menu-item a:hover {
	color:var(--accent);
}
.menu-item.current_page_item a {
	font-weight:700;
	pointer-events:none;
	color:var(--accent) !important;
}

.menu .sub-menu {
    display: none;
    position: absolute;
    top: 80%;
    left: 0;
    z-index: 9;
    background: white;
    transition: all 0.3s ease;
    width: 20rem;
    height: 0;
    padding-bottom:1rem;
    line-height:1.4;
    padding-top:0.625rem;
}

.menu .menu-item:hover > .sub-menu,
.menu .menu-item .sub-menu:hover {
	display:inline-block;
	height:5rem;
}

.page-title {
	height: 100%;
	display: flex;
	align-items: center;
}

/* MOBILE MENU */
#mobile-menu, .header-buttons, #sidebar-toggle { display:none; }

.nav-btn {
	width: 48px;
	height: 48px;
	transform: rotate(0deg);
	cursor: pointer;
	border-radius: 50%;
	cursor:pointer;
	top:50%;
	transform: translateY(-50%);
	right:4vw;
	position:absolute;
}
.nav-btn span {
	display: block;
	position: absolute;
	height: 2px;
	width: 50%;
	border-radius: 1px;
	opacity: 1;
	left: 12px;
	transform: rotate(0deg);
	background:var(--accent);
}
.nav-btn span:nth-child(1) {
	top:14px;
	left:9px;
}
.nav-btn span:nth-child(2) {
	top:23px;
	left:9px;
}
.nav-btn span:nth-child(3) {
	top:32px;
	left:9px;
}
.nav-btn.open span { background:var(--text); }
.nav-btn.open span:nth-child(1) {
	top: 23px;
	left: 12px;
	-webkit-transform: rotate(45deg);
	-moz-transform: rotate(45deg);
	-o-transform: rotate(45deg);
	transform: rotate(45deg);
}
.nav-btn.open span:nth-child(2) {
	opacity: 0;
	background:var(--text);
}
.nav-btn.open span:nth-child(3) {
	top: 23px;
	left: 12px;
	-webkit-transform: rotate(-45deg);
	-moz-transform: rotate(-45deg);
	-o-transform: rotate(-45deg);
	transform: rotate(-45deg);
}

#mobile-menu {
	padding:4vw;
	position: fixed;
	left:0;
	top:0;
	width:100vw;
	height:100vh;
	/*transition:all .3s ease;*/
	color:var(--text);
	background:white;
	z-index:999999;
	display:none;
	overflow: hidden;
	z-index:99;

	.nav-btn {
		top:calc(4vw + 12px);
	}

	#logo {
		display: inline-block;

		img {
			width:100% !important;
			height:40px;
		}
	}

	.menu {
		margin-top:5vh;
		display:block;

		li {
			display:inline-block;
			width: 100%;
			padding-block:0.5rem;
		}
	}

	.widget_product_categories {
		margin-top:2rem;
		list-style:none;
	}

	.product-categories {
		margin-top:2rem;

		li {
			position:relative;
			width:100%;

			&.cat-parent:before {
				font-family: "Font Awesome 7 Free";
				font-weight: 900;
				content: "\f054";
				display: inline-block;
				margin-right:1rem;
				vertical-align:middle;
				color:var(--accent);
				transition:all 0.3s ease;
			}

			&.mobmenuopened:before {
				transform: rotate(90deg);
			}

			& ul.children {
				padding-left:2.5rem;
				display: none;
				padding-bottom:0.5rem;

				a {
					text-transform:none;
					font-weight:400;
				}

				.current-cat {
					pointer-events:none;

					a {
						color: var(--accent);
					}
				}
			}

			a {
				text-decoration:none !important;
				text-transform:uppercase;
				font-weight:700;
			}

			&.current-cat a {
				pointer-events:none;
				color:var(--accent);
			}
		}
	}
}

#sidebar-toggle {
	position: absolute;
  right: 6rem;
  top:50%;
  transform: translateY(-49%);
  font-size:1.4rem;
  cursor: pointer;
}


/* MAIN */
.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button,
.button {
	display:inline-flex;
	width:auto;
	padding-inline:3rem;
	text-transform:uppercase;
	justify-content:center;
	align-items:center;
	height:2.8rem;
	border-radius:1.4rem;
	transition:all 0.3s ease;
	text-decoration: none !important;

	&.button-fill {
		background-color:var(--accent);
		color:white;

		&:hover {
			background-color:var(--text);
		}
	}

	&.button-icon {
		justify-content: space-between;
    padding-inline: 2rem 0.25rem;
    gap: 2rem;
    background-color:transparent;
    border:0.125rem solid var(--accent);
    color:var(--accent);

    i {
			height: 2.165rem;
			width: 3.438rem;
			border-radius: 3.125rem;
			display: flex;
			justify-content: center;
			align-items: center;
			background: var(--accent);
			color: white;
			transition: all 0.3s ease-out;
		}

    &:hover {
    	background-color:var(--text);
    	border-color:var(--text);
    	color:white;

    	i {
    		background-color:white;
    		color:var(--accent);
    	}
    }
	}
}

.home-slider {
	border-bottom-left-radius: clamp(3rem, 7.5rem, 7vw);
  border-bottom-right-radius: clamp(3rem, 7.5rem, 7vw);
  overflow:hidden;
}

#content {
	padding-block:var(--widespace);
}
#content a,
.footer-copyright a {
	text-decoration:underline;
}

.rounded-box {
	background-color: var(--headerbg);
	padding-block: 4rem;
	padding-right: 4rem;
	position: relative;
	border-top-right-radius: clamp(3rem, 8.125rem, 8vw);
	border-bottom-right-radius: clamp(3rem, 8.125rem, 8vw);

	&:before {
		content:'';
    background-color: var(--headerbg);
    position: absolute;
    width: 50vw;
    height: 100%;
    top: 0;
    right: 99.9%;
    z-index: 0;
	}
}

.rounded-top-right img {
	border-top-right-radius: clamp(3rem, 8.125rem, 8vw);
}

.between .elementor-container {
	justify-content:space-between;

	& > div:first-child {
		width:45%;
	}
}

.colored-box {
	background-color: var(--headerbg);
	border-radius: 1.4rem;
	box-shadow: 0px 3px 6px #00000029;
	height: 100%;
	display: flex;
	flex-direction: column;
	padding: 2rem 1rem;

	h3 {
		margin-bottom:2rem;
	}
}

.video-section-dx {
	position:relative;

	&:before {
		content:'';
    background-color: var(--headerbg);
    position: absolute;
    width: 90vw;
    height: 100%;
    top: 0;
    left: 40%;
    z-index: 0;
    border-top-left-radius: clamp(3rem, 8.125rem, 8vw);
		border-bottom-left-radius: clamp(3rem, 8.125rem, 8vw);
	}
}

.bg-long-left {
	position:relative;

	&:before {
		content:'';
    background-color: var(--headerbg);
    position: absolute;
    width: 90vw;
    height: 100%;
    top: 0;
    right: 35%;
    z-index: 0;
    border-top-right-radius: clamp(3rem, 8.125rem, 8vw);
		border-bottom-right-radius: clamp(3rem, 8.125rem, 8vw);
	}
}
.z2 {
	z-index: 2;
}
.nocat {
	display:var(--nocat);
}


/* contatti */
.gap-2 .elementor-column-gap-wide {
	gap:1.5rem;
}
.elementor-column-gap-wide > .elementor-column > .elementor-element-populated {
	padding:0 !important;
}
.page-id-215 .colored-box {
	background-color: var(--gray);
	a {
		text-transform:uppercase;
		text-decoration:none !important;
		color:var(--accent);

		&:hover {
			text-decoration:underline !important;
		}
	}
}

.form-container {
	padding:2rem;
	background-color: var(--gray);
	border-radius:1.563rem;
	margin-top: 2rem;
	box-shadow:0px 3px 6px rgba(0,0,0,0.25);

	.dual-field {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    row-gap: 1rem;
    grid-row-gap: 0;
  }

  p.label {
    position: relative;
    z-index: 3;
    margin-bottom: 0;

    span.field-label {
      position: absolute;
      z-index: 4;
      top: 50%;
      transform: translateY(-50%);
      left: 1rem;
      background-color: var(--gray);
      line-height: 1;
      padding: 0 0.3rem;
      transition: all 0.1s ease-out;

      i {
        color: var(--accent);
        font-size: 0.5rem;
        vertical-align: text-top;
      }

      &.focused {
        top: 0.45rem;
      }
    }
  }

  .wpcf7-form-control-wrap {
    margin-block: 0.5rem;
    display: inline-block;
    width: 100%;
    position: relative;
  }

  input:not([type="file"], [type="checkbox"], [type="radio"]), select, textarea {
	  border: 0.125rem solid var(--secondary);
	  background-color: var(--gray);
	  border-radius:1.563rem;
	  padding: 1rem;
	  display: inline-block;
	  width: 100%;
	  font-size: 1rem;
	  color: var(--text);
	  transition: all 0.3s ease;
	  font-family:'Inter';
	}
	textarea {
		height:10rem;
		border-bottom-right-radius:0;
	}

	input:not([type="file"], [type="checkbox"], [type="radio"]), select, textarea {
	  &:focus {
	    border-color: var(--accent);
	  }
	}

	input[type="checkbox"] {
	  cursor: pointer;
	  accent-color: var(--accent);
	}
	label { cursor:pointer; }

	.wpcf7-not-valid-tip {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    font-size: 0.8rem;
    right: 2rem;
    color:var(--accent);
  }

  .wpcf7-list-item {
		margin: 0;
		line-height:1.3;
	}
	.comm {
		.wpcf7-form-control-wrap {
			display:inline-block;
			margin-block:0 1rem;
		}
	}
	.wpcf7-list-item-label {
		font-size:0.9rem;
	}

	.form-submit {
		text-align: right;

		input {
			width:auto;
			min-width:15rem;
			text-transform: uppercase;
			background-color: var(--accent);
			color:white;
			border:0 none;
			cursor:pointer;
			transition: all 0.3s ease;

			&:disabled {
				opacity:0.3;
			}

			&:not(:disabled):hover {
				background-color: var(--text);
			}
		}
	}
	.wpcf7-spinner {
		position: absolute;
  	left:0.5rem;
	}
}

/* elenco prodotti */
.tax-product_cat, .woocommerce-shop {
	.header-bg {
		max-height:25rem;

		h1 {
			font-size:clamp(1.7rem, 2.5rem, 4vw);
		}
	}

	.archive-container {
		display:grid;
		grid-template-columns:1fr 3fr;
		gap:clamp(1rem, 3rem, 3vw);
		padding-bottom:0 !important;

		.woocommerce-pagination { 
			display:none;
		}

		aside {
			background-color:var(--headerbg);
			padding-block: 4rem;
			padding-right:2rem;
			border-top-right-radius: clamp(3rem, 8.125rem, 8vw);
			position:relative;

			&::before {
				content:'';
				background-color: var(--headerbg);
				position: absolute;
				width: 50vw;
				height: 100%;
				top: 0;
				right: 99.9%;
				z-index: 0;
			}

			h3 {
				text-transform: uppercase;
			}

			.product-categories {
				margin-top:2rem;

				li {
					position:relative;
					width:100%;

					&.cat-parent:before {
						font-family: "Font Awesome 7 Free";
						font-weight: 900;
						content: "\f054";
						display: inline-block;
						margin-right:1rem;
						vertical-align:middle;
						color:var(--accent);
						transition:all 0.3s ease;
					}

					&.mobmenuopened:before {
						transform: rotate(90deg);
					}

					& ul.children {
						padding-left:2.5rem;
						display: none;
						padding-bottom:0.5rem;

						a {
							text-transform:none;
							font-weight:400;
						}

						.current-cat {
							pointer-events:none;

							a {
								color: var(--accent);
							}
						}
					}

					a {
						text-decoration:none !important;
						text-transform:uppercase;
						font-weight:700;
					}

					&.current-cat a {
						pointer-events:none;
						color:var(--accent);
					}
				}
			}
		}

		.products-container .product-preview {
			margin-bottom:3rem;
			position:relative;

			& > div {
				padding:1.5rem 2rem 1.5rem 2rem;
				background-color: var(--gray);
				border-radius: 1.563rem;
				width:calc(100% - 3rem);
				position:relative;
				z-index:1;

				ul {
					columns:2;

					li::before {
						content: "\2022";
	          color: var(--accent);
	          font-weight: bold;
	          display: inline-block;
	          width: 1.5rem;
	          font-size: 1.5rem;
	          line-height: 1.5rem;
					}
				}
			}

			&:before {
				content:'';
				position:absolute;
				display:flex;
				right:0;
				width:6rem;
				height:100%;
				top:0;
				background-color:var(--accent);
				background-image: url('/wp-content/uploads/2026/03/unique_estetica_funzionale_alert_icon.png');
				background-position:3.5rem center;
				background-size:30px 30px;
				background-repeat:no-repeat;
				border-radius: 1.563rem;
				z-index:0;
			}

			ul {
				margin-block:1rem;
			}

			h2, h3, h4 {
				margin-bottom:1rem;
			}
		}

		.products-container .product-grid {
			padding-bottom:4rem;
			display:grid;
			grid-template-columns:repeat(auto-fit, minmax(230px, 1fr));
			gap:clamp(1rem, 3rem, 3vw);

			.product {
				background-color:var(--gray);
				border-radius: 1.563rem;
				overflow:hidden;
				box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.25);
				cursor:pointer;
				transition:all 0.3s ease;
				border:1px solid var(--gray);
				padding:1.2rem 1.5rem 1.5rem;
				display: flex;
        flex-direction: column;
        justify-content: space-between;
        max-width:400px;

				h2 {
					font-size: 1.563rem;
					display:inline-block;
					transition:all 0.3s ease;
					height:3.75rem;
				}

				&:hover {
					box-shadow:0 0 0 rgba(0, 0, 0, 0);
					border:1px solid #eee;

					h2 {
						color: var(--accent);
					}
				}

				.product-img {
					aspect-ratio: 1;
					width:100%;
					background-size:cover;
					background-position:center center;
					background-repeat:no-repeat;
				}
				.product-info {
					display:flex;
					flex-direction:column;
					gap:0.5rem;

					span {
						width:100%;
						line-height:1;

						&.parent-cat {
							text-transform:uppercase;
							font-weight:700;
							margin-bottom:0;
						}
					}
				}
			}
		}
	}

	footer .footer-content {
	  border-color:var(--headerbg) !important;
	  margin-top:-0.063rem;
	}
}

/* prodotto */
.single-product div.product {
	& > div {
		float:none !important;
		width:47% !important;
		vertical-align:top;
		display:inline-block !important;

		&:first-child {
			margin-right:5.5%;
		}
	}
}

.product-content {
	h1, h3, h3 a {
		color: var(--accent);
	}
	h3 a {
		text-decoration:none !important;

		&:hover {
			color:var(--text);
		}
	}

	.stats {
		display:flex;
		gap:2rem;

		& > div {
			display:flex;
			align-items:center;
			gap:0.5rem;
			flex-wrap: wrap;
		}

		.values {
			display:inline-flex;
			gap:0.1rem;

			svg {
				display:inline-block;
				height:1.5rem;
				width:1.5rem;
				fill:var(--accent);
			}
		}
	}
}

.woocommerce-product-gallery {
	.woocommerce-product-gallery__image > a {
		pointer-events: none;

	 	& > img {
			border-radius: 2.188rem;
		}
	}
	.flex-viewport {
		border-radius:2.188rem;
		overflow:hidden;

		 & .woocommerce-product-gallery__image > a {
			pointer-events:none;

			& > img {
				border-radius:0 !important;
			}
		}
	}
	.flex-control-nav {
		margin-top:1rem !important;

		li {
			margin-right:1rem !important;
			width:7.5rem !important;
			aspect-ratio:1;
			border-radius:1.563rem;
			overflow:hidden;

			img { opacity:1 !important; }
		}
	}

	.flex-direction-nav {
    position: absolute;
    top:calc(50% - 4.25rem);
    transform:translateY(-50%);
    display:flex;
    width:100%;
    justify-content:space-between;
    align-items:center;
    z-index: 5;

		.flex-nav-prev,
		.flex-nav-next {
			margin-inline:1rem;
			width:3.438rem;
			height:2.5rem;
			line-height:1;
			text-align: center;
			background:var(--accent);
			color:white;
			border-radius:1.875rem;
			z-index: 99;
			display:flex;
			justify-content:center;
			align-items:center;
			text-decoration: none;
			cursor:pointer;
			transition:all 0.3s ease;

			i {
				color: white;
			}

			&:hover {
				background-color: var(--text);
			}
		}
	}
}

.product-tabs {
	.product-tab-header {
		display:flex;
		justify-content:space-between;
		align-items:center;
		text-transform:uppercase;
		font-weight:700;
		border-bottom:0.125rem solid var(--secondary);
		padding-block:0.25rem;
		transition:all 0.3s ease;
		cursor:pointer;

		i {
			transform:rotate(-45deg);
			transition:all 0.3s ease;
		}

		&:hover {
			color:var(--accent);
		}

		&.tab-active i {
			transform:rotate(45deg);
			color:var(--accent);
		}
		
	}

	.product-tab-content {
		padding-block:0.25rem;
	}
}

.product-extra {
	margin-top:min(4vw, 4rem);
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:4rem;
	align-items:center;

	.product-extra-sx {
		background-color: var(--headerbg);
		padding-block:4rem;
		padding-right:4rem;
		position:relative;
		border-top-right-radius: clamp(3rem, 8.125rem, 8vw);
		border-bottom-right-radius: clamp(3rem, 8.125rem, 8vw);

		.pink-bg {
			background-color:var(--headerbg);
			position:absolute;
			width:50vw;
			height:100%;
			top:0;
			right:99%;
			z-index:0;
		}
		.product-extra-content {
			z-index:3;
			position:relative;

			h2 {
				margin-bottom:2rem;
			}
			.button {
				margin-top:2rem !important;
			}
		}
	}

	.product-extra-dx {
		display:grid;
		justify-content:center;
		align-items:center;
		grid-template-columns:2fr 3fr;
		gap:1rem;

		&.single {
			grid-template-columns:100%;
			gap:0;
		}

		.appr-img { 
			border-radius: 1.563rem;
			transform:translateY(45%);
			overflow:hidden;

			img {
				width:100%;
				height:auto;
			}

			&.wide {
				transform:none;
			}
		}

		.appr-vid {
			height: 0;
			padding-top: 125%;
			transform:translateY(-20%);
			position: relative;
			overflow: hidden;
			width:100%;
			border-radius: 1.563rem;

			&.wide {
				transform:none;
				padding-top: 56.25%;
			}
			
			video {
				position: absolute;
				top: 50%;
				left: 50%;
				transform: translate(-50%, -50%);
				height: 100%;
			}

			/* overlay che copre il container e centra l'SVG */
			.play-overlay {
				position: absolute;
				inset: 0; /* top:0; right:0; bottom:0; left:0; */
				display: flex;
				align-items: center;
				justify-content: center;
				pointer-events: auto;
				background-color: rgba(0, 0, 0, 0.5);
			}

			/* stile del bottone SVG */
			.play-btn {
				cursor: pointer;
				transition: transform 150ms ease, opacity 150ms ease;
				/* evita che il click passi al video sotto se il svg è trasparente */
				pointer-events: all;
			}
		}
	}
}

.tax-product_cat, .woocommerce-shop, .single-product {
	footer, header .menu-main-container { display:none !important; }
}

/* testimonials */
.content-testimonials {
	--gap:1rem;
	display: grid;
	grid-template-columns: 20rem auto;
	gap:var(--gap);
	margin-top: clamp(2rem, 5rem, 4vw);

	h2 {
		color: var(--accent);
		margin-bottom:3rem;
	}

	.sidebar-testimonials {
		padding: 3rem 0;
		background-color:white;
		color: white;
		position: relative;
		z-index:3;
		box-shadow: 0 0 0.5rem 0.6rem white;

		 &::before {
      background-color:white;
      content: '';
      position: absolute;
      width: 50vw;
      height: 110%;
      right:100%;
      top:-5%;
    }

    .carousel-nav .button {
    	height:2rem;
    	border-radius:1rem;
    	padding-inline:1rem;

    	i {
    		color: white;
    	}

    	&.slideRight {
    		margin-left:0.5rem;
    	}
    }
	}

	.container-testimonials-wrapper {
		position:relative;
		z-index: 1;

		&::after {
			background-color:white;
			/* content: '';  spento*/
			position: absolute;
			width: 50vw;
			height: 110%;
			left: 100%;
			top: -5%;
			z-index:2;
		}
	}

	.container-testimonials {
		/*height:30rem;*/
		display: flex;
		gap:var(--gap);
		transition: transform 0.5s ease-out;
		will-change: transform;
		transform: translateX(0);
		box-sizing: border-box;

		.testimonial {
			flex: 0 0 calc((100% - (var(--gap) * 3)) / 2);
			box-sizing: border-box;
			padding:1.5rem 2rem 1.5rem;
			border-radius:1.5rem;
			transition:all 0.5s ease-out;
			display:flex;
			flex-direction:column;
			justify-content:space-between;
			background-color: var(--headerbg);
		  border-radius: 1.4rem;
		  box-shadow: 0px 3px 6px #00000029;
		  max-width:525px;

			.virgolette {
				.eval {
					display: inline-flex;
	      	gap: 0.1rem;
	      	flex-shrink: 0;

	      	& svg {
	      		display: inline-block;
	        	height: 1.5rem;
	        	width: 1.5rem;
	        	fill: var(--accent);
	      	}
				}

				i {
					font-size:2.813rem;
					font-weight:bold;
					color: var(--text);
				}

				display:flex;
				justify-content: space-between;
				align-items:center;
				gap:1rem;
				margin-bottom:1rem;
			}

			h4 {
				font-weight:400;
				color:var(--text);
				line-height:1;
			}

			.excerpt {
				text-transform:uppercase;
				font-weight:700;
				color:var(--accent);
				font-size:1rem;
				margin:0;			
			}
		}
	}
}

.testimonials-area {
	margin-top:2rem;

	.container-testimonials {
		/*height:30rem;*/
		display:grid;
		gap:1rem;
		grid-template-columns:1fr 1fr;
		box-sizing: border-box;

		.testimonial {
			box-sizing: border-box;
			padding:1.5rem 2rem 1.5rem;
			border-radius:1.5rem;
			transition:all 0.5s ease-out;
			display:flex;
			flex-direction:column;
			justify-content:space-between;
			background-color: var(--headerbg);
		  border-radius: 1.4rem;
		  box-shadow: 0px 3px 6px #00000029;

			.virgolette {
				.eval {
					display: inline-flex;
	      	gap: 0.1rem;
	      	flex-shrink: 0;

	      	& svg {
	      		display: inline-block;
	        	height: 1.5rem;
	        	width: 1.5rem;
	        	fill: var(--accent);
	      	}
				}

				i {
					font-size:2.813rem;
					font-weight:bold;
					color: var(--text);
				}

				display:flex;
				justify-content: space-between;
				align-items:center;
				gap:1rem;
				margin-bottom:1rem;
			}

			h4 {
				font-weight:400;
				color:var(--text);
				line-height:1;
			}

			.excerpt {
				text-transform:uppercase;
				font-weight:700;
				color:var(--accent);
				font-size:1rem;
				margin:0;			
			}
		}
	}
}

/* carousel */
#carousel {
	position: relative;
	width: 100%;
	margin: 0 auto;
	display: flex;
	align-items: center;

	.data-box {
		z-index: 2;
		position:absolute;
		height:calc(100% + 4rem);
		top:50%;
		left:50%;
		transform:translate(-50%, -50%);

		& > div {
			background-color: var(--secondary);
			padding:2rem 1rem 2rem 0;
			width:50%;
			height:100%;
			border-top-right-radius: clamp(3rem, 8.125rem, 8vw);
			border-bottom-right-radius: clamp(3rem, 8.125rem, 8vw);
			display: flex;
      flex-direction: column;
      justify-content: center;

			& > div {
				display:flex;
				gap:1rem;

				.text-card-container {
					flex-shrink: 0;
					width:39%;
					display:flex;
					flex-direction:column;
					justify-content:center;
					gap:1rem;

					.text-card {
						display:none;

						h5 {
							color: var(--text);
							text-transform:normal;
							font-weight: 700;
							font-size: 1.563rem;
							line-height: 1.3;
							margin-bottom:0.5rem;
						}

						p {
							line-height:1.2;
							margin-bottom:0.7rem;
						}

						a {
							text-transform:uppercase;
							font-weight: 700;
							color:var(--accent);
							margin-bottom:0.5rem;

							&:hover {
								color:var(--text);
							}
						}

						&:first-child {
							display:block;
						}
					}
					
					.navigation .button {
						cursor:pointer;
						padding-inline:1.2rem;
					  height: 2.2rem;
					  border-radius: 1.1rem;

						i {
							color:white;
						}
					}
				}

				.image-card-container {
					width:100%;

					.image-card {
						display:none;

						&:first-child {
							display:block;
						}
					}
				}
			}

			&:before {
				content:'';
		    background-color: var(--secondary);
		    position: absolute;
		    width: 90vw;
		    height: 100%;
		    top: 0;
		    right:100%;
		    z-index: 0;
			}
		}
	}

	.viewport {
		width: 100%;

		.track {
			display: flex;
			width: 100%;
			transition: transform 0.3s ease-out;
			will-change: transform;

			.card {
				flex: 0 0 auto;
				height:25rem;
				display: flex;
				justify-content: center;
				align-items: center;
				font-size: 30px;
				user-select: none;

				img {
					width:15.625rem;
				}
			}
		}
	}

	.noevents {
		pointer-events:none !important;
	}
}

@media (max-width: 900px) {
	.card { flex: 0 0 calc(33.333% - 10px); } /* 3 card */
}

@media (max-width: 600px) {
	.card { flex: 0 0 calc(50% - 10px); } /* 2 card */
}

@media (max-width: 400px) {
	.card { flex: 0 0 calc(100% - 10px); } /* 1 card */
}

/* area */
.page-template-area .header-bg h1.white {
	color: var(--text);
}

.area-container {
	display:grid;
	grid-template-columns:auto 450px;
	gap:8rem;

	.area-nav {
		text-transform:uppercase;
		margin-bottom: 4rem;
		display:flex;
		justify-content:space-between;
		background-color:var(--headerbg);
		border-radius: 1.4rem;
		gap:1rem;

		.area-nav-item {
			width: 100%;

			&:hover {
				background-color: var(--accent);
				color:white;
			}
		}
	}

	.area-content {
		.elementor-accordion .elementor-accordion-item,
		.elementor-tab-title.elementor-active {
			border:0 none !important;
			border-bottom:2px solid var(--secondary) !important;
		}

		.elementor-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon-opened,
		.elementor-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon-closed {

		}
		.elementor-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon-opened {
			transform: rotate(45deg);
		}
		.elementor-accordion .elementor-tab-title .elementor-accordion-icon-closed {
			transform: rotate(-45deg);
		}

		.elementor-accordion-title {
			text-decoration:none !important;
		}

		.elementor-accordion-item .elementor-tab-content {
			border:0 none !important;
		}

		.elementor-accordion-icon {
			width:1.25rem;
			height:1.25rem;

			& svg {
				width:1.25rem;
				height:1.25rem;
			}
		}
	}

	.area-sidebar {
		.wpcf7 {
			margin-bottom:2rem;

			.form-container {
				margin-top: 0;
				background-color:var(--headerbg);
			}
		}

		.button {
			width:100%;
		}
	}
}

/* metodo */
.page-id-320 {

	header.sticky {
		opacity:0;
		top:-4rem;
	}

	.header-bg {
		aspect-ratio: unset;

		.header-intro {
			padding-block:clamp(4rem, 10rem, 9vw) clamp(2rem, 10rem, 9vw);
		}
	}

	.page-title {
		justify-content:center;

		h1 {
			margin-block:3rem 2rem;
		}
		h4 {
			margin-bottom:3rem;
		}
		p {
			width:min(92vw, 72rem);
		}
	}
}

.method-nav {
	text-transform: uppercase;
	display: flex;
	justify-content: space-between;
	background-color: var(--headerbg);
	border-radius: 1.4rem;
	gap: 1rem;

	&.hide {
		visibility: hidden !important;
		opacity:0 !important;
	}

	a.button-fill {
    pointer-events: none;
  }
  a.button:hover {
		background-color:var(--text);
		color: white;
	}
}
.method-nav-clone {
	position: fixed;
	width: 100%;
	top:0;
	z-index: 9999;
	display: none;

	.method-nav {
		box-shadow: 0 0 1rem 0 rgba(0,0,0,0.2);
	}
}
/*
#SR7_2_1 .hesperiden.sr7-arrows {
	width: 60px !important;
	border-radius: 30px !important;
}
/*
#SR7_2_1 .sr7-bullets.custom {
	display:flex;
	justify-content:center;
	width: auto !important;

	&:before {
		display:none !important;
	}

	.sr7-bullet {
		width: 80px !important;
	  height: 8px !important;
	  position: relative !important;
	  background:var(--text) !important;
	  border-radius: 4px !important;
	  transition:all 0.3s ease !important;

	  &.selected {
	  	background:var(--accent) !important;
	  }

	  &:hover {
	  	background:var(--secondary) !important;
	  }
	}
}

.sr7-bullet {
	width: 80px !important;
  height: 8px !important;
  background:var(--text) !important;
  border-radius: 4px !important;
  transition:all 0.3s ease !important;

  &.selected {
  	background:var(--accent) !important;
  }

  &:hover {
  	background:var(--secondary) !important;
  }
}

#sliderbgshape {
	border-top-right-radius: clamp(3rem, 8.125rem, 8vw) !important;
	border-bottom-right-radius: clamp(3rem, 8.125rem, 8vw) !important;
}
*/

/* linee-prodotto */
.page-id-426 {
	.wpc-stage {
		height: 550px;
	}
	.wpc-col-content .wpc-inner {
  	padding-right: 5rem;
	}
}

/* rivenditori */
.page-template-rivenditori {
	.menu-main-container,
	header a.button,
	.header-buttons {
		visibility:hidden;
		pointer-events:none;
	}
	#logo {
		pointer-events:none;
	}
	footer {
		display: none;
	}

	.filtro-rivenditori {
		margin-bottom: 3rem;
		display:flex;
		align-items:center;
		flex-wrap: wrap;
		gap:2rem;

		select {
			background-color:#f2f2f2;
			font-family:'Inter';
			text-transform:uppercase;
			font-weight:bold;
			height:3rem;
			padding:0.25rem 1.5rem;
			color:var(--text);
			border:0 none;
			border-radius:0.5rem;
			display:inline-flex;
			align-items:center;
			flex-shrink: 0;

			option {
				font-family:'Verdana';
				text-transform:uppercase;
			}
		}

		span {
			font-size:2rem;
			color:var(--accent);
			font-family:'Inter';
			display:inline-block;
			line-height:1.3rem;
			flex-shrink: 0;
		}
	}

	.lista-rivenditori {
		display:grid;
		grid-template-columns:repeat(auto-fit, minmax(20rem, 1fr));
		gap:2rem;

		h3 {
			font-family:'Inter';
			line-height:1.4;
			font-weight:bold;
			font-size:1rem;
			margin-bottom:0.3rem;
		}
		p {
			line-height:1.4;

			a {
				color:var(--accent);
				padding-top:0.25rem;
				text-decoration:none !important;
				border-bottom:1px solid var(--headerbg);
				transition:all 0.3s ease;

				&:hover {
					border-bottom:3px solid var(--accent);
				}
			}
		}
	}
}


/* FOOTER */
footer {
	z-index:3;
	width:100%;

	#social-footer {
		display:flex;
		gap:1rem;
		flex-wrap:nowrap;

		a {
			transition:all 0.2s ease;

			&:hover {
				transform: scale(1.2);
			}

		 img {
				width:30px;
				height:30px;
				display:inline-block;
			}
		}
	}

	.footer-content {
		border-top:0.063rem solid var(--text);
		padding-block:var(--widespace);
		display:grid;
		grid-template-columns:1fr 1fr 1fr;
		gap:1rem;

		.logo {
			height:3.375rem;
			width:auto;
			margin-bottom:2rem;
		}

		p {
			margin-bottom:1rem;
		}

		h3 {
			margin-bottom:4rem;
		}

		ul {
			display:inline-block;
			columns: 2;

			li {
				display:inline-block;
				width:100%;

				a {
					text-transform:none !important;
				}
			}
		}

		.form-container {
			background-color:transparent;
			box-shadow:none;
			border-radius:0;
			padding:0;

			.field-label, input:not(.wpcf7-submit) {
				background-color:white !important;
			}

			.form-submit {
		    & input {
		      min-width: 10rem;
		      padding:0.5rem;
		    }
		  }

			.wpcf7-acceptance a {
				text-decoration:underline;
			}

			.wpcf7-list-item label {
				display: flex;
				gap:0.5rem;
				align-items:self-start;

				input {
					flex-shrink:0;
					display:inline-block;
					height:auto;
					margin:0.1rem 0 0;
				}
			}
		}
	}

	.footer-copyright {
		font-size:0.8rem;
	}
}


/**/
@media (max-width:1400px) {
	.method-nav {
	  a.button {
	    padding-inline:2rem;
	  }
	}
	#carousel {
  	.viewport {
    	.track {
      	.card {
	        padding-inline: 0.5rem;
	      }
	    }
	  }
	}

	.area-container {
		grid-template-columns: 1fr 450px;
		gap: 3rem;
	}
}
@media screen and (max-width:1200px) {
 	header .menu-item {
	  padding-inline: 0.75rem;
	}

	.method-nav {
		a.button {
	    padding-inline:1rem;
	  }
	}

	#carousel {
	  .data-box {
	    & > div {
	      & > div {
	        .text-card-container {
	          width: 45%;
						gap:0.7rem;
	        }
	      }
	    }
	  }
	}

	.area-container {
		grid-template-columns:1fr;
		gap:;
	}
	.area-nav {
		display: none !important;
	}

	.page-id-426 {
		.wpc-col-content .wpc-inner {
	  	padding-right:0;
		}
	}
}

@media screen and (max-width:1024px) {
	.mobile-hidden { display:none; }
	body:not(.page-id-215) .elementor-widget-text-editor h2,
	body:not(.page-id-215) .elementor-widget-text-editor h3,
	body:not(.page-id-215) .elementor-widget-text-editor h4,
	body:not(.page-id-215) .elementor-widget-text-editor p,
	.header-intro h1,
	.header-intro h4,
	.header-intro p {
		text-align: left !important;
	}

	header.sticky { min-height: 60px; }
	#menu { display:none; }
	.header-buttons, .archive #sidebar-toggle { display:inline-block; }

	header.sticky .nav-btn {
		top: 50%;
		transform: translateY(-50%);
	}
	header.sticky #nav-btn span { background:var(--text); }

	.menu-main-container,
	header .button-fill {
		display: none !important;
	}
	#mobile-menu .menu-main-container {
		display:block !important;
	}

	.between .elementor-container {
	  & > div:first-child {
	    width:auto;
	  }
	}

	.gap-2 .elementor-column-gap-wide {
		justify-content:center;
	}

	.tax-product_cat, .woocommerce-shop {
		.archive-container {
			grid-template-columns:1fr;
			gap:0;

			aside {
				position:fixed;
				bottom:0;
				right:101%;
				width:15.625rem;
				transition:all 0.3s ease-out;
				border-top-right-radius: 1.563rem;
				padding-block:1.5rem 2rem;
				z-index: 7;
        box-shadow: -4px 0px 10px rgba(0, 0, 0, 0.25);

        &:before {
        	box-shadow:-6px 0px 5px rgba(0, 0, 0, 0.25);
        }

				&.sideopen {
					right: calc(100% - 17rem);
				}
			}
		}
	}

	#navigazione, .method-nav-clone {
		display:none !important;
	}

	.single-product header {
		box-shadow: 0 0 1rem 0 rgba(0,0,0,0.2);
	}
	.single-product div.product {
		display:grid;
		gap:2rem;

		& > div {
			width:92vw !important;

			&:first-child {
				order:2;
			}
		}
	}
	.single-product .product-extra {
		grid-template-columns: 100%;
		gap: 2rem;
	}

	.page-id-426 {
		.wpc-stage {
			height:auto;
		}
		.wpc-col-content {
      border-top-right-radius: clamp(3rem, 8.125rem, 8vw);
    }

		.wpc-col-image {
			padding-bottom:1rem;
		}
	}

	#carousel {
	  & .data-box {
	    & > div {
	      width: 67%;
	    }
	  }
	}

	footer .footer-content {
		grid-template-columns: 1fr 1fr;

		h3 {
			margin-bottom:1rem;
		}

		div:last-child {
			grid-column-start: 1;
			grid-column-end: 2;
		}
	}

	#social-footer {
		padding-top:1rem;
	}
}

@media (max-width:900px) {
	.content-testimonials {
		grid-template-columns:100%;
		gap:0;

		.sidebar-testimonials {
			padding:0;
			display: flex;
			justify-content:space-between;
			box-shadow:none;

			 &::before {
			 	display: none;
			 }
		}

		.container-testimonials {
			.testimonial {
				flex:0 0 100%;
				max-width:92vw;
				width:92vw;
				padding:1rem 1.5rem 1rem;
				line-height:1.5;
			}
		}
	}
}

@media screen and (max-width:768px) {
	.header-bg {
		min-height: 15rem;

		h1.entry-title {
			margin-top:5rem;
		}
	}

	.single-product .product-extra .product-extra-sx {
    padding-block:2rem;
    padding-right:4vw;
    border-top-right-radius:2.188rem;
    border-bottom-right-radius:2.188rem;
	}

	.tax-product_cat, .woocommerce-shop {
	  & .archive-container {
	    & .products-container .product-preview {
	      & > div {
	        & ul {
	          columns: 1;
	        }
	      }
	    }
	  }
	}

	.page-id-320 {
		.header-bg {
			max-height:none;
		}
	  .page-title {
	  	h1 {
	      margin-block:3rem 1rem;
	    }
	     h4 {
	      margin-bottom:1.5rem;
	    }
	  }
	}

	#carousel {
	  & .data-box {
	    & > div {
	      width: 92vw;
	    }
	  }
	  & .viewport {
	    & .track {
	      & .card {
	      	visibility:hidden !important;
	      }
	    }
	  }
	}

	.testimonials-area {
	  & .container-testimonials {
	    grid-template-columns: 1fr;
	  }
	}
}

@media screen and (max-width:600px) {

	header {
    position: fixed;
    height: 4rem;
    top: 0;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    border-bottom-left-radius: 1.4rem;
    border-bottom-right-radius: 1.4rem;
    box-shadow: 0 0 1rem 0 rgba(0,0,0,0.2);
	}

	.single-product .woocommerce-product-gallery .flex-direction-nav {
    & .flex-nav-prev, & .flex-nav-next {
      margin-inline:0;
    }
	}
	.single-product div.product div.images .flex-control-thumbs {
		display: grid;
		grid-template-columns:1fr 1fr 1fr;
		justify-content:space-between;
		gap:4vw;

		li {
			width:100% !important;
		}
	}

	.rounded-box {
  	padding-block: 2rem;
  	padding-right: 2rem;
	}


	.form-container {
		padding:4vw;

	  .dual-field {
	    grid-template-columns:100%;
	  }
	}

	#carousel {
    & .data-box {
      & > div {
        & > div {
        	flex-direction:column;
        	align-items:center;
        	gap:0;

          & .text-card-container {
            width: 100%;
            order: 2;
          }

           & .image-card-container {
	          width: 50vw;
	          order: 1;
	        }
        }
      }
    }
  }

  .page-id-426 .wpc-col-image img {
		max-width:92% !important;
		max-height:92% !important;
		width:92% !important;
	}

	footer .footer-content {
		grid-template-columns: 1fr;
		gap:1.5rem;

		h3 {
			margin-bottom:0.5rem;
		}

		div:last-child {
			grid-column-start: 1;
			grid-column-end: 2;
		}

		.form-container {
			margin-top:0;
		}
	}

}

.slider-mobile {
	display:none;
}
@media (max-width: 480px) {
	.slider-mobile {
		display:block;
	}
	.slider-desktop {
		display: none;
	}

	.filtro-rivenditori select {
		width:100%;
	}

}

.grecaptcha-badge { display:none !important; }
/* cookieyes banner */
.cky-consent-bar button,
.cky-modal .cky-prefrence-btn-wrapper button {
    border-radius:0;
    padding:5px 15px;
    font-size:14px;
    border-color:var(--text) !important;
    background-color: #fff !important;
    color:var(--text) !important;
    transition:all 0.3s ease;
}

.cky-consent-bar button.cky-btn-accept,
.cky-modal .cky-prefrence-btn-wrapper button.cky-btn-accept {
    background-color:var(--text) !important;
    color:#fff !important;
}

.cky-consent-bar button:hover,
.cky-modal .cky-prefrence-btn-wrapper button:hover {
    background-color:var(--accent) !important;
    color:white !important;
    border-color:var(--accent) !important;
}

button.cky-show-desc-btn:not(:hover):not(:active) {
    color:white !important;
}
.cky-revisit-bottom-right,
.cky-revisit-bottom-left {
    background-color:var(--accent) !important;
}
.cky-switch input[type="checkbox"]:checked {
    background:var(--accent) !important;
}
.cky-accordion-header .cky-accordion-btn {
    border-radius:0 !important;
}

.cky-modal div[data-cky-tag="detail-powered-by"] {
    display: none !important;
}
/* size */
.cky-btn-revisit-wrapper {
    width:32px !important;
    height:32px !important;
    .cky-btn-revisit img {
        height:26px !important;
        width:26px !important;
    }
}
/**/