@layer reset,tokens,base,layout,components,utilities;
@layer reset{*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}[hidden]{display:none!important}}
@layer tokens{@font-face{font-family:Inter;src:url('/assets/fonts/inter-400.woff2');font-weight:400;font-display:optional}@font-face{font-family:Inter;src:url('/assets/fonts/inter-700.woff2');font-weight:700;font-display:swap}:root{--brand-blue:#00b3ff;--brand-violet:#8b5cf6;--brand-magenta:#d600ff;--brand-navy:#0b0f24;--brand-slate:#1f2937;--brand-light:#f4f6fa;--brand-gradient:linear-gradient(90deg,#00b3ff,#8b5cf6,#d600ff);--c-ink:#0b0f24;--c-muted:#1f2937;--c-bg:#fff;--c-surface:#f4f6fa;--c-line:#e2e8f0;--c-accent:#6d28d9;--c-accent-strong:#5b21b6;--c-error:#b91c1c;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--s-8:64px;--s-9:96px;--s-10:128px;--r-sm:6px;--r-md:10px;--r-lg:16px}}
@layer base{body{font-family:Inter,system-ui,sans-serif;font-size:clamp(1rem,.96rem + .2vw,1.0625rem);line-height:1.6;color:var(--c-ink)}h1,h2,h3,h4{line-height:1.2;text-wrap:balance;letter-spacing:-.035em}h1{font-size:clamp(1.875rem,1.5rem + 1.9vw,2.75rem);max-width:22ch}h2{font-size:clamp(1.5rem,1.3rem + 1vw,2rem);max-width:32ch}h3{font-size:1.5rem}p{text-wrap:pretty}a{color:var(--c-accent);text-underline-offset:4px}a:hover{color:var(--c-accent-strong)}:focus-visible{outline:3px solid var(--c-accent-strong);outline-offset:2px}li{margin-block:8px}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.65}}
@layer layout{.wrap{width:min(100% - 48px,1120px);margin-inline:auto}.section{padding-block:clamp(48px,8vw,96px)}.grid{display:grid;gap:24px;margin-block:32px}.grid>*{min-width:0}.prose{max-width:68ch}.lead{font-size:1.25rem;line-height:1.45;color:var(--c-muted);max-width:60ch}.surface{background:var(--c-surface)}.actions{display:flex;flex-wrap:wrap;gap:16px;margin-top:32px}.hero{padding-block:64px;background:linear-gradient(120deg,#fff 25%,#f4f6fa)}.hero h1{font-size:clamp(2.25rem,1.7rem + 2.7vw,3.5rem);line-height:1.1;max-width:16ch}.hero-grid{display:grid;gap:48px}.service-detail{display:grid;gap:24px;border-top:1px solid var(--c-line);padding-block:48px}.service-detail>div{max-width:68ch}.footer{background:var(--c-ink);color:#fff;padding-block:48px;margin-top:96px}.footer nav{display:flex;flex-wrap:wrap;gap:12px 24px;margin-block:24px}.footer a{color:#fff;display:inline-flex;align-items:center;min-height:44px}.footer p{color:#cbd5e1}@media(min-width:36em){.services{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:48em){.header{display:flex;align-items:center;justify-content:space-between;gap:24px}#nav-principale{display:flex;flex-wrap:wrap}.service-detail{grid-template-columns:64px 1fr}}@media(min-width:64em){.hero-grid{grid-template-columns:1.15fr 1fr;align-items:center}.offers{grid-template-columns:repeat(3,minmax(0,1fr))}}}
@layer components{.header{padding-block:24px}.brand{font-size:1.5rem;font-weight:700;text-decoration:none;color:var(--c-ink);display:inline-flex;gap:12px;align-items:center;min-height:48px}.brand-logo{display:block;height:46px;width:auto}.footer .brand-logo{height:32px}.brand-mark{background:var(--c-ink);color:#fff;padding:8px 12px;border-radius:6px}#nav-principale a{display:inline-flex;align-items:center;min-height:44px;padding:8px 12px;text-decoration:none;color:var(--c-ink)}#nav-principale a[aria-current]{text-decoration:underline;text-decoration-color:var(--c-accent);text-decoration-thickness:2px}.nav-toggle{float:right;border:1px solid var(--c-muted);border-radius:6px;background:#fff;min-height:48px;padding:8px 16px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:16px;padding:12px 24px;min-height:48px;background:var(--c-accent);color:#fff;border:1px solid var(--c-accent);border-radius:6px;font-weight:700;text-decoration:none}.btn:hover{background:var(--c-accent-strong);color:#fff}.btn--secondary{background:transparent;color:var(--c-accent)}.eyebrow{font-size:.8125rem;text-transform:uppercase;letter-spacing:.1em;font-weight:700;color:var(--c-muted)}.card{background:#fff;border:1px solid var(--c-line);border-radius:10px;padding:24px;box-shadow:0 1px 2px rgb(11 18 32 / .06)}.card p{color:var(--c-muted)}.number{color:var(--c-accent);font-size:1.25rem;font-weight:700}.card-offre{display:flex;flex-direction:column}.card-offre .btn{margin-top:auto}.featured{border-color:var(--c-accent)}.badge{background:var(--c-ink);color:#fff!important;border-radius:999px;padding:4px 12px;align-self:flex-start;font-size:.8125rem}.price{font-size:2rem;font-weight:700;color:var(--c-ink)!important}.price small{display:block;font-size:.9375rem;font-weight:400}.cta{background:var(--c-ink);color:#fff;padding:32px;border-radius:16px}.cta .eyebrow,.cta p{color:#cbd5e1}.blueprint{padding:24px;background-image:linear-gradient(#e2e8f0 1px,transparent 1px),linear-gradient(90deg,#e2e8f0 1px,transparent 1px);background-size:24px 24px;border-radius:16px}.window{background:var(--c-ink);color:#fff;border-radius:10px;padding:24px}.window>span{color:#cbd5e1;letter-spacing:4px}.code-label{color:#cbd5e1;font-size:.8125rem;margin-block:24px}.window strong{font-size:clamp(1.25rem,3vw,2rem);line-height:1.2;display:block}.diagram{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:.8125rem;margin-top:32px}.diagram b{border:1px solid #475569;padding:8px;border-radius:6px}.stamp{display:block;text-align:right;margin-top:16px;font-size:.8125rem;color:var(--c-muted)}.steps{padding-left:24px;max-width:68ch}.steps li{padding:16px}.table-scroll{overflow-x:auto;max-width:100%}table{border-collapse:collapse;width:100%}td,th{text-align:left;padding:16px;border-bottom:1px solid var(--c-line);min-width:128px}caption{text-align:left;font-weight:700;padding-block:16px}form{max-width:44rem;margin-block:48px}.field{margin-bottom:24px}label{display:block;font-weight:700;margin-bottom:8px}input:not([type=checkbox]),textarea,select{display:block;width:100%;border:1px solid var(--c-muted);border-radius:6px;background:#fff;min-height:48px;padding:12px;color:var(--c-ink)}textarea{resize:vertical}.check{display:flex;align-items:flex-start;gap:12px}.check input{width:24px;height:24px;flex-shrink:0}.check label{font-weight:400}.help{font-size:.9375rem;color:var(--c-muted)}.error{color:var(--c-error)}[aria-invalid=true]{border-color:var(--c-error)}.notice{border-left:4px solid var(--brand-violet);padding:16px;background:var(--c-surface)}#form-fallback{display:block;margin-block:16px}}
@layer utilities{.skip-link{position:absolute;top:-128px;left:16px;padding:16px;z-index:10;background:#fff}.skip-link:focus{top:16px}.trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}}

@layer components{.footer .brand{color:#fff}}

@layer components{.nav-toggle{display:none}.services .card a{display:inline-flex;align-items:center;min-height:44px}@media(width < 48em){.nav-toggle{display:block}#nav-principale{display:none}#nav-principale.is-open{display:block}}}

.header{flex-wrap:wrap}.language-switch{display:flex;gap:0;position:absolute;top:0;right:48px;font-size:.8125rem}.language-switch a{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}.language-switch [aria-current="page"]{font-weight:700;text-decoration:underline;text-underline-offset:.3em}

/* Expertise: vector illustrations stay decorative; their meaning is in the text. */
@layer components{
  .hero{border-bottom:1px solid var(--c-line)}
  .hero-note{font-size:.875rem;color:var(--c-muted);margin-top:24px;max-width:48ch}
  .architecture{min-width:0;background:var(--brand-navy);color:#fff;border:1px solid #334155;border-radius:16px;overflow:hidden;box-shadow:0 20px 50px rgb(11 15 36 / .12)}
  .architecture-heading{display:flex;align-items:center;gap:10px;padding:20px 24px;border-bottom:1px solid #334155;font-size:.875rem}
  .architecture-dot{width:7px;height:7px;border-radius:50%;background:var(--brand-blue);flex-shrink:0}
  .architecture-drawing{display:block;width:100%;height:auto}
  .architecture-legend{list-style:none;display:flex;flex-wrap:wrap;gap:12px 24px;margin:0;padding:0 24px}
  .architecture-legend li{font-size:.8125rem;margin:0}
  .architecture-legend span{color:#c4b5fd;margin-right:8px;font-variant-numeric:tabular-nums}
  .architecture-caption{font-size:.75rem;color:#cbd5e1;padding:16px 24px;margin:0}
  .service-icon{display:block;width:80px;height:64px;color:var(--c-accent);margin-bottom:24px}
  .services .card{position:relative;padding:32px}
  .services .card>.number{position:absolute;top:32px;right:32px;font-size:.875rem;color:var(--c-muted)}
  .services .card h3{margin-top:0}
  .deliverables{margin-top:40px;gap:32px}
  .deliverables article{border-top:2px solid var(--c-accent);padding-top:16px}
  .deliverables h3{font-size:1.125rem;letter-spacing:-.02em}
  .deliverables p:not(.number){color:var(--c-muted)}
  .deliverables .number{font-size:.875rem}
  .service-marker .service-icon{width:64px;height:52px;margin:0}
  @media(min-width:48em){.deliverables{grid-template-columns:repeat(3,minmax(0,1fr))}}
  @media(prefers-reduced-motion:no-preference){
    .hero-copy,.architecture{animation:expertise-enter .65s ease-out both}
    .architecture{animation-delay:.12s}
    .signal{animation:expertise-signal 1.8s ease-out 2}
    .services .card{transition:border-color .18s ease,box-shadow .18s ease}
    .services .card:hover,.services .card:focus-within{border-color:var(--c-accent);box-shadow:0 8px 24px rgb(11 15 36 / .07)}
  }
  @keyframes expertise-enter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
  @keyframes expertise-signal{from{stroke-dashoffset:24}to{stroke-dashoffset:0}}
}

/* Thème clair/sombre, fond dégradé et motif binaire très discret (décoratif). */
@layer tokens{
  :root{--c-card:#fff;--c-input:#fff;--c-grid:#e2e8f0;--bg-grad:linear-gradient(160deg,#fff 0%,#eef2ff 45%,#f5eefe 100%);--bin-color:#6d28d9;--bin-opacity:.11;color-scheme:light}
  :root[data-theme=dark]{--c-ink:#f1f5f9;--c-muted:#cbd5e1;--c-bg:#0b0f24;--c-surface:#131936;--c-line:#2a3354;--c-accent:#a78bfa;--c-accent-strong:#c4b5fd;--c-error:#fca5a5;--c-card:#131936;--c-input:#0f1430;--c-grid:#222a4a;--bg-grad:linear-gradient(160deg,#0b0f24 0%,#14123a 50%,#1f1147 100%);--bin-color:#00b3ff;--bin-opacity:.14;color-scheme:dark}
  @media(prefers-color-scheme:dark){:root:not([data-theme=light]){--c-ink:#f1f5f9;--c-muted:#cbd5e1;--c-bg:#0b0f24;--c-surface:#131936;--c-line:#2a3354;--c-accent:#a78bfa;--c-accent-strong:#c4b5fd;--c-error:#fca5a5;--c-card:#131936;--c-input:#0f1430;--c-grid:#222a4a;--bg-grad:linear-gradient(160deg,#0b0f24 0%,#14123a 50%,#1f1147 100%);--bin-color:#00b3ff;--bin-opacity:.14;color-scheme:dark}}
}
@layer base{
  body{background:var(--bg-grad) fixed;background-color:var(--c-bg);position:relative}
  body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:var(--bin-opacity);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='180'%3E%3Cg font-family='monospace' font-size='14' fill='%23808080'%3E%3Ctext x='4' y='20'%3E0 1 1 0 1 0 0 1 1 0 1%3C/text%3E%3Ctext x='24' y='56'%3E1 0 0 1 0 1 1 0 0 1%3C/text%3E%3Ctext x='-6' y='92'%3E0 1 0 0 1 1 0 1 0 1 1 0%3C/text%3E%3Ctext x='34' y='128'%3E1 1 0 1 0 0 1 0 1 0%3C/text%3E%3Ctext x='10' y='164'%3E0 0 1 0 1 1 0 1 0 0 1%3C/text%3E%3C/g%3E%3C/svg%3E");-webkit-mask-image:linear-gradient(180deg,#000,transparent 85%);mask-image:linear-gradient(180deg,#000,transparent 85%)}
}
@layer components{
  .hero{background:transparent}
  .surface{background:color-mix(in srgb,var(--c-surface) 70%,transparent)}
  .card,.skip-link{background:var(--c-card)}
  .nav-toggle{background:var(--c-card);color:var(--c-ink)}
  input:not([type=checkbox]),textarea,select{background:var(--c-input)}
  .blueprint{background-image:linear-gradient(var(--c-grid) 1px,transparent 1px),linear-gradient(90deg,var(--c-grid) 1px,transparent 1px)}
  .btn--secondary{background:transparent}
  .badge,.brand-mark{background:var(--c-ink);color:var(--c-bg)!important}
  :root[data-theme=dark] .btn:not(.btn--secondary),:root[data-theme=dark] .btn:not(.btn--secondary):hover{color:#0b0f24}
  .cta,.window,.architecture,.footer{background:#0b0f24;color:#fff}
  :root[data-theme=dark] .footer,:root:not([data-theme=light]) .footer{border-top:1px solid var(--c-line)}
  .logo-on-dark{display:none}
  :root[data-theme=dark] .logo-on-light{display:none}:root[data-theme=dark] .logo-on-dark{display:block}
  @media(prefers-color-scheme:dark){:root:not([data-theme=light]) .logo-on-light{display:none}:root:not([data-theme=light]) .logo-on-dark{display:block}:root:not([data-theme=light]) .btn:not(.btn--secondary),:root:not([data-theme=light]) .btn:not(.btn--secondary):hover{color:#0b0f24}}
  .footer .logo-on-dark{display:block}.footer .logo-on-light{display:none}
  .header{position:relative;padding-top:44px}.language-switch a{color:var(--c-muted);text-decoration:none;opacity:.7}.language-switch a:hover,.language-switch [aria-current=page]{opacity:1}.language-switch [aria-current=page]{text-decoration:none}
  .theme-toggle{position:absolute;top:0;right:0;width:44px;height:44px;padding:0;border:0;background:transparent;color:var(--c-muted);opacity:.55;font-size:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.theme-toggle:hover,.theme-toggle:focus-visible{opacity:1}
  .theme-toggle::before{font-size:1rem}.theme-toggle[aria-pressed=true]::before{content:"☀"}.theme-toggle[aria-pressed=false]::before{content:"☾"}
}

/* Apparition des blocs au scroll (activée par nav.js ; sans JS ou mouvement réduit, tout reste visible). */
@media(prefers-reduced-motion:no-preference){
  .js-reveal .reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease-out,transform .6s ease-out;transition-delay:var(--reveal-delay,0s)}
  .js-reveal .reveal.is-visible{opacity:1;transform:none}
}
