/* ============================================================
   TUKP Cookie-Consent – eigenes DSGVO-Tool (Dark/Gold-Design)
   ============================================================ */
:root{
    --cc-gold:#d4a843; --cc-gold-light:#f0d078;
    --cc-bg:#16161e; --cc-bg-soft:#1f1f2b;
    --cc-text:#e9e4d8; --cc-text-dim:#a9a392;
    --cc-border:rgba(212,168,67,.28);
}

/* Wrapper + Backdrop */
.tukp-cc{ position:fixed; inset:0; z-index:99990; display:none; }
.tukp-cc.is-open{ display:block; }
.tukp-cc-backdrop{
    position:absolute; inset:0; z-index:1; background:rgba(6,6,10,.72);
    backdrop-filter:blur(3px); -webkit-backdrop-filter:blur(3px);
    animation:tukp-cc-fade .35s ease both;
}
body.tukp-cc-lock{ overflow:hidden; }

/* Box */
.tukp-cc-box{
    position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); z-index:2;
    width:min(640px, calc(100vw - 2.4rem));
    max-height:calc(100vh - 4rem); overflow-y:auto;
    background:var(--cc-bg); color:var(--cc-text);
    border:1px solid var(--cc-border); border-radius:16px;
    box-shadow:0 24px 70px rgba(0,0,0,.6);
    padding:1.7rem 1.8rem 1.6rem;
    animation:tukp-cc-rise .45s cubic-bezier(.16,1,.3,1) both;
    font-family:inherit;
}
@keyframes tukp-cc-fade{ from{opacity:0} to{opacity:1} }
@keyframes tukp-cc-rise{ from{opacity:0; transform:translate(-50%,calc(-50% + 24px))} to{opacity:1; transform:translate(-50%,-50%)} }

.tukp-cc-head{ display:flex; align-items:center; gap:.7rem; margin-bottom:.9rem; }
.tukp-cc-icon{ font-size:1.5rem; line-height:1; }
.tukp-cc-box h2{
    margin:0; font-size:1.25rem; color:var(--cc-gold-light);
    font-weight:700; letter-spacing:.2px;
}
.tukp-cc-text{
    margin:0 0 1.2rem; font-size:.92rem; line-height:1.6; color:var(--cc-text-dim);
}
.tukp-cc-text strong{ color:var(--cc-text); }
.tukp-cc-text a{ color:var(--cc-gold); text-decoration:underline; text-underline-offset:2px; }
.tukp-cc-text a:hover{ color:var(--cc-gold-light); }

/* Kategorien */
.tukp-cc-cats{ display:flex; flex-direction:column; gap:.6rem; margin-bottom:1.3rem; }
.tukp-cc-cat{
    display:flex; align-items:center; gap:1rem; justify-content:space-between;
    background:var(--cc-bg-soft); border:1px solid rgba(255,255,255,.05);
    border-radius:11px; padding:.85rem 1rem;
}
.tukp-cc-cat-info strong{ display:block; font-size:.97rem; color:var(--cc-text); margin-bottom:.15rem; }
.tukp-cc-cat-info small{ display:block; font-size:.8rem; line-height:1.5; color:var(--cc-text-dim); }

/* Switch */
.tukp-cc-switch{ position:relative; flex:0 0 auto; width:46px; height:26px; }
.tukp-cc-switch input{ position:absolute; opacity:0; width:100%; height:100%; margin:0; cursor:pointer; }
.tukp-cc-slider{
    position:absolute; inset:0; border-radius:26px; background:#3a3a48;
    transition:background .25s;
}
.tukp-cc-slider::before{
    content:''; position:absolute; left:3px; top:3px; width:20px; height:20px;
    border-radius:50%; background:#fff; transition:transform .25s;
}
.tukp-cc-switch input:checked + .tukp-cc-slider{ background:var(--cc-gold); }
.tukp-cc-switch input:checked + .tukp-cc-slider::before{ transform:translateX(20px); }
.tukp-cc-switch input:focus-visible + .tukp-cc-slider{ box-shadow:0 0 0 3px rgba(212,168,67,.4); }
.tukp-cc-switch.is-locked input:checked + .tukp-cc-slider{ background:var(--cc-gold); opacity:.55; }
.tukp-cc-switch.is-locked input{ cursor:not-allowed; }

/* Buttons – „Nur notwendige" und „Alle akzeptieren" gleichwertig prominent */
.tukp-cc-actions{ display:flex; flex-wrap:wrap; gap:.65rem; }
.tukp-cc-btn{
    flex:1 1 auto; min-width:140px; padding:.8rem 1.1rem;
    border-radius:10px; font-family:inherit; font-size:.93rem; font-weight:600;
    cursor:pointer; transition:all .2s; border:1px solid transparent; line-height:1.2;
}
.tukp-cc-btn--accept{
    background:var(--cc-gold); color:#1a1207; border-color:var(--cc-gold);
    order:3;
}
.tukp-cc-btn--accept:hover{ background:var(--cc-gold-light); border-color:var(--cc-gold-light); }
.tukp-cc-btn--reject{
    background:var(--cc-gold); color:#1a1207; border-color:var(--cc-gold);
    order:1;
}
.tukp-cc-btn--reject:hover{ background:var(--cc-gold-light); border-color:var(--cc-gold-light); }
.tukp-cc-btn--save{
    background:var(--cc-bg-soft); color:var(--cc-text-dim); border-color:rgba(255,255,255,.12);
    order:2; flex:0 1 auto;
}
.tukp-cc-btn--save:hover{ color:var(--cc-text); border-color:rgba(255,255,255,.25); }

/* Floating-Toggle (Widerruf jederzeit) */
.tukp-cc-toggle{
    position:fixed; left:1rem; bottom:1rem; z-index:99980;
    width:46px; height:46px; border-radius:50%;
    background:var(--cc-bg); color:var(--cc-gold);
    border:1px solid var(--cc-border); box-shadow:0 6px 20px rgba(0,0,0,.4);
    font-size:1.35rem; line-height:1; cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    transition:transform .2s, box-shadow .2s, opacity .2s;
}
.tukp-cc-toggle:hover{ transform:translateY(-2px); box-shadow:0 10px 26px rgba(0,0,0,.5); }
.tukp-cc.is-open ~ .tukp-cc-toggle{ opacity:0; pointer-events:none; }

/* reCAPTCHA-Platzhalter im Formular */
.tukp-cc-rc-block{
    background:var(--cc-bg-soft); border:1px dashed var(--cc-border);
    border-radius:12px; padding:1.2rem 1.3rem; margin:1rem 0; text-align:center;
}
.tukp-cc-rc-block p{ margin:0 0 1rem; font-size:.9rem; line-height:1.6; color:var(--cc-text-dim); }
.tukp-cc-rc-block strong{ color:var(--cc-text); }
.tukp-cc-rc-block .tukp-cc-btn{ flex:0 0 auto; min-width:0; display:inline-block; }

/* Mobil */
@media(max-width:560px){
    .tukp-cc-box{ left:0; right:0; bottom:0; transform:none; width:100%;
        border-radius:16px 16px 0 0; max-height:90vh; padding:1.4rem 1.2rem 1.3rem; }
    @keyframes tukp-cc-rise{ from{opacity:0; transform:translateY(30px)} to{opacity:1; transform:translateY(0)} }
    .tukp-cc-btn{ flex:1 1 100%; }
}
