@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&family=Rajdhani:wght@600;700&display=swap');
 :root{--red:#D90824;--black:#171717;--gray:#6F7377;--light:#f7f7f7;--white:#fff;--blue:#0757B8;--green:#39A946;--orange:#FF7A1A;--max:1180px;--shadow:0 18px 45px rgba(23,23,23,.12)}*{box-sizing:border-box}body{margin:0;font-family:Montserrat,system-ui,sans-serif;color:var(--black);background:#fff;background-image:radial-gradient(circle at 20% 10%,rgba(217,8,36,.04),transparent 28%)}h1,h2,h3,.kicker,.btn,nav a{font-family:Rajdhani,system-ui,sans-serif;text-transform:uppercase}a{text-decoration:none;color:inherit}.site-header{height:98px;display:flex;align-items:center;gap:28px;padding:0 clamp(24px,6vw,80px);position:sticky;top:0;z-index:10;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-bottom:1px solid #eee}.brand img{width:190px;display:block}.header-sponsor{display:flex;align-items:center;gap:12px;border-left:1px solid #ddd;padding-left:24px}.header-sponsor span{font-size:11px;font-weight:800;color:#777;text-transform:uppercase}.header-sponsor img{height:40px;max-width:220px;object-fit:contain}nav{margin-left:auto;display:flex;align-items:center;gap:28px}nav a{font-weight:800}.nav-btn,.btn.primary{background:var(--red);color:#fff;border-radius:8px;padding:14px 20px}.hero{min-height:620px;background-image:var(--hero);background-size:cover;background-position:center;background-repeat:no-repeat;display:flex;align-items:center;padding:70px clamp(24px,7vw,120px);position:relative;overflow:hidden}.hero:after,.section:before{content:"";position:absolute;left:-5%;right:-5%;bottom:-1px;height:50px;background:linear-gradient(174deg,transparent 48%,var(--red) 49%,var(--red) 52%,#fff 53%)}.hero-copy{max-width:620px}.hero h1{font-size:clamp(56px,7vw,104px);line-height:.9;margin:0 0 24px;white-space:pre-line}.hero h1::first-line{color:var(--black)}.hero p{font-size:18px;line-height:1.6;max-width:520px}.actions{display:flex;gap:20px;margin-top:28px}.btn{display:inline-flex;align-items:center;gap:12px;border:2px solid var(--red);padding:14px 22px;border-radius:8px;font-weight:900}.btn.ghost{color:var(--black);background:#fff}.presented{height:110px;display:flex;justify-content:center;align-items:center;gap:24px;background:#fafafa}.presented span{text-transform:uppercase;font-weight:800;color:#777}.presented img{height:52px;border:1px solid #ddd;border-radius:10px;padding:10px 22px;background:#fff}.section{max-width:var(--max);margin:0 auto;padding:80px 24px;position:relative}.kicker{display:block;color:var(--red);font-weight:900;letter-spacing:.18em;margin-bottom:10px}.identity{display:grid;grid-template-columns:.9fr 1.1fr;gap:80px}.identity h2,.stages h2,.results h2{font-size:clamp(38px,4.8vw,70px);line-height:.92;margin:0}.identity h2::after{content:"";}.identity h2{max-width:460px}.body-copy{font-size:17px;line-height:1.8}.valley-sketch{height:130px;margin-top:24px;background:linear-gradient(135deg,transparent,#eee);border-radius:30px;opacity:.75}.section-head{display:flex;justify-content:space-between;gap:40px;align-items:flex-start}.provided-by{display:flex;align-items:center;gap:12px}.provided-by span{font-size:14px}.provided-by img{height:42px}.jersey-grid,.stage-grid,.ranking-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:28px}.jersey-card{position:relative;overflow:hidden;background:#fff;border:1px solid #e4e4e4;border-radius:16px;box-shadow:var(--shadow);padding:22px;text-align:center}.assos-watermark{position:absolute;right:-26px;top:-10px;width:110px;opacity:.08;filter:blur(1.5px)}.jersey-svg{height:145px}.jersey-card h3{font-size:24px;line-height:.95}.sponsor-slot{min-height:46px;border:1px solid #ddd;border-radius:8px;display:grid;place-items:center;color:#888;text-transform:uppercase;font-weight:800;font-size:12px}.sponsor-slot img{max-height:34px;max-width:165px}.stages h2 em,.results h2 em{font-style:normal;color:var(--red)}.stage-card{min-height:300px;border-radius:14px;box-shadow:var(--shadow);background:linear-gradient(180deg,rgba(23,23,23,.92),rgba(23,23,23,.65)),url('../img/hero-placeholder.svg');background-size:cover;background-position:center;color:#fff;padding:24px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.stage-card:nth-child(even){background:linear-gradient(180deg,rgba(255,255,255,.9),rgba(255,255,255,.65)),url('../img/hero-placeholder.svg');color:var(--black)}.stage-card span{color:var(--red);font-weight:900;text-transform:uppercase}.stage-card h3{font-size:34px;line-height:.9}.stage-card small{background:var(--red);color:#fff;margin:0 -24px -24px;padding:18px;font-weight:900;text-transform:uppercase}.ranking-card{border-radius:14px;overflow:hidden;border:1px solid #e3e3e3;background:#fff;box-shadow:0 10px 25px rgba(0,0,0,.06)}.ranking-card h3{margin:0;padding:16px 18px;background:var(--red);color:#fff;font-size:26px}.ranking-card.u23 h3{background:var(--blue)}.ranking-card.montagna h3{background:var(--green)}.ranking-card.punti h3{background:var(--orange)}.rank-row{display:grid;grid-template-columns:28px 1fr auto;gap:8px;padding:10px 16px;border-bottom:1px solid #eee}.ranking-card a{display:block;color:var(--red);font-weight:900;text-transform:uppercase;font-size:12px;padding:14px 16px}.partner-feature{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:24px 0}.partner-feature>div{border:1px solid #ddd;border-radius:14px;min-height:120px;display:grid;place-items:center;background:#fff;box-shadow:0 8px 20px rgba(0,0,0,.04)}.partner-feature span{text-transform:uppercase;color:var(--red);font-weight:900}.partner-feature img{max-height:56px;max-width:340px}.sponsor-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.sponsor-placeholder{border:1px solid #ddd;border-radius:10px;min-height:76px;display:grid;place-items:center;background:#fff;color:#999;text-transform:uppercase}.sponsor-placeholder small{color:#777;font-weight:800}.results .result-carousel{display:grid;grid-template-columns:60px 1fr 60px;gap:28px;align-items:center;margin-top:30px}.result-carousel>button{width:56px;height:56px;border-radius:50%;border:0;background:#fff;color:var(--red);box-shadow:var(--shadow);font-size:28px}.result-slide{min-height:360px;border-radius:18px;box-shadow:var(--shadow);background:linear-gradient(110deg,#fff 0 38%,var(--red) 38% 100%);display:grid;grid-template-columns:.9fr 1.2fr;overflow:hidden}.result-info{padding:44px}.result-info img{width:180px}.result-info span{color:var(--red);font-weight:900;text-transform:uppercase}.result-info h3{font-size:52px;line-height:.9;margin:10px 0}.result-list{background:linear-gradient(90deg,rgba(217,8,36,.92),rgba(23,23,23,.85)),url('../img/hero-placeholder.svg');background-size:cover;color:#fff;padding:60px 44px;display:grid;gap:8px}.result-list div{display:grid;grid-template-columns:44px 1fr auto;align-items:center;border-bottom:1px solid rgba(255,255,255,.18);padding:10px}.result-list b{font:700 44px Rajdhani}.result-list small{display:block}.result-list a{background:#fff;color:var(--red);border-radius:8px;text-align:center;padding:14px;font-weight:900;text-transform:uppercase;margin-top:12px}.result-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:24px}.result-tabs span{background:#fff;border:1px solid #ddd;border-radius:10px;padding:18px;text-align:center;text-transform:uppercase;font-weight:900}.result-tabs .active{background:var(--red);color:#fff}.site-footer{background:var(--red);color:#fff;padding:50px clamp(24px,6vw,80px);display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:30px;align-items:center}.site-footer img{max-width:200px;max-height:70px;object-fit:contain}.site-footer b{display:block;text-transform:uppercase;margin-bottom:8px}.page-hero{min-height:420px;background:linear-gradient(90deg,#fff,rgba(217,8,36,.32)),var(--hero);background-size:cover;background-position:center;display:grid;align-content:center;padding:80px clamp(24px,7vw,120px)}.page-hero h1{font-size:80px;line-height:.9}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:50px}.info-box,.contact-form{background:#f7f7f7;border-radius:16px;padding:28px}.contact-form{display:grid;gap:14px;max-width:620px}.contact-form input,.contact-form textarea{padding:14px;border:1px solid #ddd;border-radius:8px;font:inherit}.contact-form textarea{min-height:150px}@media(max-width:900px){.site-header{height:auto;flex-wrap:wrap;padding:18px}.header-sponsor{display:none}nav{width:100%;gap:12px;overflow:auto}.hero{min-height:560px}.identity,.partner-feature,.two-col{grid-template-columns:1fr}.jersey-grid,.stage-grid,.ranking-grid,.sponsor-grid,.result-tabs{grid-template-columns:1fr 1fr}.result-slide,.results .result-carousel{grid-template-columns:1fr}.result-carousel>button{display:none}.site-footer{grid-template-columns:1fr}.hero h1{font-size:54px}}@media(max-width:560px){.jersey-grid,.stage-grid,.ranking-grid,.sponsor-grid,.result-tabs{grid-template-columns:1fr}.actions{flex-direction:column}.section{padding:55px 18px}}
.jersey-img{height:145px;max-width:100%;object-fit:contain;display:block;margin:0 auto}
.sponsor-slot a{display:grid;place-items:center;width:100%;height:100%}

.section-title-split{font-size:clamp(34px,4vw,58px);line-height:.92;margin:8px 0 12px}
.section-title-split em{font-style:normal;color:var(--red)}
.jerseys-admin-head{align-items:flex-start}
.provided-by a{display:inline-flex;align-items:center}
.text-red{color:var(--red)}
.text-black{color:var(--black)}
.text-gray{color:var(--gray)}
.header-sponsor a{display:inline-flex;align-items:center}
.presented a{display:inline-flex;align-items:center}
.identity-sketch-img{width:100%;max-width:560px;height:150px;object-fit:contain;object-position:left center;margin-top:24px;opacity:.82}
.asphalt-footer{background:#171717;color:#fff;padding:56px clamp(24px,6vw,80px);display:grid;grid-template-columns:1.3fr 1fr 1.2fr 1.3fr;gap:34px;align-items:center;position:relative;overflow:hidden}
.asphalt-footer:before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle at 10% 20%,rgba(255,255,255,.05),transparent 28%);pointer-events:none}
.asphalt-footer>*{position:relative}
.asphalt-footer img{max-width:210px;max-height:82px;object-fit:contain}
.asphalt-footer b{display:block;text-transform:uppercase;margin-bottom:12px;font-family:Rajdhani,system-ui,sans-serif;letter-spacing:.08em}
.footer-social .social-icons{display:flex;gap:14px}
.footer-social a{width:42px;height:42px;border:1px solid rgba(255,255,255,.26);border-radius:50%;display:grid;place-items:center;color:#fff}
.footer-social svg{width:22px;height:22px;fill:#fff}
.footer-contact span{color:rgba(255,255,255,.82);line-height:1.7}
.footer-sponsor a{display:inline-flex}
.footer-copy{grid-column:1 / -1;color:rgba(255,255,255,.58);border-top:1px solid rgba(255,255,255,.12);padding-top:18px}
/* Hero pulita: nessuna sfumatura, nessun taglio grafico sopra l'immagine caricata */
.hero:after{display:none!important}

.hero-copy{position:relative;z-index:1}


/* Nuova sezione Tappe */
.stages-redesign h2 em{font-style:normal;color:var(--red)}
.stage-carousel-wrap{position:relative;margin-top:26px}
.stage-track{display:grid;grid-template-columns:repeat(4,minmax(210px,1fr));gap:24px;scroll-behavior:smooth}
.stage-card-v2{
  min-height:330px;
  border-radius:12px;
  overflow:hidden;
  box-shadow:var(--shadow);
  background-image:linear-gradient(180deg,rgba(23,23,23,.76),rgba(23,23,23,.62)),var(--stage-img);
  background-size:cover;
  background-position:center;
  color:#fff;
  padding:24px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  transition:transform .2s ease, box-shadow .2s ease;
}
.stage-card-v2:hover{transform:translateY(-4px)}
.stage-card-v2.is-light{
  background-image:linear-gradient(180deg,rgba(255,255,255,.82),rgba(255,255,255,.62)),var(--stage-img);
  color:var(--black);
}
.stage-card-v2 .stage-kicker{font-weight:900;color:var(--red);text-transform:uppercase;font-size:.9rem}
.stage-card-v2 h3{font-size:clamp(2.1rem,3vw,3.6rem);line-height:.88;margin:0;text-transform:uppercase}
.stage-card-v2 .stage-cta{background:var(--red);color:#fff;margin:0 -24px -24px;padding:18px 24px;font-family:Rajdhani;font-weight:900;text-transform:uppercase}
.stage-arrow{display:none;position:absolute;top:45%;z-index:3;width:44px;height:44px;border-radius:50%;border:0;background:#fff;color:var(--red);box-shadow:var(--shadow);font-size:24px}
.stage-prev{left:-14px}.stage-next{right:-14px}

.stage-page-hero{
  min-height:560px;
  background-image:var(--stage-hero);
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  display:flex;
  align-items:center;
  padding:90px clamp(24px,7vw,120px);
  position:relative;
}
.stage-page-hero>div{max-width:720px}
.stage-page-hero h1{font-size:clamp(54px,7vw,108px);line-height:.88;margin:0 0 20px;text-transform:uppercase}
.stage-page-hero p{font-size:18px;line-height:1.6;max-width:620px}
.stage-sponsor-strip{
  background:#fafafa;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:26px;
  overflow:hidden;
  padding:22px clamp(24px,6vw,80px);
}
.stage-sponsor-strip>span{text-transform:uppercase;font-weight:900;color:#777}
.stage-sponsor-track{
  display:flex;
  gap:38px;
  align-items:center;
  will-change:transform;
  transform:translateX(0);
  transition:transform 520ms ease;
}
.stage-sponsor-track img{
  max-height:54px;
  max-width:190px;
  object-fit:contain;
  filter:grayscale(.15);
  display:block;
}
100%{transform:translateX(-35%)}}
.stage-detail-grid{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);
  gap:44px;
  align-items:start;
}
.stage-doc-buttons{display:flex;gap:14px;flex-wrap:wrap;margin:24px 0}
.stage-doc-buttons a{background:var(--red);color:#fff;border-radius:10px;padding:14px 18px;font-family:Rajdhani;font-weight:900;text-transform:uppercase}
.stage-day-box{background:#fff;border:1px solid var(--gnt-border, #e4e4e4);border-radius:18px;box-shadow:var(--shadow);padding:26px}
.stage-day-box h3{color:var(--red)}
.stage-day-box dt{font-weight:900;text-transform:uppercase;color:#777;font-size:.78rem;margin-top:14px}
.stage-day-box dd{margin:4px 0 0;font-weight:800}
.text-white{color:#fff}

@media(max-width:1100px){
  .stage-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:12px}
  .stage-card-v2{min-width:280px;scroll-snap-align:start}
  .stage-arrow{display:block}
}
@media(max-width:800px){
  .stage-detail-grid{grid-template-columns:1fr}
  .stage-sponsor-strip{flex-direction:column;align-items:flex-start}
}
}

.stage-sponsor-strip>span{display:none}

.stage-day-box dd a{color:var(--red);font-weight:900;text-decoration:none}
.stage-day-box dd a:hover{text-decoration:underline}

.stage-sponsor-item{
  flex:0 0 auto;
  min-width:170px;
  min-height:58px;
  display:grid;
  place-items:center;
}
.stage-sponsor-item a{
  display:grid;
  place-items:center;
}
.stage-sponsor-item strong{
  white-space:nowrap;
  font-family:Rajdhani,system-ui,sans-serif;
  font-weight:900;
  text-transform:uppercase;
}

@media(min-width:901px){
  .stage-day-box{
    position:sticky;
    top:120px;
  }
}


.race-route-section{padding-top:40px}
.race-route-section h2{text-transform:uppercase;text-decoration:underline;text-decoration-color:var(--red);text-decoration-thickness:8px;text-underline-offset:-2px}
.race-route-tabs{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin:28px 0 30px}
.race-route-tabs button{
  border:0;
  background:#050505;
  color:#fff;
  font-family:Rajdhani,system-ui,sans-serif;
  font-weight:900;
  text-transform:uppercase;
  padding:16px 20px;
  cursor:pointer;
}
.race-route-tabs button.active{background:var(--red);color:#fff}
.race-route-panel{display:none}
.race-route-panel.active{display:block}
.route-profile-img{display:block;width:100%;max-width:1100px;margin:0 auto;border-radius:8px;box-shadow:var(--shadow)}
.route-map-embed{width:100%;height:620px;background:#f2f2f2;border-radius:8px;overflow:hidden}
.route-map-embed iframe{width:100%;height:100%;border:0}
.route-empty{background:#f3f3f3;border-radius:14px;padding:55px 22px;text-align:center;font-weight:800;color:#777}
.route-table-wrap{overflow-x:auto;background:#fff;border-radius:8px;box-shadow:var(--shadow)}
.route-schedule-table{width:100%;border-collapse:collapse;min-width:850px;font-size:14px}
.route-schedule-table th{background:#fff;text-transform:uppercase;font-weight:900;padding:16px 12px;text-align:left}
.route-schedule-table td{padding:15px 12px;border-top:1px solid #eee}
.route-schedule-table tbody tr:nth-child(even){background:#f4f4f4}
.route-schedule-table tbody tr.highlight{background:#d9ebff}
.gpm-carousel{position:relative;background:#f3f3f3;border-radius:10px;min-height:270px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.gpm-slides{width:100%;max-width:760px;text-align:center}
.gpm-slide{display:none;padding:46px 60px}
.gpm-slide.active{display:block}
.gpm-slide h3{text-transform:uppercase;font-size:clamp(28px,4vw,46px);margin:0 0 12px}
.gpm-slide p{font-size:22px;margin:8px 0}
.gpm-slide strong{font-size:28px}
.gpm-km{font-weight:500}
.gpm-arrow{position:absolute;top:50%;transform:translateY(-50%);width:54px;height:54px;border-radius:50%;border:0;background:#bbb;color:#fff;font-size:42px;cursor:pointer;display:grid;place-items:center}
.gpm-prev{left:18px}.gpm-next{right:18px}
@media(max-width:760px){
  .race-route-tabs{justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;padding-bottom:8px}
  .race-route-tabs button{white-space:nowrap}
  .route-map-embed{height:420px}
}


.day-program-section{
  background:#fff;
  padding-top:42px;
}
.day-program-section h2{
  font-size:clamp(40px,5vw,72px);
  text-align:center;
  text-transform:uppercase;
  color:var(--red);
  margin:0 0 34px;
  letter-spacing:.03em;
}
.day-program-list{
  max-width:1120px;
  margin:0 auto;
  border-top:1px solid #171717;
}
.day-program-item{
  display:grid;
  grid-template-columns:320px 1fr;
  gap:44px;
  padding:34px 18px;
  border-bottom:1px solid #171717;
  align-items:start;
}
.day-program-time{
  font-size:clamp(36px,4vw,54px);
  line-height:1;
  font-family:Rajdhani,system-ui,sans-serif;
  font-weight:900;
  color:var(--red);
  white-space:nowrap;
}
.day-program-content h3{
  font-size:clamp(26px,3vw,42px);
  line-height:1.05;
  text-transform:uppercase;
  margin:0 0 18px;
  color:#171717;
}
.day-program-text{
  color:#6F7377;
  font-size:18px;
  line-height:1.55;
}
.day-program-text p{margin:0 0 12px}
.day-program-text ul{margin:10px 0 0 20px}
.day-program-media{
  display:block;
  max-width:360px;
  max-height:140px;
  object-fit:contain;
  margin-top:20px;
}
.program-muted{color:#6F7377}
@media(max-width:820px){
  .day-program-item{
    grid-template-columns:1fr;
    gap:18px;
  }
  .day-program-time{
    white-space:normal;
  }
}


.sponsor-pyramid h2 em{font-style:normal;color:var(--red)}
.sponsor-pyramid-grid{
  display:grid;
  gap:28px;
  margin-top:34px;
}
.sponsor-tier{
  background:#fff;
  border:1px solid rgba(23,23,23,.08);
  border-radius:18px;
  padding:26px;
  box-shadow:0 14px 35px rgba(0,0,0,.05);
}
.sponsor-tier h3{
  margin:0 0 18px;
  font-family:Rajdhani,system-ui,sans-serif;
  font-size:clamp(22px,3vw,36px);
  line-height:1;
  text-transform:uppercase;
  color:#171717;
  text-align:center;
}
.sponsor-tier-title{
  border:2px solid var(--red);
}
.sponsor-tier-title h3{
  color:var(--red);
  font-size:clamp(30px,4vw,54px);
}
.sponsor-tier-main .sponsor-logo-row{
  grid-template-columns:repeat(3,minmax(160px,1fr));
}
.sponsor-tier-gold .sponsor-logo-row{
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
}
.sponsor-tier-silver .sponsor-logo-row,
.sponsor-tier-bronze .sponsor-logo-row,
.sponsor-tier-event_partner .sponsor-logo-row{
  grid-template-columns:repeat(auto-fit,minmax(125px,1fr));
}
.sponsor-logo-row{
  display:grid;
  gap:18px;
  align-items:center;
  justify-content:center;
}
.sponsor-logo-card{
  background:#fafafa;
  min-height:96px;
  display:grid;
  place-items:center;
  border-radius:14px;
  padding:18px;
}
.sponsor-tier-title .sponsor-logo-card{
  min-height:150px;
}
.sponsor-tier-main .sponsor-logo-card{
  min-height:126px;
}
.sponsor-logo-card a{
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
}
.sponsor-logo-card img{
  max-width:100%;
  max-height:90px;
  object-fit:contain;
}
.sponsor-tier-title .sponsor-logo-card img{
  max-height:118px;
}
.sponsor-tier-main .sponsor-logo-card img{
  max-height:100px;
}
.sponsor-logo-card strong{
  font-family:Rajdhani,system-ui,sans-serif;
  font-weight:900;
  font-size:24px;
  text-transform:uppercase;
  text-align:center;
  color:#171717;
}
@media(max-width:800px){
  .sponsor-tier-main .sponsor-logo-row{
    grid-template-columns:1fr;
  }
}


/* Sponsor section — bottom asphalt pyramid */
.sponsor-bottom{
  background:#171717;
  color:#fff;
  margin-bottom:0;
  padding-top:72px;
  padding-bottom:82px;
}
.sponsor-bottom .kicker{
  color:#D90824;
}
.sponsor-bottom h2{
  color:#fff;
  max-width:980px;
}
.sponsor-bottom h2 em{
  font-style:normal;
  color:#D90824;
}
.sponsor-bottom .sponsor-pyramid-grid{
  display:grid;
  gap:34px;
  margin-top:42px;
}
.sponsor-bottom .sponsor-tier{
  background:transparent;
  border:0;
  box-shadow:none;
  border-radius:0;
  padding:0;
}
.sponsor-bottom .sponsor-tier h3{
  color:#fff;
  text-align:center;
  font-family:Rajdhani,system-ui,sans-serif;
  text-transform:uppercase;
  letter-spacing:.08em;
  margin:0 0 16px;
  font-size:clamp(20px,2.4vw,34px);
}
.sponsor-bottom .sponsor-logo-row{
  display:grid;
  gap:18px;
  align-items:center;
  justify-content:center;
}
.sponsor-bottom .sponsor-tier-title .sponsor-logo-row{
  grid-template-columns:minmax(260px,520px);
}
.sponsor-bottom .sponsor-tier-main .sponsor-logo-row{
  grid-template-columns:repeat(4,minmax(160px,1fr));
}
.sponsor-bottom .sponsor-tier-gold .sponsor-logo-row{
  grid-template-columns:repeat(auto-fit,minmax(155px,1fr));
}
.sponsor-bottom .sponsor-tier-silver .sponsor-logo-row{
  grid-template-columns:repeat(auto-fit,minmax(135px,1fr));
}
.sponsor-bottom .sponsor-tier-bronze .sponsor-logo-row,
.sponsor-bottom .sponsor-tier-event_partner .sponsor-logo-row{
  grid-template-columns:repeat(auto-fit,minmax(120px,1fr));
}
.sponsor-bottom .sponsor-logo-card{
  background:#fff;
  border-radius:18px;
  min-height:100px;
  display:grid;
  place-items:center;
  padding:20px;
  box-shadow:0 16px 36px rgba(0,0,0,.20);
}
.sponsor-bottom .sponsor-tier-title .sponsor-logo-card{
  min-height:160px;
  padding:30px;
}
.sponsor-bottom .sponsor-tier-main .sponsor-logo-card{
  min-height:130px;
}
.sponsor-bottom .sponsor-tier-gold .sponsor-logo-card{
  min-height:112px;
}
.sponsor-bottom .sponsor-tier-silver .sponsor-logo-card{
  min-height:100px;
}
.sponsor-bottom .sponsor-tier-bronze .sponsor-logo-card,
.sponsor-bottom .sponsor-tier-event_partner .sponsor-logo-card{
  min-height:88px;
}
.sponsor-bottom .sponsor-logo-card a{
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
}
.sponsor-bottom .sponsor-logo-card img{
  max-width:100%;
  max-height:76px;
  object-fit:contain;
}
.sponsor-bottom .sponsor-tier-title .sponsor-logo-card img{
  max-height:125px;
}
.sponsor-bottom .sponsor-tier-main .sponsor-logo-card img{
  max-height:92px;
}
.sponsor-bottom .sponsor-tier-bronze .sponsor-logo-card img,
.sponsor-bottom .sponsor-tier-event_partner .sponsor-logo-card img{
  max-height:58px;
}
.sponsor-bottom .sponsor-logo-card strong{
  color:#171717;
  font-family:Rajdhani,system-ui,sans-serif;
  font-weight:900;
  text-transform:uppercase;
  text-align:center;
  font-size:24px;
}
.site-footer{
  margin-top:0;
}
@media(max-width:1050px){
  .sponsor-bottom .sponsor-tier-main .sponsor-logo-row{
    grid-template-columns:repeat(2,minmax(160px,1fr));
  }
}
@media(max-width:640px){
  .sponsor-bottom{
    padding-top:54px;
    padding-bottom:58px;
  }
  .sponsor-bottom .sponsor-tier-title .sponsor-logo-row,
  .sponsor-bottom .sponsor-tier-main .sponsor-logo-row,
  .sponsor-bottom .sponsor-tier-gold .sponsor-logo-row,
  .sponsor-bottom .sponsor-tier-silver .sponsor-logo-row,
  .sponsor-bottom .sponsor-tier-bronze .sponsor-logo-row,
  .sponsor-bottom .sponsor-tier-event_partner .sponsor-logo-row{
    grid-template-columns:1fr;
  }
}


/* Sponsor pyramid row limits — final override */
.sponsor-bottom .sponsor-tier-title .sponsor-logo-row{
  grid-template-columns:minmax(280px,560px) !important;
  justify-content:center;
}

.sponsor-bottom .sponsor-tier-main .sponsor-logo-row{
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
}

.sponsor-bottom .sponsor-tier-gold .sponsor-logo-row{
  grid-template-columns:repeat(6,minmax(0,1fr)) !important;
}

.sponsor-bottom .sponsor-tier-silver .sponsor-logo-row{
  grid-template-columns:repeat(6,minmax(0,1fr)) !important;
}

.sponsor-bottom .sponsor-tier-bronze .sponsor-logo-row{
  grid-template-columns:repeat(8,minmax(0,1fr)) !important;
}

.sponsor-bottom .sponsor-tier-event_partner .sponsor-logo-row{
  grid-template-columns:repeat(10,minmax(0,1fr)) !important;
}

.sponsor-bottom .sponsor-tier-gold .sponsor-logo-card,
.sponsor-bottom .sponsor-tier-silver .sponsor-logo-card{
  min-height:96px;
  padding:16px;
}

.sponsor-bottom .sponsor-tier-bronze .sponsor-logo-card{
  min-height:82px;
  padding:13px;
}

.sponsor-bottom .sponsor-tier-event_partner .sponsor-logo-card{
  min-height:76px;
  padding:11px;
}

.sponsor-bottom .sponsor-tier-gold .sponsor-logo-card img,
.sponsor-bottom .sponsor-tier-silver .sponsor-logo-card img{
  max-height:62px;
}

.sponsor-bottom .sponsor-tier-bronze .sponsor-logo-card img{
  max-height:52px;
}

.sponsor-bottom .sponsor-tier-event_partner .sponsor-logo-card img{
  max-height:46px;
}

@media(max-width:1200px){
  .sponsor-bottom .sponsor-tier-bronze .sponsor-logo-row{
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  }
  .sponsor-bottom .sponsor-tier-event_partner .sponsor-logo-row{
    grid-template-columns:repeat(5,minmax(0,1fr)) !important;
  }
}

@media(max-width:980px){
  .sponsor-bottom .sponsor-tier-main .sponsor-logo-row,
  .sponsor-bottom .sponsor-tier-gold .sponsor-logo-row,
  .sponsor-bottom .sponsor-tier-silver .sponsor-logo-row{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
  .sponsor-bottom .sponsor-tier-bronze .sponsor-logo-row,
  .sponsor-bottom .sponsor-tier-event_partner .sponsor-logo-row{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}

@media(max-width:560px){
  .sponsor-bottom .sponsor-tier-title .sponsor-logo-row,
  .sponsor-bottom .sponsor-tier-main .sponsor-logo-row,
  .sponsor-bottom .sponsor-tier-gold .sponsor-logo-row,
  .sponsor-bottom .sponsor-tier-silver .sponsor-logo-row,
  .sponsor-bottom .sponsor-tier-bronze .sponsor-logo-row,
  .sponsor-bottom .sponsor-tier-event_partner .sponsor-logo-row{
    grid-template-columns:1fr !important;
  }
}

.sponsor-bottom h2 .text-white{color:#fff}
.sponsor-bottom h2 .text-black{color:#fff}

/* Rankings redesign */
.rankings-redesign{
  position:relative;
  overflow:hidden;
  background:#fff;
}
.rankings-redesign:before{
  content:"";
  position:absolute;
  left:-5%;
  right:-5%;
  top:0;
  height:46px;
  border-top:8px solid #D90824;
  border-radius:50%;
  opacity:.95;
}
.rankings-redesign:after{
  content:"";
  position:absolute;
  left:-5%;
  right:-5%;
  bottom:-34px;
  height:96px;
  background:#D90824;
  border-radius:50% 50% 0 0;
  z-index:0;
}
.rankings-redesign>*{
  position:relative;
  z-index:1;
}
.rankings-redesign h2 em{
  font-style:normal;
  color:#D90824;
}
.ranking-mode-tabs{
  display:flex;
  justify-content:center;
  gap:12px;
  margin:28px 0 28px;
  flex-wrap:wrap;
}
.ranking-mode-tabs button{
  border:1px solid rgba(23,23,23,.12);
  background:#fff;
  color:#171717;
  border-radius:12px;
  padding:14px 20px;
  font-family:Rajdhani,system-ui,sans-serif;
  font-weight:900;
  text-transform:uppercase;
  cursor:pointer;
}
.ranking-mode-tabs button.active{
  background:#D90824;
  border-color:#D90824;
  color:#fff;
}
.ranking-mode-panel{
  display:none;
}
.ranking-mode-panel.active{
  display:block;
}
.ranking-stage-carousel{
  display:grid;
  grid-template-columns:70px minmax(0,1fr) 70px;
  gap:20px;
  align-items:center;
  max-width:1250px;
  margin:0 auto;
}
.ranking-stage-slides{
  min-height:430px;
  position:relative;
}
.ranking-stage-slide{
  display:none;
  grid-template-columns:.72fr 1.05fr;
  overflow:hidden;
  border-radius:22px;
  background:#fff;
  box-shadow:0 18px 46px rgba(0,0,0,.16);
  min-height:420px;
}
.ranking-stage-slide.active{
  display:grid;
}
.ranking-arrow{
  width:54px;
  height:54px;
  border-radius:50%;
  border:0;
  background:#fff;
  color:#D90824;
  font-size:30px;
  box-shadow:0 10px 24px rgba(0,0,0,.18);
  cursor:pointer;
}
.ranking-stage-slide .result-info{
  padding:44px 42px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
  min-height:100%;
}
.ranking-stage-slide .result-info img{
  width:150px;
  max-height:95px;
  object-fit:contain;
  margin-bottom:30px;
}
.ranking-stage-slide .result-info span{
  color:#D90824;
  font-family:Rajdhani,system-ui,sans-serif;
  font-weight:900;
  text-transform:uppercase;
  font-size:22px;
}
.ranking-stage-slide .result-info h3{
  margin:8px 0 12px;
  font-size:clamp(44px,5vw,78px);
  line-height:.86;
  text-transform:uppercase;
}
.ranking-stage-slide .result-info small{
  color:#6F7377;
  font-weight:800;
}
.ranking-card-visual{
  position:relative;
  background-image:linear-gradient(0deg,rgba(217,8,36,.72),rgba(217,8,36,.42)),var(--ranking-img);
  background-size:cover;
  background-position:center;
  min-height:420px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:42px;
}
.ranking-card-visual:before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(135deg,rgba(217,8,36,.9),rgba(217,8,36,.12) 56%,rgba(23,23,23,.25));
  clip-path:polygon(0 100%,42% 0,100% 0,100% 100%);
}
.ranking-card-visual .result-list{
  position:relative;
  z-index:2;
  width:min(470px,100%);
  margin-left:auto;
}
.ranking-red-arrow{
  position:absolute;
  left:-58px;
  top:-35px;
  width:360px;
  height:360px;
  background:#D90824;
  clip-path:polygon(45% 0,100% 45%,75% 47%,75% 100%,45% 100%,45% 47%,20% 47%);
  transform:rotate(37deg);
  opacity:.95;
}
.result-list div{
  display:grid;
  grid-template-columns:64px 1fr auto;
  align-items:center;
  color:#fff;
  background:rgba(125,0,0,.72);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.result-list div b{
  font-family:Rajdhani,system-ui,sans-serif;
  font-size:48px;
  text-align:center;
  padding:8px 0;
}
.result-list div span{
  font-family:Rajdhani,system-ui,sans-serif;
  font-size:28px;
  font-weight:900;
  line-height:1;
  text-transform:uppercase;
}
.result-list div span small{
  display:block;
  font-family:Montserrat,system-ui,sans-serif;
  font-size:13px;
  font-weight:600;
  text-transform:none;
  margin-top:4px;
}
.result-list div strong{
  padding-right:18px;
  font-size:18px;
}
.result-list>a{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:16px;
  margin:18px auto 0;
  background:#fff;
  color:#D90824;
  min-height:48px;
  border-radius:10px;
  font-family:Rajdhani,system-ui,sans-serif;
  font-size:20px;
  font-weight:900;
  text-transform:uppercase;
}
.ranking-empty{
  background:rgba(255,255,255,.9);
  color:#171717;
  padding:24px;
  border-radius:12px;
  font-weight:800;
}
.ranking-stage-tabs{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:14px;
  max-width:960px;
  margin:30px auto 0;
}
.ranking-stage-tabs button{
  border:1px solid rgba(23,23,23,.16);
  background:#fff;
  border-radius:13px;
  padding:18px;
  cursor:pointer;
  text-align:left;
}
.ranking-stage-tabs button.active{
  background:#D90824;
  color:#fff;
  border-color:#D90824;
}
.ranking-stage-tabs button span{
  display:block;
  font-family:Rajdhani,system-ui,sans-serif;
  color:#D90824;
  text-transform:uppercase;
  font-weight:900;
}
.ranking-stage-tabs button.active span{
  color:#fff;
}
.ranking-stage-tabs button strong{
  display:block;
  font-family:Rajdhani,system-ui,sans-serif;
  font-size:24px;
  line-height:1;
  text-transform:uppercase;
}
.general-ranking-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:22px;
  max-width:1120px;
  margin:0 auto;
}
.general-ranking-card{
  background:#fff;
  border-radius:20px;
  box-shadow:0 14px 38px rgba(0,0,0,.13);
  padding:26px;
  overflow:hidden;
}
.general-ranking-card h3{
  margin:0 0 18px;
  color:#D90824;
  font-family:Rajdhani,system-ui,sans-serif;
  text-transform:uppercase;
  font-size:36px;
}
.general-list div{
  background:#171717;
}
@media(max-width:960px){
  .ranking-stage-carousel{
    grid-template-columns:1fr;
  }
  .ranking-arrow{
    display:none;
  }
  .ranking-stage-slide.active{
    display:grid;
    grid-template-columns:1fr;
  }
  .general-ranking-grid{
    grid-template-columns:1fr;
  }
}
@media(max-width:620px){
  .ranking-stage-slide .result-info,
  .ranking-card-visual{
    padding:26px;
  }
  .result-list div{
    grid-template-columns:48px 1fr;
  }
  .result-list div strong{
    grid-column:2;
    padding:0 0 12px;
  }
}


.classification-page{background:#fff}
.classification-page h1{font-size:clamp(44px,6vw,86px);line-height:.9;text-transform:uppercase;margin:10px 0 14px}
.classification-page h2{font-size:clamp(30px,4vw,56px);text-transform:uppercase;margin:30px 0 20px}
.classification-table-wrap{overflow-x:auto;background:#fff;border-radius:16px;box-shadow:0 14px 38px rgba(0,0,0,.12)}
.classification-table{width:100%;border-collapse:collapse;min-width:920px}
.classification-table th{background:#171717;color:#fff;text-transform:uppercase;text-align:left;padding:15px 14px;font-family:Rajdhani,system-ui,sans-serif;font-size:18px}
.classification-table td{padding:14px;border-top:1px solid #eee;font-weight:700}
.classification-table tbody tr:nth-child(even){background:#f4f4f4}
.classification-table td:first-child{color:#D90824;font-family:Rajdhani,system-ui,sans-serif;font-size:24px;font-weight:900}
.classification-type-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:26px 0}
.classification-type-tabs a{background:#171717;color:#fff;border-radius:10px;padding:12px 16px;font-family:Rajdhani,system-ui,sans-serif;text-transform:uppercase;font-weight:900}
.classification-type-tabs a.active{background:#D90824}


/* Classifiche fix: general carousel same look as stage + colors */
.rankings-redesign .general-home-intro{
  max-width:920px;
  margin:0 auto 24px;
  text-align:center;
}
.rankings-redesign .general-home-intro h3{
  font-size:clamp(34px,4vw,58px);
  line-height:.9;
  text-transform:uppercase;
  margin:0 0 10px;
}
.ranking-general-carousel{
  display:grid;
  grid-template-columns:70px minmax(0,1fr) 70px;
  gap:20px;
  align-items:center;
  max-width:1250px;
  margin:0 auto;
}
.ranking-general-slides{
  min-height:430px;
  position:relative;
}
.ranking-general-slide{
  display:none;
  grid-template-columns:.72fr 1.05fr;
  overflow:hidden;
  border-radius:22px;
  background:#fff;
  box-shadow:0 18px 46px rgba(0,0,0,.16);
  min-height:420px;
}
.ranking-general-slide.active{
  display:grid;
}
.ranking-general-slide .result-info{
  padding:44px 42px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
}
.ranking-general-slide .result-info img{
  width:150px;
  max-height:95px;
  object-fit:contain;
  margin-bottom:30px;
}
.ranking-general-slide .result-info span{
  color:var(--ranking-color);
  font-family:Rajdhani,system-ui,sans-serif;
  font-weight:900;
  text-transform:uppercase;
  font-size:22px;
}
.ranking-general-slide .result-info h3{
  margin:8px 0 12px;
  font-size:clamp(44px,5vw,78px);
  line-height:.86;
  text-transform:uppercase;
}
.ranking-card-visual{
  --ranking-color:#D90824;
}
.ranking-card-visual.no-photo{
  background:
    radial-gradient(circle at 80% 15%, color-mix(in srgb, var(--ranking-color) 30%, transparent), transparent 42%),
    linear-gradient(135deg, color-mix(in srgb, var(--ranking-color) 92%, #111), color-mix(in srgb, var(--ranking-color) 55%, #171717));
}
.ranking-card-visual,
.ranking-card-visual:before{
  --local-color:var(--ranking-color);
}
.ranking-card-visual:before{
  background:linear-gradient(135deg,color-mix(in srgb, var(--ranking-color) 90%, #000),rgba(255,255,255,.06) 56%,rgba(23,23,23,.25));
}
.ranking-red-arrow{
  background:var(--ranking-color);
}
.result-list div{
  background:color-mix(in srgb, var(--ranking-color) 70%, #171717);
}
.result-list>a{
  color:var(--ranking-color);
}
.ranking-general-tabs{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:14px;
  max-width:960px;
  margin:30px auto 0;
}
.ranking-general-tabs button{
  border:1px solid rgba(23,23,23,.16);
  background:#fff;
  border-radius:13px;
  padding:18px;
  cursor:pointer;
  text-align:center;
}
.ranking-general-tabs button.active{
  background:var(--ranking-color);
  color:#fff;
  border-color:var(--ranking-color);
}
.ranking-general-tabs button span{
  display:block;
  font-family:Rajdhani,system-ui,sans-serif;
  color:var(--ranking-color);
  text-transform:uppercase;
  font-weight:900;
  font-size:22px;
}
.ranking-general-tabs button.active span{
  color:#fff;
}
@media(max-width:960px){
  .ranking-general-carousel{
    grid-template-columns:1fr;
  }
  .general-prev,.general-next{
    display:none;
  }
  .ranking-general-slide.active{
    display:grid;
    grid-template-columns:1fr;
  }
}

.general-ranking-grid{display:none!important}


/* Force general rankings to use slide format, not old card grid */
.general-ranking-grid,
.general-ranking-card{
  display:none!important;
}

.ranking-general-carousel{
  display:grid!important;
  grid-template-columns:70px minmax(0,1fr) 70px;
  gap:20px;
  align-items:center;
  max-width:1250px;
  margin:0 auto;
}
.ranking-general-slides{
  min-height:430px;
  position:relative;
}
.ranking-general-slide{
  display:none!important;
  grid-template-columns:.72fr 1.05fr;
  overflow:hidden;
  border-radius:22px;
  background:#fff;
  box-shadow:0 18px 46px rgba(0,0,0,.16);
  min-height:420px;
}
.ranking-general-slide.active{
  display:grid!important;
}
.ranking-general-slide .result-info{
  padding:44px 42px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
}
.ranking-general-slide .result-info img{
  width:150px;
  max-height:95px;
  object-fit:contain;
  margin-bottom:30px;
}
.ranking-general-slide .result-info span{
  color:var(--ranking-color);
  font-family:Rajdhani,system-ui,sans-serif;
  font-weight:900;
  text-transform:uppercase;
  font-size:22px;
}
.ranking-general-slide .result-info h3{
  margin:8px 0 12px;
  font-size:clamp(44px,5vw,78px);
  line-height:.86;
  text-transform:uppercase;
}
.ranking-general-slide .ranking-card-visual.no-photo{
  --ranking-color:#D90824;
  background:
    radial-gradient(circle at 80% 15%, color-mix(in srgb, var(--ranking-color) 34%, transparent), transparent 42%),
    linear-gradient(135deg, color-mix(in srgb, var(--ranking-color) 92%, #111), color-mix(in srgb, var(--ranking-color) 52%, #171717));
}
.ranking-general-slide .ranking-red-arrow,
.ranking-stage-slide .ranking-red-arrow{
  background:var(--ranking-color);
}
.ranking-general-slide .ranking-card-visual:before,
.ranking-stage-slide .ranking-card-visual:before{
  background:linear-gradient(135deg,color-mix(in srgb, var(--ranking-color) 90%, #000),rgba(255,255,255,.06) 56%,rgba(23,23,23,.25));
}
.ranking-general-slide .result-list div,
.ranking-stage-slide .result-list div{
  background:color-mix(in srgb, var(--ranking-color) 72%, #171717);
}
.ranking-general-slide .result-list>a,
.ranking-stage-slide .result-list>a{
  color:var(--ranking-color);
}
@media(max-width:960px){
  .ranking-general-carousel{
    grid-template-columns:1fr;
  }
  .general-prev,.general-next{
    display:none;
  }
  .ranking-general-slide.active{
    display:grid!important;
    grid-template-columns:1fr;
  }
}


/* Residui rimossi: sicurezza anti vecchie sezioni */
.general-ranking-grid,
.general-ranking-card,
.partners-grid,
.sponsor-grid,
.old-partners,
.legacy-sponsors{
  display:none!important;
}

.general-home-intro{display:none!important}


/* FIX classifiche: evita slide schiacciate/tagliate */
.rankings-redesign{
  width:100%;
  overflow:hidden;
}

.rankings-redesign .ranking-stage-carousel,
.rankings-redesign .ranking-general-carousel{
  width:100%;
  max-width:1250px;
  margin-left:auto;
  margin-right:auto;
  display:grid!important;
  grid-template-columns:70px minmax(0,1fr) 70px!important;
  gap:20px;
  align-items:center;
}

.rankings-redesign .ranking-stage-slides,
.rankings-redesign .ranking-general-slides{
  width:100%;
  min-width:0;
  min-height:430px;
  position:relative;
}

.rankings-redesign .ranking-stage-slide,
.rankings-redesign .ranking-general-slide{
  width:100%;
  min-width:0;
  max-width:100%;
  display:none!important;
  grid-template-columns:minmax(300px,.72fr) minmax(0,1.05fr)!important;
  overflow:hidden;
  border-radius:22px;
}

.rankings-redesign .ranking-stage-slide.active,
.rankings-redesign .ranking-general-slide.active{
  display:grid!important;
}

.rankings-redesign .result-info{
  min-width:0;
  width:100%;
}

.rankings-redesign .ranking-card-visual{
  min-width:0;
  width:100%;
}

.rankings-redesign .result-list{
  width:min(470px,100%);
  max-width:100%;
}

.rankings-redesign .ranking-stage-tabs,
.rankings-redesign .ranking-general-tabs{
  width:100%;
  max-width:960px;
  margin-left:auto;
  margin-right:auto;
}

@media(max-width:960px){
  .rankings-redesign .ranking-stage-carousel,
  .rankings-redesign .ranking-general-carousel{
    grid-template-columns:1fr!important;
  }

  .rankings-redesign .ranking-stage-slide.active,
  .rankings-redesign .ranking-general-slide.active{
    grid-template-columns:1fr!important;
  }

  .rankings-redesign .ranking-arrow{
    display:none!important;
  }
}


/* FIX 8 — layout orizzontale schede classifiche home */
.rankings-redesign .ranking-stage-slide,
.rankings-redesign .ranking-general-slide{
  width:100%;
  display:none!important;
  align-items:stretch;
  grid-template-columns:minmax(360px,0.95fr) minmax(500px,1.25fr)!important;
  grid-auto-rows:minmax(0,auto);
  min-height:460px;
  border-radius:26px;
  overflow:hidden;
}

.rankings-redesign .ranking-stage-slide.active,
.rankings-redesign .ranking-general-slide.active{
  display:grid!important;
}

.rankings-redesign .ranking-stage-slide .result-info,
.rankings-redesign .ranking-general-slide .result-info{
  min-height:460px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:56px 46px;
  background:#f7f7f7;
}

.rankings-redesign .ranking-stage-slide .ranking-card-visual,
.rankings-redesign .ranking-general-slide .ranking-card-visual{
  min-height:460px;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
}

.rankings-redesign .ranking-stage-slide .result-info img,
.rankings-redesign .ranking-general-slide .result-info img{
  width:150px;
  max-width:48%;
  height:auto;
  object-fit:contain;
  margin-bottom:34px;
}

.rankings-redesign .ranking-stage-slide .result-info span,
.rankings-redesign .ranking-general-slide .result-info span{
  display:block;
  margin-bottom:16px;
}

.rankings-redesign .ranking-stage-slide .result-info h3,
.rankings-redesign .ranking-general-slide .result-info h3{
  margin:0 0 20px;
  line-height:0.95;
}

.rankings-redesign .ranking-stage-slide .result-info small,
.rankings-redesign .ranking-general-slide .result-info small{
  display:block;
  margin-top:8px;
}

.rankings-redesign .ranking-stage-slide .result-list,
.rankings-redesign .ranking-general-slide .result-list{
  width:min(440px,100%);
  max-width:100%;
}

@media (max-width: 1100px){
  .rankings-redesign .ranking-stage-slide,
  .rankings-redesign .ranking-general-slide{
    grid-template-columns:minmax(300px,0.9fr) minmax(380px,1.1fr)!important;
    min-height:420px;
  }

  .rankings-redesign .ranking-stage-slide .result-info,
  .rankings-redesign .ranking-general-slide .result-info,
  .rankings-redesign .ranking-stage-slide .ranking-card-visual,
  .rankings-redesign .ranking-general-slide .ranking-card-visual{
    min-height:420px;
  }
}

@media (max-width: 860px){
  .rankings-redesign .ranking-stage-slide.active,
  .rankings-redesign .ranking-general-slide.active{
    grid-template-columns:1fr!important;
  }

  .rankings-redesign .ranking-stage-slide .result-info,
  .rankings-redesign .ranking-general-slide .result-info,
  .rankings-redesign .ranking-stage-slide .ranking-card-visual,
  .rankings-redesign .ranking-general-slide .ranking-card-visual{
    min-height:auto;
  }
}


/* Header unico responsive */
.unified-site-header{
  position:sticky;
  top:0;
  z-index:1000;
  background:#fff;
  box-shadow:0 10px 28px rgba(0,0,0,.08);
  padding:0!important;
}
.header-social-strip{
  background:#171717;
  color:#fff;
  font-family:Rajdhani,system-ui,sans-serif;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.header-social-inner{
  min-height:34px;
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:14px;
  padding:0 clamp(18px,5vw,72px);
}
.header-social-inner span{
  color:#6F7377;
  font-size:13px;
  font-weight:900;
}
.header-social-links{
  display:flex;
  gap:10px;
}
.header-social-links a{
  width:25px;
  height:25px;
  display:grid;
  place-items:center;
  color:#fff;
  border-radius:50%;
  background:rgba(255,255,255,.09);
}
.header-social-links svg{
  width:15px;
  height:15px;
  fill:currentColor;
}
.header-main-row{
  min-height:78px;
  display:flex;
  align-items:center;
  gap:24px;
  padding:12px clamp(18px,5vw,72px);
}
.unified-site-header .brand{
  display:flex;
  align-items:center;
  flex:0 0 auto;
}
.unified-site-header .brand img{
  max-height:58px;
  max-width:180px;
  object-fit:contain;
}
.header-title-sponsor{
  display:flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
  color:#6F7377;
  flex:0 0 auto;
}
.header-title-sponsor span{
  font-family:Rajdhani,system-ui,sans-serif;
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.header-title-sponsor img{
  max-height:42px;
  max-width:190px;
  object-fit:contain;
}
.site-nav{
  margin-left:auto;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:20px;
  white-space:nowrap;
}
.site-nav a{
  font-family:Rajdhani,system-ui,sans-serif;
  font-weight:900;
  text-transform:uppercase;
  color:#171717;
  text-decoration:none;
  font-size:16px;
}
.site-nav a:hover{
  color:#D90824;
}
.site-nav .nav-signup{
  background:#D90824;
  color:#fff!important;
  border-radius:999px;
  padding:12px 18px;
}
.header-burger{
  display:none;
  margin-left:auto;
  width:44px;
  height:44px;
  border:0;
  border-radius:10px;
  background:#171717;
  cursor:pointer;
  place-items:center;
  padding:10px;
}
.header-burger span{
  display:block;
  width:24px;
  height:2px;
  background:#fff;
  margin:4px 0;
  transition:.18s ease;
}
.header-burger.open span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.header-burger.open span:nth-child(2){opacity:0}
.header-burger.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

.simple-page{
  min-height:55vh;
  padding-top:110px;
}
.simple-page h1{
  font-size:clamp(48px,7vw,96px);
  line-height:.9;
  text-transform:uppercase;
  margin:10px 0 18px;
}

@media(max-width:1160px){
  .header-main-row{
    position:relative;
  }
  .header-burger{
    display:grid;
  }
  .site-nav{
    position:absolute;
    top:calc(100% + 10px);
    right:clamp(18px,5vw,72px);
    display:none;
    flex-direction:column;
    align-items:stretch;
    min-width:280px;
    max-width:calc(100vw - 36px);
    background:#fff;
    border:1px solid rgba(23,23,23,.1);
    border-radius:18px;
    box-shadow:0 20px 55px rgba(0,0,0,.18);
    padding:16px;
    z-index:1001;
  }
  .site-nav.open{
    display:flex;
  }
  .site-nav a{
    padding:12px 14px;
    border-radius:10px;
  }
  .site-nav a:hover{
    background:#f5f5f5;
  }
  .site-nav .nav-signup{
    text-align:center;
    margin-top:6px;
  }
}
@media(max-width:640px){
  .header-social-inner{
    justify-content:center;
  }
  .header-main-row{
    gap:12px;
    min-height:70px;
  }
  .unified-site-header .brand img{
    max-height:48px;
    max-width:145px;
  }
  .header-title-sponsor span{
    display:none;
  }
  .header-title-sponsor img{
    max-height:32px;
    max-width:125px;
  }
}


/* Header layout fix1: loghi a sinistra, social/menu a destra */
.unified-site-header{
  position:sticky;
  top:0;
  z-index:1000;
  background:#fff;
  box-shadow:0 10px 28px rgba(0,0,0,.08);
  padding:0!important;
}
.unified-site-header .header-social-strip,
.unified-site-header .header-main-row{
  display:none!important;
}
.header-shell{
  min-height:96px;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:34px;
  padding:14px clamp(18px,5vw,72px);
}
.header-left-logos{
  display:flex;
  align-items:center;
  gap:22px;
  min-width:0;
}
.unified-site-header .brand{
  display:flex;
  align-items:center;
  flex:0 0 auto;
}
.unified-site-header .brand img{
  max-height:66px;
  max-width:190px;
  object-fit:contain;
}
.header-title-sponsor{
  display:flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
  color:#6F7377;
  flex:0 1 auto;
  min-width:0;
}
.header-title-sponsor span{
  font-family:Rajdhani,system-ui,sans-serif;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.header-title-sponsor img{
  max-height:48px;
  max-width:210px;
  object-fit:contain;
}
.header-right-area{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:12px;
  min-width:0;
}
.header-social-row{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
  font-family:Rajdhani,system-ui,sans-serif;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.header-social-row span{
  font-size:13px;
  font-weight:900;
  color:#6F7377;
}
.header-social-links{
  display:flex;
  gap:9px;
}
.header-social-links a{
  width:27px;
  height:27px;
  display:grid;
  place-items:center;
  color:#171717;
  border-radius:50%;
  background:#f2f2f2;
  transition:.18s ease;
}
.header-social-links a:hover{
  background:#D90824;
  color:#fff;
}
.header-social-links svg{
  width:16px;
  height:16px;
  fill:currentColor;
}
.header-nav-row{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  min-width:0;
  position:relative;
}
.site-nav{
  margin-left:0;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:18px;
  white-space:nowrap;
}
.site-nav a{
  font-family:Rajdhani,system-ui,sans-serif;
  font-weight:900;
  text-transform:uppercase;
  color:#171717;
  text-decoration:none;
  font-size:16px;
}
.site-nav a:hover{
  color:#D90824;
}
.site-nav .nav-signup{
  background:#D90824;
  color:#fff!important;
  border-radius:999px;
  padding:12px 18px;
}
.header-burger{
  display:none;
  width:44px;
  height:44px;
  border:0;
  border-radius:10px;
  background:#171717;
  cursor:pointer;
  place-items:center;
  padding:10px;
}
.header-burger span{
  display:block;
  width:24px;
  height:2px;
  background:#fff;
  margin:4px 0;
  transition:.18s ease;
}
.header-burger.open span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.header-burger.open span:nth-child(2){opacity:0}
.header-burger.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

@media(max-width:1240px){
  .header-burger{
    display:grid;
  }
  .site-nav{
    position:absolute;
    top:calc(100% + 12px);
    right:0;
    display:none;
    flex-direction:column;
    align-items:stretch;
    min-width:300px;
    max-width:calc(100vw - 36px);
    background:#fff;
    border:1px solid rgba(23,23,23,.1);
    border-radius:18px;
    box-shadow:0 20px 55px rgba(0,0,0,.18);
    padding:16px;
    z-index:1001;
  }
  .site-nav.open{
    display:flex;
  }
  .site-nav a{
    padding:12px 14px;
    border-radius:10px;
  }
  .site-nav a:hover{
    background:#f5f5f5;
  }
  .site-nav .nav-signup{
    text-align:center;
    margin-top:6px;
  }
}
@media(max-width:760px){
  .header-shell{
    grid-template-columns:1fr auto;
    gap:14px;
    min-height:82px;
  }
  .header-left-logos{
    gap:12px;
  }
  .unified-site-header .brand img{
    max-height:50px;
    max-width:138px;
  }
  .header-title-sponsor span{
    display:none;
  }
  .header-title-sponsor img{
    max-height:34px;
    max-width:120px;
  }
  .header-social-row{
    display:none;
  }
  .header-right-area{
    justify-content:center;
  }
}
@media(max-width:420px){
  .header-title-sponsor{
    display:none;
  }
}


/* Header fix2 — loghi sinistra, social/menu destra */
.unified-site-header{
  width:100%;
}

.unified-site-header .header-shell{
  width:100%;
  max-width:none;
  box-sizing:border-box;
  display:grid!important;
  grid-template-columns:minmax(260px,auto) minmax(0,1fr)!important;
  align-items:center;
  column-gap:40px;
  padding-left:clamp(28px,5vw,82px);
  padding-right:clamp(28px,5vw,82px);
}

.unified-site-header .header-left-logos{
  justify-self:start;
  display:flex!important;
  align-items:center;
  justify-content:flex-start;
}

.unified-site-header .header-right-area{
  justify-self:end;
  width:auto;
  max-width:100%;
  display:flex!important;
  flex-direction:column;
  align-items:flex-end!important;
  text-align:right;
}

.unified-site-header .header-social-row{
  width:100%;
  justify-content:flex-end!important;
  align-items:center;
}

.unified-site-header .header-nav-row{
  width:100%;
  justify-content:flex-end!important;
  align-items:center;
}

.unified-site-header .site-nav{
  margin-left:0!important;
  margin-right:0!important;
  justify-content:flex-end!important;
  align-items:center;
}

@media(max-width:1240px){
  .unified-site-header .header-right-area{
    align-items:flex-end!important;
  }
  .unified-site-header .site-nav{
    right:0!important;
    left:auto!important;
  }
}

@media(max-width:760px){
  .unified-site-header .header-shell{
    grid-template-columns:minmax(0,1fr) auto!important;
  }
  .unified-site-header .header-left-logos{
    min-width:0;
  }
}


/* Header fix4 — logo più grande e title sponsor accanto */
.unified-site-header .header-shell{
  min-height:112px;
  grid-template-columns:minmax(430px,auto) minmax(0,1fr)!important;
  column-gap:42px;
}

.unified-site-header .header-left-logos{
  gap:28px;
}

.unified-site-header .brand img{
  max-height:84px!important;
  max-width:230px!important;
}

.unified-site-header .header-title-sponsor{
  display:flex!important;
  gap:12px;
  padding-left:22px;
  border-left:1px solid rgba(23,23,23,.14);
}

.unified-site-header .header-title-sponsor span{
  display:block;
  font-size:12px;
  color:#6F7377;
}

.unified-site-header .header-title-sponsor img{
  max-height:60px!important;
  max-width:240px!important;
}

@media(max-width:1240px){
  .unified-site-header .header-shell{
    grid-template-columns:minmax(360px,auto) minmax(0,1fr)!important;
  }
  .unified-site-header .brand img{
    max-height:72px!important;
    max-width:200px!important;
  }
  .unified-site-header .header-title-sponsor img{
    max-height:52px!important;
    max-width:200px!important;
  }
}

@media(max-width:760px){
  .unified-site-header .header-shell{
    grid-template-columns:minmax(0,1fr) auto!important;
    min-height:86px;
  }
  .unified-site-header .brand img{
    max-height:58px!important;
    max-width:150px!important;
  }
  .unified-site-header .header-title-sponsor{
    padding-left:12px;
    gap:8px;
  }
  .unified-site-header .header-title-sponsor span{
    display:none!important;
  }
  .unified-site-header .header-title-sponsor img{
    max-height:38px!important;
    max-width:130px!important;
  }
}

@media(max-width:460px){
  .unified-site-header .header-title-sponsor{
    display:none!important;
  }
}


/* Header fix5 — header identico su tutte le pagine */
.unified-site-header,
.unified-site-header *{
  box-sizing:border-box;
}

.unified-site-header{
  min-height:112px!important;
  background:#fff!important;
}

.unified-site-header .header-shell{
  height:112px!important;
  min-height:112px!important;
  max-height:112px!important;
  width:100%!important;
  display:grid!important;
  grid-template-columns:minmax(500px,auto) minmax(0,1fr)!important;
  align-items:center!important;
  gap:40px!important;
  padding:14px clamp(32px,5vw,82px)!important;
}

.unified-site-header .header-left-logos{
  height:84px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:28px!important;
}

.unified-site-header .brand{
  width:150px!important;
  height:84px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  flex:0 0 150px!important;
}

.unified-site-header .brand img{
  width:138px!important;
  max-width:138px!important;
  height:auto!important;
  max-height:72px!important;
  object-fit:contain!important;
  display:block!important;
}

.unified-site-header .header-title-sponsor{
  height:72px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:14px!important;
  padding-left:24px!important;
  border-left:1px solid rgba(23,23,23,.14)!important;
  flex:0 0 auto!important;
  color:#6F7377!important;
  text-decoration:none!important;
}

.unified-site-header .header-title-sponsor span{
  display:block!important;
  width:112px!important;
  flex:0 0 112px!important;
  font-family:Rajdhani,Arial,sans-serif!important;
  font-size:13px!important;
  line-height:1!important;
  font-weight:900!important;
  color:#6F7377!important;
  letter-spacing:.08em!important;
  text-transform:uppercase!important;
  white-space:nowrap!important;
}

.unified-site-header .header-title-sponsor img{
  width:auto!important;
  height:auto!important;
  max-height:48px!important;
  max-width:245px!important;
  object-fit:contain!important;
  display:block!important;
}

.unified-site-header .header-right-area{
  height:84px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-end!important;
  justify-content:center!important;
  gap:13px!important;
  justify-self:end!important;
  text-align:right!important;
}

.unified-site-header .header-social-row{
  height:26px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:12px!important;
  width:auto!important;
}

.unified-site-header .header-social-row span{
  font-family:Rajdhani,Arial,sans-serif!important;
  font-size:13px!important;
  line-height:1!important;
  font-weight:900!important;
  color:#6F7377!important;
  letter-spacing:.08em!important;
  text-transform:uppercase!important;
}

.unified-site-header .header-social-links{
  display:flex!important;
  align-items:center!important;
  gap:9px!important;
}

.unified-site-header .header-social-links a{
  width:27px!important;
  height:27px!important;
  flex:0 0 27px!important;
}

.unified-site-header .header-nav-row{
  height:34px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  position:relative!important;
  width:100%!important;
}

.unified-site-header .site-nav{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:18px!important;
  margin:0!important;
  white-space:nowrap!important;
}

.unified-site-header .site-nav a{
  font-family:Rajdhani,Arial,sans-serif!important;
  font-size:17px!important;
  line-height:1!important;
  font-weight:900!important;
  letter-spacing:.01em!important;
  text-transform:uppercase!important;
  color:#171717!important;
}

.unified-site-header .site-nav a:hover{
  color:#D90824!important;
}

.unified-site-header .site-nav .nav-signup{
  color:#fff!important;
  background:#D90824!important;
  padding:15px 22px!important;
  border-radius:999px!important;
}

@media(max-width:1240px){
  .unified-site-header .header-shell{
    grid-template-columns:minmax(430px,auto) minmax(0,1fr)!important;
  }
  .unified-site-header .header-burger{
    display:grid!important;
  }
  .unified-site-header .site-nav{
    position:absolute!important;
    top:calc(100% + 14px)!important;
    right:0!important;
    left:auto!important;
    display:none!important;
    flex-direction:column!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    min-width:300px!important;
    max-width:calc(100vw - 36px)!important;
    background:#fff!important;
    border:1px solid rgba(23,23,23,.1)!important;
    border-radius:18px!important;
    box-shadow:0 20px 55px rgba(0,0,0,.18)!important;
    padding:16px!important;
    z-index:1001!important;
  }
  .unified-site-header .site-nav.open{
    display:flex!important;
  }
  .unified-site-header .site-nav a{
    padding:12px 14px!important;
  }
  .unified-site-header .site-nav .nav-signup{
    text-align:center!important;
  }
}

@media(max-width:760px){
  .unified-site-header,
  .unified-site-header .header-shell{
    min-height:88px!important;
    height:88px!important;
    max-height:88px!important;
  }
  .unified-site-header .header-shell{
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:14px!important;
  }
  .unified-site-header .header-left-logos{
    gap:12px!important;
    height:60px!important;
  }
  .unified-site-header .brand{
    width:120px!important;
    flex-basis:120px!important;
    height:60px!important;
  }
  .unified-site-header .brand img{
    max-width:112px!important;
    max-height:54px!important;
  }
  .unified-site-header .header-title-sponsor{
    height:44px!important;
    padding-left:12px!important;
    gap:8px!important;
  }
  .unified-site-header .header-title-sponsor span{
    display:none!important;
  }
  .unified-site-header .header-title-sponsor img{
    max-height:34px!important;
    max-width:132px!important;
  }
  .unified-site-header .header-social-row{
    display:none!important;
  }
  .unified-site-header .header-right-area{
    height:60px!important;
  }
}


/* Header fix6 — logo Giro più grande, allineato visivamente al title sponsor */
.unified-site-header .header-left-logos{
  gap:24px!important;
}

.unified-site-header .brand{
  width:190px!important;
  height:84px!important;
  flex:0 0 190px!important;
}

.unified-site-header .brand img{
  width:auto!important;
  max-width:180px!important;
  height:auto!important;
  max-height:60px!important;
  object-fit:contain!important;
}

.unified-site-header .header-title-sponsor{
  gap:16px!important;
  padding-left:26px!important;
}

.unified-site-header .header-title-sponsor img{
  max-height:60px!important;
  max-width:250px!important;
  width:auto!important;
  height:auto!important;
}

@media(max-width:1240px){
  .unified-site-header .brand{
    width:170px!important;
    flex-basis:170px!important;
  }
  .unified-site-header .brand img{
    max-width:160px!important;
    max-height:54px!important;
  }
  .unified-site-header .header-title-sponsor img{
    max-height:54px!important;
    max-width:220px!important;
  }
}

@media(max-width:760px){
  .unified-site-header .brand{
    width:132px!important;
    flex-basis:132px!important;
    height:60px!important;
  }
  .unified-site-header .brand img{
    max-width:124px!important;
    max-height:44px!important;
  }
  .unified-site-header .header-title-sponsor img{
    max-height:38px!important;
    max-width:140px!important;
  }
}


/* Gare giovanili dropdown e pagina */
.nav-dropdown{
  position:relative;
  display:flex;
  align-items:center;
}
.nav-dropdown-box{
  position:absolute;
  top:calc(100% + 14px);
  left:50%;
  transform:translateX(-50%);
  min-width:210px;
  display:none;
  background:#fff;
  border:1px solid rgba(23,23,23,.1);
  border-radius:14px;
  box-shadow:0 18px 45px rgba(0,0,0,.16);
  padding:10px;
  z-index:1005;
}
.nav-dropdown-box a{
  display:block;
  padding:12px 14px;
  border-radius:10px;
  white-space:nowrap;
}
.nav-dropdown:hover .nav-dropdown-box,
.nav-dropdown.open .nav-dropdown-box{
  display:block;
}
@media(max-width:1240px){
  .site-nav .nav-dropdown{
    display:block;
  }
  .nav-dropdown-box{
    position:static;
    transform:none;
    box-shadow:none;
    border:0;
    background:#f7f7f7;
    margin-top:6px;
  }
  .nav-dropdown.open .nav-dropdown-box{
    display:block;
  }
}

.youth-hero{
  min-height:62vh;
  display:grid;
  align-items:center;
  padding:150px clamp(24px,7vw,110px) 80px;
  background:
    linear-gradient(110deg,rgba(255,255,255,.92),rgba(255,255,255,.70)),
    radial-gradient(circle at 80% 20%,rgba(217,8,36,.22),transparent 35%),
    #f6f6f6;
}
.youth-hero h1{
  font-size:clamp(58px,8vw,120px);
  line-height:.85;
  text-transform:uppercase;
  margin:12px 0 18px;
  max-width:900px;
}
.youth-hero p{
  max-width:680px;
  font-size:20px;
  color:#3a3a3a;
}
.youth-identity .identity-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:50px;
  align-items:start;
}
.youth-identity h2,
.youth-race-cards h2,
.youth-classifications h2{
  font-size:clamp(44px,6vw,86px);
  line-height:.9;
  text-transform:uppercase;
}
.youth-race-cards h2 em,
.youth-classifications h2 em{
  font-style:normal;
  color:#D90824;
}
.youth-card-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px;
  margin-top:32px;
}
.youth-race-card{
  background:#fff;
  border:1px solid rgba(23,23,23,.1);
  border-radius:20px;
  padding:34px;
  min-height:260px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  color:#171717;
  text-decoration:none;
  box-shadow:0 14px 36px rgba(0,0,0,.08);
}
.youth-race-card span{
  width:52px;
  height:52px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#D90824;
  color:#fff;
  font-family:Rajdhani,system-ui,sans-serif;
  font-weight:900;
  font-size:24px;
  margin-bottom:auto;
}
.youth-race-card h3{
  font-size:clamp(32px,4vw,56px);
  line-height:.9;
  text-transform:uppercase;
  margin:28px 0 12px;
}
.youth-class-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px;
  margin-top:32px;
}
.youth-class-card{
  background:#fff;
  border-radius:20px;
  box-shadow:0 14px 36px rgba(0,0,0,.08);
  overflow:hidden;
}
.youth-class-card h3{
  margin:0;
  padding:22px 26px;
  background:#171717;
  color:#fff;
  font-size:32px;
  text-transform:uppercase;
}
.youth-class-card table{
  width:100%;
  border-collapse:collapse;
}
.youth-class-card th,
.youth-class-card td{
  padding:13px 16px;
  border-top:1px solid #eee;
  text-align:left;
}
.youth-class-card td:first-child{
  color:#D90824;
  font-family:Rajdhani,system-ui,sans-serif;
  font-size:24px;
  font-weight:900;
}
.youth-class-card p{
  padding:24px 26px;
}
@media(max-width:820px){
  .youth-identity .identity-grid,
  .youth-card-grid,
  .youth-class-grid{
    grid-template-columns:1fr;
  }
}
.classification-admin-head.youth,
.classification-admin-row.youth{
  grid-template-columns:.55fr 1fr 1fr 1fr .7fr .7fr .7fr .55fr .55fr auto;
}


/* Gare Giovanili v2 — hero image + import */
.youth-hero{
  position:relative;
  overflow:hidden;
  background:
    linear-gradient(110deg,rgba(255,255,255,.94),rgba(255,255,255,.62)),
    var(--youth-hero-img, radial-gradient(circle at 80% 20%,rgba(217,8,36,.22),transparent 35%)),
    #f6f6f6;
  background-size:cover;
  background-position:center;
}
.youth-hero:after{
  content:"";
  position:absolute;
  inset:auto -8% -70px -8%;
  height:150px;
  background:#D90824;
  border-radius:50% 50% 0 0;
  opacity:.95;
}
.youth-hero>div{position:relative;z-index:1}
.wide-preview-img{
  display:block;
  max-width:340px;
  max-height:170px;
  object-fit:cover;
  border-radius:10px;
  border:1px solid #eee;
}


/* Pagina Foto */
.photos-page h1,.album-page h1{font-size:clamp(54px,7vw,110px);line-height:.88;text-transform:uppercase;margin:12px 0 18px}
.photo-workflow-note,.photo-notice{margin:28px 0;padding:18px 22px;border-left:5px solid #D90824;background:#f7f7f7;border-radius:0 12px 12px 0;font-weight:700}
.album-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px;margin-top:34px}
.album-card{min-height:330px;display:flex;align-items:flex-end;padding:28px;border-radius:22px;color:#fff;text-decoration:none;overflow:hidden;position:relative;background:linear-gradient(0deg,rgba(23,23,23,.82),rgba(23,23,23,.18)),var(--album-cover);background-size:cover;background-position:center;box-shadow:0 18px 42px rgba(0,0,0,.18)}
.album-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(217,8,36,.62),transparent 58%)}
.album-card>div{position:relative;z-index:1}.album-card span{font-family:Rajdhani,system-ui,sans-serif;font-weight:900;text-transform:uppercase}.album-card h2{margin:8px 0 10px;font-family:Rajdhani,system-ui,sans-serif;font-size:clamp(34px,4vw,58px);line-height:.9;text-transform:uppercase}.album-card p{margin:0;color:rgba(255,255,255,.86)}
.back-link{display:inline-flex;margin-bottom:22px;color:#D90824;font-weight:900;text-decoration:none;text-transform:uppercase;font-family:Rajdhani,system-ui,sans-serif}
.photo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px;margin-top:34px}
.photo-card{background:#fff;border:1px solid rgba(23,23,23,.1);border-radius:18px;overflow:hidden;box-shadow:0 12px 32px rgba(0,0,0,.08)}
.photo-preview{display:block;aspect-ratio:4/3;background:#eee;overflow:hidden}.photo-preview img{width:100%;height:100%;object-fit:cover;display:block}.photo-card-body{padding:18px}
.original-file-name{display:block;font-family:Rajdhani,system-ui,sans-serif;font-size:22px;line-height:1;color:#171717;word-break:break-word}.photo-card-body small{display:block;margin-top:12px;color:#6F7377;line-height:1.35}.photo-actions-public{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.photo-actions-public .button{font-size:14px;padding:10px 13px}
.photo-admin-table{display:grid;gap:10px}.photo-admin-head,.photo-admin-row{display:grid;gap:9px;align-items:center}.photo-admin-head.albums,.photo-admin-row.albums{grid-template-columns:1fr 1fr .9fr 1.1fr 1.3fr .55fr .55fr auto}.photo-admin-head.photos,.photo-admin-row.photos{grid-template-columns:.8fr 1.4fr 1.2fr .55fr .55fr auto}.photo-admin-head{background:#171717;color:#fff;border-radius:10px;padding:12px;font-size:12px;text-transform:uppercase}.photo-admin-row{background:#fff;border:1px solid #eee;border-radius:12px;padding:12px}.photo-admin-thumb{display:block;width:86px;height:64px;object-fit:cover;border-radius:8px;margin-bottom:6px}.photo-actions{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:1250px){.photo-admin-head{display:none}.photo-admin-row.albums,.photo-admin-row.photos{grid-template-columns:1fr}}


/* GP Velo Cafe */
.gpvc-hero{min-height:70vh;display:grid;align-items:center;padding:150px clamp(24px,7vw,110px) 90px;background:linear-gradient(105deg,rgba(255,255,255,.96),rgba(255,255,255,.65)),var(--gpvc-hero-img,radial-gradient(circle at 75% 20%,rgba(217,8,36,.25),transparent 36%)),#f6f6f6;background-size:cover;background-position:center;position:relative;overflow:hidden}.gpvc-hero:after{content:"";position:absolute;inset:auto -10% -70px -10%;height:150px;background:#D90824;border-radius:50% 50% 0 0}.gpvc-hero>div{position:relative;z-index:1;max-width:900px}.gpvc-hero h1{font-size:clamp(58px,8vw,120px);line-height:.85;text-transform:uppercase;margin:12px 0 18px}.gpvc-hero p{font-size:20px;max-width:680px}.gpvc-presented{background:#fff;padding:26px clamp(24px,7vw,110px);display:flex;align-items:center;justify-content:center;gap:24px}.gpvc-presented span{font-family:Rajdhani,system-ui,sans-serif;font-weight:900;text-transform:uppercase;color:#6F7377;letter-spacing:.08em}.gpvc-presented img{max-height:72px;max-width:280px;object-fit:contain}.gpvc-sponsor-carousel{overflow:hidden;background:#171717;padding:28px 0}.gpvc-sponsor-track{display:flex;gap:28px;align-items:center;width:max-content;animation:gpvcSponsor 24s linear infinite}.gpvc-sponsor-track a{display:grid;place-items:center;width:220px;height:96px;background:#fff;border-radius:16px;padding:18px;flex:0 0 auto}.gpvc-sponsor-track img{max-width:100%;max-height:100%;object-fit:contain}@keyframes gpvcSponsor{from{transform:translateX(0)}to{transform:translateX(-50%)}}.gpvc-identity .identity-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px}.gpvc-identity h2,.gpvc-doc-route h2,.gpvc-program h2{font-size:clamp(44px,6vw,86px);line-height:.9;text-transform:uppercase}.gpvc-doc-route{display:grid;grid-template-columns:.8fr 1.2fr;gap:40px}.gpvc-buttons{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}.route-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0}.route-tabs button{border:0;background:#171717;color:#fff;border-radius:10px;padding:13px 16px;font-family:Rajdhani,system-ui,sans-serif;text-transform:uppercase;font-weight:900;cursor:pointer}.route-tabs button.active{background:#D90824}.route-panel{display:none;background:#fff;border-radius:18px;box-shadow:0 14px 36px rgba(0,0,0,.08);padding:20px;overflow:hidden}.route-panel.active{display:block}.route-panel img{width:100%;height:auto;display:block;border-radius:12px}.route-panel iframe{width:100%;height:560px;border:0;border-radius:12px}.route-table-wrap{overflow-x:auto}.program-timeline{margin-top:30px;border-top:1px solid rgba(23,23,23,.16)}.program-timeline article{display:grid;grid-template-columns:230px 1fr;gap:32px;padding:28px 0;border-bottom:1px solid rgba(23,23,23,.16)}.program-timeline time{font-family:Rajdhani,system-ui,sans-serif;font-size:34px;font-weight:900;color:#D90824}.program-timeline h3{margin:0 0 8px;font-size:34px;text-transform:uppercase}.gpvc-admin-table{display:grid;gap:10px;margin:18px 0 30px}.gpvc-admin-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;align-items:center;background:#fff;border:1px solid #eee;border-radius:12px;padding:12px}@media(max-width:980px){.gpvc-identity .identity-grid,.gpvc-doc-route,.program-timeline article,.gpvc-admin-row{grid-template-columns:1fr}}


/* Fix separatori sezioni — linea rossa sottile */
.section{
  position:relative;
}

.section + .section{
  border-top:1px solid rgba(217,8,36,.55)!important;
}

.section:before,
.section:after{
  box-shadow:none!important;
}

.section-divider,
.red-divider,
.curve-divider,
.wave-divider,
.diagonal-divider{
  display:none!important;
}

.stage-section,
.youth-race-cards,
.youth-classifications,
.photos-page,
.album-page,
.gpvc-identity,
.gpvc-doc-route,
.gpvc-program{
  border-top:1px solid rgba(217,8,36,.55)!important;
}

.gpvc-hero:after,
.youth-hero:after{
  height:2px!important;
  inset:auto 0 0 0!important;
  border-radius:0!important;
  background:#D90824!important;
  opacity:1!important;
}

.hero + .section,
.gpvc-hero + .presented-by,
.youth-hero + .section{
  border-top:1px solid rgba(217,8,36,.55)!important;
}


/* Fix separatori v4 — rimosse linee rosse decorative grandi */
.jersey-section::before,
.jersey-section::after,
.jerseys-section::before,
.jerseys-section::after,
.maglie-section::before,
.maglie-section::after,
.home-jerseys::before,
.home-jerseys::after,
.stage-cards-section::before,
.stage-cards-section::after,
.stages-section::before,
.stages-section::after,
.results-section::before,
.results-section::after,
.rankings-section::before,
.rankings-section::after,
.sponsors-section::before,
.sponsors-section::after,
.identity-section::before,
.identity-section::after,
.gpvc-identity::before,
.gpvc-identity::after,
.gpvc-doc-route::before,
.gpvc-doc-route::after,
.gpvc-program::before,
.gpvc-program::after,
.youth-race-cards::before,
.youth-race-cards::after,
.youth-classifications::before,
.youth-classifications::after{
  display:none!important;
  content:none!important;
  background:none!important;
  transform:none!important;
}

.section + .section,
.hero + .section,
.gpvc-hero + .presented-by,
.youth-hero + .section,
.stage-section,
.youth-race-cards,
.youth-classifications,
.photos-page,
.album-page,
.gpvc-identity,
.gpvc-doc-route,
.gpvc-program{
  border-top:1px solid rgba(217,8,36,.55)!important;
}

/* Filetto pulito specifico dopo la sezione maglie */
.jersey-section,
.jerseys-section,
.maglie-section,
.home-jerseys{
  border-bottom:1px solid rgba(217,8,36,.55)!important;
}


/* Header final fix v5 — formato identico su tutte le pagine */
.unified-site-header,
.unified-site-header *{
  box-sizing:border-box!important;
}

.unified-site-header{
  width:100%!important;
  height:112px!important;
  min-height:112px!important;
  max-height:112px!important;
  margin:0!important;
  padding:0!important;
  background:#fff!important;
  border:0!important;
  border-bottom:1px solid rgba(217,8,36,.55)!important;
  position:relative!important;
  z-index:1000!important;
  overflow:visible!important;
}

.unified-site-header .header-shell{
  width:100%!important;
  height:112px!important;
  min-height:112px!important;
  max-height:112px!important;
  margin:0!important;
  padding:14px clamp(28px,4.8vw,78px)!important;
  display:grid!important;
  grid-template-columns:minmax(500px,auto) minmax(0,1fr)!important;
  align-items:center!important;
  gap:34px!important;
}

.unified-site-header .header-left-logos{
  width:auto!important;
  height:84px!important;
  min-height:84px!important;
  max-height:84px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:24px!important;
  justify-self:start!important;
  overflow:visible!important;
}

.unified-site-header .brand{
  width:190px!important;
  height:84px!important;
  flex:0 0 190px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  margin:0!important;
  padding:0!important;
}

.unified-site-header .brand img{
  display:block!important;
  width:auto!important;
  max-width:180px!important;
  height:auto!important;
  max-height:60px!important;
  object-fit:contain!important;
  margin:0!important;
}

.unified-site-header .header-title-sponsor{
  height:72px!important;
  min-height:72px!important;
  max-height:72px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:16px!important;
  padding:0 0 0 26px!important;
  margin:0!important;
  border-left:1px solid rgba(23,23,23,.14)!important;
  color:#6F7377!important;
  text-decoration:none!important;
  flex:0 0 auto!important;
}

.unified-site-header .header-title-sponsor span{
  display:block!important;
  width:112px!important;
  flex:0 0 112px!important;
  font-family:Rajdhani,Arial,sans-serif!important;
  font-size:13px!important;
  line-height:1!important;
  font-weight:900!important;
  color:#6F7377!important;
  letter-spacing:.08em!important;
  text-transform:uppercase!important;
  white-space:nowrap!important;
}

.unified-site-header .header-title-sponsor img{
  display:block!important;
  width:auto!important;
  height:auto!important;
  max-width:250px!important;
  max-height:60px!important;
  object-fit:contain!important;
  margin:0!important;
}

.unified-site-header .header-right-area{
  width:100%!important;
  height:84px!important;
  min-height:84px!important;
  max-height:84px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-end!important;
  justify-content:center!important;
  gap:13px!important;
  justify-self:end!important;
  text-align:right!important;
  margin:0!important;
  padding:0!important;
}

.unified-site-header .header-social-row{
  height:27px!important;
  min-height:27px!important;
  max-height:27px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:12px!important;
  width:auto!important;
  margin:0!important;
  padding:0!important;
}

.unified-site-header .header-social-row span{
  font-family:Rajdhani,Arial,sans-serif!important;
  font-size:13px!important;
  line-height:1!important;
  font-weight:900!important;
  color:#6F7377!important;
  letter-spacing:.08em!important;
  text-transform:uppercase!important;
  white-space:nowrap!important;
}

.unified-site-header .header-social-links{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:9px!important;
  margin:0!important;
  padding:0!important;
}

.unified-site-header .header-social-links a{
  width:27px!important;
  height:27px!important;
  min-width:27px!important;
  min-height:27px!important;
  max-width:27px!important;
  max-height:27px!important;
  border-radius:50%!important;
  display:grid!important;
  place-items:center!important;
  flex:0 0 27px!important;
  margin:0!important;
  padding:0!important;
}

.unified-site-header .header-social-links svg{
  width:15px!important;
  height:15px!important;
  display:block!important;
}

.unified-site-header .header-nav-row{
  height:38px!important;
  min-height:38px!important;
  max-height:38px!important;
  width:100%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  position:relative!important;
  margin:0!important;
  padding:0!important;
}

.unified-site-header .site-nav{
  height:38px!important;
  min-height:38px!important;
  max-height:38px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:16px!important;
  margin:0!important;
  padding:0!important;
  white-space:nowrap!important;
}

.unified-site-header .site-nav a,
.unified-site-header .nav-dropdown-main{
  font-family:Rajdhani,Arial,sans-serif!important;
  font-size:16px!important;
  line-height:1!important;
  font-weight:900!important;
  letter-spacing:.01em!important;
  text-transform:uppercase!important;
  color:#171717!important;
  text-decoration:none!important;
  padding:0!important;
  margin:0!important;
  background:transparent!important;
}

.unified-site-header .site-nav a:hover,
.unified-site-header .nav-dropdown-main:hover{
  color:#D90824!important;
}

/* Hover corretto bottone Iscriviti */
.unified-site-header .site-nav .nav-signup{
  height:38px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0 22px!important;
  border-radius:999px!important;
  border:1px solid #D90824!important;
  background:#D90824!important;
  color:#fff!important;
  font-family:Rajdhani,Arial,sans-serif!important;
  font-size:16px!important;
  line-height:1!important;
  font-weight:900!important;
  letter-spacing:.01em!important;
  text-transform:uppercase!important;
  text-decoration:none!important;
  transition:background .18s ease,color .18s ease,border-color .18s ease!important;
}

.unified-site-header .site-nav .nav-signup:hover,
.unified-site-header .site-nav .nav-signup:focus-visible{
  background:#fff!important;
  color:#D90824!important;
  border-color:#D90824!important;
}

/* Dropdown coerente con header */
.unified-site-header .nav-dropdown{
  height:38px!important;
  display:flex!important;
  align-items:center!important;
  position:relative!important;
  margin:0!important;
  padding:0!important;
}

.unified-site-header .nav-dropdown-box{
  top:calc(100% + 15px)!important;
  left:50%!important;
  transform:translateX(-50%)!important;
  min-width:220px!important;
  padding:10px!important;
  background:#fff!important;
  border:1px solid rgba(23,23,23,.10)!important;
  border-radius:14px!important;
  box-shadow:0 18px 45px rgba(0,0,0,.16)!important;
}

.unified-site-header .nav-dropdown-box a{
  display:block!important;
  padding:12px 14px!important;
  border-radius:10px!important;
  font-size:15px!important;
}

.unified-site-header .nav-dropdown-box a:hover{
  background:#f6f6f6!important;
  color:#D90824!important;
}

@media(max-width:1420px){
  .unified-site-header .header-shell{
    grid-template-columns:minmax(460px,auto) minmax(0,1fr)!important;
    gap:24px!important;
    padding-left:32px!important;
    padding-right:32px!important;
  }
  .unified-site-header .site-nav{
    gap:13px!important;
  }
  .unified-site-header .site-nav a,
  .unified-site-header .nav-dropdown-main,
  .unified-site-header .site-nav .nav-signup{
    font-size:15px!important;
  }
  .unified-site-header .site-nav .nav-signup{
    padding-left:18px!important;
    padding-right:18px!important;
  }
}

@media(max-width:1240px){
  .unified-site-header .header-shell{
    grid-template-columns:minmax(430px,auto) minmax(0,1fr)!important;
  }
  .unified-site-header .header-burger{
    display:grid!important;
  }
  .unified-site-header .site-nav{
    position:absolute!important;
    top:calc(100% + 14px)!important;
    right:0!important;
    left:auto!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    display:none!important;
    flex-direction:column!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    gap:4px!important;
    min-width:310px!important;
    max-width:calc(100vw - 36px)!important;
    background:#fff!important;
    border:1px solid rgba(23,23,23,.1)!important;
    border-radius:18px!important;
    box-shadow:0 20px 55px rgba(0,0,0,.18)!important;
    padding:16px!important;
    z-index:1001!important;
  }
  .unified-site-header .site-nav.open{
    display:flex!important;
  }
  .unified-site-header .site-nav a,
  .unified-site-header .nav-dropdown-main{
    padding:12px 14px!important;
    font-size:16px!important;
  }
  .unified-site-header .site-nav .nav-signup{
    height:auto!important;
    min-height:42px!important;
    text-align:center!important;
  }
  .unified-site-header .nav-dropdown{
    height:auto!important;
    display:block!important;
  }
  .unified-site-header .nav-dropdown-box{
    position:static!important;
    transform:none!important;
    min-width:0!important;
    width:100%!important;
    margin-top:4px!important;
    box-shadow:none!important;
    border:0!important;
    background:#f7f7f7!important;
  }
}

@media(max-width:760px){
  .unified-site-header{
    height:88px!important;
    min-height:88px!important;
    max-height:88px!important;
  }
  .unified-site-header .header-shell{
    height:88px!important;
    min-height:88px!important;
    max-height:88px!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:14px!important;
    padding:12px 18px!important;
  }
  .unified-site-header .header-left-logos{
    height:60px!important;
    min-height:60px!important;
    max-height:60px!important;
    gap:12px!important;
  }
  .unified-site-header .brand{
    width:132px!important;
    height:60px!important;
    flex-basis:132px!important;
  }
  .unified-site-header .brand img{
    max-width:124px!important;
    max-height:44px!important;
  }
  .unified-site-header .header-title-sponsor{
    height:44px!important;
    min-height:44px!important;
    max-height:44px!important;
    padding-left:12px!important;
    gap:8px!important;
  }
  .unified-site-header .header-title-sponsor span{
    display:none!important;
  }
  .unified-site-header .header-title-sponsor img{
    max-height:38px!important;
    max-width:140px!important;
  }
  .unified-site-header .header-social-row{
    display:none!important;
  }
  .unified-site-header .header-right-area{
    height:60px!important;
    min-height:60px!important;
    max-height:60px!important;
  }
}

@media(max-width:460px){
  .unified-site-header .header-title-sponsor{
    display:none!important;
  }
}


/* Header final lock v6 — nessuno zoom tra home e pagine interne */
html{
  font-size:16px!important;
}

body .unified-site-header{
  font-size:16px!important;
  line-height:1!important;
  transform:none!important;
  zoom:1!important;
}

body .unified-site-header .header-shell,
body .unified-site-header .header-left-logos,
body .unified-site-header .header-right-area,
body .unified-site-header .header-social-row,
body .unified-site-header .header-nav-row,
body .unified-site-header .site-nav{
  transform:none!important;
  zoom:1!important;
}

body .unified-site-header .brand img{
  width:auto!important;
  height:auto!important;
  max-width:180px!important;
  max-height:60px!important;
}

body .unified-site-header .header-title-sponsor img{
  width:auto!important;
  height:auto!important;
  max-width:250px!important;
  max-height:60px!important;
}

body .unified-site-header .site-nav a,
body .unified-site-header .nav-dropdown-main,
body .unified-site-header .site-nav .nav-signup{
  font-family:'Rajdhani',Arial,sans-serif!important;
  font-size:16px!important;
  font-weight:900!important;
  line-height:1!important;
  letter-spacing:.01em!important;
  transform:none!important;
}

body .unified-site-header .header-social-row span,
body .unified-site-header .header-title-sponsor span{
  font-family:'Rajdhani',Arial,sans-serif!important;
  font-size:13px!important;
  font-weight:900!important;
  line-height:1!important;
  transform:none!important;
}

body .unified-site-header .site-nav .nav-signup{
  background:#D90824!important;
  color:#fff!important;
  border:1px solid #D90824!important;
}

body .unified-site-header .site-nav .nav-signup:hover,
body .unified-site-header .site-nav .nav-signup:focus-visible{
  background:#fff!important;
  color:#D90824!important;
  border:1px solid #D90824!important;
}

@media(max-width:1420px){
  body .unified-site-header .site-nav a,
  body .unified-site-header .nav-dropdown-main,
  body .unified-site-header .site-nav .nav-signup{
    font-size:15px!important;
  }
}


/* Fix v7 — rimozione definitiva grafiche rosse grandi tra sezioni */
.unified-site-header{
  border-bottom:0!important;
}

main > .hero,
body > .hero,
.page-hero,
.youth-hero,
.gpvc-hero,
.photos-page,
.album-page{
  border-top:0!important;
}

main > .hero::before,
main > .hero::after,
body > .hero::before,
body > .hero::after,
.hero::before,
.hero::after,
.page-hero::before,
.page-hero::after,
.youth-hero::before,
.youth-hero::after,
.gpvc-hero::before,
.gpvc-hero::after,
.section::before,
.section::after,
.identity::before,
.identity::after,
.jerseys::before,
.jerseys::after,
.stages::before,
.stages::after,
.results::before,
.results::after,
.rankings-redesign::before,
.rankings-redesign::after,
.sponsor-pyramid::before,
.sponsor-pyramid::after,
.sponsor-bottom::before,
.sponsor-bottom::after,
.presented::before,
.presented::after,
.presented-by::before,
.presented-by::after,
.gpvc-presented::before,
.gpvc-presented::after,
.gpvc-sponsor-carousel::before,
.gpvc-sponsor-carousel::after{
  display:none!important;
  content:none!important;
  width:0!important;
  height:0!important;
  min-height:0!important;
  max-height:0!important;
  background:none!important;
  background-image:none!important;
  border:0!important;
  border-radius:0!important;
  clip-path:none!important;
  transform:none!important;
  opacity:0!important;
  box-shadow:none!important;
}

/* Filetto rosso sottile solo tra sezioni, non tra header e hero */
.section + .section{
  border-top:1px solid rgba(217,8,36,.55)!important;
}

.hero + .presented,
.hero + .section,
.gpvc-hero + .presented-by,
.gpvc-hero + .gpvc-presented,
.youth-hero + .section{
  border-top:0!important;
}

/* Primo blocco dopo header senza linea */
.unified-site-header + main,
.unified-site-header + .hero,
.unified-site-header + .page-hero,
.unified-site-header + .youth-hero,
.unified-site-header + .gpvc-hero,
.unified-site-header + .photos-page,
.unified-site-header + .album-page{
  border-top:0!important;
}


/* Fix v8 — separatori rossi curvi, sottili ai lati e più spessi al centro */
.section + .section,
.stage-section,
.youth-race-cards,
.youth-classifications,
.photos-page,
.album-page,
.gpvc-identity,
.gpvc-doc-route,
.gpvc-program{
  border-top:0!important;
  position:relative!important;
}

/* nessuna linea tra header e hero / prima sezione */
.unified-site-header,
.unified-site-header + .hero,
.unified-site-header + main,
.unified-site-header + .page-hero,
.unified-site-header + .youth-hero,
.unified-site-header + .gpvc-hero,
.unified-site-header + .photos-page,
.unified-site-header + .album-page,
.hero,
.page-hero,
.youth-hero,
.gpvc-hero{
  border-top:0!important;
  border-bottom:0!important;
}

/* Curva tra sezioni interne */
body .section + .section::before,
body .stage-section::before,
body .youth-race-cards::before,
body .youth-classifications::before,
body .gpvc-identity::before,
body .gpvc-doc-route::before,
body .gpvc-program::before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  left:0!important;
  right:0!important;
  top:-13px!important;
  width:100%!important;
  height:26px!important;
  opacity:1!important;
  z-index:4!important;
  pointer-events:none!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  transform:none!important;
  clip-path:none!important;
  background-repeat:no-repeat!important;
  background-position:center top!important;
  background-size:100% 26px!important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 30' preserveAspectRatio='none'%3E%3Cpath d='M0 2 C 300 2 420 16 720 16 C 1020 16 1140 2 1440 2 L1440 3 C1140 3 1020 22 720 25 C420 22 300 3 0 3 Z' fill='%23D90824'/%3E%3C/svg%3E")!important;
}

/* La prima sezione dopo hero/presented non deve mostrare curva sopra */
body .hero + .section::before,
body .page-hero + .section::before,
body .youth-hero + .section::before,
body .gpvc-hero + .section::before,
body .gpvc-hero + .presented-by::before,
body .gpvc-hero + .gpvc-presented::before,
body .presented-by + .section::before,
body .gpvc-presented + .section::before{
  display:none!important;
  content:none!important;
  background:none!important;
}

/* Evita il ritorno delle vecchie forme decorative grosse */
body .hero::before,
body .hero::after,
body .page-hero::before,
body .page-hero::after,
body .youth-hero::before,
body .youth-hero::after,
body .gpvc-hero::before,
body .gpvc-hero::after{
  display:none!important;
  content:none!important;
  background:none!important;
}


/* Fix v9 — separatori curvi più visibili */
body .section,
body .stage-section,
body .stages-section,
body .stage-cards-section,
body .results-section,
body .rankings-section,
body .jersey-section,
body .jerseys-section,
body .maglie-section,
body .home-jerseys,
body .sponsor-pyramid,
body .youth-race-cards,
body .youth-classifications,
body .gpvc-identity,
body .gpvc-doc-route,
body .gpvc-program,
body .photos-page,
body .album-page{
  position:relative!important;
  overflow:visible!important;
  border-top:0!important;
}

/* curva visibile sopra le sezioni interne */
body .section + .section::before,
body .stages-section::before,
body .stage-cards-section::before,
body .results-section::before,
body .rankings-section::before,
body .jersey-section::before,
body .jerseys-section::before,
body .maglie-section::before,
body .home-jerseys::before,
body .sponsor-pyramid::before,
body .youth-race-cards::before,
body .youth-classifications::before,
body .gpvc-identity::before,
body .gpvc-doc-route::before,
body .gpvc-program::before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  left:0!important;
  right:0!important;
  top:0!important;
  width:100%!important;
  height:28px!important;
  min-height:28px!important;
  max-height:28px!important;
  z-index:25!important;
  pointer-events:none!important;
  opacity:1!important;
  background-repeat:no-repeat!important;
  background-position:center top!important;
  background-size:100% 28px!important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 28' preserveAspectRatio='none'%3E%3Cpath d='M0 1 C 240 1 430 13 720 18 C 1010 13 1200 1 1440 1 L1440 3 C 1200 5 1010 24 720 27 C 430 24 240 5 0 3 Z' fill='%23D90824'/%3E%3C/svg%3E")!important;
  border:0!important;
  border-radius:0!important;
  clip-path:none!important;
  transform:none!important;
  box-shadow:none!important;
}

/* nessun separatore tra header e hero / prima sezione */
body .unified-site-header{
  border-bottom:0!important;
}

body .unified-site-header + .hero::before,
body .unified-site-header + .page-hero::before,
body .unified-site-header + .youth-hero::before,
body .unified-site-header + .gpvc-hero::before,
body .unified-site-header + .photos-page::before,
body .unified-site-header + .album-page::before,
body .hero::before,
body .hero::after,
body .page-hero::before,
body .page-hero::after,
body .youth-hero::before,
body .youth-hero::after,
body .gpvc-hero::before,
body .gpvc-hero::after{
  display:none!important;
  content:none!important;
  background:none!important;
}

/* niente curva subito dopo hero/presented */
body .hero + .section::before,
body .page-hero + .section::before,
body .youth-hero + .section::before,
body .gpvc-hero + .section::before,
body .gpvc-hero + .presented-by::before,
body .gpvc-hero + .gpvc-presented::before,
body .presented-by + .section::before,
body .gpvc-presented + .section::before{
  display:none!important;
  content:none!important;
  background:none!important;
}

/* linea sottile di sicurezza sotto la curva */
body .section + .section{
  border-top:0!important;
}


/* Pagina Contatti v1 */
.contact-hero{
  min-height:58vh;
  display:grid;
  align-items:center;
  padding:150px clamp(24px,7vw,110px) 90px;
  background:
    linear-gradient(110deg,rgba(255,255,255,.96),rgba(255,255,255,.74)),
    radial-gradient(circle at 84% 24%,rgba(217,8,36,.18),transparent 36%),
    #f6f6f6;
  position:relative;
  overflow:hidden;
}
.contact-hero>div{
  max-width:920px;
}
.contact-hero h1{
  font-size:clamp(58px,8vw,118px);
  line-height:.86;
  text-transform:uppercase;
  margin:12px 0 18px;
}
.contact-hero p{
  max-width:720px;
  font-size:20px;
  color:#3a3a3a;
}
.contact-general-box{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:26px;
}
.contact-general-box a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:0 18px;
  border:1px solid #D90824;
  border-radius:999px;
  color:#D90824;
  background:#fff;
  text-decoration:none;
  font-family:Rajdhani,system-ui,sans-serif;
  font-weight:900;
  text-transform:uppercase;
}
.contact-general-box a:hover{
  background:#D90824;
  color:#fff;
}
.contact-committee-section{
  background:#fff;
}
.contact-section-head{
  max-width:980px;
  margin-bottom:36px;
}
.contact-section-head h2{
  font-size:clamp(44px,6vw,86px);
  line-height:.9;
  text-transform:uppercase;
  margin:10px 0 16px;
}
.contact-section-head p{
  max-width:720px;
  color:#555;
}
.committee-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:24px;
}
.committee-card{
  background:#fff;
  border:1px solid rgba(23,23,23,.1);
  border-radius:22px;
  overflow:hidden;
  box-shadow:0 14px 36px rgba(0,0,0,.08);
}
.committee-photo{
  aspect-ratio:4/3;
  background:#f2f2f2;
  overflow:hidden;
}
.committee-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.committee-placeholder{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  font-family:Rajdhani,system-ui,sans-serif;
  font-size:88px;
  font-weight:900;
  color:#D90824;
  background:
    linear-gradient(135deg,rgba(217,8,36,.08),transparent),
    #f7f7f7;
}
.committee-info{
  padding:22px;
}
.committee-info h3{
  margin:0 0 8px;
  font-family:Rajdhani,system-ui,sans-serif;
  font-size:34px;
  line-height:.92;
  text-transform:uppercase;
}
.committee-role{
  margin:0;
  color:#D90824;
  font-family:Rajdhani,system-ui,sans-serif;
  font-weight:900;
  text-transform:uppercase;
}
.committee-contact-links{
  display:grid;
  gap:6px;
  margin-top:16px;
}
.committee-contact-links a{
  color:#171717;
  text-decoration:none;
  font-weight:700;
  word-break:break-word;
}
.committee-contact-links a:hover{
  color:#D90824;
}
.empty-message{
  padding:28px;
  background:#f7f7f7;
  border-radius:18px;
  color:#6F7377;
}

/* Admin Contatti */
.contact-admin-table{
  display:grid;
  gap:10px;
}
.contact-admin-head,
.contact-admin-row{
  display:grid;
  grid-template-columns:1.15fr 1.15fr .8fr .8fr 1fr 1fr .9fr .55fr .55fr auto;
  gap:9px;
  align-items:center;
}
.contact-admin-head{
  background:#171717;
  color:#fff;
  border-radius:10px;
  padding:12px;
  font-size:12px;
  text-transform:uppercase;
}
.contact-admin-row{
  background:#fff;
  border:1px solid #eee;
  border-radius:12px;
  padding:12px;
}
.contact-admin-thumb{
  display:block;
  width:86px;
  height:64px;
  object-fit:cover;
  border-radius:8px;
  margin-bottom:6px;
}
@media(max-width:1250px){
  .contact-admin-head{
    display:none;
  }
  .contact-admin-row{
    grid-template-columns:1fr;
  }
}


/* Contatti v2 — foto membro più verticale */
.committee-photo{
  aspect-ratio:3/4!important;
  min-height:360px!important;
  background:#f2f2f2!important;
}

.committee-photo img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center top!important;
}

.committee-placeholder{
  aspect-ratio:3/4!important;
}

@media(max-width:760px){
  .committee-photo{
    min-height:320px!important;
  }
}


/* Contatti v3 — GP Velo Cafe come pagina tappa dopo Identità */
.gpvc-stage-detail h2{
  font-size:clamp(44px,6vw,82px);
  line-height:.9;
  text-transform:uppercase;
  margin:10px 0 18px;
}

.gpvc-stage-detail .stage-description{
  margin-top:28px;
  max-width:760px;
}

.gpvc-stage-detail .stage-description h3{
  font-family:Rajdhani,system-ui,sans-serif;
  font-size:34px;
  line-height:1;
  text-transform:uppercase;
  margin:0 0 12px;
  color:#171717;
}

.gpvc-stage-detail .stage-description p{
  color:#6F7377;
  font-size:18px;
  line-height:1.55;
}

.gpvc-stage-route{
  background:#fff;
}

.gpvc-stage-route .gpvc-route-intro{
  max-width:780px;
  margin:0 auto 12px;
  text-align:center;
  color:#6F7377;
  font-size:18px;
  line-height:1.55;
}

.gpvc-stage-program .gpvc-program-intro{
  max-width:760px;
  margin:-18px auto 34px;
  text-align:center;
  color:#6F7377;
  font-size:18px;
  line-height:1.55;
}

.gpvc-stage-program .route-empty{
  max-width:1120px;
  margin:0 auto;
}

/* spegne il vecchio layout due colonne Documenti/Percorso del GPVC */
.gpvc-doc-route{
  display:block;
}

/* mobile coerente con le pagine tappa */
@media(max-width:820px){
  .gpvc-stage-detail h2{
    font-size:clamp(38px,12vw,62px);
  }
}


/* Contatti v4 — Admin GP Velo Cafe allineato a Home/Tappe */
.gpvc-page-admin .admin-preview img{
  max-width:320px;
  max-height:180px;
  object-fit:contain;
}

.gpvc-route-head,
.gpvc-route-row{
  grid-template-columns:1.4fr .8fr .8fr .8fr .8fr .8fr .8fr .65fr auto!important;
}

.gpvc-page-admin .stage-sponsor-row{
  grid-template-columns:1fr 1.2fr 1fr 1.2fr .65fr auto;
}

.gpvc-page-admin .stage-document-row,
.gpvc-page-admin .document-list-head{
  grid-template-columns:1fr 1.2fr 1fr 1.2fr .65fr auto;
}

@media(max-width:1100px){
  .gpvc-route-head,
  .gpvc-page-admin .document-list-head{
    display:none!important;
  }
  .gpvc-route-row,
  .gpvc-page-admin .stage-sponsor-row,
  .gpvc-page-admin .stage-document-row{
    grid-template-columns:1fr!important;
  }
}


/* Contatti v5 — dropdown Gare Giovanili funzionante anche full screen */
@media(min-width:1241px){
  body .unified-site-header,
  body .unified-site-header .header-shell,
  body .unified-site-header .header-right-area,
  body .unified-site-header .header-nav-row,
  body .unified-site-header .site-nav,
  body .unified-site-header .nav-dropdown{
    overflow:visible!important;
  }

  body .unified-site-header .nav-dropdown{
    position:relative!important;
    height:38px!important;
    display:flex!important;
    align-items:center!important;
    padding:0!important;
    margin:0!important;
  }

  body .unified-site-header .nav-dropdown::after{
    content:""!important;
    display:block!important;
    position:absolute!important;
    left:-22px!important;
    right:-22px!important;
    top:100%!important;
    height:18px!important;
    background:transparent!important;
    z-index:1004!important;
  }

  body .unified-site-header .nav-dropdown-box{
    position:absolute!important;
    top:100%!important;
    left:50%!important;
    transform:translateX(-50%) translateY(10px)!important;
    display:block!important;
    min-width:230px!important;
    padding:10px!important;
    background:#fff!important;
    border:1px solid rgba(23,23,23,.10)!important;
    border-radius:14px!important;
    box-shadow:0 18px 45px rgba(0,0,0,.16)!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    z-index:1005!important;
    transition:opacity .16s ease, visibility .16s ease, transform .16s ease!important;
  }

  body .unified-site-header .nav-dropdown:hover > .nav-dropdown-box,
  body .unified-site-header .nav-dropdown:focus-within > .nav-dropdown-box{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:translateX(-50%) translateY(0)!important;
  }

  body .unified-site-header .nav-dropdown-box a{
    display:block!important;
    padding:12px 14px!important;
    border-radius:10px!important;
    color:#171717!important;
    background:transparent!important;
    font-size:15px!important;
    line-height:1!important;
    text-align:left!important;
    white-space:nowrap!important;
  }

  body .unified-site-header .nav-dropdown-box a:hover{
    color:#D90824!important;
    background:#f6f6f6!important;
  }
}

/* Stile pagine Criterium Ambrì / GP Leventina */
.youth-single-hero{
  min-height:70vh;
  display:grid;
  align-items:center;
  padding:150px clamp(24px,7vw,110px) 90px;
  background:
    linear-gradient(105deg,rgba(255,255,255,.96),rgba(255,255,255,.65)),
    var(--youth-single-hero-img, radial-gradient(circle at 75% 20%,rgba(217,8,36,.25),transparent 36%)),
    #f6f6f6;
  background-size:cover;
  background-position:center;
  position:relative;
  overflow:hidden;
}
.youth-single-hero>div{
  position:relative;
  z-index:1;
  max-width:900px;
}
.youth-single-hero h1{
  font-size:clamp(58px,8vw,120px);
  line-height:.85;
  text-transform:uppercase;
  margin:12px 0 18px;
}
.youth-single-hero p{
  font-size:20px;
  max-width:680px;
}
.youth-race-admin .admin-preview img{
  max-width:320px;
  max-height:180px;
  object-fit:contain;
}
.youth-race-route-head,
.youth-race-route-row{
  grid-template-columns:1.4fr .8fr .8fr .8fr .8fr .8fr .8fr .65fr auto!important;
}
.youth-race-admin .stage-sponsor-row,
.youth-race-admin .stage-document-row,
.youth-race-admin .document-list-head{
  grid-template-columns:1fr 1.2fr 1fr 1.2fr .65fr auto!important;
}
@media(max-width:1100px){
  .youth-race-route-head,
  .youth-race-admin .document-list-head{
    display:none!important;
  }
  .youth-race-route-row,
  .youth-race-admin .stage-sponsor-row,
  .youth-race-admin .stage-document-row{
    grid-template-columns:1fr!important;
  }
}


/* Contatti v6 — sezioni classifiche gare singole */
.race-classifications-section{
  background:#fff;
  text-align:center;
}
.race-classifications-section h2{
  font-size:clamp(44px,6vw,86px);
  line-height:.9;
  text-transform:uppercase;
  margin:10px auto 18px;
  max-width:1050px;
}
.race-classifications-intro{
  max-width:760px;
  margin:0 auto 28px;
  color:#6F7377;
  font-size:18px;
  line-height:1.55;
}
.race-class-tabs{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:10px;
  margin:30px auto;
  max-width:1120px;
}
.race-class-tabs button{
  border:1px solid rgba(23,23,23,.14);
  background:#fff;
  color:#171717;
  border-radius:999px;
  padding:12px 18px;
  font-family:Rajdhani,system-ui,sans-serif;
  font-size:16px;
  line-height:1;
  font-weight:900;
  text-transform:uppercase;
  cursor:pointer;
}
.race-class-tabs button.active,
.race-class-tabs button:hover{
  background:#D90824;
  border-color:#D90824;
  color:#fff;
}
.race-class-panel{
  display:none;
  max-width:1120px;
  margin:0 auto;
  text-align:left;
}
.race-class-panel.active{
  display:block;
}
.race-class-panel h3{
  font-family:Rajdhani,system-ui,sans-serif;
  font-size:clamp(34px,4vw,56px);
  line-height:.95;
  text-transform:uppercase;
  margin:0 0 18px;
}
.race-class-table-wrap{
  overflow-x:auto;
  background:#fff;
  border-radius:18px;
  box-shadow:0 14px 36px rgba(0,0,0,.08);
  border:1px solid rgba(23,23,23,.08);
}
.race-class-table{
  width:100%;
  border-collapse:collapse;
}
.race-class-table th{
  background:#171717;
  color:#fff;
  text-align:left;
  padding:16px;
  font-family:Rajdhani,system-ui,sans-serif;
  font-size:17px;
  text-transform:uppercase;
}
.race-class-table td{
  padding:15px 16px;
  border-top:1px solid #eee;
  color:#171717;
}
.race-class-table td:first-child{
  color:#D90824;
  font-family:Rajdhani,system-ui,sans-serif;
  font-size:24px;
  font-weight:900;
}
.race-class-admin-table{
  display:grid;
  gap:10px;
  margin:18px 0 28px;
}
.race-class-admin-head,
.race-class-admin-row{
  display:grid;
  grid-template-columns:.65fr 1fr 1fr 1.2fr .7fr .65fr .65fr auto;
  gap:9px;
  align-items:center;
}
.race-class-admin-head{
  background:#171717;
  color:#fff;
  border-radius:10px;
  padding:12px;
  font-size:12px;
  text-transform:uppercase;
}
.race-class-admin-row{
  background:#fff;
  border:1px solid #eee;
  border-radius:12px;
  padding:12px;
}
@media(max-width:980px){
  .race-class-admin-head{
    display:none;
  }
  .race-class-admin-row{
    grid-template-columns:1fr;
  }
}


/* Contatti v7 — header loghi: Giro quadrato + Title Sponsor rettangolare */
body .unified-site-header{
  height:132px!important;
  min-height:132px!important;
  max-height:132px!important;
  background:#fff!important;
  border-bottom:0!important;
  overflow:visible!important;
  z-index:1200!important;
}

body .unified-site-header .header-shell{
  height:132px!important;
  min-height:132px!important;
  max-height:132px!important;
  display:grid!important;
  grid-template-columns:minmax(520px,auto) minmax(0,1fr)!important;
  align-items:center!important;
  gap:36px!important;
  padding:14px clamp(28px,4.8vw,78px)!important;
}

body .unified-site-header .header-left-logos{
  height:104px!important;
  min-height:104px!important;
  max-height:104px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:26px!important;
  overflow:visible!important;
  justify-self:start!important;
}

/* Logo Giro: a sinistra della linea, grande e quasi quadrato */
body .unified-site-header .brand{
  width:112px!important;
  height:104px!important;
  flex:0 0 112px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0!important;
  margin:0!important;
}

body .unified-site-header .brand img{
  display:block!important;
  width:auto!important;
  height:auto!important;
  max-width:100px!important;
  max-height:100px!important;
  object-fit:contain!important;
  margin:0!important;
}

/* Title sponsor: a destra della linea, scritta sopra + logo rettangolare */
body .unified-site-header .header-title-sponsor{
  height:82px!important;
  min-height:82px!important;
  max-height:82px!important;
  flex:0 0 300px!important;
  width:300px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:center!important;
  gap:8px!important;
  padding:0 0 0 26px!important;
  margin:0!important;
  border-left:1px solid rgba(23,23,23,.22)!important;
  text-decoration:none!important;
  color:#6F7377!important;
}

body .unified-site-header .header-title-sponsor span{
  display:block!important;
  width:100%!important;
  flex:0 0 auto!important;
  font-family:'Rajdhani',Arial,sans-serif!important;
  font-size:12px!important;
  line-height:1!important;
  font-weight:900!important;
  letter-spacing:.14em!important;
  text-transform:uppercase!important;
  color:#6F7377!important;
  white-space:nowrap!important;
  margin:0!important;
}

body .unified-site-header .header-title-sponsor img{
  display:block!important;
  width:auto!important;
  height:auto!important;
  max-width:260px!important;
  max-height:58px!important;
  object-fit:contain!important;
  margin:0!important;
}

/* Area menu invariata e allineata verticalmente */
body .unified-site-header .header-right-area{
  height:104px!important;
  min-height:104px!important;
  max-height:104px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-end!important;
  justify-content:center!important;
  gap:14px!important;
  justify-self:end!important;
}

body .unified-site-header .header-social-row{
  height:27px!important;
  min-height:27px!important;
  max-height:27px!important;
}

body .unified-site-header .header-nav-row{
  height:40px!important;
  min-height:40px!important;
  max-height:40px!important;
  overflow:visible!important;
}

body .unified-site-header .site-nav{
  height:40px!important;
  min-height:40px!important;
  max-height:40px!important;
  gap:16px!important;
  overflow:visible!important;
}

body .unified-site-header .site-nav a,
body .unified-site-header .nav-dropdown-main,
body .unified-site-header .site-nav .nav-signup{
  font-size:16px!important;
  line-height:1!important;
}

body .unified-site-header .site-nav .nav-signup{
  height:40px!important;
  padding:0 22px!important;
  background:#D90824!important;
  color:#fff!important;
  border:1px solid #D90824!important;
}

body .unified-site-header .site-nav .nav-signup:hover,
body .unified-site-header .site-nav .nav-signup:focus-visible{
  background:#fff!important;
  color:#D90824!important;
  border-color:#D90824!important;
}

/* Dropdown ancora visibile con header più alto */
@media(min-width:1241px){
  body .unified-site-header,
  body .unified-site-header .header-shell,
  body .unified-site-header .header-right-area,
  body .unified-site-header .header-nav-row,
  body .unified-site-header .site-nav,
  body .unified-site-header .nav-dropdown{
    overflow:visible!important;
  }
}

/* Tablet */
@media(max-width:1420px){
  body .unified-site-header .header-shell{
    grid-template-columns:minmax(470px,auto) minmax(0,1fr)!important;
    gap:24px!important;
    padding-left:30px!important;
    padding-right:30px!important;
  }

  body .unified-site-header .header-left-logos{
    gap:20px!important;
  }

  body .unified-site-header .brand{
    width:104px!important;
    flex-basis:104px!important;
  }

  body .unified-site-header .brand img{
    max-width:94px!important;
    max-height:94px!important;
  }

  body .unified-site-header .header-title-sponsor{
    width:270px!important;
    flex-basis:270px!important;
    padding-left:22px!important;
  }

  body .unified-site-header .header-title-sponsor img{
    max-width:235px!important;
    max-height:54px!important;
  }

  body .unified-site-header .site-nav{
    gap:12px!important;
  }

  body .unified-site-header .site-nav a,
  body .unified-site-header .nav-dropdown-main,
  body .unified-site-header .site-nav .nav-signup{
    font-size:15px!important;
  }
}

/* Burger */
@media(max-width:1240px){
  body .unified-site-header .header-shell{
    grid-template-columns:minmax(430px,auto) minmax(0,1fr)!important;
  }

  body .unified-site-header .header-burger{
    display:grid!important;
  }

  body .unified-site-header .site-nav{
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
  }
}

/* Mobile */
@media(max-width:760px){
  body .unified-site-header{
    height:96px!important;
    min-height:96px!important;
    max-height:96px!important;
  }

  body .unified-site-header .header-shell{
    height:96px!important;
    min-height:96px!important;
    max-height:96px!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:14px!important;
    padding:10px 18px!important;
  }

  body .unified-site-header .header-left-logos{
    height:72px!important;
    min-height:72px!important;
    max-height:72px!important;
    gap:12px!important;
  }

  body .unified-site-header .brand{
    width:72px!important;
    height:72px!important;
    flex-basis:72px!important;
  }

  body .unified-site-header .brand img{
    max-width:68px!important;
    max-height:68px!important;
  }

  body .unified-site-header .header-title-sponsor{
    width:170px!important;
    height:58px!important;
    min-height:58px!important;
    max-height:58px!important;
    flex-basis:170px!important;
    padding-left:12px!important;
    gap:5px!important;
  }

  body .unified-site-header .header-title-sponsor span{
    font-size:9px!important;
    letter-spacing:.10em!important;
  }

  body .unified-site-header .header-title-sponsor img{
    max-width:150px!important;
    max-height:38px!important;
  }

  body .unified-site-header .header-social-row{
    display:none!important;
  }

  body .unified-site-header .header-right-area{
    height:72px!important;
    min-height:72px!important;
    max-height:72px!important;
  }
}

@media(max-width:470px){
  body .unified-site-header .header-title-sponsor{
    display:none!important;
  }
}


/* Open Race v1 */
.open-race-section-intro{
  max-width:760px;
  margin:0 auto 32px;
  color:#6F7377;
  font-size:18px;
  line-height:1.55;
  text-align:center;
}

.open-race-card-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
}

.open-race-card{
  min-height:250px;
}

.open-race-card h3{
  font-size:clamp(34px,4vw,56px);
}

.open-race-classifications{
  background:#fff;
}

/* Header: nuovo link Open Race, leggero adattamento spazi su full screen */
@media(min-width:1241px){
  body .unified-site-header .site-nav{
    gap:13px!important;
  }
  body .unified-site-header .site-nav a,
  body .unified-site-header .nav-dropdown-main,
  body .unified-site-header .site-nav .nav-signup{
    font-size:15px!important;
  }
}

@media(max-width:980px){
  .open-race-card-grid{
    grid-template-columns:1fr;
  }
}


/* News v1 — pagina giornale sportivo */
.news-page-head{
  padding:150px clamp(24px,7vw,110px) 54px;
  background:#fff;
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:28px;
  border-bottom:1px solid rgba(23,23,23,.12);
  position:relative;
}
.news-page-head::after{
  content:"";
  position:absolute;
  left:clamp(24px,7vw,110px);
  right:clamp(24px,7vw,110px);
  bottom:0;
  height:5px;
  background:#D90824;
}
.news-page-head h1{
  margin:8px 0 6px;
  font-size:clamp(64px,10vw,140px);
  line-height:.8;
  text-transform:uppercase;
}
.news-page-head p{
  margin:0;
  font-family:Rajdhani,system-ui,sans-serif;
  font-size:clamp(26px,3.2vw,46px);
  line-height:.9;
  font-weight:900;
  text-transform:uppercase;
}
.news-page-head strong{
  font-family:Rajdhani,system-ui,sans-serif;
  font-size:18px;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:#D90824;
  white-space:nowrap;
}
.news-list-section{
  background:#fff;
}
.news-feature-card{
  display:grid;
  grid-template-columns:60% 40%;
  border:1px solid rgba(23,23,23,.14);
  background:#fff;
  margin-bottom:54px;
}
.news-feature-photo{
  display:block;
  min-height:440px;
  overflow:hidden;
}
.news-feature-photo img,
.news-card-photo img,
.home-news-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .35s ease;
}
.news-feature-card:hover img,
.news-card:hover img,
.home-news-main:hover img,
.home-news-small:hover img{
  transform:scale(1.035);
}
.news-feature-copy{
  padding:clamp(28px,4vw,58px);
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
}
.news-feature-copy span,
.news-card-copy span,
.home-news-layout span{
  font-family:Rajdhani,system-ui,sans-serif;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#D90824;
}
.news-feature-copy h2{
  margin:16px 0 18px;
  font-size:clamp(42px,5.8vw,86px);
  line-height:.85;
  text-transform:uppercase;
}
.news-feature-copy h2 a,
.news-card-copy h3 a,
.home-news-layout h3 a{
  color:#171717;
  text-decoration:none;
}
.news-feature-copy h2 a:hover,
.news-card-copy h3 a:hover,
.home-news-layout h3 a:hover{
  color:#D90824;
}
.news-feature-copy p{
  color:#555;
  font-size:18px;
  line-height:1.55;
}
.news-read-link{
  display:inline-flex;
  margin-top:16px;
  font-family:Rajdhani,system-ui,sans-serif;
  font-weight:900;
  text-transform:uppercase;
  color:#D90824;
  text-decoration:none;
}
.news-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:34px 28px;
}
.news-card{
  border-top:1px solid rgba(23,23,23,.18);
  border-bottom:1px solid rgba(23,23,23,.18);
  background:#fff;
}
.news-card.is-hidden{
  display:none;
}
.news-card-photo{
  display:block;
  aspect-ratio:16/10;
  overflow:hidden;
  border-bottom:1px solid rgba(23,23,23,.12);
}
.news-card-copy{
  padding:18px 0 20px;
}
.news-card-copy h3{
  margin:10px 0 10px;
  font-size:clamp(26px,2.6vw,38px);
  line-height:.92;
  text-transform:uppercase;
}
.news-card-copy p{
  color:#555;
  font-size:15px;
  line-height:1.5;
}
.news-load-more-wrap{
  margin-top:54px;
  padding-top:24px;
  border-top:1px solid rgba(23,23,23,.18);
  text-align:center;
}
.news-load-more-wrap span{
  display:block;
  margin-bottom:16px;
  font-family:Rajdhani,system-ui,sans-serif;
  font-size:34px;
  font-weight:900;
  text-transform:uppercase;
}
.news-load-more-wrap button{
  border:1px solid #D90824;
  background:#D90824;
  color:#fff;
  border-radius:999px;
  padding:14px 28px;
  font-family:Rajdhani,system-ui,sans-serif;
  font-size:18px;
  font-weight:900;
  text-transform:uppercase;
  cursor:pointer;
}
.news-load-more-wrap button:hover{
  background:#fff;
  color:#D90824;
}

/* Singolo articolo */
.news-article{
  max-width:1040px;
  margin:0 auto;
  padding:150px 24px 90px;
}
.news-article-head{
  max-width:930px;
  margin:0 auto;
}
.news-breadcrumb{
  font-family:Rajdhani,system-ui,sans-serif;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#D90824;
}
.news-article-head h1{
  margin:14px 0 16px;
  font-size:clamp(48px,7vw,96px);
  line-height:.86;
  text-transform:uppercase;
}
.news-article-head p{
  margin:0 0 18px;
  color:#555;
  font-size:22px;
  line-height:1.35;
}
.news-article-head time,
.news-author{
  display:inline-block;
  margin-right:14px;
  font-family:Rajdhani,system-ui,sans-serif;
  font-weight:900;
  text-transform:uppercase;
}
.news-article-line{
  height:1px;
  background:rgba(23,23,23,.18);
  margin:34px auto;
  max-width:930px;
}
.news-main-figure{
  margin:0 auto 38px;
  max-width:1040px;
}
.news-main-figure img{
  width:100%;
  max-height:620px;
  object-fit:cover;
  display:block;
}
.news-article-body{
  max-width:780px;
  margin:0 auto;
  font-size:20px;
  line-height:1.72;
  color:#252525;
}
.news-article-body h2,
.news-article-body h3{
  font-family:Rajdhani,system-ui,sans-serif;
  line-height:.95;
  text-transform:uppercase;
  margin:42px 0 14px;
}
.news-article-body h2{font-size:48px}
.news-article-body h3{font-size:34px}
.news-article-body blockquote{
  margin:34px 0;
  padding:22px 28px;
  border-left:5px solid #D90824;
  background:#f7f7f7;
  font-family:Rajdhani,system-ui,sans-serif;
  font-size:30px;
  line-height:1.05;
  font-weight:900;
  text-transform:uppercase;
}
.news-article-body a{
  color:#D90824;
  font-weight:800;
}
.news-internal-gallery{
  max-width:930px;
  margin:44px auto;
  display:grid;
  gap:34px;
}
.news-internal-gallery figure{
  margin:0;
}
.news-internal-gallery img{
  width:100%;
  display:block;
}
.news-internal-gallery figcaption{
  margin-top:8px;
  color:#6F7377;
  font-size:14px;
}
.news-video{
  max-width:930px;
  margin:44px auto;
  aspect-ratio:16/9;
  background:#171717;
}
.news-video iframe{
  width:100%;
  height:100%;
  border:0;
}
.news-pdf-box{
  max-width:780px;
  margin:34px auto;
}
.news-pdf-box a{
  display:inline-flex;
  padding:14px 20px;
  background:#D90824;
  color:#fff;
  border-radius:999px;
  font-family:Rajdhani,system-ui,sans-serif;
  font-weight:900;
  text-transform:uppercase;
  text-decoration:none;
}
.news-share{
  max-width:780px;
  margin:0 auto 30px;
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  align-items:center;
}
.news-share strong{
  font-family:Rajdhani,system-ui,sans-serif;
  font-size:22px;
  text-transform:uppercase;
}
.news-share a,
.news-back-link{
  color:#D90824;
  font-weight:900;
  text-decoration:none;
  text-transform:uppercase;
}
.news-back-link{
  display:block;
  max-width:780px;
  margin:0 auto;
  font-family:Rajdhani,system-ui,sans-serif;
}

/* Home ultime news */
.home-news-section{
  background:#fff;
}
.home-news-head{
  display:flex;
  justify-content:space-between;
  gap:24px;
  align-items:end;
  margin-bottom:34px;
}
.home-news-head h2{
  margin:8px 0 12px;
  font-size:clamp(44px,6vw,86px);
  line-height:.9;
  text-transform:uppercase;
}
.home-news-head p{
  max-width:680px;
  color:#6F7377;
}
.home-news-head>a{
  color:#D90824;
  font-family:Rajdhani,system-ui,sans-serif;
  font-weight:900;
  text-transform:uppercase;
  text-decoration:none;
  white-space:nowrap;
}
.home-news-layout{
  display:grid;
  grid-template-columns:2fr 1fr;
  gap:26px;
}
.home-news-main{
  grid-row:span 2;
  border-top:1px solid rgba(23,23,23,.18);
  border-bottom:1px solid rgba(23,23,23,.18);
}
.home-news-small{
  display:grid;
  grid-template-columns:42% 1fr;
  gap:18px;
  border-top:1px solid rgba(23,23,23,.18);
  padding-top:18px;
}
.home-news-photo{
  display:block;
  overflow:hidden;
  background:#f4f4f4;
}
.home-news-main .home-news-photo{
  aspect-ratio:16/9;
  margin-bottom:20px;
}
.home-news-small .home-news-photo{
  aspect-ratio:4/3;
}
.home-news-layout h3{
  margin:10px 0;
  font-family:Rajdhani,system-ui,sans-serif;
  font-size:clamp(28px,3.2vw,50px);
  line-height:.9;
  text-transform:uppercase;
}
.home-news-small h3{
  font-size:30px;
}
.home-news-main p{
  color:#555;
  max-width:720px;
}

/* Admin News */
.news-admin-top{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:18px;
}
.admin-button.dark{
  background:#171717!important;
}
.news-admin-cards{
  margin:18px 0 30px;
}
.news-dash-card{
  display:grid;
  gap:10px;
}
.news-dash-card strong{
  font-size:22px;
}
.news-dash-card span{
  color:#666;
  font-weight:600;
}
.dash-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:8px;
}
.news-admin-thumb{
  width:110px;
  height:70px;
  object-fit:cover;
  border-radius:4px;
  display:block;
}
.news-edit-form .admin-preview img{
  max-width:320px;
  max-height:190px;
  object-fit:cover;
}
.news-toolbar{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  padding:10px;
  background:#f7f7f7;
  border:1px solid #ddd;
  border-radius:10px 10px 0 0;
}
.news-toolbar button{
  border:1px solid #ddd;
  background:#fff;
  color:#171717;
  border-radius:7px;
  padding:8px 10px;
  font-weight:800;
  cursor:pointer;
}
.news-rich-editor{
  min-height:360px;
  background:#fff;
  border:1px solid #ddd;
  border-top:0;
  border-radius:0 0 10px 10px;
  padding:20px;
  font-size:18px;
  line-height:1.65;
  text-transform:none;
  font-family:Arial,system-ui,sans-serif;
}
.news-rich-editor h2,
.news-rich-editor h3{
  font-family:Rajdhani,Arial,sans-serif;
  text-transform:uppercase;
}
.news-photo-list{
  display:grid;
  gap:12px;
}
.news-photo-row{
  display:grid;
  grid-template-columns:140px 1fr .5fr .5fr auto;
  gap:12px;
  align-items:center;
  padding:12px;
  background:#fafafa;
  border:1px solid #eee;
  border-radius:12px;
}
.news-photo-row img{
  width:140px;
  height:90px;
  object-fit:cover;
  border-radius:6px;
}
.muted{
  color:#777;
}

@media(max-width:980px){
  .news-page-head,
  .home-news-head{
    display:block;
  }
  .news-page-head strong{
    display:block;
    margin-top:20px;
  }
  .news-feature-card,
  .home-news-layout,
  .home-news-small{
    grid-template-columns:1fr;
  }
  .news-feature-photo{
    min-height:0;
    aspect-ratio:16/10;
  }
  .news-grid{
    grid-template-columns:1fr;
  }
  .news-photo-row{
    grid-template-columns:1fr;
  }
  .news-photo-row img{
    width:100%;
    height:auto;
  }
}


/* Villaggio Gara v1 */
.village-hero,
.giro-night-hero{
  min-height:72vh;
  display:grid;
  align-items:center;
  padding:150px clamp(24px,7vw,110px) 90px;
  position:relative;
  overflow:hidden;
  background:
    linear-gradient(105deg,rgba(255,255,255,.96),rgba(255,255,255,.58)),
    var(--village-hero-img, radial-gradient(circle at 78% 20%,rgba(217,8,36,.24),transparent 36%)),
    #f6f6f6;
  background-size:cover;
  background-position:center;
}
.village-hero>div,
.giro-night-hero .night-slide>div{
  max-width:900px;
  position:relative;
  z-index:2;
}
.village-hero h1,
.giro-night-hero h1{
  font-size:clamp(58px,8vw,124px);
  line-height:.85;
  text-transform:uppercase;
  margin:12px 0 18px;
}
.village-hero p,
.giro-night-hero p{
  max-width:720px;
  font-size:20px;
  color:#333;
}
.village-section-intro{
  max-width:780px;
  margin:0 auto 34px;
  text-align:center;
  color:#6F7377;
  font-size:18px;
  line-height:1.55;
}
.village-map-section,
.village-companies-section{
  background:#fff;
  text-align:center;
}
.village-map-section h2,
.village-companies-section h2,
.giro-night-documents h2{
  font-size:clamp(44px,6vw,86px);
  line-height:.9;
  text-transform:uppercase;
  margin:10px auto 18px;
  max-width:1050px;
}
.village-map-layout{
  max-width:1180px;
  margin:0 auto;
  display:grid;
  grid-template-columns:280px 1fr;
  gap:26px;
  align-items:start;
}
.village-map-tabs{
  display:grid;
  gap:10px;
}
.village-map-tabs button{
  display:flex;
  align-items:center;
  gap:12px;
  border:1px solid rgba(23,23,23,.13);
  background:#fff;
  color:#171717;
  border-radius:0;
  padding:16px;
  font-family:Rajdhani,system-ui,sans-serif;
  font-size:20px;
  line-height:1;
  font-weight:900;
  text-transform:uppercase;
  cursor:pointer;
  text-align:left;
}
.village-map-tabs button span{
  color:#D90824;
}
.village-map-tabs button.active,
.village-map-tabs button:hover{
  background:#171717;
  color:#fff;
  border-color:#171717;
}
.village-map-view{
  border:1px solid rgba(23,23,23,.13);
  background:#fff;
  box-shadow:0 18px 50px rgba(0,0,0,.08);
}
.village-map-panel{
  display:none;
}
.village-map-panel.active{
  display:block;
}
.village-map-panel img{
  width:100%;
  display:block;
}
.village-map-caption{
  padding:24px;
  text-align:left;
  border-top:1px solid rgba(23,23,23,.12);
}
.village-map-caption h3{
  margin:0 0 8px;
  font-family:Rajdhani,system-ui,sans-serif;
  font-size:36px;
  text-transform:uppercase;
}
.village-map-caption p{
  margin:0;
  color:#6F7377;
}
.village-company-grid{
  max-width:1180px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:18px;
}
.village-company-card{
  min-height:190px;
  padding:22px;
  background:#fff;
  border:1px solid rgba(23,23,23,.13);
  color:#171717;
  text-decoration:none;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:12px;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.village-company-card:hover{
  transform:translateY(-4px);
  box-shadow:0 18px 44px rgba(0,0,0,.10);
  border-color:#D90824;
}
.village-company-card div{
  height:76px;
  display:grid;
  place-items:center;
}
.village-company-card img{
  max-width:150px;
  max-height:70px;
  object-fit:contain;
}
.village-company-card h3{
  margin:0;
  font-family:Rajdhani,system-ui,sans-serif;
  font-size:26px;
  line-height:1;
  text-transform:uppercase;
}
.village-company-card p{
  margin:0;
  color:#6F7377;
  font-size:14px;
  line-height:1.35;
}

/* Ambrì Giro Night */
.giro-night-hero{
  padding:0;
  background:#171717;
  min-height:76vh;
}
.night-slide{
  display:none;
  min-height:76vh;
  align-items:center;
  padding:150px clamp(24px,7vw,110px) 90px;
  background:
    linear-gradient(105deg,rgba(23,23,23,.88),rgba(23,23,23,.38)),
    var(--night-slide-img, radial-gradient(circle at 75% 20%,rgba(217,8,36,.38),transparent 36%)),
    #171717;
  background-size:cover;
  background-position:center;
  color:#fff;
}
.night-slide.active{
  display:grid;
}
.night-slide p{
  color:rgba(255,255,255,.86);
}
.night-slider-controls{
  position:absolute;
  left:clamp(24px,7vw,110px);
  bottom:32px;
  z-index:5;
  display:flex;
  gap:10px;
}
.night-slider-controls button{
  width:48px;
  height:42px;
  border:1px solid rgba(255,255,255,.38);
  background:rgba(255,255,255,.08);
  color:#fff;
  font-family:Rajdhani,system-ui,sans-serif;
  font-weight:900;
  cursor:pointer;
}
.night-slider-controls button.active,
.night-slider-controls button:hover{
  background:#D90824;
  border-color:#D90824;
}
.giro-night-actions{
  background:#fff;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:28px;
}
.night-action-card{
  border:1px solid rgba(23,23,23,.13);
  padding:clamp(28px,4vw,52px);
  background:#fff;
}
.night-action-card h2{
  margin:10px 0 18px;
  font-size:clamp(42px,5vw,74px);
  line-height:.88;
  text-transform:uppercase;
}
.night-action-card p{
  color:#555;
  font-size:18px;
  line-height:1.55;
  margin-bottom:24px;
}
.giro-night-documents{
  background:#fff;
  text-align:center;
}

/* Admin villaggio */
.village-admin .admin-preview img{
  max-width:320px;
  max-height:190px;
  object-fit:cover;
}
.village-admin-list{
  display:grid;
  gap:14px;
}
.village-admin-card{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  padding:16px;
  border:1px solid #e5e5e5;
  border-radius:14px;
  background:#fff;
}
.village-admin-card h3{
  grid-column:1/-1;
  margin:0;
  font-family:Rajdhani,Arial,sans-serif;
  font-size:26px;
  text-transform:uppercase;
}
.village-admin-card .full-row{
  grid-column:1/-1;
}
.village-admin .stage-document-row{
  grid-template-columns:1fr 1.2fr 1fr 1.2fr .65fr auto;
}

@media(max-width:980px){
  .village-map-layout,
  .giro-night-actions,
  .village-admin-card{
    grid-template-columns:1fr;
  }
  .village-map-tabs{
    grid-template-columns:1fr;
  }
}


/* Header Villaggio Gara dropdown v1 */
@media(min-width:1241px){
  body .unified-site-header .nav-dropdown{
    position:relative!important;
    height:40px!important;
    display:flex!important;
    align-items:center!important;
    overflow:visible!important;
  }

  body .unified-site-header .nav-dropdown-main{
    display:flex!important;
    align-items:center!important;
    height:40px!important;
    color:#171717!important;
    text-decoration:none!important;
    cursor:pointer!important;
  }

  body .unified-site-header .nav-dropdown-main::after{
    content:"▾";
    display:inline-block;
    margin-left:6px;
    font-size:11px;
    color:#D90824;
    transform:translateY(-1px);
  }

  body .unified-site-header .nav-dropdown-box{
    position:absolute!important;
    top:100%!important;
    left:50%!important;
    transform:translateX(-50%) translateY(10px)!important;
    min-width:230px!important;
    padding:10px!important;
    background:#fff!important;
    border:1px solid rgba(23,23,23,.10)!important;
    border-radius:14px!important;
    box-shadow:0 18px 45px rgba(0,0,0,.16)!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    z-index:1500!important;
    transition:opacity .16s ease, visibility .16s ease, transform .16s ease!important;
  }

  body .unified-site-header .nav-dropdown:hover > .nav-dropdown-box,
  body .unified-site-header .nav-dropdown:focus-within > .nav-dropdown-box{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:translateX(-50%) translateY(0)!important;
  }

  body .unified-site-header .nav-dropdown-box a{
    display:block!important;
    height:auto!important;
    min-height:0!important;
    padding:12px 14px!important;
    border-radius:10px!important;
    color:#171717!important;
    background:transparent!important;
    font-family:'Rajdhani',Arial,sans-serif!important;
    font-size:15px!important;
    line-height:1!important;
    font-weight:900!important;
    text-transform:uppercase!important;
    text-align:left!important;
    white-space:nowrap!important;
  }

  body .unified-site-header .nav-dropdown-box a:hover{
    color:#D90824!important;
    background:#f6f6f6!important;
  }
}

/* Mobile/burger: il dropdown diventa un piccolo gruppo verticale */
@media(max-width:1240px){
  body .unified-site-header .nav-dropdown{
    width:100%!important;
    display:grid!important;
    gap:6px!important;
  }

  body .unified-site-header .nav-dropdown-main{
    width:100%!important;
  }

  body .unified-site-header .nav-dropdown-box{
    position:static!important;
    display:grid!important;
    width:100%!important;
    min-width:0!important;
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:none!important;
    box-shadow:none!important;
    border:0!important;
    border-radius:0!important;
    padding:0 0 0 14px!important;
    background:transparent!important;
  }

  body .unified-site-header .nav-dropdown-box a{
    color:#6F7377!important;
    padding:8px 0!important;
    font-size:15px!important;
  }

  body .unified-site-header .nav-dropdown-box a:hover{
    color:#D90824!important;
    background:transparent!important;
  }
}


/* Header Villaggio Gara dropdown v2 — voce forzata e visibile */
@media(min-width:1241px){
  body .unified-site-header .header-shell{
    grid-template-columns:minmax(470px,auto) minmax(0,1fr)!important;
    gap:26px!important;
  }

  body .unified-site-header .header-left-logos{
    max-width:500px!important;
  }

  body .unified-site-header .header-right-area{
    min-width:0!important;
  }

  body .unified-site-header .site-nav{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    flex-wrap:nowrap!important;
    gap:12px!important;
    width:100%!important;
    overflow:visible!important;
  }

  body .unified-site-header .site-nav > a,
  body .unified-site-header .nav-dropdown-main,
  body .unified-site-header .site-nav .nav-signup{
    font-size:14px!important;
    letter-spacing:.01em!important;
    white-space:nowrap!important;
  }

  body .unified-site-header .nav-dropdown{
    position:relative!important;
    display:flex!important;
    align-items:center!important;
    height:40px!important;
    flex:0 0 auto!important;
    overflow:visible!important;
  }

  body .unified-site-header .nav-dropdown-main{
    display:flex!important;
    align-items:center!important;
    height:40px!important;
    color:#171717!important;
    text-decoration:none!important;
  }

  body .unified-site-header .nav-dropdown-main::after{
    content:"";
    width:0;
    height:0;
    border-left:4px solid transparent;
    border-right:4px solid transparent;
    border-top:5px solid #D90824;
    margin-left:7px;
    transform:translateY(1px);
  }

  body .unified-site-header .nav-dropdown-box{
    position:absolute!important;
    top:100%!important;
    left:50%!important;
    transform:translateX(-50%) translateY(10px)!important;
    display:block!important;
    min-width:230px!important;
    padding:10px!important;
    background:#fff!important;
    border:1px solid rgba(23,23,23,.10)!important;
    border-radius:14px!important;
    box-shadow:0 18px 45px rgba(0,0,0,.16)!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    z-index:2000!important;
    transition:opacity .16s ease, visibility .16s ease, transform .16s ease!important;
  }

  body .unified-site-header .nav-dropdown:hover > .nav-dropdown-box,
  body .unified-site-header .nav-dropdown:focus-within > .nav-dropdown-box{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:translateX(-50%) translateY(0)!important;
  }

  body .unified-site-header .nav-dropdown-box a{
    display:block!important;
    padding:12px 14px!important;
    border-radius:10px!important;
    color:#171717!important;
    background:transparent!important;
    font-family:'Rajdhani',Arial,sans-serif!important;
    font-size:15px!important;
    line-height:1!important;
    font-weight:900!important;
    text-transform:uppercase!important;
    text-align:left!important;
    white-space:nowrap!important;
    text-decoration:none!important;
  }

  body .unified-site-header .nav-dropdown-box a:hover{
    color:#D90824!important;
    background:#f6f6f6!important;
  }

  body .unified-site-header .site-nav .nav-signup{
    height:40px!important;
    padding:0 20px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
  }
}

@media(min-width:1241px) and (max-width:1500px){
  body .unified-site-header .header-shell{
    grid-template-columns:minmax(420px,auto) minmax(0,1fr)!important;
    gap:18px!important;
    padding-left:22px!important;
    padding-right:22px!important;
  }

  body .unified-site-header .brand{
    width:94px!important;
    flex-basis:94px!important;
  }

  body .unified-site-header .brand img{
    max-width:86px!important;
    max-height:86px!important;
  }

  body .unified-site-header .header-title-sponsor{
    width:260px!important;
    flex-basis:260px!important;
    padding-left:18px!important;
  }

  body .unified-site-header .header-title-sponsor img{
    max-width:230px!important;
    max-height:50px!important;
  }

  body .unified-site-header .site-nav{
    gap:9px!important;
  }

  body .unified-site-header .site-nav > a,
  body .unified-site-header .nav-dropdown-main,
  body .unified-site-header .site-nav .nav-signup{
    font-size:13px!important;
  }

  body .unified-site-header .site-nav .nav-signup{
    padding:0 16px!important;
  }
}

/* Burger: menu a tendina sempre leggibile sotto la voce principale */
@media(max-width:1240px){
  body .unified-site-header .nav-dropdown{
    width:100%!important;
    display:grid!important;
    gap:4px!important;
  }

  body .unified-site-header .nav-dropdown-main{
    width:100%!important;
  }

  body .unified-site-header .nav-dropdown-box{
    position:static!important;
    display:grid!important;
    width:100%!important;
    min-width:0!important;
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:none!important;
    box-shadow:none!important;
    border:0!important;
    border-radius:0!important;
    padding:0 0 0 16px!important;
    background:transparent!important;
  }

  body .unified-site-header .nav-dropdown-box a{
    color:#6F7377!important;
    padding:8px 0!important;
    font-size:15px!important;
    text-decoration:none!important;
    text-transform:uppercase!important;
    font-weight:900!important;
  }
}


/* Header Villaggio Gara dropdown v3 — font +2px e burger fix */
@media(min-width:1501px){
  body .unified-site-header .site-nav{
    gap:13px!important;
  }

  body .unified-site-header .site-nav > a,
  body .unified-site-header .nav-dropdown-main,
  body .unified-site-header .site-nav .nav-signup{
    font-size:16px!important;
  }

  body .unified-site-header .nav-dropdown-box a{
    font-size:16px!important;
  }
}

@media(min-width:1241px) and (max-width:1500px){
  body .unified-site-header .site-nav{
    gap:8px!important;
  }

  body .unified-site-header .site-nav > a,
  body .unified-site-header .nav-dropdown-main,
  body .unified-site-header .site-nav .nav-signup{
    font-size:15px!important;
  }

  body .unified-site-header .nav-dropdown-box a{
    font-size:15px!important;
  }

  body .unified-site-header .site-nav .nav-signup{
    padding:0 14px!important;
  }
}

/* Versione stretta: le 3 lineette aprono davvero il menu */
@media(max-width:1240px){
  body .unified-site-header,
  body .unified-site-header .header-shell,
  body .unified-site-header .header-right-area,
  body .unified-site-header .header-nav-row{
    overflow:visible!important;
  }

  body .unified-site-header .header-nav-row{
    position:relative!important;
  }

  body .unified-site-header .header-burger{
    display:grid!important;
    position:relative!important;
    z-index:3002!important;
    flex:0 0 44px!important;
  }

  body .unified-site-header .site-nav{
    position:absolute!important;
    top:calc(100% + 14px)!important;
    right:0!important;
    left:auto!important;
    width:min(360px, calc(100vw - 36px))!important;
    min-width:0!important;
    max-width:calc(100vw - 36px)!important;
    height:auto!important;
    min-height:0!important;
    max-height:calc(100vh - 120px)!important;
    overflow-y:auto!important;
    display:none!important;
    flex-direction:column!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    gap:4px!important;
    padding:16px!important;
    background:#fff!important;
    border:1px solid rgba(23,23,23,.12)!important;
    border-radius:18px!important;
    box-shadow:0 22px 60px rgba(0,0,0,.22)!important;
    z-index:3001!important;
  }

  body .unified-site-header .site-nav.open{
    display:flex!important;
  }

  body .unified-site-header .site-nav > a,
  body .unified-site-header .nav-dropdown-main{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    width:100%!important;
    height:auto!important;
    min-height:42px!important;
    padding:12px 14px!important;
    color:#171717!important;
    background:transparent!important;
    border-radius:10px!important;
    font-size:17px!important;
    line-height:1!important;
    text-decoration:none!important;
    box-sizing:border-box!important;
  }

  body .unified-site-header .site-nav > a:hover,
  body .unified-site-header .nav-dropdown-main:hover{
    background:#f5f5f5!important;
    color:#D90824!important;
  }

  body .unified-site-header .nav-dropdown{
    display:grid!important;
    width:100%!important;
    height:auto!important;
    gap:4px!important;
  }

  body .unified-site-header .nav-dropdown-main::after{
    content:"▾"!important;
    display:inline-block!important;
    margin-left:8px!important;
    color:#D90824!important;
    font-size:13px!important;
    border:0!important;
    width:auto!important;
    height:auto!important;
  }

  body .unified-site-header .nav-dropdown-box{
    position:static!important;
    display:none!important;
    width:100%!important;
    min-width:0!important;
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:none!important;
    box-shadow:none!important;
    border:0!important;
    border-radius:12px!important;
    padding:6px 0 6px 14px!important;
    background:#f7f7f7!important;
    box-sizing:border-box!important;
  }

  body .unified-site-header .nav-dropdown.open > .nav-dropdown-box{
    display:grid!important;
  }

  body .unified-site-header .nav-dropdown-box a{
    display:block!important;
    padding:10px 12px!important;
    color:#6F7377!important;
    background:transparent!important;
    font-size:15px!important;
    line-height:1!important;
    font-weight:900!important;
    text-decoration:none!important;
    text-transform:uppercase!important;
  }

  body .unified-site-header .nav-dropdown-box a:hover{
    color:#D90824!important;
  }

  body .unified-site-header .site-nav .nav-signup{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    min-height:44px!important;
    margin-top:6px!important;
    background:#D90824!important;
    color:#fff!important;
    border:1px solid #D90824!important;
    border-radius:999px!important;
  }

  body .unified-site-header .site-nav .nav-signup:hover{
    background:#fff!important;
    color:#D90824!important;
  }
}

/* Ristoranti e buvette v1 */
.coming-soon-page{
  min-height:68vh;
  display:grid;
  align-items:center;
  padding:150px clamp(24px,7vw,110px) 90px;
  background:
    linear-gradient(105deg,rgba(255,255,255,.96),rgba(255,255,255,.72)),
    radial-gradient(circle at 78% 20%,rgba(217,8,36,.18),transparent 36%),
    #f6f6f6;
}
.coming-soon-page>div{max-width:900px;}
.coming-soon-page h1{
  margin:12px 0 18px;
  font-size:clamp(58px,8vw,120px);
  line-height:.85;
  text-transform:uppercase;
}
.coming-soon-page p{
  max-width:640px;
  font-size:22px;
  color:#444;
}
