/* Bandeau de consentement. Couleurs injectées par l'administration (variables --cc-*). */
.sf-cc {
	position: fixed;
	z-index: 99990;
	bottom: var(--space-m, 2.4rem);
	color: var(--cc-text, #1c1e1c);
	font-size: var(--text-s, 1.4rem);
	line-height: 1.6;
	text-align: left;
}
.sf-cc[hidden] { display: none; }
.sf-cc--center { left: 50%; transform: translateX(-50%); width: min(64rem, calc(100% - 2 * var(--space-s, 1.6rem))); }
.sf-cc--left { left: var(--space-m, 2.4rem); width: min(44rem, calc(100% - 2 * var(--space-s, 1.6rem))); }
.sf-cc--bar { left: 0; right: 0; bottom: 0; }

.sf-cc__box {
	padding: var(--space-m, 2.4rem);
	background: var(--cc-bg, #fff8ef);
	border-top: 3px solid var(--cc-accent, #777944);
	border-radius: var(--radius-s, 2px);
	box-shadow: 0 1.2rem 4.8rem rgba(28, 30, 28, 0.18);
}
.sf-cc--bar .sf-cc__box {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-s, 1.6rem) var(--space-l, 3.2rem);
	border-radius: 0;
	padding: var(--space-s, 1.6rem) var(--space-l, 3.2rem);
	padding-bottom: calc(var(--space-s, 1.6rem) + env(safe-area-inset-bottom, 0px));
}
.sf-cc--bar .sf-cc__content { flex: 1 1 36rem; }
.sf-cc--bar .sf-cc__prefs { flex: 1 1 100%; order: 3; }

.sf-cc__title {
	margin: 0 0 0.4rem;
	font-size: var(--text-l, 2rem);
	font-weight: 400;
	line-height: 1.25;
	color: inherit;
}
.sf-cc__text { margin: 0 0 var(--space-s, 1.6rem); color: inherit; }
.sf-cc--bar .sf-cc__text { margin: 0; }
.sf-cc__text a { color: var(--cc-accent, #777944); text-decoration: underline; text-underline-offset: 0.2em; }

.sf-cc__prefs {
	display: flex;
	flex-direction: column;
	gap: var(--space-xs, 1rem);
	margin: 0 0 var(--space-s, 1.6rem);
	padding: var(--space-s, 1.6rem) 0;
	border-top: 1px solid rgba(28, 30, 28, 0.12);
	border-bottom: 1px solid rgba(28, 30, 28, 0.12);
}
.sf-cc__prefs[hidden] { display: none; }
.sf-cc__cat { display: flex; gap: 1rem; align-items: flex-start; cursor: pointer; }
.sf-cc__cat input { margin-top: 0.4rem; accent-color: var(--cc-accent, #777944); width: 1.6rem; height: 1.6rem; flex-shrink: 0; }
.sf-cc__cat strong { display: block; font-weight: 700; }

.sf-cc__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: var(--space-xs, 1rem); }
.sf-cc__btn {
	padding: 1rem 1.8rem;
	border: 0;
	border-radius: var(--radius-s, 2px);
	background: var(--cc-btn, #777944);
	color: var(--cc-btn-text, #fff8ef);
	font: inherit;
	font-size: var(--text-xs, 1.2rem);
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	white-space: nowrap;
	cursor: pointer;
	transition: filter 0.2s;
}
.sf-cc__btn:hover { filter: brightness(0.9); }
.sf-cc__link {
	margin-right: auto;
	padding: 0;
	border: 0;
	background: none;
	color: inherit;
	font: inherit;
	text-decoration: underline;
	text-underline-offset: 0.2em;
	cursor: pointer;
}
.sf-cc__btn[hidden], .sf-cc__link[hidden] { display: none; }
.sf-cc button:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }

@media (max-width: 478px) {
	.sf-cc, .sf-cc--center, .sf-cc--left { left: 0; right: 0; bottom: 0; width: 100%; transform: none; }
	.sf-cc__box { border-radius: 0; padding-bottom: calc(var(--space-m, 2.4rem) + env(safe-area-inset-bottom, 0px)); }
	.sf-cc__btn { flex: 1 1 100%; white-space: normal; }
	.sf-cc__link { margin: 0 auto; order: 5; }
}
@media (prefers-reduced-motion: reduce) { .sf-cc__btn { transition: none; } }
