/* ==========================================================
   MOTION — stili per scroll fluido, scena 3D e sezioni animate
   ========================================================== */
html.motion-on{ scroll-behavior:auto; }

/* parole dei titoli dentro una maschera */
.w{ display:inline-block; overflow:hidden; vertical-align:top; padding-bottom:.08em; margin-bottom:-.08em; }
.w > i{ display:inline-block; font-style:inherit; will-change:transform; }
em .w > i, .w em{ font-style:italic; }

/* ---------------- HERO 3D ---------------- */
#hero3d{ position:absolute; inset:0; width:100%; height:100%; z-index:1; pointer-events:none; }
.hero .hero-content{ z-index:2; will-change:transform,opacity; }
.hero .hero-ornament{ height:96px; margin:.2rem 0 .6rem; letter-spacing:0; line-height:0; }
.rings-fallback{ height:100%; width:auto; display:inline-block; filter:drop-shadow(0 8px 18px rgba(0,0,0,.45)); transition:opacity .8s ease; }
.hero.has-3d .rings-fallback{ opacity:0; }
.hero-veil{ position:absolute; inset:0; z-index:3; background:var(--dark,#0e0b08); opacity:0; pointer-events:none; }
.hero-beat{
  position:absolute; inset:0; z-index:2; display:flex; flex-direction:column; align-items:center; justify-content:flex-end;
  padding-bottom:13vh; text-align:center; opacity:0; pointer-events:none;
}
.hero-beat h2{
  font-family:'Cormorant Garamond',serif; font-weight:200; color:#fff;
  font-size:clamp(2.2rem,5.2vw,4.6rem); line-height:1.05; letter-spacing:.01em;
  text-shadow:0 10px 40px rgba(0,0,0,.6);
}
.hero-beat h2 em{ color:var(--gold-l,#d4b07a); font-style:italic; }
.hero-beat p{ margin-top:1.1rem; font-size:.66rem; letter-spacing:.4em; text-transform:uppercase; color:var(--gold,#b8955a); }
.hero{ background:var(--dark,#0e0b08); }
#heroImg{ will-change:transform,opacity; }

/* ---------------- DESTINAZIONI ORIZZONTALI ---------------- */
.dest-h{ position:relative; height:100vh; overflow:hidden; background:var(--dark,#0e0b08); }
.dest-h::before{ content:''; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(ellipse at 20% 40%, rgba(184,149,90,.10), transparent 60%); }
.dest-track{
  position:absolute; left:0; top:0; height:100%;
  display:flex; align-items:center; gap:3vw; padding:0 4vw; will-change:transform;
}
.dest-head{ flex:0 0 min(34vw,460px); padding-right:2vw; }
.dest-head .eyebrow{ margin-bottom:1.2rem; }
.dest-head h2{ font-family:'Cormorant Garamond',serif; font-weight:200; font-size:clamp(2.4rem,4.6vw,4.4rem); line-height:1.05; color:#fff; margin:0 0 1.4rem; }
.dest-head h2 em{ color:var(--gold,#b8955a); font-style:italic; }
.dest-head p{ font-size:.85rem; line-height:1.9; color:rgba(255,255,255,.45); max-width:340px; }
.dest-hint{ margin-top:2.2rem; display:flex; align-items:center; gap:.8rem; font-size:.6rem; letter-spacing:.3em; text-transform:uppercase; color:rgba(255,255,255,.35); }
.dest-hint::after{ content:''; width:60px; height:1px; background:linear-gradient(90deg,var(--gold,#b8955a),transparent); animation:destHint 2.2s ease-in-out infinite; transform-origin:left; }
@keyframes destHint{ 0%,100%{ transform:scaleX(.4); } 50%{ transform:scaleX(1); } }

.dest-panel{
  flex:0 0 auto; width:min(30vw,440px); height:72vh; position:relative; overflow:hidden;
  display:block; text-decoration:none; color:inherit; transform-style:preserve-3d; will-change:transform;
  box-shadow:0 40px 80px -30px rgba(0,0,0,.8);
}
.dest-panel:nth-child(odd){ margin-top:8vh; }
.dest-panel:nth-child(even){ margin-top:-8vh; }
.dest-panel img{
  position:absolute; top:0; left:-18%; width:136%; height:100%; object-fit:cover;
  filter:brightness(.62) saturate(.95); transition:filter .8s ease;
}
.dest-panel:hover img{ filter:brightness(.85) saturate(1.05); }
.dest-panel::after{ content:''; position:absolute; inset:0; background:linear-gradient(to top, rgba(14,11,8,.92) 0%, rgba(14,11,8,.1) 55%); }
.dest-meta{ position:absolute; left:0; right:0; bottom:0; z-index:2; padding:2.2rem 2rem; }
.dest-num{ font-family:'Cormorant Garamond',serif; font-size:.9rem; letter-spacing:.3em; color:var(--gold,#b8955a); display:block; margin-bottom:.6rem; }
.dest-meta h3{ font-family:'Cormorant Garamond',serif; font-weight:300; font-size:clamp(1.9rem,2.6vw,2.7rem); color:#fff; line-height:1.05; margin:0 0 .6rem; }
.dest-meta p{ font-size:.78rem; line-height:1.7; color:rgba(255,255,255,.55); margin:0; }
.dest-meta .dest-go{ display:inline-block; margin-top:1rem; font-size:.6rem; letter-spacing:.25em; text-transform:uppercase; color:var(--gold,#b8955a); }
.dest-end{ display:flex; align-items:center; justify-content:center; background:transparent; box-shadow:none; border:1px solid rgba(184,149,90,.25); }
.dest-end::after{ display:none; }
.dest-end .dest-meta{ position:static; text-align:center; }
.dest-end h3{ font-size:clamp(1.8rem,2.4vw,2.4rem); }
.dest-progress{ position:absolute; left:4vw; right:4vw; bottom:5vh; height:1px; background:rgba(255,255,255,.08); z-index:3; }
.dest-progress i{ position:absolute; inset:0; background:var(--gold,#b8955a); transform-origin:left; transform:scaleX(0); }

@media (max-width:760px){
  .hero .hero-ornament{ height:80px; }
  .dest-head{ flex-basis:78vw; }
  .dest-panel{ width:74vw; height:62vh; }
  .dest-panel:nth-child(odd), .dest-panel:nth-child(even){ margin-top:0; }
  .dest-hint{ margin-top:1.4rem; }
}

/* logo su una riga anche su smartphone (Italien è più lungo di Italia) */
.nav-logo,.logo{ white-space:nowrap; }
@media (max-width:480px){
  .nav-logo{ font-size:1.25rem!important; } .logo{ font-size:1.05rem!important; }
  .nav-right .nav-cta{ display:none; }
}

/* riduci movimento: tutto fermo e leggibile */
html.motion-reduced .hero-beat{ display:none; }
html.motion-reduced .dest-h{ height:auto; overflow:visible; }
html.motion-reduced .dest-track{ position:static; flex-wrap:wrap; justify-content:center; padding:6rem 4vw; }
html.motion-reduced .dest-panel{ margin-top:0!important; }

/* selettore lingua nella barra della homepage */
.nav-end{ display:flex; align-items:center; gap:1.4rem; }
.nav-lang{ display:flex; align-items:center; gap:.45rem; font-size:.62rem; letter-spacing:.18em; }
.nav-lang a{ color:rgba(255,255,255,.45); text-decoration:none; transition:color .3s; }
.nav-lang a.on, .nav-lang a:hover{ color:var(--gold,#b8955a); }
.nav-lang span{ color:rgba(184,149,90,.4); font-size:.55rem; }
@media (max-width:760px){
  .nav-end .nav-cta{ display:none; }
  .nav-end{ gap:.8rem; }
  .dest-head h2{ font-size:clamp(2rem,9.5vw,2.6rem); hyphens:auto; -webkit-hyphens:auto; overflow-wrap:break-word; }
}
.nav-lang a{ text-shadow:0 1px 8px rgba(0,0,0,.45); }

/* contenuti dal pannello: nasconde il testo vecchio per un istante, finché arriva content.json */
.c-wait [data-c], .c-wait [data-k], .c-wait .testi-carousel, .c-wait [data-dest]{ visibility:hidden; }
.dest-end h3 em{ color:var(--gold,#b8955a); }
