/*
Theme Name:   Astra Child - ADN Coaching
Theme URI:    https://adn-coaching.fr
Description:  Thème enfant Astra pour ADN Coaching (coaching sportif, Cross Training, coaching en entreprise). Design premium inspiré des sites de coachs sportifs reconnus, sans page builder, pensé pour être maintenu directement via l'éditeur de blocs WordPress.
Author:       Bruno
Template:     astra
Version:      2.7.0
Text Domain:  astra-child-adncoaching
*/

/* ==========================================================================
   1. VARIABLES DE MARQUE — MODIFIABLE ICI UNIQUEMENT
   ========================================================================== */
:root {
	--adn-anthracite: #23252a;        /* fond sombre profond / header / footer */
	--adn-anthracite-clair: #34363c;
	--adn-blanc: #ffffff;
	--adn-sable: #f6f3ee;             /* fond clair chaleureux (remplace le gris froid) */
	--adn-sable-fonce: #eee9e0;
	--adn-gris-texte: #4d4d4d;
	--adn-accent: #1e63c4;            /* TODO : remplacer par le bleu exact du logo */
	--adn-accent-hover: #164a93;
	--adn-or: #b8923b;                /* accent secondaire chaleureux — badges "Populaire", touches premium */
	--adn-radius: 14px;
	--adn-radius-sm: 8px;

	--adn-font-display: "Anton", sans-serif;      /* gros chiffres, badges courts */
	--adn-font-titres: "Poppins", sans-serif;     /* titres de section */
	--adn-font-accent: "Fraunces", serif;         /* citations, accroches — touche éditoriale/premium */
	--adn-font-texte: "Poppins", sans-serif;      /* texte courant */

	/* Photo de fond du hero (page Le Concept). TODO Bruno : remplacer par une
	   photo grand format (1800px+ de large) de séance de coaching. */
	/* Photo de fond du hero — valeur par défaut (page Le Concept). Les
	   autres pages (Entreprise, Personnel, Cross Training) définissent
	   leur propre photo directement en style inline sur leur section
	   .adn-hero, ce qui écrase cette valeur par défaut pour elles. */
	--adn-hero-image: url('/wp-content/uploads/2026/08/cross-training-etirements-groupe.webp');
}

/* ==========================================================================
   2. BASE & TYPOGRAPHIE
   Le site est sombre par défaut (fond anthracite, texte clair). Les
   "surfaces claires" (cartes tarifs, cartes évènements, bandeau liste
   d'attente, newsletter...) restent volontairement blanches/sable pour
   ressortir sur ce fond — leur texte est repassé en sombre plus bas
   (section 21, "SURFACES CLAIRES").
   ========================================================================== */
html { background-color: var(--adn-anthracite); }
body { background-color: var(--adn-anthracite) !important; }
body, p, li, label, input, textarea, select {
	font-family: var(--adn-font-texte);
	color: #cfcfcf !important;
	font-size: 1.02rem;
	line-height: 1.65;
}

h1, h2, h3, h4, h5, .entry-title, .ast-header-headings {
	font-family: var(--adn-font-titres);
	font-weight: 700;
	color: var(--adn-blanc) !important;
	letter-spacing: -0.01em;
}
h1 { font-size: clamp(2.4rem, 5vw, 3.6rem); line-height: 1.08; font-weight: 800; }
h2 {
	font-size: clamp(1.7rem, 3.2vw, 2.3rem);
	line-height: 1.2;
	margin-bottom: 0.6em;
}
h3 { font-size: 1.2rem; margin-bottom: 0.4em; }

/* Petit label au-dessus d'un titre : "COACHING EN ENTREPRISE", "TARIFS"... */
.adn-eyebrow {
	display: inline-block;
	font-family: var(--adn-font-texte);
	font-weight: 700;
	font-size: 0.78rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #8fb4e6 !important;
	margin-bottom: 0.8em;
}

/* Paragraphe d'intro plus grand, respirant */
.adn-lede {
	font-size: 1.18rem;
	line-height: 1.6;
	color: #e4e4e4 !important;
	max-width: 760px;
}

/* Citation / accroche éditoriale */
.adn-quote {
	font-family: var(--adn-font-accent);
	font-style: italic;
	font-weight: 500;
	font-size: clamp(1.3rem, 2.4vw, 1.8rem);
	line-height: 1.4;
	color: var(--adn-blanc) !important;
	max-width: 720px;
}

a { color: #8fb4e6 !important; }
a:hover { color: var(--adn-blanc) !important; }

/* ==========================================================================
   3. HEADER — centralisé dans le thème enfant
   ========================================================================== */
.site-header, .ast-primary-header-bar { display: none !important; }

.adn-header {
	position: sticky;
	top: 0;
	z-index: 999;
	background-color: var(--adn-anthracite);
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0.9rem 1.5rem;
	border-top: 3px solid var(--adn-accent);
}
.adn-header-logo img { height: 44px; width: auto; display: block; }
.adn-header-nav { display: flex; align-items: center; gap: 2rem; }
.adn-header-nav ul { list-style: none; display: flex; gap: 1.6rem; margin: 0; padding: 0; }
.adn-header-nav a {
	color: var(--adn-blanc) !important;
	font-weight: 600;
	font-size: 0.83rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	text-decoration: none;
	padding-bottom: 4px;
	border-bottom: 2px solid transparent;
	white-space: nowrap;
}
.adn-header-nav a:hover,
.adn-header-nav .current-menu-item > a,
.adn-header-nav .current_page_item > a { border-bottom-color: var(--adn-accent); }

.adn-header-cta {
	background-color: var(--adn-accent);
	color: var(--adn-blanc) !important;
	padding: 0.7em 1.4em;
	border-radius: var(--adn-radius-sm);
	font-weight: 700;
	font-size: 0.8rem;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	white-space: nowrap;
}
.adn-header-cta:hover { background-color: var(--adn-accent-hover); color: var(--adn-blanc) !important; }

.adn-header-toggle { display: none; background: none; border: none; cursor: pointer; flex-direction: column; gap: 5px; padding: 0; }
.adn-header-toggle span { width: 26px; height: 2px; background: var(--adn-blanc); display: block; }

@media (max-width: 960px) {
	.adn-header-toggle { display: flex; }
	.adn-header-nav {
		position: absolute; top: 100%; left: 0; right: 0;
		background-color: var(--adn-anthracite);
		flex-direction: column; align-items: flex-start;
		padding: 1.5rem; gap: 1.5rem; display: none;
	}
	.adn-header-nav.is-open { display: flex; }
	.adn-header-nav ul { flex-direction: column; gap: 1.1rem; }
}

/* ==========================================================================
   4. SECTIONS DE BASE
   ========================================================================== */
.adn-section { padding: 5rem 1.5rem; max-width: 1180px; margin: 0 auto; }
.adn-section-alt { background-color: var(--adn-anthracite-clair); padding: 5rem 1.5rem; }
.adn-section-alt > .adn-section-inner { max-width: 1180px; margin: 0 auto; }
.adn-section-dark { background-color: var(--adn-anthracite); color: var(--adn-blanc); padding: 5rem 1.5rem; }
.adn-section-dark > .adn-section-inner { max-width: 1180px; margin: 0 auto; }
.adn-texture {
	background-image: repeating-linear-gradient(45deg, rgba(255,255,255,0.05) 0px, rgba(255,255,255,0.05) 2px, transparent 2px, transparent 14px);
}
/* Texture alternative "points" — utilisée sur les sections alt pour se
   distinguer visuellement de la trame diagonale (hero, footer). */
.adn-dots {
	background-image: radial-gradient(rgba(255,255,255,0.09) 1.5px, transparent 1.5px);
	background-size: 22px 22px;
}

/* Hero photo + overlay */
.adn-hero {
	position: relative;
	background-image:
		linear-gradient(180deg, rgba(35,37,42,0.80), rgba(35,37,42,0.92)),
		var(--adn-hero-image);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	color: var(--adn-blanc);
	padding: 6rem 1.5rem 5rem;
	text-align: center;
}
.adn-hero-inner { max-width: 780px; margin: 0 auto; }
.adn-hero h1 { color: var(--adn-blanc); }

/* ==========================================================================
   4bis. MISES EN PAGE ALTERNATIVES — pour varier le rythme visuel
   ========================================================================== */

/* Grille asymétrique 2 tiers / 1 tiers (ou inverse) */
.adn-split-wide-narrow { display: grid; grid-template-columns: 2fr 1fr; gap: 2.5rem; align-items: start; }
.adn-split-narrow-wide { display: grid; grid-template-columns: 1fr 2fr; gap: 2.5rem; align-items: start; }
@media (max-width: 880px) { .adn-split-wide-narrow, .adn-split-narrow-wide { grid-template-columns: 1fr; } }

/* Grille "bento" : 1 grande carte + plusieurs petites */
.adn-bento { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: minmax(140px, auto); gap: 1.25rem; }
.adn-bento .adn-bento-large { grid-column: span 2; grid-row: span 2; }
.adn-bento-item {
	background: rgba(255,255,255,0.04);
	border: 1px solid rgba(255,255,255,0.08);
	border-radius: var(--adn-radius);
	padding: 1.5rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.adn-bento-item.adn-bento-accent { background: var(--adn-accent); border-color: var(--adn-accent); }
.adn-bento-item.adn-bento-accent * { color: var(--adn-blanc); }
@media (max-width: 880px) {
	.adn-bento { grid-template-columns: repeat(2, 1fr); }
	.adn-bento .adn-bento-large { grid-column: span 2; grid-row: span 1; }
}

/* Liste à grands numéros (alternative aux coches, pour varier) */
.adn-numbered-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.5rem; }
.adn-numbered-list li { display: flex; gap: 1.1rem; align-items: flex-start; }
.adn-numbered-list .adn-num {
	font-family: var(--adn-font-display);
	font-size: 1.8rem;
	color: var(--adn-or);
	line-height: 1;
	flex-shrink: 0;
	min-width: 2ch;
}

/* Intro de section alignée à gauche (variante du centrage par défaut) */
.adn-intro-left { text-align: left; max-width: 640px; }

/* ==========================================================================
   5. BOUTONS
   ========================================================================== */
.wp-block-button__link, a.ast-button, button[type="submit"], .adn-btn {
	background-color: var(--adn-accent);
	color: var(--adn-blanc);
	border-radius: var(--adn-radius-sm);
	font-family: var(--adn-font-texte);
	font-weight: 700;
	font-size: 0.92rem;
	letter-spacing: 0.02em;
	padding: 0.95em 2em;
	border: none;
	display: inline-block;
	text-decoration: none;
	transition: background-color 0.2s ease, transform 0.15s ease;
}
.wp-block-button__link:hover, a.ast-button:hover, button[type="submit"]:hover, .adn-btn:hover {
	background-color: var(--adn-accent-hover);
	transform: translateY(-2px);
	color: var(--adn-blanc);
}
.wp-block-button.is-style-outline .wp-block-button__link,
.adn-btn-outline {
	background-color: transparent;
	border: 2px solid currentColor;
	color: var(--adn-blanc);
}
.adn-btn-outline:hover { background-color: rgba(255,255,255,0.1); }
.adn-buttons-row { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; margin-top: 2rem; }

/* ==========================================================================
   6. CARTES D'ACTIVITÉ CLIQUABLES (page Le Concept)
   Photo de fond + overlay + titre + CTA, toute la carte est un lien
   ========================================================================== */
.adn-activity-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; margin-top: 2.5rem; }
.adn-activity-card {
	position: relative;
	border-radius: var(--adn-radius);
	overflow: hidden;
	min-height: 360px;
	background-color: var(--adn-anthracite);
	background-size: cover;
	background-position: center;
	isolation: isolate;
}
.adn-activity-card::before {
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(35,37,42,0.15) 0%, rgba(35,37,42,0.94) 85%);
	z-index: 1;
}
/* Lien invisible qui couvre toute la carte (clic = va vers la page dédiée) */
.adn-activity-card-overlay-link { position: absolute; inset: 0; z-index: 2; }
.adn-activity-card-body {
	position: absolute; left: 0; right: 0; bottom: 0; z-index: 3;
	padding: 1.85rem;
	pointer-events: none; /* le clic traverse vers le lien overlay, sauf sur le bouton */
}
.adn-activity-card h3 { color: var(--adn-blanc); margin: 0 0 0.4em; font-size: 1.3rem; }
.adn-activity-card h3 a { color: inherit; text-decoration: none; }
.adn-activity-card p { color: #d8d8d8; margin: 0 0 1.2em; font-size: 0.92rem; }
.adn-activity-card .adn-btn {
	position: relative;
	z-index: 4;
	pointer-events: auto; /* le bouton redevient cliquable pour son propre lien */
	padding: 0.7em 1.3em;
	font-size: 0.82rem;
}
.adn-activity-card:hover .adn-btn { background-color: var(--adn-accent-hover); }
@media (max-width: 880px) { .adn-activity-grid { grid-template-columns: 1fr; } }

/* Cartes simples (icône/texte) */
.adn-card {
	background: var(--adn-blanc);
	border: 1px solid #ece7dc;
	border-top: 3px solid var(--adn-accent);
	border-radius: 0 0 var(--adn-radius) var(--adn-radius);
	padding: 1.9rem;
	height: 100%;
}
.adn-card h3 { margin-top: 0; color: var(--adn-anthracite) !important; }

.adn-icon { width: 42px; height: 42px; margin-bottom: 0.75rem; color: var(--adn-accent); }
.adn-icon svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

/* ==========================================================================
   7. CHIFFRES CLÉS
   ========================================================================== */
.adn-stat-number {
	font-family: var(--adn-font-display);
	font-size: clamp(2.6rem, 5.5vw, 4rem);
	font-weight: 400;
	color: var(--adn-accent);
	display: block;
	line-height: 0.95;
}
.adn-stat-label { font-size: 0.88rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #cfcfcf; }

/* ==========================================================================
   8. LISTES À COCHE / ÉTAPES
   ========================================================================== */
.adn-check-list { list-style: none; margin: 0; padding: 0; }
.adn-check-list li { position: relative; padding-left: 1.9em; margin-bottom: 0.75em; }
.adn-check-list li::before {
	content: "✓";
	position: absolute; left: 0; top: 0;
	color: #8fb4e6; font-weight: 700;
}

.adn-step {
	background: var(--adn-blanc);
	border-left: 3px solid var(--adn-accent);
	border-radius: 0 var(--adn-radius) var(--adn-radius) 0;
	padding: 1.4rem 1.6rem;
	height: 100%;
}
.adn-step-number {
	display: inline-block;
	font-family: var(--adn-font-display);
	color: var(--adn-blanc);
	background-color: var(--adn-accent);
	font-size: 0.8rem;
	letter-spacing: 0.02em;
	padding: 0.35em 0.9em;
	border-radius: 999px;
	margin-bottom: 0.6em;
}

.adn-badge {
	display: inline-block;
	background-color: var(--adn-accent);
	color: var(--adn-blanc);
	font-size: 0.72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	padding: 0.35em 0.9em;
	border-radius: 999px;
}
.adn-badge-muted { background-color: #9a9a9a; }
.adn-badge-or { background-color: var(--adn-or); }

/* ==========================================================================
   9. TARIFS — "Choisissez votre formule"
   ========================================================================== */
.adn-pricing-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.75rem; margin-top: 2.5rem; align-items: stretch; }
.adn-pricing-grid.adn-pricing-2col { grid-template-columns: repeat(2, 1fr); max-width: 820px; margin-left: auto; margin-right: auto; }

.adn-pricing-card {
	position: relative;
	background: var(--adn-blanc);
	border: 1px solid #ece7dc;
	border-radius: var(--adn-radius);
	padding: 2.2rem 1.9rem;
	display: flex;
	flex-direction: column;
}
.adn-pricing-card.is-featured {
	border: 2px solid var(--adn-or);
	box-shadow: 0 18px 40px -18px rgba(184, 146, 59, 0.45);
	transform: translateY(-6px);
}
.adn-pricing-ribbon {
	position: absolute;
	top: -14px;
	left: 50%;
	transform: translateX(-50%);
	background-color: var(--adn-or);
	color: var(--adn-blanc);
	font-size: 0.72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	padding: 0.4em 1.1em;
	border-radius: 999px;
	white-space: nowrap;
}
.adn-pricing-name { font-family: var(--adn-font-titres); font-weight: 700; font-size: 1.05rem; text-transform: uppercase; letter-spacing: 0.03em; color: var(--adn-anthracite); margin-bottom: 0.3em; }
.adn-pricing-engagement { font-size: 0.85rem; color: var(--adn-gris-texte); margin-bottom: 1.2em; }
.adn-price { font-family: var(--adn-font-display); font-size: 2.6rem; color: var(--adn-accent); line-height: 1; margin-bottom: 0.15em; }
.adn-price span { font-family: var(--adn-font-texte); font-size: 0.95rem; font-weight: 600; color: var(--adn-gris-texte); text-transform: none; }
.adn-pricing-features { list-style: none; margin: 1.4rem 0; padding: 0; flex-grow: 1; }
.adn-pricing-features li { position: relative; padding-left: 1.7em; margin-bottom: 0.65em; font-size: 0.94rem; }
.adn-pricing-features li::before { content: "✓"; position: absolute; left: 0; color: var(--adn-accent); font-weight: 700; }
.adn-price-note { font-size: 0.82rem; font-style: italic; color: var(--adn-gris-texte); margin-top: 0.8em; text-align: center; }
.adn-pricing-fee-notice {
	grid-column: 1 / -1;
	font-size: 0.85rem;
	font-style: italic;
	color: var(--adn-gris-texte);
	background: var(--adn-sable);
	border-radius: var(--adn-radius-sm);
	padding: 1em 1.3em;
	margin-top: 0.5rem;
}
@media (max-width: 880px) {
	.adn-pricing-grid, .adn-pricing-grid.adn-pricing-2col { grid-template-columns: 1fr; }
	.adn-pricing-card.is-featured { transform: none; }
}

/* ==========================================================================
   10. BANDEAU LISTE D'ATTENTE
   ========================================================================== */
.adn-waitlist {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	background: var(--adn-sable);
	border-left: 4px solid var(--adn-or);
	border-radius: var(--adn-radius-sm);
	padding: 1.3rem 1.6rem;
	margin-top: 2.5rem;
}
.adn-waitlist p { margin: 0; color: var(--adn-anthracite); font-weight: 500; }
.adn-waitlist .adn-btn { padding: 0.7em 1.4em; font-size: 0.85rem; white-space: nowrap; }

/* ==========================================================================
   11. BANDEAU "ILS NOUS FONT CONFIANCE" / LOGOS
   ========================================================================== */
.adn-trust-strip {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 2.5rem;
	margin-top: 2.5rem;
	padding-top: 2rem;
	border-top: 1px solid #e5e0d5;
}
.adn-trust-strip img { max-height: 42px; width: auto; opacity: 0.75; filter: grayscale(100%); transition: opacity 0.2s ease, filter 0.2s ease; }
.adn-trust-strip img:hover { opacity: 1; filter: grayscale(0%); }
.adn-trust-strip .adn-trust-name {
	font-family: var(--adn-font-titres);
	font-weight: 700;
	font-size: 0.95rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: #9a9488;
}

/* ==========================================================================
   12. GALERIE TRANSFORMATIONS / ÉQUIPE
   ========================================================================== */
.adn-transfo-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-top: 2rem; }
.adn-transfo-grid figure { margin: 0; border-radius: var(--adn-radius-sm); overflow: hidden; }
.adn-transfo-grid img { width: 100%; height: 260px; object-fit: cover; display: block; }
.adn-transfo-grid figcaption { font-size: 0.82rem; text-align: center; padding: 0.5em 0; color: var(--adn-gris-texte); }
@media (max-width: 880px) { .adn-transfo-grid { grid-template-columns: repeat(2, 1fr); } }

/* ==========================================================================
   13. DOCUMENTS À TÉLÉCHARGER
   ========================================================================== */
.adn-downloads { list-style: none; margin: 1.5rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.adn-downloads li { }
.adn-downloads a {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	background: var(--adn-blanc);
	border: 1px solid #ece7dc;
	border-radius: var(--adn-radius-sm);
	padding: 1rem 1.2rem;
	text-decoration: none;
	color: var(--adn-anthracite);
	font-weight: 600;
	font-size: 0.92rem;
	transition: border-color 0.2s ease;
}
.adn-downloads a:hover { border-color: var(--adn-accent); color: var(--adn-accent); }
.adn-downloads .adn-download-icon { width: 22px; height: 22px; flex-shrink: 0; color: var(--adn-accent); }
.adn-downloads .adn-download-icon svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.8; }
@media (max-width: 640px) { .adn-downloads { grid-template-columns: 1fr; } }

/* ==========================================================================
   14. VIDÉO AUTO-HÉBERGÉE
   ========================================================================== */

/* Vidéo héros pleine largeur (page Le Concept) : bord à bord horizontalement
   (aucun cadre), avec une marge verticale sombre symétrique au-dessus et
   en dessous. Injectée directement après <body> par le thème (voir
   functions.php, fonction adn_coaching_hero_video) plutôt que collée dans
   le contenu de la page : c'est donc déjà un enfant direct de body, sans
   contrainte de largeur liée au conteneur de contenu d'Astra. */
.adn-video-hero {
	background-color: var(--adn-anthracite);
	padding: 2.75rem 0;
	width: 100%;
}
.adn-video-full { width: 100%; aspect-ratio: 16/9; background-color: #000; overflow: hidden; }
.adn-video-full video { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Vidéo "en fenêtre", plus petite, utilisée sur la page Cross Training */
.adn-video-small {
	width: 100%;
	max-width: 460px;
	aspect-ratio: 16/9;
	background-color: #000;
	border-radius: var(--adn-radius);
	overflow: hidden;
	margin: 2rem auto;
	box-shadow: 0 18px 40px -18px rgba(35,37,42,0.45);
}
.adn-video-small video { width: 100%; height: 100%; object-fit: cover; display: block; }

.adn-video-boxed { width: 100%; aspect-ratio: 16/9; background-color: var(--adn-anthracite); border-radius: var(--adn-radius); overflow: hidden; }
.adn-video-boxed video { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ==========================================================================
   15. BLOC COORDONNÉES (Contact)
   ========================================================================== */
.adn-contact-item { margin-bottom: 1.5rem; }
.adn-contact-item strong { display: block; color: var(--adn-anthracite); font-family: var(--adn-font-titres); margin-bottom: 0.2em; }

/* ==========================================================================
   16. FORMULAIRES (contact, événements, newsletter)
   ========================================================================== */
.adn-form input, .adn-form textarea, .adn-form select {
	width: 100%;
	padding: 0.85em 1em;
	margin-bottom: 1em;
	border: 1px solid #ddd6c8;
	border-radius: var(--adn-radius-sm);
	font-family: var(--adn-font-texte);
	font-size: 1rem;
	background: var(--adn-blanc);
	color: var(--adn-anthracite) !important;
}
.adn-form label { display: block; font-weight: 600; margin-bottom: 0.3em; }
.adn-form-notice { padding: 1em 1.25em; border-radius: var(--adn-radius-sm); margin-bottom: 1.5em; font-weight: 600; }
.adn-form-notice.success { background: #e5f7ea; color: #1e7b3c !important; }
.adn-form-notice.error { background: #fdeceb; color: var(--adn-accent-hover) !important; }

.adn-form-checkbox { display: flex; align-items: flex-start; gap: 0.6em; margin-bottom: 1.2em; }
.adn-form-checkbox input { width: auto; margin: 0.2em 0 0; flex-shrink: 0; }
.adn-form-checkbox label { font-weight: 400; font-size: 0.9rem; margin-bottom: 0; }

.adn-newsletter { text-align: center; padding: 4rem 1.5rem; background-color: var(--adn-sable-fonce); }
.adn-newsletter .adn-form { max-width: 460px; margin: 1.5rem auto 0; display: flex; gap: 0.7rem; }
.adn-newsletter .adn-form input { margin-bottom: 0; }
.adn-newsletter .adn-btn { white-space: nowrap; }
@media (max-width: 560px) { .adn-newsletter .adn-form { flex-direction: column; } }

/* ==========================================================================
   17. ÉVÉNEMENTS
   ========================================================================== */
.adn-event-card { background: var(--adn-blanc); border-radius: var(--adn-radius); overflow: hidden; border: 1px solid #ece7dc; }
.adn-event-card img { width: 100%; height: 220px; object-fit: cover; display: block; }
.adn-event-card .adn-event-body { padding: 1.6rem; }
.adn-event-meta { color: var(--adn-gris-texte); font-size: 0.94rem; margin-bottom: 1em; }

/* ==========================================================================
   18. SAP / LOGOS PARTENAIRES
   ========================================================================== */
.adn-sap-badge { text-align: center; margin-top: 3rem; }
.adn-sap-badge img { max-height: 60px; width: auto; margin: 0 auto; display: block; }
.adn-sap-badge p { font-size: 0.82rem; margin-top: 0.6em; }

/* ==========================================================================
   19. FOOTER
   ========================================================================== */
.adn-footer {
	background-image: repeating-linear-gradient(45deg, rgba(255,255,255,0.05) 0px, rgba(255,255,255,0.05) 2px, transparent 2px, transparent 14px);
	background-color: var(--adn-anthracite);
	color: #cfcfcf;
	padding: 3.5rem 1.5rem 1.5rem;
}
.adn-footer a { color: #cfcfcf !important; text-decoration: none; }
.adn-footer a:hover { color: var(--adn-blanc) !important; }
.adn-footer-cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; max-width: 1180px; margin: 0 auto 2.5rem; }
.adn-footer h4 { color: var(--adn-blanc); font-family: var(--adn-font-titres); font-size: 0.95rem; text-transform: uppercase; letter-spacing: 0.04em; margin-bottom: 1em; }
.adn-footer ul { list-style: none; margin: 0; padding: 0; }
.adn-footer li { margin-bottom: 0.6em; }
.adn-footer-bottom { max-width: 1180px; margin: 0 auto; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,0.1); font-size: 0.85rem; text-align: center; color: #8f8f8f; }
@media (max-width: 780px) { .adn-footer-cols { grid-template-columns: 1fr; } }

/* ==========================================================================
   20. UTILITAIRES
   ========================================================================== */
.adn-center { text-align: center; }
.adn-max-680 { max-width: 680px; margin-left: auto; margin-right: auto; }

/* ==========================================================================
   21. SURFACES CLAIRES
   Le site est sombre par défaut (section 2, règles en !important pour
   rester prioritaires face au CSS dynamique généré par Astra). Ces
   quelques composants restent volontairement à fond clair pour
   ressortir — leur texte est donc repassé en sombre ici, EN !IMPORTANT
   également, sans quoi les règles de base (elles-mêmes !important)
   gagneraient malgré tout et rendraient ce texte illisible sur blanc.
   ========================================================================== */

/* Carte simple blanche (ex : promo 50%) */
.adn-card p { color: var(--adn-gris-texte) !important; }

/* Étape de séance (fond blanc) */
.adn-step p { color: var(--adn-gris-texte) !important; }

/* Carte tarif (fond blanc) */
.adn-pricing-features li { color: var(--adn-gris-texte) !important; }
.adn-price-note { color: var(--adn-gris-texte) !important; }

/* Carte évènement (fond blanc) */
.adn-event-card h3 { color: var(--adn-anthracite) !important; }
.adn-event-card p { color: var(--adn-gris-texte) !important; }
.adn-event-meta { color: var(--adn-gris-texte) !important; }

/* Documents à télécharger (fond blanc) */
.adn-downloads a { color: var(--adn-anthracite) !important; }
.adn-downloads a:hover { color: var(--adn-accent) !important; }

/* Bandeau newsletter (fond sable) */
.adn-newsletter { color: var(--adn-gris-texte) !important; }
.adn-newsletter h2 { color: var(--adn-anthracite) !important; }
.adn-newsletter .adn-eyebrow { color: var(--adn-accent) !important; }

/* Bandeau liste d'attente (fond sable) */
.adn-waitlist p { color: var(--adn-anthracite) !important; }

/* Coordonnées de contact : maintenant sur fond sombre, texte clair */
.adn-contact-item strong { color: var(--adn-blanc) !important; }

/* Légendes sous photo : maintenant sur fond sombre, texte clair */
.adn-transfo-grid figcaption { color: #cfcfcf !important; }

/* Cartes d'activité (photo sombre) : texte clair */
.adn-activity-card h3 { color: var(--adn-blanc) !important; }
.adn-activity-card p { color: #d8d8d8 !important; }
