/* Mode sombre (recette du 27/10/2026) : chaque jeton porte sa valeur claire et sa valeur sombre (light-dark()), choisie
   par color-scheme. Le thème suit le réglage du système ; le bouton de l'en-tête le force (data-v3-theme sur <html>,
   posé avant le premier rendu par js/vitrine-v3/navigation-boot.js). --v3-blue est l'accent des textes, icônes et
   filets ; --v3-action le fond des boutons, qui garde un texte blanc (--v3-on-action). Les couleurs en dur des feuilles
   sont écrites light-dark(claire, sombre). Les fenêtres et maquettes de l'application restent claires (îlots, plus bas) :
   l'application n'a pas de mode sombre. */
[data-vitrine-v3] {
    --v3-ink: light-dark(#12243a, #e6ecf3);
    --v3-muted: light-dark(#526174, #a3b1c2);
    --v3-blue: light-dark(#194bd1, #8aa8ff);
    --v3-blue-hover: light-dark(#103ba9, #b0c5ff);
    --v3-action: light-dark(#194bd1, #2f5fe3);
    --v3-action-hover: light-dark(#103ba9, #4471ee);
    --v3-on-action: #ffffff;
    --v3-paper: light-dark(#f7f8f5, #111821);
    --v3-white: light-dark(#ffffff, #1b2129);
    --v3-line: light-dark(#dce2e7, #2c3743);
    --v3-blue-soft: light-dark(#edf2ff, #1a2848);
    --v3-navy: light-dark(#12243a, #182b44);
    --v3-radius: 8px;
    margin: 0;
    min-width: 0;
    background: var(--v3-paper);
    color: var(--v3-ink);
    font-family: 'Inter', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-size: 16px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    overflow-wrap: break-word;
    color-scheme: light;
}
:root[data-v3-theme="sombre"] [data-vitrine-v3] { color-scheme: dark; }
/* Sans script, le réglage du système s'applique. */
@media (prefers-color-scheme: dark) {
    :root:not([data-v3-theme]) [data-vitrine-v3] { color-scheme: dark; }
}
/* Îlots clairs : les fenêtres et maquettes de l'application gardent leurs couleurs dans les deux thèmes (la couleur du
   texte, héritée déjà résolue, est reprise dans l'îlot). */
[data-vitrine-v3] :is(.v3-product, .v3-essai-carte, .v3-usage-illustration, .v3-parcours-illustration, .v3-app, .v3-telephone-ecran, .v3-ia-synthese, .v3-parcours-ecran, .v3-gps-apercu) { color-scheme: light; color: var(--v3-ink); }

[data-vitrine-v3] *,
[data-vitrine-v3] *::before,
[data-vitrine-v3] *::after { box-sizing: border-box; }
[data-vitrine-v3] :where(h1, h2, h3, h4, p, ul, ol, figure, blockquote, dl, dd) { margin: 0; }
[data-vitrine-v3] :where(ul, ol) { padding: 0; list-style: none; }
[data-vitrine-v3] a { color: inherit; text-decoration: none; text-underline-offset: 4px; }
[data-vitrine-v3] :where(button, input, select, textarea) { font: inherit; color: inherit; }
[data-vitrine-v3] button { cursor: pointer; }
[data-vitrine-v3] button:disabled { cursor: default; }
[data-vitrine-v3] :where(img, svg) { display: block; max-width: 100%; }
[data-vitrine-v3] :where(i[data-lucide], .lucide) { display: inline-block; width: 20px; height: 20px; flex: 0 0 auto; vertical-align: middle; stroke-width: 1.8; }
[data-vitrine-v3] [hidden] { display: none !important; }
[data-vitrine-v3] [id] { scroll-margin-top: 112px; }
[data-vitrine-v3] :focus-visible { outline: 3px solid light-dark(#3067ed, #7198eb); outline-offset: 4px; }
[data-vitrine-v3] :where(main, #haut-de-page):focus { outline: none; }
[data-vitrine-v3] ::selection { background: light-dark(#d9e5ff, #17264d); color: var(--v3-ink); }
[data-vitrine-v3] h1 { font-size: clamp(2.35rem, 4.4vw, 4.25rem); line-height: 1.1; font-weight: 650; letter-spacing: -0.052em; text-wrap: balance; }
[data-vitrine-v3] h2 { font-size: clamp(1.8rem, 3vw, 2.75rem); line-height: 1.17; font-weight: 650; letter-spacing: -0.042em; text-wrap: balance; }
[data-vitrine-v3] h3 { font-size: 1.125rem; line-height: 1.4; font-weight: 650; letter-spacing: -0.02em; }
[data-vitrine-v3] h4 { font-size: 0.9375rem; line-height: 1.4; font-weight: 650; }
[data-vitrine-v3] strong { font-weight: 650; }
[data-vitrine-v3] .v3-container { width: min(1280px, calc(100% - 64px)); margin-inline: auto; }
[data-vitrine-v3] .v3-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
[data-vitrine-v3] .v3-skip-link { position: fixed; top: 12px; left: 16px; z-index: 100; padding: 12px 20px; border-radius: 6px; background: var(--v3-white); color: var(--v3-blue); font-weight: 650; transform: translateY(-180%); }
[data-vitrine-v3] .v3-skip-link:focus { transform: translateY(0); }

[data-vitrine-v3] .v3-eyebrow { display: flex; align-items: center; gap: 9px; margin-bottom: 18px; color: var(--v3-blue); font-size: 0.75rem; font-weight: 650; letter-spacing: 0.065em; line-height: 1.6; text-transform: uppercase; }
[data-vitrine-v3] .v3-eyebrow .lucide { width: 17px; height: 17px; }
[data-vitrine-v3] .v3-eyebrow-line { width: 24px; height: 2px; flex: 0 0 auto; background: var(--v3-action); }
[data-vitrine-v3] .v3-lead { max-width: 64ch; margin-top: 24px; color: var(--v3-muted); font-size: clamp(1rem, 1.4vw, 1.125rem); line-height: 1.75; }
[data-vitrine-v3] .v3-button { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 12px 19px; border: 1px solid transparent; border-radius: 6px; font-size: 0.875rem; font-weight: 650; line-height: 1.45; text-align: center; transition: background-color 120ms ease, border-color 120ms ease, color 120ms ease; }
[data-vitrine-v3] .v3-button .lucide { width: 18px; height: 18px; }
[data-vitrine-v3] .v3-button-primary { background: var(--v3-action); border-color: var(--v3-action); color: var(--v3-on-action); }
[data-vitrine-v3] .v3-button-primary:hover { background: var(--v3-action-hover); border-color: var(--v3-action-hover); }
[data-vitrine-v3] .v3-button-secondary { background: var(--v3-white); border-color: light-dark(#bdc8d3, #3c4956); color: var(--v3-ink); }
[data-vitrine-v3] .v3-button-secondary:hover { background: var(--v3-blue-soft); border-color: var(--v3-blue); }
[data-vitrine-v3] .v3-button-small { min-height: 42px; padding: 10px 14px; font-size: 0.8125rem; }
[data-vitrine-v3] .v3-button-row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 30px; }
[data-vitrine-v3] .v3-text-link { display: inline-flex; align-items: center; gap: 8px; min-height: 36px; color: var(--v3-blue); font-size: 0.875rem; font-weight: 600; line-height: 1.5; }
[data-vitrine-v3] .v3-text-link:hover { text-decoration: underline; }
[data-vitrine-v3] .v3-text-link .lucide { width: 17px; height: 17px; }
[data-vitrine-v3] .v3-icon-box { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 42px; height: 42px; border: 1px solid light-dark(#d9e3f7, #354056); border-radius: 8px; background: var(--v3-blue-soft); color: var(--v3-blue); }
[data-vitrine-v3] .v3-icon-box .lucide { width: 21px; height: 21px; }
/* Code couleur des solutions (recettes du 26/10/2026) : une couleur par solution, partout où elle apparaît (menu
   Solutions, accueil, page de la solution, cartes, tarifs, pied de page). Couleurs historiques de l'ancien site (menu et
   pages solutions, carrousel des services), sauf là où elles se confondaient : violet, violet foncé et indigo (Entretiens
   RH, Compétences, Feuille de temps), vert et sarcelle (Dossier RH, Congés). Compétences passe en vert tilleul, Feuille de
   temps en orange brûlé, Dossier RH fonce, Congés s'éclaircit : écart perceptuel (ΔE 2000) d'au moins 18 entre deux
   solutions, contre 7 auparavant. --v3-brique : accent (icône, filet) ; --v3-brique-texte : la même teinte plus foncée,
   lisible en petit sur blanc ; --v3-brique-doux : fond ; --v3-brique-trait : bordure. */
[data-vitrine-v3] .v3-solution--entretiens-rh { --v3-brique: light-dark(#9333ea, #b988fa); --v3-brique-texte: light-dark(#7e22ce, #d3b8ff); --v3-brique-doux: light-dark(#faf5ff, #221b28); --v3-brique-trait: light-dark(#e9d5ff, #564467); }
[data-vitrine-v3] .v3-solution--copilote-managerial { --v3-brique: light-dark(#e11d48, #f9757e); --v3-brique-texte: light-dark(#be123c, #fdafb2); --v3-brique-doux: light-dark(#fff1f2, #2a191a); --v3-brique-trait: light-dark(#fecdd3, #693f45); }
[data-vitrine-v3] .v3-solution--audit { --v3-brique: light-dark(#0891b2, #43b4d6); --v3-brique-texte: light-dark(#0e7490, #7fd5f4); --v3-brique-doux: light-dark(#ecfeff, #0c2223); --v3-brique-trait: light-dark(#a5f3fc, #07585f); }
[data-vitrine-v3] .v3-solution--competences { --v3-brique: light-dark(#65a30d, #7bba33); --v3-brique-texte: light-dark(#4d7c0f, #a6da77); --v3-brique-doux: light-dark(#f7fee7, #1c2011); --v3-brique-trait: light-dark(#d9f99d, #415608); }
[data-vitrine-v3] .v3-solution--formation { --v3-brique: light-dark(#2563eb, #75a3fd); --v3-brique-texte: light-dark(#1d4ed8, #adc7fe); --v3-brique-doux: light-dark(#eff6ff, #151f2b); --v3-brique-trait: light-dark(#bfdbfe, #364f6d); }
[data-vitrine-v3] .v3-solution--jeunes-talents { --v3-brique: light-dark(#d97706, #ec8829); --v3-brique-texte: light-dark(#b45309, #feb48c); --v3-brique-doux: light-dark(#fffbeb, #221e0e); --v3-brique-trait: light-dark(#fde68a, #5a4c0b); }
[data-vitrine-v3] .v3-solution--dossier-rh { --v3-brique: light-dark(#047857, #5cba95); --v3-brique-texte: light-dark(#065f46, #8fdabb); --v3-brique-doux: light-dark(#ecfdf5, #10221b); --v3-brique-trait: light-dark(#a7f3d0, #145b41); }
[data-vitrine-v3] .v3-solution--conges-absences { --v3-brique: light-dark(#14b8a6, #21bdab); --v3-brique-texte: light-dark(#0f766e, #82dad0); --v3-brique-doux: light-dark(#f0fdfa, #0e221f); --v3-brique-trait: light-dark(#99f6e4, #035a4f); }
[data-vitrine-v3] .v3-solution--feuille-de-temps { --v3-brique: light-dark(#c2410c, #fd774c); --v3-brique-texte: light-dark(#9a3412, #fcb39d); --v3-brique-doux: light-dark(#fff7ed, #261c0f); --v3-brique-trait: light-dark(#fed7aa, #66461b); }
/* Toute icône rattachée à une solution (carte, entrée de menu, page de la solution) prend sa couleur. */
[data-vitrine-v3] [class*="v3-solution--"] .v3-icon-box { border-color: var(--v3-brique-trait); background: var(--v3-brique-doux); color: var(--v3-brique); }
[data-vitrine-v3] .v3-nav-solutions-grid [class*="v3-solution--"] a:is(:hover, [aria-current]) { border-color: var(--v3-brique-trait); background: var(--v3-brique-doux); color: var(--v3-brique-texte); }
[data-vitrine-v3] .v3-page-card[class*="v3-solution--"]:hover { border-color: var(--v3-brique-trait); }
[data-vitrine-v3] .v3-page-card[class*="v3-solution--"] h3 a:hover,
[data-vitrine-v3] .v3-page-card[class*="v3-solution--"] > .v3-text-link { color: var(--v3-brique-texte); }
[data-vitrine-v3] .v3-quote-options-modules a[class*="v3-solution--"] > .lucide:first-child { color: var(--v3-brique); }
[data-vitrine-v3] .v3-footer-solutions [class*="v3-solution--"] a { display: inline-flex; align-items: center; gap: 9px; }
[data-vitrine-v3] .v3-footer-solutions [class*="v3-solution--"] a::before { flex: 0 0 auto; width: 8px; height: 8px; border-radius: 2px; background: var(--v3-brique); content: ''; }

/* En-tête flottant (recette du 28/10/2026) : une barre détachée des bords, posée au-dessus du contenu, opaque à 92 %
   pour rester lisible sur tous les fonds (vidéos comprises) ; elle se resserre et prend une ombre légère au défilement
   (data-v3-defile, posé par le script). */
[data-vitrine-v3] .v3-header { position: sticky; top: 0; z-index: 50; padding-top: 12px; pointer-events: none; transition: padding-top 220ms ease; }
[data-vitrine-v3][data-v3-defile] .v3-header { padding-top: 8px; }
/* Le resserrement est visuel : en grand écran, la boîte de l'en-tête garde sa hauteur dans la page (celle que les heros
   passent dessous, --v3-entete-hauteur). Sinon le contenu remontait de 10 px au seuil de défilement, l'ancrage du
   défilement du navigateur compensait, on repassait sous le seuil et le hero saccadait en haut de page (retour de Paul,
   29/10/2026). */
@media (min-width: 64rem) {
    [data-vitrine-v3] .v3-header { box-sizing: border-box; height: var(--v3-entete-hauteur); }
}
[data-vitrine-v3] .v3-header-inner { position: relative; display: flex; align-items: center; gap: 30px; min-height: 64px; padding: 0 10px 0 18px; border: 1px solid var(--v3-line); border-radius: 14px; background: color-mix(in srgb, var(--v3-white) 92%, transparent); -webkit-backdrop-filter: blur(12px) saturate(1.3); backdrop-filter: blur(12px) saturate(1.3); pointer-events: auto; transition: min-height 220ms ease, box-shadow 220ms ease, border-color 220ms ease; }
[data-vitrine-v3][data-v3-defile] .v3-header-inner { min-height: 58px; box-shadow: 0 10px 30px light-dark(#12243a17, #00000059); }
[data-vitrine-v3] .v3-header .v3-brand img, [data-vitrine-v3] .v3-header .v3-brand-mark { width: 30px; height: 30px; }
[data-vitrine-v3] .v3-header .v3-brand-word { font-size: 1.125rem; }
[data-vitrine-v3] .v3-brand { display: inline-flex; align-items: center; gap: 9px; flex: 0 0 auto; color: var(--v3-ink); font-size: 1.5rem; font-weight: 750; letter-spacing: -0.065em; line-height: 1; }
[data-vitrine-v3] .v3-brand img { width: 34px; height: 34px; }
[data-vitrine-v3] .v3-brand-dot { color: var(--v3-blue); }
/* Logo : « Upikajob » en Poppins semi-gras, comme la vignette de l'animation de présentation (mainloop/AnimationLoom). */
[data-vitrine-v3] .v3-brand-word { font-family: 'Poppins', 'Inter', sans-serif; font-size: 1.25rem; font-weight: 600; letter-spacing: 0; }
[data-vitrine-v3] .v3-brand-mark { position: relative; display: inline-flex; flex: 0 0 auto; width: 34px; height: 34px; }
/* Boucle du « U » : le loader de marque (carré à 82 % de son cadre) recouvre exactement le pictogramme. */
[data-vitrine-v3] .v3-brand-mark .v3-brand-anim { position: absolute; top: -11%; left: -11%; width: 122%; height: 122%; max-width: none; pointer-events: none; }
[data-vitrine-v3] .v3-brand-mark[data-v3-playing] > img:first-child { visibility: hidden; }
/* Fin de la boucle : le « U » s'est réduit à rien, le pictogramme revient en « pop » (recette du 26/10/2026). */
[data-vitrine-v3] .v3-brand-mark[data-v3-brand-pop] > img:first-child { animation: v3-brand-pop 560ms ease-out both; }
@keyframes v3-brand-pop { 0% { opacity: 0; transform: scale(0.2); } 55% { opacity: 1; transform: scale(1.16); } 78% { transform: scale(0.95); } 100% { opacity: 1; transform: scale(1); } }
[data-vitrine-v3] .v3-footer .v3-brand-mark,
[data-vitrine-v3] .v3-footer .v3-brand img,
[data-vitrine-v3] .v3-resource-cover .v3-brand-mark,
[data-vitrine-v3] .v3-resource-cover .v3-brand img { width: 30px; height: 30px; }
[data-vitrine-v3] .v3-navigation { display: flex; align-items: center; justify-content: space-between; flex: 1 1 auto; gap: 12px; min-width: 0; }
[data-vitrine-v3] .v3-nav-primary, [data-vitrine-v3] .v3-nav-actions { display: flex; align-items: center; gap: 3px; }
[data-vitrine-v3] .v3-nav-actions { gap: 16px; }
[data-vitrine-v3] .v3-nav-disclosure > summary, [data-vitrine-v3] .v3-nav-link { display: flex; align-items: center; gap: 5px; padding: 11px 9px; border-radius: 6px; font-size: 0.8125rem; font-weight: 500; white-space: nowrap; cursor: pointer; }
[data-vitrine-v3] summary { list-style: none; cursor: pointer; }
[data-vitrine-v3] summary::-webkit-details-marker { display: none; }
[data-vitrine-v3] summary::marker { content: ''; }
[data-vitrine-v3] .v3-nav-disclosure > summary .lucide { width: 14px; height: 14px; }
[data-vitrine-v3] .v3-nav-disclosure[open] > summary, [data-vitrine-v3] .v3-nav-current, [data-vitrine-v3] .v3-nav-link[aria-current], [data-vitrine-v3] .v3-nav-link:hover, [data-vitrine-v3] .v3-nav-disclosure > summary:hover { color: var(--v3-blue); background: var(--v3-blue-soft); }
[data-vitrine-v3] .v3-nav-disclosure[open] > summary > .lucide { transform: rotate(180deg); }
[data-vitrine-v3] .v3-nav-login { display: inline-flex; align-items: center; gap: 4px; min-height: 44px; font-size: 0.8125rem; font-weight: 500; white-space: nowrap; }
[data-vitrine-v3] .v3-nav-login .lucide { width: 15px; height: 15px; }
[data-vitrine-v3] .v3-nav-login:hover { color: var(--v3-blue); text-decoration: underline; }
[data-vitrine-v3] .v3-dropdown { position: absolute; top: calc(100% + 8px); left: 0; z-index: 55; width: min(880px, 100%); max-height: calc(100dvh - 120px); overflow-y: auto; padding: 24px; border: 1px solid var(--v3-line); border-radius: 12px; background: var(--v3-white); box-shadow: 0 18px 36px #12243a14; }
[data-vitrine-v3] .v3-dropdown-intro { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 16px; padding-bottom: 16px; border-bottom: 1px solid var(--v3-line); }
[data-vitrine-v3] .v3-dropdown-intro .v3-eyebrow { margin: 0; }
[data-vitrine-v3] .v3-nav-solutions-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
[data-vitrine-v3] .v3-nav-solutions-grid a { display: flex; align-items: center; gap: 10px; min-height: 66px; padding: 9px; border: 1px solid transparent; border-radius: 6px; font-size: 0.8125rem; font-weight: 600; }
[data-vitrine-v3] .v3-nav-solutions-grid a:hover, [data-vitrine-v3] .v3-nav-solutions-grid a[aria-current] { border-color: var(--v3-line); background: var(--v3-paper); color: var(--v3-blue); }
[data-vitrine-v3] .v3-nav-solutions-grid .v3-icon-box { width: 34px; height: 34px; border-radius: 6px; }
[data-vitrine-v3] .v3-nav-solutions-grid .v3-icon-box .lucide { width: 18px; height: 18px; }
[data-vitrine-v3] .v3-nav-arrow { width: 14px; height: 14px; margin-left: auto; }
[data-vitrine-v3] .v3-dropdown-bottom { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--v3-line); color: var(--v3-muted); font-size: 0.8125rem; }
[data-vitrine-v3] .v3-dropdown-bottom a { display: inline-flex; align-items: center; gap: 8px; min-height: 36px; color: var(--v3-blue); font-weight: 600; }
[data-vitrine-v3] .v3-dropdown-bottom a:hover { text-decoration: underline; }
[data-vitrine-v3] .v3-dropdown-resources { left: 160px; display: grid; grid-template-columns: 1fr 1fr; gap: 24px; width: min(620px, calc(100% - 160px)); }
[data-vitrine-v3] .v3-dropdown-resources > ul a { display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 8px; border-radius: 6px; font-size: 0.875rem; }
[data-vitrine-v3] .v3-dropdown-resources > ul a:hover, [data-vitrine-v3] .v3-dropdown-resources > ul a[aria-current] { background: var(--v3-paper); color: var(--v3-blue); }
[data-vitrine-v3] .v3-dropdown-resources > ul a > .lucide:first-child { color: var(--v3-muted); width: 18px; height: 18px; }
[data-vitrine-v3] .v3-nav-feature { display: flex; flex-direction: column; justify-content: space-between; gap: 22px; padding: 22px; border-radius: 8px; background: var(--v3-paper); }
[data-vitrine-v3] .v3-nav-feature .v3-eyebrow { margin: 0; font-size: 0.6875rem; }
[data-vitrine-v3] .v3-nav-feature strong { font-size: 1.125rem; line-height: 1.5; letter-spacing: -0.025em; }
[data-vitrine-v3] .v3-nav-feature:hover strong { color: var(--v3-blue); }
/* Barre d'outils flottante (recette du 28/10/2026) : langue et thème, compacte, en bas à gauche depuis le 03/11/2026 (le
   coin droit est au guide Upikat et à « Remonter » ; dans l'en-tête, elle le chargeait trop, retour de Paul) ; ses
   boutons s'élèvent légèrement au survol (idée du « Dock » de React Bits, sans grossissement). */
[data-vitrine-v3] .v3-outils { position: fixed; bottom: 16px; left: 16px; z-index: 45; display: flex; align-items: center; gap: 2px; padding: 4px; border: 1px solid var(--v3-line); border-radius: 12px; background: color-mix(in srgb, var(--v3-white) 94%, transparent); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); box-shadow: 0 10px 30px light-dark(#12243a1f, #00000066); }
[data-vitrine-v3] .v3-outil { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-width: 40px; height: 40px; padding: 0 10px; border: 0; border-radius: 8px; background: transparent; color: var(--v3-ink); font-size: 0.8125rem; font-weight: 650; cursor: pointer; transition: background-color 150ms ease, color 150ms ease, translate 150ms ease; }
[data-vitrine-v3] .v3-outil:hover, [data-vitrine-v3] .v3-langue[open] > .v3-outil { background: var(--v3-blue-soft); color: var(--v3-blue); }
[data-vitrine-v3] .v3-outil:hover { translate: 0 -1px; }
[data-vitrine-v3] .v3-outil .lucide { width: 18px; height: 18px; }
[data-vitrine-v3] .v3-langue { position: relative; }
[data-vitrine-v3] .v3-langue-code { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.04em; }
[data-vitrine-v3] .v3-langue-menu { position: absolute; bottom: calc(100% + 12px); left: -4px; min-width: 190px; margin: 0; padding: 6px; border: 1px solid var(--v3-line); border-radius: 10px; background: var(--v3-white); box-shadow: 0 14px 36px light-dark(#12243a1f, #00000066); list-style: none; }
[data-vitrine-v3] .v3-langue-menu a { display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 7px; color: var(--v3-ink); font-size: 0.875rem; }
[data-vitrine-v3] .v3-langue-menu a:hover { background: var(--v3-blue-soft); }
[data-vitrine-v3] .v3-langue-menu a[aria-current] { color: var(--v3-blue); font-weight: 650; }
[data-vitrine-v3] .v3-langue-menu .v3-langue-code { display: inline-flex; justify-content: center; min-width: 28px; padding: 2px 0; border: 1px solid var(--v3-line); border-radius: 5px; color: var(--v3-muted); }
[data-vitrine-v3] .v3-langue-menu .lucide { width: 16px; height: 16px; margin-left: auto; }
/* Place sous le pied de page pour la barre d'outils (à gauche) et le bouton d'Upikat (à droite). */
[data-vitrine-v3] .v3-footer { padding-bottom: 96px; }
/* Chantier 3 de l'audit du 28/10/2026 : sur téléphone et tablette, la barre laisse place à une ligne du panneau du menu
   (.v3-nav-outils) et l'en-tête gagne un bouton « Démo » compact ; les deux sont masqués en grand écran. */
[data-vitrine-v3] .v3-header-demo, [data-vitrine-v3] .v3-nav-outils { display: none; }

/* « Demander une démo » (recette du 28/10/2026) : le bouton principal, plein, avec sa flèche dans une pastille qui
   avance au survol ; il suit légèrement le pointeur (effet « aimant », js/vitrine-v3/vitrine-v3.js). Celui de
   l'en-tête rappelle sa présence toutes les quatorze secondes par une brève pulsation, suspendue au survol et au focus,
   absente avec la réduction des mouvements. */
[data-vitrine-v3] .v3-cta-demo { gap: 12px; padding-right: 8px; translate: var(--v3-aimant-x, 0px) var(--v3-aimant-y, 0px); transition: background-color 160ms ease, border-color 160ms ease, translate 480ms cubic-bezier(0.25, 0.8, 0.25, 1), scale 160ms ease; }
[data-vitrine-v3] .v3-cta-demo[data-v3-aimante] { transition-duration: 160ms, 160ms, 260ms, 160ms; }
/* Même hauteur (48 px) que les autres boutons principaux malgré la pastille de 30 px (audit du 28/10/2026). */
[data-vitrine-v3] .v3-cta-demo:not(.v3-button-small) { padding-block: 8px; }
[data-vitrine-v3] .v3-cta-demo-fleche { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 7px; background: #ffffff29; transition: translate 200ms ease, background-color 200ms ease; }
[data-vitrine-v3] .v3-button-small.v3-cta-demo .v3-cta-demo-fleche { width: 26px; height: 26px; border-radius: 6px; }
[data-vitrine-v3] .v3-cta-demo-fleche .lucide { width: 16px; height: 16px; }
[data-vitrine-v3] .v3-cta-demo:hover .v3-cta-demo-fleche { background: #ffffff40; translate: 3px 0; }
[data-vitrine-v3] .v3-cta-demo:active { scale: 0.97; }
[data-vitrine-v3] .v3-cta-demo:focus-visible { outline-offset: 3px; }
@media (prefers-reduced-motion: no-preference) {
    [data-vitrine-v3] [data-v3-cta-demo] { animation: v3-cta-appel 14s ease-in-out 4s infinite; }
    [data-vitrine-v3] [data-v3-cta-demo] .v3-cta-demo-fleche { animation: v3-cta-fleche 14s ease-in-out 4s infinite; }
    [data-vitrine-v3] [data-v3-cta-demo]:is(:hover, :focus-visible),
    [data-vitrine-v3] [data-v3-cta-demo]:is(:hover, :focus-visible) .v3-cta-demo-fleche { animation-play-state: paused; }
}
@keyframes v3-cta-appel { 0%, 90%, 100% { scale: 1; } 92.5% { scale: 1.05; } 95% { scale: 0.99; } 97% { scale: 1.02; } }
@keyframes v3-cta-fleche { 0%, 90%, 100% { translate: 0 0; } 93% { translate: 4px 0; } 96% { translate: 0 0; } }
:root[data-v3-theme="sombre"] [data-vitrine-v3] .v3-theme-toggle [data-v3-theme-icone="sombre"],
:root:not([data-v3-theme="sombre"]) [data-vitrine-v3] .v3-theme-toggle [data-v3-theme-icone="clair"] { display: none; }
[data-vitrine-v3] .v3-menu-toggle { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 8px 12px; border: 1px solid var(--v3-line); border-radius: 6px; background: var(--v3-white); font-size: 0.8125rem; font-weight: 600; }

[data-vitrine-v3] .v3-hero { padding-top: 68px; }
[data-vitrine-v3] .v3-hero-grid { display: grid; grid-template-columns: minmax(0, 0.91fr) minmax(0, 1.09fr); align-items: center; gap: 48px; }
[data-vitrine-v3] .v3-hero > .v3-hero-grid { padding-bottom: 60px; }
[data-vitrine-v3] .v3-hero-copy { min-width: 0; }
[data-vitrine-v3] .v3-hero-copy h1 { max-width: 15ch; }
[data-vitrine-v3] .v3-hero-copy .v3-eyebrow { max-width: 42ch; }
[data-vitrine-v3] .v3-hero-note { display: flex; align-items: flex-start; gap: 8px; margin-top: 19px; color: var(--v3-muted); font-size: 0.75rem; line-height: 1.6; }
[data-vitrine-v3] .v3-hero-note .lucide { width: 16px; height: 16px; margin-top: 2px; }
[data-vitrine-v3] .v3-hero-topics { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; margin-top: 34px; padding-top: 22px; border-top: 1px solid var(--v3-line); font-size: 0.75rem; font-weight: 500; }
[data-vitrine-v3] .v3-hero-topics .lucide { width: 13px; height: 13px; color: light-dark(#6a7a8c, #9daec2); }
[data-vitrine-v3] .v3-hero-preview { min-width: 0; }
[data-vitrine-v3] .v3-preview-under { display: flex; align-items: center; justify-content: center; gap: 7px; margin-top: 17px; color: var(--v3-muted); font-size: 0.6875rem; line-height: 1.6; text-align: center; }
[data-vitrine-v3] .v3-preview-under .lucide { width: 14px; height: 14px; }
[data-vitrine-v3] .v3-proof-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); padding-block: 28px; border-top: 1px solid var(--v3-line); border-bottom: 1px solid var(--v3-line); }
[data-vitrine-v3] .v3-proof-strip > div { display: flex; align-items: center; justify-content: center; gap: 17px; padding-inline: 20px; }
[data-vitrine-v3] .v3-proof-strip > div + div { border-left: 1px solid var(--v3-line); }
[data-vitrine-v3] .v3-proof-strip > div > .lucide { width: 26px; height: 26px; color: var(--v3-blue); }
[data-vitrine-v3] .v3-proof-strip strong, [data-vitrine-v3] .v3-proof-strip p > span { display: block; }
[data-vitrine-v3] .v3-proof-strip strong { font-size: 0.875rem; }
[data-vitrine-v3] .v3-proof-strip p > span { margin-top: 2px; color: var(--v3-muted); font-size: 0.75rem; }

[data-vitrine-v3] .v3-product { min-width: 0; overflow: hidden; border: 1px solid #cbd5e0; border-radius: 10px; background: var(--v3-white); box-shadow: 0 18px 50px #12243a0c; }
[data-vitrine-v3] .v3-product-caption { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 11px 16px; border-bottom: 1px solid #d9e2f0; background: #edf2f9; font-size: 0.6875rem; }
[data-vitrine-v3] .v3-product-caption > span { display: inline-flex; align-items: center; gap: 7px; color: #425570; }
[data-vitrine-v3] .v3-product-caption .lucide { width: 15px; height: 15px; }
[data-vitrine-v3] .v3-product-caption strong { color: #243f68; font-size: 0.625rem; font-weight: 600; }
[data-vitrine-v3] .v3-product-body { display: grid; grid-template-columns: 52px minmax(0, 1fr); }
[data-vitrine-v3] .v3-product-rail { display: flex; flex-direction: column; align-items: center; gap: 24px; padding-top: 24px; border-right: 1px solid var(--v3-line); background: #f8fafc; color: #697a91; }
[data-vitrine-v3] .v3-product-rail .lucide { width: 17px; height: 17px; }
[data-vitrine-v3] .v3-product-rail-active { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; margin-block: -7px; border-radius: 6px; background: #e4ecff; color: var(--v3-blue); }
[data-vitrine-v3] .v3-product-main { min-width: 0; }
[data-vitrine-v3] .v3-tablist, [data-vitrine-v3] .v3-tabs-fallback { display: flex; gap: 4px; padding-inline: 17px; border-bottom: 1px solid var(--v3-line); }
[data-vitrine-v3] .v3-tablist button, [data-vitrine-v3] .v3-tabs-fallback a { position: relative; flex: 1 1 0; min-height: 47px; padding: 13px 8px; border: 0; border-bottom: 2px solid transparent; background: transparent; color: var(--v3-muted); font-size: 0.75rem; font-weight: 600; text-align: center; }
[data-vitrine-v3] .v3-tablist button[aria-selected="true"] { border-bottom-color: var(--v3-blue); color: var(--v3-blue); }
[data-vitrine-v3] .v3-tablist button:hover, [data-vitrine-v3] .v3-tabs-fallback a:hover { background: #f4f7fd; color: var(--v3-blue); }
[data-vitrine-v3] .v3-tablist button:focus-visible { z-index: 1; outline-offset: -4px; }
[data-vitrine-v3] .v3-tabpanel { min-height: 359px; padding: 24px 20px 20px; }
[data-vitrine-v3] .v3-tabpanel + .v3-tabpanel { border-top: 1px solid var(--v3-line); }
[data-vitrine-v3][data-v3-enhanced] .v3-tabpanel { border-top: 0; }
[data-vitrine-v3] .v3-tabpanel:focus-visible { outline-offset: -4px; }
[data-vitrine-v3] .v3-product-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 20px; }
[data-vitrine-v3] .v3-product-heading :where(h2, h3) { font-size: 1.1875rem; font-weight: 650; letter-spacing: -0.025em; line-height: 1.35; text-wrap: initial; }
[data-vitrine-v3] .v3-product-heading > .lucide { color: #7c8da4; width: 21px; height: 21px; }
[data-vitrine-v3] .v3-product-overline { margin-bottom: 5px; color: var(--v3-muted); font-size: 0.625rem; }
[data-vitrine-v3] .v3-product-context { display: grid; grid-template-columns: 1fr 1.25fr; gap: 12px; margin-bottom: 22px; }
[data-vitrine-v3] .v3-product-context > div { padding: 11px 12px; border: 1px solid var(--v3-line); border-radius: 6px; background: #fafbfd; }
[data-vitrine-v3] .v3-product-context dt { color: var(--v3-muted); font-size: 0.625rem; }
[data-vitrine-v3] .v3-product-context dd { margin-top: 4px; font-size: 0.6875rem; font-weight: 600; }
[data-vitrine-v3] .v3-table-scroll { max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; border: 1px solid var(--v3-line); border-radius: 6px; }
[data-vitrine-v3] .v3-product-table-scroll { border: 0; border-radius: 0; }
[data-vitrine-v3] .v3-product-table { width: 100%; min-width: 370px; border-collapse: collapse; font-size: 0.6875rem; line-height: 1.5; }
[data-vitrine-v3] .v3-product-table :where(th, td) { padding: 12px 9px; border-bottom: 1px solid light-dark(#e9edf1, #393e42); text-align: left; }
[data-vitrine-v3] .v3-product-table th { font-weight: 500; }
[data-vitrine-v3] .v3-product-table thead th { padding-top: 0; color: var(--v3-muted); font-size: 0.625rem; }
[data-vitrine-v3] .v3-product-table td { color: #42536b; }
[data-vitrine-v3] .v3-product-table th:first-child { padding-left: 0; }
[data-vitrine-v3] .v3-site-letter { display: inline-flex; align-items: center; justify-content: center; width: 23px; height: 23px; margin-right: 5px; border: 1px solid #e1e6eb; border-radius: 4px; background: #f4f6f8; color: #526174; font-size: 0.625rem; }
[data-vitrine-v3] .v3-status { display: inline-flex; align-items: center; padding: 3px 6px; border: 1px solid transparent; border-radius: 4px; font-size: 0.5625rem; font-weight: 600; line-height: 1.45; white-space: nowrap; }
[data-vitrine-v3] .v3-status-neutral { border-color: #dce2e8; background: #f0f3f6; color: #45576b; }
[data-vitrine-v3] .v3-status-blue { border-color: #d3e0ff; background: #edf2ff; color: #1745b3; }
[data-vitrine-v3] .v3-status-amber { border-color: #efdfbf; background: #fcf5e9; color: #805312; }
[data-vitrine-v3] .v3-status-green { border-color: #bfe3cf; background: #eef8f2; color: #1f6b47; }
[data-vitrine-v3] .v3-product-callout { display: flex; align-items: flex-start; gap: 10px; margin-top: 19px; padding: 12px; border: 1px solid #dce6f7; border-radius: 6px; background: #f3f6fd; font-size: 0.6875rem; line-height: 1.65; }
[data-vitrine-v3] .v3-product-callout strong { font-size: 0.6875rem; }
[data-vitrine-v3] .v3-product-callout p { color: #4b5e78; }
[data-vitrine-v3] .v3-product-callout > .lucide { width: 17px; height: 17px; margin-top: 2px; color: var(--v3-blue); }
[data-vitrine-v3] .v3-product-callout .v3-icon-box { width: 30px; height: 30px; margin-top: 2px; border: 0; background: #e6edfc; border-radius: 6px; }
[data-vitrine-v3] .v3-product-callout .v3-icon-box .lucide { width: 17px; height: 17px; }
[data-vitrine-v3] .v3-product-note { margin-bottom: 12px; padding: 14px; border: 1px solid var(--v3-line); border-radius: 6px; }
[data-vitrine-v3] .v3-product-note :where(h3, h4) { margin-bottom: 8px; font-size: 0.8125rem; }
[data-vitrine-v3] .v3-product-note p { color: var(--v3-muted); font-size: 0.75rem; line-height: 1.75; }
[data-vitrine-v3] .v3-product-note > .v3-status { margin-bottom: 10px; }
[data-vitrine-v3] .v3-product-inline { display: flex; align-items: flex-start; gap: 7px; margin-top: 12px; color: #46618c; font-size: 0.625rem; }
[data-vitrine-v3] .v3-product-inline .lucide { width: 14px; height: 14px; }
[data-vitrine-v3] .v3-product-actions { display: grid; gap: 12px; }
[data-vitrine-v3] .v3-product-actions > li { display: flex; align-items: flex-start; gap: 9px; padding-bottom: 14px; border-bottom: 1px solid var(--v3-line); }
[data-vitrine-v3] .v3-product-actions > li > div { flex: 1 1 auto; }
[data-vitrine-v3] .v3-product-actions strong { display: block; font-size: 0.75rem; }
[data-vitrine-v3] .v3-product-actions p { margin-top: 5px; color: var(--v3-muted); font-size: 0.625rem; }
[data-vitrine-v3] .v3-product-actions .v3-status { margin-top: 2px; }
[data-vitrine-v3] .v3-task-marker { color: var(--v3-blue); }
[data-vitrine-v3] .v3-task-marker .lucide { width: 17px; height: 17px; }
[data-vitrine-v3] .v3-product-footnote { padding: 11px 16px; border-top: 1px solid var(--v3-line); background: #fafbfd; color: var(--v3-muted); font-size: 0.625rem; line-height: 1.65; }
[data-vitrine-v3] .v3-product-single-content { padding: 28px; }
[data-vitrine-v3] .v3-product-single-content .v3-product-table { min-width: 320px; font-size: 0.8125rem; }
[data-vitrine-v3] .v3-product-single-content .v3-product-table :where(th, td) { padding: 17px 12px; }
[data-vitrine-v3] .v3-product-single-content .v3-product-table thead th { background: #f7f9fb; padding-block: 12px; font-size: 0.6875rem; }
[data-vitrine-v3] .v3-product-single-content .v3-product-table tbody tr:last-child :where(th, td) { border-bottom: 0; }
[data-vitrine-v3] .v3-product-single-content .v3-product-callout { font-size: 0.75rem; }
[data-vitrine-v3] .v3-ai-disclosure { display: flex; align-items: flex-start; gap: 8px; margin-bottom: 16px; padding: 11px 12px; border: 1px solid light-dark(#dbdef0, #3c3f53); border-radius: 6px; background: light-dark(#f5f4fa, #131921); color: light-dark(#514a77, #c3bdf1); font-size: 0.6875rem; }
[data-vitrine-v3] .v3-ai-disclosure .lucide { width: 16px; height: 16px; }

[data-vitrine-v3] .v3-section { padding-block: 88px; }
[data-vitrine-v3] .v3-section-bottom { padding-bottom: 72px; }
[data-vitrine-v3] .v3-section-soft { background: light-dark(#eef1f2, #151b22); border-block: 1px solid var(--v3-line); }
[data-vitrine-v3] .v3-section-navy { background: var(--v3-navy); color: #f3f6fb; }
[data-vitrine-v3] .v3-section-heading { max-width: 680px; margin-bottom: 38px; }
[data-vitrine-v3] .v3-section-heading > p:not(.v3-eyebrow) { margin-top: 20px; color: var(--v3-muted); font-size: 0.9375rem; line-height: 1.8; }
[data-vitrine-v3] .v3-section-heading > .v3-text-link { margin-top: 16px; }
[data-vitrine-v3] .v3-section-heading-row { display: flex; justify-content: space-between; align-items: flex-end; gap: 44px; max-width: none; }
[data-vitrine-v3] .v3-section-heading-row > :first-child { flex: 1 1 auto; }
[data-vitrine-v3] .v3-section-heading-row > :last-child { flex: 0 1 370px; }
[data-vitrine-v3] .v3-section-heading-row > div > p:not(.v3-eyebrow) { color: var(--v3-muted); font-size: 0.9375rem; line-height: 1.8; }
[data-vitrine-v3] .v3-section-heading-row > div > .v3-text-link { margin-top: 12px; }
[data-vitrine-v3] .v3-section-heading-row > .v3-text-link { flex-basis: auto; white-space: nowrap; }
[data-vitrine-v3] .v3-solutions-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
[data-vitrine-v3] .v3-solution-card { display: flex; flex-direction: column; align-items: flex-start; padding: 27px; border: 1px solid var(--v3-line); border-radius: 8px; background: var(--v3-white); }
[data-vitrine-v3] .v3-solution-card:hover { border-color: light-dark(#94b0e9, #6d88be); }
[data-vitrine-v3] .v3-solution-card-top { display: flex; align-items: center; justify-content: space-between; width: 100%; margin-bottom: 24px; }
[data-vitrine-v3] .v3-solution-index { color: light-dark(#758399, #99a8bf); font-size: 0.6875rem; font-variant-numeric: tabular-nums; }
[data-vitrine-v3] .v3-solution-card h3 { font-size: 1.0625rem; }
[data-vitrine-v3] .v3-solution-card h3 a:hover { color: var(--v3-blue); text-decoration: underline; }
[data-vitrine-v3] .v3-solution-card > p { flex: 1; margin-top: 12px; margin-bottom: 24px; color: var(--v3-muted); font-size: 0.8125rem; line-height: 1.85; }
[data-vitrine-v3] .v3-solution-card > .v3-text-link { width: 100%; justify-content: space-between; padding-top: 13px; border-top: 1px solid var(--v3-line); font-size: 0.75rem; }
[data-vitrine-v3] .v3-feature-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: 28px; }
[data-vitrine-v3] .v3-feature { padding-top: 26px; border-top: 1px solid light-dark(#bfcbd7, #3a4957); }
[data-vitrine-v3] .v3-feature .v3-icon-box { margin-bottom: 23px; }
[data-vitrine-v3] .v3-feature h3 { margin-bottom: 12px; }
[data-vitrine-v3] .v3-feature p { color: var(--v3-muted); font-size: 0.875rem; line-height: 1.85; }
[data-vitrine-v3] .v3-feature-note { display: flex; align-items: flex-start; gap: 12px; margin-top: 36px; padding-top: 22px; border-top: 1px solid var(--v3-line); color: var(--v3-muted); font-size: 0.75rem; line-height: 1.9; }
[data-vitrine-v3] .v3-feature-note > .lucide { width: 17px; height: 17px; margin-top: 4px; }
[data-vitrine-v3] .v3-feature-note li + li { margin-top: 5px; }
[data-vitrine-v3] .v3-process-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 34px; }
[data-vitrine-v3] .v3-process-grid > li { padding-top: 25px; border-top: 1px solid light-dark(#becad5, #3b4956); }
[data-vitrine-v3] .v3-step-number { display: inline-block; margin-bottom: 24px; color: var(--v3-blue); font-size: 0.75rem; font-weight: 600; font-variant-numeric: tabular-nums; letter-spacing: 0.04em; }
[data-vitrine-v3] .v3-process-grid h3 { margin-bottom: 13px; }
[data-vitrine-v3] .v3-process-grid p { color: var(--v3-muted); font-size: 0.875rem; line-height: 1.9; }
[data-vitrine-v3] .v3-section-navy .v3-eyebrow, [data-vitrine-v3] .v3-section-navy .v3-step-number { color: #9ebfff; }
[data-vitrine-v3] .v3-section-navy .v3-section-heading > p, [data-vitrine-v3] .v3-section-navy .v3-process-grid p { color: #c0ccdb; }
[data-vitrine-v3] .v3-section-navy .v3-process-grid > li { border-top-color: #3a4c63; }
[data-vitrine-v3] .v3-process-bottom { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 42px; padding-top: 24px; border-top: 1px solid #3a4c63; color: #c0ccdb; font-size: 0.8125rem; }
[data-vitrine-v3] .v3-section-navy .v3-text-link { color: #bfD3ff; }
/* Pour aller plus loin : trois liens compacts au plus (fin de page allégée, recette du 27/10/2026). */
[data-vitrine-v3] .v3-liens-utiles { padding-block: 56px; border-top: 1px solid var(--v3-line); }
[data-vitrine-v3] .v3-liens-utiles-entete { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
[data-vitrine-v3] .v3-liens-utiles-entete h2 { font-size: 1.375rem; letter-spacing: -0.02em; }
[data-vitrine-v3] .v3-liens-utiles-liste { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
[data-vitrine-v3] .v3-liens-utiles-liste a { display: flex; align-items: center; gap: 14px; min-height: 64px; padding: 12px 16px; border: 1px solid var(--v3-line); border-radius: 10px; background: var(--v3-white); font-size: 0.9375rem; font-weight: 600; line-height: 1.4; transition: border-color 160ms ease, color 160ms ease; }
[data-vitrine-v3] .v3-liens-utiles-liste a:hover { border-color: var(--v3-blue); color: var(--v3-blue); }
[data-vitrine-v3] .v3-liens-utiles-liste .v3-icon-box { width: 38px; height: 38px; }
[data-vitrine-v3] .v3-liens-utiles-liste .v3-icon-box .lucide { width: 19px; height: 19px; }
[data-vitrine-v3] .v3-liens-utiles-fleche { width: 16px; height: 16px; margin-left: auto; color: var(--v3-muted); }
[data-vitrine-v3] .v3-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
[data-vitrine-v3] .v3-card-grid-single { grid-template-columns: 1fr; max-width: 780px; }
[data-vitrine-v3] .v3-page-card { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; padding: 26px; border: 1px solid var(--v3-line); border-radius: 8px; background: var(--v3-white); }
[data-vitrine-v3] .v3-page-card:hover { border-color: light-dark(#94b0e9, #6d88be); }
[data-vitrine-v3] .v3-page-card-top { display: flex; align-items: flex-start; gap: 14px; margin-bottom: 25px; }
[data-vitrine-v3] .v3-card-eyebrow { padding-top: 4px; color: var(--v3-muted); font-size: 0.625rem; font-weight: 500; line-height: 1.7; text-transform: uppercase; letter-spacing: 0.04em; }
[data-vitrine-v3] .v3-page-card h3 { font-size: 1.125rem; line-height: 1.5; }
[data-vitrine-v3] .v3-page-card h3 a:hover { color: var(--v3-blue); text-decoration: underline; }
[data-vitrine-v3] .v3-page-card > p { flex: 1; margin-top: 13px; margin-bottom: 24px; color: var(--v3-muted); font-size: 0.8125rem; line-height: 1.9; }
[data-vitrine-v3] .v3-page-card > .v3-text-link { width: 100%; justify-content: space-between; padding-top: 16px; border-top: 1px solid var(--v3-line); font-size: 0.8125rem; }
/* Page Solutions (29/10/2026) : trois familles, des cartes à la couleur de leur solution (filet haut et pastille
   d'icône) ; une famille vide après une recherche disparaît. */
[data-vitrine-v3] .v3-solutions-familles { display: grid; gap: 40px; }
[data-vitrine-v3] .v3-solutions-famille:not(:has([data-v3-filter-item]:not([hidden]))) { display: none; }
[data-vitrine-v3] .v3-solutions-famille-titre { display: flex; align-items: center; gap: 12px; margin: 0 0 16px; color: var(--v3-ink); font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
[data-vitrine-v3] .v3-solutions-famille-titre::after { flex: 1 1 auto; height: 1px; background: var(--v3-line); content: ''; }
[data-vitrine-v3] .v3-solutions-familles .v3-page-card { border-top: 3px solid var(--v3-brique); border-radius: 10px; transition: border-color 160ms ease, translate 200ms ease; }
[data-vitrine-v3] .v3-solutions-familles .v3-page-card:hover { border-color: var(--v3-brique-trait); border-top-color: var(--v3-brique); translate: 0 -2px; }
[data-vitrine-v3] .v3-solutions-familles .v3-page-card .v3-icon-box { width: 44px; height: 44px; border-color: var(--v3-brique-trait); background: var(--v3-brique-doux); color: var(--v3-brique); }
[data-vitrine-v3] .v3-solutions-familles .v3-page-card h3 { font-size: 1.25rem; letter-spacing: -0.02em; }
[data-vitrine-v3] .v3-solutions-familles .v3-page-card-top { margin-bottom: 18px; }
@media (prefers-reduced-motion: reduce) {
    [data-vitrine-v3] .v3-solutions-familles .v3-page-card:hover { translate: none; }
}
[data-vitrine-v3] .v3-cta-section { padding-top: 28px; }
[data-vitrine-v3] .v3-cta { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 60px; padding: 52px; border: 1px solid #2b3e58; border-radius: 10px; background: var(--v3-navy); color: #f4f7fc; }
[data-vitrine-v3] .v3-cta .v3-eyebrow { color: #a4c2ff; }
[data-vitrine-v3] .v3-cta h2 { max-width: 22ch; }
[data-vitrine-v3] .v3-cta p:not(.v3-eyebrow) { max-width: 58ch; margin-top: 18px; color: #c0ccdb; font-size: 0.875rem; line-height: 1.9; }
[data-vitrine-v3] .v3-cta-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 15px; }
[data-vitrine-v3] .v3-cta-actions .v3-text-link { color: #d0dfff; }

[data-vitrine-v3] .v3-faq-layout { display: grid; grid-template-columns: minmax(0, 0.7fr) minmax(0, 1fr); gap: 90px; }
[data-vitrine-v3] .v3-faq-list { min-width: 0; border-top: 1px solid light-dark(#c5d0da, #3a4753); }
[data-vitrine-v3] .v3-faq-item { border-bottom: 1px solid light-dark(#c5d0da, #3a4753); }
[data-vitrine-v3] .v3-faq-item summary { display: flex; align-items: flex-start; justify-content: space-between; gap: 22px; padding: 24px 3px; font-size: 0.9375rem; font-weight: 600; line-height: 1.65; }
[data-vitrine-v3] .v3-faq-item summary .lucide { width: 18px; height: 18px; margin-top: 3px; color: var(--v3-muted); }
[data-vitrine-v3] .v3-faq-item summary:hover { color: var(--v3-blue); }
[data-vitrine-v3] .v3-faq-item[open] summary .lucide { transform: rotate(45deg); }
[data-vitrine-v3] .v3-faq-answer { padding: 0 40px 25px 3px; color: var(--v3-muted); font-size: 0.875rem; line-height: 1.9; }
[data-vitrine-v3] .v3-faq-page-layout { display: grid; grid-template-columns: minmax(0, 280px) minmax(0, 1fr); align-items: start; gap: 80px; }
[data-vitrine-v3] .v3-faq-page-aside { padding: 28px; border: 1px solid var(--v3-line); border-radius: 8px; background: var(--v3-white); }
[data-vitrine-v3] .v3-faq-page-aside h2 { font-size: 1.25rem; line-height: 1.5; letter-spacing: -0.025em; }
[data-vitrine-v3] .v3-faq-page-aside p { margin-block: 18px; color: var(--v3-muted); font-size: 0.8125rem; line-height: 1.85; }
[data-vitrine-v3] .v3-faq-page-aside .v3-text-link { margin-top: 12px; font-size: 0.8125rem; }

[data-vitrine-v3] .v3-page-hero { padding-block: 52px 65px; }
[data-vitrine-v3] .v3-page-hero h1 { font-size: clamp(2.25rem, 4.1vw, 3.75rem); }
[data-vitrine-v3] .v3-page-hero-bordered { border-bottom: 1px solid var(--v3-line); }
[data-vitrine-v3] .v3-solution-hero .v3-hero-copy h1 { max-width: 18ch; }
[data-vitrine-v3] .v3-section-jump { display: flex; flex-wrap: wrap; gap: 8px 30px; padding-block: 14px; border-block: 1px solid var(--v3-line); }
[data-vitrine-v3] .v3-section-jump a { display: inline-flex; align-items: center; gap: 14px; min-height: 38px; font-size: 0.8125rem; font-weight: 500; }
[data-vitrine-v3] .v3-section-jump a:hover { color: var(--v3-blue); text-decoration: underline; }
[data-vitrine-v3] .v3-section-jump .lucide { width: 14px; height: 14px; }
[data-vitrine-v3] .v3-solution-editorial { max-width: 900px; margin-top: 64px; }
[data-vitrine-v3] .v3-scope-layout { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 80px; }
[data-vitrine-v3] .v3-scope-panels { display: grid; gap: 20px; }
[data-vitrine-v3] .v3-scope-panel { padding: 30px; border: 1px solid var(--v3-line); border-radius: 8px; background: var(--v3-white); }
[data-vitrine-v3] .v3-scope-panel-soft { background: light-dark(#f0f2f4, #141a22); }
[data-vitrine-v3] .v3-scope-panel :is(h2, h3) { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; font-size: 1rem; }
[data-vitrine-v3] .v3-scope-panel :is(h2, h3) .lucide { color: var(--v3-blue); }
[data-vitrine-v3] .v3-scope-panel li { display: flex; align-items: flex-start; gap: 12px; margin-top: 14px; color: var(--v3-muted); font-size: 0.875rem; line-height: 1.8; }
[data-vitrine-v3] .v3-scope-panel li .lucide { width: 17px; height: 17px; margin-top: 4px; color: light-dark(#285c47, #9dd3ba); }

[data-vitrine-v3] .v3-article-heading { max-width: 1000px; margin-inline: auto; }
[data-vitrine-v3] .v3-article-heading h1 { max-width: 24ch; }
[data-vitrine-v3] .v3-article-heading .v3-lead { max-width: 80ch; }
[data-vitrine-v3] .v3-toc { min-width: 0; }
[data-vitrine-v3] .v3-toc .v3-eyebrow { color: light-dark(#526174, #acbdd2); font-size: 0.6875rem; }
[data-vitrine-v3] .v3-toc :where(ol, ul) { border-left: 1px solid light-dark(#bfccd9, #394858); }
[data-vitrine-v3] .v3-toc li + li { margin-top: 4px; }
[data-vitrine-v3] .v3-toc li a { display: block; padding: 9px 15px; border-left: 2px solid transparent; margin-left: -1px; color: var(--v3-muted); font-size: 0.75rem; line-height: 1.75; }
[data-vitrine-v3] .v3-toc li a:hover, [data-vitrine-v3] .v3-toc li a[aria-current] { border-left-color: var(--v3-blue); color: var(--v3-blue); background: var(--v3-blue-soft); }
[data-vitrine-v3] .v3-toc-back { display: inline-flex; align-items: center; gap: 9px; margin-top: 18px; padding: 8px 0; color: var(--v3-blue); font-size: 0.75rem; }
[data-vitrine-v3] .v3-toc-back:hover { text-decoration: underline; }
[data-vitrine-v3] .v3-toc-back .lucide { width: 15px; height: 15px; }
[data-vitrine-v3] .v3-prose { min-width: 0; color: light-dark(#435367, #b3c6dd); font-size: 0.9375rem; line-height: 1.9; }
[data-vitrine-v3] .v3-prose-section { min-width: 0; }
[data-vitrine-v3] .v3-prose :where(h2, h3, h4) { color: var(--v3-ink); }
[data-vitrine-v3] .v3-prose h2 { margin-bottom: 22px; font-size: clamp(1.375rem, 2vw, 1.8rem); line-height: 1.4; letter-spacing: -0.03em; text-wrap: initial; }
[data-vitrine-v3] .v3-prose h3 { margin-bottom: 12px; }
[data-vitrine-v3] .v3-prose p + p { margin-top: 18px; }
[data-vitrine-v3] .v3-prose-section + .v3-prose-section { margin-top: 42px; padding-top: 42px; border-top: 1px solid var(--v3-line); }
[data-vitrine-v3] .v3-prose ul, [data-vitrine-v3] .v3-editorial-limits ul { margin-top: 18px; padding-left: 20px; list-style: disc; }
[data-vitrine-v3] .v3-prose li + li, [data-vitrine-v3] .v3-editorial-limits li + li { margin-top: 10px; }
[data-vitrine-v3] .v3-prose li::marker { color: #7892b2; }
[data-vitrine-v3] .v3-prose .v3-table-scroll { margin-block: 24px; background: var(--v3-white); }
[data-vitrine-v3] .v3-table { width: 100%; min-width: 520px; border-collapse: collapse; font-size: 0.8125rem; line-height: 1.8; }
[data-vitrine-v3] .v3-table :where(th, td) { padding: 16px 19px; border-bottom: 1px solid var(--v3-line); text-align: left; vertical-align: top; }
[data-vitrine-v3] .v3-table thead th { background: light-dark(#eef2f7, #141a22); color: light-dark(#344b68, #b1ccee); font-weight: 600; }
[data-vitrine-v3] .v3-table tbody th { width: 30%; color: var(--v3-ink); font-weight: 600; }
[data-vitrine-v3] .v3-table tbody tr:last-child :where(th, td) { border-bottom: 0; }
[data-vitrine-v3] .v3-prose .v3-section-links { display: flex; flex-wrap: wrap; gap: 8px 26px; padding: 0; margin-top: 24px; list-style: none; }
[data-vitrine-v3] .v3-prose .v3-section-links li { margin: 0; }
[data-vitrine-v3] .v3-editorial-features { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
[data-vitrine-v3] .v3-editorial-features .v3-icon-box { margin-bottom: 18px; }
[data-vitrine-v3] .v3-editorial-features h3 { font-size: 1rem; }
[data-vitrine-v3] .v3-editorial-features p { font-size: 0.875rem; }
[data-vitrine-v3] .v3-editorial-limits { margin-top: 36px; padding: 26px; border: 1px solid light-dark(#d6e0ed, #364250); border-radius: 8px; background: light-dark(#edf2f9, #141a22); }
[data-vitrine-v3] .v3-editorial-limits h2 { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 0; font-size: 1.125rem; line-height: 1.5; }
[data-vitrine-v3] .v3-editorial-limits { background: light-dark(#f0f2f4, #141a22); border-color: light-dark(#d7dee5, #3a424a); }
/* « Bon à savoir » (components/_bon_a_savoir.html.twig) : dans un panneau de périmètre, l'encadré prend le panneau pour cadre. */
[data-vitrine-v3] .v3-bon-a-savoir :is(h2, h3) > .lucide { width: 18px; height: 18px; flex: 0 0 auto; margin-top: 3px; color: var(--v3-blue); }
[data-vitrine-v3] .v3-scope-panel .v3-bon-a-savoir { margin-top: 0; padding: 0; border: 0; background: transparent; }
[data-vitrine-v3] .v3-scope-panel .v3-bon-a-savoir :is(h2, h3) { margin-bottom: 20px; }
[data-vitrine-v3] .v3-editorial-limits li { color: var(--v3-muted); font-size: 0.875rem; line-height: 1.85; }
[data-vitrine-v3] .v3-editorial-children { margin-top: 36px; }
[data-vitrine-v3] .v3-editorial-children ul { padding: 0; list-style: none; }
[data-vitrine-v3] .v3-sources { margin-top: 44px; padding-top: 28px; border-top: 1px solid var(--v3-line); }
[data-vitrine-v3] .v3-sources h2 { margin-bottom: 12px; font-size: 1.125rem; letter-spacing: -0.02em; }
[data-vitrine-v3] .v3-sources p { color: var(--v3-muted); font-size: 0.8125rem; }
[data-vitrine-v3] .v3-sources ul { display: grid; gap: 13px; padding: 0; margin-top: 20px; list-style: none; }
[data-vitrine-v3] .v3-sources li { margin: 0; }
[data-vitrine-v3] .v3-sources a { color: var(--v3-blue); font-size: 0.75rem; text-decoration: underline; line-height: 1.8; }
[data-vitrine-v3] .v3-sources a .lucide { width: 13px; height: 13px; margin-left: 5px; }
[data-vitrine-v3] .v3-editorial-notice { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 28px; padding: 19px 22px; border-left: 3px solid light-dark(#547fbf, #6c99da); background: light-dark(#edf2f9, #141a22); color: light-dark(#435a76, #a8c2e3); font-size: 0.8125rem; line-height: 1.8; }
[data-vitrine-v3] .v3-editorial-notice .lucide { margin-top: 3px; }
[data-vitrine-v3] .v3-collection-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 50px; }
[data-vitrine-v3] .v3-collection-heading > div { max-width: 790px; }
[data-vitrine-v3] .v3-collection-heading > .v3-button { flex: 0 0 auto; }

[data-vitrine-v3] .v3-filter-controls { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; margin-bottom: 34px; }
[data-vitrine-v3] .v3-search-field { width: min(600px, 100%); }
[data-vitrine-v3] .v3-search-field > label { display: block; margin-bottom: 10px; font-size: 0.8125rem; font-weight: 600; }
[data-vitrine-v3] .v3-search-input { display: flex; align-items: center; gap: 10px; min-height: 50px; padding: 0 5px 0 14px; border: 1px solid light-dark(#aebdcd, #798796); border-radius: 6px; background: var(--v3-white); }
[data-vitrine-v3] .v3-search-input > .lucide { width: 19px; height: 19px; color: light-dark(#61748d, #9db2cd); }
[data-vitrine-v3] .v3-search-input input { min-width: 0; width: 100%; min-height: 46px; padding: 10px 0; border: 0; background: transparent; font-size: 0.875rem; }
[data-vitrine-v3] .v3-search-input input::-webkit-search-cancel-button { -webkit-appearance: none; }
[data-vitrine-v3] .v3-search-input:focus-within { outline: 3px solid light-dark(#3067ed, #7198eb); outline-offset: 3px; border-color: var(--v3-blue); }
[data-vitrine-v3] .v3-search-input input:focus-visible { outline: none; }
[data-vitrine-v3] .v3-search-clear { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 42px; height: 42px; border: 0; border-radius: 4px; background: transparent; color: light-dark(#526174, #acbdd2); }
[data-vitrine-v3] .v3-search-clear:hover { background: var(--v3-blue-soft); color: var(--v3-blue); }
[data-vitrine-v3] .v3-search-clear:disabled { opacity: 0.35; }
[data-vitrine-v3] .v3-filter-status { padding-bottom: 12px; color: var(--v3-muted); font-size: 0.75rem; }
[data-vitrine-v3] .v3-filter-empty { padding: 48px 28px; border: 1px solid var(--v3-line); border-radius: 8px; background: var(--v3-white); text-align: center; }
[data-vitrine-v3] .v3-filter-empty > .lucide { width: 30px; height: 30px; margin-bottom: 22px; color: light-dark(#667e9d, #93accd); }
[data-vitrine-v3] .v3-filter-empty h2 { font-size: 1.375rem; letter-spacing: -0.025em; }
[data-vitrine-v3] .v3-filter-empty p { max-width: 54ch; margin: 16px auto 24px; color: var(--v3-muted); font-size: 0.875rem; }
[data-vitrine-v3] .v3-glossary-layout { display: grid; grid-template-columns: minmax(0, 240px) minmax(0, 1fr); align-items: start; gap: 70px; }
[data-vitrine-v3] .v3-glossary-layout > .v3-toc { position: sticky; top: 110px; max-height: calc(100dvh - 145px); overflow-y: auto; padding: 4px; }
[data-vitrine-v3] .v3-glossary-list .v3-prose-section { padding: 30px; border: 1px solid var(--v3-line); border-radius: 8px; background: var(--v3-white); }
[data-vitrine-v3] .v3-glossary-list .v3-prose-section + .v3-prose-section { margin-top: 18px; }
[data-vitrine-v3] .v3-glossary-list h2 { font-size: 1.25rem; }

[data-vitrine-v3] .v3-contact-section { padding-top: 46px; }
/* Contact (chantier 5 de l'audit du 28/10/2026) : titre, formulaire puis le reste ; en grand écran, le formulaire occupe
   la colonne de droite et la seconde ligne absorbe sa hauteur, sans écart sous le titre. */
[data-vitrine-v3] .v3-contact-layout { display: grid; grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr); grid-template-rows: auto 1fr; grid-template-areas: "tete formulaire" "suite formulaire"; align-items: start; gap: 0 70px; }
[data-vitrine-v3] .v3-contact-tete { grid-area: tete; padding-top: 10px; }
[data-vitrine-v3] .v3-contact-tete h1 { font-size: clamp(2.25rem, 3.8vw, 3.5rem); }
[data-vitrine-v3] .v3-contact-tete .v3-lead { font-size: 1rem; }
[data-vitrine-v3] .v3-contact-layout > .v3-form-card { grid-area: formulaire; }
[data-vitrine-v3] .v3-contact-suite { grid-area: suite; }
/* Solution d'origine de la demande (chantier 4), dans sa couleur. */
[data-vitrine-v3] .v3-contact-solution { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 16px; padding: 5px 10px; border: 1px solid var(--v3-brique-trait); border-radius: 6px; background: var(--v3-brique-doux); color: var(--v3-brique-texte); font-size: 0.75rem; font-weight: 650; line-height: 1.5; }
[data-vitrine-v3] .v3-contact-solution .lucide { width: 15px; height: 15px; }
[data-vitrine-v3] .v3-contact-coordonnees { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 8px; color: var(--v3-muted); font-size: 0.8125rem; line-height: 1.7; }
[data-vitrine-v3] .v3-contact-coordonnees .lucide { flex: 0 0 auto; width: 16px; height: 16px; margin-top: 3px; color: var(--v3-blue); }
[data-vitrine-v3] .v3-contact-coordonnees a { color: var(--v3-blue); font-weight: 600; text-decoration: underline; }
[data-vitrine-v3] .v3-contact-agenda { margin-top: 35px; padding-top: 29px; border-top: 1px solid var(--v3-line); }
[data-vitrine-v3] .v3-contact-agenda h2 { max-width: 30ch; margin-bottom: 27px; font-size: 1.25rem; line-height: 1.5; letter-spacing: -0.025em; }
[data-vitrine-v3] .v3-contact-agenda ol { display: grid; gap: 24px; }
[data-vitrine-v3] .v3-contact-agenda li { display: flex; align-items: flex-start; gap: 18px; }
[data-vitrine-v3] .v3-contact-agenda li > span { display: flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 33px; height: 33px; border: 1px solid light-dark(#c9d5e7, #374559); border-radius: 6px; color: var(--v3-blue); font-size: 0.625rem; font-weight: 600; }
[data-vitrine-v3] .v3-contact-agenda strong { font-size: 0.875rem; }
[data-vitrine-v3] .v3-contact-agenda p { margin-top: 5px; color: var(--v3-muted); font-size: 0.8125rem; line-height: 1.85; }
[data-vitrine-v3] .v3-form-card { min-width: 0; padding: 34px; border: 1px solid light-dark(#cdd7e2, #394551); border-radius: 10px; background: var(--v3-white); }
[data-vitrine-v3] .v3-form-card-heading { margin-bottom: 24px; }
[data-vitrine-v3] .v3-form-card-heading h2 { font-size: 1.4375rem; line-height: 1.4; letter-spacing: -0.03em; }
[data-vitrine-v3] .v3-form-card-heading > span { display: block; margin-top: 7px; color: var(--v3-muted); font-size: 0.75rem; }
[data-vitrine-v3] .v3-preview-notice { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 26px; padding: 16px; border: 1px solid light-dark(#d8e3f4, #344053); border-radius: 6px; background: light-dark(#f0f5fc, #131921); color: light-dark(#405a7e, #a4c2eb); font-size: 0.75rem; line-height: 1.85; }
[data-vitrine-v3] .v3-preview-notice > .lucide { width: 18px; height: 18px; margin-top: 2px; }
[data-vitrine-v3] .v3-form-required { margin-bottom: 22px; color: var(--v3-muted); font-size: 0.6875rem; line-height: 1.8; }
[data-vitrine-v3] .v3-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 18px; }
[data-vitrine-v3] .v3-field { min-width: 0; }
[data-vitrine-v3] .v3-field-full { grid-column: 1 / -1; }
[data-vitrine-v3] .v3-field > label { display: block; margin-bottom: 8px; font-size: 0.75rem; font-weight: 600; line-height: 1.7; }
[data-vitrine-v3] .v3-field > label > span { color: var(--v3-muted); font-size: 0.625rem; font-weight: 400; }
[data-vitrine-v3] .v3-field :where(input:not([type="checkbox"]), select, textarea) { display: block; width: 100%; min-height: 46px; padding: 11px 12px; border: 1px solid light-dark(#aebdcd, #798796); border-radius: 6px; background: var(--v3-white); font-size: 0.875rem; line-height: 1.55; }
[data-vitrine-v3] .v3-field select { padding-right: 27px; cursor: pointer; }
[data-vitrine-v3] .v3-field textarea { min-height: 132px; resize: vertical; }
[data-vitrine-v3] :where(input, textarea)::placeholder { color: light-dark(#65768c, #9eb0c8); opacity: 1; }
[data-vitrine-v3] .v3-field :where(input, select, textarea):focus-visible { outline-offset: 2px; border-color: var(--v3-blue); }
[data-vitrine-v3] .v3-field [aria-invalid="true"], [data-vitrine-v3] .v3-checkbox input[aria-invalid="true"] { border-color: light-dark(#b43b36, #e37b72); outline-color: light-dark(#b43b36, #e37b72); }
[data-vitrine-v3] .v3-field-hint { margin-top: 8px; color: var(--v3-muted); font-size: 0.6875rem; line-height: 1.75; }
[data-vitrine-v3] .v3-field-help-row { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; }
[data-vitrine-v3] .v3-character-count { flex: 0 0 auto; color: var(--v3-muted); font-size: 0.625rem; font-variant-numeric: tabular-nums; }
[data-vitrine-v3] .v3-field-error { margin-top: 8px; color: light-dark(#a32b29, #f9a299); font-size: 0.75rem; font-weight: 500; line-height: 1.7; }
[data-vitrine-v3] .v3-form-privacy { margin-block: 24px; color: var(--v3-muted); font-size: 0.6875rem; line-height: 1.85; }
[data-vitrine-v3] .v3-form-privacy a { color: var(--v3-blue); text-decoration: underline; }
[data-vitrine-v3] .v3-form-actions { display: flex; flex-wrap: wrap; gap: 10px; }
[data-vitrine-v3] .v3-form-actions > [type="submit"] { flex: 1 1 auto; }
[data-vitrine-v3] .v3-form-actions > [type="submit"]:disabled { background: #3153a5; border-color: light-dark(#3153a5, #7ba1f5); cursor: wait; }
/* Formulaires (retour de Paul du 29/10/2026) : champs plus nets, anneau de focus, listes déroulantes dessinées ; dans les
   navigateurs qui le permettent (appearance: base-select), la liste ouverte suit la charte au lieu du menu du système. */
[data-vitrine-v3] .v3-field :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea) { border-color: light-dark(#c9d4e0, #4a5866); border-radius: 8px; transition: border-color 150ms ease, box-shadow 150ms ease; }
[data-vitrine-v3] .v3-field :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea):hover { border-color: light-dark(#93a7bd, #6e7f91); }
[data-vitrine-v3] .v3-field :where(input, select, textarea):focus-visible { outline: none; border-color: var(--v3-blue); box-shadow: 0 0 0 3px light-dark(#d6e2ff, #23345c); }
[data-vitrine-v3] .v3-field select { appearance: none; padding-right: 42px; background: var(--v3-white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237b8ca1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center / 16px 16px; }
@supports (appearance: base-select) {
    [data-vitrine-v3] .v3-field select,
    [data-vitrine-v3] .v3-field select::picker(select) { appearance: base-select; }
    [data-vitrine-v3] .v3-field select { display: flex; align-items: center; }
    [data-vitrine-v3] .v3-field select::picker-icon { display: none; }
    [data-vitrine-v3] .v3-field select:open { border-color: var(--v3-blue); box-shadow: 0 0 0 3px light-dark(#d6e2ff, #23345c); }
    [data-vitrine-v3] .v3-field select::picker(select) { margin-block: 6px; padding: 6px; border: 1px solid light-dark(#d7dfe9, #39424d); border-radius: 10px; background: var(--v3-white); box-shadow: 0 16px 40px light-dark(#12243a1f, #0000008c); }
    [data-vitrine-v3] .v3-field select option { gap: 10px; padding: 9px 12px; border-radius: 6px; color: var(--v3-ink); font-size: 0.875rem; cursor: pointer; }
    [data-vitrine-v3] .v3-field select option:is(:hover, :focus-visible) { outline: none; background: var(--v3-blue-soft); color: var(--v3-blue); }
    [data-vitrine-v3] .v3-field select option:checked { font-weight: 650; }
    [data-vitrine-v3] .v3-field select option::checkmark { order: 1; margin-left: auto; color: var(--v3-blue); }
}
[data-vitrine-v3] .v3-form-card-heading p { margin-top: 6px; color: var(--v3-muted); font-size: 0.875rem; }
/* « Votre demande » : quatre choix directs, l'intention avant l'identité. */
[data-vitrine-v3] .v3-choix-demande { margin: 0; padding: 0; border: 0; }
[data-vitrine-v3] .v3-choix-demande > legend { display: block; margin-bottom: 8px; padding: 0; font-size: 0.75rem; font-weight: 600; line-height: 1.7; }
[data-vitrine-v3] .v3-choix { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
[data-vitrine-v3] .v3-choix-option { position: relative; display: flex; align-items: center; gap: 8px; min-height: 46px; padding: 10px 12px; border: 1px solid light-dark(#c9d4e0, #4a5866); border-radius: 8px; color: var(--v3-ink); font-size: 0.8125rem; font-weight: 600; cursor: pointer; transition: border-color 150ms ease, background-color 150ms ease, color 150ms ease; }
[data-vitrine-v3] .v3-choix-option input { position: absolute; inset: 0; margin: 0; opacity: 0; cursor: pointer; }
[data-vitrine-v3] .v3-choix-option .lucide { flex: 0 0 auto; width: 17px; height: 17px; color: var(--v3-muted); transition: color 150ms ease; }
[data-vitrine-v3] .v3-choix-option:hover { border-color: light-dark(#93a7bd, #6e7f91); }
[data-vitrine-v3] .v3-choix-option:has(input:checked) { border-color: var(--v3-blue); background: var(--v3-blue-soft); color: var(--v3-blue); }
[data-vitrine-v3] .v3-choix-option:has(input:checked) .lucide { color: var(--v3-blue); }
[data-vitrine-v3] .v3-choix-option:has(input:focus-visible) { box-shadow: 0 0 0 3px light-dark(#d6e2ff, #23345c); }
/* Réassurance sous le bouton : trois points (chantier 5). */
[data-vitrine-v3] .v3-form-rassurance { display: grid; gap: 6px; margin-top: 16px; color: var(--v3-muted); font-size: 0.75rem; line-height: 1.6; }
[data-vitrine-v3] .v3-form-rassurance li { display: flex; align-items: flex-start; gap: 8px; }
[data-vitrine-v3] .v3-form-rassurance .lucide { flex: 0 0 auto; width: 15px; height: 15px; margin-top: 2px; color: light-dark(#1f7a52, #76cb9e); }
[data-vitrine-v3] .v3-form-rassurance a { color: var(--v3-blue); text-decoration: underline; }
@media (max-width: 47.999rem) {
    [data-vitrine-v3] .v3-choix { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
[data-vitrine-v3] .v3-submit-loader { width: 22px; height: 22px; border-radius: 4px; background: light-dark(white, #1b2129); }
[data-vitrine-v3] .v3-form-summary { margin-bottom: 24px; padding: 20px; border: 1px solid light-dark(#c76a63, #d3756e); border-radius: 6px; background: light-dark(#fff3f1, #311e1b); color: light-dark(#8b2926, #fdada5); }
[data-vitrine-v3] .v3-form-summary h2 { margin-bottom: 10px; color: light-dark(#8b2926, #fdada5); font-size: 1rem; line-height: 1.5; letter-spacing: -0.01em; }
[data-vitrine-v3] .v3-form-summary p { font-size: 0.8125rem; line-height: 1.75; }
[data-vitrine-v3] .v3-form-summary ul { margin-top: 14px; padding-left: 18px; list-style: disc; }
[data-vitrine-v3] .v3-form-summary li { margin-top: 7px; font-size: 0.75rem; line-height: 1.75; }
[data-vitrine-v3] .v3-form-summary a { text-decoration: underline; }
[data-vitrine-v3] .v3-form-summary:focus { outline: 3px solid light-dark(#b43b36, #e37b72); outline-offset: 4px; }
[data-vitrine-v3] .v3-form-feedback { display: flex; gap: 12px; margin-bottom: 24px; padding: 20px; border: 1px solid light-dark(#80b29a, #679881); border-radius: 6px; background: light-dark(#edf7f1, #17291f); color: light-dark(#20563e, #a0d8bb); }
[data-vitrine-v3] .v3-form-feedback > .lucide { margin-top: 3px; }
[data-vitrine-v3] .v3-form-feedback strong { font-size: 0.875rem; }
[data-vitrine-v3] .v3-form-feedback p { margin-top: 5px; font-size: 0.8125rem; line-height: 1.8; }
[data-vitrine-v3] .v3-form-feedback:focus { outline: 3px solid light-dark(#34805c, #64ae88); outline-offset: 4px; }
/* Champ piège (formulaires) : hors écran, jamais masqué par display, pour qu’un robot le voie et le remplisse. */
[data-vitrine-v3] .v3-champ-piege { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
[data-vitrine-v3] .v3-checkbox { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; }
[data-vitrine-v3] .v3-checkbox input { flex: 0 0 auto; width: 18px; height: 18px; margin-top: 3px; border: 1px solid light-dark(#9aaec5, #798ca2); border-radius: 3px; accent-color: var(--v3-blue); }
[data-vitrine-v3] .v3-checkbox > span { color: var(--v3-ink); font-size: 0.75rem; line-height: 1.85; }
[data-vitrine-v3] .v3-consent-field { margin-top: 24px; }
[data-vitrine-v3] .v3-field > .v3-checkbox { display: flex; }
[data-vitrine-v3] .v3-field > .v3-checkbox > span { color: var(--v3-ink); font-size: 0.75rem; font-weight: 400; }
[data-vitrine-v3] .v3-optional { color: var(--v3-muted); }
[data-vitrine-v3] .v3-consent-field .v3-field-hint { margin-left: 28px; }

[data-vitrine-v3] .v3-lead-resource-layout { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); align-items: start; gap: 80px; }
[data-vitrine-v3] .v3-lead-resource-layout h1 { font-size: clamp(2.25rem, 3.7vw, 3.5rem); }
[data-vitrine-v3] .v3-lead-resource-layout > .v3-form-card { margin-top: 8px; }
[data-vitrine-v3] .v3-resource-cover { position: relative; display: flex; max-width: 440px; margin-top: 35px; border: 1px solid #334b69; border-radius: 6px 10px 10px 6px; background: var(--v3-navy); color: white; box-shadow: 8px 8px 0 light-dark(#dce3ed, #0b121b); }
[data-vitrine-v3] .v3-resource-cover-spine { width: 14px; flex: 0 0 auto; border-right: 1px solid light-dark(#557193, #819fc3); background: #254366; border-radius: 6px 0 0 6px; }
[data-vitrine-v3] .v3-resource-cover-content { display: flex; flex-direction: column; align-items: flex-start; width: 100%; padding: 30px; }
[data-vitrine-v3] .v3-resource-cover .v3-brand { margin-bottom: 40px; color: white; font-size: 1.125rem; }
[data-vitrine-v3] .v3-resource-cover-type { margin-bottom: 13px; color: #afcaff; font-size: 0.6875rem; text-transform: uppercase; letter-spacing: 0.07em; }
[data-vitrine-v3] .v3-resource-cover h2 { font-size: 1.75rem; line-height: 1.35; letter-spacing: -0.035em; }
[data-vitrine-v3] .v3-resource-cover p { margin-top: 17px; color: #bdcde0; font-size: 0.75rem; line-height: 1.85; }
[data-vitrine-v3] .v3-resource-cover-bottom { display: flex; align-items: center; justify-content: space-between; width: 100%; margin-top: 35px; padding-top: 16px; border-top: 1px solid #3f5672; color: #c6d6eb; font-size: 0.6875rem; }
[data-vitrine-v3] .v3-resource-form-note { display: flex; align-items: flex-start; gap: 12px; margin-top: 25px; padding-top: 22px; border-top: 1px solid var(--v3-line); color: var(--v3-muted); font-size: 0.75rem; line-height: 1.85; }
[data-vitrine-v3] .v3-resource-form-note .lucide { color: var(--v3-blue); margin-top: 2px; }
[data-vitrine-v3] .v3-resource-form-note a { color: var(--v3-blue); text-decoration: underline; }

[data-vitrine-v3] .v3-pricing-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 0.75fr); align-items: center; gap: 100px; }
[data-vitrine-v3] .v3-pricing-heading h1 { max-width: 17ch; }
[data-vitrine-v3] .v3-pricing-heading .v3-button { margin-top: 30px; }
[data-vitrine-v3] .v3-pricing-principle { padding: 30px; border: 1px solid light-dark(#cbd6e4, #384555); border-radius: 8px; background: var(--v3-white); }
[data-vitrine-v3] .v3-pricing-principle > .v3-icon-box { margin-bottom: 24px; }
[data-vitrine-v3] .v3-pricing-principle .v3-eyebrow { font-size: 0.625rem; margin-bottom: 11px; }
[data-vitrine-v3] .v3-pricing-principle h2 { font-size: 2.5rem; }
[data-vitrine-v3] .v3-pricing-principle p:not(.v3-eyebrow) { margin-top: 17px; color: var(--v3-muted); font-size: 0.875rem; line-height: 1.85; }
[data-vitrine-v3] .v3-pricing-principle ul { margin-top: 23px; padding-top: 20px; border-top: 1px solid var(--v3-line); }
[data-vitrine-v3] .v3-pricing-principle li { display: flex; align-items: flex-start; gap: 10px; margin-top: 13px; font-size: 0.8125rem; }
[data-vitrine-v3] .v3-pricing-principle li .lucide { width: 17px; height: 17px; margin-top: 2px; color: var(--v3-blue); }
[data-vitrine-v3] .v3-quote-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 340px); align-items: start; gap: 50px; }
[data-vitrine-v3] .v3-quote-group { padding-block: 27px; border-top: 1px solid var(--v3-line); }
[data-vitrine-v3] .v3-quote-group h3 { display: flex; align-items: baseline; gap: 14px; margin-bottom: 20px; font-size: 1rem; }
[data-vitrine-v3] .v3-quote-group h3 > span { color: var(--v3-blue); font-size: 0.6875rem; letter-spacing: 0.02em; }
[data-vitrine-v3] .v3-quote-options { display: flex; flex-wrap: wrap; gap: 10px; }
[data-vitrine-v3] .v3-quote-options a { display: inline-flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; padding: 11px 14px; border: 1px solid light-dark(#bbc8d9, #3a495d); border-radius: 6px; background: var(--v3-white); color: light-dark(#3a4f68, #b1c9e7); font-size: 0.8125rem; line-height: 1.6; }
[data-vitrine-v3] .v3-quote-options a > .lucide:last-child { width: 15px; height: 15px; visibility: hidden; }
[data-vitrine-v3] .v3-quote-options a:hover { border-color: var(--v3-blue); color: var(--v3-blue); }
[data-vitrine-v3] .v3-quote-options a[aria-current] { border-color: var(--v3-blue); background: var(--v3-blue-soft); color: var(--v3-blue); box-shadow: inset 0 0 0 1px var(--v3-blue); }
[data-vitrine-v3] .v3-quote-options a[aria-current] > .lucide:last-child { visibility: visible; }
[data-vitrine-v3] .v3-quote-options-modules { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
[data-vitrine-v3] .v3-quote-options-modules a { justify-content: flex-start; min-width: 0; }
[data-vitrine-v3] .v3-quote-options-modules a > .lucide:first-child { width: 17px; height: 17px; }
[data-vitrine-v3] .v3-quote-options-modules a > .lucide:last-child { margin-left: auto; }
[data-vitrine-v3] .v3-quote-group > .v3-field-hint { margin-top: 14px; }
[data-vitrine-v3] .v3-quote-summary { position: sticky; top: 112px; padding: 28px; border: 1px solid light-dark(#cbd6e4, #384555); border-radius: 8px; background: var(--v3-white); }
[data-vitrine-v3] .v3-quote-summary h3 { margin-bottom: 25px; font-size: 1.375rem; }
[data-vitrine-v3] .v3-quote-summary .v3-eyebrow { font-size: 0.625rem; margin-bottom: 10px; }
[data-vitrine-v3] .v3-quote-summary dl > div { padding-block: 17px; border-top: 1px solid var(--v3-line); }
[data-vitrine-v3] .v3-quote-summary dt { color: var(--v3-muted); font-size: 0.6875rem; }
[data-vitrine-v3] .v3-quote-summary dd { margin-top: 6px; font-size: 0.9375rem; font-weight: 600; }
[data-vitrine-v3] .v3-quote-status { margin-top: 14px; padding: 14px; border-radius: 6px; background: light-dark(#f2f5fa, #131921); color: light-dark(#52647b, #a7bbd5); font-size: 0.75rem; line-height: 1.8; }
[data-vitrine-v3] .v3-quote-summary .v3-button { width: 100%; margin-top: 23px; font-size: 0.8125rem; }
[data-vitrine-v3] .v3-quote-summary .v3-field-hint { margin-top: 14px; }

[data-vitrine-v3] .v3-status-page { min-height: 65vh; }
[data-vitrine-v3] .v3-status-page-card { max-width: 760px; margin-inline: auto; padding: 45px; border: 1px solid #cbd6e4; border-radius: 10px; background: var(--v3-white); }
[data-vitrine-v3] .v3-status-page-icon { display: inline-flex; align-items: center; justify-content: center; width: 58px; height: 58px; margin-bottom: 28px; border: 1px solid #d2def3; border-radius: 10px; background: var(--v3-blue-soft); color: var(--v3-blue); }
[data-vitrine-v3] .v3-status-page-icon .lucide { width: 27px; height: 27px; }
[data-vitrine-v3] .v3-status-page h1 { font-size: clamp(2rem, 3vw, 2.75rem); }
[data-vitrine-v3] .v3-status-page-card > p:not(.v3-eyebrow) { margin-top: 20px; color: var(--v3-muted); }
[data-vitrine-v3] .v3-status-page-card .v3-preview-notice { margin-top: 26px; }
[data-vitrine-v3] .v3-status-page-content { max-width: 760px; margin: 50px auto 0; }

[data-vitrine-v3] .v3-footer { padding-top: 64px; border-top: 1px solid var(--v3-line); background: light-dark(#eef1f2, #151b22); }
[data-vitrine-v3] .v3-footer-top { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 40px; padding-bottom: 50px; }
[data-vitrine-v3] .v3-footer-about { max-width: 290px; }
[data-vitrine-v3] .v3-footer-about > p { margin-top: 22px; color: var(--v3-muted); font-size: 0.8125rem; line-height: 1.9; }
[data-vitrine-v3] .v3-footer-contact { display: inline-flex; align-items: center; gap: 9px; margin-top: 25px; color: var(--v3-blue); font-size: 0.8125rem; font-weight: 600; }
[data-vitrine-v3] .v3-footer-contact:hover { text-decoration: underline; }
[data-vitrine-v3] .v3-footer-contact .lucide { width: 17px; height: 17px; }
[data-vitrine-v3] .v3-footer-preview { display: block; margin-top: 10px; color: var(--v3-muted); font-size: 0.625rem; }
[data-vitrine-v3] .v3-footer-top nav h2 { margin-bottom: 20px; font-size: 0.8125rem; font-weight: 650; letter-spacing: 0; }
[data-vitrine-v3] .v3-footer-top nav ul { display: grid; gap: 7px; }
[data-vitrine-v3] .v3-footer-top nav a { display: inline-block; padding-block: 3px; color: var(--v3-muted); font-size: 0.75rem; line-height: 1.7; }
[data-vitrine-v3] .v3-footer-top nav a:hover { color: var(--v3-blue); text-decoration: underline; }
[data-vitrine-v3] .v3-footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-block: 23px; border-top: 1px solid light-dark(#cfd8e0, #3a454e); color: var(--v3-muted); font-size: 0.625rem; }
[data-vitrine-v3] .v3-footer-bottom nav ul { display: flex; flex-wrap: wrap; gap: 20px; }
[data-vitrine-v3] .v3-footer-bottom a { display: inline-flex; align-items: center; min-height: 32px; }
[data-vitrine-v3] .v3-footer-bottom a:hover { color: var(--v3-blue); text-decoration: underline; }
[data-vitrine-v3] .v3-back-top { gap: 9px; white-space: nowrap; }
[data-vitrine-v3] .v3-back-top .lucide { width: 14px; height: 14px; }

@media (min-width: 1440px) {
    [data-vitrine-v3] .v3-header-inner { gap: 45px; }
    [data-vitrine-v3] .v3-nav-primary { gap: 6px; }
    [data-vitrine-v3] .v3-nav-disclosure > summary, [data-vitrine-v3] .v3-nav-link { font-size: 0.875rem; }
}

@media (max-width: 1150px) {
    [data-vitrine-v3] .v3-header-inner { gap: 18px; }
    [data-vitrine-v3] .v3-nav-actions { gap: 10px; }
    [data-vitrine-v3] .v3-nav-disclosure > summary, [data-vitrine-v3] .v3-nav-link { padding-inline: 6px; }
    [data-vitrine-v3] .v3-hero-grid { gap: 30px; }
    [data-vitrine-v3] .v3-hero-copy .v3-button-row { gap: 10px; }
    [data-vitrine-v3] .v3-hero-copy .v3-button { padding-inline: 14px; font-size: 0.8125rem; }
    [data-vitrine-v3] .v3-contact-layout { column-gap: 42px; }
    [data-vitrine-v3] .v3-lead-resource-layout { gap: 42px; }
    [data-vitrine-v3] .v3-faq-layout, [data-vitrine-v3] .v3-faq-page-layout, [data-vitrine-v3] .v3-scope-layout { gap: 48px; }
    [data-vitrine-v3] .v3-pricing-heading { gap: 55px; }
}

@media (max-width: 63.999rem) {
    html[data-v3-navigation-pending] [data-vitrine-v3]:not([data-v3-enhanced]) [data-v3-navigation] { display: none; }
    [data-vitrine-v3] .v3-container { width: calc(100% - 48px); }
    [data-vitrine-v3] .v3-header { position: static; }
    [data-vitrine-v3][data-v3-enhanced] .v3-header { position: sticky; }
    [data-vitrine-v3] .v3-header { padding-top: 8px; }
    [data-vitrine-v3] .v3-header-inner { display: grid; grid-template-columns: 1fr auto auto; gap: 0 8px; min-height: 58px; padding: 0 8px 0 14px; }
    [data-vitrine-v3] .v3-header .v3-brand { justify-self: start; margin-block: 13px; font-size: 1.375rem; }
    [data-vitrine-v3] .v3-header-demo { display: inline-flex; grid-row: 1; grid-column: 2; align-self: center; min-height: 44px; padding-inline: 16px; }
    /* Menu ouvert : le panneau porte « Demander une démo », le bouton compact s'efface sans décaler l'en-tête. */
    [data-vitrine-v3] .v3-header-inner:has([data-v3-menu-toggle][aria-expanded="true"]) .v3-header-demo { visibility: hidden; }
    [data-vitrine-v3] .v3-menu-toggle { grid-row: 1; grid-column: 3; align-self: center; justify-self: end; }
    [data-vitrine-v3] .v3-outils { display: none; }
    [data-vitrine-v3] .v3-footer { padding-bottom: 84px; }
    [data-vitrine-v3] .v3-navigation { grid-column: 1 / -1; display: flex; flex-direction: column; align-items: stretch; gap: 16px; padding: 5px 0 22px; border-top: 1px solid var(--v3-line); }
    [data-vitrine-v3][data-v3-enhanced] .v3-navigation { max-height: calc(100dvh - 90px); overflow-y: auto; overscroll-behavior: contain; }
    [data-vitrine-v3] .v3-nav-primary { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
    [data-vitrine-v3] .v3-nav-disclosure { border-bottom: 1px solid var(--v3-line); }
    [data-vitrine-v3] .v3-nav-disclosure > summary, [data-vitrine-v3] .v3-nav-link { justify-content: space-between; min-height: 49px; padding: 13px 9px; font-size: 0.875rem; border-radius: 0; }
    [data-vitrine-v3] .v3-nav-link { border-bottom: 1px solid var(--v3-line); }
    [data-vitrine-v3] .v3-dropdown { position: static; width: 100%; max-height: none; padding: 16px 8px; border: 0; border-radius: 0; box-shadow: none; }
    [data-vitrine-v3] .v3-nav-solutions-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    [data-vitrine-v3] .v3-nav-solutions-grid a { min-height: 51px; }
    [data-vitrine-v3] .v3-dropdown-intro { margin-bottom: 10px; padding-bottom: 9px; }
    [data-vitrine-v3] .v3-dropdown-intro .v3-eyebrow { font-size: 0.625rem; }
    [data-vitrine-v3] .v3-dropdown-bottom { margin-top: 12px; }
    [data-vitrine-v3] .v3-dropdown-bottom > span { display: none; }
    [data-vitrine-v3] .v3-nav-actions { display: flex; justify-content: space-between; gap: 14px; padding-top: 8px; }
    [data-vitrine-v3] .v3-nav-login { padding-left: 9px; }
    [data-vitrine-v3] .v3-nav-actions .v3-button-small { min-height: 46px; padding-inline: 18px; }
    /* Langue en deux liens directs, thème à droite, sous les actions : discrets, mais à un geste. */
    [data-vitrine-v3] .v3-nav-outils { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 16px; border-top: 1px solid var(--v3-line); }
    [data-vitrine-v3] .v3-nav-langues { display: inline-flex; gap: 2px; margin: 0; padding: 3px; border: 1px solid var(--v3-line); border-radius: 8px; list-style: none; }
    [data-vitrine-v3] .v3-nav-langues a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border-radius: 6px; color: var(--v3-muted); font-size: 0.8125rem; font-weight: 600; }
    [data-vitrine-v3] .v3-nav-langues a:hover { color: var(--v3-blue); }
    [data-vitrine-v3] .v3-nav-langues a[aria-current] { background: var(--v3-blue-soft); color: var(--v3-blue); }
    [data-vitrine-v3] .v3-nav-outils .v3-theme-toggle { width: 44px; height: 44px; padding: 0; border: 1px solid var(--v3-line); }
    [data-vitrine-v3] .v3-hero { padding-top: 45px; }
    [data-vitrine-v3] .v3-hero-grid { grid-template-columns: 1fr; gap: 38px; }
    [data-vitrine-v3] .v3-hero-copy { max-width: 760px; }
    [data-vitrine-v3] .v3-hero-copy h1 { max-width: 22ch; font-size: clamp(2.75rem, 6vw, 4rem); }
    [data-vitrine-v3] .v3-hero-copy .v3-eyebrow { max-width: none; }
    [data-vitrine-v3] .v3-hero-copy .v3-lead { max-width: 67ch; }
    [data-vitrine-v3] .v3-hero-preview { width: 100%; max-width: 760px; }
    [data-vitrine-v3] .v3-product-body { grid-template-columns: 62px minmax(0, 1fr); }
    [data-vitrine-v3] .v3-product-table { font-size: 0.75rem; }
    [data-vitrine-v3] .v3-tabpanel { min-height: 340px; padding-inline: 26px; }
    [data-vitrine-v3] .v3-proof-strip > div { gap: 12px; padding-inline: 14px; }
    [data-vitrine-v3] .v3-proof-strip > div > .lucide { width: 23px; height: 23px; }
    [data-vitrine-v3] .v3-section { padding-block: 65px; }
    [data-vitrine-v3] .v3-solutions-grid, [data-vitrine-v3] .v3-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    [data-vitrine-v3] .v3-card-grid-single { grid-template-columns: 1fr; }
    [data-vitrine-v3] .v3-solution-card { padding: 25px; }
    [data-vitrine-v3] .v3-section-heading-row { gap: 28px; }
    [data-vitrine-v3] .v3-section-heading-row > :last-child { flex-basis: 300px; }
    [data-vitrine-v3] .v3-section-heading-row > .v3-text-link { flex-basis: auto; }
    [data-vitrine-v3] .v3-faq-layout, [data-vitrine-v3] .v3-scope-layout { gap: 34px; }
    [data-vitrine-v3] .v3-cta { padding: 36px; gap: 32px; }
    [data-vitrine-v3] .v3-collection-heading { align-items: flex-start; flex-direction: column; gap: 28px; }
    [data-vitrine-v3] .v3-faq-page-layout { grid-template-columns: 220px minmax(0, 1fr); gap: 32px; }
    [data-vitrine-v3] .v3-contact-layout { grid-template-columns: 1fr; grid-template-rows: none; grid-template-areas: "tete" "formulaire" "suite"; gap: 28px; }
    [data-vitrine-v3] .v3-lead-resource-layout { grid-template-columns: 1fr; gap: 36px; }
    [data-vitrine-v3] .v3-contact-tete, [data-vitrine-v3] .v3-contact-suite { max-width: 750px; }
    [data-vitrine-v3] .v3-contact-suite .v3-contact-agenda { margin-top: 12px; }
    [data-vitrine-v3] .v3-contact-agenda ol { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
    [data-vitrine-v3] .v3-contact-agenda li { flex-direction: column; gap: 12px; }
    [data-vitrine-v3] .v3-contact-agenda h2 { max-width: none; }
    [data-vitrine-v3] .v3-contact-layout .v3-form-card { max-width: 780px; width: 100%; }
    [data-vitrine-v3] .v3-lead-resource-layout > .v3-form-card { max-width: 650px; margin-top: 0; }
    [data-vitrine-v3] .v3-resource-cover { max-width: 450px; }
    [data-vitrine-v3] .v3-pricing-heading { grid-template-columns: 1fr 0.8fr; gap: 30px; }
    [data-vitrine-v3] .v3-pricing-principle { padding: 24px; }
    [data-vitrine-v3] .v3-quote-layout { grid-template-columns: minmax(0, 1fr) 290px; gap: 28px; }
    [data-vitrine-v3] .v3-quote-options-modules { grid-template-columns: 1fr; }
    [data-vitrine-v3] .v3-quote-summary { top: 96px; padding: 23px; }
    [data-vitrine-v3] .v3-glossary-layout { grid-template-columns: 210px minmax(0, 1fr); gap: 32px; }
    [data-vitrine-v3] .v3-footer-top { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px; }
    [data-vitrine-v3] .v3-footer-about { grid-column: 1 / -1; max-width: 480px; }
    [data-vitrine-v3] .v3-footer-bottom { flex-wrap: wrap; gap: 10px 24px; }
}

@media (max-width: 47.999rem) {
    [data-vitrine-v3] .v3-liens-utiles-liste { grid-template-columns: minmax(0, 1fr); }
    [data-vitrine-v3] .v3-liens-utiles-entete { flex-direction: column; gap: 4px; }
    [data-vitrine-v3] .v3-container { width: calc(100% - 36px); }
    [data-vitrine-v3] [id] { scroll-margin-top: 96px; }
    [data-vitrine-v3] .v3-dropdown-resources { grid-template-columns: 1fr; gap: 12px; }
    [data-vitrine-v3] .v3-nav-feature { padding: 20px; gap: 12px; }
    [data-vitrine-v3] .v3-hero { padding-top: 35px; }
    [data-vitrine-v3] .v3-hero > .v3-hero-grid { padding-bottom: 34px; }
    [data-vitrine-v3] .v3-hero-copy h1 { max-width: 20ch; font-size: clamp(2.35rem, 7.2vw, 3.3rem); line-height: 1.12; }
    [data-vitrine-v3] .v3-eyebrow { font-size: 0.625rem; margin-bottom: 17px; }
    [data-vitrine-v3] .v3-lead { margin-top: 20px; font-size: 1rem; }
    [data-vitrine-v3] .v3-hero-topics { margin-top: 24px; padding-top: 17px; }
    [data-vitrine-v3] .v3-hero-note { font-size: 0.6875rem; }
    [data-vitrine-v3] .v3-product-body { grid-template-columns: 1fr; }
    [data-vitrine-v3] .v3-product-rail { display: none; }
    [data-vitrine-v3] .v3-product-caption { padding-inline: 12px; gap: 8px; }
    [data-vitrine-v3] .v3-tabpanel { min-height: 365px; padding: 22px 16px 18px; }
    [data-vitrine-v3] .v3-product-heading :where(h2, h3) { font-size: 1.125rem; }
    [data-vitrine-v3] .v3-product-context { gap: 8px; }
    [data-vitrine-v3] .v3-product-context > div { padding: 10px; }
    [data-vitrine-v3] .v3-product-actions li { flex-wrap: wrap; }
    [data-vitrine-v3] .v3-product-actions li > div { flex: 1 1 180px; }
    [data-vitrine-v3] .v3-product-actions .v3-status { margin-left: 26px; }
    [data-vitrine-v3] .v3-product-single-content { padding: 23px 17px; }
    [data-vitrine-v3] .v3-product-footnote { font-size: 0.5625rem; }
    [data-vitrine-v3] .v3-preview-under { align-items: flex-start; font-size: 0.625rem; }
    [data-vitrine-v3] .v3-proof-strip { grid-template-columns: 1fr; padding-block: 6px; }
    [data-vitrine-v3] .v3-proof-strip > div { justify-content: flex-start; gap: 18px; padding: 18px 0; }
    [data-vitrine-v3] .v3-proof-strip > div + div { border-left: 0; border-top: 1px solid var(--v3-line); }
    [data-vitrine-v3] .v3-proof-strip p { display: flex; flex-wrap: wrap; align-items: baseline; gap: 5px 12px; }
    [data-vitrine-v3] .v3-proof-strip strong { font-size: 0.8125rem; }
    [data-vitrine-v3] .v3-proof-strip p > span { font-size: 0.6875rem; }
    [data-vitrine-v3] .v3-section { padding-block: 52px; }
    [data-vitrine-v3] .v3-section-bottom { padding-bottom: 48px; }
    [data-vitrine-v3] h2 { font-size: clamp(1.75rem, 5.6vw, 2.25rem); }
    [data-vitrine-v3] .v3-section-heading { margin-bottom: 28px; }
    [data-vitrine-v3] .v3-section-heading-row { flex-direction: column; align-items: flex-start; gap: 20px; }
    [data-vitrine-v3] .v3-section-heading-row > :last-child { flex-basis: auto; max-width: 60ch; }
    [data-vitrine-v3] .v3-solutions-grid, [data-vitrine-v3] .v3-card-grid { grid-template-columns: 1fr; gap: 14px; }
    [data-vitrine-v3] .v3-solution-card { padding: 25px; }
    [data-vitrine-v3] .v3-solution-card-top { margin-bottom: 20px; }
    [data-vitrine-v3] .v3-solution-card h3 { font-size: 1.1875rem; }
    [data-vitrine-v3] .v3-solution-card > p { font-size: 0.875rem; }
    [data-vitrine-v3] .v3-page-card { padding: 25px; }
    [data-vitrine-v3] .v3-page-card > p { font-size: 0.875rem; }
    [data-vitrine-v3] .v3-feature-grid { grid-template-columns: 1fr; gap: 28px; }
    [data-vitrine-v3] .v3-feature { padding-top: 23px; }
    [data-vitrine-v3] .v3-process-grid { grid-template-columns: 1fr; gap: 28px; }
    [data-vitrine-v3] .v3-process-grid > li { padding-top: 20px; }
    [data-vitrine-v3] .v3-step-number { margin-bottom: 15px; }
    [data-vitrine-v3] .v3-process-bottom { align-items: flex-start; flex-direction: column; gap: 12px; margin-top: 30px; }
    [data-vitrine-v3] .v3-cta-section { padding-top: 16px; }
    [data-vitrine-v3] .v3-cta { grid-template-columns: 1fr; gap: 28px; padding: 30px 25px; }
    [data-vitrine-v3] .v3-cta-actions { align-items: flex-start; }
    [data-vitrine-v3] .v3-faq-layout, [data-vitrine-v3] .v3-faq-page-layout { grid-template-columns: 1fr; gap: 28px; }
    [data-vitrine-v3] .v3-faq-layout .v3-section-heading { margin-bottom: 0; }
    [data-vitrine-v3] .v3-faq-item summary { padding-block: 20px; font-size: 0.875rem; }
    [data-vitrine-v3] .v3-faq-answer { padding-right: 10px; }
    [data-vitrine-v3] .v3-page-hero { padding-block: 35px 43px; }
    [data-vitrine-v3] .v3-page-hero h1, [data-vitrine-v3] .v3-contact-tete h1 { font-size: clamp(2rem, 7vw, 3rem); }
    [data-vitrine-v3] .v3-section-jump { gap: 3px 18px; }
    [data-vitrine-v3] .v3-section-jump a { gap: 8px; font-size: 0.6875rem; }
    [data-vitrine-v3] .v3-scope-layout { grid-template-columns: 1fr; gap: 0; }
    [data-vitrine-v3] .v3-scope-panel { padding: 24px; }
    [data-vitrine-v3] .v3-solution-editorial { margin-top: 40px; }
    [data-vitrine-v3] .v3-toc li a { font-size: 0.8125rem; }
    [data-vitrine-v3] .v3-prose { font-size: 0.875rem; }
    [data-vitrine-v3] .v3-prose h2 { font-size: 1.375rem; }
    [data-vitrine-v3] .v3-prose-section + .v3-prose-section { margin-top: 30px; padding-top: 30px; }
    [data-vitrine-v3] .v3-editorial-features { grid-template-columns: 1fr; gap: 26px; }
    [data-vitrine-v3] .v3-editorial-limits { padding: 22px; }
    [data-vitrine-v3] .v3-filter-controls { align-items: flex-start; flex-direction: column; gap: 12px; margin-bottom: 25px; }
    [data-vitrine-v3] .v3-filter-status { padding-bottom: 0; }
    [data-vitrine-v3] .v3-glossary-layout { grid-template-columns: 1fr; gap: 28px; }
    [data-vitrine-v3] .v3-glossary-layout > .v3-toc { position: static; max-height: none; overflow: visible; padding: 0; }
    [data-vitrine-v3] .v3-glossary-layout .v3-toc ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; }
    [data-vitrine-v3] .v3-glossary-layout .v3-toc li { margin: 0; }
    [data-vitrine-v3] .v3-glossary-layout .v3-toc a { font-size: 0.75rem; }
    [data-vitrine-v3] .v3-glossary-list .v3-prose-section { padding: 24px; }
    [data-vitrine-v3] .v3-contact-section { padding-top: 30px; }
    [data-vitrine-v3] .v3-contact-agenda ol { grid-template-columns: 1fr; }
    [data-vitrine-v3] .v3-contact-agenda li { flex-direction: row; gap: 15px; }
    [data-vitrine-v3] .v3-form-card { padding: 26px 22px; }
    [data-vitrine-v3] .v3-form-grid { grid-template-columns: 1fr; gap: 21px; }
    [data-vitrine-v3] .v3-field :where(input:not([type="checkbox"]), select, textarea) { font-size: 1rem; }
    [data-vitrine-v3] .v3-search-input input { font-size: 1rem; }
    [data-vitrine-v3] .v3-field-help-row { align-items: flex-start; }
    [data-vitrine-v3] .v3-character-count { padding-top: 8px; }
    [data-vitrine-v3] .v3-field > label { font-size: 0.8125rem; }
    [data-vitrine-v3] .v3-form-required { font-size: 0.6875rem; }
    [data-vitrine-v3] .v3-preview-notice { font-size: 0.75rem; padding: 14px; }
    [data-vitrine-v3] .v3-pricing-heading { grid-template-columns: 1fr; gap: 32px; }
    [data-vitrine-v3] .v3-pricing-heading h1 { max-width: 21ch; }
    [data-vitrine-v3] .v3-pricing-principle { padding: 25px; }
    [data-vitrine-v3] .v3-quote-layout { grid-template-columns: 1fr; gap: 20px; }
    [data-vitrine-v3] .v3-quote-options-modules { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    [data-vitrine-v3] .v3-quote-options a { padding: 11px 12px; gap: 9px; font-size: 0.75rem; }
    [data-vitrine-v3] .v3-quote-summary { position: static; padding: 25px; }
    [data-vitrine-v3] .v3-status-page-card { padding: 28px 23px; }
    [data-vitrine-v3] .v3-status-page-card .v3-button-row { align-items: stretch; flex-direction: column; }
    [data-vitrine-v3] .v3-footer { padding-top: 40px; }
    [data-vitrine-v3] .v3-footer-top { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 35px 25px; padding-bottom: 35px; }
    [data-vitrine-v3] .v3-footer-top nav a { min-height: 33px; padding-block: 6px; }
    [data-vitrine-v3] .v3-footer-bottom { align-items: flex-start; flex-direction: column; gap: 10px; }
    [data-vitrine-v3] .v3-footer-bottom nav ul { gap: 5px 18px; }
}

@media (max-width: 380px) {
    [data-vitrine-v3] .v3-container { width: calc(100% - 28px); }
    [data-vitrine-v3] .v3-hero-copy h1 { font-size: 2.125rem; }
    [data-vitrine-v3] .v3-button-row { align-items: stretch; flex-direction: column; }
    [data-vitrine-v3] .v3-nav-solutions-grid { grid-template-columns: 1fr; }
    [data-vitrine-v3] .v3-dropdown-intro { align-items: flex-start; flex-direction: column; gap: 4px; }
    [data-vitrine-v3] .v3-nav-actions { align-items: stretch; flex-direction: column; gap: 8px; }
    [data-vitrine-v3] .v3-nav-login { justify-content: center; }
    [data-vitrine-v3] .v3-product-caption { align-items: flex-start; flex-direction: column; gap: 3px; }
    [data-vitrine-v3] .v3-product-context { grid-template-columns: 1fr; }
    [data-vitrine-v3] .v3-product-context > div { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
    [data-vitrine-v3] .v3-product-context dd { margin-top: 0; }
    [data-vitrine-v3] .v3-form-card { padding-inline: 18px; }
    [data-vitrine-v3] .v3-quote-options-modules { grid-template-columns: 1fr; }
    [data-vitrine-v3] .v3-glossary-layout .v3-toc ul { grid-template-columns: 1fr; }
    [data-vitrine-v3] .v3-resource-cover-content { padding: 24px; }
}

/* Moins de 360 px : « Menu » devient l'icône seule, son libellé reste lu par les lecteurs d'écran, pour que « Démo »
   tienne entre le logo et le menu (audit du 28/10/2026). */
@media (max-width: 359px) {
    [data-vitrine-v3] .v3-menu-toggle { width: 44px; padding-inline: 0; }
    [data-vitrine-v3] [data-v3-menu-label] { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
    [data-vitrine-v3] .v3-header-demo { padding-inline: 14px; }
}

@media (prefers-reduced-motion: reduce) {
    [data-vitrine-v3], [data-vitrine-v3] *, [data-vitrine-v3] *::before, [data-vitrine-v3] *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
    [data-vitrine-v3] .v3-submit-loader { display: none !important; }
}

@media (forced-colors: active) {
    [data-vitrine-v3] .v3-button, [data-vitrine-v3] .v3-status, [data-vitrine-v3] .v3-icon-box { border: 1px solid ButtonText; }
    [data-vitrine-v3] .v3-tablist button[aria-selected="true"] { border-bottom: 3px solid Highlight; }
    [data-vitrine-v3] .v3-quote-options a[aria-current] { outline: 2px solid Highlight; outline-offset: -3px; }
    [data-vitrine-v3] :focus-visible { outline-color: Highlight; }
}

@media print {
    [data-vitrine-v3] { background: white; color: black; color-scheme: light; }
    [data-vitrine-v3] .v3-header, [data-vitrine-v3] .v3-footer, [data-vitrine-v3] .v3-cta-section, [data-vitrine-v3] .v3-filter-controls { display: none !important; }
    [data-vitrine-v3] .v3-container { width: 100%; }
    [data-vitrine-v3] .v3-section, [data-vitrine-v3] .v3-page-hero { padding-block: 24px; }
    [data-vitrine-v3] .v3-product { box-shadow: none; break-inside: avoid; }
    [data-vitrine-v3] .v3-table-scroll { overflow: visible; }
}
