@font-face{font-family:'Overused Grotesk';font-weight:400;font-display:swap;src:url('fonts/OverusedGrotesk-Roman.woff2') format('woff2')}
@font-face{font-family:'Overused Grotesk';font-weight:500;font-display:swap;src:url('fonts/OverusedGrotesk-Medium.woff2') format('woff2')}
@font-face{font-family:'Overused Grotesk';font-weight:600;font-display:swap;src:url('fonts/OverusedGrotesk-SemiBold.woff2') format('woff2')}
@font-face{font-family:'Overused Grotesk';font-weight:700;font-display:swap;src:url('fonts/OverusedGrotesk-Bold.woff2') format('woff2')}
@font-face{font-family:'Swear Display';font-weight:700;font-display:swap;src:url('fonts/SwearDisplay-Bold.otf') format('opentype')}

/* Design system SL Medias (brand book officiel Ekla).
   "Plonge dans la vague numerique": la vague est la signature graphique.
   Navy #122647 = structure (60-30); bleu #264fab = action (le 10%, CTA + liens);
   #5985e8 = decoratif SEULEMENT (jamais texte, AA); beige #f5f2eb = chaleur.
   Titres = Swear Display; corps/UI = Overused Grotesk. */
:root{
  --bg:#f5f2eb; --bg-alt:#ffffff; --surface:#ffffff;
  --ink:#122647; --ink-invert:#ffffff; --muted:#5a6b85; --muted-invert:#c4d2ec;
  --brand:#122647; --accent:#264fab; --accent-dk:#1d3f8c; --accent-hi:#5985e8; --accent-soft:#d1e3ff; --border:#dfe6f1;
  --font-display:'Swear Display',Georgia,'Times New Roman',serif;
  --font-body:'Overused Grotesk',system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --fs-display:clamp(2.6rem,1.30rem + 5.8vw,5rem);
  --fs-h1:clamp(2rem,1.45rem + 2.44vw,2.986rem);
  --fs-h2:clamp(1.65rem,1.20rem + 1.9vw,2.45rem);
  --fs-h3:clamp(1.25rem,1.11rem + 0.62vw,1.5rem);
  --fs-lead:clamp(1.15rem,1.04rem + 0.5vw,1.4rem);
  --fs-body:clamp(1rem,0.96rem + 0.20vw,1.125rem);
  --fs-small:clamp(0.833rem,0.82rem + 0.05vw,0.875rem);
  --container:1180px; --container-wide:1240px; --section-y:clamp(2.6rem,5vw,4.25rem); --gutter:clamp(1rem,4vw,2rem);
  --radius-sm:10px; --radius-md:14px; --radius-lg:22px; --radius-pill:999px;
  --shadow-sm:0 2px 10px rgba(18,38,71,.06); --shadow-md:0 16px 48px rgba(18,38,71,.10); --shadow-lg:0 30px 80px rgba(18,38,71,.16);
}
*{box-sizing:border-box}
/* overflow-x:clip = aucun scroll horizontal possible (marquee + decor de hero
   sont clippes), SANS creer de conteneur de scroll (le header sticky reste ok). */
html{scroll-behavior:smooth;overflow-x:clip}
body{margin:0;color:var(--ink);background:var(--bg);font-family:var(--font-body);
  font-size:var(--fs-body);line-height:1.62;overflow-wrap:break-word;-webkit-font-smoothing:antialiased;counter-reset:sec;overflow-x:clip}
img{max-width:100%;height:auto;display:block}
.wrap{max-width:var(--container);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}
section{scroll-margin-top:88px}
h1,h2,h3,h4{font-family:var(--font-display);color:var(--ink);line-height:1.08;letter-spacing:-.012em;margin:0 0 .45em;text-wrap:balance}
h1{font-size:var(--fs-h1);font-weight:700}
h2{font-size:var(--fs-h2);font-weight:700}
h3{font-size:var(--fs-h3);font-weight:700}
p{margin:0 0 1em}
a{color:var(--accent)}
ul,ol{margin:0 0 1em;padding-left:1.25em}
li{margin:.35em 0}
.eyebrow{display:inline-flex;align-items:center;font-family:var(--font-body);font-weight:600;font-size:var(--fs-small);letter-spacing:.13em;text-transform:uppercase;color:var(--accent);margin:0 0 1rem}
.eb-dot{width:8px;height:8px;border-radius:50%;background:var(--accent-hi);margin-right:.6rem;box-shadow:0 0 0 4px rgba(89,133,232,.22);animation:pulse 2.6s ease-in-out infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 4px rgba(89,133,232,.22)}50%{box-shadow:0 0 0 8px rgba(89,133,232,0)}}

/* Header sticky clair */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.82);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:13px;padding-bottom:13px}
.brand img{height:30px;width:auto}
.header-actions{display:flex;align-items:center;gap:18px}
.header-tel{color:var(--ink);text-decoration:none;font-weight:600;font-size:.95rem;white-space:nowrap}
.header-tel:hover{color:var(--accent)}

/* Boutons */
.btn{display:inline-block;border-radius:var(--radius-pill);padding:.95rem 1.7rem;font:600 1rem/1.2 var(--font-body);text-decoration:none;cursor:pointer;border:1.5px solid transparent;transition:background .18s,transform .18s,box-shadow .18s,border-color .18s,color .18s}
.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 12px 28px rgba(38,79,171,.32)}
.btn-primary:hover{background:var(--accent-dk);border-color:var(--accent-dk);transform:translateY(-2px);box-shadow:0 16px 34px rgba(38,79,171,.4)}
.btn-primary:active{transform:translateY(0)}
.btn:focus-visible{outline:3px solid var(--accent-hi);outline-offset:2px}
.btn-ghost{display:inline-flex;align-items:center;gap:.5rem;color:#fff;text-decoration:none;font-weight:600;padding:.55rem .2rem;border-bottom:1.5px solid rgba(255,255,255,.32);transition:border-color .18s,color .18s}
.btn-ghost:hover{border-color:#fff;color:var(--accent-soft)}

/* Breadcrumb (sur navy, colle au hero) */
.breadcrumb{background:var(--brand);font-size:.85rem;color:var(--muted-invert);padding:14px 0 0}
.breadcrumb a{color:var(--muted-invert);text-decoration:none}
.breadcrumb a:hover{color:#fff}
.breadcrumb span{margin:0 8px;color:rgba(255,255,255,.3)}
.breadcrumb [aria-current]{color:#fff}

/* Hero navy + signature vague */
.hero{position:relative;isolation:isolate;background:var(--brand);color:var(--ink-invert);padding:clamp(3.5rem,8vw,6.5rem) 0 clamp(3.5rem,7vw,6rem);overflow:hidden}
.hero-decor{position:absolute;inset:0;z-index:-1;overflow:hidden}
.blob{position:absolute;border-radius:50%;filter:blur(64px);mix-blend-mode:screen;will-change:transform}
.b1{width:52vw;height:52vw;left:-12%;top:-34%;background:radial-gradient(circle,rgba(38,79,171,.95),transparent 70%);opacity:.6;animation:drift1 24s ease-in-out infinite alternate}
.b2{width:42vw;height:42vw;right:0;top:-12%;background:radial-gradient(circle,rgba(89,133,232,.9),transparent 70%);opacity:.42;animation:drift2 28s ease-in-out infinite alternate}
.b3{width:38vw;height:38vw;left:28%;bottom:-36%;background:radial-gradient(circle,rgba(38,79,171,.9),transparent 70%);opacity:.34;animation:drift3 32s ease-in-out infinite alternate}
@keyframes drift1{to{transform:translate(8%,12%) scale(1.16)}}
@keyframes drift2{to{transform:translate(-10%,8%) scale(1.12)}}
@keyframes drift3{to{transform:translate(6%,-12%) scale(1.2)}}
.hero-lines{position:absolute;inset:0;width:100%;height:100%;opacity:.32}
.hero-lines path{fill:none;stroke:var(--accent-hi);stroke-width:1.5;stroke-linecap:round;animation:shimmer 7s ease-in-out infinite alternate}
.hero-lines path:nth-child(2){stroke:#7aa0ee;animation-duration:9.5s}
.hero-lines path:nth-child(3){stroke:var(--accent-soft);animation-duration:12s}
@keyframes shimmer{from{opacity:.2}to{opacity:.55}}
.hero .wrap{position:relative;max-width:60rem}
.hero .eyebrow{color:var(--accent-hi)}
.hero h1{font-size:var(--fs-display);font-weight:700;color:#fff;line-height:1.0;letter-spacing:-.025em;max-width:17ch;margin:0 0 .55em}
.hero-sub{font-size:var(--fs-lead);color:var(--muted-invert);max-width:44rem;margin:0 0 2rem;line-height:1.5}
.hero-sub p{margin:.4em 0}
.hero-cta{display:flex;flex-wrap:wrap;align-items:center;gap:14px 26px}
.hero-trust{list-style:none;display:flex;flex-wrap:wrap;gap:10px 12px;padding:0;margin:2.4rem 0 0}
.hero-trust li{font-size:.84rem;color:var(--accent-soft);border:1px solid rgba(209,227,255,.22);border-radius:var(--radius-pill);padding:.42rem .9rem;background:rgba(89,133,232,.08)}

/* Vague de transition entre bandes */
.wave-sep{line-height:0;overflow:hidden}
.wave-sep svg{display:block;width:100%;height:clamp(44px,6vw,92px)}

/* Ribbon zone desservie (statique, centre, wrap: zero debordement) */
.ribbon{background:var(--brand);border-top:1px solid rgba(255,255,255,.1);padding:1.15rem 0}
.ribbon .wrap{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px 12px}
.rb-pill{font-family:var(--font-body);font-weight:600;font-size:.86rem;color:var(--accent-soft);border:1px solid rgba(209,227,255,.22);background:rgba(89,133,232,.09);border-radius:var(--radius-pill);padding:.42rem .95rem;white-space:nowrap}

/* Sections + rythme */
.intro,.block,.faq,.related,.proof{padding:var(--section-y) 0;position:relative}
.intro{background:var(--bg)}
.intro .wrap{max-width:46rem}
.intro p{font-size:var(--fs-lead);color:var(--ink);max-width:42rem;line-height:1.55}
.intro .wrap::before{content:"";display:block;width:48px;height:4px;background:var(--accent);border-radius:3px;margin-bottom:1.6rem}
.block{background:var(--bg-alt)}
.block.beige{background:var(--bg)}
.block .wrap{max-width:48rem}
.block p,.block li{color:var(--ink);max-width:66ch}
/* Sections numerotees (editorial) */
.block.numbered h2{counter-increment:sec;position:relative;padding-top:.2rem}
.block.numbered h2::before{content:counter(sec,decimal-leading-zero);display:block;font-family:var(--font-body);font-weight:700;font-size:.82rem;letter-spacing:.16em;color:var(--accent);margin-bottom:.55rem}
.block.numbered h2::after{content:"";display:block;width:36px;height:3px;background:var(--accent-soft);border-radius:2px;margin:.7rem 0 .2rem}
.block.local{background:linear-gradient(180deg,var(--accent-soft),var(--bg))}
.block.local .wrap{max-width:52rem;position:relative}
.block.local .wrap::before{content:"";display:block;width:46px;height:46px;margin-bottom:1rem;border-radius:50%;background:var(--accent);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E") center/26px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E") center/26px no-repeat}

/* Grille de services (home) */
.feat-grid{display:grid;grid-template-columns:1fr;gap:18px;margin-top:1.8rem}
.feat-card{padding:clamp(1.5rem,3vw,2rem);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);position:relative;overflow:hidden;transition:transform .18s,box-shadow .18s,border-color .18s}
.feat-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,var(--accent),var(--accent-hi))}
.feat-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--accent-soft)}
.feat-card h3{margin:0 0 .35rem}
.feat-card p{margin:0;color:var(--muted);font-size:.97rem}

/* Cartes services (hub) */
.svc-grid{display:grid;grid-template-columns:1fr;gap:18px;margin-top:1.5rem}
.svc-card{display:block;padding:clamp(1.5rem,3vw,2rem);border:1px solid var(--border);border-radius:var(--radius-lg);text-decoration:none;color:var(--ink);background:var(--surface);box-shadow:var(--shadow-sm);position:relative;overflow:hidden;transition:transform .18s,box-shadow .18s,border-color .18s}
.svc-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,var(--accent),var(--accent-hi));transform:scaleY(0);transform-origin:top;transition:transform .22s}
.svc-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--accent-soft)}
.svc-card:hover::before{transform:scaleY(1)}
.svc-card h3{margin:.2rem 0 .35rem}
.svc-card .svc-go{display:inline-flex;align-items:center;gap:.4rem;color:var(--accent);font-size:.95rem;font-weight:600}
.svc-card .arr{transition:transform .18s}
.svc-card:hover .arr{transform:translateX(4px)}
.city-list{columns:2;max-width:520px;margin-top:1rem}
.city-list a{text-decoration:none}
.city-list a:hover{text-decoration:underline}
.hub-neighbor{margin-top:1.4rem;color:var(--muted)}

/* FAQ accordeon natif */
.faq{background:var(--bg)}
.faq .wrap{max-width:48rem}
.faq-list{margin-top:1.5rem}
.faq-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:.8rem;overflow:hidden;transition:box-shadow .18s,border-color .18s}
.faq-item[open]{box-shadow:var(--shadow-sm);border-color:var(--accent-soft)}
.faq-item summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.2rem 1.5rem;font:700 var(--fs-h3)/1.25 var(--font-display);color:var(--ink)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary:focus-visible{outline:3px solid var(--accent-hi);outline-offset:-3px}
.chev{position:relative;flex:0 0 18px;height:18px;transition:transform .2s}
.chev::before,.chev::after{content:"";position:absolute;top:8px;left:2px;width:14px;height:2px;background:var(--accent);border-radius:2px}
.chev::after{transform:rotate(90deg)}
.faq-item[open] .chev{transform:rotate(45deg)}
.faq-a{padding:0 1.5rem 1.3rem;color:var(--muted)}

/* Preuve reelle: temoignages + etudes de cas + badges + note */
.proof{background:var(--bg-alt)}
.proof .wrap{max-width:52rem}
/* Etoiles (note reelle seulement) */
.stars{display:inline-flex;gap:3px;vertical-align:middle}
.star{width:19px;height:19px;fill:#f5b301}
.star.empty{fill:#d9e0ec}
.rating-line{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;margin:0 0 1.6rem}
.rating-txt{color:var(--muted)}
.rating-txt strong{color:var(--ink)}
/* Temoignages en grille (cartes) */
.tgrid{display:grid;grid-template-columns:1fr;gap:16px;margin:0 0 .4rem}
.tcard{margin:0;padding:1.5rem 1.6rem;border:1px solid var(--border);border-left:3px solid var(--accent-hi);background:var(--surface);border-radius:0 var(--radius-md) var(--radius-md) 0;box-shadow:var(--shadow-sm)}
.tcard .stars{margin:0 0 .8rem}
.tcard blockquote{margin:0;font-size:1.08rem;color:var(--ink);line-height:1.55}
.tcard figcaption{color:var(--muted);font-size:.9rem;margin-top:.9rem}
.tcard figcaption strong{color:var(--ink)}
.src-tag{display:inline-block;font-size:.74rem;font-weight:600;color:var(--accent);background:var(--accent-soft);border-radius:var(--radius-pill);padding:.12rem .55rem;margin-left:.35rem;vertical-align:middle}
.case-grid{display:grid;grid-template-columns:1fr;gap:16px;margin:0 0 1.8rem}
.case{padding:1.4rem 1.6rem;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm)}
.case-head{font-family:var(--font-body);font-weight:600;font-size:var(--fs-small);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 .4rem}
.case-result{font-family:var(--font-display);font-weight:700;font-size:var(--fs-h3);color:var(--ink);margin:0 0 .4rem;line-height:1.2}
.case-detail{color:var(--ink);margin:0 0 .4rem}
.case-period{color:var(--muted);font-size:.9rem;margin:0}
.badges{list-style:none;display:flex;flex-wrap:wrap;gap:10px;padding:0;margin:1.4rem 0 0}
.badges li{display:inline-flex;align-items:center;gap:.45rem;font-weight:600;font-size:.86rem;color:var(--ink);border:1px solid var(--border);border-radius:var(--radius-pill);padding:.42rem 1rem;background:var(--bg)}
.badges li::before{content:"";width:1rem;height:1rem;flex:0 0 auto;background:var(--accent);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat}

/* ---- Composants visuels (cartes icone, stats, process, CTA milieu) ---- */
.wrap.wide,.block .wrap.wide{max-width:var(--container-wide)}
.ico{width:24px;height:24px;display:block}

/* Listes de contenu: puces a coche accent (plus vivant qu'une puce ronde) */
.block .wrap > ul:not(.city-list){list-style:none;padding-left:0}
.block .wrap > ul:not(.city-list) > li{position:relative;padding-left:1.85rem;margin:.55em 0}
.block .wrap > ul:not(.city-list) > li::before{content:"";position:absolute;left:0;top:.36em;width:1.1rem;height:1.1rem;background:var(--accent);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat}

/* Cartes a icone (sous-services) */
.vgrid{display:grid;grid-template-columns:1fr;gap:16px;margin-top:1.8rem}
.vcard{padding:1.5rem;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);transition:transform .18s,box-shadow .18s,border-color .18s}
.vcard:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--accent-soft)}
.vcard-ic{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:13px;background:var(--accent-soft);color:var(--accent);margin-bottom:1rem}
.vcard h3{margin:0 0 .4rem;font-size:var(--fs-h3)}
.vcard p{margin:0;color:var(--muted);font-size:.97rem;line-height:1.55;max-width:none}

/* Bande de resultats chiffres (preuve reelle, attribuee) */
.stats{background:var(--brand);color:#fff;padding:var(--section-y) 0;position:relative;overflow:hidden;isolation:isolate}
.stats::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(62% 120% at 82% 0,rgba(89,133,232,.34),transparent 60%)}
.stats .wrap{max-width:var(--container-wide)}
.stats h2{color:#fff;text-align:center;max-width:26ch;margin:0 auto 2rem}
.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.stat{background:rgba(255,255,255,.05);border:1px solid rgba(209,227,255,.18);border-radius:var(--radius-lg);padding:1.6rem 1.2rem;text-align:center}
.stat-val{display:block;font-family:var(--font-display);font-weight:700;font-size:clamp(2.1rem,1.3rem+3vw,3.3rem);color:#fff;line-height:1;letter-spacing:-.02em}
.stat-lab{display:block;color:var(--accent-soft);margin-top:.6rem;font-size:.96rem;line-height:1.35}
.stat-from{display:block;color:var(--muted-invert);font-size:.8rem;margin-top:.5rem;opacity:.85}
.stats-src{text-align:center;color:var(--muted-invert);font-size:.85rem;margin:1.6rem auto 0;opacity:.9;max-width:60ch}

/* Etapes du process */
.step-grid{display:grid;grid-template-columns:1fr;gap:16px;margin-top:1.8rem}
.step{position:relative;padding:1.6rem 1.5rem 1.4rem;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm)}
.step-n{position:absolute;top:1.2rem;right:1.4rem;font-family:var(--font-display);font-weight:700;font-size:1.7rem;color:var(--accent-soft);line-height:1}
.step-ic{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:var(--accent);color:#fff;margin-bottom:1rem}
.step h3{margin:0 0 .4rem;font-size:var(--fs-h3)}
.step p{margin:0;color:var(--muted);font-size:.95rem;line-height:1.55;max-width:none}

/* Bande CTA milieu de page */
.cta-band{background:linear-gradient(120deg,var(--accent),var(--accent-dk));color:#fff;padding:clamp(2.2rem,5vw,3.4rem) 0}
.cta-band .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px 32px}
.cta-band-txt{flex:1 1 320px}
.cta-band h2{color:#fff;margin:0 0 .35rem;max-width:24ch}
.cta-band-txt p{margin:0;color:rgba(255,255,255,.88);max-width:48ch}
.cta-band-act{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px}
.cta-band .btn-primary{background:#fff;color:var(--accent);border-color:#fff;box-shadow:0 12px 28px rgba(0,0,0,.18)}
.cta-band .btn-primary:hover{background:var(--accent-soft);border-color:var(--accent-soft);color:var(--accent-dk)}

/* Bande "qui on est" (vraie photo equipe = humanise) */
.about{background:var(--bg)}
.about-grid{display:grid;grid-template-columns:1fr;gap:26px;align-items:center}
.about-photo{position:relative;isolation:isolate;max-width:380px}
.about-photo::before{content:"";position:absolute;z-index:-1;left:-14px;top:-14px;width:64%;height:64%;border-radius:var(--radius-lg);background:var(--accent-soft)}
.about-photo img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);display:block}
.about-txt p{color:var(--ink);max-width:54ch}
.about-points{list-style:none;padding:0;margin:1.3rem 0 0}
.about-points li{position:relative;padding-left:1.95rem;margin:.55rem 0;color:var(--ink)}
.about-points li::before{content:"";position:absolute;left:0;top:.3em;width:1.15rem;height:1.15rem;background:var(--accent);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat}

/* Liens internes contextuels en corps */
.inline-rel{background:var(--bg);padding:0 0 var(--section-y)}
.inline-rel .wrap{max-width:48rem}
.inline-rel p{color:var(--muted);font-size:.97rem;border-top:1px solid var(--border);padding-top:1.4rem;margin:0}
.inline-rel a{color:var(--accent);text-decoration:none}
.inline-rel a:hover{text-decoration:underline}

/* Maillage interne */
.related{background:var(--bg)}
.related .wrap{display:flex;flex-wrap:wrap;gap:28px}
.related .rel-group{flex:1 1 240px;min-width:0}
.related .rel-group h3{font-family:var(--font-body);font-weight:600;font-size:var(--fs-small);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.related .rel-group ul{list-style:none;padding:0;margin:.6rem 0 0}
.related a{color:var(--accent);text-decoration:none;overflow-wrap:anywhere}
.related a:hover{text-decoration:underline}

/* Formulaire (bande navy, carte blanche) */
.lead{background:var(--brand);color:var(--ink-invert);padding:var(--section-y) 0;position:relative;overflow:hidden}
.lead::before{content:"";position:absolute;right:-8%;top:-30%;width:46%;height:160%;background:radial-gradient(closest-side,rgba(89,133,232,.32),transparent);pointer-events:none}
.lead .wrap{max-width:60rem;position:relative}
.lead .wrap.lead-grid{display:grid;grid-template-columns:1fr;gap:30px;max-width:64rem}
.lead h2{color:#fff}
.lead-sub{color:var(--muted-invert);font-size:var(--fs-lead);margin-bottom:1.6rem}
/* Colonne de confiance a cote du formulaire */
.lead-rail{min-width:0}
.rail-rating{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;margin:0 0 1.4rem}
.rail-rating .star.empty{fill:rgba(255,255,255,.28)}
.rail-rating p{margin:0;color:#fff}
.rail-quote{margin:0 0 1.4rem;padding:1.2rem 1.4rem;background:rgba(255,255,255,.06);border-left:3px solid var(--accent-hi);border-radius:0 var(--radius-md) var(--radius-md) 0}
.rail-quote blockquote{margin:0;color:#fff;font-size:1.06rem;line-height:1.55}
.rail-quote figcaption{margin-top:.8rem;color:var(--accent-soft);font-size:.88rem}
.rail-quote figcaption strong{color:#fff}
.rail-quote .src-tag{background:rgba(89,133,232,.28);color:#fff}
.rail-list{list-style:none;padding:0;margin:0 0 1.4rem}
.rail-list li{position:relative;padding-left:1.95rem;margin:.55rem 0;color:var(--muted-invert)}
.rail-list li::before{content:"";position:absolute;left:0;top:.28em;width:1.15rem;height:1.15rem;background:var(--accent-hi);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat}
.lead-rail .badges li{color:#fff;background:rgba(255,255,255,.06);border-color:rgba(209,227,255,.22)}
.lead-rail .badges li::before{background:var(--accent-hi)}
.lead-formcol{min-width:0}
.lead-form{max-width:none;width:100%;background:var(--surface);border-radius:var(--radius-lg);padding:clamp(1.6rem,4vw,2.3rem);box-shadow:var(--shadow-lg)}
.lead-form .row{display:flex;gap:16px;flex-wrap:wrap}
.lead-form label{display:block;flex:1;min-width:200px;margin:0 0 1rem;font-size:.9rem;font-weight:600;color:var(--ink)}
.lead-form input,.lead-form textarea{display:block;width:100%;margin-top:.4rem;padding:.85rem 1rem;min-height:48px;border:1.5px solid var(--border);border-radius:var(--radius-md);font:inherit;font-size:1rem;background:#fff;color:var(--ink)}
.lead-form textarea{min-height:96px;resize:vertical}
.lead-form input:focus,.lead-form textarea:focus{outline:3px solid rgba(89,133,232,.35);outline-offset:1px;border-color:var(--accent)}
.lead-form .hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.lead-form button{margin-top:.4rem;width:100%;border:0;background:var(--accent);color:#fff;border-radius:var(--radius-pill);padding:1rem 1.6rem;font:600 1.05rem/1.2 var(--font-body);cursor:pointer;transition:background .18s,transform .18s,box-shadow .18s}
.lead-form button:hover{background:var(--accent-dk);transform:translateY(-2px);box-shadow:0 12px 28px rgba(38,79,171,.3)}
.lead-ok{color:#1f7a3d;font-weight:600;margin-top:1rem}
.lead-err{color:#b91c1c;font-weight:600;margin-top:1rem}

/* Footer navy en colonnes */
.site-footer{background:var(--brand);color:var(--muted-invert);padding:clamp(3rem,6vw,4.5rem) 0 2rem;font-size:.95rem}
.foot-grid{display:grid;grid-template-columns:1fr;gap:32px}
.foot-brand img{height:30px;width:auto}
.foot-brandcol p{margin-top:1rem;max-width:34ch;color:var(--muted-invert)}
.foot-col h4{font-family:var(--font-body);font-weight:600;font-size:var(--fs-small);letter-spacing:.06em;text-transform:uppercase;color:#fff;margin:0 0 .9rem}
.foot-col ul{list-style:none;padding:0;margin:0}
.foot-col li{margin:.4em 0}
.site-footer a{color:var(--muted-invert);text-decoration:none}
.site-footer a:hover{color:#fff}
.foot-legal{border-top:1px solid rgba(255,255,255,.12);margin-top:2.5rem;padding-top:1.5rem;color:var(--muted-invert);font-size:.85rem}

/* Motion CSS-only. SECURITE CONTENU: l'entree anime UNIQUEMENT le transform
   (jamais l'opacite); le contenu reste toujours 100% visible meme si le scroll
   timeline est inactif (capture, vieux moteur). Plus de "trou blanc". */
.reveal{opacity:1}
@media (prefers-reduced-motion: no-preference){
  @supports (animation-timeline: view()){
    .reveal{animation:rise linear both;animation-timeline:view();animation-range:entry 0% cover 12%}
    @keyframes rise{from{transform:translateY(16px)}to{transform:none}}
  }
}
@media (prefers-reduced-motion: reduce){
  .blob,.hero-lines path,.eb-dot{animation:none!important}
}

@media(min-width:768px){
  .svc-grid,.feat-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
  .case-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
  .vgrid{grid-template-columns:repeat(auto-fit,minmax(252px,1fr))}
  .step-grid{grid-template-columns:repeat(4,1fr)}
  .stat-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
  .tgrid{grid-template-columns:repeat(auto-fit,minmax(258px,1fr))}
  .foot-grid{grid-template-columns:1.5fr 1fr 1fr}
}
@media(min-width:860px){
  .lead .wrap.lead-grid{grid-template-columns:1.02fr .98fr;gap:48px;align-items:start}
}
@media(min-width:768px){
  .about-grid{grid-template-columns:340px 1fr;gap:44px}
  .about-photo{max-width:340px}
}
@media(max-width:640px){
  .header-tel{display:none}
  .header-cta{padding:.7rem 1.1rem;font-size:.9rem}
  .city-list{columns:1}
  .related .wrap{gap:20px}
  .lead-form .row{gap:0}
  .mq-item{font-size:1.05rem}
}
