/* Omroep ZOUT Media — frontend */

/* Spotlight */
.ozm-spotlight{display:grid;grid-template-columns:1.5fr 1fr;gap:1.5rem;align-items:center;margin:1.5rem 0}
.ozm-spotlight__player{position:relative;width:100%;background:#000;border-radius:.5rem;overflow:hidden}
.ozm-spotlight__player video,.ozm-spotlight__player iframe,.ozm-spotlight__player img{width:100%;display:block}
.ozm-spotlight__player .ozm-player{width:100%;border-radius:0}
.ozm-spotlight__player .ozm-player--lazy{aspect-ratio:16/9}
.ozm-spotlight__player .ozm-player__play{font-size:4rem!important}
.ozm-embed{position:relative;padding-top:56.25%}
.ozm-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.ozm-spotlight__label{display:inline-block;background:#b91c1c;color:#fff;padding:.15rem .5rem;border-radius:3px;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em}
.ozm-spotlight__title{margin:.5rem 0;font-size:1.75rem;line-height:1.2}
.ozm-spotlight__title a{color:inherit;text-decoration:none}
.ozm-spotlight--empty{padding:1.5rem;border:1px dashed #cbd5e1;border-radius:.5rem;text-align:center;color:#64748b}
@media (max-width:782px){.ozm-spotlight{grid-template-columns:1fr}}

/* Grid */
.ozm-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}
.ozm-grid__item{display:flex;flex-direction:column}
.ozm-grid__thumb{position:relative;display:block;aspect-ratio:16/9;background:#0f172a;border-radius:.5rem;overflow:hidden}
.ozm-grid__thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}
.ozm-grid__thumb:hover img{transform:scale(1.04)}
.ozm-grid__play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:2.5rem;text-shadow:0 2px 8px rgba(0,0,0,.5);opacity:.85;pointer-events:none}
.ozm-grid__duration{position:absolute;right:.5rem;bottom:.5rem;background:rgba(0,0,0,.75);color:#fff;padding:.1rem .4rem;border-radius:3px;font-size:.75rem}
.ozm-grid__live-pill{position:absolute;top:.5rem;left:.5rem;display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .5rem;font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;border-radius:4px;box-shadow:0 2px 6px rgba(0,0,0,.25);z-index:2}
.ozm-grid__live-pill--live{background:#dc2626;color:#fff}
.ozm-grid__live-pill--soon{background:#fed7aa;color:#9a3412}
.ozm-grid__live-dot{width:7px;height:7px;background:#fff;border-radius:50%;animation:ozm-blink 1.4s infinite}

/* ======= Podcast detail (single) ======= */
.ozm-podcast-detail{display:flex;flex-direction:column;gap:1rem}
.ozm-podcast-detail__thumb{aspect-ratio:1;max-width:280px;border-radius:8px;overflow:hidden;background:#0f172a}
.ozm-podcast-detail__thumb img{width:100%;height:100%;object-fit:cover;display:block}
.ozm-podcast-detail__title{margin:.25rem 0 0;font-size:1.6rem;line-height:1.25}
.ozm-podcast-detail__excerpt{color:#475569;font-size:.95rem;line-height:1.55}
.ozm-podcast-detail__tabs{display:inline-flex;gap:.25rem;padding:.25rem;background:#f1f5f9;border-radius:8px;width:fit-content}
.ozm-podcast-detail__tab{padding:.4rem .9rem;background:transparent;border:1px solid transparent;border-radius:6px;font-size:.85rem;font-weight:600;color:#475569;cursor:pointer;transition:background .15s,color .15s}
.ozm-podcast-detail__tab:hover{color:#0f172a}
.ozm-podcast-detail__tab.is-active{background:#fff;color:#0f172a;box-shadow:0 1px 3px rgba(0,0,0,.08)}
.ozm-podcast-detail__pane{display:none}
.ozm-podcast-detail__pane.is-active{display:block}
.ozm-podcast-detail__pane iframe{display:block;width:100%;border:0;border-radius:8px}
.ozm-podcast-detail__links{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.25rem}
.ozm-podcast-detail__link{display:inline-flex;align-items:center;padding:.4rem .9rem;background:#f1f5f9;color:#0f172a;border-radius:999px;font-size:.85rem;font-weight:600;text-decoration:none;transition:background .15s}
.ozm-podcast-detail__link:hover{background:#e2e8f0}
.ozm-podcast-detail__link--spotify{background:#1db95433;color:#0d6b30}
.ozm-podcast-detail__link--spotify:hover{background:#1db9544d}
.ozm-podcast-detail__link--apple{background:#ec4d8033;color:#a01d4f}
.ozm-podcast-detail__link--apple:hover{background:#ec4d804d}
.ozm-podcast-detail__link--rss{background:#fed7aa;color:#9a3412}
.ozm-podcast-detail__link--rss:hover{background:#fdba74}
.ozm-grid__title{margin:.6rem 0 .2rem;font-size:1rem;line-height:1.3}
.ozm-grid__title a{color:inherit;text-decoration:none}
.ozm-grid__title a:hover{text-decoration:underline}
.ozm-grid__meta{font-size:.8rem;color:#64748b}
.ozm-grid__excerpt{font-size:.875rem;color:#475569;margin:.4rem 0 0}

/* Series */
.ozm-series__block{margin:0 0 2.5rem}
.ozm-series__header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:1rem;border-bottom:2px solid #e2e8f0;padding-bottom:.5rem}
.ozm-series__title{margin:0;font-size:1.35rem}
.ozm-series__title a{color:inherit;text-decoration:none}
.ozm-series__more{font-size:.85rem;color:#0369a1;text-decoration:none}

/* Filter */
.ozm-filter{display:flex;flex-wrap:wrap;gap:.75rem;align-items:end;padding:1rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:.5rem}
.ozm-filter__field{display:flex;flex-direction:column;font-size:.85rem;color:#475569}
.ozm-filter__field span{margin-bottom:.25rem;font-weight:600}
.ozm-filter__field select,.ozm-filter__field input{padding:.4rem .6rem;border:1px solid #cbd5e1;border-radius:.25rem;min-width:150px;min-height:2.4rem;box-sizing:border-box;font-size:.95rem;line-height:1.3;background:#fff;color:#0f172a;font-family:inherit}
/* date-inputs renderen browser-eigen calendar-knop met afwijkende hoogte; egaliseren met de select */
.ozm-filter__field input[type="date"]{padding-right:.5rem}
.ozm-filter__field input[type="date"]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.6}
.ozm-filter__field input[type="date"]::-webkit-calendar-picker-indicator:hover{opacity:1}
/* Filter: mobiel inklapbaar (alleen als widget-optie 'collapse_mobile' aan staat) */
.ozm-filter__toggle{display:none}
.ozm-filter-wrap--collapsible .ozm-filter__toggle{display:none;width:100%;padding:.6rem 1rem;border:1px solid #cbd5e1;border-radius:.5rem;background:#f8fafc;color:#0f172a;font-weight:600;font-size:.9rem;cursor:pointer;text-align:left}
.ozm-filter__toggle-icon{float:right;transition:transform .2s}
.ozm-filter__toggle[aria-expanded="true"] .ozm-filter__toggle-icon{transform:rotate(180deg)}
@media(max-width:768px){
.ozm-filter-wrap--collapsible .ozm-filter__toggle{display:block;margin-bottom:.5rem}
.ozm-filter-wrap--collapsible .ozm-filter{display:none}
.ozm-filter-wrap--collapsible.ozm-filter-wrap--open .ozm-filter{display:flex}
}
/* Zoek-veld + highlights-checkbox gestapeld in een kolom */
.ozm-filter__group{display:flex;flex-direction:column;gap:.35rem;align-items:flex-start}
.ozm-filter__group--search{min-width:200px}
.ozm-filter__group--search .ozm-filter__field{width:100%}
.ozm-filter__group--search .ozm-filter__field input[type="text"]{width:100%;min-width:0;box-sizing:border-box}
.ozm-filter__field--checkbox{flex-direction:row;align-items:center;gap:.4rem}
.ozm-filter__field--checkbox input{width:auto;min-width:auto;margin:0}
.ozm-filter__field--checkbox span{margin:0;font-weight:400}
.ozm-filter__field--subtle{font-size:.78rem;color:#64748b;padding-left:.1rem;opacity:.85;transition:opacity .15s}
.ozm-filter__field--subtle:hover{opacity:1}
.ozm-filter__field--subtle span{font-weight:400}
.ozm-filter__reset{padding:.4rem 1rem;min-height:2.4rem;box-sizing:border-box;border:1px solid #cbd5e1!important;border-radius:.25rem;background:#fff;color:#64748b;cursor:pointer;font-size:.9rem;font-weight:500;line-height:1.3;transition:all .15s;box-shadow:none!important;text-decoration:none!important;outline:none!important;display:inline-flex;align-items:center;justify-content:center}
.ozm-filter__reset:hover{background:#fee2e2;color:#b91c1c;border-color:#fca5a5!important}
.ozm-filter__reset:focus-visible{outline:2px solid #fbbf24!important;outline-offset:2px}
/* Verborgen reset-knop: !important nodig om thema-buttons (die display kunnen forceren) te overrulen */
.ozm-filter__reset--hidden{display:none!important}
.ozm-filter-wrap--editor .ozm-filter__reset--hidden{display:inline-flex!important;opacity:.65;outline:2px dashed #94a3b8!important;outline-offset:2px}

/* Player */
.ozm-player{width:100%;background:#000;border-radius:.5rem;overflow:hidden;position:relative;margin:0;padding:0;border:0;box-shadow:none}
.ozm-player--lazy{aspect-ratio:16/9}
/* button-reset met hoge specificiteit om theme-styling te overrulen */
button.ozm-player__poster,.ozm-player .ozm-player__poster{position:relative!important;display:block!important;width:100%!important;height:100%!important;margin:0!important;padding:0!important;border:0!important;background:#000!important;cursor:pointer;overflow:hidden;box-sizing:border-box;appearance:none!important;-webkit-appearance:none!important;font:inherit;color:inherit;box-shadow:none!important;border-radius:.5rem!important}
.ozm-player__poster:focus-visible{outline:3px solid #fff!important;outline-offset:-3px}
.ozm-player .ozm-player__poster>img{width:100%!important;height:100%!important;object-fit:cover!important;display:block!important;margin:0!important;padding:0!important;border:0!important}
.ozm-player .ozm-player__play{position:absolute!important;inset:0!important;display:flex!important;align-items:center!important;justify-content:center!important;width:auto!important;height:auto!important;background:transparent!important;color:#fff!important;font-size:5rem!important;line-height:1!important;padding:0!important;margin:0!important;text-shadow:0 4px 20px rgba(0,0,0,.7)!important;opacity:.95;pointer-events:none;transition:transform .2s,opacity .2s;border:0!important;border-radius:0!important;box-shadow:none!important;z-index:2!important}
.ozm-player__poster:hover .ozm-player__play{opacity:1;transform:scale(1.1)!important}

/* AJAX loading + skeleton */
.ozm-ajax-target{transition:opacity .2s ease}
.ozm-spinner-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.75);z-index:10;border-radius:.5rem;backdrop-filter:blur(2px)}
.ozm-spinner{width:40px;height:40px;border:4px solid #e2e8f0;border-top-color:#0f172a;border-radius:50%;animation:ozm-spin .7s linear infinite}
@keyframes ozm-spin{to{transform:rotate(360deg)}}
/* Skeleton cards */
.ozm-skeleton{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.ozm-skeleton__card{display:flex;flex-direction:column;gap:.5rem}
.ozm-skeleton__rect{background:linear-gradient(90deg,#e2e8f0 25%,#f1f5f9 50%,#e2e8f0 75%);background-size:200% 100%;animation:ozm-shimmer 1.5s infinite;border-radius:.5rem}
.ozm-skeleton__thumb{aspect-ratio:16/9}
.ozm-skeleton__line{height:.9rem;width:80%}
.ozm-skeleton__line--short{width:50%}
@keyframes ozm-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
@media(max-width:782px){.ozm-skeleton{grid-template-columns:1fr}}
.ozm-no-results{padding:2rem;text-align:center;color:#64748b;font-style:italic}

/* Pagination */
.ozm-pagination{display:flex;align-items:center;justify-content:center;gap:1rem;margin:1.5rem 0;font-size:.9rem}
.ozm-pagination__btn{padding:.4rem 1rem;border:1px solid #cbd5e1;border-radius:.25rem;background:#fff;cursor:pointer;font-weight:600;color:#0f172a;transition:background .15s}
.ozm-pagination__btn:hover{background:#f1f5f9}
.ozm-pagination__info{color:#64748b}

/* Radio */
.ozm-radio-card{display:flex;gap:1rem;padding:1rem;border:1px solid #e2e8f0;border-radius:.5rem;margin:0 0 1rem}
.ozm-radio-card__thumb{width:120px;flex-shrink:0;aspect-ratio:1;border-radius:.25rem;overflow:hidden;background:#0f172a}
.ozm-radio-card__thumb img{width:100%;height:100%;object-fit:cover}
.ozm-radio-card__body{flex:1;min-width:0}
.ozm-radio-card__title{margin:0 0 .25rem;font-size:1.1rem}
.ozm-radio-card__title a{color:inherit;text-decoration:none}
.ozm-radio-card__meta{font-size:.8rem;color:#64748b}
.ozm-radio-card--featured .ozm-radio-card__thumb{position:relative}
.ozm-radio-card__star{position:absolute;top:.35rem;left:.35rem;width:1.4rem;height:1.4rem;display:inline-flex;align-items:center;justify-content:center;background:#facc15;color:#78350f;border-radius:50%;font-size:.85rem;line-height:1;box-shadow:0 1px 3px rgba(0,0,0,.25);pointer-events:none}
.ozm-radio-card__prog{display:inline-block;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#64748b;margin-bottom:.15rem}
.ozm-radio-card__prog a{color:inherit;text-decoration:none}
.ozm-radio-card__prog a:hover{text-decoration:underline}

.ozm-episodes{list-style:none;padding:0;margin:1rem 0}
.ozm-episode{padding:1rem;border:1px solid #e2e8f0;border-radius:.5rem;margin:0 0 .75rem;display:grid;grid-template-columns:80px 1fr;gap:1rem;align-items:center}
.ozm-episode__thumb{width:80px;aspect-ratio:1;background:#0f172a;border-radius:.25rem;overflow:hidden}
.ozm-episode__thumb img{width:100%;height:100%;object-fit:cover}
.ozm-episode__title{margin:0 0 .25rem;font-size:1rem}
.ozm-episode__meta{font-size:.8rem;color:#64748b;margin-bottom:.5rem}
.ozm-episode audio{width:100%}

/* Radiogids */
.ozm-gids{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.5rem;font-size:.85rem}
.ozm-gids__day{background:#f8fafc;border:1px solid #e2e8f0;border-radius:.25rem;padding:.5rem}
.ozm-gids__day h3{margin:0 0 .5rem;font-size:.95rem;border-bottom:1px solid #cbd5e1;padding-bottom:.25rem}
.ozm-gids__slot{padding:.25rem 0;border-bottom:1px dashed #e2e8f0;display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}
.ozm-gids__time{font-weight:700;margin-right:.4rem;color:#0369a1}
.ozm-gids__day--today{background:#eff6ff!important;border-color:#3b82f6!important}
.ozm-gids__day--today h3{color:#1d4ed8}
.ozm-gids__today-badge{display:inline-block;font-size:.65em;background:#3b82f6;color:#fff;padding:.1em .5em;border-radius:3px;vertical-align:middle;margin-left:.4em;text-transform:uppercase;letter-spacing:.06em;font-weight:700}
.ozm-gids__slot--live{background:#fef2f2;border-color:#fca5a5!important;border-radius:4px;padding:.35rem .35rem;flex-wrap:wrap;gap:.4rem}
.ozm-gids__live-dot{width:8px;height:8px;flex-shrink:0;background:#fff;border-radius:50%;animation:ozm-blink 1.4s infinite}
.ozm-gids__slot--live .ozm-gids__live-dot{background:#fff}
.ozm-gids__live-pill{display:inline-flex;align-items:center;gap:.35rem;padding:.15rem .45rem;background:#dc2626;color:#fff;border-radius:4px;font-size:.65rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;line-height:1}
/* Override thema-onderstrepingen op programma-links binnen de gids */
.ozm-gids .ozm-gids__prog,
.ozm-gids a.ozm-gids__prog,
.ozm-gids__slot a.ozm-gids__prog{text-decoration:none!important;font-weight:600;color:inherit}
.ozm-gids a.ozm-gids__prog:hover{text-decoration:underline!important}
@media(max-width:900px){.ozm-gids{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.ozm-gids{grid-template-columns:1fr}}

/* Fade-in bij scrollen */
.ozm-fade-in{opacity:0;transform:translateY(16px);transition:opacity .4s ease,transform .4s ease}
.ozm-fade-in.ozm-visible{opacity:1;transform:translateY(0)}

/* Active episode */
.ozm-episode--playing{background:#eff6ff!important;border-color:#3b82f6!important}
.ozm-episode--playing .ozm-episode__title::before{content:"▶ ";color:#3b82f6}

/* Live nu */
.ozm-live{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:linear-gradient(90deg,#b91c1c,#7f1d1d);color:#fff;border-radius:.5rem}
.ozm-live__dot{width:10px;height:10px;background:#fff;border-radius:50%;animation:ozm-blink 1.4s infinite}
.ozm-live__label{text-transform:uppercase;font-size:.75rem;font-weight:700;letter-spacing:.1em}
.ozm-live__title{font-weight:600}
@keyframes ozm-blink{0%,50%{opacity:1}51%,100%{opacity:.2}}

/* Share knoppen */
.ozm-share{display:flex;gap:.5rem;margin:1rem 0;flex-wrap:wrap}
.ozm-share__btn{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .75rem;border:1px solid #e2e8f0;border-radius:.25rem;background:#fff;color:#475569;font-size:.8rem;text-decoration:none;cursor:pointer;transition:all .15s}
.ozm-share__btn:hover{background:#f1f5f9;border-color:#94a3b8}
.ozm-share__btn--x:hover{color:#000}
.ozm-share__btn--fb:hover{color:#1877f2}
.ozm-share__btn--wa:hover{color:#25d366}
.ozm-share__btn--link:hover{color:#0369a1}
.ozm-share__copied{font-size:.75rem;color:#16a34a;opacity:0;transition:opacity .3s}
.ozm-share__copied--show{opacity:1}

/* Load more */
.ozm-load-more{display:flex;justify-content:center;margin:1.5rem 0}
.ozm-load-more__btn{padding:.6rem 2rem;border:2px solid #0f172a;border-radius:.5rem;background:transparent;color:#0f172a;font-weight:700;font-size:.95rem;cursor:pointer;transition:all .2s}
.ozm-load-more__btn:hover{background:#0f172a;color:#fff}

/* Print */
@media print{
.ozm-filter-wrap,.ozm-filter,.ozm-pagination,.ozm-share,.ozm-load-more,.ozm-player,.ozm-live,.ozm-filter__toggle{display:none!important}
.ozm-gids{grid-template-columns:repeat(7,1fr)!important;font-size:10pt}
.ozm-gids__day{break-inside:avoid;border:1px solid #ccc!important}
.ozm-grid{grid-template-columns:repeat(3,1fr)!important}
.ozm-grid__thumb{aspect-ratio:auto;height:auto}
.ozm-grid__play,.ozm-grid__duration{display:none}
}

/* ======= Zoek-widget ======= */
.ozm-search-wrap { width:100%; }
.ozm-search { position:relative; width:100%; box-sizing:border-box; }
.ozm-search *, .ozm-search *::before, .ozm-search *::after { box-sizing:border-box; }
.ozm-search .ozm-search__box { position:relative; display:block; }
.ozm-search .ozm-search__icon { position:absolute; top:50%; left:16px; transform:translateY(-50%); color:#64748b; display:flex; align-items:center; pointer-events:none; z-index:2; width:18px; height:18px; }
.ozm-search .ozm-search__icon svg { width:18px !important; height:18px !important; display:block; }
input.ozm-search__input,
.ozm-search .ozm-search__input {
    width: 100% !important;
    padding-left: 48px !important;
    padding-right: 48px !important;
    padding-top: 12px !important;
    padding-bottom: 12px !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 8px;
    font: inherit;
    background: #fff !important;
    box-sizing: border-box !important;
    line-height: 1.4 !important;
    height: auto !important;
    margin: 0 !important;
    transition: border-color .15s, box-shadow .15s;
}
input.ozm-search__input::-webkit-search-cancel-button,
input.ozm-search__input::-webkit-search-decoration { appearance:none; -webkit-appearance:none; }
.ozm-search .ozm-search__input:focus { outline:none !important; border-color:#3b82f6 !important; box-shadow:0 0 0 3px rgba(59,130,246,.15) !important; }
.ozm-search__spinner { position:absolute; top:50%; right:16px; transform:translateY(-50%); width:16px; height:16px; border:2px solid #e2e8f0; border-top-color:#3b82f6; border-radius:50%; opacity:0; transition:opacity .15s; }
.ozm-search__spinner.is-active { opacity:1; animation:ozm-spin .7s linear infinite; }
@keyframes ozm-spin { to { transform:rotate(360deg); } }
.ozm-search__results { position:absolute; top:calc(100% + 8px); left:0; right:0; background:#fff; border:1px solid #e2e8f0; border-radius:8px; box-shadow:0 12px 32px rgba(15,23,42,.12); max-height:420px; overflow-y:auto; z-index:100; }
.ozm-search__group { padding:8px 0; border-bottom:1px solid #f1f5f9; }
.ozm-search__group:last-child { border-bottom:none; }
.ozm-search__group-label { padding:4px 14px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:#64748b; }
.ozm-search__item { display:flex; align-items:center; gap:12px; padding:8px 14px; text-decoration:none; color:#0f172a; transition:background .1s; }
.ozm-search__item:hover { background:#f8fafc; }
.ozm-search__thumb { flex-shrink:0; width:44px; height:44px; border-radius:6px; background:#f1f5f9 center/cover no-repeat; }
.ozm-search__thumb--empty { background:#e2e8f0; }
.ozm-search__body { display:flex; flex-direction:column; gap:2px; min-width:0; flex:1; }
.ozm-search__title { font-size:14px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ozm-search__date { font-size:12px; color:#64748b; }
.ozm-search__empty { padding:24px 14px; text-align:center; color:#64748b; font-size:14px; }


/* ======= Live Nu — Now Playing track-info ======= */
.ozm-live__np {
    display: flex;
    flex-direction: column;
    gap: 2px;
    line-height: 1.3;
    margin-left: .5rem;
}
.ozm-live__np-track {
    font-weight: 700;
    color: inherit;
    transition: opacity .25s;
}
.ozm-live__np-show {
    font-size: .85em;
    opacity: .75;
    transition: opacity .25s;
}
.ozm-live__np-show a {
    color: inherit;
    text-decoration: none;
}
.ozm-live__np-show a:hover {
    text-decoration: underline;
}

/* ======= Live Nu — Luister-knop ======= */
.ozm-live__play {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .45rem .9rem .45rem .7rem;
    background: #dc2626;
    color: #fff;
    border: 0;
    border-radius: 999px;
    font: inherit;
    font-weight: 700;
    font-size: .9rem;
    line-height: 1;
    cursor: pointer;
    transition: background .15s, transform .12s;
    box-shadow: 0 2px 8px rgba(220,38,38,.3);
}
.ozm-live__play:hover {
    background: #b91c1c;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(220,38,38,.4);
}
.ozm-live__play:active { transform: translateY(0); }
.ozm-live__play-icon {
    flex-shrink: 0;
}

/* ======= Luister-modal (stream-overlay) ======= */
.ozm-listen-modal {
    position: fixed;
    inset: 0;
    z-index: 99999;
    opacity: 0;
    transition: opacity .2s;
}
.ozm-listen-modal.is-open { opacity: 1; }
.ozm-listen-modal[hidden] { display: none; }
.ozm-listen-modal__overlay {
    position: absolute;
    inset: 0;
    background: rgba(15,23,42,.7);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}
.ozm-listen-modal__box {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(.96);
    width: min(440px, 92vw);
    background: #fff;
    border-radius: 16px;
    padding: 32px 28px 24px;
    box-shadow: 0 20px 60px rgba(0,0,0,.4);
    transition: transform .2s ease-out;
}
.ozm-listen-modal.is-open .ozm-listen-modal__box {
    transform: translate(-50%, -50%) scale(1);
}
.ozm-listen-modal .ozm-listen-modal__close,
button.ozm-listen-modal__close {
    position: absolute !important;
    top: 12px !important;
    right: 12px !important;
    width: 36px !important;
    height: 36px !important;
    padding: 0 !important;
    margin: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: #f1f5f9 !important;
    border: 0 !important;
    border-radius: 50% !important;
    color: #475569 !important;
    cursor: pointer !important;
    box-shadow: none !important;
    text-decoration: none !important;
    line-height: 1 !important;
    font: 0/0 a !important; /* verberg evt. teken-content; we gebruiken ::before SVG */
    transition: background .15s, color .15s, transform .15s !important;
}
.ozm-listen-modal .ozm-listen-modal__close::before {
    content: "";
    width: 16px;
    height: 16px;
    background-color: currentColor;
    -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round'><line x1='6' y1='6' x2='18' y2='18'/><line x1='18' y1='6' x2='6' y2='18'/></svg>") center / contain no-repeat;
            mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round'><line x1='6' y1='6' x2='18' y2='18'/><line x1='18' y1='6' x2='6' y2='18'/></svg>") center / contain no-repeat;
    display: block;
}
.ozm-listen-modal .ozm-listen-modal__close:hover,
button.ozm-listen-modal__close:hover {
    background: #e2e8f0 !important;
    color: #0f172a !important;
    transform: rotate(90deg);
}
.ozm-listen-modal .ozm-listen-modal__close:focus-visible {
    outline: 2px solid #3b82f6 !important;
    outline-offset: 2px !important;
}
.ozm-listen-modal__head { text-align: center; margin-bottom: 20px; }
.ozm-listen-modal__live {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #fee2e2;
    color: #b91c1c;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    margin-bottom: 10px;
}
.ozm-listen-modal__dot {
    width: 8px;
    height: 8px;
    background: #dc2626;
    border-radius: 50%;
    animation: ozm-live-pulse 1.5s ease-in-out infinite;
}
@keyframes ozm-live-pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50%      { opacity: .5; transform: scale(1.3); }
}
.ozm-listen-modal__title {
    margin: 0 0 8px;
    font-size: 22px;
    font-weight: 700;
    color: #0f172a;
    line-height: 1.2;
}
.ozm-listen-modal__sub {
    margin: 0;
    color: #64748b;
    font-size: 14px;
    line-height: 1.5;
    min-height: 1.5em;
}
.ozm-listen-modal__audio {
    display: block;
    width: 100%;
    margin-top: 8px;
}

/* ============================================================
 * Fallback single template voor onze CPT's (single-ozm-fallback.php)
 * — gebruikt wanneer thema geen eigen single-{post-type}.php heeft.
 * ============================================================ */
.ozm-single {
    max-width: 820px;
    margin: 2rem auto 3rem;
    padding: 0 1.25rem;
}
.ozm-single__article { background: #fff; }
.ozm-single__header { margin-bottom: 1.25rem; }
.ozm-single__title {
    margin: 0 0 .5rem;
    font-size: clamp(1.6rem, 2.6vw, 2.4rem);
    line-height: 1.2;
    color: #0f172a;
    font-weight: 700;
}
.ozm-single__meta {
    font-size: .85rem;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: .04em;
    font-weight: 600;
}
.ozm-single__thumb {
    margin: 0 0 1.5rem;
    border-radius: 12px;
    overflow: hidden;
    background: #e2e8f0;
}
.ozm-single__thumb img {
    display: block;
    width: 100%;
    height: auto;
}
.ozm-single__content {
    color: #1e293b;
    font-size: 1rem;
    line-height: 1.65;
}
.ozm-single__content p { margin: 0 0 1rem; }
.ozm-single__content img { max-width: 100%; height: auto; border-radius: 8px; }

/* ============================================================
 * Sticky luister-bar — onderaan beeld, blijft staan over
 * paginanavigatie (zie initStickyPlayer in frontend.js).
 * ============================================================ */
.ozm-sticky-player {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 99998;
    background: #0f172a;
    color: #f8fafc;
    box-shadow: 0 -8px 24px rgba(0,0,0,.25);
    transform: translateY(100%);
    transition: transform .25s ease-out;
}
.ozm-sticky-player.is-open { transform: translateY(0); }
.ozm-sticky-player[hidden] { display: none; }
.ozm-sticky-player__inner {
    display: flex;
    align-items: center;
    gap: .85rem;
    padding: .65rem 1rem;
    max-width: 1200px;
    margin: 0 auto;
}
.ozm-sticky-player__live {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #dc2626;
    color: #fff;
    padding: 3px 9px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    white-space: nowrap;
}
.ozm-sticky-player__dot {
    width: 7px;
    height: 7px;
    background: #fff;
    border-radius: 50%;
    animation: ozm-live-pulse 1.5s ease-in-out infinite;
}
.ozm-sticky-player__info {
    display: flex;
    flex-direction: column;
    gap: 1px;
    line-height: 1.25;
    min-width: 0;
    flex: 1 1 auto;
}
.ozm-sticky-player__station {
    font-weight: 700;
    font-size: .95rem;
    color: #fff;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.ozm-sticky-player__sub {
    font-size: .8rem;
    color: #94a3b8;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-height: 1em;
}
.ozm-sticky-player__audio {
    flex: 0 0 auto;
    width: 280px;
    max-width: 40vw;
    height: 36px;
}
/* Close-knop forceren met !important — anders pakt het thema
   (Elementor button-styling, roze achtergrond, etc.) onze knop over. */
.ozm-sticky-player__close,
button.ozm-sticky-player__close {
    flex: 0 0 auto !important;
    width: 32px !important;
    height: 32px !important;
    min-width: 32px !important;
    min-height: 32px !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: rgba(255,255,255,.12) !important;
    color: #f1f5f9 !important;
    border-radius: 50% !important;
    font-size: 22px !important;
    line-height: 1 !important;
    font-weight: 400 !important;
    text-decoration: none !important;
    text-transform: none !important;
    box-shadow: none !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: background .15s, color .15s, transform .15s !important;
}
.ozm-sticky-player__close:hover,
button.ozm-sticky-player__close:hover,
.ozm-sticky-player__close:focus,
button.ozm-sticky-player__close:focus {
    background: rgba(255,255,255,.22) !important;
    color: #fff !important;
    transform: rotate(90deg);
    outline: none !important;
}

/* Onderkant van de site wat lucht geven zodat de sticky bar niets bedekt */
body.ozm-has-sticky-player {
    padding-bottom: 84px;
}

@media (max-width: 640px) {
    .ozm-sticky-player__inner { gap: .55rem; padding: .55rem .65rem; flex-wrap: wrap; }
    .ozm-sticky-player__audio { width: 100%; max-width: none; order: 5; height: 32px; }
    .ozm-sticky-player__station { font-size: .85rem; }
    .ozm-sticky-player__sub { font-size: .72rem; }
    body.ozm-has-sticky-player { padding-bottom: 120px; }
}

/* Luister-knop positie: rechts uitlijnen via margin-auto, widget zelf flex */
.ozm-live--listen-right { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.ozm-live--listen-right .ozm-live__play--right { margin-left: auto; }
.ozm-live--listen-left { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }

/* Play-icoon perfect uitlijnen in de luister-knop */
.ozm-live__play { line-height: 1; }
.ozm-live__play-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    background: rgba(255,255,255,.18);
    border-radius: 50%;
    flex-shrink: 0;
}
.ozm-live__play-icon svg {
    display: block;
    /* Optische centering: pijltje hangt visueel iets links omdat de driehoek-vorm asymmetrisch is */
    margin-left: 1px;
}
.ozm-live__play-label { line-height: 1; }

/* ======= Uitgelichte afleveringen widget ======= */
.ozm-feat-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); gap:1.25rem; }
.ozm-feat-card { display:flex; flex-direction:column; background:#fff; border:1px solid #e2e8f0; border-radius:12px; overflow:hidden; transition:transform .15s, box-shadow .15s; }
.ozm-feat-card:hover { transform:translateY(-2px); box-shadow:0 8px 20px rgba(15,23,42,.08); }
.ozm-feat-card__image { position:relative; aspect-ratio:16/9; background:#0f172a; }
.ozm-feat-card__image img { width:100%; height:100%; object-fit:cover; display:block; }
.ozm-feat-card__star { position:absolute; top:.6rem; right:.6rem; background:#f59e0b; color:#fff; width:32px; height:32px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:18px; box-shadow:0 4px 12px rgba(245,158,11,.5); }
.ozm-feat-card__body { padding:1rem 1.1rem 1.2rem; display:flex; flex-direction:column; gap:.4rem; }
.ozm-feat-card__prog { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:#64748b; }
.ozm-feat-card__prog a { color:inherit; text-decoration:none; }
.ozm-feat-card__title { font-size:1.05rem; line-height:1.3; margin:0; color:#0f172a; }
.ozm-feat-card__date { font-size:.8rem; color:#94a3b8; }
.ozm-feat-card__desc { color:#475569; font-size:.85rem; line-height:1.4; margin:0; }
.ozm-feat-card__audio { width:100%; margin-top:.4rem; }
.ozm-feat-empty { padding:1.5rem; text-align:center; color:#94a3b8; font-style:italic; border:1px dashed #cbd5e1; border-radius:.5rem; }

/* ======= Podcasts widget ======= */
.ozm-pod-grid { display:grid; gap:1.25rem; }
.ozm-pod-grid--cols-1 { grid-template-columns:1fr; }
.ozm-pod-grid--cols-2 { grid-template-columns:repeat(auto-fit, minmax(360px, 1fr)); }
.ozm-pod-grid--cols-3 { grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); }
.ozm-pod-card { background:#fff; border:1px solid #e2e8f0; border-radius:12px; overflow:hidden; }
.ozm-pod-card__cover { display:block; aspect-ratio:1/1; background:#0f172a; max-width:120px; margin:1rem 0 0 1rem; border-radius:8px; overflow:hidden; }
.ozm-pod-card__cover img { width:100%; height:100%; object-fit:cover; display:block; }
.ozm-pod-card__body { padding:1rem 1.1rem 1.2rem; }
.ozm-pod-card__title { margin:.2rem 0 .4rem; font-size:1.1rem; line-height:1.3; }
.ozm-pod-card__title a { color:#0f172a; text-decoration:none; }
.ozm-pod-card__title a:hover { color:#3b82f6; }
.ozm-pod-card__excerpt { font-size:.85rem; color:#475569; margin:0 0 .8rem; line-height:1.5; }
.ozm-pod-card__embed { margin:.6rem 0; }
.ozm-pod-card__platforms { display:flex; flex-wrap:wrap; gap:.4rem; margin-top:.6rem; }
.ozm-pod-card__btn { display:inline-flex; align-items:center; gap:.3rem; padding:.4rem .8rem; border-radius:999px; font-size:.8rem; font-weight:600; text-decoration:none; transition:transform .12s; }
.ozm-pod-card__btn:hover { transform:translateY(-1px); }
.ozm-pod-card__btn .dashicons { font-size:14px; width:14px; height:14px; }
.ozm-pod-card__btn--spotify { background:#1db954; color:#fff !important; }
.ozm-pod-card__btn--apple   { background:#a855f7; color:#fff !important; }
.ozm-pod-card__btn--rss     { background:#ea580c; color:#fff !important; }
.ozm-pod-empty { padding:1.5rem; text-align:center; color:#94a3b8; font-style:italic; border:1px dashed #cbd5e1; border-radius:.5rem; }

/* ======= Radio-nieuws widget ======= */
.ozm-rnws-grid { display:grid; gap:1.25rem; }
.ozm-rnws-grid--cols-1 { grid-template-columns:1fr; }
.ozm-rnws-grid--cols-2 { grid-template-columns:repeat(auto-fit, minmax(380px, 1fr)); }
.ozm-rnws-grid--cols-3 { grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); }
.ozm-rnws-grid--cols-4 { grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); }
.ozm-rnws-card { background:#fff; border:1px solid #e2e8f0; border-radius:10px; overflow:hidden; transition:transform .15s, box-shadow .15s; }
.ozm-rnws-card:hover { transform:translateY(-2px); box-shadow:0 8px 20px rgba(15,23,42,.08); }
.ozm-rnws-card__cover { display:block; aspect-ratio:16/9; background:#0f172a; overflow:hidden; }
.ozm-rnws-card__cover img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s; }
.ozm-rnws-card__cover:hover img { transform:scale(1.04); }
.ozm-rnws-card__body { padding:1rem 1.1rem 1.2rem; }
.ozm-rnws-card__date { font-size:.75rem; font-weight:600; color:#64748b; text-transform:uppercase; letter-spacing:.04em; }
.ozm-rnws-card__title { margin:.3rem 0 .4rem; font-size:1.05rem; line-height:1.3; }
.ozm-rnws-card__title a { color:#0f172a; text-decoration:none; }
.ozm-rnws-card__title a:hover { color:#3b82f6; }
.ozm-rnws-card__excerpt { font-size:.85rem; color:#475569; margin:0; line-height:1.5; }
.ozm-rnws-empty { padding:1.5rem; text-align:center; color:#94a3b8; font-style:italic; border:1px dashed #cbd5e1; border-radius:.5rem; }

/* Sectie-headings boven Radio-nieuws / Uitgelicht / Podcasts */
.ozm-rnws__heading, .ozm-feat__heading, .ozm-pod__heading {
    margin: 0 0 1rem;
    font-size: 1.35rem;
    line-height: 1.25;
    color: #0f172a;
    font-weight: 700;
}

/* Radio-nieuws: client-side pager met pijltjes */
.ozm-rnws { position: relative; }
.ozm-rnws-card[hidden] { display: none !important; }
.ozm-rnws__pager {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .75rem;
    margin-top: 1.25rem;
}
.ozm-rnws__nav {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: 1px solid #cbd5e1;
    background: #fff;
    color: #0f172a;
    border-radius: 999px;
    cursor: pointer;
    transition: background .15s, border-color .15s, color .15s, transform .12s;
}
.ozm-rnws__nav:hover:not(:disabled) {
    background: #f1f5f9;
    border-color: #94a3b8;
    transform: translateY(-1px);
}
.ozm-rnws__nav:disabled {
    opacity: .35;
    cursor: not-allowed;
}
.ozm-rnws__nav svg { display: block; }
.ozm-rnws__pager-info {
    font-size: .85rem;
    color: #64748b;
    font-variant-numeric: tabular-nums;
    min-width: 3em;
    text-align: center;
}

/* ======= Embed-blocks (shortcodes) ======= */
.ozm-embed-block { display:flex; flex-direction:column; margin:1.5rem 0; background:#fff; border:1px solid #e2e8f0; border-radius:10px; overflow:hidden; }
.ozm-embed-block--video,
.ozm-embed-block--podcast { padding:0; }
.ozm-embed-block__video { display:block; width:100%; max-height:600px; background:#000; }
.ozm-embed-block__caption { padding:.6rem .9rem; font-size:.9rem; font-weight:600; color:#0f172a; background:#f8fafc; border-top:1px solid #f1f5f9; }
.ozm-embed-block__caption a { color:inherit; text-decoration:none; }
.ozm-embed-block__caption a:hover { text-decoration:underline; }

.ozm-embed-block--programma,
.ozm-embed-block--card,
.ozm-embed-block--aflevering {
    flex-direction:row; align-items:flex-start; gap:1rem; padding:1rem;
}
.ozm-embed-block__cover { display:block; width:140px; flex-shrink:0; aspect-ratio:1/1; background:#0f172a; border-radius:8px; overflow:hidden; }
.ozm-embed-block__cover img { width:100%; height:100%; object-fit:cover; display:block; }
.ozm-embed-block__cover-sm { width:90px; flex-shrink:0; aspect-ratio:1/1; background:#0f172a; border-radius:8px; overflow:hidden; }
.ozm-embed-block__cover-sm img { width:100%; height:100%; object-fit:cover; display:block; }
.ozm-embed-block__body { flex:1; min-width:0; }
.ozm-embed-block__type { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:#64748b; }
.ozm-embed-block__type a { color:inherit; text-decoration:none; }
.ozm-embed-block__title { margin:.2rem 0 .4rem; font-size:1.1rem; line-height:1.3; color:#0f172a; }
.ozm-embed-block__title a { color:inherit; text-decoration:none; }
.ozm-embed-block__title a:hover { color:#3b82f6; }
.ozm-embed-block__date { font-size:.78rem; color:#94a3b8; }
.ozm-embed-block__desc { color:#475569; font-size:.88rem; line-height:1.5; margin:.4rem 0; }
.ozm-embed-block__audio { width:100%; margin-top:.5rem; }
.ozm-embed-block__episodes { list-style:none; margin:.5rem 0; padding:0; font-size:.85rem; }
.ozm-embed-block__episodes li { display:flex; justify-content:space-between; padding:.2rem 0; border-bottom:1px dotted #f1f5f9; }
.ozm-embed-block__cta { display:inline-block; margin-top:.4rem; color:#3b82f6; font-weight:600; text-decoration:none; font-size:.9rem; }
.ozm-embed-block--error { padding:.8rem 1rem; background:#fee2e2; color:#991b1b; border-color:#fecaca; }

/* ======= Bekijk ook + Hierover schreven we ======= */
.ozm-related, .ozm-referenced { margin-top:2rem; padding-top:1.5rem; border-top:1px solid #e2e8f0; }
.ozm-related__title, .ozm-referenced__title { margin:0 0 1rem; font-size:1.15rem; color:#0f172a; }
/* Bekijk ook — horizontale lijst, max 3 items */
.ozm-related__list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.6rem; }
.ozm-related__item { margin:0; }
.ozm-related__link {
    display:flex; align-items:center; gap:1rem;
    padding:.85rem 1rem;
    background:#fff;
    border:1px solid #e2e8f0;
    border-radius:10px;
    text-decoration:none;
    color:inherit;
    transition:transform .12s, box-shadow .12s, border-color .12s;
}
.ozm-related__link:hover {
    transform:translateY(-1px);
    box-shadow:0 6px 16px rgba(15,23,42,.08);
    border-color:#3b82f6;
}
.ozm-related__thumb {
    flex-shrink:0;
    width:96px; height:72px;
    border-radius:8px;
    background:#0f172a center/cover no-repeat;
}
.ozm-related__thumb--empty { background:#e2e8f0; }
.ozm-related__body { flex:1; min-width:0; display:flex; flex-direction:column; gap:.15rem; }
.ozm-related__type { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:#64748b; }
.ozm-related__title-row { font-size:1rem; font-weight:700; color:#0f172a; line-height:1.3; overflow:hidden; text-overflow:ellipsis; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.ozm-related__excerpt { font-size:.85rem; color:#64748b; overflow:hidden; text-overflow:ellipsis; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.ozm-related__chevron { flex-shrink:0; color:#94a3b8; font-size:1.2rem; transition:transform .12s, color .12s; }
.ozm-related__link:hover .ozm-related__chevron { color:#3b82f6; transform:translateX(3px); }
@media (max-width:520px) {
    .ozm-related__link { padding:.65rem .75rem; gap:.75rem; }
    .ozm-related__thumb { width:72px; height:54px; }
    .ozm-related__title-row { font-size:.95rem; }
    .ozm-related__excerpt { display:none; }
}
.ozm-referenced__list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.5rem; }
.ozm-referenced__item a { display:flex; align-items:center; gap:.6rem; padding:.6rem .8rem; background:#f8fafc; border-radius:6px; text-decoration:none; color:#0f172a; transition:background .12s; }
.ozm-referenced__item a:hover { background:#eff6ff; }
.ozm-referenced__type { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:#64748b; min-width:80px; }
.ozm-referenced__t { font-weight:600; }

/* ======= Auto-badge VOOR de titel (Video/Audio) ======= */
.ozm-title-badge {
    display: inline-block;
    padding: .15em .5em;
    font-size: .62em;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: .05em;
    text-transform: uppercase;
    border-radius: 4px;
    margin-right: .45em;
    vertical-align: middle;
    white-space: nowrap;
    /* Default: video — zacht blauw, past bij OZ-merk */
    background: #dbeafe;
    color: #1e40af;
}
.ozm-title-badge--audio {
    /* Audio — zacht paars, duidelijk onderscheid van video */
    background: #ede9fe;
    color: #6d28d9;
}
.ozm-title-badge--live {
    /* LIVE — rood, max attentie maar zonder geknipper (te onrustig in lijsten) */
    background: #dc2626;
    color: #fff;
}
.ozm-title-badge--upcoming {
    /* BINNENKORT — zacht oranje, neutraal-attentie */
    background: #fed7aa;
    color: #9a3412;
}

/* ======= Livestream — player overlay + binnenkort-kaart ======= */
.ozm-player--live { position: relative; }
.ozm-live-indicator {
    position: absolute;
    top: .75rem;
    left: .75rem;
    z-index: 5;
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .25rem .55rem;
    background: #dc2626;
    color: #fff;
    border-radius: 4px;
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    box-shadow: 0 2px 6px rgba(0,0,0,.25);
    pointer-events: none;
}
.ozm-live-indicator__dot {
    width: 8px;
    height: 8px;
    background: #fff;
    border-radius: 50%;
    animation: ozm-blink 1.4s infinite;
}
.ozm-live-soon {
    position: relative;
    overflow: hidden;
    aspect-ratio: 16/9;
    background: #0f172a;
    border-radius: inherit;
}
.ozm-live-soon__poster {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: brightness(.55);
}
.ozm-live-soon__overlay {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: #fff;
    padding: 1.5rem;
    gap: .6rem;
}
.ozm-live-soon__label {
    display: inline-block;
    padding: .3rem .8rem;
    background: #fed7aa;
    color: #9a3412;
    border-radius: 4px;
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.ozm-live-soon__when {
    font-size: clamp(1.1rem, 2.5vw, 1.6rem);
    line-height: 1.25;
    text-shadow: 0 2px 8px rgba(0,0,0,.5);
}

/* ======= Meest gelezen widget ======= */
.ozm-mv {}
.ozm-mv__title {
    font-size: 1.5rem;
    margin: 0 0 1rem;
    color: #4a8a3f;
    border-bottom: 2px solid #4a8a3f;
    padding-bottom: .4rem;
}
.ozm-mv__list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.ozm-mv__item {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 0;
    border-bottom: 1px solid #e5e7eb;
    position: relative;
}
.ozm-mv__item:last-child { border-bottom: 0; }
.ozm-mv__thumb-wrap {
    flex-shrink: 0;
    width: 100px;
    height: 100px;
    display: block;
    position: relative;
    overflow: hidden;
    border-radius: 8px;
}
.ozm-mv__thumb {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: 8px;
    background: #0f172a center/cover no-repeat;
}
/* Media-pill als overlay rechtsboven op de thumbnail (i.p.v. naast categorie).
   Geeft de categorie meer lucht in de meta-rij en is sneller visueel
   herkenbaar in lijsten met veel items. */
.ozm-mv__media--overlay {
    position: absolute;
    top: 6px;
    right: 6px;
    font-size: .6rem;
    padding: .15rem .4rem;
    box-shadow: 0 1px 3px rgba(0,0,0,.25);
    z-index: 2;
}
.ozm-mv__body {
    flex: 1;
    min-width: 0;
    padding-right: 60px;
}
.ozm-mv__meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.25rem;font-size:.8rem;line-height:1.2}
.ozm-mv__cat {
    display: inline-block;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #4a8a3f;
    text-decoration: none;
}
.ozm-mv__cat:hover { text-decoration: underline; }
.ozm-mv__media{display:inline-flex;align-items:center;gap:.25rem;padding:.1rem .45rem;font-size:.65rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;border-radius:3px;line-height:1.4;white-space:nowrap}
.ozm-mv__media--video{background:#dbeafe;color:#1d4ed8}
/* Audio: paars — consistent met .ozm-title-badge--audio zodat de overlay-pill
   en de inline title-badge dezelfde kleur tonen op hetzelfde item. */
.ozm-mv__media--audio{background:#ede9fe;color:#6d28d9}
.ozm-mv__media--live{background:#dc2626;color:#fff;box-shadow:0 1px 3px rgba(220,38,38,.3)}
.ozm-mv__media--live::before{content:"";display:inline-block;width:6px;height:6px;background:#fff;border-radius:50%;animation:ozm-blink 1.4s infinite}
.ozm-mv__media--upcoming{background:#fed7aa;color:#9a3412}
.ozm-mv__item-title {
    font-size: 1.05rem;
    line-height: 1.3;
    margin: 0;
    font-weight: 700;
}
.ozm-mv__item-title a { color: #0f172a; text-decoration: none; }
.ozm-mv__item-title a:hover { color: #4a8a3f; }
.ozm-mv__rank {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    font-size: 4.5rem;
    font-weight: 200;
    line-height: 1;
    color: rgba(15,23,42,.12);
    letter-spacing: -.02em;
    pointer-events: none;
    user-select: none;
}
.ozm-mv--empty p { color: #94a3b8; font-style: italic; }

@media (max-width: 520px) {
    .ozm-mv__thumb-wrap { width: 72px; height: 72px; }
    .ozm-mv__body { padding-right: 40px; }
    .ozm-mv__rank { font-size: 3rem; }
    .ozm-mv__item-title { font-size: .95rem; }
}

/* ============================================================
 * Default font voor alle plugin-titels
 * ------------------------------------------------------------
 * Bitter (Google Font) is de default voor headings/titels in
 * onze widgets. Elementor's typography-controls per widget
 * overrulen dit automatisch (specificiteit `{{WRAPPER}} .ozm-…`
 * = 0,2,0 > onze 0,1,0). Géén !important: dat is exact wat
 * "tenzij anders ingesteld" betekent.
 * ============================================================ */
.ozm-spotlight__title,
.ozm-podcast-detail__title,
.ozm-grid__title,
.ozm-grid__title a,
.ozm-series__title,
.ozm-series__title a,
.ozm-radio-card__title,
.ozm-radio-card__title a,
.ozm-radio-card__heading,
.ozm-episode__title,
.ozm-live__title,
.ozm-single__title,
.ozm-feat-card__title,
.ozm-pod-card__title,
.ozm-pod-card__title a,
.ozm-rnws-card__title,
.ozm-rnws-card__title a,
.ozm-rnws__heading,
.ozm-feat__heading,
.ozm-pod__heading,
.ozm-embed-block__title,
.ozm-related__title,
.ozm-referenced__title,
.ozm-related__title-row,
.ozm-mv__title,
.ozm-mv__item-title,
.ozm-mv__item-title a {
    font-family: "Bitter", sans-serif;
}

/* ============================================================
 * Theme-link reset (aggressive)
 * ------------------------------------------------------------
 * Het thema heeft TWEE link-onderstreping-regels:
 *   1. `.elementor-widget-text-editor a` — alle text-editor widgets
 *   2. `#postcontent a` — alles binnen het single-template wrapper
 *
 * Regel 2 is een ID-selector (specificiteit 1,0,1), die op pure
 * klasse-/attribuut-basis NIET te verslaan is. Specificity-trucs
 * zoals `[class^="ozm-"] a[href]` (0,2,1) verliezen altijd van
 * een ID. Enige werkbare oplossing: `!important`. Onze eigen
 * hover-underline (.ozm-mv__cat:hover) krijgt zelf ook
 * !important zodat die boven deze reset blijft werken.
 *
 * Geldt voor: alle anchors die ZELF een ozm-klasse dragen OF
 * binnen een ozm-element zitten. Dat dekt al onze listings
 * (Bekijk ook, Hierover schreven we, Radio Nieuws, Podcasts,
 * Uitgelichte Afleveringen, Meest Gelezen, Video Grid, etc.).
 * ============================================================ */
[class^="ozm-"] a[href],
[class*=" ozm-"] a[href],
a[class^="ozm-"][href],
a[class*=" ozm-"][href] {
    text-decoration: none !important;
    font-weight: inherit !important;
    text-underline-offset: 0 !important;
    text-decoration-color: currentColor !important;
    text-decoration-thickness: auto !important;
}

/* Behoud onze intentionele hover-underline op categorie-links
   in de Meest Gelezen widget (ook !important nodig om boven de
   reset uit te komen). */
a.ozm-mv__cat[href]:hover {
    text-decoration: underline !important;
}
