/**
 * InfiniteBits Consent — banner styles (Phase 4).
 * Three layouts (bar / modal / corner), light / dark / auto themes, an
 * accent-color variable set inline per site, switch-style category toggles,
 * and a collapse-to-corner "Privacy settings" pill. Self-contained design
 * system; brand match is via the accent color.
 */

.ib-consent {
	--ibc-accent: #3b4ad9;
	--ibc-accent-fg: #ffffff;
	--ibc-bg: #ffffff;
	--ibc-fg: #1f2430;
	--ibc-muted: #6b7280;
	--ibc-border: #e5e7eb;
	--ibc-surface: #f3f4f6;
	--ibc-radius: 16px;
	--ibc-shadow: 0 18px 50px rgba(15, 23, 42, 0.18);

	position: fixed;
	z-index: 99999;
	font-family: var(--ibc-font, inherit);
	color: var(--ibc-fg);
	line-height: 1.5;
}

.ib-consent[hidden] { display: none; }

/* ---------- theme: dark ---------- */
.ib-consent--dark {
	--ibc-bg: #161c2b;
	--ibc-fg: #e6e9f0;
	--ibc-muted: #9aa4b8;
	--ibc-border: #2a3346;
	--ibc-surface: #1f2738;
	--ibc-shadow: 0 18px 50px rgba(0, 0, 0, 0.45);
}
/* ---------- theme: auto (follow OS) ---------- */
@media (prefers-color-scheme: dark) {
	.ib-consent--auto {
		--ibc-bg: #161c2b;
		--ibc-fg: #e6e9f0;
		--ibc-muted: #9aa4b8;
		--ibc-border: #2a3346;
		--ibc-surface: #1f2738;
		--ibc-shadow: 0 18px 50px rgba(0, 0, 0, 0.45);
	}
}

.ib-consent__backdrop {
	position: fixed;
	inset: 0;
	background: rgba(15, 23, 42, 0.5);
}
/* Backdrop dimming levels + optional blur (modal + manage view). */
.ib-consent--bd-none .ib-consent__backdrop { background: transparent; }
.ib-consent--bd-light .ib-consent__backdrop { background: rgba(15, 23, 42, 0.25); }
.ib-consent--bd-dark .ib-consent__backdrop { background: rgba(15, 23, 42, 0.6); }
.ib-consent--blur .ib-consent__backdrop { -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
/* Legal pages (privacy/imprint): never dim or intercept the page. */
.ib-consent--legal .ib-consent__backdrop { display: none !important; }
@media (max-width: 640px) {
	.ib-consent--blur-desktop .ib-consent__backdrop { -webkit-backdrop-filter: none; backdrop-filter: none; }

	/* On phones every layout becomes a full-width sheet with breathing room. */
	.ib-consent--modal,
	.ib-consent--manage,
	.ib-consent--corner { inset: auto 0 0 0; padding: 0; align-items: flex-end; }
	.ib-consent--modal .ib-consent__panel,
	.ib-consent--manage .ib-consent__panel,
	.ib-consent--corner .ib-consent__panel {
		width: 100%;
		max-width: 100%;
		max-height: 88vh;
		border-radius: var(--ibc-radius) var(--ibc-radius) 0 0;
		border-bottom: 0;
		padding: 1.15rem;
	}
	.ib-consent__title { font-size: 1.05rem; }
	.ib-consent__intro { font-size: 0.88rem; }
	/* Stack the action buttons full-width so they are easy to tap. */
	.ib-consent--manage .ib-consent__actions,
	.ib-consent--modal .ib-consent__actions,
	.ib-consent--corner .ib-consent__actions { grid-template-columns: 1fr; grid-template-areas: "accept" "reject" "manage"; }
	.ib-consent__btn { width: 100%; }
}

.ib-consent__panel {
	position: relative;
	background: var(--ibc-bg);
	border: 1px solid var(--ibc-border);
	border-radius: var(--ibc-radius);
	box-shadow: var(--ibc-shadow);
	padding: 1.5rem;
}

.ib-consent__head {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	margin-bottom: 0.6rem;
}

.ib-consent__icon { color: var(--ibc-accent); flex: none; }

.ib-consent__title {
	margin: 0;
	font-size: 1.15rem;
	font-weight: 700;
	color: var(--ibc-fg);
}

.ib-consent__intro {
	margin: 0 0 1rem;
	font-size: 0.92rem;
	color: var(--ibc-muted);
}
.ib-consent__intro a { color: var(--ibc-accent); }
.ib-consent__credit { margin: 0.75rem 0 0; font-size: 0.72rem; color: var(--ibc-muted); text-align: center; }
.ib-consent__logo { max-height: 30px; max-width: 160px; width: auto; height: auto; display: block; }

/* Granular per-service toggles under a category. */
.ib-consent__svclist { margin: -0.2rem 0 0.6rem; padding: 0.5rem 0.75rem; border-left: 2px solid var(--ibc-border); display: grid; gap: 0.4rem; }
.ib-consent__svc { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; }
.ib-consent__svc-name { font-size: 0.85rem; color: var(--ibc-muted); }
.ib-consent__switch--sm { width: 38px; height: 22px; flex: none; }
.ib-consent__switch--sm .ib-consent__slider::before { width: 16px; height: 16px; }
.ib-consent__switch--sm input:checked + .ib-consent__slider::before { transform: translateX(16px) !important; }
[dir="rtl"] .ib-consent__switch--sm input:checked + .ib-consent__slider::before { transform: translateX(-16px) !important; }

/* ---------- category switches ---------- */
.ib-consent__categories {
	display: grid;
	gap: 0.6rem;
	margin: 0 0 1rem;
}
.ib-consent__categories[hidden] { display: none; }

.ib-consent__cat {
	display: block;
	padding: 0.85rem 1rem;
	border: 1px solid var(--ibc-border);
	border-radius: 12px;
}
.ib-consent__cat-row {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
}

.ib-consent__cat-label { display: block; font-weight: 600; font-size: 0.95rem; }
.ib-consent__cat-desc { display: block; margin-top: 0.15rem; font-size: 0.82rem; color: var(--ibc-muted); }
.ib-consent__services { display: block; margin-top: 0.25rem; font-size: 0.76rem; color: var(--ibc-muted); opacity: 0.85; }

.ib-consent__switch {
	position: relative;
	flex: none;
	width: 44px;
	height: 26px;
	margin-top: 2px;
}
.ib-consent__switch input {
	position: absolute;
	opacity: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	cursor: pointer;
}
.ib-consent__slider {
	position: absolute;
	inset: 0;
	background: var(--ibc-border);
	border-radius: 999px;
	transition: background 0.2s ease;
}
.ib-consent__slider::before {
	content: "";
	position: absolute;
	top: 3px;
	inset-inline-start: 3px;
	width: 20px;
	height: 20px;
	background: #ffffff;
	border-radius: 50%;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
	transition: transform 0.2s ease;
}
.ib-consent__switch input:checked + .ib-consent__slider { background: var(--ibc-accent); }
[dir="ltr"] .ib-consent__switch input:checked + .ib-consent__slider::before { transform: translateX(18px); }
[dir="rtl"] .ib-consent__switch input:checked + .ib-consent__slider::before { transform: translateX(-18px); }
.ib-consent__switch input:disabled + .ib-consent__slider { opacity: 0.55; }
.ib-consent__switch input:focus-visible + .ib-consent__slider { outline: 2px solid var(--ibc-accent); outline-offset: 2px; }

/* ---------- buttons ---------- */
.ib-consent__actions { display: flex; gap: 0.55rem; }

.ib-consent__btn {
	appearance: none;
	cursor: pointer;
	border: 1px solid transparent;
	border-radius: calc(var(--ibc-radius, 16px) * 0.62);
	padding: 0.7rem 1.2rem;
	font: inherit;
	font-size: 0.92rem;
	font-weight: 600;
	line-height: 1.1;
	transition: filter 0.15s ease, background 0.15s ease;
}
.ib-consent__btn--accept { background: var(--ibc-accent); color: var(--ibc-accent-fg); }
.ib-consent__btn--reject { background: var(--ibc-bg); color: var(--ibc-fg); border-color: var(--ibc-border); }
.ib-consent__btn--ghost { background: var(--ibc-surface); color: var(--ibc-fg); }
.ib-consent__btn--accept:hover { filter: brightness(0.94); }
.ib-consent__btn--reject:hover,
.ib-consent__btn--ghost:hover { filter: brightness(0.97); }
.ib-consent__btn:focus-visible { outline: 2px solid var(--ibc-accent); outline-offset: 2px; }

/* Equal prominence (default): Reject carries the same visual weight as Accept
   — a solid, filled button rather than a lighter outline. Required by several
   EU DPAs so refusing is no harder than accepting. */
.ib-consent--equal .ib-consent__btn--reject {
	background: var(--ibc-fg);
	color: var(--ibc-bg);
	border-color: var(--ibc-fg);
}
.ib-consent--equal .ib-consent__btn--reject:hover { filter: brightness(1.15); }

/* ============ LAYOUT: BAR ============ */
.ib-consent--bar { inset: auto 0 0 0; display: flex; justify-content: center; padding: 1rem; }
.ib-consent--bar .ib-consent__backdrop { display: none; }
.ib-consent--bar .ib-consent__panel {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	width: min(1100px, 100%);
}
.ib-consent--bar .ib-consent__head { margin-bottom: 0.25rem; }
.ib-consent--bar .ib-consent__intro { margin: 0; }
.ib-consent--bar .ib-consent__text { flex: 1; }
.ib-consent--bar .ib-consent__categories { width: 100%; }
.ib-consent--bar .ib-consent__actions { flex: none; align-items: center; }
.ib-consent--bar .ib-consent__btn--ghost { background: transparent; text-decoration: underline; padding-inline: 0.6rem; }

/* When the manage panel is open in bar mode, stack it. */
.ib-consent--bar .ib-consent__panel:has(.ib-consent__categories:not([hidden])) { flex-direction: column; align-items: stretch; }

/* ============ LAYOUT: MODAL ============ */
.ib-consent--modal { inset: 0; display: flex; align-items: center; justify-content: center; padding: 1rem; }
.ib-consent--modal .ib-consent__panel { width: min(560px, 100%); max-height: calc(100vh - 2rem); overflow-y: auto; }
.ib-consent--modal .ib-consent__actions,
.ib-consent--corner .ib-consent__actions {
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-template-areas: "accept accept" "reject manage";
}
.ib-consent--modal .ib-consent__btn--accept,
.ib-consent--corner .ib-consent__btn--accept { grid-area: accept; }
.ib-consent--modal .ib-consent__btn--reject,
.ib-consent--corner .ib-consent__btn--reject { grid-area: reject; }
.ib-consent--modal [data-ib-action="customize"],
.ib-consent--modal [data-ib-action="save"],
.ib-consent--corner [data-ib-action="customize"],
.ib-consent--corner [data-ib-action="save"] { grid-area: manage; }

/* ============ LAYOUT: CORNER ============ */
.ib-consent--corner { inset: auto auto 1.25rem 1.25rem; max-width: calc(100% - 2.5rem); }
.ib-consent--corner.ib-consent--pos-right { inset: auto 1.25rem 1.25rem auto; }
.ib-consent--corner .ib-consent__backdrop { display: none; }
.ib-consent--corner .ib-consent__panel { width: 380px; max-width: 100%; }

/* ===== Manage view: always a centered modal (the big preferences screen),
   regardless of the compact layout shown first. ===== */
.ib-consent--manage { inset: 0; display: flex; align-items: center; justify-content: center; padding: 1rem; }
.ib-consent--manage .ib-consent__backdrop { display: block; }
.ib-consent--manage .ib-consent__panel { width: min(640px, 100%); max-height: calc(100vh - 2rem); overflow-y: auto; flex-direction: column; align-items: stretch; }
.ib-consent--manage .ib-consent__text { flex: none; }
.ib-consent--manage .ib-consent__actions {
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-template-areas: "accept accept" "reject manage";
}
.ib-consent--manage .ib-consent__btn--accept { grid-area: accept; }
.ib-consent--manage .ib-consent__btn--reject { grid-area: reject; }
.ib-consent--manage [data-ib-action="customize"],
.ib-consent--manage [data-ib-action="save"] { grid-area: manage; }
.ib-consent--manage .ib-consent__btn--ghost { background: var(--ibc-surface); text-decoration: none; padding-inline: 1.2rem; }

/* ---------- collapse-to-corner pill ---------- */
.ib-consent-badge {
	position: fixed;
	bottom: 1.25rem;
	z-index: 99998;
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.6rem 1rem;
	border: 0;
	border-radius: 999px;
	background: var(--ibc-accent, #3b4ad9);
	color: #ffffff;
	font: inherit;
	font-size: 0.9rem;
	font-weight: 600;
	cursor: pointer;
	box-shadow: 0 8px 22px rgba(15, 23, 42, 0.22);
	transition: transform 0.15s ease, filter 0.15s ease;
}
.ib-consent-badge .ib-consent__icon { color: #ffffff; }
.ib-consent-badge--pos-left { inset-inline-start: 1.25rem; }
.ib-consent-badge--pos-right { inset-inline-end: 1.25rem; }
.ib-consent-badge[hidden] { display: none; }
.ib-consent-badge:hover { filter: brightness(0.95); transform: translateY(-1px); }
.ib-consent-badge:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }

/* Icon-only variant: a round button showing the fingerprint mark in the
   chosen badge colour (falls back to the accent). */
.ib-consent-badge--icon {
	padding: 0;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	justify-content: center;
	background: #ffffff;
	color: var(--ibc-badge-color, var(--ibc-accent, #3b4ad9));
	box-shadow: 0 6px 20px rgba(15, 23, 42, 0.28);
	border: 1px solid rgba(15, 23, 42, 0.06);
}
.ib-consent-badge--icon .ib-consent-badge__print { color: inherit; display: block; }
.ib-consent-badge--icon:hover { filter: none; background: #fff; transform: translateY(-2px); }
.ib-consent-badge--icon:focus-visible { outline: 2px solid var(--ibc-badge-color, var(--ibc-accent)); outline-offset: 3px; }

html.ib-consent-open { overflow: hidden; }

/* ---------- responsive ---------- */
@media (max-width: 640px) {
	.ib-consent--bar .ib-consent__panel { flex-direction: column; align-items: stretch; gap: 1rem; }
	.ib-consent--bar .ib-consent__actions { display: grid; grid-template-columns: 1fr 1fr; grid-template-areas: "accept accept" "reject manage"; }
	.ib-consent--bar .ib-consent__btn--accept { grid-area: accept; }
	.ib-consent--bar .ib-consent__btn--reject { grid-area: reject; }
	.ib-consent--bar [data-ib-action="customize"],
	.ib-consent--bar [data-ib-action="save"] { grid-area: manage; }
	.ib-consent--corner { inset: auto 0.75rem 0.75rem 0.75rem; }
	.ib-consent--corner .ib-consent__panel { width: 100%; }
	.ib-consent-badge__label { display: none; }
	.ib-consent-badge:not(.ib-consent-badge--icon) { padding: 0.7rem; }
}

@media (prefers-reduced-motion: reduce) {
	.ib-consent-badge:hover { transform: none; }
	.ib-consent__slider, .ib-consent__slider::before, .ib-consent__btn { transition: none; }
}

/* ---------- content blocker placeholder ---------- */
.ib-consent-embed { position: relative; }
.ib-consent-embed.is-blocked iframe { display: none; }
.ib-consent-placeholder__actions { display: flex; gap: 0.55rem; flex-wrap: wrap; justify-content: center; }
.ib-consent-placeholder__btn--ghost { background: rgba(255,255,255,0.92); color: #1c2333; border: 1px solid #d3d7e0; }
.ib-consent-placeholder__btn--ghost:hover { background: #fff; }

/* Media variant: real poster behind a dark scrim + play button. */
.ib-consent-placeholder--media {
	background-size: cover;
	background-position: center;
	aspect-ratio: 16 / 9;
	min-height: 220px;
	color: #fff;
}
.ib-consent-placeholder--media .ib-consent-placeholder__inner {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 1.25rem;
	text-align: center;
	background: rgba(10, 14, 24, 0.62);
}
.ib-consent-placeholder--media .ib-consent-placeholder__title { color: #fff; }
.ib-consent-placeholder--media .ib-consent-placeholder__body { color: rgba(255, 255, 255, 0.82); }
.ib-consent-placeholder__play {
	width: 58px;
	height: 58px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.18);
	border: 2px solid rgba(255, 255, 255, 0.85);
	position: relative;
	margin-bottom: 0.35rem;
}
.ib-consent-placeholder__play::before {
	content: "";
	position: absolute;
	left: 54%;
	top: 50%;
	transform: translate(-50%, -50%);
	border-style: solid;
	border-width: 11px 0 11px 18px;
	border-color: transparent transparent transparent #fff;
}
.ib-consent-placeholder {
	position: relative;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.6rem;
	min-height: 220px;
	padding: 1.5rem;
	text-align: center;
	border: 1px dashed #d4d8e0;
	border-radius: 12px;
	background: #f5f6f8;
	color: #1f2430;
}
.ib-consent-placeholder--media { padding: 0; border-style: solid; border-color: rgba(0, 0, 0, 0.35); }
.ib-consent-placeholder__title { font-size: 1rem; font-weight: 600; }
.ib-consent-placeholder__body { margin: 0; max-width: 38ch; font-size: 0.88rem; color: #5a6478; }
.ib-consent-placeholder__btn {
	appearance: none;
	cursor: pointer;
	border: 0;
	border-radius: 8px;
	padding: 0.55rem 1.1rem;
	font: inherit;
	font-weight: 600;
	background: #3b4ad9;
	color: #ffffff;
}
.ib-consent-placeholder__btn:focus-visible { outline: 2px solid #3b4ad9; outline-offset: 2px; }

/* Developer gate wrapper + open link */
.ib-consent-gate.is-blocked { display: block; }
.ib-consent-open-link { background: none; border: 0; padding: 0; margin: 0; color: inherit; font: inherit; text-decoration: underline; cursor: pointer; }

/* Consent receipt line + self-service widget */
.ib-consent__receipt { font-size: 11px; opacity: 0.6; margin: 6px 0 0; word-break: break-all; }
.ib-consent-receipt { border: 1px solid rgba(0,0,0,.12); border-radius: 10px; padding: 14px 16px; margin: 1rem 0; font-size: .95em; }
.ib-consent-receipt__meta { font-size: .82em; opacity: .7; word-break: break-all; margin: .35rem 0 0; }
.ib-consent-receipt__actions { margin: .6rem 0 0; display: flex; gap: 1rem; flex-wrap: wrap; }
.ib-consent__renewal { font-weight: 600; }

/* Detailed (Borlabs-style) per-service disclosure */
.ib-consent__svc-d { border: 1px solid var(--ibc-border); border-radius: 10px; margin: 6px 0; overflow: hidden; }
.ib-consent__svc-sum { display: flex; align-items: center; gap: 10px; padding: 10px 12px; cursor: pointer; list-style: none; }
.ib-consent__svc-sum::-webkit-details-marker { display: none; }
.ib-consent__svc-sum .ib-consent__svc-name { flex: 1; font-weight: 600; font-size: 0.92em; }
.ib-consent__svc-chev { width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); opacity: .5; transition: transform .2s ease; margin-right: 2px; }
.ib-consent__svc-d[open] .ib-consent__svc-chev { transform: rotate(-135deg); }
.ib-consent__svc-body { padding: 4px 12px 12px; font-size: 0.86em; }
.ib-consent__svc-row { display: flex; gap: 8px; margin: 4px 0; }
.ib-consent__svc-k { flex: none; width: 84px; font-weight: 600; opacity: .7; }
.ib-consent__svc-v { flex: 1; }
.ib-consent__svc-v a { color: var(--ibc-accent); }
.ib-consent__svc-cookies { display: flex; gap: 8px; margin-top: 6px; }
.ib-consent__svc-cookies ul { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 4px 10px; }
.ib-consent__svc-cookies code { font-size: .92em; }
.ib-consent__svc-ret { opacity: .55; }

/* Provider transparency block (GDPR visitors only) */
[data-ib-gdpr-only] { display: none; }
.ib-consent--gdpr [data-ib-gdpr-only],
html.ib-consent-gdpr [data-ib-gdpr-only] { display: block; }
.ib-consent__providers { margin-top: 4px; }
.ib-consent__providers-toggle { display: flex; align-items: center; justify-content: space-between; width: 100%; background: none; border: 0; padding: 6px 0; font: inherit; font-weight: 600; color: inherit; cursor: pointer; }
.ib-consent__providers-chev { width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); opacity: .5; transition: transform .2s ease; }
.ib-consent__providers.is-open .ib-consent__providers-chev { transform: rotate(-135deg); }
.ib-consent__providers-list { margin-top: 6px; display: grid; gap: 6px; }
.ib-consent__provider { border: 1px solid var(--ibc-border); border-radius: 10px; overflow: hidden; }
.ib-consent__provider-sum { display: flex; align-items: center; gap: 10px; padding: 10px 12px; cursor: pointer; list-style: none; }
.ib-consent__provider-sum::-webkit-details-marker { display: none; }
.ib-consent__provider-name { font-weight: 600; font-size: .92em; }
.ib-consent__provider-count { flex: 1; font-size: .8em; opacity: .55; }
.ib-consent__provider-body { padding: 4px 12px 12px; font-size: .86em; }
.ib-consent__provider-desc { margin: 0 0 8px; opacity: .8; }
.ib-consent__provider[open] .ib-consent__svc-chev { transform: rotate(-135deg); }

/* Content-blocker visual styles */
.ib-consent-placeholder--textbox { background: var(--ibc-surface, #f6f7fb); text-align: left; align-items: flex-start; }
.ib-consent-placeholder--wrapped { border: 1px solid var(--ibc-border); border-radius: 12px; background: var(--ibc-surface, #f6f7fb); padding: 1.25rem; }
.ib-consent-placeholder--hero { min-height: 200px; }

/* Banner footer: legal links (left) + withdraw (right), a slim muted bar */
.ib-consent__footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-top: 14px; padding-top: 10px; border-top: 1px solid var(--ibc-border); font-size: .82em; }
.ib-consent__footer-links { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.ib-consent__footer-links a { color: inherit; text-decoration: none; opacity: .6; }
.ib-consent__footer-links a:hover { opacity: 1; text-decoration: underline; }
.ib-consent__footer-links a + a::before { content: "·"; margin: 0 8px 0 2px; opacity: .5; display: inline-block; }
.ib-consent__sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Language selector — lives top-right of the header */
.ib-consent__head { position: relative; }
.ib-consent__lang { margin-inline-start: auto; }
.ib-consent__lang select { font: inherit; font-size: .8em; border: 1px solid var(--ibc-border); border-radius: 999px; padding: 3px 26px 3px 10px; background: transparent; color: inherit; opacity: .75; cursor: pointer; appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23888' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 9px center; }
.ib-consent__lang select:hover { opacity: 1; }

/* Withdraw consent — a subtle, secondary danger-tinted link, set apart from
   the primary Accept/Reject/Save buttons. Only shown when consent exists. */
.ib-consent__withdraw { display: inline-flex; align-items: center; gap: 5px; margin-inline-start: auto; background: none; border: 0; padding: 2px 4px; font: inherit; font-size: 1em; color: #b3433b; opacity: .8; cursor: pointer; border-radius: 6px; }
.ib-consent__withdraw:hover { opacity: 1; text-decoration: underline; }
.ib-consent__withdraw svg { flex: none; }

/* "Show service information" — small inline link right after the description */
/* "Show service information" — same size as the description text, inline with it */
.ib-consent__svcinfo-toggle { display: inline-flex; align-items: center; gap: 4px; background: none; border: 0; padding: 0; margin: 0; font: inherit; font-size: inherit; line-height: inherit; vertical-align: baseline; color: var(--ibc-accent); text-decoration: underline; cursor: pointer; white-space: nowrap; }
.ib-consent__svcinfo-chev { width: 6px; height: 6px; border-right: 1.6px solid currentColor; border-bottom: 1.6px solid currentColor; transform: rotate(-45deg); transition: transform .2s ease; margin-bottom: 2px; }
.ib-consent__svcinfo-toggle[aria-expanded="true"] .ib-consent__svcinfo-chev { transform: rotate(45deg); }
/* Info panel nested inside the category card */
.ib-consent__svcinfo { margin: 10px 0 2px; padding-top: 10px; border-top: 1px dashed var(--ibc-border); display: grid; gap: 6px; }
.ib-consent__svcinfo[hidden] { display: none; }
.ib-consent__cat-count { font-weight: 400; opacity: .55; font-size: .9em; }

/* Manage-view tabs (Consent / Service providers) */
.ib-consent__tabs { display: flex; gap: 4px; margin: 2px 0 12px; border-bottom: 1px solid var(--ibc-border); }
.ib-consent__tabs[hidden] { display: none; }
.ib-consent__tab { appearance: none; background: none; border: 0; border-bottom: 2px solid transparent; margin-bottom: -1px; padding: 8px 12px; font: inherit; font-size: .92em; font-weight: 600; color: var(--ibc-muted); cursor: pointer; }
.ib-consent__tab:hover { color: var(--ibc-fg); }
.ib-consent__tab.is-active { color: var(--ibc-accent); border-bottom-color: var(--ibc-accent); }
.ib-consent__providers-intro { margin: 0 0 8px; font-size: .86em; color: var(--ibc-muted); }
