.elementor-kit-7{--e-global-color-primary:#000000;--e-global-color-secondary:#D2A856;--e-global-color-text:#000000;--e-global-color-accent:#00404B;--e-global-typography-primary-font-family:"Marcellus";--e-global-typography-primary-font-size:44px;--e-global-typography-primary-font-weight:800;--e-global-typography-secondary-font-family:"Marcellus";--e-global-typography-secondary-font-size:23px;--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Hanken Grotesk";--e-global-typography-text-font-size:18px;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.6em;--e-global-typography-accent-font-family:"Hanken Grotesk";--e-global-typography-accent-font-weight:800;}.elementor-kit-7 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}:root { --marcellus:Marcellus; --paragrafo:Hanken Grotesk; --bianco:#ffffff; --titolo-medio:52px; --titoli-grandi:82px; --oro:#D2A856; --titolo-pulsante:31px; --verde:#00404B; --footer-fondo:#f9f3eb; --NERO:#000000; --titolo-gigante:132px; --paragrafo-grandezza:22px; --titoli-pagine-servizi:63px; --titolo-piccolo:20px; --titolo-mobile:24px; }
/* Start custom CSS */.magnet-wrap{
  position: relative;
  display: inline-flex;
  align-items: center;
}

.magnet-zona{
  display: inline-flex;
  align-items: center;
  gap: 14px;
  width: fit-content;
  cursor: pointer;
}

.magnet-wrap .magnet-btn .elementor-button-text{
  transition: opacity .25s ease;
}

.magnet-wrap .magnet-icon svg,
.magnet-wrap .magnet-icon svg path{
  transition: fill .3s ease;
}

@media (hover: hover){
  .magnet-zona:hover .elementor-button-text{ opacity: 0.3; }

  .magnet-zona:hover .magnet-icon svg,
  .magnet-zona:hover .magnet-icon svg path{
    fill: #00404B !important;
  }
}

.magnet-wrap .magnet-icon .elementor-icon,
.magnet-wrap .magnet-icon svg,
.magnet-wrap .magnet-icon svg path,
.magnet-wrap .magnet-icon svg circle{
  transition: stroke .3s ease, color .3s ease;
}

.icona-linea svg,
.icona-linea svg path,
.icona-linea svg circle {
  fill: none !important;
  stroke: currentColor !important;
}



.nav-indicatore .elementor-nav-menu--main .elementor-nav-menu{
  position: relative;
}
.nav-indicatore .indicatore{
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 0;
  height: 1px;
  background: #1a1a1a;
  opacity: 0;
  pointer-events: none;
  transition: transform .45s cubic-bezier(.22,1,.36,1),
              width .45s cubic-bezier(.22,1,.36,1),
              opacity .25s ease;
}




/* rimette il sottomenu nel flusso: così spinge invece di sovrapporsi */
.menu-verticale .elementor-nav-menu--main .sub-menu{
  position: static !important;
  display: block !important;
  float: none !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  box-shadow: none !important;
  background: transparent !important;
  border: 0 !important;
  height: 0;
  overflow: hidden;
  transition: height .45s cubic-bezier(.22,1,.36,1);
}

/* rientro delle sottovoci */
.menu-verticale .elementor-nav-menu--main .sub-menu .elementor-sub-item{
  padding-left: 20px !important;
}



/* hamburger */
.burger{
  --sp: 3px;   /* spessore delle linee */
  --gap: 8px;  /* distanza tra le linee */

  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--gap);
  width: 34px;
  height: 34px;
  padding: 0;
  box-sizing: content-box;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  -webkit-appearance: none;
  appearance: none;
  cursor: pointer;
  margin-left: 0px;
  margin-bottom: 10px;
}
.burger span{
  display: block;
  width: 100%;
  height: var(--sp);
  background: #fff;
  transition: transform .35s cubic-bezier(.22,1,.36,1), opacity .2s ease;
}
.burger.attivo span:nth-child(1){
  transform: translateY(calc(var(--sp) + var(--gap))) rotate(45deg);
}
.burger.attivo span:nth-child(2){ opacity: 0; }
.burger.attivo span:nth-child(3){
  transform: translateY(calc(-1 * (var(--sp) + var(--gap)))) rotate(-45deg);
}

/* pannello che si espande verso il basso */
.pannello-wrap{
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows .5s cubic-bezier(.22,1,.36,1);
}
.pannello-wrap.aperto{ grid-template-rows: 1fr; }
.pannello-inner{ overflow: hidden; }

/* sicurezza, se il Breakpoint Nessuno non bastasse */
.pannello-menu .elementor-menu-toggle{ display: none !important; }



.contatti a{
  color: inherit;
  text-decoration: none;
  transition: color .25s ease;
}
.contatti a:hover,
.contatti a:focus-visible{
  color: #00404B;
}



/* ============ HOME: header fluttuante allo scroll ============ */

/* logo che sfuma via */
body.home .logo-home{
  transition: opacity .5s ease, visibility .5s ease;
}
body.home.scrollato .logo-home{
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

/* hamburger da bianco a nero */
body.home .burger span{
  transition: transform .35s cubic-bezier(.22,1,.36,1),
              opacity .2s ease,
              background-color .45s ease;
}
body.home.scrollato .burger span{
  background: #000;
}

/* voci del menu da bianche a nere quando è fluttuante */
body.home.scrollato .pannello-menu .elementor-item,
body.home.scrollato .pannello-menu .elementor-sub-item{
  color: #000 !important;
}

.segnalibro{
  align-self: flex-start;
  margin: 0 0 0 0px;
  margin-top: -20px;        /* = al padding superiore dell'header */
  padding: 0 28px 24px;
  background: transparent;
  overflow: hidden;
  transition: width .45s cubic-bezier(.22,1,.36,1),
              background-color .45s ease;
}

body.home.scrollato .segnalibro{
  background: rgba(249, 243, 235, 1);
}

.segnalibro > *,
.segnalibro .pannello-wrap,
.segnalibro .pannello-inner,
.segnalibro .elementor-widget-nav-menu,
.segnalibro .elementor-nav-menu--main,
.segnalibro .elementor-nav-menu{
  width: max-content !important;
  min-width: 0 !important;
  max-width: none !important;
}

.segnalibro .elementor-nav-menu a.elementor-item{
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.segnalibro > .elementor-widget-html{
  padding-left: 0;
}

.segnalibro .elementor-widget-nav-menu{
  margin-left: 0 !important;
  padding-left: 0 !important;
}

.segnalibro .elementor-item,
.segnalibro .elementor-sub-item{
  white-space: nowrap;
  transition: color .25s ease;
}

body.home.scrollato .segnalibro .elementor-item:hover,
body.home.scrollato .segnalibro .elementor-item:focus-visible,
body.home.scrollato .segnalibro .elementor-sub-item:hover,
body.home.scrollato .segnalibro .elementor-sub-item:focus-visible{
  color: #D2A856 !important;
}

body:not(.home) .elementor-location-header{
  position: sticky;
  top: 0;
  z-index: 999;
  background-color: #ffffff;
}

/* ---- CAROSELLO: cinque foto quadrate, la centrale piu grande ---- */
.carosello{
  --gap: 50px;                         /* spazio fra una foto e l'altra */
  --gap-piccolo: 16px;                 /* lo stesso spazio sul telefono */
  --lato: .36;                         /* grandezza delle quattro foto laterali */
  --s3: .30;                           /* grandezza di quelle fuori campo */
  --max: 420px;                        /* lato massimo della foto centrale */
  --curva: cubic-bezier(.22,1,.36,1);
  --tempo: .75s;
  --fuoco: 50% 50%;                    /* da dove ritagliare le foto non quadrate */
  --freccia: #1a1a1a;
  --freccia-fondo: transparent;
  --freccia-su: #00404b;
  --freccia-su-segno: #ffffff;

  --dim: 300px;                        /* calcolato dallo script, non toccare */
  --giu: calc(var(--dim) * (1 - var(--lato)) / 2);
  --giu3: calc(var(--dim) * (1 - var(--s3)) / 2);
  position: relative;
}

.car-pista{ position: relative; height: var(--dim); overflow: hidden; touch-action: pan-y; }

.car-foto{
  position: absolute; left: 50%; top: 50%;
  width: var(--dim); height: var(--dim);
  margin: calc(var(--dim) / -2) 0 0 calc(var(--dim) / -2);
  cursor: pointer; will-change: transform, opacity;
}
.carosello.car-pronto .car-foto{
  transition: transform var(--tempo) var(--curva), opacity var(--tempo) var(--curva);
}
.car-foto img{
  width: 100%; height: 100%;
  object-fit: cover; object-position: var(--fuoco); display: block;
  user-select: none; -webkit-user-drag: none;
}

.car-foto[data-pos="0"]{ transform: translate(0, 0) scale(1); opacity: 1; cursor: default; }
.car-foto[data-pos="-1"]{
  transform: translate(calc((var(--dim) * (0.5 + var(--lato) / 2) + var(--gap)) * -1), var(--giu)) scale(var(--lato));
  opacity: .92;
}
.car-foto[data-pos="1"]{
  transform: translate(calc(var(--dim) * (0.5 + var(--lato) / 2) + var(--gap)), var(--giu)) scale(var(--lato));
  opacity: .92;
}
.car-foto[data-pos="-2"]{
  transform: translate(calc((var(--dim) * (0.5 + var(--lato) * 1.5) + var(--gap) * 2) * -1), var(--giu)) scale(var(--lato));
  opacity: .65;
}
.car-foto[data-pos="2"]{
  transform: translate(calc(var(--dim) * (0.5 + var(--lato) * 1.5) + var(--gap) * 2), var(--giu)) scale(var(--lato));
  opacity: .65;
}
.car-foto[data-pos="fuori-sx"]{
  transform: translate(calc((var(--dim) * (0.5 + var(--lato) * 2 + var(--s3) / 2) + var(--gap) * 3) * -1), var(--giu3)) scale(var(--s3));
  opacity: 0; pointer-events: none;
}
.car-foto[data-pos="fuori-dx"]{
  transform: translate(calc(var(--dim) * (0.5 + var(--lato) * 2 + var(--s3) / 2) + var(--gap) * 3), var(--giu3)) scale(var(--s3));
  opacity: 0; pointer-events: none;
}

.carosello .car-prec,
.carosello .car-succ{
  position: absolute; z-index: 20;
  top: calc(var(--dim) / 2 + var(--giu)); margin-top: -23px;
  width: 46px; height: 46px;
  display: flex; align-items: center; justify-content: center;
  padding: 0; cursor: pointer;
  color: var(--freccia) !important;
  background: var(--freccia-fondo) !important;
  border: 1px solid currentColor !important; border-radius: 50%;
  box-shadow: none !important;
  -webkit-appearance: none; appearance: none;
  transition: background-color .3s ease, color .3s ease, border-color .3s ease;
}
.carosello .car-prec{ left: 0; }
.carosello .car-succ{ right: 0; }
.carosello .car-prec:hover,
.carosello .car-succ:hover,
.carosello .car-prec:focus-visible,
.carosello .car-succ:focus-visible{
  background: var(--freccia-su) !important;
  border-color: var(--freccia-su) !important;
  color: var(--freccia-su-segno) !important;
}
.carosello .car-prec svg,
.carosello .car-succ svg{ width: 18px; height: 18px; }
.carosello .car-prec svg{ transform: scaleX(-1); }

/* telefono: tre foto, spazio ridotto, frecce sotto */
.carosello.car-tre{ padding-bottom: 64px; }
.carosello.car-tre .car-foto[data-pos="-2"],
.carosello.car-tre .car-foto[data-pos="2"]{ opacity: 0; pointer-events: none; }
.carosello.car-tre .car-foto[data-pos="-1"]{
  transform: translate(calc((var(--dim) * (0.5 + var(--lato) / 2) + var(--gap-piccolo)) * -1), var(--giu)) scale(var(--lato));
}
.carosello.car-tre .car-foto[data-pos="1"]{
  transform: translate(calc(var(--dim) * (0.5 + var(--lato) / 2) + var(--gap-piccolo)), var(--giu)) scale(var(--lato));
}
.carosello.car-tre .car-prec,
.carosello.car-tre .car-succ{ top: auto; bottom: 0; margin-top: 0; }
.carosello.car-tre .car-prec{ left: calc(50% - 58px); }
.carosello.car-tre .car-succ{ right: calc(50% - 58px); }

/* ritaglio diverso per una singola foto */
.car-foto.fuoco-alto  img{ object-position: 50% 15%; }
.car-foto.fuoco-basso img{ object-position: 50% 85%; }
.car-foto.fuoco-sx    img{ object-position: 15% 50%; }
.car-foto.fuoco-dx    img{ object-position: 85% 50%; }

@media (prefers-reduced-motion: reduce){
  .carosello.car-pronto .car-foto{ transition: none; }
}/* End custom CSS */