/*
 * Session Speakers widget — structural CSS only.
 * All sizing, spacing, colours, typography and column counts
 * are set via the Elementor panel controls.
 */

/* Outer container — both layouts use CSS grid */
.session-speakers {
  display: grid;
  width: 100%;
}

/* Every item is a flex container */
.session-speakers .session-speaker-item {
  display: flex;
  align-items: flex-start;
}

/* ── Image wrapper — holds image + moderator label as a column ────── */

.session-speakers .session-speaker-image-wrap {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

/* ── Moderator label — inline-block so it can be a lozenge ─────────── */

.session-speakers .session-moderator-label {
  display: inline-block;
}

/* ── List layout: image left, text right ─────────────────────────── */

.session-speakers.speaker-layout-line .session-speaker-item {
  flex-direction: row;
}

.session-speakers.speaker-layout-line .session-speaker-image-wrap {
  flex-shrink: 0;
}

.session-speakers.speaker-layout-line .session-speaker-image {
  object-fit: cover;
}

.session-speakers.speaker-layout-line .session-speaker-detail {
  padding-left: 10px;
  padding-top: 5px;
  line-height: 1.1;
}

/* ── Grid layout: image top, text below ──────────────────────────── */

.session-speakers.speaker-layout-grid .session-speaker-item {
  flex-direction: column;
}

.session-speakers.speaker-layout-grid .session-speaker-image {
  width: 100%;
  object-fit: cover;
}

.session-speakers.speaker-layout-grid .session-speaker-detail {
  position: relative;
  padding-top: 15px;
}

/* ── Overflow indicator ──────────────────────────────────────────── */

.session-speakers .session-more-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 8px;
  font-size: 12px;
  color: #fff;
  background-color: rgba(0, 0, 102, .30);
}

/* ── Subsession layout (separate widget variant) ─────────────────── */

.session-speakers.speaker-layout-subsession {
  gap: 20px;
  align-items: flex-start;
}

.session-speakers.speaker-layout-subsession .speaker-item {
  display: flex;
  flex-direction: row;
  width: 100%;
  gap: 20px;
}

.session-speakers.speaker-layout-subsession .speaker-image-wrapper {
  min-width: 120px;
}

.session-speakers.speaker-layout-subsession .speaker-image {
  width: 120px;
  height: 120px;
  object-fit: cover;
  display: block;
}

.session-speakers.speaker-layout-subsession .speaker-image-wrapper .speaker-role {
  display: block;
  width: 100%;
  padding: 5px 12px;
  background-color: var(--e-global-color-primary);
  color: #fff;
  font-size: 13px;
  text-transform: uppercase;
  line-height: 1;
  text-align: center;
}
