/* ==========================
   HEADER
========================== */
:root{
  --primary:#275998;
  --secondary:#EEB700;
}

/* HEADER */
#sp-header{
  background:#fff;
  box-shadow:none !important;
  border-bottom:none !important;
}

.logo-image{
  max-height:70px;
  width:auto;
}

/* MENU */
.sp-megamenu-parent{
  display:flex !important;
  align-items:center !important;
}

.sp-megamenu-parent > li{
  display:inline-flex !important;
  align-items:center !important;
}

.sp-megamenu-parent > li > a{
  color:var(--primary) !important;
  font-weight:700 !important;
  text-transform:uppercase !important;
  letter-spacing:.5px !important;
  font-size:14px !important;
  line-height:1.2 !important;
}

.sp-megamenu-parent > li.active > a,
.sp-megamenu-parent > li:hover > a{
  color:var(--secondary) !important;
}

/* WHATSAPP = ultima voce del menu */
.sp-megamenu-parent > li:last-child{
  margin-left:45px !important;
}

.sp-megamenu-parent > li:last-child > a{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:8px !important;
  background:var(--secondary) !important;
  color:#111 !important;
  padding:11px 20px !important;
  border-radius:4px !important;
  font-size:13px !important;
  font-weight:700 !important;
  line-height:1 !important;
  height:auto !important;
  min-height:0 !important;
  text-decoration:none !important;
}

.sp-megamenu-parent > li:last-child > a::before{
  font-family:"Font Awesome 6 Brands";
  content:"\f232";
  font-weight:400;
  font-size:18px;
  margin-right:8px;
}

.sp-megamenu-parent > li:last-child > a:hover{
  background:#ffd23c !important;
  color:#111 !important;
}
/* ==========================================================================
   HEADER RESPONSIVE
   ========================================================================== */

/* Desktop: hamburger nascosto */
#offcanvas-toggler{
    display:none !important;
}

/* Tablet e smartphone */
@media (max-width:991px){

    /* Nasconde il menu desktop */
    .sp-megamenu-parent{
        display:none !important;
    }

    /* Mostra il menu hamburger */
    #offcanvas-toggler{
        display:flex !important;
        align-items:center;
        justify-content:center;
    }

    /* Logo mobile più grande */
    .logo-image-phone{
        height:50px !important;
        width:auto !important;
        max-width:none !important;
    }

}

/* Smartphone */
@media (max-width:575px){

    .logo-image-phone{
        height:54px !important;
        width:auto !important;
        max-width:none !important;
    }

}
/* HERO - stile PNG mockup */

.hero-casina{
  position:relative;
  width:100vw;
  min-height:650px;
  margin-left:calc(50% - 50vw);
  background:url('/images/hero-mare.jpg') center center / cover no-repeat;
  display:flex;
  align-items:center;
}

.hero-overlay{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.28);
}

.hero-content{
  position:relative;
  z-index:2;
  width:100%;
  max-width:1200px;
  margin:0 auto;
  padding-left:60px;
  color:#fff;
}

.hero-content h1{
    margin:0 0 18px;
    font-family:"Nunito Sans",serif;
    font-size:clamp(48px, 7vw, 84px);
    line-height:1;
    font-weight:600;
    color:#fff !important;
    max-width:620px;
    text-shadow:0 2px 8px rgba(0,0,0,.35);
}

.hero-line{
  width:70px;
  height:4px;
  background:#EEB700;
  margin:0 0 28px 0;
}

.hero-content p{
  color:#fff !important;
  font-size:22px;
  line-height:1.55;
  max-width:620px;
  margin:0 0 34px 0;
  text-shadow:0 1px 5px rgba(0,0,0,.35);
}

.hero-buttons{
  display:flex;
  gap:18px;
}

.hero-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:15px 26px;
  border-radius:3px;
  font-size:13px;
  font-weight:700;
  text-transform:uppercase;
  text-decoration:none !important;
  letter-spacing:.3px;
}

.hero-yellow{
  background:#EEB700;
  color:#111 !important;
}

.hero-blue{
  background:rgba(39,89,152,.35);
  color:#fff !important;
  border:2px solid rgba(255,255,255,.85);
}

.hero-yellow:hover{
  background:#ffd23c;
  color:#111 !important;
}

.hero-blue:hover{
  background:#275998;
  border-color:#275998;
  color:#fff !important;
}

/* Responsive */
@media(max-width:991px){
  .hero-casina{
    min-height:560px;
  }

  .hero-content{
    padding:0 35px;
  }

  .hero-content h1{
    font-size:48px;
  }

  .hero-content p{
    font-size:18px;
  }
}

@media(max-width:600px){
  .hero-casina{
    min-height:520px;
  }

  .hero-content h1{
    font-size:40px;
  }

  .hero-buttons{
    flex-direction:column;
    align-items:flex-start;
  }

  .hero-btn{
    width:260px;
  }
}
.sp-megamenu-parent > li > a{

    font-family:'Manrope',sans-serif;

    font-size:15px;

    font-weight:600;

    letter-spacing:.5px;

}
/* Elimina spazio bianco sopra la Hero */
#sp-main-body{
  padding-top:0 !important;
  margin-top:0 !important;
}

#sp-main-body .container{
  padding-top:0 !important;
  margin-top:0 !important;
}

#sp-component{
  padding-top:0 !important;
  margin-top:0 !important;
}
.hero-casina{
  margin-top:0 !important;
}
#sp-header{

    padding-top:18px !important;

    padding-bottom:70px !important;

}
.hero-blue::before{
  font-family:"Font Awesome 6 Brands";
  content:"\f232";
  font-weight:400;
  font-size:18px;
  margin-right:8px;
}
/* ==========================
   HIGHLIGHTS / 3 ICONE
========================== */

/* sezione che contiene Hero + highlights */
#sp-main-body{
  padding-top:0 !important;
  padding-bottom:0 !important;
  margin-top:0 !important;
}

/* elimina spazio interno sopra la riga highlights */
#sp-main-body .container,
#sp-main-body .row{
  margin-top:10px !important;
}

/* colonne icone */
#sp-top1,
#sp-top2,
#sp-top3{
  text-align:center;
  background:#fff;
  padding:10px 20px 28px !important;
}

/* moduli dentro le colonne */
#sp-top1 .sp-module,
#sp-top2 .sp-module,
#sp-top3 .sp-module{
  margin:0 !important;
  padding:0 !important;
}

/* icone svg */
.casina-feature-svg svg{
  width:46px;
  height:46px;
  fill:none;
  stroke:#275998;
  stroke-width:3;
  stroke-linecap:round;
  stroke-linejoin:round;
  margin-bottom:16px;
}

/* testi */
#sp-top1 h3,
#sp-top2 h3,
#sp-top3 h3{
  font-family:'Nunito Sans', sans-serif !important;
  color:var(--primary);
  font-size:15px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.8px;
  margin:0 0 8px;
}

#sp-top1 p,
#sp-top2 p,
#sp-top3 p{
  font-family:'Nunito Sans', sans-serif !important;
  color:var(--primary);
  font-size:15px;
  font-weight:500;
  line-height:1.6;
  margin:0;
}
/* separatori */
#sp-top1,
#sp-top2{
    position:relative;
}

#sp-top1::after,
#sp-top2::after{
    content:"";
    position:absolute;
    right:0;
    top:50%;
    transform:translateY(-50%);
    width:1px;
    height:75px;
    background:#275998;
}

/* ABOUT - FOTO */

#sp-about-image,
#sp-about-image .sp-module,
#sp-about-image .sp-module-content{
  margin:0 !important;
  padding:0 !important;
}

/* ABOUT - colonne della stessa altezza */

#sp-about .row{
    display:flex !important;
    align-items:stretch !important;
}

#sp-about-image,
#sp-about-text{
    display:flex !important;
}

#sp-about-image .sp-column,
#sp-about-image .sp-module,
#sp-about-image .sp-module-content,
#sp-about-image .mod-custom{
    display:flex !important;
    width:100% !important;
    height:100% !important;
}

.about-photo{
    display:block;
    width:100%;
    height:100% !important;
    min-height:590px;
    object-fit:cover;
    margin:0 !important;
}
/* ABOUT - testo sezione La Casa */

#sp-about-text{
  display:flex;
  align-items:flex-start;
  justify-content:center;
  background:#fff;
}

#sp-about-text .sp-module{
  margin:0 !important;
  width:100%;
}

.about-content{
  max-width:520px;
  padding:35px 70px 45px 70px;
}

.section-label{
  color:#275998;
  font-family:'Manrope', sans-serif;
  font-size:13px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:1.2px;
  margin-bottom:16px;
}

.about-content h2{
  color:#275998;
  font-family:'Nunito Sans', serif;
  font-size:46px;
  font-weight:600;
  line-height:1.05;
  margin:0 0 22px 0;
}

.about-content p{
  color:#555;
  font-size:16px;
  line-height:1.6;
  margin:0 0 22px 0;
}

.about-list{
  list-style:none;
  padding:0;
  margin:0 0 28px 0;
}

.about-list li{
  color:#555;
  font-size:15px;
  line-height:1.5;
  margin-bottom:9px;
  position:relative;
  padding-left:26px;
}

.about-list li::before{
  content:"✓";
  position:absolute;
  left:0;
  top:2px;
  width:16px;
  height:16px;
  border-radius:50%;
  background:#275998;
  color:#fff;
  font-size:10px;
  line-height:16px;
  text-align:center;
  font-weight:700;
}

.about-button{
  display:inline-block;
  background:#EEB700;
  color:#111 !important;
  padding:13px 24px;
  border-radius:4px;
  font-size:13px;
  font-weight:700;
  text-transform:uppercase;
  text-decoration:none !important;
}

.about-button:hover{
  background:#ffd23c;
  color:#111 !important;
}
/* Linea divisoria tra highlights e about */

#sp-about{
    border-top:1px solid #e7ebef;
}
/* ==========================
   GARDEN
========================== */

#sp-garden{
  position:relative !important;
  z-index:1 !important;
  padding:0 !important;
  margin:0 !important;
  clear:both !important;
}

#sp-garden .sp-module{
  margin:0 !important;
  padding:0 !important;
}

.garden-section{
  position:relative;
  width:100%;
  height:520px;
  overflow:hidden;
  background:#fff;
  margin:0;
  padding:0;
}

.garden-photo{
  width:100%;
  height:520px;
  object-fit:cover;
  object-position:70% center;
  display:block;
}

.garden-box{
  position:absolute;
  right:8%;
  top:50%;
  transform:translateY(-50%);
  width:355px;
  background:#2f5f9e;
  padding:38px 40px;
  color:#fff;
  z-index:2;
}

.garden-box h2{
  color:#fff !important;
  font-family:'Nunito Sans', serif;
  font-size:36px;
  line-height:1.15;
  font-weight:400;
  margin:0 0 26px;
}

.garden-box p{
  color:#fff;
  font-size:16px;
  line-height:1.8;
  margin:0 0 30px;
}

.garden-button{
  display:inline-block;
  background:#EEB700;
  color:#111 !important;
  padding:14px 28px;
  font-size:14px;
  font-weight:700;
  text-decoration:none !important;
  border-radius:3px;
}

@media(max-width:768px){
  .garden-section{
    height:auto;
  }

  .garden-photo{
    height:420px;
    object-position:center center;
  }

  .garden-box{
    position:relative;
    right:auto;
    top:auto;
    transform:none;
    width:auto;
    margin:0;
    padding:36px 28px;
  }

  .garden-box h2{
    font-size:34px;
  }
}
.hero-content h1,
.garden-box h2,
.about-content h2{
  font-family:'Nunito Sans', serif !important;
}

/* ==========================================
   TIPOGRAFIA LA CASINA
========================================== */

/* Font principale */
body{
    font-family:'Nunito Sans', sans-serif;
    font-weight:500;
    color:#555;
}

/* Hero */
.hero-content h1{
    font-family:"Nunito Sans", sans-serif;
    font-weight:600;
}

/* Titoli sezioni */
.about-content h2,
.garden-box h2{
    font-family:"Nunito Sans", sans-serif;
    font-weight:700;
}

/* Testi */
.hero-content p,
.about-content p,
.about-list li,
.garden-box p{
    font-family:'Nunito Sans', sans-serif;
    font-weight:500;
}

/* Menu */
.sp-megamenu-parent > li > a{
    font-family:'Nunito Sans', sans-serif !important;
    font-weight:700 !important;
}

/* Bottoni */
.hero-btn,
.about-button,
.garden-button,
.sp-megamenu-parent > li:last-child > a{
    font-family:'Nunito Sans', sans-serif !important;
    font-weight:700 !important;
    letter-spacing:.3px;
}

/* Piccole etichette */
.section-label,
.garden-label{
    font-family:'Nunito Sans', sans-serif;
    font-weight:700;
    letter-spacing:1.8px;
}
/* ==========================
   GALLERY HOME
========================== */

#sp-gallery{
    background:#fff;
    padding:8px 0 8px;
}

.gallery-home{
    text-align:center;
}

.gallery-grid{

    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:12px;

    margin-bottom:22px;

}

.gallery-grid img{

    width:100%;
    aspect-ratio:1/1;

    object-fit:cover;

    display:block;

}

.gallery-home-button{

    display:inline-block;

    padding:10px 34px;

    border:2px solid #7ea0cb;

    color:#275998;

    background:#fff;

    text-decoration:none;

    font-family:'Nunito Sans',sans-serif;

    font-size:13px;

    font-weight:700;

    text-transform:uppercase;

    transition:.2s;

}

.gallery-home-button:hover{

    background:#275998;

    color:#fff;

    border-color:#275998;

}
/* ==========================================================================
   DISCOVER / BELLEZZE
   ========================================================================== */

/* SEZIONE GENERALE */
#sp-discover{
  margin:0 !important;
  padding:0 !important;
  background:#fff !important;
}

/* Container e row senza gutter */
#sp-discover .container,
#sp-discover .container-fluid{
  padding-left:0 !important;
  padding-right:0 !important;
}

#sp-discover .row{
  margin-left:0 !important;
  margin-right:0 !important;

  display:flex !important;
  align-items:stretch !important;
}

/* Colonne senza padding */
#sp-discover [class*="col-"]{
  padding-left:0 !important;
  padding-right:0 !important;
  display:flex !important;
}

/* Wrapper Helix */
#sp-discover .sp-column,
#sp-discover .sp-module,
#sp-discover .sp-module-content,
#sp-discover .mod-custom{
  width:100% !important;
  height:100% !important;

  margin:0 !important;
  padding:0 !important;
}


/* ==========================================================================
   BLOCCO BLU
   ========================================================================== */

.discover-blue{
  width:100%;
  height:320px;
  padding:48px 65px;

  display:flex;
  flex-direction:column;
  justify-content:center;

  background:#275998;
  color:#fff;
}

.discover-label{
  margin:0 0 10px;

  color:#EEB700;

  font-family:'Nunito Sans',sans-serif;
  font-size:12px;
  font-weight:800;
  line-height:1.2;

  letter-spacing:1.4px;
  text-transform:uppercase;
}

.discover-blue h2{
  margin:0 0 18px;

  color:#fff !important;

  font-family:'Nunito Sans',sans-serif;
  font-size:38px;
  font-weight:500;
  line-height:1.05;
}

.discover-blue p{
  margin:0 0 26px;

  color:#fff;

  font-family:'Nunito Sans',sans-serif;
  font-size:15px;
  font-weight:600;
  line-height:1.55;
}

.discover-button{
  display:inline-block;
  align-self:flex-start;

  padding:13px 24px;

  background:#EEB700;
  color:#111 !important;

  border-radius:3px;

  font-family:'Nunito Sans',sans-serif;
  font-size:13px;
  font-weight:800;
  line-height:1;

  text-transform:uppercase;
  text-decoration:none !important;
}


/* ==========================================================================
   BLOCCO LISTA
   ========================================================================== */

.discover-list{
  width:100%;
  height:320px;

  padding:42px 36px;

  display:flex;
  flex-direction:column;
  justify-content:center;

  gap:15px;

  background:#f6f7f9;
}

.discover-item{
  display:grid;

  grid-template-columns:34px 1fr auto;

  align-items:center;
  column-gap:12px;

  color:#275998;

  font-family:'Nunito Sans',sans-serif;
}

.discover-icon{
  width:24px;
  height:24px;

  fill:none;
  stroke:#275998;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.discover-item strong{
  color:#275998;

  font-size:14px;
  font-weight:800;
  line-height:1.3;
}

.discover-item em{
  color:#777;

  font-size:13px;
  font-style:normal;
  line-height:1.3;

  white-space:nowrap;
}


/* ==========================================================================
   MAPPA
   ========================================================================== */

.discover-map-img{
  display:block;

  width:100%;
  height:320px;

  object-fit:cover;
}


/* ==========================================================================
   TABLET E MOBILE
   ========================================================================== */

@media (max-width:768px){

  #sp-discover .row{
    display:block !important;
  }

  #sp-discover [class*="col-"]{
    width:100% !important;
    display:block !important;
  }

  .discover-blue{
    height:auto;
    min-height:0;

    padding:55px 28px;
  }

  .discover-blue h2{
    font-size:38px;
  }

  .discover-list{
    height:auto;
    min-height:0;

    /* STESSO PADDING SOPRA E SOTTO */
    padding:45px 28px;

    gap:28px;
  }

  .discover-item{
    grid-template-columns:34px 1fr;
    row-gap:6px;
  }

  .discover-item em{
    grid-column:2;

    white-space:normal;
  }

  .discover-map-img{
    height:280px;
  }

}


/* ==========================================================================
   SMARTPHONE
   ========================================================================== */

@media (max-width:575px){

  .discover-blue{
    padding:52px 28px;
  }

  .discover-blue h2{
    font-size:36px;
    line-height:1.08;
  }

  .discover-blue p{
    font-size:16px;
  }

  .discover-list{
    padding:45px 28px;
    gap:30px;
  }

  .discover-item strong{
    font-size:16px;
  }

  .discover-item em{
    margin-top:4px;

    font-size:15px;
    line-height:1.5;
  }

  .discover-icon{
    width:26px;
    height:26px;
  }

  .discover-map-img{
    height:260px;
  }

}
/* ==========================
   CTA FINALE
========================== */

#sp-cta{
  padding:0 !important;
  margin:0 !important;
}

#sp-cta .sp-module,
#sp-cta .sp-module-content{
  margin:0 !important;
  padding:0 !important;
}

.cta-casina{
  position:relative;
  min-height:190px;
  background:url('/images/cta-tramonto.png') center center / cover no-repeat;
  display:flex;
  align-items:center;
  overflow:hidden;
}

.cta-overlay{
  position:absolute;
  inset:0;
  background:rgba(39,89,152,.25);
}

.cta-inner{
  position:relative;
  z-index:2;
  width:min(1200px,90%);
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:40px;
}

.cta-text h2{
  font-family:'Nunito Sans', serif;
  color:#fff !important;
  font-size:42px;
  font-weight:500;
  line-height:1;
  margin:0 0 8px;
  text-shadow:0 2px 8px rgba(0,0,0,.35);
}

.cta-text p{
  font-family:'Nunito Sans', sans-serif;
  color:#fff;
  font-size:17px;
  font-weight:500;
  margin:0;
}

.cta-buttons{
  display:flex;
  gap:18px;
  align-items:center;
}

.cta-btn{
  display:inline-flex;
  align-items:center;
  Nunito Sansjustify-content:center;
  padding:14px 28px;
  border-radius:3px;
  font-family:'Nunito Sans', sans-serif;
  font-size:13px;
  font-weight:800;
  text-transform:uppercase;
  text-decoration:none !important;
  white-space:nowrap;
}

.cta-yellow{
  background:#EEB700;
  color:#111 !important;
}

.cta-blue{
  background:#275998;
  color:#fff !important;
  border:2px solid rgba(255,255,255,.8);
}

.cta-blue::before{
  font-family:"Font Awesome 6 Brands";
  content:"\f232";
  font-weight:400;
  font-size:17px;
  margin-right:8px;
}

@media(max-width:768px){
  .cta-casina{
    min-height:auto;
    padding:45px 0;
  }

  .cta-inner{
    flex-direction:column;
    align-items:flex-start;
  }

  .cta-text h2{
    font-size:34px;
  }

  .cta-buttons{
    flex-direction:column;
    align-items:flex-start;
  }
}
/* ==========================================================================
   FOOTER
   ========================================================================== */

#sp-footer{
  background:#275998 !important;
  color:#fff !important;
  margin:0 !important;
  padding:28px 70px !important;
  min-height:0 !important;
  height:auto !important;
}

/* Riga principale */
#sp-footer > .row{
  margin:0 !important;
  padding:0 !important;
  min-height:0 !important;
  height:auto !important;

  display:flex !important;
  align-items:center !important;
}

/* Colonne */
#sp-footer-logo,
#sp-footer-info,
#sp-footer-contact{
  margin:0 !important;
  padding:0 !important;
  min-height:0 !important;
  height:auto !important;

  display:flex !important;
  align-items:center !important;
}

/* Allineamenti desktop */
#sp-footer-logo{
  justify-content:flex-start !important;
}

#sp-footer-info{
  justify-content:center !important;
  text-align:center !important;
}

#sp-footer-contact{
  justify-content:flex-end !important;
  text-align:right !important;
}

/* Wrapper Helix */
#sp-footer .sp-column,
#sp-footer .sp-module,
#sp-footer .sp-module-content,
#sp-footer .mod-custom{
  width:100% !important;

  margin:0 !important;
  padding:0 !important;

  min-height:0 !important;
  height:auto !important;
}


/* ==========================================================================
   LOGO
   ========================================================================== */

.footer-logo-box img{
  display:block !important;

  width:245px !important;
  max-width:100% !important;
  height:auto !important;
}


/* ==========================================================================
   TESTI
   ========================================================================== */

.footer-col h4{
  margin:0 0 8px !important;

  color:#fff !important;

  font-family:'Nunito Sans',sans-serif !important;
  font-size:15px !important;
  font-weight:800 !important;
  line-height:1.2 !important;
}

.footer-col p,
.footer-col a{
  margin:0 !important;

  color:#fff !important;

  font-family:'Nunito Sans',sans-serif !important;
  font-size:14px !important;
  font-weight:500 !important;
  line-height:1.55 !important;

  text-decoration:none !important;
}

.footer-col a:hover{
  color:#EEB700 !important;
}


/* ==========================================================================
   TABLET
   ========================================================================== */

@media (max-width:991px){

  #sp-footer{
    padding:35px 35px !important;
  }

  #sp-footer > .row{
    row-gap:28px;
  }

  #sp-footer-logo,
  #sp-footer-info,
  #sp-footer-contact{
    justify-content:center !important;
    text-align:center !important;
  }

  .footer-logo-box img{
    width:220px !important;
    margin:0 auto !important;
  }

}


/* ==========================================================================
   MOBILE
   ========================================================================== */

@media (max-width:575px){

  #sp-footer{
    padding:38px 24px 34px !important;
  }

  /* Impila le colonne */
  #sp-footer > .row{
    display:block !important;
  }

  #sp-footer-logo,
  #sp-footer-info,
  #sp-footer-contact{
    display:block !important;

    width:100% !important;

    text-align:center !important;
  }

  #sp-footer-info{
    margin-top:28px !important;
  }

  #sp-footer-contact{
    margin-top:28px !important;
  }

  /* Logo più presente */
  .footer-logo-box img{
    width:240px !important;
    max-width:85% !important;

    margin:0 auto !important;
  }

  /* Testi mobile */
  .footer-col h4{
    font-size:16px !important;
    margin-bottom:8px !important;
  }

  .footer-col p,
  .footer-col a{
    font-size:14px !important;
    line-height:1.6 !important;
  }

}
/* ==========================
   PAGINA LA CASA - HERO
========================== */

#sp-house-hero{
  padding:0 !important;
  margin:0 !important;
}

#sp-house-hero .sp-module,
#sp-house-hero .sp-module-content{
  margin:0 !important;
  padding:0 !important;
}

.house-hero{
  position:relative;
  min-height:390px;
  background:url('/images/casa-hero.jpg') center center / cover no-repeat;
  display:flex;
  align-items:center;
  overflow:hidden;
}

.house-hero-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(
    90deg,
    rgba(0,0,0,.62) 0%,
    rgba(0,0,0,.28) 42%,
    rgba(0,0,0,.06) 100%
  );
}

.house-hero-content{
  position:relative;
  z-index:2;
  width:min(1200px,90%);
  margin:0 auto;
  color:#fff;
}

.house-hero-content h1{
  font-family:'Nunito Sans', serif;
  color:#fff !important;
  font-size:64px;
  font-weight:500;
  line-height:1;
  margin:0 0 14px;
}

.house-hero-content p{
  font-family:'Nunito Sans', sans-serif;
  color:#fff !important;
  font-size:18px;
  font-weight:500;
  margin:0 0 18px;
}

.house-hero-line{
  width:66px;
  height:3px;
  background:#EEB700;
}
/* ==========================
   HOUSE INTRO
========================== */

#sp-house-intro{
  padding:0 !important;
  margin:0 !important;
}

#sp-house-intro .sp-module,
#sp-house-intro .sp-module-content{
  margin:0 !important;
  padding:0 !important;
}

/* Sfondo e spazio tra hero e contenuto */
.house-intro{
  display:grid;
  grid-template-columns:minmax(0, 58%) minmax(0, 42%);
  align-items:center;

  width:calc(100% - 120px);
  max-width:1200px;

  margin:70px auto;
  background:#fff;
}

/* Foto */
.house-intro-photo{
  height:640px;
  overflow:hidden;
  border-radius:12px;
}

.house-intro-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

/* Testo */
.house-intro-content{
  padding:55px 0 55px 70px;
}

.house-intro-content h2{
  color:#275998;
  font-family:'Nunito Sans', sans-serif;
  font-size:48px;
  font-weight:500;
  line-height:1.05;
  margin:14px 0 24px;
}

.house-intro-content p{
  color:#555;
  font-family:'Nunito Sans', sans-serif;
  font-size:17px;
  line-height:1.75;
  margin:0 0 18px;
}

.house-intro-content .section-label{
  color:#275998;
  font-family:'Nunito Sans', sans-serif;
  font-size:14px;
  font-weight:800;
  letter-spacing:1.5px;
}

/* ==========================
   CARATTERISTICHE
========================== */

.house-intro-features{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:24px 28px;
  margin-top:34px;
  padding-top:28px;
  border-top:1px solid #e1e6eb;
}

.house-intro-feature{
  display:grid;
  grid-template-columns:34px 1fr;
  column-gap:12px;
  align-items:center;
}

.house-intro-feature svg{
  grid-row:1 / 3;
  width:27px;
  height:27px;
  fill:none;
  stroke:#275998;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.house-intro-feature strong{
  color:#275998;
  font-family:'Nunito Sans', sans-serif;
  font-size:14px;
  font-weight:800;
  line-height:1.2;
}

.house-intro-feature span{
  color:#777;
  font-family:'Nunito Sans', sans-serif;
  font-size:13px;
  line-height:1.3;
}

/* ==========================
   TABLET
========================== */

@media(max-width:1100px){

  .house-intro{
    width:calc(100% - 60px);
    grid-template-columns:55% 45%;
  }

  .house-intro-content{
    padding-left:45px;
  }
}

/* ==========================
   MOBILE
========================== */

@media(max-width:768px){

  .house-intro{
    width:calc(100% - 36px);
    margin:40px auto;
    grid-template-columns:1fr;
  }

  .house-intro-photo{
    height:390px;
    border-radius:10px;
  }

  .house-intro-content{
    padding:38px 4px 10px;
  }

  .house-intro-content h2{
    font-size:38px;
  }

  .house-intro-features{
    grid-template-columns:1fr;
  }
}
/* ==================================================
   ZONA GIORNO V2 — REPLICA DEL MOCKUP
================================================== */

/* Neutralizza gli spazi prodotti da Helix */
#sp-house-living,
#sp-house-living > .sp-column,
#sp-house-living .sp-module,
#sp-house-living .sp-module-content,
#sp-house-living .custom{
  margin:0 !important;
  padding:0 !important;
  max-width:none !important;
}

/*
  Fascia grigia a tutta larghezza.
  Queste regole la fanno uscire dal container di Helix.
*/
.living-v2{
  position:relative;
  left:50%;

  width:100vw;
  max-width:none;

  margin-left:-50vw;
  margin-right:-50vw;

  background:#f5f5f3;
}

/*
  Griglia interna:
  testo a sinistra, immagine a destra.
  La sua altezza viene determinata dalla foto.
*/
.living-v2-inner{
  display:grid;
  grid-template-columns:minmax(430px, 43%) minmax(0, 57%);
  align-items:stretch;

  width:100%;
  max-width:1360px;
  height:210px;

  margin:0 auto;
}

/* Colonna sinistra */
.living-v2-info{
  display:grid;
  grid-template-columns:72px minmax(0,1fr);
  align-items:center;
  gap:22px;

  padding:20px 55px 20px 70px;
}

/* Icona senza cerchio */
.living-v2-icon{
  display:flex;
  justify-content:center;
  padding-top:5px;
}

.living-v2-icon svg{
  display:block;
  width:54px;
  height:54px;

  fill:none;
  stroke:#EEB700;
  stroke-width:2.5;
  stroke-linecap:round;
  stroke-linejoin:round;
}

/* Titolo */
.living-v2-copy h2{
  margin:0 0 15px;

  color:#275998;
  font-family:'Nunito Sans', sans-serif;
  font-size:23px;
  font-weight:800;
  line-height:1.2;
}

/* Testo */
.living-v2-copy p{
  margin:0;

  color:#303030;
  font-family:'Nunito Sans', sans-serif;
  font-size:16px;
  font-weight:400;
  line-height:1.5;
}

/*
  FOTO:
  nessun margine e nessun padding.
  Occupa tutta l'altezza della riga della griglia.
*/
.living-v2-photo{
  width:100%;
  height:100%;
  overflow:hidden;
}

/* La foto tocca esattamente sopra e sotto */
.living-v2-photo img{
  width:100%;
  height:100%;
  display:block;

  object-fit:cover;
  object-position:center;
}
/* ==================================================
   SCHERMI MOLTO GRANDI
================================================== */

@media (min-width:1361px){

  .living-v2-inner{
    max-width:none;
    grid-template-columns:50% 50%;
  }

  .living-v2-info{
    padding-left:max(70px, calc((100vw - 1200px) / 2));
  }
}

/* ==================================================
   TABLET
================================================== */

@media (max-width:1000px){

  .living-v2-inner{
    grid-template-columns:45% 55%;
  }

  .living-v2-info{
    grid-template-columns:55px minmax(0, 1fr);
    gap:18px;
    padding:32px 30px;
  }

  .living-v2-icon svg{
    width:45px;
    height:45px;
  }

  .living-v2-copy p{
    font-size:15px;
  }
}

/* ==================================================
   MOBILE
================================================== */

@media (max-width:768px){

  .living-v2-inner{
    grid-template-columns:1fr;
    height:auto;
  }

  .living-v2-info{
    grid-template-columns:52px minmax(0, 1fr);
    padding:38px 24px;
  }

  .living-v2-copy p br{
    display:none;
  }

  .living-v2-photo,
  .living-v2-photo img{
    height:260px;
    min-height:260px;
  }
}
/* ==================================================
   CUCINA V2 — FOTO A SINISTRA, TESTO A DESTRA
================================================== */

/* Neutralizza gli spazi prodotti da Helix */
#sp-house-kitchen,
#sp-house-kitchen > .sp-column,
#sp-house-kitchen .sp-module,
#sp-house-kitchen .sp-module-content,
#sp-house-kitchen .custom{
  margin:0 !important;
  padding:0 !important;
  max-width:none !important;
}

/* Fascia grigia a tutta larghezza */
.kitchen-v2{
  position:relative;
  left:50%;

  width:100vw;
  max-width:none;

  margin-left:-50vw;
  margin-right:-50vw;

  background:#f5f5f3;
}

/* Altezza identica alla zona giorno */
.kitchen-v2-inner{
  display:grid;
  grid-template-columns:minmax(0, 57%) minmax(430px, 43%);
  align-items:stretch;

  width:100%;
  max-width:1360px;
  height:210px;

  margin:0 auto;
}

/* Fotografia */
.kitchen-v2-photo{
  width:100%;
  height:100%;

  margin:0;
  padding:0;

  overflow:hidden;
}

.kitchen-v2-photo img{
  display:block;

  width:100%;
  height:100%;

  margin:0;
  padding:0;

  object-fit:cover;
  object-position:center;
}

/* Colonna icona + testo */
.kitchen-v2-info{
  display:grid;
  grid-template-columns:72px minmax(0, 1fr);
  align-items:center;
  gap:22px;

  padding:20px 70px 20px 55px;
}

/* Icona lineare gialla */
.kitchen-v2-icon{
  display:flex;
  align-items:center;
  justify-content:center;
}

.kitchen-v2-icon svg{
  display:block;

  width:54px;
  height:54px;

  fill:none;
  stroke:#EEB700;
  stroke-width:2.5;
  stroke-linecap:round;
  stroke-linejoin:round;
}

/* Titolo */
.kitchen-v2-copy h2{
  margin:0 0 15px;

  color:#275998;
  font-family:'Nunito Sans', sans-serif;
  font-size:23px;
  font-weight:800;
  line-height:1.2;
}

/* Testo */
.kitchen-v2-copy p{
  margin:0;

  color:#303030;
  font-family:'Nunito Sans', sans-serif;
  font-size:16px;
  font-weight:400;
  line-height:1.5;
}

/* ==================================================
   SCHERMI MOLTO GRANDI
================================================== */

@media (min-width:1361px){

  .kitchen-v2-inner{
    max-width:none;
    grid-template-columns:50% 50%;
  }

  .kitchen-v2-info{
    padding-right:max(70px, calc((100vw - 1200px) / 2));
  }
}

/* ==================================================
   TABLET
================================================== */

@media (max-width:1000px){

  .kitchen-v2-inner{
    grid-template-columns:55% 45%;
  }

  .kitchen-v2-info{
    grid-template-columns:55px minmax(0, 1fr);
    gap:18px;
    padding:20px 30px;
  }

  .kitchen-v2-icon svg{
    width:45px;
    height:45px;
  }

  .kitchen-v2-copy p{
    font-size:15px;
  }
}

/* ==================================================
   MOBILE
================================================== */

@media (max-width:768px){

  .kitchen-v2-inner{
    grid-template-columns:1fr;
    height:auto;
  }

  .kitchen-v2-photo{
    height:260px;
  }

  .kitchen-v2-info{
    grid-template-columns:52px minmax(0, 1fr);
    padding:38px 24px;
  }

  .kitchen-v2-copy p br{
    display:none;
  }
}
/* ==================================================
   ZONA NOTTE V2 — TESTO A SINISTRA, FOTO A DESTRA
================================================== */

#sp-house-bedroom,
#sp-house-bedroom > .sp-column,
#sp-house-bedroom .sp-module,
#sp-house-bedroom .sp-module-content,
#sp-house-bedroom .custom{
  margin:0 !important;
  padding:0 !important;
  max-width:none !important;
}

/* Fascia grigia a tutta larghezza */
.bedroom-v2{
  position:relative;
  left:50%;

  width:100vw;
  max-width:none;

  margin-left:-50vw;
  margin-right:-50vw;

  background:#f5f5f3;
}

/* Altezza identica agli altri moduli */
.bedroom-v2-inner{
  display:grid;
  grid-template-columns:minmax(430px, 43%) minmax(0, 57%);
  align-items:stretch;

  width:100%;
  max-width:1360px;
  height:210px;

  margin:0 auto;
}

/* Colonna testo */
.bedroom-v2-info{
  display:grid;
  grid-template-columns:72px minmax(0, 1fr);
  align-items:center;
  gap:22px;

  padding:20px 55px 20px 70px;
}

/* Icona letto */
.bedroom-v2-icon{
  display:flex;
  align-items:center;
  justify-content:center;
}

.bedroom-v2-icon svg{
  display:block;
  width:54px;
  height:54px;

  fill:none;
  stroke:#EEB700;
  stroke-width:2.5;
  stroke-linecap:round;
  stroke-linejoin:round;
}

/* Titolo */
.bedroom-v2-copy h2{
  margin:0 0 15px;

  color:#275998;
  font-family:'Nunito Sans', sans-serif;
  font-size:23px;
  font-weight:800;
  line-height:1.2;
}

/* Testo */
.bedroom-v2-copy p{
  margin:0;

  color:#303030;
  font-family:'Nunito Sans', sans-serif;
  font-size:16px;
  font-weight:400;
  line-height:1.5;
}

/* Foto */
.bedroom-v2-photo{
  width:100%;
  height:100%;
  margin:0;
  padding:0;
  overflow:hidden;
}

.bedroom-v2-photo img{
  display:block;
  width:100%;
  height:100%;
  margin:0;
  padding:0;

  object-fit:cover;
  object-position:center;
}

/* Schermi molto grandi */
@media (min-width:1361px){

  .bedroom-v2-inner{
    max-width:none;
    grid-template-columns:50% 50%;
  }

  .bedroom-v2-info{
    padding-left:max(70px, calc((100vw - 1200px) / 2));
  }
}

/* Tablet */
@media (max-width:1000px){

  .bedroom-v2-inner{
    grid-template-columns:45% 55%;
  }

  .bedroom-v2-info{
    grid-template-columns:55px minmax(0, 1fr);
    gap:18px;
    padding:20px 30px;
  }

  .bedroom-v2-icon svg{
    width:45px;
    height:45px;
  }

  .bedroom-v2-copy p{
    font-size:15px;
  }
}

/* Mobile */
@media (max-width:768px){

  .bedroom-v2-inner{
    grid-template-columns:1fr;
    height:auto;
  }

  .bedroom-v2-info{
    grid-template-columns:52px minmax(0, 1fr);
    padding:38px 24px;
  }

  .bedroom-v2-copy p br{
    display:none;
  }

  .bedroom-v2-photo{
    height:260px;
  }
}
/* ==================================================
   GIARDINO V2 — FOTO A SINISTRA, TESTO A DESTRA
================================================== */

#sp-house-garden,
#sp-house-garden > .sp-column,
#sp-house-garden .sp-module,
#sp-house-garden .sp-module-content,
#sp-house-garden .custom{
  margin:0 !important;
  padding:0 !important;
  max-width:none !important;
}

/* Fascia grigia a tutta larghezza */
.garden-v2{
  position:relative;
  left:50%;

  width:100vw;
  max-width:none;

  margin-left:-50vw;
  margin-right:-50vw;

  background:#f5f5f3;
}

/* Altezza identica agli altri moduli */
.garden-v2-inner{
  display:grid;
  grid-template-columns:minmax(0, 57%) minmax(430px, 43%);
  align-items:stretch;

  width:100%;
  max-width:1360px;
  height:210px;

  margin:0 auto;
}

/* Fotografia */
.garden-v2-photo{
  width:100%;
  height:100%;

  margin:0;
  padding:0;

  overflow:hidden;
}

.garden-v2-photo img{
  display:block;

  width:100%;
  height:100%;

  margin:0;
  padding:0;

  object-fit:cover;
  object-position:center;
}

/* Colonna icona e testo */
.garden-v2-info{
  display:grid;
  grid-template-columns:72px minmax(0, 1fr);
  align-items:center;
  gap:22px;

  padding:20px 70px 20px 55px;
}

/* Icona gialla */
.garden-v2-icon{
  display:flex;
  align-items:center;
  justify-content:center;
}

.garden-v2-icon svg{
  display:block;

  width:54px;
  height:54px;

  fill:none;
  stroke:#EEB700;
  stroke-width:2.5;
  stroke-linecap:round;
  stroke-linejoin:round;
}

/* Titolo */
.garden-v2-copy h2{
  margin:0 0 15px;

  color:#275998;
  font-family:'Nunito Sans', sans-serif;
  font-size:23px;
  font-weight:800;
  line-height:1.2;
}

/* Testo */
.garden-v2-copy p{
  margin:0;

  color:#303030;
  font-family:'Nunito Sans', sans-serif;
  font-size:16px;
  font-weight:400;
  line-height:1.5;
}

/* Schermi molto grandi */
@media (min-width:1361px){

  .garden-v2-inner{
    max-width:none;
    grid-template-columns:50% 50%;
  }

  .garden-v2-info{
    padding-right:max(70px, calc((100vw - 1200px) / 2));
  }
}

/* Tablet */
@media (max-width:1000px){

  .garden-v2-inner{
    grid-template-columns:55% 45%;
  }

  .garden-v2-info{
    grid-template-columns:55px minmax(0, 1fr);
    gap:18px;
    padding:20px 30px;
  }

  .garden-v2-icon svg{
    width:45px;
    height:45px;
  }

  .garden-v2-copy p{
    font-size:15px;
  }
}

/* Mobile */
@media (max-width:768px){

  .garden-v2-inner{
    grid-template-columns:1fr;
    height:auto;
  }

  .garden-v2-photo{
    height:260px;
  }

  .garden-v2-info{
    grid-template-columns:52px minmax(0, 1fr);
    padding:38px 24px;
  }

  .garden-v2-copy p br{
    display:none;
  }
}
/* ==================================================
   CORREZIONE MODULI CASA — ALLINEAMENTO AL MOCKUP
   Incollare in fondo al custom.css
================================================== */

/* Contenitore generale: non più a tutta larghezza */
.living-v2,
.kitchen-v2,
.bedroom-v2,
.garden-v2{
  position:relative !important;
  left:auto !important;

  width:calc(100% - 48px) !important;
  max-width:1200px !important;

  margin:0 auto !important;

  background:#f5f5f3 !important;
}

/* Altezza più compatta come nel mockup */
.living-v2-inner,
.kitchen-v2-inner,
.bedroom-v2-inner,
.garden-v2-inner{
  width:100% !important;
  max-width:none !important;
  height:190px !important;
  margin:0 !important;
  align-items:stretch !important;
}

/* ==================================================
   ZONA GIORNO E ZONA NOTTE
   Testo a sinistra, fotografia a destra
================================================== */

.living-v2-inner,
.bedroom-v2-inner{
  grid-template-columns:50% 42% !important;
  justify-content:space-between !important;
  padding-right:68px !important;
}

/* ==================================================
   CUCINA E GIARDINO
   Fotografia a sinistra, testo a destra
================================================== */

.kitchen-v2-inner,
.garden-v2-inner{
  grid-template-columns:42% 50% !important;
  justify-content:space-between !important;
  padding-left:68px !important;
}

/* Fotografie */
.living-v2-photo,
.kitchen-v2-photo,
.bedroom-v2-photo,
.garden-v2-photo{
  width:100% !important;
  height:190px !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
}

.living-v2-photo img,
.kitchen-v2-photo img,
.bedroom-v2-photo img,
.garden-v2-photo img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  object-fit:cover !important;
}

/* Colonne con icona e testo */
.living-v2-info,
.kitchen-v2-info,
.bedroom-v2-info,
.garden-v2-info{
  display:grid !important;
  grid-template-columns:52px minmax(0,1fr) !important;
  align-items:center !important;
  gap:18px !important;
  min-width:0 !important;
}

/* Testo a sinistra */
.living-v2-info,
.bedroom-v2-info{
  padding:24px 34px 24px 68px !important;
}

/* Testo a destra */
.kitchen-v2-info,
.garden-v2-info{
  padding:24px 68px 24px 34px !important;
}

/* Icone */
.living-v2-icon,
.kitchen-v2-icon,
.bedroom-v2-icon,
.garden-v2-icon{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:0 !important;
}

.living-v2-icon svg,
.kitchen-v2-icon svg,
.bedroom-v2-icon svg,
.garden-v2-icon svg{
  width:42px !important;
  height:42px !important;
  stroke:#EEB700 !important;
  stroke-width:2.2 !important;
}

/* Titoli */
.living-v2-copy h2,
.kitchen-v2-copy h2,
.bedroom-v2-copy h2,
.garden-v2-copy h2{
  margin:0 0 12px !important;
  color:#275998 !important;
  font-family:'Nunito Sans', sans-serif !important;
  font-size:20px !important;
  font-weight:800 !important;
  line-height:1.2 !important;
}

/* Testi */
.living-v2-copy p,
.kitchen-v2-copy p,
.bedroom-v2-copy p,
.garden-v2-copy p{
  margin:0 !important;
  color:#303030 !important;
  font-family:'Nunito Sans', sans-serif !important;
  font-size:14px !important;
  font-weight:400 !important;
  line-height:1.5 !important;
}

/* Evita che le vecchie regole desktop allarghino i blocchi */
@media (min-width:1361px){

  .living-v2-inner,
  .bedroom-v2-inner{
    grid-template-columns:50% 42% !important;
    padding-right:68px !important;
  }

  .kitchen-v2-inner,
  .garden-v2-inner{
    grid-template-columns:42% 50% !important;
    padding-left:68px !important;
  }

  .living-v2-info,
  .bedroom-v2-info{
    padding:24px 34px 24px 68px !important;
  }

  .kitchen-v2-info,
  .garden-v2-info{
    padding:24px 68px 24px 34px !important;
  }
}

/* ==================================================
   TABLET
================================================== */

@media (max-width:1000px){

  .living-v2,
  .kitchen-v2,
  .bedroom-v2,
  .garden-v2{
    width:calc(100% - 30px) !important;
  }

  .living-v2-inner,
  .bedroom-v2-inner{
    grid-template-columns:48% 48% !important;
    padding-right:0 !important;
  }

  .kitchen-v2-inner,
  .garden-v2-inner{
    grid-template-columns:48% 48% !important;
    padding-left:0 !important;
  }

  .living-v2-info,
  .kitchen-v2-info,
  .bedroom-v2-info,
  .garden-v2-info{
    grid-template-columns:44px minmax(0,1fr) !important;
    gap:14px !important;
    padding:22px 28px !important;
  }

  .living-v2-icon svg,
  .kitchen-v2-icon svg,
  .bedroom-v2-icon svg,
  .garden-v2-icon svg{
    width:36px !important;
    height:36px !important;
  }

  .living-v2-copy h2,
  .kitchen-v2-copy h2,
  .bedroom-v2-copy h2,
  .garden-v2-copy h2{
    font-size:19px !important;
  }

  .living-v2-copy p,
  .kitchen-v2-copy p,
  .bedroom-v2-copy p,
  .garden-v2-copy p{
    font-size:13px !important;
  }
}

/* ==================================================
   MOBILE
================================================== */

@media (max-width:768px){

  .living-v2,
  .kitchen-v2,
  .bedroom-v2,
  .garden-v2{
    width:calc(100% - 28px) !important;
  }

  .living-v2-inner,
  .kitchen-v2-inner,
  .bedroom-v2-inner,
  .garden-v2-inner{
    display:flex !important;
    flex-direction:column !important;
    height:auto !important;
    padding:0 !important;
  }

  /* Su mobile: testo prima, fotografia dopo */
  .living-v2-info,
  .bedroom-v2-info{
    order:1;
  }

  .living-v2-photo,
  .bedroom-v2-photo{
    order:2;
  }

  .kitchen-v2-info,
  .garden-v2-info{
    order:1;
  }

  .kitchen-v2-photo,
  .garden-v2-photo{
    order:2;
  }

  .living-v2-info,
  .kitchen-v2-info,
  .bedroom-v2-info,
  .garden-v2-info{
    width:100% !important;
    grid-template-columns:44px minmax(0,1fr) !important;
    padding:30px 24px !important;
  }

  .living-v2-photo,
  .kitchen-v2-photo,
  .bedroom-v2-photo,
  .garden-v2-photo{
    width:100% !important;
    height:240px !important;
  }

  .living-v2-copy p br,
  .kitchen-v2-copy p br,
  .bedroom-v2-copy p br,
  .garden-v2-copy p br{
    display:none !important;
  }
}
/* ==================================================
   CORREZIONE FINALE SFONDI MODULI CASA
   Fasce a tutta larghezza, contenuto centrato
================================================== */

/* Le sezioni tornano a tutta larghezza */
.living-v2,
.kitchen-v2,
.bedroom-v2,
.garden-v2{
  position:relative !important;
  left:50% !important;

  width:100vw !important;
  max-width:none !important;

  margin-left:-50vw !important;
  margin-right:-50vw !important;
}

/* Alternanza sfondi come nel mockup */
.living-v2{
  background:#f5f5f3 !important;
}

.kitchen-v2{
  background:#ffffff !important;
}

.bedroom-v2{
  background:#f5f5f3 !important;
}

.garden-v2{
  background:#ffffff !important;
}

/* Il contenuto interno resta centrato */
.living-v2-inner,
.kitchen-v2-inner,
.bedroom-v2-inner,
.garden-v2-inner{
  width:calc(100% - 48px) !important;
  max-width:1200px !important;
  margin:0 auto !important;
}

/* Su tablet */
@media (max-width:1000px){

  .living-v2-inner,
  .kitchen-v2-inner,
  .bedroom-v2-inner,
  .garden-v2-inner{
    width:calc(100% - 30px) !important;
  }
}

/* Su mobile */
@media (max-width:768px){

  .living-v2-inner,
  .kitchen-v2-inner,
  .bedroom-v2-inner,
  .garden-v2-inner{
    width:calc(100% - 28px) !important;
  }
}
/* ==================================================
   DOTAZIONI — TUTTO CIÒ CHE TROVI ALLA CASINA
================================================== */

#sp-house-amenities,
#sp-house-amenities > .sp-column,
#sp-house-amenities .sp-module,
#sp-house-amenities .sp-module-content,
#sp-house-amenities .custom,
#sp-house-amenities .mod-custom{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
}

/* Fascia a tutta larghezza */
.house-amenities{
  position:relative;
  left:50%;

  width:100vw;
  max-width:none;

  margin-left:-50vw;
  margin-right:-50vw;

  background:#f5f5f3;
}

/* Contenuto interno */
.house-amenities-inner{
  width:calc(100% - 48px);
  max-width:1200px;

  margin:0 auto;
  padding:26px 18px 28px;
}

/* Titolo */
.house-amenities-heading{
  margin:0 0 24px;
  text-align:center;
}

.house-amenities-heading h2{
  margin:0;

  color:#275998;
  font-family:'Nunito Sans', sans-serif;
  font-size:20px;
  font-weight:800;
  line-height:1.2;
}

.house-amenities-heading span{
  display:block;

  width:42px;
  height:2px;

  margin:10px auto 0;
  background:#EEB700;
}

/* Quattro gruppi */
.house-amenities-groups{
  display:grid;
  grid-template-columns:1.35fr 1.7fr .7fr 1fr;
  align-items:start;
}

/* Singolo gruppo */
.amenities-group{
  min-width:0;
  padding:0 18px;
  border-right:1px solid #d8dce1;
}

.amenities-group:first-child{
  padding-left:0;
}

.amenities-group:last-child{
  padding-right:0;
  border-right:0;
}

/* Titolo categoria */
.amenities-group h3{
  margin:0 0 15px;

  color:#275998;
  font-family:'Nunito Sans', sans-serif;
  font-size:12px;
  font-weight:800;
  line-height:1.2;
  text-align:center;
}

/* Elenco interno */
.amenities-items{
  display:flex;
  align-items:flex-start;
  justify-content:space-around;
  gap:12px;
}

/* Singola dotazione */
.amenity-item{
  flex:1 1 0;
  min-width:0;

  display:flex;
  flex-direction:column;
  align-items:center;

  color:#275998;
  text-align:center;
}
/* Icone PNG */
.amenity-item img{
    display:block;
    width:30px;
    height:30px;
    object-fit:contain;
    margin:0 auto 8px;
}

/* Didascalie */
.amenity-item span{
  color:#275998;
  font-family:'Nunito Sans', sans-serif;
  font-size:9px;
  font-weight:600;
  line-height:1.25;
}

/* ==================================================
   TABLET
================================================== */

@media (max-width:1100px){

  .house-amenities-groups{
    grid-template-columns:1fr 1fr;
    row-gap:28px;
  }

  .amenities-group{
    border-right:0;
    padding:0 25px;
  }

  .amenities-group:nth-child(odd){
    border-right:1px solid #d8dce1;
  }

  .amenities-group:first-child{
    padding-left:25px;
  }

  .amenities-group:last-child{
    padding-right:25px;
  }
}

/* ==================================================
   MOBILE
================================================== */

@media (max-width:768px){

  .house-amenities-inner{
    width:calc(100% - 28px);
    padding:32px 0;
  }

  .house-amenities-heading h2{
    font-size:19px;
  }

  .house-amenities-groups{
    grid-template-columns:1fr;
    gap:0;
  }

  .amenities-group,
  .amenities-group:first-child,
  .amenities-group:last-child,
  .amenities-group:nth-child(odd){
    padding:24px 0;
    border-right:0;
    border-bottom:1px solid #d8dce1;
  }

  .amenities-group:first-child{
    padding-top:4px;
  }

  .amenities-group:last-child{
    padding-bottom:0;
    border-bottom:0;
  }

  .amenities-group h3{
    margin-bottom:18px;
    font-size:13px;
  }

  .amenities-items{
    flex-wrap:wrap;
    justify-content:center;
    gap:22px 10px;
  }

  .amenity-item{
    flex:0 0 calc(33.333% - 10px);
  }
  .amenity-item span{
    font-size:10px;
  }
}
/* ==================================================
   INFORMAZIONI UTILI
================================================== */

#sp-useful-info,
#sp-useful-info > .sp-column,
#sp-useful-info .sp-module,
#sp-useful-info .sp-module-content,
#sp-useful-info .custom,
#sp-useful-info .mod-custom{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
}

/* Fascia a tutta larghezza */
.useful-info{
  position:relative;
  left:50%;

  width:100vw;
  max-width:none;

  margin-left:-50vw;
  margin-right:-50vw;

  background:#ffffff;
}

/* Contenuto interno */
.useful-info-inner{
  width:calc(100% - 48px);
  max-width:1200px;

  margin:0 auto;
  padding:18px 18px 22px;
}

/* Titolo */
.useful-info-heading{
  margin:0 0 16px;
  text-align:center;
}

.useful-info-heading h2{
  margin:0;

  color:#275998;
  font-family:'Nunito Sans', sans-serif;
  font-size:20px;
  font-weight:800;
  line-height:1.2;
}

.useful-info-heading > span{
  display:block;

  width:42px;
  height:2px;

  margin:10px auto 0;
  background:#EEB700;
}

/* Quattro informazioni */
.useful-info-items{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  align-items:start;
  gap:30px;
}

/* Singola informazione */
.useful-info-item{
  min-width:0;

  display:flex;
  flex-direction:column;
  align-items:center;

  color:#275998;
  text-align:center;
}

/* Icone PNG */
.useful-info-item img{
  display:block;

  width:30px;
  height:30px;

  margin:0 auto 7px;
  object-fit:contain;
}

/* Testi */
.useful-info-text{
  display:flex;
  flex-direction:column;
  align-items:center;
}

.useful-info-text strong{
  display:block;
  margin:0 0 2px;

  color:#275998;
  font-family:'Nunito Sans', sans-serif;
  font-size:12px;
  font-weight:800;
  line-height:1.25;
}

.useful-info-text span{
  display:block;

  color:#26354b;
  font-family:'Nunito Sans', sans-serif;
  font-size:11px;
  font-weight:500;
  line-height:1.35;
}

/* ==================================================
   TABLET
================================================== */

@media (max-width:900px){

  .useful-info-items{
    grid-template-columns:repeat(2, 1fr);
    gap:28px 20px;
  }
}

/* ==================================================
   MOBILE
================================================== */

@media (max-width:600px){

  .useful-info-inner{
    width:calc(100% - 28px);
    padding:28px 0;
  }

  .useful-info-heading{
    margin-bottom:24px;
  }

  .useful-info-heading h2{
    font-size:19px;
  }

  .useful-info-items{
    grid-template-columns:repeat(2, 1fr);
    gap:28px 12px;
  }

  .useful-info-item img{
    width:28px;
    height:28px;
  }

  .useful-info-text strong{
    font-size:12px;
  }

  .useful-info-text span{
    font-size:10px;
  }
}
/* ==================================================
   GALLERY — ALCUNE IMMAGINI DELLA CASA
================================================== */

#sp-house-gallery,
#sp-house-gallery > .sp-column,
#sp-house-gallery .sp-module,
#sp-house-gallery .sp-module-content,
#sp-house-gallery .custom,
#sp-house-gallery .mod-custom{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
}

/* Fascia a tutta larghezza */
.house-gallery{
  position:relative;
  left:50%;

  width:100vw;
  max-width:none;

  margin-left:-50vw;
  margin-right:-50vw;

  background:#f7f7f5;
}

/* Contenuto centrale */
.house-gallery-inner{
  width:calc(100% - 48px);
  max-width:1150px;

  margin:0 auto;
  padding:18px 18px 20px;
}

/* Titolo */
.house-gallery-heading{
  margin:0 0 18px;
  text-align:center;
}

.house-gallery-heading h2{
  margin:0;

  color:#275998;
  font-family:'Nunito Sans', sans-serif;
  font-size:20px;
  font-weight:800;
  line-height:1.2;
}

.house-gallery-heading > span{
  display:block;

  width:42px;
  height:2px;

  margin:10px auto 0;
  background:#EEB700;
}

/* Griglia fotografie */
.house-gallery-grid{
  display:grid;
  grid-template-columns:1.6fr repeat(3, 1fr);
  grid-template-rows:128px 128px;
  gap:4px;
}

/* Foto principale: occupa due righe */
.house-gallery-photo-main{
  grid-row:1 / 3;
}

/* Singola fotografia */
.house-gallery-photo{
  position:relative;
  display:block;
  min-width:0;
  min-height:0;
  overflow:hidden;
  background:#e6e6e3;
}

/* Immagini */
.house-gallery-photo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  transition:transform .35s ease;
}

/* Effetto al passaggio del mouse */
.house-gallery-photo:hover img{
  transform:scale(1.035);
}

/* Pulsante */
.house-gallery-button{
  margin-top:14px;
  text-align:center;
}

.house-gallery-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;

  min-width:188px;
  min-height:40px;

  padding:8px 22px;
  border:1px solid #275998;
  border-radius:2px;

  color:#275998;
  background:#ffffff;

  font-family:'Nunito Sans', sans-serif;
  font-size:12px;
  font-weight:800;
  line-height:1;
  text-decoration:none;
  text-transform:uppercase;
  letter-spacing:.15px;

  transition:
    color .25s ease,
    background-color .25s ease;
}

.house-gallery-link:hover,
.house-gallery-link:focus{
  color:#ffffff;
  background:#275998;
  text-decoration:none;
}

/* ==================================================
   TABLET
================================================== */

@media (max-width:900px){

  .house-gallery-grid{
    grid-template-columns:repeat(3, 1fr);
    grid-template-rows:230px 135px 135px;
  }

  .house-gallery-photo-main{
    grid-column:1 / 4;
    grid-row:1;
  }
}

/* ==================================================
   MOBILE
================================================== */

@media (max-width:600px){

  .house-gallery-inner{
    width:calc(100% - 28px);
    padding:28px 0;
  }

  .house-gallery-heading{
    margin-bottom:22px;
  }

  .house-gallery-heading h2{
    font-size:19px;
  }

  .house-gallery-grid{
    grid-template-columns:1fr 1fr;
    grid-template-rows:220px repeat(3, 125px);
    gap:4px;
  }

  .house-gallery-photo-main{
    grid-column:1 / 3;
    grid-row:1;
  }

  .house-gallery-button{
    margin-top:18px;
  }

  .house-gallery-link{
    min-width:180px;
    min-height:42px;
    font-size:11px;
  }
}
/* ==================================================
   CTA FINALE — TI ASPETTIAMO A CASTIGLIONCELLO
================================================== */

#sp-house-cta,
#sp-house-cta > .sp-column,
#sp-house-cta .sp-module,
#sp-house-cta .sp-module-content,
#sp-house-cta .custom,
#sp-house-cta .mod-custom{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
}

/* Fascia a tutta larghezza */
.house-cta{
  position:relative;
  left:50%;

  width:100vw;
  max-width:none;
  min-height:180px;

  margin-left:-50vw;
  margin-right:-50vw;

  display:flex;
  align-items:center;
  justify-content:center;

  overflow:hidden;

  background-image:url('/images/castiglioncello-cta.jpg');
  background-repeat:no-repeat;
  background-position:center 55%;
  background-size:cover;
}

/* Velatura blu */
.house-cta-overlay{
  position:absolute;
  inset:0;

background:
  linear-gradient(
    90deg,
    rgba(39,89,152,.72) 0%,
    rgba(25,78,140,.58) 48%,
    rgba(39,89,152,.72) 100%
  );
}

/* Contenuto */
.house-cta-inner{
  position:relative;
  z-index:2;

  width:calc(100% - 48px);
  max-width:1000px;

  margin:0 auto;
  padding:28px 20px 34px;

  text-align:center;
}

/* Titolo */
.house-cta h2{
  margin:0;

  color:#ffffff;
  font-family:'Nunito Sans', sans-serif;
  font-size:32px;
  font-weight:700;
  line-height:1.15;

  text-shadow:0 1px 3px rgba(0,0,0,.35);
}

/* Sottotitolo */
.house-cta p{
  margin:8px 0 0;

  color:#ffffff;
  font-family:'Nunito Sans', sans-serif;
  font-size:17px;
  font-weight:600;
  line-height:1.3;

  text-shadow:0 1px 3px rgba(0,0,0,.35);
}

/* Linea gialla */
.house-cta-line{
  display:block;

  width:44px;
  height:3px;

  margin:12px auto 14px;
  background:#EEB700;
}

/* Contenitore pulsanti */
.house-cta-buttons{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
}

/* Pulsanti */
.house-cta-button{
  min-width:270px;
  min-height:50px;

  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;

  padding:11px 22px;
  border-radius:3px;

  font-family:'Nunito Sans', sans-serif;
  font-size:14px;
  font-weight:800;
  line-height:1;
  letter-spacing:.15px;
  text-decoration:none;
  text-transform:uppercase;

  transition:
    transform .2s ease,
    background-color .2s ease,
    color .2s ease,
    border-color .2s ease;
}

/* Pulsante disponibilità */
.house-cta-button-primary{
  border:2px solid #EEB700;
  color:#173b70;
  background:#EEB700;
}

.house-cta-button-primary:hover,
.house-cta-button-primary:focus{
  color:#173b70;
  background:#f5c62c;
  border-color:#f5c62c;
  text-decoration:none;
  transform:translateY(-1px);
}

/* Pulsante WhatsApp */
.house-cta-button-whatsapp{
  border:2px solid rgba(255,255,255,.75);
  color:#ffffff;
  background:rgba(15,61,116,.45);
}

.house-cta-button-whatsapp:hover,
.house-cta-button-whatsapp:focus{
  color:#275998;
  background:#ffffff;
  border-color:#ffffff;
  text-decoration:none;
  transform:translateY(-1px);
}

/* Icone */
.house-cta-icon{
  flex:0 0 auto;
  width:21px;
  height:21px;
}

.house-cta-icon svg{
  display:block;
  width:100%;
  height:100%;

  fill:none;
  stroke:currentColor;
  stroke-width:2.3;
  stroke-linecap:round;
  stroke-linejoin:round;
}

/* ==================================================
   TABLET
================================================== */

@media (max-width:900px){

  .house-cta{
    min-height:230px;
  }

  .house-cta-inner{
    padding:28px 20px;
  }

  .house-cta h2{
    font-size:28px;
  }

  .house-cta p{
    font-size:16px;
  }

  .house-cta-button{
    min-width:240px;
  }
}

/* ==================================================
   MOBILE
================================================== */

@media (max-width:650px){

  .house-cta{
    min-height:320px;
    background-position:center;
  }

  .house-cta-inner{
    width:calc(100% - 28px);
    padding:34px 0;
  }

  .house-cta h2{
    font-size:27px;
    line-height:1.2;
  }

  .house-cta p{
    max-width:300px;
    margin:10px auto 0;

    font-size:15px;
  }

  .house-cta-line{
    margin-top:14px;
    margin-bottom:20px;
  }

  .house-cta-buttons{
    flex-direction:column;
    gap:12px;
  }

  .house-cta-button{
    width:100%;
    max-width:320px;
    min-width:0;
    min-height:50px;

    font-size:13px;
  }
}
/* Nasconde la riga highlights solo nella pagina La casa */
body.itemid-101 #sp-highlights{
  display:none !important;
}
/* PAGINA FOTO - HERO */

.photo-page-hero{
    position:relative;
    min-height:520px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:80px 24px;
    overflow:hidden;
    text-align:center;
    background:
        url("/images/foto-hero.jpg")
        center center / cover no-repeat;
}

.photo-page-hero__overlay{
    position:absolute;
    inset:0;
    background:rgba(18, 42, 73, 0.34);
}

.photo-page-hero__content{
    position:relative;
    z-index:2;
    max-width:850px;
    color:#fff;
}

.photo-page-hero__eyebrow{
    display:block;
    margin-bottom:14px;
    font-family:"Nunito Sans", sans-serif;
    font-size:14px;
    font-weight:700;
    letter-spacing:0.18em;
    text-transform:uppercase;
}

.photo-page-hero h1{
    margin:0 0 18px;
    font-family:"Nunito Sans", sans-serif;
    font-size:clamp(48px, 7vw, 84px);
    line-height:1;
    font-weight:700;
    color:#fff;
}

.photo-page-hero p{
    max-width:680px;
    margin:0 auto;
    font-family:"Nunito Sans", sans-serif;
    font-size:clamp(18px, 2vw, 22px);
    line-height:1.55;
    color:#fff;
}

@media (max-width:767px){
    .photo-page-hero{
        min-height:420px;
        padding:70px 20px;
    }

    .photo-page-hero__eyebrow{
        font-size:12px;
        letter-spacing:0.14em;
    }
}
/* INTRO PAGINA FOTO */

.photo-intro{

    padding:100px 20px 70px;
    text-align:center;
    background:#fff;

}

.photo-intro .container{

    max-width:900px;
    margin:auto;

}

.photo-intro .section-eyebrow{

    display:block;
    margin-bottom:15px;

    color:#EEB700;

    font-size:13px;

    font-weight:700;

    letter-spacing:.18em;

    text-transform:uppercase;

}

.photo-intro h2{
  color:#275998;
  font-family:'Nunito Sans', sans-serif;
  font-size:46px;
  font-weight:700;
  margin-bottom:30px;
}

.photo-intro p{

    font-size:20px;

    line-height:1.8;

    color:#666;

    max-width:760px;

    margin:auto;

}

@media(max-width:991px){

.photo-intro{

padding:80px 25px 50px;

}

.photo-intro h2{

font-size:34px;

}

.photo-intro p{

font-size:18px;

}

}
/* =========================================================
   PAGINA FOTO – GALLERIA EDITORIALE
   ========================================================= */

.casina-gallery{
    padding:30px 24px 110px;
    background:#fff;
}

.casina-gallery__inner{
    width:100%;
    max-width:1320px;
    margin:0 auto;
}

.casina-gallery__grid{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    grid-auto-rows:330px;
    grid-auto-flow:dense;
    gap:22px;
}

.casina-photo{
    position:relative;
    display:block;
    min-width:0;
    overflow:hidden;
    border-radius:8px;
    background:#f2f2f2;
}

.casina-photo--wide{
    grid-column:span 2;
}
.casina-photo--full{
    grid-column:1 / -1;
}

.casina-photo img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    transition:
        transform .65s cubic-bezier(.2,.7,.2,1),
        filter .4s ease;
}

.casina-photo::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    background:linear-gradient(
        180deg,
        rgba(0,0,0,0) 55%,
        rgba(20,35,55,.18) 100%
    );
    opacity:0;
    transition:opacity .35s ease;
    pointer-events:none;
}

.casina-photo::after{
    content:"+";
    position:absolute;
    z-index:2;
    right:18px;
    bottom:16px;
    display:flex;
    align-items:center;
    justify-content:center;
    width:38px;
    height:38px;
    border:1px solid rgba(255,255,255,.85);
    border-radius:50%;
    background:rgba(39,89,152,.72);
    color:#fff;
    font-family:"Nunito Sans", sans-serif;
    font-size:24px;
    font-weight:300;
    line-height:1;
    opacity:0;
    transform:translateY(8px);
    transition:
        opacity .3s ease,
        transform .3s ease;
    pointer-events:none;
}

.casina-photo:hover img{
    transform:scale(1.02);
    filter:brightness(.94);
}

.casina-photo:hover::before,
.casina-photo:hover::after{
    opacity:1;
}

.casina-photo:hover::after{
    transform:translateY(0);
}

/* TABLET */

@media (max-width:991px){

    .casina-gallery{
        padding:25px 20px 85px;
    }

    .casina-gallery__grid{
        grid-template-columns:repeat(2, minmax(0, 1fr));
        grid-auto-rows:280px;
        gap:14px;
    }

    .casina-photo--wide{
        grid-column:span 2;
    }
}

/* SMARTPHONE */

@media (max-width:575px){

    .casina-gallery{
        padding:15px 14px 70px;
    }

    .casina-gallery__grid{
        display:grid;
        grid-template-columns:1fr;
        grid-auto-rows:auto;
        gap:12px;
    }

    .casina-photo,
    .casina-photo--wide,
    .casina-photo--tall{
        grid-column:auto;
        grid-row:auto;
        aspect-ratio:4 / 3;
    }

   .casina-photo{
    aspect-ratio:4 / 3;
}

    .casina-photo img{
        min-height:0;
    }

    .casina-photo::after{
        display:none;
    }
}
/* ==========================================================================
   60. DOVE SIAMO - HERO
   ========================================================================== */

.location-page-hero{
  position:relative;
  width:100vw;
  min-height:570px;
  margin-left:calc(50% - 50vw);
  background:
    url('/images/dove-siamo-hero.jpg')
    center center / cover no-repeat;
  display:flex;
  align-items:center;
  overflow:hidden;
}

.location-hero-overlay{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.32);
}

.location-hero-content{
  position:relative;
  z-index:2;
  width:100%;
  max-width:1200px;
  margin:0 auto;
  padding:0 60px;
  color:#fff;
}

.location-hero-eyebrow{
  display:block;
  margin-bottom:18px;
  font-family:'Nunito Sans', sans-serif;
  font-size:13px;
  font-weight:700;
  line-height:1.4;
  letter-spacing:2.4px;
  text-transform:uppercase;
  color:#EEB700;
}

.location-hero-content h1{
  max-width:700px;
  margin:0 0 18px;
  font-family:'Nunito Sans', sans-serif;
  font-size:clamp(48px, 7vw, 84px);
  font-weight:400;
  line-height:1;
  color:#fff;
  text-shadow:0 2px 8px rgba(0,0,0,.35);
}

.location-hero-line{
  width:70px;
  height:4px;
  margin:0 0 26px;
  background:#EEB700;
}

.location-hero-content p{
  max-width:690px;
  margin:0;
  font-family:'Nunito Sans', sans-serif;
  font-size:21px;
  font-weight:400;
  line-height:1.55;
  color:#fff;
  text-shadow:0 1px 5px rgba(0,0,0,.4);
}

@media(max-width:991px){
  .location-page-hero{
    min-height:520px;
  }

  .location-hero-content{
    padding:0 35px;
  }

  .location-hero-content h1{
    font-size:48px;
  }

  .location-hero-content p{
    font-size:18px;
  }
}

@media(max-width:600px){
  .location-page-hero{
    min-height:470px;
    background-position:center center;
  }

  .location-hero-content{
    padding:0 24px;
  }

  .location-hero-eyebrow{
    font-size:11px;
    letter-spacing:1.8px;
  }

  .location-hero-content h1{
    font-size:40px;
  }

  .location-hero-content p{
    font-size:17px;
  }

  .location-hero-content p br{
    display:none;
  }
}
/* ==========================================================================
   61. DOVE SIAMO - INTRODUZIONE
   ========================================================================== */

.location-intro{
    padding:50px 0;
    background:#fff;
}

.location-intro-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:70px;
    align-items:center;
}

.location-intro-text h2{
    margin:18px 0 30px;
    color:#275998;
    font-size:46px;
    line-height:1.2;
    font-weight:700;
}

.location-intro-text p{
    margin-bottom:22px;
    font-size:19px;
    line-height:1.9;
    color:#555;
}

.location-intro-image img{
    width:100%;
    display:block;
    border-radius:18px;
    box-shadow:0 20px 45px rgba(0,0,0,.12);
}

@media(max-width:991px){

.location-intro-grid{
    grid-template-columns:1fr;
}

.location-intro-text{
    order:2;
}

.location-intro-image{
    order:1;
}

.location-intro-text h2{
    font-size:36px;
}

}
/* ==========================================================================
   62. DOVE SIAMO - MAPPA
   ========================================================================== */

.location-map-section{
    padding:50px 0 110px;
    background:#F7F5F0;
}

.location-map-header{
    max-width:760px;
    margin:0 auto 48px;
    text-align:center;
}

.location-map-header h2{
    margin:18px 0 22px;
    color:#275998;
    font-family:'Nunito Sans', sans-serif;
    font-size:46px;
    font-weight:700;
    line-height:1.2;
}

.location-map-header p{
    max-width:650px;
    margin:0 auto;
    color:#555;
    font-family:'Nunito Sans', sans-serif;
    font-size:19px;
    line-height:1.8;
}

.location-map-wrapper{
    position:relative;
    min-height:560px;
    overflow:hidden;
    border-radius:20px;
    background:#ddd;
    box-shadow:0 22px 55px rgba(39,89,152,.14);
}

.location-map-frame{
    display:block;
    width:100%;
    height:560px;
    border:0;
}

.location-map-card{
    position:absolute;
    left:38px;
    bottom:38px;
    width:min(360px, calc(100% - 76px));
    padding:30px;
    border-radius:16px;
    background:rgba(255,255,255,.96);
    box-shadow:0 16px 40px rgba(0,0,0,.18);
    backdrop-filter:blur(8px);
}

.location-map-card-label{
    display:block;
    margin-bottom:10px;
    color:#EEB700;
    font-family:'Nunito Sans', sans-serif;
    font-size:12px;
    font-weight:800;
    line-height:1.4;
    letter-spacing:1.8px;
    text-transform:uppercase;
}

.location-map-card h3{
    margin:0 0 14px;
    color:#275998;
    font-family:'Nunito Sans', sans-serif;
    font-size:28px;
    font-weight:700;
    line-height:1.2;
}

.location-map-address{
    margin:0 0 24px;
    color:#555;
    font-family:'Nunito Sans', sans-serif;
    font-size:16px;
    line-height:1.7;
}

.location-map-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:48px;
    padding:12px 24px;
    border-radius:8px;
    background:#275998;
    color:#fff;
    font-family:'Nunito Sans', sans-serif;
    font-size:15px;
    font-weight:700;
    line-height:1.2;
    text-decoration:none;
    transition:
        background-color .25s ease,
        transform .25s ease;
}

.location-map-button:hover{
    background:#1f477a;
    color:#fff;
    text-decoration:none;
    transform:translateY(-2px);
}
@media (max-width:991px){

    .location-map-section{
        padding:80px 0 90px;
    }

    .location-map-header h2{
        font-size:38px;
    }

    .location-map-wrapper{
        min-height:auto;
    }

    .location-map-frame{
        height:500px;
    }

    .location-map-card{
        left:24px;
        bottom:24px;
        width:min(340px, calc(100% - 48px));
    }

}

@media (max-width:600px){

    .location-map-section{
        padding:65px 0 75px;
    }

    .location-map-header{
        margin-bottom:34px;
        text-align:left;
    }

    .location-map-header h2{
        font-size:32px;
    }

    .location-map-header p{
        font-size:17px;
    }

    .location-map-wrapper{
        overflow:visible;
        border-radius:16px;
        background:transparent;
        box-shadow:none;
    }

    .location-map-frame{
        height:390px;
        border-radius:16px;
        box-shadow:0 16px 35px rgba(39,89,152,.12);
    }

    .location-map-card{
        position:relative;
        left:auto;
        bottom:auto;
        width:calc(100% - 28px);
        margin:-35px auto 0;
        padding:26px;
    }

    .location-map-card h3{
        font-size:25px;
    }

}
/* ==========================================================================
   63. DOVE SIAMO - COME RAGGIUNGERCI
   ========================================================================== */

.location-reach{
    background:#FFFFFF;
}

#sp-location-reach-intro{
    padding:50px 0 20px;
}

#sp-location-reach{
    padding:20px 0 50px;
}

.reach-header{
    max-width:760px;
    margin:0 auto 0px;
    text-align:center;
}

.reach-header .section-eyebrow{
    display:block;
    text-align:center;
}

.reach-title{
    margin:18px 0 20px;
    color:#275998;
    font-size:46px;
    font-weight:700;
    text-align:center;
}

.reach-intro{
    max-width:760px;
    margin:0 auto;
    color:#555;
    font-size:19px;
    line-height:1.8;
    text-align:center;
}

.reach-card{
    height:100%;
    padding:0px 30px;
    text-align:center;
}

.reach-card p{
    margin:0;
}

.reach-icon{
    display:flex;
    align-items:center;
    justify-content:center;
    width:82px;
    height:82px;
    margin:0 auto 28px;
    border-radius:50%;
    background:#F7F5F0;
    font-size:38px;
}

.reach-card h3{
    margin-bottom:18px;
    color:#275998;
    font-family:'Nunito Sans', sans-serif;
    font-size:30px;
    font-weight:700;
}

.reach-card p{
    color:#666;
    font-size:18px;
    line-height:1.8;
}
/* ==========================================================================
   64. LE SPIAGGE
   ========================================================================== */

.location-beaches{
    padding:50px 0;
    background:#F7F5F0;
}
#sp-sp-location-beaches-dintorni{
    padding-bottom:40px;
}

.location-beaches-header{
    max-width:760px;
    margin:0 auto 60px;
    text-align:center;
}

.location-beaches-header .section-eyebrow{
    display:block;
    text-align:center;
}

.location-beaches-header h2{
    margin:18px 0 22px;
    color:#275998;
    font-family:'Nunito Sans',sans-serif;
    font-size:46px;
    font-weight:700;
    line-height:1.2;
}

.location-beaches-header p{
    max-width:680px;
    margin:0 auto;
    color:#555;
    font-size:19px;
    line-height:1.8;
}
/* ==========================================================================
   64.1 CARD SPIAGGE
   ========================================================================== */

/* Sezioni spiagge */
:is(#sp-sp-location-beaches, #sp-sp-location-beaches-dintorni) .row{
    align-items:stretch;
}

:is(#sp-sp-location-beaches, #sp-sp-location-beaches-dintorni) .row > [class*="col-"]{
    display:flex;
}

:is(#sp-sp-location-beaches, #sp-sp-location-beaches-dintorni) .sp-column,
:is(#sp-sp-location-beaches, #sp-sp-location-beaches-dintorni) .sp-module,
:is(#sp-sp-location-beaches, #sp-sp-location-beaches-dintorni) .sp-module-content,
:is(#sp-sp-location-beaches, #sp-sp-location-beaches-dintorni) .mod-custom{
    display:flex;
    flex:1;
    flex-direction:column;
    width:100%;
}

/* Card */
:is(#sp-sp-location-beaches, #sp-sp-location-beaches-dintorni) .beach-card{
    display:flex;
    flex:1;
    flex-direction:column;
    width:100%;
    overflow:hidden;
    background:#FFFFFF;
    border-radius:14px;
    box-shadow:0 12px 35px rgba(39,89,152,.10);
    transition:transform .3s ease, box-shadow .3s ease;
}

:is(#sp-sp-location-beaches, #sp-sp-location-beaches-dintorni) .beach-card:hover{
    transform:translateY(-6px);
    box-shadow:0 18px 45px rgba(39,89,152,.16);
}

/* Immagine */
:is(#sp-sp-location-beaches, #sp-sp-location-beaches-dintorni) .beach-card-image{
    position:relative;
    display:block;
    flex:0 0 auto;
    overflow:hidden;
    aspect-ratio:16 / 10;
    background:#E9E7E1;
}

:is(#sp-sp-location-beaches, #sp-sp-location-beaches-dintorni) .beach-card-image img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .5s ease;
}

:is(#sp-sp-location-beaches, #sp-sp-location-beaches-dintorni) .beach-card:hover .beach-card-image img{
    transform:scale(1.05);
}

/* Contenuto */
:is(#sp-sp-location-beaches, #sp-sp-location-beaches-dintorni) .beach-card-content{
    display:flex;
    flex:1;
    flex-direction:column;
    padding:28px 26px 30px;
}

/* Badge distanza */
:is(#sp-sp-location-beaches, #sp-sp-location-beaches-dintorni) .beach-card-distance{
    display:inline-flex;
    align-items:center;
    align-self:flex-start;
    gap:7px;
    margin-bottom:13px;
    color:#EEB700;
    font-family:'Nunito Sans',sans-serif;
    font-size:13px;
    font-weight:800;
    line-height:1.2;
    letter-spacing:.06em;
    text-transform:uppercase;
}

:is(#sp-sp-location-beaches, #sp-sp-location-beaches-dintorni) .beach-card-distance svg{
    flex:0 0 auto;
    width:17px;
    height:17px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}

/* Titolo */
:is(#sp-sp-location-beaches, #sp-sp-location-beaches-dintorni) .beach-card h3{
    margin:0 0 15px;
    color:#275998;
    font-family:'Nunito Sans',sans-serif;
    font-size:25px;
    font-weight:700;
    line-height:1.25;
}

/* Testo */
:is(#sp-sp-location-beaches, #sp-sp-location-beaches-dintorni) .beach-card p{
    margin:0 0 24px;
    color:#555;
    font-family:'Nunito Sans',sans-serif;
    font-size:16px;
    line-height:1.7;
}

/* Link */
:is(#sp-sp-location-beaches, #sp-sp-location-beaches-dintorni) .beach-card-link{
    display:inline-flex;
    align-items:center;
    align-self:flex-start;
    gap:9px;
    margin-top:auto;
    color:#275998;
    font-family:'Nunito Sans',sans-serif;
    font-size:15px;
    font-weight:800;
    text-decoration:none;
    transition:color .25s ease, gap .25s ease;
}

:is(#sp-sp-location-beaches, #sp-sp-location-beaches-dintorni) .beach-card-link:hover{
    gap:13px;
    color:#EEB700;
}

:is(#sp-sp-location-beaches, #sp-sp-location-beaches-dintorni) .beach-card-link span{
    font-size:20px;
    line-height:1;
}

/* ==========================================================================
   64.2 INTRO SPIAGGE NEI DINTORNI
   ========================================================================== */

.beaches-nearby-header{
    max-width:760px;
    margin:80px auto 45px;
    text-align:center;
}

.beaches-nearby-header .section-eyebrow{
    display:block;
}

.beaches-nearby-header h2{
    margin:18px 0 22px;
    color:#275998;
    font-family:'Nunito Sans',sans-serif;
    font-size:42px;
    font-weight:700;
    line-height:1.2;
}

.beaches-nearby-header p{
    max-width:680px;
    margin:0 auto;
    color:#555;
    font-family:'Nunito Sans',sans-serif;
    font-size:18px;
    line-height:1.8;
}
/* ==========================================================================
   65.1 CARD FOOD
   ========================================================================== */

#sp-sp-location-food .row{
    align-items:stretch;
}

#sp-sp-location-food .row > [class*="col-"]{
    display:flex;
}

#sp-sp-location-food .sp-column,
#sp-sp-location-food .sp-module,
#sp-sp-location-food .sp-module-content,
#sp-sp-location-food .mod-custom{
    display:flex;
    flex:1;
    flex-direction:column;
    width:100%;
}

.food-card{
    display:flex;
    flex-direction:column;
    flex:1;
    padding:42px 32px 34px;
    background:#fff;
    border:1px solid #E6EBF2;
    border-radius:16px;
    transition:.30s;
}

.food-card:hover{
    transform:translateY(-6px);
    border-color:#275998;
    box-shadow:0 18px 40px rgba(39,89,152,.12);
}

.food-icon{
    width:74px;
    height:74px;
    margin-bottom:22px;

    display:flex;
    justify-content:center;
    align-items:center;

    border-radius:50%;
    background:#F3F7FC;
}

.food-icon img{
    width:34px;
    height:34px;
    object-fit:contain;
}
.food-card h3{
    margin:0 0 16px;
    color:#275998;
    font-size:25px;
    font-weight:700;
    line-height:1.25;
}

.food-card p{
    flex:1;
    margin:0 0 26px;
    color:#555;
    font-size:16px;
    line-height:1.75;
}

.food-link{
    display:inline-flex;
    align-items:center;
    gap:10px;
    margin-top:auto;
    color:#275998;
    font-weight:700;
    text-decoration:none;
    transition:.25s;
}

.food-link:hover{
    color:#EEB700;
    gap:14px;
}

.food-link span{
    font-size:20px;
    line-height:1;
}

/* ==========================================================================
   65.2 HEADER
   ========================================================================== */

.location-food-header{
    max-width:760px;
    margin:0 auto 35px;
    text-align:center;
}

.location-food-header .section-eyebrow{
    display:block;
}

.location-food-header h2{
    margin:14px 0 18px;
    color:#275998;
    font-size:42px;
    font-weight:700;
    line-height:1.2;
}

.location-food-header p{
    max-width:700px;
    margin:0 auto;
    color:#555;
    font-size:18px;
    line-height:1.8;
}
#sp-sp-location-food .location-food-header{
    padding-top:35px !important;
}
/* =========================================================
   10. HERO CASTIGLIONCELLO
   ========================================================= */

.castiglioncello-hero{
    position:relative;
    min-height:82vh;
    overflow:hidden;
    display:flex;
    align-items:center;

    background-position:center center !important;
    background-size:cover !important;
    background-repeat:no-repeat !important;
}

/* Overlay desktop */
.castiglioncello-hero::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:1;

    background:linear-gradient(
        90deg,
        rgba(9,25,42,.76) 0%,
        rgba(9,25,42,.54) 40%,
        rgba(9,25,42,.16) 72%,
        rgba(9,25,42,.06) 100%
    );

    pointer-events:none;
}

/* Contenitori */
.castiglioncello-hero > .container,
.castiglioncello-hero > .container-fluid{
    position:relative;
    z-index:2;
    width:100%;
}

.castiglioncello-hero-column{
    display:flex;
    align-items:center;
    min-height:82vh;
}

/* Contenuto */
.castiglioncello-hero-content{
    position:relative;
    z-index:2;

    width:min(620px,100%);
    margin-left:clamp(24px,8vw,140px);
    padding:90px 24px;

    color:#fff;
}

/* Eyebrow */
.castiglioncello-hero-eyebrow{
    margin:0 0 18px;

    color:#EEB700;

    font-size:13px;
    font-weight:700;
    line-height:1.2;
    letter-spacing:.24em;
}

/* Titolo */
.castiglioncello-hero-content h1{
    max-width:600px;
    margin:0;

    color:#fff;

    font-size:clamp(52px,6vw,92px);
    font-weight:700;
    line-height:.98;
    letter-spacing:-.035em;

    text-wrap:balance;
}

/* Testo */
.castiglioncello-hero-text{
    max-width:580px;
    margin:26px 0 0;

    color:rgba(255,255,255,.92);

    font-size:clamp(17px,1.4vw,21px);
    font-weight:400;
    line-height:1.65;
}

/* Pulsanti */
.castiglioncello-hero-buttons{
    display:flex;
    flex-wrap:wrap;
    gap:14px;

    margin-top:34px;
}

.castiglioncello-hero .hero-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;

    min-height:52px;
    padding:14px 25px;

    border:2px solid transparent;
    border-radius:3px;

    font-size:15px;
    font-weight:700;
    line-height:1;

    text-decoration:none;

    transition:
        background-color .25s ease,
        border-color .25s ease,
        color .25s ease,
        transform .25s ease;
}

.castiglioncello-hero .hero-button:hover{
    transform:translateY(-2px);
    text-decoration:none;
}

/* Pulsante principale */
.castiglioncello-hero .hero-button-primary{
    background:#EEB700;
    border-color:#EEB700;
    color:#173859;
}

.castiglioncello-hero .hero-button-primary:hover{
    background:#fff;
    border-color:#fff;
    color:#173859;
}

/* Pulsante secondario */
.castiglioncello-hero .hero-button-secondary{
    background:transparent;
    border-color:rgba(255,255,255,.82);
    color:#fff;
}

.castiglioncello-hero .hero-button-secondary:hover{
    background:#fff;
    border-color:#fff;
    color:#173859;
}

/* Indicatore scroll */
.castiglioncello-hero-scroll{
    position:absolute;
    bottom:28px;
    left:50%;
    z-index:3;

    width:28px;
    height:46px;

    border:2px solid rgba(255,255,255,.7);
    border-radius:20px;

    transform:translateX(-50%);
}

.castiglioncello-hero-scroll span{
    position:absolute;
    top:9px;
    left:50%;

    width:4px;
    height:8px;

    border-radius:4px;
    background:#fff;

    transform:translateX(-50%);
    animation:castiglioncello-scroll 1.8s infinite;
}

@keyframes castiglioncello-scroll{

    0%{
        opacity:0;
        transform:translate(-50%,0);
    }

    30%{
        opacity:1;
    }

    100%{
        opacity:0;
        transform:translate(-50%,15px);
    }
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width:991px){

    .castiglioncello-hero,
    .castiglioncello-hero-column{
        min-height:720px;
    }

    .castiglioncello-hero::before{
        background:linear-gradient(
            90deg,
            rgba(9,25,42,.70) 0%,
            rgba(9,25,42,.46) 58%,
            rgba(9,25,42,.18) 100%
        );
    }

    .castiglioncello-hero-content{
        margin-left:40px;
        padding-top:100px;
        padding-bottom:100px;
    }
}


/* =========================================================
   SMARTPHONE
   ========================================================= */

@media (max-width:575px){

    .castiglioncello-hero,
    .castiglioncello-hero-column{
        min-height:680px;
    }

    /*
       Mostra la parte interessante della foto:
       mare + promontorio + case.
    */
    .castiglioncello-hero{
        background-position:78% center !important;
    }

    /*
       Overlay mobile molto più leggero:
       scuro a sinistra per il testo,
       quasi trasparente a destra per far vedere la foto.
    */
    .castiglioncello-hero::before{
        background:linear-gradient(
            90deg,
            rgba(8,24,40,.74) 0%,
            rgba(8,24,40,.58) 42%,
            rgba(8,24,40,.28) 70%,
            rgba(8,24,40,.10) 100%
        );
    }

    .castiglioncello-hero-column{
        align-items:center;
    }

    .castiglioncello-hero-content{
        width:100%;
        margin:0;

        padding:90px 22px 85px;
    }

    .castiglioncello-hero-eyebrow{
        margin-bottom:14px;
        font-size:12px;
    }

    .castiglioncello-hero-content h1{
        font-size:clamp(44px,14vw,62px);
        line-height:1;
    }

    .castiglioncello-hero-text{
        margin-top:20px;
        font-size:17px;
        line-height:1.55;
    }

    .castiglioncello-hero-buttons{
        flex-direction:column;
        align-items:stretch;

        margin-top:28px;
    }

    .castiglioncello-hero .hero-button{
        width:100%;
    }

    .castiglioncello-hero-scroll{
        display:none;
    }
}
/* ==========================================================================
   66. CASTIGLIONCELLO - COSA VEDERE INTRO
   ========================================================================== */

.castiglioncello-see-intro{
    background:#FFFFFF;
}

.castiglioncello-see-header{
    max-width:760px;
    margin:0 auto;
    text-align:center;
}

.castiglioncello-see-header .section-eyebrow{
    display:block;
    margin-bottom:16px;
    color:#EEB700;
    font-family:'Nunito Sans',sans-serif;
    font-size:13px;
    font-weight:800;
    line-height:1.2;
    letter-spacing:1.8px;
    text-transform:uppercase;
}

.castiglioncello-see-header h2{
    margin:0 0 22px;
    color:#275998;
    font-family:'Nunito Sans',sans-serif;
    font-size:46px;
    font-weight:700;
    line-height:1.2;
}

.castiglioncello-see-header p{
    max-width:680px;
    margin:0 auto;
    color:#555;
    font-family:'Nunito Sans',sans-serif;
    font-size:19px;
    line-height:1.8;
}
/* ==========================================================================
   66.1 CASTIGLIONCELLO - CARD COSA VEDERE
   ========================================================================== */

/* Rende le tre colonne della stessa altezza */
#sp-sp-castiglioncello-see .row{
    align-items:stretch;
}

#sp-sp-castiglioncello-see .row > [class*="col-"]{
    display:flex;
}

#sp-sp-castiglioncello-see .sp-column,
#sp-sp-castiglioncello-see .sp-module,
#sp-sp-castiglioncello-see .sp-module-content,
#sp-sp-castiglioncello-see .mod-custom{
    display:flex;
    flex:1;
    flex-direction:column;
    width:100%;
}


/* CARD */
#sp-sp-castiglioncello-see .place-card{
    display:flex;
    flex:1;
    flex-direction:column;
    width:100%;
    overflow:hidden;
    background:#FFFFFF;
    border:1px solid #E6EBF2;
    border-radius:16px;
    box-shadow:0 10px 30px rgba(39,89,152,.07);
    transition:
        transform .3s ease,
        box-shadow .3s ease;
}

#sp-sp-castiglioncello-see .place-card:hover{
    transform:translateY(-6px);
    box-shadow:0 18px 42px rgba(39,89,152,.14);
}


/* FOTO */
#sp-sp-castiglioncello-see .place-card-image{
    position:relative;
    display:block;
    flex:0 0 auto;
    overflow:hidden;
    aspect-ratio:16 / 10;
    background:#E9E7E1;
}

#sp-sp-castiglioncello-see .place-card-image img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .5s ease;
}

#sp-sp-castiglioncello-see .place-card:hover .place-card-image img{
    transform:scale(1.045);
}


/* CONTENUTO */
#sp-sp-castiglioncello-see .place-card-content{
    display:flex;
    flex:1;
    flex-direction:column;
    padding:28px 28px 31px;
}


/* ETICHETTA */
#sp-sp-castiglioncello-see .place-card-label{
    display:block;
    margin:0 0 12px;
    color:#EEB700;
    font-family:'Nunito Sans',sans-serif;
    font-size:12px;
    font-weight:800;
    line-height:1.2;
    letter-spacing:1.4px;
}


/* TITOLO */
#sp-sp-castiglioncello-see .place-card h3{
    margin:0 0 16px;
    color:#275998;
    font-family:'Nunito Sans',sans-serif;
    font-size:26px;
    font-weight:700;
    line-height:1.25;
}


/* TESTO */
#sp-sp-castiglioncello-see .place-card p{
    margin:0;
    color:#555;
    font-family:'Nunito Sans',sans-serif;
    font-size:16px;
    line-height:1.75;
}
/* LINK "SCOPRI" DELLE CARD COSA VEDERE */
#sp-sp-castiglioncello-see .beach-card-link{
    display:inline-flex;
    align-items:center;
    gap:8px;

    margin-top:auto;
    padding-top:18px;

    color:#275998 !important;

    font-family:'Nunito Sans',sans-serif;
    font-size:15px;
    font-weight:800;

    text-decoration:none !important;
}

#sp-sp-castiglioncello-see .beach-card-link span{
    transition:transform .25s ease;
}

#sp-sp-castiglioncello-see .beach-card-link:hover{
    color:#EEB700 !important;
}

#sp-sp-castiglioncello-see .beach-card-link:hover span{
    transform:translateX(4px);
}

/* TABLET */
@media (max-width:991px){

    #sp-sp-castiglioncello-see .place-card h3{
        font-size:24px;
    }

    #sp-sp-castiglioncello-see .place-card-content{
        padding:25px 24px 28px;
    }

}


/* MOBILE */
@media (max-width:575px){

    #sp-sp-castiglioncello-see .row{
        row-gap:25px;
    }

    #sp-sp-castiglioncello-see .place-card h3{
        font-size:23px;
    }

    #sp-sp-castiglioncello-see .place-card-content{
        padding:24px 22px 27px;
    }

}
/* ==========================================================================
   67. DISPONIBILITÀ E CONTATTI - HERO
   ========================================================================== */

.contact-hero{
    position:relative;
    isolation:isolate;
    min-height:520px;
    display:flex;
    align-items:center;
    overflow:hidden;

    background-position:center center !important;
    background-size:cover !important;
    background-repeat:no-repeat !important;
}

/* Overlay: DEVE stare dietro al contenuto */
.contact-hero::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:0;

    background:linear-gradient(
        90deg,
        rgba(8,24,40,.72) 0%,
        rgba(8,24,40,.58) 38%,
        rgba(8,24,40,.20) 68%,
        rgba(8,24,40,.02) 100%
    );

    pointer-events:none;
}

/* Qualunque contenitore generi Helix deve stare SOPRA l'overlay */
.contact-hero > *{
    position:relative;
    z-index:1;
}

/* Larghezza modulo */
.contact-hero .container,
.contact-hero .container-inner,
.contact-hero .row,
.contact-hero .sp-column,
.contact-hero .sp-module,
.contact-hero .sp-module-content,
.contact-hero .mod-custom{
    width:100%;
}

/* BLOCCO TESTO */
.contact-hero-content{
    max-width:620px;
    margin:0 0 0 7vw;
    padding:85px 24px;
    text-align:left;
}

/* EYEBROW */
.contact-hero-eyebrow{
    display:block;
    margin:0 0 18px;

    color:#EEB700 !important;

    font-family:'Nunito Sans',sans-serif;
    font-size:13px;
    font-weight:800;
    line-height:1.2;
    letter-spacing:1.8px;
    text-transform:uppercase;
}

/* TITOLO */
.contact-hero-content h1{
    margin:0 0 24px;

    color:#FFFFFF !important;

    font-family:'Nunito Sans',sans-serif;
    font-size:clamp(52px,5vw,74px);
    font-weight:700;
    line-height:1.03;
}

/* TESTO */
.contact-hero-content p{
    max-width:560px;
    margin:0;

    color:#FFFFFF !important;

    font-family:'Nunito Sans',sans-serif;
    font-size:20px;
    font-weight:400;
    line-height:1.7;
}


/* ==========================================================================
   TABLET
   ========================================================================== */

@media(max-width:991px){

    .contact-hero{
        min-height:480px;
        background-position:40% center !important;
    }

    .contact-hero-content{
        max-width:560px;
        margin-left:35px;
        padding:75px 20px;
    }
}


/* ==========================================================================
   MOBILE
   ========================================================================== */

@media(max-width:575px){

    .contact-hero{
        min-height:440px;
        background-position:35% center !important;
    }

    .contact-hero::before{
        background:rgba(8,24,40,.64);
    }

    .contact-hero-content{
        max-width:none;
        width:100%;
        margin:0;
        padding:65px 22px;
    }

    .contact-hero-content h1{
        font-size:44px;
    }

    .contact-hero-content p{
        font-size:17px;
        line-height:1.6;
    }
}
/* ==========================================================================
   68. DISPONIBILITÀ E CONTATTI - CONTATTI DIRETTI
   ========================================================================== */

.contact-request{
    background:#F7F5F0;
}


/* COLONNA INTRO */

.contact-info-box{
    max-width:460px;
    padding:25px 45px 25px 0;
}

.contact-info-box .section-eyebrow{
    display:block;
    margin:0 0 16px;
    color:#EEB700;
    font-family:'Nunito Sans',sans-serif;
    font-size:13px;
    font-weight:800;
    line-height:1.2;
    letter-spacing:1.7px;
    text-transform:uppercase;
}

.contact-info-box h2{
    margin:0 0 24px;
    color:#275998;
    font-family:'Nunito Sans',sans-serif;
    font-size:44px;
    font-weight:700;
    line-height:1.12;
}

.contact-info-intro{
    margin:0 0 22px;
    color:#555;
    font-family:'Nunito Sans',sans-serif;
    font-size:18px;
    line-height:1.75;
}

.contact-info-note{
    margin:0;
    color:#777;
    font-family:'Nunito Sans',sans-serif;
    font-size:15px;
    line-height:1.7;
}


/* COLONNA AZIONI */

.contact-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px;
}


/* CARD */

.contact-action{
    display:flex;
    flex-direction:column;
    min-height:250px;
    padding:30px;

    background:#FFFFFF;
    border:1px solid #E4E9EF;
    border-radius:16px;

    color:inherit;
    text-decoration:none;

    box-shadow:0 10px 28px rgba(39,89,152,.07);

    transition:
        transform .3s ease,
        box-shadow .3s ease,
        border-color .3s ease;
}

.contact-action:hover{
    transform:translateY(-5px);
    border-color:#275998;
    box-shadow:0 18px 40px rgba(39,89,152,.13);
    text-decoration:none;
}


/* WHATSAPP PIÙ IMPORTANTE */

.contact-action-whatsapp{
    grid-column:1 / -1;
    min-height:230px;

    background:#275998;
    border-color:#275998;
}

.contact-action-whatsapp .contact-action-label{
    color:#EEB700;
}

.contact-action-whatsapp h3,
.contact-action-whatsapp p,
.contact-action-whatsapp .contact-action-link{
    color:#FFFFFF;
}


/* TESTI CARD */

.contact-action-label{
    display:block;
    margin-bottom:12px;

    color:#EEB700;

    font-family:'Nunito Sans',sans-serif;
    font-size:11px;
    font-weight:800;
    line-height:1.2;
    letter-spacing:1.5px;
}

.contact-action h3{
    margin:0 0 14px;

    color:#275998;

    font-family:'Nunito Sans',sans-serif;
    font-size:26px;
    font-weight:700;
    line-height:1.2;
}

.contact-action p{
    margin:0 0 25px;

    color:#555;

    font-family:'Nunito Sans',sans-serif;
    font-size:16px;
    line-height:1.7;
}

.contact-action-link{
    margin-top:auto;

    color:#275998;

    font-family:'Nunito Sans',sans-serif;
    font-size:15px;
    font-weight:800;
}


/* TABLET */

@media(max-width:991px){

    .contact-info-box{
        max-width:680px;
        padding:0 0 45px;
    }

}


/* MOBILE */

@media(max-width:575px){

    .contact-actions{
        grid-template-columns:1fr;
    }

    .contact-action-whatsapp{
        grid-column:auto;
    }

    .contact-action{
        min-height:auto;
        padding:26px;
    }

    .contact-info-box h2{
        font-size:35px;
    }

    .contact-info-intro{
        font-size:17px;
    }

}
/* ==========================================================================
   68.1 FIX CARD WHATSAPP
   ========================================================================== */

.contact-actions .contact-action-whatsapp{
    background:#275998 !important;
    color:#FFFFFF !important;
}

.contact-actions .contact-action-whatsapp .contact-action-label{
    color:#EEB700 !important;
}

.contact-actions .contact-action-whatsapp h3{
    display:block !important;
    margin:0 0 16px !important;
    color:#FFFFFF !important;
    font-family:'Nunito Sans',sans-serif;
    font-size:28px;
    font-weight:700;
    line-height:1.2;
}

.contact-actions .contact-action-whatsapp p{
    margin:0 0 26px !important;
    color:rgba(255,255,255,.90) !important;
    font-family:'Nunito Sans',sans-serif;
    font-size:17px;
    font-weight:400;
    line-height:1.7;
}

.contact-actions .contact-action-whatsapp .contact-action-link{
    margin-top:auto;
    color:#FFFFFF !important;
    font-family:'Nunito Sans',sans-serif;
    font-size:16px;
    font-weight:800;
}
/* =========================================================
   HERO - BAIA DEL QUERCETANO
========================================================= */

.quercetano-hero-row{
    position:relative !important;
    min-height:680px !important;
    margin:0 !important;
    padding:0 !important;

    background-size:cover !important;
    background-position:center center !important;
    background-repeat:no-repeat !important;

    overflow:hidden;
}

/* Overlay leggero per rendere leggibile il testo */
.quercetano-hero-row::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:1;

    background:linear-gradient(
        90deg,
        rgba(8,25,43,.68) 0%,
        rgba(8,25,43,.46) 38%,
        rgba(8,25,43,.15) 68%,
        rgba(8,25,43,0) 100%
    );

    pointer-events:none;
}

/* Contenitori Helix sopra l'overlay */
.quercetano-hero-row > .container,
.quercetano-hero-row > .container-fluid{
    position:relative;
    z-index:2;
    min-height:680px;
}

.quercetano-hero-column{
    position:relative;
    z-index:2;

    min-height:680px;

    display:flex !important;
    align-items:center !important;
}

/* Elimina margini del modulo Joomla */
.quercetano-hero-column .sp-module,
.quercetano-hero-column .sp-module-content,
.quercetano-hero-column .mod-custom{
    width:100%;
    margin:0 !important;
    padding:0 !important;
}

/* Contenuto */
.quercetano-hero-content{
    width:min(650px,100%);
    margin-left:clamp(24px,8vw,140px);
    padding:90px 24px;
    color:#fff;
}

/* Sopratitolo */
.quercetano-hero-label{
    margin-bottom:18px;

    color:#EEB700;

    font-family:'Nunito Sans',sans-serif;
    font-size:13px;
    font-weight:800;
    letter-spacing:.22em;
    text-transform:uppercase;
}

/* Titolo */
.quercetano-hero-content h1{
    margin:0 0 25px;

    color:#fff !important;

    font-family:'Nunito Sans',sans-serif;
    font-size:clamp(54px,5.5vw,82px);
    font-weight:700;
    line-height:1;
    letter-spacing:-.035em;
}

/* Testo */
.quercetano-hero-content p{
    max-width:570px;
    margin:0;

    color:rgba(255,255,255,.94);

    font-family:'Nunito Sans',sans-serif;
    font-size:19px;
    line-height:1.6;
}

/* Pulsanti */
.quercetano-hero-buttons{
    display:flex;
    flex-wrap:wrap;
    gap:14px;
    margin-top:32px;
}

.quercetano-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;

    min-height:52px;
    padding:14px 26px;

    border:2px solid transparent;
    border-radius:3px;

    font-family:'Nunito Sans',sans-serif;
    font-size:14px;
    font-weight:800;

    text-decoration:none !important;
}

/* Giallo */
.quercetano-button-primary{
    background:#EEB700;
    border-color:#EEB700;
    color:#173859 !important;
}

/* Trasparente */
.quercetano-button-secondary{
    background:transparent;
    border-color:rgba(255,255,255,.85);
    color:#fff !important;
}


/* =========================================================
   HERO QUERCETANO - TABLET
========================================================= */

@media (max-width:991px){

    .quercetano-hero-row,
    .quercetano-hero-row > .container,
    .quercetano-hero-row > .container-fluid,
    .quercetano-hero-column{
        min-height:620px !important;
    }

    .quercetano-hero-content{
        margin-left:40px;
    }
}


/* =========================================================
   HERO QUERCETANO - SMARTPHONE
========================================================= */

@media (max-width:575px){

    .quercetano-hero-row,
    .quercetano-hero-row > .container,
    .quercetano-hero-row > .container-fluid,
    .quercetano-hero-column{
        min-height:650px !important;
    }

    .quercetano-hero-row{
        background-position:center center !important;
    }

    .quercetano-hero-row::before{
        background:linear-gradient(
            180deg,
            rgba(8,25,43,.18) 0%,
            rgba(8,25,43,.30) 35%,
            rgba(8,25,43,.72) 100%
        );
    }

    .quercetano-hero-column{
        align-items:flex-end !important;
    }

    .quercetano-hero-content{
        width:100%;
        margin:0;
        padding:90px 22px 65px;
    }

    .quercetano-hero-label{
        margin-bottom:14px;
        font-size:11px;
    }

    .quercetano-hero-content h1{
        font-size:clamp(45px,13vw,60px);
        line-height:1;
        margin-bottom:20px;
    }

    .quercetano-hero-content p{
        font-size:17px;
        line-height:1.55;
    }

    .quercetano-hero-buttons{
        flex-direction:column;
        margin-top:27px;
    }

    .quercetano-button{
        width:100%;
    }
}
/* =========================================================
   QUERCETANO - INTRO + INFO
   ========================================================= */

#sp-quercetano-intro{
    background:#fff;
}

/* =========================
   COLONNA TESTO
   ========================= */

.beach-intro-text{
    max-width:680px;
    padding-right:45px;
    margin-top:-35px;
}

.beach-intro-text .section-label{
    margin:0 0 16px;

    color:#EEB700;

    font-family:'Nunito Sans',sans-serif;
    font-size:13px;
    font-weight:800;
    line-height:1.2;

    letter-spacing:1.6px;
    text-transform:uppercase;
}

.beach-intro-text h2{
    margin:0 0 26px;

    color:#275998;

    font-family:'Nunito Sans',sans-serif;
    font-size:46px;
    font-weight:700;
    line-height:1.1;
}

.beach-intro-text p{
    margin:0 0 20px;

    color:#555;

    font-family:'Nunito Sans',sans-serif;
    font-size:18px;
    line-height:1.75;
}

.beach-intro-text p:last-child{
    margin-bottom:0;
}


/* =========================
   BOX INFO
   ========================= */

.beach-info-box{
    height:100%;

    padding:38px 40px;

    background:#F7F5F0;
    border-radius:14px;

    box-shadow:0 12px 30px rgba(39,89,152,.07);
}

.beach-info-item{
    padding:0 0 20px;
    margin:0 0 20px;

    border-bottom:1px solid #D9DFE7;
}

.beach-info-item:last-child{
    padding-bottom:0;
    margin-bottom:0;

    border-bottom:0;
}

.beach-info-label{
    display:block;

    margin-bottom:7px;

    color:#EEB700;

    font-family:'Nunito Sans',sans-serif;
    font-size:11px;
    font-weight:800;
    line-height:1.2;

    letter-spacing:1.4px;
    text-transform:uppercase;
}

.beach-info-item strong{
    display:block;

    color:#275998;

    font-family:'Nunito Sans',sans-serif;
    font-size:18px;
    font-weight:700;
    line-height:1.4;
}


/* =========================
   TABLET
   ========================= */

@media (max-width:991px){

    .beach-intro-text{
        max-width:100%;
        padding-right:0;
        padding-bottom:45px;
    }

    .beach-info-box{
        padding:32px 32px;
    }

}


/* =========================
   MOBILE
   ========================= */

@media (max-width:575px){

    .beach-intro-text h2{
        font-size:36px;
        line-height:1.12;
    }

    .beach-intro-text p{
        font-size:17px;
        line-height:1.65;
    }

    .beach-info-box{
        padding:28px 24px;
        border-radius:12px;
    }

    .beach-info-item strong{
        font-size:17px;
    }

}
/* =========================================================
   SPIAGGE - PERCORSO DALLA CASINA
   ========================================================= */

.beach-route-heading{
    max-width:760px;
    margin:0 auto 42px;
    text-align:center;
}

.beach-route-heading .section-label{
    margin-bottom:14px;
    color:#EEB700;
    font-family:'Nunito Sans',sans-serif;
    font-size:12px;
    font-weight:800;
    letter-spacing:1.6px;
    text-transform:uppercase;
}

.beach-route-heading h2{
    margin:0 0 20px;
    color:#275998 !important;
    font-family:'Nunito Sans',sans-serif;
    font-size:42px;
    font-weight:700;
    line-height:1.12;
}

.beach-route-heading p{
    max-width:650px;
    margin:0 auto 26px;
    color:#555;
    font-family:'Nunito Sans',sans-serif;
    font-size:17px;
    line-height:1.7;
}

.beach-route-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:50px;
    padding:14px 25px;
    background:#EEB700;
    color:#173859 !important;
    border-radius:3px;
    font-family:'Nunito Sans',sans-serif;
    font-size:14px;
    font-weight:800;
    text-decoration:none !important;
}

.beach-route-button:hover{
    background:#275998;
    color:#fff !important;
}

.beach-route-map{
    width:100%;
    overflow:hidden;
    border-radius:14px;
    box-shadow:0 12px 35px rgba(39,89,152,.10);
}

.beach-route-map iframe{
    display:block;
    width:100%;
    height:480px;
    border:0;
}


/* MOBILE */

@media (max-width:575px){

    .beach-route-heading{
        margin-bottom:30px;
        text-align:left;
    }

    .beach-route-heading h2{
        font-size:34px;
    }

    .beach-route-heading p{
        font-size:16px;
    }

    .beach-route-button{
        width:100%;
    }

    .beach-route-map{
        border-radius:10px;
    }

    .beach-route-map iframe{
        height:400px;
    }
}
/* =========================================================
   NAVIGAZIONE TRA LE SPIAGGE
========================================================= */

.beach-navigation{
    display:grid;
    grid-template-columns:1fr auto 1fr;
    align-items:center;
    gap:25px;

    padding:24px 0;

    border-top:1px solid #e2e6eb;
    border-bottom:1px solid #e2e6eb;

    font-family:'Nunito Sans',sans-serif;
}

/* PRECEDENTE / SUCCESSIVA */

.beach-nav-side{
    display:flex;
    flex-direction:column;
    gap:4px;

    color:#275998 !important;
    text-decoration:none !important;
}

.beach-nav-next{
    text-align:right;
    align-items:flex-end;
}

.beach-nav-small{
    color:#EEB700;
    font-size:10px;
    font-weight:800;
    letter-spacing:1.4px;
}

.beach-nav-side strong{
    color:#275998;
    font-size:17px;
    font-weight:700;
    line-height:1.25;
}

.beach-nav-side:hover strong{
    color:#EEB700;
}


/* CENTRO */

.beach-nav-all{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:9px;

    padding:11px 18px;

    border:1px solid #d6dce4;
    border-radius:3px;

    color:#275998 !important;

    font-size:12px;
    font-weight:800;
    letter-spacing:.5px;
    text-transform:uppercase;

    text-decoration:none !important;
}

.beach-nav-all:hover{
    background:#275998;
    border-color:#275998;
    color:#fff !important;
}


/* MOBILE */

@media(max-width:575px){

    .beach-navigation{
        grid-template-columns:1fr 1fr;
        gap:20px 12px;
        padding:20px 0;
    }

    .beach-nav-all{
        grid-column:1 / -1;
        grid-row:1;
        width:100%;
    }

    .beach-nav-prev{
        grid-column:1;
        grid-row:2;
    }

    .beach-nav-next{
        grid-column:2;
        grid-row:2;
    }

    .beach-nav-side strong{
        font-size:15px;
    }

}
/* =========================================================
   FIX NAVIGAZIONE SPIAGGE
   ========================================================= */

.beach-navigation{
    display:grid !important;
    grid-template-columns:1fr auto 1fr !important;
    align-items:center !important;
    gap:24px !important;

    width:100% !important;
    padding:24px 0 !important;
    margin:0 !important;

    border-top:1px solid #dfe4ea !important;
    border-bottom:1px solid #dfe4ea !important;

    font-family:'Nunito Sans',sans-serif !important;
}

.beach-navigation a{
    text-decoration:none !important;
}

/* Lati */
.beach-navigation .beach-nav-side{
    display:flex !important;
    flex-direction:column !important;
    gap:4px !important;

    color:#275998 !important;
}

.beach-navigation .beach-nav-prev{
    align-items:flex-start !important;
    text-align:left !important;
}

.beach-navigation .beach-nav-next{
    align-items:flex-end !important;
    text-align:right !important;
}

.beach-navigation .beach-nav-small{
    color:#EEB700 !important;
    font-size:10px !important;
    font-weight:800 !important;
    letter-spacing:1.4px !important;
    text-transform:uppercase !important;
}

.beach-navigation .beach-nav-side strong{
    color:#275998 !important;
    font-size:17px !important;
    font-weight:700 !important;
    line-height:1.25 !important;
}
/* ==========================================================================
   CASTIGLIONCELLO - EYEBROW SEZIONI
   ========================================================================== */

.location-beaches-header .section-eyebrow,
.beaches-nearby-header .section-eyebrow,
.location-see-header .section-eyebrow,
.location-food-header .section-eyebrow,
.location-nearby-eyebrow{
    display:block;
    margin-bottom:14px;

    color:#EEB700 !important;

    font-family:'Nunito Sans',sans-serif !important;
    font-size:12px !important;
    font-weight:800 !important;
    line-height:1.2 !important;

    letter-spacing:1.6px !important;
    text-transform:uppercase !important;
}
/* Centro */
.beach-navigation .beach-nav-all{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:8px !important;

    padding:11px 18px !important;

    border:1px solid #d6dce4 !important;
    border-radius:3px !important;

    color:#275998 !important;
    background:#fff !important;

    font-size:12px !important;
    font-weight:800 !important;
    letter-spacing:.5px !important;
    text-transform:uppercase !important;
}

.beach-navigation .beach-nav-all:hover{
    background:#275998 !important;
    color:#fff !important;
    border-color:#275998 !important;
}

/* Mobile */
@media(max-width:575px){

    .beach-navigation{
        grid-template-columns:1fr 1fr !important;
        gap:18px 12px !important;
        padding:20px 0 !important;
    }

    .beach-navigation .beach-nav-all{
        grid-column:1 / -1 !important;
        grid-row:1 !important;
        width:100% !important;
    }

    .beach-navigation .beach-nav-prev{
        grid-column:1 !important;
        grid-row:2 !important;
    }

    .beach-navigation .beach-nav-next{
        grid-column:2 !important;
        grid-row:2 !important;
    }

    .beach-navigation .beach-nav-side strong{
        font-size:15px !important;
    }
}
#sp-castello-pasquini-intro .row{
    align-items:flex-start !important;
}
/* Cosa vedere - allineamento intro con box info */
.place-intro-text{
    margin-top:-20px !important;
    transform:none !important;
}
/* =====================================================
   FOOD - MANGIARE SUL MARE
   ===================================================== */

/* HERO */

.food-mare-hero {
    min-height: 480px;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
}

.food-mare-hero > .container {
    min-height: 480px;
    display: flex;
    align-items: flex-end;
}

.food-mare-hero .place-hero-content {
    max-width: 700px;
    padding: 0 20px 70px;
}

.food-mare-hero .place-hero-label {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #EEB700;
    margin-bottom: 14px;
}

.food-mare-hero h1 {
    margin: 0 0 20px;
    font-size: 52px;
    line-height: 1.05;
    font-weight: 700;
    color: #fff;
}

.food-mare-hero p {
    max-width: 600px;
    margin: 0;
    font-size: 19px;
    line-height: 1.7;
    color: #fff;
}


/* INTRO */

.food-mare-intro-row {
    background: #fff;
}

.food-intro {
    max-width: 850px;
    margin: 0 auto;
    padding: 75px 20px 65px;
    text-align: center;
}

.food-eyebrow {
    margin-bottom: 15px;
    color: #EEB700;
    font-size: 13px;
    line-height: 1.4;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
}

.food-intro h2 {
    margin: 0 0 25px;
    color: #275998;
    font-size: 38px;
    line-height: 1.2;
    font-weight: 700;
}

.food-intro p {
    max-width: 760px;
    margin: 0 auto;
    color: #555;
    font-size: 18px;
    line-height: 1.8;
}


/* MOBILE */

@media (max-width: 767px) {

    .food-mare-hero,
    .food-mare-hero > .container {
        min-height: 400px;
    }

    .food-mare-hero .place-hero-content {
        padding: 0 25px 50px;
    }

    .food-mare-hero h1 {
        font-size: 38px;
    }

    .food-mare-hero p {
        font-size: 17px;
    }

    .food-intro {
        padding: 55px 25px 45px;
    }

    .food-intro h2 {
        font-size: 31px;
    }

    .food-intro p {
        font-size: 17px;
    }
}
/* =====================================================
   FOOD - CARDS LOCALI
   ===================================================== */

.food-places-row {
    background: #f7f5f0;
    padding: 70px 0 80px;
}

.food-places {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 32px;
}

.food-place-card {
    background: #fff;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 8px 28px rgba(0,0,0,.06);
    display:flex;
    flex-direction:column;
}

.food-place-image {
    width: 100%;
    height: 290px;
    overflow: hidden;
}

.food-place-image img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transition: transform .4s ease;
}

.food-place-card:hover .food-place-image img {
    transform: scale(1.03);
}

.food-place-content{
    padding:20px 20px 24px;
    display:flex;
    flex-direction:column;
    flex:1;
}

.food-place-type {
    margin-bottom: 10px;
    color: #EEB700;
    font-size: 12px;
    line-height: 1.4;
    font-weight: 700;
    letter-spacing: 1.6px;
}

.food-place-content h3 {
    margin: 0 0 15px;
    color: #275998;
    font-size: 28px;
    line-height: 1.2;
    font-weight: 700;
}

.food-place-content p {
    margin: 0 0 24px;
    color: #555;
    font-size: 16px;
    line-height: 1.7;
}

.food-place-links a {
    color: #275998;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1px;
    text-decoration: none;
}

.food-place-links a:hover {
    color: #EEB700;
      margin-top:auto;
}


/* MOBILE */

@media (max-width: 767px) {

    .food-places-row {
        padding: 50px 0 60px;
    }

    .food-places {
        grid-template-columns: 1fr;
        gap: 25px;
        padding: 0 20px;
    }

    .food-place-image {
        height: 230px;
    }

    .food-place-content {
        padding: 25px;
    }

    .food-place-content h3 {
        font-size: 25px;
    }
}
.food-place-logo{
    padding:30px;
    background:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
}

.food-place-logo img{
    display:block;
    width:auto !important;
    height:auto !important;
    max-width:100% !important;
    max-height:none !important;
    object-fit:contain;
}
/* =====================================================
   FOOD - CUCINA TOSCANA - HERO
   ===================================================== */

.food-toscana-hero{
    min-height:480px;
    background-size:cover !important;
    background-position:center center !important;
    background-repeat:no-repeat !important;
}

.food-toscana-hero > .container{
    min-height:480px;
    display:flex;
    align-items:flex-end;
}

.food-toscana-hero .place-hero-content{
    max-width:700px;
    padding:0 20px 70px;
}

.food-toscana-hero .place-hero-label{
    font-size:13px;
    font-weight:700;
    letter-spacing:2px;
    text-transform:uppercase;
    color:#EEB700;
    margin-bottom:14px;
}

.food-toscana-hero h1{
    margin:0 0 20px;
    font-size:52px;
    line-height:1.05;
    font-weight:700;
    color:#fff;
}

.food-toscana-hero p{
    max-width:600px;
    margin:0;
    font-size:19px;
    line-height:1.7;
    color:#fff;
}

@media (max-width:767px){

    .food-toscana-hero,
    .food-toscana-hero > .container{
        min-height:400px;
    }

    .food-toscana-hero .place-hero-content{
        padding:0 25px 50px;
    }

    .food-toscana-hero h1{
        font-size:38px;
    }

    .food-toscana-hero p{
        font-size:17px;
    }
}
/* CUCINA TOSCANA - uniforma area loghi */

.food-places-toscana .food-place-logo{
    height:220px;
    padding:25px;
    display:flex;
    align-items:center;
    justify-content:center;
    box-sizing:border-box;
}

.food-places-toscana .food-place-logo img{
    display:block;
    width:auto !important;
    height:auto !important;
    max-width:190px !important;
    max-height:140px !important;
    object-fit:contain !important;
}
.food-places-toscana .food-place-card{
    display:flex;
    flex-direction:column;
}

.food-places-toscana .food-place-content{
    display:flex;
    flex-direction:column;
    flex:1;
}

.food-places-toscana .food-place-links{
    margin-top:auto;
}
/* =====================================================
   FOOD - APERITIVO - HERO
   ===================================================== */

.food-aperitivo-hero{
    min-height:480px;
    background-size:cover !important;
    background-position:center center !important;
    background-repeat:no-repeat !important;
}

.food-aperitivo-hero > .container{
    min-height:480px;
    display:flex;
    align-items:flex-end;
}

.food-aperitivo-hero .place-hero-content{
    max-width:700px;
    padding:0 20px 70px;
}

.food-aperitivo-hero .place-hero-label{
    font-size:13px;
    font-weight:700;
    letter-spacing:2px;
    text-transform:uppercase;
    color:#EEB700;
    margin-bottom:14px;
}

.food-aperitivo-hero h1{
    margin:0 0 20px;
    font-size:52px;
    line-height:1.05;
    font-weight:700;
    color:#fff;
}

.food-aperitivo-hero p{
    max-width:600px;
    margin:0;
    font-size:19px;
    line-height:1.7;
    color:#fff;
}

@media (max-width:767px){

    .food-aperitivo-hero,
    .food-aperitivo-hero > .container{
        min-height:400px;
    }

    .food-aperitivo-hero .place-hero-content{
        padding:0 25px 50px;
    }

    .food-aperitivo-hero h1{
        font-size:38px;
    }

    .food-aperitivo-hero p{
        font-size:17px;
    }
}
/* APERITIVO - impedisce la duplicazione dello sfondo */

.food-aperitivo-hero .sppb-row-container,
.food-aperitivo-hero .container,
.food-aperitivo-hero .row,
.food-aperitivo-hero [class*="col-"],
.food-aperitivo-hero .sp-module,
.food-aperitivo-hero .sp-module-content,
.food-aperitivo-hero .custom {
    background-image: none !important;
    background-color: transparent !important;
}
.food-places-aperitivo .food-place-logo{
    height:220px;
    padding:25px;
    display:flex;
    align-items:center;
    justify-content:center;
    box-sizing:border-box;
}

.food-places-aperitivo .food-place-logo img{
    display:block;
    width:auto !important;
    height:auto !important;
    max-width:190px !important;
    max-height:140px !important;
    object-fit:contain !important;
}

.food-places-aperitivo .food-place-card{
    display:flex;
    flex-direction:column;
}

.food-places-aperitivo .food-place-content{
    display:flex;
    flex-direction:column;
    flex:1;
}

.food-places-aperitivo .food-place-links{
    margin-top:auto;
}
/* =====================================================
   FOOD - PIZZERIE - HERO
   ===================================================== */

.food-pizzerie-hero{
    min-height:480px;
    background-size:cover !important;
    background-position:center center !important;
    background-repeat:no-repeat !important;
}

.food-pizzerie-hero > .container{
    min-height:480px;
    display:flex;
    align-items:flex-end;
}

.food-pizzerie-hero .place-hero-content{
    max-width:700px;
    padding:0 20px 70px;
}

.food-pizzerie-hero .place-hero-label{
    font-size:13px;
    font-weight:700;
    letter-spacing:2px;
    text-transform:uppercase;
    color:#EEB700;
    margin-bottom:14px;
}

.food-pizzerie-hero h1{
    margin:0 0 20px;
    font-size:52px;
    line-height:1.05;
    font-weight:700;
    color:#fff;
}

.food-pizzerie-hero p{
    max-width:600px;
    margin:0;
    font-size:19px;
    line-height:1.7;
    color:#fff;
}


/* MOBILE */

@media (max-width:767px){

    .food-pizzerie-hero,
    .food-pizzerie-hero > .container{
        min-height:400px;
    }

    .food-pizzerie-hero .place-hero-content{
        padding:0 25px 50px;
    }

    .food-pizzerie-hero h1{
        font-size:38px;
    }

    .food-pizzerie-hero p{
        font-size:17px;
    }
}