/* ============================================================
   NEXDEV v3 — Theme : Warm Craft (Light + Dark auto)
   Fonts : Oxanium · Fira Code · Merriweather
   ============================================================ */

:root {
  /* ─── Tokens shadcn (Light par défaut) ─── */
  --background: #FDFBF7;
  --foreground: #4A3B33;
  --card: #F8F4EE;
  --card-foreground: #4A3B33;
  --popover: #F8F4EE;
  --popover-foreground: #4A3B33;
  --primary: #B45309;
  --primary-foreground: #FFFFFF;
  --secondary: #E4C090;
  --secondary-foreground: #57534E;
  --muted: #F1E9DA;
  --muted-foreground: #78716C;
  --accent: #f2daba;
  --accent-foreground: #57534E;
  --destructive: #991B1B;
  --destructive-foreground: #FFFFFF;
  --border: #E4D9BC;
  --input: #E4D9BC;
  --ring: #B45309;
  --radius: 0.3rem;

  --font-sans: 'Oxanium', system-ui, sans-serif;
  --font-mono: 'Fira Code', ui-monospace, monospace;
  --font-serif: 'Merriweather', serif;

  --shadow-color: hsl(28 18% 25%);
  --shadow-opacity: 0.18;

  /* ─── Alias compat (anciens noms réutilisés partout) ─── */
  --noir: var(--background);
  --blanc: var(--foreground);
  --orange: var(--primary);
  --orange-rgb: 180,83,9;
  --fluo: var(--secondary);
  --fluo-rgb: 228,192,144;
  --gris: var(--border);
  --gris-light: var(--muted-foreground);

  --ease: cubic-bezier(.16,1,.3,1);

  /* Alias historiques pour les blog posts */
  --coral: var(--primary);
  --coral-dark: #8B3E07;
  --mono: var(--font-mono);

  color-scheme: light dark;
}

@media (prefers-color-scheme: dark) and (max-width: 1px) /* dark mode désactivé : palette light unique sur tous devices */ {
  :root {
    --background: #1C1917;
    --foreground: #F5F5F4;
    --card: #292524;
    --card-foreground: #F5F5F4;
    --popover: #292524;
    --popover-foreground: #F5F5F4;
    --primary: #F97316;
    --primary-foreground: #FFFFFF;
    --secondary: #F97316;
    --secondary-foreground: #FFFFFF;
    --muted: #292524;
    --muted-foreground: #A8A29E;
    --accent: #1e4252;
    --accent-foreground: #E7E5E4;
    --destructive: #DC2626;
    --destructive-foreground: #FFFFFF;
    --border: #44403C;
    --input: #44403C;
    --ring: #F97316;

    --shadow-color: hsl(0 0% 5%);

    --orange-rgb: 249,115,22;
    --fluo-rgb: 249,115,22;
    --coral-dark: #B85410;
  }
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth}
body{background:var(--noir);color:var(--blanc);font-family:var(--font-mono);font-weight:400;overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}

/* SR-ONLY (lecteurs d'écran uniquement) */
.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}

/* HONEYPOT (anti-spam, invisible humain) */
.form-honeypot{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}

/* CURSEUR — uniquement si JS chargé + souris fine */
.cursor-dot,.cursor-ring{display:none}
html.js .cursor-dot,html.js .cursor-ring{display:block}
@media (pointer:coarse), (hover:none){html.js .cursor-dot,html.js .cursor-ring{display:none}}
html.js-cursor body{cursor:none}
html.js-cursor a,html.js-cursor button,html.js-cursor input,html.js-cursor textarea,html.js-cursor label{cursor:none}
.cursor-dot{width:8px;height:8px;background:var(--fluo);border-radius:50%;position:fixed;z-index:9999;pointer-events:none;transform:translate(-50%,-50%);transition:width .3s,height .3s,opacity .3s,background .25s;top:0;left:0}
.cursor-ring{width:32px;height:32px;border:1px solid rgba(var(--fluo-rgb),.4);border-radius:50%;position:fixed;z-index:9998;pointer-events:none;transform:translate(-50%,-50%);transition:width .3s,height .3s,border-color .3s,background .3s;top:0;left:0}
body.cursor-hover .cursor-dot{opacity:0}
body.cursor-hover .cursor-ring{width:52px;height:52px;border-color:rgba(var(--fluo-rgb),.6);background:rgba(var(--fluo-rgb),.05)}
/* Curseur sur zones fond fluo : variante orange/noir */
body.on-fluo .cursor-dot{background:var(--orange);box-shadow:0 0 8px rgba(var(--orange-rgb),.5)}
body.on-fluo .cursor-ring{border-color:var(--noir);background:rgba(8,8,8,.08)}

/* GRAIN — desktop uniquement, pour économiser GPU mobile */
@media (prefers-reduced-motion:no-preference) and (min-width:900px){
  body::before{content:'';position:fixed;inset:0;z-index:9990;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");opacity:.03;will-change:transform;animation:grain .5s steps(2) infinite}
  @keyframes grain{0%,100%{transform:translate(0,0)}10%{transform:translate(-2%,-3%)}20%{transform:translate(3%,1%)}30%{transform:translate(-1%,4%)}40%{transform:translate(2%,-2%)}50%{transform:translate(-3%,2%)}60%{transform:translate(1%,-4%)}70%{transform:translate(3%,3%)}80%{transform:translate(-2%,1%)}90%{transform:translate(2%,-1%)}}
}

/* SKIP LINK */
.skip-link{position:absolute;top:-100%;left:1rem;background:var(--orange);color:var(--noir);font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;padding:.6rem 1.2rem;z-index:10000;transition:top .2s}
.skip-link:focus{top:1rem}
:focus-visible{outline:2px solid var(--fluo);outline-offset:3px}
:focus:not(:focus-visible){outline:none}

/* NAV */
nav#nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:0 4vw;display:grid;grid-template-columns:auto 1fr auto;align-items:center;height:72px;background:rgba(8,8,8,0);transition:background .3s,border-color .3s,backdrop-filter .3s;border-bottom:1px solid transparent}
nav#nav.solid{background:color-mix(in srgb, var(--background) 92%, transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom-color:rgba(var(--fluo-rgb),.15)}
@supports not (background: color-mix(in srgb, red, blue)) { nav#nav.solid{background:var(--background)} }
.nav-logo{font-family:var(--font-sans);font-weight:800;font-size:1.3rem;letter-spacing:-.04em;color:var(--blanc);text-decoration:none;display:flex;align-items:center;min-height:44px;align-self:center}
.nav-logo .d{color:var(--orange)}
.nav-logo-cursor{display:inline-block;width:2px;height:.8em;background:var(--fluo);margin-left:3px;vertical-align:middle}
.nav-links{display:flex;align-items:center;justify-content:center;gap:2.5rem;list-style:none}
.nav-links a{font-size:.65rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted-foreground);text-decoration:none;transition:color .3s;padding:1.2rem 0;display:inline-block;font-weight:600}
.nav-links a:hover,.nav-links a:focus-visible,.nav-links a[aria-current]{color:var(--primary)}
.nav-projet-btn{font-family:var(--font-mono);font-size:.65rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;background:var(--fluo);color:var(--noir);border:none;padding:.6rem 1.3rem;min-height:40px;transition:transform .3s var(--ease),box-shadow .3s,background .25s var(--ease),color .25s var(--ease);display:inline-flex;align-items:center;gap:8px}
.nav-projet-btn:hover,.nav-projet-btn:focus-visible{transform:translateY(-2px);box-shadow:0 8px 24px rgba(var(--orange-rgb),.35);background:var(--primary);color:var(--primary-foreground)}

/* HERO */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;overflow:hidden;padding:6rem 6vw 4rem;contain:layout paint}
.hero-layer{position:absolute;inset:0;pointer-events:none}
.hero-layer-grid{background-image:linear-gradient(rgba(var(--fluo-rgb),.05) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--fluo-rgb),.05) 1px,transparent 1px);background-size:clamp(20px,5vw,60px) clamp(20px,5vw,60px);mask-image:radial-gradient(ellipse 80% 70% at 50% 50%,#000 30%,transparent 100%)}
.hero-layer-glow{background:radial-gradient(ellipse 60% 60% at 50% 50%,rgba(var(--orange-rgb),.1) 0%,transparent 60%)}

/* Corner accents (style dev-frame) */
.hero-corner{position:absolute;width:48px;height:48px;border:1px solid rgba(245,245,240,.18);pointer-events:none}
.hero-corner-tl{top:5rem;left:4vw;border-right:none;border-bottom:none}
.hero-corner-br{bottom:5rem;right:4vw;border-left:none;border-top:none}

.hero-content{position:relative;z-index:2;max-width:680px}
.hero-content-centered{max-width:1400px;margin:0 auto;text-align:center;display:flex;flex-direction:column;align-items:center;width:100%}
.hero-eyebrow{display:inline-flex;align-items:center;gap:12px;font-size:.62rem;font-weight:700;letter-spacing:.3em;text-transform:uppercase;color:var(--primary);margin-bottom:2rem;opacity:0;transform:translateY(20px);animation:fadeUp .6s var(--ease) .2s forwards;justify-content:center;background:color-mix(in srgb,var(--background) 85%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:.55rem 1.2rem;border-radius:999px;border:1px solid color-mix(in srgb,var(--primary) 25%,transparent);align-self:center}
.hero-eyebrow::before,.hero-eyebrow::after{content:'';width:18px;height:1px;background:var(--primary)}
@supports not (color: color-mix(in srgb, red, blue)){
  .hero-eyebrow{background:var(--background);border-color:var(--primary)}
}

.hero-title{font-family:var(--font-sans);font-weight:800;line-height:.88;letter-spacing:-.05em}

/* ── SHUTTER TEXT EFFECT ── */
.hero-title-shutter{font-size:clamp(2rem,8.5vw,9.5rem);line-height:.92;letter-spacing:-.06em;color:var(--blanc);width:100%}
.shutter-line{display:flex;justify-content:center;align-items:center;flex-wrap:nowrap;width:100%;white-space:nowrap}
.shutter-line.shutter-accent{color:var(--orange)}
.ch{position:relative;display:inline-block;overflow:hidden;padding:0 .005em;line-height:1}
.ch-space{width:.35em;display:inline-block}
.ch-dot{color:var(--orange)}
.ch i.ch-mid{position:absolute;inset:0;font-style:normal;pointer-events:none;color:var(--fluo);clip-path:polygon(0 35%,100% 35%,100% 65%,0 65%);opacity:0;will-change:transform,opacity}
.ch::before,.ch::after{content:attr(data-char);position:absolute;inset:0;pointer-events:none;color:var(--orange);opacity:0;will-change:transform,opacity}
.ch::before{clip-path:polygon(0 0,100% 0,100% 35%,0 35%)}
.ch::after{clip-path:polygon(0 65%,100% 65%,100% 100%,0 100%)}
.shutter-line.shutter-accent .ch::before,.shutter-line.shutter-accent .ch::after{color:var(--fluo)}
.shutter-line.shutter-accent .ch i.ch-mid{color:var(--blanc)}

/* Animations déclenchées par .shutter-play */
.shutter-play .ch{animation:shutter-main .8s var(--ease) calc(var(--i) * .04s + .25s) both}
.shutter-play .ch::before{animation:shutter-top .7s ease-in-out calc(var(--i) * .04s) both}
.shutter-play .ch i.ch-mid{animation:shutter-mid .7s ease-in-out calc(var(--i) * .04s + .1s) both}
.shutter-play .ch::after{animation:shutter-bot .7s ease-in-out calc(var(--i) * .04s + .2s) both}
.shutter-play .ch.ch-space{animation:none}

@keyframes shutter-main{from{opacity:0;filter:blur(10px)}to{opacity:1;filter:blur(0)}}
@keyframes shutter-top{0%{transform:translateX(-100%);opacity:0}50%{opacity:1}100%{transform:translateX(100%);opacity:0}}
@keyframes shutter-mid{0%{transform:translateX(100%);opacity:0}50%{opacity:1}100%{transform:translateX(-100%);opacity:0}}
@keyframes shutter-bot{0%{transform:translateX(-100%);opacity:0}50%{opacity:1}100%{transform:translateX(100%);opacity:0}}

.hero-sub{font-size:clamp(.85rem,1.1vw,1rem);line-height:1.8;color:var(--muted-foreground);max-width:540px;margin:2rem auto 0;opacity:0;transform:translateY(20px);animation:fadeUp .7s var(--ease) 1.4s forwards}
.hero-actions{display:flex;align-items:center;justify-content:center;gap:1.5rem;flex-wrap:wrap;margin-top:2.5rem;opacity:0;animation:fadeUp .6s var(--ease) 1.6s forwards}

/* Trait scroll animé (sous le titre) — apparition au load + fade-out au scroll */
.hero-scroll-indicator{display:inline-flex;flex-direction:column;align-items:center;gap:.9rem;margin-top:3.5rem;text-decoration:none;color:var(--foreground);align-self:center;opacity:0;transform:translateY(20px);transition:opacity .6s var(--ease) 1.9s,transform .6s var(--ease) 1.9s;will-change:opacity,transform}
.hero-scroll-indicator.entered{opacity:1;transform:translateY(0)}
.hero-scroll-indicator.faded{opacity:0!important;transform:translateY(-14px)!important;transition:opacity .35s ease,transform .35s ease;pointer-events:none}
.hero-scroll-indicator-line{width:2px;height:72px;background:linear-gradient(to bottom,transparent,var(--foreground) 35%,var(--foreground));position:relative;overflow:hidden;border-radius:2px;box-shadow:0 0 0 4px color-mix(in srgb,var(--background) 70%,transparent)}
.hero-scroll-indicator-line::after{content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);width:8px;height:8px;background:var(--primary);border-radius:50%;box-shadow:0 0 12px rgba(var(--orange-rgb),.8),0 0 0 2px var(--background)}
@media (prefers-reduced-motion:no-preference){
  .hero-scroll-indicator-line::after{animation:scrollDot 1.8s cubic-bezier(.4,0,.2,1) infinite}
}
@keyframes scrollDot{0%{top:-8px;opacity:0}20%{opacity:1}80%{opacity:1}100%{top:calc(100% + 8px);opacity:0}}
.hero-scroll-indicator-label{font-family:var(--font-mono);font-size:.6rem;font-weight:700;letter-spacing:.3em;text-transform:uppercase;background:color-mix(in srgb,var(--background) 85%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:.4rem .9rem;border-radius:999px;border:1px solid color-mix(in srgb,var(--foreground) 15%,transparent);color:var(--foreground)}
.hero-scroll-indicator:hover,.hero-scroll-indicator:focus-visible{color:var(--primary)}
.hero-scroll-indicator:hover .hero-scroll-indicator-label,.hero-scroll-indicator:focus-visible .hero-scroll-indicator-label{color:var(--primary);border-color:color-mix(in srgb,var(--primary) 40%,transparent)}
@supports not (color: color-mix(in srgb, red, blue)){
  .hero-scroll-indicator-line{box-shadow:0 0 0 4px var(--background)}
  .hero-scroll-indicator-label{background:var(--background);border-color:var(--border)}
}

.btn-primary{font-family:var(--font-mono);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;background:var(--orange);color:var(--noir);padding:1rem 2.2rem;border:none;text-decoration:none;display:inline-block;transition:transform .3s var(--ease),box-shadow .3s;position:relative;overflow:hidden;min-height:44px}
.btn-primary::before{content:'';position:absolute;inset:0;background:var(--fluo);transform:translateX(-101%);transition:transform .4s var(--ease)}
.btn-primary:hover::before,.btn-primary:focus-visible::before{transform:translateX(0)}
.btn-primary:hover,.btn-primary:focus-visible{transform:translateY(-3px);box-shadow:0 12px 32px rgba(var(--orange-rgb),.3)}
.btn-primary span{position:relative;z-index:1}
.btn-ghost{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--blanc);text-decoration:none;display:inline-flex;align-items:center;gap:10px;transition:gap .3s,color .3s;min-height:44px}
.btn-ghost:hover,.btn-ghost:focus-visible{gap:16px;color:var(--fluo)}

/* .hero-scroll (ancien, absolute bottom-left) supprimé — remplacé par .hero-scroll-indicator centré */
/* anim scanLine retirée (hero-scroll obsolète) */

/* MARQUEE — 100% CSS, pause hors écran + reduced-motion */
.marquee-wrap{background:var(--fluo);padding:.75rem 0;overflow:hidden;position:relative}
.marquee-track{display:inline-flex;align-items:center;flex-shrink:0;white-space:nowrap;will-change:transform}
@media (prefers-reduced-motion:no-preference){
  .marquee-track{animation:marquee 38s linear infinite}
}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.marquee-track span{font-family:var(--font-mono);font-size:.68rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--secondary-foreground);padding:0 2rem;white-space:nowrap}
.marquee-track span.dot{color:rgba(0,0,0,.25);padding:0}

/* STATS BAR — card horizontale épurée */
.stats-bar-section{padding:5rem 6vw 2.5rem}
.stats-bar{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);background:var(--card);border:1px solid var(--border);border-radius:clamp(20px,2.5vw,28px);box-shadow:0 1px 0 rgba(0,0,0,.02),0 10px 32px -12px rgba(0,0,0,.08);overflow:hidden}
.stat-cell{padding:2.4rem 1.4rem;text-align:center;position:relative;transition:background .35s var(--ease)}
.stat-cell::before{content:'';position:absolute;left:0;top:24%;bottom:24%;width:1px;background:var(--border);opacity:.6}
.stat-cell:first-child::before{display:none}
.stat-cell:hover{background:color-mix(in srgb,var(--primary) 5%,transparent)}
.stat-cell::after{content:'';position:absolute;left:50%;bottom:1.3rem;width:0;height:2px;background:var(--primary);border-radius:2px;transform:translateX(-50%);transition:width .35s var(--ease)}
.stat-cell:hover::after{width:28px}
@supports not (color: color-mix(in srgb, red, blue)){
  .stat-cell:hover{background:var(--muted)}
}
.stat-num{font-family:var(--font-sans);font-size:clamp(2.2rem,4.5vw,3.4rem);font-weight:800;line-height:1;letter-spacing:-.045em;color:var(--foreground);display:inline-flex;align-items:baseline;justify-content:center;gap:.02em}
.stat-accent{color:var(--primary);font-weight:800}
.stat-cell-label{font-family:var(--font-mono);font-size:.6rem;font-weight:600;letter-spacing:.25em;text-transform:uppercase;color:var(--muted-foreground);margin-top:.8rem}

@media (max-width:900px){
  .stats-bar{grid-template-columns:repeat(2,1fr)}
  .stat-cell:nth-child(3)::before{display:none}
  .stat-cell:nth-child(2n+1)::before{display:none}
}
@media (max-width:480px){
  .stats-bar{grid-template-columns:1fr}
  .stat-cell::before{display:none}
  .stat-cell:not(:first-child){border-top:1px solid var(--border)}
}

/* SATISFACTION — carte premium */
.satisfaction-section{padding:2rem 6vw calc(6rem - 30px)}
.satisfaction-card{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr;gap:3rem;background:var(--card);border:1px solid var(--border);border-radius:clamp(20px,2.5vw,28px);padding:clamp(2rem,3.5vw,3.5rem);box-shadow:0 1px 0 rgba(0,0,0,.02),0 10px 32px -12px rgba(0,0,0,.08);align-items:center}
.satisfaction-main{display:flex;flex-direction:column;justify-content:center}
.satisfaction-text .satisfaction-eyebrow{justify-content:flex-start;margin-bottom:1rem}
.satisfaction-title{font-family:var(--font-sans);font-weight:800;font-size:clamp(1.6rem,2.6vw,2.2rem);line-height:1.1;letter-spacing:-.03em;color:var(--foreground);margin-bottom:1rem}
.satisfaction-desc{font-size:.92rem;line-height:1.7;color:var(--muted-foreground)}
.satisfaction-aside{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:0;border-left:1px solid var(--border);padding-left:2rem}
.aside-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--border);font-family:var(--font-mono);font-size:.78rem}
.aside-row:last-child{border-bottom:none}
.aside-label{color:var(--muted-foreground);letter-spacing:.04em}
.aside-value{color:var(--foreground);font-weight:700;display:inline-flex;align-items:center;gap:.4rem}
.aside-stars{color:var(--primary);font-size:.85rem;letter-spacing:.1em}
.aside-stars-mini{color:var(--primary)}

@media (max-width:900px){
  .satisfaction-card{grid-template-columns:1fr;gap:2rem}
  .satisfaction-main{text-align:center;align-items:center}
  .satisfaction-text .satisfaction-eyebrow{justify-content:center}
  .satisfaction-aside{border-left:none;border-top:1px solid var(--border);padding-left:0;padding-top:1rem}
}

/* SECTION BASE */
.section-eyebrow{display:flex;align-items:center;gap:10px;font-size:.6rem;letter-spacing:.28em;text-transform:uppercase;color:var(--orange);margin-bottom:1.5rem}
.section-eyebrow::before{content:'';width:18px;height:1px;background:var(--orange)}
.section-title{font-family:var(--font-sans);font-weight:800;font-size:clamp(2.5rem,5vw,5rem);letter-spacing:-.04em;line-height:.95}

/* PROMISES BAR — 3 engagements après les stats */
.promises-section{padding:1rem 6vw 4rem}
.promises-list{max-width:1280px;margin:0 auto;list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.promise-item{display:flex;align-items:flex-start;gap:1rem;padding:1.4rem 1.6rem;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);transition:transform .3s var(--ease),border-color .3s}
.promise-item:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--primary) 40%,transparent)}
@supports not (color: color-mix(in srgb, red, blue)){.promise-item:hover{border-color:var(--primary)}}
.promise-icon{flex-shrink:0;color:var(--primary);margin-top:.15rem}
.promise-title{font-family:var(--font-sans);font-size:1rem;font-weight:700;color:var(--foreground);letter-spacing:-.01em;margin-bottom:.3rem}
.promise-desc{font-family:var(--font-mono);font-size:.72rem;line-height:1.55;color:var(--muted-foreground)}
@media (max-width:900px){.promises-list{grid-template-columns:1fr;gap:.8rem}}

/* SERVICES */
.services-section{padding:10rem 6vw}
.section-header{margin-bottom:6rem}
.services-list{display:flex;flex-direction:column}
.srv-item{display:grid;grid-template-columns:60px 1fr auto;align-items:center;gap:2rem;padding:2.5rem 0;border-bottom:1px solid var(--gris);position:relative;overflow:hidden;transition:padding-left .4s var(--ease),background .3s var(--ease);text-decoration:none;color:inherit;cursor:pointer}
.srv-item:focus-visible{outline:2px solid var(--primary);outline-offset:-2px;border-radius:4px}
.srv-item::before{content:'';position:absolute;left:0;top:0;bottom:0;width:0;background:rgba(var(--fluo-rgb),.04);transition:width .4s var(--ease)}
.srv-item:first-child{border-top:1px solid var(--gris)}
.srv-item:hover{padding-left:1.5rem}
.srv-item:hover::before{width:100%}
.srv-num{font-size:.6rem;letter-spacing:.2em;color:var(--orange)}
.srv-content h3{font-family:var(--font-sans);font-weight:700;font-size:clamp(1.2rem,2.5vw,2rem);letter-spacing:-.02em;color:var(--blanc);transition:color .3s}
.srv-item:hover .srv-content h3{color:var(--fluo)}
.srv-content p{font-size:.85rem;color:var(--muted-foreground);line-height:1.65;margin-top:.5rem;max-width:500px}
.srv-arrow{width:48px;height:48px;border:1px solid var(--gris);display:flex;align-items:center;justify-content:center;transition:background .3s,border-color .3s,transform .3s;flex-shrink:0}
.srv-item:hover .srv-arrow{background:var(--fluo);border-color:var(--fluo);transform:rotate(-45deg)}

/* PROCESS */
.process-section{padding:10rem 6vw;background:var(--muted);position:relative;overflow:hidden}
.process-watermark{position:absolute;bottom:-4rem;right:-2rem;font-family:var(--font-sans);font-weight:800;font-size:22vw;color:rgba(255,255,255,.02);letter-spacing:-.06em;pointer-events:none;line-height:1;user-select:none}
.process-inner{display:grid;grid-template-columns:1fr 1fr;gap:8rem;align-items:start}
.process-steps{display:flex;flex-direction:column}
.process-step{padding:2.5rem 0;border-bottom:1px solid var(--gris);display:grid;grid-template-columns:48px 1fr;gap:1.5rem}
.process-step:first-child{border-top:1px solid var(--gris)}
.process-step.visible{animation:revealLeft .7s var(--ease) both}
.process-step:nth-child(2).visible{animation-delay:.1s}
.process-step:nth-child(3).visible{animation-delay:.2s}
.process-step:nth-child(4).visible{animation-delay:.3s}
.process-step-num{font-family:var(--font-sans);font-weight:800;font-size:1.6rem;color:rgba(245,245,240,.12);transition:color .3s;line-height:1.2}
.process-step:hover .process-step-num{color:var(--orange)}
.process-step-title{font-family:var(--font-sans);font-weight:700;font-size:1rem;color:var(--blanc);margin-bottom:.5rem}
.process-step-desc{font-size:.85rem;color:var(--muted-foreground);line-height:1.65}
.process-visual{position:sticky;top:8rem;display:flex;align-items:center;justify-content:center;min-height:400px}
.pv-wordgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;width:100%}
.pv-word{font-family:var(--font-mono);font-size:.62rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:rgba(245,245,240,.1);padding:.8rem 1rem;border:1px solid rgba(245,245,240,.08);text-align:center;transition:color .5s var(--ease),border-color .5s var(--ease),background .5s var(--ease)}
.pv-word.active{color:var(--fluo);border-color:rgba(var(--fluo-rgb),.3);background:rgba(var(--fluo-rgb),.05)}
.pv-word.semi{color:rgba(245,245,240,.32);border-color:rgba(245,245,240,.12)}

/* STACK */
.stack-section{padding:10rem 6vw}
.techs{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0;margin-top:4rem}
.tech{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-foreground);border:1px solid var(--gris);padding:.75rem 1.3rem;transition:border-color .3s,color .3s,background .3s,transform .3s}
.tech:hover{border-color:var(--fluo);color:var(--fluo);background:rgba(var(--fluo-rgb),.05);transform:translateY(-3px)}

/* Helpers nouveaux (remplacent les styles inline retirés du HTML pour Lighthouse) */
.pricing-intro{margin-top:1.2rem;color:var(--muted-foreground);max-width:560px;font-size:.85rem;line-height:1.7}
.pricing-intro strong{color:var(--blanc)}
.pricing-block{margin-top:4rem}
.portfolio-header .btn-ghost{color:var(--muted-foreground)}
.plan-badge-orange{background:var(--orange);color:var(--noir)}
.plan-btn-small{max-width:200px}
.plan-btn-seo{margin-top:2rem}
.plan-features-tight{margin-bottom:1.8rem}

/* PORTFOLIO */
.portfolio-section{padding:10rem 6vw;background:var(--muted)}
.portfolio-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:5rem;flex-wrap:wrap;gap:2rem}
.proj-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
.proj-card{position:relative;overflow:hidden;aspect-ratio:4/3;display:flex;flex-direction:column;justify-content:flex-end;padding:1.2rem;text-decoration:none;background:var(--card);border:1px solid var(--border);border-radius:clamp(14px,1.5vw,20px);transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.proj-card:nth-child(1){grid-column:1/-1;aspect-ratio:16/7}
.proj-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px -12px rgba(0,0,0,.18)}
.proj-thumb{position:absolute;inset:0;overflow:hidden;border-radius:inherit}
.proj-thumb img{width:100%;height:100%;object-fit:cover;object-position:top;display:block;transition:transform .8s var(--ease)}
.proj-card:hover .proj-thumb img,.proj-card:focus-visible .proj-thumb img{transform:scale(1.04)}

/* Bande infos franche en bas — pleine largeur de la card */
.proj-info{position:relative;z-index:2;background:color-mix(in srgb,var(--background) 94%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--border);border-radius:clamp(10px,1.2vw,16px);padding:1rem 1.4rem;display:flex;flex-direction:column;gap:.35rem;width:100%;align-self:stretch;transition:background .3s var(--ease)}
@supports not (color: color-mix(in srgb, red, blue)){.proj-info{background:var(--background)}}
.proj-card:hover .proj-info{background:var(--background)}

/* Mobile : padding interne réduit, mais bande reste full-width */
@media (max-width:600px){
  .proj-info{padding:.85rem 1rem;gap:.3rem}
  .proj-name{font-size:1rem!important}
  .proj-desc{font-size:.72rem}
}
.proj-cat{font-family:var(--font-mono);font-size:.6rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--primary);margin:0}
.proj-name{font-family:var(--font-sans);font-weight:800;font-size:clamp(1.1rem,2vw,1.8rem);color:var(--foreground);letter-spacing:-.03em;line-height:1.15;margin:0;transition:color .3s}
.proj-card:hover .proj-name,.proj-card:focus-visible .proj-name{color:var(--primary)}
.proj-tag{display:inline-flex;align-self:flex-start;font-family:var(--font-mono);font-size:.62rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--primary-foreground);background:var(--primary);padding:.25rem .7rem;border-radius:999px;margin-top:.2rem}
.proj-desc{font-size:.78rem;color:var(--muted-foreground);line-height:1.55;margin:.2rem 0 0}

/* ════════════════════════════════════
   HERO TABLETTE PARALLAX
   Image beranger-sf 1200×668 — ratio 1200/668
   Piloté par --scroll-progress (0 → 1) défini en JS
════════════════════════════════════ */
/* Tablette à plat — plus de parallax, marges serrées */
.hero-tablet-section{position:relative;min-height:auto;padding:2rem 3vw 2.5rem;background:var(--background);--scroll-progress:1}
.hero-tablet-sticky{position:relative;top:auto;height:auto;display:flex;align-items:center;justify-content:center;padding:0}

.tablet-frame{
  /* Réduite : width max 1080px (avant 1200), 94% (avant 100%) → reste intégralement dans la zone visible même avec rotateX 20° */
  width:min(94%,1080px);
  background:#1a1a1a;
  border:4px solid #4a4a4a;
  border-radius:24px;
  padding:clamp(.6rem,1.2vw,1.2rem);
  transform-origin:50% 50%;
  transform-style:preserve-3d;
  will-change:transform;
  /* État par défaut = état final (safe fallback) */
  transform:none;
  box-shadow:
    0 9px 20px rgba(0,0,0,.30),
    0 37px 37px rgba(0,0,0,.26),
    0 84px 50px rgba(0,0,0,.15),
    0 149px 60px rgba(0,0,0,.04);
  position:relative;
}

/* Tablette à plat — parallax désactivé (rendu cohérent partout, marges réduites) */
.tablet-frame{transform:none!important;animation:none!important}
.tablet-screen{
  width:100%;
  aspect-ratio:1200 / 668;
  border-radius:14px;
  overflow:hidden;
  background:var(--muted);
  position:relative;
}
.tablet-screen img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center top;
  display:block;
}

/* WALLPAPER DITHERING — cadre arrondi en arrière-plan du hero */
.hero-dither-frame{
  position:absolute;
  /* Top remonté de ~30% — assez bas pour passer sous la nav fixe mais sans gaspiller d'espace */
  top:clamp(4rem,5.5vw,5rem);
  left:clamp(1.5rem,4vw,3.5rem);
  right:clamp(1.5rem,4vw,3.5rem);
  bottom:clamp(1.5rem,4vw,3.5rem);
  border-radius:clamp(20px,3vw,48px);
  overflow:hidden;
  background:var(--card);
  border:1px solid var(--border);
  box-shadow:0 4px 24px rgba(0,0,0,.04);
  pointer-events:none;
  z-index:0;
}
/* Image fixe SVG noise — fallback toujours visible (Safari, Messenger, no-JS) */
.hero-dither-frame::before{
  content:'';
  position:absolute;
  inset:0;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 250' preserveAspectRatio='xMidYMid slice'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.55' numOctaves='2' seed='4'/><feColorMatrix values='0 0 0 0 0.70  0 0 0 0 0.32  0 0 0 0 0.04  0 0 0 18 -8'/></filter><rect width='400' height='250' filter='url(%23n)'/></svg>") center/cover;
  opacity:.5;
  pointer-events:none;
  z-index:0;
}
/* Canvas anime par-dessus seulement quand supporté */
.hero-dither{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:.3;mix-blend-mode:multiply;z-index:0}

/* Calque ovale vertical floutté — renforcé pour lisibilité titre + scroll */
.hero-dither-frame::after{
  content:'';
  position:absolute;
  top:50%;
  left:50%;
  width:65%;
  height:92%;
  transform:translate(-50%,-50%);
  background:radial-gradient(ellipse 50% 55% at center,
    var(--background) 0%,
    color-mix(in srgb, var(--background) 85%, transparent) 35%,
    color-mix(in srgb, var(--background) 40%, transparent) 60%,
    transparent 80%);
  filter:blur(36px);
  pointer-events:none;
  z-index:1;
}

@media (prefers-color-scheme: dark) and (max-width: 1px) /* dark mode désactivé : palette light unique sur tous devices */{
  .hero-dither{opacity:.65;mix-blend-mode:screen}
  .hero-dither-frame{box-shadow:0 4px 24px rgba(0,0,0,.3)}
  .hero-dither-frame::after{
    background:radial-gradient(ellipse 50% 55% at center,
      var(--background) 0%,
      color-mix(in srgb, var(--background) 80%, transparent) 35%,
      color-mix(in srgb, var(--background) 35%, transparent) 60%,
      transparent 80%);
  }
}

@media (max-width:768px){
  .hero-dither-frame{
    top:calc(clamp(3.5rem,6vw,4.5rem) + 20px);   /* +20px de marge sous le header */
    left:clamp(1rem,3vw,2rem);
    right:clamp(1rem,3vw,2rem);
    bottom:clamp(1rem,3vw,2rem);
    border-radius:clamp(16px,3vw,24px)
  }
  .hero-dither-frame::after{width:80%;height:85%}
}

@media (prefers-reduced-motion:reduce){
  .hero-dither{display:none}
  /* le ::before SVG noise reste affiché en fallback */
}

/* HERO OUTRO sous la tablette */
.hero-outro{padding:4rem 6vw 6rem;text-align:center;max-width:760px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:2rem}
.hero-outro .hero-sub{font-size:clamp(.9rem,1.15vw,1.05rem);line-height:1.75;color:var(--muted-foreground);max-width:560px;margin:0 auto;animation:none;opacity:1;transform:none}
.hero-outro .hero-actions{margin-top:0;animation:none;opacity:1;display:flex;justify-content:center;flex-wrap:wrap;gap:1.5rem}

/* Mobile : bordure/radius adaptés. Si scroll-timeline supporté → anim CSS-native fluide.
   Sinon (Safari iOS) → fallback statique. */
@media (max-width:768px){
  .tablet-frame{border-width:3px;border-radius:18px}
  @supports not (animation-timeline: view()){
    .hero-tablet-section{min-height:auto;padding:3rem 4vw 1rem;--scroll-progress:1}
    .hero-tablet-sticky{position:relative;height:auto;padding:0}
  }
}

/* Reduced motion : prioritaire — anim désactivée partout */
@media (prefers-reduced-motion:reduce){
  .hero-tablet-section{--scroll-progress:1;min-height:auto}
  .hero-tablet-sticky{position:relative;height:auto;padding:4rem 0}
  .tablet-frame{transform:none!important;animation:none!important}
}

/* BLOG */
.blog-section{padding:10rem 6vw}
.blog-section-head{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:2rem}
.blog-section-head .btn-ghost{color:var(--muted-foreground)}
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:5rem}
.blog-card{border:1px solid var(--gris);overflow:hidden;transition:border-color .3s,transform .4s var(--ease),box-shadow .4s;display:block;text-decoration:none;color:inherit;background:var(--card);border-radius:var(--radius)}
.blog-card:hover,.blog-card:focus-within{border-color:var(--primary);transform:translateY(-6px);box-shadow:0 12px 32px rgba(var(--orange-rgb),.10)}

/* THUMB — design CSS pur cohérent avec la palette warm */
.blog-thumb{height:200px;overflow:hidden;position:relative;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--accent) 0%,var(--muted) 100%);transition:filter .4s var(--ease)}
.blog-card:hover .blog-thumb,.blog-card:focus-within .blog-thumb{filter:brightness(1.04)}
.blog-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s var(--ease)}
.blog-card:hover .blog-thumb img{transform:scale(1.06)}
.blog-thumb-word{font-family:var(--font-sans);font-size:clamp(2.4rem,5vw,4.5rem);font-weight:800;color:var(--primary);opacity:.22;letter-spacing:-.05em;line-height:1;text-transform:uppercase;pointer-events:none;text-align:center}
.blog-thumb-cat{position:absolute;top:1rem;left:1rem;font-family:var(--font-mono);font-size:.6rem;font-weight:700;letter-spacing:.25em;text-transform:uppercase;color:var(--primary);background:color-mix(in srgb,var(--background) 80%,transparent);padding:.35rem .7rem;border-radius:var(--radius);border:1px solid color-mix(in srgb,var(--primary) 30%,transparent)}
@supports not (color: color-mix(in srgb, red, blue)){
  .blog-thumb-cat{background:var(--background);border-color:var(--primary)}
}
/* Variantes de teinte par catégorie */
.blog-thumb-seo{background:linear-gradient(135deg,var(--accent) 0%,#FBE7C9 50%,var(--muted) 100%)}
.blog-thumb-strategy{background:linear-gradient(135deg,var(--secondary) 0%,var(--accent) 100%);}
.blog-thumb-perf{background:linear-gradient(135deg,var(--muted) 0%,#EAD9B6 50%,var(--accent) 100%)}
.blog-thumb-tech{background:linear-gradient(135deg,#F5E8CC 0%,var(--card) 100%)}
.blog-thumb-budget{background:linear-gradient(135deg,#FAD9A8 0%,var(--muted) 100%)}
@media (prefers-color-scheme: dark) and (max-width: 1px) /* dark mode désactivé : palette light unique sur tous devices */{
  .blog-thumb{background:linear-gradient(135deg,var(--card) 0%,var(--muted) 100%)}
  .blog-thumb-seo,.blog-thumb-strategy,.blog-thumb-perf,.blog-thumb-tech,.blog-thumb-budget{background:linear-gradient(135deg,var(--card) 0%,#3a3635 100%)}
  .blog-thumb-word{color:var(--primary);opacity:.18}
  .blog-thumb-cat{background:color-mix(in srgb,var(--background) 80%,transparent);border-color:color-mix(in srgb,var(--primary) 40%,transparent)}
}
.blog-section-cta{display:flex;justify-content:center;margin-top:4rem}
.blog-cta-btn{font-size:.75rem}
.blog-body{padding:1.8rem}
.blog-cat{font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--orange);margin-bottom:.8rem;display:block}
.blog-title{font-family:var(--font-sans);font-weight:700;font-size:1rem;color:var(--blanc);line-height:1.3;margin-bottom:.7rem;letter-spacing:-.01em}
.blog-title a{color:inherit;text-decoration:none}
.blog-title a:hover{color:var(--fluo)}
.blog-excerpt{font-size:.82rem;color:var(--muted-foreground);line-height:1.65}
.blog-meta{display:flex;align-items:center;justify-content:space-between;margin-top:1.2rem;padding-top:1.2rem;border-top:1px solid var(--gris)}
.blog-date{font-size:.65rem;letter-spacing:.1em;color:var(--muted-foreground)}
.blog-read{font-size:.6rem;letter-spacing:.1em;color:var(--fluo);text-transform:uppercase}

/* PRICING */
.pricing-section{padding:10rem 6vw;background:var(--muted)}
.pricing-block{margin-top:4rem}
.pricing-block-label{font-size:.6rem;letter-spacing:.28em;text-transform:uppercase;color:var(--orange);display:flex;align-items:center;gap:10px;margin-bottom:2rem}
.pricing-block-label::before{content:'';width:16px;height:1px;background:var(--orange)}
.pricing-grid-5{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem}
.pricing-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.pricing-grid-2,.pricing-grid-1{display:grid;grid-template-columns:1fr}
.plan{border:1px solid var(--gris);padding:2.5rem;position:relative;transition:border-color .3s,transform .4s var(--ease);background:var(--card)}
.plan:hover{border-color:rgba(245,245,240,.2);transform:translateY(-4px)}
.plan.featured{border-color:var(--fluo);background:rgba(var(--fluo-rgb),.04)}
.plan-badge{position:absolute;top:-1px;right:2rem;background:var(--fluo);color:var(--noir);font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;font-weight:700;padding:.28rem .8rem}
.plan-name{font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-foreground);margin-bottom:1.5rem}
.plan-price{font-family:var(--font-sans);font-weight:800;font-size:2rem;color:var(--blanc);line-height:1;letter-spacing:-.04em;margin-bottom:.3rem;white-space:nowrap}
.plan-price sup{font-size:1.1rem;vertical-align:super;color:var(--orange)}
.plan-price-period{font-size:1rem;font-weight:400;color:var(--muted-foreground);letter-spacing:0}
.plan-sub{font-size:.8rem;color:var(--muted-foreground);margin-bottom:2rem}
.plan-features{list-style:none;display:flex;flex-direction:column;gap:.8rem;margin-bottom:2.5rem}
.plan-features li{display:flex;align-items:flex-start;gap:.8rem;font-size:.85rem;color:var(--muted-foreground);line-height:1.55}
.plan-features li::before{content:'—';color:var(--fluo);flex-shrink:0}
.plan-btn{display:block;width:100%;text-align:center;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;padding:.9rem;text-decoration:none;transition:background .3s,color .3s,border-color .3s;border:1px solid var(--blanc);color:var(--blanc);background:transparent;font-family:var(--font-mono);font-weight:700;min-height:44px}
.plan-btn:hover,.plan-btn:focus-visible{background:var(--blanc);color:var(--noir);border-color:var(--blanc)}
.plan.featured .plan-btn{background:var(--fluo);color:var(--noir);border-color:var(--fluo)}
.plan.featured .plan-btn:hover,.plan.featured .plan-btn:focus-visible{background:var(--coral-dark);border-color:var(--coral-dark);color:var(--primary-foreground)}
.plan-horizontal{display:grid;grid-template-columns:280px 1fr;gap:4rem;align-items:start}
.plan-seo{position:relative;padding-top:3rem}
.plan-seo-badge{position:absolute;top:-1px;left:50%;transform:translateX(-50%);background:var(--fluo);color:var(--noir);font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;font-weight:700;padding:.28rem 1.5rem;white-space:nowrap}
.plan-seo-inner{display:grid;grid-template-columns:260px 1fr;gap:4rem;align-items:start}
.plan-seo-pitch{border-left:2px solid var(--primary);padding:1.5rem 1.8rem;margin-top:1.5rem;background:color-mix(in srgb,var(--primary) 4%,transparent);border-radius:0 var(--radius) var(--radius) 0}
@supports not (color: color-mix(in srgb, red, blue)){.plan-seo-pitch{background:var(--muted)}}
.plan-seo-pitch-title{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--primary);margin-bottom:.8rem;font-weight:700}
.plan-seo-pitch-text{font-size:.85rem;color:var(--muted-foreground);line-height:1.75}
.plan-seo-pitch-text strong{color:var(--foreground)}
.plan-seo-pitch-fine{font-size:.7rem;color:var(--muted-foreground);line-height:1.5;margin-top:.8rem;padding-top:.8rem;border-top:1px dashed var(--border);font-family:var(--font-mono)}
.plan-seo-pitch-fine a{color:var(--primary);text-decoration:underline;text-underline-offset:3px}

.plan-seo-guarantee{display:flex;align-items:flex-start;gap:.6rem;padding:.9rem 1rem;background:color-mix(in srgb,var(--primary) 6%,transparent);border:1px dashed color-mix(in srgb,var(--primary) 40%,transparent);border-radius:var(--radius);margin:1rem 0 1.5rem;font-family:var(--font-mono);font-size:.72rem;line-height:1.5;color:var(--foreground)}
@supports not (color: color-mix(in srgb, red, blue)){.plan-seo-guarantee{background:var(--muted);border-color:var(--primary)}}
.plan-seo-guarantee svg{flex-shrink:0;color:var(--primary);margin-top:1px}
.plan-seo-guarantee strong{color:var(--primary)}

/* Packs sectoriels (Tourisme / Restaurant) */
.pricing-grid-2-sectoriels{grid-template-columns:repeat(2,1fr)!important}
.plan-sectoriel{background:var(--card)}
@media (max-width:900px){.pricing-grid-2-sectoriels{grid-template-columns:1fr!important}}

/* Audit SEO gratuit — bloc upsell visible */
.plan-audit-free{background:color-mix(in srgb,var(--primary) 7%,var(--card));border:1.5px solid var(--primary);position:relative;overflow:hidden;padding:2.2rem 2.5rem}
@supports not (color: color-mix(in srgb, red, blue)){.plan-audit-free{background:var(--accent)}}
.audit-free-badge{position:absolute;top:-1px;right:2rem;background:var(--primary);color:var(--primary-foreground);font-family:var(--font-mono);font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;font-weight:700;padding:.3rem .9rem;border-radius:0 0 var(--radius) var(--radius)}
.audit-free-inner{display:grid;grid-template-columns:1.5fr 1fr;gap:2.5rem;align-items:center}
.audit-free-eyebrow{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.25em;text-transform:uppercase;color:var(--primary);font-weight:700;margin-bottom:.6rem}
.audit-free-title{font-family:var(--font-sans);font-size:clamp(1.4rem,2.5vw,1.8rem);font-weight:800;color:var(--foreground);letter-spacing:-.02em;margin-bottom:.8rem;line-height:1.15}
.audit-free-desc{font-size:.88rem;line-height:1.65;color:var(--muted-foreground);margin-bottom:1.2rem}
.audit-free-features{list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:.5rem 1.2rem;margin:0}
.audit-free-features li{font-family:var(--font-mono);font-size:.72rem;color:var(--foreground);display:flex;align-items:flex-start;gap:.5rem;line-height:1.45}
.audit-free-features li::before{content:'✓';color:var(--primary);font-weight:700;flex-shrink:0}
.audit-free-cta-wrap{text-align:center;display:flex;flex-direction:column;align-items:center;gap:.8rem}
.audit-free-cta{padding:1.1rem 2rem!important;font-size:.78rem!important}
.audit-free-note{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.05em;color:var(--muted-foreground)}
@media (max-width:900px){.audit-free-inner{grid-template-columns:1fr;gap:1.5rem}.audit-free-features{grid-template-columns:1fr}.plan-audit-free{padding:1.8rem}}

/* Bandeau "Devis sous 24h ouvrées" */
.pricing-promise{max-width:1280px;margin:3rem auto 0;text-align:center;padding:1rem 1.5rem;background:color-mix(in srgb,var(--primary) 6%,transparent);border:1px dashed color-mix(in srgb,var(--primary) 30%,transparent);border-radius:999px;font-family:var(--font-mono);font-size:.75rem;color:var(--foreground);letter-spacing:.02em}
@supports not (color: color-mix(in srgb, red, blue)){.pricing-promise{background:var(--accent);border-color:var(--primary)}}
.pricing-promise strong{color:var(--primary)}

/* CALCULATEUR */
.calc-section{padding:6rem 6vw 4rem;background:var(--background)}
.calc-wrap{max-width:1100px;margin:0 auto;background:var(--card);border:1px solid var(--border);border-radius:clamp(20px,2.5vw,28px);padding:clamp(2rem,4vw,3.5rem);box-shadow:0 10px 32px -12px rgba(0,0,0,.08)}
.calc-header{text-align:center;margin-bottom:3rem}
.calc-header .section-eyebrow{justify-content:center}
.calc-title{font-size:clamp(2rem,4vw,3.4rem)!important;margin-top:.8rem}
.calc-subtitle{font-size:.9rem;color:var(--muted-foreground);margin-top:1rem;max-width:560px;margin-left:auto;margin-right:auto;line-height:1.6}
.calc-form{display:flex;flex-direction:column;gap:2rem}
.calc-q{border:none;padding:0;margin:0}
.calc-q-label{font-family:var(--font-mono);font-size:.7rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--primary);margin-bottom:1rem;display:block}
.calc-options{display:flex;flex-wrap:wrap;gap:.6rem}
.calc-options-multi{flex-wrap:wrap}
.calc-option{position:relative;display:inline-flex;align-items:center;cursor:pointer;font-family:var(--font-mono);font-size:.78rem;color:var(--foreground);padding:.7rem 1.2rem;border:1px solid var(--border);border-radius:999px;background:var(--background);transition:all .25s var(--ease);user-select:none}
.calc-option input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.calc-option:hover{border-color:color-mix(in srgb,var(--primary) 40%,transparent);background:color-mix(in srgb,var(--primary) 4%,var(--background))}
.calc-option:has(input:checked){background:var(--primary);color:var(--primary-foreground);border-color:var(--primary)}
.calc-option:has(input:focus-visible){outline:2px solid var(--primary);outline-offset:2px}
@supports not (selector(:has(input:checked))){
  .calc-option input:checked + span,
  .calc-option input:checked ~ *{color:var(--primary-foreground)}
}
.calc-result{display:flex;flex-direction:column;align-items:center;text-align:center;padding:2rem 1.5rem;background:color-mix(in srgb,var(--primary) 5%,transparent);border:1px solid color-mix(in srgb,var(--primary) 25%,transparent);border-radius:var(--radius);margin-top:1rem}
@supports not (color: color-mix(in srgb, red, blue)){.calc-result{background:var(--muted);border-color:var(--primary)}}
.calc-result-label{font-family:var(--font-mono);font-size:.7rem;font-weight:700;letter-spacing:.25em;text-transform:uppercase;color:var(--primary);margin-bottom:.8rem}
.calc-result-value{font-family:var(--font-sans);font-size:clamp(2rem,5vw,3.4rem);font-weight:800;color:var(--foreground);letter-spacing:-.04em;line-height:1;display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap;justify-content:center}
.calc-result-sep{font-size:.6em;color:var(--muted-foreground);font-weight:400}
.calc-result-unit{font-size:.5em;color:var(--primary);font-weight:700;letter-spacing:.02em}
.calc-result-disclaimer{font-size:.72rem;line-height:1.55;color:var(--muted-foreground);margin-top:1rem;max-width:480px;font-family:var(--font-mono)}
.calc-cta{align-self:center;font-size:.78rem!important;padding:1.1rem 2.4rem!important;margin-top:.5rem}
.calc-rgpd{text-align:center;font-size:.68rem;line-height:1.55;color:var(--muted-foreground);max-width:600px;margin:0 auto;font-family:var(--font-mono)}
.calc-rgpd a{color:var(--primary);text-decoration:underline;text-underline-offset:3px}
@media (max-width:768px){
  .calc-options-multi{gap:.5rem}
  .calc-option{font-size:.72rem;padding:.6rem .9rem}
}

/* FAQ */
.faq-section{padding:8rem 6vw 4rem;max-width:1100px;margin:0 auto}
.faq-list{display:flex;flex-direction:column;gap:.6rem;margin-top:4rem}
.faq-item{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:border-color .25s var(--ease)}
.faq-item:hover,.faq-item[open]{border-color:color-mix(in srgb,var(--primary) 35%,transparent)}
@supports not (color: color-mix(in srgb, red, blue)){.faq-item:hover,.faq-item[open]{border-color:var(--primary)}}
.faq-item summary{cursor:pointer;padding:1.3rem 1.6rem;font-family:var(--font-sans);font-size:1rem;font-weight:700;color:var(--foreground);list-style:none;display:flex;align-items:center;justify-content:space-between;gap:1rem;letter-spacing:-.01em;line-height:1.4;transition:color .25s}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:'+';flex-shrink:0;font-size:1.4rem;font-weight:300;color:var(--primary);transition:transform .3s var(--ease);line-height:1;font-family:var(--font-mono)}
.faq-item[open] summary::after{transform:rotate(45deg)}
.faq-item summary:hover{color:var(--primary)}
.faq-item summary:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}
.faq-answer{padding:0 1.6rem 1.6rem;color:var(--muted-foreground);font-size:.92rem;line-height:1.75}
.faq-answer p{margin:0}
.faq-answer strong{color:var(--foreground);font-weight:700}
.faq-answer a{color:var(--primary);text-decoration:underline;text-underline-offset:3px}

/* TESTI */
.testi-section{padding:10rem 6vw}
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:5rem}
.testi-card{border:1px solid var(--gris);padding:2.5rem;transition:border-color .3s,transform .4s var(--ease);background:var(--card)}
.testi-card:hover{border-color:rgba(var(--fluo-rgb),.4);transform:translateY(-4px)}
.testi-stars{color:var(--orange);font-size:.95rem;letter-spacing:.15em;margin-bottom:1rem}
.testi-quote{font-family:var(--font-sans);font-size:4rem;font-weight:800;color:rgba(var(--fluo-rgb),.15);line-height:.8;margin-bottom:1.2rem}
.testi-text{font-size:.9rem;line-height:1.8;color:var(--muted-foreground);margin-bottom:2rem;font-style:italic}
.testi-author{display:flex;align-items:center;gap:1rem;border-top:1px solid var(--gris);padding-top:1.5rem}
.testi-av{width:40px;height:40px;border-radius:50%;background:rgba(var(--fluo-rgb),.1);border:1px solid rgba(var(--fluo-rgb),.3);display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;color:var(--fluo);flex-shrink:0}
.testi-name{font-family:var(--font-sans);font-size:.85rem;font-weight:700;color:var(--blanc)}
.testi-co{font-size:.75rem;color:var(--muted-foreground);margin-top:.2rem}

/* CTA */
.cta-section{padding:10rem 6vw;background:var(--fluo);text-align:center;position:relative;overflow:hidden}
.cta-watermark{position:absolute;font-family:var(--font-sans);font-weight:800;font-size:60vw;color:rgba(0,0,0,.05);top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;line-height:1;user-select:none}
.cta-eyebrow{font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;color:var(--noir);margin-bottom:1.5rem;display:flex;align-items:center;gap:10px;justify-content:center;position:relative;z-index:1}
.cta-eyebrow::before{content:'';width:16px;height:1px;background:var(--noir)}
.cta-title{font-family:var(--font-sans);font-weight:800;font-size:clamp(2.5rem,6vw,6rem);letter-spacing:-.05em;line-height:.9;color:var(--noir);margin-bottom:1.5rem;position:relative;z-index:1}
.cta-sub{font-size:.95rem;color:var(--noir);max-width:520px;margin:0 auto 3rem;line-height:1.65;position:relative;z-index:1}
.cta-section :focus-visible{outline-color:var(--noir);outline-width:3px}
.btn-dark{font-family:var(--font-mono);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;background:var(--noir);color:var(--fluo);padding:1rem 2.5rem;text-decoration:none;display:inline-block;transition:transform .3s,box-shadow .3s;min-height:44px;position:relative;z-index:1}
.btn-dark:hover,.btn-dark:focus-visible{transform:translateY(-3px);box-shadow:0 12px 32px rgba(0,0,0,.3)}

/* FOOTER */
footer{background:var(--noir);padding:4rem 6vw;border-top:1px solid var(--gris)}
.foot-inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:2rem}
.foot-logo{font-family:var(--font-sans);font-weight:800;font-size:1.2rem;letter-spacing:-.04em;color:var(--blanc)}
.foot-logo .d{color:var(--orange)}
.foot-tagline{font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted-foreground);margin-top:.4rem}
.foot-links{display:flex;gap:2rem;list-style:none}
.foot-links a{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-foreground);text-decoration:none;transition:color .3s;padding:.8rem 0;display:inline-block;min-height:44px;line-height:1.5}
.foot-links a:hover,.foot-links a:focus-visible{color:var(--fluo)}
.foot-copy{font-size:.7rem;letter-spacing:.06em;color:var(--muted-foreground)}
.foot-copy a{color:inherit;text-decoration:underline;text-decoration-color:var(--border);text-underline-offset:3px}
.foot-copy a:hover{color:var(--fluo);text-decoration-color:var(--fluo)}
.cursor-blink{display:inline-block;width:2px;height:.8em;background:var(--fluo);margin-left:3px;vertical-align:middle}
@keyframes caret-blink{0%,49%{opacity:1}50%,100%{opacity:0}}
@media (prefers-reduced-motion:no-preference){
  .nav-logo-cursor,.cursor-blink{animation:caret-blink 1.06s infinite}
}

/* FORMULAIRE */
.form-overlay{position:fixed;inset:0;z-index:1000;background:color-mix(in srgb, var(--background) 97%, transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);display:flex;align-items:flex-start;justify-content:center;padding:2rem;overflow-y:auto;opacity:0;visibility:hidden;transition:opacity .35s var(--ease),visibility .35s}
@supports not (background: color-mix(in srgb, red, blue)) { .form-overlay{background:var(--background)} }
.form-overlay.open{opacity:1;visibility:visible}
.form-overlay[hidden]{display:none}
.form-inner{width:100%;max-width:680px;position:relative;padding:5rem 0 6rem;border:none}
.form-progress{position:fixed;top:0;left:0;right:0;height:2px;background:rgba(245,245,240,.08);z-index:10}
.form-progress-bar{height:100%;background:var(--fluo);transition:width .5s var(--ease);width:12.5%}
.form-close{position:fixed;top:1.5rem;right:1.5rem;width:44px;height:44px;background:rgba(245,245,240,.06);border:1px solid var(--gris);color:var(--blanc);display:flex;align-items:center;justify-content:center;transition:background .3s,border-color .3s;z-index:11}
.form-close:hover,.form-close:focus-visible{background:rgba(var(--fluo-rgb),.12);border-color:var(--fluo)}
.form-step{display:none;border:none;animation:fadeUp .4s var(--ease)}
.form-step.active{display:block}
.form-step-num{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--orange);font-size:.72rem;font-weight:700;color:var(--noir);margin-bottom:1.4rem}
.form-q{font-family:var(--font-sans);font-size:clamp(1.4rem,3vw,2rem);font-weight:700;color:var(--blanc);line-height:1.2;margin-bottom:1.8rem;letter-spacing:-.02em;padding:0}
.form-q strong{color:var(--fluo)}
.form-required{color:var(--orange);margin-left:4px}
.form-hint{font-size:.85rem;color:var(--muted-foreground);line-height:1.65;margin-bottom:1.5rem;margin-top:-.8rem}
.form-choices{display:flex;flex-direction:column;gap:.6rem;margin-bottom:2rem;max-width:560px}
.form-choice{display:flex;align-items:center;gap:1rem;padding:.95rem 1.2rem;background:rgba(245,245,240,.03);border:1px solid var(--gris);color:var(--foreground);font-size:.95rem;transition:background .2s,border-color .2s,color .2s;border-radius:4px;min-height:48px}
.form-choice input[type="radio"]{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.form-choice:hover{background:rgba(var(--fluo-rgb),.06);border-color:rgba(var(--fluo-rgb),.3);color:var(--blanc)}
.form-choice:has(input:focus-visible){outline:2px solid var(--fluo);outline-offset:2px}
.form-choice:has(input:checked),.form-choice.selected{background:rgba(var(--fluo-rgb),.1);border-color:var(--fluo);color:var(--fluo)}
.form-choice-key{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:1.5px solid var(--gris);font-size:.65rem;font-weight:700;color:var(--blanc);flex-shrink:0;border-radius:4px}
.form-choice:has(input:checked) .form-choice-key,.form-choice.selected .form-choice-key{background:var(--fluo);border-color:var(--fluo);color:var(--noir)}
.form-textarea{width:100%;max-width:680px;background:transparent;border:none;border-bottom:1px solid var(--gris);color:var(--blanc);font-family:var(--font-mono);font-size:1.05rem;padding:.5rem 0;resize:vertical;outline:none;margin-bottom:1.5rem;transition:border-color .3s;min-height:120px}
.form-textarea::placeholder{color:var(--muted-foreground)}
.form-textarea:focus{border-bottom-color:var(--fluo)}
.form-fields{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:2rem;max-width:560px}
.form-field label{display:block;font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;color:var(--blanc);margin-bottom:.5rem}
.form-field input{width:100%;background:transparent;border:none;border-bottom:1px solid var(--gris);color:var(--blanc);font-family:var(--font-mono);font-size:1rem;padding:.6rem 0;outline:none;transition:border-color .3s;min-height:40px}
.form-field input::placeholder{color:var(--muted-foreground)}
.form-field input:focus{border-bottom-color:var(--fluo)}
.form-field input:invalid:not(:placeholder-shown){border-bottom-color:var(--orange)}
.form-next{font-family:var(--font-mono);font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;background:var(--fluo);color:var(--noir);border:none;padding:.95rem 2rem;display:inline-flex;align-items:center;gap:10px;transition:background .3s,gap .3s;min-height:44px}
.form-next:hover,.form-next:focus-visible{background:var(--coral-dark);gap:14px}
.form-next:disabled{opacity:.5;cursor:not-allowed}
.form-confirm{text-align:center;padding:3rem 0;display:none}
.form-confirm.active{display:block}
.form-confirm-icon{width:64px;height:64px;border-radius:50%;background:var(--fluo);color:var(--noir);font-size:2rem;display:flex;align-items:center;justify-content:center;margin:0 auto 2rem}
.form-nav-bottom{position:fixed;bottom:2rem;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:2rem;z-index:11}
.form-prev{font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-foreground);background:none;border:none;display:inline-flex;align-items:center;gap:7px;transition:color .3s;min-height:32px;padding:.4rem .6rem}
.form-prev:hover,.form-prev:focus-visible{color:var(--blanc)}
.form-step-count{font-size:.65rem;letter-spacing:.1em;color:var(--muted-foreground)}

/* REVEAL — safe-fail : contenu visible par défaut, animation jouée si JS pose .visible */
.reveal.visible{animation:revealUp .9s var(--ease) both}
.reveal-d1.visible{animation-delay:.1s}
.reveal-d2.visible{animation-delay:.2s}
.reveal-d3.visible{animation-delay:.3s}

/* KEYFRAMES */
@keyframes fadeUp{to{opacity:1;transform:translateY(0)}}
@keyframes slideUp{to{transform:translateY(0)}}
@keyframes scanLine{0%{left:-100%}100%{left:100%}}
@keyframes revealUp{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}
@keyframes revealLeft{from{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:none}}

/* SCROLL MARGIN */
#services,#perf,#projets,#blog,#pricing,#contact,#pricing-sites,#pricing-consulting,#pricing-seo,#hero-tablet,.stack-section,.testi-section{scroll-margin-top:80px}

/* RESPONSIVE */
@media(max-width:1100px){.pricing-grid-5{grid-template-columns:repeat(2,1fr)}.plan-seo-inner{grid-template-columns:1fr}.plan-horizontal{grid-template-columns:1fr}.blog-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.nav-links{display:none}.process-inner{grid-template-columns:1fr;gap:4rem}.process-visual{display:none}.proj-grid{grid-template-columns:1fr}.proj-card:nth-child(1){grid-column:auto;aspect-ratio:4/3}.testi-grid{grid-template-columns:1fr}.blog-grid{grid-template-columns:1fr}.pricing-grid-5,.pricing-grid-3{grid-template-columns:1fr}.stats-grid{grid-template-columns:1fr 1fr}.stat-item{padding-left:0;border-right:none;border-bottom:1px solid var(--gris)}.stat-item:nth-child(odd){border-right:1px solid var(--gris);padding-right:2rem}.stat-item:nth-child(even){padding-left:2rem}.foot-inner{flex-direction:column;text-align:center}.services-section,.process-section,.stack-section,.portfolio-section,.blog-section,.pricing-section,.testi-section,.cta-section{padding:6rem 6vw}.hero{min-height:90vh;padding:5rem 5vw 3rem}.hero-corner{width:32px;height:32px}.hero-corner-tl{top:4rem;left:3vw}.hero-corner-br{bottom:4rem;right:3vw}}

/* ════════════════════════════════════
   MOBILE FINE-TUNING (≤ 768px)
   Hiérarchie, densité et affordance scroll
════════════════════════════════════ */
@media (max-width:768px){
  /* NAV — bouton compact, gap logo↔bouton */
  nav#nav{padding:0 4vw;grid-template-columns:auto auto;justify-content:space-between;column-gap:.8rem}
  .nav-projet-btn{font-size:.56rem;padding:.5rem .85rem;min-height:36px;letter-spacing:.08em;gap:6px;flex-shrink:0;width:max-content;justify-self:end;white-space:nowrap}
  .nav-projet-btn svg{width:10px;height:9px}
  .nav-logo{font-size:1.15rem}

  /* HERO — eyebrow réduit, titre boosté, trait scroll plus bas */
  .hero{padding:4rem 5vw 1.2rem;min-height:80vh}
  .hero-content-centered{gap:0}
  .hero-eyebrow{font-size:.55rem;padding:.42rem .9rem;letter-spacing:.22em;margin-bottom:1.4rem;gap:8px}
  .hero-eyebrow::before,.hero-eyebrow::after{width:12px}
  .hero-title-shutter{font-size:clamp(2.6rem,11vw,4.4rem);letter-spacing:-.05em;margin-top:.4rem}
  .hero-scroll-indicator{margin-top:4.5rem;gap:.7rem}
  .hero-scroll-indicator-line{height:62px}

  /* TABLETTE — marges réduites avant/après + trait animé en bas pour affordance scroll */
  .hero-tablet-section{padding:1.2rem 4vw 2.4rem}
  .hero-tablet-section::after{content:'';position:absolute;left:50%;bottom:.4rem;transform:translateX(-50%);width:1.5px;height:46px;background:linear-gradient(to bottom,transparent,var(--primary) 40%,var(--primary));border-radius:2px;pointer-events:none}
  .hero-tablet-section::before{content:'';position:absolute;left:50%;top:auto;bottom:calc(46px + .4rem - 6px);transform:translateX(-50%);width:5px;height:5px;background:var(--primary);border-radius:50%;box-shadow:0 0 8px rgba(var(--orange-rgb),.6);animation:scrollDotMobile 1.8s cubic-bezier(.4,0,.2,1) infinite;pointer-events:none;z-index:2}
  @keyframes scrollDotMobile{0%{bottom:calc(46px + .4rem);opacity:0}20%{opacity:1}80%{opacity:1}100%{bottom:calc(.4rem - 6px);opacity:0}}

  /* HERO OUTRO — top serré pour suivre la tablette */
  .hero-outro{padding:1.5rem 5vw 3rem;gap:1.4rem}
}
@media (max-width:768px) and (prefers-reduced-motion:reduce){
  .hero-tablet-section::before{animation:none}
}
@media(max-width:480px){.stats-grid{grid-template-columns:1fr}.stat-item{border-right:none!important;padding-left:0!important;padding-right:0!important}.hero-actions{flex-direction:column;align-items:center;width:100%}.hero-actions .btn-primary,.hero-actions .btn-ghost{width:100%;text-align:center;justify-content:center}}

/* PREFERS REDUCED MOTION : kill heavy anims */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .reveal{opacity:1!important;transform:none!important}
  .hero-title-line{transform:none!important;opacity:1!important}
  .hero-eyebrow,.hero-sub,.hero-actions,.hero-scroll,.hero-stats{opacity:1!important;transform:none!important}
  .marquee-track{animation:none!important}
  .cursor-dot,.cursor-ring{display:none!important}
  .cursor-blink,.nav-logo-cursor{animation:none!important}
}

/* HIGH CONTRAST MODE */
@media (prefers-contrast:more){
  :root{--gris-light:#d0d0d0}
  .hero-sub,.srv-content p,.process-step-desc,.testi-text,.plan-features li,.blog-excerpt{color:var(--foreground)}
}

/* Radar supprimé — remplacé par le shutter text effect dans le hero */
