/*
Theme Name: SB Multiservices
Theme URI: https://sb-multiservices64.fr
Author: Tendance Nature Communication
Author URI: https://tendancenature-communication.com
Description: Thème sur mesure pour S. Bethencourt Multiservices, artisan multiservices à Navailles-Angos. Sans constructeur de pages, polices auto-hébergées, SEO local intégré.
Version: 1.0.0
Requires at least: 6.3
Requires PHP: 7.4
Text Domain: sbmultiservices
*/

/* ==========================================================================
   1. Polices (chargement progressif)
   - Le texte s'affiche tout de suite avec une police système réglée aux
     métriques de Montserrat (size-adjust), puis Montserrat prend le relais
     sans décalage de mise en page.
   - Un seul fichier (latin) est préchargé ; latin-ext ne se télécharge que
     si un caractère de cette plage apparaît.
   ========================================================================== */
@font-face {
	font-family: "Montserrat";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url(assets/fonts/montserrat-latin-wght-normal.woff2) format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Montserrat";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url(assets/fonts/montserrat-latin-ext-wght-normal.woff2) format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Montserrat Fallback";
	src: local("Arial"), local("Liberation Sans"), local("Helvetica");
	size-adjust: 113.8%;
	ascent-override: 85.1%;
	descent-override: 22.1%;
	line-gap-override: 0%;
}
/* Helvetica 96 Black Italic (police sous licence) : utilisée si elle est installée sur l'appareil.
   Pour l'embarquer, déposer le .woff2 sous licence dans assets/fonts/ et ajouter
   une ligne  url(assets/fonts/helvetica-96-black-italic.woff2) format("woff2")  dans src. */
@font-face {
	font-family: "Helvetica 96";
	font-style: italic;
	font-weight: 900;
	font-display: swap;
	src: local("Helvetica 96 Black Italic"), local("Helvetica96-BlackItalic");
}

/* ==========================================================================
   2. Tokens (charte graphique : noir 0/0/0/100, gris 0/0/0/90, rouge 0/100/100/0)
   ========================================================================== */
:root {
	--noir: #000000;
	--anthracite: #404143;
	--rouge: #ee1c25;
	--rouge-texte: #c8141c; /* rouge assombri pour le texte sur fond clair (contraste AA) */
	--gris-clair: #f2f1f2;
	--blanc: #ffffff;
	--texte: #2e2f31;

	--font-corps: "Montserrat", "Montserrat Fallback", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	--font-titre: "Helvetica 96", "Helvetica Neue", Helvetica, Arial, sans-serif;

	--rayon: 2px;
	--largeur: 72rem;
	--ombre: 0 .5rem 1.5rem rgba(0, 0, 0, .12);
}

/* ==========================================================================
   3. Base
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 5.5rem; }
body {
	margin: 0;
	font-family: var(--font-corps);
	font-weight: 500;
	font-size: 1rem;
	line-height: 1.7;
	color: var(--texte);
	background: var(--blanc);
	-webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
img, svg { max-width: 100%; height: auto; display: block; }
a { color: var(--rouge-texte); text-underline-offset: .2em; }
a:hover { color: var(--noir); }
strong, b { font-weight: 700; }
:focus-visible { outline: 3px solid var(--rouge); outline-offset: 3px; }

h1, h2, h3, h4 {
	font-family: var(--font-titre);
	font-weight: 900;
	font-style: italic;
	line-height: 1.12;
	letter-spacing: -.01em;
	margin: 0 0 1rem;
	color: inherit;
	text-wrap: balance;
}
h1 { font-size: clamp(1.9rem, 1.2rem + 3.2vw, 3.2rem); }
h2 { font-size: clamp(1.55rem, 1.1rem + 2vw, 2.4rem); }
h3 { font-size: clamp(1.15rem, 1rem + .8vw, 1.45rem); }
p { margin: 0 0 1rem; }

.sbm-container { width: min(100% - 2rem, var(--largeur)); margin-inline: auto; }
.sbm-section { padding-block: clamp(3rem, 2rem + 5vw, 6rem); }
.sbm-section--clair { background: var(--gris-clair); }
.sbm-section--sombre { background: var(--anthracite); color: var(--blanc); }
.sbm-section--sombre a { color: var(--blanc); }

.sbm-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.sbm-skip { position: absolute; left: -999px; top: 0; z-index: 200; background: var(--rouge); color: var(--blanc); padding: .75rem 1rem; font-weight: 700; }
.sbm-skip:focus { left: 0; }

.sbm-eyebrow { font-weight: 700; font-size: .85rem; letter-spacing: .12em; text-transform: uppercase; color: var(--rouge-texte); margin-bottom: .6rem; }
.sbm-section--sombre .sbm-eyebrow, .sbm-hero .sbm-eyebrow { color: var(--rouge); }
.sbm-lead { font-size: 1.1rem; font-weight: 600; }
.sbm-icon { width: 1.25em; height: 1.25em; fill: currentColor; flex: none; }

/* Boutons */
.sbm-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .6rem;
	padding: .9rem 1.6rem; border: 2px solid var(--rouge); border-radius: var(--rayon);
	background: var(--rouge); color: var(--blanc); text-decoration: none; cursor: pointer;
	font-family: var(--font-titre); font-weight: 900; font-style: italic; font-size: 1rem; line-height: 1.2;
	transition: background-color .2s, color .2s, border-color .2s;
}
.sbm-btn:hover { background: var(--noir); border-color: var(--noir); color: var(--blanc); }
.sbm-btn--contour { background: transparent; color: var(--blanc); border-color: var(--blanc); }
.sbm-btn--contour:hover { background: var(--blanc); color: var(--noir); border-color: var(--blanc); }
.sbm-btn--sombre { background: var(--anthracite); border-color: var(--anthracite); }
.sbm-btn--clair { background: transparent; color: var(--noir); border-color: var(--noir); }
.sbm-btn--clair:hover { background: var(--noir); color: var(--blanc); }

/* ==========================================================================
   4. En-tête et navigation
   ========================================================================== */
.sbm-bandeau { background: var(--rouge); color: var(--blanc); font-weight: 700; font-size: .9rem; }
.sbm-bandeau__in { display: flex; align-items: center; justify-content: center; gap: .75rem; padding-block: .5rem; text-align: center; }
.sbm-bandeau img { height: 2rem; width: auto; }

.sbm-header { position: sticky; top: 0; z-index: 60; background: var(--anthracite); color: var(--blanc); border-bottom: 3px solid var(--rouge); }
.sbm-header__in { display: flex; align-items: center; gap: 1rem; min-height: 4.5rem; }
.sbm-logo { display: block; margin-right: auto; line-height: 0; }
.sbm-logo img { height: 2.75rem; width: auto; }
.sbm-header__tel {
	display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 3rem; min-width: 3rem; padding: .55rem .9rem; background: var(--rouge); color: var(--blanc);
	text-decoration: none; font-weight: 700; border-radius: var(--rayon); white-space: nowrap;
}
.sbm-header__tel:hover { background: var(--noir); color: var(--blanc); }
.sbm-header__tel-txt { display: none; }

.sbm-burger { position: relative; z-index: 80; width: 3rem; height: 3rem; border: 0; background: transparent; color: var(--blanc); cursor: pointer; }
.sbm-burger span, .sbm-burger::before, .sbm-burger::after {
	content: ""; position: absolute; left: .7rem; right: .7rem; height: 3px; background: currentColor; transition: transform .25s, opacity .25s;
}
.sbm-burger::before { top: 1.1rem; }
.sbm-burger span { top: 1.4rem; }
.sbm-burger::after { top: 1.7rem; }
.is-open .sbm-burger::before { transform: translateY(.3rem) rotate(45deg); }
.is-open .sbm-burger::after { transform: translateY(-.3rem) rotate(-45deg); }
.is-open .sbm-burger span { opacity: 0; }

.sbm-menu, .sbm-menu ul { list-style: none; margin: 0; padding: 0; }
.sbm-menu a { color: var(--blanc); text-decoration: none; font-weight: 700; }

/* Mobile : menu plein écran avec accordéon */
.sbm-nav {
	position: fixed; inset: 0; z-index: 70; overflow-y: auto; padding: 5.5rem 1.5rem 2rem; background: var(--noir);
	transform: translateX(100%); visibility: hidden; transition: transform .3s ease, visibility .3s;
}
.is-open .sbm-nav { transform: none; visibility: visible; }
.sbm-menu > li { border-bottom: 1px solid rgba(255, 255, 255, .15); position: relative; }
.sbm-menu a { display: block; padding: 1rem .25rem; font-size: 1.25rem; font-family: var(--font-titre); font-style: italic; font-weight: 900; }
.sbm-menu .current-menu-item > a, .sbm-menu .current-menu-ancestor > a { color: var(--rouge); }
.sbm-menu .sub-menu { display: none; padding: 0 0 .75rem 1rem; }
.sbm-menu .sub-menu a { font-family: var(--font-corps); font-style: normal; font-weight: 600; font-size: 1.05rem; padding: .6rem .25rem; }
.sbm-menu .is-expanded > .sub-menu { display: block; }
.sbm-sub-toggle { position: absolute; top: .5rem; right: 0; width: 2.75rem; height: 2.75rem; border: 0; background: transparent; color: var(--blanc); cursor: pointer; }
.sbm-sub-toggle span { display: block; width: .7rem; height: .7rem; margin: 0 auto; border: solid currentColor; border-width: 0 3px 3px 0; transform: rotate(45deg); transition: transform .2s; }
.is-expanded > .sbm-sub-toggle span { transform: rotate(-135deg); }

@media (min-width: 600px) { .sbm-header__tel-txt { display: inline; } }

@media (min-width: 960px) {
	.sbm-burger, .sbm-sub-toggle { display: none; }
	.sbm-nav { order: 2; }
	.sbm-header__tel { order: 3; }
	.sbm-nav { position: static; inset: auto; overflow: visible; padding: 0; background: transparent; transform: none; visibility: visible; }
	.sbm-menu { display: flex; gap: .25rem; }
	.sbm-menu > li { border: 0; }
	.sbm-menu a { font-size: 1rem; padding: .6rem 1rem; font-family: var(--font-corps); font-style: normal; font-weight: 700; }
	.sbm-menu > li > a { border-bottom: 3px solid transparent; }
	.sbm-menu > li > a:hover, .sbm-menu .current-menu-item > a, .sbm-menu .current-menu-ancestor > a { color: var(--blanc); border-bottom-color: var(--rouge); }
	.sbm-menu .sub-menu {
		position: absolute; top: 100%; left: 0; min-width: 17rem; padding: .5rem 0; background: var(--noir);
		border-top: 3px solid var(--rouge); box-shadow: var(--ombre); display: none;
	}
	.sbm-menu > li:hover > .sub-menu, .sbm-menu > li:focus-within > .sub-menu { display: block; }
	.sbm-menu .sub-menu a { padding: .6rem 1.25rem; font-size: .95rem; }
	.sbm-menu .sub-menu a:hover { background: var(--rouge); }
}

/* ==========================================================================
   5. Accueil
   ========================================================================== */
.sbm-hero { position: relative; isolation: isolate; overflow: hidden; background: var(--anthracite); color: var(--blanc); padding-block: clamp(3.5rem, 2rem + 7vw, 8rem); }
.sbm-hero__fond { position: absolute; inset: 0; z-index: -3; width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); opacity: .22; }
.sbm-hero__texte { max-width: 44rem; }
.sbm-hero h1 { margin-bottom: 1.25rem; }
.sbm-hero h2 { font-size: clamp(1.2rem, 1rem + 1vw, 1.7rem); color: var(--blanc); }
.sbm-hero p a { color: var(--blanc); text-decoration: underline; text-decoration-thickness: .08em; text-underline-offset: .2em; }
.sbm-hero .sbm-btn { margin-top: .75rem; }

.sbm-grille { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); margin-top: 2rem; }
.sbm-carte {
	position: relative; padding: 1.5rem; background: var(--blanc); border-top: 5px solid var(--rouge);
	box-shadow: 0 .15rem .75rem rgba(0, 0, 0, .08); transition: transform .2s, box-shadow .2s;
}
.sbm-carte:hover { transform: translateY(-4px); box-shadow: var(--ombre); }
.sbm-carte h3 { margin-bottom: .6rem; }
.sbm-carte h3 a { color: var(--noir); text-decoration: none; }
.sbm-carte h3 a::after { content: ""; position: absolute; inset: 0; }
.sbm-carte p { margin: 0; }
.sbm-carte__num { display: block; margin-bottom: .5rem; font-family: var(--font-titre); font-style: italic; font-weight: 900; font-size: 2.6rem; line-height: 1; color: var(--rouge); }
.sbm-carte__lien { display: inline-block; margin-top: 1rem; font-weight: 700; color: var(--rouge-texte); }

.sbm-duo { display: grid; gap: 2rem; align-items: center; }
.sbm-duo__img img { width: 100%; box-shadow: var(--ombre); }
@media (min-width: 860px) { .sbm-duo--img { grid-template-columns: 5fr 6fr; gap: 4rem; } }

.sbm-points { list-style: none; margin: 2rem 0 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); }
.sbm-points li { display: flex; gap: .85rem; align-items: flex-start; padding: 1.25rem; background: rgba(255, 255, 255, .09); font-weight: 700; }
.sbm-points .sbm-icon { color: var(--rouge); margin-top: .2rem; }

.sbm-avis__lien { margin-top: 1.5rem; font-weight: 700; }
.sbm-partenaires { list-style: none; margin: 1.5rem 0 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 2rem 3rem; }
.sbm-partenaires img { height: 3rem; width: auto; }
.sbm-partenaires span { font-weight: 800; font-size: 1.1rem; color: var(--anthracite); }
.sbm-titre-maj { text-transform: uppercase; letter-spacing: .08em; }

.sbm-zone { padding-block: 2.5rem; background: var(--anthracite); color: var(--blanc); }
.sbm-zone p { margin: 0; max-width: 52rem; font-weight: 600; }


/* ==========================================================================
   5 bis. Page compétence
   ========================================================================== */
.sbm-hero--comp { padding-block: 1.5rem clamp(2.5rem, 2rem + 4vw, 4.5rem); }
.sbm-fil { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: clamp(1.5rem, 1rem + 3vw, 2.5rem); font-size: .85rem; font-weight: 700; color: #d8d8d9; }
.sbm-fil a { color: var(--blanc); }
.sbm-hero__duo { display: grid; gap: 1.75rem; align-items: center; }
.sbm-hero--comp h1 { font-size: clamp(2.5rem, 1.6rem + 4vw, 4rem); margin-bottom: 1.5rem; }
.sbm-hero__actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.sbm-hero__actions .sbm-btn { margin-top: 0; }
.sbm-hero__cadre { max-width: 22rem; }
.sbm-hero__photo { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; box-shadow: var(--ombre); }
@media (min-width: 860px) {
	.sbm-hero__duo.has-photo { grid-template-columns: minmax(0, 1fr) 21.25rem; gap: 4rem; }
	.sbm-hero__cadre { max-width: none; }
}

.sbm-comp__cols { display: grid; gap: 2.5rem; align-items: start; }
.sbm-comp__article { min-width: 0; }
.sbm-comp .entry-content > :first-child { margin-top: 0; }
.sbm-comp .entry-content ul { list-style: none; padding-left: 0; display: grid; gap: .6rem; }
.sbm-comp .entry-content ul li { position: relative; padding-left: 2rem; }
.sbm-comp .entry-content ul li::before {
	content: ""; position: absolute; left: .35rem; top: .5em; width: .45rem; height: .8rem;
	border: solid var(--rouge-texte); border-width: 0 3px 3px 0; transform: rotate(45deg);
}
@media (min-width: 960px) {
	.sbm-comp__cols { grid-template-columns: minmax(0, 1fr) 21.25rem; gap: 3.5rem; }
	.sbm-aside { position: sticky; top: 6rem; }
}

.sbm-aside { padding: 1.75rem; background: var(--gris-clair); border-top: 5px solid var(--rouge); }
.sbm-aside__titre { margin: 0 0 .75rem; font-family: var(--font-titre); font-style: italic; font-weight: 900; font-size: 1.4rem; line-height: 1.15; color: var(--noir); }
.sbm-aside__liste { list-style: none; margin: 0 0 1.25rem; padding: 0; display: grid; gap: .6rem; font-size: .95rem; font-weight: 700; }
.sbm-aside__liste li { display: flex; gap: .6rem; align-items: flex-start; }
.sbm-aside__liste .sbm-icon { color: var(--rouge-texte); margin-top: .25rem; }
.sbm-aside .sbm-btn { width: 100%; margin-bottom: .6rem; }
.sbm-aside .sbm-btn:last-child { margin-bottom: 0; }

.sbm-grille--5 { grid-template-columns: repeat(auto-fit, minmax(10.5rem, 1fr)); }

/* ==========================================================================
   6. Pied de page
   ========================================================================== */
.sbm-footer { background: var(--noir); color: rgba(255, 255, 255, .85); font-size: .95rem; }
.sbm-footer a { color: var(--blanc); text-decoration: none; }
.sbm-footer a:hover { color: var(--rouge); text-decoration: underline; }
.sbm-footer__haut { display: grid; gap: 2rem; padding-block: 3rem; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); }
.sbm-footer__titre { margin: 0 0 .75rem; font-family: var(--font-titre); font-style: italic; font-weight: 900; font-size: 1.1rem; color: var(--blanc); }
.sbm-footer ul { list-style: none; margin: 0; padding: 0; }
.sbm-footer li { margin-bottom: .4rem; }
.sbm-footer__logo img { height: 3.25rem; width: auto; margin-bottom: 1rem; }
.sbm-footer__bas { border-top: 1px solid rgba(255, 255, 255, .15); padding-block: 1.25rem; display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; justify-content: space-between; font-size: .85rem; }
.sbm-footer__bas p { margin: 0; }
.sbm-lien-bouton { background: none; border: 0; padding: 0; font: inherit; color: var(--blanc); cursor: pointer; text-decoration: none; }
.sbm-lien-bouton:hover { color: var(--rouge); text-decoration: underline; }

/* ==========================================================================
   7. Fenêtre de devis, formulaire, contact flottant
   ========================================================================== */
.sbm-dialog { width: 100%; max-width: min(44rem, calc(100% - 1.5rem)); max-height: calc(100dvh - 1.5rem); padding: 0; border: 0; border-top: 6px solid var(--rouge); background: var(--blanc); color: var(--texte); box-shadow: var(--ombre); }
.sbm-dialog::backdrop { background: rgba(0, 0, 0, .72); }
.sbm-dialog__corps { padding: 2rem 1.5rem 1.5rem; }
.sbm-dialog__fermer { position: absolute; top: .5rem; right: .5rem; width: 2.5rem; height: 2.5rem; display: grid; place-items: center; border: 0; background: transparent; color: var(--noir); cursor: pointer; }
.sbm-dialog__rassurance { display: flex; gap: .6rem; align-items: flex-start; margin: 1.25rem 0 0; font-weight: 600; }
.sbm-dialog__rassurance .sbm-icon { color: var(--rouge); margin-top: .2rem; }

.sbm-form { display: grid; gap: 1rem; margin-top: 1.25rem; }
.sbm-form label, .sbm-form legend { display: block; margin-bottom: .3rem; font-weight: 700; font-size: .95rem; padding: 0; }
.sbm-form input[type="text"], .sbm-form input[type="email"], .sbm-form input[type="tel"], .sbm-form textarea {
	width: 100%; padding: .75rem .9rem; border: 2px solid var(--anthracite); border-radius: var(--rayon); background: var(--blanc); color: var(--texte); font: inherit;
}
.sbm-form textarea { min-height: 8rem; resize: vertical; }
.sbm-form input:focus-visible, .sbm-form textarea:focus-visible { outline: 3px solid var(--rouge); outline-offset: 1px; border-color: var(--rouge); }
.sbm-form fieldset { margin: 0; padding: 0; border: 0; min-width: 0; }
.sbm-form__choix { display: grid; gap: .45rem; }
.sbm-form__choix label { display: flex; align-items: flex-start; gap: .6rem; margin: 0; font-weight: 500; cursor: pointer; }
.sbm-form__choix input { width: 1.15rem; height: 1.15rem; margin-top: .25rem; accent-color: var(--rouge); flex: none; }
.sbm-form__choix--ligne { grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr)); }
.sbm-form__duo { display: grid; gap: 1rem; }
@media (min-width: 560px) { .sbm-form__duo { grid-template-columns: 1fr 1fr; } }
.sbm-form__piege { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.sbm-form__rgpd { font-size: .85rem; margin: 0; }
.sbm-form .sbm-btn { justify-self: start; }

.sbm-notice { position: fixed; left: 50%; bottom: 1.25rem; z-index: 120; width: min(100% - 2rem, 34rem); transform: translateX(-50%); padding: 1rem 3rem 1rem 1.25rem; background: var(--noir); color: var(--blanc); border-left: 6px solid var(--rouge); box-shadow: var(--ombre); font-weight: 600; }
.sbm-notice--erreur { background: var(--rouge-texte); border-left-color: var(--noir); }
.sbm-notice button { position: absolute; top: .4rem; right: .4rem; width: 2rem; height: 2rem; border: 0; background: transparent; color: inherit; cursor: pointer; display: grid; place-items: center; }

.sbm-float { position: fixed; right: 1rem; bottom: 1rem; z-index: 55; display: none; flex-direction: column; align-items: flex-end; gap: .6rem; }
@media (min-width: 960px) { .sbm-float { display: flex; } }
.sbm-float__toggle {
	display: inline-flex; align-items: center; gap: .6rem; padding: .8rem 1.2rem; border: 0; border-radius: 999px; background: var(--rouge); color: var(--blanc);
	font-family: var(--font-titre); font-style: italic; font-weight: 900; font-size: .95rem; cursor: pointer; box-shadow: var(--ombre);
}
.sbm-float__toggle:hover { background: var(--noir); }
.sbm-float__panneau { width: min(18rem, calc(100vw - 2rem)); padding: 1.1rem; background: var(--blanc); border-top: 5px solid var(--rouge); box-shadow: var(--ombre); }
.sbm-float__panneau[hidden] { display: none; }
.sbm-float__titre { margin: 0 0 .75rem; font-family: var(--font-titre); font-style: italic; font-weight: 900; font-size: 1.1rem; color: var(--noir); }
.sbm-float__liste { display: grid; gap: .5rem; margin: 0 0 .75rem; padding: 0; list-style: none; }
.sbm-float__liste .sbm-btn { width: 100%; justify-content: flex-start; padding: .7rem 1rem; font-size: .95rem; }
.sbm-float__panneau > .sbm-btn { width: 100%; }

/* ==========================================================================
   8. Contenu éditorial (pages, articles)
   ========================================================================== */
.sbm-page { padding-block: clamp(2.5rem, 2rem + 4vw, 5rem); }
.sbm-page__titre { margin-bottom: 1.5rem; }
.entry-content { max-width: 52rem; }
.entry-content > * + * { margin-top: 1.1rem; }
.entry-content h2, .entry-content h3 { margin-top: 2rem; }
.entry-content ul, .entry-content ol { padding-left: 1.25rem; }
.entry-content img { margin-block: 1rem; }
.entry-content .alignwide, .entry-content .alignfull { max-width: 100%; }


/* ==========================================================================
   9. Pages de travaux, pages courantes, contact, barre mobile
   ========================================================================== */
.sbm-hero--page { padding-block: 1.5rem clamp(2rem, 1.5rem + 3vw, 3.5rem); }
.sbm-hero--page h1 { font-size: clamp(2rem, 1.3rem + 3.2vw, 3.2rem); margin-bottom: 0; }
.sbm-hero--page .sbm-fil { margin-bottom: 1.25rem; }
.sbm-hero--travaux .sbm-hero__actions { margin-top: .25rem; }

.sbm-travaux__article .entry-content { max-width: 52rem; }
.sbm-travaux__article .entry-content > :first-child { margin-top: 0; }
.sbm-devis-inline .sbm-form { max-width: 44rem; margin-inline: auto; margin-top: 0; padding: 1.75rem; background: var(--blanc); border-top: 5px solid var(--rouge); box-shadow: var(--ombre); }

.sbm-communes-texte { margin: 0; font-size: .95rem; line-height: 1.8; }

.sbm-cta__in { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem; }
.sbm-cta h2 { margin: 0; }

.sbm-contact__cols { display: grid; gap: 3rem; align-items: start; }
@media (min-width: 960px) { .sbm-contact__cols { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 4rem; } }
.sbm-contact__texte { margin-bottom: 2rem; }
.sbm-contact__titre { margin-top: 0; }
.sbm-contact__liste { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; max-width: 22rem; }
.sbm-contact__liste .sbm-btn { width: 100%; justify-content: flex-start; }
.sbm-contact__form { padding: 1.75rem; background: var(--gris-clair); border-top: 5px solid var(--rouge); }
.sbm-contact__form h2 { font-size: clamp(1.4rem, 1.1rem + 1.2vw, 1.9rem); }
.sbm-contact__form .sbm-form { margin-top: 1rem; }

.sbm-faq .entry-content h2, .sbm-faq .entry-content h3, .sbm-faq .entry-content h4 { font-size: 1.25rem; margin-top: 2rem; padding-top: 1.25rem; border-top: 1px solid rgba(0, 0, 0, .12); }
.sbm-faq .entry-content > :first-child { margin-top: 0; padding-top: 0; border-top: 0; }

/* Barre mobile : appeler et devis, toujours à portée de pouce */
.sbm-barre { position: fixed; left: 0; right: 0; bottom: 0; z-index: 55; display: grid; grid-template-columns: 1fr 1.4fr; gap: .6rem; padding: .6rem .75rem calc(.6rem + env(safe-area-inset-bottom)); background: var(--anthracite); box-shadow: 0 -.25rem 1rem rgba(0, 0, 0, .25); }
.sbm-barre .sbm-btn { min-height: 2.9rem; padding-inline: .75rem; font-size: .95rem; }
@media (min-width: 960px) { .sbm-barre { display: none; } }
@media (max-width: 959px) {
	.sbm-footer__bas { padding-bottom: 5.5rem; }
	.sbm-notice { bottom: 5rem; }
}


/* Carte de la zone desservie */
.sbm-zone-label { margin: 1.5rem 0 .75rem; font-weight: 700; }
.sbm-carte-zone__cadre { position: relative; min-height: 26rem; background: var(--anthracite); color: var(--blanc); display: grid; place-items: center; text-align: center; }
.sbm-carte-zone__cadre.is-active { display: block; background: var(--gris-clair); }
.sbm-carte-zone__invite { padding: 2rem 1.25rem; max-width: 32rem; }
.sbm-carte-zone__invite p { margin: 1rem 0 0; font-size: .9rem; }
.sbm-carte-zone__cadre .leaflet-container { width: 100%; height: 26rem; font-family: var(--font-corps); }


/* Bandeau de cookies (tarteaucitron) aux couleurs du site : accepter et refuser ont le même poids visuel */
#tarteaucitronRoot, #tarteaucitronRoot * { font-family: var(--font-corps); }
#tarteaucitronRoot div#tarteaucitronAlertBig { background: var(--anthracite); border-top: 4px solid var(--rouge); }
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize2,
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronAllDenied2 { background: var(--blanc) !important; color: var(--noir) !important; border: 2px solid var(--blanc) !important; font-weight: 700; }
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronCloseAlert { background: transparent !important; color: var(--blanc) !important; border: 2px solid var(--blanc) !important; font-weight: 700; }
#tarteaucitronRoot .tac_activate { background: var(--anthracite); }
.sbm-avis-zone .tac_activate, .sbm-carte-zone__invite .tac_activate { max-width: 40rem; margin-inline: auto; }
@media (max-width: 959px) { #tarteaucitronIcon { bottom: 4.75rem !important; } }


/* ==========================================================================
   10. Contenu des pages de travaux : colonnes, prestations, galerie, icônes
   ========================================================================== */
/* Les icônes vectorielles collées dans le texte (anciens blocs) gardent une taille de texte */
.entry-content svg { width: 1.25em; height: 1.25em; max-width: 2rem; max-height: 2rem; flex: none; vertical-align: -.2em; }

.sbm-travaux__article .entry-content { max-width: none; }
.sbm-travaux__article .entry-content > p, .sbm-travaux__article .entry-content > ul, .sbm-travaux__article .entry-content > h3 { max-width: 60rem; }
.sbm-travaux__article .entry-content > h2:first-child { margin-top: 0; }
.sbm-centre { text-align: center; max-width: none !important; }

.sbm-cols { display: grid; gap: 2.5rem; margin-block: 2.5rem; }
@media (min-width: 860px) { .sbm-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4rem; } }
.sbm-cols > div > h2:first-child { margin-top: 0; }

/* Coches rouges : listes simples, prestations, avantages */
.sbm-travaux__article .entry-content ul:not([class]),
.entry-content ul.sbm-prestations, .entry-content ul.sbm-avantages { list-style: none; padding-left: 0; display: grid; gap: .6rem; }
.sbm-travaux__article .entry-content ul:not([class]) li,
.entry-content ul.sbm-prestations li, .entry-content ul.sbm-avantages li { position: relative; padding-left: 2rem; }
.sbm-travaux__article .entry-content ul:not([class]) li::before,
.entry-content ul.sbm-prestations li::before, .entry-content ul.sbm-avantages li::before {
	content: ""; position: absolute; left: .4rem; top: .5em; width: .45rem; height: .8rem;
	border: solid var(--rouge-texte); border-width: 0 3px 3px 0; transform: rotate(45deg);
}
.entry-content ul.sbm-prestations { margin-top: 1.25rem; }
.entry-content ul.sbm-prestations li { padding: .85rem 1rem .85rem 2.75rem; background: var(--gris-clair); font-weight: 700; }
.entry-content ul.sbm-prestations li::before { left: 1.1rem; top: 1.05rem; }
.entry-content ul.sbm-avantages { gap: 1.1rem; }
.entry-content ul.sbm-avantages li strong { display: block; }
.entry-content ul.sbm-avantages li span { display: block; color: #595b5e; font-size: .95rem; }

/* Galerie « Quelques réalisations » */
.sbm-realisations { margin-block: 2.5rem; }
.sbm-realisations > h2 { margin-top: 0; }
.entry-content ul.sbm-galerie, ul.sbm-galerie { list-style: none; margin: 1.5rem 0 0; padding: 0; display: block; columns: 1; column-gap: 1rem; }
@media (min-width: 640px) { .entry-content ul.sbm-galerie, ul.sbm-galerie { columns: 2; } }
.entry-content ul.sbm-galerie li, ul.sbm-galerie li { break-inside: avoid; margin: 0 0 1rem; padding: 0; }
.entry-content ul.sbm-galerie li::before, ul.sbm-galerie li::before { display: none; }
.sbm-galerie a { display: block; line-height: 0; box-shadow: 0 .15rem .75rem rgba(0, 0, 0, .12); cursor: zoom-in; }
.sbm-galerie img, .entry-content .sbm-galerie img { width: 100%; height: auto; margin: 0; display: block; }
.sbm-zoom { padding: 0; border: 0; background: transparent; max-width: 96vw; max-height: 96vh; overflow: visible; }
.sbm-zoom::backdrop { background: rgba(0, 0, 0, .88); }
.sbm-zoom img { display: block; max-width: 96vw; max-height: 92vh; width: auto; height: auto; object-fit: contain; }
.sbm-zoom__fermer { position: absolute; top: -2.5rem; right: 0; width: 2.5rem; height: 2.5rem; border: 0; background: transparent; color: var(--blanc); font-size: 2rem; line-height: 1; cursor: pointer; }


/* ==========================================================================
   11. Héros par type de page (sans diagonale) et page Services
   - Accueil : photo plein cadre. Services et compétences : anthracite. Travaux : rouge.
   - Contact, FAQ, À propos, mentions légales : gris clair.
   ========================================================================== */
.sbm-hero--accueil { min-height: 32rem; display: flex; align-items: center; padding-block: clamp(4rem, 3rem + 6vw, 8rem); }
.sbm-hero--accueil > .sbm-container { width: min(100% - 2rem, var(--largeur)); }
.sbm-hero--accueil > .sbm-container { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 2rem 3rem; }
.sbm-hero__logo { display: block; width: clamp(14rem, 26vw, 22rem); height: auto; justify-self: end; }
@media (max-width: 760px) {
	.sbm-hero--accueil > .sbm-container { grid-template-columns: 1fr; }
	.sbm-hero__logo { order: -1; width: 11rem; justify-self: start; }
}
.sbm-hero--accueil .sbm-hero__fond { filter: none; opacity: 1; z-index: -2; }
.sbm-hero--accueil.has-photo::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(0, 0, 0, .52) 0%, rgba(0, 0, 0, .46) 55%, rgba(0, 0, 0, .3) 100%); }
.sbm-hero--accueil:not(.has-photo) { background: linear-gradient(135deg, #5d5f62 0%, #4b4d50 100%); }
.sbm-hero--accueil.has-photo .sbm-hero__texte { text-shadow: 0 1px 14px rgba(0, 0, 0, .4); }
@media (max-width: 760px) { .sbm-hero--accueil.has-photo::after { background: rgba(0, 0, 0, .5); } }
.sbm-btn--blanc { background: var(--blanc); border-color: var(--blanc); color: var(--noir); }
.sbm-btn--blanc:hover { background: var(--anthracite); border-color: var(--anthracite); color: var(--blanc); }

/* Compétences : anthracite uni. Travaux : rouge uni. */
.sbm-hero--travaux { background: var(--rouge-texte); }
.sbm-hero--travaux .sbm-eyebrow { color: var(--blanc); }
.sbm-hero--travaux h1 { font-size: clamp(1.9rem, 1.2rem + 2.8vw, 2.9rem); }
.sbm-hero--travaux .sbm-hero__photo { aspect-ratio: 3 / 2; }
.sbm-hero--travaux .sbm-fil, .sbm-hero--travaux .sbm-fil a { color: var(--blanc); }
@media (min-width: 860px) { .sbm-hero--travaux .sbm-hero__duo.has-photo { grid-template-columns: minmax(0, 1fr) 27.5rem; } }

/* Pages courantes : gris clair (clair) ou anthracite (sombre) */
.sbm-hero--page { padding-block: 1.5rem clamp(2rem, 1.5rem + 3vw, 3.25rem); }
.sbm-hero--page.sbm-hero--clair { background: var(--gris-clair); color: var(--noir); }
.sbm-hero--clair .sbm-fil, .sbm-hero--clair .sbm-fil a { color: #595b5e; }
.sbm-hero__trait { width: 4rem; height: .4rem; margin-top: 1rem; background: var(--rouge); }
.sbm-chips { list-style: none; display: flex; flex-wrap: wrap; gap: .6rem; max-width: 46rem; margin: 1.5rem 0 0; padding: 0; }
.sbm-chips a { display: inline-block; padding: .45rem 1.1rem; border: 2px solid rgba(255, 255, 255, .55); border-radius: 999px; color: var(--blanc); font-size: .9rem; font-weight: 700; text-decoration: none; transition: background-color .2s, color .2s; }
.sbm-chips a:hover { background: var(--blanc); color: var(--noir); }

/* Appel à l'action : bandeau rouge */
.sbm-cta { background: var(--rouge); color: var(--blanc); }
.sbm-cta .sbm-btn:not(.sbm-btn--contour) { background: var(--blanc); border-color: var(--blanc); color: var(--noir); }
.sbm-cta .sbm-btn:not(.sbm-btn--contour):hover { background: var(--noir); border-color: var(--noir); color: var(--blanc); }
.sbm-cta h2 { font-size: clamp(1.7rem, 1.2rem + 2.2vw, 2.75rem); }

/* Page Services */
.sbm-intro { padding-bottom: clamp(2rem, 1.5rem + 2vw, 3.5rem); }
.sbm-intro__trait { width: 4rem; height: .4rem; margin-bottom: 1.5rem; background: var(--rouge); }
.sbm-intro__texte { max-width: 52rem; font-size: 1.2rem; line-height: 1.6; font-weight: 700; }
.sbm-intro + .sbm-tuiles-section { padding-top: 0; }

.sbm-tuiles { display: grid; gap: 1.25rem; grid-template-columns: 1fr; margin-top: 2rem; }
@media (min-width: 560px) { .sbm-tuiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 960px) { .sbm-tuiles { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.sbm-tuile { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--anthracite); color: var(--blanc); text-decoration: none; }
@media (min-width: 560px) { .sbm-tuile { aspect-ratio: 3 / 4; } }
.sbm-tuile__photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.sbm-tuile:hover .sbm-tuile__photo { transform: scale(1.05); }
.sbm-tuile__num { position: absolute; top: .5rem; left: 1.25rem; font-family: var(--font-titre); font-style: italic; font-weight: 900; font-size: 5.25rem; line-height: 1; color: transparent; -webkit-text-stroke: 2px var(--blanc); }
.sbm-tuile__corps { position: absolute; left: 0; right: 0; bottom: 0; display: block; padding: 1.5rem; background: rgba(0, 0, 0, .72); }
.sbm-tuile__titre { display: block; margin-bottom: .4rem; font-family: var(--font-titre); font-style: italic; font-weight: 900; font-size: 1.75rem; line-height: 1.1; }
.sbm-tuile__texte { display: block; margin-bottom: .75rem; color: #e6e5e6; font-size: .9rem; line-height: 1.5; }
.sbm-tuile__lien { font-weight: 700; border-bottom: 3px solid var(--rouge); padding-bottom: 2px; }

.sbm-lignes { margin-top: 2rem; border-top: 1px solid rgba(0, 0, 0, .15); }
.sbm-ligne { display: grid; gap: .35rem 1.5rem; grid-template-columns: minmax(0, 1fr) 2rem; align-items: center; padding-block: 1.5rem; border-bottom: 1px solid rgba(0, 0, 0, .15); color: var(--texte); text-decoration: none; transition: background-color .2s; }
.sbm-ligne__titre { grid-column: 1; font-family: var(--font-titre); font-style: italic; font-weight: 900; font-size: 1.45rem; line-height: 1.15; color: var(--noir); }
.sbm-ligne__texte { grid-column: 1; }
.sbm-ligne__fleche { grid-column: 2; grid-row: 1 / span 2; color: var(--rouge-texte); transition: transform .2s; }
.sbm-ligne:hover .sbm-ligne__fleche { transform: translateX(6px); }
@media (min-width: 860px) {
	.sbm-ligne { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr) 2rem; gap: 2rem; }
	.sbm-ligne__titre, .sbm-ligne__texte { grid-column: auto; }
	.sbm-ligne__fleche { grid-column: auto; grid-row: auto; }
}


/* Anciens accordéons d'Elementor restés dans le texte : on garde titres et descriptions, sans icônes isolées */
.entry-content .elementor-accordion-icon, .entry-content .elementor-toggle-icon, .entry-content .e-n-accordion-item-title-icon,
.entry-content [class*="accordion-icon"], .entry-content [class*="toggle-icon"] { display: none !important; }
.entry-content details > summary { list-style: none; cursor: default; }
.entry-content details > summary::-webkit-details-marker { display: none; }
.entry-content .elementor-tab-content { display: block !important; padding: 0 0 .75rem; border: 0; }
.entry-content .elementor-tab-title, .entry-content .elementor-tab-title a,
.entry-content .e-n-accordion-item-title, .entry-content .e-n-accordion-item-title-text {
	font-family: var(--font-titre); font-style: italic; font-weight: 900; font-size: 1.25rem; line-height: 1.2;
	color: var(--noir); text-decoration: none; padding: 0; border: 0; background: none;
}
.entry-content .elementor-tab-title, .entry-content .e-n-accordion-item-title { margin: 1.5rem 0 .35rem; }


/* ==========================================================================
   12. Page Services : rangées photo / texte en alternance
   ========================================================================== */
.sbm-services__contenu { max-width: none; }
.sbm-services__contenu > p, .sbm-services__contenu > h2 { max-width: 60rem; }
.sbm-services__contenu > .sbm-eyebrow { margin-bottom: .25rem; }
.sbm-rangees { margin-top: 3rem; }
.sbm-rangee { display: grid; gap: 1.75rem; align-items: center; margin-bottom: clamp(2.5rem, 2rem + 4vw, 5rem); }
.sbm-rangee:last-child { margin-bottom: 0; }
@media (min-width: 860px) {
	.sbm-rangee { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4rem; }
	.sbm-rangees > .sbm-rangee:nth-child(even) .sbm-rangee__photo { order: 2; }
}
.sbm-rangee--sans-photo { grid-template-columns: 1fr !important; max-width: 52rem; }
.sbm-rangee__lien { font-weight: 700; }
.sbm-rangee__photo { margin: 0; line-height: 0; }
.sbm-rangee__photo img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; margin: 0; box-shadow: var(--ombre); }
.sbm-rangee__texte > :first-child { margin-top: 0; }
.sbm-rangee__texte h2 { margin: 0 0 .5rem; font-family: var(--font-corps); font-style: normal; font-weight: 700; font-size: .9rem; letter-spacing: .12em; text-transform: uppercase; color: var(--rouge-texte); }
.sbm-rangee__texte h3 { margin: 0 0 1rem; font-size: clamp(1.4rem, 1.1rem + 1.2vw, 2rem); color: var(--noir); }
.entry-content .sbm-rangee__texte ul { list-style: none; padding-left: 0; display: grid; gap: .5rem; margin-top: 1rem; }
.entry-content .sbm-rangee__texte ul li { position: relative; padding-left: 2rem; }
.entry-content .sbm-rangee__texte ul li::before {
	content: ""; position: absolute; left: .4rem; top: .5em; width: .45rem; height: .8rem;
	border: solid var(--rouge-texte); border-width: 0 3px 3px 0; transform: rotate(45deg);
}


/* ==========================================================================
   13. Pages de travaux : introduction, tuiles, cartes, étapes, contact, autres prestations
   ========================================================================== */
.sbm-trait { width: 4rem; height: .4rem; margin-bottom: 1.5rem; background: var(--rouge); }

.sbm-t-intro__cols { display: grid; gap: 2.5rem; align-items: start; }
@media (min-width: 960px) { .sbm-t-intro__cols { grid-template-columns: minmax(0, 1fr) 21.25rem; gap: 4rem; } .sbm-t-intro .sbm-aside { position: sticky; top: 6rem; } }
.sbm-t-intro__texte h2 { margin-bottom: 1.25rem; font-size: clamp(1.7rem, 1.2rem + 2vw, 2.4rem); color: var(--noir); }
.sbm-t-intro__texte p { font-size: 1.1rem; color: #444; }

.sbm-t-prest h2 { margin-bottom: 2rem; }
.sbm-t-tuiles { display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width: 560px) { .sbm-t-tuiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 960px) { .sbm-t-tuiles { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.sbm-t-tuile { display: flex; flex-direction: column; justify-content: flex-start; min-height: 9.5rem; padding: 1.5rem 1.4rem; background: rgba(255, 255, 255, .09); }
.sbm-t-tuile__num { display: block; margin-bottom: .9rem; font-family: var(--font-titre); font-style: italic; font-weight: 900; font-size: 2.9rem; line-height: 1; color: transparent; -webkit-text-stroke: 2px var(--blanc); }
.sbm-t-tuile__texte { font-weight: 700; }
.sbm-t-tuile--rouge { background: var(--rouge); justify-content: center; }
.sbm-t-tuile__titre { margin-bottom: .8rem; font-family: var(--font-titre); font-style: italic; font-weight: 900; font-size: 1.3rem; line-height: 1.15; }
.sbm-t-tuile--rouge .sbm-btn { align-self: flex-start; padding: .65rem 1rem; font-size: .95rem; }

.sbm-cartes { display: flex; flex-wrap: wrap; justify-content: center; gap: 1.25rem; margin-top: 2rem; }
.sbm-cartes__carte { flex: 1 1 100%; padding: 1.75rem 1.6rem; background: var(--blanc); border-top: 5px solid var(--rouge); box-shadow: 0 .15rem .9rem rgba(0, 0, 0, .1); }
@media (min-width: 640px) { .sbm-cartes__carte { flex: 0 1 calc(50% - .625rem); } }
@media (min-width: 960px) { .sbm-cartes--n .sbm-cartes__carte { flex: 0 1 calc(33.333% - .85rem); } }
.sbm-cartes__carte h3 { margin-bottom: .6rem; color: var(--noir); font-size: 1.25rem; }
.sbm-cartes__carte p { margin: 0; color: #595b5e; font-size: .95rem; }

.sbm-accomp h2 { max-width: 48rem; color: var(--noir); }
.sbm-etapes { position: relative; display: grid; gap: 2rem; margin: 2.5rem 0 0; padding: 0; list-style: none; grid-template-columns: 1fr; }
@media (min-width: 640px) { .sbm-etapes { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 960px) {
	.sbm-etapes--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.sbm-etapes--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.sbm-etapes::before { content: ""; position: absolute; top: 1.7rem; left: 1.7rem; right: 1.7rem; height: 3px; background: #dcdbdc; }
}
.sbm-etapes li { position: relative; }
.sbm-etapes__rond { position: relative; display: flex; align-items: center; justify-content: center; width: 3.4rem; height: 3.4rem; margin-bottom: 1.1rem; border-radius: 50%; background: var(--rouge); color: var(--blanc); font-family: var(--font-titre); font-style: italic; font-weight: 900; font-size: 1.5rem; }
.sbm-etapes h3 { margin-bottom: .4rem; color: var(--noir); font-size: 1.2rem; }
.sbm-etapes p { margin: 0; color: #595b5e; font-size: .95rem; }

.sbm-demi { display: grid; grid-template-columns: 1fr; scroll-margin-top: 5rem; }
@media (min-width: 960px) { .sbm-demi { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.sbm-demi__rouge { display: flex; flex-direction: column; justify-content: center; padding: clamp(3rem, 2rem + 5vw, 6rem) clamp(1.5rem, 1rem + 4vw, 4.5rem); background: var(--rouge); color: var(--blanc); }
.sbm-demi__rouge h2 { margin-bottom: 1.75rem; font-size: clamp(1.7rem, 1.2rem + 2.2vw, 2.6rem); }
.sbm-demi__form { padding: clamp(2.5rem, 2rem + 4vw, 4.5rem) clamp(1.5rem, 1rem + 4vw, 4.5rem); background: var(--gris-clair); }
.sbm-demi__titre { margin-bottom: .4rem; font-family: var(--font-titre); font-style: italic; font-weight: 900; font-size: 1.5rem; color: var(--noir); }
.sbm-demi__form .sbm-form { margin-top: 1rem; }

.sbm-autres { display: grid; gap: 1.5rem; grid-template-columns: 1fr; margin-top: 2rem; }
@media (min-width: 640px) { .sbm-autres { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.sbm-autre { display: block; color: var(--texte); text-decoration: none; }
.sbm-autre__image { display: block; aspect-ratio: 3 / 2; margin-bottom: .9rem; overflow: hidden; background: var(--anthracite); }
.sbm-autre__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.sbm-autre:hover .sbm-autre__image img { transform: scale(1.05); }
.sbm-autre__titre { display: block; margin-bottom: .3rem; font-family: var(--font-titre); font-style: italic; font-weight: 900; font-size: 1.4rem; line-height: 1.15; color: var(--noir); }
.sbm-autre__lien { font-weight: 700; color: var(--rouge-texte); }


/* ==========================================================================
   14. Page À propos : pleine largeur, colonnes image / texte
   ========================================================================== */
.sbm-about .entry-content { max-width: none; }
.sbm-about .entry-content > h2, .sbm-about .entry-content > h3, .sbm-about .entry-content > p, .sbm-about .entry-content > ul { max-width: 60rem; }
.sbm-about .entry-content > h2:first-child { margin-top: 0; }
.sbm-about .sbm-duo > article { min-width: 0; }

/* Blocs « Média et texte » et « Colonnes » de l'éditeur */
.sbm-about .wp-block-media-text { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr) !important; gap: 2rem 4rem; align-items: start; max-width: none; margin-block: 2rem; }
.sbm-about .wp-block-media-text.has-media-on-the-right { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr) !important; }
.sbm-about .wp-block-media-text__content { padding: 0 !important; }
.sbm-about .wp-block-media-text__media img { width: 100%; height: auto; margin: 0; box-shadow: var(--ombre); }
.sbm-about .wp-block-columns { display: flex; flex-wrap: wrap; gap: 2rem 4rem; max-width: none; }
.sbm-about .wp-block-column { flex: 1 1 20rem; min-width: 0; }
@media (max-width: 859px) { .sbm-about .wp-block-media-text { grid-template-columns: 1fr !important; } }

/* Colonnes d'anciens blocs Elementor restés dans le texte */
.entry-content .elementor-container { display: flex; flex-wrap: wrap; gap: 2rem 4rem; max-width: none; }
.entry-content .elementor-column { flex: 1 1 20rem; min-width: 0; width: auto; }
.entry-content .elementor-widget-image img { max-width: 100%; height: auto; }


/* À propos : rangées photo / texte (portrait, titre rouge, bouton) */
.sbm-about .sbm-rangees { margin-top: 0; }
.sbm-about .sbm-rangee { align-items: start; }
.sbm-about .sbm-rangee__photo img { aspect-ratio: auto; height: auto; }
.sbm-about .sbm-rangee__texte h2 { margin: 0 0 .75rem; font-family: var(--font-titre); font-style: italic; font-weight: 900; font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2.2rem); letter-spacing: -.01em; text-transform: none; line-height: 1.12; color: var(--rouge-texte); }
.sbm-about .sbm-rangee__texte h3 { font-family: var(--font-corps); font-style: normal; font-weight: 700; font-size: clamp(1.15rem, 1rem + .7vw, 1.5rem); line-height: 1.3; color: var(--noir); }
.sbm-rangee__texte .sbm-btn { text-align: center; }


/* Cartes centrées dans le texte des pages de compétences (« Tous travaux de… ») */
.sbm-cartes__carte h3 { margin-top: 0; }
.entry-content .sbm-cartes { margin-top: 1.5rem; }
.sbm-cartes--centre .sbm-cartes__carte { text-align: center; }
.sbm-cartes--centre .sbm-cartes__carte h3 { color: var(--rouge-texte); }
@media (min-width: 640px) { .sbm-comp .sbm-cartes .sbm-cartes__carte { flex: 0 1 calc(50% - .625rem); } }


/* Étapes d'accompagnement dans le texte des pages de compétences */
.sbm-etapes h3 { margin-top: 0; }
.entry-content ol.sbm-etapes { margin-top: 2rem; }


/* Accompagnement : atouts à coche rouge, sans numérotation */
.sbm-accomp__intro { margin-top: .5rem; font-weight: 700; font-size: 1.1rem; }
.sbm-atouts { display: grid; gap: 2rem 2.25rem; margin: 2.5rem 0 0; padding: 0; list-style: none; grid-template-columns: 1fr; }
@media (min-width: 640px) { .sbm-atouts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 960px) {
	.sbm-atouts--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.sbm-atouts--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.sbm-atouts__rond { display: flex; align-items: center; justify-content: center; width: 3.25rem; height: 3.25rem; margin-bottom: 1.1rem; border-radius: 50%; background: var(--rouge); color: var(--blanc); }
.sbm-atouts__rond .sbm-icon { width: 1.6rem; height: 1.6rem; }
.sbm-atouts h3 { margin: 0 0 .4rem; color: var(--noir); font-size: 1.3rem; }
.sbm-atouts p { margin: 0; color: #595b5e; }

/* ---------- Réalisations (accueil, compétences, travaux, page Réalisations) ---------- */
.sbm-reals { list-style: none; margin: 2rem 0 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sbm-real { min-width: 0; display: flex; }
.sbm-real--grande { grid-column: span 2; }
.sbm-real__btn { display: flex; flex-direction: column; width: 100%; padding: 0; border: 0; background: var(--blanc); color: var(--noir); text-align: left; font: inherit; cursor: pointer; overflow: hidden; }
.sbm-real__photo { display: block; overflow: hidden; aspect-ratio: 1 / 1; flex: 1 1 auto; min-height: 0; }
.sbm-real__photo img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.sbm-real__btn:hover img, .sbm-real__btn:focus-visible img { transform: scale(1.03); }
.sbm-real__legende { display: flex; flex-direction: column; gap: .1rem; padding: .75rem .9rem .9rem; border-top: 4px solid var(--rouge); }
.sbm-real__tags { display: flex; flex-wrap: wrap; gap: 0 .7rem; }
.sbm-real__tag { font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--rouge-texte); }
.sbm-real__titre { font-family: var(--font-titre); font-weight: 900; font-style: italic; font-size: 1.05rem; line-height: 1.2; }
.sbm-real--grande .sbm-real__titre { font-size: 1.3rem; }
.sbm-real__lieu { font-size: .85rem; opacity: .8; margin: 0; }
.sbm-real__voir { font-size: .85rem; font-weight: 700; color: var(--rouge-texte); margin-top: .25rem; }
.sbm-real__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.75rem; margin: 2rem 0 0; }
.sbm-real__tous { font-weight: 700; }
.sbm-real__detail { display: none; }
@media (min-width: 900px) {
	.sbm-reals--mosaique { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.sbm-reals--mosaique .sbm-real--grande { grid-column: span 2; grid-row: span 2; }
	.sbm-reals--mosaique .sbm-real--grande .sbm-real__photo { aspect-ratio: auto; }
	.sbm-reals--trois { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 899px) { .sbm-reals--trois .sbm-real:nth-child(n) { grid-column: auto; } }
@media (max-width: 420px) { .sbm-real__titre { font-size: .95rem; } .sbm-real--grande .sbm-real__titre { font-size: 1.15rem; } .sbm-real__legende { padding: .6rem .6rem .75rem; } }

/* Fenêtre d'une réalisation */
.sbm-modale { width: min(960px, calc(100% - 2rem)); height: min(90vh, 640px); padding: 0; border: 0; background: var(--blanc); color: var(--texte, var(--noir)); overflow: hidden; }
.sbm-modale[open] { display: block; }
.sbm-modale::backdrop { background: rgba(20, 20, 22, .65); }
.sbm-modale__contenu { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); height: 100%; }
.sbm-modale:focus { outline: none; }
.sbm-modale__gal { background: #111; display: flex; flex-direction: column; min-width: 0; min-height: 0; }
.sbm-modale__main { flex: 1; min-height: 0; overflow: hidden; }
.sbm-modale__main img { display: block; width: 100%; height: 100%; object-fit: cover; }
.sbm-modale__mini { display: flex; gap: 6px; padding: 6px; background: #111; overflow-x: auto; }
.sbm-modale__mini button { flex: 0 0 4.5rem; width: 4.5rem; aspect-ratio: 1 / 1; padding: 0; border: 2px solid transparent; background: none; cursor: pointer; overflow: hidden; }
.sbm-modale__mini button[aria-current="true"] { border-color: var(--rouge); }
.sbm-modale__mini img { display: block; width: 100%; height: 100%; object-fit: cover; }
.sbm-modale__txt { padding: 1.75rem 1.75rem 1.5rem; overflow: auto; min-width: 0; }
.sbm-modale__titre { font-size: 1.6rem; line-height: 1.15; margin: .25rem 0; }
.sbm-modale__sous { font-family: var(--font-corps); font-style: normal; font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; color: var(--rouge-texte); margin: 1rem 0 .4rem; }
.sbm-modale__desc ul { margin: 0 0 .9rem; padding-left: 1.1rem; }
.sbm-modale__desc li { margin-bottom: .4rem; }
.sbm-modale__desc p { margin: 0 0 .9rem; }
.sbm-modale__desc .sbm-modale__res, .sbm-modale__res { margin: 1rem 0 1.25rem; border-left: 4px solid var(--rouge); padding-left: .8rem; }
.sbm-modale__liens { display: flex; flex-wrap: wrap; gap: .3rem 1rem; margin: 0 0 1.25rem; font-weight: 700; font-size: .9rem; }
.sbm-modale__fermer { position: absolute; top: .5rem; right: .5rem; width: 2.75rem; height: 2.75rem; border: 0; border-radius: 50%; background: var(--blanc); color: var(--noir); font-size: 1.7rem; line-height: 1; cursor: pointer; z-index: 2; }
@media (max-width: 760px) {
	.sbm-modale { width: 100%; max-width: 100%; height: 100%; max-height: 100%; }
	.sbm-modale__contenu { display: block; height: 100%; overflow-y: auto; }
	.sbm-modale__main { aspect-ratio: 4 / 3; flex: none; }
	.sbm-modale__txt { padding: 1.25rem 1rem 2rem; overflow: visible; }
}

/* ---------- Page d'envoi des photos ---------- */
.sbm-envoi { max-width: 40rem; }
.sbm-envoi .sbm-form input[type="file"], .sbm-envoi .sbm-form select { width: 100%; font: inherit; padding: .75rem; border: 2px solid #bdbcbe; border-radius: var(--rayon); background: var(--blanc); }
.sbm-envoi .sbm-form select { min-height: 3rem; }
.sbm-envoi__aide { margin: .4rem 0 0; font-size: .9rem; opacity: .85; }
.sbm-envoi__msg { padding: 1rem 1.25rem; border-left: 5px solid var(--rouge); background: var(--gris-clair); margin-bottom: 1.5rem; }
.sbm-envoi__msg--ok { border-left-color: #1c7a3d; }
.sbm-envoi .sbm-btn[disabled] { opacity: .6; cursor: wait; }

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

/* Page « Réalisations » : filtre par compétence et pagination */
.sbm-real-filtre { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; margin: 1.5rem 0 0; padding: 0; }
.sbm-real-filtre a { display: block; padding: .45rem .9rem; border: 2px solid var(--anthracite); color: var(--noir); font-weight: 700; font-size: .9rem; text-decoration: none; }
.sbm-real-filtre a[aria-current="true"], .sbm-real-filtre a:hover { background: var(--anthracite); color: var(--blanc); }
.sbm-real-pages { display: flex; flex-wrap: wrap; gap: .5rem; margin: 2rem 0 0; }
.sbm-envoi__champs { border: 0; padding: 0; margin: 0; min-width: 0; }
.sbm-envoi textarea { width: 100%; min-height: 9rem; font: inherit; padding: .75rem; border: 2px solid #bdbcbe; border-radius: var(--rayon); }

/* Avant / après */
.sbm-real__badge { position: absolute; left: .6rem; bottom: .6rem; background: var(--rouge); color: var(--blanc); font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: .15rem .6rem; }
.sbm-real__photo { position: relative; }
.sbm-modale__gal > .sbm-comp { position: relative; flex: 1; min-height: 0; overflow: hidden; user-select: none; touch-action: pan-y; }
.sbm-comp img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.sbm-comp .sbm-comp__av { clip-path: inset(0 calc(100% - var(--p, 50%)) 0 0); }
.sbm-comp__puce { position: absolute; top: .75rem; padding: .2rem .65rem; font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--blanc); background: rgba(0, 0, 0, .65); }
.sbm-comp__puce--g { left: .75rem; }
.sbm-comp__puce--d { right: .75rem; background: var(--rouge); }
.sbm-comp__barre { position: absolute; top: 0; bottom: 0; left: var(--p, 50%); width: 3px; margin-left: -1.5px; background: var(--blanc); box-shadow: 0 0 6px rgba(0, 0, 0, .5); pointer-events: none; }
.sbm-comp__barre::after { content: "\2194"; position: absolute; top: 50%; left: 50%; width: 2.75rem; height: 2.75rem; margin: -1.375rem 0 0 -1.375rem; border-radius: 50%; background: var(--blanc); color: var(--noir); display: grid; place-items: center; font-size: 1.25rem; box-shadow: 0 2px 8px rgba(0, 0, 0, .4); }
.sbm-comp input[type="range"] { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: ew-resize; }
.sbm-comp:focus-within .sbm-comp__barre::after { outline: 3px solid var(--rouge); }
.sbm-modale__mini button { position: relative; }
.sbm-modale__mini-lib { position: absolute; inset: auto 0 0 0; background: rgba(0, 0, 0, .7); color: var(--blanc); font-size: .6rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; padding: .15rem 0; text-align: center; }
.sbm-envoi__case { display: flex; align-items: center; gap: .6rem; font-weight: 700; cursor: pointer; }
.sbm-envoi__case input { width: 1.25rem; height: 1.25rem; accent-color: var(--rouge); }
@media (max-width: 760px) { .sbm-modale__gal > .sbm-comp { aspect-ratio: 3 / 4; flex: none; } }
