/* ===============================
STILE TEMA BASE SPOT
Autore: Studio SPOT
Descrizione: Stili personalizzati del tema
=============================== */

/* ===============================
VARIABILI
=============================== */
:root {
  --fonttitolo: "Belleza";
  --fonttesto: "Open Sans";
  --color-primary: #972A3C;
  --color-primary-light: #E2435D;
  --color-primary-dark: #7E0217;
  --color-secondary: #0E7E48;
  --color-secondary-light: #2BA76B;
  --color-secondary-dark: #065C32;
  --color-neutral: #C9C9C9;
  --color-neutral-light: #F7F7F7;
  --color-neutral-dark: #767676;
}

/* ===============================
BASE
=============================== */
html {
  overflow-x: hidden !important;
  max-width: 100vw;
  font-size: 10px;
  font-weight: 500;
}

body {
  overflow-x: hidden !important;
  max-width: 100vw;
}

section {
  position: relative;
}

a {
  text-decoration: none;
  transition: color 0.3s ease;
}

a:hover {
  color: var(--color-primary);
  transition: color 0.3s ease;
}

/* ===============================
SVILUPPO
=============================== */
.SVILUPPO {
  border: 2px solid red;
}

.SVILUPPO-ALL * {
  border: 2px solid blue;
}

/* ===============================
UTILITY
=============================== */
.hero {
  background-size: cover;
  background-position: center;
}

.min-w-100 {
  min-width: 100%;
}

.min-w-80 {
  min-width: 80%;
}

.vh100 {
  min-height: 100vh;
}

.vh70 {
  min-height: 70vh;
  height: 70vh;
}

.vh60 {
  min-height: 60vh;
  height: 60vh;
}

.vh50 {
  min-height: 50vh;
}

.vh30 {
  min-height: 30vh;
}

.vh20 {
  min-height: 20vh;
}

.vh10 {
  min-height: 10vh;
}

.vh5 {
  min-height: 5vh;
}

.separatore {
  display: block;
  position: relative;
}

.container.container-big {
  width: 1700px;
  max-width: 90%;
}

.ratio-1500x1000 {
  --bs-aspect-ratio: 66.666%;
}

/* ===============================
TESTI
=============================== */
.titolo,
.titolo * {
  font-family: var(--fonttitolo);
}

.testo,
.testo * {
  font-family: var(--fonttesto);
}

.XXL,
.XXL * {
  font-size: 10.3rem;
}

.XL,
.XL * {
  font-size: 6.3rem;
}

.L,
.L * {
  font-size: 5rem;
}

.M,
.M * {
  font-size: 3.8rem;
  line-height: 4rem;
}

.S,
.S * {
  font-size: 1.8rem;
  line-height: 2.7rem;
}

.XS,
.XS * {
  font-size: 1.5rem;
  line-height: 2rem;
}

.extrabold,
.extrabold * {
  font-weight: 700;
}

.bold,
.bold * {
  font-weight: 600;
}

.normal,
.normal * {
  font-weight: 500;
}

.light,
.light * {
  font-weight: 300;
}

.S strong,
.M strong,
.L strong,
.XL strong {
  font-size: inherit;
  font-weight: bolder;
}

.XL strong {
  font-weight: 800;
}

.L strong {
  font-weight: 700;
}

.M strong {
  font-weight: 600;
}

.S strong {
  font-weight: 500;
}

.text-left * {
  text-align: left;
}

.text-center * {
  text-align: center;
}

.text-right * {
  text-align: right;
}

.caps,
.caps * {
  text-transform: uppercase;
}

/* ===============================
COLORI
=============================== */
.black,
.black * {
  color: #161615;
}

.white,
.white * {
  color: #fff;
}

.color-primary,
.color-primary * {
  color: var(--color-primary);
}

.color-primary-light,
.color-primary-light * {
  color: var(--color-primary-light);
}

.color-primary-dark,
.color-primary-dark * {
  color: var(--color-primary-dark);
}

.color-secondary,
.color-secondary * {
  color: var(--color-secondary);
}

.color-secondary-light,
.color-secondary-light * {
  color: var(--color-secondary-light);
}

.color-secondary-dark,
.color-secondary-dark * {
  color: var(--color-secondary-dark);
}

.color-neutral,
.color-neutral * {
  color: var(--color-neutral);
}

.color-neutral-light,
.color-neutral-light * {
  color: var(--color-neutral-light);
}

.color-neutral-dark,
.color-neutral-dark * {
  color: var(--color-neutral-dark);
}

/* ===============================
SVG / ICONE
=============================== */
.icona-svg svg {
  height: auto;
  display: block;
}

.icona-svg svg path,
.icona-svg svg circle,
.icona-svg svg rect,
.icona-svg svg polygon {
  fill: currentColor;
}

.icona-svg.icona-bici svg {
  width: 50px;
}

.icona-svg.icona-location svg {
  display: inline;
  margin-right: 9px;
}
.vantaggi-tour .icona-bici svg {
  width: 100px;
  margin-bottom: 20px;
}

/* ===============================
PULSANTI
=============================== */
.pulsante {
  display: block;
  padding: 10px 40px 12px;
  font-family: var(--fonttesto);
  text-decoration: none;
  font-weight: 500;
  line-height: normal;
  max-width: fit-content;
  border: 0 !important;
  border-radius: 50px;
  transition: all 0.3s ease;
}

.pulsante:hover {
  transition: all 0.3s ease;
}

.pulsante-1 {
  background-color: var(--color-primary);
  color: #fff;
}

.pulsante-1:hover {
  background-color: var(--color-primary-light);
  color: #fff;
}

.pulsante-2 {
  background-color: var(--color-neutral-dark);
  color: #fff;
}

.pulsante-2:hover {
  background-color: var(--color-neutral);
  color: #fff;
}

/* ===============================
SOCIAL
=============================== */
.icona-social {
  position: relative;
}

.icona-social a {
  width: 100%;
  height: 100%;
}

.icona-social img {
  transition: all 0.3s ease;
}

.icona-social:hover img {
  transition: all 0.3s ease;
}

.contatti-social .icona-social svg {
  height: 20px;
  width: auto;
}

.social-footer .icona-social svg,
.social-fascia-alta .icona-social svg {
  color: #fff;
}

/* ===============================
HEADER
=============================== */
.header {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 5;
}

.fascia-alta-header {
  height: 24px;
  background: #111;
}

.contenuti-fascia-alta {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.contatti-fascia-alta,
.social-fascia-alta,
.social-fascia-alta .container-social {
  display: flex;
  align-items: center;
  gap: 16px;
}
.social-fascia-alta .container-social svg {
  height: 14px;
  width: auto;
}
.contatti-fascia-alta a,
.social-fascia-alta a {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 1rem;
  line-height: 1;
}

.sep-top {
  display: block;
  width: 1px;
  height: 13px;
  background: #fff;
  opacity: .7;
}

.icona-top {
  width: 15px;
  line-height: 1;
  color: #fff;
}
.icona-top svg {
  width: 100%;
}
.main-content-header {
  height: 122px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.container-logo-header {
  display: block;
  width: 245px;
}

.logo-header,
.logo-header svg {
  width: 100%;
  display: block;
  height: auto;
}

.apri-menu-lat {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.hamburger {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 40px;
  height: 24px;
}

.hamburger .linea {
  width: 100%;
  height: 3px;
  background: #111;
  border-radius: 20px;
  transform: translate(-5px, 0);
  transition: all 0.3s ease;
}

.hamburger .linea:nth-child(2) {
  transform: translate(5px, 0);
}

.hamburger:hover .linea,
.hamburger:hover .linea:nth-child(2) {
  transform: translate(0, 0);
  transition: all 0.3s ease;
}
/* ===============================
MENU LATERALE
=============================== */
.container-menu-lat {
  position: fixed;
  inset: 0;
  z-index: 9999;
  left: auto;
  right: 0;
  width: 600px;
  min-height: 100vh;
  background: var(--color-primary);
  opacity: 1;
  visibility: hidden;
  pointer-events: none;
  transform: translateX(100%);
  transition: opacity .35s ease, visibility .35s ease, transform .45s ease;
}

.container-menu-lat.aperto {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(0);
}

.chiudi-menu-lat {
  position: absolute;
  top: 6%;
  right: 10%;
  display: flex;
  align-items: center;
  gap: 28px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  letter-spacing: 3px;
}

.icona-chiudi {
  position: relative;
  display: block;
  width: 48px;
  height: 38px;
}

.icona-chiudi span {
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 3px;
  background: #fff;
  border-radius: 20px;
  transform-origin: center;
}

.icona-chiudi span:first-child {
  transform: rotate(45deg);
}

.icona-chiudi span:last-child {
  transform: rotate(-45deg);
}

.navigazione-menu-lat {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: 0 10%;
}

.menu-lat {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 52px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.menu-lat a {
  color: #fff;
  font-size: 3.8rem;
  line-height: 1;
  letter-spacing: 9px;
}

.menu-lat a:hover {
  color: #fff;
  opacity: .7;
}

.social-menu-lat {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 6%;
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    gap: 34px;
    margin-left: auto;
    margin-right: 10%;
    flex-direction: column;
}

.social-menu-lat svg {
  color: #fff;
  height: 25px;
  width: auto;
}

.icona-youtube-lat {
  width: 42px;
  height: 30px;
  font-size: 2rem;
  border-radius: 8px;
  background: #fff;
  color: var(--color-primary);
}
.container-lingue{
margin-right:-15px;
}
.container-lingue a:hover{
color:#fff;
opacity:0.5;
}
.lingua-top .wpml-ls-legacy-list-horizontal,.lingua-top .wpml-ls-legacy-list-horizontal a,.lingua-top .wpml-ls-legacy-list-horizontal,.lingua-top .wpml-ls-legacy-list-horizontal a {
padding:0;
}
.lingua-top .wpml-ls-legacy-list-horizontal .wpml-ls-flag,.container-lingue .wpml-ls-legacy-list-horizontal .wpml-ls-flag{
opacity:0;
}
.lingua-top .wpml-ls-link:before,.container-lingue .wpml-ls-link:before{
content:"";
position:absolute;
}
.lingua-top .wpml-ls-first-item .wpml-ls-link:before,.container-lingue .wpml-ls-first-item .wpml-ls-link:before{
content:"EN";
}
.lingua-top .wpml-ls-last-item .wpml-ls-link:before,.container-lingue .wpml-ls-last-item .wpml-ls-link:before{
content:"IT";
}



/* ===============================
COMPONENTI CONDIVISI
=============================== */
.sezione-scura,
.sez-destinazioni {
  background: #111;
}

.home-flex {
  display: flex;
  align-items: center;
}

/* ===============================
HOME - HERO
=============================== */
.logo-apertura svg{
max-width:80%;
}
.slider-apertura {
  position: relative;
  overflow: hidden;
 /* padding-top: 170px;*/
  display: flex;
  align-items: center;
  justify-content: center;
  max-height:100vh;
}

.slider-apertura .img-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ombra-hero {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(to bottom, rgba(17, 17, 17,0) 36%, rgba(17, 17, 17,.2) 62%, #111 100%);
}

.contenuto-slider {
  position: relative;
  z-index: 2;
  height: calc(100vh - 170px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.contenuto-slider h1 {
  margin: 0 0 25px;
  font-weight: 400;
  line-height: 6.5rem;
}
.slider-apertura .pulsante{
margin-bottom:auto;
}
.slider-apertura .pulsante,
.sez-destinazioni .pulsante,
.sez-img-txt .pulsante {
  min-width: 180px;
  padding: 10px 38px 12px;
  text-align: center;
}
.slider-home-acf .slider-home-bg,
.slider-home-acf .slide-home-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.slider-home-acf .slide-home-bg {
  object-fit: cover;
  opacity: 0;
  transition: opacity .8s ease;
}

.slider-home-acf .slide-home-bg.attiva {
  opacity: 1;
}
/* ===============================
HOME - INTRO
=============================== */
.sez-img-txt {
  padding: 70px 0 105px;
}

.home-flex-intro {
  gap: 10%;
}

.home-flex-intro > .col-img {
  flex: 0 1 60%;
}

.home-flex-intro > .col-txt {
  flex: 0 1 30%;
}

.doppia-img {
  display: flex;
  gap: 45px;
}

.doppia-img img {
  flex: 1 1 0;
  min-width: 0;
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 4px;
}

.col-txt h2 {
  margin: 0 0 30px;
  font-weight: 400;
  line-height: 6.6rem;
}

.col-txt p {
  max-width: 620px;
  margin: 0 0 38px;
}

/* ===============================
CATEGORIA TOUR - APERTURA
=============================== */
.categoria-apertura {
  padding-top: 260px;
  background: #fff;
}

.categoria-apertura .col-txt h1 {
  margin: 0 0 10px;
  font-weight: 400;
  line-height: 10rem;
}

.categoria-apertura .col-txt h2 {
  margin: 0 0 30px;
}

.titolo-categoria-con-svg {
  display: flex;
  align-items: center;
  gap: 35px;
  margin-bottom: 30px;
}

.regione-categoria {
  position: absolute;
  top: 5%;
  right: -12%;
  width: 270px;
}

.regione-categoria svg {
  width: 100%;
  height: auto;
  display: block;
  stroke: #fff;
  stroke-width: 3px;
}

.regione-categoria svg path,
.regione-categoria svg polygon,
.regione-categoria svg rect,
.regione-categoria svg circle {
  fill: currentColor;
}

.titolo-categoria-con-svg h1,
.titolo-categoria-con-svg h2 {
  margin: 0;
}

/* ===============================
HOME - DESTINAZIONI
=============================== */
.box-destinazioni {
  position: relative;
  background: linear-gradient(180deg,rgba(17, 17, 17, 1) 10%, rgba(255, 255, 255, 1) 10%, rgba(255, 255, 255, 1) 90%, rgba(17, 17, 17, 1) 90%);
  padding: 75px 0 60px;
}

.box-destinazioni:after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 8%;
  width: 68px;
  height: 68px;
  background: #fff;
  transform: translateX(-50%) rotate(45deg);
  z-index: 2;
}

.destinazioni-apertura .box-destinazioni {
  background: #fff;
}

.destinazioni-apertura .box-destinazioni:after,
.destinazioni-apertura .box-destinazioni .icona-bike {
  display: none;
}

.home-flex-destinazioni {
  gap: 5%;
}

.home-flex-destinazioni > .col-txt {
  flex: 0 1 46%;
  z-index: 2;
}

.home-flex-destinazioni > .col-img {
  flex: 0 1 54%;
}

.icona-bike {
  position: absolute;
  top: 4%;
  left: 9%;
  width: 150px;
  z-index: 3;
}

.icona-uva {
  position: absolute;
  right: 6%;
  bottom: 5%;
  width: 130px;
  z-index: 3;
}
.icona-bike svg,
.icona-uva svg {
  width: 100%;
}
.lista-destinazioni {
  display: flex;
  gap: 35px;
  max-width: 600px;
  margin: 0 0 40px;
}

.lista-destinazioni ul {
  flex: 1 1 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.lista-destinazioni li {
  position: relative;
  min-height: 26px;
  margin-bottom: 11px;
  padding-left: 30px;
  color: var(--color-primary);
  letter-spacing: 1px;
}
.lista-destinazioni li a {
  color: inherit;
}

.lista-destinazioni li:before,
.meta-tour:before {
  content: "";
  position: absolute;
  width: 18px;
  height: 18px;
  border-radius: 20px 20px 20px 0;
  background: var(--color-primary);
  transform: rotate(-45deg);
}

.lista-destinazioni li:before {
  top: 0;
  left: 0;
}

.lista-destinazioni li:after,
.meta-tour:after {
  content: "";
  position: absolute;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #fff;
}

.lista-destinazioni li:after {
  top: 6px;
  left: 6px;
}

.lista-destinazioni li.active,
.lista-destinazioni li.active:before {
  color: var(--color-primary-light);
}

.lista-destinazioni li.active:before {
  background: var(--color-primary-light);
}

.mappa-italia {
  position: relative;
}

.mappa-italia img {
  width: 100%;
}

.mappa-italia span {
  position: absolute;
  top: 39%;
  left: 48%;
  width: 30px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #000;
  color: #fff;
  font-family: var(--fonttesto);
  font-size: 1.3rem;
  font-weight: 700;
}
.watermark-tour.watermark-tour-sx {
  left: -5%;
  right: auto;
  z-index: 0;
}

.lista-destinazioni li.is-active,
.lista-destinazioni li.is-active a {
  color: var(--color-primary-light);
}

.lista-destinazioni li.is-active:before {
  background: var(--color-primary-light);
}

.mappa-italia svg {
  width: 100%;
  height: auto;
  display: block;
}

.mappa-italia .regione-mappa {
  cursor: pointer;
  transition: fill .25s ease;
}

.mappa-italia .regione-mappa.is-active {
  fill: var(--color-primary-light) !important;
}

.mappa-count {
  position: absolute;
  z-index: 5;
  width: 30px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #111;
  color: #fff;
  font-family: var(--fonttesto);
  font-size: 1.3rem;
  font-weight: 700;
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, -50%);
  transition: opacity .2s ease;
}

.mappa-count.is-visible {
  opacity: 1;
}

/* ===============================
HOME - TOUR
=============================== */
.tour-home {
  padding: 118px 0 145px;
}

.titolo-sezione {
  max-width: 780px;
  margin: 0 auto 75px;
}

.titolo-sezione h2 {
  margin: 0 0 22px;
  font-weight: 400;
  line-height: 6.4rem;
}

.titolo-sezione p {
  margin: 0;
}

.loop-tour {
  display: flex;
  gap: 24px;
  align-items: center;
}
.loop-tour-extra.loop-tour-extra {
  display: none;
  margin-top: 24px;
}

.loop-tour-extra.is-visible {
  display: flex;
}

.container-pulsante-load-more {
  display: flex;
  justify-content: center;
  margin-top: 55px;
}
.carta-tour {
  position: relative;
  flex: 1 1 0;
  min-height: 465px;
  min-width: 0;
  overflow: hidden;
  border-radius: 5px;
  color: #fff;
}

.carta-tour.active {
  flex: 1.12 1 0;
  min-height: 535px;
}

.carta-tour.is-faded {
  flex: .9 1 0;
  opacity: .55;
}

.carta-tour:after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(to bottom, rgba(0, 0, 0,.1), rgba(0, 0, 0,.25) 46%, rgba(0, 0, 0,.78) 100%);
}

.carta-tour img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.meta-tour {
  position: relative;
  z-index: 2;
  display: block;
  padding: 28px 25px 0 54px;
  color: #191919;
  letter-spacing: 1px;
}

.meta-tour:before {
  top: 27px;
  left: 27px;
  background: var(--color-neutral-dark);
  transition: background 0.3s ease;
}
.carousel-tour-slide.is-center .meta-tour:before {
  background: var(--color-primary);
  transition: background 0.3s ease;
}
.meta-tour:after {
  top: 33px;
  left: 33px;
}

.carta-tour h3 {
  position: absolute;
  left: 27px;
  right: 25px;
  bottom: 42px;
  z-index: 2;
  margin: 0;
  font-size: 3.7rem;
  line-height: 4rem;
  font-weight: 400;
}

.carta-tour small {
  position: absolute;
  left: 27px;
  bottom: 20px;
  z-index: 2;
  font-family: var(--fonttesto);
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: .7px;
  text-transform: uppercase;
  transition:color 0.3s ease;
}

/* ===============================
CAROSELLO TOUR
=============================== */
.carousel-loop-tour {
  --carousel-gap: 24px;
  --carousel-card-height: 465px;
  --carousel-speed: .65s;
  position: relative;
  width: 100%;
}

.carousel-tour-viewport {
  width: 100%;
  overflow: hidden;
  padding: 45px 0;
}

.carousel-loop-tour .loop-tour.carousel-tour-track {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: var(--carousel-gap);
  min-height: 540px;
  flex-wrap: nowrap;
  transition: transform var(--carousel-speed) cubic-bezier(.22, 1, .36, 1);
  will-change: transform;
}

.carousel-loop-tour .loop-tour.carousel-tour-track.is-jumping {
  transition: none;
}

.carousel-tour-slide {
  flex: 0 0 calc((100% - (var(--carousel-gap) * 4)) / 5);
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.carousel-loop-tour .carta-tour,
.carousel-loop-tour .carta-tour.active,
.carousel-loop-tour .carta-tour.is-faded {
  flex: none;
  width: 100%;
  height: var(--carousel-card-height);
  min-height: 0;
  opacity: .45;
  filter: brightness(.72);
  transform: scale(.88) translateZ(0);
  transform-origin: center;
  transition:
    opacity var(--carousel-speed) cubic-bezier(.22, 1, .36, 1),
    filter var(--carousel-speed) cubic-bezier(.22, 1, .36, 1),
    transform var(--carousel-speed) cubic-bezier(.22, 1, .36, 1);
  will-change: opacity, filter, transform;
  backface-visibility: hidden;
}

.carousel-tour-slide.is-near .carta-tour {
  opacity: .82;
  filter: brightness(.9);
  transform: scale(.96) translateZ(0);
}

.carousel-tour-slide.is-center {
  z-index: 3;
}

.carousel-tour-slide.is-center .carta-tour {
  opacity: 1;
  filter: brightness(1);
  transform: scale(1.08) translateZ(0);
}

.carousel-tour-slide.is-outside .carta-tour {
  opacity: .25;
  filter: brightness(.55);
  transform: scale(.82) translateZ(0);
}

.carousel-tour-arrow {
  position: absolute;
  top: 50%;
  z-index: 8;
  width: 46px;
  height: 46px;
  border: 0;
  border-radius: 50%;
  background: var(--color-primary);
  color: #fff;
  cursor: pointer;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .25s ease, transform .25s ease;
}

.carousel-tour-arrow:hover {
  background: var(--color-primary-light);
  transform: translateY(-50%) scale(1.06);
}

.carousel-tour-arrow span {
  display: block;
  font-size: 4rem;
  line-height: 3.6rem;
  margin-top: -4px;
}

.carousel-tour-prev {
  left: -23px;
}

.carousel-tour-next {
  right: -23px;
}

/* ===============================
LOOP TOUR CLASSICO
=============================== */
.loop-tour-classico {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  align-items: stretch;
}

.loop-tour-classico .carta-tour {
  flex: 0 1 calc(25% - 18px);
  width: auto;
  min-width: 0;
  min-height: 600px;
  opacity: 1;
  filter: none;
  transform: none;
}

.loop-tour-classico .carta-tour .meta-tour:before {
  background: var(--color-primary);
}

/* ===============================
DETTAGLIO TOUR
=============================== */
.dettaglio-hero {
  padding-top: 0;
    min-height:100vh;
  max-height:100%;
}

.dettaglio-hero .ombra-hero {
  background: linear-gradient(to bottom, rgba(17, 17, 17,0) 28%, rgba(17, 17, 17,.28) 58%, #111 100%);
}

.dettaglio-hero-content {
  position: relative;
  z-index: 2;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8%;
  padding-top: 120px;
  margin-top: auto;
  margin-bottom: 0;

}

.tour-hero-card {
  width: fit-content;
  max-width: 52%;
  padding: 45px 52px 38px;
  background: #fff;
  border-radius: 8px;
}

.tour-hero-card > p {
  margin: 0 0 14px;
  letter-spacing: 1px;
}

.tour-hero-card h1 {
  margin: 0 0 25px;
  font-weight: 400;
  line-height: 6.2rem;
}

.tour-hero-card h1,
.tour-hero-card p {
  position: relative;
  z-index: 2;
}

.riepilogo-tour {
  display: flex;
  gap: 28px;
  align-items: flex-start;
  margin-top: 35px;
}

.riepilogo-tour img {
  flex: 0 0 58px;
  width: 58px;
  margin-top: 5px;
}

.riepilogo-tour table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--fonttesto);
  font-size: 1.15rem;
  line-height: 1.5rem;
}

.riepilogo-tour th {
  padding: 0 10px 14px;
  font-weight: 800;
  letter-spacing: .6px;
  text-align: left;
  text-transform: uppercase;
}

.riepilogo-tour td {
  padding: 14px 10px;
  border-bottom: 1px solid #ddd;
  vertical-align: top;
}

.riepilogo-tour td:first-child strong {
  color: var(--color-primary);
  font-size: 1.5rem;
  line-height: 1.7rem;
  letter-spacing: 1px;
  text-transform: uppercase;
}

.dettaglio-hero .pulsante {
  align-self: flex-end;
  margin-bottom: 70px;
  min-width: 190px;
  text-align: center;
}

.gallery-tour-list {
  display: flex;
  gap: 24px;
}

.gallery-tour-list img {
  flex: 1 1 0;
  min-width: 0;
  width: 100%;
  aspect-ratio: 1.28 / 1;
  object-fit: cover;
  border-radius: 4px;
}

.tour-dettagli {
  position: relative;
  padding: 90px 0 105px;
  background: #fff;
  overflow-x: visible;
}

.tour-dettagli:before {
  content: "";
  position: absolute;
  top: -30px;
  left: 50%;
  width: 60px;
  height: 60px;
  background: #fff;
  transform: translateX(-50%) rotate(45deg);
  z-index: 1;
}

.tour-dettagli .container {
  position: relative;
  z-index: 2;
}

.watermark-tour {
  position: absolute;
  right: -8%;
  top: 15px;
  width: 620px;
  max-width: 60%;
  opacity: .75;
  z-index: -1;
}

.tour-dettagli h2 {
  margin: 0 0 42px;
  font-weight: 400;
  line-height: 6.4rem;
}

.start-finish {
  display: flex;
  gap: 85px;
  padding-bottom: 32px;
  border-bottom: 1px solid #ddd;
}

.start-finish p {
  margin: 0;
}

.start-finish span,
.dettagli-tour-info h3:before {
  color: var(--color-primary);
}

.dettagli-tour-info {
  display: flex;
  gap: 6%;
  padding: 38px 0 42px;
  border-bottom: 1px solid #ddd;
}

.dettagli-tour-info > div {
  flex: 1 1 0;
}

.dettagli-tour-info h3 {
  margin: 0 0 15px;
  letter-spacing: .8px;
}

.dettagli-tour-info p {
  margin: 0;
}

.liste-tour {
  display: flex;
  gap: 8%;
  padding-top: 38px;
}

.liste-tour > div {
  flex: 1 1 0;
}

.liste-tour h3 {
  margin: 0 0 18px;
  letter-spacing: .8px;
}

.liste-tour ul {
  margin: 0;
  padding-left: 16px;
}

.liste-tour li {
  margin-bottom: 7px;
}

.liste-tour li::marker {
  color: var(--color-primary);
}

.richiesta-tour {
  padding: 95px 0 110px;
}

.vantaggi-tour {
  display: flex;
  justify-content: space-between;
  gap: 8%;
  margin-bottom: 120px;
}

.vantaggi-tour > div {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.vantaggi-tour img {
  width: 90px;
  margin-bottom: 22px;
}

.vantaggi-tour p {
  max-width: 330px;
  margin: 0;
}

.richiesta-flex {
  display: flex;
  gap: 12%;
  align-items: flex-start;
}

.richiesta-flex > .col-txt {
  flex: 0 1 38%;
}

.richiesta-flex > .col-txt h2 {
  margin-bottom: 35px;
  line-height: 6.5rem;
}

.form-tour {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.form-riga {
  display: flex;
  gap: 18px;
}

.form-riga input {
  flex: 1 1 0;
}

.form-tour input,
.form-tour textarea {
  width: 100%;
  border: 0;
  border-radius: 6px;
  background: #333;
  color: #fff;
  padding: 18px 20px;
}

.form-tour textarea {
  min-height: 180px;
  resize: vertical;
}

.form-tour input::placeholder,
.form-tour textarea::placeholder {
  color: #c9c9c9;
}

.form-privacy {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
}

.form-privacy label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  max-width: 560px;
}

.form-privacy input {
  width: auto;
  margin-top: 3px;
  accent-color: var(--color-primary);
}

.form-privacy .pulsante {
  min-width: 155px;
  text-align: center;
}

.gallery-tour {
  --gallery-gap: 24px;
  --gallery-cut: clamp(90px, 10vw, 220px);
  --gallery-item-width: calc((100vw + (var(--gallery-cut) * 2) - (var(--gallery-gap) * 3)) / 4);

  padding: 55px 0 85px;
  overflow: hidden;
}

.gallery-tour-slider {
  width: 100vw;
  margin-left: 50%;
  transform: translateX(-50%);
  overflow: hidden;
}

.gallery-tour-track {
  display: flex;
  width: max-content;
  margin-left: calc(var(--gallery-cut) * -1);
  animation: gallery-tour-scroll 55s linear infinite;
  will-change: transform;
}

.gallery-tour-slider:hover .gallery-tour-track,
.gallery-tour-slider:focus-within .gallery-tour-track {
  animation-play-state: paused;
}

.gallery-tour-item {
  flex: 0 0 var(--gallery-item-width);
  width: var(--gallery-item-width);
  aspect-ratio: 1 / 1;
  margin-right: var(--gallery-gap);
  overflow: hidden;
  border-radius: 4px;
  cursor: pointer;
}

.gallery-tour-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

@keyframes gallery-tour-scroll {
  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(-50%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .gallery-tour-track {
    animation: none;
    overflow-x: auto;
    scrollbar-width: none;
  }
}

/* ===============================
ABOUT
=============================== */
.about-apertura {
  padding: 300px 0 95px;
  background: #fff;
}

.about-flex {
  gap: 9%;
}

.about-flex > .col-img {
  flex: 0 1 58%;
}

.about-flex > .col-txt {
  flex: 0 1 33%;
}

.about-flex .col-img img {
  width: 100%;
  aspect-ratio: 1.95 / 1;
  object-fit: cover;
  border-radius: 6px;
}

.about-flex .col-txt h1 {
  margin: 0 0 35px;
  font-weight: 400;
  line-height: 6.4rem;
}

.about-flex .col-txt p {
  margin-bottom: 30px;
}

.about-icone {
  padding: 45px 0 120px;
  background: #fff;
}

.about-icone-flex {
  justify-content: center;
  gap: 12%;
}

.about-icone-flex > div {
  flex: 0 1 320px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.about-icone .icona-svg.icona-bici svg {
  width: 80px;
  margin-bottom: 25px;
}

.about-icone-flex p {
  margin: 0;
}

.about-gallery {
  background: #fff;
  overflow: hidden;
}

.about-gallery-list {
  display: flex;
  gap: 30px;
}

.about-gallery-list img {
  flex: 1 1 0;
  min-width: 0;
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 4px;
}

.about-testo {
  padding: 95px 0 125px;
  background: #000;
}

.about-testo h2 {
  margin: 0 0 60px;
  font-weight: 400;
  line-height: 6.4rem;
}

.about-testo-flex {
  align-items: flex-start;
  justify-content: space-between;
  gap: 12%;
}

.about-testo-flex > div {
  flex: 0 1 44%;
}

.about-testo-flex p {
  max-width: 620px;
  margin: 0 0 30px;
}

/* ===============================
FOOTER
=============================== */
.container-footer {
  padding: 100px 0 0;
  background: var(--color-primary);
}

.footer-flex {
  display: flex;
  gap: 13%;
  align-items: flex-start;
}

.footer-flex > div:first-child {
  flex: 0 1 34%;
}

.footer-flex > div:last-child {
  flex: 1 1 0;
  min-width: 0;
}

.logo-footer {
  width: 420px;
  max-width: 80%;
  margin: 0 0 45px;
}
.logo-footer svg{
max-width:100%;
}

.container-footer p {
  margin: 0 0 42px;
}

.container-social {
  display: flex;
  align-items: center;
  gap: 35px;
}

.container-social img {
  width: 34px;
  height: 34px;
}

.menu-footer-row {
  display: flex;
  gap: 35px;
  align-items: flex-end;
  margin-bottom: 65px;
  border-bottom: 1px solid rgba(255,255,255,.8);
}

.menu-footer-row img {
  flex: 0 0 120px;
  width: 120px;
}

.menu-footer {
  flex: 1 1 auto;
  display: flex;
  justify-content: space-between;
  gap: 35px;
  margin: 0;
  padding: 0 0 16px;
  list-style: none;
}

.menu-footer a {
  color: #fff;
  font-size: 1.4rem;
  letter-spacing: 1.2px;
}

.newsletter {
  display: flex;
  gap: 60px;
  align-items: center;
  margin-bottom: 40px;
}

.newsletter .titolo {
  flex: 0 1 45%;
  text-align: right;
}

.newsletter h2 {
  margin: 0;
  font-weight: 400;
  line-height: 5.5rem;
}

.newsletter p {
  flex: 1 1 0;
  max-width: none;
  margin: 0;
}

.form-newsletter input {
  width: 100%;
  height: 64px;
  margin-bottom: 38px;
  padding: 0 28px;
  border: 0;
  border-radius: 4px;
}

/* ===============================
   FLUENT FORM - NEWSLETTER
   =============================== */

.form-newsletter .fluentform,
.form-newsletter .frm-fluent-form {
  width: 100%;
}

.form-newsletter .ff-el-group {
  margin: 0;
}

.form-newsletter .ff-el-input--label {
  display: none;
}

.form-newsletter .ff-el-form-control {
  width: 100%;
  min-height: 64px;
  padding: 0 28px;
  border: 0;
  border-radius: 8px;
  background: #fff;
  color: #111;
  font-family: var(--fonttesto);
  font-size: 1.5rem;
  font-weight: 500;
  box-shadow: none !important;
  outline: none !important;
}

.form-newsletter .ff-el-form-control::placeholder {
  color: #111;
  opacity: 1;
}

.form-newsletter .ff-el-form-control:focus {
  box-shadow: none !important;
}

/* Layout form */
.form-newsletter form,
.form-newsletter .ff-form {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.form-newsletter .ff_submit_btn_wrapper,
.form-newsletter .ff-el-group:has(button[type="submit"]) {
  display: flex;
  justify-content: flex-end;
  margin: 0 !important;
}

/* Bottone */
.form-newsletter button[type="submit"],
.form-newsletter .ff-btn-submit,
.form-newsletter .pulsante.pulsante-2 {
  min-width: 175px;
  min-height: 46px;
  padding: 12px 42px 14px;
  border: 0 !important;
  border-radius: 50px;
  background: #000 !important;
  color: #fff !important;
  font-family: var(--fonttesto);
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 1px;
  line-height: normal;
  text-align: center;
  text-transform: uppercase;
  transition: background .3s ease, color .3s ease;
}

.form-newsletter button[type="submit"]:hover,
.form-newsletter .ff-btn-submit:hover,
.form-newsletter .pulsante.pulsante-2:hover {
  background: #fff !important;
  color: var(--color-primary) !important;
}

/* Messaggi */
.form-newsletter .ff-el-is-error .ff-el-form-control {
  border: 1px solid #000;
}

.form-newsletter .text-danger,
.form-newsletter .error {
  margin-top: 8px;
  font-family: var(--fonttesto);
  font-size: 1.2rem;
  color: #fff;
}

.fascia-bassa-footer {
  padding: 18px 0;
  background: #000;
  margin-top: 50px;
}

.fascia-bassa-footer p,.fascia-bassa-footer a {
  margin: 0;
  font-size: 1.15rem;
  line-height: 1.7rem;
}

.icona-svg.icona-bici.icona-bici-footer svg {
  width: 100px;
  margin-left: -20px;
  margin-right: 4vw;
  margin-bottom: -1px;
}


/* ===============================
404
=============================== */
.mod-404 .XL,
.mod-404 .XL * {
  font-size: 11rem;
}

.mod-404 .M,
.mod-404 .M * {
  font-size: 2.7rem;
}
/* ===============================
   CONTATTI
   =============================== */
.contatti-apertura {
  padding: 330px 0 130px;
  background: #fff;
}

.contatti-flex {
  align-items: flex-start;
  justify-content: space-between;
  gap: 10%;
}

.contatti-info {
  flex: 0 1 38%;
}

.contatti-info > p:first-child {
  margin: 0 0 22px;
  letter-spacing: 2px;
}

.contatti-info h1 {
  margin: 0 0 45px;
  font-weight: 400;
  line-height: 10.6rem;
}

.contatti-info > .testo.black {
  max-width: 640px;
  margin: 0 0 48px;
}

.contatti-lista {
  display: flex;
  flex-direction: column;
  gap: 18px;
  margin-bottom: 78px;
  max-width:fit-content;
}

.contatti-lista a {
  display: flex;
  align-items: center;
  gap: 18px;
}

.contatti-lista span {
  min-width: 22px;
  color: var(--color-primary);
}

.contatti-social p {
  margin: 0 0 18px;
  letter-spacing: 2px;
}

.contatti-social .container-social {
  gap: 30px;
}

.contatti-social .container-social img {
  width: 34px;
  height: 34px;
}

.form-contatti {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  gap: 32px;
  padding-top: 6px;
}

.form-contatti .form-riga {
  display: flex;
  gap: 32px;
}

.form-contatti .form-riga input {
  flex: 1 1 0;
}

.form-contatti input,
.form-contatti textarea {
  width: 100%;
  border: 1px solid #d6d6d6;
  border-radius: 8px;
  background: #fff;
  color: #111;
  padding: 22px 28px;
}

.form-contatti input {
  height: 74px;
}

.form-contatti textarea {
  min-height: 260px;
  resize: vertical;
}

.form-contatti input::placeholder,
.form-contatti textarea::placeholder {
  color: #111;
}

.form-contatti .form-privacy {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 55px;
}

.form-contatti .form-privacy label {
  display: flex;
  align-items: flex-start;
  gap: 18px;
  max-width: 720px;
}

.form-contatti .form-privacy input {
  width: auto;
  height: auto;
  margin-top: 2px;
  padding: 0;
  accent-color: var(--color-primary);
}

.form-contatti .form-privacy .pulsante {
  min-width: 240px;
  padding: 18px 50px 20px;
  text-align: center;
}

.contatti-img {
  height: 520px;
  overflow: hidden;
}

.contatti-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ===============================
   FLUENT FORM - CONTATTI
   =============================== */

.form-contatti .fluentform {
  width: 100%;
}

.form-contatti .ff-el-group {
  margin-bottom: 32px;
}

.form-contatti .ff-t-container {
  display: flex;
  gap: 40px;
  margin-bottom: 32px;
}

.form-contatti .ff-t-cell {
  flex: 1 1 0;
  padding: 0 !important;
}

.form-contatti .ff-el-form-control {
  width: 100%;
  min-height: 64px;
  padding: 0 28px;
  border: 1px solid #ddd;
  border-radius: 10px;
  background: #fff;
  color: #111;
  font-family: var(--fonttesto);
  font-size: 1.5rem;
  font-weight: 500;
  box-shadow: none;
  outline: none;
  transition: border-color .25s ease;
}

.form-contatti textarea.ff-el-form-control {
  min-height: 240px;
  padding-top: 26px;
  resize: vertical;
}

.form-contatti .ff-el-form-control::placeholder {
  color: #111;
  opacity: 1;
}

.form-contatti .ff-el-form-control:focus {
  border-color: var(--color-primary);
  box-shadow: none;
}

.form-contatti .ff-el-input--label {
  display: none;
}

/* Privacy + submit */
.form-contatti .ff_submit_btn_wrapper,
.form-contatti .ff-el-group.ff_submit_btn_wrapper {
  width: 100%;
  display: flex;
  justify-content: flex-end;
  margin: 28px 0 0 !important;
}

.form-contatti .ff-el-group:has(.ff-el-form-check) {
  display: flex;
  align-items: center;
  gap: 18px;
  max-width: 100%;
  margin: 0;
  padding-right: 0;
}

.form-contatti form {
  position: static;
}

.form-contatti .ff-el-form-check {
  display: flex;
  align-items: flex-start;
  gap: 18px;
}

.form-contatti .ff-el-form-check-input {
  width: 16px;
  height: 16px;
  margin-top: 3px;
  accent-color: var(--color-primary);
}

.form-contatti .ff-el-form-check-label,
.form-contatti .ff-el-form-check-label * {
  font-family: var(--fonttesto);
  font-size: 1.2rem;
  line-height: 1.6rem;
  color: #111;
}

.form-contatti .ff-btn-submit {
  min-width: 210px;
  min-height: 58px;
  border: 0 !important;
  border-radius: 50px;
  background: var(--color-primary);
  color: #fff;
  font-family: var(--fonttesto);
  font-size: 1.8rem;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  transition: background .3s ease;
}

.form-contatti .ff-btn-submit:hover {
  background: var(--color-primary-light);
  color: #fff;
}

/* ===============================
   FLUENT FORM - TOUR
   =============================== */

.form-tour .fluentform,
.form-tour .frm-fluent-form {
  width: 100%;
}

.form-tour form {
  position: relative;
}

.form-tour .ff-el-input--label {
  display: none;
}

.form-tour .ff-el-group {
  margin: 0 0 20px;
}

.form-tour .ff-t-container {
  display: flex;
  gap: 16px;
  margin-bottom: 20px;
}
.frm-fluent-form .ff-t-container{
margin-bottom:0;
}
.form-tour .ff-t-cell {
  flex: 1 1 0;
  padding: 0 !important;
}

.form-tour .ff-el-form-control {
  width: 100%;
  min-height: 62px;
  padding: 0 24px;
  border: 0 !important;
  border-radius: 8px;
  background: #3b3b3a;
  color: #fff;
  font-family: var(--fonttesto);
  font-size: 1.5rem;
  font-weight: 500;
  box-shadow: none !important;
  outline: none !important;
}

.form-tour select.ff-el-form-control {
  appearance: none;
  cursor: pointer;
}

.form-tour textarea.ff-el-form-control {
  min-height: 235px;
  padding-top: 22px;
  resize: vertical;
}

.form-tour .ff-el-form-control::placeholder {
  color: #fff;
  opacity: 1;
}

.form-tour .ff-el-form-control:focus {
  background: #424240;
  box-shadow: none !important;
}

/* Privacy */
.form-tour .ff-el-group:has(.ff-el-form-check) {
  max-width: 100%;
  margin: 30px 0 0;
  padding-right: 0;
}

.form-tour .ff-el-form-check {
  display: flex;
  align-items: flex-start;
  gap: 18px;
}

.form-tour .ff-el-form-check-input {
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  margin: 2px 0 0;
  border: 2px solid #fff;
  border-radius: 50%;
  background: #fff;
  accent-color: var(--color-primary);
  cursor: pointer;
}

.form-tour .ff-el-form-check-input:checked {
  background: var(--color-primary);
  box-shadow: inset 0 0 0 4px #fff;
}

.form-tour .ff-el-form-check-label,
.form-tour .ff-el-form-check-label *,
.form-tour .ff_tc_label,
.form-tour .ff_tc_label * {
  color: #fff;
  font-family: var(--fonttesto);
  font-size: 1.15rem;
  line-height: 1.55rem;
  font-weight: 500;
}

.form-tour .ff-el-form-check-label p,
.form-tour .ff_tc_label p {
  margin: 0;
}

.form-tour .ff-el-form-check-label a,
.form-tour .ff_tc_label a {
  color: #fff;
  text-decoration: underline;
}

/* Submit */
.form-tour .ff_submit_btn_wrapper,
.form-tour .ff-el-group.ff_submit_btn_wrapper {
  position: static;
  width: 100%;
  display: flex;
  justify-content: flex-end;
  margin: 28px 0 0 !important;
}

.form-tour .ff-btn-submit,
.form-tour button[type="submit"],
.form-tour .pulsante.pulsante-1 {
  min-width: 185px;
  min-height: 50px;
  padding: 13px 44px 15px;
  border: 0 !important;
  border-radius: 50px;
  background: var(--color-primary) !important;
  color: #fff !important;
  font-family: var(--fonttesto);
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: 1px;
  line-height: normal;
  text-align: center;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .3s ease, color .3s ease;
}

.form-tour .ff-btn-submit:hover,
.form-tour button[type="submit"]:hover,
.form-tour .pulsante.pulsante-1:hover {
  background: var(--color-primary-light) !important;
  color: #fff !important;
}

/* Errori */
.form-tour .ff-el-is-error .ff-el-form-control {
  border: 1px solid var(--color-primary-light) !important;
}

.form-tour .text-danger,
.form-tour .error {
  margin-top: 8px;
  color: var(--color-primary-light);
  font-family: var(--fonttesto);
  font-size: 1.2rem;
}

/*IUBENDA*/
#iub-legal-footer{
display:none!important;
}
/* ===============================
RESIZE - BOOTSTRAP
=============================== */

/* XXL: < 1400px */
@media (max-width: 1399.98px) {
}

/* XL: < 1200px */
@media (max-width: 1199.98px) {
  .home-flex-intro,
  .home-flex-destinazioni,
  .footer-flex {
    flex-direction: column;
    align-items: stretch;
  }

  .home-flex-intro > .col-img,
  .home-flex-intro > .col-txt,
  .home-flex-destinazioni > .col-txt,
  .home-flex-destinazioni > .col-img,
  .footer-flex > div:first-child,
  .footer-flex > div:last-child {
    flex: 0 1 auto;
  }

  .loop-tour {
    flex-wrap: wrap;
  }

  .carta-tour,
  .carta-tour.active,
  .carta-tour.is-faded {
    flex: 0 1 calc(50% - 12px);
    min-height: 465px;
  }

  .tour-hero-card {
    max-width: 62%;
  }

  .dettaglio-hero-content,
  .richiesta-flex {
    gap: 6%;
  }

  .dettagli-tour-info,
  .liste-tour,
  .vantaggi-tour {
    gap: 4%;
  }

  .about-flex,
  .about-testo-flex {
    gap: 7%;
  }

  .about-icone-flex {
    gap: 7%;
  }

  .box-destinazioni {
    background: #fff;
  }

  .box-destinazioni:after {
    bottom: -33px;
  }

  .box-destinazioni .col-img {
    margin-top: 30px;
  }

  .mappa-italia svg {
    width: 60%;
  }

  .contatti-flex {
    gap: 7%;
  }

  .contatti-info h1 {
    line-height: 1.08;
  }
}

/* LG: < 992px */
@media (max-width: 991.98px) {
  .carousel-loop-tour .loop-tour {
    min-height: 520px;
  }

  .carousel-tour-slide {
    flex-basis: calc((100% - (var(--carousel-gap) * 2)) / 3);
  }

  .carousel-tour-slide.is-outside .carta-tour {
    opacity: 0;
  }

  .carousel-tour-slide.is-edge {
    display: none;
  }

  .loop-tour-classico .carta-tour {
    flex: 0 1 calc(50% - 12px);
  }

  .dettaglio-hero-content,
  .richiesta-flex,
  .about-flex,
  .about-icone-flex,
  .about-testo-flex {
    flex-direction: column;
    align-items: stretch;
  }

  .tour-hero-card {
    width: 100%;
    max-width: 100%;
  }

  .dettaglio-hero .pulsante {
    align-self: flex-start;
    margin: 35px 0 0;
  }

  .gallery-tour-list,
  .dettagli-tour-info,
  .liste-tour,
  .vantaggi-tour {
    flex-wrap: wrap;
  }

  .gallery-tour-list img,
  .dettagli-tour-info > div,
  .liste-tour > div,
  .vantaggi-tour > div {
    flex: 0 1 calc(50% - 12px);
  }

  .richiesta-flex > .col-txt,
  .about-flex > .col-img,
  .about-flex > .col-txt,
  .about-icone-flex > div,
  .about-testo-flex > div {
    flex: 0 1 auto;
  }

  .about-icone-flex > div {
    align-items: center;
    margin-bottom: 55px;
  }

  .contatti-flex,
  .form-contatti .form-privacy {
    flex-direction: column;
    align-items: stretch;
  }

  .contatti-info {
    flex: 0 1 auto;
  }

  .form-contatti .form-privacy .pulsante {
    margin-left: 0;
  }
}

/* MD: < 768px */
@media (max-width: 767.98px) {
  .fascia-alta-header {
    display: none;
  }

  .main-content-header {
    height: 105px;
  }

  .container-logo-header {
    width: 210px;
  }

  .apri-menu-lat {
    gap: 14px;
  }

  .hamburger {
    width: 30px;
    height: 21px;
  }

  .chiudi-menu-lat {
    top: 6%;
    right: 7%;
    gap: 18px;
  }

  .icona-chiudi {
    width: 42px;
    height: 42px;
  }

  .navigazione-menu-lat {
    justify-content: center;
    padding: 0 7%;
  }
    
  .menu-lat {
    align-items: center;
    gap: 40px;
  }

  .menu-lat a {
    font-size: 3.2rem;
    letter-spacing: 6px;
  }
  .container-lingue{
    margin-left:auto;
    margin-right:auto;
    }
    .social-menu-lat {
    align-items: center;
    justify-content: flex-end;
    margin-right: 0;
    flex-direction: column;
    }
  .slider-apertura {
    padding-top: 130px;
  }

  .contenuto-slider {
    height: calc(100vh - 130px);
  }

  .contenuto-slider h1,
  .col-txt h2,
  .titolo-sezione h2,
  .about-flex .col-txt h1,
  .about-testo h2 {
    line-height: 1.08;
  }

  .categoria-apertura {
    padding-top: 160px;
  }

  .categoria-apertura .col-txt h1 {
    line-height: 1.08;
  }

  .titolo-categoria-con-svg {
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
  }

  .regione-categoria {
    flex: 0 1 auto;
    width: 130px;
  }

  .doppia-img,
  .lista-destinazioni,
  .loop-tour,
  .newsletter,
  .menu-footer-row,
  .gallery-tour-list,
  .start-finish,
  .dettagli-tour-info,
  .liste-tour,
  .vantaggi-tour,
  .richiesta-flex,
  .form-riga,
  .form-privacy,
  .riepilogo-tour,
  .about-gallery-list {
    flex-direction: column;
    align-items: stretch;
  }

  .doppia-img img,
  .lista-destinazioni ul,
  .carta-tour,
  .carta-tour.active,
  .carta-tour.is-faded,
  .gallery-tour-list img,
  .dettagli-tour-info > div,
  .liste-tour > div,
  .vantaggi-tour > div,
  .about-gallery-list img {
    flex: 0 1 auto;
    width: 100%;
  }

  .sez-img-txt {
    padding: 60px 0 75px;
  }

  .box-destinazioni {
    padding: 60px 0;
  }

  .icona-bike,
  .icona-uva,
  .watermark-tour {
    display: none;
  }

  .menu-footer {
    flex-wrap: wrap;
    justify-content: flex-start;
  }

  .container-footer {
    padding: 70px 0 0;
  }

  .dettaglio-hero-content {
    padding-top: 150px;
  }

  .tour-hero-card {
    padding: 35px 28px;
  }

  .riepilogo-tour table {
    font-size: 1.05rem;
  }

  .about-apertura {
    padding: 170px 0 70px;
  }

  .about-testo {
    padding: 70px 0 85px;
  }

  .about-testo-flex {
    gap: 0;
  }

  .about-testo-flex > div {
    width: 100%;
  }

  .about-testo-flex p {
    max-width: none;
  }

  .contatti-apertura {
    padding: 170px 0 80px;
  }

  .form-contatti .form-riga,
  .form-contatti .ff-t-container {
    flex-direction: column;
  }

  .form-contatti .ff-t-container {
    gap: 0;
  }

  .contatti-lista {
    margin-bottom: 55px;
  }

  .contatti-img {
    height: 360px;
  }

  .form-contatti .ff-el-group:has(.ff-el-form-check) {
    max-width: 100%;
    margin-bottom: 28px;
  }

  .form-contatti .ff_submit_btn_wrapper,
  .form-contatti .ff-el-group.ff_submit_btn_wrapper {
    justify-content: flex-start;
    margin-top: 0 !important;
  }

  .form-contatti .ff-btn-submit {
    position: static;
    width: 100%;
  }

  .form-tour .ff-t-container {
    flex-direction: column;
    gap: 0;
  }

  .form-tour .ff-el-group:has(.ff-el-form-check) {
    max-width: 100%;
    margin-bottom: 28px;
  }

  .form-tour .ff_submit_btn_wrapper,
  .form-tour .ff-el-group.ff_submit_btn_wrapper {
    position: static;
    width: 100%;
    justify-content: flex-start;
    margin-top: 0 !important;
  }

  .form-tour .ff-btn-submit,
  .form-tour button[type="submit"],
  .form-tour .pulsante.pulsante-1 {
    width: 100%;
  }
}

/* SM: < 576px */
@media (max-width: 575.98px) {
  .carousel-tour-viewport {
    padding: 30px 0;
  }

  .carousel-tour-slide {
    flex: 0 0 100%;
  }

  .carousel-tour-slide.is-near,
  .carousel-tour-slide.is-edge {
    display: none;
  }

  .carousel-loop-tour .carta-tour,
  .carousel-tour-slide.is-center .carta-tour {
    height: 465px;
    min-height: 465px;
    transform: scale(1) translateZ(0);
  }

  .loop-tour-classico .carta-tour {
    flex: 0 1 100%;
  }

  .carousel-tour-prev {
    left: 10px;
  }

  .carousel-tour-next {
    right: 10px;
  }

  .tour-hero-card h1,
  .tour-dettagli h2,
  .richiesta-flex > .col-txt h2 {
    line-height: 1.08;
  }

  .riepilogo-tour {
    overflow-x: auto;
  }

  .riepilogo-tour table {
    min-width: 620px;
  }

  .form-newsletter .ff_submit_btn_wrapper,
  .form-newsletter .ff-el-group:has(button[type="submit"]) {
    justify-content: stretch;
  }

  .form-newsletter button[type="submit"],
  .form-newsletter .ff-btn-submit,
  .form-newsletter .pulsante.pulsante-2 {
    width: 100%;
  }
}

/* ===============================
ANIMAZIONI
=============================== */
.anim {
  opacity: 0;
  transition: all .7s cubic-bezier(0.25, 0.1, 0.25, 1);
  will-change: transform, opacity;
  transition-delay: 0.2s;
}

.fade-up {
  transform: translateY(40px);
}

.fade-up.visibile {
  opacity: 1;
  transform: translateY(0);
}

.fade-down {
  transform: translateY(-40px);
}

.fade-down.visibile {
  opacity: 1;
  transform: translateY(0);
}

.fade-left {
  transform: translateX(-40px);
}

.fade-left.visibile {
  opacity: 1;
  transform: translateX(0);
}

.fade-right {
  transform: translateX(40px);
}

.fade-right.visibile {
  opacity: 1;
  transform: translateX(0);
}

.fade-in {
  opacity: 0;
}

.fade-in.visibile {
  opacity: 1;
}

/* ===============================
RESIZE AGGIUNTIVO - ESCLUDIBILE
Regole responsive extra tenute separate dal resize principale.
Se serve tornare al comportamento base, rimuovere questo blocco.
=============================== */

/* XL: < 1200px */
@media (max-width: 1199.98px) {
  .container.container-big {
    max-width: 92%;
  }

  .XXL,
  .XXL * {
    font-size: 8.6rem;
  }

  .XL,
  .XL * {
    font-size: 5.4rem;
  }

  .categoria-apertura .col-txt h1 {
    line-height: 8.6rem;
  }

  .box-destinazioni .icona-bike,
  .box-destinazioni .icona-uva {
    display: none;
  }

  .box-destinazioni .home-flex-destinazioni {
    align-items: center;
    gap: 55px;
    text-align: center;
  }

  .box-destinazioni .home-flex-destinazioni > .col-txt,
  .box-destinazioni .home-flex-destinazioni > .col-img {
    width: 100%;
    max-width: 780px;
    margin-right: auto;
    margin-left: auto;
  }

  .box-destinazioni .home-flex-destinazioni > .col-txt {
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .box-destinazioni .col-txt p {
    margin-right: auto;
    margin-left: auto;
  }

  .box-destinazioni .lista-destinazioni {
    justify-content: center;
    max-width: 620px;
    margin-right: auto;
    margin-left: auto;
    text-align: left;
    gap: 0;
  }

  .box-destinazioni .col-img {
    display: flex;
    justify-content: center;
    margin-top: 10px;
  }

  .box-destinazioni .mappa-italia {
    width: min(760px, 100%);
    margin-right: auto;
    margin-left: auto;
  }

  .box-destinazioni .mappa-italia svg {
    width: 100%;
    max-width: 760px;
    margin-right: auto;
    margin-left: auto;
  }

  .box-destinazioni .watermark-tour.watermark-tour-sx {
    left: 50%;
    max-width: 680px;
    transform: translateX(-50%);
    opacity: .45;
  }
}

/* LG: < 992px */
@media (max-width: 991.98px) {
  .carousel-loop-tour {
    --carousel-gap: 20px;
    --carousel-card-height: 440px;
  }

  .carousel-loop-tour .loop-tour.carousel-tour-track {
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    min-height: 500px;
  }

  .carousel-tour-slide {
    flex: 0 0 calc((100% - 40px) / 3);
  }

  .carousel-tour-slide.is-outside .carta-tour {
    opacity: 0;
  }

  .about-apertura,
  .categoria-apertura {
    padding-top: 190px;
  }

  .home-flex-intro,
  .about-flex,
  .richiesta-flex,
  .footer-flex {
    gap: 55px;
  }

  .regione-categoria {
    position: relative;
    top: auto;
    right: auto;
    width: 190px;
    margin-bottom: 20px;
  }

  .footer-flex,
  .newsletter {
    gap: 45px;
  }

  .newsletter .titolo {
    text-align: left;
  }
}

/* MD: < 768px */
@media (max-width: 767.98px) {
  .container.container-big {
    max-width: 88%;
  }

  .XXL,
  .XXL * {
    font-size: 6.4rem;
  }

  .XL,
  .XL * {
    font-size: 4.4rem;
  }

  .M,
  .M * {
    font-size: 3.1rem;
    line-height: 3.4rem;
  }

  .carousel-loop-tour {
    --carousel-gap: 18px;
    --carousel-card-height: 430px;
    overflow: hidden;
  }

  .carousel-tour-viewport {
    overflow: visible;
    padding: 25px 0 55px;
  }

  .carousel-loop-tour .loop-tour.carousel-tour-track {
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    gap: var(--carousel-gap);
    min-height: 460px;
  }

  .carousel-tour-slide {
    flex: 0 0 78%;
    display: flex;
  }

  .carousel-loop-tour .carta-tour,
  .carousel-loop-tour .carta-tour.active,
  .carousel-loop-tour .carta-tour.is-faded {
    width: 100%;
    height: var(--carousel-card-height);
    min-height: 0;
    flex: none;
    opacity: .45;
    filter: brightness(.7);
    transform: scale(.9) translateZ(0);
  }

  .carousel-tour-slide.is-near .carta-tour {
    opacity: .75;
    filter: brightness(.85);
    transform: scale(.94) translateZ(0);
  }

  .carousel-tour-slide.is-center .carta-tour {
    opacity: 1;
    filter: brightness(1);
    transform: scale(1) translateZ(0);
  }

  .carousel-tour-slide.is-outside .carta-tour {
    opacity: 0;
  }

  .carousel-tour-arrow {
    top: auto;
    bottom: 0;
    width: 42px;
    height: 42px;
    transform: none;
  }

  .carousel-tour-arrow:hover {
    transform: scale(1.05);
  }

  .carousel-tour-prev {
    left: calc(50% - 52px);
  }

  .carousel-tour-next {
    right: calc(50% - 52px);
  }

  .slider-apertura,
  .contenuto-slider {
    min-height: 680px;
  }

  .contenuto-slider {
    height: auto;
  }

  .doppia-img {
    gap: 22px;
    flex-direction: row;
    overflow-x: scroll;
    scrollbar-width: thin;
    scrollbar-color: var(--color-primary) var(--color-neutral-light);
  }

  .doppia-img::-webkit-scrollbar {
    height: 8px;
  }

  .doppia-img::-webkit-scrollbar-track {
    background: var(--color-neutral-light);
    border-radius: 20px;
  }

  .doppia-img::-webkit-scrollbar-thumb {
    background: var(--color-primary);
    border-radius: 20px;
  }

  .doppia-img::-webkit-scrollbar-thumb:hover {
    background: var(--color-primary-light);
  }

  .doppia-img img {
    min-width: 60vw;
  }

  .titolo-sezione {
    margin-bottom: 48px;
  }

  .menu-lat a {
    font-size: 3rem;
    letter-spacing: 5px;
  }

  .container-menu-lat {
    width: 100%;
  }

  .form-tour input,
  .form-tour textarea,
  .form-newsletter input {
    min-height: 56px;
  }

  .fascia-bassa-footer p {
    text-align: center;
  }
}

/* SM: < 576px */
@media (max-width: 575.98px) {
  .container.container-big {
    max-width: 90%;
  }

  .XXL,
  .XXL * {
    font-size: 5.2rem;
  }

  .XL,
  .XL * {
    font-size: 3.7rem;
  }

  .S,
  .S * {
    font-size: 1.6rem;
    line-height: 2.4rem;
  }

  .XS,
  .XS * {
    font-size: 1.35rem;
    line-height: 1.9rem;
  }

  .carousel-loop-tour {
    --carousel-gap: 16px;
    --carousel-card-height: 400px;
  }

  .carousel-tour-slide {
    flex: 0 0 84%;
  }

  .carousel-loop-tour .loop-tour.carousel-tour-track {
    min-height: 430px;
  }

  .carousel-loop-tour .carta-tour h3 {
    font-size: 3rem;
    line-height: 3.2rem;
  }

  .carousel-tour-slide.is-near .carta-tour {
    opacity: .55;
    filter: brightness(.75);
    transform: scale(.9) translateZ(0);
  }

  .header .testo.XS,
  .apri-menu-lat .testo.XS {
    font-size: 1.2rem;
  }

  .container-logo-header {
    width: 180px;
  }

  .slider-apertura,
  .contenuto-slider {
    min-height: 600px;
  }

  .contenuto-slider h1 {
    margin-bottom: 22px;
  }

  .pulsante {
    padding: 10px 28px 12px;
  }

  .carta-tour h3 {
    font-size: 3rem;
    line-height: 3.3rem;
  }

  .gallery-tour {
    --gallery-gap: 16px;
    padding: 45px 0 65px;
  }

  .menu-footer {
    gap: 18px 28px;
  }

  .newsletter h2 {
    line-height: 1.1;
  }
}

/* XS: < 450px */
@media (max-width: 450px) {
  .XXL,
  .XXL * {
    font-size: 4.4rem;
  }

  .XL,
  .XL * {
    font-size: 3.2rem;
  }

  .carousel-tour-slide {
    flex: 0 0 88%;
  }

  .carousel-loop-tour {
    --carousel-card-height: 370px;
  }

  .carousel-loop-tour .carta-tour h3 {
    font-size: 2.6rem;
    line-height: 2.9rem;
  }

  .hamburger {
    width: 28px;
    height: 19px;
  }

  .menu-lat a {
    font-size: 2.6rem;
    letter-spacing: 4px;
  }

  .social-menu-lat {
    justify-content: center;
    margin-right: 0;
  }

  .regione-categoria {
    width: 115px;
  }
}