/* ==========================================================================
   Composants réutilisables
   ========================================================================== */

/* --- Section title (eyebrow + titre) --- */

.section-title--center {
	text-align: center;
}

.section-title__eyebrow {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 12px;
}

.section-title--center .section-title__eyebrow {
	display: inline-flex;
}

.section-title__eyebrow-line {
	display: block;
	width: 28px;
	height: 2px;
	background-color: var(--color-secondary);
}

.section-title__eyebrow-text {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.16em;
	color: var(--color-secondary);
	text-transform: uppercase;
}

.section-title__heading {
	font-weight: 900;
	line-height: 1.15;
	letter-spacing: -0.02em;
}

.section-title__heading--xl {
	font-size: clamp(22px, 3vw, 40px);
}

.section-title__heading--lg {
	font-size: clamp(24px, 3vw, 38px);
}

.section-title__heading--md {
	font-size: clamp(20px, 2.4vw, 32px);
}

.section-title__heading--sm {
	font-size: clamp(18px, 2.2vw, 28px);
}

.section-title__heading--uppercase {
	text-transform: uppercase;
}

.section-title__heading--base-text {
	color: var(--color-text);
}

.section-title__heading--base-primary {
	color: var(--color-primary-light);
}

.section-title__heading--base-white {
	color: var(--color-background);
}

.section-title__accent--primary {
	color: var(--color-primary-light);
}

.section-title__accent--muted {
	color: var(--color-text-light);
}

.section-title__accent--light-blue {
	color: #93c5fd;
}

/* --- Article individuel générique (actualite/formation/evenement/partenaire) --- */

.single-back {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	font-weight: 700;
	color: var(--color-primary-light);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	margin-bottom: 24px;
	transition: color var(--transition-base);
}

.single-back:hover,
.single-back:focus-visible {
	color: var(--color-secondary);
}

.single-title {
	font-size: clamp(26px, 3.5vw, 42px);
	font-weight: 900;
	color: var(--color-text);
	line-height: 1.2;
	letter-spacing: -0.02em;
	margin-bottom: 28px;
}

.single-content {
	font-size: 16px;
	line-height: 1.8;
	color: var(--color-text-secondary);
}

.single-content p {
	margin-bottom: 20px;
}

.single-content h2,
.single-content h3,
.single-content h4 {
	color: var(--color-text);
	font-weight: 800;
	margin: 32px 0 14px;
}

.single-content ul,
.single-content ol {
	margin: 0 0 20px;
	padding-left: 22px;
}

.single-content li {
	margin-bottom: 6px;
}

.single-content table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 24px;
	font-size: 14px;
}

.single-content th,
.single-content td {
	border: 1px solid var(--color-border);
	padding: 10px 12px;
	text-align: left;
	vertical-align: top;
}

.single-content th {
	background-color: var(--color-primary);
	color: #fff;
	font-weight: 700;
	border-color: var(--color-primary);
}

.single-content tbody tr:nth-child(even) {
	background-color: var(--color-background-alt);
}

.single-content img {
	border-radius: var(--radius-md);
	margin: 12px 0;
}

/* --- Contenu réservé aux adhérents (cf. §4 réponses client) --- */

.membership-gate {
	text-align: center;
	padding: 40px 24px;
	background-color: var(--color-background-alt);
	border: 1px dashed var(--color-border);
	border-radius: var(--radius-md);
	color: var(--color-text-secondary);
}

.membership-gate svg {
	margin: 0 auto 12px;
	color: var(--color-secondary);
}

.membership-gate__title {
	font-size: 17px;
	font-weight: 700;
	color: var(--color-text);
	margin-bottom: 6px;
}

.membership-gate__text {
	font-size: 14px;
	color: var(--color-text-muted);
	max-width: 420px;
	margin: 0 auto 20px;
}

.membership-gate__cta {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background-color: var(--color-secondary);
	color: #fff;
	font-weight: 700;
	font-size: 14px;
	padding: 11px 24px;
	border-radius: var(--radius-sm);
	transition: background-color var(--transition-base);
}

.membership-gate__cta:hover,
.membership-gate__cta:focus-visible {
	background-color: var(--color-primary);
}

/* --- Bouton CTA de section (home : missions/actualités/partenaires...) ---
   Un seul style partagé plutôt que trois boutons différents par section
   (demande utilisateur 2026-09-22 : "homogénéiser tous ces boutons") — bleu
   plein, léger radius, jamais de bordure, hover vert. */
.btn-section-cta {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	background-color: var(--color-primary-light);
	color: var(--color-background);
	border: none;
	padding: 13px 32px;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	border-radius: 3px;
	transition: background-color var(--transition-base);
}

.btn-section-cta:hover,
.btn-section-cta:focus-visible {
	background-color: var(--color-secondary);
	color: var(--color-background);
}

/* --- Boutons génériques (pages Contact, Adhésion...) --- */

.btn-primary,
.btn-outline {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	font-weight: 700;
	font-size: 14px;
	padding: 13px 28px;
	border-radius: var(--radius-sm);
	transition: all var(--transition-base);
}

.btn-primary {
	background-color: var(--color-secondary);
	color: #fff;
	border: 2px solid var(--color-secondary);
}

.btn-primary:hover,
.btn-primary:focus-visible {
	background-color: var(--color-primary);
	border-color: var(--color-primary);
	color: #fff;
}

.btn-outline {
	background-color: transparent;
	color: var(--color-text);
	border: 2px solid var(--color-border);
}

.btn-outline:hover,
.btn-outline:focus-visible {
	border-color: var(--color-secondary);
	color: var(--color-secondary);
}

/* --- Lightbox générique (image en grand, fond assombri) ---
   Overlay unique partagé par tout le site (cf. footer.php + main.js
   initLightbox), demande utilisateur 2026-09-21. */

.lightbox {
	position: fixed;
	inset: 0;
	z-index: 1000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 40px;
	background-color: rgba(13, 30, 61, 0.88);
}

.lightbox[hidden] {
	display: none;
}

.lightbox__img {
	max-width: 100%;
	max-height: 100%;
	border-radius: var(--radius-md);
	box-shadow: 0 24px 80px rgba(0, 0, 0, 0.4);
}

.lightbox__close {
	position: absolute;
	top: 20px;
	right: 20px;
	width: 44px;
	height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: rgba(255, 255, 255, 0.12);
	color: #fff;
	border: none;
	border-radius: 50%;
	cursor: pointer;
	transition: background-color var(--transition-base);
}

.lightbox__close:hover,
.lightbox__close:focus-visible {
	background-color: rgba(255, 255, 255, 0.22);
}

body.lightbox-open {
	overflow: hidden;
}

/* --- Accessibilité --- */

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}
