: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: #8b5cf6;
	--gc-color-primary-light: #a78bfa;
	--gc-color-accent: #22d3ee;
	--gc-color-border: #293047;
	--gc-content-width: 75rem;
	--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: 32px;
}

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,
button:focus-visible {
	outline: 0.2rem solid var(--gc-color-accent);
	outline-offset: 0.25rem;
}

.site-container {
	width: min(100% - 2.5rem, var(--gc-content-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-flex;
	align-items: center;
	gap: 0.65rem;
	color: var(--gc-color-text);
	font-size: 1.2rem;
	font-weight: 800;
	letter-spacing: -0.03em;
	text-decoration: none;
}

.site-brand__mark {
	display: grid;
	width: 2.1rem;
	height: 2.1rem;
	place-items: center;
	background: linear-gradient(135deg, var(--gc-color-primary), #6d28d9);
	border-radius: 0.55rem;
	font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
	font-size: 0.72rem;
	box-shadow: 0 0 1.5rem rgb(139 92 246 / 0.38);
}

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

.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 3rem;
	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;
}

.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), #6d28d9);
	color: #fff;
	box-shadow: 0 0.8rem 2rem rgb(109 40 217 / 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: #4c1d95;
}

.home-hero {
	position: relative;
	overflow: hidden;
	padding-block: clamp(5rem, 11vw, 9rem);
	background:
		radial-gradient(circle at 75% 40%, rgb(109 40 217 / 0.22), transparent 28rem),
		linear-gradient(rgb(255 255 255 / 0.025) 1px, transparent 1px),
		linear-gradient(90deg, rgb(255 255 255 / 0.025) 1px, transparent 1px);
	background-size: auto, 3.5rem 3.5rem, 3.5rem 3.5rem;
}

.home-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(20rem, 0.92fr);
	align-items: center;
	gap: clamp(3rem, 8vw, 7rem);
}

.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__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(34 211 238 / 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; }

.pixel {
	position: absolute;
	width: 1rem;
	height: 1rem;
	background: var(--gc-color-accent);
	box-shadow: 0 0 1.5rem currentColor;
}

.pixel--one { top: -2.5rem; right: 12%; color: var(--gc-color-primary); }
.pixel--two { right: -1rem; bottom: 12%; transform: scale(0.65); }
.pixel--three { bottom: -2.5rem; left: 18%; color: #f472b6; transform: scale(0.45); }

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

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

.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 {
	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: #5d4a91;
}

.content-card__media {
	display: grid;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	place-items: center;
	background:
		linear-gradient(135deg, rgb(139 92 246 / 0.22), rgb(34 211 238 / 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;
	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;
	padding: 0.25rem 0.55rem;
	background: rgb(139 92 246 / 0.15);
	border: 1px solid rgb(167 139 250 / 0.25);
	border-radius: 99rem;
	color: #c4b5fd;
	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(139 92 246 / 0.15);
	border: 1px solid rgb(167 139 250 / 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);
}

.community-panel {
	display: grid;
	grid-template-columns: 0.9fr 1.1fr;
	align-items: center;
	overflow: hidden;
	background: linear-gradient(135deg, #11172a, #17132a);
	border: 1px solid #35304e;
	border-radius: 1.5rem;
}

.community-panel__visual {
	position: relative;
	min-height: 24rem;
	background:
		radial-gradient(circle at center, rgb(34 211 238 / 0.12), transparent 55%),
		linear-gradient(rgb(255 255 255 / 0.035) 1px, transparent 1px),
		linear-gradient(90deg, rgb(255 255 255 / 0.035) 1px, transparent 1px);
	background-size: auto, 2.5rem 2.5rem, 2.5rem 2.5rem;
}

.community-panel__bubble {
	position: absolute;
	display: grid;
	width: 6rem;
	height: 6rem;
	place-items: center;
	background: #121827;
	border: 1px solid #45506f;
	border-radius: 1.25rem;
	font: 800 1.2rem/1 ui-monospace, SFMono-Regular, Consolas, monospace;
	box-shadow: var(--gc-shadow);
}

.community-panel__bubble--one { top: 20%; left: 18%; color: var(--gc-color-accent); transform: rotate(-8deg); }
.community-panel__bubble--two { top: 44%; right: 17%; color: var(--gc-color-primary-light); transform: rotate(7deg); }
.community-panel__bubble--three { bottom: 10%; left: 28%; width: 4.5rem; height: 4.5rem; color: #86efac; transform: rotate(4deg); }

.community-panel__content {
	padding: clamp(2rem, 6vw, 5rem);
}

.community-panel__content p:not(.eyebrow) {
	max-width: 38rem;
	margin-bottom: 1.75rem;
	color: var(--gc-color-muted);
}

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

.premium-panel {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 3rem;
	padding: clamp(2.5rem, 6vw, 4.5rem);
	background: linear-gradient(120deg, #5b21b6, #7c3aed 55%, #4338ca);
	border-radius: 1.5rem;
	box-shadow: 0 2rem 5rem rgb(91 33 182 / 0.25);
}

.premium-panel > div {
	max-width: 45rem;
}

.premium-panel .eyebrow {
	color: #ddd6fe;
}

.premium-panel h2 {
	font-size: clamp(1.9rem, 4vw, 3rem);
}

.premium-panel p:last-child {
	margin-bottom: 0;
	color: #ede9fe;
}

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

.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-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) {
	body.admin-bar .site-header {
		top: 46px;
	}

	.content-grid,
	.benefit-grid {
		grid-template-columns: 1fr;
	}

	.section-heading,
	.premium-panel {
		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: 4.5rem;
	}

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

	.community-panel__bubble {
		transform: scale(0.8);
	}

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

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

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

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}
/* Formations */
.catalog-hero,
.formation-hero {
	padding-block: clamp(4rem, 9vw, 7rem);
	background:
		radial-gradient(circle at 80% 30%, rgb(139 92 246 / 0.2), transparent 28rem),
		linear-gradient(rgb(255 255 255 / 0.025) 1px, transparent 1px),
		linear-gradient(90deg, rgb(255 255 255 / 0.025) 1px, transparent 1px);
	background-size: auto, 3.5rem 3.5rem, 3.5rem 3.5rem;
	border-bottom: 1px solid var(--gc-color-border);
}

.catalog-hero h1,
.formation-hero h1 {
	max-width: 15ch;
	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(139 92 246 / 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;
}

.badge--access {
	background: rgb(34 211 238 / 0.1);
	border-color: rgb(34 211 238 / 0.25);
	color: #67e8f9;
}

.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;
	justify-content: center;
	gap: 0.5rem;
	margin-top: 3rem;
}

.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__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(18rem, 0.85fr);
	align-items: center;
	gap: clamp(3rem, 8vw, 7rem);
}

.formation-hero__media {
	display: grid;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	place-items: center;
	background: linear-gradient(135deg, rgb(139 92 246 / 0.25), rgb(34 211 238 / 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 {
	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: 7rem;
	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;
}

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

	.formation-hero__grid,
	.formation-layout {
		grid-template-columns: 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 {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 1.25rem 1.5rem;
	background: rgb(255 255 255 / 0.025);
}

.curriculum-chapter__number {
	display: grid;
	width: 2.6rem;
	height: 2.6rem;
	place-items: center;
	background: rgb(139 92 246 / 0.15);
	border: 1px solid rgb(167 139 250 / 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(34 211 238 / 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(3rem, 7vw, 5rem);
	background: radial-gradient(circle at 80% 30%, rgb(139 92 246 / 0.18), transparent 25rem), var(--gc-color-surface);
	border-bottom: 1px solid var(--gc-color-border);
}

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

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

.lesson-header h1 {
	max-width: 18ch;
	margin-bottom: 0.75rem;
	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-content {
	color: #d7dbea;
	font-size: 1.05rem;
}

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

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

.lesson-video {
	display: grid;
	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 {
	width: 100%;
	height: 100%;
}

.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: 1fr 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: 1rem;
	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(139 92 246 / 0.13), rgb(34 211 238 / 0.05));
	border: 1px solid #443866;
	border-radius: var(--gc-radius);
}

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

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

.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(139 92 246 / 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(167 139 250 / 0.55);
	border-radius: 1.25rem;
	box-shadow: 0 0 2.5rem rgb(139 92 246 / 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;
	min-width: 15rem;
	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;
}

.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(2, minmax(0, 1fr));
	gap: 1.5rem;
}

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

.dashboard-course__image {
	min-height: 100%;
	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-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(139 92 246 / 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: 64rem) {
	.dashboard-course-grid {
		grid-template-columns: 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-profile {
		align-items: flex-start;
		flex-direction: column;
	}

	.dashboard-course {
		grid-template-columns: 1fr;
	}

	.dashboard-course__image {
		aspect-ratio: 16 / 9;
	}
}

/* Authentification */
.auth-page {
	min-height: calc(100vh - 12rem);
	padding-block: clamp(3rem, 8vw, 6rem);
	background: radial-gradient(circle at 15% 20%, rgb(139 92 246 / 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(139 92 246 / 0.2);
}
.auth-field small { color: var(--gc-color-muted); }
.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; }
.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, #312e81, #6d28d9);
	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); }
}

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

/* Page Premium */
.premium-page { background: var(--gc-color-background); }
.premium-hero {
	padding-block: clamp(4rem, 10vw, 8rem);
	background: radial-gradient(circle at 75% 30%, rgb(139 92 246 / 0.24), transparent 28rem), linear-gradient(180deg, #111327, var(--gc-color-background));
}
.premium-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(20rem, 0.85fr);
	align-items: center;
	gap: clamp(3rem, 8vw, 7rem);
}
.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: grid;
	min-height: 25rem;
	padding: 2.5rem;
	place-items: center;
	background: linear-gradient(145deg, rgb(139 92 246 / 0.25), rgb(49 46 129 / 0.5));
	border: 1px solid rgb(167 139 250 / 0.25);
	border-radius: 2rem;
	box-shadow: 0 2rem 6rem rgb(0 0 0 / 0.35);
	transform: rotate(2deg);
}
.premium-hero__visual > span { color: var(--gc-color-primary-light); font: 900 clamp(3rem, 7vw, 5.5rem)/1 ui-monospace, SFMono-Regular, Consolas, monospace; }
.premium-hero__visual strong { font-size: 1.35rem; }
.premium-hero__visual div { display: flex; gap: 0.6rem; }
.premium-hero__visual i { width: 0.75rem; height: 0.75rem; background: var(--gc-color-primary-light); border-radius: 50%; }
.premium-hero__visual i:nth-child(2) { opacity: 0.65; }
.premium-hero__visual i:nth-child(3) { opacity: 0.35; }
.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(4rem, 9vw, 7rem); }
.section-heading--center { justify-content: center; text-align: center; }
.premium-benefits { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; }
.premium-benefits article { padding: 1.75rem; 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(139 92 246 / 0.12); 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, 8vw, 6rem); }
.premium-faq details { padding-block: 1.2rem; 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(4rem, 10vw, 7rem); background: linear-gradient(135deg, #312e81, #7c3aed); text-align: center; }
.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: 48rem) {
	.premium-hero__grid,
	.premium-faq { grid-template-columns: 1fr; }
	.premium-hero__visual { min-height: 18rem; }
}
@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);
	background: radial-gradient(circle at 80% 15%, rgb(139 92 246 / 0.22), transparent 27rem), linear-gradient(180deg, #111327, var(--gc-color-background));
}
.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; }
.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: 4.5rem; padding-block: 0.85rem; background: rgb(11 14 23 / 0.94); border-block: 1px solid var(--gc-color-border); backdrop-filter: blur(1rem); }
body.admin-bar .articles-categories { top: calc(4.5rem + 32px); }
.articles-categories .site-container { display: flex; gap: 0.6rem; overflow-x: auto; scrollbar-width: thin; }
.articles-categories a { flex: 0 0 auto; 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(3rem, 8vw, 6rem); }
.featured-article { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(20rem, 0.8fr); overflow: hidden; margin-bottom: clamp(4rem, 9vw, 7rem); background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: 1.4rem; }
.featured-article__media { min-height: 28rem; background: var(--gc-color-surface-alt); }
.featured-article__media img { 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(2rem, 5vw, 3.5rem); }
.featured-article__body h2 { margin-block: 0.8rem 1rem; font-size: clamp(2rem, 4vw, 3.2rem); }
.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 { 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: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__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 .page-numbers { display: flex; 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: 1px solid var(--gc-color-border); border-radius: 0.6rem; color: var(--gc-color-text); text-decoration: none; }
.articles-pagination .current { background: var(--gc-color-primary); border-color: var(--gc-color-primary); }
.articles-training-cta,
.article-course-cta { padding-block: clamp(3rem, 7vw, 5rem); background: linear-gradient(135deg, #312e81, #7c3aed); }
.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); }
.article-single__header { padding-block: clamp(3.5rem, 9vw, 7rem); background: radial-gradient(circle at 20% 20%, rgb(139 92 246 / 0.2), transparent 30rem), #111327; text-align: center; }
.article-single__header-inner { max-width: 60rem; }
.article-single__category { display: inline-flex; padding: 0.5rem 0.8rem; background: rgb(139 92 246 / 0.15); border-radius: 999px; color: var(--gc-color-primary-light); font-weight: 800; text-decoration: none; }
.article-single__header h1 { margin-block: 1.2rem; font-size: clamp(2.7rem, 7vw, 5.4rem); line-height: 1.03; }
.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.8rem; 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: 78rem; margin-top: -2.5rem; }
.article-single__cover img { width: 100%; max-height: 44rem; object-fit: cover; border: 1px solid var(--gc-color-border); border-radius: 1.4rem; box-shadow: var(--gc-shadow); }
.article-single__layout { display: grid; grid-template-columns: minmax(0, 46rem) minmax(14rem, 18rem); justify-content: center; gap: clamp(2.5rem, 7vw, 6rem); padding-block: clamp(3.5rem, 8vw, 6rem); }
.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); }
.article-single__content pre { overflow-x: auto; padding: 1.4rem; background: #080b12; border: 1px solid var(--gc-color-border); border-radius: 0.8rem; color: #d8b4fe; line-height: 1.6; }
.article-single__content code { padding: 0.15em 0.35em; background: rgb(139 92 246 / 0.12); border-radius: 0.3rem; color: #d8b4fe; }
.article-single__content pre code { padding: 0; background: transparent; }
.article-single__content li + li { margin-top: 0.6rem; }
.article-single__aside > div { position: sticky; top: 7rem; 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-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, 46rem); }
	.article-single__aside { display: none; }
}
@media (max-width: 48rem) {
	.articles-hero__inner,
	.featured-article { grid-template-columns: 1fr; }
	.articles-search { flex-direction: column; }
	.featured-article__media { min-height: 15rem; 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; }
	body.admin-bar .articles-categories { top: calc(4.5rem + 46px); }
}

/* 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(139 92 246 / 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(139 92 246 / 0.12); border: 1px solid rgb(167 139 250 / 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 { 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; gap: 0.5rem; }
.badge--premium { background: #7c3aed; 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; 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; 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; border: 0; border-radius: 999px; accent-color: var(--gc-color-primary); }
.formation-catalog-card__button { width: 100%; margin-top: auto; padding-top: 0.8rem; }
.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(139 92 246 / 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: 1px solid var(--gc-color-border); border-radius: 0.6rem; color: var(--gc-color-text); text-decoration: none; }
.catalog-pagination .current { background: var(--gc-color-primary); border-color: 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.15fr) minmax(24rem, 0.85fr); align-items: end; gap: clamp(3rem, 8vw, 7rem); }
.catalog-hero__copy h1 { margin-block: 0.4rem 0.8rem; font-size: clamp(3.3rem, 7vw, 5.6rem); }
.catalog-hero__copy > p:not(.eyebrow) { max-width: 40rem; color: var(--gc-color-muted); font-size: 1.15rem; }
.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-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(139 92 246 / 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); }
.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: 6rem; overflow: hidden; background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: var(--gc-radius); }
body.admin-bar .catalog-filter-panel { top: calc(6rem + 32px); }
.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-active-filters { margin: 0 0 1.5rem; padding: 0.85rem 1rem; background: rgb(139 92 246 / 0.07); border: 1px solid rgb(167 139 250 / 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 .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 .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%; }
.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; }
	.catalog-hero__stats { max-width: 36rem; }
	.catalog-layout { grid-template-columns: 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-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) {
	.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; margin-right: -1.5rem; padding-right: 1.5rem; overflow-x: auto; scroll-snap-type: x mandatory; }
	.catalog-page--ux .catalog-path { min-width: min(18rem, 82vw); 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-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-search input { min-width: 0; }
.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; align-items: center; gap: 0.55rem; overflow-x: auto; }
.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; 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(139 92 246 / 0.16); color: var(--gc-color-primary-light); }
.articles-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.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: 32px; }
.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); }
.article-single__content pre { 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 { border-color: var(--gc-color-primary-light); }
.article-comments { max-width: 54rem; padding-bottom: clamp(3rem, 7vw, 6rem); }
.comments-area { padding: clamp(1.4rem, 4vw, 2.5rem); background: var(--gc-color-surface); border: 1px solid var(--gc-color-border); border-radius: 1.2rem; }
.comment-list { display: grid; gap: 1rem; padding: 0; list-style: none; }
.comment-body { padding: 1rem; background: var(--gc-color-surface-alt); border-radius: 0.8rem; }
.comment-meta { font-size: 0.85rem; }
.comment-author img { border-radius: 50%; }
.comment-form { display: grid; gap: 0.8rem; }
.comment-form textarea,
.comment-form input:not([type="submit"]) { 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; }
.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: 64rem) {
	.articles-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 48rem) {
	body.admin-bar .reading-progress { top: 46px; }
	.articles-search { grid-template-columns: 1fr; }
	.articles-grid { grid-template-columns: 1fr; }
	.article-card__body { min-height: 0; }
	.article-single__actions .button { width: 100%; }
	.dashboard-reading-history li { align-items: flex-start; flex-direction: column; }
}
/* 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__library { display: grid; width: 2.5rem; height: 2.5rem; place-items: center; border: 1px solid var(--gc-color-border); border-radius: 50%; color: var(--gc-color-primary-light); font-size: 1.25rem; text-decoration: none; }
.site-header__library:hover { background: rgb(139 92 246 / 0.13); border-color: var(--gc-color-primary-light); }
.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(4rem, 8vw, 7rem); }
.premium-page .premium-hero h1 { max-width: 10ch; font-size: clamp(3.2rem, 8vw, 6.3rem); }
.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.5rem, 4vw, 2.4rem); }
.premium-audiences article + article { border-left: 1px solid var(--gc-color-border); }
.premium-audiences article.is-premium { background: linear-gradient(145deg, rgb(139 92 246 / 0.2), rgb(34 211 238 / 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(139 92 246 / 0.1); }
.premium-comparison td { color: var(--gc-color-muted); font-weight: 750; }
.premium-comparison td:last-child { color: var(--gc-color-primary-light); }
.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(139 92 246 / 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(139 92 246 / 0.13); }
	.site-navigation .current-menu-item > a::after { display: none; }
	.site-header__actions { margin-left: auto; }
	.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) {
	.site-header__inner { align-items: center; min-height: 4.4rem; }
	.site-header__actions { width: auto; }
	.site-header__actions .site-header__library { display: none; }
	.site-header__actions .button--ghost { display: none; }
	.site-header__actions .button { flex: none; min-height: 2.65rem; padding-inline: 0.8rem; }
	.site-brand > span:last-child { display: none; }
	.site-navigation { right: 0.75rem; left: 0.75rem; }
	.premium-page .premium-hero { padding-top: 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 (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; }