/* ===== Brand fonts ===== */
  @font-face { font-family:'Sandro Grottesco'; src:url('/assets/fonts/sandro_grotesque/SANDROGROTTESCO_FREE%20TRIAL/SandroGrottesco-Regular.otf') format('opentype'), url('/assets/fonts/sandro_grotesque/SANDROGROTTESCO_FREE%20TRIAL/SandroGrottesco-Regular.ttf') format('truetype'); font-weight:400; font-display:swap; }
  @font-face { font-family:'Darker Grotesque'; src:url('/assets/fonts/Barlow/Darker_Grotesque/static/DarkerGrotesque-Light.ttf') format('truetype'); font-weight:300; font-display:swap; }
  @font-face { font-family:'Darker Grotesque'; src:url('/assets/fonts/Barlow/Darker_Grotesque/static/DarkerGrotesque-Regular.ttf') format('truetype'); font-weight:400; font-display:swap; }
  @font-face { font-family:'Darker Grotesque'; src:url('/assets/fonts/Barlow/Darker_Grotesque/static/DarkerGrotesque-Medium.ttf') format('truetype'); font-weight:500; font-display:swap; }
  @font-face { font-family:'Darker Grotesque'; src:url('/assets/fonts/Barlow/Darker_Grotesque/static/DarkerGrotesque-SemiBold.ttf') format('truetype'); font-weight:600; font-display:swap; }
  @font-face { font-family:'Darker Grotesque'; src:url('/assets/fonts/Barlow/Darker_Grotesque/static/DarkerGrotesque-Bold.ttf') format('truetype'); font-weight:700; font-display:swap; }

  :root{
    --navy:#050726;
    --navy-block:#040B59;
    --white:#FFFFFF;
    --muted:rgba(255,255,255,0.55);
    --line:rgba(255,255,255,0.10);
    --cyan:#7DDCEB;
    --electric:#2E3FF5;
    --glass-bg:rgba(255,255,255,0.08);
    --glass-brd:rgba(255,255,255,0.18);
    --glass-shadow:0 24px 60px rgba(0,0,0,.4);
    --maxw:1320px;
    font-synthesis:none;
  }

  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
  body{
    background:var(--navy);
    color:var(--white);
    font-family:'Darker Grotesque',system-ui,-apple-system,sans-serif;
    font-weight:500;
    line-height:1.5;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  ::selection{background:var(--electric);color:#fff}
  a{color:inherit;text-decoration:none}
  img,video{display:block;max-width:100%}

  .wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 40px}

  /* etichette uppercase piccole */
  .overline{
    font-family:'Darker Grotesque',sans-serif;
    font-weight:700;text-transform:uppercase;
    letter-spacing:.18em;font-size:13px;
    color:var(--cyan);
    display:inline-flex;align-items:center;gap:11px;
  }
  .overline::before{content:"";width:24px;height:1px;background:var(--cyan);opacity:.85}
  .overline.muted{color:var(--muted)}
  .overline.muted::before{background:var(--muted)}

  /* bottoni */
  .btn{
    display:inline-flex;align-items:center;gap:9px;
    font-family:'Darker Grotesque',sans-serif;font-weight:700;
    text-transform:uppercase;letter-spacing:.16em;font-size:14px;
    padding:16px 30px;border-radius:100px;cursor:pointer;
    transition:transform .25s ease,box-shadow .25s ease,background .25s ease,color .25s ease;
    border:1px solid transparent;white-space:nowrap;
  }
  .btn-solid{background:var(--cyan);color:var(--navy);box-shadow:0 14px 36px rgba(125,220,235,.32)}
  .btn-solid:hover{transform:translateY(-3px);box-shadow:0 20px 48px rgba(125,220,235,.5)}
  .btn-glass{
    background:var(--glass-bg);
    backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
    border:1px solid var(--glass-brd);color:var(--white);
  }
  .btn-glass:hover{transform:translateY(-3px);background:rgba(255,255,255,.16);border-color:var(--cyan);color:var(--cyan)}

  /* ============ NAV ============ */
  .nav{
    position:fixed;top:18px;left:50%;transform:translateX(-50%);
    width:calc(100% - 44px);max-width:var(--maxw);z-index:50;
    display:flex;align-items:center;justify-content:space-between;
    padding:12px 14px 12px 24px;border-radius:100px;
    background:rgba(5,7,38,.40);
    backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
    border:1px solid rgba(255,255,255,.14);
    transition:background .3s ease,box-shadow .3s ease;
  }
  .nav.scrolled{background:rgba(5,7,38,.85);box-shadow:0 14px 40px rgba(0,0,0,.4)}
  .nav .logo img{height:28px;width:auto}
  .nav-links{display:flex;gap:32px;align-items:center}
  .nav-links a{
    font-family:'Darker Grotesque',sans-serif;font-weight:700;
    text-transform:uppercase;letter-spacing:.14em;font-size:12px;
    color:rgba(255,255,255,.7);transition:color .2s ease;
  }
  .nav-links a:hover{color:var(--white)}
  .nav-cta{
    background:var(--cyan);color:var(--navy);
    font-family:'Darker Grotesque',sans-serif;font-weight:700;
    text-transform:uppercase;letter-spacing:.14em;font-size:12px;
    padding:11px 22px;border-radius:100px;transition:transform .25s ease;
  }
  .nav-cta:hover{transform:translateY(-2px)}
  .nav-burger{display:none;background:none;border:0;cursor:pointer;padding:8px}
  .nav-burger span{display:block;width:22px;height:2px;background:#fff;margin:4px 0;border-radius:2px}
  /* Pagine di vendita: solo logo, nessun menu e nessun link che porta via */
  .nav--bare{justify-content:center;padding:12px 24px}
  .nav--bare .logo{display:block}
  .nav--bare .logo img{height:28px;width:auto}

  /* ============ HERO ============ */
  .hero{
    position:relative;min-height:100vh;
    display:flex;flex-direction:column;justify-content:flex-end;
    /* il padding-top riserva lo spazio della nav fissa: su schermi bassi (portatili)
       il contenuto si ferma sotto il menu invece di finirci sopra */
    padding:118px 40px 60px;overflow:hidden;background:var(--navy);
  }
  .hero-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
  .hero::before{
    content:"";position:absolute;inset:0;z-index:1;
    background:
      radial-gradient(circle at 80% 25%, rgba(46,63,245,.32), transparent 55%),
      linear-gradient(105deg, rgba(4,11,89,.82) 0%, rgba(5,7,38,.52) 46%, rgba(5,7,38,.30) 100%),
      linear-gradient(180deg, rgba(5,7,38,.55) 0%, rgba(5,7,38,.20) 45%, rgba(5,7,38,.96) 100%);
  }
  /* texture a puntini stile Eathan */
  .hero-grid{
    position:absolute;inset:0;z-index:2;pointer-events:none;
    background-image:radial-gradient(rgba(125,220,235,.12) 1px, transparent 1px);
    background-size:34px 34px;
    -webkit-mask-image:radial-gradient(ellipse 70% 65% at 50% 45%, #000 25%, transparent 82%);
            mask-image:radial-gradient(ellipse 70% 65% at 50% 45%, #000 25%, transparent 82%);
  }
  .hero-inner{position:relative;z-index:5;width:100%;max-width:var(--maxw);margin:0 auto}

  .hero-tag{margin-bottom:24px}

  .hero-title{
    font-family:'Sandro Grottesco',sans-serif;
    text-transform:uppercase;line-height:.86;letter-spacing:-.02em;
    margin-bottom:8px;
  }
  /* la dimensione segue sia la larghezza sia l'ALTEZZA della finestra:
     su portatili con schermo basso il titolo rimpicciolisce e resta dentro la hero */
  .hero-title .l1{
    display:block;
    font-size:clamp(38px,min(7.4vw,8.6vh),88px);
    -webkit-text-stroke:1.5px var(--white);color:transparent;
  }
  .hero-title .l2{
    display:block;
    /* stessa misura della riga sopra: le righe della hero sono tutte uguali */
    font-size:clamp(38px,min(7.4vw,8.6vh),88px);
    color:var(--cyan);text-shadow:0 0 60px rgba(125,220,235,.25);
  }

  /* variante per il titolo lungo (frase intera al posto del claim corto) */
  .hero-title--long{line-height:1.02;max-width:44ch}
  .hero-title--long .l1{font-size:clamp(30px,min(4.4vw,7vh),68px)}
  .hero-title--long .l2{font-size:clamp(30px,min(4.4vw,7vh),68px)}

  .hero-bottom{
    display:flex;flex-direction:column;align-items:flex-start;
    gap:24px;margin-top:32px;max-width:min(560px,60%);
  }
  .hero-sub{
    max-width:470px;font-size:21px;line-height:1.55;
    color:rgba(255,255,255,.82);font-weight:500;
  }
  .hero-sub strong{color:var(--white);font-weight:700}
  .hero-cta{display:flex;gap:14px;align-items:center;flex-wrap:wrap}

  /* badge glass flottanti */
  .hero-stats{
    /* alzato da 60 a 88 per non finire sotto il bottone WhatsApp */
    position:absolute;z-index:5;right:40px;bottom:88px;
    display:flex;gap:12px;
  }
  .stat{
    background:var(--glass-bg);
    backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
    border:1px solid var(--glass-brd);box-shadow:var(--glass-shadow);
    border-radius:18px;padding:16px 20px;min-width:118px;
  }
  .stat b{display:block;font-family:'Sandro Grottesco',sans-serif;font-size:24px;line-height:1.1;letter-spacing:-.02em;color:var(--white)}
  .stat span{display:block;font-size:13px;color:rgba(255,255,255,.7);letter-spacing:.03em;margin-top:2px}

  /* ============ SECTION SHELL ============ */
  section{position:relative}
  .sec-pad{padding:120px 0}
  .sec-head{max-width:720px;margin-bottom:56px}
  .sec-head h2{
    font-family:'Sandro Grottesco',sans-serif;text-transform:uppercase;
    font-size:clamp(30px,3.6vw,54px);line-height:.96;letter-spacing:-.02em;margin:18px 0 0;
  }
  .sec-head h2 em{font-style:normal;color:var(--cyan)}
  .sec-head p{color:var(--muted);font-size:21px;line-height:1.55;max-width:52ch;margin-top:20px}

  /* ============ OFFERTE — blocco CHIARO, card bianche solide ============ */
  .bento{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
  .card{
    position:relative;border-radius:22px;overflow:hidden;
    display:flex;flex-direction:column;
    background:#FFFFFF;
    border:1px solid rgba(4,11,89,.08);
    box-shadow:0 18px 44px rgba(4,11,89,.10);
    transition:transform .3s ease,box-shadow .3s ease;
  }
  .card:hover{transform:translateY(-6px);box-shadow:0 28px 60px rgba(4,11,89,.16)}
  .card .ph{position:relative;aspect-ratio:16/11;overflow:hidden}
  .card .ph img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.16,.84,.44,1)}
  .card:hover .ph img{transform:scale(1.06)}
  .card .badge{
    position:absolute;top:18px;left:18px;
    background:#FFFFFF;
    border:1px solid rgba(4,11,89,.08);
    box-shadow:0 6px 18px rgba(4,11,89,.14);
    font-family:'Darker Grotesque',sans-serif;font-weight:700;
    text-transform:uppercase;letter-spacing:.14em;font-size:11px;color:var(--navy-block);
    padding:8px 15px;border-radius:100px;
  }
  .card .badge.cyan{background:var(--electric);color:#fff;border-color:var(--electric);box-shadow:0 6px 18px rgba(46,63,245,.35)}
  .card-body{padding:26px 26px 28px;display:flex;flex-direction:column;flex:1}
  .card-body h3{
    font-family:'Sandro Grottesco',sans-serif;text-transform:uppercase;color:var(--navy-block);
    font-size:clamp(23px,2.1vw,31px);line-height:1;letter-spacing:-.02em;margin-bottom:12px;
  }
  .card-body p{color:#4B4E6B;font-size:17px;line-height:1.5;max-width:34ch;margin-bottom:18px;flex:1}
  .card-body .price{
    display:inline-flex;align-items:center;gap:9px;
    font-family:'Darker Grotesque',sans-serif;font-weight:700;text-transform:uppercase;
    letter-spacing:.12em;font-size:14px;color:var(--electric);
  }
  .card-body .price svg{transition:transform .25s ease}
  .card:hover .card-body .price svg{transform:translateX(4px)}

  /* ============ BANNER CORSI (righe larghe, mobile first) ============ */
  .corsi-rows{display:grid;gap:26px}
  .corso-row{
    display:grid;grid-template-columns:1fr;
    background:#FFFFFF;
    border:1px solid rgba(4,11,89,.08);
    border-radius:24px;overflow:hidden;
    box-shadow:0 18px 44px rgba(4,11,89,.10);
    transition:transform .3s ease,box-shadow .3s ease;
  }
  .corso-row:hover{transform:translateY(-4px);box-shadow:0 28px 60px rgba(4,11,89,.16)}
  .corso-row .ph{position:relative;aspect-ratio:16/10;overflow:hidden}
  .corso-row .ph img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.16,.84,.44,1)}
  .corso-row:hover .ph img{transform:scale(1.05)}
  .corso-body{padding:26px 24px 28px;display:flex;flex-direction:column}
  .corso-body h3{margin-bottom:14px}
  .corso-body .tema{
    display:inline-block;margin-bottom:14px;
    font-family:'Darker Grotesque',sans-serif;font-weight:700;
    text-transform:uppercase;letter-spacing:.14em;font-size:12px;line-height:1;
    color:var(--electric);
  }
  .corso-body .nome{
    display:block;
    font-family:'Sandro Grottesco',sans-serif;text-transform:uppercase;color:var(--navy-block);
    font-size:clamp(30px,5vw,46px);line-height:.94;letter-spacing:-.025em;
  }
  .corso-body .titolo{
    display:block;margin-top:12px;
    font-family:'Darker Grotesque',sans-serif;font-weight:600;color:var(--electric);
    font-size:clamp(19px,2.2vw,26px);line-height:1.2;letter-spacing:-.01em;
  }
  .corso-body .lead{color:#4B4E6B;font-size:18px;line-height:1.5;max-width:54ch;margin-bottom:20px}
  .corso-temi{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}
  .corso-temi li{
    font-family:'Darker Grotesque',sans-serif;font-weight:600;
    text-transform:uppercase;letter-spacing:.09em;font-size:12px;line-height:1;
    color:var(--navy-block);
    background:rgba(46,63,245,.06);
    border:1px solid rgba(46,63,245,.16);
    padding:9px 14px;border-radius:100px;
  }
  .corso-foot{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:auto}
  .corso-foot .price{
    display:inline-flex;align-items:center;gap:9px;
    font-family:'Darker Grotesque',sans-serif;font-weight:700;text-transform:uppercase;
    letter-spacing:.12em;font-size:14px;color:var(--electric);
  }
  .corso-foot .price svg{transition:transform .25s ease}
  .corso-row:hover .corso-foot .price svg{transform:translateX(4px)}
  .corso-foot .durata{
    font-family:'Darker Grotesque',sans-serif;font-weight:500;
    text-transform:uppercase;letter-spacing:.1em;font-size:12px;color:#8A8DA8;
  }
  @media(min-width:961px){
    .corsi-rows{gap:30px}
    .corso-row{grid-template-columns:minmax(0,42%) minmax(0,1fr);align-items:stretch}
    .corso-row .ph{aspect-ratio:auto;height:100%;min-height:340px}
    .corso-body{padding:44px 48px;justify-content:center}
  }

  /* ============ CONVIVIUM ============ */
  .conv{background:var(--navy-block);overflow:hidden}
  .conv-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:64px;align-items:center}
  .conv-visual{position:relative}
  .conv-visual img{width:100%;border-radius:28px;aspect-ratio:4/3.4;object-fit:cover;filter:brightness(.82) contrast(1.05);box-shadow:0 40px 80px rgba(0,0,0,.5)}
  .conv-float{
    position:absolute;bottom:-24px;left:-24px;
    background:var(--glass-bg);
    backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
    border:1px solid var(--glass-brd);box-shadow:var(--glass-shadow);
    border-radius:20px;padding:20px 24px;max-width:260px;
  }
  .conv-float b{display:block;font-family:'Sandro Grottesco',sans-serif;font-size:32px;color:var(--cyan);letter-spacing:-.02em}
  .conv-float span{font-size:14px;color:rgba(255,255,255,.78);line-height:1.4;display:block;margin-top:4px}
  .conv h2{
    font-family:'Sandro Grottesco',sans-serif;text-transform:uppercase;
    font-size:clamp(30px,3.6vw,52px);line-height:.96;letter-spacing:-.02em;margin:18px 0 22px;
  }
  .conv h2 em{font-style:normal;color:var(--cyan)}
  .conv .lead{color:rgba(255,255,255,.78);font-size:21px;line-height:1.55;max-width:44ch;margin-bottom:30px}
  .conv-list{list-style:none;display:flex;flex-direction:column;gap:14px;margin-bottom:36px}
  .conv-list li{display:flex;gap:13px;align-items:flex-start;color:rgba(255,255,255,.88);font-size:18px;line-height:1.5}
  .conv-list svg{flex-shrink:0;margin-top:4px}

  /* ============ MARQUEE ============ */
  .marquee{padding:56px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;white-space:nowrap;background:var(--navy)}
  .marquee-track{display:inline-block;animation:scroll 30s linear infinite}
  .marquee-track span{
    font-family:'Sandro Grottesco',sans-serif;text-transform:uppercase;
    font-size:clamp(38px,6.6vw,84px);line-height:1;letter-spacing:-.02em;
    -webkit-text-stroke:1.4px rgba(255,255,255,.55);color:transparent;padding:0 30px;
  }
  .marquee-track span.fill{-webkit-text-stroke:0;color:var(--cyan)}
  @keyframes scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

  /* ============ GALLERIA (bento) — blocco CHIARO ============ */
  .sec-light{background:#F2F1FA}
  .sec-light .overline{color:var(--electric)}
  .sec-light .overline::before{background:var(--electric)}
  .sec-light .sec-head h2{color:var(--navy-block)}
  .sec-light .sec-head h2 em{color:var(--electric)}
  .sec-light .sec-head p{color:#4B4E6B}
  /* marquee foto full-bleed */
  .gal-marquee{
    position:relative;width:100vw;margin-left:calc(50% - 50vw);
    overflow:hidden;
  }
  .gal-marquee::before,.gal-marquee::after{
    content:"";position:absolute;top:0;bottom:0;width:120px;z-index:2;pointer-events:none;
  }
  .gal-marquee::before{left:0;background:linear-gradient(90deg, #F2F1FA, rgba(242,241,250,0))}
  .gal-marquee::after{right:0;background:linear-gradient(270deg, #F2F1FA, rgba(242,241,250,0))}
  .gal-track{display:flex;gap:18px;width:max-content;animation:gal-scroll 50s linear infinite}
  .gal-marquee:hover .gal-track{animation-play-state:paused}
  /* su touch il marquee diventa trascinabile col dito (vedi site.js):
     scorre da solo, ma lo swipe lo porta avanti alla velocita' del gesto */
  .marquee-touch{
    overflow-x:auto;overflow-y:hidden;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;-ms-overflow-style:none;
    overscroll-behavior-x:contain;
  }
  .marquee-touch::-webkit-scrollbar{display:none}
  .gal-track figure{
    flex:0 0 auto;height:clamp(360px,46vh,520px);border-radius:18px;overflow:hidden;
  }
  .gal-track img{height:100%;width:auto;display:block;filter:contrast(1.03)}
  @keyframes gal-scroll{from{transform:translateX(-50%)}to{transform:translateX(0)}}

  /* ============ CTA BAND ============ */
  .band{text-align:center;padding:20px 0}
  .band h2{font-family:'Sandro Grottesco',sans-serif;text-transform:uppercase;font-size:clamp(32px,4.8vw,68px);line-height:.98;letter-spacing:-.02em}
  .band h2 .stroke{-webkit-text-stroke:1.5px var(--white);color:transparent;display:block}
  .band h2 .fill{color:var(--cyan);display:block}
  .band .btn-solid{margin-top:40px}

  /* ============ FOOTER ============ */
  .footer{background:var(--navy-block);padding:100px 0 34px;border-top:1px solid var(--line)}
  .foot-top{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:48px;padding-bottom:56px;border-bottom:1px solid rgba(255,255,255,.12)}
  .foot-brand img{height:30px;margin-bottom:20px}
  .foot-brand p{color:rgba(255,255,255,.65);font-size:16px;max-width:34ch;margin-bottom:24px}
  .news{
    display:flex;align-items:center;
    background:var(--glass-bg);
    backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
    border:1px solid var(--glass-brd);border-radius:100px;
    padding:6px 6px 6px 20px;max-width:380px;
  }
  .news input{flex:1;background:none;border:0;outline:none;color:#fff;font-size:15px;font-family:inherit;font-weight:500}
  .news input::placeholder{color:rgba(255,255,255,.5)}
  .news button{
    background:var(--cyan);color:var(--navy);border:0;border-radius:100px;cursor:pointer;
    font-family:'Darker Grotesque',sans-serif;font-weight:700;text-transform:uppercase;
    letter-spacing:.12em;font-size:13px;padding:12px 22px;transition:transform .2s ease;
  }
  .news button:hover{transform:scale(1.04)}
  .foot-col h4{font-family:'Darker Grotesque',sans-serif;font-weight:700;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--cyan);margin-bottom:18px}
  .foot-col a{display:block;color:rgba(255,255,255,.72);font-size:16px;margin-bottom:12px;transition:color .2s ease}
  .foot-col a:hover{color:#fff}
  .foot-legal{display:flex;flex-wrap:wrap;gap:10px 26px;padding-top:26px}
  .foot-legal a{color:rgba(255,255,255,.55);font-size:14px;letter-spacing:.04em;transition:color .2s ease}
  .foot-legal a:hover{color:#fff}

  /* footer minimale delle pagine workshop: solo dati e legali, nessun link che porta via dalla pagina */
  .footer--min{padding:56px 0 40px}
  .foot-min{display:flex;flex-direction:column;align-items:center;gap:18px;text-align:center}
  .foot-min img{height:26px;width:auto;opacity:.9}
  .foot-min p{color:rgba(255,255,255,.5);font-size:14px;letter-spacing:.04em;margin:0;max-width:60ch}
  .footer--min .foot-legal{justify-content:center;padding-top:0}
  .foot-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:28px;flex-wrap:wrap;gap:14px}
  .foot-bottom p{color:rgba(255,255,255,.5);font-size:14px;letter-spacing:.04em}
  .foot-social{display:flex;gap:12px}
  .foot-social a{
    width:40px;height:40px;border-radius:50%;display:grid;place-items:center;
    background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);
    transition:background .2s ease,transform .2s ease;
  }
  .foot-social a:hover{background:var(--cyan);transform:translateY(-2px)}
  .foot-social a:hover svg{stroke:var(--navy)}

  /* ============ MENU MOBILE ============ */
  .mobile-menu{
    position:fixed;inset:0;z-index:60;
    background:rgba(5,7,38,.98);
    backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
    display:flex;flex-direction:column;justify-content:center;gap:6px;
    padding:32px;opacity:0;visibility:hidden;
    transition:opacity .3s ease,visibility .3s ease;
  }
  .mobile-menu.open{opacity:1;visibility:visible}
  .mobile-menu a{
    font-family:'Sandro Grottesco',sans-serif;text-transform:uppercase;
    font-size:clamp(26px,7vw,40px);letter-spacing:-.01em;color:#fff;
    padding:13px 0;border-bottom:1px solid rgba(255,255,255,.1);
  }
  .mobile-menu a:last-child{border:0}
  .mobile-menu .mm-cta{color:var(--cyan)}
  body.menu-open{overflow:hidden}

  /* ============ REVEAL ============ */
  .reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s ease}
  .reveal.in{opacity:1;transform:none}

  /* ============ RESPONSIVE ============ */
  @media(max-width:960px){
    .nav-links{display:none}
    .nav-burger{display:block}
    /* su mobile la barra resta logo + menu: la CTA vive dentro il menu */
    .nav-cta{display:none}
    .nav{padding:10px 10px 10px 20px}
    .sec-pad{padding:80px 0}
    .bento{grid-template-columns:1fr}
    .card{min-height:400px}
    /* su mobile: titolo, poi la foto, poi il resto del testo.
       display:contents scioglie il blocco di testo cosi' la foto puo' infilarsi
       tra il titolo e il corpo pur restando una colonna sola su desktop */
    .conv-grid{grid-template-columns:1fr;gap:40px;display:flex;flex-direction:column}
    .conv-grid>*{order:4}
    .conv-grid>.conv-text{display:contents}
    .conv-grid .conv-head{order:1}
    .conv-grid>.conv-visual{order:2}
    .conv-grid .conv-body{order:3}
    .conv-float{left:16px;bottom:-20px}
    .gal-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:190px}
    .foot-top{grid-template-columns:1fr;gap:40px}
    .hero-stats{display:none}
  }
  @media(max-width:560px){
    .wrap{padding:0 22px}
    /* padding-bottom generoso: la riga indirizzo in fondo alla hero e' in
       posizione assoluta, senza spazio finirebbe sotto al bottone */
    .hero{padding:96px 22px 96px}
    .hero-cta{flex-direction:column;align-items:stretch;width:100%}
    .hero-cta .btn{justify-content:center}
    .gal-track figure{height:clamp(230px,42vh,320px);border-radius:14px}
    .gal-track{gap:12px}
  }
  @media(prefers-reduced-motion:reduce){
    *:not(.gal-track):not(.marquee-track){animation:none !important;transition:none !important;scroll-behavior:auto !important}
    .reveal{opacity:1;transform:none}
    /* i marquee decorativi (foto + testo) restano in scorrimento continuo */
    .gal-track{animation:gal-scroll 50s linear infinite !important}
    .marquee-track{animation:scroll 30s linear infinite !important}
  }
  :focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:4px}

/* ============ WHATSAPP FAB (iniettato da site.js, tranne pagine con data-no-wa) ============ */
.wa-fab{
  position:fixed;right:20px;bottom:20px;z-index:70;
  width:56px;height:56px;border-radius:50%;
  background:#25D366;display:flex;align-items:center;justify-content:center;
  box-shadow:0 12px 30px rgba(0,0,0,.35);
  transition:transform .2s ease,box-shadow .2s ease;
}
.wa-fab:hover{transform:scale(1.08);box-shadow:0 16px 40px rgba(37,211,102,.5)}
.wa-fab svg{width:30px;height:30px;display:block}
@media(max-width:560px){ .wa-fab{right:16px;bottom:16px;width:52px;height:52px} .wa-fab svg{width:28px;height:28px} }

/* ============ THANK-YOU / CONFERMA (pagine di servizio) ============ */
.thanks{
  position:relative;overflow:hidden;background:var(--navy);
  min-height:84vh;display:flex;align-items:center;justify-content:center;
  text-align:center;padding:140px 24px 90px;
}
.thanks .thanks-inner{position:relative;z-index:5;max-width:760px}
.thanks .overline{justify-content:center}
.thanks h1{
  font-family:'Sandro Grottesco',sans-serif;text-transform:uppercase;
  font-size:clamp(29px,3.8vw,50px);line-height:1;letter-spacing:-.02em;
  color:#fff;margin:18px 0 0;
}
.thanks h1 em{font-style:normal;color:var(--cyan)}
.thanks p{color:rgba(255,255,255,.82);font-size:21px;line-height:1.6;margin-top:24px}
.thanks p strong{color:#fff;font-weight:700}
.thanks-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:36px}
