/* =========================================================
   Nuxerya — main.css
   Base globale, sections homepage, cookies, loader, footer
========================================================= */

:root{
  --nux-night:#0B111E;
  --nux-slate:#141924;
  --nux-blue:#1A51A6;
  --nux-purple:#6A33D8;
  --nux-cyan:#58F1D3;

  --bg:var(--nux-night);
  --bg-soft:var(--nux-slate);

  --surface:rgba(20,25,36,.58);
  --surface-strong:rgba(20,25,36,.78);

  --primary:var(--nux-blue);
  --primary-2:var(--nux-purple);
  --accent:var(--nux-cyan);

  --text:rgba(218,231,242,.72);
  --text-soft:rgba(218,231,242,.52);
  --text-strong:rgba(244,250,255,.96);

  --line:rgba(88,241,211,.105);
  --line-soft:rgba(88,241,211,.065);

  --gradient-main:linear-gradient(135deg, var(--nux-blue) 0%, var(--nux-purple) 58%, var(--nux-cyan) 125%);
  --gradient-soft:linear-gradient(135deg, rgba(26,81,166,.22), rgba(106,51,216,.16));
  --gradient-line:linear-gradient(90deg, var(--nux-cyan), var(--nux-blue), var(--nux-purple));

  --shadow-soft:0 18px 50px rgba(0,0,0,.24);
  --shadow-card:0 12px 34px rgba(0,0,0,.18);

  --radius:18px;
  --radius-lg:26px;

  --field-h:52px;
  --field-radius:13px;

  --nav-h:72px;
  --anchor-offset:30px;

  --font-body:Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-title:Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* =========================================================
   Base
========================================================= */

*,
*::before,
*::after{
  box-sizing:border-box;
}

html,
body{
  min-height:100%;
}

html{
  scroll-behavior:smooth;
  background:var(--nux-night, #0B111E);
}

body{
  position:relative;
  isolation:isolate;

  margin:0;
  padding-top:20px;
  overflow-x:hidden;

  color:var(--text);

  font-family:var(--font-body);
  font-size:16px;
  font-weight:400;
  line-height:1.6;

  background-color:var(--nux-night);
  background:
    radial-gradient(920px 560px at 10% -12%, rgba(26,81,166,.22), transparent 64%),
    radial-gradient(760px 500px at 92% -8%, rgba(106,51,216,.18), transparent 66%),
    radial-gradient(620px 420px at 50% 18%, rgba(88,241,211,.045), transparent 68%),
    linear-gradient(180deg, var(--nux-night) 0%, #080D18 100%);

  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-2;
  pointer-events:none;

  background:
    linear-gradient(rgba(88,241,211,.014) 1px, transparent 1px),
    linear-gradient(90deg, rgba(88,241,211,.012) 1px, transparent 1px);
  background-size:72px 72px;

  opacity:.18;
}

img{
  max-width:100%;
  display:block;
}

a{
  color:inherit;
}

.container{
  width:min(1120px, 92%);
  margin-inline:auto;
}

section{
  scroll-margin-top:var(--anchor-offset);
}

.sr-only{
  position:absolute!important;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

/* =========================================================
   Background global
========================================================= */

#bgFx{
  position:fixed;
  inset:0;
  z-index:0;

  pointer-events:none;
  overflow:hidden;
  opacity:1;

  contain:paint;
}

#bgFx::before{
  content:"";
  position:absolute;
  inset:0;

  background:
    radial-gradient(circle, rgba(88,241,211,.055) 0 1px, transparent 1.8px),
    linear-gradient(rgba(88,241,211,.022) 1px, transparent 1px),
    linear-gradient(90deg, rgba(88,241,211,.018) 1px, transparent 1px);

  background-size:46px 46px;
  opacity:.30;
}

#bgFx::after{
  content:"";
  position:absolute;
  inset:0;

  background:
    radial-gradient(620px 360px at 15% 22%, rgba(88,241,211,.045), transparent 64%),
    radial-gradient(720px 420px at 84% 34%, rgba(106,51,216,.060), transparent 68%),
    radial-gradient(620px 360px at 48% 80%, rgba(26,81,166,.050), transparent 70%);

  opacity:.78;
}

.section,
.site-footer{
  position:relative;
  z-index:1;
}

@keyframes nuxBgSoftPulse{
  from{ opacity:.72; }
  to{ opacity:.96; }
}

/* =========================================================
   Typographie
========================================================= */

.section{
  position:relative;
  padding:clamp(56px, 7vw, 92px) 0;
}

.eyebrow{
  margin:0 0 14px;

  color:var(--accent);
  font-size:11px;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.section__title{
  margin:0;
  max-width:980px;

  color:var(--text-strong);
  font-family:var(--font-title);
  font-size:clamp(28px, 4vw, 48px);
  font-weight:600;
  line-height:1.08;
  letter-spacing:-.045em;
}

.section__desc{
  margin:18px 0 0;
  max-width:66ch;

  color:rgba(218,231,242,.72);
  font-size:clamp(15px, 1.25vw, 17px);
  line-height:1.78;
  font-weight:400;
}

.section-head{
  margin-bottom:clamp(34px, 5vw, 62px);
}

.centered{
  max-width:760px;
  margin-inline:auto;
  text-align:center;
}

.centered .section__title,
.centered .section__desc{
  margin-inline:auto;
}

/* =========================================================
   Boutons / tags
========================================================= */

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;

  min-height:46px;
  padding:12px 18px;
  border-radius:999px;
  border:1px solid transparent;

  color:inherit;
  text-decoration:none;
  font-size:14px;
  font-weight:600;
  line-height:1;
  user-select:none;

  transition:
    transform .18s ease,
    background .2s ease,
    border-color .2s ease,
    color .2s ease,
    box-shadow .2s ease;
}

.btn:hover{
  transform:translateY(-1px);
}

.btn:active{
  transform:translateY(0);
}

.btn:focus-visible{
  outline:2px solid rgba(88,241,211,.42);
  outline-offset:3px;
}

.btn--primary{
  color:#fff;
  background:var(--gradient-main);
  box-shadow:
    0 14px 34px rgba(26,81,166,.26),
    0 0 0 1px rgba(88,241,211,.08) inset;
}

.btn--primary:hover{
  box-shadow:
    0 18px 44px rgba(26,81,166,.34),
    0 0 34px rgba(88,241,211,.10),
    0 0 0 1px rgba(88,241,211,.12) inset;
}

.btn--ghost{
  color:var(--text-strong);
  border-color:rgba(88,241,211,.18);
  background:rgba(20,25,36,.34);
}

.btn--ghost:hover{
  border-color:rgba(88,241,211,.34);
  background:rgba(20,25,36,.56);
}

.tag{
  display:inline-flex;
  width:max-content;
  align-items:center;

  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(88,241,211,.18);

  color:rgba(244,250,255,.88);
  background:rgba(88,241,211,.045);

  font-size:12px;
  font-weight:600;
}

/* =========================================================
   Reveal
========================================================= */

.reveal{
  opacity:0;
  transform:translate3d(0, 18px, 0);

  transition:
    opacity .65s ease,
    transform .65s cubic-bezier(.2,.8,.2,1);
  transition-delay:var(--reveal-delay, 0s);
}

.reveal-delay-1{
  --reveal-delay:.08s;
}

.reveal-delay-2{
  --reveal-delay:.16s;
}

.reveal.is-visible{
  opacity:1;
  transform:none;
}

/* =========================================================
   Hero
========================================================= */

.hero-v2{
  min-height:calc(100vh - var(--nav-h));
  margin-top:0;

  padding:
    clamp(24px, 4vw, 52px)
    0
    clamp(56px, 8vw, 98px);

  display:grid;
  align-items:center;

  overflow:hidden;
  isolation:isolate;
}

.hero-v2 .container{
  width:min(1320px, 96%);
}

.hero-v2__orb,
.hero-panel__halo,
.hero-panel__grid{
  display:none;
}

.hero-v2__single{
  display:grid;
  place-items:center;
}

.hero-panel{
  position:relative;

  width:min(100%, 1240px);
  margin-inline:auto;
  padding:
    clamp(18px, 4vw, 50px)
    clamp(18px, 5vw, 58px)
    clamp(28px, 5vw, 46px);

  text-align:center;

  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;

  overflow:visible;
  isolation:isolate;
}

.hero-panel::before{
  content:"";
  position:absolute;
  left:10%;
  right:10%;
  top:0;

  height:1px;

  background:linear-gradient(
    90deg,
    transparent,
    rgba(88,241,211,.48),
    rgba(106,51,216,.36),
    transparent
  );

  opacity:.9;
}

.hero-panel::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  z-index:-1;

  width:min(820px, 86vw);
  aspect-ratio:1;
  border-radius:999px;

  background:
    radial-gradient(circle, rgba(88,241,211,.095), rgba(26,81,166,.07) 34%, rgba(106,51,216,.055) 54%, transparent 70%);

  transform:translate(-50%, -50%);
  filter:blur(2px);
  opacity:.85;
  pointer-events:none;
}

.hero-panel__badge{
  position:relative;
  isolation:isolate;

  width:max-content;
  max-width:100%;
  margin:0 auto 24px;
  padding:8px 12px;
  border-radius:999px;
  border:0;

  display:inline-flex;
  align-items:center;
  gap:9px;

  color:rgba(244,250,255,.84);
  background:rgba(11,17,30,.48);
  box-shadow:0 12px 34px rgba(0,0,0,.18);

  font-size:12px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;

  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);

  overflow:hidden;
}

.hero-panel__badge::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  border-radius:inherit;
  padding:1px;

  background:linear-gradient(
    135deg,
    rgba(88,241,211,.75),
    rgba(26,81,166,.75),
    rgba(106,51,216,.75)
  );

  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;

  mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  mask-composite:exclude;

  pointer-events:none;
}

.hero-panel__badge img,
.hero-panel__badge span{
  position:relative;
  z-index:1;
}

.hero-panel__badge img{
  width:22px;
  height:22px;
  object-fit:contain;
}

.hero-v2__title{
  margin:0 auto;
  max-width:1180px;

  color:var(--text-strong);
  font-family:var(--font-title);
  font-size:clamp(44px, 7.1vw, 92px);
  font-weight:650;
  line-height:.95;
  letter-spacing:-.078em;

  text-wrap:balance;
}

.hero-v2__lead{
  margin:26px auto 0;
  max-width:720px;

  color:rgba(231,236,243,.78);
  font-size:clamp(16px, 1.35vw, 19px);
  line-height:1.76;
  font-weight:400;
}

.hero-v2__actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:12px;

  margin-top:32px;
}

.hero-panel__signals{
  width:min(100%, 760px);
  margin:34px auto 0;

  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:10px;
}

.hero-panel__signals span{
  min-height:44px;
  padding:10px 12px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.09);

  display:flex;
  align-items:center;
  justify-content:center;

  color:rgba(231,236,243,.72);
  background:rgba(244,250,255,.032);

  font-size:12px;
  font-weight:600;
  line-height:1.2;
}

.hero-panel__line{
  width:67%;
  height:2px;
  margin:30px auto 0;
  border-radius:999px;

  background:transparent;
  overflow:hidden;
}

.hero-panel__line span{
  display:block;

  width:42%;
  height:100%;
  border-radius:inherit;

  background:var(--gradient-line);
}

@media (prefers-reduced-motion: no-preference){
  .hero-panel__line span{
    animation:heroLineMove 4.8s ease-in-out infinite;
  }
}

@keyframes heroLineMove{
  0%, 100%{
    transform:translateX(-22%);
  }

  50%{
    transform:translateX(166%);
  }
}

/* =========================================================
   Origine
========================================================= */

.origin-section{
  padding-top:clamp(40px, 7vw, 88px);
}

.origin-grid{
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  gap:clamp(30px, 6vw, 92px);
  align-items:start;
}

.origin-card{
  padding:0;
  background:transparent;
  border:0;
  box-shadow:none;
}

.origin-copy{
  padding-left:clamp(24px, 4vw, 48px);
  border-left:1px solid rgba(88,241,211,.22);
}

.origin-copy p{
  margin:0;

  color:rgba(231,236,243,.78);
  font-size:clamp(15.5px, 1.35vw, 18px);
  line-height:1.86;
}

.origin-copy p + p{
  margin-top:18px;
}

/* =========================================================
   Services
========================================================= */

.sticky-story{
  overflow:visible;
}

.sticky-story__grid{
  display:grid;
  grid-template-columns:minmax(280px, .78fr) minmax(0, 1.22fr);
  gap:clamp(38px, 7vw, 104px);
  align-items:start;
}

.sticky-story__left{
  position:sticky;
  top:calc(var(--nav-h) + 38px);

  min-height:calc(100vh - var(--nav-h) - 76px);
  padding-block:24px;

  display:flex;
  flex-direction:column;
  justify-content:center;
}

.sticky-story__left .section__title{
  font-size:clamp(28px, 3.6vw, 44px);
}

.sticky-story__actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;

  margin-top:28px;
}

.story-progress{
  width:min(100%, 320px);
  height:2px;
  margin-top:28px;
  border-radius:999px;

  background:rgba(88,241,211,.075);
  overflow:hidden;
}

.story-progress__bar{
  display:block;

  width:100%;
  height:100%;
  border-radius:inherit;

  background:var(--gradient-line);
  transform:scaleX(.08);
  transform-origin:left;

  transition:transform .45s ease;
}

.story-kicker{
  margin:14px 0 0;

  color:rgba(231,236,243,.76);
  font-size:12px;
  font-weight:600;
  letter-spacing:.10em;
  text-transform:uppercase;
}

.sticky-story__right{
  display:grid;
  gap:clamp(20px, 4vw, 34px);
  padding:8vh 0 10vh;
}

.story-card{
  position:relative;

  min-height:min(660px, 70vh);

  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:24px;

  padding:
    clamp(28px, 5vw, 56px)
    0
    clamp(28px, 5vw, 56px)
    clamp(26px, 4vw, 50px);

  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;

  opacity:.55;
  transform:translateX(0);

  transition:
    opacity .35s ease,
    transform .35s ease;
}

.story-card::before{
  content:"";
  position:absolute;
  left:0;
  top:clamp(28px, 5vw, 56px);
  bottom:clamp(28px, 5vw, 56px);

  width:1px;
  border-radius:999px;

  background:rgba(88,241,211,.10);

  transition:
    width .3s ease,
    background .3s ease,
    box-shadow .3s ease;
}

.story-card.is-active{
  opacity:1;
  transform:translateX(4px);
}

.story-card.is-active::before{
  width:2px;

  background:linear-gradient(
    180deg,
    var(--nux-cyan),
    var(--nux-blue),
    var(--nux-purple)
  );

  box-shadow:0 0 20px rgba(88,241,211,.18);
}

.story-card__head{
  display:grid;
  gap:12px;
  align-items:start;
}

.story-card__topline{
  display:flex;
  align-items:center;
  gap:16px;
}

.story-card__icon{
  width:44px;
  height:44px;
  flex:0 0 auto;

  display:grid;
  place-items:center;

  border-radius:13px;
  border:1px solid rgba(88,241,211,.20);

  color:var(--text-strong);
  background:
    radial-gradient(90px 60px at 30% 15%, rgba(88,241,211,.10), transparent 58%),
    radial-gradient(90px 70px at 80% 20%, rgba(26,81,166,.14), transparent 62%),
    rgba(20,25,36,.54);

  font-size:15px;
  font-weight:600;
}

.story-card__eyebrow{
  margin:0;

  color:var(--accent);
  font-size:11px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.story-card h3{
  margin:0;
  max-width:720px;

  color:var(--text-strong);
  font-family:var(--font-title);
  font-size:clamp(25px, 3.3vw, 40px);
  font-weight:600;
  line-height:1.08;
  letter-spacing:-.045em;
}

.story-card p{
  margin:0;
  max-width:720px;

  color:rgba(231,236,243,.76);
  font-size:clamp(15.5px, 1.35vw, 18px);
  line-height:1.8;
  font-weight:400;
}

.check-list{
  width:min(100%, 680px);

  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px 18px;

  padding:0;
  margin:0;
  list-style:none;
}

.check-list li{
  position:relative;
  min-height:34px;
  padding:8px 12px 8px 34px;
  border-radius:999px;

  display:flex;
  align-items:center;

  color:rgba(231,236,243,.82);

  font-size:13px;
  font-weight:500;
  line-height:1.2;
}

.check-list li::before{
  content:"";
  position:absolute;
  left:14px;
  top:50%;

  width:8px;
  height:5px;
  border-left:2px solid var(--accent);
  border-bottom:2px solid var(--accent);

  transform:translateY(-62%) rotate(-45deg);
}

/* =========================================================
   Méthode
========================================================= */

.process-v3{
  padding-block:clamp(82px, 10vw, 138px);

  background:
    linear-gradient(
      180deg,
      transparent 0%,
      rgba(20,25,36,.34) 24%,
      rgba(20,25,36,.28) 78%,
      transparent 100%
    );
}

.process-v3__grid{
  display:grid;
  grid-template-columns:minmax(280px, .72fr) minmax(0, 1.28fr);
  gap:clamp(38px, 7vw, 100px);
  align-items:start;
}

.process-v3__intro{
  position:sticky;
  top:calc(var(--nav-h) + 48px);
}

.process-v3__intro .section__title{
  font-size:clamp(28px, 3.8vw, 46px);
}

.process-board{
  position:relative;

  display:grid;
  gap:22px;

  padding-left:clamp(18px, 3vw, 34px);
}

.process-board::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;

  width:1px;

  background:linear-gradient(
    180deg,
    rgba(88,241,211,.52),
    rgba(26,81,166,.34) 42%,
    rgba(106,51,216,.30) 72%,
    rgba(88,241,211,.08)
  );
}

.process-focus{
  position:relative;

  padding:clamp(24px, 4vw, 38px);
  border-radius:var(--radius-lg);
  border:1px solid rgba(88,241,211,.18);

  background:
    radial-gradient(620px 240px at 12% 0%, rgba(88,241,211,.06), transparent 58%),
    radial-gradient(540px 260px at 100% 0%, rgba(26,81,166,.08), transparent 64%),
    rgba(20,25,36,.34);

  box-shadow:var(--shadow-card);
}

.process-focus::before{
  content:"";
  position:absolute;
  left:clamp(24px, 4vw, 38px);
  right:clamp(24px, 4vw, 38px);
  top:0;

  height:1px;

  background:linear-gradient(
    90deg,
    rgba(88,241,211,.48),
    rgba(26,81,166,.28),
    transparent
  );
}

.process-focus__label{
  width:max-content;
  margin-bottom:14px;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(88,241,211,.16);

  color:rgba(244,250,255,.88);
  background:rgba(88,241,211,.045);

  font-size:10px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.process-focus h3{
  margin:0;
  max-width:640px;

  color:var(--text-strong);
  font-size:clamp(24px, 3vw, 36px);
  font-weight:600;
  line-height:1.08;
  letter-spacing:-.045em;
}

.process-focus p{
  margin:16px 0 0;
  max-width:720px;

  color:rgba(231,236,243,.76);
  font-size:clamp(15.5px, 1.3vw, 18px);
  line-height:1.76;
}

.process-steps-v3{
  display:grid;
  gap:0;

  border-top:1px solid var(--line-soft);
}

.process-step-v3{
  position:relative;

  display:grid;
  grid-template-columns:72px 1fr;
  gap:18px;

  padding:30px 0;
  border-bottom:1px solid var(--line-soft);
}

.process-step-v3::before{
  content:"";
  position:absolute;
  left:-34px;
  top:38px;

  width:9px;
  height:9px;
  border-radius:50%;

  background:var(--bg);
  border:1px solid rgba(88,241,211,.62);
  box-shadow:0 0 0 6px rgba(88,241,211,.06);
}

.process-step-v3__num{
  color:var(--accent);
  font-size:12px;
  font-weight:700;
  letter-spacing:.16em;
}

.process-step-v3 h3{
  margin:0 0 8px;

  color:var(--text-strong);
  font-size:clamp(21px, 2.25vw, 28px);
  font-weight:600;
  line-height:1.15;
  letter-spacing:-.035em;
}

.process-step-v3 p{
  margin:0;
  max-width:720px;

  color:rgba(168,177,195,.90);
  line-height:1.76;
}

.process-step-v3 ul{
  display:flex;
  flex-wrap:wrap;
  gap:8px;

  padding:0;
  margin:16px 0 0;
  list-style:none;
}

.process-step-v3 li{
  padding:5px 9px;
  border-radius:999px;
  border:1px solid rgba(88,241,211,.16);

  color:rgba(244,250,255,.88);
  background:rgba(88,241,211,.045);

  font-size:12px;
  font-weight:500;
}

/* =========================================================
   Réalisations
========================================================= */

.section.work-intent{
  --work-p:0;
  --work-mx:0;
  --work-my:0;

  --work-empty-opacity:1;
  --work-empty-scale:1;

  --work-sketch-opacity:0;
  --work-sketch-draw:0;
  --work-sketch-y:10px;

  --work-wire-opacity:0;
  --work-wire-draw:0;
  --work-wire-y:14px;
  --work-wire-scale:.985;

  --work-mockup-opacity:0;
  --work-mockup-y:20px;
  --work-mockup-scale:.965;

  --work-polish-opacity:0;
  --work-polish-x:-120%;
  --work-canvas-glow:.28;

  min-height:420vh;
  padding:0;
  overflow:visible;
  isolation:isolate;
}

.work-intent::before{
  content:"";
  position:absolute;
  inset:8% -22% auto -22%;
  z-index:-1;

  height:48%;

  background:
    radial-gradient(620px 380px at 18% 24%, rgba(26,81,166,.22), transparent 64%),
    radial-gradient(720px 460px at 80% 18%, rgba(106,51,216,.18), transparent 66%),
    radial-gradient(520px 320px at 58% 72%, rgba(88,241,211,.10), transparent 64%);

  filter:blur(30px);
  opacity:.82;
  pointer-events:none;
}

.work-intent__grid{
  position:sticky;
  top:calc(var(--nav-h) - 28px);

  min-height:calc(100vh - var(--nav-h) + 18px);
  padding-block:clamp(34px, 5vw, 58px);

  display:grid;
  grid-template-columns:minmax(280px, .72fr) minmax(0, 1.28fr);
  gap:clamp(38px, 7vw, 96px);
  align-items:center;
}

.work-intent__copy{
  position:relative;
}

.work-intent__copy .section__title{
  font-size:clamp(30px, 4.2vw, 54px);
}

.work-intent__signals{
  display:flex;
  flex-wrap:wrap;
  gap:8px;

  margin-top:28px;
}

.work-intent__signals span{
  padding:7px 10px;
  border-radius:999px;
  border:1px solid rgba(88,241,211,.14);

  color:rgba(244,250,255,.78);
  background:rgba(88,241,211,.045);

  font-size:12px;
  font-weight:600;
}

.work-intent__signals{
  align-items:center;
}

.work-intent__cta{
  flex:0 0 auto;
}

.work-intent__stage{
  position:relative;
  display:flex;
  align-items:center;
}

.work-canvas{
  position:relative;

  width:100%;
  min-height:min(700px, calc(100vh - var(--nav-h) - 42px));
  border-radius:34px;
  border:1px solid rgba(88,241,211,.14);

  background:
    radial-gradient(660px 380px at 18% 0%, rgba(26,81,166,.18), transparent 64%),
    radial-gradient(660px 380px at 92% 8%, rgba(106,51,216,.17), transparent 66%),
    linear-gradient(180deg, rgba(20,25,36,.76), rgba(11,17,30,.94));

  box-shadow:
    0 34px 100px rgba(0,0,0,.34),
    0 0 calc(28px * var(--work-canvas-glow)) rgba(88,241,211,.12),
    0 0 0 1px rgba(255,255,255,.025) inset;

  overflow:hidden;
  isolation:isolate;

  transform:
    perspective(1200px)
    rotateX(calc(var(--work-my) * -1.6deg))
    rotateY(calc(var(--work-mx) * 2deg));

  transition:
    transform .18s ease-out,
    box-shadow .18s linear;
}

.work-canvas::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;

  background:
    linear-gradient(rgba(88,241,211,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(88,241,211,.03) 1px, transparent 1px);

  background-size:42px 42px;

  mask-image:
    radial-gradient(circle at 50% 42%, rgba(0,0,0,.95), rgba(0,0,0,.48) 56%, transparent 86%);

  opacity:.42;
  pointer-events:none;
}

.work-canvas__top{
  position:relative;
  z-index:20;

  height:58px;
  padding:0 18px;
  border-bottom:1px solid rgba(88,241,211,.09);

  display:grid;
  grid-template-columns:auto minmax(0, 1fr) auto;
  align-items:center;
  gap:14px;

  background:rgba(11,17,30,.50);

  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}

.work-canvas__dots{
  display:flex;
  gap:7px;
}

.work-canvas__dots span{
  width:8px;
  height:8px;
  border-radius:50%;

  background:rgba(218,231,242,.28);
}

.work-canvas__dots span:nth-child(2){
  background:rgba(26,81,166,.78);
}

.work-canvas__dots span:nth-child(3){
  background:rgba(88,241,211,.72);
}

.work-canvas__route{
  position:relative;

  min-width:0;
  height:34px;
  padding:0 12px;
  border-radius:999px;
  border:1px solid rgba(88,241,211,.12);

  display:flex;
  align-items:center;
  gap:9px;

  background:rgba(244,250,255,.035);
  overflow:hidden;
}

.work-canvas__route span{
  flex:0 0 auto;

  color:var(--accent);
  font-size:10px;
  font-weight:750;
  letter-spacing:.14em;
}

.work-canvas__route strong{
  min-width:0;

  color:rgba(244,250,255,.86);
  font-size:12px;
  font-weight:600;

  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.work-canvas__route-progress{
  position:absolute;
  left:0;
  right:0;
  bottom:0;

  height:1px;
  background:rgba(88,241,211,.08);
  overflow:hidden;
}

.work-canvas__route-progress i{
  display:block;

  width:100%;
  height:100%;

  background:var(--gradient-line);
  transform:scaleX(.04);
  transform-origin:left;
}

.work-canvas__route span.is-switching,
.work-canvas__route strong.is-switching{
  animation:workRouteSwitch .32s ease both;
}

@keyframes workRouteSwitch{
  0%{
    opacity:0;
    transform:translateY(5px);
  }

  100%{
    opacity:1;
    transform:translateY(0);
  }
}

.work-canvas__status{
  padding:7px 12px;
  border-radius:999px;
  border:1px solid rgba(88,241,211,.13);

  color:rgba(218,231,242,.62);
  background:rgba(11,17,30,.42);

  font-size:10px;
  font-weight:750;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.work-canvas__viewport{
  position:absolute;
  left:0;
  right:0;
  top:58px;
  bottom:0;

  overflow:hidden;
}

.work-page,
.work-polish{
  position:absolute;
  inset:0;
}

.work-page__sheet{
  position:absolute;
  inset:0;

  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;

  overflow:hidden;
}

/* Page vide */

.work-page--empty{
  z-index:1;

  opacity:var(--work-empty-opacity);
  transform:scale(var(--work-empty-scale));

  transition:
    opacity .18s linear,
    transform .18s linear;
}

.work-page--empty .work-page__sheet{
  background:
    radial-gradient(520px 300px at 50% 42%, rgba(88,241,211,.045), transparent 66%),
    linear-gradient(180deg, rgba(244,250,255,.018), rgba(244,250,255,.006));
}

.work-page__corner{
  position:absolute;
  z-index:2;

  width:42px;
  height:42px;

  opacity:.34;
}

.work-page__corner--tl{
  left:clamp(22px, 3.4vw, 42px);
  top:clamp(22px, 3.4vw, 42px);
  border-left:1px solid rgba(88,241,211,.28);
  border-top:1px solid rgba(88,241,211,.28);
}

.work-page__corner--tr{
  right:clamp(22px, 3.4vw, 42px);
  top:clamp(22px, 3.4vw, 42px);
  border-right:1px solid rgba(88,241,211,.28);
  border-top:1px solid rgba(88,241,211,.28);
}

.work-page__corner--bl{
  left:clamp(22px, 3.4vw, 42px);
  bottom:clamp(22px, 3.4vw, 42px);
  border-left:1px solid rgba(88,241,211,.28);
  border-bottom:1px solid rgba(88,241,211,.28);
}

.work-page__corner--br{
  right:clamp(22px, 3.4vw, 42px);
  bottom:clamp(22px, 3.4vw, 42px);
  border-right:1px solid rgba(88,241,211,.28);
  border-bottom:1px solid rgba(88,241,211,.28);
}

/* Croquis */

.work-page--sketch{
  z-index:2;

  opacity:var(--work-sketch-opacity);
  transform:translate3d(0, var(--work-sketch-y), 0);

  transition:
    opacity .18s linear,
    transform .18s linear;
}

.sketch-line{
  position:absolute;
  display:block;

  border-radius:999px;
  border:1px solid rgba(88,241,211,.28);
  background:rgba(88,241,211,.035);

  transform:scaleX(var(--work-sketch-draw));
  transform-origin:left;
}

.sketch-line--nav{
  left:7%;
  top:9%;

  width:46%;
  height:12px;
}

.sketch-line--hero-title{
  left:7%;
  top:25%;

  width:43%;
  height:72px;
  border-radius:22px;
}

.sketch-line--hero-text-a{
  left:7%;
  top:45%;

  width:34%;
  height:10px;
}

.sketch-line--hero-text-b{
  left:7%;
  top:50%;

  width:27%;
  height:10px;
}

.sketch-line--cta{
  left:7%;
  top:60%;

  width:17%;
  height:28px;
}

.sketch-line--visual{
  right:7%;
  top:24%;

  width:34%;
  height:34%;
  min-height:180px;
  border-radius:30px;
  transform-origin:right;
}

.sketch-line--card-a,
.sketch-line--card-b,
.sketch-line--card-c{
  top:auto;
  bottom:8%;

  width:26%;
  height:70px;
  border-radius:20px;
}

.sketch-line--card-a{
  left:7%;
}

.sketch-line--card-b{
  left:37%;
}

.sketch-line--card-c{
  right:7%;
  transform-origin:right;
}

/* Wireframe */

.work-page--wireframe{
  z-index:3;

  opacity:var(--work-wire-opacity);
  transform:
    translate3d(0, var(--work-wire-y), 0)
    scale(var(--work-wire-scale));

  transition:
    opacity .18s linear,
    transform .18s linear;
}

.work-page--wireframe .work-page__sheet{
  padding:clamp(22px, 3.4vw, 42px);

  display:grid;
  grid-template-rows:auto minmax(0, 1fr) auto;
  gap:clamp(18px, 3vh, 34px);
}

.wire-nav{
  min-height:28px;

  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
}

.wire-nav span,
.wire-nav i,
.wire-kicker,
.wire-title,
.wire-text,
.wire-cta,
.wire-visual,
.wire-visual span,
.wire-visual i,
.wire-cards span{
  display:block;

  border-radius:999px;
  background:rgba(244,250,255,.105);

  transform:scaleX(var(--work-wire-draw));
  transform-origin:left;
}

.wire-nav span{
  margin-right:auto;
  width:128px;
  height:12px;

  background:linear-gradient(90deg, rgba(88,241,211,.24), rgba(26,81,166,.18));
}

.wire-nav i{
  width:64px;
  height:10px;
}

.wire-hero{
  min-height:0;
  margin-top:0;

  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(230px, .78fr);
  gap:clamp(22px, 4vw, 42px);
  align-items:center;
}

.wire-kicker{
  width:160px;
  height:11px;
  margin-bottom:18px;

  background:rgba(88,241,211,.18);
}

.wire-title{
  height:clamp(28px, 4.2vh, 38px);
  border-radius:14px;

  background:rgba(244,250,255,.16);
}

.wire-title--one{
  width:min(100%, 430px);
  margin-bottom:10px;
}

.wire-title--two{
  width:min(76%, 340px);
  margin-bottom:22px;
}

.wire-text{
  height:10px;
  margin-bottom:10px;
}

.wire-text--one{
  width:min(82%, 390px);
}

.wire-text--two{
  width:min(64%, 310px);
}

.wire-cta{
  width:136px;
  height:32px;
  margin-top:22px;

  background:linear-gradient(90deg, rgba(26,81,166,.34), rgba(106,51,216,.28));
}

.wire-visual{
  position:relative;

  min-height:clamp(180px, 30vh, 260px);
  border-radius:30px;
  border:1px solid rgba(88,241,211,.12);

  background:
    radial-gradient(170px 140px at 50% 50%, rgba(88,241,211,.16), transparent 62%),
    rgba(244,250,255,.035);

  transform-origin:right;
}

.wire-visual span{
  position:absolute;
  left:50%;
  top:50%;

  width:42%;
  aspect-ratio:1;
  border-radius:42% 58% 46% 54%;

  background:linear-gradient(135deg, rgba(88,241,211,.42), rgba(26,81,166,.54), rgba(106,51,216,.58));

  transform:
    translate(-50%, -50%)
    scaleX(var(--work-wire-draw));
}

.wire-visual i{
  position:absolute;
  right:22px;
  top:22px;

  width:112px;
  height:36px;
  border:1px solid rgba(88,241,211,.10);

  background:rgba(11,17,30,.52);

  transform-origin:right;
}

.wire-cards{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:12px;
}

.wire-cards span{
  height:clamp(58px, 10vh, 84px);
  border-radius:22px;
  border:1px solid rgba(88,241,211,.10);

  background:rgba(244,250,255,.04);
}

/* Maquette */

.work-page--mockup{
  z-index:5;

  opacity:var(--work-mockup-opacity);
  transform:
    translate3d(0, var(--work-mockup-y), 0)
    scale(var(--work-mockup-scale));

  transition:
    opacity .18s linear,
    transform .18s linear;
}

.work-page--mockup .work-page__sheet{
  padding:clamp(26px, 3.4vw, 42px);

  display:grid;
  grid-template-rows:auto minmax(0, 1fr) auto;
  gap:clamp(18px, 2.8vh, 30px);

  background:
    radial-gradient(620px 360px at 76% 16%, rgba(88,241,211,.095), transparent 64%),
    radial-gradient(520px 320px at 78% 84%, rgba(106,51,216,.13), transparent 66%),
    linear-gradient(180deg, rgba(244,250,255,.052), rgba(244,250,255,.016)),
    rgba(11,17,30,.74);
}

.mockup-nav{
  min-height:32px;

  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:clamp(14px, 2vw, 22px);

  color:rgba(218,231,242,.58);
  font-size:clamp(10px, .82vw, 12px);
  font-weight:680;
}

.mockup-nav strong{
  margin-right:auto;

  color:var(--text-strong);
  font-size:clamp(13px, .95vw, 15px);
  font-weight:800;
  letter-spacing:-.025em;
}

.mockup-nav strong::before{
  content:"";
  display:inline-block;

  width:8px;
  height:8px;
  margin-right:8px;
  border-radius:50%;

  background:var(--gradient-main);
  box-shadow:0 0 16px rgba(88,241,211,.24);
}

.mockup-nav span{
  white-space:nowrap;
}

.mockup-hero{
  min-height:0;

  display:grid;
  grid-template-columns:minmax(0, .98fr) minmax(220px, .72fr);
  gap:clamp(24px, 4vw, 52px);
  align-items:center;

  overflow:hidden;
}

.mockup-copy{
  min-width:0;
  max-width:560px;
}

.mockup-kicker{
  display:inline-flex;

  margin-bottom:clamp(12px, 1.6vh, 16px);
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(88,241,211,.18);

  color:rgba(88,241,211,.92);
  background:rgba(88,241,211,.055);

  font-size:9px;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.mockup-copy h3{
  margin:0;
  max-width:520px;

  color:var(--text-strong);
  font-size:clamp(30px, 3.25vw, 48px);
  font-weight:680;
  line-height:1.02;
  letter-spacing:-.066em;
}

.mockup-copy p{
  margin:clamp(12px, 1.7vh, 16px) 0 0;
  max-width:390px;

  color:rgba(218,231,242,.64);
  font-size:clamp(12px, .95vw, 14px);
  line-height:1.55;
}

.mockup-actions{
  display:flex;
  flex-wrap:nowrap;
  align-items:center;
  gap:10px;

  margin-top:clamp(16px, 2.2vh, 22px);
}

.mockup-actions span{
  min-height:36px;
  padding:0 14px;
  border-radius:999px;

  display:inline-flex;
  align-items:center;
  justify-content:center;

  color:white;
  background:var(--gradient-main);

  font-size:11px;
  font-weight:760;
  white-space:nowrap;

  box-shadow:0 14px 32px rgba(26,81,166,.22);
}

.mockup-actions small{
  color:rgba(244,250,255,.58);
  font-size:11px;
  font-weight:650;
  white-space:nowrap;
}

.mockup-visual{
  position:relative;

  min-height:clamp(210px, 31vh, 282px);
  border-radius:30px;
  border:1px solid rgba(88,241,211,.15);

  background:
    radial-gradient(210px 150px at 30% 24%, rgba(88,241,211,.18), transparent 64%),
    radial-gradient(250px 200px at 78% 68%, rgba(106,51,216,.22), transparent 66%),
    rgba(20,25,36,.66);

  overflow:hidden;
}

.mockup-visual::before{
  content:"";
  position:absolute;
  inset:18px;

  border-radius:23px;
  border:1px solid rgba(244,250,255,.08);

  background:
    linear-gradient(rgba(244,250,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(244,250,255,.03) 1px, transparent 1px);
  background-size:24px 24px;
}

.mockup-orb{
  position:absolute;
  left:50%;
  top:50%;

  width:39%;
  aspect-ratio:1;
  border-radius:34% 66% 48% 52% / 45% 36% 64% 55%;

  background:
    linear-gradient(135deg, rgba(88,241,211,.62), rgba(26,81,166,.76), rgba(106,51,216,.82));

  opacity:.95;
  transform:translate(-50%, -50%);
}

@media (prefers-reduced-motion: no-preference){
  .mockup-orb{
    animation:workBlob 7s ease-in-out infinite;
  }
}

@keyframes workBlob{
  0%, 100%{
    transform:translate(-50%, -50%) rotate(0deg) scale(1);
    border-radius:34% 66% 48% 52% / 45% 36% 64% 55%;
  }

  50%{
    transform:translate(-50%, -50%) rotate(10deg) scale(1.06);
    border-radius:58% 42% 38% 62% / 55% 58% 42% 45%;
  }
}

.mockup-glass{
  position:absolute;
  z-index:2;

  min-width:116px;
  padding:12px 13px;
  border-radius:18px;
  border:1px solid rgba(88,241,211,.14);

  background:rgba(11,17,30,.76);
  box-shadow:0 16px 36px rgba(0,0,0,.22);

  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}

.mockup-glass--one{
  left:16px;
  bottom:16px;
}

.mockup-glass--two{
  right:16px;
  top:16px;
}

.mockup-glass span{
  display:block;
  margin-bottom:5px;

  color:rgba(218,231,242,.52);
  font-size:8.5px;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.mockup-glass strong{
  color:var(--text-strong);
  font-size:14px;
  font-weight:720;
  line-height:1.1;
}

.mockup-cards{
  min-height:76px;

  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:12px;
}

.mockup-cards div{
  position:relative;

  min-width:0;
  min-height:76px;
  padding:14px 16px;
  border-radius:20px;
  border:1px solid rgba(88,241,211,.12);

  display:grid;
  grid-template-columns:auto minmax(0, 1fr);
  align-items:center;
  column-gap:12px;

  background:
    radial-gradient(180px 90px at 0% 0%, rgba(88,241,211,.055), transparent 62%),
    rgba(244,250,255,.032);

  overflow:hidden;
}

.mockup-cards div::before{
  content:"";
  position:absolute;
  left:0;
  top:14px;
  bottom:14px;

  width:2px;
  border-radius:999px;

  background:linear-gradient(
    180deg,
    rgba(88,241,211,.85),
    rgba(26,81,166,.78),
    rgba(106,51,216,.74)
  );

  opacity:.55;
}

.mockup-cards span{
  margin:0;

  color:var(--accent);
  font-size:10px;
  font-weight:820;
  letter-spacing:.14em;
  line-height:1;
}

.mockup-cards strong{
  min-width:0;

  color:rgba(244,250,255,.88);
  font-size:14px;
  font-weight:700;
  line-height:1.1;

  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.work-polish{
  z-index:10;

  pointer-events:none;
  opacity:var(--work-polish-opacity);
  transition:opacity .18s linear;
}

.work-polish__beam{
  position:absolute;
  top:-18%;
  bottom:-18%;

  width:28%;
  min-width:170px;

  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(88,241,211,.075),
      rgba(26,81,166,.09),
      transparent
    );

  filter:blur(10px);
  transform:translateX(var(--work-polish-x)) rotate(10deg);
}

.work-polish__beam--one{
  left:0;
}

.work-polish__beam--two{
  right:0;
  opacity:.58;
  transform:translateX(calc(var(--work-polish-x) * -1)) rotate(-10deg);
}

.work-polish__glow{
  position:absolute;
  inset:12%;
  border-radius:999px;

  background:radial-gradient(circle, rgba(88,241,211,.10), transparent 64%);
  filter:blur(26px);
}

.work-intent__cta{
  min-height:34px;
  padding:8px 13px;

  font-size:12px;
  font-weight:650;
}

/* =========================================================
   Pricing
========================================================= */

.pricing-v2__grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:18px;
  align-items:stretch;
}

.price-card-v2{
  position:relative;

  display:flex;
  flex-direction:column;
  gap:16px;

  padding:28px;
  border-radius:var(--radius-lg);
  border:1px solid rgba(88,241,211,.11);

  background:
    linear-gradient(180deg, rgba(20,25,36,.58), rgba(20,25,36,.30)),
    rgba(11,17,30,.42);

  box-shadow:none;
}

.price-card-v2--featured{
  border-color:rgba(88,241,211,.30);

  background:
    radial-gradient(520px 240px at 20% 0%, rgba(88,241,211,.07), transparent 60%),
    linear-gradient(180deg, rgba(20,25,36,.70), rgba(20,25,36,.36));

  box-shadow:
    0 18px 46px rgba(0,0,0,.22),
    0 0 0 1px rgba(88,241,211,.055) inset;
}

.price-card-v2__badge{
  position:absolute;
  top:18px;
  right:18px;

  margin:0;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(88,241,211,.16);

  color:rgba(244,250,255,.88);
  background:rgba(88,241,211,.045);

  font-size:10px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.price-card-v2__label{
  margin:0;

  color:var(--accent);
  font-size:11px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.price-card-v2 h3{
  margin:0;

  color:var(--text-strong);
  font-family:var(--font-title);
  font-size:clamp(22px, 2.4vw, 30px);
  font-weight:600;
  letter-spacing:-.04em;
}

.price-card-v2__price{
  margin:0;

  color:var(--text-strong);
  font-family:var(--font-title);
  font-size:clamp(22px, 2.6vw, 30px);
  font-weight:600;
  letter-spacing:-.045em;
}

.price-card-v2 p{
  margin:0;

  color:rgba(168,177,195,.90);
  line-height:1.68;
}

.price-card-v2 ul{
  display:grid;
  gap:8px;

  padding:0;
  margin:0;
  list-style:none;
}

.price-card-v2 li{
  color:rgba(231,236,243,.78);
  font-size:14px;
  font-weight:400;
}

.price-card-v2 li{
  position:relative;
  padding-left:24px;
}

.price-card-v2 li::before{
  content:"";
  position:absolute;
  left:0;
  top:.62em;

  width:9px;
  height:5px;
  border-left:2px solid var(--accent);
  border-bottom:2px solid var(--accent);

  transform:rotate(-45deg);
}

.price-card-v2 > .btn{
  margin-top:auto;
}

.price-card-v2__actions{
  margin-top:auto;

  display:grid;
  grid-template-columns:1fr;
  gap:10px;
}

.price-card-v2__actions .btn{
  width:100%;
  margin-top:0;
}

.btn--estimate{
  position:relative;
  overflow:hidden;

  color:rgba(244,250,255,.90);
  border-color:rgba(88,241,211,.16);

  background:
    radial-gradient(180px 80px at 18% 0%, rgba(88,241,211,.06), transparent 62%),
    linear-gradient(180deg, rgba(244,250,255,.045), rgba(244,250,255,.022)),
    rgba(11,17,30,.34);

  box-shadow:
    0 10px 24px rgba(0,0,0,.14),
    0 0 0 1px rgba(255,255,255,.018) inset;
}

.btn--estimate::after{
  content:"";
  position:absolute;
  inset:0;

  background:linear-gradient(
    90deg,
    transparent,
    rgba(88,241,211,.08),
    transparent
  );

  transform:translateX(-120%);
  transition:transform .45s ease;

  pointer-events:none;
}

.btn--estimate:hover{
  color:var(--text-strong);
  border-color:rgba(88,241,211,.30);

  background:
    radial-gradient(180px 80px at 18% 0%, rgba(88,241,211,.09), transparent 62%),
    linear-gradient(180deg, rgba(244,250,255,.06), rgba(244,250,255,.03)),
    rgba(11,17,30,.42);

  box-shadow:
    0 14px 32px rgba(0,0,0,.18),
    0 0 26px rgba(88,241,211,.07),
    0 0 0 1px rgba(88,241,211,.045) inset;
}

.btn--estimate:hover::after{
  transform:translateX(120%);
}

.pricing-notes{
  max-width:820px;
  margin:24px auto 0;
  padding-top:18px;
  border-top:1px solid var(--line-soft);

  display:grid;
  gap:8px;

  text-align:center;
}

.pricing-notes p{
  margin:0;

  color:rgba(168,177,195,.82);
  font-size:13px;
  line-height:1.6;
}

.pricing-notes sup{
  color:var(--accent);
  font-weight:700;
}

.pricing-notes a.pricing-notes__link{
  margin-left:6px;

  color:var(--accent) !important;
  font-weight:700;
  text-decoration:none;
  text-underline-offset:4px;

  transition:text-decoration-color .2s ease;
}

.pricing-notes a.pricing-notes__link:hover{
  color:var(--accent) !important;
  text-decoration:underline;
}

.pricing-v2 .section-head.centered{
  max-width:1120px;
}

.pricing-v2 .section-head .section__title{
  max-width:none;
  white-space:nowrap;
}

.pricing-v2 .section-head .section__desc{
  max-width:66ch;
}

@media (max-width: 760px){
  .pricing-v2 .section-head .section__title{
    white-space:normal;
  }
}

/* =========================================================
   FAQ
========================================================= */

.faq-v2__grid{
  display:grid;
  grid-template-columns:minmax(280px, .72fr) minmax(0, 1.28fr);
  gap:clamp(34px, 7vw, 90px);
  align-items:start;
}

.faq-v2__intro{
  position:sticky;
  top:calc(var(--nav-h) + 48px);
}

.faq{
  display:grid;
  gap:0;

  border-top:1px solid var(--line-soft);
}

.faq__item{
  border:0;
  border-bottom:1px solid var(--line-soft);
  border-radius:0;

  background:transparent;
  overflow:hidden;
}

.faq__q{
  position:relative;

  padding:20px 48px 20px 0;

  color:rgba(244,250,255,.90);
  font-weight:500;
  list-style:none;
  cursor:pointer;
}

.faq__q::-webkit-details-marker{
  display:none;
}

.faq__q::after{
  content:"";
  position:absolute;
  right:4px;
  top:50%;

  width:9px;
  height:9px;
  border-right:1.5px solid rgba(231,236,243,.72);
  border-bottom:1.5px solid rgba(231,236,243,.72);

  transform:translateY(-60%) rotate(45deg);

  transition:
    transform .2s ease,
    border-color .2s ease;
}

.faq__item[open] .faq__q::after{
  transform:translateY(-30%) rotate(-135deg);
  border-color:var(--accent);
}

.faq__a{
  padding:0 48px 20px 0;
}

.faq__a p{
  margin:0;

  color:rgba(168,177,195,.88);
  line-height:1.74;
}

/* =========================================================
   Contact
========================================================= */

.contact-v2{
  padding-bottom:clamp(80px, 10vw, 140px);
}

.contact-v2__grid{
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  gap:clamp(34px, 7vw, 90px);
  align-items:start;
}

.contact-v2__copy{
  position:sticky;
  top:calc(var(--nav-h) + 48px);
}

/* Desktop : intro centrée + formulaire et calendrier côte à côte */
@media (min-width: 1101px){
  .contact-v2__grid{
    grid-template-columns:1fr;
    gap:clamp(34px, 5vw, 58px);
  }

  .contact-v2__copy{
    position:relative;
    top:auto;
    max-width:820px;
    margin-inline:auto;
    text-align:center;
  }

  .contact-v2__copy .section__title,
  .contact-v2__copy .section__desc{
    margin-inline:auto;
  }

  .contact-proof{
    justify-content:center;
  }

  .contact-v2__main{
    display:grid;
    grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);
    gap:clamp(20px, 3vw, 34px);
    align-items:stretch;
  }

  .contact-v2__main > .contact-v2__panel,
  .contact-v2__main > .calendar-block{
    min-width:0;
  }

  .contact-v2__main > .contact-v2__panel{
    --contact-panel-x:clamp(22px, 4vw, 34px);

    height:100%;
    padding:22px var(--contact-panel-x) 0;

    display:flex;
    flex-direction:column;

    overflow:hidden;
  }

  .contact-v2__main .contact-form{
    flex:0 0 auto;
  }

  .contact-v2__main .form-hint{
    margin:auto calc(var(--contact-panel-x) * -1) 0;
    padding:14px var(--contact-panel-x) 18px;
    border-top:1px solid var(--line-soft);
  }

  .contact-v2__main .calendar-block{
    margin-top:0;
    display:flex;
  }

  .contact-v2__main .calendar-card{
    width:100%;
    min-height:100%;

    display:flex;
    flex-direction:column;
  }

  .contact-v2__main .calendar-card__hint{
    margin-top:auto;
  }
}

.contact-proof{
  display:flex;
  flex-wrap:wrap;
  gap:8px;

  margin-top:28px;
}

.contact-proof span{
  color:rgba(231,236,243,.76);
  font-size:13px;
  font-weight:500;
}

.contact-proof span:not(:last-child)::after{
  content:"";
  display:inline-block;

  width:4px;
  height:4px;
  margin:0 0 2px 8px;
  border-radius:50%;

  background:var(--accent);
}

.contact-v2__panel,
.calendar-card{
  border:1px solid rgba(88,241,211,.11);
  border-radius:var(--radius-lg);

  background:
    linear-gradient(180deg, rgba(20,25,36,.58), rgba(20,25,36,.30)),
    rgba(11,17,30,.42);

  box-shadow:var(--shadow-card);
}

.contact-v2__panel{
  padding:clamp(22px, 4vw, 34px);
}

.contact-form-card__head{
  margin-bottom:22px;
}

.contact-form-card__title{
  margin:0 0 8px;

  color:var(--text-strong);
  font-family:var(--font-title);
  font-size:22px;
  font-weight:600;
  letter-spacing:-.03em;
}

.contact-form-card__desc{
  margin:0;

  color:rgba(168,177,195,.90);
  line-height:1.65;
}

.contact-form{
  width:100%;

  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px;
}

.form__row{
  display:flex;
  flex-direction:column;
  min-width:0;
}

.form__row--full{
  grid-column:1 / -1;
}

.contact-form input,
.contact-form textarea{
  width:100%;
  border-radius:var(--field-radius);
  border:1px solid rgba(88,241,211,.10);

  color:var(--text-strong);
  background:rgba(11,17,30,.62);
  font:inherit;

  outline:none;

  transition:
    border-color .2s ease,
    box-shadow .2s ease,
    background .2s ease;
}

.contact-form input{
  height:var(--field-h);
  padding:0 15px;
}

.contact-form textarea{
  min-height:170px;
  padding:15px;

  line-height:1.62;
  resize:vertical;
}

.contact-form input:focus,
.contact-form textarea:focus{
  border-color:rgba(88,241,211,.38);
  box-shadow:0 0 0 4px rgba(88,241,211,.08);
  background:rgba(11,17,30,.82);
}

.contact-form input::placeholder,
.contact-form textarea::placeholder{
  color:#838EA3;
}

.contact-form button{
  grid-column:1 / -1;
  justify-self:start;
}

.form-hint{
  margin:14px 0 0;

  color:var(--text-soft);
  font-size:13px;
  line-height:1.6;
}

.form-hint a{
  color:var(--text-strong);
  text-underline-offset:3px;
}

.form-alerts{
  grid-column:1 / -1;
  display:grid;
  gap:10px;
  margin-bottom:16px;
}

.form-alert{
  margin:0;
  padding:12px 14px;
  border-radius:14px;
  border:1px solid rgba(88,241,211,.14);

  color:rgba(244,250,255,.88);
  background:rgba(88,241,211,.045);

  font-size:13px;
  line-height:1.5;
}

.form-alert--success{
  border-color:rgba(88,241,211,.24);
  background:rgba(88,241,211,.065);
}

.form-alert--error{
  border-color:rgba(255,120,120,.24);
  background:rgba(255,120,120,.065);
}

.form-error{
  margin:7px 0 0;

  color:rgba(255,155,155,.92);
  font-size:12.5px;
  line-height:1.45;
}

.form__honeypot{
  position:absolute;
  left:-9999px;
  width:1px;
  height:1px;
  overflow:hidden;
}

.calendar-block{
  margin-top:22px;
}

.calendar-card{
  overflow:hidden;
}

.calendar-card__head{
  padding:22px 24px 16px;
}

.calendar-card__title{
  margin:0 0 8px;

  color:var(--text-strong);
  font-family:var(--font-title);
  font-size:22px;
  font-weight:600;
  letter-spacing:-.03em;
}

.calendar-card__desc{
  margin:0;

  color:rgba(168,177,195,.90);
  line-height:1.65;
}

.calendar-embed{
  border-top:1px solid var(--line-soft);
  background:rgba(0,0,0,.12);
}

.calendar-embed{
  position:relative;
  min-height:var(--calendly-height);
  border-top:1px solid var(--line-soft);
  background:
    radial-gradient(420px 240px at 50% 8%, rgba(88,241,211,.075), transparent 62%),
    radial-gradient(520px 280px at 88% 18%, rgba(106,51,216,.10), transparent 68%),
    rgba(0,0,0,.12);
  overflow:hidden;
}

.calendar-embed .calendly-inline-widget[hidden],
.calendar-consent[hidden]{
  display:none !important;
}

.calendar-consent{
  min-height:var(--calendly-height);
  padding:28px;
  display:grid;
  place-items:center;
}

.calendar-consent__panel{
  width:min(100%, 520px);
  padding:30px;
  border-radius:24px;
  border:1px solid rgba(88,241,211,.16);
  background:
    linear-gradient(180deg, rgba(20,25,36,.78), rgba(11,17,30,.72));
  box-shadow:
    0 18px 54px rgba(0,0,0,.24),
    0 0 0 1px rgba(255,255,255,.025) inset;
  text-align:center;
}

.calendar-consent__icon{
  width:54px;
  height:54px;
  margin:0 auto 18px;
  border-radius:18px;
  border:1px solid rgba(88,241,211,.22);
  display:grid;
  place-items:center;
  background:
    radial-gradient(circle at 35% 25%, rgba(88,241,211,.20), transparent 58%),
    linear-gradient(135deg, rgba(26,81,166,.34), rgba(106,51,216,.28));
  box-shadow:0 16px 34px rgba(0,0,0,.20);
}

.calendar-consent__icon span{
  width:18px;
  height:18px;
  border-radius:50%;
  background:var(--accent);
  box-shadow:0 0 22px rgba(88,241,211,.42);
}

.calendar-consent__eyebrow{
  margin:0 0 10px;
  color:var(--accent);
  font-size:11px;
  font-weight:750;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.calendar-consent h4{
  margin:0;
  color:var(--text-strong);
  font-family:var(--font-title);
  font-size:clamp(24px, 2.6vw, 34px);
  font-weight:650;
  line-height:1.1;
  letter-spacing:-.045em;
}

.calendar-consent p{
  margin:16px auto 0;
  max-width:46ch;
  color:rgba(218,231,242,.74);
  font-size:15px;
  line-height:1.72;
}

.calendar-consent__actions{
  margin-top:24px;
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:10px;
}

.calendar-consent__actions .btn{
  min-height:44px;
}

.calendar-consent__note{
  margin-top:16px !important;
  color:var(--text-soft) !important;
  font-size:12.5px !important;
}

@media (max-width: 640px){
  .calendar-consent{
    padding:18px;
  }

  .calendar-consent__panel{
    padding:24px 18px;
  }

  .calendar-consent__actions{
    flex-direction:column;
    align-items:stretch;
  }

  .calendar-consent__actions .btn{
    width:100%;
  }
}

.calendar-card__hint{
  margin:0;
  padding:14px 24px 18px;
  border-top:1px solid var(--line-soft);

  color:var(--text-soft);
  font-size:13px;
}

.calendar-card__hint a{
  color:var(--text-strong);
  text-underline-offset:3px;
}

.calendar-card{
  --calendly-height:560px;
}

.calendar-embed .calendly-inline-widget{
  width:100% !important;
  min-width:0 !important;
  height:var(--calendly-height) !important;
}

.calendar-embed iframe{
  width:100% !important;
  height:100% !important;
}

/* =========================================================
   Cookie consent
========================================================= */

html.consent-pending,
html.consent-pending body{
  height:100%;
  overflow:hidden !important;
}

html.consent-pending body{
  touch-action:none;
}

#cookieConsent[hidden]{
  display:none !important;
}

#cookieConsent{
  position:fixed;
  inset:0;
  z-index:30000;

  display:grid;
  place-items:center;

  padding:24px;
}

#cookieConsent .cookie-consent__backdrop{
  position:absolute;
  inset:0;

  background:rgba(0,0,0,.72);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}

#cookieConsent .cookie-consent__card{
  position:relative;
  z-index:1;

  width:min(100%, 560px);
  padding:24px;
  border-radius:20px;
  border:1px solid rgba(255,255,255,.10);

  color:#fff;
  background:#11131c;
  box-shadow:0 24px 60px rgba(0,0,0,.35);
}

#cookieConsent .cookie-consent__title{
  margin:0 0 12px;

  font-size:1.3rem;
  font-weight:600;
}

#cookieConsent .cookie-consent__text{
  margin:0 0 20px;

  color:rgba(255,255,255,.86);
  line-height:1.6;
}

#cookieConsent .cookie-consent__text a{
  color:#8f8bff;
  text-decoration:underline;
}

#cookieConsent .cookie-consent__actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}

#cookieConsent .cookie-consent__actions .btn{
  flex:1 1 180px;
}

#cookieConsent .cookie-consent__actions .btn--secondary{
  background: #141924;
  border-width: 1px;
  border: #fff;
}

.btn--secondary{
  background: #141924;
  border: 1px solid #fff;
}

/* =========================================================
   Loader
========================================================= */

.app-loader{
  position:fixed;
  inset:0;
  z-index:40000;

  display:block;
  overflow:hidden;

  background:#0B111E;

  opacity:0;
  visibility:hidden;
  pointer-events:none;

  transition:
    opacity .28s ease,
    visibility .28s ease;
}

.app-loader__video{
  width:100vw;
  height:100vh;

  display:block;
  object-fit:cover;
}

html.loader-pending .app-loader{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.app-loader__logo img{
  width:min(860px, 94vw);
  height:auto;

  display:block;
  object-fit:contain;
}

.app-loader__ring{
  position:absolute;
  width:72px;
  height:72px;
  border-radius:50%;
  border:1px solid rgba(88,241,211,.20);
  border-top-color:rgba(88,241,211,.70);
  opacity:.65;
}

@media (prefers-reduced-motion: no-preference){
  .app-loader__ring{
    animation:loaderSpin 1s linear infinite;
  }
}

@keyframes loaderSpin{
  to{
    transform:rotate(360deg);
  }
}

html.loader-pending,
html.loader-pending body{
  height:100%;
  overflow:hidden !important;
}

html.loader-pending body{
  touch-action:none;
}

html.loader-pending #cookieConsent{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}

html.consent-pending:not(.loader-pending) #cookieConsent{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

/* =========================================================
   Responsive
========================================================= */

@media (max-width: 1100px){
  .origin-grid,
  .sticky-story__grid,
  .process-v3__grid,
  .faq-v2__grid,
  .contact-v2__grid{
    grid-template-columns:1fr;
  }

  .sticky-story__left,
  .process-v3__intro,
  .faq-v2__intro,
  .contact-v2__copy{
    position:relative;
    top:auto;
    min-height:auto;
    padding-block:0;
  }

  .sticky-story__right{
    padding:34px 0 0;
  }

  .story-card{
    min-height:auto;
    padding-block:34px;
  }

  .process-board{
    padding-left:28px;
  }

  .pricing-v2__grid{
    grid-template-columns:1fr;
  }

  .site-footer__grid{
    grid-template-columns:1fr 1fr;
  }

  .site-footer__brand{
    grid-column:1 / -1;
  }
}

@media (max-width: 1100px) and (min-width: 761px){
  .work-intent__grid{
    grid-template-columns:minmax(230px, .62fr) minmax(0, 1.38fr);
    gap:clamp(24px, 4vw, 52px);
  }

  .work-page--mockup .work-page__sheet{
    padding:clamp(22px, 3vw, 34px);
    gap:clamp(14px, 2.4vh, 24px);
  }

  .mockup-hero{
    grid-template-columns:minmax(0, 1fr) minmax(200px, .68fr);
    gap:clamp(20px, 3.4vw, 36px);
  }

  .mockup-copy h3{
    font-size:clamp(28px, 3.7vw, 42px);
  }

  .mockup-copy p{
    max-width:340px;
  }

  .mockup-visual{
    min-height:clamp(190px, 29vh, 245px);
  }

  .mockup-cards div{
    padding:12px 13px;
  }

  .mockup-cards strong{
    font-size:13px;
  }
}

@media (max-width: 760px){
  :root{
    --nav-h:68px;
  }

  .container{
    width:min(100% - 32px, 1120px);
  }

  .section{
    padding:52px 0;
  }

  .hero-v2{
    min-height:auto;
    padding:
      calc(var(--nav-h) + 28px)
      0
      64px;
  }

  .hero-v2 .container{
    width:min(100% - 24px, 1120px);
  }

  .hero-panel{
    padding-inline:8px;
  }

  .hero-v2__title{
    max-width:720px;
    font-size:clamp(38px, 12vw, 58px);
  }

  .hero-panel__signals{
    grid-template-columns:1fr 1fr;
  }

  .contact-form,
  .check-list{
    grid-template-columns:1fr;
  }

  .pricing-notes{
    text-align:left;
  }

  .form__row--full,
  .contact-form button{
    grid-column:auto;
  }

  .story-card{
    padding-left:22px;
  }

  .story-card__head{
    flex-direction:column;
  }

  .process-board{
    padding-left:22px;
  }

  .process-step-v3{
    grid-template-columns:1fr;
    gap:10px;
  }

  .process-step-v3::before{
    left:-26px;
  }

  .section.work-intent{
    min-height:auto;
    padding-block:64px;
  }

  .work-intent__grid{
    position:relative;
    top:auto;

    min-height:auto;
    padding-block:0;

    display:grid;
    grid-template-columns:1fr;
  }

  .work-intent__stage{
    margin-top:34px;
  }

  .work-canvas{
    min-height:700px;
    transform:none;
  }

  .work-canvas__top{
    height:54px;
    padding-inline:14px;
    gap:10px;
  }

  .work-canvas__status{
    display:none;
  }

  .work-canvas__route{
    height:32px;
  }

  .work-canvas__viewport{
    top:54px;
  }

  .work-page--wireframe .work-page__sheet,
  .work-page--mockup .work-page__sheet{
    padding:18px;
  }

  .wire-hero,
  .mockup-hero{
    grid-template-columns:1fr;
    gap:18px;
  }

  .wire-visual,
  .mockup-visual{
    min-height:180px;
  }

  .wire-cards,
  .mockup-cards{
    grid-template-columns:1fr;
    gap:8px;
  }

  .mockup-nav{
    gap:9px;
    font-size:10px;
  }

  .mockup-nav span:nth-of-type(2){
    display:none;
  }

  .mockup-actions{
    flex-wrap:wrap;
  }

  .mockup-copy h3{
    font-size:clamp(30px, 9vw, 42px);
  }

  .mockup-cards div{
    min-height:58px;
    padding:11px 13px;
  }

  .calendar-embed .calendly-inline-widget{
    height:720px !important;
  }

  .site-footer__grid{
    width:min(100% - 32px, 1280px);
    grid-template-columns:1fr;
  }

  .site-footer__meta{
    padding-inline:16px;
    flex-direction:column;
    align-items:flex-start;
  }

  .site-footer__legal{
    justify-content:flex-start;
    text-align:left;
  }
}

@media (max-width: 480px){
  .hero-panel__signals{
    grid-template-columns:1fr;
  }

  .hero-v2__actions{
    flex-direction:column;
    align-items:stretch;
  }

  .hero-v2__actions .btn{
    width:100%;
  }
}

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

  .reveal{
    opacity:1;
    transform:none;
  }

  .work-canvas{
    transform:none;
  }
}








/* =========================================================
   Transition de page — particules
========================================================= */

.page-particles-transition{
  position:fixed;
  inset:0;
  z-index:35000;

  pointer-events:none;
  opacity:0;
  visibility:hidden;

  background:rgba(7,11,20,0);

  transition:
    opacity .14s ease,
    visibility .14s ease;

  overflow:hidden;
  contain:strict;
}

.page-particles-transition::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;

  opacity:0;

  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;

  pointer-events:none;
  transform:translateZ(0);

  /*
    Important : pas de fondu ici.
    Sinon le snapshot et le canvas se superposent,
    ce qui crée le décalage de couleur.
  */
  transition:none;
}

.page-particles-transition.is-active{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.page-particles-transition canvas{
  position:relative;
  z-index:1;

  width:100%;
  height:100%;

  display:block;
  transform:translateZ(0);
}

html.page-transition-reveal-pending,
html.page-transition-reveal-pending body{
  overflow:hidden !important;
}

html.page-transition-reveal-pending .page-particles-transition{
  opacity:1;
  visibility:visible;
  pointer-events:auto;

  background:#07122C;
}

html.page-transition-reveal-pending .page-particles-transition::before{
  opacity:1;
}

html.page-transition-reveal-pending .page-particles-transition.is-canvas-ready::before{
  opacity:0;
}

@media (prefers-reduced-motion: reduce){
  .page-particles-transition,
  .page-particles-transition::before{
    transition:none !important;
  }
}

/* Loader désactivé sur mobile */

@media (max-width: 900px){
  html.loader-pending,
  html.loader-pending body{
    height:auto;
    overflow:auto !important;
    touch-action:auto;
  }

  html.loader-pending .app-loader,
  .app-loader{
    display:none;
  }
}
/* =========================================================
   Legal pages — privacy, cookies, legal notices
========================================================= */

.legal-page{
  padding-top:calc(var(--nav-h, 72px) + 64px);
  padding-bottom:96px;
}

.legal-page__container{
  width:min(1120px, calc(100% - 40px));
  margin-inline:auto;
}

.legal-page__head{
  max-width:860px;
  margin:0 auto 34px;
  text-align:center;
}

.legal-page__head .section__title,
.legal-page__head .section__desc{
  margin-inline:auto;
}

.legal-page__head .section__desc{
  text-align:center;
}

.legal-page__updated{
  margin:18px 0 0;
  color:var(--text-soft);
  font-size:13px;
}

.legal{
  display:grid;
  gap:18px;
}

.legal__block{
  padding:24px;
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  background:linear-gradient(180deg, rgba(20,25,36,.64), rgba(11,17,30,.50));
  box-shadow:var(--shadow-card);
}

.legal__block h2,
.legal__block h3{
  margin:0 0 12px;
  color:var(--text-strong);
  font-family:var(--font-title);
  letter-spacing:-.035em;
}

.legal__block h2{
  font-size:clamp(22px, 2.2vw, 30px);
}

.legal__block h3{
  font-size:18px;
}

.legal__block p,
.legal__block li{
  color:rgba(218,231,242,.76);
}

.legal__block p{
  margin:0 0 14px;
}

.legal__block p:last-child,
.legal__block ul:last-child{
  margin-bottom:0;
}

.legal__block a{
  color:var(--text-strong);
  text-decoration-color:rgba(88,241,211,.42);
  text-underline-offset:4px;
}

.legal__block code{
  padding:.14em .38em;
  border-radius:7px;
  color:rgba(244,250,255,.92);
  background:rgba(88,241,211,.08);
}

.legal-table{
  width:100%;
  overflow-x:auto;
  border:1px solid var(--line-soft);
  border-radius:18px;
  background:rgba(11,17,30,.32);
}

.legal-table__row{
  width:100%;
  min-width:720px;
  display:grid;
  grid-template-columns:minmax(150px, .85fr) minmax(260px, 1.45fr) minmax(175px, .95fr);
  border-bottom:1px solid var(--line-soft);
}

.legal-table__row:last-child{
  border-bottom:0;
}

.legal-table__row > div{
  min-width:0;
  padding:11px 12px;
  border-right:1px solid var(--line-soft);
  color:rgba(218,231,242,.76);
  font-size:13.5px;
  line-height:1.45;
  overflow-wrap:anywhere;
}

.legal-table__row > div:last-child{
  border-right:0;
}

.legal-table__row--head > div{
  color:var(--text-strong);
  font-weight:800;
  background:rgba(88,241,211,.055);
}

.legal-table--processing .legal-table__row{
  min-width:940px;
  grid-template-columns:minmax(165px, .86fr) minmax(285px, 1.32fr) minmax(225px, 1.02fr) minmax(185px, .80fr);
}

.legal-table--cookies .legal-table__row{
  min-width:860px;
  grid-template-columns:minmax(135px, .64fr) minmax(140px, .66fr) minmax(315px, 1.52fr) minmax(150px, .68fr);
}

.cookie-settings__panel{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  padding:18px;
  border:1px solid var(--line-soft);
  border-radius:18px;
  background:rgba(11,17,30,.34);
}

.cookie-settings__panel + .cookie-settings__panel{
  margin-top:14px;
}

.cookie-settings__badge{
  flex:0 0 auto;
  padding:7px 10px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:999px;
  color:var(--text-strong);
  background:rgba(255,255,255,.06);
  font-size:12px;
  font-weight:800;
}

.cookie-settings__status{
  padding:13px 15px;
  border:1px solid var(--line-soft);
  border-radius:14px;
  background:rgba(11,17,30,.38);
}

.cookie-settings__status--accepted,
.cookie-settings__badge--accepted{
  border-color:rgba(88,241,211,.28);
  background:rgba(88,241,211,.085);
}

.cookie-settings__status--rejected,
.cookie-settings__badge--rejected{
  border-color:rgba(255,255,255,.16);
  background:rgba(255,255,255,.055);
}

.cookie-settings__status--unset,
.cookie-settings__badge--unset{
  border-color:rgba(106,51,216,.28);
  background:rgba(106,51,216,.08);
}

.cookie-settings__actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:18px;
}

.cookie-settings__actions .btn{
  flex:1 1 240px;
}

.cookie-settings__hint{
  margin-top:14px;
  color:var(--text-soft);
  font-size:13px;
}

.contact-v2__panel{
  padding-top:22px;
}
/* =========================================================
   Contact — estimation facultative avant envoi
========================================================= */

body.contact-estimate-is-open{
  overflow:hidden;
}

.contact-estimate-modal[hidden]{
  display:none !important;
}

.contact-estimate-modal{
  position:fixed;
  inset:0;
  z-index:32000;
  display:grid;
  place-items:center;
  padding:24px;
}

.contact-estimate-modal__backdrop{
  position:absolute;
  inset:0;
  background:rgba(5,8,15,.78);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}

.contact-estimate-modal__panel{
  position:relative;
  z-index:1;
  width:min(100%, 1060px);
  max-height:min(82vh, 790px);
  padding:clamp(20px, 3vw, 30px);
  border-radius:30px;
  border:1px solid rgba(88,241,211,.16);
  background:
    radial-gradient(560px 260px at 12% 0%, rgba(88,241,211,.08), transparent 62%),
    radial-gradient(560px 300px at 92% 4%, rgba(106,51,216,.10), transparent 68%),
    linear-gradient(180deg, rgba(20,25,36,.88), rgba(11,17,30,.94));
  box-shadow:
    0 34px 90px rgba(0,0,0,.42),
    0 0 0 1px rgba(255,255,255,.025) inset;
  overflow:auto;
  transform:translateY(18px);
}

.contact-estimate-modal__close{
  position:absolute;
  top:16px;
  right:16px;
  z-index:3;
  width:38px;
  height:38px;
  border-radius:999px;
  border:1px solid rgba(88,241,211,.14);
  color:rgba(244,250,255,.86);
  background:rgba(11,17,30,.48);
  font:inherit;
  font-size:24px;
  line-height:1;
  cursor:pointer;
  transition:border-color .2s ease, background .2s ease, transform .18s ease;
}

.contact-estimate-modal__close:hover{
  transform:translateY(-1px);
  border-color:rgba(88,241,211,.28);
  background:rgba(20,25,36,.78);
}

.contact-estimate-choice{
  max-width:660px;
  padding-right:42px;
}

.contact-estimate-choice h3{
  margin:0;
  color:var(--text-strong);
  font-family:var(--font-title);
  font-size:clamp(24px, 3vw, 38px);
  font-weight:650;
  line-height:1.08;
  letter-spacing:-.045em;
}

.contact-estimate-choice p:not(.eyebrow){
  margin:16px 0 0;
  color:rgba(218,231,242,.74);
  line-height:1.72;
}

.contact-estimate-choice__actions,
.contact-estimate-wizard__actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:24px;
}

.contact-estimate-modal .btn{
  grid-column:auto;
  justify-self:auto;
}

.contact-estimate-layout{
  display:grid;
  grid-template-columns:minmax(250px, .38fr) minmax(0, .62fr);
  gap:clamp(18px, 3vw, 30px);
  align-items:stretch;
}

.contact-estimate-summary{
  min-width:0;
}

.contact-estimate-summary__inner{
  position:relative;
  min-height:100%;
  padding:24px;
  border-radius:var(--radius-lg);
  border:1px solid rgba(88,241,211,.14);
  display:flex;
  flex-direction:column;
  background:
    radial-gradient(420px 220px at 14% 0%, rgba(88,241,211,.07), transparent 58%),
    radial-gradient(420px 240px at 100% 0%, rgba(106,51,216,.10), transparent 64%),
    linear-gradient(180deg, rgba(20,25,36,.56), rgba(20,25,36,.30)),
    rgba(11,17,30,.42);
  box-shadow:var(--shadow-card);
  overflow:hidden;
}

.contact-estimate-summary__inner::before,
.contact-estimate-form::before{
  content:"";
  position:absolute;
  left:22px;
  right:22px;
  top:0;
  height:1px;
  background:linear-gradient(90deg, rgba(88,241,211,.58), rgba(26,81,166,.30), transparent);
}

.contact-estimate-summary__label{
  display:block;
  margin-bottom:12px;
  color:var(--accent);
  font-size:10px;
  font-weight:750;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.contact-estimate-summary__price{
  display:block;
  color:var(--text-strong);
  font-family:var(--font-title);
  font-size:clamp(24px, 2.8vw, 36px);
  font-weight:650;
  line-height:1;
  letter-spacing:-.07em;
}

.contact-estimate-summary__range{
  margin:14px 0 0;
  color:rgba(218,231,242,.72);
  font-size:14px;
  line-height:1.65;
}

.contact-estimate-summary__tax-note{
  margin:6px 0 0;
  color:rgba(218,231,242,.46);
  font-size:12px;
  line-height:1.45;
}

.contact-estimate-summary__details{
  margin-top:20px;
  padding-top:16px;
  border-top:1px solid rgba(88,241,211,.12);
}

.contact-estimate-summary__details > span{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:12px;
  color:rgba(88,241,211,.86);
  font-size:10px;
  font-weight:750;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.contact-estimate-summary__details > span::before{
  content:"";
  width:5px;
  height:5px;
  border-radius:999px;
  background:var(--accent);
  box-shadow:0 0 14px rgba(88,241,211,.34);
}

.contact-estimate-summary__details ul{
  display:grid;
  gap:0;
  padding:0;
  margin:0;
  list-style:none;
}

.contact-estimate-summary__details li{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:12px;
  align-items:center;
  padding:9px 0;
  border-bottom:1px solid rgba(88,241,211,.065);
  color:rgba(218,231,242,.66);
  font-size:12.5px;
  line-height:1.35;
}

.contact-estimate-summary__details li:last-child{
  border-bottom:0;
}

.contact-estimate-summary__details strong{
  min-width:0;
  color:rgba(244,250,255,.82);
  font-size:12.5px;
  font-weight:520;
}

.contact-estimate-summary__details em{
  color:rgba(88,241,211,.92);
  font-size:12px;
  font-style:normal;
  font-weight:720;
  white-space:nowrap;
}

.contact-estimate-summary__details em.is-discount{
  color:#ff7b7b;
}

.contact-estimate-summary__monthly{
  margin-top:16px;
  padding:12px 14px;
  border-radius:16px;
  border:1px solid rgba(88,241,211,.14);
  color:rgba(231,236,243,.78);
  background:rgba(88,241,211,.045);
  font-size:13px;
}

.contact-estimate-summary__monthly strong{
  color:var(--text-strong);
}

.contact-estimate-summary__notice{
  margin-top:14px;
  padding-left:14px;
  border-left:1px solid rgba(88,241,211,.28);
  color:rgba(218,231,242,.62);
  font-size:13px;
  line-height:1.6;
}

.contact-estimate-summary__hint{
  margin:auto 0 0;
  padding-top:18px;
  color:rgba(218,231,242,.52);
  font-size:12.5px;
  line-height:1.55;
}

.contact-estimate-form{
  position:relative;
  min-height:620px;
  padding:24px;
  border-radius:var(--radius-lg);
  border:1px solid rgba(88,241,211,.13);
  display:grid;
  grid-template-rows:auto auto auto auto minmax(0, 1fr) auto auto;
  gap:16px;
  background:
    radial-gradient(560px 280px at 12% 0%, rgba(88,241,211,.055), transparent 58%),
    radial-gradient(620px 320px at 100% 0%, rgba(106,51,216,.09), transparent 64%),
    linear-gradient(180deg, rgba(20,25,36,.54), rgba(20,25,36,.28)),
    rgba(11,17,30,.44);
  box-shadow:var(--shadow-card);
  overflow:hidden;
}

.contact-estimate-wizard__top{
  position:relative;
  z-index:1;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  padding-right:34px;
}

.contact-estimate-wizard__eyebrow{
  display:block;
  margin-bottom:7px;
  color:var(--accent);
  font-size:10px;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.contact-estimate-wizard__top strong{
  display:block;
  color:var(--text-strong);
  font-size:18px;
  font-weight:650;
  letter-spacing:-.035em;
  line-height:1.1;
}

.contact-estimate-wizard__index{
  flex:0 0 auto;
  display:flex;
  align-items:baseline;
  gap:4px;
  color:var(--text-strong);
  font-family:var(--font-title);
  line-height:1;
}

.contact-estimate-wizard__index span{
  font-size:34px;
  font-weight:650;
  letter-spacing:-.06em;
}

.contact-estimate-wizard__index em{
  color:rgba(218,231,242,.46);
  font-size:13px;
  font-style:normal;
  font-weight:650;
}

.contact-estimate-progress{
  position:relative;
  z-index:1;
  height:2px;
  border-radius:999px;
  background:rgba(88,241,211,.075);
  overflow:hidden;
}

.contact-estimate-progress span{
  display:block;
  width:20%;
  height:100%;
  border-radius:inherit;
  background:var(--gradient-line);
  transition:width .24s ease;
}

.contact-estimate-wizard__note{
  margin:0;
  color:rgba(218,231,242,.64);
  font-size:13px;
  line-height:1.6;
}

.contact-estimate-error{
  padding:11px 13px;
  border-radius:15px;
  border:1px solid rgba(255,155,155,.22);
  color:rgba(255,190,190,.96);
  background:rgba(255,120,120,.07);
  font-size:13px;
  line-height:1.5;
}

.contact-estimate-wizard__viewport{
  position:relative;
  z-index:1;
  min-height:0;
  display:grid;
  align-items:start;
}

.contact-estimate-steps{
  min-height:0;
}

.contact-estimate-step{
  min-width:0;
  padding:0;
  margin:0;
  border:0;
  display:grid;
  gap:12px;
}

.contact-estimate-step[hidden]{
  display:none !important;
}

.contact-estimate-step.is-active{
  animation:contactEstimateStepIn .22s ease both;
}

@keyframes contactEstimateStepIn{
  from{ opacity:0; transform:translateY(8px); }
  to{ opacity:1; transform:translateY(0); }
}

.contact-estimate-option{
  position:relative;
  isolation:isolate;
  min-height:76px;
  width:100%;
  padding:15px;
  border-radius:20px;
  border:1px solid rgba(88,241,211,.09);
  display:grid;
  grid-template-columns:auto minmax(0, 1fr) auto;
  grid-template-rows:auto auto;
  gap:0 13px;
  align-items:start;
  background:rgba(244,250,255,.026);
  cursor:pointer;
  transition:border-color .18s ease, background .18s ease, transform .18s ease, box-shadow .18s ease;
}

.contact-estimate-option:hover{
  transform:translateY(-1px);
  border-color:rgba(88,241,211,.18);
  background:rgba(244,250,255,.04);
}

.contact-estimate-option > span{
  display:contents;
}

.contact-estimate-option input{
  appearance:none;
  -webkit-appearance:none;
  grid-column:1;
  grid-row:1 / 3;
  width:20px;
  height:20px;
  margin:2px 0 0;
  border-radius:999px;
  border:1px solid rgba(88,241,211,.34);
  display:grid;
  place-items:center;
  background:rgba(11,17,30,.72);
}

.contact-estimate-option input[type="checkbox"]{
  border-radius:7px;
}

.contact-estimate-option input::before{
  content:"";
  width:9px;
  height:9px;
  border-radius:999px;
  background:var(--accent);
  transform:scale(0);
  transition:transform .16s ease;
}

.contact-estimate-option input[type="checkbox"]::before{
  width:10px;
  height:6px;
  border-radius:0;
  border-left:2px solid var(--nux-night);
  border-bottom:2px solid var(--nux-night);
  background:transparent;
  transform:rotate(-45deg) scale(0);
}

.contact-estimate-option input:checked{
  border-color:rgba(88,241,211,.70);
  background:var(--accent);
  box-shadow:0 0 20px rgba(88,241,211,.14);
}

.contact-estimate-option input:checked::before{
  transform:scale(1);
}

.contact-estimate-option input[type="checkbox"]:checked::before{
  transform:rotate(-45deg) scale(1);
}

.contact-estimate-option:has(input:checked){
  border-color:rgba(88,241,211,.28);
  background:
    radial-gradient(220px 110px at 0% 0%, rgba(88,241,211,.07), transparent 62%),
    rgba(244,250,255,.04);
  box-shadow:
    0 16px 38px rgba(0,0,0,.16),
    0 0 0 1px rgba(88,241,211,.035) inset;
}

.contact-estimate-option strong{
  grid-column:2;
  grid-row:1;
  min-width:0;
  padding-right:10px;
  color:rgba(244,250,255,.92);
  font-size:14px;
  font-weight:650;
  line-height:1.25;
}

.contact-estimate-option small{
  grid-column:2 / 4;
  grid-row:2;
  display:block;
  width:100%;
  max-width:none;
  margin-top:7px;
  color:rgba(168,177,195,.88);
  font-size:12.5px;
  line-height:1.45;
}

.contact-estimate-option em{
  grid-column:3;
  grid-row:1;
  justify-self:end;
  align-self:start;
  color:rgba(88,241,211,.96);
  font-size:12.5px;
  font-style:normal;
  font-weight:750;
  line-height:1.25;
  white-space:nowrap;
}

.contact-estimate-option--included{
  cursor:default;
  opacity:.88;
}

.contact-estimate-option--included:hover{
  transform:none;
}

.contact-estimate-option--discount em{
  color:#ff7b7b;
}

.contact-estimate-textarea{
  display:grid;
  gap:8px;
  margin-top:2px;
}

.contact-estimate-textarea label{
  color:rgba(244,250,255,.82);
  font-size:13px;
  font-weight:600;
}

.contact-estimate-textarea textarea{
  width:100%;
  min-height:112px;
  padding:14px;
  border-radius:16px;
  border:1px solid rgba(88,241,211,.10);
  color:var(--text-strong);
  background:rgba(11,17,30,.62);
  font:inherit;
  line-height:1.62;
  resize:vertical;
  outline:none;
}

.contact-estimate-textarea textarea:focus{
  border-color:rgba(88,241,211,.34);
  box-shadow:0 0 0 4px rgba(88,241,211,.08);
}

.contact-estimate-wizard__actions{
  position:relative;
  z-index:1;
  justify-content:space-between;
  margin-top:2px;
}

.contact-estimate-wizard__actions .btn{
  min-width:140px;
}

.contact-estimate-wizard__actions .btn:disabled{
  opacity:.42;
  cursor:not-allowed;
  transform:none;
  box-shadow:none;
}

.contact-estimate-wizard__dots{
  position:relative;
  z-index:1;
  display:flex;
  justify-content:center;
  gap:8px;
}

.contact-estimate-wizard__dots button{
  width:8px;
  height:8px;
  min-height:0;
  padding:0;
  border-radius:999px;
  border:0;
  background:rgba(218,231,242,.22);
  cursor:pointer;
  transition:width .2s ease, background .2s ease, box-shadow .2s ease;
}

.contact-estimate-wizard__dots button.is-active{
  width:28px;
  background:var(--gradient-line);
  box-shadow:0 0 20px rgba(88,241,211,.12);
}

@media (min-width: 901px){
  .contact-estimate-step{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  .contact-estimate-option--other,
  .contact-estimate-option--wide,
  .contact-estimate-textarea{
    grid-column:1 / -1;
  }
}

@media (max-width: 900px){
  .contact-estimate-modal{
    padding:14px;
  }

  .contact-estimate-modal__panel{
    max-height:90vh;
    width:min(100%, 680px);
    padding:20px 16px;
    border-radius:24px;
  }

  .contact-estimate-layout{
    grid-template-columns:1fr;
    gap:16px;
  }

  .contact-estimate-summary__inner,
  .contact-estimate-form{
    padding:18px;
    border-radius:24px;
  }

  .contact-estimate-form{
    min-height:auto;
  }

  .contact-estimate-wizard__top{
    padding-right:42px;
  }

  .contact-estimate-wizard__index span{
    font-size:28px;
  }

  .contact-estimate-choice__actions,
  .contact-estimate-wizard__actions{
    flex-direction:column;
    align-items:stretch;
  }

  .contact-estimate-choice__actions .btn,
  .contact-estimate-wizard__actions .btn{
    width:100%;
  }
}

@media (max-width: 520px){
  .contact-estimate-option{
    grid-template-columns:auto minmax(0, 1fr);
  }

  .contact-estimate-option em{
    grid-column:2;
    grid-row:3;
    justify-self:start;
    margin-top:7px;
  }

  .contact-estimate-option small{
    grid-column:2;
  }
}

/* =========================================================
   Contact — corrections modale estimation
   Cases normales + contrôles statiques sous la question
========================================================= */

.contact-estimate-stage{
  min-width:0;
  display:grid;
  grid-template-rows:auto auto auto;
  gap:12px;
  align-self:stretch;
}

.contact-estimate-stage .contact-estimate-form{
  min-height:540px;
  grid-template-rows:auto auto auto auto minmax(0, 1fr);
}

.contact-estimate-stage .contact-estimate-wizard__actions{
  position:relative;
  z-index:1;
  margin:0;
  padding:0 2px;

  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
}

.contact-estimate-stage .contact-estimate-wizard__actions .btn{
  width:auto !important;
  min-width:0;
  min-height:44px !important;
  height:auto !important;
  padding:12px 18px !important;
  border-radius:999px !important;

  flex:0 0 auto;
  align-self:center;
  line-height:1;
}

.contact-estimate-stage .contact-estimate-wizard__actions [data-contact-estimate-skip]{
  margin-left:auto;
}

.contact-estimate-stage .contact-estimate-wizard__dots{
  margin:0;
}

.contact-estimate-option input,
.contact-estimate-option input[type="radio"],
.contact-estimate-option input[type="checkbox"]{
  box-sizing:border-box;
  inline-size:20px !important;
  block-size:20px !important;
  min-width:20px !important;
  max-width:20px !important;
  min-height:20px !important;
  max-height:20px !important;
  padding:0 !important;
  margin:2px 0 0 !important;

  flex:0 0 20px;
  line-height:1;
}

.contact-estimate-option input[type="radio"]{
  border-radius:999px !important;
}

.contact-estimate-option input[type="checkbox"]{
  border-radius:7px !important;
}

.contact-estimate-option input::before{
  box-sizing:border-box;
  display:block;
}

@media (max-width: 900px){
  .contact-estimate-stage{
    gap:12px;
  }

  .contact-estimate-stage .contact-estimate-form{
    min-height:auto;
  }

  .contact-estimate-stage .contact-estimate-wizard__actions{
    display:grid;
    grid-template-columns:1fr;
    align-items:stretch;
  }

  .contact-estimate-stage .contact-estimate-wizard__actions .btn,
  .contact-estimate-stage .contact-estimate-wizard__actions [data-contact-estimate-skip]{
    width:100% !important;
    min-height:46px !important;
    margin-left:0;
  }
}
