/* 1. Widget Title */
.esl-widget-title-wrap {
  margin-bottom: 2rem;   /* default, overridden by control */
}
.esl-widget-title-wrap { text-align: left; } /* default */
.esl-widget-title {
  margin: 0;
}

/* 2. Category title flanked by lines */
.esl-cat-title-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
}
.esl-cat-title-wrap:before,
.esl-cat-title-wrap:after {
  content: '';
  flex: 1;
  height: 1px;
  background: currentColor;
}
.esl-cat-title-wrap:before { margin-right: 0.75em; }
.esl-cat-title-wrap:after  { margin-left:  0.75em; }

.esl-cat-title { margin: 0; white-space: nowrap; }

/* 3. Grid & items */
.esl-wrapper       { --esl-cols: 3; }
.esl-grid          {
  display: grid;
  grid-template-columns: repeat(var(--esl-cols), 1fr);
  gap: 2rem;
}
.esl-item          {
  text-align: center;
}

/* 4. Speaker photo */
.esl-photo img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
  border-radius: 50%;
  margin-left: auto;
  margin-right: auto;
}

/* 5. Name & designation defaults */
.esl-name {
  margin: 16px 0 8px;
  font-weight: 600;
}
.esl-designation {
  margin: 8px 0 0;
  font-size: 0.95em;
  line-height: 1.4;
}
