/* FreeCookie — bandeau de consentement. Neutre, accessible, sobre. */

#freecookie-root[hidden],
#freecookie-badge[hidden],
.fc-prefs[hidden],
.fc-about[hidden] { display: none !important; }

/* Texte réservé aux lecteurs d'écran (annonces aria-live). */
.fc-sr { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

.fc-banner {
	position: fixed;
	left: 50%;
	bottom: 20px;
	transform: translateX(-50%);
	/* Jamais plus de 70 % de la largeur ni 60 % de la hauteur de l'écran
	   (demande Stéphane 12/07 : bannière trop envahissante sur mobile),
	   avec des planchers d'accessibilité : 280px de large (toggles/boutons
	   utilisables) et 340px de haut (paysage mobile). */
	width: min(680px, max(280px, 70vw));
	max-height: max(60vh, 340px);
	/* Les boutons Accepter/Refuser restent TOUJOURS visibles : c'est la liste
	   des catégories qui défile à l'intérieur si l'écran est bas. */
	display: flex;
	flex-direction: column;
	overflow-y: auto;
	z-index: 2147483000;
	background: var(--fc-bg, #ffffff);
	color: var(--fc-text, #1a2430);
	border: 1px solid var(--fc-border, #e2e6ea);
	border-radius: 12px;
	box-shadow: 0 12px 40px rgba(20, 32, 45, .18);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	font-size: 15px;
	line-height: 1.55;
}

.fc-inner { padding: 22px 24px; display: flex; flex-direction: column; gap: 16px; flex: 1 1 auto; min-height: 0; }
.fc-title { margin: 0; font-size: 17px; font-weight: 700; letter-spacing: -.01em; }
.fc-desc { margin: 0; color: var(--fc-muted, #46535f); }

.fc-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.fc-actions .fc-btn { flex: 1 1 auto; }

.fc-btn {
	appearance: none;
	/* margin:0 en dur : des thèmes hôtes posent des marges sur <button> (Elementor
	   observé sur freeetv : marges héritées → boutons très écartés sur mobile). */
	margin: 0;
	border: 1.5px solid transparent;
	border-radius: 8px;
	padding: 11px 18px;
	font: inherit;
	font-weight: 600;
	line-height: 1.2;
	cursor: pointer;
	text-transform: none;
	letter-spacing: normal;
	text-align: center;
	transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
/* Au repos et au clic souris : AUCUN cadre parasite. Certains thèmes ajoutent
   un outline/box-shadow permanent aux <button> — on le neutralise pour ne pas
   empiler une 2e bordure sur la nôtre. L'anneau de focus n'apparaît qu'au clavier. */
#freecookie-banner .fc-btn { outline: none; box-shadow: none; }
#freecookie-banner .fc-btn:focus:not(:focus-visible) { outline: none !important; box-shadow: none !important; }
#freecookie-banner .fc-btn:focus-visible { outline: 2px solid var(--fc-accent, #1c7a6b); outline-offset: 2px; box-shadow: none; }
.fc-btn:focus-visible { outline: 2px solid var(--fc-accent, #1c7a6b); outline-offset: 2px; }

/* Même forme pour les trois ; Accepter et Refuser IDENTIQUES (parité CNIL),
   Personnaliser en contour. Id-scopé pour passer devant le style du thème. */
#freecookie-banner .fc-btn--primary { background: var(--fc-accent, #1c7a6b); color: var(--fc-accent-text, #fff); border-color: var(--fc-accent, #1c7a6b); }
#freecookie-banner .fc-btn--primary:hover { background: var(--fc-accent-deep, #124c43); border-color: var(--fc-accent-deep, #124c43); }
#freecookie-banner .fc-btn--secondary, #freecookie-banner .fc-btn--ghost { background: transparent; color: var(--fc-accent-deep, #124c43); border-color: var(--fc-accent, #1c7a6b); }
#freecookie-banner .fc-btn--secondary:hover, #freecookie-banner .fc-btn--ghost:hover { background: var(--fc-secondary-bg, #eef1f3); }

/* Préférences */
.fc-prefs { border-top: 1px solid var(--fc-border, #edf0f2); padding: 20px 24px 22px; display: flex; flex-direction: column; gap: 14px; }
.fc-prefs__title { margin: 0; font-size: 15px; font-weight: 700; }

/* Insularité : on empêche le thème du site de recolorer/agrandir les titres du
   bandeau. Le titre des préférences prend la couleur dominante (accent). */
#freecookie-banner .fc-title {
	color: var(--fc-text, #1a2430); font-size: 17px; line-height: 1.3; font-weight: 700;
	margin: 0; text-transform: none; letter-spacing: normal;
}
#freecookie-banner .fc-prefs__title {
	color: var(--fc-accent, #1c7a6b); font-size: 15px; line-height: 1.3; font-weight: 700;
	margin: 0; text-transform: none; letter-spacing: normal;
}
.fc-cats { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; overflow-y: auto; min-height: 0; flex: 1 1 auto; scrollbar-width: thin; }
.fc-cat { border: 1px solid var(--fc-border, #edf0f2); border-radius: 8px; padding: 12px 14px; }
.fc-cat__row { display: flex; align-items: center; justify-content: space-between; gap: 12px; cursor: pointer; }
.fc-cat__name { font-weight: 600; }
.fc-cat__lock { font-size: 12px; color: var(--fc-accent, #1c7a6b); font-weight: 600; margin-left: auto; margin-right: 10px; }
.fc-cat__desc { margin: 6px 0 0; font-size: 13px; color: var(--fc-muted, #6b7784); }
.fc-cat input[type="checkbox"] { width: 18px; height: 18px; accent-color: var(--fc-accent, #1c7a6b); flex: none; }

/* Services individuels (transparence + note + interrupteur) */
.fc-svcs { list-style: none; margin: 10px 0 0; padding: 0 0 0 12px; display: flex; flex-direction: column; gap: 10px; border-left: 2px solid var(--fc-border, #edf0f2); }
.fc-svc__row { display: flex; align-items: center; justify-content: space-between; gap: 10px; cursor: pointer; }
.fc-svc__main { display: flex; align-items: center; gap: 8px; min-width: 0; }
.fc-svc__name { font-weight: 600; font-size: 14px; }
.fc-svc__desc { margin: 3px 0 0; font-size: 12.5px; color: var(--fc-muted, #6b7784); }
/* 0.16.1 — service exempté du blocage a priori : même mention que la catégorie verrouillée */
.fc-svc__lock { font-size: 11px; margin-right: 6px; white-space: nowrap; }
.fc-svc input[type="checkbox"] { width: 16px; height: 16px; accent-color: var(--fc-accent, #1c7a6b); flex: none; }
.fc-svc input[disabled] { opacity: .45; }
.fc-score { font-size: 11px; font-weight: 700; padding: 1px 7px; border-radius: 100px; color: #fff; white-space: nowrap; }
/* La pastille est un bouton : clic → volet « Comprendre les cookies ». */
button.fc-score { border: 0; cursor: pointer; font-family: inherit; line-height: 1.5; }
button.fc-score:hover { box-shadow: 0 0 0 2px var(--fc-border, #e6e6e6); }
button.fc-score:focus-visible { outline: 2px solid var(--fc-accent, #1c7a6b); outline-offset: 2px; }
.fc-score--green { background: #1f9d55; }
.fc-score--orange { background: #cf8500; }
.fc-score--red { background: #d64545; }

/* Note « site propre » : le scan a tourné, aucun traceur tiers trouvé. */
.fc-note { display: flex; align-items: center; gap: 8px; margin: 0; padding: 9px 12px; border-radius: 8px; background: rgba(31, 157, 85, .09); color: var(--fc-text, #1a2430); font-size: 13px; line-height: 1.45; }
.fc-note__dot { flex: none; width: 9px; height: 9px; border-radius: 50%; background: #1f9d55; }

/* Fiches de détail par cookie (nom, durée, description) */
.fc-ck-details { margin-top: 6px; }
.fc-ck-details summary { cursor: pointer; font-size: 12.5px; font-weight: 600; color: var(--fc-accent-deep, #124c43); }
.fc-ck-details summary:hover { text-decoration: underline; }
.fc-ck { background: var(--fc-secondary-bg, #f3f5f7); border-radius: 8px; padding: 10px 12px; margin: 8px 0 0; font-size: 12.5px; line-height: 1.5; }
.fc-ck > div { display: grid; grid-template-columns: 92px 1fr; gap: 10px; padding: 2px 0; }
.fc-ck dt { font-weight: 700; color: var(--fc-muted, #6b7784); margin: 0; }
.fc-ck dd { margin: 0; }
.fc-ck code { font-size: 12px; background: rgba(0, 0, 0, .06); padding: 0 5px; border-radius: 4px; }
@media (max-width: 560px) { .fc-ck > div { grid-template-columns: 78px 1fr; } }
.fc-prefs__actions { display: flex; gap: 10px; justify-content: flex-end; }

/* Lien « À propos » (discret) + volet références / réseaux / don */
/* Lien(s) discret(s) alignés à GAUCHE sous la rangée de boutons (avant : collés à
   droite, ils chevauchaient le séparateur du panneau). Masqués quand un sous-panneau
   (éducatif / à propos) est ouvert : son propre bouton « Retour » gère le retour —
   éviter deux contrôles pour le même état. */
.fc-foot { margin-top: 4px; display: flex; gap: 16px; justify-content: flex-start; flex-wrap: wrap; }
/* Un sous-panneau (éducatif / à propos) REMPLACE le contenu principal : on masque
   .fc-inner pour éviter le chevauchement + le lien « à quoi servent les cookies »
   en doublon (le bouton « Retour » du panneau gère le retour). */
#freecookie-banner[data-fc-state="edu"] .fc-inner,
#freecookie-banner[data-fc-state="about"] .fc-inner { display: none; }
.fc-link { background: none; border: none; padding: 0; font: inherit; font-size: 11px; color: var(--fc-muted, #6b7784); opacity: .6; text-decoration: none; cursor: pointer; }
.fc-link:hover { opacity: 1; text-decoration: underline; text-underline-offset: 2px; }
/* Insularité : un « lien texte discret », jamais la pastille de bouton du thème
   (certains thèmes imposent bordure/fond/padding à tous les <button>). */
#freecookie-banner .fc-link {
	background: none; border: 0; box-shadow: none; padding: 0; margin: 0; min-height: 0; width: auto;
	font: inherit; font-size: 11px; font-weight: 400; line-height: 1.4; letter-spacing: normal;
	text-transform: none; border-radius: 0; color: var(--fc-muted, #6b7784); opacity: .6;
	text-decoration: none; cursor: pointer;
}
#freecookie-banner .fc-link:hover { background: none; opacity: 1; text-decoration: underline; text-underline-offset: 2px; }

/* Volet pédagogique « À quoi servent les cookies ? » (utile / mitigé / dangereux) */
.fc-edu[hidden] { display: none !important; }
.fc-edu { border-top: 1px solid var(--fc-border, #edf0f2); padding: 18px 24px 20px; display: flex; flex-direction: column; gap: 12px; }
#freecookie-banner .fc-edu__title { margin: 0; font-size: 15px; line-height: 1.3; font-weight: 700; color: var(--fc-accent, #1c7a6b); text-transform: none; letter-spacing: normal; }
.fc-edu__intro { margin: 0; color: var(--fc-muted, #46535f); font-size: 13.5px; line-height: 1.55; }
.fc-edu__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.fc-edu__item { display: flex; gap: 11px; align-items: flex-start; }
.fc-edu__item strong { display: block; font-size: 13.5px; margin-bottom: 2px; }
.fc-edu__item p { margin: 0; font-size: 12.5px; line-height: 1.5; color: var(--fc-muted, #6b7784); }
.fc-edu__dot { flex: none; width: 12px; height: 12px; border-radius: 50%; margin-top: 3px; }
.fc-edu__item--useful .fc-edu__dot { background: #1f9d55; }
.fc-edu__item--mixed .fc-edu__dot { background: #cf8500; }
.fc-edu__item--danger .fc-edu__dot { background: #d64545; }
.fc-edu__actions { display: flex; justify-content: flex-end; }

.fc-about { border-top: 1px solid var(--fc-border, #edf0f2); padding: 18px 24px 20px; display: flex; flex-direction: column; gap: 10px; }
#freecookie-banner .fc-about__title { margin: 0; font-size: 15px; line-height: 1.3; font-weight: 700; color: var(--fc-accent, #1c7a6b); text-transform: none; letter-spacing: normal; }
.fc-about__promo { margin: 0; color: var(--fc-muted, #46535f); font-size: 13.5px; line-height: 1.5; }
.fc-about__social { display: flex; flex-wrap: wrap; gap: 8px 14px; }
.fc-about__social a { color: var(--fc-accent-deep, #124c43); font-size: 14px; font-weight: 600; text-underline-offset: 2px; }
.fc-about__coffee { margin-top: 4px; }
.fc-about__coffee .fc-btn { display: inline-block; text-decoration: none; }
.fc-about__actions { margin-top: 4px; }
.fc-about__actions .fc-btn { align-self: flex-start; }

/* Badge de réouverture */
.fc-badge {
	position: fixed;
	left: 20px;
	bottom: 20px;
	z-index: 2147482000;
	width: 35px; height: 35px;
	padding: 0;
	border: none;
	background: none;
	cursor: pointer;
	line-height: 0;
	/* PAS de filter ici : sur iOS, un filter posé sur un élément position:fixed
	   casse son ancrage (bug WebKit) — l'ombre est portée par le SVG enfant. */
	opacity: 1;
	transition: transform .15s ease, opacity .3s ease;
}
.fc-badge .fc-cookie { filter: drop-shadow(0 4px 10px rgba(20, 32, 45, .28)); }
.fc-badge:hover { transform: translateY(-2px) rotate(-5deg); }
/* Estompé après un délai d'inactivité ; plein à l'approche / survol / focus. */
.fc-badge--dim { opacity: .5; }
#freecookie-badge:hover, #freecookie-badge:focus, #freecookie-badge.fc-badge--near { opacity: 1; }
/* On neutralise toute bordure/fond/outline que le thème appliquerait aux <button>,
   sans supprimer l'anneau de focus clavier (accessibilité). */
#freecookie-badge { border: none !important; background: none !important; padding: 0 !important; box-shadow: none; -webkit-tap-highlight-color: transparent; }
/* …et on blinde AUSSI les dimensions : les styles globaux de boutons de
   certains kits (Elementor « Boutons » : largeur/hauteur minimales, width 100%)
   gonflaient le badge en un grand rectangle — le cookie semblait alors flotter
   au milieu de l'écran. */
#freecookie-badge {
	width: 35px !important;
	height: 35px !important;
	min-width: 0 !important;
	min-height: 0 !important;
	max-width: 35px !important;
	max-height: 35px !important;
	display: block !important;
	box-sizing: border-box !important;
}
#freecookie-badge:focus:not(:focus-visible) { outline: none !important; box-shadow: none !important; border: none !important; }
#freecookie-badge:focus { box-shadow: none !important; }
#freecookie-badge:focus-visible { outline: 2px solid var(--fc-accent, #1c7a6b); outline-offset: 3px; border-radius: 50%; }
.fc-badge .fc-cookie { width: 100%; height: 100%; display: block; }
.fc-cookie__disc { fill: var(--fc-badge-solid, #1c7a6b); }
.fc-cookie__hole { fill: var(--fc-badge-hole, #bfe0d9); }
/* Pastilles multicolores : couleurs détectées du site (repli : dérivés de l'accent). */
.fc-cookie__c1 { fill: var(--fc-c1, var(--fc-badge-solid, #1c7a6b)); }
.fc-cookie__c2 { fill: var(--fc-c2, var(--fc-badge-hole, #bfe0d9)); }
.fc-cookie__c3 { fill: var(--fc-c3, var(--fc-badge-solid, #1c7a6b)); }
.fc-cookie__c4 { fill: var(--fc-c4, var(--fc-badge-hole, #bfe0d9)); }
.fc-cookie__line { fill: none; stroke: var(--fc-badge-solid, #1c7a6b); stroke-width: 3; stroke-linejoin: round; }
.fc-cookie__ring { fill: none; stroke: var(--fc-badge-hole, #bfe0d9); stroke-width: 3; opacity: .6; }

/* Placeholder d'embed bloqué (iframe neutralisée) */
iframe.fc-blocked-embed {
	min-height: 160px;
	background: repeating-linear-gradient(45deg, #f3f5f7, #f3f5f7 10px, #eceff2 10px, #eceff2 20px);
	border: 1px dashed #cfd6dc;
}

/* Façade d'un embed bloqué : jamais de lecteur cul-de-sac.
   Posée en absolu PAR-DESSUS l'iframe neutralisée (position calculée en JS). */
.fc-embed-veil {
	position: absolute;
	z-index: 5;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 16px;
	box-sizing: border-box;
	text-align: center;
	background: rgba(18, 24, 32, 0.72);
	color: #fff;
	font: 14px/1.45 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	border-radius: inherit;
}
.fc-embed-veil__msg { margin: 0; max-width: 34em; font-size: 14px; color: #fff; }
.fc-embed-veil__btn {
	appearance: none;
	border: 1px solid var(--fc-accent, #1c7a6b);
	background: var(--fc-accent, #1c7a6b);
	color: var(--fc-accent-text, #fff);
	font: 600 14px/1 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	padding: 10px 18px;
	border-radius: 999px;
	cursor: pointer;
}
.fc-embed-veil__btn:hover { background: var(--fc-accent-deep, #124c43); border-color: var(--fc-accent-deep, #124c43); }
.fc-embed-veil__btn:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.fc-embed-veil__note { font-size: 11px; opacity: .75; color: #fff; }

/* Langues droite-à-gauche (arabe, hébreu) : le bandeau porte dir="rtl", la plupart
   des flexbox se retournent seules ; on ne corrige que les marges/bordures posées
   à gauche en dur. Spécificité [dir="rtl"] > sélecteur simple → l'ordre n'importe pas. */
[dir="rtl"] .fc-cat__lock { margin-right: auto; margin-left: 10px; }
[dir="rtl"] .fc-svcs { padding-left: 0; padding-right: 12px; border-left: 0; border-right: 2px solid var(--fc-border, #edf0f2); }
[dir="rtl"] .fc-svc__desc { text-align: right; }

@media (max-width: 560px) {
	/* Mobile : modale un peu plus large que l'ancien 70vw (≈280px = « timbre-poste »
	   sur grand mobile) mais bornée à 380px pour rester discrète — compromis validé
	   par Stéphane le 13/07. Reste centrée et défile verticalement en interne si haute. */
	/* 0.16.0 : la carte prend toute la largeur moins 12px de chaque côté (feuille basse),
	   voir le bloc 0.16.0 en fin de feuille. L'ancien `min(86vw,380px) !important` est retiré :
	   un !important ici battrait la maquette. */
	/* Compact mobile (retour Stéphane 15/07, iPhone) : espacements resserrés,
	   boutons plus denses — la modale gagne en hauteur sans perdre en lisibilité. */
	.fc-inner { padding: 16px; gap: 12px; }
	.fc-prefs, .fc-about { padding-left: 16px; padding-right: 16px; }
	.fc-badge { left: 12px; bottom: 12px; }
	.fc-actions { flex-direction: column; gap: 8px; }
	/* width:auto (et non 100%) : en flex-column, `align-items:stretch` donne déjà la
	   pleine largeur ; `auto` évite le débordement quand un thème hôte pose une marge
	   sur les <button> (cas observé sur freeetv : margin:20px hérité d'Elementor).
	   margin:0!important : ceinture-bretelles contre ces mêmes thèmes (les marges
	   verticales héritées écartelaient la pile de boutons — capture Stéphane 15/07). */
	.fc-actions .fc-btn { width: auto; flex: 1 1 auto; margin: 0 !important; padding: 10px 14px; }
	.fc-about__actions { flex-direction: column; }
	.fc-about__actions .fc-btn { width: auto; }
	.fc-svc__desc, .fc-cat__desc { font-size: 12px; }
}

/* Écrans TRÈS étroits (écrans de couverture des pliables : Honor Magic V2,
   Galaxy Z Fold… ≈ 280–360px) : padding réduit et aucun contenu ne peut
   déborder — les longs jetons (noms de cookies, domaines) se coupent, la
   grille explicative passe sur une colonne. La modale reste 86vw centrée. */
@media (max-width: 380px) {
	.fc-inner { padding: 16px 14px; }
	.fc-prefs, .fc-about, .fc-edu { padding-left: 14px; padding-right: 14px; }
	.fc-cat, .fc-svc__row, .fc-title, .fc-desc, .fc-note { min-width: 0; overflow-wrap: anywhere; }
	.fc-ck > div { grid-template-columns: 1fr; gap: 2px; }
	.fc-ck code, .fc-svc__name, .fc-cat__name { overflow-wrap: anywhere; }
}

/* ---- Écrans BAS (petits portables, fenêtres réduites) : la typographie et
   les espacements se compactent selon la hauteur, pour que tout tienne sans
   défilement de page — et si la liste déborde malgré tout, c'est ELLE qui
   défile, jamais les boutons. ---- */
@media (max-height: 860px) {
	.fc-inner { padding: 16px 20px; gap: 12px; }
	.fc-banner { font-size: 14px; }
	.fc-title { font-size: 16px; }
	.fc-cats { gap: 8px; }
	.fc-cat { padding: 9px 12px; }
	.fc-cat__desc { margin-top: 4px; font-size: 12px; }
	.fc-svcs { gap: 7px; margin-top: 7px; }
	.fc-svc__desc { font-size: 12px; }
	.fc-btn { padding: 9px 14px; }
	.fc-edu, .fc-about { padding: 14px 20px 16px; gap: 9px; }
}
@media (max-height: 700px) {
	/* Écran bas : la hauteur reste bornée par la règle de base (60vh/340px). */
	.fc-banner { bottom: 12px; font-size: 13px; }
	.fc-inner { padding: 12px 16px; gap: 9px; }
	.fc-title { font-size: 15px; }
	.fc-desc { font-size: 12.5px; line-height: 1.45; }
	.fc-cat { padding: 7px 10px; }
	.fc-cat__desc { font-size: 11.5px; }
	.fc-svc__name { font-size: 13px; }
	.fc-btn { padding: 8px 12px; font-size: 13px; }
	.fc-note { padding: 7px 10px; font-size: 12px; }
	.fc-ck { padding: 8px 10px; font-size: 12px; }
}

@media (prefers-reduced-motion: reduce) {
	.fc-btn, .fc-badge { transition: none; }
}

/* Liste de cookies (shortcode [freecookie_cookies]) */
.fc-cookie-list { font-size: 15px; }
.fc-cl__cat { margin: 24px 0 8px; font-size: 18px; font-weight: 700; }
.fc-cl__note { margin: 0 0 12px; color: #6b7784; }
.fc-cl__scroll { overflow-x: auto; }
.fc-cl__table { border-collapse: collapse; width: 100%; min-width: 520px; }
.fc-cl__table th, .fc-cl__table td { text-align: left; padding: 9px 12px; border-bottom: 1px solid #edf0f2; vertical-align: top; }
.fc-cl__table thead th { font-size: 12px; letter-spacing: .04em; text-transform: uppercase; color: #6b7784; }
.fc-cl__table code { font-size: 13px; background: #f3f5f7; padding: 1px 6px; border-radius: 4px; }

/* 0.16.0 — jour/nuit : les variables --fc-* sont posées par PHP (Freecookie_Colors::inline_css)
   en deux jeux, clair et sombre, sous `prefers-color-scheme` quand le thème est « auto ».
   Cette feuille ne connaît donc aucune couleur : tout passe par var(--fc-*). */

/* ==== 0.13.7 — indice de défilement : fondu bas persistant tant qu'il reste du contenu
   sous le pli (classe fc-can-scroll posée par le JS). Sticky : il accompagne le défilement
   et s'efface naturellement en fin de course. Suit la couleur de fond (mode sombre inclus). */
.fc-banner.fc-can-scroll::after {
	content: "";
	position: sticky;
	bottom: 0;
	display: block;
	flex: 0 0 36px;
	margin-top: -36px;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, var(--fc-bg, #ffffff) 82%);
	pointer-events: none;
	border-radius: 0 0 12px 12px;
}

/* 0.13.7 — même fondu pour la liste intérieure (défileur le plus courant). */
.fc-cats.fc-can-scroll::after {
	content: "";
	position: sticky;
	bottom: 0;
	display: block;
	flex: 0 0 30px;
	margin-top: -30px;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, var(--fc-bg, #ffffff) 82%);
	pointer-events: none;
}

/* ══ 0.15.0 — MODE BARRE (premier contact réduit) ════════════════════════════════════
   La barre occupe AU PLUS 8 % de la hauteur de l'écran (rectification Stéphane du 17/08 —
   la demande initiale disait 15 %, la bonne cible est 8) ; en pratique une seule ligne. Les
   couleurs viennent des mêmes variables que le panneau : les deux suivent le thème. */
/* ② l'attribut `hidden` confère display:none via la feuille du NAVIGATEUR — que
   n'importe quelle règle d'auteur écrase, même moins spécifique. Notre display:flex
   ci-dessous rendait donc la barre IMPOSSIBLE À CACHER : elle restait peinte sous le
   panneau ouvert (et après un choix). Leçon payée deux fois ce jour-là : le banc
   lisait l'ATTRIBUT hidden, pas l'affichage calculé — vert menteur. */
.fc-mini[hidden] { display: none !important; }

.fc-mini {
	position: fixed;
	inset-inline: 0;
	bottom: 0;
	/* 0.15.1 — rectification Stéphane : la barre vise 8 % de l'écran, pas 15.
	   Et JAMAIS overflow:hidden ici : sur un écran bas, couper « Refuser » rendrait
	   le refus moins accessible que l'accord — la barre défile au lieu d'amputer. */
	max-height: 8vh;
	min-height: 44px; /* jamais plus petit qu'une cible tactile */
	overflow-y: auto;
	z-index: 2147483000;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 8px 18px;
	padding: 7px clamp(12px, 4vw, 28px);
	padding-bottom: max(7px, env(safe-area-inset-bottom)); /* iPhone : la barre systeme ne mange pas Refuser */
	background: var(--fc-bg, #ffffff);
	color: var(--fc-text, #1a2430);
	border-top: 1px solid var(--fc-border, #e2e6ea);
	box-shadow: 0 -6px 24px rgba(20, 32, 45, .12);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	font-size: 14px;
	line-height: 1.4;
}
.fc-mini__text { margin: 0; font-weight: 600; }
/* 0.15.3 — capture iPhone de Stéphane : titre + boutons = deux rangées, et 8 vh n'en
   loge qu'une et demie — le titre sortait à moitié rogné, illisible. Sous 600 px le
   titre s'efface : les trois boutons disent tout, et le nom du site reste porté par
   l'aria-label de la région pour les lecteurs d'écran. Une rangée unique tient
   TOUJOURS dans le plafond. */
@media (max-width: 600px) {
	.fc-mini__text { display: none; }
	.fc-mini { gap: 8px; }
}
.fc-mini__actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.fc-mini__ok { min-width: 64px; }
.fc-mini .fc-btn { padding: 6px 14px; }
.fc-mini .fc-link { text-decoration: underline; }

/* Le panneau DÉPLIÉ EN FLUX (après l'ancre, sous les slogans du footer) : plus un
   dialogue flottant — un bloc ordinaire de la page. Tout ce que le mode dialogue
   fixait (position, largeur bornée, hauteur bornée, ombre portée) est rendu ici. */
#freecookie-root.fc-inline { position: static; }
#freecookie-root.fc-inline .fc-banner {
	position: static;
	/* 0.15.2 — les DEUX bugs de la capture de Stéphane (17/08) :
	   ① le mode dialogue centre par `left:50% + translateX(-50%)`. En flux, `left`
	   meurt avec position:static mais LE TRANSFORM SURVIT : le panneau partait d'une
	   demi-largeur vers la gauche, coupé au bord de l'écran. On le neutralise. */
	transform: none;
	left: auto;
	bottom: auto;
	width: 100%;
	max-width: 860px;
	max-height: none;
	margin: 18px auto;
	box-shadow: none;
	border-radius: 10px;
}

/* ==== 0.16.0 — LA MAQUETTE (Stéphane, 04/09) : une carte compacte à grands angles,
   monochrome, en bas à gauche ; un titre, un paragraphe (lien vers la politique), trois
   pilules Personnaliser / Refuser / Accepter. « Personnaliser » déplie les catégories dans
   la même carte. Jour ou nuit selon le navigateur : les variables sont posées par PHP,
   cette feuille ne contient aucune couleur. Ce bloc est en FIN de feuille : à spécificité
   égale il gagne sur les réglages historiques ci-dessus, qui restent pour l'insularité. ==== */
.fc-banner{
	top:auto;bottom:24px;left:24px;right:auto;transform:none;
	width:min(520px,calc(100vw - 48px));max-height:min(82vh,720px);
	border-radius:24px;border:1px solid var(--fc-border,#e6e6e6);
	box-shadow:0 18px 60px rgba(0,0,0,.28);
	font-size:16px;line-height:1.5
}
.fc-inner{padding:28px 32px 26px;gap:18px}
#freecookie-banner h2.fc-title,#freecookie-banner .fc-title{
	font-size:26px;line-height:1.2;font-weight:500;margin:0;padding:0;text-indent:0;text-align:left;
	letter-spacing:-.015em;border:0;background:none;color:var(--fc-text,#1a1a1a)}
#freecookie-banner .fc-title--long{font-size:22px}
#freecookie-banner .fc-text{margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
#freecookie-banner .fc-desc{margin:0;font-size:16px;line-height:1.5;color:var(--fc-muted,#4c4c4c)}
#freecookie-banner .fc-policy{color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
#freecookie-banner .fc-policy:hover{color:var(--fc-text,#1a1a1a)}
/* Les trois pilules : à leur taille, alignées à gauche, Accepter en dernier (comme la maquette). */
.fc-actions{justify-content:flex-start;gap:12px}
.fc-actions .fc-btn{flex:0 1 auto;min-width:0;padding:13px 22px;border-radius:12px;font-size:16px;font-weight:500;line-height:1.2}
#freecookie-banner .fc-btn--primary{background:var(--fc-primary-bg,#1a1a1a);color:var(--fc-primary-text,#fff);border-color:transparent}
#freecookie-banner .fc-btn--primary:hover{background:var(--fc-primary-deep,#3a3a3a);border-color:transparent}
#freecookie-banner .fc-btn--secondary,#freecookie-banner .fc-btn--ghost{background:var(--fc-secondary-bg,#e8e8e8);color:var(--fc-secondary-text,#1a1a1a);border-color:transparent}
#freecookie-banner .fc-btn--secondary:hover,#freecookie-banner .fc-btn--ghost:hover{background:var(--fc-secondary-deep,#dcdcdc);border-color:transparent}
#freecookie-banner .fc-btn:focus-visible,.fc-btn:focus-visible{outline:2px solid var(--fc-text,#1a1a1a);outline-offset:2px}
/* Monochrome : ce qui prenait l'accent prend l'encre. Le badge cookie, lui, garde ses couleurs. */
#freecookie-banner .fc-prefs__title,#freecookie-banner .fc-edu__title,#freecookie-banner .fc-about__title{color:var(--fc-text,#1a1a1a)}
.fc-cat__lock{color:var(--fc-muted,#4c4c4c)}
.fc-cat input[type="checkbox"],.fc-svc input[type="checkbox"]{accent-color:var(--fc-primary-bg,#1a1a1a)}
.fc-ck-details summary,.fc-about__social a{color:var(--fc-text,#1a1a1a)}
.fc-cat{border-radius:12px}
.fc-note{background:var(--fc-secondary-bg,#e8e8e8)}
#freecookie-badge:focus-visible{outline-color:var(--fc-text,#1a1a1a)}
/* La barre du mode « mini » suit la même maquette : mêmes pilules, mêmes variables jour/nuit. */
.fc-mini{border-top:0;box-shadow:0 -10px 40px rgba(0,0,0,.22);gap:10px 18px;padding:10px clamp(12px,4vw,28px);font-size:15px}
.fc-mini .fc-btn{padding:9px 18px;border-radius:12px;font-weight:500;border-color:transparent}
.fc-mini .fc-btn--primary{background:var(--fc-primary-bg,#1a1a1a);color:var(--fc-primary-text,#fff)}
.fc-mini .fc-btn--primary:hover{background:var(--fc-primary-deep,#3a3a3a)}
.fc-mini .fc-btn--secondary{background:var(--fc-secondary-bg,#e8e8e8);color:var(--fc-secondary-text,#1a1a1a)}
.fc-mini .fc-btn--secondary:hover{background:var(--fc-secondary-deep,#dcdcdc)}
.fc-mini .fc-link{color:var(--fc-muted,#4c4c4c)}
/* Les deux vues de la carte. Vue compacte : ni catégories, ni note, ni « Enregistrer ». */
#freecookie-banner[data-fc-state="banner"] .fc-cats,
#freecookie-banner[data-fc-state="banner"] .fc-note,
#freecookie-banner[data-fc-state="banner"] [data-fc-only="prefs"],
#freecookie-banner[data-fc-state="prefs"] [data-fc-only="banner"]{display:none}
#freecookie-banner[data-fc-state="prefs"] .fc-cats{max-height:min(46vh,420px)}
/* Téléphone : feuille basse, pleine largeur ; les pilules s'empilent. */
@media (max-width:560px){
	.fc-banner{left:12px;right:12px;bottom:12px;width:auto;max-width:none;border-radius:20px;font-size:15px}
	.fc-inner{padding:22px 20px 20px;gap:14px}
	#freecookie-banner h2.fc-title,#freecookie-banner .fc-title{font-size:22px}
	#freecookie-banner .fc-desc{font-size:15px}
	.fc-actions{flex-direction:column;gap:10px}
	.fc-actions .fc-btn{width:auto;flex:1 1 auto;padding:13px 18px}
}
@media (max-height:700px){
	.fc-banner{bottom:12px;max-height:calc(100vh - 24px)}
	#freecookie-banner h2.fc-title,#freecookie-banner .fc-title{font-size:20px}
	.fc-inner{padding:18px 22px 16px;gap:12px}
}

/* ══ 0.16.0 — MODE TRAIT (Stéphane, 04/09) : 3 px au repos, une rangée de 40 px au toucher ════
   Le trait est un bouton de 3 px de haut ; sa zone de toucher est élargie de 21 px vers le
   haut par un pseudo-élément (24 px au total), le dessin reste 3 px. Ouvert, la rangée porte
   le trait comme bord haut : la ligne ne bouge pas, elle se prolonge. Les couleurs sont les
   variables du plugin (jour/nuit, posées par PHP sur #freecookie-trait). ══════════════════ */
.fc-trait[hidden], .fc-trait .fc-trait__row[hidden] { display: none !important; }
.fc-trait {
	position: fixed; inset-inline: 0; bottom: 0; z-index: 2147483000;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	font-size: 14px; line-height: 1.3; color: var(--fc-text, #1a1a1a);
}
#freecookie-trait .fc-trait__ligne {
	display: block; width: 100%; height: 3px; min-height: 0 !important; max-height: none;
	margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important;
	background: var(--fc-primary-bg, #1a1a1a) !important; box-shadow: none; appearance: none;
	position: relative; cursor: pointer; -webkit-tap-highlight-color: transparent;
}
#freecookie-trait .fc-trait__ligne::before { content: ""; position: absolute; left: 0; right: 0; top: -21px; bottom: 0; }
#freecookie-trait .fc-trait__ligne:focus-visible { outline: 2px solid var(--fc-text, #1a1a1a); outline-offset: 3px; }
#freecookie-trait .fc-trait__ligne[aria-expanded="true"] { display: none; }
#freecookie-trait .fc-trait__row {
	display: flex; align-items: center; gap: 8px; min-height: 40px;
	padding: 5px 10px max(5px, env(safe-area-inset-bottom));
	background: var(--fc-bg, #fff); color: var(--fc-text, #1a1a1a);
	border-top: 3px solid var(--fc-primary-bg, #1a1a1a);
}
#freecookie-trait .fc-trait__lb { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--fc-muted, #4c4c4c); font-weight: 500; }
#freecookie-trait .fc-btn {
	flex: 0 0 auto; margin: 0 !important; min-height: 0; padding: 7px 12px; border: 0; border-radius: 9px;
	font: inherit; font-size: 13px; font-weight: 500; line-height: 1.2; cursor: pointer; text-transform: none; letter-spacing: normal;
}
#freecookie-trait .fc-btn--primary { background: var(--fc-primary-bg, #1a1a1a); color: var(--fc-primary-text, #fff); }
#freecookie-trait .fc-btn--primary:hover { background: var(--fc-primary-deep, #3a3a3a); }
#freecookie-trait .fc-btn--secondary { background: var(--fc-secondary-bg, #e8e8e8); color: var(--fc-secondary-text, #1a1a1a); }
#freecookie-trait .fc-btn--secondary:hover { background: var(--fc-secondary-deep, #dcdcdc); }
#freecookie-trait .fc-btn:focus-visible { outline: 2px solid var(--fc-text, #1a1a1a); outline-offset: 2px; }
@media (min-width: 1025px) {
	#freecookie-trait .fc-trait__row { padding-left: 24px; padding-right: 24px; gap: 10px; font-size: 15px; }
	#freecookie-trait .fc-btn { padding: 8px 14px; font-size: 14px; }
}
