/* league-spartan-100 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'League Spartan';
  font-style: normal;
  font-weight: 100;
  src: url('../fonts/league-spartan-v15-latin-100.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* league-spartan-200 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'League Spartan';
  font-style: normal;
  font-weight: 200;
  src: url('../fonts/league-spartan-v15-latin-200.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* league-spartan-300 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'League Spartan';
  font-style: normal;
  font-weight: 300;
  src: url('../fonts/league-spartan-v15-latin-300.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* league-spartan-regular - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'League Spartan';
  font-style: normal;
  font-weight: 400;
  src: url('../fonts/league-spartan-v15-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* league-spartan-500 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'League Spartan';
  font-style: normal;
  font-weight: 500;
  src: url('../fonts/league-spartan-v15-latin-500.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* league-spartan-600 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'League Spartan';
  font-style: normal;
  font-weight: 600;
  src: url('../fonts/league-spartan-v15-latin-600.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* league-spartan-700 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'League Spartan';
  font-style: normal;
  font-weight: 700;
  src: url('../fonts/league-spartan-v15-latin-700.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* league-spartan-800 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'League Spartan';
  font-style: normal;
  font-weight: 800;
  src: url('../fonts/league-spartan-v15-latin-800.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* league-spartan-900 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'League Spartan';
  font-style: normal;
  font-weight: 900;
  src: url('../fonts/league-spartan-v15-latin-900.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* lobster-regular - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Lobster';
  font-style: normal;
  font-weight: 400;
  src: url('../fonts/lobster-v32-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* ==========================================================================
   VARIABILI E RESET GLOBALE
   ========================================================================== */
:root {
  --main-color: #ffddfc; 
  --text-color: #000;
}

* {
  box-sizing: border-box; 
  -webkit-tap-highlight-color: transparent;
}

html, body {
  overflow-x: hidden;
  margin: 0;
  padding: 0;
}

body {
  font-family: 'League Spartan', sans-serif;
  color: var(--text-color);
  font-size: 16px;
  line-height: 1.5;
  transition: opacity 1s ease;
}

/* ==========================================================================
   TIPOGRAFIA
   ========================================================================== */
h1, h2, h3, h4, h5, h6 {
  font-weight: normal;
  margin-top: 0;
  margin-bottom: .5rem;
  line-height: 1.2;
}

h1, h1 span, h1 a {
  font-size: 30px;
  line-height: 1;
  @media screen and (min-width: 769px) { 
    font-size: 40px; 
  }
  @media screen and (min-width: 1400px) {
    font-size: 48px; 
  }
}

.h2, h2, h2 span, h2 a {
  font-size: 30px;
  line-height: 1;
  @media screen and (min-width: 769px) { 
    font-size: 40px; 
  }
  @media screen and (min-width: 1400px) {
    font-size: 48px; 
  }
}

.h3, h3, h3 span, h3 a {
  font-size: 15px;
    line-height: 1;
    font-size: calc(1.3rem + .6vw);
  @media screen and (min-width: 769px) { font-size: 30px; }
}

h5{
  font-size: 1.25rem;
  font-weight: 500;
  margin: 0;
}

p {
  font-size: 16px;
  margin: 0;
  margin-bottom: 1rem;
  @media screen and (min-width: 769px) { font-size: 18px; }
}

a {
  color: inherit;
  text-decoration: none;
}

strong, b {
  font-weight: 700; 
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}

button, .bottone {
  appearance: none;
  background: none;
  border: none;
  outline: none;
  cursor: pointer;
}

ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.text-section ul {
  margin: 0 0 1.5em 1.5em;
  padding: 0;
  list-style: disc;        
}
.text-section a{
  text-decoration: underline;
}

.btn-icon{
    display: block;
    position: relative;
    height: 40px;
    width: 40px;
    border-radius: 999px;
    background-color: #fff;
    color: #202020;
    padding: 10px;
    svg{
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      width: 20px;
    }
}
.btn{
    display: inline-block;
    position: relative;
    border-radius: 999px;
    background-color: #f44379;
    color: #fff;
    width: max-content;
    padding: 5px 20px;
    margin: 0 auto;
}


/* ==========================================================================
   UTILITIES CLASSES
   ========================================================================== */
.desktop { display: none !important; }
.mobile { display: block !important; }

@media screen and (min-width: 769px) {
  .mobile { display: none !important; }
  .desktop { display: block !important; }
  
  body { font-size: 18px; } 
}
#site {
    min-height: 492px;
    margin-top: 60px;
    @media screen and (min-width: 769px) {
      margin-top: 72px;
    }
}

.left   { text-align: left; }
.center { text-align: center; }
.right  { text-align: right; }

.radius { 
  border-radius: 15px; 
  img {
      border-radius: 15px; 
  }
}
.relative{
  position: relative;
}
.absolute{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
    width: max-content;
    max-width: 90%;
}


.flex {
  display: flex;
  flex-direction: column;
  gap: 20px;
  justify-content: center;
  @media screen and (min-width: 769px) {
    flex-direction: row;
    align-items: center;
    & > * {
      flex: 1;
    }
  }
}

@media (min-width: 1000px) {
  .flex.flex-reverse {
    flex-direction: row-reverse;
  }
}

.square{
  aspect-ratio: 1/1;
  object-fit: cover;
}
.pad30{
  padding: 0 30px;
}
.p20 {
  padding: 20px;
  box-sizing: border-box;
}
.mt {
  margin-top: clamp(20px, 4vw, 40px);
}
.mb {
  margin-bottom: clamp(20px, 4vw, 40px);
}
.border-top{
  border-top: 1px solid;
}
.border-bottom{
  border-bottom: 1px solid;
}

.container { 
  margin: auto; 
  @media screen and (max-width: 640px) {
    padding-left: 20px;
    padding-right: 20px;
  }
  @media screen and (min-width: 620px) {
    max-width: 600px; 
  }
  @media screen and (min-width: 769px) {
    max-width: 720px; 
  }
  @media screen and (min-width: 992px) {
    max-width: 960px; 
  }
  @media screen and (min-width: 1200px) {
    max-width: 1140px; 
  }
  @media screen and (min-width: 1400px) {
    max-width: 1320px; 
  }
}

.flex-column { flex-direction: column; }
.flex-between { justify-content: space-between; }
.flex-center { justify-content: center; }
.flex-wrap { flex-wrap: wrap; }

.bg-main {
  background-color: var(--main-color);
}
section {
  padding: 40px 0;
  @media screen and (min-width: 769px) {
    padding: 50px 0; 
  }
  & + section {
    padding-top: 0;
  }
}

/* ==========================================================================
   LAYOUT: HEADER & MENU 
   ========================================================================== */


/* Il menu principale */
.main-navigation {
    display: inline-block;
}

/* La lente: inline subito dopo l'ultimo elemento del menu */
.menu-search-wrapper {
    position: fixed;
    right: 60px;
    top: 20px;
    @media (min-width: 1000px){
    display: inline-block;
    margin-left: 10px;
    position: relative;
    top: 3px;
    right: unset;
    }
}
.search-toggle {
    display: flex;
}

/* LA BARRA DI RICERCA: Nascosta di base e posizionata SOTTO il menu */
.menu-search-form-container {
    display: none; 
    position: absolute;
    top: 100%; 
    right: 0;  
    width: 100%; 
    background: #ffddfc;
    padding: 12px;
    z-index: 999;
}

/* Classe attivata via JS al clic */
.menu-search-form-container.is-active {
    display: block;
}

/* Stile veloce per l'interno del form */
.search-form {
    display: flex;
    gap: 5px;
    max-width: 500px;
    margin: auto;
}
.search-field {
    width: 100%;
    padding: 8px 12px;
    border-radius: 4px;
}
.search-submit {
    padding: 8px 15px;
    color: #fff;
    border: none;
    border-radius: 4px;
    cursor: pointer;
}

header {
  position: relative;
  z-index: 1000;

  .area-menu { 
    position: fixed;
    text-align: center;
    top: 0;
    width: calc(100%);
    align-items: center;
    padding: 9px 1rem;
    justify-content: space-between;
    background-color: var(--main-color);
    box-shadow: 0 8px 8px -4px #0000001a;
    display: flex;
    flex-direction: row;
    @media screen and (max-width: 1001px) {
      display: none;
    }

    &.fixed-menu {
      position: fixed;
      top: 0;
    }

    .logo img {
      max-height: 55px;
      @media screen and (max-width: 1001px) {
        width: 250px;
      }
    }

    .socials li {
      display: inline-block;
      a {
        position: relative;
        border: 1px solid var(--text-color);
        border-radius: 999px;
        height: 28px;
        width: 28px;
        display: inline-flex; 
        align-items: center;
        justify-content: center;

        i {
          position: static; 
          transform: none;
        }
      }
    }

    .main-menu {
      display: inline-block;
      
      ul {
        li {
          display: inline-block;
          position: relative; 
          margin: 0 5px;
          border-radius: 5px;

          &.current-menu-item{
            outline: 2px solid #ffffff59 !important;
          }
          &:hover{
              outline: 2px solid #ffffff59 !important;
            }
          a {
            font-weight: 400;
            font-size: 16px;
            color: #000;
            padding: 5px 20px;
            display: block;
          }

          &:hover > ul.sub-menu {
            display: block;
          }
        }

        ul.sub-menu {
          z-index: 999;
          position: absolute;
          top: 100%; /* Si attacca sotto alla voce principale */
          left: 0;
          margin: 0;
          padding: 0;
          width: 200px;
          display: none;
          background-color: #fff;
          box-shadow: 0px 2px 5px #0000001a;

          li {
            padding: 15px 20px;
            border-bottom: 1px solid #f1f1f1;
            text-align: left;
            width: 100%;
            display: block;
          }
        }
      }
    }
  }
}

@media screen and (min-width: 1001px) {
  .has-megamenu a::after {
      display: inline-block;
      margin-left: 8px;
      vertical-align: 2px;
      content: "";
      border-top: .3em solid;
      border-right: .3em solid transparent;
      border-bottom: 0;
      border-left: .3em solid transparent;
  }
}
.mega-menu {
    display: none;
    background-color: #ffddfc !important;
    color: #202020 !important;
    border-radius: 0;
    border: none;
    border-top: 1px solid;
    border-color: #202020 !important;
    position: absolute;
    width: 100%;
    height: max-content;
    top: 72px;
    left: 0;
    padding: 80px 20px;
    text-align: left;
    .mega-frame {
      width: 200px;
      overflow: hidden;
      position: absolute;
      top: 30px;
      right: 30px;
      img{
        width: 100%;
        height: 100%;
        object-fit: contain;
        object-position: center;
      }
    }
    .row{
      display: flex;
      gap: 20px;
      margin-top: 10px;
      .col-3{
        flex: 0 0 auto;
        width: 25%;
      }
      .col-4{
        flex: 0 0 auto;
        width: 33.33333333%;
      }
      .h3{
        font-size: 1.75rem;
      }
      li {
        a{
          font-size: 16px;
        }
        svg{
          vertical-align: middle;
          margin-right: 5px;
        }
      }
      .mega-btn {
            width: 50px;
            height: 50px;
            background-color: #f44379;
            position: relative;
            border-radius: .375rem;
            margin-right: 10px;
            display: inline-block;
            vertical-align: middle;
            top: -5px;
        svg{
          position: absolute;
          top: 50%;
          left: 50%;
          transform: translate(-50%, -50%);
          width: 25px;
          height: auto;
          color: #fff !important;
        }
      }
      .title-cat{
        text-transform: uppercase;
        font-size: 16px;
        letter-spacing: 1pt;
        font-weight: 700;
        padding-bottom: 15px;
        margin-bottom: 15px;
        border-bottom: 2px solid #000;
      }
    }
}



/* Responsive Mobile Layout */
.header-mobile,.menu-mobile{
  display: none;
}
@media screen and (max-width: 1000px) {
header{  
  .burger {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 25px;
    height: 16px;
    background: none;
    cursor: pointer;
    z-index: 1000;
    position: fixed; 
    top: 22px;
    right: 20px;

    span {
      display: block;
      height: 2px;
      background: #000;
      transition: 0.3s;
    }

    &.active {
      span:nth-child(1) { transform: rotate(45deg) translate(5px, 5px); }
      span:nth-child(2) { opacity: 0; }
      span:nth-child(3) { transform: rotate(-45deg) translate(5px, -5px); }
    }
  }

  .logo {
    position: fixed;
    display: flex;
    align-items: center;
    height: 60px;
    img {
      max-height: 60px;
      padding: 10px;
    }
  }

  .header-mobile {
    position: fixed;
    height: 60px;
    width: 100%;
    z-index: 900;
    transition: background 0.3s ease;
    background-color: var(--main-color); 
    /*box-shadow: 0 8px 8px -4px #0000001a;*/
    display: block;
    &.fixed-menu {
      position: fixed;
      top: 0;
    }
  }

  .menu-mobile {
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    height: 100dvh;
    background-color: var(--main-color); 
    flex-direction: column;
    display: flex;
    transform: translateX(120%);
    pointer-events: none;
    transition: transform 0.6s ease; 
    padding: 15px;
    overflow: auto;
    &.show {
      transform: translateX(0);
      pointer-events: auto;
    }

    nav {
      margin-top: 60px;
      
      & > ul > li {
        position: relative;
        margin-bottom: 25px;
        a {
          color: #202020;
          font-size: 30px;
        }
      }
    }

    .submenu-arrow {
      position: absolute;
      right: 18px;
      top: 10px;
      cursor: pointer;
      
      svg {
        width: 22px;
        height: 22px;
        stroke: #000;
        transition: transform 0.3s;
      }
    }

    .menu-item-has-children.open > .submenu-arrow svg {
      transform: rotate(90deg);
    }

    .sub-menu {
      /*display: none;*/
      margin: 0 20px;
      .sub-menu li a::before{    
        margin-right: 8px;
        font-weight: bold;
        content: "\f061";
        font-family: "Font Awesome 5 Free";
        color: #202020;
      }
      .titolo{
        > a{
          font-size: 22px;
          margin-bottom: 15px;
          border-bottom: 1px solid #afafaf;
          padding: 30px 10px 15px 0px;
          display: block;
          color: #202020;
          line-height: 1;
        }
        .sub-menu{
          margin: 0 0px;
          a{
            font-size: 18px;
            line-height: 30px;
          }
        }
      }
    }

    .prenotazione_area {
      padding: 20px;
    }
  }
}


.socials li {
      display: inline-block;
      a {
        position: relative;
        border: 1px solid var(--text-color);
        border-radius: 999px;
        height: 28px;
        width: 28px;
        display: inline-flex; 
        align-items: center;
        justify-content: center;
        margin-right: 5px;
        i {
          position: static; 
          transform: none;
        }
      }
    }

}

/* ==========================================================================
   FOOTER
   ========================================================================== */
footer {
  padding: 40px 10px;
  background-color: var(--main-color);
  text-align: center;
  .logo{
    max-width: 150px;
    margin: 30px auto;
  }
  p,p a, p span{
    font-size: 14px;
  }
    .socials {
      margin: 20px 0;
      li {
        display: inline-block;
        margin: 0 5px;
        a {
          position: relative;
          border: 1px solid var(--text-color);
          border-radius: 999px;
          height: 28px;
          width: 28px;
          display: inline-flex; 
          align-items: center;
          justify-content: center;

          i {
            position: static; 
            transform: none;
          }
        }
      }
    }
    .copyright {
      li {
        display: inline-block;
        &:not(:last-child)::after {
            content: "|";
            margin: 0 6px;
            color: #000000;
        }
        a {
          padding: 5px 5px;
          text-transform: uppercase;
          position: relative;
          display: inline-flex; 
          align-items: center;
          justify-content: center;
        font-size: 14px;
          i {
            position: static; 
            transform: none;
          }
        }
      }
    }
} 



/* ==========================================================================
   SECTIONS
   ========================================================================== */

.section-title{
  margin-top: 30px;
  display: inline-block;
  width: 100%;
  .sub-title{
    font-size: 1.25rem;
    margin: 0;
  }
  @media screen and (min-width: 769px) {
      margin-top: 50px;
  }
}


.section-hero{
  padding: 20px 10px;
  @media screen and (min-width: 769px) {
    padding: 0;
  }
  .slide-hero{
    overflow: hidden;     
    border-radius: 1rem;
    @media screen and (min-width: 769px) {
      border-radius: 0;
    }
  }
  .slide-hero .box{
    position: relative;    
    width: 100%;
    overflow: hidden;     
    display: flex;         
    justify-content: center;
    align-items: center;
    
    &::after {
      content: '';
      position: absolute;
      top: 0; left: 0; width: 100%; height: 100%;
      background-color: rgba(0, 0, 0, 0.33); 
      z-index: 1;
    }
    img{
      width: 100%;
      height: auto;
      display: block;
      aspect-ratio: 4 / 5;
      object-fit: cover;
      object-position: center;
      @media screen and (min-width: 769px) {
        aspect-ratio: 16 / 8;
      }
    }
    video{
      width: 100%;
      height: auto;
      display: block;
      aspect-ratio: 4 / 5;
      object-fit: cover;
      object-position: center;
      @media screen and (min-width: 769px) {
        aspect-ratio: 16 / 8;
      }
    }
    .slider-caption{

      .btn{
        background-color: transparent;
                color: #fff;
                border: 2px solid;
                border-color: #fff;
                border-radius: 999px;
                padding: 4px 20px;
                margin-top: 10px;
                display: inline-block;
      }
      h2{
          color: #fff;
          font-size: 40px;
          @media screen and (min-width: 769px) {
          font-size: 50px;
          }
          @media screen and (min-width: 1400px) {
          font-size: 70px;
          }
        }
      p{
          color: #fff;
          font-size: 18px;
          @media screen and (min-width: 769px) {
          font-size: 20px;
          }
           @media screen and (min-width: 1400px) {
          font-size: 30px;
          }
      }    
      position: absolute;    
      top: 50%;              
      left: 50%;           
      transform: translate(-50%, -50%);     
      z-index: 2;     
      width: 70%;  
      @media screen and (min-width: 769px) {
        width: 50%;
        transform: translate(-70%, -50%);     
      }
        
    }
  }
}

/* SLICK SLIDER */

.slick-prev, .slick-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.slick-prev {
  left: 10px;
}
.slick-next {
  right: 10px;
}
@media screen and (min-width: 769px) {
  .slick-prev {
  left: 5%;
  }
  .slick-next {
    right: 5%;
  }
}

.slick-prev svg, .slick-next svg {
    color: #202020;
    background-color: #fff;
    height: 22px;
    width: 22px;
    border-radius: 50%;
    padding: 10px;
    box-sizing: content-box;
}


ul.slick-dots {
  position: absolute;
  bottom: 20px;       
  left: 50%;          
  transform: translateX(-50%); 
  
  display: flex;      
  align-items: center;
  justify-content: center;
  
  list-style: none;   
  padding: 0!important;
  margin: 0!important;
  z-index: 10;        
}
.slick-dots li {
  display: inline-block;
  margin: 0 8px; 
  padding: 0;
  cursor: pointer;
}
.slick-dots li:only-child {
    display: none !important;
}
.slick-dots li button {
  font-size: 0; 
  line-height: 0;
  display: block;
  width: 12px;  
  height: 12px;
  padding: 0;
  cursor: pointer;
  color: #ffffff;
  background: #ffffff!important;
  border: 0;
  outline: none;
  border-radius: 50%;
  transition: all 0.3s ease;
}

/* --- STATO ATTIVO --- */
.slick-dots li.slick-active {
  border: 1px solid #ffffff; 
  padding: 5px;              
  border-radius: 50%;        
  vertical-align: middle;
}

.slider-hero .animate {
    opacity: 0;
    visibility: hidden;
    transition: opacity 1s ease-out, visibility 1s;
}

.slider-hero .animate.is-visible {
    opacity: 1;
    visibility: visible;
    transition-delay: 500ms;
}


/* --- CONTACT FORM --- */
*,
*::before,
*::after {
  box-sizing: border-box;
}
.cf7-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  margin-bottom: 20px;
}

.cf7-grid .field {
  display: flex;
  flex-direction: column;
}
.cf7-grid p{
  margin: 0;
}
.cf7-grid .full {
  grid-column: 1 / -1;
}
.wpcf7-list-item{margin: 0}
.wpcf7 input,
.wpcf7 textarea {
  width: 100%;
  padding: 10px;
  box-sizing: border-box;
}
.wpcf7-acceptance label {
  display: flex;
  gap: 10px;
  align-items: center;
  font-size: 14px;
}
@media (max-width: 768px) {
  .cf7-grid {
    grid-template-columns: 1fr;
  }
}

input,
textarea,
button,
select {
  font: inherit;
  color: inherit;
}
input,
textarea,
button {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border-radius: 0;
}
.section-contact form {
  max-width: 870px;
  margin: 0 auto;
  padding: 40px 20px;
}
input,
textarea {
  width: 100%;
  border: none;
  border-radius: 15px;
  padding: 12px 15px;
  outline: none;
  background: #fff;
  font-size: 18px;
}
button,
input[type="submit"] {
  -webkit-appearance: none;
  appearance: none;
  border: none;
  border-radius: 100px;
  padding: 12px 20px;
  cursor: pointer;
  color: #fff;
  transition: 0.2s ease;
  background-color: #f44379;
  width: auto;
  line-height: normal;
}
input[type="checkbox"] {
  -webkit-appearance: none;
  appearance: none;
  -webkit-tap-highlight-color: transparent;
  width: 10px;
  height: 10px;
  border: 1px solid #000;
  border-radius: 100px;
  display: inline-block;
  position: relative;
  cursor: pointer;
}
input[type="checkbox"]:checked {
  background-color: #000;
  border-color: #000;
}
input[type="checkbox"]:checked::after {
  content: "";
  position: absolute;
  left: 8px;
  top: 4px;
  width: 5px;
  height: 10px;
  border: solid white;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.checkbox {
  display: flex;
  gap: 10px;
  align-items: center;
  cursor: pointer;
}
button:hover,
input[type="submit"]:hover {
  opacity: 0.85;
}







/*** END CONTACT ****/


.section-text-image{
  .text-area{
    background-color: #e9f2ff;
  }
  .image{
    img{
      aspect-ratio: 1/1;
      object-fit: cover;
      display: block;
    }
  }
}

.banner{
  .title-banner h1{
    color: #fff;
    margin: 0;
    font-size: 40px;
    @media (min-width: 1000px){
    font-size: 80px;
    }
  }
  img{
    width: 100%;
    height: 100%;
    aspect-ratio: 16 / 8;
    object-fit: cover;
    object-position: center;
    filter: brightness(.7);
    @media (min-width: 1000px){
      aspect-ratio: 32 / 9;
    }
  }
}

.banner-tipologia{
  .title-banner h1{
    color: #fff;
    margin: 0;
    font-size: 40px!important;
  }
  img{
    width: 100%;
    height: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    object-position: center;
    filter: brightness(.7);
  }
}

.box-text{
  padding: 30px;
  p,em,span{font-family: "ClearfaceStd-Italic-Custom";}
}

.prodotti-grid {
    display: grid;
    gap: 40px 20px;
    grid-template-columns: repeat(2, 1fr);
}

@media (min-width: 768px) {
    .prodotti-grid {
        grid-template-columns: repeat(4, 1fr); 
    }
}





article.prodotto{
  &:hover{
    .btn{
      opacity: 1;
    }
    .frame img{
      width: 95%;
    }
  }
  .btn{
    position: absolute;
    left: 50%;
    width: max-content;
    transform: translateX(-50%);
    bottom: 30px;
    background-color: #f44379;
    color: #fff;
    border-radius: 999px;
    padding: 8px 20px;
    opacity: 0;
    z-index: 3;
    transition: all .15s ease-in-out;
  }
  .frame {
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    border-radius: 1rem;
    background-color: #FFDFFC;
    position: relative;
    margin-bottom: 10px;
    img{
      transition: all .15s ease-in-out;
      object-fit: contain;
      position: absolute;
      width: 90%;
      bottom: 0;
      left: 50%;
      transform: translateX(-50%);
    }
  }


}


.section-categories {
  .card {
    position: relative; 

    &:hover {
      .frame {
        .secondary-img {
          opacity: 1;
        }
      }
    }

    h2 {
      font-size: 18px;
      text-align: center;
      text-transform: uppercase;
      font-weight: 700;
      margin-top: 20px;
      transition: color 0.15s ease-in-out;
    }

  
    @media screen and (max-width: 768px) {
      .card-body {
        color: #fff;
        position: absolute;
        width: 90%;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        z-index: 2; 

        h2 {
          color: #fff;
        }
      }
    }

    .frame {
      width: 100%;
      aspect-ratio: 16 / 7;
      border-radius: 1rem;
      overflow: hidden;
      position: relative;
      transition: all .15s ease-in-out;
      background-color: transparent;

      .desk {
        display: none;
      }

      @media (min-width: 769px) {
        aspect-ratio: 1 / 1;
        
        .mob {
          display: none;
        }
        .desk {
          display: block;
        }
      }

      img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
        border-radius: 1rem;
        background-color: transparent;
      }

      .secondary-img {
        opacity: 0;
        position: absolute;
        top: 0;  
        left: 0; 
        z-index: 1;
        width: 100%;
        height: 100%;
        transition: opacity .15s ease-in-out; 
        border: 8px solid transparent;
        &.viola{
          background-color: #543ab5!important;
        }
        &.rosa{
          background-color: #f44379!important;
        }
        &.giallo{
          background-color: #ffc001 !important;
        }
      }
    }
  }
}





.carosello_tipologia {
    width: 100%;
    position: relative;
    overflow: hidden;
    padding-bottom: 40px !important; 
    /* Il link esterno che fa da contenitore Swiper */
    .link.swiper-slide {
        text-decoration: none;
        display: block; /* Permette di prendere tutta la larghezza dello slide */
        height: auto;
    }

    /* Struttura della Card */
    .card {
      width: 100%;
          height: 100%;
          aspect-ratio: 4 / 5;
          overflow: hidden;
          border-radius: 1rem;
          border: none;
        .card-img {
          width: 100%;
          height: 100%;
          object-fit: cover;
          object-position: center;
          background-color: transparent;
        }
        

        /* Testo in sovrapposizione sopra l'immagine */
        .card-img-overlay {
          position: absolute;
          top: 0;
          right: 0;
          bottom: 0;
          left: 0;
          padding: 20px;
            .card-title {
                color: #000;
                font-size: 30px;
            }

            /* Contenitore Flex per info e icona */
            .flex {
                display: flex;
                justify-content: space-between;
                align-items: center;
                flex-direction: row;
                p {
                    color: rgba(32, 32, 32, .5) !important;
                    margin: 0;
                }
            }
        }
    }



    


}


/**BULLETS**/
.swiper-pagination {
        bottom: 0 !important; 
        left: 0;
        width: 100%;
        text-align: center;
}
.swiper-pagination-bullet {
        background: #f44379 !important; /* Il tuo colore */
        width: 8px;
        height: 8px;
        margin: 0 10px !important; /* Gestisce lo spazio orizzontale tra i pallini */
        display: inline-block;
        border-radius: 50%;
        opacity: 0.33;
        transition: all .15s ease-in-out;
        position: relative;
        z-index: 1;
}

.swiper-pagination-bullet-active {
        opacity: 1 !important; 
        width: 30px !important;
        border-radius: 4px !important; 
}
/****/


/* CAROSELLO */
.carosello-prodotti-header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding-top: 30px;
        padding-bottom: 30px;
        h2 {
            margin: 0;
            text-align: left;
        }

        /* Contenitore delle due frecce affiancate */
        .frecce-container {
            display: flex;
            gap: 10px; /* Spazio tra le due frecce */
            position: relative;

            /* Modifichiamo il comportamento nativo di Swiper */
            .swiper-button-next,
            .swiper-button-prev {
                position: static; /* Rimuove il posizionamento assoluto al centro di Swiper */
                margin-top: 0;    /* Rimuove il reset nativo */
                background-color: #fff;
                width: 40px;
                height: 40px;
                border-radius: 50%;
                transition: all 0.2s ease;
                display: flex;
                align-items: center;
                justify-content: center;

                &::after {
                    display: none; /* Nasconde la freccia di testo di Swiper */
                }

                

               
            }

        }
    
}

    /* Controlli di navigazione (Frecce SVG esterne) */
    .swiper-button-next,
    .swiper-button-prev {
        width: 45px;
        height: 45px;
        transition: all 0.2s ease;
        @media (min-width: 769px){
          margin-left: 50px;
        }
        svg {
            width: 25px;
            height: 25px;
            color: #000;
            transition: transform 0.2s ease;
        }
        &::after {
            display: none; /* Rimuove la freccia standard di Swiper */
        }
    }
    .swiper-pagination-bullet-active {
        background: #000;
    }
    .swiper-button-next:hover svg { transform: translateX(2px); }
    .swiper-button-prev:hover svg { transform: translateX(-2px); }

.carosello {
    width: 100%;
    position: relative;

    /* Il link esterno che fa da contenitore Swiper */
    .link.swiper-slide {
        text-decoration: none;
        display: block; /* Permette di prendere tutta la larghezza dello slide */
        height: auto;
        
        &:hover {
            /* Effetto hover che si attiva su tutta la card */
            .card {
                
                .primary-img { opacity: 0; }
                .secondary-img { opacity: 1; scale: 1.15;}
                
                
            }
        }
    }

    /* Struttura della Card */
    .card {
        background: #ffadff;
        border-radius: 12px;
        overflow: hidden;
        box-shadow: 0 4px 15px rgba(0,0,0,0.05);
        transition: transform 0.3s ease;
        position: relative; /* Fondamentale per l'overlay assoluto */
        display: flex;
        flex-direction: column;
        height: 100%;
        transition: all .15s ease-in-out;
        .card-img {
            width: 100%;
            aspect-ratio: 4 / 5;
            object-fit: contain;
            display: block;

        }
        .primary-img {
            height: 80%;
        }
        .secondary-img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: bottom;
            border-radius: 1rem;
            opacity: 0;
            position: absolute;
            transition: all .15s ease-in-out;
        }

        /* Testo in sovrapposizione sopra l'immagine */
        .card-img-overlay {
            position: absolute;
            bottom: 0;
            left: 0;
            right: 0;
            /*background: linear-gradient(to top, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.4) 60%, rgba(0,0,0,0) 100%);*/
            padding: 25px 20px 20px 20px;
            display: flex;
            flex-direction: column;
            height: 155px;
            
            .card-title {
                color: #000;
                font-size: 30px;
                
            }

            /* Contenitore Flex per info e icona */
            .flex {
                display: flex;
                justify-content: space-between;
                
                flex-direction: row;

                p {
                    color: #000;
                    margin: 0;
                    opacity: 0.9;
                }

                .btn-icon {
                    transition: transform 0.2s ease;
                    flex-shrink: 0;
                    flex: none;
                }
            }
        }
    }

}
/*********************************/



.doppio-banner{
  position: relative;  
  .row{
      display: flex;
      gap: 20px;
      flex-direction: column;
      
    @media (min-width: 769px){
        flex-direction: row;
        .card{
          width: 50%;
        }
    }
    
    
    h3,p {color: #fff;}
    .card{
      position: relative;
      h3{
        font-size: 30px;
      }
      .card-img-overlay .card-description{display: none;}
      @media (min-width: 769px){
        aspect-ratio: 1 / 1;
        .card-img-overlay .card-description{display: block;}
      }
      @media (min-width: 992px){
        aspect-ratio: 3 / 2;
      }
    }
    .card .image{
      height: 100%;
      width: 100%;
      img{
      width: 100%;
      height: 100%;
      object-fit: cover;
      border-radius: 1rem;
      } 
    }
    .card .image::after {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      background-color: rgba(0, 0, 0, .2);
      border-radius: 1rem;
      pointer-events: none;
      z-index: 2;
    }
    .card-img-overlay{
      z-index: 10;
      position: absolute;
      padding: 0 20px;
      box-sizing: border-box;
      
      &.first-banner{
        position: absolute;
        top: 50%;
        width: 70% !important;
        left: 0;
        transform: translate(0, -50%);
      }
      &.second-banner {
        top: 50%;
        width: 50% !important;
        right: 20%;
        transform: translate(40%, -50%);
        @media (min-width: 769px){
          width: 70% !important;
          left: 0;
          right: unset;
        }
      }
    }

    
  }

}








.carosello_masonry {
    width: 100%;
    position: relative;
    .swiper-pagination{
      position: relative!important;
      margin-top: 20px;
    }
    /* Il link esterno che fa da contenitore Swiper */
    .link.swiper-slide {
        text-decoration: none;
        display: block; /* Permette di prendere tutta la larghezza dello slide */
        height: auto;
        
        &:hover {
            /* Effetto hover che si attiva su tutta la card */
            .card {
                
                .primary-img { opacity: 0; }
                .secondary-img { opacity: 1; scale: 1.15;}
                
                
            }
        }
    }
    .overlay{
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      width: 100%;
      height: 100%;
      background: rgba(0, 0, 0, .2);
      border-radius: 12px;
      z-index: 1;
    }
    /* Struttura della Card */
    .card {
        background: #ffadff;
        border-radius: 12px;
        overflow: hidden;
        box-shadow: 0 4px 15px rgba(0,0,0,0.05);
        transition: transform 0.3s ease;
        position: relative; /* Fondamentale per l'overlay assoluto */
        display: flex;
        flex-direction: column;
        height: 100%;
        transition: all .15s ease-in-out;
        .card-img {
            width: 100%;
            aspect-ratio: 4 / 5;
            display: block;
        }
        .primary-img {
            height: 100%;
        }
        .secondary-img {
            width: 100%;
            height: 80%;
            object-fit: cover;
            object-position: bottom;
            border-radius: 12px;
            opacity: 0;
            position: absolute;
            transition: all .15s ease-in-out;
            object-fit: contain;
        }

        /* Testo in sovrapposizione sopra l'immagine */
        .card-img-overlay {
            position: absolute;
            bottom: 0;
            left: 0;
            right: 0;
            z-index: 1;
            padding: 25px 20px 20px 20px;
            display: flex;
            flex-direction: column;
            justify-content: flex-end;
            .card-title {
                color: #fff;
                font-size: 30px;
                
            }

            /* Contenitore Flex per info e icona */
            .flex {
                display: flex;
                justify-content: space-between;
                align-items: center;
                flex-direction: row;

                p {
                    color: #fff;
                    margin: 0;
                    opacity: 0.9;
                }

                .btn-icon {
                    transition: transform 0.2s ease;
                    flex-shrink: 0;
                    flex: none;
                }
            }
        }
    }

}


/* --- MOBILE: Configurazione standard per Swiper --- */
.masonry-flex .card {
    position: relative;
    width: 100%;
    aspect-ratio: 4 / 5; /* 4/5 anche su mobile */
    overflow: hidden;
}
.masonry-flex .card-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* --- DESKTOP: Trasformazione Flexbox --- */
@media (min-width: 992px) {
    
    /* Disattiviamo il comportamento orizzontale di Swiper */
    .masonry-flex .flex-grid-desktop {
        display: flex !important;
        flex-direction: column !important;
        flex-wrap: wrap !important;
        transform: none !important; /* Blocca lo scorrimento dello slider */
        width: 100% !important;
        
        /* ALTEZZA CONTENITORE: Calcolo matematico per far stare i due blocchi 
           da 32% di larghezza in 4/5 di proporzione, più il gap di 24px. */
        height: calc((32vw * 5 / 4) * 2 + 24px) !important; 
        max-height: 900px; /* Imposta un tetto massimo per schermi giganti se necessario */
        
        gap: 24px;
    }

    /* Reset delle slide di Swiper */
    .masonry-flex .masonry-item-desktop {
        margin: 0 !important;
    }

    /* PRIMO BLOCCO (A sinistra, 65%) */
    .masonry-flex .masonry-item-desktop.item-1 {
        width: 65% !important;
        height: 100% !important; /* Prende tutta l'altezza del contenitore */
        order: 1;
        .flex{
          display: block;
          .btn-icon{
            margin-top: 10px;
          }
        }
    }
    
    /* Sovrascriviamo l'aspect ratio sul primo blocco per fargli seguire l'altezza totale */
    .masonry-flex .masonry-item-desktop.item-1 .card {
        aspect-ratio: auto !important;
        height: 100%;
    }

    /* SECONDO BLOCCO (In alto a destra, 32%) */
    .masonry-flex .masonry-item-desktop.item-2 {
        width: 32% !important;
        height: calc(50% - 12px) !important; /* Metà altezza meno la metà del gap */
        order: 2;
    }

    /* TERZO BLOCCO (In basso a destra, 32%) */
    .masonry-flex .masonry-item-desktop.item-3 {
        width: 32% !important;
        height: calc(50% - 12px) !important;
        order: 3;
    }

    /* Nascondiamo i pallini dello slider su desktop */
    .masonry-flex .swiper-pagination {
        display: none !important;
    }
}







@keyframes pulse {
        0% {
            box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.85);
        }

        70% {
            box-shadow: 0 0 0 10px rgba(255, 255, 255, 0);
        }

        100% {
            box-shadow: 0 0 0 0 rgba(255, 255, 255, 0);
        }
    }



/* --- SEZIONE HOTSPOT CON SLIDER --- */
.hotspot-slider-section {
  .container{
    position: relative;
  }

    /* --- GRIGLIA MACRO-BLOCCHI (SUPERIORI) --- */
    .hotspot-grid {
      border-radius: 12px;
      aspect-ratio: 16 / 9;
      background: linear-gradient(to top, #ffddfc 15%, rgb(255, 221, 252, .75) 15%);
      &.viola{
      background: linear-gradient(to top, #543ab5 15%, rgba(84, 58, 181, .75) 15%);
      }
      &.rosa{
        background: linear-gradient(to top, #f44379 15%, rgba(244, 67, 121, .75) 15%);
      }
      &.giallo{
        background: linear-gradient(to top, #ffdf80 15%, rgb(255, 223, 128, .75) 15%);
      }
      .hotspot-box{
        display: flex;
        width: 100%;
        height: 100%;
        margin: 0;
        left: 0px;
        position: relative;
        justify-content: space-around;
        @media (min-width: 769px){
            display: flex;
            width: 60%;
            height: 100%;
            margin: 0;
            left: 16px;
            position: absolute;
        }
        img{
          max-width: 100%;
        }
      }

    /* --- IL SINGOLO BLOCCO CATEGORIA --- */
    .hotspot-block {
      position: relative;
      display: flex;
      justify-content: space-between;
      cursor: pointer;
        .block-bg {
                width: auto;
                height: 100%;
                object-fit: contain;
                object-position: bottom;
        }
    }

    /* --- OVERLAY SCURO E BOTTONE CENTRALE --- */
    .block-overlay {
        position: absolute;
        inset: 0;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        
    }

    /* --- IL BOTTONE HOTSPOT (+) --- */
    
    .hotspot-center-btn {
        position: absolute;
        width: 30px;
        height: 30px;
        background: #fff;
        background: #543ab5;
        border: none;
        opacity: 1;
        transition: all .15s ease-in-out;
        border-radius: 50%;
        z-index: 2;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        cursor: pointer;
        box-shadow: 0 0 0 rgba(255, 255, 255, .85);
        animation: pulse 2s infinite;

            &::before {
                content: '';
                position: absolute;
                top: 50%;
                left: 50%;
                transform: translate(-50%, -50%);
                width: 50px;
                height: 50px;
                border-radius: 50%;
                background: #fff;
                z-index: -1;
                opacity: .33;
            }
            &::after {
                content: "+";
                color: #fff;
                position: absolute;
                top: 60%;
                left: 45%;
                transform: translate(-40%, -50%);
                font-size: 25px;
            }
        
    }

    /* --- CARD DEL PRODOTTO --- */
    .product-card {
        a {
            text-decoration: none;
            color: #000;
            display: block;
            text-align: center;
        }

        .prod-img-wrap {
            aspect-ratio: 4 / 5;
            overflow: hidden;
            margin-bottom: 12px;
            border-radius: 4px;
            background: #f9f9f9;

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

        h4 {
            margin: 0 0 6px 0;
            font-size: 16px;
            font-weight: 500;
        }

        .discover {
            font-size: 13px;
            color: #666;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }
    }
}


.hotspot-products-swiper {
    margin-top: 20px;   
    overflow: hidden;
    padding: 0;  
    @media (min-width: 769px){
      position: absolute;
        top: 20px;
        right: 20px;
        width: 32%;
        overflow: hidden;
        .swiper-pagination{display: none;}
    }    
    .swiper-pagination{
      position: relative!important;
      margin-top: 20px;
    }
    .link.swiper-slide {
        text-decoration: none;
        display: block; 
        height: auto;
        
        &:hover {
            .card {
                .primary-img { opacity: 0; }
                .secondary-img { opacity: 1; }
            }
        }
    }
    .card {
        background: #ffadff;
        border-radius: 12px;
        overflow: hidden;
        box-shadow: 0 4px 15px rgba(0,0,0,0.05);
        transition: transform 0.3s ease;
        position: relative; /* Fondamentale per l'overlay assoluto */
        display: flex;
        flex-direction: column;
        height: 100%;
        transition: all .15s ease-in-out;
        .overlay {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        width: 100%;
        height: 100%;
        background: rgba(0, 0, 0, .2);
        border-radius: 12px;
        z-index: 1;
        }
        .card-img-overlay{
              background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, .55) 100%);
        }
        .card-img {
            width: 100%;
            aspect-ratio: 1 / 1;
            object-fit: cover;
            display: block;
            @media (min-width: 769px){
                aspect-ratio: 4 / 5;
            }
        }
        .primary-img {
            height: 100%;
        }
        .secondary-img {
            width: 100%;
            height: 80%;
            object-fit: contain;
            object-position: bottom;
            border-radius: 1rem;
            opacity: 0;
            position: absolute;
            transition: all .15s ease-in-out;
        }

        .card-img-overlay {
            z-index: 1;
            position: absolute;
            bottom: 0;
            left: 0;
            right: 0;
            padding: 25px 20px 20px 20px;
            display: flex;
            flex-direction: column;
            justify-content: flex-end;
            .card-title {
                color: #fff;
                font-size: 30px;
                
            }

            .flex {
                display: flex;
                justify-content: space-between;
                align-items: center;
                flex-direction: row;

                p {
                    color: #fff;
                    margin: 0;
                    opacity: 0.9;
                }

                .btn-icon {
                    transition: transform 0.2s ease;
                    flex-shrink: 0;
                    flex: none;
                }
            }
        }
    }

}

.quotation{
  h3{
        font-size: calc(1.3rem + .6vw);
  }
}