/* Óvodai Programok – public output. Uses the theme's colour variables. */
.dop-programs, .dop-single { --dop-indigo: var(--color-indigo, #123A59); --dop-blue: var(--color-blue, #28658C); --dop-light: var(--color-blue-light, #DCEAF2); --dop-line: var(--color-line, #D6E4EC); --dop-text: var(--color-text, #243746); --dop-muted: var(--color-muted, #526B7C); min-width: 0; }
.dop-programs { overflow-x: hidden; }
.dop-eyebrow { margin: 0 0 .4rem; color: var(--dop-blue); font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }

/* category filter */
.dop-filters { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1.5rem; }
.dop-filter { display: inline-flex; min-height: 40px; align-items: center; padding: .35rem .9rem; border: 1px solid var(--dop-line); border-radius: 999px; color: var(--dop-indigo); background: #fff; font-weight: 700; text-decoration: none; }
.dop-filter:hover, .dop-filter.is-active { border-color: var(--dop-indigo); color: #fff; background: var(--dop-indigo); }

.dop-section { margin-block: clamp(2rem, 5vw, 3.5rem); }
.dop-section__head h2 { margin: 0 0 1.2rem; color: var(--dop-indigo); }
.dop-empty { padding: 1.3rem; border: 1px dashed var(--dop-line); border-radius: 12px; color: var(--dop-muted); background: #fff; }

/* grid: 1 column mobile, 2 tablet, 3 desktop */
.dop-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
@media (min-width: 700px) { .dop-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .dop-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* card */
.dop-card { display: flex; min-width: 0; flex-direction: column; overflow: hidden; border: 1px solid var(--dop-line); border-radius: 14px; background: #fff; box-shadow: 0 6px 20px rgb(18 58 89 / 8%); }
.dop-card--past { opacity: .92; }
.dop-card__poster { display: block; background: var(--dop-light); line-height: 0; }
.dop-card__poster .dop-poster-img, .dop-single__poster .dop-poster-img { display: block; width: 100%; max-width: 100%; height: auto; object-fit: contain; }
.dop-card__poster--empty { display: grid; min-height: 150px; place-items: center; color: var(--dop-blue); font-size: 3rem; line-height: 1; }
.dop-card__body { display: flex; flex: 1; flex-direction: column; align-items: flex-start; padding: 1.15rem 1.25rem 1.3rem; }
.dop-card__category { margin: 0 0 .5rem; padding: .2rem .65rem; border-radius: 999px; color: var(--dop-indigo); background: var(--dop-light); font-size: .76rem; font-weight: 800; }
.dop-card h3 { margin: 0 0 .6rem; color: var(--dop-indigo); font-size: 1.25rem; line-height: 1.25; overflow-wrap: anywhere; }
.dop-card h3 a { color: inherit; text-decoration: none; }
.dop-card h3 a:hover { color: var(--dop-blue); }
.dop-facts { display: grid; gap: .25rem; margin: 0 0 .75rem; padding: 0; list-style: none; color: var(--dop-text); font-size: .95rem; }
.dop-fact { display: flex; gap: .5rem; align-items: baseline; }
.dop-fact--date { font-weight: 800; color: var(--dop-indigo); }
.dop-card__excerpt { margin: 0 0 1rem; color: var(--dop-muted); }
.dop-button { display: inline-flex; min-height: 42px; align-items: center; gap: .35rem; margin-top: auto; padding: .5rem 1rem; border-radius: 8px; color: #fff; background: var(--dop-indigo); font-weight: 800; text-decoration: none; }
.dop-button:hover { background: var(--dop-blue); color: #fff; }
.dop-button--light { color: var(--dop-indigo); background: var(--dop-light); }
.dop-button--light:hover { color: #fff; }

/* single program */
.dop-single { padding-block: clamp(2rem, 5vw, 4rem); }
.dop-single__article { max-width: 900px; margin: 0 auto; min-width: 0; overflow-x: hidden; }
.dop-single__header { margin-bottom: 1.5rem; text-align: center; }
.dop-single__header h1 { margin: .2rem 0 1rem; color: var(--dop-indigo); font-size: clamp(2rem, 4.4vw, 3.1rem); line-height: 1.15; overflow-wrap: anywhere; }
.dop-single__header .dop-facts { justify-content: center; justify-items: center; font-size: 1.05rem; }
.dop-single__lead { margin: 1rem auto 0; max-width: 680px; color: var(--dop-muted); font-size: 1.1rem; }
.dop-single__poster { max-width: min(100%, var(--dop-poster-max, 1200px)); margin: 0 auto 2rem; border-radius: 12px; overflow: hidden; background: var(--dop-light); line-height: 0; }
.dop-single__content { color: var(--dop-text); font-size: 1.05rem; line-height: 1.8; overflow-wrap: anywhere; }
.dop-single__content img, .dop-single__content video, .dop-single__content iframe { max-width: 100%; height: auto; object-fit: contain; }
.dop-single__content img { display: block; margin: 20px auto; }
.dop-single__content figure { max-width: 100% !important; margin-inline: auto; }
.dop-single__footer { margin-top: 2rem; padding-top: 1.3rem; border-top: 1px solid var(--dop-line); }
