/* ===== Speaker modal (shared by all alternatives) ===== */
[data-speaker]{cursor:pointer}
[data-speaker]:focus-visible{outline:3px solid #44ee97;outline-offset:3px;border-radius:8px}
.sp-clickable{position:relative}
/* small "+" hint on speaker cards */
.card.sp-clickable::after{
  content:"+";position:absolute;top:-58px;right:14px;z-index:4;
  width:34px;height:34px;border-radius:50%;
  background:#44ee97;color:#121b37;font-family:'Montserrat',sans-serif;font-weight:700;
  font-size:22px;line-height:34px;text-align:center;
  box-shadow:0 4px 10px rgba(15,26,51,.25);opacity:0;transform:scale(.6);
  transition:opacity .2s ease,transform .2s ease;pointer-events:none}
.card.sp-clickable:hover::after,.card.sp-clickable:focus-visible::after{opacity:1;transform:scale(1)}

.sp-overlay{
  position:fixed;inset:0;z-index:1000;
  background:rgba(9,15,30,.74);backdrop-filter:blur(4px);
  display:flex;align-items:center;justify-content:center;padding:24px;
  opacity:0;visibility:hidden;transition:opacity .22s ease}
.sp-overlay.show{opacity:1;visibility:visible}
.sp-modal{
  position:relative;background:#fff;width:100%;max-width:660px;max-height:88vh;
  overflow-y:auto;border-radius:18px;box-shadow:0 30px 70px rgba(0,0,0,.45);
  transform:translateY(24px) scale(.98);transition:transform .26s cubic-bezier(.2,.8,.2,1);
  border-top:7px solid #44ee97}
.sp-overlay.show .sp-modal{transform:none}
.sp-close{
  position:absolute;top:14px;right:16px;width:40px;height:40px;border:0;border-radius:50%;
  background:#eef1f5;color:#121b37;font-size:26px;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:background .18s ease}
.sp-close:hover{background:#dde3ec}
.sp-head{display:flex;gap:22px;align-items:flex-end;padding:30px 34px 20px}
.sp-photo{
  flex:none;width:132px;height:160px;border-radius:14px 40px 14px 40px;
  background:linear-gradient(160deg,#b3b7bd,#9aa0a8);overflow:hidden;
  display:flex;align-items:flex-end;justify-content:center}
.sp-photo img{width:118%;height:auto;object-fit:contain;object-position:bottom center;
  filter:drop-shadow(0 6px 8px rgba(0,0,0,.18))}
.sp-titles{padding-bottom:6px}
.sp-tag{display:inline-block;background:#44ee97;color:#121b37;font-family:'Montserrat',sans-serif;
  font-weight:700;font-size:11px;letter-spacing:1.5px;padding:4px 12px;border-radius:20px;margin-bottom:8px}
.sp-name{font-family:'Montserrat',sans-serif;font-weight:800;color:#121b37;font-size:24px;line-height:1.1}
.sp-role{color:#2f6fd0;font-weight:600;font-size:15px;margin-top:4px}
.sp-bio{padding:6px 34px 32px}
.sp-bio p{color:#33405e;font-size:15.5px;line-height:1.62;margin-bottom:13px}
.sp-bio p:last-child{margin-bottom:0}

@media(max-width:560px){
  .sp-head{flex-direction:column;align-items:center;text-align:center;padding:28px 22px 16px}
  .sp-titles{padding-bottom:0}
  .sp-bio{padding:6px 22px 26px}
  .sp-name{font-size:21px}
}
