/* Via Expedito 2026 — maquette du 11 oct. 2026 : accueil en bandes, pages par public (le fil), fenêtres des offres et des réalisations, menu compact. */
.ve-page a:hover{color:inherit}

/* Menu */
.ve-nav .ve-nav-link[aria-current="page"]{color:#C2502B !important;font-weight:600}
.ve-nav .ve-nav-link:hover{color:#C2502B !important}
.mn-item .mn-dot{transition:transform .25s}.mn-item:hover .mn-dot{transform:scale(1.5)}

/* Barre compacte : apparaît en faisant défiler, logo au centre et menu regroupé dessous */
@keyframes veMini{from{opacity:0;transform:translateY(-110%);visibility:hidden}to{opacity:1;transform:none;visibility:visible}}
.ve-mini{position:fixed;top:0;left:0;right:0;z-index:50;opacity:0;visibility:hidden;transform:translateY(-110%)}
@supports (animation-timeline: scroll()){.ve-mini{animation:veMini linear both;animation-timeline:scroll(root);animation-range:160px 300px}}
.ve-mini a{transition:background-color .2s ease,color .2s ease}
.ve-mini .ve-mini-link:hover{background:#F2F2F2}
body.admin-bar .ve-mini{top:32px}
@media (max-width: 782px){body.admin-bar .ve-mini{top:46px}}

/* Apparitions au défilement (navigateurs récents ; ailleurs tout est visible) */
@keyframes veUp{from{opacity:0;translate:0 40px}to{opacity:1;translate:0 0}}
@keyframes vePop{0%{opacity:0;transform:scale(.2)}70%{opacity:1;transform:scale(1.18)}100%{opacity:1;transform:scale(1)}}
@keyframes veInL{from{opacity:0;transform:translateX(-70px)}to{opacity:1;transform:none}}
@keyframes veInR{from{opacity:0;transform:translateX(70px)}to{opacity:1;transform:none}}
@keyframes veWipe{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes veThread{from{stroke-dashoffset:1200}to{stroke-dashoffset:0}}
@keyframes veRowIn{from{opacity:0;transform:translateX(60px)}to{opacity:1;transform:none}}
@keyframes veNum{from{opacity:0;transform:translateY(30px) scale(.6)}to{opacity:.85;transform:none}}
@keyframes veFloat{0%,100%{transform:translate(0,0) rotate(0)}50%{transform:translate(-18px,14px) rotate(-4deg)}}
@keyframes veDraw{from{stroke-dashoffset:3200}to{stroke-dashoffset:0}}
@keyframes veSwash{from{stroke-dashoffset:400}to{stroke-dashoffset:0}}
@keyframes veSwashDot{0%,80%{opacity:0;transform:scale(.2)}100%{opacity:1;transform:scale(1)}}
.ve-swash{stroke-dasharray:400;stroke-dashoffset:0;animation:veSwash 1.6s 1.6s ease-in-out both}
.ve-swash-dot{transform-box:fill-box;transform-origin:center;animation:veSwashDot 3.4s ease-out both}
.ve-thread{stroke-dasharray:1200;animation:veFloat 9s ease-in-out infinite}
.ve-draw{stroke-dasharray:3200;stroke-dashoffset:0;animation:veDraw 3.2s 1.2s ease-in-out both}
@supports (animation-timeline: view()){
.ve-up{animation:veUp linear both;animation-timeline:view();animation-range:entry 5% cover 30%}
.ve-pop{animation:vePop linear both;animation-timeline:view();animation-range:entry 10% cover 35%}
.ve-in-l{animation:veInL linear both;animation-timeline:view();animation-range:entry 15% cover 38%}
.ve-in-r{animation:veInR linear both;animation-timeline:view();animation-range:entry 15% cover 38%}
.ve-band{animation:veWipe linear both;animation-timeline:view();animation-range:entry 0% cover 40%}
.ve-thread path{animation:veThread linear both;animation-timeline:view();animation-range:entry 10% cover 60%}
.ve-row-in{animation:veRowIn linear both;animation-timeline:view()}
.ve-bignum{display:inline-block;animation:veNum linear both;animation-timeline:view();animation-range:entry 20% cover 40%}
}
.ve-row{transition:padding-left .25s ease !important}
.ve-row:hover{padding-left:12px !important}

/* Le fil : bulles numérotées avec écho, qui grossissent au survol */
@keyframes veEcho{0%{transform:scale(1);opacity:.6}100%{transform:scale(1.9);opacity:0}}
.ve-num{position:relative;transition:transform .25s ease !important}
.ve-num::before,.ve-num::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:3px solid var(--echo);animation:veEcho 2.2s ease-out infinite;pointer-events:none}
.ve-num::after{animation-delay:1.2s}
.ve-num:hover,.ve-num:focus-visible{transform:scale(1.3) !important}
.ve-num:focus-visible,.ve-fil-titre:focus-visible,.ve-item:focus-visible,.ve-tous:focus-visible,.ve-real-card:focus-visible{outline:3px solid #C2502B;outline-offset:4px}
.ve-fil-titre:hover .ve-fil-court{color:#C2502B !important}
.ve-fil-l .ve-fil-titre{align-items:flex-end}.ve-fil-r .ve-fil-titre{align-items:flex-start}
@media (max-width: 760px){.ve-fil-l .ve-fil-titre{align-items:flex-start}}

.ve-real-card{transition:transform .25s ease}.ve-real-card:hover{transform:translateY(-3px)}

/* Réalisations */
.ve-item .ve-thumb{transition:transform .3s ease}
.ve-item:hover .ve-thumb{transform:scale(1.03)}
.ve-item[hidden]{display:none !important}
.ve-filtre{all:unset;cursor:pointer;box-sizing:border-box;padding:10px 17px;border-radius:999px;border:1px solid #E5E7EB;color:#0F2A44;font:500 15px Inter,sans-serif;display:flex;align-items:center;gap:10px}
.ve-filtre-dot{width:10px;height:10px;border-radius:50%}
.ve-filtre-n{font-size:13px;color:#5B5B66}
.ve-filtre[aria-pressed="true"]{background:var(--on);border-color:var(--on);color:#FFFFFF;font-weight:600}
.ve-filtre[aria-pressed="true"] .ve-filtre-dot{display:none}
.ve-filtre[aria-pressed="true"] .ve-filtre-n{color:#FFFFFF;opacity:.85}
.ve-filtre:focus-visible{outline:3px solid #C2502B;outline-offset:3px}

/* Fenêtres (offres et réalisations) */
html:has(dialog.ve-dlg[open]){overflow:hidden}
dialog.ve-dlg{border:0;padding:0;margin:auto;background:transparent;width:calc(100% - 32px);max-width:1000px;max-height:calc(100dvh - 48px);overflow:auto;overscroll-behavior:contain;border-radius:24px;box-shadow:0 30px 80px rgba(0,0,0,.3);color:#121212;font-family:Inter,sans-serif;font-size:17px;line-height:1.6}
dialog.ve-dlg-projet{max-width:920px}
dialog.ve-dlg::backdrop{background:rgba(15,42,68,.6)}
dialog.ve-dlg[open]{animation:veDlg .35s cubic-bezier(.2,.8,.2,1) both}
@keyframes veDlg{from{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:none}}
.ve-dlg-in{background:#FFFFFF;border-radius:24px;overflow:hidden;margin:0 auto}
.ve-dlg .ve-x{all:unset;cursor:pointer;flex:none;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:600;font-family:Inter,sans-serif}
.ve-dlg .ve-x:focus-visible{outline:3px solid #FFFFFF;outline-offset:3px}
.ve-dlg section{scroll-margin-top:16px}
.ve-dlg h2,.ve-dlg h3{letter-spacing:normal}

/* Mobile */
@media (max-width: 760px){
.ve-hide-mobile{display:none !important}
.ve-page .ve-fil .ve-fil-row{grid-template-columns:60px minmax(0,1fr) !important;column-gap:8px;padding:10px 0 !important}
.ve-page .ve-fil .ve-fil-c{grid-column:1;grid-row:1}
.ve-page .ve-fil .ve-fil-l,.ve-page .ve-fil .ve-fil-r{grid-column:2;grid-row:1;justify-content:flex-start !important;text-align:left !important}
.ve-page .ve-fil .ve-fil-line{left:30px !important}
.ve-page .ve-fil .ve-fil-head{display:none !important}
.ve-page .ve-fil .ve-fil-court{font-size:21px !important}.ve-page .ve-fil .ve-fil-desc{font-size:14px !important}
.ve-page .ve-band [style*="font-size: 48px"]{font-size:32px !important}
.ve-page [style*="padding: 72px 32px"],.ve-page [style*="padding: 64px 32px"],.ve-page [style*="padding: 96px 32px"],.ve-page [style*="padding: 80px 32px"],.ve-page [style*="padding: 60px 32px"]{padding-left:20px !important;padding-right:20px !important}
.ve-page [style*="max-width: 1240px"]{padding-left:20px !important;padding-right:20px !important}
.ve-dlg [style*="padding: 32px 40px"],.ve-dlg [style*="padding: 30px 40px"],.ve-dlg [style*="padding: 18px 40px"],.ve-dlg .ve-dlg-body{padding-left:20px !important;padding-right:20px !important}
.ve-dlg .ve-dlg-fig{margin-left:20px !important;margin-right:20px !important}
.ve-dlg h2{font-size:28px !important}
dialog.ve-dlg{width:calc(100% - 16px);max-height:calc(100dvh - 16px);border-radius:18px}
.ve-mini nav a{padding:5px 9px !important;font-size:13px}
.ve-mini .ve-sep{display:none}
.ve-page header .ve-sep{display:none}
}

@media (prefers-reduced-motion: reduce){
.ve-swash,.ve-swash-dot,.ve-up,.ve-pop,.ve-band,.ve-thread,.ve-thread path,.ve-row-in,.ve-bignum,.ve-in-l,.ve-in-r,.ve-draw,dialog.ve-dlg[open]{animation:none !important}
.ve-num::before,.ve-num::after{animation:none;opacity:0}
.ve-row,.ve-item .ve-thumb,.ve-tous,.ve-real-card{transition:none !important}
.ve-mini{animation-range:160px 161px}
}
.ve-page h1.ve-h1-sur{font-size:13px !important;line-height:1.6 !important}

/* Menu déroulant « Vous êtes » (Offres entreprises, Domaine de la formation, Domaine culturel) */
.ve-dd{position:relative}
.ve-dd-btn{all:unset;cursor:pointer;box-sizing:border-box;display:flex;align-items:center;gap:8px;border:1px solid #E5E7EB;border-radius:999px;color:#0F2A44;font-family:Inter,sans-serif;font-weight:500;line-height:1.4;background:#FFFFFF;transition:border-color .2s ease}
.ve-dd-btn:hover,.ve-dd-btn[aria-expanded="true"]{border-color:#0F2A44}
.ve-dd-btn:focus-visible{outline:3px solid #C2502B;outline-offset:3px}
.ve-dd-btn strong{font-weight:600}
.ve-dd-arrow{font-size:12px;transition:transform .2s ease}
.ve-dd-btn[aria-expanded="true"] .ve-dd-arrow{transform:rotate(180deg)}
.ve-dd-dot{flex:none;width:10px;height:10px;border-radius:50%;transition:transform .25s ease}
.ve-dd-panel{position:absolute;top:calc(100% + 8px);left:0;z-index:60;min-width:260px;background:#FFFFFF;border:1px solid #E5E7EB;border-radius:16px;box-shadow:0 18px 40px rgba(15,42,68,.14);padding:8px;display:flex;flex-direction:column;animation:veDd .2s ease both}
.ve-mini .ve-dd-panel{left:50%;transform:translateX(-50%)}
@keyframes veDd{from{opacity:0;margin-top:-6px}to{opacity:1;margin-top:0}}
.ve-dd-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:10px;text-decoration:none;color:#0F2A44 !important;font-size:15px;font-weight:500}
.ve-dd-item:hover{background:#F8F1E7}
.ve-dd-item:hover .ve-dd-dot{transform:scale(1.4)}
.ve-dd-item.is-on{font-weight:700;background:#F2F2F2}
.ve-dd-item:focus-visible{outline:3px solid #C2502B;outline-offset:-3px}
@media (max-width: 760px){.ve-dd-panel{left:0;right:auto;min-width:min(260px,calc(100vw - 40px))}.ve-mini .ve-dd-panel{left:50%}}
@media (prefers-reduced-motion: reduce){.ve-dd-panel{animation:none}}
.ve-page > header{position:relative;z-index:40}

/* Le fil se déroule au défilement et fait apparaître les offres une à une */
@keyframes veGrow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.ve-fil-line{transform-origin:top center}
.ve-fil-row .ve-fil-l > div,.ve-fil-row .ve-fil-r > div,.ve-fil-row .ve-fil-c{transition:opacity .6s ease,transform .6s cubic-bezier(.2,.8,.2,1)}
@supports (animation-timeline: view()){
.ve-fil-list .ve-fil-line{animation:veGrow linear both;animation-timeline:view();animation-range:cover 30vh cover calc(100% - 70vh)}
.ve-fil-row .ve-in-l,.ve-fil-row .ve-in-r{animation-range:cover 26vh cover 38vh}
.ve-fil-row .ve-pop{animation-range:cover 24vh cover 32vh}
}
/* Repli sans défilement animé (assets/js/dialogs.js) */
html.ve-fil-js .ve-fil-row:not(.is-in) .ve-fil-l > div{opacity:0;transform:translateX(-50px)}
html.ve-fil-js .ve-fil-row:not(.is-in) .ve-fil-r > div{opacity:0;transform:translateX(50px)}
html.ve-fil-js .ve-fil-row:not(.is-in) .ve-fil-c{opacity:0;transform:scale(.3)}
@media (prefers-reduced-motion: reduce){.ve-fil-list .ve-fil-line{animation:none !important;transform:none !important}html.ve-fil-js .ve-fil-row .ve-fil-l > div,html.ve-fil-js .ve-fil-row .ve-fil-r > div,html.ve-fil-js .ve-fil-row .ve-fil-c{opacity:1 !important;transform:none !important}}
/* Haut de page des publics : le fil emmêlé descend jusqu'à la ligne des offres */

@media (max-width: 1100px){.ve-pub-txt{max-width:46% !important}}
@media (max-width: 760px){.ve-pub-txt{max-width:none !important}.ve-pub-hero > div{min-height:0 !important}}

/* Accueil : sélecteur « Vous êtes… » */

.ve-vous:focus-visible{outline:3px solid var(--c);outline-offset:3px}
@media (prefers-reduced-motion: reduce){.ve-vous{transition:none !important}.ve-vous:hover{transform:none}}
#publics{scroll-margin-top:120px}
.ve-etape{transition:transform .2s ease, box-shadow .2s ease}.ve-etape:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(15,42,68,0.10)}
@media (prefers-reduced-motion: reduce){.ve-etape{transition:none !important}.ve-etape:hover{transform:none}}

/* Accueil : retouches web design (12 oct. 2026) */
@media (min-width: 761px){.ve-hero-titre{font-size:clamp(46px,4.4vw,66px) !important}}
@media (max-width: 760px){.ve-hero{min-height:0 !important;padding-top:40px !important}.ve-hero-titre{font-size:clamp(40px,11vw,52px) !important}}
.ve-hero-art svg{width:118%;max-width:none;height:auto;margin-right:-6%}
@media (max-width: 760px){.ve-hero-art svg{width:100%;margin-right:0}}
.ve-etapes .ve-etape{background:transparent !important;border:0 !important}
.ve-etapes .ve-etape:hover{transform:none;box-shadow:none}
@media (max-width: 760px){
.ve-etapes{grid-template-columns:1fr !important;gap:6px !important}
.ve-etapes .ve-etape{display:grid !important;grid-template-columns:64px minmax(0,1fr);column-gap:14px;row-gap:6px;text-align:left !important;align-items:start !important;padding:14px 0 !important;border-bottom:1px solid #E5E7EB !important;border-radius:0 !important}
.ve-etapes .ve-etape > .ve-pop{grid-row:1 / span 3;width:56px !important;height:56px !important}
.ve-etapes .ve-etape > span:not(.ve-pop){grid-column:2;justify-self:start}
.ve-etapes .ve-etape > span:nth-child(2){font-size:22px !important}
.ve-page header [style*="padding: 22px 32px"]{padding:14px 20px !important}
}
/* Menu burger (mobile) */
.ve-burger{display:none}
@media (max-width: 760px){
.ve-menu{flex-direction:row !important;flex-wrap:wrap !important;justify-content:space-between !important;align-items:center !important;row-gap:0 !important}
.ve-burger{display:inline-flex;flex-direction:column;justify-content:center;gap:5px;width:46px;height:46px;padding:0 12px;border:1px solid #E5E7EB;border-radius:12px;background:#FFFFFF;cursor:pointer}
.ve-burger span{display:block;height:2px;border-radius:2px;background:#0F2A44;transition:transform .2s ease,opacity .2s ease}
.ve-menu.is-open .ve-burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.ve-menu.is-open .ve-burger span:nth-child(2){opacity:0}
.ve-menu.is-open .ve-burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.ve-menu > nav{display:none !important}
.ve-menu.is-open > nav{display:flex !important;flex-direction:column !important;align-items:stretch !important;width:100%;gap:2px !important;padding:12px 0 6px;font-size:16px !important}
.ve-menu.is-open > nav > a{padding:13px 4px !important;margin:0 !important;border-radius:0 !important;border-bottom:1px solid #F0F0F0}
.ve-menu.is-open > nav > a:last-child{margin-top:10px !important;border:0;border-radius:999px !important;text-align:center;padding:14px 18px !important}
.ve-menu.is-open > nav .ve-dd,.ve-menu.is-open > nav .ve-dd-btn{width:100%;justify-content:flex-start}
.ve-menu.is-open > nav .ve-dd-panel{position:static !important;transform:none !important;margin-top:6px;box-shadow:none;border:1px solid #E5E7EB}
.ve-menu.is-open > nav .ve-sep{display:none}
}
@media (prefers-reduced-motion: reduce){.ve-burger span{transition:none}}
/* Méthode : fil et pastilles qui apparaissent au défilement */
.ve-mthread{clip-path:inset(0 0 0 0)}
@supports (animation-timeline: view()){
.ve-mthread{animation:veWipe linear both;animation-timeline:view();animation-range:entry 30% cover 55%}
.ve-etapes .ve-etape:nth-child(1) .ve-pop{animation-range:entry 10% cover 30%}
.ve-etapes .ve-etape:nth-child(2) .ve-pop{animation-range:entry 20% cover 40%}
.ve-etapes .ve-etape:nth-child(3) .ve-pop{animation-range:entry 30% cover 50%}
.ve-etapes .ve-etape:nth-child(4) .ve-pop{animation-range:entry 40% cover 60%}
}
@media (prefers-reduced-motion: reduce){.ve-mthread{animation:none !important}}
/* Témoignages */
.ve-temoin{margin:0}
/* En-tête des offres : montage flou */
.ve-head-flou{transform:scale(1.05)}
@media (prefers-reduced-transparency: reduce){.ve-head-flou{display:none}}
@media (max-width: 760px){.ve-band-clair{margin-left:-20px !important;margin-right:-20px !important;padding-left:20px !important;padding-right:20px !important}.ve-devis dl > div{grid-template-columns:1fr !important;gap:2px !important}}
.ve-devis dl{margin:0}
@media (max-width:700px){.ve-real-deco{display:none}}

.ve-somm-nav .ve-somm:hover{background:var(--c)!important;color:#FFFFFF!important}.ve-somm-nav .ve-somm:hover span{color:#FFFFFF!important}
.ve-faq[open]{background:var(--l);border-radius:12px;padding:16px 16px;border-bottom-color:transparent}

.ve-caro{position:relative}
.ve-caro-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;border-radius:16px;scrollbar-width:none;box-shadow:0 0 0 1px rgba(15,42,68,.08),0 18px 40px rgba(15,42,68,.12)}
.ve-caro-track::-webkit-scrollbar{display:none}
.ve-caro-track:focus-visible{outline:3px solid var(--c);outline-offset:4px}
.ve-caro-slide{flex:0 0 100%;margin:0;scroll-snap-align:start;position:relative}
.ve-caro-slide img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover}
.ve-caro-slide figcaption{position:absolute;left:14px;bottom:14px;max-width:calc(100% - 28px);background:#FFFFFF;border-radius:12px;padding:8px 14px;font:600 14px/1.35 Inter,sans-serif;color:#0F2A44;box-shadow:0 8px 24px rgba(15,42,68,.18)}
.ve-caro-slide figcaption span{display:block;font-size:11px;letter-spacing:.14em}
.ve-caro-btn{position:absolute;top:calc(50% - 22px);width:44px;height:44px;border-radius:50%;border:0;background:#FFFFFF;color:var(--c);font:600 28px/1 Inter,sans-serif;cursor:pointer;box-shadow:0 6px 18px rgba(15,42,68,.25);display:flex;align-items:center;justify-content:center;padding:0 0 3px}
.ve-caro-prev{left:12px}.ve-caro-next{right:12px}
.ve-caro-btn:hover{background:var(--c);color:#FFFFFF}
.ve-caro-dots{display:flex;justify-content:center;gap:8px;margin-top:12px}
.ve-caro-dots button{width:10px;height:10px;border-radius:50%;border:0;padding:0;background:#D6D9DE;cursor:pointer}
.ve-caro-dots button[aria-current="true"]{background:var(--c);width:26px;border-radius:5px}
@media (max-width:700px){.ve-caro-btn{display:none}.ve-caro-slide figcaption{position:static;border-radius:0;box-shadow:none;padding:10px 2px 0}}
@media (prefers-reduced-motion:reduce){.ve-caro-track{scroll-behavior:auto}}

/* Titre d'accueil : prime sur la règle générale des h1 sur mobile */
@media (max-width: 760px){.ve-page h1.ve-hero-titre{font-size:clamp(38px,10.5vw,50px) !important;line-height:1.05 !important}}
/* Cartes en relief au survol : inclinaison 3D qui suit la souris, élévation, ombre portée et reflet */
.ve-tilt{position:relative;transform-style:preserve-3d;transform:perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(var(--ty,0px)) scale(var(--sc,1));transition:transform .5s cubic-bezier(.2,.8,.2,1),box-shadow .5s ease;will-change:transform}
.ve-tilt::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(circle at var(--gx,50%) var(--gy,0%),rgba(255,255,255,.38),rgba(255,255,255,0) 58%);opacity:0;transition:opacity .4s ease;z-index:2}
.ve-tilt.is-tilt{--ty:-10px;--sc:1.02;transition:transform .12s linear,box-shadow .35s ease;box-shadow:0 34px 60px -18px rgba(15,42,68,.38),0 14px 28px -10px rgba(15,42,68,.22) !important}
.ve-tilt.is-tilt::after{opacity:1}
@media (hover: none), (prefers-reduced-motion: reduce){.ve-tilt{transform:none !important;transition:none !important}.ve-tilt::after{display:none}}
@media (max-width: 860px){.ve-par-offre{grid-template-columns:1fr !important}}
@media (max-width: 760px){.ve-real-titre{font-size:clamp(34px,10vw,46px) !important}}
