/*! Digify Consent 1.2.2 */
.dc[hidden], .dc [hidden], .dc-tab[hidden] { display: none !important; }

.dc, .dc-tab, .dc-embed, .dc-embed-overlay {
	font-family: var(--dc-font, inherit);
	-webkit-font-smoothing: antialiased;
	box-sizing: border-box;
}
.dc *, .dc *::before, .dc *::after, .dc-embed *, .dc-embed-overlay * { box-sizing: border-box; }

/* ---------- Positionen ---------- */
.dc { position: fixed; z-index: 2147483000; color: var(--dc-text, #1c1c1c); font-size: 14px; line-height: 1.5; }
.dc--card-right { right: 24px; bottom: 24px; width: min(520px, calc(100vw - 32px)); }
.dc--card-left { left: 24px; bottom: 24px; width: min(520px, calc(100vw - 32px)); }
.dc--bottom { left: 16px; right: 16px; bottom: 16px; max-width: 980px; margin: 0 auto; }
.dc--center { inset: 0; display: flex; align-items: center; justify-content: center; padding: 16px; background: rgba(15, 18, 24, 0.5); }
.dc--center .dc-box { max-width: 560px; }

.dc-box:focus { outline: none; }
.dc-box {
	width: 100%;
	max-height: calc(100vh - 48px);
	display: flex;
	flex-direction: column;
	background: var(--dc-bg, #fff);
	border-radius: var(--dc-radius, 12px);
	box-shadow: 0 12px 48px rgba(15, 18, 24, 0.22), 0 2px 6px rgba(15, 18, 24, 0.08);
	padding: 18px 20px 14px;
	animation: dc-in 0.28s cubic-bezier(0.22, 1, 0.36, 1) both;
}
@keyframes dc-in { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

/* ---------- Kopf ---------- */
.dc-head { position: relative; display: flex; justify-content: center; align-items: center; min-height: 28px; margin-bottom: 12px; }
.dc-title { margin: 0; padding: 0 36px; font-size: 16px; font-weight: 600; line-height: 1.3; text-align: center; color: var(--dc-text, #1c1c1c); }
.dc-close {
	position: absolute; right: -6px; top: 50%; transform: translateY(-50%);
	width: 32px; height: 32px; margin: 0; padding: 0; border: 0; border-radius: 50%;
	background: transparent; color: var(--dc-text, #1c1c1c); cursor: pointer;
	display: inline-flex; align-items: center; justify-content: center; box-shadow: none;
}
.dc-close:hover { background: var(--dc-soft, #f2f3f5); }

/* ---------- Inhalt ---------- */
.dc-body { overflow-y: auto; overscroll-behavior: contain; margin: 0 -4px; padding: 0 4px; }
.dc-text { margin: 0 0 12px; font-size: 13.5px; line-height: 1.55; }

.dc-cats { display: grid; gap: 6px; margin: 0 0 10px; }
.dc-cat { background: var(--dc-soft, #f2f3f5); border-radius: calc(var(--dc-radius, 12px) * 0.5); }
.dc-cat-head { display: flex; align-items: center; gap: 10px; padding: 4px 6px 4px 4px; min-height: 44px; }
.dc-cat-toggle {
	flex: 1; margin: 0; padding: 8px; border: 0; background: transparent; cursor: pointer; text-align: left;
	font: inherit; font-size: 14.5px; font-weight: 500; color: var(--dc-text, #1c1c1c); box-shadow: none; text-transform: none; letter-spacing: normal;
}
.dc-always { font-size: 13px; font-weight: 500; color: var(--dc-primary, #0a4c8b); white-space: nowrap; }
.dc-chev {
	width: 30px; height: 30px; margin: 0; padding: 0; border: 0; background: transparent; cursor: pointer;
	color: var(--dc-text, #1c1c1c); display: inline-flex; align-items: center; justify-content: center; box-shadow: none;
	transition: transform 0.2s ease;
}
.dc-cat.is-open .dc-chev { transform: rotate(180deg); }
.dc-cat-body { padding: 0 12px 12px; font-size: 13px; }
.dc-cat-desc { margin: 0 0 8px; }

.dc-svc { background: var(--dc-bg, #fff); border-radius: calc(var(--dc-radius, 12px) * 0.4); padding: 10px 12px; margin-top: 6px; }
.dc-svc p { margin: 0; }
.dc-svc-name { font-weight: 600; font-size: 13.5px; }
.dc-svc-meta { font-size: 12px; opacity: 0.8; margin-top: 2px !important; }
.dc-svc-meta a { color: inherit; text-decoration: underline; }
.dc-svc-purpose { margin-top: 4px !important; font-size: 12.5px; }
.dc-cookies { list-style: none; margin: 6px 0 0; padding: 0; display: grid; gap: 3px; font-size: 12px; }
.dc-cookies code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11.5px; background: var(--dc-soft, #f2f3f5); padding: 1px 5px; border-radius: 4px; }
.dc-cookies span { opacity: 0.8; }

/* Schalter */
.dc-switch { position: relative; display: inline-flex; align-items: center; margin: 0; cursor: pointer; }
.dc-switch input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; margin: 0; cursor: pointer; z-index: 1; }
.dc-slider { position: relative; width: 38px; height: 22px; border-radius: 11px; background: rgba(0, 0, 0, 0.28); transition: background-color 0.15s ease; }
.dc-slider::after { content: ""; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: #fff; transition: transform 0.15s ease; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); }
.dc-switch input:checked + .dc-slider { background: var(--dc-primary, #0a4c8b); }
.dc-switch input:checked + .dc-slider::after { transform: translateX(16px); }
/* Kategorie teilweise erlaubt (einzelne Dienste an) */
.dc-switch input:indeterminate + .dc-slider { background: var(--dc-primary, #0a4c8b); opacity: 0.55; }
.dc-switch input:indeterminate + .dc-slider::after { transform: translateX(8px); }
.dc-switch--sm .dc-slider { width: 32px; height: 18px; border-radius: 9px; }
.dc-switch--sm .dc-slider::after { top: 3px; left: 3px; width: 12px; height: 12px; }
.dc-switch--sm input:checked + .dc-slider::after { transform: translateX(14px); }

.dc-svc-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.dc-svc-note { margin-top: 3px !important; font-size: 11.5px; font-weight: 600; opacity: 0.75; }

.dc-link {
	display: inline-block; margin: 2px 0 12px 8px; padding: 0; border: 0; background: none; cursor: pointer;
	font: inherit; font-size: 12.5px; color: var(--dc-text, #1c1c1c); text-decoration: underline; text-underline-offset: 2px; box-shadow: none;
}

/* ---------- Buttons ---------- */
.dc-actions { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) max-content; gap: 10px; margin-top: 2px; }
.dc-btn {
	min-height: 46px; margin: 0; padding: 10px 16px;
	font: inherit; font-size: 14px; font-weight: 500; line-height: 1.2; text-align: center; white-space: nowrap;
	border: 1px solid transparent; border-radius: calc(var(--dc-radius, 12px) * 0.5); cursor: pointer;
	background: var(--dc-primary, #0a4c8b); color: var(--dc-primary-text, #fff);
	transition: filter 0.15s ease, background-color 0.15s ease; text-transform: none; letter-spacing: normal; box-shadow: none;
}
.dc-btn:hover { filter: brightness(1.08); }
.dc-btn--reject { background: var(--dc-reject, var(--dc-primary)); color: var(--dc-reject-text, #fff); }
.dc-btn--ghost { background: var(--dc-soft, #f2f3f5); color: var(--dc-text, #1c1c1c); border-color: rgba(0, 0, 0, 0.06); }
.dc-btn--ghost:hover { filter: brightness(0.97); }
.dc-btn:focus-visible, .dc-close:focus-visible, .dc-cat-toggle:focus-visible, .dc-link:focus-visible, .dc a:focus-visible,
.dc-switch input:focus-visible + .dc-slider, .dc-tab:focus-visible, .dc-embed button:focus-visible, .dc-embed-overlay button:focus-visible {
	outline: 3px solid var(--dc-primary, #0a4c8b); outline-offset: 2px;
}

.dc-links { margin: 12px 0 0; display: flex; justify-content: center; gap: 14px; font-size: 12.5px; }
.dc-links a { color: var(--dc-text, #1c1c1c); text-decoration: underline; text-underline-offset: 2px; }

/* ---------- Reiter "Einwilligung verwalten" ---------- */
.dc-tab {
	position: fixed; bottom: 0; z-index: 2147482999;
	margin: 0; padding: 12px 18px 16px; border: 0;
	background: var(--dc-bg, #fff); color: var(--dc-text, #1c1c1c);
	font-size: 15px; font-weight: 500; line-height: 1.2; cursor: pointer;
	border-radius: calc(var(--dc-radius, 12px) * 0.7) calc(var(--dc-radius, 12px) * 0.7) 0 0;
	box-shadow: 0 -2px 18px rgba(15, 18, 24, 0.16);
	transform: translateY(calc(100% - 14px));
	transition: transform 0.25s cubic-bezier(0.22, 1, 0.36, 1);
	text-transform: none; letter-spacing: normal;
}
.dc-tab--right { right: 40px; }
.dc-tab--left { left: 40px; }
.dc-tab:hover, .dc-tab:focus-visible { transform: translateY(0); }
@media (hover: none) {
	.dc-tab { transform: translateY(0); font-size: 13px; padding: 8px 12px 10px; }
	.dc-tab--right { right: 12px; }
	.dc-tab--left { left: 12px; }
}

/* ---------- Platzhalter für Videos, Karten … ---------- */
.dc-embed {
	position: relative; width: 100%; display: flex; align-items: center; justify-content: center;
	background: var(--dc-soft, #f2f3f5) repeating-linear-gradient(135deg, transparent 0 14px, rgba(0, 0, 0, 0.025) 14px 28px);
	border-radius: calc(var(--dc-radius, 12px) * 0.5); color: var(--dc-text, #1c1c1c); overflow: hidden; margin: 0 0 1em;
}
.dc-embed-overlay {
	position: absolute; inset: 0; z-index: 5; display: flex; flex-direction: column; align-items: center; justify-content: center;
	background: var(--dc-soft, #f2f3f5); color: var(--dc-text, #1c1c1c); text-align: center; padding: 20px;
}
.dc-embed-msg { max-width: 440px; padding: 20px; text-align: center; font-size: 14px; line-height: 1.5; }
.dc-embed-msg p, .dc-embed-overlay p { margin: 0 0 10px; }
.dc-embed-title { font-weight: 700; font-size: 16px; }
.dc-embed-load, .dc-embed-overlay .dc-embed-always {
	margin: 4px 4px 0; padding: 10px 18px; border: 0; border-radius: calc(var(--dc-radius, 12px) * 0.5);
	background: var(--dc-primary, #0a4c8b); color: var(--dc-primary-text, #fff); font: inherit; font-weight: 600; cursor: pointer;
}
.dc-embed-msg .dc-embed-always {
	display: block; margin: 10px auto 0; padding: 0; border: 0; background: none; color: inherit;
	font: inherit; font-size: 13px; text-decoration: underline; cursor: pointer;
}

/* ---------- Cookie-Liste [digify_cookie_liste] für die Datenschutzerklärung ---------- */
.dc-list { margin: 0 0 1.5em; container-type: inline-size; }
/* Überschriften der Liste: eigene, zurückhaltende Größe, damit Theme-Stile für h3/h4 (oft sehr groß) nicht durchschlagen. */
.dc-list .dc-list-title { font-size: 1.05em; line-height: 1.35; font-weight: 600; margin: 1.5em 0 0.35em; padding: 0; text-transform: none; letter-spacing: normal; }
.dc-list .dc-list-title:first-child { margin-top: 0.75em; }
.dc-list-desc { margin: 0 0 0.75em; }
.dc-list-table { width: 100%; border-collapse: collapse; margin: 0 0 1.75em; font-size: 0.9em; line-height: 1.45; }
.dc-list-table th, .dc-list-table td { padding: 0.6em 0.75em; border: 1px solid rgba(0, 0, 0, 0.12); text-align: left; vertical-align: top; }
.dc-list-table th { font-weight: 600; background: rgba(0, 0, 0, 0.035); }
.dc-list-table td:first-child { width: 22%; }
.dc-list-table .dc-cookies { margin: 0; }
.dc-list-table .dc-cookies code { background: rgba(0, 0, 0, 0.06); }
.dc-list-note { font-size: 0.85em; opacity: 0.75; }
.dc-list-meta { font-size: 0.85em; opacity: 0.75; }
/* Gestapelt, sobald der Inhaltsbereich schmal ist (Datenschutzseiten haben oft eine schmale Textspalte). */
@container (max-width: 760px) {
	.dc-list-table thead { display: none; }
	.dc-list-table, .dc-list-table tbody, .dc-list-table tr, .dc-list-table td { display: block; width: 100% !important; }
	.dc-list-table tr { border: 1px solid rgba(0, 0, 0, 0.12); margin-bottom: 0.75em; }
	.dc-list-table td { border: 0; border-top: 1px solid rgba(0, 0, 0, 0.06); }
	.dc-list-table td:first-child { border-top: 0; }
	.dc-list-table td::before { content: attr(data-label); display: block; font-size: 0.8em; font-weight: 600; opacity: 0.7; margin-bottom: 0.15em; }
}
@media (max-width: 700px) {
	.dc-list-table thead { display: none; }
	.dc-list-table, .dc-list-table tbody, .dc-list-table tr, .dc-list-table td { display: block; width: 100% !important; }
	.dc-list-table tr { border: 1px solid rgba(0, 0, 0, 0.12); margin-bottom: 0.75em; }
	.dc-list-table td { border: 0; border-top: 1px solid rgba(0, 0, 0, 0.06); }
	.dc-list-table td:first-child { border-top: 0; }
	.dc-list-table td::before { content: attr(data-label); display: block; font-size: 0.8em; font-weight: 600; opacity: 0.7; margin-bottom: 0.15em; }
}

/* ---------- Mobil ---------- */
@media (max-width: 600px) {
	.dc--card-right, .dc--card-left, .dc--bottom { left: 8px; right: 8px; bottom: 8px; width: auto; }
	.dc-box { padding: 16px 16px 12px; max-height: calc(100vh - 16px); }
	.dc-actions { grid-template-columns: minmax(0, 1fr); gap: 8px; }
	.dc-btn { white-space: normal; }
	.dc-btn { min-height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
	.dc-box { animation: none; }
	.dc-tab, .dc-chev, .dc-slider, .dc-slider::after { transition: none; }
}

/* ---------- Theme-Schutz ----------
   Themes wie Hello Elementor geben jedem <button> Rahmen, Farbe und Hover-Hintergrund (z. B. Pink #c36).
   Hier hängt jeder Button an der ID des Banners bzw. Reiters und schlägt damit Theme- und Elementor-Regeln. */
#dc-root button, #dc-tab, :is(.dc-embed, .dc-embed-overlay) button {
	font-family: var(--dc-font, inherit); text-transform: none; letter-spacing: normal; text-decoration: none;
	text-shadow: none; box-shadow: none; min-width: 0; width: auto; height: auto; -webkit-appearance: none; appearance: none;
}
#dc-root .dc-close, #dc-root .dc-close:hover, #dc-root .dc-close:focus, #dc-root .dc-close:active {
	border: 0; border-radius: 50%; padding: 0; width: 32px; height: 32px; color: var(--dc-text, #1c1c1c); background: transparent;
}
#dc-root .dc-close:hover, #dc-root .dc-close:focus-visible { background: var(--dc-soft, #f2f3f5); }

#dc-root .dc-cat-toggle, #dc-root .dc-cat-toggle:hover, #dc-root .dc-cat-toggle:focus, #dc-root .dc-cat-toggle:active {
	display: block; border: 0; border-radius: 0; padding: 8px; background: transparent; color: var(--dc-text, #1c1c1c);
	font-size: 14.5px; font-weight: 500; line-height: 1.4; text-align: left; white-space: normal;
}
#dc-root .dc-chev, #dc-root .dc-chev:hover, #dc-root .dc-chev:focus, #dc-root .dc-chev:active {
	display: inline-flex; border: 0; border-radius: 6px; padding: 0; width: 30px; height: 30px; background: transparent; color: var(--dc-text, #1c1c1c);
}
#dc-root .dc-link, #dc-root .dc-link:hover, #dc-root .dc-link:focus, #dc-root .dc-link:active {
	display: inline-block; border: 0; border-radius: 0; padding: 0; background: transparent; color: var(--dc-text, #1c1c1c);
	font-size: 12.5px; font-weight: 400; line-height: 1.5; text-decoration: underline; text-underline-offset: 2px;
}

#dc-root .dc-btn, #dc-root .dc-btn:hover, #dc-root .dc-btn:focus, #dc-root .dc-btn:active {
	display: block; width: 100%; min-height: 46px; padding: 10px 16px; border: 1px solid transparent;
	border-radius: calc(var(--dc-radius, 12px) * 0.5); font-size: 14px; font-weight: 500; line-height: 1.2;
	text-align: center; white-space: nowrap; background: var(--dc-primary, #0a4c8b); color: var(--dc-primary-text, #fff);
}
#dc-root .dc-btn--reject, #dc-root .dc-btn--reject:hover, #dc-root .dc-btn--reject:focus, #dc-root .dc-btn--reject:active {
	background: var(--dc-reject, var(--dc-primary, #0a4c8b)); color: var(--dc-reject-text, #fff);
}
#dc-root .dc-btn--ghost, #dc-root .dc-btn--ghost:hover, #dc-root .dc-btn--ghost:focus, #dc-root .dc-btn--ghost:active {
	background: var(--dc-soft, #f2f3f5); color: var(--dc-text, #1c1c1c); border-color: rgba(0, 0, 0, 0.06);
}
#dc-root .dc-btn:hover { filter: brightness(1.08); }
#dc-root .dc-btn--ghost:hover { filter: brightness(0.97); }
#dc-root .dc-btn[hidden] { display: none; }

#dc-tab.dc-tab, #dc-tab.dc-tab:hover, #dc-tab.dc-tab:focus, #dc-tab.dc-tab:active {
	border: 0; padding: 12px 18px 16px; background: var(--dc-bg, #fff); color: var(--dc-text, #1c1c1c);
	font-size: 15px; font-weight: 500; line-height: 1.2;
	border-radius: calc(var(--dc-radius, 12px) * 0.7) calc(var(--dc-radius, 12px) * 0.7) 0 0;
	box-shadow: 0 -2px 18px rgba(15, 18, 24, 0.16);
}
#dc-tab.dc-tab[hidden] { display: none; }

:is(.dc-embed, .dc-embed-overlay) button.dc-embed-load,
:is(.dc-embed, .dc-embed-overlay) button.dc-embed-load:is(:hover, :focus, :active),
.dc-embed-overlay button.dc-embed-always,
.dc-embed-overlay button.dc-embed-always:is(:hover, :focus, :active) {
	border: 0; padding: 10px 18px; border-radius: calc(var(--dc-radius, 12px) * 0.5); font-size: 14px; font-weight: 600;
	background: var(--dc-primary, #0a4c8b); color: var(--dc-primary-text, #fff);
}
.dc-embed-msg button.dc-embed-always, .dc-embed-msg button.dc-embed-always:is(:hover, :focus, :active) {
	border: 0; padding: 0; background: none; color: inherit; font-size: 13px; text-decoration: underline;
}

@media (hover: none) {
	#dc-tab.dc-tab, #dc-tab.dc-tab:hover, #dc-tab.dc-tab:focus, #dc-tab.dc-tab:active { font-size: 13px; padding: 8px 12px 10px; }
}
@media (max-width: 600px) {
	#dc-root .dc-btn, #dc-root .dc-btn:hover, #dc-root .dc-btn:focus, #dc-root .dc-btn:active { white-space: normal; min-height: 44px; }
}