/* Festival Core — consent banner. Uses theme tokens when present, with fallbacks. */
.fp-consent {
	position: fixed;
	z-index: 1000;
	left: 16px;
	right: 16px;
	bottom: 16px;
	max-width: 440px;
	padding: 20px;
	border-radius: 16px;
	background: var(--c-white, #fff);
	color: var(--c-ink, #14201a);
	box-shadow: 0 2px 6px rgb(20 32 26 / 10%), 0 18px 48px rgb(20 32 26 / 22%);
	border: 1px solid var(--c-line, #d9e0dc);
	font-size: 0.9375rem;
	line-height: 1.5;
}

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

.fp-consent__title {
	margin: 0 0 6px;
	font-family: var(--f-display, inherit);
	font-size: 1.25rem;
	font-weight: 800;
	letter-spacing: -0.01em;
}

.fp-consent__text {
	margin: 0 0 14px;
	color: var(--c-muted, #4b5751);
}

.fp-consent__text a {
	color: var(--c-green, #046a38);
}

.fp-consent__prefs fieldset {
	margin: 0 0 14px;
	padding: 0;
	border: 0;
}

.fp-consent__option {
	display: flex;
	gap: 10px;
	padding: 10px 0;
	border-top: 1px solid var(--c-line, #d9e0dc);
	cursor: pointer;
}

.fp-consent__option input {
	width: 20px;
	height: 20px;
	margin-top: 2px;
	flex: none;
	accent-color: var(--c-green, #046a38);
}

.fp-consent__desc {
	display: block;
	color: var(--c-muted, #4b5751);
	font-size: 0.8125rem;
}

.fp-consent__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.fp-consent__btn {
	min-height: 44px;
	padding: 0 16px;
	border: 2px solid var(--c-ink, #14201a);
	border-radius: 999px;
	background: transparent;
	color: var(--c-ink, #14201a);
	font: 600 0.9375rem/1 var(--f-body, inherit);
	cursor: pointer;
}

.fp-consent__btn:hover {
	background: var(--c-wash, #f2f5f3);
}

.fp-consent__btn--primary {
	border-color: var(--c-green, #046a38);
	background: var(--c-green, #046a38);
	color: #fff;
}

.fp-consent__btn--primary:hover {
	border-color: var(--c-green-dark, #034d29);
	background: var(--c-green-dark, #034d29);
}

.fp-consent__btn--link {
	border-color: transparent;
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.fp-consent__btn[hidden] {
	display: none;
}

.fp-consent :focus-visible {
	outline: 3px solid var(--c-green, #046a38);
	outline-offset: 2px;
}

@media (min-width: 640px) {
	.fp-consent {
		right: auto;
		left: 24px;
		bottom: 24px;
	}
}
