/* =====================================================================
   DR VIAGGI — Esperienza immersiva
   Il video è lo sfondo permanente; ogni superficie qui sopra è pensata
   per restare leggibile senza mai nasconderlo.
   ===================================================================== */

/* ---------------------------------------------------------------------
   1. TOKEN DI DESIGN
   ------------------------------------------------------------------- */
:root {
  /* Colore */
  --ink:            #060B16;   /* blu notte, non nero: legge come cielo */
  --ink-soft:       #0A1220;
  --paper:          #FFFFFF;
  --grey-100:       #F4F5F7;
  --grey-300:       #C9CDD4;
  --grey-500:       #8B9099;
  --blue:           #1E6DFF;
  --blue-bright:    #6BB2FF;   /* azzurro cielo, non blu scuro */

  /* Testo sopra al video */
  --t-strong:       rgba(255,255,255,1);
  --t-base:         rgba(255,255,255,.92);
  --t-dim:          rgba(255,255,255,.68);

  /* Superfici in vetro */
  --glass:          rgba(8,18,38,.54);      /* vetro azzurrato, lascia passare il cielo */
  --glass-strong:   rgba(7,16,32,.55);
  --hairline:       rgba(255,255,255,.14);
  --hairline-soft:  rgba(255,255,255,.08);

  /* Tipografia */
  --font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;

  /* Ombra dei testi sopra al video.
     I primi due livelli sono strettissimi: disegnano un contorno scuro
     attaccato alle lettere, ed è quello che rende leggibile il bianco
     anche sopra una nuvola. Gli ultimi due aggiungono profondità.
     Un velo diffuso avrebbe lo stesso effetto solo spegnendo l'immagine. */
  --glow:
    0 0 1px  rgba(4,12,28,.58),
    0 1px 2px rgba(4,12,28,.52),
    0 2px 7px rgba(4,12,28,.42),
    0 8px 28px rgba(4,12,28,.28);

  --glow-soft:
    0 0 1px  rgba(4,12,28,.5),
    0 1px 2px rgba(4,12,28,.46),
    0 2px 8px rgba(4,12,28,.36);

  /* Movimento */
  --e-out:   cubic-bezier(0.16, 1, 0.3, 1);
  --e-soft:  cubic-bezier(0.33, 1, 0.68, 1);

  /* Sovrapposizione — una scala sola, esplicita, senza numeri sparsi.
     La navbar sta sopra a tutto tranne barra di avanzamento e preloader. */
  --z-stage:     0;
  --z-content:   1;
  --z-footer:    2;
  --z-wa:        80;
  --z-menu:      9990;
  --z-nav:       9999;
  --z-progress:  10000;
  --z-preloader: 10010;

  /* Layout */
  --maxw:    1200px;
  --gutter:  clamp(22px, 5vw, 64px);
  --nav-h:   60px;
}

/* ---------------------------------------------------------------------
   2. RESET
   ------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; padding: 0; }

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: auto; /* lo gestisce Lenis / GSAP */
}

body {
  font-family: var(--font);
  font-size: 16px;
  line-height: 1.6;
  color: var(--t-strong);
  background: var(--ink);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: 'cv11' 1, 'ss01' 1; /* alternative più eleganti di Inter */
  text-rendering: optimizeLegibility;
}

body.is-locked { overflow: hidden; }

img, svg, video { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; color: inherit; }
button { background: none; border: 0; cursor: pointer; }
address { font-style: normal; }
ul { list-style: none; }

::selection { background: var(--blue); color: #fff; }

:focus-visible {
  outline: 2px solid var(--blue-bright);
  outline-offset: 3px;
  border-radius: 4px;
}

.visually-hidden {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}


/* ---------------------------------------------------------------------
   3. MARCHIO
   ------------------------------------------------------------------- */

/* Il logo porta con sé un alone azzurro pensato per fondi scuri.
   Sopra al cielo chiaro serve invece un'ombra che lo stacchi:
   è quella che gli dà l'aria di stare sospeso davanti al finestrino. */
.hero__mark {
  display: block;
  margin: 0 auto;
  width: clamp(210px, 30vw, 400px);
  filter:
    drop-shadow(0 10px 34px rgba(4,14,34,.42))
    drop-shadow(0 2px 6px rgba(4,14,34,.28));
}

.hero__mark img {
  width: 100%;
  height: auto;
  /* Sei pixel in dodici secondi: non si nota guardando, si sente.
     Sta sul figlio e non sul contenitore, perché quello lo muove GSAP. */
  animation: sospeso 12s cubic-bezier(0.45,0,0.55,1) infinite;
}

/* Un'animazione CSS continua a girare anche quando l'elemento è
   invisibile. Superata la hero il marchio e la freccia non si vedono
   più: metterli in pausa restituisce fotogrammi allo scrubbing. */
body.is-scrolled .hero__mark img,
body.is-scrolled .scrollcue svg { animation-play-state: paused; }

@keyframes sospeso {
  0%, 100% { transform: translateY(-5px); }
  50%      { transform: translateY(5px); }
}

/* La scritta sta attaccata al marchio, come nel logo con testo, ma
   senza il rettangolo: sul cielo il nero pesava. A tenerla leggibile
   ci pensa il contorno dell'ombra. */
.lockup {
  margin-top: clamp(6px, 1vw, 14px);
  line-height: 1;
}

.lockup__plate {
  display: inline-block;
  color: #fff;
  font-weight: 700;
  font-size: clamp(1.5rem, 3.8vw, 3rem);
  letter-spacing: .14em;
  line-height: 1;
  padding-left: .14em;              /* la spaziatura lascia un vuoto a destra */
  text-shadow:
    0 0 1px  rgba(4,12,28,.62),
    0 1px 2px rgba(4,12,28,.58),
    0 3px 12px rgba(4,12,28,.48),
    0 10px 40px rgba(4,12,28,.34);
}


/* ---------------------------------------------------------------------
   4. PRELOADER
   ------------------------------------------------------------------- */
.preloader {
  position: fixed;
  inset: 0;
  z-index: var(--z-preloader);
  background: var(--ink);
  display: grid;
  place-items: center;
}

.preloader__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 26px;
}

.preloader__logo {
  opacity: 0;
  animation: preIn 1.1s var(--e-out) .1s forwards;
}

.preloader__logo img {
  width: 96px;
  height: auto;
}

.preloader__track {
  position: relative;
  width: 190px;
  height: 1.5px;
  background: rgba(255,255,255,.13);
  overflow: hidden;
  opacity: 0;
  animation: preIn .9s var(--e-out) .28s forwards;
}

.preloader__fill {
  position: absolute;
  inset: 0 auto 0 0;
  width: 0%;
  background: linear-gradient(90deg, var(--blue), #fff);
  transition: width .35s var(--e-soft);
}

.preloader__pct {
  font-size: .68rem;
  font-weight: 500;
  letter-spacing: .2em;
  color: var(--t-dim);
  font-variant-numeric: tabular-nums;
  opacity: 0;
  animation: preIn .9s var(--e-out) .4s forwards;
}

@keyframes preIn { to { opacity: 1; } }


/* ---------------------------------------------------------------------
   4b. BARRA DI AVANZAMENTO
   Due pixel in cima alla finestra. Deve leggersi con la coda
   dell'occhio, mai attirare lo sguardo.
   ------------------------------------------------------------------- */
.progress {
  position: fixed;
  top: 0; left: 0; right: 0;
  height: 2px;
  z-index: var(--z-progress);
  background: rgba(255,255,255,.06);
  pointer-events: none;
  opacity: 0;
  transition: opacity .6s var(--e-soft);
}

.progress.is-live { opacity: 1; }

.progress__fill {
  display: block;
  height: 100%;
  width: 100%;
  transform: scaleX(0);
  transform-origin: left center;
  background: linear-gradient(90deg, var(--blue) 0%, var(--blue-bright) 55%, #ffffff 100%);
  box-shadow: 0 0 12px rgba(91,140,255,.5);
  will-change: transform;
}


/* ---------------------------------------------------------------------
   5. IL VIDEO — sfondo fisso, sempre presente
   ------------------------------------------------------------------- */
.stage {
  position: fixed;
  inset: 0;
  z-index: var(--z-stage);
  background: var(--ink);
  overflow: hidden;
}

.stage__video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  /* micro-zoom: elimina eventuali bordi durante il seeking */
  transform: scale(1.02);
}

/* Scrim verticale: protegge navbar e piede senza spegnere l'immagine */
.stage__scrim {
  position: absolute;
  inset: 0;
  pointer-events: none;
  /* Solo due fasce: una in alto per la navbar, una in basso per il
     raccordo col footer. In mezzo il video resta scoperto.
     La tinta è blu, non nera: sopra un cielo legge come atmosfera. */
  background:
    linear-gradient(180deg,
      rgba(6,14,30,.28) 0%,
      rgba(6,14,30,.05) 13%,
      rgba(6,14,30,.04) 34%,
      rgba(6,14,30,.04) 64%,
      rgba(6,14,30,.09) 86%,
      rgba(6,14,30,.30) 100%);
}

/* Vignettatura morbida: porta l'occhio al centro, sapore cinematografico */
.stage__vignette {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(135% 105% at 50% 45%,
      rgba(4,10,22,0)   62%,
      rgba(4,10,22,.06) 86%,
      rgba(4,10,22,.18) 100%);
}


/* ---------------------------------------------------------------------
   6. NAVBAR
   ------------------------------------------------------------------- */
.nav {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: var(--z-nav);
  height: var(--nav-h);
  display: flex;
  align-items: center;

  /* Stato di partenza: presente nel DOM ma fuori campo.
     Chi comanda questi due valori è il CSS, non JavaScript: se
     l'animazione non partisse, la classe `is-live` basterebbe
     comunque a mostrarla. GSAP aggiunge la rifinitura, non è
     il requisito per vederla. */
  opacity: 0;
  transform: translateY(-100%);
  pointer-events: none;

  background: rgba(6,8,13,.55);
  backdrop-filter: blur(22px) saturate(160%);
  -webkit-backdrop-filter: blur(22px) saturate(160%);
  border-bottom: 1px solid var(--hairline-soft);
}

.nav.is-live {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

/* Senza GSAP l'ingresso lo fa il CSS. Con GSAP la transizione resta
   spenta, altrimenti le due animazioni si darebbero fastidio. */
html.no-gsap .nav {
  transition: opacity .5s var(--e-out), transform .5s var(--e-out);
}
html.no-gsap .wa {
  transition: opacity .55s var(--e-out), transform .55s var(--e-out);
}

/* Tre colonne: marchio a sinistra, voci al centro, lingua a destra.
   È la griglia che dà alla barra quell'equilibrio da sito Apple. */
.nav__inner {
  width: 100%;
  max-width: var(--maxw);
  margin-inline: auto;
  padding-inline: var(--gutter);
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 24px;
}

.nav__logo {
  justify-self: start;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  transition: opacity .4s var(--e-soft);
}

.nav__logo img {
  height: 30px;
  width: auto;
  /* l'alone del logo è tarato sul buio: qui lo teniamo appena percettibile */
  filter: drop-shadow(0 1px 4px rgba(0,0,0,.35));
}

.nav__logo-text {
  font-size: .82rem;
  font-weight: 600;
  letter-spacing: .14em;
  white-space: nowrap;
}

.nav__logo:hover { opacity: .78; }

.nav__links {
  display: flex;
  align-items: center;
  gap: 36px;
  justify-self: center;
}

.nav__end {
  display: flex;
  align-items: center;
  gap: 14px;
  justify-self: end;
}

.nav__links a {
  position: relative;
  font-size: .875rem;
  font-weight: 400;
  letter-spacing: .005em;
  color: var(--t-base);
  padding: 6px 0;
  transition: color .35s var(--e-soft);
}

/* Sottolineatura che cresce da sinistra */
.nav__links a::after {
  content: '';
  position: absolute;
  left: 0; bottom: 0;
  height: 1px; width: 100%;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .45s var(--e-out);
}

.nav__links a:hover { color: var(--t-strong); }
.nav__links a:hover::after { transform: scaleX(1); }

.nav__links a.is-active { color: var(--t-strong); }
.nav__links a.is-active::after {
  transform: scaleX(1);
  background: var(--blue-bright);
}

/* ---------------------------------------------------------------------
   6b. SELETTORE LINGUA — IT | EN | ES
   Nessun riquadro, nessun menu a tendina: tre parole separate da un
   filetto. L'attiva è bianca e porta un punto blu sotto.
   ------------------------------------------------------------------- */
.lang {
  display: flex;
  align-items: center;
  gap: 2px;
}

.lang__opt {
  position: relative;
  padding: 5px 8px 7px;
  font-size: .7rem;
  font-weight: 500;
  letter-spacing: .11em;
  color: rgba(255,255,255,.44);
  border-radius: 6px;
  transition: color .35s var(--e-soft);
}

.lang__opt:hover { color: rgba(255,255,255,.82); }

.lang__opt.is-active { color: var(--t-strong); }

/* Il punto compare crescendo, non appare di scatto */
.lang__opt::after {
  content: '';
  position: absolute;
  left: 50%; bottom: 1px;
  width: 3px; height: 3px;
  border-radius: 50%;
  background: var(--blue-bright);
  transform: translateX(-50%) scale(0);
  transition: transform .42s var(--e-out);
}

.lang__opt.is-active::after { transform: translateX(-50%) scale(1); }

.lang__sep {
  width: 1px;
  height: 10px;
  background: rgba(255,255,255,.16);
}

/* Nel menu mobile il selettore ha un po' più di respiro */
.lang--menu { margin-bottom: 4px; }
.lang--menu .lang__opt { font-size: .78rem; padding: 6px 10px 8px; }


/* Hamburger */
.nav__burger {
  display: none;
  width: 40px; height: 40px;
  margin-right: -8px;
  position: relative;
}
.nav__burger span {
  position: absolute;
  left: 10px;
  width: 20px; height: 1.5px;
  background: #fff;
  border-radius: 2px;
  transition: transform .45s var(--e-out), opacity .3s ease;
}
.nav__burger span:nth-child(1) { top: 17px; }
.nav__burger span:nth-child(2) { top: 23px; }

body.menu-open .nav__burger span:nth-child(1) { transform: translateY(3px) rotate(45deg); }
body.menu-open .nav__burger span:nth-child(2) { transform: translateY(-3px) rotate(-45deg); }


/* Menu mobile */
.menu {
  position: fixed;
  inset: 0;
  z-index: var(--z-menu);
  background: rgba(6,8,13,.9);
  backdrop-filter: blur(28px) saturate(150%);
  -webkit-backdrop-filter: blur(28px) saturate(150%);
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 40px;
  padding: var(--nav-h) var(--gutter) 48px;
  opacity: 0;
  visibility: hidden;
  transition: opacity .5s var(--e-out), visibility .5s;
}

.menu.is-open { opacity: 1; visibility: visible; }

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

.menu__links a {
  font-size: clamp(2rem, 9vw, 2.8rem);
  font-weight: 500;
  letter-spacing: -.03em;
  line-height: 1.28;
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .55s var(--e-out), transform .55s var(--e-out);
}

.menu.is-open .menu__links a { opacity: 1; transform: none; }
.menu.is-open .menu__links a:nth-child(1) { transition-delay: .10s; }
.menu.is-open .menu__links a:nth-child(2) { transition-delay: .16s; }
.menu.is-open .menu__links a:nth-child(3) { transition-delay: .22s; }
.menu.is-open .menu__links a:nth-child(4) { transition-delay: .28s; }

.menu__foot {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  font-size: .92rem;
  color: var(--t-dim);
  padding-top: 26px;
  border-top: 1px solid var(--hairline-soft);
}


/* ---------------------------------------------------------------------
   7. WHATSAPP FLOTTANTE
   ------------------------------------------------------------------- */
.wa {
  position: fixed;
  right: clamp(18px, 3vw, 30px);
  bottom: clamp(18px, 3vw, 30px);
  z-index: var(--z-wa);
  width: 56px; height: 56px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: #25D366;
  box-shadow: 0 10px 34px rgba(37,211,102,.34), 0 2px 8px rgba(0,0,0,.2);
  /* stato iniziale: invisibile */
  opacity: 0;
  transform: translateY(20px) scale(.85);
  pointer-events: none;
  transition: box-shadow .4s var(--e-soft);
}

.wa.is-live {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}

.wa__mark { position: relative; z-index: 1; }

/* Alone che respira — micro-animazione discreta */
.wa__pulse {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: #25D366;
  opacity: .5;
  animation: waPulse 2.8s var(--e-soft) infinite;
}

@keyframes waPulse {
  0%   { transform: scale(1);   opacity: .45; }
  70%  { transform: scale(1.5); opacity: 0; }
  100% { transform: scale(1.5); opacity: 0; }
}

.wa:hover { box-shadow: 0 16px 44px rgba(37,211,102,.48), 0 2px 8px rgba(0,0,0,.2); }


/* ---------------------------------------------------------------------
   8. PANNELLI — fullscreen, trasparenti, il video resta dietro
   ------------------------------------------------------------------- */
main { position: relative; z-index: var(--z-content); }

.panel {
  position: relative;
  min-height: 100svh;
  display: grid;
  align-items: center;
  padding-block: 120px;
}

/* Velo di leggibilità.
   Non copre la sezione: abbraccia soltanto il blocco di testo, con
   bordi sfumati e tinta blu. Fuori da lì l'immagine resta piena.
   È la differenza fra "sito scuro" e "testo leggibile su un cielo
   luminoso": il velo segue le parole invece di spegnere la scena. */
.panel__content,
.panel__head {
  position: relative;
  isolation: isolate;      /* tiene lo z-index negativo dentro al blocco */
}

.panel__content::before,
.panel__head::before {
  content: '';
  position: absolute;
  inset: -46% -22%;
  z-index: -1;
  pointer-events: none;
  /* I raggi sono al 50%: così il gradiente arriva a zero esattamente
     sul bordo del riquadro. Con valori più alti resterebbe visibile
     uno stacco netto — un rettangolo scuro sospeso sul cielo. */
  background: radial-gradient(50% 50% at 50% 50%,
      rgba(4,12,28,.54) 0%,
      rgba(4,12,28,.50) 36%,
      rgba(4,12,28,.35) 58%,
      rgba(4,12,28,.13) 79%,
      rgba(4,12,28,0)   100%);
}

/* Nella sezione delle card il velo serve solo alla testata:
   le card hanno già il proprio vetro. */
#perche .panel__content::before { display: none; }
#chi-siamo .panel__content::before {
  inset: -30% -34% -46% -34%;
  /* Qui sotto c'è il bianco pieno delle nuvole: serve un filo in più
     che nelle altre sezioni sarebbe solo grigio sprecato. */
  background: radial-gradient(50% 50% at 50% 50%,
      rgba(4,12,28,.64) 0%,
      rgba(4,12,28,.60) 36%,
      rgba(4,12,28,.43) 58%,
      rgba(4,12,28,.16) 79%,
      rgba(4,12,28,0)   100%);
}
#perche .panel__head::before    { inset: -150% -24%; }

/* La hero è la prima impressione: il marchio deve stare nella luce.
   Qui il velo è il più leggero di tutto il sito. */
#hero .panel__content::before {
  /* Riquadro spostato in basso: il marchio, che sta in cima, resta
     nella luce piena; il velo si concentra dove ci sono le parole. */
  inset: 2% -16% -52% -16%;
  background: radial-gradient(50% 50% at 50% 50%,
      rgba(4,12,28,.50) 0%,
      rgba(4,12,28,.46) 38%,
      rgba(4,12,28,.30) 62%,
      rgba(4,12,28,.10) 82%,
      rgba(4,12,28,0)   100%);
}

/* Contatti e newsletter stanno su un cielo già scuro: lì basta poco. */
#contatti .panel__content::before,
#newsletter .panel__content::before {
  background: radial-gradient(50% 50% at 50% 50%,
      rgba(4,12,28,.28) 0%,
      rgba(4,12,28,.24) 42%,
      rgba(4,12,28,.13) 68%,
      rgba(4,12,28,0)   100%);
}

.panel__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: var(--maxw);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

.panel__content { max-width: 900px; }
.panel__content--narrow { max-width: 660px; }
.panel__content--wide   { max-width: 100%; }
.panel__content--center { margin-inline: auto; text-align: center; }

.panel__head { margin-bottom: clamp(38px, 5vw, 62px); }




/* ---------------------------------------------------------------------
   9. TIPOGRAFIA
   ------------------------------------------------------------------- */
.display {
  font-size: clamp(3.1rem, 10vw, 7.4rem);
  font-weight: 600;
  letter-spacing: -.045em;
  line-height: .94;
  text-wrap: balance;   /* righe di lunghezza omogenea dove supportato */
  text-shadow: var(--glow);
}

.title {
  font-size: clamp(1.8rem, 4.6vw, 3.5rem);
  font-weight: 600;
  letter-spacing: -.032em;
  line-height: 1.08;
  text-wrap: balance;
  text-shadow: var(--glow);
}

.eyebrow {
  display: inline-block;
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: #0C2A57;
  margin-bottom: 26px;

  /* Targhetta chiara, non nera: su un cielo luminoso il blu scuro su
     bianco stacca più del bianco su nero, e soprattutto non spegne la
     scena. Il contrasto sale, la sensazione resta estiva. */
  padding: .52em 1em .46em 1.1em;   /* la spaziatura lascia un vuoto a destra */
  border-radius: 100px;
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(255,255,255,.7);
  box-shadow: 0 4px 18px rgba(4,14,34,.22);
  text-shadow: none;
}

.lede {
  margin-top: clamp(28px, 3.4vw, 40px);
  font-size: clamp(1.05rem, 1.75vw, 1.36rem);
  font-weight: 400;
  line-height: 1.55;
  color: var(--t-base);
  text-shadow: var(--glow-soft);
  max-width: 36ch;
  margin-inline: auto;
}

.lede__accent {
  display: block;
  color: var(--t-strong);
  font-weight: 500;
  margin-top: 4px;
}

.body {
  margin-top: 24px;
  font-size: clamp(1.02rem, 1.4vw, 1.12rem);
  font-weight: 400;
  line-height: 1.75;
  text-wrap: pretty;    /* evita le parole isolate a fine paragrafo */
  color: var(--t-base);
  text-shadow: var(--glow-soft);
  max-width: 56ch;
}

.body--center { margin-inline: auto; }

/* Le andate a capo dei titoli valgono solo dove c'è spazio:
   su schermi stretti il testo si dispone da solo, meglio. */
.br-lg { display: inline; }


/* ---------------------------------------------------------------------
   10. HERO
   ------------------------------------------------------------------- */
.hero__actions { margin-top: clamp(36px, 4.5vw, 56px); }

/* Indicatore di scorrimento */
.scrollcue {
  position: absolute;
  left: 50%;
  bottom: 42px;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  color: var(--t-dim);
  font-size: .66rem;
  font-weight: 500;
  letter-spacing: .26em;
  text-transform: uppercase;
}

.scrollcue svg { animation: cueFloat 2.4s var(--e-soft) infinite; }

@keyframes cueFloat {
  0%, 100% { transform: translateY(-3px); opacity: .55; }
  50%      { transform: translateY(4px);  opacity: 1; }
}


/* ---------------------------------------------------------------------
   11. BOTTONI
   ------------------------------------------------------------------- */
.btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  height: 52px;
  padding-inline: 30px;
  border-radius: 100px;
  font-size: .93rem;
  font-weight: 500;
  letter-spacing: .002em;
  white-space: nowrap;
  overflow: hidden;
  transition: transform .5s var(--e-out), box-shadow .5s var(--e-out),
              background-color .4s var(--e-soft), color .4s var(--e-soft),
              border-color .4s var(--e-soft);
}

.btn svg { flex: none; transition: transform .5s var(--e-out); }

.btn--light {
  background: #fff;
  color: var(--ink);
  box-shadow: 0 8px 30px rgba(0,0,0,.24);
}
.btn--light:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 44px rgba(0,0,0,.32);
}
.btn--light:hover svg { transform: translateX(4px); }

.btn--wa {
  background: #fff;
  color: var(--ink);
  box-shadow: 0 8px 30px rgba(0,0,0,.24);
}
.btn--wa svg { color: #25D366; }
.btn--wa:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 44px rgba(0,0,0,.32);
}

.btn--ghost {
  height: 46px;
  padding-inline: 24px;
  font-size: .875rem;
  color: var(--t-strong);
  border: 1px solid var(--hairline);
  background: rgba(255,255,255,.05);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
.btn--ghost:hover {
  transform: translateY(-2px);
  border-color: rgba(255,255,255,.34);
  background: rgba(255,255,255,.12);
}
.btn--ghost:hover svg { transform: translate(3px, -3px); }


/* ---------------------------------------------------------------------
   12. CIFRE (Chi siamo)
   ------------------------------------------------------------------- */
.figures {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(24px, 4.4vw, 52px);
  margin-top: clamp(28px, 3.4vw, 40px);

  padding-top: 26px;
  border-top: 1px solid rgba(255,255,255,.22);
  position: relative;
  isolation: isolate;
}

/* La riga cade in fondo al blocco, dove il velo del testo non arriva.
   Invece di un pannello — che come forma si vedeva — si porta dietro
   lo stesso tipo di alone sfumato usato per i testi: legge come foschia,
   non come un riquadro. */
.figures::before {
  content: '';
  position: absolute;
  inset: -60% -34%;
  z-index: -1;
  pointer-events: none;
  background: radial-gradient(50% 50% at 50% 50%,
      rgba(4,12,28,.72) 0%,
      rgba(4,12,28,.66) 40%,
      rgba(4,12,28,.40) 66%,
      rgba(4,12,28,0)   100%);
}

.figures li { display: flex; flex-direction: column; gap: 3px; }

.figures strong {
  font-size: clamp(1.2rem, 2vw, 1.5rem);
  font-weight: 700;
  letter-spacing: -.02em;
  color: #fff;
  text-shadow: var(--glow-soft);
}

.figures span {
  font-size: .78rem;
  font-weight: 400;
  letter-spacing: .04em;
  color: rgba(255,255,255,.9);
  text-shadow: var(--glow-soft);
}


/* ---------------------------------------------------------------------
   13. CARD IN VETRO (Perché noi)
   ------------------------------------------------------------------- */
.cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.card {
  position: relative;
  padding: 34px 30px 36px;
  border-radius: 22px;
  background: var(--glass);
  border: 1px solid var(--hairline);
  backdrop-filter: blur(22px) saturate(150%);
  -webkit-backdrop-filter: blur(22px) saturate(150%);
  overflow: hidden;
  transition: transform .6s var(--e-out), border-color .5s var(--e-soft),
              background-color .5s var(--e-soft), box-shadow .6s var(--e-out);
}

/* Riflesso in alto: dà spessore al vetro */
.card::before {
  content: '';
  position: absolute;
  inset: 0 0 auto 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.3), transparent);
}

.card:hover {
  transform: translateY(-6px);
  background: rgba(8,18,38,.52);
  border-color: rgba(255,255,255,.26);
  box-shadow: 0 24px 60px rgba(0,0,0,.34);
}

.card__icon {
  width: 48px; height: 48px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  margin-bottom: 24px;
  color: var(--blue-bright);
  background: rgba(91,140,255,.14);
  border: 1px solid rgba(91,140,255,.24);
  transition: transform .6s var(--e-out), background-color .5s var(--e-soft);
}

.card:hover .card__icon {
  transform: translateY(-2px) scale(1.06);
  background: rgba(91,140,255,.22);
}

.card h3 {
  font-size: 1.06rem;
  font-weight: 600;
  letter-spacing: -.015em;
  line-height: 1.35;
  margin-bottom: 11px;
}

.card p {
  font-size: .95rem;
  font-weight: 400;
  line-height: 1.68;
  color: var(--t-base);
}


/* ---------------------------------------------------------------------
   14. CONTATTI
   ------------------------------------------------------------------- */
.cta-row {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 14px 26px;
  margin-top: 40px;
}

.phone-link {
  font-size: 1.02rem;
  font-weight: 500;
  letter-spacing: .01em;
  color: var(--t-base);
  padding-bottom: 2px;
  border-bottom: 1px solid rgba(255,255,255,.22);
  transition: color .35s var(--e-soft), border-color .35s var(--e-soft);
}
.phone-link:hover { color: #fff; border-color: #fff; }

.place {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  margin-top: 52px;
  padding-top: 36px;
  position: relative;
}

.place::before {
  content: '';
  position: absolute;
  top: 0; left: 50%;
  transform: translateX(-50%);
  width: min(340px, 60%);
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.22), transparent);
}

.place__pin { color: var(--blue-bright); }

.place address {
  font-size: .96rem;
  font-weight: 300;
  line-height: 1.6;
  color: var(--t-base);
  text-shadow: var(--glow-soft);
}

.place .btn { margin-top: 8px; }


/* ---------------------------------------------------------------------
   15. NEWSLETTER
   ------------------------------------------------------------------- */
.subscribe { margin-top: 40px; }

.subscribe__field {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 7px 7px 8px;
  max-width: 480px;
  margin-inline: auto;
  border-radius: 100px;
  background: rgba(10,14,22,.42);
  border: 1px solid var(--hairline);
  backdrop-filter: blur(20px) saturate(150%);
  -webkit-backdrop-filter: blur(20px) saturate(150%);
  transition: border-color .4s var(--e-soft), box-shadow .4s var(--e-soft);
}

.subscribe__field:focus-within {
  border-color: rgba(91,140,255,.6);
  box-shadow: 0 0 0 4px rgba(47,107,255,.14);
}

.subscribe__field input {
  flex: 1;
  min-width: 0;
  height: 44px;
  padding-inline: 18px;
  border: 0;
  background: none;
  font-size: .95rem;
  font-weight: 300;
  color: #fff;
}

.subscribe__field input::placeholder { color: rgba(255,255,255,.44); }
.subscribe__field input:focus { outline: none; }

.subscribe__submit {
  height: 44px;
  padding-inline: 26px;
  font-size: .89rem;
  box-shadow: none;
}

.subscribe__note {
  margin-top: 16px;
  font-size: .8rem;
  font-weight: 300;
  color: var(--t-dim);
  transition: color .4s var(--e-soft);
}

.subscribe__note.is-ok    { color: #6EE7A8; }
.subscribe__note.is-error { color: #FF9A8B; }

.subscribe.is-done .subscribe__field { opacity: .45; pointer-events: none; }


/* ---------------------------------------------------------------------
   16. FOOTER — l'unica superficie con sfondo pieno
   ------------------------------------------------------------------- */
.footer {
  position: relative;
  z-index: var(--z-footer);
  background: var(--ink);
}

/* Un soffio di blu in alto: il footer nasce dal cielo, non lo interrompe */
.footer__inner { position: relative; }

/* Raccordo morbido dal video al footer: senza questa sfumatura il
   passaggio è un taglio netto e si perde la continuità del viaggio. */
.footer::before {
  content: '';
  position: absolute;
  left: 0; right: 0;
  bottom: 100%;
  height: 160px;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(6,11,22,0) 0%, rgba(6,11,22,.5) 52%, var(--ink) 100%);
}

.footer__inner {
  max-width: var(--maxw);
  margin-inline: auto;
  padding: clamp(64px, 8vw, 96px) var(--gutter) 34px;
}

.footer__col { will-change: transform, opacity; }

.footer__grid {
  display: grid;
  grid-template-columns: 1.6fr 1.25fr .85fr .85fr;
  gap: clamp(34px, 4vw, 60px);
  padding-bottom: clamp(48px, 6vw, 72px);
}

.footer__logo {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 18px;
}

.footer__logo img { height: 30px; width: auto; }

.footer__logo span {
  font-size: .82rem;
  font-weight: 600;
  letter-spacing: .14em;
}

.footer__col--brand p {
  font-size: .9rem;
  font-weight: 300;
  line-height: 1.72;
  color: var(--t-dim);
  max-width: 34ch;
}

.footer__col h4 {
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(255,255,255,.4);
  margin-bottom: 20px;
}

.footer__list { display: flex; flex-direction: column; gap: 14px; }

.footer__list li {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  font-size: .89rem;
  font-weight: 300;
  line-height: 1.6;
  color: var(--t-dim);
}

.footer__list svg {
  flex: none;
  margin-top: 3px;
  color: rgba(255,255,255,.34);
}

.footer__list a {
  color: var(--t-dim);
  transition: color .35s var(--e-soft);
}
.footer__list a:hover { color: #fff; }

.footer__list--plain { gap: 12px; }

.footer__list--plain a {
  position: relative;
  display: inline-block;
}
.footer__list--plain a::after {
  content: '';
  position: absolute;
  left: 0; bottom: -2px;
  width: 100%; height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .45s var(--e-out);
}
.footer__list--plain a:hover::after { transform: scaleX(1); }

/* Social */
.socials { display: flex; gap: 10px; }

.social {
  width: 42px; height: 42px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: rgba(255,255,255,.62);
  border: 1px solid rgba(255,255,255,.12);
  transition: transform .5s var(--e-out), color .4s var(--e-soft),
              border-color .4s var(--e-soft), background-color .4s var(--e-soft);
}

.social:hover {
  transform: translateY(-4px);
  color: #fff;
  border-color: rgba(255,255,255,.3);
  background: rgba(255,255,255,.07);
}

/* Barra inferiore: una riga sola, centrata */
.footer__bar {
  display: flex;
  align-items: center;
  justify-content: center;
  padding-top: 26px;
  border-top: 1px solid rgba(255,255,255,.07);
}

.footer__legal {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  font-size: .78rem;
  font-weight: 300;
  letter-spacing: .01em;
  color: rgba(255,255,255,.42);
}

.footer__dot { color: rgba(255,255,255,.2); }

/* Firma dello studio: piccola, sobria, professionale */
.danx {
  display: inline-flex;
  align-items: baseline;
  gap: .42em;
  font-size: inherit;
  font-weight: 300;
  letter-spacing: .01em;
  color: rgba(255,255,255,.42);
  transition: color .4s var(--e-soft);
}
.danx__name {
  font-weight: 500;
  letter-spacing: .06em;
  color: rgba(255,255,255,.55);
  transition: color .4s var(--e-soft);
}
.danx:hover { color: rgba(255,255,255,.62); }
.danx:hover .danx__name { color: #fff; }


/* ---------------------------------------------------------------------
   17. RESPONSIVE
   ------------------------------------------------------------------- */
@media (max-width: 1040px) {
  .cards { grid-template-columns: 1fr; gap: 14px; }
  .card { padding: 26px 24px 28px; }
  .card__icon { margin-bottom: 18px; }
  .footer__grid { grid-template-columns: 1fr 1fr; row-gap: 46px; }
}

@media (max-width: 860px) {
  :root { --nav-h: 56px; }
  .nav__inner { display: flex; justify-content: space-between; }
  .nav__links { display: none; }
  .nav .lang  { display: none; }   /* il selettore si sposta nel menu */
  .nav__burger { display: block; }
  .panel { padding-block: 100px; }
  .panel__content { text-align: center; margin-inline: auto; }
  .nav__logo-text { display: none; }   /* su mobile resta solo il marchio */
  .body { margin-inline: auto; }
  .figures { justify-content: center; text-align: center; }
  .figures li { align-items: center; }
  /* con il testo centrato anche l'icona deve stare al centro */
  .card__icon { margin-inline: auto; }
}

@media (max-width: 620px) {
  .br-lg { display: none; }
  .panel { padding-block: 92px; }
  .display { letter-spacing: -.035em; }
  .lede { max-width: 26ch; }
  .cards { gap: 12px; }
  .card h3 { font-size: 1rem; }
  .wa { width: 52px; height: 52px; }

  .cta-row { flex-direction: column; gap: 18px; }
  .btn { width: 100%; max-width: 320px; }

  .subscribe__field {
    flex-direction: column;
    border-radius: 22px;
    padding: 10px;
    gap: 10px;
  }
  .subscribe__field input { width: 100%; text-align: center; }
  .subscribe__submit { width: 100%; }

  .footer__grid { grid-template-columns: 1fr; row-gap: 40px; }
  .footer__legal { font-size: .74rem; gap: 8px; }
}

/* Schermi bassi: riduce il respiro verticale per non tagliare i contenuti */
@media (max-height: 680px) and (min-width: 861px) {
  .panel { padding-block: 92px; }
  .scrollcue { bottom: 26px; }
}


/* ---------------------------------------------------------------------
   18. ACCESSIBILITÀ — movimento ridotto
   ------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
  .stage__video { transform: none; }
  .wa__pulse { display: none; }
  .hero__mark img { animation: none; }
}


/* =====================================================================
   19. SMARTPHONE — blocco unico, nulla qui sotto tocca il desktop
   ---------------------------------------------------------------------
   Tutto ciò che segue vive dentro media query da 820 px in giù.
   La soglia è la stessa costante MOBILE_MQ di script.js: se cambia una,
   va cambiata anche l'altra.
   ===================================================================== */

@media (max-width: 820px) {

  /* --- Inquadratura -------------------------------------------------
     Il video mobile è già verticale (540×960) con la panoramica cotta
     dentro: parte dal montante del finestrino e si porta al centro
     mentre la clip avanza. Qui basta centrarlo.
     La variabile permette di correggere l'inquadratura senza toccare
     la regola.                                                        */
  .stage__video {
    object-position: var(--mobile-video-position, 50% 50%);
    transform: none;          /* il micro-zoom desktop qui sacrificherebbe il finestrino */
  }

  /* --- WhatsApp -----------------------------------------------------
     Visibile da subito, senza aspettare il primo scroll. Rispetta le
     safe area di iPhone e resta sopra la barra del browser.           */
  .wa {
    opacity: 1;
    transform: none;
    pointer-events: auto;
    width: 56px;              /* ben oltre i 44×44 minimi */
    height: 56px;
    right: max(16px, env(safe-area-inset-right));
    bottom: max(18px, calc(env(safe-area-inset-bottom) + 14px));
  }

  /* L'alone che pulsa è un'animazione infinita a schermo intero di
     costo non nullo: su telefono la spegniamo. */
  .wa__pulse { display: none; }

  /* --- Carico grafico ----------------------------------------------
     Le sfocature sono la voce più cara su GPU mobile. Restano, ma
     dimezzate: l'effetto vetro si legge lo stesso.                    */
  .nav        { backdrop-filter: blur(14px) saturate(140%);
                -webkit-backdrop-filter: blur(14px) saturate(140%); }
  .card       { backdrop-filter: blur(12px) saturate(130%);
                -webkit-backdrop-filter: blur(12px) saturate(130%); }
  .subscribe__field { backdrop-filter: blur(10px);
                      -webkit-backdrop-filter: blur(10px); }
  .menu       { backdrop-filter: blur(18px);
                -webkit-backdrop-filter: blur(18px); }
  .btn--ghost { backdrop-filter: none; -webkit-backdrop-filter: none;
                background: rgba(255,255,255,.12); }

  /* Il marchio smette di ondeggiare: sei pixel di movimento non si
     notano su uno schermo piccolo, ma il fotogramma va ridisegnato. */
  .hero__mark img { animation: none; }

  /* --- Altezze ------------------------------------------------------
     dvh segue la barra del browser che compare e scompare; svh è il
     ripiego per chi non lo supporta.                                  */
  .panel { min-height: 100svh; }
  @supports (height: 100dvh) { .panel { min-height: 100dvh; } }

  .menu { min-height: 100svh; }
  @supports (height: 100dvh) { .menu { min-height: 100dvh; } }

  /* --- Safe area ----------------------------------------------------- */
  .nav__inner   { padding-left: max(var(--gutter), env(safe-area-inset-left));
                  padding-right: max(var(--gutter), env(safe-area-inset-right)); }
  .panel__inner { padding-left: max(var(--gutter), env(safe-area-inset-left));
                  padding-right: max(var(--gutter), env(safe-area-inset-right)); }
  .footer__inner{ padding-left: max(var(--gutter), env(safe-area-inset-left));
                  padding-right: max(var(--gutter), env(safe-area-inset-right));
                  padding-bottom: max(34px, calc(env(safe-area-inset-bottom) + 24px)); }
  .menu         { padding-bottom: max(48px, calc(env(safe-area-inset-bottom) + 28px)); }

  /* --- Niente scorrimento laterale ---------------------------------- */
  html, body { max-width: 100%; overflow-x: hidden; }
  .panel__content::before,
  .panel__head::before,
  .figures::before { left: -8%; right: -8%; }   /* gli aloni non spingono la pagina */

  /* --- Aree toccabili: minimo 44×44 ---------------------------------- */
  .nav__burger { width: 48px; height: 48px; margin-right: -10px; }
  .lang__opt   { min-width: 44px; min-height: 44px;
                 display: inline-flex; align-items: center; justify-content: center; }
  .lang__opt::after { bottom: 8px; }
  .social      { width: 46px; height: 46px; }
  .footer__list a,
  .footer__list--plain a { display: inline-block; padding-block: 11px; }  /* porta l'area a 44px */
  .menu__links a { padding-block: 6px; }
  .phone-link  { display: inline-block; padding-block: 10px; }

  /* --- Il menu non deve lasciar scorrere la pagina sotto ------------- */
  .menu { overscroll-behavior: contain; }

  /* Su schermo stretto il blocco di testo è più alto e stretto: il velo
     lo copre peggio. Un filo più denso solo qui riporta il contrasto
     sopra la soglia senza toccare il desktop. */
  #contatti .panel__content::before,
  #newsletter .panel__content::before {
    background: radial-gradient(50% 50% at 50% 50%,
        rgba(4,12,28,.38) 0%,
        rgba(4,12,28,.33) 42%,
        rgba(4,12,28,.18) 68%,
        rgba(4,12,28,0)   100%);
  }

  /* --- Ultimi ritocchi di lettura ------------------------------------ */
  .subscribe__field input { font-size: 16px; }  /* sotto i 16px iOS zooma da solo */
}

/* Telefoni stretti: 320–380 px */
@media (max-width: 380px) {
  .hero__mark   { width: min(62vw, 230px); }
  .lockup__plate{ letter-spacing: .1em; }
  .figures      { gap: 18px 26px; }
  .btn          { padding-inline: 22px; }
}

/* Movimento ridotto su telefono: nessuna animazione infinita residua */
@media (max-width: 820px) and (prefers-reduced-motion: reduce) {
  .scrollcue svg { animation: none; }
}
\n\n

/* =====================================================================
   OFFERTE DEL MOMENTO — Explorer 3D / glass carousel
   ===================================================================== */
.offers-panel {
  overflow: hidden;
  min-height: 100svh;
}
.offers-panel .panel__content::before { display: none; }
.offers-panel .panel__inner {
  padding-top: clamp(86px, 9vh, 120px);
  padding-bottom: clamp(60px, 7vh, 90px);
}
.offers-head {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(260px, .75fr);
  gap: clamp(26px, 5vw, 72px);
  align-items: end;
  margin-bottom: clamp(22px, 3.2vh, 38px);
}
.offers-head .title { max-width: 760px; }
.offers-intro { max-width: 520px; margin: 0 0 .35rem; }
.offers-explorer {
  position: relative;
  width: 100%;
  min-height: clamp(620px, 68vw, 760px);
  display: grid;
  align-content: center;
}
.offers-explorer__stage {
  position: relative;
  width: min(1180px, 100%);
  height: clamp(500px, 58vw, 640px);
  margin: 0 auto;
  perspective: 1800px;
  transform-style: preserve-3d;
  touch-action: pan-y;
}
.offer-explorer-card {
  --card-w: clamp(260px, 28vw, 360px);
  --card-h: clamp(430px, 46vw, 570px);
  position: absolute;
  left: 50%;
  top: 48%;
  width: var(--card-w);
  height: var(--card-h);
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.34);
  border-radius: clamp(28px, 2.5vw, 38px);
  background: rgba(8, 20, 32, .32);
  box-shadow: 0 34px 90px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.18);
  backdrop-filter: blur(18px) saturate(1.08);
  -webkit-backdrop-filter: blur(18px) saturate(1.08);
  transform-origin: center center;
  transition:
    transform .72s cubic-bezier(.2,.72,.18,1),
    opacity .5s ease,
    filter .5s ease,
    box-shadow .5s ease;
  cursor: pointer;
  will-change: transform;
}
.offer-explorer-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  border-radius: inherit;
  background: linear-gradient(180deg, rgba(255,255,255,.08), transparent 18%, transparent 68%, rgba(3,10,18,.18));
}
.offer-explorer-card__media,
.offer-explorer-card__media img,
.offer-explorer-card__fallback {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.offer-explorer-card__media img { object-fit: cover; }
.offer-explorer-card__fallback {
  background:
    radial-gradient(circle at 25% 15%, rgba(101, 216, 194, .26), transparent 32%),
    linear-gradient(145deg, #173b52, #081522 72%);
}
.offer-explorer-card__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(2,10,18,.02) 28%, rgba(2,10,18,.14) 48%, rgba(2,10,18,.92) 88%, rgba(2,10,18,.98) 100%);
}
.offer-explorer-card__chrome {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: clamp(18px, 2vw, 26px);
}
.offer-explorer-card__topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.offer-explorer-card__badge,
.offer-explorer-card__count {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0 11px;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 999px;
  background: rgba(5,14,24,.22);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  color: rgba(255,255,255,.9);
  font-size: .68rem;
  font-weight: 750;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.offer-explorer-card__body {
  transform: translateY(6px);
  transition: transform .45s ease;
}
.offer-explorer-card.is-active .offer-explorer-card__body { transform: translateY(0); }
.offer-explorer-card__kicker {
  margin: 0 0 7px;
  color: rgba(255,255,255,.72);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.offer-explorer-card__title {
  margin: 0;
  max-width: 90%;
  font-size: clamp(1.8rem, 3vw, 2.65rem);
  line-height: .98;
  letter-spacing: -.045em;
  text-wrap: balance;
}
.offer-explorer-card__description {
  margin: 13px 0 0;
  max-width: 31rem;
  color: rgba(255,255,255,.82);
  font-size: clamp(.84rem, 1vw, .96rem);
  line-height: 1.52;
}
.offer-explorer-card__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px 18px;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid rgba(255,255,255,.14);
  color: rgba(255,255,255,.72);
  font-size: .82rem;
}
.offer-explorer-card__meta strong {
  color: #fff;
  font-size: 1.05rem;
  letter-spacing: -.02em;
}
.offer-explorer-card__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 44px;
  margin-top: 15px;
  border: 1px solid rgba(255,255,255,.34);
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  color: #fff;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  text-decoration: none;
  font-size: .82rem;
  font-weight: 800;
  transition: background .2s ease, color .2s ease, transform .2s ease;
}
.offer-explorer-card__cta:hover {
  background: #fff;
  color: #08131f;
  transform: translateY(-1px);
}

.offer-explorer-card.is-active {
  z-index: 10;
  opacity: 1;
  filter: none;
  transform: translate(-50%, -50%) translateZ(140px) scale(1.04);
  cursor: default;
  box-shadow: 0 42px 110px rgba(0,0,0,.36), inset 0 1px 0 rgba(255,255,255,.22);
}
.offer-explorer-card.is-prev {
  z-index: 7;
  opacity: .92;
  filter: saturate(.9) brightness(.88);
  transform: translate(-50%, -50%) translateX(clamp(-310px, -27vw, -235px)) translateZ(10px) rotateY(10deg) rotateZ(-2deg) scale(.88);
}
.offer-explorer-card.is-next {
  z-index: 7;
  opacity: .92;
  filter: saturate(.9) brightness(.88);
  transform: translate(-50%, -50%) translateX(clamp(235px, 27vw, 310px)) translateZ(10px) rotateY(-10deg) rotateZ(2deg) scale(.88);
}
.offer-explorer-card.is-far-prev {
  z-index: 4;
  opacity: .62;
  filter: saturate(.72) brightness(.75);
  transform: translate(-50%, -50%) translateX(clamp(-490px, -42vw, -360px)) translateZ(-90px) rotateY(14deg) rotateZ(-3deg) scale(.72);
}
.offer-explorer-card.is-far-next {
  z-index: 4;
  opacity: .62;
  filter: saturate(.72) brightness(.75);
  transform: translate(-50%, -50%) translateX(clamp(360px, 42vw, 490px)) translateZ(-90px) rotateY(-14deg) rotateZ(3deg) scale(.72);
}

.offers-controller-wrap {
  position: relative;
  z-index: 30;
  display: grid;
  justify-items: center;
  gap: 14px;
  margin-top: -8px;
}
.offers-controller {
  width: min(440px, calc(100vw - 38px));
  min-height: 82px;
  display: grid;
  grid-template-columns: 52px 1fr 52px;
  align-items: center;
  gap: 10px;
  padding: 9px 12px;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 999px;
  background: rgba(7,17,27,.38);
  backdrop-filter: blur(22px) saturate(1.15);
  -webkit-backdrop-filter: blur(22px) saturate(1.15);
  box-shadow: 0 24px 65px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.16);
}
.offers-controller__arrow {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 50%;
  background: rgba(255,255,255,.08);
  color: #fff;
  font-size: 1.75rem;
  line-height: 1;
  transition: transform .18s ease, background .18s ease;
}
.offers-controller__arrow:hover { transform: scale(1.05); background: rgba(255,255,255,.14); }
.offers-controller__info {
  min-width: 0;
  display: grid;
  grid-template-columns: 56px minmax(0,1fr);
  align-items: center;
  gap: 12px;
}
.offers-controller__thumb {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  object-fit: cover;
  border: 1px solid rgba(255,255,255,.3);
  background: rgba(255,255,255,.07);
}
.offers-controller__text { min-width: 0; }
.offers-controller__title,
.offers-controller__sub {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.offers-controller__title { font-size: .98rem; }
.offers-controller__sub { margin-top: 3px; color: rgba(255,255,255,.62); font-size: .72rem; }
.offers-controller__dots { display: flex; align-items: center; gap: 7px; }
.offers-controller__dot {
  width: 7px;
  height: 7px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(255,255,255,.28);
  transition: width .25s ease, background .25s ease;
}
.offers-controller__dot.is-active { width: 22px; background: rgba(255,255,255,.9); }
.offers-status {
  margin: auto;
  max-width: 640px;
  padding: 70px 20px;
  text-align: center;
  color: rgba(255,255,255,.72);
}

@media (max-width: 900px) {
  .offers-head { grid-template-columns: 1fr; gap: 16px; }
  .offers-explorer { min-height: 650px; }
  .offers-explorer__stage { height: 535px; }
  .offer-explorer-card { --card-w: min(72vw, 330px); --card-h: min(112vw, 510px); }
  .offer-explorer-card.is-active { transform: translate(-50%, -50%) translateZ(90px) scale(1); }
  .offer-explorer-card.is-prev { transform: translate(-50%, -50%) translateX(-44vw) translateZ(-20px) rotateY(8deg) scale(.80); }
  .offer-explorer-card.is-next { transform: translate(-50%, -50%) translateX(44vw) translateZ(-20px) rotateY(-8deg) scale(.80); }
  .offer-explorer-card.is-far-prev,
  .offer-explorer-card.is-far-next { opacity: 0; pointer-events: none; }
}

@media (max-width: 620px) {
  .offers-panel .panel__inner { padding-top: 84px; }
  .offers-explorer { min-height: 610px; }
  .offers-explorer__stage { height: 500px; }
  .offer-explorer-card { --card-w: min(80vw, 315px); --card-h: min(124vw, 490px); border-radius: 30px; }
  .offer-explorer-card.is-prev { transform: translate(-50%, -50%) translateX(-63vw) scale(.72); opacity: .65; }
  .offer-explorer-card.is-next { transform: translate(-50%, -50%) translateX(63vw) scale(.72); opacity: .65; }
  .offer-explorer-card__description { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
  .offers-controller { grid-template-columns: 46px 1fr 46px; min-height: 76px; }
  .offers-controller__info { grid-template-columns: 48px minmax(0,1fr); gap: 10px; }
  .offers-controller__thumb { width: 48px; height: 48px; }
  .offers-controller__arrow { width: 40px; height: 40px; }
}

@media (prefers-reduced-motion: reduce) {
  .offer-explorer-card { transition: none; }
}

/* Altri servizi */
#altri-servizi .panel__content::before{display:none}
#altri-servizi .panel__head::before{inset:-120% -22%}
.services-head{max-width:760px}
.services-intro{max-width:650px;margin-top:18px}
.services-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);gap:clamp(16px,2vw,24px);align-items:stretch}
.service-card{min-height:310px;display:flex;flex-direction:column;align-items:flex-start}
.service-card__tag{display:inline-flex;margin:-6px 0 17px;padding:.48em .8em;border-radius:999px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.10);font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.78)}
.service-card__link{display:inline-flex;align-items:center;gap:9px;margin-top:auto;padding-top:26px;font-size:.9rem;font-weight:600;color:#fff;transition:gap .25s ease,opacity .25s ease}
.service-card__link:hover{gap:13px;opacity:.88}
.service-card--coming{border:1px dashed rgba(255,255,255,.24);background:rgba(7,17,33,.30);backdrop-filter:blur(14px) saturate(120%);-webkit-backdrop-filter:blur(14px) saturate(120%);border-radius:26px;padding:clamp(28px,4vw,42px);justify-content:center}
.service-card__plus{width:46px;height:46px;display:grid;place-items:center;border-radius:50%;margin-bottom:22px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);font-size:1.7rem;font-weight:300}
.service-card__coming-title{font-size:clamp(1.15rem,2vw,1.45rem);font-weight:600;margin-bottom:10px}
.service-card--coming p{color:var(--t-dim);line-height:1.65;max-width:32ch}
@media (min-width:821px) and (max-width:1120px){.nav__links{gap:clamp(14px,2vw,25px)}.nav__links a{font-size:.78rem}}
@media (max-width:820px){.services-grid{grid-template-columns:1fr}.service-card{min-height:270px}.service-card--coming{min-height:210px}.menu.is-open .menu__links a:nth-child(5){transition-delay:.34s}}


/* =====================================================================
   PERSONALIZZA IL TUO VIAGGIO
   ===================================================================== */
.trip-panel{min-height:auto;padding-block:clamp(110px,12vw,180px)}
.trip-panel__inner{min-height:auto}
.trip-content{width:min(100%,980px)}
.trip-intro{margin-bottom:clamp(30px,4vw,46px)}
.trip-form{
  width:min(100%,900px);
  margin-inline:auto;
  padding:clamp(22px,3.4vw,38px);
  text-align:left;
  border:1px solid rgba(255,255,255,.16);
  border-radius:32px;
  background:linear-gradient(145deg,rgba(8,18,30,.72),rgba(8,18,30,.38));
  box-shadow:0 28px 80px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.08);
  backdrop-filter:blur(22px) saturate(1.08);
  -webkit-backdrop-filter:blur(22px) saturate(1.08);
}
.trip-form__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.trip-field{display:flex;flex-direction:column;gap:9px}
.trip-field--wide{grid-column:1/-1}
.trip-field>span,.trip-choice legend{
  font-size:.74rem;font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.72)
}
.trip-field input,.trip-field select,.trip-field textarea{
  width:100%;border:1px solid rgba(255,255,255,.14);border-radius:16px;
  background:rgba(3,10,18,.48);color:#fff;outline:none;
  padding:14px 15px;font:inherit;transition:border-color .25s ease,background .25s ease,box-shadow .25s ease
}
.trip-field input,.trip-field select{min-height:52px}
.trip-field textarea{resize:vertical;min-height:112px;line-height:1.5}
.trip-field input:focus,.trip-field select:focus,.trip-field textarea:focus{
  border-color:rgba(255,255,255,.42);background:rgba(3,10,18,.64);box-shadow:0 0 0 4px rgba(255,255,255,.05)
}
.trip-field input::placeholder,.trip-field textarea::placeholder{color:rgba(255,255,255,.34)}
.trip-field select option{color:#101820;background:#fff}
.trip-choice{border:0;padding:0;margin:30px 0 0}
.trip-choice legend{margin-bottom:12px}
.trip-chips{display:flex;flex-wrap:wrap;gap:9px}
.trip-chips label{cursor:pointer}
.trip-chips input{position:absolute;opacity:0;pointer-events:none}
.trip-chips span{
  display:inline-flex;align-items:center;min-height:40px;padding:9px 14px;border-radius:100px;
  border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.045);
  color:rgba(255,255,255,.76);font-size:.84rem;transition:.25s ease
}
.trip-chips input:checked+span{
  color:#07111b;background:#fff;border-color:#fff;box-shadow:0 8px 24px rgba(0,0,0,.2)
}
.trip-check{display:flex;align-items:flex-start;gap:12px;cursor:pointer}
.trip-check input{width:18px;height:18px;margin-top:2px;accent-color:#fff;flex:none}
.trip-check span{color:rgba(255,255,255,.74);font-size:.86rem;line-height:1.45}
.trip-check strong{display:block;color:#fff;font-size:.91rem;margin-bottom:3px}
.trip-check small{display:block;color:rgba(255,255,255,.56);font-size:.78rem}
.trip-check--wide{grid-column:1/-1}
.trip-check--highlight{
  padding:14px 16px;border:1px solid rgba(255,255,255,.14);border-radius:16px;
  background:rgba(255,255,255,.055)
}
.trip-form>.trip-field{margin-top:30px}
.trip-form__contact{margin-top:30px;padding-top:28px;border-top:1px solid rgba(255,255,255,.12)}
.trip-check--privacy{margin-top:20px}
.trip-summary{
  margin-top:26px;padding:18px 20px;border-radius:18px;border:1px solid rgba(255,255,255,.13);
  background:rgba(255,255,255,.055)
}
.trip-summary__label{
  display:block;margin-bottom:7px;font-size:.66rem;font-weight:700;letter-spacing:.13em;
  text-transform:uppercase;color:rgba(255,255,255,.48)
}
.trip-summary strong{display:block;color:#fff;font-size:.96rem;line-height:1.5}
.trip-submit{margin:24px auto 0;display:flex}
.trip-form__note{min-height:1.3em;margin-top:12px;text-align:center;color:rgba(255,255,255,.7);font-size:.82rem}
.trip-contact{
  margin-top:28px;display:flex;justify-content:center;align-items:center;gap:9px;flex-wrap:wrap;
  color:rgba(255,255,255,.62);font-size:.9rem
}
.trip-contact a{color:#fff;border-bottom:1px solid rgba(255,255,255,.25)}
.trip-panel .place{margin-top:38px}
@media(max-width:700px){
  .trip-form__grid{grid-template-columns:1fr}
  .trip-field--wide,.trip-check--wide{grid-column:auto}
  .trip-form{border-radius:24px;padding:20px 16px}
  .trip-chips{gap:7px}
  .trip-chips span{font-size:.78rem;padding:8px 11px}
  .trip-submit{width:100%;max-width:none}
}


/* Correzioni configuratore viaggio */
.trip-form__grid{
  align-items:end;
}
.trip-field{
  min-width:0;
}
.trip-field select{
  appearance:auto;
  -webkit-appearance:menulist;
}
#tripDay:disabled{
  opacity:.58;
  cursor:not-allowed;
}
@media(min-width:701px){
  #tripDeparture{
    width:100%;
  }
}


/* V3 configuratore: coppia viaggiatori e select più stabili su Safari */
.trip-people-row{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}
.trip-field > span small{
  font-size:.72em;
  font-weight:500;
  text-transform:none;
  letter-spacing:0;
  opacity:.62;
}
.trip-field select{
  width:100%;
  min-height:52px;
}
@media(max-width:700px){
  .trip-people-row{grid-template-columns:1fr 1fr;gap:12px}
}


/* =====================================================================
   OFFERTE V4 — vetrina compatta + dettagli su richiesta
   ===================================================================== */
.offers-panel { min-height: auto; }
.offers-panel .panel__inner {
  padding-top: clamp(76px, 7vh, 96px);
  padding-bottom: clamp(42px, 5vh, 64px);
}
.offers-head { margin-bottom: clamp(14px, 2vh, 24px); }
.offers-explorer { min-height: clamp(470px, 50vw, 560px); }
.offers-explorer__stage {
  width: min(1080px, 100%);
  height: clamp(390px, 43vw, 475px);
}
.offer-explorer-card {
  --card-w: clamp(235px, 23vw, 300px);
  --card-h: clamp(350px, 35vw, 430px);
  top: 48%;
  border-radius: clamp(23px, 2vw, 30px);
}
.offer-explorer-card__chrome { padding: clamp(15px, 1.55vw, 20px); }
.offer-explorer-card__badge,
.offer-explorer-card__count { min-height: 26px; padding: 0 9px; font-size: .60rem; }
.offer-explorer-card__kicker { margin-bottom: 5px; font-size: .66rem; }
.offer-explorer-card__title {
  max-width: 100%;
  font-size: clamp(1.65rem, 2.35vw, 2.15rem);
  line-height: 1;
}
.offer-explorer-card__facts {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 11px;
}
.offer-explorer-card__fact {
  display: inline-flex;
  align-items: center;
  min-height: 25px;
  padding: 5px 8px;
  border: 1px solid rgba(255,255,255,.20);
  border-radius: 999px;
  background: rgba(5,14,24,.28);
  color: rgba(255,255,255,.88);
  font-size: .65rem;
  line-height: 1.1;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.offer-explorer-card__reveal {
  display: inline-flex;
  align-items: center;
  margin-top: 10px;
  padding: 0;
  border: 0;
  background: transparent;
  color: rgba(255,255,255,.92);
  font: inherit;
  font-size: .69rem;
  font-weight: 750;
  text-decoration: underline;
  text-underline-offset: 4px;
  cursor: pointer;
}
.offer-explorer-card__details {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transform: translateY(5px);
  transition: max-height .38s ease, opacity .28s ease, transform .28s ease, margin .28s ease;
}
.offer-explorer-card.is-expanded .offer-explorer-card__details {
  max-height: 155px;
  margin-top: 10px;
  opacity: 1;
  transform: translateY(0);
  overflow-y: auto;
  scrollbar-width: thin;
}
.offer-explorer-card.is-expanded .offer-explorer-card__reveal { opacity: .68; }
.offer-explorer-card__details-label {
  display: block;
  margin-bottom: 4px;
  color: rgba(255,255,255,.62);
  font-size: .60rem;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.offer-explorer-card__description {
  margin: 0;
  font-size: clamp(.72rem, .78vw, .80rem);
  line-height: 1.38;
}
.offer-explorer-card__meta { margin-top: 11px; padding-top: 10px; font-size: .72rem; }
.offer-explorer-card__meta strong { font-size: .96rem; }
.offer-explorer-card__cta { min-height: 38px; margin-top: 10px; font-size: .75rem; }
.offer-explorer-card.is-active {
  transform: translate(-50%, -50%) translateZ(115px) scale(1.01);
}
.offer-explorer-card.is-prev {
  transform: translate(-50%, -50%) translateX(clamp(-285px, -24vw, -205px)) translateZ(0) rotateY(10deg) rotateZ(-1.5deg) scale(.82);
}
.offer-explorer-card.is-next {
  transform: translate(-50%, -50%) translateX(clamp(205px, 24vw, 285px)) translateZ(0) rotateY(-10deg) rotateZ(1.5deg) scale(.82);
}
.offer-explorer-card.is-far-prev {
  transform: translate(-50%, -50%) translateX(clamp(-430px, -37vw, -315px)) translateZ(-80px) rotateY(14deg) rotateZ(-2deg) scale(.65);
}
.offer-explorer-card.is-far-next {
  transform: translate(-50%, -50%) translateX(clamp(315px, 37vw, 430px)) translateZ(-80px) rotateY(-14deg) rotateZ(2deg) scale(.65);
}
.offers-controller { min-height: 68px; width: min(400px, calc(100vw - 38px)); grid-template-columns: 44px 1fr 44px; }
.offers-controller__arrow { width: 38px; height: 38px; font-size: 1.5rem; }
.offers-controller__info { grid-template-columns: 46px minmax(0,1fr); }
.offers-controller__thumb { width: 46px; height: 46px; }

@media (max-width: 900px) {
  .offers-explorer { min-height: 520px; }
  .offers-explorer__stage { height: 440px; }
  .offer-explorer-card { --card-w: min(68vw, 285px); --card-h: min(100vw, 420px); }
}
@media (max-width: 620px) {
  .offers-explorer { min-height: 500px; }
  .offers-explorer__stage { height: 420px; }
  .offer-explorer-card { --card-w: min(76vw, 280px); --card-h: min(112vw, 415px); border-radius: 26px; }
  .offer-explorer-card.is-prev { transform: translate(-50%, -50%) translateX(-58vw) scale(.68); }
  .offer-explorer-card.is-next { transform: translate(-50%, -50%) translateX(58vw) scale(.68); }
  .offer-explorer-card__details { font-size: .72rem; }
}

/* =====================================================================
   OFFERTE V5 — immagini protagoniste, dettagli solo su clic
   ===================================================================== */
.offers-explorer { min-height: clamp(405px, 43vw, 480px); }
.offers-explorer__stage { width: min(1000px, 100%); height: clamp(335px, 37vw, 400px); }
.offer-explorer-card { --card-w: clamp(215px, 20vw, 265px); --card-h: clamp(305px, 29vw, 365px); top: 48%; border-radius: 25px; }
.offer-explorer-card__chrome { padding: 15px; }
.offer-explorer-card__media::after { background: linear-gradient(180deg,rgba(2,10,18,.02) 38%,rgba(2,10,18,.08) 55%,rgba(2,10,18,.76) 100%); }
.offer-explorer-card__body { position: relative; }
.offer-explorer-card__title { font-size: clamp(1.45rem,2vw,1.9rem); line-height:1; text-shadow:0 2px 14px rgba(0,0,0,.5); }
.offer-explorer-card__reveal { margin-top:8px; font-size:.66rem; text-decoration:none; padding:5px 8px; border:1px solid rgba(255,255,255,.28); border-radius:999px; background:rgba(4,13,22,.38); backdrop-filter:blur(9px); -webkit-backdrop-filter:blur(9px); }
.offer-explorer-card__reveal:hover { background:rgba(255,255,255,.16); }
.offer-explorer-card__details { position:absolute; left:-6px; right:-6px; bottom:86px; max-height:0; margin:0; padding:0 11px; border:1px solid transparent; border-radius:16px; background:rgba(5,14,24,.90); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); box-shadow:0 14px 34px rgba(0,0,0,.28); opacity:0; overflow:hidden; transform:translateY(8px); }
.offer-explorer-card.is-expanded .offer-explorer-card__details { max-height:185px; margin:0; padding:11px; border-color:rgba(255,255,255,.18); opacity:1; overflow-y:auto; transform:translateY(0); }
.offer-explorer-card__detail-section + .offer-explorer-card__detail-section { margin-top:9px; padding-top:9px; border-top:1px solid rgba(255,255,255,.12); }
.offer-explorer-card__details-label { margin-bottom:4px; font-size:.57rem; }
.offer-explorer-card__description { margin:0; font-size:.70rem; line-height:1.35; color:rgba(255,255,255,.92); }
.offer-explorer-card__meta { margin-top:9px; padding-top:8px; }
.offer-explorer-card__cta { min-height:35px; margin-top:8px; }
.offer-explorer-card.is-active { transform:translate(-50%,-50%) translateZ(100px) scale(1); }
.offer-explorer-card.is-prev { transform:translate(-50%,-50%) translateX(clamp(-250px,-22vw,-185px)) rotateY(9deg) scale(.80); }
.offer-explorer-card.is-next { transform:translate(-50%,-50%) translateX(clamp(185px,22vw,250px)) rotateY(-9deg) scale(.80); }
.offer-explorer-card.is-far-prev { transform:translate(-50%,-50%) translateX(clamp(-390px,-34vw,-285px)) translateZ(-70px) rotateY(13deg) scale(.62); }
.offer-explorer-card.is-far-next { transform:translate(-50%,-50%) translateX(clamp(285px,34vw,390px)) translateZ(-70px) rotateY(-13deg) scale(.62); }
.offers-controller { min-height:62px; width:min(370px,calc(100vw - 38px)); }
.offers-controller__thumb { width:40px; height:40px; }
.offers-controller__info { grid-template-columns:40px minmax(0,1fr); }
@media (max-width:900px){.offers-explorer{min-height:455px}.offers-explorer__stage{height:385px}.offer-explorer-card{--card-w:min(64vw,260px);--card-h:min(92vw,360px)}}
@media (max-width:620px){.offers-explorer{min-height:430px}.offers-explorer__stage{height:365px}.offer-explorer-card{--card-w:min(72vw,255px);--card-h:min(102vw,355px)}.offer-explorer-card.is-prev{transform:translate(-50%,-50%) translateX(-56vw) scale(.66)}.offer-explorer-card.is-next{transform:translate(-50%,-50%) translateX(56vw) scale(.66)}}


/* =====================================================================
   DR VIAGGI — OFFERTE PUBBLICHE 2026-10-03
   Card compatta: foto pulita + informazioni separate
   ===================================================================== */
.offers-explorer{margin-top:clamp(24px,4vw,44px)}
.offers-explorer__stage{
  position:relative !important;
  height:480px !important;
  perspective:1200px;
}
.offer-explorer-card{
  position:absolute !important;
  left:50% !important;
  top:0 !important;
  width:min(310px,78vw) !important;
  height:auto !important;
  min-height:0 !important;
  overflow:hidden !important;
  border:1px solid rgba(255,255,255,.16) !important;
  border-radius:24px !important;
  background:rgba(7,16,32,.88) !important;
  box-shadow:0 24px 70px rgba(0,0,0,.28) !important;
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  transform-origin:center center;
  transition:transform .55s var(--e-out),opacity .4s ease,filter .4s ease !important;
}
.offer-explorer-card__media{
  position:relative !important;
  height:205px !important;
  min-height:0 !important;
  overflow:hidden !important;
  border-radius:0 !important;
}
.offer-explorer-card__media::after{display:none !important}
.offer-explorer-card__media img{width:100%;height:100%;object-fit:cover}
.offer-explorer-card__content{
  position:relative;
  padding:18px 18px 19px;
  display:flex;
  flex-direction:column;
  gap:10px;
  background:linear-gradient(180deg,rgba(10,22,42,.96),rgba(6,14,28,.98));
}
.offer-explorer-card__chrome,.offer-explorer-card__topbar,.offer-explorer-card__body,.offer-explorer-card__badge,.offer-explorer-card__count,.offer-explorer-card__meta{display:none !important}
.offer-explorer-card__title{
  margin:0 !important;
  font-size:1.28rem !important;
  line-height:1.15 !important;
  font-weight:650 !important;
  text-shadow:none !important;
}
.offer-explorer-card__price{
  font-size:1.03rem;
  font-weight:700;
  color:#fff;
}
.offer-explorer-card__reveal{
  width:100%;
  padding:9px 0 5px !important;
  text-align:left;
  color:rgba(255,255,255,.72);
  font-size:.76rem !important;
  line-height:1.35;
}
.offer-explorer-card__details{
  display:none;
  margin-top:2px;
  padding:13px 0 2px;
  border-top:1px solid rgba(255,255,255,.12);
  max-height:175px;
  overflow:auto;
}
.offer-explorer-card.is-expanded .offer-explorer-card__details{display:grid;gap:13px}
.offer-explorer-card__details-label{
  display:block;
  margin-bottom:6px;
  color:#fff;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.offer-explorer-card__detail-list,.offer-explorer-card__destination-list{
  display:grid;
  gap:5px;
  margin:0;
  padding:0;
  color:rgba(255,255,255,.76);
  font-size:.78rem;
  line-height:1.35;
}
.offer-explorer-card__detail-list li::before{content:'✓';margin-right:7px;color:#8de8c7}
.offer-explorer-card__destination-list{grid-template-columns:repeat(2,minmax(0,1fr))}
.offer-explorer-card__destination-list li::before{content:'•';margin-right:6px;color:#8de8c7}
.offer-explorer-card__cta{
  display:flex !important;
  align-items:center;
  justify-content:center;
  min-height:42px !important;
  margin-top:3px;
  padding:10px 16px !important;
  border-radius:999px !important;
  background:#fff !important;
  color:#071020 !important;
  font-size:.82rem !important;
  font-weight:700 !important;
}
.offer-explorer-card.is-active{z-index:5;transform:translateX(-50%) scale(1) !important;opacity:1}
.offer-explorer-card.is-prev{z-index:3;transform:translateX(calc(-50% - 245px)) scale(.82) rotateY(10deg) !important;opacity:.58;filter:saturate(.72)}
.offer-explorer-card.is-next{z-index:3;transform:translateX(calc(-50% + 245px)) scale(.82) rotateY(-10deg) !important;opacity:.58;filter:saturate(.72)}
.offer-explorer-card.is-far-prev{transform:translateX(calc(-50% - 430px)) scale(.68) !important;opacity:0;pointer-events:none}
.offer-explorer-card.is-far-next{transform:translateX(calc(-50% + 430px)) scale(.68) !important;opacity:0;pointer-events:none}
.offers-explorer.is-focus-mode .offers-explorer__stage{height:620px !important}
.offers-controller-wrap{margin-top:4px !important}
@media(max-width:700px){
  .offers-explorer__stage{height:450px !important}
  .offer-explorer-card{width:min(292px,82vw) !important}
  .offer-explorer-card__media{height:190px !important}
  .offer-explorer-card.is-prev{transform:translateX(calc(-50% - 205px)) scale(.76) !important;opacity:.3}
  .offer-explorer-card.is-next{transform:translateX(calc(-50% + 205px)) scale(.76) !important;opacity:.3}
  .offers-explorer.is-focus-mode .offers-explorer__stage{height:600px !important}
}


/* DR VIAGGI — rifinitura card: più fotografia, meno pannello scuro */
.offer-explorer-card{
  width:min(324px,80vw) !important;
  background:rgba(7,16,32,.68) !important;
  transition:transform .55s var(--e-out),opacity .4s ease,filter .4s ease,box-shadow .45s ease !important;
}
.offer-explorer-card__media{
  height:250px !important;
  transition:height .48s var(--e-out),transform .48s var(--e-out) !important;
}
.offer-explorer-card__media img{
  transition:transform .6s var(--e-out) !important;
}
.offer-explorer-card__content{
  padding:15px 17px 17px !important;
  gap:7px !important;
  background:linear-gradient(180deg,rgba(10,22,42,.78),rgba(6,14,28,.88)) !important;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.offer-explorer-card__reveal,
.offer-explorer-card__reveal:hover,
.offer-explorer-card__reveal:focus,
.offer-explorer-card__reveal:active,
.offer-explorer-card__reveal:focus-visible{
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  outline:none !important;
  color:rgba(255,255,255,.68) !important;
  text-decoration:none !important;
  -webkit-tap-highlight-color:transparent;
}
.offer-explorer-card__reveal:hover{color:rgba(255,255,255,.9) !important}
.offer-explorer-card.is-active.is-expanded{
  transform:translateX(-50%) scale(1.07) !important;
  box-shadow:0 32px 90px rgba(0,0,0,.34) !important;
}
.offer-explorer-card.is-expanded .offer-explorer-card__media img{
  transform:scale(1.055) !important;
}
.offer-explorer-card.is-expanded .offer-explorer-card__details{
  background:rgba(5,13,26,.38) !important;
  margin-inline:-17px !important;
  padding:13px 17px 4px !important;
}
.offers-explorer.is-focus-mode .offer-explorer-card.is-prev{
  transform:translateX(calc(-50% - 260px)) scale(.76) rotateY(8deg) !important;
  opacity:.38 !important;
}
.offers-explorer.is-focus-mode .offer-explorer-card.is-next{
  transform:translateX(calc(-50% + 260px)) scale(.76) rotateY(-8deg) !important;
  opacity:.38 !important;
}
@media(max-width:700px){
  .offer-explorer-card{width:min(304px,84vw) !important}
  .offer-explorer-card__media{height:225px !important}
  .offer-explorer-card.is-active.is-expanded{transform:translateX(-50%) scale(1.035) !important}
}


/* =====================================================================
   DR VIAGGI — CAROSELLO FOTOGRAFICO PREMIUM v3
   ===================================================================== */
.offers-explorer{
  position:relative !important;
  margin-top:20px !important;
  overflow:visible !important;
}
.offers-explorer__stage{
  position:relative !important;
  height:510px !important;
  perspective:1500px !important;
  transform-style:preserve-3d !important;
  overflow:visible !important;
}
.offer-explorer-card{
  position:absolute !important;
  top:0 !important;
  left:50% !important;
  width:330px !important;
  height:455px !important;
  min-height:0 !important;
  display:flex !important;
  flex-direction:column !important;
  overflow:hidden !important;
  border:1px solid rgba(255,255,255,.42) !important;
  border-radius:26px !important;
  background:rgba(15,25,39,.48) !important;
  box-shadow:0 24px 60px rgba(0,0,0,.20) !important;
  backdrop-filter:blur(16px) saturate(125%) !important;
  -webkit-backdrop-filter:blur(16px) saturate(125%) !important;
  transform-origin:center center !important;
  transition:transform .55s cubic-bezier(.22,.8,.22,1),opacity .45s ease,filter .45s ease,height .5s cubic-bezier(.22,.8,.22,1),box-shadow .45s ease !important;
}
.offer-explorer-card__media{
  position:relative !important;
  flex:0 0 335px !important;
  width:100% !important;
  height:335px !important;
  min-height:335px !important;
  overflow:hidden !important;
  border-radius:0 !important;
  background:#162235 !important;
  transition:flex-basis .5s cubic-bezier(.22,.8,.22,1),height .5s cubic-bezier(.22,.8,.22,1) !important;
}
.offer-explorer-card__media::after{display:none !important}
.offer-explorer-card__media img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  transform:scale(1.001) !important;
  transition:transform .65s cubic-bezier(.22,.8,.22,1) !important;
}
.offer-explorer-card__content{
  position:relative !important;
  flex:1 1 auto !important;
  min-height:120px !important;
  display:grid !important;
  grid-template-columns:1fr auto !important;
  grid-template-areas:
    "title price"
    "reveal reveal"
    "cta cta"
    "details details" !important;
  align-content:start !important;
  gap:7px 12px !important;
  padding:15px 18px 17px !important;
  background:linear-gradient(180deg,rgba(18,29,45,.72),rgba(9,18,31,.88)) !important;
  backdrop-filter:blur(18px) saturate(120%) !important;
  -webkit-backdrop-filter:blur(18px) saturate(120%) !important;
}
.offer-explorer-card__title{
  grid-area:title !important;
  align-self:center !important;
  margin:0 !important;
  font-size:1.17rem !important;
  line-height:1.15 !important;
  font-weight:650 !important;
  color:#fff !important;
  text-shadow:none !important;
}
.offer-explorer-card__price{
  grid-area:price !important;
  align-self:center !important;
  margin:0 !important;
  font-size:.86rem !important;
  line-height:1 !important;
  font-weight:650 !important;
  color:rgba(255,255,255,.78) !important;
  white-space:nowrap !important;
}
.offer-explorer-card__reveal{
  grid-area:reveal !important;
  width:max-content !important;
  max-width:100% !important;
  min-height:0 !important;
  margin:2px 0 0 !important;
  padding:3px 0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  outline:none !important;
  color:rgba(255,255,255,.62) !important;
  font:inherit !important;
  font-size:.72rem !important;
  line-height:1.25 !important;
  text-align:left !important;
  text-decoration:none !important;
  cursor:pointer !important;
  -webkit-appearance:none !important;
  appearance:none !important;
  -webkit-tap-highlight-color:transparent !important;
}
.offer-explorer-card__reveal:hover,
.offer-explorer-card__reveal:focus,
.offer-explorer-card__reveal:focus-visible,
.offer-explorer-card__reveal:active{
  color:rgba(255,255,255,.88) !important;
  background:transparent !important;
  box-shadow:none !important;
  outline:none !important;
}
.offer-explorer-card__cta{
  grid-area:cta !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  min-height:38px !important;
  margin:2px 0 0 !important;
  padding:8px 14px !important;
  border:1px solid rgba(255,255,255,.46) !important;
  border-radius:999px !important;
  background:rgba(255,255,255,.91) !important;
  color:#0b1626 !important;
  font-size:.76rem !important;
  font-weight:750 !important;
  text-decoration:none !important;
}
.offer-explorer-card__details{
  grid-area:details !important;
  display:none !important;
  position:static !important;
  width:auto !important;
  height:auto !important;
  max-height:none !important;
  overflow:visible !important;
  margin:7px -18px -17px !important;
  padding:14px 18px 18px !important;
  border-top:1px solid rgba(255,255,255,.13) !important;
  background:rgba(4,12,24,.34) !important;
}
.offer-explorer-card.is-expanded{
  height:620px !important;
}
.offer-explorer-card.is-expanded .offer-explorer-card__media{
  flex-basis:300px !important;
  height:300px !important;
  min-height:300px !important;
}
.offer-explorer-card.is-expanded .offer-explorer-card__media img{
  transform:scale(1.045) !important;
}
.offer-explorer-card.is-expanded .offer-explorer-card__details{
  display:grid !important;
  gap:13px !important;
}
.offer-explorer-card__detail-section{
  margin:0 !important;
  padding:0 !important;
}
.offer-explorer-card__details-label{
  display:block !important;
  margin:0 0 7px !important;
  color:rgba(255,255,255,.92) !important;
  font-size:.68rem !important;
  font-weight:750 !important;
  line-height:1.2 !important;
  letter-spacing:.07em !important;
  text-transform:uppercase !important;
}
.offer-explorer-card__detail-list,
.offer-explorer-card__destination-list{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:5px !important;
  margin:0 !important;
  padding:0 !important;
  list-style:none !important;
  color:rgba(255,255,255,.76) !important;
  font-size:.76rem !important;
  line-height:1.28 !important;
}
.offer-explorer-card__destination-list{
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
}
.offer-explorer-card__detail-list li,
.offer-explorer-card__destination-list li{
  margin:0 !important;
  padding:0 !important;
}
.offer-explorer-card__detail-list li::before{content:'✓' !important;margin-right:7px !important;color:#91ebcd !important}
.offer-explorer-card__destination-list li::before{content:'•' !important;margin-right:6px !important;color:#91ebcd !important}

/* profondità del carosello */
.offer-explorer-card.is-active{
  z-index:10 !important;
  opacity:1 !important;
  filter:none !important;
  transform:translateX(-50%) translateZ(45px) scale(1) !important;
}
.offer-explorer-card.is-prev{
  z-index:5 !important;
  opacity:.72 !important;
  filter:saturate(.82) brightness(.88) !important;
  transform:translateX(calc(-50% - 245px)) translateZ(-75px) rotateY(10deg) scale(.86) !important;
}
.offer-explorer-card.is-next{
  z-index:5 !important;
  opacity:.72 !important;
  filter:saturate(.82) brightness(.88) !important;
  transform:translateX(calc(-50% + 245px)) translateZ(-75px) rotateY(-10deg) scale(.86) !important;
}
.offer-explorer-card.is-far-prev{
  z-index:2 !important;
  opacity:.24 !important;
  pointer-events:none !important;
  transform:translateX(calc(-50% - 405px)) translateZ(-150px) rotateY(13deg) scale(.72) !important;
}
.offer-explorer-card.is-far-next{
  z-index:2 !important;
  opacity:.24 !important;
  pointer-events:none !important;
  transform:translateX(calc(-50% + 405px)) translateZ(-150px) rotateY(-13deg) scale(.72) !important;
}
.offer-explorer-card.is-active.is-expanded{
  z-index:20 !important;
  transform:translateX(-50%) translateZ(80px) scale(1.055) !important;
  box-shadow:0 34px 90px rgba(0,0,0,.32) !important;
}
.offers-explorer.is-focus-mode .offers-explorer__stage{
  height:685px !important;
}
.offers-explorer.is-focus-mode .offer-explorer-card.is-prev{
  opacity:.34 !important;
  transform:translateX(calc(-50% - 275px)) translateZ(-120px) rotateY(12deg) scale(.78) !important;
}
.offers-explorer.is-focus-mode .offer-explorer-card.is-next{
  opacity:.34 !important;
  transform:translateX(calc(-50% + 275px)) translateZ(-120px) rotateY(-12deg) scale(.78) !important;
}

/* controller minimale */
.offers-controller-wrap{
  display:flex !important;
  justify-content:center !important;
  margin-top:0 !important;
}
.offers-controller{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:14px !important;
  width:auto !important;
  min-width:0 !important;
  padding:7px 10px !important;
  border:1px solid rgba(255,255,255,.16) !important;
  border-radius:999px !important;
  background:rgba(8,18,32,.38) !important;
  backdrop-filter:blur(12px) !important;
  -webkit-backdrop-filter:blur(12px) !important;
}
.offers-controller__info,.offers-controller__thumb,.offers-controller__text{display:none !important}
.offers-controller__arrow{
  width:31px !important;
  height:31px !important;
  min-width:31px !important;
  min-height:31px !important;
  padding:0 !important;
  border:1px solid rgba(255,255,255,.18) !important;
  border-radius:50% !important;
  background:rgba(255,255,255,.07) !important;
  color:#fff !important;
  font-size:1.25rem !important;
  line-height:1 !important;
}
.offers-controller__dots{
  display:flex !important;
  align-items:center !important;
  gap:5px !important;
  margin:0 !important;
}
.offers-controller__dot{
  width:5px !important;
  height:5px !important;
  min-width:5px !important;
  min-height:5px !important;
  padding:0 !important;
  border:0 !important;
  border-radius:50% !important;
  background:rgba(255,255,255,.32) !important;
}
.offers-controller__dot.is-active{
  width:17px !important;
  border-radius:999px !important;
  background:rgba(255,255,255,.9) !important;
}

@media(max-width:700px){
  .offers-explorer__stage{height:470px !important}
  .offer-explorer-card{width:min(310px,82vw) !important;height:430px !important}
  .offer-explorer-card__media{flex-basis:310px !important;height:310px !important;min-height:310px !important}
  .offer-explorer-card.is-prev{transform:translateX(calc(-50% - 205px)) translateZ(-70px) rotateY(8deg) scale(.80) !important;opacity:.36 !important}
  .offer-explorer-card.is-next{transform:translateX(calc(-50% + 205px)) translateZ(-70px) rotateY(-8deg) scale(.80) !important;opacity:.36 !important}
  .offer-explorer-card.is-expanded{height:610px !important}
  .offer-explorer-card.is-expanded .offer-explorer-card__media{flex-basis:280px !important;height:280px !important;min-height:280px !important}
  .offer-explorer-card.is-active.is-expanded{transform:translateX(-50%) translateZ(60px) scale(1.025) !important}
  .offers-explorer.is-focus-mode .offers-explorer__stage{height:650px !important}
}


/* DR VIAGGI — interazione v4: swipe/trackpad + card cliccabile + azioni separate */
.offer-explorer-card__content{
  gap:8px 12px !important;
}
.offer-explorer-card__reveal{
  position:relative !important;
  width:100% !important;
  margin:4px 0 5px !important;
  padding:8px 10px !important;
  border:1px solid rgba(255,255,255,.14) !important;
  border-radius:10px !important;
  background:rgba(255,255,255,.045) !important;
  color:rgba(255,255,255,.68) !important;
  text-align:left !important;
}
.offer-explorer-card__reveal:hover,
.offer-explorer-card__reveal:focus,
.offer-explorer-card__reveal:focus-visible,
.offer-explorer-card__reveal:active{
  background:rgba(255,255,255,.075) !important;
  border-color:rgba(255,255,255,.22) !important;
  color:#fff !important;
}
.offer-explorer-card__cta{
  margin-top:5px !important;
}
.offer-explorer-card.is-active{
  cursor:pointer !important;
}
.offer-explorer-card.is-active .offer-explorer-card__cta,
.offer-explorer-card.is-active .offer-explorer-card__reveal{
  cursor:pointer !important;
}
.offer-explorer-card.is-expanded{
  cursor:default !important;
}


/* DR VIAGGI — v5: click laterali, apertura verso l'alto, glass più trasparente */
.offer-explorer-card.is-prev,
.offer-explorer-card.is-next{
  pointer-events:auto !important;
  cursor:pointer !important;
}
.offer-explorer-card__content{
  background:linear-gradient(180deg,rgba(12,23,39,.52),rgba(5,13,25,.68)) !important;
  backdrop-filter:blur(18px) saturate(115%) !important;
  -webkit-backdrop-filter:blur(18px) saturate(115%) !important;
}
.offer-explorer-card{
  background:rgba(7,16,30,.38) !important;
}
.offer-explorer-card__details{
  background:rgba(3,10,21,.26) !important;
}

/* La card cresce verso l'alto: il fondo resta visivamente quasi fermo */
.offer-explorer-card.is-active.is-expanded{
  transform:translateX(-50%) translateY(-165px) translateZ(80px) scale(1.055) !important;
}
.offers-explorer.is-focus-mode .offer-explorer-card.is-prev{
  transform:translateX(calc(-50% - 275px)) translateY(-70px) translateZ(-120px) rotateY(12deg) scale(.78) !important;
}
.offers-explorer.is-focus-mode .offer-explorer-card.is-next{
  transform:translateX(calc(-50% + 275px)) translateY(-70px) translateZ(-120px) rotateY(-12deg) scale(.78) !important;
}
@media(max-width:700px){
  .offer-explorer-card.is-active.is-expanded{
    transform:translateX(-50%) translateY(-170px) translateZ(60px) scale(1.025) !important;
  }
}


/* DR VIAGGI — v6: tre correzioni definitive */

/* 1) Le card laterali sono sempre cliccabili */
.offer-explorer-card.is-prev,
.offer-explorer-card.is-next{
  pointer-events:auto !important;
  cursor:pointer !important;
}

/* 2) Glass quasi trasparente: si vede la fotografia/sfondo sotto, ma resta scuro */
.offer-explorer-card{
  background:rgba(4,10,20,.12) !important;
}
.offer-explorer-card__content{
  background:linear-gradient(
    180deg,
    rgba(5,12,23,.32) 0%,
    rgba(5,12,23,.48) 100%
  ) !important;
  backdrop-filter:blur(9px) brightness(.78) !important;
  -webkit-backdrop-filter:blur(9px) brightness(.78) !important;
}
.offer-explorer-card__reveal{
  background:rgba(3,9,18,.16) !important;
}
.offer-explorer-card__reveal:hover,
.offer-explorer-card__reveal:focus,
.offer-explorer-card__reveal:active{
  background:rgba(3,9,18,.22) !important;
}

/* 3) Aprendo i dettagli, immagine e card NON salgono e NON cambiano dimensione */
.offer-explorer-card.is-active.is-expanded{
  height:455px !important;
  transform:translateX(-50%) translateZ(45px) scale(1) !important;
}
.offer-explorer-card.is-expanded .offer-explorer-card__media{
  flex-basis:335px !important;
  height:335px !important;
  min-height:335px !important;
}
.offer-explorer-card.is-expanded .offer-explorer-card__media img{
  transform:scale(1.001) !important;
}

/* Solo il pannello dei servizi esce verso l'alto, sopra la card */
.offer-explorer-card.is-expanded .offer-explorer-card__details{
  display:grid !important;
  position:absolute !important;
  left:12px !important;
  right:12px !important;
  bottom:112px !important;
  z-index:30 !important;
  max-height:265px !important;
  overflow:auto !important;
  margin:0 !important;
  padding:15px 16px !important;
  border:1px solid rgba(255,255,255,.17) !important;
  border-radius:16px !important;
  background:rgba(5,13,25,.72) !important;
  backdrop-filter:blur(16px) saturate(115%) !important;
  -webkit-backdrop-filter:blur(16px) saturate(115%) !important;
  box-shadow:0 -14px 38px rgba(0,0,0,.18) !important;
}
.offers-explorer.is-focus-mode .offers-explorer__stage{
  height:510px !important;
}
.offers-explorer.is-focus-mode .offer-explorer-card.is-prev{
  transform:translateX(calc(-50% - 245px)) translateZ(-75px) rotateY(10deg) scale(.86) !important;
  opacity:.52 !important;
}
.offers-explorer.is-focus-mode .offer-explorer-card.is-next{
  transform:translateX(calc(-50% + 245px)) translateZ(-75px) rotateY(-10deg) scale(.86) !important;
  opacity:.52 !important;
}

@media(max-width:700px){
  .offer-explorer-card.is-active.is-expanded{
    height:430px !important;
    transform:translateX(-50%) translateZ(45px) scale(1) !important;
  }
  .offer-explorer-card.is-expanded .offer-explorer-card__media{
    flex-basis:310px !important;
    height:310px !important;
    min-height:310px !important;
  }
  .offer-explorer-card.is-expanded .offer-explorer-card__details{
    bottom:108px !important;
    max-height:250px !important;
  }
  .offers-explorer.is-focus-mode .offers-explorer__stage{height:470px !important}
}


/* DR VIAGGI — v9: più respiro tra le card + glass più trasparente */
.offer-explorer-card__content{
  background:linear-gradient(
    180deg,
    rgba(4,10,20,.18) 0%,
    rgba(4,10,20,.32) 100%
  ) !important;
  backdrop-filter:blur(6px) brightness(.72) !important;
  -webkit-backdrop-filter:blur(6px) brightness(.72) !important;
}
.offer-explorer-card{
  background:rgba(4,10,20,.07) !important;
}
.offer-explorer-card__reveal{
  background:rgba(3,9,18,.10) !important;
}

/* Solo un po' più di distanza, senza cambiare dimensioni */
.offer-explorer-card.is-prev{
  transform:translateX(calc(-50% - 270px)) translateZ(-75px) rotateY(10deg) scale(.86) !important;
}
.offer-explorer-card.is-next{
  transform:translateX(calc(-50% + 270px)) translateZ(-75px) rotateY(-10deg) scale(.86) !important;
}
.offers-explorer.is-focus-mode .offer-explorer-card.is-prev{
  transform:translateX(calc(-50% - 270px)) translateZ(-75px) rotateY(10deg) scale(.86) !important;
}
.offers-explorer.is-focus-mode .offer-explorer-card.is-next{
  transform:translateX(calc(-50% + 270px)) translateZ(-75px) rotateY(-10deg) scale(.86) !important;
}

@media(max-width:700px){
  /* Sul cellulare lasciamo le distanze attuali che funzionano bene */
  .offer-explorer-card.is-prev{
    transform:translateX(calc(-50% - 205px)) translateZ(-70px) rotateY(8deg) scale(.80) !important;
  }
  .offer-explorer-card.is-next{
    transform:translateX(calc(-50% + 205px)) translateZ(-70px) rotateY(-8deg) scale(.80) !important;
  }
}

.offer-explorer-card__detail-list li::before{content:none !important;margin:0 !important;}


/* v13 — stabilizza l'apertura del pannello dettagli (es. Perù).
   Il pannello cresce verso l'alto dalla stessa base, senza salto iniziale. */
.offer-explorer-card__details,
.offer-explorer-card__detail-panel{
  transform-origin:bottom center !important;
  will-change:opacity, transform !important;
}
.offer-explorer-card.is-expanded .offer-explorer-card__details,
.offer-explorer-card.is-expanded .offer-explorer-card__detail-panel{
  animation:none !important;
}

/* DR VIAGGI — v16: dettagli aperti compatti + CTA sempre dentro la card */
.offer-explorer-card.is-expanded .offer-explorer-card__details{
  max-height:210px !important;
  overflow-y:auto !important;
  overscroll-behavior:contain;
  scrollbar-width:thin;
  padding:12px 14px !important;
  gap:9px !important;
}
.offer-explorer-card.is-expanded .offer-explorer-card__details-label{
  margin-bottom:5px !important;
}
.offer-explorer-card.is-expanded .offer-explorer-card__detail-list,
.offer-explorer-card.is-expanded .offer-explorer-card__destination-list{
  gap:4px !important;
  line-height:1.2 !important;
}
.offer-explorer-card.is-expanded .offer-explorer-card__destination-list{
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
}
.offer-explorer-card.is-expanded .offer-explorer-card__content{
  padding-bottom:22px !important;
}
.offer-explorer-card.is-expanded .offer-explorer-card__cta{
  margin-top:1px !important;
  margin-bottom:5px !important;
  min-height:36px !important;
}
@media(max-width:700px){
  .offer-explorer-card.is-expanded .offer-explorer-card__details{
    max-height:195px !important;
    padding:11px 13px !important;
  }
  .offer-explorer-card.is-expanded .offer-explorer-card__content{
    padding-bottom:20px !important;
  }
}

/* DR VIAGGI — v17: card flip 3D, retro informativo dentro la card */
.offer-explorer-card{
  height:455px !important;
  overflow:visible !important;
  background:transparent !important;
  perspective:1200px !important;
}
.offer-explorer-card__flipper{
  position:relative !important;
  width:100% !important;
  height:100% !important;
  transform-style:preserve-3d !important;
  transition:transform .72s cubic-bezier(.2,.75,.25,1) !important;
  will-change:transform;
}
.offer-explorer-card.is-expanded .offer-explorer-card__flipper{transform:rotateY(180deg) !important}
.offer-explorer-card__face{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  overflow:hidden !important;
  border:1px solid rgba(255,255,255,.18) !important;
  border-radius:24px !important;
  box-shadow:0 24px 70px rgba(0,0,0,.28) !important;
  backface-visibility:hidden !important;
  -webkit-backface-visibility:hidden !important;
}
.offer-explorer-card__front{
  display:flex !important;
  flex-direction:column !important;
  background:rgba(4,10,20,.08) !important;
}
.offer-explorer-card__front .offer-explorer-card__media{
  flex:1 1 auto !important;
  height:auto !important;
  min-height:0 !important;
}
.offer-explorer-card__front .offer-explorer-card__content{
  flex:0 0 auto !important;
  padding:12px 18px 14px !important;
  gap:5px 12px !important;
}
.offer-explorer-card__front .offer-explorer-card__title{font-size:1.18rem !important;line-height:1.12 !important}
.offer-explorer-card__front .offer-explorer-card__price{font-size:.84rem !important}
.offer-explorer-card__front .offer-explorer-card__reveal{
  margin:2px 0 1px !important;
  padding:4px 0 !important;
  border:0 !important;
  background:transparent !important;
  font-size:.70rem !important;
  color:rgba(255,255,255,.74) !important;
}
.offer-explorer-card__front .offer-explorer-card__cta{margin-top:4px !important;margin-bottom:0 !important;min-height:36px !important}
.offer-explorer-card__back{
  transform:rotateY(180deg) !important;
  background-image:var(--offer-bg) !important;
  background-size:cover !important;
  background-position:center !important;
  color:#fff !important;
}
.offer-explorer-card__back-shade{
  position:absolute !important; inset:0 !important;
  background:linear-gradient(180deg,rgba(3,9,18,.66),rgba(3,9,18,.82)) !important;
  backdrop-filter:blur(4px) saturate(105%) !important;
  -webkit-backdrop-filter:blur(4px) saturate(105%) !important;
}
.offer-explorer-card__back-content{
  position:absolute !important; inset:0 !important; z-index:2 !important;
  padding:20px 20px 18px !important;
  overflow-y:auto !important; overscroll-behavior:contain !important;
  scrollbar-width:thin !important;
}
.offer-explorer-card__back-title{margin:0 0 15px !important;font-size:1.18rem !important;line-height:1.12 !important}
.offer-explorer-card__back .offer-explorer-card__detail-section{margin:0 !important;padding:0 !important}
.offer-explorer-card__back .offer-explorer-card__detail-section + .offer-explorer-card__detail-section{margin-top:13px !important;padding-top:12px !important;border-top:1px solid rgba(255,255,255,.18) !important}
.offer-explorer-card__back .offer-explorer-card__details-label{display:block !important;margin-bottom:7px !important;color:rgba(255,255,255,.84) !important;font-size:.65rem !important;font-weight:800 !important;letter-spacing:.09em !important;text-transform:uppercase !important}
.offer-explorer-card__back .offer-explorer-card__detail-list,
.offer-explorer-card__back .offer-explorer-card__destination-list{display:grid !important;gap:6px !important;margin:0 !important;padding:0 !important;list-style:none !important;font-size:.76rem !important;line-height:1.28 !important}
.offer-explorer-card__back .offer-explorer-card__destination-list{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
.offer-explorer-card__back .offer-explorer-card__description{font-size:.76rem !important;line-height:1.35 !important}
.offer-explorer-card__back-hint{margin-top:16px !important;padding-top:12px !important;border-top:1px solid rgba(255,255,255,.18) !important;font-size:.68rem !important;color:rgba(255,255,255,.68) !important;text-align:center !important}
/* neutralizza tutte le vecchie regole del pannello espandibile */
.offer-explorer-card.is-active.is-expanded{height:455px !important;transform:translateX(-50%) translateZ(45px) scale(1) !important}
.offers-explorer.is-focus-mode .offers-explorer__stage{height:510px !important}
@media(max-width:700px){
  .offer-explorer-card{height:430px !important}
  .offer-explorer-card.is-active.is-expanded{height:430px !important;transform:translateX(-50%) translateZ(45px) scale(1) !important}
  .offer-explorer-card__back-content{padding:18px 17px 16px !important}
  .offers-explorer.is-focus-mode .offers-explorer__stage{height:470px !important}
}
@media(prefers-reduced-motion:reduce){.offer-explorer-card__flipper{transition:none !important}}

/* DR VIAGGI — v18: rifinitura flip (nessun alone/ombra + hint sempre trasparente) */
.offer-explorer-card,
.offer-explorer-card.is-active,
.offer-explorer-card.is-active.is-expanded{
  border:0 !important;
  outline:0 !important;
  box-shadow:none !important;
  background:transparent !important;
}
.offer-explorer-card__flipper{
  box-shadow:none !important;
}
.offer-explorer-card__face,
.offer-explorer-card__front,
.offer-explorer-card__back{
  border:0 !important;
  outline:0 !important;
  box-shadow:none !important;
}
.offer-explorer-card__reveal,
.offer-explorer-card__reveal:hover,
.offer-explorer-card__reveal:focus,
.offer-explorer-card__reveal:focus-visible,
.offer-explorer-card__reveal:active,
.offer-explorer-card.is-active .offer-explorer-card__reveal,
.offer-explorer-card.is-expanded .offer-explorer-card__reveal,
.offer-explorer-card.is-active.is-expanded .offer-explorer-card__reveal{
  background:transparent !important;
  background-color:transparent !important;
  border:0 !important;
  outline:0 !important;
  box-shadow:none !important;
  -webkit-tap-highlight-color:transparent !important;
}

/* DR VIAGGI — v19: flip realmente trasparente + hint senza evidenziazione */
.offer-explorer-card,
.offer-explorer-card.is-active,
.offer-explorer-card.is-active.is-expanded{
  background:none !important;
  background-color:transparent !important;
  background-image:none !important;
  -webkit-backdrop-filter:none !important;
  backdrop-filter:none !important;
  filter:none !important;
  border:0 !important;
  outline:0 !important;
  box-shadow:none !important;
}
.offer-explorer-card__flipper{
  background:transparent !important;
  -webkit-backdrop-filter:none !important;
  backdrop-filter:none !important;
  filter:none !important;
  border:0 !important;
  box-shadow:none !important;
}
.offer-explorer-card__reveal,
.offer-explorer-card__reveal:hover,
.offer-explorer-card__reveal:focus,
.offer-explorer-card__reveal:focus-visible,
.offer-explorer-card__reveal:active,
.offer-explorer-card__reveal::before,
.offer-explorer-card__reveal::after{
  background:none !important;
  background-color:transparent !important;
  background-image:none !important;
  -webkit-backdrop-filter:none !important;
  backdrop-filter:none !important;
  filter:none !important;
  border:0 !important;
  outline:0 !important;
  box-shadow:none !important;
  -webkit-appearance:none !important;
  appearance:none !important;
  -webkit-user-select:none !important;
  user-select:none !important;
  -webkit-tap-highlight-color:transparent !important;
}
.offer-explorer-card__reveal::selection{background:transparent !important;color:inherit !important}
.offer-explorer-card__reveal::-moz-selection{background:transparent !important;color:inherit !important}

/* DR VIAGGI — v21: il fronte non cambia mai aspetto durante/après il flip */
.offer-explorer-card__front .offer-explorer-card__media,
.offer-explorer-card.is-expanded .offer-explorer-card__front .offer-explorer-card__media{
  flex:1 1 auto !important;
  flex-basis:auto !important;
  height:auto !important;
  min-height:0 !important;
  transform:none !important;
  transition:none !important;
}
.offer-explorer-card__front .offer-explorer-card__media img,
.offer-explorer-card.is-expanded .offer-explorer-card__front .offer-explorer-card__media img{
  transform:none !important;
  filter:none !important;
  opacity:1 !important;
  transition:none !important;
}
.offer-explorer-card__front .offer-explorer-card__content,
.offer-explorer-card.is-expanded .offer-explorer-card__front .offer-explorer-card__content{
  padding:12px 18px 14px !important;
  gap:5px 12px !important;
  background:linear-gradient(180deg,rgba(10,22,42,.78),rgba(6,14,28,.88)) !important;
  backdrop-filter:blur(14px) !important;
  -webkit-backdrop-filter:blur(14px) !important;
  opacity:1 !important;
  filter:none !important;
  transition:none !important;
}
.offer-explorer-card__front,
.offer-explorer-card.is-expanded .offer-explorer-card__front{
  opacity:1 !important;
  filter:none !important;
  transition:none !important;
}

/* =====================================================================
   DR VIAGGI — v22: navigazione dinamica delle offerte
   ===================================================================== */
.offers-filter-nav{
  width:min(100%,980px);
  margin:clamp(20px,3vw,30px) auto 2px;
  position:relative;
}
.offers-filter-nav__scroll{
  display:flex;
  align-items:center;
  gap:9px;
  overflow-x:auto;
  overscroll-behavior-x:contain;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
  padding:3px max(4px,calc((100% - 940px)/2)) 8px;
}
.offers-filter-nav__scroll::-webkit-scrollbar{display:none}
.offers-filter-nav__button{
  flex:0 0 auto;
  appearance:none;
  border:1px solid rgba(255,255,255,.16);
  border-radius:999px;
  background:rgba(8,18,34,.34);
  color:rgba(255,255,255,.72);
  min-height:38px;
  padding:8px 15px;
  font:inherit;
  font-size:13px;
  font-weight:650;
  letter-spacing:.01em;
  cursor:pointer;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  transition:background .22s ease,border-color .22s ease,color .22s ease,transform .22s ease;
  white-space:nowrap;
}
.offers-filter-nav__button:hover{color:#fff;border-color:rgba(255,255,255,.30);transform:translateY(-1px)}
.offers-filter-nav__button.is-active{
  color:#07101f;
  background:rgba(255,255,255,.94);
  border-color:rgba(255,255,255,.94);
  box-shadow:0 8px 24px rgba(0,0,0,.12);
}
@media(max-width:620px){
  .offers-filter-nav{width:calc(100% + 24px);margin-left:-12px;margin-right:-12px}
  .offers-filter-nav__scroll{padding-left:12px;padding-right:12px}
  .offers-filter-nav__button{min-height:36px;padding:7px 13px;font-size:12.5px}
}

/* =====================================================================
   DR VIAGGI — v23: rail offerte compatta e realmente scorrevole
   ===================================================================== */
.offers-panel,
.offers-panel .panel__inner,
.offers-panel .panel__content{
  max-width:100%;
  overflow-x:clip;
}
.offers-filter-nav{
  width:clamp(560px,66vw,760px) !important;
  max-width:calc(100vw - 40px) !important;
  margin:clamp(20px,3vw,30px) auto 2px !important;
  overflow:hidden !important;
  position:relative;
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 18px,#000 calc(100% - 34px),transparent 100%);
  mask-image:linear-gradient(to right,transparent 0,#000 18px,#000 calc(100% - 34px),transparent 100%);
}
.offers-filter-nav__scroll{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  display:flex;
  flex-wrap:nowrap !important;
  align-items:center;
  gap:9px;
  overflow-x:auto !important;
  overflow-y:hidden !important;
  overscroll-behavior-x:contain;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
  touch-action:pan-x;
  cursor:grab;
  padding:3px 24px 8px !important;
  scroll-padding-inline:24px;
}
.offers-filter-nav__scroll.is-dragging{cursor:grabbing;scroll-behavior:auto;user-select:none}
.offers-filter-nav__scroll::-webkit-scrollbar{display:none;width:0;height:0}
.offers-filter-nav__button{flex:0 0 auto !important;white-space:nowrap !important}
@media(max-width:620px){
  .offers-filter-nav{
    width:calc(100vw - 28px) !important;
    max-width:calc(100vw - 28px) !important;
    margin:18px auto 2px !important;
  }
  .offers-filter-nav__scroll{
    gap:8px;
    padding:3px 20px 8px !important;
    scroll-padding-inline:20px;
  }
  .offers-filter-nav__button{
    min-height:36px;
    padding:7px 13px;
    font-size:12.5px;
  }
}
\n\n/* =====================================================================\n   DR VIAGGI — v24: rail stabile, trasparente, nessun movimento pagina\n   ===================================================================== */\nhtml,body{\n  width:100%;\n  max-width:100%;\n  overflow-x:hidden !important;\n}\n.offers-filter-nav{\n  width:min(720px,calc(100% - 48px)) !important;\n  max-width:720px !important;\n  margin:clamp(20px,3vw,30px) auto 2px !important;\n  overflow:hidden !important;\n  position:relative;\n  -webkit-mask-image:none !important;\n  mask-image:none !important;\n  background:transparent !important;\n  border:0 !important;\n  box-shadow:none !important;\n}\n.offers-filter-nav__scroll{\n  width:100% !important;\n  max-width:100% !important;\n  box-sizing:border-box !important;\n  display:flex !important;\n  flex-wrap:nowrap !important;\n  align-items:center !important;\n  gap:9px !important;\n  overflow-x:auto !important;\n  overflow-y:hidden !important;\n  scrollbar-width:none !important;\n  -webkit-overflow-scrolling:touch;\n  overscroll-behavior-x:contain;\n  touch-action:pan-x;\n  padding:3px 18px 8px !important;\n  scroll-padding-inline:18px;\n}\n.offers-filter-nav__scroll::-webkit-scrollbar{display:none !important;width:0 !important;height:0 !important}\n.offers-filter-nav__button{\n  flex:0 0 auto !important;\n  white-space:nowrap !important;\n}\n@media(max-width:620px){\n  .offers-filter-nav{\n    width:calc(100% - 24px) !important;\n    max-width:calc(100% - 24px) !important;\n    margin:18px auto 2px !important;\n  }\n  .offers-filter-nav__scroll{\n    gap:8px !important;\n    padding:3px 12px 8px !important;\n    scroll-padding-inline:12px;\n  }\n}\n\n\n/* =====================================================================\n   DR VIAGGI — v25: offerte integrate nello sfondo + rail autocentrante\n   ===================================================================== */\n/* Nessun pannello/riquadro dietro alla testata offerte. La leggibilità\n   nasce da una sfumatura morbida, coerente con la sezione Chi siamo. */\n.offers-panel .panel__content::before{\n  display:block !important;\n  inset:-16% -10% -18% -10% !important;\n  background:radial-gradient(ellipse 62% 38% at 34% 23%,\n    rgba(4,12,28,.48) 0%,\n    rgba(4,12,28,.39) 34%,\n    rgba(4,12,28,.22) 58%,\n    rgba(4,12,28,.08) 76%,\n    rgba(4,12,28,0) 100%) !important;\n}\n.offers-panel .offers-head::before{display:none !important}\n.offers-head,\n.offers-explorer,\n.offers-filter-nav{\n  background:transparent !important;\n  border:0 !important;\n  box-shadow:none !important;\n}\n\n/* Rail: finestra pulita, senza rettangolo visibile. */\n.offers-filter-nav{\n  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 24px,#000 calc(100% - 24px),transparent 100%) !important;\n  mask-image:linear-gradient(to right,transparent 0,#000 24px,#000 calc(100% - 24px),transparent 100%) !important;\n}\n.offers-filter-nav__scroll{scroll-behavior:smooth}\n\n/* Una sola offerta deve sembrare intenzionale, non un carosello rotto. */\n.offers-explorer.has-single-offer .offers-controller-wrap{display:none !important}\n.offers-explorer.has-single-offer .offers-explorer__stage{margin-inline:auto !important}\n\n@media(max-width:620px){\n  .offers-panel .panel__content::before{\n    inset:-10% -18% -12% -18% !important;\n    background:radial-gradient(ellipse 78% 34% at 42% 18%,\n      rgba(4,12,28,.46) 0%,\n      rgba(4,12,28,.34) 40%,\n      rgba(4,12,28,.15) 68%,\n      rgba(4,12,28,0) 100%) !important;\n  }\n}\n
/* =====================================================================
   DR VIAGGI — v26: sfumatura radiale organica testata offerte
   Solo intervento visivo: nessun cambiamento a rail, filtri o card.
   ===================================================================== */
.offers-panel .panel__content::before{
  display:none !important;
}
.offers-panel .offers-head{
  position:relative;
  isolation:isolate;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}
.offers-panel .offers-head::before{
  content:"";
  display:block !important;
  position:absolute;
  inset:-48% -12% -58% -12%;
  z-index:-1;
  pointer-events:none;
  background:radial-gradient(50% 50% at 50% 50%,
    rgba(4,12,28,.56) 0%,
    rgba(4,12,28,.50) 34%,
    rgba(4,12,28,.34) 57%,
    rgba(4,12,28,.13) 78%,
    rgba(4,12,28,0) 100%) !important;
}
@media(max-width:900px){
  .offers-panel .offers-head::before{
    inset:-34% -18% -46% -18%;
    background:radial-gradient(50% 50% at 50% 50%,
      rgba(4,12,28,.58) 0%,
      rgba(4,12,28,.50) 36%,
      rgba(4,12,28,.32) 60%,
      rgba(4,12,28,.12) 80%,
      rgba(4,12,28,0) 100%) !important;
  }
}

/* =====================================================================
   DR VIAGGI — v27: sfumatura offerte identica al linguaggio Chi siamo
   Nessun pannello rettangolare: solo velo radiale che muore a zero.
   ===================================================================== */
.offers-panel .panel__content::before{
  display:none !important;
}
.offers-panel .offers-head{
  position:relative !important;
  isolation:isolate !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}
.offers-panel .offers-head::before{
  content:"" !important;
  display:block !important;
  position:absolute !important;
  inset:-30% -34% -46% -34% !important;
  z-index:-1 !important;
  pointer-events:none !important;
  background:radial-gradient(50% 50% at 50% 50%,
      rgba(4,12,28,.64) 0%,
      rgba(4,12,28,.60) 36%,
      rgba(4,12,28,.43) 58%,
      rgba(4,12,28,.16) 79%,
      rgba(4,12,28,0) 100%) !important;
}
\n\n/* =====================================================================\n   DR VIAGGI — v28: sfumatura senza bordi + rail mobile confinata\n   ===================================================================== */\n/* La causa del rettangolo era il clipping orizzontale del contenuto:\n   tagliava la sfumatura prima che arrivasse a trasparenza. */\n.offers-panel .panel__content{\n  overflow:visible !important;\n}\n.offers-panel .panel__inner{\n  overflow:visible !important;\n}\n.offers-panel{\n  overflow:hidden !important;\n}\n\n/* Un'unica macchia ellittica: zero colore ai bordi, nessun box. */\n.offers-panel .panel__content::before{\n  display:none !important;\n}\n.offers-panel .offers-head{\n  position:relative !important;\n  isolation:isolate !important;\n  background:none !important;\n  border:0 !important;\n  box-shadow:none !important;\n}\n.offers-panel .offers-head::before{\n  content:"" !important;\n  display:block !important;\n  position:absolute !important;\n  left:-18vw !important;\n  right:-18vw !important;\n  top:-11vh !important;\n  bottom:-14vh !important;\n  z-index:-1 !important;\n  pointer-events:none !important;\n  background:radial-gradient(ellipse 56% 54% at 43% 48%,\n    rgba(4,12,28,.62) 0%,\n    rgba(4,12,28,.53) 34%,\n    rgba(4,12,28,.34) 57%,\n    rgba(4,12,28,.13) 76%,\n    rgba(4,12,28,0) 100%) !important;\n}\n\n/* La rail vive in una finestra propria e non può allargare la pagina. */\n.offers-filter-nav{\n  box-sizing:border-box !important;\n  max-width:min(720px,calc(100vw - 32px)) !important;\n  overflow:hidden !important;\n  contain:layout paint !important;\n}\n.offers-filter-nav__scroll{\n  min-width:0 !important;\n  max-width:100% !important;\n  scroll-behavior:auto !important;\n  overscroll-behavior-x:contain !important;\n}\n@media(max-width:620px){\n  .offers-panel .offers-head::before{\n    left:-42vw !important;\n    right:-42vw !important;\n    top:-8vh !important;\n    bottom:-11vh !important;\n    background:radial-gradient(ellipse 54% 52% at 50% 46%,\n      rgba(4,12,28,.60) 0%,\n      rgba(4,12,28,.49) 36%,\n      rgba(4,12,28,.29) 60%,\n      rgba(4,12,28,.10) 79%,\n      rgba(4,12,28,0) 100%) !important;\n  }\n  .offers-filter-nav{\n    width:calc(100% - 24px) !important;\n    max-width:calc(100% - 24px) !important;\n    margin-left:auto !important;\n    margin-right:auto !important;\n  }\n}\n
/* =====================================================================
   DR VIAGGI — v29: alone ovale offerte, senza rettangolo
   Unica modifica rispetto a v28: sfondo visivo della testata offerte.
   ===================================================================== */
.offers-panel .panel__content::before{
  display:none !important;
}
.offers-panel .offers-head{
  position:relative !important;
  isolation:isolate !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}
.offers-panel .offers-head::before{
  content:"" !important;
  display:block !important;
  position:absolute !important;
  z-index:-1 !important;
  pointer-events:none !important;
  left:3% !important;
  top:50% !important;
  width:94% !important;
  height:150% !important;
  transform:translateY(-50%) !important;
  border-radius:50% !important;
  background:rgba(4,12,28,.50) !important;
  filter:blur(78px) !important;
  -webkit-filter:blur(78px) !important;
  opacity:1 !important;
}
@media(max-width:860px){
  .offers-panel .offers-head::before{
    left:8% !important;
    width:84% !important;
    height:135% !important;
    background:rgba(4,12,28,.46) !important;
    filter:blur(58px) !important;
    -webkit-filter:blur(58px) !important;
  }
}

/* =====================================================================
   DR VIAGGI — v30: testata offerte più interna + alone senza angoli
   Mantiene intatti mobile/rail/card della v28-v29.
   ===================================================================== */
/* Desktop/tablet: portiamo i testi verso il centro, come Chi siamo. */
@media (min-width: 621px){
  .offers-panel .offers-head{
    width:min(1180px, calc(100% - 150px)) !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
}

/* Nessun pannello: l'alone è un'ellisse che muore realmente a zero. */
.offers-panel .offers-head::before{
  content:"" !important;
  display:block !important;
  position:absolute !important;
  z-index:-1 !important;
  pointer-events:none !important;
  left:50% !important;
  top:50% !important;
  width:128% !important;
  height:230% !important;
  transform:translate(-50%,-50%) !important;
  border-radius:50% !important;
  filter:none !important;
  -webkit-filter:none !important;
  opacity:1 !important;
  background:radial-gradient(ellipse at center,
    rgba(4,12,28,.56) 0%,
    rgba(4,12,28,.48) 30%,
    rgba(4,12,28,.30) 52%,
    rgba(4,12,28,.12) 70%,
    rgba(4,12,28,.035) 82%,
    rgba(4,12,28,0) 100%) !important;
  -webkit-mask-image:radial-gradient(ellipse at center,#000 0%,#000 58%,rgba(0,0,0,.72) 72%,rgba(0,0,0,.28) 86%,transparent 100%) !important;
  mask-image:radial-gradient(ellipse at center,#000 0%,#000 58%,rgba(0,0,0,.72) 72%,rgba(0,0,0,.28) 86%,transparent 100%) !important;
}

/* Telefono: impaginazione invariata; eliminiamo soltanto qualsiasi bordo dell'alone. */
@media (max-width: 620px){
  .offers-panel .offers-head{
    width:auto !important;
    margin-left:0 !important;
    margin-right:0 !important;
  }
  .offers-panel .offers-head::before{
    left:50% !important;
    top:50% !important;
    width:155% !important;
    height:190% !important;
    transform:translate(-50%,-50%) !important;
    border-radius:50% !important;
    background:radial-gradient(ellipse at center,
      rgba(4,12,28,.52) 0%,
      rgba(4,12,28,.42) 34%,
      rgba(4,12,28,.23) 58%,
      rgba(4,12,28,.08) 76%,
      rgba(4,12,28,0) 100%) !important;
    -webkit-mask-image:radial-gradient(ellipse at center,#000 0%,#000 55%,rgba(0,0,0,.62) 72%,rgba(0,0,0,.20) 87%,transparent 100%) !important;
    mask-image:radial-gradient(ellipse at center,#000 0%,#000 55%,rgba(0,0,0,.62) 72%,rgba(0,0,0,.20) 87%,transparent 100%) !important;
  }
}

/* =====================================================================
   DR VIAGGI — v31: ombra offerte organica, senza contenitore visibile
   La sfumatura vive sull'intera sezione: nessun bordo può essere tagliato
   dalla testata. Posizione testi/rail/card invariata rispetto alla v30.
   ===================================================================== */
.offers-panel .offers-head::before{
  display:none !important;
  content:none !important;
  background:none !important;
  -webkit-mask-image:none !important;
  mask-image:none !important;
}

.offers-panel::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:
    radial-gradient(ellipse 47% 34% at 35% 36%,
      rgba(4,12,28,.72) 0%,
      rgba(4,12,28,.61) 30%,
      rgba(4,12,28,.40) 52%,
      rgba(4,12,28,.18) 70%,
      rgba(4,12,28,.055) 84%,
      rgba(4,12,28,0) 100%),
    radial-gradient(ellipse 38% 27% at 68% 37%,
      rgba(4,12,28,.50) 0%,
      rgba(4,12,28,.34) 42%,
      rgba(4,12,28,.13) 68%,
      rgba(4,12,28,0) 100%);
}

.offers-panel .panel__inner{
  position:relative;
  z-index:1;
}

@media (max-width:620px){
  .offers-panel::before{
    background:
      radial-gradient(ellipse 76% 30% at 50% 25%,
        rgba(4,12,28,.66) 0%,
        rgba(4,12,28,.53) 34%,
        rgba(4,12,28,.31) 56%,
        rgba(4,12,28,.12) 75%,
        rgba(4,12,28,0) 100%);
  }
}


/* ================================================================
   v34 — CTA Personalizza il viaggio sotto il carosello offerte
   ================================================================ */
.offers-custom-trip-cta{
  display:flex;
  justify-content:center;
  width:100%;
  margin:clamp(20px,3vw,34px) auto 0;
  position:relative;
  z-index:8;
}
.offers-custom-trip-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  min-height:54px;
  padding:0 26px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:999px;
  background:rgba(255,255,255,.09);
  box-shadow:0 12px 36px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.10);
  -webkit-backdrop-filter:blur(14px);
  backdrop-filter:blur(14px);
  color:#fff;
  font-size:clamp(.88rem,1.1vw,.98rem);
  font-weight:650;
  letter-spacing:.01em;
  text-decoration:none;
  transition:transform .28s ease, background .28s ease, border-color .28s ease, box-shadow .28s ease;
}
.offers-custom-trip-btn:hover{
  transform:translateY(-2px);
  background:rgba(255,255,255,.15);
  border-color:rgba(255,255,255,.44);
  box-shadow:0 16px 42px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.14);
}
.offers-custom-trip-btn:focus-visible{
  outline:2px solid rgba(255,255,255,.92);
  outline-offset:4px;
}
.offers-custom-trip-btn__arrow{
  display:inline-grid;
  place-items:center;
  width:28px;
  height:28px;
  border-radius:50%;
  background:rgba(255,255,255,.14);
  font-size:1.05rem;
  line-height:1;
  transition:transform .28s ease, background .28s ease;
}
.offers-custom-trip-btn:hover .offers-custom-trip-btn__arrow{
  transform:translateX(3px);
  background:rgba(255,255,255,.20);
}
@media (max-width:620px){
  .offers-custom-trip-cta{margin-top:18px;padding:0 18px}
  .offers-custom-trip-btn{width:100%;max-width:330px;min-height:52px;padding:0 20px}
}


/* ================================================================
   v34.1 — CTA offerte compatta, senza vuoto verticale
   ================================================================ */
.offers-panel{
  padding-block:0 !important;
}
.offers-panel .panel__inner{
  padding-bottom:clamp(18px,2.5vh,30px) !important;
}
.offers-custom-trip-cta{
  margin-top:6px !important;
  margin-bottom:0 !important;
}
.offers-custom-trip-btn{
  min-height:64px !important;
  padding:10px 22px 10px 26px !important;
  gap:18px !important;
  text-align:left;
}
.offers-custom-trip-copy{
  display:flex;
  flex-direction:column;
  gap:2px;
  line-height:1.18;
}
.offers-custom-trip-copy > span{
  font-size:.76rem;
  font-weight:600;
  color:rgba(255,255,255,.72);
}
.offers-custom-trip-copy small{
  display:block;
  margin-top:2px;
  font-size:.72rem;
  font-weight:450;
  color:rgba(255,255,255,.58);
}
.offers-custom-trip-copy strong{
  display:block;
  margin-top:5px;
  font-size:.94rem;
  font-weight:700;
  color:#fff;
}
@media(max-width:620px){
  .offers-panel .panel__inner{padding-bottom:18px !important}
  .offers-custom-trip-cta{margin-top:4px !important;padding:0 16px !important}
  .offers-custom-trip-btn{max-width:350px !important;min-height:62px !important;padding:9px 18px 9px 21px !important}
}


/* ================================================================
   v34.2 — CTA editoriale stabile sotto il carosello
   ================================================================ */
.offers-panel .panel__inner{
  padding-bottom:clamp(20px,2.8vh,34px) !important;
}
.offers-custom-trip-cta{
  width:min(760px,calc(100% - 36px)) !important;
  margin:clamp(14px,2.2vh,24px) auto 0 !important;
  padding:0 !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:12px !important;
  position:relative !important;
  z-index:8 !important;
  text-align:center !important;
  opacity:1 !important;
  visibility:visible !important;
  transform:none !important;
}
.offers-custom-trip-copy{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  gap:4px !important;
  line-height:1.25 !important;
}
.offers-custom-trip-copy strong{
  margin:0 !important;
  color:#fff !important;
  font-size:clamp(1.02rem,1.45vw,1.28rem) !important;
  font-weight:700 !important;
  letter-spacing:-.015em !important;
}
.offers-custom-trip-copy > span{
  color:rgba(255,255,255,.68) !important;
  font-size:clamp(.82rem,1vw,.94rem) !important;
  font-weight:450 !important;
}
.offers-custom-trip-btn{
  min-height:0 !important;
  padding:10px 18px !important;
  gap:9px !important;
  display:inline-flex !important;
  align-items:center !important;
  width:auto !important;
  max-width:none !important;
  border:1px solid rgba(255,255,255,.30) !important;
  border-radius:999px !important;
  background:rgba(255,255,255,.10) !important;
  box-shadow:none !important;
  color:#fff !important;
  font-size:.88rem !important;
  font-weight:650 !important;
  text-align:center !important;
  text-decoration:none !important;
  -webkit-backdrop-filter:blur(10px) !important;
  backdrop-filter:blur(10px) !important;
}
.offers-custom-trip-btn:hover{
  transform:translateY(-1px) !important;
  background:rgba(255,255,255,.16) !important;
  border-color:rgba(255,255,255,.46) !important;
  box-shadow:none !important;
}
.offers-custom-trip-btn > span{
  display:inline !important;
  width:auto !important;
  height:auto !important;
  border:0 !important;
  border-radius:0 !important;
  background:none !important;
  font-size:1rem !important;
  line-height:1 !important;
}
@media(max-width:620px){
  .offers-panel .panel__inner{padding-bottom:20px !important}
  .offers-custom-trip-cta{
    width:calc(100% - 32px) !important;
    margin-top:12px !important;
    gap:10px !important;
  }
  .offers-custom-trip-copy strong{font-size:1rem !important}
  .offers-custom-trip-copy > span{font-size:.80rem !important}
  .offers-custom-trip-btn{padding:9px 16px !important;font-size:.84rem !important}
}

/* ================================================================
   v34.3 — CTA offerte ad alto contrasto
   ================================================================ */
.offers-custom-trip-copy strong{
  color:#fff !important;
  text-shadow:0 2px 12px rgba(0,0,0,.42) !important;
}
.offers-custom-trip-copy > span{
  color:rgba(255,255,255,.96) !important;
  font-weight:500 !important;
  text-shadow:0 2px 10px rgba(0,0,0,.42) !important;
}
.offers-custom-trip-btn{
  background:#fff !important;
  border-color:#fff !important;
  color:#101927 !important;
  box-shadow:0 10px 28px rgba(0,0,0,.16) !important;
  -webkit-backdrop-filter:none !important;
  backdrop-filter:none !important;
}
.offers-custom-trip-btn:hover{
  background:#fff !important;
  border-color:#fff !important;
  color:#101927 !important;
  box-shadow:0 12px 32px rgba(0,0,0,.20) !important;
}
.offers-custom-trip-btn > span{
  color:#101927 !important;
}

/* ================================================================
   v34.6 — sfumatura offerte estesa alla descrizione
   Desktop: alone morbido anche dietro il testo a destra.
   Mobile: secondo alone che sale dal basso dietro la descrizione.
   Nessuna modifica a layout, card, rail o CTA.
   ================================================================ */
@media (min-width:621px){
  .offers-panel::before{
    background:
      radial-gradient(ellipse 50% 35% at 35% 36%,
        rgba(4,12,28,.72) 0%,
        rgba(4,12,28,.61) 30%,
        rgba(4,12,28,.40) 52%,
        rgba(4,12,28,.18) 70%,
        rgba(4,12,28,.055) 84%,
        rgba(4,12,28,0) 100%),
      radial-gradient(ellipse 46% 30% at 69% 37%,
        rgba(4,12,28,.60) 0%,
        rgba(4,12,28,.46) 36%,
        rgba(4,12,28,.25) 58%,
        rgba(4,12,28,.09) 78%,
        rgba(4,12,28,0) 100%) !important;
  }
}
@media (max-width:620px){
  .offers-panel::before{
    background:
      radial-gradient(ellipse 76% 30% at 50% 25%,
        rgba(4,12,28,.66) 0%,
        rgba(4,12,28,.53) 34%,
        rgba(4,12,28,.31) 56%,
        rgba(4,12,28,.12) 75%,
        rgba(4,12,28,0) 100%),
      radial-gradient(ellipse 86% 24% at 50% 46%,
        rgba(4,12,28,.58) 0%,
        rgba(4,12,28,.42) 36%,
        rgba(4,12,28,.20) 62%,
        rgba(4,12,28,.06) 80%,
        rgba(4,12,28,0) 100%) !important;
  }
}

/* =====================================================================
   DR VIAGGI — v34.7: fix Safari/iPhone bleed del fronte durante il flip
   Solo mobile: impedisce ai layer compositi del fronte (testo/CTA/blur)
   di attraversare il retro durante la rotazione 3D.
   ===================================================================== */
@media (max-width:700px){
  .offer-explorer-card__flipper{
    -webkit-transform-style:preserve-3d !important;
    transform-style:preserve-3d !important;
  }
  .offer-explorer-card__face{
    -webkit-backface-visibility:hidden !important;
    backface-visibility:hidden !important;
    -webkit-transform-style:flat !important;
    transform-style:flat !important;
    isolation:isolate !important;
  }
  .offer-explorer-card__front{
    -webkit-transform:rotateY(0deg) translateZ(1px) !important;
    transform:rotateY(0deg) translateZ(1px) !important;
    z-index:2 !important;
  }
  .offer-explorer-card__back{
    -webkit-transform:rotateY(180deg) translateZ(1px) !important;
    transform:rotateY(180deg) translateZ(1px) !important;
    z-index:1 !important;
  }
  .offer-explorer-card.is-expanded .offer-explorer-card__front{
    z-index:1 !important;
  }
  .offer-explorer-card.is-expanded .offer-explorer-card__back{
    z-index:2 !important;
  }
  .offer-explorer-card__front,
  .offer-explorer-card__front *{
    -webkit-backface-visibility:hidden !important;
    backface-visibility:hidden !important;
  }
}

/* =====================================================================
   DR VIAGGI — v34.8: card mobile -12%
   Solo smartphone: l'intera card 3D viene ridotta uniformemente,
   mantenendo proporzioni, flip e contenuti invariati.
   ===================================================================== */
@media (max-width:700px){
  .offer-explorer-card.is-active{
    transform:translateX(-50%) translateZ(45px) scale(.88) !important;
  }
  .offer-explorer-card.is-active.is-expanded{
    transform:translateX(-50%) translateZ(45px) scale(.88) !important;
  }
}
