/* =============================================================
   REI Widgets — Foglio stile unico
   Namespace: .rei-  per tutti i widget
   ============================================================= */

/* ── Variabili base (ereditate dal tema se disponibili) ── */
:root {
  --rei-blue:      #0400FF;
  --rei-cyan:      #018BFF;
  --rei-cyan-dark: #016fd0;
  --rei-dark:      #020318;
  --rei-border:    #E2E4EC;
  --rei-text:      #222;
  --rei-text2:     #555;
  --rei-text3:     #999;
  --rei-white:     #fff;
  --rei-r:         8px;
  --rei-rp:        999px;
}

/* =============================================================
   1. STAT CARDS
   ============================================================= */
.rei-stat-cards {
  display: grid;
  gap: var(--rei-sc-gap, 1px);
  grid-template-columns: repeat(2, 1fr); /* default — Elementor sovrascrive per breakpoint */
  background: var(--rei-sc-grid-bg, rgba(255,255,255,.07));
  border-radius: var(--rei-sc-radius, 12px);
  overflow: hidden;
  border: 1px solid var(--rei-sc-border, rgba(255,255,255,.07));
}

.rei-stat-card {
  background:    var(--rei-sc-bg, rgba(255,255,255,.035));
  padding:       var(--rei-sc-padding, 1.5rem 1.25rem);
  display:       flex;
  flex-direction: column;
  gap:           4px;
  transition:    background .2s;
  text-decoration: none;
  cursor: default;
}

.rei-stat-card--linked { cursor: pointer; }

.rei-stat-card:hover {
  background: var(--rei-sc-hover-bg, rgba(1,139,255,.1));
}

.rei-stat-card__icon {
  margin-bottom: 6px;
  color: var(--rei-sc-icon-color, var(--rei-cyan));
  font-size: var(--rei-sc-icon-size, 20px);
  line-height: 1;
}

.rei-stat-card__number {
  font-size:     var(--rei-sc-num-size, 2rem);
  font-weight:   var(--rei-sc-num-weight, 800);
  color:         var(--rei-sc-num-color, #018BFF);
  line-height:   1;
  letter-spacing: -.03em;
}

.rei-stat-card__label {
  font-size:      var(--rei-sc-lbl-size, 14px);
  font-weight:    var(--rei-sc-lbl-weight, 600);
  color:          var(--rei-sc-lbl-color, #fff);
  letter-spacing: .1em;
  text-transform: uppercase;
}

.rei-stat-card__meta {
  font-size:  var(--rei-sc-meta-size, 13px);
  color:      var(--rei-sc-meta-color, rgba(255,255,255,.55));
  margin-top: 2px;
}

/* Responsive colonne: gestito da Elementor via selector responsive_control */

/* =============================================================
   2. HERO DATE STRIP
   ============================================================= */
.rei-hero-date-strip {
  background:    var(--rei-hds-bg, rgba(1,139,255,.1));
  border:        1px solid var(--rei-hds-border, rgba(1,139,255,.22));
  border-radius: var(--rei-hds-radius, 8px);
  padding:       var(--rei-hds-padding, .875rem 1.25rem);
  display:       flex;
  align-items:   center;
  gap:           var(--rei-hds-gap, .75rem);
  flex-wrap:     wrap;
}

.rei-hero-date-strip--wrap {
  flex-wrap: wrap;
}

.rei-hero-date-strip--align-center { justify-content: center; }
.rei-hero-date-strip--align-right  { justify-content: flex-end; }
.rei-hero-date-strip--align-left   { justify-content: flex-start; }
.rei-hero-date-strip--align-between { justify-content: space-between; }

.rei-hds-item {
  display:     flex;
  align-items: center;
  gap:         .5rem;
}

.rei-hds-item__icon {
  color:     var(--rei-hds-icon-color, #018BFF);
  font-size: var(--rei-hds-icon-size, 14px);
  flex-shrink: 0;
}

.rei-hds-item__icon svg {
  width:  var(--rei-hds-icon-size, 14px);
  height: var(--rei-hds-icon-size, 14px);
  display: block;
}

.rei-hds-item__main {
  font-size:   var(--rei-hds-text-size, 12px);
  font-weight: 600;
  color:       var(--rei-hds-text-color, rgba(255,255,255,.75));
  line-height: 1.3;
}

.rei-hds-item__sub {
  font-size:   calc(var(--rei-hds-text-size, 12px) - 1px);
  color:       var(--rei-hds-subtext-color, rgba(255,255,255,.45));
  line-height: 1.3;
}

.rei-hds-sep {
  width:      1px;
  height:     20px;
  background: var(--rei-hds-sep-color, rgba(255,255,255,.1));
  flex-shrink: 0;
}

/* =============================================================
   3. COUNTDOWN
   ============================================================= */
.rei-countdown {
  text-align: center;
}

.rei-countdown__label {
  font-size:      var(--rei-cd-label-size, 11px);
  font-weight:    700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color:          var(--rei-cd-label-color, rgba(255,255,255,.45));
  margin-bottom:  1rem;
}

.rei-countdown__title {
  font-size:      var(--rei-cd-title-size, 1.7rem);
  font-weight:    800;
  color:          var(--rei-cd-title-color, #fff);
  letter-spacing: -.02em;
  margin-bottom:  .4rem;
}

.rei-countdown__subtitle {
  font-size:  var(--rei-cd-sub-size, .9rem);
  color:      var(--rei-cd-sub-color, rgba(255,255,255,.45));
  margin-bottom: 2rem;
}

.rei-countdown__boxes {
  display:         flex;
  justify-content: center;
  align-items:     flex-start;
  gap:             var(--rei-cd-gap, 1rem);
  flex-wrap:       wrap;
}

.rei-cd-box {
  background:    var(--rei-cd-box-bg, rgba(255,255,255,.04));
  border:        1px solid var(--rei-cd-box-border, rgba(255,255,255,.08));
  border-radius: var(--rei-cd-box-radius, 10px);
  padding:       1.25rem 1rem .85rem;
  min-width:     80px;
  display:       flex;
  flex-direction: column;
  align-items:   center;
  gap:           4px;
}

.rei-cd-box__num {
  font-size:     var(--rei-cd-num-size, 2.4rem);
  font-weight:   800;
  color:         var(--rei-cd-num-color, #018BFF);
  line-height:   1;
  letter-spacing: -.04em;
  font-variant-numeric: tabular-nums;
}

.rei-cd-box__unit {
  font-size:      var(--rei-cd-unit-size, 10px);
  font-weight:    700;
  color:          var(--rei-cd-unit-color, rgba(255,255,255,.35));
  letter-spacing: .14em;
  text-transform: uppercase;
}

.rei-cd-sep {
  font-size:   var(--rei-cd-num-size, 2.4rem);
  font-weight: 800;
  color:       var(--rei-cd-sep-color, rgba(255,255,255,.15));
  line-height: 1;
  padding-bottom: 1.3rem; /* allinea visivamente ai numeri */
  user-select: none;
}

.rei-countdown__finished {
  font-size:   1.2rem;
  font-weight: 600;
  color:       var(--rei-cd-finished-color, rgba(255,255,255,.6));
}

/* =============================================================
   4. PROGRAMMA
   ============================================================= */
.rei-programma {}

/* Tab bar */
.rei-prog-tabs {
  display:   flex;
  gap:       .5rem;
  flex-wrap: wrap;
  margin-bottom: 2rem;
}

.rei-prog-tab {
  padding:        .55rem 1.4rem;
  border-radius:  var(--rei-prog-tab-radius, var(--rei-rp));
  border:         1px solid var(--rei-prog-tab-border, rgba(255,255,255,.12));
  background:     var(--rei-prog-tab-bg, transparent);
  color:          var(--rei-prog-tab-color, rgba(255,255,255,.55));
  font-size:      13px;
  font-weight:    600;
  font-family:    inherit;
  cursor:         pointer;
  letter-spacing: .06em;
  text-transform: uppercase;
  transition:     background .2s, color .2s, border-color .2s;
}

.rei-prog-tab.active,
.rei-prog-tab:hover {
  background:   var(--rei-prog-tab-active-bg, #018BFF);
  color:        var(--rei-prog-tab-active-color, #fff);
  border-color: var(--rei-prog-tab-active-bg, #018BFF);
}

/* Panel */
.rei-prog-panel { display: none; }
.rei-prog-panel.active { display: block; }

/* Lista eventi */
.rei-prog-list {
  display:        flex;
  flex-direction: column;
  gap:            var(--rei-prog-item-gap, 2px);
}

.rei-prog-item {
  display:       grid;
  grid-template-columns: 90px 1fr;
  gap:           0 1.5rem;
  padding:       1rem 1.25rem;
  border-radius: var(--rei-prog-item-radius, 8px);
  background:    var(--rei-prog-item-bg, rgba(255,255,255,.03));
  border:        1px solid var(--rei-prog-item-border, transparent);
  transition:    background .2s, border-color .2s;
  align-items:   start;
}

.rei-prog-item:hover {
  background:    var(--rei-prog-item-hover-bg, rgba(1,139,255,.07));
  border-color:  var(--rei-prog-item-hover-border, rgba(1,139,255,.18));
}

.rei-prog-item--featured {
  background:    var(--rei-prog-featured-bg, rgba(1,139,255,.1));
  border-color:  var(--rei-prog-featured-border, rgba(1,139,255,.3));
}

.rei-prog-item--featured:hover {
  background:    rgba(1,139,255,.16);
}

.rei-prog-item__time {
  font-size:      var(--rei-prog-time-size, 13px);
  font-weight:    700;
  color:          var(--rei-prog-time-color, #018BFF);
  letter-spacing: .04em;
  padding-top:    2px;
}

.rei-prog-item__body {}

.rei-prog-item__header {
  display:     flex;
  align-items: center;
  gap:         .6rem;
  flex-wrap:   wrap;
  margin-bottom: 2px;
}

.rei-prog-item__title {
  font-size:   var(--rei-prog-title-size, 15px);
  font-weight: 600;
  color:       var(--rei-prog-title-color, #fff);
}

.rei-prog-item__badge {
  font-size:      10px;
  font-weight:    700;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding:        2px 8px;
  border-radius:  var(--rei-rp);
  background:     var(--rei-prog-badge-bg, rgba(1,139,255,.25));
  color:          var(--rei-prog-badge-color, #018BFF);
}

.rei-prog-item__meta {
  font-size:   var(--rei-prog-meta-size, 13px);
  color:       var(--rei-prog-meta-color, rgba(255,255,255,.45));
  margin-top:  3px;
}

.rei-prog-item__link {
  display:       inline-flex;
  align-items:   center;
  gap:           4px;
  font-size:     12px;
  font-weight:   600;
  color:         var(--rei-cyan);
  text-decoration: none;
  margin-top:    6px;
  opacity: .8;
  transition: opacity .2s;
}
.rei-prog-item__link:hover { opacity: 1; }

/* =============================================================
   5. SPEAKER CAROUSEL
   ============================================================= */
.rei-speaker-carousel {
  position: relative;
  overflow: hidden;
}

.rei-speaker-carousel .swiper-slide {
  height: auto;
}

.rei-speaker-card {
  background:    var(--rei-spk-card-bg, rgba(255,255,255,.035));
  border:        1px solid var(--rei-spk-card-border, rgba(255,255,255,.07));
  border-radius: var(--rei-spk-card-radius, 12px);
  padding:       1.5rem 1.25rem 1.25rem;
  text-align:    center;
  display:       flex;
  flex-direction: column;
  align-items:   center;
  gap:           .6rem;
  transition:    transform .25s, box-shadow .25s, border-color .25s;
  text-decoration: none;
  height:        100%;
}

.rei-speaker-card:hover {
  transform:    var(--rei-spk-hover-transform, translateY(-4px));
  box-shadow:   var(--rei-spk-hover-shadow, 0 8px 32px rgba(1,139,255,.15));
  border-color: rgba(1,139,255,.3);
}

.rei-speaker-card__avatar-wrap {
  position:      relative;
  display:       inline-block;
  margin-bottom: .25rem;
}

.rei-speaker-card__avatar {
  width:       var(--rei-spk-avatar-size, 80px);
  height:      var(--rei-spk-avatar-size, 80px);
  object-fit:  cover;
  display:     block;
  border-radius: var(--rei-spk-avatar-radius, 50%);
}

.rei-speaker-card__badge {
  position:    absolute;
  bottom:      0;
  right:       0;
  font-size:   9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  padding:     2px 7px;
  border-radius: var(--rei-rp);
  background:  var(--rei-spk-badge-bg, #018BFF);
  color:       var(--rei-spk-badge-color, #fff);
  white-space: nowrap;
}

.rei-speaker-card__name {
  font-size:   var(--rei-spk-name-size, 15px);
  font-weight: 700;
  color:       var(--rei-spk-name-color, #fff);
  line-height: 1.2;
}

.rei-speaker-card__role {
  font-size:  var(--rei-spk-role-size, 12px);
  color:      var(--rei-spk-role-color, rgba(255,255,255,.5));
  line-height: 1.3;
}

.rei-speaker-card__company {
  font-size:   12px;
  font-weight: 600;
  color:       var(--rei-cyan);
}

/* Frecce Swiper override */
.rei-speaker-carousel .swiper-button-next,
.rei-speaker-carousel .swiper-button-prev {
  color: #018BFF;
  background: rgba(255,255,255,.06);
  border-radius: 50%;
  width:  42px;
  height: 42px;
  border: 1px solid rgba(255,255,255,.1);
  transition: background .2s;
}
.rei-speaker-carousel .swiper-button-next:hover,
.rei-speaker-carousel .swiper-button-prev:hover {
  background: rgba(1,139,255,.2);
}
.rei-speaker-carousel .swiper-button-next::after,
.rei-speaker-carousel .swiper-button-prev::after {
  font-size: 14px;
  font-weight: 900;
}

.rei-speaker-carousel .swiper-pagination-bullet {
  background: rgba(255,255,255,.3);
  opacity:    1;
}
.rei-speaker-carousel .swiper-pagination-bullet-active {
  background: #018BFF;
}

/* Dots spacing */
.rei-speaker-carousel .swiper-pagination {
  position: relative;
  margin-top: 1.5rem;
}

/* =============================================================
   AGGIORNAMENTI v1.1
   ============================================================= */

/* ── Programma: multi-speaker links ── */
.rei-prog-item__speakers {
  display:   flex;
  flex-wrap: wrap;
  gap:       4px 12px;
  margin-top: 6px;
}

/* ── Marquee keyframe (speaker carousel) ── */
@keyframes reiScrollX {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* ── Speaker carousel: marquee mode ── */
.rei-speaker-carousel {
  position: relative;
}

.rei-marquee-wrap {
  overflow: hidden;
}

.rei-marquee-track {
  display:    flex;
  width:      max-content;
  will-change: transform;
}

.rei-marquee-card {
  flex-shrink: 0;
}

/* Badge sotto azienda (v1.1.1) */
.rei-speaker-card__badge--bottom {
  position:   static;
  display:    inline-block;
  margin-top: 6px;
}

/* =============================================================
   v1.2 — Icona relatore, bordi per lato, allineamento carousel
   ============================================================= */

/* Icona SVG inline accanto al nome relatore */
.rei-prog-speaker-icon {
  display:        inline-block;
  vertical-align: middle;
  margin-right:   4px;
  flex-shrink:    0;
  stroke:         currentColor;
}

/* Assicuriamo che .rei-prog-item usi border-style solid di default
   così i singoli border-*-width funzionano */
.rei-prog-item {
  border-style: solid;
}

/* Allineamento card carousel */
.rei-speaker-card {
  display:        flex;
  flex-direction: column;
}

/* =============================================================
   6. SPEAKERS GRID  (v1.1.0)
   Griglia relatori con modale dettaglio.
   ============================================================= */

.rei-speakers-grid-wrap {
  position: relative;
}

.rei-speakers-grid {
  display:  grid;
  gap:      2rem;
  grid-template-columns: repeat(3, 1fr);
}

/* ── Card ── */
.rei-speakers-grid__card {
  position:   relative;
  background: var(--rei-white);
  border:     1px solid var(--rei-border);
  border-radius: 16px;
  overflow:   hidden;
  cursor:     pointer;
  text-align: left;
  padding:    0;
  width:      100%;
  font:       inherit;
  color:      inherit;
  transition: transform .28s, box-shadow .28s, border-color .28s;
  animation:  reiFadeUp .6s ease both;
}

/* Rimuovi stili default button */
button.rei-speakers-grid__card {
  appearance: none;
  -webkit-appearance: none;
}

.rei-speakers-grid__card:hover {
  transform:   translateY(-8px);
  border-color: var(--rei-cyan);
  box-shadow:  0 20px 48px rgba(1,139,255,.14);
}

/* Staggered entrance */
.rei-speakers-grid__card:nth-child(1) { animation-delay: .05s; }
.rei-speakers-grid__card:nth-child(2) { animation-delay: .10s; }
.rei-speakers-grid__card:nth-child(3) { animation-delay: .15s; }
.rei-speakers-grid__card:nth-child(4) { animation-delay: .20s; }
.rei-speakers-grid__card:nth-child(5) { animation-delay: .25s; }
.rei-speakers-grid__card:nth-child(6) { animation-delay: .30s; }
.rei-speakers-grid__card:nth-child(7) { animation-delay: .35s; }
.rei-speakers-grid__card:nth-child(8) { animation-delay: .40s; }
.rei-speakers-grid__card:nth-child(9) { animation-delay: .45s; }

@keyframes reiFadeUp {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ── Top band ── */
.rei-speakers-grid__card-top {
  background: linear-gradient(135deg,#020318 0%,#021047 60%,#012060 100%);
  padding:    2rem 2rem 0;
  position:   relative;
  height:     120px;
  overflow:   hidden;
}
.rei-speakers-grid__card-top::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(1,139,255,.12) 1px, transparent 1px);
  background-size: 20px 20px;
  z-index: 0;
}
.rei-speakers-grid__card-top::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, transparent 40%, rgba(1,139,255,.08) 100%);
}

/* ── Badge ── */
.rei-speakers-grid__badge {
  position:    relative;
  z-index:     1;
  display:     inline-flex;
  align-items: center;
  border-radius: var(--rei-rp);
  font-size:   9px;
  font-weight: 700;
  padding:     3px 11px;
  letter-spacing: .09em;
  text-transform: uppercase;
  border:      1px solid rgba(1,139,255,.3);
  line-height: 1.6;
}

/* ── Avatar ── */
.rei-speakers-grid__avatar-wrap {
  display:         flex;
  justify-content: center;
  margin-top:      -44px;
  position:        relative;
  z-index:         2;
}
.rei-speakers-grid__avatar {
  width:  88px;
  height: 88px;
  border-radius: 50%;
  border: 3px solid var(--rei-white);
  box-shadow: 0 4px 20px rgba(1,139,255,.22);
  object-fit: cover;
  background: linear-gradient(135deg,#021047,#018BFF);
  transition: transform .28s, box-shadow .28s;
  flex-shrink: 0;
}
.rei-speakers-grid__avatar--initials {
  display:         flex;
  align-items:     center;
  justify-content: center;
  font-size:       1.5rem;
  font-weight:     800;
  color:           #fff;
  letter-spacing:  -.02em;
}
.rei-speakers-grid__card:hover .rei-speakers-grid__avatar {
  transform:  scale(1.06);
  box-shadow: 0 8px 28px rgba(1,139,255,.35);
}

/* ── Body ── */
.rei-speakers-grid__body {
  padding:    1rem 1.75rem 1.75rem;
  text-align: center;
}
.rei-speakers-grid__name {
  font-size:      1.05rem;
  font-weight:    800;
  color:          var(--rei-text);
  letter-spacing: -.02em;
  margin-bottom:  3px;
  line-height:    1.2;
}
.rei-speakers-grid__role {
  font-size:      12px;
  font-weight:    600;
  color:          var(--rei-cyan);
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-bottom:  3px;
}
.rei-speakers-grid__company {
  font-size:      12px;
  color:          var(--rei-text3);
  font-weight:    400;
  margin-bottom:  1rem;
}
.rei-speakers-grid__talk {
  font-size:      13px;
  color:          var(--rei-text2);
  font-style:     italic;
  font-weight:    300;
  line-height:    1.55;
  padding-top:    1rem;
  border-top:     1px solid var(--rei-border);
  display:        -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow:       hidden;
}
.rei-speakers-grid__cta {
  display:       inline-flex;
  align-items:   center;
  gap:           6px;
  margin-top:    1rem;
  font-size:     12px;
  font-weight:   600;
  color:         var(--rei-cyan);
  transition:    gap .2s, color .2s;
}
.rei-speakers-grid__cta svg {
  transition: transform .2s;
}
.rei-speakers-grid__card:hover .rei-speakers-grid__cta {
  gap:   10px;
  color: var(--rei-cyan-dark);
}
.rei-speakers-grid__card:hover .rei-speakers-grid__cta svg {
  transform: translateX(3px);
}

/* Hide JSON data script */
.rei-speakers-grid__data { display: none !important; }

/* =============================================================
   Speakers Modal
   ============================================================= */
.rei-speakers-modal__backdrop {
  position: fixed;
  inset:    0;
  z-index:  9998;
  background: rgba(2,3,24,.82);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  display:         flex;
  align-items:     center;
  justify-content: center;
  padding:         2rem;
  opacity:         0;
  pointer-events:  none;
  transition:      opacity .28s;
}
.rei-speakers-modal__backdrop[hidden] { display: none; }
.rei-speakers-modal__backdrop.is-open {
  opacity:        1;
  pointer-events: all;
}

.rei-speakers-modal {
  background:    var(--rei-white);
  border-radius: 20px;
  max-width:     680px;
  width:         100%;
  max-height:    88vh;
  overflow-y:    auto;
  position:      relative;
  transform:     scale(.94) translateY(16px);
  transition:    transform .3s cubic-bezier(.34,1.36,.64,1);
  box-shadow:    0 32px 80px rgba(2,3,24,.4);
}
.rei-speakers-modal__backdrop.is-open .rei-speakers-modal {
  transform: scale(1) translateY(0);
}

.rei-speakers-modal__top {
  background:    linear-gradient(135deg,#020318 0%,#021047 65%,#012060 100%);
  border-radius: 20px 20px 0 0;
  padding:       2.5rem 2.5rem 0;
  position:      relative;
  overflow:      hidden;
  min-height:    140px;
}
.rei-speakers-modal__top::before {
  content:  '';
  position: absolute;
  inset:    0;
  background-image: radial-gradient(rgba(1,139,255,.1) 1px, transparent 1px);
  background-size:  22px 22px;
}
.rei-speakers-modal__top::after {
  content:    '';
  position:   absolute;
  right:      -60px;
  top:        -60px;
  width:      280px;
  height:     280px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(1,139,255,.12) 0%, transparent 70%);
  pointer-events: none;
}

.rei-speakers-modal__close {
  position: absolute;
  top:      1.25rem;
  right:    1.25rem;
  z-index:  10;
  width:    36px;
  height:   36px;
  border-radius: 50%;
  background: rgba(255,255,255,.1);
  border:   1px solid rgba(255,255,255,.15);
  cursor:   pointer;
  display:  flex;
  align-items: center;
  justify-content: center;
  color:    rgba(255,255,255,.7);
  font-size: 18px;
  font-family: inherit;
  transition: background .2s, color .2s;
  line-height: 1;
  padding:   0;
}
.rei-speakers-modal__close:hover {
  background: rgba(255,255,255,.2);
  color:      #fff;
}

.rei-speakers-modal__avatar-wrap {
  display:         flex;
  justify-content: center;
  margin-top:      -52px;
  position:        relative;
  z-index:         2;
}
.rei-speakers-modal__avatar {
  width:  104px;
  height: 104px;
  border-radius: 50%;
  border: 4px solid var(--rei-white);
  box-shadow: 0 6px 28px rgba(1,139,255,.3);
  object-fit: cover;
  background: linear-gradient(135deg,#021047,#018BFF);
}
.rei-speakers-modal__avatar--initials {
  display:         flex;
  align-items:     center;
  justify-content: center;
  font-size:       1.8rem;
  font-weight:     800;
  color:           #fff;
}

.rei-speakers-modal__body {
  padding:    1.25rem 2.5rem 2.5rem;
  text-align: center;
}
.rei-speakers-modal__badge {
  display:        inline-block;
  margin-bottom:  .875rem;
  border-radius:  var(--rei-rp);
  font-size:      9px;
  font-weight:    700;
  padding:        3px 12px;
  letter-spacing: .1em;
  text-transform: uppercase;
  background:     rgba(1,139,255,.15);
  color:          var(--rei-cyan);
}
.rei-speakers-modal__name {
  font-size:      1.6rem;
  font-weight:    800;
  color:          var(--rei-text);
  letter-spacing: -.03em;
  margin-bottom:  4px;
  line-height:    1.1;
}
.rei-speakers-modal__role {
  font-size:      13px;
  font-weight:    700;
  color:          var(--rei-cyan);
  text-transform: uppercase;
  letter-spacing: .1em;
  margin-bottom:  3px;
}
.rei-speakers-modal__company {
  font-size:     13px;
  color:         var(--rei-text3);
  margin-bottom: 1.5rem;
}
.rei-speakers-modal__divider {
  height:     1px;
  background: var(--rei-border);
  margin:     0 0 1.5rem;
}
.rei-speakers-modal__section-lbl {
  font-size:      9px;
  font-weight:    700;
  text-transform: uppercase;
  letter-spacing: .18em;
  color:          var(--rei-cyan);
  margin-bottom:  .5rem;
  text-align:     left;
}
.rei-speakers-modal__section-lbl--muted {
  color: var(--rei-text3);
}
.rei-speakers-modal__talk {
  background:    linear-gradient(135deg,#020318,#021047);
  border-radius: 10px;
  padding:       1.1rem 1.4rem;
  margin-bottom: 1.5rem;
  text-align:    left;
  border:        1px solid rgba(1,139,255,.18);
}
.rei-speakers-modal__talk p {
  font-size:   14px;
  font-weight: 600;
  color:       #fff;
  line-height: 1.5;
  font-style:  italic;
  margin:      0;
}
.rei-speakers-modal__bio {
  font-size:   14px;
  color:       var(--rei-text2);
  line-height: 1.85;
  font-weight: 300;
  text-align:  left;
  white-space: pre-line;
}

/* Responsive */
@media (max-width: 640px) {
  .rei-speakers-modal__top  { padding: 2rem 1.5rem 0; }
  .rei-speakers-modal__body { padding: 1.25rem 1.5rem 2rem; }
}

/* Body scroll lock */
body.rei-speakers-modal-open {
  overflow: hidden;
}
