/*
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:      4.5.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: #26c4ec;            /* bleu céleste demandé par le client */
	--adn-accent-hover: #1aa9cf;
	--adn-accent-text: #16323d;       /* texte sombre utilisé SUR le bleu céleste (trop clair pour du texte blanc lisible) */
	--adn-accent-on-light: #0c7a99;   /* variante plus foncée du bleu céleste, utilisée comme TEXTE sur fond blanc/clair (le céleste pur y est trop pâle) */
	--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: "Playfair Display", serif; /* citations, accroches — italique élégant */
	--adn-font-texte: "Poppins", sans-serif;      /* texte courant */

	/* 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.85rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--adn-or) !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: 600;
	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;
}
/* Taille du logo : c'est CETTE ligne qui contrôle la taille, pas l'option
   "Logo" du Personnaliseur Astra. Le header de ce site est entièrement
   codé à la main (voir functions.php) et n'utilise PAS le header natif
   d'Astra — l'option native est donc sans effet ici, ce n'est pas un bug,
   juste un réglage qui ne s'applique pas à ce header personnalisé. Pour
   changer la taille du logo, modifie uniquement le nombre ci-dessous. */
.adn-header-logo { margin-left: 3rem; }
.adn-header-logo img { height: 80px; 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.92rem;
	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-accent-text) !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-accent-text) !important; }

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

@media (max-width: 960px) {
	.adn-header-logo { margin-left: 0; }
	.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 !important;
}
.adn-hero-inner { max-width: 780px; margin: 0 auto; }
.adn-hero h1 { color: var(--adn-blanc); }
.adn-hero p, .adn-hero .adn-eyebrow, .adn-hero .adn-lede { text-align: center !important; }

/* ==========================================================================
   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-accent-text) !important; }
@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-accent-text) !important;
	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-align: center;
	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-accent-text) !important;
}
.wp-block-button.is-style-outline .wp-block-button__link,
.adn-btn-outline {
	background-color: transparent;
	border: 2px solid currentColor;
	color: var(--adn-blanc) !important;
}
.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 !important; 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-on-light); }
.adn-icon svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

/* Grille de cartes à icône ronde — reprend le style apprécié de l'ancien
   site (icône colorée en médaillon + carte sombre), adapté au bleu du
   nouveau thème à la place du vert d'origine. */
.adn-icon-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.4rem; margin-top: 2.5rem; }
.adn-icon-card {
	background: var(--adn-anthracite-clair);
	border: 1px solid rgba(255,255,255,0.07);
	border-radius: var(--adn-radius);
	padding: 2.1rem 1.4rem;
	text-align: center;
}
.adn-icon-badge {
	width: 62px;
	height: 62px;
	border-radius: 50%;
	background-color: var(--adn-accent);
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 1.3rem;
}
.adn-icon-badge svg { width: 30px; height: 30px; fill: none; stroke: var(--adn-accent-text); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.adn-icon-card h3 { font-size: 1.02rem; margin-bottom: 0.5em; }
.adn-icon-card p { font-size: 0.86rem; color: #c2c2c2 !important; margin: 0; }
@media (max-width: 880px) { .adn-icon-grid { grid-template-columns: repeat(2, 1fr); } }

/* ==========================================================================
   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-accent-text);
	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-accent-text);
	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: 2px solid var(--adn-or);
	border-radius: var(--adn-radius);
	padding: 2.2rem 1.9rem;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	box-shadow: 0 18px 40px -18px rgba(184, 146, 59, 0.35);
}
/* Bandeau "Populaire" — ruban diagonal dans le coin supérieur droit de la carte */
.adn-populaire-ribbon {
	position: absolute;
	top: 18px;
	right: -42px;
	transform: rotate(45deg);
	background: var(--adn-or);
	color: var(--adn-blanc);
	font-size: 0.7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	padding: 0.4em 3rem;
	box-shadow: 0 2px 6px rgba(0,0,0,0.15);
	z-index: 2;
}
.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-on-light); 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-on-light); 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: #cfcfcf;
	text-align: center;
	margin-top: 1.5rem;
}
@media (max-width: 880px) {
	.adn-pricing-grid, .adn-pricing-grid.adn-pricing-2col { grid-template-columns: 1fr; }
}

/* ==========================================================================
   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-on-light); color: var(--adn-accent-on-light); }
.adn-downloads .adn-download-icon { width: 22px; height: 22px; flex-shrink: 0; color: var(--adn-accent-on-light); }
.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-on-light) !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-on-light) !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; }

/* ==========================================================================
   22. LIGHTBOX NATIVE D'ASTRA (PhotoSwipe)
   Correctif de précaution : quand on clique sur une image, Astra peut
   l'ouvrir dans une visionneuse plein écran (PhotoSwipe) dont les couleurs
   par défaut sont parfois peu lisibles, et dont la croix de fermeture
   n'est pas toujours bien centrée dans son cercle. Si le problème persiste
   après ce correctif, envoie une capture d'écran pour un réglage précis —
   ou plus simple : désactive complètement cette lightbox dans Astra
   (Apparence > Personnaliser > cherche "Lightbox" dans la recherche du
   Customizer et décoche l'option si elle existe sur ta version).
   ========================================================================== */
.pswp__bg { background: rgba(20, 21, 24, 0.92) !important; }
.pswp__caption, .pswp__caption__center { color: var(--adn-blanc) !important; background: rgba(20,21,24,0.75) !important; }
.pswp__button--close {
	display: flex !important;
	align-items: center;
	justify-content: center;
}
.pswp__top-bar { background: rgba(20,21,24,0.6) !important; }

/* ==========================================================================
   23. CORRECTIFS MOBILE
   Certaines pages fixent le nombre de colonnes en style inline directement
   dans le HTML (ex : grid-template-columns:repeat(4,1fr) sur une grille
   d'icônes, ou flex-basis:40% sur une colonne WordPress). Un style inline
   passe normalement au-dessus des règles responsives de la feuille de
   style — ces règles-ci utilisent !important pour reprendre la main sur
   petit écran, quel que soit ce qui a été écrit en inline dans la page.
   ========================================================================== */
@media (max-width: 880px) {
	.adn-icon-grid { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 560px) {
	.adn-icon-grid { grid-template-columns: 1fr !important; }
	.wp-block-column { flex-basis: 100% !important; }
}
