
: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)),
    url("assets/napoli-vicolo.jpeg") center/cover;
  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;
}
