/* HS Consent – passt sich über CSS-Variablen an das Theme an. */
.hsc {
	--hsc-accent: var(--accent, #2b66d2);
	--hsc-accent-ink: var(--accent-ink, #fff);
	--hsc-ink: var(--ink, #1f1f24);
	--hsc-muted: var(--muted, #6b6875);
	--hsc-bg: var(--paper, #fff);
	--hsc-line: var(--line, #e5e1da);
	--hsc-focus: var(--focus, #2b66d2);
	position: fixed;
	z-index: 2147483000;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 0 12px 12px;
	pointer-events: none;
	font-family: var(--font-body, system-ui, -apple-system, "Segoe UI", sans-serif);
	color: var(--hsc-ink);
	line-height: 1.5;
}
.hsc *, .hsc *::before, .hsc *::after { box-sizing: border-box; }
.hsc-box {
	pointer-events: auto;
	max-width: 760px;
	max-height: calc(100vh - 24px);
	max-height: calc(100dvh - 24px);
	overflow: auto;
	margin: 0 auto;
	background: var(--hsc-bg);
	border: 2px solid var(--hsc-ink);
	border-radius: 16px;
	box-shadow: 0 18px 50px rgba(0, 0, 0, .22), 0 4px 0 var(--hsc-ink);
	padding: 20px 22px 18px;
	animation: hsc-in .25s ease-out;
}
@keyframes hsc-in { from { transform: translateY(16px); opacity: 0; } to { transform: none; opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .hsc-box { animation: none; } }

.hsc-title {
	font-family: var(--font-head, inherit);
	font-size: 1.25rem;
	line-height: 1.2;
	margin: 0 0 .4em;
	color: var(--hsc-ink);
}
.hsc-text { margin: 0 0 .6em; font-size: .97rem; }
.hsc-links { margin: .2em 0 .9em; font-size: .88rem; display: flex; gap: 14px; flex-wrap: wrap; }
.hsc-links a, .hsc-svc a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }

.hsc-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.hsc-btn {
	font: inherit;
	font-weight: 700;
	font-size: .97rem;
	line-height: 1.2;
	padding: 12px 18px;
	border-radius: 999px;
	border: 2px solid var(--hsc-ink);
	cursor: pointer;
	flex: 1 1 180px;
	min-height: 46px;
	transition: transform .08s ease;
}
.hsc-btn:active { transform: translateY(1px); }
.hsc-btn--primary { background: var(--hsc-accent); color: var(--hsc-accent-ink); }
.hsc-btn--ghost { background: transparent; color: var(--hsc-ink); }
.hsc-btn:focus-visible, .hsc a:focus-visible, .hsc input:focus-visible, .hsc summary:focus-visible {
	outline: 3px solid var(--hsc-focus);
	outline-offset: 2px;
}

.hsc-cats { display: grid; gap: 10px; margin: 6px 0 14px; }
.hsc-cat { border: 1.5px solid var(--hsc-line); border-radius: 12px; padding: 12px 14px; }
.hsc-cat__head { display: flex; align-items: center; gap: 10px; }
.hsc-cat__head label { font-weight: 700; cursor: pointer; }
.hsc-cat__desc, .hsc-own { margin: 4px 0 0; font-size: .9rem; color: var(--hsc-muted); }
.hsc-id { font-size: .8rem; color: var(--hsc-muted); word-break: break-all; margin: 0 0 12px; }

/* Schalter */
.hsc-switch {
	-webkit-appearance: none;
	appearance: none;
	flex: 0 0 auto;
	width: 44px;
	height: 26px;
	margin: 0;
	border-radius: 999px;
	background: #c9c5cf;
	position: relative;
	cursor: pointer;
	transition: background .15s;
}
.hsc-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, .3);
	transition: transform .15s;
}
.hsc-switch:checked { background: var(--hsc-accent); }
.hsc-switch:checked::after { transform: translateX(18px); }
.hsc-switch:disabled { opacity: .55; cursor: not-allowed; }

.hsc-svcbox { margin-top: 8px; font-size: .9rem; }
.hsc-svcbox summary { cursor: pointer; font-weight: 700; }
.hsc-svc { display: grid; grid-template-columns: max-content 1fr; gap: 2px 12px; margin: 6px 0 0; }
.hsc-svc dt { color: var(--hsc-muted); }
.hsc-svc dd { margin: 0; }

@media (max-width: 560px) {
	.hsc { padding: 0 8px 8px; }
	.hsc-box { padding: 16px 16px 14px; border-radius: 14px; }
	.hsc-btn { flex: 1 1 40%; padding: 12px 10px; }
	.hsc-btn--ghost { flex-basis: 100%; }
	.hsc-view--settings .hsc-btn { flex-basis: 100%; }
	.hsc-svc { grid-template-columns: 1fr; }
	.hsc-svc dd { margin-bottom: 4px; }
}

/* Inhalts-Blocker */
.hsc-blocked, .hsc-loaded { position: relative; width: 100%; margin: 1.2em 0; }
.hsc-blocked {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 220px;
	background: var(--panel-bg, #f3f1ec);
	border: 2px dashed var(--line-strong, #cfc8bb);
	border-radius: 14px;
	padding: 20px;
	text-align: center;
}
.hsc-blocked__in { max-width: 460px; }
.hsc-blocked__title { font-weight: 800; font-size: 1.1rem; margin: 0 0 .3em; }
.hsc-blocked__text { font-size: .9rem; margin: 0 0 .8em; }
.hsc-blocked .hsc-btn { --hsc-accent: var(--accent, #2b66d2); --hsc-accent-ink: var(--accent-ink, #fff); --hsc-ink: var(--ink, #1f1f24); flex: 0 0 auto; }
.hsc-blocked__always { display: inline-flex; gap: 6px; align-items: center; font-size: .85rem; margin-top: .6em; cursor: pointer; }
.hsc-loaded iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

@media print { .hsc, .hsc-blocked { display: none !important; } }
