/**
 * AJ Cart Timer – javni slog, faza 4.
 * Slovenski komentarji označujejo varne, izolirane stile brez globalnih posegov
 * v WooCommerce, Flatsome ali druge elemente strani.
 */
.ajct-floating-timer[hidden] { display: none !important; }
.ajct-floating-timer {
    position: fixed;
    bottom: calc(18px + env(safe-area-inset-bottom, 0px));
    right: calc(18px + env(safe-area-inset-right, 0px));
    z-index: 900;
    display: flex;
    align-items: center;
    gap: 9px;
    max-width: min(380px, calc(100vw - 36px));
    padding: 12px 16px;
    color: #1f2937;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 13px;
    box-shadow: 0 7px 25px rgba(16, 24, 40, .14);
    font-family: inherit;
    font-size: 13px;
    line-height: 1.35;
    box-sizing: border-box;
    pointer-events: none;
}
.ajct-floating-icon { flex-shrink: 0; font-size: 19px; line-height: 1; }
.ajct-floating-label { min-width: 0; }
.ajct-floating-value {
    flex-shrink: 0;
    font-size: 19px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    letter-spacing: .02em;
    white-space: nowrap;
    color: #135a9c;
}
.ajct-floating-timer.ajct-time-critical .ajct-floating-value { color: #b42318; }
/* Sprememba (faza 4): mobilna širina in sistemski varni odmiki zaslona. */
@media (max-width: 600px) {
    .ajct-floating-timer[data-ajct-mobile="off"] { display: none !important; }
    .ajct-floating-timer {
        right: calc(12px + env(safe-area-inset-right, 0px));
        bottom: calc(12px + env(safe-area-inset-bottom, 0px));
        left: auto;
        gap: 8px;
        padding: 10px 12px;
        max-width: calc(100vw - 24px);
        font-size: 12px;
    }
    .ajct-floating-icon { font-size: 17px; }
    .ajct-floating-value { font-size: 17px; }
}
/* Sprememba (faza 4): časovnik ne uporablja animacij; skladnost z reduce motion. */
@media (prefers-reduced-motion: reduce) {
    .ajct-floating-timer, .ajct-floating-timer * { animation: none !important; transition: none !important; }
}

/**
 * Sprememba (faza 5): opozorilo je native HTML <dialog> v zgornjem sloju
 * brskalnika; zatemnitev, modalnost in fokus niso odvisni od z-index Flatsome.
 * Razredi so izolirani in ne posegajo v globalni WooCommerce / Flatsome CSS.
 */
.ajct-warning-dialog:not([open]) { display: none !important; }
.ajct-warning-dialog[open] {
    box-sizing: border-box;
    width: min(92vw, 450px);
    max-width: 450px;
    max-height: calc(100vh - 28px);
    max-height: calc(100dvh - 28px);
    overflow-y: auto;
    margin: auto;
    padding: 0;
    color: #17212f;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 18px;
    box-shadow: 0 24px 65px rgba(16, 24, 40, .25);
    font-family: inherit;
    font-size: 15px;
    line-height: 1.55;
    text-align: center;
}
.ajct-warning-dialog::backdrop { background: rgba(17, 24, 39, .62); }
.ajct-warning-dialog .ajct-warning-content {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 32px 30px 28px;
}
.ajct-warning-dialog .ajct-warning-close {
    position: absolute;
    right: 12px;
    top: 10px;
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    padding: 0;
    border: 0;
    border-radius: 9px;
    color: #475467;
    background: transparent;
    font: inherit;
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
}
.ajct-warning-dialog .ajct-warning-close:hover,
.ajct-warning-dialog .ajct-warning-close:focus-visible { background: #f2f4f7; }
.ajct-warning-dialog .ajct-warning-symbol {
    display: grid;
    place-items: center;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    color: #b42318;
    background: #fff1f0;
    font-size: 28px;
    line-height: 1;
}
.ajct-warning-dialog .ajct-warning-title {
    margin: 0;
    padding: 0 12px;
    color: #1d2939;
    font-size: clamp(21px, 4.2vw, 25px);
    font-weight: 700;
    line-height: 1.28;
}
/* Sprememba (faza 5): tudi začetno programatično fokusiran naslov je
 * jasno označen za uporabnike tipkovnice (dostopnost). */
.ajct-warning-dialog .ajct-warning-title:focus-visible {
    outline: 3px solid #78bbf2;
    outline-offset: 4px;
}
.ajct-warning-dialog .ajct-warning-message {
    margin: 0;
    color: #475467;
    font-size: 14px;
    line-height: 1.6;
}
.ajct-warning-dialog .ajct-warning-countdown-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
    margin: 4px 0 8px;
}
.ajct-warning-dialog .ajct-warning-countdown-label {
    color: #667085;
    font-size: 12px;
}
.ajct-warning-dialog .ajct-warning-countdown {
    color: #b42318;
    font-size: clamp(38px, 9vw, 52px);
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    letter-spacing: -.025em;
    line-height: 1.2;
}
.ajct-warning-dialog .ajct-warning-checkout {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 46px;
    padding: 11px 16px;
    border: 1px solid #155b9c;
    border-radius: 10px;
    color: #fff;
    background: #155b9c;
    font: inherit;
    font-weight: 700;
    line-height: 1.35;
    text-decoration: none;
    cursor: pointer;
}
.ajct-warning-dialog .ajct-warning-checkout:hover,
.ajct-warning-dialog .ajct-warning-checkout:focus-visible {
    border-color: #104675;
    color: #fff;
    background: #104675;
    text-decoration: none;
}
.ajct-warning-dialog .ajct-warning-dismiss {
    padding: 6px 12px;
    border: 0;
    border-radius: 7px;
    color: #475467;
    background: transparent;
    font: inherit;
    font-weight: 500;
    cursor: pointer;
}
.ajct-warning-dialog .ajct-warning-dismiss:hover { background: #f2f4f7; }
.ajct-warning-dialog :focus-visible { outline: 3px solid #78bbf2; outline-offset: 3px; }
/* Sprememba (faza 5): majhen zaslon/landscape, safe-area in kratek viewport. */
@media (max-width: 600px) {
    .ajct-warning-dialog[open] { width: calc(100vw - 24px); max-height: calc(100dvh - 24px); }
    .ajct-warning-dialog .ajct-warning-content { gap: 10px; padding: 30px 19px 20px; }
    .ajct-warning-dialog .ajct-warning-title { padding: 0 13px; }
}
@media (prefers-reduced-motion: reduce) {
    .ajct-warning-dialog, .ajct-warning-dialog * { animation: none !important; transition: none !important; }
}

/**
 * Sprememba (faza 6): moderno obvestilo po izteku. Izolirani razredi,
 * native modal nad Flatsome plastmi, brez agresivnih animacij in overlay trikov.
 */
.ajct-expired-dialog:not([open]) { display: none !important; }
.ajct-expired-dialog[open] {
    box-sizing: border-box;
    width: min(92vw, 470px);
    max-width: 470px;
    max-height: calc(100dvh - 24px);
    overflow-y: auto;
    margin: auto;
    padding: 0;
    border: 1px solid #e5e7eb;
    border-radius: 18px;
    background: #fff;
    color: #1d2939;
    box-shadow: 0 24px 65px rgba(16, 24, 40, .25);
    font-family: inherit;
    font-size: 15px;
    line-height: 1.55;
    text-align: center;
}
.ajct-expired-dialog::backdrop { background: rgba(17, 24, 39, .62); }
.ajct-expired-dialog .ajct-expired-content {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    padding: 33px 30px 28px;
}
.ajct-expired-dialog .ajct-expired-close {
    position: absolute;
    right: 12px;
    top: 10px;
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    padding: 0;
    border: none;
    border-radius: 9px;
    background: transparent;
    color: #475467;
    font: inherit;
    font-size: 27px;
    line-height: 1;
    cursor: pointer;
}
.ajct-expired-dialog .ajct-expired-symbol {
    display: grid;
    place-items: center;
    width: 58px;
    height: 58px;
    border-radius: 50%;
    background: #fff1f0;
    font-size: 27px;
}
.ajct-expired-dialog .ajct-expired-title {
    margin: 0;
    color: #1d2939;
    font-size: clamp(22px, 4.5vw, 27px);
    font-weight: 700;
    line-height: 1.3;
}
.ajct-expired-dialog .ajct-expired-message {
    margin: 0;
    color: #475467;
    font-size: 14px;
    line-height: 1.65;
}
.ajct-expired-dialog .ajct-expired-shop {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 46px;
    margin-top: 10px;
    padding: 12px 17px;
    border: 1px solid #155b9c;
    border-radius: 10px;
    background: #155b9c;
    color: #fff;
    text-decoration: none;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}
.ajct-expired-dialog .ajct-expired-shop:hover,
.ajct-expired-dialog .ajct-expired-shop:focus-visible {
    background: #104675;
    border-color: #104675;
    color: #fff;
    text-decoration: none;
}
.ajct-expired-dialog .ajct-expired-dismiss {
    padding: 6px 12px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #475467;
    font: inherit;
    cursor: pointer;
}
.ajct-expired-dialog .ajct-expired-dismiss:hover,
.ajct-expired-dialog .ajct-expired-close:hover { background: #f2f4f7; }
.ajct-expired-dialog :focus-visible { outline: 3px solid #78bbf2; outline-offset: 4px; }
@media (max-width: 600px) {
    .ajct-expired-dialog[open] { width: calc(100vw - 24px); }
    .ajct-expired-dialog .ajct-expired-content { padding: 29px 18px 21px; }
}
@media (prefers-reduced-motion: reduce) {
    .ajct-expired-dialog, .ajct-expired-dialog * { animation: none !important; transition: none !important; }
}

/**
 * Sprememba (faza 8): oblikovanje je izolirano s CSS spremenljivkami AJCT.
 * Njihove vrednosti vstavi izključno DesignStyles po strogi PHP validaciji;
 * brez poljubnega CSS, globalnih posegov v Flatsome ali zunanjih knjižnic.
 */
.ajct-floating-timer {
    color: var(--ajct-text, #1d2939);
    background: var(--ajct-bg, #fff);
    border-color: var(--ajct-border, #e5e7eb);
    font-family: var(--ajct-font, inherit);
    font-size: var(--ajct-floating-font-size, 13px);
}
.ajct-floating-timer .ajct-floating-icon { color: var(--ajct-accent, #155b9c); }
.ajct-floating-timer .ajct-floating-value {
    color: var(--ajct-countdown, #b42318);
    font-size: var(--ajct-floating-countdown-size, 19px);
    font-weight: var(--ajct-font-weight, 700);
}
.ajct-floating-timer.ajct-time-critical .ajct-floating-value { color: var(--ajct-warning, #b42318); }
.ajct-floating-timer[data-ajct-position="left"] {
    left: calc(18px + env(safe-area-inset-left, 0px));
    right: auto;
}
.ajct-warning-dialog[open], .ajct-expired-dialog[open] {
    width: min(92vw, var(--ajct-popup-width, 450px));
    max-width: min(96vw, var(--ajct-popup-max-width, 520px));
    border-color: var(--ajct-border, #e5e7eb);
    border-radius: var(--ajct-popup-radius, 18px);
    background: var(--ajct-bg, #fff);
    color: var(--ajct-text, #1d2939);
    box-shadow: var(--ajct-popup-shadow, 0 24px 65px rgba(16,24,40,.25));
    font-family: var(--ajct-font, inherit);
    font-size: var(--ajct-font-size, 15px);
    text-align: var(--ajct-popup-align, center);
}
.ajct-warning-dialog::backdrop, .ajct-expired-dialog::backdrop {
    background: var(--ajct-overlay, rgba(17,24,39,.62));
}
.ajct-warning-dialog .ajct-warning-content, .ajct-expired-dialog .ajct-expired-content {
    gap: var(--ajct-popup-gap, 12px);
    padding: var(--ajct-popup-padding, 30px);
}
.ajct-warning-dialog .ajct-warning-title, .ajct-expired-dialog .ajct-expired-title {
    color: var(--ajct-text, #1d2939);
    font-weight: var(--ajct-font-weight, 700);
}
.ajct-warning-dialog .ajct-warning-message, .ajct-expired-dialog .ajct-expired-message,
.ajct-warning-dialog .ajct-warning-countdown-label,
.ajct-warning-dialog .ajct-warning-dismiss, .ajct-expired-dialog .ajct-expired-dismiss,
.ajct-warning-dialog .ajct-warning-close, .ajct-expired-dialog .ajct-expired-close {
    color: var(--ajct-text, #1d2939);
}
.ajct-warning-dialog .ajct-warning-symbol { color: var(--ajct-warning, #b42318); }
.ajct-warning-dialog .ajct-warning-countdown {
    color: var(--ajct-countdown, #b42318);
    font-size: var(--ajct-countdown-size, 52px);
    font-weight: var(--ajct-font-weight, 700);
}
.ajct-warning-dialog .ajct-warning-checkout, .ajct-expired-dialog .ajct-expired-shop {
    background: var(--ajct-button, #155b9c);
    border-color: var(--ajct-button, #155b9c);
    color: var(--ajct-button-text, #fff);
    border-radius: min(var(--ajct-popup-radius, 18px), 14px);
}
.ajct-warning-dialog .ajct-warning-checkout:hover,
.ajct-warning-dialog .ajct-warning-checkout:focus-visible,
.ajct-expired-dialog .ajct-expired-shop:hover,
.ajct-expired-dialog .ajct-expired-shop:focus-visible {
    background: var(--ajct-button, #155b9c);
    border-color: var(--ajct-button, #155b9c);
    color: var(--ajct-button-text, #fff);
    filter: brightness(.9);
}
.ajct-warning-dialog[data-ajct-align="left"] .ajct-warning-content,
.ajct-expired-dialog[data-ajct-align="left"] .ajct-expired-content { align-items: stretch; text-align: left; }
.ajct-warning-dialog[data-ajct-align="right"] .ajct-warning-content,
.ajct-expired-dialog[data-ajct-align="right"] .ajct-expired-content { align-items: stretch; text-align: right; }
.ajct-warning-dialog[data-ajct-align="center"] .ajct-warning-content,
.ajct-expired-dialog[data-ajct-align="center"] .ajct-expired-content { text-align: center; }
.ajct-warning-dialog[open][data-ajct-placement="top"],
.ajct-expired-dialog[open][data-ajct-placement="top"] { margin-top: clamp(12px, 7vh, 85px); margin-bottom: auto; }
.ajct-warning-dialog[open][data-ajct-placement="bottom"],
.ajct-expired-dialog[open][data-ajct-placement="bottom"] { margin-top: auto; margin-bottom: clamp(12px, 7vh, 85px); }
/* Sprememba (faza 8): animacije delujejo samo ob izrecni izbiri. */
@keyframes ajct-popup-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes ajct-popup-slide { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }
@keyframes ajct-popup-zoom { from { opacity: 0; transform: scale(.96); } to { opacity: 1; transform: scale(1); } }
.ajct-warning-dialog[open][data-ajct-animation="fade"],
.ajct-expired-dialog[open][data-ajct-animation="fade"] { animation: ajct-popup-fade .18s ease-out both; }
.ajct-warning-dialog[open][data-ajct-animation="slide"],
.ajct-expired-dialog[open][data-ajct-animation="slide"] { animation: ajct-popup-slide .22s ease-out both; }
.ajct-warning-dialog[open][data-ajct-animation="zoom"],
.ajct-expired-dialog[open][data-ajct-animation="zoom"] { animation: ajct-popup-zoom .2s ease-out both; }
@media (max-width: 600px) {
    .ajct-floating-timer { font-size: var(--ajct-floating-font-size, 12px); }
    .ajct-floating-timer .ajct-floating-value { font-size: var(--ajct-floating-countdown-size, 17px); }
    .ajct-floating-timer[data-ajct-position="left"] {
        left: calc(12px + env(safe-area-inset-left, 0px));
        right: auto;
    }
    .ajct-warning-dialog[open], .ajct-expired-dialog[open] {
        width: min(calc(100vw - 24px), var(--ajct-popup-width, 450px));
        font-size: var(--ajct-font-size, 13px);
    }
    .ajct-warning-dialog .ajct-warning-content,
    .ajct-expired-dialog .ajct-expired-content { padding: min(var(--ajct-popup-padding, 30px), 22px); }
    .ajct-warning-dialog .ajct-warning-countdown { font-size: var(--ajct-countdown-size, 39px); }
}
@media (prefers-reduced-motion: reduce) {
    .ajct-warning-dialog[open], .ajct-expired-dialog[open] { animation: none !important; }
}

/* Faza 8: tudi opis, naslov in oznaka se odzivajo na nastavljeno velikost. */
.ajct-warning-dialog .ajct-warning-title, .ajct-expired-dialog .ajct-expired-title { font-size: 1.6em; }
.ajct-warning-dialog .ajct-warning-message, .ajct-expired-dialog .ajct-expired-message { font-size: 1em; }
.ajct-warning-dialog .ajct-warning-countdown-label { font-size: .85em; }

/* Faza 8: izbrana opozorilna barva prilagodi tudi blago ozadje simbolov. */
.ajct-warning-dialog .ajct-warning-symbol, .ajct-expired-dialog .ajct-expired-symbol {
    background: var(--ajct-warning-soft, #fff1f0);
}
.ajct-warning-dialog :focus-visible, .ajct-expired-dialog :focus-visible {
    outline-color: var(--ajct-accent, #155b9c);
}

/**
 * Sprememba (faza 9): izoliran inline prikaz za WooCommerce košarico,
 * blagajno, Flatsome widget mini-cart in standardne shortcodes. Elementi
 * so skriti do potrjenega AJAX stanja; preveč splošnih WC/Flatsome selektorjev
 * namenoma ne uporabljamo.
 */
.ajct-inline-timer[hidden] { display: none !important; }
.ajct-inline-timer {
    box-sizing: border-box;
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: .4em;
    max-width: 100%;
    padding: 10px 14px;
    border: 1px solid var(--ajct-border, #e5e7eb);
    border-radius: 10px;
    background: var(--ajct-bg, #fff);
    color: var(--ajct-text, #1f2937);
    font-family: var(--ajct-font, inherit);
    font-size: var(--ajct-font-size, 14px);
    line-height: 1.4;
    vertical-align: middle;
}
.ajct-inline-timer .ajct-inline-value {
    color: var(--ajct-countdown, #135a9c);
    font-size: 1.2em;
    font-weight: var(--ajct-font-weight, 700);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.ajct-inline-timer.ajct-time-critical .ajct-inline-value {
    color: var(--ajct-warning, #b42318);
}
.ajct-inline-timer--time-only { border: 0; background: transparent; padding: 0; }
.ajct-inline-timer--cart, .ajct-inline-timer--checkout { display: flex; margin: 0 0 18px; }
.ajct-inline-timer--mini-cart { display: flex; margin: 10px 0; text-align: center; }
.ajct-inline-timer--top-bar {
    display: flex;
    width: 100%;
    margin: 0;
    border-radius: 0;
    border-left: 0;
    border-right: 0;
    text-align: center;
}
@media (max-width: 600px) {
    .ajct-inline-timer[data-ajct-mobile="off"] { display: none !important; }
    .ajct-inline-timer { font-size: var(--ajct-font-size, 12px); padding: 8px 10px; }
    .ajct-inline-timer--time-only { padding: 0; }
}
@media (prefers-reduced-motion: reduce) {
    .ajct-inline-timer, .ajct-inline-timer * { animation: none !important; transition: none !important; }
}
