:root {
	--gc-color-background: #090b12;
	--gc-color-surface: #111522;
	--gc-color-surface-alt: #171c2d;
	--gc-color-text: #f5f7ff;
	--gc-color-muted: #a8afc2;
	--gc-color-primary: #9f1f63;
	--gc-color-primary-dark: #741648;
	--gc-color-primary-light: #e07ab0;
	--gc-color-accent: #25aae1;
	--gc-color-accent-dark: #167da8;
	--gc-color-border: #293047;
	--gc-grid-line: rgb(139 158 207 / 0.05);
	--gc-grid-line-strong: rgb(37 170 225 / 0.035);
	--gc-shell-width: 100rem;
	--gc-content-width: 90rem;
	--gc-reading-width: 72ch;
	--gc-page-gutter: clamp(1.25rem, 3vw, 3rem);
	--gc-section-space: clamp(2.75rem, 6vw, 6rem);
	--gc-admin-bar-height: 0px;
	--gc-header-height: 5rem;
	--gc-cgu-notice-height: 0px;
	--gc-radius: 1rem;
	--gc-shadow: 0 1.5rem 4rem rgb(0 0 0 / 0.28);
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--gc-color-background);
	color: var(--gc-color-text);
	font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: 1rem;
	line-height: 1.65;
}

body.admin-bar .site-header {
	top: var(--gc-admin-bar-height);
}

body.admin-bar { --gc-admin-bar-height: 32px; }

/* Les mots longs ne doivent pas imposer la largeur des pistes Grid/Flex. */
main,
.site-footer,
.site-navigation {
	overflow-wrap: anywhere;
}

:where(.site-container, .entry-content, .lesson-blocks, .product-resource-list) > *,
:where(.article-card__body, .formation-catalog-card__body, .product-resource-file, .product-resource-video summary) > * {
	min-width: 0;
}

:where(main) :where(input, select, textarea, fieldset) {
	min-width: 0;
	max-width: 100%;
}

:where(main) :where(input, select, textarea, button) { font: inherit; }

iframe,
video { max-width: 100%; }

video { height: auto; }

:where(.entry-content, .lesson-content, .product-resource-text) pre {
	max-width: 100%;
	overflow-x: auto;
	overflow-wrap: normal;
}

:where(.article-single__content, .standard-page--editorial .entry-content, .product-description__body) > :where(p, ul, ol) {
	max-width: var(--gc-reading-width);
}

.entry-content .wp-block-table { max-width: 100%; overflow-x: auto; }
.entry-content > table { display: block; max-width: 100%; overflow-x: auto; }

img {
	display: block;
	max-width: 100%;
	height: auto;
}

h1,
h2,
h3,
p {
	margin-top: 0;
}

h1,
h2,
h3 {
	line-height: 1.12;
}

h1 {
	max-width: 12ch;
	margin-bottom: 1.5rem;
	font-size: clamp(2.75rem, 7vw, 5.5rem);
	letter-spacing: -0.055em;
}

h2 {
	margin-bottom: 1rem;
	font-size: clamp(2rem, 4vw, 3.25rem);
	letter-spacing: -0.04em;
}

h3 {
	font-size: 1.25rem;
}

a {
	color: var(--gc-color-primary-light);
}

a:hover {
	text-decoration-thickness: 0.15em;
}

a:focus-visible,
input[type="submit"]:focus-visible,
button:focus-visible {
	outline: 0.2rem solid var(--gc-color-accent);
	outline-offset: 0.25rem;
}

.site-container {
	width: min(calc(100% - (2 * var(--gc-page-gutter))), var(--gc-shell-width));
	margin-inline: auto;
}

.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;
}

.skip-link {
	position: fixed;
	top: 1rem;
	left: 1rem;
	z-index: 100;
	padding: 0.75rem 1rem;
	transform: translateY(-200%);
	background: var(--gc-color-text);
	color: var(--gc-color-background);
}

.skip-link:focus {
	transform: translateY(0);
}

.site-header {
	position: sticky;
	top: 0;
	z-index: 20;
	background: rgb(9 11 18 / 0.9);
	border-bottom: 1px solid rgb(255 255 255 / 0.08);
	backdrop-filter: blur(1rem);
}

.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	min-height: 5rem;
}

.site-brand {
	display: inline-block;
	flex: 0 0 auto;
	text-decoration: none;
}

.site-brand picture { display: block; }

.site-brand__logo {
	display: block;
	width: clamp(11rem, 15vw, 13.5rem);
	height: auto;
}

.site-navigation__menu,
.site-footer__menu,
.technology-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-navigation__menu {
	display: flex;
	align-items: center;
	gap: 1.65rem;
}

.site-navigation a {
	color: var(--gc-color-muted);
	font-size: 0.94rem;
	font-weight: 650;
	text-decoration: none;
}

.site-navigation a:hover,
.site-navigation .current-menu-item > a {
	color: var(--gc-color-text);
}

.site-header__actions,
.button-group {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.6rem;
}

.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 3rem;
	max-width: 100%;
	white-space: normal;
	overflow-wrap: anywhere;
	padding: 0.75rem 1.25rem;
	border: 1px solid transparent;
	border-radius: 0.7rem;
	font-weight: 750;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	transition: transform 160ms ease, border-color 160ms ease, background 160ms ease;
}

.button:hover {
	transform: translateY(-2px);
	text-decoration: none;
}

.gc-product-in-cart,
.gc-product-in-cart:hover { opacity: 0.58; cursor: not-allowed; pointer-events: none; transform: none; box-shadow: none; }

.button--small {
	min-height: 2.5rem;
	padding: 0.55rem 0.9rem;
	font-size: 0.88rem;
}

.button--primary {
	background: linear-gradient(135deg, var(--gc-color-primary), var(--gc-color-primary-dark));
	color: #fff;
	box-shadow: 0 0.8rem 2rem rgb(116 22 72 / 0.28);
}

.button--ghost {
	background: rgb(255 255 255 / 0.025);
	border-color: var(--gc-color-border);
	color: var(--gc-color-text);
}

.button--ghost:hover {
	border-color: var(--gc-color-primary-light);
}

.button--light {
	background: #fff;
	color: #701544;
}

/* WooCommerce utilise aussi `.button` : préserver les actions globales du header. */
.woocommerce .site-header__actions a.button,
.woocommerce-page .site-header__actions a.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.5rem;
	padding: 0.55rem 0.9rem;
	border-radius: 0.7rem;
	font-size: 0.88rem;
	font-weight: 750;
	line-height: 1.2;
	text-align: center;
}

.woocommerce .catalog-hero__copy a.button,
.woocommerce-page .catalog-hero__copy a.button,
.woocommerce .review-login-invitation__actions a.button,
.woocommerce-page .review-login-invitation__actions a.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 3rem;
	padding: 0.75rem 1.25rem;
	border-radius: 0.7rem;
	font-size: 1rem;
	font-weight: 750;
	line-height: 1.2;
	text-align: center;
}

.woocommerce a.button.button--ghost,
.woocommerce button.button.button--ghost,
.woocommerce-page a.button.button--ghost,
.woocommerce-page button.button.button--ghost {
	background: rgb(255 255 255 / 0.025);
	border: 1px solid var(--gc-color-border);
	color: var(--gc-color-text);
}

.woocommerce a.button.button--primary,
.woocommerce button.button.button--primary,
.woocommerce-page a.button.button--primary,
.woocommerce-page button.button.button--primary {
	background: linear-gradient(135deg, var(--gc-color-primary), var(--gc-color-primary-dark));
	border: 1px solid transparent;
	color: #fff;
	box-shadow: 0 0.8rem 2rem rgb(116 22 72 / 0.28);
}

.woocommerce a.button.button--ghost:hover,
.woocommerce button.button.button--ghost:hover,
.woocommerce-page a.button.button--ghost:hover,
.woocommerce-page button.button.button--ghost:hover {
	background: rgb(255 255 255 / 0.06);
	border-color: var(--gc-color-primary-light);
	color: var(--gc-color-text);
}

.woocommerce a.button.button--primary:hover,
.woocommerce button.button.button--primary:hover,
.woocommerce-page a.button.button--primary:hover,
.woocommerce-page button.button.button--primary:hover {
	background: linear-gradient(135deg, var(--gc-color-primary-light), var(--gc-color-primary));
	border-color: transparent;
	color: #fff;
}

.woocommerce a.button.button--light,
.woocommerce button.button.button--light,
.woocommerce-page a.button.button--light,
.woocommerce-page button.button.button--light {
	background: #fff;
	border: 1px solid transparent;
	color: #701544;
}

.home-hero {
	position: relative;
	overflow: hidden;
	padding-block: clamp(2rem, 4vw, 3rem);
	background:
		radial-gradient(circle at 82% 24%, rgb(37 170 225 / 0.1), transparent 30rem),
		radial-gradient(circle at 72% 44%, rgb(116 22 72 / 0.26), transparent 30rem),
		linear-gradient(var(--gc-grid-line) 1px, transparent 1px),
		linear-gradient(90deg, var(--gc-grid-line) 1px, transparent 1px),
		linear-gradient(var(--gc-grid-line-strong) 1px, transparent 1px),
		linear-gradient(90deg, var(--gc-grid-line-strong) 1px, transparent 1px);
	background-size: auto, auto, 3.5rem 3.5rem, 3.5rem 3.5rem, 14rem 14rem, 14rem 14rem;
}

.home-hero__grid {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(20rem, 1.1fr);
	align-items: center;
	gap: clamp(2rem, 4vw, 4rem);
}

.eyebrow {
	margin-bottom: 1rem;
	color: var(--gc-color-accent);
	font-size: 0.8rem;
	font-weight: 800;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.home-hero h1 {
	font-size: clamp(2.4rem, 6vw, 4.75rem);
}

.home-hero__lead {
	max-width: 38rem;
	margin-bottom: 2rem;
	color: var(--gc-color-muted);
	font-size: clamp(1.05rem, 2vw, 1.3rem);
}

.home-hero__visual {
	position: relative;
}

.code-window {
	position: relative;
	z-index: 2;
	overflow: hidden;
	transform: rotate(1.5deg);
	background: #0c101b;
	border: 1px solid #323b59;
	border-radius: 1rem;
	box-shadow: var(--gc-shadow), 0 0 5rem rgb(37 170 225 / 0.08);
}

.code-window__bar {
	display: flex;
	gap: 0.45rem;
	padding: 1rem;
	background: #171c2b;
	border-bottom: 1px solid #2c344d;
}

.code-window__bar span {
	width: 0.65rem;
	height: 0.65rem;
	background: #59627a;
	border-radius: 50%;
}

.code-window__bar span:first-child { background: #fb7185; }
.code-window__bar span:nth-child(2) { background: #fbbf24; }
.code-window__bar span:last-child { background: #34d399; }

.code-window pre {
	min-height: 17rem;
	margin: 0;
	padding: clamp(1.5rem, 4vw, 2.5rem);
	font: 0.95rem/1.85 ui-monospace, SFMono-Regular, Consolas, monospace;
	white-space: pre-wrap;
}

.code-keyword { color: #c084fc; }
.code-function { color: #67e8f9; }
.code-string { color: #86efac; }
.code-comment { color: #6b7280; }

.home-hero .code-window { transform: rotate(1deg); }
.home-hero__pixels { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.home-hero__particle { position: absolute; top: 100%; left: var(--pixel-x); width: var(--pixel-size, 0.5rem); height: 100%; color: var(--gc-color-accent); }
.home-hero__particle::before { content: ""; display: block; width: 100%; aspect-ratio: 1; background: currentColor; box-shadow: 0 0 1rem currentColor; }
.home-hero__particle:nth-child(3n) { color: var(--gc-color-primary-light); --pixel-size: 0.35rem; }
.home-hero__particle:nth-child(4n) { color: var(--gc-color-primary); --pixel-size: 0.7rem; }
.home-hero__particle:nth-child(1) { --pixel-x: 3%; --pixel-speed: 24s; --pixel-delay: -6s; }
.home-hero__particle:nth-child(2) { --pixel-x: 9%; --pixel-speed: 32s; --pixel-delay: -22s; }
.home-hero__particle:nth-child(3) { --pixel-x: 16%; --pixel-speed: 28s; --pixel-delay: -14s; }
.home-hero__particle:nth-child(4) { --pixel-x: 23%; --pixel-speed: 38s; --pixel-delay: -30s; }
.home-hero__particle:nth-child(5) { --pixel-x: 30%; --pixel-speed: 26s; --pixel-delay: -4s; }
.home-hero__particle:nth-child(6) { --pixel-x: 37%; --pixel-speed: 34s; --pixel-delay: -16s; }
.home-hero__particle:nth-child(7) { --pixel-x: 44%; --pixel-speed: 30s; --pixel-delay: -24s; }
.home-hero__particle:nth-child(8) { --pixel-x: 50%; --pixel-speed: 40s; --pixel-delay: -8s; }
.home-hero__particle:nth-child(9) { --pixel-x: 56%; --pixel-speed: 24s; --pixel-delay: -18s; }
.home-hero__particle:nth-child(10) { --pixel-x: 62%; --pixel-speed: 36s; --pixel-delay: -12s; }
.home-hero__particle:nth-child(11) { --pixel-x: 68%; --pixel-speed: 28s; --pixel-delay: -26s; }
.home-hero__particle:nth-child(12) { --pixel-x: 74%; --pixel-speed: 34s; --pixel-delay: -6s; }
.home-hero__particle:nth-child(13) { --pixel-x: 80%; --pixel-speed: 26s; --pixel-delay: -12s; }
.home-hero__particle:nth-child(14) { --pixel-x: 86%; --pixel-speed: 38s; --pixel-delay: -28s; }
.home-hero__particle:nth-child(15) { --pixel-x: 92%; --pixel-speed: 30s; --pixel-delay: -10s; }
.home-hero__particle:nth-child(16) { --pixel-x: 97%; --pixel-speed: 32s; --pixel-delay: -24s; }
/* Animation décorative du hero, sans mouvement du contenu de lecture. */
@media (prefers-reduced-motion: no-preference) {
	.home-hero__particle { animation: gc-hero-pixel-rise var(--pixel-speed) linear var(--pixel-delay) infinite; }
	.home-hero__visual::before { position: absolute; inset: -12%; content: ""; pointer-events: none; background: radial-gradient(ellipse, rgb(159 31 99 / .22), transparent 65%); animation: gc-hero-glow 9s ease-in-out infinite; }
	.home-hero .code-window code::after { content: ""; display: inline-block; width: 0.48em; height: 1em; margin-left: 0.3em; vertical-align: -0.12em; background: var(--gc-color-accent); animation: gc-hero-cursor 1.4s step-end infinite; }
	.home-hero:has(.home-hero__motion-toggle[aria-pressed="true"]) .code-window,
	.home-hero:has(.home-hero__motion-toggle[aria-pressed="true"]) .home-hero__particle,
	.home-hero:has(.home-hero__motion-toggle[aria-pressed="true"]) .home-hero__visual::before,
	.home-hero:has(.home-hero__motion-toggle[aria-pressed="true"]) .code-window code::after { animation-play-state: paused; }
}
@keyframes gc-hero-pixel-rise {
	0% { transform: translateY(0); opacity: 0; }
	8%, 85% { opacity: 0.55; }
	100% { transform: translateY(-112%); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
	.home-hero__pixels { display: none; }
}
@keyframes gc-hero-glow {
	0%, 100% { transform: scale(0.95); opacity: 0.4; }
	50% { transform: scale(1.08); opacity: 0.8; }
}
@keyframes gc-hero-cursor {
	0%, 100% { opacity: 1; }
	50% { opacity: 0; }
}
.technology-strip {
	padding-block: 1.4rem;
	background: #0d1019;
	border-block: 1px solid var(--gc-color-border);
}

.technology-list {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	overflow-x: auto;
	color: #c3c8d8;
	font: 700 0.9rem/1 ui-monospace, SFMono-Regular, Consolas, monospace;
	white-space: nowrap;
}

.technology-list li {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
}

.technology-list__logo {
	display: block;
	width: auto;
	height: clamp(1.75rem, 3vw, 2.25rem);
	max-width: 3rem;
	object-fit: contain;
}

.technology-list__logo--light {
	filter: invert(1);
}

/* Le palier portable gagne de la hauteur utile sans modifier desktop large ni mobile. */
@media (min-width: 64.01rem) and (max-width: 90rem) {
	.home-hero {
		padding-block: 1.25rem;
	}

	.home-hero__grid {
		gap: 2rem;
	}

	.home-hero h1 {
		font-size: clamp(3.25rem, 4.7vw, 4rem);
	}

	.home-hero__lead {
		margin-bottom: 1.5rem;
	}
}

/* Les variantes SVG mobiles restent lisibles sans filtre, y compris en économie d'énergie. */
@media (max-width: 38rem) {
	.technology-list {
		gap: 0.7rem;
	}

	.technology-list__logo--light,
	.technology-list__logo--contrast {
		width: 2rem;
		height: 2rem;
		max-width: none;
		filter: none;
	}
}

.home-section {
	padding-block: clamp(4.5rem, 9vw, 7.5rem);
}

/* Sections articles, bénéfices, boutique et formations compactes de l'accueil. */
.home-section:is([aria-labelledby="articles-title"], [aria-labelledby="benefits-title"], [aria-labelledby="guides-title"], [aria-labelledby="formations-title"]) {
	padding-block: clamp(2rem, 4vw, 3rem);
}
.home-section:is([aria-labelledby="articles-title"], [aria-labelledby="benefits-title"], [aria-labelledby="guides-title"], [aria-labelledby="formations-title"]) .section-heading {
	gap: 1.25rem;
	margin-bottom: 1.5rem;
}
.home-section:is([aria-labelledby="articles-title"], [aria-labelledby="benefits-title"], [aria-labelledby="guides-title"], [aria-labelledby="formations-title"]) h2 {
	font-size: clamp(1.8rem, 3.5vw, 2.8rem);
}
.home-section--surface {
	background: var(--gc-color-surface);
	border-block: 1px solid rgb(255 255 255 / 0.04);
}

.section-heading {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 2rem;
	margin-bottom: 2.5rem;
}

.section-heading h2 {
	margin-bottom: 0;
}

.section-heading--center {
	justify-content: center;
	text-align: center;
}

.text-link {
	flex: none;
	padding-bottom: 0.35rem;
	color: var(--gc-color-primary-light);
	font-weight: 750;
	text-decoration: none;
}

.content-grid,
.benefit-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.5rem;
}

.content-card {
	position: relative;
	overflow: hidden;
	background: var(--gc-color-surface-alt);
	border: 1px solid var(--gc-color-border);
	border-radius: var(--gc-radius);
	transition: transform 180ms ease, border-color 180ms ease;
}

.home-section--surface .content-card {
	background: #0d1019;
}

.content-card:hover {
	transform: translateY(-0.35rem);
	border-color: #68304f;
}

.content-card__media {
	display: grid;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	place-items: center;
	background:
		linear-gradient(135deg, rgb(159 31 99 / 0.22), rgb(37 170 225 / 0.06)),
		#0c101a;
	color: var(--gc-color-primary-light);
	text-decoration: none;
}

.content-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 250ms ease;
}

.content-card:hover .content-card__media img {
	transform: scale(1.035);
}

.content-card__placeholder {
	font: 800 2rem/1 ui-monospace, SFMono-Regular, Consolas, monospace;
}

.content-card__body {
	padding: 1.4rem;
}

.content-card__body h3 {
	margin-block: 0.85rem 0.6rem;
}

.content-card__body h3 a {
	color: var(--gc-color-text);
	text-decoration: none;
}

.content-card__excerpt,
.content-card__excerpt p,
.content-card__meta {
	color: var(--gc-color-muted);
}

.content-card__excerpt p:last-child {
	margin-bottom: 0;
}

.content-card__meta {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 0.75rem;
	font-size: 0.78rem;
}

.content-card__price {
	margin-bottom: 0;
	color: var(--gc-color-accent);
	font-size: 1.1rem;
	font-weight: 800;
}

.badge {
	display: inline-flex;
	max-width: 100%;
	overflow-wrap: anywhere;
	padding: 0.25rem 0.55rem;
	background: rgb(159 31 99 / 0.15);
	border: 1px solid rgb(224 122 176 / 0.25);
	border-radius: 99rem;
	color: var(--gc-color-primary-light);
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.section-empty {
	padding: 2.5rem;
	background: var(--gc-color-surface-alt);
	border: 1px dashed #39415b;
	border-radius: var(--gc-radius);
	text-align: center;
}

.section-empty p {
	color: var(--gc-color-muted);
}

.benefit {
	position: relative;
	padding: 2rem;
	background: #0d1019;
	border: 1px solid var(--gc-color-border);
	border-radius: var(--gc-radius);
}

.benefit__icon {
	display: inline-grid;
	width: 3rem;
	height: 3rem;
	margin-bottom: 1.5rem;
	place-items: center;
	background: rgb(159 31 99 / 0.15);
	border: 1px solid rgb(224 122 176 / 0.3);
	border-radius: 0.75rem;
	color: var(--gc-color-primary-light);
	font: 800 0.85rem/1 ui-monospace, SFMono-Regular, Consolas, monospace;
}

.benefit p {
	margin-bottom: 0;
	color: var(--gc-color-muted);
}

.home-section--community { padding-block: clamp(1.5rem, 3vw, 2.5rem); }
/* Le cadre Discord fournit déjà l'espacement avant les formations. */
.home-section--community + .home-section[aria-labelledby="formations-title"] { padding-top: 0; }

.community-panel {
	display: grid;
	grid-template-columns: minmax(16rem, 0.6fr) minmax(0, 1.4fr);
	align-items: center;
	overflow: hidden;
	background: linear-gradient(135deg, #11172a, #1d1220);
	border: 1px solid #4d2b3e;
	border-radius: 1.5rem;
}

.community-panel__visual {
	position: relative;
	min-height: 14rem;
	background:
		radial-gradient(circle at 58% 42%, rgb(37 170 225 / 0.16), transparent 58%),
		radial-gradient(circle at 20% 78%, rgb(159 31 99 / 0.12), transparent 52%),
		linear-gradient(var(--gc-grid-line) 1px, transparent 1px),
		linear-gradient(90deg, var(--gc-grid-line) 1px, transparent 1px),
		linear-gradient(var(--gc-grid-line-strong) 1px, transparent 1px),
		linear-gradient(90deg, var(--gc-grid-line-strong) 1px, transparent 1px);
	background-size: auto, auto, 2.5rem 2.5rem, 2.5rem 2.5rem, 10rem 10rem, 10rem 10rem;
}

.community-panel__content {
	padding: clamp(1.25rem, 3vw, 2.25rem);
}

.community-panel__content h2 { font-size: clamp(1.65rem, 3vw, 2.25rem); }
.community-panel__content .eyebrow { margin-bottom: 0.6rem; }
.community-panel__content p:not(.eyebrow) {
	max-width: 52rem;
	margin-bottom: 1.5rem;
	color: var(--gc-color-muted);
}

.home-section--premium {
	padding-block: 0 clamp(2rem, 4vw, 3rem);
}

.premium-panel {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
	align-items: center;
	gap: clamp(1.5rem, 4vw, 3.5rem);
	padding: clamp(1.25rem, 4vw, 3rem);
	background: linear-gradient(115deg, var(--gc-color-primary), var(--gc-color-primary-dark) 55%, #2b0c1d);
	border: 1px solid rgb(159 31 99 / .45);
	border-radius: 1.5rem;
	box-shadow: var(--gc-shadow);
}
.premium-panel__copy { min-width: 0; max-width: 40rem; }
.premium-panel .eyebrow { margin-bottom: 0.85rem; color: #f3c7de; }
.premium-panel h2 { max-width: 21ch; margin-bottom: 1rem; font-size: clamp(1.8rem, 3.5vw, 2.8rem); }
.premium-panel__copy > p:last-child { max-width: 48ch; margin: 0; color: #fbeaf3; }
.premium-panel__offer { min-width: 0; padding: clamp(1.1rem, 2.5vw, 1.75rem); background: rgb(9 11 18 / .38); border: 1px solid rgb(255 255 255 / .16); border-radius: 1rem; }
.premium-panel__benefits { display: grid; gap: 0.8rem; margin: 0 0 1.4rem; padding: 0; list-style: none; }
.premium-panel__benefits li { display: flex; align-items: center; gap: 0.75rem; font-weight: 700; }
.premium-panel__benefits li > span { display: grid; place-items: center; flex: 0 0 1.5rem; height: 1.5rem; background: rgb(37 170 225 / .14); border: 1px solid rgb(103 232 249 / .3); border-radius: 50%; color: #a5f3fc; font-size: 0.85rem; }
.premium-panel__offer .button { display: flex; justify-content: space-between; gap: 0.75rem; width: 100%; }
@media (max-width: 48rem) {
	.premium-panel { grid-template-columns: minmax(0, 1fr); }
}
.site-main {
	min-height: 70vh;
	padding-block: 3rem;
}

.page-header {
	margin-bottom: 2rem;
}

.post-list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(18rem, 100%), 1fr));
	gap: 1.5rem;
}

.post-card,
.empty-state {
	padding: 1.5rem;
	background: var(--gc-color-surface);
	border: 1px solid var(--gc-color-border);
	border-radius: var(--gc-radius);
}

.empty-state {
	max-width: 58rem;
	margin-inline: auto;
	padding: clamp(2rem, 6vw, 4rem);
	text-align: center;
}

.empty-state h1 {
	margin-block: 0.5rem 1rem;
	font-size: clamp(2rem, 5vw, 3.5rem);
}

.empty-state > p:not(.eyebrow) {
	max-width: 42rem;
	margin-inline: auto;
	color: var(--gc-color-muted);
}

.empty-state__actions,
.not-found-actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.65rem;
	margin-top: 1.75rem;
}

.not-found-page {
	min-height: 70vh;
	background: var(--gc-color-background);
}

.not-found-hero {
	position: relative;
	overflow: hidden;
	padding-block: clamp(4rem, 10vw, 8rem);
	background:
		radial-gradient(circle at 78% 28%, rgb(159 31 99 / 0.2), transparent 30rem),
		radial-gradient(circle at 18% 72%, rgb(37 170 225 / 0.16), transparent 26rem),
		linear-gradient(var(--gc-grid-line) 1px, transparent 1px),
		linear-gradient(90deg, var(--gc-grid-line) 1px, transparent 1px);
	background-size: auto, auto, 2.5rem 2.5rem, 2.5rem 2.5rem;
	border-bottom: 1px solid var(--gc-color-border);
}

.not-found-hero__inner {
	display: grid;
	grid-template-columns: minmax(15rem, 0.75fr) minmax(0, 1.25fr);
	align-items: center;
	gap: clamp(2rem, 8vw, 7rem);
}

.not-found-code {
	margin: 0;
	background: linear-gradient(135deg, var(--gc-color-accent), var(--gc-color-primary-light));
	background-clip: text;
	color: transparent;
	font-size: clamp(8rem, 15vw, 13rem);
	font-weight: 900;
	letter-spacing: -0.09em;
	line-height: 0.8;
	-webkit-background-clip: text;
}

.not-found-content h1 {
	max-width: 12ch;
	margin-block: 0.5rem 1.25rem;
	font-size: clamp(2.8rem, 6vw, 5.5rem);
}

.not-found-content > p:not(.eyebrow) {
	max-width: 42rem;
	color: var(--gc-color-muted);
	font-size: 1.1rem;
}

.not-found-content .not-found-actions {
	justify-content: flex-start;
}

.not-found-links {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1rem;
	padding-block: clamp(2.5rem, 6vw, 4.5rem);
}

.not-found-links a {
	display: flex;
	min-height: 8rem;
	flex-direction: column;
	justify-content: flex-end;
	padding: 1.4rem;
	background: var(--gc-color-surface);
	border: 1px solid var(--gc-color-border);
	border-radius: var(--gc-radius);
	color: var(--gc-color-text);
	text-decoration: none;
	transition: border-color 180ms ease, transform 180ms ease;
}

.not-found-links a:hover,
.not-found-links a:focus-visible {
	border-color: var(--gc-color-primary-light);
	transform: translateY(-0.2rem);
}

.not-found-links span {
	margin-bottom: 0.35rem;
	color: var(--gc-color-muted);
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.not-found-links strong {
	font-size: 1.35rem;
}

@media (max-width: 50rem) {
	.not-found-hero__inner {
		grid-template-columns: 1fr;
		gap: 2.5rem;
	}

	.not-found-code {
		font-size: clamp(7rem, 34vw, 11rem);
	}

	.not-found-links {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 34rem) {
	.empty-state__actions .button,
	.not-found-actions .button {
		width: 100%;
	}

	.not-found-links {
		grid-template-columns: 1fr;
	}
}

.site-footer {
	padding-top: 4rem;
	background: #07090f;
	border-top: 1px solid var(--gc-color-border);
	color: var(--gc-color-muted);
}

.site-footer__grid {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr;
	gap: 4rem;
	padding-bottom: 3rem;
}

.site-brand--footer {
	color: var(--gc-color-text);
}

.site-brand--footer .site-brand__logo {
	width: min(16rem, 100%);
}

.site-footer__description {
	max-width: 23rem;
	margin-top: 1rem;
}

.site-footer__title {
	margin-bottom: 1rem;
	color: var(--gc-color-text);
	font-size: 0.85rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.site-footer__menu {
	display: grid;
	gap: 0.65rem;
}

.site-footer a:not(.site-brand) {
	color: var(--gc-color-muted);
	text-decoration: none;
}

.site-footer a:hover {
	color: var(--gc-color-text);
}

.site-footer__bottom {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding-block: 1.5rem;
	border-top: 1px solid var(--gc-color-border);
	font-size: 0.82rem;
}

.site-footer__bottom p {
	margin: 0;
}

@media (max-width: 64rem) {
	.site-header__inner {
		flex-wrap: wrap;
		padding-block: 0.8rem;
	}

	.site-navigation {
		order: 3;
		width: 100%;
	}

	.site-navigation__menu {
		justify-content: center;
	}

	.home-hero__grid,
	.community-panel {
		grid-template-columns: 1fr;
	}

	.home-hero__content {
		max-width: 48rem;
	}

	.home-hero__visual {
		max-width: 42rem;
	}

	.community-panel__visual {
		min-height: 18rem;
	}
}

@media (max-width: 48rem) {
	.content-grid,
	.benefit-grid {
		grid-template-columns: 1fr;
	}

	.section-heading {
		align-items: flex-start;
		flex-direction: column;
	}

	.site-footer__grid {
		grid-template-columns: 1fr 1fr;
		gap: 2.5rem;
	}

	.site-footer__grid > div:first-child {
		grid-column: 1 / -1;
	}
}

@media (max-width: 38rem) {
	.site-container {
		width: min(100% - 1.5rem, var(--gc-content-width));
	}

	.site-header__inner {
		align-items: flex-start;
	}

	.site-header__actions {
		width: 100%;
	}

	.site-header__actions .button {
		flex: 1;
	}

	.site-navigation {
		overflow-x: auto;
	}

	.site-navigation__menu {
		justify-content: flex-start;
		padding-bottom: 0.25rem;
		white-space: nowrap;
	}

	.home-hero {
		padding-block: 2rem;
	}

	h1 {
		font-size: clamp(2.6rem, 15vw, 4rem);
	}

	.code-window pre {
		min-height: 14rem;
		font-size: 0.75rem;
	}

	.section-empty {
		padding: 1.5rem;
	}

	.community-panel__visual {
		min-height: 15rem;
	}

	.site-footer__grid {
		grid-template-columns: 1fr;
	}

	.site-footer__grid > div:first-child {
		grid-column: auto;
	}

	.site-footer__bottom {
		flex-direction: column;
	}
}

/* Boutique WooCommerce */
.shop-page {
	min-height: 70vh;
	background: #090b12;
}

.shop-hero {
	position: relative;
	overflow: hidden;
	padding-block: clamp(4.5rem, 9vw, 7.5rem);
	background:
		radial-gradient(circle at 82% 25%, rgb(37 170 225 / 0.09), transparent 28rem),
		radial-gradient(circle at 74% 48%, rgb(159 31 99 / 0.32), transparent 27rem),
		linear-gradient(var(--gc-grid-line) 1px, transparent 1px),
		linear-gradient(90deg, var(--gc-grid-line) 1px, transparent 1px),
		linear-gradient(var(--gc-grid-line-strong) 1px, transparent 1px),
		linear-gradient(90deg, var(--gc-grid-line-strong) 1px, transparent 1px),
		linear-gradient(135deg, #090b12, #101421);
	background-size: auto, auto, 3.5rem 3.5rem, 3.5rem 3.5rem, 14rem 14rem, 14rem 14rem, auto;
	border-bottom: 1px solid var(--gc-color-border);
}

.shop-hero__layout {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(19rem, 0.9fr);
	align-items: center;
	gap: clamp(2rem, 4vw, 4rem);
}

.shop-hero__copy {
	position: relative;
	z-index: 2;
}

.shop-hero h1 {
	max-width: 12ch;
	margin-block: 0 1.25rem;
	font-size: clamp(2.8rem, 6vw, 5rem);
	line-height: 0.98;
}

.shop-hero__copy > p:not(.eyebrow) {
	max-width: 42rem;
	margin-bottom: 2rem;
	color: var(--gc-color-muted);
	font-size: clamp(1.05rem, 2vw, 1.22rem);
}

.shop-hero__visual {
	position: relative;
	min-height: 24rem;
}

.shop-hero__orb {
	position: absolute;
	top: 4rem;
	right: 2rem;
	width: 15rem;
	height: 15rem;
	background: radial-gradient(circle at 35% 30%, #e07ab0, #9f1f63 35%, #32152b 72%);
	border-radius: 50%;
	box-shadow: 0 0 5rem rgb(159 31 99 / 0.45);
	opacity: 0.75;
}

.shop-code-card {
	position: absolute;
	z-index: 1;
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: center;
	gap: 1rem;
	width: min(22rem, 82%);
	padding: 1.25rem;
	background: rgb(14 18 29 / 0.92);
	border: 1px solid #424b64;
	border-radius: 1.25rem;
	box-shadow: 0 2rem 4rem rgb(0 0 0 / 0.35);
	backdrop-filter: blur(0.75rem);
}

.shop-code-card span {
	display: grid;
	width: 2.5rem;
	height: 2.5rem;
	place-items: center;
	background: rgb(37 170 225 / 0.12);
	border: 1px solid rgb(37 170 225 / 0.3);
	border-radius: 0.7rem;
	color: var(--gc-color-accent);
	font: 800 0.75rem/1 ui-monospace, SFMono-Regular, Consolas, monospace;
}

.shop-code-card code {
	color: #f2f4fb;
	font-size: 1rem;
}

.shop-code-card i {
	grid-column: 2;
	color: var(--gc-color-primary-light);
	font: normal 800 2rem/1 ui-monospace, SFMono-Regular, Consolas, monospace;
}

.shop-code-card--back { top: 1rem; left: 0; transform: rotate(-5deg); opacity: 0.76; }
.shop-code-card--front { right: 0; bottom: 1.5rem; transform: rotate(4deg); }

.shop-benefits {
	background: #0d1019;
	border-bottom: 1px solid var(--gc-color-border);
}

.shop-benefits__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0;
}

.shop-benefits__grid > div {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 1.4rem clamp(1rem, 3vw, 2.25rem);
	border-right: 1px solid var(--gc-color-border);
}

.shop-benefits__grid > div:first-child { padding-left: 0; }
.shop-benefits__grid > div:last-child { padding-right: 0; border-right: 0; }
.shop-benefits__grid > div > span { color: var(--gc-color-primary-light); font-size: 1.4rem; }
.shop-benefits p { display: grid; gap: 0.15rem; margin: 0; }
.shop-benefits strong { color: var(--gc-color-text); }
.shop-benefits small { color: var(--gc-color-muted); }

.shop-catalog {
	padding-block: clamp(4rem, 8vw, 7rem);
}

.shop-catalog__heading {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 2rem;
	margin-bottom: 2.5rem;
}

.shop-catalog__heading h2 { margin: 0; font-size: clamp(2rem, 4vw, 3rem); }
.shop-catalog__tools { display: flex; align-items: center; gap: 1rem; }
.shop-catalog__tools .woocommerce-result-count { margin: 0; color: var(--gc-color-muted); white-space: nowrap; }
.shop-catalog__tools .woocommerce-ordering { margin: 0; }
.shop-catalog__tools select {
	min-height: 2.8rem;
	padding: 0.65rem 2.4rem 0.65rem 0.9rem;
	background: #111522;
	border: 1px solid var(--gc-color-border);
	border-radius: 0.7rem;
	color: var(--gc-color-text);
}

.shop-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.5rem;
}

.shop-card {
	display: flex;
	min-width: 0;
	min-height: 100%;
	overflow: hidden;
	flex-direction: column;
	background: linear-gradient(160deg, #111522, #0d1018);
	border: 1px solid var(--gc-color-border);
	border-radius: 1.25rem;
	box-shadow: 0 1rem 2.5rem rgb(0 0 0 / 0.18);
	transition: border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

.shop-card:hover {
	border-color: #74405d;
	box-shadow: 0 1.5rem 3.5rem rgb(0 0 0 / 0.28);
	transform: translateY(-0.3rem);
}

.shop-card__media {
	position: relative;
	display: grid;
	min-height: 19rem;
	overflow: hidden;
	place-items: center;
	background: radial-gradient(circle at center, rgb(159 31 99 / 0.18), transparent 62%), #090c14;
}

.shop-card__media img {
	width: 100%;
	height: 19rem;
	object-fit: contain;
	padding: 1.5rem;
	transition: transform 220ms ease;
}

.shop-card:hover .shop-card__media img { transform: scale(1.035); }
.shop-card__placeholder { color: var(--gc-color-primary-light); font: 800 3rem/1 ui-monospace, SFMono-Regular, Consolas, monospace; }
.shop-card__type {
	position: absolute;
	top: 1rem;
	left: 1rem;
	padding: 0.45rem 0.7rem;
	background: rgb(9 11 18 / 0.86);
	border: 1px solid #5d334c;
	border-radius: 999px;
	color: #f1c4dc;
	font-size: 0.74rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	backdrop-filter: blur(0.5rem);
}

.shop-card__body { display: flex; flex: 1; flex-direction: column; padding: 1.5rem; }
.shop-card__body h3 { margin-bottom: 0.75rem; font-size: 1.35rem; }
.shop-card__body h3 a { color: var(--gc-color-text); text-decoration: none; }
.shop-card__excerpt { color: var(--gc-color-muted); font-size: 0.94rem; }
.shop-card__excerpt p:last-child { margin-bottom: 0; }
.shop-card__footer { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-top: auto; padding-top: 1.5rem; }
.shop-card__price { margin: 0; color: var(--gc-color-text); font-size: 1.35rem; font-weight: 800; }
.shop-card__price small { display: block; color: var(--gc-color-muted); font-size: 0.7rem; font-weight: 500; }
.shop-card__action .button {
	display: inline-flex;
	min-height: 2.75rem;
	align-items: center;
	padding: 0.65rem 1rem;
	background: var(--gc-color-primary);
	border-radius: 0.7rem;
	color: #fff;
	font-size: 0.84rem;
	text-decoration: none;
}

.shop-card__action .button:hover { background: var(--gc-color-primary-light); color: #190b13; }
.shop-page .woocommerce-pagination { margin-top: 3rem; }
.shop-page .woocommerce-pagination ul.page-numbers { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.5rem; margin: 0; padding: 0; border: 0; list-style: none; }
.shop-page .woocommerce-pagination ul.page-numbers li { float: none; margin: 0; padding: 0; border: 0; }
.shop-page .woocommerce-pagination ul.page-numbers li a,
.shop-page .woocommerce-pagination ul.page-numbers li span { display: grid; min-width: 2.7rem; height: 2.7rem; margin: 0; padding-inline: 0.7rem; place-items: center; background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: 0.6rem; color: var(--gc-color-text); text-decoration: none; }
.shop-page .woocommerce-pagination ul.page-numbers li a:hover,
.shop-page .woocommerce-pagination ul.page-numbers li a:focus-visible { background: var(--gc-color-surface-alt); }
.shop-page .woocommerce-pagination ul.page-numbers li .current { background: var(--gc-color-primary); border-color: var(--gc-color-primary); color: #fff; }
.shop-empty { padding: 4rem 2rem; background: #111522; border: 1px solid var(--gc-color-border); border-radius: 1.25rem; text-align: center; }
.shop-empty > span { color: var(--gc-color-primary-light); font: 800 2rem/1 ui-monospace, SFMono-Regular, Consolas, monospace; }

@media (max-width: 64rem) {
	.shop-hero__layout { grid-template-columns: 1fr 0.75fr; }
	.shop-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.shop-catalog__heading { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 48rem) {
	.shop-hero__layout { grid-template-columns: 1fr; }
	.shop-hero__visual { min-height: 17rem; }
	.shop-benefits__grid { grid-template-columns: 1fr; }
	.shop-benefits__grid > div,
	.shop-benefits__grid > div:first-child,
	.shop-benefits__grid > div:last-child { padding: 1rem 0; border-right: 0; border-bottom: 1px solid var(--gc-color-border); }
	.shop-benefits__grid > div:last-child { border-bottom: 0; }
	.shop-grid { grid-template-columns: 1fr; }
	.shop-catalog__tools { width: 100%; align-items: flex-start; flex-direction: column; }
	.shop-catalog__tools .woocommerce-ordering,
	.shop-catalog__tools select { width: 100%; }
}

@media (max-width: 30rem) {
	.shop-hero__visual { min-height: 14rem; }
	.shop-code-card { width: 88%; }
	.shop-hero__orb { width: 10rem; height: 10rem; }
	.shop-card__footer { align-items: stretch; flex-direction: column; }
	.shop-card__action .button { justify-content: center; width: 100%; }
}

/* Fiche produit WooCommerce */
.product-page {
	--gc-product-editorial-width: 68rem;
	--gc-product-reading-width: var(--gc-product-editorial-width);
	background: var(--gc-color-background);
}
.product-hero {
	padding-block: clamp(2rem, 5vw, 4rem) clamp(4rem, 8vw, 7rem);

}
.product-back-link { display: inline-flex; align-items: center; gap: 0.5rem; margin-bottom: 2rem; color: var(--gc-color-muted); font-size: 0.9rem; font-weight: 750; text-decoration: none; }
.product-back-link:hover { color: var(--gc-color-text); }
.product-hero__grid { max-width: var(--gc-content-width); margin-inline: auto; text-align: center; }
.product-summary h1 { max-width: 18ch; margin: 0 auto 1rem; font-size: clamp(2.6rem, 5.5vw, 4.5rem); line-height: 1; }
.product-summary__lead { margin-inline: auto; }
.product-summary__buy-row { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 1rem 1.5rem; margin-top: 1.75rem; }
.product-summary__purchase { display: flex; justify-content: center; min-width: 0; max-width: 100%; }
.product-cover { position: relative; max-width: 78rem; margin-top: -2.5rem; }
.product-cover__image { display: block; width: 100%; height: auto; max-height: 44rem; object-fit: cover; background: #080b12; border: 1px solid var(--gc-color-border); border-radius: 1.4rem; box-shadow: var(--gc-shadow); }
.product-summary__reviews { color: var(--gc-color-muted); font-size: 0.88rem; }
.product-summary__reviews-link { display: inline-flex; align-items: center; gap: 0.45rem; border-radius: 0.3rem; color: inherit; text-decoration: none; }
.product-summary__reviews-link:hover { color: var(--gc-color-text); }
.product-summary__reviews-link:focus-visible { outline: 3px solid var(--gc-color-accent); outline-offset: 0.25rem; }
.product-summary__reviews-link span[aria-hidden="true"] { color: #fbbf24; letter-spacing: 0.08em; }
.product-summary__lead { max-width: 42rem; color: var(--gc-color-muted); font-size: 1.08rem; }
.product-summary__lead p:last-child { margin-bottom: 0; }
.product-summary__price { margin: 0; color: var(--gc-color-text); font-size: clamp(1.8rem, 4vw, 2.4rem); font-weight: 900; }
.product-summary__price small,
.product-description-cta__price small { display: inline-block; margin-left: 0.15em; vertical-align: super; color: var(--gc-color-muted); font-size: 0.65rem; font-weight: 600; line-height: 1; }
.product-summary__purchase form.cart { display: flex; flex-wrap: wrap; min-width: 0; max-width: 100%; align-items: stretch; gap: 0.75rem; margin: 0; }
.product-summary__purchase form.variations_form,
.product-summary__purchase form.grouped_form { width: 100%; flex-direction: column; }
.product-summary__purchase table.variations,
.product-summary__purchase table.group_table { width: 100%; table-layout: fixed; }
.product-summary__purchase .single_variation_wrap { min-width: 0; max-width: 100%; }
.product-summary__purchase .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: .75rem; }
.product-summary__purchase .quantity { display: inline-flex; align-items: stretch; }
.product-summary__purchase .quantity .qty { width: 5rem; min-height: 3rem; padding: 0.75rem 0.55rem; background: #0d111d; border: 1px solid var(--gc-color-border); border-radius: 0.7rem; color: var(--gc-color-text); font: inherit; font-weight: 750; line-height: 1; text-align: center; color-scheme: dark; transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease; }
.product-summary__purchase .quantity .qty:hover { background: #101522; border-color: rgb(224 122 176 / 0.55); }
.product-summary__purchase .quantity .qty:focus { background: #101522; border-color: var(--gc-color-accent); outline: none; box-shadow: 0 0 0 3px rgb(37 170 225 / 0.14); }
.woocommerce .product-summary__purchase .single_add_to_cart_button.button,
.woocommerce .product-summary__purchase .gc-product-owned.button,
.woocommerce-page .product-summary__purchase .gc-product-owned.button,
.woocommerce-page .product-summary__purchase .single_add_to_cart_button.button { display: inline-flex; align-items: center; justify-content: center; min-height: 3rem; padding: 0.75rem 1.5rem; background: linear-gradient(135deg, var(--gc-color-primary), var(--gc-color-primary-dark)); border: 1px solid transparent; border-radius: 0.7rem; color: #fff; font-size: 1rem; font-weight: 750; line-height: 1.2; }
.product-summary__assurances { display: grid; gap: 0.9rem; margin: 2rem 0 0; padding: 1.25rem 0 0; border-top: 1px solid var(--gc-color-border); list-style: none; }
.product-summary__assurances li { display: flex; gap: 0.8rem; }
.product-summary__assurances li > span { display: grid; width: 1.65rem; height: 1.65rem; flex: 0 0 auto; place-items: center; background: rgb(159 31 99 / 0.15); border-radius: 50%; color: var(--gc-color-primary-light); font-size: 0.78rem; font-weight: 900; }
.product-summary__assurances li div { display: grid; gap: 0.1rem; }
.product-summary__assurances small { color: var(--gc-color-muted); }
.product-details { padding-block: clamp(4rem, 8vw, 7rem); background: var(--gc-color-background); }
.product-details > .site-container,
.product-reviews > .site-container { width: min(calc(100% - (2 * var(--gc-page-gutter))), var(--gc-product-editorial-width)); }
.product-details__content > h2 { max-width: 18ch; margin-block: 0 1.5rem; font-size: clamp(2rem, 4vw, 3rem); }
.product-details__content > .entry-content { color: var(--gc-color-muted); font-size: 1.04rem; }
.product-description { display: grid; gap: clamp(4rem, 8vw, 7rem); margin-top: 2.5rem; }
.product-description__intro { width: 100%; padding: clamp(2rem, 6vw, 4rem); background: #151927; border: 1px solid #384159; border-left: 0.3rem solid var(--gc-color-primary); border-radius: 1.5rem; box-shadow: 0 1.5rem 4rem rgb(0 0 0 / 0.2); color: var(--gc-color-text); font-size: clamp(1.15rem, 2.5vw, 1.45rem); line-height: 1.7; }
.product-description__intro > * { max-width: var(--gc-reading-width); margin-inline: auto; }
.product-description__intro > *:last-child { margin-bottom: 0; }
.product-description__section { display: grid; gap: 1.75rem; }
.product-description__heading,
.product-description__body { width: min(100%, var(--gc-product-reading-width)); margin-inline: auto; }
.product-description__heading h2 { max-width: none; width: 100%; margin: 0; color: var(--gc-color-text); font-size: clamp(1.4rem, 2.4vw, 1.8rem); line-height: 1.25; }
.product-description__body { font-size: 1.08rem; line-height: 1.75; }
.product-description__body > p,
.product-description__body > ul,
.product-description__body > ol { width: 100%; max-width: none; }
.product-description__body > *:last-child { margin-bottom: 0; }
.product-description__body ul { display: grid; gap: 0; margin: 0; padding: 0; overflow: hidden; background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: var(--gc-radius); list-style: none; box-shadow: 0 1.5rem 4rem rgb(0 0 0 / 0.18); }
.product-description__body li { padding: 1.05rem 1.25rem; color: var(--gc-color-text); }
.product-description__body li + li { border-top: 1px solid var(--gc-color-border); }
.product-description__body ul + p,
.product-description__body ol + p { margin-top: 1.5rem; }
.product-description__cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.product-description__card { display: grid; grid-template-columns: auto 1fr; gap: 1.1rem; align-items: start; min-width: 0; padding: 1.6rem; background: linear-gradient(145deg, rgb(19 25 43 / 0.96), rgb(13 17 29 / 0.96)); border: 1px solid var(--gc-color-border); border-radius: var(--gc-radius); transition: border-color 0.2s ease, transform 0.2s ease; }
.product-description__card:hover { border-color: rgb(159 31 99 / 0.62); transform: translateY(-0.2rem); }
.product-description__number { display: grid; width: 2.8rem; height: 2.8rem; place-items: center; background: linear-gradient(135deg, rgb(159 31 99 / 0.22), rgb(20 147 201 / 0.14)); border: 1px solid rgb(159 31 99 / 0.28); border-radius: 0.75rem; color: var(--gc-color-primary-light); font: 800 0.78rem/1 ui-monospace, SFMono-Regular, Consolas, monospace; }
.product-description__card h3 { margin: 0 0 0.5rem; color: var(--gc-color-text); font-size: 1.05rem; }
.product-description__card p { margin: 0; line-height: 1.65; }
.product-description__section--closing { overflow: hidden; padding: clamp(2rem, 6vw, 4rem); background: #151927; border: 1px solid #384159; border-left: 0.3rem solid var(--gc-color-primary); border-radius: 1.5rem; box-shadow: 0 1.5rem 4rem rgb(0 0 0 / 0.2); }
.product-description__section--closing .product-description__body { color: #fbeaf3; }
.product-description__section--closing .product-description__body > p { width: 100%; }
.product-description-cta { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin-top: clamp(3rem, 7vw, 5rem); padding: clamp(1.75rem, 5vw, 3rem); background: #101522; border: 1px solid #4a3044; border-radius: 1.5rem; box-shadow: 0 1.5rem 4rem rgb(0 0 0 / 0.18); }
.product-description-cta__identity { display: flex; align-items: center; gap: 1.5rem; min-width: 0; }
.product-description-cta__image { display: block; width: clamp(5rem, 10vw, 8rem); aspect-ratio: 1; flex: 0 0 auto; object-fit: cover; border-radius: 0.8rem; }
.product-description-cta__copy { min-width: 0; }
.product-description-cta__copy h2 { max-width: 22ch; margin: 0.35rem 0 0; font-size: clamp(1.65rem, 3vw, 2.4rem); }
.product-description-cta__purchase { display: flex; flex: 0 0 auto; align-items: center; gap: 1.25rem; }
.product-description-cta__price { margin: 0; color: var(--gc-color-text); font-size: clamp(1.5rem, 3vw, 2rem); font-weight: 900; white-space: nowrap; }
.woocommerce .product-description-cta__button.button,
.woocommerce-page .product-description-cta__button.button { display: inline-flex; align-items: center; justify-content: center; min-height: 3rem; padding: 0.75rem 1.5rem; border-radius: 0.7rem; font-size: 1rem; font-weight: 750; line-height: 1.2; text-decoration: none; }
.product-details__summary { padding: 1.5rem; background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: var(--gc-radius); }
.product-details__summary h2 { font-size: 1.35rem; }
.product-details__summary ul { display: grid; gap: 0.85rem; margin: 1.25rem 0 0; padding: 0; list-style: none; }
.product-details__summary li { position: relative; padding-left: 1.5rem; color: var(--gc-color-muted); }
.product-details__summary li::before { position: absolute; left: 0; color: var(--gc-color-primary-light); content: "✓"; font-weight: 900; }
.product-reviews { padding-block: clamp(2.75rem, 6vw, 4.5rem); background: #090b12; border-top: 1px solid var(--gc-color-border); }
.product-reviews #reviews { scroll-margin-top: calc(7rem + var(--gc-admin-bar-height) + var(--gc-cgu-notice-height)); }
.product-reviews .woocommerce-Reviews { width: 100%; max-width: none; margin-inline: auto; }
.product-reviews .woocommerce-Reviews-title,
.product-reviews .woocommerce-noreviews { display: none; }
.product-reviews .commentlist { display: grid; gap: 0.65rem; margin: 0; padding: 0; list-style: none; }
.product-reviews .comment_container { display: grid; grid-template-columns: 2.35rem minmax(0, 1fr); gap: 0.75rem; align-items: start; }
.product-reviews .comment_container > .avatar { position: static !important; width: 2.35rem !important; height: 2.35rem !important; margin: 0 !important; padding: 0 !important; border: 1px solid #394157 !important; border-radius: 50%; object-fit: cover; }
.product-reviews .comment-text { position: relative; grid-column: 2; min-height: 2.35rem; margin: 0 !important; padding: 0.85rem 0.95rem !important; background: linear-gradient(135deg, rgb(37 170 225 / 0.025), rgb(159 31 99 / 0.035)), #111522; border: 1px solid var(--gc-color-border) !important; border-radius: 0.8rem !important; }
.product-reviews .comment-text .meta { margin: 0 7rem 0.45rem 0 !important; color: var(--gc-color-muted) !important; font-size: 0.78rem !important; }
.product-reviews .woocommerce-review__author { color: var(--gc-color-text); }
.product-reviews .comment-text .description p { margin: 0; color: var(--gc-color-text); font-size: 0.95rem; line-height: 1.55; }
.product-reviews .star-rating { position: absolute; top: 0.85rem; right: 0.95rem; color: var(--gc-color-primary-light); }
.product-reviews .star-rating::before,
.product-reviews .star-rating span::before { color: var(--gc-color-primary-light); }
.product-reviews #review_form_wrapper { margin-top: clamp(1.35rem, 3vw, 2.25rem); padding: clamp(1.1rem, 3vw, 1.65rem); background: #111522; border: 1px solid var(--gc-color-border); border-radius: 1rem; }
.product-reviews .review-login-invitation { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1.5rem; }
.product-reviews .review-login-invitation > p { margin: 0; color: var(--gc-color-text); font-size: 1.05rem; font-weight: 650; }
.review-login-invitation__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; }
.review-login-invitation__actions .button { text-align: center; }
@media (max-width: 30rem) {
	.review-login-invitation__actions { width: 100%; }
	.review-login-invitation__actions .button { width: 100%; }
}
.product-reviews .comment-reply-title { display: block; margin-bottom: 1.25rem; color: var(--gc-color-text); font-size: clamp(1.25rem, 2.2vw, 1.55rem); font-weight: 800; }
.product-reviews .comment-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.85rem 1rem; }
.product-reviews .comment-form[hidden] { display: none; }
.product-reviews .comment-notes,
.product-reviews .comment-form-rating,
.product-reviews .comment-form-comment,
.product-reviews .comment-form-cookies-consent,
.product-reviews .form-submit { grid-column: 1 / -1; }
.product-reviews .comment-notes { margin: 0; color: var(--gc-color-muted); font-size: 0.9rem; }
.product-reviews .comment-form p { margin-block: 0; }
.product-reviews .comment-form label { display: inline-block; margin-bottom: 0.5rem; color: var(--gc-color-text); font-weight: 700; }
.product-reviews .required { color: var(--gc-color-primary-light); }
.product-reviews .comment-form-rating { display: grid; gap: 0.3rem; }
.product-reviews .stars { margin: 0 !important; font-size: 1.55rem; line-height: 1; }
.product-reviews .stars a { color: var(--gc-color-primary-light); }
.product-reviews textarea,
.product-reviews input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.product-reviews select { width: 100%; padding: 0.9rem 1rem; background: #0b0f19; border: 1px solid #343c51; border-radius: 0.7rem; color: var(--gc-color-text); font: inherit; }
.product-reviews textarea { height: 8rem; min-height: 6rem; resize: vertical; }
.product-reviews textarea { scrollbar-color: var(--gc-color-primary) #0b0f19; scrollbar-width: thin; }
.product-reviews textarea::-webkit-scrollbar { width: 0.65rem; }
.product-reviews textarea::-webkit-scrollbar-track { background: #0b0f19; border-radius: 999px; }
.product-reviews textarea::-webkit-scrollbar-thumb { background: var(--gc-color-primary); border: 2px solid #0b0f19; border-radius: 999px; }
.product-reviews textarea::-webkit-scrollbar-thumb:hover { background: var(--gc-color-primary-light); }
.product-reviews textarea:focus,
.product-reviews input:focus,
.product-reviews select:focus { border-color: var(--gc-color-primary-light); outline: 3px solid rgb(159 31 99 / 0.18); }
.product-reviews .comment-form-cookies-consent { display: flex; align-items: flex-start; gap: 0.7rem; color: var(--gc-color-muted); font-size: 0.9rem; }
.product-reviews .comment-form-cookies-consent input { flex: 0 0 auto; margin-top: 0.25rem; accent-color: var(--gc-color-primary); }
.product-reviews .comment-form-cookies-consent label { margin: 0; color: var(--gc-color-muted); font-weight: 500; }
.product-review-preview__feedback { grid-column: 1 / -1; margin: 0; padding: 0.85rem 1rem; background: rgb(185 28 28 / 0.14); border: 1px solid rgb(248 113 113 / 0.45); border-radius: 0.7rem; color: #fecaca; }
.product-review-preview { display: grid; gap: 1.1rem; padding: clamp(1.25rem, 3vw, 2rem); background: linear-gradient(145deg, #151a2a, #111522); border: 1px solid var(--gc-color-border); border-radius: 1rem; }
.product-review-preview[hidden] { display: none; }
.product-review-preview:focus-visible { outline: 3px solid var(--gc-color-accent); outline-offset: 0.25rem; }
.product-review-preview .eyebrow,
.product-review-preview h3,
.product-review-preview p { margin: 0; }
.product-review-preview h3 { color: var(--gc-color-text); font-size: clamp(1.25rem, 2.3vw, 1.65rem); }
.product-review-preview__rating { display: flex; gap: 0.5rem; align-items: center; color: #fbbf24; font-size: 1.45rem; letter-spacing: 0.08em; }
.product-review-preview__text { max-width: 72ch; color: var(--gc-color-text); font-size: 1.02rem; line-height: 1.65; white-space: pre-wrap; overflow-wrap: anywhere; }
.product-review-preview__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.product-review-preview__actions .button { min-height: 3rem; }
.product-review-preview__actions button:focus-visible { outline: 3px solid var(--gc-color-accent); outline-offset: 0.2rem; }
.product-review-preview__actions button:disabled { opacity: 0.65; cursor: wait; }
.woocommerce .product-reviews #review_form #respond .form-submit .submit,
.woocommerce-page .product-reviews #review_form #respond .form-submit .submit { display: inline-flex; min-height: 3rem; align-items: center; justify-content: center; padding: 0.75rem 1.5rem; background: linear-gradient(135deg, var(--gc-color-primary), var(--gc-color-primary-dark)); border: 1px solid transparent; border-radius: 0.7rem; color: #fff; font-size: 1rem; font-weight: 750; line-height: 1.2; box-shadow: 0 0.8rem 2rem rgb(116 22 72 / 0.28); cursor: pointer; transition: transform 160ms ease, border-color 160ms ease, background 160ms ease; }
.woocommerce .product-reviews #review_form #respond .form-submit .submit:hover,
.woocommerce-page .product-reviews #review_form #respond .form-submit .submit:hover { background: linear-gradient(135deg, var(--gc-color-primary-light), var(--gc-color-primary)); color: #fff; transform: translateY(-2px); }

@media (prefers-reduced-motion: reduce) {
	.woocommerce .product-reviews #review_form #respond .form-submit .submit:hover,
	.woocommerce-page .product-reviews #review_form #respond .form-submit .submit:hover { transform: none; }
}

@media (max-width: 48rem) {
	.product-summary h1 { font-size: clamp(2.5rem, 12vw, 4rem); }
	.product-description__cards { grid-template-columns: 1fr; }
	.product-description-cta { align-items: stretch; flex-direction: column; }
	.product-description-cta__purchase { align-items: stretch; flex-direction: column; }
	.product-description-cta__button { width: 100%; }
	.product-reviews .comment-form { grid-template-columns: 1fr; }
	.product-reviews .comment-form > * { grid-column: 1; }
	.product-reviews .comment_container { grid-template-columns: 2.15rem minmax(0, 1fr); gap: 0.6rem; }
	.product-reviews .comment_container > .avatar { width: 2.15rem !important; height: 2.15rem !important; }
	.product-reviews .comment-text { grid-column: 2; }
	.product-reviews .comment-text .meta { margin-right: 0 !important; padding-right: 0; }
	.product-reviews .star-rating { position: relative; top: auto; right: auto; float: none; margin-bottom: 0.75rem; }
	.product-review-preview__actions,
	.product-review-preview__actions .button { width: 100%; }
}
@media (max-width: 30rem) {
	.product-summary__purchase form.cart { flex-direction: column; }
	.product-summary__purchase .quantity,
	.product-summary__purchase .quantity .qty,
	.product-summary__purchase .single_add_to_cart_button { width: 100%; }
}
/* Formations */
.catalog-hero,
.formation-hero,
.articles-hero,
.standard-page__header {
	padding-block: clamp(4rem, 9vw, 7rem);
	background:
		radial-gradient(circle at 84% 22%, rgb(37 170 225 / 0.09), transparent 30rem),
		radial-gradient(circle at 76% 42%, rgb(159 31 99 / 0.24), transparent 29rem),
		linear-gradient(var(--gc-grid-line) 1px, transparent 1px),
		linear-gradient(90deg, var(--gc-grid-line) 1px, transparent 1px),
		linear-gradient(var(--gc-grid-line-strong) 1px, transparent 1px),
		linear-gradient(90deg, var(--gc-grid-line-strong) 1px, transparent 1px);
	background-size: auto, auto, 3.5rem 3.5rem, 3.5rem 3.5rem, 14rem 14rem, 14rem 14rem;
	border-bottom: 1px solid var(--gc-color-border);
}

.standard-page--editorial { padding-block: 0; }
.standard-page__header { padding-block: clamp(2.5rem, 6vw, 4.5rem); }
.standard-page__header h1 { max-width: 26ch; margin: 0; font-size: clamp(2.2rem, 4.5vw, 3.75rem); line-height: 1.12; overflow-wrap: anywhere; text-wrap: balance; }
.standard-page__body { padding-block: clamp(2rem, 5vw, 4rem); }
.standard-page__body .entry-content h2 { font-size: clamp(1.6rem, 3vw, 2.35rem); line-height: 1.25; }
.standard-page__body .entry-content h3 { font-size: clamp(1.25rem, 2.4vw, 1.7rem); line-height: 1.3; }

.catalog-hero h1,
.formation-hero h1 {
	max-width: 15ch;
	margin-top: 0;
	margin-bottom: 1rem;
	font-size: clamp(2.75rem, 6vw, 4.75rem);
}

.catalog-hero__content > p:last-child,
.formation-hero__lead {
	max-width: 46rem;
	margin-bottom: 0;
	color: var(--gc-color-muted);
	font-size: 1.15rem;
}

.catalog-content {
	padding-block: clamp(3.5rem, 7vw, 6rem);
}

.catalog-filters {
	display: grid;
	grid-template-columns: repeat(3, minmax(9rem, 1fr)) auto;
	align-items: end;
	gap: 1rem;
	margin-top: -6rem;
	margin-bottom: 4rem;
	padding: 1.25rem;
	background: rgb(17 21 34 / 0.97);
	border: 1px solid var(--gc-color-border);
	border-radius: var(--gc-radius);
	box-shadow: var(--gc-shadow);
}

.catalog-filter label {
	display: block;
	margin-bottom: 0.4rem;
	color: var(--gc-color-muted);
	font-size: 0.78rem;
	font-weight: 750;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.catalog-filter select {
	width: 100%;
	min-height: 3rem;
	padding: 0.65rem 2.5rem 0.65rem 0.8rem;
	background: #0b0e17;
	border: 1px solid #343c55;
	border-radius: 0.65rem;
	color: var(--gc-color-text);
	font: inherit;
}

.catalog-filter select:focus {
	border-color: var(--gc-color-primary-light);
	outline: 0.15rem solid rgb(159 31 99 / 0.25);
}

.catalog-filters__reset {
	grid-column: 1 / -1;
	justify-self: end;
	color: var(--gc-color-muted);
	font-size: 0.85rem;
}

.catalog-results__title {
	margin-bottom: 2rem;
	font-size: clamp(1.6rem, 3vw, 2.2rem);
}

.formation-card__badges {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
}

.formation-hero__badges {
	align-items: center;
	gap: 0.6rem;
	margin-bottom: clamp(1rem, 2vw, 1.35rem);
}

.formation-hero__badges::after {
	width: clamp(2.5rem, 6vw, 5rem);
	height: 1px;
	margin-left: 0.2rem;
	background: linear-gradient(90deg, var(--gc-color-primary-light), transparent);
	content: "";
}

.badge--access {
	background: rgb(37 170 225 / 0.1);
	border-color: rgb(37 170 225 / 0.25);
	color: #67e8f9;
}

.formation-back-link {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	margin-bottom: 1.15rem;
	color: var(--gc-color-primary-light);
	font-size: 0.9rem;
	font-weight: 750;
	text-decoration: none;
}

.formation-back-link:hover,
.formation-back-link:focus-visible {
	color: var(--gc-color-text);
	text-decoration: underline;
	text-underline-offset: 0.25em;
}

.access-level-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.38rem;
	pointer-events: none;
}

.access-level-badge__symbol {
	display: inline-flex;
	width: 0.8rem;
	height: 0.8rem;
	flex: 0 0 auto;
}

.access-level-badge__symbol svg {
	display: block;
	width: 100%;
	height: 100%;
	fill: none;
	stroke: currentcolor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.35;
}

.formation-card__meta,
.formation-facts {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.25rem;
	margin: 1.2rem 0 0;
	padding: 1rem 0 0;
	border-top: 1px solid var(--gc-color-border);
	color: var(--gc-color-muted);
	font-size: 0.83rem;
	list-style: none;
}

.formation-card__meta li {
	position: relative;
}

.formation-card__meta li + li::before {
	position: absolute;
	left: -0.75rem;
	content: "·";
}

.nav-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5rem;
	margin-top: 3rem;
}

a.page-numbers,
span.page-numbers {
	display: grid;
	min-width: 2.6rem;
	height: 2.6rem;
	place-items: center;
	padding-inline: 0.7rem;
	background: var(--gc-color-surface);
	border: 1px solid var(--gc-color-border);
	border-radius: 0.55rem;
	color: var(--gc-color-text);
	text-decoration: none;
}

.page-numbers.current {
	background: var(--gc-color-primary);
	border-color: var(--gc-color-primary);
}

.formation-hero { padding-block: clamp(2rem, 4vw, 3.5rem); }

.formation-hero__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: center;
	gap: clamp(1.5rem, 4vw, 3rem);
}

.formation-hero__media {
	display: grid;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	place-items: center;
	background: linear-gradient(135deg, rgb(159 31 99 / 0.25), rgb(37 170 225 / 0.08)), #0c101a;
	border: 1px solid #38415e;
	border-radius: 1.25rem;
	color: var(--gc-color-primary-light);
	font: 800 3rem/1 ui-monospace, SFMono-Regular, Consolas, monospace;
	box-shadow: var(--gc-shadow);
}

.formation-hero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.formation-facts {
	gap: 2rem;
	max-width: 32rem;
	margin-top: 2rem;
}

.formation-facts li {
	display: grid;
	gap: 0.1rem;
}

.formation-facts strong {
	color: var(--gc-color-text);
	font-size: 0.72rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.formation-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 20rem;
	align-items: start;
	gap: clamp(2.5rem, 7vw, 6rem);
	padding-block: clamp(4rem, 8vw, 7rem);
}

.formation-content {
	min-width: 0;
	max-width: 48rem;
}

.formation-content section,
.formation-content .entry-content {
	margin-bottom: 3rem;
	color: #d7dbea;
}

.formation-content h2 {
	margin-top: 0;
	font-size: clamp(1.65rem, 3vw, 2.25rem);
}

.formation-content a {
	text-underline-offset: 0.2em;
}

.formation-sidebar {
	position: sticky;
	top: calc(7rem + var(--gc-admin-bar-height) + var(--gc-cgu-notice-height));
	padding: 1.5rem;
	background: var(--gc-color-surface-alt);
	border: 1px solid var(--gc-color-border);
	border-radius: var(--gc-radius);
}

.formation-sidebar h2 {
	font-size: 1.45rem;
}

.formation-sidebar p {
	color: var(--gc-color-muted);
}

.formation-sidebar .button,
.formation-sidebar .text-link {
	width: 100%;
	margin-top: 0.75rem;
	text-align: center;
}

.formation-sidebar .text-link {
	display: block;
	margin-top: 1rem;
}

@media (max-width: 56rem) {
	.catalog-filters {
		grid-template-columns: 1fr 1fr;
	}

	.formation-hero__grid,
	.formation-layout {
		grid-template-columns: minmax(0, 1fr);
	}

	.formation-hero__media {
		max-width: 38rem;
	}

	.formation-sidebar {
		position: static;
	}
}

@media (max-width: 38rem) {
	.catalog-filters {
		grid-template-columns: 1fr;
		margin-top: -5rem;
	}

	.catalog-filters .button,
	.catalog-filters__reset {
		width: 100%;
	}

	.catalog-filters__reset {
		grid-column: auto;
		justify-self: stretch;
		text-align: center;
	}
}
/* Parcours pédagogique */
.formation-curriculum {
	margin-top: 4rem;
	padding-top: 3rem;
	border-top: 1px solid var(--gc-color-border);
}

.curriculum-heading {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 2rem;
	margin-bottom: 2rem;
}

.curriculum-heading h2 {
	margin-bottom: 0;
}

.curriculum-heading > span {
	flex: none;
	color: var(--gc-color-muted);
	font-size: 0.9rem;
}

.curriculum-list {
	display: grid;
	gap: 1rem;
}

.curriculum-chapter {
	overflow: hidden;
	background: var(--gc-color-surface-alt);
	border: 1px solid var(--gc-color-border);
	border-radius: var(--gc-radius);
}

.curriculum-chapter__header {
	cursor: pointer;
	list-style: none;
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 1.25rem 1.5rem;
	background: rgb(255 255 255 / 0.025);
}

.curriculum-chapter__header::-webkit-details-marker { display: none; }
.curriculum-chapter__header:focus-visible { outline: 3px solid var(--gc-color-accent); outline-offset: -3px; }
.curriculum-chapter__header > div { min-width: 0; flex: 1; overflow-wrap: anywhere; }
.curriculum-chapter__toggle::before { content: "+"; }
.curriculum-chapter[open]:not([data-expanded="false"]) > .curriculum-chapter__header .curriculum-chapter__toggle { background: rgb(169 31 102 / .28); rotate: 45deg; }

.curriculum-chapter__number {
	flex-shrink: 0;
	display: grid;
	width: 2.6rem;
	height: 2.6rem;
	place-items: center;
	background: rgb(159 31 99 / 0.15);
	border: 1px solid rgb(224 122 176 / 0.25);
	border-radius: 0.65rem;
	color: var(--gc-color-primary-light);
	font: 800 0.78rem/1 ui-monospace, SFMono-Regular, Consolas, monospace;
}

.curriculum-chapter__header h3,
.curriculum-chapter__header p {
	margin: 0;
}

.curriculum-chapter__header p {
	margin-top: 0.2rem;
	color: var(--gc-color-muted);
	font-size: 0.8rem;
}

.curriculum-lessons {
	margin: 0;
	padding: 0;
	list-style: none;
}

.curriculum-lesson {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 0.9rem;
	padding: 1rem 1.5rem;
	border-top: 1px solid var(--gc-color-border);
}

.curriculum-lesson__icon {
	display: grid;
	width: 2rem;
	height: 2rem;
	place-items: center;
	background: rgb(37 170 225 / 0.09);
	border-radius: 50%;
	color: var(--gc-color-accent);
	font-size: 0.65rem;
}

.curriculum-lesson__title {
	display: grid;
	gap: 0.15rem;
}

.curriculum-lesson__title a,
.curriculum-lesson__title > span {
	color: var(--gc-color-text);
	font-weight: 700;
	text-decoration: none;
}

.curriculum-lesson__title small,
.curriculum-lesson__duration {
	color: var(--gc-color-muted);
	font-size: 0.75rem;
}

.curriculum-lesson--locked {
	opacity: 0.68;
}

.curriculum-lesson--locked .curriculum-lesson__icon {
	background: rgb(255 255 255 / 0.05);
	filter: grayscale(1);
}

.lesson-header {
	padding-block: clamp(2rem, 4vw, 3rem);
	background:
		radial-gradient(circle at 84% 22%, rgb(37 170 225 / 0.09), transparent 30rem),
		radial-gradient(circle at 76% 42%, rgb(159 31 99 / 0.24), transparent 29rem),
		linear-gradient(var(--gc-grid-line) 1px, transparent 1px),
		linear-gradient(90deg, var(--gc-grid-line) 1px, transparent 1px),
		linear-gradient(var(--gc-grid-line-strong) 1px, transparent 1px),
		linear-gradient(90deg, var(--gc-grid-line-strong) 1px, transparent 1px);
	background-size: auto, auto, 3.5rem 3.5rem, 3.5rem 3.5rem, 14rem 14rem, 14rem 14rem;
	border-bottom: 1px solid var(--gc-color-border);
}

.lesson-header__inner {
	max-width: 58rem;
}

.lesson-back {
	display: inline-flex;
	margin-bottom: 1rem;
	color: var(--gc-color-primary-light);
	font-weight: 700;
	text-decoration: none;
}

.lesson-header h1 {
	max-width: 18ch;
	margin-bottom: 0.5rem;
	font-size: clamp(2.4rem, 6vw, 4.25rem);
}

.lesson-header p {
	margin: 0;
	color: var(--gc-color-muted);
}

.lesson-layout {
	max-width: 58rem;
	padding-block: clamp(3.5rem, 8vw, 6rem);
}

.lesson-layout--with-sidebar {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 20rem;
	align-items: start;
	gap: clamp(1.5rem, 3vw, 3rem);
	max-width: 84rem;
}

.lesson-main { min-width: 0; }
.lesson-sidebar {
	display: grid;
	grid-template-rows: auto minmax(0, 1fr);
	align-self: stretch;
	contain: size;
	min-height: 0;
	overflow: hidden;
	padding: 0;
	background: var(--gc-color-surface);
	border: 1px solid var(--gc-color-border);
	border-radius: var(--gc-radius);
}
.lesson-sidebar__scroll {
	min-height: 0;
	margin: .5rem .5rem .75rem;
	overflow-y: auto;
	overscroll-behavior: contain;
	scrollbar-width: thin;
	scrollbar-color: #47506a var(--gc-color-surface);
	padding: .65rem .9rem;
}
.lesson-sidebar__header {
	margin: 0;
	padding: 1.15rem 1.4rem;
	background: var(--gc-color-surface-alt);
	border-bottom: 1px solid var(--gc-color-border);
	overflow-wrap: anywhere;
}
.lesson-sidebar__header h2 { margin: 0 0 .65rem; font-size: 1.15rem; line-height: 1.4; }
.lesson-sidebar__header .eyebrow { margin-bottom: .4rem; }
.lesson-sidebar__header > a { font-size: .85rem; }
.lesson-timeline__chapter + .lesson-timeline__chapter { margin-top: 1.5rem; }
.lesson-timeline__chapter h3 { margin: 0 0 .7rem; font-size: .9rem; line-height: 1.5; }
.lesson-timeline ol { list-style: none; margin: 0; padding: 0; }
.lesson-timeline__item { position: relative; margin: 0; }
.lesson-timeline__item:not(:last-child)::before { content: ''; position: absolute; left: 1rem; top: 1.4rem; bottom: -1rem; width: 1px; background: var(--gc-color-border); }
.lesson-timeline__item > a { position: relative; display: grid; grid-template-columns: 1.5rem minmax(0, 1fr); gap: .7rem; align-items: start; padding: .65rem .3rem; border-radius: .5rem; color: var(--gc-color-muted); text-decoration: none; }
.lesson-timeline__item > a:hover { background: var(--gc-color-surface-alt); color: var(--gc-color-text); }
.lesson-timeline__item > a:focus-visible { outline: 2px solid var(--gc-color-accent); outline-offset: 2px; }
.lesson-timeline__marker { display: grid; place-items: center; width: 1.5rem; height: 1.5rem; border: 1px solid var(--gc-color-border); border-radius: 50%; background: var(--gc-color-surface); font-size: .7rem; font-weight: 700; }
.lesson-timeline__title { display: block; font-size: .85rem; line-height: 1.55; overflow-wrap: anywhere; }
.lesson-timeline__state, .lesson-timeline__current { display: block; font-size: .7rem; line-height: 1.6; }
.lesson-timeline__state { color: #6ee7b7; }
.lesson-timeline__state:empty { display: none; }
.lesson-timeline__current { color: var(--gc-color-primary-light); }
.lesson-timeline__item.is-current > a { background: rgb(159 31 99 / .12); color: var(--gc-color-text); }
.lesson-timeline__item.is-current .lesson-timeline__marker { border-color: var(--gc-color-primary-light); }
.lesson-timeline__item.is-completed .lesson-timeline__marker { color: #6ee7b7; border-color: #6ee7b7; background: #152b28; }
@media (max-width: 64rem) {
	.lesson-layout--with-sidebar { grid-template-columns: minmax(0, 1fr); max-width: 58rem; }
	.lesson-sidebar { contain: none; max-height: 28rem; }
}

.lesson-content {
	color: #d7dbea;
	font-size: 1.05rem;
}

.lesson-blocks {
	display: grid;
	gap: 1.25rem;
	min-width: 0;
}

.lesson-blocks .product-resource-video summary,
.lesson-blocks .product-resource-file {
	gap: 0.65rem;
	padding: 0.45rem 1rem;
}

.lesson-blocks .product-resource-icon {
	width: 1.85rem;
	height: 1.85rem;
	border-radius: 0.4rem;
}

.lesson-blocks .product-resource-icon .lesson-play-icon {
	display: block;
	width: 0.9rem;
	height: 0.9rem;
	fill: currentColor;
}

.lesson-block-resource .product-resource-icon svg {
	display: block;
	width: 1rem;
	height: 1rem;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.lesson-blocks .product-resource-video summary {
	min-height: 48px;
}

.lesson-blocks .product-resource-toggle {
	grid-column: 3;
	grid-row: 1;
	justify-self: end;
	font-size: 1.4rem;
	line-height: 1;
}

.lesson-blocks .product-resource-video__player {
	padding: 0 1rem 0.75rem;
}

.lesson-blocks .lesson-block-resource .button {
	min-height: 44px;
	padding: 0.6rem 1rem;
}

.lesson-blocks > *,
.lesson-blocks h2,
.lesson-blocks .lesson-video {
	margin: 0;
}

.lesson-content .lesson-blocks h2 {
	margin: 0 0 0.75rem;
}

.formation-source-files .lesson-blocks > h2:not(:first-child),
.formation-source-files .lesson-blocks > .lesson-block-text:not(:first-child):has(> h2:first-child) {
	margin-top: clamp(1rem, 2vw, 1.5rem);
}

.formation-source-files .lesson-block-text > h2 {
	margin-bottom: 1rem;
}

.lesson-video-description {
	margin-top: 0.85rem;
}

.lesson-video-description > :first-child {
	margin-top: 0;
}

.lesson-block-text > :last-child,
.lesson-video-description > :last-child {
	margin-bottom: 0;
}

.lesson-block-resource .button {
	gap: 0.5rem;
	max-width: 100%;
	white-space: normal;
	overflow-wrap: anywhere;
	text-align: center;
}

.lesson-content .entry-content > * + * {
	margin-top: 1.25rem;
}

.lesson-content h2 {
	margin-top: 3rem;
	font-size: clamp(1.6rem, 3vw, 2.25rem);
}

.lesson-video,
.wp-block-embed-vimeo .wp-block-embed__wrapper {
	display: grid;
	aspect-ratio: var(--gc-video-aspect-ratio, 16 / 9);
	margin-bottom: 3rem;
	overflow: hidden;
	place-items: center;
	background: #05070c;
	border: 1px solid var(--gc-color-border);
	border-radius: var(--gc-radius);
}

.lesson-video iframe,
.gc-video-embed__iframe,
.wp-block-embed-vimeo iframe {
	display: block;
	width: 100%;
	border: 0;
}

.lesson-video iframe,
.wp-block-embed-vimeo .wp-block-embed__wrapper iframe {
	height: 100%;
}

.gc-video-embed__iframe {
	height: auto;
	aspect-ratio: var(--gc-video-aspect-ratio, 16 / 9);
	background: #05070c;
	border-radius: var(--gc-radius);
	box-shadow: 0 0 0 1px var(--gc-color-border);
}

.wp-block-embed-vimeo .wp-block-embed__wrapper .gc-video-embed__iframe {
	height: 100%;
	margin: 0;
	aspect-ratio: auto;
	border-radius: 0;
	box-shadow: none;
}

.wp-block-embed-vimeo,
.article-single__content .gc-video-embed__iframe,
.entry-content .gc-video-embed__iframe {
	margin: 2rem 0 3rem;
}

.lesson-video__fallback {
	margin: 0;
	padding: 1.5rem;
	text-align: center;
}

.lesson-resources {
	margin-top: 3rem;
	padding: 1.5rem;
	background: var(--gc-color-surface-alt);
	border: 1px solid var(--gc-color-border);
	border-radius: var(--gc-radius);
}

.lesson-resources h2 {
	margin-top: 0;
}

.lesson-navigation {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
	margin-top: 4rem;
	padding-top: 2rem;
	border-top: 1px solid var(--gc-color-border);
}

.lesson-navigation a {
	display: grid;
	gap: 0.25rem;
	padding: 0.72rem 0.8rem;
	background: var(--gc-color-surface);
	border: 1px solid var(--gc-color-border);
	border-radius: 0.75rem;
	color: var(--gc-color-text);
	text-decoration: none;
}

.lesson-navigation small {
	color: var(--gc-color-muted);
}

.lesson-navigation__next {
	text-align: right;
}

.lesson-lock {
	padding: clamp(2rem, 6vw, 4rem);
	background: var(--gc-color-surface-alt);
	border: 1px solid var(--gc-color-border);
	border-radius: 1.25rem;
	text-align: center;
}

.lesson-lock > span {
	display: block;
	margin-bottom: 1rem;
	font-size: 2rem;
}

.lesson-lock h2 {
	font-size: clamp(1.7rem, 4vw, 2.5rem);
}

.lesson-lock p {
	max-width: 38rem;
	margin-inline: auto;
	color: var(--gc-color-muted);
}

.lesson-lock .button-group {
	justify-content: center;
	margin-top: 1.5rem;
}

@media (max-width: 38rem) {
	.curriculum-heading {
		align-items: flex-start;
		flex-direction: column;
	}

	.curriculum-lesson {
		grid-template-columns: auto minmax(0, 1fr);
		padding-inline: 1rem;
	}

	.curriculum-lesson__duration {
		grid-column: 2;
	}

	.lesson-navigation {
		grid-template-columns: 1fr;
	}

	.lesson-navigation__next {
		text-align: left;
	}
}
/* Progression utilisateur */
.formation-progress {
	margin-block: 1.5rem;
}

.formation-progress__label {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 0.55rem;
	font-size: 0.85rem;
}

.formation-progress__track {
	display: block;
	width: 100%;
	height: 0.65rem;
	overflow: hidden;
	appearance: none;
	background: #080a11;
	border: 0;
	border-radius: 99rem;
}

.formation-progress__track::-webkit-progress-bar {
	background: #080a11;
	border-radius: 99rem;
}

.formation-progress__track::-webkit-progress-value {
	background: linear-gradient(90deg, var(--gc-color-primary), var(--gc-color-accent));
	border-radius: 99rem;
}

.formation-progress__track::-moz-progress-bar {
	background: linear-gradient(90deg, var(--gc-color-primary), var(--gc-color-accent));
	border-radius: 99rem;
}

.formation-progress p {
	margin: 0.6rem 0 0;
	color: var(--gc-color-muted);
	font-size: 0.8rem;
}

.curriculum-lesson--completed .curriculum-lesson__icon {
	background: rgb(52 211 153 / 0.14);
	color: #6ee7b7;
}

.curriculum-lesson--completed .curriculum-lesson__title a {
	text-decoration: line-through;
	text-decoration-color: rgb(255 255 255 / 0.3);
}

.lesson-completion {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 1.5rem;
	margin-top: 3rem;
	padding: 1.5rem;
	background: linear-gradient(135deg, rgb(159 31 99 / 0.13), rgb(37 170 225 / 0.05));
	border: 1px solid #573047;
	border-radius: var(--gc-radius);
}

.lesson-completion .eyebrow {
	margin-bottom: 0.4rem;
}

.lesson-completion h2,
.lesson-completion p {
	margin-bottom: 0;
}

.lesson-completion h2 { margin-top: 0; font-size: clamp(1.1rem, 1.8vw, 1.45rem); line-height: 1.4; }
.lesson-completion__progress { grid-column: 1 / -1; min-width: 0; }
.lesson-completion__metrics { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: .7rem; font-size: .85rem; }
.lesson-completion__progress p { margin-top: .5rem; font-size: .8rem; color: var(--gc-color-muted); }
.lesson-completion__status:empty { display: none; }

.lesson-complete-button {
	background: var(--gc-color-primary);
	color: #fff;
}

.lesson-complete-button--done {
	background: rgb(52 211 153 / 0.12);
	border-color: rgb(110 231 183 / 0.4);
	color: #6ee7b7;
}

.lesson-complete-button:disabled {
	cursor: progress;
	opacity: 0.65;
}

.lesson-completion__status {
	grid-column: 1 / -1;
	min-height: 1.4em;
	color: var(--gc-color-muted);
	font-size: 0.85rem;
}

.lesson-completion--login {
	grid-template-columns: minmax(0, 1fr) auto;
}

@media (max-width: 38rem) {
	.lesson-completion,
	.lesson-completion--login {
		grid-template-columns: 1fr;
	}

	.lesson-completion .button {
		width: 100%;
	}
}
/* Tableau de bord membre */
.dashboard-hero {
	padding-block: clamp(3.5rem, 8vw, 6rem);
	background: radial-gradient(circle at 80% 20%, rgb(159 31 99 / 0.2), transparent 28rem), var(--gc-color-surface);
	border-bottom: 1px solid var(--gc-color-border);
}

.dashboard-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 3rem;
}

.dashboard-profile {
	display: flex;
	align-items: center;
	gap: 1.5rem;
}

.dashboard-profile__avatar {
	flex: none;
	border: 3px solid rgb(224 122 176 / 0.55);
	border-radius: 1.25rem;
	box-shadow: 0 0 2.5rem rgb(159 31 99 / 0.25);
}

.dashboard-profile h1 {
	max-width: none;
	margin-bottom: 0.75rem;
	font-size: clamp(2.35rem, 5vw, 4rem);
}

.dashboard-profile p:last-child {
	max-width: 44rem;
	margin: 0;
	color: var(--gc-color-muted);
}

.dashboard-membership {
	display: grid;
	width: min(26rem, 100%);
	gap: 0.3rem;
	padding: 1.25rem;
	background: rgb(255 255 255 / 0.035);
	border: 1px solid var(--gc-color-border);
	border-radius: var(--gc-radius);
}

.dashboard-membership span {
	color: var(--gc-color-muted);
	font-size: 0.75rem;
	font-weight: 750;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.dashboard-membership strong {
	color: var(--gc-color-text);
	font-size: 1.1rem;
}

.dashboard-membership a {
	margin-top: 0.35rem;
	font-size: 0.82rem;
}

/* Espace membre WooCommerce unifié */
.gc-woocommerce-account { padding-block: clamp(3rem, 7vw, 6rem); }
.gc-woocommerce-account > .woocommerce { display: grid; grid-template-columns: minmax(13rem, 15rem) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 3rem); }
.gc-woocommerce-account > .woocommerce::before,
.gc-woocommerce-account > .woocommerce::after { display: none; content: none; }
.gc-woocommerce-account .woocommerce-MyAccount-navigation,
.gc-woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; }
.gc-woocommerce-account .woocommerce-MyAccount-navigation ul { position: sticky; top: calc(7rem + var(--gc-admin-bar-height) + var(--gc-cgu-notice-height)); display: grid; gap: 0.3rem; margin: 0; padding: 0.65rem; background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: var(--gc-radius); list-style: none; }
.gc-woocommerce-account .woocommerce-MyAccount-navigation a { display: flex; align-items: center; gap: 0.65rem; padding: 0.75rem 0.85rem; border-radius: 0.65rem; color: var(--gc-color-muted); font-size: 0.88rem; font-weight: 700; text-decoration: none; }
.gc-woocommerce-account .woocommerce-MyAccount-navigation a::before { width: 0.42rem; height: 0.42rem; flex: 0 0 auto; background: var(--gc-color-border); border-radius: 50%; content: ""; transition: background 160ms ease, box-shadow 160ms ease; }
.gc-woocommerce-account .woocommerce-MyAccount-navigation a:hover,
.gc-woocommerce-account .woocommerce-MyAccount-navigation .is-active a { background: rgb(159 31 99 / 0.16); color: var(--gc-color-text); }
.gc-woocommerce-account .woocommerce-MyAccount-navigation a:hover::before,
.gc-woocommerce-account .woocommerce-MyAccount-navigation .is-active a::before { background: var(--gc-color-primary-light); box-shadow: 0 0 0 0.25rem rgb(159 31 99 / 0.14); }
.gc-woocommerce-account .woocommerce-MyAccount-navigation-link--customer-logout a { color: #fca5a5; }
.gc-woocommerce-account .woocommerce-MyAccount-content { min-width: 0; }
.gc-woocommerce-account .woocommerce-MyAccount-content > :first-child { margin-top: 0; }
.gc-woocommerce-account .page-header { margin-bottom: clamp(2rem, 5vw, 3.5rem); }
.gc-woocommerce-account .page-header h1 { max-width: none; font-size: clamp(2.8rem, 7vw, 4.8rem); }
.account-section-header { margin-bottom: 1.5rem; padding-bottom: 1.25rem; border-bottom: 1px solid var(--gc-color-border); }
.account-section-header h2 { margin: 0.25rem 0 0.55rem; font-size: clamp(1.75rem, 4vw, 2.45rem); }
.account-section-header > p:last-child { max-width: 42rem; margin: 0; color: var(--gc-color-muted); }
.account-avatar { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 1rem; margin-bottom: 1.25rem; padding: clamp(1rem, 2.5vw, 1.35rem); background: linear-gradient(145deg, rgb(159 31 99 / 0.12), var(--gc-color-surface)); border: 1px solid var(--gc-color-border); border-radius: var(--gc-radius); }
.account-avatar__preview { display: grid; width: 5.5rem; height: 5.5rem; place-items: center; }
.account-avatar__image { width: 5.5rem; height: 5.5rem; border: 3px solid var(--gc-color-primary-light); border-radius: 50%; box-shadow: 0 0 1.5rem rgb(159 31 99 / 0.2); object-fit: cover; }
.account-avatar__content { display: grid; min-width: 0; gap: 0.75rem; }
.account-avatar__intro h3 { margin: 0 0 0.35rem; font-size: 1.3rem; }
.account-avatar__intro p { margin: 0; color: var(--gc-color-muted); font-size: 0.88rem; }
.gc-woocommerce-account .account-avatar__form { display: flex; align-items: center; flex-wrap: wrap; gap: 0.65rem 0.85rem; padding: 0; background: transparent; border: 0; }
.account-avatar__file { display: flex; min-width: 0; flex: 1 1 18rem; align-items: center; flex-wrap: wrap; gap: 0.65rem; }
.account-avatar__file > span { display: inline-flex; min-height: 2.65rem; align-items: center; padding: 0.65rem 1rem; background: rgb(37 170 225 / 0.1); border: 1px solid rgb(37 170 225 / 0.4); border-radius: 0.65rem; color: var(--gc-color-text); cursor: pointer; }
.account-avatar__file:focus-within > span,
.account-avatar__file:hover > span { background: rgb(37 170 225 / 0.18); border-color: var(--gc-color-accent); }
.account-avatar__file input[type="file"] { max-width: 100%; color: var(--gc-color-muted); font-size: 0.82rem; }
.account-avatar__file input[type="file"]::file-selector-button { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.account-avatar__actions { display: flex; flex-wrap: wrap; gap: 0.65rem; }
.gc-woocommerce-account .account-avatar__remove { background: rgb(239 68 68 / 0.08) !important; border-color: rgb(248 113 113 / 0.35) !important; color: #fca5a5 !important; }
.gc-woocommerce-account .account-avatar__remove:hover { background: rgb(239 68 68 / 0.22) !important; border-color: #f87171 !important; color: #fecaca !important; }
.account-overview { display: grid; gap: 1.5rem; }
.account-overview__header { display: flex; align-items: center; gap: 1rem; padding: 1.25rem; background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: var(--gc-radius); }
.account-overview__header img { width: 4.5rem; height: 4.5rem; border: 2px solid var(--gc-color-primary-light); border-radius: 50%; }
.account-overview__header h2 { margin: 0.15rem 0; font-size: clamp(1.65rem, 4vw, 2.3rem); }
.account-overview__header p { margin: 0; color: var(--gc-color-muted); }
.account-overview__stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); overflow: hidden; background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: var(--gc-radius); }
.account-overview__stats > * { display: grid; gap: 0.15rem; padding: 1.1rem; color: var(--gc-color-text); text-decoration: none; }
.account-overview__stats > * + * { border-left: 1px solid var(--gc-color-border); }
.account-overview__stats strong { font-size: 1.55rem; }
.account-overview__stats span { color: var(--gc-color-muted); font-size: 0.76rem; }
.account-overview__stats a:hover { background: rgb(159 31 99 / 0.1); }
.account-overview__subscription { padding: 1.25rem; background: linear-gradient(145deg, rgb(159 31 99 / 0.13), var(--gc-color-surface)); border: 1px solid var(--gc-color-border); border-radius: var(--gc-radius); }
.account-overview__subscription h3 { margin-top: 0; }
.account-subscription-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1rem; }
.account-subscription-summary > div { display: grid; gap: 0.2rem; }
.account-subscription-summary span { color: var(--gc-color-muted); font-size: 0.75rem; }
.account-subscription-summary strong { font-size: 0.9rem; }
.account-section > header { margin-bottom: 1.5rem; }
.account-section > header h2 { margin-top: 0.2rem; }
.account-section > header .eyebrow { margin-bottom: 0.25rem; }
.account-collection__header { display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 1rem; }
.account-collection__header h2 { margin-bottom: 0; }
.account-collection__tools { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 0.75rem; }
.account-collection__count { color: var(--gc-color-muted); font-size: 0.82rem; font-weight: 700; }
.account-collection-pagination { margin-top: 1.75rem; }
.account-collection-pagination .page-numbers { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 0.45rem; margin: 0; padding: 0; list-style: none; }
.account-collection-pagination a,
.account-collection-pagination span { display: inline-grid; min-width: 2.65rem; min-height: 2.65rem; place-items: center; padding: 0.45rem 0.75rem; border: 1px solid var(--gc-color-border); border-radius: 0.65rem; color: var(--gc-color-text); font-weight: 750; text-decoration: none; }
.account-collection-pagination a:hover { border-color: var(--gc-color-primary-light); background: rgb(159 31 99 / 0.12); }
.account-collection-pagination .current { background: var(--gc-color-primary); border-color: var(--gc-color-primary-light); color: #fff; }
.account-collection-pagination .prev,
.account-collection-pagination .next { padding-inline: 1rem; }
.gc-woocommerce-account table.shop_table { width: 100%; overflow: hidden; margin: 0 0 1.25rem; background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-collapse: separate; border-spacing: 0; border-radius: var(--gc-radius); }
.gc-woocommerce-account table.shop_table th,
.gc-woocommerce-account table.shop_table td { padding: 0.9rem 1rem; border-color: var(--gc-color-border); }
.gc-woocommerce-account table.shop_table thead th { background: rgb(255 255 255 / 0.025); color: var(--gc-color-muted); font-size: 0.72rem; letter-spacing: 0.06em; text-transform: uppercase; }
.gc-woocommerce-account table.shop_table tbody tr:hover { background: rgb(159 31 99 / 0.06); }
.gc-woocommerce-account table.shop_table a:not(.button) { color: var(--gc-color-primary-light); font-weight: 750; }
.gc-woocommerce-account table.shop_table small { color: var(--gc-color-muted); }
.gc-woocommerce-account .woocommerce-MyAccount-content a.button,
.gc-woocommerce-account .woocommerce-MyAccount-content button.button,
.gc-woocommerce-account .woocommerce-MyAccount-content input.button { min-height: 2.65rem; padding: 0.65rem 1rem; background: rgb(159 31 99 / 0.18); border: 1px solid rgb(224 122 176 / 0.42); border-radius: 0.65rem; color: var(--gc-color-text); font-weight: 750; line-height: 1.2; }
.gc-woocommerce-account .woocommerce-MyAccount-content a.button:hover,
.gc-woocommerce-account .woocommerce-MyAccount-content button.button:hover,
.gc-woocommerce-account .woocommerce-MyAccount-content input.button:hover { background: var(--gc-color-primary); border-color: var(--gc-color-primary-light); color: #fff; }
.gc-woocommerce-account .woocommerce-message,
.gc-woocommerce-account .woocommerce-info,
.gc-woocommerce-account .woocommerce-error { margin-bottom: 1.25rem; padding: 1rem 1rem 1rem 3rem; background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-top-color: var(--gc-color-accent); border-radius: 0.8rem; color: var(--gc-color-text); }
.gc-woocommerce-account .woocommerce-message::before,
.gc-woocommerce-account .woocommerce-info::before { color: var(--gc-color-accent); }
.gc-woocommerce-account .woocommerce-error { border-top-color: #f87171; }
.gc-woocommerce-account .woocommerce-error::before { color: #f87171; }
.gc-woocommerce-account .woocommerce-message:has(> .button.wc-forward),
.gc-woocommerce-account .woocommerce-info:has(> .button.wc-forward) {
	display: flex;
	align-items: center;
	gap: 1.5rem;
}
.gc-woocommerce-account .woocommerce-message > .button.wc-forward,
.gc-woocommerce-account .woocommerce-info > .button.wc-forward {
	order: 1;
	flex: 0 0 auto;
	float: none;
	margin-left: auto;
}

/* État vide des commandes : l'icône suit le message, sans décaler l'action. */
.gc-account-dashboard:has(.woocommerce-MyAccount-navigation-link--orders.is-active) .woocommerce-MyAccount-content .woocommerce-info {
	display: grid;
	grid-template-columns: 1rem minmax(0, 1fr) auto;
	align-items: center;
	gap: 0.75rem 1rem;
	padding: 1rem;
}
.gc-account-dashboard:has(.woocommerce-MyAccount-navigation-link--orders.is-active) .woocommerce-MyAccount-content .woocommerce-info::before {
	position: static;
	grid-column: 1;
	grid-row: 1;
	align-self: center;
	width: 1rem;
	line-height: 1;
	transform: none;
}
.gc-account-dashboard:has(.woocommerce-MyAccount-navigation-link--orders.is-active) .woocommerce-MyAccount-content .woocommerce-info > .button.wc-forward {
	grid-column: 3;
	grid-row: 1;
	margin: 0;
}
.gc-woocommerce-account form:not(.woocommerce-form-login) { padding: clamp(1.2rem, 4vw, 1.8rem); background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: var(--gc-radius); }
.gc-woocommerce-account form fieldset { margin: 1.5rem 0; padding: 1.2rem; border: 1px solid var(--gc-color-border); border-radius: 0.8rem; }
.gc-woocommerce-account form legend { padding-inline: 0.5rem; color: var(--gc-color-text); font-weight: 800; }
.gc-woocommerce-account form label { color: var(--gc-color-text); font-size: 0.86rem; font-weight: 700; }
.gc-woocommerce-account .woocommerce-MyAccount-content form .form-row input.input-text,
.gc-woocommerce-account .woocommerce-MyAccount-content form .form-row select,
.gc-woocommerce-account .woocommerce-MyAccount-content form .form-row textarea { min-height: 3rem; padding: 0.75rem 0.85rem; background: rgb(9 11 18 / 0.78); border: 1px solid var(--gc-color-border); border-radius: 0.65rem; color: var(--gc-color-text); }
.gc-woocommerce-account .woocommerce-MyAccount-content form .form-row input.input-text:focus,
.gc-woocommerce-account .woocommerce-MyAccount-content form .form-row select:focus,
.gc-woocommerce-account .woocommerce-MyAccount-content form .form-row textarea:focus { border-color: var(--gc-color-accent); box-shadow: 0 0 0 0.2rem rgb(37 170 225 / 0.12); outline: none; }
.gc-woocommerce-account .woocommerce-MyAccount-content .select2-container--default .select2-selection--single { min-height: 3rem; background: rgb(9 11 18 / 0.78); border-color: var(--gc-color-border); border-radius: 0.65rem; color: var(--gc-color-text); }
.gc-woocommerce-account .woocommerce-MyAccount-content .select2-selection__rendered { padding-top: 0.55rem; color: var(--gc-color-text); }
.gc-woocommerce-account .woocommerce-PaymentMethods,
.gc-woocommerce-account .woocommerce-MyAccount-paymentMethods { margin: 0 0 1.25rem; padding: 0; list-style: none; }
.gc-woocommerce-account #add_payment_method {
	padding: 0;
	background: transparent;
	border: 0;
}
.gc-woocommerce-account #add_payment_method #payment { overflow: hidden; background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: var(--gc-radius); box-shadow: var(--gc-shadow); }
.gc-woocommerce-account #add_payment_method .woocommerce-PaymentMethods { margin: 0; padding: 1rem; border: 0; }
.gc-woocommerce-account #add_payment_method .wc_payment_method { overflow: hidden; margin: 0; background: linear-gradient(145deg, rgb(37 170 225 / 0.055), rgb(159 31 99 / 0.06)); border: 1px solid var(--gc-color-border); border-radius: 0.9rem; color: var(--gc-color-text); }
.gc-woocommerce-account #add_payment_method .wc_payment_method > label { display: flex; min-height: 3.6rem; align-items: center; gap: 0.65rem; padding: 1rem 1.1rem; color: var(--gc-color-text); font-size: 0.95rem; }
.gc-woocommerce-account #add_payment_method .wc_payment_method > input[type="radio"] { margin-left: 1.1rem; accent-color: var(--gc-color-accent); }
.gc-woocommerce-account #add_payment_method .payment_box {
	margin: 0;
	padding: 0 1.1rem 1.1rem;
	background: transparent !important;
	color: var(--gc-color-muted) !important;
}
.gc-woocommerce-account #add_payment_method #payment ul.payment_methods li .payment_box::before {
	display: none !important;
	content: none !important;
	border: 0 !important;
}
.gc-woocommerce-account #add_payment_method .payment_box p,
.gc-woocommerce-account #add_payment_method .payment_box .testmode-info { color: var(--gc-color-muted) !important; }
.gc-woocommerce-account #add_payment_method .payment_box > p:first-child { margin: 0 0 1rem; padding: 0.85rem 1rem; background: rgb(9 11 18 / 0.5); border: 1px solid rgb(37 170 225 / 0.16); border-radius: 0.7rem; font-size: 0.86rem; line-height: 1.55; }
.gc-woocommerce-account #add_payment_method .payment_box a { color: var(--gc-color-primary-light); }
.gc-woocommerce-account #add_payment_method .payment_box a:hover,
.gc-woocommerce-account #add_payment_method .payment_box a:focus-visible { color: #f5b5d7; }
.gc-woocommerce-account #add_payment_method .wc-upe-form { margin: 0.9rem 0 0; padding: 0; border: 0; }
.gc-woocommerce-account #add_payment_method .wc-stripe-upe-element {
	padding: 1rem;
	background: rgb(9 11 18 / 0.62);
	border: 1px solid #3c4664;
	border-radius: 0.8rem;
	color-scheme: dark;
}
.gc-woocommerce-account #add_payment_method .wc-stripe-upe-element:focus-within {
	border-color: var(--gc-color-accent);
	box-shadow: 0 0 0 0.2rem rgb(37 170 225 / 0.16);
}
.gc-woocommerce-account #add_payment_method #wc-stripe-upe-errors,
.gc-woocommerce-account #add_payment_method .stripe-source-errors { color: #fecaca; }
.gc-woocommerce-account #add_payment_method .wc-stripe-error,
.gc-woocommerce-account #add_payment_method .woocommerce-error {
	margin: 0.85rem 0 0;
	background: rgb(127 29 29 / 0.2);
	border: 1px solid rgb(248 113 113 / 0.62);
	color: #fecaca;
}
.gc-woocommerce-account #add_payment_method #wc-stripe-hidden-style-input {
	background: var(--gc-color-background) !important;
	border-color: #3c4664 !important;
	color: var(--gc-color-text) !important;
	color-scheme: dark !important;
}
.gc-woocommerce-account #add_payment_method input::placeholder,
.gc-woocommerce-account #add_payment_method textarea::placeholder { color: #8791aa; opacity: 1; }
.gc-woocommerce-account #add_payment_method #payment > .form-row { display: flex; justify-content: flex-end; margin: 0; padding: 1rem; background: rgb(255 255 255 / 0.018); border-top: 1px solid var(--gc-color-border); }
.gc-woocommerce-account #add_payment_method #payment > .form-row label { margin-right: auto; }
.gc-woocommerce-account #add_payment_method .button { min-height: 3rem; margin: 0; padding-inline: 1.25rem; }

@media (max-width: 38rem) {
	.gc-woocommerce-account #add_payment_method .woocommerce-PaymentMethods { padding: 0.75rem; }
	.gc-woocommerce-account #add_payment_method .wc_payment_method > label { min-height: 3.25rem; padding: 0.85rem; }
	.gc-woocommerce-account #add_payment_method .wc_payment_method > input[type="radio"] { margin-left: 0.85rem; }
	.gc-woocommerce-account #add_payment_method .payment_box { padding: 0 0.85rem 0.85rem; }
	.gc-woocommerce-account #add_payment_method .wc-stripe-upe-element { padding: 0.75rem; }
	.gc-woocommerce-account #add_payment_method #payment > .form-row { display: grid; gap: 0.85rem; padding: 0.85rem; }
	.gc-woocommerce-account #add_payment_method .button { width: 100%; }
}
.gc-woocommerce-account .woocommerce-pagination { display: flex; justify-content: space-between; gap: 1rem; margin-top: 1rem; }
.gc-woocommerce-account .woocommerce-Addresses { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.gc-woocommerce-account .woocommerce-Addresses::before,
.gc-woocommerce-account .woocommerce-Addresses::after,
.gc-woocommerce-account .woocommerce-Address-title::before,
.gc-woocommerce-account .woocommerce-Address-title::after { display: none; content: none; }
.gc-woocommerce-account .woocommerce-Addresses .woocommerce-Address { float: none; width: 100%; min-width: 0; padding: 1.25rem; background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: var(--gc-radius); }
.gc-woocommerce-account .woocommerce-Address-title { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.gc-woocommerce-account .woocommerce-Address-title h2 { min-width: 0; margin: 0; font-size: 1.15rem; }
.gc-woocommerce-account .woocommerce-Address-title a { flex: 0 0 auto; color: var(--gc-color-primary-light); font-size: 0.82rem; font-weight: 750; }
.gc-woocommerce-account address { margin-top: 1rem; color: var(--gc-color-muted); font-style: normal; line-height: 1.7; }
.gc-woocommerce-account .subscription_details td:first-child { width: 42%; color: var(--gc-color-muted); font-size: 0.8rem; font-weight: 700; }
.gc-woocommerce-account .subscription_details td:last-child { color: var(--gc-color-text); font-weight: 700; }
.gc-woocommerce-account .subscription_details .woocommerce-button.cancel {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.8rem;
	padding: 0.7rem 1rem;
	background: rgb(248 113 113 / 0.08);
	border: 1px solid rgb(248 113 113 / 0.48);
	border-radius: 0.65rem;
	color: #fecaca;
	font-weight: 750;
	line-height: 1.25;
	text-align: center;
}
.gc-woocommerce-account .subscription_details .woocommerce-button.cancel:hover,
.gc-woocommerce-account .subscription_details .woocommerce-button.cancel:focus-visible {
	background: rgb(248 113 113 / 0.16);
	border-color: #f87171;
	color: #fff;
}
.gc-woocommerce-account .subscription-cancellation {
	display: grid;
	width: min(100%, 52rem);
	gap: 1.25rem;
	margin-inline: auto;
	padding: clamp(1.25rem, 3vw, 2rem);
	background: linear-gradient(145deg, rgb(37 170 225 / 0.05), rgb(159 31 99 / 0.08)), var(--gc-color-surface-alt);
	border: 1px solid var(--gc-color-border);
	border-radius: var(--gc-radius);
}
.gc-woocommerce-account .subscription-cancellation__header { padding-bottom: 1.15rem; border-bottom: 1px solid var(--gc-color-border); }
.gc-woocommerce-account .subscription-cancellation__header .eyebrow { margin: 0 0 0.35rem; }
.gc-woocommerce-account .subscription-cancellation__header h2 { margin: 0; font-size: clamp(1.8rem, 4vw, 2.7rem); }
.gc-woocommerce-account .subscription-cancellation__header > p:last-child { max-width: 42rem; margin: 0.7rem 0 0; color: var(--gc-color-muted); line-height: 1.65; }
.gc-woocommerce-account .subscription-cancellation .legal-details { margin: 0; overflow: hidden; background: rgb(7 11 21 / 0.34); border-radius: 0.85rem; }
.gc-woocommerce-account .subscription-cancellation__notice { margin: 0; padding: 1rem 1.1rem; background: rgb(37 170 225 / 0.08); border: 1px solid rgb(37 170 225 / 0.28); border-radius: 0.8rem; color: var(--gc-color-muted); line-height: 1.65; }
.gc-woocommerce-account .subscription-cancellation__choices { display: grid; gap: 0.75rem; margin: 0; padding: 0; list-style: none; }
.gc-woocommerce-account .subscription-cancellation__choices .button { width: 100%; justify-content: flex-start; }
.gc-woocommerce-account .subscription-cancellation__empty-action { margin: 0; }
.gc-woocommerce-account .subscription-cancellation form { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.gc-woocommerce-account .subscription-cancellation form .button { margin: 0; }
.gc-woocommerce-account .subscription-cancellation__confirm { background: #9f1f63; border-color: #e07ab0; color: #fff; }
.gc-woocommerce-account .subscription-access-state {
	margin: 1rem 0 1.5rem;
	padding: 1rem 1.1rem;
	background: rgb(37 170 225 / 0.08);
	border: 1px solid rgb(37 170 225 / 0.32);
	border-radius: 0.8rem;
}
.gc-woocommerce-account .subscription-access-state strong { display: block; color: var(--gc-color-text); }
.gc-woocommerce-account .subscription-access-state p,
.gc-woocommerce-account .account-subscription-summary__message { margin: 0.35rem 0 0; color: var(--gc-color-muted); line-height: 1.6; }
.gc-woocommerce-account .subscription-access-state--pending-cancel { background: rgb(245 158 11 / 0.08); border-color: rgb(245 158 11 / 0.38); }
.gc-woocommerce-account .subscription-access-state--expired { background: rgb(148 163 184 / 0.07); border-color: rgb(148 163 184 / 0.28); }
.gc-woocommerce-account .subscription-switcher {
	margin: 1rem 0 1.5rem;
	padding: clamp(1rem, 3vw, 1.4rem);
	background: var(--gc-color-surface);
	border: 1px solid var(--gc-color-border);
	border-radius: var(--gc-radius);
}
.gc-woocommerce-account .subscription-switcher h3 { margin: 0 0 0.75rem; }
.gc-woocommerce-account .subscription-switcher > p { color: var(--gc-color-muted); }
.gc-woocommerce-account .subscription-switcher__scheduled { padding: 0.8rem 0.9rem; background: rgb(37 170 225 / 0.08); border: 1px solid rgb(37 170 225 / 0.3); border-radius: 0.7rem; }
.gc-woocommerce-account .subscription-switcher__form { display: inline-block; margin: 0.5rem 0 0; padding: 0; background: transparent; border: 0; }
.gc-woocommerce-account .subscription-switcher__help { margin-bottom: 0; font-size: 0.86rem; }
.gc-woocommerce-account mark { padding: 0.15rem 0.35rem; background: rgb(159 31 99 / 0.16); border-radius: 0.35rem; color: var(--gc-color-primary-light); }

/* Mot de passe oublié */
.gc-password-reset-page {
	min-height: calc(100vh - 12rem);
	min-height: calc(100svh - 12rem);
	padding-block: clamp(2.5rem, 7vw, 5rem);
}

.gc-password-reset-layout {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(18rem, 0.75fr);
	max-width: 64rem;
	margin-inline: auto;
	background: var(--gc-color-surface);
	border: 1px solid var(--gc-color-border);
	border-radius: var(--gc-radius);
	box-shadow: 0 1.5rem 4rem rgb(0 0 0 / 0.22);
}

.gc-password-reset-card,
.gc-password-reset-help {
	padding: clamp(1.5rem, 4vw, 3rem);
}

.gc-password-reset-card {
	min-width: 0;
}

.gc-password-reset-card__header {
	display: flex;
	align-items: center;
	gap: 1rem;
}

.gc-password-reset-card__header .eyebrow {
	margin: 0 0 0.35rem;
}

.gc-password-reset-card__header h1 {
	max-width: 15ch;
	margin: 0;
	font-size: clamp(2rem, 4.5vw, 3rem);
	line-height: 1.02;
}

.gc-password-reset-card__icon {
	display: grid;
	flex: 0 0 auto;
	width: 3.5rem;
	height: 3.5rem;
	place-items: center;
	background: linear-gradient(145deg, rgb(37 170 225 / 0.16), rgb(159 31 99 / 0.2));
	border: 1px solid rgb(224 122 176 / 0.4);
	border-radius: 1rem;
	color: var(--gc-color-accent);
}

.gc-password-reset-card__icon svg {
	width: 1.7rem;
	height: 1.7rem;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.8;
}

.gc-password-reset-card__intro {
	margin: 1.25rem 0 1.75rem;
	color: var(--gc-color-muted);
	line-height: 1.65;
}

.gc-password-reset-card__form > .woocommerce {
	display: block;
}

.gc-password-reset-page > .woocommerce,
.gc-password-reset-page .gc-password-reset-card__form > .woocommerce {
	grid-template-columns: minmax(0, 48rem);
	justify-content: center;
	gap: 1rem;
}
.gc-password-reset-page .woocommerce-notices-wrapper:empty { display: none; }
.gc-password-reset-page .woocommerce-error { margin: 0 0 1rem; }
.gc-password-reset-page .lost_reset_password {
	display: grid;
	gap: 1.15rem;
	width: 100%;
}
.gc-password-reset-page .lost_reset_password > p { margin: 0; }
.gc-password-reset-page .lost_reset_password > p:first-child {
	max-width: 42rem;
	color: var(--gc-color-muted);
	font-size: 0.95rem;
	line-height: 1.65;
}
.gc-password-reset-page .lost_reset_password .form-row-first,
.gc-password-reset-page .lost_reset_password .form-row-last { float: none; width: 100%; }
.gc-password-reset-page .lost_reset_password label {
	display: block;
	margin-bottom: 0.5rem;
	font-weight: 700;
}
.gc-password-reset-page .lost_reset_password input.input-text {
	width: 100%;
	min-height: 3.15rem;
	padding: 0.8rem 0.9rem;
	background: rgb(9 11 18 / 0.78);
	border: 1px solid var(--gc-color-border);
	border-radius: 0.65rem;
	color: var(--gc-color-text);
	font: inherit;
}
.gc-password-reset-page .lost_reset_password input.input-text:focus {
	border-color: var(--gc-color-accent);
	box-shadow: 0 0 0 0.2rem rgb(37 170 225 / 0.12);
	outline: none;
}
.gc-password-reset-page .lost_reset_password .show-password-input {
	color: var(--gc-color-muted);
}

/* Affichage du mot de passe : bouton visible, accessible et commun aux formulaires. */
.gc-password-input,
.password-input {
	position: relative;
	display: block;
}

.gc-password-input > input,
.password-input > input {
	padding-right: 3.35rem !important;
}

.gc-password-toggle,
.woocommerce .gc-password-toggle,
.woocommerce-page .gc-password-toggle,
.woocommerce .password-input > .show-password-input,
.woocommerce-page .password-input > .show-password-input {
	position: absolute;
	top: 50%;
	right: 0.35rem;
	display: grid;
	width: 2.5rem;
	height: 2.5rem;
	padding: 0;
	place-items: center;
	background: #1b2233;
	border: 1px solid #56617a;
	border-radius: 0.55rem;
	color: #f5f7ff;
	cursor: pointer;
	transform: translateY(-50%);
	appearance: none;
}

/* Le conteneur WooCommerce peut aussi contenir la jauge : ancrer le bouton au champ de 3rem. */
.woocommerce .password-input > .show-password-input,
.woocommerce-page .password-input > .show-password-input {
	top: 1.5rem;
}

/* Le champ de réinitialisation mesure 3,35rem : conserver le bouton sur son axe réel. */
.gc-password-reset-page .password-input > .show-password-input {
	top: 1.675rem;
}

.gc-password-toggle::before,
.woocommerce .gc-password-toggle::before,
.woocommerce-page .gc-password-toggle::before,
.woocommerce .password-input > .show-password-input::before,
.woocommerce-page .password-input > .show-password-input::before {
	display: block;
	width: 1.25rem;
	height: 1.25rem;
	background: currentColor;
	background-image: none;
	content: "";
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 5c5.5 0 9.5 5.2 9.5 7s-4 7-9.5 7S2.5 13.8 2.5 12 6.5 5 12 5Zm0 2c-4 0-7.1 3.6-7.5 5 .4 1.4 3.5 5 7.5 5s7.1-3.6 7.5-5c-.4-1.4-3.5-5-7.5-5Zm0 1.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 0 1 0-7Zm0 2a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3Z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 5c5.5 0 9.5 5.2 9.5 7s-4 7-9.5 7S2.5 13.8 2.5 12 6.5 5 12 5Zm0 2c-4 0-7.1 3.6-7.5 5 .4 1.4 3.5 5 7.5 5s7.1-3.6 7.5-5c-.4-1.4-3.5-5-7.5-5Zm0 1.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 0 1 0-7Zm0 2a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.gc-password-toggle.is-password-visible::before,
.gc-password-toggle[aria-label^="Masquer"]::before,
.woocommerce .password-input > .show-password-input[aria-label^="Masquer"]::before,
.woocommerce-page .password-input > .show-password-input[aria-label^="Masquer"]::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m4.7 3.3 16 16-1.4 1.4-3-3A10.7 10.7 0 0 1 12 19c-5.5 0-9.5-5.2-9.5-7 0-1 .9-2.5 2.5-3.9L3.3 4.7l1.4-1.4ZM6 10c-.9.8-1.4 1.6-1.5 2 .4 1.4 3.5 5 7.5 5 .9 0 1.8-.2 2.6-.5l-1.7-1.7a3.5 3.5 0 0 1-3.7-3.7L6 10Zm6-5c5.5 0 9.5 5.2 9.5 7 0 .8-.7 2-1.8 3.2l-1.4-1.4c.7-.8 1.1-1.5 1.2-1.8-.4-1.4-3.5-5-7.5-5-.5 0-1 .1-1.5.2L8.8 5.5A10.5 10.5 0 0 1 12 5Zm.8 3.6a3.5 3.5 0 0 1 2.6 2.6l-2.6-2.6Z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m4.7 3.3 16 16-1.4 1.4-3-3A10.7 10.7 0 0 1 12 19c-5.5 0-9.5-5.2-9.5-7 0-1 .9-2.5 2.5-3.9L3.3 4.7l1.4-1.4ZM6 10c-.9.8-1.4 1.6-1.5 2 .4 1.4 3.5 5 7.5 5 .9 0 1.8-.2 2.6-.5l-1.7-1.7a3.5 3.5 0 0 1-3.7-3.7L6 10Zm6-5c5.5 0 9.5 5.2 9.5 7 0 .8-.7 2-1.8 3.2l-1.4-1.4c.7-.8 1.1-1.5 1.2-1.8-.4-1.4-3.5-5-7.5-5-.5 0-1 .1-1.5.2L8.8 5.5A10.5 10.5 0 0 1 12 5Zm.8 3.6a3.5 3.5 0 0 1 2.6 2.6l-2.6-2.6Z'/%3E%3C/svg%3E");
}

.gc-password-toggle:hover,
.woocommerce .password-input > .show-password-input:hover,
.woocommerce-page .password-input > .show-password-input:hover {
	background: #252f45;
	border-color: var(--gc-color-accent);
}

.gc-password-toggle:focus-visible,
.woocommerce .password-input > .show-password-input:focus-visible,
.woocommerce-page .password-input > .show-password-input:focus-visible {
	border-color: var(--gc-color-accent);
	outline: 3px solid var(--gc-color-accent);
	outline-offset: 2px;
}
.gc-password-reset-page .woocommerce-password-strength {
	margin-top: 0.65rem;
	padding: 0.7rem 0.9rem;
	background: rgb(248 113 113 / 0.1);
	border: 1px solid rgb(248 113 113 / 0.38);
	border-radius: 0.6rem;
	color: #fecaca;
	font-size: 0.84rem;
	font-weight: 750;
	line-height: 1.45;
	text-align: left;
}
.gc-password-reset-page .woocommerce-password-strength.bad {
	background: rgb(251 146 60 / 0.1);
	border-color: rgb(251 146 60 / 0.4);
	color: #fed7aa;
}
.gc-password-reset-page .woocommerce-password-strength.good {
	background: rgb(250 204 21 / 0.08);
	border-color: rgb(250 204 21 / 0.36);
	color: #fef08a;
}
.gc-password-reset-page .woocommerce-password-strength.strong {
	background: rgb(52 211 153 / 0.09);
	border-color: rgb(52 211 153 / 0.36);
	color: #a7f3d0;
}
.gc-password-reset-page .woocommerce-password-hint {
	display: block;
	margin-top: 0.65rem;
	padding-inline: 0.15rem;
	color: var(--gc-color-muted);
	font-size: 0.82rem;
	line-height: 1.65;
}
.gc-password-reset-page .lost_reset_password .button {
	min-height: 3.15rem;
	width: 100%;
	padding: 0.75rem 1.35rem;
	background: var(--gc-color-primary);
	border: 1px solid var(--gc-color-primary-light);
	border-radius: 0.7rem;
	color: #fff;
	font-weight: 750;
	box-shadow: 0 0.8rem 2rem rgb(116 22 72 / 0.24);
}
.gc-password-reset-page .lost_reset_password .button:hover {
	background: var(--gc-color-primary-light);
	color: #190b13;
}
.gc-password-reset-page .lost_reset_password .button:disabled,
.gc-password-reset-page .lost_reset_password .button.disabled {
	background: rgb(159 31 99 / 0.34);
	border-color: rgb(224 122 176 / 0.26);
	box-shadow: none;
	color: rgb(245 247 255 / 0.5);
	cursor: not-allowed;
}
.gc-password-reset-page .lost_reset_password .clear { display: none; }

.gc-password-reset-card__back {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin-top: 1.5rem;
	color: var(--gc-color-primary-light);
	font-weight: 750;
}

.gc-password-reset-card__back:hover { color: var(--gc-color-accent); }

.gc-password-reset-help {
	align-self: stretch;
	background: linear-gradient(155deg, rgb(159 31 99 / 0.2), rgb(37 170 225 / 0.07));
	border-left: 1px solid var(--gc-color-border);
	border-radius: 0 var(--gc-radius) var(--gc-radius) 0;
}

.gc-password-reset-help h2 {
	margin: 0 0 1.5rem;
	font-size: clamp(1.55rem, 3vw, 2rem);
}

.gc-password-reset-help ul {
	display: grid;
	gap: 1rem;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: gc-reset-step;
}

.gc-password-reset-help li {
	position: relative;
	min-height: 2rem;
	padding-left: 2.7rem;
	color: var(--gc-color-text);
	line-height: 1.55;
	counter-increment: gc-reset-step;
}

.gc-password-reset-help li::before {
	position: absolute;
	top: 0;
	left: 0;
	display: grid;
	width: 2rem;
	height: 2rem;
	place-items: center;
	background: rgb(37 170 225 / 0.12);
	border: 1px solid rgb(37 170 225 / 0.3);
	border-radius: 0.65rem;
	color: var(--gc-color-accent);
	content: counter(gc-reset-step, decimal-leading-zero);
	font-size: 0.68rem;
	font-weight: 800;
}

.gc-password-reset-help > p:last-child {
	margin: 1.75rem 0 0;
	padding-top: 1.25rem;
	border-top: 1px solid var(--gc-color-border);
	color: var(--gc-color-muted);
	font-size: 0.86rem;
	line-height: 1.6;
}

@media (max-width: 48rem) {
	.gc-password-reset-page { padding-block: 1.5rem 2.5rem; }
	.gc-password-reset-layout { grid-template-columns: 1fr; }
	.gc-password-reset-help {
		border-top: 1px solid var(--gc-color-border);
		border-left: 0;
		border-radius: 0 0 var(--gc-radius) var(--gc-radius);
	}
	.gc-password-reset-card__header { align-items: flex-start; }
	.gc-password-reset-card__icon { width: 3rem; height: 3rem; border-radius: 0.85rem; }
	.gc-password-reset-card__header h1 { font-size: clamp(1.8rem, 10vw, 2.35rem); }
}

@media (max-width: 64rem) {
	.gc-woocommerce-account > .woocommerce { grid-template-columns: 1fr; }
	.gc-woocommerce-account .woocommerce-MyAccount-navigation ul { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 48rem) {
	.account-overview__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.account-overview__stats > * + * { border-left: 0; }
	.account-overview__stats > *:nth-child(even) { border-left: 1px solid var(--gc-color-border); }
	.account-overview__stats > *:nth-child(n + 3) { border-top: 1px solid var(--gc-color-border); }
	.account-subscription-summary,
	.gc-woocommerce-account .woocommerce-Addresses { grid-template-columns: 1fr; }
	.gc-woocommerce-account table.shop_table_responsive tbody tr { display: block; margin-bottom: 0.85rem; padding: 0.35rem; background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: 0.8rem; }
	.gc-woocommerce-account table.shop_table_responsive tbody tr td { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.7rem; border: 0; text-align: right !important; }
	.gc-woocommerce-account table.shop_table_responsive tbody tr td::before { color: var(--gc-color-muted); font-size: 0.75rem; text-align: left; }
	.gc-woocommerce-account .subscription_details .woocommerce-button.cancel,
	.gc-woocommerce-account .subscription-cancellation form .button,
	.gc-woocommerce-account .subscription-switcher__form,
	.gc-woocommerce-account .subscription-switcher__form .button { width: 100%; }
	.gc-woocommerce-account .subscription_details .woocommerce-button.cancel { max-width: none; }
	.gc-woocommerce-account .subscription_details,
	.gc-woocommerce-account .subscription_details tbody { display: block; width: 100%; }
	.gc-woocommerce-account .subscription_details tr:has(.woocommerce-button) {
		display: block;
	}
	.gc-woocommerce-account .subscription_details tr:has(.woocommerce-button) td {
		display: block;
		width: 100%;
		text-align: left !important;
	}
	.gc-woocommerce-account .subscription_details tr:has(.woocommerce-button) td:first-child { padding-bottom: 0.25rem; }
	.gc-woocommerce-account .subscription_details tr:has(.woocommerce-button) td:last-child {
		display: grid;
		gap: 0.65rem;
		padding-top: 0.25rem;
	}
	.gc-woocommerce-account .subscription_details tr:has(.woocommerce-button) .woocommerce-button {
		justify-content: center;
		width: 100%;
		max-width: none;
		margin: 0;
		text-align: center;
	}
}

@media (max-width: 38rem) {
	.account-overview__header { align-items: flex-start; }
	.gc-woocommerce-account .woocommerce-message:has(> .button.wc-forward),
	.gc-woocommerce-account .woocommerce-info:has(> .button.wc-forward) { align-items: stretch; flex-direction: column; }
	.gc-woocommerce-account .woocommerce-message > .button.wc-forward,
	.gc-woocommerce-account .woocommerce-info > .button.wc-forward { width: 100%; margin-left: 0; }
	.gc-account-dashboard:has(.woocommerce-MyAccount-navigation-link--orders.is-active) .woocommerce-MyAccount-content .woocommerce-info {
		grid-template-columns: 1rem minmax(0, 1fr);
		align-items: start;
	}
	.gc-account-dashboard:has(.woocommerce-MyAccount-navigation-link--orders.is-active) .woocommerce-MyAccount-content .woocommerce-info::before {
		margin-top: 0.2em;
	}
	.gc-account-dashboard:has(.woocommerce-MyAccount-navigation-link--orders.is-active) .woocommerce-MyAccount-content .woocommerce-info > .button.wc-forward {
		grid-column: 1 / -1;
		grid-row: 2;
	}
}

/* Vue d'ensemble du compte : dashboard GameCodeur. */
.gc-account-dashboard {
	position: relative;
	max-width: min(100%, 112rem);
	padding-top: clamp(1.5rem, 4vw, 3rem);
}

.gc-account-dashboard::before {
	position: absolute;
	z-index: -1;
	top: 0;
	right: 0;
	left: 0;
	height: 24rem;
	background:
		linear-gradient(rgb(37 170 225 / 0.035) 1px, transparent 1px),
		linear-gradient(90deg, rgb(37 170 225 / 0.035) 1px, transparent 1px),
		radial-gradient(circle at 78% 18%, rgb(159 31 99 / 0.2), transparent 28rem);
	background-size: 4rem 4rem, 4rem 4rem, auto;
	content: "";
	pointer-events: none;
}

.gc-account-dashboard > .page-header {
	display: none;
}

.gc-account-dashboard > .page-header .eyebrow { margin-bottom: 0.2rem; }
.gc-account-dashboard > .page-header h1 { margin: 0; font-size: clamp(1.75rem, 3.2vw, 2.5rem); }
.gc-account-dashboard > .woocommerce { grid-template-columns: minmax(0, 1fr); gap: 0; }
.gc-account-dashboard .woocommerce-MyAccount-navigation { display: none; }
.gc-account-dashboard .woocommerce-MyAccount-content { width: 100%; }

.gc-account-dashboard .woocommerce-MyAccount-navigation ul::before {
	padding: 0.55rem 0.8rem 0.7rem;
	color: var(--gc-color-accent);
	content: "Tableau de bord";
	font-size: 0.63rem;
	font-weight: 850;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.gc-account-dashboard .woocommerce-MyAccount-navigation a::before {
	display: grid;
	width: 1.75rem;
	height: 1.75rem;
	place-items: center;
	background: rgb(37 170 225 / 0.08);
	border: 1px solid rgb(37 170 225 / 0.12);
	border-radius: 0.48rem;
	box-shadow: none;
	color: #7f8ba8;
	content: "•";
	font-size: 0.68rem;
	transition: color 160ms ease, background 160ms ease, border-color 160ms ease;
}

.gc-account-dashboard .woocommerce-MyAccount-navigation-link--dashboard a::before { content: "◆"; }
.gc-account-dashboard .woocommerce-MyAccount-navigation-link--formations a::before { content: "▶"; }
.gc-account-dashboard .woocommerce-MyAccount-navigation-link--mes-produits a::before { content: "◇"; }
.gc-account-dashboard .woocommerce-MyAccount-navigation-link--favoris a::before { content: "♥"; }
.gc-account-dashboard .woocommerce-MyAccount-navigation-link--orders a::before { content: "▤"; }
.gc-account-dashboard .woocommerce-MyAccount-navigation-link--factures a::before { content: "€"; }
.gc-account-dashboard .woocommerce-MyAccount-navigation-link--subscriptions a::before { content: "★"; }
.gc-account-dashboard .woocommerce-MyAccount-navigation-link--payment-methods a::before { content: "$"; }
.gc-account-dashboard .woocommerce-MyAccount-navigation-link--edit-address a::before { content: "⌂"; }
.gc-account-dashboard .woocommerce-MyAccount-navigation-link--edit-account a::before { content: "●"; }
.gc-account-dashboard .woocommerce-MyAccount-navigation-link--supprimer-mon-compte a::before { content: "×"; }
.gc-account-dashboard .woocommerce-MyAccount-navigation-link--customer-logout a::before { content: "↗"; }
.gc-account-dashboard .woocommerce-MyAccount-navigation a:hover::before,
.gc-account-dashboard .woocommerce-MyAccount-navigation .is-active a::before { background: rgb(159 31 99 / 0.18); border-color: rgb(224 122 176 / 0.3); box-shadow: none; color: var(--gc-color-primary-light); }

.gc-account-dashboard .account-overview {
	grid-template-columns: minmax(13.5rem, 16rem) minmax(0, 1.9fr) minmax(18rem, 0.72fr);
	gap: clamp(0.75rem, 1.5vw, 1rem);
	align-items: stretch;
}

.gc-account-dashboard .account-overview__toolbox { grid-column: 1; grid-row: 1 / span 3; }
.gc-account-dashboard .account-overview__hero { grid-column: 2; grid-row: 1; height: 100%; }
.gc-account-dashboard .account-overview__stats { grid-column: 3; grid-row: 1; height: 100%; }
.gc-account-dashboard .account-overview__main-grid { grid-column: 2 / -1; grid-row: 2; }
.gc-account-dashboard .account-overview__activity { grid-column: 2 / -1; grid-row: 3; }

.account-overview__hero {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(13rem, 18rem);
	overflow: hidden;
	gap: clamp(1rem, 3vw, 2rem);
	align-items: center;
	padding: clamp(1.15rem, 2.5vw, 1.75rem);
	background:
		linear-gradient(125deg, rgb(11 16 31 / 0.94), rgb(27 21 47 / 0.94)),
		var(--gc-color-surface);
	border: 1px solid #343d5b;
	border-radius: calc(var(--gc-radius) + 0.35rem);
	box-shadow: 0 1.5rem 4rem rgb(0 0 0 / 0.2);
}

.account-overview__hero::after {
	position: absolute;
	width: 20rem;
	height: 20rem;
	right: -8rem;
	bottom: -12rem;
	background: radial-gradient(circle, rgb(224 122 176 / 0.2), transparent 65%);
	content: "";
	pointer-events: none;
}

.account-overview__identity {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: center;
	gap: clamp(1rem, 3vw, 1.6rem);
}

.account-overview__avatar { position: relative; align-self: start; }
.account-overview__avatar img {
	display: block;
	width: clamp(4.25rem, 6vw, 5.5rem);
	height: clamp(4.25rem, 6vw, 5.5rem);
	border: 3px solid rgb(224 122 176 / 0.72);
	border-radius: 1.4rem;
	box-shadow: 0 0 0 0.45rem rgb(159 31 99 / 0.1), 0 1.2rem 2.8rem rgb(0 0 0 / 0.34);
	object-fit: cover;
}

.account-overview__avatar span {
	position: absolute;
	right: -0.2rem;
	bottom: -0.2rem;
	width: 1.15rem;
	height: 1.15rem;
	background: #3ddc97;
	border: 3px solid #111728;
	border-radius: 50%;
}

.account-overview__identity h2 {
	max-width: 18ch;
	margin: 0.1rem 0 0.4rem;
	font-size: clamp(1.75rem, 3.3vw, 2.7rem);
	line-height: 1.02;
}

.account-overview__identity > div > p:not(.eyebrow) {
	max-width: 45rem;
	margin: 0;
	color: var(--gc-color-muted);
	font-size: 0.88rem;
	line-height: 1.5;
}

.account-overview__hero-actions { display: flex; flex-wrap: wrap; gap: 0.55rem; margin-top: 0.85rem; }
.account-overview__hero-actions .button { min-height: 2.45rem; padding-block: 0.55rem; }

.account-overview__level {
	position: relative;
	z-index: 1;
	display: grid;
	gap: 0.35rem;
	padding: 0.9rem 1rem;
	background: rgb(6 9 18 / 0.5);
	border: 1px solid rgb(224 122 176 / 0.28);
	border-radius: 1rem;
	backdrop-filter: blur(0.8rem);
}

.account-overview__level::before {
	display: none;
	content: none;
}

.account-overview__level-kicker { color: var(--gc-color-muted); font-size: 0.68rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; }
.account-overview__level-heading,
.account-overview__access { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.account-overview__level-heading strong { color: var(--gc-color-accent); font-size: 1.45rem; }
.account-overview__level progress { width: 100%; height: 0.55rem; overflow: hidden; background: #090d18; border: 0; border-radius: 999px; color: var(--gc-color-primary-light); }
.account-overview__level progress::-webkit-progress-bar { background: #090d18; border-radius: 999px; }
.account-overview__level progress::-webkit-progress-value { background: linear-gradient(90deg, var(--gc-color-accent), var(--gc-color-primary-light)); border-radius: 999px; }
.account-overview__level progress::-moz-progress-bar { background: linear-gradient(90deg, var(--gc-color-accent), var(--gc-color-primary-light)); border-radius: 999px; }
.account-overview__access { margin-top: 0.45rem; padding-top: 0.55rem; border-top: 1px solid rgb(255 255 255 / 0.08); }
.account-overview__access span { color: var(--gc-color-muted); font-size: 0.72rem; }
.account-overview__access strong { color: var(--gc-color-text); font-size: 0.82rem; }
.account-overview__level p { margin: 0; color: var(--gc-color-muted); font-size: 0.76rem; line-height: 1.4; }

.gc-account-dashboard .account-overview__stats {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	grid-template-rows: repeat(2, minmax(0, 1fr));
	overflow: visible;
	gap: 0.75rem;
	background: transparent;
	border: 0;
	border-radius: 0;
}

.gc-account-dashboard .account-overview__stats > * {
	display: flex;
	align-items: center;
	gap: 0.8rem;
	min-width: 0;
	padding: 1rem;
	background: var(--gc-color-surface);
	border: 1px solid var(--gc-color-border);
	border-radius: 0.9rem;
	transition: transform 160ms ease, border-color 160ms ease, background 160ms ease;
}

.gc-account-dashboard .account-overview__stats > * + * { border-left: 1px solid var(--gc-color-border); }
.gc-account-dashboard .account-overview__stats a:hover { background: var(--gc-color-surface-alt); border-color: rgb(224 122 176 / 0.5); transform: translateY(-2px); }
.gc-account-dashboard .account-overview__stats > * > span:last-child { display: grid; min-width: 0; }
.gc-account-dashboard .account-overview__stats strong { font-size: 1.35rem; line-height: 1; }
.gc-account-dashboard .account-overview__stats small { overflow: hidden; margin-top: 0.2rem; color: var(--gc-color-muted); font-size: 0.7rem; text-overflow: ellipsis; white-space: nowrap; }

.account-overview__stat-icon {
	display: grid;
	width: 2.1rem;
	height: 2.1rem;
	flex: 0 0 auto;
	place-items: center;
	background: rgb(37 170 225 / 0.1);
	border: 1px solid rgb(37 170 225 / 0.24);
	border-radius: 0.72rem;
	color: var(--gc-color-accent);
	font: 800 0.72rem/1 ui-monospace, SFMono-Regular, Consolas, monospace;
}

.account-overview__main-grid { display: grid; grid-template-columns: minmax(0, 1.9fr) minmax(15rem, 0.72fr); gap: 0.75rem; }
.account-overview__continue,
.gc-account-dashboard .account-overview__subscription { padding: clamp(1rem, 2vw, 1.3rem); background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: var(--gc-radius); }
.account-overview__section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 0.75rem; margin-bottom: 0.7rem; }
.account-overview__section-heading h3,
.gc-account-dashboard .account-overview__subscription h3 { margin: 0.1rem 0 0; font-size: clamp(1.35rem, 2.5vw, 1.8rem); }
.account-overview__section-heading > a { color: var(--gc-color-primary-light); font-size: 0.78rem; font-weight: 800; text-decoration: none; }
.account-overview__courses { display: grid; gap: 0.6rem; }

.account-overview-course {
	display: grid;
	grid-template-columns: minmax(9rem, 0.72fr) minmax(0, 1.28fr);
	overflow: hidden;
	background: var(--gc-color-surface-alt);
	border: 1px solid var(--gc-color-border);
	border-radius: 0.9rem;
}

.account-overview-course__image { position: relative; display: block; min-height: 7.5rem; overflow: hidden; background: #090c14; }
.account-overview-course__image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 220ms ease; }
.account-overview-course:hover .account-overview-course__image img { transform: scale(1.035); }
.account-overview-course__image > span { position: absolute; right: 0.7rem; bottom: 0.7rem; padding: 0.32rem 0.5rem; background: rgb(6 9 18 / 0.8); border: 1px solid rgb(255 255 255 / 0.16); border-radius: 999px; color: #fff; font-size: 0.68rem; font-weight: 800; backdrop-filter: blur(0.4rem); }
.account-overview-course__body { display: grid; align-content: center; padding: 0.75rem 0.85rem; }
.account-overview-course__body > p { margin: 0 0 0.3rem; color: var(--gc-color-primary-light); font-size: 0.66rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.account-overview-course__body h4 { margin: 0 0 0.55rem; font-size: 0.92rem; line-height: 1.25; }
.account-overview-course__body h4 a { color: var(--gc-color-text); text-decoration: none; }
.account-overview-course__body .formation-progress { margin: 0; }
.account-overview-course__body .formation-progress__label { font-size: 0.68rem; }
.account-overview-course__resume { justify-self: start; margin-top: 0.55rem; color: var(--gc-color-primary-light); font-size: 0.74rem; font-weight: 800; text-decoration: none; }

.account-overview__empty { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 1rem; padding: 1.25rem; background: var(--gc-color-surface-alt); border: 1px dashed #414963; border-radius: 0.9rem; }
.account-overview__empty > span { display: grid; width: 3rem; height: 3rem; place-items: center; background: rgb(37 170 225 / 0.1); border-radius: 0.8rem; color: var(--gc-color-accent); font: 800 0.78rem/1 ui-monospace, SFMono-Regular, Consolas, monospace; }
.account-overview__empty h4 { margin: 0 0 0.25rem; }
.account-overview__empty p { margin: 0; color: var(--gc-color-muted); font-size: 0.82rem; line-height: 1.55; }

.gc-account-dashboard .account-overview__subscription { position: relative; overflow: hidden; background: linear-gradient(155deg, rgb(159 31 99 / 0.14), var(--gc-color-surface) 55%); }
.gc-account-dashboard .account-overview__subscription::after { position: absolute; width: 8rem; height: 8rem; right: -4rem; top: -4rem; background: rgb(159 31 99 / 0.12); border-radius: 50%; content: ""; pointer-events: none; }
.account-overview__subscription-status { display: inline-flex; margin: 0.65rem 0 0.55rem; padding: 0.32rem 0.55rem; background: rgb(52 211 153 / 0.1); border: 1px solid rgb(52 211 153 / 0.3); border-radius: 999px; color: #6ee7b7; font-size: 0.64rem; font-weight: 800; letter-spacing: 0.05em; text-transform: uppercase; }
.account-overview__subscription-status--free { background: rgb(37 170 225 / 0.1); border-color: rgb(37 170 225 / 0.3); color: #7dd3fc; }
.gc-account-dashboard .account-overview__subscription > p:not(.eyebrow) { color: var(--gc-color-muted); font-size: 0.84rem; line-height: 1.6; }
.gc-account-dashboard .account-overview__subscription ul { display: grid; gap: 0.35rem; margin: 0.65rem 0 0.85rem; padding: 0; list-style: none; }
.gc-account-dashboard .account-overview__subscription li { position: relative; padding-left: 1.4rem; color: var(--gc-color-text); font-size: 0.8rem; }
.gc-account-dashboard .account-overview__subscription li::before { position: absolute; left: 0; color: var(--gc-color-accent); content: "✓"; font-weight: 900; }
.gc-account-dashboard .account-subscription-summary { grid-template-columns: 1fr; gap: 0.65rem; }

.account-overview__activity { padding: clamp(1rem, 2vw, 1.3rem); background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: var(--gc-radius); }
.account-overview__activity .account-overview__section-heading { margin-bottom: 0.65rem; }
.account-overview__activity ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1rem; margin: 0; padding: 0; list-style: none; }
.account-overview__activity li { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 0.65rem; min-width: 0; padding: 0.58rem 0; border-top: 1px solid var(--gc-color-border); }
.account-overview__activity li > span:first-child { display: grid; width: 2rem; height: 2rem; place-items: center; background: rgb(37 170 225 / 0.1); border-radius: 0.55rem; color: var(--gc-color-accent); font: 800 0.62rem/1 ui-monospace, SFMono-Regular, Consolas, monospace; }
.account-overview__activity li > span:last-child { color: var(--gc-color-primary-light); }
.account-overview__activity li div { display: grid; min-width: 0; }
.account-overview__activity a { overflow: hidden; color: var(--gc-color-text); font-size: 0.82rem; font-weight: 750; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; }
.account-overview__activity small { color: var(--gc-color-muted); font-size: 0.68rem; }
.account-overview__activity .account-overview__activity-type { margin-bottom: 0.16rem; color: var(--gc-color-accent); font-size: 0.58rem; font-weight: 800; letter-spacing: 0.09em; text-transform: uppercase; }
.account-overview__activity-empty { margin: 0; padding: 1rem; background: var(--gc-color-surface-alt); border-radius: 0.75rem; color: var(--gc-color-muted); font-size: 0.82rem; line-height: 1.6; }
.account-overview__toolbox { padding: clamp(1rem, 2vw, 1.3rem); background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: var(--gc-radius); }
.account-overview__toolbox .account-overview__section-heading { margin-bottom: 0.7rem; }
.account-overview__shortcuts { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.55rem; }
.account-overview__toolbox .account-overview__shortcuts { grid-template-columns: 1fr; }
.account-overview__shortcuts a { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 0.6rem; padding: 0.7rem; background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: 0.75rem; color: var(--gc-color-text); text-decoration: none; transition: border-color 160ms ease, transform 160ms ease; }
.account-overview__shortcuts a:hover { border-color: rgb(37 170 225 / 0.5); transform: translateY(-2px); }
.account-overview__shortcuts a > span { grid-row: 1 / span 2; display: grid; width: 1.9rem; height: 1.9rem; place-items: center; background: rgb(159 31 99 / 0.12); border-radius: 0.6rem; color: var(--gc-color-primary-light); font: 800 0.62rem/1 ui-monospace, SFMono-Regular, Consolas, monospace; }
.account-overview__shortcuts strong { align-self: end; font-size: 0.82rem; }
.account-overview__shortcuts small { color: var(--gc-color-muted); font-size: 0.68rem; }
.account-overview__shortcuts .account-overview__logout { border-color: rgb(248 113 113 / 0.2); }
.account-overview__shortcuts .account-overview__logout > span { background: rgb(248 113 113 / 0.08); color: #fca5a5; }
.account-overview__shortcuts .account-overview__logout:hover { border-color: rgb(248 113 113 / 0.5); }

.account-dashboard-navigation {
	display: grid;
	gap: 0.75rem;
	align-content: start;
	padding: clamp(0.9rem, 2vw, 1.2rem);
	background: linear-gradient(135deg, rgb(17 23 40 / 0.98), rgb(29 23 48 / 0.96));
	border: 1px solid #343d5b;
	border-radius: var(--gc-radius);
}

.account-dashboard-navigation > header { display: grid; gap: 0.65rem; margin-bottom: 0.15rem; }
.account-dashboard-navigation h2 { margin: 0.05rem 0 0; font-size: clamp(1.2rem, 2vw, 1.55rem); }
.account-dashboard-navigation > header p:not(.eyebrow) { margin: 0.35rem 0 0; color: var(--gc-color-muted); font-size: 0.76rem; line-height: 1.5; }
.account-dashboard-navigation__toggle { display: none; }
.account-overview__shortcuts--persistent { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 0.45rem; }
.account-overview__shortcuts--persistent a { padding: 0.58rem 0.65rem; background: rgb(7 11 21 / 0.34); }
.account-overview__shortcuts--persistent a.is-active { background: rgb(159 31 99 / 0.18); border-color: rgb(224 122 176 / 0.48); box-shadow: inset 0 0 0 1px rgb(224 122 176 / 0.08); }
.account-overview__shortcuts--persistent a.is-active > span { background: rgb(159 31 99 / 0.28); color: #fff; }
.account-dashboard-navigation .account-overview__shortcuts--persistent { grid-template-columns: 1fr; }
.account-dashboard-navigation .account-overview__shortcuts--persistent a { min-height: 3.15rem; }
.account-dashboard-navigation .account-overview__shortcuts--persistent small { display: block; }
.gc-account-dashboard--section {
	display: grid;
	grid-template-columns: minmax(13.5rem, 16rem) minmax(0, 1fr);
	gap: clamp(0.8rem, 1.5vw, 1.15rem);
	align-items: start;
}

.gc-account-dashboard--section > .page-header { grid-column: 1 / -1; }
.gc-account-dashboard--section > .account-dashboard-navigation { position: sticky; top: calc(5.75rem + var(--gc-admin-bar-height) + var(--gc-cgu-notice-height)); grid-column: 1; }
.gc-account-dashboard--section > .woocommerce { grid-column: 2; min-width: 0; padding: clamp(1rem, 2vw, 1.5rem); background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: var(--gc-radius); box-shadow: 0 1.25rem 3rem rgb(0 0 0 / 0.14); }
.gc-account-dashboard--section .account-overview__shortcuts--persistent strong { align-self: center; }
.account-deletion-request { display: grid; gap: 1.25rem; }
.account-deletion-request__warning { padding: clamp(1rem, 2vw, 1.35rem); background: rgb(127 29 29 / 0.12); border: 1px solid rgb(248 113 113 / 0.32); border-radius: 0.85rem; }
.account-deletion-request__warning h3,
.account-deletion-request__warning p { margin: 0; }
.account-deletion-request__warning h3 { margin-bottom: 0.65rem; color: var(--gc-color-text); font-size: 1.1rem; }
.account-deletion-request__warning p + p { margin-top: 0.65rem; }
.account-deletion-request__subscription { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.15rem; background: var(--gc-color-surface-alt); border: 1px solid var(--gc-color-border); border-radius: 0.85rem; }
.account-deletion-request__subscription div { display: grid; gap: 0.2rem; }
.account-deletion-request__subscription span { color: var(--gc-color-muted); font-size: 0.78rem; }
.account-deletion-request__success { padding: 1rem 1.15rem; background: rgb(16 185 129 / 0.1); border: 1px solid rgb(52 211 153 / 0.35); border-radius: 0.85rem; }
.account-deletion-request__success h3,
.account-deletion-request__success p { margin: 0; }
.account-deletion-request__success p { margin-top: 0.45rem; color: var(--gc-color-muted); }
.account-deletion-request__form { display: grid; gap: 1rem; }
.account-deletion-request__confirmation { display: flex; align-items: flex-start; gap: 0.75rem; padding: 1rem; background: var(--gc-color-surface-alt); border: 1px solid var(--gc-color-border); border-radius: 0.85rem; color: var(--gc-color-text); line-height: 1.55; cursor: pointer; }
.account-deletion-request__confirmation:focus-within { border-color: var(--gc-color-accent); box-shadow: 0 0 0 3px rgb(37 170 225 / 0.18); }
.account-deletion-request__confirmation input { flex: 0 0 auto; width: 1.15rem; height: 1.15rem; margin-top: 0.2rem; accent-color: var(--gc-color-primary); }
.woocommerce .account-deletion-request__submit.button,
.woocommerce-page .account-deletion-request__submit.button { justify-self: start; min-height: 3rem; background: #7f1d1d; border-color: #ef4444; color: #fff; }
.woocommerce .account-deletion-request__submit.button:hover,
.woocommerce-page .account-deletion-request__submit.button:hover { background: #991b1b; color: #fff; }

@media (max-width: 48rem) {
	.account-deletion-request__subscription { align-items: stretch; flex-direction: column; }
	.account-deletion-request__subscription .button,
	.woocommerce .account-deletion-request__submit.button,
	.woocommerce-page .account-deletion-request__submit.button { width: 100%; justify-content: center; }
}

@media (min-width: 78.01rem) and (max-width: 90rem) {
	.gc-account-dashboard .account-overview { grid-template-columns: minmax(13.5rem, 15rem) minmax(0, 1fr); }
	.gc-account-dashboard .account-overview__toolbox { grid-column: 1; grid-row: 1 / span 4; }
	.gc-account-dashboard .account-overview__hero { grid-column: 2; grid-row: 1; }
	.gc-account-dashboard .account-overview__stats { grid-column: 2; grid-row: 2; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-rows: 1fr; }
	.gc-account-dashboard .account-overview__main-grid { grid-column: 2; grid-row: 3; }
	.gc-account-dashboard .account-overview__activity { grid-column: 2; grid-row: 4; }
	.gc-account-dashboard .account-overview__stats > * { padding: 0.85rem; }
	.gc-account-dashboard .account-overview__stats small { white-space: normal; }
}

@media (max-width: 78rem) {
	.gc-account-dashboard--section { grid-template-columns: 1fr; }
	.gc-account-dashboard--section > .account-dashboard-navigation,
	.gc-account-dashboard--section > .woocommerce { grid-column: 1; }
	.gc-account-dashboard--section > .account-dashboard-navigation { position: static; }
	.gc-account-dashboard .account-overview { grid-template-columns: 1fr; }
	.gc-account-dashboard .account-overview__toolbox,
	.gc-account-dashboard .account-overview__hero,
	.gc-account-dashboard .account-overview__stats,
	.gc-account-dashboard .account-overview__main-grid,
	.gc-account-dashboard .account-overview__activity { grid-column: 1; grid-row: auto; }
	.gc-account-dashboard .account-overview__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.account-overview__toolbox .account-overview__shortcuts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.account-overview__shortcuts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.account-overview__shortcuts--persistent { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (min-width: 90rem) {
	.account-overview__courses { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.account-overview-course { grid-template-columns: minmax(7rem, 0.78fr) minmax(0, 1.22fr); }
}

@media (max-width: 64rem) {
	.account-overview__hero,
	.account-overview__main-grid { grid-template-columns: 1fr; }
	.account-overview__activity ol { grid-template-columns: 1fr; }
}

@media (max-width: 42rem) {
	.gc-account-dashboard { padding-top: 1rem; }
	.gc-account-dashboard > .page-header { margin-bottom: 1rem; }
	.account-overview__hero { padding: 1.25rem; }
	.account-overview__identity { grid-template-columns: 1fr; }
	.account-overview__avatar img { width: 4.5rem; height: 4.5rem; border-radius: 1rem; }
	.account-overview__identity h2 { font-size: clamp(1.8rem, 9vw, 2.5rem); }
	.account-overview__hero-actions,
	.account-overview__hero-actions .button { width: 100%; }
	.gc-account-dashboard .account-overview__stats,
	.account-overview__shortcuts { grid-template-columns: 1fr 1fr; }
	.account-overview__toolbox .account-overview__shortcuts { grid-template-columns: 1fr 1fr; }
	.account-dashboard-navigation > header { align-items: flex-start; }
	.account-dashboard-navigation__toggle { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.75rem 0.85rem; background: rgb(7 11 21 / 0.45); border: 1px solid var(--gc-color-border); border-radius: 0.7rem; color: var(--gc-color-text); font: inherit; font-size: 0.82rem; font-weight: 800; text-align: left; cursor: pointer; }
	.account-dashboard-navigation__toggle:hover,
	.account-dashboard-navigation__toggle:focus-visible { border-color: rgb(224 122 176 / 0.55); outline: none; }
	.account-dashboard-navigation__toggle span:last-child { color: var(--gc-color-primary-light); font-size: 1.15rem; transition: transform 160ms ease; }
	.account-dashboard-navigation__toggle[aria-expanded="true"] span:last-child { transform: rotate(180deg); }
	.gc-account-dashboard .account-dashboard-navigation .account-overview__shortcuts--persistent { display: none; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem; }
	.gc-account-dashboard .account-dashboard-navigation .account-overview__shortcuts--persistent.is-open { display: grid; }
	.gc-account-dashboard .account-dashboard-navigation .account-overview__shortcuts--persistent a { min-width: 0; min-height: 4.5rem; }
	.gc-account-dashboard .account-overview__stats > * { padding: 0.85rem; }
	.account-overview-course { grid-template-columns: 1fr; }
	.account-overview-course__image { min-height: 0; aspect-ratio: 16 / 8; }
	.account-overview__section-heading { align-items: flex-start; flex-direction: column; }
	.account-overview__empty { grid-template-columns: auto minmax(0, 1fr); }
	.account-overview__empty .button { grid-column: 1 / -1; width: 100%; }
	.account-overview__shortcuts a { grid-template-columns: 1fr; }
	.account-overview__shortcuts a > span { grid-row: auto; margin-bottom: 0.5rem; }
}

@media (max-width: 30rem) {
	.gc-account-dashboard .account-dashboard-navigation .account-overview__shortcuts--persistent { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
	.gc-account-dashboard .account-overview__stats a,
	.account-overview-course__image img,
	.account-overview__shortcuts a { transition: none; }
}


.dashboard-content {
	padding-block: clamp(3rem, 7vw, 6rem);
}

.dashboard-stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	margin-top: -5rem;
	margin-bottom: 5rem;
	background: var(--gc-color-surface-alt);
	border: 1px solid var(--gc-color-border);
	border-radius: var(--gc-radius);
	box-shadow: var(--gc-shadow);
}

.dashboard-stats > div {
	display: grid;
	gap: 0.2rem;
	padding: 1.5rem 2rem;
}

.dashboard-stats > div + div {
	border-left: 1px solid var(--gc-color-border);
}

.dashboard-stats strong {
	color: var(--gc-color-text);
	font-size: 2rem;
}

.dashboard-stats span {
	color: var(--gc-color-muted);
	font-size: 0.82rem;
}

.dashboard-section {
	margin-bottom: 5rem;
}

.dashboard-course-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1rem;
}

.dashboard-product-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	grid-auto-rows: 1fr;
	gap: 1rem;
}

.dashboard-product {
	display: flex;
	overflow: hidden;
	height: 100%;
	flex-direction: column;
	background: var(--gc-color-surface);
	border: 1px solid var(--gc-color-border);
	border-radius: var(--gc-radius);
}

.dashboard-product__image {
	position: relative;
	display: block;
	overflow: hidden;
	aspect-ratio: 16 / 9;
	background: #0b0e17;
}

.dashboard-product__image img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.dashboard-product__body {
	display: grid;
	grid-template-rows: minmax(0, 1fr) auto;
	flex: 1;
	align-items: flex-start;
	padding: 1.5rem;
}

.dashboard-product__body h3 {
	margin-block: 0.8rem 1.25rem;
}

.dashboard-product__body h3 a {
	color: var(--gc-color-text);
	text-decoration: none;
}

.dashboard-product__body .button {
	width: 100%;
	margin-top: auto;
	align-self: flex-end;
}

.dashboard-product-grid[data-catalog-view-scope^="account-"] .dashboard-product__body {
	padding: 0.85rem;
}

.dashboard-product-grid[data-catalog-view-scope^="account-"] .dashboard-product__body h3 {
	margin-block: 0.3rem 0.65rem;
	font-size: 0.9rem;
	line-height: 1.3;
}

.dashboard-product-grid[data-catalog-view-scope^="account-"] .dashboard-product__body .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.55rem 0.7rem;
	font-size: 0.76rem;
	line-height: 1.2;
	text-align: center;
}

.product-content-navigation ul {
	display: grid;
	gap: 0.75rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.product-content-navigation a {
	display: flex;
	justify-content: space-between;
	padding: 1rem 1.2rem;
	background: var(--gc-color-surface-alt);
	border: 1px solid var(--gc-color-border);
	border-radius: 0.75rem;
	color: var(--gc-color-text);
	font-weight: 750;
	text-decoration: none;
}

/* Bibliotheque produit : page unique et ressources ordonnees. */
.product-library-page { min-height: 70vh; background: var(--gc-color-background); }
.product-library-hero { padding-block: clamp(3rem, 7vw, 5.5rem); border-bottom: 1px solid var(--gc-color-border); background: radial-gradient(circle at 80% 30%, rgba(169, 31, 102, 0.2), transparent 38%); }
.product-library-hero__inner { display: grid; grid-template-columns: minmax(10rem, 18rem) minmax(0, 1fr); align-items: center; gap: clamp(2rem, 6vw, 5rem); }
.product-library-hero__cover { overflow: hidden; aspect-ratio: 16 / 10; border: 1px solid var(--gc-color-border); border-radius: var(--gc-radius); box-shadow: var(--gc-shadow); }
.product-library-hero__cover img { width: 100%; height: 100%; object-fit: cover; }
.product-library-hero h1 { max-width: 18ch; margin: .5rem 0 1rem; font-size: clamp(2.2rem, 5vw, 4.4rem); }
.product-library-hero__intro { max-width: 60ch; color: var(--gc-color-muted); font-size: 1.1rem; }
.product-library-layout { padding-block: clamp(3rem, 7vw, 6rem); }
.product-library-introduction { max-width: 52rem; margin: 0 auto 3rem; }
.product-resource-list { display: grid; gap: 1rem; max-width: 58rem; margin-inline: auto; }
.product-resource-list__heading { margin-bottom: 1rem; }
.product-resource-list__heading h2 { margin: .35rem 0 0; font-size: clamp(2rem, 4vw, 3rem); }
.product-resource-heading { margin: 2.25rem 0 .25rem; font-size: 1.5rem; }
.product-resource-text, .product-resource-file, .product-resource-video { border: 1px solid var(--gc-color-border); border-radius: var(--gc-radius); background: var(--gc-color-surface); }
.product-resource-text { padding: 1.4rem 1.5rem; }
.product-resource-text h3 { margin: 0 0 .55rem; }
.product-resource-text p { margin: 0; color: var(--gc-color-muted); }
.product-resource-video { overflow: hidden; }
.product-resource-video summary { overflow-wrap: anywhere; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 1rem; padding: 1.25rem 1.4rem; cursor: pointer; list-style: none; }
.product-resource-video summary::-webkit-details-marker { display: none; }
.product-resource-video summary small, .product-resource-file small { display: block; margin-top: .25rem; color: var(--gc-color-muted); }
.product-resource-toggle { color: var(--gc-color-primary-light); font-size: 1.8rem; transition: transform .2s ease; }
.product-resource-video[open] .product-resource-toggle { transform: rotate(45deg); }
.product-resource-video__player { padding: 0 1.4rem 1.4rem; }
.gc-vimeo-lazy,
.gc-vimeo-lazy__placeholder,
.gc-vimeo-lazy iframe {
	display: grid;
	width: 100%;
	aspect-ratio: var(--gc-video-aspect-ratio, 16 / 9);
	border: 0;
	border-radius: calc(var(--gc-radius) - .35rem);
}
.gc-vimeo-lazy {
	height: 100%;
	place-items: stretch;
}
.gc-vimeo-lazy__placeholder {
	place-items: center;
	align-content: center;
	gap: .65rem;
	padding: 1.5rem;
	background: var(--gc-color-background);
	color: var(--gc-color-muted);
	text-align: center;
}
.gc-vimeo-lazy__placeholder span:first-child {
	display: grid;
	place-items: center;
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	background: rgba(169, 31, 102, .18);
	color: var(--gc-color-primary-light);
}
.product-resource-file { overflow-wrap: anywhere; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 1rem; padding: 1.2rem 1.4rem; }
.product-resource-icon { display: grid; place-items: center; width: 2.65rem; height: 2.65rem; border-radius: .75rem; background: rgba(169, 31, 102, .15); color: var(--gc-color-primary-light); font-weight: 800; }
@media (max-width: 700px) { .product-library-hero__inner { grid-template-columns: 1fr; } .product-library-hero__cover { max-width: 20rem; } .product-resource-file { grid-template-columns: auto minmax(0, 1fr); } .product-resource-file .button { grid-column: 1 / -1; width: 100%; } }

.dashboard-course {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	overflow: hidden;
	background: var(--gc-color-surface-alt);
	border: 1px solid var(--gc-color-border);
	border-radius: var(--gc-radius);
}

.dashboard-course__image {
	overflow: hidden;
	aspect-ratio: 16 / 9;
	background: #0b0e17;
}

.dashboard-course__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.dashboard-course__body {
	padding: 1.5rem;
}

.dashboard-course__body h3 {
	margin-block: 0.8rem;
}

.dashboard-course__body h3 a {
	color: var(--gc-color-text);
	text-decoration: none;
}

.dashboard-course__body .button {
	width: 100%;
	margin-top: 1rem;
}

.dashboard-course-grid[data-catalog-view-scope="account-formations"] .dashboard-course__body {
	padding: 0.85rem;
}

.dashboard-course-grid[data-catalog-view-scope="account-formations"] .dashboard-course__body h3 {
	margin-block: 0.3rem 0.65rem;
	font-size: 0.9rem;
	line-height: 1.3;
}

.dashboard-course-grid[data-catalog-view-scope="account-formations"] .formation-progress {
	margin-block: 0.65rem;
}

.dashboard-course-grid[data-catalog-view-scope="account-formations"] .formation-progress__label {
	margin-bottom: 0.3rem;
	font-size: 0.7rem;
}

.dashboard-course-grid[data-catalog-view-scope="account-formations"] .formation-progress__track {
	height: 0.4rem;
}

.dashboard-course-grid[data-catalog-view-scope="account-formations"] .dashboard-course__body .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 0.55rem;
	padding: 0.55rem 0.7rem;
	font-size: 0.76rem;
	line-height: 1.2;
	text-align: center;
}

.dashboard-product-grid[data-catalog-view="list"],
.dashboard-course-grid[data-catalog-view="list"] {
	grid-template-columns: minmax(0, 1fr);
	gap: 0.75rem;
}

.dashboard-product-grid[data-catalog-view="list"] .dashboard-product,
.dashboard-course-grid[data-catalog-view="list"] .dashboard-course {
	display: grid;
	grid-template-columns: clamp(8rem, 18vw, 12rem) minmax(0, 1fr);
	min-height: 8rem;
}

.dashboard-product-grid[data-catalog-view="list"] .dashboard-product__image,
.dashboard-course-grid[data-catalog-view="list"] .dashboard-course__image {
	height: 100%;
	min-height: 8rem;
	aspect-ratio: auto;
}

.dashboard-product-grid[data-catalog-view="list"] .dashboard-product__body,
.dashboard-course-grid[data-catalog-view="list"] .dashboard-course__body {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 1rem;
	padding: 1rem 1.25rem;
}

.dashboard-product-grid[data-catalog-view="list"] .dashboard-product__body h3,
.dashboard-course-grid[data-catalog-view="list"] .dashboard-course__body h3 {
	margin: 0;
}

.dashboard-product-grid[data-catalog-view="list"] .dashboard-product__body .button,
.dashboard-course-grid[data-catalog-view="list"] .dashboard-course__body .button {
	width: auto;
	min-width: 9rem;
	margin: 0;
}

.dashboard-course-grid[data-catalog-view="list"] .formation-progress {
	grid-column: 1 / 2;
}

.dashboard-course-grid[data-catalog-view="list"] .dashboard-course__body .button {
	grid-column: 2;
	grid-row: 1 / span 2;
}

.dashboard-course-grid[data-catalog-view="list"][data-catalog-view-scope="account-formations"] .dashboard-course {
	grid-template-columns: clamp(6rem, 10vw, 8rem) minmax(0, 1fr);
	min-height: 6rem;
}

.dashboard-course-grid[data-catalog-view="list"][data-catalog-view-scope="account-formations"] .dashboard-course__image {
	min-height: 6rem;
}

.dashboard-course-grid[data-catalog-view="list"][data-catalog-view-scope="account-formations"] .dashboard-course__body {
	gap: 0.65rem;
	padding: 0.65rem 0.8rem;
}

.dashboard-course-grid[data-catalog-view="list"][data-catalog-view-scope="account-formations"] .dashboard-course__body .button {
	width: 10.5rem;
	min-width: 10.5rem;
}

.dashboard-product-grid[data-catalog-view="list"][data-catalog-view-scope^="account-"] .dashboard-product {
	grid-template-columns: clamp(6rem, 10vw, 8rem) minmax(0, 1fr);
	min-height: 6rem;
}

.dashboard-product-grid[data-catalog-view="list"][data-catalog-view-scope^="account-"] .dashboard-product__image {
	min-height: 6rem;
}

.dashboard-product-grid[data-catalog-view="list"][data-catalog-view-scope^="account-"] .dashboard-product__body {
	gap: 0.65rem;
	padding: 0.65rem 0.8rem;
}

.dashboard-product-grid[data-catalog-view="list"][data-catalog-view-scope^="account-"] .dashboard-product__body .button {
	width: 10.5rem;
	min-width: 10.5rem;
}

.dashboard-empty {
	padding: clamp(2.5rem, 6vw, 4rem);
	background: var(--gc-color-surface-alt);
	border: 1px dashed #414963;
	border-radius: var(--gc-radius);
	text-align: center;
}

.dashboard-empty > span {
	display: grid;
	width: 3.5rem;
	height: 3.5rem;
	margin: 0 auto 1.25rem;
	place-items: center;
	background: rgb(159 31 99 / 0.15);
	border-radius: 0.8rem;
	color: var(--gc-color-primary-light);
	font: 800 0.9rem/1 ui-monospace, SFMono-Regular, Consolas, monospace;
}

.dashboard-empty p {
	color: var(--gc-color-muted);
}

.dashboard-columns {
	display: grid;
	grid-template-columns: 1.2fr 0.8fr;
	gap: 1.5rem;
	margin-bottom: 5rem;
}

.dashboard-panel {
	padding: 1.75rem;
	background: var(--gc-color-surface);
	border: 1px solid var(--gc-color-border);
	border-radius: var(--gc-radius);
}

.dashboard-panel h2 {
	font-size: 1.45rem;
}

.dashboard-activity,
.dashboard-links,
.dashboard-finished {
	margin: 0;
	padding: 0;
	list-style: none;
}

.dashboard-activity {
	display: grid;
}

.dashboard-activity li {
	display: flex;
	align-items: center;
	gap: 0.9rem;
	padding-block: 0.9rem;
	border-top: 1px solid var(--gc-color-border);
}

.dashboard-activity li > span {
	display: grid;
	width: 2rem;
	height: 2rem;
	place-items: center;
	background: rgb(52 211 153 / 0.12);
	border-radius: 50%;
	color: #6ee7b7;
	font-size: 0.75rem;
}

.dashboard-activity li > div {
	display: grid;
}

.dashboard-activity a {
	color: var(--gc-color-text);
	font-weight: 700;
	text-decoration: none;
}

.dashboard-activity small,
.dashboard-panel__empty {
	color: var(--gc-color-muted);
}

.dashboard-links {
	display: grid;
	gap: 0.75rem;
}

.dashboard-links a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1rem;
	background: var(--gc-color-surface-alt);
	border: 1px solid var(--gc-color-border);
	border-radius: 0.7rem;
	color: var(--gc-color-text);
	text-decoration: none;
}

.dashboard-links a:hover {
	border-color: var(--gc-color-primary-light);
}

.dashboard-finished {
	display: grid;
	gap: 0.75rem;
}

.dashboard-finished li {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 1rem;
	background: rgb(52 211 153 / 0.07);
	border: 1px solid rgb(110 231 183 / 0.2);
	border-radius: 0.75rem;
}

.dashboard-finished li span {
	color: #6ee7b7;
}

.dashboard-finished a {
	color: var(--gc-color-text);
	font-weight: 700;
	text-decoration: none;
}

@media (max-width: 80rem) {
	.dashboard-course-grid,
	.dashboard-product-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 64rem) {
	.dashboard-course-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.dashboard-product-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 48rem) {
	.dashboard-hero__grid,
	.dashboard-columns {
		grid-template-columns: 1fr;
	}

	.dashboard-membership {
		min-width: 0;
	}

	.dashboard-stats {
		grid-template-columns: 1fr;
		margin-top: -3.5rem;
	}

	.dashboard-stats > div + div {
		border-top: 1px solid var(--gc-color-border);
		border-left: 0;
	}
}

@media (max-width: 38rem) {
	.dashboard-course-grid,
	.dashboard-product-grid {
		grid-template-columns: 1fr;
	}
	.dashboard-profile {
		align-items: flex-start;
		flex-direction: column;
	}

	.dashboard-product-grid[data-catalog-view="list"] .dashboard-product,
	.dashboard-course-grid[data-catalog-view="list"] .dashboard-course {
		grid-template-columns: 1fr;
	}

	.dashboard-product-grid[data-catalog-view="list"][data-catalog-view-scope^="account-"] .dashboard-product,
	.dashboard-course-grid[data-catalog-view="list"][data-catalog-view-scope="account-formations"] .dashboard-course {
		grid-template-columns: clamp(6rem, 28vw, 8rem) minmax(0, 1fr);
	}

	.dashboard-product-grid[data-catalog-view="list"][data-catalog-view-scope^="account-"] .dashboard-product__image,
	.dashboard-course-grid[data-catalog-view="list"][data-catalog-view-scope="account-formations"] .dashboard-course__image {
		height: 100%;
		min-height: 7rem;
		aspect-ratio: auto;
	}

	.dashboard-product-grid[data-catalog-view="list"] .dashboard-product__image,
	.dashboard-course-grid[data-catalog-view="list"] .dashboard-course__image {
		aspect-ratio: 16 / 9;
	}

	.dashboard-product-grid[data-catalog-view="list"] .dashboard-product__body,
	.dashboard-course-grid[data-catalog-view="list"] .dashboard-course__body {
		min-width: 0;
		grid-template-columns: 1fr;
	}

	.dashboard-product-grid[data-catalog-view="list"] .dashboard-product__body h3,
	.dashboard-course-grid[data-catalog-view="list"] .dashboard-course__body h3 {
		overflow-wrap: anywhere;
	}

	.dashboard-course-grid[data-catalog-view="list"] .formation-progress,
	.dashboard-course-grid[data-catalog-view="list"] .dashboard-course__body .button {
		grid-column: 1;
		grid-row: auto;
	}

	.dashboard-product-grid[data-catalog-view="list"] .dashboard-product__body .button,
	.dashboard-course-grid[data-catalog-view="list"] .dashboard-course__body .button {
		width: 100%;
	}

	.dashboard-course-grid[data-catalog-view="list"][data-catalog-view-scope="account-formations"] .dashboard-course__body .button {
		width: 100%;
		min-width: 0;
	}

	.dashboard-product-grid[data-catalog-view="list"][data-catalog-view-scope^="account-"] .dashboard-product__body .button {
		width: 100%;
		min-width: 0;
	}
}

@media (max-width: 24rem) {
	.dashboard-product-grid[data-catalog-view="list"][data-catalog-view-scope^="account-"] .dashboard-product,
	.dashboard-course-grid[data-catalog-view="list"][data-catalog-view-scope="account-formations"] .dashboard-course {
		grid-template-columns: minmax(0, 1fr);
	}

	.dashboard-product-grid[data-catalog-view="list"][data-catalog-view-scope^="account-"] .dashboard-product__image,
	.dashboard-course-grid[data-catalog-view="list"][data-catalog-view-scope="account-formations"] .dashboard-course__image {
		aspect-ratio: 16 / 9;
	}
}

/* Authentification */
.auth-page {
	min-height: calc(100vh - 12rem);
	min-height: calc(100svh - 12rem);
	padding-block: clamp(3rem, 8vw, 6rem);
	background: radial-gradient(circle at 15% 20%, rgb(159 31 99 / 0.16), transparent 30rem), var(--gc-color-background);
}

.auth-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.75fr);
	align-items: stretch;
	max-width: 64rem;
}

.auth-card,
.auth-benefits { padding: clamp(2rem, 5vw, 3.5rem); }
.auth-card {
	background: var(--gc-color-surface);
	border: 1px solid var(--gc-color-border);
	border-radius: var(--gc-radius) 0 0 var(--gc-radius);
}
.auth-card h1 { margin-bottom: 0.75rem; font-size: clamp(2rem, 5vw, 3rem); }
.auth-intro { margin-bottom: 2rem; color: var(--gc-color-muted); }
.auth-form { display: grid; gap: 1rem; }
.auth-field { display: grid; gap: 0.45rem; margin: 0; }
.auth-field label,
.auth-check label { font-weight: 700; }
.auth-field input {
	width: 100%;
	padding: 0.85rem 1rem;
	background: var(--gc-color-surface-alt);
	border: 1px solid var(--gc-color-border);
	border-radius: 0.65rem;
	color: var(--gc-color-text);
	font: inherit;
}
.auth-field input:focus {
	border-color: var(--gc-color-primary-light);
	outline: 3px solid rgb(159 31 99 / 0.2);
}
.auth-field small { color: var(--gc-color-muted); }

.gc-password-policy {
	display: grid;
	gap: 0.55rem;
	margin: 0.75rem 0 1rem;
	color: var(--gc-color-muted);
}
.gc-password-policy p { margin: 0; }
.gc-password-policy:empty { display: none; }
.gc-password-policy__hint {
	display: block;
	margin-top: 0.45rem;
	font-size: 0.76rem;
	line-height: 1.45;
	opacity: 0.72;
}
.gc-password-meter {
	display: block;
	width: 100%;
}
.gc-password-meter__bar {
	display: block;
	height: 0.35rem;
	overflow: hidden;
	border-radius: 999px;
	background: rgba(148, 163, 184, 0.2);
}
.gc-password-meter__bar span {
	display: block;
	width: 0;
	height: 100%;
	border-radius: inherit;
	background: var(--gc-color-muted);
	transition: width 160ms ease, background-color 160ms ease;
}
.gc-password-meter[data-strength="weak"] .gc-password-meter__bar span { width: 34%; background: #ef4444; }
.gc-password-meter[data-strength="medium"] .gc-password-meter__bar span { width: 68%; background: #f59e0b; }
.gc-password-meter[data-strength="strong"] .gc-password-meter__bar span { width: 100%; background: #22c55e; }
.auth-check { display: flex; align-items: center; gap: 0.55rem; margin: 0.25rem 0; }
.auth-submit { width: 100%; margin-top: 0.5rem; }
.auth-secondary {
	display: grid;
	gap: 0.75rem;
	margin-top: 1.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--gc-color-border);
}
.auth-secondary p { margin: 0; }
.auth-secondary a { color: var(--gc-color-primary-light); font-weight: 700; }
.cgu-acceptance-page { padding-block: clamp(2.5rem, 6vw, 5rem); }
.cgu-acceptance-layout { width: min(62rem, calc(100% - 2rem)); }
.cgu-acceptance-card { position: relative; overflow: hidden; padding: clamp(1.5rem, 4vw, 3rem); border-radius: 1.25rem; box-shadow: 0 1.75rem 5rem rgb(0 0 0 / 0.22); }
.cgu-acceptance-card::before { position: absolute; inset: 0 0 auto; height: 0.22rem; background: linear-gradient(90deg, var(--gc-color-accent), var(--gc-color-primary-light)); content: ""; }
.cgu-acceptance-header { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2rem; align-items: start; margin-bottom: 2rem; }
.cgu-acceptance-header h1 { max-width: 18ch; margin-bottom: 0.75rem; font-size: clamp(2.25rem, 5vw, 3.65rem); line-height: 1.02; }
.cgu-acceptance-header .auth-intro { max-width: 38rem; margin: 0; font-size: 1.05rem; }
.cgu-acceptance-badge { display: grid; min-width: 9rem; padding: 1rem 1.15rem; background: linear-gradient(145deg, rgb(37 170 225 / 0.13), rgb(159 31 99 / 0.13)); border: 1px solid var(--gc-color-border); border-radius: 0.9rem; }
.cgu-acceptance-badge span { color: var(--gc-color-accent); font-size: 0.72rem; font-weight: 850; letter-spacing: 0.12em; }
.cgu-acceptance-badge strong { margin-top: 0.25rem; font: 800 0.9rem/1.3 ui-monospace, SFMono-Regular, Consolas, monospace; }
.cgu-acceptance-summary { display: grid; gap: 0; margin-bottom: 1.5rem; overflow: hidden; background: var(--gc-color-surface-alt); border: 1px solid var(--gc-color-border); border-radius: 1rem; }
.cgu-acceptance-summary h2,
.cgu-acceptance-summary p { margin: 0; }
.cgu-acceptance-meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cgu-acceptance-meta p { display: grid; gap: 0.25rem; padding: 1rem 1.25rem; }
.cgu-acceptance-meta p + p { border-left: 1px solid var(--gc-color-border); }
.cgu-acceptance-meta span { color: var(--gc-color-muted); font-size: 0.78rem; }
.cgu-acceptance-meta strong { font-size: 0.95rem; }
.cgu-acceptance-changes { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0.9rem; padding: 1.25rem; border-top: 1px solid var(--gc-color-border); }
.cgu-acceptance-changes__icon { display: grid; width: 2.25rem; height: 2.25rem; place-items: center; background: rgb(37 170 225 / 0.12); border-radius: 0.65rem; color: var(--gc-color-accent); font-weight: 900; }
.cgu-acceptance-changes h2 { margin-bottom: 0.4rem; font-size: 1rem; }
.cgu-acceptance-changes p { color: var(--gc-color-muted); }
.cgu-acceptance-document-link { display: flex; justify-content: space-between; gap: 1rem; padding: 1rem 1.25rem; background: rgb(159 31 99 / 0.08); border-top: 1px solid var(--gc-color-border); color: var(--gc-color-primary-light); font-weight: 800; text-decoration: none; }
.cgu-acceptance-document-link:hover { background: rgb(159 31 99 / 0.14); color: var(--gc-color-text); }
.cgu-acceptance-form .auth-field--consent label { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0.65rem; align-items: start; }
.cgu-acceptance-form .auth-field--consent input { width: 1.15rem; height: 1.15rem; margin-top: 0.2rem; accent-color: var(--gc-color-primary-light); }
.cgu-acceptance-consent { padding: 1.1rem 1.2rem; background: rgb(255 255 255 / 0.025); border: 1px solid var(--gc-color-border); border-radius: 0.85rem; }
.cgu-acceptance-consent small { margin-left: 1.8rem; color: var(--gc-color-muted); }
.cgu-acceptance-alternatives { grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 1rem 2rem; }
.cgu-acceptance-alternatives > div { display: grid; gap: 0.25rem; }
.cgu-acceptance-alternatives small { color: var(--gc-color-muted); }
.cgu-acceptance-alternatives p { display: flex; flex-wrap: wrap; gap: 0.6rem 1rem; }
.cgu-update-notice { position: sticky; top: calc(var(--gc-admin-bar-height) + var(--gc-header-height)); z-index: 19; background: linear-gradient(105deg, #063c52, #18213d 48%, #681344); border-top: 2px solid #38d9f5; border-bottom: 2px solid #f04a9d; box-shadow: 0 0.9rem 2.4rem rgb(0 0 0 / 0.42), inset 0 1px rgb(255 255 255 / 0.08); backdrop-filter: blur(1rem); }
.cgu-update-notice[hidden] { display: none; }
.cgu-update-notice__inner { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 1rem 1.15rem; align-items: center; padding-block: 1rem; }
.cgu-update-notice__icon { display: grid; width: 2.5rem; height: 2.5rem; place-items: center; background: #38d9f5; border: 2px solid #dffaff; border-radius: 50%; box-shadow: 0 0 0 0.32rem rgb(56 217 245 / 0.18); color: #062b3a; font-weight: 950; }
.cgu-update-notice__content { display: grid; gap: 0.25rem; }
.cgu-update-notice__content strong { color: #fff; font-size: 1.08rem; line-height: 1.25; text-shadow: 0 1px 0 rgb(0 0 0 / 0.32); }
.cgu-update-notice__content span { color: #f1f5fb; font-size: 0.94rem; line-height: 1.4; }
.cgu-update-notice__actions { display: flex; flex-wrap: wrap; gap: 0.65rem; justify-content: flex-end; }
.cgu-update-notice__actions .button { min-height: 2.7rem; }
.cgu-update-notice__actions .button--primary { background: #fff; border-color: #fff; box-shadow: 0 0.7rem 1.6rem rgb(0 0 0 / 0.34); color: #741245; font-weight: 900; }
.cgu-update-notice__actions .button--primary:hover { transform: translateY(-1px); background: #ffe6f2; border-color: #ffe6f2; color: #5a0d35; }
.cgu-update-notice__actions .button--ghost { background: rgb(4 9 20 / 0.34); border-color: rgb(255 255 255 / 0.62); color: #fff; }
.cgu-update-notice__actions .button--ghost:hover { background: rgb(255 255 255 / 0.14); border-color: #fff; }
.cgu-update-notice__actions .button:focus-visible { outline: 3px solid #67d9f5; outline-offset: 0.2rem; }
.auth-message { margin-bottom: 1.25rem; padding: 0.9rem 1rem; border-radius: 0.65rem; }
.auth-message--error {
	background: rgb(239 68 68 / 0.12);
	border: 1px solid rgb(248 113 113 / 0.35);
	color: #fecaca;
}
.auth-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.auth-benefits {
	display: flex;
	justify-content: center;
	flex-direction: column;
	background: linear-gradient(145deg, var(--gc-color-primary-dark), var(--gc-color-primary));
	border-radius: 0 var(--gc-radius) var(--gc-radius) 0;
}
.auth-benefits__icon {
	display: grid;
	width: 4rem;
	height: 4rem;
	margin-bottom: 1.5rem;
	place-items: center;
	background: rgb(255 255 255 / 0.12);
	border-radius: 1rem;
	font: 800 1rem/1 ui-monospace, SFMono-Regular, Consolas, monospace;
}
.auth-benefits h2 { font-size: clamp(1.6rem, 3vw, 2.2rem); }
.auth-benefits ul { display: grid; gap: 1rem; margin: 1.5rem 0 0; padding: 0; list-style: none; }
.auth-benefits li { display: flex; gap: 0.75rem; }
.auth-benefits li::before { content: "✓"; color: #a7f3d0; font-weight: 900; }

@media (max-width: 48rem) {
	.auth-layout { grid-template-columns: 1fr; }
	.auth-card { border-radius: var(--gc-radius) var(--gc-radius) 0 0; }
	.auth-benefits { border-radius: 0 0 var(--gc-radius) var(--gc-radius); }
	.cgu-acceptance-card { border-radius: var(--gc-radius); }
	.cgu-acceptance-header { grid-template-columns: 1fr; gap: 1.25rem; }
	.cgu-acceptance-badge { justify-self: start; }
	.cgu-acceptance-meta { grid-template-columns: 1fr; }
	.cgu-acceptance-meta p + p { border-top: 1px solid var(--gc-color-border); border-left: 0; }
	.cgu-acceptance-alternatives { grid-template-columns: 1fr; }
	.cgu-update-notice__inner { grid-template-columns: auto minmax(0, 1fr); }
	.cgu-update-notice__actions { grid-column: 1 / -1; justify-content: stretch; }
	.cgu-update-notice__actions .button { flex: 1 1 11rem; }
}

/* Contact */
.contact-page { padding-bottom: clamp(4rem, 8vw, 7rem); }
.contact-hero { padding-block: clamp(3.5rem, 8vw, 6rem) clamp(2.5rem, 6vw, 4rem); background: radial-gradient(circle at 82% 18%, rgb(37 170 225 / 0.14), transparent 27rem); }
.contact-hero h1 { max-width: 15ch; margin-block: 0.35rem 1rem; font-size: clamp(2.8rem, 7vw, 5rem); }
.contact-hero p:last-child { max-width: 45rem; margin: 0; color: var(--gc-color-muted); font-size: clamp(1rem, 2vw, 1.15rem); }
.contact-layout { display: grid; width: min(52rem, calc(100% - 2rem)); margin-inline: auto; }
.contact-card { padding: clamp(1.3rem, 4vw, 2rem); background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: var(--gc-radius); }
.contact-card > h2 { margin-top: 0; }
.contact-feedback { scroll-margin-top: calc(7rem + var(--gc-admin-bar-height) + var(--gc-cgu-notice-height)); font-weight: 750; line-height: 1.55; box-shadow: 0 0.85rem 2rem rgb(0 0 0 / 0.18); }
.contact-feedback:focus { outline: 3px solid var(--gc-color-accent); outline-offset: 0.2rem; }
.contact-form { display: grid; gap: 1rem; }
.contact-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.contact-field { display: grid; gap: 0.45rem; margin: 0; }
.contact-field label { color: var(--gc-color-text); font-size: 0.86rem; font-weight: 750; }
.contact-field label span { color: var(--gc-color-primary-light); }
.contact-field input,
.contact-field select,
.contact-field textarea { width: 100%; min-height: 3rem; padding: 0.75rem 0.85rem; background: rgb(9 11 18 / 0.78); border: 1px solid var(--gc-color-border); border-radius: 0.65rem; color: var(--gc-color-text); }
.contact-field textarea { min-height: 11rem; resize: vertical; }
.contact-field input:focus,
.contact-field select:focus,
.contact-field textarea:focus { border-color: var(--gc-color-accent); box-shadow: 0 0 0 0.2rem rgb(37 170 225 / 0.12); outline: none; }
.contact-field small { color: var(--gc-color-muted); }
.contact-consent { display: flex; align-items: flex-start; gap: 0.65rem; color: var(--gc-color-muted); font-size: 0.82rem; line-height: 1.55; }
.contact-consent input { margin-top: 0.25rem; flex: 0 0 auto; accent-color: var(--gc-color-primary); }
.contact-consent a { color: var(--gc-color-primary-light); }
.contact-form > .button { justify-self: start; min-width: 12rem; }
.contact-card .auth-message ul { margin: 0; padding-left: 1.1rem; }
@media (max-width: 38rem) {
	.contact-form__grid { grid-template-columns: 1fr; }
	.contact-form > .button { width: 100%; }
}

/* Fondateur */
.founder-page { overflow: hidden; padding-bottom: clamp(3rem, 6vw, 5rem); }
.founder-hero { padding-block: clamp(2.5rem, 6vw, 4.5rem) clamp(2rem, 4vw, 3rem); background: radial-gradient(circle at 82% 14%, rgb(159 31 99 / 0.2), transparent 27rem), radial-gradient(circle at 12% 28%, rgb(37 170 225 / 0.12), transparent 24rem); }
.founder-hero__grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(18rem, 0.75fr); gap: 1.25rem; align-items: stretch; }
.founder-hero__content,
.founder-hero__portrait { overflow: hidden; margin: 0; border: 1px solid var(--gc-color-border); border-radius: var(--gc-radius); box-shadow: var(--gc-shadow); }
.founder-hero__content { display: flex; justify-content: center; flex-direction: column; padding: clamp(1.6rem, 5vw, 3.5rem); background: linear-gradient(145deg, rgb(159 31 99 / 0.14), var(--gc-color-surface)); }
.founder-hero__content h1 { max-width: 15ch; margin-block: 0.45rem 1rem; font-size: clamp(2.65rem, 6vw, 4.8rem); }
.founder-hero__lead { margin: 0 0 0.75rem; color: var(--gc-color-text); font-size: clamp(1.05rem, 2vw, 1.25rem); font-weight: 750; }
.founder-hero__content > p:last-child { max-width: 42rem; margin-bottom: 0; color: var(--gc-color-muted); }
.founder-hero__portrait { min-height: 32rem; background: var(--gc-color-surface); }
.founder-hero__portrait img { width: 100%; height: 100%; object-fit: cover; object-position: center 24%; }
.founder-quote { margin-top: 1.25rem; padding: clamp(1.5rem, 4vw, 2.25rem); background: linear-gradient(120deg, var(--gc-color-primary-dark), #14264a); border: 1px solid rgb(224 122 176 / 0.28); border-radius: var(--gc-radius); box-shadow: var(--gc-shadow); text-align: center; }
.founder-quote p { margin: 0 0 0.5rem; color: #fff; font-size: clamp(1.25rem, 3vw, 1.8rem); font-weight: 850; }
.founder-quote cite { color: var(--gc-color-muted); font-size: 0.85rem; font-style: normal; }
.founder-section { padding-block: clamp(2rem, 4vw, 3.5rem); }
.founder-section--tinted { background: linear-gradient(180deg, transparent, rgb(159 31 99 / 0.055), transparent); }
.founder-section__header { margin-bottom: clamp(1.25rem, 3vw, 2rem); }
.founder-section__header .eyebrow { margin-bottom: 0.35rem; }
.founder-section__header h2 { margin: 0; font-size: clamp(2rem, 5vw, 3.25rem); }
.founder-story { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(17rem, 0.7fr); gap: clamp(1.25rem, 4vw, 2.5rem); align-items: stretch; }
.founder-story__copy,
.founder-legacy { padding: clamp(1.4rem, 4vw, 2.25rem); background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: var(--gc-radius); }
.founder-story__copy p,
.founder-legacy p { color: var(--gc-color-muted); line-height: 1.75; }
.founder-story__copy p:first-child,
.founder-legacy p:first-child { margin-top: 0; }
.founder-story__copy p:last-child,
.founder-legacy p:last-child { margin-bottom: 0; }
.founder-timeline { position: relative; display: grid; gap: 0.75rem; margin: 0; padding: 0 0 0 1.7rem; list-style: none; }
.founder-timeline::before { position: absolute; top: 0.75rem; bottom: 0.75rem; left: 0.37rem; width: 1px; background: linear-gradient(var(--gc-color-primary-light), var(--gc-color-accent)); content: ""; opacity: 0.55; }
.founder-timeline li { position: relative; display: grid; gap: 0.3rem; padding: 1rem 1.1rem; background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: 0.8rem; }
.founder-timeline li::before { position: absolute; top: 1.15rem; left: -1.66rem; width: 0.75rem; height: 0.75rem; background: var(--gc-color-background); border: 3px solid var(--gc-color-primary-light); border-radius: 50%; content: ""; }
.founder-timeline strong { color: var(--gc-color-primary-light); font-size: 0.85rem; }
.founder-timeline span { color: var(--gc-color-muted); font-size: 0.86rem; line-height: 1.5; }
.founder-principles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.founder-principles article { padding: clamp(1.3rem, 3vw, 1.75rem); background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: var(--gc-radius); transition: border-color 180ms ease, transform 180ms ease; }
.founder-principles article:hover { border-color: rgb(224 122 176 / 0.5); transform: translateY(-0.2rem); }
.founder-principles article > span { display: grid; width: 2.5rem; height: 2.5rem; margin-bottom: 1rem; place-items: center; background: rgb(159 31 99 / 0.15); border: 1px solid rgb(224 122 176 / 0.25); border-radius: 0.7rem; color: var(--gc-color-primary-light); font: 850 0.75rem/1 ui-monospace, SFMono-Regular, Consolas, monospace; }
.founder-principles h3 { margin: 0 0 0.75rem; font-size: 1.15rem; }
.founder-principles p { margin: 0; color: var(--gc-color-muted); font-size: 0.9rem; line-height: 1.7; }
.founder-legacy { background: linear-gradient(145deg, rgb(37 170 225 / 0.07), var(--gc-color-surface)); }
.founder-testimonials { width: 100%; background: linear-gradient(145deg, rgb(159 31 99 / 0.08), var(--gc-color-surface)); border: 1px solid var(--gc-color-border); border-radius: var(--gc-radius); box-shadow: var(--gc-shadow); outline: none; }
.founder-testimonials:focus-visible { border-color: var(--gc-color-primary-light); box-shadow: 0 0 0 0.2rem rgb(159 31 99 / 0.18), var(--gc-shadow); }
.founder-testimonials__viewport { position: relative; height: clamp(34rem, 66vh, 46rem); overflow: hidden; border-radius: inherit; }
.founder-testimonials__viewport::before,
.founder-testimonials__viewport::after { position: absolute; right: 0; left: 0; z-index: 2; height: clamp(5rem, 12vw, 8rem); content: ""; pointer-events: none; backdrop-filter: blur(4px); }
.founder-testimonials__viewport::before { top: -1px; background: linear-gradient(180deg, var(--gc-color-surface) 0%, rgb(17 21 34 / 0.78) 42%, transparent 100%); -webkit-mask-image: linear-gradient(180deg, #000 0%, rgb(0 0 0 / 0.82) 42%, transparent 100%); mask-image: linear-gradient(180deg, #000 0%, rgb(0 0 0 / 0.82) 42%, transparent 100%); }
.founder-testimonials__viewport::after { bottom: -1px; background: linear-gradient(0deg, var(--gc-color-surface) 0%, rgb(17 21 34 / 0.78) 42%, transparent 100%); -webkit-mask-image: linear-gradient(0deg, #000 0%, rgb(0 0 0 / 0.82) 42%, transparent 100%); mask-image: linear-gradient(0deg, #000 0%, rgb(0 0 0 / 0.82) 42%, transparent 100%); }
.founder-testimonials__track { --founder-testimonials-distance: 0px; --founder-testimonials-duration: 120s; animation: founder-testimonials-scroll var(--founder-testimonials-duration) linear infinite; will-change: transform; }
.founder-testimonials:hover .founder-testimonials__track,
.founder-testimonials:focus .founder-testimonials__track,
.founder-testimonials:focus-within .founder-testimonials__track { animation-play-state: paused; }
.founder-testimonials__group { display: grid; gap: clamp(2rem, 5vw, 3.5rem); padding: clamp(4rem, 8vw, 6rem) clamp(1.4rem, 7vw, 6rem); }
.founder-testimonials blockquote { position: relative; max-width: 50rem; margin: 0 auto; padding: 0 0 clamp(1.5rem, 4vw, 2.5rem); border-bottom: 1px solid rgb(255 255 255 / 0.07); }
.founder-testimonials blockquote::before { position: absolute; top: -1.5rem; left: 50%; color: var(--gc-color-primary-light); content: "“"; font: 900 2.5rem/1 Georgia, serif; opacity: 0.35; transform: translateX(-50%); }
.founder-testimonials blockquote p { margin: 0 0 1rem; color: var(--gc-color-muted); font-size: clamp(0.95rem, 2vw, 1.05rem); line-height: 1.75; }
.founder-testimonials cite { color: var(--gc-color-primary-light); font-size: 0.85rem; font-style: normal; font-weight: 800; }
@keyframes founder-testimonials-scroll { to { transform: translateY(calc(-1 * var(--founder-testimonials-distance))); } }
.founder-cta { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: clamp(1.5rem, 5vw, 2.75rem); background: linear-gradient(135deg, var(--gc-color-primary-dark), #12264c); border: 1px solid rgb(224 122 176 / 0.3); border-radius: var(--gc-radius); box-shadow: var(--gc-shadow); }
.founder-cta h2 { max-width: 24ch; margin-block: 0.35rem 0.7rem; color: #fff; font-size: clamp(1.8rem, 4vw, 2.7rem); }
.founder-cta p:not(.eyebrow) { max-width: 40rem; margin: 0; color: #cbd5e1; }
.founder-cta__actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; gap: 0.75rem; }

@media (max-width: 64rem) {
	.founder-hero__grid,
	.founder-story { grid-template-columns: 1fr; align-items: start; }
	.founder-hero__portrait { min-height: 30rem; }
	.founder-hero__portrait img { object-position: center 28%; }
	.founder-principles { grid-template-columns: 1fr; }
	.founder-cta { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 38rem) {
	.founder-hero__portrait { min-height: 27rem; }
	.founder-hero__content h1 { font-size: clamp(2.35rem, 12vw, 3.2rem); }
	.founder-testimonials__viewport { height: 38rem; }
	.founder-testimonials__group { padding-inline: 1.2rem; }
	.founder-cta__actions,
	.founder-cta__actions .button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
	.founder-testimonials__viewport { overflow-y: auto; }
	.founder-testimonials__track { animation: none; transform: none; }
	.founder-testimonials__group[aria-hidden="true"] { display: none; }
}

/* Profil membre */
.dashboard-membership__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1rem;
}
.dashboard-logout,
.profile-logout { color: #fca5a5 !important; }
.auth-message--success {
	background: rgb(16 185 129 / 0.12);
	border: 1px solid rgb(52 211 153 / 0.35);
	color: #a7f3d0;
}
.registration-success-notice { padding-top: clamp(1rem, 2vw, 1.5rem); }
.registration-success-notice .auth-message { margin: 0; }
.profile-layout { max-width: 52rem; }
.profile-summary {
	display: flex;
	align-items: center;
	gap: 1.25rem;
	margin-bottom: 2rem;
}
.profile-summary__avatar {
	width: 6rem;
	height: 6rem;
	border: 3px solid var(--gc-color-primary-light);
	border-radius: 50%;
}
.profile-summary h1 { margin: 0.2rem 0; }
.profile-summary p { margin: 0; color: var(--gc-color-muted); }
.profile-card { border-radius: var(--gc-radius); }
.profile-card > h2 { margin-bottom: 1.5rem; }
.profile-password {
	display: grid;
	gap: 1rem;
	margin: 0.75rem 0;
	padding: 1.25rem;
	border: 1px solid var(--gc-color-border);
	border-radius: 0.75rem;
}
.profile-password legend { padding-inline: 0.5rem; font-weight: 800; }
.profile-password > p { margin: 0; color: var(--gc-color-muted); }
.profile-actions {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	margin-top: 1.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--gc-color-border);
}
.profile-actions a { color: var(--gc-color-primary-light); font-weight: 700; }
.auth-field input[readonly] { cursor: not-allowed; opacity: 0.7; }
@media (max-width: 38rem) {
	.profile-summary { align-items: flex-start; flex-direction: column; }
	.profile-actions { align-items: flex-start; flex-direction: column; }
	.account-avatar { grid-template-columns: 1fr; align-items: start; }
	.account-avatar__preview { width: 4.75rem; height: 4.75rem; }
	.account-avatar__image { width: 4.75rem; height: 4.75rem; }
	.account-avatar__file { align-items: flex-start; flex-direction: column; }
	.gc-woocommerce-account .account-avatar__form { align-items: flex-start; flex-direction: column; }
}

/* Panier WooCommerce */
.woocommerce-cart .standard-page { padding-block: clamp(3rem, 7vw, 6rem); }
.woocommerce-cart .standard-page > article { width: 100%; }
.woocommerce-cart .page-header { margin-bottom: clamp(1.75rem, 4vw, 3rem); }
.woocommerce-cart .page-header::before { display: block; margin-bottom: 0.7rem; color: var(--gc-color-accent); content: "VOTRE COMMANDE"; font-size: 0.78rem; font-weight: 800; letter-spacing: 0.18em; }
.woocommerce-cart .page-header h1 { max-width: 12ch; margin: 0; font-size: clamp(2.8rem, 7vw, 5rem); }
.woocommerce-cart .woocommerce { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(19rem, 0.75fr); gap: 1.5rem; align-items: start; }
.woocommerce-cart .woocommerce-notices-wrapper,
.woocommerce-cart .woocommerce-cart-form + .cart-collaterals:empty { grid-column: 1 / -1; }
.woocommerce-cart .woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-cart .woocommerce-message,
.woocommerce-cart .woocommerce-info,
.woocommerce-cart .woocommerce-error { grid-column: 1 / -1; margin: 0 0 0.5rem; padding: 1rem 1.25rem 1rem 3.2rem; background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-top-color: var(--gc-color-accent); border-radius: 0.8rem; color: var(--gc-color-text); }
.woocommerce-cart .wc-empty-cart-message,
.woocommerce-cart .cart-empty.woocommerce-info { grid-column: 1 / -1; width: 100%; }
.woocommerce-cart .woocommerce-message::before,
.woocommerce-cart .woocommerce-info::before { color: var(--gc-color-accent); }
.woocommerce-cart .woocommerce-message a,
.woocommerce-cart .woocommerce-info a { color: var(--gc-color-primary-light); }
.woocommerce-cart .woocommerce-cart-form,
.woocommerce-cart .cart_totals { overflow: hidden; background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: 1rem; box-shadow: var(--gc-shadow); }
.woocommerce-cart .woocommerce-cart-form { grid-column: 1; }
.woocommerce-cart .cart-collaterals { grid-column: 2; width: 100%; }
.woocommerce-cart .cart-collaterals .cart_totals { float: none; width: 100%; padding: clamp(1.25rem, 3vw, 2rem); }
.woocommerce-cart .cart_totals h2 { margin: 0 0 1.25rem; font-size: clamp(1.5rem, 3vw, 2rem); }
.woocommerce-cart table.shop_table { width: 100%; margin: 0; border: 0; border-collapse: collapse; border-radius: 0; color: var(--gc-color-text); }
.woocommerce-cart table.shop_table th,
.woocommerce-cart table.shop_table td { padding: 1rem; border-color: var(--gc-color-border); }
.woocommerce-cart table.shop_table thead { background: rgb(255 255 255 / 0.025); }
.woocommerce-cart table.shop_table thead th { color: var(--gc-color-muted); font-size: 0.72rem; letter-spacing: 0.09em; text-transform: uppercase; }
.woocommerce-cart table.shop_table td { background: transparent; }
.woocommerce-cart .product-thumbnail { width: 6.5rem; }
.woocommerce-cart .product-thumbnail img { width: 4.8rem; aspect-ratio: 4 / 5; object-fit: cover; border: 1px solid var(--gc-color-border); border-radius: 0.55rem; }
.woocommerce-cart .product-name a { color: var(--gc-color-text); font-weight: 750; text-decoration: none; }
.woocommerce-cart .product-name a:hover { color: var(--gc-color-primary-light); }
.woocommerce-cart .product-price,
.woocommerce-cart .product-subtotal { color: var(--gc-color-text); font-weight: 750; white-space: nowrap; }
.woocommerce-cart .product-quantity .quantity { display: inline-flex; }
.woocommerce-cart .product-quantity input.qty { width: 4.25rem; min-height: 2.65rem; padding: 0.55rem 0.45rem; background: #0d111d; border: 1px solid var(--gc-color-border); border-radius: 0.6rem; color: var(--gc-color-text); font: inherit; font-weight: 750; line-height: 1; text-align: center; color-scheme: dark; }
.woocommerce-cart .product-quantity input.qty:hover { border-color: rgb(224 122 176 / 0.55); }
.woocommerce-cart .product-quantity input.qty:focus { border-color: var(--gc-color-accent); outline: none; box-shadow: 0 0 0 3px rgb(37 170 225 / 0.14); }
.woocommerce-cart .product-remove { width: 3rem; }
.woocommerce-cart a.remove { display: grid; width: 2rem; height: 2rem; place-items: center; border: 1px solid var(--gc-color-border); border-radius: 50%; color: var(--gc-color-primary-light) !important; font-size: 1.25rem; text-decoration: none; }
.woocommerce-cart a.remove:hover { background: var(--gc-color-primary); border-color: var(--gc-color-primary); color: #fff !important; }
.woocommerce-cart td.actions { padding: 1.15rem !important; background: rgb(255 255 255 / 0.018) !important; }
.woocommerce-cart .coupon { display: flex; gap: 0.65rem; }
.woocommerce-cart .coupon #coupon_code { width: min(15rem, 100%); min-height: 2.8rem; padding: 0.65rem 0.85rem; background: #0d111d; border: 1px solid var(--gc-color-border); border-radius: 0.65rem; color: var(--gc-color-text); font: inherit; }
.woocommerce-cart .coupon #coupon_code:focus { border-color: var(--gc-color-accent); outline: none; box-shadow: 0 0 0 3px rgb(37 170 225 / 0.14); }
.woocommerce-cart .woocommerce button.button,
.woocommerce-cart .woocommerce a.button { min-height: 2.8rem; padding: 0.7rem 1rem; background: rgb(255 255 255 / 0.035); border: 1px solid var(--gc-color-border); border-radius: 0.65rem; color: var(--gc-color-text); font-weight: 750; }
.woocommerce-cart .woocommerce button.button:hover,
.woocommerce-cart .woocommerce a.button:hover { background: rgb(159 31 99 / 0.13); border-color: var(--gc-color-primary-light); color: var(--gc-color-text); }
.woocommerce-cart .cart_totals table th,
.woocommerce-cart .cart_totals table td { padding: 1rem 0; background: transparent; }
.woocommerce-cart .cart_totals table th { color: var(--gc-color-muted); }
.woocommerce-cart .cart_totals table td { text-align: right; }
.woocommerce-cart .cart_totals .woocommerce-shipping-totals th,
.woocommerce-cart .cart_totals .woocommerce-shipping-totals td { vertical-align: top; }
.woocommerce-cart .cart_totals .woocommerce-shipping-totals th { padding-right: 1rem; }
.woocommerce-cart .woocommerce-shipping-calculator { margin-top: 0.85rem; }
.woocommerce-cart .shipping-calculator-form {
	display: grid;
	gap: 0.75rem;
	margin-top: 0.85rem;
	padding-top: 0.85rem;
	border-top: 1px solid var(--gc-color-border);
	text-align: left;
}
.woocommerce-cart .shipping-calculator-form .form-row { width: 100%; margin: 0; padding: 0; }
.woocommerce-cart .shipping-calculator-form label {
	display: block;
	margin: 0 0 0.35rem;
	color: var(--gc-color-muted);
	font-size: 0.8rem;
	font-weight: 750;
	line-height: 1.35;
	text-align: left;
}
.woocommerce-cart .shipping-calculator-form input.input-text,
.woocommerce-cart .shipping-calculator-form select,
.woocommerce-cart .shipping-calculator-form .select2-container { width: 100% !important; }
.woocommerce-cart .shipping-calculator-form input.input-text,
.woocommerce-cart .shipping-calculator-form select,
.woocommerce-cart .shipping-calculator-form .select2-selection {
	min-height: 2.8rem;
	background: rgb(255 255 255 / 0.035);
	border: 1px solid var(--gc-color-border);
	border-radius: 0.65rem;
	color: var(--gc-color-text);
}
.woocommerce-cart .shipping-calculator-form input.input-text,
.woocommerce-cart .shipping-calculator-form select { padding: 0.65rem 0.8rem; }
.woocommerce-cart .shipping-calculator-form .select2-selection { display: flex; align-items: center; }
.woocommerce-cart .shipping-calculator-form .select2-selection__rendered { color: var(--gc-color-text); }
.woocommerce-cart .shipping-calculator-form .select2-selection__arrow { top: 50%; transform: translateY(-50%); }
.woocommerce-cart .shipping-calculator-form .button { width: 100%; justify-content: center; }
.woocommerce-cart .cart_totals .order-total th,
.woocommerce-cart .cart_totals .order-total td { padding-top: 1.25rem; border-top: 1px solid var(--gc-color-border); color: var(--gc-color-text); font-size: 1.1rem; }
.woocommerce-cart .wc-proceed-to-checkout { padding: 1.25rem 0 0; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { display: flex; width: 100%; min-height: 3.2rem; margin: 0; align-items: center; justify-content: center; background: var(--gc-color-primary); border: 1px solid var(--gc-color-primary); border-radius: 0.7rem; color: #fff; font-size: 1rem; box-shadow: 0 0.8rem 2rem rgb(116 22 72 / 0.28); }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover { background: var(--gc-color-primary-light); border-color: var(--gc-color-primary-light); color: #190b13; }
.woocommerce-cart .return-to-shop { grid-column: 1 / -1; display: flex; width: 100%; justify-content: center; margin: 2rem 0 0; }
.woocommerce-cart .return-to-shop a.button { display: inline-flex; min-height: 3.25rem; align-items: center; justify-content: center; padding: 0.85rem 1.6rem; background: var(--gc-color-primary); border: 1px solid var(--gc-color-primary); border-radius: 0.7rem; color: #fff; font-size: 1rem; font-weight: 750; box-shadow: 0 0.8rem 2rem rgb(116 22 72 / 0.28); }
.woocommerce-cart .return-to-shop a.button:hover { background: var(--gc-color-primary-light); border-color: var(--gc-color-primary-light); color: #190b13; }
.gc-cart-digital-only .woocommerce-cart-form th.product-quantity,
.gc-cart-digital-only .woocommerce-cart-form td.product-quantity { display: none; }
.woocommerce-cart .blockUI.blockOverlay,
.woocommerce-cart .loader { background: rgb(9 11 18 / 0.78) !important; opacity: 1 !important; border-radius: inherit; backdrop-filter: blur(2px); }
.woocommerce-cart .blockUI.blockOverlay::before,
.woocommerce-cart .loader::before { position: absolute !important; top: 50% !important; left: 50% !important; width: 2.4rem !important; height: 2.4rem !important; margin: -1.2rem 0 0 -1.2rem !important; background: none !important; border: 3px solid rgb(37 170 225 / 0.28); border-top-color: var(--gc-color-accent); border-right-color: var(--gc-color-primary-light); border-radius: 50%; content: "" !important; animation: gc-cart-loading 700ms linear infinite; }
@keyframes gc-cart-loading { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
	.woocommerce-cart .blockUI.blockOverlay::before,
	.woocommerce-cart .loader::before { animation: none; }
}

@media (max-width: 64rem) {
	.woocommerce-cart .woocommerce { grid-template-columns: 1fr; }
	.woocommerce-cart .woocommerce-cart-form,
	.woocommerce-cart .cart-collaterals { grid-column: 1; }
}

@media (max-width: 48rem) {
	.woocommerce-cart .woocommerce-cart-form { overflow: visible; background: transparent; border: 0; box-shadow: none; }
	.woocommerce-cart table.shop_table_responsive tr { display: block; margin-bottom: 1rem; overflow: hidden; background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: 0.9rem; }
	.woocommerce-cart table.shop_table_responsive tr td { min-height: 3rem; padding: 0.8rem 1rem; border-color: var(--gc-color-border); }
	.woocommerce-cart table.shop_table_responsive tr td.product-thumbnail { display: block; width: 100%; text-align: left !important; }
	.woocommerce-cart table.shop_table_responsive tr td.product-thumbnail::before { display: none; }
	.woocommerce-cart .product-thumbnail img { width: 4rem; }
	.woocommerce-cart table.shop_table_responsive tr td.actions { display: block; }
	.woocommerce-cart .coupon { float: none !important; flex-wrap: wrap; }
	.woocommerce-cart .coupon #coupon_code { float: none; flex: 1; min-width: 9rem; }
	.woocommerce-cart td.actions > button.button { float: none; width: 100%; margin-top: 0.65rem; }
}

/* Commande WooCommerce */
.woocommerce-checkout .standard-page { padding-block: clamp(3rem, 7vw, 6rem); }
.woocommerce-checkout .standard-page > article { width: 100%; }
.woocommerce-checkout .page-header { margin-bottom: clamp(1.75rem, 4vw, 3rem); }
.woocommerce-checkout .page-header::before { display: block; margin-bottom: 0.7rem; color: var(--gc-color-accent); content: "PAIEMENT SÉCURISÉ"; font-size: 0.78rem; font-weight: 800; letter-spacing: 0.18em; }
.woocommerce-checkout .page-header h1 { max-width: 15ch; margin: 0; font-size: clamp(2.7rem, 6vw, 4.7rem); }
.woocommerce-checkout .woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-checkout .woocommerce-error,
.woocommerce-checkout .woocommerce-info,
.woocommerce-checkout .woocommerce-message { margin: 0 0 1.25rem; padding: 1rem 1.25rem 1rem 3.2rem; background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-top-color: var(--gc-color-accent); border-radius: 0.8rem; color: var(--gc-color-text); }
.woocommerce-checkout .woocommerce-error { border-top-color: var(--gc-color-primary-light); }
.woocommerce-checkout .woocommerce-error::before { color: var(--gc-color-primary-light); }
.woocommerce-checkout .woocommerce-info::before,
.woocommerce-checkout .woocommerce-message::before { color: var(--gc-color-accent); }
.woocommerce-checkout .woocommerce-error a,
.woocommerce-checkout .woocommerce-info a,
.woocommerce-checkout .woocommerce-message a { color: var(--gc-color-primary-light); }
.woocommerce-checkout .woocommerce-form-coupon-toggle { display: none; }
.woocommerce-checkout .entry-content > .woocommerce { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(22rem, 0.85fr); column-gap: 1.5rem; row-gap: 0; align-items: start; }
.woocommerce-checkout .woocommerce-notices-wrapper { grid-column: 1 / -1; grid-row: 1; }
.woocommerce-checkout form.checkout_coupon { grid-column: 1 / -1; grid-row: 4; display: flex !important; align-items: center; gap: 0.75rem; margin: 1.5rem 0 0; padding: 1rem; background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: 0.8rem; }
.woocommerce-checkout form.checkout_coupon > p:not(.form-row) { display: none; }
.woocommerce-checkout form.checkout_coupon .form-row { display: flex; width: auto; margin: 0; }
.woocommerce-checkout form.checkout_coupon .form-row-first { flex: 1; }
.woocommerce-checkout form.checkout_coupon .form-row-last { flex: none; }
.woocommerce-checkout form.checkout_coupon .input-text { width: 100%; }
.woocommerce-checkout form.checkout_coupon button.button { min-height: 3rem; padding: 0.7rem 1.1rem; background: rgb(255 255 255 / 0.035); border: 1px solid var(--gc-color-border); border-radius: 0.65rem; color: var(--gc-color-text); font-weight: 750; }
.woocommerce-checkout form.checkout_coupon button.button:hover { background: rgb(159 31 99 / 0.13); border-color: var(--gc-color-primary-light); color: var(--gc-color-text); }
.woocommerce-checkout form.checkout { display: contents; }
.woocommerce-checkout #customer_details { grid-column: 1; grid-row: 5; display: grid; grid-template-columns: 1fr; gap: 1.5rem; width: 100%; margin-top: 1.5rem; }
.woocommerce-checkout #customer_details::before,
.woocommerce-checkout #customer_details::after { display: none; content: none; }
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2 { float: none; width: 100%; padding: clamp(1.25rem, 3vw, 2rem); background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: 1rem; box-shadow: var(--gc-shadow); }
.woocommerce-checkout #customer_details h3,
.woocommerce-checkout #order_review_heading { margin: 0 0 1.4rem; font-size: clamp(1.45rem, 3vw, 1.9rem); }
.woocommerce-checkout #order_review_heading { grid-column: 1 / -1; grid-row: 2; display: block; margin: 0; padding: clamp(1.25rem, 3vw, 2rem) clamp(1.25rem, 3vw, 2rem) 1rem; background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-bottom: 0; border-radius: 1rem 1rem 0 0; box-shadow: var(--gc-shadow); }
.woocommerce-checkout #order_review { display: contents; }
.woocommerce-checkout #order_review::before { display: none; }
.woocommerce-checkout .form-row { margin: 0 0 1rem; padding: 0; }
.woocommerce-checkout .form-row label { margin-bottom: 0.42rem; color: var(--gc-color-text); font-size: 0.9rem; font-weight: 700; }
.woocommerce-checkout .form-row .required { color: var(--gc-color-primary-light); }
.woocommerce-checkout form .form-row input.input-text,
.woocommerce-checkout form .form-row textarea.input-text,
.woocommerce-checkout form .form-row select,
.woocommerce-checkout .select2-container--default .select2-selection--single { min-height: 3rem; padding: 0.7rem 0.85rem; background: #0d111d; border: 1px solid var(--gc-color-border); border-radius: 0.65rem; color: var(--gc-color-text); font: inherit; }
.woocommerce-checkout textarea.input-text { min-height: 8rem; resize: vertical; scrollbar-color: var(--gc-color-primary) #0d111d; }
.woocommerce-checkout .input-text::placeholder { color: var(--gc-color-muted); opacity: 0.7; }
.woocommerce-checkout .input-text:focus,
.woocommerce-checkout select:focus,
.woocommerce-checkout .select2-container--focus .select2-selection--single { border-color: var(--gc-color-accent); outline: none; box-shadow: 0 0 0 3px rgb(37 170 225 / 0.14); }
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--gc-color-text); line-height: 1.5rem; }
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow { top: 0.65rem; right: 0.5rem; }
.woocommerce-checkout .woocommerce-input-wrapper > strong { display: block; min-height: 3rem; padding: 0.8rem 0.85rem; background: rgb(255 255 255 / 0.025); border: 1px solid var(--gc-color-border); border-radius: 0.65rem; }
.woocommerce-checkout #order_review table.shop_table { grid-column: 1 / -1; grid-row: 3; width: 100%; margin: 0; padding: 0 clamp(1.25rem, 3vw, 2rem) clamp(1.25rem, 3vw, 2rem); background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-top: 0; border-collapse: separate; border-spacing: 0; border-radius: 0 0 1rem 1rem; color: var(--gc-color-text); box-shadow: var(--gc-shadow); }
.woocommerce-checkout #order_review table.shop_table th,
.woocommerce-checkout #order_review table.shop_table td { padding: 1rem 0.35rem; background: transparent; border-color: var(--gc-color-border); }
.woocommerce-checkout #order_review table.shop_table thead th { color: var(--gc-color-muted); font-size: 0.72rem; letter-spacing: 0.09em; text-transform: uppercase; }
.woocommerce-checkout #order_review table.shop_table th:last-child,
.woocommerce-checkout #order_review table.shop_table td:last-child { text-align: right; }
.woocommerce-checkout #order_review .order-total th,
.woocommerce-checkout #order_review .order-total td { padding-top: 1.2rem; color: var(--gc-color-text); font-size: 1.08rem; }
.woocommerce-checkout #payment { grid-column: 2; grid-row: 5; margin-top: 1.5rem; padding: clamp(1.25rem, 3vw, 2rem); background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: 1rem; color: var(--gc-color-text); box-shadow: var(--gc-shadow); }
.woocommerce-checkout #payment::before { display: block; margin-bottom: 1rem; color: var(--gc-color-text); content: "Choisissez votre moyen de paiement"; font-size: 1.2rem; font-weight: 800; }
.woocommerce-checkout #payment ul.payment_methods { padding: 0; border-color: var(--gc-color-border); }
.woocommerce-checkout #payment .wc_payment_method { margin-bottom: 0.7rem; padding: 0.9rem 1rem; background: rgb(255 255 255 / 0.025); border: 1px solid var(--gc-color-border); border-radius: 0.75rem; }
.woocommerce-checkout #payment .wc_payment_method:has(> input:checked) { background: rgb(37 170 225 / 0.08); border-color: rgb(37 170 225 / 0.48); }
.woocommerce-checkout #payment .wc_payment_method > label { display: inline; color: var(--gc-color-text); font-weight: 800; }
.woocommerce-checkout #payment div.payment_box { margin: 0; padding: 1rem 0 1.2rem; background: transparent; border: 0; border-radius: 0; color: var(--gc-color-muted); }
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout #payment .wc-stripe-payment-method-instruction { margin-bottom: 1rem; padding: 0; }
.woocommerce-checkout #payment fieldset.wc-payment-form { padding: 0; border: 0; }
.woocommerce-checkout #payment .payment_box > fieldset:last-of-type { margin-top: 0.8rem; padding: 1rem 0 0; border: 0; border-top: 1px solid var(--gc-color-border); }
.woocommerce-checkout #payment .payment_box > fieldset:last-of-type .form-row { margin: 0; }
.woocommerce-checkout #payment .form-row.place-order > .ppc-button-wrapper { width: 100%; margin-top: 1rem; }
.woocommerce-checkout #payment .payment_method_stripe > label { color: var(--gc-color-text); font-weight: 750; }
.woocommerce-checkout #payment .payment_method_stripe img { max-height: 1.5rem; }
.woocommerce-checkout #payment .form-row.place-order { margin: 0; padding: 1.2rem 0 0; }
.woocommerce-checkout #payment .woocommerce-privacy-policy-text { color: var(--gc-color-muted); font-size: 0.86rem; line-height: 1.65; }
.woocommerce-checkout #payment .woocommerce-privacy-policy-text a { color: var(--gc-color-primary-light); }
.woocommerce-checkout #payment #place_order { float: none; width: 100%; min-height: 3.2rem; margin-top: 0.8rem; background: var(--gc-color-primary); border: 1px solid var(--gc-color-primary); border-radius: 0.7rem; color: #fff; font-size: 1rem; font-weight: 750; box-shadow: 0 0.8rem 2rem rgb(116 22 72 / 0.28); }
.woocommerce-checkout #payment #place_order:hover { background: var(--gc-color-primary-light); border-color: var(--gc-color-primary-light); color: #190b13; }
.woocommerce-checkout .blockUI.blockOverlay,
.woocommerce-checkout .loader { background: rgb(9 11 18 / 0.78) !important; opacity: 1 !important; border-radius: inherit; backdrop-filter: blur(2px); }
.woocommerce-checkout .blockUI.blockOverlay { position: fixed !important; inset: 0 !important; z-index: 9999 !important; width: auto !important; height: auto !important; border-radius: 0; }
.woocommerce-checkout .blockUI.blockOverlay::before,
.woocommerce-checkout .loader::before { position: absolute !important; top: 50% !important; left: 50% !important; width: 2.4rem !important; height: 2.4rem !important; margin: -1.2rem 0 0 -1.2rem !important; background: none !important; border: 3px solid rgb(37 170 225 / 0.28); border-top-color: var(--gc-color-accent); border-right-color: var(--gc-color-primary-light); border-radius: 50%; content: "" !important; animation: gc-cart-loading 700ms linear infinite; }

/* Confirmation de commande WooCommerce */
.woocommerce-order-received .standard-page { position: relative; isolation: isolate; padding-block: clamp(3rem, 7vw, 6rem); }
.woocommerce-order-received { background: radial-gradient(circle at 86% 16%, rgb(37 170 225 / 0.08), transparent 28rem), radial-gradient(circle at 70% 38%, rgb(159 31 99 / 0.12), transparent 30rem), linear-gradient(var(--gc-grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--gc-grid-line) 1px, transparent 1px), var(--gc-color-background); background-size: auto, auto, 3.5rem 3.5rem, 3.5rem 3.5rem; }
.woocommerce-order-received .standard-page > article { width: 100%; }
.woocommerce-order-received .entry-content > .woocommerce { display: block; }
.woocommerce-order-received .page-header { margin-bottom: clamp(1.75rem, 4vw, 3rem); }
.woocommerce-order-received .page-header::before { display: block; margin-bottom: 0.7rem; color: var(--gc-color-accent); content: "PAIEMENT SÉCURISÉ"; font-size: 0.78rem; font-weight: 800; letter-spacing: 0.18em; }
.woocommerce-order-received .page-header h1 { max-width: 15ch; margin: 0; font-size: clamp(2.7rem, 6vw, 4.7rem); }
.woocommerce-order-received .woocommerce-order { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(18rem, 0.65fr); gap: 1.5rem; align-items: start; }
.woocommerce-order-received .woocommerce-thankyou-order-received { grid-column: 1 / -1; position: relative; margin: 0; padding: 1.25rem 1.5rem 1.25rem 4.5rem; background: linear-gradient(135deg, rgb(37 170 225 / 0.12), rgb(159 31 99 / 0.08)); border: 1px solid rgb(37 170 225 / 0.32); border-radius: 1rem; color: var(--gc-color-text); font-size: 1.05rem; font-weight: 700; box-shadow: var(--gc-shadow); }
.woocommerce-order-received .woocommerce-thankyou-order-received::before { position: absolute; top: 50%; left: 1.45rem; display: grid; width: 2rem; height: 2rem; place-items: center; background: var(--gc-color-accent); border-radius: 50%; color: #071018; content: "✓"; font-weight: 900; transform: translateY(-50%); }
.woocommerce-order-received .gc-order-digital-access { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(18rem, 1fr) minmax(0, 2fr); align-items: center; gap: 2rem; padding: clamp(1.25rem, 3vw, 2rem); background: linear-gradient(135deg, rgb(37 170 225 / 0.11), rgb(159 31 99 / 0.12)); border: 1px solid rgb(37 170 225 / 0.3); border-radius: 1rem; box-shadow: var(--gc-shadow); }
.woocommerce-order-received .gc-order-digital-access h2 { margin: 0.25rem 0 0.65rem; font-size: clamp(1.45rem, 3vw, 2rem); }
.woocommerce-order-received .gc-order-digital-access p:last-child { max-width: 43rem; margin: 0; color: var(--gc-color-muted); }
.woocommerce-order-received .gc-order-digital-access p a { color: var(--gc-color-primary-light); }
.woocommerce-order-received .gc-order-digital-access__actions { display: grid; width: 100%; min-width: 0; max-width: 44rem; justify-self: end; grid-template-columns: minmax(0, 1fr); gap: 0.75rem; }
.woocommerce-order-received .gc-order-digital-access__actions .button { display: inline-flex; width: 100%; min-width: 0; min-height: 3rem; max-width: 100%; align-items: center; justify-content: center; padding: 0.75rem 1.3rem; border-radius: 0.7rem; line-height: 1.35; overflow-wrap: anywhere; text-align: center; white-space: normal; }
.woocommerce-order-received ul.woocommerce-order-overview { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin: 0; padding: 0; overflow: hidden; background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: 1rem; box-shadow: var(--gc-shadow); }
.woocommerce-order-received ul.woocommerce-order-overview::before,
.woocommerce-order-received ul.woocommerce-order-overview::after { display: none; content: none; }
.woocommerce-order-received ul.woocommerce-order-overview li { float: none; min-width: 0; margin: 0; padding: 1.25rem; border-right: 1px solid var(--gc-color-border); color: var(--gc-color-muted); font-size: 0.72rem; line-height: 1.45; letter-spacing: 0.08em; text-transform: uppercase; }
.woocommerce-order-received ul.woocommerce-order-overview li:last-child { border-right: 0; }
.woocommerce-order-received ul.woocommerce-order-overview li strong { display: block; margin-top: 0.35rem; overflow-wrap: anywhere; color: var(--gc-color-text); font-size: 1rem; line-height: 1.35; letter-spacing: 0; text-transform: none; }
.woocommerce-order-received .woocommerce-order-details,
.woocommerce-order-received .woocommerce-customer-details { margin: 0; padding: clamp(1.25rem, 3vw, 2rem); background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: 1rem; box-shadow: var(--gc-shadow); }
.woocommerce-order-received .woocommerce-order-details { grid-column: 1; }
.woocommerce-order-received .woocommerce-customer-details { grid-column: 2; }
.woocommerce-order-received .woocommerce-order-details h2,
.woocommerce-order-received .woocommerce-customer-details h2 { margin: 0 0 1.4rem; font-size: clamp(1.45rem, 3vw, 1.9rem); }
.woocommerce-order-received table.shop_table { width: 100%; margin: 0; background: transparent; border: 0; border-collapse: collapse; color: var(--gc-color-text); }
.woocommerce-order-received table.shop_table th,
.woocommerce-order-received table.shop_table td { padding: 1rem 0.65rem; background: transparent; border-color: var(--gc-color-border); }
.woocommerce-order-received table.shop_table th:first-child,
.woocommerce-order-received table.shop_table td:first-child { padding-left: 0; }
.woocommerce-order-received table.shop_table th:last-child,
.woocommerce-order-received table.shop_table td:last-child { padding-right: 0; text-align: right; }
.woocommerce-order-received table.shop_table thead th { color: var(--gc-color-muted); font-size: 0.72rem; letter-spacing: 0.09em; text-transform: uppercase; }
.woocommerce-order-received table.shop_table a { color: var(--gc-color-primary-light); }
.woocommerce-order-received table.shop_table td.order-actions a.button,
.woocommerce-order-received table.shop_table td.subscription-actions a.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.65rem;
	padding: 0.65rem 1rem;
	background: rgb(159 31 99 / 0.18);
	border: 1px solid rgb(224 122 176 / 0.42);
	border-radius: 0.65rem;
	color: var(--gc-color-text);
	font-weight: 750;
	line-height: 1.2;
	text-decoration: none;
}
.woocommerce-order-received table.shop_table td.order-actions a.button:hover,
.woocommerce-order-received table.shop_table td.subscription-actions a.button:hover {
	background: var(--gc-color-primary);
	border-color: var(--gc-color-primary-light);
	color: #fff;
}
.woocommerce-order-received table.shop_table td.order-actions a.button:focus-visible,
.woocommerce-order-received table.shop_table td.subscription-actions a.button:focus-visible {
	outline: 3px solid var(--gc-color-accent);
	outline-offset: 3px;
}
.woocommerce-order-received table.shop_table tfoot tr:last-child th,
.woocommerce-order-received table.shop_table tfoot tr:last-child td { color: var(--gc-color-text); font-size: 1.05rem; }
.woocommerce-order-received table.shop_table .includes_tax { white-space: nowrap; }
.woocommerce-order-received .woocommerce-customer-details address { margin: 0; padding: 0; background: transparent; border: 0; color: var(--gc-color-muted); font-style: normal; line-height: 1.8; }
.woocommerce-order-received .woocommerce-customer-details address p { margin: 1rem 0 0; color: var(--gc-color-text); }
.woocommerce-order-received .woocommerce-customer-details .woocommerce-columns {
	display: grid;
	gap: 1.5rem;
}
.woocommerce-order-received .woocommerce-customer-details .woocommerce-columns::before,
.woocommerce-order-received .woocommerce-customer-details .woocommerce-columns::after { display: none; content: none; }
.woocommerce-order-received .woocommerce-customer-details .woocommerce-column {
	float: none;
	width: 100%;
	min-width: 0;
}
.woocommerce-order-received .woocommerce-customer-details .woocommerce-column + .woocommerce-column {
	padding-top: 1.5rem;
	border-top: 1px solid var(--gc-color-border);
}

@media (max-width: 64rem) {
	.woocommerce-order-received .woocommerce-order { grid-template-columns: 1fr; }
	.woocommerce-order-received .gc-order-digital-access { grid-template-columns: 1fr; align-items: stretch; }
	.woocommerce-order-received .gc-order-digital-access__actions { max-width: none; justify-self: stretch; }
	.woocommerce-order-received .woocommerce-order-details,
	.woocommerce-order-received .woocommerce-customer-details { grid-column: 1; }
	.woocommerce-order-received ul.woocommerce-order-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.woocommerce-order-received ul.woocommerce-order-overview li { border-bottom: 1px solid var(--gc-color-border); }
	.woocommerce-order-received ul.woocommerce-order-overview li:nth-child(2n) { border-right: 0; }
	.woocommerce-order-received ul.woocommerce-order-overview li:last-child { grid-column: 1 / -1; border-bottom: 0; }
}

@media (max-width: 38rem) {
	.woocommerce-order-received .woocommerce-thankyou-order-received { padding: 1.1rem 1rem 1.1rem 3.8rem; }
	.woocommerce-order-received .woocommerce-thankyou-order-received::before { left: 1rem; }
	.woocommerce-order-received ul.woocommerce-order-overview { grid-template-columns: 1fr; }
	.woocommerce-order-received ul.woocommerce-order-overview li,
	.woocommerce-order-received ul.woocommerce-order-overview li:nth-child(2n) { border-right: 0; }
	.woocommerce-order-received ul.woocommerce-order-overview li:last-child { grid-column: auto; }
	.woocommerce-order-received .woocommerce-order-details,
	.woocommerce-order-received .woocommerce-customer-details { padding: 1rem; }
	.woocommerce-order-received .gc-order-digital-access__actions .button { width: 100%; }
	.woocommerce-order-received table.shop_table th,
	.woocommerce-order-received table.shop_table td { padding-inline: 0.25rem; font-size: 0.88rem; }
	.woocommerce-order-received table.shop_table td.order-actions a.button,
	.woocommerce-order-received table.shop_table td.subscription-actions a.button { width: 100%; }
}

@media (max-width: 64rem) {
	.woocommerce-checkout .entry-content > .woocommerce { grid-template-columns: 1fr; }
	.woocommerce-checkout #order_review_heading,
	.woocommerce-checkout #order_review table.shop_table,
	.woocommerce-checkout form.checkout_coupon,
	.woocommerce-checkout #customer_details,
	.woocommerce-checkout #payment { grid-column: 1; }
	.woocommerce-checkout #order_review_heading { grid-row: 2; }
	.woocommerce-checkout #order_review table.shop_table { grid-row: 3; }
	.woocommerce-checkout form.checkout_coupon { grid-row: 4; }
	.woocommerce-checkout #customer_details { grid-row: 5; }
	.woocommerce-checkout #payment { grid-row: 6; }
}

@media (max-width: 38rem) {
	.woocommerce-checkout .woocommerce,
	.woocommerce-checkout form.checkout,
	.woocommerce-checkout #customer_details,
	.woocommerce-checkout #customer_details .col-1,
	.woocommerce-checkout #customer_details .col-2,
	.woocommerce-checkout #order_review table.shop_table,
	.woocommerce-checkout #payment { width: 100%; min-width: 0; }
	.woocommerce-checkout #customer_details .col-1,
	.woocommerce-checkout #customer_details .col-2,
	.woocommerce-checkout #payment { padding: 1rem; }
	.woocommerce-checkout form.checkout_coupon { align-items: stretch; flex-direction: column; }
	.woocommerce-checkout form.checkout_coupon .form-row { width: 100%; }
	.woocommerce-checkout form.checkout_coupon button.button { width: 100%; }
	.woocommerce-checkout #order_review table.shop_table th,
	.woocommerce-checkout #order_review table.shop_table td { padding-inline: 0.2rem; font-size: 0.87rem; }
}

@media (prefers-reduced-motion: reduce) {
	.woocommerce-checkout .blockUI.blockOverlay::before,
	.woocommerce-checkout .loader::before { animation: none; }
}

/* Page Premium */
.premium-page { background: var(--gc-color-background); }
.premium-hero {
	padding-block: clamp(4rem, 10vw, 8rem);
	background:
		radial-gradient(ellipse 34rem 24rem at 77% 48%, rgb(0 0 0 / 0.7), transparent 78%),
		linear-gradient(var(--gc-grid-line) 1px, transparent 1px),
		linear-gradient(90deg, var(--gc-grid-line) 1px, transparent 1px),
		linear-gradient(var(--gc-grid-line-strong) 1px, transparent 1px),
		linear-gradient(90deg, var(--gc-grid-line-strong) 1px, transparent 1px),
		linear-gradient(135deg, #090b12, #101421);
	background-size: auto, 3.5rem 3.5rem, 3.5rem 3.5rem, 14rem 14rem, 14rem 14rem, auto;
	border-bottom: 1px solid var(--gc-color-border);
}
.premium-hero__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: center;
	gap: clamp(1rem, 2vw, 2rem);
}
.premium-hero h1 { max-width: 12ch; margin-block: 0.5rem 1.25rem; font-size: clamp(3rem, 8vw, 5.7rem); line-height: 0.98; }
.premium-hero__lead { max-width: 42rem; color: var(--gc-color-muted); font-size: clamp(1.1rem, 2vw, 1.3rem); }
.premium-hero__note { margin-top: 1rem; color: var(--gc-color-muted); font-size: 0.9rem; }
.premium-hero__visual {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
}
.premium-hero__visual img { display: block; width: 115%; max-width: none; height: auto; transform: translateX(-0.5rem); }
.premium-cta { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem; margin-top: 2rem; }
.premium-cta form { margin: 0; }
.premium-login-link { color: var(--gc-color-text); font-weight: 700; }
.premium-status { display: inline-flex; padding: 0.65rem 0.9rem; border-radius: 999px; font-weight: 800; }
.premium-status--active { background: rgb(16 185 129 / 0.15); color: #a7f3d0; }
.premium-status--pending { background: rgb(245 158 11 / 0.15); color: #fde68a; }
.premium-section { padding-block: clamp(3rem, 6vw, 5rem); }
.premium-section .section-heading { margin-bottom: 1.8rem; }
.premium-benefits { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; }
.premium-benefits article { padding: 1.5rem; background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: var(--gc-radius); }
.premium-benefits article > span { color: var(--gc-color-primary-light); font: 800 0.85rem/1 ui-monospace, SFMono-Regular, Consolas, monospace; }
.premium-benefits h3 { margin-block: 1rem 0.6rem; }
.premium-benefits p { margin: 0; color: var(--gc-color-muted); }
.premium-section--comparison { background: var(--gc-color-surface-alt); }
.premium-comparison-wrap { max-width: 62rem; }
.premium-table-scroll { overflow-x: auto; border: 1px solid var(--gc-color-border); border-radius: var(--gc-radius); }
.premium-comparison { width: 100%; min-width: 38rem; border-collapse: collapse; background: var(--gc-color-surface); }
.premium-comparison th,
.premium-comparison td { padding: 1.15rem 1.4rem; border-bottom: 1px solid var(--gc-color-border); text-align: center; }
.premium-comparison th:first-child { text-align: left; }
.premium-comparison thead th:last-child { background: rgb(159 31 99 / 0.14); color: var(--gc-color-primary-light); }
.premium-comparison tbody tr:last-child > * { border-bottom: 0; }
.premium-check { color: #6ee7b7; font-weight: 900; }
.premium-faq { display: grid; grid-template-columns: minmax(16rem, 0.65fr) minmax(0, 1.35fr); gap: clamp(2rem, 5vw, 4rem); }
.premium-faq details { padding-block: 1rem; border-bottom: 1px solid var(--gc-color-border); }
.premium-faq summary { cursor: pointer; font-size: 1.1rem; font-weight: 800; }
.premium-faq details p { color: var(--gc-color-muted); }
.premium-final-cta { padding-block: clamp(3rem, 6vw, 5rem); background: linear-gradient(115deg, var(--gc-color-primary), var(--gc-color-primary-dark) 55%, #2b0c1d); border-top: 1px solid rgb(159 31 99 / 0.45); text-align: center; }
.premium-final-cta .eyebrow { color: #f3c7de; }
.premium-final-cta h2 { margin-inline: auto; max-width: 17ch; font-size: clamp(2.2rem, 6vw, 4rem); }
.premium-final-cta .premium-cta { justify-content: center; }
@media (max-width: 64rem) { .premium-benefits { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 80rem) { .premium-hero__visual img { width: 100%; transform: none; } }
@media (max-width: 48rem) {
	.premium-hero__grid,
	.premium-faq { grid-template-columns: 1fr; }
	.premium-hero__visual { max-width: 34rem; width: 100%; margin-inline: auto; }
}
@media (max-width: 38rem) {
	.premium-benefits { grid-template-columns: 1fr; }
	.premium-cta { align-items: stretch; flex-direction: column; }
	.premium-cta .button { width: 100%; }
}

/* Expérience éditoriale */
.articles-page,
.article-single { background: var(--gc-color-background); }
.articles-hero {
	padding-block: clamp(3.5rem, 9vw, 6.5rem);
}
.articles-hero__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(20rem, 0.7fr); align-items: end; gap: 3rem; }
.articles-hero h1 { margin-block: 0.4rem 1rem; font-size: clamp(3rem, 7vw, 5.5rem); }
.articles-hero p:not(.eyebrow) { max-width: 45rem; color: var(--gc-color-muted); font-size: 1.15rem; }
.category-archive__description { max-width: 45rem; color: var(--gc-color-muted); font-size: 1.15rem; }
.category-archive__description > :last-child { margin-bottom: 0; }
.category-archive__summary { display: flex; align-items: flex-start; flex-direction: column; gap: 0.7rem; padding: clamp(1.5rem, 4vw, 2.25rem); background: rgb(17 19 39 / 0.82); border: 1px solid var(--gc-color-border); border-radius: 1.2rem; box-shadow: 0 1.5rem 4rem rgb(0 0 0 / 0.18); }
.category-archive__summary > span { color: var(--gc-color-muted); font-size: 0.78rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.category-archive__summary strong { color: var(--gc-color-text); font-size: clamp(1.8rem, 4vw, 2.8rem); line-height: 1; }
.category-archive__summary .text-link { margin-top: 0.5rem; }
.articles-search { display: flex; gap: 0.75rem; padding: 0.7rem; background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: 0.9rem; }
.articles-search input { min-width: 0; flex: 1; padding: 0.8rem 0.9rem; background: transparent; border: 0; color: var(--gc-color-text); font: inherit; }
.articles-search input:focus { outline: 2px solid var(--gc-color-primary-light); outline-offset: 0.15rem; }
.articles-categories { position: sticky; z-index: 5; top: calc(5rem + var(--gc-admin-bar-height) + var(--gc-cgu-notice-height) - 1px); padding-block: 0.85rem; background: rgb(11 14 23 / 0.98); border-block: 1px solid var(--gc-color-border); backdrop-filter: blur(1rem); }
.articles-categories .site-container { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.articles-categories a { flex: 0 0 auto; max-width: 100%; padding: 0.55rem 0.85rem; border: 1px solid var(--gc-color-border); border-radius: 999px; color: var(--gc-color-muted); font-weight: 700; text-decoration: none; }
.articles-categories a:hover,
.articles-categories a.is-active { background: var(--gc-color-primary); border-color: var(--gc-color-primary); color: #fff; }
.articles-content { padding-block: clamp(1.5rem, 3vw, 2rem) clamp(3rem, 8vw, 6rem); }
.featured-article { position: relative; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(20rem, 0.8fr); overflow: hidden; margin-bottom: clamp(1.5rem, 3vw, 2rem); background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: 1.4rem; }
.featured-article__media { position: relative; min-height: 20rem; background: var(--gc-color-surface-alt); }
.featured-article__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.featured-article__media > span { display: grid; height: 100%; place-items: center; color: var(--gc-color-primary-light); font: 900 3rem/1 monospace; }
.featured-article__body { display: flex; justify-content: center; align-items: flex-start; flex-direction: column; padding: clamp(1.25rem, 3vw, 2rem); }
.featured-article__body h2 { margin-block: 0.6rem 0.75rem; font-size: clamp(1.65rem, 3vw, 2.35rem); }
.featured-article__body h2 a { color: var(--gc-color-text); text-decoration: none; }
.featured-article__body > div:not(.article-card__meta) { color: var(--gc-color-muted); }
.featured-article__body .button { margin-top: 1rem; }
.articles-results__header { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 2rem; }
.articles-results__header h2 { margin: 0; font-size: clamp(2rem, 4vw, 3rem); }
.articles-results__header > span { color: var(--gc-color-muted); }
.articles-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.article-card { position: relative; display: flex; overflow: hidden; flex-direction: column; background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: var(--gc-radius); transition: transform 180ms ease, border-color 180ms ease; }
.article-card > .article-access-badge,
.content-card > .article-access-badge,
.featured-article > .article-access-badge { position: absolute; top: 0.8rem; left: 0.8rem; z-index: 1; background: var(--gc-color-surface); box-shadow: 0 2px 8px rgb(0 0 0 / 0.4); }
.article-access-badge.badge--member { border-color: var(--gc-color-accent); color: var(--gc-color-text); }
.article-access-badge.badge--premium { background: var(--gc-color-primary); border-color: var(--gc-color-primary-light); color: #fff; }
.article-access-badge.badge--public { background: #047857; border-color: #10b981; color: #d1fae5; }
.article-card:hover { border-color: var(--gc-color-primary-light); transform: translateY(-0.25rem); }
.article-card__media { display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--gc-color-surface-alt); }
.article-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 300ms ease; }
.article-card:hover .article-card__media img { transform: scale(1.035); }
.article-card__placeholder { display: grid; height: 100%; place-items: center; color: var(--gc-color-primary-light); font: 900 2rem/1 monospace; }
.article-card__body { display: flex; align-items: flex-start; flex: 1; flex-direction: column; padding: 1.4rem; }
.article-card__meta { display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; color: var(--gc-color-muted); font-size: 0.82rem; }
.article-card__category { display: inline-flex; margin-top: 1rem; color: var(--gc-color-primary-light); font-size: 0.78rem; font-weight: 800; letter-spacing: 0.05em; text-decoration: none; text-transform: uppercase; }
.article-card__title { margin-block: 0.7rem; font-size: 1.35rem; }
.article-card__title a { color: var(--gc-color-text); text-decoration: none; }
.article-card__excerpt { color: var(--gc-color-muted); }
.article-card__excerpt p { margin: 0; }
.article-card__tags { display: flex; min-height: 1.5rem; justify-content: flex-end; align-self: stretch; flex-wrap: wrap; gap: 0.35rem; margin-top: 0.75rem; }
.article-card__tags a { display: inline-flex; align-items: center; min-height: 1.5rem; padding: 0.2rem 0.5rem; background: rgb(159 31 99 / 0.16); border: 1px solid rgb(232 87 161 / 0.28); border-radius: 999px; color: var(--gc-color-primary-light); font-size: 0.7rem; font-weight: 700; line-height: 1.15; text-decoration: none; transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease; }
.article-card__tags a:hover,
.article-card__tags a:focus-visible { background: var(--gc-color-primary); border-color: var(--gc-color-primary-light); color: #fff; }
.article-card__link { margin-top: auto; padding-top: 1rem; color: var(--gc-color-text); font-weight: 800; text-decoration: none; }
.articles-pagination { margin-top: 3rem; }
.articles-pagination ul.page-numbers { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.5rem; margin: 0; padding: 0; list-style: none; }
.articles-pagination a,
.articles-pagination span { display: grid; min-width: 2.7rem; height: 2.7rem; padding-inline: 0.7rem; place-items: center; border-radius: 0.6rem; color: var(--gc-color-text); text-decoration: none; }
.articles-pagination a:hover,
.articles-pagination a:focus-visible { background: var(--gc-color-surface-alt); }
.articles-pagination .current { background: var(--gc-color-primary); }
.articles-training-cta,
.article-course-cta { padding-block: clamp(3rem, 7vw, 5rem); background: linear-gradient(135deg, var(--gc-color-primary-dark), var(--gc-color-primary) 58%, var(--gc-color-accent-dark)); }
.articles-training-cta .site-container,
.article-course-cta .site-container { display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.articles-training-cta h2,
.article-course-cta h2 { max-width: 24ch; margin: 0; font-size: clamp(2rem, 5vw, 3.3rem); }
.product-hero { background: radial-gradient(circle at 20% 20%, rgb(159 31 99 / 0.2), transparent 30rem), #111327; }
.article-single__header {
	padding-block: clamp(2rem, 4vw, 3rem) clamp(3rem, 5vw, 4rem);
	background:
		radial-gradient(circle at 84% 22%, rgb(37 170 225 / 0.09), transparent 30rem),
		radial-gradient(circle at 76% 42%, rgb(159 31 99 / 0.24), transparent 29rem),
		linear-gradient(var(--gc-grid-line) 1px, transparent 1px),
		linear-gradient(90deg, var(--gc-grid-line) 1px, transparent 1px),
		linear-gradient(var(--gc-grid-line-strong) 1px, transparent 1px),
		linear-gradient(90deg, var(--gc-grid-line-strong) 1px, transparent 1px);
	background-size: auto, auto, 3.5rem 3.5rem, 3.5rem 3.5rem, 14rem 14rem, 14rem 14rem;
	border-bottom: 1px solid var(--gc-color-border);
	text-align: center;
}
.article-single__header-inner { max-width: var(--gc-content-width); }
.article-single__access { margin-bottom: 0.7rem; }
.article-single__access .article-access-badge { font-size: 0.78rem; }
.article-single__taxonomies { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 0.45rem; }
.article-single__taxonomies a { display: inline-flex; align-items: center; min-height: 2rem; border-radius: 999px; font-size: 0.78rem; font-weight: 800; line-height: 1.15; text-decoration: none; transition: transform 180ms ease, background-color 180ms ease, border-color 180ms ease, color 180ms ease; }
.article-single__taxonomies a:hover { transform: translateY(-1px); }
.article-single__category { padding: 0.42rem 0.8rem; background: rgb(159 31 99 / 0.18); border: 1px solid rgb(232 87 161 / 0.32); color: var(--gc-color-primary-light); }
.article-single__technology { padding: 0.42rem 0.7rem; background: rgb(18 23 38 / 0.82); border: 1px solid rgb(50 190 238 / 0.3); color: #9edcf4; }
.article-single__category:hover,
.article-single__category:focus-visible { background: rgb(159 31 99 / 0.3); border-color: var(--gc-color-primary-light); color: #fff; }
.article-single__technology:hover,
.article-single__technology:focus-visible { background: rgb(50 190 238 / 0.14); border-color: var(--gc-color-accent); color: #fff; }
.product-summary__tags { margin: 0 auto 0.9rem; }
.article-single__header h1 { max-width: 22ch; margin: 0.9rem auto; font-size: clamp(2.35rem, 5vw, 4.5rem); line-height: 1.04; text-wrap: balance; }
.article-single__lead { max-width: 48rem; margin-inline: auto; color: var(--gc-color-muted); font-size: clamp(1.1rem, 2vw, 1.35rem); }
.article-single__meta { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 0.8rem 1.4rem; margin-top: 1.25rem; color: var(--gc-color-muted); }
.article-single__meta > span:first-child { display: flex; align-items: center; gap: 0.5rem; color: var(--gc-color-text); font-weight: 700; }
.article-single__meta img { border-radius: 50%; }
.article-single__cover { max-width: var(--gc-content-width); margin-top: -1.75rem; }
.article-single__cover--with-toc { max-width: var(--gc-content-width); }
.article-single__cover img { display: block; width: 100%; max-height: 30rem; aspect-ratio: 21 / 9; object-fit: cover; border: 1px solid var(--gc-color-border); border-radius: 1.25rem; box-shadow: var(--gc-shadow); }
.article-single__layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(14rem, 18rem); gap: clamp(2rem, 5vw, 4rem); padding-block: clamp(2rem, 5vw, 4rem); }
.article-single__layout--editorial { max-width: var(--gc-content-width); grid-template-columns: minmax(0, 1fr) minmax(15rem, 18rem); }
.article-single__content { font-size: 1.08rem; line-height: 1.8; }
.article-single__content > p:first-child { color: #d8dced; font-size: 1.22rem; }
.article-single__content h2 { margin-top: 2.8rem; font-size: clamp(1.7rem, 4vw, 2.35rem); }
.article-single__content h3 { margin-top: 2rem; }
.article-single__content a { color: var(--gc-color-primary-light); }
:is(.article-single__content, .standard-page .entry-content, .formation-content) pre { overflow-x: auto; padding: 1.4rem; background: #080b12; border: 1px solid var(--gc-color-border); border-radius: 0.8rem; color: var(--gc-color-accent); line-height: 1.6; }
:is(.article-single__content, .standard-page .entry-content, .formation-content) code { padding: 0.15em 0.35em; background: rgb(159 31 99 / 0.14); border-radius: 0.3rem; color: var(--gc-color-accent); }
:is(.article-single__content, .standard-page .entry-content, .formation-content) pre code { padding: 0; background: transparent; }
.article-single__content li + li { margin-top: 0.6rem; }
.article-single__content .gc-video-series { display: grid; gap: .85rem; margin-block: 2.5rem 3rem; }
.article-single__content .gc-video-series > h2 { margin: 0 0 .35rem; }
.article-single__content .gc-video-chapter { overflow: hidden; background: linear-gradient(135deg, var(--gc-color-surface), #101424); border: 1px solid var(--gc-color-border); border-radius: 1rem; box-shadow: 0 .75rem 2rem rgb(0 0 0 / .14); }
.article-single__content .gc-video-chapter[open] { border-color: rgb(169 31 102 / .65); }
.article-single__content .gc-video-chapter summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.15rem 1.35rem; cursor: pointer; list-style: none; color: var(--gc-color-text); font-weight: 800; line-height: 1.4; }
.article-single__content .gc-video-chapter summary::-webkit-details-marker { display: none; }
.curriculum-chapter__toggle,
.article-single__content .gc-video-chapter summary::after { content: "+"; display: grid; width: 1.9rem; height: 1.9rem; flex: 0 0 auto; place-items: center; background: rgb(169 31 102 / .14); border: 1px solid rgb(169 31 102 / .35); border-radius: 50%; color: var(--gc-color-primary-light); font-size: 1.25rem; font-weight: 800; line-height: 1; transition: rotate .2s ease, background-color .2s ease; }
.article-single__content .gc-video-chapter[open] summary::after { background: rgb(169 31 102 / .28); rotate: 45deg; }
@media (prefers-reduced-motion: reduce) {
	.curriculum-chapter__toggle,
	.article-single__content .gc-video-chapter summary::after { transition: none; }
}
.article-single__content .gc-video-chapter summary:focus-visible { outline: 3px solid var(--gc-color-accent); outline-offset: -3px; }
.article-single__content .gc-video-chapter__content { display: flow-root; will-change: height, opacity; }
.article-single__content .gc-video-chapter__content.is-animating { transition: height 240ms cubic-bezier(.2, .8, .2, 1), opacity 200ms ease; }
.article-single__content .gc-video-chapter__spacing { height: 1.35rem; }
.article-single__content .gc-video-chapter__spacing.is-animating { transition: height 240ms cubic-bezier(.2, .8, .2, 1); }
.article-single__content .gc-video-chapter__content > * { margin-inline: 1.35rem; }
.article-single__content .gc-video-chapter__content > :last-child { margin-bottom: 0; }
.article-single__content .gc-video-chapter__content > p { color: var(--gc-color-muted); }
.article-single__content .gc-video-chapter__placeholder { padding: .8rem 1rem; background: rgb(37 170 225 / .08); border: 1px dashed rgb(37 170 225 / .35); border-radius: .65rem; }
.article-single__content .gc-video-chapter__content > .wp-block-embed-vimeo { margin-block: 1rem 0; }
.article-single__content .gc-video-chapter .wp-block-embed-vimeo .wp-block-embed__wrapper { margin-bottom: 0; }
@media (max-width: 600px) { .article-single__content .gc-video-chapter summary { padding: 1rem; } .article-single__content .gc-video-chapter__spacing { height: 1rem; } .article-single__content .gc-video-chapter__content > * { margin-inline: 1rem; } }
.article-resources { display: grid; grid-template-columns: minmax(16rem, .75fr) minmax(0, 1.25fr); gap: clamp(1.5rem, 5vw, 4rem); margin-bottom: clamp(3.5rem, 8vw, 6rem); padding: clamp(1.4rem, 4vw, 2.4rem); overflow: hidden; background: radial-gradient(circle at 0 0, rgb(37 170 225 / .12), transparent 22rem), linear-gradient(135deg, var(--gc-color-surface), #121525); border: 1px solid rgb(37 170 225 / .24); border-radius: 1.25rem; box-shadow: var(--gc-shadow); }
.article-resources__intro { display: flex; align-items: flex-start; gap: 1rem; }
.article-resources__icon { display: grid; width: 3rem; height: 3rem; flex: 0 0 auto; place-items: center; background: rgb(37 170 225 / .12); border: 1px solid rgb(37 170 225 / .35); border-radius: .85rem; color: var(--gc-color-accent); font-size: 1.45rem; font-weight: 800; }
.article-resources h2 { margin: .3rem 0 .65rem; font-size: clamp(1.7rem, 3vw, 2.35rem); }
.article-resources__intro p:last-child { max-width: 30rem; margin: 0; color: var(--gc-color-muted); line-height: 1.65; }
.article-resources ul { display: grid; gap: .75rem; margin: 0; padding: 0; list-style: none; }
.article-resources li { margin: 0; }
.article-resource-link { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; min-height: 4.6rem; align-items: center; gap: .9rem; padding: .85rem 1rem; background: rgb(8 11 18 / .48); border: 1px solid var(--gc-color-border); border-radius: .85rem; color: var(--gc-color-text); text-decoration: none; transition: transform 160ms ease, border-color 160ms ease, background 160ms ease; }
.article-resource-link:hover { transform: translateY(-2px); background: rgb(159 31 99 / .1); border-color: var(--gc-color-primary-light); color: var(--gc-color-text); }
.article-resource-link__file { display: grid; width: 2.35rem; height: 2.35rem; place-items: center; background: rgb(159 31 99 / .14); border-radius: .65rem; color: var(--gc-color-primary-light); font-size: 1.15rem; font-weight: 800; }
.article-resource-link__content { display: grid; min-width: 0; gap: .18rem; }
.article-resource-link__content strong { overflow-wrap: anywhere; }
.article-resource-link__content small { overflow-wrap: anywhere; color: var(--gc-color-muted); font-weight: 500; }
.article-resource-link__action { color: var(--gc-color-primary-light); font-size: .82rem; font-weight: 800; }
.article-single__aside > div { position: sticky; top: calc(7rem + var(--gc-admin-bar-height) + var(--gc-cgu-notice-height)); padding: 1.4rem; background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: var(--gc-radius); }
.article-single__aside span { font-weight: 800; }
.article-single__aside p { color: var(--gc-color-muted); }
.article-single__aside ul { display: grid; gap: 0.5rem; margin: 0; padding: 0; list-style: none; }
.article-single__aside a { color: var(--gc-color-primary-light); }
.article-reading-card .eyebrow { margin-bottom: 0.45rem; color: var(--gc-color-accent); font-size: 0.68rem; letter-spacing: 0.12em; }
.article-reading-card h2 { margin: 0 0 1.25rem; font-size: 1.5rem; }
.article-reading-card dl { display: grid; gap: 0; margin: 0; }
.article-reading-card dl > div { display: grid; gap: 0.2rem; padding-block: 0.85rem; border-top: 1px solid var(--gc-color-border); }
.article-reading-card dt { color: var(--gc-color-muted); font-size: 0.72rem; font-weight: 800; letter-spacing: 0.05em; text-transform: uppercase; }
.article-reading-card dd { margin: 0; color: var(--gc-color-text); font-size: 0.9rem; font-weight: 750; }
.article-reading-card__topics { padding-top: 1rem; border-top: 1px solid var(--gc-color-border); }
.article-reading-card__topics > span { display: block; margin-bottom: 0.65rem; color: var(--gc-color-muted); font-size: 0.72rem; font-weight: 800; letter-spacing: 0.05em; text-transform: uppercase; }
.article-reading-card__topics > div { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.article-reading-card__topics a { padding: 0.3rem 0.55rem; background: rgb(37 170 225 / 0.08); border: 1px solid rgb(37 170 225 / 0.18); border-radius: 999px; font-size: 0.72rem; font-weight: 750; text-decoration: none; }
.article-reading-card__catalog { display: flex; justify-content: space-between; gap: 1rem; margin-top: 1.2rem; padding-top: 1rem; border-top: 1px solid var(--gc-color-border); font-size: 0.86rem; font-weight: 800; text-decoration: none; }
.article-navigation { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; padding-bottom: clamp(3rem, 8vw, 6rem); }
.article-navigation a { display: flex; height: 100%; flex-direction: column; padding: 1.25rem; background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: var(--gc-radius); color: var(--gc-color-text); text-decoration: none; }
.article-navigation > div:last-child { text-align: right; }
.article-navigation span { margin-bottom: 0.4rem; color: var(--gc-color-muted); font-size: 0.85rem; }
.article-related { padding-block: clamp(3rem, 8vw, 6rem); background: var(--gc-color-surface-alt); }
@media (max-width: 64rem) {
	.articles-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.article-single__layout { grid-template-columns: minmax(0, 1fr); }
	.article-single__layout--editorial { grid-template-columns: minmax(0, 1fr); }
	.article-single__aside { display: none; }
	.article-resources { grid-template-columns: 1fr; }
	.article-resource-link { grid-template-columns: auto minmax(0, 1fr); }
	.article-resource-link__action { grid-column: 2; }
}
@media (max-width: 48rem) {
	.articles-hero__inner,
	.featured-article { grid-template-columns: minmax(0, 1fr); }
	.category-archive__summary { width: 100%; }
	.articles-search { flex-direction: column; }
	.featured-article__media { min-height: 0; aspect-ratio: 16 / 9; }
	.articles-grid { grid-template-columns: 1fr; }
	.articles-results__header,
	.articles-training-cta .site-container,
	.article-course-cta .site-container { align-items: flex-start; flex-direction: column; }
	.article-navigation { grid-template-columns: 1fr; }
	.article-navigation > div:last-child { text-align: left; }
}

/* Catalogue enrichi */
.catalog-paths { padding-block: clamp(3.5rem, 8vw, 6rem); background: var(--gc-color-surface-alt); }
.catalog-paths__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.catalog-path { display: flex; min-height: 15rem; flex-direction: column; padding: 1.5rem; background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: var(--gc-radius); color: var(--gc-color-text); text-decoration: none; transition: transform 180ms ease, border-color 180ms ease; }
.catalog-path:hover,
.catalog-path.is-active { border-color: var(--gc-color-primary-light); transform: translateY(-0.25rem); }
.catalog-path > span { color: var(--gc-color-primary-light); font: 800 0.8rem/1 ui-monospace, SFMono-Regular, Consolas, monospace; }
.catalog-path h3 { margin-block: 1rem 0.5rem; }
.catalog-path p { margin: 0; color: var(--gc-color-muted); }
.catalog-path small { margin-top: auto; padding-top: 1rem; color: var(--gc-color-primary-light); font-weight: 700; }
.catalog-filters--enhanced { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 1.5rem; }
.catalog-filter--search { grid-column: span 2; }
.catalog-filter input { width: 100%; min-height: 2.9rem; padding: 0.7rem 0.85rem; background: #0d111d; border: 1px solid var(--gc-color-border); border-radius: 0.55rem; color: var(--gc-color-text); font: inherit; }
.catalog-filter input:focus { border-color: var(--gc-color-primary-light); outline: 3px solid rgb(159 31 99 / 0.18); }
.catalog-filters__actions { display: flex; align-items: center; gap: 1rem; grid-column: 1 / -1; }
.catalog-active-filters { display: flex; align-items: center; flex-wrap: wrap; gap: 0.6rem; margin: 1.25rem 0 2rem; color: var(--gc-color-muted); }
.catalog-active-filters span { padding: 0.4rem 0.65rem; background: rgb(159 31 99 / 0.14); border: 1px solid rgb(224 122 176 / 0.2); border-radius: 999px; color: var(--gc-color-primary-light); font-size: 0.82rem; text-transform: capitalize; }
.catalog-results__header { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin: 3rem 0 2rem; }
.catalog-results__header h2 { margin: 0; font-size: clamp(2rem, 4vw, 3rem); }
.catalog-results__header > span { color: var(--gc-color-muted); }
.catalog-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.formation-catalog-card { display: flex; overflow: hidden; flex-direction: column; background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: var(--gc-radius); transition: border-color 180ms ease, transform 180ms ease; }
.formation-catalog-card:hover { border-color: var(--gc-color-primary-light); transform: translateY(-0.25rem); }
.formation-catalog-card__media { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; background: #080b12; }
.formation-catalog-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 300ms ease; }
.formation-catalog-card:hover .formation-catalog-card__media img { transform: scale(1.035); }
.formation-catalog-card__media > span:not(.badge) { display: grid; height: 100%; place-items: center; color: var(--gc-color-primary-light); font: 900 2rem/1 monospace; }
.formation-catalog-card__badges { position: absolute; right: 0.8rem; bottom: 0.8rem; left: 0.8rem; display: flex; justify-content: space-between; align-items: flex-end; gap: 0.5rem; }
.formation-catalog-card__technologies { display: flex; flex: 1; min-width: 0; flex-wrap: wrap; gap: .35rem; }
.formation-catalog-card__technologies .badge { max-width: 100%; overflow-wrap: anywhere; white-space: normal; }
.formation-catalog-card__technologies .badge,
.formation-catalog-card__access.badge--inscrit,
.formation-catalog-card__access.badge--member,
.formation-catalog-card__access.badge--membre {
	background: var(--gc-color-surface);
	border-color: var(--gc-color-accent);
	color: var(--gc-color-text);
	box-shadow: 0 2px 6px rgb(0 0 0 / .35);
}
.formation-catalog-card__media > .formation-catalog-card__access { position: absolute; top: .8rem; left: .8rem; z-index: 1; max-width: calc(100% - 1.6rem); }
.badge--premium { background: var(--gc-color-primary); color: #fff; }
.badge--gratuit,
.badge--public { background: #047857; color: #d1fae5; }
.formation-catalog-card__body { display: flex; align-items: flex-start; flex: 1; flex-direction: column; padding: 1.4rem; }
.formation-catalog-card__level { color: var(--gc-color-primary-light); font-size: 0.78rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; }
.formation-catalog-card h3 { margin-block: 0.7rem; font-size: 1.4rem; }
.formation-catalog-card h3 a { color: var(--gc-color-text); text-decoration: none; }
.formation-catalog-card__excerpt { color: var(--gc-color-muted); }
.formation-catalog-card__excerpt p { margin: 0; }
.formation-catalog-card__meta { display: flex; flex-wrap: wrap; gap: 0.8rem 1.2rem; margin: 1.2rem 0 0; padding: 1rem 0 0; border-top: 1px solid var(--gc-color-border); color: var(--gc-color-muted); list-style: none; }
.formation-catalog-card__meta li { display: flex; flex-wrap: wrap; gap: 0.3rem; }
.formation-catalog-card__meta strong { color: var(--gc-color-text); }
.formation-card-progress { width: 100%; margin-top: 1.1rem; }
.formation-card-progress > div { display: flex; justify-content: space-between; margin-bottom: 0.45rem; color: var(--gc-color-muted); font-size: 0.82rem; }
.formation-card-progress progress { width: 100%; height: 0.5rem; overflow: hidden; appearance: none; background: #080a11; border: 0; border-radius: 999px; accent-color: var(--gc-color-primary); }
.formation-card-progress progress::-webkit-progress-bar { background: #080a11; border-radius: 999px; }
.formation-card-progress progress::-webkit-progress-value,
.dashboard-course .formation-progress__track::-webkit-progress-value { background: var(--gc-color-primary); border-radius: 999px; }
.formation-card-progress progress::-moz-progress-bar,
.dashboard-course .formation-progress__track::-moz-progress-bar { background: var(--gc-color-primary); border-radius: 999px; }
.formation-catalog-card__button { width: 100%; margin-top: auto; padding-top: 0.8rem; }
.formation-catalog-card.type-formation .formation-catalog-card__excerpt { margin-bottom: 1.2rem; }
.formation-catalog-card.type-formation .formation-catalog-card__meta { margin-top: auto; }
.formation-catalog-card.type-formation .formation-catalog-card__button { margin-top: 1.2rem; }
.formation-catalog-card.type-formation .formation-card-progress progress { display: block; }
.catalog-empty { padding: clamp(3rem, 8vw, 6rem); background: var(--gc-color-surface); border: 1px dashed #47506a; border-radius: var(--gc-radius); text-align: center; }
.catalog-empty > span { display: grid; width: 4rem; height: 4rem; margin: 0 auto 1.2rem; place-items: center; background: rgb(159 31 99 / 0.14); border-radius: 1rem; color: var(--gc-color-primary-light); font: 900 1rem/1 monospace; }
.catalog-empty p { color: var(--gc-color-muted); }
.catalog-pagination { margin-top: 3rem; }
.catalog-pagination .nav-links { display: flex; justify-content: center; gap: 0.5rem; }
.catalog-pagination .page-numbers { display: grid; min-width: 2.7rem; height: 2.7rem; padding-inline: 0.7rem; place-items: center; border-radius: 0.6rem; color: var(--gc-color-text); text-decoration: none; }
.catalog-pagination a.page-numbers:hover,
.catalog-pagination a.page-numbers:focus-visible { background: var(--gc-color-surface-alt); }
.catalog-pagination .current { background: var(--gc-color-primary); }
@media (max-width: 64rem) {
	.catalog-paths__grid,
	.catalog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.catalog-filters--enhanced { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 48rem) {
	.catalog-paths__grid,
	.catalog-grid,
	.catalog-filters--enhanced { grid-template-columns: 1fr; }
	.catalog-filter--search { grid-column: auto; }
	.catalog-results__header { align-items: flex-start; flex-direction: column; }
	.catalog-filters__actions { align-items: stretch; flex-direction: column; }
}

/* Catalogue UX v2 */
.catalog-page--ux .catalog-hero { padding-block: clamp(3.5rem, 7vw, 5.5rem); }
.catalog-hero__layout { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(25rem, 0.9fr); align-items: center; gap: clamp(2rem, 4vw, 4rem); }
.catalog-hero__copy h1 { max-width: 11ch; margin-block: 0.4rem 1rem; font-size: clamp(3.3rem, 7vw, 5.6rem); line-height: 0.98; }
.catalog-hero__copy > p:not(.eyebrow) { max-width: 43rem; color: var(--gc-color-muted); font-size: clamp(1.05rem, 2vw, 1.2rem); line-height: 1.7; }
.catalog-hero__copy .button { margin-top: 1.2rem; }
.catalog-hero__stats { display: grid; grid-template-columns: repeat(3, 1fr); margin: 0; padding: 1.2rem; background: rgb(18 24 39 / 0.78); border: 1px solid var(--gc-color-border); border-radius: 1rem; backdrop-filter: blur(1rem); }
.catalog-hero__stats div { padding: 0.7rem 1rem; text-align: center; }
.catalog-hero__stats div + div { border-left: 1px solid var(--gc-color-border); }
.catalog-hero__stats dt { color: var(--gc-color-text); font-size: clamp(1.8rem, 4vw, 2.6rem); font-weight: 900; }
.catalog-hero__stats dd { margin: 0.2rem 0 0; color: var(--gc-color-muted); font-size: 0.78rem; letter-spacing: 0.04em; text-transform: uppercase; }
.catalog-hero__offers { padding: clamp(1.25rem, 3vw, 1.75rem); background: rgb(18 24 39 / 0.82); border: 1px solid var(--gc-color-border); border-radius: 1rem; box-shadow: var(--gc-shadow); backdrop-filter: blur(1rem); }
.catalog-hero__offers-title { margin: 0 0 0.8rem; color: var(--gc-color-text); font-size: 1.05rem; font-weight: 800; }
.catalog-hero__offers ul { margin: 0; padding: 0; list-style: none; }
.catalog-hero__offers li { display: flex; align-items: center; gap: 0.9rem; padding-block: 0.9rem; }
.catalog-hero__offers li + li { border-top: 1px solid var(--gc-color-border); }
.catalog-hero__offers li > span { display: grid; width: 2.25rem; height: 2.25rem; flex: 0 0 auto; place-items: center; background: rgb(159 31 99 / 0.14); border-radius: 0.55rem; color: var(--gc-color-primary-light); font: 800 0.72rem/1 ui-monospace, SFMono-Regular, Consolas, monospace; }
.catalog-hero__offers li div { display: grid; gap: 0.15rem; }
.catalog-hero__offers strong { color: var(--gc-color-text); font-size: 0.96rem; }
.catalog-hero__offers small { color: var(--gc-color-muted); font-size: 0.82rem; }
.catalog-page--ux .catalog-paths { padding-block: clamp(2.8rem, 6vw, 4.5rem); }
.catalog-paths__heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 1.6rem; }
.catalog-paths__heading h2 { margin: 0; font-size: clamp(2rem, 4vw, 3rem); }
.catalog-paths__heading > p { max-width: 28rem; margin: 0; color: var(--gc-color-muted); }
.catalog-page--ux .catalog-paths__grid { gap: 0.8rem; }
.catalog-page--ux .catalog-path { display: grid; min-height: 0; grid-template-columns: auto 1fr; gap: 0.8rem 1rem; padding: 1.15rem; }
.catalog-page--ux .catalog-path__number { display: grid; width: 2.4rem; height: 2.4rem; place-items: center; background: rgb(159 31 99 / 0.13); border-radius: 0.65rem; }
.catalog-page--ux .catalog-path h3 { margin: 0; font-size: 1.05rem; }
.catalog-page--ux .catalog-path p { margin-top: 0.25rem; font-size: 0.88rem; }
.catalog-page--ux .catalog-path small { display: flex; justify-content: space-between; grid-column: 2; padding-top: 0.5rem; }
.catalog-page--ux .catalog-content { padding-block: clamp(3rem, 7vw, 5rem); }
.shop-discovery { display: grid; gap: 1.25rem; margin-bottom: clamp(2.5rem, 6vw, 4rem); }
.shop-filters { display: grid; gap: 1rem; padding: clamp(1rem, 2.5vw, 1.4rem); background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: 1rem; box-shadow: var(--gc-shadow); }
.shop-search { display: flex; max-width: 58rem; gap: 0.75rem; }
.shop-search input[type="search"] { min-width: 0; min-height: 3.2rem; flex: 1; padding: 0.8rem 1rem; background: #0b0f19; border: 1px solid var(--gc-color-border); border-radius: 0.7rem; color: var(--gc-color-text); font: inherit; }
.shop-search input[type="search"]::placeholder { color: var(--gc-color-muted); }
.shop-search input[type="search"]:focus { border-color: var(--gc-color-accent); outline: none; box-shadow: 0 0 0 3px rgb(37 170 225 / 0.14); }
.shop-search .button { min-height: 3.2rem; margin: 0; white-space: nowrap; }
.shop-filter-controls { display: grid; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); align-items: end; gap: 0.8rem; padding-top: 1rem; border-top: 1px solid var(--gc-color-border); }
.shop-filter-control { display: grid; gap: 0.4rem; }
.shop-filter-control > span { color: var(--gc-color-muted); font-size: 0.7rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.shop-filter-control select { width: 100%; min-height: 2.8rem; padding: 0.65rem 2.25rem 0.65rem 0.8rem; background: #0b0f19; border: 1px solid var(--gc-color-border); border-radius: 0.6rem; color: var(--gc-color-text); font: inherit; }
.shop-filter-control select:focus { border-color: var(--gc-color-accent); outline: none; box-shadow: 0 0 0 3px rgb(37 170 225 / 0.14); }
.shop-filters__reset { grid-column: 1 / -1; justify-self: start; color: var(--gc-color-primary-light); font-size: 0.85rem; font-weight: 750; }
.shop-category-nav { display: flex; flex-wrap: wrap; gap: 0.65rem; }
.shop-category-nav__item { display: inline-flex; min-height: 2.8rem; align-items: center; gap: 0.65rem; padding: 0.65rem 0.8rem 0.65rem 1rem; background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: 999px; color: var(--gc-color-text); font-size: 0.9rem; font-weight: 750; text-decoration: none; transition: border-color 160ms ease, background 160ms ease, transform 160ms ease; }
.shop-category-nav__item:hover { background: rgb(159 31 99 / 0.1); border-color: var(--gc-color-primary-light); transform: translateY(-1px); }
.shop-category-nav__item.is-active { background: var(--gc-color-primary); border-color: var(--gc-color-primary); color: #fff; }
.shop-category-nav__item small { display: grid; min-width: 1.7rem; height: 1.7rem; padding-inline: 0.35rem; place-items: center; background: rgb(255 255 255 / 0.07); border-radius: 999px; color: var(--gc-color-muted); font-size: 0.72rem; }
.shop-category-nav__item.is-active small { background: rgb(255 255 255 / 0.16); color: #fff; }
.catalog-layout { display: grid; grid-template-columns: 18rem minmax(0, 1fr); align-items: start; gap: clamp(2rem, 5vw, 4rem); }
.catalog-filter-panel { position: sticky; top: calc(6rem + var(--gc-admin-bar-height) + var(--gc-cgu-notice-height)); overflow: hidden; background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: var(--gc-radius); }
.catalog-filter-panel summary { display: flex; align-items: center; gap: 0.7rem; padding: 1.1rem 1.2rem; cursor: pointer; font-weight: 850; list-style: none; }
.catalog-filter-panel summary::-webkit-details-marker { display: none; }
.catalog-filter-panel summary small { display: grid; width: 1.5rem; height: 1.5rem; margin-left: auto; place-items: center; background: var(--gc-color-primary); border-radius: 50%; color: white; font-size: 0.72rem; }
.catalog-filter-panel summary i { margin-left: auto; color: var(--gc-color-muted); font-style: normal; transition: transform 180ms ease; }
.catalog-filter-panel summary small + i { margin-left: 0; }
.catalog-filter-panel[open] summary { border-bottom: 1px solid var(--gc-color-border); }
.catalog-filter-panel[open] summary i { transform: rotate(180deg); }
.catalog-filter-panel .catalog-filters--enhanced { display: grid; grid-template-columns: 1fr; gap: 0.9rem; margin: 0; padding: 1.2rem; background: transparent; border: 0; border-radius: 0; box-shadow: none; }
.catalog-filter-panel .catalog-filter--search { grid-column: auto; }
.catalog-filter-panel .catalog-filter label { margin-bottom: 0.35rem; font-size: 0.7rem; }
.catalog-filter-panel .catalog-filter input,
.catalog-filter-panel .catalog-filter select { min-height: 2.65rem; background: #0b0f19; }
.catalog-filter-panel .catalog-filters__actions { align-items: stretch; flex-direction: column; grid-column: auto; margin-top: 0.3rem; }
.catalog-filter-panel .catalog-filters__actions .button,
.catalog-filter-panel .catalog-filters__reset { width: 100%; text-align: center; }
.catalog-results { min-width: 0; }
.catalog-page--ux .catalog-content--formations {
	position: relative;
	z-index: 1;
	margin-top: calc(-1 * clamp(1.25rem, 3vw, 2.5rem));
	padding-top: 0;
}
.catalog-layout--formations { grid-template-columns: minmax(0, 1fr); row-gap: 1.5rem; }
.catalog-layout--formations .catalog-results-heading { min-width: 0; }
.catalog-page--ux .catalog-layout--formations .catalog-results__header { margin: 0; }
.catalog-layout--formations .catalog-sidebar { display: grid; gap: .75rem; }
.catalog-progress-toggle {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: .7rem;
	padding: .8rem 1rem;
	background: var(--gc-color-surface);
	border: 1px solid var(--gc-color-border);
	border-radius: .85rem;
	color: var(--gc-color-text);
	font-size: .88rem;
	font-weight: 800;
	text-decoration: none;
	transition: background-color 180ms ease, border-color 180ms ease, transform 180ms ease;
}
.catalog-progress-toggle > span:first-child { display: grid; width: 1.7rem; height: 1.7rem; place-items: center; background: rgb(37 170 225 / .12); border-radius: 50%; color: var(--gc-color-accent); font-size: .65rem; }
.catalog-progress-toggle small { color: var(--gc-color-muted); font-size: .7rem; font-weight: 700; }
.catalog-progress-toggle:hover,
.catalog-progress-toggle:focus-visible { border-color: var(--gc-color-accent); transform: translateY(-1px); }
.catalog-progress-toggle.is-active { background: linear-gradient(125deg, rgb(159 31 99 / .22), rgb(37 170 225 / .08)), var(--gc-color-surface); border-color: var(--gc-color-primary-light); }
.catalog-progress-toggle.is-active > span:first-child { background: var(--gc-color-primary); color: #fff; }
.catalog-progress-toggle.is-active small { color: var(--gc-color-primary-light); }
.catalog-layout--formations .catalog-filter-panel {
	position: static;
	background: linear-gradient(125deg, rgb(37 170 225 / .07), transparent 60%), var(--gc-color-surface);
	box-shadow: 0 1rem 3rem rgb(0 0 0 / .12);
}
.catalog-layout--formations .catalog-filter-panel summary { padding: .7rem 1rem; font-size: .85rem; }
.catalog-layout--formations .catalog-filter-panel summary i { display: grid; place-items: center; flex-shrink: 0; width: 1.65rem; height: 1.65rem; border: 1px solid var(--gc-color-border); border-radius: .6rem; }
.catalog-layout--formations .catalog-filter-panel[open] summary { border-bottom-color: transparent; }
.catalog-layout--formations .catalog-filter label { color: var(--gc-color-muted); letter-spacing: .03em; font-size: .65rem; margin-bottom: .25rem; }
.catalog-layout--formations .catalog-search-field {
	display: flex;
	align-items: center;
	gap: .55rem;
	padding-inline: .75rem;
	background: var(--gc-color-background);
	border: 1px solid var(--gc-color-border);
	border-radius: .8rem;
}
.catalog-search-field svg { width: 1rem; height: 1rem; flex-shrink: 0; fill: none; stroke: var(--gc-color-accent); stroke-width: 1.7; stroke-linecap: round; }
.catalog-layout--formations .catalog-search-field input { min-width: 0; min-height: 2.7rem; padding: .45rem 0; background: transparent; border: 0; outline: none; font-size: .85rem; }
.catalog-layout--formations .catalog-search-field:focus-within { border-color: var(--gc-color-accent); outline: 3px solid rgb(37 170 225 / .16); }
.catalog-layout--formations .catalog-filter select { min-width: 0; min-height: 2.5rem; padding: .45rem .65rem; font-size: .8rem; border-radius: .65rem; }
.catalog-layout--formations .catalog-filter select:focus-visible { border-color: var(--gc-color-accent); outline: 3px solid rgb(37 170 225 / .16); }
.catalog-layout--formations .catalog-filters__actions { padding-top: .65rem; border-top: 1px solid var(--gc-color-border); }
.catalog-layout--formations .catalog-filters__actions .button { min-height: 2.5rem; padding: .5rem 1rem; font-size: .8rem; }
.catalog-layout--formations .catalog-filters--enhanced { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .7rem; padding: .15rem 1rem 1rem; }
.catalog-layout--formations .catalog-filter { min-width: 0; }
.catalog-layout--formations .catalog-filter--search { grid-column: 1 / -1; }
.catalog-layout--formations .catalog-filters__actions { grid-column: 1 / -1; flex-direction: row; justify-content: flex-end; align-items: center; flex-wrap: wrap; }
.catalog-layout--formations .catalog-filters__actions .button,
.catalog-layout--formations .catalog-filters__reset { width: auto; }
.catalog-layout--products { grid-template-columns: minmax(0, 1fr); }
.product-catalog-card__meta { align-items: center; justify-content: space-between; }
.product-catalog-card__meta .price { margin: 0; color: var(--gc-color-text); font-size: 1.15rem; }
.product-catalog-card__meta .price small { color: var(--gc-color-muted); font-size: 0.7rem; font-weight: 500; }
.product-price-free { display: inline-flex; align-items: center; min-height: 1.8rem; padding: .3rem .7rem; background: rgb(34 197 94 / .14); border: 1px solid rgb(74 222 128 / .45); border-radius: 999px; color: #86efac; font-size: .82rem; font-weight: 800; line-height: 1; }
.woocommerce .product-catalog-card a.button.formation-catalog-card__button,
.woocommerce-page .product-catalog-card a.button.formation-catalog-card__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.9rem;
	margin-top: 1.2rem;
	padding: 0.8rem 1.25rem;
	background: rgb(255 255 255 / 0.025);
	border: 1px solid var(--gc-color-border);
	border-radius: 0.7rem;
	color: var(--gc-color-text);
	font-size: 1rem;
	font-weight: 750;
	line-height: 1.2;
	text-align: center;
}
.catalog-page--ux .catalog-active-filters { margin: 0 0 1.5rem; padding: 0.85rem 1rem; background: rgb(159 31 99 / 0.07); border: 1px solid rgb(224 122 176 / 0.15); border-radius: 0.8rem; }
.catalog-page--ux .catalog-active-filters > a { margin-left: auto; color: #fca5a5; font-size: 0.82rem; font-weight: 700; }
.catalog-page--ux .catalog-results__header { margin: 0 0 1.5rem; }
.catalog-page--ux .catalog-results__header h2 { font-size: clamp(2rem, 3.5vw, 2.8rem); }
.catalog-page--ux .catalog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.catalog-page--ux .catalog-layout--formations .catalog-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.catalog-page--ux .catalog-layout--products .catalog-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.catalog-page--ux .formation-catalog-card { box-shadow: 0 1rem 2.5rem rgb(0 0 0 / 0.1); }
.catalog-page--ux .formation-catalog-card__media { aspect-ratio: 16 / 8.7; }
.catalog-page--ux .formation-catalog-card__media::after { position: absolute; inset: auto 0 0; height: 45%; background: linear-gradient(transparent, rgb(5 7 12 / 0.8)); content: ""; pointer-events: none; }
.catalog-page--ux .formation-catalog-card__badges { z-index: 1; }
.catalog-page--ux .formation-catalog-card__body { padding: 1.35rem; }
.catalog-page--ux:not(.shop-page) .formation-catalog-card__excerpt { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.catalog-page--ux .formation-catalog-card__meta { width: 100%; }
.shop-page .product-catalog-card .formation-catalog-card__excerpt { margin-bottom: 1.2rem; }
.product-catalog-card__tags { justify-content: flex-start; margin: 0 0 0.9rem; }
.shop-page .product-catalog-card .product-catalog-card__meta { margin-top: auto; }
.catalog-page--ux .formation-catalog-card__button { min-height: 2.9rem; margin-top: 1.2rem; }
@media (max-width: 64rem) {
	.catalog-hero__layout { grid-template-columns: 1fr; gap: 2rem; }
	.shop-filter-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.catalog-hero__stats { max-width: 36rem; }
	.catalog-hero__offers { max-width: 36rem; }
	.catalog-layout { grid-template-columns: 1fr; }
	.catalog-page--ux .catalog-layout--formations .catalog-grid,
	.catalog-page--ux .catalog-layout--products .catalog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.catalog-filter-panel { position: static; }
	.catalog-filter-panel .catalog-filters--enhanced { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.catalog-filter-panel .catalog-filter--search { grid-column: span 2; }
	.catalog-layout--formations .catalog-filter--search { grid-column: 1 / -1; }
	.catalog-filter-panel .catalog-filters__actions { flex-direction: row; grid-column: 1 / -1; }
	.catalog-filter-panel .catalog-filters__actions .button,
	.catalog-filter-panel .catalog-filters__reset { width: auto; }
}
@media (max-width: 48rem) {
	.shop-search { align-items: stretch; flex-direction: column; }
	.shop-search .button { width: 100%; }
	.shop-filter-controls { grid-template-columns: 1fr; }
	.shop-category-nav { padding-right: 1.5rem; flex-wrap: nowrap; overflow-x: auto; scroll-padding-inline: 1.5rem; scroll-snap-type: x proximity; }
	.shop-category-nav__item { flex: 0 0 auto; scroll-snap-align: start; }
	.catalog-hero__stats { grid-template-columns: 1fr; }
	.catalog-hero__stats div + div { border-top: 1px solid var(--gc-color-border); border-left: 0; }
	.catalog-paths__heading { align-items: flex-start; flex-direction: column; }
	.catalog-page--ux .catalog-paths__grid { display: flex; padding-bottom: .5rem; overflow-x: auto; scroll-snap-type: x mandatory; }
	.catalog-page--ux .catalog-path { flex: 0 0 min(18rem, 90%); min-width: 0; scroll-snap-align: start; }
	.catalog-filter-panel .catalog-filters--enhanced { grid-template-columns: 1fr; }
	.catalog-filter-panel .catalog-filter--search { grid-column: auto; }
	.catalog-filter-panel .catalog-filters__actions { align-items: stretch; flex-direction: column; }
	.catalog-filter-panel .catalog-filters__actions .button,
	.catalog-filter-panel .catalog-filters__reset { width: 100%; }
	.catalog-page--ux .catalog-grid { grid-template-columns: 1fr; }
	.catalog-page--ux .catalog-layout--formations .catalog-grid,
	.catalog-page--ux .catalog-layout--products .catalog-grid { grid-template-columns: 1fr; }
	.catalog-page--ux .catalog-active-filters > a { width: 100%; margin-left: 0; }
}
/* Expérience éditoriale v2 */
.articles-hero { padding-block: clamp(3rem, 7vw, 5.5rem); }
.articles-hero h1 { max-width: 13ch; font-size: clamp(2.8rem, 6vw, 4.8rem); }
.articles-search { padding: 0.7rem; background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: 1rem; box-shadow: var(--gc-shadow); }
.articles-technologies { padding-block: 0.7rem; background: var(--gc-color-surface); border-bottom: 1px solid var(--gc-color-border); }
.articles-technologies .site-container { display: flex; flex-wrap: wrap; align-items: center; gap: 0.55rem; }
.articles-technologies span { flex: 0 0 auto; color: var(--gc-color-muted); font-size: 0.78rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.articles-technologies a { flex: 0 0 auto; max-width: 100%; padding: 0.35rem 0.7rem; border-radius: 999px; color: var(--gc-color-muted); font-size: 0.86rem; font-weight: 700; text-decoration: none; }
.articles-technologies a:hover,
.articles-technologies a.is-active { background: rgb(159 31 99 / 0.16); color: var(--gc-color-primary-light); }
.article-card__body { min-height: 18rem; }
.article-card__title { font-size: 1.3rem; }
.reading-progress { --reading-progress: 0%; position: fixed; z-index: 30; top: 0; left: 0; width: var(--reading-progress); height: 0.22rem; background: linear-gradient(90deg, var(--gc-color-primary), var(--gc-color-accent)); pointer-events: none; }
body.admin-bar .reading-progress { top: var(--gc-admin-bar-height); }
.article-single__actions { display: flex; justify-content: center; margin-top: 1.4rem; }
.article-toc ol { display: grid; gap: 0.65rem; margin: 1rem 0 0; padding: 0; list-style: none; counter-reset: toc; }
.article-toc li { counter-increment: toc; }
.article-toc li::before { content: counter(toc, decimal-leading-zero); margin-right: 0.55rem; color: var(--gc-color-primary-light); font: 700 0.72rem/1 monospace; }
.article-toc li.is-subsection { padding-left: 1rem; }
.article-toc a { color: var(--gc-color-muted); font-size: 0.88rem; text-decoration: none; }
.article-toc a:hover { color: var(--gc-color-text); }
.gc-code-copy,
:is(.article-single__content, .standard-page .entry-content, .formation-content) pre.gc-code-copy { position: relative; padding-top: 3.2rem; }
.code-copy-button { position: absolute; top: 0.65rem; right: 0.65rem; padding: 0.4rem 0.7rem; background: var(--gc-color-surface-alt); border: 1px solid var(--gc-color-border); border-radius: 0.45rem; color: var(--gc-color-text); cursor: pointer; font: inherit; font-size: 0.78rem; font-weight: 800; }
.code-copy-button:hover,
.code-copy-button:focus-visible { border-color: var(--gc-color-primary-light); }
.article-comments { max-width: none; padding-bottom: clamp(3rem, 7vw, 6rem); }
.comments-area { padding: clamp(1.1rem, 2.5vw, 1.75rem); background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: 1.2rem; }
.comments-area > h2 { margin: 0 0 1rem; font-size: clamp(1.35rem, 2.4vw, 1.75rem); }
.comment-submission-status:empty { display: none; }
.comment-submission-status:focus { outline: none; }
.comment-submission-notice { margin-bottom: 1.4rem; padding: 1rem 1.1rem; background: var(--gc-color-surface-alt); border: 1px solid var(--gc-color-border); border-left: 0.24rem solid var(--gc-color-accent); border-radius: 0.75rem; }
.comment-submission-notice--published { border-left-color: var(--gc-color-accent); }
.comment-submission-notice--pending { border-left-color: var(--gc-color-primary-light); }
.comment-submission-notice--error { border-left-color: #ef6b73; }
.comment-submission-notice strong { display: block; color: var(--gc-color-text); }
.comment-submission-notice p { margin: 0.3rem 0 0; color: var(--gc-color-muted); }
.comment-list { display: grid; gap: 0.65rem; margin: 0 0 1.35rem; padding: 0; list-style: none; }
.comment-list li { margin: 0; list-style: none; }
.comment-body { display: grid; grid-template-columns: 2.35rem minmax(0, 1fr); gap: 0.35rem 0.75rem; padding: 0.8rem 0.95rem; background: linear-gradient(135deg, rgb(37 170 225 / 0.025), rgb(159 31 99 / 0.035)), var(--gc-color-surface-alt); border: 1px solid transparent; border-radius: 0.8rem; transition: border-color 160ms ease, background 160ms ease; }
.comment-body:hover { background-color: rgb(24 29 47 / 0.96); border-color: rgb(37 170 225 / 0.16); }
.comment-meta { display: grid; grid-column: 1 / -1; grid-template-columns: minmax(0, 1fr) auto; gap: 0.5rem 1rem; align-items: center; font-size: 0.8rem; }
.comment-author { display: flex; min-width: 0; align-items: center; gap: 0.65rem; color: var(--gc-color-muted); }
.comment-author .fn { overflow: hidden; color: var(--gc-color-text); font-style: normal; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.comment-author .says { color: var(--gc-color-muted); font-size: 0.75rem; }
.comment-author .avatar { display: inline-block; width: 2.35rem; height: 2.35rem; flex: 0 0 2.35rem; margin: 0; background: var(--gc-color-background); border: 1px solid var(--gc-color-border); border-radius: 50%; object-fit: cover; vertical-align: middle; }
.comment-author .avatar--fallback { display: inline-flex; align-items: center; justify-content: center; color: var(--gc-color-accent); font-size: 0.72rem; font-weight: 800; letter-spacing: 0.04em; }
.comment-metadata { display: flex; align-items: center; gap: 0.55rem; color: var(--gc-color-muted); font-size: 0.75rem; white-space: nowrap; }
.comment-metadata a { color: inherit; text-decoration: none; }
.comment-metadata a:hover,
.comment-metadata a:focus-visible { color: var(--gc-color-primary-light); }
.comment-content { grid-column: 2; color: var(--gc-color-text); line-height: 1.55; }
.comment-content > :first-child { margin-top: 0; }
.comment-content > :last-child { margin-bottom: 0; }
.comment-body .reply { grid-column: 2; }
.comment-body .reply a { display: inline-flex; align-items: center; min-height: 1.85rem; padding: 0.25rem 0.6rem; background: rgb(159 31 99 / 0.1); border: 1px solid rgb(224 122 176 / 0.2); border-radius: 999px; color: var(--gc-color-primary-light); font-size: 0.75rem; font-weight: 750; line-height: 1; text-decoration: none; }
.comment-body .reply a:hover,
.comment-body .reply a:focus-visible { background: rgb(159 31 99 / 0.2); border-color: var(--gc-color-primary-light); color: #fff; }
.comment-list .children { display: grid; gap: 0.65rem; margin: 0.65rem 0 0 1.15rem; padding: 0 0 0 0.85rem; border-left: 2px solid rgb(37 170 225 / 0.2); list-style: none; }
.comment-list .children .comment-body { background-color: rgb(14 18 30 / 0.72); }
.comments-area .comment-respond { margin-top: 1.35rem; padding-top: 1.2rem; border-top: 1px solid var(--gc-color-border); }
.comments-area .comment-reply-title { margin: 0 0 0.85rem; font-size: clamp(1.25rem, 2vw, 1.55rem); }
.comment-form { display: grid; gap: 0.8rem; }
.comment-form > p { margin: 0; }
.comment-form textarea,
.comment-form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]) { width: 100%; padding: 0.8rem; background: var(--gc-color-background); border: 1px solid var(--gc-color-border); border-radius: 0.55rem; color: var(--gc-color-text); font: inherit; }
.comment-form textarea { height: 8rem; min-height: 6rem; resize: vertical; }
.dashboard-empty--compact { padding-block: 2rem; }
.dashboard-reading-history { display: grid; gap: 0.65rem; margin: 0; padding: 0; list-style: none; }
.dashboard-reading-history li { display: flex; justify-content: space-between; gap: 1rem; padding: 1rem; background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: 0.75rem; }
.dashboard-reading-history a { color: var(--gc-color-text); font-weight: 750; text-decoration: none; }
.dashboard-reading-history span { flex: 0 0 auto; color: var(--gc-color-muted); }
@media (max-width: 48rem) {
	.article-card__body { min-height: 0; }
	.article-card__tags--empty { display: none; }
	.article-single__actions .button { width: 100%; }
	.dashboard-reading-history li { align-items: flex-start; flex-direction: column; }
	.comment-meta { grid-template-columns: 1fr; gap: 0.3rem; }
	.comment-metadata { padding-left: 3rem; white-space: normal; }
	.comment-list .children { margin-left: 0.45rem; padding-left: 0.65rem; }
}
/* Premium, accès et navigation v2 */
.site-menu-toggle { display: none; width: 2.85rem; height: 2.85rem; padding: 0.65rem; background: transparent; border: 1px solid var(--gc-color-border); border-radius: 0.7rem; color: var(--gc-color-text); cursor: pointer; }
.site-menu-toggle > span:not(.screen-reader-text) { display: block; width: 100%; height: 2px; margin: 0.25rem 0; background: currentColor; transition: transform 180ms ease, opacity 180ms ease; }
.site-menu-toggle[aria-expanded="true"] > span:first-child { transform: translateY(6px) rotate(45deg); }
.site-menu-toggle[aria-expanded="true"] > span:nth-child(2) { opacity: 0; }
.site-menu-toggle[aria-expanded="true"] > span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
.site-header__cart-fragment { display: contents; }
.site-header__cart { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; padding: 0; border: 1px solid var(--gc-color-border); border-radius: 50%; color: var(--gc-color-text); text-decoration: none; }
.site-header__cart:hover { background: rgb(159 31 99 / 0.13); border-color: var(--gc-color-primary-light); color: var(--gc-color-text); }
.site-header__cart-icon { width: 1.1rem; height: 1.1rem; flex: none; background: currentColor; color: var(--gc-color-primary-light); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M3 3h2l2.4 11.2a2 2 0 0 0 2 1.6h7.9a2 2 0 0 0 2-1.6L21 7H6M10 21a1 1 0 1 0 0-2 1 1 0 0 0 0 2Zm8 0a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M3 3h2l2.4 11.2a2 2 0 0 0 2 1.6h7.9a2 2 0 0 0 2-1.6L21 7H6M10 21a1 1 0 1 0 0-2 1 1 0 0 0 0 2Zm8 0a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z'/%3E%3C/svg%3E") center / contain no-repeat; }
.site-header__cart-count { position: absolute; top: -0.4rem; right: -0.4rem; display: grid; min-width: 1.25rem; height: 1.25rem; padding-inline: 0.25rem; place-items: center; background: var(--gc-color-primary); border: 2px solid var(--gc-color-background); border-radius: 999px; color: #fff; font-size: 0.7rem; line-height: 1; }
.site-navigation__account-link,
.site-navigation__login-link { display: none; }
.site-account-menu { position: relative; }
.site-account-menu > summary { min-height: 2.75rem; gap: 0.55rem; padding: 0.3rem 0.7rem 0.3rem 0.3rem; border-radius: 999px; list-style: none; cursor: pointer; }
.site-account-menu > summary::-webkit-details-marker { display: none; }
.site-account-menu__avatar { display: inline-flex; width: 2rem; height: 2rem; flex: 0 0 2rem; align-items: center; justify-content: center; overflow: hidden; background: var(--gc-color-background); border: 1px solid var(--gc-color-border); border-radius: 50%; color: var(--gc-color-accent); font-size: 0.6rem; font-weight: 800; }
.site-account-menu__avatar .avatar { width: 100%; height: 100%; border-radius: inherit; object-fit: cover; }
.site-account-menu__avatar .avatar--fallback { display: inline-flex; align-items: center; justify-content: center; }
.site-account-menu__identity { display: grid; min-width: 0; text-align: left; }
.site-account-menu__identity strong { max-width: 8rem; overflow: hidden; color: var(--gc-color-text); font-size: 0.78rem; line-height: 1.1; text-overflow: ellipsis; white-space: nowrap; }
.site-account-menu__identity > span { color: var(--gc-color-muted); font-size: 0.66rem; font-weight: 650; line-height: 1.15; }
.site-account-menu__panel { position: absolute; top: calc(100% + 0.65rem); right: 0; z-index: 30; display: grid; min-width: 12rem; padding: 0.45rem; background: rgb(17 21 34 / 0.99); border: 1px solid var(--gc-color-border); border-radius: 0.8rem; box-shadow: var(--gc-shadow); }
.site-account-menu__panel a { padding: 0.7rem 0.85rem; border-radius: 0.55rem; color: var(--gc-color-text); font-size: 0.88rem; font-weight: 700; text-decoration: none; white-space: nowrap; }
.site-account-menu__panel a:hover,
.site-account-menu__panel a:focus-visible { background: rgb(159 31 99 / 0.16); color: var(--gc-color-text); }
.site-navigation .current-menu-item > a { position: relative; color: var(--gc-color-text); }
.site-navigation .current-menu-item > a::after { position: absolute; right: 0; bottom: -0.65rem; left: 0; height: 0.16rem; background: var(--gc-color-primary); border-radius: 999px; content: ""; }
.premium-page .premium-hero { padding-block: clamp(2.5rem, 5vw, 4rem); }
.premium-page .premium-hero h1 { max-width: 11ch; font-size: clamp(3.2rem, 6vw, 5.4rem); }
.premium-audiences { position: relative; z-index: 2; margin-top: -2.2rem; }
.premium-audiences__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: hidden; padding: 0; background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: 1.2rem; box-shadow: var(--gc-shadow); }
.premium-audiences article { position: relative; padding: clamp(1.35rem, 3vw, 2rem); }
.premium-audiences article + article { border-left: 1px solid var(--gc-color-border); }
.premium-audiences article.is-premium { background: linear-gradient(145deg, rgb(159 31 99 / 0.2), rgb(37 170 225 / 0.05)); }
.premium-audiences article > span { color: var(--gc-color-primary-light); font: 800 0.78rem/1 monospace; }
.premium-audiences h2 { margin: 1rem 0 0.35rem; font-size: 1.55rem; }
.premium-audiences strong { color: var(--gc-color-primary-light); }
.premium-audiences p { margin: 0.8rem 0 0; color: var(--gc-color-muted); }
.premium-comparison-wrap { max-width: 70rem; }
.premium-comparison { min-width: 46rem; }
.premium-comparison thead th:last-child,
.premium-comparison tbody td:last-child { background: rgb(159 31 99 / 0.1); }
.premium-comparison td { color: var(--gc-color-muted); font-weight: 750; }
.premium-comparison td:last-child { color: var(--gc-color-primary-light); }
.premium-comparison-note { max-width: 52rem; margin: 1rem auto 0; color: var(--gc-color-muted); font-size: 0.9rem; line-height: 1.6; text-align: center; }
.content-preview { position: relative; max-height: 12rem; overflow: hidden; }
.content-preview::after { position: absolute; inset: auto 0 0; height: 8rem; background: linear-gradient(transparent, var(--gc-color-background)); content: ""; }
.content-access-lock { margin-top: 1rem; padding: clamp(1.5rem, 5vw, 2.8rem); background: linear-gradient(145deg, rgb(159 31 99 / 0.15), var(--gc-color-surface)); border: 1px solid var(--gc-color-primary); border-radius: 1rem; text-align: center; }
.content-access-lock > span { display: grid; width: 3.4rem; height: 3.4rem; margin: 0 auto 1rem; place-items: center; background: var(--gc-color-primary); border-radius: 50%; font-size: 1.5rem; }
.content-access-lock h2 { margin-top: 0.4rem; }
.content-access-lock .button-group { justify-content: center; margin-top: 1.3rem; }
@media (max-width: 64rem) {
	.site-header__inner { flex-wrap: nowrap; }
	.site-menu-toggle { display: block; order: 3; }
	.site-navigation { position: absolute; top: calc(100% + 0.5rem); right: 1.25rem; left: 1.25rem; display: none; width: auto; padding: 0.75rem; background: rgb(17 21 34 / 0.98); border: 1px solid var(--gc-color-border); border-radius: 1rem; box-shadow: var(--gc-shadow); }
	.site-navigation.is-open { display: block; }
	.site-navigation__menu { align-items: stretch; flex-direction: column; gap: 0.2rem; }
	.site-navigation a { display: block; padding: 0.8rem 1rem; border-radius: 0.65rem; }
	.site-navigation .current-menu-item > a { background: rgb(159 31 99 / 0.13); }
	.site-navigation .current-menu-item > a::after { display: none; }
	.site-header__actions { margin-left: auto; }
	.site-account-menu__identity { display: none; }
	.site-header__actions .site-account-menu > summary {
		display: inline-flex;
		width: 2.85rem;
		height: 2.85rem;
		min-height: 2.85rem;
		justify-content: center;
		padding: 0;
		background: transparent;
		border: 0;
		border-radius: 50%;
		box-shadow: none;
	}
	.site-header__actions .site-account-menu > summary:hover { background: transparent; }
	.site-header__actions .site-account-menu > summary:focus-visible { outline: 2px solid var(--gc-color-accent); outline-offset: 2px; }
	.site-header__actions .site-account-menu__avatar { width: 2.65rem; height: 2.65rem; flex-basis: 2.65rem; }
	.site-navigation__account-link { display: list-item; }
	.site-navigation__account-link > a { color: var(--gc-color-text); font-weight: 750; }
	.premium-audiences__grid { grid-template-columns: 1fr; }
	.premium-audiences article + article { border-top: 1px solid var(--gc-color-border); border-left: 0; }
}
@media (max-width: 38rem) {
	:root { --gc-header-height: 4.4rem; }
	.site-header__inner { align-items: center; min-height: 4.4rem; gap: .5rem; }
	.site-header__actions { width: auto; gap: .5rem; }
	.site-header__cart { width: 2.65rem; padding: 0; justify-content: center; }
	.site-header__cart-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
	.site-header__cart-count { position: absolute; top: -0.35rem; right: -0.35rem; border: 2px solid var(--gc-color-background); }
	.site-header__actions a.button.button--ghost { display: none; }
	.site-header__actions .site-account-menu > summary { padding: 0; }
	.site-navigation__login-link { display: list-item; }
	.site-header__actions .button { flex: none; min-height: 2.65rem; padding-inline: 0.8rem; }
	.site-header__actions .site-header__premium-link { max-width: 7.25rem; padding-inline: 0.5rem; font-size: 0.78rem; line-height: 1.1; text-align: center; white-space: normal; }
	.site-brand:not(.site-brand--footer) { width: 2.7rem; }
	.site-brand:not(.site-brand--footer) .site-brand__logo { width: 2.7rem; max-width: none; height: 2.7rem; object-fit: contain; }
	.site-navigation { right: 0.75rem; left: 0.75rem; }
	.premium-page .premium-hero { padding-block: 2.25rem 3.5rem; }
	.premium-page .premium-hero h1 { font-size: clamp(3rem, 16vw, 4.5rem); }
	.content-access-lock .button-group { align-items: stretch; flex-direction: column; }
}
@media (max-width: 22rem) {
	.site-header__inner, .site-header__actions { gap: 0.25rem; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; }
}
.lesson-preview { max-width: 46rem; margin: 0 auto 1rem; padding: 1.25rem; background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: 0.8rem; color: var(--gc-color-muted); }
.lesson-preview p:last-child { margin-bottom: 0; }
/* Pages juridiques */
.legal-page { background: var(--gc-color-background); }
.legal-hero { padding-block: clamp(3.5rem, 8vw, 6rem); background: radial-gradient(circle at 82% 18%, rgb(159 31 99 / 0.22), transparent 28rem), var(--gc-color-surface); border-bottom: 1px solid var(--gc-color-border); }
.legal-hero .site-container { width: min(calc(100% - 2rem), 70rem); }
.legal-hero h1 { max-width: 18ch; margin-block: 0.5rem 1rem; font-size: clamp(3rem, 6vw, 5rem); }
.legal-hero p:not(.eyebrow) { max-width: 48rem; color: var(--gc-color-muted); font-size: 1.15rem; }
.legal-layout { display: grid; grid-template-columns: 18rem minmax(0, 48rem); justify-content: center; gap: clamp(2.5rem, 4vw, 4rem); padding-block: clamp(3.5rem, 8vw, 6rem); }
.legal-summary { position: sticky; top: calc(7rem + var(--gc-admin-bar-height) + var(--gc-cgu-notice-height)); align-self: start; padding: 1.2rem; background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: var(--gc-radius); }
.legal-summary strong { font-size: 0.82rem; letter-spacing: 0.06em; text-transform: uppercase; }
.legal-summary ol { display: grid; gap: 0.6rem; margin: 1rem 0 0; padding-left: 1.4rem; color: var(--gc-color-primary-light); }
.legal-summary a { color: var(--gc-color-muted); font-size: 0.9rem; hyphens: none; overflow-wrap: normal; text-decoration: none; word-break: normal; }
.legal-summary a:hover { color: var(--gc-color-text); }
.legal-content { min-width: 0; }
.legal-content > section { padding-block: 2.6rem; scroll-margin-top: calc(7rem + var(--gc-admin-bar-height) + var(--gc-cgu-notice-height)); border-bottom: 1px solid var(--gc-color-border); }
.legal-content > section:first-of-type { padding-top: 1rem; }
.legal-content h2 { margin-block: 0.45rem 1rem; font-size: clamp(1.8rem, 4vw, 2.6rem); }
.legal-content h3 { margin-bottom: 0.6rem; }
.legal-content p,
.legal-content li { color: var(--gc-color-muted); }
.legal-content a { color: var(--gc-color-primary-light); }
.legal-content .legal-number { margin: 0; color: var(--gc-color-primary-light); font: 800 0.78rem/1 monospace; }
.legal-warning,
.legal-status { display: flex; gap: 1rem; margin-bottom: 2rem; padding: 1.2rem; border-radius: 0.9rem; }
.legal-warning { background: rgb(245 158 11 / 0.1); border: 1px solid rgb(245 158 11 / 0.4); }
.legal-warning strong { color: #fbbf24; }
.legal-warning p,
.legal-status p { margin: 0.3rem 0 0; }
.legal-status { align-items: flex-start; background: rgb(16 185 129 / 0.1); border: 1px solid rgb(16 185 129 / 0.35); }
.legal-status > span { display: grid; width: 2.2rem; height: 2.2rem; flex: 0 0 auto; place-items: center; background: #047857; border-radius: 50%; color: white; }
.legal-missing { display: inline-flex; padding: 0.25rem 0.5rem; background: rgb(245 158 11 / 0.12); border: 1px solid rgb(245 158 11 / 0.35); border-radius: 0.4rem; color: #fbbf24; font-size: 0.85rem; font-weight: 750; }
.legal-details,
.legal-content dl { display: grid; margin: 0; overflow: hidden; border: 1px solid var(--gc-color-border); border-radius: 0.8rem; }
.legal-details > div,
.legal-content dl > div { display: grid; grid-template-columns: minmax(9rem, 0.7fr) minmax(0, 1.3fr); gap: 1rem; padding: 0.9rem 1rem; }
.legal-details > div + div,
.legal-content dl > div + div { border-top: 1px solid var(--gc-color-border); }
.legal-details dt,
.legal-content dl dt { color: var(--gc-color-muted); font-size: 0.85rem; }
.legal-details dd,
.legal-content dl dd { margin: 0; color: var(--gc-color-text); font-weight: 700; overflow-wrap: anywhere; }
.legal-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.legal-cards article { padding: 1.2rem; background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: 0.8rem; }
.legal-cards article p { margin-bottom: 0; }
.legal-table-scroll { overflow-x: auto; border: 1px solid var(--gc-color-border); border-radius: 0.8rem; }
.legal-table { width: 100%; min-width: 38rem; border-collapse: collapse; }
.legal-table th,
.legal-table td { padding: 1rem; border-bottom: 1px solid var(--gc-color-border); text-align: left; }
.legal-table th { background: var(--gc-color-surface); color: var(--gc-color-text); }
.legal-table tr:last-child td { border-bottom: 0; }
.legal-page--cookies .legal-table { table-layout: fixed; }
.legal-page--cookies .legal-table :is(th, td) { overflow-wrap: normal; word-break: normal; }
.legal-page--cookies .legal-table th:first-child { width: 20%; }
.legal-page--cookies .legal-table th:nth-child(2) { width: 50%; }
.legal-page--cookies .legal-table th:nth-child(3) { width: 30%; }
.legal-page--cookies .legal-table-scroll + h3 { margin-top: 2rem; }
.legal-updated { margin-top: 2rem; font-size: 0.85rem; }
.legal-model { margin-top: 1.5rem; padding: 1.25rem; background: var(--gc-color-surface); border: 1px dashed var(--gc-color-border); border-radius: 0.8rem; }
.legal-model h3 { margin-top: 0; }
.auth-field--consent label { display: flex; align-items: flex-start; gap: 0.7rem; font-weight: 500; line-height: 1.5; }
.auth-field--consent input { width: 1.1rem; height: 1.1rem; flex: 0 0 auto; margin-top: 0.2rem; accent-color: var(--gc-color-primary-light); }
.auth-field--consent a,
.gc-digital-consent a { color: var(--gc-color-primary-light); }
.woocommerce-checkout .gc-digital-consent { margin-top: 1rem; padding: 1rem; background: rgb(37 170 225 / 0.08); border: 1px solid rgb(37 170 225 / 0.28); border-radius: 0.7rem; }
.woocommerce-checkout .gc-digital-consent label { display: flex; align-items: flex-start; gap: 0.65rem; margin: 0; line-height: 1.5; }
.woocommerce-checkout .gc-digital-consent input { flex: 0 0 auto; margin-top: 0.25rem; }
.site-footer__legal { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 0.5rem 1.2rem; }
.site-footer__legal a { color: var(--gc-color-muted); }
@media (max-width: 64rem) {
	.legal-layout { grid-template-columns: minmax(0, 48rem); }
	.legal-summary { position: static; }
}
@media (max-width: 48rem) {
	.legal-details > div,
	.legal-content dl > div { grid-template-columns: 1fr; gap: 0.3rem; }
	.legal-cards { grid-template-columns: 1fr; }
	.site-footer__bottom { align-items: flex-start; flex-direction: column; }
	.site-footer__legal { justify-content: flex-start; }
}
/* Maintenance */
.maintenance-page { min-height: 100vh; min-height: 100svh; background: radial-gradient(circle at top, rgba(124, 58, 237, 0.2), transparent 34rem), var(--gc-color-background); }
.maintenance-page__main { display: grid; min-height: 100vh; min-height: 100svh; padding: clamp(1.5rem, 5vw, 4rem); place-items: center; }
.maintenance-card { width: min(100%, 42rem); padding: clamp(2rem, 6vw, 4.5rem); text-align: center; background: rgba(17, 24, 39, 0.92); border: 1px solid var(--gc-color-border); border-radius: clamp(1.2rem, 3vw, 2rem); box-shadow: 0 2rem 5rem rgba(0, 0, 0, 0.3); }
.maintenance-brand { display: flex; justify-content: center; margin-bottom: 2.5rem; }
.maintenance-brand__logo { width: min(100%, 15rem); height: auto; }
.maintenance-card h1 { max-width: 12ch; margin: 0.6rem auto 1.2rem; font-size: clamp(2.4rem, 8vw, 4.6rem); line-height: 1; }
.maintenance-card > p:not(.eyebrow, .maintenance-card__status) { max-width: 35rem; margin-inline: auto; color: var(--gc-color-muted); font-size: clamp(1rem, 2vw, 1.15rem); }
.maintenance-card__status { display: flex; justify-content: center; align-items: center; gap: 0.65rem; margin: 2rem 0; color: var(--gc-color-muted); font-size: 0.9rem; }
.maintenance-card__status span { width: 0.65rem; height: 0.65rem; background: #34d399; border-radius: 50%; box-shadow: 0 0 0 0.3rem rgba(52, 211, 153, 0.12); }

.account-unavailable { max-width: 48rem; padding: clamp(1.5rem, 4vw, 2.5rem); background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: var(--gc-radius); box-shadow: var(--gc-shadow); }
.account-unavailable h2 { margin-top: 0; }
.account-unavailable p { max-width: 42rem; color: var(--gc-color-muted); }

@media (max-width: 32rem) {
	.maintenance-card { padding: 2rem 1.3rem; }
}

.premium-pricing { background: var(--gc-color-surface-alt); }
.premium-pricing__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; max-width: 68rem; margin-inline: auto; }
.premium-price-card { display: flex; flex-direction: column; min-width: 0; padding: clamp(1.5rem, 2.5vw, 2rem); background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: var(--gc-radius); box-shadow: var(--gc-shadow); }
.premium-price-card--annual { background: linear-gradient(155deg, rgb(159 31 99 / 0.17), var(--gc-color-surface) 46%); border-color: rgb(203 75 144 / 0.55); }
.premium-price-card__eyebrow { margin: 0 0 0.6rem; color: var(--gc-color-primary-light); font-size: 0.75rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; }
.premium-price-card h3 { margin: 0; font-size: clamp(1.4rem, 2.5vw, 1.8rem); }
.premium-price-card__intro { min-height: 3.2em; margin: 0.75rem 0 0; color: var(--gc-color-muted); line-height: 1.6; }
.premium-price-card__cost { margin-block: 1.15rem; padding-block: 1.1rem; border-block: 1px solid var(--gc-color-border); }
.premium-price-card__price { margin: 0; color: var(--gc-color-text); font-size: clamp(2.2rem, 4vw, 3.2rem); font-weight: 900; line-height: 1.15; }
.premium-price-card__period { color: var(--gc-color-muted); font-size: 0.95rem; font-weight: 600; white-space: nowrap; }
.premium-price-card__saving { margin: 0.7rem 0 0; color: var(--gc-color-primary-light); font-size: 0.9rem; font-weight: 700; }
.premium-price-card__benefits { flex: 1; margin: 0 0 1.5rem; padding: 0; list-style: none; }
.premium-price-card__benefits li { position: relative; padding-left: 1.7rem; color: var(--gc-color-text); line-height: 1.5; }
.premium-price-card__benefits li::before { position: absolute; left: 0; color: var(--gc-color-accent); font-weight: 800; content: "✓"; }
.premium-price-card__benefits li + li { margin-top: 0.65rem; }
.premium-price-card .button { align-self: stretch; text-align: center; }
.premium-price-card__terms { margin: 1rem 0 0; color: var(--gc-color-muted); font-size: 0.78rem; line-height: 1.5; text-align: center; }
@supports (grid-template-rows: subgrid) {
	.premium-price-card { display: grid; grid-row: span 5; grid-template-rows: subgrid; }
}
.premium-pricing__free { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem 2rem; max-width: 68rem; margin: 1.25rem auto 0; padding: clamp(1.25rem, 2.5vw, 1.75rem); background: rgb(18 24 39 / 0.65); border: 1px solid var(--gc-color-border); border-radius: var(--gc-radius); }
.premium-pricing__free-copy { max-width: 43rem; }
.premium-pricing__free-eyebrow { margin: 0 0 0.35rem; color: var(--gc-color-accent); font-size: 0.72rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; }
.premium-pricing__free h3 { margin: 0 0 0.4rem; font-size: clamp(1.2rem, 2vw, 1.5rem); }
.premium-pricing__free-copy > p:last-child { margin: 0; color: var(--gc-color-muted); line-height: 1.6; }
.premium-pricing__free .button { flex: 0 0 auto; text-align: center; }
@media (max-width: 55rem) { .premium-pricing__free { align-items: flex-start; flex-direction: column; } }
@media (max-width: 42rem) { .premium-pricing__grid { grid-template-columns: 1fr; } }

/* FAQ */
.faq-page { background: var(--gc-color-background); }
.faq-hero { padding-block: clamp(3.5rem, 8vw, 6rem); background: radial-gradient(circle at 82% 18%, rgb(37 170 225 / 0.16), transparent 28rem), radial-gradient(circle at 12% 85%, rgb(159 31 99 / 0.16), transparent 24rem), var(--gc-color-surface); border-bottom: 1px solid var(--gc-color-border); }
.faq-hero h1 { max-width: 13ch; margin-block: 0.5rem 1rem; font-size: clamp(3rem, 7vw, 5.5rem); }
.faq-hero p:not(.eyebrow) { max-width: 48rem; color: var(--gc-color-muted); font-size: 1.15rem; }
.faq-layout { display: grid; grid-template-columns: 15rem minmax(0, 52rem); justify-content: center; gap: clamp(2.5rem, 7vw, 6rem); padding-block: clamp(3.5rem, 8vw, 6rem); }
.faq-summary { position: sticky; top: calc(7rem + var(--gc-admin-bar-height) + var(--gc-cgu-notice-height)); align-self: start; padding: 1.2rem; background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: var(--gc-radius); }
.faq-summary strong { font-size: 0.82rem; letter-spacing: 0.06em; text-transform: uppercase; }
.faq-summary ul { display: grid; gap: 0.7rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.faq-summary a { color: var(--gc-color-muted); font-size: 0.92rem; text-decoration: none; }
.faq-summary a:hover,
.faq-summary a:focus-visible { color: var(--gc-color-text); }
.faq-content { min-width: 0; }
.faq-section { padding-block: 2.8rem; scroll-margin-top: calc(7rem + var(--gc-admin-bar-height) + var(--gc-cgu-notice-height)); border-bottom: 1px solid var(--gc-color-border); }
.faq-section:first-child { padding-top: 0; }
.faq-content .faq-section > h2,
.faq-content .faq-section > .wp-block-group__inner-container > h2 { margin: 0 0 1.4rem; font-size: clamp(1.4rem, 2.4vw, 1.8rem); }
.faq-section details { overflow: hidden; margin: 0 0 0.75rem; background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: 0.8rem; }
.faq-section details[open] { border-color: rgb(37 170 225 / 0.5); }
.faq-section summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.15rem 1.25rem; cursor: pointer; font-weight: 800; list-style: none; }
.faq-section summary::-webkit-details-marker { display: none; }
.faq-section summary::after { display: grid; width: 1.8rem; height: 1.8rem; flex: 0 0 auto; place-items: center; background: rgb(37 170 225 / 0.12); border-radius: 50%; color: var(--gc-color-accent); content: "+"; font-size: 1.25rem; line-height: 1; }
.faq-section details[open] summary::after { content: "−"; }
.faq-section details > *:not(summary) { margin-right: 1.25rem; margin-left: 1.25rem; }
.faq-section details > *:last-child { margin-bottom: 1.2rem; }
.faq-section details p { color: var(--gc-color-muted); }
.faq-contact { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin-top: clamp(3rem, 7vw, 5rem); padding: clamp(1.5rem, 5vw, 2.5rem); background: linear-gradient(135deg, rgb(159 31 99 / 0.2), rgb(37 170 225 / 0.1)); border: 1px solid rgb(224 122 176 / 0.3); border-radius: var(--gc-radius); }
.faq-contact h2 { max-width: 19ch; margin-block: 0.45rem 0.8rem; font-size: clamp(1.7rem, 4vw, 2.35rem); }
.faq-contact p:not(.eyebrow) { margin: 0; color: var(--gc-color-muted); }
.faq-contact .wp-block-buttons { flex: 0 0 auto; }
.faq-contact .wp-block-button__link { display: inline-flex; min-height: 3rem; align-items: center; justify-content: center; padding: 0.8rem 1.2rem; background: var(--gc-color-primary); border-radius: 0.65rem; color: #fff; font-weight: 800; text-decoration: none; }
@media (max-width: 64rem) {
	.faq-layout { grid-template-columns: minmax(0, 52rem); }
	.faq-summary { position: static; }
}
@media (max-width: 42rem) {
	.faq-contact { align-items: stretch; flex-direction: column; }
	.faq-contact .wp-block-buttons,
	.faq-contact .wp-block-button,
	.faq-contact .wp-block-button__link { width: 100%; text-align: center; }
}
.account-invoice-list {
	display: grid;
	gap: 1rem;
}

.account-invoice-card {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.25rem;
	border: 1px solid var(--gc-border, #2b3143);
	border-radius: 0.75rem;
}

.account-invoice-card div {
	display: grid;
	gap: 0.35rem;
}

@media (max-width: 640px) {
	.account-invoice-card {
		align-items: stretch;
		flex-direction: column;
	}
}

.formation-source-files .product-resource-file strong {
	min-width: 0;
	overflow-wrap: anywhere;
}

.formation-source-files__lock {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 0.9rem 1rem;
	padding: clamp(1.25rem, 3vw, 1.75rem);
	background: linear-gradient(135deg, rgb(37 170 225 / 0.08), rgb(159 31 99 / 0.12));
	border: 1px solid var(--gc-color-border);
	border-radius: var(--gc-radius);
}

.formation-source-files__lock-icon {
	display: grid;
	width: 2.5rem;
	height: 2.5rem;
	place-items: center;
	background: rgb(159 31 99 / 0.22);
	border-radius: 0.55rem;
	color: var(--gc-color-primary-light);
	font-size: 1.35rem;
}

.formation-source-files__lock-copy > * {
	margin: 0;
}

.formation-source-files__lock-copy .eyebrow {
	margin-bottom: 0.35rem;
}

.formation-content .formation-source-files__lock-copy h2 {
	margin-bottom: 0.45rem;
	font-size: clamp(1.25rem, 2.5vw, 1.65rem);
}

.formation-source-files__lock-copy > p:last-child {
	color: var(--gc-color-muted);
}

.formation-source-files__lock .button-group {
	grid-column: 2;
	margin-top: 0.2rem;
}

@media (max-width: 38rem) {
	.formation-source-files__lock {
		grid-template-columns: 1fr;
	}

	.formation-source-files__lock .button-group {
		grid-column: 1;
		align-items: stretch;
		flex-direction: column;
	}
}

/* Téléchargements communs aux leçons d'un chapitre. */
.chapter-resources { padding: .25rem 1.5rem; border-bottom: 1px solid var(--gc-color-border); }
.chapter-resources ul { list-style: none; margin: 0; padding: 0; }
.chapter-resources li { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .25rem 0; }
.chapter-resources li > span { min-width: 0; overflow-wrap: anywhere; font-size: .85rem; }
.chapter-resources .button-group { justify-content: flex-end; align-items: center; gap: .65rem; }
.chapter-resources .button { min-height: 2.5rem; padding: .5rem .8rem; font-size: .75rem; }
.chapter-resources .text-link { font-size: .75rem; }
.lesson-sidebar .chapter-resources { padding: 0 0 .5rem; margin-bottom: .5rem; }
.lesson-sidebar .chapter-resources li { align-items: center; flex-direction: row; flex-wrap: nowrap; gap: .5rem; padding: .125rem 0; }
.lesson-sidebar .chapter-resources li > span { flex: 1 1 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; color: var(--gc-color-muted); font-size: .8rem; }
.lesson-sidebar .chapter-resources .button-group { flex: 0 0 auto; justify-content: flex-end; flex-wrap: nowrap; gap: .4rem; }
.lesson-sidebar .chapter-resources .button {
	min-height: 2rem; width: 2rem; padding: .25rem;
	background: none; border: 0; border-radius: .2rem; box-shadow: none;
	color: var(--gc-color-muted); font-size: .75rem; font-weight: 600;
	text-decoration: none;
}
.lesson-sidebar .chapter-resources .button:hover { color: var(--gc-color-accent); background: none; box-shadow: none; transform: none; }
.lesson-sidebar .chapter-resources .button:focus-visible { color: var(--gc-color-text); outline: 2px solid var(--gc-color-accent); outline-offset: 3px; }
@media (max-width: 40rem) {
	.chapter-resources li { align-items: flex-start; flex-direction: column; }
	.chapter-resources .button-group { justify-content: flex-start; }
}

/* Shared front-end drawer motion and indicator: filters, courses, videos and FAQ. */
details.gc-drawer { overflow: hidden; box-sizing: border-box; }
details.gc-drawer > summary { display: flex; align-items: center; gap: 1rem; cursor: pointer; list-style: none; }
details.gc-drawer > summary::-webkit-details-marker { display: none; }
body details.gc-drawer.gc-drawer > summary::after { content: none; }
body details.gc-drawer > summary > .product-resource-toggle,
body details.gc-drawer > summary > .curriculum-chapter__toggle,
body details.catalog-filter-panel.gc-drawer > summary > i { display: none; }
body details.gc-drawer > summary > .gc-drawer-toggle {
	display: grid; place-items: center; flex: 0 0 auto; width: 1.9rem; height: 1.9rem;
	margin-left: auto; padding: 0; box-sizing: border-box;
	background: rgb(169 31 102 / .14); border: 1px solid rgb(169 31 102 / .35); border-radius: 50%;
	color: var(--gc-color-primary-light); font-size: 1.25rem; font-weight: 800; line-height: 1;
	transform: rotate(0deg); transition: transform 240ms cubic-bezier(.2, .8, .2, 1), background-color 240ms cubic-bezier(.2, .8, .2, 1);
}
body details.gc-drawer[data-expanded="true"] > summary > .gc-drawer-toggle { transform: rotate(45deg); background: rgb(169 31 102 / .28); }
details.gc-drawer > summary:focus-visible { outline: 3px solid var(--gc-color-accent); outline-offset: -3px; }
@media (prefers-reduced-motion: reduce) {
	body details.gc-drawer > summary > .gc-drawer-toggle { transition: none; }
}

.product-resource-video.gc-drawer > summary > .gc-drawer-toggle { grid-column: 3; grid-row: 1; justify-self: end; }

/* Barre WordPress et navigation : conserver les liens accessibles en faible hauteur. */
@media (max-width: 782px) {
	body.admin-bar { --gc-admin-bar-height: 46px; }
}
@media (max-width: 600px) {
	body.admin-bar { --gc-admin-bar-height: 0px; }
}
@media (max-width: 64rem) {
	.site-navigation {
		max-height: calc(100vh - 8rem - var(--gc-admin-bar-height));
		max-height: calc(100dvh - 8rem - var(--gc-admin-bar-height));
		overflow-y: auto;
		overscroll-behavior: contain;
	}
	.site-navigation__menu { white-space: normal; }
	.articles-categories { position: static; }
}
@media (max-height: 36rem) {
	.site-header { position: relative; }
	body.admin-bar .site-header { top: 0; }
	.cgu-update-notice { position: relative; top: auto; }
	.formation-sidebar,
	.article-single__aside > div,
	.legal-summary,
	.faq-summary,
	.catalog-filter-panel,
	.gc-woocommerce-account .woocommerce-MyAccount-navigation ul { position: static; }
	.articles-categories { position: static; }
}

/* Filtres compacts : sélection native accessible, sans JavaScript. */
.articles-mobile-filters { display: none; }
@media (max-width: 64rem) {
	.articles-categories,
	.articles-technologies { display: none; }
	.articles-mobile-filters { display: block; margin: 0; padding-block: 1rem; border-block: 1px solid var(--gc-color-border); background: var(--gc-color-surface); }
	.articles-mobile-filters .site-container { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; align-items: end; }
	.articles-mobile-filters label { display: grid; min-width: 0; gap: 0.35rem; }
	.articles-mobile-filters label span { color: var(--gc-color-muted); font-size: 0.8rem; font-weight: 700; }
	.articles-mobile-filters select { box-sizing: border-box; width: 100%; min-width: 0; min-height: 2.75rem; padding: 0.6rem; border: 1px solid var(--gc-color-border); border-radius: 0.6rem; background: var(--gc-color-surface); color: var(--gc-color-text); font: inherit; color-scheme: dark; }
	.articles-mobile-filters button { grid-column: 1 / -1; min-height: 2.75rem; padding: 0.5rem 1rem; border: 1px solid var(--gc-color-primary); border-radius: 0.6rem; background: var(--gc-color-primary); color: #fff; font: inherit; font-weight: 700; cursor: pointer; }
	.articles-mobile-filters :is(select, button):focus-visible { outline: 3px solid var(--gc-color-accent); outline-offset: 3px; }
}

.community-panel { background: linear-gradient(120deg, #141b32, #191a30); border-color: #3e446f; }
.community-panel__visual { display: grid; place-items: center; background: none; }
.community-panel__conversation { display: block; width: 100%; max-width: 26rem; height: auto; }
.community-panel__discord-logo { display: block; width: 10rem; height: auto; margin-bottom: 1rem; }
.community-panel__discord-button { background: #5865f2; border-color: #5865f2; color: #fff; }
.community-panel__discord-button:hover { background: #4752c4; border-color: #4752c4; color: #fff; }
.community-panel__discord-button:disabled { cursor: default; opacity: .65; }
@media (max-width: 64rem) {
	.community-panel__visual { display: none; }
}
/* Les caractères invisibles réservent la place et restent copiables. */
.hero-code__char { position: relative; }
.home-hero.is-typing .hero-code__char:not(.is-written) { visibility: hidden; }
.home-hero.is-typing .code-window code::after { visibility: hidden; }
@media (prefers-reduced-motion: no-preference) {
	.hero-code__char.is-cursor::before { position: absolute; left: 0; top: 0.1em; width: 0.48em; height: 1em; content: ""; visibility: visible; background: var(--gc-color-accent); }
}
/* Le code défile dans son propre cadre, sans déplacer le hero ni le bouton Copier. */
.home-hero .code-window pre { min-height: 0; overflow: hidden; }
.home-hero .code-window code { display: block; height: clamp(16rem, 24vw, 20rem); overflow: hidden; overscroll-behavior: auto; }
@media (min-width: 64.01rem) and (max-width: 90rem) {
	.home-hero .code-window code { height: 13rem; }
}
/* Habillage IDE décoratif ; numéros hors du texte copié. */
.home-hero .code-window__bar { align-items: center; padding: 0.7rem 0.9rem; }
.home-hero .code-window__bar small { min-width: 0; margin-left: auto; overflow: hidden; color: var(--gc-color-muted); font: 0.7rem/1.4 ui-monospace, monospace; text-overflow: ellipsis; white-space: nowrap; }
.hero-ide__tabs { display: flex; align-items: center; gap: 1rem; background: #101521; border-bottom: 1px solid var(--gc-color-border); font: 0.75rem/1.4 ui-monospace, monospace; }
.hero-ide__tab { display: flex; align-items: center; gap: 0.6rem; padding: 0.65rem 1rem; background: #0c101b; border-top: 2px solid var(--gc-color-primary-light); }
.hero-ide__tab b { color: #f3d96b; font-size: 0.65rem; }
.hero-ide__tab i { width: 0.35rem; height: 0.35rem; border-radius: 50%; background: var(--gc-color-muted); }
.hero-ide__path { color: var(--gc-color-muted); }
.home-hero .code-window pre { padding-inline: clamp(0.5rem, 1.5vw, 1.1rem); padding-bottom: 1rem; }
.hero-code__line { position: relative; display: block; min-height: 1.85em; padding-left: 3.2em; padding-right: 0.5em; }
.hero-code__line::before { position: absolute; left: 0; top: 0; width: 2.2em; content: attr(data-line); color: #73819a; text-align: right; user-select: none; }
.hero-code__line.is-active { background: rgb(37 170 225 / .07); box-shadow: inset 2px 0 var(--gc-color-accent); }
.hero-code__line.is-active::before { color: var(--gc-color-accent); }
.hero-code__newline { display: none; }
.hero-ide__status { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; padding: 0.5rem 0.85rem; background: #171c2d; border-top: 1px solid var(--gc-color-border); color: var(--gc-color-muted); font: 0.65rem/1.4 ui-monospace, monospace; }
.hero-ide__status > span:first-child { margin-right: auto; color: var(--gc-color-primary-light); }
@media (max-width: 38rem) {
	.hero-ide__path, .hero-ide__encoding { display: none; }
}
.home-hero__motion-toggle { display: none; flex: 0 0 auto; place-items: center; width: 1.8rem; height: 1.8rem; margin-left: 0.5rem; padding: 0; border: 1px solid var(--gc-color-border); border-radius: 0.4rem; color: var(--gc-color-muted); background: transparent; cursor: pointer; }
.home-hero__motion-toggle:hover { color: var(--gc-color-text); background: var(--gc-color-surface-alt); }
.home-hero__motion-toggle:focus-visible { outline: 2px solid var(--gc-color-accent); outline-offset: 2px; }
.home-hero__motion-toggle .hero-motion__play { display: none; }
.home-hero__motion-toggle[aria-pressed="true"] .hero-motion__pause { display: none; }
.home-hero__motion-toggle[aria-pressed="true"] .hero-motion__play { display: block; }
.home-hero .code-window__bar > span:nth-child(3) { background: #34d399; }
@media (prefers-reduced-motion: no-preference) {
	.home-hero.has-motion-control .home-hero__motion-toggle { display: grid; }
}
/* Hero Articles compact, sans modifier son style éditorial. */
.articles-page > .articles-hero:not(.category-archive__hero) { padding-block: clamp(2rem, 4vw, 3rem); }
.articles-page > .articles-hero:not(.category-archive__hero) h1 { font-size: clamp(2.4rem, 6vw, 4.75rem); }

/* Dégradé du panneau Premium repris dans l'appel aux formations. */
.articles-training-cta { padding-block: 0 clamp(2rem, 4vw, 3rem); background: none; }
.articles-training-cta .eyebrow { color: #f3c7de; }

.articles-training-cta .premium-panel { display: grid; align-items: center; gap: clamp(1.5rem, 4vw, 3.5rem); }
.articles-training-cta h2 { max-width: 21ch; margin-bottom: 1rem; font-size: clamp(1.8rem, 3.5vw, 2.8rem); }

/* Hero Formations : proportions compactes communes aux pages principales. */
.post-type-archive-formation .catalog-hero { padding-block: clamp(2rem, 4vw, 3rem); }
.post-type-archive-formation .catalog-hero__copy h1 { font-size: clamp(2.4rem, 6vw, 4.75rem); }

/* Boutique : hero et transition vers les produits plus compacts. */
.shop-page .catalog-hero { padding-block: clamp(2rem, 4vw, 3rem); }
.shop-page .catalog-hero__layout { gap: clamp(1.5rem, 3vw, 3rem); }
.shop-page .catalog-hero__copy h1 { font-size: clamp(2.4rem, 6vw, 4.75rem); }
.shop-page .catalog-hero__offers { padding: clamp(1rem, 2vw, 1.35rem); }
.shop-page .catalog-hero__offers li { gap: 0.75rem; padding-block: 0.65rem; }
.shop-page.catalog-page--ux .catalog-content { padding-block: clamp(2rem, 4vw, 3.5rem); }
.shop-page .shop-discovery { gap: 1rem; margin-bottom: clamp(1.75rem, 4vw, 2.75rem); }

/* Chiffres du catalogue : quatre indicateurs dans un cadre compact. */
.post-type-archive-formation .catalog-hero__stats { grid-template-columns: repeat(4, minmax(0, 1fr)); padding: 0.65rem; }
.post-type-archive-formation .catalog-hero__stats div { padding: 0.5rem 0.55rem; }
.post-type-archive-formation .catalog-hero__stats dt { font-size: clamp(1.5rem, 2.8vw, 2rem); }
.post-type-archive-formation .catalog-hero__stats dd { font-size: 0.65rem; letter-spacing: 0.02em; }
@media (max-width: 38rem) {
	.post-type-archive-formation .catalog-hero__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.post-type-archive-formation .catalog-hero__stats div + div { border-top: 0; border-left: 0; }
	.post-type-archive-formation .catalog-hero__stats div:nth-child(even) { border-left: 1px solid var(--gc-color-border); }
	.post-type-archive-formation .catalog-hero__stats div:nth-child(n+3) { border-top: 1px solid var(--gc-color-border); }
}

/* Grand écran : enveloppe plus généreuse, avec densité adaptée aux catalogues. */
@media (min-width: 100rem) {
	.articles-grid,
	.shop-grid,
	.catalog-page--ux .catalog-layout--formations .catalog-grid,
	.catalog-page--ux .catalog-layout--products .catalog-grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.site-header__inner {
		gap: 2.5rem;
	}

	.site-navigation__menu {
		gap: 2rem;
	}
}

/* Densité desktop : davantage de contenu visible sans réduire les zones d'action. */
@media (min-width: 64.01rem) {
	/* Formations : rapprocher le catalogue du haut de page. */
	.post-type-archive-formation .catalog-hero {
		padding-block: 2.1rem;
	}

	.post-type-archive-formation .catalog-hero__copy h1 {
		font-size: clamp(2.4rem, 4vw, 4.35rem);
	}

	.post-type-archive-formation .catalog-paths {
		padding-block: 2.75rem;
	}

	.post-type-archive-formation .catalog-paths__heading {
		margin-bottom: 1.15rem;
	}

	/* Cartes : conserver les métadonnées et la taille des boutons. */
	.article-card__body,
	.catalog-page--ux .formation-catalog-card__body {
		padding: 1.15rem;
	}

	.article-card__category {
		margin-top: 0.75rem;
	}

	.article-card__title {
		margin-block: 0.55rem;
		font-size: 1.25rem;
	}

	.article-card__excerpt,
	.shop-page .product-catalog-card .formation-catalog-card__excerpt {
		display: -webkit-box;
		overflow: hidden;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 3;
	}

	.article-card__link {
		padding-top: 0.8rem;
	}

	.formation-catalog-card__title {
		margin-block: 0.55rem;
		font-size: 1.25rem;
	}

	.formation-catalog-card__meta {
		gap: 0.65rem 1rem;
		margin-top: 0.9rem;
		padding-top: 0.75rem;
	}

	.formation-catalog-card.type-formation .formation-catalog-card__excerpt,
	.shop-page .product-catalog-card .formation-catalog-card__excerpt {
		margin-bottom: 0.9rem;
	}

	/* Fiches éditoriales : réduire l'air sans élargir les lignes de lecture. */
	.article-single__header {
		padding-block: 1.75rem 2.75rem;
	}

	.article-single__header h1 {
		font-size: clamp(2.35rem, 4vw, 4rem);
	}

	.article-single__cover {
		margin-top: -1.25rem;
	}

	.article-single__cover img {
		width: auto;
		max-width: 100%;
		max-height: 26rem;
		margin-inline: auto;
		aspect-ratio: auto;
		object-fit: contain;
	}

	.article-single__layout {
		gap: clamp(2rem, 3vw, 3rem);
		padding-block: 2.5rem;
	}

	.article-single__content h2 {
		margin-top: 2.25rem;
	}

	.product-hero {
		padding-block: 2.25rem 4.5rem;
	}

	.product-hero h1 {
		font-size: clamp(2.5rem, 4vw, 4rem);
	}

	.product-cover {
		display: flex;
		justify-content: center;
		margin-top: -2rem;
	}

	.product-cover__image {
		width: auto;
		max-width: 100%;
		max-height: 38rem;
		object-fit: contain;
	}

	.product-details {
		padding-block: 4.5rem;
	}

	.product-description {
		gap: 4.5rem;
		margin-top: 2rem;
	}

	.product-description__intro,
	.product-description__section--closing {
		padding: 2.5rem;
	}

	.product-description-cta {
		margin-top: 3.5rem;
	}

	/* Premium : conserver le hero et resserrer seulement les transitions. */
	.premium-page .premium-section,
	.premium-page .premium-final-cta {
		padding-block: 4rem;
	}

	.premium-page .premium-section .section-heading {
		margin-bottom: 1.4rem;
	}
}

/* Très grands écrans : cinq cartes et une enveloppe dédiée aux catalogues. */
@media (min-width: 125rem) {
	.articles-page .site-container,
	.catalog-page--ux .site-container {
		width: min(calc(100% - (2 * var(--gc-page-gutter))), 112rem);
	}

	.articles-grid,
	.shop-grid,
	.catalog-page--ux .catalog-layout--formations .catalog-grid,
	.catalog-page--ux .catalog-layout--products .catalog-grid {
		grid-template-columns: repeat(5, minmax(0, 1fr));
		gap: 1.25rem;
	}
}

/* Présentation partagée des catalogues : grille par défaut ou liste compacte. */
.catalog-results__tools,
.shop-view-control {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	flex-wrap: wrap;
	gap: 0.8rem 1rem;
	color: var(--gc-color-muted);
}

.shop-view-control {
	margin-top: 0.9rem;
}

.catalog-view-toggle {
	display: inline-flex;
	padding: 0.22rem;
	background: #0b0f19;
	border: 1px solid var(--gc-color-border);
	border-radius: 0.75rem;
}

.catalog-view-toggle__button {
	display: inline-flex;
	min-height: 2.5rem;
	align-items: center;
	justify-content: center;
	gap: 0.45rem;
	padding: 0.5rem 0.75rem;
	background: transparent;
	border: 0;
	border-radius: 0.55rem;
	color: var(--gc-color-muted);
	cursor: pointer;
	font: inherit;
	font-size: 0.82rem;
	font-weight: 800;
	white-space: nowrap;
}

.catalog-view-toggle__button:hover {
	color: var(--gc-color-text);
}

.catalog-view-toggle__button.is-active {
	background: rgb(159 31 99 / 0.28);
	box-shadow: inset 0 0 0 1px rgb(232 87 161 / 0.45);
	color: #fff;
}

.catalog-view-toggle__button:focus-visible {
	position: relative;
	z-index: 1;
	outline: 3px solid var(--gc-color-accent);
	outline-offset: 2px;
}

.catalog-view-toggle__icon {
	font: 900 1rem/1 ui-monospace, SFMono-Regular, Consolas, monospace;
}

[data-catalog-items][data-catalog-view="list"] {
	grid-template-columns: minmax(0, 1fr) !important;
}

.articles-grid[data-catalog-view="list"] .article-card,
.catalog-grid[data-catalog-view="list"] .formation-catalog-card {
	display: grid;
	grid-template-columns: clamp(11rem, 16vw, 14rem) minmax(0, 1fr);
	min-height: 12rem;
	transform: none;
}

.articles-grid[data-catalog-view="list"] .article-card__media,
.catalog-grid[data-catalog-view="list"] .formation-catalog-card__media {
	min-height: 100%;
	aspect-ratio: auto;
}

.articles-grid[data-catalog-view="list"] .article-card__body,
.catalog-grid[data-catalog-view="list"] .formation-catalog-card__body {
	min-width: 0;
	min-height: 0;
	padding: 1.15rem;
}

.articles-grid[data-catalog-view="list"] .article-card__category {
	margin-top: 0.55rem;
}

.articles-grid[data-catalog-view="list"] .article-card__title,
.catalog-grid[data-catalog-view="list"] .formation-catalog-card h3 {
	margin-block: 0.45rem;
	font-size: 1.2rem;
}

.articles-grid[data-catalog-view="list"] .article-card__excerpt,
.catalog-grid[data-catalog-view="list"] .formation-catalog-card__excerpt {
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.articles-grid[data-catalog-view="list"] .article-card__link {
	padding-top: 0.65rem;
}

.articles-grid[data-catalog-view="list"] .article-card__tags {
	justify-content: flex-start;
	margin-top: 0.55rem;
}

.catalog-grid[data-catalog-view="list"] .product-catalog-card__tags {
	margin-bottom: 0.55rem;
}

.catalog-grid[data-catalog-view="list"] .formation-catalog-card__meta,
.catalog-grid[data-catalog-view="list"] .product-catalog-card .product-catalog-card__meta {
	margin-top: 0.65rem;
	padding-top: 0.55rem;
}

.catalog-grid[data-catalog-view="list"] .formation-catalog-card__button,
.woocommerce .catalog-grid[data-catalog-view="list"] .product-catalog-card a.button.formation-catalog-card__button,
.woocommerce-page .catalog-grid[data-catalog-view="list"] .product-catalog-card a.button.formation-catalog-card__button {
	width: auto;
	min-height: 2.65rem;
	align-self: flex-start;
	margin-top: 0.7rem;
	padding-inline: 1.1rem;
}

@media (max-width: 48rem) {
	.catalog-results__tools {
		width: 100%;
		justify-content: space-between;
	}

	.shop-view-control,
	.shop-view-control .catalog-view-toggle {
		width: 100%;
	}

	.shop-view-control .catalog-view-toggle__button {
		flex: 1;
	}

	.account-collection__tools {
		width: 100%;
		justify-content: space-between;
		flex-wrap: nowrap;
	}

	.account-collection__tools .catalog-view-toggle {
		flex: 0 0 auto;
	}

	.articles-grid[data-catalog-view="list"] .article-card,
	.catalog-grid[data-catalog-view="list"] .formation-catalog-card {
		grid-template-columns: minmax(6.75rem, 30%) minmax(0, 1fr);
		min-height: 10rem;
	}

	.articles-grid[data-catalog-view="list"] .article-card__body,
	.catalog-grid[data-catalog-view="list"] .formation-catalog-card__body {
		padding: 0.75rem;
	}

	.articles-grid[data-catalog-view="list"] .article-card__meta,
	.catalog-grid[data-catalog-view="list"] .formation-catalog-card__level,
	.catalog-grid[data-catalog-view="list"] .formation-catalog-card__meta {
		font-size: 0.68rem;
	}

	.articles-grid[data-catalog-view="list"] .article-card__title,
	.catalog-grid[data-catalog-view="list"] .formation-catalog-card h3 {
		font-size: 1rem;
	}

	.articles-grid[data-catalog-view="list"] .article-card__excerpt,
	.catalog-grid[data-catalog-view="list"] .formation-catalog-card__excerpt {
		font-size: 0.8rem;
	}

	.catalog-grid[data-catalog-view="list"] .formation-catalog-card__badges {
		right: 0.4rem;
		bottom: 0.4rem;
		left: 0.4rem;
		gap: 0.25rem;
	}

	.catalog-grid[data-catalog-view="list"] .formation-catalog-card__badges .badge,
	.catalog-grid[data-catalog-view="list"] .formation-catalog-card__access {
		padding: 0.2rem 0.35rem;
		font-size: 0.55rem;
	}

	.catalog-grid[data-catalog-view="list"] .formation-catalog-card__media > .formation-catalog-card__access {
		top: 0.4rem;
		left: 0.4rem;
		max-width: calc(100% - 0.8rem);
	}

	.catalog-grid[data-catalog-view="list"] .formation-catalog-card__meta {
		gap: 0.3rem 0.55rem;
		margin-top: 0.45rem;
		padding-top: 0.4rem;
	}

	.catalog-grid[data-catalog-view="list"] .formation-catalog-card__button,
	.woocommerce .catalog-grid[data-catalog-view="list"] .product-catalog-card a.button.formation-catalog-card__button,
	.woocommerce-page .catalog-grid[data-catalog-view="list"] .product-catalog-card a.button.formation-catalog-card__button {
		width: 100%;
		min-height: 2.5rem;
		padding: 0.45rem 0.6rem;
		font-size: 0.75rem;
	}
}
