@import url('https://fonts.googleapis.com/css2?family=KoHo:wght@400;600&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap');

/*
Theme Name: Lucia Tardivo - 2026 website
Author: Laura Titton
Author URI: http://www.lauratitton.it/
Description: Lucia Tardivo 2026 Theme
Version: 1.0
License: GNU General Public License v2 or later
*/

/*
.koho-regular {
  font-family: "KoHo", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.roboto-<uniquifier> {
  font-family: "Roboto", sans-serif;
  font-optical-sizing: auto;
  font-weight: <weight>;
  font-style: normal;
  font-variation-settings:
	"wdth" 100;
}

*/
/*  FONTS e COLORI */
:root {
	--black: #111111;
	--grey: #F3F3F3;
	--lightblue: #F3FAFA;
	--blue: #D8EDEF; 
	--white: #ffffff;
	--darkblue: #528992;
	--green: #CCE1B0;
	--titoli: #004245;
	
	--koho: "KoHo", sans-serif;
	--roboto: "Roboto", sans-serif;
}
/* GENERAL */
html,body { 
	margin:0;
	padding:0;
	background-color:var(--white);
	color:var(--black);
	font-family: var(--roboto);
	font-weight: 400;
	font-size: 16px !important;
	line-height: 1.4;
	text-rendering:optimizeLegibility;
	-webkit-font-smoothing:antialiased;
	-moz-font-smoothing:antialiased;
	-o-font-smoothing:antialiased;
}

html {
  scroll-behavior: smooth;
}

@media (min-width: 1600px){  
	html,body {
		font-size: 18px !important;
	}
}

/* da mobile */
@media (max-width: 991px) {
	p, li, .contenuto {
		line-height: 1.4;
		hyphens: auto;
		-webkit-hyphens: auto;
		-ms-hyphens: auto;
	}
}

img,a img {
	border:none!important;
	width: 100%;
	height:100%;
	object-fit: cover;
}

::-moz-selection {
	background:none repeat scroll 0 0 #FFF;
	color:#000;
}

* {
	outline:0!important;
}

b,strong,.bold {  
	font-weight:700;
}

a,a:visited {  
	outline-style:none;
	text-decoration:none;
	color:#fff;
}

a:hover {  
	cursor:pointer !important;
	color:#fff;
	text-decoration:none;
}

@media (min-width: 1400px){ 
	
	.container-fluid{
		padding-left: 10vw;
		padding-right: 10vw;
	}
	.container-left{
		padding-left: 10vw;	
		padding-right: 0;
	}
	.container-right{
		padding-right: 10vw;	
		padding-left: 0;
	}
	
	.container-left img{
		
	}
}

@media (min-width: 992px){ 
	.container-fluid{
		padding-left: 5vw;
		padding-right: 5vw;
	}
	.container-left{
		padding-left: 5vw;	
		padding-right: 0;
	}
	.container-right{
		padding-right: 5vw;	
		padding-left: 0;
	}
}

/* Margini */

.m-fluid {
	margin: clamp(1rem, 3vw, 2rem);
}

.mx-fluid {
	margin-left: clamp(1rem, 3vw, 2rem);
	margin-right: clamp(1rem, 3vw, 2rem);
}

.my-fluid {
	margin-top: clamp(1rem, 3vw, 2rem);
	margin-bottom: clamp(1rem, 3vw, 2rem);
}

.mt-fluid {
	margin-top: clamp(1rem, 3vw, 2rem);
}

.mb-fluid {
	margin-bottom: clamp(1rem, 3vw, 2rem);
}

.m2-fluid {
	margin: clamp(2rem, 6vw, 4rem);
}

.mt2-fluid {
	margin-top: clamp(2rem, 6vw, 4rem);
}

.mb2-fluid {
	margin-bottom: clamp(2rem, 6vw, 4rem);
}

.mx2-fluid {
	margin-left: clamp(2rem, 6vw, 4rem);
	margin-right: clamp(2rem, 6vw, 4rem);
}

.my2-fluid {
	margin-top: clamp(2rem, 6vw, 4rem);
	margin-bottom: clamp(2rem, 6vw, 4rem);
}

/* Padding */

.p-fluid {
	padding: clamp(1rem, 3vw, 2rem);
}

.px-fluid {
	padding-left: clamp(1rem, 3vw, 2rem);
	padding-right: clamp(1rem, 3vw, 2rem);
}

.py-fluid {
	padding-top: clamp(1rem, 3vw, 2rem);
	padding-bottom: clamp(1rem, 3vw, 2rem);
}

.pt-fluid {
	padding-top: clamp(1rem, 3vw, 2rem);
}

.pb-fluid {
	padding-bottom: clamp(1rem, 3vw, 2rem);
}

.p2-fluid {
	padding: clamp(2rem, 6vw, 4rem);
}

.px2-fluid {
	padding-left: clamp(2rem, 6vw, 4rem);
	padding-right: clamp(2rem, 6vw, 4rem);
}

.py2-fluid {
	padding-top: clamp(2rem, 6vw, 4rem);
	padding-bottom: clamp(2rem, 6vw, 4rem);
}

.pt2-fluid {
	padding-top: clamp(2rem, 6vw, 4rem);
}

.pb2-fluid {
	padding-bottom: clamp(2rem, 6vw, 4rem);
}

.py10{
	padding-top:10px;
	padding-bottom: 10px;
}
/* TYPO */

.big{
	font-size: 1.3rem;  
}
.small{
	font-size: 0.9rem;	
}

h1,.h1,h2,.h2,h3,.h3,h4,.h4,h5,.h5,h6,.h6{ 
	font-family: var(--font-title);
	font-weight: var(--font-weight-title);
	color:var(--primary-color);
}

h1,.h1{
	font-size: 3.2rem;
	font-family: var(--koho);
	font-weight: 600;
}

h2,.h2{
	font-size: 2.2rem;
	font-family: var(--koho);
	font-weight: 600;
	color: var(--titoli);
}

h3,.h3{
	font-size: 2rem;
	font-family: var(--koho);
	font-weight: 600;
	color: var(--titoli);
}

h4,.h4{
	font-size: 1.5rem;
	font-family: var(--koho);
	font-weight: 600;
	color: var(--titoli);
}

h5,.h5{
	font-size: 1.2rem;
	font-family: var(--roboto);
}

@media(max-width:991px){
	h1,.h1{
		font-size: 2.1rem;
		font-family: var(--roboto);
	}
	
	h2,.h2{
		font-size: 1.7rem;
		font-family: var(--koho);
	}
	
	h3,.h3{
		font-size: 1.6rem;
		font-family: var(--roboto);
	}
	
	h4,.h4{
		font-size: 1.2rem;
		font-family: var(--roboto);
	}
	
	h5,.h5{
		font-size: 1.1rem;
		font-family: var(--roboto);
	}
}


p{
	margin:0;
	padding:0;
}

/* elementi ripetuti */

.button{
	border: 1.5px solid var(--titoli);
	border-radius: 15px;
	display: inline-block;
	padding: 8px 20px;
	color: var(--titoli) !important;
	font-family: var(--koho);
	font-weight: 600;
	font-size: 1rem;
}

input[type="submit"]{
	border: 1.5px solid var(--titoli);
	border-radius: 15px;
	display: inline-block;
	padding: 8px 20px;
	font-family: var(--koho);
	color: var(--titoli) !important;
	font-size: 1rem;
	width: 250px;
	font-weight: 600;
	margin-top: 30px;
}

.button:hover{
	background-color: var(--titoli);
	color: var(--white) !important;
}

.button-white{
	border: 1.5px solid var(--white);
	border-radius: 15px;
	padding: 8px 20px;
	font-family: var(--koho);
	font-weight: 600;
	display: inline-block;
	color: var(--white) !important;
	font-size: 1rem;
}

.button-white:hover{
	background-color: var(--white);
	color: var(--titoli) !important;
}

.button_light{
	border: 1.5px solid var(--blue);
	background-color: var(--blue);
	text-decoration: none;
	border-radius: 15px;
	display: inline-block;
	padding: 8px 20px;
	color: var(--white) !important;
	font-size: 1rem;
}

.z-index{
	position: relative;
	z-index:3;
}

.white{
	color: var(--white);
}

.blue-title{
	color: var(--titoli);
}

.black{
	color: var(--black);
}

.uppercase{
	text-transform: uppercase;
}

.koho{
	font-family: var(--koho);
}
.overlay{
	position: absolute;
	top:0;
	left:0;
	width:100%;
	height: 100%;
	z-index:3;
	background: #000000;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0.35) 0%, rgba(0, 0, 0, 0.23) 62%, rgba(0, 0, 0, 0.2) 100%);
}

.overlay-light{
	position: absolute;
	top:0;
	left:0;
	width:100%;
	height: 100%;
	z-index:3;
	background-color: rgba(0,0,0,0.2);
}

.overlay-unique{
	position: absolute;
	top:0;
	left:0;
	width:100%;
	height: 100%;
	z-index:3;
	background-color: rgba(0, 38, 39, 0.3);
}

/* animazione testi */

.animatext{
	clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
	line-height: 5rem;
	text-transform: uppercase;
}

.animationcontainer{
	display: grid;
	place-content: center;
	height:20vh;
}
.animationcontainer .char{
	transform: translateY(-115px);
	transition: transform .5s;
}

.lightblue-back{
	background-color: var(--lightblue);
}

.blue-back{
	background-color: var(--darkblue);
}

.green-back{
	background-color: var(--green);
}

.radius-image{
	border-radius: 10px;
	overflow: hidden;
}
.single_servizio_anchor{
	border: 1px solid var(--darkblue);
	background-color: transparent;
	padding: 15px;
	border-radius:45px;
	margin-bottom: 20px;
	color: var(--black) !important;
}

.single_servizio_anchor img{
	width: 50px;
	height: auto;
}

.single_servizio_anchor:hover{
	background-color: var(--lightblue);
	color: var(--black);
}
/* HEADER */

#header{
	position: relative;
	background-color: var(--white);
	height: 100px;
	width:100%;
	z-index: 1000;
}

@media(max-width:991px){
	#header{
		height: 75px;		
	}
}

#header .navbar-toggler, #header .navbar-brand{
	z-index: 1000;
}

.navbar-toggler{
	border:none;
}

.navbar-toggler-icon{
	width: 25px;
	height: 25px;
}

.navbar-toggler:focus{
	box-shadow: none;
}

#header ul{
	padding:0;
	margin:0;
	display: flex;
	align-items: center;
	list-style-type: none;
}

#header ul li a{
	font-family: var(--koho);
	font-weight: 600;
	color:var(--titoli);
	/* margin-left: 35px; */
}

@media(max-width:991px){
	#header ul li{
		width: 100%;
		text-align: center;
		padding-top: 5px;
		padding-bottom: 5px;
	}
	#header ul{
		width: 100%;
	}
}

	
@media(min-width:991.99px){
	#header ul li{
		margin-left: 35px; 
	}
}

#header .navbar-brand{
	width: 250px;
	height: auto;
}

@media(max-width:991px){
	#header .navbar-brand{
		width: 170px;
		height: auto;
	}
}

#header #navbarMobile{
	background-color: var(--lightblue);
	position: absolute;
	top:0;
	left:-100%;
	width: 100%;
	height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: 0.3s;
	padding-bottom:50px;
}

#header #navbarMobile.show{
	left:0;
	transition: 0.3s;
}

#header #navbarMobile a{
	text-align: left;
	margin-left:3%;
	padding:0;
	color: var(--darkblue)) !important;
	margin-right:3%;
	margin-bottom:10px;
	font-size:1rem;
	text-decoration: none !important;
	border-bottom: 1px solid rgba(255,255,255,0.2);
}

#header #navbarMobile li.current-menu-item a{
	text-decoration: underline !important;
}


#header #navbarMobile li.gold-mobile a{
	position: relative;
	color:rgba(255,255,255,0.8) !important;
	padding-left:15px;
}

#header #navbarMobile li.gold-mobile a::after{
	content:"";
	position: absolute;
	left:0;
	top:7px;
	border-radius:50%;
	width:5px;
	height: 5px;
	background-color: rgba(255,255,255,0.8);
}

#navbarNav .current-menu-item a{
	position: relative;
	display:block;
}

#navbarNav .current-menu-item a::after{
	content:"";
	width: 100%;
	height: 1px;
	background-color: var(--titoli);
	bottom: -1px;
	left:0;
	position: absolute;
}


/* PAGINE */

#hero_section{
	height:calc(100vh - 100px);
	width:100%;
	display: flex;
	justify-content: center;
	align-items: end;
}

.slideshow{
	height:calc(100vh - 100px);
	width:100%;
	position: absolute;
	top:0;
	left:0;
 }
 
 .slideshow .slick-list, .slideshow .slick-track{
	 width:100%;
	 height: 100%;
 }
 
 .slideshow img{
	 width: auto;
	 height: 100%;
	 object-fit: cover;
 }
 
 .slideshow .slick-dots{
	 bottom: 20px;
	 z-index: 100;
 }
 
#page-servizi #hero_section{
	height:calc(70vh - 100px);
	
}

@media(max-width:991px){
	#hero_section, #page-servizi #hero_section, .slideshow{
		height:45vh;
	}	
}

#page-presentazione #hero_section, #page-metodo #hero_section, #page-contatti #hero_section{
	align-items: end;
}

#page-presentazione #hero_section img, #page-servizi #hero_section img, #page-metodo #hero_section img, #page-contatti #hero_section img {
	position: absolute;
	width: 100%;
	height: 100%;
	top:0;
	left:0;
	object-fit: cover;
}

.titolo_intro .linea{
	width: 30px;
	height: 1px;
	background-color: var(--titoli);
	margin-right: 7px;
}

.titolo_intro p{
	color: var(--titoli);
	font-family: var(--koho);
	font-weight: 600;
}

#elenco_servizi .icona-servizio{
	width: 95px;
	height: auto;
}

#elenco_servizi ul{
	margin-top:15px;
}

.image_ambito .icona-servizio{
	height: 80px;
	width: 80px;
	position: absolute;
	top:15px;
	left:15px;
	z-index:10;
}

.window-image{
	overflow:hidden;
	aspect-ratio: 768 / 1000; /* mantiene il formato */
	overflow: hidden;
	border-radius: 50% 50% 3.125% 3.125% / 38.4% 38.4% 2.4% 2.4%;
}

.rank-math-breadcrumb a{
	font-weight: 600;
	color: var(--white);
	text-shadow: 0 0 20px rgba(0,0,0,0.3);
}

.rank-math-breadcrumb span{
	color: var(--white);
	text-shadow: 0 0 20px rgba(0,0,0,0.3);
}
.image_ambito{
	height:550px;
	border-radius:10px;
	overflow:hidden;
	padding:50px;
}

#banner_finale{
	height:550px;
	background-repeat: no-repeat; 
	background-position: center; 
	background-size: cover;
}

#elenco_informazioni a{
	color: var(--black);
}

#elenco_informazioni a:hover{
	text-decoration: underline;
}

/* FOOTER */

#footer .navbar-brand img{
	width: 200px;
	height: auto;
}

#footer hr{
	margin:0;
	border-top: var(--white) solid;
}

/* #footer a:hover{
	text-decoration: underline;
} */




/* LOADER */



#loading {
	position: fixed;
	inset: 0;
	z-index: 10000;
	background-color: var(--grey);
	transition: 
		transform .8s cubic-bezier(0.4, 0, 0.2, 1),
		opacity .6s ease;
	will-change: transform, opacity;
}

#loading.out {
	transform: translateY(-30px);
	opacity: 0;
	pointer-events: none;
}


#logo_img {
	width: 130px;
	height: auto;
}

.logo-animation-container {
	position: fixed;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	animation: logoFadeIn .45s ease-out forwards;
	opacity: 0;
}

@keyframes logoFadeIn {
	0% {
		opacity: 0;
		transform: translate(-50%, -58%);
	}
	100% {
		opacity: 1;
		transform: translate(-50%, -50%);
	}
}

/* Logo con fade-up più lento */
.logo-animation-container {
	overflow: hidden;
	position: fixed;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	opacity: 0;
	animation: fadeInUp 1.8s cubic-bezier(0.55, 0, 0.1, 1) forwards;
}

@keyframes fadeInUp {
	0% {
		opacity: 0;
		transform: translate(-50%, -45%);
	}
	100% {
		opacity: 1;
		transform: translate(-50%, -50%);
	}
}

.logo-flow{
	width: 60px;
	height: auto;
	top: -30px;
	position: absolute;
	left:50%;
	transform: translateX(-50%);
}
.accordion-body{
	
	padding-left:0;
	padding-right:0;	
}
.accordion-button{
	padding-left:0;
	padding-right:0;	
	background-color: transparent;
}

.accordion-button:focus{
	border-color: transparent;
	box-shadow: none;
	background-color: transparent;
}

.accordion-button:not(.collapsed){
	color: var(--darkblue) !important;
}

.elenco_social a svg{
	height: 24px;
	width: auto;
	transition: 0.3s;
}

.elenco_social a:hover svg{
	transform: scale(1.1);
	transition: 0.3s;
}

.slideshow-recensioni .slick-slide img{
	width: auto !important;
	height: 20px !important;
}

.slideshow-recensioni .slick-slide{
	 margin-right: 15px;
	 margin-left: 15px;
 }
 
 .slideshow-recensioni .slick-dots{
	bottom: -30px;
 }
 
 .slick-dots li button:before{
	 color: var(--titoli);
	 width: 10px;
	 height: 10px;
 }
 .slideshow .slick-dots li button:before{
	  color: var(--white);
	  width: 10px;
	  height: 10px;
  }
 
 
 .slick-dots li.slick-active button:before{
	 color: var(--titoli);
 }
 
 .slideshow .slick-dots li.slick-active button:before{
	  color: var(--white);
  }
 
 
.single-recensione{
	background-color: rgba(203, 217, 204, 0.297);
	border-radius:20px;
	padding:30px;
	box-shadow: 0 0 1px rgba(0,0,0,0.1);
	height: 350px;
}

@media(min-width:991.99px){
	#elenco_metodo::after{
		position: absolute;
		content: "";
		height: 96%;
		width: 2px;
		background-color: var(--blue);
		top: 0;
		left: 50%;
		transform: translate(-50%);
	}
	.single-metodo::after{
		position: absolute;
		content: "";
		border-radius:50%;
		padding: 5px;
		width: 4px;
		height:4px;
		background-color: var(--blue);
		top: 50%;
		left: 50%;
		transform: translate(-50%,-50%);
		border: 10px solid #fff;
		z-index: 100;
	}
}


@media(min-width:1450px){
	.single-recensione{
		height: 420px;
	}
}

@media(max-width:991px){
	.single-recensione{
		height: 350px;
	}
	
	.slideshow-recensioni .slick-slide{
		 margin-right: 5px;
		 margin-left: 5px;
	 }
}

.slick-dotted.slick-slider{
	margin-bottom:0;
}
/* qui form */

#sezione_form .contenitore_form{
	background-color: rgba(216, 237, 239, 0.3);
}

input,select{
	width:100%;
	background-color: transparent;
	border-radius: 5px;
	border: 1px solid rgba(99, 146, 156, 0.5);
	height: 45px;
	padding-left:15px;
	color: var(--darkblue);
	margin-bottom: 14px;
}

textarea{
	width:100%;
	background-color: transparent;
	border-radius: 5px;
	border: 1px solid rgba(99, 146, 156, 0.5);
	padding-top: 15px;
	padding-left:15px;
	color: var(--black);
	margin-bottom: 14px;
}
input[type="checkbox"]{
	width:15px;
	height: 15px;
	margin:0;
	margin-right: 5px;
}

.wpcf7-list-item{
	margin: 0;
}
label{
	color: var(--darkblue);
	margin-bottom:10px;
	margin-top:15px;
	
}
.banner-scroll {
  overflow: hidden;
  white-space: nowrap;
  width: 100%;
}

.scroll-track {
  display: inline-flex;
  animation: scroll 30s linear infinite; /* più lento */
}

.scroll-track span {
  padding-right: 10px; /* spazio tra le ripetizioni */
}

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

/* impostazioni per cartina iframe */

iframe{
	height: 100%;
	min-height: 450px;
}

@media(max-width:991px){
	iframe{
		margin-top: 30px;
	}
}

.divider{
	width: 40%;
	height: 1px;
	background-color: var(--darkblue);
}

/* Fade */

.fade {
	opacity: 0;
	transition: 1.7s all cubic-bezier(0.445, 0.05, 0.55, 0.95);
}
.fade.in-page {
	opacity: 1;
}
.fade-in {
	transform: translateY(50px);
	opacity: 0;
	transition: 1s all cubic-bezier(0.53, 0.03, 0.01, 0.46);
}
.fade-in.in-page {
	transform: translateY(0);
	opacity: 1;
}

.reveal-from-left img, .reveal-from-left .overlay, .reveal-all.reveal-from-left * {
	clip-path: polygon(0 0, 0% 0, 0% 100%, 0 100%);
	transition: 1.7s all cubic-bezier(0.22, 0.61, 0.36, 1);
}
.reveal-from-left.in-page img, .reveal-from-left.in-page .overlay, .reveal-all.reveal-from-left.in-page * {
	clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
}

.reveal-from-right img, .reveal-from-right .overlay {
	clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
	transition: 1.7s all cubic-bezier(0.22, 0.61, 0.36, 1);
}

.reveal-from-right.in-page img, .reveal-from-right.in-page .overlay {
	clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
}

#scrollTopBtn {
  position: fixed;
  bottom: 15px;
  right: 15px;
  width: 45px;
  height: 45px;
  border-radius: 50%;
  border: none;
  background-color: var(--green);
  color: white;
  font-size: 20px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  z-index:100;
  visibility: hidden;
  transition: all 0.3s ease;
  box-shadow: 0 5px 15px rgba(0,0,0,0.2);
}

#scrollTopBtn svg{
	width: 17px;
	height: auto;
}

#scrollTopBtn.show {
  opacity: 1;
  visibility: visible;
}

#scrollTopBtn:hover {
  transform: translateY(-3px);
}

.wpcf7 form .wpcf7-response-output{
	margin: 0 !important;
	margin-top: 10px !important;
}

.grecaptcha-badge{
	display: none;
}

/* .page-template-page-contatti .grecaptcha-badge{
	display: block;
	z-index: 10000;
} */

#page-gdpr a{
	color: var(--darkblue);
}
#page-gdpr h1{
	font-size: 2.3rem;
	margin-bottom: 20px;
}
#page-gdpr h2{
	font-size: 2rem;
}