/* ============================================================================
   Cookie-Consent (WS8) — Banner (kompakt, mittig unten) + Detail-Modal.
   Markup: functions/consent.php. Alles unter #inst-consent gescoped, damit
   Astra/Elementor nicht reinregieren. Flach: keine Gradients/Glow/Pill.
   Marke: Navy #1e456c · Navy-tief #14233f · Cyan #36afd8 · Linie #e6ebf1.
   ========================================================================== */
#inst-consent{
  --navy:#1e456c; --navy-deep:#14233f; --cyan:#36afd8; --ink:#1d2b3a;
  --muted:#56657a; --line:#e6ebf1; --band:#f5f8fb;
  font-family:"Source Sans 3",-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
}
#inst-consent *{box-sizing:border-box;}
#inst-consent [hidden]{display:none !important;}

/* buttons */
#inst-consent .ick-btn{font-family:inherit; font-weight:700; font-size:14px; border-radius:8px;
  padding:10px 16px; cursor:pointer; border:1.5px solid transparent; white-space:nowrap; line-height:1;
  transition:background .15s, border-color .15s, color .15s;}
#inst-consent .ick-accept{background:var(--navy); color:#fff; border-color:var(--navy);}
#inst-consent .ick-accept:hover{background:var(--navy-deep); border-color:var(--navy-deep);}
#inst-consent .ick-nec{background:#fff; color:var(--navy); border-color:var(--line);}
#inst-consent .ick-nec:hover{border-color:var(--navy); background:var(--band);}
#inst-consent .ick-set{background:none; border:none; color:var(--muted); font-family:inherit;
  font-weight:600; font-size:13px; text-decoration:underline; cursor:pointer; padding:10px 4px;}
#inst-consent .ick-fine{font-size:12.5px;}
#inst-consent .ick-fine a{color:var(--muted); text-decoration:underline;}
#inst-consent .ick-ico{color:var(--navy); background:var(--band); border-radius:9px;
  display:flex; align-items:center; justify-content:center; flex:none;}

/* banner (kompakt, mittig unten, blockiert NICHT) */
#inst-consent .ick-banner{position:fixed; left:50%; bottom:22px; transform:translateX(-50%);
  z-index:2147483000; display:flex; align-items:center; gap:16px; background:#fff;
  border:1px solid var(--line); border-radius:14px; box-shadow:0 16px 44px rgba(16,40,70,.18);
  padding:14px 18px; max-width:calc(100% - 32px);}
#inst-consent .ick-banner .ick-ico{width:34px; height:34px;}
#inst-consent .ick-banner .ick-txt{font-size:13.5px; color:var(--muted); line-height:1.4; max-width:430px;}
#inst-consent .ick-banner .ick-txt b{color:var(--ink);}
#inst-consent .ick-banner .ick-act{display:flex; align-items:center; gap:8px; flex:none;}
@media(max-width:760px){
  #inst-consent .ick-banner{flex-direction:column; align-items:stretch; text-align:center;}
  #inst-consent .ick-banner .ick-act{justify-content:center; flex-wrap:wrap;}
}

/* detail modal (blockiert, abgedunkelter Hintergrund) */
#inst-consent .ick-overlay{position:fixed; inset:0; z-index:2147483001; background:rgba(12,26,48,.55);
  display:flex; align-items:center; justify-content:center; padding:20px;}
#inst-consent .ick-modal{background:#fff; border-radius:18px; max-width:470px; width:100%; padding:28px;
  box-shadow:0 30px 70px rgba(8,20,40,.45); max-height:calc(100vh - 40px); overflow:auto;}
#inst-consent .ick-modal .ick-ico{width:48px; height:48px; margin-bottom:14px;}
#inst-consent .ick-h{font-size:21px; font-weight:800; color:var(--navy); margin:0 0 8px;}
#inst-consent .ick-mtxt{font-size:14px; color:var(--muted); line-height:1.55; margin:0 0 12px;}
#inst-consent .ick-row{display:flex; align-items:center; gap:14px; padding:14px 0; border-top:1px solid var(--line);}
#inst-consent .ick-rtxt{flex:1;}
#inst-consent .ick-rtxt b{display:block; color:var(--ink); font-size:15px;}
#inst-consent .ick-rtxt span{font-size:12.5px; color:var(--muted);}
#inst-consent .ick-mact{display:flex; flex-direction:column; gap:10px; margin-top:20px;}
#inst-consent .ick-mrow{display:flex; gap:10px;}
#inst-consent .ick-mrow .ick-btn{flex:1; text-align:center;}
#inst-consent .ick-modal .ick-fine{margin-top:12px; text-align:center;}

/* toggle switch */
#inst-consent .ick-sw{position:relative; width:44px; height:25px; background:#cbd5e1; border:none;
  border-radius:13px; flex:none; cursor:pointer; padding:0; transition:background .15s;}
#inst-consent .ick-sw::after{content:""; position:absolute; top:3px; left:3px; width:19px; height:19px;
  background:#fff; border-radius:50%; transition:left .15s; box-shadow:0 1px 3px rgba(0,0,0,.2);}
#inst-consent .ick-sw.on{background:var(--cyan);}
#inst-consent .ick-sw.on::after{left:22px;}
#inst-consent .ick-sw.lock{background:var(--navy); opacity:.45; cursor:not-allowed;}
