/* =============================================================================
 * Château de la Cressonnière — feuille principale
 *
 * Palette :
 *   #a69667  or ochre (gold)
 *   #8c7f59  gold foncé
 *   #515151  titres
 *   #474747  titres foncés
 *   #777     corps de texte
 *   #f7f7f7  fond
 * ========================================================================== */

/* Google Fonts : déplacé en <link> dans inc/assets.php pour chargement parallèle (au lieu du @import séquentiel). */

:root {
	/* --- Palette (inchangée) ---------------------------------------------- */
	--color-body:       #777;
	--color-heading:    #515151;
	--color-heading-2:  #474747;
	--color-gold:       #a69667;
	--color-gold-dark:  #8c7f59;
	--color-bg:         #f7f7f7;
	--color-white:      #fff;

	/* --- Typographies ----------------------------------------------------- */
	--font-body: "Open Sans", Helvetica, Arial, Verdana, sans-serif;
	--font-heading: Montserrat, Helvetica, Arial, Verdana, sans-serif;
	--font-serif: "Cormorant Garamond", "EB Garamond", Georgia, serif;

	/* Échelle typographique unifiée */
	--fs-eyebrow: 12px;    /* sur-titres / labels */
	--fs-h4:      18px;
	--fs-h3:      22px;
	--fs-h2:      40px;    /* titre principal de section */
	--fs-h1:      44px;    /* très rare — hero uniquement */
	--fs-body:    14px;
	--ls-eyebrow: 3px;
	--ls-cta:     2.5px;
	--lh-heading: 1.2;

	/* --- Container & espacements ----------------------------------------- */
	--container: 1300px;
	--section-py: 80px;        /* padding vertical des sections */
	--section-px: 20px;        /* padding horizontal des sections */
	--section-gap: 45px;       /* espace sous le header de section */

	--header-h: 75px;
	--header-h-compact: 60px;

	/* --- Effets visuels unifiés ----------------------------------------- */
	--shadow-card:       0 2px 20px rgba(0,0,0,.05);
	--shadow-card-hover: 0 10px 30px rgba(0,0,0,.10);
	--trans-card:        box-shadow .35s ease, transform .35s ease;
	--radius-card:       0;

	/* --- Boutons --------------------------------------------------------- */
	--btn-pad-y: 13px;
	--btn-pad-x: 26px;
}

/* =======================================================================
 * Reset
 * ======================================================================= */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	font-family: var(--font-body);
	font-size: 14px;
	line-height: 1.7;
	color: var(--color-body);
	background: var(--color-bg);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
img, video { max-width: 100%; height: auto; display: block; }
a { color: var(--color-gold-dark); text-decoration: none; transition: color .25s ease; }

/* =======================================================================
 * Preloader — voile plein écran avec icône du château qui fade-in / out
 * ======================================================================= */
html.is-loading { overflow: hidden; }
.site-preloader {
	position: fixed;
	inset: 0;
	z-index: 10000;
	background: #faf7f0;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: opacity .7s cubic-bezier(.22,.61,.36,1), visibility .7s ease;
	opacity: 1;
	visibility: visible;
}
.site-preloader::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 38%;
	transform: translateX(-50%);
	width: 60px;
	height: 1px;
	background: var(--color-gold);
	transform-origin: center;
	animation: preloader-line 1.6s ease-in-out infinite;
}
.site-preloader__icon {
	max-width: 220px;
	width: 55vw;
	height: auto;
	animation: preloader-icon 1.6s ease-in-out infinite;
}
html.is-loaded .site-preloader {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}

@keyframes preloader-icon {
	0%   { opacity: .35; transform: translateY(0) scale(.98); }
	50%  { opacity: 1;   transform: translateY(-4px) scale(1); }
	100% { opacity: .35; transform: translateY(0) scale(.98); }
}
@keyframes preloader-line {
	0%   { transform: translateX(-50%) scaleX(.2); opacity: .3; }
	50%  { transform: translateX(-50%) scaleX(1);  opacity: 1; }
	100% { transform: translateX(-50%) scaleX(.2); opacity: .3; }
}
@media (prefers-reduced-motion: reduce) {
	.site-preloader__icon, .site-preloader::after { animation: none; }
}

/* =======================================================================
 * Lightbox galerie — plein écran, navigation clavier
 * ======================================================================= */
html.lightbox-open { overflow: hidden; }

.lightbox {
	position: fixed;
	inset: 0;
	z-index: 9999;
	background: rgba(18,17,15,.96);
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	visibility: hidden;
	transition: opacity .3s ease, visibility .3s ease;
}
.lightbox.is-open {
	opacity: 1;
	visibility: visible;
}

.lightbox__stage {
	max-width: min(92vw, 1400px);
	max-height: 82vh;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 18px;
}
.lightbox__image {
	max-width: 92vw;
	max-height: 76vh;
	width: auto;
	height: auto;
	opacity: 0;
	transform: scale(.98);
	transition: opacity .4s ease, transform .4s ease;
	box-shadow: 0 30px 80px rgba(0,0,0,.5);
}
.lightbox__image.is-loaded {
	opacity: 1;
	transform: scale(1);
}
.lightbox__caption {
	font-family: var(--font-heading);
	font-size: 13px;
	letter-spacing: 1px;
	color: rgba(255,255,255,.75);
	margin: 0;
	text-align: center;
	max-width: 80vw;
	min-height: 1.2em;
}

.lightbox__close,
.lightbox__prev,
.lightbox__next {
	position: absolute;
	background: transparent;
	border: 1px solid rgba(255,255,255,.25);
	color: #fff;
	font-family: var(--font-heading);
	cursor: pointer;
	transition: background .25s ease, color .25s ease, border-color .25s ease, transform .25s ease;
	line-height: 1;
}
.lightbox__close:hover,
.lightbox__prev:hover,
.lightbox__next:hover {
	background: var(--color-gold);
	border-color: var(--color-gold);
	color: #fff;
}
.lightbox__close {
	top: 22px;
	right: 22px;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	font-size: 24px;
}
.lightbox__prev,
.lightbox__next {
	top: 50%;
	transform: translateY(-50%);
	width: 54px;
	height: 54px;
	border-radius: 50%;
	font-size: 28px;
}
.lightbox__prev { left: 22px; }
.lightbox__next { right: 22px; }
.lightbox__prev:hover { transform: translate(-2px, -50%); }
.lightbox__next:hover { transform: translate(2px, -50%); }

.lightbox__counter {
	position: absolute;
	bottom: 22px;
	left: 50%;
	transform: translateX(-50%);
	font-family: var(--font-heading);
	font-size: 11px;
	letter-spacing: 3px;
	color: rgba(255,255,255,.6);
}

@media (max-width: 600px) {
	.lightbox__close,
	.lightbox__prev,
	.lightbox__next {
		background: rgba(0, 0, 0, .55);
		border-color: rgba(255, 255, 255, .6);
		color: #fff;
		backdrop-filter: blur(2px);
		-webkit-backdrop-filter: blur(2px);
	}
	.lightbox__close { top: 14px; right: 14px; width: 40px; height: 40px; font-size: 20px; }
	.lightbox__prev, .lightbox__next { width: 44px; height: 44px; font-size: 22px; }
	.lightbox__prev { left: 12px; } .lightbox__next { right: 12px; }
	.lightbox__caption { font-size: 12px; }
}

/* Indicateur cliquable sur les vignettes de galerie */
.galerie__item a {
	position: relative;
	display: block;
	cursor: zoom-in;
}
.galerie__item a::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0,0,0,0) 60%, rgba(0,0,0,.35) 100%);
	opacity: 0;
	transition: opacity .35s ease;
	pointer-events: none;
}
.galerie__item a:hover::after { opacity: 1; }

/* =======================================================================
 * Micro-animations d'apparition — éditorial, discret
 * ======================================================================= */
.reveal {
	opacity: 0;
	transform: translateY(18px);
	transition:
		opacity 700ms cubic-bezier(.22,.61,.36,1),
		transform 700ms cubic-bezier(.22,.61,.36,1);
	transition-delay: var(--reveal-delay, 0ms);
	will-change: opacity, transform;
}
.reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}
.no-reveal .reveal { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
	.reveal { opacity: 1; transform: none; transition: none; }
}

/* Animations internes subtiles */
@keyframes cressonniere-fade-in {
	from { opacity: 0; }
	to   { opacity: 1; }
}
@keyframes cressonniere-rise {
	from { opacity: 0; transform: translateY(12px); }
	to   { opacity: 1; transform: translateY(0); }
}

/* Lien : soulignement doré qui glisse au hover (style éditorial) */
.link-reveal {
	position: relative;
	display: inline-block;
}
.link-reveal::after {
	content: "";
	position: absolute;
	left: 0;
	right: 100%;
	bottom: -2px;
	height: 1px;
	background: var(--color-gold);
	transition: right .35s cubic-bezier(.22,.61,.36,1);
}
.link-reveal:hover::after { right: 0; }

/* =======================================================================
 * Système unifié : section-header, btn, card
 * ======================================================================= */

/* --- En-tête de section (eyebrow + titre + separator) ------------------- */
.section-header {
	text-align: center;
	max-width: 720px;
	margin: 0 auto var(--section-gap);
}
.section-header__eyebrow {
	display: inline-block;
	font-family: var(--font-heading);
	font-size: var(--fs-eyebrow);
	letter-spacing: var(--ls-eyebrow);
	text-transform: uppercase;
	color: var(--color-gold);
	margin: 0 0 14px;
}
.section-header__title {
	font-family: var(--font-heading);
	font-weight: 300;
	font-size: var(--fs-h2);
	line-height: 1.2;
	color: var(--color-heading);
	margin: 0 0 20px;
}
.section-header__separator {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 15px;
	margin: 0 auto 10px;
}
.section-header__separator-line {
	display: block;
	width: 60px;
	height: 1px;
	background: var(--color-gold);
}
.section-header__separator img { width: 40px; height: auto; }

/* --- Bouton unifié ------------------------------------------------------ */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	font-family: var(--font-heading);
	font-size: var(--fs-eyebrow);
	letter-spacing: var(--ls-cta);
	text-transform: uppercase;
	font-weight: 400;
	line-height: 1;
	padding: var(--btn-pad-y) var(--btn-pad-x);
	border: 1px solid var(--color-gold);
	background: transparent;
	color: var(--color-gold);
	text-decoration: none !important;
	cursor: pointer;
	transition: background .25s ease, color .25s ease, gap .25s ease;
	white-space: nowrap;
}
.btn:hover { background: var(--color-gold); color: #fff; gap: 14px; }
.btn--solid { background: var(--color-gold); color: #fff; }
.btn--solid:hover { background: var(--color-gold-dark); border-color: var(--color-gold-dark); }
.btn--light { color: #fff; border-color: rgba(255,255,255,.7); }
.btn--light:hover { background: #fff; color: var(--color-heading); border-color: #fff; }

/* --- Carte unifiée ------------------------------------------------------ */
.card-base {
	background: #fff;
	box-shadow: var(--shadow-card);
	transition: var(--trans-card);
	overflow: hidden;
	border-radius: var(--radius-card);
}
.card-base:hover {
	box-shadow: var(--shadow-card-hover);
	transform: translateY(-3px);
}
a:hover { color: var(--color-gold); }
h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-heading);
	color: var(--color-heading);
	font-weight: 400;
	margin: 0 0 .5em;
}
p { margin: 0 0 1em; }
ul, ol { margin: 0; padding: 0; }
li { list-style: none; }

.screen-reader-text {
	position: absolute !important;
	clip: rect(1px, 1px, 1px, 1px);
	width: 1px; height: 1px;
	overflow: hidden;
}
.skip-link {
	position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden;
}
.skip-link:focus {
	left: 1rem; top: 1rem; width: auto; height: auto;
	background: #000; color: #fff; padding: .5rem 1rem; z-index: 9999;
}

/* =======================================================================
 * Header — fixe en haut, logo bannière suspendu à gauche
 * ======================================================================= */
.site-header {
	position: fixed;
	top: 0; left: 0; right: 0;
	height: var(--header-h);
	background: var(--color-white);
	z-index: 1000;
	transition: height .3s ease, box-shadow .3s ease;
	box-shadow: 0 1px 0 rgba(0,0,0,.04);
}
.site-header.is-scrolled {
	height: var(--header-h-compact);
	box-shadow: 0 4px 14px rgba(0,0,0,.08);
}
/* Décalage du header fixe sous la barre d'admin WordPress */
body.admin-bar .site-header { top: 32px; }
@media screen and (max-width: 782px) {
	body.admin-bar .site-header { top: 46px; }
}

.site-header__inner {
	height: 100%;
	padding: 0 30px 0 0;
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 20px;
}

/* --- Logo : état "bannière" (suspendu) et compact --- */
.site-header__logo {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 180px;
	height: 100%;
}
.site-header__logo-banniere {
	position: absolute;
	top: 0;
	left: 20px;
	max-width: 162px;
	height: auto;
	transition: opacity .3s ease, transform .3s ease;
}
.site-header__logo-compact {
	max-height: 50px;
	width: auto;
	margin-left: 15px;
	opacity: 0;
	transition: opacity .3s ease;
}
.site-header.is-scrolled .site-header__logo-banniere {
	opacity: 0;
	transform: translateY(-20px);
	pointer-events: none;
}
.site-header.is-scrolled .site-header__logo-compact {
	opacity: 1;
}

/* --- Nav principale --- */
.site-nav { display: flex; justify-content: center; }
.site-nav__toggle { display: none; }
.site-nav__list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	margin: 0;
}
/* Par défaut (desktop) : masquer le footer mobile + hamburger + backdrop + chevrons */
.site-nav__mobile-footer,
.site-nav__toggle,
.site-nav__backdrop,
.site-nav__submenu-toggle { display: none; }

.site-nav__list > li { position: relative; }
.site-nav__list a {
	display: block;
	padding: 26px 14px;
	font-family: var(--font-heading);
	font-size: 14px;
	font-weight: 400;
	color: var(--color-heading);
	line-height: 1;
	transition: color .2s, padding .3s;
	position: relative;
}
.site-nav__list > li > a::after {
	content: "";
	position: absolute;
	left: 14px;
	right: 14px;
	bottom: 18px;
	height: 1px;
	background: var(--color-gold);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform .35s cubic-bezier(.22,.61,.36,1);
}
.site-nav__list > li > a:hover::after,
.site-nav__list > li.current-menu-item > a::after,
.site-nav__list > li.current-menu-ancestor > a::after { transform: scaleX(1); }
.site-header.is-scrolled .site-nav__list > li > a::after { bottom: 12px; }
.site-header.is-scrolled .site-nav__list > li > a { padding: 20px 14px; }

.site-nav__list a:hover,
.site-nav__list .current-menu-item > a,
.site-nav__list .current-menu-ancestor > a {
	color: var(--color-gold);
}
.site-nav__list li.menu-item-has-children > a::after {
	content: "⌄";
	margin-left: 6px;
	font-size: 11px;
	vertical-align: 2px;
	color: inherit;
}

/* Sub-menu */
.site-nav__list .sub-menu {
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translate(-50%, 6px);
	min-width: 240px;
	background: var(--color-white);
	border-top: 2px solid var(--color-gold);
	box-shadow: 0 8px 24px rgba(0,0,0,.1);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	clip-path: inset(0 0 100% 0);
	transition: opacity .2s ease, transform .2s ease, clip-path .2s ease, visibility 0s linear .2s;
	z-index: 200;
	padding: 8px 0;
}
.site-nav__list > li:hover > .sub-menu,
.site-nav__list > li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	clip-path: inset(0);
	transform: translate(-50%, 0);
	transition: opacity .2s ease, transform .2s ease, clip-path .2s ease, visibility 0s linear 0s;
}
.site-nav__list .sub-menu a {
	padding: 10px 20px;
	font-size: 13px;
	text-align: left;
}

/* --- Droite : bouton devis + langues --- */
.site-header__right {
	display: flex;
	align-items: center;
	gap: 16px;
}
.btn-devis {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 10px 20px;
	background: var(--color-gold);
	color: var(--color-white);
	font-family: var(--font-heading);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 2.5px;
	text-transform: uppercase;
	line-height: 1;
	border: 1px solid var(--color-gold);
	transition: background .25s ease, color .25s ease, border-color .25s ease, gap .25s ease;
}
.btn-devis__arrow {
	font-size: 14px;
	line-height: 1;
	transition: transform .25s ease;
}
.btn-devis:hover {
	background: transparent;
	color: var(--color-gold);
	border-color: var(--color-gold);
	gap: 14px;
}

.site-header__langs {
	display: flex;
	align-items: center;
	gap: 10px;
	padding-left: 16px;
	border-left: 1px solid rgba(0,0,0,.08);
}
.site-header__langs img {
	width: 20px;
	height: auto;
	display: inline-block;
	opacity: .7;
	transition: opacity .25s ease, transform .25s ease;
	cursor: pointer;
}
.site-header__langs img:hover { opacity: 1; transform: translateY(-1px); }
.site-header__langs .gt_selector { display: none; }
.site-header__langs .gtranslate_wrapper,
.site-header__langs .gt_floater_wrapper,
.site-header__langs .gtranslate_css { display: inline-flex; gap: 6px; align-items: center; }

/* Site main : décalage pour compenser le header fixe */
.site-main { padding-top: var(--header-h); }

/* =======================================================================
 * Section topbar (bandeau doré sous le hero)
 * ======================================================================= */
.section--topbar { background: transparent; }
.topbar {
	background: var(--color-gold);
	color: var(--color-white);
	display: grid;
	grid-template-columns: 25% 1fr 25%;
	align-items: center;
	min-height: 48px;
}
.topbar__side-left { background: var(--color-gold); min-height: 48px; }
.topbar__text {
	margin: 0;
	padding: 12px 30px;
	text-align: center;
	font-family: var(--font-heading);
	font-size: 14px;
	color: var(--color-white);
	font-weight: 400;
	background: var(--color-gold-dark);
	min-height: 48px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.topbar__right {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	padding: 8px 20px;
	background: var(--color-gold);
	min-height: 48px;
}
.topbar__right-label {
	color: var(--color-white);
	font-family: var(--font-heading);
	font-size: 13px;
}
.topbar__socials {
	display: flex;
	gap: 8px;
}
.topbar__social {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px; height: 32px;
	border-radius: 50%;
	background: var(--color-white);
	color: var(--color-gold-dark);
	transition: background .2s, color .2s, transform .2s;
}
.topbar__social:hover {
	background: var(--color-gold-dark);
	color: var(--color-white);
	transform: translateY(-2px);
}
.topbar__social .icon { width: 16px; height: 16px; }

/* =======================================================================
 * Sections — base
 * ======================================================================= */
.section { position: relative; }
.section__inner {
	max-width: var(--container);
	margin: 0 auto;
	padding: 70px 20px;
}
.section__inner--center { text-align: center; }
.section__title {
	font-family: var(--font-heading);
	font-weight: 300;
	color: var(--color-heading);
	font-size: 22px;
	text-align: center;
	margin: 0 0 20px;
}
.section__separator {
	display: block;
	margin: 0 auto 15px;
	width: 50px;
	height: auto;
}
.section__subtitle {
	font-family: var(--font-heading);
	font-weight: 300;
	font-size: var(--fs-h2);
	line-height: 1.25;
	color: var(--color-gold);
	text-align: center;
	margin: 0 0 35px;
}
.section__subtitle::before {
	content: "";
	display: block;
	width: 200px;
	height: 1px;
	background: #5b5b5b;
	margin: 0 auto 20px;
}
.section__lead, .section__text {
	text-align: center;
	max-width: 760px;
	margin-left: auto;
	margin-right: auto;
}
.section__text { margin-bottom: 30px; }

/* =======================================================================
 * hero_slider
 * ======================================================================= */
.section--hero-slider { padding: 0; }
.section--hero-slider .rev_slider_wrapper,
.section--hero-slider .rev_slider { width: 100% !important; }

/* =======================================================================
 * hero_parallax  (bg fixe visuellement, contenu positionné à droite/gauche/centre)
 * ======================================================================= */
.section--hero-parallax {
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}
.hero-parallax {
	max-width: 1400px;
	margin: 0 auto;
	padding: 70px 20px;
	display: flex;
}
.section--pos-droite  .hero-parallax { justify-content: flex-end; }
.section--pos-gauche  .hero-parallax { justify-content: flex-start; }
.section--pos-centre  .hero-parallax { justify-content: center; }

.hero-parallax__content {
	width: 50%;
	max-width: 650px;
	text-align: center;
	padding: 30px 20px;
}
.section--pos-centre .hero-parallax__content { width: 100%; max-width: 780px; }

/* Les paragraphes du rich text restent alignés à gauche comme en prod */
.hero-parallax__lead,
.hero-parallax__text {
	text-align: left;
}

.hero-parallax__title {
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: 22px;
	color: var(--color-heading);
	margin: 0 0 10px;
}

.hero-parallax__subtitle {
	font-family: var(--font-heading);
	font-weight: 300;
	font-size: var(--fs-h2);
	line-height: 1.2;
	color: var(--color-gold);
	margin: 0 0 25px;
}

.hero-parallax__separator {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 15px;
	margin: 0 0 30px;
}
.hero-parallax__separator img { width: 50px; height: auto; }
.hero-parallax__separator-line {
	display: block;
	height: 1px;
	width: 100px;
	background: #5b5b5b;
}

.hero-parallax__lead,
.hero-parallax__text {
	margin-bottom: 20px;
	line-height: 1.9;
	font-size: 16px;
}
.hero-parallax__text p { margin-bottom: 1em; }

.hero-parallax__badges {
	display: flex;
	flex-wrap: wrap;
	gap: 22px;
	margin: 40px 0 0;
	align-items: center;
	justify-content: flex-start;
	padding-top: 26px;
	border-top: 1px solid rgba(0,0,0,.08);
}
.hero-parallax__badge { display: inline-flex; }
.hero-parallax__badge img {
	max-height: 54px;
	width: auto;
	opacity: .7;
	transition: opacity .35s ease;
}
.hero-parallax__badge:hover img { opacity: 1; }

/* =======================================================================
 * bloc_contenu (pages internes)
 * ======================================================================= */
.section--bloc-contenu { padding: 70px 20px; }
.section--fond-blanc  { background: #fff; }
.section--fond-clair  { background: var(--color-bg); }
.section--fond-or     { background: #f3efe3; }

.bloc-contenu {
	max-width: 900px;
	margin: 0 auto;
	text-align: center;
}
.bloc-contenu__titre {
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: 22px;
	color: var(--color-heading);
	margin: 0 0 10px;
}
.bloc-contenu__sous-titre {
	font-family: var(--font-heading);
	font-weight: 300;
	font-size: var(--fs-h2);
	line-height: 1.2;
	color: var(--color-gold);
	margin: 0 0 25px;
}
.bloc-contenu__separator {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 15px;
	margin: 0 0 30px;
}
.bloc-contenu__separator img { width: 50px; height: auto; }
.bloc-contenu__separator-line {
	display: block;
	height: 1px;
	width: 100px;
	background: #5b5b5b;
}
.bloc-contenu__texte {
	text-align: center;
	line-height: 1.7;
	color: var(--color-body);
}
.bloc-contenu__texte p { margin: 0 0 .8em; }
.bloc-contenu__texte p:last-child { margin-bottom: 0; }
.bloc-contenu__texte p:empty { display: none; }
.bloc-contenu__texte br + br { display: none; }
.bloc-contenu__texte h2,
.bloc-contenu__texte h3,
.bloc-contenu__texte h4 {
	font-family: var(--font-heading);
	font-weight: 400;
	color: var(--color-heading);
	margin: 30px 0 15px;
	text-align: center;
}
.bloc-contenu__texte h2 { font-size: 28px; color: var(--color-gold); font-weight: 300; }
.bloc-contenu__texte h3 { font-size: 22px; }
.bloc-contenu__texte h4 { font-size: 18px; }
.bloc-contenu__texte ul,
.bloc-contenu__texte ol {
	display: inline-block;
	text-align: left;
	margin: 10px auto 20px;
	padding-left: 0;
	max-width: 700px;
}
.bloc-contenu__texte ul li {
	list-style: disc;
	margin-left: 20px;
	padding: 3px 0;
}
.bloc-contenu__texte ol li {
	list-style: decimal;
	margin-left: 20px;
	padding: 3px 0;
}
.bloc-contenu__texte a { text-decoration: underline; }

.bloc-contenu:has(.fb-split) { max-width: 1200px; }
.bloc-contenu:has(.yt-elfsight) { max-width: 1200px; }

/* Pages légales : texte long aligné à gauche */
.bloc-contenu:has(.legal-content) { max-width: 820px; }
.legal-content { text-align: left; }
.legal-content h2 {
	text-align: left !important;
	font-size: 22px !important;
	color: var(--color-heading) !important;
	font-weight: 400 !important;
	margin: 45px 0 15px !important;
	padding-bottom: 10px;
	border-bottom: 1px solid rgba(0,0,0,.08);
}
.legal-content h3 {
	text-align: left !important;
	font-size: 17px !important;
	color: var(--color-gold-dark) !important;
	margin: 25px 0 10px !important;
}
.legal-content p { margin: 0 0 1em; }
.legal-content ul,
.legal-content ol {
	display: block !important;
	text-align: left !important;
	max-width: none !important;
	margin: 10px 0 20px !important;
	padding-left: 20px !important;
}
.legal-content ul li { margin-left: 10px; }
.legal-content a { color: var(--color-gold-dark); }

.fb-split {
	display: grid;
	grid-template-columns: 1fr 500px;
	gap: 60px;
	align-items: center;
	text-align: left;
	padding: 20px 0;
}
.fb-split__intro h3,
.fb-split__title {
	font-family: var(--font-heading);
	font-weight: 300;
	font-size: 28px;
	color: var(--color-gold);
	margin: 0 0 20px;
	text-align: left;
}
.fb-split__intro p {
	line-height: 1.9;
	color: var(--color-body);
	margin: 0 0 1em;
}
.fb-split__feed {
	display: flex;
	justify-content: center;
}
.fb-split__feed iframe { width: 100%; max-width: 500px; }

@media (max-width: 900px) {
	.fb-split { grid-template-columns: 1fr; gap: 40px; text-align: center; }
	.fb-split__intro h3, .fb-split__title { text-align: center; }
}

/* .fb-link, .single-article__back, .partenaire__offre-cta : voir .btn unifié */
.fb-link,
.fb-link:hover { /* alias → comportement unifié .btn */ }
.fb-link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--font-heading);
	font-size: var(--fs-eyebrow);
	letter-spacing: var(--ls-cta);
	text-transform: uppercase;
	color: var(--color-gold);
	border: 1px solid var(--color-gold);
	padding: var(--btn-pad-y) var(--btn-pad-x);
	text-decoration: none !important;
	transition: background .25s ease, color .25s ease, gap .25s ease;
}
.fb-link:hover { background: var(--color-gold); color: #fff; gap: 14px; }

/* =======================================================================
 * Smash Balloon Custom Facebook Feed — override couleurs & typographie
 * ======================================================================= */
.fb-feed-wrapper {
	max-width: var(--container);
	margin: 0 auto;
}
.bloc-contenu:has(.fb-feed-wrapper) { max-width: var(--container); }

#cff .cff-item,
.cff-item {
	box-shadow: var(--shadow-card) !important;
	border: 0 !important;
	background: #fff !important;
	transition: var(--trans-card);
}
#cff .cff-item:hover,
.cff-item:hover {
	box-shadow: var(--shadow-card-hover) !important;
	transform: translateY(-3px);
}

#cff .cff-author,
#cff .cff-author a,
.cff-name, .cff-name a,
#cff .cff-date {
	font-family: var(--font-heading) !important;
}
#cff .cff-author a,
.cff-name a {
	color: var(--color-heading) !important;
	font-weight: 500 !important;
}
#cff .cff-date {
	font-size: 11px !important;
	letter-spacing: 1.5px !important;
	text-transform: uppercase !important;
	color: var(--color-gold) !important;
}
#cff .cff-text,
#cff .cff-post-desc,
.cff-post-desc {
	font-family: var(--font-body) !important;
	color: var(--color-body) !important;
	line-height: 1.7 !important;
}

/* Boutons "Like / Partager / Commenter / Voir plus" → style .btn unifié */
#cff .cff-see-more,
#cff .cff-likebox a,
#cff .cff-load-more {
	font-family: var(--font-heading) !important;
	font-size: var(--fs-eyebrow) !important;
	letter-spacing: var(--ls-cta) !important;
	text-transform: uppercase !important;
	padding: var(--btn-pad-y) var(--btn-pad-x) !important;
	background: var(--color-gold) !important;
	color: #fff !important;
	border: 1px solid var(--color-gold) !important;
	border-radius: 0 !important;
	transition: background .25s ease, color .25s ease !important;
}
#cff .cff-see-more:hover,
#cff .cff-likebox a:hover,
#cff .cff-load-more:hover {
	background: var(--color-gold-dark) !important;
	border-color: var(--color-gold-dark) !important;
}

#cff a,
.cff-post-links a {
	color: var(--color-gold-dark) !important;
}
#cff a:hover { color: var(--color-gold) !important; }

/* =======================================================================
 * bloc_split (image moitié + contenu moitié)
 * ======================================================================= */
.section--bloc-split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: stretch;
}
.bloc-split__image {
	min-height: 500px;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}
.bloc-split__content {
	padding: 90px 8% 70px;
	text-align: center;
	align-self: center;
}
.bloc-split__titre {
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: 22px;
	color: var(--color-heading);
	margin: 0 0 10px;
}
.bloc-split__sous-titre {
	font-family: var(--font-heading);
	font-weight: 300;
	font-size: var(--fs-h2);
	line-height: 1.2;
	color: var(--color-gold);
	margin: 0 0 25px;
}
.bloc-split__separator {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 15px;
	margin: 0 0 30px;
}
.bloc-split__separator img { width: 50px; height: auto; }
.bloc-split__separator-line {
	display: block;
	height: 1px;
	width: 80px;
	background: #5b5b5b;
}
.bloc-split__texte {
	text-align: left;
	line-height: 1.9;
	color: var(--color-body);
	font-size: 16px;
}
.bloc-split__texte p { margin-bottom: 1em; }
.bloc-split__texte strong { color: inherit; font-weight: 700; }

/* H2 inside rich text = gros titre gold centré avec séparateur castle + 2 lignes */
.bloc-split__texte h2 {
	font-family: var(--font-heading);
	font-weight: 300;
	font-size: var(--fs-h2);
	line-height: 1.25;
	color: var(--color-gold);
	text-align: center;
	margin: 50px 0 50px;
	position: relative;
}
.bloc-split__texte h2::after {
	content: "";
	display: block;
	height: 32px;
	width: 300px;
	margin: 25px auto 0;
	background:
		url('/wp-content/uploads/2020/08/sep1.png') center center / auto 32px no-repeat,
		linear-gradient(#5b5b5b, #5b5b5b) left center / 100px 1px no-repeat,
		linear-gradient(#5b5b5b, #5b5b5b) right center / 100px 1px no-repeat;
}
.bloc-split__texte h3 {
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: 22px;
	color: var(--color-heading);
	margin: 30px 0 15px;
}
.bloc-split__texte h4 {
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: 18px;
	color: var(--color-heading);
	margin: 25px 0 10px;
}

.bloc-split__texte ul,
.bloc-split__texte ol {
	margin: 10px 0 20px;
	padding-left: 20px;
}
.bloc-split__texte ul li { list-style: disc; padding: 3px 0; }
.bloc-split__texte ol li { list-style: decimal; padding: 3px 0; }

/* =======================================================================
 * galerie_mosaique
 * ======================================================================= */
.section--galerie { padding: 0; }
.galerie {
	display: grid;
	gap: 5px;
	grid-template-columns: repeat(var(--cols, 6), 1fr);
}
.galerie--cols-2 { --cols: 2; }
.galerie--cols-3 { --cols: 3; }
.galerie--cols-4 { --cols: 4; }
.galerie--cols-5 { --cols: 5; }
.galerie--cols-6 { --cols: 6; }
.galerie__item { overflow: hidden; }
.galerie__item img {
	width: 100%; height: 100%;
	object-fit: cover;
	aspect-ratio: 1/1;
	transition: transform .6s ease;
}
.galerie__item:hover img { transform: scale(1.04); }

/* =======================================================================
 * grille_videos
 * ======================================================================= */
.section--grille-videos { padding: 70px 20px; background: var(--color-bg); }
.grille-videos {
	max-width: var(--container);
	margin: 0 auto;
	display: grid;
	gap: 40px;
	grid-template-columns: repeat(var(--cols, 3), 1fr);
}
.grille-videos--cols-1 { --cols: 1; max-width: 820px; }
.grille-videos--cols-2 { --cols: 2; }
.grille-videos--cols-3 { --cols: 3; }
.grille-videos--cols-4 { --cols: 4; }

.grille-videos__item {
	margin: 0;
	background: #fff;
	box-shadow: var(--shadow-card);
	transition: box-shadow .35s ease, transform .35s ease;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}
.grille-videos__item:hover { box-shadow: var(--shadow-card-hover); transform: translateY(-3px); }

.grille-videos__frame {
	position: relative;
	padding-bottom: 56.25%;
	height: 0;
	overflow: hidden;
	background: #000;
}
.grille-videos__frame iframe {
	position: absolute;
	top: 0; left: 0;
	width: 100%; height: 100%;
	border: 0;
}
.grille-videos__titre {
	margin: 0;
	padding: 20px 24px 24px;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.grille-videos__source {
	font-family: var(--font-heading);
	font-size: 11px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--color-gold);
}
.grille-videos__label {
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: 16px;
	line-height: 1.4;
	color: var(--color-heading);
}

@media (max-width: 900px) {
	.grille-videos--cols-3, .grille-videos--cols-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
	.grille-videos { grid-template-columns: 1fr; }
}

/* =======================================================================
 * cta_banniere
 * ======================================================================= */
.section--cta {
	background-size: cover;
	background-position: center;
	background-attachment: fixed;
	background-repeat: no-repeat;
	position: relative;
}
.section--cta::before {
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(20,20,18,.55) 0%, rgba(20,20,18,.75) 100%);
	z-index: 0;
}
.section--cta .section__inner {
	position: relative; z-index: 1;
	padding: 160px 20px 140px;
	max-width: 1000px;
	margin: 0 auto;
	text-align: center;
}
.section--cta .section__title {
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: var(--fs-eyebrow);
	letter-spacing: var(--ls-eyebrow);
	text-transform: uppercase;
	color: var(--color-gold);
	margin-bottom: 22px;
}
.section--cta .section__subtitle {
	font-family: var(--font-heading);
	font-weight: 300;
	font-size: var(--fs-h2);
	line-height: 1.2;
	color: #fff;
	margin-bottom: 22px;
	text-shadow: 0 2px 20px rgba(0,0,0,.3);
}
.section--cta .section__text {
	color: rgba(255,255,255,.9);
	line-height: 1.7;
	max-width: 620px;
	margin: 0 auto 35px;
}
.section--cta .cta-link { color: #fff; border-color: rgba(255,255,255,.7); }
.section--cta .cta-link:hover { background: var(--color-gold); color: #fff; border-color: var(--color-gold); }
.section--cta .section__subtitle::before { display: none; }

/* CTA principal de section : aligné sur .btn unifié */
.cta-link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--font-heading);
	font-size: var(--fs-eyebrow);
	letter-spacing: var(--ls-cta);
	text-transform: uppercase;
	font-weight: 400;
	line-height: 1;
	color: var(--color-gold);
	border: 1px solid var(--color-gold);
	padding: var(--btn-pad-y) var(--btn-pad-x);
	text-decoration: none;
	transition: background .25s ease, color .25s ease, gap .25s ease;
}
.cta-link__label { }
.cta-link::after { display: none; }
.cta-link:hover { background: var(--color-gold); color: #fff; gap: 14px; }
.cta-link:hover::after {
	transform: translateY(0);
	opacity: 1;
}

/* =======================================================================
 * contact — coordonnées + formulaire CF7 (design uniforme)
 * ======================================================================= */
.section--contact {
	padding: 80px 20px;
	background-repeat: repeat;
	background-position: center;
}
.contact {
	max-width: 1100px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
	gap: 80px;
	align-items: start;
}

.contact__eyebrow {
	font-family: var(--font-heading);
	font-size: var(--fs-eyebrow);
	letter-spacing: var(--ls-eyebrow);
	text-transform: uppercase;
	color: var(--color-gold);
	margin: 0 0 14px;
}
.contact__title {
	font-family: var(--font-heading);
	font-weight: 300;
	font-size: 28px;
	line-height: 1.25;
	color: var(--color-heading);
	margin: 0 0 18px;
}
.contact__sep { margin: 0 0 28px; }
.contact__sep span {
	display: block;
	width: 40px;
	height: 1px;
	background: var(--color-gold);
}

.contact__infos { padding: 0; margin: 0 0 28px; list-style: none; display: flex; flex-direction: column; gap: 18px; }
.contact__infos li {
	display: grid;
	grid-template-columns: 44px 1fr;
	gap: 20px;
	align-items: center;
	padding: 16px 20px;
	background: rgba(255, 255, 255, .65);
	border: 1px solid rgba(166, 150, 103, .14);
	transition: background .3s ease, border-color .3s ease, transform .3s ease;
}
.contact__infos li:hover {
	background: rgba(255, 255, 255, .92);
	border-color: rgba(166, 150, 103, .35);
	transform: translateX(3px);
}
.contact__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	color: var(--color-gold);
	background: var(--color-white);
	border: 1px solid rgba(166, 150, 103, .22);
	transition: background .3s ease, color .3s ease, border-color .3s ease;
}
.contact__infos li:hover .contact__icon {
	background: var(--color-gold);
	color: #fff;
	border-color: var(--color-gold);
}
.contact__icon svg { width: 15px; height: 15px; }
.contact__info-body { font-size: 14px; color: var(--color-body); line-height: 1.55; }
.contact__info-label {
	display: block;
	font-family: var(--font-heading);
	font-size: 10px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--color-heading-2);
	margin-bottom: 4px;
}
.contact__info-body strong {
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: 15px;
	color: var(--color-heading);
	display: block;
	margin-bottom: 2px;
}
.contact__info-body a { color: var(--color-gold-dark); border-bottom: 1px solid transparent; transition: border-color .25s ease; }
.contact__info-body a:hover { border-bottom-color: var(--color-gold); color: var(--color-gold); }

.contact__help {
	font-style: italic;
	font-size: 13px;
	color: var(--color-heading-2);
	margin: 28px 0 0;
	padding-top: 22px;
	border-top: 1px solid rgba(0,0,0,.06);
}

.contact__form .wpcf7 { font-family: var(--font-body); }
.contact__form .wpcf7 input:not([type=checkbox]):not([type=radio]),
.contact__form .wpcf7 textarea,
.contact__form .wpcf7 select,
.contact__form .wpcf7 button {
	border-radius: 0;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}
.contact__form .wpcf7 label {
	display: block;
	font-family: var(--font-heading);
	font-size: 11px;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: var(--color-heading-2);
	margin-bottom: 6px;
}
.contact__form .wpcf7 input[type=text],
.contact__form .wpcf7 input[type=email],
.contact__form .wpcf7 input[type=tel],
.contact__form .wpcf7 input[type=url],
.contact__form .wpcf7 input[type=number],
.contact__form .wpcf7 input:not([type]),
.contact__form .wpcf7 textarea,
.contact__form .wpcf7 select {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid rgba(0,0,0,.12);
	background: #fff;
	color: var(--color-heading);
	font-family: inherit;
	font-size: 14px;
	margin-bottom: 18px;
	box-sizing: border-box;
	transition: border-color .25s ease, box-shadow .25s ease;
}
.contact__form .wpcf7 input:focus,
.contact__form .wpcf7 textarea:focus,
.contact__form .wpcf7 select:focus {
	outline: 0;
	border-color: var(--color-gold);
	box-shadow: 0 0 0 3px rgba(166,150,103,.15);
}
.contact__form .wpcf7 textarea { min-height: 150px; resize: vertical; }

.contact__form .wpcf7 input[type=checkbox],
.contact__form .wpcf7 input[type=radio] {
	width: 16px;
	height: 16px;
	margin: 0 8px 0 0;
	vertical-align: middle;
	accent-color: var(--color-gold-dark);
}
.contact__form .wpcf7-acceptance,
.contact__form .wpcf7-checkbox,
.contact__form .wpcf7-radio {
	display: block;
	margin: 10px 0;
	text-align: left;
	color: var(--color-body);
	font-size: 13px;
	line-height: 1.5;
}
.contact__form .wpcf7-list-item { margin: 0 0 6px; display: block; }
.contact__form .wpcf7-list-item-label { color: var(--color-body); text-transform: none; letter-spacing: normal; font-family: var(--font-body); font-size: 13px; }

.contact__form .wpcf7 input[type=submit],
.contact__form .wpcf7 button[type=submit] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-heading);
	font-size: var(--fs-eyebrow);
	letter-spacing: var(--ls-cta);
	text-transform: uppercase;
	font-weight: 400;
	line-height: 1;
	padding: var(--btn-pad-y) var(--btn-pad-x);
	border: 1px solid var(--color-gold);
	background: var(--color-gold);
	color: #fff;
	cursor: pointer;
	transition: background .25s ease, color .25s ease, gap .25s ease;
	width: auto;
	margin-top: 6px;
}
.contact__form .wpcf7 input[type=submit]:hover,
.contact__form .wpcf7 button[type=submit]:hover {
	background: var(--color-gold-dark);
	border-color: var(--color-gold-dark);
}

/* =======================================================================
 * avis_google — Section avis (testimonials Google)
 * ======================================================================= */
.section--avis-google { padding: 80px 20px; background: var(--color-bg); }
.avis-google { max-width: var(--container); margin: 0 auto; }

.avis-google__header { text-align: center; margin-bottom: 50px; }
.avis-google__eyebrow {
	font-family: var(--font-heading);
	font-size: var(--fs-eyebrow);
	letter-spacing: var(--ls-eyebrow);
	text-transform: uppercase;
	color: var(--color-gold);
	margin: 0 0 14px;
}
.avis-google__title {
	font-family: var(--font-heading);
	font-weight: 300;
	font-size: var(--fs-h2);
	color: var(--color-heading);
	margin: 0 0 28px;
	line-height: 1.2;
}
.avis-google__score {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	flex-wrap: wrap;
	justify-content: center;
	margin: 0 0 28px;
}
.avis-google__score-value {
	font-family: var(--font-heading);
	font-size: 26px;
	font-weight: 500;
	color: var(--color-heading);
}
.avis-google__score-stars { color: #fbbc05; font-size: 20px; letter-spacing: 2px; }
.avis-google__score-count { color: var(--color-body); font-size: 14px; }

.avis-google__actions {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 18px;
	flex-wrap: wrap;
	margin-top: 44px;
}
.avis-google__cta {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--font-heading);
	font-size: 12px;
	letter-spacing: 2px;
	text-transform: uppercase;
	padding: 11px 22px;
	text-decoration: none;
	transition: background .25s ease, color .25s ease, border-color .25s ease, gap .25s ease;
	white-space: nowrap;
}
.avis-google__cta--primary {
	color: #fff;
	background: var(--color-gold);
	border: 1px solid var(--color-gold);
}
.avis-google__cta--primary:hover { background: var(--color-gold-dark); border-color: var(--color-gold-dark); color: #fff; }
.avis-google__cta--ghost {
	color: var(--color-gold);
	background: transparent;
	border: 1px solid var(--color-gold);
}
.avis-google__cta--ghost:hover { background: var(--color-gold); color: #fff; gap: 14px; }
.avis-google__cta-arrow { font-size: 14px; line-height: 1; transition: transform .25s ease; }
.avis-google__cta--ghost:hover .avis-google__cta-arrow { transform: translateX(2px); }
.avis-google__g { flex-shrink: 0; }

.avis-google__carousel {
	position: relative;
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 18px;
}
.avis-google__viewport {
	overflow: hidden;
	min-width: 0;
}
.avis-google__list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	gap: 24px;
	scroll-snap-type: x mandatory;
	overflow-x: auto;
	scroll-behavior: smooth;
	scrollbar-width: none;
	-ms-overflow-style: none;
}
.avis-google__list::-webkit-scrollbar { display: none; }
.avis-google__item {
	flex: 0 0 calc((100% - 48px) / 3);
	min-width: 0;
	scroll-snap-align: start;
	display: flex;
}
.avis-google__nav {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: #fff;
	border: 1px solid var(--color-gold);
	color: var(--color-gold);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: background .25s ease, color .25s ease, opacity .25s ease, transform .25s ease;
	flex-shrink: 0;
	box-shadow: var(--shadow-card);
}
.avis-google__nav:hover:not(:disabled) { background: var(--color-gold); color: #fff; transform: scale(1.05); }
.avis-google__nav:disabled { opacity: .3; cursor: not-allowed; }
.avis-google__dots {
	grid-column: 1 / -1;
	display: flex;
	justify-content: center;
	gap: 8px;
	margin-top: 24px;
}
.avis-google__dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	border: 0;
	background: #d8d3c2;
	padding: 0;
	cursor: pointer;
	transition: background .25s ease, transform .25s ease;
}
.avis-google__dot:hover { background: var(--color-gold); }
.avis-google__dot.is-active { background: var(--color-gold); transform: scale(1.3); }

.avis-card {
	position: relative;
	background: #fff;
	padding: 26px 26px 24px;
	box-shadow: var(--shadow-card);
	display: flex;
	flex-direction: column;
	gap: 14px;
	transition: var(--trans-card);
	flex: 1;
}
.avis-card:hover { box-shadow: var(--shadow-card-hover); transform: translateY(-2px); }

.avis-card__head { display: flex; align-items: center; gap: 12px; }
.avis-card__avatar {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--color-gold) 0%, var(--color-gold-dark) 100%);
	color: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-heading);
	font-size: 16px;
	font-weight: 500;
	flex-shrink: 0;
}
.avis-card__avatar--photo { object-fit: cover; background: none; }
.avis-card__g-link { line-height: 0; opacity: .9; transition: opacity .2s ease; }
.avis-card__g-link:hover { opacity: 1; }
.avis-card__meta { flex: 1; min-width: 0; }
.avis-card__auteur {
	margin: 0;
	font-family: var(--font-heading);
	font-size: 14px;
	font-weight: 500;
	color: var(--color-heading);
}
.avis-card__date {
	margin: 2px 0 0;
	font-size: 12px;
	color: var(--color-body);
}
.avis-card__g { flex-shrink: 0; opacity: .9; }

.avis-card__stars { letter-spacing: 2px; font-size: 16px; line-height: 1; }
.avis-card__star { color: #d8d3c2; }
.avis-card__star.is-full { color: #fbbc05; }

.avis-card__body { display: flex; flex-direction: column; gap: 10px; }
.avis-card__texte {
	margin: 0;
	line-height: 1.65;
	color: var(--color-body);
	font-size: 14px;
	display: -webkit-box;
	-webkit-line-clamp: 6;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.avis-card.is-expanded .avis-card__texte {
	-webkit-line-clamp: unset;
	display: block;
	overflow: visible;
}
.avis-card__more {
	align-self: flex-start;
	background: none;
	border: 0;
	padding: 0;
	font-family: var(--font-heading);
	font-size: 11px;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: var(--color-gold);
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	transition: color .2s ease, gap .2s ease;
}
.avis-card__more:hover { color: var(--color-gold-dark); gap: 9px; }
.avis-card__more-arrow { display: inline-block; transition: transform .25s ease; line-height: 1; }
.avis-card.is-expanded .avis-card__more-arrow { transform: rotate(180deg); }

@media (max-width: 1100px) {
	.avis-google__item { flex: 0 0 calc((100% - 24px) / 2); }
}
@media (max-width: 700px) {
	.section--avis-google { padding: 55px 15px; }
	.avis-google__carousel { gap: 10px; }
	.avis-google__item { flex: 0 0 100%; }
	.avis-google__list { gap: 16px; }
	.avis-google__nav { width: 38px; height: 38px; }
	.avis-card { padding: 22px; }
	.avis-google__actions { flex-direction: column; gap: 12px; width: 100%; }
	.avis-google__cta { width: 100%; justify-content: center; }
}

/* =======================================================================
 * Formulaire de contact natif (.cf-form)
 * ======================================================================= */
.cf-form { display: block; font-family: var(--font-body); }
.cf-form input[type=text],
.cf-form input[type=email],
.cf-form input[type=tel],
.cf-form textarea {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid rgba(0, 0, 0, .12);
	background: #fff;
	color: var(--color-heading);
	font-family: inherit;
	font-size: 14px;
	transition: border-color .25s ease, box-shadow .25s ease;
}
.cf-form input:focus,
.cf-form textarea:focus {
	outline: none;
	border-color: var(--color-gold);
	box-shadow: 0 0 0 3px rgba(166, 150, 103, .15);
}
.cf-form textarea { min-height: 150px; resize: vertical; }

.cf-field { margin-bottom: 18px; position: relative; }
.cf-field__error {
	display: block;
	color: #b23a3a;
	font-size: 12px;
	line-height: 1.4;
	margin-top: 4px;
	min-height: 0;
}
.cf-field.is-invalid input,
.cf-field.is-invalid textarea {
	border-color: #b23a3a;
	background: #fff6f6;
}

/* Ligne Prénom / Nom */
.cf-form__row--names { display: flex; flex-wrap: wrap; gap: 14px; margin-bottom: 18px; }
.cf-form__row--names > .cf-field { flex: 1 1 200px; min-width: 0; margin-bottom: 0; }

/* Type de contact — radios */
.cf-form__type {
	display: flex;
	flex-wrap: wrap;
	gap: 22px;
	margin-bottom: 22px;
}
.cf-radio { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; }
.cf-radio input { accent-color: var(--color-gold-dark); width: 16px; height: 16px; }
.cf-radio span {
	font-family: var(--font-heading);
	font-size: 12px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--color-heading);
}

/* Société (conditionnel) */
.cf-form__pro-wrap { display: none; }
.cf-form:has(input[name="type"][value="Professionnel"]:checked) .cf-form__pro-wrap { display: block; }

/* Fichier */
.cf-form__file {
	display: block;
	margin: 6px 0 18px;
}
.cf-form__file-label {
	display: block;
	margin-bottom: 6px;
	font-family: var(--font-heading);
	font-size: 11px;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: var(--color-body);
}
.cf-form input[type=file] {
	display: block;
	width: 100%;
	padding: 10px 12px;
	font-size: 13px;
	background: #fff;
	border: 1px dashed rgba(166, 150, 103, .4);
	cursor: pointer;
}
.cf-form input[type=file]:hover { border-color: var(--color-gold); }

/* Case de consentement */
.cf-form__consent {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 4px 0 18px;
	font-size: 13px;
	line-height: 1.5;
	color: var(--color-body);
	cursor: pointer;
}
.cf-form__consent input {
	accent-color: var(--color-gold-dark);
	width: 16px; height: 16px;
	margin-top: 2px;
	flex-shrink: 0;
}
.cf-form__consent span { flex: 1; }

/* Honeypot caché */
.cf-form__hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px; height: 1px;
	overflow: hidden;
}

/* Submit */
.cf-form__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	font-family: var(--font-heading);
	font-size: var(--fs-eyebrow);
	letter-spacing: var(--ls-cta);
	text-transform: uppercase;
	padding: var(--btn-pad-y) var(--btn-pad-x);
	border: 1px solid var(--color-gold);
	background: var(--color-gold);
	color: #fff;
	cursor: pointer;
	transition: background .25s ease, border-color .25s ease, opacity .25s ease;
}
.cf-form__submit:hover { background: var(--color-gold-dark); border-color: var(--color-gold-dark); }
.cf-form__submit[disabled] { opacity: .6; cursor: not-allowed; }
.cf-form__submit-spinner {
	display: none;
	width: 14px; height: 14px;
	border: 2px solid rgba(255, 255, 255, .4);
	border-top-color: #fff;
	border-radius: 50%;
	animation: cf-spin .8s linear infinite;
}
.cf-form.is-sending .cf-form__submit-spinner { display: inline-block; }
@keyframes cf-spin { to { transform: rotate(360deg); } }

/* Feedback */
.cf-form__feedback {
	margin-top: 16px;
	padding: 14px 16px;
	font-size: 14px;
	line-height: 1.5;
	display: none;
}
.cf-form__feedback.is-visible { display: block; }
.cf-form__feedback.is-success { background: #f4f7ee; border-left: 3px solid #7d9a4e; color: #3c5220; }
.cf-form__feedback.is-error   { background: #fbeded; border-left: 3px solid #b23a3a; color: #6b1f1f; }

/* Mobile */
@media (max-width: 640px) {
	.cf-form__row--names { flex-direction: column; gap: 18px; }
	.cf-form__row--names > .cf-field { flex: 0 0 auto; }
}

/* --- Particulier / Professionnel : choix + layout conditionnel --- */
.cf7-type-choice { margin-bottom: 18px; }
.cf7-type-choice .wpcf7-radio { display: flex; flex-wrap: wrap; gap: 20px; margin: 0; }
.cf7-type-choice .wpcf7-list-item { margin: 0; display: inline-flex; align-items: center; }
.cf7-type-choice .wpcf7-list-item-label {
	font-family: var(--font-heading);
	font-size: 12px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--color-heading);
}
.cf7-row--names { display: flex; flex-wrap: wrap; gap: 14px; margin-bottom: 18px; }
.cf7-row--names > * { flex: 1 1 200px; min-width: 0; margin: 0 !important; padding: 0 !important; }
.cf7-row--names > * input,
.cf7-row--names input,
.cf7-row--names br { width: 100%; margin: 0 !important; padding: 12px 14px !important; }
.cf7-row--names br { display: none !important; }

/* Affichage conditionnel (CSS :has — fallback JS via main.js) */
.cf7-field-pro-wrap { display: none; }
.wpcf7-form:has(input[name="type-contact"][value="Professionnel"]:checked) .cf7-field-pro-wrap { display: block; }

/* Upload de fichier */
.cf7-file-label {
	display: block;
	margin: 6px 0 14px;
	font-family: var(--font-heading);
	font-size: 11px;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: var(--color-body);
}
.contact__form .wpcf7 input[type=file] {
	display: block;
	width: 100%;
	margin-top: 6px;
	padding: 10px 12px;
	font-size: 13px;
	font-family: var(--font-body);
	background: #fff;
	border: 1px dashed rgba(166, 150, 103, .4);
	cursor: pointer;
	text-transform: none;
	letter-spacing: normal;
}
.contact__form .wpcf7 input[type=file]:hover { border-color: var(--color-gold); }

@media (max-width: 640px) {
	.cf7-row--names { flex-direction: column; gap: 18px; margin-bottom: 18px; }
	.cf7-row--names > * { flex: 0 0 auto !important; }
	.cf7-type-choice .wpcf7-radio { gap: 14px; }
}

/* =======================================================================
 * bloc_carte (titre + texte + Google Maps)
 * ======================================================================= */
.section--bloc-carte { padding: 60px 0 0; background: #fff; }
.bloc-carte__header {
	max-width: 900px;
	margin: 0 auto 40px;
	padding: 0 20px;
	text-align: center;
}
.bloc-carte__titre {
	font-family: var(--font-heading);
	font-weight: 300;
	font-size: var(--fs-h2);
	color: var(--color-gold);
	margin: 0 0 25px;
}
.bloc-carte__separator {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 15px;
	margin: 0 0 25px;
}
.bloc-carte__separator img { width: 50px; height: auto; }
.bloc-carte__separator-line {
	display: block;
	height: 1px;
	width: 100px;
	background: #5b5b5b;
}
.bloc-carte__texte { line-height: 1.8; color: var(--color-body); }
.bloc-carte__map iframe { display: block; width: 100%; border: 0; }

.bloc-carte__map--static { position: relative; overflow: hidden; }
.bloc-carte__link {
	display: block;
	width: 100%;
	height: 100%;
	position: relative;
	overflow: hidden;
}
.bloc-carte__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .8s ease, filter .4s ease;
}
.bloc-carte__link:hover .bloc-carte__image { transform: scale(1.02); }
.bloc-carte__cta {
	position: absolute;
	bottom: 24px;
	left: 50%;
	transform: translateX(-50%);
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--font-heading);
	font-size: var(--fs-eyebrow);
	letter-spacing: var(--ls-cta);
	text-transform: uppercase;
	color: #fff;
	background: var(--color-gold);
	padding: var(--btn-pad-y) var(--btn-pad-x);
	border: 1px solid var(--color-gold);
	box-shadow: 0 8px 24px rgba(0,0,0,.15);
	transition: background .25s ease, border-color .25s ease, gap .25s ease;
}
.bloc-carte__link:hover .bloc-carte__cta {
	background: var(--color-gold-dark);
	border-color: var(--color-gold-dark);
	gap: 14px;
}

@media (max-width: 900px) {
	.section--contact { padding: 55px 15px; }
	.contact { grid-template-columns: 1fr; gap: 50px; }
}

/* =======================================================================
 * cartes_services
 * ======================================================================= */
.section--cartes { padding: 90px 20px; background: #fff; }
.cartes {
	max-width: var(--container);
	margin: 0 auto;
	display: grid;
}
.cartes--cols-1 { grid-template-columns: 1fr; }
.cartes--cols-2 { grid-template-columns: repeat(2, 1fr); }
.cartes--cols-3 { grid-template-columns: repeat(3, 1fr); }
.cartes--cols-4 { grid-template-columns: repeat(4, 1fr); }
.carte {
	text-align: center;
	padding: 0 30px;
	border-right: 1px solid var(--color-gold);
}
.carte:last-child { border-right: 0; }
.carte__link { display: block; color: inherit; transition: opacity .2s; }
.carte__link:hover { opacity: .85; }
.carte__icone { width: 100px; height: auto; margin: 0 auto 20px; }
.carte__titre {
	font-family: var(--font-heading);
	font-weight: 500;
	font-size: 25px;
	line-height: 1;
	color: var(--color-gold);
	margin: 0 0 15px;
}
.carte__texte { font-size: 14px; line-height: 1.6; color: var(--color-body); }

/* =======================================================================
 * Footer — fond or (prod), 4 colonnes, design redynamisé
 * ======================================================================= */
.site-footer {
	position: relative;
	background: var(--color-gold);
	color: rgba(255,255,255,.9);
	font-family: var(--font-body);
	font-size: 14px;
	line-height: 1.7;
	overflow: hidden;
}
.site-footer::before { display: none; }
/* Filet or foncé simple en haut */
.site-footer__flourish {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 2px;
	background: var(--color-gold-dark);
}

.site-footer__widgets {
	position: relative;
	max-width: var(--container);
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1.1fr 1.1fr 1.1fr 1fr;
	align-items: start;
	padding: 70px 20px 55px;
	gap: 50px;
}
.site-footer__col {
	position: relative;
	min-width: 0;
}

/* Colonne logo — centré, avec trait décoratif */
.site-footer__col--logo {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding-top: 8px;
}
.site-footer__col--logo::after {
	content: "";
	display: block;
	width: 60px;
	height: 1px;
	background: rgba(255,255,255,.5);
	margin-top: 22px;
}
.site-footer__col--logo img {
	max-width: 240px;
	width: 100%;
	height: auto;
	filter: brightness(0) invert(1);
	transition: transform .5s ease;
}
.site-footer__col--logo:hover img {
	transform: scale(1.03);
}

/* Titres de colonne — eyebrow style blanc + filet or foncé */
.site-footer__title {
	position: relative;
	font-family: var(--font-heading);
	font-weight: 500;
	font-size: var(--fs-eyebrow);
	letter-spacing: var(--ls-eyebrow);
	text-transform: uppercase;
	color: #fff;
	margin: 0 0 22px;
	padding-bottom: 14px;
}
.site-footer__title::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 30px;
	height: 1px;
	background: var(--color-gold-dark);
	transition: width .35s ease;
}
.site-footer__col:hover .site-footer__title::after { width: 60px; }

.site-footer__info {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.site-footer__info li {
	display: flex;
	align-items: center;
	gap: 12px;
	color: rgba(255,255,255,.92);
	line-height: 1.55;
	font-size: 14px;
}
.site-footer__info strong {
	font-family: var(--font-heading);
	font-weight: 500;
	font-size: 13px;
	letter-spacing: 1px;
	color: #fff;
	display: block;
	margin-bottom: 4px;
}

/* Icônes — cercle transparent avec bord blanc fin */
.site-footer__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	min-width: 30px;
	height: 30px;
	border-radius: 50%;
	background: rgba(255,255,255,.12);
	color: #fff;
	flex-shrink: 0;
	transition: background .25s ease, transform .25s ease;
}
.site-footer__info li:hover .site-footer__icon {
	background: #fff;
	color: var(--color-gold);
	transform: rotate(-8deg);
}
.site-footer__icon svg { width: 13px; height: 13px; }

.site-footer__col a {
	color: rgba(255,255,255,.92);
	text-decoration: none;
	transition: color .25s ease;
	border-bottom: 1px solid transparent;
}
.site-footer__col a:hover {
	color: #fff;
	border-bottom-color: rgba(255,255,255,.6);
}

/* Icônes sociales — pastilles blanches arrondies, passent en or foncé au hover */
.site-footer__socials {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	list-style: none;
	padding: 0;
	margin: 0;
}
.site-footer__col a.site-footer__social,
.site-footer__social {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: #fff;
	color: var(--color-gold);
	border-bottom: 0;
	transition: transform .3s cubic-bezier(.2,.8,.2,1), background .3s ease, color .3s ease, box-shadow .3s ease;
	box-shadow: 0 2px 8px rgba(0,0,0,.08);
}
.site-footer__social svg { width: 15px; height: 15px; }
.site-footer__col a.site-footer__social:hover,
.site-footer__social:hover {
	background: var(--color-gold-dark);
	color: #fff;
	border-bottom: 0;
	transform: translateY(-3px) rotate(-4deg);
	box-shadow: 0 8px 20px rgba(0,0,0,.18);
}

/* Bas de page — bande or foncé */
.site-footer__bottom {
	position: relative;
	background: var(--color-gold-dark);
	color: rgba(255,255,255,.85);
	padding: 18px 20px;
}
.site-footer__bottom::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 120px;
	height: 1px;
	background: rgba(255,255,255,.35);
}
.site-footer__bottom-inner {
	max-width: var(--container);
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 15px;
}
.site-footer__copy {
	margin: 0;
	font-family: var(--font-heading);
	font-size: 12px;
	letter-spacing: 2px;
	color: rgba(255,255,255,.85);
	text-transform: uppercase;
}
.site-footer__legal-menu {
	display: flex;
	gap: 28px;
	flex-wrap: wrap;
	font-size: 12px;
	padding: 0;
	margin: 0;
	list-style: none;
}
.site-footer__legal-menu a {
	color: rgba(255,255,255,.85);
	text-decoration: none;
	font-family: var(--font-heading);
	letter-spacing: 1px;
	transition: color .25s ease;
}
.site-footer__legal-menu a:hover { color: #fff; }

.site-footer__credit {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--font-heading);
	font-size: 11px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: rgba(255,255,255,.55);
	text-decoration: none;
	transition: color .25s ease, opacity .25s ease;
}
.site-footer__credit:hover { color: #fff; }
.site-footer__credit-logo {
	height: 22px;
	width: auto;
	opacity: .85;
	transition: opacity .25s ease;
}
.site-footer__credit:hover .site-footer__credit-logo { opacity: 1; }

/* =======================================================================
 * Pages standard
 * ======================================================================= */
.page-article {
	max-width: var(--container);
	margin: 0 auto;
	padding: 50px 20px;
}
.page-article__title {
	font-size: 36px;
	font-weight: 300;
	text-align: center;
	margin-bottom: 30px;
}

/* =======================================================================
 * Single article — pages d'actualité / événements
 * ======================================================================= */
.single-article { background: #fff; }

.single-article__hero {
	position: relative;
	min-height: 480px;
	background: #333 center/cover no-repeat;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 90px 20px;
	color: #fff;
}
.single-article__hero-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0,0,0,.35) 0%, rgba(0,0,0,.55) 100%);
}
.single-article__hero-inner {
	position: relative;
	max-width: 900px;
	margin: 0 auto;
}
.single-article__category {
	font-family: var(--font-heading);
	font-size: 12px;
	letter-spacing: 4px;
	text-transform: uppercase;
	margin: 0 0 20px;
	color: var(--color-gold);
	font-weight: 500;
}
.single-article__title {
	font-family: var(--font-heading);
	font-weight: 300;
	font-size: 42px;
	line-height: 1.2;
	color: #fff;
	margin: 0 0 25px;
}
.single-article__separator {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 15px;
	margin: 0 0 20px;
}
.single-article__separator img { width: 50px; height: auto; filter: brightness(0) invert(1); opacity: .9; }
.single-article__separator-line {
	display: block;
	height: 1px;
	width: 80px;
	background: rgba(255,255,255,.6);
}
.single-article__meta {
	font-family: var(--font-heading);
	font-size: 13px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: rgba(255,255,255,.85);
	margin: 0;
}

.single-article__body {
	max-width: 820px;
	margin: 0 auto;
	padding: 70px 20px 40px;
}
.single-article__content {
	line-height: 1.9;
	color: var(--color-body);
	font-size: 15px;
}
.single-article__content p { margin: 0 0 1.3em; }
.single-article__content h2,
.single-article__content h3,
.single-article__content h4 {
	font-family: var(--font-heading);
	color: var(--color-heading);
	font-weight: 400;
	margin: 40px 0 18px;
}
.single-article__content h2 { font-size: 26px; color: var(--color-gold); font-weight: 300; }
.single-article__content h3 { font-size: 20px; }
.single-article__content h4 { font-size: 17px; }
.single-article__content ul,
.single-article__content ol { margin: 10px 0 20px; padding-left: 20px; }
.single-article__content ul li { list-style: disc; margin-left: 10px; padding: 3px 0; }
.single-article__content ol li { list-style: decimal; margin-left: 10px; padding: 3px 0; }
.single-article__content a { color: var(--color-gold-dark); text-decoration: underline; }
.single-article__content img {
	margin: 20px auto;
	max-width: 100%;
	height: auto;
}
.single-article__content blockquote {
	border-left: 3px solid var(--color-gold);
	padding: 10px 0 10px 25px;
	margin: 25px 0;
	font-style: italic;
	color: var(--color-heading);
}

.single-article__nav {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	gap: 30px;
	align-items: center;
	margin-top: 60px;
	padding-top: 40px;
	border-top: 1px solid rgba(0,0,0,.08);
}
.single-article__nav-item a {
	display: block;
	color: var(--color-body);
	transition: color .25s ease;
}
.single-article__nav-item a:hover { color: var(--color-gold); }
.single-article__nav-item--prev { text-align: left; }
.single-article__nav-item--next { text-align: right; }
.single-article__nav-item--back { text-align: center; }
.single-article__nav-label {
	display: block;
	font-family: var(--font-heading);
	font-size: 11px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--color-gold);
	margin-bottom: 6px;
}
.single-article__nav-title {
	display: block;
	font-size: 13px;
	line-height: 1.4;
}
.single-article__back {
	display: inline-block;
	font-family: var(--font-heading);
	font-size: var(--fs-eyebrow);
	letter-spacing: var(--ls-cta);
	text-transform: uppercase;
	color: var(--color-gold);
	border: 1px solid var(--color-gold);
	padding: var(--btn-pad-y) var(--btn-pad-x);
	transition: background .25s ease, color .25s ease;
}
.single-article__nav-item a.single-article__back:hover { background: var(--color-gold); color: #fff; }

/* =======================================================================
 * cartes_partenaires — Présentation détaillée (image + infos + offre)
 * ======================================================================= */
.section--partenaires { padding: 70px 20px; }

.partenaires-filtre {
	max-width: 560px;
	margin: 0 auto 50px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	text-align: center;
}
.partenaires-filtre__label {
	font-family: var(--font-heading);
	font-size: var(--fs-eyebrow);
	letter-spacing: var(--ls-eyebrow);
	text-transform: uppercase;
	color: var(--color-gold);
}
.partenaires-filtre__select-wrap {
	position: relative;
	width: 100%;
	max-width: 420px;
}
.partenaires-filtre__select {
	appearance: none;
	-webkit-appearance: none;
	width: 100%;
	padding: 14px 46px 14px 20px;
	font-family: var(--font-heading);
	font-size: 13px;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: var(--color-heading);
	background: #fff;
	border: 1px solid rgba(166, 150, 103, .4);
	cursor: pointer;
	transition: border-color .25s ease, box-shadow .25s ease;
}
.partenaires-filtre__select:hover,
.partenaires-filtre__select:focus {
	border-color: var(--color-gold);
	outline: none;
	box-shadow: 0 2px 12px rgba(166, 150, 103, .15);
}
.partenaires-filtre__chevron {
	position: absolute;
	right: 18px;
	top: 50%;
	transform: translateY(-60%);
	color: var(--color-gold);
	font-size: 18px;
	pointer-events: none;
}
.partenaires-filtre__submit {
	padding: 8px 18px;
	font-family: var(--font-heading);
	font-size: 11px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: #fff;
	background: var(--color-gold);
	border: 0;
	cursor: pointer;
}

@media (max-width: 640px) {
	.partenaires-filtre__select { font-size: 12px; padding: 12px 42px 12px 16px; }
}

.partenaires__empty {
	text-align: center;
	color: var(--color-body);
	font-style: italic;
	padding: 40px 0;
	max-width: 1200px;
	margin: 0 auto;
}

.partenaires-pagination {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 4px;
	margin: 60px auto 0;
	max-width: 1200px;
}
.partenaires-pagination__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	padding: 0 10px;
	font-family: var(--font-heading);
	font-size: 13px;
	letter-spacing: 1px;
	color: var(--color-body);
	border: 0;
	text-decoration: none;
	background: transparent;
	transition: color .25s ease, background .25s ease;
}
.partenaires-pagination__btn:hover {
	color: var(--color-gold);
}
.partenaires-pagination__btn.is-active {
	color: var(--color-gold);
	font-weight: 600;
	border-bottom: 1px solid var(--color-gold);
}
.partenaires-pagination__btn--nav {
	font-size: 20px;
	line-height: 1;
	color: var(--color-gold);
}
.partenaires-pagination__ellipsis {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 24px;
	height: 36px;
	color: var(--color-body);
	font-size: 14px;
	user-select: none;
}

.partenaires {
	max-width: var(--container);
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 24px;
	align-items: stretch;
}

.partenaire {
	display: flex;
	flex-direction: column;
	background: #fff;
	box-shadow: var(--shadow-card);
	transition: var(--trans-card);
	overflow: hidden;
	min-height: 0;
}
.partenaire:hover {
	box-shadow: var(--shadow-card-hover);
	transform: translateY(-3px);
}

.partenaire__media { display: none; }

.partenaire__body {
	padding: 18px 20px;
	display: flex;
	flex-direction: column;
	min-width: 0;
}
.partenaire__body:has(.partenaire__offre) {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(220px, 280px);
	column-gap: 28px;
	align-items: start;
}
.partenaire__body:has(.partenaire__offre) > * { grid-column: 1; }
.partenaire__body:has(.partenaire__offre) > .partenaire__offre {
	grid-column: 2;
	grid-row: 1 / 999;
	margin-top: 0;
	align-self: stretch;
}

.partenaire__categorie {
	display: inline-block;
	font-family: var(--font-heading);
	font-size: 10px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--color-gold);
	margin-bottom: 4px;
}
.partenaire__nom {
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: 17px;
	line-height: 1.25;
	color: var(--color-heading);
	margin: 0 0 8px;
}
.partenaire__separator {
	display: block;
	margin: 0 0 10px;
}
.partenaire__separator-line {
	display: block;
	width: 30px;
	height: 1px;
	background: var(--color-gold);
}

.partenaire__description {
	line-height: 1.55;
	color: var(--color-body);
	margin: 0 0 12px;
	font-size: 13px;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.partenaire__description p { margin: 0; display: inline; }
.partenaire__description p + p::before { content: " "; }

.partenaire__coords {
	margin: 0 0 14px;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 7px;
	font-size: 12.5px;
	color: var(--color-body);
	line-height: 1.45;
}
.partenaire__coords li {
	display: grid;
	grid-template-columns: 14px 1fr;
	align-items: start;
	gap: 10px;
}
.partenaire__coord-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--color-gold);
	margin-top: 3px;
	flex-shrink: 0;
}
.partenaire__coord-icon svg { width: 12px; height: 12px; }
.partenaire__coords a {
	color: var(--color-gold-dark);
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: border-color .25s ease;
}
.partenaire__coords a:hover { border-bottom-color: var(--color-gold); }

.partenaire__offre {
	position: relative;
	padding: 14px 16px 16px;
	background: #faf6ea;
	border: 1px solid rgba(166,150,103,.25);
	margin-top: auto;
}
.partenaire__offre-header {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 10px;
}
.partenaire__offre-eyebrow {
	font-family: var(--font-heading);
	font-weight: 500;
	font-size: 10px;
	letter-spacing: 2.5px;
	text-transform: uppercase;
	color: var(--color-gold);
	white-space: nowrap;
}
.partenaire__offre-header::before,
.partenaire__offre-header::after {
	content: "";
	flex: 1;
	height: 1px;
	background: rgba(166,150,103,.3);
}
.partenaire__offre-titre {
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: 14px;
	color: var(--color-heading);
	margin: 0 0 6px;
	text-align: center;
}
.partenaire__offre-texte {
	color: var(--color-body);
	line-height: 1.55;
	margin: 0 0 12px;
	font-size: 13px;
	text-align: center;
}
.partenaire__offre { text-align: center; }
.partenaire__offre-cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--font-heading);
	font-size: 11px;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	white-space: nowrap;
	color: var(--color-gold);
	border: 1px solid var(--color-gold);
	padding: 10px 16px;
	text-decoration: none !important;
	transition: background .25s ease, color .25s ease, gap .25s ease;
}
.partenaire__offre-cta:hover { background: var(--color-gold); color: #fff; gap: 14px; }

/* =======================================================================
 * cartes_reportages — Cartes presse/reportages (image + lien externe)
 * ======================================================================= */
.section--reportages { padding: 70px 20px; }
.reportages {
	max-width: var(--container);
	margin: 0 auto;
	display: grid;
	gap: 40px;
}
.reportages--cols-1 { grid-template-columns: 1fr; max-width: 820px; }
.reportages--cols-2 { grid-template-columns: repeat(2, 1fr); }
.reportages--cols-3 { grid-template-columns: repeat(3, 1fr); }
.reportages--cols-4 { grid-template-columns: repeat(4, 1fr); }

.reportage {
	background: #fff;
	box-shadow: var(--shadow-card);
	transition: box-shadow .35s ease, transform .35s ease;
	overflow: hidden;
}
.reportage:hover { box-shadow: var(--shadow-card-hover); transform: translateY(-3px); }

.reportage__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	color: inherit;
}
.reportage__link:hover { color: inherit; }

.reportage__media {
	position: relative;
	overflow: hidden;
	aspect-ratio: 16 / 9;
	background: var(--color-bg);
}
.reportage__media--video { background: #000; }
.reportage__media--video iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}
.reportage__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .6s ease;
}
.reportage:hover .reportage__image { transform: scale(1.04); }

.reportage__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,.65) 100%);
	display: flex;
	align-items: flex-end;
	justify-content: center;
	padding: 20px;
	opacity: 0;
	transition: opacity .35s ease;
}
.reportage:hover .reportage__overlay { opacity: 1; }
.reportage__play {
	color: #fff;
	font-family: var(--font-heading);
	font-size: 12px;
	letter-spacing: 2px;
	text-transform: uppercase;
	border: 1px solid rgba(255,255,255,.8);
	padding: 10px 18px;
}

.reportage__body {
	padding: 20px 24px 24px;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.reportage__source {
	font-family: var(--font-heading);
	font-size: 11px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--color-gold);
}
.reportage__titre {
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: 16px;
	line-height: 1.4;
	color: var(--color-heading);
	margin: 0;
}

/* =======================================================================
 * evenements_liste — Liste d'événements (articles de catégorie)
 * ======================================================================= */
.section--evenements { padding: 70px 20px; }
.evenements {
	max-width: var(--container);
	margin: 0 auto;
	display: grid;
	gap: 40px;
}
.evenements--cols-1 { grid-template-columns: 1fr; max-width: 820px; }
.evenements--cols-2 { grid-template-columns: repeat(2, 1fr); }
.evenements--cols-3 { grid-template-columns: repeat(3, 1fr); }

.evenement {
	background: #fff;
	box-shadow: var(--shadow-card);
	transition: box-shadow .35s ease, transform .35s ease;
	overflow: hidden;
}
.evenement:hover { box-shadow: var(--shadow-card-hover); transform: translateY(-3px); }

.evenement__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	color: inherit;
}
.evenement__link:hover { color: inherit; }

.evenement__media {
	position: relative;
	overflow: hidden;
	aspect-ratio: 16 / 10;
	background: var(--color-bg);
}
.evenement__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .6s ease;
}
.evenement:hover .evenement__image { transform: scale(1.04); }

.evenement__date {
	position: absolute;
	top: 20px;
	left: 20px;
	background: var(--color-gold);
	color: #fff;
	padding: 10px 14px 8px;
	text-align: center;
	min-width: 64px;
	font-family: var(--font-heading);
	line-height: 1;
	box-shadow: 0 4px 12px rgba(0,0,0,.15);
}
.evenement__date-jour {
	display: block;
	font-size: 24px;
	font-weight: 500;
	letter-spacing: .5px;
}
.evenement__date-mois {
	display: block;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 2px;
	margin-top: 4px;
	font-weight: 400;
}
.evenement__date-annee {
	display: block;
	font-size: 10px;
	letter-spacing: 1.5px;
	margin-top: 3px;
	opacity: .85;
}

.evenement__body {
	padding: 28px 28px 30px;
	display: flex;
	flex-direction: column;
	flex: 1;
}
.evenement__titre {
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: 20px;
	line-height: 1.35;
	color: var(--color-heading);
	margin: 0 0 14px;
}
.evenement__excerpt {
	color: var(--color-body);
	line-height: 1.8;
	font-size: 14px;
	margin: 0 0 18px;
	flex: 1;
}
.evenement__cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--font-heading);
	font-size: 12px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--color-gold);
	transition: gap .25s ease, color .25s ease;
}
.evenement:hover .evenement__cta { gap: 14px; color: var(--color-gold-dark); }

/* =======================================================================
 * Responsive
 * ======================================================================= */
@media (max-width: 1024px) {
	.site-header__inner { grid-template-columns: auto 1fr auto; }
	.site-nav__list a { padding: 20px 10px; font-size: 13px; }
	.site-header__logo-banniere { max-width: 130px; }
}

/* -----------------------------------------------------------------------
 * Tablettes (portrait/paysage) — 901px à 1100px
 * -------------------------------------------------------------------- */
@media (min-width: 901px) and (max-width: 1100px) {
	:root {
		--section-py: 60px;
		--fs-h2: 32px;
	}

	/* Grilles de cartes : 3/4 colonnes → 2 colonnes */
	.cartes--cols-3, .cartes--cols-4 { grid-template-columns: repeat(2, 1fr); }
	.reportages--cols-3, .reportages--cols-4 { grid-template-columns: repeat(2, 1fr); }
	.evenements--cols-3 { grid-template-columns: repeat(2, 1fr); }
	.grille-videos--cols-3, .grille-videos--cols-4 { grid-template-columns: repeat(2, 1fr); }

	/* Partenaires : passage à 2 colonnes */
	.partenaires { grid-template-columns: repeat(2, 1fr); gap: 24px; }

	/* Galerie dense → 4 colonnes max */
	.galerie--cols-5, .galerie--cols-6 { grid-template-columns: repeat(4, 1fr); }

	/* Contact : colonnes plus équilibrées et gap réduit */
	.contact { grid-template-columns: 1fr 1fr; gap: 48px; }

	/* Bloc split : image un peu plus compacte */
	.bloc-split__content { padding: 50px 36px; }
	.bloc-split__image { min-height: 360px; }

	/* Hero parallax : typographie ajustée */
	.hero-parallax { padding: 60px 30px; min-height: 520px; }
	.hero-parallax__title { font-size: 42px !important; }
	.hero-parallax__subtitle { font-size: 18px !important; }

	/* Footer : 3 colonnes au lieu de 4 */
	.site-footer__widgets { grid-template-columns: repeat(3, 1fr); gap: 40px; }

	/* Navigation : réduire encore le padding */
	.site-nav__list a { padding: 18px 8px; font-size: 12px; }
}

@media (max-width: 900px) {
	:root { --header-h: 64px; --header-h-compact: 60px; }

	.site-header__inner {
		padding: 0 15px;
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
	}
	.site-header__logo { width: auto; flex: 0 1 auto; min-width: 0; }
	.site-header__logo-banniere { display: none; }
	.site-header__logo-compact { opacity: 1; margin-left: 0; max-height: 40px; width: auto; }

	/* --- Bouton hamburger animé --- */
	.site-nav__toggle {
		display: inline-flex !important;
		align-items: center;
		justify-content: center;
		width: 44px; height: 44px;
		background: transparent;
		border: 0;
		padding: 0;
		cursor: pointer;
		position: relative;
		z-index: 1100;
		flex-shrink: 0;
		margin-left: auto;
	}
	.site-nav__toggle-bar {
		position: absolute;
		left: 12px;
		right: 12px;
		top: 50%;
		height: 2px;
		background: var(--color-heading);
		transform: translateY(-50%);
		transition: transform .3s ease, background .3s ease;
	}
	.site-nav__toggle-bar::before,
	.site-nav__toggle-bar::after {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		height: 2px;
		background: var(--color-heading);
		transition: transform .3s ease, top .3s ease, opacity .3s ease, background .3s ease;
	}
	.site-nav__toggle-bar::before { top: -8px; }
	.site-nav__toggle-bar::after  { top: 8px; }
	.site-nav__toggle.is-open .site-nav__toggle-bar { background: transparent; }
	.site-nav__toggle.is-open .site-nav__toggle-bar::before { top: 0; transform: rotate(45deg); background: var(--color-gold); }
	.site-nav__toggle.is-open .site-nav__toggle-bar::after  { top: 0; transform: rotate(-45deg); background: var(--color-gold); }

	/* --- Panneau plein écran --- */
	.site-nav {
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		width: 100vw;
		background: #fff;
		z-index: 1050;
		transform: translateX(100%);
		transition: transform .45s cubic-bezier(.2,.8,.2,1);
		display: flex;
		flex-direction: column;
		box-shadow: none;
		overflow-y: auto;
		overscroll-behavior: contain;
	}
	body.admin-bar .site-nav { top: 46px; }
	.site-nav.is-open { transform: translateX(0); }

	.site-nav__backdrop {
		display: block;
		position: fixed;
		inset: 0;
		background: rgba(18,17,15,.5);
		opacity: 0;
		visibility: hidden;
		transition: opacity .4s ease, visibility .4s ease;
		z-index: 1040;
	}
	html.nav-open .site-nav__backdrop {
		opacity: 1;
		visibility: visible;
	}
	html.nav-open { overflow: hidden; }

	/* --- Liste liens --- */
	.site-nav__list {
		list-style: none;
		padding: 80px 30px 20px;
		margin: 0;
		display: flex;
		flex-direction: column;
		gap: 0;
		flex: 1;
	}
	.site-nav__list > li {
		border-bottom: 1px solid rgba(0,0,0,.06);
		display: flex;
		flex-wrap: wrap;
		align-items: center;
	}
	.site-nav__list > li:last-child { border-bottom: 0; }
	.site-nav__list > li > a {
		flex: 1 1 auto;
		display: block;
		padding: 18px 0;
		font-family: var(--font-heading);
		font-size: 15px;
		font-weight: 400;
		letter-spacing: 1px;
		color: var(--color-heading);
		line-height: 1;
		transition: color .25s ease, padding-left .3s ease;
	}
	.site-nav__list > li > a::after { display: none; }
	.site-nav__list a:hover,
	.site-nav__list .current-menu-item > a,
	.site-nav__list .current-menu-ancestor > a {
		color: var(--color-gold);
		padding-left: 8px;
	}
	.site-nav__list .sub-menu {
		position: static;
		top: auto;
		left: auto;
		right: auto;
		transform: none;
		box-shadow: none;
		border-top: 0;
		background: transparent;
		opacity: 1; visibility: visible;
		pointer-events: auto;
		clip-path: none;
		padding: 0;
		list-style: none;
		margin: 0;
		min-width: 0;
		width: 100%;
		flex-basis: 100%;
		max-height: 0;
		overflow: hidden;
		transition: max-height .35s cubic-bezier(.2,.8,.2,1);
	}
	.site-nav__list li.is-expanded > .sub-menu { max-height: 600px; }
	/* Neutralise les styles de hover desktop qui se déclenchent aussi sur tap mobile */
	.site-nav__list > li:hover > .sub-menu,
	.site-nav__list > li:focus-within > .sub-menu {
		transform: none;
		opacity: 1;
		visibility: visible;
		max-height: 0;
	}
	.site-nav__list > li:hover.is-expanded > .sub-menu,
	.site-nav__list > li:focus-within.is-expanded > .sub-menu,
	.site-nav__list > li.is-expanded > .sub-menu {
		max-height: 600px;
	}
	.site-nav__list .sub-menu__inner {
		overflow: hidden;
		padding: 0 0 12px 16px;
	}
	.site-nav__list .sub-menu a {
		padding: 10px 0;
		font-size: 13px;
		color: var(--color-body);
		border: 0;
		text-transform: none;
		letter-spacing: .5px;
	}

	/* Bouton de déploiement des sous-menus */
	.site-nav__submenu-toggle {
		flex: 0 0 44px;
		width: 44px;
		height: 44px;
		border: 0;
		background: transparent;
		cursor: pointer;
		color: var(--color-gold);
		font-size: 20px;
		line-height: 1;
		padding: 0;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		transition: transform .3s ease, color .3s ease;
	}
	.site-nav__list li.is-expanded > .site-nav__submenu-toggle {
		transform: rotate(90deg);
		color: var(--color-gold-dark);
	}

	/* --- Footer du menu : CTA + socials --- */
	.site-nav__mobile-footer {
		padding: 24px 30px 30px;
		border-top: 1px solid rgba(0,0,0,.08);
		background: #faf7f0;
		display: flex;
		flex-direction: column;
		gap: 18px;
	}
	.site-nav__mobile-cta {
		width: 100%;
		justify-content: center;
	}
	.site-nav__mobile-socials {
		display: flex;
		gap: 12px;
		list-style: none;
		padding: 0;
		margin: 0;
		justify-content: center;
	}
	.site-nav__mobile-social {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 40px;
		height: 40px;
		border: 1px solid rgba(166,150,103,.35);
		color: var(--color-gold);
		border-radius: 50%;
		transition: background .25s ease, color .25s ease, border-color .25s ease;
	}
	.site-nav__mobile-social:hover {
		background: var(--color-gold);
		color: #fff;
		border-color: var(--color-gold);
	}
	.site-nav__mobile-social svg { width: 14px; height: 14px; }

	/* --- Header droite : masquer devis + langues sur mobile --- */
	.site-header__right { display: none; }

	.topbar { grid-template-columns: 1fr; }
	.topbar__right { justify-content: center; padding: 10px 15px; }

	/* Échelle typographique réduite sur mobile */
	:root {
		--fs-h2: 28px;
		--fs-h1: 32px;
		--section-py: 55px;
	}

	.section--cta { background-attachment: scroll; }
	.section--bloc-split { grid-template-columns: 1fr; }
	.section--bloc-split .bloc-split__image { min-height: 260px; }
	.section--image-droite .bloc-split__image { order: -1; }
	.bloc-split__content { padding: 40px 20px; }
	.bloc-split__sous-titre { font-size: 26px !important; }
	.bloc-contenu { padding: 0 5px; }
	.bloc-contenu__sous-titre { font-size: 26px !important; }

	.section--bloc-contenu { padding: 55px 20px; }
	.hero-parallax { padding: 40px 20px; min-height: 420px; }
	.hero-parallax__title { font-size: 30px !important; }
	.hero-parallax__subtitle { font-size: 16px !important; }
	.hero-parallax__content,
	.section--pos-droite .hero-parallax__content,
	.section--pos-gauche .hero-parallax__content {
		width: 100%;
		max-width: 100%;
		background: rgba(255, 255, 255, .5);
		backdrop-filter: blur(3px);
		-webkit-backdrop-filter: blur(3px);
		padding: 30px 22px;
		border: 1px solid rgba(166, 150, 103, .18);
		box-shadow: 0 2px 18px rgba(0, 0, 0, .06);
	}
	.section--hero-parallax .hero-parallax { justify-content: center; }
	.section--cta .section__inner { padding: 90px 20px; }
	.section--cta .section__subtitle { font-size: 26px; line-height: 1.25; }

	.galerie--cols-5, .galerie--cols-6 { grid-template-columns: repeat(3, 1fr); }
	.cartes--cols-3 { grid-template-columns: 1fr; }
	.carte { border-right: 0; border-bottom: 1px solid var(--color-gold); padding: 30px; }
	.carte:last-child { border-bottom: 0; }

	.evenements--cols-2, .evenements--cols-3 { grid-template-columns: 1fr; }
	.section--evenements { padding: 50px 15px; }

	.reportages--cols-2, .reportages--cols-3, .reportages--cols-4 { grid-template-columns: 1fr; }
	.section--reportages { padding: 50px 15px; }

	.section--partenaires { padding: 50px 15px; }
	.partenaires { grid-template-columns: 1fr; gap: 16px; }
	.partenaire__body,
	.partenaire__body:has(.partenaire__offre) {
		display: flex;
		flex-direction: column;
		padding: 16px 18px;
	}
	.partenaire__body:has(.partenaire__offre) > .partenaire__offre { margin-top: 14px; }
	.partenaire__nom { font-size: 15px; }

	.single-article__hero { min-height: 360px; padding: 60px 20px; }
	.single-article__title { font-size: 28px; }
	.single-article__body { padding: 50px 15px 30px; }
	.single-article__nav {
		grid-template-columns: 1fr;
		gap: 18px;
		text-align: center;
	}
	.single-article__nav-item--prev,
	.single-article__nav-item--next { text-align: center; }

	.site-footer__widgets { grid-template-columns: 1fr 1fr; gap: 40px; padding: 55px 20px 40px; }
	.site-footer__col--logo { align-items: flex-start; text-align: left; }
	.site-footer__bottom-inner { flex-direction: column; text-align: center; }
}

@media (max-width: 600px) {
	.galerie--cols-4, .galerie--cols-5, .galerie--cols-6 { grid-template-columns: repeat(2, 1fr); }
	.section--hero-parallax .section__badges { gap: 20px; }
	.section--hero-parallax .section__badge img { max-height: 100px; }
	.hero-parallax__badges { justify-content: center; gap: 16px; padding-top: 20px; }
	.hero-parallax__badge img { max-height: 40px; }
	.section__subtitle { font-size: 26px; line-height: 1.25; }
	.site-footer__widgets { grid-template-columns: 1fr; gap: 35px; padding: 45px 20px 35px; }
	.site-footer__col--logo { align-items: center; text-align: center; }
	.site-footer__col--logo::after { margin-left: auto; margin-right: auto; }
	.partenaires { grid-template-columns: 1fr; }

	/* Textes plus ramassés */
	.bloc-contenu__titre, .section-header__eyebrow { font-size: 11px; letter-spacing: 2.5px; }
	.bloc-contenu__separator { margin-bottom: 22px; }
	.bloc-contenu__texte { font-size: 14px; }

	/* Cartes uniformes plein écran */
	.evenement__titre, .reportage__titre { font-size: 15px; }

	/* Hero single article */
	.single-article__hero { min-height: 320px; padding: 50px 18px; }
	.single-article__title { font-size: 24px; }
	.single-article__category { font-size: 10px; letter-spacing: 3px; }

	/* Chiffres clés */
	.chiffres__nombre { font-size: 30px; }
	.chiffres__item { padding: 25px 10px; min-height: auto; }

	/* Contact */
	.contact__title { font-size: 24px; }

	/* Hero badges : mono-colonne plus serré */
	.hero-parallax__badges { flex-wrap: wrap; }
}
