  /* ─── RESET & BASE ─── */
  *, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
  html { scroll-behavior:smooth; }
  body {
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    background: #0a0c10;
    color: #e2e6f0;
    line-height: 1.65;
    overflow-x: hidden;
  }
  a { text-decoration: none; color: inherit; }
  img { display: block; max-width: 100%; }
  button { font-family: inherit; cursor: pointer; }
  input, select, textarea { font: inherit; }
  html.menu-open, html.menu-open body { overflow: hidden; }
  .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
  .skip-link { position: fixed; top: -48px; left: 16px; z-index: 2000; background: var(--accent); color: #000; padding: .8rem 1rem; border-radius: 999px; font-weight: 800; transition: top .2s ease; }
  .skip-link:focus { top: 12px; }
  .progress-bar { position: fixed; inset: 0 auto auto 0; height: 3px; width: 0; background: linear-gradient(90deg, var(--accent), #ffd166); z-index: 1600; box-shadow: 0 0 18px rgba(255,140,66,.4); }
  .backtop { position: fixed; right: 18px; bottom: 18px; width: 48px; height: 48px; border-radius: 50%; border: 1px solid rgba(255,255,255,.12); background: rgba(6,8,16,.82); color: var(--white); display: inline-flex; align-items: center; justify-content: center; backdrop-filter: blur(14px); box-shadow: 0 12px 30px rgba(0,0,0,.28); opacity: 0; visibility: hidden; transform: translateY(10px); transition: opacity .25s ease, transform .25s ease, visibility .25s ease, border-color .2s ease; z-index: 1200; }
  .backtop:hover { border-color: var(--accent); color: var(--accent); }
  .backtop.on { opacity: 1; visibility: visible; transform: translateY(0); }

  /* ─── VARIABLES ─── */
  :root {
    --bg:      #0a0c10;
    --bg2:     #0f1219;
    --bg3:     #14182200;
    --surface: #161b25;
    --surface2:#1c2233;
    --white:   #ffffff;
    --text:    #e2e6f0;
    --muted:   #7a8499;
    --accent:  #ff8c42;
    --accent2: #e67a35;
    --red:     #ff8c42;
    --border:  rgba(255,255,255,.08);
    --borderA: rgba(255,140,66,.2);
    --r: 8px;
    --rL: 14px;
  }

  .container { max-width: 1280px; margin: 0 auto; padding: 0 40px; }
  section { padding: 90px 0; }

  /* ─── TOPBAR ─── */
  .topbar {
    background: #060810;
    border-bottom: 1px solid var(--border);
    padding: .5rem 0;
    font-size: .82rem;
    color: var(--muted);
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 500;
    transition: transform .35s ease, opacity .35s ease;
  }
  .topbar.hidden {
    transform: translateY(-100%);
    opacity: 0;
    pointer-events: none;
  }
  .topbar-inner {
    max-width: 1280px; margin: 0 auto; padding: 0 40px;
    display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: .5rem;
  }
  .topbar a { color: var(--muted); transition: color .2s; }
  .topbar a:hover { color: var(--accent); }
  .topbar-left { display: flex; gap: 1.75rem; align-items: center; }
  .topbar-right { display: flex; gap: .75rem; align-items: center; }
  .t-sep { color: var(--border); }

  /* topbar social icons */
  .tsoc {
    display: flex; align-items: center; justify-content: center;
    width: 26px; height: 26px; border-radius: 50%;
    border: 1px solid rgba(255,255,255,.12);
    transition: border-color .2s, background .2s;
  }
  .tsoc svg { width: 12px; height: 12px; fill: var(--muted); transition: fill .2s; }
  .tsoc:hover { border-color: var(--accent); background: var(--accent); }
  .tsoc:hover svg { fill: #000; }

  /* ─── NAV ─── */
  .nav-wrap {
    position: fixed; top: 36px; width: 100%; z-index: 1000;
    transition: all .35s ease;
  }
  /* nav transparente au-dessus du hero uniquement */
  .nav-wrap.at-top { background: transparent; box-shadow: none; }
  .nav-wrap.scrolled {
    top: 0;
    background: rgba(6,8,16,.96);
    backdrop-filter: blur(18px);
    box-shadow: 0 2px 30px rgba(0,0,0,.5);
    border-bottom: 1px solid var(--border);
  }
  .nav-inner {
    max-width: 1280px; margin: 0 auto; padding: 0 40px;
    display: flex; align-items: center; justify-content: space-between;
    height: 68px;
  }
  .logo {
    font-size: 1.3rem; font-weight: 800; letter-spacing: -.5px;
    color: var(--white);
    display: flex; align-items: center; gap: .5rem;
  }
  .logo-dot {
    width: 9px; height: 9px; border-radius: 50%;
    background: var(--accent);
    box-shadow: 0 0 12px var(--accent);
    animation: blink 2s ease infinite;
  }
  @keyframes blink { 0%,100% { opacity:1; } 50% { opacity:.3; } }
  .logo span { color: var(--accent); }

  .nav-links { list-style: none; display: flex; align-items: center; gap: .1rem; }
  .nav-links a {
    font-size: .88rem; font-weight: 500;
    color: rgba(255,255,255,.7);
    padding: .5rem .9rem; border-radius: 6px;
    transition: color .2s, background .2s;
    display: block;
  }
  .nav-links a:hover { color: var(--white); background: rgba(255,255,255,.06); }
  .nav-cta-btn {
    background: var(--accent); color: #000 !important; font-weight: 700 !important;
    border-radius: 50px !important; padding: .55rem 1.4rem !important;
    transition: transform .2s, box-shadow .2s !important;
    animation: ctaPulse 2.6s ease infinite;
  }
  .nav-cta-btn:hover { transform: translateY(-2px) !important; box-shadow: 0 6px 22px rgba(255,140,66,.4) !important; }
  @keyframes ctaPulse { 0%,100%{box-shadow:0 0 0 0 rgba(255,140,66,.45)} 55%{box-shadow:0 0 0 9px rgba(255,140,66,0)} }

  .mob-btn {
    display: none; background: none; border: 1px solid var(--border);
    color: var(--white); width: 42px; height: 42px; border-radius: 8px;
    font-size: 1.25rem; align-items: center; justify-content: center;
    transition: border-color .2s;
  }
  .mob-btn:hover { border-color: var(--accent); }

  /* ─── HERO ─── */
  .hero {
    position: relative;
    min-height: 100svh;
    display: flex; align-items: center; justify-content: center;
    text-align: center;
    overflow: hidden;
    background: var(--bg);
  }
  /* Canvas particules */
  /* ─── CANVAS LIGNES LED AMBIENT ─── */
  #ambientLines {
    position: fixed; inset: 0; width: 100%; height: 100%;
    pointer-events: none; z-index: 1;
    mix-blend-mode: screen; opacity: .28;
  }

  #particles {
    position: absolute; inset: 0; z-index: 1;
    pointer-events: all;
  }
  /* Vignette overlay */
  .hero-vignette {
    position: absolute; inset: 0; z-index: 2; pointer-events: none;
    background:
      radial-gradient(ellipse 70% 50% at 50% 100%, rgba(255,140,66,.06) 0%, transparent 65%),
      radial-gradient(ellipse 100% 100% at 50% 50%, transparent 40%, rgba(10,12,16,.8) 100%);
  }
  .hero-content {
    position: relative; z-index: 3;
    max-width: 860px; padding: 0 24px;
    /* décalage pour la topbar + nav */
    padding-top: 80px;
  }

  /* Eyebrow pill */
  .eyebrow {
    display: inline-flex; align-items: center; gap: .5rem;
    border: 1px solid rgba(255,140,66,.35);
    border-radius: 50px; padding: .32rem 1rem;
    font-size: .75rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase;
    color: var(--accent); margin-bottom: 1.8rem;
    animation: fadeUp .6s ease both;
  }
  .eyebrow-dot { width: 5px; height: 5px; border-radius: 50%; background: var(--accent); animation: blink 1.8s ease infinite; }

  .hero-title {
    font-size: clamp(3.2rem, 7vw, 6.5rem);
    font-weight: 900; letter-spacing: -3px; line-height: 1;
    color: var(--white); margin-bottom: 1.4rem;
    animation: fadeUp .7s .1s ease both;
  }
  .hero-title .hl {
    background: linear-gradient(100deg, var(--accent) 0%, #ffc07a 50%, var(--accent) 100%);
    background-size: 200%;
    -webkit-background-clip: text; -webkit-text-fill-color: transparent;
    animation: shimmer 5s linear infinite;
  }
  @keyframes shimmer { to { background-position: 200% center; } }

  .hero-sub {
    font-size: clamp(1rem, 2vw, 1.25rem); font-weight: 300;
    color: rgba(255,255,255,.6); max-width: 600px; margin: 0 auto 2.5rem;
    animation: fadeUp .7s .18s ease both;
  }

  /* CTA buttons */
  .hero-btns {
    display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap;
    margin-bottom: 4rem;
    animation: fadeUp .7s .28s ease both;
  }
  .btn {
    display: inline-flex; align-items: center; gap: .45rem;
    padding: .9rem 2rem; border-radius: 50px;
    font-size: .95rem; font-weight: 700; border: none; cursor: pointer;
    transition: transform .25s, box-shadow .25s;
    position: relative; overflow: hidden;
  }
  .btn::after {
    content: ''; position: absolute; inset: 0;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,.18), transparent);
    transform: translateX(-130%); transition: transform .5s;
  }
  .btn:hover::after { transform: translateX(130%); }
  .btn-primary { background: var(--accent); color: #000; box-shadow: 0 0 24px rgba(255,140,66,.25); }
  .btn-primary:hover { transform: translateY(-3px); box-shadow: 0 10px 36px rgba(255,140,66,.45); }
  .btn-outline {
    border: 1.5px solid rgba(255,255,255,.22); color: var(--white);
    background: rgba(255,255,255,.05); backdrop-filter: blur(8px);
  }
  .btn-outline:hover { border-color: var(--accent); color: var(--accent); transform: translateY(-3px); background: rgba(255,140,66,.07); }

  /* Stats strip dans le hero — exactement comme PLF */
  .hero-stats {
    display: inline-flex; gap: 0;
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 12px; overflow: hidden;
    background: rgba(255,255,255,.03);
    backdrop-filter: blur(12px);
    animation: fadeUp .7s .4s ease both;
  }
  .hstat {
    padding: 1.25rem 2.2rem; text-align: center;
    border-right: 1px solid rgba(255,255,255,.1);
    transition: background .25s;
  }
  .hstat:last-child { border-right: none; }
  .hstat:hover { background: rgba(255,140,66,.07); }
  .hstat-val {
    font-size: 2rem; font-weight: 900; color: var(--accent);
    line-height: 1; display: block; margin-bottom: .2rem;
  }
  .hstat-label { font-size: .75rem; color: var(--muted); font-weight: 500; white-space: nowrap; }

  /* scroll caret */
  .scroll-caret {
    position: absolute; bottom: 2rem; left: 50%; transform: translateX(-50%);
    z-index: 3; display: flex; flex-direction: column; align-items: center; gap: .4rem;
    color: rgba(255,255,255,.3); font-size: .68rem; letter-spacing: .12em; text-transform: uppercase;
    animation: fadeUp .7s .6s ease both;
  }
  .caret-line { width: 1px; height: 38px; background: linear-gradient(to bottom, transparent, rgba(255,140,66,.5)); animation: caretAnim 2s ease infinite; }
  @keyframes caretAnim { 0%{transform:scaleY(0);transform-origin:top} 50%{transform:scaleY(1);transform-origin:top} 50.01%{transform:scaleY(1);transform-origin:bottom} 100%{transform:scaleY(0);transform-origin:bottom} }

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

  /* ─── SECTION : Des écrans pour… (cards usages) ─── */
  #usages { background: var(--bg2); }
  .section-header { text-align: center; margin-bottom: 3.5rem; }
  .section-kicker {
    display: inline-flex; align-items: center; gap: .5rem;
    font-size: .72rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
    color: var(--accent); margin-bottom: .9rem;
  }
  .section-kicker::before { content: ''; width: 20px; height: 2px; background: var(--accent); border-radius: 2px; }
  .section-title {
    font-size: clamp(2rem, 4vw, 3.2rem); font-weight: 800; letter-spacing: -1.5px;
    color: var(--white); line-height: 1.1; margin-bottom: .9rem;
  }
  .section-sub { font-size: 1.05rem; color: var(--muted); max-width: 580px; margin: 0 auto; }

  /* Grille 2×2 comme PLF */
  .usage-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
  }
  .usage-card {
    position: relative; border-radius: var(--rL); overflow: hidden;
    min-height: 360px;
    cursor: pointer;
    transition: transform .4s cubic-bezier(.16,1,.3,1);
  }
  .usage-card:hover { transform: translateY(-6px); }
  .usage-card img {
    width: 100%; height: 100%; object-fit: cover;
    transition: transform .7s ease, filter .4s;
    filter: brightness(.65) saturate(1.1);
  }
  .usage-card:hover img { transform: scale(1.06); filter: brightness(.75) saturate(1.25); }
  .usage-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,.9) 0%, rgba(0,0,0,.3) 55%, transparent 100%);
    display: flex; flex-direction: column; justify-content: flex-end;
    padding: 2rem 1.75rem;
  }
  .usage-tag {
    display: inline-block; font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
    color: var(--accent); border: 1px solid var(--borderA); border-radius: 50px;
    padding: .22rem .7rem; margin-bottom: .75rem; width: fit-content;
    background: rgba(255,140,66,.08);
  }
  .usage-title { font-size: 1.45rem; font-weight: 800; color: var(--white); margin-bottom: .4rem; letter-spacing: -.5px; }
  .usage-desc { font-size: .88rem; color: rgba(255,255,255,.65); line-height: 1.6; margin-bottom: 1rem; }
  .usage-link {
    display: inline-flex; align-items: center; gap: .4rem;
    font-size: .82rem; font-weight: 700; color: var(--accent);
    transition: gap .22s;
  }
  .usage-card:hover .usage-link { gap: .7rem; }
  .usage-link-arrow { font-size: .85rem; }

  /* ─── SECTION À PROPOS – texte + image côte à côte ─── */
  #about {
    background: var(--bg);
  }
  .about-grid {
    display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center;
  }
  .about-img {
    position: relative; border-radius: var(--rL); overflow: hidden;
    aspect-ratio: 4/3;
  }
  .about-img img {
    width: 100%; height: 100%; object-fit: cover;
    transition: transform .6s ease;
    filter: brightness(.88);
  }
  .about-img:hover img { transform: scale(1.04); }
  .about-img-badge {
    position: absolute; bottom: 1.25rem; left: 1.25rem;
    background: var(--accent); color: #000;
    font-size: .75rem; font-weight: 700; letter-spacing: .08em;
    padding: .35rem .9rem; border-radius: 50px;
  }
  .about-text .section-kicker { justify-content: flex-start; }
  .about-text .section-title { text-align: left; }
  .about-text p {
    font-size: .97rem; color: var(--muted); line-height: 1.8; margin-bottom: 1rem;
  }
  .about-text p strong { color: var(--text); }
  .about-checks { margin: 1.5rem 0; display: flex; flex-direction: column; gap: .65rem; }
  .check-item {
    display: flex; align-items: flex-start; gap: .7rem;
    font-size: .92rem; color: var(--text);
  }
  .check-icon {
    width: 20px; height: 20px; border-radius: 50%;
    background: rgba(255,140,66,.12); border: 1px solid var(--borderA);
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0; margin-top: .15rem;
    font-size: .65rem; color: var(--accent);
  }

  /* ─── CHIFFRES CLÉS ─── */
  #chiffres {
    background: var(--surface);
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    padding: 70px 0;
  }
  .chiffres-row {
    display: grid; grid-template-columns: repeat(4,1fr);
    gap: 0;
    border: 1px solid var(--border); border-radius: var(--rL); overflow: hidden;
    background: var(--border);
  }
  .chiffre {
    background: var(--surface); padding: 2.2rem 1.5rem; text-align: center;
    position: relative; transition: background .3s;
  }
  .chiffre::after {
    content: ''; position: absolute; bottom: 0; left: 20%; right: 20%; height: 2px;
    background: linear-gradient(90deg,transparent,var(--accent),transparent);
    opacity: 0; transition: opacity .3s;
  }
  .chiffre:hover { background: var(--surface2); }
  .chiffre:hover::after { opacity: 1; }
  .chiffre-num {
    font-size: 3.5rem; font-weight: 900; letter-spacing: -2px;
    background: linear-gradient(135deg, var(--accent), #ffc07a);
    -webkit-background-clip: text; -webkit-text-fill-color: transparent;
    line-height: 1; display: block; margin-bottom: .4rem;
  }
  .chiffre-label { font-size: .9rem; color: var(--muted); font-weight: 500; }
  .chiffre-sub { font-size: .75rem; color: rgba(122,132,153,.55); margin-top: .15rem; }

  /* ─── TÉMOIGNAGES ─── */
  #temoignages { background: var(--bg2); }
  /* ─── TÉMOIGNAGES DÉFILANTS ─── */
  .testi-marquee-wrap {
    overflow: hidden;
    position: relative;
    mask-image: linear-gradient(90deg, transparent 0%, black 8%, black 92%, transparent 100%);
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, black 8%, black 92%, transparent 100%);
  }
  .testi-marquee-wrap:hover .testi-track { animation-play-state: paused; }
  .testi-track {
    display: flex;
    gap: 1.25rem;
    width: max-content;
    animation: marqueeScroll 60s linear infinite;
  }
  @keyframes marqueeScroll {
    0%   { transform: translateX(0); }
    100% { transform: translateX(-50%); }
  }
  .testi-card {
    background: var(--surface); border: 1px solid var(--border);
    border-radius: var(--rL); padding: 1.75rem;
    width: 360px; flex-shrink: 0;
    transition: border-color .3s, box-shadow .3s;
  }
  .testi-card:hover { border-color: var(--borderA); box-shadow: 0 16px 40px rgba(255,140,66,.07); }
  .testi-stars { color: var(--accent); font-size: .85rem; letter-spacing: .1em; margin-bottom: .9rem; }
  .testi-quote { font-size: .88rem; color: var(--muted); line-height: 1.75; margin-bottom: 1.4rem; font-style: italic; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
  .testi-foot { display: flex; align-items: center; gap: .7rem; }
  .testi-av {
    width: 38px; height: 38px; border-radius: 50%;
    background: rgba(255,140,66,.1); border: 1.5px solid var(--borderA);
    display: flex; align-items: center; justify-content: center;
    font-weight: 800; font-size: .8rem; color: var(--accent); flex-shrink: 0;
  }
  .testi-foot strong { display: block; font-size: .86rem; color: var(--white); }
  .testi-foot span { font-size: .76rem; color: var(--muted); }
  .testi-google-badge {
    display: flex; align-items: center; gap: .5rem; justify-content: center;
    margin-top: 2.5rem; color: var(--muted); font-size: .82rem;
  }
  .testi-google-badge svg { width: 18px; height: 18px; }

  /* ─── PRESTATIONS / SERVICES GRID ─── */
  #services { background: var(--bg); }
  .services-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.25rem; }
  .service-card {
    background: var(--surface); border: 1px solid var(--border);
    border-radius: var(--rL); padding: 2rem 1.75rem;
    position: relative; overflow: hidden;
    transition: transform .35s cubic-bezier(.16,1,.3,1), border-color .3s, box-shadow .3s;
  }
  /* sweep lumineux */
  .service-card::before {
    content: ''; position: absolute; top: -60%; left: -60%; width: 50%; height: 220%;
    background: linear-gradient(90deg, transparent, rgba(255,140,66,.06), transparent);
    transform: skewX(-18deg) translateX(-100px); transition: transform .6s ease;
  }
  .service-card:hover::before { transform: skewX(-18deg) translateX(580px); }
  /* filet bas */
  .service-card::after {
    content: ''; position: absolute; bottom: 0; left: 10%; right: 10%; height: 2px;
    background: linear-gradient(90deg,transparent,var(--accent),transparent);
    opacity: 0; transition: opacity .32s;
  }
  .service-card:hover { transform: translateY(-8px); border-color: var(--borderA); box-shadow: 0 20px 50px rgba(255,140,66,.09); }
  .service-card:hover::after { opacity: 1; }
  .svc-icon {
    width: 48px; height: 48px; border-radius: 10px;
    background: rgba(255,140,66,.1); border: 1px solid var(--borderA);
    display: flex; align-items: center; justify-content: center;
    font-size: 1.35rem; margin-bottom: 1.25rem;
    transition: transform .3s cubic-bezier(.34,1.56,.64,1), background .28s;
  }
  .service-card:hover .svc-icon { transform: scale(1.12) rotate(-5deg); background: rgba(255,140,66,.2); }
  .svc-title { font-size: 1.05rem; font-weight: 700; color: var(--white); margin-bottom: .55rem; }
  .svc-desc { font-size: .88rem; color: var(--muted); line-height: 1.72; }

  /* ─── RÉSEAUX SOCIAUX ─── */
  #social { background: var(--bg2); }
  .social-grid {
    display: grid; grid-template-columns: repeat(4,1fr); gap: 1px;
    background: var(--border); border-radius: var(--rL); overflow: hidden;
  }
  .soc-card {
    background: var(--surface); padding: 2.25rem 1.5rem; text-align: center;
    position: relative; overflow: hidden; cursor: pointer;
    transition: background .35s;
  }
  .soc-card::before { content: ''; position: absolute; inset: 0; opacity: 0; transition: opacity .35s; }
  .soc-card.s-fb::before  { background: linear-gradient(135deg,#1877F2,#0d5fc7); }
  .soc-card.s-ig::before  { background: linear-gradient(135deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888); }
  .soc-card.s-yt::before  { background: linear-gradient(135deg,#FF0000,#cc0000); }
  .soc-card.s-li::before  { background: linear-gradient(135deg,#0A66C2,#084e96); }
  .soc-card:hover::before { opacity: 1; }
  .soc-card > * { position: relative; z-index: 1; }
  .soc-card svg { width: 34px; height: 34px; margin: 0 auto .9rem; transition: transform .3s cubic-bezier(.34,1.56,.64,1); }
  .soc-card:hover svg { transform: scale(1.2) rotate(-5deg); }
  .soc-card h4 { font-size: 1rem; font-weight: 700; color: var(--white); margin-bottom: .25rem; }
  .soc-card p { font-size: .8rem; color: var(--muted); transition: color .3s; }
  .soc-card:hover p, .soc-card:hover h4 { color: rgba(255,255,255,.9); }
  .soc-follow {
    display: inline-block; margin-top: .9rem; padding: .25rem .8rem;
    border: 1px solid var(--borderA); border-radius: 50px;
    font-size: .7rem; font-weight: 700; letter-spacing: .07em; color: var(--accent);
    transition: all .25s;
  }
  .soc-card:hover .soc-follow { background: rgba(255,255,255,.15); color: #fff; border-color: transparent; }

 /* ─── CTA BAND ─── */
.cta-band {
  background: linear-gradient(135deg, #ff8c42, #ff9f5c, #ffb347);
  padding: 78px 0;
  text-align: center;
  position: relative;
  overflow: hidden;
  box-shadow: 0 30px 80px rgba(255,140,66,.22);
}

/* Texte en noir pour bien contraster sur fond orange */
.cta-band h2,
.cta-band p {
  color: #1f1304 !important;   /* Noir profond */
  position: relative;
  z-index: 3;
}

.cta-band h2 {
  font-size: clamp(2rem, 3.8vw, 3rem);
  font-weight: 900;
  letter-spacing: -1.4px;
  margin-bottom: .7rem;
  text-shadow: 0 1px 2px rgba(255,255,255,0.4);
}

.cta-band p {
  font-size: 1.05rem;
  margin-bottom: 1.85rem;
  opacity: 0.95;
}

/* Bouton sombre (déjà bien visible) */
.cta-band .btn-dark {
  background: rgba(10,12,16,.95);
  color: #fff !important;
  border: 1px solid rgba(255,255,255,.15);
  box-shadow: 0 14px 34px rgba(0,0,0,.3);
}

.cta-band .btn-dark:hover {
  transform: translateY(-3px);
  box-shadow: 0 18px 42px rgba(0,0,0,.4);
}

/* On supprime les anciens motifs noirs */
.cta-band::before,
.cta-band::after {
  display: none;
}
  /* ─── CONTACT / DEVIS ─── */
  #devis { background: var(--bg); }
  .contact-grid { display: grid; grid-template-columns: 1fr 1.6fr; gap: 2.5rem; align-items: start; }
  .contact-aside { display: flex; flex-direction: column; gap: 1rem; }
  .cblock {
    background: var(--surface); border: 1px solid var(--border);
    border-radius: var(--rL); padding: 1.5rem;
    transition: border-color .3s, transform .28s;
  }
  .cblock:hover { border-color: var(--borderA); transform: translateX(4px); }
  .cblock-icon { font-size: 1.4rem; margin-bottom: .55rem; }
  .cblock-lbl { font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin-bottom: .3rem; }
  .cblock-val a { font-size: .95rem; font-weight: 600; color: var(--accent); transition: opacity .2s; }
  .cblock-val a:hover { opacity: .75; }
  .cblock-val p { font-size: .82rem; color: var(--muted); margin-top: .2rem; }
  .map-wrap { border-radius: 8px; overflow: hidden; margin-top: .75rem; border: 1px solid var(--border); }

  .form-wrap {
    background: var(--surface); border: 1px solid var(--border);
    border-radius: var(--rL); padding: 2.25rem;
  }
  .form-wrap h3 { font-size: 1.6rem; font-weight: 800; letter-spacing: -.5px; color: var(--white); margin-bottom: .3rem; }
  .form-wrap .fsub { font-size: .88rem; color: var(--muted); margin-bottom: 1.75rem; }
  .frow { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
  .fg { margin-bottom: 1.1rem; }
  .fg label { display: block; font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin-bottom: .38rem; }
  .fg input, .fg select, .fg textarea {
    width: 100%; padding: .78rem 1rem;
    background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1);
    border-radius: 8px; color: var(--white);
    font-family: inherit; font-size: .92rem;
    transition: border-color .25s, background .25s, box-shadow .25s;
  }
  .fg input:hover, .fg select:hover, .fg textarea:hover { background: rgba(255,255,255,.07); }
  .fg input:focus, .fg select:focus, .fg textarea:focus {
    outline: none; border-color: var(--accent);
    background: rgba(255,140,66,.05); box-shadow: 0 0 0 3px rgba(255,140,66,.1);
  }
  .fg select {
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%237a8499' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 1rem center; padding-right: 2.5rem;
  }
  .fg select option { background: #1a1f2e; color: var(--white); }
  .fg textarea { resize: vertical; min-height: 96px; }
  .fsubmit {
    width: 100%; padding: .95rem; background: var(--accent); color: #000;
    border: none; border-radius: 50px; font-size: .95rem; font-weight: 700;
    cursor: pointer; margin-top: .5rem;
    transition: all .3s; position: relative; overflow: hidden;
  }
  .fsubmit::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent); transform:translateX(-130%); transition:transform .5s; }
  .fsubmit:hover::after { transform: translateX(130%); }
  .fsubmit:hover { background: var(--accent2); transform: translateY(-2px); box-shadow: 0 8px 26px rgba(255,140,66,.3); }
  .fsubmit:disabled { opacity: .6; cursor: not-allowed; transform: none; }
  .fnote { font-size: .72rem; color: var(--muted); text-align: center; margin-top: .65rem; }
  .fsuccess { display:none; background:rgba(255,140,66,.08); border:1px solid var(--borderA); padding:1.75rem; border-radius:var(--rL); text-align:center; margin-top:1.25rem; }
  .fsuccess.on { display:block; animation: fadeUp .4s ease; }
  .ferror { display:none; background:rgba(255,60,60,.08); border:1px solid rgba(255,60,60,.3); padding:.85rem 1.2rem; border-radius:8px; font-size:.86rem; color:#ff7070; margin-top:.75rem; }
  .ferror.on { display:block; }

  /* ─── FOOTER ─── */

  /* ─── FAQ / rassurance ─── */
  #faq { background: var(--bg); }
  .faq-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: 2rem; align-items: start; }
  .faq-list { display: grid; gap: 1rem; }
  .faq-item {
    border: 1px solid var(--border);
    background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
    border-radius: 18px;
    overflow: hidden;
    transition: border-color .25s ease, transform .25s ease, box-shadow .25s ease;
  }
  .faq-item:hover { transform: translateY(-2px); border-color: var(--borderA); box-shadow: 0 18px 40px rgba(0,0,0,.18); }
  .faq-question {
    width: 100%; border: 0; background: transparent; color: var(--white);
    display: flex; align-items: center; justify-content: space-between; gap: 1rem;
    text-align: left; padding: 1.2rem 1.3rem; font-size: 1rem; font-weight: 700;
  }
  .faq-icon { flex: 0 0 auto; width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--borderA); display: inline-flex; align-items: center; justify-content: center; color: var(--accent); transition: transform .25s ease, background .25s ease; }
  .faq-item.open .faq-icon { transform: rotate(45deg); background: rgba(255,140,66,.1); }
  .faq-answer { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .28s ease; }
  .faq-item.open .faq-answer { grid-template-rows: 1fr; }
  .faq-answer > div { overflow: hidden; }
  .faq-answer p { padding: 0 1.3rem 1.25rem; color: var(--muted); }
  .faq-side {
    border: 1px solid var(--borderA); border-radius: 22px; padding: 1.6rem;
    background: radial-gradient(circle at top right, rgba(255,140,66,.12), transparent 35%), rgba(255,255,255,.03);
    position: sticky; top: 110px;
  }
  .faq-badges { display: flex; flex-wrap: wrap; gap: .75rem; margin: 1.1rem 0 1.3rem; }
  .faq-badge { padding: .6rem .85rem; border-radius: 999px; border: 1px solid var(--border); color: var(--white); background: rgba(255,255,255,.04); font-size: .82rem; }
  .faq-cta { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.2rem; }

  /* ─── Formulaire amélioré ─── */
  .frow-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
  .fg label { display:block; margin-bottom: .5rem; color: var(--white); font-weight: 600; font-size: .94rem; }
  .fg small { display:block; margin-top: .45rem; color: var(--muted); font-size: .8rem; }
  .fg input, .fg select, .fg textarea {
    width: 100%; border-radius: 12px; border: 1px solid rgba(255,255,255,.1);
    background: rgba(255,255,255,.03); color: var(--white); padding: .95rem 1rem;
    outline: none; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
  }
  .fg textarea { resize: vertical; min-height: 150px; }
  .fg input::placeholder, .fg textarea::placeholder { color: #8e97ab; }
  .fg input:focus, .fg select:focus, .fg textarea:focus { border-color: var(--accent); box-shadow: 0 0 0 4px rgba(255,140,66,.12); background: rgba(255,255,255,.05); }
  .fg.is-invalid input, .fg.is-invalid select, .fg.is-invalid textarea { border-color: #ff6b6b; box-shadow: 0 0 0 4px rgba(255,107,107,.12); }
  .field-error { display:none; margin-top: .45rem; color: #ff9c9c; font-size: .82rem; }
  .fg.is-invalid .field-error { display:block; }
  .form-check {
    display: flex; align-items: flex-start; gap: .8rem; margin: .75rem 0 1rem;
    padding: .95rem 1rem; border-radius: 14px; border: 1px solid rgba(255,255,255,.08);
    background: rgba(255,255,255,.03);
  }
  .form-check input { margin-top: .2rem; accent-color: var(--accent); }
  .form-check label { margin: 0; font-weight: 500; color: var(--muted); line-height: 1.55; }
  .form-meta { display:flex; justify-content: space-between; gap: 1rem; align-items:center; flex-wrap: wrap; margin-top: 1rem; }
  .fnote { margin: 0; }
  .form-status { display:none; margin-top: 1rem; padding: 1rem 1.1rem; border-radius: 14px; border: 1px solid transparent; }
  .form-status.on { display:block; }
  .fsuccess { background: rgba(31, 183, 92, .1); border-color: rgba(31, 183, 92, .24); }
  .ferror { background: rgba(255, 107, 107, .08); border-color: rgba(255, 107, 107, .22); color: #ffd0d0; }

  @media (max-width: 980px) {
    .faq-grid, .frow-3 { grid-template-columns: 1fr; }
    .faq-side { position: static; }
  }

  footer {
    background: var(--bg2);
    border-top: 1px solid var(--border);
    padding: 56px 0 0;
  }
  .footer-grid { display: grid; grid-template-columns: 1.7fr 1fr 1fr 1fr; gap: 2.5rem; margin-bottom: 2.5rem; }
  .footer-about .logo { margin-bottom: .9rem; font-size: 1.2rem; }
  .footer-about p { font-size: .86rem; color: var(--muted); line-height: 1.8; max-width: 250px; }
  .footer-socials { display: flex; gap: .6rem; margin-top: 1.2rem; flex-wrap: wrap; }
  .fsoc {
    width: 36px; height: 36px; border-radius: 8px;
    background: var(--surface); border: 1px solid var(--border);
    display: flex; align-items: center; justify-content: center;
    transition: transform .28s cubic-bezier(.34,1.56,.64,1), box-shadow .28s, background .25s, border-color .25s;
  }
  .fsoc svg { width: 15px; height: 15px; fill: var(--white); }
  .fsoc:hover { transform: translateY(-4px) scale(1.08); border-color: transparent; }
  .fsoc.fb:hover { background: #1877F2; box-shadow: 0 6px 18px rgba(24,119,242,.4); }
  .fsoc.ig:hover { background: linear-gradient(135deg,#f09433,#dc2743,#bc1888); box-shadow: 0 6px 18px rgba(220,39,67,.35); }
  .fsoc.yt:hover { background: #FF0000; box-shadow: 0 6px 18px rgba(255,0,0,.4); }
  .fsoc.li:hover { background: #0A66C2; box-shadow: 0 6px 18px rgba(10,102,194,.4); }
  .footer-col h5 { font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--white); margin-bottom: 1rem; }
  .footer-col a { display: block; font-size: .86rem; color: var(--muted); margin-bottom: .5rem; transition: color .2s, padding-left .2s; }
  .footer-col a:hover { color: var(--accent); padding-left: 4px; }
  .footer-bottom {
    border-top: 1px solid var(--border); padding: 1.4rem 0;
    display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1rem;
  }
  .footer-bottom p { font-size: .78rem; color: var(--muted); }
  .footer-legal { display: flex; gap: 1.5rem; }
  .footer-legal a { font-size: .78rem; color: var(--muted); cursor: pointer; transition: color .2s; }
  .footer-legal a:hover { color: var(--accent); }

  /* ─── COOKIE BANNER ─── */
  .cookie-banner {
    position: fixed; bottom: 0; left: 0; right: 0; z-index: 7000;
    background: rgba(9,11,18,.97); backdrop-filter: blur(20px);
    border-top: 1px solid var(--border);
    padding: 1rem 2rem; display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap;
    transform: translateY(110%); opacity: 0; pointer-events: none;
    transition: transform .45s cubic-bezier(.16,1,.3,1), opacity .4s;
  }
  .cookie-banner.on { transform: translateY(0); opacity: 1; pointer-events: all; }
  .cookie-banner p { flex:1; font-size:.83rem; color:var(--muted); line-height:1.6; min-width:180px; }
  .cookie-banner p a { color:var(--accent); text-decoration:underline; cursor:pointer; }
  .cbtns { display: flex; gap: .6rem; flex-shrink: 0; }
  .cbtn { padding:.48rem 1.25rem; border-radius:50px; font-size:.8rem; font-weight:700; border:none; cursor:pointer; font-family:inherit; transition:all .22s; }
  .cb-yes { background:var(--accent); color:#000; }
  .cb-yes:hover { background:var(--accent2); transform:translateY(-2px); }
  .cb-no  { background:transparent; color:var(--muted); border:1px solid var(--border); }
  .cb-no:hover  { border-color:var(--muted); color:var(--white); }

  /* ─── MODAL ─── */
  .modal-bg {
    position:fixed; inset:0; background:rgba(0,0,0,.85); backdrop-filter:blur(12px);
    z-index:8000; display:flex; align-items:center; justify-content:center;
    padding:1.5rem; opacity:0; pointer-events:none; transition:opacity .3s;
  }
  .modal-bg.on { opacity:1; pointer-events:all; }
  .modal-box {
    background:var(--surface); border:1px solid var(--border);
    border-radius:var(--rL); max-width:760px; width:100%; max-height:86vh;
    overflow-y:auto; padding:2.25rem;
    transform:translateY(22px); transition:transform .3s;
    scrollbar-width:thin; scrollbar-color:var(--accent) transparent;
  }
  .modal-bg.on .modal-box { transform:translateY(0); }
  .modal-box::-webkit-scrollbar { width:4px; }
  .modal-box::-webkit-scrollbar-thumb { background:var(--accent); border-radius:4px; }
  .modal-head { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:1.75rem; border-bottom:1px solid var(--border); padding-bottom:1.4rem; gap:1rem; }
  .modal-head h2 { font-size:1.5rem; color:var(--white); }
  .modal-close { background:var(--surface2); border:1px solid var(--border); color:var(--muted); width:34px; height:34px; border-radius:8px; font-size:.9rem; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:all .2s; flex-shrink:0; }
  .modal-close:hover { background:var(--accent); color:#000; border-color:var(--accent); }
  .modal-body h3 { font-size:.95rem; color:var(--accent); margin:1.5rem 0 .5rem; padding-bottom:.35rem; border-bottom:1px solid var(--border); }
  .modal-body p, .modal-body li { font-size:.86rem; color:var(--muted); line-height:1.8; margin-bottom:.45rem; }
  .modal-body ul { margin-left:1.5rem; }
  .modal-body strong { color:var(--text); }

  /* ─── RESPONSIVE ─── */

  /* ── Tablette large (≤ 1100px) ── */
  @media (max-width: 1100px) {
    .usage-grid { grid-template-columns: 1fr 1fr; }
    .about-grid { grid-template-columns: 1fr; gap: 2.5rem; }
    .about-img { aspect-ratio: 16/7; }
    .chiffres-row { grid-template-columns: repeat(2, 1fr); }
    .footer-grid { grid-template-columns: 1fr 1fr; gap: 2rem; }
    .contact-grid { grid-template-columns: 1fr; }
    .social-grid { grid-template-columns: repeat(2, 1fr); }
    .services-grid { grid-template-columns: repeat(2, 1fr); }
  }

  /* ── Tablette / Mobile (≤ 768px) ── */
  @media (max-width: 768px) {
    /* Nav */
    .nav-links { display: none; }
    .mob-btn { display: flex; }
    .nav-wrap { top: 0 !important; }
    .nav-links.open {
      display: flex; flex-direction: column; position: fixed; inset: 0;
      background: rgba(9, 11, 18, .97); backdrop-filter: blur(20px);
      padding: 100px 2rem 2rem; z-index: 999;
      align-items: center; gap: 1.2rem; overflow-y: auto;
    }
    .nav-links.open a { font-size: 1.2rem; color: var(--white); padding: .65rem 1.2rem; }
    .nav-links.open .nav-cta-btn { margin-top: .5rem; font-size: 1rem !important; }

    /* Général */
    section { padding: 55px 0; }
    .container { padding: 0 16px; }
    .topbar { display: none; }

    /* Hero */
    .hero-content { padding: 0 16px; padding-top: 90px; }
    .hero-title--flex { letter-spacing: -1px; }
    .hero-title-line1 { white-space: normal; word-break: break-word; }
    .hero-title-line2 { white-space: normal; font-size: clamp(1.4rem, 5vw, 2.2rem) !important; }
    .hero-sub {
      margin-top: 2.5rem !important;
      white-space: normal !important;
      font-size: .95rem;
      padding: 0 8px;
    }
    .hero-btns { flex-direction: column; align-items: center; gap: .75rem; }
    .hero-btns .btn { width: 100%; max-width: 340px; justify-content: center; }
    .hero-stats {
      flex-direction: column; border: none !important;
      background: transparent !important; gap: 0; width: 100%;
    }
    .hstat {
      border-right: none !important;
      border-bottom: 1px solid rgba(255, 255, 255, .1);
      padding: .9rem 1.5rem;
    }
    .hstat:last-child { border-bottom: none; }
    .hero-card-strip {
      grid-template-columns: 1fr !important;
      gap: .7rem; margin-top: 1.5rem;
    }
    .mini-card { padding: 1rem 1.1rem; }

    /* Grilles */
    .usage-grid { grid-template-columns: 1fr; }
    .usage-card { min-height: 240px; }
    .services-grid { grid-template-columns: 1fr; }
    .social-grid { grid-template-columns: 1fr 1fr; }
    .footer-grid { grid-template-columns: 1fr; }
    .chiffres-row { grid-template-columns: repeat(2, 1fr); }

    /* Formulaire */
    .frow { grid-template-columns: 1fr; }
    .frow-3 { grid-template-columns: 1fr; }
    .form-wrap { padding: 1.4rem; }
    .contact-grid { grid-template-columns: 1fr; }

    /* Chiffres */
    #chiffres { padding: 48px 0; }
    .chiffre { padding: 1.5rem 1rem; }
    .chiffre-num { font-size: 2.8rem; }

    /* FAQ */
    .faq-grid { grid-template-columns: 1fr; }
    .faq-side { position: static; }
    .faq-why-grid { grid-template-columns: 1fr !important; }
    .faq-why { padding: 1.5rem 1.25rem !important; }

    /* Zone intervention */
    .local-grid { grid-template-columns: 1fr; }
    .local-cta-band { flex-direction: column; align-items: flex-start; }
    .local-cta-band .btn { width: 100%; justify-content: center; }
    .contact-quick { grid-template-columns: 1fr; }
    .local-trust-band { flex-direction: column; gap: 1rem; }
    .local-card { padding: 1.5rem; }

    /* Footer */
    .footer-bottom { flex-direction: column; align-items: flex-start; gap: .75rem; }
    .footer-legal { flex-wrap: wrap; gap: .9rem; }
    .footer-about p { max-width: 100%; }

    /* Cookie */
    .cookie-banner { flex-direction: column; gap: .8rem; padding: 1rem 16px; }

    /* CTA band */
    .cta-band { padding: 50px 0; }
    .cta-band h2 { font-size: clamp(1.6rem, 5vw, 2.4rem); }

    /* Sticky CTA */
    .sticky-cta { width: calc(100vw - 20px); justify-content: space-between; }

    /* Modal */
    .modal-box { padding: 1.5rem; max-height: 90vh; }
    .modal-head h2 { font-size: 1.2rem; }

    /* Marquee témoignages */
    .testi-card { width: 300px; }
  }

  /* ── Mobile portrait (≤ 480px) ── */
  @media (max-width: 480px) {
    .container { padding: 0 14px; }
    .hero-title { font-size: clamp(2rem, 9vw, 3rem) !important; }
    .hero-title--flex { letter-spacing: -.5px; }
    .hero-title-line1 { font-size: clamp(2rem, 9vw, 3rem); }
    .hero-title-line2 { font-size: clamp(1.1rem, 5vw, 1.7rem) !important; }
    .social-grid { grid-template-columns: 1fr; }
    .chiffres-row { grid-template-columns: 1fr 1fr; }
    .chiffre-num { font-size: 2.4rem; }
    .hstat-val { font-size: 1.7rem; }
    .section-title { font-size: clamp(1.6rem, 6vw, 2.4rem); letter-spacing: -.3px; }
    .testi-card { width: 270px; padding: 1.2rem; }
    .fsubmit { font-size: .88rem; }
    .btn { padding: .78rem 1.4rem; font-size: .88rem; }
    .mini-card strong { font-size: .92rem; }
    .mini-card span { font-size: .83rem; }
    .form-wrap { padding: 1.1rem; }
    .cblock { padding: 1rem; }
    .faq-why { padding: 1.2rem !important; }
    .faq-side { padding: 1.25rem; }
    .local-pill { font-size: .8rem; padding: .5rem .75rem; }
    .local-card { padding: 1.1rem; }
    .about-img { aspect-ratio: 16/9; }
    .footer-grid { gap: 1.5rem; }
    .section-header { margin-bottom: 2rem; }
    .usage-card { min-height: 210px; }
  }

  /* ── Très petit (≤ 360px) ── */
  @media (max-width: 360px) {
    .container { padding: 0 12px; }
    .hero-btns .btn { font-size: .82rem; padding: .72rem 1rem; }
    .hero-card-strip { gap: .5rem; }
    .chiffres-row { grid-template-columns: 1fr; }
    .social-grid { grid-template-columns: 1fr; }
    .faq-badges { gap: .45rem; }
    .faq-badge { font-size: .74rem; padding: .4rem .6rem; }
    .trust-badges b { font-size: .78rem; padding: .55rem .75rem; }
  }

  /* ─── HERO TITLE CLASSES (remplace inline styles) ─── */
  .hero-title--flex {
    display: flex; flex-direction: column; align-items: center; text-align: center;
    letter-spacing: -3px;
  }
  .hero-title-line1 {
    display: block;
    opacity: 0.70;
    text-shadow: -2px -2px 0 #000, 2px -2px 0 #000, -2px 2px 0 #000, 2px 2px 0 #000, 0 0 12px rgba(0,0,0,0.8);
  }
  .hero-title-line1 .hl {
    -webkit-text-fill-color: #ff8c42;
    text-shadow: -2px -2px 0 #000, 2px -2px 0 #000, -2px 2px 0 #000, 2px 2px 0 #000, 0 0 12px rgba(0,0,0,0.9);
  }
  .hero-title-line2 {
    display: block;
    align-self: center;
    font-size: clamp(1.6rem, 3.5vw, 3.2rem);
    letter-spacing: -1px;
    font-weight: 700;
  }
  .hero-sub {
    margin-top: 8rem;
  }

  /* ─── FAQ WHY GRID ─── */
  .faq-why-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 1.2rem;
  }
  .reveal, .reveal-group > * {
    opacity: 0;
    transition: opacity .75s cubic-bezier(.16,1,.3,1), transform .75s cubic-bezier(.16,1,.3,1);
  }
  .reveal.visible, .reveal-group.visible > * {
    opacity: 1 !important;
    transform: none !important;
  }
  .reveal-group.visible > *:nth-child(1) { transition-delay:.05s; }
  .reveal-group.visible > *:nth-child(2) { transition-delay:.13s; }
  .reveal-group.visible > *:nth-child(3) { transition-delay:.21s; }
  .reveal-group.visible > *:nth-child(4) { transition-delay:.29s; }
  .reveal-group.visible > *:nth-child(5) { transition-delay:.37s; }
  .reveal-group.visible > *:nth-child(6) { transition-delay:.45s; }
  @media (max-width: 640px) {
    .container, .topbar-inner, .nav-inner { padding-left: 16px; padding-right: 16px; }
    .form-meta { align-items: flex-start; }
    .backtop { right: 14px; bottom: 14px; }
    .hero-sub { margin-top: 2rem !important; }
  }

  @media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  }


  /* ─── PREMIUM / SEO LOCAL ADDITIONS ─── */
  .premium-orb{position:absolute;border-radius:50%;filter:blur(12px);pointer-events:none;opacity:.65;mix-blend-mode:screen}
  .premium-orb--1{width:340px;height:340px;right:8%;top:16%;background:radial-gradient(circle,#ff8c4280,transparent 68%)}
  .premium-orb--2{width:260px;height:260px;left:10%;bottom:8%;background:radial-gradient(circle,#6ea8ff33,transparent 70%)}
  .hero::before{content:'';position:absolute;inset:auto 8% 12% auto;width:min(520px,42vw);height:min(520px,42vw);background:radial-gradient(circle,rgba(255,140,66,.13),transparent 62%);filter:blur(6px);pointer-events:none}
  .eyebrow{box-shadow:inset 0 0 0 1px rgba(255,255,255,.08),0 12px 40px rgba(0,0,0,.18)}
  .hero-card-strip{margin-top:2rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;max-width:980px;width:100%;animation:fadeUp .7s .52s ease both}
  .mini-card{padding:1.15rem 1.25rem;border:1px solid rgba(255,140,66,.25);border-radius:18px;background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,.05));backdrop-filter:blur(14px);text-align:left;box-shadow:0 12px 34px rgba(0,0,0,.25),inset 0 1px 0 rgba(255,255,255,.12)}
  .mini-card strong{display:block;color:#ffffff;font-size:1.05rem;margin-bottom:.35rem;font-weight:700;letter-spacing:.01em}
  .mini-card span{font-size:.92rem;color:#c8d0e0;line-height:1.55}
  .premium-divider{height:1px;background:linear-gradient(90deg,transparent,rgba(255,140,66,.45),transparent);margin:0 auto;width:min(1180px,calc(100% - 40px))}
  .section-shell{position:relative;overflow:hidden}
  .section-shell::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at top right,rgba(255,140,66,.06),transparent 32%);pointer-events:none}
  .local-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:1.5rem;align-items:stretch}
  .local-card,.local-list,.local-cta-band,.local-trust-band{border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.025));border-radius:24px;box-shadow:0 24px 60px rgba(0,0,0,.18)}
  .local-card{padding:2rem}
  .local-card p + p{margin-top:.8rem}
  .local-pills{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.15rem}
  .local-pill{padding:.7rem .95rem;border:1px solid rgba(255,255,255,.08);border-radius:999px;background:rgba(255,255,255,.04);font-weight:700;color:#f5f7fb;font-size:.9rem}
  .local-list{padding:1.4rem}
  .local-list h3{font-size:1.1rem;margin-bottom:1rem}
  .local-list ul{list-style:none;display:grid;gap:.8rem}
  .local-list li{padding:.9rem 1rem;border-radius:16px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.05);color:var(--text)}
  .local-list small{display:block;color:var(--muted);margin-top:.2rem}
  .local-cta-band{margin-top:1.5rem;padding:1.4rem 1.6rem;display:flex;justify-content:space-between;align-items:center;gap:1rem}
  .local-trust-band{margin-top:1.5rem;padding:1rem 1.25rem;display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;justify-content:space-between}
  .trust-band span{color:var(--muted);font-size:.95rem}
  .trust-badges{display:flex;flex-wrap:wrap;gap:.7rem}
  .trust-badges b{padding:.72rem .95rem;border-radius:999px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);font-size:.88rem}
  .contact-quick{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1.25rem}
  .contact-quick a,.contact-quick div{padding:1rem 1.1rem;border-radius:18px;border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.035)}
  .contact-quick strong{display:block;margin-bottom:.25rem;color:var(--white)}
  .sticky-cta{position:fixed;left:50%;transform:translateX(-50%);bottom:18px;z-index:1190;display:flex;align-items:center;gap:.9rem;padding:.85rem 1rem;border-radius:999px;background:rgba(7,9,16,.84);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.1);box-shadow:0 18px 50px rgba(0,0,0,.32);opacity:0;visibility:hidden;transition:.25s ease;max-width:calc(100vw - 24px)}
  .sticky-cta.on{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
  .sticky-cta-copy{display:flex;flex-direction:column;line-height:1.1}
  .sticky-cta-copy strong{font-size:.95rem;color:var(--white)}
  .sticky-cta-copy span{font-size:.78rem;color:var(--muted)}
  .sticky-cta .btn{padding:.78rem 1.2rem;white-space:nowrap}
  .footer-bottom{border-top:1px solid rgba(255,255,255,.08)}
  @media (max-width: 980px) {
    .hero-card-strip, .local-grid, .contact-quick { grid-template-columns: 1fr; }
    .local-cta-band, .local-trust-band { align-items: flex-start; flex-direction: column; }
    .sticky-cta { width: calc(100vw - 20px); justify-content: space-between; }
    .faq-grid, .frow-3 { grid-template-columns: 1fr; }
    .faq-side { position: static; }
  }
  @media (max-width: 640px) {
    .hero-card-strip { gap: .75rem; }
    .mini-card { padding: .95rem; }
    .sticky-cta-copy { display: none; }
    .sticky-cta .btn { padding: .82rem 1rem; }
    .local-card { padding: 1.25rem; }
  }



/* ─── CARTE IMPLANTATION ─── */
.carte-section { padding: 90px 0; }
.carte-img-wrap {
  margin-top: 2.5rem;
  border-radius: 20px;
  overflow: hidden;
  border: 1px solid rgba(255,140,66,.2);
  box-shadow: 0 24px 60px rgba(0,0,0,.35), 0 0 0 1px rgba(255,255,255,.05);
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}
.carte-img-wrap img {
  width: 100%;
  height: auto;
  display: block;
  transition: transform .5s ease;
}
.carte-img-wrap:hover img { transform: scale(1.01); }

/* VIDEO CTA */
.cta-band {
  position: relative;
  overflow: hidden;
}

.cta-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 1;
}

.cta-overlay {
  position: absolute;
  inset: 0;
  background: rgba(10,12,16,0.65);
  z-index: 2;
}

.cta-band .container {
  position: relative;
  z-index: 3;
}
