/*
Theme Name: BOMBAIL TP
Theme URI: https://bombail-tp.com/
Author: Agence Biznet Solution
Author URI: https://www.biznet-solution.fr
Description: Theme bloc sur mesure de BOMBAIL TP (demolition, desamiantage, depollution - Aude et Ariege).
Version: 1.1.0
Requires at least: 6.6
Requires PHP: 8.0
License: Proprietaire
Text Domain: bombail-tp
*/

:root {
  --accent: #C65C19;
  --accent-fonce: #A84A12;
  --noir: #141414;
  --texte: #2B2B2B;
  --gris: #585858;
  --trait: #E7E2DD;
  --creme: #F6F1EC;
  --blanc: #FFFFFF;
  --rayon: 12px;
  --rayon-petit: 8px;
  --largeur: 1180px;
  --section: 100px;
  --police: 'Poppins', system-ui, sans-serif;

  
  --i-pin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11.5A7 7 0 0 1 19 9.5C19 14.8 12 21 12 21Z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E");
  --i-mail: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E");
  --i-tel: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2'/%3E%3C/svg%3E");
  --i-mobile: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='6' y='2' width='12' height='20' rx='2'/%3E%3Cpath d='M11 18h2'/%3E%3C/svg%3E");
  --i-globe: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M3 12h18M12 3a14 14 0 0 1 0 18M12 3a14 14 0 0 0 0 18'/%3E%3C/svg%3E");
  --i-bouclier: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2 4 5v6c0 5 3.4 9.3 8 11 4.6-1.7 8-6 8-11V5l-8-3Z'/%3E%3Cpath d='m8.5 12 2.5 2.5 4.5-5'/%3E%3C/svg%3E");
  --i-danger: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3.5 2.5 20h19L12 3.5Z'/%3E%3Cpath d='M12 10v4.5M12 17.2v.1'/%3E%3C/svg%3E");
  --i-cuve: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cellipse cx='12' cy='5' rx='7' ry='2.5'/%3E%3Cpath d='M5 5v14c0 1.4 3.1 2.5 7 2.5s7-1.1 7-2.5V5'/%3E%3Cpath d='M10 9v9M14 9v9M10 12h4M10 15.5h4'/%3E%3C/svg%3E");
  --i-eclair: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 2 4 14h7l-1 8 9-12h-7l1-8Z'/%3E%3C/svg%3E");
  --i-hauteur: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21V9M8 13l4-4 4 4'/%3E%3Cpath d='M5 4h14'/%3E%3C/svg%3E");
  --i-flacon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 3h6M10 3v6L4.5 18.5A1.7 1.7 0 0 0 6 21h12a1.7 1.7 0 0 0 1.5-2.5L14 9V3'/%3E%3Cpath d='M7 15h10'/%3E%3C/svg%3E");
  --i-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 11 12 14 20 6'/%3E%3Cpath d='M20 12v7a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h9'/%3E%3C/svg%3E");
  --i-fleche: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14m-5-5 5 5-5 5'/%3E%3C/svg%3E");
  --i-camion: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='7' width='13' height='10' rx='1'/%3E%3Cpath d='M15 10h4l3 3v4h-7'/%3E%3Ccircle cx='6' cy='18' r='2'/%3E%3Ccircle cx='18' cy='18' r='2'/%3E%3C/svg%3E");
  --i-reseaux: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h16M4 7h16M4 17h16'/%3E%3Ccircle cx='9' cy='12' r='2'/%3E%3C/svg%3E");
}
.ico-pin { --ico: var(--i-pin); } .ico-mail { --ico: var(--i-mail); } .ico-tel { --ico: var(--i-tel); }
.ico-mobile { --ico: var(--i-mobile); } .ico-globe { --ico: var(--i-globe); } .ico-bouclier { --ico: var(--i-bouclier); }
.ico-danger { --ico: var(--i-danger); } .ico-cuve { --ico: var(--i-cuve); } .ico-eclair { --ico: var(--i-eclair); }
.ico-hauteur { --ico: var(--i-hauteur); } .ico-flacon { --ico: var(--i-flacon); } .ico-check { --ico: var(--i-check); }
.ico-camion { --ico: var(--i-camion); } .ico-reseaux { --ico: var(--i-reseaux); }


*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--police);
  font-size: 15px;
  line-height: 1.7;
  color: var(--texte);
  background: var(--blanc);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
h1, h2, h3 { font-family: var(--police); font-weight: 500; color: var(--noir); margin: 0; line-height: 1.2; letter-spacing: -0.01em; hyphens: none; text-wrap: balance; }
h2 { font-size: clamp(28px, 3.2vw, 40px); }
h3 { font-size: 18px; line-height: 1.35; }
p { margin: 0; }
figure { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
:where(.wp-block-group) > :where(*), :where(.wp-block-buttons) { margin-block: 0; }
figure.wp-block-image { margin: 0; }
.wp-block-image img { display: block; }
:root .enveloppe { width: min(var(--largeur), 100% - 48px); margin-inline: auto; }
:root .surtitre { font-size: 13px; color: var(--gris); margin-bottom: 10px; }
.intro { color: var(--gris); max-width: 560px; }
:root .tete-centree { text-align: center; max-width: 720px; margin: 0 auto 56px; }
:root .tete-centree .intro { margin: 18px auto 0; }


.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; }
.wp-block-button.bouton { display: inline-flex; }
.wp-block-button.bouton > .wp-block-button__link {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 14px 28px; border-radius: 999px; border: 1px solid transparent;
  font-family: var(--police); font-size: 14px; font-weight: 500; line-height: 1.2;
  text-decoration: none; white-space: nowrap;
  transition: background .2s, color .2s, border-color .2s, transform .2s, box-shadow .2s;
}
.wp-block-button.bouton-petit > .wp-block-button__link { padding: 10px 22px; font-size: 13px; }
.wp-block-button.bouton-plein > .wp-block-button__link { background: var(--accent); color: #fff; }
.wp-block-button.bouton-plein > .wp-block-button__link:hover { background: var(--accent-fonce); color: #fff; }
.wp-block-button.bouton-verre > .wp-block-button__link { color: #fff; border-color: rgba(255,255,255,.55); background: rgba(255,255,255,.08); backdrop-filter: blur(4px); }
.wp-block-button.bouton-verre > .wp-block-button__link:hover { background: rgba(255,255,255,.18); }
.wp-block-button.bouton-blanc > .wp-block-button__link { background: #fff; color: var(--accent); }
.wp-block-button.bouton-blanc > .wp-block-button__link:hover { background: var(--noir); color: #fff; }
.wp-block-button.bouton-contour > .wp-block-button__link { background: transparent; color: var(--noir); border-color: var(--noir); }
.wp-block-button.bouton-contour > .wp-block-button__link:hover { background: var(--noir); color: #fff; }



.coordonnees { display: grid; gap: 12px; }
.coordonnees > p { position: relative; padding-left: 29px; font-size: 13px; line-height: 1.5; }
.coordonnees > p::before { content: ""; position: absolute; left: 0; top: 1px; width: 17px; height: 17px; background: currentColor; -webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat; }

.a-pastille { position: relative; }
.a-pastille::before { content: ""; position: absolute; width: 46px; height: 46px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 6px rgba(198,92,25,.08); }
.a-pastille::after { content: ""; position: absolute; width: 20px; height: 20px; background: var(--accent); -webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat; }


.entete { position: absolute; inset: 0 0 auto; z-index: 20; color: #fff; }
.entete-ligne { display: flex; align-items: center; gap: 40px; padding: 22px 0; }
.logo { display: block; flex: none; }
.logo img, .logo .custom-logo { width: 170px; height: auto; display: block; }
:root .nav { margin-inline: auto; font-size: 14px; color: #fff; }
.nav .wp-block-navigation__container { display: flex; gap: 34px; }
.nav .wp-block-navigation-item__content { display: block; color: inherit; opacity: .85; transition: opacity .2s; text-decoration: none; padding: 0; }
.nav .wp-block-navigation-item__content:hover, .nav .actif > .wp-block-navigation-item__content { opacity: 1; }
.nav .actif > .wp-block-navigation-item__content { text-decoration: underline; text-underline-offset: 6px; text-decoration-color: var(--accent); text-decoration-thickness: 2px; }
.burger { display: none; }


.hero { position: relative; min-height: 860px; display: flex; flex-direction: column; justify-content: flex-end; color: #fff; overflow: hidden; background: #2a2018; }
:root .hero > .hero-photo { position: absolute; inset: 0; margin: 0; z-index: 0; }
.hero > .hero-photo img { width: 100%; height: 100%; object-fit: cover; object-position: var(--pos, 60% 40%); }
.pos-30-40 { --pos: 30% 40%; } .pos-50-40 { --pos: 50% 40%; } .pos-50-45 { --pos: 50% 45%; } .pos-50-60 { --pos: 50% 60%; } .pos-50-70 { --pos: 50% 70%; } .pos-30-50 { --pos: 30% 50%; }
.hero::before { content: ""; position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(90deg, rgba(20,14,8,.88) 0%, rgba(20,14,8,.66) 45%, rgba(20,14,8,.12) 78%),
              linear-gradient(180deg, rgba(20,14,8,.45) 0%, rgba(20,14,8,0) 22%, rgba(20,14,8,0) 55%, rgba(14,10,6,.92) 100%); }
.hero-contenu { position: relative; z-index: 2; padding: 200px 0 90px; }
.hero h1 { color: #fff; font-size: clamp(32px, 3.7vw, 52px); line-height: 1.14; max-width: 1000px; }
:root .hero h1 strong { display: block; font-size: .42em; font-weight: 500; letter-spacing: .02em; color: rgba(255,255,255,.85); margin-bottom: 18px; }
:root .hero-chapo { max-width: 640px; margin: 26px 0 34px; font-size: 16px; line-height: 1.7; color: #fff; text-shadow: 0 1px 12px rgba(0,0,0,.45); }
.hero-bandeau { position: relative; z-index: 2; padding: 0 0 38px; text-align: center; }
:root .hero-bandeau-titre { font-size: 13px; color: rgba(255,255,255,.75); margin-bottom: 22px; }
.labels { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 18px 30px; padding-top: 26px; border-top: 1px solid rgba(255,255,255,.18); }
.labels > .label { display: flex; align-items: center; gap: 10px; font-size: 16px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: rgba(255,255,255,.88); }
.labels > .label::before { content: ""; flex: none; width: 22px; height: 22px; background: currentColor; -webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat; }
.labels > .label.ico-qualibat::before { width: 26px; height: 27px; -webkit-mask: none; mask: none; background: url("assets/img/logo-qualibat.svg") center / contain no-repeat; border-radius: 3px; }


.pourquoi { display: grid; grid-template-columns: 1.08fr .92fr; gap: 80px; align-items: center; }
.pourquoi h2 { max-width: 520px; }
:root .pourquoi .intro { margin: 18px 0 28px; }
:root .mini-cartes { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 44px; }
.mini-carte { background: var(--creme); border-radius: var(--rayon); padding: 96px 24px 26px; }
.mini-carte.a-pastille::before { top: 28px; left: 24px; }
.mini-carte.a-pastille::after { top: 41px; left: 37px; }
:root .mini-carte h3 { font-size: 16px; margin: 0 0 10px; }
.mini-carte p { font-size: 13.5px; line-height: 1.65; color: var(--gris); }
:root .logos-habilitations { display: flex; align-items: center; gap: 10px; margin-top: 18px; }
.logos-habilitations .wp-block-image img { height: 40px; width: auto; border-radius: 4px; background: #fff; }
.pourquoi-photo { position: relative; }
.pourquoi-photo .wp-block-image img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--rayon); }
.badge-annees { position: absolute; left: -48px; bottom: 48px; width: 190px; background: var(--accent); color: #fff; border-radius: var(--rayon); padding: 22px 22px 20px; font-size: 13px; line-height: 1.45; box-shadow: 0 24px 50px -18px rgba(120,40,10,.55); }
:root .badge-annees strong { display: block; font-size: 44px; font-weight: 600; line-height: 1; margin-bottom: 8px; }


.cartes-photo { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; align-items: start; }
.carte-photo { position: relative; border-radius: var(--rayon); overflow: hidden; min-height: 540px; display: flex; flex-direction: column; justify-content: flex-end; color: #fff; background: #222; }
:root .carte-photo-decalee { margin-top: 36px; }
.carte-photo > .wp-block-image { position: absolute; inset: 0; }
.carte-photo > .wp-block-image img { width: 100%; height: 100%; object-fit: cover; object-position: var(--pos, 50% 50%); transition: transform .6s ease; }
.carte-photo:hover > .wp-block-image img { transform: scale(1.04); }
.carte-photo::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(0,0,0,0) 8%, rgba(0,0,0,.72) 42%, rgba(0,0,0,.94) 100%); }
.carte-photo-texte { position: relative; z-index: 2; padding: 30px 28px 28px; }
:root .carte-photo h3 { color: #fff; font-size: 20px; margin-bottom: 12px; }
.carte-photo p { font-size: 14px; line-height: 1.65; color: rgba(255,255,255,.95); }
:root .carte-photo p.lien-fleche { margin-top: 20px; }
.lien-fleche { font-size: 13.5px; font-weight: 500; }
.lien-fleche a { display: inline-flex; align-items: center; gap: 8px; }
.lien-fleche a::after { content: ""; width: 16px; height: 16px; background: currentColor; -webkit-mask: var(--i-fleche) center / contain no-repeat; mask: var(--i-fleche) center / contain no-repeat; transition: transform .2s; }
.lien-fleche a:hover::after { transform: translateX(4px); }


.cartes-claires { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; align-items: end; }
.carte-claire { background: var(--creme); border-radius: var(--rayon); padding: 14px 14px 28px; display: flex; flex-direction: column; overflow: hidden; }
:root .cartes-claires > .carte-claire:nth-child(2) { margin-bottom: 28px; }
:root .cartes-claires > .carte-claire:nth-child(3) { margin-bottom: 56px; }
:root .carte-claire > .wp-block-image, :root .carte-claire-visuel { margin-bottom: 22px; border-radius: var(--rayon-petit); overflow: hidden; }
.carte-claire .wp-block-image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.carte-claire-visuel { position: relative; }
.carte-claire-visuel > .badge-qualibat { position: absolute; top: 12px; right: 12px; width: 52px; z-index: 1; }
.carte-claire-visuel > .badge-qualibat img { width: 52px; aspect-ratio: auto; border-radius: 5px; box-shadow: 0 8px 20px -8px rgba(0,0,0,.5); }
:root .carte-claire > h3, :root .carte-claire > p, :root .carte-claire > .wp-block-buttons { margin-inline: 12px; }
.carte-claire h3 { font-size: 18px; }
:root .carte-claire .etiquette { font-size: 12px; font-weight: 500; color: var(--accent); margin-top: 6px; margin-bottom: 12px; }
:root .carte-claire > p:not(.etiquette) { font-size: 14px; line-height: 1.65; color: var(--gris); margin-bottom: 22px; }
:root .carte-claire > .wp-block-buttons { margin-top: auto; }
:root .parc .tete-centree { margin-bottom: 48px; }
.parc-grille { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; align-items: stretch; }
.chiffres { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.chiffre { background: var(--creme); border-radius: var(--rayon); padding: 40px 24px; text-align: center; display: grid; align-content: center; gap: 8px; }
.chiffre-valeur { font-size: clamp(34px, 3.6vw, 48px); font-weight: 500; color: var(--noir); line-height: 1; }
.chiffre-legende { font-size: 13px; color: var(--gris); }
.chiffre-large { grid-column: span 2; }
.parc-texte { display: grid; grid-template-rows: auto 1fr; gap: 24px; }
.parc-texte p { color: var(--gris); font-size: 14px; }
.parc-texte .wp-block-image img { width: 100%; height: 300px; object-fit: cover; object-position: 50% 40%; border-radius: var(--rayon); }


.faq { display: grid; grid-template-columns: 1.1fr .9fr; gap: 80px; align-items: center; }
:root .faq .intro { margin: 18px 0 34px; }
.accordeon { display: grid; gap: 14px; max-width: 560px; }
.accordeon details { border: 1px solid var(--trait); border-radius: var(--rayon-petit); background: #fff; transition: border-color .2s, box-shadow .2s; }
.accordeon details[open] { border-color: transparent; box-shadow: 0 14px 40px -20px rgba(0,0,0,.25); }
.accordeon summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 16px 20px; font-size: 13.5px; font-weight: 500; color: var(--noir); }
.accordeon summary::-webkit-details-marker { display: none; }
.accordeon summary::after { content: ""; width: 8px; height: 8px; border-right: 1.6px solid currentColor; border-bottom: 1.6px solid currentColor; transform: rotate(45deg) translateY(-3px); transition: transform .2s; flex: none; }
.accordeon details[open] summary::after { transform: rotate(-135deg); color: var(--accent); }
:root .accordeon details p { padding: 0 20px 18px; margin: 0; font-size: 14px; color: var(--gris); }
.faq-photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 40% 50%; border-radius: var(--rayon); }


.zone { display: grid; grid-template-columns: 1.15fr .85fr; gap: 72px; align-items: center; }
.zone-photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: 50% 62%; border-radius: var(--rayon); }
.zone-texte.a-pastille { padding-top: 72px; }
.zone-texte.a-pastille::before { top: 0; left: 0; }
.zone-texte.a-pastille::after { top: 13px; left: 13px; }
:root .zone-texte h2 { font-size: clamp(26px, 2.6vw, 34px); margin-bottom: 16px; }
.zone-texte > p:not(.surtitre) { color: var(--gris); font-size: 14px; }
:root .zone-colonnes { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin: 28px 0 30px; }
:root .zone-colonnes h3 { font-size: 15px; margin-bottom: 6px; }
:root .zone-sous { font-size: 12px; color: var(--gris); margin-bottom: 10px; line-height: 1.5; }
:root .zone-colonnes li { position: relative; padding-left: 16px; font-size: 13px; line-height: 1.5; margin-bottom: 8px; }
.zone-colonnes li::before { content: ""; position: absolute; left: 0; top: .55em; width: 6px; height: 6px; border-radius: 50%; background: var(--accent); }
:root .projet h2 { font-size: clamp(26px, 3vw, 38px); font-weight: 700; text-transform: uppercase; letter-spacing: .01em; margin-bottom: 48px; max-width: 820px; }
.projet-grille { display: grid; grid-template-columns: 1fr 1.05fr 1fr; gap: 36px; align-items: start; }
.projet-col .surtitre { color: var(--noir); font-weight: 500; }
:root .projet-accroche { font-size: 14px; line-height: 1.6; color: var(--gris); margin-bottom: 28px; min-height: 135px; }
.projet-photo { position: relative; }
.projet-photo .wp-block-image img { width: 100%; aspect-ratio: 4 / 3.4; object-fit: cover; border-radius: var(--rayon); }
.date-badge { position: absolute; left: 16px; bottom: 16px; display: grid; place-items: center; align-content: center; width: 64px; height: 64px; border-radius: var(--rayon-petit); background: var(--accent); color: #fff; font-size: 11px; line-height: 1.1; text-align: center; }
.date-badge strong { font-size: 22px; font-weight: 600; display: block; }
:root .projet-carte { background: var(--accent); color: #fff; border-radius: var(--rayon); padding: 14px 14px 30px; margin-top: -24px; box-shadow: 0 30px 60px -28px rgba(160,50,15,.6); }
:root .projet-carte > .wp-block-image { margin-bottom: 24px; }
.projet-carte > .wp-block-image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: 50% 30%; border-radius: var(--rayon-petit); }
:root .projet-carte > :not(.wp-block-image) { margin-inline: 14px; }
.projet-carte .surtitre { color: rgba(255,255,255,.8); }
:root .projet-carte h3 { color: #fff; font-size: 21px; margin-bottom: 18px; }
:root .projet-carte .coordonnees { margin-bottom: 26px; }


.pied { background: var(--noir); color: rgba(255,255,255,.75); padding: 90px 0 0; font-size: 13px; }
.pied-grille { display: grid; grid-template-columns: 1.3fr .7fr 1fr; gap: 60px; padding-bottom: 70px; }
:root .logo-pied { margin-bottom: 22px; }
:root .pied-marque > p { max-width: 320px; margin-bottom: 26px; }
.pied .coordonnees > p::before { background: var(--accent); }
.pied a:hover { color: #fff; }
:root .pied-titre { color: #fff; font-size: 16px; font-weight: 500; margin-bottom: 22px; }
.pied-liens ul { display: grid; gap: 12px; }
:root .pied-devis p:not(.pied-titre) { margin-bottom: 22px; }
.pied-bas { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; border-top: 1px solid rgba(255,255,255,.12); padding: 26px 0 30px; font-size: 12px; color: rgba(255,255,255,.55); }


.bande { padding: var(--section) 0; }
.bande-blanche { background: var(--blanc); }
.bande-creme { background: var(--creme); }
.bande-creme .mini-carte, .bande-creme .carte-claire, .bande-creme .chiffre { background: var(--blanc); }
.bande-sombre { background: var(--noir); color: rgba(255,255,255,.78); }
.bande-sombre h2, .bande-sombre h3 { color: #fff; }
.bande-sombre .surtitre { color: rgba(255,255,255,.6); }
.bande-sombre .chiffre { background: #232120; }
.bande-sombre .chiffre-valeur { color: var(--accent); }
.bande-sombre .chiffre-legende, .bande-sombre .parc-texte p { color: rgba(255,255,255,.75); }


.hero-page { min-height: 640px; }
.hero-page .hero-contenu { padding: 190px 0 84px; }
.hero-page h1 { font-size: clamp(30px, 3.4vw, 48px); max-width: 900px; }
.hero-court { min-height: 460px; }
.hero-court .hero-contenu { padding: 170px 0 64px; }
:root .fil-ariane { display: flex; flex-wrap: wrap; gap: 8px; font-size: 13px; color: rgba(255,255,255,.75); margin-bottom: 22px; }
:root .fil-ariane li + li::before { content: "/"; margin-right: 8px; opacity: .6; }
.fil-ariane li:last-child { color: #fff; }
.fil-ariane a:hover { color: #fff; }
:root .ancres { margin-top: 30px; gap: 10px; }
.ancres .wp-block-button > .wp-block-button__link { display: inline-block; line-height: 1.7; font-family: var(--police); text-decoration: none; padding: 9px 18px; border-radius: 999px; font-size: 13px; font-weight: 500; color: #fff; border: 1px solid rgba(255,255,255,.5); background: rgba(255,255,255,.08); transition: background .2s, border-color .2s; }
.ancres .wp-block-button > .wp-block-button__link:hover { background: var(--accent); border-color: var(--accent); }
[id] { scroll-margin-top: 24px; }
:root .tete-gauche { max-width: 760px; margin-bottom: 56px; }
:root .tete-gauche .intro { margin-top: 18px; max-width: 680px; }
.bande-sombre .intro { color: rgba(255,255,255,.75); }
:root .mt-18 { margin-top: 18px; }
:root .mt-s { margin-top: 34px; }
:root .mt-m { margin-top: 56px; }
:root .mt-l { margin-top: 72px; }
:root .mt-xl { margin-top: 88px; }


.rangee { display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: center; }
:root .rangee + .rangee { margin-top: 88px; }
.rangee-inverse > .rangee-photo { order: 2; }
.rangee-photo { position: relative; border-radius: var(--rayon); overflow: hidden; }
.rangee-photo .wp-block-image img { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; object-position: var(--pos, 50% 50%); }
.rangee-photo .etiquette-photo { position: absolute; left: 20px; bottom: 20px; background: var(--accent); color: #fff; font-size: 12px; font-weight: 500; padding: 8px 14px; border-radius: 999px; }
:root .rangee-texte h3, :root .bloc-texte h3 { font-size: clamp(21px, 2vw, 26px); margin-bottom: 16px; }
.rangee-texte p, .bloc-texte p { color: var(--gris); font-size: 15px; }
:root .rangee-texte p + p, :root .bloc-texte p + p { margin-top: 14px; }
:root .bloc-texte p + h3 { margin-top: 34px; }
.bande-sombre .rangee-texte p, .bande-sombre .bloc-texte p { color: rgba(255,255,255,.75); }
.carte-geo img { object-fit: contain !important; background: #fff; border: 1px solid var(--trait); border-radius: var(--rayon); }
:root .puces { display: grid; gap: 12px; margin-top: 18px; }
.puces li { position: relative; padding-left: 20px; font-size: 14.5px; line-height: 1.6; color: var(--texte); }
.puces li::before { content: ""; position: absolute; left: 0; top: .6em; width: 7px; height: 7px; border-radius: 50%; background: var(--accent); }
.puces strong { font-weight: 600; color: var(--noir); }
.bande-sombre .puces li { color: rgba(255,255,255,.82); }
.bande-sombre .puces strong { color: #fff; }


.grille-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 28px; }
.grille-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.carte-texte { background: var(--creme); border-radius: var(--rayon); padding: 34px 30px; }
.carte-texte.a-pastille { padding-top: 102px; }
.carte-texte.a-pastille::before { top: 34px; left: 30px; }
.carte-texte.a-pastille::after { top: 47px; left: 43px; }
.bande-creme .carte-texte { background: var(--blanc); }
.bande-sombre .carte-texte { background: #232120; }
:root .carte-texte h3 { font-size: 19px; margin-bottom: 12px; }
.carte-texte > p { font-size: 14px; color: var(--gris); }
.bande-sombre .carte-texte > p { color: rgba(255,255,255,.75); }
:root .carte-texte .role { font-size: 12px; font-weight: 500; color: var(--accent); text-transform: uppercase; letter-spacing: .06em; margin-bottom: 8px; }
:root .carte-texte .puces { margin-top: 14px; }
:root .carte-texte > .wp-block-image { margin-top: 28px; }
.carte-photo-seule { padding: 0; overflow: hidden; }
.carte-photo-seule .wp-block-image, .carte-photo-seule .wp-block-image img { width: 100%; height: 100%; object-fit: cover; }
.carte-large { display: grid; grid-template-columns: minmax(220px, 320px) 1fr; gap: 24px 48px; align-items: start; }
.carte-large.a-pastille { padding-top: 34px; }
.carte-large > :first-child { padding-top: 68px; }


.mosaique { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.mosaique .wp-block-image { position: relative; overflow: hidden; border-radius: var(--rayon-petit); }
.mosaique .wp-block-image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: #fff; }
.mosaique .contenir img { object-fit: contain; }
:root .mosaique figcaption { position: absolute; left: 10px; bottom: 10px; margin: 0; background: rgba(20,20,20,.78); color: #fff; font-size: 11.5px; line-height: 1.5; padding: 5px 10px; border-radius: 6px; }


.certifs { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 22px 48px; }
.certifs .wp-block-image img { height: 64px; width: auto; border-radius: 6px; background: #fff; }
:root .wp-block-image.certif-logo-section { margin-bottom: 22px; }
.certif-logo-section img { height: 56px; width: auto; border-radius: 6px; background: #fff; }


.cta-final { display: grid; grid-template-columns: 1.1fr .9fr; gap: 72px; align-items: center; }
:root .cta-final h2 { margin-bottom: 18px; }
:root .cta-final .wp-block-buttons { margin-top: 30px; }
.carte-orange { background: var(--accent); color: #fff; border-radius: var(--rayon); padding: 40px 36px; box-shadow: 0 30px 60px -28px rgba(160,50,15,.6); }
:root .carte-orange h3 { color: #fff; font-size: 22px; margin-bottom: 22px; }
.carte-orange .coordonnees > p { font-size: 14px; }
:root .carte-orange .wp-block-buttons { margin-top: 28px; }
:root .carte-orange .titre-horaires { margin-top: 32px; margin-bottom: 6px; }


.contact-grille { display: grid; grid-template-columns: 1.15fr .85fr; gap: 56px; align-items: start; }
.formulaire { background: var(--blanc); border-radius: var(--rayon); padding: 40px 36px; box-shadow: 0 24px 60px -34px rgba(0,0,0,.35); }
:root .formulaire h2 { font-size: clamp(24px, 2.4vw, 30px); margin-bottom: 8px; }
:root .formulaire .intro { margin-bottom: 26px; }
:root .wpcf7 form { margin: 0; }
.champs { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.champ { display: grid; gap: 6px; }
.champ-large { grid-column: span 2; }
.champ label { font-size: 13px; font-weight: 500; color: var(--noir); }
.wpcf7-form-control-wrap { display: block; }
.champ input, .champ select, .champ textarea { display: block; font: inherit; font-size: 14px; color: var(--texte); background: var(--creme); border: 1px solid transparent; border-radius: var(--rayon-petit); padding: 13px 14px; width: 100%; transition: border-color .2s, background .2s; }
.champ textarea { height: 140px; min-height: 140px; resize: vertical; }
.champ input:focus, .champ select:focus, .champ textarea:focus { outline: none; border-color: var(--accent); background: #fff; }
:root .consentement { font-size: 12.5px; color: var(--gris); margin: 18px 0 24px; }
.consentement label { display: flex; gap: 10px; align-items: flex-start; }
:root .consentement .wpcf7-list-item { margin: 0; }
:root .consentement input { margin-top: 4px; accent-color: var(--accent); }
.consentement a { text-decoration: underline; }
.bouton-envoi { display: inline-flex; align-items: center; padding: 14px 28px; border: 0; border-radius: 999px; background: var(--accent); color: #fff; font: 500 14px/1.2 var(--police); cursor: pointer; transition: background .2s, transform .2s, box-shadow .2s; }
.bouton-envoi:hover { background: var(--accent-fonce); }
.wpcf7-spinner { display: none; }
:root .wpcf7-not-valid-tip { font-size: 12px; color: #B3261E; margin-top: 4px; }
:root .wpcf7 form .wpcf7-response-output { margin: 18px 0 0; padding: 12px 16px; border-radius: var(--rayon-petit); font-size: 13px; border-color: var(--accent); }
.infos-contact { display: grid; gap: 20px; }
.carte-map { position: relative; border-radius: var(--rayon); overflow: hidden; background: #e8e2dc; }
.carte-map::before { content: "Carte Google Maps – 1300 route de Limoux, 11150 Villasavary"; position: absolute; inset: 0; display: grid; place-items: center; font-size: 14px; color: var(--gris); }
.carte-map iframe { position: relative; display: block; width: 100%; height: 440px; border: 0; }
.horaires li { display: flex; justify-content: space-between; gap: 16px; font-size: 14px; padding: 10px 0; border-bottom: 1px solid rgba(255,255,255,.25); }
.horaires li:last-child { border-bottom: 0; }


.prose { max-width: 780px; }
:root .prose h2 { font-size: 24px; margin: 40px 0 14px; }
:root .prose p { color: var(--gris); margin-bottom: 14px; }
:root .prose ul { list-style: disc; padding-left: 22px; margin-bottom: 14px; color: var(--gris); }
.a-completer { border: 2px dashed var(--trait); border-radius: var(--rayon); padding: 40px; text-align: center; color: var(--gris); }


@keyframes monter { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }
@keyframes zoom-lent { from { transform: scale(1.08); } to { transform: scale(1); } }
@keyframes fondu { from { opacity: 0; } to { opacity: 1; } }

@media (prefers-reduced-motion: no-preference) {
  .hero > .hero-photo { animation: zoom-lent 9s cubic-bezier(.2,.6,.2,1) both; }
  .hero-contenu > * { animation: monter .9s cubic-bezier(.2,.7,.2,1) both; }
  .hero-contenu > :nth-child(1) { animation-delay: .15s; }
  .hero-contenu > :nth-child(2) { animation-delay: .3s; }
  .hero-contenu > :nth-child(3) { animation-delay: .45s; }
  .hero-contenu > :nth-child(4) { animation-delay: .6s; }
  .hero-bandeau { animation: fondu 1.2s .8s both; }
  .entete { animation: fondu .8s both; }

  .a-reveler { opacity: 0; transform: translateY(28px); transition: opacity .8s cubic-bezier(.2,.7,.2,1) var(--retard, 0ms), transform .8s cubic-bezier(.2,.7,.2,1) var(--retard, 0ms); }
  .a-reveler.revele { opacity: 1; transform: none; }
  .rangee-photo.a-reveler, .pourquoi-photo.a-reveler, .faq-photo.a-reveler, .zone-photo.a-reveler { transform: translateY(28px) scale(.97); }
  .rangee-photo.revele, .pourquoi-photo.revele, .faq-photo.revele, .zone-photo.revele { transform: none; }

  .mini-carte, .carte-claire, .carte-texte, .projet-carte, .chiffre { transition: transform .35s ease, box-shadow .35s ease, opacity .8s cubic-bezier(.2,.7,.2,1) var(--retard, 0ms); }
  .mini-carte.revele:hover, .carte-claire.revele:hover, .carte-texte.revele:hover, .chiffre.revele:hover { transform: translateY(-6px); box-shadow: 0 22px 44px -26px rgba(40,20,5,.35); }
  .carte-claire .wp-block-image img, .rangee-photo .wp-block-image img, .mosaique .wp-block-image img { transition: transform .6s ease; }
  .carte-claire:hover .wp-block-image:not(.badge-qualibat) img, .mosaique .wp-block-image:hover img { transform: scale(1.03); }
  .badge-annees { transition: transform .4s ease; }
  .pourquoi-photo:hover .badge-annees { transform: translateY(-6px) rotate(-1.5deg); }
  .wp-block-button.bouton-plein > .wp-block-button__link:hover, .bouton-envoi:hover { transform: translateY(-2px); box-shadow: 0 12px 24px -12px rgba(198,92,25,.7); }
}


@media (max-width: 1080px) {
  :root { --section: 80px; }
  .nav .wp-block-navigation__container { gap: 22px; }
  .nav { font-size: 13px; }
  .entete-ligne { gap: 24px; }
  .pourquoi, .faq, .zone { gap: 48px; }
  .badge-annees { left: -24px; }
}


@media (max-width: 900px) {
  :root { --section: 64px; }
  .entete-cta { display: none; }
:root .burger { display: grid; gap: 5px; margin-left: auto; background: none; border: 0; padding: 8px; cursor: pointer; }
  .burger span { display: block; width: 24px; height: 2px; background: #fff; border-radius: 2px; transition: transform .25s, opacity .25s; }
  .nav-maquette { position: fixed; inset: 0; z-index: -1; display: flex; flex-direction: column; justify-content: center; align-items: center; font-size: 20px; background: var(--noir); opacity: 0; visibility: hidden; transition: opacity .25s, visibility .25s; }
  .nav-maquette .wp-block-navigation__container { flex-direction: column; align-items: center; gap: 26px; }
  .menu-ouvert .nav-maquette { opacity: 1; visibility: visible; }
  .menu-ouvert .burger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .menu-ouvert .burger span:nth-child(2) { opacity: 0; }
  .menu-ouvert .burger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .hero { min-height: 0; }
  .hero-contenu { padding: 150px 0 60px; }
  .labels { justify-content: center; }
  .labels > .label { font-size: 13px; }
  .pourquoi, .faq, .zone, .parc-grille { grid-template-columns: 1fr; }
:root .pourquoi-photo { max-width: 520px; margin-left: 24px; }
:root .mini-cartes { margin-top: 40px; }
:root .cartes-photo, :root .cartes-claires { grid-template-columns: 1fr; max-width: 520px; margin-inline: auto; }
  .carte-photo { min-height: 480px; }
:root .carte-photo-decalee { margin-top: 0; }
:root .cartes-claires > .carte-claire:nth-child(n) { margin-bottom: 0; }
  .zone-photo { order: -1; }
  .projet-grille { grid-template-columns: 1fr; max-width: 520px; }
:root .projet-carte { margin-top: 0; }
  .projet-accroche { min-height: 0; }
  .pied-grille { grid-template-columns: 1fr; gap: 40px; }
  .hero-page { min-height: 0; }
  .hero-page .hero-contenu { padding: 140px 0 56px; }
  .rangee, .cta-final, .contact-grille, .grille-2, .grille-3 { grid-template-columns: 1fr; gap: 32px; }
:root .rangee + .rangee { margin-top: 64px; }
  .rangee-inverse > .rangee-photo { order: 0; }
  .carte-large { grid-template-columns: 1fr; }
:root .tete-gauche { margin-bottom: 36px; }
}

@media (max-width: 560px) {
  .enveloppe { width: calc(100% - 32px); }
  .logo img, .logo .custom-logo { width: 140px; }
  .mini-cartes, .zone-colonnes { grid-template-columns: 1fr; }
  .chiffres { grid-template-columns: 1fr 1fr; gap: 12px; }
  .chiffre { padding: 28px 12px; }
:root .pourquoi-photo { margin-left: 16px; }
  .badge-annees { left: -16px; bottom: 24px; width: 160px; padding: 16px; }
  .badge-annees strong { font-size: 34px; }
  .hero-bandeau-titre { padding-inline: 16px; }
  .labels { gap: 14px 22px; }
  .wp-block-button.bouton > .wp-block-button__link { white-space: normal; text-align: center; }
  .champs { grid-template-columns: 1fr; }
  .champ-large { grid-column: auto; }
  .formulaire, .carte-orange, .carte-texte { padding: 28px 22px; }
  .carte-texte.a-pastille { padding-top: 96px; }
  .carte-texte.a-pastille::before { top: 28px; left: 22px; }
  .carte-texte.a-pastille::after { top: 41px; left: 35px; }
  .mosaique { gap: 10px; }
  .certifs .wp-block-image img { height: 48px; }
  .carte-map iframe { height: 320px; }
}

/* ==========================================================================
   Adaptations WordPress (thème uniquement)
   Le CSS des blocs est imprimé APRÈS cette feuille : les surcharges sont plus
   spécifiques, jamais simplement plus tardives.
   ========================================================================== */
.wp-site-blocks { padding: 0; }
.wp-site-blocks > * { margin-block: 0; }
main.wp-block-post-content > * { margin-block: 0; }
body.admin-bar .entete { top: 32px; }
@media (max-width: 782px) { body.admin-bar .entete { top: 46px; } }

/* Logo (bloc Logo du site) */
.entete .wp-block-site-logo.logo img, .pied .wp-block-site-logo.logo img { width: 170px !important; height: auto; }

/* Menu (bloc Navigation) */
.entete .wp-block-navigation.nav { margin-inline: auto; font-size: 14px; color: #fff; }
.entete .wp-block-navigation.nav .wp-block-navigation__container { gap: 34px; }
.entete .wp-block-navigation.nav .wp-block-navigation-item__content { color: #fff; }
.entete .wp-block-navigation.nav .wp-block-navigation__responsive-container-open { color: #fff; }
.wp-block-navigation.nav .wp-block-navigation__responsive-container.is-menu-open {
  background-color: rgba(20, 20, 20, .985) !important;
  color: #fff !important;
  padding: 28px 24px;
}
.wp-block-navigation.nav .is-menu-open .wp-block-navigation__responsive-container-close { color: #fff; }
.wp-block-navigation.nav .is-menu-open .wp-block-navigation__responsive-container-content { align-items: center !important; justify-content: center; width: 100%; padding-top: 48px; }
.wp-block-navigation.nav .is-menu-open .wp-block-navigation__container { flex-direction: column; align-items: center !important; width: 100%; gap: 26px; }
.wp-block-navigation.nav .is-menu-open .wp-block-navigation-item { justify-content: center; }
.wp-block-navigation.nav .is-menu-open .wp-block-navigation-item__content { font-size: 20px; opacity: 1; }
@media (max-width: 1080px) {
  .entete .wp-block-navigation.nav { font-size: 13px; }
  .entete .wp-block-navigation.nav .wp-block-navigation__container { gap: 22px; }
}
/* Le menu bascule en burger jusqu'à 900 px (le bloc ne le fait seul qu'en dessous de 600 px) */
@media (max-width: 900px) {
  .entete .wp-block-navigation.nav { margin-inline: auto 0; }
  .entete .wp-block-navigation.nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
  .entete .wp-block-navigation.nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
  .entete .wp-block-site-logo.logo img { width: 140px !important; }
  .entete .wp-block-buttons.entete-cta { display: none; }
}

/* Boutons : le style global de bouton ne doit pas déborder sur les composants */
.wp-block-button.bouton > .wp-block-button__link.wp-element-button { font-family: var(--police); }

/* Accordéon (bloc Détails) */
.accordeon .wp-block-details { margin: 0; }
.accordeon .wp-block-details summary { margin: 0; }

/* Carte Google (bloc HTML personnalisé) */
.carte-map > * { margin: 0; }
