/* ==========================================================================
   Thème Commune — styles
   Les couleurs et polices viennent du Personnaliser (variables --c-* et --f-*).
   ========================================================================== */

:root {
	--c-primaire: #1d4e5f;
	--c-secondaire: #2f7d5b;
	--c-accent: #e8b04b;
	--c-fond: #f2f5f3;
	--c-texte: #1c2b2f;
	--f-titres: "Bitter", Georgia, serif;
	--f-texte: "Source Sans 3", "Segoe UI", Roboto, Arial, sans-serif;

	--c-primaire-fonce: color-mix(in srgb, var(--c-primaire) 78%, #000);
	--c-ligne: color-mix(in srgb, var(--c-texte) 14%, #fff);
	--c-doux: color-mix(in srgb, var(--c-texte) 68%, #fff);
	--rayon: 10px;
	--wrap: 1200px;
	--ombre: 0 10px 30px -12px color-mix(in srgb, var(--c-primaire) 45%, transparent);
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 1rem; }
body {
	margin: 0;
	font-family: var(--f-texte);
	font-size: 1.125rem;
	line-height: 1.6;
	color: var(--c-texte);
	background: #fff;
	-webkit-font-smoothing: antialiased;
}
img, svg, iframe { max-width: 100%; }
img { height: auto; display: block; }
a { color: var(--c-secondaire); text-underline-offset: .18em; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--c-accent); outline-offset: 2px; border-radius: 3px; }
h1, h2, h3, h4 { font-family: var(--f-titres); color: var(--c-primaire); line-height: 1.2; margin: 0 0 .6em; font-weight: 700; }
p { margin: 0 0 1em; }

.wrap { width: 100%; max-width: var(--wrap); margin: 0 auto; padding: 0 1.25rem; }
.icon { width: 1.25em; height: 1.25em; flex: none; }

.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.skip-link {
	position: absolute; left: 1rem; top: -4rem; z-index: 100;
	background: var(--c-primaire); color: #fff; padding: .7rem 1.1rem; border-radius: 0 0 6px 6px;
}
.skip-link:focus { top: 0; }
.site-main:focus { outline: none; }

.button,
.wp-block-button__link {
	display: inline-flex; align-items: center; gap: .5em;
	background: var(--c-secondaire); color: #fff; border: 0; border-radius: 999px;
	padding: .75em 1.4em; font: 600 1rem/1.2 var(--f-texte); text-decoration: none; cursor: pointer;
	transition: background-color .2s;
}
.button:hover, .wp-block-button__link:hover { background: var(--c-primaire); color: #fff; }
.button--light { background: #fff; color: var(--c-primaire); }
.button--light:hover { background: var(--c-accent); color: var(--c-texte); }

/* ---------- Barre du haut ---------- */
.topbar { background: var(--c-primaire-fonce); color: #fff; font-size: .9rem; }
.topbar__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 2.6rem; }
.topbar__links { list-style: none; display: flex; flex-wrap: wrap; gap: .25rem 1.4rem; margin: 0; padding: 0; }
.topbar__links a { color: #fff; text-decoration: none; display: inline-flex; align-items: center; gap: .4rem; }
.topbar__links a:hover span { text-decoration: underline; }
.topbar__links .icon { width: 1rem; height: 1rem; opacity: .85; }
.topbar__search { display: flex; align-items: center; background: rgba(255,255,255,.12); border-radius: 999px; }
.topbar__search input::placeholder { color: rgba(255,255,255,.75); }
.topbar__search button { background: none; border: 0; color: #fff; padding: .35rem .7rem; cursor: pointer; display: flex; }
.topbar__search .icon { width: 1.05rem; height: 1.05rem; }

/* ---------- En-tête ---------- */
.site-header { background: #fff; border-bottom: 1px solid var(--c-ligne); position: relative; z-index: 20; }
.site-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: 5.75rem; }

.brand { display: flex; align-items: center; gap: .85rem; text-decoration: none; color: inherit; }
.brand__logo { max-height: 4.25rem; width: auto; }
.brand__mark {
	width: 3.2rem; height: 3.2rem; border-radius: 50%; display: grid; place-items: center;
	background: var(--c-primaire); color: #fff;
}
.brand__mark .icon { width: 1.7rem; height: 1.7rem; }
.brand__text { display: flex; flex-direction: column; }
.brand__name { font: 700 1.45rem/1.1 var(--f-titres); color: var(--c-primaire); letter-spacing: -.01em; }
.brand__tagline { font-size: .9rem; color: var(--c-doux); margin-top: .2rem; }

/* Menu */
.site-nav ul { list-style: none; margin: 0; padding: 0; }
.site-nav a { text-decoration: none; color: var(--c-texte); }

@media (min-width: 1024px) {
	.nav-toggle { display: none; }
	.site-nav > ul { display: flex; gap: .25rem; }
	.site-nav > ul > li { position: relative; }
	.site-nav > ul > li > a {
		display: flex; align-items: center; gap: .35rem;
		padding: 2.15rem .9rem; font-weight: 600; font-size: 1.05rem; position: relative;
	}
	.site-nav > ul > li > a::after {
		content: ""; position: absolute; left: .9rem; right: .9rem; bottom: 1.6rem; height: 3px;
		background: var(--c-accent); border-radius: 2px; transform: scaleX(0); transform-origin: left; transition: transform .2s;
	}
	.site-nav > ul > li:hover > a::after,
	.site-nav > ul > li:focus-within > a::after,
	.site-nav > ul > li.current-menu-item > a::after,
	.site-nav > ul > li.current-menu-ancestor > a::after,
	.site-nav > ul > li.current_page_item > a::after,
	.site-nav > ul > li.current_page_ancestor > a::after { transform: scaleX(1); }
	.site-nav .menu-item-has-children > a::before,
	.site-nav .page_item_has_children > a::before {
		content: ""; order: 2; width: .45rem; height: .45rem; border: solid currentColor; border-width: 0 2px 2px 0;
		transform: rotate(45deg) translateY(-3px); opacity: .55;
	}
	.site-nav .sub-menu,
	.site-nav .children {
		position: absolute; left: 0; top: 100%; min-width: 17rem;
		background: #fff; border-top: 3px solid var(--c-accent); border-radius: 0 0 var(--rayon) var(--rayon);
		box-shadow: var(--ombre); padding: .6rem;
		opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .15s, transform .15s, visibility .15s;
	}
	.site-nav li:hover > .sub-menu, .site-nav li:focus-within > .sub-menu,
	.site-nav li:hover > .children, .site-nav li:focus-within > .children { opacity: 1; visibility: visible; transform: none; }
	.site-nav .sub-menu a, .site-nav .children a { display: block; padding: .6rem .8rem; border-radius: 6px; }
	.site-nav .sub-menu a:hover, .site-nav .sub-menu a:focus,
	.site-nav .children a:hover, .site-nav .children a:focus { background: var(--c-fond); color: var(--c-primaire); }
	.site-nav .sub-menu .current-menu-item > a { color: var(--c-primaire); font-weight: 600; }
}

@media (max-width: 1023.98px) {
	.site-header__inner { min-height: 4.75rem; }
	.brand__name { font-size: 1.15rem; }
	.brand__tagline { font-size: .8rem; }
	.brand__mark { width: 2.6rem; height: 2.6rem; }
	.nav-toggle {
		display: inline-flex; align-items: center; gap: .4rem; background: var(--c-primaire); color: #fff;
		border: 0; border-radius: 999px; padding: .55rem 1rem; font: 600 1rem var(--f-texte); cursor: pointer;
	}
	.nav-toggle__open, .nav-toggle__close { display: flex; }
	.nav-toggle__close { display: none; }
	.nav-toggle[aria-expanded="true"] .nav-toggle__open { display: none; }
	.nav-toggle[aria-expanded="true"] .nav-toggle__close { display: inline; }
	.site-nav {
		display: none; position: absolute; left: 0; right: 0; top: 100%;
		background: #fff; border-top: 1px solid var(--c-ligne); box-shadow: var(--ombre);
		max-height: calc(100vh - 7rem); overflow-y: auto; padding: .5rem 1.25rem 1.5rem;
	}
	.site-nav.is-open { display: block; }
	.site-nav > ul > li { border-bottom: 1px solid var(--c-ligne); }
	.site-nav > ul > li > a { display: block; padding: .9rem 0; font-weight: 700; color: var(--c-primaire); font-size: 1.1rem; }
	.site-nav .sub-menu, .site-nav .children { padding: 0 0 .8rem .9rem; border-left: 3px solid var(--c-accent); margin-bottom: .6rem; }
	.site-nav .sub-menu a, .site-nav .children a { display: block; padding: .45rem 0; }
	.topbar__links li:not(:first-child) span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	.topbar__links li:not(:first-child) .icon { width: 1.25rem; height: 1.25rem; }
}

/* ---------- Motif collines ---------- */
.hills { display: block; width: 100%; height: clamp(40px, 7vw, 100px); }

/* ---------- Diaporama ---------- */
.hero {
	position: relative; color: #fff; overflow: hidden;
	background:
		radial-gradient(120% 90% at 85% 10%, color-mix(in srgb, var(--c-secondaire) 55%, transparent), transparent 60%),
		var(--c-primaire);
}
.hero__track { position: relative; height: clamp(380px, 62vh, 620px); }
.hero__slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity .8s ease, visibility .8s; }
.hero__slide.is-active { opacity: 1; visibility: visible; }
.hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero__slide.has-image::after {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(90deg, color-mix(in srgb, var(--c-primaire) 82%, transparent) 0%, color-mix(in srgb, var(--c-primaire) 30%, transparent) 55%, transparent 80%);
}
.hero__content { position: relative; z-index: 2; height: 100%; display: flex; align-items: center; padding-bottom: 4rem; }
.hero__box { max-width: 38rem; }
.hero__title { font-family: var(--f-titres); font-weight: 700; font-size: clamp(2.1rem, 5.2vw, 3.8rem); line-height: 1.05; color: #fff; margin: 0 0 .9rem; letter-spacing: -.015em; }
.hero__text { font-size: clamp(1.1rem, 1.8vw, 1.3rem); max-width: 32rem; margin-bottom: 1.6rem; opacity: .95; }
.hero__hills { position: absolute; left: 0; right: 0; bottom: -1px; color: #fff; z-index: 3; pointer-events: none; }
.hero__controls { position: absolute; left: 0; right: 0; bottom: clamp(3.2rem, 7vw, 6.5rem); z-index: 4; display: flex; align-items: center; gap: .6rem; }
.hero__btn {
	background: rgba(255,255,255,.16); color: #fff; border: 1px solid rgba(255,255,255,.4); border-radius: 999px;
	min-width: 2.5rem; height: 2.5rem; display: inline-grid; place-items: center; cursor: pointer; padding: 0 .9rem; font: 600 .9rem var(--f-texte);
}
.hero__btn:hover { background: #fff; color: var(--c-primaire); }
.hero__btn .icon { width: 1.1rem; height: 1.1rem; }
.hero__dots { display: flex; gap: .4rem; }
.hero__dot { width: .7rem; height: .7rem; border-radius: 50%; border: 2px solid #fff; background: transparent; padding: 0; cursor: pointer; }
.hero__dot.is-active { background: #fff; }

/* ---------- Accès rapides ---------- */
.quick { position: relative; z-index: 5; margin-top: clamp(-4.5rem, -6vw, -2rem); }
.quick__grid { list-style: none; margin: 0; padding: 0; display: grid; gap: .9rem; grid-template-columns: repeat(2, 1fr); }
@media (min-width: 700px) { .quick__grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1024px) {
	.quick__grid--6 { grid-template-columns: repeat(6, 1fr); }
	.quick__grid--5 { grid-template-columns: repeat(5, 1fr); }
	.quick__grid--4 { grid-template-columns: repeat(4, 1fr); }
}
.quick__item {
	height: 100%; display: flex; flex-direction: column; align-items: center; text-align: center; gap: .75rem;
	background: #fff; border-radius: var(--rayon); padding: 1.4rem .9rem 1.2rem; text-decoration: none; color: var(--c-texte);
	box-shadow: var(--ombre); border: 1px solid var(--c-ligne); transition: background-color .2s, color .2s;
}
.quick__icon {
	width: 3.5rem; height: 3.5rem; border-radius: 50%; display: grid; place-items: center;
	background: color-mix(in srgb, var(--c-secondaire) 13%, #fff); color: var(--c-secondaire); transition: background-color .2s, color .2s;
}
.quick__icon .icon { width: 1.75rem; height: 1.75rem; }
.quick__label { font-weight: 600; line-height: 1.25; }
.quick__item:hover, .quick__item:focus-visible { background: var(--c-primaire); color: #fff; }
.quick__item:hover .quick__icon, .quick__item:focus-visible .quick__icon { background: var(--c-accent); color: var(--c-texte); }

/* ---------- Flash info ---------- */
.flash { margin-top: 2.5rem; }
.flash__inner {
	display: flex; flex-wrap: wrap; align-items: baseline; gap: .6rem 1.5rem;
	background: var(--c-accent); color: var(--c-texte); border-radius: var(--rayon); padding: 1rem 1.4rem;
}
.flash__title { display: flex; align-items: center; gap: .5rem; font-size: 1.1rem; margin: 0; color: var(--c-texte); }
.flash__list { min-width: min(100%, 18rem); list-style: none; margin: 0; padding: 0; flex: 1; display: grid; gap: .3rem; }
.flash__list a { color: var(--c-texte); text-decoration: none; }
.flash__list a:hover strong { text-decoration: underline; }

/* ---------- Sections de l'accueil ---------- */
.intro { padding: 3.5rem 0 1rem; }
.intro__inner { max-width: 50rem; font-size: 1.25rem; }
.section-title { font-size: clamp(1.7rem, 3vw, 2.3rem); position: relative; padding-bottom: .5rem; }
.section-title::after { content: ""; display: block; width: 3.5rem; height: 4px; background: var(--c-accent); border-radius: 2px; margin-top: .55rem; }
.section-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; }
.section-head .section-title { margin: 0; }
.section-head__more { font-weight: 600; }

.news { padding: 3.5rem 0 4rem; }
.cards { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr)); }
.card__link { display: flex; flex-direction: column; height: 100%; text-decoration: none; color: inherit; background: #fff; border: 1px solid var(--c-ligne); border-radius: var(--rayon); overflow: hidden; }
.card__media { aspect-ratio: 16 / 10; background: var(--c-fond); overflow: hidden; }
.card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.card__link:hover .card__media img { transform: scale(1.03); }
.card__placeholder { display: grid; place-items: center; height: 100%; color: color-mix(in srgb, var(--c-primaire) 35%, #fff); }
.card__placeholder .icon { width: 3rem; height: 3rem; }
.card__body { padding: 1.1rem 1.25rem 1.4rem; }
.card__date { font-size: .9rem; color: var(--c-doux); }
.card__title { font-size: 1.25rem; margin: .3rem 0 .5rem; }
.card__link:hover .card__title { text-decoration: underline; text-decoration-color: var(--c-accent); text-decoration-thickness: 2px; }
.card__excerpt { margin: 0; color: var(--c-doux); font-size: 1rem; }

.discover { background: var(--c-fond); padding: 4rem 0; }
.discover__inner { display: grid; gap: 2.5rem; align-items: center; }
@media (min-width: 860px) { .discover__inner { grid-template-columns: 1fr 1fr; } }
.discover__text { max-width: 36rem; }
.discover__media img { border-radius: var(--rayon); width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.discover__placeholder { aspect-ratio: 4 / 3; border-radius: var(--rayon); background: var(--c-primaire); color: var(--c-secondaire); display: flex; align-items: flex-end; overflow: hidden; }
.discover__placeholder .hills { height: 70%; }

.visit { padding: 4rem 0; }
.visit__grid { display: grid; gap: 1.5rem; }
@media (min-width: 760px) { .visit__grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1100px) { .visit__grid.has-map { grid-template-columns: 1fr 1fr 1.3fr; } }
.visit__card { background: var(--c-fond); border-radius: var(--rayon); padding: 1.5rem 1.6rem; }
.visit__card h3 { font-size: 1.2rem; }
.visit__map .carte { margin: 0; height: 100%; }
.visit__map iframe { min-height: 18rem; height: 100%; }

/* ---------- Horaires, coordonnées, carte ---------- */
.horaires { margin: 0; display: grid; gap: .1rem; }
.horaires__row { display: flex; justify-content: space-between; gap: 1rem; padding: .45rem 0; border-bottom: 1px dashed var(--c-ligne); }
.horaires__row:last-child { border-bottom: 0; }
.horaires dt { font-weight: 600; }
.horaires dd { margin: 0; text-align: right; }
.horaires__row.is-closed dd { color: var(--c-doux); }
.horaires__note { font-size: .95rem; color: var(--c-doux); margin: .8rem 0 0; }
.coords { list-style: none; margin: 0; padding: 0; display: grid; gap: .8rem; }
.coords li { display: flex; gap: .7rem; align-items: flex-start; }
.coords .icon { color: var(--c-secondaire); margin-top: .2em; }
.carte { margin: 1.5rem 0; }
.carte iframe { width: 100%; height: 22rem; border: 0; border-radius: var(--rayon); display: block; background: var(--c-fond); }
.carte figcaption { font-size: .95rem; margin-top: .4rem; }
.info-box { background: var(--c-fond); border-radius: var(--rayon); padding: 1.3rem 1.5rem; margin: 0 0 1.5rem; max-width: 34rem; }

/* ---------- Bandeau des pages ---------- */
.banner { position: relative; background: var(--c-primaire); color: #fff; overflow: hidden; }
.banner__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.banner.has-image::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, color-mix(in srgb, var(--c-primaire) 88%, transparent), color-mix(in srgb, var(--c-primaire) 45%, transparent)); }
.banner__inner { position: relative; z-index: 2; padding-top: 2.5rem; padding-bottom: clamp(3.5rem, 7vw, 5.5rem); }
.banner__title { color: #fff; font-size: clamp(2rem, 4.5vw, 3rem); margin: 0; max-width: 24ch; }
.banner__intro { max-width: 40rem; margin: .8rem 0 0; font-size: 1.15rem; }
.banner__hills { position: absolute; left: 0; right: 0; bottom: -1px; color: #fff; z-index: 3; height: clamp(28px, 5vw, 64px); }

.breadcrumb ol { list-style: none; margin: 0 0 1rem; padding: 0; display: flex; flex-wrap: wrap; font-size: .95rem; }
.breadcrumb li { display: flex; align-items: center; }
.breadcrumb li + li::before { content: "/"; margin: 0 .55rem; opacity: .6; }
.breadcrumb a { color: #fff; opacity: .9; }
.breadcrumb [aria-current] { opacity: .85; }

/* ---------- Mise en page intérieure ---------- */
.page-layout { padding-top: 2.5rem; padding-bottom: 4.5rem; display: grid; gap: 2.5rem; }
.page-article { min-width: 0; max-width: 48rem; }
@media (min-width: 960px) {
	.page-layout.has-aside { grid-template-columns: 17rem minmax(0, 1fr); gap: 3.5rem; }
	.page-aside { position: sticky; top: 1.5rem; align-self: start; }
}
.page-aside { display: grid; gap: 1.5rem; }
.section-nav { border-left: 4px solid var(--c-accent); }
.section-nav__title { margin: 0 0 .3rem; padding-left: 1rem; }
.section-nav__title a { font: 700 1.15rem var(--f-titres); color: var(--c-primaire); text-decoration: none; }
.section-nav ul { list-style: none; margin: 0; padding: 0; }
.section-nav li a { display: block; padding: .45rem 1rem; text-decoration: none; color: var(--c-texte); border-radius: 0 6px 6px 0; }
.section-nav li a:hover { background: var(--c-fond); color: var(--c-primaire); }
.section-nav li.is-current a { background: var(--c-fond); color: var(--c-primaire); font-weight: 700; }
.aside-box { background: var(--c-fond); border-radius: var(--rayon); padding: 1.2rem 1.3rem; font-size: 1rem; }
.aside-box__title { font: 700 1.1rem var(--f-titres); color: var(--c-primaire); margin-bottom: .8rem; }
.updated { font-size: .9rem; color: var(--c-doux); margin-top: 3rem; border-top: 1px solid var(--c-ligne); padding-top: 1rem; }

/* ---------- Contenu éditorial ---------- */
.entry-content > * { margin-top: 0; margin-bottom: 1.1rem; }
.entry-content h2 { font-size: clamp(1.5rem, 2.6vw, 1.85rem); margin-top: 2.4rem; }
.entry-content h2::after { content: ""; display: block; width: 2.5rem; height: 3px; background: var(--c-accent); border-radius: 2px; margin-top: .45rem; }
.entry-content h3 { font-size: 1.3rem; margin-top: 1.8rem; margin-bottom: .4rem; }
.entry-content > :first-child { margin-top: 0; }
.entry-content ul, .entry-content ol { padding-left: 1.3rem; }
.entry-content li { margin-bottom: .35rem; }
.entry-content li::marker { color: var(--c-secondaire); }
.entry-content .wp-block-table { overflow-x: auto; }
.entry-content table { width: 100%; border-collapse: collapse; font-size: 1.02rem; }
.entry-content td, .entry-content th { padding: .7rem .9rem; border-bottom: 1px solid var(--c-ligne); vertical-align: top; text-align: left; }
.entry-content td:last-child { white-space: nowrap; }
.entry-content .is-style-stripes tbody tr:nth-child(odd) { background: var(--c-fond); }
.entry-content .is-style-stripes { border-bottom: 0; }
.entry-content .is-style-stripes td { border-color: transparent; }
.entry-content blockquote { border-left: 4px solid var(--c-accent); margin-left: 0; padding: .3rem 0 .3rem 1.2rem; font-style: italic; }
.entry-content .wp-block-file { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem; background: var(--c-fond); border-radius: var(--rayon); padding: .8rem 1rem; }
.entry-content .wp-block-file__button { background: var(--c-secondaire); color: #fff; border-radius: 999px; padding: .4em 1em; text-decoration: none; }
.entry-content .wp-block-image img { border-radius: var(--rayon); }
.entry-content .a-completer { background: #fff3c4; border-left: 4px solid #e0a800; padding: .55rem .9rem; font-size: .95rem; }
@media (max-width: 600px) { .entry-content td:last-child { white-space: normal; } }

.subpages { list-style: none; margin: 2.5rem 0 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 14rem), 1fr)); }
.subpages__item {
	display: grid; grid-template-columns: auto 1fr; column-gap: .9rem; row-gap: .15rem; align-items: center; height: 100%;
	padding: 1.1rem 1.2rem; background: #fff; border: 1px solid var(--c-ligne); border-radius: var(--rayon);
	text-decoration: none; color: var(--c-texte); transition: border-color .2s, background-color .2s;
}
.subpages__icon { grid-row: span 2; width: 2.8rem; height: 2.8rem; border-radius: 50%; display: grid; place-items: center; background: color-mix(in srgb, var(--c-secondaire) 13%, #fff); color: var(--c-secondaire); }
.subpages__label { font-weight: 700; color: var(--c-primaire); line-height: 1.25; }
.subpages__desc { font-size: .95rem; color: var(--c-doux); line-height: 1.35; }
.subpages__item:hover { border-color: var(--c-secondaire); background: var(--c-fond); }

/* ---------- Articles ---------- */
.post-meta { color: var(--c-doux); font-size: .98rem; display: flex; flex-wrap: wrap; gap: .3rem 1rem; }
.post-thumb { margin: 0 0 1.8rem; }
.post-thumb img { border-radius: var(--rayon); }
.back-link { display: inline-flex; align-items: center; gap: .35rem; font-weight: 600; margin-top: 2rem; }
.list-layout { padding-top: 2.5rem; padding-bottom: 4.5rem; }
.list-layout--narrow { max-width: 52rem; }
.results { list-style: none; padding: 0; margin: 2rem 0; }
.results__item { padding: 1.1rem 0; border-bottom: 1px solid var(--c-ligne); }
.results__item a { font: 700 1.2rem var(--f-titres); }
.results__item p { margin: .3rem 0 0; color: var(--c-doux); }
.empty { font-size: 1.15rem; }
.nav-links { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: 2.5rem; }
.page-numbers { display: inline-grid; place-items: center; min-width: 2.6rem; height: 2.6rem; padding: 0 .9rem; border-radius: 999px; border: 1px solid var(--c-ligne); text-decoration: none; }
.page-numbers.current { background: var(--c-primaire); color: #fff; border-color: var(--c-primaire); }

/* ---------- Formulaires ---------- */
.search-form label { font-weight: 600; display: block; margin-bottom: .4rem; }
.search-form__row { display: flex; gap: .6rem; }
input[type="text"], input[type="email"], input[type="tel"], input[type="search"], textarea {
	width: 100%; font: inherit; color: inherit; padding: .7rem .9rem; border: 1px solid color-mix(in srgb, var(--c-texte) 30%, #fff); border-radius: 8px; background: #fff;
}
.topbar__search input[type="search"] { width: 11rem; border: 0; border-radius: 999px; background: transparent; color: #fff; padding: .35rem .9rem; }
@media (max-width: 1023.98px) { .topbar__search input[type="search"] { width: 7.5rem; } }
input:focus, textarea:focus { outline: 3px solid color-mix(in srgb, var(--c-accent) 70%, transparent); border-color: var(--c-secondaire); }
.contact-form { max-width: 44rem; }
.contact-form label { display: block; font-weight: 600; margin-bottom: .35rem; }
.contact-form__row { display: grid; gap: 0 1.2rem; }
@media (min-width: 640px) { .contact-form__row { grid-template-columns: 1fr 1fr; } }
.contact-form__consent { display: flex; gap: .6rem; align-items: flex-start; }
.contact-form__consent input { margin-top: .35rem; width: 1.1rem; height: 1.1rem; flex: none; }
.contact-form__consent label { font-weight: 400; font-size: 1rem; }
.hp { position: absolute; left: -9999px; }
.notice { padding: .9rem 1.1rem; border-radius: 8px; font-weight: 600; }
.notice--ok { background: color-mix(in srgb, var(--c-secondaire) 14%, #fff); border-left: 4px solid var(--c-secondaire); }
.notice--error { background: #fdecea; border-left: 4px solid #b3261e; }

/* ---------- Pied de page ---------- */
.site-footer { color: #fff; margin-top: 0; }
.site-footer__hills { color: var(--c-primaire); margin-bottom: -1px; }
.site-footer__body { background: var(--c-primaire); padding: 2rem 0 0; }
.site-footer__grid { display: grid; gap: 2.5rem; padding-bottom: 2.5rem; }
@media (min-width: 860px) { .site-footer__grid { grid-template-columns: 1.2fr 1fr 1fr; } }
.site-footer .brand { margin-bottom: 1.5rem; }
.site-footer .brand__name { color: #fff; }
.site-footer .brand__tagline { color: rgba(255,255,255,.75); }
.site-footer .brand__mark { background: #fff; color: var(--c-primaire); }
.site-footer a { color: #fff; }
.site-footer .coords .icon { color: var(--c-accent); }
.site-footer__title { color: #fff; font-size: 1.15rem; margin-bottom: 1rem; }
.site-footer .horaires__row { border-color: rgba(255,255,255,.2); }
.site-footer .horaires__row.is-closed dd, .site-footer .horaires__note { color: rgba(255,255,255,.7); }
.site-footer__social { list-style: none; margin: 0 0 1.5rem; padding: 0; display: grid; gap: .7rem; }
.site-footer__social a { display: inline-flex; align-items: center; gap: .6rem; text-decoration: none; }
.site-footer__social a:hover span { text-decoration: underline; }
.site-footer__social .icon { color: var(--c-accent); }
.site-footer__menu ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; }
.site-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 1.5rem; border-top: 1px solid rgba(255,255,255,.18); padding-top: 1.1rem; padding-bottom: 1.4rem; font-size: .92rem; color: rgba(255,255,255,.75); }
.site-footer__bottom p { margin: 0; }

/* ---------- Mouvement réduit ---------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* ---------- Impression ---------- */
@media print {
	.topbar, .site-nav, .nav-toggle, .hero__controls, .page-aside, .hills, .site-footer__social { display: none !important; }
	.banner, .site-footer__body { background: none !important; color: #000 !important; }
	.banner__title, .site-footer a, .breadcrumb a { color: #000 !important; }
}
