/* Another Cookie Consent — Frontend Styles
   All font sizes in rem. Dynamic colours injected inline by PHP.
   All positioning uses !important to survive Elementor/theme overrides.
   ---------------------------------------------------------------- */

/* Isolate all plugin elements from theme/page-builder resets */
#acc-banner,#acc-banner *,
#acc-modal,#acc-modal *,
#acc-overlay,
#acc-manage-bar,#acc-manage-bar *{
    box-sizing:border-box!important;
    font-family:inherit!important
}

/* ── Overlay ── */
#acc-overlay{
    display:none!important;
    position:fixed!important;
    top:0!important;right:0!important;bottom:0!important;left:0!important;
    background:rgba(0,0,0,.55)!important;
    z-index:99997!important;
    backdrop-filter:blur(2px)!important;
    margin:0!important;padding:0!important;
    transform:none!important
}
#acc-overlay.acc-visible{display:block!important}

/* ── Banner ── */
#acc-banner{
    display:none!important;
    position:fixed!important;
    left:0!important;right:0!important;
    z-index:99998!important;
    padding:1rem 1.5rem!important;
    box-shadow:0 -0.125rem 1rem rgba(0,0,0,.3)!important;
    margin:0!important;
    transform:none!important
}
#acc-banner.acc-visible{display:block!important}
#acc-banner-inner{
    display:flex!important;align-items:center!important;
    gap:1rem!important;flex-wrap:wrap!important;
    max-width:1200px!important;margin:0 auto!important;
    padding:0!important
}
#acc-banner p{
    margin:0!important;flex:1!important;
    min-width:11rem!important;line-height:1.5!important
}
#acc-banner .acc-btns{
    display:flex!important;gap:.5rem!important;
    flex-wrap:wrap!important;align-items:center!important
}

/* ── Buttons — base layout; colours set via dynamic inline CSS ── */
#acc-banner .acc-btn,#acc-modal .acc-btn{
    display:inline-block!important;
    cursor:pointer!important;
    font-weight:600!important;
    line-height:1!important;
    padding:.55em 1.1em!important;
    transition:background .15s,color .15s,border-color .15s!important;
    text-decoration:none!important;
    outline:none!important;
    white-space:nowrap!important;
    vertical-align:middle!important;
    text-align:center!important;
    margin:0!important
}

/* ── Modal ── */
#acc-modal{
    display:none!important;
    position:fixed!important;
    top:50%!important;
    left:50%!important;
    transform:translate(-50%,-50%)!important;
    z-index:99999!important;
    width:min(36rem,96vw)!important;
    height:min(42.5rem,92vh)!important;
    border-radius:0.625rem!important;
    box-shadow:0 0.5rem 2.5rem rgba(0,0,0,.25)!important;
    overflow:hidden!important;
    flex-direction:column!important;
    background:#fff!important;
    margin:0!important;
    padding:0!important
}
#acc-modal.acc-visible{display:flex!important}

/* Header */
#acc-modal-header{
    padding:1.1rem 1.25rem .7rem!important;
    border-bottom:1px solid #eee!important;
    flex-shrink:0!important;
    text-align:center!important;
    margin:0!important
}
#acc-modal-header h2{
    margin:0 0 .65rem!important;
    font-size:1.05rem!important;
    text-align:center!important;
    line-height:1.3!important
}

/* Tabs — full-width strip, isolated from Elementor button styles */
.acc-tabs{
    display:flex!important;gap:0!important;
    flex-wrap:nowrap!important;
    border:1px solid #ddd!important;
    border-radius:0.375rem!important;
    overflow:hidden!important;
    margin:0!important;padding:0!important
}
#acc-modal .acc-tab{
    flex:1!important;
    background:none!important;
    border:none!important;
    border-right:1px solid #ddd!important;
    border-radius:0!important;
    cursor:pointer!important;
    font-family:inherit!important;
    font-size:.75rem!important;
    padding:.4em .5em!important;
    transition:background .15s,color .15s!important;
    color:inherit!important;
    text-transform:none!important;
    letter-spacing:normal!important;
    font-weight:normal!important;
    line-height:1.3!important;
    box-shadow:none!important;
    text-align:center!important;
    white-space:normal!important;
    margin:0!important;
    outline:none!important
}
#acc-modal .acc-tab:last-child{border-right:none!important}

/* Body */
#acc-modal-body{
    overflow-y:auto!important;
    padding:1.1rem 1.25rem!important;
    flex:1!important;
    margin:0!important
}
.acc-panel{display:none!important}
.acc-panel.active{display:block!important}

/* Footer */
#acc-modal-footer{
    padding:.75rem 1.25rem!important;
    border-top:1px solid #eee!important;
    display:flex!important;
    gap:.5rem!important;
    justify-content:center!important;
    flex-wrap:wrap!important;
    flex-shrink:0!important;
    margin:0!important
}

/* Category rows */
.acc-cat-row{border:1px solid #eee;border-radius:0.375rem;margin-bottom:.5rem;overflow:hidden}
.acc-cat-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;cursor:pointer}
.acc-cat-label{font-weight:600;font-size:.9rem;margin-bottom:.15rem}
.acc-cat-desc{font-size:.8rem;opacity:.7;line-height:1.4}
.acc-cat-body{max-height:0;overflow:hidden;transition:max-height .25s ease}
.acc-cat-body.open{max-height:25rem}
.acc-cat-body-inner{padding:.5rem 1rem .75rem;font-size:.8rem;line-height:1.5;opacity:.8}

/* Toggle */
.acc-toggle{position:relative!important;width:2.625rem!important;height:1.5rem!important;flex-shrink:0!important;display:inline-block!important}
.acc-toggle input{opacity:0!important;width:0!important;height:0!important;position:absolute!important}
.acc-slider{position:absolute!important;inset:0!important;border-radius:1.5rem!important;transition:.25s!important;cursor:pointer!important}
.acc-slider:before{
    content:''!important;position:absolute!important;
    height:1.125rem!important;width:1.125rem!important;
    left:.1875rem!important;bottom:.1875rem!important;
    border-radius:50%!important;transition:.25s!important
}
input:checked+.acc-slider:before{transform:translateX(1.125rem)!important}
input:disabled+.acc-slider{opacity:.6!important;cursor:default!important}

/* Consent key */
.acc-consent-key{
    font-family:monospace!important;
    font-size:clamp(.7rem,3.5vw,1.1rem)!important;
    font-weight:bold!important;
    letter-spacing:.08em!important;
    color:#222!important;
    word-break:break-all!important;
    text-align:center!important;
    line-height:1.4!important;
    padding:.25rem 0!important
}

/* Manage bar */
#acc-manage-bar{
    display:none!important;
    position:fixed!important;
    bottom:0!important;left:0!important;
    z-index:99996!important;
    padding:.35rem .75rem!important;
    border-radius:0 0.375rem 0 0!important;
    font-size:.75rem!important;
    margin:0!important;
    transform:none!important
}
#acc-manage-bar.acc-visible{display:block!important}

/* Mobile */
@media(max-width:30rem){
    #acc-banner-inner{flex-direction:column!important;text-align:center!important}
    #acc-banner .acc-btns{justify-content:center!important;width:100%!important}
    #acc-banner .acc-btn{flex:1!important;text-align:center!important}
    #acc-modal{
        width:80vw!important;height:80vh!important;
        top:50%!important;left:50%!important;
        transform:translate(-50%,-50%)!important;
        border-radius:.625rem!important
    }
    #acc-modal-footer{justify-content:center!important}
    #acc-modal-footer .acc-btn{flex:1!important;text-align:center!important}
}

/* ── iFrame Facade consent overlay ── */
.acc-if-blocked{position:relative!important;display:block!important}

.acc-if-blocked::before{
    content:''!important;
    position:absolute!important;
    inset:0!important;
    z-index:9000!important;
    background:rgba(18,18,18,.88)!important;
    cursor:default!important;
    pointer-events:all!important
}

/* Overlay text — centred, set via data-acc-overlay attribute */
.acc-if-blocked::after{
    content:attr(data-acc-overlay)!important;
    position:absolute!important;
    inset:0!important;
    z-index:9001!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    text-align:center!important;
    padding:1.5rem 2rem 3rem!important;
    color:#fff!important;
    font-size:1rem!important;
    line-height:1.5!important;
    font-weight:500!important;
    pointer-events:none!important
}

/* Notice bar */
.acc-if-notice-bar{
    position:absolute!important;
    bottom:0!important;left:0!important;right:0!important;
    z-index:9002!important;
    background:rgba(0,0,0,.8)!important;
    color:#fff!important;
    font-size:1rem!important;
    padding:.75rem 1.25rem!important;
    text-align:center!important;
    pointer-events:all!important;
    line-height:1.5!important;
    margin:0!important
}
.acc-if-notice-bar a{text-decoration:underline!important;cursor:pointer!important;font-weight:600!important}

/* Thumbnail background */
.acc-if-blocked[data-acc-thumb]{
    background-size:cover!important;
    background-position:center!important
}
