:root{
  /* ===== Palette ufficiale: bianco / blu navy / rosa acceso ================
     Sostituire i valori hex qui sotto con quelli esatti del brand quando
     disponibili — è l'unico punto da modificare nel foglio.
     Nota: rosa rivisto su tono più acceso/fucsia su indicazione diretta
     della società, in sostituzione del rosa antico iniziale. */
  --white:      #FFFFFF;
  --paper:      #FBF9F8;   /* sfondo pagina, bianco leggermente caldo */
  --navy:       #1B2545;   /* navy principale: titoli, testo forte */
  --navy-deep:  #141B36;   /* navy più scuro: footer, superfici piene */
  --navy-soft:  #55617A;   /* navy attenuato: testo di corpo */
  --rose:       #E6127F;   /* rosa acceso/fucsia: accento primario, CTA */
  --rose-deep:  #B80F66;   /* rosa scuro: hover */
  --rose-pale:  #FCE3F0;   /* rosa chiarissimo: badge icone, superfici tenui */
  --surface:    #F9C9E4;   /* sfondo sezioni alternate: rosa marcato */
  --line:       rgba(27,37,69,0.14);   /* linee/bordi su sfondo chiaro */
  --line-soft:  rgba(27,37,69,0.08);
  --on-navy-line: rgba(255,255,255,0.16); /* linee su sfondo navy pieno */
  --radius:2px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--paper);
  color:var(--navy);
  font-family:'Inter',sans-serif;
  font-weight:400;
  overflow-x:hidden;
}
h1,h2,h3,.display-font{
  font-family:'Big Shoulders Display',sans-serif;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:0.01em;
  line-height:0.92;
  color:var(--navy);
}
.mono{
  font-family:'JetBrains Mono',monospace;
  letter-spacing:0.03em;
}
a{color:inherit; text-decoration:none;}
::selection{background:var(--rose); color:var(--white);}

a:focus-visible, button:focus-visible{
  outline:2px solid var(--rose-deep);
  outline-offset:3px;
}

/* ---------- NAV ---------- */
.navbar{
  background:rgba(22,33,58,0.94);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--on-navy-line);
  /* Sovrascrive le variabili Bootstrap: senza .navbar-dark, i pseudo-stati
     (:hover/:focus) di navbar-brand e nav-link ricadono su un nero di
     default che sparisce su sfondo navy. */
  --bs-navbar-brand-color: var(--white);
  --bs-navbar-brand-hover-color: var(--white);
  --bs-navbar-color: rgba(255,255,255,0.62);
  --bs-navbar-hover-color: var(--white);
  --bs-navbar-active-color: var(--rose);
}
.navbar-brand{
  font-family:'Big Shoulders Display',sans-serif;
  font-weight:900;
  font-size:1.5rem;
  text-transform:uppercase;
  color:var(--white);
  display:flex;
  align-items:center;
  gap:0.6rem;
}
.navbar-brand:hover, .navbar-brand:focus{color:var(--white);}
.navbar-brand .dot{color:var(--rose);}
.navbar-logo{display:block; flex-shrink:0;}
.nav-link{
  font-family:'JetBrains Mono',monospace;
  font-size:0.8rem;
  text-transform:uppercase;
  letter-spacing:0.08em;
  color:rgba(255,255,255,0.62) !important;
  padding:0.5rem 1rem !important;
}
.nav-link:hover, .nav-link:focus, .nav-link.active{color:var(--white) !important;}
.nav-link.active{color:var(--rose) !important;}
.navbar-toggler-icon{filter:invert(1);}
.navbar-toggler{border-color:var(--on-navy-line) !important;}
.btn-spotter{
  background:var(--rose);
  border:none;
  color:var(--white);
  font-family:'JetBrains Mono',monospace;
  font-size:0.78rem;
  text-transform:uppercase;
  letter-spacing:0.08em;
  padding:0.6rem 1.3rem;
  border-radius:var(--radius);
  transition:transform .15s ease, background .15s ease;
}
.btn-spotter:hover{background:var(--rose-deep); color:var(--white); transform:translateY(-1px);}
.btn-outline-chalk{
  border:1px solid var(--navy);
  color:var(--navy);
  font-family:'JetBrains Mono',monospace;
  font-size:0.78rem;
  text-transform:uppercase;
  letter-spacing:0.08em;
  padding:0.58rem 1.3rem;
  border-radius:var(--radius);
  transition:all .15s ease;
}
.btn-outline-chalk:hover{background:var(--navy); color:var(--white);}

/* ---------- BEAM (elemento distintivo) ---------- */
.beam{
  position:relative;
  height:6px;
  background:linear-gradient(90deg, var(--rose), var(--navy) 65%, transparent);
  transform:rotate(-1.1deg);
  transform-origin:left center;
  width:100%;
}
.beam.reverse{
  transform:rotate(1.1deg);
  background:linear-gradient(90deg, transparent, var(--navy) 35%, var(--rose));
}

/* ---------- PAGE HEADER (pagine interne) ---------- */
.page-header{
  padding:8.5rem 0 3.5rem;
  position:relative;
  overflow:hidden;
}
.breadcrumb-mono{
  font-family:'JetBrains Mono',monospace;
  font-size:0.75rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.08em;
  color:var(--navy);
}
.breadcrumb-mono a{color:var(--navy);}
.breadcrumb-mono a:hover{color:var(--rose);}
.breadcrumb-mono .current{color:var(--rose);}
.page-header h1{
  font-size:clamp(2.6rem, 6vw, 4.6rem);
  margin-top:0.8rem;
}

/* ---------- HERO (home) ---------- */
.hero{
  position:relative;
  padding:9rem 0 7rem;
  overflow:hidden;
}
.hero-eyebrow{
  font-family:'JetBrains Mono',monospace;
  font-size:0.8rem;
  letter-spacing:0.15em;
  text-transform:uppercase;
  color:var(--rose-deep);
}
.hero h1{
  font-size:clamp(3rem, 8vw, 7rem);
  margin:0.3rem 0 1.5rem;
}
.hero h1 .accent{color:var(--rose);}
.hero-lead{
  color:var(--navy-soft);
  font-size:1.15rem;
  max-width:38rem;
}
.hero-stats{
  display:flex;
  flex-wrap:wrap;
  margin:3.5rem 0 0 0;
  max-width:30rem;
}
.hero-stats > div{
  flex:0 1 calc(33.333% - 1.1rem);
  min-width:5.5rem;
  margin:0 1.6rem 1.4rem 0;
  padding-left:1.1rem;
  border-left:2px solid var(--line);
  box-sizing:border-box;
}
.hero-stats > div:last-child{margin-right:0;}
.hero-stats > div:first-child{
  padding-left:0;
  border-left:none;
}
.hero-stats .num{
  font-family:'Big Shoulders Display',sans-serif;
  font-weight:900;
  font-size:clamp(1.7rem, 4.5vw, 2.1rem);
  color:var(--navy);
  line-height:1.05;
}
.hero-stats .label{
  font-family:'JetBrains Mono',monospace;
  font-size:0.68rem;
  text-transform:uppercase;
  letter-spacing:0.04em;
  color:var(--navy-soft);
  margin-top:0.4rem;
  line-height:1.3;
}

/* ---------- SECTION GENERIC ---------- */
section{padding:6rem 0;}
.section-eyebrow{
  font-family:'JetBrains Mono',monospace;
  font-size:0.78rem;
  font-weight:700;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--rose);
}
.section-title{
  font-size:clamp(2.2rem, 5vw, 3.6rem);
  margin-bottom:1rem;
}
.section-lede{
  color:var(--navy-soft);
  max-width:42rem;
  font-size:1.05rem;
}

.alt-bg{background:var(--surface);}

/* ---------- CHI SIAMO ---------- */
.value-card {
  border-right: 3px solid var(--rose);
  padding-right: 1.2rem;
}

/* L'ultima card non ha il separatore */
.col-lg-3:last-child .value-card {
  border-right: none;
}
.icon-badge{
  width:52px;
  height:52px;
  border-radius:50%;
  background:var(--rose-pale);
  color:var(--rose);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.35rem;
  margin-bottom:1rem;
}
.value-card .k{
  font-family:'JetBrains Mono',monospace;
  color:var(--rose-deep);
  font-size:0.75rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.08em;
}

/* ---------- CORSI ---------- */
.course-card{
  background:var(--white);
  border:none;
  border-left:5px solid var(--rose);
  border-radius:0 var(--radius) var(--radius) 0;
  box-shadow:4px 6px 24px -6px rgba(27,37,69,0.16);
  padding:1.8rem 2rem;
  height:100%;
  transition:border-left-color .2s ease, transform .2s ease, box-shadow .2s ease;
  position:relative;
  display:flex;
  flex-direction:column;
}
.course-card:hover{
  border-left-color:var(--navy);
  transform:translateY(-4px);
  box-shadow:6px 12px 32px -4px rgba(27,37,69,0.26);
}
.course-tag{
  display:inline-block;
  font-family:'JetBrains Mono',monospace;
  font-size:0.7rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.06em;
  color:var(--rose-deep);
  background:var(--rose-pale);
  border-radius:var(--radius);
  padding:0.25rem 0.65rem;
  margin-bottom:1rem;
  width:fit-content;
}
.course-card h3{
  font-size:1.7rem;
  margin-bottom:0.6rem;
}
.course-card p{
  color:var(--navy-soft);
  font-size:0.94rem;
  flex-grow:1;
}
.course-meta{
  margin-top:1.2rem;
  padding-top:1rem;
  border-top:1px solid var(--line);
  font-family:'JetBrains Mono',monospace;
  font-size:0.75rem;
  font-weight:600;
  color:var(--navy-soft);
  display:flex;
  justify-content:space-between;
}
.course-card .go{
  margin-top:1rem;
  font-family:'JetBrains Mono',monospace;
  font-size:0.75rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.06em;
  color:var(--rose);
}

/* ---------- DETTAGLIO CORSO ---------- */
.detail-facts{
  background:var(--white);
  border:none;
  border-left:5px solid var(--rose);
  border-radius:0 var(--radius) var(--radius) 0;
  box-shadow:4px 6px 24px -6px rgba(27,37,69,0.16);
  padding:1.8rem;
}
.detail-facts dt{
  font-family:'JetBrains Mono',monospace;
  font-size:0.68rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.08em;
  color:var(--rose);
  margin-top:1rem;
}
.detail-facts dt:first-child{margin-top:0;}
.detail-facts dd{
  font-size:1rem;
  font-weight:600;
  margin-bottom:0;
  color:var(--navy);
}
/* Varianti con icona (Chi siamo): icona + coppia dt/dd affiancate */
.icon-facts{display:flex; flex-direction:column; gap:1.3rem;}
.icon-fact{display:flex; align-items:center; gap:1.1rem;}
.icon-fact i{
  flex-shrink:0;
  width:1.8rem;
  margin-right:0.15rem;
  font-size:1.3rem;
  color:var(--rose);
  text-align:center;
}
.icon-fact dt{margin-top:0 !important;}
.icon-fact dd{margin-bottom:0; line-height:1.4;}
.price-tag{
  font-family:'Big Shoulders Display',sans-serif;
  font-weight:900;
  font-size:2.4rem;
  color:var(--navy);
  line-height:1;
}
.price-tag small{
  font-family:'JetBrains Mono',monospace;
  font-size:0.85rem;
  color:var(--navy-soft);
  text-transform:none;
  font-weight:400;
  letter-spacing:0;
}
.progression-step{
  display:flex;
  gap:1.2rem;
  padding:1.2rem 0;
  border-bottom:1px solid var(--line);
}
.progression-step:last-child{border-bottom:none;}
.progression-step .lvl{
  font-family:'JetBrains Mono',monospace;
  font-weight:700;
  color:var(--rose);
  font-size:0.85rem;

  min-width:3.5rem;
}

/* ---------- ORARI ---------- */
.table-orari{
  --bs-table-bg:transparent;
  color:var(--navy);
  border-color:var(--line);
}
.table-orari thead th{
  font-family:'JetBrains Mono',monospace;
  font-size:0.72rem;
  text-transform:uppercase;
  letter-spacing:0.06em;
  color:var(--rose-deep);
  border-bottom:2px solid var(--line);
  font-weight:500;
}
.table-orari td{
  vertical-align:middle;
  font-size:0.92rem;
  border-color:var(--line);
}
.badge-corso{
  font-family:'JetBrains Mono',monospace;
  font-size:0.68rem;
  text-transform:uppercase;
  padding:0.3rem 0.5rem;
  border-radius:var(--radius);
  display:inline-block;
}
.bg-artistica{background:var(--rose-pale); color:var(--rose-deep);}
.bg-acrobatica{background:rgba(27,37,69,0.10); color:var(--navy);}
.bg-propedeutica{background:rgba(189,135,144,0.14); color:var(--rose-deep);}
.bg-agonismo{background:var(--navy); color:var(--white);}

/* ---------- STAFF ---------- */
.coach{text-align:center;}
.coach .avatar{
  width:100%;
  aspect-ratio:1;
  background:linear-gradient(155deg, var(--surface), var(--white));
  border:1px solid var(--line);
  border-radius:var(--radius);
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:'Big Shoulders Display',sans-serif;
  font-weight:900;
  font-size:3rem;
  color:rgba(27,37,69,0.2);
  margin-bottom:1rem;
}
.coach h3{font-size:1.3rem; margin-bottom:0.1rem;}
.coach .role{
  font-family:'JetBrains Mono',monospace;
  font-size:0.72rem;
  text-transform:uppercase;
  color:var(--rose-deep);
  letter-spacing:0.05em;
}

/* ---------- CTA ---------- */
#cta{
  background:linear-gradient(135deg, var(--navy-deep), var(--navy));
  color:var(--white);
  text-align:center;
  border-top:1px solid var(--on-navy-line);
  border-bottom:1px solid var(--on-navy-line);
}
#cta h2, #cta .section-title{color:var(--white);}
#cta .section-eyebrow{color:var(--rose);}
#cta .section-lede{color:rgba(255,255,255,0.75);}

/* ---------- CONTATTI ---------- */
.contact-card{
  background:var(--white);
  border:none;
  border-left:5px solid var(--rose);
  border-radius:0 var(--radius) var(--radius) 0;
  box-shadow:4px 6px 24px -6px rgba(27,37,69,0.16);
  padding:2rem;
}
.contact-card .k{
  font-family:'JetBrains Mono',monospace;
  font-size:0.7rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.06em;
  color:var(--rose);
  display:block;
  margin-bottom:0.3rem;
}
.map-frame{
  border:1px solid var(--line);
  border-radius:var(--radius);
  width:100%;
  min-height:320px;
  filter:grayscale(0.25) contrast(0.96);
}

/* ---------- GALLERY ---------- */
.photo-tile{
  position:relative;
  aspect-ratio:4/3;
  border-radius:var(--radius);
  overflow:hidden;
  border:1px dashed var(--rose);
  background:var(--white);
  display:flex;
  align-items:flex-end;
  transition:border-color .2s ease, box-shadow .2s ease;
}
.photo-tile:hover{border-color:var(--rose-deep); box-shadow:0 4px 16px -8px rgba(194,51,106,0.3);}
.photo-tile::before{
  content:"";
  position:absolute;
  inset:0;
  background:repeating-linear-gradient(45deg, rgba(194,51,106,0.045) 0 2px, transparent 2px 10px);
}
.photo-tile .cap{
  position:relative;
  width:100%;
  padding:0.7rem 0.9rem;
  background:linear-gradient(0deg, rgba(255,255,255,0.92), transparent);
  font-family:'JetBrains Mono',monospace;
  font-size:0.68rem;
  text-transform:uppercase;
  letter-spacing:0.05em;
  color:var(--navy-soft);
  display:flex;
  justify-content:space-between;
}
.photo-tile .cap .soon{color:var(--rose-deep);}
.photo-tile.wide{aspect-ratio:8/3;}
@media (min-width:768px){
  .photo-tile.wide{grid-column:span 2;}
}

/* ---------- FOOTER ---------- */
footer{
  background:var(--navy-deep);
  padding:4rem 0 2rem;
  color:rgba(255,255,255,0.65);
}
footer .navbar-brand{color:var(--white);}
footer .navbar-brand:hover, footer .navbar-brand:focus{color:var(--white);}
footer .navbar-brand .dot{color:var(--rose);}
footer h3{
  color:var(--white);
  font-size:1.2rem;
  margin-bottom:1rem;
}
footer a.footlink{
  display:block;
  font-size:0.92rem;
  margin-bottom:0.5rem;
  color:rgba(255,255,255,0.65);
  transition:color .15s ease;
}
footer a.footlink:hover{color:var(--rose);}
.foot-bottom{
  border-top:1px solid var(--on-navy-line);
  margin-top:3rem;
  padding-top:1.5rem;
  font-family:'JetBrains Mono',monospace;
  font-size:0.72rem;
  color:rgba(255,255,255,0.4);
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:1rem;
}

@media (max-width: 768px){
  .hero{padding:7rem 0 4rem;}
  .page-header{padding:7rem 0 2.5rem;}
  section{padding:4rem 0;}
  /* hero-stats: layout percentuale, nessun override necessario qui */
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{transition:none !important;}
}
