/* ==========================================================================
   Typography, page headers, long-form prose and pill breadcrumbs
   ========================================================================== */

.tv-page-header { padding-block: clamp(12px, 3vw, 28px) clamp(16px, 3vw, 24px); }
.tv-page-title {
  margin: 0;
  font-size: clamp(1.75rem, 3.4vw, 2.5rem);
  font-weight: 800;
  letter-spacing: -0.02em;
}
.tv-page-intro { max-width: 64ch; margin-top: 10px; color: var(--tv-color-text-muted); }

.tv-prose { max-width: 72ch; color: var(--tv-color-text-body); font-size: 1rem; line-height: 1.75; }
.tv-prose > * { margin-top: 0; margin-bottom: 1.1em; }
.tv-prose h2 { margin-top: 1.8em; font-size: 1.5rem; }
.tv-prose h3 { margin-top: 1.5em; font-size: 1.2rem; }
.tv-prose a { color: var(--tv-color-text-main); text-decoration-color: var(--tv-color-accent); text-decoration-thickness: 2px; }
.tv-prose ul, .tv-prose ol { padding-left: 1.3em; }
.tv-prose li + li { margin-top: .35em; }
.tv-prose img, .tv-prose figure { border-radius: 16px; }
.tv-prose figure { margin-inline: 0; }
.tv-prose figcaption { margin-top: 8px; color: var(--tv-color-text-muted); font-size: var(--tv-text-sm); }
.tv-prose blockquote {
  margin-inline: 0;
  padding: 4px 0 4px 18px;
  border-left: 3px solid var(--tv-color-accent);
  color: var(--tv-color-text-main);
  font-size: 1.08rem;
}
.tv-prose code {
  padding: 2px 6px;
  border-radius: 6px;
  background: var(--tv-color-divider);
  font-size: .9em;
}
.tv-prose pre { overflow-x: auto; padding: 16px; border-radius: 14px; background: var(--tv-color-primary); color: #e2e8f0; }
.tv-prose pre code { padding: 0; background: none; }
.tv-prose table { width: 100%; border-collapse: collapse; font-size: var(--tv-text-base); }
.tv-prose th, .tv-prose td { padding: 10px 12px; border-bottom: 1px solid var(--tv-color-border); text-align: left; }
.tv-prose hr { border: 0; border-top: 1px solid var(--tv-color-border); margin-block: 2em; }

/* --------------------------------------------------------------------------
   Pill breadcrumbs
   -------------------------------------------------------------------------- */
.tv-breadcrumbs {
  max-width: 100%;
  margin: 20px 0 6px;
  overflow-x: auto;
  scrollbar-width: none;
}
.tv-breadcrumbs::-webkit-scrollbar { display: none; }
.tv-breadcrumb-list {
  display: inline-flex;
  align-items: center;
  margin: 0;
  padding: 4px;
  list-style: none;
  border: 1px solid var(--tv-color-border);
  border-radius: var(--tv-radius-pill);
  background: var(--tv-color-surface);
  box-shadow: var(--tv-shadow-sm);
  font-size: 13px;
  line-height: 1;
  white-space: nowrap;
}
.tv-breadcrumb-item { display: inline-flex; align-items: center; }
.tv-breadcrumb-link,
.tv-breadcrumb-text {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 11px;
  border-radius: var(--tv-radius-pill);
  color: var(--tv-color-text-muted);
  font-weight: 600;
  text-decoration: none;
  transition: background-color .2s var(--tv-ease), color .2s var(--tv-ease);
}
.tv-breadcrumb-link:hover { background: var(--tv-color-divider); color: var(--tv-color-text-main); }
.tv-breadcrumb-home { color: var(--tv-color-text-subtle); }
.tv-breadcrumb-link:hover .tv-breadcrumb-home { color: inherit; }
.tv-breadcrumb-sep { display: inline-flex; color: var(--tv-color-border-hover); }
.tv-breadcrumb-current .tv-breadcrumb-text {
  max-width: 34ch;
  overflow: hidden;
  background: var(--tv-color-divider);
  color: #334155;
  font-weight: 800;
  text-overflow: ellipsis;
}
.tv-breadcrumb-current .tv-breadcrumb-text span { overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 600px) {
  .tv-breadcrumb-current .tv-breadcrumb-text { max-width: 22ch; }
}
