html,body{overflow-x:clip}
:root{
  --ink:#0E0E0E;--ink2:#151515;--ink3:#1C1C1B;--line:rgba(250,250,248,.09);--line2:rgba(250,250,248,.16);
  --paper:#F4F2EE;--paper2:#ECE9E3;--pline:rgba(14,14,14,.1);
  --white:#FAFAF8;--mute:#8E8A83;--mute2:#B5B1A9;--brun:#8B5E3C;--brunc:#B88A62;
  --ease:cubic-bezier(.2,.7,.2,1)
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ink);color:var(--white);font-family:Inter,system-ui,sans-serif;font-weight:300;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img,video{display:block;max-width:100%}
::selection{background:var(--brunc);color:var(--ink)}
.wrap{max-width:1360px;margin:0 auto;padding:0 48px}
.mono{font-family:'IBM Plex Mono',monospace;font-weight:400;letter-spacing:.22em;text-transform:uppercase;font-size:11px}
.disp{font-family:'Space Grotesk',sans-serif;font-weight:300;letter-spacing:-.045em;line-height:.95}
.disp b{font-weight:500}
.disp em{font-style:normal;color:var(--brunc)}
.idx{color:var(--brunc)}
@media (max-width:820px){.wrap{padding:0 20px}.hide-s{display:none!important}}

/* ---------- navigation ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;transition:background .4s,border-color .4s,backdrop-filter .4s;border-bottom:1px solid transparent}
.nav.solid{background:rgba(14,14,14,.78);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);border-bottom-color:var(--line)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;height:76px}
.brand{display:flex;align-items:center;gap:16px}
.brand img{height:34px;width:auto}
.brand span{font-family:'Space Grotesk';font-weight:400;font-size:11px;letter-spacing:.42em}
.menu{display:flex;gap:34px}
.menu a{font-size:13px;font-weight:400;color:var(--mute2);position:relative;padding:6px 0;transition:color .3s}
.menu a:after{content:'';position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--brunc);transition:right .4s var(--ease)}
.menu a:hover{color:var(--white)}.menu a:hover:after{right:0}
.nav-r{display:flex;gap:10px;align-items:center}
.lnk{height:40px;padding:0 16px;display:inline-flex;align-items:center;border:1px solid var(--line2);font-family:'IBM Plex Mono';font-size:10px;letter-spacing:.2em;text-transform:uppercase;transition:border-color .3s,background .3s,color .3s}
.lnk:hover{border-color:var(--white)}
.lnk.fill{background:var(--white);color:var(--ink);border-color:var(--white)}
.lnk.fill:hover{background:var(--brunc);border-color:var(--brunc)}
@media (max-width:1060px){.menu{display:none}}

/* ---------- boutons ---------- */
.cta{display:inline-flex;align-items:center;gap:18px;height:56px;padding:0 28px;font-family:'IBM Plex Mono';font-size:11px;letter-spacing:.22em;text-transform:uppercase;font-weight:500;transition:all .35s var(--ease);position:relative}
.cta i{display:block;width:28px;height:1px;background:currentColor;transition:width .35s var(--ease)}
.cta:hover i{width:44px}
.cta.p{background:var(--brunc);color:var(--ink);clip-path:polygon(0 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%)}
.cta.p:hover{background:#CDA37C}
.cta.g{border:1px solid var(--line2);color:var(--white)}
.cta.g:hover{border-color:var(--white)}
.cta.d{background:var(--ink);color:var(--white)}

/* footer */
footer{border-top:1px solid var(--line);background:var(--ink)}
.fbig{padding:120px 0 80px;display:flex;justify-content:space-between;align-items:flex-end;gap:40px;flex-wrap:wrap}
.fbig h2{font-size:clamp(48px,7vw,120px);margin:0}
.fcols{display:grid;grid-template-columns:1.4fr repeat(3,minmax(0,1fr));gap:40px;padding:56px 0;border-top:1px solid var(--line)}
.fcols h4{margin:0 0 18px;color:var(--brunc)}
.fcols a{display:block;color:var(--mute2);font-size:14px;line-height:2.1;transition:color .3s}
.fcols a:hover{color:var(--white)}
.legal{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:22px 0 30px;border-top:1px solid var(--line);color:var(--mute)}
@media (max-width:820px){.fcols{grid-template-columns:1fr 1fr}}

/* apparition */
.rv{opacity:0;transform:translateY(32px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease)}
.rv.in{opacity:1;transform:none}
.rv.d1{transition-delay:.1s}.rv.d2{transition-delay:.2s}.rv.d3{transition-delay:.3s}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}.rec i{animation:none}html{scroll-behavior:auto}}

/* menu : sous-menu espace client */
.menu{align-items:center}
.menu a.on{color:var(--white)}.menu a.on:after{right:0}
.menu .dd{position:relative}
.menu .dd>a{display:inline-flex;align-items:center;gap:8px}
.menu .dd .car{width:6px;height:6px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .3s}
.menu .dd:hover .car,.menu .dd:focus-within .car{transform:rotate(225deg) translateY(-1px)}
.menu .dd.on>a{color:var(--white)}
.menu .sub{position:absolute;top:calc(100% + 14px);left:-20px;min-width:260px;background:#121212;border:1px solid var(--line2);padding:8px 0;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .25s,transform .25s,visibility .25s;box-shadow:0 24px 48px rgba(0,0,0,.4)}
.menu .sub:before{content:'';position:absolute;left:0;right:0;top:-16px;height:16px}
.menu .dd:hover .sub,.menu .dd:focus-within .sub{opacity:1;visibility:visible;transform:none}
.menu .sub a{display:block;padding:11px 20px;color:var(--mute2);font-size:13px}
.menu .sub a:after{display:none}
.menu .sub a:hover{color:var(--white);background:rgba(250,250,248,.05)}
.menu .sub small{display:block;font-family:'IBM Plex Mono';font-size:10px;letter-spacing:.08em;color:var(--mute);margin-top:3px}
.menu .sub .sep{display:block;height:1px;background:var(--line2);margin:6px 0}

/* réseaux sociaux */
.soc{display:inline-flex;gap:18px;flex-wrap:wrap}.soc a{border-bottom:1px solid var(--brunc);padding-bottom:2px;transition:color .25s}.soc a:hover{color:var(--white)}
.fcols{grid-template-columns:1.4fr repeat(4,minmax(0,1fr))}@media (max-width:820px){.fcols{grid-template-columns:1fr 1fr}}
/* bouton de langue : drapeau de la langue de la page en légère transparence derrière le texte */
.lnk.lang{position:relative;overflow:hidden;isolation:isolate;font-weight:500}
.lnk.lang::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.32;background-size:cover;background-position:center;transition:opacity .3s}
.lnk.lang:hover::before{opacity:.55}
.lnk.lang[hreflang=fr]::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 30' preserveAspectRatio='none'%3E%3CclipPath id='t'%3E%3Cpath d='M30,15h30v15zv15h-30zh-30v-15zv-15h30z'/%3E%3C/clipPath%3E%3Cpath d='M0,0v30h60v-30z' fill='%23012169'/%3E%3Cpath d='M0,0 60,30M60,0 0,30' stroke='%23fff' stroke-width='6'/%3E%3Cpath d='M0,0 60,30M60,0 0,30' clip-path='url(%23t)' stroke='%23C8102E' stroke-width='4'/%3E%3Cpath d='M30,0v30M0,15h60' stroke='%23fff' stroke-width='10'/%3E%3Cpath d='M30,0v30M0,15h60' stroke='%23C8102E' stroke-width='6'/%3E%3C/svg%3E")}
.lnk.lang[hreflang=en]::before{background-image:linear-gradient(90deg,#0055A4 0 33.34%,#fff 33.34% 66.66%,#EF4135 66.66%)}

/* menu mobile (bouton « Menu » ajouté par assets/api.js sous 1060 px) */
.mbtn{display:none;height:40px;padding:0 14px;align-items:center;border:1px solid var(--line2,rgba(250,250,248,.16));background:transparent;color:#FAFAF8;font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.2em;text-transform:uppercase;cursor:pointer}
@media (max-width:1060px){.mbtn{display:inline-flex}}
.mpan{position:fixed;inset:0;z-index:120;background:#0E0E0E;color:#FAFAF8;display:flex;flex-direction:column;overflow-y:auto;font-family:Inter,system-ui,sans-serif;font-weight:300}
.mpan[hidden]{display:none}
.mpan .mh{display:flex;justify-content:space-between;align-items:center;height:76px;padding:0 20px;border-bottom:1px solid rgba(250,250,248,.09);flex:none}
.mpan .mh img{height:30px}
.mpan nav{padding:12px 20px 40px}
.mpan a{display:block;color:#FAFAF8;text-decoration:none;font:300 26px/1.2 'Space Grotesk',sans-serif;letter-spacing:-.02em;padding:14px 0;border-bottom:1px solid rgba(250,250,248,.09)}
.mpan a.on{color:#B88A62}
.mpan .mk{font:400 10px 'IBM Plex Mono',monospace;letter-spacing:.2em;text-transform:uppercase;color:#B88A62;margin:26px 0 4px}
.mpan .sub a{font:400 17px Inter,sans-serif;padding:12px 0;color:#E4E0D8}
.mpan .sub a small{display:block;font:400 11px 'IBM Plex Mono',monospace;letter-spacing:.06em;color:#8E8A83;margin-top:3px}
body.mopen{overflow:hidden}
.mpan .mh a{border:0;padding:0}
