/* SG4 Consent – Farben/Fonts/Radien kommen als CSS-Variablen aus den Einstellungen */
.sg4c-root{--sg4c-primary:#D74840;--sg4c-btn:#bd3f38;--sg4c-btn-text:#fff;--sg4c-strong:#bd3f38;--sg4c-radius:16px;--sg4c-btn-radius:12px;--sg4c-title-size:1.7em;--sg4c-font:system-ui,sans-serif;--sg4c-font-accent:inherit;--sg4c-bg:#fff;--sg4c-soft:#f5f5f4;--sg4c-text:#26282b;--sg4c-muted:#5d6166;--sg4c-line:rgba(0,0,0,.1);--sg4c-shadow:0 1px 2px rgba(0,0,0,.06),0 18px 48px -12px rgba(0,0,0,.28)}
.sg4c-scheme-dark{--sg4c-bg:#17171a;--sg4c-soft:#202024;--sg4c-text:#f5f5f7;--sg4c-muted:#b4b4ba;--sg4c-line:rgba(255,255,255,.14);--sg4c-shadow:0 18px 48px -12px rgba(0,0,0,.7)}
@media (prefers-color-scheme:dark){.sg4c-scheme-auto{--sg4c-bg:#17171a;--sg4c-soft:#202024;--sg4c-text:#f5f5f7;--sg4c-muted:#b4b4ba;--sg4c-line:rgba(255,255,255,.14);--sg4c-shadow:0 18px 48px -12px rgba(0,0,0,.7)}}

.sg4c-root,.sg4c-root *{box-sizing:border-box}
.sg4c-root [hidden]{display:none!important}
.sg4c-banner,.sg4c-modal,.sg4c-map-box{font-family:var(--sg4c-font);font-size:15px;line-height:1.55;color:var(--sg4c-text);background:var(--sg4c-bg);text-align:left;letter-spacing:normal}
.sg4c-root p{margin:0 0 .75em}
.sg4c-root a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.sg4c-root a:hover{color:var(--sg4c-strong)}

/* Kopfzeile mit optionalem Logo */
.sg4c-head{display:flex;align-items:center;gap:12px;margin:0 0 10px}
.sg4c-logo{flex:none;width:40px;height:40px;object-fit:contain}
.sg4c-root .sg4c-title{margin:0;font-family:var(--sg4c-font-accent);font-weight:700;font-size:var(--sg4c-title-size);line-height:1.15;color:var(--sg4c-title-color,var(--sg4c-text))}
.sg4c-text{color:var(--sg4c-muted)}
.sg4c-links{font-size:.88em;color:var(--sg4c-muted)}

/* Banner (blockiert die Seite nicht) */
.sg4c-banner{position:fixed;z-index:2147483000;bottom:20px;left:20px;width:min(460px,calc(100vw - 40px));max-height:calc(100vh - 40px);overflow:auto;padding:22px 22px 20px;border-radius:var(--sg4c-radius);box-shadow:var(--sg4c-shadow);border:1px solid var(--sg4c-line);border-top:4px solid var(--sg4c-primary);outline:none;animation:sg4c-in .35s cubic-bezier(.2,.8,.2,1)}
.sg4c-pos-center .sg4c-banner{left:50%;transform:translateX(-50%);width:min(760px,calc(100vw - 40px));animation-name:sg4c-in-c}
/* Banner bekommt beim Anzeigen per Script den Fokus (Screenreader) – als Container ohne Rahmen; Buttons/Links behalten ihren Fokus-Rahmen */
.sg4c-banner:focus,.sg4c-banner:focus-visible{outline:none}
/* Nur Bewegung, keine Deckkraft: bleibt lesbar, falls ein Browser Animationen anhält */
@keyframes sg4c-in{from{transform:translateY(16px)}}
@keyframes sg4c-in-c{from{transform:translate(-50%,16px)}}

/* Buttons: Akzeptieren und Ablehnen absichtlich identisch */
.sg4c-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.sg4c-btn{flex:1 1 0;min-width:130px;min-height:46px;margin:0;padding:11px 16px;font:600 15px/1.2 var(--sg4c-font);border-radius:var(--sg4c-btn-radius);border:2px solid var(--sg4c-btn);cursor:pointer;transition:background .15s,border-color .15s,transform .15s,box-shadow .15s;text-transform:none;letter-spacing:normal;text-decoration:none}
.sg4c-btn-main{background:var(--sg4c-btn);color:var(--sg4c-btn-text)}
.sg4c-btn-main:hover{transform:translateY(-1px);box-shadow:0 6px 16px -6px var(--sg4c-btn)}
.sg4c-btn-alt{flex-basis:100%;background:transparent;color:var(--sg4c-text);border-color:var(--sg4c-line)}
.sg4c-btn-alt:hover{border-color:var(--sg4c-strong);color:var(--sg4c-strong)}
.sg4c-btn:focus-visible,.sg4c-close:focus-visible,.sg4c-switch:focus-visible,.sg4c-fab:focus-visible,.sg4c-root a:focus-visible{outline:3px solid var(--sg4c-strong);outline-offset:2px}

/* Dialog */
.sg4c-overlay{position:fixed;inset:0;z-index:2147483001;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(15,15,18,.45);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.sg4c-modal{position:relative;width:min(580px,100%);max-height:calc(100vh - 32px);overflow:auto;padding:26px;border-radius:var(--sg4c-radius);border-top:4px solid var(--sg4c-primary);box-shadow:var(--sg4c-shadow);outline:none;animation:sg4c-in .3s cubic-bezier(.2,.8,.2,1)}
.sg4c-modal .sg4c-head{padding-right:40px}
.sg4c-close{position:absolute;top:12px;right:12px;width:40px;height:40px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--sg4c-text);font-size:26px;line-height:1;cursor:pointer}
.sg4c-close:hover{background:var(--sg4c-soft)}
.sg4c-cats{list-style:none;margin:6px 0 14px;padding:0;display:grid;gap:8px}
.sg4c-cat{margin:0;padding:14px 16px;border-radius:calc(var(--sg4c-radius) * .75);background:var(--sg4c-soft);border:1px solid var(--sg4c-line)}
.sg4c-cat-head{display:flex;align-items:center;gap:10px;cursor:pointer;font-weight:600}
.sg4c-cat-name{flex:1}
.sg4c-always{font-size:.82em;font-weight:500;color:var(--sg4c-muted)}
.sg4c-root .sg4c-cat-desc{margin:6px 0 0;font-size:.9em;color:var(--sg4c-muted)}

/* Schalter */
.sg4c-switch{-webkit-appearance:none;appearance:none;flex:none;position:relative;width:46px;height:26px;margin:0;border-radius:99px;background:#8a8d91;cursor:pointer;transition:background .15s}
.sg4c-switch::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .15s}
.sg4c-switch:checked{background:var(--sg4c-strong)}
.sg4c-switch:checked::after{transform:translateX(20px)}
.sg4c-switch:disabled{opacity:.55;cursor:not-allowed}

/* Floating-Button */
.sg4c-fab{position:fixed;z-index:2147482999;left:16px;bottom:16px;width:44px;height:44px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--sg4c-line);background:var(--sg4c-bg);color:var(--sg4c-strong);box-shadow:0 4px 14px rgba(0,0,0,.18);cursor:pointer;transition:transform .15s}
.sg4c-fab:hover{transform:scale(1.06);color:#fff;background:var(--sg4c-strong)}

/* Platzhalter für externe Inhalte */
.sg4c-map{position:relative;display:flex;align-items:center;justify-content:center;width:100%;padding:20px;background:#e9e7e3 center/cover no-repeat;border-radius:var(--sg4c-radius);overflow:hidden}
.sg4c-map-box{max-width:440px;padding:20px 22px;border-radius:var(--sg4c-radius);border-top:4px solid var(--sg4c-primary);box-shadow:var(--sg4c-shadow);text-align:center}
.sg4c-map-box .sg4c-btn{flex:none;width:100%}
.sg4c-root .sg4c-map-links{margin:10px 0 0;font-size:.88em}

html.sg4c-lock{overflow:hidden}

@media (max-width:600px){
	.sg4c-banner,.sg4c-pos-center .sg4c-banner{left:0;right:0;bottom:0;transform:none;width:100%;max-height:85vh;border-radius:var(--sg4c-radius) var(--sg4c-radius) 0 0;padding:18px 16px calc(18px + env(safe-area-inset-bottom));animation-name:sg4c-in}
	.sg4c-btn{flex-basis:100%}
	.sg4c-modal{padding:22px 16px}
}
@media (prefers-reduced-motion:reduce){.sg4c-root *,.sg4c-root{animation:none!important;transition:none!important}}
@media print{.sg4c-banner,.sg4c-overlay,.sg4c-fab{display:none!important}}
