/* Base commune : structure, rideau, curseur, menu mobile. Les couleurs et polices viennent de site.css. */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{margin:0;background:var(--bg);color:var(--fg);font:400 1.0625rem/1.65 var(--f-body);-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:90;background:var(--bg)}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3,h4{margin:0;text-wrap:balance}
p{margin:0}
button{font:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:6px}
.wrap{max-width:var(--max,1240px);margin:0 auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wm{display:inline-block;overflow:hidden;vertical-align:top;padding-block:.2em .1em;margin-block:-.2em -.1em}
.wm > span{display:inline-block}
[data-words] .w{opacity:.18;transition:opacity .2s}
[data-words] .w.on{opacity:1}
.reduce [data-words] .w{opacity:1}

/* En-tête */
.top{position:fixed;top:env(safe-area-inset-top,0px);left:0;right:0;z-index:70;transition:transform .5s cubic-bezier(.22,1,.36,1),background .4s,border-color .4s;border-bottom:1px solid transparent}
.top.hide{transform:translateY(-110%)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;height:76px}
.nav{display:flex;align-items:center;gap:30px}
.nav a{text-decoration:none}
.burger{display:none;position:relative;z-index:2;width:48px;height:48px;border-radius:50%;border:1px solid var(--line);background:transparent;color:inherit;cursor:pointer}
.burger i{position:absolute;left:15px;right:15px;height:1.5px;background:currentColor;transition:transform .45s cubic-bezier(.22,1,.36,1),top .45s cubic-bezier(.22,1,.36,1)}
.burger i:first-child{top:19px}.burger i:last-child{top:27px}
.menu-open .burger i:first-child{top:23px;transform:rotate(45deg)}
.menu-open .burger i:last-child{top:23px;transform:rotate(-45deg)}
.mmenu{position:fixed;inset:0;z-index:65;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:110px max(24px,env(safe-area-inset-right,0px)) calc(40px + env(safe-area-inset-bottom,0px)) max(24px,env(safe-area-inset-left,0px));clip-path:circle(0 at calc(100% - 44px) 38px);transition:clip-path .8s cubic-bezier(.22,1,.36,1),visibility 0s .8s;visibility:hidden}
.menu-open .mmenu{clip-path:circle(150% at calc(100% - 44px) 38px);visibility:visible;transition:clip-path .8s cubic-bezier(.22,1,.36,1)}
.mmenu a{text-decoration:none;opacity:0;transform:translateY(24px);transition:opacity .5s,transform .7s cubic-bezier(.22,1,.36,1)}
.menu-open .mmenu a{opacity:1;transform:none}
.menu-open .mmenu a:nth-child(2){transition-delay:.05s}.menu-open .mmenu a:nth-child(3){transition-delay:.1s}.menu-open .mmenu a:nth-child(4){transition-delay:.15s}.menu-open .mmenu a:nth-child(5){transition-delay:.2s}.menu-open .mmenu a:nth-child(6){transition-delay:.25s}.menu-open .mmenu a:nth-child(7){transition-delay:.3s}
@media (max-width:900px){.nav{display:none}.burger{display:block}}

/* Rideau entre les pages */
.curtain{position:fixed;inset:0;z-index:100;pointer-events:none;display:none}
.curtain .cp{position:absolute;inset:0}
.curtain .cm{position:absolute;inset:0;display:grid;place-items:center;z-index:3}
html.is-loading .curtain{display:block}

/* Curseur (souris seulement) */
.cursor{position:fixed;left:0;top:0;z-index:95;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;pointer-events:none;display:none;opacity:0;transition:width .35s cubic-bezier(.22,1,.36,1),height .35s cubic-bezier(.22,1,.36,1),margin .35s cubic-bezier(.22,1,.36,1),opacity .3s}
.cursor.on{opacity:1}
.cursor span{position:absolute;inset:0;display:grid;place-items:center;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;opacity:0;transition:opacity .25s}
.cursor.big{width:88px;height:88px;margin:-44px 0 0 -44px}
.cursor.big span{opacity:1}
.cursor.link{width:38px;height:38px;margin:-19px 0 0 -19px}
@media (hover:hover) and (pointer:fine){.has-cursor .cursor{display:block}}

/* Bandeau défilant */
.marquee{overflow:hidden;white-space:nowrap}
.marquee .mtrack{display:inline-flex;will-change:transform}

/* Galerie horizontale */
[data-hscroll] .htrack{display:flex;width:max-content}
.hbar{height:2px;background:var(--line);position:relative;overflow:hidden}
.hbar i{position:absolute;inset:0;background:var(--accent);transform-origin:left;transform:scaleX(0)}
@media (max-width:900px){[data-hscroll] .htrack{flex-direction:column;width:auto}.hbar{display:none}}

/* Bouton WhatsApp flottant */
.wa{position:fixed;right:max(18px,env(safe-area-inset-right,0px));bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:60;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#1fae62;color:#fff;box-shadow:0 16px 34px -12px rgba(0,0,0,.5);text-decoration:none;transition:transform .4s cubic-bezier(.22,1,.36,1)}
.wa:hover{transform:scale(1.08)}
.wa svg{width:28px;height:28px}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
