body, html{
  font-size:1rem;  
  font-weight:500;
  height:100%;
  font-family: "Montserrat", sans-serif;
  background: var(--color-bg);
}
*, *:before, *:after{box-sizing: border-box;position:relative;margin:0;padding:0;border:0;}  


.my__container{
  min-height:100vh;
  display:flex;
  flex-direction: column;
}

/** INIZIO - colori */
:root {
  /* COLOR HEADER */
  --color-bg-header:#fff;
  --color-link-menu:#1263b4;
  --color-link-menu-hover:#edd220;
  --color-bg-booking: #092d52;
  --color-bg:#f9f9f9;
  --color-title:#1263b4;
  --color-border:#1263b4;  
  --color-link-hover:#F28415;
  --color-bg-button:#F28415;
  --color-bg-button-hover:#96b2cf;
  --color-text:#1263b4;
  --color-bianco:#fff;
  --color-celeste:#dae8f6;  
}
/** FINE - colori */

.my_container_100{width:100%;min-height:100px;z-index:15;  display: flow-root;flex:1}
.my_container_80{width:80%; max-width:1250px;min-height:200px;margin:90px auto;position: relative;z-index:16;}
.my_container_flex_80{width:80%; max-width:1250px;min-height:200px;margin:100px auto;position: relative;z-index:16;display: flex;justify-content: space-between;align-items: center;flex-direction: row;flex-wrap: wrap;}

.col-15{width:15%;}
.col-31{width:31%;}
.col-31-custom-str{width:31%;min-height:50px;display: flex;flex-wrap: wrap;justify-content: center;}
.col-40{width:40%;}
.col-47{width:47%;}
.col-50{width:50%;}
.col-60{width:60%;}
.col-65-custom-back{width:65%;}
.col-85{width:85%;}
.col-100{width:100%;}



/* ! UTILITY */
.grid--flex{display: flex;justify-content: center;align-items: center;flex-direction: column;}
.grid--flex-row{display: flex;justify-content: center;align-items: center;flex-direction: row;}
.grid--flex--between{display: flex;justify-content: space-between;align-items: center;flex-direction: row;flex-wrap: wrap;}
.grid--flex-stretch{align-items: stretch;}

.card{width:100%;}

.order-1{order: 1;}
.order-2{order: 2;}
.order-3{order: 3;}

.overH{overflow: hidden;}
/*  */

/* ! HELPER */
.spaziatura{margin-top:40px; margin-bottom:40px;}

.w-100{width:100%;}
.icon-medium{font-size:1.4rem;margin:0 5px;color:#edd220;}
.icon-star-logo{font-size:0.9rem;color:#edd220;}

.ml--30 {margin-left:-35%;}

.bor{border:var( --color-border) solid 1px;}

.titolo_div{width:100%; margin:40px 0 60px 0;}
.titolo_div_card{width:100%;margin-top:20px; margin-bottom:30px;text-align:center;padding:10px;}

.img-res{width:100%; height:auto;display: block;}
.b-round{border-radius: 100%;}
.b-rad-10{border-radius: 11% 0 15% 0;}
.bor-10{border:var( --color-border) solid 1px;border-radius:10% 0 10% 0;}

.ta-c{text-align: center;}
.ta-l{text-align: left;}
.ta-j{text-align: justify;}

.upp{text-transform: uppercase;}
.cap{text-transform: capitalize;}

.list{color:var(--color-text);margin:20px 0;font-weight:500;}

.bg-col-02{background-color:#c4dff6;}
.bg-07{background: linear-gradient(0deg, rgba(255,255,255,0.7) 100%, rgba(255,255,255,0.7) 100%);}

.bg-05{background: linear-gradient(0deg, rgba(255,255,255,0.5) 100%, rgba(255,255,255,0.5) 100%);}

.testo-giallo{color:var(--color-link-menu-hover);}

.pad-20{padding:20px;}
.pad-30{padding:30px;}

.mar-t-40{margin-top:40px;}
.mar-b-20{margin-bottom:20px;}
.mar-l-20{margin-left:20px;}

.mar-10{margin:10px auto;}

.gap1{gap:1rem;}

.project-card {transition: transform 0.3s;}
.project-card:hover {transform: scale(1.05);}
/* */

@media (max-width: 768px){
  .my_container_80,
  .my_container_flex_80{width:95%;}
  .my_container_flex_80{justify-content:center;align-items: center;}

  .col-31{width:80%;}
  .col-31-custom-str{width:80%;}
  .col-40,
  .col-47,
  .col-50,
  .col-60,
  .col-65-custom-back,
  .col-100{width:100%;}

  .order-mb-1{order:1 !important;}
  .order-mb-2{order:2 !important;}
  .order-mb-3{order:3 !important;}

  .ml--30{margin-left:0;margin-top:-30%;}
  .mb-sma-20{margin-bottom:30px;}
}

/** INIZIO - FONT */
h1,
h2,
h3{font-family: "Tangerine", cursive;color:var(--color-title);font-weight:600;letter-spacing:1px;text-align: center;  width:100%;}

h1{font-size:4rem;}
h2{font-size:3.6rem;}
h3{font-size:2.6rem;}

h4{font-size:1rem;color:var(--color-title);font-weight:400;letter-spacing:1px;}
.text-1{font-size:4.2rem;}
.text-2{font-size:3.2rem;}

.text-3{font-size:2.6rem;}
.text-4{font-size:2.2rem;margin:0;padding:0;}
.text-04-booking{color:#fff; font-weight:600;text-transform: uppercase;}

.text-05-link{font-size:0.9rem; text-align: center;font-weight: 500;letter-spacing: 1px;}
/*.text-05-link a{text-decoration: none;color:var(--color-link-hover);}
.text-05-link a:hover{color:var(--color-title);}*/

p{color:var(--color-text);margin:20px 0;font-weight:600;text-align: justify;}
@media (max-width: 768px){}
/** FINE - FONT */

/* ! INIZIO - BOTTONI */
.call_to_action_disabled{
  display: inline-block;
  padding: 10px 20px;
  font-size: 0.8rem;
  background-color:#5b5d5e;
  color:#fff;  
  text-decoration: none; /* Rimuove la sottolineatura */
  position: relative;
  overflow: hidden;
  transition: color 0.4s ease-in-out; /* Transizione per il testo */
  z-index: 1;
  border-radius:50px 0 50px 0;
  font-weight:600;
  text-transform: uppercase;
  letter-spacing: 1px;
  font-family: "Montserrat", sans-serif;
}

.call_to_action, .call_to_action_2{
  display: inline-block;
  padding: 10px 20px;
  font-size: 0.8rem;
  /*background-color:#092d52;*/
  background-color:#1263b4;
  color:#fff;
  /*border: #edd220 solid 2px;*/
  text-decoration: none; /* Rimuove la sottolineatura */
  position: relative;
  overflow: hidden;
  transition: color 0.4s ease-in-out; /* Transizione per il testo */
  z-index: 1;
  border-radius:50px 0 50px 0;
  font-weight:600;
  text-transform: uppercase;
  letter-spacing: 1px;
  font-family: "Montserrat", sans-serif;
}
.call_to_action_2{
  position:absolute;
  text-transform: uppercase;
  bottom:30px;
  left:30px;
}
/* Ombra animata */
.call_to_action::before, .call_to_action_2::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%; /* Partenza fuori dal bottone */
  width: 100%;
  height: 100%;  
  background-color: var(--color-link-menu-hover);
  box-shadow: inset 0 0 0 0 var(--color-link); /* Aggiunge profondità */
  transition: left 0.4s ease-in-out; /* Animazione fluida */
  z-index: -1; /* Sfondo sotto il testo */
}

/* Effetto hover */
.call_to_action:hover::before, .call_to_action_2:hover::before {
  left: 0; /* L'ombra si espande da sinistra verso destra */  
}
.call_to_action:hover{color:#1263b4;}

/* ! call to action link */
.call_to_action_link{
  display: inline-block;
  padding: 10px 20px;  
  /*background-color:#092d52;*/
  background-color: #0077cc;
  color:#fff;
  /*border: #edd220 solid 2px;*/
  text-decoration: none; /* Rimuove la sottolineatura */
  position: relative;
  overflow: hidden;
  transition: color 0.4s ease-in-out; /* Transizione per il testo */
  z-index: 1;
  border-radius:50px 0 50px 0;
}

/* Ombra animata */
.call_to_action_link::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%; /* Partenza fuori dal bottone */
  width: 100%;
  height: 100%;  
  background-color: var(--color-link-menu-hover);
  box-shadow: inset 0 0 0 0 var(--color-link); /* Aggiunge profondità */
  transition: left 0.4s ease-in-out; /* Animazione fluida */
  z-index: -1; /* Sfondo sotto il testo */
}

/* Effetto hover */
.call_to_action_link:hover::before {
  left: 0; /* L'ombra si espande da sinistra verso destra */
}
/**/

/* Cambia il colore del testo */
.call_to_action_link:hover {color:var(--color-link-menu);font-weight:600;}


.text-link{
  overflow: hidden;
  z-index: 1;
  display: inline-block;
  position: relative;
  font-weight: 600;
  color: #1a85f0;
  text-decoration: none;
  transition: color 0.4s ease-in-out;
  padding: 0 2px; /* protegge il testo attiguo */
  line-height: 1.2em; /* forza stessa altezza della riga */
  vertical-align: text-bottom; /* <<< cruciale */
}
.text-link::before{
  content: "";
  position: absolute;
  top: 0;
  left: -100%; /* Partenza fuori dal bottone */
  width: 100%;
  height: 100%;  
  background-color:#edd220;
  box-shadow: inset 0 0 0 0 var(--color-link); /* Aggiunge profondità */
  transition: left 0.4s ease-in-out; /* Animazione fluida */
  z-index: -1; /* Sfondo sotto il testo */
}
.text-link:hover::before{left:0;}
.text-link:hover{color:#1263b4;}
/** FINE - BOTTONI */


/* ! INIZIO - BACKGROUND E COVER */
/*.my__container_100{}*/
.my__container_100_cover{width:100%; min-height:70vh;border-radius: 10% 0 10% 0;flex:1;}
.my__container_img_bg{position: absolute;top: 0;left: 0;width: 100%;height: 100%;object-fit: cover;z-index: 1;border-radius: 10% 0 10% 0;}
.my__container_overlay{position: absolute; background: rgba(0, 0, 0, 0.5); width:100%;height:100%;z-index:2;border-radius: 10% 0 10% 0;}

.text-2-bg{font-size:3.2rem;padding:5px 10px;color:#edd220;}
.text-3-bg{font-size:3.2rem;padding:5px 10px;color:#fff;background: rgba(18, 99, 180, 0.4);}
.text-4-bg{font-size:3.2rem;padding:5px 10px;color:#fff;background: rgba(18, 99, 180, 0.4);}
.text-5-bg{font-size:3.2rem;padding:5px 10px;color:#edd220;background: rgba(18, 99, 180, 0.6);}

/*.my_container_100_cover {
  position: relative;
  width: 100%;
  height: 70vh;
  overflow: hidden;
  border-radius: 10% 0 10% 0;
  display:flex;
  justify-content:center;
  align-items: center;
}
.my_container_100_cover::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.4); 
  z-index: 3;
}*/

.hero-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 1;
}

.hero-content {
  position: relative;
  z-index: 2;
  padding: 10px 20px;
  text-align: center;
  color: var(--color-title);
  border-radius:20% 0 20% 0;
}
/* ! FINE - BACKGROUND E COVER */

/** ********************* */
/** INIZIO - CUSTOM SHAPE */
/** ********************* */
.custom-shape-top{
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  overflow: hidden;
  line-height: 0;
  transform: rotate(180deg);
  z-index:1;
}
.custom-shape-bottom{
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 100%;
  overflow: hidden;
  line-height: 0;
  transform: rotate(180deg);
  z-index:1; 
}

.custom-shape-top svg,
.custom-shape-bottom svg{
  position: relative;
  display: block;
  width: calc(100% + 1.3px);
  height: 200px;  
}
.custom-shape-top .shape-fill,
.custom-shape-bottom .shape-fill{ /*fill: #f2f3fa;*/ fill:var(--color-bg);}
/** ********************* */

/** INIZIO - FORM PRENOTAZIONE */
.form-group {margin-bottom: 20px;}

.form-group label,
.form-group input {display: block;color:var(--color-text); font-size:0.9rem;padding:10px 5px;font-family: "Montserrat", sans-serif;}

.form-group-2 label,
.form-group-2 input {display: block;color:var(--color-text); font-size:0.9rem;padding:10px 5px;font-family: "Montserrat", sans-serif;}


.form-group input {width:100%;border-radius: 6px;box-sizing: border-box;  transition: border-color 0.3s ease;}
.form-group input:focus {border-color: #fca709;outline: none;}
#msg{display:block; color:var(--color-text);border-radius: 10px; font-size:0.9rem;padding:5px;width:100%;height:120px;font-family: "Montserrat", sans-serif;}
/** FINE - FORM PRENOTAZIONE */

* html .clearfix             { zoom: 1; } /* IE6 */
*:first-child+html .clearfix { zoom: 1; } /* IE7 */


/* ! SCROLL TOP */
.top{
  cursor: pointer;
  position:fixed;
  bottom:50px;
  border-radius: 100%;
  right:50px;
  font-size:1.5rem;
  border:#edd220 solid 2px;
  z-index:100;
  width:50px;
  height:50px;
  text-align: center;
  line-height: 50px;
  color:#edd220;
  background-color:#1263b4;
  display:none;
}
.showTop{display:block;}


/** INIZIO - FLASH MESSAGE */
.flash_message{
  position:fixed;
  top:5vh;
  left:5vh;
  border:#000 solid 1px;
  padding:1vh;
/*  width:300px;*/
  font-weight:600;
  font-size:0.9rem;
  letter-spacing: 1px;
  background-color:#fff;
  z-index:200;
  animation-name: shownum;
  opacity: 1;
  animation-duration: 1s;
  animation-delay: 7s;
  animation-fill-mode: forwards;
}
.flash_message_2{
  position:fixed;
  top:10vh;
  left:5vh;
  border:#000 solid 1px;
  padding:1vh;
/*  width:300px;*/
  font-weight:600;
  font-size:0.9rem;
  letter-spacing: 1px;
  background-color:#fff;
  z-index:200;
  animation-name: shownum;
  opacity: 1;
  animation-duration: 1s;
  animation-delay: 7s;
  animation-fill-mode: forwards;
}
.flash_message_warning{color:#F28415;}
.flash_message_info{color:rgb(58, 141, 58);}

.circle {
  /*position: absolute;*/
  width: 200px; /* Dimensione del cerchio */
  height: 200px;
  border-radius: 50%; /* Rende il div un cerchio */
  background: radial-gradient(circle, rgba(255, 255, 255, 0.7), rgba(255, 0, 0, 0.2));
  border: 2px solid rgba(255, 0, 0, 0.5); /* Bordo semi-trasparente */
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
}

@keyframes shownum {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
/** FINE - FLASH MESSAGE */


/* ! INIZIO HOME PAGE: */
/*.my_container_100_cover_home{
  position: relative;
  width: 100%;
  height: 100vh;
  overflow: hidden;  
  display:flex;
  justify-content: center;
  align-items: center;
}*/
.my__div_button_tablet_homepage{display: none;}
.my__div_button_smartphone_homepage{display: none;}


@media (max-width: 998px){
  .my__div_button_homepage{display: none;}
  .my__div_button_tablet_homepage{display: inline-block;}
}
@media(max-width:760px){
  .my__div_button_tablet_homepage{display: none;}
  .my__div_button_smartphone_homepage{display: inline-block;}
}
/* ! FINE HOME PAGE: */

/*

.my_container_100_cover {
  position: relative;
  width: 100%;
  height: 90vh;
  overflow: hidden;
  border-radius: 10% 0 10% 0;
  display:flex;
  justify-content: center;
  align-items: center;
}

.hero-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 1;  
}

.hero-content {
  position: relative;
  z-index: 2;
  padding: 40px;
  text-align: center;
  color: var(--color-title);
  border-radius:20% 0 20% 0;
}
  */

/* ! INIZIO SLIDESHOW */
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 15px;
  /*max-width: 1200px;*/
  margin: 0 auto;
  padding: 20px;
}

.gallery-grid a {
  display: block;
  overflow: hidden;
  border-radius: 8px;
}

.gallery-grid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.3s ease;
}

.gallery-grid img:hover {
  transform: scale(1.05);
}
.lb-cancel, .lb-close, .lb-next, .lb-prev, .lb-loading {
  background: none;
}
    .lb-close {
        background: url('../images/close.png') no-repeat center;
    }
    .lb-prev {
        background: url('../images/prev.png') no-repeat center;
    }
    .lb-next {
        background: url('../images/next.png') no-repeat center;
    }
    .lb-loading {
        background: url('../images/loading.gif') no-repeat center;
    }

/* ! FINE SLIDESHOW */