/* Erbanno Vertical – foglio di stile
   Colori e font ripresi dal sito originale (tema Astra + Elementor) */

@font-face{font-family:"Poppins";font-weight:400;font-style:normal;font-display:swap;src:url(../fonts/poppins-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Poppins";font-weight:500;font-style:normal;font-display:swap;src:url(../fonts/poppins-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Poppins";font-weight:600;font-style:normal;font-display:swap;src:url(../fonts/poppins-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Poppins";font-weight:700;font-style:normal;font-display:swap;src:url(../fonts/poppins-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Source Sans Pro";font-weight:400;font-style:normal;font-display:swap;src:url(../fonts/source-sans-pro-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Source Sans Pro";font-weight:400;font-style:italic;font-display:swap;src:url(../fonts/source-sans-pro-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:"Source Sans Pro";font-weight:700;font-style:normal;font-display:swap;src:url(../fonts/source-sans-pro-latin-700-normal.woff2) format("woff2")}

:root{
  --rosa:#FF42B3;        /* colore principale */
  --rosa-scuro:#FF0099;  /* hover */
  --scuro:#2B161B;       /* titoli */
  --testo:#554B4E;       /* testo */
  --sfondo:#F6F3F5;      /* sfondo pagine */
  --verde:#15D89E;       /* contatori */
  --bianco:#FFFFFF;
  --nero:#000000;
  --bordo:#E5E5E5;
  --max:1200px;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;overflow-x:clip;background:var(--sfondo);color:var(--testo);font-family:"Source Sans Pro",system-ui,sans-serif;font-size:17px;line-height:1.75;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--rosa)}
a:hover{color:var(--rosa-scuro)}
h1,h2,h3,h4,h5,h6{font-family:"Poppins",sans-serif;color:var(--scuro);font-weight:700;line-height:1.2;margin:0 0 .5em}
h1{font-size:clamp(2.6rem,7vw,5.2rem);letter-spacing:-.02em}
h2{font-size:clamp(2rem,4.5vw,3.4rem);letter-spacing:-.01em}
h3{font-size:clamp(1.3rem,2.4vw,1.75rem)}
h4{font-size:1.35rem}
p{margin:0 0 1em}
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:16px;top:16px;z-index:100;background:#fff;padding:8px 12px}

/* ---------- Bottoni ---------- */
.btn{display:inline-block;background:var(--bianco);color:var(--rosa);font-family:"Poppins",sans-serif;font-weight:700;font-size:13px;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;padding:15px 35px;border:0;transition:background .25s,color .25s}
.btn:hover{background:var(--rosa);color:var(--bianco)}
.btn--rosa{background:var(--rosa);color:var(--bianco)}
.btn--rosa:hover{background:var(--rosa-scuro);color:var(--bianco)}

/* ---------- Header ---------- */
.header{position:absolute;top:0;left:0;right:0;z-index:50;transition:background .3s,box-shadow .3s}
.header.is-fixed{position:fixed;background:rgba(43,22,27,.96);box-shadow:0 2px 12px rgba(0,0,0,.25)}
.header__in{max-width:1366px;margin:0 auto;padding:14px 40px;display:flex;align-items:center;gap:24px}
.header__logo img{width:164px;height:auto}
.nav{margin-left:auto}
.nav ul{list-style:none;margin:0;padding:0;display:flex;gap:6px}
.nav a{display:block;padding:8px 14px;color:var(--bianco);text-decoration:none;font-size:17px}
.nav a:hover,.nav a[aria-current="page"]{color:var(--rosa)}
.header .btn{margin-left:12px;padding:14px 34px}
.burger{display:none;margin-left:auto;background:none;border:0;padding:10px;cursor:pointer}
.burger span{display:block;width:26px;height:2px;background:#fff;margin:6px 0;transition:transform .25s,opacity .25s}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

@media (max-width:1100px){
  .header__in{padding:12px 20px}
  .burger{display:block}
  .header .btn--head{display:none}
  .nav{position:fixed;inset:0 0 0 auto;width:min(320px,85vw);background:var(--scuro);padding:90px 24px 24px;transform:translateX(100%);visibility:hidden;transition:transform .3s,visibility .3s;margin:0}
  .nav.is-open{transform:none;visibility:visible}
  .nav ul{flex-direction:column;gap:0}
  .nav a{padding:14px 6px;border-bottom:1px solid rgba(255,255,255,.12)}
  .nav .btn{margin:24px 0 0;text-align:center}
  .burger{position:relative;z-index:60}
}
@media (min-width:1101px){.nav .btn{display:none}}

/* ---------- Hero ---------- */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;background:var(--scuro) center/cover no-repeat;color:#fff}
.hero::before{content:"";position:absolute;inset:0;background:#2A2A2A;opacity:.5}
.hero__in{position:relative;width:100%;max-width:var(--max);margin:0 auto;padding:140px 24px 100px}
.hero h1,.hero h2,.hero h3,.hero h5{color:#fff}
.hero__kicker{font-size:1.25rem;font-weight:600;margin:0 0 .4em}
.hero__date{font-size:clamp(1.4rem,3vw,2.1rem);margin-top:.2em}

.page-hero{position:relative;min-height:75vh;display:flex;align-items:flex-end;background:var(--scuro) center/cover no-repeat}
.page-hero::before{content:"";position:absolute;inset:0;background:#000;opacity:.3}
.page-hero__in{position:relative;width:100%;max-width:var(--max);margin:0 auto;padding:140px 24px 60px}
.page-hero h1{color:#fff;margin:0}

/* ---------- Sezioni ---------- */
.section{padding:100px 0}
.section--tight{padding:60px 0}
.divider{border:0;border-top:1px solid var(--rosa);margin:0 0 40px}
.lead{font-family:"Poppins",sans-serif;font-weight:700;color:var(--scuro);font-size:1.2rem;line-height:1.6}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
@media (max-width:860px){.two-col{grid-template-columns:1fr;gap:40px}.section{padding:70px 0}}

.prices{font-family:"Poppins",sans-serif;font-weight:700;color:var(--scuro);font-size:1.1rem;line-height:1.7}
.note{font-family:"Poppins",sans-serif;font-weight:600;color:var(--scuro)}

/* Premi */
.prizes{display:grid;grid-template-columns:repeat(5,1fr);gap:24px;margin-top:20px}
.prize h3{font-size:1.45rem;margin-bottom:.6em}
.prize p{margin:0 0 .3em}
@media (max-width:1000px){.prizes{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.prizes{grid-template-columns:1fr}}

/* Contatori */
.counters{display:grid;grid-template-columns:1fr 1fr;gap:40px 20px;text-align:center}
.counter__num{font-family:"Poppins",sans-serif;font-weight:700;font-size:55px;line-height:1.1;color:var(--verde)}
.counter__label{font-size:1.1rem;color:var(--testo);margin-top:6px}

/* Galleria */
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.gallery img{width:100%;aspect-ratio:380/500;object-fit:cover}
@media (max-width:640px){.gallery{grid-template-columns:1fr}}
.photo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.photo-grid img{width:100%;aspect-ratio:3/2;object-fit:cover}
@media (max-width:640px){.photo-grid{grid-template-columns:1fr}}

/* Sponsor: nastro scorrevole in home */
.sponsor-title{font-size:1rem;margin-bottom:20px}
.marquee{overflow:hidden;background:#fff}
.marquee__track{display:flex;width:max-content;animation:scorri 90s linear infinite}
.marquee:hover .marquee__track{animation-play-state:paused}
.marquee img{width:380px;height:auto;flex:none}
@keyframes scorri{to{transform:translateX(-50%)}}
@media (max-width:640px){.marquee img{width:240px}}
@media (prefers-reduced-motion:reduce){.marquee__track{animation:none;flex-wrap:wrap;width:auto}}

/* Sponsor: griglia */
.sponsor-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.sponsor-grid img{width:100%;background:#fff}
@media (max-width:900px){.sponsor-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:600px){.sponsor-grid{grid-template-columns:repeat(2,1fr)}}

/* Testi lunghi (programma, regolamento) */
.prose{max-width:820px}
.prose h3{font-size:1.2rem;text-transform:uppercase;letter-spacing:.03em;margin-top:2em}
.prose h3:first-child{margin-top:0}
.prose ul,.prose ol{padding-left:1.3em;margin:0 0 1em}
.prose li{margin-bottom:.3em}
.prose strong{color:var(--scuro)}
.box{background:#fff;padding:28px 32px;margin:1.5em 0;border-left:4px solid var(--rosa)}
.box p:last-child{margin:0}

/* Mappa a caricamento su richiesta */
.map{position:relative;background:#fff;aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;text-align:center;padding:24px}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.map p{max-width:520px}

/* Dove dormire */
.hotels{display:grid;grid-template-columns:repeat(2,1fr);gap:30px;max-width:900px}
.hotels a{display:block;background:#fff;transition:transform .2s,box-shadow .2s}
.hotels a:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(0,0,0,.1)}
@media (max-width:600px){.hotels{grid-template-columns:1fr}}

/* CTA rosa */
.cta{position:relative;background:var(--rosa) center/cover no-repeat;text-align:center;color:#fff;padding:140px 24px}
.cta::before{content:"";position:absolute;inset:0;background:var(--rosa);opacity:.7}
.cta>*{position:relative}
.cta h2{color:#fff;margin-bottom:40px}

/* Footer */
.footer{background:var(--nero);color:#fff}
.footer__in{max-width:1366px;margin:0 auto;padding:80px 40px 60px;display:grid;grid-template-columns:1fr minmax(260px,300px);gap:40px}
.footer__logo img{width:200px}
.footer h4{color:#fff;font-weight:400;font-size:1.6rem;margin-bottom:.8em}
.footer address{font-style:normal}
.footer address strong{display:block}
.footer a{color:var(--rosa)}
.social{display:flex;gap:16px;margin-top:20px}
.social a{color:#aaa}
.social a:hover{color:#fff}
.social svg{width:18px;height:18px;fill:currentColor}
.footer__bottom{border-top:1px solid #333;color:#aaa;font-size:.95rem}
.footer__bottom .wrap{max-width:1366px;padding:20px 40px}
@media (max-width:700px){.footer__in{grid-template-columns:1fr;padding:60px 20px 40px}.footer__bottom .wrap{padding:20px}}

/* Animazione comparsa */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s,transform .7s}
.reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}
@media (max-width:520px){.counter__num{font-size:40px}.prices{font-size:1rem}}
