/* ONLINEFABRIK Consent – Banner. Farben, Schrift, Radius und Ebene kommen als --ofc-* Variablen aus den Site-Einstellungen. */
.ofc{
  --ofc-bg:#FAFAF8;--ofc-text:#181B1A;--ofc-muted:#4F5558;--ofc-btn:#181B1A;--ofc-btn-text:#fff;
  --ofc-accent:#E2622B;--ofc-line:#E0DDD4;--ofc-frame:#181B1A;--ofc-frame-w:2px;--ofc-focus:#2F5D62;--ofc-radius:24px;--ofc-font:inherit;--ofc-z:9000;
  position:fixed;inset:auto 0 0 0;z-index:var(--ofc-z);pointer-events:none;
  font-family:var(--ofc-font);font-size:16px;line-height:1.5;color:var(--ofc-text);-webkit-text-size-adjust:100%;
}
.ofc *,.ofc *::before,.ofc *::after{box-sizing:border-box}
.ofc [hidden]{display:none!important}
.ofc-sr{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}

/* Banner: kein Overlay, die Seite bleibt les- und bedienbar (Impressum/Datenschutz nie verdeckt) */
.ofc-dialog{
  pointer-events:auto;display:flex;flex-direction:column;width:min(520px,calc(100vw - 24px));max-height:min(600px,calc(100dvh - 32px));overflow:hidden;
  margin:0 auto 20px 20px;padding:16px 20px 12px;background:var(--ofc-bg);color:var(--ofc-text);
  border:var(--ofc-frame-w) solid var(--ofc-frame);border-radius:var(--ofc-radius);box-shadow:0 0 0 6px rgba(255,255,255,.55),0 22px 60px rgba(24,27,26,.34);
  animation:ofc-in .28s ease-out both;
}
.ofc[data-position=bottom-center] .ofc-dialog{margin:0 auto 20px;width:min(1080px,calc(100vw - 32px))}
.ofc[data-position=bottom-right] .ofc-dialog{margin:0 20px 20px auto}
.ofc .ofc-dialog:focus,.ofc .ofc-dialog:focus-visible{outline:0}
@keyframes ofc-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

.ofc-head{display:flex;align-items:center;gap:12px;margin:0 0 8px}
.ofc-logo{display:block;max-height:34px;max-width:120px;width:auto;height:auto;flex:none}
.ofc-title{margin:0;font-size:1.125rem;line-height:1.25;font-weight:700;letter-spacing:-.01em}
.ofc-view{display:flex;flex-direction:column;min-height:0;flex:1 1 auto}
.ofc-body{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;padding-right:4px;font-size:.9rem;line-height:1.45}
.ofc-body p{margin:0 0 7px}
.ofc-small{font-size:.875rem;line-height:1.5;color:var(--ofc-muted)}

/* Gleichwertige Auswahl: „Alle akzeptieren“ und „Alle ablehnen“ sind in Größe, Farbe, Kontrast und Schrift identisch */
.ofc-actions{display:flex;gap:10px;margin:12px 0 8px;flex:none}
.ofc-actions--3{flex-wrap:wrap}
.ofc-btn{
  flex:1 1 0;min-width:0;min-height:48px;padding:12px 18px;border-radius:999px;border:2px solid var(--ofc-btn);
  background:var(--ofc-btn);color:var(--ofc-btn-text);font:600 .95rem/1.2 var(--ofc-font);text-align:center;cursor:pointer;
  transition:opacity .15s,box-shadow .15s;-webkit-tap-highlight-color:transparent;
}
.ofc-actions--3 .ofc-btn{flex:1 1 30%}
.ofc-btn:hover{opacity:.88}
.ofc-btn--ghost{background:transparent;color:var(--ofc-text);border-color:var(--ofc-line);width:100%}
.ofc-btn--ghost:hover{opacity:1;border-color:var(--ofc-text)}
.ofc-more{margin:0 0 6px;flex:none}
.ofc a,.ofc button{touch-action:manipulation}
.ofc :focus-visible{outline:3px solid var(--ofc-focus);outline-offset:3px}
.ofc-links{display:flex;flex-wrap:wrap;gap:2px 18px;margin:2px 0 0;font-size:.875rem;flex:none}
.ofc-links a{color:var(--ofc-text);text-decoration:underline;text-underline-offset:3px;padding:6px 0}
.ofc-links a:hover{text-decoration-thickness:2px}

/* Aufklappbare Bereiche: Pflichtangaben bleiben sichtbar, Details sind einen Klick entfernt */
.ofc-details{margin:2px 0 4px}
.ofc-details>summary{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:4px 2px;cursor:pointer;font-weight:600;font-size:.875rem;color:var(--ofc-text);list-style:none;
  text-decoration:underline;text-underline-offset:3px}
.ofc-details>summary::-webkit-details-marker{display:none}
.ofc-details>summary::before{content:"";width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);transition:transform .15s}
.ofc-details[open]>summary::before{transform:rotate(45deg)}
.ofc-details-body{padding:4px 0 2px 16px;border-left:2px solid var(--ofc-line);margin:2px 0 6px 3px}
.ofc-details-body p{margin:0 0 7px;font-size:.875rem}

/* Zweite Ebene */
.ofc-lead{margin:0 0 10px!important;font-size:.95rem}
.ofc-cats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 10px}
.ofc-cat{padding:10px 14px;border:1px solid var(--ofc-line);border-radius:calc(var(--ofc-radius) * .6);background:rgba(24,27,26,.02)}
.ofc-cat-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 2px}
.ofc-cat-title{font-weight:700;font-size:1.125rem;letter-spacing:-.01em}
.ofc-cat .ofc-cat-text{margin:0;font-size:.8125rem;color:var(--ofc-muted)}
.ofc-fine{margin:0 0 6px!important;font-size:.8125rem;line-height:1.45;color:var(--ofc-muted)}
.ofc-fine strong{color:var(--ofc-text)}
.ofc-badge{font-size:.8rem;font-weight:600;padding:3px 10px;border-radius:999px;border:1px solid var(--ofc-line);color:var(--ofc-muted);white-space:nowrap}
.ofc-dl{margin:8px 0;font-size:.875rem}
.ofc-dl dt{font-weight:700;margin-top:8px}
.ofc-dl dd{margin:2px 0 0;color:var(--ofc-muted)}
.ofc-table-wrap{overflow-x:auto;margin-top:8px}
.ofc-table{width:100%;border-collapse:collapse;font-size:.8125rem}
.ofc-table th,.ofc-table td{overflow-wrap:anywhere;padding:6px 8px;border-top:1px solid var(--ofc-line);text-align:left;vertical-align:top}
.ofc-table th{font-weight:700;color:var(--ofc-text);border-top:0;padding-top:0}
.ofc-table td{color:var(--ofc-muted)}
.ofc-table code{font:600 .8125rem/1.3 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--ofc-text)}

/* Schalter mit Text „An/Aus“, damit der Zustand nicht nur über die Farbe erkennbar ist */
.ofc-switch-wrap{display:flex;align-items:center;gap:10px}
.ofc-switch-state{font-size:.875rem;font-weight:600;min-width:2.2em;text-align:right}
.ofc-switch{appearance:none;-webkit-appearance:none;position:relative;flex:none;width:54px;height:32px;margin:0;border-radius:999px;
  background:#6B7072;border:2px solid #6B7072;cursor:pointer;transition:background .15s,border-color .15s}
.ofc-switch::after{content:"";position:absolute;top:2px;left:2px;width:24px;height:24px;border-radius:50%;background:#fff;transition:transform .15s}
.ofc-switch:checked{background:var(--ofc-accent);border-color:var(--ofc-accent)}
.ofc-switch:checked::after{transform:translateX(22px)}

/* Schwebende Schaltfläche für Änderung und Widerruf */
.ofc-fab{
  position:fixed;bottom:16px;left:16px;pointer-events:auto;display:grid;place-items:center;width:48px;height:48px;padding:0;
  border-radius:50%;border:2px solid var(--ofc-btn);background:var(--ofc-btn);color:var(--ofc-btn-text);cursor:pointer;
  box-shadow:0 8px 24px rgba(24,27,26,.25);transition:transform .15s;
}
.ofc[data-fab-side=right] .ofc-fab{left:auto;right:16px}
.ofc-fab:hover{transform:scale(1.06)}

@media (min-width:860px){
  .ofc[data-position=bottom-center] [data-ofc-view=main]{display:grid;grid-template-columns:minmax(0,1fr) 250px;grid-template-rows:auto auto auto auto minmax(0,1fr);
    grid-template-areas:"head head" "body actions" "body more" "body links" "body .";column-gap:32px}
  .ofc[data-position=bottom-center] [data-ofc-view=main] .ofc-head{grid-area:head}
  .ofc[data-position=bottom-center] [data-ofc-view=main] .ofc-body{grid-area:body}
  .ofc[data-position=bottom-center] [data-ofc-view=main] .ofc-actions{grid-area:actions;flex-direction:column;align-self:start;margin-top:0}
  .ofc[data-position=bottom-center] [data-ofc-view=main] .ofc-more{grid-area:more;align-self:start}
  .ofc[data-position=bottom-center] [data-ofc-view=main] .ofc-links{grid-area:links;align-self:start;margin-top:4px}
}
@media (max-width:560px){
  .ofc{font-size:15px}
  .ofc-dialog,.ofc[data-position] .ofc-dialog{width:calc(100vw - 16px);max-height:min(450px,64dvh);margin:0 8px 8px;padding:12px 14px 8px}
  .ofc-body{font-size:.875rem}
  .ofc-btn{min-height:46px;padding:10px 12px;font-size:.9rem}
  .ofc-actions{margin:10px 0 6px}
  .ofc-title{font-size:1.1rem}
  .ofc-cats{grid-template-columns:1fr}
  .ofc-cat{padding:8px 12px}
  .ofc-fab{bottom:12px;left:12px;width:44px;height:44px}
  .ofc[data-fab-side=right] .ofc-fab{left:auto;right:12px}
}
@media (prefers-reduced-motion:reduce){.ofc-dialog{animation:none}.ofc-btn,.ofc-switch,.ofc-switch::after,.ofc-fab{transition:none}}
@media (forced-colors:active){.ofc-btn,.ofc-fab{border:2px solid ButtonText}.ofc-switch:checked{background:Highlight}}
@media print{.ofc{display:none}}
