/* Sagamento : bannière de consentement aux cookies (couleurs, police et boutons du thème). */

.sg-consent {
	position: fixed;
	z-index: 100000;
	font-size: 15px;
	line-height: 1.55;
	color: var(--sg-text, #1f2937);
}
.sg-consent[hidden] { display: none; }

.sg-consent-box {
	background: var(--sg-bg, #fff);
	border: 1px solid var(--sg-border, #e5e7eb);
	border-radius: var(--sg-radius, 12px);
	box-shadow: 0 18px 50px rgba(15, 23, 42, .22);
	padding: 22px 24px;
	max-height: calc(100vh - 32px);
	max-height: calc(100dvh - 32px);
	overflow-y: auto;
	box-sizing: border-box;
}

/* Encadré dans un coin (par défaut) */
.sg-consent { bottom: 16px; left: 16px; right: 16px; }
.sg-consent-is-box .sg-consent-box { max-width: 420px; }
@media (min-width: 641px) {
	.sg-consent-is-box.sg-consent-left { right: auto; }
	.sg-consent-is-box.sg-consent-right { left: auto; }
}

/* Barre en bas */
.sg-consent.sg-consent-is-bar { left: 0; right: 0; bottom: 0; }
.sg-consent-is-bar .sg-consent-box {
	max-width: none;
	border-radius: 0;
	border-width: 1px 0 0;
	padding: 18px max(24px, calc((100% - var(--sg-container, 1200px)) / 2));
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 6px 32px;
	align-items: center;
}
.sg-consent-is-bar .sg-consent-title,
.sg-consent-is-bar .sg-consent-text { grid-column: 1; }
.sg-consent-is-bar .sg-consent-actions { grid-column: 2; grid-row: 1 / span 2; margin-top: 0; }
.sg-consent-is-bar.has-prefs .sg-consent-box { display: block; }
.sg-consent-is-bar.has-prefs .sg-consent-actions { margin-top: 16px; }
.sg-consent-is-bar .sg-consent-prefs { max-width: 760px; }
.sg-consent-is-bar .sg-consent-btn,
#sg-consent.sg-consent-is-bar .sg-consent-btn.sg-consent-btn-link { flex: 0 0 auto; }

/* Fenêtre centrée */
.sg-consent.sg-consent-is-modal {
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
	background: rgba(15, 23, 42, .55);
}
.sg-consent.sg-consent-is-modal[hidden] { display: none; }
.sg-consent-is-modal .sg-consent-box { max-width: 560px; }

/* Contenu */
.sg-consent-title {
	margin: 0 0 6px;
	font-family: var(--sg-font-headings, inherit);
	font-size: 1.1em;
	font-weight: 700;
	/* Même couleur que le texte de la bannière : la couleur « secondaire » du site peut être claire. */
	color: inherit;
}
.sg-consent-text p { margin: 0; }
.sg-consent-text a { color: var(--sg-primary); text-decoration: underline; }

.sg-consent-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 16px;
}
/* « Tout refuser » et « Tout accepter » : même forme, même taille, même couleur (CNIL). */
.sg-consent .sg-consent-btn {
	flex: 1 1 140px;
	margin: 0;
	padding: 11px 18px;
	font-size: 14px;
	white-space: nowrap;
}
.sg-consent .sg-consent-btn[hidden],
.sg-consent-reopen[hidden] { display: none !important; }
/* Boutons « lien » : plus forts que le style global des boutons du thème. */
#sg-consent .sg-consent-btn.sg-consent-btn-link {
	flex: 1 1 100%;
	background: transparent;
	border-color: transparent;
	box-shadow: none;
	color: var(--sg-primary);
	text-decoration: underline;
	padding: 6px;
	transform: none;
}
#sg-consent .sg-consent-btn.sg-consent-btn-link:hover { background: transparent; border-color: transparent; color: var(--sg-secondary, var(--sg-primary)); }

/* Préférences */
.sg-consent-prefs { margin-top: 14px; border-top: 1px solid var(--sg-border, #e5e7eb); }
.sg-consent-prefs[hidden] { display: none; }
.sg-consent-cat { padding: 12px 0; border-bottom: 1px solid var(--sg-border, #e5e7eb); }
.sg-consent-cat p { margin: 4px 0 0; font-size: 13px; color: var(--sg-muted, #6b7280); }
.sg-consent-cat-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.sg-consent-cat-head label { cursor: pointer; }
.sg-consent-services { display: block; margin-top: 2px; font-style: italic; }
.sg-consent-always { font-size: 12px; font-weight: 600; color: var(--sg-muted, #6b7280); }

.sg-consent-switch { position: relative; flex: none; width: 42px; height: 24px; }
.sg-consent-switch input {
	position: absolute; inset: 0; width: 100%; height: 100%;
	margin: 0; opacity: 0; cursor: pointer; z-index: 1;
}
.sg-consent-switch span {
	position: absolute; inset: 0; border-radius: 99px;
	background: var(--sg-border, #cbd5e1);
	transition: background .15s ease;
}
.sg-consent-switch span::after {
	content: ""; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px;
	border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(0, 0, 0, .25);
	transition: transform .15s ease;
}
.sg-consent-switch input:checked + span { background: var(--sg-accent, var(--sg-primary)); }
.sg-consent-switch input:checked + span::after { transform: translateX(18px); }
.sg-consent-switch input:focus-visible + span { outline: 2px solid var(--sg-primary); outline-offset: 2px; }

/* Bouton « Cookies » permanent */
body .sg-consent-reopen.sg-icon-btn {
	position: fixed;
	bottom: 16px;
	z-index: 9990;
	width: var(--sg-cookie-btn-size, 44px);
	height: var(--sg-cookie-btn-size, 44px);
	padding: 0;
	border-radius: 50%;
	background: var(--sg-cookie-btn-bg-final, var(--sg-cookie-btn-bg, var(--sg-bg, #fff)));
	color: var(--sg-cookie-btn-fg-final, var(--sg-cookie-btn-fg, #1f2937));
	border: 1px solid var(--sg-border, #e5e7eb);
	box-shadow: 0 4px 14px rgba(15, 23, 42, .18);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: transform .15s ease;
}
body .sg-consent-reopen.sg-icon-btn svg { width: 50%; height: 50%; }
body .sg-consent-reopen.sg-consent-reopen-text {
	width: auto;
	height: auto;
	min-height: calc(var(--sg-cookie-btn-size, 44px) * .8);
	padding: 0 16px;
	border-radius: 99px;
	font-size: 13px;
	font-weight: 600;
}
.sg-consent-reopen-left { left: 16px; }
.sg-consent-reopen-right { right: 16px; }
body .sg-consent-reopen.sg-icon-btn:hover,
body .sg-consent-reopen.sg-icon-btn:focus-visible {
	transform: translateY(-2px);
	background: var(--sg-cookie-btn-hover-bg-final, var(--sg-cookie-btn-bg-final, var(--sg-bg, #fff)));
	color: var(--sg-cookie-btn-hover-fg-final, var(--sg-cookie-btn-fg-final, #1f2937));
}
body .sg-consent-reopen.sg-icon-btn span { color: inherit; }

/* Vidéos et cartes en attente d'accord */
.sg-embed-blocked {
	position: relative;
	width: 100%;
	max-width: 100%;
	min-height: 200px;
	margin: 0 0 1.5em;
	background: var(--sg-surface, #f3f4f6);
	border: 1px solid var(--sg-border, #e5e7eb);
	border-radius: var(--sg-radius, 8px);
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	box-sizing: border-box;
}
.sg-embed-ph { padding: 20px; max-width: 460px; }
.sg-embed-ph p { margin: 0 0 12px; font-size: 14px; color: var(--sg-muted, #6b7280); }
.sg-embed-blocked .sg-embed-ph button.sg-embed-always {
	display: block !important;
	margin: 8px auto 0 !important;
	padding: 4px !important;
	background: transparent !important;
	border-color: transparent !important;
	box-shadow: none !important;
	color: var(--sg-primary) !important;
	font-size: 13px !important;
	text-decoration: underline;
}
.sg-consent-box:focus { outline: none; }
.sg-embed-loaded { position: relative; width: 100%; margin: 0 0 1.5em; }
.sg-embed-loaded iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

[data-theme="dark"] .sg-consent-box { box-shadow: 0 18px 50px rgba(0, 0, 0, .5); }

@media (max-width: 640px) {
	.sg-consent-is-bar .sg-consent-box { display: block; padding: 16px; }
	.sg-consent-box { padding: 18px; }
	.sg-consent .sg-consent-btn { flex: 1 1 120px; }
	.sg-consent-is-bar .sg-consent-btn { flex: 1 1 120px; }
	.sg-consent-is-bar .sg-consent-actions { margin-top: 14px; }
}

@media (prefers-reduced-motion: reduce) {
	.sg-consent-switch span, .sg-consent-switch span::after { transition: none; }
}

.sg-consent-current { margin: 10px 0 0; font-size: 13px; font-weight: 600; color: inherit; }
.sg-consent-current[hidden] { display: none; }
.sg-consent-is-bar .sg-consent-current { grid-column: 1; }

.sg-consent-note { margin: 0 0 12px; padding: 8px 12px; border-radius: 8px; background: #fdf3e2; color: #8a3f06; font-size: 13px; }


/* ------------------------------------------------------------------ Design de la fenêtre (réglages) */
.sg-consent { color: var(--sg-cookie-text, var(--sg-cookie-text-auto, var(--sg-text, #1f2937))); }
.sg-consent .sg-consent-box {
	background: var(--sg-cookie-bg, var(--sg-bg, #fff));
	border-color: var(--sg-cookie-border, var(--sg-border, #e5e7eb));
	border-radius: var(--sg-cookie-radius, var(--sg-radius, 12px));
}
.sg-consent-is-box .sg-consent-box { max-width: var(--sg-cookie-width, 420px); }
.sg-consent-is-modal .sg-consent-box { max-width: var(--sg-cookie-width, 560px); }
.sg-consent-is-bar .sg-consent-box { border-radius: 0; }
.sg-consent .sg-consent-title { color: var(--sg-cookie-title, inherit); }
.sg-consent .sg-consent-text a { color: var(--sg-cookie-link, var(--sg-primary)); }
#sg-consent .sg-consent-btn-link { color: var(--sg-cookie-link, var(--sg-primary)); }
#sg-consent .sg-consent-btn:not(.sg-consent-btn-link) {
	background: var(--sg-cookie-btn, var(--sg-accent, var(--sg-primary)));
	border-color: var(--sg-cookie-btn, var(--sg-accent, var(--sg-primary)));
	color: var(--sg-cookie-btn-text, var(--sg-cookie-btn-text-auto, var(--sg-accent-contrast, #fff)));
	border-radius: var(--sg-cookie-btn-radius, var(--sg-btn-radius, 8px));
}
#sg-consent .sg-consent-btn:not(.sg-consent-btn-link):hover,
#sg-consent .sg-consent-btn:not(.sg-consent-btn-link):focus-visible { filter: brightness(.92); }
#sg-consent.sg-consent-hover-custom .sg-consent-btn:not(.sg-consent-btn-link):hover,
#sg-consent.sg-consent-hover-custom .sg-consent-btn:not(.sg-consent-btn-link):focus-visible {
	filter: none;
	background: var(--sg-cookie-btn-hover, var(--sg-cookie-btn, var(--sg-accent, var(--sg-primary))));
	border-color: var(--sg-cookie-btn-hover, var(--sg-cookie-btn, var(--sg-accent, var(--sg-primary))));
	color: var(--sg-cookie-btn-hover-text, var(--sg-cookie-btn-text, var(--sg-cookie-btn-text-auto, var(--sg-accent-contrast, #fff))));
}
.sg-consent.sg-consent-is-modal { background: var(--sg-cookie-overlay, rgba(15, 23, 42, .55)); }

.sg-consent-shadow-none .sg-consent-box { box-shadow: none; }
.sg-consent-shadow-soft .sg-consent-box { box-shadow: 0 6px 20px rgba(15, 23, 42, .12); }
.sg-consent-shadow-medium .sg-consent-box { box-shadow: 0 18px 50px rgba(15, 23, 42, .22); }
.sg-consent-shadow-strong .sg-consent-box { box-shadow: 0 24px 70px rgba(15, 23, 42, .4); }

/* Image */
.sg-consent-media { line-height: 0; margin: 0 0 12px; }
.sg-consent-media img { display: block; width: var(--sg-cookie-img, 80px); max-width: 100%; height: auto; }
.sg-consent-img-left .sg-consent-box { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 18px; align-items: start; }
.sg-consent-img-left .sg-consent-box > * { grid-column: 2; }
.sg-consent-img-left .sg-consent-box > .sg-consent-media { grid-column: 1; grid-row: 1 / span 8; margin: 0; }
.sg-consent-is-bar.sg-consent-img-left .sg-consent-box { grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; }
.sg-consent-is-bar.sg-consent-img-left .sg-consent-title,
.sg-consent-is-bar.sg-consent-img-left .sg-consent-text { grid-column: 2; }
.sg-consent-is-bar.sg-consent-img-left .sg-consent-actions { grid-column: 3; grid-row: 1 / span 2; }
.sg-consent-is-bar.sg-consent-img-top .sg-consent-media { grid-column: 1; }
@media (max-width: 640px) {
	.sg-consent-img-left .sg-consent-box,
	.sg-consent-is-bar.sg-consent-img-left .sg-consent-box { display: block; }
	.sg-consent-img-left .sg-consent-media { margin: 0 0 12px; }
}

.sg-consent-img-left .sg-consent .sg-consent-btn,
#sg-consent.sg-consent-img-left .sg-consent-btn { flex-basis: 100px; }
@media (min-width: 641px) {
	.sg-consent-is-bar .sg-consent-actions { flex-wrap: nowrap; }
}
