/* ═══ TWIP — homepage mobile ══════════════════════════════════════════════
   Impianto verticale: promo, hero, ricerca, carousel, prove sociali, FAQ.
   Colori Twip (azzurro #1BB8D0), tipografia Urbanist. ════════════════════ */
:root{
  --tw:#1BB8D0; --tw-2:#0F90A8; --tw-soft:#DFF3F7; --tw-tint:#EAF7FA;
  --ink:#15131F; --ink-2:#4A4760; --ink-3:#8B8799;
  --hair:rgba(20,18,28,.10); --hair-2:rgba(20,18,28,.05);
  --gold:#F5B43C; --page:1px;
  /* unica sorgente di verità per l'incolonnamento: contenitore + rientro */
  --cw:560px; --cpad:18px;
  --cedge:max(var(--cpad), calc(50vw - var(--cw)/2 + var(--cpad)));
  --fl:clamp(24px,3vw,52px);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body.tw2{background:#fff;color:var(--ink);font-family:"Urbanist",-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.tw2 a{color:var(--tw-2);text-decoration:none}
body.tw2 a:hover{color:var(--ink)}
img{max-width:100%;display:block}
.wrapc{max-width:var(--cw);margin:0 auto;padding:0 var(--cpad)}
h2.sech{font-size:30px;font-weight:800;letter-spacing:-.03em;line-height:1.1;margin:0 0 8px;text-wrap:pretty}
p.secs{font-size:16.5px;line-height:1.5;color:var(--ink-2);margin:0 0 20px}
.center{text-align:center}
.mark{background:var(--tw-soft);border-radius:4px;padding:1px 5px;box-decoration-break:clone;-webkit-box-decoration-break:clone}

/* ── promo ── */
.promo{background:var(--tw);color:#06303a;display:flex;align-items:flex-start;gap:12px;padding:14px 16px;font-size:15px;font-weight:600;line-height:1.32}
.promo b{font-weight:800}
.promo button{margin-left:auto;flex:none;border:0;background:transparent;color:inherit;cursor:pointer;padding:0;line-height:0}
.promo svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
.promo.gone{display:none}

/* ── header ── */
.hdr2{position:sticky;top:0;z-index:60;background:#fff;border-bottom:1px solid var(--hair)}
.hdr2-in{max-width:560px;margin:0 auto;height:64px;display:flex;align-items:center;gap:14px;padding:0 16px}.logo2{--lh:26px;display:flex;align-items:flex-end;gap:0;flex:none}
.logo2 img{height:var(--lh);width:auto;display:block;filter:brightness(0)}
/* la "w" è la valigetta: stessa cassa della lettera bianca, ma a colori */
.bagslot{position:relative;flex:none;width:calc(var(--lh)*745/1044);height:var(--lh)}
.bagslot img{position:absolute;left:calc(var(--lh)*20/1044);top:0;height:100%;width:auto;filter:none;transform-origin:50% 88%}
@media (prefers-reduced-motion:no-preference){.bagslot img{animation:bagTrip 3.4s cubic-bezier(.36,.07,.19,.97) infinite}}
@keyframes bagTrip{
  0%,64%{transform:translateY(0) rotate(0)}
  70%{transform:translateY(-7px) rotate(-11deg)}
  76%{transform:translateY(0) rotate(6deg)}
  82%{transform:translateY(-3px) rotate(-4deg)}
  88%,100%{transform:translateY(0) rotate(0)}
}
.aiico img{width:26px;height:26px;object-fit:contain;display:block}

/* la lente apre un riquadro "Dove vuoi andare?" al passaggio del mouse */
.searchpop{position:relative;display:flex;align-items:center}
.popcard{position:absolute;top:calc(100% + 12px);left:-10px;z-index:70;width:290px;display:grid;gap:10px;
  background:#fff;border:1px solid var(--hair);border-radius:14px;padding:16px;box-shadow:0 22px 46px -24px rgba(10,40,60,.55);
  opacity:0;visibility:hidden;transform:translateY(-8px) scale(.96);transform-origin:24px 0;
  transition:opacity .18s ease,transform .26s cubic-bezier(.2,.9,.3,1.1),visibility 0s linear .26s}
.searchpop:hover .popcard,.searchpop:focus-within .popcard{opacity:1;visibility:visible;transform:none;transition-delay:0s,0s,0s}
.popcard::before{content:"";position:absolute;top:-7px;left:24px;width:13px;height:13px;background:#fff;border-left:1px solid var(--hair);border-top:1px solid var(--hair);transform:rotate(45deg)}
.popcard b{font-size:16px;font-weight:800;letter-spacing:-.02em}
.popcard input{border:1px solid var(--hair);border-radius:10px;padding:11px 13px;font:inherit;font-size:15px;outline:none;width:100%}
.popcard input:focus{border-color:var(--tw)}
.popcard button{border:0;border-radius:10px;background:var(--tw);color:#06303a;font:inherit;font-size:15px;font-weight:700;padding:11px;cursor:pointer}
@media (hover:none){.popcard{display:none}}
.hdr2 .divide{width:1px;height:24px;background:var(--hair);flex:none}
.hicon{border:0;background:transparent;padding:4px;cursor:pointer;color:var(--ink);line-height:0}
.hicon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.hicon .sp{fill:var(--tw);stroke:none}
.hdr2 .contact{margin-left:auto;font-size:15.5px;font-weight:600;color:var(--ink);white-space:nowrap}
.acct2{display:flex;align-items:center;gap:4px;border:1px solid var(--hair);border-radius:999px;padding:5px 10px 5px 6px;background:#fff;cursor:pointer}
.acct2 svg{width:26px;height:26px;fill:none;stroke:var(--ink);stroke-width:1.7}
.acct2 i{width:0;height:0;border:5px solid transparent;border-top-color:var(--ink);margin-top:3px}
.burger{border:0;background:transparent;padding:4px;cursor:pointer;display:grid;gap:5px}
.burger i{width:26px;height:2.6px;border-radius:2px;background:var(--ink);display:block}
@media (max-width:400px){.hdr2 .contact{display:none}}

/* ── hero ── */
.hero2{position:relative;height:min(360px,72vh);overflow:hidden}
.hero2 img{width:100%;height:100%;object-fit:cover}
.hero2::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,26,36,.34),rgba(8,26,36,.05) 42%,rgba(8,26,36,.42))}
.hero2-tx{position:absolute;z-index:2;left:0;right:0;bottom:64px;padding:0 22px;text-align:center;color:#fff}
.hero2-tx h1{font-size:clamp(34px,9vw,42px);font-weight:800;letter-spacing:-.035em;line-height:1.05;margin:0 0 12px;text-shadow:0 4px 24px rgba(0,20,30,.45)}
.hero2-tx p{font-size:19px;font-weight:600;line-height:1.3;margin:0;text-shadow:0 2px 14px rgba(0,20,30,.5)}

/* ── ricerca ── */
.searchwrap{position:relative;z-index:3;margin-top:-42px}
.search2{display:flex;align-items:stretch;gap:0;background:#fff;border-radius:16px;box-shadow:0 18px 40px -22px rgba(10,40,60,.5),0 0 0 1px var(--hair);overflow:hidden}
.search2 label{flex:1 1 0;min-width:0;padding:12px 16px;display:grid;gap:2px;cursor:pointer}
.search2 label + label{border-left:1px solid var(--hair)}
.search2 span{font-size:15px;color:var(--ink-3);font-weight:600}
.search2 input{border:0;outline:none;font:inherit;font-size:17px;font-weight:600;color:var(--ink);background:transparent;padding:0;width:100%}
.search2 input::placeholder{color:var(--ink)}
.search2 button{flex:none;width:76px;border:0;background:var(--tw);color:#fff;cursor:pointer;display:grid;place-items:center;margin:8px 8px 8px 0;border-radius:10px}
.search2 button svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
.askline{padding:26px 0 4px;text-align:center}
.askline b{display:block;font-size:19px;font-weight:800;letter-spacing:-.02em;margin-bottom:14px}
.askline a{display:inline-flex;align-items:center;gap:10px;font-size:19px;font-weight:700;color:var(--tw-2)}
.askline img.twipper{width:34px;height:34px;object-fit:contain;flex:none}
.askline svg{width:20px;height:20px;fill:var(--tw)}
.imsg{display:flex;flex-direction:column;gap:2px;font-size:13.5px;line-height:1.28;pointer-events:none}
.imsg .b{position:relative;max-width:90%;backface-visibility:hidden;padding:6px 11px;border-radius:15px;opacity:0;transform:translateY(12px) scale(.94);transition:opacity .28s ease,transform .38s cubic-bezier(.2,1.3,.4,1);text-wrap:pretty}
.imsg .b.in{opacity:1;transform:none}
.imsg .b.me{align-self:flex-end;background:#0A84FF;color:#fff;border-bottom-right-radius:6px;transform-origin:bottom right}
.imsg .b.you{align-self:flex-start;background:#E9E9EB;color:#111;border-bottom-left-radius:6px;transform-origin:bottom left}
.imsg .typ{align-self:flex-start;display:none;gap:4px;padding:9px 12px;background:#E9E9EB;border-radius:15px;border-bottom-left-radius:6px}
.imsg .typ.on{display:flex}
.imsg .typ i{width:7px;height:7px;border-radius:50%;background:#93939b;animation:imsgDot 1.2s infinite}
.imsg .typ i:nth-child(2){animation-delay:.18s}
.imsg .typ i:nth-child(3){animation-delay:.36s}
@keyframes imsgDot{0%,60%,100%{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
@media (prefers-reduced-motion:reduce){.imsg .b{opacity:1;transform:none}.imsg .typ{display:none!important}}

/* ── prova sociale ── */
.trust{display:flex;align-items:center;justify-content:center;gap:14px;padding:34px 0 10px}
.trust .laurel{width:34px;flex:none;opacity:.9}
.trust b{display:block;font-size:20px;font-weight:800;letter-spacing:-.02em;line-height:1.25;text-align:center}
.rating{display:flex;align-items:center;justify-content:center;gap:10px;padding-bottom:8px;font-size:16px}
.rating i{width:22px;height:22px;display:grid;place-items:center;background:#16B8A6;clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}
.rating .stars5{display:flex;gap:3px}
.rating b{font-weight:800}
.rating span{color:var(--ink-2)}

/* ── sezioni ── */
.sec2{padding:34px 0}
.sec2.tint{background:linear-gradient(#fff,rgba(255,255,255,0) 150px),linear-gradient(0deg,#fff,rgba(255,255,255,0) 150px),var(--tw-tint)}
.sec2.warm{background:linear-gradient(#fff,rgba(255,255,255,0) 150px),linear-gradient(0deg,#fff,rgba(255,255,255,0) 150px),linear-gradient(180deg,#FFF4EE,#FFF9F3)}
.sec2.blue{background:linear-gradient(#fff,rgba(255,255,255,0) 170px),linear-gradient(0deg,#fff,rgba(255,255,255,0) 170px),linear-gradient(90deg,#9acae0 0%,#a2cde5 13%,#a6cfe6 25%,#a7d0e6 38%,#aad1e6 50%,#abd1e5 63%,#aed3e6 75%,#b0d4e7 88%,#b1d4e6 100%)}

.skyband{background:linear-gradient(#fff,rgba(255,255,255,0) 190px),linear-gradient(90deg,#9acae0 0%,#a2cde5 13%,#a6cfe6 25%,#a7d0e6 38%,#aad1e6 50%,#abd1e5 63%,#aed3e6 75%,#b0d4e7 88%,#b1d4e6 100%)}
.skyband .skywrap{background:none}

/* ── nuvole: texture procedurale (rumore frattale) su due piani ── */
.clouds{position:relative;overflow:hidden;isolation:isolate}
.clouds>*{position:relative;z-index:2}
.clouds::before,.clouds::after{content:"";position:absolute;top:-6%;left:0;height:112%;width:300%;z-index:0;pointer-events:none;background-repeat:repeat-x;will-change:transform;
  -webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,0),rgba(0,0,0,.55) 14%,#000 34%,#000 66%,rgba(0,0,0,.5) 86%,rgba(0,0,0,0) 100%);mask-image:linear-gradient(to bottom,rgba(0,0,0,0),rgba(0,0,0,.55) 14%,#000 34%,#000 66%,rgba(0,0,0,.5) 86%,rgba(0,0,0,0) 100%)}
.skyband.clouds::before,.skyband.clouds::after{-webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,0),rgba(0,0,0,.6) 7%,#000 16%,#000 74%,rgba(0,0,0,0) 94%);mask-image:linear-gradient(to bottom,rgba(0,0,0,0),rgba(0,0,0,.6) 7%,#000 16%,#000 74%,rgba(0,0,0,0) 94%)}
.clouds::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1400' height='560'%3E%3Cfilter id='c' x='0' y='0' width='100%' height='100%' color-interpolation-filters='sRGB'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.0016 0.005' numOctaves='5' seed='11' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 3.2 0 0 0 -1.45'/%3E%3CfeGaussianBlur stdDeviation='2'/%3E%3C/filter%3E%3Crect width='1400' height='560' filter='url(%23c)'/%3E%3C/svg%3E");background-size:1400px 100%;filter:blur(4px);opacity:.6;animation:cloudDrift 300s linear infinite}
.clouds::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1400' height='560'%3E%3Cfilter id='c' x='0' y='0' width='100%' height='100%' color-interpolation-filters='sRGB'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.0030 0.008' numOctaves='6' seed='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 4.2 0 0 0 -1.85'/%3E%3CfeGaussianBlur stdDeviation='2'/%3E%3C/filter%3E%3Crect width='1400' height='560' filter='url(%23c)'/%3E%3C/svg%3E");background-size:1000px 86%;background-position:0 10%;filter:blur(2px);opacity:.95;animation:cloudDrift 170s linear infinite}
@keyframes cloudDrift{from{transform:translateX(0)}to{transform:translateX(-33.3333%)}}
@media (prefers-reduced-motion:reduce){.clouds::before,.clouds::after{animation:none}}
.headrow{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.headrow h2{margin:0}
.pillbadge{background:var(--ink);color:#fff;font-size:15px;font-weight:700;padding:7px 13px;border-radius:9px;white-space:nowrap}
.underlink{display:inline-block;font-size:16.5px;font-weight:600;color:var(--ink);text-decoration:underline;text-underline-offset:4px;margin-bottom:18px}

/* carousel — le card proseguono fino al bordo pagina e sfumano uscendo */
.rail{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x proximity;width:100vw;margin-left:calc(50% - 50vw);
  padding:2px var(--cedge) 8px;scroll-padding-inline:var(--cedge);scrollbar-width:none}
.rail::-webkit-scrollbar{display:none}
.rail > *{scroll-snap-align:start;flex:none;transition:filter .12s linear,opacity .12s linear;will-change:filter,opacity}

/* card viaggio */
.tcard{width:230px}
.tcard .ph{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:1/.86;background:var(--hair-2)}
.tcard .ph img{width:100%;height:100%;object-fit:cover}
.tcard .fav{position:absolute;top:10px;right:10px;border:0;background:transparent;cursor:pointer;padding:0;line-height:0}
.tcard .fav svg{width:30px;height:30px;fill:rgba(255,255,255,.28);stroke:#fff;stroke-width:1.7;filter:drop-shadow(0 2px 6px rgba(0,0,0,.4))}
.tcard .fav.on svg{fill:#fff}
.tcard .when{position:absolute;top:10px;left:0;background:var(--ink);color:#fff;font-size:14px;font-weight:700;padding:6px 12px;border-radius:0 8px 8px 0}
.tcard .foot{position:absolute;left:12px;right:12px;bottom:9px;display:flex;align-items:center;justify-content:space-between;color:#fff;font-size:16px;font-weight:700;text-shadow:0 2px 8px rgba(0,0,0,.5)}
.tcard .foot span{display:inline-flex;align-items:center;gap:5px}
.tcard .foot svg{width:17px;height:17px;fill:#fff}
.tcard h3{font-size:19px;font-weight:700;letter-spacing:-.02em;line-height:1.24;margin:12px 0 8px}
.price{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:16.5px;color:var(--ink-2)}
.price b{color:var(--tw-2);font-weight:700}
.price s{color:var(--ink-3);text-decoration-color:#D4453A}
.price em{font-style:normal;font-size:15px;font-weight:700;color:#0B5B32;background:#CFF0DC;border-radius:6px;padding:3px 8px}

/* perché twip */
.whygrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.whyc{border:1px solid var(--hair);border-radius:14px;padding:44px 14px 18px;text-align:center;position:relative;font-size:16.5px;line-height:1.4;color:var(--ink)}
.whyc img{position:absolute;top:-26px;left:50%;transform:translateX(-50%);width:74px;height:74px;border-radius:50%;object-fit:cover;border:3px solid #fff;box-shadow:0 6px 18px -10px rgba(10,40,60,.6)}
.whygrid{margin-top:38px;row-gap:44px}
.whyc p{margin:0}
.whywrap{display:grid;gap:30px;margin-top:8px}
.whygrid .whyc{transition:opacity .45s ease,transform .45s cubic-bezier(.4,0,.2,1)}
.whygrid.swap .whyc{opacity:0;transform:translateY(10px)}
.chatbox{background:#fff;border:1px solid var(--hair);border-radius:18px;padding:11px 12px 12px;box-shadow:0 8px 20px -16px rgba(10,40,60,.45);display:flex;flex-direction:column;gap:8px;transform:translateZ(0);contain:layout paint style}
.chathead{display:flex;align-items:center;gap:8px;padding-bottom:8px;border-bottom:1px solid var(--hair)}
.chathead img{width:28px;height:28px;object-fit:contain;flex:none}
.chathead b{font-size:15px;font-weight:800;letter-spacing:-.02em}
.chathead span{font-size:13px;color:#6B8399;margin-left:auto}

/* card alta (stile viaggio) */
.bigcard{width:270px;height:330px;border-radius:14px;overflow:hidden;position:relative}
.bigcard img{width:100%;height:100%;object-fit:cover}
.bigcard::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(6,26,36,.72))}
.bigcard div{position:absolute;left:14px;right:14px;bottom:16px;z-index:2;color:#fff;text-align:center}
.bigcard b{display:block;font-size:20px;font-weight:800;letter-spacing:-.02em;line-height:1.2;margin-bottom:4px}
.bigcard small{font-size:16px;font-weight:600;opacity:.95}

/* come nascono */
.crew{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;text-align:center;margin-top:22px}
.crew figure{margin:0}
.crew .av{position:relative;width:100%;aspect-ratio:1;border-radius:50%;overflow:hidden;border:2px solid var(--ink);margin-bottom:10px}
.crew .av img{width:100%;height:100%;object-fit:cover}
.crew .play{position:absolute;inset:0;display:grid;place-items:center}
.crew .play svg{width:34px;height:34px;fill:#fff;filter:drop-shadow(0 2px 6px rgba(0,0,0,.5))}
.crew b{display:block;font-size:16.5px;font-weight:700;line-height:1.25;margin-bottom:4px}
.crew small{font-size:15px;color:var(--ink-2);line-height:1.3;display:block}

/* riquadro registrazione */
.joinbox{background:linear-gradient(150deg,#DCF1F7,#EFE9FA);border-radius:16px;padding:26px 22px}
.joinbox h2{font-size:26px;font-weight:800;letter-spacing:-.03em;line-height:1.16;margin:0 0 18px}
.joinbox li{list-style:none;display:flex;gap:10px;font-size:16.5px;line-height:1.4;margin-bottom:14px}
.joinbox ul{margin:0 0 22px;padding:0}
.joinbox svg{width:18px;height:18px;flex:none;margin-top:3px;fill:none;stroke:var(--ink);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.btn-dark{display:block;width:100%;border:0;border-radius:10px;background:var(--ink);color:#fff;font:inherit;font-size:18px;font-weight:700;padding:16px;cursor:pointer;text-align:center}
.btn-dark:hover{background:#000}

/* testimonianze */
.vcard{width:270px}
.vcard .ph{position:relative;border-radius:12px;overflow:hidden;aspect-ratio:3/4;background:var(--hair-2)}
.vcard .ph img{width:100%;height:100%;object-fit:cover}
.vcard .play{position:absolute;inset:0;display:grid;place-items:center}
.vcard .play svg{width:56px;height:56px;fill:none;stroke:#fff;stroke-width:1.4}
.vcard b{display:block;font-size:17px;font-weight:700;margin:14px 0 6px}
.vcard p{margin:0;font-size:16px;line-height:1.45;color:var(--ink-2)}

/* cerchi amici */
.circles{display:flex;justify-content:center;margin:8px 0 22px}
.circles img{width:112px;height:130px;border-radius:50%;object-fit:cover;margin-left:-26px;border:3px solid #fff}
.circles img:first-child{margin-left:0}
.stores{display:flex;gap:12px;justify-content:center;margin-top:18px}
.stores a{display:inline-flex;align-items:center;gap:9px;background:var(--ink);color:#fff;border-radius:9px;padding:11px 16px;font-size:15px;font-weight:600}
.stores svg{width:20px;height:20px;fill:#fff}

/* card larghe */
.wcard{width:300px}
.wcard img{width:100%;aspect-ratio:1/.82;object-fit:cover;border-radius:12px}
.wcard small{display:block;font-size:16px;color:var(--ink-2);margin:12px 0 4px}
.wcard b{font-size:19px;font-weight:700;letter-spacing:-.02em;line-height:1.25}

/* prenota senza pensieri */
.calm{display:grid;gap:14px;margin-top:6px}
.calmc{border:1px solid var(--hair);border-radius:14px;padding:20px 22px;position:relative;overflow:hidden}
.calmc svg.ic{width:26px;height:26px;fill:none;stroke:var(--ink);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;margin-bottom:14px}
.calmc b{display:block;font-size:19px;font-weight:700;margin-bottom:8px}
.calmc p{margin:0;font-size:16.5px;line-height:1.45;color:var(--ink-2)}
.btn-auto{display:inline-block;width:auto;padding:15px 26px}
.newbadge{display:inline-block;background:var(--tw-2);color:#fff;font-size:12.5px;font-weight:800;letter-spacing:.06em;padding:4px 9px;border-radius:6px;margin-left:8px;vertical-align:2px}

/* ── finestre: accesso e menu ─────────────────────────────────────────── */
.ovl{position:fixed;inset:0;z-index:200;display:grid;place-items:start center;padding:20px;overflow-y:auto;
  background:rgba(10,20,28,.55);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);
  opacity:0;visibility:hidden;transition:opacity .22s ease,visibility 0s linear .22s}
.ovl.on{opacity:1;visibility:visible;transition-delay:0s}
.logincard{width:min(430px,100%);margin:auto;max-height:calc(100dvh - 40px);overflow-y:auto;background:#15131F;color:#fff;border-radius:18px;padding:30px 28px 26px;position:relative;
  transform:translateY(14px) scale(.97);transition:transform .3s cubic-bezier(.2,.9,.3,1.05)}
.ovl.on .logincard{transform:none}
.logincard h2{font-size:26px;font-weight:800;letter-spacing:-.03em;line-height:1.2;margin:0 0 24px;max-width:15ch}
.xbtn{position:absolute;top:20px;right:20px;border:0;background:transparent;color:#fff;cursor:pointer;padding:4px;line-height:0}
.xbtn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
.sso{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;border:1px solid rgba(255,255,255,.28);
  background:transparent;color:#fff;border-radius:10px;padding:15px;font:inherit;font-size:16.5px;font-weight:600;cursor:pointer;margin-bottom:12px;
  transition:background .16s,border-color .16s}
.sso:hover{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.5)}
.sso svg{width:21px;height:21px;flex:none}
.orline{display:flex;align-items:center;gap:14px;margin:22px 0 18px;color:rgba(255,255,255,.4)}
.orline::before,.orline::after{content:"";flex:1;height:1px;background:rgba(255,255,255,.2)}
.logincard label{display:block;font-size:15.5px;font-weight:600;margin-bottom:10px}
.logincard input{width:100%;border:1px solid rgba(255,255,255,.28);background:transparent;color:#fff;border-radius:10px;padding:15px;font:inherit;font-size:16px;outline:none}
.logincard input::placeholder{color:rgba(255,255,255,.45)}
.logincard input:focus{border-color:var(--tw)}
.logincard .go{width:100%;margin-top:14px;border:0;border-radius:10px;background:var(--tw);color:#06303a;font:inherit;font-size:17px;font-weight:800;padding:16px;cursor:pointer}
.logincard .go:hover{background:var(--tw-2);color:#fff}
.fine{font-size:13.5px;line-height:1.45;color:rgba(255,255,255,.6);margin:16px 0 0}
.fine a{color:#fff;text-decoration:underline}

/* menu laterale */
.scrim{position:fixed;inset:0;z-index:205;background:rgba(10,20,28,.45);opacity:0;visibility:hidden;transition:opacity .24s ease,visibility 0s linear .24s}
.scrim.on{opacity:1;visibility:visible;transition-delay:0s}
.drawer{position:fixed;top:0;right:0;bottom:0;z-index:210;width:min(320px,86vw);background:#fff;padding:26px 24px;
  box-shadow:-24px 0 60px -30px rgba(10,30,50,.6);transform:translateX(102%);transition:transform .34s cubic-bezier(.2,.9,.3,1.05)}
.drawer.on{transform:none}
.drawer .xbtn{color:var(--ink);top:18px;right:18px}
.drawer nav{display:grid;gap:4px;margin-top:34px}
.drawer nav a{display:block;padding:13px 6px;font-size:19px;font-weight:700;letter-spacing:-.02em;color:var(--ink);border-bottom:1px solid var(--hair)}
.drawer nav a:hover{color:var(--tw-2)}
.drawer .btn-dark{margin-top:26px}
.faq2{display:grid;gap:12px;margin-top:22px}
#faq .faq2{max-width:580px;margin-inline:auto;width:100%}
.faq2 details{background:#F4FAFC;border-radius:12px;overflow:hidden}
.faq2 summary{list-style:none;cursor:pointer;padding:20px 22px;font-size:17.5px;font-weight:600;line-height:1.35;display:flex;align-items:center;justify-content:space-between;gap:16px}
.faq2 summary::after{content:"";flex:none;width:11px;height:11px;border-right:2.4px solid var(--tw-2);border-bottom:2.4px solid var(--tw-2);transform:rotate(45deg);transform-origin:60% 60%;transition:transform .28s cubic-bezier(.4,1.3,.5,1)}
.faq2 details[open] summary::after{transform:rotate(225deg)}
.faq2 summary::-webkit-details-marker{display:none}
.faq2 p{margin:0;padding:0 22px 20px;font-size:16px;line-height:1.5;color:var(--ink-2)}
.faq2 details[open] summary{padding-bottom:10px}

/* cta finale */
/* cta finale — il cielo dell'Etna continua nella sezione sopra.
   Il fondo riprende, colonna per colonna, i colori della prima riga della
   foto (campionati dal file), così la giunzione non si vede. */
.skywrap{--sky:linear-gradient(90deg,#9acae0 0%,#a2cde5 13%,#a6cfe6 25%,#a7d0e6 38%,#aad1e6 50%,#abd1e5 63%,#aed3e6 75%,#b0d4e7 88%,#b1d4e6 100%);
  background:var(--sky)}
.endcta{position:relative;display:block;padding:0;line-height:0}
.endcta img.bg{width:100%;height:auto;display:block;aspect-ratio:2752/1536;object-fit:cover;
  -webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,0),#000 14%);mask-image:linear-gradient(to bottom,rgba(0,0,0,0),#000 14%)}
.skycta{position:absolute;z-index:2;top:0;left:0;right:0;text-align:center;padding:clamp(26px,6vw,64px) 18px 0;line-height:1.2}
.skycta h2{font-size:clamp(26px,5.2vw,46px);font-weight:800;letter-spacing:-.03em;margin:0 0 clamp(14px,2.4vw,26px);color:#0B2C3A}
body.tw2 a.btn-dark,body.tw2 a.btn-dark:hover{color:#fff}
.endphoto{margin-top:34px}
.endphoto img{width:100%;height:min(300px,46vw);object-fit:cover}

/* footer */
.foot2{background:#23262A;color:rgba(255,255,255,.78);padding:34px 0 26px;text-align:center}
.foot2 .flogo{height:26px;width:auto;margin:0 auto 22px}
.flogo2{--lh:44px;display:flex;align-items:flex-end;justify-content:center;gap:0;margin:0 auto 22px;width:max-content}
.flogo2 img{height:var(--lh);width:auto;display:block;filter:brightness(0) invert(1)}
.flogo2 .bagslot img{filter:none}
.news{display:flex;max-width:520px;margin:0 auto;border-radius:10px;overflow:hidden}
.news div{flex:1 1 auto;display:flex;align-items:center;gap:9px;background:#fff;padding:0 14px}
.news svg{width:20px;height:20px;flex:none;fill:none;stroke:#5b5b62;stroke-width:1.7}
.news input{flex:1 1 auto;min-width:0;border:0;outline:none;font:inherit;font-size:16.5px;padding:15px 0;color:var(--ink)}
.news button{flex:none;border:0;background:var(--tw);color:#06303a;font:inherit;font-size:16px;font-weight:700;padding:0 18px;cursor:pointer}
.foot2 p{font-size:14.5px;line-height:1.45;margin:16px auto 20px;max-width:520px;color:rgba(255,255,255,.62)}
.foot2 p a{color:var(--tw);text-decoration:underline}
.socials{display:flex;justify-content:center;gap:26px}
.socials a{color:#fff;line-height:0}
.socials svg{width:24px;height:24px;fill:currentColor}

/* ── desktop ───────────────────────────────────────────────────────────── */
@media (min-width:760px){
  :root{--cw:840px}
  .hdr2-in{max-width:var(--cw)}
  h2.sech,.endcta h2,.skycta h2{font-size:36px}
}
@media (min-width:1000px){
  :root{--cw:1160px;--cpad:32px}
  .hdr2-in{max-width:none;padding-left:clamp(24px,3vw,52px);padding-right:clamp(24px,3vw,52px)}
  .promo{justify-content:center;text-align:center;font-size:16px;padding:14px 56px;position:relative}
  .promo button{position:absolute;right:22px;top:50%;transform:translateY(-50%);margin:0}
  .hdr2-in{height:76px;gap:18px}
  /* sezioni "a filo": titoli e card partono dal bordo sinistro della pagina */
  .sec2.flush .wrapc{max-width:none;margin:0;padding-left:var(--fl);padding-right:0}
  .sec2.flush .rail{width:100vw;margin-left:calc(-1 * var(--fl));padding-left:var(--fl);padding-right:var(--fl);scroll-padding-inline:var(--fl) 0}
  .hdr2 .contact{font-size:16px}

  .hero2{height:min(420px,66vh)}
  .hero2-tx{bottom:96px}
  .hero2-tx h1{font-size:60px;letter-spacing:-.04em}
  .hero2-tx p{font-size:22px}

  .searchwrap{margin-top:-52px}
  .search2{max-width:820px;margin:0 auto;border-radius:18px}
  .search2 label{padding:16px 26px}
  .search2 button{width:96px;margin:10px 10px 10px 0}
  .askline b,.askline a{font-size:21px}

  .sec2{padding:56px 0}
  h2.sech,.endcta h2{font-size:42px;letter-spacing:-.035em}
  p.secs{font-size:18px}
  p.secs.center{margin-left:auto;margin-right:auto}

  /* fasce scorrevoli: card più grandi, stesso scorrimento orizzontale */
  .rail{gap:22px;padding:2px var(--cedge) 12px}
  .tcard{width:270px}
  .tcard h3{font-size:20px}
  .bigcard{width:320px;height:400px}
  .wcard{width:360px}
  .vcard{width:320px}

  .whywrap{grid-template-columns:1fr 380px;gap:40px;align-items:stretch;margin-top:52px}
  .whygrid{grid-template-columns:1fr 1fr;gap:20px;row-gap:52px;margin-top:0}
  .chatbox{padding:13px 14px 14px;align-self:stretch;justify-content:flex-start}
  .imsg{font-size:14px}
  .whyc{padding:52px 18px 22px;font-size:17px}
  .whyc img{width:86px;height:86px;top:-32px}

  .crew{gap:40px;max-width:840px;margin:34px auto 0}
  .crew b{font-size:18px}

  .joinbox{display:grid;grid-template-columns:1fr auto;align-items:center;gap:20px 48px;padding:44px 48px;border-radius:22px}
  .joinbox h2{grid-column:1;font-size:32px;margin:0}
  .joinbox ul{grid-column:1;margin:0}
  .joinbox li{font-size:17px}
  .joinbox .btn-dark{grid-column:2;grid-row:1 / span 2;width:auto;padding:18px 42px;font-size:19px}

  .circles img{width:150px;height:172px;margin-left:-34px}
  .calm{grid-template-columns:repeat(4,1fr);gap:22px}
  .calmc{padding:26px 24px}
  .faq2{grid-template-columns:1fr;gap:14px}
  .faq2 summary{font-size:18px;padding:24px 26px}

  .endcta{min-height:0}
  .skycta{padding-top:72px}

  .foot2{padding:52px 0 40px}
  .foot2 .flogo{height:32px}
  .flogo2{--lh:54px}
}

/* ── onboarding lampo (dopo l'accesso) ────────────────────────────────── */
.obwrap{position:fixed;inset:0;z-index:240;display:grid;place-items:center;padding:20px;
  background:rgba(8,22,32,.62);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  opacity:0;visibility:hidden;transition:opacity .22s ease,visibility 0s linear .22s}
.obwrap.on{opacity:1;visibility:visible;transition-delay:0s}
.obcard{width:min(460px,100%);background:#fff;border-radius:22px;padding:26px 24px 22px;position:relative;
  box-shadow:0 40px 80px -40px rgba(6,32,48,.7);transform:translateY(16px) scale(.97);transition:transform .32s cubic-bezier(.2,.9,.3,1.06)}
.obwrap.on .obcard{transform:none}
.obdots{display:flex;gap:6px;margin-bottom:18px}
.obdots i{height:4px;flex:1;border-radius:3px;background:var(--hair);transition:background .3s}
.obdots i.done{background:var(--tw)}
.obcard h3{margin:0 0 6px;font-size:25px;font-weight:800;letter-spacing:-.03em;line-height:1.15;text-wrap:balance}
.obcard p.obs{margin:0 0 18px;font-size:16px;line-height:1.45;color:var(--ink-2)}
.obopts{display:grid;gap:10px}
.obopts button{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:1px solid var(--hair);background:#fff;
  border-radius:13px;padding:15px 16px;font:inherit;font-size:16.5px;font-weight:700;color:var(--ink);cursor:pointer;
  transition:border-color .16s,background .16s,transform .16s}
.obopts button:hover{border-color:var(--tw);background:var(--tw-tint);transform:translateX(3px)}
.obopts button.pick{border-color:var(--tw);background:var(--tw-soft)}
.obopts em{font-style:normal;font-size:22px;line-height:1}
.obskip{display:block;margin:16px auto 0;border:0;background:transparent;font:inherit;font-size:15px;font-weight:600;color:var(--ink-3);cursor:pointer}
.obskip:hover{color:var(--ink)}
.obstep{animation:obIn .34s cubic-bezier(.2,.9,.3,1.05) both}
@keyframes obIn{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:none}}
.obdone{text-align:center}
.obdone .obtick{width:64px;height:64px;margin:0 auto 14px;border-radius:50%;background:var(--tw-soft);display:grid;place-items:center;animation:obPop .45s cubic-bezier(.2,1.4,.4,1) both}
.obdone .obtick svg{width:32px;height:32px;fill:none;stroke:var(--tw-2);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
@keyframes obPop{from{transform:scale(.4);opacity:0}to{transform:none;opacity:1}}
.obtags{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:0 0 18px}
.obtags span{background:var(--tw-tint);border-radius:999px;padding:7px 13px;font-size:14.5px;font-weight:700;color:var(--tw-2)}
.acct2.in{border-color:var(--tw);background:var(--tw-tint)}
.acct2 .ini{width:26px;height:26px;border-radius:50%;background:var(--tw);color:#06303a;font-size:13px;font-weight:800;display:grid;place-items:center}
@media (min-width:1000px){.obcard{padding:32px 30px 26px}.obcard h3{font-size:29px}}
