.ctc-consent {
	--ctc-surface: #ffffff;
	--ctc-surface-muted: #f6f8f9;
	--ctc-text: #17202b;
	--ctc-text-muted: #53616e;
	--ctc-border: #d8e0e5;
	--ctc-accent: #087f86;
	--ctc-accent-strong: #05656b;
	--ctc-focus: #075fce;
	font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	color: var(--ctc-text);
}

.ctc-consent[hidden],
.ctc-consent [hidden] {
	display: none !important;
}

.ctc-consent__banner {
	position: fixed;
	z-index: 100000;
	inset-inline: max(16px, env(safe-area-inset-left)) max(16px, env(safe-area-inset-right));
	inset-block-end: max(16px, env(safe-area-inset-bottom));
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 24px;
	align-items: end;
	max-inline-size: 1120px;
	margin-inline: auto;
	padding: 20px;
	background: var(--ctc-surface);
	border: 1px solid var(--ctc-border);
	border-radius: 14px;
	box-shadow: 0 18px 60px rgb(23 32 43 / 18%);
}

.ctc-consent__eyebrow {
	margin: 0 0 5px;
	color: var(--ctc-accent-strong);
	font-size: 12px;
	font-weight: 750;
	letter-spacing: .08em;
	line-height: 1.3;
	text-transform: uppercase;
}

.ctc-consent h2,
.ctc-consent h3,
.ctc-consent p {
	font-family: inherit;
}

.ctc-consent h2 {
	margin: 0;
	color: var(--ctc-text);
	font-size: clamp(20px, 2vw, 24px);
	font-weight: 720;
	letter-spacing: -.025em;
	line-height: 1.2;
}

.ctc-consent__banner-copy > p:last-child,
.ctc-consent__panel > p {
	max-inline-size: 72ch;
	margin: 8px 0 0;
	color: var(--ctc-text-muted);
	font-size: 14px;
	line-height: 1.55;
}

.ctc-consent a,
.ctc-inline-settings {
	color: var(--ctc-accent-strong);
	font-weight: 650;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

.ctc-inline-settings {
	min-block-size: 44px;
	padding: 0;
	background: none;
	border: 0;
	cursor: pointer;
}

.ctc-consent__banner-actions,
.ctc-consent__panel-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.ctc-button {
	min-block-size: 44px;
	padding: 9px 16px;
	color: var(--ctc-text);
	font: 680 14px/1.2 inherit;
	background: var(--ctc-surface);
	border: 1px solid var(--ctc-border);
	border-radius: 8px;
	cursor: pointer;
	transition: background-color 140ms ease, border-color 140ms ease, color 140ms ease, transform 140ms ease;
}

.ctc-button:hover {
	background: var(--ctc-surface-muted);
	border-color: #b7c3ca;
}

.ctc-button:active {
	transform: translateY(1px);
}

.ctc-button--choice {
	color: #ffffff;
	background: var(--ctc-accent);
	border-color: var(--ctc-accent);
}

.ctc-button--choice:hover {
	color: #ffffff;
	background: var(--ctc-accent-strong);
	border-color: var(--ctc-accent-strong);
}

.ctc-consent button:focus-visible,
.ctc-consent a:focus-visible,
.ctc-switch input:focus-visible + span {
	outline: 3px solid color-mix(in srgb, var(--ctc-focus) 45%, transparent);
	outline-offset: 3px;
}

.ctc-consent__backdrop {
	position: fixed;
	z-index: 100001;
	inset: 0;
	display: grid;
	place-items: center;
	padding: 16px;
	background: rgb(20 28 36 / 58%);
}

.ctc-consent__panel {
	inline-size: min(100%, 720px);
	max-block-size: min(820px, calc(100vh - 32px));
	overflow: auto;
	padding: 24px;
	background: var(--ctc-surface);
	border: 1px solid var(--ctc-border);
	border-radius: 14px;
	box-shadow: 0 24px 80px rgb(0 0 0 / 24%);
}

.ctc-consent__panel-header {
	display: flex;
	gap: 16px;
	align-items: flex-start;
	justify-content: space-between;
}

.ctc-consent__close {
	display: grid;
	flex: 0 0 44px;
	place-items: center;
	inline-size: 44px;
	block-size: 44px;
	padding: 0;
	color: var(--ctc-text);
	font: 400 28px/1 inherit;
	background: var(--ctc-surface-muted);
	border: 1px solid var(--ctc-border);
	border-radius: 8px;
	cursor: pointer;
}

.ctc-consent__categories {
	margin-block: 20px;
	border-block-start: 1px solid var(--ctc-border);
}

.ctc-consent__category {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 20px;
	align-items: center;
	padding-block: 16px;
	border-block-end: 1px solid var(--ctc-border);
}

.ctc-consent__category h3 {
	margin: 0;
	color: var(--ctc-text);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.4;
}

.ctc-consent__category p {
	margin: 4px 0 0;
	color: var(--ctc-text-muted);
	font-size: 14px;
	line-height: 1.5;
}

.ctc-switch {
	position: relative;
	display: inline-flex;
	align-items: center;
	min-inline-size: 50px;
	min-block-size: 44px;
	cursor: pointer;
}

.ctc-switch input {
	position: absolute;
	inline-size: 1px;
	block-size: 1px;
	opacity: 0;
}

.ctc-switch span[aria-hidden] {
	position: relative;
	display: block;
	inline-size: 46px;
	block-size: 26px;
	background: #8c99a3;
	border-radius: 999px;
	transition: background-color 140ms ease;
}

.ctc-switch span[aria-hidden]::after {
	position: absolute;
	inset-block-start: 3px;
	inset-inline-start: 3px;
	inline-size: 20px;
	block-size: 20px;
	background: #ffffff;
	border-radius: 50%;
	box-shadow: 0 1px 3px rgb(0 0 0 / 25%);
	content: "";
	transition: transform 140ms ease;
}

.ctc-switch input:checked + span {
	background: var(--ctc-accent);
}

.ctc-switch input:checked + span::after {
	transform: translateX(20px);
}

.ctc-switch input:disabled + span {
	opacity: .68;
}

.ctc-consent__panel-links {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 20px;
	margin-block: 8px 20px;
	font-size: 14px;
}

.ctc-consent__panel-actions {
	justify-content: flex-end;
}

.ctc-consent__persistent {
	position: fixed;
	z-index: 99990;
	inset-inline-start: max(14px, env(safe-area-inset-left));
	inset-block-end: max(14px, env(safe-area-inset-bottom));
	display: inline-flex;
	gap: 8px;
	align-items: center;
	min-block-size: 44px;
	padding: 9px 13px;
	color: var(--ctc-text);
	font: 650 13px/1.2 inherit;
	background: rgb(255 255 255 / 96%);
	border: 1px solid var(--ctc-border);
	border-radius: 8px;
	box-shadow: 0 8px 24px rgb(23 32 43 / 12%);
	cursor: pointer;
}

.ctc-consent__persistent:hover {
	background: var(--ctc-surface-muted);
}

.ctc-consent-open {
	overflow: hidden;
}

.ctc-legal {
	--ctc-legal-border: var(--color-border, #d8e0e5);
	--ctc-legal-muted: var(--color-text-secondary, #53616e);
	max-inline-size: 760px;
	margin-inline: auto;
}

.ctc-legal__updated {
	margin-block: 0 32px;
	color: var(--ctc-legal-muted);
	font-size: 14px;
}

.ctc-legal h2 {
	margin-block: 40px 12px;
	font-size: clamp(22px, 3vw, 28px);
	letter-spacing: -.025em;
}

.ctc-legal__facts {
	margin: 0;
	border-block-start: 1px solid var(--ctc-legal-border);
}

.ctc-legal__facts > div {
	display: grid;
	grid-template-columns: minmax(150px, .7fr) minmax(0, 1.3fr);
	gap: 20px;
	padding-block: 12px;
	border-block-end: 1px solid var(--ctc-legal-border);
}

.ctc-legal__facts dt {
	color: var(--ctc-legal-muted);
	font-weight: 650;
}

.ctc-legal__facts dd {
	margin: 0;
}

.ctc-legal__table-wrap {
	max-inline-size: 100%;
	overflow-x: auto;
	border: 1px solid var(--ctc-legal-border);
	border-radius: 8px;
}

.ctc-legal__table-wrap table {
	inline-size: 100%;
	min-inline-size: 640px;
	margin: 0;
	border: 0;
	border-collapse: collapse;
}

.ctc-legal__table-wrap th,
.ctc-legal__table-wrap td {
	padding: 12px;
	text-align: start;
	vertical-align: top;
	border: 0;
	border-block-end: 1px solid var(--ctc-legal-border);
}

.ctc-legal__table-wrap th {
	background: var(--color-surface-subtle, #f6f8f9);
}

.ctc-legal__admin-warning,
.ctc-legal__draft-note {
	padding: 16px;
	background: #fff8e5;
	border: 1px solid #e7c86a;
	border-radius: 8px;
}

.ctc-legal__admin-warning p,
.ctc-legal__draft-note p {
	margin: 6px 0 0;
}

@media (max-width: 780px) {
	.ctc-consent__banner {
		grid-template-columns: 1fr;
		gap: 16px;
		padding: 18px;
	}

	.ctc-consent__banner-actions,
	.ctc-consent__panel-actions {
		display: grid;
		grid-template-columns: 1fr;
	}

	.ctc-consent__panel {
		padding: 20px;
	}

	.ctc-consent__persistent span {
		position: absolute;
		inline-size: 1px;
		block-size: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		white-space: nowrap;
	}

	.ctc-consent__persistent {
		justify-content: center;
		inline-size: 44px;
		padding: 0;
	}

	.ctc-legal__facts > div {
		grid-template-columns: 1fr;
		gap: 4px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ctc-consent *,
	.ctc-consent *::before,
	.ctc-consent *::after {
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
	}
}

