body{margin:0;background:#fff}
a{color:#121212}a:hover{color:#121212}
.ve-card{box-shadow:0 2px 6px rgba(18,18,18,.04),0 12px 28px rgba(18,18,18,.06);transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s ease,border-color .35s ease;animation:ve-up .7s cubic-bezier(.2,.8,.2,1) both}
.ve-card:nth-child(2){animation-delay:.12s}.ve-card:nth-child(3){animation-delay:.24s}
.ve-art{background-color:#F8F1E7;background-image:radial-gradient(rgba(18,18,18,.10) 1px,transparent 1.2px);background-size:14px 14px}
.ve-art svg{transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.ve-card:hover .ve-art svg{transform:scale(1.12) rotate(-2deg)}
.ve-card:hover{transform:translateY(-8px) scale(1.02);border-color:#0F2A44;box-shadow:0 4px 10px rgba(18,18,18,.06),0 22px 44px rgba(15,42,68,.22)}
@keyframes ve-up{from{opacity:.001;transform:translateY(18px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion: reduce){.ve-card{animation:none;transition:none}}
.ve-step-card{animation:ve-up .7s cubic-bezier(.2,.8,.2,1) both;transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.ve-step-card:nth-child(2){animation-delay:.25s}.ve-step-card:nth-child(3){animation-delay:.5s}.ve-step-card:nth-child(4){animation-delay:.75s}
.ve-step-card:hover{transform:translateY(-6px)}
.ve-step-card > span:first-child{transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s ease}
.ve-step-card:hover > span:first-child{transform:scale(1.3);box-shadow:0 0 0 6px rgba(15,42,68,.25)}
.ve-step-card > div:last-child{transition:box-shadow .35s ease,background-color .35s ease}
.ve-step-card:hover > div:last-child{background-color:#E8D9C4;box-shadow:0 8px 20px rgba(15,42,68,.25)}
.ve-line{transform-origin:left center;animation:ve-line 1.4s cubic-bezier(.4,0,.2,1) both}
@keyframes ve-line{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.ve-photo{animation:ve-up .9s cubic-bezier(.2,.8,.2,1) .15s both}
@media (prefers-reduced-motion: reduce){.ve-step-card,.ve-line,.ve-photo{animation:none}}
.ap-rise{animation:ve-up .8s cubic-bezier(.2,.8,.2,1) both}
.ap-d1{animation-delay:.15s}.ap-d2{animation-delay:.3s}.ap-d3{animation-delay:.45s}.ap-d4{animation-delay:.6s}.ap-d5{animation-delay:.9s}.ap-d6{animation-delay:1.3s}.ap-d7{animation-delay:1.7s}.ap-d8{animation-delay:2.1s}
.ap-float{animation:ap-float 6s ease-in-out infinite}
@keyframes ap-float{0%,100%{transform:translate(0,0)}50%{transform:translate(-10px,10px)}}
.ap-marquee{display:flex;width:max-content;animation:ap-mq 28s linear infinite}
@keyframes ap-mq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.ap-row{position:relative;transition:padding-left .4s cubic-bezier(.2,.8,.2,1)}
.ap-row::before{content:"";position:absolute;left:0;top:0;bottom:0;width:0;background:#F2E6D6;transition:width .5s cubic-bezier(.2,.8,.2,1);z-index:0;border-radius:14px}
.ap-row:hover::before{width:100%}
.ap-row:hover{padding-left:20px}
.ap-row > *{position:relative;z-index:1}
.ap-row .ap-arrow{transition:transform .4s cubic-bezier(.2,.8,.2,1),color .3s}
.ap-row:hover .ap-arrow{transform:translateX(10px);color:#0F2A44}
.ap-word{background:linear-gradient(90deg,#2C6E9B,#2C6E9B) no-repeat 0 92%/0% 10px;animation:ap-under 1.2s cubic-bezier(.2,.8,.2,1) 1s forwards}
@keyframes ap-under{to{background-size:100% 10px}}
@media (prefers-reduced-motion: reduce){.ap-rise,.ap-float,.ap-marquee,.ap-word{animation:none}.ap-word{background-size:100% 10px}}
.pj-rise{animation:ve-up .8s cubic-bezier(.2,.8,.2,1) both}
.pj-d1{animation-delay:.12s}.pj-d2{animation-delay:.25s}.pj-d3{animation-delay:.4s}
.pj-kb{animation:pj-kb 14s ease-in-out infinite alternate;transform-origin:60% 40%}
@keyframes pj-kb{from{transform:scale(1)}to{transform:scale(1.08) translate(-1.5%,1%)}}
.pj-tilt{animation:pj-tilt 7s ease-in-out infinite}
@keyframes pj-tilt{0%,100%{transform:translate(0,0) rotate(0)}50%{transform:translate(-8px,8px) rotate(-1deg)}}
.pj-frame{animation:ve-up 1s cubic-bezier(.2,.8,.2,1) .2s both}
.pj-blob{animation:pj-blob 9s ease-in-out infinite alternate}
@keyframes pj-blob{to{transform:translate(-60px,40px) scale(1.15)}}
.pj-pulse{animation:pj-pulse 2.2s ease-in-out infinite}
@keyframes pj-pulse{0%,100%{box-shadow:0 0 0 0 rgba(15,42,68,.5)}50%{box-shadow:0 0 0 7px rgba(15,42,68,0)}}
.pj-step{border-top:3px solid rgba(18,18,18,.12)}
.pj-step::before{content:"";position:absolute;left:0;top:-3px;height:3px;width:100%;background:#0F2A44;transform-origin:left;animation:ve-line 1s cubic-bezier(.4,0,.2,1) both}
.pj-step:nth-child(2)::before{animation-delay:.6s}.pj-step:nth-child(3)::before{animation-delay:1.2s}.pj-step:nth-child(4)::before{animation-delay:1.8s}
.pj-step{animation:ve-up .8s cubic-bezier(.2,.8,.2,1) both}
.pj-step:nth-child(2){animation-delay:.6s}.pj-step:nth-child(3){animation-delay:1.2s}.pj-step:nth-child(4){animation-delay:1.8s}
.pj-dot{z-index:1;transition:background .3s,transform .3s}
.pj-step:hover .pj-dot{background:#0F2A44;transform:scale(1.25)}
.pj-chip{display:inline-block;animation:pj-pop .5s cubic-bezier(.3,1.6,.5,1) both}
.pj-chip:nth-child(2){animation-delay:.08s}.pj-chip:nth-child(3){animation-delay:.16s}.pj-chip:nth-child(4){animation-delay:.24s}.pj-chip:nth-child(5){animation-delay:.32s}
@keyframes pj-pop{from{opacity:.001;transform:scale(.6)}to{opacity:1;transform:none}}
.pj-chip{transition:transform .25s}.pj-chip:hover{transform:translateY(-3px)}
.pj-nav{transition:transform .25s}.pj-nav:hover{transform:translateX(4px)}
@media (prefers-reduced-motion: reduce){.pj-rise,.pj-kb,.pj-tilt,.pj-frame,.pj-blob,.pj-pulse,.pj-step,.pj-step::before,.pj-chip{animation:none}}
.sx-panel{animation:ve-up .5s ease both}
.of-num{animation:sx-num .8s cubic-bezier(.2,.8,.2,1) both}
@keyframes sx-num{from{opacity:.001;transform:translateY(30px) scale(.9)}to{opacity:1;transform:none}}
.of-swap{animation:of-swap .5s cubic-bezier(.2,.8,.2,1) both}
@keyframes of-swap{from{opacity:.001;transform:translateY(14px)}to{opacity:1;transform:none}}
.of-need{animation:ve-up .7s cubic-bezier(.2,.8,.2,1) both;transition:background .3s,padding .3s}
.of-need:nth-child(3){animation-delay:.1s}.of-need:nth-child(4){animation-delay:.2s}
.of-need:hover{background:rgba(255,255,255,.6);padding-left:26px}
.of-liv{animation:ve-up .6s cubic-bezier(.2,.8,.2,1) both}
.of-liv:nth-child(2){animation-delay:.1s}.of-liv:nth-child(3){animation-delay:.2s}.of-liv:nth-child(4){animation-delay:.3s}
.of-fact{animation:ve-up .8s cubic-bezier(.2,.8,.2,1) both}
.of-ico{transition:transform .4s cubic-bezier(.3,1.6,.5,1)}.of-fact:hover .of-ico{transform:scale(1.15) rotate(-8deg)}
.of-q:hover{color:#0F2A44}
.of-ans{animation:of-swap .4s ease both}
@media (prefers-reduced-motion: reduce){.of-num,.of-swap,.of-need,.of-liv,.of-fact,.of-ans{animation:none}}
.ve-work{display:flex;flex-direction:column;gap:14px;text-decoration:none;color:#121212;animation:ve-up .6s cubic-bezier(.2,.8,.2,1) both}
.ve-work .ve-thumb{overflow:hidden;border-radius:18px}
.ve-work .ve-thumb > div{transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.ve-work:hover .ve-thumb > div{transform:scale(1.06)}
.ve-work:hover h3{text-decoration:underline;text-decoration-color:#0F2A44;text-decoration-thickness:3px;text-underline-offset:4px}
.sx-tab:hover span:nth-child(2){color:#0F2A44}
.sx-panel{animation:sx-in .55s cubic-bezier(.2,.8,.2,1) both}
@keyframes sx-in{from{opacity:.001;transform:translateX(24px)}to{opacity:1;transform:none}}
.sx-num{animation:sx-num .7s cubic-bezier(.2,.8,.2,1) .1s both}
.sx-fmt{animation:ve-up .8s cubic-bezier(.2,.8,.2,1) both;position:relative}
.sx-fmt:nth-child(2){animation-delay:.15s}.sx-fmt:nth-child(3){animation-delay:.3s}.sx-fmt:nth-child(4){animation-delay:.45s}
.sx-ico{position:relative}
.sx-ico::after{content:"";position:absolute;left:0;top:-3px;height:3px;width:0;background:#0F2A44;transition:width .5s cubic-bezier(.2,.8,.2,1)}
.sx-fmt:hover .sx-ico::after{width:100%}
.sx-ico svg{transition:transform .5s cubic-bezier(.2,.8,.2,1);transform-origin:left center}
.sx-fmt:hover .sx-ico svg{transform:scale(1.15) rotate(-3deg)}
@media (prefers-reduced-motion: reduce){.sx-panel,.sx-num,.sx-fmt{animation:none}}[hidden]{display:none !important}
.ve-skip{position:absolute;left:-9999px;top:0;background:#0F2A44;color:#fff;padding:10px 16px;z-index:100}.ve-skip:focus{left:8px;top:8px}
img{max-width:100%}

/* Adaptation mobile : la maquette a été dessinée pour ordinateur (styles en ligne), on l'adapte ici sans toucher au rendu bureau. */
.ve-page{overflow-x:clip}
@media (max-width: 760px){
.ve-page [style*="grid-template-columns"]{grid-template-columns:minmax(0,1fr) !important}
.ve-page [style*="max-width: 1180px"],.ve-page [style*="max-width: 760px"]{padding-left:20px !important;padding-right:20px !important}
.ve-page *{min-width:0;overflow-wrap:break-word}
.ve-page h1{font-size:clamp(30px,9vw,42px) !important;line-height:1.1 !important}
.ve-page h2{font-size:clamp(24px,7vw,30px) !important}
.ve-page svg{max-width:100%;height:auto}
.ve-page header nav a,.ve-page header nav button{min-height:44px;display:inline-flex;align-items:center}
#ve-cookies{left:12px !important;right:12px !important;bottom:12px !important;max-width:none !important}
}

.mn-item .mn-dot{transition:transform .25s}.mn-item:hover .mn-dot{transform:scale(1.5)}.mn-item:hover{color:#0F2A44!important}

/* Charte 2026 terracotta et bleu : titres en bleu nuit, sauf sur fond sombre */
h1,h2,h3{color:#0F2A44}
[style*="background: #0F2A44"] h1,[style*="background: #0F2A44"] h2,[style*="background: #0F2A44"] h3,[style*="background:#0F2A44"] h1,[style*="background:#0F2A44"] h2,[style*="background:#0F2A44"] h3,footer h2,footer h3{color:inherit}
