/* Host-site overrides for cast-bootstrap5 tokens. */
:root {
  --cast-bg: #f9f9fb;
  --cast-bg-alt: #eeeef4;
  --cast-surface: #ffffff;

  --cast-text: #1a1a2e;
  --cast-text-muted: #5a5a72;
  --cast-text-light: #9a9aad;

  --cast-accent: #7c3aed;
  --cast-accent-hover: #6d28d9;
  --cast-accent-light: #ede9fe;
  --cast-accent-contrast-text: #ffffff;
  --cast-link-on-white: #6d28d9;

  --cast-border: #e2e2ea;
  --cast-border-strong: #d0d0dc;

  --cast-code-bg: #eeeef4;
  --cast-code-text: #1a1a2e;

  --cast-modal-backdrop: rgba(0, 0, 0, 0.85);
  --cast-gallery-body-bg: rgba(255, 255, 255, 0.8);
  --cast-gallery-header-bg: rgba(255, 255, 255, 1);
  --cast-gallery-footer-bg: rgba(255, 255, 255, 1);
}

[data-bs-theme="dark"] {
  --cast-bg: #0f0f1a;
  --cast-bg-alt: #1a1a2e;
  --cast-surface: #1a1a2e;

  --cast-text: #f1f1f9;
  --cast-text-muted: #9a9ab8;
  --cast-text-light: #6a6a88;

  --cast-accent: #a78bfa;
  --cast-accent-hover: #c4b5fd;
  --cast-accent-light: #1e1640;
  --cast-accent-contrast-text: #1a1a2e;
  --cast-link-on-white: #a78bfa;

  --cast-border: #2d2d44;
  --cast-border-strong: #3d3d5c;

  --cast-code-bg: #1a1a2e;
  --cast-code-text: #f1f1f9;

  --cast-modal-backdrop: rgba(0, 0, 0, 0.85);
  --cast-gallery-body-bg: rgba(15, 15, 26, 0.9);
  --cast-gallery-header-bg: rgba(26, 26, 46, 1);
  --cast-gallery-footer-bg: rgba(26, 26, 46, 1);
}

/* Search modal contrast and token alignment */
.cast-search-overlay {
  background: var(--cast-modal-backdrop);
}

.cast-search-modal {
  background-color: var(--cast-surface);
  color: var(--cast-text);
}

.cast-search-modal .cast-btn-clear {
  color: var(--cast-text);
  background-color: var(--cast-bg-alt);
  border-color: var(--cast-border-strong);
}

.cast-search-modal .cast-btn-clear:hover {
  color: var(--cast-text);
  background-color: var(--cast-surface);
  border-color: var(--cast-border-strong);
}

.cast-search-modal .cast-btn-search,
.cast-search-modal .tag-pill.active {
  color: var(--cast-accent-contrast-text);
}

/* Keep accent-filled player CTA contrast-compliant across themes */
.podlove-facade-play {
  color: var(--cast-accent-contrast-text);
}

/* Prototype-faithful hero hierarchy for the list page */
.cast-hero {
  min-height: 300px;
}

.cast-hero .cast-hero-content {
  max-width: 80ch;
}

.cast-hero .blog-title {
  font-size: clamp(2.5rem, 5vw, 4.5rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  margin-bottom: 0.45rem;
}

.cast-hero .blog-title .python-accent {
  color: var(--cast-accent);
}

.cast-hero .intro.lead,
.cast-hero .intro.lead p {
  font-size: clamp(1.25rem, 1.7vw, 1.5rem);
  font-style: italic;
  font-weight: 400;
  line-height: 1.5;
  color: var(--cast-text-muted);
}

.cast-hero .intro.lead {
  margin-top: 0.6667rem;
}

.cast-hero .intro.lead p {
  margin: 0;
}

.cast-hero .intro.lead strong,
.cast-hero .intro.lead b {
  font-style: normal;
  font-weight: 600;
  color: var(--cast-text);
}

[data-bs-theme="dark"] .cast-hero .intro.lead,
[data-bs-theme="dark"] .cast-hero .intro.lead p {
  color: var(--cast-text-muted);
}

@media (max-width: 640px) {
  .cast-hero {
    min-height: 220px;
  }

  .cast-hero .blog-title {
    font-size: clamp(2rem, 8vw, 2.75rem);
  }
}
