/*
 * shaim_cookies_eu - front office styly
 * Verze 2.6.2 - modernizace:
 *   flexbox layout, CSS custom properties, plynule transitions, focus styly
 *
 * Selektory cili tridu .shaim_cks_eu, ID #shaim_cks_eu zustava v markupu
 * kvuli zpetne kompatibilite s overridy v custom themach.
 */

.shaim_cks_eu {
    font-size: 14px;
    line-height: 1.4;
    left: 0;
    width: 100%;
    z-index: 9999999999;
    box-sizing: border-box;
    transition: transform 320ms ease, opacity 320ms ease;
}

.shaim_cks_eu *,
.shaim_cks_eu *::before,
.shaim_cks_eu *::after {
    box-sizing: border-box;
}

/* Robustni hidden - autorske CSS s display:flex/block prebiji UA pravidlo
 * [hidden] { display: none }. Bez !important by se napr. custom panel
 * v PS 1.6 ukazal otevreny od zacatku. */
.shaim_cks_eu [hidden] {
    display: none !important;
}

/* Theme casto nastavuje label/p/span vlastni barvu (specificity 0,0,1),
 * coz prebiji inheritance z rootu. Explicitne ji vratime na inherit,
 * aby text v liste respektoval "Barva textu liste" z BO. */
.shaim_cks_eu__text,
.shaim_cks_eu__text p,
.shaim_cks_eu__text span,
.shaim_cks_eu__text label,
.shaim_cks_eu__text a:not(.shaim_cks_eu__more, .more_info_href) {
    color: inherit;
}

.shaim_cks_eu[hidden] {
    display: none;
}

/* Trida pridana z JS pri timeoutu / pri zavirani - smooth slide off */
.shaim_cks_eu.is-hiding {
    opacity: 0 !important;
    pointer-events: none;
}

.shaim_cks_eu[data-cks-position="bottom"].is-hiding {
    transform: translateY(100%);
}

.shaim_cks_eu[data-cks-position="top"].is-hiding {
    transform: translateY(-100%);
}

.shaim_cks_eu__inner {
    position: relative;
    margin: 0 auto;
    padding: 14px 18px;
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.shaim_cks_eu__row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 12px 18px;
}

.shaim_cks_eu__text {
    flex: 1 1 320px;
    min-width: 0;
    text-align: center;
}

.shaim_cks_eu__text p {
    margin: 0;
    padding: 0;
}

.shaim_cks_eu__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.shaim_cks_eu__more,
.shaim_cks_eu .more_info_href {
    color: var(--cks-text, inherit);
    text-decoration: underline;
}

/* Tlacitka - native <button> reset + nas styling */
.shaim_cks_eu__btn {
    appearance: none;
    border: 0;
    margin: 0;
    cursor: pointer;
    font: inherit;
    font-size: 15px;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    min-height: 36px;
    padding: 8px 22px;
    border-radius: 4px;
    transition: background-color 160ms ease, transform 80ms ease, box-shadow 160ms ease;
    background: var(--cks-btn-bg);
    color: var(--cks-btn-color) !important;
}

.shaim_cks_eu__btn:hover {
    background: var(--cks-btn-hover);
}

.shaim_cks_eu__btn:active {
    transform: translateY(1px);
}

.shaim_cks_eu__btn:focus-visible {
    outline: 2px solid currentcolor;
    outline-offset: 2px;
}

.shaim_cks_eu__btn--pers {
    background: var(--cks-btn-pers-bg);
    color: var(--cks-btn-pers-color) !important;
}

.shaim_cks_eu__btn--pers:hover {
    background: var(--cks-btn-pers-hover);
}

.shaim_cks_eu__btn--custom {
    background: var(--cks-btn-custom-bg);
    color: var(--cks-btn-custom-color) !important;
}

.shaim_cks_eu__btn--custom:hover {
    background: var(--cks-btn-custom-hover);
}

/* Checkboxy v personalizaci - vlastni vykresleni nezavisle na native style.
 * Duvod: PS 1.6 default theme + uniform plugin prebijel native checkbox
 * styly (accent-color se neaplikoval, checkmark nebyl videt). Custom rendering
 * pres visually-hidden input + label::before/::after zaruci konzistentni
 * vzhled napric PS 1.6, 1.7, 8.x, 9.x. Respektuje --cks-btn-bg/--cks-btn-color
 * z BO konfigurace - barvy klienta. */
.shaim_cks_eu__check {
    display: inline-flex;
    align-items: center;
    position: relative;
}

/* Visually hidden - input je v DOM (klavesnice, screenreader), ale neviditelny.
 * Stav (checked/disabled) se cte na :checked/:disabled v sourozencich selectorech. */
.shaim_cks_eu__check input[type="checkbox"] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
    opacity: 0;
}

.shaim_cks_eu__check label {
    cursor: pointer;
    position: relative;
    padding-left: 24px;
    display: inline-flex;
    align-items: center;
    min-height: 18px;
    color: inherit;
    font-weight: normal;
    margin: 0;
    line-height: 1.4;
}

/* Box checkboxu */
.shaim_cks_eu__check label::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 16px;
    height: 16px;
    background: #fff;
    border: 1px solid currentcolor;
    border-radius: 2px;
    box-sizing: border-box;
    transform: translateY(-50%);
    transition: background-color 100ms ease, border-color 100ms ease;
}

/* Checkmark - V tvar z rotovaneho border-bottom + border-right */
.shaim_cks_eu__check label::after {
    content: "";
    position: absolute;
    left: 5px;
    top: calc(50% - 1px);
    width: 4px;
    height: 8px;
    border: solid var(--cks-btn-color, #000);
    border-width: 0 2px 2px 0;
    transform: translateY(-50%) rotate(45deg);
    opacity: 0;
    transition: opacity 100ms ease;
}

/* Zaskrtnuty stav - zlute pozadi + viditelny checkmark */
.shaim_cks_eu__check input[type="checkbox"]:checked + label::before {
    background: var(--cks-btn-bg);
    border-color: var(--cks-btn-bg);
}

.shaim_cks_eu__check input[type="checkbox"]:checked + label::after {
    opacity: 1;
}

/* Disabled stav - "Nezbytne nutne cookies" - vzdy zaskrtnute, neda se vypnout */
.shaim_cks_eu__check input[type="checkbox"]:disabled + label {
    opacity: 0.7;
    cursor: not-allowed;
}

/* Focus z klavesnice */
.shaim_cks_eu__check input[type="checkbox"]:focus-visible + label::before {
    outline: 2px solid currentcolor;
    outline-offset: 2px;
}

.shaim_cks_eu .ruka {
    cursor: pointer;
}

/* ============================================================
 * Responsivita
 * ============================================================ */

@media (min-width: 768px) {
    .shaim_cks_eu__row--main {
        flex-wrap: nowrap;
    }

    .shaim_cks_eu__row--main .shaim_cks_eu__text {
        text-align: left;
    }

    /* Actions v row--main je vzdy sloupcovy 280px - obsahuje 3-4 tlacitka
     * (Prijmout vse, [Odmitnout vse], Personalizovat/Prijmout zvolene).
     * Sirka je stejna nezavisle na stavu (otevrene/zavrene personalizaci)
     * -> zadne CLS, tlacitka 1 a 2 zustavaji v miste, pozice 3 toggle. */
    .shaim_cks_eu__row--main .shaim_cks_eu__actions {
        flex: 0 0 280px;
        flex-direction: column;
        align-items: stretch;
    }

    .shaim_cks_eu__row--main .shaim_cks_eu__btn {
        width: 100%;
        min-width: 0;
    }
}

/* Custom row - obsahuje pouze checkboxy (tlacitko Prijmout zvolene je
 * presunute do row--main actions, sdili pozici s Personalizovat). */
.shaim_cks_eu__row--custom .shaim_cks_eu__text {
    flex: 1 1 100%;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    justify-content: center;
}

@media (max-width: 767px) {
    .shaim_cks_eu__inner {
        padding: 12px 14px;
    }

    .shaim_cks_eu__check {
        display: flex;
        width: 100%;
    }

    .shaim_cks_eu__actions {
        width: 100%;
        flex-direction: column;
    }

    .shaim_cks_eu__btn {
        width: 100%;
    }
}

/* ============================================================
 * Zaroven respektujeme prefers-reduced-motion (a11y)
 * ============================================================ */
@media (prefers-reduced-motion: reduce) {
    .shaim_cks_eu,
    .shaim_cks_eu__btn {
        transition: none;
    }
}
