/* Gestionnaire de cookies : voir inc/consent.php */
.kw-consent[hidden],
.kw-consent [hidden] { display: none !important; }

.kw-consent {
	position: fixed;
	z-index: 99999;
	left: 20px;
	bottom: 20px;
	width: min(560px, calc(100vw - 40px));
	max-height: calc(100vh - 40px);
	overflow-y: auto;
	padding: 22px 24px;
	border: 2px solid var(--navy, #102c47);
	border-radius: 20px;
	background: var(--cream, #faf9f3);
	color: var(--ink, #102c47);
	box-shadow: 0 18px 50px rgba(16, 44, 71, .28);
	font-family: 'DM Sans', Arial, sans-serif;
	font-size: 15px;
	line-height: 1.5;
}
.kw-consent h2 {
	margin: 0 0 8px;
	font-family: 'Manrope', Arial, sans-serif;
	font-size: 22px;
	font-weight: 800;
	letter-spacing: -.03em;
	line-height: 1.15;
}
.kw-consent h2:focus { outline: none; }
.kw-consent p { margin: 0 0 14px; }
.kw-consent a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

.kw-consent-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 16px;
}
.kw-btn {
	flex: 1 1 auto;
	min-height: 46px;
	padding: 11px 18px;
	border: 2px solid var(--navy, #102c47);
	border-radius: 999px;
	background: var(--navy, #102c47);
	color: #fff;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
	transition: background .2s, color .2s, transform .2s;
}
.kw-btn:hover { background: var(--gold, #ddff65); color: var(--navy, #102c47); }
.kw-btn-ghost { background: transparent; color: var(--navy, #102c47); }
.kw-btn:focus-visible,
.kw-switch input:focus-visible + span,
.kw-cookie-link:focus-visible { outline: 3px solid var(--coral, #ff795f); outline-offset: 2px; }

.kw-consent-row {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 18px;
	padding: 14px 0;
	border-top: 1px solid rgba(16, 44, 71, .15);
}
.kw-consent-row strong { display: block; margin-bottom: 2px; }
.kw-consent-row p { margin: 0; color: var(--muted, #576573); font-size: 13.5px; }
.kw-consent-always { flex: none; padding-top: 2px; font-size: 13px; font-weight: 700; color: var(--muted, #576573); white-space: nowrap; }

.kw-switch { position: relative; flex: none; width: 52px; height: 30px; cursor: pointer; }
.kw-switch input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.kw-switch span { position: absolute; inset: 0; border: 2px solid var(--navy, #102c47); border-radius: 999px; background: #fff; transition: background .2s; }
.kw-switch span::after { content: ''; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: var(--navy, #102c47); transition: transform .2s; }
.kw-switch input:checked + span { background: var(--gold, #ddff65); }
.kw-switch input:checked + span::after { transform: translateX(22px); }

/* Lien « Gérer les cookies » du pied de page */
.kw-cookie-link {
	padding: 0;
	border: 0;
	background: none;
	color: inherit;
	font: inherit;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}

/* Billetterie Billetweb : à afficher après accord */
.kw-embed-consent { padding: 8px 4px; }
.kw-embed-consent p { margin: 0 0 14px; }
.kw-embed-consent .text-link { display: inline-block; margin-left: 14px; }

@media (max-width: 600px) {
	.kw-consent { left: 10px; bottom: 10px; width: calc(100vw - 20px); padding: 18px; }
	.kw-btn { flex-basis: 100%; }
}
@media (prefers-reduced-motion: reduce) {
	.kw-btn, .kw-switch span, .kw-switch span::after { transition: none; }
}
