/**
 * Refonte 2026 — socle de la nouvelle identité (maquette « Maquette 4 v3 - Finale »).
 *
 * Chargé sur tout le site quand astrak_design_mode() vaut « v2 » : jetons de
 * couleur, typographie, boutons, bandeau de confiance, en-tête et pied de page.
 * Les sections de la page d'accueil sont dans v2-accueil.css.
 *
 * Tout est préfixé « v2- » : rien ne doit fuir sur les pages écrites à la main,
 * qui gardent leurs propres styles tant qu'elles ne sont pas reprises.
 */

:root {
	/* Charte d'origine conservée : marine, cyan, jaune ; Outfit + Poppins. */
	--v2-navy: #0F0F3D;
	--v2-ink: #0F0F3D;
	--v2-navy-hover: #1a1a5e;
	--v2-bg: #F8F9FA;
	--v2-line: #e3e7ee;
	--v2-line-2: #e3e7ee;
	--v2-yellow: #FFEF5E;
	--v2-cyan: #5AE7DE;
	--v2-cyan-ink: #138f88;
	--v2-teal: 90, 231, 222;
	--v2-blue: #5AE7DE;
	--v2-violet: #FFEF5E;
	--v2-text: #43435e;
	--v2-muted: #575773;
	--v2-soft: #7d7d99;
	--v2-lavender: #d6d4ea;
	--v2-link: #138f88;
	--v2-gradient: linear-gradient(135deg, #5AE7DE, #9ef0ea);
	--v2-font: 'Poppins', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--v2-title: 'Outfit', 'Poppins', system-ui, sans-serif;
	--v2-wrap: 1320px;
	--v2-gutter: clamp(20px, 4vw, 32px);
}

/* Le fond et la police du corps ne changent que sur l'accueil : les pages
 * intérieures gardent leur rendu actuel sous le nouvel en-tête. */
body.astk-v2.home {
	background: var(--v2-bg);
	color: var(--v2-ink);
	-webkit-font-smoothing: antialiased;
}

body.astk-v2 .site,
body.astk-v2 .site-content,
body.astk-v2 .inside-article {
	background: transparent;
}

/* GeneratePress laisse un liseré et des marges autour du contenu pleine largeur. */
body.astk-v2.home .site-content,
body.astk-v2.home .inside-article,
body.astk-v2.home .entry-content {
	padding: 0;
	margin: 0;
}

.v2-scope,
.v2-scope * {
	box-sizing: border-box;
}

.v2-scope a {
	color: inherit;
	text-decoration: none;
}

.v2-scope h1,
.v2-scope h2,
.v2-scope h3,
.v2-scope h4,
.v2-scope p {
	margin: 0;
	color: inherit;
}

.v2-wrap {
	max-width: var(--v2-wrap);
	margin: 0 auto;
	padding-left: var(--v2-gutter);
	padding-right: var(--v2-gutter);
}

/* ------------------------------------------------------------------ Boutons */

.v2-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	font-weight: 700;
	font-size: 15px;
	line-height: 1.2;
	padding: 15px 22px;
	border-radius: 12px;
	white-space: nowrap;
	border: 0;
	cursor: pointer;
	transition: background-color .15s, color .15s, border-color .15s, box-shadow .15s;
}

.v2-scope a.v2-btn--navy,
a.v2-btn--navy {
	background: var(--v2-navy);
	color: #fff;
}

.v2-scope a.v2-btn--navy:hover,
a.v2-btn--navy:hover {
	background: var(--v2-navy-hover);
	color: #fff;
}

.v2-scope a.v2-btn--yellow,
a.v2-btn--yellow {
	background: var(--v2-yellow);
	color: var(--v2-navy);
	font-family: var(--v2-title);
	font-size: 18px;
	padding: 16px 28px;
	border-radius: 14px;
	box-shadow: 0 10px 30px -10px rgba(255, 239, 94, .6);
}

.v2-scope a.v2-btn--yellow:hover,
a.v2-btn--yellow:hover {
	background: #fff;
	color: var(--v2-navy);
}

.v2-scope a.v2-btn--ghost {
	background: #fff;
	border: 1px solid #d3dee5;
	color: var(--v2-ink);
}

.v2-scope a.v2-btn--ghost:hover {
	border-color: var(--v2-navy);
	color: var(--v2-navy);
}

.v2-scope a.v2-textlink {
	align-self: flex-start;
	font-size: 15px;
	font-weight: 700;
	border-bottom: 2px solid var(--v2-yellow);
	padding-bottom: 3px;
}

.v2-scope a.v2-textlink:hover {
	color: #138f88;
}

/* -------------------------------------------------------- Surtitres, titres */

.v2-kicker {
	align-self: flex-start;
	display: inline-block;
	background: rgba(90, 231, 222, .12);
	border: 1px solid var(--v2-cyan);
	color: var(--v2-cyan-ink);
	font-family: var(--v2-title);
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 2px;
	padding: 7px 18px;
	border-radius: 50px;
	line-height: 1.4;
}

.v2-scope .v2-h2 {
	font-family: var(--v2-title);
	font-size: clamp(36px, 4.2vw, 56px);
	line-height: 1.02;
	letter-spacing: -.03em;
	font-weight: 700;
	text-wrap: balance;
	color: var(--v2-ink);
}

/* Mot mis en avant : surligné cyan, comme un marqueur. */
.v2-grad-text {
	background: linear-gradient(transparent 58%, rgba(90, 231, 222, .55) 58%, rgba(90, 231, 222, .55) 92%, transparent 92%);
	padding: 0 .06em;
}

/* ------------------------------------------------------ Bandeau de confiance */

.v2-topbar {
	background: var(--v2-navy);
	color: #f3f3f8;
	font-family: var(--v2-font);
	font-size: 13px;
	font-weight: 600;
}

.v2-topbar__in {
	max-width: var(--v2-wrap);
	margin: 0 auto;
	padding: 10px 20px;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 8px 14px;
	flex-wrap: wrap;
}

.v2-topbar a {
	color: #f3f3f8;
	text-decoration: none;
}

.v2-topbar a:hover {
	color: var(--v2-yellow);
}

.v2-topbar__stars {
	color: var(--v2-yellow);
	letter-spacing: 1px;
}

.v2-topbar__sep {
	color: #6f6a9c;
}

/* Le groupe ne sert qu'à masquer la suite en mobile : ses enfants deviennent des
 * éléments du bandeau, avec le même écart que le premier. */
.v2-topbar__more {
	display: contents;
}

/* ------------------------------------------------------------------ En-tête */

.v2-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgba(255, 255, 255, .9);
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
	border-bottom: 1px solid var(--v2-line);
	font-family: var(--v2-font);
	color: var(--v2-ink);
}

body.admin-bar .v2-header {
	top: 32px;
}

@media (max-width: 782px) {
	body.admin-bar .v2-header {
		top: 0;
	}
}

.v2-header__in {
	max-width: var(--v2-wrap);
	margin: 0 auto;
	padding: 0 clamp(16px, 4vw, 32px);
	height: clamp(60px, 8vw, 72px);
	display: flex;
	align-items: center;
	gap: clamp(10px, 2vw, 28px);
}

.v2-header__logo {
	display: flex;
	flex-shrink: 0;
}

.v2-header__logo img {
	height: 21px;
	width: auto;
	display: block;
}

.v2-nav {
	flex: 1;
	min-width: 0;
}

.v2-nav__list {
	display: flex;
	gap: 2px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.v2-nav__item {
	position: relative;
	margin: 0;
}

.v2-header .v2-nav__btn {
	background: none;
	border: 0;
	font: inherit;
	font-size: 14px;
	font-weight: 600;
	color: var(--v2-ink);
	padding: 8px 12px;
	border-radius: 10px;
	cursor: pointer;
	white-space: nowrap;
	display: flex;
	gap: 6px;
	align-items: center;
	line-height: 1.4;
}

.v2-header .v2-nav__btn:hover,
.v2-header .v2-nav__btn:focus,
.v2-header .v2-nav__btn:focus-visible,
.v2-header .v2-nav__item.is-open > .v2-nav__btn {
	background: #e8f0f4;
	color: var(--v2-ink);
}

.v2-nav__caret {
	font-size: 10px;
	color: var(--v2-soft);
}

.v2-nav__panel {
	position: absolute;
	top: 100%;
	left: 0;
	padding-top: 8px;
	z-index: 60;
	display: none;
}

.v2-nav__item:hover > .v2-nav__panel,
.v2-nav__item:focus-within > .v2-nav__panel,
.v2-nav__item.is-open > .v2-nav__panel {
	display: block;
}

.v2-nav__item.is-closed > .v2-nav__panel {
	display: none;
}

.v2-nav__grid {
	background: #fff;
	border: 1px solid var(--v2-line);
	border-radius: 16px;
	box-shadow: 0 24px 60px -24px rgba(15, 15, 61, .35);
	padding: 8px;
	min-width: 250px;
	display: grid;
	grid-template-columns: 1fr;
	gap: 2px;
	list-style: none;
	margin: 0;
}

.v2-nav__grid--2 {
	grid-template-columns: 1fr 1fr;
}

.v2-nav__grid li {
	margin: 0;
}

.v2-nav__grid a {
	display: block;
	padding: 9px 12px;
	border-radius: 10px;
	font-size: 14px;
	font-weight: 500;
	white-space: nowrap;
	color: var(--v2-ink);
	text-decoration: none;
}

.v2-nav__grid a:hover,
.v2-nav__grid a:focus-visible {
	background: var(--v2-bg);
	color: #138f88;
}

.v2-header a.v2-header__cta {
	font-size: 14px;
	padding: 12px 20px;
	margin-left: auto;
}

.v2-header .v2-header__burger {
	display: none;
	margin-left: auto;
	background: none;
	border: 1px solid #d3dee5;
	font: inherit;
	font-size: 14px;
	font-weight: 600;
	color: var(--v2-ink);
	padding: 10px 14px;
	border-radius: 10px;
	cursor: pointer;
	line-height: 1.2;
}

.v2-header .v2-header__burger:hover,
.v2-header .v2-header__burger:focus {
	background: #e8f0f4;
	color: var(--v2-ink);
}

.v2-mobile {
	border-top: 1px solid var(--v2-line);
	max-height: calc(100vh - 110px);
	overflow: auto;
	padding: 8px clamp(16px, 4vw, 32px) 24px;
	display: flex;
	flex-direction: column;
}

.v2-mobile[hidden] {
	display: none;
}

.v2-mobile__sec {
	border-bottom: 1px solid var(--v2-line);
}

.v2-mobile .v2-mobile__toggle {
	width: 100%;
	background: none;
	border: 0;
	font: inherit;
	color: var(--v2-ink);
	cursor: pointer;
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 18px 0;
	font-family: var(--v2-title);
	font-size: 20px;
	font-weight: 600;
	text-align: left;
	line-height: 1.2;
}

.v2-mobile .v2-mobile__toggle:hover,
.v2-mobile .v2-mobile__toggle:focus {
	background: none;
	color: var(--v2-ink);
}

.v2-mobile__icon {
	font-size: 20px;
	color: var(--v2-soft);
}

.v2-mobile__links {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
	gap: 2px 16px;
	padding: 0 0 16px;
	list-style: none;
	margin: 0;
}

.v2-mobile__links[hidden] {
	display: none;
}

.v2-mobile__links li {
	margin: 0;
}

.v2-mobile__links a {
	display: block;
	font-size: 15px;
	font-weight: 500;
	padding: 9px 0;
	color: var(--v2-text);
	text-decoration: none;
}

.v2-mobile a.v2-btn--yellow {
	margin-top: 20px;
	font-size: 17px;
	padding: 16px;
	box-shadow: none;
}

@media (max-width: 1080px) {
	.v2-nav {
		display: none;
	}

	.v2-header .v2-header__burger {
		display: block;
	}

	.v2-header a.v2-header__cta {
		margin-left: 0;
	}
}

@media (min-width: 1081px) {
	.v2-mobile {
		display: none !important;
	}
}

@media (max-width: 719px) {
	.v2-topbar__more,
	.v2-header a.v2-header__cta {
		display: none;
	}
}

/* ----------------------------------------------------------- Pied de page */

.v2-footer {
	color: var(--v2-text);
	font-family: var(--v2-font);
	background: var(--v2-bg);
}

.v2-footer__in {
	max-width: var(--v2-wrap);
	margin: 0 auto;
	padding: clamp(48px, 7vw, 72px) var(--v2-gutter) 32px;
}

.v2-footer__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 170px), 1fr));
	gap: 40px;
}

.v2-footer__col {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.v2-footer__brand {
	gap: 14px;
}

.v2-footer__brand img {
	height: 21px;
	width: auto;
	display: block;
	align-self: flex-start;
}

.v2-footer__brand p {
	font-size: 14px;
	margin: 0;
}

.v2-footer__title {
	font-size: 12px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--v2-ink);
	margin: 0 0 4px;
	font-family: var(--v2-font);
	line-height: 1.4;
}

.v2-footer a {
	font-size: 14px;
	color: var(--v2-text);
	text-decoration: none;
}

.v2-footer a:hover {
	color: #138f88;
}

.v2-footer__bottom {
	display: flex;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
	margin-top: 64px;
	padding-top: 24px;
	border-top: 1px solid var(--v2-line);
	font-size: 13px;
}

.v2-footer__bottom a {
	font-size: 13px;
}

.v2-footer__legal,
.v2-footer__social {
	display: flex;
	gap: 12px 24px;
	flex-wrap: wrap;
}

.v2-footer__social {
	gap: 20px;
}

/* En mobile, deux colonnes de liens plutôt qu'une seule liste interminable. */
@media (max-width: 559px) {
	.v2-footer__grid {
		grid-template-columns: 1fr 1fr;
		gap: 32px 16px;
	}

	.v2-footer__brand {
		grid-column: 1 / -1;
	}
}

/* Barre d'action fixe en bas d'écran, mobile uniquement. */
.v2-mobilebar {
	display: none;
}

@media (max-width: 719px) {
	.v2-mobilebar {
		display: flex;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 70;
		padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
		background: rgba(255, 255, 255, .94);
		-webkit-backdrop-filter: blur(14px);
		backdrop-filter: blur(14px);
		border-top: 1px solid var(--v2-line);
	}

	.v2-mobilebar a.v2-btn--yellow {
		flex: 1;
		font-size: 16px;
		padding: 14px;
		box-shadow: none;
	}

	body.v2-menu-open .v2-mobilebar {
		display: none;
	}

	body.astk-v2.has-v2-mobilebar .v2-footer__in {
		padding-bottom: 110px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.v2-scope *,
	.v2-header * {
		transition: none !important;
	}
}

/* Graphiques en barres des études de cas (#astrakuc-root, 13 pages) — 14/10/2026.
   La hauteur des barres (style="height:NN%") se calculait sur toute la colonne,
   valeur et mois compris : au-delà d'environ 75 %, les barres sortaient du cadre
   et le navigateur les écrasait à la même taille (juillet = août = septembre).
   La réserve en haut sert à la valeur et au mois, et les barres ne rétrécissent plus. */
#astrakuc-root .astrakuc-bar{box-sizing:border-box;padding-top:64px;}
#astrakuc-root .astrakuc-bar>*{flex-shrink:0;}
#astrakuc-root .astrakuc-bar .astrakuc-bar-val{white-space:nowrap;}
