/* ==========================================================================
   Sol-Sportif — styles complémentaires
   --------------------------------------------------------------------------
   Couleurs, typographies, espacements et boutons : voir theme.json
   (modifiables dans Apparence › Éditeur › Styles).
   Ce fichier ne contient que ce que theme.json ne sait pas faire.
   Sommaire :
     1. Base & accessibilité
     2. En-tête et navigation
     3. Hero et en-têtes de page
     4. Styles de paragraphes (repère, étiquette)
     5. Groupes : cartes, tuiles, niveaux, étapes
     6. Images, pastilles, médias
     7. Boutons
     8. Onglets (couches, pastilles)
     9. Accordéon
    10. Chantiers : cartes de boucle, filtres, fiche
    11. Formulaire (Forminator)
    12. Pied de page et barre mobile
    13. Utilitaires responsive
   ========================================================================== */

/* 1. Base & accessibilité ------------------------------------------------- */
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: clip; }
::selection { background: var(--wp--preset--color--accent); color: var(--wp--preset--color--base); }
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--wp--preset--color--accent-hover);
	outline-offset: 3px;
}
:where(h1, h2, .wp-block-heading) { text-wrap: balance; }
:where(p) { text-wrap: pretty; }
:where(h1.wp-block-heading, h2.wp-block-heading) { max-width: 22em; }
:where(.has-text-align-center).wp-block-heading { margin-left: auto; margin-right: auto; }
[id] { scroll-margin-top: 96px; }
img { height: auto; }

.skip-link.screen-reader-text:focus {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--base);
	clip-path: none; height: auto; width: auto; padding: 12px 18px; z-index: 100000; left: 8px; top: 8px;
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* Sections : aucune marge entre deux sections pleine largeur */
.wp-site-blocks > main > .entry-content > .alignfull,
.wp-block-post-content > .alignfull { margin-block-start: 0; margin-block-end: 0; }
.wp-block-post-content > .alignfull + .alignfull,
.wp-site-blocks > * + * { margin-block-start: 0; }
.ss-section { border-bottom: 1px solid var(--wp--preset--color--line); }
.ss-section.has-accent-background-color { border-bottom: 0; }

/* 2. En-tête et navigation ------------------------------------------------- */
.ss-header {
	position: sticky; top: 0; z-index: 60;
	border-bottom: 1px solid var(--wp--preset--color--line);
}
.admin-bar .ss-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .ss-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .ss-header { top: 0; } }

.ss-logo { margin: 0; line-height: 1; }
.ss-logo a { color: var(--wp--preset--color--contrast); text-decoration: none; font-weight: 800; font-size: 20px; letter-spacing: -.02em; }
.ss-logo a:hover { color: var(--wp--preset--color--contrast); }
.ss-tagline { display: flex; align-items: center; gap: 7px; margin: 5px 0 0 !important; font-family: var(--wp--preset--font-family--mono); font-size: 11px; font-weight: 500; letter-spacing: .14em; line-height: 1; text-transform: uppercase; color: var(--wp--preset--color--subtle); }
.ss-tagline::before { content: ""; width: 16px; height: 2px; background: var(--wp--preset--color--accent); flex: none; }

.ss-header .wp-block-navigation-item__content { padding: 12px 12px; min-height: 48px; display: flex; align-items: center; text-decoration: none; }
.ss-header .wp-block-navigation-item__content:hover,
.ss-header .current-menu-item > .wp-block-navigation-item__content,
.ss-header .current-menu-ancestor > .wp-block-navigation-item__content { color: var(--wp--preset--color--accent-hover); }
.ss-header .wp-block-navigation__submenu-icon { color: var(--wp--preset--color--subtle); }
.ss-header .wp-block-navigation .wp-block-navigation__submenu-container {
	background: var(--wp--preset--color--surface) !important;
	border: 1px solid var(--wp--preset--color--line) !important;
	border-top: 2px solid var(--wp--preset--color--accent) !important;
	padding: 10px 14px; min-width: 290px !important;
}
.ss-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content { min-height: 44px; padding: 10px 8px; }

/* Bouton hamburger et menu plein écran (mobile) */
.ss-header .wp-block-navigation__responsive-container-open {
	min-width: 48px; min-height: 48px; justify-content: center;
	background: var(--wp--preset--color--accent); color: var(--wp--preset--color--base);
}
.ss-header .wp-block-navigation__responsive-container-open svg { width: 26px; height: 26px; }
.wp-block-navigation__responsive-container.is-menu-open {
	padding: 18px clamp(16px, 4vw, 56px) 32px !important;
}
.wp-block-navigation__responsive-container-close { min-width: 48px; min-height: 48px; border: 1px solid var(--wp--preset--color--line) !important; display: flex; align-items: center; justify-content: center; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 64px; align-items: stretch !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 0 !important; align-items: stretch !important; width: 100%; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { width: 100%; border-bottom: 1px solid var(--wp--preset--color--line); align-items: flex-start !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-size: 19px; font-weight: 700; letter-spacing: -.02em; min-height: 58px; padding: 14px 0 !important; width: 100%;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	padding: 0 0 10px 14px !important; border: 0 !important; min-width: 0 !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item { border: 0; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	font-size: 16px; font-weight: 500; min-height: 44px; padding: 10px 0 !important; color: var(--wp--preset--color--muted);
}

/* 3. Hero et en-têtes de page ---------------------------------------------- */
.is-style-hero { border-bottom: 3px solid var(--wp--preset--color--accent); }
.wp-block-cover.alignfull { padding-left: var(--wp--style--root--padding-left) !important; padding-right: var(--wp--style--root--padding-right) !important; }
.is-style-hero .wp-block-cover__image-background { object-position: 50% 58%; }
@media (max-width: 781px) {
	.is-style-hero .wp-block-cover__background { background: linear-gradient(180deg, rgba(20,24,27,.84), rgba(20,24,27,.96)) !important; opacity: 1 !important; }
	.is-style-hero .wp-block-buttons > .wp-block-button { flex: 1 1 100%; }
	.is-style-hero .wp-block-buttons > .wp-block-button .wp-block-button__link { width: 100%; }
}
.ss-hero-title .ss-accent, .ss-accent { color: var(--wp--preset--color--accent-hover); }

/* 4. Paragraphes ------------------------------------------------------------ */
/* Repère de section : trait orange + texte mono */
.is-style-reperage {
	display: flex; align-items: center; gap: 12px;
	font-family: var(--wp--preset--font-family--mono); font-size: 12px; font-weight: 600; line-height: 1.3;
	letter-spacing: .14em; text-transform: uppercase; color: var(--wp--preset--color--accent-hover);
}
.is-style-reperage::before { content: ""; width: 22px; height: 2px; background: currentColor; flex: none; }
.is-style-reperage.has-alert-soft-color::before { background: var(--wp--preset--color--alert); }
/* Étiquette mono discrète */
.is-style-etiquette {
	font-family: var(--wp--preset--font-family--mono); font-size: 12px; font-weight: 600; line-height: 1.35;
	letter-spacing: .1em; text-transform: uppercase; color: var(--wp--preset--color--subtle);
}
/* Pastille inline (badge) */
p.is-style-pastille {
	display: inline-block; width: fit-content;
	padding: 7px 11px; background: var(--wp--preset--color--accent); color: var(--wp--preset--color--base);
	font-family: var(--wp--preset--font-family--mono); font-size: 11.5px; font-weight: 600; line-height: 1;
	letter-spacing: .1em; text-transform: uppercase;
}
p.is-style-pastille.has-border-color, p.is-style-pastille[style*="border"] { background: transparent; color: #e2dfda; }

/* 5. Groupes ---------------------------------------------------------------- */
.is-style-carte {
	background: var(--wp--preset--color--surface-2);
	border: 1px solid var(--wp--preset--color--line);
	transition: border-color .15s ease;
	height: 100%;
}
.is-style-carte:has(a:hover), .is-style-carte:focus-within { border-color: var(--wp--preset--color--accent); }
.is-style-carte > .wp-block-image,
.is-style-carte > .wp-block-post-featured-image { margin: 0; }
.is-style-carte .ss-card-body { padding: 20px 22px 24px; }

.is-style-tuile {
	background: var(--wp--preset--color--surface);
	border-top: 2px solid var(--wp--preset--color--accent);
	padding: clamp(20px, 2.6vw, 28px);
	height: 100%;
}
.is-style-tuile.has-surface-2-background-color { background: var(--wp--preset--color--surface-2); }
.is-style-tuile[style*="line-strong"] { border-top-color: var(--wp--preset--color--line-strong); }
.is-style-tuile-alerte {
	background: var(--wp--preset--color--surface);
	border-top: 2px solid var(--wp--preset--color--alert);
	padding: clamp(20px, 2.6vw, 28px);
	height: 100%;
}
.is-style-tuile .ss-rule, .is-style-carte .ss-rule {
	padding-top: 12px; border-top: 1px solid var(--wp--preset--color--line);
	color: var(--wp--preset--color--contrast); font-weight: 500;
}
.is-style-panneau {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--line);
	border-top: 3px solid var(--wp--preset--color--accent);
	padding: clamp(22px, 3vw, 32px);
}

/* Chiffres clés */
.is-style-chiffres { gap: 0 !important; }
.is-style-chiffres > * { padding: 22px 16px 24px 0; border-bottom: 1px solid var(--wp--preset--color--line); }
.is-style-chiffres > *:nth-child(odd) { padding-right: 16px; border-right: 1px solid var(--wp--preset--color--line); }
.is-style-chiffres > *:nth-child(even) { padding-left: 16px; }
.is-style-chiffres .wp-block-heading { font-size: clamp(26px, 2.4vw, 30px); letter-spacing: -.03em; }
.is-style-chiffres > *:first-child .wp-block-heading { color: var(--wp--preset--color--accent-hover); }
.is-style-chiffres p:not(.ss-chiffre) { font-size: 14px; line-height: 1.45; margin-top: 8px; }
@media (min-width: 1024px) {
	.is-style-chiffres > * { border-bottom: 0; padding: 26px 24px !important; border-right: 1px solid var(--wp--preset--color--line); }
	.is-style-chiffres > *:first-child { padding-left: 0 !important; }
	.is-style-chiffres > *:last-child { border-right: 0; }
}

/* Niveaux de gravité ("Pourquoi tôt") */
.is-style-niveau {
	background: var(--wp--preset--color--surface);
	border-left: 3px solid var(--wp--preset--color--accent);
	padding: 18px clamp(16px, 2.4vw, 24px);
}
.is-style-niveau.ss-niveau-3, .is-style-niveau.ss-niveau-4 { border-left-color: var(--wp--preset--color--alert); }
.is-style-niveau.ss-niveau-5 { border-left-color: var(--wp--preset--color--contrast); background: var(--wp--preset--color--surface-2); }
.is-style-niveau .ss-jauge {
	display: flex; align-items: center; gap: 10px; margin: 0;
	font-family: var(--wp--preset--font-family--mono); font-size: 11.5px; font-weight: 500;
	letter-spacing: .06em; text-transform: uppercase; color: var(--wp--preset--color--subtle);
}
.is-style-niveau .ss-jauge::before { content: ""; display: block; height: 8px; background: var(--wp--preset--color--accent); flex: 0 1 auto; min-width: 0; width: 12%; }
.ss-niveau-2 .ss-jauge::before { width: 30%; }
.ss-niveau-3 .ss-jauge::before { width: 55%; background: var(--wp--preset--color--alert); }
.ss-niveau-4 .ss-jauge::before { width: 78%; background: var(--wp--preset--color--alert); }
.ss-niveau-5 .ss-jauge::before { width: 100%; background: var(--wp--preset--color--contrast); }

/* Étapes du processus */
.is-style-etape {
	background: var(--wp--preset--color--surface-2);
	border-top: 3px solid var(--wp--preset--color--accent);
	padding: 22px 20px 26px;
	height: 100%;
}
.is-style-etape.has-accent-background-color .is-style-etiquette,
.is-style-etape.has-accent-background-color p,
.is-style-etape.has-accent-background-color .wp-block-heading { color: var(--wp--preset--color--base); }

/* 6. Images ----------------------------------------------------------------- */
.wp-block-image img, .wp-block-post-featured-image img, .wp-block-media-text__media img { display: block; }
.ss-ratio-16-10 img { aspect-ratio: 16 / 10; object-fit: cover; width: 100%; }
.ss-ratio-4-3 img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.ss-ratio-3-2 img { aspect-ratio: 3 / 2; object-fit: cover; width: 100%; }

/* Image avec pastille : la légende devient un badge en haut à gauche */
.wp-block-image.is-style-pastille { position: relative; margin-bottom: 0; }
.wp-block-image.is-style-pastille figcaption,
.wp-block-image.is-style-pastille .wp-element-caption {
	position: absolute; top: 0; left: 0; margin: 0; z-index: 2;
	padding: 6px 10px; background: var(--wp--preset--color--accent); color: var(--wp--preset--color--base);
	font-family: var(--wp--preset--font-family--mono); font-size: 11.5px; font-weight: 600; line-height: 1;
	letter-spacing: .08em; text-transform: uppercase; text-align: left;
}
.wp-block-image.is-style-pastille.ss-pastille-grise figcaption { background: var(--wp--preset--color--line-strong); color: var(--wp--preset--color--contrast); }

/* Média + texte */
.wp-block-media-text { gap: 0; }
.wp-block-media-text .wp-block-media-text__content { padding: clamp(20px, 3vw, 56px) 0 0 !important; }
@media (min-width: 782px) {
	.wp-block-media-text:not(.has-media-on-the-right) .wp-block-media-text__content { padding: 0 0 0 clamp(28px, 4vw, 64px) !important; }
	.wp-block-media-text.has-media-on-the-right .wp-block-media-text__content { padding: 0 clamp(28px, 4vw, 64px) 0 0 !important; }
}
.wp-block-media-text__media img { aspect-ratio: 4 / 3; object-fit: cover; }

/* Galerie de chantier */
.wp-block-gallery.has-nested-images { gap: 3px !important; }
.wp-block-gallery.has-nested-images figure.wp-block-image img { aspect-ratio: 1; object-fit: cover; }
.wp-block-gallery.has-nested-images figure.wp-block-image figcaption {
	background: var(--wp--preset--color--base); color: var(--wp--preset--color--accent-hover);
	font-family: var(--wp--preset--font-family--mono); font-size: 11.5px; font-weight: 600;
	padding: 4px 7px; width: auto; left: 0; right: auto; bottom: 0; max-height: none; text-shadow: none;
}
.wp-block-gallery.has-nested-images figure.wp-block-image:has(figcaption)::before { display: none; }

/* 7. Boutons ---------------------------------------------------------------- */
.wp-block-button__link { min-height: 52px; display: inline-flex; align-items: center; justify-content: center; transition: background-color .15s ease, border-color .15s ease, color .15s ease; }
.wp-block-button.is-style-outline > .wp-block-button__link,
.wp-block-button .wp-block-button__link.is-style-outline {
	background: rgba(244, 242, 239, .06) !important;
	border: 1px solid var(--wp--preset--color--line-strong) !important;
	color: var(--wp--preset--color--contrast) !important;
	padding: 16px 26px;
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover { border-color: var(--wp--preset--color--contrast) !important; }
.wp-block-button.is-style-sombre > .wp-block-button__link {
	background: var(--wp--preset--color--base); border-color: var(--wp--preset--color--base); color: var(--wp--preset--color--accent-hover);
}
.wp-block-button.is-style-sombre > .wp-block-button__link:hover { background: #000; border-color: #000; color: var(--wp--preset--color--accent-hover); }
.wp-block-button.is-style-contour-sombre > .wp-block-button__link {
	background: transparent; border: 2px solid var(--wp--preset--color--base); color: var(--wp--preset--color--base);
}
.wp-block-button.is-style-contour-sombre > .wp-block-button__link:hover { background: rgba(23, 25, 27, .1); color: var(--wp--preset--color--base); }
.ss-btn-tel .wp-block-button__link { font-family: var(--wp--preset--font-family--mono); font-weight: 600; font-size: 14.5px; }
.ss-btn-sm .wp-block-button__link { min-height: 48px; padding: 12px 20px; font-size: 14.5px; }
@media (max-width: 781px) {
	.ss-btns-full > .wp-block-button { flex: 1 1 100%; }
	.ss-btns-full > .wp-block-button .wp-block-button__link { width: 100%; }
}
.ss-tel-big a { color: inherit; text-decoration: none; }

/* 8. Onglets ------------------------------------------------------------------ */
.wp-block-tab-list button {
	font-family: var(--wp--preset--font-family--archivo); font-weight: 600; font-size: 15px; line-height: 1.25;
	color: var(--wp--preset--color--contrast); min-height: 48px;
	transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.wp-block-tab-list button[aria-selected=true]::before { display: none; }
.wp-block-tab-panel { padding-top: var(--wp--preset--spacing--30); }

/* Style « Couches » : liste verticale à gauche, contenu à droite */
.wp-block-tabs.is-style-couches { display: grid; gap: clamp(18px, 3vw, 40px); align-items: start; }
@media (min-width: 1024px) { .wp-block-tabs.is-style-couches { grid-template-columns: minmax(300px, 5fr) 7fr; } }
.is-style-couches .wp-block-tab-list { flex-direction: column; flex-wrap: nowrap !important; gap: 3px !important; margin: 0; }
.is-style-couches .wp-block-tab-list button {
	width: 100%; text-align: left; padding: 15px 18px;
	background: var(--wp--preset--color--surface-2); border-left: 3px solid var(--wp--preset--color--line-strong);
}
.is-style-couches .wp-block-tab-list button:hover { background: var(--wp--preset--color--surface-3); }
.is-style-couches .wp-block-tab-list button[aria-selected=true] { background: var(--wp--preset--color--surface-3); border-left-color: var(--wp--preset--color--accent); color: var(--wp--preset--color--contrast); }
.is-style-couches .wp-block-tab-panels { margin: 0; }
.is-style-couches .wp-block-tab-panel {
	padding: clamp(22px, 3vw, 32px);
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--line);
	border-top: 3px solid var(--wp--preset--color--accent);
}
.is-style-couches .wp-block-tab-panel > * + * { margin-block-start: 14px; }
.is-style-couches .wp-block-tab-panel .wp-block-image { margin: 22px calc(-1 * clamp(22px, 3vw, 32px)) calc(-1 * clamp(22px, 3vw, 32px)); }

/* Style « Pastilles » : boutons en puces qui passent à la ligne */
.is-style-pastilles .wp-block-tab-list { gap: 8px !important; }
.is-style-pastilles .wp-block-tab-list button {
	padding: 0 16px; background: var(--wp--preset--color--surface-2); border: 1px solid var(--wp--preset--color--line);
}
.is-style-pastilles .wp-block-tab-list button:hover { border-color: var(--wp--preset--color--accent); }
.is-style-pastilles .wp-block-tab-list button[aria-selected=true] { background: var(--wp--preset--color--accent); border-color: var(--wp--preset--color--accent); color: var(--wp--preset--color--base); }
.is-style-pastilles .wp-block-tab-panel { padding-top: clamp(20px, 3vw, 32px); }
.is-style-pastilles .wp-block-tab-panel .wp-block-columns { gap: 2px !important; }
.ss-diag > .wp-block-column { padding: clamp(22px, 3vw, 32px); background: var(--wp--preset--color--surface); border-top: 2px solid var(--wp--preset--color--line-strong); }
.ss-diag > .wp-block-column:first-child { border-top-color: var(--wp--preset--color--alert); }
.ss-diag > .wp-block-column:last-child { background: var(--wp--preset--color--surface-2); border-top-color: var(--wp--preset--color--accent); }
.ss-diag .wp-block-column > * + * { margin-block-start: 12px; }

/* 9. Accordéon ------------------------------------------------------------------ */
.wp-block-accordion.is-style-filets { border: 1px solid var(--wp--preset--color--line); }
.is-style-filets .wp-block-accordion-item + .wp-block-accordion-item { border-top: 1px solid var(--wp--preset--color--line); }
.is-style-filets .wp-block-accordion-heading { margin: 0; font-size: 16px; }
.is-style-filets .wp-block-accordion-heading__toggle { padding: 16px 20px; min-height: 56px; color: var(--wp--preset--color--contrast); font-weight: 700; letter-spacing: 0; }
.is-style-filets .wp-block-accordion-heading__toggle:hover .wp-block-accordion-heading__toggle-title { text-decoration: none; color: var(--wp--preset--color--accent-hover); }
.is-style-filets .wp-block-accordion-heading__toggle-icon { color: var(--wp--preset--color--accent-hover); }
.is-style-filets .wp-block-accordion-panel { padding: 0 20px 18px; }

/* Listes à puces carrées */
.is-style-puces-carrees { list-style: none; padding-left: 0; }
.is-style-puces-carrees li { display: flex; gap: 12px; align-items: baseline; padding: 13px 0; border-bottom: 1px solid var(--wp--preset--color--line); color: var(--wp--preset--color--contrast); line-height: 1.4; }
.is-style-puces-carrees li::before { content: ""; flex: none; width: 8px; height: 8px; background: var(--wp--preset--color--accent); transform: translateY(-1px); }

/* 10. Chantiers ------------------------------------------------------------------ */
.ss-loop .wp-block-post { height: 100%; }
.ss-loop .is-style-carte { position: relative; display: flex; flex-direction: column; }
.ss-loop .wp-block-post-featured-image img { aspect-ratio: 16 / 10; object-fit: cover; width: 100%; }
.ss-loop .wp-block-post-featured-image:not(:has(img)) { aspect-ratio: 16 / 10; background: repeating-linear-gradient(135deg, var(--wp--preset--color--surface-3) 0 9px, var(--wp--preset--color--surface-2) 9px 18px); }
.ss-loop .wp-block-post-title a { color: var(--wp--preset--color--contrast); text-decoration: none; }
.ss-loop .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; } /* toute la carte est cliquable */
.ss-loop .wp-block-read-more { position: relative; z-index: 0; font-family: var(--wp--preset--font-family--mono); font-size: 13px; font-weight: 600; letter-spacing: .06em; color: var(--wp--preset--color--accent-hover); text-decoration: none; }
.is-style-pastille.wp-block-post-terms {
	position: absolute; top: 0; left: 0; z-index: 2; margin: 0;
	padding: 6px 10px; background: var(--wp--preset--color--accent); color: var(--wp--preset--color--base);
	font-family: var(--wp--preset--font-family--mono); font-size: 11.5px; font-weight: 600; line-height: 1;
	letter-spacing: .08em; text-transform: uppercase;
}
.is-style-pastille.wp-block-post-terms a { color: inherit; text-decoration: none; position: relative; z-index: 2; }
.is-style-pastille.wp-block-post-terms .wp-block-post-terms__separator { opacity: .6; }

/* Filtres par type de chantier (bloc Liste des termes) */
.wp-block-categories.is-style-filtres { list-style: none; padding: 0 0 4px; margin: 0; display: flex; gap: 8px; overflow-x: auto; scrollbar-width: thin; }
.wp-block-categories.is-style-filtres li { flex: none; }
.wp-block-categories.is-style-filtres a {
	display: inline-flex; align-items: center; min-height: 44px; padding: 0 14px;
	border: 1px solid var(--wp--preset--color--line-strong); color: var(--wp--preset--color--muted);
	font-family: var(--wp--preset--font-family--mono); font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; text-decoration: none;
}
.wp-block-categories.is-style-filtres a:hover { border-color: var(--wp--preset--color--accent); color: var(--wp--preset--color--contrast); }
.wp-block-categories.is-style-filtres .current-cat a { background: var(--wp--preset--color--contrast); border-color: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }

/* Fiche technique (bloc Tableau, style « Fiche ») */
.wp-block-table.is-style-fiche table { border-collapse: collapse; width: 100%; }
.wp-block-table.is-style-fiche td, .wp-block-table.is-style-fiche th { border: 1px solid var(--wp--preset--color--line); padding: 14px 16px; vertical-align: top; color: var(--wp--preset--color--contrast); font-size: 15.5px; }
.wp-block-table.is-style-fiche td:first-child {
	width: 34%; background: var(--wp--preset--color--surface); color: var(--wp--preset--color--subtle);
	font-family: var(--wp--preset--font-family--mono); font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
}
.wp-block-post-content .wp-block-table.is-style-fiche { margin-bottom: var(--wp--preset--spacing--50); }

/* Contenu d'un chantier : titres de rubriques en repères */
.ss-chantier-content > h2.wp-block-heading {
	font-family: var(--wp--preset--font-family--mono); font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase;
	color: var(--wp--preset--color--accent-hover); margin-top: var(--wp--preset--spacing--50); max-width: none;
}
.ss-chantier-content > p { max-width: 46em; }
.ss-chantier-content .wp-block-columns.ss-avant-apres { gap: 3px !important; }

.wp-block-query-pagination { font-family: var(--wp--preset--font-family--mono); font-size: 14px; gap: 8px; }
.wp-block-query-pagination a, .wp-block-query-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 12px; border: 1px solid var(--wp--preset--color--line-strong); color: var(--wp--preset--color--contrast); text-decoration: none; }
.wp-block-query-pagination .page-numbers.current { background: var(--wp--preset--color--accent); border-color: var(--wp--preset--color--accent); color: var(--wp--preset--color--base); }

/* Fil d'Ariane */
.wp-block-breadcrumbs { font-family: var(--wp--preset--font-family--mono); font-size: 12px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--subtle); }
.wp-block-breadcrumbs a { color: var(--wp--preset--color--subtle); text-decoration: none; }
.wp-block-breadcrumbs a:hover { color: var(--wp--preset--color--accent-hover); }
.wp-block-breadcrumbs [aria-current] { color: var(--wp--preset--color--contrast); }

/* 11. Formulaire Forminator (design « Aucun ») ---------------------------------------- */
.ss-form .forminator-ui.forminator-custom-form { margin: 0 !important; }
.ss-form .forminator-row { margin-bottom: 16px; }
.ss-form .forminator-label, .ss-form .forminator-field > label {
	display: block; margin-bottom: 8px; font-family: var(--wp--preset--font-family--mono); font-size: 12px; font-weight: 600;
	letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--subtle);
}
.ss-form .forminator-required { color: var(--wp--preset--color--accent-hover); }
.ss-form input:not([type=checkbox]):not([type=radio]):not([type=file]),
.ss-form select, .ss-form textarea {
	width: 100%; min-height: 52px; padding: 13px 14px; box-sizing: border-box;
	background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); border-radius: 0;
	color: var(--wp--preset--color--contrast); font-family: var(--wp--preset--font-family--archivo);
	font-size: 16px; /* 16px : évite le zoom automatique sur iPhone */ line-height: 1.35;
}
.ss-form textarea { min-height: 130px; resize: vertical; }
.ss-form input:focus, .ss-form select:focus, .ss-form textarea:focus { border-color: var(--wp--preset--color--accent); outline: 2px solid var(--wp--preset--color--accent); outline-offset: 0; }
.ss-form ::placeholder { color: var(--wp--preset--color--subtle); opacity: 1; }
.ss-form .forminator-multi-upload {
	border: 1.5px dashed var(--wp--preset--color--line-strong); background: var(--wp--preset--color--surface);
	padding: 24px; color: var(--wp--preset--color--muted); text-align: center; cursor: pointer;
}
.ss-form .forminator-multi-upload:hover { border-color: var(--wp--preset--color--accent); }
.ss-form .forminator-button-upload, .ss-form .forminator-upload-button {
	display: inline-flex; align-items: center; min-height: 48px; padding: 0 20px; border: 1px solid var(--wp--preset--color--accent);
	background: transparent; color: var(--wp--preset--color--accent-hover); font-weight: 700; cursor: pointer;
}
.ss-form input[type=file] { width: 100%; color: var(--wp--preset--color--muted); font-size: 14px; }
.ss-form input[type=file]::file-selector-button {
	margin-right: 12px; min-height: 48px; padding: 0 20px; border: 1px solid var(--wp--preset--color--accent); border-radius: 0;
	background: transparent; color: var(--wp--preset--color--accent-hover); font: 700 15px/1 var(--wp--preset--font-family--archivo); cursor: pointer;
}
.ss-form input[type=file]::file-selector-button:hover { background: var(--wp--preset--color--accent); color: var(--wp--preset--color--base); }
.ss-form .forminator-uploaded-files { list-style: none; padding: 0; margin: 10px 0 0; color: var(--wp--preset--color--muted); font-size: 14px; }
.ss-form .forminator-description, .ss-form .forminator-description p { font-size: 14px; color: var(--wp--preset--color--muted); margin-top: 6px; }
.ss-form .forminator-checkbox { display: flex; gap: 12px; align-items: flex-start; font-size: 14.5px; line-height: 1.5; color: var(--wp--preset--color--muted); }
.ss-form input[type=checkbox] { width: 22px; height: 22px; accent-color: var(--wp--preset--color--accent); flex: none; }
.ss-form .forminator-button-submit {
	width: 100%; min-height: 56px; padding: 0 28px; border: 0; border-radius: 0; cursor: pointer;
	background: var(--wp--preset--color--accent); color: var(--wp--preset--color--base);
	font-family: var(--wp--preset--font-family--archivo); font-size: 16px; font-weight: 700;
}
.ss-form .forminator-button-submit:hover { background: var(--wp--preset--color--accent-hover); }
@media (min-width: 768px) { .ss-form .forminator-button-submit { width: auto; } }
.ss-form .forminator-error-message, .ss-form .forminator-response-message.forminator-error { color: var(--wp--preset--color--alert-soft); font-size: 14px; }
.ss-form .forminator-response-message.forminator-success {
	background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); border-top: 3px solid var(--wp--preset--color--accent);
	padding: 20px 22px; color: var(--wp--preset--color--contrast);
}
@media (min-width: 768px) {
	.ss-form .forminator-row:not(.forminator-row-last) { display: flex; gap: 16px; }
	.ss-form .forminator-row > .forminator-col { flex: 1; }
}

/* 12. Pied de page et barre mobile ------------------------------------------------- */
.ss-footer a { color: var(--wp--preset--color--contrast); text-decoration: none; }
.ss-footer a:hover { color: var(--wp--preset--color--accent-hover); }
.ss-footer .wp-block-navigation-item__content { min-height: 44px; display: flex; align-items: center; color: var(--wp--preset--color--muted); }
.ss-footer-bottom { border-top: 1px solid var(--wp--preset--color--line); }

.ss-sticky-cta { display: none !important; }
@media (max-width: 767px) {
	.ss-sticky-cta {
		display: flex !important; position: fixed; left: 0; right: 0; bottom: 0; z-index: 80; margin: 0 !important;
		gap: 10px !important; flex-wrap: nowrap !important;
		padding: 10px 12px calc(10px + env(safe-area-inset-bottom)) !important;
		background: var(--wp--preset--color--surface); border-top: 1px solid var(--wp--preset--color--line);
	}
	.ss-sticky-cta .wp-block-button__link { min-height: 52px; padding: 0 14px; font-size: 15px; white-space: nowrap; }
	.ss-sticky-cta .wp-block-button { min-width: 0; }
	.ss-sticky-cta .wp-block-button:last-child { flex: 1; }
	.ss-sticky-cta .wp-block-button:last-child .wp-block-button__link { width: 100%; }
	body:has(.ss-sticky-cta) { padding-bottom: 76px; }
	/* Pas de barre quand le menu mobile est ouvert */
	body:has(.wp-block-navigation__responsive-container.is-menu-open) .ss-sticky-cta { display: none !important; }
	/* Pas de barre sur la page de demande : le formulaire est déjà là */
	body.page-slug-diagnostic .ss-sticky-cta { display: none !important; }
	body.page-slug-diagnostic { padding-bottom: 0; }
}

/* 13. Compléments de mise en page ------------------------------------------------ */
.ss-inner > p:not(.is-style-pastille), .ss-measure { max-width: 46em; }
.ss-inner > .wp-block-heading { max-width: 22em; }
.ss-inner > .wp-block-query, .ss-inner > .wp-block-tabs, .ss-inner > .is-layout-grid, .ss-inner > .wp-block-accordion { margin-block-start: clamp(28px, 4vw, 48px); }
.ss-inner > .is-style-reperage + .wp-block-heading, .ss-inner > .is-style-reperage + .wp-block-columns { margin-block-start: 18px; }
.ss-chiffre {
	margin: 0; color: var(--wp--preset--color--contrast);
	font-size: clamp(26px, 2.4vw, 30px); font-weight: 800; line-height: 1; letter-spacing: -.03em;
}
.is-style-chiffres > *:first-child .ss-chiffre { color: var(--wp--preset--color--accent-hover); }
.is-style-chiffres .ss-chiffre + p { font-size: 14px; line-height: 1.45; margin-top: 8px; }
.wp-block-tab-panel .ss-rule { padding-top: 16px; border-top: 1px solid var(--wp--preset--color--line); color: var(--wp--preset--color--contrast); font-weight: 600; }
.wp-block-quote { margin: 0; max-width: 30em; }
.wp-block-quote p { text-wrap: balance; }
.ssc-formulaire-secours { background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); border-top: 3px solid var(--wp--preset--color--accent); padding: 22px 24px; color: var(--wp--preset--color--contrast); }
.ss-cta .wp-block-columns { align-items: center; }

/* En-tête : le menu passe en « hamburger » sous 1100 px (le seuil natif de WordPress est 600 px,
   trop bas pour 5 entrées + 2 boutons). */
.ss-hdr-row { gap: 16px; }
.ss-hdr-right { min-width: 0; }
.ss-hdr-tel { display: none !important; }
.ss-hdr-cta { display: none !important; }
@media (min-width: 600px) and (max-width: 1099px) { .ss-hdr-tel { display: block !important; } }
@media (min-width: 1100px) { .ss-hdr-cta { display: block !important; } }
@media (min-width: 1280px) { .ss-hdr-tel { display: block !important; } }
@media (max-width: 1099px) {
	.ss-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex !important; }
	.ss-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none !important; }
}

/* 14. Utilitaires responsive ------------------------------------------------------ */
@media (max-width: 599px) { .ss-hide-mobile { display: none !important; } }
@media (max-width: 1099px) { .ss-hide-tablet { display: none !important; } }
@media (min-width: 1100px) { .ss-only-small { display: none !important; } }
.ss-nowrap { white-space: nowrap; }
