.sp-programacao {
  --sp-azul-escuro: #063a59;
  --sp-azul: #087ba2;
  --sp-ciano: #13b5c8;
  --sp-verde: #7fba3b;
  --sp-amarelo: #f6b91a;
  --sp-laranja: #f28b28;
  --sp-roxo: #7556a4;
  --sp-branco: #ffffff;
  --sp-fundo: #f4f8fa;
  --sp-texto: #173042;
  --sp-texto-suave: #647785;
  --sp-borda: #dbe7ec;
  --sp-sombra: 0 18px 45px rgba(4, 49, 73, 0.10);
  position: relative;
  overflow: hidden;
  padding: 80px 20px;
  background:
    radial-gradient(circle at 8% 8%, rgba(19, 181, 200, 0.13), transparent 29%),
    radial-gradient(circle at 92% 92%, rgba(127, 186, 59, 0.12), transparent 30%),
    var(--sp-fundo);
  color: var(--sp-texto);
  font-family: 'Ubuntu Sans', Ubuntu, Arial, sans-serif;
}

.sp-programacao,
.sp-programacao * { box-sizing: border-box; }

.sp-programacao button,
.sp-programacao h2,
.sp-programacao h3,
.sp-programacao h4,
.sp-programacao p { font-family: 'Ubuntu Sans', Ubuntu, Arial, sans-serif; }

.sp-programacao__container { width: min(1180px, 100%); margin: 0 auto; }

.sp-programacao__cabecalho { max-width: 900px; margin: 0 auto 36px; text-align: center; }

.sp-programacao__edicao {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  margin-bottom: 16px;
  padding: 7px 15px;
  border: 1px solid rgba(8, 123, 162, 0.18);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.78);
  color: var(--sp-azul);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.10em;
}

.sp-programacao__cabecalho h2 {
  margin: 0;
  color: var(--sp-azul-escuro);
  font-size: clamp(34px, 6vw, 62px);
  font-weight: 900;
  line-height: 0.98;
  letter-spacing: -0.035em;
}

.sp-programacao__cabecalho > p {
  max-width: 720px;
  margin: 18px auto 0;
  color: var(--sp-texto-suave);
  font-size: clamp(16px, 2vw, 19px);
  line-height: 1.65;
}

.sp-programacao__resumo {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px 20px;
  margin-top: 23px;
}

.sp-programacao__resumo span {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: var(--sp-azul-escuro);
  font-size: 14px;
  font-weight: 750;
}

.sp-programacao__resumo svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: var(--sp-ciano);
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.sp-programacao__abas {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  max-width: 800px;
  margin: 0 auto 28px;
  padding: 7px;
  border: 1px solid rgba(8, 123, 162, 0.13);
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 14px 35px rgba(4, 49, 73, 0.08);
  backdrop-filter: blur(12px);
}

.sp-programacao__aba {
  appearance: none;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 3px;
  width: 100%;
  min-height: 78px;
  padding: 16px 20px;
  border: 0;
  border-radius: 18px;
  background: transparent;
  color: var(--sp-texto-suave);
  text-align: left;
  cursor: pointer;
  transition: transform .22s ease, background .22s ease, color .22s ease, box-shadow .22s ease;
}

.sp-programacao__aba:hover { transform: translateY(-2px); color: var(--sp-azul-escuro); }
.sp-programacao__aba:focus-visible { outline: 3px solid rgba(19, 181, 200, 0.32); outline-offset: 3px; }

.sp-programacao__aba.is-active {
  background: linear-gradient(135deg, var(--sp-azul-escuro), var(--sp-azul));
  color: var(--sp-branco);
  box-shadow: 0 12px 26px rgba(6, 58, 89, 0.23);
}

.sp-programacao__aba-numero { font-size: 16px; font-weight: 900; letter-spacing: .06em; }
.sp-programacao__aba-data { font-size: 12px; font-weight: 700; letter-spacing: .04em; opacity: .82; }
.sp-programacao__dia { display: none; margin-top: 22px; }
.sp-programacao__dia.is-active { display: block; }

.sp-programacao__dia-topo {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 25px;
  margin-bottom: 22px;
  padding: 28px 32px;
  border-radius: 25px;
  background: linear-gradient(115deg, rgba(6,58,89,.98), rgba(8,123,162,.93)), var(--sp-azul-escuro);
  color: var(--sp-branco);
  box-shadow: var(--sp-sombra);
}

.sp-programacao__dia-etiqueta {
  display: inline-block;
  margin-bottom: 6px;
  color: rgba(255,255,255,.72);
  font-size: 12px;
  font-weight: 850;
  letter-spacing: .13em;
}

.sp-programacao__dia-topo h3 {
  margin: 0;
  color: var(--sp-branco);
  font-size: clamp(25px, 4vw, 39px);
  font-weight: 900;
  line-height: 1.1;
  letter-spacing: -.02em;
}




.sp-programacao__timeline { position: relative; display: grid; gap: 14px; }

.sp-programacao__timeline::before {
  content: "";
  position: absolute;
  top: 32px;
  bottom: 32px;
  left: 118px;
  width: 2px;
  background: linear-gradient(to bottom, rgba(19,181,200,.18), rgba(19,181,200,.68), rgba(127,186,59,.35));
}

.sp-evento { position: relative; display: grid; grid-template-columns: 88px 32px minmax(0, 1fr); align-items: stretch; }

.sp-evento__horario {
  align-self: start;
  padding-top: 25px;
  color: var(--sp-azul-escuro);
  font-size: 20px;
  font-weight: 900;
  line-height: 1;
  text-align: right;
  letter-spacing: -.02em;
}

.sp-evento__marcador {
  position: relative;
  z-index: 2;
  align-self: start;
  justify-self: center;
  width: 16px;
  height: 16px;
  margin-top: 26px;
  border: 4px solid var(--sp-fundo);
  border-radius: 50%;
  background: var(--sp-ciano);
  box-shadow: 0 0 0 2px rgba(19,181,200,.32);
}

.sp-evento__conteudo {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: center;
  min-width: 0;
  padding: 22px 24px 23px;
  border: 1px solid var(--sp-borda);
  border-radius: 20px;
  background: rgba(255,255,255,.94);
  box-shadow: 0 10px 26px rgba(4,49,73,.055);
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.sp-evento__conteudo.has-logo {
  grid-template-columns: minmax(0, 1fr) minmax(170px, 225px);
  gap: 34px;
  min-height: 190px;
}

.sp-evento__corpo {
  min-width: 0;
}

.sp-evento__conteudo::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 5px;
  border-radius: 20px 0 0 20px;
  background: var(--sp-ciano);
}

.sp-evento:hover .sp-evento__conteudo {
  transform: translateY(-2px);
  border-color: rgba(8,123,162,.26);
  box-shadow: 0 16px 32px rgba(4,49,73,.09);
}

.sp-evento__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin-bottom: 8px; }

.sp-evento__tipo,
.sp-evento__duracao,
.sp-evento__empresa {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 850;
  line-height: 1;
  letter-spacing: .07em;
}

.sp-evento__tipo { padding: 7px 10px; background: rgba(19,181,200,.11); color: var(--sp-azul); }
.sp-evento__duracao { padding: 7px 9px; background: #edf3f6; color: var(--sp-texto-suave); }

.sp-evento__empresa {
  margin-top: 12px;
  padding: 8px 11px;
  border: 1px solid rgba(8,123,162,.16);
  background: rgba(8,123,162,.07);
  color: var(--sp-azul-escuro);
}

.sp-evento__logo-empresa {
  align-self: stretch;
  justify-self: end;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 115px;
  margin: 0;
  padding: 16px 0 16px 30px;
  border-left: 1px solid rgba(8,123,162,.16);
  background: transparent;
}

.sp-evento__logo-empresa img {
  display: block;
  width: auto;
  max-width: 195px;
  height: auto;
  max-height: 82px;
  object-fit: contain;
}

.sp-evento h4 {
  margin: 6px 0 0;
  color: var(--sp-texto);
  font-size: clamp(17px, 2.2vw, 22px);
  font-weight: 850;
  line-height: 1.34;
  letter-spacing: -.012em;
}

.sp-evento__palestrante { margin: 15px 0 0; color: var(--sp-azul-escuro); font-size: 16px; font-weight: 850; line-height: 1.35; }
.sp-evento__cargo { margin: 4px 0 0; color: var(--sp-texto-suave); font-size: 14px; line-height: 1.45; }
.sp-programacao__vazio { padding: 30px; border-radius: 18px; background: #fff; text-align: center; }

.sp-evento--discussao .sp-evento__marcador,
.sp-evento--discussao .sp-evento__conteudo::before { background: var(--sp-verde); }
.sp-evento--discussao .sp-evento__tipo { background: rgba(127,186,59,.13); color: #53841d; }
.sp-evento--discussao .sp-evento__conteudo { background: rgba(248,253,243,.96); }

.sp-evento--intervalo .sp-evento__marcador,
.sp-evento--intervalo .sp-evento__conteudo::before,
.sp-evento--almoco .sp-evento__marcador,
.sp-evento--almoco .sp-evento__conteudo::before { background: var(--sp-amarelo); }
.sp-evento--intervalo .sp-evento__tipo,
.sp-evento--almoco .sp-evento__tipo { background: rgba(246,185,26,.15); color: #956c00; }
.sp-evento--intervalo .sp-evento__conteudo,
.sp-evento--almoco .sp-evento__conteudo { background: rgba(255,251,238,.97); }

.sp-evento--abertura .sp-evento__marcador,
.sp-evento--abertura .sp-evento__conteudo::before { background: var(--sp-azul-escuro); }
.sp-evento--abertura .sp-evento__tipo { background: rgba(6,58,89,.10); color: var(--sp-azul-escuro); }

.sp-evento--homenagem .sp-evento__marcador,
.sp-evento--homenagem .sp-evento__conteudo::before { background: var(--sp-roxo); }
.sp-evento--homenagem .sp-evento__tipo { background: rgba(117,86,164,.12); color: var(--sp-roxo); }
.sp-evento--homenagem .sp-evento__conteudo { background: rgba(250,247,255,.97); }

.sp-evento--happy .sp-evento__marcador,
.sp-evento--happy .sp-evento__conteudo::before { background: var(--sp-laranja); }
.sp-evento--happy .sp-evento__tipo { background: rgba(242,139,40,.13); color: #ad5b0d; }
.sp-evento--happy .sp-evento__conteudo { background: rgba(255,248,241,.97); }

@media (max-width: 980px) and (min-width: 768px) {
  .sp-evento__conteudo.has-logo {
    grid-template-columns: minmax(0, 1fr) minmax(145px, 180px);
    gap: 24px;
  }

  .sp-evento__logo-empresa {
    padding-left: 22px;
  }

  .sp-evento__logo-empresa img {
    max-width: 155px;
    max-height: 70px;
  }
}

@media (max-width: 767px) {
  .sp-programacao { padding: 58px 14px; }
  .sp-programacao__cabecalho { margin-bottom: 27px; }
  .sp-programacao__resumo { flex-direction: column; align-items: center; }
  .sp-programacao__abas { gap: 7px; padding: 6px; border-radius: 19px; }
  .sp-programacao__aba { min-height: 68px; padding: 13px 11px; border-radius: 14px; }
  .sp-programacao__aba-numero { font-size: 13px; }
  .sp-programacao__aba-data { font-size: 9px; line-height: 1.3; }
  .sp-programacao__dia-topo { padding: 23px 20px; border-radius: 20px; }
  .sp-programacao__timeline::before { left: 13px; }
  .sp-evento { grid-template-columns: 27px minmax(0,1fr); row-gap: 7px; }
  .sp-evento__horario { grid-column: 2; grid-row: 1; justify-self: start; padding: 0 0 0 3px; font-size: 17px; text-align: left; }
  .sp-evento__marcador { grid-column: 1; grid-row: 1 / span 2; width: 14px; height: 14px; margin-top: 3px; }
  .sp-evento__conteudo { grid-column: 2; grid-row: 2; padding: 18px 17px 19px; border-radius: 17px; }
  .sp-evento__conteudo.has-logo { grid-template-columns: minmax(0, 1fr); gap: 18px; min-height: 0; }
  .sp-evento__conteudo::before { width: 4px; border-radius: 17px 0 0 17px; }
  .sp-evento__meta { gap: 5px; }
  .sp-evento h4 { font-size: 17px; }
  .sp-evento__logo-empresa {
    align-self: auto;
    justify-self: stretch;
    justify-content: flex-start;
    min-height: 76px;
    padding: 18px 0 0;
    border-top: 1px solid rgba(8,123,162,.16);
    border-left: 0;
  }
  .sp-evento__logo-empresa img { max-width: 170px; max-height: 58px; }
}

@media (max-width: 420px) {
  .sp-programacao__dia-topo { align-items: flex-start; }
}

@media print {
  .sp-programacao { padding: 0; background: #fff; }
  .sp-programacao__abas { display: none; }
  .sp-programacao__dia { display: block !important; break-inside: avoid; margin-bottom: 35px; }
  .sp-evento__conteudo { box-shadow: none; }
}
