/* ==========================================================================
   RM SP Cookies : interface tarteaucitron à la charte Singuliers Pluriel
   Feuille autonome : la CSS d'origine de tarteaucitron n'est plus chargée,
   tout l'habillage (barre, panneau, encarts) est défini ici, mobile d'abord.
   Jetons --sp-* : Breakdance (collection « SP Tokens »), avec valeurs de repli.
   ========================================================================== */

#tarteaucitronRoot,
.tac_activate {
	--tac-encre: var(--sp-encre, #100c08);
	--tac-blanc: var(--sp-blanc, #fff);
	--tac-papier: var(--sp-papier, #f2f1ee);
	--tac-filet: var(--sp-filet, #dedcd6);
	--tac-gris: var(--sp-gris, #55554f);
	--tac-rose: var(--sp-rose, #f5b3c4);
	--tac-focus: var(--sp-focus, #526db3);
	--tac-ease: var(--sp-ease, cubic-bezier(.2, .7, .2, 1));
	--tac-radius: var(--sp-radius-sm, 6px);
	--tac-texte: 'Avenir Next', Avenir, 'Nunito Sans', 'Helvetica Neue', Arial, sans-serif;
	--tac-titre: 'Unbounded', 'Avenir Next', Avenir, sans-serif;
	--tac-gutter: 20px;
}

@media (min-width: 768px) {
	#tarteaucitronRoot { --tac-gutter: 32px; }
}

/* --------------------------------------------------------------------------
   0. Socle
   -------------------------------------------------------------------------- */

#tarteaucitronRoot,
#tarteaucitronRoot *,
#tarteaucitronRoot *::before,
#tarteaucitronRoot *::after {
	box-sizing: border-box;
}

#tarteaucitronRoot {
	position: relative;
	z-index: 2147483640;
	font-family: var(--tac-texte);
	font-size: 15px;
	line-height: 1.55;
	color: var(--tac-encre);
	text-align: left;
	-webkit-font-smoothing: antialiased;
}

#tarteaucitronRoot button {
	font: inherit;
	color: inherit;
	letter-spacing: normal;
	text-transform: none;
	background: none;
	border: 0;
	border-radius: 0;
	margin: 0;
	padding: 0;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}

#tarteaucitronRoot ul,
#tarteaucitronRoot li {
	list-style: none;
	margin: 0;
	padding: 0;
}

#tarteaucitronRoot a {
	color: inherit;
}

#tarteaucitronRoot p {
	margin: 0;
}

#tarteaucitronRoot button:focus-visible,
#tarteaucitronRoot a:focus-visible,
.tac_activate button:focus-visible {
	outline: 3px solid var(--tac-focus);
	outline-offset: 3px;
}

.tac_visually-hidden {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.tarteaucitron-modal-open #tac_title,
#tarteaucitronRoot #tarteaucitronPercentage,
#tarteaucitronRoot #tarteaucitronAlertSmall,
#tarteaucitronRoot #tarteaucitronIcon,
#tarteaucitronRoot .tarteaucitronHidden,
#tarteaucitronRoot .tarteaucitronCheck,
#tarteaucitronRoot .tarteaucitronCross,
#tarteaucitronRoot #tarteaucitronInfo br,
#tarteaucitronRoot .clear {
	display: none;
}

/* Les catégories qui contiennent un service sont affichées en ligne par le script */
#tarteaucitronRoot li.tarteaucitronHidden[style*="block"] {
	display: block;
}

html.tarteaucitron-modal-open-noscroll,
body.tarteaucitron-modal-open {
	overflow: hidden;
}

/* Boutons « pilule » partagés */
#tarteaucitronRoot .tarteaucitronCTAButton,
#tarteaucitronRoot .tarteaucitronAsk .tarteaucitronAllow,
#tarteaucitronRoot .tarteaucitronAsk .tarteaucitronDeny,
#tarteaucitronRoot #tarteaucitronSaveButton {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 12px 22px;
	border: 1.5px solid var(--tac-encre);
	border-radius: 999px;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.1;
	text-align: center;
	white-space: nowrap;
	color: var(--tac-encre);
	background: transparent;
	transition: background-color .3s var(--tac-ease), border-color .3s var(--tac-ease), color .3s var(--tac-ease);
}

#tarteaucitronRoot .tarteaucitronCTAButton.tarteaucitronAllow,
#tarteaucitronRoot #tarteaucitronSaveButton,
#tarteaucitronRoot .tarteaucitronIsAllowed .tarteaucitronAsk .tarteaucitronAllow,
#tarteaucitronRoot .tarteaucitronIsDenied .tarteaucitronAsk .tarteaucitronDeny,
#tarteaucitronRoot .tarteaucitronAsk .tarteaucitronIsSelected {
	background: var(--tac-encre);
	color: var(--tac-blanc);
}

@media (hover: hover) {
	#tarteaucitronRoot .tarteaucitronCTAButton:hover,
	#tarteaucitronRoot .tarteaucitronAsk .tarteaucitronAllow:hover,
	#tarteaucitronRoot .tarteaucitronAsk .tarteaucitronDeny:hover,
	#tarteaucitronRoot #tarteaucitronSaveButton:hover {
		background: var(--tac-rose);
		border-color: var(--tac-rose);
		color: var(--tac-encre);
	}
}

/* Liens texte soulignés (Personnaliser, En savoir plus) */
#tarteaucitronRoot #tarteaucitronCloseAlert,
#tarteaucitronRoot #tarteaucitronPrivacyUrl,
#tarteaucitronRoot #tarteaucitronPrivacyUrlDialog,
#tarteaucitronRoot .tarteaucitronReadmoreInfo,
#tarteaucitronRoot .tarteaucitronReadmoreOfficial {
	font-size: 14px;
	font-weight: 600;
	line-height: 1.3;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 4px;
	transition: text-decoration-color .3s var(--tac-ease), text-decoration-thickness .3s var(--tac-ease);
}

@media (hover: hover) {
	#tarteaucitronRoot #tarteaucitronCloseAlert:hover,
	#tarteaucitronRoot #tarteaucitronPrivacyUrl:hover,
	#tarteaucitronRoot #tarteaucitronPrivacyUrlDialog:hover,
	#tarteaucitronRoot .tarteaucitronReadmoreInfo:hover,
	#tarteaucitronRoot .tarteaucitronReadmoreOfficial:hover {
		text-decoration-color: var(--tac-rose);
		text-decoration-thickness: 3px;
	}
}

/* --------------------------------------------------------------------------
   1. Barre en bas de page (premier niveau) — mobile d'abord
   -------------------------------------------------------------------------- */

#tarteaucitronRoot #tarteaucitronAlertBig {
	display: none;
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 2147483641;
	width: 100%;
	max-height: 100vh;
	max-height: 100dvh;
	overflow-y: auto;
	overscroll-behavior: contain;
	margin: 0;
	padding: 18px var(--tac-gutter) calc(18px + env(safe-area-inset-bottom, 0px));
	background: var(--tac-papier);
	border-top: 1px solid var(--tac-filet);
	box-shadow: 0 -12px 40px rgba(16, 12, 8, .08);
	animation: spTacMonte .5s var(--tac-ease) both;
}

/* Affichée par le script (style en ligne « display: block ») : on passe en grille */
#tarteaucitronRoot #tarteaucitronAlertBig[style*="display: block"] {
	display: grid !important;
	grid-template-columns: 1fr 1fr;
	grid-template-areas:
		"texte texte"
		"refus accord"
		"perso infos";
	gap: 12px;
	align-items: center;
}

#tarteaucitronRoot #tarteaucitronDisclaimerAlert {
	grid-area: texte;
	display: block;
	margin: 0 0 4px;
	font-size: 14px;
	line-height: 1.55;
}

#tarteaucitronRoot #tarteaucitronDisclaimerAlert::before {
	content: "cookies";
	display: block;
	margin-bottom: 4px;
	font-family: var(--tac-titre);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .02em;
}

#tarteaucitronRoot #tarteaucitronAllDenied2 { grid-area: refus; }
#tarteaucitronRoot #tarteaucitronPersonalize2 { grid-area: accord; }
#tarteaucitronRoot #tarteaucitronCloseAlert { grid-area: perso; justify-self: start; padding: 6px 0; }
#tarteaucitronRoot #tarteaucitronPrivacyUrl { grid-area: infos; justify-self: end; padding: 6px 0; }

#tarteaucitronRoot #tarteaucitronAlertBig .tarteaucitronCTAButton {
	width: 100%;
	min-width: 0;
	padding-left: 12px;
	padding-right: 12px;
}

/* Tablette et plus : texte à gauche, actions alignées à droite */
@media (min-width: 768px) {
	#tarteaucitronRoot #tarteaucitronAlertBig {
		padding: 20px var(--sp-marge, var(--tac-gutter)) calc(20px + env(safe-area-inset-bottom, 0px));
	}
	#tarteaucitronRoot #tarteaucitronAlertBig[style*="display: block"] {
		grid-template-columns: minmax(0, 1fr) auto auto auto auto;
		grid-template-areas: "texte infos perso refus accord";
		column-gap: 20px;
	}
	#tarteaucitronRoot #tarteaucitronDisclaimerAlert {
		max-width: 68ch;
		margin: 0 24px 0 0;
		font-size: 15px;
	}
	#tarteaucitronRoot #tarteaucitronAlertBig .tarteaucitronCTAButton {
		width: auto;
		min-width: 148px;
		padding-left: 22px;
		padding-right: 22px;
	}
	#tarteaucitronRoot #tarteaucitronPrivacyUrl { justify-self: start; }
}

/* Entre 768 et 1100 px : le texte passe au-dessus des actions */
@media (min-width: 768px) and (max-width: 1099px) {
	#tarteaucitronRoot #tarteaucitronAlertBig[style*="display: block"] {
		grid-template-columns: 1fr auto auto auto auto;
		grid-template-areas:
			"texte texte texte texte texte"
			". infos perso refus accord";
		row-gap: 14px;
	}
	#tarteaucitronRoot #tarteaucitronDisclaimerAlert {
		max-width: none;
		margin: 0;
	}
}

@keyframes spTacMonte {
	from { transform: translateY(100%); }
	to { transform: none; }
}

/* Panneau ouvert : la barre passe sous le voile */
body.tarteaucitron-modal-open #tarteaucitronRoot #tarteaucitronAlertBig {
	z-index: 2147483641;
}

/* --------------------------------------------------------------------------
   2. Panneau « Personnaliser » (second niveau)
   -------------------------------------------------------------------------- */

#tarteaucitronRoot #tarteaucitronBack {
	display: none;
	position: fixed;
	inset: 0;
	z-index: 2147483645;
	background: var(--tac-encre);
}

/* Mobile : plein écran */
#tarteaucitronRoot #tarteaucitron {
	display: none;
	position: fixed;
	inset: 0 !important;
	z-index: 2147483646;
	width: 100%;
	height: 100%;
	max-height: none;
	margin: 0;
	padding: 0;
	background: var(--tac-papier);
	overflow: hidden;
}

#tarteaucitronRoot #tarteaucitron[style*="display: block"] {
	display: flex !important;
	flex-direction: column;
}

/* « Fermer » : en tête fixe du panneau, hors de la zone défilante */
#tarteaucitronRoot #tarteaucitronClosePanel {
	position: static;
	flex: 0 0 auto;
	align-self: flex-end;
	margin: calc(14px + env(safe-area-inset-top, 0px)) var(--tac-gutter) 0;
	min-height: 38px;
	padding: 8px 16px;
	border: 1.5px solid var(--tac-encre);
	border-radius: 999px;
	background: var(--tac-papier);
	font-size: 13px;
	font-weight: 700;
	line-height: 1;
}

@media (hover: hover) {
	#tarteaucitronRoot #tarteaucitronClosePanel:hover {
		background: var(--tac-rose);
		border-color: var(--tac-rose);
	}
}

/* Zone défilante (le script lui impose une hauteur en ligne : on la neutralise) */
#tarteaucitronRoot #tarteaucitronServices {
	flex: 1 1 auto;
	height: auto !important;
	min-height: 0;
	overflow-x: hidden !important;
	overflow-y: auto;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
	padding: 4px var(--tac-gutter) 0;
	background: var(--tac-papier);
}

/* En-tête : titre, texte, « Tout accepter / Tout refuser » */
#tarteaucitronRoot #tarteaucitronMainLineOffset {
	display: block;
	margin: 0;
	padding: 0 0 20px;
	border: 0;
	border-bottom: 1px solid var(--tac-filet);
}

#tarteaucitronRoot #dialogTitle {
	display: block;
	margin: 0 0 14px;
	font-family: var(--tac-titre);
	font-size: 22px;
	font-weight: 600;
	line-height: 1.15;
	text-transform: lowercase;
}

#tarteaucitronRoot #tarteaucitronInfo {
	margin: 0 0 18px;
	font-size: 14px;
	line-height: 1.6;
	color: var(--tac-gris);
}

#tarteaucitronRoot #tarteaucitronInfo p {
	display: inline;
}

#tarteaucitronRoot #tarteaucitronPrivacyUrlDialog {
	display: inline;
	margin-left: 4px;
	font-size: 14px;
	color: var(--tac-encre);
}

#tarteaucitronRoot #tarteaucitronMainLineOffset .tarteaucitronName {
	margin: 0 0 10px;
}

#tarteaucitronRoot #tarteaucitronMainLineOffset .tarteaucitronH2 {
	display: block;
	font-size: 14px;
	font-weight: 700;
}

#tarteaucitronRoot .tarteaucitronAsk {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
	width: 100%;
}

#tarteaucitronRoot .tarteaucitronAsk button {
	width: 100%;
	min-width: 0;
	padding-left: 12px;
	padding-right: 12px;
}

/* Catégories */
#tarteaucitronRoot .tarteaucitronBorder {
	border: 0;
}

#tarteaucitronRoot .tarteaucitronBorder > ul > li {
	padding: 18px 0 0;
	border-bottom: 1px solid var(--tac-filet);
}

#tarteaucitronRoot .tarteaucitronTitle {
	margin: 0 0 6px;
}

#tarteaucitronRoot .tarteaucitronTitle button {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	padding: 4px 0;
	font-family: var(--tac-titre);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.25;
	text-align: left;
	text-transform: lowercase;
}

#tarteaucitronRoot .tarteaucitronPlus {
	position: relative;
	flex: 0 0 22px;
	width: 22px;
	height: 22px;
	border: 1.5px solid var(--tac-encre);
	border-radius: 50%;
}

#tarteaucitronRoot .tarteaucitronPlus::before,
#tarteaucitronRoot .tarteaucitronPlus::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 9px;
	height: 1.5px;
	background: var(--tac-encre);
	transform: translate(-50%, -50%);
	transition: transform .3s var(--tac-ease);
}

#tarteaucitronRoot .tarteaucitronPlus::after {
	transform: translate(-50%, -50%) rotate(90deg);
}

#tarteaucitronRoot .catToggleBtn[aria-expanded="true"] .tarteaucitronPlus::after {
	transform: translate(-50%, -50%) rotate(0deg);
}

/* Cookies nécessaires : pas de bouton à déplier, pas de pastille */
#tarteaucitronRoot #tarteaucitronServicesTitle_mandatory .tarteaucitronPlus {
	display: none;
}

#tarteaucitronRoot #tarteaucitronServicesTitle_mandatory .tarteaucitronTitle button {
	cursor: default;
}

/* Texte d'explication d'une catégorie (déplié par le script) */
#tarteaucitronRoot .tarteaucitronDetails {
	display: none;
	margin: 0 0 8px;
	font-size: 13px;
	line-height: 1.55;
	color: var(--tac-gris);
}

/* Lignes de services */
#tarteaucitronRoot .tarteaucitronLine {
	display: grid;
	gap: 12px;
	padding: 12px 0 18px 14px;
	border-left: 3px solid var(--tac-filet);
	margin-bottom: 14px;
	transition: border-color .3s var(--tac-ease);
}

#tarteaucitronRoot .tarteaucitronLine.tarteaucitronIsAllowed {
	border-left-color: var(--tac-encre);
}

#tarteaucitronRoot #tarteaucitronServices_mandatory .tarteaucitronLine {
	padding-top: 2px;
	padding-bottom: 2px;
	margin-bottom: 18px;
	border-left-color: var(--tac-encre);
}

#tarteaucitronRoot #tarteaucitronServices_mandatory .tarteaucitronListCookies,
#tarteaucitronRoot #tarteaucitronServices_mandatory br {
	display: none;
}

#tarteaucitronRoot .tarteaucitronLine .tarteaucitronName {
	min-width: 0;
}

#tarteaucitronRoot .tarteaucitronLine .tarteaucitronH3 {
	display: block;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.35;
}

#tarteaucitronRoot #tarteaucitronServices_mandatory .tarteaucitronH3 {
	font-size: 14px;
	font-weight: 400;
	line-height: 1.6;
	color: var(--tac-gris);
}

#tarteaucitronRoot .tarteaucitronStatusInfo {
	margin: 2px 0 6px;
	font-size: 13px;
	line-height: 1.5;
	color: var(--tac-gris);
}

#tarteaucitronRoot .tarteaucitronLine .tarteaucitronReadmoreInfo,
#tarteaucitronRoot .tarteaucitronLine .tarteaucitronReadmoreOfficial {
	font-size: 13px;
}

#tarteaucitronRoot .tarteaucitronReadmoreSeparator {
	margin: 0 4px;
	color: var(--tac-gris);
}

#tarteaucitronRoot #tarteaucitronNoServicesTitle {
	border: 0;
	padding: 18px 0;
	font-size: 14px;
	color: var(--tac-gris);
}

/* Pied du panneau : « Enregistrer » collé en bas de la zone défilante */
#tarteaucitronRoot #tarteaucitronSave {
	position: sticky;
	bottom: 0;
	z-index: 2;
	margin: 0 calc(-1 * var(--tac-gutter));
	padding: 14px var(--tac-gutter) calc(14px + env(safe-area-inset-bottom, 0px));
	background: var(--tac-papier);
	border-top: 1px solid var(--tac-filet);
}

#tarteaucitronRoot #tarteaucitronSaveButton {
	width: 100%;
}

/* Tablette et plus : fenêtre centrée */
@media (min-width: 768px) {
	#tarteaucitronRoot #tarteaucitron {
		inset: auto !important;
		top: 50% !important;
		left: 50% !important;
		width: min(720px, calc(100% - 64px));
		height: auto;
		max-height: min(760px, calc(100dvh - 64px));
		border-radius: var(--tac-radius);
		box-shadow: 0 30px 80px rgba(16, 12, 8, .3);
		transform: translate(-50%, -50%);
	}
	#tarteaucitronRoot #dialogTitle {
		font-size: 26px;
	}
	#tarteaucitronRoot #tarteaucitronClosePanel {
		margin-top: 20px;
	}
	#tarteaucitronRoot #tarteaucitronMainLineOffset {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-areas:
			"titre titre"
			"info info"
			"nom choix";
		column-gap: 20px;
		align-items: center;
	}
	#tarteaucitronRoot #dialogTitle { grid-area: titre; }
	#tarteaucitronRoot #tarteaucitronInfo { grid-area: info; }
	#tarteaucitronRoot #tarteaucitronMainLineOffset .tarteaucitronName { grid-area: nom; margin: 0; }
	#tarteaucitronRoot #tarteaucitronMainLineOffset .tarteaucitronAsk { grid-area: choix; }
	#tarteaucitronRoot .tarteaucitronLine {
		grid-template-columns: minmax(0, 1fr) auto;
		align-items: center;
		gap: 20px;
	}
	#tarteaucitronRoot #tarteaucitronServices_mandatory .tarteaucitronLine {
		grid-template-columns: 1fr;
	}
	#tarteaucitronRoot .tarteaucitronAsk {
		width: auto;
		grid-template-columns: auto auto;
	}
	#tarteaucitronRoot .tarteaucitronAsk button {
		width: auto;
		min-width: 120px;
		padding-left: 18px;
		padding-right: 18px;
	}
	#tarteaucitronRoot #tarteaucitronSave {
		text-align: right;
	}
	#tarteaucitronRoot #tarteaucitronSaveButton {
		width: auto;
		min-width: 160px;
	}
}

@media (prefers-reduced-motion: reduce) {
	#tarteaucitronRoot #tarteaucitronAlertBig {
		animation: none;
	}
	#tarteaucitronRoot *,
	#tarteaucitronRoot *::before,
	#tarteaucitronRoot *::after {
		transition: none !important;
	}
}

/* --------------------------------------------------------------------------
   3. Encart à la place d'un contenu bloqué (carte, vidéo)
   -------------------------------------------------------------------------- */

.sp-tac-embed {
	width: 100%;
	height: 100%;
	min-height: 220px;
}

.sp-tac-embed iframe {
	display: block;
	width: 100% !important;
	height: 100% !important;
	min-height: 220px;
	border: 0;
}

.tac_activate {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	min-height: 220px;
	padding: 24px;
	background: var(--tac-papier);
	border: 1px solid var(--tac-filet);
	border-radius: var(--tac-radius);
	font-family: var(--tac-texte);
	text-align: center;
	color: var(--tac-encre);
}

.tac_activate .tac_float {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
	max-width: 32ch;
	font-size: 14px;
	line-height: 1.5;
	color: var(--tac-encre);
}

.tac_activate .tac_float * {
	color: inherit;
}

.tac_activate .tarteaucitronCheck {
	display: none;
}

.tac_activate .tac_float .tarteaucitronAllow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	margin: 0;
	padding: 11px 20px;
	background: var(--tac-encre);
	border: 0;
	border-radius: 999px;
	font: inherit;
	font-size: 14px;
	font-weight: 700;
	line-height: 1;
	color: var(--tac-blanc);
	cursor: pointer;
	transition: background-color .3s var(--tac-ease), color .3s var(--tac-ease);
}

@media (hover: hover) {
	.tac_activate .tac_float .tarteaucitronAllow:hover {
		background: var(--tac-rose);
		color: var(--tac-encre);
	}
}
