/*
Theme Name: SoBa Communication
Theme URI: https://soba-communication.fr
Author: SoBa Communication
Description: Thème sur mesure pour SoBa Communication, « le sourire comme fil conducteur ». Charte SoBa, structure pensée pour le SEO et les moteurs IA.
Version: 3.3.8
Requires at least: 6.6
Requires PHP: 7.4
License: Usage réservé à SoBa Communication
Text Domain: soba
*/

/* =====================================================================
   1. JETONS : couleurs, espacements, rayons
   Une seule source. Échelle d'espacement fixe : 8, 16, 24, 40, 64, 96.
   ===================================================================== */
:root {
	--soba-vert: #4a5e3b;
	--soba-vert-fonce: #33422a;
	--soba-sauge: #8ba28f;            /* décor uniquement, jamais pour du texte */
	--soba-sauge-texte: #566e5a;      /* texte secondaire : 5:1 sur crème */
	--soba-sauge-clair: #dfe7dd;
	--soba-beige: #f3e29c;
	--soba-creme: #f8f4ee;
	--soba-noir: #1a1a1a;
	--soba-texte: #2b2b2b;
	--soba-blanc: #ffffff;
	--soeasy-bleu: #176575;
	--soeasy-fond: #eaf6fa;
	--soeasy-texte: #12333b;

	--s1: 8px; --s2: 16px; --s3: 24px; --s4: 40px; --s5: 64px; --s6: 96px;
	--soba-gouttiere: clamp(16px, 4vw, 40px);
	--soba-colonne: 1240px;
	--soba-texte-max: 820px;
	--r-petit: 18px; --r-carte: 28px; --r-grand: 32px;
	--soba-ombre: 0 4px 20px rgba(74, 94, 59, 0.08);
	--soba-ombre-forte: 0 18px 40px rgba(26, 26, 26, 0.12);

	--soba-sourire: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 40' preserveAspectRatio='none'%3E%3Cpath d='M6 8 Q 120 52 234 8' fill='none' stroke='%23f3e29c' stroke-width='9' stroke-linecap='round'/%3E%3C/svg%3E");
	--soba-puce: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 14'%3E%3Cpath d='M2 3 Q 12 16 22 3' fill='none' stroke='%234a5e3b' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E");
}

/* =====================================================================
   2. BASE ET TYPOGRAPHIE
   Interlettrage selon la taille, interligne inverse à la taille.
   ===================================================================== */
html { scroll-behavior: smooth; }
html, body { overflow-x: clip; }
body { -webkit-font-smoothing: antialiased; background: var(--soba-creme); color: var(--soba-texte); font-size: 16px; line-height: 1.65; }
img { max-width: 100%; height: auto; }
main.wp-block-group, .wp-site-blocks > main { margin-top: 0 !important; }

h1.wp-block-heading { font-size: clamp(32px, 4.2vw, 56px); line-height: 1.06; letter-spacing: -0.02em; font-weight: 700; color: var(--soba-noir); }
h2.wp-block-heading { font-size: clamp(24px, 2.6vw, 36px); line-height: 1.15; letter-spacing: -0.015em; }
h3.wp-block-heading { font-size: clamp(17px, 1.4vw, 19px); line-height: 1.3; letter-spacing: -0.005em; }

.soba-surtitre { font-size: 13px !important; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--soba-sauge-texte); margin-bottom: 0 !important; }
.soba-mots { font-size: 12px !important; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--soba-sauge-texte); }
.soba-lede { font-size: clamp(16px, 1.3vw, 18px) !important; color: #333; }
.soba-grand-texte { font-size: clamp(17px, 1.7vw, 21px) !important; font-weight: 300; line-height: 1.5; }
.soba-grand-texte strong { font-weight: 600; color: var(--soba-vert); }
.soba-numero { font-size: 34px !important; font-weight: 800; color: var(--soba-vert); line-height: 1; letter-spacing: -0.02em; margin: 0 !important; }
.soba-lien-fort a { font-weight: 600; color: var(--soba-vert); text-decoration: none; }
.soba-lien-fort a:hover { text-decoration: underline; }

/* Le sourire sous un mot */
.soba-sourire { position: relative; display: inline-block; color: var(--soba-vert); }
.soba-sourire::after { content: ""; position: absolute; left: 0; right: 0; bottom: -0.3em; height: 0.42em; background: var(--soba-sourire) no-repeat center / 100% 100%; animation: soba-trace 1.2s 0.4s ease-out both; }
@keyframes soba-trace { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } }

/* =====================================================================
   3. MISE EN PAGE
   Sections pleine largeur, contenu dans une colonne de 1240 px,
   textes alignés à gauche et limités à 820 px pour rester lisibles.
   ===================================================================== */
.wp-block-post-content > .alignfull, main.wp-block-group > .alignfull { max-width: none !important; width: 100vw !important; margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important; }
.wp-block-post-content > .alignfull + .alignfull { margin-top: 0 !important; }

.soba-section { padding: clamp(48px, 6vw, var(--s5)) var(--soba-gouttiere) !important; margin: 0 !important; }
.soba-section--serree { padding-top: var(--s4) !important; padding-bottom: var(--s4) !important; }
.soba-section > *, .soba-hero2 > * { max-width: var(--soba-colonne) !important; }
.soba-section > * + * { margin-top: var(--s3); }
.soba-section > p:not(.soba-surtitre), .soba-section > h2, .soba-section > h3, .soba-section > .soba-faq,
.soba-hero2 > .soba-enbref { box-sizing: border-box; padding-right: max(0px, calc(min(100%, var(--soba-colonne)) - var(--soba-texte-max))) !important; }

.soba-bg-creme { background: var(--soba-creme); }
.soba-bg-blanc { background: var(--soba-blanc); }
.soba-bg-sauge { background: var(--soba-sauge-clair); }
.soba-bg-sauge .soba-surtitre, .soba-bg-sauge .soba-mots { color: var(--soba-vert); }
.soba-bg-beige { background: var(--soba-beige); }
.soba-bg-vert { background: var(--soba-vert); color: var(--soba-blanc); }
.soba-bg-vert h1, .soba-bg-vert h2, .soba-bg-vert h3 { color: var(--soba-blanc); }
.soba-bg-vert p { color: #e8eee6; }
.soba-bg-vert a:not(.wp-block-button__link) { color: var(--soba-blanc); }
.soba-bg-vert .soba-surtitre, .soba-bg-vert .soba-numero { color: var(--soba-beige) !important; }

/* Colonnes centrées verticalement */
.soba-centre-v { align-items: center !important; gap: clamp(var(--s4), 5vw, var(--s5)) !important; }
@media (min-width: 782px) { .soba-inverse { flex-direction: row-reverse; } }

/* =====================================================================
   4. EN-TÊTE ET PIED DE PAGE
   ===================================================================== */
header.wp-block-template-part { position: sticky; top: 0; z-index: 100; }
body.admin-bar header.wp-block-template-part { top: 32px; }
@media (max-width: 782px) { body.admin-bar header.wp-block-template-part { top: 46px; } }
.soba-header { background: rgba(248, 244, 238, 0.95); border-bottom: 1px solid rgba(74, 94, 59, 0.12); }
.soba-header__inner { max-width: var(--soba-colonne); margin: 0 auto; padding: 12px var(--soba-gouttiere); display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.soba-header .soba-logo img { width: 104px; display: block; }
.soba-header .wp-block-navigation { font-size: 14.5px; font-weight: 500; gap: 24px; }
.soba-header .wp-block-navigation a { color: var(--soba-noir); text-decoration: none; }
.soba-header .wp-block-navigation a:hover, .soba-header .wp-block-navigation .current-menu-item > a { color: var(--soba-vert); }
.soba-header .wp-block-button__link { padding: 11px 20px !important; font-size: 15px; }
@media (max-width: 900px) { .soba-header .soba-header__cta { display: none; } }

.soba-footer { background: var(--soba-vert-fonce); color: #e8eee6; padding: 56px var(--soba-gouttiere) var(--s3); font-size: 15px; }
.soba-footer a { color: var(--soba-blanc); text-decoration: none; }
.soba-footer a:hover { text-decoration: underline; }
.soba-footer h3 { color: var(--soba-beige); font-size: 16px; margin-top: 0; }
.soba-footer .soba-logo img { width: 130px; }
.soba-footer ul { list-style: none; padding: 0; margin: 0; }
.soba-footer li { margin-bottom: 6px; }
.soba-footer__bas { border-top: 1px solid rgba(255, 255, 255, 0.15); margin-top: var(--s4) !important; padding-top: 18px; font-size: 13px; color: #c9d4c5; }

/* =====================================================================
   5. EN-TÊTES DE PAGE
   ===================================================================== */
/* Accueil : le bandeau feuilles, logo et slogan */
.soba-hero-feuilles { position: relative; overflow: hidden; margin: 0 !important; padding: 0 var(--soba-gouttiere) !important; height: clamp(360px, 34vw, 600px); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center;
	background: linear-gradient(rgba(36, 50, 34, 0.55), rgba(36, 50, 34, 0.55)), url("assets/img/feuilles.webp") center 40% / cover no-repeat; }
.soba-hero-feuilles > * { max-width: none !important; margin: 0 !important; }
.soba-hero-feuilles__logo img { width: clamp(190px, 19vw, 320px); height: auto; }
.soba-hero-feuilles h1 { position: absolute; left: 0; right: 0; bottom: clamp(24px, 4vw, 44px); padding: 0 var(--soba-gouttiere); color: var(--soba-beige) !important; font-size: clamp(15px, 1.25vw, 20px) !important; font-weight: 400 !important; line-height: 1.6 !important; letter-spacing: 0.02em; }

@media (max-width: 781px) {
	.soba-hero-feuilles { background-image: linear-gradient(rgba(36, 50, 34, 0.55), rgba(36, 50, 34, 0.55)), url("assets/img/feuilles-mobile.webp"); }
	.soba-bande-page, .soba-hero.soba-hero--carnet { background-image: linear-gradient(rgba(36, 50, 34, 0.62), rgba(36, 50, 34, 0.62)), url("assets/img/feuilles-mobile.webp") !important; }
}

/* Pages intérieures : la bande de feuilles avec le titre de la page */
.soba-bande-page, .soba-hero.soba-hero--carnet { margin: 0 !important; padding: clamp(36px, 4vw, 56px) max(var(--soba-gouttiere), calc((100% - var(--soba-colonne)) / 2)) !important; min-height: clamp(160px, 15vw, 230px); display: flex; flex-direction: column; justify-content: flex-end;
	background: linear-gradient(rgba(36, 50, 34, 0.62), rgba(36, 50, 34, 0.62)), url("assets/img/feuilles.webp") center 40% / cover no-repeat !important; color: var(--soba-blanc); }
.soba-bande-page > *, .soba-hero.soba-hero--carnet > * { max-width: none !important; width: 100%; margin-left: 0 !important; margin-right: 0 !important; }
.soba-bande-page h1, .soba-hero--carnet h1 { color: var(--soba-blanc) !important; font-size: clamp(23px, 2.5vw, 34px) !important; font-weight: 600 !important; line-height: 1.2 !important; letter-spacing: -0.01em; margin: 0 !important; }
.soba-bande-page__accroche, .soba-hero--carnet p { color: var(--soba-beige) !important; font-weight: 300; font-size: clamp(15px, 1.3vw, 18px) !important; margin: var(--s1) 0 0 !important; }
.soba-bande-page__chemin { font-size: 12px !important; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 600; color: var(--soba-beige) !important; margin: 0 0 var(--s1) !important; }
.soba-bande-page__chemin a, .soba-bande-page__accroche a { color: var(--soba-beige) !important; text-decoration: none; }

/* Ouverture en deux colonnes : texte et visuel */
.soba-hero2 { padding: clamp(var(--s4), 5vw, var(--s5)) var(--soba-gouttiere) !important; margin: 0 !important; }
.soba-hero2 .wp-block-columns { gap: clamp(var(--s4), 6vw, 80px); align-items: center !important; }
.soba-hero2 .wp-block-column > * + * { margin-top: var(--s3); }
.soba-hero2 h1.wp-block-heading, .soba-hero2 h2.soba-titre-hero { font-size: clamp(32px, 4.2vw, 56px) !important; line-height: 1.08 !important; letter-spacing: -0.02em; color: var(--soba-noir); }
.soba-visuel { position: relative; }
.soba-entree { animation: soba-monte 0.6s ease-out both; }
@keyframes soba-monte { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }

/* « En bref » : la réponse directe, lue par Google et les IA */
.soba-enbref { margin-top: var(--s5) !important; padding-top: var(--s3) !important; border-top: 1px solid rgba(74, 94, 59, 0.18); }
.soba-enbref > * + * { margin-top: var(--s1) !important; }
.soba-enbref p:last-child { font-size: clamp(16px, 1.4vw, 18px); font-weight: 300; line-height: 1.6; color: var(--soba-texte); }
.soba-enbref strong { font-weight: 600; color: var(--soba-vert); }

.soba-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.soba-chips p { margin: 0 !important; background: var(--soba-blanc); border: 1px solid rgba(74, 94, 59, 0.2); padding: var(--s1) 14px; border-radius: 999px; font-size: 14px; }

/* Photo encadrée façon SoBa */
.soba-cadre { position: relative; margin: 0 18px 22px 0 !important; }
.soba-cadre::before { content: ""; position: absolute; inset: 22px -18px -22px 18px; border: 2px solid var(--soba-noir); border-radius: 36px; }
.soba-cadre img { position: relative; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 36px; display: block; }
.soba-cadre--paysage img { aspect-ratio: 4 / 3; border-radius: var(--r-grand); }
.soba-cadre--paysage::before { border-radius: var(--r-grand); }
/* Photo détourée (accueil) : pas de cadre, l'image porte déjà son cercle */
.soba-detoure { margin: 0 !important; }
.soba-detoure img { width: 100%; height: auto; display: block; }
/* La photo détourée se pose sur le bord bas de sa section */
.soba-section:has(.soba-detoure), .soba-hero2:has(.soba-detoure) { padding-bottom: 0 !important; }
.wp-block-columns:has(> .soba-visuel .soba-detoure) { margin-bottom: 0 !important; }
.wp-block-columns:has(> .soba-visuel .soba-detoure) > .wp-block-column:not(.soba-visuel) { align-self: center; padding-bottom: clamp(48px, 6vw, 64px); }
.soba-visuel:has(.soba-detoure) { align-self: flex-end !important; position: relative; }

/* Badge rond qui tourne */
.soba-badge { position: absolute; left: -40px; top: -40px; width: 160px; height: 160px; border-radius: 50%; background: var(--soba-vert); display: flex; align-items: center; justify-content: center; box-shadow: 0 10px 30px rgba(74, 94, 59, 0.3); z-index: 2; }
.soba-badge svg.soba-badge__texte { position: absolute; inset: 0; width: 100%; height: 100%; animation: soba-tourne 22s linear infinite; }
@keyframes soba-tourne { to { transform: rotate(360deg); } }
@media (max-width: 781px) { .soba-badge { width: 112px; height: 112px; left: -6px; top: -26px; } }

/* =====================================================================
   6. CARTES
   ===================================================================== */
.soba-cartes { gap: 20px !important; }
.soba-carte { background: var(--soba-blanc); border-radius: var(--r-carte); padding: 28px !important; height: 100%; box-sizing: border-box; transition: transform 0.2s ease, box-shadow 0.2s ease; }
.soba-carte:hover { transform: translateY(-4px); box-shadow: var(--soba-ombre-forte); }
.soba-carte > * + * { margin-top: 12px; }
.soba-carte h3 { margin-top: 0; font-size: 19px; color: var(--soba-vert); }
.soba-carte p { font-size: 15px; }
.wp-block-column > .soba-carte:not(:only-child) { height: auto; }
.wp-block-column > .soba-carte:not(:only-child) + .soba-carte { margin-top: 20px; }
.soba-bg-blanc .soba-carte { background: var(--soba-creme); }
.soba-carte--contour { background: var(--soba-blanc) !important; border: 1.5px solid var(--soba-vert); }
.soba-carte--sombre { background: rgba(255, 255, 255, 0.07) !important; }
.soba-carte--sombre h3 { color: var(--soba-beige) !important; }

/* Pictos : toujours centrés avec leur titre et leur texte */
.soba-icone { margin: 0 auto !important; display: flex; justify-content: center; }
.soba-icone img { height: 64px; width: auto !important; margin: 0 auto; }
.soba-carte--cerveau .soba-icone img { height: 96px; }
.soba-bg-vert .soba-carte--sombre .soba-icone img { filter: brightness(1.6); height: 52px; }
.soba-carte:has(.soba-icone), .soba-carte:has(.soba-icone) h3, .soba-carte:has(.soba-icone) p,
.soba-carte:has(.soba-picto), .soba-carte:has(.soba-picto) h3, .soba-carte:has(.soba-picto) p { text-align: center; }
.soba-picto { margin: 0 auto !important; display: flex; justify-content: center; }
.soba-picto img { width: 56px; height: 56px; }

/* Cartes photo (services) */
.soba-carte--photo { padding: 0 !important; overflow: hidden; background: var(--soba-creme) !important; color: var(--soba-noir); display: flex; flex-direction: column; }
.soba-carte--photo > * { padding-left: var(--s3); padding-right: var(--s3); }
.soba-carte--photo > figure { padding: 0; margin: 0 !important; }
.soba-carte--photo > figure img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; border-radius: 0; }
.soba-carte--photo > *:last-child { padding-bottom: 26px; margin-top: auto; }
.soba-carte--photo h3 { color: var(--soba-vert) !important; }
.soba-carte--photo p { color: #333 !important; }
.soba-carte--photo .soba-mots { color: var(--soba-sauge-texte) !important; }
.soba-carte--photo a { color: var(--soba-vert) !important; font-weight: 600; text-decoration: none; }

.soba-mini h3::before { content: ""; display: block; width: 26px; height: 15px; margin-bottom: var(--s1); background: var(--soba-puce) no-repeat center / contain; }
.soba-mini h3 { font-size: 17px !important; color: var(--soba-noir) !important; }

.soba-stat { background: var(--soba-creme) !important; text-align: center; }
.soba-bg-sauge .soba-stat { background: var(--soba-blanc) !important; }
.soba-stat .soba-chiffre { font-size: clamp(22px, 2.2vw, 28px) !important; font-weight: 800; color: var(--soba-vert); line-height: 1.1; letter-spacing: -0.01em; margin: 0 !important; }
.soba-stat p:last-child { font-size: 14px; color: #444; margin-top: 4px; }

.soba-temps { border-top: 3px solid var(--soba-beige); padding-top: 22px !important; }

/* Bandeau beige (renfort) */
.soba-bandeau { background: var(--soba-beige); border-radius: var(--r-carte); padding: clamp(22px, 3vw, 34px) !important; margin-top: var(--s3) !important; }
.soba-bandeau p { color: var(--soba-vert) !important; margin: 0 !important; }
.soba-bandeau a { color: var(--soba-vert) !important; font-weight: 600; }
.soba-bandeau .soba-mots { color: var(--soba-vert) !important; }
.soba-bandeau .soba-bandeau__titre { font-size: clamp(18px, 1.8vw, 23px) !important; font-weight: 700; line-height: 1.3; margin: 6px 0 10px !important; }

/* Listes avec puces sourire */
.soba-liste-sourire { list-style: none; padding-left: 0; }
.soba-liste-sourire li { position: relative; padding-left: 26px; margin-bottom: var(--s1); }
.soba-liste-sourire li::before { content: ""; position: absolute; left: 0; top: 0.55em; width: 16px; height: 10px; background: var(--soba-puce) no-repeat center / contain; }

/* Collage photos */
.soba-collage { position: relative; min-height: 460px; }
.soba-collage .soba-penchee { position: relative; z-index: 2; width: 62%; transform: rotate(-4deg); margin: 0 !important; }
.soba-collage .soba-penchee img { border-radius: var(--r-carte); box-shadow: 0 20px 40px rgba(26, 26, 26, 0.18); display: block; }
.soba-collage .soba-penchee2 { position: absolute; right: 0; bottom: 0; width: 46%; transform: rotate(3deg); margin: 0 !important; }
.soba-collage .soba-penchee2 img { border-radius: var(--r-carte); box-shadow: 0 14px 30px rgba(26, 26, 26, 0.14); display: block; }
.soba-collage .soba-etiquette { position: absolute; z-index: 3; left: 50%; top: 6%; background: var(--soba-beige); color: var(--soba-vert); border-radius: 999px; padding: 12px 18px !important; font-weight: 700; font-size: 15px; transform: rotate(6deg); box-shadow: 0 8px 20px rgba(26, 26, 26, 0.12); margin: 0 !important; }

/* Bloc vert arrondi (tarif So'Easy, « 3 choses ») */
.soba-tarif { position: relative; overflow: hidden; background: var(--soba-vert); border-radius: var(--r-grand); padding: clamp(28px, 4vw, 48px) !important; color: var(--soba-blanc); }
.soba-tarif .soba-prix { font-size: clamp(46px, 5.4vw, 72px) !important; font-weight: 800; line-height: 1; letter-spacing: -0.02em; color: var(--soba-blanc) !important; margin: 10px 0 !important; }
.soba-tarif p { color: #e8eee6 !important; }
.soba-tarif .soba-mots, .soba-tarif .soba-tarif__unite { color: var(--soba-beige) !important; }
.soba-tarif .soba-tarif__unite { font-size: 18px; font-weight: 600; }

/* =====================================================================
   7. PREUVES : avis, cas clients, logos
   ===================================================================== */
.soba-citation { background: var(--soba-beige); border-radius: 22px; padding: 20px var(--s3) !important; font-style: italic; font-weight: 300; }
.soba-avis { background: var(--soba-blanc); border-radius: 26px; padding: 28px !important; margin: 0 !important; border: none !important; height: 100%; box-sizing: border-box; display: flex; flex-direction: column; gap: 14px; }
.soba-avis::before { content: "★★★★★"; color: #b89a2a; letter-spacing: 3px; font-size: 15px; }
.soba-avis p { font-weight: 300; font-size: 15px; font-style: normal; margin: 0; flex-grow: 1; }
.soba-avis cite { font-style: normal; font-size: 14px; color: #5f6a58; }
.soba-avis cite strong { color: var(--soba-vert); font-size: 16px; }
.soba-avis.soba-avis--replie > p { flex-grow: 0; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.soba-avis__suite { align-self: flex-start; background: none; border: 0; padding: 0; font: inherit; font-size: 14px; font-weight: 600; color: var(--soba-vert); text-decoration: underline; cursor: pointer; }
.soba-avis-court { border-left: 4px solid var(--soba-beige); padding: 4px 0 4px 18px !important; margin: 0 !important; }
.soba-avis-court p { font-style: italic; font-weight: 300; }
.soba-avis-court cite { font-style: normal; font-size: 14px; font-weight: 600; color: var(--soba-vert); }

/* Carrousel d'avis */
.soba-carrousel__piste { display: flex !important; flex-wrap: nowrap !important; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; padding: 6px 2px 22px !important; scrollbar-width: thin; scrollbar-color: var(--soba-sauge) transparent; }
.soba-carrousel__piste > .soba-avis { flex: 0 0 min(400px, 86%); scroll-snap-align: start; height: auto; }
.soba-carrousel__fleches { display: flex; gap: 10px; justify-content: flex-end; margin-top: var(--s1); }
.soba-carrousel__fleches button { width: 48px; height: 48px; border-radius: 999px; border: 1.5px solid var(--soba-vert); background: var(--soba-blanc); color: var(--soba-vert); font-size: 20px; cursor: pointer; transition: background-color 0.2s ease, color 0.2s ease, transform 0.1s ease-out; }
.soba-carrousel__fleches button:hover { background: var(--soba-vert); color: var(--soba-blanc); }
.soba-carrousel__lien a { font-weight: 600; }

/* Un cas en une carte (accueil) */
.soba-cas-mini { background: var(--soba-blanc); border-radius: var(--r-grand); padding: clamp(var(--s3), 3vw, var(--s4)) !important; box-shadow: var(--soba-ombre); }
.soba-cas-mini__grille { gap: clamp(var(--s3), 4vw, var(--s4)) !important; align-items: center !important; }
.soba-cas-mini__grille > .wp-block-column:first-child { flex: 0 0 min(320px, 100%) !important; }
.soba-cas-mini__photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: contain; background: var(--soba-creme); border-radius: var(--r-petit); display: block; }
.soba-cas-mini h3 { font-size: clamp(18px, 1.7vw, 22px) !important; color: var(--soba-vert); margin: var(--s1) 0 var(--s2) !important; }
.soba-cas-mini__lignes > p { margin: 0 0 var(--s1) !important; font-size: 15px; }
.soba-cas-mini__lignes strong { color: var(--soba-vert); }

/* Cas clients complets */
.soba-cas { background: var(--soba-blanc); border-radius: var(--r-grand); padding: clamp(26px, 3.5vw, 48px) !important; margin-top: var(--s3) !important; }
.soba-cas__client { display: inline-block; background: var(--soba-beige); color: var(--soba-vert); font-weight: 700; padding: var(--s1) var(--s2) !important; border-radius: 999px; }
.soba-cas .wp-block-column { background: var(--soba-creme); border-radius: 22px; padding: 22px; }
.soba-cas .wp-block-column.soba-cas__apres { background: var(--soba-vert); }
.soba-cas .soba-cas__apres p { color: #e8eee6; }
.soba-cas .soba-cas__apres h3 { color: var(--soba-beige) !important; }
.soba-cas h3 { font-size: 17px !important; color: var(--soba-noir) !important; margin: 0 0 var(--s1); }
.soba-cas p { font-size: 15px; }
.soba-cas__tete { gap: var(--s3) !important; align-items: center !important; }
.soba-cas__tete > .wp-block-column:first-child { flex: 0 0 160px !important; }
.soba-cas .soba-cas__tete > .wp-block-column, .soba-cas .soba-aa > .wp-block-column { background: none !important; padding: 0 !important; }
.soba-cas__logo { margin: 0 !important; }
.soba-cas__logo img { width: 160px; height: 120px; object-fit: contain; background: var(--soba-blanc); border-radius: var(--r-petit); padding: var(--s1); box-sizing: border-box; box-shadow: var(--soba-ombre); }
/* Avant / Après */
.soba-aa { gap: var(--s3) !important; margin: var(--s3) 0 !important; }
.soba-aa__img { margin: var(--s1) 0 0 !important; }
.soba-aa__img img { width: 100%; aspect-ratio: 4 / 3; object-fit: contain; background: var(--soba-creme); border-radius: var(--r-petit); padding: var(--s2); box-sizing: border-box; display: block; }

/* V3.3 : cas client épuré (Julie Mialon) ; les autres cas gardent leur mise en page */
.soba-cas--epure .soba-cas__tete > .wp-block-column:first-child { display: none !important; }
.soba-cas--epure .soba-cas__tete > .wp-block-column:last-child { display: flex !important; flex-wrap: wrap; align-items: baseline; }
.soba-cas--epure .soba-cas__tete > .wp-block-column:last-child > * { flex: 0 0 100%; }
.soba-cas--epure .soba-cas__client { order: -2; flex: 0 0 auto !important; background: none; padding: 0 !important; border-radius: 0; margin: 0 !important; font-size: 13px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--soba-vert); }
.soba-cas--epure .soba-cas__client::after { content: "·"; margin: 0 0.6em; color: var(--soba-sauge); }
.soba-cas--epure .soba-cas__tete .soba-mots { order: -1; flex: 1 1 0 !important; margin: 0 !important; }
.soba-cas--epure .soba-cas__tete h2 { margin-top: var(--s1) !important; }
.soba-cas--epure .soba-aa { position: relative; align-items: center !important; gap: clamp(40px, 5vw, 72px) !important; }
.soba-cas--epure .soba-aa__img img { background: none; padding: 0; border-radius: 0; aspect-ratio: auto; height: clamp(120px, 12vw, 160px); object-fit: contain; }
.soba-cas--epure .soba-aa .soba-mots { text-align: center; }
.soba-cas--epure .soba-aa > .wp-block-column { position: relative; }
.soba-cas--epure .soba-aa > .wp-block-column:not(:last-child)::after { content: "→"; position: absolute; left: calc(100% + clamp(40px, 5vw, 72px) / 2); top: calc(50% + 14px); transform: translate(-50%, -50%); font-size: 28px; line-height: 1; color: var(--soba-sauge); }
.soba-cas--epure .soba-cartes > .wp-block-column:not(.soba-cas__apres) { background: none; border-radius: 0; padding: 4px 22px 4px 0; }
.soba-cas--epure .soba-cartes > .wp-block-column:not(.soba-cas__apres) + .wp-block-column:not(.soba-cas__apres) { border-left: 1px solid var(--soba-sauge); padding-left: 22px; }
@media (max-width: 781px) {
	.soba-cas--epure .soba-aa > .wp-block-column:not(:last-child)::after { content: "↓"; left: 50%; top: auto; bottom: calc(clamp(40px, 5vw, 72px) / -2); transform: translate(-50%, 50%); }
	.soba-cas--epure .soba-cas__client { flex: 0 0 100% !important; margin-bottom: 4px !important; }
	.soba-cas--epure .soba-cas__client::after { content: none; }
	.soba-cas--epure .soba-cartes > .wp-block-column:not(.soba-cas__apres) + .wp-block-column:not(.soba-cas__apres) { border-left: 0; border-top: 1px solid var(--soba-sauge); padding: var(--s2) 0 0; }
}

/* Mur de logos : une galerie WordPress qui se remplit au fil de l'eau */
.wp-block-gallery.soba-logos { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 14px !important; max-width: var(--soba-colonne) !important; }
.wp-block-gallery.soba-logos figure.wp-block-image { width: auto !important; margin: 0 !important; flex: none !important; }
.wp-block-gallery.soba-logos figure.wp-block-image img { width: 100% !important; height: auto !important; aspect-ratio: 4 / 3; object-fit: contain !important; background: var(--soba-blanc); border-radius: var(--r-petit); padding: var(--s1); box-sizing: border-box; transition: transform 0.2s ease; }
.wp-block-gallery.soba-logos figure.wp-block-image img:hover { transform: translateY(-3px); }

/* =====================================================================
   8. ONGLETS « POUR QUI » (sans JavaScript)
   ===================================================================== */
.soba-onglets input { position: absolute; opacity: 0; pointer-events: none; }
.soba-onglets__labels { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: var(--s3); }
.soba-onglets__labels label { cursor: pointer; border: 2px solid rgba(74, 94, 59, 0.35); color: var(--soba-vert); border-radius: 999px; padding: 12px 22px; font-weight: 500; min-height: 44px; box-sizing: border-box; display: inline-flex; align-items: center; transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.1s ease-out; }
.soba-onglets__labels label:hover { border-color: var(--soba-vert); }
.soba-onglets__labels label:active { transform: scale(0.97); }
#soba-p1:focus-visible ~ .soba-onglets__labels label[for="soba-p1"], #soba-p2:focus-visible ~ .soba-onglets__labels label[for="soba-p2"], #soba-p3:focus-visible ~ .soba-onglets__labels label[for="soba-p3"] { outline: 3px solid var(--soba-vert); outline-offset: 3px; }
#soba-p1:checked ~ .soba-onglets__labels label[for="soba-p1"], #soba-p2:checked ~ .soba-onglets__labels label[for="soba-p2"], #soba-p3:checked ~ .soba-onglets__labels label[for="soba-p3"] { background: var(--soba-vert); color: var(--soba-blanc); border-color: var(--soba-vert); font-weight: 600; }
.soba-onglets__panneau { display: none; background: var(--soba-creme); border-radius: var(--r-grand); padding: clamp(26px, 4vw, 52px); grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: clamp(var(--s3), 4vw, 52px); align-items: center; }
.soba-bg-creme .soba-onglets__panneau { background: var(--soba-blanc); }
#soba-p1:checked ~ .soba-p1, #soba-p2:checked ~ .soba-p2, #soba-p3:checked ~ .soba-p3 { display: grid; }
.soba-onglets__message { font-size: clamp(21px, 2.3vw, 30px); line-height: 1.15; letter-spacing: -0.015em; font-weight: 700; margin: 0 0 14px; }
.soba-onglets__offre { background: var(--soba-blanc); border-radius: var(--r-carte); padding: 28px; }
.soba-bg-creme .soba-onglets__offre { background: var(--soba-creme); }
.soba-onglets__offre p { margin: 0 0 10px; }
.soba-onglets__offre .soba-onglets__service { font-size: 21px; font-weight: 600; color: var(--soba-vert); }
.soba-onglets__offre a { display: inline-flex; align-items: center; min-height: 44px; box-sizing: border-box; background: var(--soba-beige); color: var(--soba-vert); font-weight: 600; padding: 12px 22px; border-radius: 999px; text-decoration: none; transition: background-color 0.2s ease, color 0.2s ease, transform 0.1s ease-out; }
.soba-onglets__offre a:hover { background: var(--soba-vert); color: var(--soba-blanc); }

/* =====================================================================
   9. FAQ ET APPEL FINAL
   ===================================================================== */
.soba-faq .wp-block-details { background: var(--soba-blanc); border-radius: 20px; padding: 20px var(--s3); margin-bottom: 12px; }
.soba-bg-blanc .soba-faq .wp-block-details { background: var(--soba-creme); }
.soba-faq summary { font-weight: 600; font-size: 16px; cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: var(--s2); }
.soba-faq summary::-webkit-details-marker { display: none; }
.soba-faq summary::after { content: "+"; color: var(--soba-vert); font-size: 24px; line-height: 1; transition: transform 0.2s ease; }
.soba-faq details[open] summary::after { transform: rotate(45deg); }
.soba-faq details[open] summary { margin-bottom: 10px; }
.soba-faq details p { margin: 0; color: #333; }

/* L'appel final : tout est centré */
.soba-final, .soba-final *, .has-text-align-center, .has-text-align-center > * { text-align: center !important; }
.soba-section.soba-section.soba-final > *, .soba-section.soba-section.has-text-align-center > * { max-width: 760px !important; margin-left: auto !important; margin-right: auto !important; padding-right: 0 !important; }
.soba-final .wp-block-buttons, .has-text-align-center .wp-block-buttons { justify-content: center !important; }
.soba-final svg { width: 100px; height: 42px; }

/* =====================================================================
   10. BOUTONS ET LIENS : survol, appui, focus clavier
   ===================================================================== */
.wp-block-button__link { min-height: 44px; box-sizing: border-box; display: inline-flex !important; align-items: center; transition: background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease, transform 0.1s ease-out; }
.wp-block-button__link:hover { background: var(--soba-vert) !important; color: var(--soba-blanc) !important; box-shadow: 0 8px 22px rgba(74, 94, 59, 0.25); }
.wp-block-button__link:active, .soba-onglets__offre a:active, .soba-carrousel__fleches button:active { transform: scale(0.97); }
.is-style-outline .wp-block-button__link { background: transparent !important; border: 2px solid var(--soba-vert) !important; color: var(--soba-vert) !important; }
.is-style-outline .wp-block-button__link:hover { background: var(--soba-vert) !important; color: var(--soba-blanc) !important; }
.soba-bg-vert .is-style-outline .wp-block-button__link { border-color: var(--soba-blanc) !important; color: var(--soba-blanc) !important; }
.soba-bg-vert .wp-block-button__link:hover { background: var(--soba-blanc) !important; color: var(--soba-vert) !important; }
.soba-bg-beige .wp-block-button__link { background: var(--soba-vert); color: var(--soba-blanc); }
.soba-bg-beige .wp-block-button__link:hover { background: var(--soba-vert-fonce) !important; }
a:focus-visible, button:focus-visible, summary:focus-visible, .wp-block-button__link:focus-visible { outline: 3px solid var(--soba-vert); outline-offset: 3px; border-radius: 6px; }
.soba-bg-vert a:focus-visible, .soba-bande-page a:focus-visible, .soba-footer a:focus-visible, .soba-bg-vert .wp-block-button__link:focus-visible { outline-color: var(--soba-beige); }

/* =====================================================================
   11. SO'EASY : la section partenaire, dans la charte So'Easy
   ===================================================================== */
.soba-bg-soeasy { background: var(--soeasy-fond); color: var(--soeasy-texte); }
.soba-bg-soeasy h2, .soba-bg-soeasy h3, .soba-bg-soeasy .soba-surtitre { color: var(--soeasy-bleu) !important; }
.soba-bg-soeasy p { color: var(--soeasy-texte); }
.soba-bg-soeasy .wp-block-button__link { background: var(--soeasy-bleu) !important; color: var(--soba-blanc) !important; border: 0 !important; }
.soba-bg-soeasy .wp-block-button__link:hover { background: var(--soeasy-texte) !important; }
.soba-bg-soeasy .soba-avis { border-radius: var(--r-carte); box-shadow: 0 22px 50px rgba(18, 51, 59, 0.12); }
.soba-bg-soeasy .soba-avis cite strong { color: var(--soeasy-bleu); }
.soba-bg-soeasy a:focus-visible, .soba-bg-soeasy .wp-block-button__link:focus-visible { outline-color: var(--soeasy-bleu); }
.soba-soeasy-logo img { width: 150px; height: auto; }

/* Page Formations : toute la page aux couleurs So'Easy */
.soba-soeasy h2, .soba-soeasy h3, .soba-soeasy .soba-surtitre, .soba-soeasy .soba-numero, .soba-soeasy .soba-sourire,
.soba-soeasy .soba-carte h3, .soba-soeasy .soba-enbref strong, .soba-soeasy .soba-mots { color: var(--soeasy-bleu) !important; }
.soba-soeasy.soba-bg-creme { background: var(--soeasy-fond); }
.soba-soeasy .soba-lien-fort a, .soba-soeasy .soba-faq summary::after, .soba-soeasy a:not(.wp-block-button__link) { color: var(--soeasy-bleu); }
.soba-soeasy .soba-enbref { border-top-color: rgba(23, 101, 117, 0.25); }
.soba-soeasy .soba-chips p { border-color: rgba(23, 101, 117, 0.3); }
.soba-soeasy .soba-carte { border: 1.5px solid rgba(23, 101, 117, 0.35); }
.soba-soeasy .wp-block-button__link { background: var(--soeasy-bleu) !important; color: var(--soba-blanc) !important; border: 0 !important; }
.soba-soeasy .is-style-outline .wp-block-button__link { background: transparent !important; border: 2px solid var(--soeasy-bleu) !important; color: var(--soeasy-bleu) !important; }
.soba-soeasy .wp-block-button__link:hover, .soba-soeasy .is-style-outline .wp-block-button__link:hover { background: var(--soeasy-texte) !important; color: var(--soba-blanc) !important; box-shadow: 0 8px 22px rgba(18, 51, 59, 0.25); }
.soba-soeasy .soba-tarif { background: var(--soeasy-bleu); }
.soba-soeasy .soba-tarif .soba-mots, .soba-soeasy .soba-tarif .soba-tarif__unite { color: var(--soba-blanc) !important; }
.soba-soeasy.soba-bg-vert { background: var(--soeasy-bleu); }
.soba-soeasy.soba-bg-vert h2, .soba-soeasy.soba-bg-vert h3, .soba-soeasy.soba-bg-vert .soba-carte h3, .soba-soeasy.soba-bg-vert .soba-numero { color: var(--soba-blanc) !important; }
.soba-soeasy.soba-bg-vert .soba-carte { border-color: rgba(255, 255, 255, 0.3); }
.soba-soeasy.soba-bg-vert .wp-block-button__link { background: var(--soba-blanc) !important; color: var(--soeasy-bleu) !important; }
.soba-soeasy a:focus-visible, .soba-soeasy .wp-block-button__link:focus-visible { outline-color: var(--soeasy-bleu); }
.soba-soeasy.soba-bg-vert a:focus-visible, .soba-soeasy.soba-bg-vert .wp-block-button__link:focus-visible { outline-color: var(--soba-blanc); }

/* =====================================================================
   12. BANDEAU PHOTO
   ===================================================================== */
.soba-bande-photo { position: relative; margin: 0 !important; padding: 0 !important; overflow: hidden; }
.soba-bande-photo > * { max-width: none !important; width: 100% !important; margin: 0 !important; }
.soba-bande-photo img { display: block; width: 100%; height: clamp(150px, 17vw, 240px); object-fit: cover; border-radius: 0; }
.soba-bande-photo__texte { position: absolute; left: 0; right: 0; bottom: 0; box-sizing: border-box; margin: 0 !important; padding: clamp(28px, 5vw, 56px) var(--soba-gouttiere) clamp(16px, 2.6vw, 28px) !important; text-align: left; padding-left: max(var(--soba-gouttiere), calc((100% - var(--soba-colonne)) / 2 + var(--soba-gouttiere))) !important; color: var(--soba-blanc) !important; font-size: clamp(16px, 1.7vw, 22px) !important; font-weight: 300; font-style: italic; text-shadow: 0 1px 8px rgba(0, 0, 0, 0.35); background: linear-gradient(to top, rgba(26, 26, 26, 0.62), transparent); }

/* =====================================================================
   13. MENTIONS LÉGALES, TABLEAUX
   ===================================================================== */
.soba-carte--legal h2 { font-size: 22px !important; margin-top: 4px !important; }
.soba-carte--legal ul { padding-left: 18px; }
.soba-carte--legal li + li { margin-top: 4px; }
.wp-block-table { overflow-x: auto; }
.wp-block-table table { border-collapse: collapse; width: 100%; background: var(--soba-blanc); border-radius: 14px; overflow: hidden; }
.wp-block-table th { background: var(--soba-vert); color: var(--soba-blanc); text-align: left; }
.wp-block-table th, .wp-block-table td { padding: 12px 14px; border: 1px solid #e6e1d6; vertical-align: top; }

/* =====================================================================
   14. BLOG ET ARTICLES
   ===================================================================== */
.soba-vide { max-width: 760px; padding: clamp(28px, 4vw, 48px) !important; }
.soba-vide h2 { margin-top: 0; }
.wp-block-post-template .soba-carte { padding: 26px !important; }
.wp-block-post-template .wp-block-post-title { font-size: 19px !important; line-height: 1.35; }
.wp-block-post-template .wp-block-post-title a { text-decoration: none; color: var(--soba-vert); }
.soba-meta { color: var(--soba-sauge-texte); font-size: 0.9rem; }

.soba-bande-article .wp-block-post-title { color: var(--soba-blanc) !important; font-size: clamp(24px, 2.8vw, 38px) !important; max-width: 900px; line-height: 1.2; letter-spacing: -0.015em; margin: 6px 0 0 !important; }
.soba-bande-article .soba-bande-page__accroche { gap: 6px !important; }
.soba-bande-article .soba-bande-page__accroche p, .soba-bande-article .wp-block-post-date { font-size: 14px !important; color: var(--soba-beige) !important; margin: 0 !important; }
.soba-article-zone { padding-top: clamp(var(--s4), 5vw, var(--s5)) !important; }
.soba-article-grille { gap: clamp(32px, 5vw, 72px) !important; align-items: flex-start !important; }
.wp-block-column.soba-article { max-width: none; margin: 0; padding: 0; }
.soba-article .wp-block-post-content { font-size: 17px; line-height: 1.75; color: var(--soba-texte); }
.soba-article .wp-block-post-content > * { max-width: 720px; margin-left: 0 !important; margin-right: 0 !important; }
.soba-article .wp-block-post-content > * + * { margin-top: 1.1em; }
.soba-article .wp-block-post-content h2 { font-size: clamp(22px, 2vw, 27px) !important; margin-top: 2.2em !important; margin-bottom: 0.4em !important; }
.soba-article .wp-block-post-content h3 { font-size: 19px !important; margin-top: 1.6em !important; }
.soba-article .wp-block-post-content ul { padding-left: 1.2em; }
.soba-article .wp-block-post-content li + li { margin-top: 0.45em; }
.soba-reponse { background: var(--soba-beige); border-radius: 20px; padding: 22px 26px !important; font-size: 16px; }
.soba-reponse p { margin: 0; }
.soba-article-photo { margin: 2em 0 !important; }
.soba-article-photo img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--r-carte); display: block; }
.soba-a-completer { background: #fff7d1; border: 2px dashed #d9b84a; border-radius: 14px; padding: 14px 18px !important; font-size: 15px !important; }
.soba-cta-article { background: var(--soba-vert); color: var(--soba-blanc); border-radius: var(--r-carte); padding: clamp(var(--s3), 3vw, 36px) !important; margin-top: 2.4em !important; }
.soba-cta-article h3 { color: var(--soba-beige) !important; margin: 0 0 var(--s1) !important; font-size: 20px !important; }
.soba-cta-article p { color: #e8eee6; margin: 0 0 var(--s2); font-size: 16px; }
.soba-article-aside { position: sticky; top: 110px; }
.soba-aside { background: var(--soba-blanc); border-radius: 26px; padding: 22px !important; box-shadow: 0 8px 30px rgba(74, 94, 59, 0.08); }
.soba-aside > * + * { margin-top: 12px !important; }
.soba-aside__photo { margin: 0 !important; }
.soba-aside__photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: center 25%; border-radius: var(--r-petit); display: block; }
.soba-aside h3 { margin-top: 14px !important; font-size: 18px !important; }
.soba-aside p { font-size: 14.5px; line-height: 1.6; }
.soba-aside__liens { font-weight: 600; line-height: 2 !important; }
.soba-aside__liens a { text-decoration: none; }
.soba-auteur { background: var(--soba-blanc); border-radius: var(--r-carte); padding: 22px !important; margin-top: 48px !important; }

/* =====================================================================
   15. MOBILE ET ANIMATIONS DOUCES
   ===================================================================== */
@media (max-width: 781px) {
	.soba-inverse { flex-direction: column !important; }
	.soba-collage { min-height: 360px; }
	.soba-article-aside { position: static; }
	.soba-article .wp-block-post-content { font-size: 16px; }
	.soba-enbref { margin-top: var(--s4) !important; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: opacity 200ms ease !important; }
	.soba-carte:hover, .wp-block-button__link:active { transform: none !important; }
	html { scroll-behavior: auto; }
}
@media (max-width: 600px) {
	.wp-block-gallery.soba-logos { grid-template-columns: repeat(3, 1fr); gap: 8px !important; }
	.soba-cas-mini__grille > .wp-block-column:first-child { flex-basis: 100% !important; }
}
@media (max-width: 600px) {
	.soba-carte--photo > figure img { aspect-ratio: 16 / 9; }
}

/* Accueil : photo d'ouverture plus petite */
@media (min-width: 782px) {
	.wp-block-column.soba-visuel:has(.soba-badge) { flex: 0 0 340px !important; }
	.wp-block-column.soba-visuel:has(.soba-detoure) { flex: 0 0 420px !important; }
	/* Photos carrées en haut de page : plus discrètes, le texte respire */
	.soba-hero2 .soba-visuel .soba-cadre:not(.soba-cadre--paysage) { max-width: 440px; margin-left: auto !important; }
	.soba-visuel:has(.soba-badge) .soba-cadre { max-width: 300px; margin-left: auto !important; }
	.soba-visuel:has(.soba-badge) .soba-detoure { max-width: 400px; margin-left: auto !important; }
}
/* Mobile : moins de défilement */
@media (max-width: 781px) {
	#approche .wp-block-columns.soba-cartes { display: grid !important; grid-template-columns: 1fr 1fr; gap: 12px !important; }
	#approche .soba-carte { padding: 18px 14px !important; }
	#approche .soba-carte p:not(.soba-numero) { font-size: 13.5px; }
	#approche .soba-icone img { height: 44px; }
	.soba-bg-vert .soba-carte--photo { display: grid !important; grid-template-columns: 112px 1fr; column-gap: 14px; align-items: start; padding: 0 !important; }
	.soba-bg-vert .soba-carte--photo > figure { grid-row: 1 / span 5; align-self: stretch; }
	.soba-bg-vert .soba-carte--photo > figure img { height: 100%; aspect-ratio: auto; }
	.soba-bg-vert .soba-carte--photo > * { padding: 0 14px 0 0 !important; margin-top: 6px !important; }
	.soba-bg-vert .soba-carte--photo > .soba-mots { padding-top: 14px !important; }
	.soba-bg-vert .soba-carte--photo > *:last-child { padding-bottom: 14px !important; }
	.soba-bg-vert .soba-carte--photo h3 { font-size: 17px !important; }
	.soba-bg-vert .soba-carte--photo p { font-size: 14px; }
	.soba-bande-photo__texte { padding-left: var(--soba-gouttiere) !important; }
}
.soba-section > .soba-avis-seul { box-sizing: border-box; max-width: var(--soba-colonne) !important; padding-right: max(0px, calc(min(100%, var(--soba-colonne)) - var(--soba-texte-max))) !important; }
@media (max-width: 781px) {
	.soba-visuel:has(.soba-badge) .soba-cadre { max-width: 260px; margin-left: auto !important; margin-right: auto !important; }
	.soba-visuel:has(.soba-badge) .soba-detoure { max-width: 320px; margin-left: auto !important; margin-right: auto !important; }
}

/* =====================================================================
   16. V3.2 : bandes centrées, bouton fixe mobile, cas clients repliables
   ===================================================================== */
.soba-bande-photo__texte { top: 0; bottom: 0 !important; display: flex; align-items: center; justify-content: center; text-align: center !important; padding: 0 var(--soba-gouttiere) !important; background: rgba(26, 26, 26, 0.38) !important; }

.soba-cta-mobile { display: none !important; }
@media (max-width: 781px) {
	.soba-cta-mobile { display: flex !important; position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 90; margin: 0 !important; justify-content: center; }
	.soba-cta-mobile .wp-block-button { width: 100%; }
	.soba-cta-mobile .wp-block-button__link { width: 100%; justify-content: center; box-shadow: 0 8px 24px rgba(26, 26, 26, 0.22); }
	body { padding-bottom: 76px; }
}

.soba-cas__suite { display: none; }
@media (max-width: 781px) {
	.soba-cas--replie > :not(.soba-cas__tete):not(.soba-cas__suite):not(.soba-mots):not(h2):not(.soba-cas__client) { display: none !important; }
	.soba-cas__suite { display: inline-flex; margin-top: var(--s2); background: none; border: 1.5px solid var(--soba-vert); color: var(--soba-vert); border-radius: 999px; padding: 10px 20px; min-height: 44px; font: inherit; font-weight: 600; cursor: pointer; }
}
