/* ==========================================================
   DimosTV CMS 1.7.0 RC1 — Frontend 2.1 PASS 4
   Accessibility & UX polish
   ========================================================== */

:root{
    --dtv-a11y-focus:#E30613;
    --dtv-a11y-focus-soft:rgba(227,6,19,.32);
}

/* Screen-reader utility */
.dtv-sr-only,
.dtv-visually-hidden{
    position:absolute!important;
    width:1px!important;
    height:1px!important;
    padding:0!important;
    margin:-1px!important;
    overflow:hidden!important;
    clip:rect(0,0,0,0)!important;
    white-space:nowrap!important;
    border:0!important;
}

.dtv-sr-only:focus,
.dtv-skip-link:focus{
    position:fixed!important;
    top:16px!important;
    left:16px!important;
    z-index:1000000!important;
    width:auto!important;
    height:auto!important;
    margin:0!important;
    padding:12px 18px!important;
    clip:auto!important;
    white-space:normal!important;
    border-radius:999px!important;
    background:#E30613!important;
    color:#fff!important;
    font-weight:800!important;
    text-decoration:none!important;
    box-shadow:0 18px 45px rgba(0,0,0,.34)!important;
}

/* Global focus treatment */
.dtv-frontend a:focus-visible,
.dtv-frontend button:focus-visible,
.dtv-frontend input:focus-visible,
.dtv-frontend select:focus-visible,
.dtv-frontend textarea:focus-visible,
.dtv-search-trigger:focus-visible,
.dtv-menu-trigger:focus-visible,
.dtv-live-btn:focus-visible,
[class*="dtv-"] a:focus-visible,
[class*="dtv-"] button:focus-visible,
[class*="dtv-"] input:focus-visible,
[class*="dtv-"] select:focus-visible,
[class*="dtv-"] textarea:focus-visible{
    outline:3px solid var(--dtv-a11y-focus)!important;
    outline-offset:3px!important;
    box-shadow:0 0 0 6px var(--dtv-a11y-focus-soft)!important;
}

/* Do not show heavy outlines for mouse users */
[class*="dtv-"] :focus:not(:focus-visible){
    outline:none;
}

/* Keyboard-active cards */
.dtv-video-card:focus-within,
.dtv-municipality-card:focus-within,
.dtv-region-card:focus-within,
.dtv-show-card:focus-within,
.dtv-archive-card:focus-within,
.dtv-search-result:focus-within{
    border-color:rgba(227,6,19,.55)!important;
    box-shadow:0 18px 45px rgba(227,6,19,.16), 0 0 0 1px rgba(227,6,19,.25)!important;
}

/* Touch target safety */
.dtv-search-trigger,
.dtv-menu-trigger,
.dtv-live-btn,
.dtv-quick-live-modal button,
.dtv-menu-modal button,
.dtv-search-overlay button,
.dtv-mini-player button,
.dtv-video-modal button,
.dtv-complaints button,
.dtv-contact button{
    min-width:44px;
    min-height:44px;
}

/* Modal accessibility helpers */
.dtv-modal-open,
body.dtv-a11y-modal-lock{
    overflow:hidden!important;
    overscroll-behavior:contain;
}

.dtv-a11y-inert{
    pointer-events:none!important;
    user-select:none!important;
}

/* Live region */
#dtv-a11y-live-region{
    position:absolute;
    width:1px;
    height:1px;
    margin:-1px;
    padding:0;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
}

/* Form UX */
.dtv-field-error,
.dtv-form-error{
    display:block;
    margin-top:8px;
    color:#ffb4b4;
    font-size:13px;
    line-height:1.45;
}

.dtv-input-error,
input.dtv-input-error,
select.dtv-input-error,
textarea.dtv-input-error{
    border-color:#E30613!important;
    box-shadow:0 0 0 3px rgba(227,6,19,.20)!important;
}

button[disabled],
.dtv-btn[disabled],
.dtv-is-loading{
    cursor:progress!important;
    opacity:.72;
}

.dtv-is-loading{
    position:relative;
}

.dtv-is-loading::after{
    content:"";
    display:inline-block;
    width:14px;
    height:14px;
    margin-left:10px;
    border:2px solid rgba(255,255,255,.45);
    border-top-color:#fff;
    border-radius:50%;
    animation:dtv-a11y-spin .75s linear infinite;
    vertical-align:-2px;
}

@keyframes dtv-a11y-spin{to{transform:rotate(360deg)}}

/* Search / Navigation mobile keyboard safety */
.dtv-search-overlay,
.dtv-menu-modal,
.dtv-quick-live-modal{
    overscroll-behavior:contain;
}

.dtv-search-overlay__panel,
.dtv-menu-modal__panel,
.dtv-quick-live-modal__dialog{
    max-height:min(88vh, calc(100dvh - 32px));
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
    *,
    *::before,
    *::after{
        animation-duration:.01ms!important;
        animation-iteration-count:1!important;
        scroll-behavior:auto!important;
        transition-duration:.01ms!important;
    }
}

/* EPIC 04 — Accessibility Sprint 1 */
[aria-current="page"]{text-decoration-thickness:max(2px,.12em)}
[aria-expanded="true"] .dtv-disclosure-icon{transform:rotate(180deg)}
@media (forced-colors: active){
    [class*="dtv-"] a:focus-visible,
    [class*="dtv-"] button:focus-visible,
    [class*="dtv-"] input:focus-visible,
    [class*="dtv-"] select:focus-visible,
    [class*="dtv-"] textarea:focus-visible{
        outline:3px solid Highlight!important;
        box-shadow:none!important;
    }
}
