/* ============================================================
   /palestrante — estilos da página (Design System "Palco")
   Carregado depois de design-system.css. Usa apenas tokens --ds-*.
   Prefixo pl- para não colidir com nenhum outro arquivo.
   ============================================================ */

/* ─── Base mínima da página (design-system.css não estiliza tags soltas) ─ */
.pl-page,
.pl-page *,
.pl-page *::before,
.pl-page *::after { box-sizing: border-box; }
.pl-page {
  margin: 0;
  background: var(--ds-ink);
  color: var(--ds-text);
  font-family: var(--ds-font-body);
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}
.pl-page img { max-width: 100%; }
.pl-page main { display: block; }
.pl-page a:focus-visible { outline: 2px solid var(--ds-red-light); outline-offset: 3px; }

/* ─── Abertura ──────────────────────────────────────────────── */
.pl-hero { padding-block: clamp(40px, 7vw, 96px) clamp(56px, 8vw, 104px); }
.pl-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: clamp(32px, 6vw, 80px);
  align-items: center;
}
.pl-hero__title {
  margin: 0;
  font: 600 var(--ds-fs-hero)/1.04 var(--ds-font-display);
  letter-spacing: -0.015em;
  color: var(--ds-white);
  text-wrap: balance;
}
.pl-hero__title em {
  font-style: italic;
  font-weight: 400;
  color: var(--ds-red-light);
  text-shadow: 0 0 32px var(--ds-red-glow);
}
.pl-hero__line { margin: var(--ds-s5) 0 0; }
.pl-hero__lead {
  max-width: 54ch;
  margin: var(--ds-s5) 0 0;
  font-size: var(--ds-fs-lead);
  line-height: 1.65;
  color: var(--ds-text-inv-2);
  text-wrap: pretty;
}
.pl-hero__actions { margin-top: var(--ds-s6); }
.pl-hero__photo { aspect-ratio: 1 / 1; max-height: 560px; }
.pl-hero__photo img { object-position: 50% 18%; }
.pl-hero__stats { margin-top: clamp(40px, 6vw, 72px); }

/* ─── Temas: cards sem imagem, mesma altura ─────────────────── */
.pl-topic .ds-card__body { padding: 26px 24px 22px; gap: 12px; }
.pl-topic .ds-card__title { font-size: 1.375rem; }
.pl-topic .ds-card__foot { flex-wrap: wrap; row-gap: 10px; }
.pl-topic .ds-meta { flex: 1 1 160px; }

/* ─── Palestras ─────────────────────────────────────────────── */
.pl-lectures { align-items: stretch; }
.pl-lectures .ds-card__foot { flex-wrap: wrap; row-gap: 10px; }
.pl-lectures .ds-meta { flex: 1 1 140px; }

.pl-subtitle {
  margin: 0 0 var(--ds-s4);
  font: 700 var(--ds-fs-label)/1.2 var(--ds-font-stage);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ds-mute);
}
.pl-upcoming { margin-top: var(--ds-s7); }
.pl-upcoming .ds-timeline b a { color: inherit; text-decoration: none; }
.pl-upcoming .ds-timeline b a:hover { color: var(--ds-red-light); }

.pl-note {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--ds-s3) var(--ds-s5);
  margin: var(--ds-s7) auto 0;
  max-width: 72ch;
  font-size: var(--ds-fs-small);
  line-height: 1.6;
  text-align: center;
  color: var(--ds-text-inv-2);
}
.pl-note strong { color: var(--ds-white); font-weight: 600; }
.pl-note .ds-link { min-height: 44px; color: var(--ds-white); }

/* ─── Palcos recentes ───────────────────────────────────────── */
.pl-stages { align-items: start; }
.pl-stages__photo { aspect-ratio: 4 / 5; position: sticky; top: 96px; }
.pl-stages__photo img { object-position: 35% 30%; }
.pl-stages .ds-heading { margin-bottom: var(--ds-s6); }
.pl-stages .ds-lead em { font-style: italic; color: var(--ds-text); }
.pl-quote { margin-bottom: var(--ds-s7); }
.pl-recent { margin-bottom: var(--ds-s6); }
.pl-recent > li { grid-template-columns: 84px minmax(0, 1fr); }
.pl-recent small { grid-column: 2; text-align: left; margin-top: -10px; }
.pl-recent .ds-timeline__mark { font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; }

/* ─── Livros ────────────────────────────────────────────────── */
.pl-books {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(128px, 1fr));
  gap: clamp(20px, 3vw, 32px);
  margin: 0 0 var(--ds-s7);
  padding: 0;
  list-style: none;
}
.pl-book {
  display: flex;
  flex-direction: column;
  gap: var(--ds-s2);
  height: 100%;
  color: var(--ds-text-inv);
  text-decoration: none;
}
.pl-book__cover {
  position: relative;
  display: block;
  aspect-ratio: 2 / 3;
  margin-bottom: var(--ds-s2);
  overflow: hidden;
  border-radius: var(--ds-r-sm);
  background: var(--ds-surface-2);
  border: 1px solid var(--ds-line-inv);
  box-shadow: var(--ds-shadow-card);
  transition: transform var(--ds-dur) var(--ds-ease), box-shadow var(--ds-dur) var(--ds-ease);
}
.pl-book__cover img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pl-book__title {
  font: 600 0.95rem/1.35 var(--ds-font-display);
  color: var(--ds-white);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.pl-center { justify-content: center; }

/* ─── Formatos: programa de palco ───────────────────────────── */
.pl-formats { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--ds-line); }
.pl-formats > li {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.4fr) minmax(0, 1.5fr);
  gap: var(--ds-s5);
  align-items: baseline;
  padding: var(--ds-s5) var(--ds-s3);
  border-bottom: 1px solid var(--ds-line);
  transition: background 0.3s ease;
}
.pl-formats > li:hover { background: var(--ds-red-soft); }
.pl-formats__time {
  font: 700 0.875rem/1.3 var(--ds-font-stage);
  letter-spacing: 0.04em;
  color: var(--ds-red);
}
.pl-formats__name { font: 600 1.25rem/1.3 var(--ds-font-display); color: var(--ds-text); }
.pl-formats__where { font-size: var(--ds-fs-small); line-height: 1.5; color: var(--ds-text-2); }

/* ─── Contratação e CTA final ───────────────────────────────── */
.pl-steps > li { grid-template-columns: 56px minmax(0, 1fr) auto; }
.pl-steps .ds-timeline__mark { color: var(--ds-red-light); }
.pl-steps b { color: var(--ds-white); }
.pl-note--center { margin-top: var(--ds-s6); }

.pl-cta {
  position: relative;
  margin-top: clamp(48px, 7vw, 80px);
  padding: clamp(32px, 6vw, 56px) clamp(20px, 5vw, 56px);
  border-radius: var(--ds-r-card);
  text-align: center;
  background:
    radial-gradient(70% 90% at 50% 0%, rgba(255, 255, 255, 0.06), transparent 70%),
    var(--ds-surface);
  border: 1px solid var(--ds-line-inv);
  box-shadow: 0 0 0 1px var(--ds-red-soft), 0 0 60px -20px var(--ds-red-glow);
}
.pl-cta::before {
  content: '';
  position: absolute;
  inset: 0 15% auto;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--ds-red-light), transparent);
  box-shadow: 0 0 18px var(--ds-red-glow);
}
.pl-cta__title {
  margin: 0;
  font: 600 var(--ds-fs-h2)/1.12 var(--ds-font-display);
  color: var(--ds-white);
  text-wrap: balance;
}
.pl-cta__text {
  max-width: 48ch;
  margin: var(--ds-s4) auto var(--ds-s6);
  font-size: var(--ds-fs-lead);
  line-height: 1.6;
  color: var(--ds-text-inv-2);
}
.pl-cta .ds-btn--ghost { color: var(--ds-text-inv); text-transform: none; letter-spacing: 0.02em; font-weight: 600; font-size: 0.875rem; }
.pl-cta__aside {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--ds-s2) var(--ds-s4);
  margin: var(--ds-s6) 0 0;
  font-size: var(--ds-fs-small);
  color: var(--ds-text-inv-2);
}
.pl-cta__aside .ds-link { min-height: 44px; color: var(--ds-white); }

/* O rodapé compartilhado também é escuro: um filete separa os dois palcos */
.pl-page .ds-next { border-top: 1px solid var(--ds-line-inv); }

/* ─── Interação ─────────────────────────────────────────────── */
@media (hover: hover) {
  .pl-book:hover .pl-book__cover { transform: translateY(-6px); box-shadow: var(--ds-shadow-lift); }
  .pl-book:hover .pl-book__title { color: var(--ds-red-light); }
}

/* ─── Responsivo ────────────────────────────────────────────── */
@media (max-width: 900px) {
  .pl-hero__grid { grid-template-columns: minmax(0, 1fr); }
  .pl-hero__photo { aspect-ratio: 4 / 3; max-height: none; }
  .pl-stages__photo { position: relative; top: auto; aspect-ratio: 4 / 3; }
}
@media (max-width: 768px) {
  .pl-hero { padding-top: var(--ds-s6); }
  .pl-hero__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pl-hero__stats .ds-stat { padding: 18px 16px; }
  .pl-formats > li { grid-template-columns: minmax(0, 1fr); gap: var(--ds-s1); padding: var(--ds-s4) var(--ds-s2); }
  .pl-formats__name { font-size: 1.125rem; }
  .pl-books { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pl-steps > li { grid-template-columns: 40px minmax(0, 1fr); }
  .pl-recent > li { grid-template-columns: 76px minmax(0, 1fr); }
  .pl-note { flex-direction: column; gap: var(--ds-s2); }
}

@media (prefers-reduced-motion: reduce) {
  .pl-book__cover,
  .pl-formats > li { transition: none !important; }
}
