@import url('https://fonts.googleapis.com/css2?family=Anton&family=Archivo:wght@400;500;600;700;800&display=swap');

/* la pagina parte dal bordo dello schermo: il margine predefinito del body
   disegnava una cornice bianca su tutti e quattro i lati */
html,body{margin:0;padding:0;}
body{background:#15161A;}

/* =========================================================
   COOLTURA ON THE ROAD — sistema visivo 2026
   Tutto è scoped dentro .ctr per non toccare il tema/Elementor
   ========================================================= */

.ctr{
  --giallo:#EAC735;
  --giallo-scuro:#C9A61F;
  --rosso:#CF2034;
  --rosso-scuro:#A4182A;
  --teal:#0F6B77;
  --asfalto:#15161A;
  --asfalto-2:#22242B;
  --crema:#FFF7E9;
  --crema-2:#F3E7D0;
  --testo:#15161A;
  --testo-chiaro:#FFF7E9;
  --bordo:3px solid #15161A;
  --ombra:6px 6px 0 #15161A;
  --ombra-sm:4px 4px 0 #15161A;
  --raggio:14px;
  --max:1180px;

  font-family:'Archivo',system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  color:var(--testo);
  line-height:1.68;
  font-size:17.5px;
  -webkit-font-smoothing:antialiased;
}

.ctr *,.ctr *::before,.ctr *::after{box-sizing:border-box;}
.ctr{overflow-x:hidden;}
.ctr :where(p,h1,h2,h3,h4,ul,ol,figure){margin:0;padding:0;}
.ctr ul,.ctr ol{list-style:none;}
.ctr img{max-width:100%;display:block;}
/* i link ereditano il colore, TRANNE i bottoni che hanno il proprio */
.ctr a:not([class*="ctr-btn"]){color:inherit;text-decoration:none;}
.ctr a[class*="ctr-btn"]{text-decoration:none;}

/* ---------- tipografia ---------- */
.ctr h1,.ctr h2,.ctr h3,.ctr .ctr-display{
  font-family:'Anton','Archivo',Impact,sans-serif;
  font-weight:400;
  text-transform:uppercase;
  line-height:.95;
  letter-spacing:.01em;
}
.ctr h1,.ctr h2,.ctr h3{overflow-wrap:break-word;}
.ctr h1{font-size:clamp(2.6rem,7vw,5.4rem);}
.ctr h2{font-size:clamp(2rem,4.6vw,3.4rem);}
.ctr h3{font-size:clamp(1.25rem,2.2vw,1.7rem);}
.ctr .ctr-lead{font-size:clamp(1.05rem,1.6vw,1.3rem);line-height:1.55;}
.ctr .ctr-giallo{color:var(--giallo);}
.ctr .ctr-rosso{color:var(--rosso);}

/* evidenziatore a pennarello */
.ctr mark,.ctr .ctr-evid{
  background:linear-gradient(180deg,transparent 55%,var(--giallo) 55%);
  color:inherit;padding:0 .08em;
}

/* ---------- struttura ---------- */
.ctr-sez{padding:clamp(74px,8vw,132px) 20px;position:relative;}
.ctr-wrap{max-width:var(--max);margin:0 auto;}
.ctr-sez--crema{background:var(--crema);}
.ctr-sez--crema2{background:var(--crema-2);}
.ctr-sez--scuro{background:var(--asfalto);color:var(--testo-chiaro);}
.ctr-sez--giallo{background:var(--giallo);}
.ctr-sez--scuro h1,.ctr-sez--scuro h2,.ctr-sez--scuro h3{color:#fff;}
/* le card chiare dentro una sezione scura tengono il testo scuro */
.ctr-sez--scuro .ctr-card:not(.ctr-card--teal):not(.ctr-card--rosso) h3,
.ctr-sez--scuro .ctr-prog h3,.ctr-sez--scuro .ctr-target:not(.ctr-target--a) h3{color:var(--asfalto);}

.ctr-occhiello{
  display:flex;align-items:center;gap:12px;line-height:1.1;
  font-size:.78rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;
  background:none;color:var(--rosso);padding:0;margin:0 0 26px;
}
.ctr-occhiello::before{content:"";display:block;width:30px;height:3px;background:currentColor;flex:none;}
.ctr-sez--scuro .ctr-occhiello,.ctr-hero .ctr-occhiello{color:var(--giallo);}
.ctr-sez--giallo .ctr-occhiello{color:var(--asfalto);}
.ctr-cta .ctr-occhiello{color:#fff;justify-content:center;}

.ctr-intro{max-width:760px;margin-bottom:clamp(40px,4.5vw,64px);}
.ctr-intro p{margin-top:16px;font-size:1.08rem;}

/* ---------- bottoni ---------- */
.ctr-btn{
  display:inline-flex;align-items:center;gap:10px;
  font-weight:800;font-size:.98rem;letter-spacing:.02em;text-transform:uppercase;
  padding:16px 30px;line-height:1.1;border:var(--bordo);border-radius:999px;
  background:var(--giallo);color:var(--asfalto);
  box-shadow:var(--ombra-sm);
  transition:transform .12s ease,box-shadow .12s ease;
  cursor:pointer;
}
.ctr-btn:hover{transform:translate(-2px,-2px);box-shadow:7px 7px 0 var(--asfalto);}
.ctr-btn--rosso{background:var(--rosso);color:#fff;}
.ctr-btn--bianco{background:#fff;}
.ctr-btn--ghost{background:transparent;color:inherit;box-shadow:none;border-color:currentColor;}
.ctr-btn--ghost:hover{box-shadow:none;transform:translateX(3px);}
.ctr-azioni{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px;}

/* ---------- HERO ---------- */
.ctr-hero{
  background:var(--asfalto);color:var(--testo-chiaro);
  padding:clamp(72px,9vw,130px) 20px clamp(52px,6vw,84px);
  position:relative;overflow:hidden;
}
.ctr-hero::after{
  content:"";position:absolute;inset:0;z-index:0;
  background:#15161A url('/assets/img/foto/hero.jpg') center 62%/cover no-repeat;
  opacity:.34;
}
.ctr-hero::before{
  content:"";position:absolute;inset:0;z-index:1;
  background:
    radial-gradient(rgba(255,255,255,.07) 1px,transparent 1px),
    linear-gradient(100deg,rgba(21,22,26,.94) 0%,rgba(21,22,26,.78) 45%,rgba(21,22,26,.55) 100%);
  background-size:22px 22px,auto;pointer-events:none;
}
.ctr-hero__in{z-index:2;}
/* pagine interne: niente foto, solo il fondo asfalto */
.ctr-hero--liscio::after{display:none;}
.ctr-hero__in{position:relative;max-width:var(--max);margin:0 auto;}
.ctr-hero h1{color:#fff;margin:14px 0 0;}
.ctr-hero h1 em{font-style:normal;color:var(--giallo);}
.ctr-hero__sub{max-width:640px;margin-top:24px;color:#E6DFD2;font-size:clamp(1.05rem,1.7vw,1.3rem);}
.ctr-hero__badge{
  display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap;
  font-size:.8rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;
  color:var(--giallo);
}
.ctr-hero__badge span{width:8px;height:8px;background:var(--rosso);border-radius:50%;}
/* credenziali sotto l'hero */
.ctr .ctr-cred__occhiello{
  margin:clamp(56px,7vw,86px) 0 18px;
  display:flex;align-items:center;gap:12px;line-height:1.1;
  font-size:.74rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--giallo);
}
.ctr-cred__occhiello::before{content:"";display:block;width:30px;height:3px;background:currentColor;flex:none;}
.ctr-cred{
  display:grid;gap:14px;
  grid-template-columns:repeat(auto-fit,minmax(min(250px,100%),1fr));
}
.ctr-cred li{
  padding:22px 22px 20px;
  background:rgba(255,255,255,.055);
  border:2px solid rgba(255,255,255,.14);
  border-top:4px solid var(--giallo);
  border-radius:12px;
  transition:background .14s ease,border-color .14s ease;
}
.ctr-cred li:hover{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.26);border-top-color:var(--giallo);}
.ctr-cred__ico{
  display:grid;place-items:center;width:38px;height:38px;margin-bottom:14px;
  border-radius:10px;background:var(--giallo);color:var(--asfalto);
}
.ctr-cred__ico svg{width:21px;height:21px;display:block;}
.ctr-cred b{
  display:block;font-family:'Anton',Impact,sans-serif;font-weight:400;
  text-transform:uppercase;letter-spacing:.02em;font-size:1.12rem;color:#fff;
  line-height:1.1;
}
.ctr-cred__d{display:block;margin-top:9px;font-size:.87rem;color:#B9B2A5;line-height:1.5;}

/* elenco tipografico delle città */
.ctr-citta{
  display:flex;flex-wrap:wrap;align-items:baseline;
  font-family:'Anton',Impact,sans-serif;text-transform:uppercase;
  font-size:clamp(1.05rem,2vw,1.55rem);line-height:1.35;letter-spacing:.01em;
}
.ctr-citta li::after{content:"·";color:var(--rosso);margin:0 .45em;}
.ctr-citta li:last-child::after{content:none;}
.ctr-citta li.ctr-citta--altro{color:var(--rosso);}
.ctr-citta__coda{margin-top:18px;font-size:1rem;font-weight:600;}

/* strada sotto l'hero */
.ctr-strada{height:26px;background:#3A3D45;position:relative;}
.ctr-strada::after{
  content:"";position:absolute;top:50%;left:0;right:0;height:4px;transform:translateY(-50%);
  background:repeating-linear-gradient(90deg,var(--giallo) 0 44px,transparent 44px 84px);
}

/* ---------- video / trailer ---------- */
.ctr-video{
  position:relative;aspect-ratio:16/9;width:100%;
  border:var(--bordo);border-radius:var(--raggio);overflow:hidden;
  box-shadow:8px 8px 0 var(--giallo);
  background:#0E0F12 url('/assets/img/foto/trailer-poster.jpg') center/cover no-repeat;
}
.ctr-video::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(140deg,rgba(207,32,52,.38),rgba(21,22,26,.62));
}
.ctr-video iframe,.ctr-video #ctr-yt{position:absolute;inset:0;width:100%;height:100%;border:0;}
.ctr-video__play{
  position:absolute;inset:0;width:100%;height:100%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;
  background:transparent;border:0;cursor:pointer;padding:0;
}
.ctr-video__rivedi{
  display:none;
  font-family:'Anton',Impact,sans-serif;text-transform:uppercase;letter-spacing:.08em;
  font-size:1rem;color:var(--asfalto);background:var(--giallo);
  padding:7px 18px;border:3px solid var(--asfalto);border-radius:999px;
  box-shadow:3px 3px 0 var(--asfalto);
}
.ctr-video--finito .ctr-video__rivedi{display:block;}
.ctr-video__fallback{
  display:none;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  background:var(--giallo);color:var(--asfalto);font-weight:800;font-size:.92rem;
  letter-spacing:.02em;text-align:center;
  padding:14px 24px;border:3px solid var(--asfalto);border-radius:999px;
  box-shadow:4px 4px 0 var(--asfalto);max-width:86%;z-index:2;
}
.ctr-video--errore .ctr-video__fallback{display:block;}
.ctr-video--errore .ctr-video__play{display:none;}
.ctr-video__tri{
  width:88px;height:88px;border-radius:50%;
  background:var(--giallo);border:4px solid var(--asfalto);
  box-shadow:5px 5px 0 var(--asfalto);
  display:grid;place-items:center;
  transition:transform .15s ease;
}
.ctr-video__tri::after{
  content:"";display:block;margin-left:7px;
  border-left:26px solid var(--asfalto);
  border-top:16px solid transparent;border-bottom:16px solid transparent;
}
.ctr-video__play:hover .ctr-video__tri{transform:scale(1.08);}
.ctr-video__play:focus-visible{outline:4px solid var(--giallo);outline-offset:-6px;}
.ctr-video__eti{
  position:absolute;left:0;bottom:0;pointer-events:none;
  background:var(--asfalto);color:var(--giallo);
  font-family:'Anton',Impact,sans-serif;text-transform:uppercase;letter-spacing:.04em;
  font-size:.95rem;padding:8px 16px;border-top:var(--bordo);border-right:var(--bordo);
  border-radius:0 12px 0 0;
}
@media(max-width:520px){.ctr-video__tri{width:66px;height:66px;}}

/* ---------- pellicola cinematografica ---------- */
.ctr-pellicola{
  background:#0C0D10;position:relative;overflow:hidden;
  padding:22px 0;border-top:3px solid var(--asfalto);border-bottom:3px solid var(--asfalto);
}
/* perforazioni sopra e sotto */
.ctr-pellicola::before,.ctr-pellicola::after{
  content:"";position:absolute;left:0;right:0;height:18px;z-index:2;
  background:repeating-linear-gradient(90deg,
    transparent 0 9px,#EFE9DC 9px 23px,transparent 23px 32px);
  -webkit-mask:repeating-linear-gradient(90deg,transparent 0 9px,#000 9px 23px,transparent 23px 32px);
  opacity:.9;
}
.ctr-pellicola::before{top:0;}
.ctr-pellicola::after{bottom:0;}
.ctr-pellicola__track{
  display:flex;gap:6px;width:max-content;
  animation:ctr-pellicola 70s linear infinite;
}
.ctr-pellicola:hover .ctr-pellicola__track{animation-play-state:paused;}
.ctr-pellicola figure{
  margin:0;flex:none;width:190px;border-left:3px solid #0C0D10;border-right:3px solid #0C0D10;
}
.ctr-pellicola img{
  width:190px;height:143px;object-fit:cover;display:block;
  filter:saturate(.9) contrast(1.05);
}
@keyframes ctr-pellicola{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.ctr-pellicola__track{animation:none;}}
@media(max-width:600px){
  .ctr-pellicola figure,.ctr-pellicola img{width:132px;}
  .ctr-pellicola img{height:99px;}
}
.ctr-pellicola__dida{
  text-align:center;color:#8F897E;font-size:.82rem;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;padding:16px 20px 0;background:#0C0D10;
}
/* ---------- marquee ---------- */
.ctr-marquee{
  background:var(--giallo);border-top:var(--bordo);border-bottom:var(--bordo);
  overflow:hidden;padding:14px 0;
}
.ctr-marquee__track{
  display:flex;gap:34px;width:max-content;
  animation:ctr-scroll 34s linear infinite;
}
.ctr-marquee span{
  font-family:'Anton',sans-serif;text-transform:uppercase;font-size:1.35rem;
  letter-spacing:.04em;white-space:nowrap;color:var(--asfalto);
}
.ctr-marquee span::after{content:"●";color:var(--rosso);margin-left:34px;font-size:.7em;vertical-align:middle;}
@keyframes ctr-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.ctr-marquee__track{animation:none;}}

/* ---------- griglie ---------- */
.ctr-grid{display:grid;gap:26px;}
.ctr-grid--2{grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));}
.ctr-grid--3{grid-template-columns:repeat(auto-fit,minmax(min(290px,100%),1fr));}
.ctr-grid--4{grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));}

/* ---------- card ---------- */
.ctr-card{
  background:#fff;border:var(--bordo);border-radius:var(--raggio);
  padding:34px 32px;box-shadow:var(--ombra);
  display:flex;flex-direction:column;gap:16px;
  transition:transform .14s ease,box-shadow .14s ease;
}
.ctr-card:hover{transform:translate(-3px,-3px);box-shadow:9px 9px 0 var(--asfalto);}
.ctr-card__num{
  font-family:'Anton',sans-serif;font-size:2.6rem;line-height:1;color:var(--rosso);
}
.ctr-card__icona{
  width:56px;height:56px;border-radius:14px;border:var(--bordo);
  display:grid;place-items:center;background:var(--giallo);color:var(--asfalto);
  flex:none;
}
.ctr-card__icona svg{width:28px;height:28px;display:block;}
.ctr-card__testa{display:flex;align-items:center;justify-content:space-between;gap:14px;}
.ctr-card__testa .ctr-card__num{font-size:2.1rem;color:#C9C2B4;}
.ctr-card p{color:#3A3B42;}
.ctr-card--giallo{background:var(--giallo);}
.ctr-card--teal{background:var(--teal);color:#fff;}
.ctr-card--teal p{color:#EAF7F8;}
.ctr-card--teal h3{color:#fff;}
.ctr-card--rosso{background:var(--rosso);color:#fff;}
.ctr-card--rosso p{color:#FDE9E8;}
.ctr-card--rosso h3{color:#fff;}

.ctr-tag{
  display:inline-block;font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  line-height:1.2;padding:8px 16px;border:2px solid currentColor;border-radius:999px;
}
.ctr-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:6px;}

.ctr-lista{display:flex;flex-direction:column;gap:18px;margin-top:10px;}
.ctr-lista li{position:relative;padding-left:26px;font-size:1rem;line-height:1.68;color:#3A3B42;}
.ctr-lista li::before{
  content:"";position:absolute;left:2px;top:.62em;width:9px;height:9px;border-radius:50%;
  background:var(--rosso);
}
.ctr-card--teal .ctr-lista li,.ctr-card--rosso .ctr-lista li{color:inherit;}
.ctr-card--teal .ctr-lista li::before,.ctr-card--rosso .ctr-lista li::before{background:#fff;}

/* ---------- banda invito, a tutta larghezza ---------- */
.ctr-banda{
  grid-column:1/-1;background:var(--rosso);color:#fff;
  border:var(--bordo);border-radius:var(--raggio);box-shadow:var(--ombra);
  padding:30px 34px;display:flex;flex-wrap:wrap;align-items:center;gap:22px 34px;
}
.ctr-banda h3{color:#fff;flex:0 0 auto;max-width:22ch;}
.ctr-banda p{color:#FFE3E1;flex:1 1 320px;margin:0;font-size:1rem;}
.ctr-banda .ctr-btn{flex:0 0 auto;}

/* ---------- numeri ---------- */
.ctr-numeri{display:grid;gap:0;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));
  border:var(--bordo);border-radius:var(--raggio);overflow:hidden;background:#fff;}
.ctr-numeri__item{padding:26px 24px;border-right:var(--bordo);}
.ctr-numeri__item:last-child{border-right:0;}
.ctr-numeri__k{font-family:'Anton',sans-serif;font-size:clamp(2.2rem,4vw,3.2rem);line-height:1;color:var(--rosso);}
.ctr-numeri__v{font-size:.92rem;font-weight:600;color:#3A3B42;margin-top:8px;}
.ctr-numeri__item--claim{background:var(--asfalto);color:var(--crema);}
.ctr-numeri__item--claim .ctr-numeri__k{
  font-size:clamp(1.3rem,2.2vw,1.75rem);color:var(--giallo);line-height:1.08;
}
.ctr-numeri__item--claim .ctr-numeri__v{color:#B9B2A5;}
@media(max-width:780px){.ctr-numeri__item{border-right:0;border-bottom:var(--bordo);}
  .ctr-numeri__item:last-child{border-bottom:0;}}

/* ---------- timeline ---------- */
.ctr-time{position:relative;padding-left:34px;}
.ctr-time::before{content:"";position:absolute;left:8px;top:6px;bottom:6px;width:4px;
  background:repeating-linear-gradient(180deg,var(--giallo) 0 14px,transparent 14px 26px);}
.ctr-time__item{position:relative;padding-bottom:30px;}
.ctr-time__item::before{content:"";position:absolute;left:-32px;top:5px;width:18px;height:18px;
  background:var(--rosso);border:3px solid var(--asfalto);border-radius:50%;}
.ctr-sez--scuro .ctr-time__item::before{border-color:var(--crema);}
.ctr-time__anno{font-family:'Anton',sans-serif;font-size:1.5rem;color:var(--rosso);line-height:1;}
.ctr-sez--scuro .ctr-time__anno{color:var(--giallo);}
.ctr-time__t{font-weight:800;margin-top:6px;}
.ctr-time__d{font-size:.96rem;opacity:.85;margin-top:4px;}

/* ---------- team ---------- */
.ctr-persona{
  background:#fff;border:var(--bordo);border-radius:var(--raggio);padding:24px;
  box-shadow:var(--ombra-sm);
}
.ctr-persona__foto{
  width:100%;aspect-ratio:1/1;object-fit:cover;border:var(--bordo);border-radius:12px;
  background:var(--crema-2);margin-bottom:16px;
}
.ctr-persona__nome{font-family:'Anton',sans-serif;font-size:1.25rem;text-transform:uppercase;}
.ctr-persona__ruolo{color:var(--rosso);font-weight:800;font-size:.84rem;letter-spacing:.1em;
  text-transform:uppercase;margin:4px 0 10px;}
.ctr-persona p{font-size:.93rem;color:#3A3B42;}

/* ---------- progetti ---------- */
.ctr-prog{
  border:var(--bordo);border-radius:var(--raggio);overflow:hidden;background:#fff;
  box-shadow:var(--ombra);display:flex;flex-direction:column;
}
.ctr-prog__top{padding:20px 24px;border-bottom:var(--bordo);display:flex;justify-content:space-between;
  align-items:center;gap:12px;background:var(--giallo);}
.ctr-prog__anno{font-family:'Anton',sans-serif;font-size:1.1rem;}
.ctr-prog__body{padding:24px;display:flex;flex-direction:column;gap:12px;flex:1;}
.ctr-prog__body h3{font-size:1.45rem;}
.ctr-prog__meta{font-size:.85rem;font-weight:700;color:var(--teal);text-transform:uppercase;letter-spacing:.08em;}

.ctr-prog__foto{border-bottom:var(--bordo);}

/* locandina in testa alla scheda progetto: il manifesto per quello che e',
   senza riquadro nero intorno e senza bande bianche */
.ctr-prog__hero{display:block;border-bottom:var(--bordo);cursor:zoom-in;background:transparent;}
.ctr-prog__hero img{display:block;width:100%;height:auto;}
.ctr-prog__hero:hover img{opacity:.92;}
.ctr-prog__hero:focus-visible{outline:3px solid var(--rosso);outline-offset:-3px;}

/* pagina lunga: manifesto grande a sinistra, gli altri in fila accanto */
.ctr-loc-blocco{
  display:flex;flex-wrap:wrap;gap:26px;align-items:flex-start;
  margin-top:clamp(26px,3vw,38px);
}
.ctr-loc--grande{
  flex:0 0 auto;width:min(290px,72vw);display:block;cursor:zoom-in;
  transition:transform .14s ease,box-shadow .14s ease;
}
.ctr-loc--grande img{
  display:block;width:100%;height:auto;
  border:0;border-radius:3px;background:transparent;
  box-shadow:0 10px 30px rgba(21,22,26,.26);
}
.ctr-loc--grande:hover{transform:translate(-3px,-3px);}
.ctr-loc--grande:hover img{box-shadow:0 16px 40px rgba(21,22,26,.34);}
.ctr-loc--grande:focus-visible{outline:3px solid var(--rosso);outline-offset:4px;}
/* su fondo scuro l'ombra diventa bianca, e con lei il bordo */
.ctr-sez--scuro .ctr-loc--grande img{box-shadow:0 10px 34px rgba(0,0,0,.6);}
.ctr-sez--scuro .ctr-loc--grande:hover img{box-shadow:0 16px 44px rgba(0,0,0,.7);}
.ctr-loc-blocco{margin-top:clamp(24px,3vw,34px);}
.ctr-loc-blocco .ctr-locstrip{flex:1 1 260px;margin-top:0;align-self:flex-start;}
/* la striscia sotto la descrizione */
.ctr-lead .ctr-locstrip{margin-top:clamp(22px,2.5vw,30px);}

/* striscia di locandine: stessa misura ovunque, sezioni grandi e schede */
.ctr-locstrip{
  display:grid;grid-template-columns:repeat(auto-fill,112px);gap:14px 12px;margin-top:24px;
  justify-content:start;align-items:start;
}
.ctr-locstrip:empty{display:none;}
.ctr-locstrip .ctr-loc{display:block;transition:transform .12s ease;cursor:zoom-in;}
.ctr-locstrip .ctr-loc:hover{transform:translateY(-3px);}
.ctr-locstrip .ctr-loc:focus-visible{outline:3px solid var(--rosso);outline-offset:3px;}
.ctr-locstrip img{
  display:block;width:100%;height:auto;
  border:0;border-radius:2px;background:transparent;
  box-shadow:0 2px 10px rgba(21,22,26,.18);
}
.ctr-locstrip--chiaro img{box-shadow:0 2px 12px rgba(0,0,0,.5);}

/* dentro le schede progetto: sempre tre colonne, il resto si scorre di lato */
.ctr-prog__body .ctr-locstrip{
  margin-top:auto;padding-top:16px;padding-bottom:2px;
  grid-template-columns:none;grid-auto-flow:column;
  grid-auto-columns:calc((100% - 24px) / 3);
  justify-content:safe center;align-items:start;
  overflow-x:auto;overscroll-behavior-x:contain;
  scroll-snap-type:x proximity;
  scrollbar-width:none;-ms-overflow-style:none;
}
.ctr-prog__body .ctr-locstrip .ctr-loc{scroll-snap-align:start;}
.ctr-prog__body .ctr-locstrip::-webkit-scrollbar{display:none;}

/* frecce di scorrimento delle locandine */
.ctr-locfrecce{display:flex;gap:10px;justify-content:center;margin-top:12px;}
.ctr-locfrecce button{
  width:38px;height:38px;padding:0;flex:none;cursor:pointer;
  display:grid;place-items:center;
  background:var(--giallo);color:var(--asfalto);
  border:2px solid var(--asfalto);border-radius:50%;
  box-shadow:2px 2px 0 var(--asfalto);
  transition:transform .12s ease,box-shadow .12s ease,opacity .12s ease;
}
.ctr-locfrecce button svg{width:17px;height:17px;display:block;}
.ctr-locfrecce button:hover:not(:disabled){transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--asfalto);}
.ctr-locfrecce button:active:not(:disabled){transform:translate(1px,1px);box-shadow:0 0 0 var(--asfalto);}
.ctr-locfrecce button:focus-visible{outline:3px solid var(--rosso);outline-offset:3px;}
.ctr-locfrecce button:disabled{opacity:.28;box-shadow:none;cursor:default;}

/* ---------- lente: la locandina a schermo intero ---------- */
.ctr-lente{
  position:fixed;inset:0;z-index:200;background:rgba(10,11,13,.92);
  display:flex;align-items:center;justify-content:center;padding:30px;cursor:zoom-out;
}
.ctr-lente[hidden]{display:none;}
.ctr-lente img{
  max-width:min(92vw,820px);max-height:88vh;width:auto;height:auto;cursor:default;
  border:var(--bordo);border-radius:10px;box-shadow:0 18px 60px rgba(0,0,0,.6);background:#fff;
}
.ctr-lente__x{
  position:absolute;top:18px;right:18px;width:50px;height:50px;line-height:1;
  font-size:1.7rem;font-weight:700;cursor:pointer;
  background:var(--giallo);color:var(--asfalto);border:var(--bordo);border-radius:50%;
}
.ctr-lente__x:focus-visible{outline:3px solid #fff;outline-offset:3px;}
.ctr-lente__nav{
  position:absolute;top:50%;transform:translateY(-50%);
  width:56px;height:56px;display:grid;place-items:center;cursor:pointer;
  background:var(--giallo);color:var(--asfalto);
  border:3px solid var(--asfalto);border-radius:50%;
  box-shadow:3px 3px 0 var(--asfalto);transition:transform .12s ease;
}
.ctr-lente__nav svg{width:22px;height:22px;display:block;pointer-events:none;}
.ctr-lente__nav--giu{left:clamp(10px,3vw,34px);}
.ctr-lente__nav--su{right:clamp(10px,3vw,34px);}
.ctr-lente__nav:hover{transform:translateY(-50%) scale(1.07);}
.ctr-lente__nav:focus-visible{outline:3px solid #fff;outline-offset:3px;}
.ctr-lente__dida{
  position:absolute;left:0;right:0;bottom:clamp(14px,3vw,26px);
  text-align:center;color:#EDE6D8;font-size:.86rem;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;padding:0 90px;
}
@media(max-width:560px){
  .ctr-lente__nav{width:46px;height:46px;}
  .ctr-lente__nav svg{width:18px;height:18px;}
  .ctr-lente__dida{padding:0 16px;font-size:.78rem;}
  .ctr-lente img{max-height:74vh;}
}

/* ---------- box target ---------- */
.ctr-target{
  border:var(--bordo);border-radius:var(--raggio);padding:36px 32px;background:#fff;
  box-shadow:var(--ombra);display:flex;flex-direction:column;gap:18px;
}
.ctr-target__k{font-family:'Anton',sans-serif;font-size:1.6rem;text-transform:uppercase;line-height:1.1;}
.ctr-target--a{background:var(--asfalto);color:var(--crema);}
.ctr-target--a .ctr-target__k{color:var(--giallo);}
.ctr-target--b{background:var(--rosso);color:#fff;}
.ctr-target--c{background:var(--teal);color:#fff;}
/* liste dentro i box colorati: testo e trattini leggibili */
.ctr-target--a .ctr-lista li,.ctr-target--b .ctr-lista li,.ctr-target--c .ctr-lista li,
.ctr-target--a p,.ctr-target--b p,.ctr-target--c p{color:inherit;}
.ctr-target--a .ctr-lista li::before{background:var(--giallo);}
.ctr-target--b .ctr-lista li::before,.ctr-target--c .ctr-lista li::before{background:#fff;}

/* ---------- CTA finale ---------- */
.ctr-cta{
  background:var(--rosso);color:#fff;border:var(--bordo);border-radius:22px;
  padding:clamp(34px,5vw,60px);box-shadow:var(--ombra);text-align:center;
}
.ctr-cta h2{color:#fff;}
.ctr-cta p{max-width:620px;margin:18px auto 0;font-size:1.08rem;color:#FFE9E8;}
.ctr-cta .ctr-azioni{justify-content:center;}

/* ---------- contatti ---------- */
.ctr-contatto{
  display:flex;gap:16px;align-items:flex-start;padding:20px 0;border-bottom:2px dashed rgba(21,22,26,.25);
}
.ctr-contatto:last-child{border-bottom:0;}
.ctr-contatto__k{font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;
  min-width:118px;color:var(--rosso);padding-top:3px;}
.ctr-sez--scuro .ctr-contatto{border-color:rgba(255,255,255,.2);}
.ctr-sez--scuro .ctr-contatto__k{color:var(--giallo);}

/* ---------- loghi stampa ---------- */
.ctr-stampa{display:flex;flex-wrap:wrap;gap:12px;}
.ctr-stampa a{
  border:2px solid rgba(21,22,26,.25);border-radius:999px;padding:10px 18px;
  font-size:.88rem;font-weight:700;transition:.14s;
}
.ctr-stampa a:hover{background:var(--asfalto);color:var(--giallo);border-color:var(--asfalto);}
.ctr-sez--scuro .ctr-stampa a{border-color:rgba(255,255,255,.3);}
.ctr-sez--scuro .ctr-stampa a:hover{background:var(--giallo);color:var(--asfalto);}

/* ---------- FAQ ---------- */
.ctr-faq{border:var(--bordo);border-radius:var(--raggio);background:#fff;overflow:hidden;}
.ctr-faq details{border-bottom:var(--bordo);}
.ctr-faq details:last-child{border-bottom:0;}
.ctr-faq summary{
  padding:20px 24px;font-weight:800;cursor:pointer;list-style:none;
  display:flex;justify-content:space-between;gap:14px;align-items:center;
}
.ctr-faq summary::-webkit-details-marker{display:none;}
.ctr-faq summary::after{content:"+";font-family:'Anton',sans-serif;font-size:1.6rem;color:var(--rosso);line-height:1;}
.ctr-faq details[open] summary::after{content:"–";}
.ctr-faq p{padding:0 24px 22px;color:#3A3B42;}

/* ---------- utility ---------- */
.ctr-nastro{
  background:var(--asfalto);color:var(--giallo);font-family:'Anton',sans-serif;
  text-transform:uppercase;display:inline-block;padding:8px 18px;transform:rotate(-1.6deg);
  font-size:1.05rem;letter-spacing:.04em;
}
.ctr-divisore{height:6px;background:repeating-linear-gradient(135deg,var(--asfalto) 0 14px,var(--giallo) 14px 28px);}
.ctr-mt{margin-top:34px;}
.ctr-center{text-align:center;}


/* =========================================================
   RITOCCHI PER TELEFONO
   ========================================================= */
@media(max-width:560px){
  /* etichetta sopra, valore sotto: sui telefoni la colonna fissa strozzava il testo */
  .ctr-contatto{flex-direction:column;gap:6px;padding:16px 0;}
  .ctr-contatto__k{min-width:0;padding-top:0;}

  /* un filo di respiro in meno ai lati, un filo in piu al contenuto */
  .ctr-sez{padding:clamp(56px,13vw,74px) 18px;}
  .ctr-hero{padding-left:18px;padding-right:18px;}
  .ctr-card{padding:26px 22px;}
  .ctr-target{padding:28px 22px;}
  .ctr-prog__body{padding:20px;}
  .ctr-prog__top{padding:16px 20px;}
  .ctr-banda{padding:26px 22px;gap:18px;}
  .ctr-banda h3{max-width:none;}

  /* frecce piu comode da toccare */
  .ctr-locfrecce button{width:44px;height:44px;}
  .ctr-locfrecce button svg{width:19px;height:19px;}

  /* bottoni a tutta larghezza: piu facili da centrare col pollice */
  .ctr-azioni{gap:12px;}
  .ctr-azioni .ctr-btn{width:100%;justify-content:center;}
  .ctr-btn{padding:15px 22px;}
}
@media(max-width:380px){
  .ctr-locstrip{grid-template-columns:repeat(auto-fill,100px);}
  .ctr-tag{font-size:.66rem;padding:7px 12px;}
}

/* =========================================================
   LA BOLLA — l'invito che ti segue mentre scorri
   ========================================================= */
.ctr-bolla{
  position:fixed;right:clamp(14px,2.5vw,28px);bottom:clamp(14px,2.5vw,28px);z-index:120;
  width:min(320px,calc(100vw - 28px));
  background:var(--rosso);color:#fff;
  border:var(--bordo);border-radius:18px;box-shadow:var(--ombra);
  padding:22px 22px 20px;
  opacity:0;transform:translateY(14px) scale(.97);
  transition:opacity .2s ease,transform .2s ease;
}
.ctr-bolla--dentro{opacity:1;transform:none;}
.ctr-bolla[hidden]{display:none;}
.ctr .ctr-bolla__t{
  font-family:'Anton',Impact,sans-serif;font-weight:400;text-transform:uppercase;
  font-size:1.22rem;line-height:1.05;letter-spacing:.01em;padding-right:26px;
}
.ctr .ctr-bolla__d{margin-top:9px;font-size:.88rem;line-height:1.45;color:#FFE3E1;}
.ctr-bolla .ctr-btn{
  margin-top:16px;width:100%;justify-content:center;
  padding:13px 20px;font-size:.88rem;box-shadow:3px 3px 0 var(--asfalto);
}
.ctr-bolla__x{
  position:absolute;top:10px;right:10px;width:30px;height:30px;line-height:1;
  font-size:1.2rem;font-weight:700;cursor:pointer;
  background:transparent;color:#FFD9DC;border:2px solid rgba(255,255,255,.4);border-radius:50%;
  display:grid;place-items:center;transition:.14s;
}
.ctr-bolla__x:hover{background:#fff;color:var(--rosso);border-color:#fff;}
.ctr-bolla__x:focus-visible{outline:3px solid #fff;outline-offset:2px;}
@media(max-width:560px){
  .ctr-bolla{padding:18px 18px 16px;border-radius:14px;}
  .ctr .ctr-bolla__t{font-size:1.08rem;}
  .ctr .ctr-bolla__d{font-size:.84rem;}
}
@media (prefers-reduced-motion:reduce){
  .ctr-bolla{transition:none;}
}

/* =========================================================
   HEADER / NAV / FOOTER — solo per il sito statico
   ========================================================= */

.ctr-skip{
  position:absolute;left:-9999px;top:0;background:var(--giallo);color:var(--asfalto);
  padding:12px 18px;font-weight:800;z-index:999;border-radius:0 0 10px 0;
}
.ctr-skip:focus{left:0;}

.ctr-head{
  position:sticky;top:0;z-index:90;background:var(--asfalto);
  color:#EDE6D8;border-bottom:3px solid var(--giallo);
}
.ctr-head__in{
  max-width:var(--max);margin:0 auto;padding:14px 20px;
  display:flex;align-items:center;gap:20px;
}
.ctr-logo{display:flex;align-items:center;margin-right:auto;}
.ctr-logo__mark{height:74px;width:auto;flex:none;}
@media(max-width:520px){.ctr-logo__mark{height:54px;}}

.ctr-nav{display:flex;align-items:center;gap:4px;}
.ctr-head .ctr-nav a{
  color:#EDE6D8;font-family:'Anton',Impact,sans-serif;font-weight:400;
  text-transform:uppercase;letter-spacing:.05em;font-size:1.02rem;
  padding:11px 15px;border-radius:999px;transition:.14s;white-space:nowrap;
}
.ctr-head .ctr-nav a:hover{background:rgba(255,255,255,.1);color:#fff;}
.ctr-head .ctr-nav a[aria-current="page"]{color:var(--giallo);}
.ctr-nav .ctr-nav__cta{
  background:var(--giallo);color:var(--asfalto);
  font-family:'Anton',Impact,sans-serif;font-weight:400;text-transform:uppercase;
  font-size:1.02rem;letter-spacing:.06em;padding:12px 24px;margin-left:10px;
  border:3px solid var(--asfalto);box-shadow:3px 3px 0 var(--giallo);
}
.ctr-nav .ctr-nav__cta:hover{background:#fff;color:var(--asfalto);}

.ctr-burger{
  display:none;background:transparent;border:2px solid rgba(255,255,255,.35);border-radius:10px;
  color:#fff;padding:9px 12px;cursor:pointer;font:inherit;font-weight:800;font-size:.85rem;
  text-transform:uppercase;letter-spacing:.08em;
}
.ctr-burger:focus-visible,.ctr-nav a:focus-visible,.ctr-btn:focus-visible{
  outline:3px solid var(--giallo);outline-offset:3px;
}
.ctr-head--open .ctr-burger{border-color:var(--giallo);color:var(--giallo);}

@media(max-width:1040px){
  .ctr-burger{display:block;}
  .ctr-nav{
    display:none;position:absolute;left:0;right:0;top:100%;
    flex-direction:column;align-items:stretch;gap:2px;
    background:var(--asfalto);border-bottom:3px solid var(--giallo);padding:12px 20px 20px;
  }
  .ctr-head--open .ctr-nav{display:flex;}
  .ctr-head .ctr-nav a{padding:14px 12px;border-radius:10px;font-size:1rem;}
  .ctr-nav .ctr-nav__cta{margin-left:0;margin-top:8px;text-align:center;}
}

/* form contatti */
.ctr-form{display:flex;flex-direction:column;gap:14px;}
.ctr-campo{display:flex;flex-direction:column;gap:6px;}
.ctr-campo label{font-weight:800;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;}
.ctr-campo input,.ctr-campo select,.ctr-campo textarea{
  font:inherit;font-size:1rem;padding:13px 14px;border:2px solid var(--asfalto);
  border-radius:10px;background:#fff;color:var(--testo);width:100%;
}
.ctr-campo textarea{min-height:130px;resize:vertical;}
.ctr-campo input:focus,.ctr-campo select:focus,.ctr-campo textarea:focus{
  outline:3px solid var(--giallo);outline-offset:1px;border-color:var(--asfalto);
}
.ctr-campo--riga{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;}
.ctr-privacy{display:flex;gap:10px;align-items:flex-start;font-size:.88rem;}
.ctr-privacy input{width:20px;height:20px;flex:none;margin-top:2px;accent-color:var(--rosso);}
.ctr-form__esito{
  display:none;border:var(--bordo);border-radius:12px;padding:16px;font-weight:700;
  background:var(--giallo);
}
.ctr-form__esito--ko{background:var(--rosso);color:#fff;}

/* ---------- muro delle locandine ---------- */
.ctr-muro{
  display:grid;gap:22px;
  grid-template-columns:repeat(auto-fill,minmax(230px,1fr));
}
.ctr-poster{
  margin:0;background:#fff;border:var(--bordo);border-radius:var(--raggio);
  overflow:hidden;box-shadow:var(--ombra);display:flex;flex-direction:column;
  transition:transform .14s ease,box-shadow .14s ease;
}
.ctr-poster:hover{transform:translate(-3px,-3px);box-shadow:9px 9px 0 var(--asfalto);}
.ctr-poster img{
  width:100%;aspect-ratio:4/5;object-fit:cover;object-position:top center;
  border-bottom:var(--bordo);background:var(--crema-2);
}
.ctr-poster figcaption{
  padding:14px 16px;display:flex;flex-direction:column;gap:3px;font-size:.9rem;
}
.ctr-poster figcaption strong{font-weight:800;line-height:1.25;}
.ctr-poster figcaption span{color:#5A5B63;font-size:.83rem;}

/* pagina 404 */
.ctr-404{min-height:58vh;display:grid;place-items:center;text-align:center;}
