/* M'Imbarco, sea accents, rhythm bands, immersive mobile nav */

.services-dropdown i svg{
  width:15px;
  height:15px;
  display:block;
  stroke:currentColor;
  fill:none;
}

/* --- Accenti turchesi (arancio solo CTA) --- */
.eyebrow,
.eyebrow-light,
.service-icon,
.arrow,
.article-meta span,
.promise-list span,
.info-card span,
.mi-ticket-code,
.mi-stamp,
.season-intro.ticket-strip [data-season-label],
.season-intro span,
.text-link span,
.contact-list a:hover,
.board-pass-main .eyebrow,
.board-pass-main .eyebrow-light,
.voyage-legend i,
.hero-gate b,
.quick-nav a span,
.benefit-strip span,
.post-meta,
.main-nav > a:hover,
.nav-services.is-active > button{
  color:var(--turquoise)!important;
}
.mi-stamp,
.season-intro.ticket-strip [data-season-label],
.hero-gate b{
  border-color:var(--turquoise)!important;
}
.mi-progress{
  background:linear-gradient(90deg,var(--turquoise),var(--azure))!important;
  box-shadow:0 0 12px rgba(43,184,166,.4)!important;
}
.trust-line span:before{color:var(--turquoise)!important}
.image-note{background:var(--turquoise)!important}

.button,
.finder-submit,
.board-pass-main .button,
.board-pass-main .button-light,
.header-cta,
a.button{
  background:var(--coral)!important;
  color:#fff!important;
}
.button:hover,
.finder-submit:hover,
.board-pass-main .button:hover,
.board-pass-main .button-light:hover,
.header-cta:hover{
  background:var(--coral-dark)!important;
}
.button-light:not(.board-pass-main .button-light){
  background:#fff!important;
  color:var(--ink)!important;
}
.button-light:not(.board-pass-main .button-light):hover{
  background:var(--sand)!important;
}

/* --- Titoli: niente clipping discendenti (g, p, q, y, j) --- */
.hero h1,
.page-hero h1,
.archive-head h1,
.blog-head h1,
.post-head h1,
.destination-hero h1,
.section-heading h2,
.process-intro h2,
.promise h2,
.faq h2,
.board-pass-main h2,
.mi-bridge h2,
.guide-body h2,
.final-cta h2,
.discover-strip strong,
.mi-quote blockquote{
  line-height:1.15!important;
  overflow:visible!important;
  padding-bottom:.14em!important;
}
.hero h1 em,
.page-hero h1 em,
.archive-head h1 em,
.blog-head h1 em,
.section-heading h2 em,
.process-intro h2 em,
.promise h2 em,
.faq h2 em,
.board-pass-main h2 em,
.mi-bridge h2 em,
.final-cta h2 em,
.destination-hero h1{
  overflow:visible!important;
}
.hero h1 em,
.page-hero h1 em,
.section-heading h2 em,
.process-intro h2 em,
.promise h2 em,
.faq h2 em,
.board-pass-main h2 em,
.mi-bridge h2 em,
.final-cta h2 em{
  display:inline;
  padding-bottom:.1em;
  line-height:inherit;
}
.word,
.line,
.char{
  display:inline!important;
  overflow:visible!important;
  padding-bottom:.08em;
  vertical-align:baseline;
}
.service-card{
  overflow:visible!important;
}
.service-grid{
  overflow:hidden; /* tiene i radius, le card restano visibili sul testo */
}
.service-copy strong{
  line-height:1.25!important;
  overflow:visible;
  padding-bottom:.04em;
  display:inline-block;
}
.service-copy small{
  line-height:1.4!important;
}
.mi-ticket-main strong,
.ticket-body h3,
.info-card h2,
.info-card h3,
.article-card h3,
.mi-bridge-card h3{
  line-height:1.25!important;
  overflow:visible!important;
  padding-bottom:.06em;
}
.destination-overlay strong{
  line-height:1.2!important;
  overflow:visible;
  padding-bottom:.06em;
  display:inline-block;
}
.destination-overlay .dest-blurb{
  line-height:1.35!important;
}
.mood-row a,
.mood-label{
  line-height:1.25!important;
  overflow:visible;
}
.page-hero,
.archive-head,
.blog-head,
.destination-hero .shell{
  overflow:visible;
}
.destination-hero{
  overflow:hidden; /* solo media */
}
.destination-hero h1{
  line-height:1.08!important;
}

/* --- Ritmo sezioni: mai due uguali di fila --- */
.band-paper,.section.band-paper{background:var(--paper)!important;color:var(--ink)}
.band-sand,.section.band-sand{background:var(--sand)!important;color:var(--ink)}
.band-sky,.section.band-sky{background:var(--sky)!important;color:var(--ink)}
.band-mint,.section.band-mint{background:var(--mint)!important;color:var(--ink)}
.band-ink,.section.band-ink{background:var(--ink)!important;color:#fff}
.band-ink .eyebrow{color:var(--turquoise)!important}
.band-ink p,.band-ink .page-lead{color:rgba(255,255,255,.68)}

/* Home: force alternating bands */
.services{background:var(--paper)!important}

/* Home servizi: 9 card → griglia piena, zero buchi */
.services .service-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.services .service-featured{
  grid-column:auto;
}
.services .service-card{
  min-height:200px;
}
@media(max-width:760px){
  .services .service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:430px){
  .services .service-grid{grid-template-columns:1fr}
}

.process-section{background:var(--sand)!important}
.seasonal{background:var(--sky)!important}
.destinations{background:var(--paper)!important}
.inspirations{background:var(--mint)!important;padding-top:var(--section-y)!important;padding-bottom:var(--section-y)}
.journal{background:var(--sand)!important}
.promise{background:var(--paper)!important}
.faq.section{background:var(--sky)!important}
.discover-strip{background:var(--ink)!important}

/* Bridge / utility sections */
.mi-bridge{padding:var(--section-y) 0}
.mi-bridge-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:var(--section-head-gap)
}
.mi-bridge-card{
  padding:28px 24px;border-radius:14px;background:#fff;
  border:1px solid var(--line);box-shadow:0 12px 36px rgba(6,26,46,.06);
  transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s;
}
.mi-bridge-card:hover{transform:translateY(-6px);box-shadow:0 20px 48px rgba(6,26,46,.12)}
.mi-bridge-card span{
  font:700 10px/1 "Space Mono",monospace;letter-spacing:.14em;text-transform:uppercase;
  color:var(--turquoise);
}
.mi-bridge-card h3{font:600 20px/1.25 Manrope,sans-serif;margin:18px 0 8px}
.mi-bridge-card p{margin:0;color:var(--muted);font-size:14px}
.mi-quote{
  padding:var(--section-y) 0;text-align:center;
  background:
    linear-gradient(180deg,rgba(6,26,46,.92),rgba(6,26,46,.88)),
    url("https://images.unsplash.com/photo-1507525428034-b723cf961d3e?auto=format&fit=crop&w=1600&q=70") center/cover;
  color:#fff;
}
.mi-quote blockquote{
  margin:0 auto;max-width:820px;
  font:500 clamp(28px,4vw,48px)/1.2 Manrope,sans-serif;letter-spacing:-.03em;
}
.mi-quote cite{
  display:block;margin-top:22px;
  font:700 11px/1 "Space Mono",monospace;letter-spacing:.16em;text-transform:uppercase;
  color:var(--turquoise);font-style:normal;
}
.route-rail{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:0;margin-top:var(--section-head-gap);
  border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;
}
.route-rail a{
  padding:28px 22px;border-right:1px solid var(--line);
  min-height:44px;
  transition:background .25s,transform .25s;
}
.route-rail a:last-child{border-right:0}
.route-rail a:hover{background:var(--mint);transform:translateY(-2px)}
.route-rail small{
  display:block;font:700 10px/1 "Space Mono",monospace;letter-spacing:.12em;
  text-transform:uppercase;color:var(--turquoise);margin-bottom:14px;
}
.route-rail strong{display:block;font:600 18px Manrope,sans-serif;margin-bottom:6px}
.route-rail span{color:var(--muted);font-size:13px}

@media(max-width:900px){
  .mi-bridge-grid{grid-template-columns:1fr 1fr}
  .route-rail{grid-template-columns:1fr 1fr}
  .route-rail a:nth-child(2){border-right:0}
  .route-rail a{border-bottom:1px solid var(--line)}
}
@media(max-width:560px){
  .mi-bridge-grid,.route-rail{grid-template-columns:1fr}
  .route-rail a{border-right:0}
}

/* Swiper destinations */
.dest-swiper{overflow:hidden;padding-bottom:36px}
.dest-swiper .swiper-slide{height:auto}
.dest-swiper .destination-card{height:420px;display:block}
.dest-swiper .swiper-pagination-bullet{background:var(--ink);opacity:.25}
.dest-swiper .swiper-pagination-bullet-active{background:var(--turquoise);opacity:1}
.dest-swiper .swiper-button-prev,
.dest-swiper .swiper-button-next{
  color:var(--ink);width:44px;height:44px;border-radius:50%;
  background:rgba(255,255,255,.9);box-shadow:var(--shadow);
}
.dest-swiper .swiper-button-prev:after,
.dest-swiper .swiper-button-next:after{font-size:14px;font-weight:700}

/* Discovery counters */
.discover-strip{
  padding:70px 0;background:var(--ink);color:#fff;position:relative;overflow:hidden;
}
.discover-strip .shell{
  display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center;
}
.discover-strip strong{
  display:block;font:600 clamp(36px,5vw,56px)/1.15 Manrope,sans-serif;letter-spacing:-.04em;
  color:#fff;
}
.discover-strip strong em{font-style:normal;color:var(--turquoise)}
.discover-strip span{
  display:block;margin-top:10px;
  font:700 10px/1.3 "Space Mono",monospace;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(255,255,255,.55);
}

/* Header unificato */
.site-header.inner-header,
.site-header.template-header{
  position:fixed!important;
  top:0;left:0;width:100%;
  z-index:50;
  background:rgba(255,255,255,.92)!important;
  color:var(--ink)!important;
  box-shadow:0 1px 0 var(--line);
  backdrop-filter:blur(14px);
}
.site-header.inner-header .header-inner,
.site-header.template-header .header-inner{height:72px}
.page-hero,.archive-head,.blog-head,.template-hero,.post-head{
  padding-top:var(--page-hero-top);
  padding-bottom:var(--page-hero-bottom);
}
.page-hero + .section,
.archive-head + .section,
.blog-head + .section,
.template-hero + .section,
.post-head + .section,
.destination-hero + .section{
  padding-top:calc(var(--section-y) / 2);
}
.section .shell > h2,
.service-editorial h2{
  margin-bottom:var(--section-head-gap);
}
.main-nav > a,
.main-nav .nav-services > button{
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.main-nav .nav-idx{display:none}
.nav-mobile-top,
.nav-mobile-footer{display:none}
.nav-cta-mobile{display:none}
.nav-label{display:inline}

/* --- Mobile menu: carta d'imbarco a pieno schermo --- */
@media(max-width:760px){
  .discover-strip .shell{grid-template-columns:1fr 1fr;gap:28px 16px}
  .dest-swiper .destination-card{height:360px}
  .dest-swiper .swiper-button-prev,
  .dest-swiper .swiper-button-next{display:none}

  .menu-toggle{
    display:grid!important;place-items:center;
    width:48px;height:48px;min-width:48px;min-height:48px;
    margin-left:auto;padding:0;position:relative;z-index:70;
    border-radius:50%;
    transition:background .25s,color .25s;
  }
  body.menu-open .menu-toggle{
    background:rgba(255,255,255,.14);
    color:#fff;
  }
  .menu-toggle i{
    position:absolute;left:50%;top:50%;
    display:block;width:18px;height:2px;margin:0!important;
    background:currentColor;border-radius:2px;
    transform:translate(-50%,-50%);
    transition:transform .4s cubic-bezier(.22,1,.36,1),opacity .25s;
  }
  .menu-toggle i:nth-child(2){transform:translate(-50%,calc(-50% - 6px))}
  .menu-toggle i:nth-child(3){transform:translate(-50%,-50%)}
  .menu-toggle i:nth-child(4){transform:translate(-50%,calc(-50% + 6px))}
  body.menu-open .menu-toggle i:nth-child(2){transform:translate(-50%,-50%) rotate(45deg)}
  body.menu-open .menu-toggle i:nth-child(3){opacity:0;transform:translate(-50%,-50%) scaleX(0)}
  body.menu-open .menu-toggle i:nth-child(4){transform:translate(-50%,-50%) rotate(-45deg)}

  body.menu-open .site-header,
  body.menu-open .site-header.inner-header,
  body.menu-open .site-header.template-header{
    background:transparent!important;
    box-shadow:none!important;
    color:#fff!important;
  }
  body.menu-open .site-header .brand{color:#fff!important}
  body.menu-open .site-header .brand:has(.brand-logo){
    background:rgba(255,255,255,.12)!important;
    box-shadow:none!important;
  }

  .site-header .main-nav{
    display:flex!important;
    position:fixed!important;
    top:0!important;right:0!important;bottom:0!important;left:0!important;
    width:100%!important;max-width:none!important;
    height:100dvh!important;min-height:100vh!important;
    z-index:65;
    flex-direction:column;
    justify-content:flex-start;
    align-items:stretch;
    gap:0;
    margin:0!important;
    padding:92px 22px 28px!important;
    overflow:auto!important;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
    color:#fff!important;
    font-size:inherit!important;
    background:
      linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),
      linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px),
      radial-gradient(circle at 90% 8%,rgba(43,184,166,.35),transparent 38%),
      radial-gradient(circle at 0% 100%,rgba(74,163,217,.28),transparent 42%),
      linear-gradient(165deg,#03111f 0%,#0a2a40 48%,#061a2e 100%)!important;
    background-size:48px 48px,48px 48px,auto,auto,auto!important;
    transform:translate3d(100%,0,0)!important;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:
      transform .55s cubic-bezier(.22,1,.36,1),
      opacity .35s ease,
      visibility 0s linear .55s;
  }
  body.menu-open .site-header .main-nav{
    transform:translate3d(0,0,0)!important;
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transition:
      transform .55s cubic-bezier(.22,1,.36,1),
      opacity .25s ease,
      visibility 0s linear 0s;
  }
  .site-header .main-nav:before{
    content:"";
    position:absolute;right:-10%;top:18%;
    width:min(280px,70vw);aspect-ratio:1;
    border:1px solid rgba(255,255,255,.12);
    border-radius:50%;
    pointer-events:none;
    opacity:.55;
  }
  .site-header .main-nav:after{
    content:"";
    position:absolute;right:8%;top:calc(18% + 12%);
    width:min(180px,46vw);aspect-ratio:1;
    border:1px dashed rgba(43,184,166,.35);
    border-radius:50%;
    pointer-events:none;
  }

  .nav-mobile-top{
    display:flex!important;
    justify-content:space-between;
    align-items:center;
    margin-bottom:28px;
    padding-bottom:14px;
    border-bottom:1px solid rgba(255,255,255,.14);
  }
  .nav-mobile-kicker,
  .nav-mobile-pass{
    font:700 10px/1 "Space Mono",monospace;
    letter-spacing:.16em;text-transform:uppercase;
  }
  .nav-mobile-kicker{color:var(--turquoise)}
  .nav-mobile-pass{color:rgba(255,255,255,.45)}

  .nav-idx{
    display:inline-flex!important;
    align-items:center;
    justify-content:flex-start;
    width:2.4em;flex:0 0 auto;
    font:700 12px/1 "Space Mono",monospace;
    letter-spacing:.06em;
    color:rgba(255,255,255,.42);
    transform:none;
    vertical-align:middle;
  }
  .site-header .main-nav > a[aria-current="page"] .nav-idx,
  .site-header .main-nav .nav-services.is-active .nav-idx{
    color:var(--turquoise);
  }

  .site-header .main-nav > a,
  .site-header .main-nav .nav-services > button{
    display:flex!important;
    align-items:center;
    gap:12px;
    width:100%;
    min-height:58px;
    border:0!important;
    border-bottom:1px solid rgba(255,255,255,.1)!important;
    padding:12px 0!important;
    color:#fff!important;
    background:transparent!important;
    font:500 clamp(28px,8vw,38px)/1.1 Manrope,sans-serif!important;
    letter-spacing:-.035em!important;
    text-align:left;
  }
  .site-header .main-nav > a:after{display:none!important}
  .site-header .main-nav .nav-label{flex:1}
  .site-header .main-nav .nav-services > button svg{
    width:14px;height:14px;margin-left:auto;
    opacity:.55;transition:transform .3s;
  }
  .site-header .main-nav .nav-services.is-open > button svg{transform:rotate(180deg);opacity:1}

  .site-header .main-nav > a:active .nav-label,
  .site-header .main-nav .nav-services > button:active .nav-label{
    color:var(--turquoise);
  }
  .site-header .main-nav > a[aria-current="page"] .nav-label{
    color:var(--turquoise)!important;
  }

  .site-header .main-nav .nav-services{border:0!important}
  .site-header .main-nav .services-dropdown{
    display:none;
    grid-template-columns:1fr!important;
    gap:6px!important;
    background:transparent!important;
    box-shadow:none!important;
    border:0!important;
    padding:4px 0 16px 2.8em!important;
    opacity:1;visibility:visible;transform:none;
    position:static;width:100%;
  }
  .site-header .main-nav .nav-services.is-open .services-dropdown{display:grid}
  .site-header .main-nav .services-dropdown a{
    display:grid!important;
    grid-template-columns:28px 1fr;
    gap:10px;
    align-items:center;
    min-height:48px;
    padding:10px 12px!important;
    border:1px solid rgba(255,255,255,.1)!important;
    border-radius:12px!important;
    color:#fff!important;
    font-size:15px!important;
    font-weight:600!important;
    letter-spacing:0!important;
    background:rgba(255,255,255,.04)!important;
  }
  .site-header .main-nav .services-dropdown a i{
    display:grid;place-items:center;
    width:28px;height:28px;border-radius:8px;
    background:rgba(43,184,166,.18);
    color:var(--turquoise);
    font-style:normal;font-size:13px;
  }
  .site-header .main-nav .services-dropdown a i svg{
    width:15px;height:15px;display:block;
    stroke:currentColor;fill:none;
  }
  .site-header .main-nav .services-dropdown strong{display:block;font-size:15px}
  .site-header .main-nav .services-dropdown small{
    display:block;margin-top:2px;
    color:rgba(255,255,255,.45);font-size:12px;font-weight:400;
  }

  .nav-mobile-footer{
    display:block!important;
    margin-top:auto;
    padding-top:28px;
  }
  .site-header .main-nav .nav-cta-mobile{
    display:inline-flex!important;
    width:100%;
    align-items:center;justify-content:center;gap:10px;
    min-height:56px;padding:0 22px;border-radius:12px!important;
    background:var(--coral)!important;color:#fff!important;
    font:700 15px/1 Manrope,sans-serif!important;
    letter-spacing:0!important;
    border:0!important;
    box-shadow:0 16px 40px rgba(255,106,61,.35);
  }
  .nav-mobile-note{
    margin:16px 0 0;
    text-align:center;
    font:700 10px/1.4 "Space Mono",monospace;
    letter-spacing:.12em;text-transform:uppercase;
    color:rgba(255,255,255,.4);
  }
  .header-cta{display:none!important}

  /* Stagger entrance when open */
  body.menu-open .site-header .main-nav .nav-mobile-top,
  body.menu-open .site-header .main-nav [data-nav-item],
  body.menu-open .site-header .main-nav .nav-mobile-footer{
    animation:nav-rise .55s cubic-bezier(.22,1,.36,1) both;
  }
  body.menu-open .site-header .main-nav .nav-mobile-top{animation-delay:.05s}
  body.menu-open .site-header .main-nav [data-nav-item]:nth-child(2){animation-delay:.1s}
  body.menu-open .site-header .main-nav [data-nav-item]:nth-child(3){animation-delay:.14s}
  body.menu-open .site-header .main-nav [data-nav-item]:nth-child(4){animation-delay:.18s}
  body.menu-open .site-header .main-nav [data-nav-item]:nth-child(5){animation-delay:.22s}
  body.menu-open .site-header .main-nav [data-nav-item]:nth-child(6){animation-delay:.26s}
  body.menu-open .site-header .main-nav [data-nav-item]:nth-child(7){animation-delay:.3s}
  body.menu-open .site-header .main-nav [data-nav-item]:nth-child(8){animation-delay:.34s}
  body.menu-open .site-header .main-nav .nav-mobile-footer{animation-delay:.4s}
}
@keyframes nav-rise{
  from{opacity:0;transform:translateY(18px)}
  to{opacity:1;transform:translateY(0)}
}
@media(max-width:760px) and (prefers-reduced-motion:reduce){
  .site-header .main-nav{
    transition:none!important;
    transform:translate3d(100%,0,0)!important;
  }
  body.menu-open .site-header .main-nav{
    transform:translate3d(0,0,0)!important;
  }
  body.menu-open .site-header .main-nav .nav-mobile-top,
  body.menu-open .site-header .main-nav [data-nav-item],
  body.menu-open .site-header .main-nav .nav-mobile-footer{animation:none}
}

/* GSAP / Lenis helpers */
html.mi-explore [data-reveal]{opacity:1;transform:none;transition:none}
html.mi-explore .service-card:hover,
html.mi-explore .destination-card:hover{
  transform:translateY(-8px);
  transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s;
}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
