.poster-carousel { --poster-interval: 10000ms; }
.poster-card {
  max-width: 820px; margin-inline: auto; background: #fff;
  border: 2px solid var(--colorPrimary, #386cb1);
  border-radius: 10px; overflow: hidden;
  box-shadow: 0 4px 16px rgb(0 0 0 / 8%);
}
.poster-preview { display: block; width: 100%; height: auto; padding: 0; border: 0; background: #eee; cursor: zoom-in; }
.poster-preview img { display: block; width: 100%; height: auto; }
.poster-card-content { padding: 1.25rem 1.5rem; }
.poster-card-header { margin-bottom: 1rem; }
.poster-label { color: var(--colorLowlight, #667085); font-size: .8rem; margin-bottom: .35rem; }
.poster-card-header .heading-with-icon { padding-bottom: 0; }
.poster-card-text { line-height: 1.65; font-size: .95rem; }
.poster-card-text > :last-child { margin-bottom: 0; }
.poster-card-footer { display: flex; justify-content: flex-end; margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid rgb(0 0 0 / 9%); }
.poster-card--text-only .poster-card-content { padding: 1.5rem 1.75rem; }
.poster-modal { position: relative; border: 0; background: transparent; }
.poster-modal-image { display: block; width: auto; max-width: 100%; max-height: calc(100dvh - 3rem); height: auto; margin: auto; object-fit: contain; box-shadow: 0 8px 40px rgb(0 0 0 / 35%); }
.poster-modal-close { position: absolute; z-index: 5; right: .7rem; top: .7rem; padding: .7rem; border-radius: 50%; background-color: #fff; opacity: .95; }
/* Indikátory jsou pod kartou, ne přes obrázek. */
.poster-carousel { padding-bottom: 23px; }
.poster-carousel .poster-indicators { bottom: 0; margin: 0; gap: 7px; align-items: center; }
.poster-carousel .poster-indicators [data-bs-slide-to] {
  box-sizing: border-box; width: 30px; height: 4px; padding: 0; margin: 0;
  border: 0; border-radius: 100px; background: rgb(0 0 0 / 14%);
  opacity: 1; overflow: hidden; text-indent: 0;
}
.poster-progress-fill { display: block; height: 100%; width: 0; background: var(--colorPrimary, #386cb1); border-radius: inherit; }
.poster-carousel .poster-indicators [data-bs-slide-to].active .poster-progress-fill {
  animation: poster-progress var(--poster-interval) linear both;
}
@keyframes poster-progress { from { width: 0; } to { width: 100%; } }
.poster-carousel:hover .poster-progress-fill,
.poster-carousel:focus-within .poster-progress-fill { animation-play-state: paused !important; }
@media (max-width: 575.98px) {
  .poster-card-content, .poster-card--text-only .poster-card-content { padding: 1rem; }
  .poster-card-footer .btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .poster-carousel .poster-progress-fill { animation: none !important; }
  .poster-carousel .poster-indicators .active .poster-progress-fill { width: 100%; }
}
