
:root{
  --bcmspk-radius:var(--bcm2-radius,24px);
  --bcmspk-v:var(--v,#7c3aed);
  --bcmspk-vd:var(--vd,#5b21b6);
  --bcmspk-line:var(--line,#e7dff0);
  --bcmspk-text:var(--ink,#241a31);
  --bcmspk-muted:var(--muted,#746b7f);
}
.bcmspk{position:relative;width:100%;margin-top:30px}
.bcmspk-viewport{overflow:hidden;padding:4px 2px 24px}
.bcmspk-track{display:flex;gap:22px;will-change:transform;transition:transform .55s cubic-bezier(.22,.61,.36,1)}
.bcmspk-slide{flex:0 0 calc((100% - 44px)/3);min-width:0}
.bcmspk-card{
  width:100%;aspect-ratio:1/1;padding:0;border:1px solid rgba(124,58,237,.14);
  border-radius:var(--bcmspk-radius);overflow:hidden;position:relative;display:block;
  cursor:pointer;background:rgba(255,255,255,.55);box-shadow:0 20px 55px rgba(91,33,182,.10);
  text-align:left;color:var(--bcmspk-text);isolation:isolate
}
.bcmspk-card:focus-visible{outline:3px solid rgba(124,58,237,.35);outline-offset:4px}
.bcmspk-photo{position:absolute;inset:0;display:block;background:linear-gradient(135deg,#eee8f8,#f8f5fc)}
.bcmspk-photo img{width:100%;height:100%;display:block;object-fit:cover;transform:scale(var(--bcmspk-zoom,1));transform-origin:center}
.bcmspk-placeholder{width:100%;height:100%;display:grid;place-items:center;font-size:clamp(52px,7vw,96px);font-weight:850;color:var(--bcmspk-v);background:linear-gradient(135deg,#efe9fb,#faf7ff)}
.bcmspk-card:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(22,10,38,.12),transparent 42%);pointer-events:none}
.bcmspk-glass{
  position:absolute;z-index:2;left:7%;right:7%;bottom:6%;padding:18px 20px;
  border-radius:calc(var(--bcmspk-radius) - 7px);border:1px solid rgba(255,255,255,.72);
  background:rgba(255,255,255,.80);-webkit-backdrop-filter:blur(18px) saturate(145%);
  backdrop-filter:blur(18px) saturate(145%);box-shadow:inset 0 1px 0 rgba(255,255,255,.82),0 10px 30px rgba(24,10,43,.10)
}
.bcmspk-glass strong,.bcmspk-glass small{display:block}
.bcmspk-glass strong{font-size:clamp(1rem,1.45vw,1.18rem);line-height:1.2;margin-bottom:7px}
.bcmspk-glass small{font-size:.78rem;line-height:1.45;color:var(--bcmspk-muted)}
.bcmspk-glass .bcmspk-org{margin-top:2px;color:var(--bcmspk-v);font-weight:750}
.bcmspk-controls{display:flex;justify-content:center;align-items:center;gap:13px;margin-top:2px}
.bcmspk-arrow{
  width:42px;height:42px;border:1px solid var(--bcmspk-line);border-radius:50%;
  background:rgba(255,255,255,.72);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  color:var(--bcmspk-v);font-size:27px;line-height:1;cursor:pointer;box-shadow:0 8px 24px rgba(91,33,182,.08)
}
.bcmspk-arrow:hover{background:var(--bcmspk-v);color:#fff}
.bcmspk-dots{display:flex;gap:7px;align-items:center}
.bcmspk-dot{width:8px;height:8px;border:0;border-radius:50%;padding:0;background:#d9cfdf;cursor:pointer}
.bcmspk-dot.active{width:24px;border-radius:99px;background:linear-gradient(90deg,var(--bcmspk-v),var(--bcmspk-vd))}
.bcmspk-modal{position:fixed;inset:0;z-index:99999;display:none;align-items:center;justify-content:center;padding:24px}
.bcmspk-modal.open{display:flex}
.bcmspk-modal-backdrop{position:absolute;inset:0;background:rgba(20,12,31,.45);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.bcmspk-modal-card{
  position:relative;z-index:1;width:min(980px,100%);max-height:min(760px,90vh);overflow:auto;
  border:1px solid rgba(255,255,255,.66);border-radius:var(--bcmspk-radius);
  background:rgba(255,255,255,.88);-webkit-backdrop-filter:blur(26px) saturate(145%);
  backdrop-filter:blur(26px) saturate(145%);box-shadow:0 34px 110px rgba(34,11,58,.28),inset 0 1px 0 rgba(255,255,255,.92)
}
.bcmspk-modal-close{
  position:absolute;z-index:3;right:16px;top:16px;width:42px;height:42px;border:1px solid rgba(124,58,237,.16);
  border-radius:50%;background:rgba(255,255,255,.78);color:var(--bcmspk-text);font-size:28px;line-height:1;cursor:pointer
}
.bcmspk-modal-layout{display:grid;grid-template-columns:minmax(280px,38%) 1fr;min-height:520px}
.bcmspk-modal-photo{min-height:420px;background:#eee8f8;overflow:hidden}
.bcmspk-modal-photo img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(var(--bcmspk-zoom,1));transform-origin:center}
.bcmspk-modal-copy{padding:54px 50px 44px}
.bcmspk-kicker{color:var(--bcmspk-v);font-size:.72rem;font-weight:850;letter-spacing:.12em;text-transform:uppercase}
.bcmspk-modal-copy h3{font-size:clamp(1.8rem,3vw,2.7rem);line-height:1.05;margin:8px 0 12px;color:var(--bcmspk-text)}
.bcmspk-role{color:var(--bcmspk-muted);font-weight:650;margin:0 0 26px}
.bcmspk-dossier{color:var(--bcmspk-text);line-height:1.7}
.bcmspk-dossier p{margin:0 0 14px}
.bcmspk-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:25px}
.bcmspk-tags span{padding:7px 11px;border:1px solid rgba(124,58,237,.15);border-radius:99px;background:rgba(124,58,237,.07);color:var(--bcmspk-v);font-size:.75rem;font-weight:750}
.bcmspk-empty{padding:20px;border:1px dashed var(--bcmspk-line);border-radius:var(--bcmspk-radius);color:var(--bcmspk-muted)}
@media(max-width:920px){.bcmspk-slide{flex-basis:calc((100% - 22px)/2)}}
@media(max-width:640px){
  .bcmspk-slide{flex-basis:100%}.bcmspk-track{gap:14px}
  .bcmspk-modal{padding:12px}.bcmspk-modal-layout{grid-template-columns:1fr}.bcmspk-modal-photo{min-height:0;aspect-ratio:1.15/1}
  .bcmspk-modal-copy{padding:32px 24px}.bcmspk-glass{left:6%;right:6%;bottom:5%;padding:15px 16px}
}
@media(prefers-color-scheme:dark){
  .bcmspk-card{background:rgba(32,20,45,.62);border-color:rgba(184,139,255,.20)}
  .bcmspk-glass{background:rgba(28,21,38,.78);border-color:rgba(255,255,255,.15);color:#f8f4ff}
  .bcmspk-glass small{color:#c6bcd1}.bcmspk-glass .bcmspk-org{color:#c9a8ff}
  .bcmspk-modal-card{background:rgba(26,18,36,.92);border-color:rgba(255,255,255,.13)}
  .bcmspk-modal-copy h3,.bcmspk-dossier{color:#f8f4ff}.bcmspk-role{color:#c7bdcf}
  .bcmspk-modal-close,.bcmspk-arrow{background:rgba(31,22,42,.78);color:#d4b7ff;border-color:rgba(255,255,255,.12)}
}
@media(prefers-reduced-motion:reduce){.bcmspk-track{transition:none!important}}



/* ==========================================================
   BCM Speakers 1.2.1
   Front page: carousel.
   /prelegenci/: full grid, no carousel, no artificial row limit.
   ========================================================== */
.bcmspk-all-wrap{display:flex;justify-content:center;margin-top:24px}
.bcmspk-all-button{
  display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 28px;
  border:1px solid rgba(124,58,237,.22);border-radius:999px;
  background:rgba(255,255,255,.62);color:var(--bcmspk-v);text-decoration:none;font-weight:800;
  -webkit-backdrop-filter:blur(16px) saturate(145%);backdrop-filter:blur(16px) saturate(145%);
  box-shadow:0 12px 34px rgba(91,33,182,.10),inset 0 1px 0 rgba(255,255,255,.88);
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease
}
.bcmspk-all-button:hover{background:var(--bcmspk-v);color:#fff;transform:translateY(-2px);box-shadow:0 16px 38px rgba(109,40,217,.22)}

/* /prelegenci/ uses the same 1180px content width as the front page.
   The BCM2 generic page normally limits its container to 1000px. */
.bcmspk-all-speakers-page .bcm2-generic-page>.container{max-width:1180px}

.bcmspk-all-page{margin-top:28px}
.bcmspk-all-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
  width:100%;
}
.bcmspk-all-grid .bcmspk-slide{
  width:auto!important;
  min-width:0;
  flex:none;
}
.bcmspk-all-grid .bcmspk-card{width:100%}

@media(max-width:920px){
  .bcmspk-all-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
}
@media(max-width:640px){
  .bcmspk-all-grid{grid-template-columns:1fr;gap:16px}
}

/* Modal: horizontally centered image, vertical focal-point still controlled per speaker. */
.bcmspk-modal-photo{overflow:hidden}
.bcmspk-modal-photo img{object-position:50% center}
