/*
Theme Name:   GeneratePress Child – GetFreePlugins
Template:     generatepress
Version:      0.21.8
Description:  Thème enfant de getfreeplugins.com : styles gfp-* et réglages du pipeline.
*/

/* =========================================================================
   Palette « Feu vert » (choisie le 26/09/2026)
   - bleu nuit : structure, information, confiance
   - vert vif  : opportunité, gratuit, installer, télécharger
   - orange    : Fabio uniquement
   ========================================================================= */

:root {
	/* Structure */
	--gfp-navy:         #0B2A5B;
	--gfp-navy-deep:    #071C3D;
	--gfp-navy-soft:    #E8EEF7;

	/* Opportunité */
	--gfp-green:        #22C55E;
	--gfp-green-hover:  #16A34A;
	--gfp-green-ink:    #052E16;   /* texte sur le vert */
	--gfp-green-light:  #86EFAC;   /* texte vert sur fond bleu nuit */
	--gfp-green-soft:   #ECFDF5;

	/* Fabio : réservé au chatbot */
	--gfp-fabio:        #FF6B00;
	--gfp-fabio-text:   #C2410C;   /* orange lisible en petit sur blanc */
	--gfp-fabio-ink:    #1C1917;   /* texte sur l'orange */

	/* Neutres */
	--gfp-ink:          #2B3D5B;   /* bleu ardoise : texte courant */
	--gfp-ink-muted:    #475569;
	--gfp-on-navy-muted:#CBD5E1;

	/* Rythme */
	--gfp-space:        1.5rem;
	--gfp-radius:       16px;
	--gfp-radius-sm:    10px;
	--gfp-shadow:       0 1px 2px rgba(11, 42, 91, 0.06), 0 8px 24px rgba(11, 42, 91, 0.08);
	--gfp-shadow-hover: 0 2px 4px rgba(11, 42, 91, 0.08), 0 14px 32px rgba(11, 42, 91, 0.14);
}

/* =========================================================================
   Polices, hébergées dans le thème (dossier fonts/), réduites aux
   caractères latins, sans connexion à Google (rapide, sans question RGPD).
   Licence : SIL Open Font License (fonts/OFL.txt, fonts/OFL-inter.txt).

   - Inter : corps de texte (lisibilité à l'écran)
   - Plus Jakarta Sans : titres, marque, menu, pastilles, boutons
   ========================================================================= */

@font-face {
	font-family: "Inter";
	src: url("fonts/inter-latin.woff2") format("woff2");
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Inter";
	src: url("fonts/inter-latin-italic.woff2") format("woff2");
	font-weight: 100 900;
	font-style: italic;
	font-display: swap;
}

@font-face {
	font-family: "Plus Jakarta Sans";
	src: url("fonts/plus-jakarta-sans-latin.woff2") format("woff2");
	font-weight: 200 800;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Plus Jakarta Sans";
	src: url("fonts/plus-jakarta-sans-latin-italic.woff2") format("woff2");
	font-weight: 200 800;
	font-style: italic;
	font-display: swap;
}

:root {
	--gfp-font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	--gfp-font-display: "Plus Jakarta Sans", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

/* Corps de texte */
body,
button,
input,
select,
textarea {
	font-family: var(--gfp-font);
}

/* Titres et éléments d'interface */
h1, h2, h3, h4, h5, h6,
.site-title,
.main-title,
.main-navigation a,
.gfp-topbar,
.gfp-pill,
.gfp-meta-chip,
.entry-content .gfp-feature strong,
.entry-content .gfp-step strong,
.entry-content .gfp-facts dd,
.entry-content .gfp-download a[href] {
	font-family: var(--gfp-font-display);
}

body {
	color: var(--gfp-ink);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

/* Titre de la fiche (H1) : même famille que les sections, en gras */
.entry-title {
	font-weight: 800;
	letter-spacing: -0.02em;
	color: var(--gfp-navy);
}

/* =========================================================================
   Fiche : en-tête de l'article (pastilles, grand titre, date)
   ========================================================================= */

.single-post .entry-header {
	position: relative;
	margin-bottom: calc(var(--gfp-space) * 1.5);
	padding: 2.5rem 1rem 0.5rem;
	text-align: center;
}

/* Halo coloré discret derrière le titre */
.single-post .entry-header::before {
	content: "";
	position: absolute;
	inset: 0 10% auto;
	height: 100%;
	z-index: -1;
	background:
		radial-gradient(closest-side at 35% 50%, rgba(34, 197, 94, 0.13), transparent),
		radial-gradient(closest-side at 65% 50%, rgba(59, 130, 246, 0.13), transparent);
	filter: blur(8px);
	pointer-events: none;
}

.single-post .inside-article {
	position: relative;
	z-index: 0;
}

.gfp-hero-pills {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin-bottom: 1rem;
}

.gfp-pill {
	display: inline-flex;
	align-items: center;
	padding: 5px 13px;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.3;
	border-radius: 999px;
	text-decoration: none;
}

a.gfp-pill:hover {
	text-decoration: none;
}

.gfp-pill--category,
.gfp-pill--category:visited {
	color: var(--gfp-navy);
	background: #fff;
	border: 1px solid #C7D4E8;
	box-shadow: 0 1px 2px rgba(11, 42, 91, 0.06);
}

.gfp-pill--category:hover {
	color: var(--gfp-navy);
	background: var(--gfp-navy-soft);
}

.gfp-pill--free {
	color: var(--gfp-green-ink);
	background: var(--gfp-green);
}

.gfp-pill--new,
.gfp-pill--new:visited,
.gfp-pill--new:hover {
	color: var(--gfp-fabio-ink);
	background: var(--gfp-fabio);
}

.single-post .entry-title {
	font-size: clamp(2.3rem, 5vw, 3.6rem);
	line-height: 1.08;
	letter-spacing: -0.035em;
}

/* L'ancienne ligne de date de GeneratePress est retirée sur les fiches */
.single-post .entry-header .entry-meta {
	display: none;
}

/* Puces sous le titre : « Updated … » et temps de lecture */
.gfp-hero-meta {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin-top: 1.1rem;
}

.gfp-meta-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 12px 6px 10px;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--gfp-navy);
	background: rgba(255, 255, 255, 0.85);
	border: 1px solid var(--gfp-navy-soft);
	border-radius: 999px;
	box-shadow: 0 1px 2px rgba(11, 42, 91, 0.06);
}

.gfp-meta-chip::before {
	content: "";
	flex: none;
	width: 15px;
	height: 15px;
	background: center / contain no-repeat;
}

/* Point vert « à jour » devant la date */
.gfp-meta-chip--updated::before {
	width: 8px;
	height: 8px;
	margin: 0 2px;
	border-radius: 50%;
	background: var(--gfp-green);
	box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.2);
}

.gfp-meta-chip--read::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B2A5B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
}

.gfp-meta-chip time {
	color: var(--gfp-ink-muted);
	font-weight: 500;
}

@media (max-width: 768px) {
	.single-post .entry-header {
		padding-top: 1.5rem;
	}
	.single-post .entry-header::before {
		inset: 0 0 auto;
	}
}

/* Texte des fiches : Plus Jakarta Sans est plus fine que la police
   système à taille égale, on la grossit un peu. */
.entry-content {
	font-size: 17px;
	line-height: 1.7;
	font-weight: 400;
	color: var(--gfp-ink);
}

.entry-content .gfp-heading {
	letter-spacing: -0.015em;
}

/* =========================================================================
   Fond de page : blanc partout (au lieu du gris de GeneratePress autour
   des conteneurs)
   ========================================================================= */

body,
.site,
.site-content,
.separate-containers .inside-article,
.separate-containers .comments-area,
.separate-containers .page-header,
.separate-containers .paging-navigation,
.one-container .site-content,
.inside-page-header {
	background-color: #fff;
}

/* =========================================================================
   Bandeau d'annonce (ajouté par functions.php)
   ========================================================================= */

.gfp-topbar {
	padding: 8px 16px;
	background: var(--gfp-navy);
	color: #fff;
	font-size: 13px;
	font-weight: 500;
	line-height: 1.4;
	text-align: center;
}

.gfp-topbar strong {
	color: var(--gfp-green-light);
	font-weight: 700;
}

.gfp-topbar__short {
	display: none;
}

/* =========================================================================
   En-tête : marque à gauche, menu en pilules à droite, bouton Fabio.
   Collant en haut de l'écran pendant le défilement.
   ========================================================================= */

.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: rgba(255, 255, 255, 0.96);
	-webkit-backdrop-filter: saturate(180%) blur(10px);
	backdrop-filter: saturate(180%) blur(10px);
}

/* Décalage sous la barre d'administration, pour un utilisateur connecté */
.admin-bar .site-header {
	top: 32px;
}

@media (max-width: 782px) {
	.admin-bar .site-header {
		top: 46px;
	}
}

/* Sous 600 px, la barre d'administration n'est plus fixe : elle défile
   avec la page. L'en-tête doit alors coller tout en haut. */
@media (max-width: 600px) {
	.admin-bar .site-header {
		top: 0;
	}
}

.site-header .inside-header {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding-top: 14px;
	padding-bottom: 14px;
	text-align: left;
}

/* Marque à gauche, menu poussé à droite, sur la même ligne */
.site-header .site-branding-container,
.site-header .site-branding {
	flex: 0 1 auto;
	min-width: 0;
	margin: 0;
	text-align: left;
}

.site-header .main-navigation {
	flex: 0 0 auto;
	margin-left: auto;
	float: none;
	clear: none;
	width: auto;
}

/* Marque : pastille verte (icône de prise) + nom */
.main-title {
	font-size: 22px;
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1.2;
}

.main-title a,
.main-title a:visited {
	display: inline-flex;
	align-items: center;
	gap: 0;             /* un gap séparerait aussi « GetFreePlugins » de « .com » */
	color: var(--gfp-navy);
	text-decoration: none;
}

.main-title a::before {
	content: "";
	flex: none;
	margin-right: 10px;
	width: 36px;
	height: 36px;
	border-radius: 10px;
	background:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23052E16' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 7V3M15 7V3M7 7h10v4a5 5 0 0 1-10 0V7zM12 16v5'/%3E%3C/svg%3E") center / 60% no-repeat,
		linear-gradient(135deg, var(--gfp-green), var(--gfp-green-hover));
}

.main-title a:hover {
	color: var(--gfp-navy);
}

.main-title .gfp-tld {
	color: var(--gfp-green-hover);
}

/* Slogan aligné sous le nom, pas sous la pastille */
.site-description {
	margin-top: 2px;
	padding-left: 46px;
	font-size: 12.5px;
	font-weight: 500;
	line-height: 1.4;
	color: var(--gfp-ink-muted);
}

/* Menu principal : pilules */
.main-navigation,
.main-navigation ul ul {
	background: transparent;
}

.main-navigation .main-nav > ul {
	align-items: center;
}

.main-navigation .main-nav ul li a {
	font-size: 14.5px;
	font-weight: 600;
	color: var(--gfp-navy);
}

.main-navigation .main-nav > ul > li > a {
	margin: 0 2px;
	padding: 0 14px;
	line-height: 40px;
	border-radius: 999px;
	transition: background-color 0.15s ease;
}

.main-navigation .main-nav > ul > li:hover > a,
.main-navigation .main-nav > ul > li.sfHover > a,
.main-navigation .main-nav > ul > li[class*="current-menu-"] > a {
	background: var(--gfp-navy-soft);
	color: var(--gfp-navy);
}

/* Sous-menu (Categories) : carte arrondie */
.main-navigation ul ul {
	padding: 6px;
	background: #fff;
	border: 1px solid var(--gfp-navy-soft);
	border-radius: 14px;
	box-shadow: var(--gfp-shadow-hover);
}

.main-navigation .main-nav ul ul li a {
	padding: 9px 12px;
	line-height: 1.35;
	border-radius: 8px;
	font-size: 14px;
	font-weight: 500;
	background: transparent;
}

.main-navigation .main-nav ul ul li:hover > a,
.main-navigation .main-nav ul ul li[class*="current-menu-"] > a {
	background: var(--gfp-green-soft);
	color: var(--gfp-navy);
}

/* Badge « NEW » : entrée de menu portant la classe gfp-menu-new */
.main-navigation .main-nav ul li.gfp-menu-new > a::after {
	content: "NEW";
	display: inline-block;
	margin-left: 6px;
	padding: 2px 7px;
	font-size: 10px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.02em;
	vertical-align: 2px;
	color: var(--gfp-green-ink);
	background: var(--gfp-green);
	border-radius: 999px;
}

/* Bouton orange (Fabio) : entrée de menu portant la classe gfp-menu-cta.
   Seul élément orange de l'en-tête. */
.main-navigation .main-nav > ul > li.gfp-menu-cta > a,
.main-navigation .main-nav > ul > li.gfp-menu-cta:hover > a,
.main-navigation .main-nav > ul > li.gfp-menu-cta[class*="current-menu-"] > a {
	margin-left: 10px;
	padding: 0 20px;
	color: var(--gfp-fabio-ink);
	font-weight: 700;
	background: var(--gfp-fabio);
	box-shadow: 0 6px 18px rgba(255, 107, 0, 0.3);
}

.main-navigation .main-nav > ul > li.gfp-menu-cta:hover > a {
	background: #EA580C;
}

/* =========================================================================
   Écrans moyens : le slogan cède sa place au menu
   ========================================================================= */

@media (max-width: 1100px) {
	.site-description {
		display: none;
	}
	.main-navigation .main-nav > ul > li > a {
		padding: 0 10px;
	}
}

/* =========================================================================
   En-tête sur mobile : marque à gauche, bouton de menu à droite,
   menu déplié en panneau pleine largeur sous l'en-tête
   ========================================================================= */

@media (max-width: 768px) {
	.gfp-topbar {
		font-size: 12px;
	}
	.gfp-topbar__long {
		display: none;
	}
	.gfp-topbar__short {
		display: inline;
	}

	.site-header .inside-header {
		gap: 12px;
		padding: 10px 16px;
	}
	.main-title {
		font-size: 18px;
	}
	.main-title a::before {
		width: 32px;
		height: 32px;
	}

	/* Bouton de menu calé à droite de l'en-tête, centré en hauteur.
	   La réserve à droite évite qu'il chevauche le nom du site. */
	.site-header .inside-header {
		position: relative;
		padding-right: 76px;
	}
	.site-header .main-navigation,
	.site-header .mobile-menu-control-wrapper {
		position: static;
		margin: 0;
		background: transparent;
	}
	.site-header .menu-toggle {
		position: absolute;
		top: 50%;
		right: 16px;
		transform: translateY(-50%);
		z-index: 2;
	}
	.site-header .main-navigation .inside-navigation {
		position: static;
		padding: 0;
	}

	/* Bouton de menu : carré arrondi, icône bleu nuit */
	.main-navigation .menu-toggle {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		padding: 0;
		line-height: 1;
		color: var(--gfp-navy);
		background: #fff;
		border: 1px solid var(--gfp-navy-soft);
		border-radius: 12px;
		box-shadow: 0 1px 2px rgba(11, 42, 91, 0.06);
		transition: background-color 0.15s ease, border-color 0.15s ease;
	}
	.main-navigation .menu-toggle:hover,
	.main-navigation .menu-toggle:focus,
	.main-navigation.toggled .menu-toggle {
		color: var(--gfp-navy);
		background: var(--gfp-navy-soft);
		border-color: #C7D4E8;
	}
	.main-navigation .menu-toggle:focus-visible {
		outline: 3px solid var(--gfp-green);
		outline-offset: 2px;
	}
	.main-navigation .menu-toggle .gp-icon svg {
		width: 20px;
		height: 20px;
		top: 0;
	}
	/* Le mot « Menu » reste lu par les lecteurs d'écran, mais ne s'affiche pas */
	.main-navigation .menu-toggle .mobile-menu {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		white-space: nowrap;
	}
	.main-navigation .menu-toggle .gp-icon + .mobile-menu {
		padding-left: 0;
	}

	/* Menu déplié : panneau blanc pleine largeur sous l'en-tête */
	.main-navigation.toggled .main-nav > ul {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		display: block;
		max-height: calc(100vh - 120px);
		overflow-y: auto;
		padding: 10px 16px 16px;
		background: #fff;
		border-bottom: 1px solid var(--gfp-navy-soft);
		box-shadow: 0 14px 32px rgba(11, 42, 91, 0.14);
	}
	.main-navigation .main-nav > ul > li > a {
		margin: 2px 0;
		padding: 0 14px;
		line-height: 46px;
		border-radius: 12px;
	}
	.main-navigation .main-nav > ul > li.gfp-menu-cta > a,
	.main-navigation .main-nav > ul > li.gfp-menu-cta:hover > a {
		margin: 10px 0 0;
		text-align: center;
		border-radius: 999px;
	}
	.main-navigation ul ul {
		border: 0;
		box-shadow: none;
		padding: 0 0 0 12px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.main-navigation .main-nav > ul > li > a,
	.main-navigation .menu-toggle {
		transition: none;
	}
}

/* =========================================================================
   Liens du contenu : bleu nuit, soulignés de vert
   ========================================================================= */

.entry-content a {
	color: var(--gfp-navy);
	text-decoration-color: var(--gfp-green);
	text-decoration-thickness: 2px;
	text-underline-offset: 3px;
}

.entry-content a:hover {
	color: var(--gfp-green-hover);
}

/* =========================================================================
   Enveloppe des groupes

   Avec GeneratePress, WordPress glisse une div intermédiaire
   (.wp-block-group__inner-container) entre un groupe et ses paragraphes.
   display: contents la rend transparente : les paragraphes redeviennent
   les enfants directs du groupe pour la mise en page (grilles comprises).
   ========================================================================= */

.entry-content [class*="gfp-"] > .wp-block-group__inner-container {
	display: contents;
}

/* =========================================================================
   Fiche : introduction — carte blanche à bordure dégradée vert → bleu
   ========================================================================= */

.entry-content .gfp-intro {
	margin: 0 0 var(--gfp-space);
	padding: 1.6rem 1.8rem;
	border: 2px solid transparent;
	border-radius: var(--gfp-radius);
	background:
		radial-gradient(circle at 100% 0%, rgba(59, 130, 246, 0.10), transparent 40%) padding-box,
		linear-gradient(#fff, #fff) padding-box,
		linear-gradient(120deg, var(--gfp-green) 0%, #3B82F6 60%, var(--gfp-navy) 100%) border-box;
	box-shadow: 0 10px 30px rgba(59, 130, 246, 0.12);
	color: var(--gfp-ink);
	line-height: 1.7;
}

.entry-content .gfp-intro p:first-of-type {
	font-size: 1.12em;
	font-weight: 600;
	color: var(--gfp-navy);
}

.entry-content .gfp-intro p:last-of-type {
	margin-bottom: 0;
}

/* =========================================================================
   Fiche : chiffres WordPress.org — une carte bleu nuit par chiffre

   Le plugin imprime ses propres styles APRÈS cette feuille : chaque règle
   est préfixée par .entry-content pour passer devant.
   ========================================================================= */

/* Le conteneur est transparent : chaque chiffre a sa propre carte. */
.entry-content .gfp-facts {
	margin: var(--gfp-space) 0 calc(var(--gfp-space) * 1.5);
	padding: 0;
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

.entry-content .gfp-facts .gfp-facts__list {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0;
	padding: 0;
}

.entry-content .gfp-facts .gfp-facts__item {
	flex: 1 1 150px;
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 1rem 1.1rem 1.05rem;
	background: var(--gfp-navy);
	border-radius: var(--gfp-radius);
	box-shadow: var(--gfp-shadow);
	color: #fff;
}

.entry-content .gfp-facts dt {
	margin: 0 0 0.35rem;
	font-size: 12.5px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--gfp-green-light);
	opacity: 1;
}

.entry-content .gfp-facts dd {
	margin: 0;
	font-size: 1.05em;
	font-weight: 700;
	line-height: 1.35;
	color: #fff;
}

/* Carte de la note : étoiles, note, puis nombre d'avis en petit */
.entry-content .gfp-facts .gfp-stars {
	display: block;
	width: max-content;
	margin-bottom: 0.3rem;
	font-size: 15px;
	color: rgba(255, 255, 255, 0.3);
}

.entry-content .gfp-facts .gfp-stars__fill {
	color: #FACC15;
}

.entry-content .gfp-facts .gfp-rating-count {
	display: block;
	margin-top: 2px;
	font-size: 12.5px;
	font-weight: 500;
	color: var(--gfp-on-navy-muted);
	opacity: 1;
}

/* « Source: WordPress.org » sous le numéro de version (première carte).
   Le paragraphe d'origine reste dans la page pour les lecteurs d'écran
   et les moteurs de recherche, mais n'est plus affiché. */
.entry-content .gfp-facts .gfp-facts__item:first-child dd::after {
	content: "Source: WordPress.org";
	display: block;
	margin-top: 0.4rem;
	font-family: var(--gfp-font);
	font-size: 12px;
	font-weight: 500;
	color: var(--gfp-on-navy-muted);
}

.entry-content .gfp-facts .gfp-facts__source {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

@media (max-width: 600px) {
	.entry-content .gfp-facts .gfp-facts__list {
		gap: 10px;
	}
	.entry-content .gfp-facts .gfp-facts__item {
		flex-basis: 130px;
		padding: 0.85rem 0.95rem;
	}
}

/* =========================================================================
   Fiche : titres de sections
   ========================================================================= */

.entry-content .gfp-heading {
	margin-top: calc(var(--gfp-space) * 2.2);
	margin-bottom: var(--gfp-space);
	padding-bottom: 0.6rem;
	color: var(--gfp-navy);
	font-weight: 800;
	background-image: linear-gradient(var(--gfp-green), var(--gfp-green));
	background-repeat: no-repeat;
	background-size: 4rem 5px;
	background-position: left bottom;
}

.entry-content .gfp-feature-group__title {
	grid-column: 1 / -1;
	margin: var(--gfp-space) 0 0.75rem;
	padding: 0.35rem 0.8rem;
	display: inline-block;
	justify-self: start;
	font-size: 1.05em;
	color: #fff;
	background: var(--gfp-navy);
	border-radius: 999px;
}

/* =========================================================================
   Fiche : fonctionnalités — tuiles vert clair, deux colonnes si possible
   ========================================================================= */

/* Trois colonnes fixes, qui occupent toute la largeur du contenu.
   (auto-fit laissait des colonnes fantômes à droite à cause du titre de
   groupe étalé sur toute la largeur : les cartes restaient collées à
   gauche.) Deux colonnes sur tablette, une sur mobile. */
.entry-content .gfp-features,
.entry-content .gfp-feature-group {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.25rem 2.25rem;
}

@media (max-width: 1024px) {
	.entry-content .gfp-features,
	.entry-content .gfp-feature-group {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1.25rem 1.5rem;
	}
}

@media (max-width: 640px) {
	.entry-content .gfp-features,
	.entry-content .gfp-feature-group {
		grid-template-columns: 1fr;
	}
}

.entry-content .gfp-features--grouped {
	display: block;
}

.entry-content .gfp-feature {
	position: relative;
	margin: 0;
	padding: 1.25rem 1.35rem 1.25rem 3.4rem;
	background: #fff;
	border: 1px solid var(--gfp-navy-soft);
	border-radius: var(--gfp-radius);
	box-shadow: var(--gfp-shadow);
	line-height: 1.6;
	color: var(--gfp-ink);
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

/* Pastille verte avec coche, en haut à gauche de chaque carte */
.entry-content .gfp-feature::before {
	content: "";
	position: absolute;
	left: 1.2rem;
	top: 1.35rem;
	width: 1.4rem;
	height: 1.4rem;
	border-radius: 50%;
	background: var(--gfp-green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23052E16' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center / 62% no-repeat;
}

.entry-content .gfp-feature:hover {
	box-shadow: var(--gfp-shadow-hover);
	transform: translateY(-2px);
}

.entry-content .gfp-feature strong {
	display: block;
	margin-bottom: 0.25rem;
	color: var(--gfp-navy);
	font-size: 1.05em;
}

/* =========================================================================
   Fiche : guide d'installation — le chemin vert vers le bouton
   ========================================================================= */

.entry-content .gfp-install {
	display: grid;
	gap: 1rem;
	margin-left: 0.7rem;
	padding: 0.2rem 0;
	border-left: 4px solid var(--gfp-green);
}

.entry-content .gfp-step {
	position: relative;
	margin: 0 0 0 1.8rem;
	padding: 1rem 1.25rem;
	background: #fff;
	border: 1px solid var(--gfp-navy-soft);
	border-radius: var(--gfp-radius-sm);
	box-shadow: var(--gfp-shadow);
	line-height: 1.6;
}

.entry-content .gfp-step::before {
	content: "";
	position: absolute;
	left: calc(-1.8rem - 13px);
	top: 1.15rem;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--gfp-green);
	border: 4px solid #fff;
	box-shadow: 0 0 0 3px var(--gfp-navy);
	box-sizing: border-box;
}

.entry-content .gfp-step strong {
	display: block;
	color: var(--gfp-navy);
}

/* =========================================================================
   Fiche : Good to Know
   ========================================================================= */

.entry-content .gfp-note {
	padding: 1.2rem 1.4rem;
	background: var(--gfp-navy-soft);
	border: 1px solid #C7D4E8;
	border-radius: var(--gfp-radius);
	color: var(--gfp-ink);
}

.entry-content .gfp-note p:last-of-type {
	margin-bottom: 0;
}

/* =========================================================================
   Fiche : téléchargement — bouton vert seul sur fond blanc, halo vert et
   bleu derrière lui, icône de téléchargement, légende dessous.
   Le [href] donne le poids nécessaire face aux règles de GeneratePress.
   ========================================================================= */

.entry-content .gfp-download {
	position: relative;
	isolation: isolate;
	margin-top: 1rem;
	padding: 1.75rem 1rem 0.5rem;
	text-align: center;
}

/* Halo diffus derrière le bouton */
.entry-content .gfp-download::before {
	content: "";
	position: absolute;
	z-index: -1;
	top: 0;
	left: 50%;
	width: min(640px, 100%);
	height: 100%;
	transform: translateX(-50%);
	background:
		radial-gradient(closest-side at 40% 55%, rgba(34, 197, 94, 0.22), transparent),
		radial-gradient(closest-side at 62% 45%, rgba(59, 130, 246, 0.16), transparent);
	filter: blur(12px);
	pointer-events: none;
}

/* Légende sous le bouton */
.entry-content .gfp-download::after {
	content: "100% free  ·  Official WordPress.org directory  ·  Opens in a new tab";
	display: block;
	margin-top: 1rem;
	font-size: 13px;
	font-weight: 500;
	white-space: pre-wrap;
	color: var(--gfp-ink-muted);
}

.entry-content .gfp-download a[href] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 1.05rem 2.2rem;
	background: linear-gradient(180deg, #2BD468 0%, var(--gfp-green) 100%);
	color: var(--gfp-green-ink);
	font-size: 1.12em;
	font-weight: 800;
	text-decoration: none;
	border-radius: 999px;
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.35),
		0 0 0 6px rgba(34, 197, 94, 0.14),
		0 12px 30px rgba(34, 197, 94, 0.35);
	transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

/* Icône de téléchargement */
.entry-content .gfp-download a[href]::before {
	content: "";
	flex: none;
	width: 20px;
	height: 20px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23052E16' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4v11M7 10l5 5 5-5M5 20h14'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform 0.15s ease;
}

.entry-content .gfp-download a[href]:hover,
.entry-content .gfp-download a[href]:focus {
	background: linear-gradient(180deg, #4ADE80 0%, #2BD468 100%);
	color: var(--gfp-green-ink);
	transform: translateY(-2px);
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.4),
		0 0 0 8px rgba(34, 197, 94, 0.18),
		0 16px 36px rgba(34, 197, 94, 0.42);
}

.entry-content .gfp-download a[href]:hover::before {
	transform: translateY(2px);
}

.entry-content .gfp-download a[href]:focus-visible {
	outline: 3px solid var(--gfp-navy);
	outline-offset: 4px;
}

@media (max-width: 600px) {
	.entry-content .gfp-download a[href] {
		display: flex;
		width: 100%;
		padding: 1rem 1.25rem;
		font-size: 1.02em;
	}
	.entry-content .gfp-download::after {
		content: "100% free  ·  Official WordPress.org directory";
	}
}

@media (prefers-reduced-motion: reduce) {
	.entry-content .gfp-download a[href],
	.entry-content .gfp-download a[href]::before {
		transition: none;
	}
	.entry-content .gfp-download a[href]:hover,
	.entry-content .gfp-download a[href]:hover::before,
	.entry-content .gfp-feature:hover {
		transform: none;
	}
	.entry-content .gfp-feature {
		transition: none;
	}
}

/* =========================================================================
   Fiche : pied d'article — catégorie et étiquettes en pastilles,
   fiche précédente et suivante en cartes
   ========================================================================= */

.single-post footer.entry-meta {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-top: calc(var(--gfp-space) * 2);
	font-size: 14px;
}

.single-post footer.entry-meta .gp-icon {
	display: none;
}

.single-post footer.entry-meta .cat-links,
.single-post footer.entry-meta .tags-links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	padding: 14px 16px;
	background: var(--gfp-surface);
	border: 1px solid var(--gfp-navy-soft);
	border-radius: 14px;
}

/* Libellés « Categories » et « Tags » : présents pour les lecteurs
   d'écran dans GeneratePress, rendus visibles ici */
.single-post footer.entry-meta .cat-links .screen-reader-text,
.single-post footer.entry-meta .tags-links .screen-reader-text {
	position: static !important;
	width: auto;
	height: auto;
	margin: 0 6px 0 0;
	overflow: visible;
	clip: auto;
	clip-path: none;
	font-family: var(--gfp-font-display);
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--gfp-ink-muted);
}

.single-post footer.entry-meta .cat-links a,
.single-post footer.entry-meta .tags-links a {
	display: inline-flex;
	align-items: center;
	padding: 6px 13px;
	font-family: var(--gfp-font-display);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.3;
	text-decoration: none;
	border-radius: 999px;
	transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}

/* Catégorie : pastille bleu nuit pleine */
.single-post footer.entry-meta .cat-links a {
	color: #fff;
	background: var(--gfp-navy);
}

.single-post footer.entry-meta .cat-links a:hover {
	color: #fff;
	background: var(--gfp-navy-deep);
	transform: translateY(-1px);
}

/* Étiquettes : pastilles blanches bordées, « # » discret devant */
.single-post footer.entry-meta .tags-links a {
	color: var(--gfp-navy);
	background: #fff;
	border: 1px solid #C7D4E8;
}

.single-post footer.entry-meta .tags-links a::before {
	content: "#";
	margin-right: 3px;
	color: var(--gfp-green-hover);
	font-weight: 700;
}

.single-post footer.entry-meta .tags-links a:hover {
	color: var(--gfp-navy);
	background: var(--gfp-green-soft);
	border-color: var(--gfp-green);
	transform: translateY(-1px);
}

/* Navigation entre fiches : deux cartes cliquables */
.single-post .post-navigation {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	margin-top: 8px;
}

.single-post .post-navigation .nav-previous,
.single-post .post-navigation .nav-next {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 4px;
	float: none;
	width: auto;
	margin: 0;
	padding: 16px 20px;
	background: #fff;
	border: 1px solid var(--gfp-navy-soft);
	border-radius: var(--gfp-radius);
	box-shadow: var(--gfp-shadow);
	transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}

.single-post .post-navigation .nav-next {
	grid-column: 2;
	text-align: right;
}

.single-post .post-navigation .nav-previous::before,
.single-post .post-navigation .nav-next::before {
	font-family: var(--gfp-font-display);
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--gfp-ink-muted);
}

.single-post .post-navigation .nav-previous::before {
	content: "\2190  Previous plugin";
}

.single-post .post-navigation .nav-next::before {
	content: "Next plugin  \2192";
}

.single-post .post-navigation a {
	font-family: var(--gfp-font-display);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.35;
	color: var(--gfp-navy);
	text-decoration: none;
}

/* Toute la carte est cliquable */
.single-post .post-navigation a::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
}

.single-post .post-navigation .nav-previous:hover,
.single-post .post-navigation .nav-next:hover {
	border-color: var(--gfp-green);
	box-shadow: var(--gfp-shadow-hover);
	transform: translateY(-2px);
}

.single-post .post-navigation a:focus-visible {
	outline: none;
}

.single-post .post-navigation .nav-previous:focus-within,
.single-post .post-navigation .nav-next:focus-within {
	outline: 3px solid var(--gfp-green);
	outline-offset: 3px;
}

@media (max-width: 600px) {
	.single-post .post-navigation {
		grid-template-columns: 1fr;
	}
	.single-post .post-navigation .nav-next {
		grid-column: auto;
	}
}

@media (prefers-reduced-motion: reduce) {
	.single-post footer.entry-meta a,
	.single-post .post-navigation .nav-previous,
	.single-post .post-navigation .nav-next {
		transition: none;
		transform: none !important;
	}
}

/* =========================================================================
   Pied de page : fond bleu nuit, libellés verts, liens blancs
   (même traitement que les cartes des chiffres WordPress.org)
   ========================================================================= */

.site-footer {
	margin-top: calc(var(--gfp-space) * 3);
}

/* Liseré dégradé vert → bleu en haut du pied de page, comme la bordure
   de l'introduction */
.site-footer .footer-widgets {
	position: relative;
	background: var(--gfp-navy);
	color: #fff;
}

.site-footer .footer-widgets::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: linear-gradient(90deg, var(--gfp-green) 0%, #3B82F6 60%, var(--gfp-navy) 100%);
}

.site-footer .inside-footer-widgets {
	padding-top: 3rem;
	padding-bottom: 2.5rem;
	gap: 2rem;
}

.footer-widgets .widget {
	margin-bottom: 1.5rem;
	font-size: 15px;
	color: #fff;
}

/* Titres des widgets : même style que les libellés des cartes */
.footer-widgets .widget-title {
	margin-bottom: 1rem;
	font-family: var(--gfp-font-display);
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--gfp-green-light);
}

/* Listes : catégories, menus */
.footer-widgets ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.footer-widgets .widget ul li {
	margin: 0 0 0.6rem;
	padding: 0;
	line-height: 1.4;
}

.footer-widgets a,
.footer-widgets a:visited {
	color: #fff;
	font-weight: 500;
	text-decoration: none;
	transition: color 0.15s ease;
}

.footer-widgets a:hover,
.footer-widgets a:focus {
	color: var(--gfp-green-light);
}

.footer-widgets a:focus-visible {
	outline: 2px solid var(--gfp-green-light);
	outline-offset: 2px;
	border-radius: 4px;
}

/* Nuage d'étiquettes : pastilles de taille égale au lieu de tailles
   variables (la taille imposée par WordPress est écrite dans la page,
   d'où le !important) */
.footer-widgets .tagcloud,
.footer-widgets .wp-block-tag-cloud {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.footer-widgets .tagcloud a,
.footer-widgets .wp-block-tag-cloud a {
	display: inline-flex;
	align-items: center;
	margin: 0;
	padding: 5px 11px;
	font-family: var(--gfp-font-display);
	font-size: 12.5px !important;
	font-weight: 600;
	line-height: 1.3;
	color: #fff;
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: 999px;
	transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.footer-widgets .tagcloud a::before,
.footer-widgets .wp-block-tag-cloud a::before {
	content: "#";
	margin-right: 3px;
	color: var(--gfp-green-light);
	font-weight: 700;
}

.footer-widgets .tagcloud a:hover,
.footer-widgets .wp-block-tag-cloud a:hover {
	color: var(--gfp-green-ink);
	background: var(--gfp-green);
	border-color: var(--gfp-green);
}

.footer-widgets .tagcloud a:hover::before,
.footer-widgets .wp-block-tag-cloud a:hover::before {
	color: var(--gfp-green-ink);
}

/* Barre de copyright : bleu nuit plus profond */
.site-info {
	background: var(--gfp-navy-deep);
	color: var(--gfp-on-navy-muted);
	font-size: 13px;
}

.site-info .inside-site-info {
	padding-top: 1.1rem;
	padding-bottom: 1.1rem;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.site-info a,
.site-info a:visited {
	color: var(--gfp-green-light);
	text-decoration: none;
}

.site-info a:hover {
	color: #fff;
}

@media (max-width: 768px) {
	.site-footer .inside-footer-widgets {
		padding-top: 2.25rem;
		padding-bottom: 1.5rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.footer-widgets a {
		transition: none;
	}
}

/* =========================================================================
   Bouton de retour en haut (GeneratePress) : pastille ronde bleu nuit,
   flèche blanche, anneau vert au survol
   ========================================================================= */

a.generate-back-to-top {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	right: 24px;
	bottom: calc(24px + env(safe-area-inset-bottom, 0px));
	color: #fff;
	background: var(--gfp-navy);
	border-radius: 50%;
	box-shadow:
		0 0 0 4px rgba(34, 197, 94, 0),
		0 10px 24px rgba(11, 42, 91, 0.28);
	transition: background-color 0.15s ease, box-shadow 0.2s ease, transform 0.2s ease, opacity 0.3s ease, visibility 0.3s ease;
}

a.generate-back-to-top:hover,
a.generate-back-to-top:focus {
	color: var(--gfp-green-ink);
	background: var(--gfp-green);
	box-shadow:
		0 0 0 5px rgba(34, 197, 94, 0.2),
		0 12px 28px rgba(34, 197, 94, 0.35);
	transform: translateY(-2px);
}

a.generate-back-to-top:focus-visible {
	outline: 3px solid var(--gfp-navy);
	outline-offset: 3px;
}

a.generate-back-to-top .gp-icon svg {
	width: 18px;
	height: 18px;
	top: 0;
	stroke: currentColor;
	stroke-width: 1.5;
}

@media (max-width: 768px) {
	a.generate-back-to-top {
		width: 44px;
		height: 44px;
		right: 16px;
		bottom: calc(16px + env(safe-area-inset-bottom, 0px));
	}
}

@media (prefers-reduced-motion: reduce) {
	a.generate-back-to-top {
		transition: opacity 0.3s ease, visibility 0.3s ease;
	}
	a.generate-back-to-top:hover,
	a.generate-back-to-top:focus {
		transform: none;
	}
}

/* =========================================================================
   Pages de catégorie et d'étiquette : en-tête centré, fiches en cartes
   ========================================================================= */

.archive .site-main,
.blog .site-main,
.search .site-main {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.5rem;
}

.archive .site-main > .page-header,
.archive .site-main > .paging-navigation,
.archive .site-main > nav,
.blog .site-main > .page-header,
.blog .site-main > .paging-navigation,
.search .site-main > .page-header,
.search .site-main > .paging-navigation {
	grid-column: 1 / -1;
}

@media (max-width: 1024px) {
	.archive .site-main,
	.blog .site-main,
	.search .site-main {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.archive .site-main,
	.blog .site-main,
	.search .site-main {
		grid-template-columns: 1fr;
		gap: 1rem;
	}
}

/* En-tête de la page : même traitement que le titre d'une fiche */
.archive .page-header {
	position: relative;
	z-index: 0;
	margin: 0 0 1rem;
	padding: 2.5rem 1rem 1.5rem;
	text-align: center;
	background: transparent;
}

.archive .page-header::before {
	content: "";
	position: absolute;
	inset: 0 10% auto;
	height: 100%;
	z-index: -1;
	background:
		radial-gradient(closest-side at 35% 45%, rgba(34, 197, 94, 0.13), transparent),
		radial-gradient(closest-side at 65% 45%, rgba(59, 130, 246, 0.13), transparent);
	filter: blur(8px);
	pointer-events: none;
}

.archive .page-title {
	margin: 0;
	font-family: var(--gfp-font-display);
	font-size: clamp(2.2rem, 4.6vw, 3.4rem);
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: -0.035em;
	color: var(--gfp-navy);
}

.archive .taxonomy-description {
	max-width: 760px;
	margin: 1rem auto 0;
	font-size: 17px;
	line-height: 1.7;
	color: var(--gfp-ink-muted);
}

.archive .taxonomy-description p:last-child {
	margin-bottom: 0;
}

/* Chaque fiche : une carte blanche arrondie, entièrement cliquable */
.archive .site-main > article,
.blog .site-main > article,
.search .site-main > article {
	margin: 0;
	min-width: 0;
}

.archive .site-main > article .inside-article,
.blog .site-main > article .inside-article,
.search .site-main > article .inside-article {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	margin: 0;
	padding: 1.5rem 1.5rem 1.25rem;
	background: #fff;
	border: 1px solid var(--gfp-navy-soft);
	border-radius: var(--gfp-radius);
	box-shadow: var(--gfp-shadow);
	transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}

.archive .site-main > article .inside-article:hover,
.blog .site-main > article .inside-article:hover,
.search .site-main > article .inside-article:hover {
	border-color: var(--gfp-green);
	box-shadow: var(--gfp-shadow-hover);
	transform: translateY(-3px);
}

.archive .entry-header,
.blog .entry-header,
.search .entry-header {
	margin: 0;
}

.archive .entry-header .entry-meta,
.blog .entry-header .entry-meta,
.search .entry-header .entry-meta {
	display: none;
}

.archive h2.entry-title,
.blog h2.entry-title,
.search h2.entry-title {
	margin: 0 0 0.6rem;
	font-size: 1.35rem;
	font-weight: 800;
	line-height: 1.25;
	letter-spacing: -0.02em;
}

.archive h2.entry-title a,
.blog h2.entry-title a,
.search h2.entry-title a {
	color: var(--gfp-navy);
	text-decoration: none;
}

/* Le lien du titre couvre toute la carte */
.archive h2.entry-title a::after,
.blog h2.entry-title a::after,
.search h2.entry-title a::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
}

.archive .inside-article:focus-within,
.blog .inside-article:focus-within,
.search .inside-article:focus-within {
	outline: 3px solid var(--gfp-green);
	outline-offset: 3px;
}

.archive h2.entry-title a:focus-visible,
.blog h2.entry-title a:focus-visible,
.search h2.entry-title a:focus-visible {
	outline: none;
}

.archive .entry-summary,
.blog .entry-summary,
.search .entry-summary {
	flex: 1 1 auto;
	margin: 0 0 1rem;
	font-size: 15.5px;
	line-height: 1.65;
	color: var(--gfp-ink);
}

.archive .entry-summary p,
.blog .entry-summary p,
.search .entry-summary p {
	margin: 0;
}

/* Pied de carte : étiquettes en pastilles, comme sur les fiches */
.archive footer.entry-meta,
.blog footer.entry-meta,
.search footer.entry-meta {
	position: relative;
	z-index: 1;               /* au-dessus du lien qui couvre la carte */
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 0;
	padding-top: 1rem;
	border-top: 1px solid var(--gfp-navy-soft);
	font-size: 13px;
}

.archive footer.entry-meta .gp-icon,
.blog footer.entry-meta .gp-icon,
.search footer.entry-meta .gp-icon {
	display: none;
}

.archive footer.entry-meta .cat-links,
.archive footer.entry-meta .tags-links,
.blog footer.entry-meta .cat-links,
.blog footer.entry-meta .tags-links,
.search footer.entry-meta .cat-links,
.search footer.entry-meta .tags-links {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.archive footer.entry-meta a,
.blog footer.entry-meta a,
.search footer.entry-meta a {
	display: inline-flex;
	align-items: center;
	padding: 4px 10px;
	font-family: var(--gfp-font-display);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.3;
	text-decoration: none;
	border-radius: 999px;
	transition: background-color 0.15s ease, border-color 0.15s ease;
}

.archive footer.entry-meta .cat-links a,
.blog footer.entry-meta .cat-links a,
.search footer.entry-meta .cat-links a {
	color: #fff;
	background: var(--gfp-navy);
}

.archive footer.entry-meta .tags-links a,
.blog footer.entry-meta .tags-links a,
.search footer.entry-meta .tags-links a {
	color: var(--gfp-navy);
	background: #fff;
	border: 1px solid #C7D4E8;
}

.archive footer.entry-meta .tags-links a::before,
.blog footer.entry-meta .tags-links a::before,
.search footer.entry-meta .tags-links a::before {
	content: "#";
	margin-right: 2px;
	color: var(--gfp-green-hover);
	font-weight: 700;
}

.archive footer.entry-meta .tags-links a:hover,
.blog footer.entry-meta .tags-links a:hover,
.search footer.entry-meta .tags-links a:hover {
	background: var(--gfp-green-soft);
	border-color: var(--gfp-green);
}

/* Pagination : pastilles */
.archive .paging-navigation .nav-links,
.blog .paging-navigation .nav-links,
.search .paging-navigation .nav-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6px;
	margin-top: 1rem;
}

.paging-navigation .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	padding: 0 14px;
	font-family: var(--gfp-font-display);
	font-size: 14px;
	font-weight: 700;
	color: var(--gfp-navy);
	text-decoration: none;
	background: #fff;
	border: 1px solid var(--gfp-navy-soft);
	border-radius: 999px;
}

.paging-navigation a.page-numbers:hover {
	color: var(--gfp-navy);
	border-color: var(--gfp-green);
	background: var(--gfp-green-soft);
}

.paging-navigation .page-numbers.current {
	color: #fff;
	background: var(--gfp-navy);
	border-color: var(--gfp-navy);
}

.paging-navigation .page-numbers.dots {
	border: 0;
	background: transparent;
}

@media (prefers-reduced-motion: reduce) {
	.archive .site-main > article .inside-article,
	.blog .site-main > article .inside-article,
	.search .site-main > article .inside-article {
		transition: none;
		transform: none !important;
	}
}

/* Sur une page de catégorie, inutile de répéter la catégorie dans chaque
   carte (règle placée en dernier et renforcée pour passer devant
   l'affichage des pastilles défini plus haut) */
body.category.archive footer.entry-meta .cat-links {
	display: none;
}

/* =========================================================================
   Page « Recent Updates » (page 83) : en-tête centré, un sous-titre par
   jour, fiches en cartes. Le contenu est produit par le pipeline
   (src/recent_updates.py) ; si l'ID de la page change, remplacer
   .page-id-83 ici et la constante du functions.php.
   ========================================================================= */

/* En-tête : même traitement que les pages de catégorie */
.page-id-83 .entry-header {
	position: relative;
	z-index: 0;
	margin: 0;
	padding: 2.5rem 1rem 0.5rem;
	text-align: center;
}

.page-id-83 .entry-header::before {
	content: "";
	position: absolute;
	inset: 0 10% auto;
	height: 100%;
	z-index: -1;
	background:
		radial-gradient(closest-side at 35% 50%, rgba(34, 197, 94, 0.13), transparent),
		radial-gradient(closest-side at 65% 50%, rgba(59, 130, 246, 0.13), transparent);
	filter: blur(8px);
	pointer-events: none;
}

.page-id-83 .entry-title {
	font-size: clamp(2.2rem, 4.6vw, 3.4rem);
	line-height: 1.1;
	letter-spacing: -0.035em;
}

/* Le contenu devient une grille : les cartes se rangent trois par ligne,
   tout le reste (textes, titres) occupe la largeur entière */
.page-id-83 .entry-content {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.25rem 1.5rem;
	align-items: stretch;
}

.page-id-83 .entry-content > * {
	grid-column: 1 / -1;
	margin: 0;
}

.page-id-83 .entry-content > .gfp-recent-entry {
	grid-column: auto;
}

@media (max-width: 1024px) {
	.page-id-83 .entry-content {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.page-id-83 .entry-content {
		grid-template-columns: 1fr;
		gap: 1rem;
	}
}

/* Introduction et date de rafraîchissement, centrées sous le titre */
.page-id-83 .gfp-recent-intro {
	max-width: 760px;
	justify-self: center;
	text-align: center;
	font-size: 17px;
	line-height: 1.7;
	color: var(--gfp-ink-muted);
}

.page-id-83 .gfp-recent-refreshed {
	justify-self: center;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 6px 14px 6px 12px;
	font-family: var(--gfp-font-display);
	font-size: 13px;
	font-weight: 600;
	color: var(--gfp-navy);
	background: #fff;
	border: 1px solid var(--gfp-navy-soft);
	border-radius: 999px;
	box-shadow: 0 1px 2px rgba(11, 42, 91, 0.06);
}

.page-id-83 .gfp-recent-refreshed::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--gfp-green);
	box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.2);
}

/* Titres de section : comme les titres de section des fiches */
.page-id-83 .gfp-recent-section {
	margin-top: calc(var(--gfp-space) * 1.8);
	padding-bottom: 0.6rem;
	font-weight: 800;
	letter-spacing: -0.015em;
	color: var(--gfp-navy);
	background-image: linear-gradient(var(--gfp-green), var(--gfp-green));
	background-repeat: no-repeat;
	background-size: 4rem 5px;
	background-position: left bottom;
}

.page-id-83 .gfp-recent-updated {
	background-image: linear-gradient(#3B82F6, #3B82F6);
}

.page-id-83 .gfp-recent-section-intro {
	margin-top: -0.25rem;
	color: var(--gfp-ink-muted);
}

/* Un sous-titre par jour : pastille avec icône calendrier */
.page-id-83 .gfp-recent-day {
	justify-self: start;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 0.75rem;
	padding: 7px 14px 7px 12px;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0;
	color: var(--gfp-navy);
	background: var(--gfp-navy-soft);
	border-radius: 999px;
}

.page-id-83 .gfp-recent-day::before {
	content: "";
	width: 15px;
	height: 15px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B2A5B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='5' width='16' height='16' rx='2'/%3E%3Cpath d='M16 3v4M8 3v4M4 11h16'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Carte d'une fiche */
.entry-content .gfp-recent-entry {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 1.4rem 1.4rem 1.3rem;
	background: #fff;
	border: 1px solid var(--gfp-navy-soft);
	border-radius: var(--gfp-radius);
	box-shadow: var(--gfp-shadow);
	transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}

.entry-content .gfp-recent-entry:hover {
	border-color: var(--gfp-green);
	box-shadow: var(--gfp-shadow-hover);
	transform: translateY(-3px);
}

/* Badge en haut à droite : « New » dans la première section,
   « Updated » dans la seconde */
.entry-content .gfp-recent-entry::before {
	content: "New";
	position: absolute;
	top: 1.1rem;
	right: 1.1rem;
	padding: 3px 9px;
	font-family: var(--gfp-font-display);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--gfp-green-ink);
	background: var(--gfp-green);
	border-radius: 999px;
}

.page-id-83 .gfp-recent-updated ~ .gfp-recent-entry::before,
.entry-content .gfp-recent-entry--updated::before {
	content: "Updated";
	color: #fff;
	background: #3B82F6;
}

/* Ligne de tête : nom, puis catégorie en pastille dessous.
   Le « — in » d'origine est masqué (taille 0), seuls les liens restent. */
.entry-content .gfp-recent-head {
	margin: 0 5.75rem 0.75rem 0;
	font-size: 0;
	line-height: 0;
}

.entry-content .gfp-recent-head strong {
	display: block;
	font-size: 1.3rem;
	line-height: 1.25;
}

.entry-content .gfp-recent-name,
.entry-content .gfp-recent-name:visited {
	font-family: var(--gfp-font-display);
	font-weight: 800;
	letter-spacing: -0.02em;
	color: var(--gfp-navy);
	text-decoration: none;
}

/* Le nom couvre toute la carte */
.entry-content .gfp-recent-name::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
}

.entry-content .gfp-recent-head em {
	display: block;
	margin-top: 0.6rem;
	font-style: normal;
}

.entry-content .gfp-recent-category {
	position: relative;
	z-index: 1;               /* reste cliquable au-dessus du lien de carte */
	display: inline-flex;
	padding: 4px 10px;
	font-family: var(--gfp-font-display);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.3;
	color: #fff;
	background: var(--gfp-navy);
	border-radius: 999px;
	text-decoration: none;
}

.entry-content .gfp-recent-category:hover {
	color: #fff;
	background: var(--gfp-navy-deep);
}

.entry-content .gfp-recent-excerpt {
	margin: 0;
	font-size: 15.5px;
	line-height: 1.65;
	color: var(--gfp-ink);
}

.entry-content .gfp-recent-entry:focus-within {
	outline: 3px solid var(--gfp-green);
	outline-offset: 3px;
}

.entry-content .gfp-recent-name:focus-visible {
	outline: none;
}

/* « And N more… » et section vide */
.page-id-83 .gfp-recent-more {
	text-align: center;
	font-size: 14px;
	font-weight: 600;
	color: var(--gfp-ink-muted);
}

.page-id-83 .gfp-recent-empty {
	padding: 1.25rem 1.4rem;
	color: var(--gfp-ink-muted);
	background: var(--gfp-surface);
	border: 1px dashed #C7D4E8;
	border-radius: var(--gfp-radius);
}

@media (prefers-reduced-motion: reduce) {
	.entry-content .gfp-recent-entry {
		transition: none;
		transform: none !important;
	}
}

/* =========================================================================
   Page d'accueil (page 89) : modules [gfp_…] du functions.php
   ========================================================================= */

/* Héros : grand titre centré sur le halo vert et bleu */
.entry-content .gfp-home-hero {
	position: relative;
	z-index: 0;
	padding: 3rem 1rem 1.5rem;
	text-align: center;
}

.entry-content .gfp-home-hero::before {
	content: "";
	position: absolute;
	inset: 0 8% auto;
	height: 100%;
	z-index: -1;
	background:
		radial-gradient(closest-side at 35% 50%, rgba(34, 197, 94, 0.15), transparent),
		radial-gradient(closest-side at 65% 50%, rgba(59, 130, 246, 0.15), transparent);
	filter: blur(10px);
	pointer-events: none;
}

.entry-content .gfp-home-hero__title {
	margin: 0;
	font-size: clamp(2.5rem, 6vw, 4.2rem);
	font-weight: 800;
	line-height: 1.05;
	letter-spacing: -0.04em;
	color: var(--gfp-navy);
}

.entry-content .gfp-home-hero__subtitle {
	max-width: 720px;
	margin: 1.1rem auto 0;
	font-size: 1.15em;
	line-height: 1.65;
	color: var(--gfp-ink-muted);
}

/* Sections */
.entry-content .gfp-home-section {
	margin: calc(var(--gfp-space) * 2.5) 0 0;
}

:is(.entry-content, .gfp-related) .gfp-home-head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 0.75rem 1.5rem;
	margin-bottom: 1.5rem;
}

:is(.entry-content, .gfp-related) .gfp-home-head__text {
	flex: 1 1 420px;
	min-width: 0;
}

:is(.entry-content, .gfp-related) .gfp-home-title {
	margin: 0;
	padding-bottom: 0.6rem;
	font-weight: 800;
	letter-spacing: -0.015em;
	color: var(--gfp-navy);
	background-image: linear-gradient(var(--gfp-green), var(--gfp-green));
	background-repeat: no-repeat;
	background-size: 4rem 5px;
	background-position: left bottom;
}

:is(.entry-content, .gfp-related) .gfp-home-intro {
	margin: 0.75rem 0 0;
	color: var(--gfp-ink-muted);
}

:is(.entry-content, .gfp-related) .gfp-home-more,
:is(.entry-content, .gfp-related) .gfp-home-more:visited {
	flex: none;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 9px 16px;
	font-family: var(--gfp-font-display);
	font-size: 14px;
	font-weight: 700;
	color: var(--gfp-navy);
	text-decoration: none;
	background: #fff;
	border: 1px solid #C7D4E8;
	border-radius: 999px;
	transition: background-color 0.15s ease, border-color 0.15s ease;
}

:is(.entry-content, .gfp-related) .gfp-home-more::after {
	content: "\2192";
	transition: transform 0.15s ease;
}

:is(.entry-content, .gfp-related) .gfp-home-more:hover {
	color: var(--gfp-navy);
	background: var(--gfp-green-soft);
	border-color: var(--gfp-green);
}

:is(.entry-content, .gfp-related) .gfp-home-more:hover::after {
	transform: translateX(3px);
}

/* Grille de cartes */
:is(.entry-content, .gfp-related) .gfp-card-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.25rem 1.5rem;
}

@media (max-width: 1024px) {
	:is(.entry-content, .gfp-related) .gfp-card-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	:is(.entry-content, .gfp-related) .gfp-card-grid {
		grid-template-columns: 1fr;
		gap: 1rem;
	}
}

/* Carte d'une fiche (modules latest / oldest) */
:is(.entry-content, .gfp-related) .gfp-card,
.entry-content .gfp-cat-card {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 1.4rem 1.4rem 1.2rem;
	background: #fff;
	border: 1px solid var(--gfp-navy-soft);
	border-radius: var(--gfp-radius);
	box-shadow: var(--gfp-shadow);
	transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}

:is(.entry-content, .gfp-related) .gfp-card:hover,
.entry-content .gfp-cat-card:hover {
	border-color: var(--gfp-green);
	box-shadow: var(--gfp-shadow-hover);
	transform: translateY(-3px);
}

:is(.entry-content, .gfp-related) .gfp-card:focus-within,
.entry-content .gfp-cat-card:focus-within {
	outline: 3px solid var(--gfp-green);
	outline-offset: 3px;
}

:is(.entry-content, .gfp-related) .gfp-card__badge {
	position: absolute;
	top: 1.1rem;
	right: 1.1rem;
	padding: 3px 9px;
	font-family: var(--gfp-font-display);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--gfp-fabio-ink);
	background: var(--gfp-fabio);
	border-radius: 999px;
}

:is(.entry-content, .gfp-related) .gfp-card__title,
.entry-content .gfp-cat-card__title {
	margin: 0 0 0.6rem;
	font-size: 1.3rem;
	font-weight: 800;
	line-height: 1.25;
	letter-spacing: -0.02em;
}

:is(.entry-content, .gfp-related) .gfp-card__badge + .gfp-card__title {
	margin-right: 7.5rem;
}

:is(.entry-content, .gfp-related) .gfp-card__title a,
.entry-content .gfp-cat-card__title a,
:is(.entry-content, .gfp-related) .gfp-card__title a:visited,
.entry-content .gfp-cat-card__title a:visited {
	color: var(--gfp-navy);
	text-decoration: none;
}

:is(.entry-content, .gfp-related) .gfp-card__title a:focus-visible,
.entry-content .gfp-cat-card__title a:focus-visible {
	outline: none;
}

/* Le titre couvre toute la carte */
:is(.entry-content, .gfp-related) .gfp-card__title a::after,
.entry-content .gfp-cat-card__title a::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
}

:is(.entry-content, .gfp-related) .gfp-card__cat {
	position: relative;
	z-index: 1;
	align-self: flex-start;
	margin-bottom: 0.75rem;
	padding: 4px 10px;
	font-family: var(--gfp-font-display);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.3;
	color: #fff;
	background: var(--gfp-navy);
	border-radius: 999px;
	text-decoration: none;
}

:is(.entry-content, .gfp-related) .gfp-card__cat:hover,
:is(.entry-content, .gfp-related) .gfp-card__cat:visited {
	color: #fff;
}

:is(.entry-content, .gfp-related) .gfp-card__cat:hover {
	background: var(--gfp-navy-deep);
}

:is(.entry-content, .gfp-related) .gfp-card__excerpt,
.entry-content .gfp-cat-card__desc {
	flex: 1 1 auto;
	margin: 0;
	font-size: 15.5px;
	line-height: 1.65;
	color: var(--gfp-ink);
}

:is(.entry-content, .gfp-related) .gfp-card__meta {
	display: flex;
	align-items: center;
	gap: 7px;
	margin: 1rem 0 0;
	padding-top: 0.85rem;
	border-top: 1px solid var(--gfp-navy-soft);
	font-family: var(--gfp-font-display);
	font-size: 12.5px;
	font-weight: 600;
	color: var(--gfp-navy);
}

:is(.entry-content, .gfp-related) .gfp-card__meta::before {
	content: "";
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--gfp-green);
	box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.2);
}

:is(.entry-content, .gfp-related) .gfp-card__meta time {
	font-weight: 500;
	color: var(--gfp-ink-muted);
}

/* Carte de catégorie : nombre d'extensions en pastille verte */
.entry-content .gfp-cat-card__count {
	align-self: flex-start;
	margin-bottom: 0.7rem;
	padding: 3px 10px;
	font-family: var(--gfp-font-display);
	font-size: 12px;
	font-weight: 700;
	color: var(--gfp-green-ink);
	background: var(--gfp-green-soft);
	border: 1px solid #BBF7D0;
	border-radius: 999px;
}

.entry-content .gfp-cat-card__desc {
	font-size: 14.5px;
	color: var(--gfp-ink-muted);
}

/* Étiquettes : pastilles avec leur nombre */
.entry-content .gfp-tag-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.entry-content .gfp-tag-pill,
.entry-content .gfp-tag-pill:visited {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 8px 8px 14px;
	font-family: var(--gfp-font-display);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
	color: var(--gfp-navy);
	text-decoration: none;
	background: #fff;
	border: 1px solid #C7D4E8;
	border-radius: 999px;
	box-shadow: 0 1px 2px rgba(11, 42, 91, 0.06);
	transition: background-color 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}

.entry-content .gfp-tag-pill::before {
	content: "#";
	margin-right: -4px;
	color: var(--gfp-green-hover);
	font-weight: 700;
}

.entry-content .gfp-tag-pill__count {
	min-width: 24px;
	padding: 2px 7px;
	font-size: 12px;
	font-weight: 700;
	text-align: center;
	color: var(--gfp-navy);
	background: var(--gfp-navy-soft);
	border-radius: 999px;
}

.entry-content .gfp-tag-pill:hover {
	color: var(--gfp-navy);
	background: var(--gfp-green-soft);
	border-color: var(--gfp-green);
	transform: translateY(-1px);
}

.entry-content .gfp-tag-pill--new,
.entry-content .gfp-tag-pill--new:visited {
	color: var(--gfp-fabio-ink);
	background: var(--gfp-fabio);
	border-color: var(--gfp-fabio);
}

.entry-content .gfp-tag-pill--new::before {
	color: var(--gfp-fabio-ink);
}

.entry-content .gfp-tag-pill--new .gfp-tag-pill__count {
	background: rgba(255, 255, 255, 0.45);
	color: var(--gfp-fabio-ink);
}

.entry-content .gfp-tag-pill--new:hover {
	color: var(--gfp-fabio-ink);
	background: #EA580C;
	border-color: #EA580C;
}

@media (prefers-reduced-motion: reduce) {
	:is(.entry-content, .gfp-related) .gfp-card,
	.entry-content .gfp-cat-card,
	.entry-content .gfp-tag-pill,
	:is(.entry-content, .gfp-related) .gfp-home-more::after {
		transition: none;
		transform: none !important;
	}
}

/* =========================================================================
   Emplacement du chatbot Fabio (ajouté par functions.php)
   Le chatbot garde son propre style ; seul l'espacement est réglé ici.
   ========================================================================= */

.gfp-chatbot-slot {
	margin: calc(var(--gfp-space) * 1.25) 0 calc(var(--gfp-space) * 1.5);
	text-align: left;
	/* Le texte des fiches (17 px, interligne 1,7) ne doit pas se
	   propager dans le chatbot : sa zone de messages a une hauteur
	   calculée pour un texte plus petit, et le message d'accueil y
	   débordait vers le haut. On rend au chatbot une typographie neutre. */
	font-size: 15px;
	line-height: 1.5;
	font-weight: 400;
}

/* Sous la description d'une catégorie ou d'une étiquette : centré,
   plus d'air au-dessus, moins en dessous (jusqu'aux cartes) */
.archive .page-header .gfp-chatbot-slot {
	max-width: 900px;
	margin: 2.75rem auto 0;
}

.archive .page-header:has(.gfp-chatbot-slot) {
	padding-bottom: 0;
	margin-bottom: 0.75rem;   /* + écart de la grille (1.5rem) = environ 36 px */
}

/* Le conteneur du chatbot peut porter sa propre marge basse : on la
   neutralise pour que les cartes remontent sous le chatbot */
.archive .page-header .gfp-chatbot-slot,
.archive .page-header .gfp-chatbot-slot > * {
	margin-bottom: 0 !important;
}

/* =========================================================================
   Fiches : plugins similaires sous la navigation précédente/suivante
   (mêmes cartes que la page d'accueil)
   ========================================================================= */

.gfp-related {
	margin-top: calc(var(--gfp-space) * 2.5);
	padding-top: calc(var(--gfp-space) * 2);
	border-top: 1px solid var(--gfp-navy-soft);
}

/* Mention « Powered by Fabio ChatBot » sous le chatbot */
/* Le bloc de Fabio (ou son cadre, enfant direct) porte une marge basse
   qui éloignait la mention : on la neutralise pour la coller au cadre */
:is(div, section, form):has(~ p.gfp-chatbot-credit),
:is(div, section, form):has(~ p.gfp-chatbot-credit) > :is(div, section, form):last-of-type {
	margin-bottom: 0 !important;
}

p.gfp-chatbot-credit {
	margin: 0.5rem 0 1.25rem !important;
	font-family: var(--gfp-font);
	font-size: 12.5px;
	font-weight: 500;
	line-height: 1.4;
	text-align: center;
	color: var(--gfp-ink-muted);
}

p.gfp-chatbot-credit a,
p.gfp-chatbot-credit a:visited {
	font-weight: 700;
	color: var(--gfp-fabio-text);
	text-decoration: none;
}

p.gfp-chatbot-credit a:hover {
	color: var(--gfp-fabio-text);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Dans le conteneur du thème, l'espacement vient du conteneur */
.gfp-chatbot-slot p.gfp-chatbot-credit {
	margin-bottom: 0 !important;
}

/* Sur grand écran, Fabio garde sous son cadre un espace qu'il n'a pas sur
   mobile : la mention remonte d'autant pour garder le même écart (≈ 8 px)
   qu'en affichage mobile. */
@media (min-width: 769px) {
	p.gfp-chatbot-credit {
		margin-top: 0.25rem !important;
	}
}

.gfpdw-box--cta {
  --gfpdw-green: #22c55e;
  --gfpdw-green-dark: #16a34a;
  --gfpdw-navy: #0f2a5c;
  --gfpdw-bg: #eef3fb;

  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  margin: 40px 0;
  padding: 28px 32px;
  background: linear-gradient(135deg, var(--gfpdw-bg) 0%, #ffffff 100%);
  border: 1px solid #d5e0f2;
  border-left: 6px solid var(--gfpdw-green);
  border-radius: 16px;
  box-shadow: 0 10px 30px rgba(15, 42, 92, 0.08);
}
.gfpdw-cta__body { flex: 1; }
.gfpdw-cta__eyebrow {
  display: inline-block;
  margin-bottom: 10px;
  padding: 4px 12px;
  border-radius: 999px;
  background: rgba(34, 197, 94, 0.14);
  color: var(--gfpdw-green-dark);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.gfpdw-cta__title {
  margin: 0 0 8px;
  color: var(--gfpdw-navy);
  font-size: 26px;
  font-weight: 800;
  line-height: 1.2;
}
.gfpdw-cta__text {
  margin: 0;
  color: #4b5b75;
  font-size: 16px;
  line-height: 1.55;
}
.gfpdw-cta__button {
  flex-shrink: 0;
  padding: 16px 30px;
  border-radius: 999px;
  background: var(--gfpdw-green);
  color: #ffffff;
  font-size: 17px;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
  box-shadow: 0 8px 22px rgba(34, 197, 94, 0.4);
  transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}
.gfpdw-cta__button:hover {
  background: var(--gfpdw-green-dark);
  color: #ffffff;
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(34, 197, 94, 0.5);
}
@media (max-width: 720px) {
  .gfpdw-box--cta { flex-direction: column; align-items: flex-start; padding: 22px; }
  .gfpdw-cta__button { width: 100%; text-align: center; box-sizing: border-box; }
}
/* =========================================================================
   Encart « mot du développeur » (plugin GetFreePlugins Developer Word)
   Utilise la palette et les polices du thème (variables --gfp-*).
   ========================================================================= */

.entry-content .gfpdw-box--developer {
	margin: calc(var(--gfp-space) * 2) 0;
	padding: 0 0 8px;
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--gfp-navy-soft);
	border-top: 5px solid var(--gfp-green);
	border-radius: var(--gfp-radius);
	box-shadow: var(--gfp-shadow);
}

/* --- Réseaux sociaux : pastilles --------------------------------------- */

.gfpdw-social {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gfpdw-social__item {
	margin: 0;
	padding: 0;
	list-style: none;
}

.entry-content .gfpdw-social__link,
.entry-content .gfpdw-social__link:visited {
	display: inline-flex;
	align-items: center;
	box-sizing: border-box;
	min-height: 36px;
	padding: 6px 14px;
	font-family: var(--gfp-font-display);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--gfp-navy);
	background: var(--gfp-navy-soft);
	border: 1px solid #C7D4E8;
	border-radius: 999px;
	text-decoration: none;
	transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

.entry-content .gfpdw-social__link:hover {
	color: #fff;
	background: var(--gfp-navy);
	border-color: var(--gfp-navy);
	transform: translateY(-1px);
}

/* --- Titre H2 : même barre verte que les titres de la fiche ------------- */

.entry-content .gfpdw-title {
	margin: 0;
	padding: 28px 28px 0.6rem;
	font-family: var(--gfp-font-display);
	font-size: clamp(1.5rem, 2.6vw, 1.9rem);
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: -0.015em;
	color: var(--gfp-navy);
}

/* --- Ligne « rédigé par le développeur » + réseaux sociaux -------------- */

.entry-content .gfpdw-byline {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px 18px;
	margin: 6px 28px 0;
	padding-bottom: 22px;
	border-bottom: 1px solid var(--gfp-navy-soft);
}

.entry-content .gfpdw-byline__avatar {
	flex-shrink: 0;
	line-height: 0;
}

.entry-content .gfpdw-byline .gfpdw-avatar {
	width: 52px;
	height: 52px;
	border-radius: 50%;
	border: 3px solid var(--gfp-green);
	box-shadow: 0 2px 8px rgba(11, 42, 91, 0.15);
	object-fit: cover;
}

.entry-content .gfpdw-byline__text {
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin: 0;
	line-height: 1.3;
}

.entry-content .gfpdw-byline__label {
	font-size: 13px;
	font-weight: 500;
	color: var(--gfp-ink-muted);
}

.entry-content .gfpdw-byline__name,
.entry-content .gfpdw-byline__name:visited {
	font-family: var(--gfp-font-display);
	font-size: 17px;
	font-weight: 800;
	color: var(--gfp-navy);
}

.entry-content .gfpdw-byline__name:hover {
	color: var(--gfp-green-hover);
}

/* Les pastilles se rangent à droite, sur la même ligne que le nom */
.entry-content .gfpdw-byline .gfpdw-social {
	flex: 1 1 260px;
	justify-content: flex-end;
}

/* --- Les deux questions ---------------------------------------------------- */

.entry-content .gfpdw-section {
	padding: 24px 28px 4px;
}

.entry-content .gfpdw-section + .gfpdw-section {
	margin-top: 4px;
	border-top: 1px solid var(--gfp-navy-soft);
}

.entry-content .gfpdw-subtitle {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 0.9rem;
	font-family: var(--gfp-font-display);
	font-size: 1.2rem;
	font-weight: 700;
	line-height: 1.3;
	color: var(--gfp-navy);
}

/* Pastille ronde devant chaque question : coche verte / éclair bleu nuit */
.entry-content .gfpdw-subtitle::before {
	content: "";
	flex-shrink: 0;
	width: 1.7rem;
	height: 1.7rem;
	border-radius: 50%;
}

.entry-content .gfpdw-section--limits .gfpdw-subtitle::before {
	background: var(--gfp-green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23052E16' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center / 62% no-repeat;
}

.entry-content .gfpdw-section--ai .gfpdw-subtitle::before {
	background: var(--gfp-navy) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2386EFAC'%3E%3Cpath d='M13 2L4 14h6l-1 8 9-12h-6z'/%3E%3C/svg%3E") center / 58% no-repeat;
}

/* --- Texte du développeur -------------------------------------------------- */

.entry-content .gfpdw-text {
	color: var(--gfp-ink);
	line-height: 1.7;
}

.entry-content .gfpdw-text p {
	margin: 0 0 1em;
}

.entry-content .gfpdw-text strong {
	color: var(--gfp-navy);
}

.entry-content .gfpdw-text ul,
.entry-content .gfpdw-text ol {
	margin: 0 0 1em 1.3rem;
	padding: 0;
}

.entry-content .gfpdw-text li {
	margin-bottom: 0.4em;
}

.entry-content .gfpdw-text li::marker {
	color: var(--gfp-green);
	font-weight: 700;
}

.entry-content .gfpdw-text blockquote {
	margin: 0 0 1em;
	padding: 0.6rem 1.1rem;
	background: var(--gfp-green-soft);
	border-left: 4px solid var(--gfp-green);
	border-radius: 0 var(--gfp-radius-sm) var(--gfp-radius-sm) 0;
}

.entry-content .gfpdw-text img {
	display: block;
	max-width: 100%;
	height: auto;
	margin: 1.2rem auto;
	border: 1px solid var(--gfp-navy-soft);
	border-radius: var(--gfp-radius-sm);
	box-shadow: var(--gfp-shadow);
}

/* --- Vidéos YouTube / Vimeo : 16/9, coins arrondis ------------------------ */

.entry-content .gfpdw-video {
	position: relative;
	aspect-ratio: 16 / 9;
	margin: 1.2rem 0;
	overflow: hidden;
	background: var(--gfp-navy-deep);
	border-radius: var(--gfp-radius-sm);
	box-shadow: var(--gfp-shadow);
}

.entry-content .gfpdw-video iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

/* --- Page publique du développeur ------------------------------------------ */
/* Le thème affiche déjà le nom et la photo ; ici : la bio (un vrai paragraphe)
   et les pastilles des réseaux. */

.gfpdw-profile {
	margin: 0 auto;
	text-align: center;
}

.gfpdw-profile .gfpdw-profile__bio,
.gfpdw-profile .gfpdw-profile__bio p {
	margin: 0 0 1rem;
	font-family: var(--gfp-font);
	font-size: 17px;
	font-weight: 400;
	line-height: 1.7;
	letter-spacing: normal;
	color: var(--gfp-ink-muted);
}

.gfpdw-profile .gfpdw-social {
	justify-content: center;
	margin-top: 0.5rem;
}

.gfpdw-profile .gfpdw-social__link,
.gfpdw-profile .gfpdw-social__link:visited {
	display: inline-flex;
	align-items: center;
	box-sizing: border-box;
	min-height: 36px;
	padding: 6px 14px;
	font-family: var(--gfp-font-display);
	font-size: 13px;
	font-weight: 700;
	color: var(--gfp-navy);
	background: var(--gfp-navy-soft);
	border: 1px solid #C7D4E8;
	border-radius: 999px;
	text-decoration: none;
}

.gfpdw-profile .gfpdw-social__link:hover {
	color: #fff;
	background: var(--gfp-navy);
	border-color: var(--gfp-navy);
}

/* --- Mobile ---------------------------------------------------------------- */

@media (max-width: 720px) {
	.entry-content .gfpdw-title,
	.entry-content .gfpdw-section {
		padding-left: 20px;
		padding-right: 20px;
	}
	.entry-content .gfpdw-byline {
		margin-left: 20px;
		margin-right: 20px;
		gap: 12px 14px;
	}
	/* La photo reste à gauche du nom, qui peut passer sur deux lignes */
	.entry-content .gfpdw-byline__text {
		flex: 1 1 0;
		min-width: 0;
	}
	/* Les pastilles passent sous le nom, sur toute la largeur, alignées à gauche */
	.entry-content .gfpdw-byline .gfpdw-social {
		flex: 1 1 100%;
		justify-content: flex-start;
	}
}

/* =========================================================================
   Widgets sponsorisés Namecheap (.gfp-ad) : version compacte.
   Bande pleine largeur : texte, code promo et bouton à gauche, arguments à
   droite. Palette du thème, pas d'orange (réservé à Fabio).
   ========================================================================= */

.entry-content .gfp-ad {
	position: relative;
	isolation: isolate;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 0.7rem;
	align-items: center;
	width: 100%;
	box-sizing: border-box;
	margin: calc(var(--gfp-space) * 2) 0;
	padding: 1.15rem 2rem 0.7rem;
	background:
		radial-gradient(circle at 100% 0%, rgba(59, 130, 246, 0.28), transparent 45%),
		var(--gfp-navy);
	border-radius: var(--gfp-radius);
	box-shadow: var(--gfp-shadow);
	color: #fff;
	overflow: hidden;
}

/* Liseré dégradé vert → bleu, comme le pied de page */
.entry-content .gfp-ad::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: linear-gradient(90deg, var(--gfp-green) 0%, #3B82F6 60%, var(--gfp-navy) 100%);
}

/* Colonne de gauche : étiquette et pastille sur une ligne, puis titre,
   accroche, et enfin code promo et bouton côte à côte */
.entry-content .gfp-ad__main {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0 14px;
	text-align: center;
}

.entry-content .gfp-ad__label {
	margin: 0 0 0.35rem;
	font-family: var(--gfp-font-display);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--gfp-green-light);
}

.entry-content .gfp-ad__badge {
	margin: 0 0 0.35rem;
	padding: 3px 11px;
	font-family: var(--gfp-font-display);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.05em;
	color: var(--gfp-green-ink);
	background: var(--gfp-green);
	border-radius: 999px;
}

.entry-content .gfp-ad__title {
	flex: 0 0 100%;
	margin: 0 0 0.3rem;
	font-family: var(--gfp-font-display);
	font-size: clamp(1.45rem, 2.4vw, 1.9rem);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.025em;
	color: #fff;
}

.entry-content .gfp-ad__price {
	color: var(--gfp-green-light);
}

.entry-content .gfp-ad__lead {
	flex: 0 0 100%;
	margin: 0 auto 0.7rem;
	max-width: 820px;
	font-size: 15px;
	line-height: 1.45;
	color: var(--gfp-on-navy-muted);
}

/* Rangée code promo + bouton, alignés sur la même ligne */
.entry-content .gfp-ad__action {
	flex: 0 0 100%;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 12px 20px;
	margin: 0 0 0.6rem;
}

/* Bouton vert, même famille que le bouton de téléchargement */
.entry-content .gfp-ad a.gfp-ad__button[href],
.entry-content .gfp-ad a.gfp-ad__button[href]:visited {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 0.75rem 1.6rem;
	font-family: var(--gfp-font-display);
	font-size: 1em;
	font-weight: 800;
	line-height: 1.3;
	text-align: center;
	text-decoration: none;
	color: var(--gfp-green-ink);
	background: linear-gradient(180deg, #2BD468 0%, var(--gfp-green) 100%);
	border-radius: 999px;
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.35),
		0 0 0 4px rgba(34, 197, 94, 0.16),
		0 8px 20px rgba(34, 197, 94, 0.3);
	transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.entry-content .gfp-ad a.gfp-ad__button[href]::after {
	content: "\2192";
	margin-left: 10px;
	transition: transform 0.15s ease;
}

.entry-content .gfp-ad a.gfp-ad__button[href]:hover,
.entry-content .gfp-ad a.gfp-ad__button[href]:focus {
	color: var(--gfp-green-ink);
	background: linear-gradient(180deg, #4ADE80 0%, #2BD468 100%);
	transform: translateY(-2px);
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.4),
		0 0 0 6px rgba(34, 197, 94, 0.2),
		0 12px 26px rgba(34, 197, 94, 0.42);
}

.entry-content .gfp-ad a.gfp-ad__button[href]:hover::after {
	transform: translateX(3px);
}

.entry-content .gfp-ad a.gfp-ad__button[href]:focus-visible {
	outline: 3px solid #fff;
	outline-offset: 4px;
}

/* Code promo : coupon compact à côté du bouton, clic = copie */
.entry-content .gfp-ad__promo {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: center;
	gap: 12px;
	box-sizing: border-box;
	margin: 0;
	padding: 0.4rem 0.6rem 0.4rem 1rem;
	text-align: center;
	background: rgba(134, 239, 172, 0.1);
	border: 2px dashed var(--gfp-green-light);
	border-radius: var(--gfp-radius);
}

/* Filet de sécurité : WordPress peut glisser des <br> ou des <p> vides
   dans un bloc HTML, ce qui décale le contenu du coupon */
.entry-content .gfp-ad__promo br,
.entry-content .gfp-ad__promo p:empty,
.entry-content .gfp-ad__code br {
	display: none;
}

.entry-content .gfp-ad__promo-label {
	display: block;
	margin: 0;
	text-align: left;
	font-family: var(--gfp-font-display);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--gfp-green-light);
}

.entry-content .gfp-ad__code {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	align-self: center;
	margin: 0 auto;
	gap: 12px;
	padding: 6px 8px 6px 14px;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: clamp(1.15rem, 4.5vw, 1.4rem);
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: 0.06em;
	color: var(--gfp-navy);
	background: #fff;
	border: 0;
	border-radius: 10px;
	box-shadow: 0 5px 14px rgba(0, 0, 0, 0.25);
	cursor: pointer;
	transition: background-color 0.15s ease, transform 0.15s ease;
}

.entry-content .gfp-ad__code-action {
	padding: 5px 11px;
	font-family: var(--gfp-font-display);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--gfp-green-ink);
	background: var(--gfp-green);
	border-radius: 999px;
}

.entry-content .gfp-ad__code:hover,
.entry-content .gfp-ad__code:focus-visible {
	background: var(--gfp-green-soft);
	transform: translateY(-1px);
	outline: none;
}

.entry-content .gfp-ad__code:focus-visible {
	box-shadow: 0 0 0 3px var(--gfp-green-light), 0 5px 14px rgba(0, 0, 0, 0.25);
}

.entry-content .gfp-ad__code.is-copied .gfp-ad__code-action {
	color: #fff;
	background: var(--gfp-green-hover);
}

.entry-content .gfp-ad__fine strong {
	color: #fff;
}

.entry-content .gfp-ad__fine {
	flex: 0 0 100%;
	margin: 0 auto;
	max-width: 820px;
	font-size: 13px;
	line-height: 1.5;
	color: var(--gfp-on-navy-muted);
}

/* Mention d'affiliation : sur toute la largeur, en bas */
.entry-content .gfp-ad__disclosure {
	grid-column: 1 / -1;
	margin: 0;
	padding-top: 0.55rem;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	font-size: 11.5px;
	line-height: 1.4;
	text-align: center;
	color: var(--gfp-on-navy-muted);
}

/* Grand écran : le widget a la largeur de son contenu et se centre dans la
   colonne (au lieu de remplir toute la largeur du conteneur) */
@media (min-width: 861px) {
	.entry-content .gfp-ad {
		width: min(100%, 940px);
		margin-left: auto;
		margin-right: auto;
	}
	.entry-content .gfp-ad--domain {
		width: min(100%, 900px);
	}
}

/* Tablette et mobile : une colonne, code promo et bouton l'un sous l'autre */
@media (max-width: 860px) {
	.entry-content .gfp-ad {
		grid-template-columns: 1fr;
		gap: 0.7rem;
		padding: 1.1rem 1rem 0.7rem;
	}
	.entry-content .gfp-ad__title {
		font-size: 1.45rem;
	}
	.entry-content .gfp-ad__lead {
		font-size: 14px;
		margin-bottom: 0.7rem;
	}
	.entry-content .gfp-ad__action {
		flex-direction: column;
		align-items: stretch;
		gap: 10px;
	}
	.entry-content .gfp-ad__promo {
		flex-direction: column;
		gap: 5px;
		padding: 0.5rem 0.8rem 0.6rem;
	}
	.entry-content .gfp-ad__promo-label {
		text-align: center;
	}
	.entry-content .gfp-ad a.gfp-ad__button[href] {
		display: flex;
		width: 100%;
		box-sizing: border-box;
	}
}

/* Mobile : l'accroche est masquée (le titre et la liste portent l'argumentaire) pour gagner de la hauteur */
@media (max-width: 600px) {
	.entry-content .gfp-ad__lead {
		display: none;
	}
	.entry-content .gfp-ad__title {
		margin-bottom: 0.7rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.entry-content .gfp-ad a.gfp-ad__button[href],
	.entry-content .gfp-ad a.gfp-ad__button[href]::after {
		transition: none;
	}
	.entry-content .gfp-ad a.gfp-ad__button[href]:hover,
	.entry-content .gfp-ad a.gfp-ad__button[href]:hover::after {
		transform: none;
	}
}

/* =========================================================================
   Page « Participate » : correctif des deux boutons d'accès
   À ajouter À LA FIN de style.css (après tout le reste).

   Deux causes corrigées :
   1. Les variables --gfpdw-* n'étaient définies que sur .gfpdw-box--cta :
      hors de cet encart, le fond vert du bouton n'existait pas
      (bouton transparent). Elles sont maintenant globales, et le bouton
      de cette page s'appuie en plus sur les variables du thème (--gfp-*).
   2. Le conteneur des boutons doit être une ligne flex qui passe à la
      ligne sans chevauchement (sinon deux liens « en ligne » dotés d'un
      padding vertical se recouvrent).
   ========================================================================= */

:root {
	--gfpdw-green: #22c55e;
	--gfpdw-green-dark: #16a34a;
	--gfpdw-navy: #0f2a5c;
	--gfpdw-bg: #eef3fb;
}

.entry-content .gfp-participate-choices {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: center;
	align-items: stretch;
	gap: 16px;
	clear: both;
	margin: 2rem 0 2.5rem;
	padding: 0;
}

/* WordPress peut glisser des <br> ou des <p> vides entre les liens */
.entry-content .gfp-participate-choices br,
.entry-content .gfp-participate-choices p:empty {
	display: none;
}

.entry-content .gfp-participate-choices a.gfpdw-cta__button,
.entry-content .gfp-participate-choices a.gfpdw-cta__button:visited {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 1 auto;
	box-sizing: border-box;
	margin: 0;
	padding: 1rem 1.9rem;
	font-family: var(--gfp-font-display);
	font-size: 1.05rem;
	font-weight: 800;
	line-height: 1.3;
	text-align: center;
	text-decoration: none;
	white-space: normal;
	color: var(--gfp-green-ink);
	background: linear-gradient(180deg, #2BD468 0%, var(--gfp-green) 100%);
	border-radius: 999px;
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.35),
		0 0 0 5px rgba(34, 197, 94, 0.14),
		0 10px 24px rgba(34, 197, 94, 0.32);
	transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.entry-content .gfp-participate-choices a.gfpdw-cta__button:hover,
.entry-content .gfp-participate-choices a.gfpdw-cta__button:focus {
	color: var(--gfp-green-ink);
	background: linear-gradient(180deg, #4ADE80 0%, #2BD468 100%);
	transform: translateY(-2px);
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.4),
		0 0 0 7px rgba(34, 197, 94, 0.18),
		0 14px 30px rgba(34, 197, 94, 0.4);
}

.entry-content .gfp-participate-choices a.gfpdw-cta__button:focus-visible {
	outline: 3px solid var(--gfp-navy);
	outline-offset: 4px;
}

/* Mobile : un bouton par ligne, pleine largeur */
@media (max-width: 720px) {
	.entry-content .gfp-participate-choices {
		flex-direction: column;
		align-items: stretch;
		gap: 12px;
	}
	.entry-content .gfp-participate-choices a.gfpdw-cta__button {
		flex: 1 1 auto;
		width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.entry-content .gfp-participate-choices a.gfpdw-cta__button {
		transition: none;
	}
	.entry-content .gfp-participate-choices a.gfpdw-cta__button:hover,
	.entry-content .gfp-participate-choices a.gfpdw-cta__button:focus {
		transform: none;
	}
}

/* Les titres ne passent pas sous l'en-tête collant */
#claim-ownership,
#ask-questions {
	scroll-margin-top: 110px;
}