/* =========================================================================
   Aviron Bellegarde Valserhone — charte et page d'accueil
   Couleurs officielles : noir, jaune, vert sapin + blanc dominant.
   Style volontairement sobre et classique (Roboto, peu d'animations).
   ========================================================================= */

:root {
	--abv-noir: #14110d;
	--abv-encre: #23302a;          /* texte courant */
	--abv-vert: #1f5a40;           /* vert sapin principal */
	--abv-vert-fonce: #143f2d;
	--abv-vert-clair: #2e7d5b;
	--abv-jaune: #f3c012;          /* jaune du logo */
	--abv-jaune-fonce: #d9a900;
	--abv-blanc: #ffffff;
	--abv-creme: #f3f5f2;          /* fond alterne tres clair */
	--abv-gris: #566159;

	--abv-police: "DM Sans", "Helvetica Neue", Arial, sans-serif;

	--abv-max: 1160px;
	--abv-rayon: 4px;
}

/* ---- Base ------------------------------------------------------------- */
body.home {
	font-family: var(--abv-police);
	color: var(--abv-encre);
	background: var(--abv-blanc);
}
#abv-front h1,
#abv-front h2,
#abv-front h3 {
	font-family: var(--abv-police);
	color: var(--abv-noir);
	line-height: 1.15;
	margin: 0 0 0.45em;
}
#abv-front p { line-height: 1.7; }

.abv-container {
	width: 100%;
	max-width: var(--abv-max);
	margin-inline: auto;
	padding-inline: 22px;
}

/* Pleine largeur (casse le conteneur OceanWP) */
.abv-full {
	position: relative;
	left: 50%;
	right: 50%;
	width: 100vw;
	margin-left: -50vw;
	margin-right: -50vw;
}

body.home #content .container,
body.home #main .container { max-width: 100%; padding: 0; }
body.home #content { padding: 0 !important; }
body.home .site-content-inner { padding: 0 !important; }

/* ---- Boutons (sobres, legerement arrondis) --------------------------- */
.abv-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--abv-police);
	font-weight: 700;
	font-size: 16px;
	padding: 13px 26px;
	border-radius: var(--abv-rayon);
	text-decoration: none;
	border: 2px solid transparent;
	cursor: pointer;
	transition: background-color .18s ease, color .18s ease, border-color .18s ease;
}
.abv-btn--yellow { background: var(--abv-jaune); color: var(--abv-noir); }
.abv-btn--yellow:hover { background: var(--abv-jaune-fonce); color: var(--abv-noir); }
.abv-btn--green { background: var(--abv-vert); color: #fff; }
.abv-btn--green:hover { background: var(--abv-vert-fonce); color: #fff; }
.abv-btn--ghost { background: transparent; color: #fff; border-color: rgba(255,255,255,.8); }
.abv-btn--ghost:hover { background: #fff; color: var(--abv-vert-fonce); }

/* ---- HERO (image de fond fixe sur desktop) --------------------------- */
.abv-hero {
	min-height: 72vh;
	display: flex;
	align-items: center;
	background-size: cover;
	background-position: center center;
	background-attachment: scroll;
	position: relative;
	color: #fff;
	overflow: hidden;
}
.abv-hero__overlay {
	position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(20,63,45,.28) 0%, rgba(20,17,13,.74) 100%);
}
.abv-hero__inner { position: relative; z-index: 2; max-width: 760px; }
.abv-hero__eyebrow {
	font-size: 17px;
	color: var(--abv-jaune);
	font-weight: 500;
	margin: 0 0 12px;
}
.abv-hero__title {
	color: #fff !important;
	font-size: clamp(36px, 5.2vw, 60px);
	font-weight: 900;
	text-shadow: 0 2px 18px rgba(0,0,0,.4);
}
.abv-hero__sub {
	font-size: clamp(17px, 2vw, 21px);
	max-width: 620px;
	margin: 6px 0 30px;
	color: rgba(255,255,255,.93);
}
.abv-hero__cta { display: flex; gap: 14px; flex-wrap: wrap; }
.abv-hero__scroll {
	position: absolute; bottom: 24px; left: 50%; transform: translateX(-50%);
	z-index: 2; color: #fff; opacity: .8; text-decoration: none;
}

/* ---- Bande accroche / faits ------------------------------------------ */
.abv-strip { background: var(--abv-vert); color: #fff; }
.abv-strip__grid {
	display: grid; grid-template-columns: repeat(4, 1fr);
	gap: 10px; padding: 26px 22px; text-align: center;
}
.abv-strip__item strong {
	display: block; font-size: 22px; font-weight: 700; color: var(--abv-jaune); line-height: 1.2;
}
.abv-strip__item span { font-size: 15px; color: rgba(255,255,255,.92); }

/* ---- Sections generiques --------------------------------------------- */
.abv-section { padding: 50px 0; }
.abv-section--cream { background: var(--abv-creme); }
.abv-h2 { font-size: clamp(26px, 3.2vw, 36px); font-weight: 900; }
.abv-section__head { max-width: 720px; margin-bottom: 26px; }
.abv-section__head p { color: var(--abv-gris); font-size: 17px; margin: 0; }
.abv-title-rule { width: 56px; height: 4px; background: var(--abv-jaune); margin-bottom: 14px; }

/* ---- Deux encarts (Decouvrir + A la une) ----------------------------- */
.abv-duo { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: stretch; }
.abv-box { border: 1px solid #e3e8e3; border-radius: var(--abv-rayon); padding: 30px 32px; background: #fff; }
.abv-box h2 { font-size: 25px; font-weight: 900; margin: 0 0 12px; }
.abv-box p { font-size: 16px; line-height: 1.6; margin: 0 0 12px; }
.abv-box__cta { margin: 20px 0 0 !important; }
.abv-box--green { background: var(--abv-vert); border-color: var(--abv-vert); color: #fff; }
.abv-box--green h2 { color: #fff; }
.abv-box--green p { color: rgba(255,255,255,.94); }
.abv-box--green strong { color: var(--abv-jaune); }
.abv-box--green p a:not(.abv-btn) { color: var(--abv-jaune); text-decoration: underline; }
.abv-box--green p a:not(.abv-btn):hover { color: #fff; }
.abv-box--accent { border-top: 4px solid var(--abv-jaune); }
.abv-box__kicker { font-size: 13px; letter-spacing: 1.2px; text-transform: uppercase; color: var(--abv-vert-clair); font-weight: 700; margin: 0 0 4px !important; }
.abv-box__date { font-size: 13px; color: var(--abv-gris); }
.abv-link { color: var(--abv-vert); font-weight: 700; text-decoration: none; }
.abv-link:hover { color: var(--abv-vert-fonce); text-decoration: underline; }

/* Cartes "pourquoi l'aviron" — plates, sobres */
.abv-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.abv-card {
	background: #fff; border: 1px solid #e3e8e3; border-top: 4px solid var(--abv-vert);
	border-radius: var(--abv-rayon); padding: 26px 24px;
}
.abv-card h3 { font-size: 20px; font-weight: 700; color: var(--abv-vert-fonce); }
.abv-card p { color: var(--abv-gris); font-size: 15.5px; margin: 0; }

/* Split image + texte */
.abv-split { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 50px; }
.abv-split__media { border-radius: var(--abv-rayon); overflow: hidden; aspect-ratio: 4/3; border: 1px solid #e3e8e3; }
.abv-split__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.abv-split__body h2 { font-size: clamp(25px,3vw,34px); font-weight: 900; }
.abv-split__body p { color: var(--abv-gris); font-size: 17px; }
.abv-list { list-style: none; margin: 18px 0 0; padding: 0; }
.abv-list li { position: relative; padding: 8px 0 8px 26px; border-bottom: 1px solid #e3e8e3; }
.abv-list li::before { content:""; position:absolute; left:0; top:15px; width: 10px; height: 10px; background: var(--abv-jaune); }

/* Actualites */
.abv-news-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.abv-news-card { background:#fff; border: 1px solid #e3e8e3; border-radius: var(--abv-rayon); overflow:hidden; display:flex; flex-direction:column; }
.abv-news-card__media { aspect-ratio: 16/10; background: var(--abv-vert) center/cover; }
.abv-news-card__body { padding: 18px 20px 22px; display:flex; flex-direction:column; gap:6px; flex:1; }
.abv-news-card__date { font-size: 13px; color: var(--abv-vert-clair); font-weight:500; }
.abv-news-card h3 { font-size: 20px; font-weight: 700; }
.abv-news-card h3 a { color: var(--abv-noir); text-decoration: none; }
.abv-news-card h3 a:hover { color: var(--abv-vert); }
.abv-news-card p { color: var(--abv-gris); font-size: 15px; margin: 0; }
.abv-news-empty { background:#fff; border:1px solid #e3e8e3; border-radius: var(--abv-rayon); padding: 36px; text-align:center; color: var(--abv-gris); }

/* CTA essai — panneau centre avec du blanc autour (ne coupe plus le site) */
.abv-cta-wrap { background: #fff; padding: 8px 0 78px; }
.abv-cta { background: var(--abv-noir); color:#fff; border-radius: 10px; overflow: hidden; }
.abv-cta__inner { display:flex; align-items:center; justify-content:space-between; gap:30px; padding: 44px 44px; flex-wrap: wrap; }
.abv-cta h2 { color:#fff; font-size: clamp(24px,3vw,34px); font-weight: 900; margin:0; }
.abv-cta p { color: rgba(255,255,255,.82); margin: 8px 0 0; font-size: 17px; }
.abv-cta__actions { display:flex; gap:12px; flex-wrap:wrap; }

/* ---- Bandes parallax (texte par-dessus l'image qui reste fixe) -------- */
.abv-parallax {
	position: relative;
	background-size: cover;
	background-position: center center;
	background-attachment: scroll;
	color: #fff;
	text-align: center;
}
.abv-parallax__overlay { position: absolute; inset: 0; background: rgba(18,38,28,.56); }
.abv-parallax__inner { position: relative; z-index: 2; max-width: 820px; padding-block: 82px; }
.abv-parallax__lead { font-size: clamp(24px, 3.4vw, 38px); font-weight: 900; color:#fff; margin: 0 0 14px; line-height: 1.2; }
.abv-parallax__text { font-size: clamp(16px, 1.6vw, 19px); color: rgba(255,255,255,.92); margin: 0; }
@media (min-width: 1025px) {
	.abv-parallax { background-attachment: fixed; }
}
@media (max-width: 600px) {
	.abv-parallax__inner { padding-block: 80px; }
}

/* ---- Section "Decouvrez l'aviron" ------------------------------------ */
.abv-lead p { color: var(--abv-gris); font-size: 18px; max-width: 760px; }
.abv-lead p strong { color: var(--abv-encre); }

/* ---- Grille photos environnement ------------------------------------- */
.abv-env-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.abv-env-grid figure { margin: 0; border-radius: var(--abv-rayon); overflow: hidden; border: 1px solid #e3e8e3; aspect-ratio: 4/3; }
.abv-env-grid img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Infos pratiques */
.abv-info { display: flex; flex-wrap: wrap; gap: 16px 40px; margin-top: 26px; padding-top: 22px; border-top: 1px solid #e3e8e3; }
.abv-info > div { font-size: 15.5px; color: var(--abv-encre); }
.abv-info strong { display: block; color: var(--abv-vert-fonce); font-size: 13px; letter-spacing: .4px; text-transform: uppercase; margin-bottom: 4px; }
.abv-info a { color: var(--abv-vert); }

/* ---- Partenaires ----------------------------------------------------- */
.abv-partners { background: #fff; border-top: 1px solid #e9ede9; padding: 48px 0 66px; }
/* Valserhône (commune) : partenaire principal, en vedette au-dessus */
.abv-partners__featured { text-align: center; padding-bottom: 30px; margin-bottom: 28px; border-bottom: 1px solid #e9ede9; }
.abv-partners__label { font-size: 13px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--abv-vert-clair); font-weight: 700; margin: 0 0 14px; }
.abv-partners__featured img { max-height: 104px; width: auto; display: inline-block; }
.abv-partners h2 { text-align: center; font-size: 14px; font-weight: 500; color: var(--abv-gris); letter-spacing: 1.5px; text-transform: uppercase; margin-bottom: 28px; }
.abv-partners__row { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 28px 46px; }
.abv-partners__row img { max-height: 58px; width: auto; display: block; }

/* ---- Retouches header / menu OceanWP --------------------------------- */
/* Header colle en haut, toujours blanc opaque */
#site-header {
	position: -webkit-sticky;
	position: sticky;
	top: 0;
	z-index: 999;
	background-color: #fff !important;
	box-shadow: 0 2px 16px -12px rgba(20,40,30,.5);
}
#site-header #site-logo #site-logo-inner a img,
#site-header .custom-logo-link img,
#site-header img.custom-logo {
	max-height: 84px;
	width: auto;
	transition: max-height .28s ease;
}
/* Logo rétréci une fois qu'on a commencé à défiler (reste dans la barre) */
#site-header.abv-header-small #site-logo #site-logo-inner a img,
#site-header.abv-header-small .custom-logo-link img,
#site-header.abv-header-small img.custom-logo {
	max-height: 52px;
}
/* En-tête en rangée flex : logo et menu parfaitement centrés verticalement,
   la hauteur de la barre suit le logo (plus grand en haut, compact au défilement). */
#site-header .container:has(> #site-logo) {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	padding-block: 12px;
}
#site-header #site-logo,
#site-header #site-navigation-wrap { float: none !important; height: auto !important; }
#site-header #site-logo,
#site-header #site-logo-inner,
#site-header #site-logo-inner a,
#site-header .custom-logo-link { display: flex; align-items: center; }
#site-header.abv-header-small .container:has(> #site-logo) { padding-block: 6px; }

/* Barre de défilement toujours présente -> plus de décalage du menu entre les pages */
html { overflow-y: scroll; }

/* Menu calé à droite (logo à gauche) ; icône menu-mobile masquée sur desktop */
#site-header .container:has(> #site-logo) { justify-content: flex-start; }
#site-header #site-logo { margin-right: auto; }
@media (min-width: 960px) { #site-header .oceanwp-mobile-menu-icon { display: none !important; } }

/* Icône de recherche plus épaisse */
#site-header .icon-magnifier { font-size: 19px; -webkit-text-stroke: 0.7px currentColor; }

/* Survol et soulignement du menu en charte (plus de bleu OceanWP) */
#site-header .main-menu > li > a::before,
#site-header .main-menu > li > a::after { background-color: var(--abv-jaune) !important; }

/* Page active surlignée (on voit où on est) */
#site-header .main-menu > li.current-menu-item > a,
#site-header .main-menu > li.current_page_item > a,
#site-header .main-menu > li.current-menu-parent > a,
#site-header .main-menu > li.current_page_parent > a,
#site-header .main-menu > li.current-menu-ancestor > a {
	color: var(--abv-vert) !important;
	box-shadow: inset 0 -3px 0 var(--abv-jaune);
}

/* Titres de menu tels quels (pas de majuscule forcée sur chaque mot) */
#site-header .main-menu li a { text-transform: none; }

/* Mobile : bouton menu (hamburger) calé à droite */
@media (max-width: 959px) {
	#site-header #site-logo { margin-right: 0; }
	#site-header .oceanwp-mobile-menu-icon { margin-left: auto; }
}
#site-header .main-menu > li > a {
	font-family: var(--abv-police);
	font-weight: 700;
	color: var(--abv-encre);
}
#site-header .main-menu > li > a:hover { color: var(--abv-vert); }

/* ---- Bandeau de titre des pages intérieures (vert sapin) ------------- */
.page-header {
	background: var(--abv-vert) !important;
	border: 0 !important;
	padding: 48px 0 !important;
}
.page-header .page-header-inner { display: block; }
.page-header .page-header-title {
	color: #fff !important;
	font-family: var(--abv-police);
	font-weight: 900;
	font-size: clamp(28px, 4vw, 40px);
	margin: 0;
	float: none !important;
	display: block;
}
/* Fil d'Ariane : toujours SOUS le titre, aligné à gauche */
.page-header .site-breadcrumbs {
	position: static !important;
	float: none !important;
	display: block !important;
	width: auto !important;
	text-align: left !important;
	transform: none !important;
	top: auto !important;
	right: auto !important;
	margin: 12px 0 0 !important;
	font-size: 14px;
}
.page-header .site-breadcrumbs,
.page-header .site-breadcrumbs a { color: rgba(255,255,255,.9) !important; }
.page-header .site-breadcrumbs a { text-decoration: none; }
.page-header .site-breadcrumbs a:hover { color: #fff !important; text-decoration: underline; }
/* Texte courant des pages intérieures en Roboto */
.single .entry, .page:not(.home) .entry, .content-area .entry-content { font-family: var(--abv-police); }

/* ---- Contenu des pages intérieures (largeur lisible, frise) ---------- */
.abv-page { max-width: 880px; margin: 0 auto; }
.abv-page__intro { font-size: 20px; line-height: 1.6; color: var(--abv-encre); margin: 0 0 38px; }
.abv-page h2 { font-family: var(--abv-police); font-weight: 900; color: var(--abv-noir); font-size: 26px; margin: 34px 0 14px; }
.abv-page h2:first-child { margin-top: 0; }
.abv-page p { color: var(--abv-encre); line-height: 1.7; }
/* Deux colonnes (ex. comité / encadrement) */
.abv-cols2 { display: grid; grid-template-columns: 1fr 1fr; gap: 44px; }
.abv-people { list-style: none; margin: 14px 0 0; padding: 0; }
.abv-people li { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 10px 0; border-bottom: 1px solid #eef1ee; }
.abv-people strong { color: var(--abv-encre); font-weight: 700; }
.abv-people span { color: var(--abv-gris); font-size: 14.5px; text-align: right; white-space: nowrap; }
@media (max-width: 700px) { .abv-cols2 { grid-template-columns: 1fr; gap: 24px; } }

/* Contact : formulaire + coordonnées */
.abv-contact-wrap { display: grid; grid-template-columns: 1.35fr 1fr; gap: 46px; align-items: start; margin-top: 8px; }
.abv-contact-info { background: var(--abv-creme); border-left: 3px solid var(--abv-vert); padding: 24px 28px; }
.abv-contact-info h2 { margin-top: 0; }
.abv-contact-info p { margin: 0 0 18px; line-height: 1.6; }
.abv-contact-info a { color: var(--abv-vert); }
.abv-contact label { display: block; font-weight: 500; color: var(--abv-encre); margin-bottom: 18px; font-size: 15px; }
.abv-contact label span { color: #c0392b; }
.abv-contact input, .abv-contact select, .abv-contact textarea { display: block; width: 100%; margin-top: 6px; padding: 11px 13px; border: 1px solid #d6dcd6; border-radius: var(--abv-rayon); font: inherit; font-size: 15px; background: #fff; color: var(--abv-encre); }
.abv-contact input:focus, .abv-contact select:focus, .abv-contact textarea:focus { outline: none; border-color: var(--abv-vert); box-shadow: 0 0 0 3px rgba(31,90,64,.14); }
.abv-contact textarea { resize: vertical; min-height: 130px; }
.abv-contact__row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.abv-contact__submit { margin: 4px 0 0; }
.abv-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.abv-contact-notice { padding: 14px 18px; border-radius: var(--abv-rayon); margin: 0 0 24px; font-weight: 500; }
.abv-contact-notice--ok { background: #e6f4ea; border: 1px solid var(--abv-vert); color: var(--abv-noir); }
.abv-contact-notice--err { background: #fdecea; border: 1px solid #c0392b; color: #7a1d12; }
@media (max-width: 820px) { .abv-contact-wrap { grid-template-columns: 1fr; gap: 30px; } .abv-contact__row { grid-template-columns: 1fr; gap: 0; } }

/* Hub « Le club » : cartes vers les rubriques */
.abv-hub { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; margin: 14px 0 10px; }
.abv-hub__card { display: block; text-decoration: none !important; border: 1px solid #e3e8e3; border-left: 4px solid var(--abv-vert); border-radius: var(--abv-rayon); padding: 20px 22px; background: #fff; transition: box-shadow .2s ease, transform .2s ease; }
.abv-hub__card:hover { box-shadow: 0 16px 34px -22px rgba(20,40,30,.5); transform: translateY(-3px); }
.abv-hub__card strong { display: block; font-family: var(--abv-police); font-weight: 700; color: var(--abv-vert-fonce); font-size: 19px; margin: 0 0 6px; }
.abv-hub__card span { display: block; color: var(--abv-gris); font-size: 15px; line-height: 1.5; }
@media (max-width: 600px) { .abv-hub { grid-template-columns: 1fr; } }

.abv-page ul { list-style: none; margin: 16px 0 26px; padding: 0; }
.abv-page li { position: relative; padding: 10px 0 10px 30px; border-bottom: 1px solid #eef1ee; color: var(--abv-encre); line-height: 1.6; }
.abv-page li::before { content: ""; position: absolute; left: 2px; top: 17px; width: 10px; height: 10px; background: var(--abv-jaune); border-radius: 2px; }
/* Bloc horaires (encart vert clair) */
.abv-hours { background: var(--abv-creme); border-left: 4px solid var(--abv-vert); border-radius: 6px; padding: 20px 24px; margin: 8px 0 26px; }
.abv-hours strong { color: var(--abv-vert-fonce); }
.abv-hours p { margin: 4px 0; }

/* Tableaux (horaires, tarifs) */
.abv-table-wrap { overflow-x: auto; margin: 10px 0 26px; }
.abv-page .abv-table { width: 100%; border-collapse: collapse; font-size: 15px; min-width: 520px; }
.abv-page .abv-table th, .abv-page .abv-table td { border: 1px solid #e3e8e3; padding: 12px 14px; text-align: center; vertical-align: middle; line-height: 1.4; }
.abv-page .abv-table thead th { background: var(--abv-vert); color: #fff; font-weight: 700; }
.abv-page .abv-table thead th small { color: rgba(255,255,255,.85); font-weight: 400; }
.abv-page .abv-table tbody th { background: var(--abv-creme); color: var(--abv-vert-fonce); text-align: left; font-weight: 700; }
.abv-page .abv-table td small { display: block; color: var(--abv-gris); font-size: 12.5px; }
.abv-page .abv-table strong { color: var(--abv-noir); font-size: 17px; }

/* ---- Galerie : index des albums (par année) ------------------------- */
.abv-albums { max-width: 1100px; margin: 0 auto; }
.abv-albums-year { font-family: var(--abv-police); font-weight: 900; color: var(--abv-noir); font-size: 23px; margin: 40px 0 18px; padding-bottom: 8px; border-bottom: 3px solid var(--abv-jaune); display: inline-block; }
.abv-albums-year:first-of-type { margin-top: 0; }
.abv-albums-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.abv-album-card { display: block; text-decoration: none !important; border: 1px solid #e3e8e3; border-radius: var(--abv-rayon); overflow: hidden; background: #fff; transition: box-shadow .2s ease, transform .2s ease; }
.abv-album-card:hover { box-shadow: 0 16px 34px -20px rgba(20,40,30,.5); transform: translateY(-3px); }
.abv-album-card__cover { display: block; aspect-ratio: 4/3; background: var(--abv-vert) center/cover no-repeat; }
.abv-album-card__body { display: block; padding: 13px 16px 15px; }
.abv-album-card__title { display: block; font-weight: 700; color: var(--abv-noir); font-size: 16px; line-height: 1.3; text-decoration: none; }
.abv-album-card:hover .abv-album-card__title { color: var(--abv-vert); }

/* ---- Album : grille de photos + lightbox ---------------------------- */
.abv-album-back { display: inline-block; margin-bottom: 20px; color: var(--abv-vert); font-weight: 700; text-decoration: none; }
.abv-album-back:hover { color: var(--abv-vert-fonce); }
.abv-album-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.abv-album-grid a { display: block; aspect-ratio: 1/1; overflow: hidden; border-radius: 4px; background: var(--abv-creme); }
.abv-album-grid img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s ease; }
.abv-album-grid a:hover img { transform: scale(1.06); }

.abv-lb { position: fixed; inset: 0; background: rgba(10,15,12,.93); display: none; align-items: center; justify-content: center; z-index: 99999; }
.abv-lb.is-open { display: flex; }
.abv-lb img { max-width: 92vw; max-height: 88vh; border-radius: 4px; }
.abv-lb button { position: absolute; color: #fff; cursor: pointer; background: none; border: 0; line-height: 1; }
.abv-lb__close { top: 18px; right: 24px; font-size: 34px; }
.abv-lb__nav { top: 50%; transform: translateY(-50%); font-size: 44px; padding: 0 20px; opacity: .85; }
.abv-lb__nav:hover { opacity: 1; }
.abv-lb__prev { left: 4px; } .abv-lb__next { right: 4px; }

/* Album (CPT) : pleine largeur + galerie bloc en grille, même sans les styles de bloc */
body.single-album #right-sidebar,
body.single-album .sidebar-container,
body.single-album #sidebar { display: none !important; }
body.single-album #primary,
body.single-album #content-wrap .content-area { width: 100% !important; max-width: 100% !important; margin: 0 !important; }
.wp-block-gallery.has-nested-images { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.wp-block-gallery.has-nested-images figure { margin: 0 !important; width: auto !important; }
.wp-block-gallery.has-nested-images figure a,
.wp-block-gallery.has-nested-images figure img { display: block; width: 100%; height: 100%; }
.wp-block-gallery.has-nested-images figure img { aspect-ratio: 3/2; object-fit: cover; border-radius: 4px; cursor: zoom-in; }
@media (max-width: 760px) { .wp-block-gallery.has-nested-images { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 460px) { .wp-block-gallery.has-nested-images { grid-template-columns: 1fr; } }

@media (max-width: 900px) { .abv-albums-grid { grid-template-columns: 1fr 1fr; } .abv-album-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 560px) { .abv-albums-grid { grid-template-columns: 1fr; } .abv-album-grid { grid-template-columns: repeat(2, 1fr); } }

.abv-timeline { margin: 10px 0 0; }
.abv-timeline__item { display: grid; grid-template-columns: 84px 1fr; gap: 26px; }
.abv-timeline__year { font-family: var(--abv-police); font-weight: 900; font-size: 20px; color: var(--abv-vert); padding-top: 2px; }
.abv-timeline__body { border-left: 2px solid #e3e8e3; padding: 0 0 28px 26px; position: relative; }
.abv-timeline__item:last-child .abv-timeline__body { border-color: transparent; }
.abv-timeline__body::before { content: ""; position: absolute; left: -8px; top: 5px; width: 13px; height: 13px; border-radius: 50%; background: var(--abv-jaune); border: 2px solid var(--abv-vert); }
.abv-timeline__body h3 { font-family: var(--abv-police); font-size: 18px; font-weight: 700; color: var(--abv-noir); margin: 0 0 6px; }
.abv-timeline__body p { color: var(--abv-gris); margin: 0; }
@media (max-width: 600px) {
	.abv-timeline__item { grid-template-columns: 60px 1fr; gap: 16px; }
	.abv-timeline__year { font-size: 17px; }
}

/* ---- Image de fond fixe (desktop uniquement, ignore sur mobile) ------- */
@media (min-width: 1025px) {
	.abv-hero { background-attachment: fixed; }
}

/* ---- Responsive ------------------------------------------------------- */
@media (max-width: 960px) {
	.abv-duo { grid-template-columns: 1fr; }
	.abv-cards { grid-template-columns: repeat(2, 1fr); }
	.abv-news-grid { grid-template-columns: 1fr 1fr; }
	.abv-env-grid { grid-template-columns: repeat(2, 1fr); }
	.abv-split { grid-template-columns: 1fr; gap: 28px; }
	.abv-strip__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
	.abv-cards, .abv-news-grid { grid-template-columns: 1fr; }
	.abv-env-grid { grid-template-columns: 1fr 1fr; }
	.abv-section { padding: 52px 0; }
	.abv-hero { min-height: 78vh; }
}

/* ---- Pied de page sur mesure (toutes les pages) ---------------------- */
.abv-footer { background: var(--abv-noir); color: rgba(255,255,255,.75); font-family: var(--abv-police); }
.abv-footer__grid { display: grid; grid-template-columns: 1.3fr 1.2fr 0.9fr 1fr; gap: 36px; padding: 54px 22px 42px; }
.abv-footer__map iframe { width: 100%; height: 172px; border: 0; border-radius: var(--abv-rayon); display: block; }
.abv-footer__maplink { display: inline-block; margin-top: 12px; font-size: 14px; font-weight: 500; color: var(--abv-jaune); }
.abv-footer__maplink:hover { color: #fff; }
.abv-footer h3 { color: #fff; font-size: 15px; font-weight: 700; letter-spacing: .4px; text-transform: uppercase; margin: 0 0 16px; }
.abv-footer p { margin: 0 0 12px; line-height: 1.6; font-size: 15px; }
.abv-footer a { color: rgba(255,255,255,.82); text-decoration: none; }
.abv-footer a:hover { color: var(--abv-jaune); }
.abv-footer__logo { max-height: 74px; width: auto; margin-bottom: 14px; }
.abv-footer__name { color: #fff; font-weight: 700; font-size: 17px; margin-bottom: 8px; }
.abv-footer__social { display: flex; gap: 12px; margin-top: 16px; }
.abv-footer__social a { width: 38px; height: 38px; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; display: grid; place-items: center; color: #fff; }
.abv-footer__social a:hover { background: var(--abv-jaune); color: var(--abv-noir); border-color: var(--abv-jaune); }
.abv-footer__links { list-style: none; margin: 0; padding: 0; }
.abv-footer__links li { margin-bottom: 10px; }
.abv-footer__bottom { border-top: 1px solid rgba(255,255,255,.12); }
.abv-footer__bottom-inner { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 18px 22px; font-size: 13.5px; flex-wrap: wrap; }
.abv-footer__legal { display: inline-flex; gap: 22px; flex-wrap: wrap; }
@media (max-width: 900px) { .abv-footer__grid { grid-template-columns: 1fr 1fr; gap: 30px; } }
@media (max-width: 560px) { .abv-footer__grid { grid-template-columns: 1fr; } .abv-footer__bottom-inner { flex-direction: column; align-items: flex-start; } }
