/* Généré par scripts/build.mjs à partir de tokens.css + blocks.css — ne pas modifier à la main. */
/* VETCORNER — tokens de la direction B « Géométrie low-poly ».
   Repris de docs/design/design_handoff_vetcorner/tokens.css (source Claude Design).
   Seules différences : polices auto-hébergées (pas de Google Fonts) et chemins des assets. */

@font-face { font-family: "Orkney"; src: url("../fonts/orkney-light.woff2") format("woff2"); font-weight: 300; font-style: normal; font-display: swap; }
@font-face { font-family: "Outfit"; src: url("../fonts/outfit-400.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Outfit"; src: url("../fonts/outfit-500.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: "Outfit"; src: url("../fonts/outfit-600.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
/* Orkney Regular : à ajouter quand le fichier sera fourni (font-weight: 400). */

:root {
  /* ---------- Couleurs de marque (hex exacts du SVG VET_CORNER_01) ---------- */
  --vc-teal-500: #53968a;   /* Sarcelle marque — aplats, icônes, traits. JAMAIS pour du texte < 24px (3,44:1 sur blanc) */
  --vc-ocre-500: #bca02d;   /* Ocre — carré repère, bouton urgence, focus. JAMAIS en texte sur blanc (2,56:1) */
  --vc-slate-500: #4c6c76;  /* Ardoise — texte secondaire (5,65:1 sur blanc), fond du bloc urgences */
  --vc-grey-300: #c9d5d6;   /* Gris clair — fonds d'image, bordures */

  /* ---------- Déclinaisons ---------- */
  --vc-teal-50:  #eef5f3;   /* fond de section clair, tuiles de service */
  --vc-teal-100: #dcebe7;   /* survol des tuiles, fonds d'image */
  --vc-teal-200: #b9d7d0;   /* texte secondaire sur fond foncé */
  --vc-teal-300: #9fc4bc;   /* bordures pointillées, états désactivés */
  --vc-teal-600: #437d73;   /* aplat hero avec texte blanc (4,75:1) */
  --vc-teal-700: #356359;   /* boutons primaires, liens, kickers (6,82:1 avec blanc) */
  --vc-teal-900: #1d3a35;   /* encre principale, bandeau, footer, barre mobile */
  --vc-ocre-400: #d4ba4a;   /* survol du bouton urgence */
  --vc-grey-200: #dfe7e7;   /* filet du header */
  --vc-white:    #ffffff;
  --vc-error:    #9b3b1c;   /* formulaires uniquement (7,1:1 sur blanc) */

  /* ---------- Rôles sémantiques ---------- */
  --vc-bg:            var(--vc-white);
  --vc-bg-soft:       var(--vc-teal-50);
  --vc-bg-brand:      var(--vc-teal-600);
  --vc-bg-ink:        var(--vc-teal-900);
  --vc-bg-emergency:  var(--vc-slate-500);
  --vc-text:          var(--vc-teal-900);
  --vc-text-muted:    var(--vc-slate-500);
  --vc-text-on-dark:  var(--vc-white);
  --vc-text-on-dark-muted: var(--vc-teal-100);
  --vc-link:          var(--vc-teal-700);
  --vc-link-hover:    var(--vc-teal-900);
  --vc-action:        var(--vc-teal-700);
  --vc-action-hover:  var(--vc-teal-900);
  --vc-emergency:     var(--vc-ocre-500);   /* texte --vc-teal-900 dessus : 4,80:1 */
  --vc-emergency-hover: var(--vc-ocre-400);
  --vc-marker:        var(--vc-ocre-500);
  --vc-focus:         var(--vc-ocre-500);

  /* ---------- Typographie ---------- */
  --vc-font-display: "Orkney", "Outfit", system-ui, sans-serif; /* Light 300 uniquement, ≥ 28px */
  --vc-font-ui:      "Outfit", system-ui, sans-serif;           /* texte courant + interface */

  --vc-fs-display-xl: clamp(50px, 6.8vw, 112px); /* H1 accueil */
  --vc-fs-display-l:  clamp(40px, 5vw, 80px);    /* H2 de section, H1 pages internes */
  --vc-fs-display-m:  clamp(28px, 2.4vw, 36px);  /* titres de groupe, cartes larges */
  --vc-fs-numeral:    clamp(44px, 4.2vw, 64px);  /* chiffres-preuves */
  --vc-fs-numeral-xl: clamp(60px, 8.4vw, 136px); /* horaire urgences */
  --vc-fs-lead:  clamp(18px, 1.5vw, 21px);       /* chapô */
  --vc-fs-body-l: 19px;
  --vc-fs-body:  17px;
  --vc-fs-card:  18px;                           /* nom de service / membre */
  --vc-fs-card-l: 23px;                          /* titre d'article */
  --vc-fs-small: 15px;
  --vc-fs-label: 14px;                           /* kicker MAJUSCULES, 600, +0,1em */

  --vc-lh-display: 0.98;
  --vc-lh-tight: 1.25;
  --vc-lh-body: 1.6;
  --vc-ls-display: -0.025em;
  --vc-ls-label: 0.1em;

  /* ---------- Espacements ---------- */
  --vc-container: 1440px;
  --vc-gutter: clamp(20px, 4vw, 64px);            /* marge latérale */
  --vc-section-y: clamp(80px, 9vw, 136px);        /* respiration entre sections blanches */
  --vc-band-y: clamp(56px, 7vw, 104px);           /* padding interne des bandes colorées */
  --vc-head-gap: clamp(40px, 4vw, 64px);          /* titre de section → contenu */
  --vc-col-gap: clamp(36px, 5vw, 88px);           /* colonnes texte/média */
  --vc-joint: 2px;                                /* joint entre tuiles — signature B */
  --vc-space-1: 6px;
  --vc-space-2: 10px;
  --vc-space-3: 16px;
  --vc-space-4: 24px;
  --vc-space-5: 32px;
  --vc-space-6: 56px;

  /* ---------- Formes : pas de rayon, des facettes ---------- */
  --vc-radius: 0;
  --vc-cut-s: 12px;  /* boutons du header */
  --vc-cut-m: 14px;  /* boutons standard */
  --vc-cut-l: 22px;  /* tuiles de service */

  /* ---------- Ombres : quasi absentes ---------- */
  --vc-shadow-header: 0 1px 0 var(--vc-grey-200);
  --vc-shadow-mobilebar: none;

  /* ---------- Motion (sobre) ---------- */
  --vc-ease: cubic-bezier(.2, .7, .2, 1);
  --vc-dur-fast: 140ms;
  --vc-dur: 240ms;

  /* ---------- Points de rupture ---------- */
  /* --bp-nav: 860px  → en dessous : burger + barre d'action mobile fixe */
}

/* ---------- Facettes (clip-path) ---------- */
.vc-cut-2   { clip-path: polygon(0 0, calc(100% - var(--c, 14px)) 0, 100% var(--c, 14px), 100% 100%, var(--c, 14px) 100%, 0 calc(100% - var(--c, 14px))); }
.vc-cut-br  { clip-path: polygon(0 0, 100% 0, 100% calc(100% - var(--c, 22px)), calc(100% - var(--c, 22px)) 100%, 0 100%); }
.vc-facet-hero    { clip-path: polygon(18% 0, 100% 0, 100% 72%, 82% 100%, 0 100%, 0 26%); }
.vc-facet-wide    { clip-path: polygon(0 0, 100% 0, 100% 100%, 12% 100%, 0 76%); }
.vc-facet-corner  { clip-path: polygon(0 0, 100% 0, 100% 74%, 74% 100%, 0 100%); }
.vc-facet-portrait{ clip-path: polygon(0 0, 100% 0, 100% 84%, 78% 100%, 0 100%); }
.vc-facet-card    { clip-path: polygon(0 0, 100% 0, 100% 100%, 16% 100%, 0 80%); }
.vc-facet-map     { clip-path: polygon(0 0, 100% 0, 100% 100%, 10% 100%, 0 88%); }

/* ---------- Motifs low-poly ---------- */
.vc-mesh-on-dark  { background-image: url("../img/motifs/mesh-white.svg"); background-size: cover; background-position: center; }
.vc-mesh-on-light { background-image: url("../img/motifs/mesh-teal.svg"); background-size: cover; background-position: center; }
.vc-mesh-fill     { background-image: url("../img/motifs/mesh-teal-dense.svg"); background-size: cover; background-position: center; }

/* VETCORNER — blocs (C = composants, G = globaux, S = sections).
   Spécification : docs/design/design_handoff_vetcorner/BLOCS.md.
   Aucun CSS propre à une page : une page = G1 + G2 + pile de S + G4 (+ G3 < 860px). */

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { color: var(--vc-text); background: var(--vc-bg); font-family: var(--vc-font-ui); -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--vc-bg); font-size: var(--vc-fs-body); line-height: var(--vc-lh-body); }
img, svg { display: block; max-width: 100%; }
a { color: var(--vc-link); text-decoration: none; transition: color var(--vc-dur-fast) var(--vc-ease), background-color var(--vc-dur-fast) var(--vc-ease); }
a:hover { color: var(--vc-link-hover); }
:focus-visible { outline: 2px solid var(--vc-focus); outline-offset: 3px; }
h1, h2, h3, h4, p, ul, ol, figure, blockquote { margin: 0; }
h1, h2, h3 { text-wrap: balance; overflow-wrap: break-word; hyphens: auto; }
p { text-wrap: pretty; }
button { font: inherit; color: inherit; }
.vc-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.vc-skip { position: absolute; left: 12px; top: -80px; z-index: 100; background: var(--vc-teal-900); color: #fff; padding: 12px 18px; font-weight: 600; }
.vc-skip:focus { top: 12px; color: #fff; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; } }

/* Icônes (sprite Phosphor, thin / light) */
.vc-i { width: 1em; height: 1em; flex: none; fill: currentColor; display: inline-block; vertical-align: middle; }

/* Conteneur */
.vc-wrap { max-width: var(--vc-container); margin-inline: auto; padding-inline: var(--vc-gutter); }

/* Rythme : sections blanches séparées par --vc-section-y ; bandes colorées bord à bord */
.vc-s { padding-top: var(--vc-section-y); }
.vc-band { margin-top: var(--vc-section-y); padding-block: var(--vc-band-y); }
.vc-band + .vc-band, .vc-band:first-child, .vc-hero + .vc-band, .vc-pagehero + .vc-band { margin-top: 0; }
main > .vc-s:last-child { padding-bottom: var(--vc-section-y); }

/* Marqueur TODO : information manquante, visible tant qu'elle n'est pas fournie */
.vc-todo { display: inline-block; background: #fff4cc; color: #5a4a00; border: 1px dashed var(--vc-ocre-500); padding: 2px 8px; font-size: 15px; font-weight: 500; line-height: 1.4; }
.vc-todo::before { content: "TODO · "; font-weight: 600; }

/* ---------- C1 Button ---------- */
.vc-btn { --c: var(--vc-cut-m); display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 18px 28px; font-size: 17px; font-weight: 600; line-height: 1.2; border: 0; cursor: pointer; text-align: center; clip-path: polygon(0 0, calc(100% - var(--c)) 0, 100% var(--c), 100% 100%, var(--c) 100%, 0 calc(100% - var(--c))); transition: background-color var(--vc-dur-fast) var(--vc-ease), color var(--vc-dur-fast) var(--vc-ease); }
.vc-btn .vc-i { font-size: 20px; }
.vc-btn:focus-visible { outline-offset: -4px; outline-color: var(--vc-teal-900); }
.vc-btn--primary { background: var(--vc-action); color: #fff; }
.vc-btn--primary:hover { background: var(--vc-action-hover); color: #fff; }
.vc-btn--emergency { background: var(--vc-emergency); color: var(--vc-teal-900); }
.vc-btn--emergency:hover { background: var(--vc-emergency-hover); color: var(--vc-teal-900); }
.vc-btn--onbrand { background: #fff; color: var(--vc-teal-900); }
.vc-btn--onbrand:hover { background: var(--vc-teal-100); color: var(--vc-teal-900); }
.vc-btn--secondary { background: var(--vc-teal-50); color: var(--vc-teal-900); }
.vc-btn--secondary:hover { background: var(--vc-teal-100); color: var(--vc-teal-900); }
.vc-btn--s { --c: var(--vc-cut-s); padding: 14px 24px; font-size: 16px; font-weight: 500; }
.vc-btn--xl { --c: 16px; padding: 22px 28px; font-size: 19px; }
.vc-btn--xl .vc-i { font-size: 22px; }
.vc-btn--block { display: flex; width: 100%; }
.vc-btns { display: flex; flex-wrap: wrap; gap: 12px; }
.vc-link { display: inline-flex; align-items: center; gap: 8px; font-size: 16px; font-weight: 600; color: var(--vc-link); }
.vc-link .vc-i { transition: transform var(--vc-dur-fast) var(--vc-ease); }
.vc-link:hover .vc-i { transform: translateX(3px); }

/* ---------- C2 LangSwitch ---------- */
.vc-lang { display: flex; font-size: 13px; font-weight: 600; letter-spacing: .06em; border: 1px solid rgba(255, 255, 255, .35); }
.vc-lang a, .vc-lang span { padding: 4px 10px; color: #fff; min-height: 28px; display: inline-flex; align-items: center; }
.vc-lang a:hover { background: rgba(255, 255, 255, .14); color: #fff; }
.vc-lang [aria-current] { background: #fff; color: var(--vc-teal-900); }

/* ---------- C3 Marker + Kicker ---------- */
.vc-marker { width: 16px; height: 16px; background: var(--vc-marker); flex: none; display: inline-block; }
.vc-kicker { font-size: var(--vc-fs-label); letter-spacing: var(--vc-ls-label); text-transform: uppercase; font-weight: 600; color: var(--vc-teal-700); line-height: 1.3; }
.vc-on-dark .vc-kicker { color: #fff; }

/* ---------- C4 Tag ---------- */
.vc-tag { display: inline-block; padding: 7px 12px; font-size: 14px; line-height: 1.2; background: var(--vc-teal-50); color: var(--vc-teal-900); }
.vc-tag--brand { background: var(--vc-teal-700); color: #fff; }
.vc-tag--emergency { background: var(--vc-ocre-500); color: var(--vc-teal-900); font-weight: 600; }
.vc-tags { display: flex; flex-wrap: wrap; gap: 8px; }

/* ---------- C5 MediaFacet ---------- */
.vc-media { position: relative; width: 100%; background-color: var(--vc-teal-100); overflow: hidden; }
.vc-media img { width: 100%; height: 100%; object-fit: cover; }
.vc-media--grey { background-color: var(--vc-grey-300); }
.vc-media--teal { background-color: var(--vc-teal-200); }
.vc-media__label { position: absolute; left: 12px; bottom: 12px; font-size: 13px; line-height: 1.3; color: var(--vc-teal-900); background: #fff; padding: 4px 8px; max-width: calc(100% - 24px); }
.vc-facet-wide .vc-media__label, .vc-facet-hero .vc-media__label { left: 16%; }
.vc-r-16-9 { aspect-ratio: 16 / 9; } .vc-r-16-10 { aspect-ratio: 16 / 10; } .vc-r-5-4 { aspect-ratio: 5 / 4; }
.vc-r-4-5 { aspect-ratio: 4 / 5; } .vc-r-1-1 { aspect-ratio: 1; } .vc-r-3-2 { aspect-ratio: 3 / 2; }

/* ---------- C6 ServiceTile ---------- */
.vc-tile { position: relative; background: var(--vc-teal-50); padding: 22px; min-height: 170px; display: flex; flex-direction: column; justify-content: space-between; gap: 16px; color: var(--vc-teal-900); clip-path: polygon(0 0, 100% 0, 100% calc(100% - var(--vc-cut-l)), calc(100% - var(--vc-cut-l)) 100%, 0 100%); transition: background-color var(--vc-dur) var(--vc-ease); }
.vc-tile .vc-i { font-size: 44px; color: var(--vc-teal-700); }
.vc-tile__name { font-size: var(--vc-fs-card); line-height: var(--vc-lh-tight); font-weight: 500; padding-right: 16px; hyphens: auto; }
.vc-tile:hover { background: var(--vc-teal-100) url("../img/motifs/mesh-teal-dense.svg") center / 260px; color: var(--vc-teal-900); }
.vc-tile:focus-visible { outline-offset: -4px; }
.vc-tile[aria-current] { background: var(--vc-teal-100); }

/* ---------- C7 TeamCard ---------- */
.vc-member { display: flex; flex-direction: column; gap: 14px; }
.vc-member__name { font-size: var(--vc-fs-card); font-weight: 600; color: var(--vc-teal-900); line-height: 1.3; }
.vc-member__role { font-size: var(--vc-fs-small); color: var(--vc-text-muted); line-height: 1.45; }
.vc-member__text { display: flex; flex-direction: column; gap: 3px; }
.vc-mini { display: flex; gap: 12px; align-items: center; }
.vc-mini .vc-media { width: 52px; height: 64px; flex: none; }
.vc-mini__name { font-size: 16px; font-weight: 600; color: var(--vc-teal-900); }

/* ---------- C9 HoursTable ---------- */
.vc-hours { display: flex; flex-direction: column; gap: var(--vc-joint); margin: 0; padding: 0; list-style: none; }
.vc-hours li { display: flex; justify-content: space-between; gap: 16px; padding: 15px 18px; background: var(--vc-teal-50); font-size: 17px; line-height: 1.4; }
.vc-hours__day { font-weight: 600; }
.vc-hours__time { color: var(--vc-teal-700); text-align: right; }
.vc-hours li.is-today { background: var(--vc-ocre-500); color: var(--vc-teal-900); }
.vc-hours li.is-today .vc-hours__time { color: var(--vc-teal-900); }
.vc-hours__now { display: block; font-weight: 500; font-size: 14px; }
.vc-hours__note { font-size: var(--vc-fs-small); color: var(--vc-text-muted); margin-top: 10px; }

/* ---------- C10 InfoItem ---------- */
.vc-infos { display: flex; flex-direction: column; gap: 10px; font-size: 17px; margin: 0; padding: 0; list-style: none; }
.vc-info { display: flex; gap: 10px; align-items: flex-start; line-height: 1.45; }
.vc-info .vc-i { font-size: 22px; color: var(--vc-teal-500); margin-top: 1px; }

/* ---------- C12 Accordion ---------- */
.vc-acc { display: flex; flex-direction: column; gap: var(--vc-joint); }
.vc-acc details { background: var(--vc-teal-50); }
.vc-acc summary { padding: 20px 22px; font-size: 18px; font-weight: 600; line-height: 1.4; cursor: pointer; display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; list-style: none; }
.vc-acc summary::-webkit-details-marker { display: none; }
.vc-acc summary:focus-visible { outline-offset: -4px; }
.vc-acc summary .vc-i { font-size: 20px; color: var(--vc-teal-700); margin-top: 3px; }
.vc-acc .vc-i--minus, .vc-acc details[open] .vc-i--plus { display: none; }
.vc-acc details[open] .vc-i--minus { display: inline-block; }
.vc-acc__a { padding: 0 22px 20px; font-size: 16px; line-height: 1.6; max-width: 72ch; }

/* ---------- G1 TopBar ---------- */
.vc-topbar { background: var(--vc-teal-900); color: #fff; font-size: 15px; }
.vc-topbar .vc-wrap { padding-block: 10px; display: flex; align-items: center; gap: 12px 16px; flex-wrap: wrap; justify-content: space-between; }
.vc-topbar__msg { display: flex; align-items: center; gap: 10px; color: #fff; }
.vc-topbar__msg .vc-marker { width: 10px; height: 10px; }
.vc-topbar__msg:hover { color: var(--vc-teal-100); }
.vc-topbar__right { display: flex; align-items: center; gap: 20px; }
.vc-topbar__tel { color: #fff; font-weight: 500; display: flex; gap: 6px; align-items: center; }
.vc-topbar__tel .vc-i { font-size: 17px; color: var(--vc-ocre-500); }
.vc-topbar__tel:hover { color: var(--vc-teal-100); }
.vc-short { display: none; }
@media (max-width: 859px) {
  .vc-topbar { font-size: 14px; }
  .vc-topbar .vc-wrap { padding-block: 8px; padding-inline: 16px; }
  .vc-topbar__msg .vc-marker { width: 8px; height: 8px; }
  .vc-topbar__tel { display: none; }
  .vc-long { display: none; }
  .vc-short { display: inline; }
}

/* ---------- G2 Header ---------- */
.vc-header { position: sticky; top: 0; z-index: 20; background: #fff; box-shadow: var(--vc-shadow-header); }
.vc-header > .vc-wrap { padding-block: 12px; display: flex; align-items: center; gap: 32px; justify-content: space-between; }
.vc-logo { display: block; flex: none; }
.vc-logo img { height: clamp(52px, 5vw, 70px); width: auto; }
.vc-nav { display: flex; align-items: center; gap: 34px; font-size: 16px; font-weight: 500; }
.vc-nav__link { color: var(--vc-teal-900); padding-block: 6px; display: inline-flex; align-items: center; gap: 6px; }
.vc-nav__link:hover { color: var(--vc-teal-700); }
.vc-nav__link[aria-current], .vc-nav__link.is-active { color: var(--vc-teal-700); box-shadow: inset 0 -2px 0 var(--vc-ocre-500); }
.vc-nav__item { position: static; }
.vc-nav__caret { font-size: 13px; transition: transform var(--vc-dur-fast) var(--vc-ease); }
.vc-mega { position: absolute; left: 0; right: 0; top: 100%; background: #fff; box-shadow: var(--vc-shadow-header), 0 1px 0 var(--vc-grey-200) inset; visibility: hidden; opacity: 0; transform: translateY(-6px); transition: opacity var(--vc-dur-fast) var(--vc-ease), transform var(--vc-dur-fast) var(--vc-ease), visibility 0s linear var(--vc-dur-fast); }
.vc-nav__item:hover > .vc-mega, .vc-nav__item:focus-within > .vc-mega { visibility: visible; opacity: 1; transform: none; transition-delay: 0s; }
.vc-nav__item:hover .vc-nav__caret, .vc-nav__item:focus-within .vc-nav__caret { transform: rotate(180deg); }
.vc-mega .vc-wrap { padding-block: 40px 48px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(0, .9fr); gap: 40px; }
.vc-mega__title { font-family: var(--vc-font-display); font-weight: 300; font-size: 28px; line-height: 1.1; color: var(--vc-teal-900); margin-bottom: 16px; display: block; }
.vc-mega ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.vc-mega ul a { color: var(--vc-teal-900); font-size: 16px; font-weight: 500; display: block; padding: 6px 0; }
.vc-mega ul a:hover { color: var(--vc-teal-700); }
.vc-mega__aside { background: var(--vc-teal-50); padding: 24px; display: flex; flex-direction: column; gap: 14px; align-items: flex-start; clip-path: polygon(0 0, 100% 0, 100% calc(100% - 22px), calc(100% - 22px) 100%, 0 100%); }
.vc-mega__aside p { font-size: 15px; line-height: 1.5; color: var(--vc-text-muted); }
.vc-burger { display: none; width: 48px; height: 48px; border: 0; background: var(--vc-teal-50); place-items: center; color: var(--vc-teal-900); font-size: 24px; cursor: pointer; }
@media (max-width: 1080px) { .vc-nav { gap: 24px; } }
@media (max-width: 859px) {
  .vc-header > .vc-wrap { padding: 10px 16px; }
  .vc-logo img { height: 52px; }
  .vc-nav { display: none; }
  .vc-burger { display: grid; }
}

/* Menu mobile plein écran */
.vc-menu { position: fixed; inset: 0; z-index: 40; background: var(--vc-teal-900) url("../img/motifs/mesh-white.svg") center / cover; color: #fff; display: flex; flex-direction: column; overflow-y: auto; }
.vc-menu[hidden] { display: none; }
.vc-menu__top { padding: 10px 16px; display: flex; justify-content: space-between; align-items: center; }
.vc-menu__top img { height: 52px; width: auto; }
.vc-menu__close { width: 48px; height: 48px; border: 0; background: rgba(255, 255, 255, .12); color: #fff; display: grid; place-items: center; font-size: 24px; cursor: pointer; }
.vc-menu__nav { padding: 24px 20px; display: flex; flex-direction: column; gap: 4px; flex: 1; }
.vc-menu__nav a { font-family: var(--vc-font-display); font-weight: 300; font-size: 40px; line-height: 1.3; color: #fff; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.vc-menu__nav a .vc-i { font-size: 26px; }
.vc-menu__nav a:hover { color: var(--vc-teal-100); }
.vc-menu__nap { margin-top: auto; padding-top: 32px; display: flex; flex-direction: column; gap: 6px; font-size: 16px; color: var(--vc-teal-100); }
.vc-menu__nap a { color: #fff; font-weight: 600; }
.vc-menu .vc-actionbar { position: static; display: grid; }
html.vc-menu-open { overflow: hidden; }

/* ---------- G3 MobileActionBar ---------- */
.vc-actionbar { display: none; position: fixed; left: 0; right: 0; bottom: 0; z-index: 30; background: var(--vc-teal-900); padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); grid-template-columns: 1fr 1fr; gap: 10px; }
.vc-actionbar a { height: 52px; display: flex; gap: 8px; align-items: center; justify-content: center; font-weight: 600; font-size: 17px; color: var(--vc-teal-900); }
.vc-actionbar a .vc-i { font-size: 20px; }
.vc-actionbar__call { background: var(--vc-ocre-500); }
.vc-actionbar__call:hover { background: var(--vc-ocre-400); color: var(--vc-teal-900); }
.vc-actionbar__rdv { background: #fff; }
.vc-actionbar__rdv:hover { background: var(--vc-teal-100); color: var(--vc-teal-900); }
@media (max-width: 859px) { .vc-actionbar { display: grid; } .vc-footer { padding-bottom: 72px; } }

/* ---------- Bandeau de consentement (lien « Paramètres cookies » du G4) : refuser et accepter au même poids ---------- */
.vc-consent { position: fixed; left: 24px; bottom: 24px; z-index: 35; width: min(560px, calc(100% - 48px)); max-height: calc(100vh - 48px); overflow-y: auto; background: #fff; color: var(--vc-text); box-shadow: 0 0 0 1px var(--vc-grey-200), 0 12px 40px rgba(29, 58, 53, .22); border-top: 6px solid var(--vc-teal-700); }
.vc-consent[hidden] { display: none; }
.vc-consent__box { padding: 24px 26px; display: flex; flex-direction: column; gap: 14px; }
.vc-consent__title { font-family: var(--vc-font-display); font-weight: 300; font-size: 28px; line-height: var(--vc-lh-tight); }
.vc-consent__text { font-size: var(--vc-fs-small); line-height: 1.55; color: var(--vc-text-muted); }
.vc-consent__text a { color: var(--vc-link); text-decoration: underline; text-underline-offset: 3px; }
.vc-consent__prefs { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.vc-consent__prefs[hidden] { display: none; }
.vc-check { display: flex; gap: 12px; align-items: flex-start; background: var(--vc-teal-50); padding: 14px 16px; font-size: var(--vc-fs-small); line-height: 1.45; cursor: pointer; }
.vc-check input { flex: none; width: 20px; height: 20px; margin-top: 1px; accent-color: var(--vc-teal-700); }
.vc-check input:disabled { opacity: .6; }
.vc-check strong { display: block; font-weight: 600; font-size: 16px; }
.vc-consent__btns { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.vc-consent__btns [hidden] { display: none; }
.vc-consent__btns [data-consent-save] { grid-column: 1 / -1; }
.vc-consent__more { grid-column: 1 / -1; justify-self: center; background: none; border: 0; padding: 6px; font: inherit; font-size: var(--vc-fs-small); font-weight: 500; color: var(--vc-link); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.vc-consent__more:hover { color: var(--vc-link-hover); }
@media (max-width: 859px) {
  .vc-consent { left: 0; right: 0; width: auto; bottom: calc(72px + env(safe-area-inset-bottom)); max-height: calc(100vh - 140px); border-top-width: 4px; }
  .vc-consent__box { padding: 18px 16px; gap: 12px; }
}
@media (max-width: 380px) { .vc-consent__btns { grid-template-columns: 1fr; } }

/* ---------- G4 Footer ---------- */
.vc-footer { background: var(--vc-teal-900) url("../img/motifs/mesh-white.svg") center / cover; color: var(--vc-teal-100); font-size: 16px; }
.vc-footer__grid { padding-block: clamp(56px, 6vw, 96px) 32px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 40px; }
.vc-footer__col { display: flex; flex-direction: column; gap: 10px; line-height: 1.5; }
.vc-footer__col--wide { grid-column: span 2; }
@media (max-width: 559px) { .vc-footer__col--wide { grid-column: auto; } }
.vc-footer__col--wide ul { columns: 2 180px; column-gap: 24px; }
.vc-footer__col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.vc-footer__col--wide ul { display: block; }
.vc-footer__col--wide li { break-inside: avoid; padding-bottom: 10px; }
.vc-footer__title { font-size: var(--vc-fs-label); letter-spacing: var(--vc-ls-label); text-transform: uppercase; color: var(--vc-ocre-500); font-weight: 600; margin-bottom: 6px; }
.vc-footer a { color: var(--vc-teal-100); }
.vc-footer a:hover { color: #fff; }
.vc-footer__logo { height: 66px; width: auto; align-self: flex-start; margin-bottom: 8px; }
.vc-footer__strong, .vc-footer a.vc-footer__strong { color: #fff; font-weight: 600; }
.vc-footer__social { display: flex; gap: 8px; align-items: center; }
.vc-footer__social .vc-i { font-size: 20px; }
.vc-footer__legal { padding-block: 20px 28px; display: flex; flex-wrap: wrap; gap: 12px 28px; font-size: 14px; color: var(--vc-teal-200); border-top: 1px solid rgba(255, 255, 255, .12); }
.vc-footer__legal a { color: var(--vc-teal-200); }
.vc-footer__credits { margin-left: auto; }
.vc-footer__legal .vc-footer__credits a { text-decoration: underline; text-underline-offset: 3px; }

/* ---------- G5 Breadcrumb ---------- */
.vc-crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; font-size: 15px; }
.vc-crumbs li { display: flex; align-items: center; gap: 10px; }
.vc-crumbs .vc-i { font-size: 13px; }
.vc-crumbs a { color: #fff; }
.vc-crumbs a:hover { color: var(--vc-teal-100); }
.vc-crumbs [aria-current] { color: var(--vc-teal-100); }
.vc-pagehero--soft .vc-crumbs a { color: var(--vc-teal-700); }
.vc-pagehero--soft .vc-crumbs a:hover { color: var(--vc-teal-900); }
.vc-pagehero--soft .vc-crumbs, .vc-pagehero--soft .vc-crumbs [aria-current] { color: var(--vc-text-muted); }

/* ---------- S1 HeroHome ---------- */
.vc-hero { position: relative; background: var(--vc-bg-brand) url("../img/motifs/mesh-white.svg") center / cover; color: #fff; overflow: hidden; }
.vc-hero .vc-wrap { padding-block: clamp(48px, 7vw, 104px) clamp(56px, 7vw, 104px); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 520px), 1fr)); gap: clamp(36px, 5vw, 72px); align-items: center; }
.vc-hero__text { display: flex; flex-direction: column; gap: 28px; }
.vc-hero__text .vc-marker { width: 22px; height: 22px; }
.vc-hero h1 { font-family: var(--vc-font-display); font-weight: 300; font-size: var(--vc-fs-display-xl); line-height: var(--vc-lh-display); letter-spacing: var(--vc-ls-display); }
.vc-hero__lead { max-width: 520px; font-size: var(--vc-fs-lead); line-height: 1.5; }
.vc-hero .vc-btns { margin-top: 6px; }
.vc-hero__media { position: relative; width: 100%; aspect-ratio: 5 / 4; }
.vc-hero__media .vc-media { position: absolute; inset: 0; }
.vc-hero__tri { position: absolute; left: -14px; top: 22%; width: 26%; aspect-ratio: 1; background: var(--vc-ocre-500); clip-path: polygon(0 0, 100% 50%, 20% 100%); opacity: .9; pointer-events: none; }

/* ---------- S2 PageHero ---------- */
.vc-pagehero { position: relative; color: #fff; }
.vc-pagehero--brand { background: var(--vc-bg-brand) url("../img/motifs/mesh-white.svg") center / cover; }
.vc-pagehero--emergency { background: var(--vc-bg-emergency) url("../img/motifs/mesh-white.svg") center / cover; }
.vc-pagehero--soft { background: var(--vc-bg-soft); color: var(--vc-text); }
.vc-pagehero .vc-crumbs { padding-top: 20px; }
.vc-pagehero__body { padding-block: clamp(28px, 4vw, 56px) clamp(40px, 5vw, 72px); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 480px), 1fr)); gap: clamp(32px, 4vw, 64px); align-items: center; }
.vc-pagehero__text { display: flex; flex-direction: column; gap: 20px; }
.vc-pagehero__kicker { font-size: var(--vc-fs-label); letter-spacing: var(--vc-ls-label); text-transform: uppercase; font-weight: 600; display: flex; gap: 10px; align-items: center; }
.vc-pagehero__kicker .vc-i { font-size: 28px; }
.vc-pagehero__kicker .vc-marker { width: 12px; height: 12px; }
.vc-pagehero h1 { font-family: var(--vc-font-display); font-weight: 300; font-size: var(--vc-fs-display-l); line-height: 1; letter-spacing: -.02em; }
.vc-pagehero__lead { max-width: 600px; font-size: var(--vc-fs-lead); line-height: 1.5; }
.vc-pagehero__meta { font-size: 16px; color: var(--vc-text-muted); }
.vc-pagehero--soft .vc-pagehero__body { display: flex; gap: 18px; align-items: flex-start; padding-block: clamp(28px, 4vw, 48px) clamp(36px, 4vw, 56px); }
.vc-pagehero--soft .vc-marker { margin-top: 16px; }
.vc-pagehero--soft h1 { font-size: clamp(40px, 5vw, 72px); }
.vc-pagehero--soft .vc-pagehero__lead { color: var(--vc-text); }
.vc-pagehero__big { font-family: var(--vc-font-display); font-weight: 300; font-size: var(--vc-fs-numeral-xl); line-height: .95; letter-spacing: -.03em; }

/* Bloc « en bref » : réponse directe sous le H1 (GEO) */
.vc-brief { font-size: var(--vc-fs-lead); line-height: 1.5; max-width: 620px; }
.vc-brief p + p { margin-top: 10px; }

/* ---------- S3 ProofStrip ---------- */
.vc-proofs { background: var(--vc-bg-ink); color: #fff; }
.vc-proofs ul { list-style: none; margin: 0 auto; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }
.vc-proofs li { padding: clamp(26px, 3vw, 40px) 24px clamp(26px, 3vw, 40px) 0; display: flex; gap: 16px; align-items: baseline; }
.vc-proofs__n { font-family: var(--vc-font-display); font-weight: 300; font-size: var(--vc-fs-numeral); line-height: 1; letter-spacing: -.02em; white-space: nowrap; }
.vc-proofs__l { font-size: 16px; line-height: 1.35; color: var(--vc-teal-100); max-width: 160px; }

/* ---------- S4 SectionHeading ---------- */
.vc-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; margin-bottom: var(--vc-head-gap); }
.vc-heading__main { display: flex; gap: 18px; align-items: flex-start; min-width: 0; }
.vc-heading__main .vc-marker { margin-top: 14px; }
.vc-heading__text { display: flex; flex-direction: column; gap: 14px; max-width: 760px; min-width: 0; }
.vc-heading h2 { font-family: var(--vc-font-display); font-weight: 300; font-size: var(--vc-fs-display-l); line-height: 1; letter-spacing: -.02em; color: var(--vc-teal-900); }
.vc-heading__intro { font-size: var(--vc-fs-body-l); line-height: 1.55; color: var(--vc-text-muted); }
.vc-heading--tight { margin-bottom: 0; }
.vc-heading--m h2 { font-size: clamp(34px, 3.6vw, 56px); }
@media (max-width: 859px) { .vc-heading__main .vc-marker { width: 12px; height: 12px; margin-top: 12px; } }

/* ---------- S5 ServiceGrid ---------- */
.vc-groups { display: flex; flex-direction: column; gap: clamp(36px, 4vw, 56px); }
.vc-group { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); gap: var(--vc-joint); margin: 0; padding: 0; list-style: none; }
.vc-group__head { padding: 22px 22px 22px 0; display: flex; flex-direction: column; justify-content: space-between; gap: 12px; min-height: 170px; }
.vc-group__title { font-family: var(--vc-font-display); font-weight: 300; font-size: var(--vc-fs-display-m); line-height: 1.08; color: var(--vc-teal-900); }
.vc-group > li { display: flex; }
@media (max-width: 559px) {
  .vc-group { grid-template-columns: 1fr 1fr; }
  .vc-group__head { grid-column: 1 / -1; min-height: 0; padding: 0 0 8px; }
  .vc-tile { min-height: 140px; padding: 18px; }
  .vc-tile .vc-i { font-size: 38px; }
  .vc-tile__name { font-size: 16px; padding-right: 8px; }
}
.vc-group > li > .vc-tile { flex: 1; }
.vc-related { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: var(--vc-joint); margin: 0; padding: 0; list-style: none; }
.vc-related a { background: var(--vc-teal-50); padding: 20px; display: flex; gap: 16px; align-items: center; color: var(--vc-teal-900); height: 100%; clip-path: polygon(0 0, 100% 0, 100% calc(100% - 16px), calc(100% - 16px) 100%, 0 100%); }
.vc-related a:hover { background: var(--vc-teal-100); color: var(--vc-teal-900); }
.vc-related a:focus-visible { outline-offset: -4px; }
.vc-related .vc-i:first-child { font-size: 36px; color: var(--vc-teal-700); }
.vc-related span { font-size: 17px; font-weight: 500; flex: 1; line-height: 1.3; }
.vc-related .vc-i:last-child { color: var(--vc-teal-700); }
.vc-compact { columns: 3 220px; column-gap: 32px; margin: 0; padding: 0; list-style: none; }
.vc-compact li { break-inside: avoid; border-top: 1px solid var(--vc-grey-200); }
.vc-compact a { display: flex; justify-content: space-between; gap: 12px; padding: 14px 0; font-size: 17px; font-weight: 500; color: var(--vc-teal-900); }
.vc-compact a:hover { color: var(--vc-teal-700); }

/* ---------- S6 SplitMediaText + S7 EquipmentGrid ---------- */
.vc-split .vc-wrap { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 460px), 1fr)); gap: var(--vc-col-gap); align-items: center; }
.vc-split--soft { background: var(--vc-bg-soft) url("../img/motifs/mesh-teal.svg") center / cover; padding-block: clamp(64px, 8vw, 120px); }
.vc-split--right .vc-split__media { order: 2; }
.vc-gallery { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.vc-gallery > :first-child { grid-column: 1 / -1; }
.vc-split__text { display: flex; flex-direction: column; gap: 26px; }
.vc-split__text .vc-heading { margin-bottom: 0; }
.vc-split__body { font-size: var(--vc-fs-body-l); line-height: 1.6; max-width: 560px; }
.vc-split__body p + p { margin-top: 14px; }
.vc-equip { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: var(--vc-joint); margin: 8px 0 0; padding: 0; list-style: none; }
.vc-equip li { background: #fff; padding: 20px; display: flex; flex-direction: column; gap: 6px; }
.vc-equip--soft li { background: var(--vc-teal-50); }
.vc-equip__name { font-size: 17px; font-weight: 600; color: var(--vc-teal-900); line-height: 1.35; }
.vc-equip__desc { font-size: var(--vc-fs-small); line-height: 1.45; color: var(--vc-text-muted); }
.vc-equip a.vc-link { font-size: 15px; margin-top: 4px; }

/* ---------- S8 TeamGrid ---------- */
.vc-team { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 180px), 1fr)); gap: clamp(16px, 2vw, 28px); margin: 0; padding: 0; list-style: none; }
@media (max-width: 559px) { .vc-team { grid-template-columns: 1fr 1fr; } }
.vc-team + .vc-heading { margin-top: clamp(56px, 6vw, 88px); }

/* ---------- S9 EmergencyBand ---------- */
.vc-emerg { background: var(--vc-bg-emergency) url("../img/motifs/mesh-white.svg") center / cover; color: #fff; }
.vc-emerg .vc-wrap { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); gap: clamp(28px, 4vw, 64px); align-items: center; }
.vc-emerg__head { display: flex; flex-direction: column; gap: 16px; }
.vc-emerg__kicker { font-size: var(--vc-fs-label); letter-spacing: var(--vc-ls-label); text-transform: uppercase; font-weight: 600; display: flex; gap: 10px; align-items: center; }
.vc-emerg__kicker .vc-marker { width: 12px; height: 12px; }
.vc-emerg__big { font-family: var(--vc-font-display); font-weight: 300; font-size: var(--vc-fs-numeral-xl); line-height: .95; letter-spacing: -.03em; }
.vc-emerg__body { display: flex; flex-direction: column; gap: 24px; max-width: 480px; }
.vc-emerg__body p { font-size: var(--vc-fs-body-l); line-height: 1.6; }
.vc-emerg__body a.vc-link { color: #fff; }
.vc-emerg--compact { background: var(--vc-bg-emergency); padding-block: 22px; }
.vc-emerg--compact .vc-wrap { display: flex; flex-wrap: wrap; gap: 16px 32px; align-items: center; justify-content: space-between; }
.vc-emerg--compact p { display: flex; gap: 14px; align-items: center; font-size: var(--vc-fs-body-l); line-height: 1.45; }
.vc-emerg--compact p .vc-marker { width: 12px; height: 12px; }
.vc-emerg--compact a:not(.vc-btn) { color: #fff; text-decoration: underline; text-underline-offset: 3px; }

/* ---------- S10 HoursAccess ---------- */
.vc-hoursaccess { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 460px), 1fr)); gap: clamp(40px, 5vw, 88px); }
.vc-hoursaccess__col { display: flex; flex-direction: column; gap: 30px; }
.vc-hoursaccess .vc-heading { margin-bottom: 0; }
.vc-map { min-height: 440px; position: relative; background: var(--vc-grey-300) url("../img/motifs/mesh-teal-dense.svg") center / 420px; display: flex; flex-direction: column; justify-content: flex-end; align-items: flex-start; gap: 14px; padding: 28px 28px 28px 14%; }
.vc-map__label { font-size: 14px; background: #fff; padding: 5px 9px; color: var(--vc-teal-900); }
.vc-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.vc-hoursaccess__col > .vc-btn { align-self: flex-start; }
@media (max-width: 559px) { .vc-map { min-height: 300px; } }

/* ---------- S11 ReviewsSlot ---------- */
.vc-reviews { border: 2px dashed var(--vc-teal-300); padding: clamp(28px, 4vw, 48px); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr)); gap: 24px; align-items: center; }
.vc-reviews__title { font-family: var(--vc-font-display); font-weight: 300; font-size: clamp(32px, 3.4vw, 52px); line-height: 1.05; color: var(--vc-teal-900); }
.vc-reviews__text { display: flex; flex-direction: column; gap: 8px; }
.vc-reviews__text strong { font-size: 20px; }
.vc-reviews__text span { font-size: 16px; color: var(--vc-text-muted); }

/* ---------- S12 ZoneDiagram ---------- */
.vc-zone { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: clamp(32px, 5vw, 80px); align-items: center; }
.vc-zone__text { display: flex; flex-direction: column; gap: 24px; }
.vc-zone__text .vc-heading { margin-bottom: 0; }
.vc-zone__text p { font-size: var(--vc-fs-body-l); line-height: 1.6; }
.vc-zone__svg a text { text-decoration: underline; text-underline-offset: 3px; }
.vc-zone__svg a:hover text { fill: var(--vc-teal-700); }
.vc-zone__svg a:focus-visible { outline: 2px solid var(--vc-focus); }
.vc-zone__caption { font-size: 13px; color: var(--vc-text-muted); margin-top: 6px; }

/* ---------- S14 Prose + S17 KeyFacts ---------- */
.vc-article { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 80px); align-items: start; }
.vc-article--single { grid-template-columns: minmax(0, 1fr); }
@media (max-width: 899px) { .vc-article { grid-template-columns: minmax(0, 1fr); } }
.vc-prose { max-width: 68ch; display: flex; flex-direction: column; gap: 20px; font-size: 18px; line-height: 1.65; min-width: 0; }
.vc-prose h2 { font-family: var(--vc-font-display); font-weight: 300; font-size: clamp(30px, 2.8vw, 42px); line-height: 1.1; margin-top: 16px; }
.vc-prose h2:first-child { margin-top: 0; }
.vc-prose h3 { font-size: 21px; font-weight: 600; line-height: 1.3; margin-top: 8px; }
.vc-prose ul { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.vc-prose ul li { display: flex; gap: 12px; }
.vc-prose ul li::before { content: ""; width: 8px; height: 8px; background: var(--vc-ocre-500); margin-top: 11px; flex: none; }
.vc-prose ol { padding-left: 1.4em; display: flex; flex-direction: column; gap: 8px; }
.vc-prose a { color: var(--vc-link); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.vc-prose a:hover { color: var(--vc-link-hover); }
.vc-prose blockquote { padding-left: 24px; box-shadow: inset 3px 0 0 var(--vc-teal-500); font-family: var(--vc-font-display); font-weight: 300; font-size: 28px; line-height: 1.3; }
.vc-prose .vc-updated { font-size: 14px; color: var(--vc-text-muted); }
.vc-aside { background: var(--vc-teal-50); padding: 28px; display: flex; flex-direction: column; gap: 18px; clip-path: polygon(0 0, 100% 0, 100% calc(100% - 22px), calc(100% - 22px) 100%, 0 100%); }
@media (min-width: 900px) { .vc-aside { position: sticky; top: 120px; } }
.vc-facts { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 18px; }
.vc-fact { display: flex; gap: 12px; align-items: flex-start; }
.vc-fact > .vc-i { font-size: 22px; color: var(--vc-teal-700); margin-top: 2px; }
.vc-fact__k { font-size: 14px; color: var(--vc-text-muted); display: block; }
.vc-fact__v { font-size: 17px; font-weight: 500; line-height: 1.4; display: block; }
.vc-aside__ref { display: flex; flex-direction: column; gap: 10px; padding-top: 6px; }
.vc-aside__ref > span { font-size: 14px; color: var(--vc-text-muted); }

/* ---------- S15 FAQ + S16 StepList ---------- */
.vc-faq { max-width: 960px; }
.vc-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--vc-joint); }
.vc-steps li { display: grid; grid-template-columns: 72px 1fr; gap: 16px; align-items: baseline; padding: 20px 0; border-top: 1px solid var(--vc-grey-200); }
.vc-steps__n { font-family: var(--vc-font-display); font-weight: 300; font-size: 44px; line-height: 1; color: var(--vc-teal-500); }
.vc-steps__t { font-size: 18px; font-weight: 600; display: block; }
.vc-steps__d { font-size: 16px; line-height: 1.5; color: var(--vc-text-muted); display: block; margin-top: 4px; }

/* ---------- S18 CTABand ---------- */
.vc-cta { background: var(--vc-bg-brand) url("../img/motifs/mesh-white.svg") center / cover; color: #fff; padding-block: clamp(40px, 5vw, 72px); }
.vc-cta .vc-wrap { display: flex; flex-wrap: wrap; gap: 24px 48px; align-items: center; justify-content: space-between; }
.vc-cta__text { display: flex; flex-direction: column; gap: 10px; max-width: 720px; }
.vc-cta h2 { font-family: var(--vc-font-display); font-weight: 300; font-size: clamp(34px, 3.6vw, 56px); line-height: 1.05; }
.vc-cta p { font-size: var(--vc-fs-body-l); }

/* ---------- S20 CommuneLinks ---------- */
.vc-communes { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr)); gap: var(--vc-joint); margin: 0; padding: 0; list-style: none; }
.vc-communes a, .vc-communes span { background: var(--vc-teal-50); padding: 16px 18px; display: flex; justify-content: space-between; align-items: center; gap: 10px; color: var(--vc-teal-900); font-size: 17px; line-height: 1.3; height: 100%; }
.vc-communes a:hover { background: var(--vc-teal-100); color: var(--vc-teal-900); }
.vc-communes a .vc-i { color: var(--vc-teal-700); }
.vc-communes a:focus-visible { outline-offset: -4px; }
.vc-communes span { background: #fff; box-shadow: inset 0 0 0 1px var(--vc-grey-200); }
.vc-communes small { font-size: 13px; color: var(--vc-text-muted); }
.vc-communes-group + .vc-communes-group { margin-top: 32px; }
.vc-communes-group .vc-kicker { display: block; margin-bottom: 14px; }

/* ---------- S22 Notice ---------- */
.vc-notice { background: var(--vc-teal-50); padding: 20px 22px; display: flex; gap: 14px; font-size: 16px; line-height: 1.55; }
.vc-notice > .vc-i { font-size: 24px; color: var(--vc-teal-700); }
.vc-notice--alert { background: #fff; box-shadow: inset 0 0 0 2px var(--vc-ocre-500); }

/* ---------- S23 ErrorBlock ---------- */
.vc-error { background: var(--vc-bg-soft) url("../img/motifs/mesh-teal.svg") center / cover; padding-block: clamp(64px, 8vw, 120px); }
.vc-error .vc-wrap { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 40px; }
.vc-error__block { display: flex; flex-direction: column; gap: 16px; align-items: flex-start; }
.vc-error__code { font-family: var(--vc-font-display); font-weight: 300; font-size: 96px; line-height: 1; color: var(--vc-teal-700); }
.vc-error__msg { font-size: 22px; font-weight: 500; }

/* Apparition au défilement (facultative, une seule fois) */
@media (prefers-reduced-motion: no-preference) {
  .js .vc-reveal { opacity: 0; transform: translateY(12px); transition: opacity var(--vc-dur) var(--vc-ease), transform var(--vc-dur) var(--vc-ease); }
  .js .vc-reveal.is-in { opacity: 1; transform: none; }
}
