/* puntoeacapo · concept — UI condivisa delle pagine interne */
@font-face{font-family:'Poppins';src:url(/brand/fonts/Poppins-SemiBold.ttf) format('truetype');font-weight:600;font-display:swap}
@font-face{font-family:'Poppins';src:url(/brand/fonts/Poppins-Regular.ttf) format('truetype');font-weight:400;font-display:swap}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
  --body:"Roboto",Arial,sans-serif; --disp:'Poppins',sans-serif;
  --brutal:"Archivo Black",sans-serif; --mono:"JetBrains Mono",monospace;
  --navy:#221E45; --navy2:#12102a; --navy3:#2b2758; --blue:#39558E; --sky:#7FA8D9;
  --paper:#fdfdfd; --soft:#f1f5f9; --line:#e2e8f0; --dim:#5b6b7c; --wa:#159447;
}
body{font-family:var(--body);background:var(--paper);color:var(--navy);-webkit-font-smoothing:antialiased}

/* ═══════════ TENUTA MOBILE (iPhone / Android) ═══════════
   1) niente scorrimento laterale: overflow:clip non esiste su iOS < 16, lì serve hidden;
   2) header fisso promosso a livello proprio: su iOS smette di "cadere" a metà pagina;
   3) nulla può sfondare la larghezza (immagini, parole lunghe, cursori finti del desktop). */
html, body{ overflow-x: hidden; }
@supports (overflow: clip){ html, body{ overflow-x: clip; } }
html, body{ overscroll-behavior-x: none; }
html{ -webkit-text-size-adjust: 100%; }
body{ overflow-wrap: break-word; }
img, svg, video, canvas, iframe{ max-width: 100%; }
.hd{ transform: translateZ(0); -webkit-backface-visibility: hidden; backface-visibility: hidden; }
@media (hover: none), (pointer: coarse){
  .cursor, .cursor2{ display: none !important; }
}
/* col menu aperto la pagina dietro resta ferma */
body.menu-open{ overflow: hidden; }

/* iOS: il backdrop-filter su un elemento fisso è la causa classica dell'header che si stacca
   durante lo scorrimento → sul touch si usa un fondo pieno, identico a vedersi. */
@media (hover: none), (pointer: coarse){
  .hd.solid{ backdrop-filter: none !important; -webkit-backdrop-filter: none !important; background: rgba(253,253,253,.985) !important; }
}
/* ══════════════════════════════════════════════════════ */

a{color:inherit}
::selection{background:var(--blue);color:#fff}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
.rv{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}
.kicker{font-family:var(--mono);font-size:.76rem;letter-spacing:.2em;text-transform:uppercase;color:var(--blue);margin-bottom:14px}
.sec-title{font-family:var(--disp);font-weight:600;font-size:clamp(1.8rem,4.4vw,3rem);letter-spacing:-.02em;line-height:1.08}
.btn{display:inline-flex;align-items:center;gap:9px;font-weight:700;font-size:.95rem;text-decoration:none;padding:15px 30px;border-radius:100px;transition:transform .25s,background .2s;border:none;cursor:pointer;font-family:var(--body)}
.btn:hover{transform:translateY(-3px)}
.btn--blue{background:var(--blue);color:#fff;box-shadow:0 10px 28px rgba(57,85,142,.3)}
.btn--blue:hover{background:#2c4373}
.btn--white{background:#fff;color:var(--navy);box-shadow:0 10px 28px rgba(0,0,0,.18)}
.btn--wa{background:var(--wa);color:#fff}

/* HEADER (iniettato da peac-ui.js) */
.hd{position:fixed;top:0;left:0;right:0;z-index:1000;color:#fff;transition:background .35s,color .35s,box-shadow .35s}
.hd.solid{background:rgba(253,253,253,.93);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);color:var(--navy);box-shadow:0 1px 0 var(--line),0 8px 30px rgba(34,30,69,.07)}
.hd__in{max-width:1240px;margin:0 auto;display:flex;align-items:center;gap:20px;padding:16px 24px;transition:padding .35s}
.hd.solid .hd__in{padding:11px 24px}
.hd__logo{display:flex;align-items:center;text-decoration:none}
.hd__logo img{height:28px;display:block}
.hd__logo .l-blu{display:none}
.hd.solid .hd__logo .l-bianco{display:none}
.hd.solid .hd__logo .l-blu{display:block}
.hd__nav{display:flex;gap:0;margin-left:auto}
.hd__nav a{position:relative;font-size:.84rem;font-weight:500;text-decoration:none;padding:8px 11px;opacity:.82;white-space:nowrap;transition:opacity .2s}
.hd__nav a:hover,.hd__nav a.on{opacity:1}
.hd__nav a::after{content:"";position:absolute;left:11px;right:11px;bottom:3px;height:2px;border-radius:2px;background:var(--sky);transform:scaleX(0);transform-origin:left;transition:transform .25s}
.hd.solid .hd__nav a::after{background:var(--blue)}
.hd__nav a.on::after,.hd__nav a:hover::after{transform:scaleX(1)}
.hd__cta{font-size:.83rem;font-weight:700;text-decoration:none;padding:10px 20px;border-radius:100px;background:var(--blue);color:#fff;white-space:nowrap;transition:background .2s}
.hd__cta:hover{background:#2c4373}
.hd__burger{display:none;width:42px;height:42px;border:1px solid currentColor;border-radius:10px;background:none;cursor:pointer;position:relative;color:inherit}
.hd__burger i{position:absolute;left:11px;right:11px;height:2px;background:currentColor;transition:transform .3s,top .3s,opacity .3s}
.hd__burger i:nth-child(1){top:15px}.hd__burger i:nth-child(2){top:20px}.hd__burger i:nth-child(3){top:25px}
body.menu-open .hd__burger i:nth-child(1){top:20px;transform:rotate(45deg)}
body.menu-open .hd__burger i:nth-child(2){opacity:0}
body.menu-open .hd__burger i:nth-child(3){top:20px;transform:rotate(-45deg)}
/* selettore lingua (header + menu mobile) */
.langsw{position:relative;flex-shrink:0}
.langsw__btn{display:inline-flex;align-items:center;gap:6px;background:none;border:1px solid transparent;border-radius:100px;padding:8px 12px;font-family:var(--body);font-weight:600;font-size:.82rem;color:inherit;cursor:pointer;opacity:.82;transition:opacity .2s,border-color .2s,background .2s}
.langsw__btn:hover{opacity:1;border-color:currentColor}
.langsw__btn svg{opacity:.9}
.langsw__menu{position:absolute;top:calc(100% + 10px);right:0;min-width:158px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 22px 55px rgba(34,30,69,.2);padding:6px;display:none;z-index:1200}
.langsw.open .langsw__menu{display:block}
.langsw__menu button{display:block;width:100%;text-align:left;background:none;border:none;border-radius:9px;padding:10px 13px;font-family:var(--body);font-size:.86rem;font-weight:500;color:var(--navy);cursor:pointer;transition:background .15s}
.langsw__menu button:hover{background:var(--soft)}
.langsw__menu button[aria-current="true"]{background:var(--blue);color:#fff;font-weight:700}
@media(max-width:1150px){.hd__nav,.hd__cta,.hd__in .langsw{display:none}.hd__burger{display:block;margin-left:auto}}
/* ═══ MENU MOBILE — editoriale, pulito ═══ */
.mnav{position:fixed;inset:0;z-index:990;background:linear-gradient(168deg,#221E45 0%,#151233 55%,#0d0b22 100%);opacity:0;visibility:hidden;transition:opacity .4s ease,visibility .4s;overflow:hidden auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.mnav::before{content:"";position:absolute;right:0;top:-6%;width:min(78vw,420px);height:min(78vw,420px);background:radial-gradient(circle,rgba(127,168,217,.16),transparent 62%);pointer-events:none}
.mnav::after{content:none}
body.menu-open .mnav{opacity:1;visibility:visible}
/* header trasparente sopra il menu (niente barra chiara) */
body.menu-open .hd{background:transparent!important;box-shadow:none!important;color:#fff!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
body.menu-open .hd .l-blu{display:none}body.menu-open .hd .l-bianco{display:block}
.mnav__panel{position:relative;z-index:2;min-height:100%;display:flex;flex-direction:column;justify-content:center;padding:calc(88px + env(safe-area-inset-top)) 26px calc(34px + env(safe-area-inset-bottom))}
.mnav__links{display:flex;flex-direction:column;counter-reset:mn}
.mnav__links a{position:relative;display:flex;align-items:center;gap:18px;padding:17px 2px;font-family:var(--disp);font-weight:600;font-size:clamp(1.5rem,7vw,2.15rem);letter-spacing:-.01em;line-height:1;color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.08);opacity:0;transform:translateY(14px);transition:opacity .5s,transform .5s,color .2s}
.mnav__links a::before{counter-increment:mn;content:counter(mn,decimal-leading-zero);font-family:var(--mono);font-size:.62rem;font-weight:600;letter-spacing:.14em;color:var(--sky);opacity:.6;min-width:20px}
.mnav__links a::after{content:"→";margin-left:auto;font-size:1.05rem;color:var(--sky);opacity:0;transform:translateX(-8px);transition:opacity .25s,transform .25s}
.mnav__links a.on{color:var(--sky)}
.mnav__links a.on::before{opacity:1}
.mnav__links a.on::after,.mnav__links a:hover::after,.mnav__links a:active::after{opacity:1;transform:none}
body.menu-open .mnav__links a{opacity:1;transform:none}
.mnav__links a:nth-child(1){transition-delay:.05s}.mnav__links a:nth-child(2){transition-delay:.09s}.mnav__links a:nth-child(3){transition-delay:.13s}.mnav__links a:nth-child(4){transition-delay:.17s}.mnav__links a:nth-child(5){transition-delay:.21s}.mnav__links a:nth-child(6){transition-delay:.25s}.mnav__links a:nth-child(7){transition-delay:.29s}.mnav__links a:nth-child(8){transition-delay:.33s}
.mnav__cta{margin-top:26px;display:flex;align-items:center;justify-content:center;gap:9px;background:linear-gradient(90deg,var(--blue),var(--sky));color:#fff;font-family:var(--body);font-weight:700;font-size:1.02rem;padding:16px;border-radius:14px;text-decoration:none;box-shadow:0 16px 36px -14px rgba(57,85,142,.85);opacity:0;transform:translateY(14px);transition:opacity .5s .32s,transform .5s .32s}
body.menu-open .mnav__cta{opacity:1;transform:none}
/* lingua e social su UNA riga (il tasto lingua è alto come le icone, niente a capo) */
.mnav__foot{margin-top:34px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:nowrap;opacity:0;transition:opacity .5s .4s}
body.menu-open .mnav__foot{opacity:1}
.mnav .langsw{margin:0;position:relative}
.mnav .langsw__btn{color:#fff;opacity:1;border:1px solid rgba(255,255,255,.24);font-size:.92rem;padding:10px 15px;border-radius:100px;white-space:nowrap}
/* tendina lingua del menu: pannello CENTRATO nello schermo con velo dietro
   (prima era ancorata a sinistra e usciva dallo schermo) */
.mnav .langsw__menu{position:fixed;left:50%;top:50%;right:auto;bottom:auto;transform:translate(-50%,-50%);width:min(84vw,320px);max-height:min(70svh,480px);overflow:auto;z-index:1400;padding:10px;box-shadow:0 0 0 100vmax rgba(13,11,34,.55),0 30px 80px rgba(0,0,0,.5)}
.mnav .langsw__menu button{padding:12px 14px;font-size:.95rem}
.mnav__soc{display:flex;gap:10px;flex-shrink:0}
.mnav__soc a{width:42px;height:42px;padding:0;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.05);display:grid;place-items:center;color:#fff;transition:background .2s,border-color .2s,color .2s}
.mnav__soc a svg{width:20px;height:20px;display:block}
.mnav__soc a:hover{background:var(--sky);border-color:var(--sky);color:var(--navy)}
@media(max-width:350px){.mnav__soc{gap:8px}.mnav__soc a{width:38px;height:38px}}

/* PAGE HERO (banda notte) */
.phero{position:relative;background:linear-gradient(160deg,var(--navy3) 0%,var(--navy) 45%,var(--navy2) 100%);color:#fff;padding:150px 0 70px;overflow:hidden}
/* decoro di marca nella testata: elemento del logo pack, molto slavato.
   Sta DENTRO il riquadro (niente offset negativi) così non può creare scorrimento laterale. */
.phero::after{content:"";position:absolute;right:0;top:-8%;width:min(400px,52vw);height:min(400px,52vw);
  background:url(/brand/deco-eco-celeste.png) no-repeat center/contain;opacity:.055;pointer-events:none;z-index:0}
.phero .kicker{color:var(--sky)}
.phero h1{font-family:var(--disp);font-weight:600;font-size:clamp(2.4rem,6.4vw,4.4rem);letter-spacing:-.02em;line-height:1.04}
.phero p.sub{margin-top:14px;font-size:1.05rem;color:rgba(255,255,255,.72);max-width:600px;line-height:1.65}
.phero .crumb{position:relative;z-index:2;font-size:.82rem;margin-bottom:20px}
.phero .crumb a{color:var(--sky);text-decoration:none;font-weight:700}
.phero .crumb a:hover{text-decoration:underline}

/* CARDS evento (condivise) */
.show-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:22px}
.show-card{border-radius:18px;overflow:hidden;background:#fff;border:1px solid var(--line);transition:transform .3s,box-shadow .3s;text-decoration:none;display:flex;flex-direction:column}
.show-card:hover{transform:translateY(-6px);box-shadow:0 20px 44px rgba(34,30,69,.13)}
.show-card__banner{aspect-ratio:16/9;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}
.show-card__banner .bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:grayscale(.92) contrast(1.05);transition:filter .5s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.show-card:hover .show-card__banner .bg{filter:grayscale(0);transform:scale(1.08)}
.show-card__banner::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(34,30,69,.1) 30%,rgba(34,30,69,.62));pointer-events:none}
.show-card__banner b{position:relative;z-index:2;font-family:var(--brutal);font-size:clamp(1.3rem,3vw,1.9rem);color:rgba(255,255,255,.95);text-transform:uppercase;text-align:center;padding:0 14px;line-height:1.1;text-shadow:0 3px 22px rgba(0,0,0,.55)}
.show-card__banner .badge{position:absolute;top:12px;right:12px;z-index:2}
.show-card__body{padding:20px 22px 22px;display:flex;flex-direction:column;gap:6px;flex:1}
.show-card__date{font-family:var(--mono);font-size:.74rem;letter-spacing:.12em;color:var(--blue);text-transform:uppercase}
.show-card__venue{font-size:.9rem;color:var(--dim)}
.show-card__foot{margin-top:auto;padding-top:14px;display:flex;align-items:center;justify-content:space-between}
.show-card__price{font-weight:700;font-size:.95rem}
.show-card__buy{font-size:.85rem;font-weight:700;color:var(--blue)}
.badge{font-size:.64rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:6px 11px;border-radius:100px}
.badge--sold{background:#fee2e2;color:#b91c1c}
.badge--new{background:#dcfce7;color:#166534}

/* PRE-FOOTER condiviso: newsletter + domande + contatti */
.pf-news{padding:80px 0 40px}
.pf-news .band{border-radius:22px;padding:clamp(28px,4.6vw,48px);background:linear-gradient(120deg,var(--navy) 0%,var(--navy3) 70%,var(--blue) 130%);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:26px;flex-wrap:wrap;box-shadow:0 26px 60px rgba(34,30,69,.25)}
.pf-news h3{font-family:var(--disp);font-weight:600;font-size:clamp(1.4rem,3.2vw,2.1rem)}
.pf-news .band>div>p{color:rgba(255,255,255,.7);margin-top:8px;max-width:420px}
.pf-news .kicker{color:var(--sky);margin-bottom:8px}
.pf-news form{display:flex;gap:10px;flex-wrap:wrap}
.pf-news input{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25);border-radius:100px;padding:14px 22px;color:#fff;font-size:.92rem;min-width:230px;outline:none;font-family:var(--body)}
.pf-news input::placeholder{color:rgba(255,255,255,.5)}
.pf-news input:focus{border-color:var(--sky)}
.pf-news button{border:none;border-radius:100px;padding:14px 26px;font-weight:700;font-size:.92rem;background:#fff;color:var(--navy);cursor:pointer;font-family:var(--body)}
.pf-news button.ok{background:var(--wa);color:#fff}
.pf-faq{padding:50px 0}
.pf-faq .faq-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;margin-top:30px}
.pf-faq .faq-card{border-radius:18px;padding:28px 24px;background:#fff;border:1px solid var(--line);transition:transform .3s,box-shadow .3s;text-decoration:none;display:block}
.pf-faq .faq-card:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(34,30,69,.12)}
.pf-faq .faq-card i{font-style:normal;font-size:1.7rem;display:block;margin-bottom:12px}
.pf-faq .faq-card h4{font-family:var(--disp);font-weight:600;font-size:1.06rem;margin-bottom:8px}
.pf-faq .faq-card p{font-size:.86rem;color:var(--dim);line-height:1.6}
.pf-faq .faq-card b{display:inline-block;margin-top:14px;font-size:.82rem;color:var(--blue)}
.pf-cont{padding:70px 0;background:linear-gradient(160deg,var(--navy) 0%,var(--navy2) 100%);color:#fff;text-align:center;margin-top:50px}
.pf-cont h2{font-family:var(--disp);font-weight:600;font-size:clamp(1.8rem,4.6vw,3rem)}
.pf-cont p{margin-top:12px;color:rgba(255,255,255,.7)}
.pf-cont .acts{margin-top:28px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.pf-cont .info{margin-top:26px;display:flex;gap:clamp(16px,4.6vw,46px);justify-content:center;flex-wrap:wrap;font-size:.86rem;color:rgba(255,255,255,.6)}

/* FOOTER */
.footer{background:var(--navy2);color:rgba(255,255,255,.55);padding:46px 24px;text-align:center}
.footer__in{max-width:780px;margin:0 auto;display:grid;gap:14px;justify-items:center}
.footer__in img{height:26px;opacity:.9}
.footer nav{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;font-size:.84rem}
.footer nav a{text-decoration:none;color:rgba(255,255,255,.6)}
.footer nav a:hover{color:#fff}
.footer__fine{font-size:.71rem;color:rgba(255,255,255,.35);line-height:1.7}
.footer__fine b{color:rgba(255,255,255,.55)}
.footer__admin{font-family:var(--mono);font-size:.72rem}
.footer__admin a{color:var(--sky);text-decoration:none}

/* util */
.content-pad{padding:70px 0}
.card-w{background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px;box-shadow:0 8px 30px rgba(34,30,69,.05)}

/* ═══ POLISH GLOBALE ═══ */
html{scroll-behavior:smooth}
body{animation:pageIn .5s ease}
@keyframes pageIn{from{opacity:0}to{opacity:1}}
::-webkit-scrollbar{width:11px}
::-webkit-scrollbar-track{background:var(--soft)}
::-webkit-scrollbar-thumb{background:#b9c4d6;border-radius:6px;border:2px solid var(--soft)}
::-webkit-scrollbar-thumb:hover{background:var(--blue)}
:focus-visible{outline:3px solid var(--sky);outline-offset:2px;border-radius:4px}
.phero .wrap{position:relative;z-index:2}
.phero::before{content:"";position:absolute;right:-16%;top:-42%;width:560px;height:560px;border-radius:50%;background:radial-gradient(circle,rgba(127,168,217,.13),transparent 58%);filter:blur(44px);pointer-events:none}
.phero h1{animation:heroUp .7s cubic-bezier(.2,.7,.2,1) both}
.phero p.sub,.phero .kicker,.phero .crumb{animation:heroUp .7s cubic-bezier(.2,.7,.2,1) .12s both}
@keyframes heroUp{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
img{max-width:100%}
/* "Riduci movimento" è una PREFERENZA, non un'assenza di capacità: non spegniamo le
   animazioni (molti PC Windows la riportano di default). Teniamo solo lo scroll non
   animato, che è un accomodamento gentile. Le entrate/reveal restano per tutti. */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
}

/* ═══ OTTIMIZZAZIONE TELEFONO ═══ */
@media(max-width:680px){
  .wrap{padding:0 18px}
  .phero{padding:118px 0 50px}
  .phero h1{font-size:clamp(2rem,9vw,2.8rem)}
  .phero p.sub{font-size:.96rem}
  .content-pad{padding:48px 0}
  .sec-title{font-size:clamp(1.5rem,7vw,2.1rem)}
  .btn{padding:14px 24px;font-size:.9rem;width:100%;justify-content:center}
  .show-grid{gap:16px}
  .show-card__body{padding:16px 18px 18px}
  .pf-cont .acts .btn{width:100%}
}
@media(max-width:400px){
  .wrap{padding:0 14px}
  .hd__in{padding:14px 14px}
}
/* ═══ SCHERMI MOLTO LARGHI: senza questo, su monitor grandi (tipico Windows a
   scala 100%) il layout a larghezza fissa sembra "dezoomato". Scala progressiva. ═══ */
@media(min-width:1700px){
  html{font-size:17px}
  .wrap{max-width:1340px}
  .hd__in{max-width:1380px}
}
@media(min-width:2200px){
  html{font-size:18.5px}
  .wrap{max-width:1480px}
  .hd__in{max-width:1520px}
}
