/*
Theme Name: ASBAT-CI
Theme URI: https://asbat-ci.com
Author: Tech evolution +
Description: Thème bloc sur mesure d'ASBAT-CI, Assemblée des Bâtisseurs de Côte d'Ivoire. Entièrement modifiable dans l'éditeur de blocs.
Version: 1.1.0
Requires at least: 6.6
Requires PHP: 8.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: asbat-ci
Tags: block-theme, full-site-editing, business
*/

/* Icônes (générées par conversion/icones.js) */
:root {
  --m-tel: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E");
  --o-tel: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23F7941E' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E");
  --e-tel: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%2315181C' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E");
  --p-tel: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%230C4E87' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E");
  --m-mail: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-10 6L2 7'/%3E%3C/g%3E%3C/svg%3E");
  --o-mail: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23F7941E' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-10 6L2 7'/%3E%3C/g%3E%3C/svg%3E");
  --e-mail: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%2315181C' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-10 6L2 7'/%3E%3C/g%3E%3C/svg%3E");
  --p-mail: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%230C4E87' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-10 6L2 7'/%3E%3C/g%3E%3C/svg%3E");
  --m-lieu: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12S4 16 4 10a8 8 0 0 1 16 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/g%3E%3C/svg%3E");
  --o-lieu: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23F7941E' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12S4 16 4 10a8 8 0 0 1 16 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/g%3E%3C/svg%3E");
  --e-lieu: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%2315181C' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12S4 16 4 10a8 8 0 0 1 16 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/g%3E%3C/svg%3E");
  --p-lieu: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%230C4E87' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12S4 16 4 10a8 8 0 0 1 16 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/g%3E%3C/svg%3E");
  --m-boite: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9h18v11H3z'/%3E%3Cpath d='M3 9l3-5h12l3 5M9 13h6'/%3E%3C/g%3E%3C/svg%3E");
  --o-boite: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23F7941E' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9h18v11H3z'/%3E%3Cpath d='M3 9l3-5h12l3 5M9 13h6'/%3E%3C/g%3E%3C/svg%3E");
  --e-boite: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%2315181C' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9h18v11H3z'/%3E%3Cpath d='M3 9l3-5h12l3 5M9 13h6'/%3E%3C/g%3E%3C/svg%3E");
  --p-boite: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%230C4E87' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9h18v11H3z'/%3E%3Cpath d='M3 9l3-5h12l3 5M9 13h6'/%3E%3C/g%3E%3C/svg%3E");
  --m-coche: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
  --o-coche: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23F7941E' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
  --e-coche: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%2315181C' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
  --p-coche: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%230C4E87' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
  --m-fleche: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
  --o-fleche: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23F7941E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
  --e-fleche: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%2315181C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
  --p-fleche: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%230C4E87' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
  --m-wa: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M17.5 14.4c-.3-.1-1.7-.8-2-.9-.3-.1-.5-.1-.7.1-.2.3-.8.9-.9 1.1-.2.2-.3.2-.6.1-.3-.1-1.2-.5-2.3-1.4-.9-.8-1.4-1.7-1.6-2-.2-.3 0-.5.1-.6l.4-.5c.1-.2.2-.3.3-.5.1-.2 0-.4 0-.5l-.9-2.2c-.2-.6-.5-.5-.7-.5h-.6c-.2 0-.5.1-.8.4-.3.3-1 1-1 2.5s1.1 2.9 1.2 3.1c.1.2 2.1 3.2 5.1 4.5.7.3 1.3.5 1.7.6.7.2 1.4.2 1.9.1.6-.1 1.7-.7 2-1.4.2-.7.2-1.2.2-1.4-.1-.1-.3-.2-.6-.3zM12 21.8c-1.8 0-3.5-.5-5-1.4l-.4-.2-3.7 1 1-3.6-.2-.4A9.8 9.8 0 0 1 2.2 12 9.8 9.8 0 0 1 12 2.2 9.8 9.8 0 0 1 21.8 12 9.8 9.8 0 0 1 12 21.8zM20.5 3.5A11.8 11.8 0 0 0 12 0C5.4 0 .1 5.3.1 11.9c0 2.1.6 4.2 1.6 6L0 24l6.3-1.6a11.9 11.9 0 0 0 5.7 1.4c6.6 0 11.9-5.3 11.9-11.9 0-3.2-1.2-6.2-3.4-8.4z'/%3E%3C/svg%3E");
  --o-wa: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23F7941E' d='M17.5 14.4c-.3-.1-1.7-.8-2-.9-.3-.1-.5-.1-.7.1-.2.3-.8.9-.9 1.1-.2.2-.3.2-.6.1-.3-.1-1.2-.5-2.3-1.4-.9-.8-1.4-1.7-1.6-2-.2-.3 0-.5.1-.6l.4-.5c.1-.2.2-.3.3-.5.1-.2 0-.4 0-.5l-.9-2.2c-.2-.6-.5-.5-.7-.5h-.6c-.2 0-.5.1-.8.4-.3.3-1 1-1 2.5s1.1 2.9 1.2 3.1c.1.2 2.1 3.2 5.1 4.5.7.3 1.3.5 1.7.6.7.2 1.4.2 1.9.1.6-.1 1.7-.7 2-1.4.2-.7.2-1.2.2-1.4-.1-.1-.3-.2-.6-.3zM12 21.8c-1.8 0-3.5-.5-5-1.4l-.4-.2-3.7 1 1-3.6-.2-.4A9.8 9.8 0 0 1 2.2 12 9.8 9.8 0 0 1 12 2.2 9.8 9.8 0 0 1 21.8 12 9.8 9.8 0 0 1 12 21.8zM20.5 3.5A11.8 11.8 0 0 0 12 0C5.4 0 .1 5.3.1 11.9c0 2.1.6 4.2 1.6 6L0 24l6.3-1.6a11.9 11.9 0 0 0 5.7 1.4c6.6 0 11.9-5.3 11.9-11.9 0-3.2-1.2-6.2-3.4-8.4z'/%3E%3C/svg%3E");
  --e-wa: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%2315181C' d='M17.5 14.4c-.3-.1-1.7-.8-2-.9-.3-.1-.5-.1-.7.1-.2.3-.8.9-.9 1.1-.2.2-.3.2-.6.1-.3-.1-1.2-.5-2.3-1.4-.9-.8-1.4-1.7-1.6-2-.2-.3 0-.5.1-.6l.4-.5c.1-.2.2-.3.3-.5.1-.2 0-.4 0-.5l-.9-2.2c-.2-.6-.5-.5-.7-.5h-.6c-.2 0-.5.1-.8.4-.3.3-1 1-1 2.5s1.1 2.9 1.2 3.1c.1.2 2.1 3.2 5.1 4.5.7.3 1.3.5 1.7.6.7.2 1.4.2 1.9.1.6-.1 1.7-.7 2-1.4.2-.7.2-1.2.2-1.4-.1-.1-.3-.2-.6-.3zM12 21.8c-1.8 0-3.5-.5-5-1.4l-.4-.2-3.7 1 1-3.6-.2-.4A9.8 9.8 0 0 1 2.2 12 9.8 9.8 0 0 1 12 2.2 9.8 9.8 0 0 1 21.8 12 9.8 9.8 0 0 1 12 21.8zM20.5 3.5A11.8 11.8 0 0 0 12 0C5.4 0 .1 5.3.1 11.9c0 2.1.6 4.2 1.6 6L0 24l6.3-1.6a11.9 11.9 0 0 0 5.7 1.4c6.6 0 11.9-5.3 11.9-11.9 0-3.2-1.2-6.2-3.4-8.4z'/%3E%3C/svg%3E");
  --p-wa: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%230C4E87' d='M17.5 14.4c-.3-.1-1.7-.8-2-.9-.3-.1-.5-.1-.7.1-.2.3-.8.9-.9 1.1-.2.2-.3.2-.6.1-.3-.1-1.2-.5-2.3-1.4-.9-.8-1.4-1.7-1.6-2-.2-.3 0-.5.1-.6l.4-.5c.1-.2.2-.3.3-.5.1-.2 0-.4 0-.5l-.9-2.2c-.2-.6-.5-.5-.7-.5h-.6c-.2 0-.5.1-.8.4-.3.3-1 1-1 2.5s1.1 2.9 1.2 3.1c.1.2 2.1 3.2 5.1 4.5.7.3 1.3.5 1.7.6.7.2 1.4.2 1.9.1.6-.1 1.7-.7 2-1.4.2-.7.2-1.2.2-1.4-.1-.1-.3-.2-.6-.3zM12 21.8c-1.8 0-3.5-.5-5-1.4l-.4-.2-3.7 1 1-3.6-.2-.4A9.8 9.8 0 0 1 2.2 12 9.8 9.8 0 0 1 12 2.2 9.8 9.8 0 0 1 21.8 12 9.8 9.8 0 0 1 12 21.8zM20.5 3.5A11.8 11.8 0 0 0 12 0C5.4 0 .1 5.3.1 11.9c0 2.1.6 4.2 1.6 6L0 24l6.3-1.6a11.9 11.9 0 0 0 5.7 1.4c6.6 0 11.9-5.3 11.9-11.9 0-3.2-1.2-6.2-3.4-8.4z'/%3E%3C/svg%3E");
  --m-guillemet: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M10 7H6.5A4.5 4.5 0 0 0 2 11.5V19h8v-8H6.2c.1-.9.9-1.6 1.8-1.6h2V7zm12 0h-3.5a4.5 4.5 0 0 0-4.5 4.5V19h8v-8h-3.8c.1-.9.9-1.6 1.8-1.6h2V7z'/%3E%3C/svg%3E");
  --o-guillemet: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23F7941E' d='M10 7H6.5A4.5 4.5 0 0 0 2 11.5V19h8v-8H6.2c.1-.9.9-1.6 1.8-1.6h2V7zm12 0h-3.5a4.5 4.5 0 0 0-4.5 4.5V19h8v-8h-3.8c.1-.9.9-1.6 1.8-1.6h2V7z'/%3E%3C/svg%3E");
  --e-guillemet: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%2315181C' d='M10 7H6.5A4.5 4.5 0 0 0 2 11.5V19h8v-8H6.2c.1-.9.9-1.6 1.8-1.6h2V7zm12 0h-3.5a4.5 4.5 0 0 0-4.5 4.5V19h8v-8h-3.8c.1-.9.9-1.6 1.8-1.6h2V7z'/%3E%3C/svg%3E");
  --p-guillemet: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%230C4E87' d='M10 7H6.5A4.5 4.5 0 0 0 2 11.5V19h8v-8H6.2c.1-.9.9-1.6 1.8-1.6h2V7zm12 0h-3.5a4.5 4.5 0 0 0-4.5 4.5V19h8v-8h-3.8c.1-.9.9-1.6 1.8-1.6h2V7z'/%3E%3C/svg%3E");
  --m-batiment: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 21h20'/%3E%3Cpath d='M4 21V5l8-2v18'/%3E%3Cpath d='M12 9h7a1 1 0 0 1 1 1v11'/%3E%3Cpath d='M7 8h2M7 12h2M7 16h2M15 13h2M15 17h2'/%3E%3C/g%3E%3C/svg%3E");
  --o-batiment: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23F7941E' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 21h20'/%3E%3Cpath d='M4 21V5l8-2v18'/%3E%3Cpath d='M12 9h7a1 1 0 0 1 1 1v11'/%3E%3Cpath d='M7 8h2M7 12h2M7 16h2M15 13h2M15 17h2'/%3E%3C/g%3E%3C/svg%3E");
  --e-batiment: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%2315181C' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 21h20'/%3E%3Cpath d='M4 21V5l8-2v18'/%3E%3Cpath d='M12 9h7a1 1 0 0 1 1 1v11'/%3E%3Cpath d='M7 8h2M7 12h2M7 16h2M15 13h2M15 17h2'/%3E%3C/g%3E%3C/svg%3E");
  --p-batiment: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%230C4E87' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 21h20'/%3E%3Cpath d='M4 21V5l8-2v18'/%3E%3Cpath d='M12 9h7a1 1 0 0 1 1 1v11'/%3E%3Cpath d='M7 8h2M7 12h2M7 16h2M15 13h2M15 17h2'/%3E%3C/g%3E%3C/svg%3E");
  --m-route: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 21 9 3M20 21 15 3'/%3E%3Cpath d='M12 5v2M12 10.5v2.5M12 16.5v4'/%3E%3C/g%3E%3C/svg%3E");
  --o-route: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23F7941E' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 21 9 3M20 21 15 3'/%3E%3Cpath d='M12 5v2M12 10.5v2.5M12 16.5v4'/%3E%3C/g%3E%3C/svg%3E");
  --e-route: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%2315181C' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 21 9 3M20 21 15 3'/%3E%3Cpath d='M12 5v2M12 10.5v2.5M12 16.5v4'/%3E%3C/g%3E%3C/svg%3E");
  --p-route: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%230C4E87' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 21 9 3M20 21 15 3'/%3E%3Cpath d='M12 5v2M12 10.5v2.5M12 16.5v4'/%3E%3C/g%3E%3C/svg%3E");
  --m-etude: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 3h11l5 5v13H4z'/%3E%3Cpath d='M15 3v5h5'/%3E%3Cpath d='M8 17l3-6 3 6M9 15h4'/%3E%3C/g%3E%3C/svg%3E");
  --o-etude: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23F7941E' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 3h11l5 5v13H4z'/%3E%3Cpath d='M15 3v5h5'/%3E%3Cpath d='M8 17l3-6 3 6M9 15h4'/%3E%3C/g%3E%3C/svg%3E");
  --e-etude: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%2315181C' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 3h11l5 5v13H4z'/%3E%3Cpath d='M15 3v5h5'/%3E%3Cpath d='M8 17l3-6 3 6M9 15h4'/%3E%3C/g%3E%3C/svg%3E");
  --p-etude: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%230C4E87' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 3h11l5 5v13H4z'/%3E%3Cpath d='M15 3v5h5'/%3E%3Cpath d='M8 17l3-6 3 6M9 15h4'/%3E%3C/g%3E%3C/svg%3E");
  --m-eclair: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='M13 2 4 14h7l-1 8 9-12h-7z'/%3E%3C/svg%3E");
  --o-eclair: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23F7941E' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='M13 2 4 14h7l-1 8 9-12h-7z'/%3E%3C/svg%3E");
  --e-eclair: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%2315181C' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='M13 2 4 14h7l-1 8 9-12h-7z'/%3E%3C/svg%3E");
  --p-eclair: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%230C4E87' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='M13 2 4 14h7l-1 8 9-12h-7z'/%3E%3C/svg%3E");
  --m-feuille: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22V11'/%3E%3Cpath d='M12 11c0-5 3-8 8.5-8.5C20 8 17 11 12 11z'/%3E%3Cpath d='M12 15c0-3.5-2.5-6-7.5-6.5.5 4 3 6.5 7.5 6.5z'/%3E%3C/g%3E%3C/svg%3E");
  --o-feuille: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23F7941E' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22V11'/%3E%3Cpath d='M12 11c0-5 3-8 8.5-8.5C20 8 17 11 12 11z'/%3E%3Cpath d='M12 15c0-3.5-2.5-6-7.5-6.5.5 4 3 6.5 7.5 6.5z'/%3E%3C/g%3E%3C/svg%3E");
  --e-feuille: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%2315181C' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22V11'/%3E%3Cpath d='M12 11c0-5 3-8 8.5-8.5C20 8 17 11 12 11z'/%3E%3Cpath d='M12 15c0-3.5-2.5-6-7.5-6.5.5 4 3 6.5 7.5 6.5z'/%3E%3C/g%3E%3C/svg%3E");
  --p-feuille: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%230C4E87' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22V11'/%3E%3Cpath d='M12 11c0-5 3-8 8.5-8.5C20 8 17 11 12 11z'/%3E%3Cpath d='M12 15c0-3.5-2.5-6-7.5-6.5.5 4 3 6.5 7.5 6.5z'/%3E%3C/g%3E%3C/svg%3E");
  --m-cle: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11 12 4l9 7'/%3E%3Cpath d='M5 9.5V20h14V9.5'/%3E%3Ccircle cx='12' cy='13.5' r='2'/%3E%3Cpath d='M12 15.5V18'/%3E%3C/g%3E%3C/svg%3E");
  --o-cle: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23F7941E' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11 12 4l9 7'/%3E%3Cpath d='M5 9.5V20h14V9.5'/%3E%3Ccircle cx='12' cy='13.5' r='2'/%3E%3Cpath d='M12 15.5V18'/%3E%3C/g%3E%3C/svg%3E");
  --e-cle: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%2315181C' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11 12 4l9 7'/%3E%3Cpath d='M5 9.5V20h14V9.5'/%3E%3Ccircle cx='12' cy='13.5' r='2'/%3E%3Cpath d='M12 15.5V18'/%3E%3C/g%3E%3C/svg%3E");
  --p-cle: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%230C4E87' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11 12 4l9 7'/%3E%3Cpath d='M5 9.5V20h14V9.5'/%3E%3Ccircle cx='12' cy='13.5' r='2'/%3E%3Cpath d='M12 15.5V18'/%3E%3C/g%3E%3C/svg%3E");
}
.ic-tel { --icone: var(--m-tel); --icone-o: var(--o-tel); --icone-e: var(--e-tel); --icone-p: var(--p-tel); }
.ic-mail { --icone: var(--m-mail); --icone-o: var(--o-mail); --icone-e: var(--e-mail); --icone-p: var(--p-mail); }
.ic-lieu { --icone: var(--m-lieu); --icone-o: var(--o-lieu); --icone-e: var(--e-lieu); --icone-p: var(--p-lieu); }
.ic-boite { --icone: var(--m-boite); --icone-o: var(--o-boite); --icone-e: var(--e-boite); --icone-p: var(--p-boite); }
.ic-coche { --icone: var(--m-coche); --icone-o: var(--o-coche); --icone-e: var(--e-coche); --icone-p: var(--p-coche); }
.ic-fleche { --icone: var(--m-fleche); --icone-o: var(--o-fleche); --icone-e: var(--e-fleche); --icone-p: var(--p-fleche); }
.ic-wa { --icone: var(--m-wa); --icone-o: var(--o-wa); --icone-e: var(--e-wa); --icone-p: var(--p-wa); }
.ic-guillemet { --icone: var(--m-guillemet); --icone-o: var(--o-guillemet); --icone-e: var(--e-guillemet); --icone-p: var(--p-guillemet); }
.ic-batiment { --icone: var(--m-batiment); --icone-o: var(--o-batiment); --icone-e: var(--e-batiment); --icone-p: var(--p-batiment); }
.ic-route { --icone: var(--m-route); --icone-o: var(--o-route); --icone-e: var(--e-route); --icone-p: var(--p-route); }
.ic-etude { --icone: var(--m-etude); --icone-o: var(--o-etude); --icone-e: var(--e-etude); --icone-p: var(--p-etude); }
.ic-eclair { --icone: var(--m-eclair); --icone-o: var(--o-eclair); --icone-e: var(--e-eclair); --icone-p: var(--p-eclair); }
.ic-feuille { --icone: var(--m-feuille); --icone-o: var(--o-feuille); --icone-e: var(--e-feuille); --icone-p: var(--p-feuille); }
.ic-cle { --icone: var(--m-cle); --icone-o: var(--o-cle); --icone-e: var(--e-cle); --icone-p: var(--p-cle); }

/* ==========================================================================
   ASBAT-CI · feuille du thème
   Reprise de la maquette validée (site/styles.css), adaptée au balisage des
   blocs natifs. Deux règles de conversion (blocs-gutenberg.md) :
   - la classe du composant est posée sur le bloc ; les sélecteurs suivent ;
   - le CSS des blocs est imprimé APRÈS cette feuille : toute surcharge d'un
     style de bloc est plus spécifique, jamais simplement plus tardive.
   ========================================================================== */

:root {
  --cyan: #00AEEF;
  --orange: #F7941E;
  --blanc: #FFFFFF;
  --encre: #15181C;
  --texte: #50565E;
  --gris: #F4F5F7;
  --ligne: #E4E6EA;
  --rayon: 6px;
  --conteneur: 1080px;
  --marge: max(20px, calc((100vw - var(--conteneur)) / 2));
  --poppins: "Poppins", system-ui, sans-serif;
  --barlow: "Barlow Condensed", "Poppins", sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--poppins);
  font-size: 15px;
  line-height: 1.75;
  color: var(--texte);
  background: var(--blanc);
  -webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; height: auto; } /* height:auto : sinon l'attribut height des images l'emporte */
a { color: inherit; text-decoration: none; }
h1, h2, h3, h4, p, ul, figure { margin: 0; }
ul { padding: 0; list-style: none; }
h1, h2, h3, h4 {
  color: var(--encre);
  font-weight: 700;
  line-height: 1.3;
  hyphens: none;
  text-wrap: balance;
}
h2 { font-size: 32px; }
h3 { font-size: 17px; font-weight: 600; }
/* Mot mis en avant dans un titre : <em> nu (substitution n° 4) */
h1 em, h2 em { font-style: normal; color: var(--orange); }

/* Gutenberg : espacement neutralisé dans theme.json (blockGap 0), filet ici à spécificité nulle */
:where(.wp-block-group) > :where(*), :where(.wp-block-buttons) { margin-block: 0; }
figure.wp-block-image { margin: 0; }
.wp-site-blocks > main { margin: 0; }

.conteneur { width: min(var(--conteneur), 100% - 40px); margin-inline: auto; }

.surtitre {
  display: block;
  margin-bottom: 10px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .08em;
  line-height: 1.75;
  text-transform: uppercase;
  color: var(--orange);
}
.centre { text-align: center; }
.tete-section { max-width: 640px; margin: 0 auto 50px; }
.tete-section p:not(.surtitre) { margin-top: 12px; }

:where(a, button, input, select, textarea, [tabindex]):focus-visible { outline: 3px solid var(--cyan); outline-offset: 3px; border-radius: 6px; }

/* ---------- Boutons : la classe atterrit sur div.wp-block-button, le style va sur le lien ---------- */
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 14px; }
.wp-block-button.btn { display: inline-block; padding: 0; border: 0; background: none; border-radius: 0; }
.wp-block-button.btn .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 28px;
  border: 2px solid transparent;
  border-radius: 999px;
  font-family: var(--poppins);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .06em;
  line-height: 1.2;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: transform .2s ease, box-shadow .2s ease;
}
.wp-block-button.btn .wp-block-button__link:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(21, 24, 28, .14); }
.wp-block-button.btn-orange .wp-block-button__link { background: var(--orange); color: var(--encre); }
.wp-block-button.btn-cyan .wp-block-button__link { background: var(--cyan); color: var(--encre); }
.wp-block-button.btn-blanc .wp-block-button__link { background: var(--blanc); color: var(--encre); }
.wp-block-button.btn-ligne .wp-block-button__link { background: transparent; border-color: var(--encre); color: var(--encre); }
/* icônes de bouton : masque coloré par la couleur du texte */
.wp-block-button.ic-wa .wp-block-button__link::before,
.wp-block-button.ic-tel .wp-block-button__link::before,
.wp-block-button.ic-fleche .wp-block-button__link::after {
  content: "";
  width: 18px;
  height: 18px;
  flex: none;
  background: currentColor;
  -webkit-mask: var(--icone) center / contain no-repeat;
  mask: var(--icone) center / contain no-repeat;
}

/* ---------- Icônes posées par pseudo-éléments ---------- */
.mini::before, .barre-contacts p::before, .pied-contact p::before {
  content: "";
  flex: none;
  background: currentColor;
  -webkit-mask: var(--icone) center / contain no-repeat;
  mask: var(--icone) center / contain no-repeat;
}

/* ---------- En-tête (template part) ---------- */
/* au-dessus du bouton WhatsApp flottant (60) : le panneau mobile du menu le recouvre */
header.wp-block-template-part { position: relative; z-index: 70; }
.barre-haut {
  background: var(--cyan);
  color: var(--encre);
  font-size: 13px;
  line-height: 1.4;
}
.barre-haut .conteneur {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  padding: 9px 0;
}
.barre-contacts { display: flex; gap: 26px; }
.barre-contacts p { display: flex; align-items: center; gap: 8px; }
.barre-contacts p::before { width: 15px; height: 15px; }

.entete {
  position: absolute;
  z-index: 20;
  top: calc(100% + 22px);
  /* centré sans transform : un transform ferait de l'en-tête le repère du panneau
     mobile (position: fixed), qui resterait alors enfermé dans la carte */
  left: 0;
  right: 0;
  margin-inline: auto;
  width: min(var(--conteneur), 100% - 40px);
  display: flex;
  align-items: center;
  gap: 30px;
  padding: 12px 14px 12px 26px;
  background: var(--blanc);
  border-radius: var(--rayon);
  box-shadow: 0 14px 40px rgba(21, 24, 28, .10);
}
/* Le PNG du logo est rogné au ras du dessin, alors que le SVG de la maquette garde
   une marge (le dessin occupe 83,5 % de sa hauteur) : l'image est réduite d'autant,
   et la boîte garde la hauteur de la maquette. */
.wp-block-site-logo.logo img, .wp-block-site-logo.logo-pied img { width: auto; max-width: none; }
.wp-block-site-logo.logo a, .wp-block-site-logo.logo-pied a { display: flex; align-items: center; }
.wp-block-site-logo.logo a { height: 52px; }
.wp-block-site-logo.logo img { height: 43px; }
.entete .wp-block-navigation.nav { margin-left: auto; font-size: 14px; font-weight: 500; color: var(--encre); }
.entete .wp-block-navigation.nav .wp-block-navigation__container { gap: 28px; }
.entete .wp-block-navigation.nav .wp-block-navigation-item__content { color: var(--encre); }
.entete .wp-block-navigation.nav .current-menu-item > .wp-block-navigation-item__content { color: var(--orange); font-weight: 600; }
.entete .wp-block-buttons.entete-actions { flex: none; }
/* dans la maquette, le bouton de l'en-tête hérite de la typographie du menu (14 px, 500) */
.entete .wp-block-button.btn .wp-block-button__link { padding: 12px 22px; font-size: 14px; font-weight: 500; }
/* Le panneau mobile s'ouvre blanc sur blanc sans ceci (CSS du bloc imprimé après cette feuille) */
.entete .wp-block-navigation.nav .wp-block-navigation__responsive-container.is-menu-open {
  background-color: var(--blanc) !important;
  color: var(--encre) !important;
}
.entete .wp-block-navigation.nav .wp-block-navigation__responsive-container.is-menu-open { padding: 28px 24px !important; }
.entete .wp-block-navigation.nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.entete .wp-block-navigation.nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: flex-start; }
.entete .wp-block-navigation.nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { width: 100%; margin: 0; gap: 22px; padding-top: 24px; font-size: 20px; font-weight: 600; }
.entete .wp-block-navigation.nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { align-items: flex-start; }
.entete .wp-block-navigation__responsive-container-open,
.entete .wp-block-navigation__responsive-container-close { color: var(--encre); }
.entete .wp-block-navigation__responsive-container-open {
  width: 44px;
  height: 44px;
  justify-content: center;
  align-items: center;
  border-radius: var(--rayon);
  background: var(--gris);
}

/* ---------- Héros ---------- */
.hero { position: relative; overflow: hidden; background: var(--blanc); }
.wp-block-image.hero-photo {
  position: absolute;
  inset: 0 0 0 auto;
  width: 60%;
}
.wp-block-image.hero-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 34%; }
.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, #fff 0%, #fff 40%, rgba(255, 255, 255, .82) 50%, rgba(255, 255, 255, 0) 70%);
}
.hero-contenu {
  position: relative;
  z-index: 2;
  padding: 200px 0 130px;
}
.hero-contenu > * { max-width: 560px; }
.hero h1 { max-width: 760px; font-size: 40px; line-height: 1.3; }
.hero p:not(.surtitre):not(.ariane) { margin-top: 18px; font-size: 16px; }
.hero .wp-block-buttons.actions { gap: 14px; margin-top: 34px; max-width: none; }

/* ---------- À propos ---------- */
.apropos { padding: 110px 0 100px; }
.apropos .conteneur { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; align-items: center; }
.compo { position: relative; height: 480px; }
.compo::before {
  content: "";
  position: absolute;
  right: -16px;
  top: -16px;
  width: 70%;
  height: 390px;
  border: 2px solid var(--orange);
  border-radius: var(--rayon);
}
.wp-block-image.compo-portrait {
  position: absolute;
  right: 0;
  top: 0;
  width: 70%;
  height: 390px;
  border-radius: var(--rayon);
  overflow: hidden;
}
.wp-block-image.compo-portrait img { width: 100%; height: 100%; object-fit: cover; object-position: 45% center; filter: grayscale(1) contrast(1.05); }
.wp-block-image.compo-encart {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 54%;
  height: 230px;
  border: 8px solid var(--blanc);
  border-radius: var(--rayon);
  overflow: hidden;
  box-shadow: 0 18px 40px rgba(21, 24, 28, .16);
}
.wp-block-image.compo-encart img { width: 100%; height: 100%; object-fit: cover; object-position: center 60%; }
.compo-badge {
  position: absolute;
  left: 46%;
  bottom: 26px;
  width: 128px;
  padding: 16px 14px;
  background: var(--cyan);
  color: var(--encre);
  border-radius: var(--rayon);
  text-align: center;
  line-height: 1.25;
}
.badge-valeur { font-size: 34px; font-weight: 800; line-height: 1.25; }
.badge-label { margin-top: 4px; font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; line-height: 1.25; }
.apropos h2 { font-size: 32px; }
.apropos .texte > p:not(.surtitre) { margin-top: 18px; }
.apropos .texte .mini-grille { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 28px 0 34px; } /* dernier enfant sur la page À propos */
.mini {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 16px;
  border: 1px solid var(--ligne);
  border-radius: var(--rayon);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.35;
  color: var(--encre);
}
.mini::before { width: 26px; height: 26px; color: var(--orange); background: var(--orange); }

/* ---------- Pourquoi ASBAT-CI ---------- */
.pourquoi { display: grid; grid-template-columns: 1fr 1fr; background: var(--cyan); }
.pourquoi-texte { padding: 90px 64px 90px var(--marge); color: var(--encre); }
.pourquoi .surtitre { color: var(--encre); }
.pourquoi h2 { font-size: 30px; }
.pourquoi-texte > p:not(.surtitre) { margin-top: 16px; }
.coches { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 24px; margin-top: 26px; font-size: 14px; font-weight: 500; }
.coches li { display: flex; align-items: center; gap: 10px; line-height: 1.4; }
.coches li::before {
  content: "";
  width: 20px;
  height: 20px;
  flex: none;
  border-radius: 50%;
  background: var(--blanc) var(--e-coche) center / 14px no-repeat;
}
.chiffres { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 36px; }
.chiffre { display: flex; flex-direction: column; padding: 14px 16px 16px; border: 2px solid var(--blanc); border-radius: var(--rayon); line-height: 1.3; }
.chiffre-label { font-size: 12px; font-weight: 500; line-height: 1.3; }
/* Chiffres clés : Barlow Condensed, demandée par le client */
.chiffre-valeur {
  margin-top: auto;
  padding-top: 8px;
  font-family: var(--barlow);
  font-size: 48px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .01em;
  font-variant-numeric: tabular-nums;
  color: var(--encre);
}
.wp-block-image.pourquoi-photo { position: relative; min-height: 560px; }
.wp-block-image.pourquoi-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 55% center; }

/* ---------- Expertises (accueil) et cartes ---------- */
.expertises { position: relative; overflow: hidden; padding: 100px 0 150px; background: var(--gris); }
.expertises::before {
  content: "";
  position: absolute;
  right: -110px;
  top: 150px;
  width: 340px;
  height: 340px;
  border-radius: 50%;
  background: rgba(247, 148, 30, .16);
}
.grille-cartes { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.carte {
  padding: 32px 28px 30px;
  background: var(--blanc);
  border-radius: var(--rayon);
  box-shadow: 0 12px 30px rgba(21, 24, 28, .06);
  transition: transform .25s ease, box-shadow .25s ease;
}
.carte:hover { transform: translateY(-4px); box-shadow: 0 20px 40px rgba(21, 24, 28, .10); }
.carte::before {
  content: "";
  display: block;
  width: 64px;
  height: 64px;
  margin-bottom: 22px;
  border-radius: 50%;
  background: rgba(247, 148, 30, .16) var(--icone-o) center / 30px no-repeat;
}
.carte p { margin-top: 10px; font-size: 14px; line-height: 1.7; }

/* ---------- Bandeau devis ---------- */
.bandeau {
  position: relative;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  width: min(var(--conteneur), 100% - 40px);
  margin: -48px auto 0;
  padding: 26px 34px;
  background: var(--orange);
  border-radius: var(--rayon);
  color: var(--encre);
  box-shadow: 0 18px 40px rgba(21, 24, 28, .14);
}
.bandeau h3 { font-size: 20px; }
.bandeau p { font-size: 14px; }
.bandeau + .appel { margin-top: 72px; }

/* ---------- Engagements ---------- */
.engagements { position: relative; margin-top: -48px; padding: 120px 0 100px; }
.wp-block-image.engagements-fond { position: absolute; inset: 0 0 auto 0; height: 430px; overflow: hidden; }
.wp-block-image.engagements-fond img { width: 100%; height: 100%; object-fit: cover; object-position: center 45%; }
.demarche {
  position: relative;
  padding: 52px 42px 46px;
  background: var(--blanc);
  border-radius: var(--rayon);
  box-shadow: 0 24px 60px rgba(21, 24, 28, .10);
}
.demarche .tete-section { margin-bottom: 38px; }
.etapes { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.etape { padding: 30px 22px 28px; border: 1px solid var(--ligne); border-radius: var(--rayon); text-align: center; }
.etape .numero {
  font-size: 60px;
  font-weight: 800;
  line-height: 1;
  color: rgba(247, 148, 30, .16);
  -webkit-text-stroke: 2px var(--orange);
}
.etape h3 { margin-top: 18px; font-size: 16px; }
.etape p:not(.numero) { margin-top: 10px; font-size: 13.5px; line-height: 1.7; }

/* ---------- Avis ---------- */
.avis { padding: 30px 0 110px; }
.avis-grille { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; max-width: 900px; margin: 0 auto; }
.avis-carte {
  position: relative;
  padding: 34px 34px 30px;
  border: 1px solid var(--ligne);
  border-radius: var(--rayon);
  box-shadow: 0 12px 30px rgba(21, 24, 28, .05);
}
/* 46 px et non 38 : le SVG en ligne de la maquette occupait une ligne entière (38 px + jambage de la ligne) */
.avis-carte::before { content: ""; display: block; width: 38px; height: 46px; background: var(--o-guillemet) left top / 38px 38px no-repeat; }
/* WordPress annule la marge haute du premier enfant d'un groupe (:root :where(.is-layout-flow) > :first-child) :
   la règle doit être plus spécifique que (0,2,0) */
.avis-carte p.avis-texte { margin: 14px 0 24px; font-style: italic; font-size: 15px; line-height: 1.8; }
.auteur { display: flex; align-items: center; gap: 14px; line-height: 1.35; }
.initiales {
  display: grid;
  place-items: center;
  width: 50px;
  height: 50px;
  flex: none;
  border-radius: 50%;
  background: var(--cyan);
  color: var(--encre);
  font-size: 13px;
  font-weight: 700;
}
.auteur-nom { color: var(--encre); font-size: 15px; font-weight: 700; }
.auteur-role { font-size: 13px; }

/* ---------- Appel à échanger ---------- */
.appel { display: grid; grid-template-columns: 1fr 1fr; }
.appel-texte { padding: 76px 64px 76px var(--marge); background: var(--orange); color: var(--encre); }
.appel h2 { font-size: 30px; }
.appel .surtitre { color: var(--encre); }
.appel-texte > p:not(.surtitre) { margin-top: 12px; max-width: 460px; }
.appel .wp-block-buttons.actions { gap: 14px; margin-top: 30px; }
.appel-photo { position: relative; display: grid; place-items: center; min-height: 340px; overflow: hidden; }
.wp-block-image.appel-fond { position: absolute; inset: 0; }
.wp-block-image.appel-fond img { width: 100%; height: 100%; object-fit: cover; object-position: center 60%; }
.logo-boite {
  position: relative;
  padding: 24px 36px;
  background: rgba(255, 255, 255, .9);
  border-radius: var(--rayon);
  box-shadow: 0 18px 40px rgba(21, 24, 28, .16);
}
.logo-boite .wp-block-image { display: flex; align-items: center; justify-content: center; width: 230px; height: 107px; }
.logo-boite .wp-block-image img { width: 215px; height: auto; }

/* ---------- Réalisations (accueil) ---------- */
.realisations { padding: 76px 0 64px; background: var(--cyan); color: var(--encre); }
.realisations .conteneur { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: end; }
.realisations .surtitre { color: var(--encre); }
.realisations h2 { font-size: 30px; }
.bande-photos { display: grid; grid-template-columns: repeat(5, 1fr); }
.bande-photos .wp-block-image { position: relative; height: 320px; overflow: hidden; }
.bande-photos .wp-block-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.bande-photos .wp-block-image:hover img { transform: scale(1.05); }
.bande-photos .wp-block-image .wp-element-caption {
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 12px;
  margin: 0;
  /* hauteur commune à toutes les légendes : un titre sur deux lignes et le lieu */
  min-height: 72px;
  padding: 9px 12px;
  background: var(--blanc);
  border-radius: 4px;
  color: var(--texte);
  font-size: 12px;
  line-height: 1.4;
  text-align: left;
}
/* le titre reste en ligne : c'est le <br> de la légende qui passe à la ligne
   (en display: block, le <br> ajoutait une ligne vide sous le titre) */
.bande-photos .wp-element-caption strong { color: var(--encre); font-size: 13px; }
.realisations-suite { padding: 28px 0; text-align: center; font-size: 15px; }
.realisations-suite a { color: var(--encre); font-weight: 600; border-bottom: 2px solid var(--orange); }

/* ---------- Pied de page (template part) ---------- */
.pied { background: var(--cyan); color: var(--encre); font-size: 14px; }
.pied-haut {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  padding: 44px 0 34px;
  border-bottom: 1px solid rgba(21, 24, 28, .18);
}
.pied-marque { display: flex; align-items: center; gap: 26px; }
.pied-logo { padding: 12px 18px; background: var(--blanc); border-radius: var(--rayon); }
.wp-block-site-logo.logo-pied a { height: 56px; }
.wp-block-site-logo.logo-pied img { height: 47px; }
.pied-marque p { max-width: 300px; font-size: 15px; font-weight: 600; line-height: 1.5; }
.pied-colonnes { display: grid; grid-template-columns: 1.1fr 1fr 1fr; gap: 50px; padding: 44px 0; }
.pied h3 { margin-bottom: 16px; font-size: 16px; }
/* plus spécifique que :root :where(.is-layout-flow) > :last-child, qui annulerait la dernière marge */
.pied .pied-contact p { display: flex; gap: 12px; margin-bottom: 12px; line-height: 1.5; }
.pied-contact p::before { width: 18px; height: 18px; margin-top: 2px; }
.pied .wp-block-navigation.pied-liens { font-size: 14px; }
.pied .wp-block-navigation.pied-liens .wp-block-navigation__container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: repeat(4, auto);
  grid-auto-flow: column;
  gap: 8px 20px;
}
.pied .wp-block-navigation.pied-liens .wp-block-navigation-item__content { padding: 0; color: var(--encre); }
.pied .wp-block-navigation.pied-liens .wp-block-navigation-item__content:hover { text-decoration: underline; }
.pied-telephone { margin-bottom: 8px; font-size: 26px; font-weight: 700; line-height: 1.2; color: var(--encre); }
.pied-bas {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 18px 0;
  border-top: 1px solid rgba(21, 24, 28, .18);
  font-size: 13px;
}
.pied .wp-block-social-links.reseaux { gap: 10px; margin: 0; padding: 0; }
.pied .wp-block-social-links.reseaux .wp-social-link { display: grid; place-items: center; width: 34px; height: 34px; margin: 0; background: var(--blanc); color: var(--encre); border-radius: 50%; }
.pied .wp-block-social-links.reseaux .wp-social-link a { padding: 0; color: var(--encre); }
.pied .wp-block-social-links.reseaux .wp-social-link svg { width: 16px; height: 16px; fill: currentColor; }

/* WhatsApp toujours accessible */
.wp-block-buttons.wa-flottant { position: fixed; z-index: 60; right: 22px; bottom: 22px; }
.wp-block-button.wa-bouton .wp-block-button__link {
  display: grid;
  place-items: center;
  width: 60px;
  height: 60px;
  padding: 0;
  background: var(--cyan);
  color: var(--blanc);
  border: 3px solid var(--blanc);
  border-radius: 50%;
  box-shadow: 0 12px 30px rgba(21, 24, 28, .25);
  font-size: 0;
  line-height: 0;
}
.wp-block-button.wa-bouton .wp-block-button__link::before {
  content: "";
  width: 28px;
  height: 28px;
  background: currentColor;
  -webkit-mask: var(--m-wa) center / contain no-repeat;
  mask: var(--m-wa) center / contain no-repeat;
}

/* ---------- Pages intérieures ---------- */
.hero-page .wp-block-image.hero-photo { width: 52%; }
.hero-page .hero-contenu { padding: 175px 0 84px; }
.hero-page h1 { max-width: 560px; font-size: 40px; }
.hero-page.sans-photo { background: var(--gris); }
.hero-page.sans-photo::after { display: none; }
.ariane { margin-top: 24px; font-size: 13px; font-weight: 500; color: var(--encre); }
.ariane a { color: var(--texte); }
.ariane a:hover { color: var(--encre); }

.section { padding: 100px 0; }
.section-grise { background: var(--gris); }

/* Mission et vision */
.bande-cyan { padding: 84px 0; background: var(--cyan); color: var(--encre); }
.bande-cyan .surtitre { color: var(--encre); }
.deux-col { display: grid; grid-template-columns: 1fr 1fr; }
.deux-col > div { padding: 0 56px; }
.deux-col > div:first-child { padding-left: 0; border-right: 2px solid var(--blanc); }
.deux-col > div:last-child { padding-right: 0; }
.deux-col h2 { font-size: 26px; }
.deux-col p:not(.surtitre) { margin-top: 14px; font-size: 16px; }

/* Valeurs */
.grille-4 { grid-template-columns: repeat(4, 1fr); }

/* Équipe et moyens */
.deux-cartes { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.carte-info { padding: 38px 36px; border: 1px solid var(--ligne); border-radius: var(--rayon); box-shadow: 0 12px 30px rgba(21, 24, 28, .05); }
.carte-info h3 { font-size: 20px; }
.carte-info > p { margin-top: 10px; font-size: 14px; }
.carte-info h4 { margin: 26px 0 8px; font-size: 13px; font-weight: 600; letter-spacing: .06em; line-height: 1.75; text-transform: uppercase; color: var(--encre); }
.compteurs { display: flex; gap: 14px; margin-top: 24px; }
.compteur { flex: 1; padding: 16px 18px; background: var(--cyan); border-radius: var(--rayon); color: var(--encre); }
.compteur-valeur { font-family: var(--barlow); font-size: 44px; font-weight: 700; line-height: 1; letter-spacing: .01em; font-variant-numeric: tabular-nums; }
.compteur-label { margin-top: 6px; font-size: 13px; font-weight: 500; line-height: 1.35; }
.tableau-liste li { display: flex; justify-content: space-between; gap: 16px; padding: 9px 0; border-bottom: 1px solid var(--ligne); font-size: 14px; line-height: 1.45; }
.tableau-liste li:last-child { border-bottom: 0; }
.tableau-liste li strong { flex: none; color: var(--encre); font-weight: 600; text-align: right; }
.tableau-nombres li strong { font-family: var(--barlow); font-size: 20px; font-weight: 700; line-height: 1; letter-spacing: .01em; font-variant-numeric: tabular-nums; }

/* Références */
.references { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.reference {
  display: grid;
  place-content: center;
  min-height: 110px;
  padding: 20px;
  background: var(--blanc);
  border-radius: var(--rayon);
  box-shadow: 0 12px 30px rgba(21, 24, 28, .05);
  text-align: center;
  line-height: 1.4;
}
.reference-nom { font-weight: 600; color: var(--encre); }
.reference-detail { margin-top: 4px; font-size: 12px; font-weight: 500; }

/* Expertises (page) */
.expertise-ligne { display: grid; grid-template-columns: 1fr 1fr; gap: 76px; align-items: center; }
.expertise-ligne + .expertise-ligne { margin-top: 110px; }
.expertise-ligne.inverse .expertise-visuel { order: 2; }
.expertise-visuel { position: relative; }
.expertise-visuel::before {
  content: "";
  position: absolute;
  inset: -16px -16px 16px 16px;
  border: 2px solid var(--orange);
  border-radius: var(--rayon);
}
.expertise-ligne.inverse .expertise-visuel::before { inset: -16px 16px 16px -16px; }
.expertise-visuel::after {
  content: "";
  position: absolute;
  z-index: 2;
  left: 24px;
  bottom: -30px;
  width: 76px;
  height: 76px;
  border: 6px solid var(--blanc);
  border-radius: 50%;
  background: var(--orange) var(--icone-e) center / 30px no-repeat;
}
.expertise-ligne.inverse .expertise-visuel::after { left: auto; right: 24px; }
.expertise-visuel .wp-block-image { position: relative; }
.expertise-visuel .wp-block-image img { width: 100%; height: 400px; object-fit: cover; border-radius: var(--rayon); }
.expertise-texte h2 { font-size: 28px; }
.expertise-texte > p:not(.surtitre) { margin-top: 16px; }
.liste-coches { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 24px; margin-top: 24px; font-size: 14px; font-weight: 500; color: var(--encre); }
.liste-coches li { display: flex; gap: 10px; line-height: 1.45; }
.liste-coches li::before {
  content: "";
  width: 20px;
  height: 20px;
  flex: none;
  border-radius: 50%;
  background: var(--orange) var(--e-coche) center / 12px no-repeat;
}

/* Réalisations (page) */
.projet { display: grid; grid-template-columns: 5fr 7fr; gap: 56px; align-items: start; padding: 64px 0; border-bottom: 1px solid var(--ligne); }
.projet:first-child { padding-top: 0; }
.projet:last-child { border-bottom: 0; padding-bottom: 0; }
.projet-infos h2 { font-size: 26px; }
.projet-infos > p:not(.statut) { margin-top: 14px; }
.statut {
  display: inline-block;
  margin-bottom: 14px;
  padding: 5px 14px;
  background: var(--cyan);
  border-radius: 999px;
  color: var(--encre);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .06em;
  line-height: 1.75;
  text-transform: uppercase;
}
/* la maquette héritait de la marge basse native d'un <dl> (1 em) ; dernier enfant : spécificité > (0,2,0) */
.projet .projet-infos .projet-meta { margin-top: 24px; margin-bottom: 15px; border-top: 1px solid var(--ligne); }
.meta-ligne { display: grid; grid-template-columns: 150px 1fr; gap: 16px; padding: 11px 0; border-bottom: 1px solid var(--ligne); font-size: 14px; line-height: 1.5; }
.meta-label { font-weight: 600; color: var(--encre); }
.projet-photos { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.projet-photos .wp-block-image { aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--rayon); background: var(--gris); }
.projet-photos .wp-block-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.projet-photos .wp-block-image:hover img { transform: scale(1.05); }

/* Contact */
.contact-grille { display: grid; grid-template-columns: 7fr 5fr; gap: 30px; align-items: start; }
.formulaire { padding: 42px 40px; background: var(--blanc); border-radius: var(--rayon); box-shadow: 0 20px 50px rgba(21, 24, 28, .08); }
.formulaire h2 { font-size: 26px; }
.formulaire > p { margin-top: 8px; font-size: 14px; }
.coordonnees { padding: 42px 36px; background: var(--cyan); border-radius: var(--rayon); color: var(--encre); }
.coordonnees .surtitre { color: var(--encre); }
.coordonnees h2 { font-size: 24px; }
.coord-liste { margin-top: 24px; }
.coord { position: relative; padding: 14px 0 14px 54px; min-height: 68px; border-bottom: 1px solid rgba(21, 24, 28, .15); font-size: 14px; line-height: 1.55; }
.coord:last-child { border-bottom: 0; }
.coord::before {
  content: "";
  position: absolute;
  left: 0;
  top: 14px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--blanc) var(--icone-e) center / 18px no-repeat;
}
.coord-label { font-size: 13px; font-weight: 700; }
.coordonnees .wp-block-buttons { margin-top: 22px; }
.carte-localisation { display: block; width: 100%; height: 420px; border: 0; }

/* Formulaire Contact Form 7 : le gabarit porte les classes de la maquette */
.formulaire .wpcf7 { margin-top: 0; }
.formulaire .wpcf7-form-control-wrap { display: block; }
.champs { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 28px; }
.champ { display: flex; flex-direction: column; gap: 7px; }
.champs .plein { grid-column: 1 / -1; }
.champ label { font-size: 13px; font-weight: 600; color: var(--encre); }
.champ label small { font-weight: 400; color: var(--texte); }
.champ input, .champ select, .champ textarea {
  display: block;
  width: 100%;
  padding: 13px 14px;
  border: 1px solid #CDD1D6;
  border-radius: var(--rayon);
  background: var(--blanc);
  color: var(--encre);
  font: inherit;
  font-size: 14px;
}
.champ textarea { height: 140px; min-height: 140px; resize: vertical; } /* hauteur fixe : CF7 pose rows="6", plus haut que la maquette */
.champ input[type="file"] { padding: 11px 12px; background: var(--gris); }
.champ input:focus, .champ select:focus, .champ textarea:focus { outline: none; border-color: var(--cyan); box-shadow: 0 0 0 3px rgba(0, 174, 239, .25); }
.consentement { font-size: 13px; line-height: 1.6; }
.consentement .wpcf7-list-item { margin: 0; }
.consentement label { display: flex; gap: 12px; align-items: flex-start; }
.consentement input { width: 18px; height: 18px; margin-top: 2px; flex: none; accent-color: var(--orange); }
.consentement a { color: var(--encre); font-weight: 600; border-bottom: 2px solid var(--orange); }
.formulaire .wpcf7-submit {
  margin-top: 26px;
  padding: 14px 28px;
  border: 2px solid transparent;
  border-radius: 999px;
  background: var(--orange);
  color: var(--encre);
  font-family: var(--poppins);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .06em;
  line-height: 1.2;
  text-transform: uppercase;
  cursor: pointer;
  transition: transform .2s ease, box-shadow .2s ease;
}
.formulaire .wpcf7-submit:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(21, 24, 28, .14); }
.formulaire .wpcf7-spinner { display: none; }
.formulaire .wpcf7-not-valid-tip { margin-top: 6px; color: #B3261E; font-size: 12px; font-weight: 500; }
.formulaire .wpcf7-response-output { margin: 22px 0 0 !important; padding: 12px 16px !important; border: 0 !important; border-radius: var(--rayon); background: var(--gris); color: var(--encre); font-size: 14px; }
.formulaire .wpcf7 form.sent .wpcf7-response-output { background: rgba(0, 174, 239, .14); }
.formulaire .wpcf7 form.invalid .wpcf7-response-output, .formulaire .wpcf7 form.failed .wpcf7-response-output { background: rgba(247, 148, 30, .18); }

/* Pages légales */
.page-legale { max-width: 820px; padding: 80px 0 110px; }
.page-legale h2 { margin: 44px 0 14px; font-size: 22px; }
.page-legale h2:first-child { margin-top: 0; }
.page-legale p + p { margin-top: 12px; }
.page-legale .wp-block-list { margin-top: 10px; padding-left: 20px; list-style: disc; }
.page-legale li { margin-bottom: 6px; }
.page-legale li::marker { color: var(--orange); }
.page-legale a { color: var(--encre); font-weight: 600; border-bottom: 2px solid var(--orange); }

@media (prefers-reduced-motion: reduce) { * { animation: none !important; transition: none !important; } }

/* ---------- Téléphone et tablette ---------- */
@media (max-width: 960px) {
  h2, .apropos h2 { font-size: 26px; }
  .pourquoi h2, .appel h2, .realisations h2 { font-size: 25px; }
  .entete { top: calc(100% + 12px); padding: 10px 12px 10px 16px; }
  .wp-block-site-logo.logo a { height: 42px; }
  .wp-block-site-logo.logo img { height: 35px; }
  .entete .wp-block-buttons.entete-actions { display: none; }
  /* le panneau mobile du menu prend le relais dès 960 px, comme le burger de la maquette */
  .entete .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex !important; }
  .entete .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none !important; }
  .barre-signature { display: none; }
  .barre-haut .conteneur { justify-content: center; }
  .wp-block-image.hero-photo { width: 100%; }
  .hero::after { background: linear-gradient(180deg, rgba(255, 255, 255, .96) 0%, rgba(255, 255, 255, .9) 65%, rgba(255, 255, 255, .55) 100%); }
  .hero-contenu { padding: 130px 0 70px; }
  .hero h1 { font-size: 30px; }
  .hero p:not(.surtitre):not(.ariane) { font-size: 15px; }
  .apropos { padding: 70px 0; }
  .apropos .conteneur, .pourquoi, .appel, .realisations .conteneur, .avis-grille { grid-template-columns: 1fr; }
  .apropos .conteneur { gap: 50px; }
  .compo { height: 400px; }
  .wp-block-image.compo-portrait, .compo::before { height: 320px; width: 76%; }
  .compo::before { right: -8px; top: -8px; }
  .wp-block-image.compo-encart { width: 60%; height: 190px; }
  .compo-badge { left: auto; right: 0; bottom: 10px; }
  .pourquoi-texte, .appel-texte { padding: 64px 20px; }
  .wp-block-image.pourquoi-photo { min-height: 380px; }
  .grille-cartes, .etapes { grid-template-columns: 1fr; }
  .expertises { padding: 70px 0 120px; }
  .bandeau { flex-direction: column; align-items: flex-start; padding: 26px 22px; }
  .demarche { padding: 40px 20px 26px; }
  .engagements { padding: 100px 0 70px; }
  .avis { padding: 10px 0 70px; }
  .realisations .conteneur { gap: 16px; }
  .bande-photos { grid-template-columns: 1fr 1fr; }
  .bande-photos .wp-block-image { height: 240px; }
  .bande-photos .wp-block-image:last-child { grid-column: 1 / -1; }
  .pied-haut, .pied-marque, .pied-bas { flex-direction: column; align-items: flex-start; }
  .pied-colonnes { grid-template-columns: 1fr; gap: 34px; }

  .hero-page .wp-block-image.hero-photo { width: 100%; }
  .hero-page .hero-contenu { padding: 125px 0 56px; }
  .hero-page h1 { font-size: 30px; }
  .section { padding: 70px 0; }
  .bande-cyan { padding: 64px 0; }
  .deux-col, .deux-cartes, .expertise-ligne, .projet, .contact-grille { grid-template-columns: 1fr; }
  .deux-col { gap: 40px; }
  .deux-col > div, .deux-col > div:first-child, .deux-col > div:last-child { padding: 0; border: 0; }
  .grille-4, .references { grid-template-columns: 1fr 1fr; }
  .expertise-ligne { gap: 54px; }
  .expertise-ligne + .expertise-ligne { margin-top: 80px; }
  .expertise-ligne.inverse .expertise-visuel { order: 0; }
  .expertise-visuel .wp-block-image img { height: 280px; }
  .expertise-visuel::before, .expertise-ligne.inverse .expertise-visuel::before { inset: -10px -10px 10px 10px; }
  .projet { gap: 28px; padding: 48px 0; }
  .formulaire, .coordonnees, .carte-info { padding: 32px 22px; }
}
@media (max-width: 520px) {
  .mini-grille, .coches, .chiffres { grid-template-columns: 1fr; }
  .hero .wp-block-buttons.actions .wp-block-button, .appel .wp-block-buttons.actions .wp-block-button { width: 100%; }
  .hero .wp-block-buttons.actions .wp-block-button__link, .appel .wp-block-buttons.actions .wp-block-button__link { width: 100%; justify-content: center; }
  .bande-photos { grid-template-columns: 1fr; }
  .bande-photos .wp-block-image:last-child { grid-column: auto; }
  .grille-4, .references, .champs, .liste-coches { grid-template-columns: 1fr; }
  .compteurs { flex-direction: column; }
  .meta-ligne { grid-template-columns: 1fr; gap: 2px; }
  .formulaire .wpcf7-submit { width: 100%; }
}

/* ==========================================================================
   Palette B « Bleu profond », retenue par le client le 20 octobre 2026.
   Même contenu que la fin de site/styles.css, transposé sur le balisage
   des blocs. Placée en fin de feuille : elle ne fait que remplacer des
   couleurs, jamais la mise en page.
   ========================================================================== */
:root {
  --nuit: #0A223D;
  --profond: #0C4E87;
  --azur: #0779AE;
  --orange-fonce: #E36605;
  --degrade-bleu: linear-gradient(115deg, var(--nuit) 0%, var(--profond) 58%, var(--azur) 100%);
  --degrade-orange: linear-gradient(110deg, var(--orange-fonce) 0%, var(--orange) 100%);
}

/* Titres en bleu nuit */
h1, h2, h3, h4 { color: var(--nuit); }

/* Barre du haut */
.barre-haut { background: var(--nuit); color: var(--blanc); }
.barre-contacts p::before { background: var(--cyan); }

/* Boutons */
.wp-block-button.btn-cyan .wp-block-button__link { background: var(--profond); color: var(--blanc); }
.wp-block-button.btn-ligne .wp-block-button__link { border-color: var(--nuit); color: var(--nuit); }

/* Pastilles et icônes */
.compo-badge { background: var(--profond); color: var(--blanc); }
.mini::before { background: var(--profond); }
.carte::before { background: rgba(0, 174, 239, .12) var(--icone-p) center / 30px no-repeat; }
.expertises::before { background: rgba(0, 174, 239, .12); }
.initiales { background: var(--profond); color: var(--blanc); }
.avis-carte::before {
  background: var(--cyan);
  -webkit-mask: var(--m-guillemet) left top / 38px 38px no-repeat;
  mask: var(--m-guillemet) left top / 38px 38px no-repeat;
}

/* Bandes sombres : dégradé bleu, texte blanc, surtitres cyan */
.pourquoi { background: var(--nuit); }
.pourquoi-texte, .bande-cyan, .realisations, .coordonnees { background: var(--degrade-bleu); color: rgba(255, 255, 255, .88); }
.pourquoi h2, .bande-cyan h2, .realisations h2, .coordonnees h2 { color: var(--blanc); }
.pourquoi .surtitre, .bande-cyan .surtitre, .realisations .surtitre, .coordonnees .surtitre { color: var(--cyan); }
.coches { color: var(--blanc); }
.coches li::before { background: var(--cyan) var(--e-coche) center / 14px no-repeat; }
.chiffre { border-color: rgba(255, 255, 255, .35); }
.chiffre-label { color: rgba(255, 255, 255, .85); }
.chiffre-valeur { color: var(--cyan); }
.deux-col > div:first-child { border-right-color: rgba(255, 255, 255, .3); }
.coord { border-bottom-color: rgba(255, 255, 255, .18); }
.coord-label { color: var(--blanc); }
.coordonnees a { color: var(--blanc); }
.coord::before { background: var(--blanc) var(--icone-p) center / 18px no-repeat; }

/* Bandeau devis et appel : dégradé orange, texte blanc */
.bandeau, .appel-texte { background: var(--degrade-orange); color: var(--blanc); }
.bandeau h3, .appel h2 { color: var(--blanc); }
.appel .surtitre { color: var(--blanc); }
.appel .wp-block-button.btn-ligne .wp-block-button__link { border-color: var(--blanc); color: var(--blanc); }

/* Compteurs et statuts */
.compteur { background: var(--profond); color: var(--blanc); }
.statut { background: var(--profond); color: var(--blanc); }

/* Pied de page bleu nuit vers bleu profond */
.pied { background: linear-gradient(100deg, var(--nuit) 0%, var(--profond) 70%, var(--azur) 100%); color: rgba(255, 255, 255, .88); }
.pied h3, .pied-telephone, .pied-marque p { color: var(--blanc); }
.pied .pied-contact p::before { background: var(--cyan); }
.pied-haut, .pied-bas { border-color: rgba(255, 255, 255, .18); }
.pied .wp-block-navigation.pied-liens .wp-block-navigation-item__content { color: rgba(255, 255, 255, .88); }
.pied .wp-block-social-links.reseaux .wp-social-link,
.pied .wp-block-social-links.reseaux .wp-social-link a { color: var(--nuit); }

/* WhatsApp flottant */
.wp-block-button.wa-bouton .wp-block-button__link { background: var(--profond); }
