/* ============================================================
   FlexiCookiesConsent – styly v1.2.0
   Vysoká specificita kvůli Elementor / page builder konfliktům
   ============================================================ */

:root {
    --fcc-bg:              #1e1e2e;
    --fcc-bg-panel:        #16162a;
    --fcc-border:          rgba(255,255,255,.10);
    --fcc-text:            #e2e2f0;
    --fcc-text-muted:      #9393b0;
    --fcc-dot:             #7c6fff;
    --fcc-link:            #7c9fff;
    --fcc-primary-a:       #6c4fff;
    --fcc-primary-b:       #a855f7;
    --fcc-secondary-bg:    #2a2a42;
    --fcc-secondary-hover: #34344f;
    --fcc-toggle-off:      #3a3a55;
    --fcc-toggle-on-a:     #6c4fff;
    --fcc-toggle-on-b:     #a855f7;
    --fcc-radius:          14px;
    --fcc-radius-btn:      9px;
    --fcc-shadow:          0 8px 40px rgba(0,0,0,.55);
    --fcc-z:               99999;
    --fcc-font:            -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --fcc-transition:      .28s cubic-bezier(.4,0,.2,1);
}

/* ── Reset uvnitř banneru a panelu ───────────────────────────────────────── */
#fcc-banner *, #fcc-banner *::before, #fcc-banner *::after,
#fcc-panel *,  #fcc-panel *::before,  #fcc-panel *::after,
#fcc-overlay {
    box-sizing: border-box !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: normal !important;
    font-family: var(--fcc-font) !important;
    list-style: none !important;
    border: none !important;
    background: none !important;
    float: none !important;
    clear: none !important;
}

/* ── Banner – základní ────────────────────────────────────────────────────── */
#fcc-banner {
    position: fixed !important;
    z-index: var(--fcc-z) !important;
    width: 340px !important;
    max-width: calc(100vw - 24px) !important;
    background: var(--fcc-bg) !important;
    border: 1px solid var(--fcc-border) !important;
    border-radius: var(--fcc-radius) !important;
    box-shadow: var(--fcc-shadow) !important;
    color: var(--fcc-text) !important;
    opacity: 0 !important;
    transform: translateY(18px) !important;
    transition: opacity var(--fcc-transition), transform var(--fcc-transition) !important;
    pointer-events: none !important;
}

#fcc-banner.fcc-visible {
    opacity: 1 !important;
    transform: translateY(0) !important;
    pointer-events: auto !important;
}

/* Pozice */
#fcc-banner.fcc-pos-bottom-right { bottom: 20px !important; right: 20px !important; left: auto !important; top: auto !important; }
#fcc-banner.fcc-pos-bottom-left  { bottom: 20px !important; left: 20px !important;  right: auto !important; top: auto !important; }
#fcc-banner.fcc-pos-bottom       { bottom: 20px !important; left: 50% !important; right: auto !important; top: auto !important; transform: translateX(-50%) translateY(18px) !important; }
#fcc-banner.fcc-pos-bottom.fcc-visible { transform: translateX(-50%) translateY(0) !important; }
#fcc-banner.fcc-pos-top          { top: 20px !important; right: 20px !important; bottom: auto !important; left: auto !important; }

/* ── Banner vnitřek ──────────────────────────────────────────────────────── */
#fcc-banner .fcc-inner {
    padding: 20px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
}

#fcc-banner .fcc-badge {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    color: var(--fcc-text) !important;
    line-height: 1.3 !important;
}

#fcc-banner .fcc-dot {
    display: inline-block !important;
    width: 9px !important;
    height: 9px !important;
    min-width: 9px !important;
    border-radius: 50% !important;
    background: var(--fcc-dot) !important;
    flex-shrink: 0 !important;
    box-shadow: 0 0 0 3px rgba(124,111,255,.25) !important;
}

/* ── Popisový text – sdíleno banner + panel ─────────────────────────────── */
#fcc-banner .fcc-desc,
#fcc-panel  .fcc-desc {
    font-size: 13px !important;
    line-height: 1.55 !important;
    color: var(--fcc-text-muted) !important;
}

#fcc-banner .fcc-desc a,
#fcc-banner .fcc-desc .fcc-link,
#fcc-panel  .fcc-desc a,
#fcc-panel  .fcc-desc .fcc-link {
    color: var(--fcc-link) !important;
    text-decoration: none !important;
}

#fcc-banner .fcc-desc a:hover,
#fcc-banner .fcc-desc .fcc-link:hover,
#fcc-panel  .fcc-desc a:hover,
#fcc-panel  .fcc-desc .fcc-link:hover {
    text-decoration: underline !important;
}

/* ── Tlačítka ────────────────────────────────────────────────────────────── */
#fcc-banner .fcc-actions {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    grid-template-rows: auto auto !important;
    gap: 8px !important;
    width: 100% !important;
}

/* Souhlasím přes obě kolonky */
#fcc-banner #fcc-btn-accept {
    grid-column: 1 / -1 !important;
}

#fcc-banner .fcc-btn {
    display: block !important;
    width: 100% !important;
    padding: 11px 16px !important;
    border-radius: var(--fcc-radius-btn) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    text-align: center !important;
    line-height: 1 !important;
    transition: filter var(--fcc-transition), background var(--fcc-transition) !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    text-decoration: none !important;
    letter-spacing: normal !important;
    text-transform: none !important;
    word-spacing: normal !important;
}

#fcc-banner .fcc-btn--primary {
    background: linear-gradient(90deg, var(--fcc-primary-a), var(--fcc-primary-b)) !important;
    color: #fff !important;
    border: none !important;
}

#fcc-banner .fcc-btn--primary:hover  { filter: brightness(1.15) !important; }
#fcc-banner .fcc-btn--primary:active { filter: brightness(.95) !important; }

#fcc-banner .fcc-btn--secondary {
    background: var(--fcc-secondary-bg) !important;
    color: var(--fcc-text) !important;
    border: 1px solid var(--fcc-border) !important;
}

#fcc-banner .fcc-btn--secondary:hover {
    background: var(--fcc-secondary-hover) !important;
}

#fcc-banner .fcc-btn:focus-visible {
    outline: 2px solid var(--fcc-dot) !important;
    outline-offset: 2px !important;
}

/* ── Nezbytné cookies (vypínatelný blok na banneru) ─────────────────────── */
#fcc-banner .fcc-necessary {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    font-size: 12px !important;
    color: var(--fcc-text-muted) !important;
}

#fcc-banner .fcc-checkbox--locked {
    display: inline-block !important;
    width: 16px !important;
    height: 16px !important;
    min-width: 16px !important;
    border: 1.5px solid var(--fcc-border) !important;
    border-radius: 4px !important;
    background: var(--fcc-secondary-bg) !important;
    flex-shrink: 0 !important;
    position: relative !important;
}

#fcc-banner .fcc-checkbox--locked::after {
    content: '' !important;
    position: absolute !important;
    inset: 3px !important;
    border-radius: 2px !important;
    background: var(--fcc-text-muted) !important;
    opacity: .5 !important;
}

/* ── Overlay ─────────────────────────────────────────────────────────────── */
#fcc-overlay {
    position: fixed !important;
    inset: 0 !important;
    z-index: calc(var(--fcc-z) + 1) !important;
    background: rgba(0,0,0,.55) !important;
    opacity: 0 !important;
    transition: opacity var(--fcc-transition) !important;
    pointer-events: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

#fcc-overlay.fcc-visible {
    opacity: 1 !important;
    pointer-events: auto !important;
}

/* ── Panel předvoleb ─────────────────────────────────────────────────────── */
#fcc-panel {
    position: fixed !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -48%) !important;
    z-index: calc(var(--fcc-z) + 2) !important;
    width: 440px !important;
    max-width: calc(100vw - 32px) !important;
    max-height: 90vh !important;
    overflow-y: auto !important;
    background: var(--fcc-bg-panel) !important;
    border: 1px solid var(--fcc-border) !important;
    border-radius: var(--fcc-radius) !important;
    box-shadow: var(--fcc-shadow) !important;
    color: var(--fcc-text) !important;
    opacity: 0 !important;
    transition: opacity var(--fcc-transition), transform var(--fcc-transition) !important;
    pointer-events: none !important;
}

#fcc-panel.fcc-visible {
    opacity: 1 !important;
    transform: translate(-50%, -50%) !important;
    pointer-events: auto !important;
}

#fcc-panel .fcc-panel-inner {
    padding: 28px 24px 24px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 16px !important;
    position: relative !important;
}

#fcc-panel .fcc-panel-close {
    position: absolute !important;
    top: 16px !important;
    right: 16px !important;
    background: var(--fcc-secondary-bg) !important;
    border: 1px solid var(--fcc-border) !important;
    color: var(--fcc-text-muted) !important;
    width: 30px !important;
    height: 30px !important;
    border-radius: 50% !important;
    cursor: pointer !important;
    font-size: 13px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: background var(--fcc-transition), color var(--fcc-transition) !important;
    line-height: 1 !important;
    padding: 0 !important;
    margin: 0 !important;
}

#fcc-panel .fcc-panel-close:hover {
    background: var(--fcc-secondary-hover) !important;
    color: var(--fcc-text) !important;
}

#fcc-panel .fcc-panel-title {
    font-size: 17px !important;
    font-weight: 700 !important;
    color: var(--fcc-text) !important;
    padding-right: 40px !important;
    line-height: 1.3 !important;
}

/* Popisek v panelu (volitelný, pod nadpisem) */
#fcc-panel > .fcc-panel-inner > .fcc-desc {
    margin-top: -4px !important;
}

#fcc-panel .fcc-desc a,
#fcc-panel .fcc-desc .fcc-link {
    word-break: break-word !important;
}

#fcc-panel .fcc-category {
    border: 1px solid var(--fcc-border) !important;
    border-radius: 10px !important;
    padding: 14px 16px !important;
    background: var(--fcc-bg) !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
}

#fcc-panel .fcc-category-header {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
}

#fcc-panel .fcc-category-label {
    font-size: 14px !important;
    font-weight: 600 !important;
    color: var(--fcc-text) !important;
}

#fcc-panel .fcc-category-desc {
    font-size: 12px !important;
    color: var(--fcc-text-muted) !important;
    line-height: 1.5 !important;
}

#fcc-panel .fcc-toggle--locked {
    font-size: 11px !important;
    font-weight: 600 !important;
    color: var(--fcc-text-muted) !important;
    background: var(--fcc-secondary-bg) !important;
    border: 1px solid var(--fcc-border) !important;
    border-radius: 20px !important;
    padding: 3px 10px !important;
    flex-shrink: 0 !important;
}

/* ── Toggle switch v panelu ──────────────────────────────────────────────── */
#fcc-panel .fcc-toggle-wrap {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    cursor: pointer !important;
    flex-shrink: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    background: none !important;
    border: none !important;
}

#fcc-panel .fcc-toggle-input {
    position: absolute !important;
    opacity: 0 !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

#fcc-panel .fcc-toggle-slider {
    display: inline-block !important;
    width: 46px !important;
    height: 26px !important;
    background: var(--fcc-toggle-off) !important;
    border-radius: 13px !important;
    transition: background var(--fcc-transition) !important;
    position: relative !important;
    flex-shrink: 0 !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

#fcc-panel .fcc-toggle-slider::after {
    content: '' !important;
    position: absolute !important;
    top: 3px !important;
    left: 3px !important;
    width: 20px !important;
    height: 20px !important;
    background: #fff !important;
    border-radius: 50% !important;
    transition: transform var(--fcc-transition), box-shadow var(--fcc-transition) !important;
    box-shadow: 0 1px 4px rgba(0,0,0,.4) !important;
}

#fcc-panel .fcc-toggle-input:checked + .fcc-toggle-slider {
    background: linear-gradient(90deg, var(--fcc-toggle-on-a), var(--fcc-toggle-on-b)) !important;
}

#fcc-panel .fcc-toggle-input:checked + .fcc-toggle-slider::after {
    transform: translateX(20px) !important;
}

#fcc-panel .fcc-toggle-input:focus-visible + .fcc-toggle-slider {
    outline: 2px solid var(--fcc-dot) !important;
    outline-offset: 2px !important;
}

/* ── Panel tlačítka ──────────────────────────────────────────────────────── */
#fcc-panel .fcc-panel-actions {
    display: flex !important;
    gap: 10px !important;
}

#fcc-panel .fcc-panel-actions .fcc-btn {
    flex: 1 !important;
    display: block !important;
    padding: 11px 16px !important;
    border-radius: var(--fcc-radius-btn) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    text-align: center !important;
    line-height: 1 !important;
    transition: filter var(--fcc-transition), background var(--fcc-transition) !important;
    appearance: none !important;
    -webkit-appearance: none !important;
}

#fcc-panel .fcc-btn--primary {
    background: linear-gradient(90deg, var(--fcc-primary-a), var(--fcc-primary-b)) !important;
    color: #fff !important;
    border: none !important;
}

#fcc-panel .fcc-btn--primary:hover { filter: brightness(1.15) !important; }

#fcc-panel .fcc-btn--secondary {
    background: var(--fcc-secondary-bg) !important;
    color: var(--fcc-text) !important;
    border: 1px solid var(--fcc-border) !important;
}

#fcc-panel .fcc-btn--secondary:hover {
    background: var(--fcc-secondary-hover) !important;
}

/* ── Scrollbar panelu ────────────────────────────────────────────────────── */
#fcc-panel::-webkit-scrollbar       { width: 5px; }
#fcc-panel::-webkit-scrollbar-track { background: transparent; }
#fcc-panel::-webkit-scrollbar-thumb { background: var(--fcc-border); border-radius: 3px; }

/* ── Responzivita ────────────────────────────────────────────────────────── */
@media (max-width: 480px) {
    #fcc-banner {
        width: calc(100vw - 24px) !important;
    }
    #fcc-banner.fcc-pos-bottom-right,
    #fcc-banner.fcc-pos-bottom-left {
        left: 12px !important;
        right: 12px !important;
        width: auto !important;
    }
    #fcc-panel {
        width: calc(100vw - 24px) !important;
    }
    #fcc-panel .fcc-panel-actions {
        flex-direction: column !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    #fcc-banner,
    #fcc-panel,
    #fcc-overlay,
    #fcc-panel .fcc-toggle-slider,
    #fcc-panel .fcc-toggle-slider::after {
        transition: none !important;
    }
}