﻿
/*
Theme Name: SCAP Cadaujac
Theme URI: https://scap-cadaujac.fr
Author: SCAP Cadaujac
Description: Theme sur-mesure pour le club de running, trail & marche sportive SCAP Cadaujac (Gironde). Design responsive inspiré de la maquette : palette ivoire/rouge/nuit, ambience nature.
Version: 1.12.5
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: scap-cadaujac
Tags: one-column, custom-menu, featured-images, translation-ready
*/

@font-face { font-family:'Outfit'; src:url('assets/fonts/Outfit-Regular.ttf') format('truetype'); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:'Outfit'; src:url('assets/fonts/Outfit-Medium.ttf') format('truetype'); font-weight:500; font-style:normal; font-display:swap; }
@font-face { font-family:'Outfit'; src:url('assets/fonts/Outfit-SemiBold.ttf') format('truetype'); font-weight:600; font-style:normal; font-display:swap; }
@font-face { font-family:'Outfit'; src:url('assets/fonts/Outfit-Bold.ttf') format('truetype'); font-weight:700; font-style:normal; font-display:swap; }
@font-face { font-family:'Outfit'; src:url('assets/fonts/Outfit-ExtraBold.ttf') format('truetype'); font-weight:800; font-style:normal; font-display:swap; }
@font-face { font-family:'Outfit'; src:url('assets/fonts/Outfit-Black.ttf') format('truetype'); font-weight:900; font-style:normal; font-display:swap; }
@font-face { font-family:'Inter'; src:url('assets/fonts/Inter_18pt-Regular.ttf') format('truetype'); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:'Inter'; src:url('assets/fonts/Inter_18pt-Medium.ttf') format('truetype'); font-weight:500; font-style:normal; font-display:swap; }
@font-face { font-family:'Inter'; src:url('assets/fonts/Inter_18pt-SemiBold.ttf') format('truetype'); font-weight:600; font-style:normal; font-display:swap; }
@font-face { font-family:'Inter'; src:url('assets/fonts/Inter_18pt-Bold.ttf') format('truetype'); font-weight:700; font-style:normal; font-display:swap; }
@font-face { font-family:'Caveat'; src:url('assets/fonts/Caveat-Regular.ttf') format('truetype'); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:'Caveat'; src:url('assets/fonts/Caveat-Medium.ttf') format('truetype'); font-weight:500; font-style:normal; font-display:swap; }
@font-face { font-family:'Caveat'; src:url('assets/fonts/Caveat-SemiBold.ttf') format('truetype'); font-weight:600; font-style:normal; font-display:swap; }
@font-face { font-family:'Caveat'; src:url('assets/fonts/Caveat-Bold.ttf') format('truetype'); font-weight:700; font-style:normal; font-display:swap; }

:root {
	--creme:#F8F4EC; --creme-2:#EFE7D8; --blanc:#FFFDF8;
	--noir:#16161A; --noir-2:#232325; --noir-3:#2E2E31;
	--rouge:#E00838; --rouge-fonce:#B30A2F; --rouge-cuir:#7D201B; --violet:#6C4AB6; --rose:#D6336C;
	--texte:#403F43; --texte-clair:#F8F4EC; --gris:#8E8D92;
	--outfit:'Outfit','Segoe UI',sans-serif;
	--inter:'Inter','Segoe UI',sans-serif;
	--caveat:'Caveat',cursive;
	--radius:18px; --shadow:0 18px 40px -18px rgba(20,20,25,.35); --transition:.3s cubic-bezier(.4,0,.2,1);
}

*, *::before, *::after { box-sizing:border-box; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body { margin:0; font-family:var(--inter); font-size:16px; line-height:1.7; color:var(--texte); background:var(--creme); overflow-x:hidden; }
img { max-width:100%; height:auto; display:block; }
a { color:var(--rouge); text-decoration:none; transition:color var(--transition); }
a:hover { color:var(--rouge-fonce); }
h1,h2,h3,h4,h5,h6 { font-family:var(--outfit); color:var(--noir); line-height:1.15; margin:0 0 .5em; font-weight:800; }
p { margin:0 0 1em; }
ul, ol { margin:0 0 1em; padding-left:1.2em; }

.container { width:100%; max-width:1280px; margin:0 auto; padding:0 24px; }

.btn { display:inline-flex; align-items:center; justify-content:center; gap:10px; font-family:var(--outfit); font-weight:700; font-size:15px; letter-spacing:.04em; text-transform:uppercase; padding:15px 30px; border-radius:999px; border:2px solid transparent; transition:transform var(--transition),background var(--transition),color var(--transition),box-shadow var(--transition); cursor:pointer; line-height:1.2; }
.btn .arw { font-size:18px; line-height:1; transition:transform var(--transition); }
.btn:hover .arw { transform:translateX(5px); }
.btn-rouge { background:var(--rouge); color:#fff; box-shadow:0 14px 30px -12px rgba(224,8,56,.7); }
.btn-rouge:hover { background:var(--rouge-fonce); color:#fff; transform:translateY(-2px); }
.btn-ivoire { background:transparent; color:var(--creme); border-color:rgba(248,244,236,.55); }
.btn-ivoire:hover { background:var(--creme); color:var(--noir); transform:translateY(-2px); }
.btn-nuit { background:var(--noir); color:var(--creme); }
.btn-nuit:hover { background:var(--rouge); color:#fff; transform:translateY(-2px); }
.btn-blanc { background:var(--creme); color:var(--noir); }
.btn-blanc:hover { background:var(--rouge); color:#fff; transform:translateY(-2px); }

.section { padding:96px 0; position:relative; }
.section-tag { display:inline-flex; align-items:center; gap:12px; font-family:var(--outfit); font-weight:600; font-size:13px; letter-spacing:.28em; text-transform:uppercase; color:var(--rouge); margin-bottom:18px; }
.section-tag::before { content:''; width:34px; height:2px; background:var(--rouge); display:inline-block; }
.section-script { font-family:var(--caveat); font-weight:600; color:var(--rouge); font-size:clamp(26px,3vw,36px); line-height:1; margin:0 0 10px; }
.section-title { font-size:clamp(30px,4.6vw,52px); font-weight:900; letter-spacing:-0.02em; margin:0 0 18px; }
.section-sub { font-size:17px; color:#6A695F; max-width:640px; }
.sub {margin: 0 auto; }
.section-head { max-width:760px; margin-bottom:0px; }
.section-head.centered { margin-left:auto; margin-right:auto; text-align:center; }
/* =====================================================================
   HEADER & NAVIGATION
   ===================================================================== */
.site-header { position:absolute; top:0; left:0; right:0; z-index:60; }
.site-header.is-sticky { position:fixed; background:rgba(22,22,26,.92); backdrop-filter:blur(12px); box-shadow:0 12px 30px -18px rgba(0,0,0,.6); }
.topbar { background:var(--rouge); color:#fff; font-size:13px; }
.topbar-inner { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:10px; }
.topbar a { color:#fff; opacity:.92; }
.topbar a:hover { opacity:1; }
.topbar-left { display:flex; align-items:center; gap:22px; flex-wrap:wrap; }
.topbar-item { display:inline-flex; align-items:center; gap:8px; }
.topbar-item svg, .topbar-item img { width:14px; height:14px; object-fit:contain; filter:brightness(0) invert(1); }
.topbar-right { display:flex; align-items:center; gap:14px; }
.topbar-social { display:inline-flex; align-items:center; gap:12px; }
.topbar-social a { display:inline-flex; padding:4px; border-radius:6px; transition:background var(--transition); }
.topbar-social a:hover { background:rgba(255,255,255,.18); }
.topbar-social img { width:16px; height:16px; object-fit:contain; filter:brightness(0) invert(1); }

.main-nav { transition:background var(--transition), box-shadow var(--transition); }
.nav-inner { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:20px 0; }
.logo { display:flex; align-items:center; gap:12px; }
.logo-mark { width:42px; height:42px; border-radius:12px; background:var(--rouge); display:grid; place-items:center; color:#fff; font-family:var(--outfit); font-weight:900; font-size:16px; box-shadow:0 10px 22px -10px rgba(224,8,56,.8); }
.logo-text { line-height:1.1; }
.logo-text strong { font-family:var(--outfit); font-size:20px; font-weight:900; letter-spacing:.06em; color:var(--creme); display:block; }
.logo-text span { font-size:11px; letter-spacing:.3em; text-transform:uppercase; color:var(--gris); }
.site-header.is-sticky .logo-text strong, .site-header.is-sticky .logo-text span { color:var(--creme); }

.nav-menu { list-style:none; margin:0; padding:0; display:flex; align-items:center; gap:4px; }
.nav-menu > li > a { display:block; padding:10px 14px; font-family:var(--outfit); font-weight:600; font-size:14.5px; color:rgba(248,244,236,.92); border-radius:8px; position:relative; }
.nav-menu > li > a::after { content:''; position:absolute; left:14px; right:14px; bottom:4px; height:2px; background:var(--rouge); transform:scaleX(0); transform-origin:left; transition:transform var(--transition); }
.nav-menu > li > a:hover, .nav-menu > li.current-menu-item > a, .nav-menu > li > a:hover::after, .nav-menu > li.current-menu-item > a::after { color:#fff; transform:scaleX(1); }
.nav-menu > li > a:hover, .nav-menu > li.current-menu-item > a { color:#fff; }
.nav-menu > li > a:hover::after, .nav-menu > li.current-menu-item > a::after { transform:scaleX(1); }

/* ---- Bouton burger (menu mobile) --------------------------------------
   Ces regles de base sont declarees ICI, avant la section RESPONSIVE, pour
   que la regle .nav-toggle { display:flex } du media query puisse les
   surcharger. Declarees plus bas, meme specificite, elles annulaient le
   burger sur toutes les largeurs et le rendaient invisible.
   Zone tactile de 44 x 44 px minimum. */
.nav-toggle {
	display:none;
	flex-direction:column;
	justify-content:center;
	align-items:center;
	gap:5px;
	min-width:44px;
	min-height:44px;
	padding:10px;
	background:none;
	border:0;
	cursor:pointer;
}
.nav-toggle span { display:block; width:26px; height:2px; background:var(--creme); border-radius:2px; transition:transform var(--transition), opacity var(--transition); }
.nav-toggle.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.nav-toggle.open span:nth-child(2) { opacity:0; }
.nav-toggle.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
.nav-toggle:focus-visible { outline:2px solid var(--rouge); outline-offset:2px; border-radius:10px; }
/* =====================================================================
   HERO
body:not(.home) .site-header { position:absolute; background:linear-gradient(to bottom, rgba(14,14,17,.92), rgba(14,14,17,.4)) !important; }
body:not(.home) .site-header.is-sticky { background:rgba(22,22,26,.92) !important; }
body:not(.home) .logo-text span { color:rgba(248,244,236,.6); }
   ===================================================================== */
.hero { position:relative; min-height:100vh; min-height:100svh; display:flex; align-items:center; padding:80px 0 120px; overflow:hidden; }
.hero-mini { min-height:420px; padding:160px 0 90px; }
.hero-bg { position:absolute; inset:0; z-index:-2; }
.hero-bg img { width:100%; height:100%; object-fit:cover; }
.hero::before { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(115deg, rgba(12,12,16,.88) 0%, rgba(12,12,16,.62) 45%, rgba(12,12,16,.28) 100%); }
.hero-grid { display:grid; grid-template-columns:1.05fr .95fr; gap:48px; align-items:center; }
.hero-content { max-width:640px; }
.hero-kicker { display:inline-flex; align-items:center; gap:12px; font-family:var(--outfit); font-weight:600; font-size:13px; letter-spacing:.3em; text-transform:uppercase; color:var(--rouge); margin-bottom:22px; }
.hero-kicker::before { content:''; width:40px; height:2px; background:var(--rouge); }
.hero-script { font-family:var(--caveat); color:#F5C3CE; font-size: clamp(30px,4vw,62px); margin:0 0 6px; }
.hero h1 { color:var(--creme); font-size:clamp(30px,5vw,50px); font-weight:900; letter-spacing:-.02em; margin-bottom:22px; }
.hero h1 em { font-style:normal; color:var(--rouge); }
.hero-acc { color:#fff; }
.hero p { color:rgba(248,244,236,.82); font-size:17.5px; max-width:520px; margin-bottom:34px; }
.hero-actions { display:flex; gap:16px; flex-wrap:wrap; }
.hero-badge { margin-top:42px; display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
.hero-badge-item { display:flex; align-items:center; gap:10px; font-family:var(--outfit); font-weight:600; font-size:14px; color:rgba(248,244,236,.85); }
.hero-badge img { width:20px; height:20px; object-fit:contain; filter:brightness(0) invert(1); }

.hero-visual { position:relative; }
.hero-card { position:relative; border-radius:24px; overflow:hidden; box-shadow:0 40px 80px -30px rgba(0,0,0,.75); transform:rotate(2deg); }
.hero-card img { width:100%; aspect-ratio:4/5; object-fit:cover; }
.hero-card-float { position:absolute; bottom:22px; left:-26px; right:auto; background:var(--blanc); border-radius:16px; padding:16px 20px; display:flex; align-items:center; gap:14px; box-shadow:var(--shadow); transform:rotate(-3deg); }
.hero-card-float .dot { width:44px; height:44px; border-radius:12px; background:var(--rouge); display:grid; place-items:center; }
.hero-card-float .dot img { width:22px; height:22px; object-fit:contain; filter:brightness(0) invert(1); }
.hero-card-float strong { font-family:var(--outfit); color:var(--noir); font-size:15px; display:block; line-height:1.2; }
.hero-card-float span { font-size:12.5px; color:var(--gris); }

.hero-scroll { position:absolute; bottom:16px; left:50%; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:8px; color:rgba(248,244,236,.75); font-size:11px; letter-spacing:.3em; text-transform:uppercase; font-family:var(--outfit); }
.mouse { width:24px; height:38px; border:2px solid rgba(248,244,236,.6); border-radius:14px; position:relative; }
.mouse::after { content:''; position:absolute; top:7px; left:50%; transform:translateX(-50%); width:4px; height:8px; border-radius:4px; background:var(--rouge); animation:wheel 1.6s ease-in-out infinite; }
@keyframes wheel { 0%{opacity:1; transform:translate(-50%,0);} 70%{opacity:0; transform:translate(-50%,10px);} 100%{opacity:0;} }

/* Marquee band */
.marquee { color:var(--creme); overflow:hidden;}
.marquee-track { display:flex; gap:48px; white-space:nowrap; width:max-content; animation:scrollx 26s linear infinite; }
/* =====================================================================
   SECTION VIVRE LA NATURE (3 cartes)
   ===================================================================== */
.sect-nat { background:var(--creme); }
/* Intro “notre esprit” : texte à gauche, illustration à droite */
.sect-nat-intro { display:grid; grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr); gap:clamp(28px,4vw,64px); align-items:center; }
.sect-nat-intro .section-head { max-width:none; margin-bottom:0; }
/* Illustration transparente “notre esprit” (colonne droite, desktop) */
.esprit-illustration { position:relative; }
.esprit-illustration img { position:relative; z-index:1; display:block; width:100%; max-width:640px; margin:0 auto; height:auto; filter:drop-shadow(0 26px 34px rgba(20,20,25,.18)); }
@media (max-width:992px) {
	.sect-nat-intro { grid-template-columns:1fr; gap:22px; }
	.esprit-illustration { margin-top:6px; }
	.esprit-illustration img { max-width:720px; }
	.esprit-illustration::before { inset:4% 6% 0; }
}
@media (max-width:520px) {
	.esprit-illustration { margin-top:0; }
	.esprit-illustration img { max-width:none; }
}
.nat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.nat-card { position:relative; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); min-height:430px; display:flex; align-items:flex-end; isolation:isolate; transition:transform var(--transition), box-shadow var(--transition); }
.nat-card:hover { transform:translateY(-8px); box-shadow:0 34px 60px -24px rgba(20,20,25,.45); }
.nat-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transition:transform .8s cubic-bezier(.2,.6,.2,1); }
.nat-card:hover img { transform:scale(1.07); }
.nat-card::after { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(to top, rgba(10,10,14,.88) 8%, rgba(10,10,14,.25) 52%, rgba(10,10,14,0) 78%); }
.nat-body { padding:30px 28px; color:var(--creme); }
.nat-icon { width:52px; height:52px; border-radius:14px; background:var(--rouge); display:grid; place-items:center; margin-bottom:16px; box-shadow:0 12px 26px -10px rgba(224,8,56,.8); }
.nat-icon img { width:26px; height:26px; object-fit:contain; filter:brightness(0) invert(1); }
.nat-body h3 { color:#fff; font-size:24px; margin-bottom:8px; }
.nat-body p { color:rgba(248,244,236,.82); font-size:14.5px; margin-bottom:16px; }
.nat-link { font-family:var(--outfit); font-weight:700; font-size:13.5px; letter-spacing:.14em; text-transform:uppercase; color:#fff; display:inline-flex; align-items:center; gap:8px; }
.nat-link .arw { transition:transform var(--transition); }
.nat-link:hover { color:#FF7D98; }
.nat-link:hover .arw { transform:translateX(5px); }

/* =====================================================================
   SECTION NOTRE ESPRIT (sombre)
   ===================================================================== */
.sect-esprit { background:var(--noir); color:var(--creme); overflow:hidden; }
.sect-esprit .section-title { color:var(--creme); }
.sect-esprit .section-sub { color:rgba(248,244,236,.66); }
.esprit-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.esprit-copy p { color:rgba(248,244,236,.74); }
.esprit-points { list-style:none; margin:28px 0; padding:0; display:grid; gap:16px; }
.esprit-points li { display:flex; gap:14px; align-items:flex-start; font-weight:500; color:rgba(248,244,236,.9); }
.esprit-points .tick {padding: 5px; flex:none; width:26px; height:26px; border-radius:50%; background:var(--rouge); color:#fff; display:grid; place-items:center; font-size:13px; font-weight:800; margin-top:2px; }
.esprit-media { position:relative; }
.esprit-media img { border-radius:24px; width:100%; aspect-ratio:4/3.4; object-fit:cover; box-shadow:0 40px 80px -30px rgba(0,0,0,.8); }
.esprit-badge { position:absolute; bottom:24px; right:-14px; background:var(--rouge); color:#fff; border-radius:16px; padding:18px 22px; box-shadow:0 22px 44px -16px rgba(224,8,56,.9); text-align:center; }
.esprit-badge strong { font-family:var(--outfit); font-size:34px; font-weight:900; line-height:1; display:block; }
/* =====================================================================
   SECTION SORTIES / AGENDA
   ===================================================================== */
.sect-sorties { background:var(--creme); }
.sorties-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.sortie-card { position:relative; isolation:isolate; background:var(--blanc); border-radius:24px; overflow:hidden; box-shadow:0 14px 32px -24px rgba(20,20,25,.5); display:flex; flex-direction:column; transition:transform var(--transition), box-shadow var(--transition), border-color var(--transition); border:1px solid rgba(20,20,25,.07); }
.sortie-card::after { content:''; position:absolute; top:0; left:0; right:0; height:3px; z-index:6; pointer-events:none; background:linear-gradient(90deg, var(--rouge), var(--rose) 45%, var(--violet)); transform:scaleX(0); transform-origin:left; transition:transform .45s cubic-bezier(.4,0,.2,1); }
.sortie-card:hover, .sortie-card.anim.visible:hover { transform:translateY(-10px); border-color:rgba(224,8,56,.22); box-shadow:0 30px 54px -28px rgba(20,20,25,.42), 0 20px 40px -26px rgba(224,8,56,.5); }
.sortie-card:hover::after { transform:scaleX(1); }
.sortie-top { position:relative; padding:24px 22px 18px; background:linear-gradient(125deg, var(--noir) 0%, var(--noir-2) 100%); }
/* Quand une photo est présente, la pastille date remonte par-dessus l'affiche */
.sortie-media + .sortie-top { background:none; padding:0; margin:-46px 18px 0; z-index:4; }
.sortie-date { display:inline-flex; align-items:center; gap:12px; margin-bottom:12px; background:var(--blanc); border:1px solid rgba(20,20,25,.06); border-radius:16px; padding:8px 18px 8px 8px; box-shadow:0 18px 34px -20px rgba(20,20,25,.85); }
.sortie-media + .sortie-top .sortie-date { margin-bottom:0; }
.sortie-date .cal { width:44px; height:44px; border-radius:12px; background:var(--rouge); display:grid; place-items:center; box-shadow:0 10px 20px -10px rgba(224,8,56,.95); transition:transform var(--transition); }
.sortie-card:hover .sortie-date .cal { transform:translateY(-2px) rotate(-4deg); }
.sortie-date .cal img { width:20px; height:20px; object-fit:contain; filter:brightness(0) invert(1); }
.sortie-date .dday { font-family:var(--outfit); font-weight:800; font-size:23px; color:var(--noir); line-height:1; display:block; }
.sortie-date .dmonth { display:block; margin-top:4px; font-size:11.5px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--gris); }
.sortie-tag { position:absolute; top:20px; right:20px; display:inline-flex; align-items:center; gap:7px; font-family:var(--outfit); font-weight:700; font-size:11px; letter-spacing:.12em; text-transform:uppercase; background:rgba(248,244,236,.1); border:1px solid rgba(248,244,236,.22); color:var(--creme); padding:5px 12px; border-radius:999px; }
/* Photo de la course : affiche récupérée automatiquement, ou photo du club */
.sortie-media { position:relative; aspect-ratio:16/10; overflow:hidden; background:linear-gradient(140deg, var(--noir-2), var(--noir)); }
.sortie-media img { width:100%; height:100%; object-fit:cover; object-position:center 35%; display:block; transition:transform .6s cubic-bezier(.2,.7,.2,1), filter var(--transition); }
/* Reflet lumineux qui traverse l'affiche au survol */
.sortie-media::before { content:''; position:absolute; top:0; bottom:0; left:-70%; width:55%; z-index:3; pointer-events:none; transform:skewX(-14deg); background:linear-gradient(100deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.24) 50%, rgba(255,255,255,0) 100%); }
.sortie-card:hover .sortie-media::before { left:130%; transition:left .75s ease; }
.sortie-media::after { content:''; position:absolute; inset:0; z-index:2; pointer-events:none; background:linear-gradient(180deg, rgba(15,15,18,.45) 0%, rgba(15,15,18,0) 42%), linear-gradient(0deg, rgba(15,15,18,.78) 0%, rgba(15,15,18,0) 58%); }
.sortie-media .sortie-tag { z-index:4; top:14px; right:14px; color:#fff; background:rgba(22,22,26,.42); border-color:rgba(255,255,255,.26); padding:6px 13px; box-shadow:0 10px 22px -14px rgba(0,0,0,.9); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
.sortie-media .sortie-tag::before { content:''; width:6px; height:6px; flex:none; border-radius:50%; background:var(--rouge); box-shadow:0 0 0 3px rgba(224,8,56,.28); }
.sortie-credit { position:absolute; z-index:4; bottom:8px; left:12px; font-family:var(--outfit); font-size:11px; letter-spacing:.04em; color:rgba(255,255,255,.78); background:rgba(15,15,18,.58); padding:2px 8px; border-radius:4px; max-width:85%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; pointer-events:auto; backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px); }
.sortie-credit a { color:rgba(255,255,255,.85); text-decoration:none; }
.sortie-credit a:hover { color:#fff; text-decoration:underline; }
.sortie-card:hover .sortie-media img { transform:scale(1.08); filter:saturate(1.12) contrast(1.02); }
.sortie-body { padding:18px 22px 24px; display:flex; flex-direction:column; flex:1; }
.sortie-body h3 { font-size:18.5px; line-height:1.28; letter-spacing:-.01em; margin:0 0 14px; min-height:2.56em; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.sortie-meta { display:grid; gap:8px; margin:0 0 18px; padding:0; }
.sortie-meta li { display:flex; gap:10px; align-items:center; font-size:13px; font-weight:500; color:#5E5D63; list-style:none; }
.sortie-meta svg { width:14px; height:14px; flex:none; color:var(--rouge); box-sizing:content-box; padding:5px; background:rgba(224,8,56,.08); border-radius:9px; }
.sortie-link { position:relative; margin-top:auto; display:inline-flex; align-items:center; justify-content:space-between; gap:10px; padding:12px 18px; border-radius:999px; font-family:var(--outfit); font-weight:700; font-size:12.5px; letter-spacing:.14em; text-transform:uppercase; color:#fff; background:var(--rouge); box-shadow:0 16px 28px -18px rgba(224,8,56,.95); transition:transform var(--transition), box-shadow var(--transition), color var(--transition); }
/* Filet discret qui sépare les infos de l'appel à l'action */
.sortie-link::before { content:''; position:absolute; left:0; right:0; top:-16px; height:1px; background:linear-gradient(90deg, rgba(20,20,25,0), rgba(20,20,25,.12) 18%, rgba(20,20,25,.12) 82%, rgba(20,20,25,0)); }
.sortie-link:hover { color:#fff; transform:translateY(-2px); box-shadow:0 20px 34px -16px rgba(224,8,56,1); }
.sortie-link .arw { transition:transform var(--transition); }
.sortie-link:hover .arw { transform:translateX(4px); }
.sorties-cta { margin-top:44px; text-align:center; }

/* =====================================================================
   SLIDER COURSES GIRONDE (section #sorties, design natif .sortie-card)
   ===================================================================== */
.courses-slider { position:relative; }
.courses-track {
	display:grid;
	grid-auto-flow:column;
	grid-auto-columns:minmax(min(310px, 85vw), 338px);
	gap:22px;
	overflow-x:auto;
	scroll-snap-type:x mandatory;
	padding:10px 10px 16px;
	margin:0 -10px;
	scrollbar-width:thin;
	scrollbar-color:rgba(20,20,25,.2) transparent;
}
.courses-track::-webkit-scrollbar { height:6px; }
.courses-track::-webkit-scrollbar-track { background:rgba(20,20,25,.05); border-radius:999px; }
.courses-track::-webkit-scrollbar-thumb { background:rgba(20,20,25,.18); border-radius:999px; }
.courses-track::-webkit-scrollbar-thumb:hover { background:var(--rouge); }
/* Dégradés latéraux pour signaler le défilement */
.courses-slider::before,
.courses-slider::after { content:''; position:absolute; top:0; bottom:32px; width:30px; z-index:5; pointer-events:none; }
.course-slide { scroll-snap-align:start; height:100%; }
.sortie-card .cal svg { width:20px; height:20px; color:#fff; }
.sortie-link.is-soon { background:none; border:1px dashed rgba(20,20,25,.22); color:var(--gris); box-shadow:none; justify-content:center; cursor:default; }
.sortie-link.is-soon:hover { transform:none; color:var(--gris); box-shadow:none; }
.sortie-link.is-soon .arw { display:none; }
.courses-nav {
	display:flex;
	align-items:center;
	justify-content:center;
	gap:18px;
	margin-top:30px;
}
.courses-btn {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:48px;
	height:48px;
	border-radius:50%;
	border:1px solid rgba(20,20,25,.12);
	background:var(--blanc);
	color:var(--noir);
	cursor:pointer;
	box-shadow:0 12px 26px -20px rgba(20,20,25,.8);
	transition:background var(--transition), color var(--transition), transform var(--transition), box-shadow var(--transition), border-color var(--transition);
}
.courses-btn:hover { background:linear-gradient(125deg, var(--rouge), var(--rouge-fonce)); border-color:transparent; color:#fff; transform:translateY(-3px); box-shadow:0 18px 30px -14px rgba(224,8,56,.95); }
.courses-btn:active { transform:translateY(-1px) scale(.96); }
.courses-btn:focus-visible, .courses-dots button:focus-visible, .sortie-link:focus-visible { outline:2px solid var(--rouge); outline-offset:3px; }
.courses-dots { display:flex; gap:7px; align-items:center; min-height:10px; }
.courses-dots button {
	position:relative;
	width:10px;
	height:6px;
	border-radius:999px;
	border:0;
	padding:0;
	background:rgba(20,20,25,.16);
	cursor:pointer;
	transition:width var(--transition), background var(--transition);
}
/* Le point visible fait 10 x 6 px (26 px quand il est actif), trop petit pour
   le doigt. On etire la zone de clic en HAUTEUR seulement : les points sont
   espace de 7 px, une zone large reviendrait a voler le clic du voisin. */
.courses-dots button::after { content:''; position:absolute; top:50%; left:0; right:0; transform:translateY(-50%); height:44px; }
.courses-dots button:hover { background:rgba(224,8,56,.42); }
.courses-dots button.is-active { width:26px; background:linear-gradient(90deg, var(--rouge), var(--rose)); }
@media (max-width:900px) {
	.courses-slider::before, .courses-slider::after { display:none; }
}
@media (max-width:640px) {
	.courses-track { grid-auto-columns:minmax(80vw, 300px); gap:16px; }
	.sortie-body { padding:16px 18px 22px; }
	.sortie-body h3 { font-size:17.5px; }
}
@media (prefers-reduced-motion: reduce) {
	.courses-track { scroll-behavior:auto; }
	.sortie-card:hover, .sortie-card.anim.visible:hover { transform:none; }
	.sortie-card:hover .sortie-media img { transform:none; }
	.sortie-media::before { display:none; }
	.sortie-card:hover .sortie-date .cal { transform:none; }
}

.stats-band { position:relative; padding:76px 0; overflow:hidden; }
.stats-band .stats-bg { position:absolute; inset:0; z-index:-2; object-fit:cover; width:100%; height:100%; }
.stats-band::before { content:''; position:absolute; inset:0; z-index:-1; background:rgba(22,22,26,.86); }
.stats-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; text-align:center; }
.stat-item strong { font-family:var(--outfit); font-size:clamp(38px,5vw,58px); font-weight:900; color:var(--rouge); line-height:1; display:block; }
.stat-item span { display:block; margin-top:8px; font-family:var(--outfit); font-weight:600; letter-spacing:.16em; text-transform:uppercase; font-size:12.5px; color:rgba(248,244,236,.75); }

/* =====================================================================
   SECTION ACTUS (blog)
   ===================================================================== */
.sect-actus { background:var(--creme-2); }
.actus-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.actus-card { background:var(--blanc); border-radius:var(--radius); overflow:hidden; box-shadow:0 14px 34px -22px rgba(20,20,25,.4); transition:transform var(--transition), box-shadow var(--transition); display:flex; flex-direction:column; }
.actus-card:hover { transform:translateY(-8px); box-shadow:var(--shadow); }
.actus-thumb { position:relative; aspect-ratio:16/10; }
.actus-thumb img { width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.2,.6,.2,1); }
.actus-card:hover .actus-thumb img { transform:scale(1.07); }
.actus-thumb .actus-date { position:absolute; left:18px; bottom:-14px; background:var(--rouge); color:#fff; font-family:var(--outfit); font-weight:800; font-size:13px; padding:8px 14px; border-radius:10px; box-shadow:0 10px 22px -8px rgba(224,8,56,.8); letter-spacing:.04em; }
.actus-body { padding:30px 26px 26px; display:flex; flex-direction:column; flex:1; }
.actus-cat { font-family:var(--outfit); font-weight:700; font-size:11.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--rouge); margin-bottom:10px; }
.actus-body h3 { font-size:20px; line-height:1.3; }
.actus-body h3 a { color:var(--noir); }
.actus-body h3 a:hover { color:var(--rouge); }
.actus-body p { font-size:14.5px; color:#6A6A70; margin-top:10px; }
.actus-link { margin-top:auto; padding-top:16px; font-family:var(--outfit); font-weight:700; font-size:13px; letter-spacing:.14em; text-transform:uppercase; color:var(--rouge); display:inline-flex; align-items:center; gap:8px; }

/* =====================================================================
   DERNIÈRES ACTUALITÉS — publications Facebook (#actus)
   Réutilise le chrome du slider des événements (courses-*), seules les
   cartes (.fb-card) et le lien de groupe (.actus-cta) sont propres à ce rail.
   ===================================================================== */
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }

/* Flèches désactivées en début / fin de rail */
.courses-btn:disabled { opacity:.32; cursor:default; pointer-events:none; box-shadow:none; transform:none; background:var(--blanc); border-color:rgba(20,20,25,.12); color:var(--noir); }

.actus-track { grid-auto-columns:minmax(min(330px, 86vw), 360px); align-items:stretch; }
.actus-track .fb-card { scroll-snap-align:start; }

.fb-card {
	display:flex;
	flex-direction:column;
	height:100%;
	background:var(--blanc);
	border-radius:var(--radius);
	overflow:hidden;
	box-shadow:0 14px 34px -22px rgba(20,20,25,.4);
	border:1px solid rgba(20,20,25,.05);
	transition:transform var(--transition), box-shadow var(--transition);
}
.fb-card:hover, .fb-card.anim.visible:hover { transform:translateY(-8px); box-shadow:var(--shadow); }

/* En-tête « auteur » façon publication Facebook */
.fb-head { display:flex; align-items:center; gap:12px; padding:18px 22px 14px; }
.fb-avatar { flex:0 0 auto; width:40px; height:40px; border-radius:50%; overflow:hidden; background:var(--creme-2); box-shadow:0 0 0 2px rgba(224,8,56,.14); }
.fb-avatar img { width:100%; height:100%; object-fit:cover; display:block; }
.fb-id { display:flex; flex-direction:column; gap:2px; min-width:0; }
.fb-id strong { font-family:var(--outfit); font-size:15px; color:var(--noir); line-height:1.2; }
.fb-meta { display:flex; align-items:center; gap:6px; font-size:12.5px; color:var(--gris); }
.fb-glyph { display:inline-flex; color:#1877F2; }
.fb-glyph svg { width:13px; height:13px; display:block; }

.fb-body { padding:0 22px 18px; flex:1; }
.fb-body h3 { font-size:18.5px; line-height:1.3; margin:0 0 8px; color:var(--noir); }
.fb-body p { font-size:14px; color:#6A6A70; margin:0; }

.fb-media { position:relative; display:block; aspect-ratio:16/9; overflow:hidden; background:var(--creme-2); }
.fb-media img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .8s cubic-bezier(.2,.6,.2,1); }
.fb-card:hover .fb-media img { transform:scale(1.06); }
.fb-media-date { position:absolute; left:16px; bottom:14px; background:rgba(22,22,26,.82); color:#fff; font-family:var(--outfit); font-weight:700; font-size:12px; letter-spacing:.06em; padding:6px 12px; border-radius:8px; backdrop-filter:blur(4px); }

/* Pied : compteurs d'interactions + lien vers la publication */
.fb-foot { margin-top:auto; padding:16px 22px 20px; border-top:1px solid rgba(20,20,25,.07); }
.fb-stats { display:flex; flex-wrap:wrap; gap:16px; list-style:none; margin:0 0 14px; padding:0; }
.fb-stats li { display:inline-flex; align-items:center; gap:6px; font-family:var(--outfit); font-weight:700; font-size:13.5px; color:#6A6A70; }
.fb-ico { display:inline-flex; }
.fb-ico svg { width:17px; height:17px; display:block; }
.fb-stats li:nth-child(1) .fb-ico { color:#1877F2; }
.fb-stats li:nth-child(2) .fb-ico { color:var(--rose); }
.fb-stats li:nth-child(3) .fb-ico { color:#2E2E31; }
.fb-link { display:inline-flex; align-items:center; gap:8px; font-family:var(--outfit); font-weight:700; font-size:12.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--rouge); }
.fb-link .arw { transition:transform var(--transition); }
.fb-link:hover .arw { transform:translateX(5px); }

/* Lien vers le groupe, sous le rail */
.actus-cta { margin-top:40px; text-align:center; }
.actus-cta .btn { padding-left:24px; padding-right:24px; }
.actus-cta .fb-ico { display:inline-flex; }
.actus-cta .fb-ico svg { width:18px; height:18px; }

@media (max-width:640px) {
	.actus-track { grid-auto-columns:minmax(78vw, 300px); }
	.fb-head { padding:16px 18px 12px; }
	.fb-body { padding:0 18px 16px; }
	.fb-foot { padding:14px 18px 18px; }
}
@media (prefers-reduced-motion: reduce) {
	.fb-card:hover, .fb-card.anim.visible:hover { transform:none; }
	.fb-card:hover .fb-media img { transform:none; }
	.fb-link:hover .arw { transform:none; }
}
/* =====================================================================
   SECTION REJOINDRE / CONTACT
   ===================================================================== */
.sect-rejoindre { background:var(--noir); color:var(--creme); overflow:hidden; }
.sect-rejoindre .section-title { color:var(--creme); }
.sect-rejoindre .section-sub { color:rgba(248,244,236,.65); }
.rejoindre-copy .rejoindre-cta { margin-top:30px; }
.rejoindre-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:64px; align-items:center; }
.rejoindre-form { background:var(--noir-2); border:1px solid rgba(248,244,236,.1); border-radius:var(--radius); padding:38px; }
.rejoindre-form h3 { color:var(--creme); font-size:24px; margin-bottom:6px; }
.rejoindre-form > p { font-size:14.5px; color:rgba(248,244,236,.65); margin-bottom:26px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.form-field { margin-bottom:14px; }
.form-field label { display:block; font-family:var(--outfit); font-weight:600; font-size:12.5px; letter-spacing:.14em; text-transform:uppercase; color:rgba(248,244,236,.6); margin-bottom:7px; }
.form-field input, .form-field select, .form-field textarea { width:100%; background:var(--noir-3); border:1px solid rgba(248,244,236,.12); color:var(--creme); border-radius:10px; padding:13px 15px; font-family:var(--inter); font-size:15px; transition:border-color var(--transition); }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { outline:none; border-color:var(--rouge); }
.form-field textarea { min-height:96px; resize:vertical; }
.form-submit { width:100%; margin-top:6px; }

.contact-cards { display:grid; gap:18px; margin-top:34px; }
.contact-card { display:flex; gap:16px; align-items:center; background:var(--noir-2); border-radius:16px; padding:20px 22px; transition:transform var(--transition); }
.contact-card:hover { transform:translateX(6px); }
.contact-card .ci { flex:none; width:48px; height:48px; border-radius:13px; background:var(--rouge); display:grid; place-items:center; box-shadow:0 10px 22px -8px rgba(224,8,56,.8); }
.contact-card .ci img { width:22px; height:22px; object-fit:contain; filter:brightness(0) invert(1); }
.contact-card strong { font-family:var(--outfit); color:var(--creme); font-size:16px; display:block; line-height:1.25; }
.contact-card span { font-size:13.5px; color:rgba(248,244,236,.6); }
.contact-card a { color:var(--creme); }
.contact-card a:hover { color:#FF7D98; }

/* =====================================================================
   FOOTER
   ===================================================================== */
.site-footer { background:#0E0E11; color:rgba(248,244,236,.7); }
.footer-top { display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:44px; padding:70px 0 46px; }
.footer-brand .logo-text strong { color:var(--creme); }
.footer-brand p { font-size:14.5px; margin-top:18px; max-width:330px; }
.footer-social { display:flex; gap:12px; margin-top:22px; }
.footer-social a { width:42px; height:42px; border-radius:12px; background:var(--noir-2); display:grid; place-items:center; transition:background var(--transition), transform var(--transition); }
.footer-social a:hover { background:var(--rouge); transform:translateY(-3px); }
.footer-social img { width:18px; height:18px; object-fit:contain; filter:brightness(0) invert(1); }
.footer-col h4 { color:var(--creme); font-size:15px; letter-spacing:.18em; text-transform:uppercase; margin-bottom:20px; }
.footer-col ul { list-style:none; margin:0; padding:0; display:grid; gap:11px; }
.footer-col ul a { color:rgba(248,244,236,.68); font-size:14.5px; }
.footer-col ul a:hover { color:var(--rouge); padding-left:4px; }
.footer-col ul li.contact-item { display:flex; gap:10px; align-items:flex-start; font-size:14.5px; }
.footer-col ul li.contact-item svg { flex:none; width:16px; height:16px; color:var(--rouge); margin-top:4px; }
.footer-bottom { padding:22px 0; display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; font-size:13px; }
.footer-bottom a { color:rgba(248,244,236,.6); }
.footer-bottom a:hover { color:var(--rouge); }

/* ---- Helpers divers ---- */
.backtop { position:fixed; right:22px; bottom:22px; z-index:50; width:46px; height:46px; border-radius:12px; background:var(--rouge); color:#fff; border:0; cursor:pointer; display:grid; place-items:center; opacity:0; visibility:hidden; transform:translateY(12px); transition:all var(--transition); box-shadow:0 14px 30px -10px rgba(224,8,56,.7); }
.backtop.show { opacity:1; visibility:visible; transform:translateY(0); }
.backtop:hover { background:var(--rouge-fonce); }
.anim { opacity:0; transform:translateY(26px); transition:opacity .8s ease, transform .8s cubic-bezier(.2,.6,.2,1); }
/* =====================================================================
   RESPONSIVE
   ===================================================================== */
@media (max-width:1100px) {
	.sorties-grid { grid-template-columns:repeat(2,1fr); }
	.footer-top { grid-template-columns:1fr 1fr; gap:36px; }
	.hero-grid { grid-template-columns:1fr; }
	.hero-visual { display:none; }
	.esprit-grid, .rejoindre-grid { grid-template-columns:1fr; gap:40px; }
}

@media (max-width:992px) {
	.section { padding:72px 0; }
	.nat-grid { grid-template-columns:1fr 1fr; }
	.actus-grid { grid-template-columns:1fr 1fr; }
	.topbar-left .topbar-item.mail-hide { display:none; }
}

@media (max-width:840px) {
	.nav-toggle { display:flex; }

	/* Le sous-titre du logo s'étalait sur 3 lignes en mobile (interlettrage
	   de 0.3em). On réduit l'interlettrage pour le tenir sur une ligne. */
	.logo-text span { letter-spacing:.06em; }

	/*
	 * Le tiroir .nav-menu est un DESCENDANT de .site-header : les deux
	 * partagent donc le meme contexte d'empilement. Augmenter le z-index du
	 * seul en-tete ne change rien, le menu reste devant le bouton. Il faut
	 * surélever, dans ce contexte, les éléments de la barre haute qui
	 * doivent rester accessibles : le logo et le bouton burger.
	 */
	.logo, .nav-cta { position:relative; z-index:75; }

	.nav-menu {
		position:fixed;
		inset:0;
		background:var(--noir);
		flex-direction:column;
		justify-content:flex-start;
		align-items:flex-start;
		padding:110px 32px 40px;
		gap:4px;
		transform:translateX(100%);
		/* visibility masque le tiroir fermé : sans cela ses liens restent
		   atteignables au clavier et aux lecteurs d'écran. */
		visibility:hidden;
		transition:transform .4s cubic-bezier(.4,0,.2,1), visibility 0s linear .4s;
		overscroll-behavior:contain;
		-webkit-overflow-scrolling:touch;
		z-index:70;
		height: 100vh;
	}
	.nav-menu.open { transform:translateX(0); visibility:visible; transition:transform .4s cubic-bezier(.4,0,.2,1), visibility 0s; }
	.nav-menu > li { width:100%; }
	.nav-menu > li > a { font-size:20px; padding:14px 6px; color:var(--creme); border-bottom:1px solid rgba(248,244,236,.08); width:100%; }
	.nav-menu > li > a::after { display:none; }
	.nav-menu li.nav-cta-mobile { margin-top:18px; width:100%; }
	.nav-menu li.nav-cta-mobile a { display:flex; justify-content:center; background:var(--rouge); color:#fff; border-radius:999px; padding:14px; border:0; font-size:15px; }
	.nav-cta .btn.nav-cta-btn { display:none; }
	.nav-overlay { position:fixed; inset:0; background:rgba(14,14,17,.55); z-index:65; opacity:0; visibility:hidden; transition:opacity var(--transition); }
	.nav-overlay.show { opacity:1; visibility:visible; }
}

@media (max-width:768px) {
	.hero { padding:150px 0 90px; }
	.hero-mini { padding:90px 0 60px; }
	.topbar-right .hide-sm { display:none; }
	.topbar-inner { justify-content:center; }
	.nat-grid { grid-template-columns:1fr; }
	.actus-grid { grid-template-columns:1fr; }
	.sorties-grid { grid-template-columns:1fr; }
	.stats-grid { grid-template-columns:repeat(2,1fr); gap:20px; }
	.form-row { grid-template-columns:1fr; }
	.esprit-badge { right:10px; bottom:10px; }
}

@media (max-width:520px) {
	.section { padding:60px 0; }
	.hero-actions .btn { width:100%; }
	.footer-top { grid-template-columns:1fr; }
	.footer-bottom { justify-content:center; text-align:center; }
	.hero-card-float { left:10px; right:10px; }
	.stats-grid { grid-template-columns:1fr 1fr; }
	.logo-text strong { font-size:17px; }
	.rejoindre-form { padding:26px; }
}

/* =====================================================================
   PAGE ENTRAÎNEMENTS
   ===================================================================== */
:root { --violet:#6C4AB6; --rose:#F0568C; }

.page-hero { position:relative; min-height:78vh; min-height:78svh; display:flex; align-items:center; padding:190px 0 170px; overflow:hidden; }
.page-hero .hero-bg { position:absolute; inset:0; z-index:-2; }
.page-hero .hero-bg img { width:100%; height:100%; object-fit:cover; }
.page-hero::before { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(100deg, rgba(12,12,16,.82) 0%, rgba(12,12,16,.55) 50%, rgba(12,12,16,.35) 100%); }
.page-hero-content { position:relative; z-index:1; max-width:760px; }
.ph-kicker { color:var(--rouge); font-family:var(--outfit); font-weight:800; font-size:clamp(20px,2.6vw,30px); letter-spacing:.06em; text-transform:uppercase; margin-bottom:6px; }
.ph-script { font-family:var(--caveat); font-weight:700; color:#fff; font-size:clamp(48px,7vw,88px); line-height:.95; text-transform:uppercase; margin-bottom:22px; }
.ph-sub { color:rgba(248,244,236,.85); font-size:clamp(15px,1.6vw,18px); max-width:440px; margin:0; }

/* ---- 4 atouts ---- */
.sect-feats { padding-top:40px; }
.feat-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.feat-grid-3 { grid-template-columns:repeat(3,1fr); }
.feat-card { background:var(--blanc); border:1px solid rgba(20,20,25,.07); border-radius:20px; padding:30px 26px; box-shadow:0 16px 36px -24px rgba(20,20,25,.3); transition:transform var(--transition), box-shadow var(--transition); }
.feat-card:hover { transform:translateY(-6px); box-shadow:var(--shadow); }
.feat-icon { display:grid; place-items:center; width:46px; height:46px; border-radius:13px; background:rgba(224,8,56,.09); color:var(--rouge); margin-bottom:18px; }
.feat-icon svg { width:24px; height:24px; }
.feat-card h3 { font-size:16.5px; font-weight:800; text-transform:uppercase; letter-spacing:.02em; margin-bottom:6px; }
.feat-sub { font-family:var(--outfit); font-weight:600; font-size:13px; color:var(--rouge); margin-bottom:12px; }
.feat-card p:last-child { font-size:14.5px; color:#6A6A70; margin:0; }

/* ---- Planning ---- */
.sect-planning { padding-top:40px; }
.planning-title { color:var(--rouge); font-size:clamp(26px,3.6vw,40px); font-weight:800; text-transform:uppercase; letter-spacing:.01em; margin-bottom:24px; }

/* ---- Modal de détail d'une séance ---- */
body.modal-open { overflow:hidden; }
.scap-modal { position:fixed; inset:0; z-index:9999; display:none; align-items:center; justify-content:center; padding:24px; }
.scap-modal.is-open { display:flex; }
.scap-modal-backdrop { position:absolute; inset:0; background:rgba(11,11,15,.6); backdrop-filter:blur(4px); animation:modalFade .25s ease both; }
.scap-modal-card { position:relative; z-index:1; width:min(560px,100%); max-height:min(86vh,780px); overflow-y:auto; background:var(--blanc); border-radius:22px; box-shadow:0 44px 90px -34px rgba(0,0,0,.75); animation:modalIn .3s cubic-bezier(.2,.7,.3,1) both; }
.scap-modal-head { display:flex; gap:14px; align-items:center; padding:22px 62px 22px 24px; color:#fff; }
.scap-modal-head .ev-ico { display:grid; place-items:center; width:44px; height:44px; border-radius:13px; background:rgba(255,255,255,.2); flex:none; }
.scap-modal-head .ev-ico svg { width:22px; height:22px; }
.scap-modal-head strong { display:block; font-family:var(--outfit); font-weight:800; font-size:19px; text-transform:uppercase; letter-spacing:.02em; line-height:1.2; }
.scap-modal-head span { display:block; font-size:13px; opacity:.93; }
.scap-modal-body { padding:24px 26px 28px; }
.scap-modal-card { --tc:var(--rouge); }
.scap-modal-close { position:absolute; top:14px; right:14px; z-index:2; width:38px; height:38px; border:0; border-radius:50%; background:rgba(255,255,255,.22); color:#fff; font-size:24px; line-height:1; cursor:pointer; display:grid; place-items:center; transition:background var(--transition), transform var(--transition); }
.scap-modal-close:hover { background:rgba(255,255,255,.38); transform:rotate(90deg); }
@keyframes modalFade { from { opacity:0; } to { opacity:1; } }
@keyframes modalIn { from { opacity:0; transform:translateY(22px) scale(.97); } to { opacity:1; transform:none; } }

/* ---- Planning — entête et types de rendez-vous ---- */
.planning-head { margin-bottom:22px; }
.planning-note { font-size:14px; color:#6A6A70; margin:14px 0 0; max-width:760px; }
.dot-entrainement { background:var(--noir); }
.ev-entrainement { background:linear-gradient(135deg,#33333C,#16161A); }
.scap-modal-card.type-entrainement { --tc:var(--noir); }

/* ---- Séances détaillées ---- */
.sect-seances { padding-top:20px; }
.seance-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.seance-card { background:var(--blanc); border:1px solid rgba(20,20,25,.08); border-radius:20px; padding:24px 22px; transition:transform var(--transition), box-shadow var(--transition); }
.seance-card:hover { transform:translateY(-6px); box-shadow:var(--shadow); }
.seance-head { display:flex; gap:14px; align-items:center; margin-bottom:16px; }
.seance-thumb { width:76px; height:76px; border-radius:14px; object-fit:cover; flex:none; box-shadow:0 10px 20px -10px rgba(20,20,25,.4); }
.seance-id { min-width:0; }
.seance-type { display:inline-flex; align-items:center; gap:7px; font-family:var(--outfit); font-weight:800; font-size:12.5px; text-transform:uppercase; letter-spacing:.06em; color:var(--tc, var(--rouge)); margin-bottom:4px; }
.seance-type svg { width:15px; height:15px; }
.type-fractionne { --tc:var(--rouge); }
.type-cote { --tc:var(--violet); }
.type-longue { --tc:var(--rose); }
.seance-day { font-family:var(--outfit); font-weight:800; font-size:19px; color:var(--noir); margin:0 0 2px; line-height:1.15; }
.seance-time { font-family:var(--outfit); font-weight:600; font-size:14.5px; color:#3F3F45; margin:0 0 2px; }
.seance-loc { font-size:12.5px; color:#8A8A92; margin:0; }
.seance-desc { font-size:14px; color:#5A5A62; margin-bottom:16px; }
.seance-list { list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.seance-list > li .tick { display:flex; gap:8px; align-items:flex-start; font-family:var(--outfit); font-weight:700; font-size:13.5px; color:var(--noir); }
.seance-list .tick svg { width:14px; height:14px; flex:none; margin-top:2px; color:var(--tc, var(--rouge)); }
.seance-list ul { list-style:none; margin:4px 0 0 22px; padding:0; display:grid; gap:3px; }
.seance-list ul li { font-size:13px; color:#7A7A82; }
.seances-cta { margin-top:40px; text-align:center; }

/* ---- Responsive entraînements ---- */
@media (max-width:1100px) {
	.feat-grid { grid-template-columns:1fr 1fr; }
	.seance-grid { grid-template-columns:1fr 1fr; }
}

@media (max-width:640px) {
	.feat-grid { grid-template-columns:1fr; }
	.seance-grid { grid-template-columns:1fr; }
	.page-hero { padding:150px 0 130px; }
	.scap-modal { padding:14px; }
	.scap-modal-card { max-height:90vh; border-radius:18px; }
	.scap-modal-body { padding:20px; }
}

.anim.visible { opacity:1; transform:none; }
body.admin-bar .site-header.is-sticky, body.admin-bar .backtop { top:0px; }
.entry-content { padding:120px 0 80px; }
.actus-link .arw { transition:transform var(--transition); }
.actus-link:hover .arw { transform:translateX(5px); }
.esprit-badge span { font-size:12px; letter-spacing:.14em; text-transform:uppercase; opacity:.9; }
.marquee span { font-family:var(--outfit); font-weight:600; font-size:14px; letter-spacing:.22em; text-transform:uppercase; display:inline-flex; align-items:center; gap:48px; }
@keyframes scrollx { 0%{transform:translateX(0);} 100%{transform:translateX(-50%);} }
.nav-cta { display:flex; align-items:center; gap:14px; }
.nav-cta .btn { padding:12px 24px; font-size:14px; }

.section-head.centered .section-tag::before { display:none; }

/* =====================================================================
   FOOTER — MOTIF MONTAGNES
   ===================================================================== */
.footer-scene { line-height:0; position:relative; z-index:1; }
.footer-scene svg { display:block; width:100%; height:clamp(110px,20vw,250px); }
.site-footer { margin-top:-1px; }

/* =====================================================================
   PAGE ADHÉSION
   ===================================================================== */
.page-adhesion .adhesion-hero-actions { margin-top:32px; }
/* Les icônes SVG inline n'ont pas de taille intrinsèque : on les borne. */
.page-adhesion .btn svg { width:18px; height:18px; flex:none; }

/* ---- Avertissement AssoConnect ---- */
.sect-adhesion-notice { padding:0; margin-top:-40px; position:relative; z-index:2; }
.adhesion-notice { display:flex; gap:22px; align-items:flex-start; background:var(--blanc); border:1px solid rgba(224,8,56,.18); border-left:5px solid var(--rouge); border-radius:18px; padding:28px 30px; box-shadow:0 24px 50px -28px rgba(20,20,25,.4); }
.adhesion-notice .ni { flex:none; width:48px; height:48px; border-radius:14px; background:rgba(224,8,56,.09); color:var(--rouge); display:grid; place-items:center; }
.adhesion-notice .ni svg { width:25px; height:25px; }
.adhesion-notice h3 { font-size:18px; margin:2px 0 8px; }
.adhesion-notice p { font-size:14.5px; color:#5A5A62; margin:0; max-width:880px; }

/* ---- Formules & tarifs ---- */
.sect-tarifs { background:var(--creme); }
.sect-tarifs .section-head { margin-bottom:52px; }
.tarif-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; align-items:stretch; }
.tarif-card { position:relative; display:flex; flex-direction:column; background:var(--blanc); border:1px solid rgba(20,20,25,.07); border-radius:22px; padding:34px 28px 28px; box-shadow:0 16px 36px -26px rgba(20,20,25,.35); transition:transform var(--transition), box-shadow var(--transition), border-color var(--transition); }
.tarif-card:hover { transform:translateY(-8px); box-shadow:var(--shadow); }
.tarif-icon { display:grid; place-items:center; width:52px; height:52px; border-radius:15px; background:rgba(224,8,56,.09); color:var(--rouge); margin-bottom:18px; }
.tarif-icon svg { width:26px; height:26px; }
.tarif-name { font-size:20px; font-weight:800; letter-spacing:-.01em; margin:0 0 2px; }
.tarif-strap { font-family:var(--caveat); font-weight:600; font-size:22px; line-height:1; color:var(--rouge); margin:0 0 20px; }
.tarif-price { display:flex; align-items:baseline; gap:6px; margin:0 0 22px; padding-bottom:20px; border-bottom:1px dashed rgba(20,20,25,.14); }
.tarif-amount { font-family:var(--outfit); font-size:44px; font-weight:900; letter-spacing:-.03em; line-height:1; color:var(--noir); }
.tarif-period { font-family:var(--outfit); font-weight:600; font-size:14px; color:var(--gris); }
.tarif-list { list-style:none; margin:0 0 26px; padding:0; display:grid; gap:11px; flex:1; align-content:start; }
.tarif-list > li { display:flex; gap:10px; align-items:flex-start; font-size:14.5px; line-height:1.55; color:#5A5A62; }
.tarif-list .tick { flex:none; }
.tarif-list .tick svg { width:15px; height:15px; color:var(--rouge); margin-top:3px; }
.tarif-cta { width:100%; margin-top:auto; }

/* Formule mise en avant (licence Athlé Running) */
.tarif-card.is-featured { background:var(--noir); border-color:transparent; box-shadow:0 30px 60px -28px rgba(20,20,25,.6); }
.tarif-card.is-featured .tarif-icon { background:rgba(224,8,56,.16); color:#FF7D98; }
.tarif-card.is-featured .tarif-name, .tarif-card.is-featured .tarif-amount { color:var(--creme); }
.tarif-card.is-featured .tarif-strap { color:#FF9DB1; }
.tarif-card.is-featured .tarif-period { color:rgba(248,244,236,.55); }
.tarif-card.is-featured .tarif-price { border-bottom-color:rgba(248,244,236,.16); }
.tarif-card.is-featured .tarif-list > li { color:rgba(248,244,236,.72); }
.tarif-card.is-featured .tarif-list .tick svg { color:#FF7D98; }
.tarif-badge { position:absolute; top:-14px; left:50%; transform:translateX(-50%); background:var(--rouge); color:#fff; font-family:var(--outfit); font-weight:700; font-size:11.5px; letter-spacing:.18em; text-transform:uppercase; padding:8px 18px; border-radius:999px; white-space:nowrap; box-shadow:0 12px 26px -10px rgba(224,8,56,.9); }

/* ---- Avantages ---- */
.sect-avantages { background:var(--creme-2); }
.sect-avantages .section-head { margin-bottom:52px; }

/* ---- Étapes ---- */
.sect-etapes { background:var(--creme); }
.sect-etapes .section-head { margin-bottom:52px; }
.steps { display:grid; grid-template-columns:repeat(3,1fr); gap:34px; counter-reset:scap-step; }
.step { position:relative; padding-left:0; }
.step::before { counter-increment:scap-step; content:counter(scap-step,decimal-leading-zero); display:grid; place-items:center; width:50px; height:50px; border-radius:50%; background:var(--rouge); color:#fff; font-family:var(--outfit); font-weight:800; font-size:17px; margin-bottom:18px; box-shadow:0 12px 26px -12px rgba(224,8,56,.9); }
.step h3 { font-size:18px; margin:0 0 8px; }
.step p { font-size:14.5px; color:#5A5A62; margin:0; }

/* ---- Données personnelles ---- */
.sect-rgpd { background:var(--creme); }
.rgpd-card { display:grid; grid-template-columns:1.35fr .65fr; gap:44px; align-items:center; background:var(--noir); border-radius:24px; padding:48px; box-shadow:0 34px 70px -34px rgba(20,20,25,.7); }
.rgpd-icon { display:grid; place-items:center; width:52px; height:52px; border-radius:15px; background:rgba(224,8,56,.16); color:#FF7D98; margin-bottom:20px; }
.rgpd-icon svg { width:26px; height:26px; }
.rgpd-title { color:var(--creme); font-size:clamp(24px,2.6vw,32px); margin:0 0 14px; }
.rgpd-copy p { color:rgba(248,244,236,.68); font-size:15px; margin:0 0 10px; max-width:620px; }
.rgpd-side { display:flex; flex-direction:column; align-items:flex-start; gap:14px; padding-left:36px; border-left:1px solid rgba(248,244,236,.14); }
.rgpd-side-label { font-family:var(--outfit); font-weight:700; font-size:14px; letter-spacing:.06em; text-transform:uppercase; color:rgba(248,244,236,.6); }
.rgpd-mail { text-transform:none; font-size:14.5px; letter-spacing:0; word-break:break-word; }
.rgpd-mail svg { width:18px; height:18px; flex:none; }
.rgpd-phone { display:inline-flex; align-items:center; gap:8px; font-family:var(--outfit); font-weight:600; font-size:14.5px; color:rgba(248,244,236,.75); }
.rgpd-phone svg { width:17px; height:17px; }

/* ---- CTA final ---- */
.sect-adhesion-cta { background:var(--noir); text-align:center; }
.adhesion-cta { max-width:720px; margin:0 auto; }
.sect-adhesion-cta .section-title { color:var(--creme); }
.sect-adhesion-cta .section-sub { color:rgba(248,244,236,.65); }
.adhesion-cta-actions { margin-top:32px; justify-content:center; }

/* ---- Responsive adhésion ---- */
@media (max-width:1100px) {
	/* Les 3 formules tiennent encore côte à côte sur tablette : on ne passe
	   en une seule colonne que sur les petits écrans (voir bloc 640px). */
	.tarif-grid { grid-template-columns:repeat(auto-fit, minmax(250px,1fr)); }
	.rgpd-card { grid-template-columns:1fr; gap:32px; padding:38px; }
	.rgpd-side { padding-left:0; padding-top:28px; border-left:0; border-top:1px solid rgba(248,244,236,.14); }
	.steps { grid-template-columns:1fr; gap:26px; }
	.step { max-width:560px; }
}
@media (max-width:640px) {
	.sect-adhesion-notice { margin-top:-24px; }
	.adhesion-notice { flex-direction:column; gap:16px; padding:22px 20px; }
	.tarif-grid { grid-template-columns:1fr; max-width:560px; margin:0 auto; }
	.tarif-card { padding:30px 22px 24px; }
	.tarif-amount { font-size:38px; }
	.rgpd-card { padding:28px 22px; }
	.adhesion-hero-actions .btn, .adhesion-cta-actions .btn { width:100%; }
}



/* =====================================================================
   PAGES D'ACTUALITÉS — article (.single) et archives
   Gabarits créés pour single.php et archive.php ; le hero sombre et
   les cartes reprennent les mêmes tokens que le reste du thème.
   ===================================================================== */

/* ---- Fil d'Ariane (posé sur le bandeau sombre) ---- */
.breadcrumb { margin-bottom:26px; }
.breadcrumb ol { display:flex; flex-wrap:wrap; align-items:center; gap:8px; list-style:none; margin:0; padding:0; font-size:13.5px; color:rgba(248,244,236,.55); }
.breadcrumb li { display:inline-flex; align-items:center; gap:8px; }
.breadcrumb li + li::before { content:''; width:5px; height:5px; border-radius:50%; background:rgba(248,244,236,.32); }
.breadcrumb a { color:rgba(248,244,236,.85); }
.breadcrumb a:hover { color:#fff; }
.breadcrumb [aria-current] { color:rgba(248,244,236,.55); }

/* ---- Hero de l'article ---- */
.single-hero { position:relative; background:var(--noir); color:var(--texte-clair); padding:132px 0 88px; overflow:hidden; }
.single-hero::before { content:''; position:absolute; inset:0; background:linear-gradient(140deg, rgba(224,8,56,.18), transparent 55%); }
.single-hero-inner { position:relative; max-width:900px; }
.single-cat { display:inline-flex; align-items:center; background:var(--rouge); color:#fff; font-family:var(--outfit); font-weight:700; font-size:12px; letter-spacing:.16em; text-transform:uppercase; padding:7px 15px; border-radius:999px; }
.single-title { color:var(--texte-clair); font-size:clamp(30px,4.4vw,52px); font-weight:900; letter-spacing:-.02em; margin:22px 0 0; }
.single-lead { color:rgba(248,244,236,.8); font-size:clamp(16px,1.6vw,19px); margin:20px 0 0; max-width:720px; }
.single-meta { display:flex; flex-wrap:wrap; align-items:center; gap:22px; margin-top:30px; padding-top:26px; border-top:1px solid rgba(248,244,236,.14); }
.single-meta-item { display:inline-flex; align-items:center; gap:9px; font-family:var(--outfit); font-size:14px; font-weight:600; color:rgba(248,244,236,.78); }
.single-meta-item svg { width:17px; height:17px; color:var(--rouge); flex:0 0 auto; }

/* ---- Image à la une, légèrement chevauchant le hero ---- */
.single-thumb { margin-top:-52px; position:relative; z-index:2; }
.single-thumb img { width:100%; border-radius:var(--radius); box-shadow:var(--shadow); }
.single-thumb figcaption { font-size:13.5px; color:var(--gris); text-align:center; margin-top:14px; }

/* ---- Colonne de lecture + colonne partage ---- */
.single-layout { display:grid; grid-template-columns:minmax(0,1fr) 290px; gap:56px; padding-top:60px; padding-bottom:20px; align-items:start; }
.single-content { max-width:760px; font-size:17.5px; line-height:1.85; color:var(--texte); }
.single-content > *:first-child { margin-top:0; }
.single-content h2 { font-size:clamp(24px,2.6vw,30px); font-weight:900; margin:2.4em 0 .7em; letter-spacing:-.01em; }
.single-content h3 { font-size:clamp(20px,2.1vw,23px); font-weight:800; margin:1.9em 0 .6em; }
.single-content h4 { font-size:18px; font-weight:800; margin:1.7em 0 .5em; }
.single-content h2 + p, .single-content h3 + p { margin-top:0; }
.single-content p { margin:0 0 1.35em; }
.single-content a { text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1px; }
.single-content ul, .single-content ol { margin:0 0 1.5em; padding-left:1.35em; }
.single-content li { margin-bottom:.55em; }
.single-content blockquote { margin:2em 0; padding:26px 30px; background:var(--blanc); border-left:4px solid var(--rouge); border-radius:0 var(--radius) var(--radius) 0; box-shadow:0 12px 30px -24px rgba(20,20,25,.5); }
.single-content blockquote p { margin:0; font-size:18.5px; line-height:1.7; color:var(--noir); font-style:italic; }
.single-content blockquote cite { display:block; margin-top:12px; font-family:var(--outfit); font-size:13.5px; font-style:normal; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--rouge); }
.single-content img { border-radius:14px; margin:1.8em 0; box-shadow:0 16px 34px -26px rgba(20,20,25,.6); }
.single-content figure { margin:2em 0; }
.single-content .wp-caption-text { font-size:13.5px; color:var(--gris); text-align:center; margin-top:10px; }
.single-content table { width:100%; border-collapse:collapse; margin:2em 0; font-size:16px; }
.single-content th, .single-content td { padding:13px 16px; border:1px solid rgba(20,20,25,.12); text-align:left; }
.single-content th { background:var(--creme-2); font-family:var(--outfit); font-weight:700; }
.single-content hr { border:0; height:1px; background:rgba(20,20,25,.12); margin:2.6em 0; }
.page-links { margin-top:2em; font-family:var(--outfit); font-weight:600; }

/* ---- Carte de partage ---- */
.single-aside { position:sticky; top:110px; }
.share-card { background:var(--blanc); border:1px solid rgba(20,20,25,.06); border-radius:var(--radius); padding:24px 22px; box-shadow:0 14px 34px -26px rgba(20,20,25,.5); }
.share-title { display:block; font-family:var(--outfit); font-weight:800; font-size:12.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--noir); margin-bottom:16px; }
.share-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px; }
.share-list a, .share-copy { display:flex; align-items:center; gap:12px; width:100%; padding:10px 12px; border:0; border-radius:12px; background:transparent; font-family:var(--outfit); font-weight:600; font-size:14.5px; color:var(--texte); cursor:pointer; text-align:left; transition:background var(--transition), color var(--transition); }
.share-list a:hover, .share-copy:hover { background:var(--creme-2); color:var(--noir); }
.share-list svg { width:19px; height:19px; flex:0 0 auto; color:var(--rouge); }
.share-copy.is-copied { background:rgba(224,8,56,.1); color:var(--rouge); }

/* ---- Bandeau d'appel à l'adhésion ---- */
.single-cta { background:var(--noir); color:var(--texte-clair); padding:74px 0; margin-top:60px; }
.single-cta-inner { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:48px; align-items:center; }
.single-cta .section-title { color:var(--texte-clair); }
.single-cta .section-script { color:var(--rouge); }
.single-cta p { color:rgba(248,244,236,.78); max-width:560px; }
.single-cta-actions { display:flex; flex-wrap:wrap; gap:14px; }
.single-cta-actions .fb-ico { display:inline-flex; }
.single-cta-actions .fb-ico svg { width:18px; height:18px; }

/* ---- À lire aussi ---- */
.related { background:var(--creme-2); }
.related .section-head { margin-bottom:38px; }

/* ---- En-tête d'archive ---- */
.archive-head { background:var(--noir); color:var(--texte-clair); padding:132px 0 76px; }
.archive-head .section-script { color:var(--rose); }
.archive-body { padding-top:60px; padding-bottom:70px; }
.archive-body .actus-grid { margin-bottom:52px; }

/* ---- Pagination ---- */
.scap-pagination { margin-top:12px; }
.scap-pagination .nav-links { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:10px; }
.scap-pagination .page-numbers { display:inline-flex; align-items:center; justify-content:center; min-width:44px; height:44px; padding:0 14px; border-radius:12px; border:1px solid rgba(20,20,25,.12); background:var(--blanc); font-family:var(--outfit); font-weight:700; font-size:15px; color:var(--noir); transition:background var(--transition), color var(--transition), border-color var(--transition); }
.scap-pagination .page-numbers:hover { background:var(--creme-2); color:var(--noir); }
.scap-pagination .page-numbers.current { background:var(--rouge); border-color:transparent; color:#fff; }
.scap-pagination .dots { border:0; background:transparent; color:var(--gris); }

/* ---- État vide ---- */
.empty-state { text-align:center; max-width:620px; margin:0 auto; padding:30px 0 10px; }
.empty-state h2 { font-size:clamp(24px,3vw,32px); font-weight:900; }
.empty-state p { font-size:17px; }
.empty-state-actions { display:flex; flex-wrap:wrap; gap:14px; justify-content:center; margin-top:28px; }

@media (max-width:980px) {
	.single-layout { grid-template-columns:1fr; gap:40px; }
	.single-aside { position:static; order:-1; }
	.share-list { flex-direction:row; flex-wrap:wrap; }
	.share-list li { flex:1 1 auto; }
	.single-cta-inner { grid-template-columns:1fr; gap:32px; }
}
@media (max-width:640px) {
	/* L'en-tête occupe 110 px. 112 px de marge laissait 2 px entre la barre et
	   le fil d'Ariane : on repasse franchement au-dessus. */
	.single-hero { padding:132px 0 68px; }
	.single-thumb { margin-top:-36px; }
	.single-layout { padding-top:44px; }
	.single-content { font-size:17px; }
	.single-content blockquote { padding:20px 22px; }
	.single-cta { padding:56px 0; }
	.archive-head { padding:132px 0 60px; }
	.breadcrumb ol { font-size:12.5px; }
}

.single-content li::marker { color:var(--rouge); }
.single-content strong { color:var(--noir); font-weight:700; }

/* =====================================================================
   ZONES TACTILES
   Regroupees en fin de feuille pour primer sur les regles de mise en
   page. Objectif : porter a 44 px la hauteur des elements cliquables
   qui restaient entre 22 et 39 px sur mobile. Les liens sits dans un
   texte (fil d'Ariane, categories, pied de page) en sont exclus : ils
   sontconsideres comme des liens en ligne.
   ===================================================================== */
@media (max-width:840px) {
	.actus-link { padding-bottom:6px; }
	.share-copy { padding-block:13px; }

	/* Liens du pied de page : c'est une liste de navigation, pas un texte
	   courant, donc la cible tactile doit atteindre 44 px de haut. */
	.footer-col ul li a,
	.footer-col ul li.contact-item a { display:inline-block; padding:8px 0; }

	/* Fil d'Ariane : également une navigation. */
	.breadcrumb a,
	.breadcrumb [aria-current] { display:inline-block; padding:10px 0; }

	/* Pastille de catégorie des cartes d'actualité et lien e-mail :
	   ce sont des commandes, pas du texte courant. */
	.actus-cat a { display:inline-block; padding:5px 0; }
	.contact-card a { display:inline-block; padding:6px 0; }
}

@media (pointer:coarse) {
	.actus-link { padding-bottom:6px; }
	.share-copy { padding-block:13px; }
	.courses-dots button::after { height:44px; }
}

