/* ===== VSFF Speakers 2026 =====
   Card nello stile dei box agenda 2026 (fondo #eaf4fc, testi blu #1d345c, Jost, angoli vivi). */
.vsffsp{
  --sp26-blu:#1d345c;
  --sp26-chiaro:#eaf4fc;
  --sp26-gap:32px;
  width:100%;
  max-width:1280px;
  margin:0 auto;
}
.vsffsp__grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:var(--sp26-gap);
}
.vsffsp__card{
  display:flex;
  flex-direction:column;
  background:var(--sp26-chiaro);
  color:var(--sp26-blu);
  font-family:"Jost",sans-serif;
}
.vsffsp__foto{
  aspect-ratio:1 / 1;
  overflow:hidden;
  background:var(--sp26-blu);
}
.vsffsp__img{
  display:block;
  width:100%!important;
  height:100%!important;
  object-fit:cover;
  object-position:center top;    /* volto in vista anche se la foto non è perfettamente centrata */
}
.vsffsp__testo{
  flex:1;
  padding:16px 16px 12px;
}
.vsffsp__nome{
  margin:0 0 6px;
  color:var(--sp26-blu);
  font-family:"Jost",sans-serif;
  font-size:19px;
  font-weight:500;
  line-height:1.25;
  letter-spacing:0;
  text-transform:none;
}
.vsffsp__ruolo{
  margin:0;
  color:var(--sp26-blu);
  font-family:"Jost",sans-serif;
  font-size:15px;
  font-weight:300;
  line-height:1.35;
}
/* Bottone come "Show more" dell'agenda 2026 */
.vsffsp__btn{
  align-self:flex-end;
  min-width:132px;
  margin:0 0 16px 16px;            /* agganciato al bordo destro della card, senza spazio */
  padding:5px 20px;
  border:0;
  border-radius:0;
  background:var(--sp26-blu);
  color:var(--sp26-chiaro);
  font-family:"Jost",sans-serif;
  font-size:15px;
  font-weight:300;
  line-height:23px;
  cursor:pointer;
  transition:background-color .2s ease;
}
.vsffsp__btn:hover,
.vsffsp__btn:focus-visible{
  background:#2c4c82;
  color:#fff;
  outline:none;
}

/* --- Popup bio (stile popup agenda 2026) --- */
/* il tema ha regole generiche .modal-content con !important (fondo crema, angolo arrotondato):
   qui le annulliamo solo per i popup speaker 2026 */
.vsffsp-modal .modal-dialog .modal-content{
  position:relative;
  border:0!important;
  border-radius:0!important;
  background:#eaf4fc!important;
  box-shadow:none!important;
  color:#1d345c;
  font-family:"Jost",sans-serif;
  padding:56px 64px 48px;
}
.vsffsp-modal__close{
  position:absolute;
  top:20px;
  right:20px;
  width:36px;
  height:36px;
  padding:0;
  border:0;
  background:transparent;
  cursor:pointer;
}
.vsffsp-modal__close::before,
.vsffsp-modal__close::after{
  content:"";
  position:absolute;
  top:50%;
  left:0;
  width:100%;
  height:2px;
  background:#1d345c;
  transform:rotate(45deg);
}
.vsffsp-modal__close::after{
  transform:rotate(-45deg);
}
.vsffsp-modal__body{
  display:flex;
  gap:48px;
  align-items:flex-start;
}
.vsffsp-modal__foto{
  flex:0 0 34%;
}
.vsffsp-modal__img{
  display:block;
  width:100%!important;
  height:auto!important;
  aspect-ratio:1 / 1;
  object-fit:cover;
  object-position:center top;
}
.vsffsp-modal__testo{
  flex:1;
  min-width:0;
}
.vsffsp-modal__nome{
  margin:0 0 6px;
  color:#1d345c;
  font-family:"Jost",sans-serif;
  font-size:32px;
  font-weight:500;
  line-height:1.2;
  text-transform:none;
}
.vsffsp-modal__ruolo{
  margin:0 0 20px;
  color:#1d345c;
  font-family:"Jost",sans-serif;
  font-size:18px;
  font-weight:400;
}
.vsffsp-modal__bio,
.vsffsp-modal__bio p{
  color:#1d345c;
  font-family:"Jost",sans-serif;
  font-size:16px;
  font-weight:300;
  line-height:1.6;
}
.vsffsp-modal__bio p:last-child{ margin-bottom:0; }
/* sfondo dietro al popup: blu 2026 */
body:has(.vsffsp) .modal-backdrop.show{
  background:#1d345c;
  opacity:.85;
}

/* --- Responsive: 3 colonne tablet, 2 mobile (allineate ai 12px dell'header) --- */
@media (max-width:991.98px){
  .vsffsp{ --sp26-gap:24px; }
  .vsffsp__grid{ grid-template-columns:repeat(3, minmax(0, 1fr)); }
  .vsffsp-modal .modal-dialog .modal-content{ padding:48px 32px 32px; }
  .vsffsp-modal__body{ gap:32px; }
}
@media (max-width:767.98px){
  .vsffsp{ --sp26-gap:16px; }
  .vsffsp__grid{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .vsffsp__testo{ padding:12px 10px 10px; }
  .vsffsp__nome{ font-size:15px; }
  .vsffsp__ruolo{ font-size:13px; }
  .vsffsp__btn{ min-width:0; margin:0 0 10px 10px; padding:4px 12px; font-size:13px; line-height:20px; }
  .vsffsp-modal .modal-dialog .modal-content{ padding:52px 20px 24px; }
  .vsffsp-modal__body{ flex-direction:column; gap:20px; }
  .vsffsp-modal__foto{ flex-basis:auto; width:60%; }
  .vsffsp-modal__nome{ font-size:24px; }
  .vsffsp-modal__close{ top:12px; right:12px; width:28px; height:28px; }
}

/* Segnaposto per speaker senza foto: iniziali su fondo blu, stesso quadrato delle foto */
.vsffsp__foto{ position:relative; }
.vsffsp__iniziali{
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  font-family:'Jost',sans-serif; font-weight:500; letter-spacing:.06em;
  font-size:clamp(40px, 5vw, 72px); color:#85CCF5;
}
.vsffsp-modal__segnaposto{ width:100%; }
