body{
    font-family: "DM Sans", sans-serif !important;
    /* overflow-x: hidden; */
}
.fixed-header{
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 10;
}
main{
    padding-top: 205px;
}
section {
  scroll-margin-top: 205px;
}
.user-photo {
  scroll-margin-top: 205px;
}
.menu-item {
  /* box-shadow: inset 0 0 0 0 #54b3d6; */
  color: #242424;
  margin: 0 -.25rem;
  padding: 0 .25rem;
  transition: color .3s ease-in-out, box-shadow .3s ease-in-out;
  padding: 10px;
}
.menu-item:hover {
  box-shadow: inset 170px 0 0 0 #4BAD89;
  padding: 10px;
  color: white;
}
.logo-wrapper{
    /* width: 25%; */
    height: 40px;
    overflow: hidden;
}
.agency-logo{
  display: inline-block;
}
.logo{
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.bg-lightgray{
    background-color: rgb(248, 248, 248);
}
.bg-color{
    background-image: url('img/sfondo.png');
    background-repeat: no-repeat;
    background-size: cover;
    background-repeat: no-repeat;
}
.wrap-words {
  word-wrap: break-word;     
  word-break: normal;         
}

.red-color{
    color: #E38184;
}
.blue-color{
    color: #6799B8;
}
.orange-color{
    color: #F9BF85;
}
.green-color{
    color: #4BAD89;
}
.purple-color{
    color: #AF88BA;
}
.cyan-color{
    color: #65C8D2;
}
.purple-bg{
    background-color: #AF88BA;
}
.cyan-bg{
    background-color: #65C8D2;
}
.cta-btn{
    background-color: #4BAD89;
    border: none;
    transition: background-color 0.3s ease-in-out;
}
.cta-btn:hover{
  background-color: #275d49;
}
.cta-btn2{
    background-color: #65C8D2;
    border: none;
    transition: background-color 0.3s ease-in-out;
}
.cta-btn2:hover{
  background-color: #2f5a5f;
}
.text-shadow{
    text-shadow: 0 6px 10px rgba(0,0,0,.20);
}

.high-margin{
    margin: 100px 0 100px 0;
}

.my-line-h{
  line-height: 4rem !important;
}

.bg-color {
  position: relative;    /* riferimento per lo pseudo-elemento */
  overflow: visible;     /* lasciamo sbordare il pseudo-elemento */
  min-height: clamp(14rem, 35vh, 30rem); /* regola l'altezza con clamp() */
}

/* pseudo-elemento che parte dal bordo sinistro della viewport
   e termina sul bordo destro dell'elemento .bg-color (cioè dentro il container) */
.bg-color::before {
  content: "";
  position: absolute;
  top: 0;
  /* sposta lo sfondo fino al bordo sinistro della pagina:
     (100vw - 100%) = differenza viewport - larghezza .bg-color (container)
     dividendo per 2 si ottiene il margine sinistro del container */
  left: calc(-1 * ((100vw - 100%) / 2));
  right: 0;              /* termina al bordo destro dell'elemento (allineato col container) */
  height: 100%;
  z-index: 0;
  pointer-events: none;

  background-image: url('img/sfondo.png');
  background-repeat: no-repeat;
  background-position: left center;
  background-size: cover;
}

.bg-content {
  position: relative;
  z-index: 2;
  padding: clamp(1rem, 3vw, 2.5rem); /* spazio interno responsive */
}

.color-line{
    background-image: url('img/banda.png');
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    height: 30px;
}

.user-wrapper{
  position: relative;   
  width: 100%;
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  overflow: hidden;
}

.user{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  transition: transform .35s ease, filter .35s ease;
}
.user:first-child{
  object-position: center right;
}


.user-wrapper::before{
  content: "";
  position: absolute;
  inset: 0;               
  background: rgba(0,0,0,0); 
  transition: background .25s ease;
  z-index: 2;
  pointer-events: none;
  border-radius: inherit;
}

.user-wrapper::after{
  content: "";
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 640'%3E%3Cpath fill='white' d='M384 64C366.3 64 352 78.3 352 96C352 113.7 366.3 128 384 128L466.7 128L265.3 329.4C252.8 341.9 252.8 362.2 265.3 374.7C277.8 387.2 298.1 387.2 310.6 374.7L512 173.3L512 256C512 273.7 526.3 288 544 288C561.7 288 576 273.7 576 256L576 96C576 78.3 561.7 64 544 64L384 64zM144 160C99.8 160 64 195.8 64 240L64 496C64 540.2 99.8 576 144 576L400 576C444.2 576 480 540.2 480 496L480 416C480 398.3 465.7 384 448 384C430.3 384 416 398.3 416 416L416 496C416 504.8 408.8 512 400 512L144 512C135.2 512 128 504.8 128 496L128 240C128 231.2 135.2 224 144 224L224 224C241.7 224 256 209.7 256 192C256 174.3 241.7 160 224 160L144 160z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 20%;
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity .18s ease, transform .28s cubic-bezier(.2,.9,.3,1);
  transform: translateY(6px) scale(.95);
  z-index: 3;
  pointer-events: none;
}

.user-wrapper:hover::before{
  background: rgba(0,0,0,0.45);
}
.user-wrapper:hover .user{
  transform: scale(1.03);
  /* optional: se vuoi scurire anche l'immagine direttamente (non necessario con overlay)
     uncomment: filter: brightness(0.7);
  */
}
.user-wrapper:hover::after{
  color: rgba(255,255,255,1);
  transform: translateY(0) scale(1);
  opacity: 1;
}


#program .row{
  overflow-x: hidden;
}

/* .blue-band{
  height: 100px; 
  border-left: 5px solid #0D4EA2; 
} */

.user-photo{
  border-radius: 0px 20px 20px 20px;
  background-image: 
    linear-gradient(rgba(0,0,0,0.45), rgba(0,0,0,0.45)),
    var(--bg, url('img/default.png'));
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center center;
}

#GiovannaBarni { --bg: url('img/GiovannaBarniDef.png'); }
#LauraBarreca  { --bg: url('img/LauraBarrecaDef.png'); }
#MonicaCalcagno {--bg: url('img/MonicaCalcagnoDef.png')}
#DiegoCalaon {--bg: url('img/DiegoCalaon.jpg')}
#DiegoMantoan {--bg: url('img/DiegoMantoanDef.png')}
#IlariaManzini {--bg: url('img/IlariaManziniDef.png')}
#GiulianoVolpe {--bg: url('img/GiulianoVolpeDef.png')}

.foot-logo {
  max-height: 60px; /* stessa altezza per tutti i loghi */
  width: auto;
  object-fit: contain;
}

.blue-band {
  width: 5px;
  height: 100px; /* stessa altezza media dei loghi */
  background-color: #0d4ea2; /* o il colore che ti serve */
  margin: 0 20px;
}

#program li:not(.fw-bold) {
  color: rgba(0,0,0,0.7);
}
.charge{
  font-size: 1rem;

}


@media (max-width: 576px) {
  .bg-color::before {
    /* estendi la pseudo-box fino ai bordi della viewport */
    left: calc(-1 * ((100vw - 100%) / 2));
    right: calc(-1 * ((100vw - 100%) / 2));

    /* centriamo meglio il pattern su schermi piccoli */
    background-position: center center;
    background-size: cover; /* mantiene buona copertura */
  }

  /* piccoli accorgimenti per altezza / padding su mobile */
  .bg-color { min-height: clamp(10rem, 28vh, 18rem); }
  .bg-content { padding-left: 1rem; padding-right: 1rem; }
}

@media (max-width: 768px) {
  main{
    padding-top: 300px;
  }
  section {
    scroll-margin-top: 300px;
  }
  .bg-color::before {
    /* full width */
    left: calc(-1 * ((100vw - 100%) / 2));
    right: calc(-1 * ((100vw - 100%) / 2));

    /* centriamo meglio lo sfondo */
    background-position: center center;
    background-size: cover;
  }

  .bg-color { 
    min-height: clamp(10rem, 28vh, 18rem); 
  }

  .bg-content { 
    padding-left: 1rem; 
    padding-right: 1rem; 
  }
  .logo-wrapper{
    /* width: 25%; */
    height: 30px;
    overflow: hidden;
  }
  .blue-band{
    display: none;
    /* height: 50px; 
    border-left: 5px solid #0D4EA2;  */
  }
}
