/* ===========================================================
   ALPT — Styles personnalisés
   Organisation : variables/typo → composants globaux (boutons)
   → blocs réutilisables (CTA, onglets) → header/nav
   → page par page (accueil, le club, équipe, entraînements,
   partenaires, adhésion & dons, contact, 404) → footer
   =========================================================== */

/* ===========================================================
   VARIABLES & TYPOGRAPHIE GLOBALE
   =========================================================== */
:root {
	--alpt-navy: #132D6E;
	--alpt-blue: #1D45A9;
	--alpt-yellow: #FFD000;
	--alpt-bg-light: #eef1f8;
	--alpt-text-gray: #6b7280;
	--alpt-max: 1300px;
	--alpt-gutter: clamp(1rem, 3vw, 2rem);
	--vw-real: 100vw;
	--alpt-sticky-header-h: 64px;
	--alpt-sticky-filterbar-h: 110px;
}

/* Polices hébergées sur le site (licence SIL OFL, voir dossier /fonts) */
@font-face {
	font-family: "Fredoka";
	src: url("fonts/fredoka.ttf") format("truetype");
	font-weight: 300 700;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Libre Franklin";
	src: url("fonts/libre-franklin.ttf") format("truetype");
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Manrope";
	src: url("fonts/manrope.ttf") format("truetype");
	font-weight: 200 800;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Sriracha";
	src: url("fonts/sriracha.ttf") format("truetype");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

/* Typo globale
   - Fredoka : petites sections jaunes (eyebrows, badges, chiffres clés)
   - Sriracha : accent script (mot "Triathlon" du hero, citation)
   - Manrope : texte courant (paragraphes)
   - Libre Franklin : gros titres épais (H1, H2, H3) */
body {
	font-family: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

h1, h2, h3, h4 {
	font-family: "Libre Franklin", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-weight: 800;
}

.badge, .eyebrow {
	font-family: "Fredoka", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	color: var(--alpt-yellow);
	font-weight: 600;
	font-size: 0.8rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	margin-bottom: 0.75rem;
}

.eyebrow::before {
	content: "";
	width: 20px;
	height: 3px;
	background: var(--alpt-yellow);
	display: inline-block;
}

.badge {
	display: inline-block;
	background: var(--alpt-yellow);
	color: var(--alpt-navy);
	font-size: 0.7rem;
	font-weight: 600;
	text-transform: uppercase;
	padding: 0.25rem 0.75rem;
	border-radius: 999px;
	margin-bottom: 0.75rem;
}

/* ===========================================================
   COMPOSANTS GLOBAUX — BOUTONS
   =========================================================== */
.btn {
	display: inline-block;
	padding: 0.85rem 1.75rem;
	border-radius: 999px;
	font-weight: 700;
	font-size: 0.85rem;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
	border: 2px solid transparent;
	font-family: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	transition: background-color 0.25s ease, color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
}

/* --- Bouton jaune (effet "goo" au survol/tap) ---
   Les "blobs" sont les enfants directs de .btn__blobs : le CSS fonctionne
   aussi bien avec des <div> qu'avec des <span> (plus valide en HTML). */
.btn--jaune {
	background: var(--alpt-yellow);
	color: var(--alpt-navy);
	position: relative;
	overflow: visible;
	z-index: 0;
	transition: color 0.6s ease;
}

.btn--jaune .btn__blobs {
	height: 100%;
	width: 100%;
	filter: url(#goo-alpt);
	overflow: hidden;
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	right: 0;
	z-index: -1;
	border-radius: 999px;
}

.btn--jaune .btn__blobs > * {
	background-color: var(--alpt-navy);
	width: 34%;
	height: 100%;
	border-radius: 100%;
	position: absolute;
	transform: scale(1.4) translateY(125%) translateZ(0);
	transition: transform 0.6s ease;
}

.btn--jaune .btn__blobs > *:nth-child(1) {
	left: -5%;
}

.btn--jaune .btn__blobs > *:nth-child(2) {
	left: 30%;
	transition-delay: 60ms;
}

.btn--jaune .btn__blobs > *:nth-child(3) {
	left: 66%;
	transition-delay: 25ms;
}

@media (min-width: 901px) {
	.btn--jaune:hover {
		color: var(--alpt-yellow);
	}

	.btn--jaune:hover .btn__blobs > * {
		transform: scale(1.4) translateY(0) translateZ(0);
	}
}

@media (max-width: 900px) {
	.btn--jaune:active {
		color: var(--alpt-yellow);
	}

	.btn--jaune:active .btn__blobs > * {
		transform: scale(1.4) translateY(0) translateZ(0);
	}
}

/* --- Bouton contour (générique) --- */
.btn--outline {
	background: transparent;
	border-color: currentColor;
	color: inherit;
}

@media (min-width: 901px) {
	.btn--outline:hover {
		background: #fff;
		color: var(--alpt-navy);
	}
}

@media (max-width: 900px) {
	.btn--outline:active {
		background: #fff;
		color: var(--alpt-navy);
	}
}

/* --- Bouton réseau social (générique) --- */
.btn-reseau {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.85rem 1.75rem;
	border-radius: 999px;
	color: #fff;
	font-weight: 600;
	font-family: "Fredoka", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	text-decoration: none;
	transition: background 0.3s ease, background-position 0.5s ease;
}

.btn-reseau--facebook {
	background: linear-gradient(135deg, #1877f2, #0a5cd0);
}

.btn-reseau--facebook:hover {
	background: linear-gradient(135deg, #0a5cd0, #063e91);
}

.btn-reseau--instagram {
	background: linear-gradient(135deg, #f58529, #dd2a7b, #8134af);
	background-size: 200% 200%;
	background-position: 0% 50%;
}

.btn-reseau--instagram:hover {
	background-position: 100% 50%;
}

@media (max-width: 600px) {
	.btn-reseau {
		justify-content: center;
	}
}

/* ===========================================================
   BLOCS RÉUTILISABLES
   =========================================================== */

/* --- CTA Rejoindre --- */
.cta-rejoindre {
	position: relative;
	background-color: var(--alpt-navy);
	background-size: cover;
	background-position: center;
	color: #fff;
	overflow: hidden;
}

.cta-rejoindre::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(19, 45, 110, 0.82);
}

.cta-rejoindre__inner {
	position: relative;
	z-index: 1;
	max-width: var(--alpt-max);
	margin: 0 auto;
	padding: 5rem var(--alpt-gutter);
	text-align: left;
}

.cta-rejoindre .eyebrow {
	color: var(--alpt-yellow);
}

.cta-rejoindre h2 {
	font-size: clamp(2rem, 5vw, 3rem);
	font-weight: 800;
	margin: 0 0 1rem;
	max-width: 700px;
}

.cta-rejoindre h2 em {
	color: var(--alpt-yellow);
	font-style: normal;
	font-family: "Sriracha", cursive;
	font-weight: 400;
}

.cta-rejoindre p {
	max-width: 550px;
	margin-bottom: 2rem;
	opacity: 0.9;
}

@media (max-width: 600px) {
	.cta-rejoindre__inner {
		padding-top: 3rem;
		padding-bottom: 3rem;
	}

	.cta-titre-saut {
		display: none;
	}

	.cta-rejoindre h2 em {
		font-size: 1.3em;
	}
}

/* --- CTA Réseaux sociaux --- */
.reseaux {
	background: var(--alpt-bg-light);
	text-align: center;
	width: 100vw;
	position: relative;
	left: 50%;
	right: 50%;
	margin-left: -50vw;
	margin-right: -50vw;
}

.reseaux__inner {
	max-width: var(--alpt-max);
	margin: 0 auto;
	padding: 5rem var(--alpt-gutter);
}

.reseaux .eyebrow {
	justify-content: center;
}

.reseaux h2 {
	color: var(--alpt-navy);
	font-size: clamp(1.75rem, 4vw, 2.5rem);
	font-weight: 800;
	margin: 0 0 1rem;
}

.reseaux p:not(.eyebrow) {
	max-width: 500px;
	margin: 0 auto 2rem;
	color: var(--alpt-navy);
}

.reseaux__liens {
	display: flex;
	justify-content: center;
	gap: 1rem;
	flex-wrap: wrap;
}

@media (max-width: 600px) {
	.reseaux__inner {
		padding-top: 3rem;
		padding-bottom: 3rem;
	}

	.reseaux__liens {
		flex-direction: column;
		align-items: stretch;
	}
}

/* --- CTA Devenir partenaire --- */
.cta-partenariat {
	position: relative;
	background-color: var(--alpt-blue);
	background-size: cover;
	background-position: center;
	color: #fff;
	overflow: hidden;
	text-align: center;
}

.cta-partenariat::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(19, 45, 110, 0.82);
}

.cta-partenariat__inner {
	position: relative;
	z-index: 1;
	max-width: 700px;
	margin: 0 auto;
	padding: 5rem var(--alpt-gutter);
}

.cta-partenariat .eyebrow {
	justify-content: center;
}

.cta-partenariat h2 {
	font-size: clamp(2rem, 5vw, 2.75rem);
	font-weight: 800;
	margin: 0 0 1rem;
}

.cta-partenariat p {
	margin-bottom: 2rem;
	opacity: 0.9;
}

@media (max-width: 600px) {
	.cta-partenariat__inner {
		padding-top: 3rem;
		padding-bottom: 3rem;
	}
}

/* --- CTA Faire un don --- */
.cta-don {
	position: relative;
	background-color: var(--alpt-blue);
	background-size: cover;
	background-position: center;
	color: #fff;
	overflow: hidden;
	text-align: center;
	width: 100vw;
	left: 50%;
	right: 50%;
	margin-left: -50vw;
	margin-right: -50vw;
	margin-top: 4rem;

}

.cta-don::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(19, 45, 110, 0.82);
}

.cta-don__inner {
	position: relative;
	z-index: 1;
	margin: 0 auto;
	padding: 5rem var(--alpt-gutter);
}

.cta-don .eyebrow {
	justify-content: center;
}

.cta-don h2 {
	font-size: clamp(2rem, 5vw, 2.75rem);
	font-weight: 800;
	margin: 0 0 1rem;
}

.cta-don p {
	margin-bottom: 2rem;
	opacity: 0.9;
}

.cta-don .btn--outline {
	color: #fff;
}

@media (min-width: 901px) {
	.cta-don .btn--outline:hover {
		background: #fff;
		color: var(--alpt-navy);
	}
}

@media (max-width: 900px) {
	.cta-don .btn--outline:active {
		background: #fff;
		color: var(--alpt-navy);
	}
}

.cta-don__icone {
	display: block;
	margin: 1.5rem auto 0;
	color: var(--alpt-yellow);
}

@media (max-width: 600px) {
	.cta-don {
		padding-top: 3rem;
		padding-bottom: 3rem;
	}
}

/* --- CTA Contact --- */
.cta-contact {
	position: relative;
	background-color: var(--alpt-navy);
	background-size: cover;
	background-position: center;
	color: #fff;
	overflow: hidden;
	width: 100vw;
	left: 50%;
	right: 50%;
	margin-left: -50vw;
	margin-right: -50vw;
	margin-top: 80px;
}

.cta-contact::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(19, 45, 110, 0.82);
}

.cta-contact__inner {
	position: relative;
	z-index: 1;
	max-width: var(--alpt-max);
	margin: 0 auto;
	padding: 5rem var(--alpt-gutter);
	text-align: left;
}

.cta-contact .eyebrow {
	color: var(--alpt-yellow);
}

.cta-contact h2 {
	font-size: clamp(2rem, 5vw, 3rem);
	font-weight: 800;
	margin: 0 0 1rem;
	max-width: 700px;
}

.cta-contact h2 em {
	color: var(--alpt-yellow);
	font-style: normal;
	font-family: "Sriracha", cursive;
	font-weight: 400;
}

.cta-contact p {
	max-width: 550px;
	margin-bottom: 2rem;
	opacity: 0.9;
}

.cta-contact .btn--outline {
	color: #fff;
}

@media (min-width: 901px) {
	.cta-contact .btn--outline:hover {
		background: #fff;
		color: var(--alpt-navy);
	}
}

@media (max-width: 900px) {
	.cta-contact .btn--outline:active {
		background: #fff;
		color: var(--alpt-navy);
	}
}

@media (max-width: 600px) {
	.cta-contact__inner {
		padding-top: 3rem;
		padding-bottom: 3rem;
	}
}

/* --- CTA Entraînements --- */
.cta-entrainements {
	position: relative;
	background-color: var(--alpt-navy);
	background-size: cover;
	background-position: center;
	color: #fff;
	overflow: hidden;
	width: 100vw;
	left: 50%;
	right: 50%;
	margin-left: -50vw;
	margin-right: -50vw;
	margin-top: 4rem;
}

.cta-entrainements::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(19, 45, 110, 0.82);
}

.cta-entrainements__inner {
	position: relative;
	z-index: 1;
	max-width: var(--alpt-max);
	margin: 0 auto;
	padding: 5rem var(--alpt-gutter);
	text-align: center;
}

.cta-entrainements .eyebrow {
	color: var(--alpt-yellow);
	text-align: center;
}

.cta-entrainements h2 {
	font-size: clamp(2rem, 5vw, 3rem);
	font-weight: 800;
	margin: 0 auto 1.5rem;
	max-width: 700px;
}

.cta-entrainements h2 em {
	color: var(--alpt-yellow);
	font-style: normal;
	font-family: "Sriracha", cursive;
	font-weight: 400;
}

.cta-entrainements .btn--outline {
	color: #fff;
}

@media (min-width: 901px) {
	.cta-entrainements .btn--outline:hover {
		background: #fff;
		color: var(--alpt-navy);
	}
}

@media (max-width: 900px) {
	.cta-entrainements .btn--outline:active {
		background: #fff;
		color: var(--alpt-navy);
	}
}

@media (max-width: 600px) {
	.cta-entrainements__inner {
		padding-top: 3rem;
		padding-bottom: 3rem;
	}
}

/* --- Composant Onglets (générique — réutilisé par Le Club / Équipe / Entraînements / Partenaires / Adhésion et dons) --- */
.page-le-club,
.page-equipe,
.page-entrainements {
	max-width: 900px;
	margin: 0 auto;
	padding: 3rem 1.5rem;
}

.page-le-club h1,
.page-equipe h1,
.page-entrainements h1 {
	color: var(--alpt-navy);
	font-size: clamp(1.75rem, 4vw, 2.5rem);
	margin-bottom: 2rem;
}

.tabs__nav {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	border-bottom: 2px solid #eee;
	margin-bottom: 2rem;
}

.tabs__nav-item {
	background: none;
	border: none;
	cursor: pointer;
	padding: 0.75rem 1.25rem;
	font-weight: 600;
	color: var(--alpt-navy);
	opacity: 0.6;
	border-bottom: 3px solid transparent;
}

.tabs__nav-item.is-active {
	opacity: 1;
	border-bottom-color: var(--alpt-yellow);
}

.tabs__panel {
	display: none;
}

.tabs__panel.is-active {
	display: block;
}

.section-detail__entete {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin-bottom: 1rem;
}

.section-detail__horaires {
	width: 100%;
	border-collapse: collapse;
	margin-top: 1.5rem;
}

.section-detail__horaires th,
.section-detail__horaires td {
	text-align: left;
	padding: 0.5rem 1rem;
	border-bottom: 1px solid #eee;
}

.section-detail__image {
	max-width: 100%;
	height: auto;
	border-radius: 8px;
	margin: 1rem 0;
}

@media (max-width: 600px) {
	.tabs__nav {
		gap: 0.25rem;
	}

	.tabs__nav-item {
		padding: 0.6rem 0.85rem;
		font-size: 0.9rem;
	}
}

/* --- Composant Pastilles Hero (générique — réutilisé par Le Club / Équipe / Entraînements / Partenaires / Adhésion et dons) --- */
.hero-tabs__nav {
	display: block;
	margin: 2rem 0 0;
	border-bottom: none;
}

.hero-tabs__nav-inner {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

.hero-tabs .tabs__nav-item {
	background: #fff;
	color: var(--alpt-navy);
	opacity: 1;
	border: 2px solid #fff;
	border-radius: 999px;
	padding: 0.85rem 1.75rem;
	min-width: 140px;
	text-align: center;
	font-weight: 700;
	font-size: 0.85rem;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.hero-tabs .tabs__nav-item:hover {
	background: var(--alpt-navy);
	color: #fff;
	border-color: #fff;
}

.hero-tabs .tabs__nav-item.is-active {
	background: var(--alpt-navy);
	color: #fff;
	border-color: #fff;
}

@media (max-width: 600px) {
	.hero-tabs__nav-inner {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 0.6rem;
	}

	.hero-tabs .tabs__nav-item {
		width: 100%;
		min-width: 0;
		padding: 0.75rem 1rem;
		font-size: 0.75rem;
	}
}

/* ===========================================================
   HEADER & NAVIGATION (global, toutes pages)
   =========================================================== */
.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--alpt-navy);
	transition: box-shadow 0.25s ease;
	overflow-anchor: none;
}

.site-header__inner {
	max-width: var(--alpt-max);
	margin: 0 auto;
	padding: 1rem var(--alpt-gutter);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
	transition: padding 0.25s ease;
}

.site-branding img {
	max-height: 84px;
	width: auto;
	transition: max-height 0.25s ease;
}

.site-header__cta .btn {
	transition: padding 0.25s ease, color 0.6s ease;
}

.site-title {
	margin: 0;
	font-size: 1.1rem;
	font-family: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.site-title a {
	color: #fff;
	text-decoration: none;
}

.site-description {
	margin: 0;
	font-size: 0.75rem;
	color: #ccc;
}

@media (min-width: 901px) {
	.site-header.is-scrolled .site-header__inner {
		padding-top: 0.5rem;
		padding-bottom: 0.5rem;
	}

	.site-header.is-scrolled .site-branding img {
		max-height: 52px;
	}

	.site-header.is-scrolled {
		box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
	}

	.site-header.is-scrolled .site-header__cta .btn {
		padding: 0.55rem 1.5rem;
	}
}

/* --- Navigation desktop --- */
.main-navigation {
	flex: 1;
}

.main-navigation__list {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 2rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.main-navigation__list a {
	color: #fff;
	text-decoration: none;
	font-weight: 600;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	font-size: 0.85rem;
	font-family: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* Soulignement progressif + texte jaune au survol (menu principal, 1er niveau) */
.main-navigation__list > li > a {
	position: relative;
	padding-bottom: 6px;
}

.main-navigation__list > li > a::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 0;
	height: 2px;
	background: var(--alpt-yellow);
	transition: width 0.25s ease;
}

.main-navigation__list > li > a:hover::after,
.main-navigation__list > li > a:focus::after {
	width: 100%;
}

.main-navigation__list > li > a:hover,
.main-navigation__list > li > a:focus {
	color: var(--alpt-yellow);
}

.main-navigation__list > li.current-menu-item > a,
.main-navigation__list > li.current_page_item > a {
	color: var(--alpt-yellow);
}

.main-navigation__list > li.current-menu-item > a::after,
.main-navigation__list > li.current_page_item > a::after {
	width: 100%;
}

/* Sous-menus (si "Le Club" ou "Entraînements" ont des enfants) */
.main-navigation__list ul {
	list-style: none;
	margin: 0;
	padding: 0.5rem 0;
	position: absolute;
	background: var(--alpt-navy);
	display: none;
	min-width: 200px;
}

.main-navigation__list li {
	position: relative;
}

.main-navigation__list li:hover > ul,
.main-navigation__list li:focus-within > ul {
	display: block;
}

.main-navigation__list ul a {
	display: block;
	padding: 0.5rem 1rem;
	text-transform: none;
	font-size: 0.9rem;
}

/* --- Bouton burger (mobile) ---
   Le bouton existant du thème (.menu-toggle) affiche un texte
   ("Primary Menu") : on le transforme visuellement en icône burger
   sans toucher au HTML/PHP. */
.menu-toggle {
	display: none;
	position: relative;
	background: none;
	border: none;
	cursor: pointer;
	width: 32px;
	height: 32px;
	padding: 0;
	color: transparent;
	font-size: 0;
}

.menu-toggle::before,
.menu-toggle::after {
	content: "";
	position: absolute;
	left: 4px;
	right: 4px;
	height: 2px;
	background: #fff;
	transition: transform 0.3s ease, top 0.3s ease;
}

.menu-toggle::before {
	top: 8px;
}

.menu-toggle::after {
	top: 22px;
}

.menu-toggle__bar {
	position: absolute;
	left: 4px;
	right: 4px;
	top: 15px;
	height: 2px;
	background: #fff;
	transition: opacity 0.3s ease;
}

.main-navigation.toggled .menu-toggle::before {
	top: 15px;
	transform: rotate(45deg);
}

.main-navigation.toggled .menu-toggle::after {
	top: 15px;
	transform: rotate(-45deg);
}

.main-navigation.toggled .menu-toggle__bar {
	opacity: 0;
}

/* --- Responsive Header & Navigation --- */
@media (max-width: 900px) {
	.site-branding img {
		max-height: 60px;
	}

	.site-header__inner {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 1rem;
	}

	.site-branding {
		order: 1;
	}

	.site-header__cta {
		display: inline-flex;
		order: 2;
	}

	.main-navigation {
		order: 3;
		flex: 0 0 auto;
	}

	.menu-toggle {
		display: flex;
	}

	.main-navigation__list {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		list-style: none;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		background: var(--alpt-navy);
		padding: 0.5rem 0;
		border-radius: 0;
		box-shadow: 0 16px 32px rgba(0, 0, 0, 0.25);
		transform-origin: top;
		transform: scaleY(0.85) translateY(-8px);
		opacity: 0;
		pointer-events: none;
		transition: opacity 0.25s ease, transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
	}

	.main-navigation.toggled .main-navigation__list {
		transform: scaleY(1) translateY(0);
		opacity: 1;
		pointer-events: auto;
	}

	.main-navigation__list > li {
		border-bottom: 1px solid rgba(255, 255, 255, 0.1);
	}

	.main-navigation__list > li:last-child {
		border-bottom: none;
	}

	.main-navigation__list > li > a {
		display: block;
		padding: 1rem 1.5rem;
	}

	.main-navigation__list ul {
		position: static;
		display: block;
		background: transparent;
		padding-left: 1.5rem;
	}

	.site-header.is-scrolled .site-header__inner {
		padding-top: 0.5rem;
		padding-bottom: 0.5rem;
	}

	.site-header.is-scrolled .site-branding img {
		max-height: 48px;
	}

	.site-header.is-scrolled .site-header__cta .btn {
		padding: 0.55rem 1.5rem;
	}
}

/* ===========================================================
   PAGE D'ACCUEIL
   =========================================================== */

/* --- Hero --- */
.hero {
	position: relative;
	background-size: cover;
	background-position: top;
	color: #fff;
	padding: 4rem 0 0;
}

.hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(19, 45, 110, 0.82);
	z-index: 0;
}

.hero__content {
	position: relative;
	z-index: 1;
	max-width: var(--alpt-max);
	margin: 0 auto;
	text-align: left;
	padding-left: var(--alpt-gutter);
	padding-right: var(--alpt-gutter);
	padding-bottom: 3rem;
}

.hero__accroche {
	font-family: "Fredoka", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	color: var(--alpt-yellow);
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	font-size: 0.85rem;
	margin-bottom: 1rem;
}

.hero__titre {
	font-size: clamp(2.5rem, 6vw, 4rem);
	line-height: 1.05;
	font-weight: 800;
	margin: 0 0 1.5rem;
}

.hero__titre em {
	color: var(--alpt-yellow);
	font-style: normal;
	font-family: "Sriracha", cursive;
	font-weight: 400;
}

.hero__texte {
	font-family: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: 1.05rem;
	line-height: 1.6;
	max-width: 600px;
	margin-bottom: 2rem;
	opacity: 0.95;
}

.hero__ctas {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
}

.hero__ctas .btn--outline {
	color: #fff;
}

@media (min-width: 901px) {
	.hero__ctas .btn--outline:hover {
		background: #fff;
		color: var(--alpt-navy);
	}
}

@media (max-width: 900px) {
	.hero__ctas .btn--outline:active {
		background: #fff;
		color: var(--alpt-navy);
	}
}

@media (max-width: 600px) {
	.hero {
		padding-top: 2.5rem;
	}

	.hero__ctas {
		flex-direction: column;
		align-items: stretch;
	}

	.hero__ctas .btn {
		text-align: center;
	}
}

/* --- Bande "Chiffres clés" sous le hero (fond bleu plein) --- */
.stats-bar {
	background: var(--alpt-navy);
	color: #fff;
}

.hero__stats {
	max-width: var(--alpt-max);
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
}

.stat {
	text-align: center;
	padding: 2.5rem 1rem;
	border-left: 1px solid rgba(255, 255, 255, 0.15);
}

.stat:first-child {
	border-left: none;
}

.stat__valeur {
	display: block;
	font-size: 1.75rem;
	font-weight: 800;
	color: var(--alpt-yellow);
	font-family: "Libre Franklin", sans-serif;
}

.stat__libelle {
	display: block;
	font-size: 1rem;
	opacity: 0.85;
	margin-top: 0.25rem;
	font-family: "Manrope", sans-serif;
	color: #fff;
}

@media (max-width: 900px) {
	.hero__stats {
		grid-template-columns: repeat(2, 1fr);
	}

	.stat:nth-child(1),
	.stat:nth-child(3) {
		border-left: none;
	}

	.stat:nth-child(3),
	.stat:nth-child(4) {
		border-top: 1px solid rgba(255, 255, 255, 0.15);
	}
}

@media (max-width: 600px) {
	.hero__stats {
		grid-template-columns: 1fr 1fr;
	}
}

/* --- Disciplines --- */
.disciplines {
	max-width: var(--alpt-max);
	margin: 0 auto;
	padding: 4rem var(--alpt-gutter) 2rem;
	text-align: left;
}

.disciplines h2 {
	color: var(--alpt-navy);
	font-size: clamp(1.75rem, 4vw, 2.5rem);
	font-weight: 800;
	margin: 0 0 2rem;
}

.disciplines__grid {
	display: flex;
	gap: 0;
	height: 400px;
	width: var(--vw-real);
	position: relative;
	left: 50%;
	right: 50%;
	margin-left: calc(-1 * var(--vw-real) / 2);
	margin-right: calc(-1 * var(--vw-real) / 2);
}

.discipline-card {
	position: relative;
	flex: 1 1 33.3333%;
	min-width: 0;
	box-sizing: border-box;
	background-size: cover;
	background-position: center;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: 1.5rem;
	color: #fff;
	overflow: hidden;
	transition: flex 0.45s ease 0.12s;
}

.discipline-card:first-child {
	padding-left: calc(max(0px, (var(--vw-real) - var(--alpt-max)) / 2) + var(--alpt-gutter));
}

.discipline-card:last-child {
	padding-right: calc(max(0px, (var(--vw-real) - var(--alpt-max)) / 2) + var(--alpt-gutter));
}

.discipline-card::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: inherit;
	background-size: cover;
	background-position: center;
	transition: filter 0.5s ease, transform 0.5s ease;
	z-index: 0;
}

.discipline-card::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(19, 45, 110, 0.35);
	z-index: 1;
	pointer-events: none;
}

.discipline-card h3,
.discipline-card p {
	position: relative;
	z-index: 2;
	margin: 0;
	white-space: nowrap;
}

.discipline-card h3 {
	font-size: 1.7rem;
	font-weight: 800;
	margin-bottom: 0.25rem;
}

.discipline-card p {
	opacity: 0;
	transform: translateY(8px);
	transition: opacity 0.3s ease 0.1s, transform 0.3s ease 0.1s;
	white-space: normal;
}

@media (min-width: 901px) {
	.discipline-card:hover::before {
		transform: scale(1.05);
	}

	.discipline-card:hover p {
		opacity: 1;
		transform: translateY(0);
	}
}

@media (max-width: 600px) {
	.disciplines {
		padding-top: 3rem;
		padding-bottom: 0.5rem;
	}

	.disciplines__grid {
		flex-direction: column;
		height: auto;
	}

	.discipline-card {
		min-height: 220px;
	}

	.discipline-card p {
		opacity: 1;
		transform: none;
	}
}

/* --- Nos sections (page d'accueil) --- */
.sections {
	max-width: var(--alpt-max);
	margin: 0 auto;
	padding: 2rem var(--alpt-gutter) 4rem;
	text-align: center;
}

.sections .eyebrow {
	justify-content: center;
}

.sections h2 {
	color: var(--alpt-navy);
	font-size: clamp(1.75rem, 4vw, 2.5rem);
	font-weight: 800;
	margin: 0 0 1.5rem;
}

.sections .btn--outline {
	color: var(--alpt-navy);
	margin-bottom: 2rem;
	display: inline-block;
}

@media (min-width: 901px) {
	.sections .btn--outline:hover {
		background: var(--alpt-navy);
		color: #fff;
	}
}

@media (max-width: 900px) {
	.sections .btn--outline:active {
		background: var(--alpt-navy);
		color: #fff;
	}
}

.sections__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.25rem;
	margin-top: 1.5rem;
}

.section-card {
	position: relative;
	aspect-ratio: 3 / 4;
	background-size: cover;
	background-position: center;
	border-radius: 12px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding: 1.25rem;
	color: #fff;
	text-decoration: none;
	overflow: hidden;
}

.section-card::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(19, 45, 110, 0.75), transparent 55%);
}

.section-card .badge,
.section-card__age,
.section-card h3 {
	position: relative;
}

.section-card__age {
	display: block;
	font-size: 0.8rem;
	opacity: 0.9;
	margin-top: auto;
	font-family: "Manrope", sans-serif;
}

.section-card h3 {
	font-size: 1.15rem;
	font-weight: 800;
	margin: 0.25rem 0 0;
}

@media (min-width: 901px) {
	.section-card:nth-child(odd) {
		margin-top: -1.5rem;
	}

	.section-card:nth-child(even) {
		margin-top: 1.5rem;
	}
}

@media (max-width: 900px) {
	.sections__grid {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 600px) {
	.sections {
		padding-top: 3rem;
		padding-bottom: 3rem;
	}

	.sections__grid {
		display: flex;
		grid-template-columns: none;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		gap: 1rem;
		margin-top: 0;
		padding-bottom: 0.5rem;
		-webkit-overflow-scrolling: touch;
	}

	.sections__grid::-webkit-scrollbar {
		display: none;
	}

	.section-card {
		flex: 0 0 78%;
		scroll-snap-align: center;
		min-height: 220px;
	}
}

/* --- Citation --- */
.citation {
	position: relative;
	background-color: var(--alpt-blue);
	background-size: cover;
	background-position: center;
	color: #fff;
	overflow: hidden;
	text-align: center;
	padding: 8rem 1.5rem;
}

.citation::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: linear-gradient(rgba(19, 45, 110, 0.82), rgba(19, 45, 110, 0.82)), url('../../uploads/2026/09/motifs-wave2.png');
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center;
}

.citation blockquote,
.citation__auteur {
	position: relative;
	z-index: 1;
}

.citation blockquote {
	max-width: 700px;
	margin: 0 auto 1.5rem;
	text-align: left;
	font-size: clamp(1.6rem, 3.2vw, 2.2rem);
	font-family: "Sriracha", cursive;
	font-weight: 400;
	line-height: 1.4;
}

.citation__auteur {
	max-width: 700px;
	margin: 0 auto;
	text-align: left;
	color: #fff;
	font-family: "Manrope", sans-serif;
	font-weight: 700;
}

@media (max-width: 600px) {
	.citation {
		padding-top: 3rem;
		padding-bottom: 3rem;
	}
}

/* --- Agenda --- */
.agenda {
	max-width: var(--alpt-max);
	margin: 0 auto;
	padding: 4rem var(--alpt-gutter);
	position: relative;
}

.agenda h2 {
	color: var(--alpt-navy);
	font-size: clamp(1.75rem, 4vw, 2.5rem);
	font-weight: 800;
	margin: 0 0 1.5rem;
}

.agenda__entete {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: nowrap;
}

.lien-agenda {
	display: inline-block;
	color: var(--alpt-navy);
	font-weight: 700;
	font-size: 0.9rem;
	font-family: "Manrope", sans-serif;
	text-decoration: none;
	border-bottom: 2px solid var(--alpt-yellow);
	padding-bottom: 2px;
	margin-bottom: 1.5rem;
	transition: border-color 0.2s ease;
}

.lien-agenda:hover {
	border-bottom-color: var(--alpt-navy);
}

.agenda__liste {
	background: var(--alpt-bg-light);
	border-radius: 16px;
	padding: 1rem 2rem;
}

.agenda__vide {
	background: var(--alpt-bg-light);
	border-radius: 16px;
	padding: 3rem 2rem;
	text-align: center;
	color: var(--alpt-navy);
}

.agenda__vide p {
	margin: 0 auto;
	max-width: 560px;
}

.agenda__vide-titre {
	font-weight: 700;
	font-size: 1.2rem;
	margin-bottom: 0.5rem !important;
}

.agenda__ligne {
	display: grid;
	grid-template-columns: 90px 150px 1fr 1.4fr 150px;
	align-items: start;
	gap: 1.5rem;
	padding: 1.5rem 0;
	border-bottom: 1px dashed rgba(19, 45, 110, 0.25);
}

.agenda__ligne:last-child {
	border-bottom: none;
}

.agenda__date {
	display: flex;
	align-items: baseline;
	gap: 0.35rem;
	font-family: "Manrope", sans-serif;
}

.agenda__date-jour {
	color: var(--alpt-navy);
	font-weight: 700;
}

.agenda__date-annee {
	color: var(--alpt-text-gray);
	font-size: 0.85rem;
}

.agenda__infos h3 {
	margin: 0;
	font-size: 1.05rem;
	color: var(--alpt-navy);
}

.agenda__infos p {
	margin: 0.15rem 0 0;
	color: var(--alpt-text-gray);
	font-size: 0.9rem;
}

.agenda__details {
	font-size: 0.85rem;
	color: var(--alpt-navy);
	font-family: "Manrope", sans-serif;
}

.agenda__details p {
	margin: 0 0 0.15rem;
}

.agenda__public {
	color: var(--alpt-navy);
	font-weight: 700;
	font-size: 0.9rem;
	font-family: "Manrope", sans-serif;
	text-align: right;
}

.agenda__ligne .badge {
	font-weight: 600;
	text-align: center;
	justify-self: center;
	padding: 0.3rem 0.65rem;
}

.agenda__toggle {
	display: none;
}

@media (min-width: 901px) {
	.agenda__date {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: 0.1rem;
	}
}

@media (max-width: 900px) {
	.lien-agenda {
		margin-bottom: 1rem;
	}

	.agenda__ligne {
		grid-template-columns: 1fr 1fr;
		row-gap: 0.5rem;
	}
}

@media (max-width: 600px) {
	.agenda {
		padding-top: 3rem;
		padding-bottom: 3rem;
	}

	.agenda__liste {
		padding: 0.5rem 1.25rem;
	}

	.agenda__ligne {
		grid-template-columns: 1fr auto auto;
		grid-template-areas:
			"date badge toggle"
			"infos infos infos"
			"details details details"
			"public public public";
		row-gap: 0.35rem;
		align-items: start;
	}

	.agenda__toggle {
		grid-area: toggle;
		justify-self: end;
		align-self: start;
		width: 26px;
		height: 26px;
		border-radius: 50%;
		border: 1px solid var(--alpt-navy);
		background: none;
		color: var(--alpt-navy);
		font-size: 1rem;
		line-height: 1;
		display: flex;
		align-items: center;
		justify-content: center;
		padding: 0;
		cursor: pointer;
	}

	.agenda__infos p {
		display: none;
	}

	.agenda__ligne .agenda__details,
	.agenda__ligne .agenda__public {
		display: none;
	}

	.agenda__ligne.is-open .agenda__infos p,
	.agenda__ligne.is-open .agenda__details,
	.agenda__ligne.is-open .agenda__public {
		display: block;
	}

	.agenda__infos h3 {
		font-size: 18px;
		margin-top: 0.5rem;
	}

	.agenda__infos p {
		font-size: 14px;
	}

	.agenda__details {
		font-size: 1rem;
	}

	.agenda__ligne .agenda__date {
		grid-area: date;
	}

	.agenda__ligne .badge {
		grid-area: badge;
		justify-self: end;
		align-self: start;
	}

	.agenda__ligne .agenda__infos {
		grid-area: infos;
	}

	.agenda__ligne .agenda__details {
		grid-area: details;
	}

	.agenda__ligne .agenda__public {
		grid-area: public;
	}

	.agenda__public {
		align-self: flex-start;
	}

	.agenda__saut {
		display: none;
	}

	.agenda__entete {
		flex-wrap: wrap;
		align-items: flex-start;
	}
}

/* ===========================================================
   PAGE LE CLUB
   =========================================================== */
.club-hero {
	position: relative;
	background-size: cover;
	background-position: top;
	color: #fff;
	padding: 3rem 0 0;
}

.club-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(19, 45, 110, 0.82);
	z-index: 0;
}

.club-hero__inner {
	position: relative;
	z-index: 1;
	max-width: var(--alpt-max);
	margin: 0 auto;
	padding: 0 var(--alpt-gutter) 3rem;
	text-align: left;
}

.club-hero__fil {
	font-size: 0.85rem;
	opacity: 0.8;
	margin-bottom: 1.5rem;
}

.club-hero__fil a {
	color: #fff;
	text-decoration: none;
}

.club-hero__titre {
	font-size: clamp(2rem, 5vw, 3rem);
	font-weight: 800;
	margin: 0 0 0.75rem;
}

.club-hero__soustitre {
	opacity: 0.9;
	font-size: 1rem;
	margin: 0 0 2rem;
}

.club-content {
	max-width: var(--alpt-max);
	margin: 0 auto;
	padding: 3rem var(--alpt-gutter) 0;
}

.club-panel__titre {
	color: var(--alpt-navy);
	font-size: clamp(1.5rem, 3vw, 2rem);
	font-weight: 800;
	margin: 0 0 2rem;
}


#nos-valeurs {
	padding-bottom: 0;
}

@media (max-width: 600px) {
	.club-hero {
		padding-top: 2rem;
	}
}

/* --- Notre histoire (frise) --- */
.club-timeline-wrap {
	display: grid;
	grid-template-columns: 1.6fr 1fr;
	gap: 3rem;
	align-items: center;
	margin-bottom: 4rem;
}

.club-timeline {
	position: relative;
	padding-left: 2rem;
}

.club-timeline__line {
	position: absolute;
	left: 2px;
	width: 3px;
	background: var(--alpt-yellow);
	top: 0;
	height: 0;
}

.club-timeline__etape {
	position: relative;
	display: flex;
	align-items: center;
	gap: 1.25rem;
	margin-bottom: 2rem;
}

.club-timeline__etape:last-child {
	margin-bottom: 0;
}

.club-timeline__point {
	position: absolute;
	left: -2rem;
	top: 50%;
	transform: translate(-4px, -50%);
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: var(--alpt-yellow);
	z-index: 2;
}

.club-timeline__annee {
	flex: 0 0 70px;
	text-align: center;
	color: var(--alpt-navy);
	font-weight: 800;
	font-size: 1.4rem;
	font-family: "Libre Franklin", sans-serif;
	margin-bottom: 0;
}

.club-timeline__texte {
	flex: 1;
	color: var(--alpt-navy);
	font-size: 0.95rem;
	line-height: 1.55;
	max-width: none;
}

.club-timeline__texte p {
	margin: 0;
}

.club-timeline__image img {
	max-width: 85%;
	height: auto;
	border-radius: 12px;
	display: block;
	margin: 0 auto;
}

@media (max-width: 900px) {
	.club-timeline-wrap {
		grid-template-columns: 1fr;
	}

	.club-timeline__etape {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.2rem;
	}

	.club-timeline__annee {
		flex: none;
		text-align: left;
	}

	.club-timeline__texte {
		flex: none;
		width: 100%;
	}
}

/* --- Nos valeurs : intro (image + citation + texte) --- */
.club-valeurs-intro__grid {
	display: flex;
	align-items: flex-start;
	gap: 4rem;
	margin-top: 2rem;
}

.club-valeurs-intro__content {
	flex: 0 1 750px;
}

.club-valeurs-citation {
	background: var(--alpt-navy);
	border-radius: 16px;
	padding: 2rem 2.25rem;
	margin: 0 0 1.5rem;
	display: flex;
	align-items: center;
	justify-content: center;
}

.club-valeurs-citation__inner {
	max-width: 100%;
}

.club-valeurs-citation__mark {
	display: block;
	color: var(--alpt-yellow);
	font-size: 6rem;
	line-height: 0.8;
	font-family: Georgia, serif;
}

.club-valeurs-citation p {
	color: #fff;
	font-family: "Sriracha", cursive;
	font-weight: 400;
	font-style: normal;
	font-size: 2rem;
	line-height: 1.4;
	margin: 0 0 0.75rem;
}

.club-valeurs-citation cite {
	display: block;
	font-style: normal;
	color: #fff;
	font-size: 0.9rem;
}

.club-valeurs-intro__phrase {
	color: var(--alpt-text-gray);
	font-size: 0.9rem;
	margin: 0 0 1rem;
}

.club-valeurs-intro__corps,
.club-valeurs-intro__corps p,
.club-valeurs-intro__corps strong,
.club-valeurs-intro__corps em {
	color: var(--alpt-navy);
}

.club-valeurs-intro__corps p {
	font-size: 1rem;
	line-height: 1.6;
	margin: 0 0 1rem;
}

.club-valeurs-intro__corps strong {
	font-weight: 800;
}

@media (max-width: 900px) {
	.club-valeurs-intro__grid {
		flex-direction: column;
		gap: 1rem;
	}

	.club-valeurs-intro__content {
		flex: 0 0 auto;
		width: 100%;
	}

	.club-valeurs-citation p {
		font-size: 1.3rem;
	}

	.club-valeurs-citation__mark {
		font-size: 3.5rem;
	}
}

/* --- Nos valeurs : titre de la liste --- */
.club-valeurs-liste__titre-general {
	color: var(--alpt-navy);
	font-size: clamp(1.4rem, 3vw, 1.9rem);
	font-weight: 800;
	margin: 3rem 0 1.5rem;
}

@media (max-width: 900px) {
	.club-valeurs-liste__titre-general {
		margin: 1rem 0 1.5rem;
	}
}

/* --- Nos valeurs : liste de blocs avec photo --- */
.club-valeurs-liste {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.club-valeurs-liste__item {
	display: flex;
	align-items: stretch;
	background: var(--alpt-bg-light);
	border-radius: 20px;
	overflow: hidden;
	min-height: 260px;
}

.club-valeurs-liste__item:nth-child(even) {
	flex-direction: row-reverse;
}

.club-valeurs-liste__photo {
	flex: 0 0 30%;
	background-size: cover;
	background-position: center;
}

.club-valeurs-liste__contenu {
	flex: 1;
	padding: 2.5rem 2rem 2.5rem 3rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.club-valeurs-liste__icone {
	display: inline-flex;
	width: 28px;
	height: 28px;
	margin-bottom: 0.75rem;
	color: var(--alpt-navy);
}

.club-valeurs-liste__icone svg {
	width: 100%;
	height: 100%;
}

.club-valeurs-liste__titre {
	color: var(--alpt-navy);
	font-size: clamp(1.3rem, 2.5vw, 1.6rem);
	font-weight: 800;
	margin: 0 0 0.5rem;
}

.club-valeurs-liste__texte {
	color: var(--alpt-text-gray);
	font-size: 1rem;
	line-height: 1.6;
	margin: 0;
	max-width: 600px;
}

@media (max-width: 900px) {
	.club-valeurs-liste__item,
	.club-valeurs-liste__item:nth-child(even) {
		flex-direction: column;
	}

	.club-valeurs-liste__photo {
		flex: none;
		width: 100%;
		aspect-ratio: 16 / 9;
	}

	.club-valeurs-liste__contenu {
		padding: 2rem;
	}
}

/* --- Nos objectifs --- */
.club-objectifs__intro {
	color: var(--alpt-navy);
	font-size: 0.95rem;
	line-height: 1.5;
	margin: 0 0 2rem;
}

.club-objectifs {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.5rem;
}

.club-objectifs__carte {
	background: var(--alpt-bg-light);
	border-radius: 16px;
	padding: 2rem;
}

.club-objectifs__entete {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	margin-bottom: 1rem;
}

.club-objectifs__num-icone {
	display: flex;
	flex-direction: column;
	align-items: center;
	flex: 0 0 3rem;
}

.club-objectifs__numero {
	color: var(--alpt-yellow);
	font-family: "Libre Franklin", sans-serif;
	font-weight: 800;
	font-size: 1.8rem;
	line-height: 1;
}

.club-objectifs__icone {
	width: 20px;
	height: 20px;
	margin-top: 0.35rem;
}

.club-objectifs__carte h3 {
	color: var(--alpt-navy);
	font-size: 1.4rem;
	font-weight: 800;
	line-height: 1.25;
	margin: 0;
	max-width: 320px;
}

.club-objectifs__texte {
	margin-left: calc(3rem + 1rem);
}

.club-objectifs__texte p {
	color: var(--alpt-text-gray);
	font-size: 1rem;
	line-height: 1.6;
	margin: 0;
}

@media (max-width: 900px) {
	.club-objectifs__carte h3 {
		font-size: 1.2rem;
	}
}

@media (max-width: 600px) {
	.club-objectifs {
		grid-template-columns: 1fr;
	}

	.club-objectifs__texte {
		margin-left: 0;
	}
}

/* --- Nos sections (page Le Club) --- */
.club-sections__intro {
	color: var(--alpt-navy);
	font-size: 0.95rem;
	line-height: 1.5;
	margin: 0 0 2rem;
}

.club-sections {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.club-sections__carte {
	display: flex;
	align-items: stretch;
	background: var(--alpt-bg-light);
	border-radius: 16px;
	overflow: hidden;
	min-height: 220px;
}

.club-sections__image {
	flex: 0 0 280px;
	background-size: cover;
	background-position: center;
}

.club-sections__contenu {
	flex: 1;
	padding: 2rem 2.5rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.club-sections__meta {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-bottom: 1rem;
}

.club-sections__badge {
	background: var(--alpt-yellow);
	color: var(--alpt-navy);
	font-weight: 800;
	font-size: 0.7rem;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	padding: 0.3rem 0.75rem;
	border-radius: 20px;
}

.club-sections__niveau {
	color: var(--alpt-text-gray);
	font-size: 0.85rem;
	font-weight: 600;
}

.club-sections__carte h3 {
	color: var(--alpt-navy);
	font-size: 1.5rem;
	font-weight: 800;
	margin: 0 0 0.75rem;
}

.club-sections__texte p {
	color: var(--alpt-text-gray);
	font-size: 1rem;
	line-height: 1.6;
	margin: 0;
}

@media (max-width: 900px) {
	.club-sections__carte {
		flex-direction: column;
	}

	.club-sections__image {
		flex: none;
		width: 100%;
		aspect-ratio: 16 / 9;
	}

	.club-sections__contenu {
		padding: 1.5rem;
	}
}

/* ===========================================================
   PAGE ÉQUIPE
   =========================================================== */
.equipe-hero {
	position: relative;
	background-size: cover;
	background-position: top;
	color: #fff;
	padding: 3rem 0 0;
}

.equipe-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(19, 45, 110, 0.82);
	z-index: 0;
}

.equipe-hero__inner {
	position: relative;
	z-index: 1;
	max-width: var(--alpt-max);
	margin: 0 auto;
	padding: 0 var(--alpt-gutter) 3rem;
	text-align: left;
}

.equipe-hero__fil {
	font-size: 0.85rem;
	opacity: 0.8;
	margin-bottom: 1.5rem;
}

.equipe-hero__fil a {
	color: #fff;
	text-decoration: none;
}

.equipe-hero__titre {
	font-size: clamp(2rem, 5vw, 3rem);
	font-weight: 800;
	margin: 0 0 0.75rem;
}

.equipe-hero__soustitre {
	display: none;
	opacity: 0.9;
	font-size: 1rem;
	max-width: 700px;
	margin: 0 0 2rem;
}

.equipe-hero__soustitre.is-active {
	display: block;
}

.equipe-content {
	max-width: var(--alpt-max);
	margin: 0 auto;
	padding: 3rem var(--alpt-gutter) 4rem;
}

/* --- Grille & cartes membres --- */
.equipe__grille {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.5rem;
}

.membre-card {
	display: flex;
	align-items: stretch;
	background: var(--alpt-bg-light);
	border-radius: 16px;
	overflow: hidden;
	min-height: 220px;
}

.membre-card__photo {
	flex: 0 0 38%;
}

.membre-card__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.membre-card__contenu {
	flex: 1;
	padding: 2rem 2.25rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 1rem;
}

.membre-card h3 {
	color: var(--alpt-navy);
	font-size: 1.75rem;
	font-weight: 800;
	margin: 0;
}

.membre-card__fonction {
	display: inline-block;
	background: var(--alpt-yellow);
	color: var(--alpt-navy);
	font-weight: 800;
	font-size: 0.8rem;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	padding: 0.4rem 1.1rem;
	border-radius: 20px;
	width: fit-content;
	margin: 0;
}

.membre-card__diplome {
	line-height: 1.4;
	margin: 0;
}

.membre-card__diplome-label {
	display: block;
	color: var(--alpt-text-gray);
	font-size: 0.85rem;
	margin-bottom: 0.15rem;
}

.membre-card__diplome-valeur {
	display: block;
	color: var(--alpt-navy);
	font-weight: 800;
	font-size: 1.1rem;
}

.membre-card__bio {
	color: var(--alpt-navy);
	opacity: 0.75;
	font-size: 0.95rem;
	line-height: 1.5;
	margin: 0;
}

@media (max-width: 900px) {
	.equipe__grille {
		grid-template-columns: 1fr 1fr;
		gap: 0.75rem;
	}

	.membre-card {
		flex-direction: column;
	}

	.membre-card__photo {
		flex: none;
		width: 100%;
		aspect-ratio: 3 / 4;
	}

	.membre-card__contenu {
		padding: 0.75rem;
		justify-content: flex-start;
		gap: 0.5rem;
	}

	.membre-card h3 {
		font-size: 1.1rem;
	}

	.membre-card__fonction {
		font-size: 0.65rem;
		padding: 0.3rem 0.85rem;
	}

	.membre-card__diplome-label {
		font-size: 0.75rem;
	}

	.membre-card__diplome-valeur {
		font-size: 0.9rem;
	}
}

@media (max-width: 600px) {
	.equipe-hero {
		padding-top: 2rem;
	}
}

/* ===========================================================
   PAGE ENTRAÎNEMENTS (planning par jour)
   =========================================================== */
.entrainements-hero {
	position: relative;
	background-size: cover;
	background-position: top;
	color: #fff;
	padding: 3rem 0 0;
}

.entrainements-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(19, 45, 110, 0.82);
	z-index: 0;
}

.entrainements-hero__inner {
	position: relative;
	z-index: 1;
	max-width: var(--alpt-max);
	margin: 0 auto;
	padding: 0 var(--alpt-gutter) 3rem;
	text-align: left;
}

.entrainements-hero__fil {
	font-size: 0.85rem;
	opacity: 0.8;
	margin-bottom: 1.5rem;
}

.entrainements-hero__fil a {
	color: #fff;
	text-decoration: none;
}

.entrainements-hero__titre {
	font-size: clamp(2rem, 5vw, 3rem);
	font-weight: 800;
	margin: 0 0 0.75rem;
}

.entrainements-hero__soustitre {
	opacity: 0.9;
	font-size: 1rem;
	max-width: 700px;
	margin: 0 0 2rem;
}

.entrainements-content {
	max-width: var(--alpt-max);
	margin: 0 auto;
	padding: 3rem var(--alpt-gutter) 4rem;
}

@media (max-width: 600px) {
	.entrainements-hero {
		padding-top: 2rem;
	}
}

.entrainements-grille {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem 1.5rem;
}

.entrainement-jour__titre {
	color: var(--alpt-navy);
	font-family: "Sriracha", cursive;
	font-size: 1.4rem;
	font-weight: 800;
	margin: 0 0 1rem;
}

.entrainement-liste {
	background: #E8ECF6;
	border-radius: 20px;
	padding: 1.5rem 1.75rem;
	display: flex;
	flex-direction: column;
}

.entrainement-card {
	padding: 1.25rem 0;
	border-bottom: 1px dashed rgba(19, 45, 110, 0.25);
}

.entrainement-liste .entrainement-card:last-child {
	border-bottom: none;
	padding-bottom: 0;
}

.entrainement-liste .entrainement-card:first-child {
	padding-top: 0;
}

.entrainement-card__lieu,
.entrainement-card__heure {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	color: var(--alpt-navy);
	font-size: 0.9rem;
	font-weight: 600;
	margin: 0 0 0.4rem;
}

.entrainement-card__lieu svg,
.entrainement-card__heure svg {
	flex-shrink: 0;
	color: var(--alpt-navy);
	opacity: 0.7;
}

.entrainement-card__lieu a {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	color: inherit;
	text-decoration: none;
}

.entrainement-card__lieu a:hover {
	text-decoration: underline;
}

.entrainement-card__badge {
	display: block;
	width: fit-content;
	max-width: 100%;
	text-align: center;
	font-weight: 800;
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	padding: 0.55rem 1.25rem;
	border-radius: 20px;
	margin: 0.5rem 0 0.75rem;
}

.entrainement-card__badge--gradient {
	background: linear-gradient(90deg, #9795FE, #FECD95);
}

.entrainement-card__badge--velo-course {
	background: linear-gradient(90deg, #E47DDF, #FECD95);
}

.entrainement-card__badge--natation-velo {
	background: linear-gradient(90deg, #9795FE, #E47DDF);
}

.entrainement-card__badge--natation-velo-course {
	background: linear-gradient(90deg, #9795FE, #E47DDF, #FECD95);
}

.entrainement-card__badge--natation-course {
	background: linear-gradient(90deg, #9795FE, #FECD95);
}

.entrainement-card__niveau {
	color: var(--alpt-navy);
	font-size: 0.9rem;
	font-weight: 600;
	margin: 0 0 0.75rem;
}

.entrainement-card__coachs {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.entrainement-card__coachs-photos {
	display: flex;
}

.entrainement-card__coachs-photos img {
	width: 100px;
	height: 100px;
	border-radius: 10px;
	object-fit: cover;
	flex-shrink: 0;
	border: 2px solid #E8ECF6;
}

.entrainement-card__coachs-photos img + img {
	margin-left: -10px;
}

.entrainement-card__coachs-noms {
	display: flex;
	flex-direction: column;
	gap: 0.1rem;
}

.entrainement-card__coachs-noms span {
	color: var(--alpt-navy);
	font-size: 0.9rem;
	font-weight: 600;
}

@media (max-width: 900px) {
	.entrainements-grille {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 600px) {
	.entrainements-grille {
		grid-template-columns: 1fr;
		gap: 1.5rem;
	}

	.entrainement-jour__titre {
		margin: 0 0 1rem;
	}
}

.entrainements-infos {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
	margin-top: 3rem;
}

.entrainements-infos__carte {
	background: #fff;
	border: 1px solid #e4e8f2;
	border-radius: 16px;
	padding: 2rem;
}

.entrainements-infos__icone {
	display: inline-flex;
	color: var(--alpt-navy);
	margin-bottom: 1rem;
}

.entrainements-infos__icone .dashicons {
	width: 28px;
	height: 28px;
	font-size: 28px;
}

.entrainements-infos__icone img {
	width: 28px;
	height: 28px;
	object-fit: contain;
}

.entrainements-infos__titre {
	color: var(--alpt-navy);
	font-size: 1.1rem;
	font-weight: 800;
	margin: 0 0 0.5rem;
}

.entrainements-infos__texte {
	color: var(--alpt-text-gray);
	font-size: 0.9rem;
	line-height: 1.55;
	margin: 0;
}
.entrainements-infos__texte a {
	color: var(--alpt-navy);
	font-weight: 700;
	text-decoration: none;
	border-bottom: 2px solid var(--alpt-yellow);
	padding-bottom: 2px;
	transition: border-color 0.2s ease;
}

.entrainements-infos__texte a:hover {
	border-bottom-color: var(--alpt-navy);
}

@media (max-width: 900px) {
	.entrainements-infos {
		grid-template-columns: 1fr;
	}
}

/* ===========================================================
   PAGE PARTENAIRES
   =========================================================== */
.partenaires-hero {
	position: relative;
	background-size: cover;
	background-position: top;
	color: #fff;
	padding: 3rem 0 0;
}

.partenaires-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(19, 45, 110, 0.82);
	z-index: 0;
}

.partenaires-hero__inner {
	position: relative;
	z-index: 1;
	max-width: var(--alpt-max);
	margin: 0 auto;
	padding: 0 var(--alpt-gutter) 3rem;
	text-align: left;
}

.partenaires-hero__fil {
	font-size: 0.85rem;
	opacity: 0.8;
	margin-bottom: 1.5rem;
}

.partenaires-hero__fil a {
	color: #fff;
	text-decoration: none;
}

.partenaires-hero__titre {
	font-size: clamp(2rem, 5vw, 3rem);
	font-weight: 800;
	margin: 0 0 0.75rem;
}

.partenaires-hero__soustitre {
	opacity: 0.9;
	font-size: 1rem;
	max-width: 700px;
	margin: 0;
}

.partenaires-content {
	max-width: var(--alpt-max);
	margin: 0 auto;
	padding: 3rem var(--alpt-gutter) 4rem;
}

.partenaires__groupe {
	margin-bottom: 3rem;
}

.partenaires__groupe:last-child {
	margin-bottom: 0;
}

.partenaires__groupe h2 {
	color: var(--alpt-navy);
	font-size: clamp(1.5rem, 3vw, 2rem);
	font-weight: 800;
	margin: 0 0 2rem;
}

.partenaires__grille {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 2.5rem;
	align-items: center;
}

.partenaire-card {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 100px;
	text-decoration: none;
}

.partenaire-card img {
	max-width: 100%;
	max-height: 500px;
	object-fit: contain;
}

.partenaire-card__texte {
	color: var(--alpt-navy);
	font-weight: 700;
	font-size: 1rem;
	text-align: center;
}

@media (max-width: 900px) {
	.partenaires__grille {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 600px) {
	.partenaires-hero {
		padding: 2rem 0;
	}

	.partenaires__grille {
		grid-template-columns: repeat(2, 1fr);
		gap: 1.5rem;
	}
}

/* ===========================================================
   PAGE ADHÉSION & DONS
   =========================================================== */
.adhesion-hero {
	position: relative;
	background-size: cover;
	background-position: top;
	color: #fff;
	padding: 3rem 0 0;
}

.adhesion-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(19, 45, 110, 0.82);
	z-index: 0;
}

.adhesion-hero__inner {
	position: relative;
	z-index: 1;
	max-width: var(--alpt-max);
	margin: 0 auto;
	padding: 0 var(--alpt-gutter) 3rem;
	text-align: left;
}

.adhesion-hero__fil {
	font-size: 0.85rem;
	opacity: 0.8;
	margin-bottom: 1.5rem;
}

.adhesion-hero__fil a {
	color: #fff;
	text-decoration: none;
}

.adhesion-hero__titre {
	font-size: clamp(2rem, 5vw, 3rem);
	font-weight: 800;
	margin: 0 0 0.75rem;
}

.adhesion-hero__soustitre {
	opacity: 0.9;
	font-size: 1rem;
	max-width: 700px;
	margin: 0 0 2rem;
}

.adhesion-content {
	max-width: var(--alpt-max);
	margin: 0 auto;
	padding: 3rem var(--alpt-gutter) 4rem;
}

.adhesion-intro {
	color: var(--alpt-navy);
	font-size: 1rem;
	line-height: 1.6;
	max-width: 850px;
	margin: 0 0 3rem;
}

.adhesion-intro p {
	margin: 0 0 1.25rem;
}

.adhesion-intro p:last-child {
	margin-bottom: 0;
}

.adhesion-intro strong {
	font-weight: 800;
}

.adhesion-etapes__titre {
	color: var(--alpt-navy);
	font-size: clamp(1.5rem, 3vw, 2rem);
	font-weight: 800;
	margin: 0 0 2rem;
}

.adhesion-etapes {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
}

.adhesion-etape__carte {
	background: var(--alpt-bg-light);
	border-radius: 16px;
	padding: 2rem;
}

.adhesion-etape__numero {
	display: block;
	color: var(--alpt-yellow);
	font-family: "Libre Franklin", sans-serif;
	font-weight: 800;
	font-size: 2rem;
	line-height: 1;
	margin-bottom: 0.75rem;
}

.adhesion-etape__titre {
	color: var(--alpt-navy);
	font-size: 1.3rem;
	font-weight: 800;
	margin: 0 0 0.75rem;
}

.adhesion-etape__texte p {
	color: var(--alpt-text-gray);
	font-size: 1rem;
	line-height: 1.6;
	margin: 0 0 1rem;
}

.adhesion-etape__texte ul,
.adhesion-etape__texte ol {
	color: var(--alpt-text-gray);
	font-size: 1rem;
	line-height: 1.6;
	margin: 0 0 1rem;
	padding-left: 1.25rem;
}

.adhesion-etape__texte li {
	margin-bottom: 0.4rem;
}

.adhesion-etape__texte a {
	color: var(--alpt-navy);
}

.adhesion-etape__lien {
	display: inline-block;
	color: var(--alpt-navy);
	font-weight: 700;
	font-size: 0.9rem;
	font-family: "Manrope", sans-serif;
	text-decoration: none;
	border-bottom: 2px solid var(--alpt-yellow);
	padding-bottom: 2px;
	transition: border-color 0.2s ease;
}

.adhesion-etape__lien:hover {
	border-bottom-color: var(--alpt-navy);
}

.adhesion-etape__cta {
	margin-top: 0.5rem;
}

.adhesion-rentree {
	display: flex;
	align-items: center;
	gap: 2rem;
	margin-top: 3rem;
	padding: 2rem;
	background: var(--alpt-bg-light);
	border-radius: 16px;
}

.adhesion-rentree__logo {
	flex: 0 0 200px;
}

.adhesion-rentree__logo img {
	display: block;
	width: 100%;
	height: auto;
}

.adhesion-rentree__titre {
	color: var(--alpt-navy);
	font-size: 1.3rem;
	font-weight: 800;
	margin: 0 0 0.75rem;
}

.adhesion-rentree__texte p {
	color: var(--alpt-text-gray);
	font-size: 1rem;
	line-height: 1.6;
	margin: 0 0 0.75rem;
}

.adhesion-rentree__texte strong {
	font-weight: 800;
}

.adhesion-rentree__cta {
	margin-top: 0.5rem;
}

.don-bloc {
	display: grid;
	grid-template-columns: 1fr minmax(280px, 380px);
	gap: 2.5rem;
	align-items: start;
}

.don-bloc__image {
	order: 2;
}

.don-bloc__contenu {
	order: 1;
}

.don-bloc__image img {
	display: block;
	width: 100%;
	border-radius: 16px;
	object-fit: cover;
}

.don-bloc__titre {
	color: var(--alpt-navy);
	font-size: clamp(1.6rem, 3vw, 2.2rem);
	font-weight: 800;
	margin: 0 0 1rem;
}

.don-bloc__intro {
	color: var(--alpt-navy);
	font-size: 1rem;
	line-height: 1.6;
	margin: 0 0 1.5rem;
}

.don-bloc__intro p {
	margin: 0 0 0.5rem;
}

.don-bloc__intro strong {
	font-weight: 800;
}

.don-bloc__encart {
	background: var(--alpt-bg-light);
	border-radius: 16px;
	padding: 1.75rem 2rem;
}

.don-bloc__encart-texte {
	color: var(--alpt-navy);
	font-size: 0.95rem;
	line-height: 1.6;
	margin: 0 0 1.25rem;
}

.don-bloc__encart-texte strong {
	font-weight: 800;
}

@media (max-width: 900px) {
	.don-bloc {
		grid-template-columns: 1fr;
	}

	.don-bloc__image {
		order: 1;
		width: 100%;
	}

	.don-bloc__contenu {
		order: 2;
	}

	.don-bloc__image img {
		aspect-ratio: 2 / 1;
		object-fit: cover;
	}
}

@media (max-width: 900px) {
	.adhesion-etapes {
		grid-template-columns: 1fr;
	}

	.adhesion-rentree {
		flex-direction: column;
		align-items: flex-start;
		gap: 1.25rem;
		padding: 1.5rem;
	}

	.adhesion-rentree__logo {
		flex-basis: auto;
		width: 160px;
	}
	.adhesion-content {
	padding: 2rem var(--alpt-gutter) 0rem;
}
	
}

@media (max-width: 600px) {
	.adhesion-hero {
		padding-top: 2rem;
	}
}

/* ===========================================================
   PAGE CONTACT
   =========================================================== */
.contact-hero {
	position: relative;
	background-size: cover;
	background-position: top;
	color: #fff;
	padding: 3rem 0 0;
}

.contact-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(19, 45, 110, 0.82);
	z-index: 0;
}

.contact-hero__inner {
	position: relative;
	z-index: 1;
	max-width: var(--alpt-max);
	margin: 0 auto;
	padding: 0 var(--alpt-gutter) 3rem;
	text-align: left;
}

.contact-hero__fil {
	font-size: 0.85rem;
	opacity: 0.8;
	margin-bottom: 1.5rem;
}

.contact-hero__fil a {
	color: #fff;
	text-decoration: none;
}

.contact-hero__titre {
	font-size: clamp(2rem, 5vw, 3rem);
	font-weight: 800;
	margin: 0 0 0.75rem;
}

.contact-hero__soustitre {
	opacity: 0.9;
	font-size: 1rem;
	max-width: 700px;
	margin: 0;
}

@media (max-width: 600px) {
	.contact-hero {
		padding-top: 2rem;
	}
}

/* --- Section "Nous contacter" --- */
.contact-content {
	max-width: var(--alpt-max);
	margin: 0 auto;
	padding: 4rem var(--alpt-gutter);
}

.contact-grille {
	display: grid;
	grid-template-columns: 1fr 1.3fr;
	gap: 3rem;
	align-items: start;
}

.contact-infos {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.contact-infos__ligne {
	display: flex;
	align-items: flex-start;
	gap: 0.85rem;
	color: var(--alpt-navy);
	font-weight: 700;
	margin: 0;
}

.contact-infos__ligne a {
	color: var(--alpt-navy);
	text-decoration: none;
}

.contact-infos__ligne a:hover {
	text-decoration: underline;
}

.contact-infos__icone {
	display: inline-flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	color: var(--alpt-yellow);
}

.contact-form-wrap {
	background: #fff;
	border: 1px solid #e4e8f2;
	border-radius: 16px;
	padding: 2rem;
}

.contact-form {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

.contact-form label {
	display: block;
	color: var(--alpt-navy);
	font-weight: 600;
	font-size: 0.9rem;
	margin-bottom: 0.5rem;
}

.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form textarea {
	width: 100%;
	border: 1px solid #d7deec;
	border-radius: 10px;
	padding: 0.75rem 1rem;
	font-family: "Manrope", sans-serif;
	font-size: 0.95rem;
	color: var(--alpt-navy);
	background: #fff;
	box-sizing: border-box;
}

.contact-form textarea {
	resize: vertical;
	min-height: 120px;
}

.contact-form__rgpd {
	margin: 0;
	font-size: 0.82rem;
	line-height: 1.5;
	color: var(--alpt-navy);
}

.contact-form__rgpd a {
	color: var(--alpt-navy);
	text-decoration: underline;
}

.contact-form input:focus,
.contact-form textarea:focus {
	outline: none;
	border-color: var(--alpt-navy);
}

.contact-form button.btn {
	align-self: flex-start;
	margin-top: 0.5rem;
}

/* Honeypot : masqué visuellement, laissé accessible aux robots seulement */
.contact-form__honeypot {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.contact-form__erreurs {
	background: #fdecea;
	border: 1px solid #f5c2c0;
	border-radius: 10px;
	padding: 1rem 1.25rem;
	margin-bottom: 1.5rem;
}

.contact-form__erreurs p {
	color: #b3261e;
	font-size: 0.9rem;
	margin: 0;
}

.contact-form__succes {
	background: #eaf7ee;
	border: 1px solid #b9e3c6;
	border-radius: 10px;
	padding: 1.25rem 1.5rem;
	color: #1e6b3a;
	font-weight: 600;
}

@media (max-width: 900px) {
	.contact-grille {
		grid-template-columns: 1fr;
		gap: 2rem;
	}
}

/* ===========================================================
   PAGE 404
   =========================================================== */
.erreur-404 {
	background: var(--alpt-bg-light);
	overflow: hidden;
}

.erreur-404__inner {
	max-width: var(--alpt-max);
	margin: 0 auto;
	padding: 5rem var(--alpt-gutter);
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	gap: 3rem;
}

.erreur-404__contenu .badge {
	margin-bottom: 1.5rem;
}

.erreur-404__chiffre {
	color: var(--alpt-navy);
	font-family: "Libre Franklin", sans-serif;
	font-weight: 800;
	font-size: clamp(4rem, 10vw, 7rem);
	line-height: 1;
	margin: 0 0 1rem;
}

.erreur-404__titre {
	color: var(--alpt-navy);
	font-family: "Sriracha", cursive;
	font-weight: 400;
	font-size: clamp(1.5rem, 3vw, 2rem);
	line-height: 1.4;
	margin: 0 0 1.5rem;
	text-decoration: underline;
	text-decoration-color: var(--alpt-yellow);
	text-decoration-thickness: 3px;
	text-underline-offset: 6px;
}

.erreur-404__texte {
	color: var(--alpt-text-gray);
	font-size: 1rem;
	line-height: 1.6;
	max-width: 420px;
	margin: 0 0 2rem;
}

.erreur-404__ctas {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 1rem;
}

.erreur-404__lien-secondaire {
	color: var(--alpt-navy);
	font-size: 0.95rem;
	margin: 0;
}

.erreur-404__lien-secondaire a {
	color: var(--alpt-navy);
	font-weight: 700;
	text-decoration: none;
	border-bottom: 2px solid var(--alpt-yellow);
	padding-bottom: 2px;
	transition: border-color 0.2s ease;
}

.erreur-404__lien-secondaire a:hover {
	border-bottom-color: var(--alpt-navy);
}

.erreur-404__image {
	position: relative;
	aspect-ratio: 4 / 3;
	background-size: cover;
	background-position: center;
	border-radius: 20px;
	overflow: hidden;
}

.erreur-404__note {
	position: absolute;
	top: 1.5rem;
	right: 1.5rem;
	background: #fff;
	color: var(--alpt-navy);
	font-family: "Sriracha", cursive;
	font-size: 0.9rem;
	line-height: 1.3;
	padding: 0.6rem 1rem;
	border-radius: 12px;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
	max-width: 180px;
	text-align: center;
}

@media (max-width: 900px) {
	.erreur-404__inner {
		grid-template-columns: 1fr;
	}

	.erreur-404__image {
		order: -1;
		aspect-ratio: 16 / 9;
	}
}

@media (max-width: 600px) {
	.erreur-404__inner {
		padding: 3rem var(--alpt-gutter);
	}

	.erreur-404__ctas {
		width: 100%;
	}
}

/* ===========================================================
   FOOTER
   =========================================================== */
.site-footer {
	background: var(--alpt-navy);
	color: #fff;
	padding: 3rem var(--alpt-gutter) 0;
}

.site-footer__inner {
	max-width: var(--alpt-max);
	margin: 0 auto;
}

.site-footer__top {
	display: flex;
	flex-wrap: wrap;
	gap: 2rem;
	align-items: flex-start;
	justify-content: space-between;
	padding-bottom: 2rem;
}

.site-footer__brand img {
	max-height: 90px;
	width: auto;
	margin-bottom: 0.75rem;
}

.site-footer__copyright {
	font-size: 0.85rem;
	opacity: 0.85;
	margin: 0;
	font-family: "Manrope", sans-serif;
}

#nos-sections,
#faire-un-don {
	scroll-margin-top: 550px;
}

/* Titre de colonne : le <h3> enveloppe le bouton (HTML valide) */
.site-footer__col-titre {
	margin: 0;
	padding: 0;
}

.site-footer__col-toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	background: none;
	border: none;
	padding: 0;
	margin: 0 0 1rem;
	cursor: default;
	color: #fff;
	width: 100%;
	text-align: left;
	font-family: "Manrope", sans-serif;
	font-size: 0.85rem;
	font-weight: 800;
	line-height: inherit;
	letter-spacing: 0.03em;
	text-transform: uppercase;
}

.site-footer__chevron {
	display: none;
	flex-shrink: 0;
	transition: transform 0.25s ease;
}

.site-footer__col-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
}

.site-footer__col a {
	color: #fff;
	opacity: 0.85;
	text-decoration: none;
	font-size: 0.9rem;
	font-family: "Manrope", sans-serif;
}

.site-footer__col a:hover {
	opacity: 1;
	color: var(--alpt-yellow);
}

.site-footer__cta {
	position: relative;
	color: var(--alpt-yellow);
	font-weight: 700;
	text-decoration: none;
	font-size: 0.9rem;
	font-family: "Manrope", sans-serif;
	white-space: nowrap;
	padding-bottom: 6px;
}

.site-footer__cta::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 0;
	height: 2px;
	background: var(--alpt-yellow);
	transition: width 0.25s ease;
}

.site-footer__cta:hover::after {
	width: 100%;
}
@media (min-width: 901px) {
	.site-footer__cta {
		margin-top: 0.7rem;
	}
}

.site-footer__sep {
	border: none;
	border-top: 1px solid rgba(255, 255, 255, 0.3);
	margin: 0;
}

.site-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.5rem 0;
	font-size: 0.85rem;
	font-family: "Manrope", sans-serif;
}

.site-footer__mentions {
	margin: 0;
	opacity: 0.8;
}

.site-footer__mentions a {
	color: #fff;
	text-decoration: underline;
}

.site-footer__social a {
	color: #fff;
	display: inline-flex;
	padding: 0.4rem;
}

@media (max-width: 900px) {
	.site-footer__top {
		flex-direction: column;
		text-align: center;
	}

	.site-footer__brand img {
		margin-left: auto;
		margin-right: auto;
	}

	.site-footer__col {
		border-bottom: 1px solid rgba(255, 255, 255, 0.15);
		padding: 1rem 0;
		width: 100%;
	}

	.site-footer__col-toggle {
		margin-bottom: 0;
		cursor: pointer;
	}

	.site-footer__chevron {
		display: inline-block;
	}

	.site-footer__col-list {
		display: none;
		padding-top: 0.5rem;
		text-align: left;
	}

	.site-footer__col.is-open .site-footer__col-list {
		display: flex;
	}

	.site-footer__col.is-open .site-footer__chevron {
		transform: rotate(180deg);
	}

	.site-footer__inner {
		display: flex;
		flex-direction: column;
		align-items: center;
		text-align: center;
	}

	.site-footer__top,
	.site-footer__bottom,
	.site-footer__brand {
		display: contents;
	}

	.site-footer__brand img {
		order: 1;
	}

	.site-footer__col--club { order: 2; }
	.site-footer__col--pratiquer { order: 3; }
	.site-footer__col--rejoindre { order: 4; }

	.site-footer__cta {
		order: 5;
		margin-top: 0.5rem;
		align-self: flex-start;
		font-size: 1.05rem;
		padding: 0.75rem 0;
	}

	.site-footer__social {
		order: 6;
		justify-content: center;
		margin-top: 1rem;
	}

	.site-footer__sep {
		order: 7;
		width: 100%;
		margin-top: 1.5rem;
	}

	.site-footer__mentions {
		order: 8;
		margin-top: 1.5rem;
	}

	.site-footer__copyright {
		order: 9;
		margin-top: 1rem;
	}
}

/* ===========================================================
   ACCESSIBILITÉ
   =========================================================== */
/* Cible du lien "Aller au contenu" : pas de cadre autour de toute la page */
#primary:focus {
	outline: none;
}

/* Pages légales (page sans gabarit) */
body.page-template-default .site-main {
	max-width: 1300px;
	margin: 0 auto;
	padding: 3rem 1.25rem 4rem;
}
body.page-template-default .entry-title {
	margin: 0 0 2rem;
	font-size: clamp(2rem, 5vw, 2.75rem);
	line-height: 1.15;
	color: var(--alpt-navy);
}
body.page-template-default .entry-content h2 {
	margin: 2.25rem 0 0.75rem;
	font-size: 1.35rem;
	line-height: 1.25;
	color: var(--alpt-navy);
}
body.page-template-default .entry-content p,
body.page-template-default .entry-content li {
	font-size: 1rem;
	line-height: 1.7;
}
body.page-template-default .entry-content ul {
	margin: 0.75rem 0 1rem;
	padding-left: 1.25rem;
}
body.page-template-default .entry-content a {
	color: var(--alpt-blue);
	text-decoration: underline;
}
body.page-template-default .entry-footer {
	margin-top: 2.5rem;
	font-size: 0.85rem;
}