/* ═══════════════════════════════════════════
   MASSIMO ZANZIBAR TOUR · style
   ═══════════════════════════════════════════ */
:root{
  --ink:#04212b; --ink-2:#08303d; --ink-3:#0d3d4c;
  --cream:#fffaf2; --sand:#f6efe2; --sand-2:#ecdfc9;
  --teal:#12b5ac; --aqua:#3ad9c2; --gold:#f4c46a; --coral:#ff7a59; --wa:#25d366;
  --txt:#0d2b34; --txt-soft:#4c6b74; --on-dark:#e9f6f5; --on-dark-soft:#9fc3c6;
  --r-s:14px; --r-m:22px; --r-l:32px; --r-xl:44px;
  --sh-s:0 2px 8px rgba(4,33,43,.06);
  --sh-m:0 18px 40px -22px rgba(4,33,43,.35);
  --sh-l:0 40px 80px -40px rgba(4,33,43,.55);
  --f-d:'Fraunces',Georgia,serif; --f-b:'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --nav-h:74px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--cream);color:var(--txt);font-family:var(--f-b);
  font-size:17px;line-height:1.65;overflow-x:hidden;-webkit-font-smoothing:antialiased;
}
body.is-locked{overflow:hidden}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input{font:inherit;color:inherit}
h1,h2,h3,h4{font-family:var(--f-d);font-weight:600;line-height:1.06;letter-spacing:-.02em;margin:0}
h2{font-size:clamp(2rem,4.6vw,3.5rem)}
h3{font-size:clamp(1.25rem,2vw,1.6rem)}
p{margin:0}
::selection{background:var(--gold);color:var(--ink)}
.wrap{width:min(1220px,100% - 2.6rem);margin-inline:auto}
.wrap--narrow{width:min(860px,100% - 2.6rem)}
.eyebrow{
  display:inline-flex;align-items:center;gap:.5rem;font-size:.74rem;font-weight:700;
  letter-spacing:.19em;text-transform:uppercase;color:var(--teal);
}
.eyebrow::before{content:'';width:26px;height:2px;border-radius:2px;background:currentColor}

/* ── cursore ─────────────────────────── */
.cursor{position:fixed;inset:0 auto auto 0;width:34px;height:34px;margin:-17px 0 0 -17px;z-index:9999;
  pointer-events:none;mix-blend-mode:difference;opacity:0;transition:opacity .3s}
.cursor span{display:block;width:100%;height:100%;border:1.5px solid #fff;border-radius:50%;
  transition:transform .22s cubic-bezier(.2,.9,.2,1),background .22s}
.cursor.is-on{opacity:1}
.cursor.is-hot span{transform:scale(1.7);background:rgba(255,255,255,.25)}
@media (hover:none),(max-width:900px){.cursor{display:none}}

/* ── barra progresso ─────────────────── */
.scrollbar{position:fixed;top:0;left:0;height:3px;width:0;z-index:998;
  background:linear-gradient(90deg,var(--aqua),var(--gold),var(--coral));box-shadow:0 0 18px rgba(58,217,194,.7)}

/* ── preloader ───────────────────────── */
.preloader{position:fixed;inset:0;z-index:10000;display:grid;place-content:center;gap:1.4rem;justify-items:center;
  background:var(--ink);transition:opacity .7s ease,visibility .7s}
.preloader.is-done{opacity:0;visibility:hidden}
.preloader__dhow{width:130px;height:130px}
.pl-sail{fill:#fff6e3;transform-origin:60px 86px;animation:sway 2.6s ease-in-out infinite}
.pl-sail--2{fill:#f0d6ac;animation-delay:.15s}
.pl-hull{fill:#f4c46a}
.pl-wave{fill:rgba(58,217,194,.35);animation:swim 2.4s linear infinite}
.pl-wave--2{fill:rgba(58,217,194,.2);animation-duration:3.4s}
@keyframes sway{50%{transform:rotate(3deg)}}
@keyframes swim{to{transform:translateX(-6px)}}
.preloader__word{font-family:var(--f-d);color:#fff;letter-spacing:.34em;font-size:.8rem;opacity:.85}
.preloader__bar{width:180px;height:2px;background:rgba(255,255,255,.15);border-radius:2px;overflow:hidden}
.preloader__bar i{display:block;height:100%;width:0;background:var(--aqua);animation:load 1.5s ease forwards}
@keyframes load{to{width:100%}}

/* ── nav ─────────────────────────────── */
.nav{
  position:fixed;top:0;left:0;right:0;height:var(--nav-h);z-index:900;display:flex;align-items:center;
  gap:1.4rem;padding:0 clamp(1rem,3vw,2.2rem);transition:background .35s,backdrop-filter .35s,box-shadow .35s,height .35s;
}
.nav.is-stuck{height:64px;background:rgba(255,250,242,.82);backdrop-filter:blur(18px) saturate(1.4);
  box-shadow:0 1px 0 rgba(4,33,43,.08),0 12px 40px -30px rgba(4,33,43,.6)}
.nav__brand{display:flex;align-items:center;gap:.7rem;color:#fff;transition:color .35s}
.nav.is-stuck .nav__brand{color:var(--ink)}
.nav__mark{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;
  background:linear-gradient(150deg,var(--teal),var(--ink-3));color:#fff;box-shadow:var(--sh-s)}
.nav__mark svg{width:22px;height:22px}
.nav__name{display:flex;flex-direction:column;font-weight:800;font-size:.98rem;letter-spacing:-.01em;line-height:1.1}
.nav__name em{font-style:normal;font-weight:500;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;opacity:.7}
.nav__links{display:flex;gap:.3rem;margin-left:auto}
.nav__links a{position:relative;padding:.55rem .8rem;border-radius:99px;font-size:.92rem;font-weight:500;
  color:rgba(255,255,255,.9);transition:color .3s,background .3s}
.nav.is-stuck .nav__links a{color:var(--txt-soft)}
.nav__links a::after{content:'';position:absolute;left:50%;bottom:.32rem;width:0;height:2px;border-radius:2px;
  background:var(--aqua);transform:translateX(-50%);transition:width .28s}
.nav__links a:hover::after,.nav__links a.is-active::after{width:22px}
.nav.is-stuck .nav__links a:hover{color:var(--ink)}
.nav__side{display:flex;align-items:center;gap:.7rem;margin-left:auto}
.nav__links+.nav__side{margin-left:0}

/* lingua */
.lang{position:relative;display:flex;padding:4px;border-radius:99px;background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(8px);transition:background .35s,border-color .35s}
.nav.is-stuck .lang{background:rgba(4,33,43,.06);border-color:rgba(4,33,43,.09)}
.lang__btn{position:relative;z-index:2;border:0;background:0;cursor:pointer;padding:.34rem .62rem;border-radius:99px;
  font-size:.76rem;font-weight:800;letter-spacing:.06em;color:rgba(255,255,255,.75);transition:color .3s}
.nav.is-stuck .lang__btn{color:var(--txt-soft)}
.lang__btn.is-active{color:var(--ink)}
.nav.is-stuck .lang__btn.is-active{color:var(--ink)}
.lang__pill{position:absolute;z-index:1;top:4px;bottom:4px;border-radius:99px;background:var(--gold);
  box-shadow:0 4px 14px -6px rgba(244,196,106,.9);transition:left .38s cubic-bezier(.6,0,.2,1),width .38s cubic-bezier(.6,0,.2,1)}

/* ── bottoni ─────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;border:0;cursor:pointer;
  padding:.72rem 1.15rem;border-radius:99px;font-weight:700;font-size:.94rem;letter-spacing:-.01em;
  transition:transform .25s cubic-bezier(.2,.9,.2,1),box-shadow .25s,background .25s,color .25s;white-space:nowrap}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn--lg{padding:.95rem 1.6rem;font-size:1rem}
.btn--block{width:100%}
.btn--wa{background:var(--wa);color:#04321a;box-shadow:0 12px 30px -14px rgba(37,211,102,.95)}
.btn--wa:hover{background:#1fc45d;box-shadow:0 18px 40px -16px rgba(37,211,102,1)}
.btn--ghost{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.3);backdrop-filter:blur(8px)}
.btn--ghost:hover{background:rgba(255,255,255,.2)}
.section--cta .btn--ghost,.section--dark .btn--ghost{color:#fff}
.btn--dark{background:var(--ink);color:#fff}
.btn--soft{background:var(--sand);color:var(--ink)}
.ico-wa{width:20px;height:20px;fill:currentColor;flex:none}
.nav__cta{padding:.56rem 1rem;font-size:.88rem}

/* burger */
.burger{display:none;width:42px;height:42px;border:0;border-radius:12px;background:rgba(255,255,255,.14);
  cursor:pointer;padding:11px 10px;flex-direction:column;justify-content:space-between}
.burger i{display:block;height:2px;background:#fff;border-radius:2px;transition:transform .3s,opacity .25s}
.nav.is-stuck .burger{background:rgba(4,33,43,.07)}
.nav.is-stuck .burger i{background:var(--ink)}
.is-open .burger i:nth-child(1){transform:translateY(7px) rotate(45deg)}
.is-open .burger i:nth-child(2){opacity:0}
.is-open .burger i:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ── HERO ────────────────────────────── */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden;isolation:isolate;
  padding:calc(var(--nav-h) + 2rem) 0 clamp(3rem,8vh,6rem)}
.hero__sky{position:absolute;inset:0;z-index:-6;
  background:linear-gradient(180deg,#03202c 0%,#07394a 32%,#12657a 56%,#3aa5a6 74%,#8fd6c0 88%,#f6e3b8 100%)}
.hero__sun{position:absolute;z-index:-5;left:70%;top:34%;width:min(38vw,360px);aspect-ratio:1;transform:translate(-50%,-50%);
  border-radius:50%;background:radial-gradient(circle,#fff3c4 0%,rgba(255,207,125,.85) 40%,rgba(255,180,110,0) 70%);
  filter:blur(2px);animation:rise 3s cubic-bezier(.2,.8,.2,1) both}
@keyframes rise{from{transform:translate(-50%,0);opacity:0}to{transform:translate(-50%,-50%);opacity:1}}
.hero__stars{position:absolute;inset:0 0 55% 0;z-index:-5;pointer-events:none}
.hero__stars i{position:absolute;width:2px;height:2px;border-radius:50%;background:#fff;opacity:.7;
  animation:tw 4s ease-in-out infinite}
@keyframes tw{0%,100%{opacity:.15}50%{opacity:.85}}
.hero__island{position:absolute;z-index:-4;left:-2%;right:-2%;bottom:16%;height:230px}
.hero__island > svg:first-of-type{width:100%;height:100%}
.palm{position:absolute;bottom:24px;width:74px;height:92px;transform-origin:bottom center;
  animation:palmSway 7s ease-in-out infinite}
@keyframes palmSway{0%,100%{transform:rotate(-1.5deg)}50%{transform:rotate(1.5deg)}}
.palm--1{left:7%;width:64px;height:80px;animation-delay:-1s}
.palm--2{left:76%;width:56px;height:70px;animation-delay:-3s}
.palm--3{left:85%;animation-delay:-2s}
@media (max-width:560px){.palm--2{display:none}}
.hero__sea{position:absolute;left:0;right:0;bottom:0;height:32%;z-index:-3;width:100%}
.hero__dhow{position:absolute;z-index:-2;right:8%;bottom:20%;width:min(24vw,220px);
  animation:float 6s ease-in-out infinite;filter:drop-shadow(0 20px 24px rgba(0,0,0,.3))}
@keyframes float{0%,100%{transform:translateY(0) rotate(-1.5deg)}50%{transform:translateY(-14px) rotate(1.5deg)}}
.hero__inner{position:relative;z-index:2;width:min(1220px,100% - 2.6rem);margin-inline:auto;color:#fff}
.hero .eyebrow{color:var(--gold)}
.hero__title{font-size:clamp(2.7rem,7.4vw,6.2rem);margin:.7rem 0 1.1rem;max-width:16ch;
  text-shadow:0 18px 50px rgba(0,20,30,.45)}
.hero__title .wd{display:inline-block}
.hero__title .ch{display:inline-block;opacity:0;transform:translateY(.5em) rotate(4deg);
  animation:chIn .8s cubic-bezier(.2,.9,.2,1) forwards}
@keyframes chIn{to{opacity:1;transform:none}}
.hero__sub{max-width:56ch;font-size:clamp(1rem,1.5vw,1.2rem);color:rgba(255,255,255,.9)}
.hero__cta{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.8rem}
.hero__strip{display:flex;flex-wrap:wrap;gap:clamp(1.2rem,4vw,3rem);margin-top:2rem;padding-top:1.2rem;
  border-top:1px solid rgba(255,255,255,.2)}
.hero__strip div{display:flex;flex-direction:column}
.hero__strip b{font-family:var(--f-d);font-size:1.7rem;line-height:1}
.hero__strip b i{font-style:normal;color:var(--gold);font-size:1.1rem}
.hero__strip span{font-size:.82rem;color:rgba(255,255,255,.72)}
.hero__scroll{position:absolute;left:50%;bottom:.7rem;z-index:3;width:26px;height:42px;border-radius:99px;
  border:1.5px solid rgba(255,255,255,.45);transform:translateX(-50%)}
.hero__scroll i{position:absolute;left:50%;top:8px;width:3px;height:8px;border-radius:2px;background:#fff;
  transform:translateX(-50%);animation:wheel 1.8s ease-in-out infinite}
@keyframes wheel{50%{transform:translate(-50%,14px);opacity:.2}}

/* ── marquee ─────────────────────────── */
.marquee{background:var(--ink);color:#fff;padding:.9rem 0;overflow:hidden;border-bottom:1px solid rgba(255,255,255,.07)}
.marquee__track{display:flex;gap:2.4rem;width:max-content;animation:mq 34s linear infinite}
.marquee__track span{display:flex;align-items:center;gap:2.4rem;font-family:var(--f-d);font-size:1.1rem;
  letter-spacing:.02em;color:rgba(255,255,255,.55);white-space:nowrap}
.marquee__track span::after{content:'✦';color:var(--gold);font-size:.7rem}
@keyframes mq{to{transform:translateX(-50%)}}

/* ── sezioni ─────────────────────────── */
.section{position:relative;padding:clamp(4.5rem,9vw,8rem) 0}
.section--dark{background:var(--ink);color:var(--on-dark)}
.section--dark .eyebrow{color:var(--aqua)}
.section--dark .shead p{color:var(--on-dark-soft)}
.shead{max-width:62ch;margin-bottom:2.8rem}
.shead h2{margin:.8rem 0 .9rem}
.shead p{color:var(--txt-soft);font-size:1.05rem}
.shead--row{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;max-width:none}
.shead--row>div{max-width:60ch}

/* ── filtri ──────────────────────────── */
.filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem}
.chip{border:1px solid rgba(4,33,43,.13);background:#fff;border-radius:99px;padding:.5rem 1rem;cursor:pointer;
  font-size:.88rem;font-weight:600;color:var(--txt-soft);transition:all .25s}
.chip:hover{border-color:var(--teal);color:var(--teal);transform:translateY(-1px)}
.chip.is-on{background:var(--ink);border-color:var(--ink);color:#fff;box-shadow:var(--sh-m)}

/* ── griglie & card tour ─────────────── */
.grid{display:grid;gap:1.4rem}
.grid--tours{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}
.grid--food{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.card{position:relative;background:#fff;border-radius:var(--r-l);overflow:hidden;box-shadow:var(--sh-m);
  display:flex;flex-direction:column;transition:transform .45s cubic-bezier(.2,.9,.2,1),box-shadow .45s;
  transform-style:preserve-3d;will-change:transform}
.card:hover{box-shadow:var(--sh-l)}
.card__art{position:relative;aspect-ratio:16/10;overflow:hidden}
.card__art .scn{width:100%;height:100%;transition:transform .8s cubic-bezier(.2,.9,.2,1)}
.card:hover .card__art .scn{transform:scale(1.07)}
.scn__w{animation:sw 7s ease-in-out infinite}
.scn__w--2{animation-duration:9s;animation-delay:-2s}
.scn__w--3{animation-duration:11s;animation-delay:-4s}
@keyframes sw{0%,100%{transform:translateX(0)}50%{transform:translateX(-18px)}}
.card__badges{position:absolute;top:.9rem;left:.9rem;right:.9rem;display:flex;justify-content:space-between;gap:.5rem}
.tag{background:rgba(4,33,43,.72);color:#fff;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  padding:.35rem .7rem;border-radius:99px;backdrop-filter:blur(8px)}
.tag--gold{background:var(--gold);color:var(--ink)}
.tag--light{background:rgba(255,255,255,.85);color:var(--ink)}
.card__body{padding:1.4rem 1.5rem 1.5rem;display:flex;flex-direction:column;gap:.6rem;flex:1}
.card__body h3{letter-spacing:-.015em}
.card__meta{display:flex;flex-wrap:wrap;gap:.4rem .9rem;font-size:.82rem;color:var(--txt-soft);font-weight:600}
.card__meta i{font-style:normal;color:var(--teal)}
.card__txt{color:var(--txt-soft);font-size:.95rem;flex:1}
.card__foot{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-top:.5rem;
  padding-top:1rem;border-top:1px solid rgba(4,33,43,.08)}
.price{display:flex;flex-direction:column;line-height:1.15}
.price small{font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:var(--txt-soft);font-weight:700}
.price b{font-family:var(--f-d);font-size:1.5rem}
.price b span{font-size:.85rem;color:var(--txt-soft);font-family:var(--f-b);font-weight:600}
.card__btns{display:flex;gap:.5rem}
.btn--icon{width:44px;height:44px;padding:0;border-radius:50%;background:var(--sand);color:var(--ink)}
.btn--icon:hover{background:var(--ink);color:#fff}
.btn--wa.btn--icon{background:var(--wa);color:#04321a}

/* ── mappa ───────────────────────────── */
.mapbox{display:grid;grid-template-columns:minmax(240px,.85fr) 1.15fr;gap:clamp(1.5rem,4vw,4rem);align-items:center}
.mapbox__island{position:relative;display:grid;place-items:center}
.island{width:min(100%,380px);overflow:visible}
.island__body{fill:#0d3d4c;stroke:rgba(58,217,194,.5);stroke-width:2}
.island__halo{fill:none;stroke:rgba(58,217,194,.25);stroke-width:2;transform-origin:center;
  animation:halo 5s ease-in-out infinite}
@keyframes halo{0%,100%{transform:scale(1);opacity:.5}50%{transform:scale(1.045);opacity:.05}}
.pin{cursor:pointer}
.pin__dot{fill:var(--gold);transition:r .3s}
.pin__ring{fill:none;stroke:var(--gold);stroke-width:2;opacity:.55;transform-origin:center;
  animation:ping 2.6s ease-out infinite}
@keyframes ping{0%{transform:scale(.6);opacity:.8}100%{transform:scale(2.1);opacity:0}}
.pin__label{fill:#cfe9e6;font-size:12px;font-weight:700;font-family:var(--f-b)}
.pin:hover .pin__dot,.pin.is-on .pin__dot{fill:#fff;r:9}
.pin.is-on .pin__label{fill:#fff}
.mapbox__info{min-height:280px}
.mapinfo h3{font-size:clamp(1.6rem,3vw,2.3rem);margin-bottom:.6rem;color:#fff}
.mapinfo p{color:var(--on-dark-soft);margin-bottom:1.4rem;max-width:46ch}
.mapinfo__tours{display:flex;flex-direction:column;gap:.55rem;margin-bottom:1.4rem}
.mapinfo__tours button{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;text-align:left;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:var(--r-s);
  padding:.8rem 1rem;cursor:pointer;color:#fff;font-weight:600;font-size:.95rem;transition:all .25s}
.mapinfo__tours button:hover{background:rgba(58,217,194,.14);border-color:var(--aqua);transform:translateX(4px)}
.mapinfo__tours em{font-style:normal;color:var(--aqua);font-weight:700}
.mapinfo__hint{color:var(--on-dark-soft)}
.fade-up{animation:fu .5s cubic-bezier(.2,.9,.2,1) both}
@keyframes fu{from{opacity:0;transform:translateY(12px)}}

/* ── builder ─────────────────────────── */
.builder{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(1.4rem,3vw,2.6rem);align-items:start}
.builder__form{background:#fff;border-radius:var(--r-l);padding:clamp(1.4rem,3vw,2.2rem);box-shadow:var(--sh-m);
  display:flex;flex-direction:column;gap:1.5rem}
.bfield{display:flex;flex-direction:column;gap:.7rem}
.bfield label{font-weight:700;font-size:.95rem}
.stepper{display:inline-flex;align-items:center;gap:.4rem;background:var(--sand);border-radius:99px;padding:.3rem;width:max-content}
.stepper button{width:38px;height:38px;border:0;border-radius:50%;background:#fff;cursor:pointer;font-size:1.25rem;
  font-weight:700;box-shadow:var(--sh-s);transition:transform .2s,background .2s}
.stepper button:hover{background:var(--ink);color:#fff;transform:scale(1.06)}
.stepper b{min-width:44px;text-align:center;font-family:var(--f-d);font-size:1.3rem}
.chips{display:flex;flex-wrap:wrap;gap:.5rem}
.input{width:100%;border:1px solid rgba(4,33,43,.14);border-radius:var(--r-s);padding:.8rem 1rem;background:var(--cream);
  transition:border-color .25s,box-shadow .25s}
.input:focus{outline:0;border-color:var(--teal);box-shadow:0 0 0 4px rgba(18,181,172,.12)}
.builder__out{display:flex;flex-direction:column;gap:1rem;position:sticky;top:90px}
.builder__phone{background:linear-gradient(160deg,#0b3b45,#04212b);border-radius:var(--r-l);padding:1rem;
  box-shadow:var(--sh-l);border:1px solid rgba(255,255,255,.08)}
.phone__top{display:flex;align-items:center;gap:.7rem;padding:.2rem .3rem .9rem;border-bottom:1px solid rgba(255,255,255,.1)}
.phone__ava{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-weight:800;color:#04321a;
  background:linear-gradient(140deg,var(--aqua),var(--gold))}
.phone__top b{display:block;color:#fff;font-size:.95rem}
.phone__top i{font-style:normal;font-size:.76rem;color:var(--wa)}
.phone__body{padding:1rem .3rem .3rem;max-height:340px;overflow:auto}
.bubble{background:#075e54;background:linear-gradient(180deg,#0f7d69,#0b6455);color:#eafff7;border-radius:16px 16px 16px 4px;
  padding:.9rem 1rem;font-size:.9rem;line-height:1.55;white-space:pre-wrap;box-shadow:0 10px 24px -14px #000}
.builder__sug{background:var(--sand);border-radius:var(--r-m);padding:1rem 1.1rem;font-size:.9rem}
.builder__sug b{display:block;margin-bottom:.5rem;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--txt-soft)}
.builder__sug ul{margin:0;padding-left:1.1rem;color:var(--txt);display:flex;flex-direction:column;gap:.2rem}

/* ── rail resort ─────────────────────── */
.rail{display:flex;gap:1.2rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;
  padding-block:.5rem 2rem;padding-inline:max(1.3rem,calc((100vw - 1220px)/2))}
.rail::-webkit-scrollbar{display:none}
.rail>*{scroll-snap-align:start;flex:0 0 min(340px,78vw)}
.rail__nav{display:flex;gap:.5rem}
.rail__nav button{width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.06);
  color:#fff;cursor:pointer;font-size:1.1rem;transition:all .25s}
.rail__nav button:hover{background:var(--aqua);color:var(--ink);border-color:var(--aqua);transform:scale(1.06)}
.card--dark{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09);color:var(--on-dark)}
.card--dark .card__txt{color:var(--on-dark-soft)}
.card--dark .card__foot{border-top-color:rgba(255,255,255,.1)}
.card--dark h3{color:#fff}
.card--dark .btn--icon{background:rgba(255,255,255,.1);color:#fff}
.card--dark .btn--icon:hover{background:var(--aqua);color:var(--ink)}
.band{font-family:var(--f-d);font-size:1.2rem;color:var(--gold)}

/* ── recensioni ──────────────────────── */
.section--quote{background:var(--sand);overflow:hidden}
.quotes{display:flex;gap:1.2rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:.6rem}
.quotes::-webkit-scrollbar{display:none}
.quote{scroll-snap-align:center;flex:0 0 min(420px,84vw);background:var(--cream);border-radius:var(--r-l);
  padding:1.8rem;box-shadow:var(--sh-m);display:flex;flex-direction:column;gap:1rem}
.quote__stars{color:var(--gold);letter-spacing:.15em;font-size:.9rem}
.quote p{font-family:var(--f-d);font-size:1.1rem;line-height:1.45}
.quote__who{display:flex;align-items:center;gap:.7rem;margin-top:auto}
.quote__ava{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-weight:800;color:#fff;
  background:linear-gradient(140deg,var(--teal),var(--ink))}
.quote__who b{display:block;font-size:.92rem}
.quote__who span{font-size:.8rem;color:var(--txt-soft)}

/* ── FAQ ─────────────────────────────── */
.faq{display:flex;flex-direction:column;gap:.7rem}
.qa{background:#fff;border-radius:var(--r-m);box-shadow:var(--sh-s);overflow:hidden;border:1px solid rgba(4,33,43,.06)}
.qa__q{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;background:0;border:0;
  cursor:pointer;padding:1.15rem 1.3rem;text-align:left;font-weight:700;font-size:1.02rem}
.qa__q i{flex:none;width:26px;height:26px;border-radius:50%;background:var(--sand);display:grid;place-items:center;
  font-style:normal;transition:transform .35s,background .3s}
.qa.is-open .qa__q i{transform:rotate(45deg);background:var(--gold)}
.qa__a{max-height:0;overflow:hidden;transition:max-height .45s cubic-bezier(.4,0,.2,1)}
.qa__a p{padding:0 1.3rem 1.3rem;color:var(--txt-soft)}

/* ── CTA ─────────────────────────────── */
.section--cta{padding-bottom:clamp(5rem,9vw,8rem)}
.cta{position:relative;overflow:hidden;border-radius:var(--r-xl);padding:clamp(2.5rem,6vw,5rem);text-align:center;
  background:linear-gradient(150deg,#06303c,#04212b 55%,#0a4a4a);color:#fff;box-shadow:var(--sh-l)}
.cta__glow{position:absolute;left:50%;top:-40%;width:120%;aspect-ratio:2;transform:translateX(-50%);
  background:radial-gradient(ellipse at center,rgba(58,217,194,.35),transparent 62%);pointer-events:none;
  animation:glow 8s ease-in-out infinite}
@keyframes glow{50%{transform:translateX(-50%) scale(1.15);opacity:.75}}
.cta h2{max-width:18ch;margin-inline:auto}
.cta p{color:rgba(255,255,255,.75);margin:1rem auto 2rem;max-width:46ch}
.cta__row{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:center}

/* ── footer ──────────────────────────── */
.foot{background:var(--ink);color:var(--on-dark-soft);padding-top:3.5rem}
.foot__in{display:grid;grid-template-columns:1fr 2fr;gap:2.5rem;padding-bottom:2.5rem}
.foot__brand{display:flex;gap:.8rem;align-items:center;color:#fff}
.foot__brand b{display:block;font-family:var(--f-d);font-size:1.15rem}
.foot__brand span{font-size:.85rem;color:var(--on-dark-soft)}
.foot__cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1.6rem}
.foot__cols div{display:flex;flex-direction:column;gap:.5rem;font-size:.9rem}
.foot__cols b{color:#fff;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:.2rem}
.foot__cols a{transition:color .25s}
.foot__cols a:hover{color:var(--aqua)}
.foot__bar{border-top:1px solid rgba(255,255,255,.08);padding:1.1rem 0;display:flex;justify-content:space-between;
  gap:1rem;flex-wrap:wrap;font-size:.82rem;width:min(1220px,100% - 2.6rem);margin-inline:auto}

/* ── modale ──────────────────────────── */
.modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:1.2rem;
  opacity:0;visibility:hidden;transition:opacity .35s,visibility .35s}
.modal.is-open{opacity:1;visibility:visible}
.modal__bg{position:absolute;inset:0;background:rgba(4,33,43,.7);backdrop-filter:blur(8px)}
.modal__card{position:relative;width:min(760px,100%);max-height:90vh;overflow:auto;background:var(--cream);
  border-radius:var(--r-l);box-shadow:var(--sh-l);transform:translateY(26px) scale(.97);transition:transform .45s cubic-bezier(.2,.9,.2,1)}
.modal.is-open .modal__card{transform:none}
.modal__x{position:absolute;top:1rem;right:1rem;z-index:3;width:40px;height:40px;border:0;border-radius:50%;cursor:pointer;
  background:rgba(255,255,255,.9);font-size:1.4rem;line-height:1;box-shadow:var(--sh-s)}
.modal__x:hover{background:var(--ink);color:#fff}
.mart{aspect-ratio:16/8;overflow:hidden}
.mart .scn{width:100%;height:100%}
.mbody{padding:clamp(1.4rem,3vw,2.2rem)}
.mbody h3{font-size:clamp(1.6rem,3.4vw,2.3rem);margin-bottom:.5rem}
.mbody>p{color:var(--txt-soft);margin-bottom:1.4rem}
.mrow{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:1.4rem}
.mstat{background:#fff;border-radius:var(--r-s);padding:.6rem .9rem;box-shadow:var(--sh-s);font-size:.85rem}
.mstat b{display:block;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--txt-soft)}
.mcols{display:grid;grid-template-columns:1.2fr .8fr;gap:1.6rem;margin-bottom:1.6rem}
.mcols h4{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--teal);margin-bottom:.7rem}
.steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.steps li{position:relative;padding:0 0 1rem 1.7rem;font-size:.94rem;color:var(--txt-soft)}
.steps li::before{content:'';position:absolute;left:3px;top:.5rem;width:9px;height:9px;border-radius:50%;
  background:var(--gold);box-shadow:0 0 0 3px rgba(244,196,106,.25)}
.steps li::after{content:'';position:absolute;left:7px;top:1.2rem;bottom:0;width:1px;background:rgba(4,33,43,.12)}
.steps li:last-child{padding-bottom:0}
.steps li:last-child::after{display:none}
.inc{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem;font-size:.92rem;color:var(--txt-soft)}
.inc li{display:flex;gap:.55rem}
.inc li::before{content:'✓';color:var(--teal);font-weight:800}
.mfoot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;
  border-top:1px solid rgba(4,33,43,.1);padding-top:1.3rem}

/* ── musica ──────────────────────────── */
.music{position:fixed;left:1.1rem;bottom:1.1rem;z-index:920;display:flex;align-items:center;gap:.7rem;
  padding:.5rem .95rem .5rem .5rem;border-radius:99px;background:rgba(4,33,43,.82);color:#fff;
  backdrop-filter:blur(14px);box-shadow:var(--sh-m);border:1px solid rgba(255,255,255,.12);
  transform:translateY(120%);animation:pop .6s .9s cubic-bezier(.2,.9,.2,1) forwards}
@keyframes pop{to{transform:none}}
.music__disc{position:relative;width:46px;height:46px;border:0;border-radius:50%;cursor:pointer;background:0;flex:none}
.music__vinyl{position:absolute;inset:0;border-radius:50%;
  background:repeating-radial-gradient(circle at 50% 50%,#111 0 3px,#1d1d1d 3px 4px);
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.12)}
.music__vinyl::after{content:'';position:absolute;inset:38%;border-radius:50%;
  background:linear-gradient(140deg,var(--gold),var(--coral))}
.music.is-playing .music__vinyl{animation:spin 3.4s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.music__eq{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:3px;opacity:0;transition:opacity .3s}
.music.is-playing .music__eq{opacity:1}
.music__eq i{width:3px;height:8px;background:#fff;border-radius:2px;animation:eq .9s ease-in-out infinite}
.music__eq i:nth-child(2){animation-delay:.15s}.music__eq i:nth-child(3){animation-delay:.3s}.music__eq i:nth-child(4){animation-delay:.45s}
@keyframes eq{50%{height:20px}}
.music__meta{display:flex;flex-direction:column;line-height:1.25}
.music__meta b{font-size:.8rem}
.music__meta span{font-size:.7rem;color:var(--on-dark-soft)}
#ytHost{position:fixed;left:-9999px;top:0;width:280px;height:160px;pointer-events:none}

/* ── fab whatsapp ────────────────────── */
.fab{position:fixed;right:1.1rem;bottom:1.1rem;z-index:920;width:60px;height:60px;border-radius:50%;
  display:grid;place-items:center;background:var(--wa);box-shadow:0 16px 36px -14px rgba(37,211,102,.9);
  transition:transform .3s cubic-bezier(.2,.9,.2,1)}
.fab svg{width:32px;height:32px;fill:#04321a}
.fab:hover{transform:scale(1.09) rotate(-6deg)}
.fab__ping{position:absolute;inset:0;border-radius:50%;border:2px solid var(--wa);animation:ping 2.4s ease-out infinite}

/* ── reveal ──────────────────────────── */
.reveal,[data-rv]{opacity:0;transform:translateY(26px);transition:opacity .8s cubic-bezier(.2,.9,.2,1),transform .8s cubic-bezier(.2,.9,.2,1)}
.reveal.is-in,[data-rv].is-in{opacity:1;transform:none}

/* ── responsive ──────────────────────── */
@media (max-width:1080px){
  .mapbox{grid-template-columns:1fr}
  .builder{grid-template-columns:1fr}
  .builder__out{position:static}
  .foot__in{grid-template-columns:1fr}
}
@media (max-width:900px){
  body{font-size:16px}
  .burger{display:flex}
  .nav__links{position:fixed;left:0;right:0;top:var(--topbar-h);flex-direction:column;gap:.2rem;padding:calc(var(--nav-h) + 1.4rem) 1.4rem 2rem;
    transition:transform .45s cubic-bezier(.4,0,.2,1),top .4s;
    background:var(--cream);box-shadow:0 30px 60px -30px rgba(4,33,43,.6);transform:translateY(-110%);
    transition:transform .45s cubic-bezier(.4,0,.2,1);margin:0;border-radius:0 0 var(--r-l) var(--r-l)}
  .nav__links a{color:var(--ink);font-size:1.25rem;font-family:var(--f-d);padding:.7rem .2rem;
    border-bottom:1px solid rgba(4,33,43,.07);border-radius:0}
  .is-open .nav__links{transform:none}
  body.is-scrolled .nav__links{top:0}
  .nav__cta span{display:none}
  .nav__cta{width:42px;height:42px;padding:0;border-radius:50%}
  .hero__strip b{font-size:1.4rem}
  .hero__dhow{opacity:.55;right:2%}
  .mcols{grid-template-columns:1fr}
  .foot__cols{grid-template-columns:1fr 1fr}
  .music__meta{display:none}
  .music{padding:.5rem}
  .shead--row{flex-direction:column;align-items:flex-start}
}
@media (max-width:560px){
  .nav{gap:.5rem;padding:0 .9rem}
  .nav__name em{display:none}
  .nav__name{font-size:.92rem}
  .nav__mark{width:34px;height:34px;border-radius:10px}
  .lang__btn{padding:.3rem .45rem;font-size:.7rem}
  .lang{padding:3px}
  .burger{width:38px;height:38px;padding:10px 9px}
  .nav__cta{width:38px;height:38px}
  .hero{padding-bottom:7rem}
  .hero__title{font-size:clamp(2.3rem,9vw,6.2rem)}
  .hero__sub{font-size:1rem}
  .btn--lg{padding:.85rem 1.25rem;font-size:.95rem}
  .hero__cta{gap:.6rem}
  .hero__cta .btn{flex:1 1 100%}
  .hero__strip{display:grid;grid-template-columns:1fr 1fr;gap:.9rem 1rem;margin-top:1.6rem}
  .hero__strip b{font-size:1.35rem}
  .hero__sun{width:min(60vw,300px);left:74%}
  .hero__island{bottom:19%;height:150px}
  .palm{width:46px;height:58px;bottom:20px}
  .palm--1{left:4%}
  .palm--3{left:84%}
}
@media (max-width:520px){
  .grid--tours,.grid--food{grid-template-columns:1fr}
  .card__foot{flex-direction:column;align-items:stretch}
  .card__btns{width:100%}
  .card__btns .btn:not(.btn--icon){flex:1}
  .fab{width:54px;height:54px}
  .foot__cols{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  html{scroll-behavior:auto}
}

@media (max-height:780px){
  .hero__title{font-size:clamp(2.4rem,5.6vw,4.4rem)}
  .hero__strip{margin-top:1.4rem;padding-top:.9rem}
  .hero__strip b{font-size:1.4rem}
  .hero__scroll{display:none}
}

/* ═══ SPONSOR · CondominioForYou ═══ */
:root{--cfy-green:#4faa1e;--cfy-dark:#1b1b1b;--topbar-h:46px}

/* logo ufficiale */
.cfy-logo{display:block;width:auto;height:100%;object-fit:contain}
.cfy-chip{display:inline-flex;align-items:center;justify-content:center;background:#fff;border-radius:99px;
  box-shadow:0 6px 18px -10px rgba(0,0,0,.55);transition:transform .3s cubic-bezier(.2,.9,.2,1),box-shadow .3s}
a.cfy-chip:hover,.topbar:hover .cfy-chip{transform:translateY(-1px) scale(1.02);box-shadow:0 10px 24px -10px rgba(0,0,0,.6)}
.cfy-chip--xs{height:30px;padding:0 .7rem}
.cfy-chip--xs .cfy-logo{height:18px}
.cfy-chip--sm{height:38px;padding:0 .9rem}
.cfy-chip--sm .cfy-logo{height:22px}
.cfy-chip--md{height:48px;padding:0 1.1rem}
.cfy-chip--md .cfy-logo{height:26px}
.cfy-hero{display:block;width:min(100%,440px);transition:transform .35s cubic-bezier(.2,.9,.2,1)}
.cfy-hero .cfy-logo{width:100%;height:auto}
.cfy-hero:hover{transform:translateY(-3px) scale(1.02)}

/* barra superiore */
.topbar{position:fixed;top:0;left:0;right:0;height:var(--topbar-h);z-index:901;display:flex;align-items:center;
  justify-content:center;gap:.55rem;padding:0 1rem;font-size:.82rem;font-weight:600;color:#fff;
  background:linear-gradient(90deg,#04212b,#0d5f3f 45%,#2f8b1e);transition:transform .4s cubic-bezier(.4,0,.2,1)}

.topbar__dot{width:7px;height:7px;border-radius:50%;background:#9fe06a;box-shadow:0 0 0 0 rgba(159,224,106,.7);
  animation:ping2 2.4s ease-out infinite;flex:none}
@keyframes ping2{0%{box-shadow:0 0 0 0 rgba(159,224,106,.65)}100%{box-shadow:0 0 0 12px rgba(159,224,106,0)}}
.topbar__go{opacity:.75;font-weight:500}
.topbar:hover .topbar__go{opacity:1;text-decoration:underline}
body.is-scrolled .topbar{transform:translateY(-100%)}
.nav{top:var(--topbar-h)}
.nav.is-stuck{top:0}
.hero{padding-top:calc(var(--nav-h) + var(--topbar-h) + 1.4rem)}

/* badge nell'hero */
.hero__spon{display:inline-flex;align-items:center;gap:.6rem;margin-top:1.6rem;padding:.55rem 1rem .55rem .9rem;
  border-radius:99px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.24);backdrop-filter:blur(10px);
  font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:rgba(255,255,255,.8);
  transition:background .3s,transform .3s}
.hero__spon:hover{background:rgba(255,255,255,.18);transform:translateY(-2px)}

/* preloader */
.preloader__spon{display:flex;align-items:center;gap:.5rem;margin-top:.4rem;font-size:.66rem;letter-spacing:.18em;
  text-transform:uppercase;color:rgba(255,255,255,.55)}


/* sezione sponsor */
.section--spon{padding-top:1rem}
.spon{position:relative;overflow:hidden;text-align:center;border-radius:var(--r-xl);padding:clamp(2.4rem,5vw,3.6rem);
  background:linear-gradient(160deg,#f2fbe9,#ffffff 55%,#eaf7de);border:1px solid rgba(79,170,30,.28);
  box-shadow:0 30px 70px -40px rgba(31,107,18,.55);display:flex;flex-direction:column;align-items:center;gap:1rem}
.spon::before{content:'';position:absolute;inset:auto -20% -60% -20%;height:70%;
  background:radial-gradient(ellipse at center,rgba(79,170,30,.18),transparent 65%);pointer-events:none}
.spon__ribbon{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .95rem;border-radius:99px;
  background:var(--cfy-green);color:#fff;font-size:.7rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase}
.spon h2{font-size:clamp(1.5rem,3vw,2.2rem);max-width:20ch}
.spon p{color:var(--txt-soft);max-width:60ch}
.spon__url{color:var(--cfy-green);font-weight:700;letter-spacing:.04em}
.btn--cfy{background:var(--cfy-green);color:#fff;box-shadow:0 14px 34px -16px rgba(79,170,30,.95)}
.btn--cfy:hover{background:#3f9016}

/* footer */
.foot__spon .cfy-chip{margin:.35rem 0;align-self:flex-start}

@media (max-width:900px){
  .topbar{font-size:.72rem;gap:.4rem}
  .topbar__go{display:none}
  .cfy-chip--xs{height:26px;padding:0 .55rem}
  .cfy-chip--xs .cfy-logo{height:15px}
}
@media (max-width:560px){
  :root{--topbar-h:40px}
  .hero__spon{font-size:.68rem;padding:.45rem .8rem;gap:.45rem}
  .cfy-chip--sm{height:32px;padding:0 .7rem}
  .cfy-chip--sm .cfy-logo{height:18px}
}
