:root {
      --ink: #0b1826; --blue: #0c5ca8; --blue2: #1688d4; --steel: #dce6ee;
      --mist: #f3f7fa; --white: #fff; --muted: #627080; --line: #d8e2ea;
      --shadow: 0 18px 50px rgba(5, 28, 50, .12); --radius: 18px;
}

/* Consentement aux statistiques */
.cookie-consent {
  position: fixed;
  z-index: 9999;
  right: 22px;
  bottom: 22px;
  left: 22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  max-width: 980px;
  margin: 0 auto;
  padding: 22px 24px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 14px;
  color: #fff;
  background: #0b1826;
  box-shadow: 0 18px 55px rgba(0,0,0,.32);
}
.cookie-consent__copy { max-width: 660px; }
.cookie-consent__copy strong { display: block; margin-bottom: 5px; font-size: 17px; }
.cookie-consent__copy p { margin: 0; color: #d4dee7; font-size: 14px; line-height: 1.55; }
.cookie-consent__copy a { color: #8fd0fa; text-decoration: underline; }
.cookie-consent__actions { display: flex; flex: 0 0 auto; gap: 10px; align-items: center; }
.cookie-consent__actions button { min-height: 44px; cursor: pointer; }
.cookie-consent__reject {
  padding: 10px 15px;
  border: 1px solid rgba(255,255,255,.32);
  border-radius: 8px;
  color: #fff;
  background: transparent;
  font: inherit;
  font-weight: 800;
}
.cookie-consent__accept { white-space: nowrap; }
.cookie-settings {
  padding: 0;
  border: 0;
  color: inherit;
  background: transparent;
  font: inherit;
  text-decoration: underline;
  cursor: pointer;
}

@media (max-width: 720px) {
  .cookie-consent {
    right: 12px;
    bottom: 72px;
    left: 12px;
    display: block;
    padding: 18px;
  }
  .cookie-consent__actions { margin-top: 15px; }
  .cookie-consent__actions button { flex: 1; }
}
    * { box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body { margin: 0; color: var(--ink); background: var(--white); font: 16px/1.65 Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, sans-serif; }
    a { color: inherit; text-decoration: none; }
    button, input, textarea, select { font: inherit; }
    .wrap { width: min(1160px, calc(100% - 40px)); margin-inline: auto; }
    .nav { position: sticky; z-index: 20; top: 0; border-bottom: 1px solid rgba(216,226,234,.8); background: rgba(255,255,255,.92); backdrop-filter: blur(15px); }
    .navin { min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
    .brand { display: flex; align-items: center; gap: 12px; font-size: 20px; font-weight: 900; letter-spacing: .12em; }
    .brandlogo { width: 188px; height: 58px; object-fit: contain; object-position: left center; }
    .mark { width: 39px; height: 39px; display: grid; place-items: center; color: white; border-radius: 10px; background: linear-gradient(145deg,var(--blue2),var(--blue)); box-shadow: 0 8px 20px rgba(12,92,168,.28); }
    .mark svg { width: 25px; }
    .links { display: flex; align-items: center; gap: 26px; font-size: 14px; font-weight: 700; }
    .btn { display: inline-flex; justify-content: center; align-items: center; gap: 10px; padding: 13px 20px; border: 0; border-radius: 10px; color: white; background: var(--blue); font-weight: 800; cursor: pointer; box-shadow: 0 8px 24px rgba(12,92,168,.20); transition: transform .2s, background .2s; }
    .btn:hover { transform: translateY(-2px); background: #084a88; }
    .btn.secondary { color: var(--ink); background: white; box-shadow: none; border: 1px solid var(--line); }
    .hero { position: relative; overflow: hidden; padding:0; color: white; background: linear-gradient(90deg,rgba(5,18,31,.98) 0%,rgba(5,18,31,.88) 47%,rgba(5,18,31,.22) 100%),url('../images/hero-bg.webp') center/cover; }
    .hero:before { content:""; position:absolute; inset:0; opacity:.12; background-image: linear-gradient(30deg,transparent 48%,#5cb4ed 49%,#5cb4ed 50%,transparent 51%); background-size: 84px 84px; }
    .hero:after { content:""; position:absolute; width:580px; height:580px; right:-210px; top:-250px; border-radius:50%; background:radial-gradient(circle,rgba(22,136,212,.5),transparent 68%); }
    .heroin { position:relative; z-index:1; min-height: 580px; display:grid; grid-template-columns: 1.15fr .85fr; gap:70px; align-items:center; padding: 40px 0 48px; }
    .eyebrow { display:inline-flex; align-items:center; gap:9px; margin-bottom:18px; color:#8fd0fa; font-size:13px; font-weight:900; letter-spacing:.13em; text-transform:uppercase; }
    .eyebrow:before { content:""; width:28px; height:2px; background:currentColor; }
    h1 { max-width: 780px; margin:0 0 18px; font-size:clamp(38px,4.2vw,54px); line-height:1.04; letter-spacing:-.04em; }
    .lead { max-width:650px; margin:0 0 24px; color:#cbd6df; font-size:clamp(17px,1.6vw,20px); }
    .actions { display:flex; flex-wrap:wrap; gap:12px; }
    .hero .secondary { color:white; background:transparent; border-color:rgba(255,255,255,.28); }
    .hero .eyebrow { margin-bottom:4px; padding:7px 12px; border:1px solid rgba(143,208,250,.32); border-radius:999px; color:#e1f4ff; background:rgba(22,136,212,.18); font-size:15px; text-shadow:0 2px 8px rgba(0,0,0,.55); transform:translateY(-14px); }
    .hero-logo { width:min(230px,64vw); height:auto; margin:0 0 4px; padding:0; background:transparent; filter:drop-shadow(0 4px 4px rgba(0,0,0,.8)) drop-shadow(0 12px 24px rgba(0,0,0,.55)); }
    .proofline { display:flex; flex-wrap:wrap; gap:10px; margin-top:25px; }
    .proofline span { padding:7px 11px; border:1px solid rgba(255,255,255,.18); border-radius:999px; color:#d9e7f1; background:rgba(255,255,255,.07); font-size:13px; font-weight:700; }
    .card ul { margin:16px 0 0; padding-left:20px; color:var(--muted); }
    .card li { margin:7px 0; }
    .panel { padding:30px; border:1px solid rgba(255,255,255,.14); border-radius:var(--radius); background:rgba(255,255,255,.07); backdrop-filter:blur(10px); box-shadow:var(--shadow); }
    .paneltitle { margin:0 0 20px; font-size:14px; color:#8fd0fa; text-transform:uppercase; letter-spacing:.1em; }
    .cap { display:grid; grid-template-columns:44px 1fr; gap:14px; align-items:start; padding:16px 0; border-bottom:1px solid rgba(255,255,255,.1); }
    .cap:last-child { border:0; padding-bottom:0; }
    .num { width:38px; height:38px; display:grid; place-items:center; border-radius:8px; color:#8fd0fa; background:rgba(22,136,212,.16); font-weight:900; }
    .cap b { display:block; margin-bottom:2px; }
    .cap span { color:#aebbc7; font-size:14px; }
    section { padding:105px 0; }
    .sectionhead { max-width:700px; margin-bottom:52px; }
    .sectionhead h2 { margin:6px 0 16px; font-size:clamp(34px,4vw,50px); line-height:1.12; letter-spacing:-.035em; }
    .sectionhead p { margin:0; color:var(--muted); font-size:18px; }
    .light .eyebrow, .solutions .eyebrow { color:var(--blue); }
    .grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
    .card { min-height:250px; padding:30px; border:1px solid var(--line); border-radius:var(--radius); background:white; transition:transform .2s,box-shadow .2s,border .2s; }
    .card:hover { transform:translateY(-5px); border-color:#9dc9e8; box-shadow:var(--shadow); }
    .icon { width:52px; height:52px; display:grid; place-items:center; margin-bottom:25px; border-radius:13px; color:var(--blue); background:#eaf5fc; font-size:24px; font-weight:900; }
    .card h3 { margin:0 0 10px; font-size:21px; }
    .card p { margin:0; color:var(--muted); }
    .service-links { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
    .service-card { display:block; min-height:285px; padding:30px; border:1px solid var(--line); border-radius:var(--radius); background:white; box-shadow:0 8px 24px rgba(13,41,65,.06); transition:transform .2s,box-shadow .2s,border .2s; }
    .service-card:hover { transform:translateY(-4px); border-color:#9dc9e8; box-shadow:var(--shadow); }
    .service-card > span { display:inline-grid; place-items:center; min-width:52px; height:40px; padding:0 12px; border-radius:9px; color:var(--blue); background:#eaf5fc; font-size:13px; font-weight:900; letter-spacing:.08em; }
    .service-card h3 { margin:24px 0 10px; font-size:25px; }
    .service-card p { margin:0 0 24px; color:var(--muted); }
    .service-card strong { color:var(--blue); }
    .featurephoto { width:100%; height:420px; display:block; margin:0 0 34px; object-fit:cover; border-radius:var(--radius); box-shadow:var(--shadow); }
    .about { display:grid; grid-template-columns:1fr 1fr; gap:65px; align-items:center; }
    .aboutphotos { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
    .aboutphotos figure { margin:0; overflow:hidden; border-radius:var(--radius); background:var(--ink); box-shadow:var(--shadow); }
    .aboutphotos img { width:100%; height:370px; display:block; object-fit:cover; }
    .aboutphotos figcaption { padding:16px 18px; color:white; font-weight:800; }
    .gallery { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
    .gallery figure { position:relative; min-height:330px; margin:0; overflow:hidden; border-radius:var(--radius); background:#0a1724; box-shadow:var(--shadow); }
    .gallery img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .35s; }
    .gallery figure:hover img { transform:scale(1.035); }
    .gallery figcaption { position:absolute; inset:auto 0 0; padding:60px 24px 22px; color:white; background:linear-gradient(transparent,rgba(3,13,23,.92)); font-size:20px; font-weight:900; }
    .gallery small { display:block; margin-top:4px; color:#c3d1dd; font-size:12px; font-weight:600; }
    .gallery .wide { grid-column:span 2; }
    .light { background:var(--mist); }
    .methodphoto { width:100%; height:370px; display:block; margin-bottom:35px; object-fit:cover; border-radius:var(--radius); box-shadow:var(--shadow); }
    .process { display:grid; grid-template-columns:repeat(4,1fr); gap:0; counter-reset:step; }
    .step { position:relative; padding:28px 25px; border-left:1px solid var(--line); counter-increment:step; }
    .step:before { content:"0" counter(step); display:block; margin-bottom:22px; color:var(--blue); font-size:14px; font-weight:900; letter-spacing:.1em; }
    .step h3 { margin:0 0 8px; font-size:19px; }
    .step p { margin:0; color:var(--muted); font-size:14px; }
    .dark { color:white; background:#101f2e; }
    .why { display:grid; grid-template-columns:.8fr 1.2fr; gap:70px; align-items:center; }
    .why h2 { margin:5px 0 22px; font-size:clamp(34px,4vw,50px); line-height:1.12; }
    .why p { color:#b6c1cb; }
    .checks { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
    .qualityphoto { width:100%; height:300px; grid-column:1/-1; object-fit:cover; border-radius:14px; opacity:.9; }
    .check { padding:22px; border:1px solid rgba(255,255,255,.12); border-radius:14px; background:rgba(255,255,255,.04); }
    .stats { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:34px; }
    .stat { padding:25px; border:1px solid var(--line); border-radius:14px; background:white; box-shadow:0 8px 24px rgba(13,41,65,.06); }
    .stat strong { display:block; color:var(--blue); font-size:28px; line-height:1.15; }
    .stat span { display:block; margin-top:8px; color:var(--muted); font-size:14px; }
    .check b { display:block; margin-bottom:6px; }
    .tick { color:#70c5fb; margin-right:7px; }
    .contact { display:grid; grid-template-columns:.75fr 1.25fr; gap:70px; align-items:start; }
    .contact h2 { margin:5px 0 18px; font-size:clamp(34px,4vw,50px); line-height:1.1; }
    .contact p { color:var(--muted); }
    form { display:grid; grid-template-columns:1fr 1fr; gap:18px; padding:32px; border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); }
    label { display:grid; gap:7px; color:#334252; font-size:13px; font-weight:800; }
    label.full { grid-column:1/-1; }
    input,textarea,select { width:100%; border:1px solid #cbd7e1; border-radius:9px; padding:13px 14px; color:var(--ink); background:#fbfdfe; outline:none; }
    input:focus,textarea:focus,select:focus { border-color:var(--blue2); box-shadow:0 0 0 3px rgba(22,136,212,.12); }
    textarea { min-height:120px; resize:vertical; }
    .formnote { grid-column:1/-1; margin:0; color:var(--muted); font-size:12px; }
    footer { padding:34px 0; color:#aebbc7; background:#08131e; }
    .foot { display:flex; justify-content:space-between; gap:25px; align-items:center; flex-wrap:wrap; }
    .foot .brand { color:white; font-size:16px; }
    .foot nav { color:#d4dde5; font-size:13px; }
    .foot nav a:hover { color:white; text-decoration:underline; }
    .mobile-menu { display:none; position:relative; }
    .mobile-menu summary { list-style:none; padding:10px 13px; border:1px solid var(--line); border-radius:9px; color:var(--ink); background:white; font-size:13px; font-weight:900; cursor:pointer; }
    .mobile-menu summary::-webkit-details-marker { display:none; }
    .mobile-menu nav { position:absolute; top:calc(100% + 10px); right:0; width:min(290px,calc(100vw - 28px)); padding:10px; border:1px solid var(--line); border-radius:12px; background:white; box-shadow:var(--shadow); }
    .mobile-menu nav a { display:block; padding:11px 12px; border-radius:8px; font-size:14px; font-weight:800; }
    .mobile-menu nav a:hover { background:var(--mist); }
    .skip-link { position:absolute; top:-100px; left:14px; z-index:100; padding:12px 18px; border-radius:8px; color:white; background:var(--ink); font-weight:800; transition:top .2s; }
    .skip-link:focus { top:14px; }
    a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, summary:focus-visible { outline:3px solid var(--blue2); outline-offset:3px; }
    @media (prefers-reduced-motion: reduce) {
      html { scroll-behavior:auto; }
      *, *:before, *:after { animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
    }
    .faqlist { display:grid; gap:14px; max-width:820px; }
    .faqitem { padding:22px 26px; border:1px solid var(--line); border-radius:14px; background:white; }
    .faqitem summary { display:flex; justify-content:space-between; align-items:center; gap:16px; font-weight:800; font-size:17px; cursor:pointer; list-style:none; }
    .faqitem summary::-webkit-details-marker { display:none; }
    .faqitem summary:after { content:"+"; flex:none; display:grid; place-items:center; width:26px; height:26px; border-radius:50%; color:var(--blue); background:#eaf5fc; font-size:18px; font-weight:900; transition:transform .2s; }
    .faqitem[open] summary:after { transform:rotate(45deg); }
    .faqitem p { margin:14px 0 0; color:var(--muted); }
    .trustbar { display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
    .trustbar span { padding:8px 12px; border:1px solid var(--line); border-radius:999px; color:var(--ink); background:var(--mist); font-size:13px; font-weight:700; }
    .mobile-cta { display:none; position:fixed; left:0; right:0; bottom:0; z-index:30; gap:1px; background:var(--line); box-shadow:0 -8px 24px rgba(5,28,50,.16); padding-bottom:env(safe-area-inset-bottom); }
    .mobile-cta a { flex:1; display:flex; align-items:center; justify-content:center; gap:8px; padding:16px 10px; color:var(--ink); background:white; font-weight:800; font-size:14px; }
    .mobile-cta a.primary { color:white; background:var(--blue); }
    .hp { position:absolute; left:-9999px; top:-9999px; height:0; overflow:hidden; }
    .consent { display:flex; flex-direction:row; align-items:flex-start; gap:10px; font-size:13px; color:var(--muted); font-weight:400; }
    .consent input { width:auto; margin-top:3px; }
    .urgency { display:flex; flex-direction:row; align-items:center; gap:10px; padding:12px 14px; border:1px solid #f2c978; border-radius:9px; color:#6d4a00; background:#fff9eb; font-weight:700; }
    .urgency input { width:auto; }
    .checklist { display:grid; gap:14px; margin:30px 0; }
    .checklist div { padding:20px 22px; border-left:4px solid var(--blue); border-radius:0 12px 12px 0; background:var(--mist); }
    .checklist b { display:block; margin-bottom:4px; }
    .checklist span { color:var(--muted); }
    .formnote.is-success { color:#0a7d3d; font-weight:700; }
    .formnote.is-error { color:#c0392b; font-weight:700; }
    .legal { padding:60px 0 100px; }
    .legal .backlink { display:inline-flex; align-items:center; gap:6px; margin-bottom:28px; color:var(--blue); font-weight:800; font-size:14px; }
    .legal h1 { max-width:none; font-size:clamp(30px,4vw,42px); line-height:1.15; letter-spacing:-.02em; margin-bottom:10px; }
    .legal .updated { color:var(--muted); font-size:14px; margin-bottom:40px; }
    .legal .box { max-width:760px; }
    .legal h2 { font-size:21px; margin:36px 0 12px; }
    .legal p, .legal li { color:var(--muted); }
    .legal ul { padding-left:20px; margin:10px 0; }
    .legal li { margin-bottom:6px; }
    .subhero { padding:72px 0; color:white; background:linear-gradient(110deg,#071523 0%,#0d2a44 66%,#0c5ca8 140%); }
    .breadcrumb { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:22px; color:#c2d4e2; font-size:13px; }
    .breadcrumb a { text-decoration:underline; text-underline-offset:3px; }
    .subhero h1 { margin-bottom:20px; font-size:clamp(38px,5vw,60px); }
    .subhero p { max-width:760px; margin:0; color:#d6e3ec; font-size:20px; }
    .content-grid { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:68px; align-items:start; }
    .service-copy h2 { margin:0 0 18px; font-size:clamp(30px,4vw,44px); line-height:1.15; }
    .service-copy h3 { margin:38px 0 12px; font-size:24px; }
    .service-copy p, .service-copy li { color:var(--muted); }
    .service-copy ul { padding-left:22px; }
    .service-copy li { margin:8px 0; }
    .aside-card { position:sticky; top:100px; padding:28px; border:1px solid var(--line); border-radius:var(--radius); background:var(--mist); }
    .aside-card h2 { margin:0 0 12px; font-size:25px; }
    .aside-card p { color:var(--muted); }
    .aside-card .btn { width:100%; margin-top:8px; }
    .info-list { display:grid; gap:0; margin:22px 0; border-top:1px solid var(--line); }
    .info-list div { padding:14px 0; border-bottom:1px solid var(--line); }
    .info-list b { display:block; margin-bottom:2px; }
    .info-list span { color:var(--muted); font-size:14px; }
    .service-features { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; margin:34px 0; }
    .service-feature { padding:22px; border:1px solid var(--line); border-radius:14px; background:white; }
    .service-feature b { display:block; margin-bottom:7px; }
    .service-feature span { color:var(--muted); font-size:14px; }
    .related-links { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
    .related-links a { padding:22px; border:1px solid var(--line); border-radius:14px; background:white; color:var(--blue); font-weight:900; }
    .related-links a:hover { border-color:#9dc9e8; box-shadow:var(--shadow); }
    .page-cta { padding:72px 0; color:white; background:#101f2e; }
    .page-cta .wrap { display:flex; justify-content:space-between; gap:36px; align-items:center; }
    .page-cta h2 { margin:0 0 10px; font-size:clamp(30px,4vw,44px); }
    .page-cta p { max-width:680px; margin:0; color:#c2ced8; }
    .page-cta .btn { flex:none; }
@media (max-width: 960px) {
      .links { display:none; } .mobile-menu { display:block; } .heroin,.why,.contact,.about,.content-grid { grid-template-columns:1fr; } .heroin { gap:38px; padding:42px 0 56px; } .grid,.gallery,.service-links { grid-template-columns:1fr 1fr; } .process { grid-template-columns:1fr 1fr; } .why,.contact,.about,.content-grid { gap:45px; } .aside-card { position:static; } .mobile-cta { display:flex; } body { padding-bottom:60px; }
    }
    @media (max-width: 590px) {
      .wrap { width:min(100% - 28px,1160px); } .navin { min-height:70px; } .brandlogo { width:150px; height:50px; } .hero-logo { width:min(210px,60vw); margin-bottom:3px; } .heroin { min-height:auto; } section { padding:72px 0; } .hero { padding:0; } .grid,.gallery,.process,.checks,form,.aboutphotos,.stats,.service-links,.service-features,.related-links { grid-template-columns:1fr; } .gallery .wide { grid-column:auto; } .featurephoto,.methodphoto { height:280px; } .aboutphotos img { height:280px; } .step { border-left:0; border-top:1px solid var(--line); } label.full,.formnote { grid-column:auto; } .panel { padding:22px; } .foot { align-items:flex-start; flex-direction:column; } .subhero { padding:54px 0; } .subhero p { font-size:18px; } .page-cta .wrap { align-items:flex-start; flex-direction:column; } .page-cta .btn { width:100%; }
    }


/* Language switch — FR/NL */
.lang-switch{display:flex;align-items:center;gap:2px;padding:3px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:12px;font-weight:800;letter-spacing:.04em;flex:0 0 auto}
.lang-switch a,.lang-switch span{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:28px;padding:0 7px;border-radius:999px;color:var(--blue);text-decoration:none}
.lang-switch span[aria-current="page"]{background:var(--blue);color:#fff}
.lang-switch a:hover,.lang-switch a:focus-visible{background:var(--mist)}
@media(max-width:960px){.lang-switch{margin-left:auto}.navin>.lang-switch{display:flex}}
@media(max-width:420px){.lang-switch a,.lang-switch span{min-width:27px;height:26px;padding:0 5px}.brandlogo{max-width:128px}}
