/* VivaWeb — généré par theme-enfant/construire-css.sh : modifier les sources, pas ce fichier. */
/* VivaWeb — jetons du design system, générés depuis tokens.json.
   bundle.css lit chaque valeur via var(--nom, valeur de secours) : ce fichier est facultatif mais permet de piloter les couleurs depuis un seul endroit. */
:root {
  /* color */
  --nuit-900: #081829;
  --nuit-800: #0B1F35;
  --nuit-700: #102A45;
  --marine-600: #133453;
  --cyan-500: #00AEEF;
  --cyan-400: #2BB5E9;
  --cyan-300: #7FDBFF;
  --cyan-100: #E0FCFF;
  --lien-700: #0077A8;
  --ambre-500: #F5A524;
  --encre-900: #2B3337;
  --ardoise-700: #44566B;
  --ardoise-600: #587089;
  --brume-300: #DBE3EF;
  --brume-200: #E6ECF4;
  --fond-100: #F5F7FA;
  --blanc: #FFFFFF;
  --nuit-texte-200: #C9D6E6;
  --nuit-texte-300: #A9BBD0;
  --succes-700: #13612E;
  --info-700: #1159AF;
  --erreur-700: #B82105;
  --alerte-600: #F7630C;
  /* spacing */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;
  --section-y: 112px;
  --section-y-mobile: 56px;
  /* radius */
  --radius-sm: 10px;
  --radius-md: 14px;
  --radius-lg: 22px;
  --radius-xl: 28px;
  --radius-pill: 999px;
  /* shadow */
  --shadow-card: 0 28px 50px -28px rgba(11, 31, 53, 0.45);
  --shadow-float: 0 40px 80px -30px rgba(0, 0, 0, 0.6);
  --shadow-cta: 0 18px 40px -16px rgba(0, 174, 239, 0.7);
  --shadow-phone: 0 40px 70px -20px rgba(0, 0, 0, 0.75);
  /* layout */
  --container-max: 1240px;
  --header-height: 92px;
  /* animation */
  --duree-rapide: 200ms;
  --duree-base: 800ms;
  --duree-lente: 2200ms;
  --courbe-sortie: cubic-bezier(0.22, 1, 0.36, 1);
  --courbe-ressort: cubic-bezier(0.34, 1.56, 0.64, 1);
  --duree-defilement: 45s;
  /* typographie */
  --font-display: "Prompt", system-ui, sans-serif;
  --font-text: "Karla", system-ui, sans-serif;
  --type-display: 700 72px/1.02 var(--font-display);
  --type-h1: 700 64px/1.04 var(--font-display);
  --type-h2: 700 48px/1.08 var(--font-display);
  --type-h3: 600 24px/1.2 var(--font-display);
  --type-h4: 600 20px/1.3 var(--font-display);
  --type-eyebrow: 600 14px/1.4 var(--font-display);
  --type-chiffre: 700 44px/1 var(--font-display);
  --type-bouton: 600 17px/1.2 var(--font-display);
  --type-lead: 400 20px/1.6 var(--font-text);
  --type-body: 400 18px/1.6 var(--font-text);
  --type-small: 400 15px/1.5 var(--font-text);
  --type-caption: 500 13px/1.4 var(--font-text);
  --type-label: 700 15px/1.4 var(--font-text);
}

/* VivaWeb — bibliothèque de composants (CSS).
   Chaque valeur lit d'abord le jeton de tokens.json (var(--nom)) puis retombe sur la valeur de la charte.
   Polices : Prompt (titres) et Karla (texte), chargées depuis Google Fonts par la page hôte. */

/* ---------- Base ---------- */
.vw-root {
  font-family: var(--font-text, "Karla", system-ui, sans-serif);
  color: var(--encre-900, #2B3337);
  background: var(--fond-100, #F5F7FA);
  font-size: 18px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
.vw-root *, .vw-root *::before, .vw-root *::after { box-sizing: border-box; }
.vw-container { max-width: var(--container-max, 1240px); margin-inline: auto; padding-inline: clamp(16px, 4vw, 32px); }
.vw-section { padding-block: var(--section-y, 112px); }
@media (max-width: 720px) { .vw-section { padding-block: var(--section-y-mobile, 56px); } }
.vw-dark { background-color: var(--nuit-800, #0B1F35); color: var(--blanc, #FFFFFF); }
.vw-gridbg {
  background-image: linear-gradient(rgba(43, 181, 233, 0.07) 1px, transparent 1px), linear-gradient(90deg, rgba(43, 181, 233, 0.07) 1px, transparent 1px);
  background-size: 56px 56px;
}
.vw-dotbg {
  background-image: radial-gradient(rgba(43, 181, 233, 0.28) 1.4px, transparent 1.6px);
  background-size: 22px 22px;
}
.vw-glow { position: absolute; border-radius: 50%; pointer-events: none; background: radial-gradient(closest-side, rgba(0, 174, 239, 0.3), rgba(0, 174, 239, 0)); }

/* ---------- Typographie ---------- */
.vw-display, .vw-h1, .vw-h2, .vw-h3, .vw-h4, .vw-eyebrow, .vw-num, .vw-btn, .vw-chip, .vw-wordmark { font-family: var(--font-display, "Prompt", system-ui, sans-serif); }
.vw-display { font-weight: 700; font-size: clamp(42px, 5vw, 72px); line-height: 1.02; letter-spacing: -0.03em; text-wrap: balance; margin: 0; }
.vw-h1 { font-weight: 700; font-size: clamp(40px, 4.6vw, 64px); line-height: 1.04; letter-spacing: -0.025em; text-wrap: balance; margin: 0; }
.vw-h2 { font-weight: 700; font-size: clamp(32px, 3.4vw, 48px); line-height: 1.08; letter-spacing: -0.02em; text-wrap: balance; margin: 0; color: var(--nuit-800, #0B1F35); }
.vw-dark .vw-h2, .vw-h2--on-dark { color: var(--blanc, #FFFFFF); }
.vw-h3 { font-weight: 600; font-size: 24px; line-height: 1.2; margin: 0; color: var(--nuit-800, #0B1F35); }
.vw-h4 { font-weight: 600; font-size: 20px; line-height: 1.3; margin: 0; color: var(--nuit-800, #0B1F35); }
.vw-eyebrow { font-weight: 600; font-size: 14px; line-height: 1.4; letter-spacing: 0.1em; text-transform: uppercase; color: var(--lien-700, #0077A8); }
.vw-dark .vw-eyebrow, .vw-eyebrow--on-dark { color: var(--cyan-300, #7FDBFF); }
.vw-lead { font-size: 20px; line-height: 1.6; color: var(--ardoise-600, #587089); text-wrap: pretty; margin: 0; }
.vw-dark .vw-lead, .vw-lead--on-dark { color: var(--nuit-texte-200, #C9D6E6); }
.vw-muted { color: var(--ardoise-600, #587089); }
.vw-num { font-weight: 700; line-height: 1; letter-spacing: -0.02em; }
.vw-hl { color: var(--cyan-400, #2BB5E9); background-image: linear-gradient(var(--cyan-500, #00AEEF), var(--cyan-500, #00AEEF)); background-repeat: no-repeat; background-position: 0 94%; background-size: 100% 0.08em; -webkit-box-decoration-break: clone; box-decoration-break: clone; animation: vw-underline 900ms var(--courbe-sortie, cubic-bezier(0.22, 1, 0.36, 1)) var(--d, 1100ms) both; }
.vw-wordmark { font-weight: 800; letter-spacing: -0.02em; line-height: 1; color: var(--nuit-800, #0B1F35); text-decoration: none; }
.vw-wordmark span { color: var(--cyan-500, #00AEEF); }
.vw-dark .vw-wordmark, .vw-wordmark--on-dark { color: var(--blanc, #FFFFFF); }
.vw-dark .vw-wordmark span, .vw-wordmark--on-dark span { color: var(--cyan-400, #2BB5E9); }

/* ---------- Boutons ---------- */
.vw-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 48px; padding: 14px 26px; border-radius: var(--radius-pill, 999px);
  font-weight: 600; font-size: 17px; line-height: 1.2; text-decoration: none; cursor: pointer;
  border: 1.5px solid transparent; position: relative; overflow: hidden; isolation: isolate;
  transition: transform 200ms ease, box-shadow 200ms ease, background-color 200ms ease, color 200ms ease;
}
.vw-btn:focus-visible { outline: 3px solid var(--cyan-400, #2BB5E9); outline-offset: 3px; }
.vw-btn svg { flex: none; transition: transform 200ms ease; }
.vw-btn:hover svg { transform: translateX(3px); }
.vw-btn--primary { background: var(--cyan-500, #00AEEF); color: var(--nuit-800, #0B1F35); box-shadow: var(--shadow-cta, 0 18px 40px -16px rgba(0, 174, 239, 0.7)); }
.vw-btn--primary:hover { background: var(--cyan-400, #2BB5E9); color: var(--nuit-800, #0B1F35); transform: translateY(-2px); }
.vw-btn--primary::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(105deg, transparent 35%, rgba(255, 255, 255, 0.55) 50%, transparent 65%); transform: translateX(-120%); animation: vw-shine 4.5s ease-in-out 2.2s infinite; }
.vw-btn--dark { background: var(--nuit-800, #0B1F35); color: var(--blanc, #FFFFFF); }
.vw-btn--dark:hover { background: var(--marine-600, #133453); color: var(--blanc, #FFFFFF); transform: translateY(-2px); }
.vw-btn--outline { background: transparent; color: var(--nuit-800, #0B1F35); border-color: var(--nuit-800, #0B1F35); }
.vw-btn--outline:hover { background: var(--nuit-800, #0B1F35); color: var(--blanc, #FFFFFF); }
.vw-btn--ghost { background: transparent; color: var(--blanc, #FFFFFF); border-color: rgba(255, 255, 255, 0.32); }
.vw-btn--ghost:hover { border-color: var(--blanc, #FFFFFF); color: var(--blanc, #FFFFFF); background: rgba(255, 255, 255, 0.06); }
.vw-btn--lg { min-height: 56px; padding: 17px 30px; font-size: 18px; }
.vw-btn--sm { min-height: 44px; padding: 10px 18px; font-size: 15px; }
.vw-btn--block { display: flex; width: 100%; }
.vw-iconbtn { width: 46px; height: 46px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(255, 255, 255, 0.28); color: var(--blanc, #FFFFFF); text-decoration: none; transition: background 200ms ease; }
.vw-iconbtn:hover { background: rgba(255, 255, 255, 0.08); color: var(--blanc, #FFFFFF); }

/* ---------- Filtres et étiquettes ---------- */
.vw-chip { display: inline-flex; align-items: center; gap: 8px; height: 44px; padding: 0 18px; border-radius: var(--radius-pill, 999px); border: 1px solid var(--brume-300, #DBE3EF); background: var(--blanc, #FFFFFF); color: var(--encre-900, #2B3337); font-weight: 500; font-size: 15px; cursor: pointer; transition: background 160ms ease, color 160ms ease, border-color 160ms ease; white-space: nowrap; }
.vw-chip:hover { border-color: var(--nuit-800, #0B1F35); }
.vw-chip[aria-pressed="true"] { background: var(--nuit-800, #0B1F35); border-color: var(--nuit-800, #0B1F35); color: var(--blanc, #FFFFFF); }
.vw-chip:focus-visible { outline: 3px solid var(--cyan-400, #2BB5E9); outline-offset: 2px; }
.vw-chip[disabled] { cursor: default; color: var(--ardoise-600, #587089); border-style: dashed; }
.vw-chip__count { font-size: 13px; opacity: 0.75; }
.vw-tag { display: inline-flex; align-items: center; gap: 6px; padding: 3px 12px; border-radius: var(--radius-pill, 999px); font-size: 14px; line-height: 1.5; font-weight: 500; background: var(--cyan-100, #E0FCFF); color: #0B4F6C; white-space: nowrap; }
.vw-tag--lieu { background: var(--blanc, #FFFFFF); border: 1px solid var(--brume-300, #DBE3EF); color: var(--ardoise-700, #44566B); font-weight: 400; }
.vw-tag--soon { background: rgba(245, 165, 36, 0.16); color: #8A5300; }
.vw-dark .vw-tag--soon { background: rgba(245, 165, 36, 0.16); color: var(--ambre-500, #F5A524); }
.vw-pill { display: inline-flex; align-items: center; gap: 12px; padding: 6px 16px 6px 6px; border-radius: var(--radius-pill, 999px); background: rgba(43, 181, 233, 0.12); border: 1px solid rgba(43, 181, 233, 0.38); font-size: 15px; line-height: 1.3; color: #CFF3FF; }
.vw-pill b { background: var(--cyan-500, #00AEEF); color: var(--nuit-800, #0B1F35); border-radius: var(--radius-pill, 999px); padding: 4px 12px; font: 600 13px/1.2 var(--font-display, "Prompt", system-ui, sans-serif); }

/* ---------- Cartes ---------- */
.vw-card { background: var(--blanc, #FFFFFF); border: 1px solid var(--brume-300, #DBE3EF); border-radius: var(--radius-lg, 22px); padding: 32px; color: var(--encre-900, #2B3337); text-decoration: none; display: flex; flex-direction: column; gap: 16px; transition: transform 250ms ease, box-shadow 250ms ease, border-color 250ms ease; }
.vw-card--dark { background: var(--marine-600, #133453); border-color: var(--marine-600, #133453); color: var(--blanc, #FFFFFF); }
a.vw-card:hover, .vw-card--lift:hover { transform: translateY(-4px); box-shadow: var(--shadow-card, 0 28px 50px -28px rgba(11, 31, 53, 0.45)); border-color: var(--cyan-400, #2BB5E9); }
.vw-card__icon { width: 56px; height: 56px; border-radius: 16px; background: var(--cyan-100, #E0FCFF); color: var(--lien-700, #0077A8); display: inline-flex; align-items: center; justify-content: center; transition: transform 300ms var(--courbe-ressort, cubic-bezier(0.34, 1.56, 0.64, 1)); }
.vw-card--dark .vw-card__icon { background: var(--cyan-500, #00AEEF); color: var(--nuit-800, #0B1F35); }
a.vw-card:hover .vw-card__icon { transform: rotate(-6deg) scale(1.08); }
.vw-card__title { font: 600 24px/1.2 var(--font-display, "Prompt", system-ui, sans-serif); color: var(--nuit-800, #0B1F35); }
.vw-card--dark .vw-card__title { color: var(--blanc, #FFFFFF); }
.vw-card__text { font-size: 17px; color: var(--ardoise-600, #587089); }
.vw-card--dark .vw-card__text { color: var(--nuit-texte-200, #C9D6E6); }
.vw-card__more { margin-top: auto; display: inline-flex; align-items: center; gap: 8px; font: 500 16px/1.2 var(--font-display, "Prompt", system-ui, sans-serif); color: var(--lien-700, #0077A8); }
.vw-card--dark .vw-card__more { color: var(--cyan-400, #2BB5E9); }

/* ---------- Cadres navigateur et téléphone ---------- */
.vw-frame { border-radius: var(--radius-md, 14px); overflow: hidden; background: var(--blanc, #FFFFFF); box-shadow: 0 1px 0 var(--brume-300, #DBE3EF); }
.vw-frame__bar { display: flex; align-items: center; gap: 6px; padding: 9px 12px; background: #EEF2F7; border-bottom: 1px solid var(--brume-200, #E6ECF4); }
.vw-frame__bar i { width: 8px; height: 8px; border-radius: 50%; background: #C9D3E0; flex: none; }
.vw-frame__url { margin-left: 8px; flex: 1; min-width: 0; background: var(--blanc, #FFFFFF); border-radius: 6px; padding: 2px 10px; font-size: 11px; line-height: 1.5; color: var(--ardoise-600, #587089); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.vw-frame__screen { position: relative; aspect-ratio: 1900 / 1014; overflow: hidden; background: var(--brume-200, #E6ECF4); }
.vw-frame__screen img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: top center; display: block; transition: transform 700ms var(--courbe-sortie, cubic-bezier(0.22, 1, 0.36, 1)); }
.vw-frame--float { box-shadow: var(--shadow-float, 0 40px 80px -30px rgba(0, 0, 0, 0.6)); border-radius: 16px; }
.vw-skeleton { position: absolute; inset: 0; padding: 7% 6%; display: flex; flex-direction: column; gap: 6%; background: #F7F9FC; }
.vw-skeleton i { display: block; border-radius: 6px; background: #DCE5F0; }
.vw-skeleton--build i { transform-origin: left center; animation: vw-bar 520ms var(--courbe-sortie, cubic-bezier(0.22, 1, 0.36, 1)) var(--db, 300ms) both; }
.vw-skeleton--build i:nth-child(2) { animation-delay: calc(var(--db, 300ms) + 90ms); }
.vw-skeleton--build i:nth-child(3) { animation-delay: calc(var(--db, 300ms) + 180ms); }
.vw-skeleton--build i:nth-child(4) { animation-delay: calc(var(--db, 300ms) + 270ms); }
.vw-skeleton--build i:nth-child(5) { animation-delay: calc(var(--db, 300ms) + 360ms); }
.vw-skeleton--build i:nth-child(6) { animation-delay: calc(var(--db, 300ms) + 450ms); }
.vw-floatchip { position: absolute; display: inline-flex; align-items: center; gap: 8px; padding: 7px 13px; border-radius: var(--radius-pill, 999px); background: rgba(11, 31, 53, 0.78); border: 1px solid rgba(43, 181, 233, 0.45); color: var(--blanc, #FFFFFF); font: 600 13px/1.2 var(--font-display, "Prompt", system-ui, sans-serif); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); box-shadow: 0 12px 30px -12px rgba(0, 0, 0, 0.6); white-space: nowrap; z-index: 3; }
.vw-floatchip i { width: 8px; height: 8px; border-radius: 50%; background: var(--cyan-500, #00AEEF); flex: none; }
.vw-guides { position: absolute; inset: -24px 4% -24px 4%; display: flex; justify-content: space-between; pointer-events: none; }
.vw-guides i { width: 1px; height: 100%; background: rgba(43, 181, 233, 0.4); }
.vw-phone { width: 180px; aspect-ratio: 180 / 350; border-radius: 30px; background: var(--nuit-800, #0B1F35); padding: 9px; box-shadow: var(--shadow-phone, 0 40px 70px -20px rgba(0, 0, 0, 0.75)), 0 0 0 1px rgba(255, 255, 255, 0.12); }
.vw-phone__screen { position: relative; width: 100%; height: 100%; border-radius: 22px; overflow: hidden; background: var(--blanc, #FFFFFF); }
.vw-phone__screen img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: top center; display: block; }

/* ---------- Carte réalisation ---------- */
.vw-project { display: flex; flex-direction: column; gap: 14px; padding: 12px 12px 20px; border-radius: var(--radius-lg, 22px); background: var(--blanc, #FFFFFF); border: 1px solid var(--brume-200, #E6ECF4); color: var(--encre-900, #2B3337); text-decoration: none; transition: transform 250ms ease, box-shadow 250ms ease; }
.vw-project:hover { transform: translateY(-4px); box-shadow: var(--shadow-card, 0 28px 50px -28px rgba(11, 31, 53, 0.45)); }
.vw-project:hover .vw-frame__screen img { transform: scale(1.06); }
.vw-project__cta { position: absolute; left: 50%; bottom: 14px; transform: translate(-50%, 12px); opacity: 0; transition: opacity 250ms ease, transform 250ms ease; background: var(--nuit-800, #0B1F35); color: var(--blanc, #FFFFFF); border-radius: var(--radius-pill, 999px); padding: 8px 16px; font: 600 14px/1.2 var(--font-display, "Prompt", system-ui, sans-serif); white-space: nowrap; }
.vw-project:hover .vw-project__cta, .vw-project:focus-visible .vw-project__cta { opacity: 1; transform: translate(-50%, 0); }
.vw-project__name { font: 600 20px/1.25 var(--font-display, "Prompt", system-ui, sans-serif); color: var(--nuit-800, #0B1F35); padding-inline: 8px; }
.vw-project__desc { font-size: 15px; line-height: 1.5; color: var(--ardoise-600, #587089); padding-inline: 8px; }
.vw-project__tags { display: flex; flex-wrap: wrap; gap: 8px; padding-inline: 8px; }

/* ---------- Note, étoiles, avis ---------- */
.vw-stars { display: inline-flex; gap: 2px; color: var(--ambre-500, #F5A524); }
.vw-stars svg { width: 1em; height: 1em; fill: currentColor; display: block; }
.vw-stars--fill svg { animation: vw-star 420ms var(--courbe-ressort, cubic-bezier(0.34, 1.56, 0.64, 1)) both; }
.vw-stars--fill svg:nth-child(1) { animation-delay: calc(var(--d, 0ms) + 0ms); }
.vw-stars--fill svg:nth-child(2) { animation-delay: calc(var(--d, 0ms) + 90ms); }
.vw-stars--fill svg:nth-child(3) { animation-delay: calc(var(--d, 0ms) + 180ms); }
.vw-stars--fill svg:nth-child(4) { animation-delay: calc(var(--d, 0ms) + 270ms); }
.vw-stars--fill svg:nth-child(5) { animation-delay: calc(var(--d, 0ms) + 360ms); }
.vw-rating { display: inline-flex; align-items: center; gap: 10px; color: inherit; text-decoration: none; }
.vw-rating__score { font: 700 20px/1 var(--font-display, "Prompt", system-ui, sans-serif); }
.vw-review { margin: 0; background: var(--fond-100, #F5F7FA); border: 1px solid var(--brume-200, #E6ECF4); border-radius: var(--radius-lg, 22px); padding: 26px; display: flex; flex-direction: column; gap: 14px; }
.vw-review--white { background: var(--blanc, #FFFFFF); }
.vw-review--dark { background: rgba(255, 255, 255, 0.06); border-color: rgba(255, 255, 255, 0.12); color: var(--blanc, #FFFFFF); }
.vw-review--float { background: var(--blanc, #FFFFFF); border: 0; box-shadow: var(--shadow-float, 0 40px 80px -30px rgba(0, 0, 0, 0.6)); padding: 18px 20px; gap: 10px; }
.vw-review__head { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.vw-review__source { font-size: 13px; color: var(--ardoise-700, #44566B); background: var(--blanc, #FFFFFF); border: 1px solid var(--brume-300, #DBE3EF); border-radius: var(--radius-pill, 999px); padding: 2px 10px; }
.vw-review__quote { margin: 0; font: 500 21px/1.35 var(--font-display, "Prompt", system-ui, sans-serif); color: var(--nuit-800, #0B1F35); text-wrap: pretty; }
.vw-review--dark .vw-review__quote { color: var(--blanc, #FFFFFF); }
.vw-review__by { display: flex; gap: 12px; align-items: center; font-size: 15px; line-height: 1.35; color: var(--ardoise-600, #587089); }
.vw-review--dark .vw-review__by { color: var(--nuit-texte-300, #A9BBD0); }
.vw-review__by strong { color: var(--encre-900, #2B3337); display: block; }
.vw-review--dark .vw-review__by strong { color: var(--blanc, #FFFFFF); }
.vw-avatar { flex: none; width: 40px; height: 40px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--marine-600, #133453); color: var(--blanc, #FFFFFF); font: 600 14px/1 var(--font-display, "Prompt", system-ui, sans-serif); }
.vw-avatar--cyan { background: var(--cyan-500, #00AEEF); color: var(--nuit-800, #0B1F35); }

/* ---------- Agences ---------- */
.vw-agency { display: flex; gap: 18px; align-items: center; padding: 18px 22px; border-radius: 18px; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.12); color: var(--blanc, #FFFFFF); text-decoration: none; transition: transform 250ms ease, border-color 250ms ease, background 250ms ease; }
.vw-agency:hover { transform: translateX(6px); border-color: var(--cyan-400, #2BB5E9); background: rgba(43, 181, 233, 0.08); color: var(--blanc, #FFFFFF); }
.vw-agency__dept { flex: none; width: 58px; height: 58px; border-radius: 14px; display: inline-flex; align-items: center; justify-content: center; font: 800 22px/1 var(--font-display, "Prompt", system-ui, sans-serif); background: var(--marine-600, #133453); border: 1px solid rgba(43, 181, 233, 0.5); color: var(--blanc, #FFFFFF); }
.vw-agency--hq .vw-agency__dept { background: var(--cyan-500, #00AEEF); border-color: var(--cyan-500, #00AEEF); color: var(--nuit-800, #0B1F35); }
.vw-agency--soon { border-style: dashed; border-color: rgba(245, 165, 36, 0.45); }
.vw-agency--soon .vw-agency__dept { background: rgba(245, 165, 36, 0.12); border: 1px dashed var(--ambre-500, #F5A524); color: var(--ambre-500, #F5A524); }
.vw-agency__name { font: 600 21px/1.25 var(--font-display, "Prompt", system-ui, sans-serif); display: block; }
.vw-agency__zone { color: var(--nuit-texte-300, #A9BBD0); font-size: 15px; display: block; }
.vw-agency__body { flex: 1; min-width: 0; }

/* ---------- Chiffres clés ---------- */
.vw-stat { background: var(--blanc, #FFFFFF); border: 1px solid var(--brume-300, #DBE3EF); border-radius: 20px; padding: 22px; display: flex; flex-direction: column; gap: 6px; overflow: hidden; }
.vw-stat__value { font: 700 44px/1 var(--font-display, "Prompt", system-ui, sans-serif); color: var(--nuit-800, #0B1F35); letter-spacing: -0.02em; }
.vw-stat__value small { font-size: 0.5em; color: var(--lien-700, #0077A8); }
.vw-stat__label { font-size: 15px; color: var(--ardoise-600, #587089); }
.vw-stat--accent { background: var(--cyan-500, #00AEEF); border-color: var(--cyan-500, #00AEEF); }
.vw-stat--accent .vw-stat__value, .vw-stat--accent .vw-stat__label { color: var(--nuit-800, #0B1F35); }

/* ---------- Carte de France ---------- */
.vw-map { position: relative; width: 100%; aspect-ratio: 1000 / 960; }
.vw-map__img { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.vw-map__arcs { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.vw-map__trace { fill: none; stroke: var(--cyan-400, #2BB5E9); stroke-width: 2; stroke-linecap: round; opacity: 0.5; }
.vw-map__trace--soon { stroke: var(--ambre-500, #F5A524); opacity: 0.45; }
.vw-map__arc { fill: none; stroke: var(--cyan-300, #7FDBFF); stroke-width: 3; stroke-linecap: round; stroke-dasharray: 2 14; animation: vw-flow 1.2s linear infinite, vw-fade 600ms ease var(--d, 0ms) both; }
.vw-map__arc--soon { stroke: var(--ambre-500, #F5A524); animation-duration: 2.6s, 600ms; }
.vw-map__pin { --tx: -50%; --ty: -9px; position: absolute; transform: translate(var(--tx), var(--ty)); display: flex; flex-direction: column; align-items: center; gap: 8px; text-decoration: none; z-index: 1; }
.vw-map__pin--left { --tx: calc(-100% + 9px); --ty: -50%; flex-direction: row-reverse; }
.vw-map__pin--right { --tx: -9px; --ty: -50%; flex-direction: row; }
.vw-map__pin--above { --ty: calc(-100% + 9px); flex-direction: column-reverse; }
.vw-map__dot { position: relative; width: 18px; height: 18px; flex: none; }
.vw-map__dot::before, .vw-map__dot::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: var(--cyan-500, #00AEEF); }
.vw-map__dot::after { border: 3px solid var(--blanc, #FFFFFF); }
.vw-map__dot::before { animation: vw-pulse 2.4s ease-out infinite; }
.vw-map__pin--soon .vw-map__dot::before, .vw-map__pin--soon .vw-map__dot::after { background: var(--ambre-500, #F5A524); }
.vw-map__label { background: var(--blanc, #FFFFFF); color: var(--nuit-800, #0B1F35); border-radius: var(--radius-pill, 999px); padding: 5px 12px; font: 600 14px/1.2 var(--font-display, "Prompt", system-ui, sans-serif); white-space: nowrap; box-shadow: 0 10px 24px -12px rgba(0, 0, 0, 0.6); transition: transform 200ms ease; }
.vw-map__pin:hover .vw-map__label { transform: scale(1.06); }
.vw-map__pin--hq .vw-map__label { background: var(--cyan-500, #00AEEF); }
.vw-map__pin--soon .vw-map__label { background: var(--nuit-700, #102A45); color: var(--ambre-500, #F5A524); border: 1px dashed var(--ambre-500, #F5A524); }
.vw-map__label em { font-style: normal; font-weight: 500; opacity: 0.8; }
.vw-legend { display: flex; flex-wrap: wrap; gap: 8px 20px; font-size: 14px; color: var(--nuit-texte-200, #C9D6E6); }
.vw-legend span { display: inline-flex; align-items: center; gap: 8px; }
.vw-legend i { width: 10px; height: 10px; border-radius: 50%; background: var(--cyan-500, #00AEEF); display: inline-block; }
.vw-legend i.vw-legend--soon { background: var(--ambre-500, #F5A524); }
/* Carte étroite (mobile) : étiquettes compactes, sans la mention secondaire */
.vw-map { container-type: inline-size; }
@container (max-width: 460px) {
  .vw-map__label { padding: 3px 8px; font-size: 11px; }
  .vw-map__label em { display: none; }
  .vw-map__dot { width: 14px; height: 14px; }
  .vw-map__pin { gap: 5px; --ty: -7px; }
  .vw-map__pin--left { --tx: calc(-100% + 7px); --ty: -50%; }
  .vw-map__pin--right { --tx: -7px; --ty: -50%; }
  .vw-map__pin--above { --ty: calc(-100% + 7px); }
}

/* ---------- Formulaires ---------- */
.vw-field { display: flex; flex-direction: column; gap: 6px; }
.vw-label { font-weight: 700; font-size: 15px; color: var(--nuit-800, #0B1F35); }
.vw-input { height: 52px; border-radius: 12px; border: 1px solid #C9D3E0; background: var(--blanc, #FFFFFF); padding: 0 14px; font: inherit; font-size: 16px; color: var(--encre-900, #2B3337); width: 100%; }
textarea.vw-input { height: auto; min-height: 132px; padding: 12px 14px; resize: vertical; }
.vw-input:focus { outline: 3px solid var(--cyan-400, #2BB5E9); outline-offset: 1px; border-color: var(--lien-700, #0077A8); }
.vw-check { display: flex; gap: 12px; align-items: flex-start; font-size: 14px; line-height: 1.5; color: var(--ardoise-700, #44566B); }
.vw-check input { width: 22px; height: 22px; margin: 2px 0 0; accent-color: var(--lien-700, #0077A8); flex: none; }

/* ---------- Mobile : barre d'action collante et carrousel ---------- */
/* Premier enfant de .vw-root : reste en bas de l'écran pendant tout le défilement, sans prendre de place dans le flux. */
.vw-actionbar { position: sticky; top: calc(100vh - 84px); height: 84px; margin-bottom: -84px; z-index: 20; padding: 12px 14px 16px; display: flex; gap: 10px; pointer-events: none; }
.vw-actionbar > * { pointer-events: auto; min-height: 56px; padding: 0 12px; border-radius: 16px; display: flex; align-items: center; justify-content: center; gap: 8px; font: 600 15px/1.2 var(--font-display, "Prompt", system-ui, sans-serif); white-space: nowrap; text-decoration: none; box-shadow: 0 14px 30px -10px rgba(11, 31, 53, 0.6); }
.vw-actionbar__call, .vw-actionbar__call:hover { flex: 1; background: var(--nuit-800, #0B1F35); color: var(--blanc, #FFFFFF); }
.vw-actionbar__sms, .vw-actionbar__sms:hover { flex: none; width: 56px; background: var(--blanc, #FFFFFF); color: var(--nuit-800, #0B1F35); }
.vw-actionbar__quote, .vw-actionbar__quote:hover { flex: 1.6; background: var(--cyan-500, #00AEEF); color: var(--nuit-800, #0B1F35); box-shadow: 0 14px 30px -10px rgba(0, 174, 239, 0.7); }
.vw-actionbar > *:focus-visible { outline: 3px solid var(--cyan-400, #2BB5E9); outline-offset: 2px; }
/* Carrousel horizontal à accrochage (pas d'animation au défilement sur ses enfants : poser vw-reveal sur le carrousel lui-même). */
.vw-snap { display: flex; gap: var(--gap, 14px); overflow-x: auto; scroll-snap-type: x mandatory; padding-inline: var(--snap-pad, 16px); scroll-padding-inline: var(--snap-pad, 16px); padding-bottom: 6px; scrollbar-width: none; overscroll-behavior-x: contain; }
.vw-snap::-webkit-scrollbar { display: none; }
.vw-snap > * { flex: 0 0 auto; scroll-snap-align: start; }
.vw-snap:focus-visible { outline: 3px solid var(--cyan-400, #2BB5E9); outline-offset: 2px; }

/* ---------- Défilement continu ---------- */
.vw-marquee { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.vw-marquee__track { display: flex; gap: var(--gap, 56px); width: max-content; animation: vw-marquee var(--duree-defilement, 45s) linear infinite; }
.vw-marquee--reverse .vw-marquee__track { animation-direction: reverse; }
.vw-marquee:hover .vw-marquee__track { animation-play-state: paused; }

/* ---------- Animations ---------- */
/* Délai : variable --d (ex. style="--d: 300ms"). Toutes partent d'un état visible final (fill-mode both). */
.vw-a-rise { animation: vw-rise 800ms var(--courbe-sortie, cubic-bezier(0.22, 1, 0.36, 1)) var(--d, 0ms) both; }
.vw-a-fade { animation: vw-fade 900ms ease var(--d, 0ms) both; }
.vw-a-pop { animation: vw-pop 700ms var(--courbe-ressort, cubic-bezier(0.34, 1.56, 0.64, 1)) var(--d, 0ms) both; }
.vw-a-word { display: inline-block; animation: vw-word 900ms var(--courbe-sortie, cubic-bezier(0.22, 1, 0.36, 1)) var(--d, 0ms) both; }
.vw-a-fly { animation: vw-fly 1100ms var(--courbe-sortie, cubic-bezier(0.22, 1, 0.36, 1)) var(--d, 0ms) both; }
.vw-a-wipe { animation: vw-wipe 900ms var(--courbe-sortie, cubic-bezier(0.22, 1, 0.36, 1)) var(--d, 0ms) both; }
.vw-a-unbuild { animation: vw-unbuild 500ms ease var(--d, 0ms) both; }
.vw-a-guide { transform-origin: top; animation: vw-guide 1800ms var(--courbe-sortie, cubic-bezier(0.22, 1, 0.36, 1)) var(--d, 0ms) both; }
.vw-a-draw { stroke-dasharray: var(--len, 600); animation: vw-draw 1300ms var(--courbe-sortie, cubic-bezier(0.22, 1, 0.36, 1)) var(--d, 0ms) both; }
.vw-a-drop { animation: vw-drop 700ms var(--courbe-ressort, cubic-bezier(0.34, 1.56, 0.64, 1)) var(--d, 0ms) both; }
.vw-a-float { animation: vw-float 6s ease-in-out var(--d, 0ms) infinite; }
.vw-a-reveal-map { -webkit-mask-image: radial-gradient(circle at var(--cx, 47%) var(--cy, 76%), #000 var(--vw-r), transparent calc(var(--vw-r) + 12%)); mask-image: radial-gradient(circle at var(--cx, 47%) var(--cy, 76%), #000 var(--vw-r), transparent calc(var(--vw-r) + 12%)); animation: vw-radial 2600ms cubic-bezier(0.45, 0, 0.25, 1) var(--d, 0ms) both; }
@property --vw-r { syntax: "<percentage>"; inherits: false; initial-value: 160%; }

/* Révélation au défilement (navigateurs compatibles uniquement : le contenu reste visible sinon) */
@supports (animation-timeline: view()) {
  .vw-reveal { animation: vw-rise linear both; animation-timeline: view(); animation-range: entry 0% entry 70%; }
  .vw-reveal-stagger > * { animation: vw-rise linear both; animation-timeline: view(); animation-range: entry 0% entry 80%; }

  /* Carte des agences pilotée par le défilement : la carte (.vw-map) porte la timeline,
     ses enfants s'y accrochent. Ordre : révélation radiale depuis Castres, tracés, épingles (--i), flux. */
  .vw-map { view-timeline-name: --vw-map; }
  .vw-sd-map {
    -webkit-mask-image: radial-gradient(circle at var(--cx, 47%) var(--cy, 76%), #000 var(--vw-r), transparent calc(var(--vw-r) + 12%));
    mask-image: radial-gradient(circle at var(--cx, 47%) var(--cy, 76%), #000 var(--vw-r), transparent calc(var(--vw-r) + 12%));
    animation: vw-radial linear both; animation-timeline: --vw-map; animation-range: entry 5% cover 48%;
  }
  .vw-sd-draw { stroke-dasharray: var(--len, 600); animation: vw-draw linear both; animation-timeline: --vw-map; animation-range: cover 30% cover 50%; }
  .vw-sd-drop { animation: vw-drop linear both; animation-timeline: --vw-map; animation-range: cover calc(34% + var(--i, 0) * 2.5%) cover calc(41% + var(--i, 0) * 2.5%); }
  .vw-map__arc.vw-sd-fade { animation: vw-flow 1.2s linear infinite, vw-fade linear both; animation-timeline: auto, --vw-map; animation-range: normal, cover 50% cover 58%; }
}

@keyframes vw-rise { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }
@keyframes vw-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes vw-pop { 0% { opacity: 0; transform: scale(0.82) translateY(16px); } 100% { opacity: 1; transform: none; } }
@keyframes vw-word { from { opacity: 0; transform: translateY(0.55em) rotate(2deg); filter: blur(6px); } to { opacity: 1; transform: none; filter: none; } }
@keyframes vw-fly { from { opacity: 0; transform: translate(var(--fx, 80px), var(--fy, 40px)) rotate(var(--fr, 8deg)) scale(0.92); filter: blur(8px); } to { opacity: 1; transform: rotate(var(--rot, 0deg)); filter: none; } }
@keyframes vw-wipe { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes vw-unbuild { from { opacity: 1; } to { opacity: 0; } }
@keyframes vw-guide { 0% { transform: scaleY(0); opacity: 1; } 55% { transform: scaleY(1); opacity: 1; } 100% { transform: scaleY(1); opacity: 0; } }
@keyframes vw-draw { from { stroke-dashoffset: var(--len, 600); } to { stroke-dashoffset: 0; } }
@keyframes vw-drop { from { opacity: 0; transform: translate(var(--tx, -50%), calc(var(--ty, -50%) - 26px)); } to { opacity: 1; transform: translate(var(--tx, -50%), var(--ty, -50%)); } }
@keyframes vw-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@keyframes vw-radial { from { --vw-r: 0%; } to { --vw-r: 140%; } }
@keyframes vw-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes vw-pulse { 0% { transform: scale(1); opacity: 0.75; } 100% { transform: scale(3); opacity: 0; } }
@keyframes vw-flow { to { stroke-dashoffset: -30; } }
@keyframes vw-shine { 0%, 70% { transform: translateX(-120%); } 100% { transform: translateX(120%); } }
@keyframes vw-star { from { opacity: 0; transform: scale(0.4) rotate(-30deg); } to { opacity: 1; transform: none; } }
@keyframes vw-bar { from { transform: scaleX(0); opacity: 0.3; } to { transform: none; opacity: 1; } }
@keyframes vw-underline { from { background-size: 0% 0.08em; } to { background-size: 100% 0.08em; } }

@media (prefers-reduced-motion: reduce) {
  .vw-root *, .vw-root *::before, .vw-root *::after, .vw-a-rise, .vw-a-fade, .vw-a-pop, .vw-a-word, .vw-a-fly, .vw-a-wipe, .vw-a-unbuild, .vw-a-guide, .vw-a-draw, .vw-a-drop, .vw-a-float, .vw-a-reveal-map, .vw-reveal, .vw-reveal-stagger > *, .vw-sd-map, .vw-sd-draw, .vw-sd-drop, .vw-sd-fade, .vw-marquee__track, .vw-hl, .vw-btn--primary::before, .vw-map__arc, .vw-map__dot::before, .vw-stars--fill svg {
    animation: none !important; transition: none !important;
  }
  .vw-a-unbuild, .vw-a-guide, .vw-guides { opacity: 0; }
  .vw-skeleton--build i { animation: none !important; }
  .vw-a-reveal-map, .vw-sd-map { -webkit-mask-image: none; mask-image: none; }
}

/* VivaWeb — adaptation du design system aux blocs natifs de Gutenberg.
   Styles de blocs (is-style-vw-*) déclarés dans inc/refonte.php, classes utilitaires, réglages mobiles.
   Chaque valeur lit son jeton puis retombe sur la valeur de la charte, comme bundle.css. */

/* ---------- Boutons (bloc Bouton) ---------- */
.wp-block-button[class*="is-style-vw-"] > .wp-block-button__link {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 48px; padding: 14px 26px; border-radius: var(--radius-pill, 999px);
  font-family: var(--font-display, "Prompt", system-ui, sans-serif);
  font-weight: 600; font-size: 17px; line-height: 1.2; text-decoration: none;
  border: 1.5px solid transparent; position: relative; overflow: hidden; isolation: isolate;
  transition: transform 200ms ease, box-shadow 200ms ease, background-color 200ms ease, color 200ms ease;
}
.wp-block-button[class*="is-style-vw-"] > .wp-block-button__link:focus-visible { outline: 3px solid var(--cyan-400, #2BB5E9); outline-offset: 3px; }
.wp-block-button.is-style-vw-principal > .wp-block-button__link { background: var(--cyan-500, #00AEEF); color: var(--nuit-800, #0B1F35); box-shadow: var(--shadow-cta, 0 18px 40px -16px rgba(0, 174, 239, 0.7)); }
.wp-block-button.is-style-vw-principal > .wp-block-button__link:hover { background: var(--cyan-400, #2BB5E9); color: var(--nuit-800, #0B1F35); transform: translateY(-2px); }
.wp-block-button.is-style-vw-principal > .wp-block-button__link::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(105deg, transparent 35%, rgba(255, 255, 255, 0.55) 50%, transparent 65%); transform: translateX(-120%); animation: vw-shine 4.5s ease-in-out 2.2s infinite; }
.wp-block-button.is-style-vw-sombre > .wp-block-button__link { background: var(--nuit-800, #0B1F35); color: var(--blanc, #FFFFFF); }
.wp-block-button.is-style-vw-sombre > .wp-block-button__link:hover { background: var(--marine-600, #133453); color: var(--blanc, #FFFFFF); transform: translateY(-2px); }
.wp-block-button.is-style-vw-contour > .wp-block-button__link { background: transparent; color: var(--nuit-800, #0B1F35); border-color: var(--nuit-800, #0B1F35); }
.wp-block-button.is-style-vw-contour > .wp-block-button__link:hover { background: var(--nuit-800, #0B1F35); color: var(--blanc, #FFFFFF); }
.wp-block-button.is-style-vw-contour-clair > .wp-block-button__link { background: transparent; color: var(--blanc, #FFFFFF); border-color: rgba(255, 255, 255, 0.32); }
.wp-block-button.is-style-vw-contour-clair > .wp-block-button__link:hover { border-color: var(--blanc, #FFFFFF); color: var(--blanc, #FFFFFF); background: rgba(255, 255, 255, 0.06); }

/* ---------- Textes (blocs Paragraphe et Titre) ---------- */
.is-style-vw-surtitre { font-family: var(--font-display, "Prompt", system-ui, sans-serif); font-weight: 600; font-size: 14px; line-height: 1.4; letter-spacing: 0.1em; text-transform: uppercase; color: var(--lien-700, #0077A8); }
.vw-dark .is-style-vw-surtitre { color: var(--cyan-300, #7FDBFF); }
.is-style-vw-chapeau { font-size: 20px; line-height: 1.6; color: var(--ardoise-600, #587089); text-wrap: pretty; }
.vw-dark .is-style-vw-chapeau { color: var(--nuit-texte-200, #C9D6E6); }

/* Mot clé surligné d'un titre animé : format « Surligner » de l'éditeur (<mark>). */
.vw-split mark {
  padding: 0; color: var(--cyan-400, #2BB5E9); background-color: transparent;
  background-image: linear-gradient(var(--cyan-500, #00AEEF), var(--cyan-500, #00AEEF));
  background-repeat: no-repeat; background-position: 0 94%; background-size: 100% 0.08em;
  -webkit-box-decoration-break: clone; box-decoration-break: clone;
  animation: vw-underline 900ms var(--courbe-sortie, cubic-bezier(0.22, 1, 0.36, 1)) var(--d, 1100ms) both;
}

/* ---------- Cartes (bloc Groupe) ---------- */
.wp-block-group.is-style-vw-carte, .wp-block-group.is-style-vw-carte-sombre {
  background: var(--blanc, #FFFFFF); border: 1px solid var(--brume-300, #DBE3EF); border-radius: var(--radius-lg, 22px);
  padding: 32px; color: var(--encre-900, #2B3337); display: flex; flex-direction: column; gap: 16px;
  transition: transform 250ms ease, box-shadow 250ms ease, border-color 250ms ease;
}
.wp-block-group.is-style-vw-carte > *, .wp-block-group.is-style-vw-carte-sombre > * { margin-block: 0; }
.wp-block-group.is-style-vw-carte-sombre { background: var(--marine-600, #133453); border-color: var(--marine-600, #133453); color: var(--blanc, #FFFFFF); }
.wp-block-group.is-style-vw-carte:has(a):hover, .wp-block-group.is-style-vw-carte-sombre:has(a):hover { transform: translateY(-4px); box-shadow: var(--shadow-card, 0 28px 50px -28px rgba(11, 31, 53, 0.45)); border-color: var(--cyan-400, #2BB5E9); }

/* ---------- Liste à coches (bloc Liste) ---------- */
.wp-block-list.is-style-vw-coches { list-style: none; padding-left: 0; display: grid; gap: 10px; }
.wp-block-list.is-style-vw-coches > li { position: relative; padding-left: 32px; margin: 0; }
.wp-block-list.is-style-vw-coches > li::before {
  content: ""; position: absolute; left: 0; top: 0.2em; width: 20px; height: 20px;
  background-color: var(--lien-700, #0077A8);
  -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.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%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.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / contain no-repeat;
}
.vw-dark .wp-block-list.is-style-vw-coches > li::before { background-color: var(--cyan-400, #2BB5E9); }

/* ---------- FAQ (bloc Détails) ---------- */
.wp-block-details.is-style-vw-faq { border-bottom: 1px solid var(--brume-300, #DBE3EF); padding: 0; }
.wp-block-details.is-style-vw-faq > summary {
  list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 16px;
  min-height: 44px; padding: 20px 0; font-family: var(--font-display, "Prompt", system-ui, sans-serif);
  font-weight: 600; font-size: 20px; line-height: 1.3; color: var(--nuit-800, #0B1F35);
}
.wp-block-details.is-style-vw-faq > summary::-webkit-details-marker { display: none; }
.wp-block-details.is-style-vw-faq > summary::after {
  content: "+"; flex: none; width: 32px; height: 32px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
  background: var(--cyan-100, #E0FCFF); color: var(--lien-700, #0077A8); font-size: 22px; line-height: 1; transition: transform 200ms ease;
}
.wp-block-details.is-style-vw-faq[open] > summary::after { transform: rotate(45deg); }
.wp-block-details.is-style-vw-faq > summary:focus-visible { outline: 3px solid var(--cyan-400, #2BB5E9); outline-offset: 3px; }
.wp-block-details.is-style-vw-faq > :not(summary) { margin-top: 0; padding-bottom: 20px; color: var(--ardoise-600, #587089); }

/* ---------- Délais d'animation (« Classes CSS additionnelles ») ---------- */
.vw-d-1 { --d: 80ms; }
.vw-d-2 { --d: 160ms; }
.vw-d-3 { --d: 240ms; }
.vw-d-4 { --d: 320ms; }
.vw-d-5 { --d: 400ms; }
.vw-d-6 { --d: 480ms; }
.vw-d-7 { --d: 560ms; }
.vw-d-8 { --d: 640ms; }

/* ---------- Mobile : animations plus courtes et sans flou, barre d'action ---------- */
@keyframes vw-word-mobile { from { opacity: 0; transform: translateY(0.4em); } to { opacity: 1; transform: none; } }
@keyframes vw-fly-mobile { from { opacity: 0; transform: translate(var(--fx, 80px), var(--fy, 40px)) rotate(var(--fr, 8deg)) scale(0.92); } to { opacity: 1; transform: rotate(var(--rot, 0deg)); } }
@media (max-width: 720px) {
  .vw-a-word { animation-name: vw-word-mobile; animation-duration: 600ms; animation-delay: calc(var(--d, 0ms) * 0.4); }
  .vw-a-fly { animation-name: vw-fly-mobile; }
}
@media (min-width: 721px) {
  .vw-actionbar { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .wp-block-button.is-style-vw-principal > .wp-block-button__link::before, .vw-split mark { animation: none !important; }
  .wp-block-group.is-style-vw-carte, .wp-block-group.is-style-vw-carte-sombre, .wp-block-button[class*="is-style-vw-"] > .wp-block-button__link { transition: none !important; }
}

/* ---------- Barre d'action mobile (sortie par wp_body_open) ---------- */
/* Sur le site, barre fixe en bas d'écran ; la maquette la colle en sticky dans un cadre de 390 px. */
.vw-actionbar { position: fixed; inset: auto 0 0 0; top: auto; height: auto; margin: 0; padding: 12px 14px calc(16px + env(safe-area-inset-bottom, 0px)); z-index: 999; }
@media (max-width: 720px) {
  body.vw-barre-mobile { padding-bottom: calc(84px + env(safe-area-inset-bottom, 0px)); }
  /* Bouton « remonter » de Kadence au-dessus de la barre. */
  .vw-barre-mobile #kt-scroll-up, .vw-barre-mobile #kt-scroll-up-reader { bottom: calc(100px + env(safe-area-inset-bottom, 0px)); }
}
.vw-barre-mobile .kadence-pro-fixed-footer-item { display: none !important; }

/* ---------- Grille des réalisations [vw_realisations] ---------- */
.vw-projects { display: flex; flex-direction: column; gap: 28px; }
.vw-projects__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 24px; }
.vw-projects__item { margin: 0; }
.vw-projects__item[hidden], .vw-projects__empty[hidden] { display: none; }
.vw-projects__item > .vw-project { height: 100%; }
h2.vw-project__name, h3.vw-project__name, h4.vw-project__name { margin: 0; }
p.vw-project__desc { margin: 0; }
.vw-projects__empty { margin: 0; text-align: center; padding: 48px 20px; background: var(--blanc, #FFFFFF); border: 1px dashed #C9D3E0; border-radius: var(--radius-lg, 22px); color: var(--ardoise-600, #587089); }

/* Barre de filtres (boutons aria-pressed) */
.vw-filters { position: sticky; top: var(--vw-filtres-top, 0px); z-index: 5; display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 24px; padding: 16px 0; background: rgba(245, 247, 250, 0.94); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.vw-filters__group { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.vw-filters__label { width: 108px; font-size: 14px; font-weight: 700; color: var(--ardoise-600, #587089); }
.vw-filters .vw-chip { font-family: var(--font-display, "Prompt", system-ui, sans-serif); }
.vw-chip__count { min-width: 22px; height: 22px; padding: 0 6px; border-radius: var(--radius-pill, 999px); background: var(--fond-100, #F5F7FA); color: var(--ardoise-700, #44566B); font-size: 12px; font-weight: 600; display: inline-flex; align-items: center; justify-content: center; }
.vw-chip[aria-pressed="true"] .vw-chip__count { background: rgba(255, 255, 255, 0.16); color: var(--blanc, #FFFFFF); }
.vw-filters__count { margin: 0; font: 600 17px/1.2 var(--font-display, "Prompt", system-ui, sans-serif); color: var(--nuit-800, #0B1F35); }
@media (max-width: 720px) {
  .vw-filters { position: static; }
  .vw-filters__label { width: 100%; }
  .vw-filters__group { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding-bottom: 4px; }
  .vw-filters__group .vw-filters__label { display: none; }
}

/* ---------- Avis [vw_avis] et note [vw_note] ---------- */
.vw-reviews-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: 20px; align-items: start; }
.vw-review__quote p { margin: 0; }
.vw-review__quote p + p { margin-top: 0.6em; }
.vw-review--long .vw-review__quote { font: 400 17px/1.6 var(--font-text, "Karla", system-ui, sans-serif); color: var(--encre-900, #2B3337); }
.vw-review--dark.vw-review--long .vw-review__quote { color: var(--nuit-texte-200, #C9D6E6); }
.vw-reviews-band .vw-marquee__track { --gap: 20px; padding-inline-end: var(--gap); align-items: stretch; }
.vw-reviews-band .vw-review { width: min(380px, 82vw); flex: 0 0 auto; }
.vw-reviews-band .vw-review--long .vw-review__quote { display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden; }
.vw-marquee__track { padding-inline-end: var(--gap, 56px); }
.vw-rating__text { white-space: nowrap; }
@media (prefers-reduced-motion: reduce) {
  .vw-marquee { overflow-x: auto; -webkit-mask-image: none; mask-image: none; }
}

/* ======================================================================
   Sections des pages (blocs Groupe pleine largeur et leurs enfants)
   ====================================================================== */

/* Pages Kadence en pleine largeur : les sections se touchent, sans marge ajoutée. */
.entry-content > .wp-block-group.vw-section, .entry-content > .wp-block-group.vw-band { margin-block: 0; max-width: none; }
.wp-block-group.vw-section, .wp-block-group.vw-band { position: relative; }
.wp-block-group.vw-fond { background-color: var(--fond-100, #F5F7FA); }
.wp-block-group.vw-blanc { background-color: var(--blanc, #FFFFFF); }
.wp-block-group.vw-dark { background-color: var(--nuit-800, #0B1F35); color: var(--blanc, #FFFFFF); }
.vw-dark :where(h1, h2, h3, h4) { color: var(--blanc, #FFFFFF); }
.vw-dark :where(p, li) { color: var(--nuit-texte-200, #C9D6E6); }
.vw-dark :where(a:not(.wp-block-button__link, .vw-project, .vw-agency, .vw-rating, .vw-btn, .vw-chip, .vw-map__pin)) { color: var(--cyan-400, #2BB5E9); }
.vw-clip { overflow: clip; }

/* Halos lumineux des sections sombres (décor, sans balise ajoutée). */
.vw-halos::before, .vw-halos::after { content: ""; position: absolute; border-radius: 50%; pointer-events: none; background: radial-gradient(closest-side, rgba(0, 174, 239, 0.3), rgba(0, 174, 239, 0)); }
.vw-halos::before { right: -240px; top: 40px; width: 820px; height: 820px; }
.vw-halos::after { left: -320px; bottom: -380px; width: 700px; height: 700px; opacity: 0.7; }
.vw-halos > * { position: relative; z-index: 1; }

/* Empilements, rangées et grilles : les marges automatiques des blocs sont remplacées par des écarts. */
.wp-block-group.vw-stack, .wp-block-group.vw-row, .wp-block-group.vw-grid, .wp-block-group.vw-intro { display: flex; }
.wp-block-group.vw-stack { flex-direction: column; gap: var(--vw-gap, 20px); }
.wp-block-group.vw-stack-lg { --vw-gap: 40px; }
.wp-block-group.vw-stack-xl { --vw-gap: 56px; }
.wp-block-group.vw-row { flex-wrap: wrap; align-items: center; gap: var(--vw-gap, 14px); }
.wp-block-group.vw-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--vw-col, 300px)), 1fr)); gap: var(--vw-gap, 20px); }
.wp-block-group.vw-grid-2 { --vw-col: 220px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.wp-block-group.vw-intro { flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 24px 64px; }
.wp-block-group:is(.vw-stack, .vw-row, .vw-grid, .vw-intro) > * { margin-block: 0; }
.vw-intro__main { flex: 1 1 560px; min-width: 0; display: flex; flex-direction: column; gap: 18px; }
.vw-intro__aside { flex: 1 1 360px; min-width: 0; }
.wp-block-group.vw-container > * { margin-block-start: 0; }
.vw-duo { display: flex; flex-wrap: wrap; gap: 48px 64px; align-items: center; }
.vw-duo > * { flex: 1 1 460px; min-width: 0; margin-block: 0; }

/* Textes de section */
p.vw-eyebrow, p.vw-lead, h2.vw-h2, h1.vw-display, h3.vw-h3 { margin-block: 0; }
.vw-dark p.vw-lead { color: var(--nuit-texte-200, #C9D6E6); }
.vw-dark p.vw-eyebrow { color: var(--cyan-300, #7FDBFF); }
.vw-lead.vw-lead--18 { font-size: 18px; }
.vw-dark h2.vw-h2 mark, h2.vw-h2 mark, h1.vw-display mark { padding: 0; color: var(--cyan-400, #2BB5E9); background-color: transparent; background-image: linear-gradient(var(--cyan-500, #00AEEF), var(--cyan-500, #00AEEF)); background-repeat: no-repeat; background-position: 0 94%; background-size: 100% 0.08em; }
h2.vw-h2 mark { color: var(--lien-700, #0077A8); }
.vw-dark h2.vw-h2 mark { color: var(--cyan-400, #2BB5E9); }
p.vw-pill { margin: 0; align-self: flex-start; }
p.vw-pill strong { background: var(--cyan-500, #00AEEF); color: var(--nuit-800, #0B1F35); border-radius: var(--radius-pill, 999px); padding: 4px 12px; font: 600 13px/1.2 var(--font-display, "Prompt", system-ui, sans-serif); }

/* Bouton avec flèche : classe vw-fleche sur le bloc Bouton. */
.wp-block-button.vw-fleche > .wp-block-button__link::after { content: ""; width: 18px; height: 18px; flex: none; background-color: 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='M5 12h14M13 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='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat; transition: transform 200ms ease; }
.wp-block-button.vw-fleche > .wp-block-button__link:hover::after { transform: translateX(3px); }
.wp-block-button.vw-tel > .wp-block-button__link::before { content: ""; position: static; inset: auto; z-index: auto; width: 18px; height: 18px; flex: none; transform: none; animation: none; 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='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2'/%3E%3C/svg%3E") 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='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2'/%3E%3C/svg%3E") center / contain no-repeat; }
.wp-block-buttons.vw-boutons { gap: 14px; }
.wp-block-button.vw-grand > .wp-block-button__link { min-height: 56px; padding: 17px 30px; font-size: 18px; }
.wp-block-button.vw-petit > .wp-block-button__link { min-height: 44px; padding: 10px 18px; font-size: 15px; }

/* ---------- Hero de l'accueil ---------- */
.vw-hero > .vw-container { padding-top: 44px; padding-bottom: 112px; display: flex; flex-wrap: wrap; gap: 56px 48px; align-items: center; }
.vw-hero__texte { flex: 1 1 540px; min-width: 0; display: flex; flex-direction: column; gap: 28px; }
.vw-hero__texte > * { margin-block: 0; }
.vw-hero h1.vw-display { font-size: clamp(42px, 4.6vw, 66px); color: var(--blanc, #FFFFFF); }
.vw-hero .vw-lead { max-width: 560px; }
.vw-hero__chiffres { display: flex; flex-wrap: wrap; gap: 18px 36px; align-items: flex-start; padding-top: 6px; border-top: 1px solid rgba(255, 255, 255, 0.1); }
.vw-hero__chiffres > * { margin: 0; padding-top: 18px; }
.vw-chiffre { display: flex; flex-direction: column; }
.vw-chiffre p { margin: 0; }
.vw-chiffre .vw-num { font-size: 30px; color: var(--blanc, #FFFFFF); }
.vw-chiffre .vw-num em { font-style: normal; font-size: 16px; font-weight: 600; color: var(--ambre-500, #F5A524); }
.vw-chiffre .vw-chiffre__label { font-size: 15px; color: var(--nuit-texte-200, #C9D6E6); }
.vw-hero .vw-rating { flex-direction: column; align-items: flex-start; gap: 4px; color: var(--nuit-texte-200, #C9D6E6); font-size: 15px; }
.vw-hero .vw-rating .vw-stars { font-size: 18px; }
.vw-hero .vw-rating__score { color: var(--blanc, #FFFFFF); }

/* Scène : deux cadres navigateur, un téléphone, un avis et des pastilles. */
.vw-scene { flex: 1 1 540px; min-width: 0; position: relative; height: 580px; }
.vw-scene > * { position: absolute; margin: 0; }
.vw-scene::before { content: ""; position: absolute; inset: -24px 4%; pointer-events: none; background-image: repeating-linear-gradient(90deg, rgba(43, 181, 233, 0.18) 0 1px, transparent 1px calc(20% - 0.2px)); transform-origin: top; animation: vw-guide 1800ms var(--courbe-sortie, cubic-bezier(0.22, 1, 0.36, 1)) both; }
.vw-scene__a { top: 0; right: 0; width: 86%; transform: rotate(2deg); --rot: 2deg; --fx: 90px; --fy: -30px; --fr: 9deg; --d: 200ms; --dw: 1250ms; }
.vw-scene__b { top: 214px; left: 0; width: 70%; transform: rotate(-2.5deg); --rot: -2.5deg; --fx: -90px; --fy: 40px; --fr: -10deg; --d: 500ms; --dw: 1550ms; z-index: 1; }
.vw-scene__c { right: 2%; bottom: 18px; --fx: 0px; --fy: 120px; --fr: 0deg; --rot: 0deg; --d: 800ms; --dw: 1700ms; z-index: 2; }
.vw-scene__d { left: 2%; bottom: 0; width: 310px; z-index: 3; --d: 1900ms; }
.vw-scene__chip1 { top: 160px; left: 2%; --d: 2300ms; z-index: 3; }
.vw-scene__chip2 { top: -22px; right: 9%; --d: 2450ms; z-index: 3; }
.vw-scene__chip3 { bottom: 222px; right: -4px; --d: 2600ms; z-index: 3; }

/* Cadre navigateur en blocs : Paragraphe « barre » + Image « écran ». */
.wp-block-group.vw-frame { display: block; padding: 0; }
.wp-block-group.vw-frame > * { margin: 0; }
p.vw-frame__bar { position: relative; margin: 0; padding: 9px 12px 9px 52px; font-size: 11px; line-height: 1.5; color: var(--ardoise-600, #587089); }
p.vw-frame__bar::before { content: ""; position: absolute; left: 12px; top: 50%; width: 32px; height: 8px; transform: translateY(-50%); background: radial-gradient(circle at 4px 4px, #C9D3E0 4px, transparent 4.5px) 0 0 / 12px 8px repeat-x; }
p.vw-frame__bar span, p.vw-frame__bar { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.vw-frame p.vw-frame__bar { background: #EEF2F7; border-bottom: 1px solid var(--brume-200, #E6ECF4); }
.wp-block-image.vw-frame__screen { position: relative; aspect-ratio: 1900 / 1014; overflow: hidden; background: var(--brume-200, #E6ECF4); margin: 0; }
.wp-block-image.vw-frame__screen img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: top center; display: block; }
.vw-frame--build .wp-block-image.vw-frame__screen::before { content: ""; position: absolute; inset: 0; z-index: 0; background:
  linear-gradient(#DCE3EC, #DCE3EC) 6% 9% / 30% 9% no-repeat,
  linear-gradient(#DCE3EC, #DCE3EC) 6% 26% / 62% 16% no-repeat,
  linear-gradient(#DCE3EC, #DCE3EC) 6% 46% / 48% 16% no-repeat,
  linear-gradient(#DCE3EC, #DCE3EC) 6% 64% / 22% 8% no-repeat,
  linear-gradient(#E6ECF4, #E6ECF4) 6% 92% / 88% 18% no-repeat, #F7F9FC;
  animation: vw-unbuild 500ms ease calc(var(--dw, 1200ms) + 650ms) both; }
.vw-frame--build .wp-block-image.vw-frame__screen img { z-index: 1; animation: vw-wipe 900ms var(--courbe-sortie, cubic-bezier(0.22, 1, 0.36, 1)) var(--dw, 1200ms) both; }
.wp-block-group.vw-phone { padding: 9px; }
.wp-block-group.vw-phone > * { margin: 0; }
.wp-block-image.vw-phone__screen { margin: 0; border-radius: 22px; overflow: hidden; aspect-ratio: 320 / 650; background: #F7F9FC; }
.wp-block-image.vw-phone__screen img { width: 100%; height: 100%; object-fit: cover; object-position: top center; display: block; }
.vw-scene .vw-phone .wp-block-image img { animation: vw-wipe 900ms var(--courbe-sortie, cubic-bezier(0.22, 1, 0.36, 1)) var(--dw, 1700ms) both; }
.vw-scene .vw-review { box-shadow: var(--shadow-float, 0 40px 80px -30px rgba(0, 0, 0, 0.6)); }
.vw-scene .vw-review--float { color: var(--encre-900, #2B3337); }
.vw-scene .vw-review p { margin: 0; }
.vw-scene .vw-review .vw-review__quote { font-size: 19px; font-weight: 600; color: var(--nuit-800, #0B1F35); }
.vw-scene .vw-review .vw-review__by strong { color: var(--encre-900, #2B3337); }
p.vw-floatchip { margin: 0; }
p.vw-floatchip::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--cyan-400, #2BB5E9); box-shadow: 0 0 0 4px rgba(43, 181, 233, 0.25); }
.vw-a-float-wrap > * { animation: vw-float 6s ease-in-out var(--df, 2800ms) infinite; }

@media (max-width: 1100px) {
  .vw-scene { height: 520px; }
}
@media (max-width: 720px) {
  .vw-hero > .vw-container { padding-top: 24px; padding-bottom: 56px; gap: 40px; }
  .vw-scene { height: 380px; flex-basis: 100%; }
  .vw-scene__b { top: 150px; }
  .vw-scene__d { width: 250px; }
  .vw-scene .vw-review .vw-review__quote { font-size: 16px; }
  .vw-scene__chip1, .vw-scene__chip3 { display: none; }
  .wp-block-group.vw-scene__c .vw-phone { width: 120px; }
}

/* ---------- Bandeau des clients ---------- */
.vw-band { background: var(--blanc, #FFFFFF); border-bottom: 1px solid var(--brume-300, #DBE3EF); }
.vw-band > .vw-container { padding-block: 30px; display: flex; flex-wrap: wrap; gap: 16px 40px; align-items: center; }
.vw-band > .vw-container > * { margin: 0; }
.vw-band p.vw-eyebrow { flex: 0 0 auto; color: var(--ardoise-600, #587089); }
.vw-band .vw-marquee { flex: 1 1 600px; min-width: 0; }
.vw-marquee--noms .vw-marquee__track { font-family: var(--font-display, "Prompt", system-ui, sans-serif); font-weight: 600; font-size: 24px; color: #7D90A6; white-space: nowrap; }

/* ---------- Cartes de service (Groupe « Carte » avec lien étiré) ---------- */
.wp-block-group.vw-carte-service { position: relative; min-height: 260px; }
.wp-block-group.vw-carte-service:hover { transform: translateY(-4px); box-shadow: var(--shadow-card, 0 28px 50px -28px rgba(11, 31, 53, 0.45)); border-color: var(--cyan-400, #2BB5E9); }
.vw-carte-service h3 { margin: 0; font: 600 24px/1.2 var(--font-display, "Prompt", system-ui, sans-serif); color: var(--nuit-800, #0B1F35); }
.vw-carte-service h3 a { color: inherit; text-decoration: none; }
.vw-carte-service h3 a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.vw-carte-service h3 a:focus-visible { outline: none; }
.vw-carte-service:has(h3 a:focus-visible) { outline: 3px solid var(--cyan-400, #2BB5E9); outline-offset: 3px; }
.vw-carte-service p { margin: 0; font-size: 17px; color: var(--ardoise-600, #587089); }
.vw-carte-service p.vw-card__more { margin-top: auto; font: 500 16px/1.2 var(--font-display, "Prompt", system-ui, sans-serif); color: var(--lien-700, #0077A8); display: inline-flex; gap: 8px; align-items: center; }
.vw-carte-service p.vw-card__more::after { content: "→"; transition: transform 200ms ease; }
.vw-carte-service:hover p.vw-card__more::after { transform: translateX(3px); }
.vw-carte-service .vw-card__icon svg { width: 26px; height: 26px; }
.wp-block-group.is-style-vw-carte-sombre.vw-carte-service h3 { color: var(--blanc, #FFFFFF); }
.wp-block-group.is-style-vw-carte-sombre.vw-carte-service p { color: var(--nuit-texte-200, #C9D6E6); }
.wp-block-group.is-style-vw-carte-sombre.vw-carte-service p.vw-card__more { color: var(--cyan-400, #2BB5E9); }
.wp-block-group.is-style-vw-carte-sombre .vw-card__icon { background: var(--cyan-500, #00AEEF); color: var(--nuit-800, #0B1F35); }
.wp-block-html .vw-card__icon, .vw-card__icon { display: inline-flex; }

/* ---------- Panneau sombre (offre parking, appels) ---------- */
.wp-block-group.vw-panneau { position: relative; overflow: clip; border-radius: 28px; padding: clamp(28px, 5vw, 56px); display: flex; flex-wrap: wrap; gap: 40px; align-items: center; background-color: var(--nuit-800, #0B1F35); color: var(--blanc, #FFFFFF); }
.wp-block-group.vw-panneau::before { content: ""; position: absolute; inset: 0; pointer-events: none; background-image: radial-gradient(rgba(43, 181, 233, 0.28) 1.4px, transparent 1.6px); background-size: 22px 22px; -webkit-mask-image: radial-gradient(circle at 80% 30%, #000, transparent 70%); mask-image: radial-gradient(circle at 80% 30%, #000, transparent 70%); }
.wp-block-group.vw-panneau > * { position: relative; flex: 1 1 440px; min-width: 0; margin: 0; }
.vw-panneau h2, .vw-panneau h3 { font-size: clamp(28px, 2.8vw, 40px); }
.vw-panneau .vw-tag { background: rgba(0, 174, 239, 0.16); color: var(--cyan-300, #7FDBFF); align-self: flex-start; }
.vw-panneau__visuel { position: relative; padding: 0 40px 40px 0; }
.vw-panneau__visuel .vw-frame { transform: rotate(-1.5deg); box-shadow: var(--shadow-float, 0 40px 80px -30px rgba(0, 0, 0, 0.6)); border-radius: 16px; }
.vw-panneau__visuel .vw-phone-mini { position: absolute; right: 0; bottom: 0; width: min(130px, 30%); }

/* ---------- Agences ---------- */
.vw-agences > .vw-container { display: flex; flex-wrap: wrap; gap: 48px 64px; align-items: center; }
.vw-agences__carte { flex: 1 1 520px; min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 18px; }
.vw-agences__texte { flex: 1 1 460px; min-width: 0; display: flex; flex-direction: column; gap: 22px; }
.vw-agences__texte > *, .vw-agences__carte > * { margin: 0; }
.vw-agency-list { display: flex; flex-direction: column; gap: 10px; }
.vw-agency-list__soon { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.vw-agency-list--grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 12px; }
.vw-agency__dept { flex: none; }

/* ---------- Chiffres et raisons ---------- */
.vw-raisons > .vw-container { display: flex; flex-wrap: wrap; gap: 48px 72px; align-items: center; }
.vw-raisons__texte { flex: 1 1 520px; min-width: 0; display: flex; flex-direction: column; gap: 22px; }
.vw-raisons__texte > * { margin: 0; }
.vw-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.vw-stats > * { margin: 0; }
.wp-block-group.vw-stat > * { margin: 0; }
.vw-stat p { margin: 0; }
.vw-raisons__liste { flex: 1 1 460px; min-width: 0; }
.wp-block-group.vw-raisons__liste { padding: 12px 32px; gap: 0; }
.wp-block-group.vw-raison { display: flex; flex-direction: column; gap: 2px; padding: 22px 0 22px 58px; border-bottom: 1px solid var(--brume-300, #DBE3EF); position: relative; }
.wp-block-group.vw-raison:last-child { border-bottom: 0; }
.wp-block-group.vw-raison > * { margin: 0; }
.wp-block-group.vw-raison::before { content: ""; position: absolute; left: 0; top: 24px; width: 40px; height: 40px; border-radius: 12px; background: var(--cyan-100, #E0FCFF) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230077A8' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 20px no-repeat; }
.vw-raison h3 { font: 600 20px/1.3 var(--font-display, "Prompt", system-ui, sans-serif); color: var(--nuit-800, #0B1F35); }
.vw-raison p { color: var(--ardoise-600, #587089); font-size: 17px; }
@media (max-width: 720px) {
  .vw-stats { grid-template-columns: 1fr 1fr; gap: 10px; }
  .wp-block-group.vw-raisons__liste { padding: 4px 22px; }
}

/* ---------- Avis : en-tête avec la note ---------- */
.vw-note-panneau { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 28px; padding: 24px 28px; border-radius: 24px; background: var(--nuit-800, #0B1F35); color: var(--blanc, #FFFFFF); }
.vw-note-panneau > * { margin: 0; }
.vw-note-panneau .vw-note-panneau__score { font: 700 64px/1 var(--font-display, "Prompt", system-ui, sans-serif); letter-spacing: -0.03em; color: var(--blanc, #FFFFFF); }
.vw-note-panneau p { color: var(--nuit-texte-200, #C9D6E6); font-size: 15px; }
.vw-note-panneau a:not(.wp-block-button__link) { color: var(--cyan-400, #2BB5E9); }
.vw-avis-bandeaux { display: flex; flex-direction: column; gap: 20px; }
.vw-avis-bandeaux > * { margin: 0; }
.vw-avis-bandeaux > :nth-child(2) .vw-marquee__track { animation-direction: reverse; }

/* ---------- Appel à l'action cyan ---------- */
.wp-block-group.vw-cta { position: relative; overflow: clip; border-radius: 28px; padding: clamp(32px, 6vw, 72px); display: flex; flex-wrap: wrap; gap: 32px 48px; align-items: center; justify-content: space-between; background: var(--cyan-500, #00AEEF); color: var(--nuit-800, #0B1F35); }
.wp-block-group.vw-cta::before { content: ""; position: absolute; inset: 0; pointer-events: none; background-image: radial-gradient(rgba(11, 31, 53, 0.18) 1.4px, transparent 1.6px); background-size: 24px 24px; -webkit-mask-image: linear-gradient(90deg, transparent 40%, #000); mask-image: linear-gradient(90deg, transparent 40%, #000); }
.wp-block-group.vw-cta > * { position: relative; margin: 0; }
.vw-cta__texte { flex: 1 1 460px; min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.vw-cta__texte > * { margin: 0; }
.vw-cta h2 { color: var(--nuit-800, #0B1F35); font-size: clamp(34px, 4vw, 56px); }
.vw-cta p { color: var(--nuit-800, #0B1F35); font-size: 18px; }
.vw-cta .wp-block-button.is-style-vw-contour > .wp-block-button__link { border-color: var(--nuit-800, #0B1F35); }
.vw-section--cta { padding-block: 0 112px; }
@media (max-width: 720px) { .vw-section--cta { padding-block: 0 56px; } }

/* ---------- En-tête des pages intérieures (fil d'Ariane, titre, chapeau) ---------- */
.vw-page-hero > .vw-container { padding-top: 20px; padding-bottom: 88px; display: flex; flex-direction: column; gap: 28px; }
.vw-page-hero > .vw-container > * { margin: 0; }
.vw-page-hero h1.vw-display { color: var(--blanc, #FFFFFF); }
.vw-crumb, .vw-page-hero .seopress-breadcrumb, .vw-page-hero nav[aria-label="breadcrumb"] { font-size: 15px; color: var(--nuit-texte-300, #A9BBD0); }
.vw-page-hero .vw-crumb a { color: var(--nuit-texte-300, #A9BBD0); text-decoration: none; }
.vw-page-hero__duo { display: flex; flex-wrap: wrap; gap: 32px 64px; align-items: flex-end; }
.vw-page-hero__duo > * { margin: 0; }
.vw-page-hero__duo > :first-child { flex: 1 1 560px; min-width: 0; display: flex; flex-direction: column; gap: 22px; }
.vw-page-hero__duo > :first-child > * { margin: 0; }
.vw-page-hero__chiffres { display: flex; flex-wrap: wrap; gap: 36px; }
.vw-page-hero__chiffres .vw-num { font-size: 44px; }

/* Contenus de texte longs (pages de service, pages légales) */
.vw-prose { max-width: 820px; }
.vw-prose > * + * { margin-block-start: 1em; }
.vw-prose h2 { font: 700 clamp(26px, 2.6vw, 34px)/1.15 var(--font-display, "Prompt", system-ui, sans-serif); color: var(--nuit-800, #0B1F35); margin-block-start: 1.6em; }
.vw-prose h3 { font: 600 22px/1.3 var(--font-display, "Prompt", system-ui, sans-serif); color: var(--nuit-800, #0B1F35); margin-block-start: 1.4em; }
.vw-prose p, .vw-prose li { color: var(--encre-900, #2B3337); }
.vw-prose a { color: var(--lien-700, #0077A8); }

/* Fil d'Ariane [vw_fil_ariane] */
.vw-crumb { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-size: 15px; color: var(--nuit-texte-300, #A9BBD0); }
.vw-crumb a { color: inherit; text-decoration: none; }
.vw-crumb a:hover { color: var(--blanc, #FFFFFF); }
.vw-crumb [aria-current] { color: var(--blanc, #FFFFFF); }
.vw-map-wrap { display: flex; flex-direction: column; align-items: center; gap: 18px; width: 100%; max-width: 580px; }

/* ---------- Compléments des composants en blocs ---------- */
.vw-stat__value em { font-style: normal; font-size: 0.5em; color: var(--lien-700, #0077A8); }
.vw-stat--accent .vw-stat__value em { color: var(--nuit-800, #0B1F35); }
.wp-block-group.vw-panneau :where(h2, h3) { color: var(--blanc, #FFFFFF); margin: 0; }
.wp-block-group.vw-panneau :where(p, li) { color: var(--nuit-texte-200, #C9D6E6); }
.wp-block-group.vw-panneau .wp-block-list.is-style-vw-coches > li::before { background-color: var(--cyan-400, #2BB5E9); }
.vw-panneau .wp-block-group.vw-stack { --vw-gap: 18px; }
.vw-hero__texte > p.vw-lead { --d: 800ms; }
.vw-hero__texte > .wp-block-buttons { --d: 950ms; }
.vw-hero__texte > .vw-hero__chiffres { --d: 1100ms; }
.vw-scene .vw-phone.vw-a-float { --d: 2800ms; }
.wp-block-group.vw-review__by > * { margin: 0; }
.wp-block-group.vw-review__by { display: flex; gap: 12px; align-items: center; }
p.vw-avatar { margin: 0; }
p.vw-review__quote { margin: 0; }
.vw-chips { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.vw-chips > span { font-size: 14px; font-weight: 700; color: var(--ardoise-600, #587089); margin-right: 4px; }
.vw-chips a.vw-chip { text-decoration: none; }
.vw-dark .vw-chips > span { color: var(--nuit-texte-300, #A9BBD0); }
.wp-block-buttons.vw-centre { justify-content: center; }
p.vw-muted { color: var(--ardoise-600, #587089); }
.vw-reveal-stagger > * { margin-block: 0; }

/* ---------- Corrections après relecture de l'accueil ---------- */
.vw-review blockquote.vw-review__quote { border: 0; padding: 0; margin: 0; font-style: normal; quotes: none; }
.vw-review blockquote.vw-review__quote::before, .vw-review blockquote.vw-review__quote::after { content: none; }
.vw-dark .vw-review:not(.vw-review--dark) :where(p, li) { color: var(--ardoise-600, #587089); }
.vw-dark .vw-review:not(.vw-review--dark) p.vw-review__quote { color: var(--nuit-800, #0B1F35); }
.vw-dark .vw-review:not(.vw-review--dark) .vw-review__by strong { color: var(--encre-900, #2B3337); }
.vw-dark p.vw-avatar { color: var(--blanc, #FFFFFF); }
.vw-dark p.vw-avatar.vw-avatar--cyan { color: var(--nuit-800, #0B1F35); }
p.vw-project__desc { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.vw-intro__aside:has(.vw-note-panneau) { flex: 0 1 580px; }
@media (min-width: 900px) {
  .vw-note-panneau { flex-wrap: nowrap; }
  .vw-note-panneau .wp-block-buttons { margin-left: auto; }
}
.vw-note-panneau .wp-block-group.vw-stack { --vw-gap: 4px; }
.vw-note-panneau .vw-stars { font-size: 18px; }

/* ======================================================================
   Pages agences
   ====================================================================== */

/* Fiche de l'agence dans l'en-tête [vw_fiche_agence] */
.vw-page-hero__duo > .vw-fiche, .vw-page-hero__duo > .wp-block-shortcode { flex: 1 1 400px; min-width: 0; max-width: 480px; }
.vw-fiche { display: flex; flex-direction: column; gap: 18px; padding: 12px; border-radius: 26px; background: var(--blanc, #FFFFFF); color: var(--encre-900, #2B3337); box-shadow: var(--shadow-float, 0 40px 80px -30px rgba(0, 0, 0, 0.6)); --d: 350ms; }
.vw-fiche__carte { position: relative; border-radius: 18px; overflow: hidden; background: var(--fond-100, #F5F7FA); }
.vw-fiche__map { position: relative; width: 100%; }
.vw-fiche__map img { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.vw-fiche__zone { position: absolute; left: 12px; top: 12px; background: var(--nuit-800, #0B1F35); color: var(--blanc, #FFFFFF); }
.vw-fiche__corps { display: flex; flex-direction: column; gap: 16px; padding: 0 12px 12px; }
.vw-fiche__titre { display: flex; flex-direction: column; gap: 4px; }
.vw-fiche__titre .vw-h3 { font-size: 23px; }
.vw-fiche .vw-rating { font-size: 15px; color: var(--ardoise-600, #587089); gap: 8px; }
.vw-fiche .vw-rating .vw-stars { font-size: 15px; }
.vw-fiche__infos { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; font-size: 16px; }
.vw-fiche__infos li { display: flex; gap: 12px; align-items: flex-start; margin: 0; color: var(--encre-900, #2B3337); }
.vw-fiche__infos svg { flex: none; margin-top: 2px; color: var(--lien-700, #0077A8); }
.vw-fiche a:not(.vw-btn):not(.vw-rating) { color: var(--nuit-800, #0B1F35); font-weight: 700; text-decoration: none; }
.vw-fiche .vw-btn--outline { color: var(--nuit-800, #0B1F35); }

/* Bandeau « En bref » */
.vw-bref { background: var(--blanc, #FFFFFF); border-bottom: 1px solid var(--brume-300, #DBE3EF); }
.vw-bref > .vw-container { padding-block: 30px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); gap: 20px 32px; }
.vw-bref > .vw-container > * { margin: 0; }
.wp-block-group.vw-bref__item { display: flex; gap: 14px; align-items: center; }
.wp-block-group.vw-bref__item > * { margin: 0; }
.vw-bref__item p.vw-num { font-size: 36px; color: var(--nuit-800, #0B1F35); white-space: nowrap; }
.vw-bref__item p.vw-num.vw-num--lien { color: var(--lien-700, #0077A8); }
.vw-bref__item p:not(.vw-num) { font-size: 15px; line-height: 1.35; color: var(--ardoise-600, #587089); }

/* Services localisés numérotés */
.wp-block-group.vw-carte-num { position: relative; flex-direction: row; align-items: center; gap: 18px; padding: 20px 22px; }
.wp-block-group.vw-carte-num::after { content: "→"; color: var(--lien-700, #0077A8); font-size: 20px; margin-left: auto; transition: transform 200ms ease; }
.wp-block-group.vw-carte-num:hover { transform: translateY(-3px); box-shadow: var(--shadow-card, 0 28px 50px -28px rgba(11, 31, 53, 0.45)); border-color: var(--cyan-400, #2BB5E9); }
.wp-block-group.vw-carte-num:hover::after { transform: translateX(3px); }
p.vw-carte-num__n { flex: none; width: 50px; height: 50px; border-radius: 14px; display: inline-flex; align-items: center; justify-content: center; background: var(--cyan-100, #E0FCFF); color: var(--lien-700, #0077A8); font: 600 17px/1 var(--font-display, "Prompt", system-ui, sans-serif); }
.wp-block-group.vw-carte-num__corps { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.wp-block-group.vw-carte-num__corps > * { margin: 0; }
.vw-carte-num h3 { font: 600 19px/1.3 var(--font-display, "Prompt", system-ui, sans-serif); color: var(--nuit-800, #0B1F35); }
.vw-carte-num h3 a { color: inherit; text-decoration: none; }
.vw-carte-num h3 a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.vw-carte-num p:not(.vw-carte-num__n) { font-size: 15px; color: var(--ardoise-600, #587089); }
.vw-carte-num:has(h3 a:focus-visible) { outline: 3px solid var(--cyan-400, #2BB5E9); outline-offset: 3px; }

/* Raisons courtes et zone d'intervention */
.vw-pourquoi > .vw-container { display: flex; flex-wrap: wrap; gap: 48px 64px; }
.vw-pourquoi__texte { flex: 1 1 520px; min-width: 0; display: flex; flex-direction: column; gap: 24px; }
.vw-pourquoi__texte > * { margin: 0; }
.vw-pourquoi h2.vw-h2 { font-size: clamp(30px, 3vw, 42px); }
.wp-block-group.vw-grid-raisons { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 14px; }
.wp-block-group.vw-grid-raisons > * { margin: 0; }
.wp-block-group.vw-grid-raisons > .is-style-vw-carte { padding: 22px; gap: 8px; }
.vw-grid-raisons h3 { font: 600 19px/1.3 var(--font-display, "Prompt", system-ui, sans-serif); color: var(--nuit-800, #0B1F35); }
.vw-grid-raisons p { font-size: 16px; color: var(--ardoise-600, #587089); }
.wp-block-group.vw-zone { flex: 1 1 380px; min-width: 0; padding: 30px; gap: 18px; align-self: flex-start; }
.vw-zone h3 { font: 600 24px/1.2 var(--font-display, "Prompt", system-ui, sans-serif); color: var(--nuit-800, #0B1F35); }
.wp-block-list.vw-etiquettes { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.wp-block-list.vw-etiquettes > li { margin: 0; display: inline-flex; padding: 6px 14px; border-radius: var(--radius-pill, 999px); font-size: 15px; line-height: 1.4; font-weight: 500; background: var(--cyan-100, #E0FCFF); color: #0B4F6C; }
.wp-block-list.vw-etiquettes > li.vw-etiquette-forte, .wp-block-list.vw-etiquettes > li:nth-child(-n+2) { background: var(--nuit-800, #0B1F35); color: var(--blanc, #FFFFFF); }
.vw-zone__autres { border-top: 1px solid var(--brume-200, #E6ECF4); padding-top: 16px; display: flex; flex-direction: column; gap: 6px; }
.vw-zone__autres > * { margin: 0; }
.vw-zone__autres p.vw-eyebrow { font-size: 13px; color: var(--ardoise-600, #587089); }
.vw-agency-mini { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.vw-agency-mini li { margin: 0; display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--brume-200, #E6ECF4); font: 600 16px/1.3 var(--font-display, "Prompt", system-ui, sans-serif); color: var(--nuit-800, #0B1F35); }
.vw-agency-mini li:last-child { border-bottom: 0; }
.vw-agency-mini a { display: flex; width: 100%; justify-content: space-between; color: var(--nuit-800, #0B1F35); text-decoration: none; }
.vw-agency-mini a span { color: var(--ardoise-600, #587089); font-weight: 400; font-family: var(--font-text, "Karla", system-ui, sans-serif); }
.vw-agency-mini a:hover { color: var(--lien-700, #0077A8); }

/* Avis sur fond sombre */
.vw-avis-sombre .vw-note-ligne { display: flex; gap: 16px; align-items: center; }
.vw-avis-sombre .vw-note-ligne > * { margin: 0; }
.vw-avis-sombre .vw-note-ligne p.vw-num { font-size: 64px; font-weight: 800; color: var(--blanc, #FFFFFF); }
.vw-review--dark .vw-review__source { background: transparent; color: var(--nuit-texte-200, #C9D6E6); border-color: rgba(255, 255, 255, 0.2); }
.vw-review--dark .vw-avatar { background: var(--cyan-500, #00AEEF); color: var(--nuit-800, #0B1F35); }

/* Contact et formulaire Fluent Forms */
.vw-contact > .vw-container { display: flex; flex-wrap: wrap; gap: 40px 56px; align-items: flex-start; }
.vw-contact__texte { flex: 1 1 360px; min-width: 0; display: flex; flex-direction: column; gap: 18px; }
.vw-contact__texte > * { margin: 0; }
.wp-block-group.vw-formulaire { flex: 1.3 1 520px; min-width: 0; padding: clamp(22px, 4vw, 36px); border-radius: 28px; background: var(--fond-100, #F5F7FA); border: 1px solid var(--brume-200, #E6ECF4); }
.wp-block-list.vw-coordonnees { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.wp-block-list.vw-coordonnees > li { margin: 0; color: var(--encre-900, #2B3337); }
.wp-block-list.vw-coordonnees a { color: var(--nuit-800, #0B1F35); font-weight: 700; text-decoration: none; }
.vw-formulaire .fluentform .ff-el-group { margin-bottom: 16px; }
.vw-formulaire .fluentform .ff-el-input--label label { font-weight: 700; font-size: 15px; color: var(--nuit-800, #0B1F35); }
.vw-formulaire .fluentform .ff-el-form-control { min-height: 52px; border-radius: 12px; border: 1px solid #C9D3E0; background: var(--blanc, #FFFFFF); padding: 10px 14px; font: inherit; font-size: 16px; color: var(--encre-900, #2B3337); box-shadow: none; }
.vw-formulaire .fluentform textarea.ff-el-form-control { min-height: 140px; }
.vw-formulaire .fluentform .ff-el-form-control:focus { border-color: var(--cyan-400, #2BB5E9); outline: 3px solid rgba(43, 181, 233, 0.35); outline-offset: 0; }
.vw-formulaire .fluentform .ff-el-form-check label { font-size: 14px; line-height: 1.5; color: var(--ardoise-700, #44566B); }
.vw-formulaire .fluentform .ff-btn-submit, .vw-formulaire .fluentform button[type="submit"] { background: var(--cyan-500, #00AEEF) !important; color: var(--nuit-800, #0B1F35) !important; border: 0 !important; border-radius: var(--radius-pill, 999px) !important; min-height: 52px; padding: 14px 28px !important; font: 600 17px/1.2 var(--font-display, "Prompt", system-ui, sans-serif) !important; box-shadow: var(--shadow-cta, 0 18px 40px -16px rgba(0, 174, 239, 0.7)); }
.vw-formulaire .fluentform .ff-btn-submit:hover { background: var(--cyan-400, #2BB5E9) !important; }
.vw-formulaire .fluentform .ff-btn-submit:focus-visible { outline: 3px solid var(--cyan-400, #2BB5E9); outline-offset: 3px; }

/* Questions fréquentes */
.wp-block-group.vw-faq-liste { max-width: 860px; display: flex; flex-direction: column; }
.wp-block-group.vw-faq-liste > * { margin: 0; }
.vw-page-hero__duo { align-items: center; }
.vw-fiche__map { margin-inline: auto; }
ul.vw-agency-mini, ul.vw-agency-mini li { list-style: none; padding-left: 0; }
ul.vw-agency-mini li::before, ul.vw-agency-mini li::marker { content: none; }

/* ---------- Page Avis ---------- */
.vw-reviews-filtres { display: flex; flex-direction: column; gap: 24px; }
.vw-reviews-cols { columns: 320px 3; column-gap: 20px; }
.vw-reviews-cols__item { break-inside: avoid; margin-bottom: 20px; }
.vw-reviews-cols__item[hidden] { display: none; }
.vw-carte-note { flex: 1 1 400px; min-width: 0; max-width: 480px; display: flex; flex-direction: column; gap: 18px; padding: 28px; border-radius: 26px; background: var(--blanc, #FFFFFF); color: var(--encre-900, #2B3337); box-shadow: var(--shadow-float, 0 40px 80px -30px rgba(0, 0, 0, 0.6)); }
.wp-block-group.vw-carte-note > * { margin: 0; }
.wp-block-group.vw-carte-note__ligne { display: flex; align-items: center; gap: 18px; }
.wp-block-group.vw-carte-note__ligne > * { margin: 0; }
.vw-carte-note p.vw-num { font-size: 92px; font-weight: 800; color: var(--nuit-800, #0B1F35); }
.vw-dark .vw-carte-note :where(p, li) { color: var(--ardoise-600, #587089); }
.vw-dark .vw-carte-note p.vw-num { color: var(--nuit-800, #0B1F35); }
.vw-carte-note .vw-etiquettes > li:nth-child(-n+2) { background: var(--cyan-100, #E0FCFF); color: #0B4F6C; }
.vw-carte-note__mots { border-top: 1px solid var(--brume-200, #E6ECF4); padding-top: 18px; display: flex; flex-direction: column; gap: 10px; }
.wp-block-group.vw-carte-note__mots > * { margin: 0; }
.wp-block-list.vw-noms-clients { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 14px; }
.wp-block-list.vw-noms-clients > li { margin: 0; height: 96px; border-radius: 16px; background: var(--fond-100, #F5F7FA); border: 1px solid var(--brume-200, #E6ECF4); display: flex; align-items: center; justify-content: center; text-align: center; padding: 0 16px; font: 600 18px/1.25 var(--font-display, "Prompt", system-ui, sans-serif); color: #7D90A6; }
.vw-page-hero .vw-marquee { margin-top: 8px; }

/* ======================================================================
   Pages de services et d'offre parking (gabarit service.py)
   ====================================================================== */

/* En-tête : H2 d'introduction, tuiles des points forts */
.vw-page-hero h2.vw-page-hero__sous-titre { margin: 0; font: 600 clamp(21px, 2.1vw, 27px)/1.3 var(--font-display, "Prompt", system-ui, sans-serif); color: var(--blanc, #FFFFFF); }
.vw-page-hero__duo > .vw-tuiles-panneau, .vw-page-hero__duo > .vw-page-hero__visuel { flex: 1 1 400px; min-width: 0; max-width: 500px; }
.wp-block-group.vw-tuiles-panneau { display: flex; flex-direction: column; gap: 18px; padding: 22px; border-radius: 26px; background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.12); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.wp-block-group.vw-tuiles-panneau > * { margin: 0; }
.wp-block-list.vw-tuiles { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.wp-block-list.vw-tuiles > li { position: relative; margin: 0; min-height: 56px; display: flex; align-items: center; padding: 12px 14px 12px 50px; border-radius: 16px; background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.1); font: 600 16px/1.3 var(--font-display, "Prompt", system-ui, sans-serif); color: var(--blanc, #FFFFFF); }
.wp-block-list.vw-tuiles > li::before { content: ""; position: absolute; left: 14px; top: 50%; width: 26px; height: 26px; margin-top: -13px; border-radius: 50%; background: var(--cyan-500, #00AEEF) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B1F35' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center / 14px no-repeat; }
.wp-block-group.vw-tuiles__note { display: flex; align-items: center; gap: 16px; padding-top: 16px; border-top: 1px solid rgba(255, 255, 255, 0.12); }
.wp-block-group.vw-tuiles__note > * { margin: 0; }
.vw-tuiles__note p.vw-num { font-size: 46px; font-weight: 800; color: var(--blanc, #FFFFFF); }
.vw-tuiles__note .wp-block-group.vw-stack { --vw-gap: 2px; }
.vw-page-hero__visuel .wp-block-image { margin: 0; }

/* Rangées texte + visuel en alternance */
.wp-block-group.vw-rangee { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 72px; align-items: center; }
.wp-block-group.vw-rangee > * { margin: 0; }
.vw-rangee--inverse > .vw-rangee__media { order: -1; }
.wp-block-group.vw-rangee__texte { display: flex; flex-direction: column; gap: 16px; }
.wp-block-group.vw-rangee__texte > * { margin: 0; }
.vw-rangee h3.vw-rangee__titre, .vw-rangee__texte > h3.vw-h3 { font-size: clamp(26px, 2.5vw, 34px); line-height: 1.15; }
.vw-rangee__texte p { color: var(--encre-900, #2B3337); }
.vw-rangee__texte p.vw-eyebrow { color: var(--lien-700, #0077A8); }
.wp-block-group.vw-rangee__media { position: relative; display: block; }
.wp-block-group.vw-rangee__media > * { margin: 0; }
.wp-block-group.vw-rangee__media--duo { padding-bottom: 56px; }
.wp-block-group.vw-rangee__media--duo > :nth-child(2) { position: absolute; right: -8px; bottom: 0; width: 46%; }
h3.wp-block-heading.vw-h4, h2.wp-block-heading.vw-h4 { margin: 0; font: 600 20px/1.3 var(--font-display, "Prompt", system-ui, sans-serif); color: var(--nuit-800, #0B1F35); }
.vw-rangee__texte h3.vw-h4 { margin-top: 8px; }

/* Visuels : illustration arrondie, capture dans un cadre de navigateur, vidéo */
.wp-block-image.vw-visuel { position: relative; margin: 0; isolation: isolate; }
.wp-block-image.vw-visuel::before { content: ""; position: absolute; inset: 22px -22px -22px 22px; z-index: -1; border-radius: 30px; background-image: radial-gradient(rgba(0, 174, 239, 0.35) 1.2px, transparent 1.6px); background-size: 16px 16px; }
.vw-rangee--inverse .wp-block-image.vw-visuel::before { inset: 22px 22px -22px -22px; }
.wp-block-image.vw-visuel img { display: block; width: 100%; height: auto; border-radius: 28px; box-shadow: var(--shadow-card, 0 28px 50px -28px rgba(11, 31, 53, 0.45)); }
.wp-block-image.vw-capture { position: relative; margin: 0; padding-top: 30px; border-radius: 16px; overflow: hidden; background: #EEF2F7; border: 1px solid var(--brume-200, #E6ECF4); box-shadow: var(--shadow-card, 0 28px 50px -28px rgba(11, 31, 53, 0.45)); }
.wp-block-image.vw-capture::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 30px; background-image: radial-gradient(circle at 16px 15px, #C9D3E0 4px, transparent 4.6px), radial-gradient(circle at 30px 15px, #C9D3E0 4px, transparent 4.6px), radial-gradient(circle at 44px 15px, #C9D3E0 4px, transparent 4.6px); border-bottom: 1px solid var(--brume-200, #E6ECF4); }
.wp-block-image.vw-capture img { display: block; width: 100%; height: auto; background: var(--blanc, #FFFFFF); }
.vw-page-hero .wp-block-image.vw-capture { box-shadow: var(--shadow-float, 0 40px 80px -30px rgba(0, 0, 0, 0.6)); border-color: rgba(255, 255, 255, 0.14); }
.wp-block-video.vw-video { margin: 0; }
.wp-block-video.vw-video video { display: block; width: 100%; height: auto; aspect-ratio: 1718 / 920; border-radius: 20px; background: var(--nuit-800, #0B1F35); box-shadow: var(--shadow-card, 0 28px 50px -28px rgba(11, 31, 53, 0.45)); }

/* Sections de contenu : en-tête, cartes, listes, étapes */
.wp-block-group.vw-section-tete { max-width: 860px; }
.wp-block-group.vw-grille-cartes { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 20px; align-items: start; }
.wp-block-group.vw-grille-cartes > * { margin: 0; }
.wp-block-group.vw-carte-info, .wp-block-group.vw-carte-liste { padding: 28px; gap: 14px; }
.vw-carte-info p { font-size: 16px; color: var(--ardoise-700, #44566B); }
.wp-block-image.vw-carte-info__logo { margin: 0; }
.wp-block-image.vw-carte-info__logo img { display: block; width: auto; max-width: 150px; height: auto; }
.vw-carte-liste .wp-block-list.is-style-vw-coches { gap: 8px; font-size: 16px; }
.wp-block-group.vw-etapes { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 18px; }
.wp-block-group.vw-etapes > * { margin: 0; }
.wp-block-group.vw-etape { display: flex; gap: 18px; align-items: flex-start; padding: 26px; border-radius: 22px; background: var(--blanc, #FFFFFF); border: 1px solid var(--brume-200, #E6ECF4); }
.vw-blanc .wp-block-group.vw-etape { background: var(--fond-100, #F5F7FA); }
.wp-block-group.vw-etape > * { margin: 0; }
p.vw-etape__n { flex: none; width: 48px; height: 48px; border-radius: 14px; display: inline-flex; align-items: center; justify-content: center; background: var(--cyan-500, #00AEEF); color: var(--nuit-800, #0B1F35); font: 700 18px/1 var(--font-display, "Prompt", system-ui, sans-serif); }
.wp-block-group.vw-etape__corps { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.wp-block-group.vw-etape__corps > * { margin: 0; }
.vw-etape__corps p { font-size: 16px; color: var(--ardoise-700, #44566B); }

/* Galerie défilante [vw_galerie] */
.vw-galerie { display: flex; flex-direction: column; gap: 4px; margin-inline: calc(50% - 50vw); }
.vw-galerie:focus-visible { outline: 3px solid var(--cyan-400, #2BB5E9); outline-offset: -3px; }
.vw-galerie .vw-marquee__track { --gap: 22px; padding-block: 18px 34px; animation-duration: 80s; }
.vw-galerie:focus-within .vw-marquee__track { animation-play-state: paused; }
.vw-galerie .vw-phone { flex: none; width: 180px; }
.vw-galerie__carre { flex: none; width: 260px; border-radius: 18px; overflow: hidden; background: var(--blanc, #FFFFFF); border: 1px solid var(--brume-200, #E6ECF4); box-shadow: var(--shadow-card, 0 28px 50px -28px rgba(11, 31, 53, 0.45)); }
.vw-galerie__carre img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; }

@media (max-width: 900px) {
  .wp-block-group.vw-rangee { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .vw-rangee--inverse > .vw-rangee__media { order: 0; }
  .wp-block-image.vw-visuel::before, .vw-rangee--inverse .wp-block-image.vw-visuel::before { inset: 14px -10px -14px 10px; }
}
@media (max-width: 520px) {
  .wp-block-group.vw-tuiles-panneau { padding: 14px; gap: 14px; }
  .wp-block-list.vw-tuiles { gap: 8px; }
  .wp-block-list.vw-tuiles > li { min-height: 46px; padding: 9px 10px 9px 40px; font-size: 14px; border-radius: 12px; }
  .wp-block-list.vw-tuiles > li::before { left: 10px; width: 22px; height: 22px; margin-top: -11px; background-size: 12px; }
  .vw-tuiles__note p.vw-num { font-size: 38px; }
  .vw-galerie .vw-phone { width: 150px; }
  .vw-galerie__carre { width: 210px; }
}
.wp-block-group.vw-carte-liste--large { grid-column: 1 / -1; }
.vw-carte-liste--large .wp-block-list.is-style-vw-coches { display: block; columns: 2 320px; column-gap: 48px; }
.vw-carte-liste--large .wp-block-list.is-style-vw-coches > li { break-inside: avoid; margin-bottom: 12px; }
.wp-block-group.vw-carte-info--large { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 16px 40px; align-items: start; }
.wp-block-group.vw-carte-info__tete { display: flex; flex-direction: column; gap: 14px; }
.wp-block-group.vw-carte-info__tete > * { margin: 0; }
@media (max-width: 760px) { .wp-block-group.vw-carte-info--large { grid-template-columns: minmax(0, 1fr); } }
.wp-block-group.vw-colonnes { display: block; columns: 2 380px; column-gap: 56px; }
.wp-block-group.vw-colonnes > p { margin: 0 0 1em; break-inside: avoid; color: var(--encre-900, #2B3337); }
.vw-page-hero h1.vw-display.vw-display--long { font-size: clamp(38px, 4.2vw, 60px); line-height: 1.08; }
.vw-galerie__carre, .vw-galerie .vw-phone__screen { background: #EEF2F7; }

/* ======================================================================
   Pages simples : prestations, tarifs, contacts, espace client, légal
   ====================================================================== */

/* « Retrouvez nos prestations » */
.wp-block-list.vw-prestations { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 12px; }
.wp-block-list.vw-prestations > li { margin: 0; }
.wp-block-list.vw-prestations a { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 60px; padding: 14px 20px; border-radius: 16px; background: var(--blanc, #FFFFFF); border: 1px solid var(--brume-200, #E6ECF4); color: var(--nuit-800, #0B1F35); font: 600 17px/1.3 var(--font-display, "Prompt", system-ui, sans-serif); text-decoration: none; transition: transform 200ms ease, border-color 200ms ease, box-shadow 200ms ease; }
.vw-fond .wp-block-list.vw-prestations a { background: var(--blanc, #FFFFFF); }
.vw-blanc .wp-block-list.vw-prestations a { background: var(--fond-100, #F5F7FA); }
.wp-block-list.vw-prestations a::after { content: "→"; color: var(--lien-700, #0077A8); transition: transform 200ms ease; }
.wp-block-list.vw-prestations a:hover { transform: translateY(-2px); border-color: var(--cyan-400, #2BB5E9); box-shadow: var(--shadow-card, 0 28px 50px -28px rgba(11, 31, 53, 0.45)); }
.wp-block-list.vw-prestations a:hover::after { transform: translateX(3px); }
.wp-block-list.vw-prestations a:focus-visible { outline: 3px solid var(--cyan-400, #2BB5E9); outline-offset: 3px; }

/* En-tête compact et visuels secondaires */
.vw-page-hero--compact > .vw-container { padding-bottom: 64px; }
.vw-page-hero--compact h1.vw-display { font-size: clamp(38px, 4.4vw, 60px); }
.wp-block-image.vw-visuel--petit { max-width: 360px; }
.vw-canari { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.vw-section > .vw-container > .wp-block-group.vw-prose { margin-inline: 0; }
.vw-prose > .wp-block-heading:first-child { margin-top: 0; }

/* Tarifs : trois offres */
.wp-block-group.vw-offres { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 20px; align-items: start; }
.wp-block-group.vw-offres > * { margin: 0; }
.wp-block-group.vw-offre { padding: 30px; gap: 10px; }
.wp-block-group.vw-offre--vedette { background: var(--nuit-800, #0B1F35); border-color: var(--nuit-800, #0B1F35); box-shadow: var(--shadow-card, 0 28px 50px -28px rgba(11, 31, 53, 0.45)); }
.vw-offre--vedette h3.vw-h4, .vw-offre--vedette p.vw-offre__prix { color: var(--blanc, #FFFFFF); }
.vw-offre--vedette p, .vw-offre--vedette li { color: var(--nuit-texte-200, #C9D6E6); }
.vw-offre--vedette .wp-block-list.is-style-vw-coches > li::before { background-color: var(--cyan-400, #2BB5E9); }
p.vw-offre__depuis { margin: 6px 0 0; font-size: 14px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ardoise-600, #587089); }
p.vw-offre__prix { margin: 0 0 8px; font: 800 52px/1 var(--font-display, "Prompt", system-ui, sans-serif); color: var(--nuit-800, #0B1F35); }
p.vw-offre__prix span { font-size: 28px; margin-left: 2px; color: var(--cyan-500, #00AEEF); }
.vw-offre .wp-block-list.is-style-vw-coches { gap: 8px; font-size: 16px; padding-top: 14px; border-top: 1px solid var(--brume-200, #E6ECF4); }
.vw-offre--vedette .wp-block-list.is-style-vw-coches { border-top-color: rgba(255, 255, 255, 0.14); }
.wp-block-list.vw-notes { margin: 0; padding-left: 1.2em; display: grid; gap: 6px; font-size: 15px; font-style: italic; color: var(--ardoise-600, #587089); }

/* Contacts : agences en photos et carte */
.vw-agences-contacts { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 40px 56px; align-items: center; }
.vw-agences-contacts > * { margin: 0; }
.wp-block-group.vw-grille-agences { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.wp-block-group.vw-grille-agences > * { margin: 0; }
.wp-block-group.vw-agence-photo { position: relative; padding: 0; overflow: hidden; gap: 0; }
.wp-block-image.vw-agence-photo__img { margin: 0; aspect-ratio: 16 / 9; overflow: hidden; }
.wp-block-image.vw-agence-photo__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 400ms ease; }
.vw-agence-photo:hover .vw-agence-photo__img img { transform: scale(1.04); }
.wp-block-group.vw-agence-photo__corps { display: flex; flex-direction: column; gap: 2px; padding: 16px 18px 18px; }
.wp-block-group.vw-agence-photo__corps > * { margin: 0; }
.vw-agence-photo h3 a { color: inherit; text-decoration: none; }
.vw-agence-photo h3 a::after { content: ""; position: absolute; inset: 0; }
.vw-agence-photo:has(h3 a:focus-visible) { outline: 3px solid var(--cyan-400, #2BB5E9); outline-offset: 3px; }
.vw-agence-photo p.vw-muted { font-size: 15px; }

/* Espace client : outils */
.wp-block-group.vw-carte-outil { position: relative; padding: 24px; gap: 8px; }
.vw-carte-outil h3 a { color: inherit; text-decoration: none; }
.vw-carte-outil h3 a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.vw-carte-outil h3::after { content: " ↗"; color: var(--lien-700, #0077A8); }
.vw-carte-outil:has(h3 a:focus-visible) { outline: 3px solid var(--cyan-400, #2BB5E9); outline-offset: 3px; }
.vw-carte-outil p { font-size: 16px; color: var(--ardoise-700, #44566B); }

@media (max-width: 960px) {
  .vw-agences-contacts { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 560px) {
  .wp-block-group.vw-grille-agences { grid-template-columns: minmax(0, 1fr); }
}

/* ======================================================================
   En-tête Kadence restylé (body.vw-entete-sombre, réglage « entete »)
   ====================================================================== */
body.vw-entete-sombre #masthead .site-header-row-container-inner { background-color: var(--nuit-800, #0B1F35) !important; border-color: rgba(255, 255, 255, 0.08) !important; }
body.vw-entete-sombre #masthead .site-top-header-wrap .site-header-row-container-inner { background-color: #081829 !important; border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important; }
body.vw-entete-sombre #masthead .site-main-header-wrap .site-header-row-container-inner { border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important; }
body.vw-entete-sombre #masthead .header-html, body.vw-entete-sombre #masthead .header-html a { color: var(--nuit-texte-200, #C9D6E6); font-size: 14px; text-decoration: none; }
body.vw-entete-sombre #masthead .header-html img { filter: invert(1) brightness(1.4); opacity: 0.8; vertical-align: -1px; }
body.vw-entete-sombre #masthead .header-html a:hover { color: var(--blanc, #FFFFFF); }
body.vw-entete-sombre #masthead .vw-barre-haute__note { margin-left: 18px; display: inline-flex; align-items: center; gap: 6px; }
body.vw-entete-sombre #masthead .vw-barre-haute__note .vw-stars { font-size: 13px; }
body.vw-entete-sombre #masthead .vw-barre-haute__note strong { color: var(--blanc, #FFFFFF); }
body.vw-entete-sombre #masthead .vw-barre-haute__client { margin-left: 18px; color: var(--blanc, #FFFFFF); }
body.vw-entete-sombre #masthead .header-social-wrap .social-button { color: var(--nuit-texte-300, #A9BBD0); background: transparent; border-color: transparent; }
body.vw-entete-sombre #masthead .header-social-wrap .social-button:hover { color: var(--cyan-400, #2BB5E9); }
body.vw-entete-sombre #masthead .main-navigation .primary-menu-container > ul > li.menu-item > a { color: var(--blanc, #FFFFFF); }
body.vw-entete-sombre #masthead .main-navigation .primary-menu-container > ul > li.menu-item > a:hover,
body.vw-entete-sombre #masthead .main-navigation .primary-menu-container > ul > li.menu-item.current-menu-item > a,
body.vw-entete-sombre #masthead .main-navigation .primary-menu-container > ul > li.menu-item.current-menu-ancestor > a { color: var(--cyan-400, #2BB5E9); }
body.vw-entete-sombre #masthead .main-navigation .primary-menu-container > ul > li.menu-item .dropdown-nav-toggle { color: currentColor; }
body.vw-entete-sombre #masthead .header-navigation ul ul.sub-menu { background: var(--nuit-800, #0B1F35); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 14px; box-shadow: var(--shadow-float, 0 40px 80px -30px rgba(0, 0, 0, 0.6)); }
body.vw-entete-sombre #masthead .header-navigation ul ul.sub-menu li.menu-item > a { color: var(--nuit-texte-200, #C9D6E6); border-color: rgba(255, 255, 255, 0.06); }
body.vw-entete-sombre #masthead .header-navigation ul ul.sub-menu li.menu-item > a:hover { color: var(--blanc, #FFFFFF); background: rgba(255, 255, 255, 0.05); }
body.vw-entete-sombre #masthead .header-divider { border-color: rgba(255, 255, 255, 0.18) !important; }
body.vw-entete-sombre #masthead .header-button-wrap .header-button { background: var(--cyan-500, #00AEEF); border-color: var(--cyan-500, #00AEEF); color: var(--nuit-800, #0B1F35); border-radius: var(--radius-pill, 999px); font-family: var(--font-display, "Prompt", system-ui, sans-serif); font-weight: 600; box-shadow: var(--shadow-cta, 0 18px 40px -16px rgba(0, 174, 239, 0.7)); }
body.vw-entete-sombre #masthead .header-button-wrap .header-button:hover { background: var(--cyan-400, #2BB5E9); border-color: var(--cyan-400, #2BB5E9); color: var(--nuit-800, #0B1F35); }
body.vw-entete-sombre #masthead .menu-toggle-open, body.vw-entete-sombre #masthead .menu-toggle-open .menu-toggle-icon { color: var(--blanc, #FFFFFF); }
body.vw-entete-sombre #masthead .site-branding a.brand img { max-height: 46px; width: auto; }
body.vw-entete-sombre #mobile-drawer .drawer-inner { background: var(--nuit-800, #0B1F35); }

/* ======================================================================
   Pied de page natif (footer.vw-pied, réglage « pied »)
   ====================================================================== */
.vw-pied { background: #081829; color: var(--nuit-texte-300, #A9BBD0); font-size: 15px; }
.vw-pied a { color: var(--blanc, #FFFFFF); text-decoration: none; }
.vw-pied a:hover { color: var(--cyan-400, #2BB5E9); }
.vw-pied a:focus-visible { outline: 3px solid var(--cyan-400, #2BB5E9); outline-offset: 3px; border-radius: 4px; }
.wp-block-group.vw-pied__colonnes { display: grid; grid-template-columns: minmax(0, 1.35fr) repeat(4, minmax(0, 1fr)); gap: 40px 32px; padding-top: 80px; padding-bottom: 48px; }
.wp-block-group.vw-pied__colonnes > * { margin: 0; }
.wp-block-group.vw-pied__marque, .wp-block-group.vw-pied__col { display: flex; flex-direction: column; gap: 14px; }
.wp-block-group.vw-pied__marque > *, .wp-block-group.vw-pied__col > * { margin: 0; }
.wp-block-image.vw-pied__logo img { width: 170px; height: auto; display: block; }
.vw-pied__marque p { margin: 0 0 10px; line-height: 1.6; color: var(--nuit-texte-300, #A9BBD0); }
.vw-pied p.vw-eyebrow { color: var(--blanc, #FFFFFF); margin-bottom: 4px; }
.wp-block-list.vw-pied__liens { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; line-height: 1.4; }
.wp-block-list.vw-pied__liens > li { margin: 0; color: var(--nuit-texte-300, #A9BBD0); }
.vw-pied__liens a { color: var(--nuit-texte-200, #C9D6E6); }
.vw-pied__liens a:hover { color: var(--blanc, #FFFFFF); }
.vw-pied__bientot { color: var(--ambre-500, #F5A524); }
.wp-block-social-links.vw-pied__reseaux { gap: 10px; margin: 0; }
.wp-block-social-links.vw-pied__reseaux .wp-social-link { color: var(--blanc, #FFFFFF); background: transparent; border: 1px solid rgba(255, 255, 255, 0.18); border-radius: 50%; }
.wp-block-social-links.vw-pied__reseaux .wp-social-link a { padding: 10px; color: inherit; }
.wp-block-social-links.vw-pied__reseaux .wp-social-link:hover { border-color: var(--cyan-400, #2BB5E9); color: var(--cyan-400, #2BB5E9); transform: none; }
.wp-block-group.vw-pied__bas { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 16px 32px; padding-top: 24px; padding-bottom: 32px; border-top: 1px solid rgba(255, 255, 255, 0.1); font-size: 13px; }
.wp-block-group.vw-pied__bas > * { margin: 0; }
.vw-pied__bas p { margin: 0 0 6px; color: var(--nuit-texte-300, #A9BBD0); }
.vw-pied__bas .wp-block-list.vw-pied__liens { flex-direction: row; flex-wrap: wrap; gap: 8px 20px; }
@media (max-width: 1100px) { .wp-block-group.vw-pied__colonnes { grid-template-columns: repeat(3, minmax(0, 1fr)); } .wp-block-group.vw-pied__marque { grid-column: 1 / -1; } }
@media (max-width: 640px) { .wp-block-group.vw-pied__colonnes { grid-template-columns: minmax(0, 1fr); padding-top: 56px; } }
body.vw-barre-mobile .vw-pied { padding-bottom: 72px; }
@media (min-width: 721px) { body.vw-barre-mobile .vw-pied { padding-bottom: 0; } }

/* ======================================================================
   Fiche réalisation (gabarit natif)
   ====================================================================== */
.vw-page-hero__duo > .vw-fiche-real__scene { flex: 1 1 480px; min-width: 0; max-width: 620px; }
.vw-fiche-real__texte .vw-boutons, .vw-fiche-real .vw-boutons { display: flex; flex-wrap: wrap; gap: 12px; }
.vw-fiche-real .vw-btn--ghost { color: var(--blanc, #FFFFFF); border-color: rgba(255, 255, 255, 0.35); }
.vw-fiche-real__scene { position: relative; padding: 0 56px 56px 0; }
.vw-fiche-real__scene .vw-frame { transform: rotate(-1.2deg); box-shadow: var(--shadow-float, 0 40px 80px -30px rgba(0, 0, 0, 0.6)); border-radius: 16px; }
.vw-fiche-real__scene .vw-frame__screen { position: relative; aspect-ratio: 1900 / 1014; overflow: hidden; }
.vw-fiche-real__scene .vw-frame__screen img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: top center; }
.vw-fiche-real__scene .vw-phone { position: absolute; right: 0; bottom: 0; width: min(150px, 28%); transform: rotate(3deg); }
.vw-fiche-real__apropos { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: 40px 64px; align-items: start; }
.vw-fiche-real__corps { display: flex; flex-direction: column; gap: 20px; }
.vw-fiche-real__corps > * { margin: 0; }
.vw-fiche-real__infos { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 12px; }
.vw-fiche-real__infos li { margin: 0; display: flex; flex-direction: column; gap: 2px; padding: 12px 16px; border-radius: 14px; background: var(--fond-100, #F5F7FA); border: 1px solid var(--brume-200, #E6ECF4); }
.vw-fiche-real__infos span { font-size: 13px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ardoise-600, #587089); }
.vw-fiche-real__infos strong, .vw-fiche-real__infos a { font: 600 16px/1.3 var(--font-display, "Prompt", system-ui, sans-serif); color: var(--nuit-800, #0B1F35); text-decoration: none; }
.vw-fiche-real__infos a { color: var(--lien-700, #0077A8); }
.vw-fiche-real__aside { position: sticky; top: 120px; display: flex; flex-direction: column; gap: 16px; padding: 28px; border-radius: 22px; background: var(--fond-100, #F5F7FA); border: 1px solid var(--brume-200, #E6ECF4); }
.vw-fiche-real__aside > * { margin: 0; }
.vw-fiche-real__reperes { flex: 0 1 340px; display: flex; flex-direction: column; gap: 14px; }
.vw-fiche-real__reperes ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.vw-fiche-real__reperes li { margin: 0; display: flex; align-items: baseline; gap: 12px; padding-bottom: 14px; border-bottom: 1px solid rgba(255, 255, 255, 0.12); }
.vw-fiche-real__reperes li:last-child { border-bottom: 0; padding-bottom: 0; }
.vw-fiche-real__reperes .vw-num { font-size: 40px; color: var(--blanc, #FFFFFF); }
.vw-fiche-real__reperes span { color: var(--nuit-texte-200, #C9D6E6); }
.vw-panneau .vw-prose p { color: var(--nuit-texte-200, #C9D6E6); }
@media (max-width: 900px) {
  .vw-fiche-real__apropos { grid-template-columns: minmax(0, 1fr); }
  .vw-fiche-real__aside { position: static; }
  .vw-fiche-real__scene { padding: 0 32px 40px 0; }
}
.vw-pied__liens a[href^="tel:"] { white-space: nowrap; }
.wp-block-social-links.vw-pied__reseaux .wp-social-link a { padding: 8px; }
.wp-block-group.vw-pied__mentions { flex: 1 1 520px; min-width: 0; }
.wp-block-group.vw-panneau h3.vw-h4 { font: 600 21px/1.3 var(--font-display, "Prompt", system-ui, sans-serif); }
.vw-fiche-real .vw-panneau h2.vw-h2, .vw-section .vw-panneau h2.vw-h2 { font-size: clamp(28px, 2.8vw, 40px); }
