/*
Theme Name: Assistance Vitrerie
Theme URI: https://assistance-vitrier.com/
Author: AFHM — Assistance Vitrerie
Description: Thème bloc sur mesure (méthode claude-to-wordpress) : maquette validée le 27/09/2026, contenu en blocs natifs modifiables dans l'éditeur.
Version: 1.2.2
Requires at least: 6.6
Tested up to: 7.0
Requires PHP: 8.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: assistance-vitrerie
Tags: block-theme, full-site-editing, business
*/

/* ===== 1. Feuille de la maquette (site/assets/css/styles.css) ===== */
/* ==========================================================================
   Assistance Vitrerie — maquette de l'accueil (phase 2, méthode claude-to-wordpress)
   Registre relevé sur la référence : sans-serif géométrique (1 famille), marine + rouge,
   fonds blancs froids, bandes pleine largeur, diagonale du héros, titres bicolores.
   ========================================================================== */

:root {
  --marine: #042361;      /* bandes, en-tête, pied (relevé : mode du pied de page) */
  --marine-2: #142a62;    /* boutons (relevé : bouton du héros) */
  --encre: #0c1b4d;       /* titres */
  --rouge: #cf0d14;       /* accents (relevé : bande d'appel) */
  --rouge-2: #b00a10;
  --bleu-filet: #7a8bc6;  /* filet de la diagonale (relevé : #7887c5) */
  --brume: #f6f7ff;       /* fond clair froid (relevé : héros) */
  --brume-2: #f8f9fd;     /* fond « à propos » (relevé) */
  --gris-carte: #eef1f7;
  --blanc: #fff;
  --texte: #686e80;
  --texte-clair: #7a8093;
  --trait: #e3e7f1;
  --or: #f5b301;
  --conteneur: 1180px;
  --ombre: 0 14px 40px rgba(12, 27, 77, .08);
  --police: 'Poppins', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; font-family: var(--police); font-size: 15px; line-height: 1.75;
  color: var(--texte); background: var(--blanc); -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
ul, ol { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, h4 { color: var(--encre); font-weight: 700; line-height: 1.2; margin: 0; }
p { margin: 0 0 1em; }
button { font: inherit; cursor: pointer; }
sup { font-size: .6em; vertical-align: super; line-height: 0; }
.sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.ic { width: 1em; height: 1em; flex: none; }
.rouge { color: var(--rouge); }
.nowrap { white-space: nowrap; }
.conteneur { width: min(var(--conteneur), 100% - 32px); margin-inline: auto; }
.evitement { position: absolute; left: -999px; top: 8px; z-index: 100; background: #fff; color: var(--encre); padding: 8px 14px; }
.evitement:focus { left: 8px; }
:focus-visible { outline: 3px solid var(--rouge); outline-offset: 3px; }

.surtitre {
  display: inline-block; font-size: 13px; font-weight: 500; letter-spacing: .06em;
  text-transform: uppercase; color: var(--rouge); margin-bottom: 10px; line-height: 1.4;
}
.surtitre--clair { color: #fff; opacity: .85; }
.titre-section { font-size: clamp(28px, 2.9vw, 40px); text-wrap: balance; }

/* ---------- boutons ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  font-weight: 600; font-size: 15px; line-height: 1; padding: 18px 30px;
  border-radius: 999px; border: 1.5px solid transparent;
  transition: background-color .25s, color .25s, border-color .25s, transform .25s;
}
.btn .ic { font-size: 18px; }
.btn--marine { background: var(--marine-2); color: #fff; }
.btn--marine:hover { background: var(--rouge); }
.btn--contour { border-color: var(--marine-2); color: var(--marine-2); }
.btn--contour:hover { background: var(--marine-2); color: #fff; }
.btn--blanc { border-color: rgba(255, 255, 255, .85); color: #fff; }
.btn--blanc:hover { background: #fff; color: var(--rouge); }
.btn:active { transform: translateY(1px); }

/* ---------- barre du haut ---------- */
.barre-haut { background: var(--marine); color: #dfe5f5; font-size: 13.5px; }
.barre-haut__in { display: flex; justify-content: space-between; align-items: stretch; min-height: 46px; }
.barre-haut__infos { display: flex; align-items: center; }
.barre-haut__infos li { display: flex; align-items: center; gap: 8px; padding-right: 18px; }
.barre-haut__infos li + li { padding-left: 18px; border-left: 1px solid rgba(255, 255, 255, .18); }
.barre-haut__infos .ic { font-size: 16px; color: #fff; }
.barre-haut__infos a:hover { color: #fff; }
.barre-haut__droite { display: flex; align-items: stretch; }
.carre { display: grid; place-items: center; width: 46px; background: #0a3a8c; color: #fff; transition: background-color .25s; }
.carre .ic { font-size: 17px; }
.carre:hover { background: var(--rouge); }
.carre--rouge { background: var(--rouge); }
.carre--rouge:hover { background: var(--rouge-2); }
.barre-haut__tel { display: flex; align-items: center; gap: 8px; padding-left: 22px; }
.barre-haut__tel strong { color: #fff; font-weight: 600; }

/* ---------- en-tête ---------- */
.entete { background: var(--marine); border-bottom: 3px solid var(--rouge); position: relative; z-index: 20; }
.entete__in { display: flex; align-items: stretch; min-height: 88px; }
.logo { display: flex; align-items: center; padding: 14px 34px 14px 0; flex: none; }
.logo img { width: 330px; height: auto; }
.burger { display: none; }
.menu {
  flex: 1; display: flex; align-items: center; justify-content: space-between; gap: 18px;
  background: #fff; padding: 0 24px 0 34px; margin-bottom: -3px; box-shadow: 0 10px 30px rgba(4, 35, 97, .08);
}
.menu__liste { display: flex; align-items: center; gap: 26px; }
.menu__lien {
  display: inline-flex; align-items: center; gap: 4px; padding: 30px 0; background: none; border: 0;
  font-size: 15px; font-weight: 500; color: var(--encre); transition: color .2s; position: relative; white-space: nowrap;
}
.menu__lien:hover, .menu__lien.est-actif { color: var(--rouge); }
.menu__lien .chevron { font-size: 16px; }
.a-sous-menu { position: relative; }
.sous-menu {
  position: absolute; top: 100%; left: -20px; min-width: 240px; background: #fff; padding: 12px 0;
  border-top: 3px solid var(--rouge); box-shadow: var(--ombre); display: grid;
  opacity: 0; visibility: hidden; transform: translateY(10px); transition: .25s;
}
.sous-menu--large { grid-template-columns: repeat(3, 230px); left: -180px; padding: 16px 8px; }
.sous-menu a { padding: 8px 20px; font-size: 14px; color: var(--encre); line-height: 1.4; }
.sous-menu a:hover { color: var(--rouge); }
.a-sous-menu:hover .sous-menu, .a-sous-menu:focus-within .sous-menu, .a-sous-menu.est-ouvert .sous-menu {
  opacity: 1; visibility: visible; transform: none;
}
.menu__actions { display: flex; align-items: center; gap: 12px; }
.rond {
  display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%;
  background: #eef1f8; color: var(--encre); transition: .25s;
}
.rond .ic { font-size: 17px; }
.rond:hover { background: var(--rouge); color: #fff; }
.rond--marine { background: var(--marine-2); color: #fff; }
.btn-devis {
  margin-left: 10px; padding: 13px 22px; border: 1.5px dashed var(--rouge); color: var(--rouge);
  font-size: 14.5px; font-weight: 500; white-space: nowrap; transition: .25s;
}
.btn-devis:hover { background: var(--rouge); color: #fff; border-style: solid; }

/* ---------- héros ---------- */
.heros { position: relative; background: var(--brume); overflow: hidden; }
.heros__fissure {
  position: absolute; left: -70px; top: 30px; width: 460px; height: 460px;
  color: var(--encre); opacity: .06; pointer-events: none;
}
.heros__in { position: relative; z-index: 3; display: flex; align-items: center; min-height: 660px; padding: 80px 0 100px; }
.heros__texte { max-width: 560px; }
.heros h1 {
  font-size: clamp(38px, 4.3vw, 62px); line-height: 1.12; letter-spacing: -.012em;
  margin: 2px 0 22px; hyphens: none; text-wrap: balance;
}
.heros__intro { max-width: 470px; font-size: 16px; margin-bottom: 34px; }
.heros__actions { display: flex; flex-wrap: wrap; gap: 14px; }
.heros__note { display: inline-flex; align-items: center; gap: 10px; margin-top: 26px; font-size: 14px; color: var(--encre); }
.heros__note strong { font-weight: 700; }
.etoiles { display: inline-flex; gap: 2px; color: var(--or); }
.etoiles svg { width: 16px; height: 16px; }

.heros__visuel { position: absolute; top: 0; right: 0; bottom: 0; width: 55%; z-index: 2; }
.heros__photo {
  position: absolute; inset: 0; overflow: hidden;
  clip-path: polygon(38% 0, 100% 0, 100% 100%, 8% 100%);
}
.heros__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 62% 28%; }
.heros__photo::after {
  content: ''; position: absolute; inset: -10%;
  background: linear-gradient(100deg, transparent 38%, rgba(255, 255, 255, .5) 48%, rgba(255, 255, 255, .14) 52%, transparent 62%);
  transform: translateX(-110%); pointer-events: none;
}
.heros__filets { position: absolute; inset: 0; width: 100%; height: 100%; }
.f-blanc { fill: #fff; }
.f-bleu { fill: var(--bleu-filet); }
.f-rouge, .f-rouge2 { fill: var(--rouge); }

/* ---------- processus ---------- */
.processus { padding: 110px 0 100px; text-align: center; }
.etapes { display: grid; grid-template-columns: repeat(4, 1fr); gap: 34px; margin-top: 64px; counter-reset: etape; }
.etape { position: relative; }
.etape:not(:last-child)::after {
  content: ''; position: absolute; top: 58px; right: -52px; width: 70px; height: 26px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 70 26'%3E%3Cpath d='M2 16C18 4 44 4 62 14' fill='none' stroke='%230c1b4d' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M55 7l8 7-10 3' fill='none' stroke='%230c1b4d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / contain;
}
.etape__cercle {
  position: relative; width: 142px; height: 142px; margin: 0 auto 28px; border-radius: 50%;
  border: 2px dashed #d5dbea; display: grid; place-items: center; background: #fff;
  box-shadow: inset 0 0 0 10px #fff, inset 0 0 0 11px #f0f2f9;
  transition: border-color .3s, transform .3s;
}
.etape:hover .etape__cercle { border-color: var(--rouge); transform: translateY(-4px); }
.etape__ic { width: 56px; height: 56px; color: var(--encre); }
.etape__num {
  position: absolute; right: -8px; top: 50%; transform: translateY(-50%);
  width: 34px; height: 34px; border-radius: 50%; background: var(--marine-2); color: #fff;
  display: grid; place-items: center; font-size: 12.5px; font-weight: 600; box-shadow: 0 0 0 5px #fff;
}
.etape__num .ic { font-size: 34px; color: var(--marine-2); }
.etape__num--fin { background: #fff; }
.etape h3 { font-size: 19px; font-weight: 600; margin-bottom: 10px; }
.etape p { font-size: 14px; line-height: 1.7; color: var(--texte-clair); max-width: 250px; margin: 0 auto; }

/* ---------- à propos ---------- */
.apropos { position: relative; background: var(--brume-2); padding: 120px 0 130px; overflow: hidden; }
.apropos::before {
  content: ''; position: absolute; left: 50%; top: 50%; width: 2400px; height: 2400px; translate: -50% -50%;
  background: repeating-conic-gradient(from 0deg, rgba(12, 27, 77, .028) 0deg 3deg, transparent 3deg 10deg);
  -webkit-mask: radial-gradient(circle, #000 0, transparent 62%); mask: radial-gradient(circle, #000 0, transparent 62%);
  pointer-events: none;
}
.apropos__in { position: relative; display: grid; grid-template-columns: 1fr 1.05fr; gap: 80px; align-items: center; }
.apropos__visuels { position: relative; padding: 0 70px 70px 0; }
.apropos__photo { border-radius: 70px 0 0 0; overflow: hidden; box-shadow: var(--ombre); }
.apropos__photo img { width: 100%; aspect-ratio: 760 / 900; object-fit: cover; }
.apropos__detail {
  position: absolute; right: 0; bottom: 0; width: 50%; border: 10px solid #fff;
  border-radius: 0 0 40px 0; overflow: hidden; box-shadow: var(--ombre);
}
.apropos__detail img { width: 100%; aspect-ratio: 560 / 640; object-fit: cover; }
.apropos__badge {
  position: absolute; top: 0; right: 20px; background: var(--marine); color: #fff; text-align: center;
  padding: 26px 22px 22px; border-radius: 0 34px 0 0; box-shadow: var(--ombre);
}
.apropos__badge strong { display: block; font-size: 34px; line-height: 1; font-weight: 700; }
.apropos__badge > span { display: block; margin-top: 8px; font-size: 11.5px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.apropos__texte p { margin: 22px 0 26px; }
.coches { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 24px; margin-bottom: 30px; }
.coches li { display: flex; align-items: center; gap: 10px; color: var(--encre); font-weight: 500; }
.coches .ic { font-size: 20px; color: var(--rouge); }
.jauge { margin-bottom: 38px; }
.jauge__tete { display: flex; justify-content: space-between; color: var(--encre); font-weight: 500; font-size: 14.5px; margin-bottom: 10px; }
.jauge__piste { height: 6px; background: var(--trait); border-radius: 6px; overflow: hidden; }
.jauge__plein { display: block; height: 100%; width: var(--v); background: var(--rouge); border-radius: 6px; transform-origin: left; }
.apropos__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 28px; }
.contact-direct { display: flex; align-items: center; gap: 14px; }
.contact-direct__ic { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: var(--rouge); color: #fff; font-size: 20px; }
.contact-direct small { display: block; font-size: 13px; color: var(--texte); line-height: 1.3; }
.contact-direct strong { display: block; color: var(--encre); font-size: 19px; line-height: 1.3; }

/* ---------- services ---------- */
.services { padding: 110px 0 90px; }
.services__tete { display: flex; justify-content: space-between; align-items: flex-end; gap: 30px; margin-bottom: 50px; }
.fleches { display: flex; gap: 10px; }
.fleches__btn {
  width: 46px; height: 46px; border-radius: 50%; border: 0; background: var(--marine-2); color: #fff;
  display: grid; place-items: center; transition: background-color .25s;
}
.fleches__btn .ic { font-size: 19px; }
.fleches__btn:hover { background: var(--rouge); }
.fleches__pause { background: #fff; color: var(--marine-2); box-shadow: inset 0 0 0 1.5px var(--marine-2); }
.fleches__pause:hover { background: var(--marine-2); color: #fff; }
.fleches__pause .ic-lecture, .fleches__pause.est-en-pause .ic-pause { display: none; }
.fleches__pause.est-en-pause .ic-lecture { display: block; }
.services__piste {
  display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 60px) / 3); gap: 30px;
  overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 6px 4px 40px; margin: -6px -4px 0;
}
.services__piste::-webkit-scrollbar { display: none; }
.carte-service { scroll-snap-align: start; background: #fff; border-radius: 6px; box-shadow: var(--ombre); transition: transform .35s, box-shadow .35s; }
.carte-service:hover { transform: translateY(-6px); box-shadow: 0 22px 50px rgba(12, 27, 77, .14); }
.carte-service a { display: block; }
.carte-service__img { position: relative; display: block; border-radius: 6px 6px 0 0; }
.carte-service__img img { width: 100%; aspect-ratio: 600 / 640; object-fit: cover; border-radius: 6px 6px 0 0; }
.carte-service__ic {
  position: absolute; left: 18px; top: 18px; width: 62px; height: 62px; display: grid; place-items: center;
  background: var(--marine); border-radius: 4px; color: #fff;
}
.carte-service__ic svg { width: 36px; height: 36px; color: #fff; }
.carte-service__go {
  position: absolute; right: 22px; bottom: -22px; width: 44px; height: 44px; border-radius: 50%;
  background: var(--rouge); color: #fff; display: grid; place-items: center; box-shadow: 0 0 0 5px #fff; transition: transform .3s;
}
.carte-service:hover .carte-service__go { transform: rotate(-45deg); }
.carte-service h3 { font-size: 18px; font-weight: 600; padding: 30px 26px 28px; transition: color .25s; }
.carte-service:hover h3 { color: var(--rouge); }

/* ---------- zones ---------- */
.zones { background: var(--brume); padding: 110px 0; }
.zones__in { display: grid; grid-template-columns: 1fr 1.25fr; grid-template-rows: auto 1fr; gap: 30px 70px; }
.zones__deps { align-self: start; }
.zones__tete { grid-row: 1 / 3; align-self: start; }
.zones__carte { margin-top: 44px; }
.carte-idf { width: 100%; height: auto; overflow: visible; }
.carte-idf__dep path { fill: #dde3f0; stroke: #fff; stroke-width: 2.5; stroke-linejoin: round; transition: fill .25s; }
.carte-idf__dep--75 path { fill: var(--rouge); }
.carte-idf__dep:hover path, .carte-idf__dep:focus path { fill: var(--marine-2); }
.carte-idf__dep--75:hover path { fill: var(--rouge-2); }
.carte-idf__num { font: 600 15px var(--police); fill: var(--encre); text-anchor: middle; pointer-events: none; }
.carte-idf__num--75 { fill: #fff; font-size: 12px; }
.carte-idf__num--92, .carte-idf__num--93, .carte-idf__num--94 { font-size: 13px; }
.zones__tete p { margin: 20px 0 32px; }
.zones__paris { background: #fff; border-radius: 6px; padding: 32px 34px; box-shadow: var(--ombre); }
.zones__paris h3 { font-size: 20px; margin-bottom: 18px; display: flex; align-items: center; gap: 10px; }
.zones__paris h3 span, .dep {
  display: inline-grid; place-items: center; min-width: 40px; height: 30px; padding: 0 6px; border-radius: 4px;
  background: var(--marine); color: #fff; font-size: 13px; font-weight: 600;
}
.pastilles { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; }
.pastilles a {
  display: flex; align-items: center; justify-content: center; height: 44px; border: 1px solid var(--trait); border-radius: 4px;
  font-weight: 600; color: var(--encre); font-size: 14.5px; transition: .2s;
}
.pastilles a:hover { background: var(--rouge); border-color: var(--rouge); color: #fff; }
.zones__deps { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 14px; }
.zones__deps a {
  display: flex; align-items: center; gap: 14px; background: #fff; border-radius: 4px; padding: 12px 16px;
  color: var(--encre); font-weight: 500; font-size: 14.5px; box-shadow: 0 6px 18px rgba(12, 27, 77, .05); transition: .2s;
}
.zones__deps a .ic { margin-left: auto; color: var(--rouge); font-size: 17px; transition: transform .2s; }
.zones__deps a:hover { color: var(--rouge); }
.zones__deps a:hover .ic { transform: translateX(4px); }

/* ---------- FAQ ---------- */
.faq { padding: 120px 0 170px; position: relative; overflow: hidden; }
.faq__technicien { position: absolute; right: -118px; bottom: 96px; width: 270px; height: auto; pointer-events: none; filter: drop-shadow(0 18px 30px rgba(12, 27, 77, .18)); }
.faq__in { display: grid; grid-template-columns: .85fr 1.15fr; gap: 80px; align-items: start; }
.faq__intro p { margin: 22px 0 32px; }
.faq__item { border: 1px solid var(--trait); margin-bottom: 14px; background: #fff; }
.faq__item summary {
  list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 16px;
  padding: 17px 24px; color: var(--encre); font-weight: 600; font-size: 15.5px; line-height: 1.45; transition: .25s;
}
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary::after {
  content: ''; flex: none; width: 26px; height: 26px; border-radius: 50%;
  background: #eef1f8 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 7v10M7 12h10' stroke='%23cf0d14' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center / 16px;
  transition: transform .3s;
}
.faq__item[open] summary { background: var(--marine); color: #fff; }
.faq__item[open] summary::after {
  transform: rotate(45deg);
  background-color: rgba(255, 255, 255, .14);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 7v10M7 12h10' stroke='%23fff' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E");
}
.faq__rep { padding: 20px 24px 6px; font-size: 14.5px; }

/* ---------- bandeau d'appel (WhatsApp) ---------- */
.appel { position: relative; z-index: 3; margin-bottom: -76px; margin-top: -110px; }
.appel__bande {
  display: grid; grid-template-columns: 270px 1fr auto; align-items: center; gap: 34px;
  background: var(--rouge); color: #fff; border-radius: 0 70px 0 0; overflow: hidden; min-height: 152px;
  box-shadow: 0 24px 50px rgba(207, 13, 20, .22); padding-right: 44px;
}
.appel__photo { align-self: stretch; clip-path: polygon(0 0, 100% 0, 86% 100%, 0 100%); }
.appel__photo img { width: 100%; height: 100%; object-fit: cover; }
.appel__texte h2 { color: #fff; font-size: clamp(22px, 2vw, 28px); margin-bottom: 6px; text-wrap: balance; }
.appel__texte p { margin: 0; color: #ffe1e2; font-size: 14.5px; }
.appel__actions { display: flex; flex-direction: column; align-items: center; gap: 10px; }
.appel__tel { color: #fff; font-weight: 700; font-size: 18px; letter-spacing: .02em; }

/* ---------- avis ---------- */
.avis {
  position: relative; background: var(--marine); color: #c9d2ec; padding: 170px 0 110px;
  margin-right: 4vw; border-radius: 0 0 110px 0;
}
.avis__in { display: grid; grid-template-columns: .9fr 1.1fr; gap: 80px; align-items: center; }
.avis__photo { position: relative; }
.avis__photo img { width: 100%; aspect-ratio: 760 / 660; object-fit: cover; border-radius: 6px; }
.avis__note {
  position: absolute; left: 30px; bottom: -26px; display: flex; align-items: center; gap: 14px;
  background: var(--rouge); color: #fff; padding: 12px 22px; border-radius: 4px; box-shadow: 0 14px 30px rgba(0, 0, 0, .25);
}
.avis__note strong { font-size: 30px; line-height: 1; padding-right: 14px; border-right: 1px solid rgba(255, 255, 255, .4); }
.avis__note span { font-size: 12px; line-height: 1.35; font-weight: 500; text-transform: uppercase; letter-spacing: .04em; }
.avis__slides { display: grid; }
.avis__slide { grid-area: 1 / 1; margin: 0; opacity: 0; visibility: hidden; transform: translateX(24px); transition: opacity .5s, transform .5s, visibility .5s; }
.avis__slide.est-visible { opacity: 1; visibility: visible; transform: none; }
.avis__slide blockquote { margin: 0; }
.avis__titre { color: #fff; font-size: clamp(22px, 2.2vw, 30px); font-weight: 600; line-height: 1.3; margin: 4px 0 18px; }
.avis__slide blockquote p:last-child { font-size: 16px; line-height: 1.8; }
.avis__slide figcaption { display: flex; align-items: center; gap: 14px; margin-top: 30px; }
.avis__init { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: #1d3a7e; color: #fff; font-weight: 600; font-size: 15px; }
.avis__slide figcaption strong { display: block; color: #fff; font-size: 16px; line-height: 1.3; }
.avis__slide figcaption small { display: block; font-size: 13px; }
.avis__g { margin-left: auto; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: #fff; color: var(--marine); font-size: 18px; }
.avis__pied { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 38px; padding-top: 26px; border-top: 1px solid rgba(255, 255, 255, .12); }
.points { display: flex; gap: 8px; }
.points button { width: 10px; height: 10px; border-radius: 10px; border: 0; padding: 0; background: rgba(255, 255, 255, .3); transition: .3s; }
.points button.est-actif { width: 30px; background: var(--rouge); }
.avis__tous { display: inline-flex; align-items: center; gap: 8px; color: #fff; font-weight: 500; font-size: 14.5px; }
.avis__tous:hover { color: #ff7d82; }

/* ---------- blog ---------- */
section.blog { padding: 120px 0 110px; text-align: center; }
.blog__grille { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; margin-top: 56px; text-align: left; }
.carte-article { background: #fff; border-radius: 6px; box-shadow: var(--ombre); overflow: hidden; transition: transform .35s, box-shadow .35s; }
.carte-article:hover { transform: translateY(-6px); box-shadow: 0 22px 50px rgba(12, 27, 77, .14); }
.carte-article a { display: block; height: 100%; }
.carte-article__img { position: relative; display: block; }
.carte-article__img img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.etiquette {
  position: absolute; left: 24px; bottom: -15px; background: var(--marine); color: #fff; font-size: 12.5px; font-weight: 500;
  padding: 6px 16px; border-radius: 999px; line-height: 1.5;
}
.carte-article__corps { display: block; padding: 34px 26px 28px; }
.carte-article h3 { font-size: 18px; font-weight: 600; line-height: 1.45; margin-bottom: 18px; transition: color .25s; }
.carte-article:hover h3 { color: var(--rouge); }
.lire { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 500; color: var(--encre); }

/* ---------- contact + carte ---------- */
.contact { background: var(--gris-carte); padding: 100px 0 170px; }
.contact__in { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; align-items: stretch; }
.formulaire { background: #fff; padding: 44px 44px 40px; border-radius: 6px; box-shadow: var(--ombre); }
.formulaire h2 { font-size: 28px; margin-bottom: 26px; }
.formulaire__grille { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.formulaire label { display: flex; flex-direction: column; gap: 6px; font-size: 13.5px; font-weight: 500; color: var(--encre); }
.formulaire .pleine { grid-column: 1 / -1; }
.formulaire input, .formulaire select, .formulaire textarea {
  font: inherit; font-size: 15px; font-weight: 400; color: var(--encre); background: var(--brume);
  border: 1px solid var(--trait); border-radius: 4px; padding: 12px 14px; width: 100%;
}
.formulaire textarea { resize: vertical; min-height: 110px; }
.formulaire input:focus, .formulaire select:focus, .formulaire textarea:focus { outline: 2px solid var(--marine-2); outline-offset: 0; background: #fff; }
.formulaire .fichier input { padding: 9px 12px; font-size: 14px; }
.formulaire .consentement { display: grid; grid-template-columns: 18px 1fr; align-items: start; gap: 10px; margin: 18px 0 24px; font-weight: 400; color: var(--texte); line-height: 1.55; }
.formulaire .consentement input { width: 18px; height: 18px; margin: 2px 0 0; padding: 0; accent-color: var(--rouge); }
.consentement a { color: var(--rouge); text-decoration: underline; }
.formulaire__retour { margin: 18px 0 0; padding: 12px 16px; background: #eaf5ec; color: #1d5a2c; border-radius: 4px; font-size: 14px; }
.carte-google { position: relative; border-radius: 6px; overflow: hidden; min-height: 520px; box-shadow: var(--ombre); background: #dfe5f0; }
.carte-google__fond {
  position: absolute; inset: 0; background: #eef1f7 var(--svg-carte-fond) center / 92% auto no-repeat;
}
.carte-google__fiche {
  position: absolute; left: 50%; top: 50%; translate: -50% -50%; width: min(340px, 86%);
  background: #fff; border-radius: 6px; padding: 30px 28px 24px; text-align: center; box-shadow: 0 20px 50px rgba(12, 27, 77, .18);
  display: flex; flex-direction: column; align-items: center; gap: 6px;
}
.carte-google__g { display: grid; place-items: center; width: 50px; height: 50px; border-radius: 50%; background: var(--brume); color: var(--marine); font-size: 22px; margin-bottom: 6px; }
.carte-google__fiche strong { color: var(--encre); font-size: 19px; }
.carte-google__cat { font-size: 14px; }
.carte-google__note { display: inline-flex; align-items: center; gap: 8px; color: var(--encre); font-weight: 600; font-size: 14px; margin-bottom: 14px; }
.carte-google__fiche small { font-size: 12px; color: var(--texte-clair); margin-top: 6px; }
.carte-google iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ---------- pied de page ---------- */
.pied { background: var(--marine); color: #b9c3de; font-size: 14.5px; position: relative; }
.pied__cartes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; transform: translateY(-50%); margin-bottom: -20px; }
.pied__cartes li {
  display: flex; align-items: center; gap: 18px; background: #fff; padding: 26px 26px; border-radius: 6px 6px 40px 6px;
  box-shadow: 0 18px 40px rgba(4, 35, 97, .14); color: var(--texte); line-height: 1.5;
}
.pied__cartes strong { display: block; color: var(--encre); font-size: 16px; }
.pied__cartes a:hover { color: var(--rouge); }
.pied__cartes-ic { display: grid; place-items: center; width: 54px; height: 54px; border-radius: 50%; background: #fdecec; color: var(--rouge); font-size: 22px; flex: none; }
.pied__grille { display: grid; grid-template-columns: 1.35fr .9fr .9fr 1.2fr; gap: 50px; padding: 20px 0 70px; }
.pied__marque img { width: 280px; margin: -8px 0 18px -8px; }
.pied h3 { color: #fff; font-size: 18px; font-weight: 600; margin-bottom: 22px; position: relative; padding-bottom: 12px; }
.pied h3::after { content: ''; position: absolute; left: 0; bottom: 0; width: 36px; height: 2px; background: var(--rouge); }
.pied__liens li + li { margin-top: 8px; }
.pied__liens a { display: inline-flex; align-items: center; gap: 8px; transition: color .2s; }
.pied__liens a::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--rouge); }
.pied__liens a:hover { color: #fff; }
.pied__reseaux { display: flex; gap: 8px; margin-top: 20px; }
.pied__reseaux .carre { width: 40px; height: 40px; border-radius: 4px; background: rgba(255, 255, 255, .08); }
.pied__reseaux .carre:hover { background: var(--rouge); }
.pied__articles li + li { margin-top: 16px; }
.pied__articles a { display: flex; align-items: center; gap: 14px; color: #fff; font-weight: 500; line-height: 1.45; }
.pied__articles a:hover { color: #ff7d82; }
.pied__articles img { width: 72px; height: 60px; object-fit: cover; border-radius: 4px; flex: none; }
.pied__bas { border-top: 1px solid rgba(255, 255, 255, .1); }
.pied__bas-in { display: flex; justify-content: space-between; gap: 20px; padding: 22px 0; font-size: 13.5px; }
.pied__bas p { margin: 0; }
.pied__bas a:hover { color: #fff; }

.haut {
  position: fixed; right: 26px; bottom: 26px; z-index: 40; width: 48px; height: 48px; border-radius: 50%;
  background: var(--rouge); color: #fff; display: grid; place-items: center; box-shadow: 0 10px 24px rgba(207, 13, 20, .35);
  opacity: 0; visibility: hidden; transform: translateY(10px); transition: .3s;
}
.haut .ic { font-size: 20px; }
.haut.est-visible { opacity: 1; visibility: visible; transform: none; }
.barre-mobile { display: none; }

/* ---------- animations ---------- */
@keyframes monte { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }
@keyframes revele { from { clip-path: polygon(38% 0, 38% 0, 8% 100%, 8% 100%); } to { clip-path: polygon(38% 0, 100% 0, 100% 100%, 8% 100%); } }
@keyframes filets { from { clip-path: inset(100% 0 0 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes reflet { to { transform: translateX(110%); } }
@keyframes jauge { from { transform: scaleX(0); } to { transform: scaleX(1); } }

@media (prefers-reduced-motion: no-preference) {
  .js .heros__texte > * { animation: monte .8s cubic-bezier(.2, .7, .2, 1) both; }
  .js .heros__texte > :nth-child(2) { animation-delay: .08s; }
  .js .heros__texte > :nth-child(3) { animation-delay: .16s; }
  .js .heros__texte > :nth-child(4) { animation-delay: .24s; }
  .js .heros__texte > :nth-child(5) { animation-delay: .32s; }
  .js .heros__photo { animation: revele 1.1s .15s cubic-bezier(.7, 0, .2, 1) both; }
  .js .heros__photo::after { animation: reflet 1.5s 1.25s ease-in-out forwards; }
  .js .heros__filets { animation: filets 1s .5s cubic-bezier(.6, 0, .2, 1) both; }
  .js [data-anim] { opacity: 0; transform: translateY(28px); transition: opacity .8s cubic-bezier(.2, .7, .2, 1), transform .8s cubic-bezier(.2, .7, .2, 1); }
  .js [data-anim].vu { opacity: 1; transform: none; }
  .js .etapes > :nth-child(2) { transition-delay: .12s; }
  .js .etapes > :nth-child(3) { transition-delay: .24s; }
  .js .etapes > :nth-child(4) { transition-delay: .36s; }
  .js .blog__grille > :nth-child(2) { transition-delay: .12s; }
  .js .blog__grille > :nth-child(3) { transition-delay: .24s; }
  .js .jauge.vu .jauge__plein { animation: jauge 1.4s .3s cubic-bezier(.2, .7, .2, 1) both; }
}

/* ---------- adaptatif ---------- */
@media (max-width: 1400px) { .faq__technicien { display: none; } }
@media (max-width: 1240px) {
  .menu__liste { gap: 18px; }
  .logo img { width: 280px; }
  .menu__actions .rond { display: none; }
}
@media (max-width: 1100px) {
  .barre-haut__infos li:first-child { display: none; }
  .barre-haut__infos li + li { border-left: 0; padding-left: 0; }
  .entete__in { min-height: 76px; align-items: center; }
  .logo { padding-right: 0; }
  .burger {
    display: grid; place-items: center; margin-left: auto; width: 46px; height: 46px; border-radius: 50%;
    border: 0; background: #fff; color: var(--marine); font-size: 22px;
  }
  .menu {
    position: absolute; left: 0; right: 0; top: 100%; flex-direction: column; align-items: stretch; margin: 0;
    padding: 10px 24px 26px; max-height: calc(100vh - 130px); overflow-y: auto; border-top: 3px solid var(--rouge);
    display: none;
  }
  .menu.est-ouvert { display: flex; }
  .menu__liste { flex-direction: column; align-items: stretch; gap: 0; }
  .menu__lien { width: 100%; justify-content: space-between; padding: 14px 0; border-bottom: 1px solid var(--trait); }
  .sous-menu, .sous-menu--large { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; display: none; grid-template-columns: 1fr; padding: 4px 0 10px; }
  .a-sous-menu.est-ouvert .sous-menu { display: grid; }
  .a-sous-menu:hover .sous-menu { display: none; }
  .a-sous-menu.est-ouvert:hover .sous-menu { display: grid; }
  .menu__actions { padding-top: 18px; }
  .menu__actions .rond { display: grid; }
  .heros__in { min-height: 0; padding: 70px 0 60px; }
  .heros__visuel { position: relative; width: 100%; height: 440px; }
  .heros__photo { clip-path: polygon(22% 0, 100% 0, 100% 100%, 0 100%); }
  .heros__photo img { object-position: 60% 25%; }
  .heros__filets { display: none; }
  @keyframes revele { from { clip-path: polygon(22% 0, 22% 0, 0 100%, 0 100%); } to { clip-path: polygon(22% 0, 100% 0, 100% 100%, 0 100%); } }
  .apropos__in, .faq__in, .avis__in, .zones__in, .contact__in { grid-template-columns: 1fr; gap: 50px; }
  .zones__tete { grid-row: auto; }
  .apropos__visuels { max-width: 560px; }
  .etapes { grid-template-columns: repeat(2, 1fr); row-gap: 50px; }
  .etape:nth-child(2)::after { display: none; }
  .services__piste { grid-auto-columns: calc((100% - 30px) / 2); }
  .blog__grille { grid-template-columns: repeat(2, 1fr); }
  .appel__bande { grid-template-columns: 200px 1fr; padding-right: 30px; }
  .appel__actions { grid-column: 1 / -1; flex-direction: row; justify-content: center; padding: 0 0 26px; }
  .avis { margin-right: 0; border-radius: 0 0 60px 0; }
  .pied__grille { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
  body { font-size: 15px; padding-bottom: 62px; }
  .barre-haut { display: none; }
  .logo img { width: 230px; }
  .heros h1 { font-size: clamp(34px, 9vw, 44px); }
  .heros__in { padding: 54px 0 46px; }
  .heros__visuel { height: 340px; }
  .processus, .services, section.blog { padding: 80px 0 70px; }
  .apropos, .zones { padding: 80px 0; }
  .faq { padding: 80px 0 150px; }
  .etapes { grid-template-columns: 1fr; }
  .etape::after { display: none; }
  .coches { grid-template-columns: 1fr; }
  .services__tete { flex-direction: column; align-items: flex-start; }
  .services__piste { grid-auto-columns: 82%; }
  .pastilles { grid-template-columns: repeat(4, 1fr); }
  .zones__deps { grid-template-columns: 1fr; }
  .appel__bande { grid-template-columns: 1fr; padding: 0; border-radius: 0 40px 0 0; }
  .appel__photo { display: none; }
  .appel__texte { padding: 30px 26px 0; }
  .appel__actions { padding: 0 26px 30px; flex-direction: column; align-items: stretch; }
  .avis { padding: 150px 0 80px; }
  .apropos__visuels { padding: 0 40px 50px 0; }
  .blog__grille { grid-template-columns: 1fr; }
  .formulaire { padding: 30px 22px; }
  .formulaire__grille { grid-template-columns: 1fr; }
  .carte-google { min-height: 420px; }
  .pied__cartes { grid-template-columns: 1fr; transform: none; margin: -70px 0 40px; gap: 14px; }
  .pied__grille { grid-template-columns: 1fr; gap: 36px; }
  .pied__bas-in { flex-direction: column; gap: 6px; }
  .haut { bottom: 76px; right: 16px; }
  .barre-mobile {
    display: grid; grid-template-columns: 1fr 1fr; position: fixed; left: 0; right: 0; bottom: 0; z-index: 45;
    box-shadow: 0 -8px 24px rgba(4, 35, 97, .18);
  }
  .barre-mobile a { display: flex; align-items: center; justify-content: center; gap: 10px; height: 62px; color: #fff; font-weight: 600; font-size: 16px; background: var(--marine-2); }
  .barre-mobile a + a { background: var(--rouge); }
  .barre-mobile .ic { font-size: 20px; }
}

/* ==========================================================================
   Pages intérieures (phase 3) — mêmes composants que l'accueil, aucun nouveau registre
   ========================================================================== */
.fond-blanc { background: #fff; }
.fond-brume { background: var(--brume); }

/* bandeau des pages : le héros de l'accueil, en plus court */
.heros--page .heros__in { min-height: 520px; padding: 64px 0 76px; }
.heros--page h1 { font-size: clamp(32px, 3.6vw, 52px); }
.heros--page .heros__texte { max-width: 590px; }
.heros--sans-photo .heros__in { min-height: 0; padding: 70px 0 80px; }
.heros--sans-photo .heros__texte { max-width: 760px; }
.fil { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font-size: 13.5px; color: var(--texte); margin-bottom: 18px; }
.fil a { color: var(--encre); font-weight: 500; }
.fil a:hover { color: var(--rouge); }
.fil__sep { color: var(--rouge); }
.fil [aria-current] { color: var(--texte); }
.reperes { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0 0; }
.reperes li { background: #fff; border: 1px solid var(--trait); border-radius: 999px; padding: 6px 14px; font-size: 13px; line-height: 1.4; color: var(--encre); font-weight: 500; }
.reperes--bandeau { margin-top: 26px; max-width: 560px; }

/* texte + encadré « Bon à savoir » */
.bloc-texte { padding: 100px 0; }
.bloc-texte__in { display: grid; grid-template-columns: 1.3fr .8fr; gap: 70px; align-items: center; }
.bloc-texte__in--seul { grid-template-columns: minmax(0, 820px); }
.bloc-texte__corps p { margin: 18px 0 0; }
.bloc-texte__corps .coches { margin: 28px 0 0; }
.encadre { position: relative; background: var(--marine); color: #c9d2ec; padding: 40px 36px 36px; border-radius: 0 44px 0 0; box-shadow: var(--ombre); }
.encadre::before { content: ''; position: absolute; left: 36px; top: 0; width: 46px; height: 4px; background: var(--rouge); }
.encadre__ic { display: grid; place-items: center; width: 60px; height: 60px; border-radius: 50%; background: rgba(255, 255, 255, .08); margin-bottom: 18px; }
.encadre__ic svg { width: 34px; height: 34px; color: #fff; }
.encadre h3 { color: #fff; font-size: 20px; margin-bottom: 10px; }
.encadre p { margin: 0; font-size: 15px; line-height: 1.75; }

/* titres centrés (cartes, arrondissements) */
.tete-centree { text-align: center; max-width: 760px; margin: 0 auto 56px; }
.tete-centree__intro { margin: 18px auto 0; }

/* cartes d'information */
.cartes-info { padding: 100px 0; }
.cartes-info__grille { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.carte-info { background: #fff; border-radius: 6px; padding: 34px 30px 30px; box-shadow: var(--ombre); transition: transform .35s, box-shadow .35s; }
.carte-info:hover { transform: translateY(-6px); box-shadow: 0 22px 50px rgba(12, 27, 77, .14); }
.carte-info__ic { display: grid; place-items: center; width: 62px; height: 62px; background: var(--marine); border-radius: 4px; margin-bottom: 22px; }
.carte-info__ic svg { width: 36px; height: 36px; color: #fff; }
.carte-info h3 { font-size: 18.5px; font-weight: 600; margin-bottom: 10px; }
.carte-info p { margin: 0; font-size: 14.5px; }
.fond-blanc .carte-info { box-shadow: 0 10px 34px rgba(12, 27, 77, .09); }

/* FAQ et bandeau d'appel hors accueil */
.faq--page { padding: 100px 0; }
.processus.fond-brume .etape__cercle { background: #fff; }
.appel--seul { margin: 0; padding: 90px 0 20px; }
.appel--seul + .associes { padding-top: 70px; }

/* services associés */
.associes { padding: 90px 0 100px; }
.associes .titre-section { margin-bottom: 46px; }
.associes__grille { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.associes .carte-service__img img { aspect-ratio: 600 / 560; }

/* bande des zones */
.bande-zones { background: var(--brume); padding: 80px 0 150px; }
.bande-zones__tete { margin-bottom: 30px; }
.bande-zones__liste { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px 14px; }
.bande-zones__liste a {
  display: flex; align-items: center; gap: 12px; background: #fff; border-radius: 4px; padding: 12px 16px;
  color: var(--encre); font-weight: 500; font-size: 14.5px; box-shadow: 0 6px 18px rgba(12, 27, 77, .05); transition: .2s;
}
.bande-zones__liste a:hover, .bande-zones__liste a[aria-current] { color: var(--rouge); }
.bande-zones__liste a[aria-current] .dep { background: var(--rouge); }
.communes { padding: 0 0 70px; }
.communes p { margin: 0; max-width: 820px; }

/* Paris : un bloc par arrondissement */
.parties { padding: 100px 0; background: var(--brume); }
.parties__in { display: grid; grid-template-columns: 220px 1fr; gap: 40px; align-items: start; }
.parties__index { position: sticky; top: 24px; background: #fff; border-radius: 6px; padding: 18px; box-shadow: var(--ombre); }
.parties__index ul { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.parties__index a { display: grid; place-items: center; height: 36px; border: 1px solid var(--trait); border-radius: 4px; font-size: 13px; font-weight: 600; color: var(--encre); }
.parties__index a:hover { background: var(--rouge); border-color: var(--rouge); color: #fff; }
.parties__liste { display: grid; gap: 22px; }
.partie { background: #fff; border-radius: 6px; padding: 32px 34px 28px; box-shadow: 0 8px 26px rgba(12, 27, 77, .06); scroll-margin-top: 24px; border-left: 4px solid var(--marine); }
.partie:target { border-left-color: var(--rouge); }
.partie h2 { font-size: 22px; margin-bottom: 12px; display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.partie h2 small { font-size: 13px; font-weight: 600; color: var(--rouge); }
.partie p { margin: 0 0 10px; }
.partie .reperes li { background: var(--brume); border-color: transparent; }
.partie__appel { display: inline-flex; align-items: center; gap: 8px; margin-top: 16px; font-weight: 600; color: var(--marine-2); font-size: 14.5px; }
.partie__appel:hover { color: var(--rouge); }

/* tarifs */
.tarifs { padding: 90px 0; }
.tableau-tarifs { width: 100%; border-collapse: collapse; background: #fff; box-shadow: var(--ombre); border-radius: 6px; overflow: hidden; font-size: 15px; }
.tableau-tarifs caption { text-align: left; font-weight: 600; color: var(--encre); font-size: 20px; padding: 0 0 16px; }
.tableau-tarifs th, .tableau-tarifs td { padding: 15px 20px; text-align: right; border-bottom: 1px solid var(--trait); vertical-align: top; }
.tableau-tarifs th:first-child, .tableau-tarifs td:first-child { text-align: left; }
.tableau-tarifs thead th { background: var(--marine); color: #fff; font-weight: 600; font-size: 14px; }
.tableau-tarifs tbody tr:nth-child(even) { background: var(--brume); }
.tableau-tarifs td strong { color: var(--encre); }
.tableau-tarifs small { display: block; color: var(--texte); font-size: 13px; margin-top: 4px; }
.tarifs__notes { margin-top: 26px; display: grid; gap: 10px; }
.tarifs__notes li { display: flex; gap: 10px; align-items: flex-start; }
.tarifs__notes .ic { font-size: 19px; color: var(--rouge); margin-top: 4px; }
.tarifs__plus { margin-top: 40px; background: #fff; border-radius: 6px; box-shadow: var(--ombre); }
.tarifs__plus summary { cursor: pointer; padding: 20px 26px; font-weight: 600; color: var(--encre); list-style: none; display: flex; justify-content: space-between; }
.tarifs__plus summary::-webkit-details-marker { display: none; }
.tarifs__plus[open] summary { border-bottom: 1px solid var(--trait); }
.tarifs__plus > div { padding: 10px 26px 26px; overflow-x: auto; }
.tarifs__plus .tableau-tarifs { box-shadow: none; }

/* pages de texte (légal, article) */
.texte-page { padding: 90px 0 100px; }
.texte-legal { max-width: 860px; }
.texte-legal h2 { font-size: 24px; margin: 46px 0 14px; }
.texte-legal h2:first-child { margin-top: 0; }
.texte-legal h3 { font-size: 18px; margin: 26px 0 10px; }
.texte-legal p, .texte-legal li { font-size: 15.5px; }
.texte-legal ul { list-style: disc; padding-left: 22px; margin: 0 0 1em; }
.texte-legal dl { display: grid; grid-template-columns: 240px 1fr; gap: 8px 20px; margin: 0 0 1em; }
.texte-legal dt { font-weight: 600; color: var(--encre); }
.texte-legal dd { margin: 0; }
.texte-legal a { color: var(--rouge); text-decoration: underline; }
.a-completer { background: #fff3cd; color: #6b4c00; padding: 1px 6px; border-radius: 3px; font-size: .92em; }

/* blog */
.blog-liste { padding: 90px 0 100px; }
.blog-liste .blog__grille { margin-top: 0; }
.date-prevue { display: block; font-size: 13px; color: var(--texte); margin-bottom: 8px; }
.article { padding: 80px 0 90px; }
.article__in { display: grid; grid-template-columns: minmax(0, 760px) 300px; gap: 60px; align-items: start; }
.article__corps { font-size: 16.5px; line-height: 1.85; }
.article__chapo { font-size: 19px; line-height: 1.7; color: var(--encre); font-weight: 500; margin-bottom: 30px; }
.article__corps h2 { font-size: 26px; margin: 44px 0 14px; scroll-margin-top: 24px; }
.article__corps ul { list-style: disc; padding-left: 22px; margin: 0 0 1em; }
.article__corps a { color: var(--rouge); text-decoration: underline; }
.article__retenir { margin: 44px 0 0; }
.article__sources { margin-top: 40px; font-size: 13.5px; }
.article__sources li { margin-bottom: 6px; word-break: break-word; }
.article__cote { position: sticky; top: 24px; display: grid; gap: 22px; }
.sommaire { background: var(--brume); border-radius: 6px; padding: 24px 24px 20px; }
.sommaire h3 { font-size: 16px; margin-bottom: 12px; }
.sommaire ol { list-style: decimal; padding-left: 20px; font-size: 14.5px; }
.sommaire li + li { margin-top: 6px; }
.sommaire a:hover { color: var(--rouge); }
.meta-article { display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: 14px; color: var(--texte); margin: 20px 0 0; }

/* page introuvable */
.introuvable { padding: 110px 0 120px; }
.introuvable__code { font-size: clamp(90px, 14vw, 170px); font-weight: 700; line-height: 1; color: var(--marine); margin: 0 0 12px; }
.introuvable__code span { color: var(--rouge); }

@media (max-width: 1100px) {
  .bloc-texte__in, .article__in, .parties__in { grid-template-columns: 1fr; gap: 40px; }
  .cartes-info__grille, .associes__grille { grid-template-columns: repeat(2, 1fr); }
  .bande-zones__liste { grid-template-columns: repeat(2, 1fr); }
  .parties__index { position: static; }
  .parties__index ul { grid-template-columns: repeat(10, 1fr); }
  .article__cote { position: static; }
  .heros--page .heros__in { min-height: 0; }
}
@media (max-width: 760px) {
  .bloc-texte, .cartes-info, .faq--page, .tarifs, .texte-page, .parties, .blog-liste, .article { padding: 64px 0; }
  .cartes-info__grille, .associes__grille, .bande-zones__liste { grid-template-columns: 1fr; }
  .bande-zones { padding: 60px 0 130px; }
  .parties__index ul { grid-template-columns: repeat(5, 1fr); }
  .partie { padding: 26px 22px 22px; }
  .texte-legal dl { grid-template-columns: 1fr; gap: 2px; }
  .texte-legal dd { margin-bottom: 10px; }
  .tableau-tarifs th, .tableau-tarifs td { padding: 12px 10px; font-size: 13.5px; }
  .appel--seul { padding-top: 60px; }
}
.formulaire__info { margin: 18px 0 24px; font-size: 13px; line-height: 1.6; color: var(--texte); }
.formulaire__info a, .carte-google__fiche small a { color: var(--rouge); text-decoration: underline; }
.contact--page { padding-bottom: 100px; }
/* bandeau sans photo : panneau marine et emblème du logo, dans la même diagonale que le héros */
.heros__visuel--marine .heros__photo { background: var(--marine); display: flex; align-items: center; justify-content: flex-end; }
.heros__visuel--marine .heros__photo img { width: 62%; height: auto; object-fit: contain; margin-right: 7%; opacity: .95; }
.heros__visuel--marine .f-blanc { fill: #fff; }
@media (max-width: 1100px) { .heros--sans-photo .heros__visuel { display: none; } }
.carte-article--a-venir { opacity: .8; } .carte-article--a-venir:hover { transform: none; } .carte-article--a-venir .lire { color: var(--texte); }
.texte-legal a, .article__corps a, .article__sources a, .texte-legal td { overflow-wrap: anywhere; }
.tableau-defile { overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 0 0 1em; }
.tableau-defile .tableau-tarifs { min-width: 520px; }
.tarifs .tableau-defile .tableau-tarifs { min-width: 0; }
@media (max-width: 400px) { .tarifs .tableau-tarifs th, .tarifs .tableau-tarifs td { padding: 10px 7px; font-size: 12.5px; } }


/* ===== 2. Icônes et dessins (générés par scripts/theme.py) ===== */
:root {
  --svg-tel: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' color='%23000'%3E%3Cpath d='M6.6 10.8a15.2 15.2 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z' fill='currentColor'/%3E%3C/svg%3E");
  --svg-wa: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' color='%23000'%3E%3Cpath fill='currentColor' d='M17.47 14.38c-.3-.15-1.76-.87-2.03-.97-.27-.1-.47-.15-.67.15-.2.3-.77.97-.94 1.16-.17.2-.35.22-.64.08-.3-.15-1.26-.46-2.39-1.48-.88-.79-1.48-1.76-1.65-2.06-.17-.3-.02-.46.13-.6.13-.14.3-.35.45-.52.15-.18.2-.3.3-.5.1-.2.05-.37-.03-.52-.07-.15-.67-1.61-.92-2.2-.24-.58-.49-.5-.67-.51h-.57c-.2 0-.52.07-.79.37-.27.3-1.04 1.02-1.04 2.48s1.07 2.88 1.21 3.07c.15.2 2.1 3.2 5.08 4.49.71.31 1.26.49 1.7.63.71.22 1.36.19 1.87.12.57-.09 1.76-.72 2-1.41.25-.7.25-1.29.18-1.41-.08-.13-.27-.2-.57-.35M12.05 21.79h-.01a9.87 9.87 0 0 1-5.03-1.38l-.36-.21-3.74.98 1-3.65-.24-.37a9.86 9.86 0 0 1-1.51-5.26c0-5.45 4.44-9.88 9.89-9.88 2.64 0 5.12 1.03 6.99 2.9a9.82 9.82 0 0 1 2.89 6.99c0 5.45-4.44 9.88-9.88 9.88m8.41-18.3A11.82 11.82 0 0 0 12.05 0C5.5 0 .16 5.34.16 11.89c0 2.1.55 4.14 1.59 5.95L.06 24l6.3-1.65a11.88 11.88 0 0 0 5.68 1.45h.01c6.55 0 11.89-5.34 11.89-11.89a11.82 11.82 0 0 0-3.48-8.41z'/%3E%3C/svg%3E");
  --svg-plus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' color='%23000'%3E%3Cpath d='M12 5v14M5 12h14' stroke='currentColor' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E");
  --svg-pin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' color='%23000'%3E%3Cpath d='M12 21s-6.5-5.6-6.5-11a6.5 6.5 0 0 1 13 0c0 5.4-6.5 11-6.5 11z' fill='none' stroke='currentColor' stroke-width='1.7'/%3E%3Ccircle cx='12' cy='10' r='2.3' fill='none' stroke='currentColor' stroke-width='1.7'/%3E%3C/svg%3E");
  --svg-mail: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' color='%23000'%3E%3Cpath d='M3 6.5h18v11H3zM3.5 7l8.5 6.5L20.5 7' fill='none' stroke='currentColor' stroke-width='1.7' stroke-linejoin='round'/%3E%3C/svg%3E");
  --svg-fleche: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' color='%23000'%3E%3Cpath d='M5 12h13M13 6.5 18.5 12 13 17.5' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --svg-fleche-g: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' color='%23000'%3E%3Cpath d='M19 12H6M11 6.5 5.5 12 11 17.5' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --svg-pause: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' color='%23000'%3E%3Cpath d='M9 6.5v11M15 6.5v11' stroke='currentColor' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E");
  --svg-lecture: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' color='%23000'%3E%3Cpath d='M8.5 6.2v11.6L18 12z' fill='currentColor'/%3E%3C/svg%3E");
  --svg-tel-blanc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' color='%23ffffff'%3E%3Cpath d='M6.6 10.8a15.2 15.2 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z' fill='currentColor'/%3E%3C/svg%3E");
  --svg-wa-blanc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' color='%23ffffff'%3E%3Cpath fill='currentColor' d='M17.47 14.38c-.3-.15-1.76-.87-2.03-.97-.27-.1-.47-.15-.67.15-.2.3-.77.97-.94 1.16-.17.2-.35.22-.64.08-.3-.15-1.26-.46-2.39-1.48-.88-.79-1.48-1.76-1.65-2.06-.17-.3-.02-.46.13-.6.13-.14.3-.35.45-.52.15-.18.2-.3.3-.5.1-.2.05-.37-.03-.52-.07-.15-.67-1.61-.92-2.2-.24-.58-.49-.5-.67-.51h-.57c-.2 0-.52.07-.79.37-.27.3-1.04 1.02-1.04 2.48s1.07 2.88 1.21 3.07c.15.2 2.1 3.2 5.08 4.49.71.31 1.26.49 1.7.63.71.22 1.36.19 1.87.12.57-.09 1.76-.72 2-1.41.25-.7.25-1.29.18-1.41-.08-.13-.27-.2-.57-.35M12.05 21.79h-.01a9.87 9.87 0 0 1-5.03-1.38l-.36-.21-3.74.98 1-3.65-.24-.37a9.86 9.86 0 0 1-1.51-5.26c0-5.45 4.44-9.88 9.89-9.88 2.64 0 5.12 1.03 6.99 2.9a9.82 9.82 0 0 1 2.89 6.99c0 5.45-4.44 9.88-9.88 9.88m8.41-18.3A11.82 11.82 0 0 0 12.05 0C5.5 0 .16 5.34.16 11.89c0 2.1.55 4.14 1.59 5.95L.06 24l6.3-1.65a11.88 11.88 0 0 0 5.68 1.45h.01c6.55 0 11.89-5.34 11.89-11.89a11.82 11.82 0 0 0-3.48-8.41z'/%3E%3C/svg%3E");
  --svg-fleche-blanc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' color='%23ffffff'%3E%3Cpath d='M5 12h13M13 6.5 18.5 12 13 17.5' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --svg-haut-blanc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' color='%23ffffff'%3E%3Cpath d='M12 19V6M6.5 11 12 5.5 17.5 11' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --svg-tel-marine: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' color='%23142a62'%3E%3Cpath d='M6.6 10.8a15.2 15.2 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z' fill='currentColor'/%3E%3C/svg%3E");
  --svg-fleche-rouge: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' color='%23cf0d14'%3E%3Cpath d='M5 12h13M13 6.5 18.5 12 13 17.5' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --svg-check-rouge: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' color='%23cf0d14'%3E%3Ccircle cx='12' cy='12' r='10' fill='currentColor'/%3E%3Cpath d='m7.5 12.3 3 3 6-6.3' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --svg-google-marine: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' color='%23042361'%3E%3Cpath fill='currentColor' d='M12.48 10.92v3.28h7.84c-.24 1.84-.85 3.19-1.79 4.13-1.15 1.15-2.93 2.4-6.05 2.4-4.83 0-8.6-3.89-8.6-8.72s3.77-8.72 8.6-8.72c2.6 0 4.51 1.03 5.91 2.35l2.31-2.31C18.75 1.44 16.13 0 12.48 0 5.87 0 .31 5.39.31 12s5.56 12 12.17 12c3.57 0 6.27-1.17 8.37-3.36 2.16-2.16 2.84-5.21 2.84-7.67 0-.76-.05-1.47-.17-2.05H12.48z'/%3E%3C/svg%3E");
  --svg-etoiles: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 110 20' color='%23f5b301'%3E%3Cg transform='translate(0 -2) scale(0.9)'%3E%3Cpath fill='currentColor' d='m12 2.8 2.8 5.8 6.3.9-4.6 4.4 1.1 6.3L12 17.2l-5.6 3 1.1-6.3L2.9 9.5l6.3-.9z'/%3E%3C/g%3E%3Cg transform='translate(22 -2) scale(0.9)'%3E%3Cpath fill='currentColor' d='m12 2.8 2.8 5.8 6.3.9-4.6 4.4 1.1 6.3L12 17.2l-5.6 3 1.1-6.3L2.9 9.5l6.3-.9z'/%3E%3C/g%3E%3Cg transform='translate(44 -2) scale(0.9)'%3E%3Cpath fill='currentColor' d='m12 2.8 2.8 5.8 6.3.9-4.6 4.4 1.1 6.3L12 17.2l-5.6 3 1.1-6.3L2.9 9.5l6.3-.9z'/%3E%3C/g%3E%3Cg transform='translate(66 -2) scale(0.9)'%3E%3Cpath fill='currentColor' d='m12 2.8 2.8 5.8 6.3.9-4.6 4.4 1.1 6.3L12 17.2l-5.6 3 1.1-6.3L2.9 9.5l6.3-.9z'/%3E%3C/g%3E%3Cg transform='translate(88 -2) scale(0.9)'%3E%3Cpath fill='currentColor' d='m12 2.8 2.8 5.8 6.3.9-4.6 4.4 1.1 6.3L12 17.2l-5.6 3 1.1-6.3L2.9 9.5l6.3-.9z'/%3E%3C/g%3E%3C/svg%3E");
  --svg-fissure: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 400'%3E%3Cg fill='none' stroke='%230c1b4d' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M200 200 120 40M200 200 330 70M200 200 390 230M200 200 300 380M200 200 90 360M200 200 10 190M200 200 40 90'/%3E%3Cpath d='M150 100l35 12 38-16 42 8M120 250l40-10 30 22 44-6 30 24M95 175l25 30-8 38M300 150l-28 30 16 32M230 300l-32-12-34 18'/%3E%3Ccircle cx='200' cy='200' r='22'/%3E%3Ccircle cx='200' cy='200' r='7'/%3E%3C/g%3E%3C/svg%3E");
  --svg-filets: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon fill='%23fff' points='38,0 35.8,0 20.36,52 22.56,52'/%3E%3Cpolygon fill='%237a8bc6' points='35.8,0 34.4,0 18.96,52 20.36,52'/%3E%3Cpolygon fill='%23cf0d14' points='32.4,0 32,0 16.56,52 16.96,52'/%3E%3Cpolygon fill='%23fff' points='22.56,52 21.16,52 6.6,100 8,100'/%3E%3Cpolygon fill='%23cf0d14' points='21.16,52 18.96,52 4.4,100 6.6,100'/%3E%3C/svg%3E");
  --svg-carte-idf: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 479'%3E%3Cg stroke='%23fff' stroke-width='2.5' stroke-linejoin='round'%3E%3Cpath fill='%23cf0d14' d='M275.8 165.1 288.8 168.0 288.9 178.2 282.0 178.5 271.3 173.8 260.8 179.3 251.7 179.0 236.7 172.4 221.1 163.3 223.2 156.6 230.8 151.7 236.2 152.8 248.3 143.1 266.9 142.4 275.1 155.8 275.8 165.1Z'/%3E%3Cpath fill='%23dde3f0' d='M240.1 121.3 250.3 123.7 253.0 129.3 248.3 136.4 248.3 143.1 236.2 152.8 230.8 151.7 223.2 156.6 221.1 163.3 236.7 172.4 251.7 179.0 248.0 191.6 250.0 194.2 245.1 205.6 248.5 208.5 246.8 216.4 232.7 203.0 223.6 201.0 221.7 196.7 214.9 187.1 209.3 187.6 207.5 180.4 200.4 179.0 198.8 170.8 200.8 154.7 205.2 145.4 214.4 139.5 233.7 123.2 240.1 121.3Z'/%3E%3Cpath fill='%23dde3f0' d='M314.7 95.9 322.4 103.8 320.0 113.6 325.0 120.1 325.8 132.5 324.3 145.9 318.9 157.9 325.9 175.2 325.8 183.2 309.2 166.9 294.3 159.9 275.8 165.1 275.1 155.8 266.9 142.4 248.3 143.1 248.3 136.4 253.0 129.3 250.3 123.7 240.1 121.3 242.3 114.7 252.1 119.4 255.2 113.8 266.7 112.6 273.2 119.1 288.0 119.5 290.3 115.5 303.8 107.8 308.7 97.9 314.7 95.9Z'/%3E%3Cpath fill='%23dde3f0' d='M251.7 179.0 260.8 179.3 271.3 173.8 282.0 178.5 288.9 178.2 288.8 168.0 275.8 165.1 294.3 159.9 309.2 166.9 325.8 183.2 330.0 197.4 323.9 211.5 323.8 217.7 319.1 226.4 320.0 232.9 314.9 234.5 308.4 229.6 304.0 217.0 300.6 214.3 286.7 219.9 275.1 221.7 262.8 220.8 258.2 212.9 248.5 208.5 245.1 205.6 250.0 194.2 248.0 191.6 251.7 179.0Z'/%3E%3Cpath fill='%23dde3f0' d='M320.0 232.9 319.1 226.4 323.8 217.7 323.9 211.5 330.0 197.4 325.8 183.2 325.9 175.2 318.9 157.9 324.3 145.9 325.8 132.5 325.0 120.1 320.0 113.6 322.4 103.8 314.7 95.9 313.1 90.0 324.6 78.6 320.1 73.6 325.3 65.8 337.5 53.4 348.8 60.9 358.4 71.8 371.7 73.9 381.3 67.7 382.6 61.2 397.8 63.6 400.9 69.9 412.0 66.9 413.8 63.3 434.6 67.9 444.3 60.7 455.6 62.9 462.3 49.4 471.4 53.6 480.6 53.8 488.9 57.2 485.6 64.2 493.6 73.9 489.8 92.9 507.1 105.1 513.5 112.0 518.1 126.7 528.6 122.2 531.0 134.1 535.9 139.5 546.1 133.4 550.8 148.1 550.2 154.1 557.0 158.8 570.6 162.1 573.0 169.4 580.0 164.0 579.9 175.6 564.9 181.1 567.9 192.3 558.4 193.3 554.5 203.9 564.3 205.0 568.3 213.7 575.6 213.2 574.0 226.3 575.5 235.3 567.3 245.2 572.9 249.8 589.2 253.9 589.6 258.2 600.0 263.9 585.3 270.5 583.5 276.9 574.4 285.3 578.4 296.5 572.6 302.5 562.4 301.3 557.2 303.7 565.6 316.8 552.4 324.2 557.6 336.2 553.4 348.4 562.0 353.1 559.9 363.1 551.0 359.0 546.4 361.3 545.8 370.8 528.7 370.6 522.2 368.6 514.3 373.9 508.1 371.7 499.3 374.4 481.7 370.7 470.0 377.0 456.0 376.1 452.3 384.7 453.7 389.3 446.4 398.6 454.3 414.0 443.3 441.8 434.6 442.7 433.6 447.6 423.3 454.2 423.7 460.9 404.3 463.9 390.9 475.4 384.3 470.7 384.6 458.8 368.3 462.4 372.2 468.5 362.3 472.3 358.4 477.5 346.1 478.7 339.3 471.5 328.8 474.6 319.6 470.6 310.2 470.8 305.7 476.5 296.8 476.8 288.2 472.3 294.8 460.4 301.4 463.9 302.2 452.6 306.1 447.3 301.5 433.9 290.8 421.3 286.1 423.5 277.9 419.1 277.1 402.6 271.9 393.0 278.4 385.9 279.6 375.2 290.8 369.0 305.7 356.7 307.4 352.1 301.7 346.1 300.1 322.3 303.9 313.1 299.4 304.9 305.2 288.8 304.8 279.8 312.0 271.0 306.9 267.0 309.1 247.9 312.3 241.9 323.9 238.4 320.0 232.9Z'/%3E%3Cpath fill='%23dde3f0' d='M214.4 139.5 205.2 145.4 200.8 154.7 198.8 170.8 200.4 179.0 207.5 180.4 209.3 187.6 214.9 187.1 221.7 196.7 215.0 198.7 209.1 204.7 200.1 206.3 195.7 213.5 185.2 214.7 188.7 223.3 180.6 235.8 170.3 234.9 162.4 254.4 174.4 265.0 167.1 271.1 167.4 277.4 162.2 285.8 162.3 290.9 151.2 292.6 139.6 288.6 138.5 295.0 148.0 301.5 141.9 308.9 138.3 323.4 133.0 327.0 135.1 334.0 130.6 341.5 120.7 341.7 113.1 337.6 109.5 329.7 101.3 327.6 93.8 311.7 93.4 303.8 96.7 292.6 90.5 285.8 74.5 282.1 72.4 279.1 76.1 266.4 62.3 266.7 58.1 256.2 44.3 245.7 46.8 234.0 37.6 228.7 50.9 208.8 39.9 197.8 36.5 190.5 40.9 180.0 37.0 167.2 38.2 162.7 28.1 155.1 31.9 151.0 25.9 140.4 26.0 133.9 17.1 131.4 15.4 125.5 14.2 108.9 8.4 109.3 8.4 92.9 2.9 88.8 0.0 80.6 3.8 73.1 10.7 77.9 25.8 68.9 31.2 70.1 43.9 63.7 45.9 66.5 56.4 65.0 64.4 66.4 70.1 75.6 78.6 80.7 88.9 72.8 98.7 75.0 99.4 69.0 108.9 67.6 118.9 75.4 115.0 85.7 120.0 92.3 126.3 83.2 132.4 82.1 139.6 90.7 155.0 91.1 163.9 101.0 181.4 93.8 193.4 96.0 191.6 103.0 201.4 106.3 207.2 112.0 207.7 120.1 215.9 121.8 214.4 139.5Z'/%3E%3Cpath fill='%23dde3f0' d='M221.7 196.7 223.6 201.0 232.7 203.0 246.8 216.4 248.5 208.5 258.2 212.9 262.8 220.8 275.1 221.7 286.7 219.9 300.6 214.3 304.0 217.0 308.4 229.6 314.9 234.5 320.0 232.9 323.9 238.4 312.3 241.9 309.1 247.9 306.9 267.0 312.0 271.0 304.8 279.8 305.2 288.8 299.4 304.9 303.9 313.1 300.1 322.3 301.7 346.1 307.4 352.1 305.7 356.7 290.8 369.0 279.6 375.2 278.4 385.9 271.9 393.0 260.7 397.8 250.5 387.7 246.2 388.7 241.3 398.4 225.0 394.9 221.0 386.3 214.8 382.8 208.7 396.9 201.6 400.0 180.5 404.7 172.3 403.9 169.7 407.8 150.2 407.5 145.7 398.2 151.6 394.0 148.7 384.9 153.5 375.2 149.7 363.7 150.6 359.1 136.2 353.4 140.4 348.0 133.0 327.0 138.3 323.4 141.9 308.9 148.0 301.5 138.5 295.0 139.6 288.6 151.2 292.6 162.3 290.9 162.2 285.8 167.4 277.4 167.1 271.1 174.4 265.0 162.4 254.4 170.3 234.9 180.6 235.8 188.7 223.3 185.2 214.7 195.7 213.5 200.1 206.3 209.1 204.7 215.0 198.7 221.7 196.7Z'/%3E%3Cpath fill='%23dde3f0' d='M325.3 65.8 320.1 73.6 324.6 78.6 313.1 90.0 314.7 95.9 308.7 97.9 303.8 107.8 290.3 115.5 288.0 119.5 273.2 119.1 266.7 112.6 255.2 113.8 252.1 119.4 242.3 114.7 240.1 121.3 233.7 123.2 214.4 139.5 215.9 121.8 207.7 120.1 207.2 112.0 201.4 106.3 191.6 103.0 193.4 96.0 181.4 93.8 163.9 101.0 155.0 91.1 139.6 90.7 132.4 82.1 126.3 83.2 120.0 92.3 115.0 85.7 118.9 75.4 108.9 67.6 99.4 69.0 98.7 75.0 88.9 72.8 78.6 80.7 70.1 75.6 64.4 66.4 56.4 65.0 45.9 66.5 53.4 50.8 59.3 44.0 61.7 34.0 64.5 9.5 73.1 0.0 81.6 4.7 83.9 22.4 87.6 24.9 99.1 20.2 113.3 26.9 122.3 26.2 124.6 30.0 137.8 25.0 146.1 25.3 149.8 20.9 157.4 24.4 178.6 10.1 184.8 18.3 195.0 17.6 209.0 25.2 219.5 22.2 229.1 34.2 238.8 31.2 245.8 19.7 255.8 30.4 268.6 35.7 274.8 34.4 291.5 41.7 300.5 49.4 296.7 54.3 316.1 57.7 325.3 65.8Z'/%3E%3C/g%3E%3Ctext x='255' y='167' text-anchor='middle' font-family='Arial,Helvetica,sans-serif' font-weight='700' font-size='12' fill='%23ffffff'%3E75%3C/text%3E%3Ctext x='209' y='205' text-anchor='middle' font-family='Arial,Helvetica,sans-serif' font-weight='700' font-size='13' fill='%230c1b4d'%3E92%3C/text%3E%3Ctext x='293' y='141' text-anchor='middle' font-family='Arial,Helvetica,sans-serif' font-weight='700' font-size='13' fill='%230c1b4d'%3E93%3C/text%3E%3Ctext x='291' y='201' text-anchor='middle' font-family='Arial,Helvetica,sans-serif' font-weight='700' font-size='13' fill='%230c1b4d'%3E94%3C/text%3E%3Ctext x='423' y='266' text-anchor='middle' font-family='Arial,Helvetica,sans-serif' font-weight='700' font-size='15' fill='%230c1b4d'%3E77%3C/text%3E%3Ctext x='112' y='185' text-anchor='middle' font-family='Arial,Helvetica,sans-serif' font-weight='700' font-size='15' fill='%230c1b4d'%3E78%3C/text%3E%3Ctext x='226' y='311' text-anchor='middle' font-family='Arial,Helvetica,sans-serif' font-weight='700' font-size='15' fill='%230c1b4d'%3E91%3C/text%3E%3Ctext x='194' y='69' text-anchor='middle' font-family='Arial,Helvetica,sans-serif' font-weight='700' font-size='15' fill='%230c1b4d'%3E95%3C/text%3E%3C/svg%3E");
  --svg-carte-fond: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 479'%3E %3Cg fill='%23d9dfeb' stroke='%23fff' stroke-width='2.5' stroke-linejoin='round'%3E %3Cpath fill='%23c3cce0' d='M275.8 165.1 288.8 168.0 288.9 178.2 282.0 178.5 271.3 173.8 260.8 179.3 251.7 179.0 236.7 172.4 221.1 163.3 223.2 156.6 230.8 151.7 236.2 152.8 248.3 143.1 266.9 142.4 275.1 155.8 275.8 165.1Z'/%3E %3Cpath d='M240.1 121.3 250.3 123.7 253.0 129.3 248.3 136.4 248.3 143.1 236.2 152.8 230.8 151.7 223.2 156.6 221.1 163.3 236.7 172.4 251.7 179.0 248.0 191.6 250.0 194.2 245.1 205.6 248.5 208.5 246.8 216.4 232.7 203.0 223.6 201.0 221.7 196.7 214.9 187.1 209.3 187.6 207.5 180.4 200.4 179.0 198.8 170.8 200.8 154.7 205.2 145.4 214.4 139.5 233.7 123.2 240.1 121.3Z'/%3E %3Cpath d='M314.7 95.9 322.4 103.8 320.0 113.6 325.0 120.1 325.8 132.5 324.3 145.9 318.9 157.9 325.9 175.2 325.8 183.2 309.2 166.9 294.3 159.9 275.8 165.1 275.1 155.8 266.9 142.4 248.3 143.1 248.3 136.4 253.0 129.3 250.3 123.7 240.1 121.3 242.3 114.7 252.1 119.4 255.2 113.8 266.7 112.6 273.2 119.1 288.0 119.5 290.3 115.5 303.8 107.8 308.7 97.9 314.7 95.9Z'/%3E %3Cpath d='M251.7 179.0 260.8 179.3 271.3 173.8 282.0 178.5 288.9 178.2 288.8 168.0 275.8 165.1 294.3 159.9 309.2 166.9 325.8 183.2 330.0 197.4 323.9 211.5 323.8 217.7 319.1 226.4 320.0 232.9 314.9 234.5 308.4 229.6 304.0 217.0 300.6 214.3 286.7 219.9 275.1 221.7 262.8 220.8 258.2 212.9 248.5 208.5 245.1 205.6 250.0 194.2 248.0 191.6 251.7 179.0Z'/%3E %3Cpath d='M320.0 232.9 319.1 226.4 323.8 217.7 323.9 211.5 330.0 197.4 325.8 183.2 325.9 175.2 318.9 157.9 324.3 145.9 325.8 132.5 325.0 120.1 320.0 113.6 322.4 103.8 314.7 95.9 313.1 90.0 324.6 78.6 320.1 73.6 325.3 65.8 337.5 53.4 348.8 60.9 358.4 71.8 371.7 73.9 381.3 67.7 382.6 61.2 397.8 63.6 400.9 69.9 412.0 66.9 413.8 63.3 434.6 67.9 444.3 60.7 455.6 62.9 462.3 49.4 471.4 53.6 480.6 53.8 488.9 57.2 485.6 64.2 493.6 73.9 489.8 92.9 507.1 105.1 513.5 112.0 518.1 126.7 528.6 122.2 531.0 134.1 535.9 139.5 546.1 133.4 550.8 148.1 550.2 154.1 557.0 158.8 570.6 162.1 573.0 169.4 580.0 164.0 579.9 175.6 564.9 181.1 567.9 192.3 558.4 193.3 554.5 203.9 564.3 205.0 568.3 213.7 575.6 213.2 574.0 226.3 575.5 235.3 567.3 245.2 572.9 249.8 589.2 253.9 589.6 258.2 600.0 263.9 585.3 270.5 583.5 276.9 574.4 285.3 578.4 296.5 572.6 302.5 562.4 301.3 557.2 303.7 565.6 316.8 552.4 324.2 557.6 336.2 553.4 348.4 562.0 353.1 559.9 363.1 551.0 359.0 546.4 361.3 545.8 370.8 528.7 370.6 522.2 368.6 514.3 373.9 508.1 371.7 499.3 374.4 481.7 370.7 470.0 377.0 456.0 376.1 452.3 384.7 453.7 389.3 446.4 398.6 454.3 414.0 443.3 441.8 434.6 442.7 433.6 447.6 423.3 454.2 423.7 460.9 404.3 463.9 390.9 475.4 384.3 470.7 384.6 458.8 368.3 462.4 372.2 468.5 362.3 472.3 358.4 477.5 346.1 478.7 339.3 471.5 328.8 474.6 319.6 470.6 310.2 470.8 305.7 476.5 296.8 476.8 288.2 472.3 294.8 460.4 301.4 463.9 302.2 452.6 306.1 447.3 301.5 433.9 290.8 421.3 286.1 423.5 277.9 419.1 277.1 402.6 271.9 393.0 278.4 385.9 279.6 375.2 290.8 369.0 305.7 356.7 307.4 352.1 301.7 346.1 300.1 322.3 303.9 313.1 299.4 304.9 305.2 288.8 304.8 279.8 312.0 271.0 306.9 267.0 309.1 247.9 312.3 241.9 323.9 238.4 320.0 232.9Z'/%3E %3Cpath d='M214.4 139.5 205.2 145.4 200.8 154.7 198.8 170.8 200.4 179.0 207.5 180.4 209.3 187.6 214.9 187.1 221.7 196.7 215.0 198.7 209.1 204.7 200.1 206.3 195.7 213.5 185.2 214.7 188.7 223.3 180.6 235.8 170.3 234.9 162.4 254.4 174.4 265.0 167.1 271.1 167.4 277.4 162.2 285.8 162.3 290.9 151.2 292.6 139.6 288.6 138.5 295.0 148.0 301.5 141.9 308.9 138.3 323.4 133.0 327.0 135.1 334.0 130.6 341.5 120.7 341.7 113.1 337.6 109.5 329.7 101.3 327.6 93.8 311.7 93.4 303.8 96.7 292.6 90.5 285.8 74.5 282.1 72.4 279.1 76.1 266.4 62.3 266.7 58.1 256.2 44.3 245.7 46.8 234.0 37.6 228.7 50.9 208.8 39.9 197.8 36.5 190.5 40.9 180.0 37.0 167.2 38.2 162.7 28.1 155.1 31.9 151.0 25.9 140.4 26.0 133.9 17.1 131.4 15.4 125.5 14.2 108.9 8.4 109.3 8.4 92.9 2.9 88.8 0.0 80.6 3.8 73.1 10.7 77.9 25.8 68.9 31.2 70.1 43.9 63.7 45.9 66.5 56.4 65.0 64.4 66.4 70.1 75.6 78.6 80.7 88.9 72.8 98.7 75.0 99.4 69.0 108.9 67.6 118.9 75.4 115.0 85.7 120.0 92.3 126.3 83.2 132.4 82.1 139.6 90.7 155.0 91.1 163.9 101.0 181.4 93.8 193.4 96.0 191.6 103.0 201.4 106.3 207.2 112.0 207.7 120.1 215.9 121.8 214.4 139.5Z'/%3E %3Cpath d='M221.7 196.7 223.6 201.0 232.7 203.0 246.8 216.4 248.5 208.5 258.2 212.9 262.8 220.8 275.1 221.7 286.7 219.9 300.6 214.3 304.0 217.0 308.4 229.6 314.9 234.5 320.0 232.9 323.9 238.4 312.3 241.9 309.1 247.9 306.9 267.0 312.0 271.0 304.8 279.8 305.2 288.8 299.4 304.9 303.9 313.1 300.1 322.3 301.7 346.1 307.4 352.1 305.7 356.7 290.8 369.0 279.6 375.2 278.4 385.9 271.9 393.0 260.7 397.8 250.5 387.7 246.2 388.7 241.3 398.4 225.0 394.9 221.0 386.3 214.8 382.8 208.7 396.9 201.6 400.0 180.5 404.7 172.3 403.9 169.7 407.8 150.2 407.5 145.7 398.2 151.6 394.0 148.7 384.9 153.5 375.2 149.7 363.7 150.6 359.1 136.2 353.4 140.4 348.0 133.0 327.0 138.3 323.4 141.9 308.9 148.0 301.5 138.5 295.0 139.6 288.6 151.2 292.6 162.3 290.9 162.2 285.8 167.4 277.4 167.1 271.1 174.4 265.0 162.4 254.4 170.3 234.9 180.6 235.8 188.7 223.3 185.2 214.7 195.7 213.5 200.1 206.3 209.1 204.7 215.0 198.7 221.7 196.7Z'/%3E %3Cpath d='M325.3 65.8 320.1 73.6 324.6 78.6 313.1 90.0 314.7 95.9 308.7 97.9 303.8 107.8 290.3 115.5 288.0 119.5 273.2 119.1 266.7 112.6 255.2 113.8 252.1 119.4 242.3 114.7 240.1 121.3 233.7 123.2 214.4 139.5 215.9 121.8 207.7 120.1 207.2 112.0 201.4 106.3 191.6 103.0 193.4 96.0 181.4 93.8 163.9 101.0 155.0 91.1 139.6 90.7 132.4 82.1 126.3 83.2 120.0 92.3 115.0 85.7 118.9 75.4 108.9 67.6 99.4 69.0 98.7 75.0 88.9 72.8 78.6 80.7 70.1 75.6 64.4 66.4 56.4 65.0 45.9 66.5 53.4 50.8 59.3 44.0 61.7 34.0 64.5 9.5 73.1 0.0 81.6 4.7 83.9 22.4 87.6 24.9 99.1 20.2 113.3 26.9 122.3 26.2 124.6 30.0 137.8 25.0 146.1 25.3 149.8 20.9 157.4 24.4 178.6 10.1 184.8 18.3 195.0 17.6 209.0 25.2 219.5 22.2 229.1 34.2 238.8 31.2 245.8 19.7 255.8 30.4 268.6 35.7 274.8 34.4 291.5 41.7 300.5 49.4 296.7 54.3 316.1 57.7 325.3 65.8Z'/%3E %3C/g%3E%3C/svg%3E");
}
.ico-s-appel { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%230c1b4d'%3E%3Cpath d='M13.2 21.6a30 30 0 0 0 13.2 13.2l4.4-4.4a2 2 0 0 1 2-.5c2.3.7 4.7 1.1 7.2 1.1a2 2 0 0 1 2 2V40a2 2 0 0 1-2 2A34 34 0 0 1 6 8a2 2 0 0 1 2-2h7a2 2 0 0 1 2 2c0 2.5.4 4.9 1.1 7.1a2 2 0 0 1-.5 2.1z' fill='none' stroke='currentColor' stroke-width='2.4' stroke-linejoin='round'/%3E%3Cpath d='M30 6a12 12 0 0 1 12 12M30 13a5 5 0 0 1 5 5' fill='none' stroke='%23cf0d14' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E"); --i-blanc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%23ffffff'%3E%3Cpath d='M13.2 21.6a30 30 0 0 0 13.2 13.2l4.4-4.4a2 2 0 0 1 2-.5c2.3.7 4.7 1.1 7.2 1.1a2 2 0 0 1 2 2V40a2 2 0 0 1-2 2A34 34 0 0 1 6 8a2 2 0 0 1 2-2h7a2 2 0 0 1 2 2c0 2.5.4 4.9 1.1 7.1a2 2 0 0 1-.5 2.1z' fill='none' stroke='currentColor' stroke-width='2.4' stroke-linejoin='round'/%3E%3Cpath d='M30 6a12 12 0 0 1 12 12M30 13a5 5 0 0 1 5 5' fill='none' stroke='%23cf0d14' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E"); }
.svc-appel { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%23ffffff'%3E%3Cpath d='M13.2 21.6a30 30 0 0 0 13.2 13.2l4.4-4.4a2 2 0 0 1 2-.5c2.3.7 4.7 1.1 7.2 1.1a2 2 0 0 1 2 2V40a2 2 0 0 1-2 2A34 34 0 0 1 6 8a2 2 0 0 1 2-2h7a2 2 0 0 1 2 2c0 2.5.4 4.9 1.1 7.1a2 2 0 0 1-.5 2.1z' fill='none' stroke='currentColor' stroke-width='2.4' stroke-linejoin='round'/%3E%3Cpath d='M30 6a12 12 0 0 1 12 12M30 13a5 5 0 0 1 5 5' fill='none' stroke='%23cf0d14' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E"); }
.ico-s-deco { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%230c1b4d'%3E%3Crect x='7' y='6' width='34' height='36' rx='2' fill='none' stroke='currentColor' stroke-width='2.4'/%3E%3Cpath d='M7 24c8-8 17 8 34 0M7 16c8-8 17 8 34 0M7 32c8-8 17 8 34 0' fill='none' stroke='%23cf0d14' stroke-width='2'/%3E%3C/svg%3E"); --i-blanc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%23ffffff'%3E%3Crect x='7' y='6' width='34' height='36' rx='2' fill='none' stroke='currentColor' stroke-width='2.4'/%3E%3Cpath d='M7 24c8-8 17 8 34 0M7 16c8-8 17 8 34 0M7 32c8-8 17 8 34 0' fill='none' stroke='%23cf0d14' stroke-width='2'/%3E%3C/svg%3E"); }
.svc-deco { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%23ffffff'%3E%3Crect x='7' y='6' width='34' height='36' rx='2' fill='none' stroke='currentColor' stroke-width='2.4'/%3E%3Cpath d='M7 24c8-8 17 8 34 0M7 16c8-8 17 8 34 0M7 32c8-8 17 8 34 0' fill='none' stroke='%23cf0d14' stroke-width='2'/%3E%3C/svg%3E"); }
.ico-s-devis { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%230c1b4d'%3E%3Cpath d='M10 4h20l8 8v32H10z' fill='none' stroke='currentColor' stroke-width='2.4' stroke-linejoin='round'/%3E%3Cpath d='M30 4v8h8' fill='none' stroke='currentColor' stroke-width='2.4' stroke-linejoin='round'/%3E%3Cpath d='M16 22h16M16 29h16M16 36h9' stroke='%23cf0d14' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E"); --i-blanc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%23ffffff'%3E%3Cpath d='M10 4h20l8 8v32H10z' fill='none' stroke='currentColor' stroke-width='2.4' stroke-linejoin='round'/%3E%3Cpath d='M30 4v8h8' fill='none' stroke='currentColor' stroke-width='2.4' stroke-linejoin='round'/%3E%3Cpath d='M16 22h16M16 29h16M16 36h9' stroke='%23cf0d14' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E"); }
.svc-devis { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%23ffffff'%3E%3Cpath d='M10 4h20l8 8v32H10z' fill='none' stroke='currentColor' stroke-width='2.4' stroke-linejoin='round'/%3E%3Cpath d='M30 4v8h8' fill='none' stroke='currentColor' stroke-width='2.4' stroke-linejoin='round'/%3E%3Cpath d='M16 22h16M16 29h16M16 36h9' stroke='%23cf0d14' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E"); }
.ico-s-double { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%230c1b4d'%3E%3Crect x='6' y='9' width='26' height='32' rx='2' fill='none' stroke='currentColor' stroke-width='2.4'/%3E%3Cpath d='M16 5h26v32' fill='none' stroke='%23cf0d14' stroke-width='2.4' stroke-linejoin='round'/%3E%3C/svg%3E"); --i-blanc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%23ffffff'%3E%3Crect x='6' y='9' width='26' height='32' rx='2' fill='none' stroke='currentColor' stroke-width='2.4'/%3E%3Cpath d='M16 5h26v32' fill='none' stroke='%23cf0d14' stroke-width='2.4' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.svc-double { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%23ffffff'%3E%3Crect x='6' y='9' width='26' height='32' rx='2' fill='none' stroke='currentColor' stroke-width='2.4'/%3E%3Cpath d='M16 5h26v32' fill='none' stroke='%23cf0d14' stroke-width='2.4' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.ico-s-douche { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%230c1b4d'%3E%3Cpath d='M10 44V10a6 6 0 0 1 12 0' fill='none' stroke='currentColor' stroke-width='2.4' stroke-linecap='round'/%3E%3Cpath d='M16 14h12' stroke='currentColor' stroke-width='2.4' stroke-linecap='round'/%3E%3Crect x='26' y='18' width='14' height='26' fill='none' stroke='%23cf0d14' stroke-width='2'/%3E%3C/svg%3E"); --i-blanc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%23ffffff'%3E%3Cpath d='M10 44V10a6 6 0 0 1 12 0' fill='none' stroke='currentColor' stroke-width='2.4' stroke-linecap='round'/%3E%3Cpath d='M16 14h12' stroke='currentColor' stroke-width='2.4' stroke-linecap='round'/%3E%3Crect x='26' y='18' width='14' height='26' fill='none' stroke='%23cf0d14' stroke-width='2'/%3E%3C/svg%3E"); }
.svc-douche { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%23ffffff'%3E%3Cpath d='M10 44V10a6 6 0 0 1 12 0' fill='none' stroke='currentColor' stroke-width='2.4' stroke-linecap='round'/%3E%3Cpath d='M16 14h12' stroke='currentColor' stroke-width='2.4' stroke-linecap='round'/%3E%3Crect x='26' y='18' width='14' height='26' fill='none' stroke='%23cf0d14' stroke-width='2'/%3E%3C/svg%3E"); }
.ico-s-fenetre { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%230c1b4d'%3E%3Cpath d='M8 42V10a2 2 0 0 1 2-2h28a2 2 0 0 1 2 2v32' fill='none' stroke='currentColor' stroke-width='2.4'/%3E%3Cpath d='M24 8v34M8 26h32M4 42h40' stroke='currentColor' stroke-width='2.4'/%3E%3Cpath d='M29 14l5-5' stroke='%23cf0d14' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E"); --i-blanc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%23ffffff'%3E%3Cpath d='M8 42V10a2 2 0 0 1 2-2h28a2 2 0 0 1 2 2v32' fill='none' stroke='currentColor' stroke-width='2.4'/%3E%3Cpath d='M24 8v34M8 26h32M4 42h40' stroke='currentColor' stroke-width='2.4'/%3E%3Cpath d='M29 14l5-5' stroke='%23cf0d14' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E"); }
.svc-fenetre { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%23ffffff'%3E%3Cpath d='M8 42V10a2 2 0 0 1 2-2h28a2 2 0 0 1 2 2v32' fill='none' stroke='currentColor' stroke-width='2.4'/%3E%3Cpath d='M24 8v34M8 26h32M4 42h40' stroke='currentColor' stroke-width='2.4'/%3E%3Cpath d='M29 14l5-5' stroke='%23cf0d14' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E"); }
.ico-s-fissure { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%230c1b4d'%3E%3Crect x='7' y='6' width='34' height='36' rx='2' fill='none' stroke='currentColor' stroke-width='2.4'/%3E%3Cpath d='M24 22l-7-9M24 22l9-6M24 22l-2 12M24 22l10 7M24 22l-11 3' fill='none' stroke='%23cf0d14' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E"); --i-blanc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%23ffffff'%3E%3Crect x='7' y='6' width='34' height='36' rx='2' fill='none' stroke='currentColor' stroke-width='2.4'/%3E%3Cpath d='M24 22l-7-9M24 22l9-6M24 22l-2 12M24 22l10 7M24 22l-11 3' fill='none' stroke='%23cf0d14' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E"); }
.svc-fissure { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%23ffffff'%3E%3Crect x='7' y='6' width='34' height='36' rx='2' fill='none' stroke='currentColor' stroke-width='2.4'/%3E%3Cpath d='M24 22l-7-9M24 22l9-6M24 22l-2 12M24 22l10 7M24 22l-11 3' fill='none' stroke='%23cf0d14' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E"); }
.ico-s-gardecorps { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%230c1b4d'%3E%3Cpath d='M4 12h40M4 40h40' stroke='currentColor' stroke-width='2.4' stroke-linecap='round'/%3E%3Crect x='8' y='16' width='14' height='20' fill='none' stroke='%23cf0d14' stroke-width='2'/%3E%3Crect x='26' y='16' width='14' height='20' fill='none' stroke='%23cf0d14' stroke-width='2'/%3E%3C/svg%3E"); --i-blanc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%23ffffff'%3E%3Cpath d='M4 12h40M4 40h40' stroke='currentColor' stroke-width='2.4' stroke-linecap='round'/%3E%3Crect x='8' y='16' width='14' height='20' fill='none' stroke='%23cf0d14' stroke-width='2'/%3E%3Crect x='26' y='16' width='14' height='20' fill='none' stroke='%23cf0d14' stroke-width='2'/%3E%3C/svg%3E"); }
.svc-gardecorps { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%23ffffff'%3E%3Cpath d='M4 12h40M4 40h40' stroke='currentColor' stroke-width='2.4' stroke-linecap='round'/%3E%3Crect x='8' y='16' width='14' height='20' fill='none' stroke='%23cf0d14' stroke-width='2'/%3E%3Crect x='26' y='16' width='14' height='20' fill='none' stroke='%23cf0d14' stroke-width='2'/%3E%3C/svg%3E"); }
.ico-s-marquise { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%230c1b4d'%3E%3Cpath d='M6 20c6-9 30-9 36 0' fill='none' stroke='%23cf0d14' stroke-width='2.4'/%3E%3Cpath d='M6 20h36M10 20l2-6M24 20v-8M38 20l-2-6' fill='none' stroke='currentColor' stroke-width='2.2'/%3E%3Crect x='16' y='26' width='16' height='18' fill='none' stroke='currentColor' stroke-width='2.4'/%3E%3C/svg%3E"); --i-blanc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%23ffffff'%3E%3Cpath d='M6 20c6-9 30-9 36 0' fill='none' stroke='%23cf0d14' stroke-width='2.4'/%3E%3Cpath d='M6 20h36M10 20l2-6M24 20v-8M38 20l-2-6' fill='none' stroke='currentColor' stroke-width='2.2'/%3E%3Crect x='16' y='26' width='16' height='18' fill='none' stroke='currentColor' stroke-width='2.4'/%3E%3C/svg%3E"); }
.svc-marquise { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%23ffffff'%3E%3Cpath d='M6 20c6-9 30-9 36 0' fill='none' stroke='%23cf0d14' stroke-width='2.4'/%3E%3Cpath d='M6 20h36M10 20l2-6M24 20v-8M38 20l-2-6' fill='none' stroke='currentColor' stroke-width='2.2'/%3E%3Crect x='16' y='26' width='16' height='18' fill='none' stroke='currentColor' stroke-width='2.4'/%3E%3C/svg%3E"); }
.ico-s-miroir { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%230c1b4d'%3E%3Cellipse cx='24' cy='21' rx='12' ry='16' fill='none' stroke='currentColor' stroke-width='2.4'/%3E%3Cpath d='M18 17l6-6M19 25l11-11' stroke='%23cf0d14' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M24 37v7M17 44h14' stroke='currentColor' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E"); --i-blanc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%23ffffff'%3E%3Cellipse cx='24' cy='21' rx='12' ry='16' fill='none' stroke='currentColor' stroke-width='2.4'/%3E%3Cpath d='M18 17l6-6M19 25l11-11' stroke='%23cf0d14' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M24 37v7M17 44h14' stroke='currentColor' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E"); }
.svc-miroir { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%23ffffff'%3E%3Cellipse cx='24' cy='21' rx='12' ry='16' fill='none' stroke='currentColor' stroke-width='2.4'/%3E%3Cpath d='M18 17l6-6M19 25l11-11' stroke='%23cf0d14' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M24 37v7M17 44h14' stroke='currentColor' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E"); }
.ico-s-porte { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%230c1b4d'%3E%3Crect x='12' y='4' width='24' height='40' rx='2' fill='none' stroke='currentColor' stroke-width='2.4'/%3E%3Crect x='17' y='9' width='14' height='22' fill='none' stroke='%23cf0d14' stroke-width='2'/%3E%3Ccircle cx='31' cy='36' r='1.8' fill='currentColor'/%3E%3C/svg%3E"); --i-blanc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%23ffffff'%3E%3Crect x='12' y='4' width='24' height='40' rx='2' fill='none' stroke='currentColor' stroke-width='2.4'/%3E%3Crect x='17' y='9' width='14' height='22' fill='none' stroke='%23cf0d14' stroke-width='2'/%3E%3Ccircle cx='31' cy='36' r='1.8' fill='currentColor'/%3E%3C/svg%3E"); }
.svc-porte { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%23ffffff'%3E%3Crect x='12' y='4' width='24' height='40' rx='2' fill='none' stroke='currentColor' stroke-width='2.4'/%3E%3Crect x='17' y='9' width='14' height='22' fill='none' stroke='%23cf0d14' stroke-width='2'/%3E%3Ccircle cx='31' cy='36' r='1.8' fill='currentColor'/%3E%3C/svg%3E"); }
.ico-s-pose { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%230c1b4d'%3E%3Crect x='8' y='6' width='32' height='36' rx='2' fill='none' stroke='currentColor' stroke-width='2.4'/%3E%3Cpath d='M8 24h32M24 6v36' stroke='currentColor' stroke-width='2'/%3E%3Ccircle cx='36' cy='36' r='9' fill='%23cf0d14'/%3E%3Cpath d='m31.8 36 3 3 5.4-5.8' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); --i-blanc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%23ffffff'%3E%3Crect x='8' y='6' width='32' height='36' rx='2' fill='none' stroke='currentColor' stroke-width='2.4'/%3E%3Cpath d='M8 24h32M24 6v36' stroke='currentColor' stroke-width='2'/%3E%3Ccircle cx='36' cy='36' r='9' fill='%23cf0d14'/%3E%3Cpath d='m31.8 36 3 3 5.4-5.8' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.svc-pose { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%23ffffff'%3E%3Crect x='8' y='6' width='32' height='36' rx='2' fill='none' stroke='currentColor' stroke-width='2.4'/%3E%3Cpath d='M8 24h32M24 6v36' stroke='currentColor' stroke-width='2'/%3E%3Ccircle cx='36' cy='36' r='9' fill='%23cf0d14'/%3E%3Cpath d='m31.8 36 3 3 5.4-5.8' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.ico-s-pro { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%230c1b4d'%3E%3Cpath d='M8 44V6h22v38M30 18h10v26M4 44h40' fill='none' stroke='currentColor' stroke-width='2.4' stroke-linejoin='round'/%3E%3Cpath d='M14 12h4M22 12h2M14 19h4M22 19h2M14 26h4M22 26h2' stroke='%23cf0d14' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E"); --i-blanc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%23ffffff'%3E%3Cpath d='M8 44V6h22v38M30 18h10v26M4 44h40' fill='none' stroke='currentColor' stroke-width='2.4' stroke-linejoin='round'/%3E%3Cpath d='M14 12h4M22 12h2M14 19h4M22 19h2M14 26h4M22 26h2' stroke='%23cf0d14' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E"); }
.svc-pro { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%23ffffff'%3E%3Cpath d='M8 44V6h22v38M30 18h10v26M4 44h40' fill='none' stroke='currentColor' stroke-width='2.4' stroke-linejoin='round'/%3E%3Cpath d='M14 12h4M22 12h2M14 19h4M22 19h2M14 26h4M22 26h2' stroke='%23cf0d14' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E"); }
.ico-s-provisoire { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%230c1b4d'%3E%3Crect x='6' y='6' width='36' height='36' rx='2' fill='none' stroke='currentColor' stroke-width='2.4'/%3E%3Cpath d='M6 17h36M6 31h36' stroke='%23cf0d14' stroke-width='2.4'/%3E%3Ccircle cx='12' cy='11.5' r='1.4' fill='currentColor'/%3E%3Ccircle cx='36' cy='11.5' r='1.4' fill='currentColor'/%3E%3Ccircle cx='12' cy='36.5' r='1.4' fill='currentColor'/%3E%3Ccircle cx='36' cy='36.5' r='1.4' fill='currentColor'/%3E%3C/svg%3E"); --i-blanc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%23ffffff'%3E%3Crect x='6' y='6' width='36' height='36' rx='2' fill='none' stroke='currentColor' stroke-width='2.4'/%3E%3Cpath d='M6 17h36M6 31h36' stroke='%23cf0d14' stroke-width='2.4'/%3E%3Ccircle cx='12' cy='11.5' r='1.4' fill='currentColor'/%3E%3Ccircle cx='36' cy='11.5' r='1.4' fill='currentColor'/%3E%3Ccircle cx='12' cy='36.5' r='1.4' fill='currentColor'/%3E%3Ccircle cx='36' cy='36.5' r='1.4' fill='currentColor'/%3E%3C/svg%3E"); }
.svc-provisoire { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%23ffffff'%3E%3Crect x='6' y='6' width='36' height='36' rx='2' fill='none' stroke='currentColor' stroke-width='2.4'/%3E%3Cpath d='M6 17h36M6 31h36' stroke='%23cf0d14' stroke-width='2.4'/%3E%3Ccircle cx='12' cy='11.5' r='1.4' fill='currentColor'/%3E%3Ccircle cx='36' cy='11.5' r='1.4' fill='currentColor'/%3E%3Ccircle cx='12' cy='36.5' r='1.4' fill='currentColor'/%3E%3Ccircle cx='36' cy='36.5' r='1.4' fill='currentColor'/%3E%3C/svg%3E"); }
.ico-s-securite { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%230c1b4d'%3E%3Cpath d='M24 4l16 6v12c0 10-7 17-16 22C15 39 8 32 8 22V10z' fill='none' stroke='currentColor' stroke-width='2.4' stroke-linejoin='round'/%3E%3Cpath d='m17 23 5 5 9-10' fill='none' stroke='%23cf0d14' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); --i-blanc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%23ffffff'%3E%3Cpath d='M24 4l16 6v12c0 10-7 17-16 22C15 39 8 32 8 22V10z' fill='none' stroke='currentColor' stroke-width='2.4' stroke-linejoin='round'/%3E%3Cpath d='m17 23 5 5 9-10' fill='none' stroke='%23cf0d14' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.svc-securite { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%23ffffff'%3E%3Cpath d='M24 4l16 6v12c0 10-7 17-16 22C15 39 8 32 8 22V10z' fill='none' stroke='currentColor' stroke-width='2.4' stroke-linejoin='round'/%3E%3Cpath d='m17 23 5 5 9-10' fill='none' stroke='%23cf0d14' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.ico-s-survitrage { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%230c1b4d'%3E%3Crect x='8' y='6' width='32' height='36' rx='2' fill='none' stroke='currentColor' stroke-width='2.4'/%3E%3Cpath d='M24 6v36M8 24h32' stroke='currentColor' stroke-width='2'/%3E%3Crect x='13' y='11' width='22' height='26' fill='none' stroke='%23cf0d14' stroke-width='2'/%3E%3C/svg%3E"); --i-blanc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%23ffffff'%3E%3Crect x='8' y='6' width='32' height='36' rx='2' fill='none' stroke='currentColor' stroke-width='2.4'/%3E%3Cpath d='M24 6v36M8 24h32' stroke='currentColor' stroke-width='2'/%3E%3Crect x='13' y='11' width='22' height='26' fill='none' stroke='%23cf0d14' stroke-width='2'/%3E%3C/svg%3E"); }
.svc-survitrage { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%23ffffff'%3E%3Crect x='8' y='6' width='32' height='36' rx='2' fill='none' stroke='currentColor' stroke-width='2.4'/%3E%3Cpath d='M24 6v36M8 24h32' stroke='currentColor' stroke-width='2'/%3E%3Crect x='13' y='11' width='22' height='26' fill='none' stroke='%23cf0d14' stroke-width='2'/%3E%3C/svg%3E"); }
.ico-s-verriere { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%230c1b4d'%3E%3Crect x='5' y='8' width='38' height='32' fill='none' stroke='currentColor' stroke-width='2.4'/%3E%3Cpath d='M17.7 8v32M30.3 8v32M5 24h38' stroke='currentColor' stroke-width='2.2'/%3E%3Cpath d='M9 13l4-4' stroke='%23cf0d14' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E"); --i-blanc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%23ffffff'%3E%3Crect x='5' y='8' width='38' height='32' fill='none' stroke='currentColor' stroke-width='2.4'/%3E%3Cpath d='M17.7 8v32M30.3 8v32M5 24h38' stroke='currentColor' stroke-width='2.2'/%3E%3Cpath d='M9 13l4-4' stroke='%23cf0d14' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E"); }
.svc-verriere { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%23ffffff'%3E%3Crect x='5' y='8' width='38' height='32' fill='none' stroke='currentColor' stroke-width='2.4'/%3E%3Cpath d='M17.7 8v32M30.3 8v32M5 24h38' stroke='currentColor' stroke-width='2.2'/%3E%3Cpath d='M9 13l4-4' stroke='%23cf0d14' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E"); }
.ico-s-vitrage { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%230c1b4d'%3E%3Crect x='8' y='6' width='32' height='36' rx='2' fill='none' stroke='currentColor' stroke-width='2.4'/%3E%3Cpath d='M14 14l8-8M14 22l16-16M26 30l8-8' stroke='%23cf0d14' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E"); --i-blanc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%23ffffff'%3E%3Crect x='8' y='6' width='32' height='36' rx='2' fill='none' stroke='currentColor' stroke-width='2.4'/%3E%3Cpath d='M14 14l8-8M14 22l16-16M26 30l8-8' stroke='%23cf0d14' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E"); }
.svc-vitrage { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%23ffffff'%3E%3Crect x='8' y='6' width='32' height='36' rx='2' fill='none' stroke='currentColor' stroke-width='2.4'/%3E%3Cpath d='M14 14l8-8M14 22l16-16M26 30l8-8' stroke='%23cf0d14' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E"); }
.ico-s-vitrine { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%230c1b4d'%3E%3Cpath d='M5 18h38M7 18l3-10h28l3 10M9 18v24h30V18' fill='none' stroke='currentColor' stroke-width='2.4' stroke-linejoin='round'/%3E%3Crect x='13' y='24' width='14' height='12' fill='none' stroke='%23cf0d14' stroke-width='2'/%3E%3Cpath d='M31 42V26h4v16' fill='none' stroke='currentColor' stroke-width='2'/%3E%3C/svg%3E"); --i-blanc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%23ffffff'%3E%3Cpath d='M5 18h38M7 18l3-10h28l3 10M9 18v24h30V18' fill='none' stroke='currentColor' stroke-width='2.4' stroke-linejoin='round'/%3E%3Crect x='13' y='24' width='14' height='12' fill='none' stroke='%23cf0d14' stroke-width='2'/%3E%3Cpath d='M31 42V26h4v16' fill='none' stroke='currentColor' stroke-width='2'/%3E%3C/svg%3E"); }
.svc-vitrine { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' color='%23ffffff'%3E%3Cpath d='M5 18h38M7 18l3-10h28l3 10M9 18v24h30V18' fill='none' stroke='currentColor' stroke-width='2.4' stroke-linejoin='round'/%3E%3Crect x='13' y='24' width='14' height='12' fill='none' stroke='%23cf0d14' stroke-width='2'/%3E%3Cpath d='M31 42V26h4v16' fill='none' stroke='currentColor' stroke-width='2'/%3E%3C/svg%3E"); }
.ico-i-pin { --i-rouge: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' color='%23cf0d14'%3E%3Cpath d='M12 21s-6.5-5.6-6.5-11a6.5 6.5 0 0 1 13 0c0 5.4-6.5 11-6.5 11z' fill='none' stroke='currentColor' stroke-width='1.7'/%3E%3Ccircle cx='12' cy='10' r='2.3' fill='none' stroke='currentColor' stroke-width='1.7'/%3E%3C/svg%3E"); --i-blanc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' color='%23ffffff'%3E%3Cpath d='M12 21s-6.5-5.6-6.5-11a6.5 6.5 0 0 1 13 0c0 5.4-6.5 11-6.5 11z' fill='none' stroke='currentColor' stroke-width='1.7'/%3E%3Ccircle cx='12' cy='10' r='2.3' fill='none' stroke='currentColor' stroke-width='1.7'/%3E%3C/svg%3E"); }
.ico-i-tel { --i-rouge: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' color='%23cf0d14'%3E%3Cpath d='M6.6 10.8a15.2 15.2 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z' fill='currentColor'/%3E%3C/svg%3E"); --i-blanc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' color='%23ffffff'%3E%3Cpath d='M6.6 10.8a15.2 15.2 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z' fill='currentColor'/%3E%3C/svg%3E"); }
.ico-i-mail { --i-rouge: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' color='%23cf0d14'%3E%3Cpath d='M3 6.5h18v11H3zM3.5 7l8.5 6.5L20.5 7' fill='none' stroke='currentColor' stroke-width='1.7' stroke-linejoin='round'/%3E%3C/svg%3E"); --i-blanc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' color='%23ffffff'%3E%3Cpath d='M3 6.5h18v11H3zM3.5 7l8.5 6.5L20.5 7' fill='none' stroke='currentColor' stroke-width='1.7' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.ico-i-wa { --i-rouge: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' color='%23cf0d14'%3E%3Cpath fill='currentColor' d='M17.47 14.38c-.3-.15-1.76-.87-2.03-.97-.27-.1-.47-.15-.67.15-.2.3-.77.97-.94 1.16-.17.2-.35.22-.64.08-.3-.15-1.26-.46-2.39-1.48-.88-.79-1.48-1.76-1.65-2.06-.17-.3-.02-.46.13-.6.13-.14.3-.35.45-.52.15-.18.2-.3.3-.5.1-.2.05-.37-.03-.52-.07-.15-.67-1.61-.92-2.2-.24-.58-.49-.5-.67-.51h-.57c-.2 0-.52.07-.79.37-.27.3-1.04 1.02-1.04 2.48s1.07 2.88 1.21 3.07c.15.2 2.1 3.2 5.08 4.49.71.31 1.26.49 1.7.63.71.22 1.36.19 1.87.12.57-.09 1.76-.72 2-1.41.25-.7.25-1.29.18-1.41-.08-.13-.27-.2-.57-.35M12.05 21.79h-.01a9.87 9.87 0 0 1-5.03-1.38l-.36-.21-3.74.98 1-3.65-.24-.37a9.86 9.86 0 0 1-1.51-5.26c0-5.45 4.44-9.88 9.89-9.88 2.64 0 5.12 1.03 6.99 2.9a9.82 9.82 0 0 1 2.89 6.99c0 5.45-4.44 9.88-9.88 9.88m8.41-18.3A11.82 11.82 0 0 0 12.05 0C5.5 0 .16 5.34.16 11.89c0 2.1.55 4.14 1.59 5.95L.06 24l6.3-1.65a11.88 11.88 0 0 0 5.68 1.45h.01c6.55 0 11.89-5.34 11.89-11.89a11.82 11.82 0 0 0-3.48-8.41z'/%3E%3C/svg%3E"); --i-blanc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' color='%23ffffff'%3E%3Cpath fill='currentColor' d='M17.47 14.38c-.3-.15-1.76-.87-2.03-.97-.27-.1-.47-.15-.67.15-.2.3-.77.97-.94 1.16-.17.2-.35.22-.64.08-.3-.15-1.26-.46-2.39-1.48-.88-.79-1.48-1.76-1.65-2.06-.17-.3-.02-.46.13-.6.13-.14.3-.35.45-.52.15-.18.2-.3.3-.5.1-.2.05-.37-.03-.52-.07-.15-.67-1.61-.92-2.2-.24-.58-.49-.5-.67-.51h-.57c-.2 0-.52.07-.79.37-.27.3-1.04 1.02-1.04 2.48s1.07 2.88 1.21 3.07c.15.2 2.1 3.2 5.08 4.49.71.31 1.26.49 1.7.63.71.22 1.36.19 1.87.12.57-.09 1.76-.72 2-1.41.25-.7.25-1.29.18-1.41-.08-.13-.27-.2-.57-.35M12.05 21.79h-.01a9.87 9.87 0 0 1-5.03-1.38l-.36-.21-3.74.98 1-3.65-.24-.37a9.86 9.86 0 0 1-1.51-5.26c0-5.45 4.44-9.88 9.89-9.88 2.64 0 5.12 1.03 6.99 2.9a9.82 9.82 0 0 1 2.89 6.99c0 5.45-4.44 9.88-9.88 9.88m8.41-18.3A11.82 11.82 0 0 0 12.05 0C5.5 0 .16 5.34.16 11.89c0 2.1.55 4.14 1.59 5.95L.06 24l6.3-1.65a11.88 11.88 0 0 0 5.68 1.45h.01c6.55 0 11.89-5.34 11.89-11.89a11.82 11.82 0 0 0-3.48-8.41z'/%3E%3C/svg%3E"); }

/* ===== 3. Adaptations aux blocs (theme-src/adaptations.css) ===== */
/* ==========================================================================
   Adaptations au balisage des blocs WordPress (phase 4).
   La feuille de la maquette est reprise telle quelle au-dessus ; ici seulement ce que le DOM des blocs change.
   Règle de spécificité (blocs-gutenberg.md) : le CSS d'un bloc est imprimé APRÈS cette feuille ;
   toute surcharge d'un style de bloc est donc plus spécifique, jamais seulement plus tardive.
   ========================================================================== */

/* ---------- socle ---------- */
:where(.wp-block-group) > :where(*), :where(.wp-block-buttons) { margin-block: 0; }
figure.wp-block-image, figure.wp-block-post-featured-image, figure.wp-block-table { margin: 0; }
img { height: auto; }
.wp-site-blocks > * + * { margin-block-start: 0; }
.site-entete, .site-pied { margin: 0; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
h1 em, h2 em, h3 em, .apropos__badge-titre em, .introuvable__code em { font-style: normal; color: var(--rouge); }
.titre-section em { font-style: normal; }
.heros h1 { margin: 2px 0 22px; }
/* surtitre : dans la maquette c'est un <span> ; en bloc c'est un paragraphe, que les règles « .section p » ne doivent pas écarter */
body p.surtitre { margin: 0 0 10px; }

/* icônes de fond, communes (les dessins sont définis plus bas, section « icônes ») */
[class*="ico-"]::before { background-repeat: no-repeat; background-position: center; background-size: contain; }

/* ---------- boutons (la classe est sur le conteneur div.wp-block-button) ---------- */
.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; justify-content: center; gap: 10px; font-family: inherit;
  font-weight: 600; font-size: 15px; line-height: 1; padding: 18px 30px; border-radius: 999px; border: 1.5px solid transparent;
  transition: background-color .25s, color .25s, border-color .25s;
}
.wp-block-button.btn--marine .wp-block-button__link { background: var(--marine-2); color: #fff; }
.wp-block-button.btn--marine .wp-block-button__link:hover { background: var(--rouge); color: #fff; }
.wp-block-button.btn--contour .wp-block-button__link { background: transparent; border-color: var(--marine-2); color: var(--marine-2); }
.wp-block-button.btn--contour .wp-block-button__link:hover { background: var(--marine-2); color: #fff; }
.wp-block-button.btn--blanc .wp-block-button__link { background: transparent; border-color: rgba(255, 255, 255, .85); color: #fff; }
.wp-block-button.btn--blanc .wp-block-button__link:hover { background: #fff; color: var(--rouge); }
.wp-block-button.btn .wp-block-button__link::before, .wp-block-button.btn .wp-block-button__link::after { content: none; width: 18px; height: 18px; flex: none; background: currentColor; -webkit-mask: var(--m) center / contain no-repeat; mask: var(--m) center / contain no-repeat; }
.wp-block-button.btn.ico-tel .wp-block-button__link::before { content: ''; --m: var(--svg-tel); }
.wp-block-button.btn.ico-wa .wp-block-button__link::before { content: ''; --m: var(--svg-wa); }
.wp-block-button.btn.ico-plus .wp-block-button__link::after { content: ''; --m: var(--svg-plus); }
.wp-block-button.btn-devis { padding: 0; border: 0; background: none; }
.wp-block-button.btn-devis .wp-block-button__link {
  padding: 13px 22px; border: 1.5px dashed var(--rouge); color: var(--rouge); background: transparent; border-radius: 0;
  font-size: 14.5px; font-weight: 500; white-space: nowrap; transition: .25s; font-family: inherit;
}
.wp-block-button.btn-devis .wp-block-button__link:hover { background: var(--rouge); color: #fff; border-style: solid; }

/* ---------- barre du haut ---------- */
.barre-haut__infos { display: flex; align-items: center; }
.barre-haut__info { display: flex; align-items: center; gap: 8px; padding-right: 18px; margin: 0; }
.barre-haut__info + .barre-haut__info { padding-left: 18px; border-left: 1px solid rgba(255, 255, 255, .18); }
.barre-haut__info::before, .barre-haut__tel::before { content: ''; width: 16px; height: 16px; flex: none; background: #fff; -webkit-mask: var(--m) center / contain no-repeat; mask: var(--m) center / contain no-repeat; }
.barre-haut__info.ico-i-pin::before { --m: var(--svg-pin); }
.barre-haut__info.ico-i-mail::before { --m: var(--svg-mail); }
.barre-haut__tel::before { --m: var(--svg-tel); }
.barre-haut__tel { margin: 0; }
.barre-haut__tel strong { color: #fff; font-weight: 600; }
.wp-block-social-links.barre-haut__reseaux { display: flex; gap: 0; margin: 0; padding: 0; align-self: stretch; }
.wp-block-social-links.barre-haut__reseaux .wp-social-link { margin: 0; border-radius: 0; background: #0a3a8c; color: #fff; display: flex; }
.wp-block-social-links.barre-haut__reseaux .wp-social-link-google { background: var(--rouge); }
.wp-block-social-links.barre-haut__reseaux .wp-block-social-link-anchor { display: grid; place-items: center; width: 46px; padding: 0; }
.wp-block-social-links.barre-haut__reseaux svg { width: 17px; height: 17px; fill: #fff; }
.wp-block-social-links.barre-haut__reseaux .wp-social-link:hover { transform: none; background: var(--rouge-2); }

/* ---------- en-tête et menu (core/navigation) ---------- */
.wp-block-site-logo.logo { display: flex; align-items: center; padding: 14px 34px 14px 0; flex: none; margin: 0; }
.wp-block-site-logo.logo img { width: 330px; height: auto; }
.menu { gap: 18px; }
.wp-block-navigation.menu-principal { gap: 26px; font-size: 15px; }
.wp-block-navigation.menu-principal .wp-block-navigation__container { gap: 26px; }
.wp-block-navigation.menu-principal .wp-block-navigation-item__content { padding: 30px 0; color: var(--encre); font-weight: 500; white-space: nowrap; transition: color .2s; }
.wp-block-navigation.menu-principal .wp-block-navigation-item__content:hover,
.wp-block-navigation.menu-principal .est-actif > .wp-block-navigation-item__content { color: var(--rouge); }
.wp-block-navigation.menu-principal .wp-block-navigation__submenu-icon { color: var(--encre); margin-left: 4px; }
.wp-block-navigation.menu-principal .wp-block-navigation__submenu-container {
  border: 0; border-top: 3px solid var(--rouge); box-shadow: var(--ombre); padding: 12px 0; min-width: 240px; background: #fff; top: 100%;
}
.wp-block-navigation.menu-principal .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 8px 20px; font-size: 14px; line-height: 1.4; }
.wp-block-navigation.menu-principal .mega > .wp-block-navigation__submenu-container { display: grid; grid-template-columns: repeat(3, 230px); padding: 16px 8px; left: -180px; }
.rond { margin: 0; }
.rond a { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: #eef1f8; font-size: 0; transition: .25s; }
.rond a::before { content: ''; width: 17px; height: 17px; background: var(--encre); -webkit-mask: var(--m) center / contain no-repeat; mask: var(--m) center / contain no-repeat; }
.rond.ico-i-tel a::before { --m: var(--svg-tel); }
.rond.ico-i-wa a::before { --m: var(--svg-wa); }
.rond a:hover { background: var(--rouge); }
.rond a:hover::before { background: #fff; }
.rond--marine a { background: var(--marine-2); }
.rond--marine a::before { background: #fff; }
.menu__devis { margin-left: 10px; }
/* panneau mobile : blanc sur blanc sans cette règle (le CSS du bloc est imprimé après) */
.wp-block-navigation.menu-principal .wp-block-navigation__responsive-container.is-menu-open { background-color: #fff !important; color: var(--encre) !important; padding: 24px; }
.wp-block-navigation.menu-principal .wp-block-navigation__responsive-container-open { width: 46px; height: 46px; border-radius: 50%; background: #fff; color: var(--marine); place-items: center; }
.wp-block-navigation.menu-principal .wp-block-navigation__container, .wp-block-navigation.menu-principal { flex-wrap: nowrap; }
.menu .wp-block-navigation.menu-principal { flex: 1 1 auto; }
/* le menu passe en panneau sous 1100 px (WordPress le fait seulement sous 600 px) */
@media (min-width: 600px) and (max-width: 1100px) {
  .wp-block-navigation.menu-principal .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
  .wp-block-navigation.menu-principal .wp-block-navigation__responsive-container-open:not(.always-shown) { display: grid !important; }
}

/* ---------- héros : couches décoratives en pseudo-éléments ---------- */
.heros::before { content: ''; position: absolute; left: -70px; top: 30px; width: 460px; height: 460px; background: var(--svg-fissure) center / contain no-repeat; opacity: .06; pointer-events: none; z-index: 1; }
.heros__visuel::after { content: ''; position: absolute; inset: 0; background: var(--svg-filets) center / 100% 100% no-repeat; pointer-events: none; }
figure.heros__photo { position: absolute; inset: 0; overflow: hidden; clip-path: polygon(38% 0, 100% 0, 100% 100%, 8% 100%); }
figure.heros__photo img, .wp-block-post-featured-image.heros__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 62% 28%; }
.heros__visuel--marine figure.heros__photo { background: var(--marine); display: flex; align-items: center; justify-content: flex-end; }
.heros__visuel--marine figure.heros__photo img { width: 62%; height: auto; aspect-ratio: 900 / 320; object-fit: contain; margin-right: 7%; }
/* note Google : même boîte que la maquette (lien en ligne dans une ligne de texte, étoiles en premier) */
p.heros__note { display: block; margin: 0; font-size: 15px; line-height: 1.75; }
.heros__note a { display: inline-flex; align-items: center; gap: 10px; margin-top: 26px; font-size: 14px; color: var(--encre); }
.heros__note a::before { content: ''; width: 88px; height: 16px; background: var(--svg-etoiles) left center / 88px 16px no-repeat; }
.fil { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font-size: 13.5px; color: var(--texte); margin: 0 0 18px; }
.fil strong { color: var(--rouge); font-weight: 400; }
.fil a { color: var(--encre); font-weight: 500; }
.fil a:hover { color: var(--rouge); }
/* fil des articles : paragraphe (liens) + catégorie de l'article, sur une seule ligne comme la maquette */
.fil > p { display: contents; }
.fil__terme { margin: 0; }
.fil__terme a { color: var(--texte); font-weight: 400; }
.meta-article > * { margin: 0; }
.wp-block-post-terms.surtitre a { color: var(--rouge); }
.wp-block-post-excerpt.heros__intro p { margin: 0; }
.heros--article .heros__visuel .wp-block-post-featured-image { position: absolute; inset: 0; margin: 0; clip-path: polygon(38% 0, 100% 0, 100% 100%, 8% 100%); }
.meta-article { display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: 14px; }

/* ---------- processus : l'icône et la pastille ---------- */
.etape__cercle::before { content: ''; width: 56px; height: 56px; background: var(--i) center / contain no-repeat; }
.etape__num { position: absolute; right: -8px; top: 50%; transform: translateY(-50%); width: 34px; height: 34px; border-radius: 50%; background: var(--marine-2); color: #fff; display: grid; place-items: center; font-size: 12.5px; font-weight: 600; box-shadow: 0 0 0 5px #fff; margin: 0; }
.etape h3 { margin-bottom: 10px; }

/* ---------- à propos ---------- */
figure.apropos__photo { border-radius: 70px 0 0 0; overflow: hidden; box-shadow: var(--ombre); }
figure.apropos__photo img { width: 100%; aspect-ratio: 760 / 900; object-fit: cover; }
figure.apropos__detail { position: absolute; right: 0; bottom: 0; width: 50%; border: 10px solid #fff; border-radius: 0 0 40px 0; overflow: hidden; box-shadow: var(--ombre); }
figure.apropos__detail img { width: 100%; aspect-ratio: 560 / 640; object-fit: cover; }
.apropos__badge p { margin: 0; }
.apropos__badge-titre strong { display: block; font-size: 34px; line-height: 1; font-weight: 700; color: #fff; }
.apropos__badge-texte { margin-top: 8px !important; font-size: 11.5px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.apropos__texte > p { margin: 22px 0 26px; }
.jauge__tete p { margin: 0; }
.jauge__piste { position: relative; }
.jauge__piste::before { content: ''; position: absolute; inset: 0 auto 0 0; width: 96%; background: var(--rouge); border-radius: 6px; transform-origin: left; }
.jauge__valeur { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); margin: 0; }
.js .jauge.vu .jauge__piste::before { animation: jauge 1.4s .3s cubic-bezier(.2, .7, .2, 1) both; }
.contact-direct { display: flex; flex-direction: column; justify-content: center; gap: 0; padding-left: 66px; min-height: 52px; position: relative; } /* l’écart de 14 px de la maquette est dans padding-left (pastille à gauche) */
.contact-direct::before { content: ''; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 52px; height: 52px; border-radius: 50%; background: var(--rouge) var(--svg-tel-blanc) center / 20px no-repeat; }
.contact-direct p { margin: 0; line-height: 1.3; }
.contact-direct__label { font-size: 13px; }
.contact-direct__num { font-size: 19px; } /* ligne de 19 × 1,3 = 24,7 px, comme le <strong> bloc de la maquette */
.contact-direct__num strong { display: inline; color: var(--encre); font-size: 19px; } /* en ligne : pas de ligne vide autour dans l'éditeur */
.coches li { display: flex; align-items: center; gap: 10px; color: var(--encre); font-weight: 500; }
.coches li::before { content: ''; width: 20px; height: 20px; flex: none; background: var(--svg-check-rouge) center / contain no-repeat; }
.coches { list-style: none; padding: 0; }

/* ---------- carrousel des services ---------- */
.fleches { display: flex; gap: 10px; }
.fleches__btn { margin: 0; width: 46px; height: 46px; border-radius: 50%; background: var(--marine-2); font-size: 0; cursor: pointer; display: grid; place-items: center; transition: background-color .25s; }
.fleches__btn::before { content: ''; width: 19px; height: 19px; background: #fff; -webkit-mask: var(--m) center / contain no-repeat; mask: var(--m) center / contain no-repeat; }
.fleches__prec::before { --m: var(--svg-fleche-g); }
.fleches__suiv::before { --m: var(--svg-fleche); }
.fleches__pause { background: #fff; box-shadow: inset 0 0 0 1.5px var(--marine-2); }
.fleches__pause::before { --m: var(--svg-pause); background: var(--marine-2); }
.fleches__pause.est-en-pause::before { --m: var(--svg-lecture); }
.fleches__btn:hover { background: var(--rouge); }
.fleches__pause:hover { background: var(--marine-2); }
.fleches__pause:hover::before { background: #fff; }
.services__piste { list-style: none; }
.carte-service { position: relative; }
figure.carte-service__img { position: relative; }
figure.carte-service__img img { width: 100%; aspect-ratio: 600 / 640; object-fit: cover; border-radius: 6px 6px 0 0; display: block; }
figure.carte-service__img::before { content: ''; position: absolute; left: 18px; top: 18px; width: 62px; height: 62px; border-radius: 4px; background: var(--marine) var(--i) center / 36px no-repeat; z-index: 2; }
figure.carte-service__img::after { content: ''; position: absolute; right: 22px; bottom: -22px; width: 44px; height: 44px; border-radius: 50%; background: var(--rouge) var(--svg-fleche-blanc) center / 18px no-repeat; box-shadow: 0 0 0 5px #fff; z-index: 2; transition: transform .3s; }
.carte-service:hover figure.carte-service__img::after { transform: rotate(-45deg); }
.carte-service__titre { font-size: 18px; font-weight: 600; padding: 30px 26px 28px; margin: 0; }
.carte-service__titre a { color: inherit; }
.carte-service__titre a::after { content: ''; position: absolute; inset: 0; z-index: 3; }
.carte-service:hover .carte-service__titre { color: var(--rouge); }
.associes .carte-service figure.carte-service__img img { aspect-ratio: 600 / 560; }

/* ---------- zones ---------- */
.zones__carte { margin: 44px 0 8px; aspect-ratio: 600 / 479; background: var(--svg-carte-idf) center / contain no-repeat; position: relative; } /* 8px : espace sous la carte en ligne de la maquette */
.zones__carte-lien { position: absolute; left: 36%; top: 29%; width: 12%; height: 9%; margin: 0; }
.zones__carte-lien a { display: block; width: 100%; height: 100%; font-size: 0; }
.zones__paris-titre { display: flex; align-items: center; gap: 10px; }
.zones__paris-titre::after { content: '75'; display: inline-grid; place-items: center; min-width: 40px; height: 30px; padding: 0 6px; border-radius: 4px; background: var(--marine); color: #fff; font-size: 13px; font-weight: 600; }
.pastilles, .zones__deps, .bande-zones__liste, .reperes, .pied__liens, .parties__index ul { list-style: none; padding: 0; } /* marges : celles de la maquette */
.zones__deps a strong, .bande-zones__liste a strong {
  display: inline-grid; place-items: center; min-width: 40px; height: 30px; padding: 0 6px; border-radius: 4px; background: var(--marine); color: #fff; font-size: 13px; font-weight: 600;
}
.zones__deps a::after { content: ''; margin-left: auto; width: 17px; height: 17px; background: var(--svg-fleche-rouge) center / contain no-repeat; transition: transform .2s; }
.zones__deps a:hover::after { transform: translateX(4px); }

/* ---------- FAQ (core/details) ---------- */
.faq__item { border: 1px solid var(--trait); margin: 0 0 14px; background: #fff; }
.faq__item:last-child { margin-bottom: 14px; } /* WordPress retire la marge du dernier bloc ; la maquette la garde */
.faq__item > :not(summary) { padding: 0 24px; font-size: 14.5px; }
.faq__item > p { margin: 0 0 1em; }
.faq__item > p:first-of-type { padding-top: 20px; }
.faq__item > p:last-child { padding-bottom: 6px; }
.faq--accueil { padding: 120px 0 170px; position: relative; overflow: hidden; }
.faq--accueil::after { content: ''; position: absolute; right: -118px; bottom: 96px; width: 270px; aspect-ratio: 345 / 620; background: url(assets/img/technicien-detoure.webp) center bottom / contain no-repeat; filter: drop-shadow(0 18px 30px rgba(12, 27, 77, .18)); pointer-events: none; }
@media (max-width: 1400px) { .faq--accueil::after { display: none; } }
.wp-block-details summary { list-style: none; }

/* ---------- bandeau d'appel et avis ---------- */
figure.appel__photo { align-self: stretch; clip-path: polygon(0 0, 100% 0, 86% 100%, 0 100%); }
figure.appel__photo img { width: 100%; height: 100%; object-fit: cover; }
.appel__texte h2 { color: #fff; }
.appel__texte p, .appel__tel { margin: 0; }
.appel__tel a { color: #fff; font-weight: 700; font-size: 18px; letter-spacing: .02em; }
figure.avis__image img { width: 100%; aspect-ratio: 760 / 660; object-fit: cover; border-radius: 6px; }
.avis__note p { margin: 0; }
.avis__note-chiffre strong { font-size: 30px; line-height: 1; padding-right: 14px; border-right: 1px solid rgba(255, 255, 255, .4); color: #fff; }
.avis__note-texte { font-size: 12px; line-height: 1.35; font-weight: 500; text-transform: uppercase; letter-spacing: .04em; }
.avis__titre { margin: 4px 0 18px; }
.avis__texte { font-size: 16px; line-height: 1.8; margin: 0; }
.avis__auteur { display: flex; align-items: center; gap: 14px; margin-top: 30px; }
.avis__auteur::after { content: ''; margin-left: auto; width: 40px; height: 40px; border-radius: 50%; background: #fff var(--svg-google-marine) center / 18px no-repeat; }
.avis__init { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: #1d3a7e; color: #fff; font-weight: 600; font-size: 15px; margin: 0; flex: none; }
.avis__nom { margin: 0; font-size: 13px; line-height: 1.4; }
.avis__nom strong { color: #fff; font-size: 16px; }
.points__btn { width: 10px; height: 10px; border-radius: 10px; background: rgba(255, 255, 255, .3); margin: 0; font-size: 0; cursor: pointer; transition: .3s; }
.points__btn.est-actif { width: 30px; background: var(--rouge); }
.avis__tous { margin: 0; }
.avis__tous a { display: inline-flex; align-items: center; gap: 8px; color: #fff; font-weight: 500; font-size: 14.5px; }

/* ---------- articles (boucle de requête) ---------- */
.wp-block-post-template.blog__grille { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; list-style: none; padding: 0; margin: 56px 0 0; text-align: left; }
.blog-liste .wp-block-post-template.blog__grille { margin-top: 0; }
.carte-article { background: #fff; border-radius: 6px; box-shadow: var(--ombre); overflow: hidden; height: 100%; position: relative; display: flex; flex-direction: column; }
.carte-article__img img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.wp-block-post-terms.etiquette { margin: -15px 0 0 24px; position: relative; z-index: 2; align-self: flex-start; }
.wp-block-post-terms.etiquette a { display: inline-block; background: var(--marine); color: #fff; font-size: 12.5px; font-weight: 500; padding: 6px 16px; border-radius: 999px; line-height: 1.5; }
.carte-article__titre { font-size: 18px; font-weight: 600; line-height: 1.45; margin: 18px 26px 12px; }
.carte-article__titre a::after { content: ''; position: absolute; inset: 0; }
.carte-article__extrait { margin: 0 26px 10px; font-size: 14px; }
.wp-block-read-more.lire { margin: auto 26px 26px; font-size: 14px; font-weight: 500; color: var(--encre); }
.articles__vide { text-align: center; margin-top: 30px; }
.pagination { margin-top: 40px; display: flex; gap: 12px; justify-content: center; }

/* ---------- formulaire Contact Form 7 et carte ---------- */
.formulaire .wpcf7-form-control-wrap { display: block; }
.formulaire .wpcf7-form-control-wrap > :is(input, select, textarea) { display: block; } /* sans ligne de texte autour : même hauteur que la maquette */
.formulaire .wpcf7 form { margin: 0; }
.formulaire .formulaire__grille label { display: flex; flex-direction: column; gap: 6px; font-size: 13.5px; font-weight: 500; color: var(--encre); }
/* bouton d'envoi = .btn.btn--marine de la maquette ; la flèche est une image de fond (un champ <input> n'a pas de ::after) */
.formulaire input[type="submit"] { background: var(--marine-2) var(--svg-fleche-blanc) no-repeat right 30px center / 18px 18px; color: #fff; border: 1.5px solid transparent; border-radius: 999px; padding: 18px 58px 18px 30px; font: 600 15px/18px var(--police); cursor: pointer; margin: 0; width: auto; transition: background-color .25s, transform .25s; }
.formulaire input[type="submit"]:hover { background-color: var(--rouge); }
.formulaire input[type="submit"]:active { transform: translateY(1px); }
.formulaire .wpcf7-not-valid-tip { color: var(--rouge); font-size: 13px; margin-top: 4px; }
.formulaire .wpcf7-response-output { margin: 18px 0 0 !important; padding: 12px 16px !important; border-radius: 4px; font-size: 14px; }
.formulaire .wpcf7-spinner { display: none; }
.carte-google { position: relative; border-radius: 6px; overflow: hidden; min-height: 520px; box-shadow: var(--ombre); background: #eef1f7 var(--svg-carte-fond) center / 92% auto no-repeat; }
.carte-google__fiche p { margin: 0; }
.carte-google__fiche::before { content: ''; width: 50px; height: 50px; border-radius: 50%; background: var(--brume) var(--svg-google-marine) center / 22px no-repeat; margin-bottom: 6px; }
.carte-google__nom strong { color: var(--encre); font-size: 19px; }
.carte-google__note { display: inline-flex; align-items: center; gap: 8px; color: var(--encre); font-weight: 600; margin-bottom: 14px !important; }
.carte-google__note::before { content: ''; width: 88px; height: 16px; background: var(--svg-etoiles) left center / 88px 16px no-repeat; }
.carte-google__info { font-size: 12px; color: var(--texte-clair); margin-top: 6px !important; line-height: 1.5; }
.carte-google__info a { color: var(--rouge); text-decoration: underline; }
.carte-google iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; z-index: 3; }

/* ---------- pages intérieures ---------- */
.encadre { padding-top: 118px; } /* 40 + pastille 60 + 18, comme la maquette */
.encadre::after { content: ''; position: absolute; left: 36px; top: 40px; width: 60px; height: 60px; border-radius: 50%; background: rgba(255, 255, 255, .08) var(--i-blanc) center / 34px no-repeat; }
.encadre p { margin: 0; }
.carte-info::before { content: ''; display: block; width: 62px; height: 62px; background: var(--marine) var(--i-blanc) center / 36px no-repeat; border-radius: 4px; margin-bottom: 22px; }
.carte-info p { margin: 0; }
.carte-info a { color: var(--encre); }
.tete-centree p { margin-left: auto; margin-right: auto; }
.bloc-texte__corps > p { margin: 18px 0 0; }
.partie p { margin: 0 0 10px; }
/* même boîte que le lien de la maquette : marge portée par le lien dans la ligne, pas par le paragraphe */
.partie p.partie__appel { display: block; margin: 0; font-size: 15px; font-weight: 400; line-height: 1.75; } /* = ligne de l'article de la maquette */
.partie__appel a { display: inline-flex; align-items: center; gap: 8px; margin-top: 16px; font-weight: 600; color: var(--marine-2); font-size: 14.5px; }
.partie__appel a::before { content: ''; width: 1em; height: 1em; background: var(--svg-tel-marine) center / contain no-repeat; }
.reperes li { list-style: none; }
.wp-block-table.tableau-tarifs table { width: 100%; border-collapse: collapse; background: #fff; font-size: 15px; }
.wp-block-table.tableau-tarifs { box-shadow: var(--ombre); border-radius: 6px; overflow-x: auto; }
.wp-block-table.tableau-tarifs th, .wp-block-table.tableau-tarifs td { padding: 15px 20px; text-align: right; border: 0; border-bottom: 1px solid var(--trait); vertical-align: top; }
.wp-block-table.tableau-tarifs th:first-child, .wp-block-table.tableau-tarifs td:first-child { text-align: left; }
.wp-block-table.tableau-tarifs thead { border: 0; }
.wp-block-table.tableau-tarifs thead th { background: var(--marine); color: #fff; font-weight: 600; font-size: 14px; }
.wp-block-table.tableau-tarifs tbody tr:nth-child(even) { background: var(--brume); }
/* = .tableau-defile de la maquette : sur petit écran, le tableau garde sa largeur et défile ; la grille des tarifs, elle, se resserre */
.wp-block-table.tableau-tarifs table { min-width: 520px; }
.tarifs .wp-block-table.tableau-tarifs table { min-width: 0; }
@media (max-width: 400px) { .tarifs .wp-block-table.tableau-tarifs th, .tarifs .wp-block-table.tableau-tarifs td { padding: 10px 7px; font-size: 12.5px; } }
.tarifs__titre { font-size: 20px; font-weight: 600; line-height: 1.75; margin-bottom: 16px; } /* = légende du tableau de la maquette */
.tarifs__notes { list-style: none; padding: 0; margin-top: 26px; display: grid; gap: 10px; }
.tarifs__notes li { display: flex; gap: 10px; align-items: flex-start; }
.tarifs__notes li::before { content: ''; width: 19px; height: 19px; flex: none; margin-top: 4px; background: var(--svg-check-rouge) center / contain no-repeat; }
.tarifs__plus summary { cursor: pointer; padding: 20px 26px; font-weight: 600; color: var(--encre); }
.tarifs__plus > :not(summary) { margin: 0 26px 18px; }
.texte-legal .identite { list-style: none; padding: 0; margin: 0 0 1em; display: grid; gap: 8px; }
/* = liste de définitions de la maquette : intitulé dans une colonne de 240 px, valeur à droite ; empilés sur téléphone */
.texte-legal .identite li { position: relative; padding-left: 260px; font-size: 15px; } /* dt/dd de la maquette : 15 px, pas les 15,5 px des listes */
.texte-legal .identite li > strong:first-child { position: absolute; left: 0; top: 0; width: 240px; font-weight: 600; color: var(--encre); }
.texte-legal .wp-block-table { margin: 0 0 1em; }
.introuvable__code { font-size: clamp(90px, 14vw, 170px); font-weight: 700; line-height: 1; color: var(--marine); margin: 0 0 12px; }
.introuvable__retour { margin: 22px 0 15px; } /* = paragraphe de la maquette (marge du bas : 1em) */
.sommaire ol { margin: 0; }
.article__retenir { margin: 44px 0 0; } /* pastille d'icône comme les autres encadrés (maquette) */
.article__retenir .coches li { color: #fff; }
.article__sources ol { font-size: 13.5px; }

/* ---------- pied de page ---------- */
.pied__cartes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; transform: translateY(-50%); margin-bottom: -20px; }
.pied__carte { display: flex; flex-direction: column; justify-content: center; background: #fff; padding: 26px 26px 26px 98px; border-radius: 6px 6px 40px 6px; box-shadow: 0 18px 40px rgba(4, 35, 97, .14); color: var(--texte); line-height: 1.5; position: relative; min-height: 106px; }
.pied__carte::before { content: ''; position: absolute; left: 26px; top: 50%; transform: translateY(-50%); width: 54px; height: 54px; border-radius: 50%; background: #fdecec var(--i-rouge) center / 22px no-repeat; }
.pied__carte p { margin: 0; }
.pied__carte strong { display: block; color: var(--encre); font-size: 16px; }
.pied__carte a:hover { color: var(--rouge); }
.pied__colonne h3 { color: #fff; font-size: 18px; font-weight: 600; margin-bottom: 22px; position: relative; padding-bottom: 12px; }
.pied__colonne h3::after { content: ''; position: absolute; left: 0; bottom: 0; width: 36px; height: 2px; background: var(--rouge); }
.pied__liens li + li { margin-top: 8px; }
.pied__liens a { display: inline-flex; align-items: center; gap: 8px; transition: color .2s; }
.pied__liens a::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--rouge); }
.pied__liens a:hover { color: #fff; }
figure.pied__logo img { width: 280px; aspect-ratio: 560 / 239; margin: -8px 0 18px -8px; }
.pied__marque p { margin: 0; }
.wp-block-social-links.pied__reseaux { display: flex; gap: 8px; margin: 20px 0 0; padding: 0; }
.wp-block-social-links.pied__reseaux .wp-social-link { margin: 0; border-radius: 4px; background: rgba(255, 255, 255, .08); color: #fff; }
.wp-block-social-links.pied__reseaux .wp-block-social-link-anchor { display: grid; place-items: center; width: 40px; height: 40px; padding: 0; }
.wp-block-social-links.pied__reseaux svg { width: 17px; height: 17px; fill: #fff; }
.wp-block-social-links.pied__reseaux .wp-social-link:hover { transform: none; background: var(--rouge); }
.wp-block-latest-posts.pied__articles { list-style: none; padding: 0; margin: 0; }
/* pas encore d'article publié : la colonne « Derniers articles » du pied de page ne s'affiche pas */
.pied__grille > :has(> .pied__articles):not(:has(.pied__articles li)) { display: none; }
.wp-block-latest-posts.pied__articles li { display: flex; align-items: center; gap: 14px; margin: 0 0 16px; }
.wp-block-latest-posts.pied__articles .wp-block-latest-posts__featured-image { margin: 0; flex: none; }
.wp-block-latest-posts.pied__articles .wp-block-latest-posts__featured-image img { width: 72px; height: 60px; object-fit: cover; border-radius: 4px; }
.wp-block-latest-posts.pied__articles a { color: #fff; font-weight: 500; line-height: 1.45; }
.pied__bas-in p { margin: 0; }
.pied__bas a:hover { color: #fff; }
.haut { position: fixed; right: 26px; bottom: 26px; z-index: 40; margin: 0; opacity: 0; visibility: hidden; transform: translateY(10px); transition: .3s; }
.haut a { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: var(--rouge); font-size: 0; box-shadow: 0 10px 24px rgba(207, 13, 20, .35); }
.haut a::before { content: ''; width: 20px; height: 20px; background: var(--svg-haut-blanc) center / contain no-repeat; }
.haut.est-visible { opacity: 1; visibility: visible; transform: none; }
.barre-mobile p { margin: 0; }
.barre-mobile a::before { content: ''; width: 20px; height: 20px; background: var(--m2) center / contain no-repeat; }
.barre-mobile__appel a { background: var(--marine-2); --m2: var(--svg-tel-blanc); }
.barre-mobile__wa a { background: var(--rouge); --m2: var(--svg-wa-blanc); }

/* ---------- animations : les blocs portent la classe « anim » à la place de data-anim ---------- */
@media (prefers-reduced-motion: no-preference) {
  .js .anim { opacity: 0; transform: translateY(28px); transition: opacity .8s cubic-bezier(.2, .7, .2, 1), transform .8s cubic-bezier(.2, .7, .2, 1); }
  .js .anim.vu { opacity: 1; transform: none; }
  .js .heros__texte > * { animation: monte .8s cubic-bezier(.2, .7, .2, 1) both; }
  .js .heros figure.heros__photo { animation: revele 1.1s .15s cubic-bezier(.7, 0, .2, 1) both; }
  .js .heros figure.heros__photo::after { content: ''; position: absolute; inset: -10%; background: linear-gradient(100deg, transparent 38%, rgba(255, 255, 255, .5) 48%, rgba(255, 255, 255, .14) 52%, transparent 62%); transform: translateX(-110%); animation: reflet 1.5s 1.25s ease-in-out forwards; pointer-events: none; }
  .js .heros__visuel::after { animation: filets 1s .5s cubic-bezier(.6, 0, .2, 1) both; }
}

/* ---------- adaptatif ---------- */
@media (max-width: 1240px) {
  .wp-block-site-logo.logo img { width: 280px; }
  .wp-block-navigation.menu-principal, .wp-block-navigation.menu-principal .wp-block-navigation__container { gap: 18px; }
  .menu__actions .rond { display: none; }
}
@media (max-width: 1100px) {
  .menu { position: static; display: flex; flex-direction: row; background: transparent; box-shadow: none; padding: 0; margin: 0 0 0 auto; flex: none; }
  .menu__actions { display: none; }
  .wp-block-navigation.menu-principal .wp-block-navigation-item__content { padding: 12px 0; }
  .wp-block-navigation.menu-principal .mega > .wp-block-navigation__submenu-container { display: block; }
  .wp-block-post-template.blog__grille { grid-template-columns: repeat(2, 1fr); }
  .heros__visuel::after { display: none; }
  figure.heros__photo { clip-path: polygon(22% 0, 100% 0, 100% 100%, 0 100%); }
}
@media (max-width: 760px) {
  .faq--accueil { padding: 80px 0 150px; } /* = .faq de la maquette sur téléphone */
  .pied__cartes { grid-template-columns: 1fr; transform: none; margin: -70px 0 40px; gap: 14px; }
  .barre-mobile a { display: flex; align-items: center; justify-content: center; gap: 10px; height: 62px; color: #fff; font-weight: 600; font-size: 16px; }
  .texte-legal .identite { gap: 2px; }
  .texte-legal .identite li { padding-left: 0; margin-bottom: 10px; }
  .texte-legal .identite li > strong:first-child { position: static; display: block; width: auto; margin-bottom: 2px; }
  .carte-google { min-height: 420px; } /* = maquette sur téléphone */
  /* bandeau d'appel : bouton sur toute la largeur, comme le lien .btn de la maquette (colonne étirée) */
  .appel__actions .wp-block-buttons, .appel__actions .wp-block-button, .appel__actions .wp-block-button__link { width: 100%; }
  .wp-block-site-logo.logo img { width: 230px; }
  .wp-block-post-template.blog__grille { grid-template-columns: 1fr; }
  .wp-block-table.tableau-tarifs th, .wp-block-table.tableau-tarifs td { padding: 12px 10px; font-size: 13.5px; }
  .barre-mobile { display: grid; }
  .haut { bottom: 76px; right: 16px; }
}
