/* =====================================================================
   ALS SERVICES — homepage (structure clonee sur nikita-nettoyage.fr,
   reskin couleurs de marque ALS : bleu proprete + navy, premium).
   White canvas + ONE azure accent + deep navy ink. Single sans (Plus Jakarta).
   Static, zero-framework. Light theme. Motion honors reduced-motion.
   ===================================================================== */

/* ---------- TOKENS ---------- */
:root{
  --c-bg:        #FFFFFF;
  --c-alt:       #F2F7FB;            /* cool light section band */
  --c-alt2:      #EAF2F8;

  --c-ink:       #112D44;            /* headings, deep navy */
  --c-body:      #4C5A66;            /* paragraphs */
  --c-muted:     #8A97A1;

  --c-accent:    #0E84C4;            /* THE accent (CTA, links, icons, numbers) */
  --c-accent-d:  #0A6699;            /* hover */
  --c-accent-l:  #E6F2FA;            /* tint bg */
  --c-cyan:      #15AEEF;            /* bright highlight, sparing */

  --c-navy:      #0E3553;            /* deep brand blue: hero overlay, footer, stats */
  --c-navy-700:  #0B2A43;
  --grad:        linear-gradient(135deg,#0E3553 0%,#0E84C4 52%,#21B5F0 100%);  /* brand gradient */

  --c-line:      #E2EAF1;
  --shadow-soft: 0 12px 34px rgba(14,53,83,.08);
  --shadow-lift: 0 22px 56px rgba(14,53,83,.16);

  --sans: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;

  --container: 1240px;
  --gutter: clamp(20px, 5vw, 48px);
  --section-y: clamp(58px, 8vw, 116px);
  --radius: 16px;
  --radius-sm: 10px;
  --ease: cubic-bezier(.22,1,.36,1);
}

/* ---------- RESET / BASE ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }
body{ margin:0; background:var(--c-bg); color:var(--c-body); font-family:var(--sans);
  font-size:17px; line-height:1.7; font-weight:400; -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility; overflow-x:hidden; }
img,svg{ display:block; max-width:100%; } img{ height:auto; }
a{ color:var(--c-accent); text-decoration:none; }
button{ font-family:inherit; cursor:pointer; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4{ margin:0; color:var(--c-ink); font-family:var(--sans); font-weight:800; line-height:1.12; letter-spacing:-.02em; }
p{ margin:0 0 1em; }
.ico{ width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.sprite{ position:absolute; width:0; height:0; }
:focus-visible{ outline:2px solid var(--c-accent); outline-offset:3px; border-radius:4px; }

/* ---------- TYPE HELPERS ---------- */
.container{ width:100%; max-width:var(--container); margin-inline:auto; padding-inline:var(--gutter); }
.section{ position:relative; padding-block:var(--section-y); }
.section--alt{ background:var(--c-alt); }
.eyebrow{ font-size:.76rem; font-weight:700; text-transform:uppercase; letter-spacing:.14em; color:var(--c-accent); margin:0 0 .9rem; }
.h2{ font-size:clamp(1.9rem,3.6vw,2.9rem); }
/* nikita signature: two-line title, 2nd line lighter */
.title2{ font-size:clamp(1.9rem,3.6vw,2.9rem); line-height:1.14; }
.title2 span{ display:block; font-weight:500; color:var(--c-ink); }
.lede{ font-size:clamp(1.02rem,1.3vw,1.16rem); color:var(--c-body); max-width:60ch; }
.center{ text-align:center; margin-inline:auto; }
.center .lede{ margin-inline:auto; }

/* ---------- BUTTONS ---------- */
.btn{ display:inline-flex; align-items:center; gap:.55rem; font-weight:700; font-size:.97rem; line-height:1;
  padding:1rem 1.7rem; border-radius:999px; border:1px solid transparent; white-space:nowrap;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease), color .25s var(--ease); }
.btn .ico{ width:18px; height:18px; }
.btn-primary{ background:var(--grad); color:#fff; box-shadow:var(--shadow-soft); }
.btn-primary:hover{ filter:brightness(1.07); box-shadow:var(--shadow-lift); transform:translateY(-2px); }
.btn-primary:active{ transform:translateY(0); }
.btn-ghost{ background:#fff; color:var(--c-accent); border-color:var(--c-line); }
.btn-ghost:hover{ border-color:var(--c-accent); background:var(--c-accent-l); }
.btn-ondark{ background:#fff; color:var(--c-navy); }
.btn-ondark:hover{ background:var(--c-accent); color:#fff; transform:translateY(-2px); box-shadow:var(--shadow-lift); }
.btn--hero{ padding:1.05rem 2.2rem; text-transform:uppercase; letter-spacing:.05em; font-size:.92rem; }
.btn-outline{ background:transparent; color:var(--c-accent); border:2px solid var(--c-accent); }
.btn-outline:hover{ background:var(--c-accent); color:#fff; border-color:var(--c-accent); transform:translateY(-2px); box-shadow:var(--shadow-soft); }
.link-arrow{ display:inline-flex; align-items:center; gap:.45rem; font-weight:700; color:var(--c-accent); }
.link-arrow .ico{ width:17px; height:17px; transition:transform .25s var(--ease); }
.link-arrow:hover .ico{ transform:translateX(4px); }

/* ---------- REVEAL ---------- */
.reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.is-in{ opacity:1; transform:none; }
.reveal[data-delay="1"]{ transition-delay:.07s; }
.reveal[data-delay="2"]{ transition-delay:.14s; }
.reveal[data-delay="3"]{ transition-delay:.21s; }
.reveal[data-delay="4"]{ transition-delay:.28s; }
.reveal[data-delay="5"]{ transition-delay:.35s; }

/* ---------- UTILITY BAR ---------- */
.utility{ background:var(--c-navy); color:#fff; font-size:.83rem; position:relative; z-index:40; }
.utility .container{ display:flex; align-items:center; justify-content:space-between; min-height:40px; gap:1rem; }
.utility a{ color:#fff; opacity:.9; } .utility a:hover{ opacity:1; }
.utility__left{ display:inline-flex; gap:1.4rem; align-items:center; }
.utility__left span{ display:inline-flex; align-items:center; gap:.45rem; }
.utility__left .ico{ width:15px; height:15px; color:var(--c-cyan); }
.utility__social{ display:inline-flex; gap:1rem; } .utility__social .ico{ width:16px; height:16px; }

/* ---------- HEADER / NAV ---------- */
.header{ position:sticky; top:0; z-index:50; background:rgba(255,255,255,.9); -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px);
  border-bottom:1px solid transparent; transition:box-shadow .3s var(--ease), border-color .3s var(--ease); }
.header.is-stuck{ box-shadow:var(--shadow-soft); border-color:var(--c-line); }
.nav{ display:flex; align-items:center; justify-content:space-between; min-height:74px; gap:1.4rem; }
.brand{ display:inline-flex; align-items:center; gap:.6rem; }
.brand__logo{ height:66px; width:auto; display:block; }
.brand__mark{ width:40px; height:40px; border-radius:11px; background:var(--grad); display:grid; place-items:center; box-shadow:0 6px 16px rgba(14,132,196,.32); flex:0 0 40px; }
.brand__mark .ico{ width:22px; height:22px; color:#fff; }
.brand__txt{ display:flex; flex-direction:column; line-height:1; }
.brand__txt b{ font-weight:800; font-size:1.16rem; color:var(--c-navy); letter-spacing:-.02em; }
.brand__txt span{ font-weight:700; font-size:.6rem; text-transform:uppercase; letter-spacing:.2em; color:var(--c-accent); margin-top:3px; }
.nav__menu{ display:flex; align-items:center; gap:.2rem; }
.nav__link{ display:inline-flex; align-items:center; gap:.3rem; padding:.6rem .85rem; font-weight:600; font-size:.95rem; color:var(--c-ink); border-radius:7px; }
.nav__link:hover{ color:var(--c-accent); }
.nav__link .ico{ width:15px; height:15px; }
.nav__actions{ display:flex; align-items:center; gap:.9rem; }
.nav__tel{ font-weight:700; color:var(--c-navy); display:inline-flex; align-items:center; gap:.4rem; font-size:.95rem; }
.nav__tel .ico{ width:17px; height:17px; color:var(--c-accent); }

.has-mega{ position:static; }
.mega{ position:absolute; left:50%; top:calc(100% + 0px); transform:translateX(-50%) translateY(8px);
  width:min(980px, calc(100vw - 2*var(--gutter))); background:#fff; border:1px solid var(--c-line); border-radius:var(--radius);
  box-shadow:var(--shadow-lift); padding:1.4rem; opacity:0; visibility:hidden; transition:opacity .25s var(--ease), transform .25s var(--ease); z-index:60; }
.mega--cols{ width:min(640px, calc(100vw - 2*var(--gutter))); }
.has-mega:hover .mega, .has-mega:focus-within .mega{ opacity:1; visibility:visible; transform:translateX(-50%) translateY(4px); }
/* Pont invisible : comble le vide entre le lien et le panneau pour que le survol ne se coupe pas */
.mega::before{ content:""; position:absolute; left:0; right:0; top:-30px; height:30px; }
.has-mega:hover .mega, .has-mega:focus-within .mega{ transition-delay:0s; }
.has-mega .mega{ transition-delay:.12s; }
.mega__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:.15rem 1.1rem; }
.mega__item{ display:flex; gap:.8rem; padding:.7rem .75rem; border-radius:10px; transition:background .2s; }
.mega__item:hover{ background:var(--c-alt); }
.mega__ico{ flex:0 0 38px; height:38px; border-radius:10px; background:var(--c-accent-l); display:grid; place-items:center; }
.mega__ico .ico{ width:19px; height:19px; color:var(--c-accent); }
.mega__item b{ display:block; font-weight:700; font-size:.94rem; color:var(--c-ink); }
.mega__item small{ color:var(--c-muted); font-size:.82rem; line-height:1.4; }
.mega__cols{ display:grid; grid-template-columns:1fr 1fr; gap:.1rem 1.6rem; }
.mega__cols a{ display:block; padding:.4rem .2rem; color:var(--c-body); font-size:.92rem; border-bottom:1px solid var(--c-line); }
.mega__cols a:hover{ color:var(--c-accent); }
.mega__head{ font-size:.72rem; text-transform:uppercase; letter-spacing:.14em; color:var(--c-muted); font-weight:700; margin-bottom:.5rem; }
/* Mega Services redesign : carte mise en avant + liste de prestations reelles (plus digeste) */
.mega--services{ width:min(700px, calc(100vw - 2*var(--gutter))); display:grid; grid-template-columns:220px 1fr; gap:1rem; padding:1rem; }
.mega__feature{ position:relative; display:flex; flex-direction:column; justify-content:flex-end; min-height:210px; border-radius:12px; overflow:hidden; padding:1rem; text-decoration:none; isolation:isolate; }
.mega__feature img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.mega__feature::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(14,53,83,.12) 30%, rgba(14,53,83,.9)); z-index:-1; }
.mega__feature b{ display:block; color:#fff; font-size:1.02rem; font-weight:700; line-height:1.25; }
.mega__feature small{ display:block; color:rgba(255,255,255,.85); font-size:.82rem; margin-top:.3rem; line-height:1.4; }
.mega__feature .mega__more{ display:inline-block; margin-top:.6rem; color:#fff; font-weight:700; font-size:.82rem; }
.mega__list{ display:grid; grid-template-columns:1fr 1fr; gap:.1rem .4rem; align-content:start; }
@media (max-width:820px){ .mega--services{ grid-template-columns:1fr; } .mega__feature{ min-height:120px; } }

/* ============ LANGAGE VISUEL "VILLE" (pages internes, distinct de la home) ============ */
.nv-hero{ padding:clamp(26px,4vw,58px) 0 clamp(34px,5vw,68px); }
.nv-hero__grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(26px,4vw,58px); align-items:center; }
.nv-eyebrow{ display:inline-flex; align-items:center; gap:.5rem; font-size:.8rem; font-weight:700; color:var(--c-accent); background:var(--c-accent-l); padding:.42rem .82rem; border-radius:999px; }
.nv-eyebrow .ico{ width:15px; height:15px; }
.nv-h1{ font-size:clamp(2.1rem,4.6vw,3.55rem); line-height:1.05; letter-spacing:-.02em; color:var(--c-ink); margin:1rem 0 0; font-weight:800; }
.nv-h1 em{ font-style:normal; background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.nv-lead{ color:var(--c-body); font-size:1.06rem; line-height:1.62; max-width:52ch; margin-top:1.1rem; }
.nv-hero__cta{ display:flex; flex-wrap:wrap; gap:.8rem; margin-top:1.6rem; align-items:center; }
.nv-chips{ display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1.4rem; }
.nv-chip{ display:inline-flex; align-items:center; gap:.45rem; font-size:.85rem; font-weight:600; color:var(--c-ink); background:#fff; border:1px solid var(--c-line); padding:.5rem .8rem; border-radius:999px; box-shadow:var(--shadow-soft); }
.nv-chip .ico{ width:16px; height:16px; color:var(--c-accent); }
.nv-hero__media{ position:relative; }
.nv-hero__media>img{ width:100%; height:clamp(320px,42vw,470px); object-fit:cover; border-radius:22px; box-shadow:var(--shadow-lift); display:block; }
.nv-badge{ position:absolute; left:-16px; bottom:20px; background:#fff; border-radius:16px; box-shadow:var(--shadow-lift); padding:.85rem 1.05rem; display:flex; align-items:center; gap:.75rem; }
.nv-badge__num{ font-size:1.9rem; font-weight:800; color:var(--c-navy); line-height:1; }
.nv-badge small{ display:block; color:var(--c-muted); font-size:.76rem; }
.nv-badge__stars{ color:#FBBC05; letter-spacing:1px; font-size:.92rem; }
.nv-stats{ background:var(--c-navy); color:#fff; }
.nv-stats__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(16px,3vw,38px); padding:clamp(28px,4vw,50px) 0; }
.nv-stat b{ display:block; font-size:clamp(1.8rem,3vw,2.5rem); font-weight:800; letter-spacing:-.02em; }
.nv-stat span{ display:block; color:rgba(255,255,255,.7); font-size:.88rem; margin-top:.25rem; }
.nv-stat+.nv-stat{ border-left:1px solid rgba(255,255,255,.14); padding-left:clamp(16px,3vw,38px); }
.nv-preso{ display:grid; grid-template-columns:1.12fr 1fr; gap:clamp(22px,3vw,42px); align-items:start; }
.nv-feat{ background:var(--c-alt); border-radius:20px; padding:clamp(20px,2.6vw,32px); }
.nv-feat>img{ width:100%; height:210px; object-fit:cover; border-radius:14px; margin-bottom:1.1rem; display:block; }
.nv-feat h3{ font-size:1.35rem; color:var(--c-ink); margin:0 0 .5rem; }
.nv-feat p{ color:var(--c-body); line-height:1.6; }
.nv-list{ display:grid; gap:0; }
.nv-row{ display:grid; grid-template-columns:auto 1fr; gap:1rem; padding:1.05rem .1rem; border-bottom:1px solid var(--c-line); }
.nv-row:last-child{ border-bottom:0; }
.nv-row__ico{ width:42px; height:42px; border-radius:12px; background:var(--c-accent-l); display:grid; place-items:center; flex:none; }
.nv-row__ico .ico{ width:21px; height:21px; color:var(--c-accent); }
.nv-row h3{ font-size:1.04rem; color:var(--c-ink); margin:0; }
.nv-row p{ color:var(--c-body); font-size:.92rem; margin:.22rem 0 0; line-height:1.5; }
@media (max-width:900px){
  .nv-hero__grid{ grid-template-columns:1fr; }
  .nv-hero__media{ order:-1; }
  .nv-stats__grid{ grid-template-columns:1fr 1fr; gap:0; }
  .nv-stat{ padding:1rem 1.1rem; }
  .nv-stat+.nv-stat{ border-left:0; padding-left:1.1rem; }
  .nv-stat:nth-child(odd){ border-right:1px solid rgba(255,255,255,.14); }
  .nv-preso{ grid-template-columns:1fr; }
  .nv-badge{ left:12px; }
}
/* Prestations : 1er bloc mis en avant (avec image) + le reste en grille 2 colonnes */
.nv-feat2{ background:var(--c-alt); border-radius:20px; padding:clamp(20px,2.8vw,34px); margin-bottom:clamp(22px,3vw,36px); display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(22px,3vw,40px); align-items:center; }
.nv-feat2__media img{ width:100%; height:100%; min-height:220px; max-height:340px; object-fit:cover; border-radius:14px; display:block; }
.nv-feat2 .seo__block{ margin:0; }
.nv-blocks{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(22px,2.8vw,40px); }
.nv-blocks .seo__block{ margin:0; padding-top:1.4rem; border-top:2px solid var(--c-line); }
@media (max-width:820px){ .nv-feat2{ grid-template-columns:1fr; } .nv-feat2__media{ order:-1; } .nv-blocks{ grid-template-columns:1fr; } }
/* Lead editorial (intro + panneau de confiance sticky) */
.nv-intro{ display:grid; grid-template-columns:1.35fr .65fr; gap:clamp(28px,4vw,54px); align-items:start; }
.nv-intro h2{ margin-top:0; }
.nv-trustcard{ background:var(--c-navy); color:#fff; border-radius:18px; padding:clamp(22px,3vw,30px); position:sticky; top:92px; }
.nv-trustcard p.eyebrow{ color:var(--c-cyan); }
.nv-trustcard h3{ color:#fff; font-size:1.12rem; margin:.2rem 0 1rem; line-height:1.3; }
.nv-trustcard ul{ list-style:none; margin:0 0 1.3rem; padding:0; display:grid; gap:.75rem; }
.nv-trustcard li{ display:flex; gap:.6rem; align-items:flex-start; font-size:.92rem; color:rgba(255,255,255,.88); }
.nv-trustcard li .ico{ width:18px; height:18px; color:var(--c-cyan); flex:none; margin-top:.12rem; }
.nv-trustcard .btn{ width:100%; justify-content:center; }
@media(max-width:820px){ .nv-intro{ grid-template-columns:1fr; } .nv-trustcard{ position:static; } }
.seo__img{ width:100%; height:190px; object-fit:cover; border-radius:12px; margin-bottom:1.1rem; display:block; }
.nv-blocks{ align-items:start; }
.nv-blocks .seo__block--media{ grid-column:1 / -1; display:flex; gap:clamp(20px,2.6vw,34px); align-items:stretch; }
.nv-blocks .seo__block--media.seo__block--right{ flex-direction:row-reverse; }
.nv-blocks .seo__block--media > .seo__bd{ flex:1 1 auto; min-width:0; }
.nv-blocks .seo__block--media > .seo__imgwrap{ flex:0 0 clamp(240px,36%,340px); align-self:stretch; display:block; border-radius:12px; overflow:hidden; min-height:210px; }
.nv-blocks .seo__block--media > .seo__imgwrap > .seo__img{ width:100%; height:100%; margin:0; border-radius:0; }
@media (max-width:720px){ .nv-blocks .seo__block--media, .nv-blocks .seo__block--media.seo__block--right{ flex-direction:column; } .nv-blocks .seo__block--media > .seo__imgwrap{ flex:none; width:100%; height:200px; min-height:0; } }
.nv-blocks .seo__block--wide{ grid-column:1 / -1; columns:2; column-gap:clamp(28px,4vw,54px); }
.nv-blocks .seo__block--wide h3{ column-span:all; margin-top:0; }
.nv-blocks .seo__block--wide p{ break-inside:avoid; }
@media (max-width:720px){ .nv-blocks .seo__block--wide{ columns:1; } }

.burger{ display:none; width:46px; height:46px; border:1px solid var(--c-line); border-radius:10px; background:#fff; }
.burger span{ display:block; width:20px; height:2px; background:var(--c-navy); margin:4px auto; transition:.3s var(--ease); }

.drawer-host{ position:fixed; inset:0; overflow:hidden; pointer-events:none; z-index:90; }
.drawer{ position:absolute; inset:0 0 0 auto; width:min(86vw,380px); background:#fff; transform:translateX(100%);
  transition:transform .4s var(--ease); box-shadow:var(--shadow-lift); display:flex; flex-direction:column; padding:1.3rem var(--gutter) 2rem; overflow-y:auto; pointer-events:auto; }
.drawer.is-open{ transform:none; }
.drawer__top{ display:flex; align-items:center; justify-content:space-between; margin-bottom:1.3rem; }
.drawer__close{ width:44px; height:44px; border:1px solid var(--c-line); border-radius:10px; background:#fff; font-size:1.3rem; color:var(--c-navy); }
.drawer nav a{ display:block; padding:.9rem 0; border-bottom:1px solid var(--c-line); font-weight:700; font-size:1.12rem; color:var(--c-ink); }
.drawer nav a small{ display:block; font-weight:400; font-size:.8rem; color:var(--c-muted); }
.drawer__cta{ margin-top:1.4rem; display:grid; gap:.7rem; }
.scrim{ position:fixed; inset:0; background:rgba(14,53,83,.5); opacity:0; visibility:hidden; transition:.3s; z-index:80; }
.scrim.is-open{ opacity:1; visibility:visible; }

/* ---------- HERO (light, split + photo cluster, nikita-style) ---------- */
.hero{ position:relative; background:linear-gradient(180deg,#E9F1F8 0%,#F5FAFD 55%,#fff 100%); overflow:hidden; }
.hero::before{ content:""; position:absolute; top:-25%; right:-8%; width:540px; height:540px; border-radius:50%;
  background:radial-gradient(circle, rgba(14,132,196,.10), transparent 70%); pointer-events:none; }
.hero__grid{ display:grid; grid-template-columns:1.02fr .98fr; gap:clamp(28px,4vw,60px); align-items:center;
  padding-block:clamp(16px,2vw,30px); min-height:min(80vh,660px); }
.hero__copy{ position:relative; z-index:2; max-width:600px; }
.hero h1{ font-size:clamp(1.85rem,3.2vw,2.85rem); line-height:1.05; letter-spacing:-.025em; font-weight:800;
  background:linear-gradient(120deg,#0E3553 0%,#0E84C4 56%,#16A0DD 100%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent; }
.hero h1 span{ display:block; }
.hero__sub{ font-size:clamp(1.02rem,1.3vw,1.16rem); color:var(--c-body); max-width:44ch; margin:1.2rem 0 2rem; }
.hero__cta{ display:flex; flex-wrap:wrap; gap:.9rem; align-items:center; }
.hero__trust{ display:flex; flex-wrap:wrap; align-items:center; gap:.6rem; margin-top:2rem; }
.hero__chip{ display:inline-flex; align-items:center; gap:.45rem; background:#fff; border:1px solid var(--c-line); border-radius:30px; padding:.5rem .9rem; font-size:.85rem; font-weight:600; color:var(--c-body); box-shadow:var(--shadow-soft); }
.hero__chip .ico{ width:17px; height:17px; color:var(--c-accent); }
.hero__chip b{ color:var(--c-ink); }
.hero__cluster{ position:relative; z-index:2; display:grid; grid-template-columns:1fr 1.12fr; grid-template-rows:1fr 1fr; gap:18px; min-height:clamp(380px,42vw,560px); align-self:center; }
.hero__cluster picture{ display:block; height:100%; }
.hero__cluster img{ width:100%; height:100%; object-fit:cover; border-radius:22px; box-shadow:var(--shadow-lift); display:block; }
.hero__cluster .main{ grid-column:2; grid-row:1 / 3; }
.hero__cluster .s1{ grid-column:1; grid-row:1; }
.hero__cluster .s2{ grid-column:1; grid-row:2; }
@media (max-width:1000px){
  .hero__grid{ grid-template-columns:1fr; min-height:0; }
  .hero__cluster{ margin-top:.5rem; max-width:600px; }
}
@media (max-width:560px){
  .hero__cluster{ grid-template-columns:1fr 1fr; grid-template-rows:auto auto; min-height:0; }
  .hero__cluster .main{ grid-column:1 / 3; grid-row:1; aspect-ratio:16 / 10; }
  .hero__cluster .s1{ grid-column:1; grid-row:2; aspect-ratio:1 / 1; }
  .hero__cluster .s2{ grid-column:2; grid-row:2; aspect-ratio:1 / 1; }
}

/* ---------- TOP BAR + HERO BADGES ---------- */
.topbar{ background:var(--grad); color:#fff; font-size:.84rem; }
.topbar .container{ display:flex; align-items:center; justify-content:flex-end; gap:1.6rem; min-height:42px; padding-block:5px; }
.topbar a{ color:#fff; }
.topbar__phone{ display:inline-flex; align-items:center; gap:.45rem; font-weight:700; }
.topbar__phone .ico{ width:16px; height:16px; }
.topbar__social{ display:inline-flex; align-items:center; gap:1.05rem; }
.topbar__social a{ display:inline-flex; align-items:center; }
.topbar__social .ico{ width:17px; height:17px; }
.hero__badges{ display:flex; align-items:center; gap:1.6rem; margin-top:2.3rem; flex-wrap:wrap; }
.tf-badge{ display:flex; align-items:center; gap:.7rem; }
.tf-badge__ico{ width:52px; height:52px; border-radius:14px; background:var(--grad); display:grid; place-items:center; box-shadow:0 8px 18px rgba(14,132,196,.3); }
.tf-badge__ico .ico{ width:25px; height:25px; color:#fff; }
.tf-badge b{ display:block; color:var(--c-ink); font-weight:800; font-size:1.1rem; line-height:1.05; }
.tf-badge small{ color:var(--c-muted); font-size:.8rem; }
.greviews{ display:flex; align-items:center; gap:.6rem; }
.greviews__g{ width:34px; height:34px; flex:0 0 34px; }
.greviews__g svg{ width:100%; height:100%; display:block; }
.greviews__txt b{ display:block; color:var(--c-ink); font-weight:700; font-size:.9rem; line-height:1.15; }
.greviews__row{ display:inline-flex; align-items:center; gap:.4rem; margin-top:3px; }
.greviews__num{ font-weight:800; color:var(--c-ink); font-size:.95rem; line-height:1; }
.grev-stars{ position:relative; display:inline-block; font-size:.95rem; letter-spacing:1px; line-height:1; color:#DADCE0; }
.grev-stars::before{ content:"\2605\2605\2605\2605\2605"; }
.grev-stars__on{ position:absolute; top:0; left:0; width:var(--rate,100%); overflow:hidden; white-space:nowrap; color:#FBBC05; }

/* ---------- LOGO CAROUSEL ---------- */
.logos{ padding-block:clamp(40px,5vw,64px); border-bottom:1px solid var(--c-line); }
.logos__lead{ text-align:center; font-weight:600; color:var(--c-ink); margin-bottom:1.8rem; font-size:clamp(1rem,1.4vw,1.2rem); }
.marquee{ position:relative; overflow:hidden; -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); }
.marquee__track{ display:flex; align-items:center; gap:clamp(2.2rem,5vw,4rem); width:max-content; animation:scroll-x 38s linear infinite; }
.marquee:hover .marquee__track{ animation-play-state:paused; }
.marquee img{ height:40px; width:auto; object-fit:contain; filter:grayscale(1); opacity:.6; transition:.3s var(--ease); }
.marquee img:hover{ filter:grayscale(0); opacity:1; }
/* Mobile : logos clients en grille centree qui s'enroule (pas de defilement tronque) */
@media (max-width:640px){
  .marquee{ -webkit-mask-image:none; mask-image:none; overflow:visible; }
  .marquee__track{ flex-wrap:wrap; justify-content:center; align-items:center; width:auto; gap:16px 22px; animation:none !important; }
  .marquee__track img[aria-hidden="true"]{ display:none; }
  .marquee img{ height:26px; opacity:.7; }
}
@keyframes scroll-x{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

/* ---------- DECOR : vague de marque en fond (legere, claire) ---------- */
.section--wave{ position:relative; overflow:hidden; }
.section--wave > .container{ position:relative; z-index:1; }
.section--wave::before{ content:""; position:absolute; left:50%; top:0; transform:translateX(-50%);
  width:122%; height:clamp(210px,27vw,360px); background:no-repeat center / 100% 100%; opacity:.12; pointer-events:none; z-index:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 360' preserveAspectRatio='none'%3E%3Cpath d='M-40 200 C320 70 560 300 880 190 C1140 100 1300 210 1500 170' fill='none' stroke='%2315AEEF' stroke-width='30' stroke-linecap='round'/%3E%3Cpath d='M-40 250 C320 130 560 350 880 240 C1140 150 1300 260 1500 220' fill='none' stroke='%230E84C4' stroke-width='24' stroke-linecap='round'/%3E%3C/svg%3E"); }

/* ---------- VALUE CARDS (6) ---------- */
.cards6{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.vcard{ background:#fff; border:1px solid var(--c-line); border-radius:var(--radius); padding:1.7rem; transition:transform .3s var(--ease), box-shadow .3s var(--ease); }
.vcard:hover{ transform:translateY(-3px); box-shadow:var(--shadow-lift); }
.vcard__ico{ width:50px; height:50px; border-radius:13px; background:var(--c-accent-l); display:grid; place-items:center; margin-bottom:1rem; }
.vcard__ico .ico{ width:25px; height:25px; color:var(--c-accent); }
.vcard h3{ font-size:1.2rem; margin-bottom:.45rem; }
.vcard p{ margin:0; font-size:.95rem; color:var(--c-body); }

/* ---------- SECTOR CARDS (5) ---------- */
.sectors{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.scard{ position:relative; background:#fff; border:1px solid var(--c-line); border-radius:var(--radius); padding:1.7rem; overflow:hidden;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s; display:flex; flex-direction:column; }
.scard:hover{ transform:translateY(-3px); box-shadow:var(--shadow-lift); border-color:transparent; }
.scard__top{ display:flex; align-items:center; justify-content:space-between; margin-bottom:1rem; }
.scard__ico{ width:50px; height:50px; border-radius:13px; background:var(--c-navy); display:grid; place-items:center; }
.scard__ico .ico{ width:25px; height:25px; color:#fff; }
.scard__arrow{ width:38px; height:38px; border-radius:50%; border:1px solid var(--c-line); display:grid; place-items:center; color:var(--c-accent); transition:.3s var(--ease); }
.scard:hover .scard__arrow{ background:var(--c-accent); color:#fff; border-color:var(--c-accent); }
.scard h3{ font-size:1.25rem; margin-bottom:.5rem; }
.scard p{ margin:0; font-size:.95rem; color:var(--c-body); }
.scard--feature{ grid-column:span 1; }

/* ---------- SECTEURS D'ACTIVITE (3+2, centered) ---------- */
.secteurs5{ display:flex; flex-wrap:wrap; justify-content:center; gap:18px; }
.scard5{ flex:1 1 300px; max-width:380px; background:#fff; border:1px solid var(--c-line); border-radius:var(--radius);
  padding:1.9rem 1.7rem; display:flex; flex-direction:column; transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s; }
.scard5:hover{ transform:translateY(-3px); box-shadow:var(--shadow-lift); border-color:transparent; }
.scard5__ico{ width:56px; height:56px; border-radius:16px; background:var(--c-accent-l); display:grid; place-items:center; margin-bottom:1.1rem; }
.scard5__ico .ico{ width:28px; height:28px; color:var(--c-accent); }
.scard5 h3{ font-size:1.2rem; margin-bottom:.5rem; }
.scard5 p{ margin:0 0 1.2rem; font-size:.95rem; color:var(--c-body); }
.scard5__link{ margin-top:auto; display:inline-flex; align-items:center; gap:.4rem; font-weight:700; color:var(--c-accent); font-size:.9rem; }
.scard5__link .ico{ width:16px; height:16px; transition:transform .25s var(--ease); }
.scard5:hover .scard5__link .ico{ transform:translateX(4px); }
@media (max-width:560px){ .scard5{ flex:1 1 100%; max-width:none; } }

/* ---------- METHODE / PROCESS (4 etapes) ---------- */
.steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(20px,3vw,34px); }
.step{ position:relative; }
.step__n{ position:relative; z-index:1; width:56px; height:56px; border-radius:50%; background:var(--grad); color:#fff;
  display:grid; place-items:center; font-weight:800; font-size:1.25rem; box-shadow:0 8px 18px rgba(14,132,196,.3); margin-bottom:1.1rem; }
.step:not(:last-child)::before{ content:""; position:absolute; top:28px; left:62px; right:calc(-1 * clamp(20px,3vw,34px)); height:2px;
  background:repeating-linear-gradient(90deg, var(--c-line) 0 6px, transparent 6px 13px); }
.step h3{ font-size:1.15rem; margin-bottom:.45rem; }
.step p{ margin:0; font-size:.94rem; color:var(--c-body); }
@media (max-width:860px){ .steps{ grid-template-columns:1fr 1fr; } .step:not(:last-child)::before{ display:none; } }
@media (max-width:480px){ .steps{ grid-template-columns:1fr; } }

/* ---------- ENGAGEMENT (RSE 2-col) ---------- */
.rse{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,4vw,56px); }
.rse__col{ background:#fff; border:1px solid var(--c-line); border-radius:var(--radius); padding:2rem; }
.rse__col .vcard__ico{ background:var(--c-accent-l); }
.rse__col h3{ font-size:1.45rem; margin-bottom:.6rem; }
.rse__col p{ margin:0; }

/* ---------- SERVICE ROWS (alternating) ---------- */
.srow{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,5vw,72px); align-items:center; }
.srow + .srow{ margin-top:clamp(40px,6vw,90px); }
.srow--rev .srow__media{ order:2; }
.srow__media img{ width:100%; height:430px; object-fit:cover; border-radius:var(--radius); box-shadow:var(--shadow-soft); }
.srow__ico{ width:54px; height:54px; border-radius:14px; background:var(--c-accent-l); display:grid; place-items:center; margin-bottom:1rem; }
.srow__ico .ico{ width:27px; height:27px; color:var(--c-accent); }
.srow h3{ font-size:clamp(1.5rem,2.4vw,2rem); margin-bottom:.7rem; }
.srow__list{ display:grid; gap:.6rem; margin:1.3rem 0 1.6rem; }
.srow__list li{ display:flex; gap:.6rem; align-items:flex-start; font-size:.97rem; color:var(--c-body); }
.srow__list .ico{ width:20px; height:20px; color:var(--c-accent); flex:0 0 20px; margin-top:.1rem; }

/* ---------- CONTACT "Presse?" + FORM ---------- */
.contact{ background:var(--c-navy); color:#fff; }
.contact__grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,5vw,64px); align-items:center; }
.contact h2{ color:#fff; font-size:clamp(1.9rem,3.4vw,2.8rem); }
.contact h2 span{ display:block; font-weight:500; color:rgba(255,255,255,.85); }
.contact__eyebrow{ color:var(--c-cyan); }
.contact__benefits{ display:grid; gap:.7rem; margin:1.5rem 0; }
.contact__benefits li{ display:flex; gap:.6rem; align-items:center; color:rgba(255,255,255,.9); }
.contact__benefits .ico{ width:20px; height:20px; color:var(--c-cyan); flex:0 0 20px; }
.contact__tel{ display:inline-flex; align-items:center; gap:.6rem; font-size:1.7rem; font-weight:800; color:#fff; letter-spacing:-.02em; }
.contact__tel .ico{ width:24px; height:24px; color:var(--c-cyan); }
.form{ background:#fff; border-radius:var(--radius); padding:clamp(1.5rem,3vw,2.2rem); box-shadow:var(--shadow-lift); }
.form h3{ font-size:1.3rem; margin-bottom:1.2rem; color:var(--c-ink); }
.field{ display:grid; gap:.4rem; margin-bottom:1rem; }
.field label{ font-size:.85rem; font-weight:600; color:var(--c-ink); }
.field input,.field textarea{ font-family:inherit; font-size:.97rem; color:var(--c-ink); background:var(--c-alt); border:1px solid var(--c-line);
  border-radius:10px; padding:.85rem 1rem; width:100%; transition:border-color .2s, background .2s; }
.field input::placeholder,.field textarea::placeholder{ color:var(--c-muted); }
.field input:focus,.field textarea:focus{ outline:none; border-color:var(--c-accent); background:#fff; }
.field textarea{ resize:vertical; min-height:96px; }
.form__row{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.form .btn{ width:100%; justify-content:center; margin-top:.3rem; }
.form__note{ font-size:.8rem; color:var(--c-muted); margin:.8rem 0 0; text-align:center; }

/* ---------- DEVIS WIZARD (formulaire multi-etapes) ---------- */
.wizard h3{ margin-bottom:.3rem; }
.wz-progress{ height:24px; background:#E7EDF2; border-radius:7px; overflow:hidden; margin:.6rem 0 1.5rem; }
.wz-bar{ height:100%; width:50%; background:var(--grad); border-radius:7px; display:flex; align-items:center; justify-content:flex-end; padding-right:.7rem; color:#fff; font-weight:700; font-size:.78rem; transition:width .45s var(--ease); }
.wz-step{ display:none; }
.wz-step.is-active{ display:block; animation:wzfade .35s var(--ease); }
@keyframes wzfade{ from{ opacity:0; transform:translateY(6px); } to{ opacity:1; transform:none; } }
.field select{ font-family:inherit; font-size:.97rem; color:var(--c-ink); background-color:var(--c-alt); border:1px solid var(--c-line); border-radius:10px; padding:.85rem 2.4rem .85rem 1rem; width:100%; cursor:pointer; -webkit-appearance:none; appearance:none; background-repeat:no-repeat; background-position:right .9rem center; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' stroke='%234C5A66' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 8l5 5l5 -5'/%3E%3C/svg%3E"); }
.field select:focus{ outline:none; border-color:var(--c-accent); background-color:#fff; }
.wz-next{ width:100%; justify-content:center; margin-top:.4rem; }
.wz-actions{ display:flex; gap:.8rem; margin-top:.2rem; }
.wz-actions .btn{ flex:1; justify-content:center; }
.wz-check{ display:flex; align-items:center; gap:.6rem; font-size:.92rem; color:var(--c-body); margin:.4rem 0 1.1rem; cursor:pointer; -webkit-user-select:none; user-select:none; }
.wz-check input{ width:20px; height:20px; accent-color:var(--c-accent); flex:0 0 20px; }
.hp{ position:absolute !important; left:-9999px !important; width:1px; height:1px; opacity:0; pointer-events:none; }
.field input.err, .field select.err{ border-color:#D14343; background-color:#FDECEC; }

/* ---------- FORMULAIRE DEVIS : variante VERTE (calquee sur la capture client) ---------- */
.form .field label{ text-transform:uppercase; letter-spacing:.05em; font-size:.72rem; color:#3D4753; }
.form .field input, .form .field textarea{ background:#EDEDED; border-color:#E2E2E4; }
.form .field select{ background-color:#EDEDED; border-color:#E2E2E4; }
.form .field input:focus, .form .field textarea:focus{ background:#fff; border-color:#0E7621; }
.form .field select:focus{ background-color:#fff; border-color:#0E7621; }
.form .wz-bar{ background:#0E7621; justify-content:center; padding-right:0; }
.form .btn-primary{ background:#0E7621; text-transform:uppercase; letter-spacing:.04em; box-shadow:0 12px 30px rgba(14,118,33,.22); }
.form .btn-primary:hover{ background:#0B5C1A; filter:none; box-shadow:0 18px 40px rgba(14,118,33,.3); }
.form .wz-check input{ accent-color:#0E7621; }
/* meme forme que la capture : coins droits, bouton compact a gauche, sans fleche */
.form .field input, .form .field select, .form .field textarea{ border-radius:4px; }
.form .wz-progress, .form .wz-bar{ border-radius:4px; }
.form .btn{ border-radius:4px; }
.form .btn .ico{ display:none; }
.form .wz-next{ width:auto; min-width:200px; }

/* ---------- STATS ---------- */
.stats{ background:var(--c-bg); }
.stats__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.4rem; }
.stat{ text-align:center; padding:1.6rem 1rem; background:var(--c-alt); border-radius:var(--radius); }
.stat__ico{ width:46px; height:46px; border-radius:50%; background:#fff; display:grid; place-items:center; margin:0 auto .8rem; box-shadow:var(--shadow-soft); }
.stat__ico .ico{ width:23px; height:23px; color:var(--c-accent); }
.stat .num{ font-size:clamp(2.2rem,3.6vw,3rem); font-weight:800; color:var(--c-accent); line-height:1; letter-spacing:-.02em; }
.stat .lbl{ margin-top:.4rem; font-size:.92rem; color:var(--c-body); }

/* ---------- SECONDARY CTA ---------- */
.cta2{ background:var(--grad); color:#fff; text-align:center; }
.cta2 h2{ color:#fff; font-size:clamp(1.9rem,3.4vw,2.7rem); }
.cta2 h2 span{ display:block; font-weight:500; color:rgba(255,255,255,.88); }
.cta2 p{ color:rgba(255,255,255,.9); margin:.8rem 0 1.6rem; }
.cta2__row{ display:flex; flex-wrap:wrap; gap:1rem; justify-content:center; align-items:center; }
.cta2__tel{ font-size:1.4rem; font-weight:800; color:#fff; display:inline-flex; align-items:center; gap:.5rem; }
.cta2__tel .ico{ width:22px; height:22px; }

/* ---------- SEO LONG-FORM ---------- */
.seo__block + .seo__block{ margin-top:2.6rem; }
.seo h2{ font-size:clamp(1.5rem,2.4vw,2rem); margin-bottom:.9rem; }
.seo p{ max-width:72ch; }
.seo ul.bullets{ display:grid; gap:.6rem; margin:1.1rem 0 1.3rem; max-width:72ch; }
.seo ul.bullets li{ display:flex; gap:.6rem; align-items:flex-start; }
.seo ul.bullets .ico{ width:20px; height:20px; color:var(--c-accent); flex:0 0 20px; margin-top:.15rem; }

/* ---------- FAQ ---------- */
.faq{ max-width:840px; margin-inline:auto; }
.faq__item{ border-bottom:1px solid var(--c-line); }
.faq__q{ width:100%; background:none; border:none; text-align:left; display:flex; justify-content:space-between; align-items:center; gap:1rem;
  padding:1.35rem 0; font-family:var(--sans); font-weight:700; font-size:clamp(1.05rem,1.5vw,1.22rem); color:var(--c-ink); letter-spacing:-.01em; }
.faq__q .pm{ flex:0 0 30px; height:30px; border-radius:50%; border:1px solid var(--c-line); display:grid; place-items:center; position:relative; transition:.3s var(--ease); }
.faq__q .pm::before,.faq__q .pm::after{ content:""; position:absolute; background:var(--c-accent); border-radius:2px; }
.faq__q .pm::before{ width:12px; height:2px; } .faq__q .pm::after{ width:2px; height:12px; transition:transform .3s var(--ease); }
.faq__item.is-open .pm{ background:var(--c-accent); border-color:var(--c-accent); }
.faq__item.is-open .pm::before,.faq__item.is-open .pm::after{ background:#fff; }
.faq__item.is-open .pm::after{ transform:scaleY(0); }
.faq__a{ overflow:hidden; max-height:0; transition:max-height .4s var(--ease); }
.faq__a p{ padding:0 0 1.35rem; color:var(--c-body); max-width:74ch; }

/* ---------- LOCAL SEO LINKS ---------- */
.local h2{ font-size:clamp(1.6rem,2.6vw,2.1rem); margin-bottom:.5rem; }
.local__group{ margin-top:2rem; }
.local__group h3{ font-size:.84rem; text-transform:uppercase; letter-spacing:.13em; color:var(--c-accent); margin-bottom:1rem; font-weight:700; }
.local__links{ display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:.4rem 1.4rem; }
.local__links a{ display:block; padding:.45rem 0; color:var(--c-body); font-size:.92rem; border-bottom:1px solid var(--c-line); transition:.2s; }
.local__links a:hover{ color:var(--c-accent); padding-left:.3rem; }

/* ---------- FOOTER ---------- */
.footer{ background:var(--c-navy); color:rgba(255,255,255,.74); padding-block:clamp(48px,6vw,80px) 0; }
.footer__grid{ display:grid; grid-template-columns:1.3fr 1fr 1fr 1.2fr; gap:2.4rem; padding-bottom:3rem; }
.footer .brand__txt b{ color:#fff; } .footer .brand__txt span{ color:var(--c-cyan); }
.footer__about{ margin:1rem 0 1.2rem; font-size:.93rem; max-width:30ch; }
.footer h4{ font-size:.78rem; text-transform:uppercase; letter-spacing:.14em; color:#fff; margin-bottom:1.1rem; font-weight:700; }
.footer a{ color:rgba(255,255,255,.74); } .footer a:hover{ color:#fff; }
.footer__col li{ margin-bottom:.6rem; font-size:.93rem; }
.footer__contact li{ display:flex; gap:.6rem; margin-bottom:.8rem; font-size:.93rem; align-items:flex-start; }
.footer__contact .ico{ width:17px; height:17px; color:var(--c-cyan); flex:0 0 17px; margin-top:.2rem; }
.footer__social{ display:flex; gap:.7rem; margin-top:1rem; }
.footer__social a{ width:38px; height:38px; border:1px solid rgba(255,255,255,.18); border-radius:50%; display:grid; place-items:center; }
.footer__social a:hover{ border-color:var(--c-cyan); background:rgba(255,255,255,.06); }
.footer__social .ico{ width:17px; height:17px; }
.footer__bottom{ border-top:1px solid rgba(255,255,255,.14); padding-block:1.4rem; display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem; font-size:.83rem; }
.footer__bottom a{ margin-left:1.1rem; }

/* ---------- PAGE CONTACT ---------- */
.chero{ position:relative; overflow:hidden; background:linear-gradient(180deg,#E9F1F8 0%,#F5FAFD 58%,#fff 100%); }
.chero::before{ content:""; position:absolute; top:-30%; right:-6%; width:520px; height:520px; border-radius:50%;
  background:radial-gradient(circle, rgba(14,132,196,.10), transparent 70%); pointer-events:none; }
.chero .container{ position:relative; z-index:1; padding-block:clamp(34px,5vw,76px); }
.chero h1{ font-size:clamp(1.85rem,3.4vw,3rem); line-height:1.07; letter-spacing:-.025em; font-weight:800; max-width:20ch; margin-top:.2rem;
  background:linear-gradient(120deg,#0E3553 0%,#0E84C4 56%,#16A0DD 100%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent; }
.chero .lede{ margin-top:1.1rem; max-width:64ch; }
.crumb{ font-size:.86rem; color:var(--c-muted); margin-bottom:1.4rem; display:flex; gap:.5rem; align-items:center; }
.crumb a{ color:var(--c-body); font-weight:600; } .crumb a:hover{ color:var(--c-accent); }
.crumb span[aria-current]{ color:var(--c-ink); font-weight:700; }
.cmethods{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:clamp(28px,4vw,46px); }
.cmethod{ display:flex; gap:1rem; align-items:flex-start; background:#fff; border:1px solid var(--c-line); border-radius:var(--radius);
  padding:1.4rem 1.5rem; box-shadow:var(--shadow-soft); transition:transform .3s var(--ease), box-shadow .3s var(--ease); }
.cmethod:hover{ transform:translateY(-3px); box-shadow:var(--shadow-lift); }
.cmethod__ico{ width:50px; height:50px; flex:0 0 50px; border-radius:13px; background:var(--c-accent-l); display:grid; place-items:center; }
.cmethod__ico .ico{ width:25px; height:25px; color:var(--c-accent); }
.cmethod h2{ font-size:.96rem; margin-bottom:.25rem; color:var(--c-ink); }
.cmethod a,.cmethod .v{ font-weight:800; color:var(--c-ink); font-size:1.05rem; letter-spacing:-.01em; display:block; }
.cmethod a:hover{ color:var(--c-accent); }
.cmethod small{ color:var(--c-muted); font-size:.84rem; display:block; margin-top:.25rem; line-height:1.4; }

.cmap__grid{ display:grid; grid-template-columns:1.08fr .92fr; gap:clamp(28px,4vw,56px); align-items:center; }
.cmap__frame{ border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-lift); border:1px solid var(--c-line); aspect-ratio:4 / 3; background:#fff; }
.cmap__frame iframe{ width:100%; height:100%; border:0; display:block; }
.cinfo ul{ display:block; }
.cinfo li{ display:flex; gap:.75rem; align-items:flex-start; margin-bottom:1.15rem; }
.cinfo .ico{ width:22px; height:22px; color:var(--c-accent); flex:0 0 22px; margin-top:.15rem; }
.cinfo b{ color:var(--c-ink); display:block; font-size:1rem; }
.cinfo span{ color:var(--c-body); font-size:.95rem; }
.cinfo a{ color:var(--c-accent); font-weight:600; }
@media (max-width:860px){ .cmethods{ grid-template-columns:1fr; } .cmap__grid{ grid-template-columns:1fr; } }

/* ---------- PAGE PILIER SERVICE ---------- */
.shero__img{ position:relative; z-index:2; }
.shero__img img{ width:100%; height:100%; min-height:clamp(300px,40vw,470px); object-fit:cover; border-radius:22px; box-shadow:var(--shadow-lift); }
.checkgrid{ display:grid; grid-template-columns:repeat(2,1fr); gap:.7rem 1.7rem; }
.checkgrid li{ display:flex; gap:.6rem; align-items:flex-start; font-size:.97rem; color:var(--c-body); }
.checkgrid .ico{ width:20px; height:20px; color:var(--c-accent); flex:0 0 20px; margin-top:.12rem; }
@media (max-width:620px){ .checkgrid{ grid-template-columns:1fr; } }
.callout{ display:flex; flex-wrap:wrap; align-items:center; gap:1rem 1.4rem; background:var(--c-accent-l); border:1px solid #CFE6F5; border-radius:var(--radius); padding:1.3rem 1.6rem; margin:1.6rem 0; }
.callout .ico{ width:30px; height:30px; color:var(--c-accent); flex:0 0 30px; }
.callout b{ color:var(--c-ink); font-size:1.5rem; letter-spacing:-.02em; } .callout span{ color:var(--c-body); font-size:.96rem; }
.ptable-wrap{ overflow-x:auto; border:1px solid var(--c-line); border-radius:var(--radius); box-shadow:var(--shadow-soft); }
.ptable{ width:100%; border-collapse:collapse; min-width:560px; background:#fff; }
.ptable th,.ptable td{ text-align:left; padding:1rem 1.2rem; border-bottom:1px solid var(--c-line); font-size:.95rem; vertical-align:top; }
.ptable thead th{ background:var(--c-navy); color:#fff; font-weight:700; font-size:.78rem; text-transform:uppercase; letter-spacing:.06em; }
.ptable tbody tr:last-child td{ border-bottom:0; }
.ptable td:first-child{ font-weight:700; color:var(--c-ink); }
.ptable .price{ color:var(--c-accent); font-weight:800; white-space:nowrap; }
.note-small{ font-size:.84rem; color:var(--c-muted); margin-top:.9rem; }

/* ---------- COMPOSANTS V5 (answer card, byline, TOC, estimateur, glossaire) ---------- */
.answer-card{ background:var(--grad); color:#fff; border-radius:var(--radius); padding:clamp(1.3rem,2.5vw,1.7rem); box-shadow:var(--shadow-lift); }
.answer-card .eyebrow{ color:#cdeafd; margin-bottom:.5rem; }
.answer-card p{ margin:0; color:#fff; font-size:1.04rem; line-height:1.6; }
.answer-card b{ color:#fff; }
.byline{ display:flex; flex-wrap:wrap; align-items:center; gap:.5rem 1.2rem; font-size:.86rem; color:var(--c-muted); margin-top:1.1rem; }
.byline span{ display:inline-flex; align-items:center; gap:.4rem; }
.byline b{ color:var(--c-ink); } .byline .ico{ width:16px; height:16px; color:var(--c-accent); }
.toc{ background:var(--c-alt); border:1px solid var(--c-line); border-radius:var(--radius); padding:1.3rem 1.6rem; }
.toc p{ font-weight:800; color:var(--c-ink); margin:0 0 .7rem; font-size:.95rem; }
.toc ol{ margin:0; padding:0; list-style:none; counter-reset:t; display:grid; grid-template-columns:repeat(2,1fr); gap:.45rem 1.4rem; }
.toc li{ counter-increment:t; }
.toc a{ color:var(--c-body); font-size:.94rem; } .toc a:hover{ color:var(--c-accent); }
.toc a::before{ content:counter(t) ". "; color:var(--c-accent); font-weight:700; }
@media (max-width:620px){ .toc ol{ grid-template-columns:1fr; } }
.vs-table td.bad::before{ content:"\2715  "; color:#B23A3A; font-weight:700; }
.vs-table td.good{ color:var(--c-ink); } .vs-table td.good::before{ content:"\2713  "; color:#0E7621; font-weight:700; }
.vs-table thead th:last-child{ background:#0E7621; }
.estimator{ background:#fff; border:1px solid var(--c-line); border-radius:var(--radius); padding:clamp(1.4rem,3vw,1.9rem); box-shadow:var(--shadow-soft); }
.estimator h3{ margin-bottom:1.1rem; }
.estimator .field{ margin-bottom:1rem; }
.estimator__out{ background:var(--c-accent-l); border:1px solid #CFE6F5; border-radius:var(--radius-sm); padding:1.1rem 1.3rem; margin-top:.6rem; }
.estimator__out b{ color:var(--c-accent); font-size:clamp(1.4rem,3vw,1.8rem); letter-spacing:-.02em; line-height:1.1; display:block; }
.estimator__out span{ display:block; color:var(--c-body); font-size:.85rem; margin-top:.3rem; }
.glossary{ display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:1rem 1.8rem; }
.glossary dt{ font-weight:800; color:var(--c-ink); font-size:.96rem; }
.glossary dd{ margin:.15rem 0 0; color:var(--c-body); font-size:.9rem; line-height:1.5; }
.synthese{ background:var(--c-alt); border-left:4px solid var(--c-accent); border-radius:0 var(--radius-sm) var(--radius-sm) 0; padding:1.4rem 1.7rem; max-width:820px; }
.synthese p{ font-weight:800; color:var(--c-ink); margin:0 0 .8rem; }
.synthese ul{ display:grid; gap:.55rem; }
.synthese li{ display:flex; gap:.6rem; align-items:flex-start; color:var(--c-body); font-size:.96rem; }
.synthese .ico{ width:19px; height:19px; color:var(--c-accent); flex:0 0 19px; margin-top:.14rem; }
.srcnote{ font-size:.8rem; color:var(--c-muted); margin-top:.7rem; }
.srcnote a{ color:var(--c-muted); text-decoration:underline; }

/* ---------- RESPONSIVE ---------- */
@media (max-width:1000px){
  .cards6{ grid-template-columns:repeat(2,1fr); }
  .sectors{ grid-template-columns:repeat(2,1fr); }
  .rse,.srow,.contact__grid{ grid-template-columns:1fr; }
  .srow--rev .srow__media{ order:-1; }
  .srow__media img{ height:320px; }
  .stats__grid{ grid-template-columns:repeat(2,1fr); }
  .footer__grid{ grid-template-columns:1fr 1fr; gap:2rem 1.5rem; }
}
@media (max-width:860px){
  .nav__menu,.nav__tel{ display:none; }
  .burger{ display:block; }
}
@media (max-width:520px){
  .nav{ gap:.7rem; }
  .nav__actions{ gap:.55rem; }
  .nav__actions .btn-outline{ padding:.6rem 1rem; font-size:.85rem; }
  .brand__logo{ height:54px; }
}
@media (max-width:560px){
  body{ font-size:16px; }
  .utility__left span:nth-child(2){ display:none; }
  .cards6,.sectors{ grid-template-columns:1fr; }
  .stats__grid{ grid-template-columns:1fr 1fr; }
  .form__row{ grid-template-columns:1fr; }
  .footer__grid{ grid-template-columns:1fr; }
  .hero__cta .btn{ width:100%; justify-content:center; }
}

/* ---------- REDUCED MOTION ---------- */
@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1 !important; transform:none !important; transition:none !important; }
  .marquee__track{ animation:none !important; }
  *{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
}

/* ===== Hub Paris : grille arrondissements ===== */
.arr-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(12px,1.4vw,18px); }
.arr-card{ display:flex; align-items:center; gap:.75rem; padding:.85rem .95rem; background:var(--c-bg); border:1px solid var(--c-line); border-radius:14px; text-decoration:none; color:var(--c-ink); transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s var(--ease); }
.arr-card:hover{ border-color:var(--c-accent); box-shadow:var(--shadow-lift); transform:translateY(-3px); }
.arr-card__n{ font-weight:800; font-size:1.05rem; color:var(--c-accent); background:var(--c-accent-l); width:42px; height:42px; display:grid; place-items:center; border-radius:10px; flex:none; }
.arr-card__t{ display:flex; flex-direction:column; line-height:1.25; min-width:0; }
.arr-card__t b{ font-size:.92rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.arr-card__t small{ color:var(--c-muted); font-size:.76rem; }
.arr-card__a{ width:18px; height:18px; margin-left:auto; color:var(--c-accent); flex:none; opacity:.5; transition:opacity .25s var(--ease),transform .25s var(--ease); }
.arr-card:hover .arr-card__a{ opacity:1; transform:translateX(3px); }
@media(max-width:980px){ .arr-grid{ grid-template-columns:repeat(3,1fr); } }
@media(max-width:640px){ .arr-grid{ grid-template-columns:repeat(2,1fr); } .arr-card__t small{ display:none; } .arr-card__n{ width:38px; height:38px; font-size:.95rem; } }
/* ===== Hub Paris : hero couverture full-bleed ===== */
.phero{ position:relative; overflow:hidden; background:var(--c-navy-700); color:#fff; }
.phero__bg{ position:absolute; inset:0; }
.phero__bg img{ width:100%; height:100%; object-fit:cover; opacity:.30; }
.phero::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(11,42,67,.72) 0%,rgba(11,42,67,.90) 100%); }
.phero__inner{ position:relative; z-index:2; padding-block:clamp(44px,7vw,100px); max-width:1000px; }
.crumb--light a{ color:rgba(255,255,255,.72); } .crumb--light span{ color:rgba(255,255,255,.5); }
.phero__kicker{ display:inline-flex; align-items:center; gap:.5rem; color:var(--c-cyan); font-weight:700; font-size:.82rem; letter-spacing:.05em; text-transform:uppercase; margin:0 0 1rem; }
.phero__kicker .ico{ width:16px; height:16px; }
.phero__h1{ font-size:clamp(2.1rem,5.2vw,3.9rem); line-height:1.04; letter-spacing:-.02em; margin:0; color:#fff; }
.phero__h1 span{ color:var(--c-cyan); }
.phero__sub{ margin-top:1.3rem; max-width:640px; color:rgba(255,255,255,.86); font-size:clamp(1rem,1.4vw,1.15rem); line-height:1.6; }
.phero__cta{ margin-top:1.9rem; display:flex; gap:1.5rem; align-items:center; flex-wrap:wrap; }
.phero__jump{ color:#fff; font-weight:600; display:inline-flex; align-items:center; gap:.5rem; text-decoration:none; }
.phero__jump .ico{ width:18px; height:18px; transition:transform .25s var(--ease); }
.phero__jump:hover{ color:var(--c-cyan); } .phero__jump:hover .ico{ transform:translateX(4px); }
.phero__chips{ margin-top:2.2rem; display:flex; flex-wrap:wrap; gap:.5rem; max-width:700px; }
.phero__chips a{ display:grid; place-items:center; min-width:38px; height:38px; padding:0 .45rem; border-radius:9px; background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.17); color:#fff; text-decoration:none; font-weight:700; font-size:.9rem; transition:transform .2s var(--ease),background .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease); }
.phero__chips a:hover{ background:var(--c-cyan); border-color:var(--c-cyan); color:var(--c-navy-700); transform:translateY(-2px); }
@media(max-width:640px){ .phero__chips a{ min-width:32px; height:32px; font-size:.8rem; } .phero__cta{ gap:1rem; } }
/* ===== Hero service (pages piliers/services) : image humaine dominante ===== */
.shero{ position:relative; background:var(--c-alt); overflow:hidden; }
.shero>.container{ position:relative; z-index:1; }
.shero__copy{ max-width:min(560px,54%); padding-block:clamp(44px,6vw,96px); }
.shero__copy .crumb{ margin-bottom:1.1rem; }
.shero__h1{ font-size:clamp(2rem,4.6vw,3.4rem); line-height:1.06; letter-spacing:-.02em; margin:.2rem 0 0; color:var(--c-ink); }
.shero__h1 span{ color:var(--c-accent); display:block; }
.shero__sub{ margin-top:1.2rem; color:var(--c-body); font-size:clamp(1rem,1.3vw,1.12rem); line-height:1.6; max-width:520px; }
.shero__cta{ margin-top:1.7rem; display:flex; gap:1.4rem; align-items:center; flex-wrap:wrap; }
.shero__kpis{ list-style:none; margin:2rem 0 0; padding:0; display:flex; gap:clamp(18px,2.4vw,34px); flex-wrap:wrap; }
.shero__kpis li{ display:flex; flex-direction:column; }
.shero__kpis b{ font-size:1.5rem; color:var(--c-ink); font-weight:800; line-height:1; }
.shero__kpis span{ font-size:.8rem; color:var(--c-muted); margin-top:.28rem; }
.shero__media{ position:absolute; top:0; right:0; bottom:0; width:46vw; max-width:720px; }
.shero__media img{ width:100%; height:100%; object-fit:cover; display:block; }
.shero__media::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:90px; background:linear-gradient(90deg,var(--c-alt),transparent); z-index:1; }
.shero__badge{ position:absolute; left:22px; bottom:22px; z-index:2; background:#fff; border-radius:12px; padding:.6rem .95rem; box-shadow:var(--shadow-lift); font-size:.85rem; color:var(--c-ink); display:flex; align-items:center; gap:.55rem; }
.shero__badge b{ color:var(--c-accent); font-size:1.25rem; font-weight:800; }
@media(max-width:860px){ .shero{ display:flex; flex-direction:column-reverse; } .shero__media{ position:static; width:100%; max-width:none; height:clamp(230px,46vw,340px); } .shero__media::before{ display:none; } .shero__copy{ max-width:none; padding-block:clamp(30px,7vw,48px); } }
/* ===== Hero service : variante image A GAUCHE ===== */
.shero--left .shero__media{ left:0; right:auto; }
.shero--left .shero__media::before{ left:auto; right:0; background:linear-gradient(270deg,var(--c-alt),transparent); }
.shero--left .shero__copy{ margin-left:auto; }
.shero--left .shero__badge{ left:auto; right:22px; }
@media(max-width:860px){ .shero--left .shero__copy{ margin-left:0; } }

/* ===== Hero service : variante FULL-BLEED (image 100% visible + carte texte) ===== */
.shero--full{ position:relative; min-height:clamp(440px,56vw,600px); display:flex; align-items:center; background:var(--c-alt); overflow:hidden; }
.shero--full .shero__media{ position:absolute; inset:0; width:100%; max-width:none; }
.shero--full .shero__media::before{ content:none; }
.shero--full>.container{ position:relative; z-index:2; padding-block:clamp(40px,6vw,80px); }
.shero--full .shero__copy{ max-width:500px; padding:clamp(26px,3vw,40px); background:rgba(255,255,255,.93); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); border:1px solid rgba(255,255,255,.7); border-radius:18px; box-shadow:var(--shadow-lift); }
.shero--full .crumb--light a{ color:var(--c-body); } .shero--full .crumb--light span{ color:var(--c-muted); }
.shero--full .eyebrow{ color:var(--c-accent); }
.shero--full .shero__h1{ color:var(--c-ink); } .shero--full .shero__h1 span{ color:var(--c-accent); }
.shero--full .shero__sub{ color:var(--c-body); }
.shero--full .shero__kpis b{ color:var(--c-ink); } .shero--full .shero__kpis span{ color:var(--c-muted); }
.shero--full .phero__jump{ color:var(--c-accent); } .shero--full .phero__jump:hover{ color:var(--c-accent-d); }
/* ===== Hero service full-bleed : mobile (image en haut visible, carte dessous) ===== */
@media (max-width:860px){
  .shero--full{ min-height:0; }
  .shero--full .shero__media{ position:static; width:100%; height:clamp(210px,46vw,300px); }
  .shero--full>.container{ padding-block:0; }
  .shero--full .shero__copy{ margin:calc(-1 * clamp(28px,8vw,48px)) auto clamp(28px,7vw,44px); max-width:none; }
}
/* ===== Hero contact : split titre + image accueillante ===== */
.chero__grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(28px,4vw,54px); align-items:center; }
.chero__media{ position:relative; }
.chero__media img{ width:100%; height:100%; max-height:360px; object-fit:cover; border-radius:18px; box-shadow:var(--shadow-lift); display:block; }
@media (max-width:860px){ .chero__grid{ grid-template-columns:1fr; } .chero__media{ order:-1; } .chero__media img{ max-height:240px; } }