:root{
--midnight:#202040;--navy:#002060;--deep:#0A3A7A;--primary:#20609F;--steel:#3A7FB8;--azure:#5FC0E0;--sky:#A0D8EC;--ice:#C0E0FF;--mist:#EAF2FA;--white:#fff;
--ink:#0E1733;--ink-2:#34405C;--ink-3:#5B6782;--line:rgba(0,32,96,.14);--line-d:rgba(255,255,255,.16);
--f-sans:'Familjen Grotesk',system-ui,-apple-system,'Segoe UI',sans-serif;--f-serif:'Libre Caslon Text',Georgia,serif;
--ease-out:cubic-bezier(.23,1,.32,1);--ease-io:cubic-bezier(.77,0,.175,1);--ease-drawer:cubic-bezier(.32,.72,0,1);
--gut:clamp(20px,4.2vw,72px);--sec:clamp(96px,12vw,196px);--max:1480px;--r:18px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:#fff;color:var(--ink);font-family:var(--f-sans);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}
img,video,canvas{display:block;max-width:100%}
a{color:var(--primary);text-decoration:none}a:hover{color:var(--deep)}
[data-theme=dark] a{color:var(--sky)}[data-theme=dark] a:hover{color:#fff}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
h1,h2,h3,h4,p,figure,blockquote,ul,ol,dl{margin:0}
ul,ol{padding:0;list-style:none}
::selection{background:var(--azure);color:var(--midnight)}
:focus-visible{outline:2px solid var(--azure);outline-offset:3px;border-radius:4px}
.wrap{width:100%;max-width:var(--max);margin:0 auto;padding-inline:var(--gut)}
.narrow{max-width:980px}
.sec{position:relative;padding-block:var(--sec)}
[data-theme=light]{background:#fff;color:var(--ink)}
[data-theme=mist]{background:var(--mist);color:var(--ink)}
[data-theme=sky]{background:var(--sky);color:var(--navy)}
[data-theme=dark]{background:var(--navy);color:#fff}
[data-theme=night]{background:var(--midnight);color:#fff}
[data-theme=night] a{color:var(--sky)}
.grain::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.07;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxNjAnIGhlaWdodD0nMTYwJz48ZmlsdGVyIGlkPSduJz48ZmVUdXJidWxlbmNlIHR5cGU9J2ZyYWN0YWxOb2lzZScgYmFzZUZyZXF1ZW5jeT0nLjknIG51bU9jdGF2ZXM9JzInIHN0aXRjaFRpbGVzPSdzdGl0Y2gnLz48L2ZpbHRlcj48cmVjdCB3aWR0aD0nMTAwJScgaGVpZ2h0PScxMDAlJyBmaWx0ZXI9J3VybCgjbiknLz48L3N2Zz4=")}

/* Typographie */
.d1{font-weight:600;font-size:clamp(58px,10.2vw,184px);line-height:.88;letter-spacing:-.052em}
.h1{font-weight:600;font-size:clamp(44px,6.6vw,112px);line-height:.94;letter-spacing:-.045em;text-wrap:balance}
.h2{font-weight:600;font-size:clamp(34px,4.5vw,72px);line-height:1;letter-spacing:-.038em;text-wrap:balance}
.h3{font-weight:600;font-size:clamp(22px,2vw,30px);line-height:1.12;letter-spacing:-.022em;text-wrap:balance}
.h4{font-weight:600;font-size:19px;line-height:1.25;letter-spacing:-.012em}
.lead{font-size:clamp(19px,1.55vw,23px);line-height:1.5;letter-spacing:-.01em;text-wrap:pretty}
.body{font-size:17px;line-height:1.65;text-wrap:pretty}
.small{font-size:14.5px;line-height:1.55}
.it{font-family:var(--f-serif);font-style:italic;font-weight:400;letter-spacing:-.03em}
.h1 .it,.d1 .it,.h2 .it{letter-spacing:-.045em}
/* Titres : bleu marine et accent italique bleu sur fond clair, blanc et ciel sur fond sombre. */
.d1,.h1,.h2,.h3,.h4{color:var(--navy)}
.d1 .it,.h1 .it,.h2 .it,.h3 .it,.h4 .it{color:var(--primary)}
[data-theme=dark] .d1,[data-theme=dark] .h1,[data-theme=dark] .h2,[data-theme=dark] .h3,[data-theme=dark] .h4,[data-theme=night] .d1,[data-theme=night] .h1,[data-theme=night] .h2,[data-theme=night] .h3,[data-theme=night] .h4{color:#fff}
[data-theme=dark] .d1 .it,[data-theme=dark] .h1 .it,[data-theme=dark] .h2 .it,[data-theme=dark] .h3 .it,[data-theme=night] .d1 .it,[data-theme=night] .h1 .it,[data-theme=night] .h2 .it,[data-theme=night] .h3 .it{color:var(--sky)}
[data-theme=sky] .d1,[data-theme=sky] .h1,[data-theme=sky] .h2,[data-theme=sky] .h3{color:var(--navy)}
[data-theme=sky] .d1 .it,[data-theme=sky] .h1 .it,[data-theme=sky] .h2 .it{color:var(--primary)}
.muted{color:var(--ink-3)}
[data-theme=dark] .muted,[data-theme=night] .muted{color:rgba(255,255,255,.74)}
[data-theme=sky] .muted{color:rgba(0,32,96,.8)}
.accent{color:var(--primary)}
[data-theme=dark] .accent,[data-theme=night] .accent{color:var(--sky)}
.eyebrow{display:flex;align-items:center;gap:12px;font-size:12.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--primary)}
.eyebrow::before{content:"";width:22px;height:1.5px;background:currentColor}
[data-theme=dark] .eyebrow,[data-theme=night] .eyebrow{color:var(--azure)}
[data-theme=sky] .eyebrow{color:var(--navy)}
.num{font-feature-settings:"tnum" 1;letter-spacing:-.02em}
.grand-num{font-variant-numeric:tabular-nums;letter-spacing:-.01em!important}
.mono{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}

/* Mots révélés (ligne masquée, montée en cascade). Le masque déborde largement du mot : accents,
   jambages (p, j, g) et crochets de l'italique serif y tiennent entiers, aucune lettre n'apparaît en deux temps. */
.split .w{display:inline-block;overflow:hidden;vertical-align:top;padding:.3em .34em .42em;margin:-.3em -.34em -.42em}
.split .w>span{display:inline-block;transform:translate3d(0,calc(100% + .75em),0);transition:transform 1.1s var(--ease-out);transition-delay:calc(var(--i) * 42ms + var(--d,0ms))}
.split[data-in] .w>span{transform:none}
.split[data-in] .w{animation:wOuvre 1ms linear forwards;animation-delay:calc(var(--i) * 42ms + var(--d,0ms) + 1.1s)}
@keyframes wOuvre{to{overflow:visible}}
.rv{opacity:0;transform:translate3d(0,28px,0);transition:opacity .9s var(--ease-out),transform 1.1s var(--ease-out);transition-delay:var(--d,0ms)}
.rv[data-in]{opacity:1;transform:none}
.rv-img{clip-path:inset(12% 8% 12% 8% round 6px);transition:clip-path 1.4s var(--ease-io);transition-delay:var(--d,0ms)}
.rv-img>*{transform:scale(1.18);transition:transform 1.8s var(--ease-out),opacity .8s var(--ease-out);transition-delay:var(--d,0ms),0s}
.rv-img[data-in]{clip-path:inset(0 0 0 0 round 6px)}.rv-img[data-in]>*{transform:none}
/* Photos : l'aperçu flou (ou le fond du cadre) tient la place ; la photo se pose en fondu une fois
   entièrement chargée et décodée (data-ok, posé par js/motion.js), jamais par bandes. */
.media img,.bureau img,.gcarte-img img,.an-une-img img,.phero-img img,.secteur-img img{opacity:0}
.media img[data-ok],.bureau img[data-ok],.gcarte-img img[data-ok],.an-une-img img[data-ok],.phero-img img[data-ok],.secteur-img img[data-ok]{opacity:1}
img[data-err]{visibility:hidden}
[data-parallax]{will-change:transform}
.sw{opacity:.16;transition:opacity .35s ease,color .35s ease}.sw.on{opacity:1}

/* Boutons */
.btn{--bg:var(--navy);--fg:#fff;--fill:var(--primary);position:relative;display:inline-flex;align-items:center;gap:14px;height:58px;padding:0 10px 0 28px;border-radius:999px;background:var(--bg);color:var(--fg);font-weight:600;font-size:16px;letter-spacing:-.01em;overflow:hidden;isolation:isolate;transition:transform .16s var(--ease-out),color .3s ease;white-space:nowrap}
.btn:hover{color:var(--fg)}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--fill);clip-path:circle(0% at 50% 120%);transition:clip-path .55s var(--ease-out)}
.btn .ico{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.14);transition:transform .45s var(--ease-out)}
.btn .ico svg{width:16px;height:16px}
.btn:active{transform:scale(.97)}
@media (hover:hover) and (pointer:fine){.btn:hover::before{clip-path:circle(150% at 50% 120%)}.btn:hover .ico{transform:rotate(-45deg)}}
.btn--light{--bg:#fff;--fg:var(--navy);--fill:var(--sky)}.btn--light .ico{background:rgba(0,32,96,.08)}
.btn--ghost{--bg:transparent;--fg:currentColor;--fill:rgba(0,32,96,.07);box-shadow:inset 0 0 0 1.5px currentColor}
[data-theme=dark] .btn--ghost,[data-theme=night] .btn--ghost{--fill:rgba(255,255,255,.1)}
.btn--sm{height:46px;font-size:15px;padding-left:20px;gap:10px}.btn--sm .ico{width:32px;height:32px}
.mag{display:inline-block;transition:transform .5s var(--ease-out)}
.tlink{display:inline-flex;align-items:center;gap:10px;font-weight:600;color:inherit;background:linear-gradient(currentColor,currentColor) 0 100%/0 1.5px no-repeat;padding-bottom:4px;transition:background-size .45s var(--ease-out)}
.tlink:hover{color:inherit;background-size:100% 1.5px}
.tlink svg{width:14px;height:14px;transition:transform .35s var(--ease-out)}.tlink:hover svg{transform:translateX(4px)}

/* Barre de navigation */
.nav{position:fixed;inset:0 0 auto;z-index:60;transition:transform .5s var(--ease-out),color .3s}
.nav.cache{transform:translateY(-110%)}
.nav-in{display:flex;align-items:center;justify-content:space-between;gap:24px;height:84px;transition:height .4s var(--ease-out)}
.nav.plein .nav-in{height:68px}
.nav::before{content:"";position:absolute;inset:0;opacity:0;background:rgba(255,255,255,.72);backdrop-filter:blur(18px) saturate(170%);-webkit-backdrop-filter:blur(18px) saturate(170%);box-shadow:0 1px 0 rgba(0,32,96,.08);transition:opacity .35s}
.nav.plein::before{opacity:1}
.nav.blanc{color:var(--navy)}.nav.blanc::before{opacity:1;background:#fff;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:0 1px 0 rgba(0,32,96,.08)}
.nav.sombre{color:#fff}.nav.sombre::before{background:rgba(0,22,70,.55);box-shadow:0 1px 0 rgba(255,255,255,.08)}
/* En-tête : même largeur que l'ouverture de l'accueil. Le nom, les huit liens et les boutons tiennent sur une ligne ; le nom ne se rogne jamais. */
.nav .wrap{position:relative;max-width:1840px}
.logo{flex:none;display:flex;align-items:center;gap:12px;color:inherit;font-weight:600;font-size:21px;letter-spacing:-.03em}
.logo:hover{color:inherit}
.logo img{width:30px;height:auto;transform-origin:50% 50%}
/* Survol du logo : la flèche fait un tour sur elle-même, les lettres montent et se relaient en azur. */
@keyframes logoTour{from{transform:perspective(160px) rotateY(0)}to{transform:perspective(160px) rotateY(360deg)}}
@media (hover:hover) and (pointer:fine){.logo:hover img{animation:logoTour .9s var(--ease-out)}}
.logo-nom{display:inline-flex;overflow:hidden;line-height:1.3}
.logo-nom i{position:relative;display:inline-block;font-style:normal;transition:transform .55s var(--ease-out);transition-delay:calc(var(--i) * 22ms)}
.logo-nom i::after{content:attr(data-c);position:absolute;left:0;top:100%;color:var(--azure)}
.logo:hover .logo-nom i{transform:translateY(-100%)}
.nav-liens{display:flex;align-items:center;gap:6px}
.nav-lien{position:relative;padding:10px 14px;border-radius:999px;font-size:15px;font-weight:500;color:inherit;white-space:nowrap;transition:background .25s}
.nav-lien:hover{color:inherit;background:rgba(0,32,96,.06)}
.nav.sombre .nav-lien:hover{background:rgba(255,255,255,.1)}
.nav-lien[aria-current=page]::after{content:"";position:absolute;left:50%;bottom:4px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--azure)}
.nav-item{position:relative;display:flex}
.nav-sous{position:absolute;left:0;top:100%;padding-top:10px;opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .22s,transform .22s,visibility 0s .22s;z-index:2}
.nav-item.a-sous:hover .nav-sous,.nav-item.a-sous:focus-within .nav-sous{opacity:1;visibility:visible;transform:none;transition:opacity .22s,transform .22s}
.nav-sous-in{display:flex;flex-direction:column;gap:2px;min-width:260px;padding:8px;border-radius:16px;background:#fff;color:var(--navy);box-shadow:0 12px 40px rgba(0,20,60,.16),0 0 0 1px rgba(0,32,96,.06)}
.nav-sous-in a{display:flex;align-items:baseline;gap:12px;padding:9px 12px;border-radius:10px;font-size:14.5px;font-weight:500;color:var(--navy);white-space:nowrap;transition:background .2s}
.nav-sous-in a .n{min-width:20px;font-size:12px;font-weight:600;letter-spacing:.06em;color:var(--primary);font-variant-numeric:tabular-nums}
.nav-sous-in a:hover{background:var(--primary);color:#fff}.nav-sous-in a:hover .n{color:var(--sky)}
.nav-sous-in a[aria-current=page]{background:var(--navy);color:#fff}.nav-sous-in a[aria-current=page] .n{color:var(--sky)}
.nav.menu-ouvert .nav-sous{display:none}
.nav-actions{display:flex;align-items:center;gap:10px}
.langue{display:flex;align-items:center;height:40px;padding:3px;border-radius:999px;box-shadow:inset 0 0 0 1px currentColor;font-size:12.5px;font-weight:700;letter-spacing:.08em;opacity:.9}
.langue>span{display:grid;place-items:center;height:34px;min-width:38px;border-radius:999px;transition:background .3s,color .3s}
.langue>span.on{background:currentColor}.langue>span.on b{color:#fff}.nav.sombre .langue>span.on b,[data-theme=dark] .langue>span.on b,[data-theme=night] .langue>span.on b{color:var(--navy)}
.langue b{font-weight:700}
.burger{display:flex;align-items:center;gap:12px;height:46px;padding:0 8px 0 18px;border-radius:999px;background:var(--navy);color:#fff;font-weight:600;font-size:15px;transition:transform .16s var(--ease-out)}
.burger:active{transform:scale(.96)}
.nav.sombre .burger{background:#fff;color:var(--navy)}
.nav.sombre .btn{--bg:#fff;--fg:var(--navy);--fill:var(--sky)}.nav.sombre .btn .ico{background:rgba(0,32,96,.08)}
.burger .tr{position:relative;width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.14)}
.nav.sombre .burger .tr{background:rgba(0,32,96,.08)}
.burger .tr i{position:absolute;left:9px;right:9px;height:1.6px;background:currentColor;border-radius:2px;transition:transform .45s var(--ease-out),top .45s var(--ease-out)}
.burger .tr i:nth-child(1){top:12px}.burger .tr i:nth-child(2){top:18px}
.menu-ouvert .burger .tr i:nth-child(1){top:15px;transform:rotate(45deg)}
.menu-ouvert .burger .tr i:nth-child(2){top:15px;transform:rotate(-45deg)}
.progres{position:fixed;left:0;top:0;height:2px;width:100%;z-index:61;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--azure),var(--primary))}
@media (max-width:1640px){.nav-lien{padding:10px 11px}.nav-liens{gap:2px}}
@media (max-width:1480px){.nav-liens{display:none}}
@media (max-width:560px){.nav .btn,.nav .langue{display:none}.burger{padding-left:14px}}

/* Menu plein écran */
.menu{position:fixed;inset:0;z-index:58;background:var(--midnight);color:#fff;clip-path:circle(0px at var(--mx,95%) var(--my,42px));transition:clip-path .8s var(--ease-io);visibility:hidden;overflow:hidden}
.menu.ouvert{clip-path:circle(150vmax at var(--mx,95%) var(--my,42px));visibility:visible}
.menu.ferme-vite{transition-duration:.55s}
.menu-scroll{position:absolute;inset:0;overflow-y:auto;padding-top:120px;padding-bottom:48px}
.menu-grille{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(32px,5vw,96px);align-items:start}
.m-spine{display:grid;gap:2px;padding-top:6px}
.menu .gtitre{display:flex;gap:14px;align-items:baseline;margin-bottom:14px;font-size:12.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--azure)}
.menu .m-grand,.menu .m-grand:hover{color:#fff}
.m-grand{display:flex;align-items:baseline;gap:18px;width:100%;padding:6px 0;text-align:left;color:#fff;font-weight:600;font-size:clamp(34px,4.3vw,66px);line-height:1.04;letter-spacing:-.045em}
.m-grand .n{min-width:24px;font-size:clamp(14px,1.2vw,18px);font-weight:600;letter-spacing:.06em;color:rgba(255,255,255,.55);transform:translateY(-1.5em);font-variant-numeric:tabular-nums}
.m-grand[aria-current=page] .n{color:var(--azure)}
.m-grand .t{color:rgba(255,255,255,.62);background:linear-gradient(90deg,var(--sky),var(--azure)) 0 0/0% 100% no-repeat;-webkit-background-clip:text;background-clip:text;transition:background-size .6s var(--ease-out),color .35s}
.m-bloc.sel .m-grand .t,.m-grand:hover .t{color:transparent;background-size:100% 100%}
.m-grand .fl{display:grid;place-items:center;align-self:center;flex:none;width:.52em;height:.52em;margin-left:auto;border-radius:50%;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.35);color:var(--sky);opacity:0;transform:translateX(-14px);transition:opacity .4s,transform .7s var(--ease-out)}
.m-grand .fl svg{width:40%;height:40%}
.m-bloc.sel .m-grand .fl{opacity:1;transform:none}
.m-sous{display:none}
.m-pan{border-left:1px solid var(--line-d);padding-left:clamp(24px,3vw,56px);min-height:440px}
.pan-tete{margin-bottom:16px}
.pan-titre{margin-top:12px;max-width:34ch;text-wrap:balance}
.pan-lede{margin-top:10px;max-width:500px;color:rgba(255,255,255,.7);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.pan-cta{margin-top:20px;color:var(--sky)}
/* Encadré PME dans le volet Expertises */
.pan-encart{display:grid;gap:6px;margin-top:22px;padding:14px 22px;border-radius:14px;background:var(--mist);text-decoration:none;transition:transform .5s var(--ease-out),box-shadow .5s}
[data-theme=night] a.pan-encart,.pan-encart .pan-encart-t{color:var(--navy)}
.pan-encart:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(0,32,96,.18)}
.pan-encart-eye{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--primary)}
.pan-encart-t{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:600;letter-spacing:-.02em}
.pan-encart-t .n{font-size:clamp(19px,1.5vw,23px);letter-spacing:-.02em;line-height:1.15;color:var(--azure);font-weight:600;font-variant-numeric:tabular-nums}
.pan-encart-t svg{width:18px;height:18px;margin-left:auto;color:var(--primary)}
.pan-encart small{font-size:14px;line-height:1.5;color:var(--ink-2)}
.pan-l{display:grid}
@media (min-width:1200px){.pan-l--2{grid-template-columns:1fr 1fr;column-gap:36px}}
.pan-a{animation:panMonte .8s var(--ease-out) both;animation-delay:calc(var(--d0,0ms) + var(--i,0) * 45ms)}
@keyframes panMonte{from{opacity:0;transform:translate3d(0,26px,0)}to{opacity:1;transform:none}}
[data-reduce] .pan-a{animation:none}
.m-petit{display:grid;grid-template-columns:44px 1fr;gap:5px 6px;align-items:baseline;padding:15px 0;border-top:1px solid var(--line-d);color:#fff;font-size:17px;font-weight:500;letter-spacing:-.01em;transition:color .3s}
.m-petit.sans-n{grid-template-columns:1fr}.m-petit.sans-n small{grid-column:1}
.menu .m-petit{color:#fff}.menu .m-petit:hover{color:var(--sky)}
.m-petit>span:not(.n){font-size:clamp(19px,1.5vw,23px);font-weight:600;letter-spacing:-.024em;line-height:1.15;color:var(--ice);transition:color .3s}
.menu .m-petit:hover>span:not(.n){color:var(--sky)}
/* Indice d'expertise : même corps et même graisse que le nom, en azur, chiffres tabulaires, alignés sur la ligne de base. */
.m-petit .n{font-size:clamp(19px,1.5vw,23px);font-weight:600;letter-spacing:-.02em;line-height:1.15;color:var(--azure);font-variant-numeric:tabular-nums}
.m-petit small{grid-column:2;display:block;font-size:14px;color:rgba(255,255,255,.62);font-weight:400;line-height:1.45}
.menu .stag{opacity:0;transform:translate3d(0,40px,0);transition:opacity .5s ease,transform .8s var(--ease-out)}
.menu.ouvert .stag{opacity:1;transform:none;transition-delay:calc(180ms + var(--i) * 45ms)}
.menu-pied{display:flex;flex-wrap:wrap;gap:16px 32px;align-items:center;justify-content:space-between;margin-top:40px;padding-top:28px;border-top:1px solid var(--line-d);color:rgba(255,255,255,.72);font-size:15px}
.menu-contact{display:flex;flex-wrap:wrap;align-items:center;gap:10px 28px}
.menu-fleche{position:absolute;right:-12vw;bottom:-22vh;width:40vw;height:40vw;opacity:.22;pointer-events:none}
@media (max-width:900px){.menu-grille{grid-template-columns:1fr}.menu-fleche{display:none}.m-pan{display:none}.m-grand .fl{display:none}.m-sous{display:grid;padding:4px 0 18px 42px}.m-sous a{display:flex;align-items:baseline;gap:14px;padding:8px 0;color:rgba(255,255,255,.82);font-size:17px;font-weight:500}.m-sous a .n{min-width:28px;font-size:inherit;font-weight:600;color:var(--azure);font-variant-numeric:tabular-nums}}

/* Rideau de transition */
.rideau{position:fixed;inset:0;z-index:80;pointer-events:none}
.rideau i{position:absolute;inset:-10% -30%;transform:translate3d(0,110%,0) skewY(-6deg);will-change:transform}
.rideau i:nth-child(1){background:var(--azure)}.rideau i:nth-child(2){background:var(--primary)}.rideau i:nth-child(3){background:var(--midnight)}
.rideau:not(.couvre):not(.leve) i{visibility:hidden}
.rideau.couvre{pointer-events:all}
/* Passage rapide (retour à l'accueil par le logo) : les trois voiles seuls, sans signature. */
.rideau.rapide .etiquette,.rideau.rapide .et-lum{display:none}
/* Passage bref (toute navigation après la première de la session) : voiles, nom et page, sans logo ni plan d'eau. */
.rideau.bref .et-logo,.rideau.bref .et-lum{display:none}
.rideau.bref .etiquette{gap:clamp(6px,1vh,12px)}
.rideau.bref.couvre .etiquette{transition-delay:.15s}
.rideau.bref.couvre .et-mot>span{animation-duration:.6s;animation-delay:calc(200ms + var(--i) * 18ms)}
.rideau.bref.couvre .et-page{transition-delay:.45s}
/* Transition partagée (js/morph.js) : fond qui s'ouvre depuis la carte, numéro qui glisse vers le filigrane du héros. */
.morph{position:fixed;inset:0;z-index:57;pointer-events:none;font-family:var(--f-sans)}
.morph-bg{position:absolute;inset:0;background:var(--midnight);will-change:clip-path}
.morph-src{position:absolute;inset:0}
.morph-n{position:absolute;white-space:nowrap;will-change:left,top,font-size}
.morph-cache{opacity:0!important}
/* Lien d'évitement : visible au clavier seulement. */
.saut{position:fixed;left:16px;top:-80px;z-index:100;padding:12px 20px;border-radius:999px;background:var(--navy);color:#fff;font-weight:600;font-size:15px;box-shadow:0 10px 30px rgba(0,32,96,.25);transition:top .25s var(--ease-out)}
.saut:focus{top:16px;color:#fff;outline-offset:4px}
main:focus{outline:none}
/* Sous-navigation de section : barre collante sous l'en-tête, qui suit ses mouvements. */
.snav{position:sticky;top:var(--snav-top,84px);z-index:50;background:rgba(255,255,255,.86);backdrop-filter:blur(16px) saturate(160%);-webkit-backdrop-filter:blur(16px) saturate(160%);border-bottom:1px solid var(--line);transition:top .5s var(--ease-out)}
.snav-in{display:flex;align-items:center;gap:14px;height:58px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.snav-in::-webkit-scrollbar{display:none}
.snav-t{flex:none;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--primary)}
.snav-l{display:flex;gap:4px}
.snav a{flex:none;display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;font-size:14px;font-weight:500;color:var(--ink-2);white-space:nowrap;transition:background .25s,color .25s}
.snav a .n{font-weight:600;color:var(--primary);font-variant-numeric:tabular-nums}
.snav a:hover{background:var(--primary);color:#fff}.snav a:hover .n{color:var(--sky)}
.snav a[aria-current=page]{background:var(--navy);color:#fff}.snav a[aria-current=page] .n{color:var(--sky)}
/* Ruban en tête de page (expertises) : sous l'en-tête fixe, sur fond nuit. */
.snav-tete{padding-top:112px;background:var(--midnight)}
.snav-nuit .snav-t{display:none}
.snav-nuit{background:rgba(32,32,64,.72);border-bottom-color:rgba(255,255,255,.12)}
.snav-nuit a{color:rgba(255,255,255,.82)}.snav-nuit a .n{color:var(--sky)}
.snav-nuit a:hover{background:rgba(255,255,255,.1);color:#fff}
.snav-nuit a[aria-current=page]{background:#fff;color:var(--navy)}.snav-nuit a[aria-current=page] .n{color:var(--primary)}
/* Précédent / suivant en pied de section. */
.pager{background:#fff;border-top:1px solid var(--line)}
.pager-in{display:grid;grid-template-columns:1fr 1fr}
.pager-a{display:grid;gap:10px;padding:clamp(28px,3.5vw,48px) 0;color:var(--navy);transition:color .3s}
.pager-a .mono{color:var(--primary)}
.pager-t{display:flex;align-items:baseline;gap:12px;font-weight:600;font-size:clamp(20px,2vw,30px);line-height:1.15;letter-spacing:-.024em}
.pager-t .num{font-size:.7em;color:var(--primary)}
.pager-a svg{width:18px;height:18px;transition:transform .35s var(--ease-out)}
.pager-next{text-align:right;justify-items:end;border-left:1px solid var(--line);padding-left:clamp(20px,3vw,48px)}.pager-next .pager-t{flex-direction:row-reverse}
.pager-prev{padding-right:clamp(20px,3vw,48px)}.pager-prev svg{transform:rotate(180deg)}
.pager-a:hover{color:var(--primary)}.pager-next:hover svg{transform:translateX(6px)}.pager-prev:hover svg{transform:rotate(180deg) translateX(6px)}
.pager-vide{display:block}
@media (max-width:700px){.pager-in{grid-template-columns:1fr}.pager-next{border-left:0;border-top:1px solid var(--line);padding-left:0}}
.rideau.couvre i{transform:translate3d(0,0,0) skewY(0);transition:transform .62s var(--ease-io)}
.rideau.couvre i:nth-child(2){transition-delay:.06s}.rideau.couvre i:nth-child(3){transition-delay:.12s}
.rideau.leve i{transform:translate3d(0,-115%,0) skewY(6deg);transition:transform .8s var(--ease-io)}
.rideau.leve i:nth-child(1){transition-delay:.12s}.rideau.leve i:nth-child(2){transition-delay:.06s}
/* Signature du rideau : halo, logo 3D qui arrive en rotation, nom lettre à lettre, page en italique. */
.rideau .et-lum{position:absolute;left:50%;top:50%;width:96vmin;height:96vmin;border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(95,192,224,.3) 0%,rgba(95,192,224,.07) 38%,transparent 66%);opacity:0;transform:translate(-50%,-50%) scale(.55);transition:opacity .7s ease,transform 1.5s var(--ease-out)}
.rideau.couvre .et-lum{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:.3s}
.rideau.leve .et-lum{opacity:0;transition:opacity .4s ease}
.rideau .etiquette{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:clamp(8px,1.4vh,16px);color:#fff;opacity:0;transition:opacity .25s}
.rideau.couvre .etiquette{opacity:1;transition-delay:.3s}
.rideau.leve .etiquette{opacity:0;transform:translateY(calc(-50% - 48px));transition:opacity .35s ease,transform .7s var(--ease-io)}
.rideau .et-logo{position:relative;width:min(32vw,34vh,320px);height:min(32vw,34vh,320px)}
.rideau.couvre .et-logo{animation:pose 1.7s ease-in-out 1.8s both}
@keyframes pose{0%{transform:none}24%{transform:translateY(7px)}56%{transform:translateY(-3px)}82%{transform:translateY(1.5px)}100%{transform:none}}
.rideau arrow-3d,.rideau .et-vide{position:relative;z-index:1;width:100%;height:100%}
.rideau arrow-3d{opacity:0;transform:scale(.8) translateY(-72px);transition:opacity .7s ease,transform 1.5s cubic-bezier(.2,.7,.2,1)}
.rideau.couvre arrow-3d{opacity:1;transform:none;transition-delay:.3s}
.rideau .et-mot{display:flex;overflow:hidden;padding:0 .06em .14em;margin-bottom:-.14em;font-size:clamp(48px,7.2vw,116px);font-weight:600;letter-spacing:-.052em;line-height:1}
.rideau .et-mot>span{display:inline-block;transform:translateY(125%)}
.rideau.couvre .et-mot>span{animation:introL .95s var(--ease-out) forwards;animation-delay:calc(360ms + var(--i) * 32ms)}
.rideau .et-page{display:flex;align-items:center;gap:14px;font-family:var(--f-serif);font-style:italic;font-size:clamp(18px,1.9vw,27px);letter-spacing:-.01em;color:var(--sky);opacity:0;transform:translateY(12px);transition:opacity .6s ease,transform .9s var(--ease-out)}
.rideau .et-page::before,.rideau .et-page::after{content:"";width:clamp(18px,2.4vw,34px);height:1px;background:currentColor;opacity:.7}
.rideau.couvre .et-page{opacity:1;transform:none;transition-delay:.8s}

/* Ouverture : horizon */
.intro{position:fixed;inset:0;z-index:90;cursor:pointer;overflow:hidden}
.intro.rejoue{animation:introIn .35s ease backwards}@keyframes introIn{from{opacity:0}}
.intro-haut,.intro-bas{position:absolute;left:0;right:0;background:var(--midnight);will-change:transform}
.intro-haut{top:0;overflow:hidden}.intro-bas{bottom:0}
.intro-lueur{position:absolute;left:-10%;right:-10%;bottom:0;height:100%;background:radial-gradient(ellipse 55% 65% at 50% 100%,rgba(95,192,224,.5),rgba(32,32,64,0) 70%);transform-origin:50% 100%;opacity:0}
.intro-ligne{position:absolute;left:0;right:0;height:2px;background:#e6f6ff;box-shadow:0 0 24px 4px rgba(95,192,224,.8);transform:scaleX(0)}
.intro-fl{position:fixed;pointer-events:none}
.intro-fl arrow-3d{display:block;width:100%;height:100%}
.intro-base{position:fixed;left:0;right:0;text-align:center;font-family:var(--f-serif);font-style:italic;font-size:clamp(17px,1.6vw,22px);color:var(--sky);opacity:0}
html.intro-actif .a-hero-fleche{opacity:0!important;transform:none!important;transition:none!important}

/* Pied de page */
.pied{position:relative;overflow:hidden;background:var(--midnight);color:#fff;padding-top:clamp(80px,9vw,140px)}
.pied-haut{display:grid;grid-template-columns:minmax(max-content,1.3fr) repeat(3,minmax(0,1fr));gap:40px}
.pied h4{font-size:12.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--azure);margin-bottom:18px}
.pied ul{display:grid;gap:10px}
.pied .logo{font-size:clamp(32px,3.4vw,42px);gap:clamp(14px,1.6vw,20px)}.pied .logo img{width:clamp(56px,6vw,76px)}
.pied a{color:rgba(255,255,255,.82);font-size:15.5px}.pied a:hover{color:#fff}
.pied-adr{display:grid;gap:4px;margin-top:26px;font-style:normal;font-size:15px;line-height:1.5;color:rgba(255,255,255,.72)}.pied-adr a{font-size:15px}
.li-lien{display:inline-flex;align-items:center;gap:12px;justify-self:start}.li-lien img{width:26px;height:26px;flex:none}.li-lien span{font-size:19px;line-height:1}.pied-adr .li-lien{margin-top:12px}
.pied .tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.tag{display:inline-flex;align-items:center;min-height:30px;padding:6px 12px;line-height:1.35;border-radius:999px;font-size:11.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;box-shadow:inset 0 0 0 1px currentColor;opacity:.85}
.pied-mot{margin-top:clamp(56px,7vw,110px);font-weight:600;font-size:clamp(84px,19.5vw,360px);line-height:1;letter-spacing:-.065em;color:transparent;-webkit-text-stroke:1px rgba(160,216,236,.35);white-space:nowrap;transform:translate3d(calc((1 - var(--p,0)) * -6%),0,0)}
.pied-bas{position:relative;z-index:1;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:22px 0 26px;border-top:1px solid var(--line-d);font-size:12px;font-weight:600;letter-spacing:.14em;color:rgba(255,255,255,.6)}
@media (max-width:900px){.pied-haut{grid-template-columns:1fr 1fr}.pied-haut>:first-child{grid-column:1/-1}}

/* Formulaires */
.champ{display:grid;gap:10px}
.champ label,.lbl{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.inp{width:100%;padding:16px 0 14px;border:0;border-bottom:1.5px solid rgba(0,32,96,.22);background:transparent;font:inherit;font-size:19px;color:var(--ink);border-radius:0;transition:border-color .25s}
.inp:focus{outline:none;border-color:var(--primary)}
textarea.inp{min-height:150px;resize:vertical;line-height:1.5}
.puces{display:flex;flex-wrap:wrap;gap:8px}
.puce{min-height:40px;padding:8px 16px;line-height:1.3;text-align:left;border-radius:999px;box-shadow:inset 0 0 0 1px rgba(0,32,96,.25);font-size:14px;font-weight:500;transition:background .2s,color .2s,box-shadow .2s,transform .16s var(--ease-out)}
.puce:hover{box-shadow:inset 0 0 0 1px var(--navy)}
.puce:active{transform:scale(.97)}
.puce.on{background:var(--navy);color:#fff;box-shadow:none}
.alerte{color:#B42318;font-size:14px}
.piege{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}

@media (prefers-reduced-motion:reduce){.rv,.split .w>span,.rv-img,.rv-img>*{transition:none!important;transform:none!important;opacity:1!important;clip-path:none!important}}
