/* ===========================================================
   V5 — Laboratoire clair
   Blanc minéral, graphite, bleu technique.
   =========================================================== */

:root{
  --bg:#f7f9fa;
  --bg-2:#eef2f5;
  --surface:#ffffff;
  --ink:#18252f;
  --ink-70:#465865;
  --ink-45:#526370;
  --ink-28:#61717d;
  --line:rgba(31,60,83,.13);
  --line-2:rgba(31,60,83,.24);
  --accent:#2363db;
  --hot:#176bce;

  --serif:'Space Grotesk','Inter',Arial,sans-serif;
  --sans:'Inter',-apple-system,'Segoe UI',Helvetica,Arial,sans-serif;

  --wrap:min(1240px,91vw);
  --ease:cubic-bezier(.2,.8,.2,1);

  /* canvas : graphite -> bleu, visualisation de fabrication */
  --cv-a:51,78,99;
  --cv-b:35,99,219;
  --cv-hot:35,99,219;
  --cv-plate:51,78,99;
  --cv-ghost:51,78,99;
  --cv-lw:1;
  --cv-glow:2;
  --cv-alpha:.48;
  --cv-dash:1;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}

body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:var(--sans);font-size:16.5px;line-height:1.6;
  font-weight:400;overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
body.is-locked{overflow:hidden}

a{color:inherit;text-decoration:none}
::selection{background:#dbe8ff;color:#18252f}
.wrap{width:var(--wrap);margin-inline:auto}

::-webkit-scrollbar{width:10px}
::-webkit-scrollbar-track{background:#f0f3f5}
::-webkit-scrollbar-thumb{background:#bbc7ce;border-radius:20px;border:3px solid #f0f3f5}

/* étiquettes */
.kicker,.index,.row__n,.row__tag,.step__n,.tbl th,.chart__k em,
.kv dt,.specs dt,.field label,.foot__bottom,.fig figcaption,.form__state{
  font-size:.72rem;font-weight:500;
  letter-spacing:.13em;text-transform:uppercase;
}

/* ===== TEXTURE ============================================ */
.vignette{
  position:fixed;inset:0;z-index:9989;pointer-events:none;
  background:radial-gradient(ellipse 100% 75% at 50% 40%,transparent 45%,rgba(0,0,0,.55) 100%);
}
.grain{
  position:fixed;inset:-150%;z-index:9990;pointer-events:none;opacity:.045;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 8s steps(7) infinite;
}
@keyframes grain{
  0%{transform:translate(0,0)}20%{transform:translate(-5%,3%)}
  40%{transform:translate(4%,-4%)}60%{transform:translate(-3%,5%)}
  80%{transform:translate(5%,2%)}
}

/* ===== LOADER ============================================= */
.loader{
  position:fixed;inset:0;z-index:9999;background:var(--bg);
  display:grid;align-items:end;
  transition:opacity .8s var(--ease),visibility .8s;
}
.loader.is-done{opacity:0;visibility:hidden}
.loader__in{
  width:var(--wrap);margin:0 auto 3.5rem;
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1.6rem;
}
.loader__mark{font-family:var(--serif);font-size:1.9rem;letter-spacing:-.01em}
.loader__rule{display:block;height:1px;background:var(--line)}
.loader__rule i{display:block;height:100%;width:0;background:var(--accent)}
.loader__pct{font-size:.72rem;letter-spacing:.14em;color:var(--ink-28)}

/* ===== PROGRESSION ======================================== */
.scrollbar{
  position:fixed;top:0;left:0;height:1.5px;width:100%;z-index:600;
  background:var(--accent);transform:scaleX(0);transform-origin:0 50%;
}

/* ===== NAV ================================================ */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:500;
  border-bottom:1px solid transparent;transition:background .45s,border-color .45s;
}
.nav.is-stuck{background:rgba(255,255,255,.88);backdrop-filter:blur(14px);border-bottom-color:var(--line)}
.nav__in{
  width:var(--wrap);margin-inline:auto;
  display:flex;align-items:center;gap:1.8rem;padding:1.25rem 0;
  transition:padding .45s var(--ease);
}
.nav.is-stuck .nav__in{padding:.8rem 0}
.brand{font-family:var(--serif);font-size:1.25rem;letter-spacing:-.01em;margin-right:auto}
.brand em{font-style:italic;color:var(--accent)}

.nav__links{display:flex;gap:1.7rem}
.nav__links a{
  position:relative;font-size:.92rem;color:var(--ink-45);
  padding-bottom:3px;transition:color .35s;
}
.nav__links a::after{
  content:'';position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--accent);
  transform:scaleX(0);transform-origin:100% 50%;transition:transform .5s var(--ease);
}
.nav__links a:hover,.nav__links a.is-active{color:var(--ink)}
.nav__links a:hover::after,.nav__links a.is-active::after{transform:scaleX(1);transform-origin:0 50%}

.burger{display:none;width:36px;height:32px;border:0;background:none;padding:0;place-items:center;gap:7px}
.burger i{display:block;width:20px;height:1px;background:var(--ink);transition:.35s var(--ease)}
.burger.is-open i:first-child{transform:translateY(4px) rotate(45deg)}
.burger.is-open i:last-child{transform:translateY(-4px) rotate(-45deg)}

/* ===== BOUTONS ============================================ */
.btn{
  display:inline-block;position:relative;overflow:hidden;isolation:isolate;
  background:var(--accent);color:#ffffff;
  padding:.88rem 1.6rem;border:1px solid var(--accent);border-radius:3px;
  font-family:var(--sans);font-size:.94rem;font-weight:500;
  box-shadow:0 14px 30px -18px rgba(0,0,0,.9);
  transition:transform .35s var(--ease),box-shadow .35s var(--ease);
}
.btn::after{
  content:'';position:absolute;inset:0;z-index:-1;background:#174db3;
  transform:translateY(101%);transition:transform .45s var(--ease);
}
.btn:hover{box-shadow:0 20px 40px -18px rgba(0,0,0,1)}
.btn:hover::after{transform:translateY(0)}
.btn--sm{padding:.55rem 1.05rem;font-size:.86rem}
.btn--block{width:100%;margin-top:1.5rem;cursor:pointer}

.link{
  align-self:center;font-size:.94rem;color:var(--ink-70);
  border-bottom:1px solid var(--line-2);padding-bottom:3px;
  transition:color .35s,border-color .35s;
}
.link:hover{color:var(--accent);border-bottom-color:var(--accent)}

/* ===== REVEAL ============================================= */
[data-reveal]{
  opacity:0;transform:translateY(20px);filter:blur(5px);
  transition:opacity .95s var(--ease),transform .95s var(--ease),filter .95s var(--ease);
}
[data-reveal].is-in{opacity:1;transform:none;filter:none}
tr[data-reveal]{transform:none;filter:none}

.w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em}
.w i{
  display:inline-block;font-style:normal;
  transform:translateY(106%);
  transition:transform 1.05s var(--ease);
}
.is-in .w i{transform:none}

/* ===== HERO =============================================== */
.hero{padding:9.5rem 0 5rem}
.kicker{
  display:inline-flex;align-items:center;gap:.7rem;margin:0 0 2rem;
  color:var(--ink-45);
}
.kicker__led{
  width:6px;height:6px;border-radius:50%;background:var(--hot);
  box-shadow:0 0 9px rgba(255,138,60,.8);animation:pulse 2.4s ease-in-out infinite;
}
@keyframes pulse{50%{opacity:.3}}

.display{
  margin:0;font-family:var(--serif);font-weight:400;
  font-size:clamp(3rem,8.4vw,7.2rem);
  line-height:.98;letter-spacing:-.022em;max-width:16ch;
}
.display .w:nth-last-child(-n+2) i{font-style:italic;color:var(--accent)}

.hero__grid{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr);
  gap:4.5rem;margin-top:3.5rem;align-items:start;
}
.lead{margin:0;font-size:1.05rem;color:var(--ink-70);max-width:44ch;line-height:1.7;font-weight:300}
.actions{display:flex;gap:1.8rem;flex-wrap:wrap;margin-top:2.4rem}

.specs{margin:3.2rem 0 0;border-top:1px solid var(--line)}
.specs div{display:grid;grid-template-columns:9rem 1fr;gap:1.5rem;padding:.95rem 0;border-bottom:1px solid var(--line)}
.specs dt{margin:0;color:var(--ink-28);padding-top:.35em}
.specs dd{margin:0;font-family:var(--serif);font-size:1.45rem;letter-spacing:-.01em}

.fig{margin:0;transition:transform .5s var(--ease);transform-style:preserve-3d}
.fig__frame{
  position:relative;aspect-ratio:1/1;border-radius:5px;overflow:hidden;
  background:
    radial-gradient(120% 95% at 50% 108%,rgba(var(--accent-rgb),.05),transparent 62%),
    linear-gradient(170deg,var(--surface),#151210);
  border:1px solid var(--line);
  box-shadow:0 50px 90px -50px rgba(0,0,0,1),inset 0 1px 0 rgba(237,231,220,.06);
}
.fig__frame canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.fig figcaption{
  display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  margin-top:.9rem;color:var(--ink-28);
}
.fig__read b{color:var(--accent);font-weight:500}

/* ===== MARQUEE ============================================ */
.marquee{
  border-block:1px solid var(--line);padding:1.15rem 0;overflow:hidden;
  background:var(--bg-2);
}
.marquee__track{display:flex;gap:2.6rem;width:max-content;animation:slide 40s linear infinite}
.marquee:hover .marquee__track{animation-play-state:paused}
.marquee span{font-family:var(--serif);font-size:1.35rem;color:var(--ink-45);white-space:nowrap}
.marquee i{font-family:var(--serif);font-style:italic;color:var(--accent);font-size:1.2rem}
@keyframes slide{to{transform:translateX(-50%)}}

/* ===== SECTIONS =========================================== */
.sec{padding:7.5rem 0}
.sec--raise{background:var(--bg-2);border-block:1px solid var(--line)}
.sec__head{margin-bottom:3.5rem;max-width:44ch}
.index{display:block;color:var(--accent);margin-bottom:1.3rem}
.title{
  margin:0;font-family:var(--serif);font-weight:400;
  font-size:clamp(2rem,4.6vw,3.5rem);line-height:1.05;letter-spacing:-.02em;
}
.sec__lead{margin:1.5rem 0 0;color:var(--ink-70);font-weight:300}
.note{margin:2rem 0 0;color:var(--ink-28);font-size:.9rem}

/* ===== RANGÉES SERVICES =================================== */
.rows{border-top:1px solid var(--line)}
.row{
  position:relative;display:grid;
  grid-template-columns:4.5rem minmax(0,1fr) minmax(0,13rem);
  gap:2.5rem;align-items:start;padding:2.4rem 1.4rem;
  border-bottom:1px solid var(--line);
  transition:background .5s var(--ease),padding-left .5s var(--ease);
}
.row::before{
  content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--accent);
  transform:scaleY(0);transform-origin:50% 100%;transition:transform .5s var(--ease);
}
.row:hover{background:rgba(var(--accent-rgb),.03);padding-left:2.2rem}
.row:hover::before{transform:scaleY(1);transform-origin:50% 0}
.row__n{color:var(--ink-28);padding-top:.5em;transition:color .4s}
.row:hover .row__n{color:var(--accent)}
.row h3{margin:0 0 .5rem;font-family:var(--serif);font-weight:400;font-size:1.7rem;letter-spacing:-.015em;line-height:1.15}
.row p{margin:0;color:var(--ink-45);font-size:.98rem;font-weight:300;max-width:58ch}
.row__tag{color:var(--ink-28);padding-top:.5em;text-align:right}

/* ===== STEPS ============================================== */
.steps{list-style:none;margin:0;padding:0;position:relative;border-top:1px solid var(--line)}
.steps__rail{position:absolute;left:1.6rem;top:0;bottom:0;width:1px;background:var(--line)}
.steps__rail i{position:absolute;inset:0 0 auto 0;height:0;background:var(--accent)}
.step{
  display:grid;grid-template-columns:4.5rem minmax(0,1fr);gap:2.5rem;
  padding:2.4rem 0;border-bottom:1px solid var(--line);
  opacity:0;transform:translateY(18px);
  transition:opacity .9s var(--ease),transform .9s var(--ease);
}
.step.is-in{opacity:1;transform:none}
.step__n{color:var(--ink-28);position:relative;z-index:1;background:var(--bg-2);padding:.2rem 0}
.step.is-in .step__n{color:var(--accent)}
.step h3{margin:0 0 .5rem;font-family:var(--serif);font-weight:400;font-size:1.55rem;letter-spacing:-.015em}
.step p{margin:0;color:var(--ink-45);font-weight:300;max-width:60ch}

/* ===== TABLE ============================================== */
.tbl-wrap{overflow-x:auto}
.tbl{width:100%;border-collapse:collapse;text-align:left;min-width:760px}
.tbl th{
  color:var(--ink-28);font-weight:500;padding:0 1.1rem 1.1rem 0;
  border-bottom:1px solid var(--line-2);
}
.tbl td{
  padding:2rem 1.1rem 2rem 0;border-bottom:1px solid var(--line);
  color:var(--ink-45);font-size:.96rem;font-weight:300;vertical-align:top;
  transition:background .45s var(--ease),color .45s;
}
.tbl tr[data-reveal]{opacity:0;transition:opacity .9s var(--ease)}
.tbl tr.is-in{opacity:1}
.tbl tr:hover td{background:rgba(var(--accent-rgb),.03);color:var(--ink-70)}
.tbl__name{color:var(--ink);font-family:var(--serif);font-size:1.4rem;letter-spacing:-.015em;padding-left:1.2rem !important}
.tbl__name em{
  display:block;font-style:normal;font-family:var(--sans);
  color:var(--accent);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;
  margin-top:.55rem;font-weight:500;
}
.tbl__price{color:var(--ink);font-family:var(--serif);font-size:1.75rem;white-space:nowrap;letter-spacing:-.015em}
.tbl__price i{font-style:normal;font-family:var(--sans);font-size:.7rem;letter-spacing:.14em;color:var(--ink-28);margin-right:.4rem;vertical-align:.35em}
.tbl__go a{color:var(--accent);border-bottom:1px solid transparent;padding-bottom:2px;white-space:nowrap;transition:border-color .35s}
.tbl tr:hover .tbl__go a{border-bottom-color:var(--accent)}
.tbl tr.is-flag td:first-child{box-shadow:inset 2px 0 0 var(--accent)}

/* ===== CHART ============================================== */
.chart{border-top:1px solid var(--line)}
.chart__row{
  display:grid;grid-template-columns:11rem minmax(0,1fr) 12rem;
  gap:2.2rem;align-items:center;padding:2rem 0;border-bottom:1px solid var(--line);
}
.chart__k{font-family:var(--serif);font-size:1.6rem;letter-spacing:-.015em}
.chart__k em{font-family:var(--sans);font-style:normal;color:var(--ink-28);margin-left:.4rem}
.chart__bar{display:block;height:5px;border-radius:3px;background:rgba(var(--accent-rgb),.1);position:relative}
.chart__bar i{
  position:absolute;inset:0 auto 0 0;width:0;border-radius:3px;
  background:rgba(var(--accent-rgb),.35);transition:width 1.5s var(--ease) .15s;
}
.chart__row.is-in .chart__bar i{width:var(--w)}
.chart__row--max .chart__bar i{background:var(--accent)}
.chart__v{font-size:1rem;color:var(--ink-70);text-align:right}
.chart__row p{grid-column:1/-1;margin:.2rem 0 0;color:var(--ink-28);font-size:.9rem;font-weight:300}

/* ===== CONTACT ============================================ */
.contact{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1fr);gap:4.5rem;align-items:start}
.kv{margin:2.8rem 0 0;border-top:1px solid var(--line)}
.kv div{display:grid;grid-template-columns:7.5rem 1fr;gap:1.5rem;padding:1rem 0;border-bottom:1px solid var(--line)}
.kv dt{margin:0;color:var(--ink-28);padding-top:.3em}
.kv dd{margin:0;color:var(--ink-70);font-size:.96rem;font-weight:300}

.form{
  position:relative;overflow:hidden;isolation:isolate;
  display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;
  padding:2.2rem;border-radius:6px;
  background:var(--surface);border:1px solid var(--line);
  box-shadow:0 50px 90px -55px rgba(0,0,0,1);
}
.form__spot{
  position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:0;transition:opacity .5s;
  background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(var(--accent-rgb),.05),transparent 62%);
}
.form:hover .form__spot{opacity:1}

.field{display:flex;flex-direction:column}
.field--full,.form .btn,.form__state{grid-column:1/-1}
.field label{color:var(--ink-28);margin-bottom:.55rem;transition:color .35s}
.field:focus-within label{color:var(--accent)}
.field input,.field select,.field textarea{
  font-family:var(--sans);font-size:.98rem;color:var(--ink);
  background:#f8fafc;border:1px solid var(--line);border-radius:4px;
  padding:.78rem .9rem;outline:none;resize:vertical;
  transition:border-color .35s,background .35s,box-shadow .35s;
}
.field textarea{min-height:118px}
.field select{appearance:none;cursor:pointer}
.field select option{background:#ffffff;color:var(--ink)}
.field input::placeholder,.field textarea::placeholder{color:var(--ink-28)}
.field:focus-within input,.field:focus-within textarea,.field:focus-within select{
  border-color:rgba(var(--accent-rgb),.55);background:#ffffff;
  box-shadow:0 0 0 3px rgba(var(--accent-rgb),.06);
}
.field.is-bad input,.field.is-bad textarea{border-color:rgba(191,63,42,.8)}
.field.is-bad{animation:shake .42s var(--ease)}
@keyframes shake{20%{transform:translateX(-6px)}40%{transform:translateX(5px)}60%{transform:translateX(-3px)}80%{transform:translateX(2px)}}
.form__state{margin:1rem 0 0;color:var(--ink-28);min-height:1.2em}
.form__state[data-tone="bad"]{color:var(--hot)}

/* ===== FOOTER ============================================= */
.foot{border-top:1px solid var(--line);padding:4rem 0 1.6rem;overflow:hidden}
.foot__top{display:flex;justify-content:space-between;gap:2rem;flex-wrap:wrap}
.foot__top p{margin:0;color:var(--ink-45);max-width:38ch;font-weight:300}
.foot__top nav{display:flex;gap:1.8rem}
.foot__top nav a{color:var(--ink-45);border-bottom:1px solid transparent;transition:.35s}
.foot__top nav a:hover{color:var(--accent);border-bottom-color:var(--accent)}
.foot__mark{
  margin:3rem 0 1.6rem;font-family:var(--serif);line-height:.85;
  font-size:clamp(3.6rem,19vw,16rem);letter-spacing:-.03em;
  color:transparent;-webkit-text-stroke:1px rgba(237,231,220,.15);
  user-select:none;white-space:nowrap;
}
.foot__bottom{
  display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  padding-top:1.4rem;border-top:1px solid var(--line);color:var(--ink-28);
}

/* ===== RESPONSIVE ========================================= */
@media (max-width:1080px){
  .hero__grid{grid-template-columns:1fr;gap:3rem}
  .fig{max-width:500px}
  .contact{grid-template-columns:1fr;gap:3rem}
  .row{grid-template-columns:3.5rem minmax(0,1fr);gap:1.2rem 2rem}
  .row__tag{grid-column:2;text-align:left;padding-top:.4rem}
}

@media (max-width:860px){
  .burger{display:grid}
  .nav .btn--sm{display:none}
  .nav__links{
    position:fixed;inset:0;z-index:-1;background:var(--bg);
    flex-direction:column;justify-content:center;gap:1rem;padding:2rem;
    opacity:0;visibility:hidden;transition:opacity .45s var(--ease),visibility .45s;
  }
  .nav__links.is-open{opacity:1;visibility:visible;z-index:1}
  .nav__links a{font-family:var(--serif);font-size:2.2rem;color:var(--ink)}
  .nav.is-menu{background:transparent;backdrop-filter:none;border-bottom-color:transparent}
  .nav .brand,.burger{position:relative;z-index:3}
}

@media (max-width:760px){
  .sec{padding:5rem 0}
  .hero{padding-top:7.5rem}
  .form{grid-template-columns:1fr;padding:1.4rem}
  .chart__row{grid-template-columns:1fr;gap:.9rem}
  .chart__v{text-align:left}
  .steps__rail{left:1.1rem}
  .step{grid-template-columns:3rem minmax(0,1fr);gap:1.2rem}
  .marquee span{font-size:1.1rem}
  .foot__top{flex-direction:column}
}

/* ===== MOTION RÉDUIT ====================================== */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important;animation-iteration-count:1 !important;
    transition-duration:.001ms !important;scroll-behavior:auto !important;
  }
  [data-reveal],.step,.w i{opacity:1 !important;transform:none !important;filter:none !important}
  .grain{display:none}
}

/* Minimal laboratory — light surfaces, precise typography. */
.grain,.vignette{display:none}
body{font-size:15px}
.nav{background:rgba(255,255,255,.88);backdrop-filter:blur(20px);border-bottom-color:var(--line)}
.nav.is-stuck{background:rgba(255,255,255,.96)}
.brand{font-family:var(--sans);font-size:1.04rem;font-weight:500;letter-spacing:-.045em}
.brand em{font-style:normal;font-weight:400}
.brand::before{content:'+';display:inline-grid;place-items:center;width:26px;height:26px;border:1px solid var(--line-2);border-radius:7px;margin-right:11px;color:var(--accent);font-weight:300;font-size:20px;vertical-align:middle}
.nav__links a{font-size:.8rem}
.hero{padding:9rem 0 4rem;position:relative}
.hero>.wrap{position:relative}
.kicker{font-size:.63rem;letter-spacing:.12em;margin-bottom:2rem;color:var(--ink-70)}
.kicker__led{background:var(--accent);box-shadow:0 0 12px rgba(var(--accent-rgb),0.188)}
.hero__grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:3rem 5rem;margin-top:0;align-items:center}
.display{font-size:clamp(2.9rem,5.5vw,5.4rem);letter-spacing:-.065em;line-height:1.05;font-weight:400;max-width:13ch;margin-bottom:2rem}
.display .w:nth-last-child(-n+2) i{font-style:normal;color:var(--accent)}
.lead{font-size:.92rem;line-height:1.85;font-weight:400;max-width:43ch}
.actions{margin-top:2rem;gap:1.4rem;align-items:center}
.btn{border-radius:7px;font-size:.8rem;font-weight:500;padding:.9rem 1.2rem;box-shadow:none}
.actions .btn::before{content:'↗';float:right;margin-left:1.5rem;transition:transform .35s}
.actions .btn:hover::before{transform:translate(2px,-2px)}
.btn:hover{box-shadow:0 0 26px rgba(var(--accent-rgb),0.094)}
.btn--sm{padding:.6rem .95rem;font-size:.76rem}
.link{font-size:.79rem}
.specs{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);margin:1rem 0 0;border-block:1px solid var(--line)}
.specs div{grid-template-columns:1fr;gap:.65rem;border-bottom:0;padding:1.6rem 2rem;border-right:1px solid var(--line)}
.specs div:first-child{padding-left:0}.specs div:last-child{border-right:0}
.specs dt{font-size:.6rem;letter-spacing:.11em;padding:0}
.specs dd{font-size:1.3rem;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.fig{width:100%;max-width:none}
.fig__frame{border-radius:14px;isolation:isolate;background:radial-gradient(ellipse at 50% 65%,rgba(var(--accent-rgb),0.027),transparent 65%),#ffffff;box-shadow:none;aspect-ratio:1.06}
.fig__frame::after{content:'';position:absolute;inset:12px;pointer-events:none;border:1px solid rgba(var(--accent-rgb),0.086);border-radius:8px}
.fig__frame canvas{z-index:2}
.scene-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(var(--accent-rgb),0.078) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--accent-rgb),0.078) 1px,transparent 1px);background-size:38px 38px;mask-image:radial-gradient(ellipse,#000,transparent 74%)}
.scene-orbit{position:absolute;inset:16%;border:1px solid rgba(var(--accent-rgb),0.141);border-radius:50%;transform:rotate(-25deg) scaleY(.76);animation:orbit-drift 18s ease-in-out infinite}
.scene-orbit::before{content:'';position:absolute;width:5px;height:5px;background:var(--accent);border-radius:50%;left:15%;top:13%;box-shadow:0 0 16px rgba(var(--accent-rgb),0.376)}
.scene-scan{position:absolute;left:8%;right:8%;height:1px;top:15%;z-index:3;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(var(--accent-rgb),0.376),transparent);box-shadow:0 -12px 24px 4px rgba(var(--accent-rgb),0.024);animation:scan-pass 7s ease-in-out infinite}
.scene-label{position:absolute;left:27px;top:26px;z-index:3;font-family:var(--sans);font-size:.55rem;letter-spacing:.16em;color:var(--ink-45)}
.motion-toggle{position:absolute;right:23px;top:20px;width:32px;height:32px;border:1px solid var(--line-2);border-radius:50%;z-index:4;background:var(--bg);color:var(--ink);cursor:pointer;font-size:12px;transition:border-color .3s}
.motion-toggle:hover{border-color:var(--accent)}
.motion-toggle:disabled{opacity:.5;cursor:default}
.fig figcaption{font-size:.53rem;letter-spacing:.055em;gap:.4rem;margin-top:1rem}
.marquee{padding:.95rem 0;background:transparent}
.marquee span{font-family:var(--sans);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase}
.marquee i{font-family:var(--sans);font-style:normal;font-size:.7rem}
.marquee__track{animation-duration:32s}
.sec{padding:6.5rem 0;scroll-margin-top:72px}
.sec__head{max-width:620px;margin-bottom:3rem}
.title{font-size:clamp(2rem,3.4vw,3.1rem);line-height:1.12;letter-spacing:-.055em;max-width:22ch}
.index{font-size:.6rem;letter-spacing:.13em}
.row{padding:2rem 1rem;transition:background .4s}
.row:hover{padding-left:1rem;background:rgba(var(--accent-rgb),0.031)}
.row__main{transition:transform .45s var(--ease)}
.row:hover .row__main{transform:translateX(8px)}
.row h3{font-size:1.3rem;letter-spacing:-.035em}
.row p,.step p{font-size:.88rem;line-height:1.8;font-weight:400}
.row__tag,.row__n{font-size:.6rem}
.step h3{font-size:1.2rem;letter-spacing:-.035em}
.tbl__name,.tbl__price{font-size:1.2rem;letter-spacing:-.04em}
.tbl td{font-size:.84rem;font-weight:400}
.form{box-shadow:none;border-radius:12px;background:#ffffff}
.field label{font-size:.62rem}.field input,.field select,.field textarea{font-size:.87rem}
.foot__mark{font-family:var(--sans);font-weight:400;letter-spacing:-.065em;-webkit-text-stroke:1px rgba(var(--accent-rgb),0.149)}
:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
@keyframes orbit-drift{0%,100%{transform:rotate(-25deg) scaleY(.76)}50%{transform:rotate(22deg) scaleY(.86)}}
@keyframes scan-pass{0%,100%{transform:translateY(0);opacity:0}15%,85%{opacity:.75}50%{transform:translateY(260px);opacity:.5}}
.motion-paused *,.motion-paused *::before,.motion-paused *::after{animation-play-state:paused!important}
@media(min-width:761px) and (max-width:1080px){.hero__grid{gap:2rem}.display{font-size:4.6vw}.lead{font-size:.84rem}}
@media(max-width:760px){
  .hero{padding:7rem 0 2.5rem}.kicker{font-size:.54rem;letter-spacing:.07em;margin-bottom:1.5rem}
  .hero__grid{grid-template-columns:1fr;gap:2.2rem}.display{font-size:clamp(2.8rem,10.5vw,4.6rem);max-width:16ch;margin-bottom:1.3rem}
  .lead{font-size:.87rem;max-width:44ch}.actions{margin-top:1.5rem;gap:1.1rem}
  .fig__frame{aspect-ratio:1.15}.fig figcaption{font-size:.5rem}.scene-label{font-size:.5rem}
  .specs{margin:0;gap:0}.specs div{padding:1.25rem .7rem;gap:.6rem}.specs dt{font-size:.52rem;letter-spacing:.03em}.specs dd{font-size:1rem}
  .sec{padding:4.5rem 0}.sec__head{margin-bottom:2.3rem}.row{grid-template-columns:1.5rem 1fr;gap:1rem;padding:1.8rem .25rem}.row:hover{padding-left:.25rem}
  .nav__links a{font-size:1.8rem;letter-spacing:-.04em}.nav__links{padding:2rem}
  .form{padding:1.3rem}.foot__mark{font-size:19vw}
}
@media(prefers-reduced-motion:reduce){.scene-scan{display:none}.scene-orbit{animation:none}}

/* Bright, quiet work surfaces. */
:root{color-scheme:light}
.hero{background:linear-gradient(180deg,#fff 0%,var(--bg) 100%)}
.fig__frame{border-color:#d4dfe7;box-shadow:0 20px 60px -36px #26486645}
.fig__frame::after{border-color:#dce5ec}
.scene-grid{mask-image:radial-gradient(ellipse,#000 25%,transparent 78%)}
.motion-toggle{background:#fff;border-color:#d4dfe7}
.btn{color:#fff}
.btn:focus-visible{outline-color:#18252f}
.brand::before{background:#edf3ff;border-color:#d5e1f6}
.nav.is-menu{background:#fff;backdrop-filter:none}
.row:hover{background:#edf3fb}
.form{border-color:#d9e2e9}
.field select{appearance:auto}
.field input,.field select,.field textarea{border-color:#cbd6df}
.field.is-bad input,.field.is-bad textarea{border-color:#b44232}
.form__state[data-tone="bad"]{color:#b44232}
.chart__bar{background:#dbe3e9}
.foot{background:#fff}
.foot__mark{-webkit-text-stroke:1px #b8ccdc}

/* Selected identity: light laboratory, graphite and orange. */
:root,[data-palette="orange"]{
  --bg:#faf8f5;--bg-2:#f0ede8;--surface:#fffefa;
  --ink:#242522;--ink-70:#555650;--ink-45:#61615a;--ink-28:#6d6c64;
  --accent:#b84416;--accent-rgb:198,74,22;--hot:#c64a16;
  --action:#b84416;--action-hover:#963610;
  --line:rgba(48,44,36,.13);--line-2:rgba(48,44,36,.24);
  --cv-a:76,73,66;--cv-b:224,96,35;--cv-hot:213,77,20;--cv-plate:76,73,66;--cv-ghost:76,73,66;
}
.hero{background:linear-gradient(180deg,var(--surface),var(--bg))}
.fig__frame,.form,.foot,.motion-toggle{background-color:var(--surface);border-color:var(--line)}
.fig__frame{box-shadow:0 20px 60px -36px rgba(40,40,40,.16)}
.fig__frame::after,.brand::before{border-color:var(--line)}
.brand::before,.row:hover{background:rgba(var(--accent-rgb),.045)}
.btn{background:var(--action);border-color:var(--action)}
.btn::after{background:var(--action-hover)}
.display .w:nth-last-child(-n+2) i{color:var(--ink)}
.chart__bar{background:var(--line)}
.field input,.field select,.field textarea{background:var(--bg);border-color:var(--line-2)}
.field select option{background:var(--surface)}
.field:focus-within input,.field:focus-within select,.field:focus-within textarea{background:var(--surface)}
.foot__mark{-webkit-text-stroke:1px var(--line-2)}
.nav,.nav.is-stuck{background:color-mix(in srgb,var(--surface) 92%,transparent)}
.nav.is-menu{background:var(--surface)}
::selection{background:rgba(var(--accent-rgb),.16);color:var(--ink)}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--line-2);border-color:var(--bg)}

/* Client content and quote preview. */
.skip-link{position:fixed;top:8px;left:8px;z-index:10000;transform:translateY(-160%);background:#fff;padding:12px;border:2px solid var(--accent)}
.skip-link:focus{transform:none}
.nav__links{gap:1.3rem}
.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.8rem}
.project-visual{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden;aspect-ratio:1.25}
.project-visual svg{width:100%;height:100%;padding:15px;color:var(--ink-70);stroke-width:1.4;transition:transform .65s var(--ease)}
.project-card:hover svg{transform:translateY(-4px) rotate(-2deg)}
.project-visual>span{position:absolute;bottom:12px;left:15px;font-size:.55rem;letter-spacing:.12em;color:var(--ink-28)}
.project-card h3{font:400 1.2rem var(--serif);letter-spacing:-.03em;margin:1.4rem 0 .7rem}
.project-card p{font-size:.88rem;line-height:1.75;color:var(--ink-70)}
.project-hint{display:block;font-size:.72rem;color:var(--ink-28);margin:1.3rem 0}
.faq-list{border-top:1px solid var(--line);max-width:900px}
.faq-list details{border-bottom:1px solid var(--line)}
.faq-list summary{cursor:pointer;font-size:1rem;line-height:1.5;list-style:none;padding:1.5rem 2rem 1.5rem 0;position:relative}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:'+';position:absolute;right:4px;top:1.5rem;color:var(--accent)}
.faq-list details[open] summary::after{content:'−'}
.faq-list p{max-width:74ch;color:var(--ink-70);font-size:.9rem;line-height:1.8;margin:0 0 1.7rem}
.demo-notice{border:1px solid var(--line);border-left:2px solid var(--accent);padding:1.2rem;margin-top:2rem;font-size:.8rem;background:var(--surface)}
.demo-notice p{margin:.7rem 0 0;color:var(--ink-70);line-height:1.7}
.kv small{display:block;margin-top:.3rem;color:var(--ink-28);font-size:.72rem}
.demo-email{overflow-wrap:anywhere}
.form__state{letter-spacing:0;text-transform:none;font-size:.8rem;line-height:1.6}
.field-help{font-size:.72rem;color:var(--ink-70);line-height:1.7;margin:0}
.upload-field{padding:1rem;border:1px dashed var(--line-2);border-radius:8px;gap:.75rem}
.upload-field input{max-width:100%;font-size:.72rem;padding:.5rem;background:transparent}
.upload-field input::file-selector-button{border:0;background:var(--bg-2);padding:9px;color:var(--ink);border-radius:4px;margin-right:10px;cursor:pointer}
.file-list{margin:0;padding-left:1rem;font-size:.73rem;overflow-wrap:anywhere}
.privacy-link,.text-button{font:inherit;font-size:.85rem;border:0;padding:0;background:transparent;color:var(--ink-70);cursor:pointer;text-decoration:underline;text-underline-offset:4px}
.review-dialog{position:fixed;max-width:650px;width:calc(100% - 32px);max-height:85dvh;padding:2.5rem;border:1px solid var(--line-2);border-radius:14px;background:var(--surface);color:var(--ink);overflow:auto}
.review-dialog::backdrop{background:rgba(35,32,28,.35);backdrop-filter:blur(5px)}
.review-dialog h2{font:400 2rem var(--serif);letter-spacing:-.05em;margin:0 0 1rem}
.review-dialog p{font-size:.88rem;line-height:1.75;color:var(--ink-70)}
.dialog-close{position:absolute;right:15px;top:12px;width:36px;height:36px;font-size:25px;border:0;background:transparent;cursor:pointer;color:var(--ink)}
.review-dialog dl{display:grid;grid-template-columns:110px minmax(0,1fr);gap:.8rem;font-size:.84rem;border-block:1px solid var(--line);padding-block:1.3rem}
.review-dialog dt{color:var(--ink-70)}.review-dialog dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:760px){.project-grid{grid-template-columns:1fr;gap:2.5rem}.project-visual{aspect-ratio:1.65}.review-dialog{padding:2.2rem 1.3rem}.review-dialog dl{grid-template-columns:80px 1fr}.foot__top nav{flex-wrap:wrap}.kv div{grid-template-columns:6rem 1fr;gap:.8rem}}

/* Local repair and small-series intake. */
.repair-section{border-top:1px solid var(--line,#dedbd5);border-bottom:1px solid var(--line,#dedbd5)}.repair-layout{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}.repair-layout .title{margin:20px 0 24px}.repair-layout .lead{margin-bottom:28px}.repair-note{font-size:14px;line-height:1.6;color:var(--ink70);margin-top:18px;max-width:440px}.repair-checklist{list-style:none;padding:0;margin:0}.repair-checklist li{display:flex;gap:24px;padding:28px 0;border-top:1px solid #dedbd5}.repair-checklist li>span{color:var(--accent);font-size:14px}.repair-checklist h3{font-size:20px;margin:0 0 12px}.repair-checklist p{font-size:16px;line-height:1.7;color:var(--ink70)}.project-choices{display:flex;gap:8px;flex-wrap:wrap}.project-choices button{border:1px solid #d4cec4;border-radius:8px;padding:12px 14px;background:transparent;color:var(--ink);font:inherit;font-size:14px;cursor:pointer}.project-choices button[aria-pressed="true"]{background:var(--accent);color:white;border-color:var(--accent)}.project-choices button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.project-details{min-width:0;padding:22px;border:1px solid #d4cec4;border-radius:12px;background:var(--surface,#fffefa)}.project-details legend{font-size:16px;padding:0 8px}.project-detail-grid{display:grid;grid-template-columns:1fr;gap:18px}.project-details .field-help{margin-top:18px}.project-details[hidden]{display:none}.row__tag{max-width:220px;text-align:right}.review-dialog dd{overflow-wrap:anywhere}@media(max-width:760px){.repair-layout{grid-template-columns:1fr;gap:36px}.project-choices{flex-direction:column}.project-choices button{text-align:left}.project-details{padding:16px}.row__tag{text-align:left;max-width:none}}

/* Customer journey: optional estimate and short email request. */
[hidden]{display:none!important}
.customer-calculator{margin-top:28px;border-top:1px solid var(--line);padding-top:24px}
.customer-calculator>summary,.request-options>summary{cursor:pointer;font-size:1rem;font-weight:500;line-height:1.6}
.customer-calculator[open]>summary{margin-bottom:20px}
.request-options{padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.request-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:20px}
.price-customer,#cost-production-summary,#price-minimum-note,#cost-export{display:none}
@media(max-width:600px){.request-grid{grid-template-columns:1fr}.nav__in>.btn{font-size:12px;padding:12px}}
