
:root{--blue:#0b8fd3;--blue-dark:#063f68;--navy:#061c31;--white:#fffdf8;--cream:#f5ecd9;--sky:#e5f8ff;--text:#15324a;--muted:#5d7183;--shadow:0 22px 55px rgba(6,28,49,.16);--radius:28px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--white);color:var(--text)}a{text-decoration:none;color:inherit}
.header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px clamp(18px,4vw,56px);background:rgba(255,253,248,.92);backdrop-filter:blur(14px);border-bottom:1px solid rgba(11,143,211,.16)}
.logo{font-size:1.15rem;font-weight:950;color:var(--blue-dark)}.menu{display:flex;align-items:center;gap:19px;font-weight:800}.menu a{padding:9px 0}.nav-cta{background:var(--blue);color:#fff!important;padding:11px 18px!important;border-radius:999px}.menu-btn{display:none;border:0;background:transparent;font-size:30px;color:var(--blue-dark)}
.hero{min-height:76vh;display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:34px;align-items:end;padding:clamp(70px,10vw,135px) clamp(18px,5vw,70px);background:radial-gradient(circle at 15% 20%, rgba(11,143,211,.24), transparent 30%),linear-gradient(135deg,#fffdf8 0%,#e9f8ff 55%,#fff 100%);position:relative;overflow:hidden}
.hero:after{content:"";position:absolute;right:-120px;bottom:-170px;width:520px;height:520px;border-radius:50%;opacity:.2;background:repeating-linear-gradient(45deg,var(--blue) 0 3px,transparent 3px 28px)}.hero__text,.rating-card{position:relative;z-index:1}
.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.78rem;font-weight:950;color:var(--blue-dark);margin:0 0 14px}h1,h2,h3{color:var(--navy);line-height:1.02;margin:0}h1{font-size:clamp(2.6rem,7vw,6.7rem);letter-spacing:-.065em}h2{font-size:clamp(2rem,4vw,4rem);letter-spacing:-.04em}h3{font-size:1.35rem}
.lead,.page-head p,.section p{font-size:clamp(1rem,1.6vw,1.22rem);line-height:1.7;color:var(--muted)}.actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}
.btn{display:inline-flex;justify-content:center;align-items:center;border:0;border-radius:999px;padding:14px 22px;background:var(--blue);color:#fff;font-weight:950;box-shadow:0 12px 28px rgba(11,143,211,.28)}.btn--light{background:#fff;color:var(--blue-dark);box-shadow:none;border:1px solid rgba(11,143,211,.25)}
.rating-card,.panel,.card,.contact-card{background:#fff;border:1px solid rgba(11,143,211,.16);border-radius:var(--radius);box-shadow:var(--shadow);padding:clamp(22px,3vw,34px)}.score{display:flex;align-items:center;justify-content:center;width:78px;height:78px;border-radius:22px;background:var(--blue-dark);color:#fff;font-weight:950;font-size:2rem;margin-bottom:16px}
.section{padding:clamp(58px,8vw,100px) clamp(18px,5vw,70px);max-width:1240px;margin:auto}.two{display:grid;grid-template-columns:.85fr 1.15fr;gap:38px;align-items:start}.page-head{padding:clamp(65px,9vw,115px) clamp(18px,5vw,70px) clamp(42px,6vw,70px);background:linear-gradient(135deg,var(--sky),#fffdf8)}.page-head>*{max-width:980px}
.media-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:16px}.placeholder{min-height:210px;border-radius:26px;border:2px dashed rgba(6,63,104,.35);display:flex;align-items:center;justify-content:center;text-align:center;padding:22px;font-weight:950;color:var(--blue-dark);background:linear-gradient(135deg,rgba(11,143,211,.16),rgba(255,255,255,.75)),repeating-linear-gradient(45deg,rgba(11,143,211,.14) 0 2px,transparent 2px 24px)}.placeholder.big{grid-row:span 2;min-height:436px}.placeholder.video:before{content:"▶";font-size:36px;margin-right:10px}
.cards,.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card ul,.check-list{line-height:1.9;margin:16px 0 0;padding-left:20px}.feature-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.feature-strip span{background:var(--navy);color:#fff;padding:18px;border-radius:18px;font-weight:900;text-align:center}
.room-layout,.location-layout,.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start}.room-photo{min-height:520px}.map-box{min-height:420px;border-radius:var(--radius);border:2px dashed rgba(6,63,104,.35);background:var(--sky);display:flex;align-items:center;justify-content:center;text-align:center;font-weight:950;color:var(--blue-dark);padding:24px}.map-box a,.contact-card a:not(.btn){color:var(--blue-dark);font-weight:900;text-decoration:underline}
.contact-form{display:grid;gap:16px}label{display:grid;gap:8px;font-weight:850}input,textarea{width:100%;border:1px solid rgba(6,63,104,.22);border-radius:16px;padding:14px 16px;font:inherit;background:#fff}textarea{min-height:140px;resize:vertical}
.quick-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.quick-facts article{background:#fff;border:1px solid rgba(11,143,211,.16);border-radius:22px;padding:22px;box-shadow:0 12px 32px rgba(6,28,49,.08)}.quick-facts strong{display:block;color:var(--navy);font-size:1.08rem;margin-bottom:8px}.quick-facts span{color:var(--muted);line-height:1.5}.cta-band{background:var(--cream);border-radius:34px;text-align:center;margin-bottom:60px}
.faq-list{display:grid;gap:14px;max-width:980px}.faq-list details{background:#fff;border:1px solid rgba(11,143,211,.18);border-radius:22px;padding:20px 24px;box-shadow:0 10px 28px rgba(6,28,49,.08)}.faq-list summary{cursor:pointer;font-weight:950;color:var(--navy);font-size:1.1rem}.faq-list p{margin:14px 0 0}
.footer{display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap;padding:34px 20px;background:var(--navy);color:#fff;text-align:center}
@media(max-width:1000px){.hero,.two,.room-layout,.location-layout,.contact-layout{grid-template-columns:1fr}.cards,.service-grid{grid-template-columns:repeat(2,1fr)}.feature-strip,.quick-facts{grid-template-columns:repeat(2,1fr)}.rating-card{max-width:520px}}
@media(max-width:720px){.menu-btn{display:block}.menu{display:none;position:absolute;left:14px;right:14px;top:70px;flex-direction:column;align-items:stretch;background:#fff;border-radius:22px;padding:18px;box-shadow:var(--shadow)}.menu.open{display:flex}.nav-cta{text-align:center}.hero{min-height:auto;padding-top:70px}.actions .btn{width:100%}.media-grid,.cards,.service-grid,.feature-strip,.quick-facts{grid-template-columns:1fr}.placeholder.big{min-height:260px}.room-photo{min-height:300px}.faq-list details{padding:18px}}
@media(min-width:1300px){.hero{padding-left:calc((100vw - 1240px)/2);padding-right:calc((100vw - 1240px)/2)}}

.dev-notice{
  max-width:980px;
  margin:0 auto 60px;
  background:linear-gradient(135deg,var(--sky),#fff);
  border:1px solid rgba(11,143,211,.22);
  border-radius:26px;
  padding:26px;
  box-shadow:0 14px 34px rgba(6,28,49,.09);
  text-align:center;
}
.dev-notice strong{
  display:block;
  color:var(--blue-dark);
  font-size:1.35rem;
  margin-bottom:8px;
}
.dev-notice p{
  margin:0;
}

.booking-modal{
  position:fixed;
  inset:0;
  z-index:100;
  display:none;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:rgba(6,28,49,.62);
  backdrop-filter:blur(8px);
}
.booking-modal.open{display:flex}
.booking-modal__box{
  position:relative;
  width:min(560px,100%);
  background:var(--white);
  border-radius:30px;
  padding:34px;
  box-shadow:0 30px 90px rgba(0,0,0,.28);
  border:1px solid rgba(11,143,211,.2);
  text-align:center;
}
.booking-modal__box h2{
  font-size:clamp(1.9rem,4vw,3rem);
  margin-bottom:14px;
}
.booking-modal__close{
  position:absolute;
  top:14px;
  right:16px;
  border:0;
  background:transparent;
  color:var(--blue-dark);
  font-size:34px;
  line-height:1;
  cursor:pointer;
}
.booking-modal__ok{margin-top:12px}
body.modal-lock{overflow:hidden}

.section-intro{
  max-width:850px;
  margin-bottom:34px;
}
.city-grid{
  display:grid;
  grid-template-columns:1.35fr 1fr 1fr;
  gap:16px;
}
.city-grid--four{
  grid-template-columns:repeat(4,1fr);
}
.gallery-city{
  grid-template-columns:1.35fr 1fr 1fr;
}
.city-photo{
  position:relative;
  min-height:310px;
  margin:0;
  border-radius:28px;
  overflow:hidden;
  box-shadow:var(--shadow);
  background:var(--sky);
}
.city-photo--wide{
  grid-row:span 2;
  min-height:636px;
}
.city-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .45s ease;
}
.city-photo:hover img{
  transform:scale(1.04);
}
.city-photo:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(6,28,49,.65),rgba(6,28,49,0) 55%);
}
.city-photo figcaption{
  position:absolute;
  left:18px;
  right:18px;
  bottom:16px;
  z-index:1;
  color:#fff;
  font-weight:950;
  font-size:1.05rem;
  text-shadow:0 2px 8px rgba(0,0,0,.25);
}
@media(max-width:1000px){
  .city-grid,
  .city-grid--four,
  .gallery-city{
    grid-template-columns:repeat(2,1fr);
  }
  .city-photo--wide{
    grid-row:auto;
    grid-column:span 2;
    min-height:420px;
  }
}
@media(max-width:720px){
  .city-grid,
  .city-grid--four,
  .gallery-city{
    grid-template-columns:1fr;
  }
  .city-photo,
  .city-photo--wide{
    grid-column:auto;
    min-height:280px;
  }
}


/* =========================
   Fluidità e animazioni UI
   ========================= */
html{
  scroll-behavior:smooth;
}
body{
  opacity:0;
  animation:bodyIn .55s ease forwards;
}
@keyframes bodyIn{
  to{opacity:1}
}

.page-loader{
  position:fixed;
  inset:0;
  z-index:999;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,var(--navy),var(--blue-dark));
  color:#fff;
  pointer-events:none;
  animation:loaderOut .75s ease .45s forwards;
}
.loader-mark{
  font-weight:950;
  letter-spacing:.08em;
  transform:translateY(8px);
  opacity:0;
  animation:loaderText .55s ease forwards;
}
@keyframes loaderText{
  to{opacity:1;transform:translateY(0)}
}
@keyframes loaderOut{
  to{opacity:0;visibility:hidden}
}

.header{
  transform:translateY(-100%);
  animation:navDrop .7s cubic-bezier(.2,.9,.2,1) .25s forwards;
}
@keyframes navDrop{
  to{transform:translateY(0)}
}

.logo,
.menu a,
.btn,
.card,
.panel,
.rating-card,
.contact-card,
.placeholder,
.city-photo,
.quick-facts article,
.faq-list details{
  transition:
    transform .35s cubic-bezier(.2,.8,.2,1),
    box-shadow .35s ease,
    border-color .35s ease,
    background .35s ease,
    color .25s ease,
    opacity .35s ease;
}

.menu a:hover{
  color:var(--blue);
}
.nav-cta:hover,
.btn:hover{
  transform:translateY(-3px);
  box-shadow:0 18px 34px rgba(11,143,211,.34);
}
.btn:active,
.nav-cta:active{
  transform:translateY(-1px) scale(.98);
}

.hero__text{
  opacity:0;
  transform:translateY(28px);
  animation:heroTextIn .9s cubic-bezier(.2,.9,.2,1) .35s forwards;
}
.rating-card{
  opacity:0;
  transform:translateY(34px) scale(.97);
  animation:heroCardIn .95s cubic-bezier(.2,.9,.2,1) .55s forwards;
}
.hero:after{
  animation:slowFloat 12s ease-in-out infinite alternate;
}
@keyframes heroTextIn{
  to{opacity:1;transform:translateY(0)}
}
@keyframes heroCardIn{
  to{opacity:1;transform:translateY(0) scale(1)}
}
@keyframes slowFloat{
  from{transform:translate3d(0,0,0) rotate(0deg)}
  to{transform:translate3d(-22px,-18px,0) rotate(8deg)}
}

.reveal{
  opacity:0;
  transform:translateY(36px);
  transition:opacity .8s ease, transform .8s cubic-bezier(.2,.9,.2,1);
}
.reveal.is-visible{
  opacity:1;
  transform:translateY(0);
}
.reveal-item{
  opacity:0;
  transform:translateY(26px) scale(.985);
  transition:
    opacity .7s ease,
    transform .7s cubic-bezier(.2,.9,.2,1),
    box-shadow .35s ease,
    border-color .35s ease;
}
.reveal.is-visible .reveal-item,
.reveal-item.is-visible{
  opacity:1;
  transform:translateY(0) scale(1);
}

.reveal.is-visible .reveal-item:nth-child(1){transition-delay:.04s}
.reveal.is-visible .reveal-item:nth-child(2){transition-delay:.10s}
.reveal.is-visible .reveal-item:nth-child(3){transition-delay:.16s}
.reveal.is-visible .reveal-item:nth-child(4){transition-delay:.22s}
.reveal.is-visible .reveal-item:nth-child(5){transition-delay:.28s}
.reveal.is-visible .reveal-item:nth-child(6){transition-delay:.34s}
.reveal.is-visible .reveal-item:nth-child(7){transition-delay:.40s}
.reveal.is-visible .reveal-item:nth-child(8){transition-delay:.46s}
.reveal.is-visible .reveal-item:nth-child(9){transition-delay:.52s}

.card:hover,
.panel:hover,
.contact-card:hover,
.quick-facts article:hover,
.faq-list details:hover{
  transform:translateY(-6px);
  box-shadow:0 24px 58px rgba(6,28,49,.16);
  border-color:rgba(11,143,211,.32);
}
.placeholder:hover{
  transform:translateY(-5px);
  border-color:rgba(11,143,211,.62);
  background:
    linear-gradient(135deg,rgba(11,143,211,.22),rgba(255,255,255,.9)),
    repeating-linear-gradient(45deg,rgba(11,143,211,.18) 0 2px,transparent 2px 24px);
}
.city-photo{
  transform:translateZ(0);
}
.city-photo img{
  will-change:transform;
}
.city-photo:hover{
  transform:translateY(-7px);
  box-shadow:0 28px 70px rgba(6,28,49,.22);
}
.city-photo figcaption{
  transform:translateY(6px);
  opacity:.92;
  transition:transform .35s ease, opacity .35s ease;
}
.city-photo:hover figcaption{
  transform:translateY(0);
  opacity:1;
}

.feature-strip span{
  transition:transform .35s cubic-bezier(.2,.8,.2,1), background .35s ease;
}
.feature-strip span:hover{
  transform:translateY(-5px);
  background:var(--blue-dark);
}

.faq-list details{
  overflow:hidden;
}
.faq-list details[open]{
  animation:faqOpen .35s ease;
}
@keyframes faqOpen{
  from{transform:translateY(3px);opacity:.82}
  to{transform:translateY(0);opacity:1}
}
.faq-list summary{
  transition:color .25s ease;
}
.faq-list summary:hover{
  color:var(--blue);
}

.menu.open{
  animation:mobileMenuIn .28s cubic-bezier(.2,.9,.2,1) forwards;
}
@keyframes mobileMenuIn{
  from{opacity:0;transform:translateY(-10px) scale(.98)}
  to{opacity:1;transform:translateY(0) scale(1)}
}

.booking-modal.open .booking-modal__box{
  animation:modalIn .38s cubic-bezier(.2,.9,.2,1) forwards;
}
@keyframes modalIn{
  from{opacity:0;transform:translateY(22px) scale(.96)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
.booking-modal{
  transition:opacity .3s ease;
}

input,
textarea{
  transition:border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}
input:focus,
textarea:focus{
  outline:none;
  border-color:var(--blue);
  box-shadow:0 0 0 4px rgba(11,143,211,.14);
  transform:translateY(-1px);
}

@media (prefers-reduced-motion: reduce){
  *,
  *::before,
  *::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    scroll-behavior:auto!important;
    transition-duration:.01ms!important;
  }
  .reveal,
  .reveal-item,
  .hero__text,
  .rating-card{
    opacity:1!important;
    transform:none!important;
  }
}

/* Foto reali: solo Ingresso / Interno della struttura */
.hero-real{grid-template-columns:minmax(0,1fr) minmax(320px,520px);align-items:center}
.hero-photo-stack{position:relative;z-index:1}.hero-photo{margin:0;border-radius:34px;overflow:hidden;box-shadow:var(--shadow);min-height:560px;background:var(--sky)}.hero-photo img{width:100%;height:100%;object-fit:cover;display:block}.rating-card.compact{position:absolute;left:-28px;bottom:26px;max-width:300px;padding:22px}.rating-card.compact .score{width:58px;height:58px;font-size:1.45rem}
.simple-photo-section{margin-top:42px}.simple-photo-section+.simple-photo-section{margin-top:70px}.photo-section-title{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:18px;border-bottom:1px solid rgba(11,143,211,.18);padding-bottom:16px}.photo-section-title h3{font-size:clamp(1.7rem,3vw,2.7rem)}.photo-section-title p{max-width:520px;margin:0}
.real-mosaic{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:16px}.gallery-real{grid-template-columns:repeat(4,1fr)}.real-photo{position:relative;margin:0;min-height:280px;border-radius:28px;overflow:hidden;background:var(--sky);box-shadow:var(--shadow)}.real-photo--large{grid-row:span 2;min-height:576px}.real-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .55s cubic-bezier(.2,.8,.2,1)}.real-photo:hover img{transform:scale(1.045)}.real-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(6,28,49,.62),rgba(6,28,49,0) 55%);opacity:.88}.real-photo figcaption{position:absolute;z-index:1;left:18px;right:18px;bottom:16px;color:#fff;font-weight:950;text-shadow:0 2px 8px rgba(0,0,0,.24)}
@media(max-width:1000px){.hero-real,.real-mosaic,.gallery-real{grid-template-columns:repeat(2,1fr)}.hero-photo{min-height:420px}.rating-card.compact{position:relative;left:auto;bottom:auto;margin-top:16px}.real-photo--large{grid-column:span 2;grid-row:auto;min-height:420px}.photo-section-title{display:block}}
@media(max-width:720px){.hero-real,.real-mosaic,.gallery-real{grid-template-columns:1fr}.hero-photo,.real-photo,.real-photo--large{grid-column:auto;min-height:300px}}


/* Animazioni automatiche all'apertura della pagina */
.reveal,
.reveal-item{
  will-change:opacity, transform;
}
.page-content{
  animation:pageContentIn .75s cubic-bezier(.2,.9,.2,1) forwards;
}
@keyframes pageContentIn{
  from{opacity:.92;transform:translateY(8px)}
  to{opacity:1;transform:translateY(0)}
}

/* Le animazioni non aspettano più lo scroll: JS aggiunge is-visible a tutti gli elementi al caricamento. */


/* FIX v9: animazioni automatiche sicure, senza schermo bianco */
body{
  opacity:1 !important;
}

.reveal,
.reveal-item{
  opacity:1 !important;
  transform:none !important;
}

/* Quando JS è attivo, aggiunge animations-ready e parte l'animazione automatica */
body.animations-ready .reveal,
body.animations-ready .reveal-item{
  animation:siteAutoReveal .72s cubic-bezier(.2,.9,.2,1) both;
  animation-delay:var(--auto-delay, 0ms);
}

@keyframes siteAutoReveal{
  from{
    opacity:0;
    transform:translateY(28px) scale(.985);
  }
  to{
    opacity:1;
    transform:translateY(0) scale(1);
  }
}

body.animations-ready .header{
  animation:navDrop .65s cubic-bezier(.2,.9,.2,1) both;
}

body.animations-ready .hero__text{
  animation:heroTextIn .85s cubic-bezier(.2,.9,.2,1) .15s both;
}

body.animations-ready .hero-photo-stack,
body.animations-ready .rating-card{
  animation:heroCardIn .85s cubic-bezier(.2,.9,.2,1) .28s both;
}

/* Loader più sicuro: non può restare sopra la pagina */
.page-loader{
  animation:loaderOut .55s ease .35s forwards !important;
  pointer-events:none !important;
}

@media (prefers-reduced-motion: reduce){
  body.animations-ready .reveal,
  body.animations-ready .reveal-item,
  body.animations-ready .header,
  body.animations-ready .hero__text,
  body.animations-ready .hero-photo-stack,
  body.animations-ready .rating-card{
    animation:none !important;
    opacity:1 !important;
    transform:none !important;
  }
}


/* v10 Logo integrato nel sito */
.logo--image{
  display:inline-flex;
  align-items:center;
  justify-content:flex-start;
  flex-shrink:0;
}
.logo--image img{
  display:block;
  width:clamp(118px, 16vw, 176px);
  height:auto;
  border-radius:18px;
  box-shadow:0 10px 24px rgba(6,28,49,.08);
}
.loader-mark--logo{
  display:flex;
  align-items:center;
  justify-content:center;
}
.loader-mark--logo img{
  width:min(320px, 74vw);
  height:auto;
  border-radius:26px;
  box-shadow:0 24px 60px rgba(0,0,0,.22);
}
.hero-brand-stack{
  position:relative;
}
.brand-showcase{
  position:relative;
  margin:0;
  min-height:560px;
  border-radius:36px;
  padding:clamp(22px, 3vw, 34px);
  overflow:hidden;
  background:
    radial-gradient(circle at 18% 20%, rgba(11,143,211,.20), transparent 28%),
    radial-gradient(circle at 85% 18%, rgba(6,63,104,.12), transparent 26%),
    linear-gradient(145deg, rgba(255,255,255,.98), rgba(229,248,255,.95));
  border:1px solid rgba(11,143,211,.18);
  box-shadow:var(--shadow);
  display:flex;
  align-items:center;
  justify-content:center;
}
.brand-showcase__glow{
  position:absolute;
  inset:auto;
  width:220px;
  height:220px;
  right:-35px;
  top:-35px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(11,143,211,.24), transparent 65%);
  pointer-events:none;
}
.brand-showcase img{
  position:relative;
  z-index:1;
  width:min(100%, 460px);
  height:auto;
  object-fit:contain;
  filter:drop-shadow(0 16px 34px rgba(6,28,49,.10));
  border-radius:28px;
}
.brand-showcase figcaption{
  position:absolute;
  left:24px;
  right:24px;
  bottom:20px;
  z-index:1;
  font-size:.98rem;
  line-height:1.55;
  color:var(--blue-dark);
  background:rgba(255,255,255,.82);
  border:1px solid rgba(11,143,211,.14);
  border-radius:18px;
  padding:12px 14px;
  backdrop-filter:blur(8px);
}
.hero-brand-stack .rating-card.compact{
  left:-24px;
  bottom:22px;
}
@media(max-width:1000px){
  .brand-showcase{
    min-height:440px;
  }
}
@media(max-width:720px){
  .logo--image img{
    width:118px;
  }
  .loader-mark--logo img{
    width:min(240px, 70vw);
  }
  .brand-showcase{
    min-height:320px;
    padding:18px;
  }
  .brand-showcase figcaption{
    position:relative;
    left:auto;
    right:auto;
    bottom:auto;
    margin-top:12px;
  }
}


/* v11 correzioni proporzioni header/footer */
.header{
  padding-top:10px !important;
  padding-bottom:10px !important;
  min-height:74px;
}

.logo--image img{
  width:clamp(82px, 9vw, 118px) !important;
  border-radius:12px;
  box-shadow:0 6px 14px rgba(6,28,49,.07);
}

.menu{
  gap:16px;
  font-size:.96rem;
}

.menu a{
  padding-top:7px;
  padding-bottom:7px;
}

.nav-cta{
  padding:9px 15px !important;
}

/* Hero home senza box punteggio */
.hero-brand-stack .rating-card.compact{
  display:none !important;
}

.brand-showcase{
  min-height:500px;
}

.brand-showcase img{
  width:min(100%, 410px);
}

.footer{
  padding:22px 18px !important;
  gap:6px;
  font-size:.95rem;
  line-height:1.45;
}

.footer strong{
  font-size:1rem;
}

.footer span{
  opacity:.88;
}

@media(max-width:1000px){
  .header{
    min-height:68px;
  }
  .logo--image img{
    width:92px !important;
  }
  .brand-showcase{
    min-height:390px;
  }
}

@media(max-width:720px){
  .header{
    padding-top:8px !important;
    padding-bottom:8px !important;
    min-height:62px;
  }
  .logo--image img{
    width:82px !important;
  }
  .menu{
    top:62px;
  }
  .footer{
    padding:18px 14px !important;
    font-size:.88rem;
  }
  .brand-showcase{
    min-height:300px;
  }
}


/* v12 quick facts home migliorate */
.quick-facts--featured{
  grid-template-columns:repeat(2,minmax(260px,340px));
  justify-content:center;
  align-items:stretch;
  gap:24px;
}
.quick-facts--featured article{
  text-align:center;
  padding:28px 24px;
  border-radius:26px;
  background:linear-gradient(180deg,#ffffff 0%, #f8fcff 100%);
  border:1px solid rgba(11,143,211,.18);
  box-shadow:0 18px 42px rgba(6,28,49,.08);
}
.quick-facts--featured .qf-icon{
  width:64px;
  height:64px;
  margin:0 auto 14px;
  display:grid;
  place-items:center;
  border-radius:18px;
  font-size:2rem;
  background:linear-gradient(135deg, rgba(11,143,211,.14), rgba(255,214,102,.20));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9);
}
.quick-facts--featured strong{
  font-size:1.2rem;
  margin-bottom:10px;
}
.quick-facts--featured span:last-child{
  display:block;
  max-width:26ch;
  margin:0 auto;
  line-height:1.6;
}
@media(max-width:720px){
  .quick-facts--featured{
    grid-template-columns:1fr;
    max-width:420px;
    margin-left:auto;
    margin-right:auto;
  }
}


/* v13 box home premium con icone SVG */
.quick-facts--featured{
  grid-template-columns:repeat(2, minmax(280px, 390px)) !important;
  justify-content:center !important;
  align-items:stretch;
  gap:34px !important;
  margin-top:18px;
  margin-bottom:20px;
}
.quick-facts--featured article{
  position:relative;
  overflow:hidden;
  text-align:center;
  min-height:230px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:34px 30px !important;
  border-radius:32px !important;
  background:
    radial-gradient(circle at 18% 12%, rgba(11,143,211,.16), transparent 34%),
    linear-gradient(180deg, #ffffff 0%, #f5fbff 100%) !important;
  border:1px solid rgba(11,143,211,.24) !important;
  box-shadow:0 22px 55px rgba(6,28,49,.10) !important;
}
.quick-facts--featured article::after{
  content:"";
  position:absolute;
  right:-44px;
  bottom:-44px;
  width:132px;
  height:132px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(255,199,76,.20), transparent 66%);
  pointer-events:none;
}
.quick-facts--featured .qf-icon{
  width:74px !important;
  height:74px !important;
  margin:0 auto 18px !important;
  display:grid !important;
  place-items:center !important;
  border-radius:24px !important;
  background:
    linear-gradient(135deg, rgba(11,143,211,.16), rgba(255,214,102,.22)),
    #fff !important;
  border:1px solid rgba(11,143,211,.18);
  box-shadow:0 14px 34px rgba(6,28,49,.08), inset 0 1px 0 rgba(255,255,255,.95) !important;
}
.quick-facts--featured .qf-icon svg{
  width:42px;
  height:42px;
  fill:none;
  stroke:var(--blue-dark);
  stroke-width:4.4;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.quick-facts--featured .qf-icon svg circle{
  fill:var(--blue-dark);
  stroke:none;
}
.quick-facts--featured .qf-icon--kitchen svg{
  stroke:var(--blue-dark);
  stroke-width:4;
}
.quick-facts--featured strong{
  font-size:1.28rem !important;
  letter-spacing:-.02em;
  margin-bottom:10px !important;
}
.quick-facts--featured span:last-child{
  display:block;
  max-width:29ch !important;
  margin:0 auto !important;
  line-height:1.65 !important;
  color:var(--muted);
}
.quick-facts--featured article:hover{
  transform:translateY(-8px) !important;
  box-shadow:0 30px 70px rgba(6,28,49,.14) !important;
}
@media(max-width:720px){
  .quick-facts--featured{
    grid-template-columns:1fr !important;
    max-width:430px;
    margin-left:auto;
    margin-right:auto;
    gap:20px !important;
  }
  .quick-facts--featured article{
    min-height:210px;
    padding:28px 22px !important;
  }
  .quick-facts--featured .qf-icon{
    width:68px !important;
    height:68px !important;
  }
  .quick-facts--featured .qf-icon svg{
    width:38px;
    height:38px;
  }
}


/* v14 - ritocco premium leggero, senza cambiare struttura */
:root{--gold:#c9a35b;--gold-soft:#f6ead1;--ink:#071827;}
body{background:radial-gradient(circle at 8% 0%, rgba(11,143,211,.08), transparent 34rem),radial-gradient(circle at 92% 12%, rgba(201,163,91,.10), transparent 28rem),linear-gradient(180deg,#fffdf8 0%,#f8fbfd 48%,#fffdf8 100%);}
.header{border-bottom:1px solid rgba(201,163,91,.20);box-shadow:0 14px 36px rgba(6,28,49,.055);}
.logo,.logo--image{filter:drop-shadow(0 8px 18px rgba(6,28,49,.08));}
.menu a:not(.nav-cta){position:relative;}
.menu a:not(.nav-cta)::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:2px;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,var(--gold),var(--blue));transition:transform .28s ease;}
.menu a:not(.nav-cta):hover::after{transform:scaleX(1)}
.btn,.nav-cta{background:linear-gradient(135deg,var(--blue-dark),var(--blue));box-shadow:0 16px 34px rgba(11,143,211,.24);}
.btn--light{background:rgba(255,255,255,.9);color:var(--blue-dark);border:1px solid rgba(201,163,91,.34);box-shadow:0 12px 30px rgba(6,28,49,.08);}
.eyebrow{color:var(--gold);}
.rating-card,.panel,.card,.contact-card,.quick-facts article,.faq-list details{border-color:rgba(201,163,91,.20);background:rgba(255,255,255,.88);backdrop-filter:blur(10px);}
.real-photo,.city-photo,.hero-photo{border:1px solid rgba(201,163,91,.22);box-shadow:0 28px 70px rgba(6,28,49,.16);}
.real-photo figcaption,.city-photo figcaption{letter-spacing:.01em;}
.photo-section-title{border-bottom-color:rgba(201,163,91,.28);}
.photo-section-title h3::after{content:"";display:block;width:58px;height:3px;margin-top:12px;border-radius:999px;background:linear-gradient(90deg,var(--gold),var(--blue));}
.page-head{background:radial-gradient(circle at 18% 20%, rgba(11,143,211,.12), transparent 30%),linear-gradient(135deg,#eef9ff,#fffdf8 62%,#fff5df);}
.footer{background:linear-gradient(135deg,var(--navy),#0a2f47);border-top:1px solid rgba(201,163,91,.32);}


/* v15 - Pulsante "Vedi tutte le foto" + galleria popup responsive */
.photo-section-title--with-action,
.section-intro--with-action{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:22px;
}

.section-intro--with-action{
  max-width:100%;
  margin-bottom:34px;
}

.section-intro--with-action p{
  max-width:780px;
}

.btn--gallery{
  flex:0 0 auto;
  min-width:178px;
  border:1px solid rgba(201,163,91,.42);
  background:linear-gradient(135deg,var(--navy),var(--blue-dark));
  box-shadow:0 18px 42px rgba(6,28,49,.16);
}

.btn--gallery:hover{
  transform:translateY(-4px);
  box-shadow:0 24px 56px rgba(6,28,49,.22);
}

.photo-lightbox{
  position:fixed;
  inset:0;
  z-index:220;
  display:none;
  align-items:center;
  justify-content:center;
  padding:88px 82px 116px;
  background:
    radial-gradient(circle at 15% 8%, rgba(11,143,211,.18), transparent 28rem),
    radial-gradient(circle at 88% 18%, rgba(201,163,91,.18), transparent 26rem),
    rgba(5,14,24,.92);
  backdrop-filter:blur(14px);
}

.photo-lightbox.open{
  display:flex;
  animation:lightboxFadeIn .28s ease forwards;
}

@keyframes lightboxFadeIn{
  from{opacity:0}
  to{opacity:1}
}

.photo-lightbox__top{
  position:absolute;
  top:20px;
  left:clamp(16px,4vw,44px);
  right:clamp(16px,4vw,44px);
  z-index:3;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  color:#fff;
}

.photo-lightbox__top strong{
  display:block;
  font-size:clamp(1rem,2vw,1.24rem);
  letter-spacing:-.02em;
}

.photo-lightbox__top span{
  display:block;
  margin-top:4px;
  color:rgba(255,255,255,.72);
  font-weight:800;
}

.photo-lightbox__close{
  width:48px;
  height:48px;
  border:1px solid rgba(255,255,255,.24);
  border-radius:999px;
  background:rgba(255,255,255,.1);
  color:#fff;
  font-size:32px;
  line-height:1;
  cursor:pointer;
  transition:transform .25s ease, background .25s ease;
}

.photo-lightbox__close:hover{
  transform:rotate(8deg) scale(1.04);
  background:rgba(255,255,255,.18);
}

.photo-lightbox__figure{
  position:relative;
  width:min(1120px,100%);
  height:min(74vh,760px);
  margin:0;
  border-radius:32px;
  overflow:hidden;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(201,163,91,.32);
  box-shadow:0 34px 110px rgba(0,0,0,.38);
}

.photo-lightbox__figure img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
  opacity:1;
  transition:opacity .22s ease, transform .22s ease;
}

.photo-lightbox__figure img:not(.is-loaded){
  opacity:.92;
}

.photo-lightbox__figure figcaption{
  position:absolute;
  left:18px;
  bottom:18px;
  z-index:2;
  padding:10px 14px;
  border-radius:999px;
  color:#fff;
  font-weight:950;
  background:rgba(7,24,39,.58);
  border:1px solid rgba(255,255,255,.16);
  backdrop-filter:blur(10px);
}

.photo-lightbox__arrow{
  position:absolute;
  top:50%;
  z-index:4;
  transform:translateY(-50%);
  width:58px;
  height:58px;
  border:1px solid rgba(255,255,255,.24);
  border-radius:999px;
  background:rgba(255,255,255,.12);
  color:#fff;
  font-size:48px;
  line-height:.8;
  cursor:pointer;
  display:grid;
  place-items:center;
  transition:transform .25s ease, background .25s ease, border-color .25s ease;
}

.photo-lightbox__arrow:hover{
  background:rgba(255,255,255,.22);
  border-color:rgba(201,163,91,.55);
}

.photo-lightbox__arrow--prev{
  left:clamp(14px,3vw,34px);
}

.photo-lightbox__arrow--next{
  right:clamp(14px,3vw,34px);
}

.photo-lightbox__arrow--prev:hover{
  transform:translateY(-50%) translateX(-4px);
}

.photo-lightbox__arrow--next:hover{
  transform:translateY(-50%) translateX(4px);
}

.photo-lightbox__thumbs{
  position:absolute;
  left:clamp(14px,4vw,44px);
  right:clamp(14px,4vw,44px);
  bottom:18px;
  z-index:3;
  display:flex;
  gap:10px;
  overflow-x:auto;
  padding:8px 2px 12px;
  scrollbar-width:thin;
}

.photo-lightbox__thumbs button{
  flex:0 0 72px;
  height:54px;
  padding:0;
  border:2px solid transparent;
  border-radius:14px;
  overflow:hidden;
  background:rgba(255,255,255,.12);
  cursor:pointer;
  opacity:.62;
  transition:opacity .22s ease, transform .22s ease, border-color .22s ease;
}

.photo-lightbox__thumbs button:hover,
.photo-lightbox__thumbs button.active{
  opacity:1;
  transform:translateY(-2px);
  border-color:var(--gold);
}

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

body.modal-lock{
  overflow:hidden;
}

@media(max-width:900px){
  .photo-lightbox{
    padding:78px 18px 104px;
  }

  .photo-lightbox__figure{
    height:70vh;
    border-radius:24px;
  }

  .photo-lightbox__arrow{
    width:46px;
    height:46px;
    font-size:38px;
    background:rgba(7,24,39,.34);
  }

  .photo-lightbox__arrow--prev{
    left:10px;
  }

  .photo-lightbox__arrow--next{
    right:10px;
  }

  .photo-lightbox__thumbs button{
    flex-basis:62px;
    height:48px;
  }
}

@media(max-width:720px){
  .photo-section-title--with-action,
  .section-intro--with-action{
    display:block;
  }

  .btn--gallery{
    width:100%;
    margin-top:18px;
  }

  .photo-lightbox{
    padding:74px 10px 96px;
  }

  .photo-lightbox__top{
    top:14px;
  }

  .photo-lightbox__close{
    width:44px;
    height:44px;
  }

  .photo-lightbox__figure{
    width:100%;
    height:68vh;
    border-radius:20px;
  }

  .photo-lightbox__figure figcaption{
    left:12px;
    bottom:12px;
    padding:8px 12px;
    font-size:.92rem;
  }

  .photo-lightbox__arrow{
    top:auto;
    bottom:22px;
    transform:none;
  }

  .photo-lightbox__arrow--prev{
    left:14px;
  }

  .photo-lightbox__arrow--next{
    right:14px;
  }

  .photo-lightbox__arrow--prev:hover,
  .photo-lightbox__arrow--next:hover{
    transform:none;
  }

  .photo-lightbox__thumbs{
    bottom:12px;
    left:74px;
    right:74px;
    padding-bottom:6px;
  }

  .photo-lightbox__thumbs button{
    flex-basis:52px;
    height:42px;
    border-radius:11px;
  }
}


/* v16 - Footer copyright + credito Pixel12C */
.footer{
  display:flex;
  flex-direction:column;
  gap:16px;
  align-items:center;
  justify-content:center;
  padding:42px 20px 34px;
  text-align:center;
}

.footer__main{
  display:flex;
  gap:10px;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
}

.footer__main strong{
  color:#fff;
}

.footer__main span{
  color:rgba(255,255,255,.78);
}

.footer__copyright{
  color:rgba(255,255,255,.72);
  font-size:.95rem;
  font-weight:700;
}

.footer__credit{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  color:rgba(255,255,255,.78);
  font-size:.92rem;
  font-weight:800;
  transition:transform .3s ease, opacity .3s ease, filter .3s ease;
}

.footer__credit:hover{
  transform:translateY(-3px);
  opacity:1;
  filter:drop-shadow(0 10px 22px rgba(31,159,224,.26));
}

.footer__credit img{
  width:112px;
  height:auto;
  display:block;
  object-fit:contain;
}

@media(max-width:720px){
  .footer{
    padding:36px 18px 30px;
  }

  .footer__main{
    flex-direction:column;
    gap:6px;
  }

  .footer__credit{
    flex-direction:column;
    gap:6px;
  }

  .footer__credit img{
    width:104px;
  }
}


/* v18 - Embed Google Maps posizione */
.map-box--embed{
  display:block;
  padding:0;
  overflow:hidden;
  background:#fff;
  border:1px solid rgba(202,164,93,.24);
  box-shadow:var(--shadow);
}

.map-embed{
  position:relative;
  width:100%;
  min-height:420px;
  border-radius:inherit;
  overflow:hidden;
}

.map-embed iframe{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
  display:block;
  filter:saturate(.95) contrast(1.02);
}

.map-open-link{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:16px 18px;
  color:var(--blue-dark);
  font-weight:950;
  background:linear-gradient(135deg,#fffdf8,#eef9ff);
  border-top:1px solid rgba(202,164,93,.22);
  transition:background .25s ease, color .25s ease;
}

.map-open-link:hover{
  color:var(--blue);
  background:linear-gradient(135deg,#fff7e6,#eef9ff);
}

@media(max-width:720px){
  .map-embed{
    min-height:340px;
  }

  .map-open-link{
    padding:14px;
    font-size:.95rem;
  }
}


/* v19 - sezione servizi resa più ricca e piacevole */
.services-intro{
  padding-top:40px;
}
.services-hero{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:22px;
  align-items:stretch;
}
.services-hero__content,
.services-hero__note,
.highlight-card,
.service-card{
  position:relative;
  overflow:hidden;
}
.services-hero__content{
  padding:34px;
  border-radius:32px;
  background:linear-gradient(135deg, rgba(255,255,255,.96), rgba(233,248,255,.9));
  border:1px solid rgba(201,163,91,.22);
  box-shadow:var(--shadow);
}
.services-hero__content::after{
  content:"";
  position:absolute;
  right:-70px;
  bottom:-80px;
  width:220px;
  height:220px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(11,143,211,.18), transparent 68%);
}
.services-hero__content > *{
  position:relative;
  z-index:1;
}
.service-pill-row{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:24px;
}
.service-pill-row span{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 14px;
  border-radius:999px;
  background:#fff;
  border:1px solid rgba(201,163,91,.22);
  box-shadow:0 8px 24px rgba(6,28,49,.07);
  font-weight:800;
  color:var(--blue-dark);
}
.services-hero__note{
  padding:30px;
  border-radius:32px;
  background:linear-gradient(160deg, var(--navy), #0b395f 70%, #135986 100%);
  color:#fff;
  box-shadow:var(--shadow);
}
.services-hero__badge{
  width:58px;
  height:58px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:18px;
  font-size:1.5rem;
  background:rgba(255,255,255,.14);
  margin-bottom:16px;
}
.services-hero__note strong{
  display:block;
  font-size:1.35rem;
  line-height:1.2;
  margin-bottom:10px;
}
.services-hero__note p{
  color:rgba(255,255,255,.86);
  margin:0 0 16px;
}
.service-note-list{
  margin:0;
  padding:0;
  list-style:none;
  display:grid;
  gap:10px;
}
.service-note-list li{
  padding:12px 14px;
  border-radius:18px;
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.08);
  font-weight:700;
}
.service-note-list li::before{
  content:"✓";
  margin-right:10px;
  color:#ffd98d;
}
.service-highlights{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
  padding-top:0;
}
.highlight-card{
  padding:24px;
  border-radius:28px;
  background:linear-gradient(180deg, rgba(255,255,255,.95), rgba(245,236,217,.6));
  border:1px solid rgba(201,163,91,.2);
  box-shadow:0 18px 38px rgba(6,28,49,.08);
}
.highlight-card__icon{
  width:58px;
  height:58px;
  border-radius:18px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg, #fff, #e5f8ff);
  box-shadow:0 10px 24px rgba(11,143,211,.18);
  font-size:1.45rem;
  margin-bottom:16px;
}
.highlight-card h3{
  margin-bottom:10px;
}
.highlight-card p{
  margin:0;
  font-size:1rem;
}
.service-grid--premium{
  align-items:stretch;
}
.service-card{
  display:flex;
  gap:16px;
  align-items:flex-start;
  min-height:100%;
  border:1px solid rgba(201,163,91,.2);
  background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,253,248,.88));
}
.service-card::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:5px;
  background:linear-gradient(90deg, var(--blue), #5bd0ff, #f1bf68);
}
.service-card__icon{
  flex:0 0 64px;
  width:64px;
  height:64px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:20px;
  font-size:1.65rem;
  background:linear-gradient(135deg, #eef9ff, #fff6df);
  color:var(--blue-dark);
  box-shadow:0 12px 28px rgba(6,28,49,.1);
}
.service-card__body{
  flex:1;
}
.service-card__eyebrow{
  margin:0 0 6px;
  font-size:.74rem;
  text-transform:uppercase;
  letter-spacing:.15em;
  font-weight:950;
  color:var(--blue-dark);
}
.service-card__body h3{
  margin-bottom:10px;
}
.service-card__body p{
  margin:0;
  font-size:1rem;
}
.service-checks{
  list-style:none;
  padding:0;
  margin:16px 0 0;
  display:grid;
  gap:10px;
}
.service-checks li{
  position:relative;
  padding-left:28px;
  line-height:1.55;
  color:var(--text);
}
.service-checks li::before{
  content:"✓";
  position:absolute;
  left:0;
  top:0;
  width:18px;
  height:18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  color:var(--blue-dark);
  font-weight:900;
}
.services-cta{
  padding:44px 24px;
  background:linear-gradient(135deg, rgba(245,236,217,.9), rgba(229,248,255,.82));
  border:1px solid rgba(201,163,91,.22);
  box-shadow:var(--shadow);
}
.actions--center{
  justify-content:center;
}
@media(max-width:1100px){
  .services-hero,
  .service-highlights{
    grid-template-columns:1fr 1fr;
  }
}
@media(max-width:720px){
  .services-hero,
  .service-highlights,
  .service-grid--premium{
    grid-template-columns:1fr;
  }
  .service-card{
    flex-direction:column;
  }
  .service-card__icon{
    width:58px;
    height:58px;
    flex-basis:auto;
  }
  .services-hero__content,
  .services-hero__note,
  .highlight-card,
  .services-cta{
    padding:22px;
  }
}


/* v20 - boutique premium + icone SVG reali */
.svg-icon{
  width:1.25em;
  height:1.25em;
  display:inline-block;
  vertical-align:-.2em;
  fill:none;
  stroke:currentColor;
  stroke-width:1.85;
  stroke-linecap:round;
  stroke-linejoin:round;
}

body{
  background:
    radial-gradient(circle at 7% 8%, rgba(11,143,211,.07), transparent 28rem),
    radial-gradient(circle at 92% 22%, rgba(201,163,91,.08), transparent 26rem),
    linear-gradient(180deg,#fffdf8 0%,#f7fbfd 48%,#fffaf1 100%);
}

.header{
  box-shadow:0 14px 38px rgba(6,28,49,.055);
}

.page-head{
  position:relative;
  overflow:hidden;
}

.page-head::after{
  content:"";
  position:absolute;
  right:-120px;
  top:-120px;
  width:310px;
  height:310px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(201,163,91,.16), transparent 68%);
  pointer-events:none;
}

.page-head--services{
  background:
    radial-gradient(circle at 14% 18%, rgba(11,143,211,.15), transparent 26rem),
    linear-gradient(135deg,#eef9ff 0%,#fffdf8 58%,#fff0d1 100%);
}

.btn{
  letter-spacing:.01em;
}

.services-intro{
  padding-top:44px;
}

.services-hero{
  display:grid;
  grid-template-columns:1.18fr .82fr;
  gap:24px;
  align-items:stretch;
}

.services-hero__content,
.services-hero__note,
.highlight-card,
.service-card,
.services-photo-card{
  position:relative;
  overflow:hidden;
}

.services-hero__content{
  padding:clamp(26px,4vw,44px);
  border-radius:36px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.96), rgba(229,248,255,.86)),
    linear-gradient(135deg, rgba(246,239,228,.96), rgba(213,180,123,.55));
  background-blend-mode:screen;
  border:1px solid rgba(201,163,91,.22);
  box-shadow:var(--shadow);
}

.services-hero__content::after{
  content:"";
  position:absolute;
  right:-80px;
  bottom:-90px;
  width:240px;
  height:240px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(11,143,211,.18), transparent 68%);
}

.services-hero__content > *{
  position:relative;
  z-index:1;
}

.service-pill-row{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:24px;
}

.service-pill-row span{
  display:inline-flex;
  align-items:center;
  gap:9px;
  padding:11px 15px;
  border-radius:999px;
  background:rgba(255,255,255,.88);
  border:1px solid rgba(201,163,91,.24);
  box-shadow:0 10px 26px rgba(6,28,49,.075);
  font-weight:900;
  color:var(--blue-dark);
  backdrop-filter:blur(8px);
}

.service-pill-row .svg-icon{
  color:var(--gold, #c9a35b);
}

.services-hero__note{
  padding:clamp(26px,3vw,36px);
  border-radius:36px;
  background:
    radial-gradient(circle at 88% 10%, rgba(255,255,255,.14), transparent 16rem),
    linear-gradient(160deg, var(--navy), #0b395f 70%, #135986 100%);
  color:#fff;
  box-shadow:var(--shadow);
  border:1px solid rgba(201,163,91,.24);
}

.services-hero__badge{
  width:62px;
  height:62px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:20px;
  color:#f6d796;
  background:rgba(255,255,255,.12);
  margin-bottom:18px;
}

.services-hero__badge .svg-icon{
  width:30px;
  height:30px;
}

.services-hero__note strong{
  display:block;
  font-size:1.38rem;
  line-height:1.22;
  margin-bottom:12px;
}

.services-hero__note p{
  color:rgba(255,255,255,.86);
  margin:0 0 18px;
}

.service-note-list{
  margin:0;
  padding:0;
  list-style:none;
  display:grid;
  gap:10px;
}

.service-note-list li{
  padding:12px 14px;
  border-radius:18px;
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.08);
  font-weight:800;
}

.service-note-list li::before{
  content:"✓";
  margin-right:10px;
  color:#ffd98d;
}

.service-highlights{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
  padding-top:0;
}

.highlight-card{
  padding:26px;
  border-radius:30px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(245,236,217,.62));
  border:1px solid rgba(201,163,91,.22);
  box-shadow:0 20px 44px rgba(6,28,49,.08);
}

.highlight-card::after{
  content:"";
  position:absolute;
  right:-45px;
  bottom:-45px;
  width:110px;
  height:110px;
  border-radius:50%;
  background:rgba(11,143,211,.08);
}

.highlight-card__icon{
  width:62px;
  height:62px;
  border-radius:20px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg, #fff, #e5f8ff);
  color:var(--blue-dark);
  box-shadow:0 12px 28px rgba(11,143,211,.16);
  margin-bottom:16px;
}

.highlight-card__icon .svg-icon{
  width:30px;
  height:30px;
}

.highlight-card h3{
  margin-bottom:10px;
}

.highlight-card p{
  margin:0;
  font-size:1rem;
}

.service-grid--premium{
  align-items:stretch;
}

.service-card{
  display:flex;
  gap:17px;
  align-items:flex-start;
  min-height:100%;
  border:1px solid rgba(201,163,91,.22);
  background:linear-gradient(180deg, rgba(255,255,255,.97), rgba(255,253,248,.9));
}

.service-card::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:5px;
  background:linear-gradient(90deg, var(--blue), #5bd0ff, #f1bf68);
}

.service-card__icon{
  flex:0 0 66px;
  width:66px;
  height:66px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:22px;
  color:var(--blue-dark);
  background:linear-gradient(135deg, #eef9ff, #fff6df);
  box-shadow:0 12px 30px rgba(6,28,49,.11);
}

.service-card__icon .svg-icon{
  width:32px;
  height:32px;
}

.service-card__body{
  flex:1;
}

.service-card__eyebrow{
  margin:0 0 6px;
  font-size:.74rem;
  text-transform:uppercase;
  letter-spacing:.15em;
  font-weight:950;
  color:var(--gold, #c9a35b);
}

.service-card__body h3{
  margin-bottom:10px;
}

.service-card__body p{
  margin:0;
  font-size:1rem;
}

.service-checks{
  list-style:none;
  padding:0;
  margin:16px 0 0;
  display:grid;
  gap:10px;
}

.service-checks li{
  position:relative;
  padding-left:30px;
  line-height:1.55;
  color:var(--text);
}

.service-checks li::before{
  content:"✓";
  position:absolute;
  left:0;
  top:.1em;
  width:20px;
  height:20px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:linear-gradient(135deg,#eef9ff,#fff6df);
  color:var(--blue-dark);
  font-size:.82rem;
  font-weight:950;
  box-shadow:0 4px 12px rgba(6,28,49,.08);
}

.services-gallery-preview{
  padding-top:0;
}

.services-photo-card{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:28px;
  align-items:center;
  padding:clamp(18px,3vw,28px);
  border-radius:36px;
  background:linear-gradient(135deg, rgba(255,255,255,.96), rgba(238,249,255,.88));
  border:1px solid rgba(201,163,91,.24);
  box-shadow:var(--shadow);
}

.services-photo-card img{
  width:100%;
  min-height:390px;
  max-height:480px;
  object-fit:cover;
  border-radius:28px;
  box-shadow:0 18px 44px rgba(6,28,49,.13);
}

.services-photo-card p{
  margin-bottom:22px;
}

.services-cta{
  padding:46px 26px;
  background:
    radial-gradient(circle at 10% 15%, rgba(11,143,211,.11), transparent 22rem),
    linear-gradient(135deg, rgba(245,236,217,.92), rgba(229,248,255,.86));
  border:1px solid rgba(201,163,91,.24);
  box-shadow:var(--shadow);
}

.actions--center{
  justify-content:center;
}

.footer{
  border-top:1px solid rgba(201,163,91,.28);
}

@media(max-width:1100px){
  .services-hero,
  .service-highlights,
  .services-photo-card{
    grid-template-columns:1fr 1fr;
  }
}

@media(max-width:820px){
  .services-hero,
  .service-highlights,
  .services-photo-card{
    grid-template-columns:1fr;
  }
}

@media(max-width:720px){
  .service-grid--premium{
    grid-template-columns:1fr;
  }

  .service-card{
    flex-direction:column;
  }

  .service-card__icon{
    width:60px;
    height:60px;
    flex-basis:auto;
  }

  .services-hero__content,
  .services-hero__note,
  .highlight-card,
  .services-cta{
    padding:22px;
  }

  .service-pill-row span{
    width:100%;
  }

  .services-photo-card img{
    min-height:300px;
  }
}


/* v23 - Titolo Home con nome struttura in stile logo */
.home-title{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:10px;
  line-height:.95;
}

.home-title__main{
  display:block;
  white-space:nowrap;
  letter-spacing:-.055em;
}

.home-title__brand{
  display:inline-block;
  width:max-content;
  max-width:100%;
  font-size:clamp(2rem, 5.2vw, 4.8rem);
  line-height:1.02;
  letter-spacing:-.035em;
  font-style:italic;
  font-weight:800;
  color:var(--gold, #caa45d);
  font-family:Georgia, "Times New Roman", serif;
  text-shadow:0 10px 26px rgba(202,164,93,.18);
  position:relative;
}

.home-title__brand::after{
  content:"";
  display:block;
  width:72%;
  height:3px;
  margin-top:8px;
  border-radius:999px;
  background:linear-gradient(90deg, var(--gold, #caa45d), var(--blue, #1f9fe0), transparent);
  opacity:.9;
}

@media(max-width:780px){
  .home-title{
    gap:8px;
  }

  .home-title__main{
    font-size:clamp(2.05rem, 9vw, 3.8rem);
    white-space:nowrap;
  }

  .home-title__brand{
    font-size:clamp(1.65rem, 7vw, 3rem);
  }
}

@media(max-width:430px){
  .home-title__main{
    font-size:clamp(1.75rem, 8.2vw, 2.45rem);
    letter-spacing:-.065em;
  }

  .home-title__brand{
    font-size:clamp(1.45rem, 6.6vw, 2.2rem);
  }
}


/* v24 - Correzione titolo Home desktop: resta su una riga ma non invade l'immagine */
.hero__text{
  min-width:0;
}

.home-title{
  max-width:100%;
}

.home-title__main{
  font-size:clamp(2.7rem, 3.35vw, 4.45rem);
  max-width:100%;
  transform-origin:left center;
}

.home-title__brand{
  font-size:clamp(1.9rem, 3.15vw, 3.75rem);
}

@media(min-width:1000px) and (max-width:1320px){
  .home-title__main{
    font-size:clamp(2.45rem, 3.05vw, 3.75rem);
  }

  .home-title__brand{
    font-size:clamp(1.75rem, 2.7vw, 3.15rem);
  }
}

@media(min-width:1000px){
  .hero-real{
    grid-template-columns:minmax(0, .95fr) minmax(360px, 500px);
    column-gap:clamp(26px, 4vw, 70px);
  }
}


/* v25 - Footer frase principale evidenziata */
.footer__main--highlight strong{
  display:inline-block;
  padding:10px 18px;
  border-radius:999px;
  color:#fff;
  background:linear-gradient(135deg, rgba(255,255,255,.12), rgba(255,255,255,.05));
  border:1px solid rgba(202,164,93,.34);
  box-shadow:0 12px 30px rgba(0,0,0,.14);
  letter-spacing:.01em;
}

@media(max-width:720px){
  .footer__main--highlight strong{
    border-radius:22px;
    line-height:1.35;
  }
}


/* v26 - Sezione Dicono di noi */
.reviews-section{
  position:relative;
  overflow:hidden;
}

.reviews-section::before{
  content:"";
  position:absolute;
  inset:18px auto auto 50%;
  width:520px;
  height:520px;
  transform:translateX(-50%);
  border-radius:50%;
  background:radial-gradient(circle, rgba(11,143,211,.11), transparent 68%);
  pointer-events:none;
}

.reviews-head{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:28px;
  align-items:end;
  margin-bottom:26px;
}

.booking-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  width:max-content;
  max-width:100%;
  padding:10px 16px;
  border-radius:999px 999px 999px 12px;
  background:linear-gradient(135deg,#003b95,#0b6edc);
  color:#fff;
  font-weight:950;
  box-shadow:0 14px 28px rgba(0,59,149,.20);
  margin-bottom:16px;
}

.booking-badge::before{
  content:"★";
  color:#ffd66b;
}

.reviews-score{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  width:142px;
  height:142px;
  border-radius:34px;
  background:linear-gradient(160deg,var(--blue-dark),var(--blue));
  color:#fff;
  box-shadow:0 22px 48px rgba(11,143,211,.25);
  border:1px solid rgba(255,255,255,.32);
}

.reviews-score span{
  font-size:3.15rem;
  line-height:1;
  font-weight:950;
  letter-spacing:-.06em;
}

.reviews-score small{
  margin-top:8px;
  font-weight:850;
  color:rgba(255,255,255,.85);
  text-align:center;
}

.reviews-shell{
  position:relative;
  z-index:1;
}

.reviews-track{
  display:flex;
  gap:18px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  padding:6px 8px 28px;
  margin:0 -8px;
  scrollbar-width:thin;
}

.reviews-track::-webkit-scrollbar{
  height:10px;
}

.reviews-track::-webkit-scrollbar-thumb{
  border-radius:999px;
  background:rgba(11,143,211,.28);
}

.review-card{
  scroll-snap-align:start;
  flex:0 0 min(390px, 84vw);
  min-height:360px;
  display:flex;
  flex-direction:column;
  padding:24px;
  border-radius:30px;
  background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,253,248,.9));
  border:1px solid rgba(201,163,91,.24);
  box-shadow:0 18px 42px rgba(6,28,49,.09);
  position:relative;
  overflow:hidden;
}

.review-card::before{
  content:"“";
  position:absolute;
  right:18px;
  bottom:-34px;
  font-family:Georgia, serif;
  font-size:10rem;
  color:rgba(11,143,211,.07);
  line-height:1;
}

.review-card__top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:18px;
}

.review-card__person{
  display:flex;
  align-items:center;
  gap:12px;
}

.review-avatar{
  width:50px;
  height:50px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,var(--blue),#0a4d82);
  color:#fff;
  font-weight:950;
  box-shadow:0 10px 24px rgba(6,28,49,.14);
}

.review-card__person strong{
  display:block;
  color:var(--navy);
  font-size:1.07rem;
}

.review-card__person small{
  display:block;
  color:var(--muted);
  margin-top:2px;
  font-weight:800;
}

.review-score{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:58px;
  height:58px;
  padding:0 12px;
  border-radius:16px;
  background:#003b95;
  color:#fff;
  font-weight:950;
  font-size:1.35rem;
  box-shadow:0 10px 22px rgba(0,59,149,.18);
}

.review-card h3{
  position:relative;
  z-index:1;
  margin:0 0 8px;
  font-size:1.24rem;
}

.review-date{
  position:relative;
  z-index:1;
  margin:0 0 18px;
  color:var(--muted);
  font-weight:800;
  font-size:.95rem;
}

.review-text{
  position:relative;
  z-index:1;
  margin:0;
  line-height:1.74;
  color:var(--text);
}

.review-card--more{
  justify-content:center;
  align-items:flex-start;
  background:linear-gradient(160deg,var(--navy),#0b395f 70%,#135986);
  color:#fff;
  border-color:rgba(255,255,255,.15);
}

.review-card--more h3,
.review-card--more p{
  color:#fff;
}

.review-card--more p{
  color:rgba(255,255,255,.84);
  margin-bottom:24px;
}

.review-more-mark{
  width:58px;
  height:58px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:20px;
  background:rgba(255,255,255,.12);
  color:#ffd98d;
  font-size:2rem;
  margin-bottom:18px;
}

.reviews-arrow{
  position:absolute;
  z-index:3;
  top:50%;
  transform:translateY(-50%);
  width:48px;
  height:48px;
  border-radius:50%;
  border:1px solid rgba(201,163,91,.28);
  background:rgba(255,255,255,.92);
  color:var(--blue-dark);
  font-size:2rem;
  line-height:1;
  cursor:pointer;
  box-shadow:0 14px 30px rgba(6,28,49,.12);
  transition:transform .25s ease, background .25s ease;
}

.reviews-arrow:hover{
  background:#fff;
  transform:translateY(-50%) scale(1.05);
}

.reviews-arrow--prev{left:-14px;}
.reviews-arrow--next{right:-14px;}

@media(max-width:900px){
  .reviews-head{
    grid-template-columns:1fr;
    align-items:start;
  }

  .reviews-score{
    width:100%;
    height:auto;
    padding:18px;
    flex-direction:row;
    gap:14px;
    justify-content:flex-start;
    border-radius:26px;
  }

  .reviews-score span{
    font-size:2.2rem;
  }

  .reviews-score small{
    margin:0;
    text-align:left;
  }
}

@media(max-width:720px){
  .review-card{
    min-height:auto;
    padding:22px;
    flex-basis:88vw;
  }

  .review-card__top{
    align-items:center;
  }

  .review-score{
    min-width:52px;
    height:52px;
    font-size:1.18rem;
  }

  .reviews-arrow{
    display:none;
  }

  .booking-badge{
    width:100%;
    justify-content:center;
    border-radius:20px;
    text-align:center;
  }
}


/* v27 - Titolo pagina Servizi più premium e corsivo */
.page-head--services .services-title{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:8px;
  max-width:900px;
  font-size:clamp(2.05rem, 4.1vw, 4.25rem);
  line-height:.98;
  letter-spacing:-.045em;
  font-family:Georgia, "Times New Roman", serif;
  font-style:italic;
  font-weight:800;
}

.page-head--services .services-title span{
  display:block;
  color:var(--navy, #061c31);
}

.page-head--services .services-title em{
  display:inline-block;
  width:max-content;
  max-width:100%;
  color:var(--gold, #caa45d);
  font-style:italic;
  text-shadow:0 10px 26px rgba(202,164,93,.18);
  position:relative;
}

.page-head--services .services-title em::after{
  content:"";
  display:block;
  width:78%;
  height:3px;
  margin-top:8px;
  border-radius:999px;
  background:linear-gradient(90deg, var(--gold, #caa45d), var(--blue, #1f9fe0), transparent);
  opacity:.9;
}

.services-mini-title{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:8px 14px;
  border-radius:999px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(202,164,93,.28);
  box-shadow:0 10px 28px rgba(6,28,49,.08);
  backdrop-filter:blur(8px);
}

.services-mini-title span{
  color:var(--gold, #caa45d);
  font-weight:950;
  text-shadow:0 8px 18px rgba(202,164,93,.18);
}

@media(max-width:720px){
  .page-head--services .services-title{
    font-size:clamp(1.95rem, 8vw, 3.05rem);
    gap:6px;
  }

  .page-head--services .services-title em::after{
    height:2px;
    margin-top:6px;
  }
}


/* v29 - Titoli premium coordinati su tutte le sezioni */
.page-title-premium,
.section-title-premium{
  position:relative;
  display:inline-block;
  width:max-content;
  max-width:100%;
  font-family:Georgia, "Times New Roman", serif;
  font-style:italic;
  font-weight:800;
  color:var(--navy, #061c31);
  text-wrap:balance;
}

.page-title-premium{
  font-size:clamp(2.15rem, 4.6vw, 4.85rem);
  line-height:1;
  letter-spacing:-.052em;
}

.section-title-premium{
  font-size:clamp(1.95rem, 3.5vw, 3.55rem);
  line-height:1.03;
  letter-spacing:-.045em;
}

.title-accent{
  color:var(--gold, #caa45d);
  text-shadow:0 10px 26px rgba(202,164,93,.18);
}

.page-title-premium::after,
.section-title-premium::after{
  content:"";
  display:block;
  width:min(280px, 76%);
  height:3px;
  margin-top:11px;
  border-radius:999px;
  background:linear-gradient(90deg, var(--gold, #caa45d), var(--blue, #1f9fe0), transparent);
  opacity:.9;
}

.subsection-title-premium{
  display:inline-block;
  position:relative;
  width:max-content;
  max-width:100%;
  font-family:Georgia, "Times New Roman", serif;
  font-style:italic;
  font-weight:800;
  font-size:clamp(1.45rem, 2.5vw, 2.25rem);
  letter-spacing:-.03em;
  color:var(--blue-dark, #063f68);
}

.subsection-title-premium::after{
  content:"";
  display:block;
  width:72%;
  height:2px;
  margin-top:7px;
  border-radius:999px;
  background:linear-gradient(90deg, var(--blue, #1f9fe0), var(--gold, #caa45d), transparent);
}

.page-head:not(.page-head--services) .page-title-premium{
  margin-top:4px;
}

.section-intro .section-title-premium,
.reviews-head .section-title-premium,
.two .section-title-premium,
.panel .section-title-premium,
.services-photo-card .section-title-premium,
.cta-band .section-title-premium{
  margin-bottom:8px;
}

.reviews-head .section-title-premium{
  max-width:820px;
}

.services-hero__content .section-title-premium{
  max-width:760px;
}

.cta-band .section-title-premium{
  margin-left:auto;
  margin-right:auto;
}

.photo-section-title .subsection-title-premium{
  margin-bottom:8px;
}

@media(max-width:720px){
  .page-title-premium{
    font-size:clamp(2rem, 8.2vw, 3.25rem);
  }

  .section-title-premium{
    font-size:clamp(1.82rem, 7.2vw, 2.85rem);
  }

  .page-title-premium::after,
  .section-title-premium::after{
    height:2px;
    margin-top:8px;
  }
}

@media(max-width:430px){
  .page-title-premium,
  .section-title-premium{
    width:auto;
  }
}


/* v31 - Modulo contatti funzionante */
.contact-form--live{
  gap:18px;
}

.form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}

.contact-form--live input,
.contact-form--live textarea{
  background:rgba(255,255,255,.96);
}

.contact-form--live button[type="submit"]{
  width:max-content;
  min-width:190px;
}

.form-note{
  margin:0;
  padding:14px 16px;
  border-radius:18px;
  background:linear-gradient(135deg, rgba(229,248,255,.72), rgba(255,246,223,.72));
  border:1px solid rgba(202,164,93,.22);
  color:var(--muted);
  font-size:.98rem!important;
}

.thank-you-page .actions{
  margin-top:26px;
}

@media(max-width:720px){
  .form-row{
    grid-template-columns:1fr;
  }

  .contact-form--live button[type="submit"]{
    width:100%;
  }
}


/* v32 - Pulsanti contatto telefono / WhatsApp */
.contact-action-buttons{
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
  margin:20px 0 18px;
}

.contact-action{
  width:100%;
  text-align:center;
}

.contact-action--phone::before{
  content:"☎";
  margin-right:8px;
}

.contact-action--whatsapp::before{
  content:"✆";
  margin-right:8px;
}

@media(min-width:560px){
  .contact-action-buttons{
    grid-template-columns:1fr 1fr;
  }
}


/* v33 - Privacy + SEO polish */
.privacy-consent{display:grid;grid-template-columns:auto 1fr;align-items:flex-start;gap:10px;padding:14px 16px;border-radius:18px;background:linear-gradient(135deg,rgba(229,248,255,.72),rgba(255,246,223,.72));border:1px solid rgba(202,164,93,.22);font-weight:700;color:var(--text)}
.privacy-consent input{width:18px;height:18px;margin-top:3px;accent-color:var(--blue-dark)}
.privacy-consent a{color:var(--blue-dark);font-weight:950;text-decoration:underline}
.privacy-content{max-width:980px}.privacy-content .panel{display:grid;gap:18px}.privacy-content h2{font-size:clamp(1.35rem,2.2vw,2rem);margin-top:8px}.privacy-content p{margin:0}.privacy-note{padding:16px 18px;border-radius:18px;background:#fff6df;border:1px solid rgba(202,164,93,.28)}
.footer__privacy{color:rgba(255,255,255,.78);font-weight:800;font-size:.92rem;text-decoration:underline;text-underline-offset:4px;transition:color .25s ease,transform .25s ease}.footer__privacy:hover{color:#fff;transform:translateY(-2px)}
@media(max-width:720px){.privacy-consent{font-size:.95rem}}


/* v38 - Pulsante WhatsApp verde con logo */
.contact-action{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
}

.contact-action__icon{
  width:20px;
  height:20px;
  fill:currentColor;
  flex:0 0 auto;
}

.contact-action--whatsapp{
  background:linear-gradient(135deg, #25d366, #1faa52);
  border-color:#25d366;
  color:#fff;
  box-shadow:0 14px 30px rgba(37, 211, 102, .25);
}

.contact-action--whatsapp:hover{
  background:linear-gradient(135deg, #20c35d, #199c48);
  border-color:#20c35d;
  color:#fff;
  transform:translateY(-3px);
  box-shadow:0 18px 36px rgba(37, 211, 102, .32);
}

.contact-action--whatsapp::before{
  content:none;
}


/* v39 - Popup scelta numeri telefono / WhatsApp */
.contact-action{
  border:0;
  cursor:pointer;
  font:inherit;
}

.contact-choice-modal{
  position:fixed;
  inset:0;
  z-index:240;
  display:none;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:rgba(6,28,49,.66);
  backdrop-filter:blur(10px);
}

.contact-choice-modal.open{
  display:flex;
  animation:contactChoiceFade .25s ease forwards;
}

@keyframes contactChoiceFade{
  from{opacity:0}
  to{opacity:1}
}

.contact-choice-modal__box{
  position:relative;
  width:min(620px,100%);
  max-height:90vh;
  overflow:auto;
  padding:clamp(24px,4vw,36px);
  border-radius:32px;
  background:linear-gradient(180deg,#fffdf8,#ffffff);
  border:1px solid rgba(202,164,93,.28);
  box-shadow:0 34px 100px rgba(0,0,0,.32);
}

.contact-choice-modal__close{
  position:absolute;
  top:14px;
  right:16px;
  width:44px;
  height:44px;
  border:0;
  border-radius:50%;
  background:rgba(6,28,49,.06);
  color:var(--blue-dark);
  font-size:32px;
  line-height:1;
  cursor:pointer;
  transition:transform .25s ease, background .25s ease;
}

.contact-choice-modal__close:hover{
  transform:rotate(8deg) scale(1.04);
  background:rgba(6,28,49,.1);
}

.contact-choice-modal__box h2{
  margin-right:44px;
  font-family:Georgia, "Times New Roman", serif;
  font-style:italic;
  font-size:clamp(1.8rem,4vw,3rem);
  letter-spacing:-.04em;
}

.contact-choice-modal__intro{
  margin:14px 0 24px;
  color:var(--muted);
}

.contact-choice-group{
  display:grid;
  gap:12px;
}

.contact-choice-group + .contact-choice-group{
  margin-top:24px;
}

.contact-choice-label{
  display:inline-flex;
  width:max-content;
  padding:8px 13px;
  border-radius:999px;
  color:var(--blue-dark);
  background:linear-gradient(135deg,rgba(229,248,255,.9),rgba(255,246,223,.8));
  border:1px solid rgba(202,164,93,.24);
  font-weight:950;
  font-size:.86rem;
  text-transform:uppercase;
  letter-spacing:.12em;
}

.contact-choice-list{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}

.contact-choice-card{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:18px;
  border-radius:22px;
  background:#fff;
  border:1px solid rgba(202,164,93,.24);
  box-shadow:0 12px 28px rgba(6,28,49,.08);
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.contact-choice-card:hover{
  transform:translateY(-3px);
  box-shadow:0 18px 38px rgba(6,28,49,.14);
  border-color:rgba(11,143,211,.32);
}

.contact-choice-card strong{
  color:var(--navy);
  font-size:1.15rem;
}

.contact-choice-card span{
  color:var(--blue-dark);
  font-weight:900;
}

.contact-choice-card.is-whatsapp-mode span{
  color:#159947;
}

.contact-choice-group--support{
  padding-top:18px;
  border-top:1px solid rgba(202,164,93,.22);
}

.contact-choice-support-text{
  margin:0;
  color:var(--muted);
  font-size:.98rem!important;
}

.contact-choice-card--support{
  background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(255,246,223,.66));
  opacity:.92;
}

@media(max-width:720px){
  .contact-choice-list{
    grid-template-columns:1fr;
  }

  .contact-choice-modal{
    padding:12px;
  }

  .contact-choice-modal__box{
    border-radius:24px;
  }
}


/* v40 - Rimosso testo descrittivo popup contatti */
.contact-choice-modal__intro:empty{
  display:none;
}


/* v43 - Stato invio form */
.form-status{
  min-height:22px;
  margin:12px 0 0;
  font-weight:800;
  color:var(--blue-dark);
}

.form-status.is-success{
  color:#16823b;
}

.form-status.is-error{
  color:#b42318;
}

.contact-form button[disabled]{
  opacity:.72;
  cursor:not-allowed;
  transform:none!important;
}


/* =========================================================
   v45 - anteprime foto compatte da telefono/tablet
   ========================================================= */

/* Le foto nelle sezioni normali diventano anteprime compatte.
   Per vedere bene una foto si usa il lightbox da "Guarda le foto". */
@media(max-width:1000px){
  .real-preview{
    padding-left:clamp(12px,3vw,24px) !important;
    padding-right:clamp(12px,3vw,24px) !important;
  }

  .real-mosaic,
  .real-mosaic.simple,
  .gallery-real{
    grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
    gap:10px !important;
  }

  .real-photo,
  .real-photo--large,
  .gallery-real .real-photo--large{
    grid-column:auto !important;
    grid-row:auto !important;
    min-height:165px !important;
    height:165px !important;
    border-radius:18px !important;
  }

  .real-photo figcaption{
    left:9px !important;
    right:9px !important;
    bottom:8px !important;
    font-size:.78rem !important;
    line-height:1.15 !important;
  }
}

@media(max-width:720px){
  .real-preview{
    padding-top:44px !important;
    padding-bottom:44px !important;
    padding-left:10px !important;
    padding-right:10px !important;
  }

  .simple-photo-section{
    margin-top:22px !important;
  }

  .simple-photo-section + .simple-photo-section{
    margin-top:38px !important;
  }

  .photo-section-title,
  .photo-section-title--with-action,
  .section-intro--with-action{
    display:block !important;
    margin-bottom:12px !important;
    padding-bottom:10px !important;
  }

  .photo-section-title h3{
    font-size:1.4rem !important;
  }

  .photo-section-title p,
  .section-intro p{
    font-size:.92rem !important;
    line-height:1.45 !important;
  }

  .real-mosaic,
  .real-mosaic.simple,
  .gallery-real{
    grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
    gap:7px !important;
  }

  .real-photo,
  .real-photo--large,
  .gallery-real .real-photo--large{
    min-height:112px !important;
    height:112px !important;
    border-radius:13px !important;
  }

  .real-photo img{
    object-fit:cover !important;
  }

  .real-photo figcaption{
    display:none !important;
  }

  .real-photo:after{
    background:linear-gradient(to top, rgba(6,28,49,.32), rgba(6,28,49,0) 48%) !important;
  }

  .btn--gallery{
    width:100% !important;
    margin-top:14px !important;
  }
}

@media(max-width:420px){
  .real-mosaic,
  .real-mosaic.simple,
  .gallery-real{
    grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
    gap:6px !important;
  }

  .real-photo,
  .real-photo--large,
  .gallery-real .real-photo--large{
    min-height:96px !important;
    height:96px !important;
    border-radius:12px !important;
  }
}

/* Il lightbox resta grande e comodo: è quello da usare per guardare bene le foto. */
@media(max-width:720px){
  .photo-lightbox__figure{
    height:68vh !important;
  }

  .photo-lightbox__thumbs button{
    flex-basis:52px !important;
    height:42px !important;
  }
}


/* =========================================================
   v46 - Gallery solo ingresso + fix tap/zoom mobile
   ========================================================= */
.gallery-actions{
  margin:16px 0 18px;
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}
.ingresso-lightbox{
  touch-action:none;
  overscroll-behavior:contain;
}
/* Previene zoom e glitch su tap veloci da mobile nelle gallery */
html, body{
  touch-action:manipulation;
}
.photo-lightbox,
.photo-lightbox *,
.ingresso-lightbox,
.ingresso-lightbox *,
button,
.btn,
a{
  -webkit-tap-highlight-color:transparent;
}
.photo-lightbox,
.photo-lightbox__dialog,
.photo-lightbox__figure,
.photo-lightbox__figure img,
.photo-lightbox__arrow,
.photo-lightbox__close,
.photo-lightbox__thumbs,
.photo-lightbox__thumbs button{
  touch-action:manipulation;
}
.photo-lightbox.open,
.photo-lightbox.open .photo-lightbox__dialog,
.photo-lightbox.open .photo-lightbox__figure{
  touch-action:none;
  overscroll-behavior:contain;
}
.photo-lightbox__figure img{
  -webkit-user-select:none;
  user-select:none;
  -webkit-touch-callout:none;
  pointer-events:none;
}
.photo-lightbox__arrow,
.photo-lightbox__close,
.photo-lightbox__thumbs button,
[data-gallery-open],
[data-ingresso-open]{
  touch-action:manipulation;
  user-select:none;
}
.photo-lightbox__arrow{
  -webkit-user-select:none;
  user-select:none;
}
@media(max-width:720px){
  .gallery-actions{
    margin:12px 0 14px;
  }
  .gallery-actions .btn,
  .gallery-actions button{
    width:100%;
  }
  .photo-lightbox__arrow{
    width:46px !important;
    height:46px !important;
    min-width:46px !important;
    min-height:46px !important;
    font-size:34px !important;
  }
}


/* =========================================================
   v47 - Sezione Prenota: calendario, iCal ready, richiesta
   ========================================================= */
.booking-section{max-width:1320px}
.booking-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(330px,.65fr);gap:24px;align-items:start}
.booking-calendar-panel,.booking-form-card{background:rgba(255,255,255,.9);border:1px solid rgba(202,164,93,.22);border-radius:32px;box-shadow:var(--shadow);padding:clamp(20px,3vw,34px);backdrop-filter:blur(10px)}
.booking-calendar-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px}
.booking-calendar-head h2,.booking-form-card h2{font-size:clamp(2rem,3.5vw,3.6rem)}
.calendar-nav{display:flex;align-items:center;gap:10px;flex-shrink:0;background:var(--sky);border:1px solid rgba(202,164,93,.18);border-radius:999px;padding:6px}
.calendar-nav strong{min-width:150px;text-align:center;color:var(--navy)}
.calendar-btn{width:42px;height:42px;border:0;border-radius:50%;background:#fff;color:var(--blue-dark);font-size:28px;line-height:1;cursor:pointer;box-shadow:0 8px 20px rgba(7,24,39,.08);touch-action:manipulation}
.booking-legend{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px;color:var(--muted);font-weight:850;font-size:.92rem}
.booking-legend span{display:inline-flex;align-items:center;gap:7px}.booking-legend i{width:12px;height:12px;border-radius:50%;display:inline-block}
.legend-free{background:var(--blue)}.legend-selected{background:var(--gold)}.legend-booked{background:#b9b9b9}
.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:8px}
.calendar-weekdays span{text-align:center;color:var(--muted);font-weight:950;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}
.booking-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
.calendar-day{position:relative;min-height:86px;border:1px solid rgba(202,164,93,.18);border-radius:18px;background:#fff;padding:9px;text-align:left;cursor:pointer;transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease,background .24s ease;touch-action:manipulation}
.calendar-day:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(7,24,39,.11);border-color:rgba(31,159,224,.35)}
.calendar-day.is-empty{visibility:hidden;pointer-events:none}.calendar-day.is-past{opacity:.42;pointer-events:none}.calendar-day.is-booked{background:#f1f1f1;color:#8b8b8b;cursor:not-allowed}
.calendar-day.is-weekend:not(.is-booked){background:linear-gradient(180deg,#fffaf0,#fff)}
.calendar-day.is-holiday:not(.is-booked){border-color:rgba(202,164,93,.55);background:linear-gradient(180deg,#fff3d7,#fff)}
.calendar-day.is-selected,.calendar-day.is-in-range{background:linear-gradient(135deg,var(--blue-dark),var(--blue));color:#fff;border-color:transparent}
.calendar-day.is-selected .day-price,.calendar-day.is-in-range .day-price,.calendar-day.is-selected .day-status,.calendar-day.is-in-range .day-status{color:#fff}
.day-number{display:block;font-weight:950;font-size:1rem}.day-price{display:block;margin-top:8px;color:var(--blue-dark);font-weight:950}.day-status{display:block;margin-top:4px;color:var(--muted);font-size:.76rem;font-weight:850}
.is-booked .day-price{color:#888}
.ical-note{margin-top:18px;padding:16px;border-radius:20px;background:linear-gradient(135deg,var(--sky),#fff);border:1px solid rgba(31,159,224,.18)}
.ical-note p{margin:.35rem 0 0;font-size:.96rem}
.booking-request-form{display:grid;gap:16px}.booking-request-form label{display:grid;gap:8px}
.booking-request-form select{width:100%;border:1px solid rgba(202,164,93,.26);border-radius:16px;padding:14px 16px;font:inherit;background:#fff}
.date-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.booking-summary{display:grid;gap:6px;padding:16px;border-radius:20px;background:var(--sky);border:1px solid rgba(31,159,224,.18)}
.booking-summary strong{color:var(--navy);font-size:1.05rem}.booking-summary span{color:var(--muted);line-height:1.5}
.booking-summary.has-warning{background:#fff1e8;border-color:#e1a56d}.booking-summary.has-success{background:#edf9ef;border-color:#94cf9c}
.booking-actions{display:grid;gap:10px}
.whatsapp-choice{position:fixed;inset:0;z-index:220;display:none;align-items:center;justify-content:center;padding:18px;background:rgba(7,24,39,.68);backdrop-filter:blur(10px)}
.whatsapp-choice.open{display:flex}.whatsapp-choice__box{position:relative;width:min(540px,100%);border-radius:30px;background:linear-gradient(180deg,#fffdf8,#fff);border:1px solid rgba(202,164,93,.28);box-shadow:0 34px 100px rgba(0,0,0,.32);padding:30px;text-align:center;animation:modalIn .38s cubic-bezier(.2,.9,.2,1) forwards}
.whatsapp-choice__close{position:absolute;top:14px;right:16px;border:0;background:transparent;color:var(--blue-dark);font-size:38px;line-height:1;cursor:pointer}
.whatsapp-choice__numbers{display:grid;gap:10px;margin:22px 0 14px}
.whatsapp-choice__numbers a{display:flex;justify-content:center;align-items:center;min-height:54px;border-radius:999px;background:linear-gradient(135deg,#128c7e,#25d366);color:#fff;font-weight:950;box-shadow:0 12px 30px rgba(18,140,126,.22)}
.whatsapp-choice small{display:block;color:var(--muted);line-height:1.5}body.whatsapp-lock{overflow:hidden}
@media(max-width:1000px){.booking-grid{grid-template-columns:1fr}}
@media(max-width:720px){.booking-calendar-panel,.booking-form-card{padding:16px;border-radius:24px}.booking-calendar-head{display:block}.calendar-nav{margin-top:16px;width:100%;justify-content:space-between}.calendar-nav strong{min-width:auto}.booking-calendar,.calendar-weekdays{gap:5px}.calendar-day{min-height:68px;border-radius:12px;padding:7px 5px}.day-number{font-size:.88rem}.day-price{font-size:.78rem;margin-top:5px}.day-status{font-size:.62rem}.date-fields{grid-template-columns:1fr}}
@media(max-width:420px){.calendar-day{min-height:60px}.day-price{font-size:.72rem}.day-status{display:none}}


/* v48 - Prenota migliorata + pagina Dicono di noi */
.form-two-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.booking-confirmation{margin:4px 0 0}
.booking-confirmation input{margin-top:4px}
.panel--soft{background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,253,248,.92));border:1px solid rgba(201,163,91,.22);box-shadow:0 18px 42px rgba(6,28,49,.07)}
.panel--centered{text-align:center}
.actions--center{justify-content:center}
.reviews-award-section{position:relative;overflow:hidden}
.reviews-head--page{margin-bottom:22px}
.reviews-award-grid{display:grid;grid-template-columns:minmax(260px, .9fr) minmax(0,1.1fr);gap:24px;align-items:center}
.reviews-award-card{margin:0;padding:16px;border-radius:30px;background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,253,248,.92));border:1px solid rgba(201,163,91,.24);box-shadow:0 18px 42px rgba(6,28,49,.09);text-align:center}
.reviews-award-card img{display:block;width:min(100%, 380px);max-width:100%;height:auto;margin:0 auto;border-radius:22px;box-shadow:0 18px 36px rgba(6,28,49,.12)}
.reviews-award-card figcaption{margin-top:12px;color:var(--muted);font-weight:800;line-height:1.5}
.reviews-award-copy .panel{height:100%}
.reviews-award-copy h3{margin:0 0 10px;font-size:clamp(1.7rem,3vw,2.35rem);color:var(--navy)}
.reviews-bullets{margin:18px 0 0;padding:0;list-style:none;display:grid;gap:10px}
.reviews-bullets li{position:relative;padding-left:22px;color:var(--text);line-height:1.55}
.reviews-bullets li::before{content:"•";position:absolute;left:0;top:0;color:var(--blue);font-weight:900}
@media(max-width:1000px){.reviews-award-grid{grid-template-columns:1fr}.reviews-award-copy .panel{padding:24px}}
@media(max-width:720px){.form-two-cols{grid-template-columns:1fr}.reviews-award-card{padding:14px;border-radius:24px}.reviews-award-card img{width:min(100%, 220px)}.reviews-award-card figcaption{font-size:.88rem}.reviews-section .reviews-track{padding-bottom:18px}}


/* =========================================================
   v50 - Restyle B&B premium pulito
   Mantiene il sito elegante senza effetto "studio webdesign"
   ========================================================= */
:root{
  --blue:#159bd7;
  --blue-dark:#07577f;
  --navy:#0a2438;
  --white:#fffdf9;
  --cream:#f7efe2;
  --sky:#eef9ff;
  --text:#173044;
  --muted:#607487;
  --gold:#c9a35b;
  --shadow:0 22px 58px rgba(7,24,39,.12);
  --radius:26px;
}

body{
  color:var(--text);
  background:
    radial-gradient(circle at 12% 0%, rgba(21,155,215,.08), transparent 34rem),
    linear-gradient(180deg,#fffdf9 0%,#f8fbfd 48%,#fffdf9 100%);
}

.header{
  background:rgba(255,253,249,.9);
  border-bottom:1px solid rgba(201,163,91,.18);
  box-shadow:0 12px 32px rgba(7,24,39,.055);
  backdrop-filter:blur(14px);
}

.logo img{
  filter:none;
}

.menu a{
  font-weight:850;
}

.nav-cta,
.btn{
  border-radius:999px;
  background:linear-gradient(135deg,var(--blue-dark),var(--blue));
  box-shadow:0 14px 28px rgba(21,155,215,.22);
}

.btn--light{
  background:rgba(255,255,255,.92);
  color:var(--blue-dark);
  border:1px solid rgba(201,163,91,.28);
  box-shadow:0 10px 26px rgba(7,24,39,.075);
}

.hero,
.page-head{
  background:
    radial-gradient(circle at 14% 18%, rgba(21,155,215,.16), transparent 30%),
    radial-gradient(circle at 86% 18%, rgba(201,163,91,.12), transparent 25%),
    linear-gradient(135deg,#fffdf9 0%,#eff9ff 58%,#fff6e6 100%);
}

.hero::before,
.page-head::before{
  opacity:.45;
}

.eyebrow{
  color:var(--gold);
  letter-spacing:.18em;
}

h1,h2,h3{
  color:var(--navy);
}

.lead,
.page-head p,
.section-intro p{
  color:#496579;
}

.card,
.panel,
.contact-card,
.rating-card,
.quick-facts article,
.faq-list details,
.booking-calendar-panel,
.booking-form-card,
.reviews-award-card{
  background:rgba(255,255,255,.9);
  border:1px solid rgba(201,163,91,.18);
  box-shadow:0 18px 44px rgba(7,24,39,.09);
  backdrop-filter:blur(8px);
}

.card:hover,
.panel:hover,
.contact-card:hover,
.quick-facts article:hover,
.faq-list details:hover{
  transform:translateY(-4px);
  box-shadow:0 24px 54px rgba(7,24,39,.13);
}

.real-photo,
.city-photo,
.hero-photo{
  border:1px solid rgba(201,163,91,.18);
  box-shadow:0 20px 48px rgba(7,24,39,.14);
}

.photo-section-title h3::after,
.section-intro h2::after{
  content:"";
  display:block;
  width:54px;
  height:3px;
  margin-top:10px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--gold),var(--blue));
}

.feature-strip span{
  background:rgba(255,255,255,.85);
  color:var(--blue-dark);
  border:1px solid rgba(21,155,215,.18);
  box-shadow:0 8px 20px rgba(7,24,39,.055);
}

.footer{
  background:linear-gradient(135deg,var(--navy),#0a3650);
  border-top:1px solid rgba(201,163,91,.28);
}

/* Dicono di noi: immagine premio proporzionata */
.reviews-award-grid{
  display:grid;
  grid-template-columns:minmax(250px,.8fr) minmax(0,1.2fr);
  gap:24px;
  align-items:center;
}

.reviews-award-card{
  padding:16px;
  border-radius:26px;
  text-align:center;
}

.reviews-award-card img{
  display:block;
  width:min(100%,360px);
  height:auto;
  max-height:420px;
  object-fit:contain;
  margin:0 auto;
  border-radius:20px;
}

.reviews-award-card figcaption{
  margin-top:12px;
  color:var(--muted);
  font-size:.92rem;
  line-height:1.45;
}

.reviews-score span{
  color:#fff;
}

/* Prenota: form più ordinato ma coerente */
.form-two-cols{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}

.booking-confirmation{
  align-items:flex-start;
  grid-template-columns:auto 1fr !important;
  gap:10px !important;
  padding:13px 14px;
  border-radius:18px;
  background:rgba(238,249,255,.72);
  border:1px solid rgba(21,155,215,.16);
}

.booking-confirmation input{
  width:auto;
  margin-top:4px;
}

.gallery-actions{
  margin:14px 0 18px;
}

/* Fix definitivo pulsante ingresso + lightbox */
.ingresso-lightbox.open{
  display:flex !important;
}

.ingresso-lightbox{
  touch-action:none;
  overscroll-behavior:contain;
}

.photo-lightbox__figure img{
  -webkit-user-select:none;
  user-select:none;
  -webkit-touch-callout:none;
}

.photo-lightbox__arrow,
.photo-lightbox__close,
.photo-lightbox__thumbs button,
[data-ingresso-open],
[data-gallery-open]{
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}

@media(max-width:1000px){
  .reviews-award-grid{
    grid-template-columns:1fr;
  }

  .reviews-award-card img{
    width:min(100%,320px);
  }
}

@media(max-width:720px){
  .form-two-cols{
    grid-template-columns:1fr;
  }

  .reviews-award-card{
    padding:12px;
    border-radius:22px;
  }

  .reviews-award-card img{
    width:min(100%,210px);
    max-height:250px;
    border-radius:16px;
  }

  .reviews-award-card figcaption{
    font-size:.82rem;
  }

  .gallery-actions .btn,
  .gallery-actions button{
    width:100%;
  }

  .hero,
  .page-head{
    border-radius:0 0 28px 28px;
  }
}


/* =========================================================
   v51 - Home rating Booking più interessante, stile B&B
   ========================================================= */
.home-booking-card{
  width:min(100%, 520px);
  margin-top:22px;
  overflow:hidden;
  border-radius:26px;
  background:
    linear-gradient(135deg, rgba(0,56,130,.96), rgba(0,113,194,.94)),
    var(--blue-dark);
  color:#fff;
  border:1px solid rgba(255,255,255,.22);
  box-shadow:0 22px 55px rgba(0,56,130,.22);
}

.home-booking-card__main{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:18px 20px 16px;
}

.home-booking-card__source{
  display:inline-flex;
  align-items:center;
  width:max-content;
  margin-bottom:8px;
  padding:6px 10px;
  border-radius:999px;
  background:#fff;
  color:#003b95;
  font-weight:950;
  font-size:.78rem;
  letter-spacing:.01em;
}

.home-booking-card__stars{
  display:flex;
  gap:5px;
  margin-bottom:10px;
}

.home-booking-card__stars span{
  display:grid;
  place-items:center;
  width:23px;
  height:23px;
  border-radius:6px;
  background:#febb02;
  color:#7a5200;
  font-size:.82rem;
  line-height:1;
  box-shadow:0 4px 12px rgba(0,0,0,.12);
}

.home-booking-card strong{
  display:block;
  font-size:1.08rem;
  line-height:1.2;
}

.home-booking-card small{
  display:block;
  margin-top:4px;
  color:rgba(255,255,255,.78);
  font-weight:750;
}

.home-booking-card__score{
  flex:0 0 auto;
  display:grid;
  place-items:center;
  min-width:88px;
  min-height:88px;
  padding:12px;
  border-radius:22px;
  background:#003b95;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.16), 0 18px 34px rgba(0,0,0,.18);
  text-align:center;
}

.home-booking-card__score span{
  display:block;
  font-size:2.2rem;
  font-weight:1000;
  letter-spacing:-.04em;
  line-height:1;
}

.home-booking-card__score small{
  margin:3px 0 0;
  font-size:.78rem;
  color:rgba(255,255,255,.84);
}

.home-booking-card__link{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:13px 18px;
  background:rgba(255,255,255,.12);
  color:#fff;
  font-weight:950;
  border-top:1px solid rgba(255,255,255,.16);
  transition:background .22s ease, transform .22s ease;
}

.home-booking-card__link::after{
  content:"→";
  font-size:1.1rem;
  transition:transform .22s ease;
}

.home-booking-card__link:hover{
  background:rgba(255,255,255,.18);
}

.home-booking-card__link:hover::after{
  transform:translateX(4px);
}

@media(max-width:720px){
  .home-booking-card{
    margin-top:18px;
    border-radius:22px;
  }

  .home-booking-card__main{
    padding:15px;
    gap:12px;
  }

  .home-booking-card__source{
    font-size:.72rem;
  }

  .home-booking-card__stars span{
    width:19px;
    height:19px;
    border-radius:5px;
    font-size:.68rem;
  }

  .home-booking-card strong{
    font-size:.98rem;
  }

  .home-booking-card small{
    font-size:.78rem;
  }

  .home-booking-card__score{
    min-width:74px;
    min-height:74px;
    border-radius:18px;
  }

  .home-booking-card__score span{
    font-size:1.85rem;
  }

  .home-booking-card__link{
    padding:12px 14px;
    font-size:.9rem;
  }
}

@media(max-width:390px){
  .home-booking-card__main{
    align-items:flex-start;
  }

  .home-booking-card__score{
    min-width:68px;
    min-height:68px;
  }

  .home-booking-card__score span{
    font-size:1.65rem;
  }
}


/* v52 - Prenota come ultima voce evidenziata */
.menu .nav-cta{
  order:10;
  white-space:nowrap;
}

@media(max-width:720px){
  .menu .nav-cta{
    order:10;
    text-align:center;
    margin-top:4px;
  }
}


/* v53 - Blocco recensioni Booking dopo le foto in Home */
.home-booking-strip{
  padding-top:28px;
}

.home-booking-strip__inner{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(320px,520px);
  gap:26px;
  align-items:center;
  padding:clamp(22px,4vw,36px);
  border-radius:32px;
  background:
    radial-gradient(circle at 12% 20%, rgba(21,155,215,.16), transparent 30%),
    linear-gradient(135deg, rgba(255,255,255,.92), rgba(238,249,255,.72), rgba(255,246,229,.72));
  border:1px solid rgba(201,163,91,.2);
  box-shadow:0 18px 46px rgba(7,24,39,.09);
}

.home-booking-strip__inner h2{
  font-size:clamp(1.75rem,3vw,3rem);
  max-width:720px;
}

.home-booking-strip__inner p:not(.eyebrow){
  max-width:680px;
  color:var(--muted);
  line-height:1.65;
}

.home-booking-strip .home-booking-card{
  margin-top:0;
  justify-self:end;
  width:min(100%,500px);
}

@media(max-width:900px){
  .home-booking-strip__inner{
    grid-template-columns:1fr;
  }

  .home-booking-strip .home-booking-card{
    justify-self:start;
    width:100%;
  }
}

@media(max-width:720px){
  .home-booking-strip{
    padding-top:18px;
  }

  .home-booking-strip__inner{
    padding:18px;
    border-radius:24px;
  }

  .home-booking-strip__inner h2{
    font-size:1.65rem;
  }

  .home-booking-strip__inner p:not(.eyebrow){
    font-size:.95rem;
  }
}


/* v57 - Prenota più leggibile e responsive su PC e telefono */
.booking-section{
  max-width:1240px;
}

.booking-grid{
  grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);
  gap:20px;
}

.booking-form-card,
.booking-calendar-panel{
  width:100%;
  min-width:0;
}

.booking-form-card{
  overflow:hidden;
}

.booking-calendar-head h2,
.booking-form-card h2{
  font-size:clamp(1.9rem,3vw,3.1rem);
}

.booking-request-form input,
.booking-request-form select,
.booking-request-form textarea{
  max-width:100%;
}

.booking-request-form textarea{
  min-height:120px;
}

.booking-actions .btn{
  width:100%;
}

@media (max-width:1180px){
  .booking-grid{
    grid-template-columns:1fr;
  }
}

@media (max-width:860px){
  .booking-calendar-panel,
  .booking-form-card{
    padding:18px;
    border-radius:22px;
  }

  .booking-calendar-head h2,
  .booking-form-card h2{
    font-size:clamp(1.7rem,6vw,2.45rem);
  }

  .booking-request-form{
    gap:14px;
  }
}

@media (max-width:640px){
  .booking-section{
    padding-top:34px;
  }

  .booking-form-card .eyebrow,
  .booking-calendar-panel .eyebrow{
    margin-bottom:10px;
  }

  .booking-calendar-head p,
  .booking-form-card p,
  .booking-request-form label,
  .booking-summary span{
    font-size:.96rem;
  }

  .booking-request-form label{
    gap:6px;
  }

  .booking-request-form input,
  .booking-request-form select,
  .booking-request-form textarea{
    padding:12px 14px;
    border-radius:14px;
    font-size:1rem;
  }

  .form-two-cols,
  .date-fields{
    grid-template-columns:1fr 1fr;
    gap:10px;
  }

  .booking-summary{
    padding:14px;
    border-radius:16px;
  }
}

@media (max-width:520px){
  .booking-calendar-panel,
  .booking-form-card{
    padding:14px;
    border-radius:18px;
  }

  .booking-calendar-head h2,
  .booking-form-card h2{
    font-size:clamp(1.55rem,8vw,2.15rem);
    line-height:1.02;
  }

  .form-two-cols,
  .date-fields{
    grid-template-columns:1fr;
  }

  .booking-request-form input,
  .booking-request-form select,
  .booking-request-form textarea{
    padding:11px 13px;
  }

  .calendar-nav{
    padding:5px;
  }

  .calendar-btn{
    width:38px;
    height:38px;
    font-size:24px;
  }

  .calendar-day{
    min-height:58px;
    padding:6px 4px;
  }

  .day-number{
    font-size:.84rem;
  }

  .day-price{
    font-size:.68rem;
  }
}


/* v58 - Ottimizzazione responsive globale per telefono, tablet e desktop */
html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  overflow-x:hidden;
}
body{
  overflow-x:hidden;
}
img,svg,video,canvas,iframe{
  max-width:100%;
}
.page-content,
.section,
.page-head,
.hero,
.hero-real,
.two,
.room-layout,
.location-layout,
.contact-layout,
.booking-grid,
.booking-section,
.booking-form-card,
.booking-calendar-panel,
.panel,
.card,
.contact-card,
.review-card,
.reviews-award-grid,
.home-booking-strip__inner,
.footer__main,
.header,
.menu,
.photo-lightbox__figure,
.real-mosaic,
.gallery-real,
.media-grid,
.cards,
.service-grid,
.quick-facts,
.feature-strip{
  min-width:0;
}
.btn,
.menu-btn,
.calendar-btn,
.photo-lightbox__arrow,
.reviews-arrow,
.booking-modal__close,
.booking-modal__ok,
.contact-choice-modal__close,
.photo-lightbox__close{
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}
.btn{
  white-space:normal;
}

@media (max-width:1024px){
  .section,
  .page-head,
  .hero{
    padding-left:20px;
    padding-right:20px;
  }

  .hero-real{
    gap:22px;
  }

  .hero-photo,
  .room-photo,
  .map-box{
    min-height:380px;
  }

  .footer__main,
  .home-booking-strip__inner,
  .reviews-award-grid{
    gap:18px;
  }
}

@media (max-width:820px){
  h1{
    line-height:1.04;
  }

  .section,
  .page-head,
  .hero{
    padding-left:16px;
    padding-right:16px;
  }

  .hero,
  .hero-real,
  .two,
  .room-layout,
  .location-layout,
  .contact-layout,
  .reviews-award-grid,
  .home-booking-strip__inner,
  .footer__main{
    gap:16px;
  }

  .brand-showcase,
  .rating-card,
  .panel,
  .card,
  .contact-card,
  .review-card{
    border-radius:22px;
  }

  .service-grid,
  .cards,
  .quick-facts,
  .feature-strip,
  .gallery-real,
  .real-mosaic,
  .media-grid{
    gap:12px;
  }
}

@media (max-width:720px){
  .header{
    padding-left:14px;
    padding-right:14px;
  }

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

  .page-head h1,
  .hero h1,
  .hero-real h1,
  .home-title__main,
  .home-title__brand{
    word-break:break-word;
  }

  .section,
  .page-head,
  .hero{
    padding-left:14px;
    padding-right:14px;
  }

  .section{
    padding-top:46px;
    padding-bottom:46px;
  }

  .page-head{
    padding-top:88px;
    padding-bottom:34px;
  }

  .hero{
    gap:16px;
  }

  .hero-photo,
  .room-photo,
  .map-box,
  .real-photo,
  .real-photo--large{
    min-height:260px;
  }

  .photo-section-title,
  .section-intro--with-action,
  .photo-section-title--with-action{
    gap:10px;
  }

  .photo-section-title--with-action .btn,
  .section-intro--with-action .btn{
    width:100%;
  }

  .footer__main{
    gap:12px;
  }

  .footer__privacy,
  .footer__copyright,
  .footer__credit{
    text-align:center;
  }

  .contact-action-buttons,
  .booking-actions,
  .actions{
    gap:10px;
  }

  .booking-request-form input,
  .booking-request-form select,
  .booking-request-form textarea,
  input,
  select,
  textarea{
    font-size:16px;
  }

  .photo-lightbox__figure img,
  #ingressoGalleryImage,
  #structureGalleryImage{
    max-height:68vh;
    object-fit:contain;
  }
}

@media (max-width:520px){
  .header{
    min-height:68px;
  }

  .logo--image img{
    max-height:46px;
  }

  .hero .lead,
  .page-head p,
  .section-intro p,
  .home-booking-strip p,
  .booking-calendar-head p,
  .booking-form-card p,
  .faq-list p,
  .card p,
  .panel p,
  .contact-card p{
    font-size:.98rem;
  }

  .btn,
  .nav-cta,
  .contact-action,
  .whatsapp-choice__numbers a{
    min-height:48px;
    padding:12px 16px;
    font-size:.98rem;
  }

  .brand-showcase,
  .rating-card,
  .panel,
  .card,
  .contact-card,
  .review-card,
  .booking-calendar-panel,
  .booking-form-card{
    padding:14px;
    border-radius:18px;
  }

  .reviews-award-card{
    padding:12px;
  }

  .service-grid,
  .cards,
  .quick-facts,
  .feature-strip,
  .gallery-real,
  .real-mosaic,
  .media-grid{
    gap:10px;
  }

  .photo-lightbox__thumbs,
  .ingresso-lightbox .photo-lightbox__thumbs{
    gap:6px;
  }
}

@media (max-width:390px){
  .section,
  .page-head,
  .hero{
    padding-left:12px;
    padding-right:12px;
  }

  .btn,
  .nav-cta,
  .contact-action,
  .whatsapp-choice__numbers a{
    width:100%;
  }

  .calendar-day{
    min-height:56px;
  }
}


/* =========================================================
   v59 - Prenota premium + calendario più chiaro
   Colori: disponibile blu, selezionato blu scuro, occupato rosso
   ========================================================= */
.booking-section{
  position:relative;
}

.booking-section::before{
  content:"";
  position:absolute;
  inset:22px clamp(12px,3vw,28px) auto;
  height:320px;
  border-radius:38px;
  background:
    radial-gradient(circle at 18% 22%, rgba(21,155,215,.20), transparent 34%),
    radial-gradient(circle at 80% 14%, rgba(201,163,91,.18), transparent 30%),
    linear-gradient(135deg, rgba(238,249,255,.78), rgba(255,253,249,.92));
  z-index:-1;
  pointer-events:none;
}

.booking-grid{
  align-items:stretch;
}

.booking-calendar-panel,
.booking-form-card{
  position:relative;
  overflow:hidden;
  border:1px solid rgba(201,163,91,.24);
  background:
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,253,248,.92));
  box-shadow:
    0 26px 70px rgba(7,24,39,.12),
    inset 0 1px 0 rgba(255,255,255,.88);
}

.booking-calendar-panel::after,
.booking-form-card::after{
  content:"";
  position:absolute;
  left:24px;
  right:24px;
  top:0;
  height:4px;
  border-radius:0 0 999px 999px;
  background:linear-gradient(90deg,var(--blue),var(--gold));
}

.booking-calendar-head h2,
.booking-form-card h2{
  letter-spacing:-.045em;
}

.booking-calendar-head p,
.booking-form-card > p{
  color:#526b7e;
}

.calendar-nav{
  background:rgba(238,249,255,.82);
  border:1px solid rgba(21,155,215,.16);
  box-shadow:0 12px 28px rgba(7,24,39,.06);
}

.calendar-nav strong{
  font-weight:950;
  letter-spacing:-.02em;
}

.calendar-btn{
  background:#fff;
  color:var(--blue-dark);
  box-shadow:0 8px 20px rgba(7,24,39,.08);
}

.calendar-btn:hover{
  background:var(--blue-dark);
  color:#fff;
}

.booking-legend{
  align-items:center;
  padding:12px 14px;
  border-radius:18px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(21,155,215,.13);
}

.booking-legend span{
  font-weight:900;
  color:#405b70;
}

.booking-legend i,
.legend-free,
.legend-selected,
.legend-booked{
  width:14px !important;
  height:14px !important;
  border-radius:50%;
  box-shadow:0 0 0 3px rgba(255,255,255,.9);
}

.legend-free{
  background:#1aa7df !important;
}

.legend-selected{
  background:#063f68 !important;
}

.legend-booked{
  background:#d93025 !important;
}

.calendar-weekdays{
  padding:0 2px;
}

.calendar-weekdays span{
  color:#6a7f90;
  font-weight:950;
  font-size:.78rem;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.booking-calendar{
  align-items:stretch;
}

.calendar-day{
  isolation:isolate;
  overflow:hidden;
  border:1px solid rgba(21,155,215,.25);
  background:linear-gradient(180deg,#f8fdff,#e9f8ff);
  color:var(--navy);
  box-shadow:0 8px 18px rgba(21,155,215,.08);
}

.calendar-day::before{
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:4px;
  background:#1aa7df;
  opacity:.95;
  z-index:-1;
}

.calendar-day:not(.is-empty):not(.is-booked):not(.is-past):hover{
  transform:translateY(-3px);
  border-color:#1aa7df;
  box-shadow:0 16px 30px rgba(21,155,215,.18);
}

.calendar-day:not(.is-empty):not(.is-booked):not(.is-past) .day-status{
  color:#087fb0;
}

.calendar-day.is-in-range,
.calendar-day.is-selected{
  background:linear-gradient(180deg,#063f68,#092d49);
  border-color:#063f68;
  color:#fff;
  box-shadow:0 18px 38px rgba(6,63,104,.25);
}

.calendar-day.is-in-range::before,
.calendar-day.is-selected::before{
  background:#c9a35b;
  height:5px;
}

.calendar-day.is-in-range .day-number,
.calendar-day.is-selected .day-number,
.calendar-day.is-in-range .day-price,
.calendar-day.is-selected .day-price,
.calendar-day.is-in-range .day-status,
.calendar-day.is-selected .day-status{
  color:#fff;
}

.calendar-day.is-selected{
  outline:3px solid rgba(201,163,91,.42);
  outline-offset:2px;
}

.calendar-day.is-booked{
  background:linear-gradient(180deg,#fff5f4,#ffe3df);
  border-color:rgba(217,48,37,.48);
  color:#8d1d15;
  cursor:not-allowed;
  box-shadow:none;
}

.calendar-day.is-booked::before{
  background:#d93025;
}

.calendar-day.is-booked .day-number,
.calendar-day.is-booked .day-price,
.calendar-day.is-booked .day-status{
  color:#8d1d15;
}

.calendar-day.is-past{
  opacity:.42;
  filter:saturate(.5);
  cursor:not-allowed;
}

.calendar-day.is-empty{
  background:transparent;
  border-color:transparent;
  box-shadow:none;
}

.day-number{
  position:relative;
  z-index:1;
}

.day-price{
  color:#064f7d;
  font-weight:1000;
}

.day-status{
  font-weight:900;
}

.booking-request-form input,
.booking-request-form select,
.booking-request-form textarea{
  background:rgba(255,255,255,.92);
  border-color:rgba(21,155,215,.20);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
}

.booking-request-form input:focus,
.booking-request-form select:focus,
.booking-request-form textarea:focus{
  outline:3px solid rgba(21,155,215,.18);
  border-color:var(--blue);
}

.booking-summary{
  border:1px solid rgba(201,163,91,.24);
  background:
    linear-gradient(135deg,rgba(238,249,255,.88),rgba(255,246,229,.70));
}

.booking-summary.has-success{
  border-color:rgba(6,63,104,.32);
  background:linear-gradient(135deg,rgba(232,247,255,.95),rgba(255,252,244,.96));
}

.booking-summary.has-warning{
  border-color:rgba(217,48,37,.42);
  background:linear-gradient(135deg,rgba(255,245,244,.96),rgba(255,252,244,.92));
}

.booking-actions{
  position:relative;
}

.booking-actions .btn{
  box-shadow:0 16px 34px rgba(21,155,215,.22);
}

.booking-actions .btn--light{
  box-shadow:0 12px 26px rgba(7,24,39,.08);
}

@media(max-width:720px){
  .booking-section::before{
    inset:16px 8px auto;
    height:240px;
    border-radius:28px;
  }

  .booking-calendar-panel::after,
  .booking-form-card::after{
    left:16px;
    right:16px;
  }

  .booking-legend{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
    padding:12px;
  }

  .calendar-weekdays span{
    font-size:.68rem;
  }

  .calendar-day{
    border-radius:12px;
  }

  .calendar-day:not(.is-empty):not(.is-booked):not(.is-past):hover{
    transform:none;
  }

  .day-status{
    font-size:.58rem;
  }
}

@media(max-width:420px){
  .calendar-weekdays,
  .booking-calendar{
    gap:4px;
  }

  .calendar-day{
    padding:6px 3px;
  }

  .day-number{
    font-size:.82rem;
  }

  .day-price{
    font-size:.66rem;
  }
}


/* =========================================================
   v60 - Fix selezione weekend nel calendario Prenota
   Sabato e domenica si comportano come gli altri giorni.
   ========================================================= */
.calendar-day.is-weekend.is-selected,
.calendar-day.is-weekend.is-in-range,
.calendar-day.is-holiday.is-selected,
.calendar-day.is-holiday.is-in-range,
.calendar-day.is-weekend:not(.is-booked).is-selected,
.calendar-day.is-weekend:not(.is-booked).is-in-range,
.calendar-day.is-holiday:not(.is-booked).is-selected,
.calendar-day.is-holiday:not(.is-booked).is-in-range{
  background:linear-gradient(180deg,#063f68,#092d49) !important;
  border-color:#063f68 !important;
  color:#fff !important;
  box-shadow:0 18px 38px rgba(6,63,104,.25) !important;
  opacity:1 !important;
  visibility:visible !important;
}

.calendar-day.is-weekend.is-selected::before,
.calendar-day.is-weekend.is-in-range::before,
.calendar-day.is-holiday.is-selected::before,
.calendar-day.is-holiday.is-in-range::before{
  background:#c9a35b !important;
  height:5px !important;
}

.calendar-day.is-weekend.is-selected .day-number,
.calendar-day.is-weekend.is-selected .day-price,
.calendar-day.is-weekend.is-selected .day-status,
.calendar-day.is-weekend.is-in-range .day-number,
.calendar-day.is-weekend.is-in-range .day-price,
.calendar-day.is-weekend.is-in-range .day-status,
.calendar-day.is-holiday.is-selected .day-number,
.calendar-day.is-holiday.is-selected .day-price,
.calendar-day.is-holiday.is-selected .day-status,
.calendar-day.is-holiday.is-in-range .day-number,
.calendar-day.is-holiday.is-in-range .day-price,
.calendar-day.is-holiday.is-in-range .day-status{
  color:#fff !important;
  opacity:1 !important;
  visibility:visible !important;
}

.calendar-day.is-weekend:not(.is-booked):not(.is-selected):not(.is-in-range),
.calendar-day.is-holiday:not(.is-booked):not(.is-selected):not(.is-in-range){
  background:linear-gradient(180deg,#f8fdff,#e9f8ff) !important;
  border-color:rgba(21,155,215,.25) !important;
  color:var(--navy) !important;
}


/* =========================================================
   v61 - Calendario uniforme: settimana, weekend e festivi
   si vedono uguali e non mostrano prezzi pubblici.
   ========================================================= */
.calendar-day[data-day-type="settimana"]:not(.is-booked):not(.is-selected):not(.is-in-range):not(.is-past),
.calendar-day[data-day-type="weekend"]:not(.is-booked):not(.is-selected):not(.is-in-range):not(.is-past),
.calendar-day[data-day-type="festivo"]:not(.is-booked):not(.is-selected):not(.is-in-range):not(.is-past),
.calendar-day.is-weekend:not(.is-booked):not(.is-selected):not(.is-in-range):not(.is-past),
.calendar-day.is-holiday:not(.is-booked):not(.is-selected):not(.is-in-range):not(.is-past){
  background:linear-gradient(180deg,#f8fdff,#e9f8ff) !important;
  border-color:rgba(21,155,215,.25) !important;
  color:var(--navy) !important;
  box-shadow:0 8px 18px rgba(21,155,215,.08) !important;
  opacity:1 !important;
  visibility:visible !important;
}

.calendar-day[data-day-type="settimana"]:not(.is-booked):not(.is-selected):not(.is-in-range):not(.is-past)::before,
.calendar-day[data-day-type="weekend"]:not(.is-booked):not(.is-selected):not(.is-in-range):not(.is-past)::before,
.calendar-day[data-day-type="festivo"]:not(.is-booked):not(.is-selected):not(.is-in-range):not(.is-past)::before,
.calendar-day.is-weekend:not(.is-booked):not(.is-selected):not(.is-in-range):not(.is-past)::before,
.calendar-day.is-holiday:not(.is-booked):not(.is-selected):not(.is-in-range):not(.is-past)::before{
  background:#1aa7df !important;
  height:4px !important;
}

.calendar-day[data-day-type="settimana"]:not(.is-booked):not(.is-selected):not(.is-in-range):not(.is-past) .day-price,
.calendar-day[data-day-type="weekend"]:not(.is-booked):not(.is-selected):not(.is-in-range):not(.is-past) .day-price,
.calendar-day[data-day-type="festivo"]:not(.is-booked):not(.is-selected):not(.is-in-range):not(.is-past) .day-price,
.calendar-day.is-weekend:not(.is-booked):not(.is-selected):not(.is-in-range):not(.is-past) .day-price,
.calendar-day.is-holiday:not(.is-booked):not(.is-selected):not(.is-in-range):not(.is-past) .day-price{
  color:#064f7d !important;
}

.calendar-day[data-day-type="settimana"]:not(.is-booked):not(.is-selected):not(.is-in-range):not(.is-past) .day-status,
.calendar-day[data-day-type="weekend"]:not(.is-booked):not(.is-selected):not(.is-in-range):not(.is-past) .day-status,
.calendar-day[data-day-type="festivo"]:not(.is-booked):not(.is-selected):not(.is-in-range):not(.is-past) .day-status,
.calendar-day.is-weekend:not(.is-booked):not(.is-selected):not(.is-in-range):not(.is-past) .day-status,
.calendar-day.is-holiday:not(.is-booked):not(.is-selected):not(.is-in-range):not(.is-past) .day-status{
  color:#087fb0 !important;
}

.calendar-day[data-day-type="settimana"].is-selected,
.calendar-day[data-day-type="weekend"].is-selected,
.calendar-day[data-day-type="festivo"].is-selected,
.calendar-day[data-day-type="settimana"].is-in-range,
.calendar-day[data-day-type="weekend"].is-in-range,
.calendar-day[data-day-type="festivo"].is-in-range{
  background:linear-gradient(180deg,#063f68,#092d49) !important;
  border-color:#063f68 !important;
  color:#fff !important;
  box-shadow:0 18px 38px rgba(6,63,104,.25) !important;
}

.calendar-day[data-day-type="settimana"].is-selected .day-number,
.calendar-day[data-day-type="weekend"].is-selected .day-number,
.calendar-day[data-day-type="festivo"].is-selected .day-number,
.calendar-day[data-day-type="settimana"].is-selected .day-price,
.calendar-day[data-day-type="weekend"].is-selected .day-price,
.calendar-day[data-day-type="festivo"].is-selected .day-price,
.calendar-day[data-day-type="settimana"].is-selected .day-status,
.calendar-day[data-day-type="weekend"].is-selected .day-status,
.calendar-day[data-day-type="festivo"].is-selected .day-status,
.calendar-day[data-day-type="settimana"].is-in-range .day-number,
.calendar-day[data-day-type="weekend"].is-in-range .day-number,
.calendar-day[data-day-type="festivo"].is-in-range .day-number,
.calendar-day[data-day-type="settimana"].is-in-range .day-price,
.calendar-day[data-day-type="weekend"].is-in-range .day-price,
.calendar-day[data-day-type="festivo"].is-in-range .day-price,
.calendar-day[data-day-type="settimana"].is-in-range .day-status,
.calendar-day[data-day-type="weekend"].is-in-range .day-status,
.calendar-day[data-day-type="festivo"].is-in-range .day-status{
  color:#fff !important;
}


/* v62 - Prenota: stato invio e scelta WhatsApp più robusti */
.booking-request-form .form-status{
  margin:2px 0 0;
  min-height:22px;
  font-weight:850;
}
.booking-request-form .form-status.is-success{
  color:#0f7a38;
}
.booking-request-form .form-status.is-error{
  color:#b3261e;
}
.booking-actions button[disabled]{
  opacity:.72;
  cursor:not-allowed;
  transform:none!important;
}
.whatsapp-choice.open{
  display:flex!important;
}
.whatsapp-choice__numbers a{
  cursor:pointer;
}
@media(max-width:720px){
  .whatsapp-choice__box{
    width:min(100%,420px);
    padding:24px 18px;
  }
}


/* v63 - Contatti ricontatto + footer Prenota coerente */
.contact-start{
  padding-bottom:20px;
}
.contact-card--wide{
  max-width:980px;
  margin:0 auto;
  text-align:center;
  padding:clamp(22px,4vw,38px);
}
.contact-card--wide h2{
  font-size:clamp(1.8rem,3vw,3rem);
  margin:.25rem 0 .7rem;
}
.contact-action-buttons--primary{
  justify-content:center;
  margin:22px auto 14px;
}
.contact-scroll-btn{
  margin-top:6px;
}
.contact-small-note{
  margin:14px auto 0;
  max-width:640px;
  color:var(--muted);
}
.callback-section{
  padding-top:24px;
}
.callback-form-panel{
  max-width:860px;
  margin:0 auto;
  padding:clamp(22px,4vw,40px);
}
.callback-intro{
  max-width:680px;
  color:var(--muted);
  line-height:1.65;
  margin-bottom:22px;
}
.callback-form textarea{
  min-height:132px;
}
.callback-form .btn{
  width:max-content;
  min-width:240px;
}
@media(max-width:720px){
  .contact-card--wide,
  .callback-form-panel{
    padding:18px;
    border-radius:22px;
  }
  .contact-action-buttons--primary{
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
  }
  .contact-scroll-btn,
  .callback-form .btn{
    width:100%;
    min-width:0;
  }
  .callback-section{
    padding-top:10px;
  }
}


/* =========================================================
   v64 - Contatti responsive professionale su PC, tablet e mobile
   ========================================================= */
.contact-page-v64{
  overflow-x:hidden;
}

.contact-page-head{
  text-align:left;
}

.contact-hub-section{
  max-width:1180px;
  padding-top:clamp(38px,5vw,70px);
  padding-bottom:clamp(24px,4vw,46px);
}

.contact-hub-grid{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(300px,.92fr);
  gap:clamp(16px,3vw,28px);
  align-items:stretch;
}

.contact-direct-panel,
.contact-info-panel,
.callback-form-panel-v64{
  min-width:0;
  width:100%;
  border:1px solid rgba(201,163,91,.22);
  background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(255,253,248,.92));
  box-shadow:0 22px 58px rgba(7,24,39,.10);
  border-radius:30px;
}

.contact-direct-panel{
  padding:clamp(22px,4vw,42px);
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.contact-direct-panel h2{
  font-size:clamp(2rem,4vw,4rem);
  letter-spacing:-.055em;
  margin:0 0 12px;
}

.contact-hub-lead{
  max-width:680px;
  color:var(--muted);
  line-height:1.65;
  margin:0;
}

.contact-actions-v64{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:26px 0 14px!important;
  width:100%;
}

.contact-actions-v64 .contact-action,
.contact-scroll-btn-v64{
  width:100%;
  min-width:0;
  min-height:54px;
  border-radius:999px;
  white-space:normal;
  line-height:1.2;
}

.contact-scroll-btn-v64{
  margin-top:4px!important;
}

.contact-info-panel{
  position:relative;
  overflow:hidden;
  padding:clamp(22px,3.5vw,34px);
  display:flex;
  flex-direction:column;
  justify-content:center;
  background:
    radial-gradient(circle at 82% 14%, rgba(21,155,215,.16), transparent 36%),
    linear-gradient(145deg,#fffdf8,#eef9ff 70%,#fff7e8);
}

.contact-info-panel::after{
  content:"";
  position:absolute;
  right:-80px;
  bottom:-110px;
  width:250px;
  height:250px;
  border-radius:50%;
  border:34px solid rgba(21,155,215,.08);
}

.contact-info-icon{
  width:56px;
  height:56px;
  border-radius:18px;
  display:grid;
  place-items:center;
  margin-bottom:16px;
  background:var(--blue-dark);
  color:#fff;
  font-size:1.6rem;
  box-shadow:0 14px 28px rgba(6,63,104,.18);
}

.contact-info-panel h3{
  font-size:clamp(1.35rem,2.4vw,2rem);
  margin-bottom:10px;
}

.contact-info-panel p{
  color:var(--muted);
  line-height:1.65;
  margin:0 0 14px;
}

.contact-map-link{
  width:max-content;
  max-width:100%;
  display:inline-flex;
  margin-bottom:18px;
  color:var(--blue-dark)!important;
  font-weight:950;
  text-decoration:underline;
  text-underline-offset:4px;
}

.contact-info-list{
  display:grid;
  gap:8px;
  margin-top:auto;
}

.contact-info-list span{
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px 12px;
  border-radius:14px;
  background:rgba(255,255,255,.78);
  border:1px solid rgba(21,155,215,.12);
  color:#405b70;
  font-weight:850;
  line-height:1.35;
}

.contact-info-list span::before{
  content:"✓";
  flex:0 0 auto;
  color:var(--blue-dark);
  font-weight:1000;
}

.callback-section-v64{
  max-width:980px;
  padding-top:clamp(18px,3vw,38px);
}

.callback-form-panel-v64{
  padding:clamp(20px,4vw,40px);
}

.callback-form-head{
  max-width:760px;
  margin-bottom:22px;
}

.callback-form-head h2{
  font-size:clamp(1.9rem,4vw,3.35rem);
}

.callback-intro{
  margin:12px 0 0!important;
  max-width:720px;
}

.callback-form-v64{
  display:grid;
  gap:16px;
  width:100%;
}

.callback-form-v64 label{
  min-width:0;
}

.form-row-v64{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}

.callback-form-v64 input,
.callback-form-v64 textarea{
  width:100%;
  max-width:100%;
  min-width:0;
  border-radius:16px;
  border:1px solid rgba(6,63,104,.18);
  background:#fff;
  font-size:16px;
}

.callback-form-v64 textarea{
  min-height:128px;
}

.privacy-consent-v64{
  width:100%;
  max-width:100%;
}

.callback-submit-v64{
  width:max-content!important;
  min-width:245px!important;
}

@media(max-width:960px){
  .contact-hub-grid{
    grid-template-columns:1fr;
  }

  .contact-info-panel{
    min-height:auto;
  }
}

@media(max-width:720px){
  .contact-page-head{
    padding-top:86px;
    padding-bottom:32px;
  }

  .contact-hub-section,
  .callback-section-v64{
    padding-left:14px;
    padding-right:14px;
  }

  .contact-direct-panel,
  .contact-info-panel,
  .callback-form-panel-v64{
    border-radius:22px;
    padding:18px;
  }

  .contact-direct-panel h2{
    font-size:clamp(1.9rem,9vw,2.65rem);
  }

  .contact-actions-v64{
    grid-template-columns:1fr;
    gap:10px;
    margin-top:20px!important;
  }

  .contact-actions-v64 .contact-action,
  .contact-scroll-btn-v64,
  .callback-submit-v64{
    min-height:50px;
    width:100%!important;
    min-width:0!important;
  }

  .form-row-v64{
    grid-template-columns:1fr;
    gap:12px;
  }

  .callback-form-head h2{
    font-size:clamp(1.8rem,8vw,2.35rem);
  }

  .callback-form-v64{
    gap:14px;
  }

  .callback-form-v64 textarea{
    min-height:118px;
  }

  .contact-info-list span{
    font-size:.94rem;
  }
}

@media(max-width:420px){
  .contact-hub-section,
  .callback-section-v64{
    padding-left:12px;
    padding-right:12px;
  }

  .contact-direct-panel,
  .contact-info-panel,
  .callback-form-panel-v64{
    padding:15px;
    border-radius:18px;
  }

  .contact-hub-lead,
  .callback-intro,
  .contact-info-panel p{
    font-size:.95rem;
  }

  .contact-info-icon{
    width:48px;
    height:48px;
    border-radius:16px;
    font-size:1.35rem;
  }

  .callback-form-v64 input,
  .callback-form-v64 textarea{
    padding:12px 13px;
  }
}


/* =========================================================
   v65 - Contatti più grande, leggibile e coerente con le altre sezioni
   ========================================================= */
.contact-page-v64 .page-head,
.contact-page-head{
  max-width:1320px;
  padding-top:clamp(118px,9vw,160px);
  padding-bottom:clamp(54px,6vw,86px);
}

.contact-page-head h1{
  font-size:clamp(3.2rem,7vw,6.8rem);
  line-height:.94;
  letter-spacing:-.065em;
  max-width:980px;
}

.contact-page-head p{
  max-width:820px;
  font-size:clamp(1.08rem,1.45vw,1.28rem);
  line-height:1.7;
}

.contact-hub-section{
  max-width:1320px !important;
  padding-top:clamp(54px,6vw,88px) !important;
  padding-bottom:clamp(34px,5vw,64px) !important;
}

.contact-hub-grid{
  grid-template-columns:minmax(0,1.12fr) minmax(360px,.88fr);
  gap:clamp(24px,3.4vw,46px);
}

.contact-direct-panel,
.contact-info-panel{
  min-height:clamp(430px,38vw,560px);
  border-radius:36px;
}

.contact-direct-panel{
  padding:clamp(38px,5vw,68px);
}

.contact-direct-panel h2{
  font-size:clamp(3rem,5.7vw,5.8rem);
  line-height:.94;
  letter-spacing:-.07em;
  margin-bottom:18px;
}

.contact-hub-lead{
  max-width:760px;
  font-size:clamp(1.08rem,1.45vw,1.26rem);
  line-height:1.75;
}

.contact-actions-v64{
  gap:16px;
  margin:34px 0 18px!important;
}

.contact-actions-v64 .contact-action,
.contact-scroll-btn-v64{
  min-height:66px;
  padding:18px 24px;
  font-size:1.08rem;
  border-radius:999px;
}

.contact-action__icon{
  width:24px;
  height:24px;
}

.contact-scroll-btn-v64{
  max-width:430px;
  justify-content:center;
}

.contact-info-panel{
  padding:clamp(34px,4.2vw,56px);
}

.contact-info-icon{
  width:70px;
  height:70px;
  border-radius:22px;
  font-size:2rem;
  margin-bottom:24px;
}

.contact-info-panel h3{
  font-size:clamp(1.9rem,3vw,2.8rem);
  line-height:1.05;
  margin-bottom:16px;
}

.contact-info-panel p{
  font-size:clamp(1.02rem,1.25vw,1.18rem);
  line-height:1.75;
  margin-bottom:20px;
}

.contact-map-link{
  font-size:1.04rem;
  margin-bottom:24px;
}

.contact-info-list{
  gap:12px;
}

.contact-info-list span{
  padding:14px 16px;
  border-radius:18px;
  font-size:1.02rem;
  line-height:1.45;
}

.callback-section-v64{
  max-width:1320px !important;
  padding-top:clamp(34px,4.5vw,72px) !important;
  padding-bottom:clamp(70px,7vw,110px) !important;
}

.callback-form-panel-v64{
  padding:clamp(38px,5vw,70px);
  border-radius:36px;
}

.callback-form-head{
  max-width:920px;
  margin-bottom:32px;
}

.callback-form-head h2{
  font-size:clamp(3rem,5.4vw,5.6rem);
  line-height:.96;
  letter-spacing:-.065em;
}

.callback-intro{
  max-width:840px;
  font-size:clamp(1.06rem,1.35vw,1.24rem);
  line-height:1.75;
}

.callback-form-v64{
  gap:22px;
}

.callback-form-v64 label{
  font-size:1.02rem;
}

.form-row-v64{
  gap:20px;
}

.callback-form-v64 input,
.callback-form-v64 textarea{
  min-height:60px;
  padding:18px 20px;
  border-radius:18px;
  font-size:1.04rem;
}

.callback-form-v64 textarea{
  min-height:170px;
}

.privacy-consent-v64{
  padding:16px 18px;
  border-radius:18px;
}

.callback-submit-v64{
  min-width:320px!important;
  min-height:62px;
  font-size:1.05rem;
}

@media(max-width:1080px){
  .contact-hub-grid{
    grid-template-columns:1fr;
  }

  .contact-direct-panel,
  .contact-info-panel{
    min-height:auto;
  }

  .contact-scroll-btn-v64{
    max-width:none;
  }
}

@media(max-width:760px){
  .contact-page-v64 .page-head,
  .contact-page-head{
    padding-top:96px;
    padding-bottom:42px;
  }

  .contact-page-head h1{
    font-size:clamp(2.7rem,13vw,4.7rem);
  }

  .contact-page-head p{
    font-size:1.04rem;
  }

  .contact-hub-section{
    padding-top:42px!important;
    padding-bottom:26px!important;
  }

  .contact-hub-section,
  .callback-section-v64{
    padding-left:16px!important;
    padding-right:16px!important;
  }

  .contact-direct-panel,
  .contact-info-panel,
  .callback-form-panel-v64{
    padding:24px;
    border-radius:26px;
  }

  .contact-direct-panel h2{
    font-size:clamp(2.45rem,12vw,3.7rem);
    margin-bottom:14px;
  }

  .contact-hub-lead{
    font-size:1.02rem;
  }

  .contact-actions-v64{
    grid-template-columns:1fr;
    gap:12px;
    margin-top:26px!important;
  }

  .contact-actions-v64 .contact-action,
  .contact-scroll-btn-v64{
    min-height:58px;
    padding:16px 20px;
    font-size:1.02rem;
  }

  .contact-info-icon{
    width:60px;
    height:60px;
    border-radius:20px;
    font-size:1.7rem;
  }

  .contact-info-panel h3{
    font-size:clamp(1.65rem,8vw,2.35rem);
  }

  .contact-info-list span{
    padding:13px 14px;
    font-size:.98rem;
  }

  .callback-section-v64{
    padding-top:34px!important;
  }

  .callback-form-head h2{
    font-size:clamp(2.45rem,12vw,3.65rem);
  }

  .callback-intro{
    font-size:1rem;
  }

  .form-row-v64{
    grid-template-columns:1fr;
    gap:16px;
  }

  .callback-form-v64{
    gap:18px;
  }

  .callback-form-v64 input,
  .callback-form-v64 textarea{
    min-height:56px;
    padding:16px;
    font-size:16px;
  }

  .callback-form-v64 textarea{
    min-height:150px;
  }

  .callback-submit-v64{
    width:100%!important;
    min-width:0!important;
    min-height:58px;
  }
}

@media(max-width:430px){
  .contact-hub-section,
  .callback-section-v64{
    padding-left:12px!important;
    padding-right:12px!important;
  }

  .contact-direct-panel,
  .contact-info-panel,
  .callback-form-panel-v64{
    padding:20px;
    border-radius:22px;
  }

  .contact-page-head h1{
    font-size:clamp(2.45rem,14vw,3.6rem);
  }

  .contact-direct-panel h2,
  .callback-form-head h2{
    font-size:clamp(2.15rem,12.5vw,3rem);
  }

  .contact-actions-v64 .contact-action,
  .contact-scroll-btn-v64{
    min-height:56px;
  }

  .contact-info-list span{
    font-size:.94rem;
  }
}


/* =========================================================
   v66 - Contatti bilanciati + stabilità responsive globale
   ========================================================= */

/* Sicurezza generale anti-overflow su tutti i dispositivi */
html,
body{
  max-width:100%;
  overflow-x:hidden;
}

img,
video,
iframe,
svg{
  max-width:100%;
}

.section,
.page-head,
.hero,
.header,
.footer,
.panel,
.card,
.contact-card,
.booking-calendar-panel,
.booking-form-card,
contact-direct-panel,
contact-info-panel,
.callback-form-panel-v64{
  min-width:0;
}

/* Contatti: più grande della versione vecchia, ma meno enorme della v65 */
.contact-page-v64 .page-head,
.contact-page-head{
  max-width:1280px;
  padding-top:clamp(100px,8vw,132px) !important;
  padding-bottom:clamp(42px,5vw,66px) !important;
}

.contact-page-head h1{
  font-size:clamp(2.75rem,5.6vw,5.25rem) !important;
  line-height:.98 !important;
  letter-spacing:-.055em !important;
  max-width:900px;
}

.contact-page-head p{
  max-width:760px;
  font-size:clamp(1rem,1.18vw,1.14rem) !important;
  line-height:1.65 !important;
}

.contact-hub-section{
  max-width:1280px !important;
  padding-top:clamp(42px,5vw,68px) !important;
  padding-bottom:clamp(28px,4vw,50px) !important;
}

.contact-hub-grid{
  grid-template-columns:minmax(0,1.05fr) minmax(330px,.95fr) !important;
  gap:clamp(20px,2.6vw,34px) !important;
}

.contact-direct-panel,
.contact-info-panel{
  min-height:auto !important;
  border-radius:30px !important;
}

.contact-direct-panel{
  padding:clamp(28px,3.6vw,48px) !important;
}

.contact-direct-panel h2{
  font-size:clamp(2.35rem,4.4vw,4.35rem) !important;
  line-height:.98 !important;
  letter-spacing:-.06em !important;
  margin-bottom:14px !important;
}

.contact-hub-lead{
  max-width:680px;
  font-size:clamp(1rem,1.18vw,1.12rem) !important;
  line-height:1.68 !important;
}

.contact-actions-v64{
  gap:13px !important;
  margin:26px 0 16px !important;
}

.contact-actions-v64 .contact-action,
.contact-scroll-btn-v64{
  min-height:56px !important;
  padding:15px 20px !important;
  font-size:1rem !important;
  border-radius:999px !important;
}

.contact-action__icon{
  width:21px !important;
  height:21px !important;
}

.contact-scroll-btn-v64{
  max-width:360px !important;
  justify-content:center;
}

.contact-info-panel{
  padding:clamp(28px,3.2vw,42px) !important;
}

.contact-info-icon{
  width:58px !important;
  height:58px !important;
  border-radius:19px !important;
  font-size:1.65rem !important;
  margin-bottom:18px !important;
}

.contact-info-panel h3{
  font-size:clamp(1.55rem,2.45vw,2.25rem) !important;
  line-height:1.08 !important;
  margin-bottom:12px !important;
}

.contact-info-panel p{
  font-size:clamp(.98rem,1.05vw,1.08rem) !important;
  line-height:1.65 !important;
  margin-bottom:16px !important;
}

.contact-map-link{
  font-size:.98rem !important;
  margin-bottom:18px !important;
}

.contact-info-list{
  gap:10px !important;
}

.contact-info-list span{
  padding:12px 14px !important;
  border-radius:16px !important;
  font-size:.97rem !important;
  line-height:1.42 !important;
}

/* Form ricontatto: più presente, ma non gigantesco */
.callback-section-v64{
  max-width:1280px !important;
  padding-top:clamp(28px,3.8vw,52px) !important;
  padding-bottom:clamp(58px,6vw,88px) !important;
}

.callback-form-panel-v64{
  padding:clamp(30px,4vw,52px) !important;
  border-radius:30px !important;
}

.callback-form-head{
  max-width:820px !important;
  margin-bottom:24px !important;
}

.callback-form-head h2{
  font-size:clamp(2.35rem,4.35vw,4.3rem) !important;
  line-height:.99 !important;
  letter-spacing:-.055em !important;
}

.callback-intro{
  max-width:760px !important;
  font-size:clamp(1rem,1.12vw,1.12rem) !important;
  line-height:1.68 !important;
}

.callback-form-v64{
  gap:18px !important;
}

.callback-form-v64 label{
  font-size:.98rem !important;
}

.form-row-v64{
  gap:16px !important;
}

.callback-form-v64 input,
.callback-form-v64 textarea{
  min-height:54px !important;
  padding:15px 17px !important;
  border-radius:16px !important;
  font-size:1rem !important;
}

.callback-form-v64 textarea{
  min-height:138px !important;
}

.privacy-consent-v64{
  padding:14px 16px !important;
  border-radius:16px !important;
}

.callback-submit-v64{
  min-width:260px !important;
  min-height:56px !important;
  font-size:1rem !important;
}

/* Tablet */
@media(max-width:1080px){
  .contact-hub-grid{
    grid-template-columns:1fr !important;
  }

  .contact-scroll-btn-v64{
    max-width:none !important;
  }
}

/* Telefono grande / tablet piccolo */
@media(max-width:760px){
  .contact-page-v64 .page-head,
  .contact-page-head{
    padding-top:88px !important;
    padding-bottom:36px !important;
  }

  .contact-page-head h1{
    font-size:clamp(2.35rem,11vw,4rem) !important;
  }

  .contact-page-head p{
    font-size:1rem !important;
  }

  .contact-hub-section,
  .callback-section-v64{
    padding-left:16px !important;
    padding-right:16px !important;
  }

  .contact-hub-section{
    padding-top:36px !important;
    padding-bottom:22px !important;
  }

  .contact-direct-panel,
  .contact-info-panel,
  .callback-form-panel-v64{
    padding:22px !important;
    border-radius:24px !important;
  }

  .contact-direct-panel h2{
    font-size:clamp(2.05rem,10vw,3.25rem) !important;
  }

  .contact-hub-lead{
    font-size:1rem !important;
  }

  .contact-actions-v64{
    grid-template-columns:1fr !important;
    gap:10px !important;
    margin-top:22px !important;
  }

  .contact-actions-v64 .contact-action,
  .contact-scroll-btn-v64{
    min-height:54px !important;
    padding:14px 18px !important;
    font-size:.98rem !important;
    width:100% !important;
  }

  .contact-info-icon{
    width:54px !important;
    height:54px !important;
    font-size:1.55rem !important;
    margin-bottom:16px !important;
  }

  .contact-info-panel h3{
    font-size:clamp(1.45rem,7vw,2.05rem) !important;
  }

  .contact-info-list span{
    padding:11px 13px !important;
    font-size:.95rem !important;
  }

  .callback-section-v64{
    padding-top:28px !important;
  }

  .callback-form-head h2{
    font-size:clamp(2.05rem,10vw,3.15rem) !important;
  }

  .callback-intro{
    font-size:.98rem !important;
  }

  .form-row-v64{
    grid-template-columns:1fr !important;
    gap:14px !important;
  }

  .callback-form-v64{
    gap:16px !important;
  }

  .callback-form-v64 input,
  .callback-form-v64 textarea{
    min-height:52px !important;
    padding:14px 15px !important;
    font-size:16px !important;
  }

  .callback-form-v64 textarea{
    min-height:132px !important;
  }

  .callback-submit-v64{
    width:100% !important;
    min-width:0 !important;
    min-height:54px !important;
  }
}

/* Telefono piccolo */
@media(max-width:430px){
  .contact-hub-section,
  .callback-section-v64{
    padding-left:12px !important;
    padding-right:12px !important;
  }

  .contact-direct-panel,
  .contact-info-panel,
  .callback-form-panel-v64{
    padding:18px !important;
    border-radius:20px !important;
  }

  .contact-page-head h1{
    font-size:clamp(2.15rem,12vw,3.25rem) !important;
  }

  .contact-direct-panel h2,
  .callback-form-head h2{
    font-size:clamp(1.9rem,11vw,2.75rem) !important;
  }

  .contact-actions-v64 .contact-action,
  .contact-scroll-btn-v64{
    min-height:52px !important;
  }

  .contact-info-list span{
    font-size:.92rem !important;
  }
}


/* =========================================================
   v67 - Fix sfondo testata Contatti desktop
   Evita lo stacco bianco dietro "Parla con noi".
   ========================================================= */
.contact-page-head,
.contact-page-v64 .page-head{
  position:relative;
  overflow:hidden;
  max-width:none !important;
  width:100% !important;
  margin-left:0 !important;
  margin-right:0 !important;
  background:
    radial-gradient(circle at 12% 18%, rgba(21,155,215,.18), transparent 32%),
    radial-gradient(circle at 82% 12%, rgba(201,163,91,.14), transparent 28%),
    linear-gradient(135deg,#eef9ff 0%,#fffdf9 62%,#fff6e6 100%) !important;
}

.contact-page-head > *,
.contact-page-v64 .page-head > *{
  max-width:980px;
}

.contact-page-head::after,
.contact-page-v64 .page-head::after{
  content:"";
  position:absolute;
  right:-140px;
  bottom:-190px;
  width:520px;
  height:520px;
  border-radius:50%;
  opacity:.12;
  background:repeating-linear-gradient(
    45deg,
    var(--blue) 0 3px,
    transparent 3px 28px
  );
  pointer-events:none;
}

@media(min-width:1300px){
  .contact-page-head,
  .contact-page-v64 .page-head{
    padding-left:calc((100vw - 1240px)/2) !important;
    padding-right:calc((100vw - 1240px)/2) !important;
  }
}

@media(max-width:1299px){
  .contact-page-head,
  .contact-page-v64 .page-head{
    padding-left:clamp(18px,5vw,70px) !important;
    padding-right:clamp(18px,5vw,70px) !important;
  }
}

@media(max-width:760px){
  .contact-page-head,
  .contact-page-v64 .page-head{
    border-radius:0 0 28px 28px;
    padding-left:16px !important;
    padding-right:16px !important;
  }

  .contact-page-head::after,
  .contact-page-v64 .page-head::after{
    width:340px;
    height:340px;
    right:-160px;
    bottom:-150px;
    opacity:.09;
  }
}


/* =========================================================
   v68 - Rimozione scritte in basso sulle foto
   Nasconde le etichette testuali sulle immagini preview
   e nei lightbox per una resa più pulita e professionale.
   ========================================================= */
.real-photo::after{
  opacity: 0 !important;
}

.real-photo figcaption,
.photo-lightbox__figure figcaption{
  display: none !important;
}


/* =========================================================
   v69 - Titolo Prenota più premium e compatto
   ========================================================= */
.booking-page-title{
  display:inline-block;
  width:max-content;
  max-width:100%;
  white-space:nowrap;
  font-size:clamp(2.15rem,4.8vw,4.7rem) !important;
  line-height:.95 !important;
  letter-spacing:-.055em !important;
  color:var(--navy);
  position:relative;
}

.booking-page-title::after{
  content:"";
  display:block;
  width:clamp(78px,12vw,140px);
  height:4px;
  margin-top:16px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--blue),var(--gold));
}

.booking-page-title + p{
  display:none !important;
}

@media(max-width:760px){
  .booking-page-title{
    font-size:clamp(1.82rem,8.8vw,3rem) !important;
    letter-spacing:-.045em !important;
  }

  .booking-page-title::after{
    height:3px;
    margin-top:12px;
  }
}

@media(max-width:390px){
  .booking-page-title{
    font-size:clamp(1.62rem,8.2vw,2.35rem) !important;
  }
}


/* v72 - categorie interni */
.category-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:26px}
.category-gallery-card{appearance:none;border:1px solid rgba(201,163,91,.18);background:#fff;border-radius:28px;overflow:hidden;padding:0;text-align:left;cursor:pointer;box-shadow:0 22px 48px rgba(6,28,49,.10);transition:transform .28s ease, box-shadow .28s ease, border-color .28s ease;display:flex;flex-direction:column;width:100%}
.category-gallery-card:hover{transform:translateY(-4px);box-shadow:0 28px 60px rgba(6,28,49,.14);border-color:rgba(201,163,91,.36)}
.category-gallery-card:focus-visible{outline:3px solid rgba(18,102,214,.28);outline-offset:3px}
.category-gallery-card__media{display:block;aspect-ratio:4/3;background:#edf3fa;overflow:hidden}
.category-gallery-card__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.category-gallery-card:hover .category-gallery-card__media img{transform:scale(1.04)}
.category-gallery-card__content{display:block;padding:18px 18px 20px}
.category-gallery-card__title{display:block;font-size:1.28rem;font-weight:900;color:var(--navy);margin-bottom:8px}
.category-gallery-card__text{display:block;color:rgba(6,28,49,.74);line-height:1.6;font-size:.98rem}
@media(max-width:1000px){.category-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}}
@media(max-width:720px){.category-gallery-grid{grid-template-columns:1fr}.category-gallery-card__content{padding:16px 16px 18px}.category-gallery-card__title{font-size:1.18rem}.category-gallery-card__text{font-size:.95rem}}


/* v73 - interni categorie premium */
.category-gallery-card{position:relative;border:1px solid rgba(201,163,91,.22);background:linear-gradient(180deg,#ffffff 0%,#fbf8f1 100%);box-shadow:0 26px 54px rgba(6,28,49,.10), inset 0 1px 0 rgba(255,255,255,.7)}
.category-gallery-card::after{content:'';position:absolute;inset:0;border-radius:28px;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,0) 54%,rgba(6,28,49,.02) 100%)}
.category-gallery-card__media{position:relative}
.category-gallery-card__media::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,28,49,0) 42%,rgba(6,28,49,.18) 100%)}
.category-gallery-card__content{position:relative;z-index:1}
.category-gallery-card__eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:.72rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:10px}
.category-gallery-card__title{font-size:1.34rem}
.category-gallery-card__text{min-height:3.4em}
.category-gallery-card__cta{display:inline-flex;align-items:center;gap:8px;margin-top:14px;padding:10px 14px;border-radius:999px;background:rgba(6,28,49,.06);color:var(--navy);font-weight:800;font-size:.92rem;transition:background .28s ease,color .28s ease,transform .28s ease}
.category-gallery-card__cta::after{content:'→';font-size:1rem;line-height:1}
.category-gallery-card:hover .category-gallery-card__cta{background:var(--navy);color:#fff;transform:translateX(2px)}
@media(max-width:720px){.category-gallery-card__title{font-size:1.2rem}.category-gallery-card__text{min-height:auto}.category-gallery-card__cta{margin-top:12px;padding:9px 13px;font-size:.9rem}}


/* v75 - stato attivo miniature ingresso */
.ingresso-lightbox .photo-lightbox__thumbs button.is-active,
.ingresso-lightbox .photo-lightbox__thumbs button.active{
  border-color: var(--gold) !important;
  transform: translateY(-2px);
  opacity: 1;
}


/* =========================================================
   v77 - Migliorie conversione, home tour, prenota premium e WhatsApp mobile
   ========================================================= */
.hero-proof{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:18px;
}
.hero-proof span{
  display:inline-flex;
  align-items:center;
  min-height:38px;
  padding:9px 14px;
  border-radius:999px;
  background:rgba(255,255,255,.78);
  border:1px solid rgba(201,163,91,.22);
  color:var(--navy);
  font-weight:850;
  box-shadow:0 12px 28px rgba(6,28,49,.08);
  backdrop-filter:blur(8px);
}
.home-tour-section{
  padding-top:clamp(42px,6vw,76px);
}
.home-tour-video{
  position:relative;
  overflow:hidden;
  border-radius:32px;
  border:1px solid rgba(201,163,91,.24);
  box-shadow:0 28px 70px rgba(6,28,49,.16);
  background:linear-gradient(135deg,#071827,#12344c);
  max-width:1080px;
  margin:0 auto;
}
.home-tour-video::before{
  content:"";
  display:block;
  padding-top:56.25%;
}
.home-tour-video iframe{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
}
.booking-form-card h2,
.booking-calendar-head h2{
  letter-spacing:-.035em;
}
.booking-summary{
  position:relative;
  overflow:hidden;
  border-radius:22px !important;
  border:1px solid rgba(31,159,224,.22) !important;
  background:linear-gradient(135deg,rgba(238,249,255,.98),rgba(255,255,255,.92)) !important;
  box-shadow:0 18px 38px rgba(6,28,49,.08);
}
.booking-summary::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:5px;
  background:linear-gradient(180deg,var(--blue),var(--gold));
}
.booking-summary strong{
  font-size:1.05rem;
  color:var(--navy);
}
.booking-actions .btn[type="submit"]{
  box-shadow:0 16px 36px rgba(31,159,224,.24);
}
.day-price:empty{
  display:none !important;
}
.floating-whatsapp{
  display:none;
}
.global-whatsapp-choice{
  position:fixed;
  inset:0;
  z-index:2200;
  display:none;
  align-items:flex-end;
  justify-content:center;
  padding:18px;
  background:rgba(7,24,39,.42);
  backdrop-filter:blur(8px);
}
.global-whatsapp-choice.open{
  display:flex;
}
.global-whatsapp-choice__box{
  width:min(420px,100%);
  border-radius:28px;
  padding:22px;
  background:linear-gradient(180deg,#fff,#fff9ef);
  border:1px solid rgba(201,163,91,.25);
  box-shadow:0 28px 70px rgba(0,0,0,.22);
  position:relative;
}
.global-whatsapp-choice__box h2{
  margin:4px 0 8px;
  color:var(--navy);
  font-size:1.65rem;
}
.global-whatsapp-choice__box p{
  color:rgba(6,28,49,.72);
  line-height:1.55;
  margin-bottom:16px;
}
.global-whatsapp-choice__close{
  position:absolute;
  top:12px;
  right:12px;
  width:38px;
  height:38px;
  border:0;
  border-radius:50%;
  background:rgba(6,28,49,.06);
  color:var(--navy);
  font-size:24px;
  cursor:pointer;
}
.global-whatsapp-choice__numbers{
  display:grid;
  gap:10px;
}
.global-whatsapp-choice__numbers a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px 16px;
  border-radius:16px;
  background:#fff;
  border:1px solid rgba(31,159,224,.18);
  color:var(--navy);
  font-weight:900;
  box-shadow:0 12px 26px rgba(6,28,49,.07);
}
.global-whatsapp-choice__numbers a::after{
  content:"Apri chat";
  color:#1c8c4a;
  font-size:.82rem;
  font-weight:900;
}
@media(max-width:760px){
  body{
    padding-bottom:74px;
  }
  .hero-proof{
    gap:8px;
  }
  .hero-proof span{
    min-height:34px;
    padding:8px 11px;
    font-size:.86rem;
  }
  .home-tour-video{
    border-radius:22px;
  }
  .floating-whatsapp{
    position:fixed;
    left:16px;
    right:16px;
    bottom:14px;
    z-index:1900;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    min-height:54px;
    border-radius:999px;
    background:linear-gradient(135deg,#12a956,#0b8f47);
    color:#fff;
    font-weight:950;
    text-decoration:none;
    box-shadow:0 18px 38px rgba(16,151,76,.32);
    border:1px solid rgba(255,255,255,.22);
  }
  .floating-whatsapp::before{
    content:"";
    width:20px;
    height:20px;
    border-radius:50%;
    background:rgba(255,255,255,.95);
    box-shadow:inset 0 0 0 6px #13a955;
  }
}
@media(min-width:761px){
  .global-whatsapp-choice.open{
    display:none;
  }
}


/* =========================================================
   v78 - Gallery divisa, FAQ migliorate, prenota step, thank-you premium
   ========================================================= */
.gallery-category-section{
  padding-top:34px;
  padding-bottom:34px;
}

.gallery-category-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:16px;
}

.gallery-category-card{
  appearance:none;
  border:1px solid rgba(201,163,91,.22);
  border-radius:26px;
  overflow:hidden;
  background:linear-gradient(180deg,#fff,#fbf7ed);
  box-shadow:0 18px 42px rgba(6,28,49,.09);
  cursor:pointer;
  padding:0;
  text-align:left;
  transition:transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}

.gallery-category-card:hover{
  transform:translateY(-4px);
  border-color:rgba(201,163,91,.42);
  box-shadow:0 28px 62px rgba(6,28,49,.14);
}

.gallery-category-card__media{
  display:block;
  aspect-ratio:4/3;
  overflow:hidden;
  background:var(--sky);
}

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

.gallery-category-card:hover .gallery-category-card__media img{
  transform:scale(1.045);
}

.gallery-category-card__content{
  display:grid;
  gap:6px;
  padding:16px;
}

.gallery-category-card__eyebrow{
  color:var(--gold);
  text-transform:uppercase;
  letter-spacing:.14em;
  font-weight:900;
  font-size:.68rem;
}

.gallery-category-card strong{
  color:var(--navy);
  font-size:1.1rem;
  line-height:1.1;
}

.gallery-category-card small{
  color:var(--muted);
  line-height:1.45;
  font-weight:750;
}

.gallery-tile-button{
  border:0;
  padding:0;
  text-align:left;
  cursor:pointer;
}

.gallery-real--compact .real-photo{
  min-height:230px;
}

.booking-steps-section{
  max-width:1320px;
  padding-top:38px;
  padding-bottom:18px;
}

.booking-steps-head{
  margin-bottom:20px;
}

.booking-steps-head h2{
  font-size:clamp(2rem,3.8vw,4rem);
  line-height:1;
  letter-spacing:-.055em;
}

.booking-steps-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}

.booking-step-card{
  padding:24px;
  border-radius:26px;
  border:1px solid rgba(201,163,91,.22);
  background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(255,248,235,.74));
  box-shadow:0 16px 40px rgba(7,24,39,.08);
}

.booking-step-card span{
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  margin-bottom:16px;
  border-radius:16px;
  background:linear-gradient(135deg,var(--blue-dark),var(--blue));
  color:#fff;
  font-weight:1000;
}

.booking-step-card h3{
  margin-bottom:8px;
  color:var(--navy);
}

.booking-step-card p{
  margin:0;
  color:var(--muted);
  line-height:1.6;
}

.thank-you-page--premium{
  text-align:left;
}

.thank-you-actions{
  flex-wrap:wrap;
}

.thank-you-next{
  max-width:1320px;
  padding-top:18px;
}

@media(max-width:1120px){
  .gallery-category-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media(max-width:820px){
  .gallery-category-grid,
  .booking-steps-grid{
    grid-template-columns:1fr;
  }

  .gallery-real--compact .real-photo{
    min-height:240px;
  }

  .booking-step-card{
    padding:20px;
    border-radius:22px;
  }
}

@media(max-width:520px){
  .gallery-category-card__content{
    padding:14px;
  }

  .booking-steps-section{
    padding-top:28px;
  }

  .booking-steps-head h2{
    font-size:clamp(1.7rem,9vw,2.6rem);
  }
}


/* =========================================================
   v79 - Rimozione Home Tour + WhatsApp mobile compatto
   ========================================================= */
.home-tour-section{
  display:none !important;
}

@media(max-width:760px){
  body{
    padding-bottom:0 !important;
  }

  .floating-whatsapp{
    left:auto !important;
    right:16px !important;
    bottom:18px !important;
    width:58px !important;
    height:58px !important;
    min-height:58px !important;
    padding:0 !important;
    border-radius:50% !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:0 !important;
    overflow:hidden !important;
    font-size:0 !important;
    line-height:0 !important;
    color:transparent !important;
    background:linear-gradient(135deg,#25d366,#128c7e) !important;
    box-shadow:0 16px 34px rgba(18,140,126,.34) !important;
    border:2px solid rgba(255,255,255,.9) !important;
  }

  .floating-whatsapp::before{
    content:"" !important;
    width:31px !important;
    height:31px !important;
    border-radius:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    background-repeat:no-repeat !important;
    background-position:center !important;
    background-size:contain !important;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath fill='%23fff' d='M16.04 3.2c-7.05 0-12.78 5.66-12.78 12.63 0 2.23.6 4.4 1.74 6.3L3.16 28.8l6.86-1.78a12.9 12.9 0 0 0 6.02 1.51c7.05 0 12.78-5.66 12.78-12.63S23.09 3.2 16.04 3.2Zm0 23.16c-1.92 0-3.8-.52-5.43-1.5l-.39-.23-4.06 1.05 1.09-3.9-.26-.4a10.34 10.34 0 0 1-1.6-5.55c0-5.77 4.78-10.46 10.65-10.46s10.65 4.69 10.65 10.46-4.78 10.53-10.65 10.53Zm5.84-7.83c-.32-.16-1.9-.93-2.2-1.03-.29-.1-.5-.16-.72.16-.21.31-.82 1.03-1 1.24-.18.21-.37.24-.69.08-.32-.16-1.35-.49-2.57-1.55-.95-.84-1.6-1.88-1.78-2.2-.19-.31-.02-.49.14-.64.14-.14.32-.37.48-.55.16-.18.21-.31.32-.52.1-.21.05-.39-.03-.55-.08-.16-.72-1.72-.98-2.35-.26-.62-.52-.54-.72-.55h-.61c-.21 0-.55.08-.84.39-.29.31-1.1 1.06-1.1 2.6s1.13 3.02 1.29 3.23c.16.21 2.23 3.36 5.4 4.71.75.32 1.34.51 1.8.65.76.24 1.45.21 2 .13.61-.09 1.9-.76 2.17-1.5.27-.73.27-1.36.19-1.5-.08-.13-.29-.21-.61-.37Z'/%3E%3C/svg%3E") !important;
  }

  .floating-whatsapp::after{
    content:"";
    position:absolute;
    inset:-4px;
    border-radius:50%;
    border:1px solid rgba(37,211,102,.22);
    pointer-events:none;
  }

  .floating-whatsapp:active{
    transform:scale(.96);
  }
}

@media(max-width:390px){
  .floating-whatsapp{
    right:14px !important;
    bottom:16px !important;
    width:54px !important;
    height:54px !important;
    min-height:54px !important;
  }

  .floating-whatsapp::before{
    width:29px !important;
    height:29px !important;
  }
}


/* Home24 custom overrides */
.logo--image img{object-fit:contain;}
.social-links{display:flex;flex-wrap:wrap;gap:.7rem;align-items:center;margin-top:1rem;}
.social-links a{display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(184,139,74,.45);border-radius:999px;padding:.65rem .95rem;text-decoration:none;font-weight:700;color:inherit;background:rgba(255,255,255,.54);backdrop-filter:blur(8px);}
.social-links a:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(0,0,0,.09);}
.footer-social{justify-content:center;margin-top:.9rem;}
.social-links--card{margin-top:1rem;}
.social-links--contact{margin-top:1.25rem;}
.calendar-note{font-size:.92rem;opacity:.78;margin-top:1rem;}
.floating-contact{background:linear-gradient(135deg,#2d241b,#7a5a2a);}
.service-card{padding:1.4rem;border-radius:24px;background:rgba(255,255,255,.78);box-shadow:0 18px 50px rgba(0,0,0,.08);border:1px solid rgba(184,139,74,.18);}
.services-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;}
.faq-list{display:grid;gap:1rem;max-width:980px;margin:0 auto;}.faq-item{padding:1.35rem;border-radius:24px;background:rgba(255,255,255,.78);box-shadow:0 18px 50px rgba(0,0,0,.08);border:1px solid rgba(184,139,74,.18);}
.reviews-track{display:flex;gap:1rem;overflow:auto;padding:1rem 0;scroll-snap-type:x mandatory;}.review-card{min-width:min(420px,86vw);scroll-snap-align:start;padding:1.3rem;border-radius:24px;background:rgba(255,255,255,.78);box-shadow:0 18px 50px rgba(0,0,0,.08);border:1px solid rgba(184,139,74,.18);}
@media (max-width: 860px){.services-grid{grid-template-columns:1fr}.social-links{gap:.5rem}.social-links a{padding:.58rem .82rem}.footer-social{justify-content:center}.floating-contact{font-size:.95rem}}


/* =========================
   Home24 - Room 1 / Room 2
   ========================= */
.room-showcase-section .section-intro,
.room-services-compare .section-intro{max-width:900px}
.room-showcase-grid{display:grid;gap:30px}
.room-card-home24{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(300px,.88fr);gap:28px;align-items:stretch;background:rgba(255,255,255,.9);border:1px solid rgba(201,163,91,.24);border-radius:34px;padding:clamp(20px,3vw,34px);box-shadow:var(--shadow);overflow:hidden}
.room-card__copy{display:flex;flex-direction:column;gap:18px}
.room-card__label{width:max-content;border-radius:999px;padding:8px 14px;background:linear-gradient(135deg,var(--blue),var(--blue-dark));color:#fff;font-weight:950;letter-spacing:.08em;text-transform:uppercase;font-size:.75rem}
.room-card-home24 h2{font-size:clamp(1.65rem,3vw,3rem);letter-spacing:-.04em}
.room-card-home24 p{margin:0;color:var(--muted);line-height:1.65}
.room-specs{display:flex;gap:10px;flex-wrap:wrap}
.room-specs span,.amenities-list span{border-radius:999px;border:1px solid rgba(11,143,211,.18);background:#f8fdff;color:var(--blue-dark);padding:10px 14px;font-weight:900}
.room-beds{display:grid;gap:8px;margin:0;padding-left:20px;line-height:1.6;color:var(--text);font-size:1.05rem}
.amenities-list{display:flex;gap:10px;flex-wrap:wrap}
.room-card__media{position:relative;margin:0;border-radius:28px;overflow:hidden;min-height:360px;background:var(--sky);box-shadow:0 16px 38px rgba(6,28,49,.14)}
.room-card__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s ease}
.room-card__media:hover img{transform:scale(1.04)}
.room-card__media figcaption{position:absolute;left:16px;right:16px;bottom:16px;z-index:1;color:#fff;font-weight:950;text-shadow:0 2px 10px rgba(0,0,0,.35)}
.room-card__media:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(6,28,49,.62),rgba(6,28,49,0) 55%)}
.services-grid--home24{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.room-compare-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.room-compare-grid .panel h3{margin-bottom:12px}.room-compare-grid .panel p{margin-top:0}
select{width:100%;border:1px solid rgba(6,63,104,.22);border-radius:16px;padding:14px 16px;font:inherit;background:#fff;color:var(--text)}
@media(max-width:1000px){.room-card-home24{grid-template-columns:1fr}.services-grid--home24{grid-template-columns:repeat(2,1fr)}.room-compare-grid{grid-template-columns:1fr}.room-card__media{min-height:320px}}
@media(max-width:720px){.room-card-home24{padding:18px;border-radius:26px}.room-card__media{min-height:260px}.services-grid--home24{grid-template-columns:1fr}.room-specs span,.amenities-list span{width:100%;text-align:center}.room-card-home24 .actions .btn{width:100%}}

/* =========================================================
   HOME24 2026 — restyling avorio, legno e verde acqua
   ========================================================= */
:root{
  --ivory:#f8f3e8;
  --ivory-soft:#fffdf8;
  --sand:#e8dbc8;
  --wood:#6c4b32;
  --wood-dark:#3f2f24;
  --wood-light:#a77b55;
  --aqua:#55a69d;
  --aqua-dark:#337c75;
  --aqua-soft:#dcefeb;
  --ink:#2f2924;
  --muted:#756b62;
  --blue:var(--aqua);
  --blue-dark:var(--aqua-dark);
  --navy:var(--wood-dark);
  --white:var(--ivory-soft);
  --cream:var(--ivory);
  --sky:var(--aqua-soft);
  --text:var(--ink);
  --shadow:0 24px 70px rgba(63,47,36,.13);
  --radius:30px;
}

body{
  background:
    radial-gradient(circle at 10% 10%,rgba(85,166,157,.10),transparent 34%),
    radial-gradient(circle at 92% 30%,rgba(167,123,85,.10),transparent 28%),
    var(--ivory-soft);
  color:var(--ink);
}

body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  opacity:.18;
  background-image:repeating-linear-gradient(102deg,rgba(108,75,50,.035) 0 1px,transparent 1px 17px);
}

.header{
  padding:14px clamp(18px,4vw,56px);
  background:rgba(255,253,248,.88);
  border-bottom:1px solid rgba(108,75,50,.12);
  box-shadow:0 8px 28px rgba(63,47,36,.05);
}
.logo--image img{height:54px;width:auto;max-width:150px;border-radius:14px}
.menu{gap:16px;color:var(--wood-dark)}
.menu a{position:relative;transition:color .25s ease,transform .25s ease}
.menu a:not(.nav-cta)::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:2px;border-radius:2px;background:var(--aqua);transform:scaleX(0);transform-origin:center;transition:transform .25s ease}
.menu a:hover{color:var(--aqua-dark);transform:translateY(-1px)}
.menu a:hover::after{transform:scaleX(1)}
.nav-cta,.btn{background:linear-gradient(135deg,var(--aqua-dark),var(--aqua));box-shadow:0 14px 32px rgba(51,124,117,.24);transition:transform .25s ease,box-shadow .25s ease,filter .25s ease}
.nav-cta:hover,.btn:hover{transform:translateY(-2px);box-shadow:0 18px 38px rgba(51,124,117,.30);filter:saturate(1.08)}
.btn--light{background:rgba(255,253,248,.9);color:var(--wood-dark);border:1px solid rgba(108,75,50,.20);box-shadow:0 10px 28px rgba(63,47,36,.08)}

.hero{
  min-height:82vh;
  grid-template-columns:minmax(0,1.06fr) minmax(320px,.72fr);
  align-items:center;
  background:
    linear-gradient(100deg,rgba(255,253,248,.98) 0%,rgba(248,243,232,.94) 52%,rgba(220,239,235,.70) 100%),
    repeating-linear-gradient(100deg,rgba(108,75,50,.05) 0 2px,transparent 2px 24px);
}
.hero:after{background:radial-gradient(circle,rgba(85,166,157,.30) 0 2px,transparent 2.5px);background-size:22px 22px;opacity:.35;right:-90px;bottom:-150px}
.hero__text{max-width:760px}
.home-title{display:grid;gap:8px}
.home-title__main{font-family:Georgia,"Times New Roman",serif;font-weight:500;color:var(--wood-dark);font-size:clamp(2.4rem,5.7vw,5.8rem);letter-spacing:-.055em}
.home-title__brand{font-size:clamp(3.4rem,8vw,7.8rem);font-weight:1000;line-height:.86;color:var(--aqua-dark);text-shadow:0 10px 30px rgba(51,124,117,.13)}
.hero .lead{max-width:670px;font-size:clamp(1.08rem,1.55vw,1.32rem);color:#655b53}
.hero-proof{display:flex;flex-wrap:wrap;gap:9px;margin-top:24px}
.hero-proof span{padding:9px 13px;border-radius:999px;background:rgba(255,253,248,.76);border:1px solid rgba(108,75,50,.14);color:var(--wood-dark);font-size:.85rem;font-weight:800;box-shadow:0 8px 24px rgba(63,47,36,.05)}
.brand-showcase{background:linear-gradient(145deg,rgba(255,253,248,.96),rgba(232,219,200,.60));border:1px solid rgba(108,75,50,.15);box-shadow:0 30px 80px rgba(63,47,36,.18);border-radius:42px;padding:clamp(24px,3vw,44px)}
.brand-showcase img{border-radius:26px;box-shadow:0 18px 50px rgba(63,47,36,.14)}
.brand-showcase__glow{background:radial-gradient(circle,rgba(85,166,157,.36),transparent 66%)}

.eyebrow{color:var(--aqua-dark)}
h1,h2,h3{color:var(--wood-dark)}
.page-head{background:linear-gradient(135deg,rgba(220,239,235,.82),rgba(248,243,232,.92) 55%,rgba(255,253,248,.98));border-bottom:1px solid rgba(108,75,50,.09)}
.section{position:relative}
.panel,.card,.contact-card,.service-card,.faq-item,.review-card,.booking-step-card,.room-card-home24,.callback-form-panel,.contact-direct-panel,.contact-info-panel{
  border-color:rgba(108,75,50,.14)!important;
  background:linear-gradient(155deg,rgba(255,253,248,.98),rgba(248,243,232,.78))!important;
  box-shadow:var(--shadow)!important;
}

.real-preview{padding-top:clamp(76px,10vw,120px)}
.section-intro--center{text-align:center;margin-left:auto;margin-right:auto}
.home-experience-title{display:flex;align-items:baseline;gap:clamp(14px,2vw,28px);flex-wrap:wrap;margin-bottom:14px}
.home-experience-title span{font-size:clamp(2.7rem,6vw,5.8rem);font-weight:1000;color:var(--wood-dark);letter-spacing:-.065em}
.home-experience-title em{max-width:620px;font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.6rem,3.3vw,3.1rem);font-weight:500;line-height:1.05;color:var(--aqua-dark)}
.simple-photo-section{padding:clamp(20px,3vw,34px);border-radius:40px;background:linear-gradient(145deg,rgba(232,219,200,.34),rgba(220,239,235,.33));border:1px solid rgba(108,75,50,.10)}
.real-photo{border-radius:26px!important;box-shadow:0 18px 52px rgba(63,47,36,.14)!important}
.real-photo img{transition:transform .5s ease,filter .5s ease}
.real-photo:hover img{transform:scale(1.035);filter:saturate(1.03)}

.home-review-highlight{max-width:none;padding-left:clamp(18px,5vw,70px);padding-right:clamp(18px,5vw,70px);background:
  linear-gradient(110deg,rgba(63,47,36,.98),rgba(108,75,50,.96) 55%,rgba(51,124,117,.94));
  color:#fff;
  overflow:hidden;
}
.home-review-highlight::before{content:"";position:absolute;inset:0;opacity:.11;background:repeating-linear-gradient(100deg,rgba(255,255,255,.3) 0 1px,transparent 1px 20px)}
.home-review-highlight .home-booking-strip__inner{position:relative;z-index:1;max-width:1240px;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.74fr);gap:clamp(32px,6vw,80px);align-items:center}
.home-review-highlight h2,.home-review-highlight .eyebrow{color:#fff}
.home-review-highlight p{color:rgba(255,255,255,.78);max-width:650px}
.btn--review{margin-top:22px;background:var(--ivory-soft);color:var(--wood-dark);box-shadow:0 16px 38px rgba(0,0,0,.18)}
.btn--review:hover{color:var(--aqua-dark)}
.home-rating-card{border-radius:34px;padding:clamp(24px,3vw,38px);background:rgba(255,253,248,.98)!important;border:1px solid rgba(255,255,255,.56)!important;box-shadow:0 28px 80px rgba(0,0,0,.24)!important;color:var(--wood-dark)}
.home-rating-card__top,.home-rating-card__footer{display:flex;justify-content:space-between;gap:12px;align-items:center}
.home-rating-card__source{font-size:.82rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:var(--aqua-dark)}
.home-rating-card__stars{letter-spacing:.12em;color:#c99a55;font-size:.9rem}
.home-rating-card__body{display:flex;align-items:center;gap:20px;padding:28px 0 24px}
.home-rating-score{display:grid;place-items:center;min-width:112px;height:112px;border-radius:30px 30px 30px 8px;background:linear-gradient(145deg,var(--aqua-dark),var(--aqua));color:#fff;font-size:2.8rem;font-weight:1000;box-shadow:0 18px 42px rgba(51,124,117,.30)}
.home-rating-card__body strong{display:block;font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.8rem,3vw,2.7rem);font-weight:600;color:var(--wood-dark)}
.home-rating-card__body small{display:block;margin-top:6px;color:var(--muted);font-size:.95rem}
.home-rating-card__footer{padding-top:18px;border-top:1px solid rgba(108,75,50,.12);font-size:.86rem;font-weight:800;color:var(--muted)}

.home-social-section{padding-top:clamp(78px,10vw,120px);padding-bottom:clamp(78px,10vw,120px)}
.social-brand-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.social-brand-card{display:grid;grid-template-columns:66px 1fr auto;gap:16px;align-items:center;min-height:132px;padding:22px;border-radius:28px;background:linear-gradient(145deg,rgba(255,253,248,.98),rgba(248,243,232,.82));border:1px solid rgba(108,75,50,.13);box-shadow:0 16px 46px rgba(63,47,36,.10);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.social-brand-card:hover{transform:translateY(-5px);box-shadow:0 25px 60px rgba(63,47,36,.16);border-color:rgba(85,166,157,.48)}
.social-brand-card__icon{display:grid;place-items:center;width:66px;height:66px;border-radius:22px;background:linear-gradient(145deg,var(--ivory),var(--aqua-soft));border:1px solid rgba(108,75,50,.10)}
.social-brand-card__icon img{width:42px;height:42px;display:block}
.social-brand-card__copy strong{display:block;color:var(--wood-dark);font-size:1.15rem;margin-bottom:5px}
.social-brand-card__copy small{display:block;color:var(--muted);line-height:1.45}
.social-brand-card__arrow{font-size:1.35rem;color:var(--aqua-dark);transition:transform .25s ease}
.social-brand-card:hover .social-brand-card__arrow{transform:translate(3px,-3px)}
.social-brand-grid--compact{grid-template-columns:1fr;gap:12px;margin-top:16px}
.social-brand-grid--compact .social-brand-card{min-height:96px;padding:14px 16px;grid-template-columns:50px 1fr auto;border-radius:22px}
.social-brand-grid--compact .social-brand-card__icon{width:50px;height:50px;border-radius:16px}
.social-brand-grid--compact .social-brand-card__icon img{width:32px;height:32px}
.contact-social-wrap{margin-top:28px;padding-top:24px;border-top:1px solid rgba(108,75,50,.13)}
.contact-social-head span{font-size:.78rem;letter-spacing:.13em;text-transform:uppercase;color:var(--aqua-dark);font-weight:950}
.contact-social-head p{margin:8px 0 0;font-size:.98rem;line-height:1.55}

.home-values-section{max-width:none;background:linear-gradient(145deg,rgba(232,219,200,.43),rgba(220,239,235,.48));padding-left:clamp(18px,5vw,70px);padding-right:clamp(18px,5vw,70px)}
.home-values-intro{max-width:1240px;margin:0 auto 34px}
.home-values-intro h2{max-width:820px}
.home-values-grid{max-width:1240px;margin:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.home-value-card{position:relative;padding:30px;border-radius:28px;background:rgba(255,253,248,.88);border:1px solid rgba(108,75,50,.12);box-shadow:0 18px 48px rgba(63,47,36,.09);overflow:hidden}
.home-value-card span{display:block;font-size:.8rem;font-weight:1000;letter-spacing:.15em;color:var(--aqua-dark);margin-bottom:30px}
.home-value-card h3{font-size:1.45rem;margin-bottom:12px}
.home-value-card p{font-size:1rem;margin:0}
.home-value-card::after{content:"";position:absolute;right:-32px;bottom:-44px;width:130px;height:130px;border-radius:50%;background:var(--aqua-soft);opacity:.65}

.reviews-page-head{padding-bottom:clamp(54px,7vw,86px)}
.reviews-rating-hero{padding-top:0;margin-top:-38px;position:relative;z-index:2}
.reviews-rating-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:40px;align-items:center;padding:clamp(28px,4vw,48px);border-radius:36px;background:linear-gradient(120deg,var(--wood-dark),var(--wood) 62%,var(--aqua-dark));box-shadow:0 30px 80px rgba(63,47,36,.25);color:#fff}
.reviews-rating-panel h2,.reviews-rating-panel .eyebrow{color:#fff}
.reviews-rating-panel p{color:rgba(255,255,255,.74);margin-bottom:0}
.reviews-rating-panel__score{display:grid;grid-template-columns:auto 1fr;column-gap:18px;align-items:center;min-width:290px;padding:22px;border-radius:28px;background:rgba(255,253,248,.96);color:var(--wood-dark)}
.reviews-rating-panel__score>span{grid-row:span 2;display:grid;place-items:center;width:92px;height:92px;border-radius:24px 24px 24px 7px;background:var(--aqua);color:#fff;font-size:2.4rem;font-weight:1000}
.reviews-rating-panel__score strong{font-family:Georgia,"Times New Roman",serif;font-size:1.85rem}
.reviews-rating-panel__score small{color:var(--muted)}
.reviews-grid-premium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.review-card-premium{position:relative;display:flex;flex-direction:column;min-height:280px;padding:30px;border-radius:28px;background:linear-gradient(150deg,rgba(255,253,248,.98),rgba(248,243,232,.78));border:1px solid rgba(108,75,50,.14);box-shadow:0 18px 52px rgba(63,47,36,.10)}
.review-quote{font-family:Georgia,"Times New Roman",serif;font-size:5rem;line-height:.6;color:var(--aqua);opacity:.62}
.review-card-premium p{font-family:Georgia,"Times New Roman",serif;color:var(--wood-dark);font-size:1.16rem;line-height:1.65;flex:1}
.review-author{display:grid;gap:4px;padding-top:18px;border-top:1px solid rgba(108,75,50,.12)}
.review-author strong{color:var(--wood-dark)}
.review-author span{font-size:.85rem;color:var(--muted)}
.review-card-premium--placeholder{grid-column:1/-1;min-height:190px;max-width:720px;margin:auto;width:100%;text-align:center;align-items:center}

.footer{background:linear-gradient(120deg,#34271e,#5b402d 60%,#337c75);padding:42px 20px;border-top:4px solid rgba(85,166,157,.55)}
.footer__main--highlight{display:grid;gap:14px;justify-items:center}
.footer-social{display:flex;gap:10px;justify-content:center;margin:0}
.footer-social a{display:inline-flex;align-items:center;gap:8px;padding:9px 13px;border-radius:999px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);color:#fff;transition:background .2s ease,transform .2s ease}
.footer-social a:hover{background:rgba(255,255,255,.17);transform:translateY(-2px)}
.footer-social img{width:24px;height:24px;filter:brightness(0) invert(1)}
.footer-social span{font-size:.86rem;font-weight:850}

input,textarea,select{border-color:rgba(108,75,50,.20);background:rgba(255,253,248,.96)}
input:focus,textarea:focus,select:focus{outline:3px solid rgba(85,166,157,.17);border-color:var(--aqua)}
.room-card__label{background:linear-gradient(135deg,var(--aqua-dark),var(--aqua))}
.room-specs span,.amenities-list span{border-color:rgba(85,166,157,.23);background:rgba(220,239,235,.62);color:var(--aqua-dark)}
.feature-strip span{background:linear-gradient(145deg,var(--wood-dark),var(--wood))}

@media(max-width:1000px){
  .hero{grid-template-columns:1fr;min-height:auto;align-items:start}
  .hero-brand-stack{max-width:560px}
  .home-review-highlight .home-booking-strip__inner{grid-template-columns:1fr}
  .home-rating-card{max-width:650px}
  .social-brand-grid,.home-values-grid,.reviews-grid-premium{grid-template-columns:1fr 1fr}
  .reviews-rating-panel{grid-template-columns:1fr}
  .reviews-rating-panel__score{width:min(100%,420px)}
}

@media(max-width:720px){
  .header{padding:10px 16px}
  .logo--image img{height:46px;max-width:125px}
  .menu{top:72px;background:rgba(255,253,248,.98);border:1px solid rgba(108,75,50,.12)}
  .hero{padding-top:58px;padding-bottom:70px}
  .home-title__main{font-size:clamp(2.2rem,12vw,3.9rem)}
  .home-title__brand{font-size:clamp(3.5rem,18vw,6rem)}
  .hero-proof span{width:100%;text-align:center}
  .home-experience-title{display:grid;gap:10px}
  .home-experience-title span{font-size:clamp(2.6rem,15vw,4.5rem)}
  .home-experience-title em{font-size:clamp(1.5rem,8vw,2.45rem)}
  .simple-photo-section{border-radius:28px;padding:16px}
  .home-review-highlight{padding-top:72px;padding-bottom:72px}
  .home-rating-card__body{align-items:flex-start;flex-direction:column}
  .home-rating-score{min-width:96px;width:96px;height:96px;font-size:2.4rem}
  .social-brand-grid,.home-values-grid,.reviews-grid-premium{grid-template-columns:1fr}
  .social-brand-card{grid-template-columns:54px 1fr auto;padding:16px;min-height:105px;border-radius:23px}
  .social-brand-card__icon{width:54px;height:54px;border-radius:18px}
  .social-brand-card__icon img{width:35px;height:35px}
  .social-brand-card__copy small{font-size:.8rem}
  .home-value-card{padding:24px}
  .reviews-rating-panel{padding:24px;border-radius:28px}
  .reviews-rating-panel__score{min-width:0;grid-template-columns:auto 1fr;padding:16px}
  .reviews-rating-panel__score>span{width:78px;height:78px;font-size:2rem}
  .reviews-rating-panel__score strong{font-size:1.45rem}
  .footer-social{flex-wrap:wrap}
  .footer-social a{padding:8px 10px}
}

@media(max-width:420px){
  .social-brand-card__copy small{display:none}
  .social-brand-card{grid-template-columns:48px 1fr auto}
  .social-brand-card__icon{width:48px;height:48px}
  .home-rating-card{padding:20px;border-radius:26px}
  .home-rating-card__top{align-items:flex-start;flex-direction:column}
  .home-rating-card__footer{align-items:flex-start;flex-direction:column}
}

/* Review cards - final content */
.review-highlights{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:-6px auto 32px}
.review-highlights span{padding:10px 16px;border-radius:999px;background:rgba(220,239,235,.72);border:1px solid rgba(85,166,157,.25);color:var(--aqua-dark);font-weight:850}
.review-card-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:22px}
.review-card-head>div{display:grid;gap:4px}.review-card-head strong{font-size:1.15rem;color:var(--wood-dark)}
.review-card-head span{font-size:.82rem;color:var(--muted)}
.review-card-head b{display:grid;place-items:center;min-width:62px;height:58px;padding:0 11px;border-radius:18px 18px 18px 5px;background:linear-gradient(135deg,var(--aqua-dark),var(--aqua));color:#fff;font-size:1.35rem}
.review-card-premium h3{margin:0 0 14px;font-family:Georgia,"Times New Roman",serif;font-size:1.35rem;color:var(--wood-dark)}
.review-card-premium--featured{grid-column:span 2;background:linear-gradient(145deg,#fffdf8,#eaf4ef)}
.review-card-premium--wide{grid-column:span 2}
.review-card-premium--rating{min-height:220px;background:linear-gradient(150deg,rgba(255,253,248,.97),rgba(232,219,200,.45))}
.review-card-premium--rating p{font-family:inherit;font-size:.95rem;color:var(--muted);font-style:italic}
.reviews-source-note{max-width:880px;margin:28px auto 0;text-align:center;font-size:.83rem;color:var(--muted)}
@media(max-width:900px){.review-card-premium--featured,.review-card-premium--wide{grid-column:auto}}


/* =========================================================
   v80 - Contatti diretti: WhatsApp e chiamate
   ========================================================= */
.floating-whatsapp.floating-contact{
  background:linear-gradient(135deg,#25d366,#128c7e)!important;
  color:#fff!important;
  border-color:rgba(255,255,255,.5)!important;
  box-shadow:0 16px 36px rgba(18,140,126,.3)!important;
}
.floating-whatsapp.floating-contact:hover{
  background:linear-gradient(135deg,#20c35d,#0e7f70)!important;
  color:#fff!important;
}
.contact-actions-v80{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.contact-actions-v80 .contact-action{
  min-height:54px;
}
.contact-action--phone{
  background:linear-gradient(135deg,#2f8f88,#1f6f6a);
  color:#fff;
  box-shadow:0 14px 30px rgba(47,143,136,.22);
}
.contact-action--phone:hover{
  color:#fff;
  transform:translateY(-3px);
  box-shadow:0 18px 36px rgba(47,143,136,.3);
}
.contact-action--email{
  background:linear-gradient(135deg,#8a6840,#684b2d);
  color:#fff;
  box-shadow:0 14px 30px rgba(104,75,45,.2);
}
.contact-action--email:hover{
  color:#fff;
  transform:translateY(-3px);
}
.contact-info-list a{
  color:inherit;
  font-weight:900;
  text-decoration:underline;
  text-underline-offset:3px;
}
@media(max-width:720px){
  .contact-actions-v80{grid-template-columns:1fr;}
}


/* =========================================================
   v81 - Pulsante WhatsApp trascinabile su smartphone
   ========================================================= */
@media(max-width:760px){
  .floating-whatsapp.is-draggable{
    left:var(--wa-left) !important;
    top:var(--wa-top) !important;
    right:auto !important;
    bottom:auto !important;
    touch-action:none !important;
    user-select:none !important;
    -webkit-user-select:none !important;
    -webkit-touch-callout:none !important;
    cursor:grab;
    will-change:left,top,transform;
    transition:box-shadow .18s ease, transform .18s ease !important;
  }

  .floating-whatsapp.is-draggable.is-dragging{
    cursor:grabbing;
    transform:scale(1.06) !important;
    box-shadow:0 22px 46px rgba(18,140,126,.42) !important;
    transition:none !important;
  }

  .floating-whatsapp.is-draggable:not(.is-dragging):active{
    transform:scale(.96) !important;
  }
}

/* CTA spazi esterni nella pagina Camere */
.room-exterior-actions {
  justify-content: center;
  margin-top: clamp(1.5rem, 3vw, 2.5rem);
}

/* =========================================================
   v82 - Mobile hardening: iPhone Safari, Samsung Internet,
   Android Chrome e layout Camere semplificato su telefono
   ========================================================= */
html,
body{
  width:100%;
  max-width:100%;
  overflow-x:clip;
}
@supports not (overflow:clip){
  html,
  body{overflow-x:hidden;}
}
body{
  min-height:100vh;
  min-height:100dvh;
}

/* Evita che contenuti lunghi, media e controlli allarghino la pagina. */
main,
header,
footer,
section,
article,
nav,
form,
fieldset,
figure,
.page-content,
.section,
.page-head,
.hero,
.hero-real,
.room-showcase-grid,
.room-card-home24,
.room-card__copy,
.room-card__media,
.booking-grid,
.booking-calendar-panel,
.booking-form-card,
.contact-layout,
.location-layout,
.reviews-grid-premium,
.social-brand-grid{
  min-width:0;
  max-width:100%;
}
img,
picture,
video,
canvas,
svg,
iframe{
  display:block;
  max-width:100%;
}
iframe{width:100%;}

h1,h2,h3,h4,p,li,label,summary,figcaption,
a,button,input,select,textarea{
  overflow-wrap:break-word;
  word-wrap:break-word;
}

/* Target touch affidabili e nessun ritardo del tap. */
a,
button,
.btn,
.contact-action,
.social-links a,
.social-brand-card,
.category-gallery-card__cta,
.calendar-btn,
.photo-lightbox__close,
.photo-lightbox__arrow{
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}
button,
.btn,
.contact-action,
.menu a,
.social-links a,
.category-gallery-card__cta{
  min-height:44px;
}
button,
.btn,
.contact-action,
.menu a,
.social-links a{
  position:relative;
  cursor:pointer;
}
button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible{
  outline:3px solid rgba(51,124,117,.42);
  outline-offset:3px;
}
input,
select,
textarea,
button{
  max-width:100%;
}
input,
select,
textarea{
  min-width:0;
}

/* Safe area per iPhone con notch e barra Home. */
.header{
  padding-left:calc(clamp(14px,4vw,56px) + env(safe-area-inset-left));
  padding-right:calc(clamp(14px,4vw,56px) + env(safe-area-inset-right));
  padding-top:calc(10px + env(safe-area-inset-top));
  z-index:3000;
}
.footer{
  padding-left:calc(16px + env(safe-area-inset-left));
  padding-right:calc(16px + env(safe-area-inset-right));
  padding-bottom:calc(28px + env(safe-area-inset-bottom));
}

/* Navigazione compatta anche sui telefoni larghi e in orizzontale. */
@media(max-width:900px){
  .header{
    min-height:68px;
    gap:12px;
  }
  .menu-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 48px;
    width:48px;
    height:48px;
    padding:0;
    border-radius:15px;
    background:rgba(220,239,235,.72);
    border:1px solid rgba(51,124,117,.18);
    z-index:3002;
  }
  .menu{
    display:none;
    position:fixed;
    top:calc(76px + env(safe-area-inset-top));
    left:calc(12px + env(safe-area-inset-left));
    right:calc(12px + env(safe-area-inset-right));
    width:auto;
    max-height:calc(100vh - 92px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    max-height:calc(100dvh - 92px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    flex-direction:column;
    align-items:stretch;
    gap:4px;
    padding:12px;
    border-radius:22px;
    background:rgba(255,253,248,.985);
    border:1px solid rgba(108,75,50,.14);
    box-shadow:0 24px 70px rgba(63,47,36,.24);
    z-index:3001;
  }
  .menu.open{display:flex;}
  .menu a{
    width:100%;
    padding:12px 14px;
    border-radius:14px;
    text-align:left;
  }
  .menu a:not(.nav-cta):hover,
  .menu a:not(.nav-cta):focus-visible{
    background:rgba(220,239,235,.62);
  }
  .menu .nav-cta{text-align:center;}
}

@media(max-width:760px){
  .section,
  .page-head,
  .hero{
    width:100%;
    padding-left:calc(14px + env(safe-area-inset-left));
    padding-right:calc(14px + env(safe-area-inset-right));
  }
  .page-head{
    padding-top:clamp(56px,14vw,82px);
  }
  .section-intro{margin-bottom:22px;}
  .actions{
    width:100%;
    margin-top:20px;
  }
  .actions > .btn,
  .actions > a,
  .actions > button,
  .booking-actions > .btn,
  .contact-action-buttons > *{
    width:100%;
  }
  .btn,
  .contact-action{
    padding:13px 16px;
    line-height:1.25;
  }
  input,
  select,
  textarea{
    font-size:16px !important; /* evita lo zoom automatico di Safari iOS */
  }
}

/* Su telefono le card Camere mostrano solo ciò che serve:
   nome Room, tipologia, immagine e pulsante galleria. */
@media(max-width:760px), (max-width:950px) and (max-height:550px) and (orientation:landscape){
  .room-showcase-grid{gap:20px;}
  .room-card-home24{
    display:flex;
    flex-direction:column;
    gap:12px;
    width:100%;
    padding:16px;
    border-radius:24px;
  }
  .room-card__copy{display:contents;}
  .room-card__label{
    order:1;
    align-self:flex-start;
    margin:0;
  }
  .room-card-home24 h2{
    order:2;
    margin:0;
    font-size:clamp(1.45rem,7vw,2.05rem);
    line-height:1.08;
    letter-spacing:-.025em;
  }
  .room-card__copy > p,
  .room-card__copy > .room-specs,
  .room-card__copy > .room-beds,
  .room-card__copy > .amenities-list{
    display:none !important;
  }
  .room-card__media{
    order:3;
    width:100%;
    min-height:0 !important;
    height:auto;
    aspect-ratio:4 / 3;
    border-radius:19px;
  }
  .room-card__media img{
    width:100%;
    height:100%;
    object-fit:cover;
  }
  .room-card__media figcaption{
    left:12px;
    right:12px;
    bottom:11px;
    font-size:.9rem;
  }
  .room-card-home24 .actions{
    order:4;
    width:100%;
    margin:0;
  }
  .room-card-home24 .actions .btn{
    width:100%;
    min-height:50px;
  }
  .room-exterior-actions{
    margin-top:22px;
  }
}

/* Overlay e gallerie compatibili con le barre dinamiche di Safari. */
.photo-lightbox,
.booking-modal,
.contact-choice-modal,
.whatsapp-choice{
  width:100%;
  height:100vh;
  height:100dvh;
  padding-top:calc(10px + env(safe-area-inset-top));
  padding-right:calc(10px + env(safe-area-inset-right));
  padding-bottom:calc(10px + env(safe-area-inset-bottom));
  padding-left:calc(10px + env(safe-area-inset-left));
}
.photo-lightbox__top{
  padding-top:env(safe-area-inset-top);
}
.photo-lightbox__close,
.photo-lightbox__arrow{
  min-width:46px;
  min-height:46px;
}

/* Il pulsante WhatsApp trascinabile rispetta notch e barra Home. */
@media(max-width:760px){
  .floating-whatsapp.is-draggable{
    max-width:calc(100vw - 20px - env(safe-area-inset-left) - env(safe-area-inset-right));
  }
}

@media(max-width:390px){
  .section,
  .page-head,
  .hero{
    padding-left:calc(11px + env(safe-area-inset-left));
    padding-right:calc(11px + env(safe-area-inset-right));
  }
  .room-card-home24{padding:13px;}
  .room-card-home24 h2{font-size:1.38rem;}
  .room-card__media{border-radius:17px;}
  .footer-social a{min-width:0;}
}

@media(hover:none) and (pointer:coarse){
  .btn:hover,
  .menu a:hover,
  .social-links a:hover,
  .social-brand-card:hover,
  .room-card__media:hover img{
    transform:none;
  }
}

@media(max-width:900px){
  body.menu-open{overflow:hidden;}
}

@media(max-width:900px){
  .contact-map-link,
  .contact-info-list a{
    display:inline-flex;
    align-items:center;
    min-height:44px;
    padding:8px 0;
  }
  .calendar-btn{
    width:44px !important;
    min-width:44px !important;
    height:44px !important;
  }
}


/* =========================================================
   Home24 — FAQ interattive e menu mobile stabile (finale)
   ========================================================= */
.faq-section{padding-top:clamp(36px,6vw,72px)}
.faq-list{max-width:920px;margin:0 auto;gap:14px}
.faq-item{
  padding:0;
  overflow:hidden;
  border-radius:24px;
  background:linear-gradient(145deg,rgba(255,253,248,.98),rgba(248,243,232,.78));
  border:1px solid rgba(108,75,50,.14);
  box-shadow:0 14px 38px rgba(63,47,36,.09);
  transition:border-color .25s ease,box-shadow .25s ease,transform .25s ease;
}
.faq-item:hover{border-color:rgba(85,166,157,.38);box-shadow:0 20px 48px rgba(63,47,36,.13)}
.faq-item.is-open{border-color:rgba(51,124,117,.35);box-shadow:0 22px 54px rgba(63,47,36,.14)}
.faq-question{
  display:grid;
  grid-template-columns:minmax(0,1fr) 44px;
  align-items:center;
  gap:16px;
  width:100%;
  min-height:72px;
  padding:18px 20px;
  border:0;
  background:transparent;
  color:var(--wood-dark,var(--navy));
  text-align:left;
  font:inherit;
  font-size:clamp(1rem,1.7vw,1.14rem);
  font-weight:900;
  line-height:1.35;
  cursor:pointer;
}
.faq-question__text{min-width:0}
.faq-question__icon{
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  border-radius:14px;
  background:linear-gradient(145deg,var(--aqua-soft,#dcefeb),rgba(255,253,248,.95));
  border:1px solid rgba(51,124,117,.18);
  color:var(--aqua-dark,#337c75);
  font-size:1.55rem;
  font-weight:500;
  line-height:1;
  transition:transform .28s ease,background .28s ease,color .28s ease;
}
.faq-item.is-open .faq-question__icon{
  transform:rotate(180deg);
  background:linear-gradient(145deg,var(--aqua-dark,#337c75),var(--aqua,#55a69d));
  color:#fff;
}
.faq-answer{
  height:0;
  overflow:hidden;
  transition:height .38s cubic-bezier(.22,.8,.28,1);
}
.faq-answer__inner{padding:0 20px 20px}
.faq-answer p{
  margin:0;
  padding:18px 0 2px;
  border-top:1px solid rgba(108,75,50,.11);
  color:var(--muted);
  font-size:1rem;
  line-height:1.7;
}

@media(max-width:900px){
  html,body{overflow-x:hidden}
  body{
    padding-top:calc(68px + env(safe-area-inset-top));
  }
  .header{
    position:fixed !important;
    top:0;
    left:0;
    right:0;
    width:100%;
    transform:none !important;
    animation:none !important;
    -webkit-backdrop-filter:blur(14px);
    backdrop-filter:blur(14px);
    z-index:5000 !important;
  }
  .menu-btn{position:relative;z-index:5002}
  .menu{
    top:calc(68px + env(safe-area-inset-top)) !important;
    z-index:5001 !important;
  }
  body.menu-open,
  html.menu-open{
    overflow-x:hidden;
    overflow-y:auto;
  }
}

@media(max-width:760px){
  .faq-list{gap:12px}
  .faq-item{border-radius:20px}
  .faq-question{
    grid-template-columns:minmax(0,1fr) 40px;
    min-height:66px;
    padding:15px 15px 15px 17px;
    gap:12px;
    font-size:1rem;
  }
  .faq-question__icon{width:38px;height:38px;border-radius:13px}
  .faq-answer__inner{padding:0 17px 17px}
  .faq-answer p{padding-top:15px;font-size:.96rem;line-height:1.65}
}

@media(prefers-reduced-motion:reduce){
  .faq-answer,.faq-question__icon,.faq-item{transition:none!important}
}


/* =========================================================
   Home24 — Correzione definitiva viewport mobili / Safari iOS
   Evita testi tagliati, overflow e aree non cliccabili.
   ========================================================= */
html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  max-width:100%;
  overflow-x:hidden;
}
body{
  max-width:100%;
  overflow-x:hidden;
}
img,svg,video,canvas,iframe{
  max-width:100%;
}
.hero,
.hero__text,
.home-title,
.home-title__main,
.home-title__brand,
.page-content,
.section,
.page-head,
.panel,
.card,
.room-card-home24,
.contact-info-panel,
.contact-direct-panel,
.callback-form-panel,
.booking-calendar-panel,
.booking-form-card{
  min-width:0;
  max-width:100%;
}
.home-title__mobile-break{display:inline}

@media(max-width:760px){
  /* Titolo Home disposto su righe sicure: nessun taglio su Safari. */
  .hero__text{
    width:100%;
    overflow:visible;
  }
  .home-title{
    display:grid;
    width:100%;
    max-width:100%;
    gap:10px;
    overflow:visible;
  }
  .home-title__main{
    display:block;
    width:100%;
    max-width:100%;
    white-space:normal !important;
    overflow-wrap:normal;
    word-break:normal;
    text-wrap:balance;
    font-size:clamp(2.18rem,10.4vw,3.15rem) !important;
    line-height:1.01 !important;
    letter-spacing:-.045em !important;
  }
  .home-title__mobile-break{
    display:block;
  }
  .home-title__brand{
    display:block;
    width:auto;
    max-width:100%;
    white-space:normal;
    overflow-wrap:break-word;
    font-size:clamp(3.7rem,18vw,5.5rem) !important;
    line-height:.88 !important;
    letter-spacing:-.045em;
  }
  .hero .lead{
    max-width:100%;
    font-size:clamp(1.02rem,4.8vw,1.22rem);
    line-height:1.62;
    overflow-wrap:break-word;
  }
  .hero .actions{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    width:100%;
    gap:12px;
  }
  .hero .actions .btn{
    width:100%;
    min-width:0;
    max-width:100%;
    white-space:normal;
    overflow-wrap:break-word;
    text-align:center;
  }
  .brand-showcase{
    width:100%;
    max-width:100%;
    padding:clamp(14px,5vw,24px);
    overflow:hidden;
  }
  .brand-showcase img{
    display:block;
    width:100%;
    height:auto;
    max-width:100%;
  }
  .brand-showcase__glow{
    max-width:70vw;
    max-height:70vw;
  }

  /* Testi lunghi, email e numeri non possono allargare le card. */
  .contact-info-list,
  .contact-info-list span,
  .contact-info-list a,
  .contact-map-link,
  .footer,
  .footer a,
  .review-card,
  .faq-question__text,
  .faq-answer,
  .faq-answer p{
    min-width:0;
    max-width:100%;
    overflow-wrap:anywhere;
    word-break:normal;
  }
  .contact-info-list span{
    display:block;
    width:100%;
  }

  /* Tutti i controlli restano nel viewport e facilmente premibili. */
  .btn,
  button,
  input,
  select,
  textarea,
  .social-brand-card,
  .footer-social a{
    max-width:100%;
  }
  .btn,
  button,
  .menu a,
  .footer-social a{
    touch-action:manipulation;
    -webkit-tap-highlight-color:rgba(51,124,117,.16);
  }
  .btn{
    min-height:50px;
    white-space:normal;
    overflow-wrap:break-word;
  }
  .menu{
    width:min(92vw,390px);
    max-width:calc(100vw - 20px - env(safe-area-inset-left) - env(safe-area-inset-right));
    right:calc(10px + env(safe-area-inset-right));
    left:auto;
  }
}

@media(max-width:340px){
  .home-title__main{
    font-size:clamp(2rem,10.5vw,2.35rem) !important;
  }
  .home-title__brand{
    font-size:clamp(3.2rem,18vw,4.1rem) !important;
  }
  .hero .lead{
    font-size:1rem;
  }
}

@media(max-width:950px) and (max-height:550px) and (orientation:landscape){
  .home-title__main{
    white-space:normal !important;
    font-size:clamp(2rem,6.2vw,3rem) !important;
    line-height:1 !important;
  }
  .home-title__mobile-break{display:inline}
  .home-title__brand{
    font-size:clamp(3rem,8.5vw,4.5rem) !important;
  }
  .hero .actions{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

/* Migliore ergonomia touch per collegamenti secondari e consensi. */
@media(max-width:760px){
  .footer__privacy{
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
    min-height:44px;
    padding:10px 12px;
  }
  input[type="checkbox"]{
    width:22px !important;
    height:22px !important;
    min-width:22px;
    flex:0 0 22px;
  }
  .privacy-consent,
  .booking-confirmation{
    align-items:flex-start;
    min-height:44px;
  }
}
