  :root{
    --pine:#0E3B2C;      /* vert forêt profond — sections sombres */
    --moss:#1F6B4C;      /* vert principal */
    --sap:#3FA86B;       /* vert frais — accents, CTA */
    --sap-soft:#E4F1E8;  /* vert très clair — fonds */
    --paper:#F6F8F3;     /* fond clair légèrement verdi */
    --paper-2:#FFFFFF;
    --ink:#15211B;       /* texte */
    --ink-soft:#4A5A50;  /* texte secondaire */
    --line:#D7E2D8;      /* filets */
    /* palette thermographique (signature) */
    --t-cold:#16357A;
    --t-cool:#2E8FC4;
    --t-mid:#46B97A;
    --t-warm:#F4C543;
    --t-hot:#E87B33;
    --t-burn:#D6362C;

    --maxw:1180px;
    --r:18px;
    --shadow:0 1px 2px rgba(14,59,44,.06), 0 18px 40px -24px rgba(14,59,44,.35);
  }

  *{box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{
    margin:0; background:var(--paper); color:var(--ink);
    font-family:"Inter",system-ui,sans-serif; font-size:17px; line-height:1.65;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3{font-family:"Bricolage Grotesque","Inter",sans-serif; line-height:1.04; letter-spacing:-.02em; margin:0; font-weight:800}
  p{margin:0}
  a{color:inherit}
  img,svg{display:block; max-width:100%}
  .wrap{max-width:var(--maxw); margin:0 auto; padding:0 24px}

  .mono{font-family:"Space Mono",ui-monospace,monospace}
  .eyebrow{
    font-family:"Space Mono",monospace; font-size:12.5px; letter-spacing:.18em;
    text-transform:uppercase; color:var(--moss); display:inline-flex; align-items:center; gap:9px;
  }
  .eyebrow::before{content:""; width:26px; height:2px; background:var(--sap); display:inline-block}

  /* ---------- boutons ---------- */
  .btn{
    display:inline-flex; align-items:center; gap:9px; font-weight:600; font-size:15.5px;
    padding:14px 22px; border-radius:999px; text-decoration:none; cursor:pointer; white-space:nowrap;
    border:1px solid transparent; transition:transform .15s ease, box-shadow .2s ease, background .2s ease;
  }
  .btn-primary{background:var(--sap); color:#062a1c; box-shadow:0 10px 24px -12px rgba(63,168,107,.9)}
  .btn-primary:hover{transform:translateY(-2px); background:#46b975}
  .btn-ghost{background:transparent; color:var(--pine); border-color:var(--line)}
  .btn-ghost:hover{border-color:var(--moss); background:var(--paper-2)}
  :focus-visible{outline:3px solid var(--sap); outline-offset:3px; border-radius:6px}

  /* ---------- header ---------- */
  header.site{position:sticky; top:0; z-index:50; backdrop-filter:saturate(1.4) blur(10px);
    background:rgba(246,248,243,.82); border-bottom:1px solid var(--line)}
  .nav{display:flex; align-items:center; justify-content:space-between; gap:14px; height:68px}
  .brand{display:flex; align-items:center; gap:11px; min-width:0; text-decoration:none; font-family:"Bricolage Grotesque",sans-serif; font-weight:800; font-size:20px; color:var(--pine); letter-spacing:-.02em}
  .brand .mark{width:34px; height:34px; flex:none}
  .jp-logo{background-image:url('data:image/jpeg;base64,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'); background-size:cover; background-position:center; background-repeat:no-repeat; border-radius:9px; box-shadow:0 2px 7px rgba(14,59,44,.18)}
  .nav-links{display:flex; gap:30px; align-items:center}
  .nav-links a{text-decoration:none; font-size:15px; color:var(--ink-soft); font-weight:500}
  .nav-links a:hover{color:var(--pine)}
  .nav .btn{padding:10px 18px; flex:none}
  .nav-cta .cta-short{display:none}
  @media(max-width:860px){ .nav-links a{display:none} }
  @media(max-width:560px){
    .nav{height:60px}
    .brand{font-size:17px; gap:9px}
    .brand .mark{width:30px; height:30px}
    .nav-cta .cta-full{display:none}
    .nav-cta .cta-short{display:inline}
    .nav .btn{padding:9px 16px; font-size:14.5px}
  }

  /* ---------- hero ---------- */
  .hero{padding:72px 0 64px}
  .hero-grid{display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center}
  .hero h1{font-size:clamp(40px,6vw,68px)}
  .hero h1 .hl{color:var(--moss); position:relative; white-space:nowrap}
  .hero h1 .hl::after{content:""; position:absolute; left:-2px; right:-2px; bottom:.08em; height:.18em;
    background:linear-gradient(90deg,var(--t-cool),var(--t-warm),var(--t-burn)); opacity:.55; border-radius:3px; z-index:-1}
  .hero p.lead{font-size:19px; color:var(--ink-soft); margin-top:22px; max-width:38ch}
  .hero-cta{display:flex; gap:14px; margin-top:30px; flex-wrap:wrap}
  .trust{display:flex; gap:26px; margin-top:34px; flex-wrap:wrap}
  .trust div{display:flex; align-items:center; gap:9px; font-size:14.5px; color:var(--ink-soft)}
  .trust svg{flex:none; color:var(--sap)}
  @media(max-width:880px){ .hero-grid{grid-template-columns:1fr; gap:38px} .hero{padding:46px 0 40px} }

  /* ---------- signature : loupe thermique ---------- */
  .thermo{position:relative; border-radius:24px; overflow:hidden; box-shadow:var(--shadow);
    border:1px solid var(--line); background:#06121d; aspect-ratio:4/3.4; touch-action:none; cursor:none}
  .thermo:focus-visible{outline:3px solid var(--sap); outline-offset:3px}
  .thermo .layer{position:absolute; inset:0}
  .thermo .layer svg{width:100%; height:100%}
  .thermo canvas{position:absolute; inset:0; width:100%; height:100%;
    clip-path:circle(var(--lr,70px) at var(--lx,55%) var(--ly,42%))}
  .thermo .grain{position:absolute; inset:0; pointer-events:none; opacity:.10; mix-blend-mode:overlay;
    background-image:radial-gradient(rgba(255,255,255,.8) .5px, transparent .6px); background-size:3px 3px;
    clip-path:circle(var(--lr,70px) at var(--lx,55%) var(--ly,42%))}
  .thermo .loupe{position:absolute; left:var(--lx,55%); top:var(--ly,42%);
    width:calc(var(--lr,70px)*2); height:calc(var(--lr,70px)*2); transform:translate(-50%,-50%);
    border-radius:999px; pointer-events:none; border:3px solid #E7C667;
    box-shadow:0 0 0 2px rgba(0,0,0,.4), 0 10px 28px rgba(0,0,0,.5), inset 0 0 26px rgba(0,0,0,.4)}
  .thermo .loupe::after{content:""; position:absolute; right:-13px; bottom:-13px; width:26px; height:9px;
    border-radius:5px; background:linear-gradient(#f3e0a8,#caa84b); transform:rotate(45deg)}
  .thermo .readout{position:absolute; left:var(--lx,55%); top:var(--ly,42%);
    transform:translate(-50%, calc(-1 * var(--lr,70px) - 26px));
    font-family:"Space Mono",monospace; font-size:12.5px; font-weight:700; padding:4px 9px; border-radius:8px;
    background:rgba(6,18,29,.82); color:#fff; border:1px solid rgba(255,255,255,.18);
    pointer-events:none; white-space:nowrap; backdrop-filter:blur(2px)}
  .thermo .readout .sw{display:inline-block; width:8px; height:8px; border-radius:99px; margin-right:6px;
    vertical-align:middle; background:#36c98e}
  .thermo .corner{position:absolute; top:13px; left:14px; font-family:"Space Mono",monospace;
    font-size:11px; letter-spacing:.12em; color:#bfe9cf; display:flex; align-items:center; gap:7px; z-index:2}
  .thermo .corner .dot{width:7px; height:7px; border-radius:99px; background:#ff5d4d; box-shadow:0 0 0 4px rgba(255,93,77,.25)}
  .thermo .legend{position:absolute; right:14px; top:18px; bottom:36px; width:9px; border-radius:6px; z-index:2;
    background:linear-gradient(to bottom,#fff2c4,#e0452a,#ef8b2c,#f4c63d,#a8d84b,#36c98e,#1f9bd6,#0a1a4a)}
  .thermo .legend-labels{position:absolute; right:26px; top:14px; bottom:30px; z-index:2;
    display:flex; flex-direction:column; justify-content:space-between; font-family:"Space Mono",monospace;
    font-size:10px; color:#cfe0ff; text-align:right}
  .thermo-cap{font-family:"Space Mono",monospace; font-size:12.5px; color:var(--ink-soft); margin-top:14px; text-align:center}
  .thermo-cap b{color:var(--moss)}
  @keyframes pulse{0%,100%{opacity:.55}50%{opacity:1}}
  .live{animation:pulse 2.4s ease-in-out infinite}

  /* ---------- bandeau chiffres déperdition ---------- */
  .strip{background:var(--pine); color:#dff0e6}
  .strip .wrap{display:grid; grid-template-columns:repeat(4,1fr); gap:8px; padding:38px 24px}
  .stat{padding:6px 18px; border-left:1px solid rgba(255,255,255,.13)}
  .stat:first-child{border-left:0}
  .stat .n{font-family:"Bricolage Grotesque",sans-serif; font-size:34px; font-weight:800; color:#fff; letter-spacing:-.02em}
  .stat .n em{font-style:normal; color:var(--sap)}
  .stat .l{font-size:13.5px; color:#a9c8b6; margin-top:4px; line-height:1.4}
  @media(max-width:760px){ .strip .wrap{grid-template-columns:1fr 1fr; gap:22px 8px} }

  /* ---------- sections génériques ---------- */
  section{padding:88px 0}
  .sec-head{max-width:60ch; margin-bottom:46px}
  .sec-head h2{font-size:clamp(30px,4vw,44px); margin-top:14px}
  .sec-head p{color:var(--ink-soft); margin-top:16px; font-size:18px}

  /* ---------- services ---------- */
  .cards{display:grid; grid-template-columns:repeat(2,1fr); gap:18px}
  .card{background:var(--paper-2); border:1px solid var(--line); border-radius:var(--r); padding:30px;
    position:relative; overflow:hidden; transition:transform .2s ease, box-shadow .25s ease, border-color .2s ease}
  .card:hover{transform:translateY(-4px); box-shadow:var(--shadow); border-color:#bcd4c1}
  .card .ico{width:50px; height:50px; border-radius:13px; display:grid; place-items:center;
    background:var(--sap-soft); color:var(--moss); margin-bottom:18px}
  .card h3{font-size:21px; margin-bottom:9px}
  .card p{color:var(--ink-soft); font-size:15.5px}
  .card .tags{display:flex; flex-wrap:wrap; gap:7px; margin-top:16px}
  .card .tags span{font-family:"Space Mono",monospace; font-size:11.5px; padding:4px 9px; border-radius:999px;
    background:var(--sap-soft); color:var(--moss)}
  .card::after{content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--sap); opacity:0; transition:opacity .2s}
  .card:hover::after{opacity:1}
  @media(max-width:720px){ .cards{grid-template-columns:1fr} }

  /* ---------- process ---------- */
  .process{background:var(--sap-soft)}
  .steps{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; counter-reset:step}
  .step{background:var(--paper-2); border-radius:var(--r); padding:30px; border:1px solid var(--line)}
  .step .num{font-family:"Space Mono",monospace; font-size:13px; color:var(--sap); font-weight:700; letter-spacing:.1em}
  .step h3{font-size:20px; margin:12px 0 8px}
  .step p{color:var(--ink-soft); font-size:15.5px}
  .step .bar{height:3px; width:46px; background:linear-gradient(90deg,var(--t-cool),var(--t-burn)); border-radius:3px; margin-top:18px; opacity:.6}
  @media(max-width:760px){ .steps{grid-template-columns:1fr} }

  /* ---------- certification ---------- */
  .cert{display:grid; grid-template-columns:1.1fr .9fr; gap:50px; align-items:center}
  .cert .badges{display:flex; flex-wrap:wrap; gap:14px; margin-top:24px}
  .cert .badge{display:flex; align-items:center; gap:11px; background:var(--paper-2); border:1px solid var(--line);
    border-radius:12px; padding:13px 16px; font-size:14.5px; font-weight:500}
  .cert .badge svg{color:var(--sap); flex:none}
  .cert-visual{background:var(--pine); border-radius:24px; padding:38px; color:#dff0e6; position:relative; overflow:hidden}
  .cert-visual .ring{position:absolute; right:-60px; top:-60px; width:220px; height:220px; border-radius:99px;
    background:radial-gradient(circle,var(--moss),transparent 70%); opacity:.5}
  .cert-visual blockquote{font-family:"Bricolage Grotesque",sans-serif; font-size:23px; line-height:1.3; font-weight:600; margin:0; position:relative}
  .cert-visual cite{display:block; margin-top:18px; font-style:normal; font-size:14px; color:#a9c8b6; font-family:"Space Mono",monospace}
  @media(max-width:820px){ .cert{grid-template-columns:1fr; gap:30px} }

  /* ---------- contact ---------- */
  .contact{background:var(--pine); color:#eaf4ee}
  .contact h2{color:#fff}
  .contact .sec-head p{color:#a9c8b6}
  .contact-grid{display:grid; grid-template-columns:.85fr 1.15fr; gap:48px}
  .contact-info a.big{font-family:"Bricolage Grotesque",sans-serif; font-size:27px; color:#fff; text-decoration:none; font-weight:700; display:block; letter-spacing:-.01em}
  .contact-info a.big:hover{color:var(--sap)}
  .contact-info .row{display:flex; align-items:center; gap:13px; padding:18px 0; border-bottom:1px solid rgba(255,255,255,.1)}
  .contact-info .row svg{color:var(--sap); flex:none}
  .contact-info .row small{display:block; color:#a9c8b6; font-family:"Space Mono",monospace; font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; margin-bottom:2px}
  .contact-fiche{margin-top:26px; max-width:320px; border-radius:14px; overflow:hidden; box-shadow:0 10px 30px rgba(0,0,0,.28); border:1px solid rgba(255,255,255,.08)}
  .contact-fiche img{display:block; width:100%; height:auto; aspect-ratio:1/1; object-fit:cover}
  @media(max-width:820px){ .contact-fiche{max-width:260px} }
  form{background:var(--paper-2); border-radius:var(--r); padding:30px; color:var(--ink)}
  .field{margin-bottom:16px}
  .field label{display:block; font-size:13.5px; font-weight:600; margin-bottom:7px}
  .field input,.field select,.field textarea{width:100%; padding:12px 14px; border:1px solid var(--line);
    border-radius:11px; font:inherit; font-size:15px; background:var(--paper); color:var(--ink)}
  .field input:focus,.field select:focus,.field textarea:focus{outline:none; border-color:var(--sap); box-shadow:0 0 0 3px rgba(63,168,107,.18)}
  .field textarea{resize:vertical; min-height:96px}
  .two{display:grid; grid-template-columns:1fr 1fr; gap:14px}
  form .btn-primary{width:100%; justify-content:center; margin-top:6px}
  .form-note{font-size:12.5px; color:var(--ink-soft); text-align:center; margin-top:12px}
  @media(max-width:820px){ .contact-grid{grid-template-columns:1fr; gap:30px} .two{grid-template-columns:1fr} }

  /* ---------- footer ---------- */
  footer.site{background:#08231a; color:#8fb4a0; padding:40px 0; font-size:14px}
  footer.site .wrap{display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; align-items:center}
  footer.site a{color:#bfe9cf; text-decoration:none}
  footer.site a:hover{text-decoration:underline}
  .foot-brand{display:flex; align-items:center; gap:14px}
  .foot-logo{width:54px; height:54px; flex:none}

  /* reveal au scroll */
  .reveal-on-scroll{opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s ease}
  .reveal-on-scroll.in{opacity:1; transform:none}
  @media(prefers-reduced-motion:reduce){
    html{scroll-behavior:auto}
    .reveal-on-scroll{opacity:1; transform:none; transition:none}
    .live{animation:none}
    .btn:hover,.card:hover{transform:none}
  }

  /* ---------- assistant robot ---------- */
  .cb-launch{position:fixed; right:22px; bottom:22px; z-index:90; width:60px; height:60px; border-radius:999px;
    background:var(--moss); color:#fff; border:none; cursor:pointer; display:grid; place-items:center;
    box-shadow:0 14px 32px -8px rgba(14,59,44,.6); transition:transform .18s ease, background .2s ease}
  .cb-launch:hover{transform:translateY(-3px); background:var(--pine)}
  .cb-launch svg{width:30px; height:30px}
  .cb-badge{position:absolute; top:-2px; right:-2px; width:15px; height:15px; border-radius:99px; background:var(--sap); border:2px solid var(--paper)}
  .cb-panel{position:fixed; right:22px; bottom:92px; z-index:91; width:352px; max-width:calc(100vw - 32px);
    height:524px; max-height:calc(100vh - 130px); background:var(--paper-2); border:1px solid var(--line);
    border-radius:20px; box-shadow:0 26px 64px -18px rgba(14,59,44,.55); display:none; flex-direction:column; overflow:hidden}
  .cb-panel.open{display:flex}
  .cb-head{background:var(--pine); color:#fff; padding:15px 17px; display:flex; align-items:center; gap:11px}
  .cb-head .cb-ava{width:38px; height:38px; flex:none}
  .cb-head b{font-family:"Bricolage Grotesque",sans-serif; font-size:16px; font-weight:800; line-height:1.1}
  .cb-head small{color:#a9c8b6; font-size:11.5px; font-family:"Space Mono",monospace}
  .cb-head .cb-close{margin-left:auto; background:transparent; border:none; color:#bfe9cf; cursor:pointer; font-size:24px; line-height:1; padding:0 4px}
  .cb-head .cb-close:hover{color:#fff}
  .cb-body{flex:1; overflow-y:auto; padding:16px; display:flex; flex-direction:column; gap:10px; background:var(--paper)}
  .cb-msg{max-width:86%; padding:10px 13px; border-radius:15px; font-size:14.5px; line-height:1.5}
  .cb-bot{align-self:flex-start; background:var(--paper-2); border:1px solid var(--line); border-bottom-left-radius:5px; color:var(--ink)}
  .cb-user{align-self:flex-end; background:var(--sap); color:#062a1c; border-bottom-right-radius:5px}
  .cb-msg b{font-weight:600}
  .cb-msg a.cb-wa{display:inline-flex; align-items:center; gap:7px; margin-top:9px; background:#25D366; color:#fff;
    padding:8px 14px; border-radius:999px; text-decoration:none; font-weight:600; font-size:13.5px}
  .cb-msg a.cb-tel{display:inline-block; margin-top:8px; color:var(--moss); font-weight:600; text-decoration:none; font-size:13.5px}
  .cb-msg a.cb-tel:hover{text-decoration:underline}
  .cb-chips{display:flex; flex-wrap:wrap; gap:8px; padding:0 16px 12px; background:var(--paper)}
  .cb-chip{background:var(--sap-soft); color:var(--moss); border:1px solid #cfe5d6; border-radius:999px;
    padding:8px 13px; font-size:13px; font-weight:600; cursor:pointer; font-family:inherit}
  .cb-chip:hover{background:#d4ebdc}
  .cb-input{display:flex; gap:8px; padding:12px; border-top:1px solid var(--line); background:var(--paper-2)}
  .cb-input input{flex:1; border:1px solid var(--line); border-radius:999px; padding:10px 15px; font:inherit; font-size:14px; background:var(--paper); color:var(--ink)}
  .cb-input input:focus{outline:none; border-color:var(--sap); box-shadow:0 0 0 3px rgba(63,168,107,.18)}
  .cb-input button{background:var(--moss); color:#fff; border:none; border-radius:999px; width:42px; height:42px; flex:none; cursor:pointer; display:grid; place-items:center}
  .cb-input button:hover{background:var(--pine)}
  @media(prefers-reduced-motion:reduce){ .cb-launch:hover{transform:none} }
  @media(max-width:480px){ .cb-panel{right:10px; left:10px; width:auto; bottom:86px} .cb-launch{right:16px; bottom:16px} }
  /* ---------- FAQ ---------- */
  .faq-list{max-width:820px}
  .faq-item{border:1px solid var(--line); border-radius:14px; background:var(--paper-2); margin-bottom:12px; overflow:hidden}
  .faq-item summary{list-style:none; cursor:pointer; padding:20px 22px; font-family:"Bricolage Grotesque",sans-serif;
    font-weight:600; font-size:18px; color:var(--pine); display:flex; align-items:center; justify-content:space-between; gap:14px}
  .faq-item summary::-webkit-details-marker{display:none}
  .faq-item summary .pm{flex:none; width:22px; height:22px; position:relative}
  .faq-item summary .pm::before,.faq-item summary .pm::after{content:""; position:absolute; background:var(--sap); border-radius:2px}
  .faq-item summary .pm::before{left:0; right:0; top:10px; height:2px}
  .faq-item summary .pm::after{top:0; bottom:0; left:10px; width:2px; transition:transform .2s ease}
  .faq-item[open] summary .pm::after{transform:scaleY(0)}
  .faq-item .faq-a{padding:0 22px 20px; color:var(--ink-soft); font-size:15.5px; line-height:1.6}
  .faq-item summary:hover{background:var(--sap-soft)}
  @media(prefers-reduced-motion:reduce){ .faq-item summary .pm::after{transition:none} }

  /* ---------- footer légal ---------- */
  .foot-legal-wrap{margin-top:22px; padding-top:18px; border-top:1px solid rgba(255,255,255,.08)}
  .foot-legal summary{cursor:pointer; color:#bfe9cf; font-size:13px; list-style:none; font-weight:600}
  .foot-legal summary::-webkit-details-marker{display:none}
  .foot-legal[open] summary{margin-bottom:10px}
  .foot-legal .ml{font-size:12.5px; line-height:1.65; color:#8fb4a0; max-width:78ch}
  .foot-legal .ml b{color:#bfe9cf}
  /* ---------- secteur / villes ---------- */
  .villes-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:14px}
  .ville{background:var(--paper-2); border:1px solid var(--line); border-radius:14px; padding:20px; transition:transform .18s ease, box-shadow .22s ease, border-color .2s ease}
  .ville:hover{transform:translateY(-3px); box-shadow:var(--shadow); border-color:#bcd4c1}
  .ville .dept{font-family:"Space Mono",monospace; font-size:11px; font-weight:700; color:var(--moss); background:var(--sap-soft); padding:3px 9px; border-radius:99px; display:inline-block; margin-bottom:11px}
  .ville h3{font-size:16px; margin-bottom:7px; line-height:1.25; color:var(--pine)}
  .ville p{font-size:13.8px; color:var(--ink-soft); line-height:1.5}
  .villes-note{margin-top:22px; font-size:14.5px; color:var(--ink-soft)}
  .villes-note a{color:var(--moss); font-weight:600}
  @media(max-width:820px){ .villes-grid{grid-template-columns:1fr 1fr} }
  @media(max-width:520px){ .villes-grid{grid-template-columns:1fr} .ville:hover{transform:none} }
  /* ---------- simulateur ---------- */
  #simulateur .sim-card{background:var(--paper-2); border:1px solid var(--line); border-radius:20px; padding:34px; max-width:880px; margin:0 auto; box-shadow:var(--shadow)}
  .sim-step{margin-bottom:24px}
  .sim-step .q{font-family:"Bricolage Grotesque",sans-serif; font-weight:700; font-size:17px; color:var(--pine); margin-bottom:12px; display:flex; gap:10px; align-items:baseline}
  .sim-step .q .n{font-family:"Space Mono",monospace; font-size:13px; color:var(--sap); font-weight:700}
  .sim-opts{display:flex; flex-wrap:wrap; gap:10px}
  .sim-opt{appearance:none; border:1.5px solid var(--line); background:var(--paper); color:var(--ink); border-radius:11px; padding:11px 18px; font:inherit; font-size:15px; font-weight:600; cursor:pointer; transition:background .15s,border-color .15s,color .15s}
  .sim-opt:hover{border-color:var(--moss)}
  .sim-opt[aria-pressed="true"]{background:var(--moss); border-color:var(--moss); color:#fff}
  .sim-result{margin-top:8px; border-top:1px solid var(--line); padding-top:26px; display:none}
  .sim-result.show{display:block; animation:simIn .3s ease}
  @keyframes simIn{from{opacity:0; transform:translateY(8px)}to{opacity:1; transform:none}}
  .sim-result h3{font-size:20px; color:var(--pine); margin-bottom:6px}
  .sim-result .sub{color:var(--ink-soft); font-size:14px; font-family:"Space Mono",monospace; margin-bottom:18px}
  .sim-diags{list-style:none; display:grid; gap:10px; margin-bottom:20px}
  .sim-diags li{display:flex; gap:12px; align-items:flex-start; background:var(--sap-soft); border-radius:11px; padding:13px 16px}
  .sim-diags li.cond{background:var(--paper); border:1px dashed var(--line)}
  .sim-diags li .chk{flex:none; width:22px; height:22px; border-radius:99px; background:var(--moss); color:#fff; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:700; margin-top:1px}
  .sim-diags li.cond .chk{background:#B8893A}
  .sim-diags li .d-name{font-weight:600; color:var(--ink); font-size:15px}
  .sim-diags li .d-note{display:block; font-size:13px; color:var(--ink-soft); margin-top:2px; line-height:1.45}
  .sim-disclaimer{font-size:13px; color:var(--ink-soft); background:var(--paper); border-left:3px solid var(--sap); padding:12px 16px; border-radius:8px; margin-bottom:20px; line-height:1.55}
  .sim-cta{display:flex; flex-wrap:wrap; gap:12px}
  @media(max-width:560px){ #simulateur .sim-card{padding:24px 18px} .sim-opt{flex:1 1 auto; text-align:center} .sim-cta .btn{flex:1 1 auto; justify-content:center} }

  /* ---------- barre de contact fixe mobile ---------- */
  .mobile-cta{position:fixed; left:0; right:0; bottom:0; z-index:95; display:none; gap:10px;
    padding:10px 12px calc(10px + env(safe-area-inset-bottom)); background:rgba(255,255,255,.96);
    backdrop-filter:saturate(1.4) blur(8px); border-top:1px solid var(--line)}
  .mobile-cta a{flex:1; display:flex; align-items:center; justify-content:center; gap:8px; padding:14px; border-radius:12px; font-weight:700; font-size:15px; text-decoration:none}
  .mobile-cta .m-call{background:var(--pine); color:#fff}
  .mobile-cta .m-wa{background:var(--sap); color:#062a1c}
  .mobile-cta svg{width:18px; height:18px; flex:none}
  @media(max-width:760px){
    .mobile-cta{display:flex}
    body{padding-bottom:78px}
    .cb-launch{bottom:86px}
    .cb-panel{bottom:154px}
  }
  /* ---------- carte interactive zone ---------- */
  .zone-map-wrap{display:grid; grid-template-columns:1.45fr 1fr; gap:24px; align-items:stretch; margin-bottom:48px}
  .zone-map{position:relative; background:var(--paper-2); border:1px solid var(--line); border-radius:18px; padding:16px; display:grid; gap:8px;
    grid-template-columns:repeat(4,1fr); grid-template-rows:repeat(4,1fr); min-height:330px;
    grid-template-areas:". d95 d95 ." "d78 d92 d93 d77" "d78 d75 d94 d77" ". d91 d91 .";}
  .zone-dept{border-radius:12px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:2px; border:1.5px solid transparent; padding:6px; font-weight:700}
  .zone-dept .num{font-family:"Space Mono",monospace; font-size:16px}
  .zone-dept .nm{font-size:10.5px; font-weight:600; opacity:.92}
  .zone-dept.on{background:var(--sap-soft); color:var(--moss); border-color:#bcd4c1; cursor:pointer; transition:background .15s,transform .15s}
  .zone-dept.on:hover,.zone-dept.on.active{background:var(--moss); color:#fff; transform:translateY(-2px)}
  .zone-dept.off{background:var(--paper); color:#9aa8a0; border-color:var(--line); font-weight:600}
  .z95{grid-area:d95}.z78{grid-area:d78}.z92{grid-area:d92}.z75{grid-area:d75}.z93{grid-area:d93}.z94{grid-area:d94}.z91{grid-area:d91}.z77{grid-area:d77}
  .zone-info{background:var(--pine); color:#dff0e6; border-radius:18px; padding:26px; display:flex; flex-direction:column; justify-content:center}
  .zone-info .zi-dept{font-family:"Bricolage Grotesque",sans-serif; font-size:22px; font-weight:800; color:#fff; margin-bottom:4px}
  .zone-info .zi-hint{font-size:12px; color:#a9c8b6; margin-bottom:14px; font-family:"Space Mono",monospace; letter-spacing:.06em; text-transform:uppercase}
  .zone-info ul{list-style:none; display:flex; flex-wrap:wrap; gap:8px}
  .zone-info li{background:rgba(255,255,255,.1); border-radius:8px; padding:6px 11px; font-size:13.5px}
  @media(max-width:760px){ .zone-map-wrap{grid-template-columns:1fr} .zone-map{min-height:280px} }
  @media(max-width:480px){ .zone-dept .nm{display:none} .zone-map{padding:11px; gap:6px} }

  /* ---------- réglementation ---------- */
  .reg-sub{font-weight:700; color:var(--pine); margin-bottom:14px; font-size:15px}
  .reg-timeline{display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:24px}
  .reg-year{background:var(--paper-2); border:1px solid var(--line); border-radius:14px; padding:22px; position:relative; overflow:hidden}
  .reg-year::before{content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--sap)}
  .reg-year .yr{font-family:"Space Mono",monospace; font-weight:700; color:var(--sap); font-size:13.5px; letter-spacing:.06em}
  .reg-year h4{font-family:"Bricolage Grotesque",sans-serif; font-size:18px; color:var(--pine); margin:6px 0}
  .reg-year p{font-size:14px; color:var(--ink-soft); line-height:1.5}
  .reg-grid{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:22px}
  .reg-card{background:var(--sap-soft); border-radius:14px; padding:22px}
  .reg-card h4{font-family:"Bricolage Grotesque",sans-serif; font-size:17px; color:var(--moss); margin-bottom:7px}
  .reg-card p{font-size:14px; color:var(--ink-soft); line-height:1.55}
  @media(max-width:680px){ .reg-timeline{grid-template-columns:1fr} .reg-grid{grid-template-columns:1fr} }

  /* ---------- rappel ---------- */
  #rappel .rap-card{background:var(--pine); border-radius:20px; padding:30px; display:grid; grid-template-columns:1fr auto; gap:22px; align-items:center}
  #rappel .rap-card h3{font-family:"Bricolage Grotesque",sans-serif; color:#fff; font-size:23px; margin-bottom:6px}
  #rappel .rap-card p{color:#a9c8b6; font-size:14.5px}
  .rap-form{display:flex; flex-wrap:wrap; gap:10px; align-items:center; justify-content:flex-end}
  .rap-form input,.rap-form select{border:none; border-radius:10px; padding:13px 14px; font:inherit; font-size:14.5px; background:#fff; color:var(--ink); min-width:128px}
  @media(max-width:760px){ #rappel .rap-card{grid-template-columns:1fr} .rap-form{justify-content:stretch} .rap-form input,.rap-form select,.rap-form .btn{flex:1 1 140px} }

  /* ---------- glossaire ---------- */
  .gloss-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:14px}
  .gloss-item{background:var(--paper-2); border:1px solid var(--line); border-radius:14px; padding:20px}
  .gloss-item dt{font-family:"Bricolage Grotesque",sans-serif; font-weight:700; color:var(--pine); font-size:16px; margin-bottom:6px}
  .gloss-item dd{margin:0; font-size:13.6px; color:var(--ink-soft); line-height:1.55}
  @media(max-width:820px){ .gloss-grid{grid-template-columns:1fr 1fr} }
  @media(max-width:520px){ .gloss-grid{grid-template-columns:1fr} }
  /* ---------- avis ---------- */
  .avis-band .avis-card{background:var(--sap-soft); border:1px solid #cfe3d4; border-radius:20px; padding:28px 30px; display:grid; grid-template-columns:auto 1fr auto; gap:24px; align-items:center}
  .avis-band .avis-stars{font-size:26px; color:#E8B84B; letter-spacing:2px; line-height:1}
  .avis-band .avis-txt h3{font-family:"Bricolage Grotesque",sans-serif; color:var(--pine); font-size:20px; margin-bottom:4px}
  .avis-band .avis-txt p{color:var(--ink-soft); font-size:14.5px}
  @media(max-width:680px){ .avis-band .avis-card{grid-template-columns:1fr; text-align:center; gap:14px} .avis-band .btn{justify-self:center} }
  /* ---------- témoignages / avis clients ---------- */
  .tem-rating{display:flex; align-items:center; gap:12px; justify-content:center; margin-top:12px; flex-wrap:wrap}
  .tem-rating .big-note{font-family:"Bricolage Grotesque",sans-serif; font-weight:800; font-size:28px; color:var(--pine); line-height:1}
  .tem-rating .stars{color:#E8B84B; font-size:20px; letter-spacing:2px}
  .tem-rating .cnt{color:var(--ink-soft); font-size:13.5px}
  .tem-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:30px}
  .avis-c{background:var(--paper-2); border:1px solid var(--line); border-radius:16px; padding:22px; margin:0; display:flex; flex-direction:column; gap:12px}
  .avis-c .stars{color:#E8B84B; font-size:15px; letter-spacing:2px}
  .avis-c blockquote{margin:0; font-size:14.5px; line-height:1.55; color:var(--ink); flex:1}
  .avis-c figcaption{display:flex; align-items:center; gap:10px; font-size:13.5px}
  .avis-c .av-ini{width:32px; height:32px; border-radius:99px; color:#fff; font-weight:700; display:flex; align-items:center; justify-content:center; font-size:14px; flex:none; text-transform:uppercase}
  .avis-c .av-name{font-weight:600; color:var(--ink)}
  .avis-c .av-src{color:#9aa8a0}
  .tem-cta{text-align:center; margin-top:28px}
  @media(max-width:880px){ .tem-grid{grid-template-columns:1fr 1fr} }
  @media(max-width:560px){ .tem-grid{grid-template-columns:1fr} }
  /* ---------- badge note hero ---------- */
  .hero-trust{display:inline-flex; align-items:center; gap:8px; margin-top:18px; text-decoration:none; font-size:14px; color:var(--ink-soft); font-weight:500}
  .hero-trust .stars{color:#E8B84B; font-size:15px; letter-spacing:1px}
  .hero-trust strong{color:var(--pine); font-weight:800; font-family:"Bricolage Grotesque",sans-serif}
  .hero-trust:hover{color:var(--pine)}

/* Liens des cartes villes (page d'accueil -> pages villes dédiées) */
a.ville{display:block; text-decoration:none; color:inherit; cursor:pointer}
a.ville:focus-visible{outline:2px solid var(--sap); outline-offset:2px}

/* Pages villes dédiées */
.city-breadcrumb{font-size:12.5px; color:var(--ink-soft); margin-bottom:14px}
.city-breadcrumb a{color:var(--moss); text-decoration:none}
.city-breadcrumb a:hover{text-decoration:underline}
.city-hero{padding:52px 0 36px}
.city-hero .eyebrow{color:var(--moss)}
.city-hero h1{font-family:"Bricolage Grotesque",sans-serif; font-size:clamp(28px,4vw,42px); line-height:1.12; color:var(--pine); margin:10px 0 16px; letter-spacing:-.01em}
.city-hero .lead{font-size:17px; color:var(--ink-soft); max-width:640px; line-height:1.6}
.city-cta{display:flex; gap:12px; flex-wrap:wrap; margin-top:24px}
.city-section{padding:40px 0}
.city-section h2{font-family:"Bricolage Grotesque",sans-serif; font-size:24px; color:var(--pine); margin-bottom:14px}
.city-section p{color:var(--ink-soft); line-height:1.7; font-size:15.5px; max-width:760px}
.city-diag-list{display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:10px; margin-top:20px; list-style:none; padding:0}
.city-diag-list li{background:var(--paper-2); border:1px solid var(--line); border-radius:10px; padding:12px 14px; font-size:14px; color:var(--pine); font-weight:600}
.city-trust{display:flex; gap:22px; flex-wrap:wrap; margin-top:20px; padding:20px; background:var(--sap-soft); border-radius:14px}
.city-trust div{font-size:14px; color:var(--moss); font-weight:600; display:flex; align-items:center; gap:8px}
.city-sibling{margin-top:16px; display:flex; gap:10px; flex-wrap:wrap}
.city-sibling a{font-size:13.5px; color:var(--moss); background:var(--sap-soft); padding:7px 13px; border-radius:99px; text-decoration:none; font-weight:600}
.city-sibling a:hover{background:var(--moss); color:#fff}
.city-faq{margin-top:14px}
.city-faq details{border-bottom:1px solid var(--line); padding:14px 0}
.city-faq summary{cursor:pointer; font-weight:600; color:var(--pine); font-size:15px}
.city-faq p{margin-top:8px}
