/*
 Theme Name:   Ephrem Child Theme
 Theme URI:    https://ephrem.agency
 Description:  WP Ephrem Child theme — Refonte Eosium (Light Tech Premium)
 Author:       ephrem@ephreminteractive.com
 Author URI:   https://ephrem.agency
 Template:     wp-ephrem-theme
 Version:      4.6.0
 License:      GNU General Public License v2 or later
 License URI:  https://www.gnu.org/licenses/gpl-2.0.html
 Tags:         responsive-layout, accessibility-ready
 Text Domain:  ephrem
*/

/* =========================================================
   0. Google Fonts — Inter (300 → 900)
   ========================================================= */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap');

/* =========================================================
   1. Variables — Eosium Light Tech Premium
   ========================================================= */
:root {
	/* Palette de marque (inchangée — accents) */
	--navy-deep:     #0D1B3E;
	--navy-mid:      #162347;
	--navy-light:    #1E2F5A;
	--blue-electric: #009FFF;
	--blue-glow:     #33B5FF;
	--blue-dark:     #0070CC;
	--orange:        #F5A623;
	--orange-dark:   #D4891A;

	/* Surfaces claires */
	--white:         #FFFFFF;
	--bg-page:       #FFFFFF;
	--bg-alt:        #F4F7FC;     /* sections en alternance */
	--bg-soft:       #EEF3FB;     /* zones très subtiles */

	/* Texte */
	--text-primary:   #0D1B3E;    /* navy deep pour le corps */
	--text-secondary: #3D4D75;    /* navy moyen lisible */
	--text-muted:     #6B7FA3;    /* gris-bleu existant */
	--text-on-dark:   #FFFFFF;
	--gray-light:     #6B7FA3;    /* alias pour compat avec maquettes */
	--gray-muted:     #6B7FA3;    /* alias pour compat avec maquettes */

	/* Bordures & ombres */
	--border-soft:   rgba(13, 27, 62, 0.08);
	--border-med:    rgba(13, 27, 62, 0.14);
	--border-blue:   rgba(0, 159, 255, 0.25);
	--border-orange: rgba(245, 166, 35, 0.35);

	--shadow-sm: 0 2px 8px rgba(13, 27, 62, 0.06);
	--shadow-md: 0 8px 24px rgba(13, 27, 62, 0.08);
	--shadow-lg: 0 16px 48px rgba(13, 27, 62, 0.10);

	/* Rayons */
	--radius-sm: 8px;
	--radius-md: 12px;
	--radius-lg: 16px;
	--radius-xl: 20px;
	--radius-2xl: 24px;
	--radius-pill: 999px;
}

/* =========================================================
   2. Base — Body, typo, sélection
   ========================================================= */
body {
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	background-color: var(--bg-page);
	color: var(--text-primary);
	overflow-x: hidden;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
	font-family: 'Inter', sans-serif;
	color: var(--text-primary);
	font-weight: 800;
	letter-spacing: -0.01em;
}

/* H1 — dégradé navy → bleu électrique (équivalent fond clair du blanc → bleu de la maquette) */
h1 {
	font-weight: 900;
	letter-spacing: -0.02em;
	color: var(--navy-deep); /* fallback */
	background: linear-gradient(135deg, var(--navy-deep) 0%, var(--blue-electric) 100%);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}

/* H2 — taille fixe standardisée (idem desktop / mobile) */
h2 {
	font-size: 32px;
	font-weight: 900;
	line-height: 1.2;
	letter-spacing: -0.02em;
	margin: 0 0 1rem;
	text-wrap: balance;
	position: relative;
}

/* Variante décorée : petite barre dégradée bleu → orange sous le titre.
   À utiliser via <h2 class="h2-accent">…</h2> ou automatiquement
   à l'intérieur de .section-header (voir plus bas). */
h2.h2-accent::after,
.section-header h2::after {
	content: '';
	display: block;
	width: 64px;
	height: 4px;
	margin-top: 18px;
	border-radius: 4px;
	background: linear-gradient(90deg, var(--blue-electric) 0%, var(--orange) 100%);
	box-shadow: 0 4px 14px rgba(0, 159, 255, 0.25);
}

/* Quand le H2 est centré, la barre suit */
h2.text-center.h2-accent::after,
.section-header.text-center h2::after,
.has-text-align-center.h2-accent::after {
	margin-left: auto;
	margin-right: auto;
}

/* Variante orange seule (sections « urgent / sécurité ») */
h2.h2-accent--orange::after {
	background: linear-gradient(90deg, var(--orange) 0%, var(--orange-dark) 100%);
	box-shadow: 0 4px 14px rgba(245, 166, 35, 0.30);
}

/* Variante bleue seule (sections « technique / produit ») */
h2.h2-accent--blue::after {
	background: linear-gradient(90deg, var(--blue-electric) 0%, var(--blue-glow) 100%);
	box-shadow: 0 4px 14px rgba(0, 159, 255, 0.30);
}

/* H3 — un cran sous le H2, légèrement plus compact */
h3 {
	font-size: clamp(20px, 2vw, 26px);
	font-weight: 800;
	line-height: 1.25;
	letter-spacing: -0.015em;
	margin: 0 0 0.75rem;
	text-wrap: balance;
}

/* Wrapper de "section-header" — badge + h2 + intro avec un rythme vertical propre.
   Centré par défaut, alignement libre via .text-start / .text-end. */
.section-header {
	max-width: 720px;
	margin: 0 auto 3rem;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
}
.section-header.text-start {
	text-align: left;
	margin-left: 0;
	align-items: flex-start;
}
.section-header.text-end {
	text-align: right;
	margin-right: 0;
	align-items: flex-end;
}
.section-header .badge,
.section-header .badge-orange,
.section-header .eyebrow { margin-bottom: 4px; }
.section-header h2 { margin-bottom: 8px; }
.section-header p {
	font-size: clamp(16px, 1.4vw, 19px);
	line-height: 1.6;
	color: var(--text-secondary);
	margin: 12px 0 0;
	max-width: 56ch;
}
.section-header.text-start p { margin-left: 0; }
.section-header.text-end p   { margin-right: 0; }

/* Sur fond foncé, on revient au dégradé original blanc → bleu de la maquette */
.section-dark h1,
.bg-navy h1,
.bg-navy-mid h1 {
	color: #FFFFFF;
	background: linear-gradient(135deg, #FFFFFF 0%, var(--blue-electric) 100%);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}
.section-dark h2,
.bg-navy h2,
.bg-navy-mid h2,
.eos-footer h2 { color: #FFFFFF; }
.section-dark h3,
.bg-navy h3,
.bg-navy-mid h3,
.eos-footer h3 { color: #FFFFFF; }

p {
	color: var(--text-secondary);
	line-height: 1.65;
	font-size: inherit !important;
}

a {
	color: var(--blue-electric);
	text-decoration: none;
	transition: color 0.2s ease;
}
a:hover { color: var(--blue-dark); }

::selection {
	background: rgba(0, 159, 255, 0.18);
	color: var(--navy-deep);
}

/* Reset global du <footer> — le parent applique background:#000 + margin/padding
   sur TOUT <footer> (parent/style.css:829). On neutralise pour tous les <footer>
   sauf le site footer (.eos-footer) qui garde son style propre. */
footer:not(.eos-footer) {
	background: transparent;
	width: auto;
	margin-top: 0;
	padding-top: 0;
}

::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: var(--bg-soft); }
::-webkit-scrollbar-thumb { background: var(--navy-deep); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: var(--navy-mid); }

/* Firefox */
html { scrollbar-width: thin; scrollbar-color: var(--navy-deep) var(--bg-soft); }

/* =========================================================
   3. Navigation principale (Bootstrap navbar du thème parent)
   ========================================================= */

/* Barre de nav — fixed + inverse côté parent.
   Le JS du parent (library/js/scripts.js) bascule au scroll :
     haut    → .bg-transparent.navbar-dark   (transparent, texte clair)
     scrollé → .bg-dark.navbar-light          (navy condensé, texte clair conservé)
   Réglages : window.EphremTheme.navScroll = { enabled, threshold } */
.navbar {
	font-family: 'Inter', sans-serif;
	padding-top: 18px;
	padding-bottom: 18px;
	transition: background 0.3s ease, box-shadow 0.3s ease, padding 0.3s ease, border-color 0.3s ease;
}

/* État haut de page — entièrement transparente */
.navbar.bg-transparent,
.navbar.navbar-dark,
.navbar.bg-transparent.navbar-dark {
	background: transparent !important;
	border-bottom: 1px solid transparent;
	box-shadow: none;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
}

/* État scrollé — navy dark glassmorph condensé */
.navbar.bg-dark,
.navbar.bg-dark.navbar-light {
	background: rgba(13, 27, 62, 0.88) !important;
	backdrop-filter: blur(20px);
	-webkit-backdrop-filter: blur(20px);
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
	box-shadow: 0 6px 28px rgba(0, 0, 0, 0.25);
	padding-top: 12px;
	padding-bottom: 12px;
}

/* Liens — couleur selon l'état de fond.
   Le walker du thème parent (BootstrapWalker) génère <li><a>…</a></li>
   SANS classe .nav-link, donc on cible aussi .navbar-nav > li > a.

   Initial  (bg-transparent + navbar-dark) → fond clair en dessous → texte NAVY
   Scrollé  (bg-dark + navbar-light)       → fond navy en dessous   → texte BLANC */

/* Initial — texte navy sur hero clair */
.navbar.bg-transparent .navbar-nav .nav-link,
.navbar.bg-transparent .navbar-nav > li > a,
.navbar.navbar-dark.bg-transparent .navbar-nav .nav-link,
.navbar.navbar-dark.bg-transparent .navbar-nav > li > a {
	color: var(--text-secondary);
}
.navbar.bg-transparent .navbar-nav .nav-link:hover,
.navbar.bg-transparent .navbar-nav .nav-link:focus,
.navbar.bg-transparent .navbar-nav > li > a:hover,
.navbar.bg-transparent .navbar-nav > li > a:focus,
.navbar.navbar-dark.bg-transparent .navbar-nav .nav-link:hover,
.navbar.navbar-dark.bg-transparent .navbar-nav .nav-link:focus,
.navbar.navbar-dark.bg-transparent .navbar-nav > li > a:hover,
.navbar.navbar-dark.bg-transparent .navbar-nav > li > a:focus {
	color: var(--blue-electric);
	background: rgba(0, 159, 255, 0.06);
}

/* Scrollé — texte blanc sur fond navy */
.navbar.bg-dark .navbar-nav .nav-link,
.navbar.bg-dark .navbar-nav > li > a,
.navbar.bg-dark.navbar-light .navbar-nav .nav-link,
.navbar.bg-dark.navbar-light .navbar-nav > li > a {
	color: rgba(255, 255, 255, 0.78);
}
.navbar.bg-dark .navbar-nav .nav-link:hover,
.navbar.bg-dark .navbar-nav .nav-link:focus,
.navbar.bg-dark .navbar-nav > li > a:hover,
.navbar.bg-dark .navbar-nav > li > a:focus,
.navbar.bg-dark.navbar-light .navbar-nav .nav-link:hover,
.navbar.bg-dark.navbar-light .navbar-nav .nav-link:focus,
.navbar.bg-dark.navbar-light .navbar-nav > li > a:hover,
.navbar.bg-dark.navbar-light .navbar-nav > li > a:focus {
	color: #FFFFFF;
	background: rgba(255, 255, 255, 0.06);
}

/* Brand — texte navy sur initial, blanc sur scrollé (utile si pas de logo image) */
.navbar.bg-transparent .navbar-brand,
.navbar.navbar-dark.bg-transparent .navbar-brand { color: var(--navy-deep); }
.navbar.bg-dark .navbar-brand,
.navbar.bg-dark.navbar-light .navbar-brand { color: #FFFFFF; }

/* Logo / brand */
.navbar-brand {
	height: auto;
	width: 160px;
	padding: 0;
	margin-right: 2rem;
	display: inline-flex;
	align-items: center;
}
.navbar-brand img,
.navbar-brand .nav_brand {
	max-height: 40px;
	width: auto;
	height: auto;
	display: block;
}

/* Liens de menu — typographie maquette.
   Couvre à la fois .nav-link (Bootstrap natif) ET .navbar-nav > li > a (markup
   du walker du parent qui n'ajoute pas .nav-link). */
.navbar .navbar-nav .nav-item,
.navbar .navbar-nav > li { margin: 0 2px; }

.navbar .navbar-nav .nav-link,
.navbar .navbar-nav > li > a {
	display: inline-flex;
	align-items: center;
	font-family: 'Inter', sans-serif;
	font-size: 15px;
	font-weight: 500;
	line-height: 1;
	color: var(--text-secondary);
	padding: 12px 18px;
	border-radius: var(--radius-md);
	letter-spacing: -0.005em;
	position: relative;
	text-decoration: none;
	transition: color 0.2s ease, background 0.2s ease;
}
.navbar .navbar-nav .nav-link:hover,
.navbar .navbar-nav .nav-link:focus,
.navbar .navbar-nav > li > a:hover,
.navbar .navbar-nav > li > a:focus {
	color: var(--blue-electric);
	background: rgba(0, 159, 255, 0.06);
	text-decoration: none;
}

/* État actif / page courante — la couleur suit l'état de fond */
.navbar.bg-transparent .navbar-nav .nav-link.active,
.navbar.bg-transparent .navbar-nav .current-menu-item > .nav-link,
.navbar.bg-transparent .navbar-nav .current_page_item > .nav-link,
.navbar.bg-transparent .navbar-nav .current-menu-ancestor > .nav-link,
.navbar.bg-transparent .navbar-nav .current_page_parent > .nav-link,
.navbar.bg-transparent .navbar-nav .current-menu-item > a,
.navbar.bg-transparent .navbar-nav .current_page_item > a,
.navbar.bg-transparent .navbar-nav .current-menu-ancestor > a,
.navbar.bg-transparent .navbar-nav .current_page_parent > a {
	color: var(--navy-deep);
	font-weight: 600;
	background: transparent;
}
.navbar.bg-dark .navbar-nav .nav-link.active,
.navbar.bg-dark .navbar-nav .current-menu-item > .nav-link,
.navbar.bg-dark .navbar-nav .current_page_item > .nav-link,
.navbar.bg-dark .navbar-nav .current-menu-ancestor > .nav-link,
.navbar.bg-dark .navbar-nav .current_page_parent > .nav-link,
.navbar.bg-dark .navbar-nav .current-menu-item > a,
.navbar.bg-dark .navbar-nav .current_page_item > a,
.navbar.bg-dark .navbar-nav .current-menu-ancestor > a,
.navbar.bg-dark .navbar-nav .current_page_parent > a {
	color: #FFFFFF;
	font-weight: 600;
	background: transparent;
}
.navbar .navbar-nav .nav-link.active::after,
.navbar .navbar-nav .current-menu-item > .nav-link::after,
.navbar .navbar-nav .current_page_item > .nav-link::after,
.navbar .navbar-nav .current-menu-item > a::after,
.navbar .navbar-nav .current_page_item > a::after {
	content: '';
	position: absolute;
	left: 18px;
	right: 18px;
	bottom: 4px;
	height: 2px;
	background: linear-gradient(90deg, var(--blue-electric), var(--orange));
	border-radius: 2px;
}

/* Dropdowns */
.navbar .dropdown-menu {
	background: #FFFFFF;
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-md);
	padding: 12px;
	margin-top: 12px;
	min-width: 340px;
}
/* Cible à la fois .dropdown-item (Bootstrap natif) et li > a
   (markup du walker du parent qui n'ajoute pas .dropdown-item) */
.navbar .dropdown-menu .dropdown-item,
.navbar .dropdown-menu > li > a,
.navbar .dropdown-menu li > a {
	display: block;
	font-size: 14px;
	font-weight: 500;
	color: var(--text-secondary);
	padding: 12px 18px;
	margin: 2px 0;
	border-radius: var(--radius-sm);
	white-space: nowrap;
	text-decoration: none;
	transition: background 0.2s ease, color 0.2s ease, padding-left 0.2s ease;
}
.navbar .dropdown-menu .dropdown-item:hover,
.navbar .dropdown-menu .dropdown-item:focus,
.navbar .dropdown-menu > li > a:hover,
.navbar .dropdown-menu > li > a:focus,
.navbar .dropdown-menu li > a:hover,
.navbar .dropdown-menu li > a:focus {
	background: rgba(0, 159, 255, 0.08);
	color: var(--blue-electric);
	padding-left: 22px;
	text-decoration: none;
}
/* État actif d'un item de DROPDOWN. On répète les sélecteurs avec
   .bg-transparent et .bg-dark pour atteindre la spécificité des règles
   "active" de la nav principale qui ciblent .navbar-nav (et capturent
   donc aussi les items de dropdown). */
.navbar .dropdown-menu .dropdown-item.active,
.navbar .dropdown-menu .dropdown-item:active,
.navbar .dropdown-menu li.current-menu-item > a,
.navbar .dropdown-menu li.current_page_item > a,
.navbar .dropdown-menu li.current-menu-ancestor > a,
.navbar .dropdown-menu li.current_page_parent > a,
.navbar.bg-transparent .dropdown-menu li.current-menu-item > a,
.navbar.bg-transparent .dropdown-menu li.current_page_item > a,
.navbar.bg-transparent .dropdown-menu li.current-menu-ancestor > a,
.navbar.bg-transparent .dropdown-menu li.current_page_parent > a,
.navbar.bg-dark .dropdown-menu li.current-menu-item > a,
.navbar.bg-dark .dropdown-menu li.current_page_item > a,
.navbar.bg-dark .dropdown-menu li.current-menu-ancestor > a,
.navbar.bg-dark .dropdown-menu li.current_page_parent > a {
	background: linear-gradient(135deg, var(--blue-electric), var(--blue-dark));
	color: #FFFFFF;
}

/* Pas de barre dégradée ::after sur les items de dropdown
   (héritée des règles "active" de la nav principale) */
.navbar .dropdown-menu li.current-menu-item > a::after,
.navbar .dropdown-menu li.current_page_item > a::after,
.navbar .dropdown-menu li.current-menu-ancestor > a::after,
.navbar .dropdown-menu li.current_page_parent > a::after,
.navbar .dropdown-menu .dropdown-item.active::after {
	display: none;
}
.navbar .dropdown-divider {
	border-top: 1px solid var(--border-soft);
	margin: 6px 0;
}

/* Caret du dropdown */
.navbar .dropdown-toggle::after {
	margin-left: 8px;
	vertical-align: middle;
	border-top: 4px solid;
	border-right: 4px solid transparent;
	border-left: 4px solid transparent;
	opacity: 0.55;
	transition: transform 0.2s ease;
}
.navbar .dropdown.show .dropdown-toggle::after { transform: rotate(180deg); }

/* CTA dans la nav (ex: bouton "Appel découverte" injecté dans .top_cta sidebar) */
.navbar #top_cta,
.navbar .top_cta {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin-left: 12px;
}
.navbar .btn,
.navbar .btn-orange,
.navbar .btn-blue,
.navbar .btn-outline {
	padding: 10px 22px;
	font-size: 14px;
	box-shadow: 0 4px 12px rgba(245, 166, 35, 0.25);
}
.navbar .btn-outline {
	padding: 9px 22px;
	box-shadow: none;
}

/* Toggler mobile — adapté à l'état de fond */
.navbar-toggler {
	border-radius: var(--radius-sm);
	padding: 6px 10px;
}
.navbar-toggler:focus {
	outline: 0;
	box-shadow: 0 0 0 3px rgba(0, 159, 255, 0.30);
}
/* Initial — icône navy sur bordure navy translucide */
.navbar.bg-transparent .navbar-toggler {
	border: 1px solid rgba(13, 27, 62, 0.20);
}
.navbar.bg-transparent .navbar-toggler-icon {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='%230D1B3E' stroke-width='2' stroke-linecap='round' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
}
/* Scrollé — icône blanche sur bordure blanche translucide */
.navbar.bg-dark .navbar-toggler {
	border: 1px solid rgba(255, 255, 255, 0.30);
}
.navbar.bg-dark .navbar-toggler-icon {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='%23FFFFFF' stroke-width='2' stroke-linecap='round' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
}

/* Menu en mobile (collapse ouvert) */
@media (max-width: 991.98px) {
	.navbar { padding: 12px 0; }
	.navbar-collapse {
		margin-top: 14px;
		padding: 12px;
		background: #FFFFFF;
		border: 1px solid var(--border-soft);
		border-radius: var(--radius-lg);
		box-shadow: var(--shadow-md);
	}
	.navbar .navbar-nav .nav-item,
	.navbar .navbar-nav > li { margin: 2px 0; }
	.navbar .navbar-nav .nav-link,
	.navbar .navbar-nav > li > a {
		padding: 12px 14px;
	}
	.navbar .navbar-nav .nav-link.active::after,
	.navbar .navbar-nav .current-menu-item > .nav-link::after,
	.navbar .navbar-nav .current_page_item > .nav-link::after,
	.navbar .navbar-nav .current-menu-item > a::after,
	.navbar .navbar-nav .current_page_item > a::after {
		display: none;
	}
	/* Dans le menu mobile (carte blanche), on revient à des liens lisibles sur fond clair */
	.navbar .navbar-collapse .navbar-nav .nav-link,
	.navbar .navbar-collapse .navbar-nav > li > a,
	.navbar.navbar-dark .navbar-collapse .navbar-nav .nav-link,
	.navbar.navbar-dark .navbar-collapse .navbar-nav > li > a,
	.navbar.navbar-light .navbar-collapse .navbar-nav .nav-link,
	.navbar.navbar-light .navbar-collapse .navbar-nav > li > a,
	.navbar.bg-dark .navbar-collapse .navbar-nav .nav-link,
	.navbar.bg-dark .navbar-collapse .navbar-nav > li > a {
		color: var(--text-secondary);
	}
	.navbar .navbar-collapse .navbar-nav .nav-link:hover,
	.navbar .navbar-collapse .navbar-nav .nav-link:focus,
	.navbar .navbar-collapse .navbar-nav > li > a:hover,
	.navbar .navbar-collapse .navbar-nav > li > a:focus {
		color: var(--blue-electric);
		background: rgba(0, 159, 255, 0.06);
	}
	.navbar .navbar-nav .nav-link.active,
	.navbar .navbar-nav .current-menu-item > .nav-link,
	.navbar .navbar-nav .current_page_item > .nav-link,
	.navbar .navbar-nav .current-menu-item > a,
	.navbar .navbar-nav .current_page_item > a {
		background: rgba(0, 159, 255, 0.08);
		color: var(--blue-electric);
	}
	.navbar .dropdown-menu {
		box-shadow: none;
		border: 0;
		background: var(--bg-alt);
		padding: 8px;
		margin-top: 6px;
		min-width: 0;
		width: 100%;
	}
	.navbar .dropdown-menu .dropdown-item,
	.navbar .dropdown-menu > li > a,
	.navbar .dropdown-menu li > a {
		white-space: normal;
		padding: 12px 14px;
	}
	.navbar .dropdown-menu .dropdown-item:hover,
	.navbar .dropdown-menu .dropdown-item:focus,
	.navbar .dropdown-menu > li > a:hover,
	.navbar .dropdown-menu > li > a:focus {
		padding-left: 14px; /* on annule le glissement-droite en mobile */
	}
	.navbar #top_cta,
	.navbar .top_cta {
		margin-left: 0;
		margin-top: 12px;
		width: 100%;
		justify-content: center;
	}
	.navbar .btn,
	.navbar .btn-orange,
	.navbar .btn-blue,
	.navbar .btn-outline {
		width: 100%;
		justify-content: center;
	}
}

/* =========================================================
   4. Glassmorphism (adapté fond clair)
   ========================================================= */
.glass {
	background: rgba(255, 255, 255, 0.7);
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
	border: 1px solid var(--border-soft);
	box-shadow: var(--shadow-sm);
}

.glass-blue {
	background: rgba(0, 159, 255, 0.06);
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
	border: 1px solid var(--border-blue);
}

.glass-orange {
	background: rgba(245, 166, 35, 0.07);
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
	border: 1px solid var(--border-orange);
}

/* =========================================================
   5. Texte en dégradé (titres) — recalibré pour fond clair
   ========================================================= */
.gradient-text {
	background: linear-gradient(135deg, var(--navy-deep) 0%, var(--blue-electric) 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	color: transparent;
}

.gradient-text-blue {
	background: linear-gradient(135deg, var(--blue-dark) 0%, var(--blue-electric) 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	color: transparent;
}

.gradient-text-orange {
	background: linear-gradient(135deg, var(--orange-dark) 0%, var(--orange) 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	color: transparent;
}

/* =========================================================
   6. Hero — fond clair avec accents lumineux
   ========================================================= */
.hero-bg {
	background:
		radial-gradient(ellipse 80% 60% at 70% 30%, rgba(0, 159, 255, 0.10) 0%, transparent 60%),
		radial-gradient(ellipse 50% 40% at 15% 85%, rgba(245, 166, 35, 0.07) 0%, transparent 50%),
		linear-gradient(160deg, #FFFFFF 0%, #F4F7FC 50%, #FFFFFF 100%);
}

.grid-overlay {
	background-image: radial-gradient(circle, rgba(0, 159, 255, 0.18) 1px, transparent 1px);
	background-size: 40px 40px;
}

/* Section foncée optionnelle (CTA finaux, témoignages alternatifs) */
.section-dark {
	background: linear-gradient(160deg, var(--navy-deep) 0%, var(--navy-mid) 50%, var(--navy-deep) 100%);
	color: var(--white);
}
.section-dark h1, .section-dark h2, .section-dark h3,
.section-dark h4, .section-dark h5, .section-dark h6 { color: var(--white); }
.section-dark p { color: rgba(255, 255, 255, 0.78); }

/* =========================================================
   7. Animations
   ========================================================= */
@keyframes pulse-glow {
	0%, 100% { box-shadow: 0 0 20px rgba(0, 159, 255, 0.3); }
	50%      { box-shadow: 0 0 40px rgba(0, 159, 255, 0.55); }
}
.glow-pulse { animation: pulse-glow 3s ease-in-out infinite; }

@keyframes float {
	0%, 100% { transform: translateY(0); }
	50%      { transform: translateY(-12px); }
}
.float-anim { animation: float 5s ease-in-out infinite; }

.reveal {
	opacity: 0;
	transform: translateY(18px);
	transition: opacity .6s ease, transform .6s ease;
}
.reveal.in { opacity: 1; transform: translateY(0); }

@media (prefers-reduced-motion: reduce) {
	.reveal { opacity: 1; transform: none; transition: none; }
	.float-anim, .glow-pulse { animation: none; }
}

/* =========================================================
   8. Boutons — helpers maquettes
   ========================================================= */
.btn-orange {
	background: linear-gradient(135deg, var(--orange) 0%, var(--orange-dark) 100%);
	color: #FFFFFF !important;
	font-weight: 700;
	border: 0;
	border-radius: var(--radius-pill);
	padding: 16px 36px;
	font-size: 16px;
	line-height: 1;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
	box-shadow: 0 8px 24px rgba(245, 166, 35, 0.35);
	display: inline-flex;
	align-items: center;
	gap: 8px;
	text-decoration: none;
	cursor: pointer;
}
.btn-orange:hover,
.btn-orange:focus {
	color: #FFFFFF !important;
	transform: translateY(-2px);
	box-shadow: 0 12px 32px rgba(245, 166, 35, 0.5);
	text-decoration: none;
}

.btn-outline {
	background: transparent;
	color: var(--navy-deep);
	font-weight: 600;
	border-radius: var(--radius-pill);
	padding: 15px 36px;
	font-size: 16px;
	line-height: 1;
	border: 1.5px solid var(--border-med);
	transition: all 0.25s ease;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	text-decoration: none;
	cursor: pointer;
}
.btn-outline:hover,
.btn-outline:focus {
	color: var(--blue-electric);
	border-color: var(--blue-electric);
	background: rgba(0, 159, 255, 0.06);
	text-decoration: none;
}

/* Bouton bleu (CTA secondaire fort) */
.btn-blue {
	background: linear-gradient(135deg, var(--blue-electric) 0%, var(--blue-dark) 100%);
	color: #FFFFFF !important;
	font-weight: 700;
	border: 0;
	border-radius: var(--radius-pill);
	padding: 16px 36px;
	font-size: 16px;
	line-height: 1;
	box-shadow: 0 8px 24px rgba(0, 159, 255, 0.30);
	display: inline-flex;
	align-items: center;
	gap: 8px;
	text-decoration: none;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.btn-blue:hover,
.btn-blue:focus {
	color: #FFFFFF !important;
	transform: translateY(-2px);
	box-shadow: 0 12px 32px rgba(0, 159, 255, 0.45);
	text-decoration: none;
}

/* Bouton navy (CTA sur fond orange — voir maquette forfaits) */
.btn-navy {
	background: var(--navy-deep);
	color: #FFFFFF !important;
	font-weight: 700;
	border: 0;
	border-radius: var(--radius-pill);
	padding: 16px 36px;
	font-size: 16px;
	line-height: 1;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	text-decoration: none;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.btn-navy:hover,
.btn-navy:focus {
	color: #FFFFFF !important;
	transform: translateY(-2px);
	box-shadow: 0 8px 24px rgba(13, 27, 62, 0.35);
	text-decoration: none;
}

.btn-outline-navy {
	background: transparent;
	color: var(--navy-deep) !important;
	font-weight: 700;
	border-radius: var(--radius-pill);
	padding: 14.5px 36px;
	font-size: 16px;
	line-height: 1;
	border: 2px solid var(--navy-deep);
	display: inline-flex;
	align-items: center;
	gap: 8px;
	text-decoration: none;
	transition: background 0.25s ease, color 0.25s ease;
}
.btn-outline-navy:hover,
.btn-outline-navy:focus {
	background: var(--navy-deep);
	color: #FFFFFF !important;
	text-decoration: none;
}

/* =========================================================
   9. Boutons Bootstrap — overrides
   ========================================================= */
.btn {
	font-family: 'Inter', sans-serif;
	font-weight: 600;
	border-radius: var(--radius-pill);
	padding: 14px 32px;
	font-size: 15px;
	line-height: 1;
	border-width: 1.5px;
	transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease, color 0.25s ease, border-color 0.25s ease;
	display: inline-flex;
	align-items: center;
	gap: 8px;
}
.btn:focus, .btn.focus { box-shadow: 0 0 0 3px rgba(0, 159, 255, 0.25); }

/* Primary = orange (CTA principal Eosium) */
.btn-primary,
.btn-primary:not(:disabled):not(.disabled) {
	background: linear-gradient(135deg, var(--orange) 0%, var(--orange-dark) 100%);
	border-color: transparent;
	color: #FFFFFF;
	box-shadow: 0 8px 24px rgba(245, 166, 35, 0.35);
}
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:not(:disabled):not(.disabled):active,
.btn-primary:not(:disabled):not(.disabled).active {
	background: linear-gradient(135deg, var(--orange-dark) 0%, #B8770F 100%);
	border-color: transparent;
	color: #FFFFFF;
	transform: translateY(-2px);
	box-shadow: 0 12px 32px rgba(245, 166, 35, 0.5);
}

/* Secondary = bouton bleu */
.btn-secondary {
	background: linear-gradient(135deg, var(--blue-electric) 0%, var(--blue-dark) 100%);
	border-color: transparent;
	color: #FFFFFF;
	box-shadow: 0 8px 24px rgba(0, 159, 255, 0.30);
}
.btn-secondary:hover,
.btn-secondary:focus,
.btn-secondary:not(:disabled):not(.disabled):active {
	background: linear-gradient(135deg, var(--blue-dark) 0%, #005599 100%);
	border-color: transparent;
	color: #FFFFFF;
	transform: translateY(-2px);
	box-shadow: 0 12px 32px rgba(0, 159, 255, 0.45);
}

/* Warning = même style qu’Orange — alias */
.btn-warning {
	background: linear-gradient(135deg, var(--orange) 0%, var(--orange-dark) 100%);
	border-color: transparent;
	color: #FFFFFF;
}
.btn-warning:hover, .btn-warning:focus {
	background: linear-gradient(135deg, var(--orange-dark) 0%, #B8770F 100%);
	color: #FFFFFF;
	transform: translateY(-2px);
}

/* Dark = bouton navy */
.btn-dark {
	background: var(--navy-deep);
	border-color: var(--navy-deep);
	color: #FFFFFF;
}
.btn-dark:hover, .btn-dark:focus {
	background: var(--navy-mid);
	border-color: var(--navy-mid);
	color: #FFFFFF;
	transform: translateY(-2px);
	box-shadow: 0 8px 24px rgba(13, 27, 62, 0.35);
}

/* Light = bouton blanc sur fond foncé */
.btn-light {
	background: #FFFFFF;
	border-color: #FFFFFF;
	color: var(--navy-deep);
}
.btn-light:hover, .btn-light:focus {
	background: #F4F7FC;
	border-color: #F4F7FC;
	color: var(--navy-deep);
	transform: translateY(-2px);
}

/* Outline variants */
.btn-outline-primary {
	background: transparent;
	color: var(--orange-dark);
	border-color: var(--orange);
}
.btn-outline-primary:hover, .btn-outline-primary:focus {
	background: var(--orange);
	border-color: var(--orange);
	color: #FFFFFF;
}

.btn-outline-secondary {
	background: transparent;
	color: var(--navy-deep);
	border-color: var(--border-med);
}
.btn-outline-secondary:hover, .btn-outline-secondary:focus {
	background: rgba(0, 159, 255, 0.06);
	border-color: var(--blue-electric);
	color: var(--blue-electric);
}

.btn-outline-light {
	background: transparent;
	color: #FFFFFF;
	border-color: rgba(255, 255, 255, 0.5);
}
.btn-outline-light:hover, .btn-outline-light:focus {
	background: rgba(255, 255, 255, 0.1);
	border-color: #FFFFFF;
	color: #FFFFFF;
}

.btn-outline-dark {
	background: transparent;
	color: var(--navy-deep);
	border-color: var(--navy-deep);
}
.btn-outline-dark:hover, .btn-outline-dark:focus {
	background: var(--navy-deep);
	border-color: var(--navy-deep);
	color: #FFFFFF;
}

/* Tailles */
.btn-lg {
	padding: 18px 44px;
	font-size: 17px;
}
.btn-sm {
	padding: 10px 22px;
	font-size: 13px;
}

/* =========================================================
   9b. Override .link--arrowed du parent → palette Eosium
   Le JS du parent (library/js/scripts.js) injecte un SVG
   (cercle + flèche) à la fin de tout <a class="link--arrowed">.
   On retape la palette pour matcher Eosium (bleu → orange au hover)
   et on resserre la taille (le défaut du parent est en 1.4em / 2rem).
   ========================================================= */
a.link--arrowed {
	color: var(--blue-electric);
	font-weight: 600;
	font-size: 1em;
	line-height: 1.4;
	height: auto;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	text-decoration: none;
}
a.link--arrowed:hover {
	color: var(--orange) !important; /* bat le !important vert du parent */
}

.link--arrowed .arrow-icon {
	width: 24px;
	height: 24px;
	top: 0;
	stroke: var(--blue-electric);
}
.link--arrowed .arrow-icon--circle,
.link--arrowed .arrow-icon--arrow {
	stroke: var(--blue-electric) !important;
}
a.link--arrowed:hover .arrow-icon,
a.link--arrowed:hover .arrow-icon--circle,
a.link--arrowed:hover .arrow-icon--arrow {
	stroke: var(--orange) !important;
}

/* =========================================================
   10. Badges (épinglettes type "Les forfaits" / "Recommandé")
   ========================================================= */
.badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: rgba(0, 159, 255, 0.10);
	border: 1px solid var(--border-blue);
	border-radius: var(--radius-pill);
	padding: 8px 18px;
	font-size: 13px;
	font-weight: 600;
	color: var(--blue-dark);
}

.badge-orange {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: rgba(245, 166, 35, 0.12);
	border: 1px solid var(--border-orange);
	border-radius: var(--radius-pill);
	padding: 6px 16px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--orange-dark);
}

.badge-green {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: rgba(0, 178, 100, 0.12);
	border: 1px solid rgba(0, 178, 100, 0.30);
	border-radius: var(--radius-pill);
	padding: 6px 16px;
	font-size: 12px;
	font-weight: 700;
	color: #028F4E;
}

/* Centrage d'une badge utilisée seule dans un bloc.
   Couvre 3 cas où l'auteur veut "badge centrée" :
     1. <p class="badge mx-auto">                          (Bootstrap utility)
     2. <p class="badge has-text-align-center">             (bloc paragraphe Gutenberg)
     3. <p class="badge" style="text-align: center;">       (TinyMCE de SiteOrigin)
   inline-flex ignore les margin auto → on bascule en flex + largeur intrinsèque. */
.badge.mx-auto,
.badge-orange.mx-auto,
.badge-green.mx-auto,
.has-text-align-center.badge,
.has-text-align-center.badge-orange,
.has-text-align-center.badge-green,
.badge[style*="text-align: center"],
.badge[style*="text-align:center"],
.badge-orange[style*="text-align: center"],
.badge-orange[style*="text-align:center"],
.badge-green[style*="text-align: center"],
.badge-green[style*="text-align:center"] {
	display: flex;
	width: max-content;
	max-width: 100%;
	margin-left: auto;
	margin-right: auto;
}

/* Alignement à droite via inline-style TinyMCE */
.badge[style*="text-align: right"],
.badge[style*="text-align:right"],
.badge-orange[style*="text-align: right"],
.badge-orange[style*="text-align:right"],
.badge-green[style*="text-align: right"],
.badge-green[style*="text-align:right"] {
	display: flex;
	width: max-content;
	max-width: 100%;
	margin-left: auto;
	margin-right: 0;
}

/* =========================================================
   11. Cards — services, secteurs, dashboard
   ========================================================= */
.service-card,
.hover-card {
	background: #FFFFFF;
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-xl);
	padding: 32px;
	box-shadow: var(--shadow-sm);
	transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
.service-card:hover,
.hover-card:hover {
	transform: translateY(-6px);
	border-color: var(--border-blue) !important;
	box-shadow: var(--shadow-lg);
}

.sector-pill {
	background: var(--bg-alt);
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-md);
	padding: 20px 24px;
	transition: background 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}
.sector-pill:hover {
	background: rgba(0, 159, 255, 0.06);
	border-color: var(--border-blue);
	transform: translateY(-2px);
}

.dashboard-card {
	background: #FFFFFF;
	border: 1px solid var(--border-blue);
	border-radius: var(--radius-lg);
	padding: 16px;
	box-shadow: var(--shadow-md);
}

/* =========================================================
   11b. Hero dashboard (shortcode [eos_hero_dashboard])
   Conçu pour être posé sur un fond foncé (hero navy).
   ========================================================= */
.eos-dashboard-wrap {
	display: block;
	width: 100%;
}

.eos-dashboard {
	margin: 0 auto;
	padding: 24px;
	border-radius: var(--radius-2xl);
	background: rgba(255, 255, 255, 0.06);
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
	border: 1px solid rgba(255, 255, 255, 0.12);
	color: #FFFFFF;
}

/* Header */
.eos-dashboard__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 20px;
}
.eos-dashboard__eyebrow {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: var(--blue-electric);
	margin-bottom: 4px;
	text-transform: uppercase;
}
.eos-dashboard__title {
	font-size: 18px;
	font-weight: 700;
	color: #FFFFFF;
	line-height: 1.2;
}
.eos-dashboard__status {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 6px 14px;
	border-radius: var(--radius-pill);
	background: rgba(0, 200, 100, 0.15);
	border: 1px solid rgba(0, 200, 100, 0.30);
	color: #4ADE80;
	font-size: 12px;
	font-weight: 600;
	flex-shrink: 0;
}
.eos-dashboard__status-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #4ADE80;
	box-shadow: 0 0 8px rgba(74, 222, 128, 0.6);
}

/* Cartes internes (3 métriques + chart) */
.eos-dashboard__card {
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(0, 159, 255, 0.20);
	border-radius: var(--radius-lg);
	padding: 16px;
}

.eos-dashboard__metrics {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 12px;
	margin-bottom: 16px;
}
.eos-dashboard__metric { text-align: center; }
.eos-dashboard__metric-value {
	font-size: 24px;
	font-weight: 900;
	line-height: 1;
}
.eos-dashboard__metric-value--blue   { color: var(--blue-electric); }
.eos-dashboard__metric-value--green  { color: #4ADE80; }
.eos-dashboard__metric-value--orange { color: var(--orange); }
.eos-dashboard__metric-label {
	font-size: 11px;
	margin-top: 6px;
	color: var(--gray-muted);
}

/* Bar chart */
.eos-dashboard__chart { margin-bottom: 16px; }
.eos-dashboard__chart-title {
	font-size: 11px;
	font-weight: 600;
	color: var(--gray-muted);
	margin-bottom: 12px;
}
.eos-dashboard__bars {
	display: flex;
	align-items: flex-end;
	gap: 8px;
	height: 64px;
}
.eos-dashboard__bar {
	flex: 1;
	min-height: 4px;
	background: rgba(0, 159, 255, 0.40);
	border-radius: 4px 4px 0 0;
	transition: height 0.4s ease;
}
.eos-dashboard__bar.is-peak {
	background: var(--blue-electric);
	box-shadow: 0 0 12px rgba(0, 159, 255, 0.45);
}

/* Alerte résolue */
.eos-dashboard__alert {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 12px;
	border-radius: var(--radius-md);
	background: rgba(0, 200, 100, 0.08);
	border: 1px solid rgba(0, 200, 100, 0.20);
}
.eos-dashboard__alert-left {
	display: flex;
	align-items: center;
	gap: 12px;
}
.eos-dashboard__alert-icon {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: #22C55E;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.eos-dashboard__alert-title {
	font-size: 13px;
	font-weight: 600;
	color: #FFFFFF;
	line-height: 1.2;
}
.eos-dashboard__alert-time {
	font-size: 11px;
	color: var(--gray-muted);
	margin-top: 2px;
}
.eos-dashboard__alert-delta {
	font-size: 12px;
	font-weight: 700;
	color: #4ADE80;
	flex-shrink: 0;
}

/* Cache la carte sous lg comme dans la maquette (hidden lg:block) */
@media (max-width: 991.98px) {
	.eos-dashboard-wrap { display: none; }
}

/* =========================================================
   11c. Hero status panel (shortcode [eos_status_panel],
        widget « Eosium · Tableau de statut »)
   Maquette : hero de la page Forfaits Solopreneurs.
   Posé sur un fond foncé (hero navy).
   ========================================================= */
.eos-status-panel-wrap {
	display: block;
	width: 100%;
}

.eos-status-panel {
	margin: 0 auto;
	padding: 24px;
	border-radius: var(--radius-lg);
	background: rgba(255, 255, 255, 0.06);
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
	border: 1px solid rgba(255, 255, 255, 0.12);
	color: #FFFFFF;
	box-shadow: 0 30px 80px -20px rgba(0, 0, 0, 0.45);
}

/* Header (eyebrow gauche / droite) */
.eos-status-panel__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding-bottom: 14px;
	margin-bottom: 14px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.eos-status-panel__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--gray-muted);
}

/* Pastille bleue pulsante (optionnelle) */
.eos-status-panel__pulse {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--blue-glow);
	box-shadow: 0 0 0 0 rgba(0, 159, 255, 0.55);
	animation: eos-status-pulse 2s ease-in-out infinite;
	flex-shrink: 0;
}
@keyframes eos-status-pulse {
	0%, 100% { box-shadow: 0 0 0 0 rgba(0, 159, 255, 0.55); opacity: 1; }
	50%      { box-shadow: 0 0 0 6px rgba(0, 159, 255, 0);  opacity: 0.55; }
}

/* Liste de lignes */
.eos-status-panel__rows {
	list-style: none;
	margin: 0;
	padding: 0;
	font-family: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
}
.eos-status-panel__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 11px 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.05);
	font-size: 13px;
}
.eos-status-panel__row:last-child {
	border-bottom: none;
}
.eos-status-panel__label {
	color: var(--gray-light);
}

/* Étiquette de statut (variante de .badge-orange) */
.eos-status-panel__tag {
	display: inline-flex;
	align-items: center;
	border-radius: var(--radius-pill);
	padding: 5px 13px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	flex-shrink: 0;
	white-space: nowrap;
}

.eos-status-panel--tag-muted  .eos-status-panel__tag {
	background: rgba(107, 127, 163, 0.18);
	border: 1px solid rgba(107, 127, 163, 0.32);
	color: #C4CCD4;
}
.eos-status-panel--tag-blue   .eos-status-panel__tag {
	background: rgba(0, 159, 255, 0.12);
	border: 1px solid rgba(0, 159, 255, 0.32);
	color: var(--blue-glow);
}
.eos-status-panel--tag-orange .eos-status-panel__tag {
	background: rgba(245, 166, 35, 0.12);
	border: 1px solid rgba(245, 166, 35, 0.38);
	color: var(--orange);
}

/* Footer (statut actuel / résumé) */
.eos-status-panel__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding-top: 14px;
	margin-top: 14px;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	font-size: 12px;
	color: var(--gray-muted);
}
.eos-status-panel__footer-right {
	font-weight: 700;
}
.eos-status-panel--footer-muted  .eos-status-panel__footer-right { color: var(--gray-muted); }
.eos-status-panel--footer-orange .eos-status-panel__footer-right { color: var(--orange); }
.eos-status-panel--footer-blue   .eos-status-panel__footer-right { color: var(--blue-glow); }

/* =========================================================
   11d. Grille de cards (shortcode [eos_cards] / [eos_card],
        widget « Eosium · Grille de cards »)
   Maquette : section « À la carte » de la page Forfaits Solo.
   - Variante --dark : glass sur fond navy (default sur bg foncé)
   - Variante --light : carte blanche sur fond clair
   - Variante --auto : choisit selon le fond parent (default)
   ========================================================= */
.eos-cards {
	display: grid;
	gap: 20px;
	grid-template-columns: 1fr;
}
@media (min-width: 768px) {
	.eos-cards--cols-2 { grid-template-columns: repeat(2, 1fr); }
	.eos-cards--cols-3 { grid-template-columns: repeat(3, 1fr); }
	.eos-cards--cols-4 { grid-template-columns: repeat(4, 1fr); }
}
@media (min-width: 1024px) {
	.eos-cards--cols-3 { grid-template-columns: repeat(3, 1fr); }
	.eos-cards--cols-4 { grid-template-columns: repeat(4, 1fr); }
}

/* Card pleine largeur (ex. Présence Essentielle) */
.eos-card--wide {
	grid-column: 1 / -1;
}

/* ----- Base card (commune) ----- */
.eos-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 24px;
	border-radius: var(--radius-lg);
	transition: transform 0.3s ease, border-color 0.3s ease, background 0.3s ease, box-shadow 0.3s ease;
}
.eos-card:hover {
	transform: translateY(-6px);
}

.eos-card__eyebrow {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	line-height: 1.2;
}
.eos-card__title {
	font-size: 18px;
	font-weight: 700;
	line-height: 1.3;
	margin: 0;
}
.eos-card__body {
	font-size: 14px;
	line-height: 1.6;
	flex-grow: 1;
}
.eos-card__body > :first-child { margin-top: 0; }
.eos-card__body > :last-child  { margin-bottom: 0; }
.eos-card__body a { text-decoration: underline; }

.eos-card__footer {
	font-family: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: 13px;
	padding-top: 14px;
	margin-top: auto;
}

/* Accents eyebrow */
.eos-card--blue   .eos-card__eyebrow { color: var(--blue-glow); }
.eos-card--orange .eos-card__eyebrow { color: var(--orange); }
.eos-card--green  .eos-card__eyebrow { color: #4ADE80; }

/* ----- Thème foncé (glass sur navy) ----- */
.eos-cards--dark .eos-card,
.eos-cards--auto .bg-navy .eos-card,
.bg-navy .eos-cards--auto .eos-card {
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.12);
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
	color: #FFFFFF;
}
.eos-cards--dark .eos-card__title,
.bg-navy .eos-cards--auto .eos-card__title {
	color: #FFFFFF;
}
.eos-cards--dark .eos-card__body,
.bg-navy .eos-cards--auto .eos-card__body {
	color: var(--gray-light);
}
.eos-cards--dark .eos-card__footer,
.bg-navy .eos-cards--auto .eos-card__footer {
	color: #FFFFFF;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.eos-cards--dark .eos-card:hover,
.bg-navy .eos-cards--auto .eos-card:hover {
	background: rgba(0, 159, 255, 0.08);
	border-color: rgba(0, 159, 255, 0.40);
	box-shadow: 0 20px 50px -20px rgba(0, 0, 0, 0.55);
}

/* ----- Thème clair (carte blanche sur fond clair) ----- */
.eos-cards--light .eos-card,
.eos-cards--auto .eos-card {
	background: #FFFFFF;
	border: 1px solid var(--border-soft);
	color: var(--text-primary);
	box-shadow: var(--shadow-sm);
}
.eos-cards--light .eos-card__title,
.eos-cards--auto .eos-card__title {
	color: var(--text-primary);
}
.eos-cards--light .eos-card__body,
.eos-cards--auto .eos-card__body {
	color: var(--text-secondary);
}
.eos-cards--light .eos-card__footer,
.eos-cards--auto .eos-card__footer {
	color: var(--text-primary);
	border-top: 1px solid var(--border-soft);
}
.eos-cards--light .eos-card:hover,
.eos-cards--auto .eos-card:hover {
	border-color: var(--border-blue);
	box-shadow: var(--shadow-md);
}

/* Sur fond navy, l'auto bascule vers le glass (priorité grâce à la spécificité ci-dessus).
   Petit garde-fou pour les sections .bg-navy / .hero-bg. */
.bg-navy .eos-cards--auto .eos-card,
.hero-bg .eos-cards--auto .eos-card {
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.12);
	color: #FFFFFF;
	box-shadow: none;
}
.bg-navy .eos-cards--auto .eos-card__title,
.hero-bg .eos-cards--auto .eos-card__title {
	color: #FFFFFF;
}
.bg-navy .eos-cards--auto .eos-card__body,
.hero-bg .eos-cards--auto .eos-card__body {
	color: var(--gray-light);
}
.bg-navy .eos-cards--auto .eos-card__footer,
.hero-bg .eos-cards--auto .eos-card__footer {
	color: #FFFFFF;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
}

/* =========================================================
   12. Section divider
   ========================================================= */
.section-divider {
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(0, 159, 255, 0.30), transparent);
	border: 0;
}

/* =========================================================
   13. Stat number (gros chiffres en dégradé)
   ========================================================= */
.stat-number {
	font-size: 48px;
	font-weight: 900;
	line-height: 1;
	background: linear-gradient(135deg, var(--blue-electric), var(--blue-dark));
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	color: transparent;
}

.stat-number.sm { font-size: 40px; }
.stat-number.lg { font-size: 64px; }

/* =========================================================
   14. Partenaires (bandeau logos)
   ========================================================= */
.partner-strip {
	background: var(--bg-alt);
	border-top: 1px solid var(--border-soft);
	border-bottom: 1px solid var(--border-soft);
}
.partner-strip img {
	max-height: 40px;
	opacity: 0.65;
	filter: grayscale(100%);
	transition: opacity 0.25s ease, filter 0.25s ease;
}
.partner-strip img:hover {
	opacity: 1;
	filter: grayscale(0%);
}

/* =========================================================
   15. Témoignages + Review stars
   ========================================================= */
.testimonial-card {
	background: #FFFFFF;
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-xl);
	padding: 32px;
	box-shadow: var(--shadow-sm);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.testimonial-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--shadow-md);
}

.testimonial-card p {
	color: var(--text-primary);
	font-style: italic;
	line-height: 1.65;
	margin-bottom: 1.25rem;
}

/* Étoiles de review */
.review-stars {
	display: inline-flex;
	align-items: center;
	gap: 2px;
	color: var(--orange);
	font-size: 16px;
	letter-spacing: 1px;
	line-height: 1;
	margin-bottom: 1rem;
}
.review-stars .star { color: var(--orange); }
.review-stars .star-empty { color: rgba(245, 166, 35, 0.25); }

/* Auteur (avatar + nom) */
.testimonial-author {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: 1rem;
}
.testimonial-avatar {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	color: #FFFFFF;
	background: linear-gradient(135deg, var(--blue-electric), var(--blue-dark));
	flex-shrink: 0;
}
.testimonial-avatar.orange {
	background: linear-gradient(135deg, var(--orange), var(--orange-dark));
}
.testimonial-name {
	font-weight: 600;
	color: var(--text-primary);
	font-size: 14px;
}
.testimonial-role {
	font-size: 12px;
	color: var(--text-muted);
}

/* Citation décorative (gros guillemet) */
.quote-mark {
	font-family: Georgia, 'Times New Roman', serif;
	font-size: 64px;
	line-height: 1;
	color: var(--blue-electric);
	opacity: 0.25;
	display: block;
	margin-bottom: -16px;
}

blockquote.citation {
	position: relative;
	padding: 24px 32px;
	margin: 32px 0;
	background: var(--bg-alt);
	border-left: 4px solid var(--blue-electric);
	border-radius: 0 var(--radius-md) var(--radius-md) 0;
	font-style: italic;
	color: var(--text-primary);
	font-size: 18px;
	line-height: 1.6;
}
blockquote.citation cite {
	display: block;
	margin-top: 12px;
	font-style: normal;
	font-size: 14px;
	color: var(--text-muted);
	font-weight: 600;
}

/* =========================================================
   16. CTA final (gros bloc orange / dégradé)
   ========================================================= */
.cta-final {
	background: linear-gradient(135deg, var(--orange) 0%, #E8940F 100%);
	color: var(--navy-deep);
	border-radius: var(--radius-2xl);
	padding: 64px 48px;
	text-align: center;
}
.cta-final h2,
.cta-final h3 { color: var(--navy-deep); }
.cta-final p { color: rgba(13, 27, 62, 0.80); }
.cta-final .eyebrow {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: rgba(13, 27, 62, 0.70);
	margin-bottom: 1rem;
}

/* Variante CTA "glass" dans section sombre */
.cta-glass {
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(245, 166, 35, 0.25);
	border-radius: var(--radius-2xl);
	padding: 48px;
	text-align: center;
	color: #FFFFFF;
}
.cta-glass h2 { color: #FFFFFF; }
.cta-glass p { color: rgba(255, 255, 255, 0.78); }

/* Variante CTA "soft" — encart sur fond clair, ton subtil bleu→orange.
   Pour un closing CTA qui se démarque sans claquer comme .cta-final. */
.cta-soft {
	background: linear-gradient(135deg, rgba(0, 159, 255, 0.06) 0%, rgba(245, 166, 35, 0.05) 100%);
	border: 1px solid var(--border-blue);
	border-radius: var(--radius-2xl);
	padding: 56px 48px;
	box-shadow: 0 8px 32px rgba(13, 27, 62, 0.05);
	position: relative;
	overflow: hidden;
}
/* Léger halo radial bleu en haut pour la signature premium */
.cta-soft::before {
	content: '';
	position: absolute;
	inset: 0 0 auto 0;
	height: 120px;
	background: radial-gradient(ellipse 60% 100% at 50% 0%, rgba(0, 159, 255, 0.10) 0%, transparent 70%);
	pointer-events: none;
}
.cta-soft > * { position: relative; z-index: 1; }
.cta-soft h2 { color: var(--text-primary); }
.cta-soft p  { color: var(--text-secondary); }

/* Variante CTA "bordered" — encart minimaliste, juste un cadre.
   À utiliser quand le contenu doit primer sur le contenant. */
.cta-bordered {
	background: transparent;
	border: 2px solid var(--border-blue);
	border-radius: var(--radius-2xl);
	padding: 48px;
}
.cta-bordered h2 { color: var(--text-primary); }
.cta-bordered p  { color: var(--text-secondary); }

/* Petites garanties sous le CTA (✓ Aucun engagement, etc.) */
.cta-guarantees {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 24px;
	margin-top: 2rem;
	font-size: 14px;
	color: var(--text-muted);
}
.section-dark .cta-guarantees,
.cta-glass .cta-guarantees { color: rgba(255, 255, 255, 0.65); }

/* =========================================================
   17. Forfaits / Pricing cards
   ========================================================= */
.pricing-card {
	background: #FFFFFF;
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-xl);
	padding: 40px 32px;
	display: flex;
	flex-direction: column;
	box-shadow: var(--shadow-sm);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
	position: relative;
}
.pricing-card:hover {
	transform: translateY(-6px);
	box-shadow: var(--shadow-lg);
}
.pricing-card.featured {
	border: 1px solid var(--border-orange);
	background: linear-gradient(180deg, rgba(245, 166, 35, 0.04), #FFFFFF 60%);
}

.pricing-title {
	font-size: 24px;
	font-weight: 800;
	color: var(--text-primary);
	margin-bottom: 4px;
}
.pricing-tagline {
	color: var(--text-muted);
	margin-bottom: 1.5rem;
}
.pricing-price {
	display: flex;
	align-items: baseline;
	gap: 8px;
	margin-bottom: 4px;
}
.pricing-price .amount {
	font-size: 48px;
	font-weight: 900;
	color: var(--text-primary);
	line-height: 1;
}
.pricing-price .period {
	font-family: 'Inter', monospace;
	font-size: 14px;
	color: var(--text-muted);
}
.pricing-meta {
	padding-bottom: 24px;
	margin-bottom: 24px;
	font-size: 13px;
	color: var(--text-muted);
	border-bottom: 1px solid var(--border-soft);
}
.pricing-card.featured .pricing-meta {
	border-bottom-color: var(--border-orange);
}

.pricing-features {
	list-style: none;
	padding: 0;
	margin: 0 0 2rem;
	display: flex;
	flex-direction: column;
	gap: 12px;
	flex-grow: 1;
	font-size: 14px;
	color: var(--text-secondary);
}
.pricing-features li {
	display: flex;
	gap: 12px;
	align-items: flex-start;
}

.check-bullet {
	flex-shrink: 0;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 11px;
	font-weight: 700;
	background: rgba(0, 159, 255, 0.12);
	color: var(--blue-dark);
	margin-top: 2px;
}
.check-bullet.orange {
	background: var(--orange);
	color: var(--navy-deep);
}

/* =========================================================
   18. FAQ
   ========================================================= */
.faq-item {
	border-bottom: 1px solid var(--border-soft);
	padding: 20px 0;
	cursor: pointer;
}
.faq-item .faq-q {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	font-weight: 700;
	color: var(--text-primary);
}
.faq-item .faq-plus {
	color: var(--blue-electric);
	font-size: 22px;
	line-height: 1;
	transition: transform 0.25s ease, color 0.25s ease;
}
.faq-item.open .faq-plus {
	transform: rotate(45deg);
	color: var(--orange);
}
.faq-item .faq-a {
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.35s ease;
	font-size: 14px;
	color: var(--text-secondary);
}
.faq-item.open .faq-a {
	max-height: 400px;
}
.faq-item .faq-a p {
	padding-top: 12px;
	margin: 0;
}

/* =========================================================
   19. Process steps (étapes 01 — 04)
   ========================================================= */
.process-step {
	padding-top: 20px;
	border-top: 2px solid var(--blue-electric);
}
.process-step.last {
	border-top-color: var(--orange);
}
.process-step .step-num {
	font-family: 'Inter', monospace;
	font-size: 12px;
	font-weight: 700;
	color: var(--blue-dark);
	margin-bottom: 8px;
	letter-spacing: 0.05em;
}
.process-step.last .step-num { color: var(--orange-dark); }
.process-step h4 {
	font-weight: 700;
	margin-bottom: 8px;
}
.process-step p {
	font-size: 14px;
	color: var(--text-secondary);
}

/* =========================================================
   20. Eyebrow / tag de section
   ========================================================= */
.eyebrow {
	display: inline-block;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--blue-dark);
	margin-bottom: 1rem;
}
.eyebrow.orange { color: var(--orange-dark); }

/* =========================================================
   21. Dots (indicateurs de niveau dans le comparatif)
   ========================================================= */
.dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	display: inline-block;
	flex-shrink: 0;
}
.dot-off  { background: rgba(107, 127, 163, 0.35); }
.dot-base { background: var(--blue-electric); }
.dot-on   { background: var(--orange); }

/* =========================================================
   22. Annotation flottante (debug / coin haut droit)
   ========================================================= */
.annotation {
	position: fixed;
	top: 16px;
	right: 16px;
	background: var(--orange);
	color: #FFFFFF;
	font-weight: 700;
	font-size: 12px;
	padding: 8px 16px;
	border-radius: var(--radius-pill);
	z-index: 9999;
	box-shadow: 0 4px 20px rgba(245, 166, 35, 0.40);
}

/* =========================================================
   23. Footer (sombre par contraste — maquette eosium_maquette1)
   ========================================================= */
footer.eos-footer,
.eos-footer {
	background: #070F24;
	color: var(--gray-muted);
	padding: 64px 0 32px;
	font-size: 14px;
	line-height: 1.6;
}

/* Container haut (4 colonnes : brand col-md-6 + 2 menus col-md-3) */
.eos-footer__top { margin-bottom: 48px; }

/* Liens génériques du footer */
.eos-footer a {
	color: var(--gray-muted);
	text-decoration: none;
	transition: color 0.2s ease;
}
.eos-footer a:hover,
.eos-footer a:focus {
	color: #FFFFFF;
	text-decoration: none;
}

/* Titres de colonnes (rendus par les widgets WP) */
.eos-footer h4,
.eos-footer h5,
.eos-footer .widget-title,
.eos-footer .footer-title {
	color: #FFFFFF;
	font-weight: 600;
	font-size: 14px;
	margin: 0 0 16px;
	letter-spacing: 0;
	text-transform: none;
}
.eos-footer .widget-title.sr-only {
	position: absolute;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0,0,0,0);
	white-space: nowrap; border: 0;
}

/* ── Colonne Brand ───────────────────────────────────────── */
.eos-footer__logo { margin-bottom: 16px; }
.eos-footer__logo img {
	max-height: 40px;
	width: auto;
	display: block;
	filter: brightness(0) invert(1) drop-shadow(0 0 6px rgba(0, 159, 255, 0.25));
}
.eos-footer__wordmark {
	display: inline-flex;
	align-items: center;
	gap: 10px;
}
.eos-footer__brand-name {
	color: #FFFFFF;
	font-weight: 800;
	font-size: 20px;
	letter-spacing: -0.01em;
}
.eos-footer__tagline {
	color: var(--gray-muted);
	font-size: 14px;
	line-height: 1.65;
	margin: 0 0 20px;
	max-width: 28em;
}

/* Bloc social */
.eos-footer__social {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}
/* Liens (qu'ils viennent du widget natif "Icônes sociales", HTML custom ou anchors) */
.eos-footer__social a,
.eos-footer__social-widget a {
	width: 36px;
	height: 36px;
	border-radius: var(--radius-sm);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.10);
	transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}
.eos-footer__social a:hover,
.eos-footer__social-widget a:hover {
	background: rgba(0, 159, 255, 0.18);
	border-color: rgba(0, 159, 255, 0.35);
	transform: translateY(-2px);
}
.eos-footer__social a svg,
.eos-footer__social-widget a svg {
	width: 16px;
	height: 16px;
	fill: #FFFFFF;
}
/* Icônes Font Awesome (shortcode [social_networks_link] du thème parent) */
.eos-footer__social a i,
.eos-footer__social-widget a i {
	font-size: 16px;
	line-height: 1;
	color: #FFFFFF;
}
/* Le thème parent charge FontAwesome 5 : "fa-linkedin-square" (nom FA4) n'existe
   plus dans sa feuille de style, d'où l'icône invisible. On remappe vers le
   glyphe carré équivalent en FA5 ("fa-linkedin", code \f08c). */
.eos-footer__social .fa-linkedin-square::before,
.eos-footer__social-widget .fa-linkedin-square::before {
	content: "\f08c";
}
/* Widget "Icônes sociales" (Gutenberg / WP core) */
.eos-footer__social-widget .wp-block-social-links {
	gap: 12px;
	padding: 0;
	margin: 0;
}
.eos-footer__social-widget .wp-block-social-links .wp-social-link {
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.10);
	border-radius: var(--radius-sm);
	transition: background 0.2s ease, transform 0.2s ease;
}
.eos-footer__social-widget .wp-block-social-links .wp-social-link:hover {
	background: rgba(0, 159, 255, 0.18);
	transform: translateY(-2px);
}
.eos-footer__social-widget .wp-block-social-links .wp-social-link a {
	color: #FFFFFF;
	fill: #FFFFFF;
}

/* ── Colonnes de menus (widgets Navigation Menu) ─────────── */
.eos-footer__col .widget {
	margin-bottom: 32px;
}
.eos-footer__col .widget:last-child { margin-bottom: 0; }

.eos-footer .widget_nav_menu ul,
.eos-footer .menu {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.eos-footer .widget_nav_menu ul li,
.eos-footer .menu li { line-height: 1.4; }
.eos-footer .widget_nav_menu ul li a,
.eos-footer .menu li a {
	font-size: 14px;
	color: var(--gray-muted);
}
.eos-footer .widget_nav_menu ul li a:hover,
.eos-footer .menu li a:hover {
	color: #FFFFFF;
}
.eos-footer .widget_nav_menu ul li.current-menu-item > a,
.eos-footer .menu li.current-menu-item > a {
	color: #FFFFFF;
}

/* ── Divider ─────────────────────────────────────────────── */
.eos-footer__divider {
	margin: 0 0 24px;
	background: linear-gradient(90deg, transparent, rgba(0, 159, 255, 0.25), transparent);
}

/* ── Bottom bar (copy + liens légaux) ────────────────────── */
.eos-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	font-size: 12px;
	color: rgba(255, 255, 255, 0.45);
}
.eos-footer__copy { line-height: 1.5; }
.eos-footer__links { margin: 0; }
.eos-footer__links ul,
.eos-footer__links .footer-links {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	margin: 0;
	padding: 0;
}
.eos-footer__links ul li a,
.eos-footer__links .footer-links li a {
	font-size: 12px;
	color: rgba(255, 255, 255, 0.55);
}
.eos-footer__links ul li a:hover,
.eos-footer__links .footer-links li a:hover {
	color: #FFFFFF;
}

/* Mini logo carré dégradé (fallback wordmark) */
.footer-logo-mark {
	width: 36px;
	height: 36px;
	border-radius: var(--radius-sm);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, var(--blue-electric), var(--blue-glow));
	color: var(--navy-deep);
	font-weight: 900;
	font-size: 16px;
}

/* Scroll to top — flèche simple en overlay, sans fond */
#scroll-to-top {
	position: fixed;
	right: 24px;
	bottom: 24px;
	width: 36px;
	height: 36px;
	display: none;
	align-items: center;
	justify-content: center;
	background: transparent !important;
	border: 0;
	padding: 0;
	color: rgba(255, 255, 255, 0.65);
	cursor: pointer;
	z-index: 999;
	transition: color 0.2s ease, transform 0.2s ease, opacity 0.2s ease;
}
#scroll-to-top:hover,
#scroll-to-top:focus {
	color: #FFFFFF;
	transform: translateY(-3px);
	outline: 0;
}
#scroll-to-top svg {
	width: 22px;
	height: 22px;
	filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.35));
}
/* Override des classes d'icône circlée potentiellement héritées du parent */
#scroll-to-top .icon-circled,
#scroll-to-top i {
	background: none !important;
	border: 0 !important;
	padding: 0 !important;
	border-radius: 0 !important;
	color: inherit !important;
}

/* Responsive footer */
@media (max-width: 991.98px) {
	.eos-footer { padding: 48px 0 24px; }
	.eos-footer__top { margin-bottom: 32px; }
	.eos-footer__brand { margin-bottom: 32px; }
	.eos-footer__col { margin-bottom: 24px; }
}
@media (max-width: 575.98px) {
	.eos-footer__bottom {
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
	}
	.eos-footer__links ul,
	.eos-footer__links .footer-links {
		gap: 16px;
	}
}

/* =========================================================
   24. Formulaires (CF7 + Bootstrap)
   ========================================================= */
.form-control,
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="number"],
input[type="search"],
textarea,
select {
	font-family: 'Inter', sans-serif;
	font-size: 15px;
	color: var(--text-primary);
	background: #FFFFFF;
	border: 1px solid var(--border-med);
	border-radius: var(--radius-md);
	padding: 12px 16px;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
	width: 100%;
}
.form-control:focus,
input:focus,
textarea:focus,
select:focus {
	outline: 0;
	border-color: var(--blue-electric);
	box-shadow: 0 0 0 3px rgba(0, 159, 255, 0.15);
}
.form-control::placeholder { color: var(--text-muted); }

label {
	font-weight: 600;
	color: var(--text-primary);
	font-size: 14px;
	margin-bottom: 6px;
	display: inline-block;
}

/* CF7 — validation */
.wpcf7-not-valid-tip {
	color: #D43A3A;
	font-size: 12px;
	margin-top: 4px;
}
.wpcf7-response-output {
	border-radius: var(--radius-md);
	padding: 12px 16px;
	font-size: 14px;
}

/* =========================================================
   25. Tableaux
   ========================================================= */
table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	font-size: 14px;
	color: var(--text-primary);
}
th {
	background: var(--bg-alt);
	color: var(--text-primary);
	font-weight: 700;
	text-align: left;
	padding: 14px 16px;
	border-bottom: 1px solid var(--border-med);
}
td {
	padding: 14px 16px;
	border-bottom: 1px solid var(--border-soft);
	color: var(--text-secondary);
}
tr:last-child td { border-bottom: 0; }

/* =========================================================
   26. Utilitaires de texte
   ========================================================= */
.text-muted     { color: var(--text-muted) !important; }
.text-navy      { color: var(--navy-deep) !important; }
.text-blue      { color: var(--blue-electric) !important; }
.text-orange    { color: var(--orange) !important; }
.text-white     { color: #FFFFFF !important; }
.text-secondary { color: var(--text-secondary) !important; }

.bg-page  { background: var(--bg-page); }
.bg-alt   { background: var(--bg-alt); }
.bg-soft  { background: var(--bg-soft); }
.bg-navy  { background: var(--navy-deep); color: #FFFFFF; }
.bg-navy-mid { background: var(--navy-mid); color: #FFFFFF; }

.font-mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }

/* Tailles de titres responsives (équivalents text-3xl / 4xl / etc. maquette) */
.h-display-1 { font-size: clamp(40px, 5vw, 68px); font-weight: 900; line-height: 1.05; letter-spacing: -0.02em; }
.h-display-2 { font-size: clamp(32px, 4vw, 52px); font-weight: 900; line-height: 1.1;  letter-spacing: -0.02em; }
.h-display-3 { font-size: clamp(28px, 3.5vw, 46px); font-weight: 900; line-height: 1.15; letter-spacing: -0.01em; }

/* Cartes à hauteur égale dans une rangée SiteOrigin Page Builder.
   À ajouter dans "Attributs" > "CSS Classes" de la rangée :  row-equal
   Force align-items: stretch sur la rangée et propage height: 100% à travers
   toute la chaîne SO (.panel-grid-cell → .so-panel → widget → carte). */
.row-equal,
.row-equal > .panel-row-style {
	align-items: stretch !important;
}
.row-equal > .panel-grid-cell,
.row-equal > .panel-row-style > .panel-grid-cell {
	display: flex;
	flex-direction: column;
}
.row-equal .panel-grid-cell > .so-panel,
.row-equal .panel-grid-cell > .so-panel > div,
.row-equal .panel-grid-cell .siteorigin-widget,
.row-equal .panel-grid-cell .so-widget-sow-editor,
.row-equal .panel-grid-cell .siteorigin-widget-tinymce,
.row-equal .panel-grid-cell .textwidget {
	height: 100%;
	display: flex;
	flex-direction: column;
}
.row-equal .service-card,
.row-equal .hover-card,
.row-equal .testimonial-card,
.row-equal .pricing-card,
.row-equal .dashboard-card,
.row-equal .glass,
.row-equal .glass-blue,
.row-equal .glass-orange,
.row-equal .cta-soft,
.row-equal .cta-bordered {
	height: 100%;
	flex: 1;
}

/* Utilitaires border-radius — échelle Eosium (Bootstrap n'a que .rounded à 4px) */
.eos-rounded-sm   { border-radius: var(--radius-sm)   !important; } /*  8px */
.eos-rounded-md   { border-radius: var(--radius-md)   !important; } /* 12px */
.eos-rounded-lg   { border-radius: var(--radius-lg)   !important; } /* 16px */
.eos-rounded-xl   { border-radius: var(--radius-xl)   !important; } /* 20px */
.eos-rounded-2xl  { border-radius: var(--radius-2xl)  !important; } /* 24px */
.eos-rounded-pill { border-radius: var(--radius-pill) !important; } /* capsule */
.eos-rounded-none { border-radius: 0 !important; }

/* =========================================================
   27. Responsive
   ========================================================= */
@media only screen and (max-width: 1200px) {
	.cta-final { padding: 56px 40px; }
}

@media only screen and (max-width: 992px) {
	.pricing-card { padding: 32px 24px; }
	.testimonial-card,
	.service-card,
	.hover-card { padding: 24px; }
	.stat-number { font-size: 40px; }
	.cta-final { padding: 48px 32px; }
}

@media only screen and (max-width: 768px) {
	.btn,
	.btn-orange,
	.btn-outline,
	.btn-blue,
	.btn-navy,
	.btn-outline-navy { padding: 14px 28px; font-size: 15px; }
	.cta-final { padding: 40px 24px; border-radius: var(--radius-xl); }
	.testimonial-card,
	.service-card,
	.hover-card,
	.pricing-card { padding: 24px 20px; }
	.stat-number { font-size: 36px; }
	.cta-guarantees { gap: 16px; font-size: 13px; }
	blockquote.citation { padding: 20px 24px; font-size: 16px; }
}

@media only screen and (max-width: 480px) {
	.btn,
	.btn-orange,
	.btn-outline,
	.btn-blue,
	.btn-navy,
	.btn-outline-navy {
		display: flex;
		justify-content: center;
		width: 100%;
	}
	.cta-final { padding: 32px 20px; }
	.pricing-price .amount { font-size: 40px; }
}

@media only screen and (max-width: 320px) {
	.testimonial-card,
	.service-card,
	.hover-card,
	.pricing-card { padding: 20px 16px; }
}

/* =========================================================
   28. Counter animé — widget « Eosium · Compteur animé »
       + shortcode [eos_counter]
   ========================================================= */
.eos-counter {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.eos-counter--align-center { align-items: center; text-align: center; }
.eos-counter--align-left   { align-items: flex-start; text-align: left; }
.eos-counter--align-right  { align-items: flex-end; text-align: right; }

.eos-counter__icon {
	width: 56px;
	height: 56px;
	border-radius: var(--radius-md);
	background: rgba(0, 159, 255, 0.10);
	color: var(--blue-electric);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 22px;
}

.eos-counter__number-wrap {
	display: inline-flex;
	align-items: baseline;
	gap: 2px;
	line-height: 1;
	font-weight: 900;
	letter-spacing: -0.02em;
}

.eos-counter--sm .eos-counter__number-wrap { font-size: clamp(24px, 3vw, 32px); }
.eos-counter--md .eos-counter__number-wrap { font-size: clamp(32px, 4vw, 48px); }
.eos-counter--lg .eos-counter__number-wrap { font-size: clamp(40px, 5vw, 68px); }
.eos-counter--xl .eos-counter__number-wrap { font-size: clamp(56px, 7vw, 96px); }

.eos-counter__prefix,
.eos-counter__suffix {
	font-size: 0.55em;
	font-weight: 700;
	color: var(--text-secondary);
}

/* Couleurs */
.eos-counter__number {
	color: var(--navy-deep); /* fallback */
	background: linear-gradient(135deg, var(--navy-deep) 0%, var(--blue-electric) 100%);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	font-variant-numeric: tabular-nums; /* évite les sauts de largeur pendant l'anim */
}
.eos-counter--blue .eos-counter__number {
	background: linear-gradient(135deg, var(--blue-electric), var(--blue-glow));
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}
.eos-counter--orange .eos-counter__number {
	background: linear-gradient(135deg, var(--orange), var(--orange-dark));
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}
.eos-counter--green .eos-counter__number {
	background: linear-gradient(135deg, #22C55E, #16A34A);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}
.eos-counter--navy .eos-counter__number {
	background: none;
	color: var(--navy-deep);
	-webkit-text-fill-color: currentColor;
}
.eos-counter--white .eos-counter__number {
	background: none;
	color: #FFFFFF;
	-webkit-text-fill-color: currentColor;
}
.eos-counter--white .eos-counter__prefix,
.eos-counter--white .eos-counter__suffix { color: rgba(255, 255, 255, 0.78); }
.eos-counter--white .eos-counter__label   { color: rgba(255, 255, 255, 0.65); }
.eos-counter--white .eos-counter__icon {
	background: rgba(255, 255, 255, 0.08);
	color: #FFFFFF;
}

/* Label sous le chiffre */
.eos-counter__label {
	color: var(--text-muted);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.4;
	max-width: 22em;
}

/* Sur fond sombre, label en clair */
.section-dark .eos-counter__label,
.bg-navy .eos-counter__label,
.bg-navy-mid .eos-counter__label,
.eos-footer .eos-counter__label { color: rgba(255, 255, 255, 0.65); }


/* =========================================================
   31. Blog index Eosium (home.php) — /ressources/
   ========================================================= */
.eos-blog {
	padding: 80px 0;
}
.eos-blog__header {
	margin-bottom: 64px;
}
.eos-blog__intro p {
	font-size: clamp(16px, 1.4vw, 19px);
	line-height: 1.6;
	color: var(--text-secondary);
	margin: 12px 0 0;
	max-width: 56ch;
}

/* Grille de cartes — 1 col mobile, 2 tablette, 3 desktop */
.eos-blog-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 32px;
	margin-bottom: 64px;
}
@media (min-width: 768px) {
	.eos-blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1200px) {
	.eos-blog-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Carte article */
.eos-blog-card {
	background: #FFFFFF;
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-xl);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	box-shadow: var(--shadow-sm);
	transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
.eos-blog-card:hover {
	transform: translateY(-6px);
	border-color: var(--border-blue);
	box-shadow: var(--shadow-lg);
}

/* Image / media */
.eos-blog-card__media {
	display: block;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--bg-alt);
	position: relative;
}
.eos-blog-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.5s ease;
}
.eos-blog-card:hover .eos-blog-card__media img {
	transform: scale(1.05);
}
/* Placeholder si pas d'image à la une */
.eos-blog-card__media-fallback {
	display: block;
	width: 100%;
	height: 100%;
	background:
		radial-gradient(ellipse 80% 60% at 50% 50%, rgba(0, 159, 255, 0.18) 0%, transparent 65%),
		linear-gradient(135deg, var(--bg-soft), var(--bg-alt));
}

/* Corps de la carte */
.eos-blog-card__body {
	padding: 24px;
	display: flex;
	flex-direction: column;
	gap: 12px;
	flex: 1;
}

/* Catégorie (mini-badge) */
.eos-blog-card__category {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	padding: 4px 12px;
	border-radius: var(--radius-pill);
	background: rgba(0, 159, 255, 0.10);
	border: 1px solid var(--border-blue);
	color: var(--blue-dark);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background 0.2s ease;
}
.eos-blog-card__category:hover {
	background: rgba(0, 159, 255, 0.18);
	color: var(--blue-dark);
	text-decoration: none;
}

/* Titre */
.eos-blog-card__title {
	font-size: 20px;
	font-weight: 800;
	line-height: 1.3;
	letter-spacing: -0.01em;
	color: var(--text-primary);
	margin: 0;
	text-wrap: balance;
	background: none;
	-webkit-text-fill-color: currentColor;
}
.eos-blog-card__title a {
	color: inherit;
	text-decoration: none;
	transition: color 0.2s ease;
}
.eos-blog-card__title a:hover {
	color: var(--blue-electric);
	text-decoration: none;
}

/* Extrait */
.eos-blog-card__excerpt {
	color: var(--text-secondary);
	font-size: 14px;
	line-height: 1.6;
	flex: 1;
}
.eos-blog-card__excerpt p {
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* Méta (date · temps de lecture) */
.eos-blog-card__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	font-size: 12px;
	color: var(--text-muted);
	margin-top: auto;
	padding-top: 4px;
}
.eos-blog-card__meta span[aria-hidden] { opacity: 0.5; }

/* Pagination — surclasse le markup natif WP de the_posts_pagination() */
.eos-pagination .nav-links,
.eos-blog .pagination {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
}
.eos-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 14px;
	border-radius: var(--radius-sm);
	background: #FFFFFF;
	border: 1px solid var(--border-soft);
	color: var(--text-secondary);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
.eos-pagination .page-numbers:hover {
	background: rgba(0, 159, 255, 0.08);
	border-color: var(--border-blue);
	color: var(--blue-electric);
	text-decoration: none;
}
.eos-pagination .page-numbers.current {
	background: linear-gradient(135deg, var(--blue-electric), var(--blue-dark));
	border-color: transparent;
	color: #FFFFFF;
}
.eos-pagination .page-numbers.dots {
	background: transparent;
	border-color: transparent;
}
.eos-pagination .screen-reader-text {
	position: absolute;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0,0,0,0);
	white-space: nowrap; border: 0;
}

/* Responsive */
@media (max-width: 767.98px) {
	.eos-blog { padding: 56px 0; }
	.eos-blog__header { margin-bottom: 40px; }
	.eos-blog-grid { gap: 24px; margin-bottom: 40px; }
	.eos-blog-card__body { padding: 20px; }
}


/* =========================================================
   32. Article single (single.php)
   ========================================================= */
.eos-article {
	padding: 64px 0 80px;
}

/* Wrapper article centré, largeur lecture optimale */
.eos-article__wrapper {
	max-width: 760px;
	margin: 0 auto;
}

/* ── Header (breadcrumb + badge + titre + meta) ────────── */
.eos-article__header {
	text-align: center;
	margin-bottom: 40px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
}

.eos-breadcrumb {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	color: var(--text-muted);
	margin-bottom: 8px;
}
.eos-breadcrumb a {
	color: var(--text-muted);
	text-decoration: none;
	transition: color 0.2s ease;
}
.eos-breadcrumb a:hover { color: var(--blue-electric); }
.eos-breadcrumb__current {
	color: var(--text-primary);
	font-weight: 500;
	max-width: 30ch;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.eos-breadcrumb span[aria-hidden] { opacity: 0.5; }

.eos-article__title {
	font-size: clamp(28px, 4vw, 44px);
	font-weight: 900;
	line-height: 1.15;
	letter-spacing: -0.02em;
	color: var(--text-primary);
	margin: 0;
	text-wrap: balance;
	background: none;
	-webkit-text-fill-color: currentColor;
}

.eos-article__meta {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 10px;
	font-size: 14px;
	color: var(--text-muted);
	margin-top: 8px;
}
.eos-article__meta span[aria-hidden] { opacity: 0.4; }
.eos-article__author {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--text-secondary);
	font-weight: 500;
}
.eos-article__avatar {
	border-radius: 50%;
	width: 28px;
	height: 28px;
}

/* ── Image à la une ────────────────────────────────────── */
.eos-article__featured {
	margin: 0 0 48px;
	border-radius: var(--radius-xl);
	overflow: hidden;
	background: var(--bg-alt);
	box-shadow: var(--shadow-md);
}
.eos-article__featured img {
	width: 100%;
	height: auto;
	display: block;
}

/* ── Contenu (the_content) — prose styles ──────────────── */
.eos-article__content {
	font-size: 17px;
	line-height: 1.7;
	color: var(--text-primary);
}
.eos-article__content > * + * { margin-top: 1.2em; }

.eos-article__content h2 {
	font-size: 28px;
	line-height: 1.25;
	margin: 2em 0 0.6em;
	letter-spacing: -0.015em;
}
.eos-article__content h3 {
	font-size: 22px;
	line-height: 1.3;
	margin: 1.6em 0 0.5em;
	letter-spacing: -0.01em;
}
.eos-article__content h4 {
	font-size: 18px;
	font-weight: 700;
	margin: 1.4em 0 0.4em;
}
.eos-article__content p { margin: 0 0 1.2em; }
.eos-article__content p:last-child { margin-bottom: 0; }

.eos-article__content a {
	color: var(--blue-electric);
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-thickness: 1px;
	text-decoration-color: rgba(0, 159, 255, 0.4);
	transition: color 0.2s ease, text-decoration-color 0.2s ease;
}
.eos-article__content a:hover {
	color: var(--blue-dark);
	text-decoration-color: currentColor;
}

.eos-article__content ul,
.eos-article__content ol {
	margin: 0 0 1.2em;
	padding-left: 1.5em;
}
.eos-article__content li { margin-bottom: 0.4em; }
.eos-article__content li::marker { color: var(--blue-electric); }

.eos-article__content blockquote {
	margin: 1.6em 0;
	padding: 20px 28px;
	background: var(--bg-alt);
	border-left: 4px solid var(--blue-electric);
	border-radius: 0 var(--radius-md) var(--radius-md) 0;
	font-style: italic;
	color: var(--text-primary);
	font-size: 18px;
}
.eos-article__content blockquote p:last-child { margin-bottom: 0; }
.eos-article__content blockquote cite {
	display: block;
	margin-top: 12px;
	font-style: normal;
	font-size: 14px;
	color: var(--text-muted);
	font-weight: 600;
}

.eos-article__content img,
.eos-article__content figure {
	max-width: 100%;
	height: auto;
	border-radius: var(--radius-md);
	margin: 1.5em 0;
}
.eos-article__content figure img { border-radius: var(--radius-md); margin: 0; }
.eos-article__content figcaption {
	font-size: 13px;
	color: var(--text-muted);
	text-align: center;
	margin-top: 8px;
}

.eos-article__content code {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 0.9em;
	padding: 2px 6px;
	border-radius: 4px;
	background: var(--bg-soft);
	color: var(--navy-deep);
}
.eos-article__content pre {
	background: var(--navy-deep);
	color: #E2E8F0;
	padding: 20px 24px;
	border-radius: var(--radius-md);
	overflow-x: auto;
	font-size: 14px;
	line-height: 1.55;
	margin: 1.5em 0;
}
.eos-article__content pre code {
	background: transparent;
	color: inherit;
	padding: 0;
}

.eos-article__content iframe,
.eos-article__content video {
	max-width: 100%;
	border-radius: var(--radius-md);
}

.eos-article__content table {
	width: 100%;
	margin: 1.5em 0;
}

.eos-article__content hr {
	border: 0;
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--border-blue), transparent);
	margin: 2.5em 0;
}

/* Pagination interne (wp_link_pages) */
.eos-article__pagelinks {
	margin-top: 2em;
	font-size: 14px;
	color: var(--text-muted);
}
.eos-article__pagelinks a,
.eos-article__pagelinks > span {
	display: inline-block;
	margin: 0 4px;
	padding: 4px 10px;
	border-radius: var(--radius-sm);
	background: var(--bg-alt);
	color: var(--text-secondary);
	text-decoration: none;
}

/* ── Footer article (tags + lien retour) ───────────────── */
/* Reset explicite : le parent applique background:#000 sur TOUT <footer>
   ([style.css:829] du parent) — on l'écrase ici. */
.eos-article__footer {
	background: transparent;
	width: auto;
	margin-top: 48px;
	padding: 32px 0 0;
	border-top: 1px solid var(--border-soft);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
}
.eos-article__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.eos-article__tag {
	display: inline-flex;
	align-items: center;
	padding: 6px 12px;
	border-radius: var(--radius-pill);
	background: var(--bg-alt);
	color: var(--text-secondary);
	font-size: 13px;
	font-weight: 500;
	text-decoration: none;
	transition: background 0.2s ease, color 0.2s ease;
}
.eos-article__tag:hover {
	background: rgba(0, 159, 255, 0.10);
	color: var(--blue-electric);
	text-decoration: none;
}
.eos-article__back {
	margin-left: auto;
}

/* ── Articles connexes ─────────────────────────────────── */
.eos-related {
	max-width: none;
	margin-top: 80px;
}
.eos-related .section-divider {
	margin-bottom: 64px;
}
.eos-related .section-header { margin-bottom: 48px; }

/* ── Commentaires (style minimal — peut être enrichi) ──── */
.eos-article__comments {
	max-width: 760px;
	margin: 64px auto 0;
	padding-top: 32px;
	border-top: 1px solid var(--border-soft);
}

/* Responsive */
@media (max-width: 767.98px) {
	.eos-article { padding: 40px 0 56px; }
	.eos-article__featured { margin-bottom: 32px; border-radius: var(--radius-md); }
	.eos-article__content { font-size: 16px; }
	.eos-article__content h2 { font-size: 24px; }
	.eos-article__content h3 { font-size: 19px; }
	.eos-article__footer {
		flex-direction: column;
		align-items: flex-start;
	}
	.eos-article__back { margin-left: 0; }
	.eos-related { margin-top: 56px; }
	.eos-related .section-divider { margin-bottom: 40px; }
	.eos-breadcrumb__current { max-width: 20ch; }
}


/* =========================================================
   29. Overrides ponctuels widget SiteOrigin Features
   ========================================================= */
.sow-features-feature-text {
	padding: 1.56rem;
}

/* p.lead — restaure la taille .lead Bootstrap (1.25rem) qui était
   neutralisée par la règle "p { font-size: inherit !important }" */
p.lead {
	font-size: 1.25rem !important;
}


/* =========================================================
   30. Liste de features Eosium
       Widget : « Eosium · Liste de features »
       Shortcode : [eos_features][eos_feature]…[/eos_features]
       Checkmark généré via ::before sur .eos-feature__title
   ========================================================= */

/* Grille responsive — wrap naturel selon le nombre de colonnes */
.eos-features {
	display: grid;
	grid-template-columns: 1fr;
	gap: 40px 32px;
	width: 100%;
}
@media (min-width: 768px) {
	.eos-features--cols-2,
	.eos-features--cols-3,
	.eos-features--cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 992px) {
	.eos-features--cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.eos-features--cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* Feature individuel */
.eos-feature {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

/* Titre + checkmark ::before (cercle inline à gauche du texte) */
.eos-feature__title {
	display: flex;
	flex-direction: row;
	align-items: flex-start;
	gap: 14px;
	font-size: clamp(20px, 2vw, 26px);
	font-weight: 800;
	line-height: 1.25;
	letter-spacing: -0.015em;
	color: var(--text-primary);
	margin: 0;
	background: none;
	-webkit-text-fill-color: currentColor;
	text-wrap: balance;
}
.eos-feature__title::before {
	content: '';
	width: 28px;
	height: 28px;
	margin-top: 2px; /* aligne optiquement le centre du cercle avec la 1re ligne de texte */
	border-radius: 50%;
	background:
		url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") center / 14px 14px no-repeat,
		linear-gradient(135deg, var(--blue-electric), var(--blue-dark));
	box-shadow: 0 4px 14px rgba(0, 159, 255, 0.25);
	flex-shrink: 0;
}

/* Description */
.eos-feature__desc,
.eos-feature__desc p {
	margin: 0;
	color: var(--text-secondary);
	font-size: 15px;
	line-height: 1.65;
}

/* ── Variante texte blanc (fond foncé) ──────────────────
   Active soit via theme="white" sur le shortcode/widget,
   soit automatiquement quand le bloc est dans .section-dark / .bg-navy / .bg-navy-mid */
.eos-features--white .eos-feature__title,
.section-dark .eos-feature__title,
.bg-navy .eos-feature__title,
.bg-navy-mid .eos-feature__title { color: #FFFFFF; }

.eos-features--white .eos-feature__desc,
.eos-features--white .eos-feature__desc p,
.section-dark .eos-feature__desc,
.section-dark .eos-feature__desc p,
.bg-navy .eos-feature__desc,
.bg-navy .eos-feature__desc p,
.bg-navy-mid .eos-feature__desc,
.bg-navy-mid .eos-feature__desc p { color: rgba(255, 255, 255, 0.78); }

/* Checkmark glassmorph blanc sur fond foncé */
.eos-features--white .eos-feature__title::before,
.section-dark .eos-feature__title::before,
.bg-navy .eos-feature__title::before,
.bg-navy-mid .eos-feature__title::before {
	background:
		url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") center / 16px 16px no-repeat,
		rgba(255, 255, 255, 0.18);
	border: 1px solid rgba(255, 255, 255, 0.35);
	box-shadow: none;
}




/* =========================================================
   Widget · FAQ accordéon (.eos-faq)
   Markup : <details class="eos-faq__item"> > <summary class="eos-faq__q">.
   ========================================================= */
.eos-faq {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 24px 0;
}

.eos-faq__item {
	background: var(--white);
	border: 1px solid var(--border-soft);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-sm);
	overflow: hidden;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}
.eos-faq__item:hover {
	border-color: var(--border-blue);
	box-shadow: var(--shadow-md);
}
.eos-faq__item[open] {
	border-color: var(--blue-electric);
	box-shadow: 0 12px 32px rgba(0, 159, 255, 0.10);
}

.eos-faq__q {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 18px 22px;
	cursor: pointer;
	list-style: none;
	font-family: 'Inter', sans-serif;
	font-weight: 700;
	font-size: 1.05rem;
	color: var(--navy-deep);
	user-select: none;
}
.eos-faq__q::-webkit-details-marker { display: none; }
.eos-faq__q::marker                  { content: ''; }

.eos-faq__q-text {
	flex: 1;
	line-height: 1.4;
}

.eos-faq__icon {
	flex: 0 0 auto;
	width: 32px;
	height: 32px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: linear-gradient(135deg, rgba(0, 159, 255, 0.10), rgba(0, 159, 255, 0.04));
	color: var(--blue-electric);
	transition: transform 0.25s ease, background 0.2s ease, color 0.2s ease;
}
.eos-faq__item[open] .eos-faq__icon {
	transform: rotate(180deg);
	background: linear-gradient(135deg, var(--blue-electric), var(--blue-dark));
	color: var(--white);
}

.eos-faq__q:focus-visible {
	outline: 2px solid var(--blue-electric);
	outline-offset: -2px;
}

.eos-faq__a {
	padding: 0 22px 20px;
	color: var(--text-secondary);
	font-size: 0.98rem;
	line-height: 1.65;
	border-top: 1px solid var(--border-soft);
	padding-top: 16px;
	animation: eosFaqIn 0.25s ease-out;
}
.eos-faq__a > *:first-child { margin-top: 0; }
.eos-faq__a > *:last-child  { margin-bottom: 0; }
.eos-faq__a a {
	color: var(--blue-dark);
	text-decoration: underline;
	text-decoration-color: rgba(0, 159, 255, 0.4);
	text-underline-offset: 2px;
}
.eos-faq__a a:hover { text-decoration-color: var(--blue-electric); }

@keyframes eosFaqIn {
	from { opacity: 0; transform: translateY(-4px); }
	to   { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
	.eos-faq__a    { animation: none; }
	.eos-faq__icon { transition: none; }
}

/* ── Variante foncée (fond navy) ──
   Active via theme="dark" OU automatiquement quand le widget
   est dans .section-dark / .bg-navy / .bg-navy-mid. */
.eos-faq--dark .eos-faq__item,
.section-dark .eos-faq__item,
.bg-navy .eos-faq__item,
.bg-navy-mid .eos-faq__item {
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(255, 255, 255, 0.10);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	box-shadow: none;
}
.eos-faq--dark .eos-faq__item:hover,
.section-dark .eos-faq__item:hover,
.bg-navy .eos-faq__item:hover,
.bg-navy-mid .eos-faq__item:hover {
	border-color: rgba(0, 159, 255, 0.35);
	background: rgba(255, 255, 255, 0.06);
}
.eos-faq--dark .eos-faq__item[open],
.section-dark .eos-faq__item[open],
.bg-navy .eos-faq__item[open],
.bg-navy-mid .eos-faq__item[open] {
	border-color: var(--blue-electric);
	background: rgba(0, 159, 255, 0.06);
}

.eos-faq--dark .eos-faq__q,
.section-dark .eos-faq__q,
.bg-navy .eos-faq__q,
.bg-navy-mid .eos-faq__q { color: var(--white); }

.eos-faq--dark .eos-faq__a,
.section-dark .eos-faq__a,
.bg-navy .eos-faq__a,
.bg-navy-mid .eos-faq__a {
	color: rgba(255, 255, 255, 0.78);
	border-top-color: rgba(255, 255, 255, 0.10);
}
.eos-faq--dark .eos-faq__a a,
.section-dark .eos-faq__a a,
.bg-navy .eos-faq__a a,
.bg-navy-mid .eos-faq__a a {
	color: var(--blue-glow);
	text-decoration-color: rgba(51, 181, 255, 0.5);
}

/* Mobile */
@media (max-width: 575.98px) {
	.eos-faq__q { padding: 14px 16px; font-size: 1rem; gap: 12px; }
	.eos-faq__a { padding: 14px 16px 16px; }
	.eos-faq__icon { width: 28px; height: 28px; }
}
