@charset "utf-8";
/* CSS Document */
@font-face {
	font-family:'Ivy Mode';
	src:url('/source/font/IvyMode/IvyMode-Regular.eot');
	src:local('Ivy Mode Regular'), local('IvyMode-Regular'),
			url('/source/font/IvyMode/IvyMode-Regular.eot?#iefix') format('embedded-opentype'),
			url('/source/font/IvyMode/IvyMode-Regular.woff2') format('woff2'),
			url('/source/font/IvyMode/IvyMode-Regular.woff') format('woff'),
			url('/source/font/IvyMode/IvyMode-Regular.ttf') format('truetype');
	font-weight:normal;
	font-style:normal;
}

@font-face {
	font-family:'Ivy Mode';
	src:url('/source/font/IvyMode/IvyMode-LightItalic.eot');
	src:local('Ivy Mode Light Italic'), local('IvyMode-LightItalic'),
			url('/source/font/IvyMode/IvyMode-LightItalic.eot?#iefix') format('embedded-opentype'),
			url('/source/font/IvyMode/IvyMode-LightItalic.woff2') format('woff2'),
			url('/source/font/IvyMode/IvyMode-LightItalic.woff') format('woff'),
			url('/source/font/IvyMode/IvyMode-LightItalic.ttf') format('truetype');
	font-weight:300;
	font-style:italic;
}

@font-face {
    font-family:'Ivy Mode';
    src:url('/source/font/IvyMode/IvyMode-SemiBoldItalic.eot');
    src:local('Ivy Mode SemiBold Italic'), local('IvyMode-SemiBoldItalic'),
        url('/source/font/IvyMode/IvyMode-SemiBoldItalic.eot?#iefix') format('embedded-opentype'),
        url('/source/font/IvyMode/IvyMode-SemiBoldItalic.woff2') format('woff2'),
        url('/source/font/IvyMode/IvyMode-SemiBoldItalic.woff') format('woff'),
        url('/source/font/IvyMode/IvyMode-SemiBoldItalic.ttf') format('truetype');
    font-weight:600;
    font-style:italic;
}

@font-face {
	font-family:'Ivy Mode';
	src:url('/source/font/IvyMode/IvyMode-ThinItalic.eot');
	src:local('Ivy Mode Thin Italic'), local('IvyMode-ThinItalic'),
			url('/source/font/IvyMode/IvyMode-ThinItalic.eot?#iefix') format('embedded-opentype'),
			url('/source/font/IvyMode/IvyMode-ThinItalic.woff2') format('woff2'),
			url('/source/font/IvyMode/IvyMode-ThinItalic.woff') format('woff'),
			url('/source/font/IvyMode/IvyMode-ThinItalic.ttf') format('truetype');
	font-weight:100;
	font-style:italic;
}

@font-face {
	font-family:'Ivy Mode';
	src:url('/source/font/IvyMode/IvyMode-Italic.eot');
	src:local('Ivy Mode Italic'), local('IvyMode-Italic'),
			url('/source/font/IvyMode/IvyMode-Italic.eot?#iefix') format('embedded-opentype'),
			url('/source/font/IvyMode/IvyMode-Italic.woff2') format('woff2'),
			url('/source/font/IvyMode/IvyMode-Italic.woff') format('woff'),
			url('/source/font/IvyMode/IvyMode-Italic.ttf') format('truetype');
	font-weight:normal;
	font-style:italic;
}

@font-face {
	font-family:'Ivy Mode';
	src:url('/source/font/IvyMode/IvyMode-BoldItalic.eot');
	src:local('Ivy Mode Bold Italic'), local('IvyMode-BoldItalic'),
			url('/source/font/IvyMode/IvyMode-BoldItalic.eot?#iefix') format('embedded-opentype'),
			url('/source/font/IvyMode/IvyMode-BoldItalic.woff2') format('woff2'),
			url('/source/font/IvyMode/IvyMode-BoldItalic.woff') format('woff'),
			url('/source/font/IvyMode/IvyMode-BoldItalic.ttf') format('truetype');
	font-weight:bold;
	font-style:italic;
}

@font-face {
	font-family:'Ivy Mode';
	src:url('/source/font/IvyMode/IvyMode-Bold.eot');
	src:local('Ivy Mode Bold'), local('IvyMode-Bold'),
			url('/source/font/IvyMode/IvyMode-Bold.eot?#iefix') format('embedded-opentype'),
			url('/source/font/IvyMode/IvyMode-Bold.woff2') format('woff2'),
			url('/source/font/IvyMode/IvyMode-Bold.woff') format('woff'),
			url('/source/font/IvyMode/IvyMode-Bold.ttf') format('truetype');
	font-weight:bold;
	font-style:normal;
}

@font-face {
	font-family:'Ivy Mode';
	src:url('/source/font/IvyMode/IvyMode-Light.eot');
	src:local('Ivy Mode Light'), local('IvyMode-Light'),
			url('/source/font/IvyMode/IvyMode-Light.eot?#iefix') format('embedded-opentype'),
			url('/source/font/IvyMode/IvyMode-Light.woff2') format('woff2'),
			url('/source/font/IvyMode/IvyMode-Light.woff') format('woff'),
			url('/source/font/IvyMode/IvyMode-Light.ttf') format('truetype');
	font-weight:300;
	font-style:normal;
}

@font-face {
	font-family:'Ivy Mode';
	src:url('/source/font/IvyMode/IvyMode-Thin.eot');
	src:local('Ivy Mode Thin'), local('IvyMode-Thin'),
			url('/source/font/IvyMode/IvyMode-Thin.eot?#iefix') format('embedded-opentype'),
			url('/source/font/IvyMode/IvyMode-Thin.woff2') format('woff2'),
			url('/source/font/IvyMode/IvyMode-Thin.woff') format('woff'),
			url('/source/font/IvyMode/IvyMode-Thin.ttf') format('truetype');
	font-weight:100;
	font-style:normal;
}

@font-face {
	font-family:'Ivy Mode';
	src:url('/source/font/IvyMode/IvyMode-SemiBold.eot');
	src:local('Ivy Mode SemiBold'), local('IvyMode-SemiBold'),
			url('/source/font/IvyMode/IvyMode-SemiBold.eot?#iefix') format('embedded-opentype'),
			url('/source/font/IvyMode/IvyMode-SemiBold.woff2') format('woff2'),
			url('/source/font/IvyMode/IvyMode-SemiBold.woff') format('woff'),
			url('/source/font/IvyMode/IvyMode-SemiBold.ttf') format('truetype');
	font-weight:600;
	font-style:normal;
}

.intro-lp {
	position:relative;
	height:100vh;
	min-height:500px;
	padding:3.5rem 0 5rem;
	background:url(/public/lp/intro_lp.webp) no-repeat center;
	background-size:cover;
	background-color:#F0EBE7;
	overflow:hidden;
}
.intro-lp::before {
	content:"";
	position:absolute;
	top:0;
	left:0;
	width:100%;
	height:100%;
	background:rgba(0,0,0,0.3);
	z-index:1;
}
.intro-lp .container {
  height:100%;
}
.intro-lp > * {
	position:relative;
	z-index:2;
}
.intro-lp .logo-lp {
	max-width:320px;
}
.intro-lp h1 {
	font-family:"Ivy Mode", sans-serif !important;
	font-size:clamp(16px, 2.5vw, 30px);
  font-weight:400;
  line-height:clamp(28px, 4vw, 54px);
	letter-spacing:.9px;
}
.intro-lp h1 span {
  font-weight:600 !important;
}
.intro-lp #ScrollDown {
	padding:.75rem 3.5rem;
	font-size:20px;
	transition:.4s;
	border:none;
	z-index:1;
	position:relative;
}
.intro-lp #ScrollDown:hover,
.intro-lp #ScrollDown:active {
	padding:.75rem 1rem;
}

#stickyHeader {
  position:fixed;
  top:0;
  left:0;
  width:100%;
  z-index:1000;
  padding:3.5rem 2rem 0;
  background:transparent;
}
#stickyHeader .logo-hover {
	width:50px;
	height:76px;
	background-image:url("/public/lp/logo-static.png");
	background-size:contain;
	background-repeat:no-repeat;
	background-position:center;
	transition:background-image 0.3s;
	cursor:pointer;
}
#stickyHeader .btn-circle.btn-lg {
  width:46px;
  height:46px;
  padding:6px 12px;
  font-size:16px;
  line-height:2;
  border-radius:25px !important;
	border-color:transparent;
}
#stickyHeader .btn-light.btn-lg:hover {
	color:#fff !important;
	background-color:#BE8367;
}

.section-image-text {
	padding:8rem 0;
}
.section-image-text .row {
  gap:8rem;
}
.section-image-text img:not(.icon-list) {
  width:100%;
  height:100%;
  object-fit:cover;
}
.section-image-text .icon-list {
  width:50px;
  height:50px;
  object-fit:contain;
}
.section-image-text .title,
.section-only-text .title {
  font-family:"Ivy Mode", sans-serif !important;
  font-size:clamp(20px, 3vw, 36px);
  font-weight:400;
  line-height:clamp(28px, 3.5vw, 40px);
  letter-spacing:2px;
}
.section-image-text .text,
.section-only-text .text {
  font-family:"Ivy Mode", sans-serif !important;
  font-size:clamp(14px, 1.5vw, 18px);
  font-weight:400;
  line-height:clamp(26px, 3vw, 40px);
  letter-spacing:.6px;
}
.section-image-text .text span,
.section-only-text .text span {
  font-weight:600;
}
.section-image-text .text.text-list {
  letter-spacing:.2px;
}
.section-image-text .btn,
.section-only-text .btn {
	padding:.5rem 2.5rem;
	font-weight:300;
	letter-spacing:2px;
}
@media (max-width:991px) {
  .section-image-text.section-one,
	.section-image-text.section-four {
		padding-bottom:4rem !important;
	}
	.section-image-text.section-two,
	.section-image-text.section-five {
		padding-top:4rem !important;
	}
	.section-image-text .row {
    gap:3rem;
  }
	.section-image-text .col-12 {
    text-align:center;
  }
  .section-image-text img {
    max-width:100% !important;
    height:auto;
  }
}

.section-only-text {
	padding:4rem 0;
	background-color:#BCAE9C;
}

.form-lp {
	padding:8rem 0;
}
.form-lp h2 {
  font-family:"Ivy Mode", sans-serif !important;
	font-size:clamp(22px, 3vw, 48px);
  font-weight:400;
  line-height:clamp(34px, 3.5vw, 52px);
  letter-spacing:0;
	margin-bottom:8rem;
}
.form-lp img {
	display:block;
}
.form-style-4.form-style-4-text-primary .form-group {
  margin-bottom:2rem;
}
.form-style-4.form-style-4-text-primary .form-control {
  color:var(--primary);
}
.form-style-4.form-style-4-text-primary .form-control::placeholder {
  color:var(--primary);
	letter-spacing:.5px;
}
.form-style-4.form-style-4-text-primary .form-control {
  border-bottom-color:rgba(240,235,231,.5);
}
.form-style-4.form-style-4-text-primary textarea.form-control {
  border:1px solid rgba(240,235,231,.5);
}
.form-style-4.form-style-4-text-primary .form-check-label {
  color:var(--primary);
	font-size:12px;
	display:flow-root;
	line-height:16px;
	letter-spacing:.5px;
}
.form-style-4.form-style-4-text-primary .form-check-label a {
  color:var(--primary);
	text-decoration:underline;
}
.form-style-4.form-style-4-text-primary .form-check-label a:hover {
	text-decoration:none;
}
.form-style-4.form-style-4-text-primary .form-check-input {
  width:22px;
  height:22px;
  margin-top:0;
  margin-right:20px;
  background-color:transparent;
  border:1px solid rgba(240,235,231,.5);
	border-radius:0;
}
.form-style-4.form-style-4-text-primary button {
	font-size:12px;
	padding:.5rem 3.5rem;
	font-weight:400;
	letter-spacing:2px;
}
.form-style-4.form-style-4-text-primary .error {
	font-size:12px;
	letter-spacing:1px;
	color:#e36159;
}
@media (max-width:991px) {
	.form-lp {
		padding:4rem 0;
	}
	.form-lp h2 {
		margin-bottom:4rem;
	}
}

p.copyright {
	font-size:11px;
  font-weight:400;
	color:var(--primary);
	line-height:16px;
	letter-spacing:0;
	margin-bottom:1rem;
}
p.copyright a {
	color:var(--primary);
	margin:0 10px;
}

.modal-dialog-centered{
	max-width:75%;
}
.modal-content .btn-close {
  position: absolute;
  right: 15px;
  top: 15px;
  padding: 10px;
  z-index: 1;
	--bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");
  --bs-btn-close-color: #fff;
}
.modal-body .modal-form {
  margin:4rem 0;
	padding:0 7rem 0 5rem;
}
.modal-body .modal-form h4 {
	font-family:"Ivy Mode", sans-serif !important;
	font-size:clamp(14px, 2.5vw, 30px);
  font-weight:400;
  line-height:clamp(26px, 4vw, 52px);
  letter-spacing:0;
	margin-bottom:2rem;
}
.form-style-4.form-style-4-text-secondary .form-group {
  margin-bottom:1.15rem;
}
.form-style-4.form-style-4-text-secondary .form-control {
  color:var(--secondary);
}
.form-style-4.form-style-4-text-secondary .form-control::placeholder {
  color:var(--secondary);
	letter-spacing:.5px;
}
.form-style-4.form-style-4-text-secondary .form-control {
  border-bottom-color:rgba(33,32,32,.5);
}
.form-style-4.form-style-4-text-secondary textarea.form-control {
  border:1px solid rgba(33,32,32,.5);
}
.form-style-4.form-style-4-text-secondary .form-check-label {
  color:var(--secondary);
	font-size:12px;
	display:flow-root;
	line-height:16px;
	letter-spacing:.5px;
}
.form-style-4.form-style-4-text-secondary .form-check-label a {
  color:var(--secondary);
	text-decoration:underline;
}
.form-style-4.form-style-4-text-secondary .form-check-label a:hover {
	text-decoration:none;
}
.form-style-4.form-style-4-text-secondary .form-check-input {
  width:22px;
  height:22px;
  margin-top:0;
  margin-right:20px;
  background-color:transparent;
  border:1px solid rgba(33,32,32,.5);
	border-radius:0;
}
.form-style-4.form-style-4-text-secondary button {
	font-size:12px;
	padding:.5rem 3.5rem;
	font-weight:400;
	letter-spacing:2px;
}
.form-style-4.form-style-4-text-secondary .error {
	font-size:12px;
	letter-spacing:1px;
	color:#e36159;
}
.form-style-4.form-style-4-text-secondary .form-check-input:checked[type="checkbox"] {
  --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m6 10 3 3 6-6'/%3e%3c/svg%3e");
}
@media (max-width:1199px) {
	.modal-body .modal-form {
		padding:0 5rem;
	}
}
@media (max-width:991px) {
	.modal-content .btn-close {
		opacity: 1;
	}
	.modal-body .modal-form {
		padding:0 2rem;
	}
}
@media (max-width:767px) {
	.modal-body .modal-form {
		margin:3rem 0;
	}
}
@media(max-width:575px) {
	.modal-dialog-centered{
		max-width:100%;
	}
	.modal-body .modal-form {
		margin:2rem 0;
		padding:0 1rem;
	}
}

/* =========================================
   INTRO ANIMATION OVERLAY
   Riproduce animazione.html come overlay full-screen sopra la landing.
   Scaling in COVER (Math.max) per allineare il frame finale all'hero
   (.intro-lp ha background-size:cover). Anima una volta sola e poi
   fa fade-out, svelando la landing sottostante.
   ========================================= */
.intro-animation {
	position:fixed;
	inset:0;
	z-index:9999;
	background:#F0EBE7;
	display:flex;
	align-items:center;
	justify-content:center;
	overflow:hidden;
	opacity:1;
	transition:opacity 1.5s ease-out;
}
.intro-animation.intro-done {
	opacity:0;
	pointer-events:none;
}
body.intro-playing {
	overflow:hidden;
}

/* === Overlap fade-in dei contenuti della landing con fade-out
   dell'overlay. Durante l'animazione (body.intro-playing) il logo, l'h1
   e il pulsante restano invisibili (override del plugin appear-animation
   che altrimenti li animerebbe in entrata subito al caricamento, nascosti
   sotto l'overlay). Al momento giusto lo script aggiunge la classe
   .intro-revealing al body: i contenuti entrano in dissolvenza in sync
   con il fade-out dell'overlay, mascherando il cambio di sfondo. */
body.intro-playing .intro-lp .logo-lp,
body.intro-playing .intro-lp h1,
body.intro-playing .intro-lp #ScrollDown,
body.intro-playing #stickyHeader {
	opacity:0 !important;
	animation:none !important;
	transform:none !important;
}
body.intro-revealing .intro-lp .logo-lp,
body.intro-revealing .intro-lp h1,
body.intro-revealing .intro-lp #ScrollDown,
body.intro-revealing #stickyHeader {
	opacity:1 !important;
	transform:none !important;
	transition:opacity 1.5s ease-out !important;
	animation:none !important;
}
/* Durante l'overlap, i contenuti devono stare SOPRA l'overlay (z-index
   9999) cosi entrano in dissolvenza davanti al cutout finale. La
   container della hero diventa lo stacking context elevato. */
body.intro-revealing .intro-lp > .container {
	z-index:1048 !important;
}
body.intro-revealing #stickyHeader {
	z-index:1049 !important;
}

.intro-stage {
	position:relative;
	width:1920px;
	height:1080px;
	background:#F0EBE7;
	overflow:hidden;
	transform-origin:center center;
}

/* Pausa le animazioni finché tutti gli asset critici non sono caricati.
   Lo script aggiunge .intro-ready all'overlay quando è pronto. */
.intro-animation .intro-slot,
.intro-animation .intro-final {
	animation-play-state:paused;
}
.intro-animation.intro-ready .intro-slot,
.intro-animation.intro-ready .intro-final {
	animation-play-state:running;
}

.intro-slot {
	position:absolute;
	top:50%;
	left:50%;
	width:200px;
	height:251px;
	transform:translate(-50%, -50%);
	opacity:0;
}
.intro-slot img {
	width:100%;
	height:100%;
	object-fit:cover;
	display:block;
}

.intro-final {
	position:absolute;
	left:50%;
	top:540px;
	width:1494px;
	height:1870px;
	margin-left:-747px;
	margin-top:-1460px;
	opacity:0;
	transform-origin:50% 78.07%;
	transform:scale(0.1342);
}
.intro-final img {
	width:100%;
	height:100%;
	object-fit:cover;
	display:block;
}

.intro-slot-1 { animation:introShowFoto1 6s forwards; }
@keyframes introShowFoto1 {
	0%, 8.33%   { opacity:1; }
	8.34%, 100% { opacity:0; }
}
.intro-slot-2 { animation:introShowFoto2 6s forwards; }
@keyframes introShowFoto2 {
	0%, 8.33%      { opacity:0; }
	8.34%, 16.66%  { opacity:1; }
	16.67%, 100%   { opacity:0; }
}
.intro-slot-3 { animation:introShowFoto3 6s forwards; }
@keyframes introShowFoto3 {
	0%, 16.66%    { opacity:0; }
	16.67%, 25%   { opacity:1; }
	25.01%, 100%  { opacity:0; }
}
.intro-slot-4 { animation:introShowFoto4 6s forwards; }
@keyframes introShowFoto4 {
	0%, 25%         { opacity:0; }
	25.01%, 33.33%  { opacity:1; }
	33.34%, 100%    { opacity:0; }
}
.intro-slot-5 { animation:introShowFoto5 6s forwards; }
@keyframes introShowFoto5 {
	0%, 33.33%   { opacity:0; }
	33.34%, 100% { opacity:1; }
}
.intro-final { animation:introZoomFinal 6s forwards; }
@keyframes introZoomFinal {
	0%       { opacity:0; transform:scale(0.1342); }
	41.66%   { opacity:0; transform:scale(0.1342); }
	41.67%   { opacity:1; transform:scale(0.1342); }
	66.66%   { opacity:1; transform:scale(1.32); }
	100%     { opacity:1; transform:scale(1.32); }
}

.scroll-to-top {
	display:none !important;
}