/*
Theme Name: SOS PNEU
Theme URI: https://sospneu-pro.fr
Author: SOS PNEU
Description: Thème bloc sur mesure de SOS PNEU — dépannage et changement de pneus, service mobile en Centre-Val de Loire. Noir, blanc, orange ; roue en mouvement.
Version: 1.0.7
Requires at least: 6.6
Requires PHP: 8.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: sos-pneu
Tags: block-theme, full-site-editing, business, dark
*/

/* ==========================================================================
   Jetons
   ========================================================================== */

:root {
  --noir: #050505;
  --anthracite: #111111;
  --gris: #1A1A1A;
  --blanc: #FFFFFF;
  --orange: #FF6A00;
  --orange-clair: #FF7A1A;

  --texte: #BDBDBD;
  --texte-doux: #8A8A8A;
  --filet: rgba(255, 255, 255, .1);

  --marge: clamp(20px, 5.5vw, 80px);
  --entete: 84px;
  --titre: 'Archivo', system-ui, sans-serif;
  --corps: 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --ease: cubic-bezier(.2, .7, .2, 1);
}

/* ==========================================================================
   Base
   ========================================================================== */

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--noir);
  color: var(--blanc);
  font-family: var(--corps);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { display: block; max-width: 100%; height: auto; } /* height:auto obligatoire : l'attribut height des blocs image l'emporterait */
a { color: inherit; text-decoration: none; }
h1, h2, h3, p, ul, ol, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
:focus-visible { outline: 2px solid var(--orange); outline-offset: 4px; }
[hidden] { display: none !important; }

/* Espacement automatique de Gutenberg : coupé dans theme.json (blockGap 0px),
   filet de sécurité ici à spécificité NULLE pour ne jamais écraser les marges des composants. */
:where(.wp-block-group) > :where(*),
:where(.wp-block-buttons),
:where(.wp-block-post-content) > :where(*) { margin-block: 0; }
figure.wp-block-image { margin: 0; }
.wp-site-blocks { padding: 0; }

/* Grain photographique sur toute la page */
body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 100;
  pointer-events: none;
  opacity: .06;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.enveloppe { width: 100%; max-width: 1440px; margin-inline: auto; padding-inline: var(--marge); }

/* ---------- Pictogrammes (masques CSS : aucun SVG dans le contenu) ---------- */

.ico-tel { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E"); }
.ico-mail { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.5' y='4.5' width='19' height='15' rx='2'/%3E%3Cpath d='m3 6 9 7 9-7'/%3E%3C/svg%3E"); }
.ico-zone { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6.2-8 12-8 12s-8-5.8-8-12a8 8 0 0 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='2.8'/%3E%3C/svg%3E"); }
.ico-snap { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2.4c-3.2 0-5.6 2.4-5.6 5.7v2.4c-.7.1-1.3-.3-1.8 0-.6.3-.4 1.1.2 1.4.6.3 1.5.5 1.6 1 .2.6-.7 1.9-1.7 2.9-.8.8-1.9 1.4-2.9 1.6-.3.1-.4.4-.2.7.5.6 2 .8 2.5 1 .2.3.1 1 .5 1.2.5.2 1.4-.1 2.4.1 1.3.3 2.3 2 5 2s3.7-1.7 5-2c1-.2 1.9.1 2.4-.1.4-.2.3-.9.5-1.2.5-.2 2-.4 2.5-1 .2-.3.1-.6-.2-.7-1-.2-2.1-.8-2.9-1.6-1-1-1.9-2.3-1.7-2.9.1-.5 1-.7 1.6-1 .6-.3.8-1.1.2-1.4-.5-.3-1.1.1-1.8 0V8.1c0-3.3-2.4-5.7-5.6-5.7Z'/%3E%3C/svg%3E"); }
.ico-pneu { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Ccircle cx='12' cy='12' r='4.5'/%3E%3Cpath d='M12 2.5v3M12 18.5v3M2.5 12h3M18.5 12h3M5.3 5.3l2.1 2.1M16.6 16.6l2.1 2.1M5.3 18.7l2.1-2.1M16.6 7.4l2.1-2.1'/%3E%3C/svg%3E"); }
.ico-cle { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z'/%3E%3C/svg%3E"); }
.ico-equilibre { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v18M7 21h10M4 7h16'/%3E%3Cpath d='M7 7 4 14a3 3 0 0 0 6 0Z'/%3E%3Cpath d='m17 7-3 7a3 3 0 0 0 6 0Z'/%3E%3C/svg%3E"); }
.ico-jauge { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 17a8.5 8.5 0 1 1 17 0'/%3E%3Cpath d='m12 17 4.2-5.2'/%3E%3Ccircle cx='12' cy='17' r='1.3'/%3E%3Cpath d='m6.2 11.2 1.2.9M12 6.5V8M17.8 11.2l-1.2.9'/%3E%3C/svg%3E"); }
.ico-reparation { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='13' r='8'/%3E%3Ccircle cx='11' cy='13' r='3.5'/%3E%3Cpath d='M15.6 8.4 20 4M18.3 2.3l3.4 3.4'/%3E%3C/svg%3E"); }
.ico-remplacement { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.5 12a8.5 8.5 0 0 1-14.8 5.7M3.5 12a8.5 8.5 0 0 1 14.8-5.7'/%3E%3Cpath d='M18.5 2.5v4h-4M5.5 21.5v-4h4'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E"); }
.ico-maison { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 10.5 12 3l9 7.5'/%3E%3Cpath d='M5.5 9v11.5h13V9'/%3E%3Cpath d='M10 20.5v-6h4v6'/%3E%3C/svg%3E"); }
.ico-route { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8.5 3 4 21M15.5 3 20 21'/%3E%3Cpath d='M12 3.5v3M12 10.5v3M12 17.5v3'/%3E%3C/svg%3E"); }
.ico-bureau { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 21V5.5a1.5 1.5 0 0 1 1.5-1.5h8A1.5 1.5 0 0 1 15 5.5V21'/%3E%3Cpath d='M15 9.5h3.5A1.5 1.5 0 0 1 20 11v10M2.5 21h19M7.5 8h4M7.5 12h4M7.5 16h4'/%3E%3C/svg%3E"); }
.ico-voiture { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 11 6.7 6.4A2 2 0 0 1 8.6 5h6.8a2 2 0 0 1 1.9 1.4L19 11'/%3E%3Crect x='3' y='11' width='18' height='6.5' rx='1.5'/%3E%3Cpath d='M5.5 17.5V20M18.5 17.5V20'/%3E%3Ccircle cx='7' cy='14.2' r='1'/%3E%3Ccircle cx='17' cy='14.2' r='1'/%3E%3C/svg%3E"); }
.ico-camion { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 6h11v10.5h-11Z'/%3E%3Cpath d='M13.5 9.5h4l3.5 3.5v3.5h-7.5'/%3E%3Ccircle cx='7' cy='17.5' r='2'/%3E%3Ccircle cx='17' cy='17.5' r='2'/%3E%3C/svg%3E"); }
.ico-eclair { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 2 4 14h7l-1 8 9-12h-7Z'/%3E%3C/svg%3E"); }
.ico-bouclier { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2.5 4 5.5v6c0 5 3.4 8.8 8 10 4.6-1.2 8-5 8-10v-6Z'/%3E%3Cpath d='m8.5 12 2.5 2.5 4.5-5'/%3E%3C/svg%3E"); }
.ico-alerte { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 2 20.5h20Z'/%3E%3Cpath d='M12 9.5v5M12 17.5v.3'/%3E%3C/svg%3E"); }
.ico-soleil { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2v2.5M12 19.5V22M2 12h2.5M19.5 12H22M4.9 4.9l1.8 1.8M17.3 17.3l1.8 1.8M4.9 19.1l1.8-1.8M17.3 6.7l1.8-1.8'/%3E%3C/svg%3E"); }
.ico-flocon { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2v20M3.3 7l17.4 10M3.3 17l17.4-10'/%3E%3Cpath d='m9.5 3.5 2.5 2 2.5-2M9.5 20.5l2.5-2 2.5 2'/%3E%3C/svg%3E"); }
.ico-saisons { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 3a9 9 0 0 0 0 18Z' fill='%23000'/%3E%3C/svg%3E"); }

/* ---------- Typographie ---------- */

.kicker {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: var(--titre);
  font-stretch: 125%;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--orange);
}
.kicker::before {
  content: "";
  width: 28px;
  height: 2px;
  flex: none;
  background: currentColor;
}
/* Variante avec pastille pulsante (urgence) */
.kicker-pulse { position: relative; padding-left: 20px; gap: 0; color: #E2E2E2; }
.kicker-pulse::before {
  position: absolute;
  left: 0;
  top: 50%;
  width: 8px;
  height: 8px;
  margin-top: -4px;
  border-radius: 50%;
  background: var(--orange);
}
.kicker-pulse::after {
  content: "";
  position: absolute;
  left: -6px;
  top: 50%;
  width: 20px;
  height: 20px;
  margin-top: -10px;
  border: 1px solid var(--orange);
  border-radius: 50%;
  animation: pouls 2s ease-out infinite;
}

.titre {
  margin-top: 22px;
  font-family: var(--titre);
  font-stretch: 75%;
  font-weight: 800;
  font-size: clamp(44px, 5.6vw, 88px);
  line-height: .92;
  letter-spacing: -.005em;
  text-transform: uppercase;
  text-wrap: balance;
  hyphens: none;
}
.titre em { display: block; font-style: italic; color: var(--orange); }

.lien a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding-bottom: 6px;
  border-bottom: 1.5px solid var(--orange);
  font-size: 15px;
  font-weight: 700;
  transition: gap .3s var(--ease), color .3s;
}
.lien a::after {
  content: "";
  width: 16px;
  height: 16px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
}
.lien a:hover { gap: 16px; color: var(--orange); }

/* ==========================================================================
   Boutons (core/button : la classe est sur le conteneur, le style sur le lien)
   ========================================================================== */

.wp-block-buttons { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 16px; }
.wp-block-buttons > .wp-block-button { display: flex; }
.wp-block-button .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 60px;
  padding: 0 30px;
  border: 1px solid transparent;
  border-radius: 999px;
  box-shadow: none;
  font-family: var(--corps);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.15;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  word-break: normal;
  cursor: pointer;
  transition: background .3s, color .3s, border-color .3s, box-shadow .3s, transform .3s var(--ease);
}
.wp-block-button .wp-block-button__link:hover { transform: translateY(-2px); }

.wp-block-button.btn-orange .wp-block-button__link { background: var(--orange); color: var(--noir); }
.wp-block-button.btn-orange .wp-block-button__link:hover { background: var(--orange-clair); box-shadow: 0 14px 44px rgba(255, 106, 0, .35); }

.wp-block-button.btn-contour .wp-block-button__link { background: transparent; border-color: rgba(255, 255, 255, .28); color: var(--blanc); }
.wp-block-button.btn-contour .wp-block-button__link:hover { border-color: var(--orange); color: var(--orange); }

/* Bouton d'appel : pastille noire + libellé sur deux lignes (<em> petit, <strong> grand) */
.wp-block-button.btn-appel .wp-block-button__link {
  display: inline-grid;
  grid-template-columns: auto auto;
  align-items: center;
  justify-content: start;
  column-gap: 14px;
  min-height: 64px;
  padding: 0 30px 0 8px;
  font-size: 19px;
  font-weight: 800;
  letter-spacing: .01em;
  text-align: left;
}
.wp-block-button.btn-appel .wp-block-button__link::before {
  content: "";
  grid-row: 1 / span 2;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: var(--noir) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FF6A00' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E") center / 18px no-repeat;
  transition: transform .5s var(--ease);
}
.wp-block-button.btn-appel .wp-block-button__link:hover::before { transform: rotate(-12deg) scale(1.06); }
.wp-block-button.btn-appel em {
  grid-column: 2;
  align-self: end;
  margin-bottom: 2px;
  font-size: 11px;
  font-style: normal;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  opacity: .72;
}
.wp-block-button.btn-appel strong { grid-column: 2; align-self: start; font-weight: 800; }

/* Bouton téléphone compact (en-tête) */
.wp-block-button.btn-tel .wp-block-button__link { min-height: 46px; padding: 0 20px 0 6px; gap: 10px; font-size: 14px; }
.wp-block-button.btn-tel .wp-block-button__link::before {
  content: "";
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--noir) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FF6A00' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E") center / 15px no-repeat;
}

/* Bouton en forme de lien souligné (à côté d'un bouton plein) */
.wp-block-button.btn-lien .wp-block-button__link {
  min-height: 0;
  margin-left: 10px;
  padding: 0 0 6px;
  gap: 10px;
  border: 0;
  border-bottom: 1.5px solid var(--orange);
  border-radius: 0;
  background: none;
  color: var(--blanc);
  transition: gap .3s var(--ease), color .3s;
}
.wp-block-button.btn-lien .wp-block-button__link::after {
  content: "";
  width: 16px;
  height: 16px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
}
.wp-block-button.btn-lien .wp-block-button__link:hover { gap: 16px; color: var(--orange); transform: none; }

/* Bouton plein avec pictogramme téléphone */
.wp-block-button.btn-ico-tel .wp-block-button__link::before {
  content: "";
  width: 18px;
  height: 18px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Bouton Snapchat */
.wp-block-button.btn-snap .wp-block-button__link::before {
  content: "";
  width: 20px;
  height: 20px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2.4c-3.2 0-5.6 2.4-5.6 5.7v2.4c-.7.1-1.3-.3-1.8 0-.6.3-.4 1.1.2 1.4.6.3 1.5.5 1.6 1 .2.6-.7 1.9-1.7 2.9-.8.8-1.9 1.4-2.9 1.6-.3.1-.4.4-.2.7.5.6 2 .8 2.5 1 .2.3.1 1 .5 1.2.5.2 1.4-.1 2.4.1 1.3.3 2.3 2 5 2s3.7-1.7 5-2c1-.2 1.9.1 2.4-.1.4-.2.3-.9.5-1.2.5-.2 2-.4 2.5-1 .2-.3.1-.6-.2-.7-1-.2-2.1-.8-2.9-1.6-1-1-1.9-2.3-1.7-2.9.1-.5 1-.7 1.6-1 .6-.3.8-1.1.2-1.4-.5-.3-1.1.1-1.8 0V8.1c0-3.3-2.4-5.7-5.6-5.7Z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2.4c-3.2 0-5.6 2.4-5.6 5.7v2.4c-.7.1-1.3-.3-1.8 0-.6.3-.4 1.1.2 1.4.6.3 1.5.5 1.6 1 .2.6-.7 1.9-1.7 2.9-.8.8-1.9 1.4-2.9 1.6-.3.1-.4.4-.2.7.5.6 2 .8 2.5 1 .2.3.1 1 .5 1.2.5.2 1.4-.1 2.4.1 1.3.3 2.3 2 5 2s3.7-1.7 5-2c1-.2 1.9.1 2.4-.1.4-.2.3-.9.5-1.2.5-.2 2-.4 2.5-1 .2-.3.1-.6-.2-.7-1-.2-2.1-.8-2.9-1.6-1-1-1.9-2.3-1.7-2.9.1-.5 1-.7 1.6-1 .6-.3.8-1.1.2-1.4-.5-.3-1.1.1-1.8 0V8.1c0-3.3-2.4-5.7-5.6-5.7Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ==========================================================================
   En-tête
   ========================================================================== */

.entete {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 50;
  height: var(--entete);
}
/* Le fond flouté vit sur un pseudo-élément : un backdrop-filter posé sur l'en-tête
   lui-même emprisonnerait le panneau du menu mobile (position: fixed) dans sa boîte. */
.entete::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: rgba(5, 5, 5, .8);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(255, 255, 255, .07);
  opacity: 0;
  transition: opacity .35s;
}
.entete.defile::before { opacity: 1; }
.admin-bar .entete { top: 32px; }
.entete > .enveloppe { height: 100%; display: flex; align-items: center; gap: 36px; }

.logo {
  font-family: var(--titre);
  font-stretch: 125%;
  font-size: 22px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -.01em;
  white-space: nowrap;
}
.logo strong { font-weight: inherit; color: var(--orange); }

.wp-block-navigation.nav { margin-left: auto; }
.wp-block-navigation.nav .wp-block-navigation__container { gap: 28px; }
.wp-block-navigation.nav .wp-block-navigation-item__content {
  position: relative;
  padding: 6px 0;
  font-size: 14px;
  font-weight: 600;
  color: #C9C9C9;
  white-space: nowrap;
  transition: color .25s;
}
.wp-block-navigation.nav .wp-block-navigation-item__content::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 2px;
  background: var(--orange);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform .35s var(--ease);
}
.wp-block-navigation.nav .wp-block-navigation-item__content:hover,
.wp-block-navigation.nav .current-menu-item > .wp-block-navigation-item__content { color: var(--blanc); }
.wp-block-navigation.nav .wp-block-navigation-item__content:hover::after,
.wp-block-navigation.nav .current-menu-item > .wp-block-navigation-item__content::after { transform: scaleX(1); transform-origin: left; }

/* Menu mobile : core/navigation en surcouche, habillé aux couleurs du site */
.wp-block-navigation.nav-mobile { display: none; }
.wp-block-navigation.nav-mobile .wp-block-navigation__responsive-container-open {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 50%;
  color: var(--blanc);
}
.wp-block-navigation.nav-mobile .wp-block-navigation__responsive-container-open svg { width: 22px; height: 22px; }
.wp-block-navigation.nav-mobile .wp-block-navigation__responsive-container.is-menu-open {
  background-color: var(--noir) !important;
  color: var(--blanc) !important;
  padding: calc(var(--entete) + 12px) var(--marge) 120px;
}
.wp-block-navigation.nav-mobile .wp-block-navigation__responsive-container-close { top: 22px; right: var(--marge); color: var(--blanc); }
.wp-block-navigation.nav-mobile .wp-block-navigation__responsive-container-close svg { width: 30px; height: 30px; }
.wp-block-navigation.nav-mobile .is-menu-open .wp-block-navigation__responsive-container-content { align-items: stretch; padding-top: 0; }
.wp-block-navigation.nav-mobile .is-menu-open .wp-block-navigation__container { gap: 0; width: 100%; align-items: stretch; }
.wp-block-navigation.nav-mobile .is-menu-open .wp-block-navigation-item { width: 100%; }
.wp-block-navigation.nav-mobile .is-menu-open .wp-block-navigation-item__content {
  display: block;
  width: 100%;
  padding: 12px 0;
  border-bottom: 1px solid var(--filet);
  font-family: var(--titre);
  font-stretch: 75%;
  font-size: 34px;
  font-weight: 800;
  line-height: 1.1;
  text-transform: uppercase;
}
.wp-block-navigation.nav-mobile .is-menu-open .current-menu-item > .wp-block-navigation-item__content { color: var(--orange); }
.wp-block-navigation.nav-mobile .is-menu-open .lien-snap > .wp-block-navigation-item__content {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 24px;
  border: 0;
  font-family: var(--corps);
  font-size: 16px;
  font-weight: 700;
  text-transform: none;
}
.wp-block-navigation.nav-mobile .is-menu-open .lien-snap > .wp-block-navigation-item__content::before {
  content: "";
  width: 26px;
  height: 26px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2.4c-3.2 0-5.6 2.4-5.6 5.7v2.4c-.7.1-1.3-.3-1.8 0-.6.3-.4 1.1.2 1.4.6.3 1.5.5 1.6 1 .2.6-.7 1.9-1.7 2.9-.8.8-1.9 1.4-2.9 1.6-.3.1-.4.4-.2.7.5.6 2 .8 2.5 1 .2.3.1 1 .5 1.2.5.2 1.4-.1 2.4.1 1.3.3 2.3 2 5 2s3.7-1.7 5-2c1-.2 1.9.1 2.4-.1.4-.2.3-.9.5-1.2.5-.2 2-.4 2.5-1 .2-.3.1-.6-.2-.7-1-.2-2.1-.8-2.9-1.6-1-1-1.9-2.3-1.7-2.9.1-.5 1-.7 1.6-1 .6-.3.8-1.1.2-1.4-.5-.3-1.1.1-1.8 0V8.1c0-3.3-2.4-5.7-5.6-5.7Z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2.4c-3.2 0-5.6 2.4-5.6 5.7v2.4c-.7.1-1.3-.3-1.8 0-.6.3-.4 1.1.2 1.4.6.3 1.5.5 1.6 1 .2.6-.7 1.9-1.7 2.9-.8.8-1.9 1.4-2.9 1.6-.3.1-.4.4-.2.7.5.6 2 .8 2.5 1 .2.3.1 1 .5 1.2.5.2 1.4-.1 2.4.1 1.3.3 2.3 2 5 2s3.7-1.7 5-2c1-.2 1.9.1 2.4-.1.4-.2.3-.9.5-1.2.5-.2 2-.4 2.5-1 .2-.3.1-.6-.2-.7-1-.2-2.1-.8-2.9-1.6-1-1-1.9-2.3-1.7-2.9.1-.5 1-.7 1.6-1 .6-.3.8-1.1.2-1.4-.5-.3-1.1.1-1.8 0V8.1c0-3.3-2.4-5.7-5.6-5.7Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ==========================================================================
   Accueil — hero et roue
   ========================================================================== */

.hero {
  position: relative;
  isolation: isolate;
  min-height: max(740px, 100svh);
  display: flex;
  align-items: center;
  padding: calc(var(--entete) + 40px) 0 150px;
  overflow: hidden;
}
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -3;
  background:
    radial-gradient(circle at 77% 50%, rgba(255, 106, 0, .30) 0, rgba(255, 106, 0, .10) 24%, rgba(255, 106, 0, 0) 52%),
    radial-gradient(circle at 10% 110%, rgba(255, 106, 0, .10) 0, rgba(255, 106, 0, 0) 40%),
    var(--noir);
  animation: respire 7s ease-in-out infinite alternate;
}
.hero > .enveloppe { position: relative; z-index: 1; }

.hero .roue-scene {
  --d: min(88vh, 62vw, 940px);
  position: absolute;
  z-index: -1;
  top: calc(50% + 20px);
  right: calc(var(--d) * -.14);
  width: var(--d);
  height: var(--d);
  margin-top: calc(var(--d) / -2);
  animation: arrive 1.6s .2s var(--ease) both;
}
/* Anneau gradué + arc orange : dessin décoratif, tourne en sens inverse de la roue */
.roue-scene::before,
.page-roue::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 600'%3E%3Ccircle cx='300' cy='300' r='290' fill='none' stroke='%23fff' stroke-opacity='.22' stroke-width='12' stroke-dasharray='1.6 11.2'/%3E%3Ccircle cx='300' cy='300' r='240' fill='none' stroke='%23FF6A00' stroke-width='3' stroke-linecap='round' stroke-dasharray='420 1400'/%3E%3C/svg%3E") center / contain no-repeat;
  transform: rotate(var(--rot-anneau, 0deg));
}
.page-roue::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 600'%3E%3Ccircle cx='300' cy='300' r='290' fill='none' stroke='%23fff' stroke-opacity='.22' stroke-width='12' stroke-dasharray='1.6 11.2'/%3E%3Ccircle cx='300' cy='300' r='240' fill='none' stroke='%23FF6A00' stroke-width='3' stroke-linecap='round' stroke-dasharray='420 1400'/%3E%3Ccircle cx='300' cy='300' r='215' fill='none' stroke='%231D1D1D' stroke-width='2'/%3E%3Ccircle cx='300' cy='300' r='150' fill='none' stroke='%231D1D1D' stroke-width='2'/%3E%3Cpath d='M300 240V160M357 281.5 433 256.7M335.3 348.5l47 64.8M264.7 348.5l-47 64.8M242.9 281.5l-76-24.8' stroke='%231A1A1A' stroke-width='10' stroke-linecap='round'/%3E%3Ccircle cx='300' cy='300' r='46' fill='%230B0B0B' stroke='%23FF6A00' stroke-width='3'/%3E%3Ccircle cx='300' cy='300' r='14' fill='%23FF6A00'/%3E%3C/svg%3E"); }

figure.wp-block-image.roue {
  position: absolute;
  inset: 13%;
  border-radius: 50%;
  overflow: hidden;
  background: #0A0A0A;
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, .06),
    0 50px 120px rgba(0, 0, 0, .85),
    0 0 90px rgba(255, 106, 0, .18);
  will-change: transform;
}
figure.wp-block-image.roue img {
  position: absolute;
  left: -21.57%;
  top: -39.14%;
  width: 142.86%;
  max-width: none;
  height: auto;
}
/* Cache-moyeu orange (masque le logo du constructeur de la photo) */
figure.wp-block-image.roue::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 15%;
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: radial-gradient(circle, var(--orange) 0 17%, #151515 18% 46%, #0B0B0B 47% 100%);
  box-shadow: inset 0 0 0 2px var(--orange), 0 0 24px rgba(0, 0, 0, .9);
}

/* Texte circulaire : un paragraphe éditable, disposé en cercle par le script */
.orbite-texte {
  position: absolute;
  inset: 0;
  font-family: var(--titre);
  font-stretch: 125%;
  font-size: calc(var(--d) * .025);
  font-weight: 700;
  line-height: 1;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .78);
  transform: rotate(var(--rot-anneau, 0deg));
  pointer-events: none;
}
.orbite-texte:not(.est-pret) { opacity: 0; }
.orbite-texte span {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 1.2em;
  height: 1em;
  margin: -.5em 0 0 -.6em;
  text-align: center;
  transform: rotate(calc(var(--i) * var(--pas))) translateY(calc(var(--d) * -.437));
}
.orbite-texte span.o { color: var(--orange); }

.hero-texte { position: relative; max-width: 720px; }
.hero .kicker-pulse { animation: monte .8s var(--ease) both; }

.accroche { margin-top: 30px; }
.accroche .ligne {
  font-family: var(--titre);
  font-stretch: 75%;
  font-size: clamp(62px, 8.2vw, 128px);
  font-weight: 800;
  line-height: .9;
  letter-spacing: -.01em;
  text-transform: uppercase;
  animation: sort 1.1s var(--ease) both;
}
.accroche .ligne:nth-child(2) { animation-delay: .12s; }
.accroche .ligne:nth-child(3) { animation-delay: .24s; }
.hero .accroche .ligne:last-child { margin-bottom: -.06em; }
.accroche em { font-style: italic; color: var(--orange); padding-right: .08em; }

.hero-intro {
  margin-top: 30px;
  max-width: 500px;
  font-size: 18px;
  line-height: 1.6;
  color: var(--texte);
  animation: monte .9s .45s var(--ease) both;
}
.hero-intro strong { color: var(--blanc); font-weight: 700; }
.hero-cta { margin-top: 38px; animation: monte .9s .6s var(--ease) both; }

/* ==========================================================================
   Rubans défilants
   ========================================================================== */

.rubans {
  position: relative;
  z-index: 2;
  height: clamp(190px, 17vw, 250px);
  margin-top: calc(clamp(190px, 17vw, 250px) * -.62);
  overflow: hidden;
}
.ruban {
  position: absolute;
  top: 50%;
  left: -6%;
  width: 112%;
  display: flex;
  overflow: hidden;
  padding: 16px 0;
}
.ruban-noir { background: var(--anthracite); border-block: 1px solid #262626; transform: translateY(-50%) rotate(2.4deg); }
.ruban-orange {
  z-index: 1;
  background: var(--orange);
  color: var(--noir);
  transform: translateY(-50%) rotate(-3deg);
  box-shadow: 0 24px 60px rgba(0, 0, 0, .55);
}
.ruban-droit { position: relative; display: flex; overflow: hidden; padding: 18px 0; background: var(--orange); color: var(--noir); }

.piste {
  flex: none;
  padding-right: .9em;
  font-family: var(--titre);
  font-stretch: 125%;
  font-size: clamp(22px, 2.4vw, 36px);
  font-weight: 800;
  font-style: italic;
  line-height: 1.2;
  text-transform: uppercase;
  white-space: nowrap;
}
.est-defilant .piste { animation: defile 42s linear infinite; }
.ruban-noir .piste { font-style: normal; font-size: clamp(16px, 1.5vw, 22px); letter-spacing: .08em; }
.ruban-noir.est-defilant .piste { animation-direction: reverse; animation-duration: 50s; }
.ruban-noir .piste em { font-style: normal; color: transparent; -webkit-text-stroke: 1px var(--blanc); }
.piste em { font-style: normal; }
.ruban-orange .piste em { margin-left: .3em; font-size: .7em; opacity: .55; vertical-align: .18em; }

/* Séparateurs : un <strong> éditable, rendu en pictogramme par masque */
.piste strong {
  display: inline-block;
  width: .95em;
  height: .95em;
  margin: 0 .55em;
  overflow: hidden;
  vertical-align: -.1em;
  color: transparent;
  background: currentColor;
}
.ruban-orange .piste strong,
.ruban-droit .piste strong {
  background: var(--noir);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Ccircle cx='12' cy='12' r='4.5'/%3E%3Cpath d='M12 2.5v3M12 18.5v3M2.5 12h3M18.5 12h3M5.3 5.3l2.1 2.1M16.6 16.6l2.1 2.1M5.3 18.7l2.1-2.1M16.6 7.4l2.1-2.1'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Ccircle cx='12' cy='12' r='4.5'/%3E%3Cpath d='M12 2.5v3M12 18.5v3M2.5 12h3M18.5 12h3M5.3 5.3l2.1 2.1M16.6 16.6l2.1 2.1M5.3 18.7l2.1-2.1M16.6 7.4l2.1-2.1'/%3E%3C/svg%3E") center / contain no-repeat;
  animation: tourne 3.5s linear infinite;
}
.ruban-noir .piste strong {
  width: .7em;
  height: .7em;
  vertical-align: 0;
  background: var(--orange);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 0l2.6 9.4L24 12l-9.4 2.6L12 24l-2.6-9.4L0 12l9.4-2.6Z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 0l2.6 9.4L24 12l-9.4 2.6L12 24l-2.6-9.4L0 12l9.4-2.6Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ==========================================================================
   Accueil — services
   ========================================================================== */

.services { padding: clamp(90px, 9vw, 150px) 0 clamp(100px, 10vw, 160px); }
.services-grille {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: clamp(40px, 6vw, 110px);
  align-items: start;
}
.services-tete { position: sticky; top: calc(var(--entete) + 48px); }
.services-tete > p:not(.kicker):not(.lien) { margin-top: 26px; max-width: 420px; font-size: 17px; color: var(--texte); }
.services-tete .lien { margin-top: 34px; }

.liste-services { border-top: 1px solid var(--filet); }
.ligne-service {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr);
  grid-template-areas: "num nom" "num desc";
  column-gap: 22px;
  align-items: center;
  padding: 34px 100px 34px 26px;
  border-bottom: 1px solid var(--filet);
  overflow: hidden;
  transition: color .45s var(--ease);
}
.ligne-service::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: var(--orange);
  transform: scaleY(0);
  transform-origin: bottom;
  transition: transform .55s var(--ease);
}
.ligne-service::after {
  content: "";
  position: absolute;
  right: 26px;
  top: 50%;
  width: 54px;
  height: 54px;
  margin-top: -27px;
  border: 1px solid rgba(255, 255, 255, .25);
  border-radius: 50%;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6'/%3E%3C/svg%3E") center / 20px no-repeat;
  transition: background-color .45s, border-color .45s, transform .55s var(--ease);
}
.ligne-service .num {
  grid-area: num;
  align-self: start;
  padding-top: 8px;
  font-family: var(--titre);
  font-stretch: 125%;
  font-size: 13px;
  font-weight: 700;
  color: var(--orange);
  transition: color .45s;
}
.ligne-service .nom {
  grid-area: nom;
  font-family: var(--titre);
  font-stretch: 75%;
  font-size: clamp(28px, 2.7vw, 42px);
  font-weight: 800;
  line-height: 1.02;
  text-transform: uppercase;
}
/* Toute la ligne est cliquable : le lien du titre s'étend sur la ligne */
.ligne-service .nom a::after { content: ""; position: absolute; inset: 0; z-index: 2; }
.ligne-service .desc { grid-area: desc; margin-top: 8px; font-size: 15.5px; color: var(--texte); transition: color .45s; }
.ligne-service:hover { color: var(--noir); }
.ligne-service:hover::before { transform: scaleY(1); }
.ligne-service:hover .num, .ligne-service:hover .desc { color: #1F1F1F; }
.ligne-service:hover::after {
  background-color: var(--noir);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FF6A00' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6'/%3E%3C/svg%3E");
  border-color: var(--noir);
  transform: rotate(-45deg);
}

/* ==========================================================================
   Accueil — urgence
   ========================================================================== */

.urgence {
  position: relative;
  isolation: isolate;
  padding: clamp(110px, 12vw, 190px) 0;
  overflow: hidden;
  text-align: center;
}
figure.wp-block-image.urgence-photo {
  position: absolute;
  left: 0;
  top: -12%;
  z-index: -3;
  width: 100%;
  height: 124%;
  will-change: transform;
}
figure.wp-block-image.urgence-photo img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(.35) brightness(.42); }
.urgence::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background:
    radial-gradient(ellipse at 50% 115%, rgba(255, 106, 0, .38) 0, rgba(255, 106, 0, 0) 55%),
    linear-gradient(180deg, var(--noir) 0%, rgba(5, 5, 5, .35) 22%, rgba(5, 5, 5, .35) 78%, var(--noir) 100%);
}
/* « 24/7 » géant, décoratif, glisse avec le défilement */
.urgence::after {
  content: "24/7\00a0\00a0 24/7";
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: -1;
  font-family: var(--titre);
  font-stretch: 125%;
  font-size: clamp(220px, 34vw, 560px);
  font-weight: 900;
  font-style: italic;
  line-height: .8;
  white-space: nowrap;
  color: transparent;
  -webkit-text-stroke: 1.5px rgba(255, 106, 0, .4);
  transform: translate(calc(-50% + var(--x, 0px)), -50%);
  pointer-events: none;
}
.urgence .kicker { justify-content: center; }
.urgence .titre { font-size: clamp(40px, 5vw, 80px); }
.urgence .titre em { display: inline; }
.numero { margin-top: 40px; }
.numero a {
  display: inline-block;
  font-family: var(--titre);
  font-stretch: 125%;
  font-size: clamp(40px, 7.4vw, 118px);
  font-weight: 800;
  line-height: 1;
  letter-spacing: -.02em;
  white-space: nowrap;
  transition: color .3s, transform .4s var(--ease);
}
.numero a:hover { color: var(--orange); transform: scale(1.02); }
.urgence-infos {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px 26px;
  margin-top: 26px;
  font-size: 15px;
  font-weight: 600;
  color: #D4D4D4;
}
.info { display: inline-flex; align-items: center; gap: 10px; }
.info::before, .coordonnees li::before {
  content: "";
  width: 18px;
  height: 18px;
  flex: none;
  background: var(--orange);
  -webkit-mask: var(--ico) center / contain no-repeat;
  mask: var(--ico) center / contain no-repeat;
}
.info a:hover { color: var(--orange); }
.urgence .wp-block-buttons { justify-content: center; margin-top: 40px; }

/* ==========================================================================
   Accueil — comment ça marche (la route)
   ========================================================================== */

.etapes { padding: clamp(100px, 10vw, 160px) 0 clamp(80px, 8vw, 130px); overflow: hidden; }
.etapes-tete { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 24px 60px; }
.etapes-tete > p { max-width: 400px; color: var(--texte); font-size: 17px; }

.etapes .etapes-liste {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 48px;
  margin-top: 196px;
}
/* La route (marquage qui défile) et le pneu qui la parcourt : pseudo-éléments */
.etapes-liste::before {
  content: "";
  position: absolute;
  left: 50%;
  top: -132px;
  width: 100vw;
  height: 76px;
  margin-left: -50vw;
  border-block: 2px solid var(--orange);
  background:
    repeating-linear-gradient(90deg, rgba(255, 255, 255, .9) 0 46px, transparent 46px 96px) 0 50% / auto 4px repeat-x,
    #0E0E0E;
  animation: roule 1.1s linear infinite;
}
.etapes-liste::after {
  content: "";
  position: absolute;
  left: 50%;
  top: -117px;
  width: 46px;
  height: 46px;
  background: var(--orange);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Ccircle cx='12' cy='12' r='4.5'/%3E%3Cpath d='M12 2.5v3M12 18.5v3M2.5 12h3M18.5 12h3M5.3 5.3l2.1 2.1M16.6 16.6l2.1 2.1M5.3 18.7l2.1-2.1M16.6 7.4l2.1-2.1'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Ccircle cx='12' cy='12' r='4.5'/%3E%3Cpath d='M12 2.5v3M12 18.5v3M2.5 12h3M18.5 12h3M5.3 5.3l2.1 2.1M16.6 16.6l2.1 2.1M5.3 18.7l2.1-2.1M16.6 7.4l2.1-2.1'/%3E%3C/svg%3E") center / contain no-repeat;
  animation: traverse 9s linear infinite;
}
.etape { position: relative; padding-top: 30px; border-top: 1px solid var(--filet); }
.etape::before {
  content: "";
  position: absolute;
  left: 0;
  top: -1px;
  width: 0;
  height: 2px;
  background: var(--orange);
  transition: width 1.2s var(--ease) .2s;
}
.etape.visible::before, .editor-styles-wrapper .etape::before { width: 100%; }
.etape-num {
  font-family: var(--titre);
  font-stretch: 75%;
  font-size: clamp(72px, 7vw, 108px);
  font-weight: 800;
  font-style: italic;
  line-height: .9;
  color: transparent;
  -webkit-text-stroke: 1.5px var(--orange);
  transition: color .45s;
}
.etape:hover .etape-num { color: var(--orange); }
.etape h3 {
  margin-top: 22px;
  font-family: var(--titre);
  font-stretch: 75%;
  font-size: 30px;
  font-weight: 800;
  line-height: 1.05;
  text-transform: uppercase;
}
.etape > p:last-child { margin-top: 12px; max-width: 340px; color: var(--texte); }

/* ==========================================================================
   Accueil — particuliers / professionnels
   ========================================================================== */

.publics {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  padding-bottom: clamp(100px, 10vw, 160px);
}
.tuile {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: clamp(440px, 38vw, 580px);
  padding: clamp(28px, 3.4vw, 48px);
  border-radius: 22px;
  overflow: hidden;
  background: var(--anthracite);
}
figure.wp-block-image.tuile-photo { position: absolute; inset: 0; z-index: -2; }
figure.wp-block-image.tuile-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--ease); }
.tuile::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(0deg, rgba(5, 5, 5, .95) 0%, rgba(5, 5, 5, .6) 45%, rgba(5, 5, 5, .15) 100%);
}
.tuile:hover .tuile-photo img { transform: scale(1.06); }
.tuile h2 {
  margin-top: 16px;
  font-family: var(--titre);
  font-stretch: 75%;
  font-size: clamp(40px, 4.2vw, 64px);
  font-weight: 800;
  line-height: .95;
  text-transform: uppercase;
}
.tuile > p:not(.kicker):not(.cta) { margin-top: 14px; max-width: 420px; font-size: 16.5px; color: #D0D0D0; }
.tuile .cta { margin-top: 28px; }
.tuile .cta a { display: inline-flex; align-items: center; gap: 14px; font-weight: 800; font-size: 16px; }
.tuile .cta a::before {
  content: "";
  width: 52px;
  height: 52px;
  flex: none;
  border-radius: 50%;
  background: var(--orange) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23050505' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6'/%3E%3C/svg%3E") center / 20px no-repeat;
  transition: transform .5s var(--ease);
}
.tuile .cta a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.tuile:hover .cta a::before { transform: rotate(-45deg); }

/* ==========================================================================
   Pages intérieures — en-tête de page
   ========================================================================== */

.page-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: calc(var(--entete) + clamp(56px, 7vw, 110px)) 0 clamp(72px, 8vw, 120px);
}
.page-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -3;
  background:
    radial-gradient(circle at 86% 50%, rgba(255, 106, 0, .24) 0, rgba(255, 106, 0, .07) 26%, rgba(255, 106, 0, 0) 54%),
    var(--noir);
}
.page-hero .page-roue {
  --d: min(80vh, 52vw, 760px);
  position: absolute;
  z-index: -1;
  top: 50%;
  right: calc(var(--d) * -.28);
  width: var(--d);
  height: var(--d);
  margin-top: calc(var(--d) / -2 + var(--entete) / 2);
  animation: arrive 1.4s .1s var(--ease) both;
}
.page-hero > .enveloppe { position: relative; z-index: 1; }
.fil-ariane { margin-bottom: 30px; font-size: 13px; font-weight: 600; color: var(--texte-doux); animation: monte .8s var(--ease) both; }
.fil-ariane a { color: var(--blanc); }
.fil-ariane a:hover { color: var(--orange); }
.page-hero .kicker { animation: monte .8s .05s var(--ease) both; }
.titre-page {
  max-width: 900px;
  font-size: clamp(50px, 7.4vw, 118px);
  line-height: .88;
  animation: monte 1s .12s var(--ease) both;
}
.page-intro {
  margin-top: 30px;
  max-width: 580px;
  font-size: 18px;
  color: var(--texte);
  animation: monte 1s .25s var(--ease) both;
}
.page-intro strong { color: var(--blanc); }
.page-intro a { color: var(--orange); }
.page-hero .hero-cta { animation-delay: .38s; }
.page-hero > .enveloppe > .lien { margin-top: 22px; animation: monte .9s .45s var(--ease) both; }
.page-hero-court { padding-bottom: clamp(48px, 5vw, 72px); }
.page-hero-court .titre-page { font-size: clamp(30px, 9vw, 96px); }

/* ==========================================================================
   Sections et composants communs
   ========================================================================== */

.section { padding: clamp(90px, 9vw, 150px) 0; }
.section-alt { background: #0A0A0A; border-block: 1px solid #151515; }
.section-serree { padding-top: 0; }
.section-tete {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px 60px;
  margin-bottom: clamp(40px, 5vw, 64px);
}
.section-tete > p { max-width: 440px; font-size: 17px; color: var(--texte); }

/* Cartes */
.cartes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.cartes.quatre { grid-template-columns: repeat(2, 1fr); }
.carte {
  position: relative;
  isolation: isolate;
  padding: 36px 32px 38px;
  border: 1px solid #1F1F1F;
  border-radius: 20px;
  background: var(--anthracite);
  overflow: hidden;
  transition: border-color .4s, transform .5s var(--ease);
}
.carte::before {
  content: "";
  display: block;
  width: 46px;
  height: 46px;
  background: var(--orange);
  -webkit-mask: var(--ico) center / contain no-repeat;
  mask: var(--ico) center / contain no-repeat;
  transition: transform .6s var(--ease);
}
.carte::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: radial-gradient(circle at 100% 0%, rgba(255, 106, 0, .22) 0, rgba(255, 106, 0, 0) 55%);
  opacity: 0;
  transition: opacity .5s;
}
.carte:hover { border-color: rgba(255, 106, 0, .6); transform: translateY(-4px); }
.carte:hover::before { transform: rotate(-12deg) scale(1.08); }
.carte:hover::after { opacity: 1; }
.carte .num {
  position: absolute;
  top: 34px;
  right: 32px;
  font-family: var(--titre);
  font-stretch: 125%;
  font-size: 13px;
  font-weight: 700;
  color: #4F4F4F;
  transition: color .4s;
}
.carte:hover .num { color: var(--orange); }
.carte h3 {
  margin-top: 30px;
  font-family: var(--titre);
  font-stretch: 75%;
  font-size: 30px;
  font-weight: 800;
  line-height: 1.02;
  text-transform: uppercase;
}
.carte > p:last-child { margin-top: 12px; font-size: 15.5px; color: var(--texte); }

/* Trois lieux */
.lieux { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--filet); }
.lieu { position: relative; padding: 40px 36px 8px 0; }
.lieu + .lieu { padding-left: 36px; border-left: 1px solid var(--filet); }
.lieu::before {
  content: "";
  display: block;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--orange);
}
.lieu::after {
  content: "";
  position: absolute;
  top: 58px;
  left: 18px;
  width: 28px;
  height: 28px;
  background: var(--noir);
  -webkit-mask: var(--ico) center / contain no-repeat;
  mask: var(--ico) center / contain no-repeat;
}
.lieu + .lieu::after { left: 54px; }
.lieux .lieu h3 {
  margin-top: 26px;
  font-family: var(--titre);
  font-stretch: 75%;
  font-size: 34px;
  font-weight: 800;
  line-height: 1;
  text-transform: uppercase;
}
.lieu > p { margin-top: 12px; max-width: 340px; color: var(--texte); }

/* Pastilles */
.puces { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 26px; }
.puce {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 20px 12px 14px;
  border: 1px solid #2A2A2A;
  border-radius: 999px;
  font-weight: 700;
  transition: border-color .3s, background .3s;
}
.puce::before {
  content: "";
  width: 22px;
  height: 22px;
  flex: none;
  background: var(--orange);
  -webkit-mask: var(--ico) center / contain no-repeat;
  mask: var(--ico) center / contain no-repeat;
}
.puce:hover { border-color: var(--orange); background: rgba(255, 106, 0, .07); }

/* Deux colonnes */
.deux-col { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(40px, 6vw, 100px); }
.deux-col h3 {
  margin-top: 22px;
  font-family: var(--titre);
  font-stretch: 75%;
  font-size: clamp(32px, 3vw, 44px);
  font-weight: 800;
  line-height: 1;
  text-transform: uppercase;
}
.deux-col h3 + p { margin-top: 14px; max-width: 480px; color: var(--texte); }
.suite { margin-top: 28px; }

/* Bandeau d'appel */
.bandeau-appel {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(80px, 8vw, 130px) 0;
  background:
    radial-gradient(ellipse at 85% 130%, rgba(255, 106, 0, .38) 0, rgba(255, 106, 0, 0) 55%),
    #080808;
  border-top: 1px solid #161616;
}
.bandeau-appel > .enveloppe { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 40px; }
.bandeau-appel .titre { font-size: clamp(40px, 4.6vw, 72px); }
.bandeau-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 22px; }
.bandeau-actions .numero { margin-top: 0; }
.bandeau-actions .numero a { font-size: clamp(34px, 4.8vw, 72px); }

/* Consignes numérotées */
.consignes { border-top: 1px solid var(--filet); }
.consigne {
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr);
  gap: 24px;
  padding: 34px 0;
  border-bottom: 1px solid var(--filet);
}
.consigne .n {
  font-family: var(--titre);
  font-stretch: 75%;
  font-size: 76px;
  font-weight: 800;
  font-style: italic;
  line-height: .85;
  color: transparent;
  -webkit-text-stroke: 1.5px var(--orange);
}
.consigne h3 {
  font-family: var(--titre);
  font-stretch: 75%;
  font-size: 32px;
  font-weight: 800;
  line-height: 1.02;
  text-transform: uppercase;
}
.consigne-corps > p { margin-top: 10px; max-width: 620px; color: var(--texte); }
.consigne-corps a { color: var(--orange); }
.consigne-corps ul { margin-top: 14px; }
.consigne-corps li { display: flex; gap: 12px; padding: 5px 0; color: #D4D4D4; }
.consigne-corps li::before { content: ""; width: 12px; height: 2px; margin-top: 12px; flex: none; background: var(--orange); }

.encadre {
  position: relative;
  margin-top: 40px;
  padding: 24px 28px 24px 72px;
  border-left: 3px solid var(--orange);
  border-radius: 0 16px 16px 0;
  background: rgba(255, 106, 0, .07);
}
.encadre::before {
  content: "";
  position: absolute;
  left: 28px;
  top: 26px;
  width: 26px;
  height: 26px;
  background: var(--orange);
  -webkit-mask: var(--ico) center / contain no-repeat;
  mask: var(--ico) center / contain no-repeat;
}
.encadre p { color: #D4D4D4; }
.encadre strong { display: block; margin-bottom: 4px; font-size: 17px; color: var(--blanc); }

/* ==========================================================================
   Formulaires (Contact Form 7)
   ========================================================================== */

.formulaire-grille {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 390px);
  gap: clamp(28px, 4vw, 64px);
  align-items: start;
}
.bloc-form {
  padding: clamp(24px, 3vw, 40px);
  border: 1px solid #1C1C1C;
  border-radius: 22px;
  background: #0C0C0C;
}
.bloc-form + .bloc-form { margin-top: 16px; }
.bloc-titre {
  display: flex;
  align-items: center;
  gap: 14px;
  font-family: var(--titre);
  font-stretch: 75%;
  font-size: 28px;
  font-weight: 800;
  line-height: 1.05;
  text-transform: uppercase;
}
.bloc-titre .n {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  flex: none;
  border-radius: 50%;
  background: var(--orange);
  color: var(--noir);
  font-family: var(--titre);
  font-stretch: 125%;
  font-size: 12px;
}
.bloc-sous { margin-top: 8px; font-size: 14.5px; color: var(--texte-doux); }

.champs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-top: 26px; }
.champs.trois { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.champs .large { grid-column: 1 / -1; }
.champs .double { grid-column: span 2; }
.champ label { display: block; margin-bottom: 8px; font-size: 13.5px; font-weight: 700; color: #D8D8D8; }
.champ label .req { color: var(--orange); }
.wpcf7-form-control-wrap { display: block; }
.champ input,
.champ select,
.champ textarea {
  display: block;
  width: 100%;
  height: 56px;
  padding: 0 18px;
  border: 1px solid #272727;
  border-radius: 14px;
  background: #060606;
  color: var(--blanc);
  font-family: var(--corps);
  font-size: 16px;
  font-weight: 500;
  color-scheme: dark;
  -webkit-appearance: none;
  appearance: none;
  transition: border-color .25s, box-shadow .25s;
}
.champ textarea { height: 140px; min-height: 140px; display: inline-block; vertical-align: baseline; padding: 16px 18px; line-height: 1.5; resize: vertical; }
.champ select {
  padding-right: 48px;
  background: #060606 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FF6A00' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 16px center / 20px no-repeat;
}
.champ select option { background: #111; }
.champ input::placeholder, .champ textarea::placeholder { color: #5C5C5C; }
.champ input:focus, .champ select:focus, .champ textarea:focus {
  outline: none;
  border-color: var(--orange);
  box-shadow: 0 0 0 4px rgba(255, 106, 0, .18);
}
.champ .aide { margin-top: 7px; font-size: 12.5px; color: var(--texte-doux); }
.wpcf7-not-valid-tip { display: block; margin-top: 7px; font-size: 13px; font-weight: 600; color: #FF7070; }
.champ .wpcf7-not-valid { border-color: #FF5C5C; }
.alerte-zone { display: none; margin-top: 8px; font-size: 13px; font-weight: 600; color: var(--orange); }
.alerte-zone.visible { display: block; }
.piege { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Prestations en cartes (bouton radio) */
.wpcf7-radio.choix { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 26px; }
.wpcf7-radio.choix .wpcf7-list-item { position: relative; margin: 0; }
.wpcf7-radio.choix label {
  display: flex;
  flex-direction: column;
  gap: 14px;
  height: 100%;
  padding: 20px 18px;
  border: 1px solid #262626;
  border-radius: 16px;
  background: #080808;
  font-weight: 700;
  line-height: 1.3;
  cursor: pointer;
  transition: border-color .25s, background .25s, transform .3s var(--ease);
}
.wpcf7-radio.choix label::before {
  content: "";
  width: 30px;
  height: 30px;
  flex: none;
  background: var(--orange);
  -webkit-mask: var(--ico, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 0l2.6 9.4L24 12l-9.4 2.6L12 24l-2.6-9.4L0 12l9.4-2.6Z'/%3E%3C/svg%3E")) center / contain no-repeat;
  mask: var(--ico, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 0l2.6 9.4L24 12l-9.4 2.6L12 24l-2.6-9.4L0 12l9.4-2.6Z'/%3E%3C/svg%3E")) center / contain no-repeat;
}
.wpcf7-radio.choix .wpcf7-list-item:nth-child(1) { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Ccircle cx='12' cy='12' r='4.5'/%3E%3Cpath d='M12 2.5v3M12 18.5v3M2.5 12h3M18.5 12h3M5.3 5.3l2.1 2.1M16.6 16.6l2.1 2.1M5.3 18.7l2.1-2.1M16.6 7.4l2.1-2.1'/%3E%3C/svg%3E"); }
.wpcf7-radio.choix .wpcf7-list-item:nth-child(2) { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z'/%3E%3C/svg%3E"); }
.wpcf7-radio.choix .wpcf7-list-item:nth-child(3) { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v18M7 21h10M4 7h16'/%3E%3Cpath d='M7 7 4 14a3 3 0 0 0 6 0Z'/%3E%3Cpath d='m17 7-3 7a3 3 0 0 0 6 0Z'/%3E%3C/svg%3E"); }
.wpcf7-radio.choix .wpcf7-list-item:nth-child(4) { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='13' r='8'/%3E%3Ccircle cx='11' cy='13' r='3.5'/%3E%3Cpath d='M15.6 8.4 20 4M18.3 2.3l3.4 3.4'/%3E%3C/svg%3E"); }
.wpcf7-radio.choix .wpcf7-list-item:nth-child(5) { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.5 12a8.5 8.5 0 0 1-14.8 5.7M3.5 12a8.5 8.5 0 0 1 14.8-5.7'/%3E%3Cpath d='M18.5 2.5v4h-4M5.5 21.5v-4h4'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E"); }
.wpcf7-radio.choix .wpcf7-list-item:nth-child(6) { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 2 4 14h7l-1 8 9-12h-7Z'/%3E%3C/svg%3E"); }
.wpcf7-radio.choix input { position: absolute; opacity: 0; pointer-events: none; }
.wpcf7-radio.choix label:hover { border-color: #444; transform: translateY(-2px); }
.wpcf7-radio.choix label:has(input:checked) { border-color: var(--orange); background: rgba(255, 106, 0, .09); }
.wpcf7-radio.choix label:has(input:checked)::after {
  content: "";
  position: absolute;
  top: 14px;
  right: 14px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--orange) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23050505' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5 10 17.5 19 7.5'/%3E%3C/svg%3E") center / 14px no-repeat;
}
.wpcf7-radio.choix label:has(input:focus-visible) { outline: 2px solid var(--orange); outline-offset: 3px; }

/* Calendrier (construit par le script, écrit dans le champ date) */
.agenda { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 28px; margin-top: 26px; }
.calendrier-tete { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.calendrier-tete strong { font-family: var(--titre); font-stretch: 75%; font-size: 24px; font-weight: 800; text-transform: uppercase; }
.calendrier-tete button {
  width: 40px;
  height: 40px;
  border: 1px solid #2A2A2A;
  border-radius: 50%;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6'/%3E%3C/svg%3E") center / 18px no-repeat;
  cursor: pointer;
  transition: border-color .25s;
}
.calendrier-tete .prec { transform: rotate(180deg); }
.calendrier-tete button:hover:not(:disabled) { border-color: var(--orange); }
.calendrier-tete button:disabled { opacity: .3; cursor: default; }
.jours-semaine, .jours { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }
.jours-semaine span { padding-bottom: 6px; font-size: 12px; font-weight: 700; text-align: center; color: var(--texte-doux); }
.jour {
  aspect-ratio: 1;
  border: 1px solid transparent;
  border-radius: 12px;
  background: #121212;
  color: var(--blanc);
  font-family: inherit;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  transition: background .2s, border-color .2s, color .2s;
}
.jour:hover:not(:disabled) { border-color: var(--orange); }
.jour:disabled { background: none; color: #3B3B3B; cursor: default; }
.jour.aujourdhui { border-color: #3A3A3A; }
.jour[aria-pressed="true"] { background: var(--orange); color: var(--noir); }
.jour.vide { visibility: hidden; }
.date-choisie { margin: 6px 0 22px; font-weight: 700; color: #D8D8D8; }
.date-choisie span { color: var(--orange); }
.js .champ-date { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.erreur-date { display: none; margin-top: 12px; font-size: 13px; font-weight: 600; color: #FF7070; }
.erreur-date.visible { display: block; }

/* Récapitulatif latéral */
.recap { position: sticky; top: calc(var(--entete) + 24px); }
.recap .bloc-form { background: #0E0E0E; }
.recap-titre { font-family: var(--titre); font-stretch: 75%; font-size: 26px; font-weight: 800; text-transform: uppercase; }
.recap-lignes { margin-top: 20px; }
.recap-ligne { display: flex; justify-content: space-between; gap: 18px; padding: 12px 0; border-bottom: 1px solid var(--filet); font-size: 14.5px; }
.recap-ligne span:first-child { color: var(--texte-doux); }
.recap-ligne span:last-child { font-weight: 700; text-align: right; }
.recap .wpcf7-submit.btn-envoyer { width: 100%; min-height: 60px; margin-top: 24px; font-size: 15px; }
.recap .mention { margin-top: 14px; font-size: 12.5px; color: var(--texte-doux); }
.encart-urgence {
  display: block;
  margin-top: 16px;
  padding: 22px 24px;
  border-radius: 20px;
  background: var(--orange);
  color: var(--noir);
  transition: transform .4s var(--ease);
}
.encart-urgence:hover { transform: translateY(-3px); }
.encart-urgence small { display: block; font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.encart-urgence strong { display: block; margin-top: 4px; font-family: var(--titre); font-stretch: 110%; font-size: 30px; font-weight: 800; line-height: 1.1; }

/* Case de consentement */
.wpcf7-acceptance { display: block; margin-top: 22px; }
.wpcf7-acceptance .wpcf7-list-item { margin: 0; }
.wpcf7-acceptance label { display: flex; gap: 14px; align-items: flex-start; font-size: 14px; color: var(--texte); cursor: pointer; }
.wpcf7-acceptance input {
  width: 22px;
  height: 22px;
  flex: none;
  margin: 1px 0 0;
  border: 1.5px solid #3A3A3A;
  border-radius: 6px;
  background: #060606;
  -webkit-appearance: none;
  appearance: none;
  cursor: pointer;
}
.wpcf7-acceptance input:checked { border-color: var(--orange); background: var(--orange) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23050505' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5 10 17.5 19 7.5'/%3E%3C/svg%3E") center / 15px no-repeat; }
.wpcf7-acceptance a { color: var(--blanc); text-decoration: underline; text-underline-offset: 3px; }

/* Envoi */
.envoyer { margin-top: 26px; }
.wpcf7-submit.btn-envoyer {
  min-height: 64px;
  padding: 0 34px;
  border: 0;
  border-radius: 999px;
  background: var(--orange);
  color: var(--noir);
  font-family: var(--corps);
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  transition: background .3s, box-shadow .3s, transform .3s var(--ease);
}
.wpcf7-submit.btn-envoyer:hover { background: var(--orange-clair); box-shadow: 0 14px 44px rgba(255, 106, 0, .35); transform: translateY(-2px); }
.wpcf7-submit.btn-envoyer:disabled { opacity: .5; cursor: default; }
.wpcf7-spinner { display: none; }
.wpcf7 form .wpcf7-response-output {
  margin: 20px 0 0;
  padding: 16px 20px;
  border: 1px solid #333;
  border-radius: 14px;
  font-size: 14.5px;
  font-weight: 600;
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output { border-color: #FF5C5C; color: #FF9090; }
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output { border-color: var(--orange); color: var(--orange); }

/* Confirmation : affichée par Contact Form 7 (classe « sent »), sans JavaScript */
.succes {
  display: none;
  padding: clamp(32px, 5vw, 64px);
  border: 1px solid rgba(255, 106, 0, .5);
  border-radius: 24px;
  background:
    radial-gradient(circle at 100% 0%, rgba(255, 106, 0, .18) 0, rgba(255, 106, 0, 0) 50%),
    #0C0C0C;
}
.wpcf7 form.sent .succes { display: block; }
.wpcf7 form.sent .formulaire-grille,
.wpcf7 form.sent .colonne-form,
.wpcf7 form.sent .wpcf7-response-output { display: none; }
.rond-ok {
  display: block;
  width: 76px;
  height: 76px;
  border-radius: 50%;
  background: var(--orange) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23050505' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5 10 17.5 19 7.5'/%3E%3C/svg%3E") center / 36px no-repeat;
  animation: pop .7s var(--ease) both;
}
.succes-titre {
  margin-top: 28px;
  font-family: var(--titre);
  font-stretch: 75%;
  font-size: clamp(34px, 4vw, 56px);
  font-weight: 800;
  line-height: .95;
  text-transform: uppercase;
}
.succes-texte { margin-top: 14px; max-width: 560px; color: var(--texte); }
.succes-texte a { color: var(--orange); }
.succes-recap { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 32px; margin-top: 30px; }
.succes-recap div { padding: 14px 0; border-bottom: 1px solid var(--filet); }
.succes-recap span { display: block; font-size: 12.5px; font-weight: 700; color: var(--texte-doux); text-transform: uppercase; letter-spacing: .06em; }
.succes-recap strong { display: block; margin-top: 4px; font-weight: 700; }

/* ==========================================================================
   Zone d'intervention
   ========================================================================== */

.zone-grille { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 560px); gap: clamp(40px, 6vw, 100px); align-items: center; }
.liste-deps { margin-top: 40px; }
.dep-item {
  position: relative;
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  align-items: center;
  gap: 18px;
  padding: 20px 50px 20px 6px;
  border-bottom: 1px solid var(--filet);
  cursor: pointer;
  transition: padding .4s var(--ease);
}
.dep-item::after {
  content: "";
  position: absolute;
  right: 10px;
  top: 50%;
  width: 22px;
  height: 22px;
  margin-top: -11px;
  background: var(--orange);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
  opacity: 0;
  transform: translateX(-10px);
  transition: opacity .3s, transform .4s var(--ease);
}
.dep-num {
  font-family: var(--titre);
  font-stretch: 75%;
  font-size: 48px;
  font-weight: 800;
  font-style: italic;
  line-height: .9;
  color: transparent;
  -webkit-text-stroke: 1.3px var(--orange);
  transition: color .3s;
}
.dep-nom { font-size: 14px; line-height: normal; color: var(--texte-doux); }
.dep-nom strong { display: block; margin-bottom: 4px; font-family: var(--titre); font-stretch: 75%; font-size: 30px; font-weight: 800; line-height: 1; text-transform: uppercase; color: var(--blanc); }
.dep-item:hover, .dep-item.actif { padding-left: 16px; }
.dep-item:hover .dep-num, .dep-item.actif .dep-num { color: var(--orange); }
.dep-item:hover::after, .dep-item.actif::after { opacity: 1; transform: none; }

.carte-zone svg { display: block; width: 100%; height: auto; overflow: visible; }
.carte-zone .contour { fill: none; stroke: var(--orange); stroke-width: 6; stroke-linejoin: round; }
.carte-zone .dep { fill: #101010; stroke: #2B2B2B; stroke-width: 1.3; cursor: pointer; transition: fill .35s; }
.carte-zone .dep:hover, .carte-zone .dep.actif { fill: #3A1800; }
.carte-zone .num-dep { font-family: var(--titre); font-stretch: 75%; font-size: 34px; font-weight: 800; fill: var(--blanc); pointer-events: none; }
.carte-zone .ville { fill: var(--orange); pointer-events: none; }
.carte-zone .nom-ville { font-family: var(--corps); font-size: 12px; font-weight: 600; fill: #BFBFBF; pointer-events: none; }
.carte-zone .onde { display: none; fill: none; stroke: var(--orange); stroke-width: 1.5; transform-box: fill-box; transform-origin: center; animation: onde 2.8s ease-out infinite; pointer-events: none; }
.carte-zone .onde.o2 { animation-delay: 1.4s; }
.carte-zone .ville-groupe.actif .onde { display: block; }
.carte-legende { display: flex; align-items: center; gap: 12px; margin-top: 18px; font-size: 13px; font-weight: 600; color: var(--texte-doux); }
.carte-legende::before { content: ""; width: 22px; height: 3px; flex: none; border-radius: 2px; background: var(--orange); }

/* ==========================================================================
   Contact
   ========================================================================== */

.contacts { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 16px; }
.contact-carte {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 260px;
  padding: 32px;
  border: 1px solid #1F1F1F;
  border-radius: 22px;
  background: var(--anthracite);
  transition: border-color .4s, transform .5s var(--ease);
}
.contact-carte::before {
  content: "";
  position: absolute;
  top: 32px;
  left: 32px;
  width: 40px;
  height: 40px;
  background: var(--orange);
  -webkit-mask: var(--ico) center / contain no-repeat;
  mask: var(--ico) center / contain no-repeat;
}
.contact-carte:hover { border-color: var(--orange); transform: translateY(-4px); }
.contact-carte a::after { content: ""; position: absolute; inset: 0; }
.contact-carte .petit { font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--texte-doux); }
.contact-carte .grand { margin-top: 6px; font-family: var(--titre); font-size: clamp(20px, 1.7vw, 26px); font-weight: 800; line-height: 1.15; overflow-wrap: anywhere; }
.contact-carte .grand.courriel { font-size: clamp(16px, 1.35vw, 21px); }
.contact-carte.forte { background: var(--orange); border-color: var(--orange); color: var(--noir); }
.contact-carte.forte::before { background: var(--noir); }
.contact-carte.forte .petit { color: rgba(0, 0, 0, .65); }
.contact-carte.forte .grand { font-stretch: 115%; font-size: clamp(30px, 3vw, 44px); }

/* ==========================================================================
   À propos
   ========================================================================== */

.manifeste {
  font-family: var(--titre);
  font-stretch: 75%;
  font-size: clamp(34px, 4.4vw, 68px);
  font-weight: 800;
  line-height: 1.02;
  text-transform: uppercase;
  text-wrap: balance;
}
.manifeste em { font-style: italic; color: var(--orange); }
.manifeste strong { font-weight: inherit; color: #3C3C3C; }

/* ==========================================================================
   Pages légales
   ========================================================================== */

.texte-legal { max-width: 820px; }
.texte-legal h2 {
  margin-top: 60px;
  font-family: var(--titre);
  font-stretch: 75%;
  font-size: 34px;
  font-weight: 800;
  line-height: 1.05;
  text-transform: uppercase;
}
.texte-legal h2 em { margin-right: 12px; font-style: normal; color: var(--orange); }
.texte-legal > p, .texte-legal li { margin-top: 14px; color: #CFCFCF; line-height: 1.75; }
.texte-legal ul { margin-top: 10px; }
.texte-legal ul li { position: relative; margin-top: 8px; padding-left: 24px; }
.texte-legal ul li::before { content: ""; position: absolute; left: 0; top: .8em; width: 12px; height: 2px; background: var(--orange); }
.texte-legal a { color: var(--blanc); text-decoration: underline; text-underline-offset: 3px; }
.texte-legal strong { color: var(--blanc); }
/* Éléments à compléter : le format « code » natif de l'éditeur, habillé en étiquette */
.texte-legal code {
  display: inline-block;
  padding: 0 10px;
  border: 1px dashed var(--orange);
  border-radius: 6px;
  background: rgba(255, 106, 0, .08);
  color: var(--orange);
  font-family: var(--corps);
  font-size: .94em;
  font-weight: 700;
  line-height: 1.7;
}
.note-completer {
  position: relative;
  margin-bottom: 56px;
  padding: 22px 26px 22px 66px;
  border: 1px dashed var(--orange);
  border-radius: 16px;
  color: #D8D8D8;
}
.texte-legal .note-completer p { margin-top: 14px; line-height: 1.75; color: #CFCFCF; }
.note-completer::before {
  content: "";
  position: absolute;
  left: 26px;
  top: 24px;
  width: 24px;
  height: 24px;
  background: var(--orange);
  -webkit-mask: var(--ico) center / contain no-repeat;
  mask: var(--ico) center / contain no-repeat;
}

/* ==========================================================================
   Pied de page
   ========================================================================== */

.pied { position: relative; overflow: hidden; background: #090909; border-top: 1px solid #1A1A1A; }
.pied-haut {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 36px;
  padding-block: clamp(80px, 8vw, 120px) 64px;
}
.pied-haut .titre { margin-top: 0; font-size: clamp(42px, 5vw, 76px); }
.pied-colonnes {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 40px;
  padding-block: 56px;
  border-top: 1px solid var(--filet);
}
.pied h3 {
  font-family: var(--titre);
  font-stretch: 125%;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--orange);
}
.pied-marque > p:not(.logo) { margin-top: 16px; max-width: 300px; font-size: 15px; color: var(--texte); }
.pied ul { margin-top: 18px; }
.pied li { padding: 4px 0; font-size: 15px; color: #CFCFCF; }
.pied li a { transition: color .25s; }
.pied li a:hover { color: var(--orange); }
.coordonnees li { display: flex; align-items: center; gap: 12px; }

.pied-colonnes .wp-block-buttons { margin-top: 18px; }
.wp-block-button.snap .wp-block-button__link {
  display: inline-grid;
  grid-template-columns: auto auto;
  column-gap: 14px;
  justify-content: start;
  min-height: 0;
  padding: 10px 20px 10px 10px;
  border: 1px solid #2A2A2A;
  background: transparent;
  color: var(--blanc);
  text-align: left;
}
.wp-block-button.snap .wp-block-button__link::before {
  content: "";
  grid-row: 1 / span 2;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: var(--blanc) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23050505' d='M12 2.4c-3.2 0-5.6 2.4-5.6 5.7v2.4c-.7.1-1.3-.3-1.8 0-.6.3-.4 1.1.2 1.4.6.3 1.5.5 1.6 1 .2.6-.7 1.9-1.7 2.9-.8.8-1.9 1.4-2.9 1.6-.3.1-.4.4-.2.7.5.6 2 .8 2.5 1 .2.3.1 1 .5 1.2.5.2 1.4-.1 2.4.1 1.3.3 2.3 2 5 2s3.7-1.7 5-2c1-.2 1.9.1 2.4-.1.4-.2.3-.9.5-1.2.5-.2 2-.4 2.5-1 .2-.3.1-.6-.2-.7-1-.2-2.1-.8-2.9-1.6-1-1-1.9-2.3-1.7-2.9.1-.5 1-.7 1.6-1 .6-.3.8-1.1.2-1.4-.5-.3-1.1.1-1.8 0V8.1c0-3.3-2.4-5.7-5.6-5.7Z'/%3E%3C/svg%3E") center / 22px no-repeat;
}
.wp-block-button.snap .wp-block-button__link:hover { border-color: var(--orange); background: rgba(255, 106, 0, .08); transform: none; }
.wp-block-button.snap em { font-size: 11px; font-style: normal; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--orange); align-self: end; }
.wp-block-button.snap strong { font-size: 16px; align-self: start; }

.pied-bas {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 14px 24px;
  padding-block: 22px 26px;
  border-top: 1px solid var(--filet);
  font-size: 13px;
  color: var(--texte-doux);
}
.pied-legal a + a { margin-left: 22px; }
.pied-bas a:hover { color: var(--blanc); }
.marque-geante {
  margin-bottom: -1.6vw;
  font-family: var(--titre);
  font-stretch: 125%;
  font-size: 12.4vw;
  font-weight: 900;
  line-height: .78;
  letter-spacing: -.03em;
  text-align: center;
  white-space: nowrap;
  user-select: none;
}
.marque-geante strong { font-weight: inherit; color: var(--orange); }

.barre-appel { display: none; }

/* ==========================================================================
   Apparitions et animations
   ========================================================================== */

.js .apparait { opacity: 0; transform: translateY(34px); transition: opacity 1s var(--ease), transform 1s var(--ease); }
.js .apparait.visible { opacity: 1; transform: none; }
.js .apparait.d1 { transition-delay: .1s; }
.js .apparait.d2 { transition-delay: .2s; }
.js .apparait.d3 { transition-delay: .3s; }

@keyframes monte { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
@keyframes sort { from { opacity: 0; transform: translateY(40%); clip-path: inset(0 0 100% 0); } to { opacity: 1; transform: none; clip-path: inset(-10% -5% -10% -5%); } }
@keyframes arrive { from { opacity: 0; transform: translateX(12%) scale(.92); } to { opacity: 1; transform: none; } }
@keyframes respire { from { opacity: .85; } to { opacity: 1; } }
@keyframes defile { to { transform: translateX(-100%); } }
@keyframes tourne { to { transform: rotate(360deg); } }
@keyframes roule { to { background-position: -96px 50%, 0 0; } }
@keyframes traverse { from { transform: translateX(calc(-50vw - 60px)) rotate(0deg); } to { transform: translateX(50vw) rotate(1440deg); } }
@keyframes pouls { from { transform: scale(.6); opacity: 1; } to { transform: scale(1.7); opacity: 0; } }
@keyframes pop { from { transform: scale(.3); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes onde { from { transform: scale(.2); opacity: .9; } to { transform: scale(1.6); opacity: 0; } }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .js .apparait { opacity: 1; transform: none; }
  .etapes-liste::after { display: none; }
}

/* ==========================================================================
   Tablette
   ========================================================================== */

@media (max-width: 1239px) {
  .wp-block-navigation.nav { display: none; }
  .wp-block-navigation.nav-mobile { display: flex; }
  .entete-cta { margin-left: auto; }
}

@media (max-width: 1023px) {
  .hero .roue-scene { --d: min(78vw, 720px); right: calc(var(--d) * -.3); opacity: .55; }
  .services-grille { grid-template-columns: minmax(0, 1fr); }
  .services-tete { position: static; }
  .etapes .etapes-liste { grid-template-columns: 1fr; gap: 36px; }
  .publics { grid-template-columns: 1fr; }
  .page-hero .page-roue { --d: 90vw; right: -40vw; opacity: .6; }
  .cartes { grid-template-columns: repeat(2, 1fr); }
  .lieux { grid-template-columns: 1fr; }
  .lieu, .lieu + .lieu { padding: 32px 0; border-left: 0; border-bottom: 1px solid var(--filet); }
  .lieu::after, .lieu + .lieu::after { top: 50px; left: 18px; }
  .deux-col { grid-template-columns: minmax(0, 1fr); }
  .formulaire-grille { grid-template-columns: minmax(0, 1fr); }
  .recap { position: static; }
  .zone-grille { grid-template-columns: minmax(0, 1fr); }
  .carte-zone { max-width: 560px; }
  .contacts { grid-template-columns: 1fr 1fr; }
  .contacts .forte { grid-column: 1 / -1; }
  .pied-colonnes { grid-template-columns: 1fr 1fr; }
}

/* ==========================================================================
   Mobile
   ========================================================================== */

@media (max-width: 782px) {
  .admin-bar .entete { top: 46px; }
}

@media (max-width: 767px) {
  :root { --entete: 70px; }
  body { font-size: 15px; padding-bottom: 84px; }

  .logo { font-size: 19px; }
  .wp-block-buttons.entete-cta { display: none; }
  .wp-block-navigation.nav-mobile { margin-left: auto; }

  .hero { display: block; min-height: 0; padding: calc(var(--entete) + 8px) 0 120px; }
  .hero .roue-scene { --d: 112vw; position: relative; top: auto; right: auto; margin: 0 0 -38vw 8vw; opacity: 1; }
  .hero .kicker-pulse { font-size: 10.5px; letter-spacing: .1em; }
  .accroche { margin-top: 18px; }
  .accroche .ligne { font-size: clamp(44px, 15.2vw, 84px); }
  .hero-intro { font-size: 16px; margin-top: 22px; }
  .hero-cta { flex-direction: column; align-items: stretch; margin-top: 28px; }
  .hero-cta .wp-block-button .wp-block-button__link { width: 100%; }
  .hero-cta .btn-contour .wp-block-button__link { justify-content: center; }

  .rubans { height: 150px; margin-top: -84px; }
  .ruban { padding: 12px 0; }

  .titre:not(.titre-page) { font-size: min(11vw, 44px); }
  .ligne-service { grid-template-columns: 34px minmax(0, 1fr); column-gap: 14px; padding: 26px 64px 26px 4px; }
  .ligne-service::after { right: 4px; width: 44px; height: 44px; margin-top: -22px; }
  .ligne-service .nom { font-size: 27px; }

  .urgence::after { font-size: 72vw; }
  .numero a { font-stretch: 100%; font-size: 11.2vw; letter-spacing: -.01em; }
  .urgence .wp-block-button, .urgence .wp-block-button .wp-block-button__link { width: 100%; }

  .etapes .etapes-liste { margin-top: 170px; }
  .etapes-liste::before { top: -114px; height: 60px; }
  .etapes-liste::after { top: -107px; }
  .etape h3 { font-size: 26px; }

  .tuile { min-height: 420px; border-radius: 18px; }
  .tuile h2 { font-size: min(40px, 10.5vw); }

  .page-hero { padding-top: calc(var(--entete) + 40px); }
  .page-hero .page-roue { --d: 120vw; right: -62vw; top: 38%; opacity: .5; }
  .titre-page { font-size: clamp(44px, 13vw, 72px); }
  .page-intro { font-size: 16px; }
  .cartes, .cartes.quatre { grid-template-columns: 1fr; }
  .carte { padding: 28px 24px 30px; }
  .consigne { grid-template-columns: 1fr; gap: 10px; padding: 28px 0; }
  .consigne .n { font-size: 56px; }
  .bandeau-actions .numero a { font-stretch: 100%; font-size: 11vw; }
  .champs, .champs.trois { grid-template-columns: minmax(0, 1fr); }
  .champs .double { grid-column: auto; }
  .wpcf7-radio.choix { grid-template-columns: 1fr; gap: 8px; }
  .wpcf7-radio.choix label { flex-direction: row; align-items: center; padding: 14px 48px 14px 16px; }
  .wpcf7-radio.choix label::before { width: 24px; height: 24px; }
  .wpcf7-radio.choix label:has(input:checked)::after { top: 50%; margin-top: -11px; }
  .agenda { grid-template-columns: minmax(0, 1fr); }
  .wpcf7-submit.btn-envoyer { width: 100%; }
  .succes-recap { grid-template-columns: 1fr; }
  .dep-item { grid-template-columns: 58px minmax(0, 1fr); }
  .dep-num { font-size: 40px; }
  .dep-nom strong { font-size: 25px; }
  .contacts { grid-template-columns: 1fr; }
  .contact-carte { min-height: 190px; }
  .texte-legal h2 { font-size: 28px; }

  .pied-haut .actions, .pied-haut .wp-block-button, .pied-haut .wp-block-button .wp-block-button__link { width: 100%; }
  .pied-haut .btn-contour .wp-block-button__link { justify-content: center; }
  .pied-colonnes { grid-template-columns: 1fr; gap: 36px; }
  .marque-geante { font-size: 13.4vw; }

  .barre-appel {
    position: fixed;
    left: 10px; right: 10px;
    bottom: max(10px, env(safe-area-inset-bottom));
    z-index: 45;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 8px 8px 20px;
    border: 1px solid var(--orange);
    border-radius: 999px;
    background: rgba(5, 5, 5, .92);
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
    box-shadow: 0 16px 40px rgba(0, 0, 0, .6);
  }
  .barre-texte { flex: 1; line-height: 1.2; }
  .barre-texte em { display: block; font-size: 10.5px; font-style: normal; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--orange); }
  .barre-texte strong { font-size: 17px; font-weight: 800; }
  .barre-appel .wp-block-button .wp-block-button__link { min-height: 48px; padding: 0 20px; font-size: 14px; }
}
