/* =========================================================
   AUTOSOLUTIONS — « Le Scanner »
   Palette reprise du site d'origine : violet #463290,
   anthracite #1C232A, lavande #F1EEF9 + gris ardoise du logo.
   ========================================================= */

/* ---------- Fonts (auto-hébergées, OFL) ---------- */
@font-face{font-family:"Unbounded";font-style:normal;font-display:swap;font-weight:200 900;src:url(../fonts/unbounded-cyrillic-wght-normal.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Unbounded";font-style:normal;font-display:swap;font-weight:200 900;src:url(../fonts/unbounded-latin-ext-wght-normal.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Unbounded";font-style:normal;font-display:swap;font-weight:200 900;src:url(../fonts/unbounded-latin-wght-normal.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Golos";font-style:normal;font-display:swap;font-weight:400 900;src:url(../fonts/golos-text-cyrillic-wght-normal.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Golos";font-style:normal;font-display:swap;font-weight:400 900;src:url(../fonts/golos-text-latin-ext-wght-normal.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Golos";font-style:normal;font-display:swap;font-weight:400 900;src:url(../fonts/golos-text-latin-wght-normal.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Martian Mono";font-style:normal;font-display:swap;font-weight:100 800;font-stretch:75% 112.5%;src:url(../fonts/martian-mono-cyrillic-standard-normal.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Martian Mono";font-style:normal;font-display:swap;font-weight:100 800;font-stretch:75% 112.5%;src:url(../fonts/martian-mono-latin-ext-standard-normal.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Martian Mono";font-style:normal;font-display:swap;font-weight:100 800;font-stretch:75% 112.5%;src:url(../fonts/martian-mono-latin-standard-normal.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* ---------- Tokens ---------- */
:root{
  --ink:#0B0E11;
  --ink-2:#11161B;
  --panel:#1C232A;          /* anthracite d'origine */
  --panel-2:#232C35;
  --slate:#454F57;          /* gris ardoise du logo */
  --steel:#6B7782;
  --violet:#463290;         /* violet d'origine */
  --violet-2:#5A42B5;
  --violet-hi:#9C89F4;      /* violet lumineux pour fond sombre */
  --lav:#F1EEF9;            /* lavande d'origine */
  --lav-2:#DDD6F3;
  --muted:#9AA3AD;
  --line:rgba(241,238,249,.10);
  --line-2:rgba(241,238,249,.22);
  --amber:#FFB321;

  --f-display:"Unbounded","Arial Black",system-ui,sans-serif;
  --f-body:"Golos",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --f-mono:"Martian Mono",ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;

  --gut:clamp(16px,4.2vw,64px);
  --maxw:1480px;
  --hud-h:76px;
  --ease:cubic-bezier(.2,.75,0,1);
  --ease-io:cubic-bezier(.65,0,.35,1);
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:auto}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}
body{
  margin:0;background:var(--ink);color:var(--lav);
  font-family:var(--f-body);font-size:clamp(16px,1.05vw,18px);line-height:1.55;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
body::after{ /* grain */
  content:"";position:fixed;inset:-50%;z-index:90;pointer-events:none;opacity:.07;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");
  mix-blend-mode:overlay;
}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
h1,h2,h3,p,ol,ul,dl,dd{margin:0}
ol,ul{list-style:none;padding:0}
address{font-style:normal}
::selection{background:var(--violet);color:var(--lav)}
:focus-visible{outline:2px solid var(--violet-hi);outline-offset:4px;border-radius:4px}

.mono{font-family:var(--f-mono);font-stretch:88%;letter-spacing:.02em;text-transform:uppercase;font-size:.72rem;line-height:1.4}
.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gut)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:fixed;left:12px;top:-60px;z-index:200;background:var(--lav);color:var(--ink);padding:10px 14px;border-radius:6px;font-weight:600}
.skip:focus{top:12px}

.label{display:flex;align-items:center;gap:.9em;color:var(--muted);margin-bottom:clamp(20px,2.4vw,36px)}
.label span:first-child{color:var(--violet-hi);border:1px solid var(--line-2);border-radius:99px;padding:.35em .8em}
.label span+span::before{content:"";display:inline-block;width:28px;height:1px;background:var(--line-2);vertical-align:middle;margin-right:.9em}

.h2{font-family:var(--f-display);font-weight:600;font-size:clamp(2.1rem,5.6vw,5.6rem);line-height:.98;letter-spacing:-.035em}
:lang(ru) .h2{font-size:clamp(1.9rem,5vw,5rem)}
.line{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.line>span{display:inline-block;will-change:transform}
.line--accent{color:var(--violet)}

.link{position:relative;display:inline-block;background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat;transition:background-size .5s var(--ease)}
.link:hover{background-size:0 1px;background-position:100% 100%}

/* ---------- Buttons ---------- */
.btn{
  --bg:transparent;--fg:var(--lav);--bd:var(--line-2);
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.6em;
  min-height:54px;padding:0 1.6em;border-radius:99px;border:1px solid var(--bd);
  background:var(--bg);color:var(--fg);font-family:var(--f-body);font-weight:600;font-size:1rem;letter-spacing:-.005em;
  overflow:hidden;isolation:isolate;white-space:nowrap;transition:color .45s var(--ease),border-color .45s var(--ease)
}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--lav);border-radius:inherit;transform:translateY(101%);transition:transform .55s var(--ease)}
.btn:hover::before{transform:none}
.btn:hover{color:var(--ink);border-color:var(--lav)}
.btn--primary{--bg:var(--violet);--bd:var(--violet);--fg:var(--lav)}
.btn--ghost svg{color:var(--violet-hi);transition:color .4s}
.btn--ghost:hover svg{color:var(--violet)}
.btn--dark{--bg:var(--ink);--bd:var(--ink);--fg:var(--lav)}
.btn--dark::before{background:var(--violet)}
.btn--dark:hover{color:var(--lav);border-color:var(--violet)}
.btn--sm{min-height:40px;padding:0 1.1em;font-size:.88rem}

/* ---------- Status pill ---------- */
.status{display:inline-flex;align-items:center;gap:.7em;white-space:nowrap}
.status i{width:8px;height:8px;border-radius:50%;background:var(--steel);position:relative;flex:none}
.status.is-open i{background:var(--violet-hi);box-shadow:0 0 0 0 rgba(156,137,244,.6);animation:ping 2s infinite}
@keyframes ping{0%{box-shadow:0 0 0 0 rgba(156,137,244,.55)}70%{box-shadow:0 0 0 10px rgba(156,137,244,0)}100%{box-shadow:0 0 0 0 rgba(156,137,244,0)}}

/* =========================================================
   BOOT
   ========================================================= */
.boot{display:none}
.js .boot{
  display:flex;position:fixed;inset:0;z-index:150;background:var(--ink);align-items:center;justify-content:center;
  animation:bootFailsafe .01s 8s forwards;
}
.no-anim .boot{display:none!important}
@keyframes bootFailsafe{to{visibility:hidden;opacity:0;pointer-events:none}}
.boot__screen{
  position:relative;width:min(760px,calc(100% - 2*var(--gut)));padding:clamp(20px,3vw,36px);
  border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,rgba(28,35,42,.55),rgba(11,14,17,.6));
  display:flex;flex-direction:column;gap:clamp(20px,3vw,32px);
}
.boot__screen::before{ /* scanlines */
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:.35;
  background:repeating-linear-gradient(180deg,rgba(241,238,249,.03) 0 1px,transparent 1px 3px);
}
.boot__head{display:flex;justify-content:space-between;color:var(--muted);gap:1em}
.boot__ver{color:var(--steel)}
.boot__core{display:grid;grid-template-columns:minmax(120px,210px) 1fr;gap:clamp(18px,3vw,40px);align-items:center}
.boot__logo{position:relative;aspect-ratio:407/322;clip-path:inset(0 0 100% 0)}
.boot__logo img{width:100%;height:auto;filter:brightness(1.5) contrast(1.05)}
.boot__beam{position:absolute;left:-6%;right:-6%;top:0;height:2px;background:var(--violet-hi);box-shadow:0 0 18px 4px rgba(156,137,244,.55);opacity:0}
.boot__log{display:grid;gap:.95em;font-size:.72rem}
.boot__log li{display:flex;align-items:baseline;gap:.8em;opacity:0}
.boot__log li i{flex:1;border-bottom:1px dotted var(--line-2);transform:translateY(-3px)}
.boot__log b{font-weight:500;color:var(--violet-hi);min-width:4ch;text-align:right}
.boot__codes.is-zero{color:var(--lav)}
.boot__foot{display:flex;align-items:center;gap:16px;color:var(--muted)}
.mil{color:var(--amber);filter:drop-shadow(0 0 8px rgba(255,179,33,.7));transition:color .3s,filter .3s}
.mil.is-off{color:var(--slate);filter:none}
.boot__bar{flex:1;height:2px;background:var(--line);position:relative;overflow:hidden}
.boot__bar i{position:absolute;inset:0;background:var(--violet-hi);transform-origin:left;transform:scaleX(0)}
.boot__skip{font-size:.62rem;color:var(--steel)}
@media (max-width:600px){
  .boot__core{grid-template-columns:1fr}
  .boot__logo{width:150px}
  .boot__skip{display:none}
  .boot__ver{display:none}
}

/* =========================================================
   HUD
   ========================================================= */
.hud{
  position:fixed;top:0;left:0;right:0;z-index:100;height:var(--hud-h);
  display:flex;align-items:center;justify-content:space-between;gap:20px;padding-inline:var(--gut);
  transition:transform .6s var(--ease),background-color .4s,backdrop-filter .4s;
}
.hud::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(11,14,17,.72);backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);opacity:0;transition:opacity .4s;border-bottom:1px solid var(--line)}
.hud.is-scrolled::before{opacity:1}
.hud.is-hidden{transform:translateY(-105%)}
.hud__logo{display:block;width:64px;flex:none}
.hud__logo img{width:100%;height:auto;filter:brightness(1.55)}
.hud__nav{display:flex;gap:clamp(14px,2vw,34px);font-weight:500;font-size:.92rem}
.hud__nav a{display:flex;align-items:baseline;gap:.5em;padding:6px 0;position:relative;color:var(--lav-2);transition:color .3s}
.hud__nav a .n{font-size:.58rem;color:var(--steel);transition:color .3s}
.hud__nav a:hover,.hud__nav a.is-active{color:var(--lav)}
.hud__nav a:hover .n,.hud__nav a.is-active .n{color:var(--violet-hi)}
.hud__nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--violet-hi);transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}
.hud__nav a:hover::after,.hud__nav a.is-active::after{transform:scaleX(1);transform-origin:left}
.hud__right{display:flex;align-items:center;gap:clamp(12px,1.5vw,22px)}
.hud .status{color:var(--muted);font-size:.62rem}
.lang{display:flex;align-items:center;gap:.35em;color:var(--steel);font-size:.68rem}
.lang button{padding:6px 4px;color:var(--steel);transition:color .3s}
.lang button[aria-pressed="true"]{color:var(--lav)}
.lang button:hover{color:var(--violet-hi)}
.hud__progress{position:absolute;left:0;bottom:-1px;height:1px;width:100%;background:var(--violet-hi);transform-origin:left;transform:scaleX(0)}
.burger{display:none;width:44px;height:44px;border-radius:50%;border:1px solid var(--line-2);position:relative}
.burger span{position:absolute;left:13px;right:13px;height:1.5px;background:var(--lav);transition:transform .5s var(--ease)}
.burger span:nth-child(1){top:18px}.burger span:nth-child(2){top:25px}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(3.5px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){transform:translateY(-3.5px) rotate(-45deg)}

@media (max-width:1180px){
  .hud__nav{display:none}
  .burger{display:block}
}
@media (max-width:760px){
  :root{--hud-h:64px}
  .hud__cta{display:none}
  .hud .status__txt{display:none}
  .hud__logo{width:54px}
}

/* ---------- Menu mobile ---------- */
.menu{
  position:fixed;inset:0;z-index:95;background:var(--ink);display:flex;flex-direction:column;justify-content:space-between;
  padding:calc(var(--hud-h) + 24px) var(--gut) calc(28px + env(safe-area-inset-bottom));
  clip-path:circle(0% at calc(100% - var(--gut) - 22px) calc(var(--hud-h)/2));visibility:hidden;
  transition:clip-path .8s var(--ease),visibility 0s .8s;
}
.menu.is-open{clip-path:circle(150% at calc(100% - var(--gut) - 22px) calc(var(--hud-h)/2));visibility:visible;transition:clip-path .9s var(--ease),visibility 0s}
.menu__nav{display:flex;flex-direction:column}
.menu__nav a{display:flex;align-items:baseline;gap:14px;padding:12px 0;border-bottom:1px solid var(--line);font-family:var(--f-display);font-weight:500;font-size:clamp(1.7rem,8vw,3rem);letter-spacing:-.03em;line-height:1.1;opacity:0;transform:translateY(30px);transition:opacity .5s,transform .7s var(--ease)}
.menu__nav a .n{font-size:.62rem;color:var(--violet-hi);transform:translateY(-.6em)}
.menu.is-open .menu__nav a{opacity:1;transform:none}
.menu.is-open .menu__nav a:nth-child(1){transition-delay:.15s}
.menu.is-open .menu__nav a:nth-child(2){transition-delay:.2s}
.menu.is-open .menu__nav a:nth-child(3){transition-delay:.25s}
.menu.is-open .menu__nav a:nth-child(4){transition-delay:.3s}
.menu.is-open .menu__nav a:nth-child(5){transition-delay:.35s}
.menu__foot{display:grid;gap:16px;justify-items:start}
.menu__tel{font-family:var(--f-display);font-size:1.4rem;font-weight:500}
.menu__addr{color:var(--muted)}

/* ---------- Lang wipe ---------- */
.langwipe{position:fixed;inset:0;z-index:160;pointer-events:none;background:var(--violet);transform:scaleY(0);transform-origin:top;display:flex;align-items:center;justify-content:center}
.langwipe__txt{font-size:clamp(.8rem,1.4vw,1.1rem);color:var(--lav);opacity:0}
.langwipe::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--lav);box-shadow:0 0 30px 6px rgba(241,238,249,.6)}

/* ---------- Cursor ---------- */
.cursor{display:none}
@media (hover:hover) and (pointer:fine){
  .has-cursor .cursor{display:block;position:fixed;left:0;top:0;z-index:170;pointer-events:none;mix-blend-mode:difference}
  .cursor__dot,.cursor__ring{position:absolute;left:0;top:0;border-radius:50%;transform:translate(-50%,-50%)}
  .cursor__dot{display:none}
  .cursor__ring{width:36px;height:36px;border:1px solid var(--lav);transition:width .35s var(--ease),height .35s var(--ease),background-color .35s}
  .cursor.is-link .cursor__ring{width:64px;height:64px;background:var(--lav)}
  .cursor.is-hidden{opacity:0}
}

/* =========================================================
   HERO
   ========================================================= */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;padding-top:calc(var(--hud-h) + 40px)}
.hero::before{ /* vignette violette */
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(80% 60% at 78% 38%,rgba(70,50,144,.28),transparent 70%),linear-gradient(180deg,transparent 60%,var(--ink));
}
.scope{position:absolute;inset:0;width:100%;height:100%;opacity:0}
.scope__hud{position:absolute;inset:calc(var(--hud-h) + 14px) var(--gut) 90px;pointer-events:none;color:var(--steel);font-size:.6rem;opacity:0}
.sh{position:absolute;display:flex;align-items:center;gap:.6em}
.sh i{width:14px;height:2px}
.sh .c1{background:var(--violet-hi)} .sh .c2{background:var(--steel)}
.sh--tl{top:0;left:0}.sh--tl2{top:1.9em;left:0}.sh--tr{top:0;right:0}.sh--tr2{top:1.9em;right:0;color:var(--muted)}
.sh--tr2 b{font-weight:500;color:var(--lav);font-variant-numeric:tabular-nums}

.hero__inner{position:relative;z-index:2;padding-bottom:clamp(28px,5vh,60px)}
.kicker{display:inline-block;color:var(--violet-hi);margin-bottom:clamp(18px,3vh,30px);background:rgba(11,14,17,.88);border:1px solid var(--line-2);border-radius:4px;padding:.7em .9em;position:relative}
.kicker::before{content:"";position:absolute;left:-1px;top:-1px;width:8px;height:8px;border-left:2px solid var(--violet-hi);border-top:2px solid var(--violet-hi)}
.hero__title{font-family:var(--f-display);font-weight:700;font-size:clamp(3.1rem,12.6vw,13.5rem);line-height:.9;letter-spacing:-.045em;margin-left:-.04em}
.hero__title .line{padding-bottom:.16em;margin-bottom:-.16em}
.hero__title em{font-style:normal;color:var(--violet-hi)}
.hero__scan{position:absolute;left:0;right:0;top:0;height:2px;z-index:3;pointer-events:none;background:var(--violet-hi);box-shadow:0 0 24px 6px rgba(156,137,244,.45);opacity:0}
:lang(ru) .hero__title{font-size:clamp(2.6rem,11vw,12rem)}
.hero__title .line:nth-child(2){padding-left:clamp(0px,9vw,180px)}
.js .hero__title .line>span{transform:translateY(115%)}
.no-anim .hero__title .line>span{transform:none!important}
.hero__row{display:flex;justify-content:space-between;align-items:flex-end;gap:32px 48px;flex-wrap:wrap;margin-top:clamp(24px,4vh,44px)}
.hero__lead{max-width:34ch;font-size:clamp(1.02rem,1.35vw,1.25rem);color:var(--lav-2);line-height:1.45}
.hero__ctas{display:flex;flex-wrap:wrap;gap:12px}
.hero__bar{position:relative;z-index:2;display:flex;align-items:center;gap:clamp(16px,3vw,48px);padding-block:18px calc(18px + env(safe-area-inset-bottom));border-top:1px solid var(--line);color:var(--muted);font-size:.62rem}
.hero__bar .status{color:var(--lav)}
.hero__scroll{margin-left:auto;display:flex;align-items:center;gap:.8em}
.hero__scroll i{width:1px;height:26px;background:var(--line-2);position:relative;overflow:hidden}
.hero__scroll i::after{content:"";position:absolute;left:0;top:-100%;width:100%;height:100%;background:var(--violet-hi);animation:drip 1.8s var(--ease-io) infinite}
@keyframes drip{to{top:100%}}
@media (max-width:760px){
  .hero__addr,.hero__langs{display:none}
  .hero__title .line:nth-child(2){padding-left:0}
  .hero__title{font-size:14.6vw}
  :lang(ru) .hero__title{font-size:13vw}
  .scope__hud{inset:calc(var(--hud-h) + 10px) var(--gut) 76px}
  .sh--tr{display:none}
  .sh--tr2{top:0}
  .hero__ctas{width:100%}
  .hero__ctas .btn{flex:1 1 auto}
}

/* =========================================================
   TICKER
   ========================================================= */
.ticker{overflow:hidden;border-block:1px solid var(--line);padding:20px 0;background:var(--ink-2);position:relative;z-index:2}
.ticker__track{display:flex;width:max-content;font-size:clamp(.75rem,1.1vw,.95rem);color:var(--lav-2)}
.ticker__set{display:flex;align-items:center;flex:none}
.ticker__set span{padding-inline:clamp(18px,2.4vw,36px)}
.ticker__set i{width:7px;height:7px;background:var(--violet-hi);transform:rotate(45deg);flex:none}

/* =========================================================
   À PROPOS
   ========================================================= */
.about{padding-block:clamp(90px,14vw,200px) clamp(60px,9vw,130px)}
.about__big{font-family:var(--f-display);font-weight:400;font-size:clamp(1.55rem,3.55vw,3.6rem);line-height:1.14;letter-spacing:-.03em;max-width:24ch}
:lang(ru) .about__big{font-size:clamp(1.4rem,3.1vw,3.2rem)}
.about__big .w{opacity:.14;transition:opacity .35s,color .35s}
.about__big .w.on{opacity:1}
.about__big .w.hl.on{color:var(--violet-hi)}
.about__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:clamp(60px,9vw,130px);border-top:1px solid var(--line)}
.about__card{padding:clamp(22px,2.6vw,40px) clamp(0px,2vw,34px) clamp(22px,2.6vw,40px) 0;display:grid;gap:14px;align-content:start;position:relative}
.about__card+.about__card{padding-left:clamp(18px,2vw,34px);border-left:1px solid var(--line)}
.about__idx{color:var(--violet-hi);font-size:.66rem}
.about__card h3{font-family:var(--f-display);font-weight:500;font-size:clamp(1.1rem,1.5vw,1.4rem);letter-spacing:-.02em;line-height:1.15}
.about__card p{color:var(--muted);max-width:34ch}
.about__foot{display:grid;grid-template-columns:1fr minmax(300px,480px);gap:40px 80px;margin-top:clamp(50px,7vw,100px);align-items:end}
.about__owner{font-size:clamp(1.05rem,1.4vw,1.3rem);color:var(--lav-2);max-width:32ch;line-height:1.45}
.spec{border:1px solid var(--line);border-radius:12px;padding:6px 20px;background:var(--ink-2)}
.spec__title{color:var(--violet-hi);padding:14px 0 10px;font-size:.62rem}
.spec>div:not(.spec__title){display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-top:1px dashed var(--line)}
.spec dt{color:var(--steel)}
.spec dd{text-align:right;color:var(--lav)}
@media (max-width:900px){
  .about__grid{grid-template-columns:1fr}
  .about__card,.about__card+.about__card{padding:24px 0;border-left:0;border-bottom:1px solid var(--line)}
  .about__foot{grid-template-columns:1fr}
}

/* =========================================================
   DIAGNOSTIC
   ========================================================= */
.diag{position:relative;background:var(--ink-2);border-top:1px solid var(--line)}
.diag__pin{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding-block:calc(var(--hud-h) + 10px) 40px;gap:clamp(16px,3vh,40px)}
.diag__head{display:grid;grid-template-columns:1fr minmax(260px,420px);align-items:end;gap:10px 60px}
.diag__head .label{grid-column:1/-1;margin-bottom:6px}
.diag__head .h2{font-size:clamp(2rem,4.6vw,4.8rem)}
.diag__p{color:var(--muted);padding-bottom:.4em}
.diag__stage{display:grid;grid-template-columns:1fr minmax(260px,360px);gap:clamp(20px,3vw,56px);align-items:center}
.car{position:relative;color:var(--lav)}
.car__svg{width:100%;height:auto;overflow:visible}
.car__lines{stroke:var(--lav);stroke-width:1.6}
.car__lines .car__body{stroke-width:2.2}
.car__ground{stroke:var(--line-2)!important;stroke-dasharray:4 8}
.car__beam line{stroke:var(--lav);stroke-width:1.5}
.car__beam{opacity:0}
.hs{opacity:0}
.hs__dot{fill:var(--steel)}
.hs__ring{fill:none;stroke:var(--violet-hi);stroke-width:1.2;opacity:0;transform-box:fill-box;transform-origin:center}
.hs text{font-family:var(--f-mono);font-size:13px;fill:var(--muted);text-anchor:middle;letter-spacing:.04em}
.hs.is-seen{opacity:1}
.hs.is-on .hs__dot{fill:var(--violet-hi)}
.hs.is-on .hs__ring{opacity:1;animation:hsPulse 1.6s var(--ease) infinite}
.hs.is-on text{fill:var(--lav)}
@keyframes hsPulse{0%{transform:scale(.5);opacity:1}100%{transform:scale(1.8);opacity:0}}
.car__hint{display:flex;align-items:center;gap:.8em;color:var(--steel);margin-top:12px;font-size:.6rem}
.car__hint i{width:8px;height:8px;border:1px solid var(--violet-hi);border-radius:50%;animation:ping 2s infinite}
.report{border:1px solid var(--line);border-radius:12px;background:rgba(11,14,17,.6);padding:4px 18px 18px}
.report__head{display:flex;justify-content:space-between;padding:14px 0;color:var(--violet-hi);font-size:.62rem;border-bottom:1px solid var(--line)}
.report__pct{color:var(--lav);font-variant-numeric:tabular-nums}
.report__list{font-size:.62rem}
.report__list li{display:flex;align-items:baseline;gap:.7em;padding:10px 0;border-bottom:1px dashed var(--line);color:var(--steel);transition:color .3s}
.report__list .k{color:var(--slate);transition:color .3s}
.report__list i{flex:1;border-bottom:1px dotted var(--line);transform:translateY(-3px)}
.report__list b{font-weight:500;opacity:0;transform:translateX(6px);transition:opacity .3s,transform .4s var(--ease);color:var(--violet-hi)}
.report__list li.is-on{color:var(--lav)}
.report__list li.is-on .k{color:var(--violet-hi)}
.report__list li.is-on b{opacity:1;transform:none}
.report__result{display:flex;gap:.8em;align-items:center;margin-top:16px;font-weight:600;font-size:.95rem;line-height:1.3;opacity:.0;transform:translateY(8px);transition:opacity .5s,transform .6s var(--ease)}
.report.is-done .report__result{opacity:1;transform:none}
.mil-off{width:10px;height:10px;border-radius:50%;background:var(--violet-hi);flex:none;box-shadow:0 0 12px var(--violet-hi)}
@media (max-width:1000px){
  .diag__head{grid-template-columns:1fr}
  .diag__stage{grid-template-columns:1fr}
  .report{max-width:560px}
}
@media (max-width:700px){
  .hs text{display:none}
  .car__svg{margin-inline:-6px;width:calc(100% + 12px)}
  .report__list{display:grid;grid-template-columns:1fr}
}

/* =========================================================
   SERVICES
   ========================================================= */
.services{padding-block:clamp(90px,13vw,190px)}
.services__head{display:grid;grid-template-columns:1fr auto;align-items:end;gap:16px 40px;margin-bottom:clamp(40px,6vw,80px)}
.services__head .label{grid-column:1/-1;margin-bottom:6px}
.services__meta{color:var(--muted)}
.svc{border-top:1px solid var(--line)}
.svc__row{
  position:relative;display:grid;grid-template-columns:110px minmax(0,1.1fr) minmax(0,1fr) 40px;align-items:center;gap:20px 32px;
  padding:clamp(22px,2.4vw,34px) 0;border-bottom:1px solid var(--line);isolation:isolate;cursor:default
}
.svc__row::before{content:"";position:absolute;inset:0 calc(-1*var(--gut));z-index:-1;background:var(--violet);transform:scaleY(0);transform-origin:bottom;transition:transform .6s var(--ease)}
.svc__code{color:var(--violet-hi);font-size:.7rem;transition:color .4s}
.svc__title{font-family:var(--f-display);font-weight:500;font-size:clamp(1.3rem,2.5vw,2.4rem);letter-spacing:-.03em;line-height:1.05;transition:transform .6s var(--ease)}
.svc__desc{color:var(--muted);max-width:44ch;transition:color .4s}
.svc__arrow{font-size:1.4rem;justify-self:end;transition:transform .6s var(--ease)}
@media (hover:hover){
  .svc__row:hover::before{transform:scaleY(1);transform-origin:top}
  .svc__row:hover .svc__code{color:var(--lav)}
  .svc__row:hover .svc__desc{color:var(--lav-2)}
  .svc__row:hover .svc__title{transform:translateX(14px)}
  .svc__row:hover .svc__arrow{transform:rotate(-45deg)}
}
@media (max-width:820px){
  .services__head{grid-template-columns:1fr}
  .svc__row{grid-template-columns:auto 1fr;gap:10px 16px;align-items:baseline}
  .svc__code{grid-row:1}
  .svc__title{grid-column:2}
  .svc__desc{grid-column:2;font-size:.95rem}
  .svc__arrow{display:none}
}

/* =========================================================
   AIDE À L'ACHAT (fond lavande)
   ========================================================= */
.achat{position:relative;background:var(--lav);color:var(--panel);overflow:hidden}
.achat .label{color:var(--slate)}
.achat .label span:first-child{color:var(--violet);border-color:rgba(28,35,42,.2)}
.achat .label span+span::before{background:rgba(28,35,42,.25)}
.achat__viewport{min-height:100vh;min-height:100svh;display:flex;align-items:center;padding-block:calc(var(--hud-h) + 30px) 110px}
.achat__track{display:flex;align-items:stretch;gap:clamp(18px,2vw,32px);padding-inline:var(--gut);will-change:transform}
.achat__intro{flex:0 0 min(640px,44vw);display:flex;flex-direction:column;justify-content:center;gap:clamp(20px,2.6vw,34px);padding-right:clamp(10px,3vw,60px)}
.achat__intro .label{margin-bottom:0}
.achat__title{font-size:clamp(2.1rem,4.4vw,4.6rem)}
.achat__title .line--accent{color:var(--violet)}
.achat__p{color:#3A444D;max-width:36ch;font-size:clamp(1rem,1.2vw,1.15rem)}
.achat__intro .btn{align-self:flex-start}
.step{
  position:relative;flex:0 0 clamp(300px,30vw,440px);min-height:min(62vh,560px);border-radius:18px;background:#fff;
  border:1px solid rgba(28,35,42,.08);padding:clamp(24px,2.4vw,36px);display:flex;flex-direction:column;justify-content:space-between;gap:30px;overflow:hidden
}
.step:nth-child(odd){background:var(--panel);color:var(--lav)}
.step:nth-child(odd) p{color:var(--muted)}
.step__n{font-family:var(--f-display);font-weight:300;font-size:clamp(4.5rem,9vw,9rem);line-height:.8;letter-spacing:-.06em;display:block}
.step:nth-child(even) .step__n{color:var(--violet)}
.step:nth-child(odd) .step__n{color:var(--violet-hi)}
.step::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.55;background-image:radial-gradient(circle,rgba(28,35,42,.16) 1px,transparent 1.2px);background-size:18px 18px;-webkit-mask-image:linear-gradient(180deg,transparent 18%,#000 45%,transparent 80%);mask-image:linear-gradient(180deg,transparent 18%,#000 45%,transparent 80%)}
.step:nth-child(odd)::before{background-image:radial-gradient(circle,rgba(241,238,249,.14) 1px,transparent 1.2px)}
.step>*{position:relative}
.step h3{font-family:var(--f-display);font-weight:500;font-size:clamp(1.25rem,1.8vw,1.7rem);letter-spacing:-.025em;line-height:1.1;margin-bottom:12px}
.step p{color:#4B5660;max-width:30ch}
.step__ico{position:absolute;top:clamp(24px,2.4vw,36px);right:clamp(24px,2.4vw,36px);width:56px;height:56px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:.55}
.road{position:absolute;left:var(--gut);right:var(--gut);bottom:44px;height:24px}
.road__line{position:absolute;left:0;right:0;top:17px;height:2px;background:repeating-linear-gradient(90deg,rgba(28,35,42,.28) 0 14px,transparent 14px 26px)}
.road__fill{position:absolute;inset:0;background:var(--violet);transform-origin:left;transform:scaleX(0)}
.road__car{position:absolute;left:0;top:0;width:60px;height:24px;fill:var(--panel);transform:translateX(0)}
.road__car circle{fill:var(--violet)}
@media (max-width:900px){
  .achat__viewport{min-height:0;display:block;padding-block:clamp(90px,16vw,140px) 70px}
  .achat__track{flex-direction:column;padding-inline:var(--gut) var(--gut);padding-left:calc(var(--gut) + 30px);transform:none!important}
  .achat__intro{flex:none;padding-right:0;margin-bottom:10px}
  .step{flex:none;min-height:0;gap:22px}
  .step__n{font-size:4.2rem}
  .road{left:var(--gut);right:auto;top:clamp(90px,16vw,140px);bottom:70px;width:24px;height:auto}
  .road__line{left:11px;right:auto;top:0;bottom:0;width:2px;height:auto;background:repeating-linear-gradient(180deg,rgba(28,35,42,.28) 0 14px,transparent 14px 26px)}
  .road__fill{transform-origin:top;transform:scaleY(0)}
  .road__car{width:40px;height:16px;left:-8px;transform:rotate(90deg)}
}

/* =========================================================
   HORAIRES
   ========================================================= */
.hours{padding-block:clamp(90px,13vw,190px)}
.hours__head{margin-bottom:clamp(40px,6vw,80px)}
.hours__grid{display:grid;grid-template-columns:minmax(280px,560px) 1fr;gap:clamp(30px,6vw,110px);align-items:center}
.gauge{position:relative;aspect-ratio:1;width:100%;max-width:560px}
.gauge__svg{width:100%;height:100%;overflow:visible}
.gauge__ticks line{stroke:var(--line-2);stroke-width:1.2}
.gauge__ticks line.major{stroke:var(--lav);stroke-width:2}
.gauge__labels text{font-family:var(--f-mono);font-size:11px;fill:var(--muted);text-anchor:middle;dominant-baseline:middle}
.gauge__track{fill:none;stroke:var(--panel-2);stroke-width:14;stroke-linecap:butt}
.gauge__open path{fill:none;stroke:var(--violet-hi);stroke-width:14}
.gauge__open path.is-past{stroke:var(--violet)}
.gauge__needle line{stroke:var(--lav);stroke-width:3;stroke-linecap:round}
.gauge__needle circle{fill:var(--panel);stroke:var(--lav);stroke-width:2}
.gauge__needle .gauge__hub{fill:var(--violet-hi);stroke:none}
.gauge__center{position:absolute;left:50%;top:69%;transform:translate(-50%,-50%);display:grid;justify-items:center;gap:6px;text-align:center}
.gauge__state{font-family:var(--f-display);font-weight:700;font-size:clamp(1.3rem,3vw,2.5rem);letter-spacing:-.03em;line-height:1}
.gauge__state.is-open{color:var(--violet-hi)}
.gauge__time{font-size:clamp(.9rem,1.4vw,1.2rem);color:var(--lav);font-variant-numeric:tabular-nums}
.gauge__note{font-size:.55rem;color:var(--steel)}
.week__now{color:var(--violet-hi);margin-bottom:20px}
.week__list{border-top:1px solid var(--line)}
.week__list li{display:grid;grid-template-columns:minmax(90px,130px) 1fr minmax(118px,auto);align-items:center;gap:18px;padding:15px 0;border-bottom:1px solid var(--line);color:var(--muted);font-size:.7rem}
.week__list li .d{color:var(--lav-2)}
.week__list li .h{text-align:right;font-variant-numeric:tabular-nums}
.week__list .bar{position:relative;height:6px;border-radius:6px;background:var(--panel)}
.week__list .bar i{position:absolute;top:0;bottom:0;border-radius:6px;background:var(--slate);transform-origin:left}
.week__list li.is-today{color:var(--lav)}
.week__list li.is-today .d{color:var(--violet-hi)}
.week__list li.is-today .d::after{content:" ●";font-size:.8em}
.week__list li.is-today .bar i{background:var(--violet-hi)}
.week__list .bar b{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--lav);border-radius:2px}
.week__foot{margin-top:26px;color:var(--muted)}
.week__foot a{color:var(--lav)}
@media (max-width:900px){
  .hours__grid{grid-template-columns:1fr}
  .gauge{max-width:420px;margin-inline:auto}
  .week__list li{grid-template-columns:78px 1fr auto;gap:12px;font-size:.64rem}
}

/* =========================================================
   CONTACT
   ========================================================= */
.contact{padding-block:clamp(90px,13vw,190px) clamp(60px,8vw,110px);background:var(--ink-2);border-top:1px solid var(--line)}
.contact__tel{display:inline-grid;gap:10px;margin-top:clamp(36px,5vw,70px)}
.contact__telk{color:var(--violet-hi)}
.contact__telv{font-family:var(--f-display);font-weight:600;font-size:clamp(2.4rem,8.6vw,8.8rem);line-height:.9;letter-spacing:-.05em;background:linear-gradient(var(--violet-hi),var(--violet-hi)) 0 100%/0 3px no-repeat;padding-bottom:.08em;transition:background-size .7s var(--ease),color .4s}
.contact__tel:hover .contact__telv{background-size:100% 3px;color:var(--violet-hi)}
.contact__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(36px,6vw,100px);margin-top:clamp(50px,7vw,100px);align-items:start}
.contact__info{display:grid;gap:34px;justify-items:start}
.cinfo{display:grid;gap:10px}
.cinfo__k{color:var(--steel)}
.cinfo__v{font-size:clamp(1.05rem,1.4vw,1.3rem);color:var(--lav);word-break:break-word}
.cinfo__links{display:flex;flex-wrap:wrap;gap:8px 22px;color:var(--lav-2);font-size:.95rem}
.cinfo--row{grid-auto-flow:column;gap:56px}
.cinfo--row>div{display:grid;gap:10px;align-content:start}
.pay{display:flex;gap:8px;flex-wrap:wrap}
.pay__chip{font-family:var(--f-mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.04em;border:1px solid var(--line-2);border-radius:6px;padding:6px 10px}
.radar{display:grid;gap:14px}
.radar__screen{position:relative;aspect-ratio:1/1;max-height:620px;border-radius:50%;overflow:hidden;background:radial-gradient(circle,#141B22 0%,#0C1014 70%);border:1px solid var(--line-2);isolation:isolate}
.radar__rings{position:absolute;inset:0;background:repeating-radial-gradient(circle,transparent 0 calc(12.5% - 1px),rgba(156,137,244,.18) calc(12.5% - 1px) 12.5%)}
.radar__cross{position:absolute;inset:0;background:linear-gradient(rgba(156,137,244,.18),rgba(156,137,244,.18)) 50% 0/1px 100% no-repeat,linear-gradient(rgba(156,137,244,.18),rgba(156,137,244,.18)) 0 50%/100% 1px no-repeat}
.radar__sweep{position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,rgba(156,137,244,.45),rgba(156,137,244,.12) 40deg,transparent 90deg);animation:sweep 4s linear infinite}
@keyframes sweep{to{transform:rotate(360deg)}}
.radar__blip{position:absolute;left:50%;top:50%;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:var(--lav);box-shadow:0 0 18px 4px rgba(156,137,244,.8)}
.radar__blip i{position:absolute;inset:-12px;border:1px solid var(--violet-hi);border-radius:50%;animation:hsPulse 2s var(--ease) infinite}
.radar__lbl{position:absolute;left:50%;top:50%;transform:translate(16px,-28px);color:var(--lav);font-size:.6rem;white-space:nowrap}
.radar__coord{position:absolute;color:var(--steel);font-size:.56rem}
.radar__coord--tl{left:22%;top:16%}.radar__coord--br{right:20%;bottom:15%}.radar__coord--tr{right:18%;top:22%}
.radar__map{position:absolute;inset:0;width:100%;height:100%;border:0;opacity:0;pointer-events:none;transition:opacity .8s;filter:invert(.9) hue-rotate(200deg) saturate(.55) brightness(.95) contrast(.9)}
.radar.is-map .radar__map{opacity:1;pointer-events:auto}
.radar.is-map .radar__screen{border-radius:18px}
.radar.is-map .radar__sweep,.radar.is-map .radar__rings,.radar.is-map .radar__cross,.radar.is-map .radar__blip,.radar.is-map .radar__lbl,.radar.is-map .radar__coord{opacity:0}
.radar__screen{transition:border-radius .8s var(--ease)}
.radar__bar{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.radar__note{font-size:.8rem;color:var(--steel);max-width:34ch}
@media (max-width:900px){
  .contact__grid{grid-template-columns:1fr}
  .radar__screen{max-width:520px}
  .cinfo--row{grid-auto-flow:row;gap:26px}
}

/* =========================================================
   FOOTER
   ========================================================= */
.foot{position:relative;overflow:hidden;padding-top:clamp(50px,8vw,120px);background:var(--ink)}
.foot__word{display:flex;justify-content:center;padding-inline:calc(var(--gut) * .6);font-family:var(--f-display);font-weight:300;font-size:clamp(2rem,8.4vw,14rem);white-space:nowrap;line-height:.82;letter-spacing:-.04em;color:var(--lav);user-select:none;overflow:hidden;padding-bottom:.06em}
.foot__word span{display:inline-block;font-variation-settings:"wght" var(--w,300);will-change:transform}
.foot__word span.acc{color:var(--violet-hi)}
.foot__bar{display:flex;flex-wrap:wrap;gap:12px 30px;justify-content:space-between;padding-block:26px calc(26px + env(safe-area-inset-bottom));margin-top:clamp(20px,3vw,40px);border-top:1px solid var(--line);color:var(--muted);font-size:.6rem}
.foot__bar .link{color:var(--lav-2)}

/* =========================================================
   États sans animation (JS lent / GSAP absent)
   ========================================================= */
.no-anim [data-reveal],.no-anim .svc__row{opacity:1!important;transform:none!important}
.no-anim .line>span{transform:none!important}
.no-anim .scope,.no-anim .scope__hud,.no-anim .hs{opacity:1!important}
.no-anim .about__big .w{opacity:1}
.no-anim .report__list b,.no-anim .report__result{opacity:1;transform:none}
.achat--static .achat__viewport,.no-anim .achat__viewport{min-height:0;padding-block:clamp(90px,12vw,160px)}
.achat--static .achat__track,.no-anim .achat__track{flex-wrap:wrap;transform:none!important}
.achat--static .achat__intro,.no-anim .achat__intro{flex:1 1 100%;margin-bottom:20px}
.achat--static .step,.no-anim .step{flex:1 1 260px;min-height:340px}
.achat--static .road,.no-anim .road{display:none}
.week__list .ds{display:none}
@media (max-width:600px){.week__list .dl{display:none}.week__list .ds{display:inline}}

/* =========================================================
   Réduction des animations
   ========================================================= */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .js .boot{display:none}
  .js .hero__title .line>span{transform:none}
  .scope{opacity:.8}
  .scope__hud{opacity:1}
  .about__big .w{opacity:1}
  .hs{opacity:1}
  .report__list b{opacity:1;transform:none}
  .report__result{opacity:1;transform:none}
}
