/* evoshifting : socle commun à toutes les pages (couleurs, typographie, boutons, navigation, pied de page, assistant, lanceur). */
:root{
  --ink:#141414; --ink-2:#2A2A2A; --text-2:#4B4B4B; --text-3:#6B6B6B; --line:#E4E4E4;
  --page:#FFFFFF; --panel:#F4F4F4; --black:#0A0A0A; --black-2:#171717; --black-3:#262626;
  /* Verts du site : #367B53 (boutons, liens), #52A876 (logo, traits), #2F6F48 (survol),
     #1F4D33 (panneau foncé), #A8DCB9 (vert clair sur fond noir), #EEF6F1 (fonds de pastilles) */
  --green:#367B53; --green-hover:#2F6F48; --green-logo:#52A876; --green-deep:#1F4D33; --green-light:#A8DCB9; --green-50:#EEF6F1;
  --sans:'Geist',system-ui,sans-serif; --r:24px; --ease:cubic-bezier(.16,1,.3,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px}
body{margin:0;background:var(--page);color:var(--ink);font:16px/1.55 var(--sans);-webkit-font-smoothing:antialiased}
::selection{background:var(--green);color:#fff}
:focus-visible{outline:2px solid var(--green-logo);outline-offset:3px;border-radius:6px}
a{color:inherit}
.wrap{width:min(1328px,100% - 80px);margin-inline:auto}
.mark{display:block}
.strokes line{stroke:var(--green-logo);stroke-linecap:round}
.btn{display:inline-flex;align-items:center;gap:10px;height:48px;padding:0 22px;border-radius:6px;font:500 16px var(--sans);text-decoration:none;white-space:nowrap;transition:background .2s,border-color .2s,transform .2s var(--ease)}
.btn-green{background:var(--green);color:#fff}
.btn-green:hover{background:var(--green-hover)}
.btn-ghost{color:#fff;border:1px solid rgba(255,255,255,.3)}
.btn-ghost:hover{border-color:#fff}
.btn-line{border:1px solid #CFCFCF;color:var(--ink)}
.btn-line:hover{border-color:var(--ink)}
.btn:active{transform:translateY(1px)}
.more{display:inline-flex;align-items:center;gap:8px;font-weight:500;text-decoration:none}
.more svg{width:18px;height:18px;transition:transform .25s var(--ease)}
.more:hover svg{transform:translateX(3px)}
.nav{position:fixed;top:16px;left:16px;right:16px;z-index:50;height:64px;border-radius:18px;display:flex;align-items:center;gap:30px;padding:0 16px 0 24px;color:#fff;transition:background .3s}
.nav.solid{background:rgba(34,34,34,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.logo{display:flex;align-items:center;text-decoration:none;color:#fff}
.logo svg{height:var(--lh,40px);width:auto}
.chapters{display:flex;gap:4px;list-style:none;margin:0;padding:0;font-weight:500}
.chapters a{display:block;padding:8px 12px;border-radius:10px;text-decoration:none;color:#D4D4D4;transition:color .2s,background .2s}
.chapters a:hover{color:#fff}
.chapters a.on{color:#fff;background:rgba(255,255,255,.08)}
.nav .right{margin-left:auto;display:flex;align-items:center;gap:18px;font-weight:500}
.lang{font-size:14px;color:#BDBDBD}
.nav-contact{color:#D4D4D4;text-decoration:none;padding:8px 4px;transition:color .2s}
.nav-contact:hover,.nav-contact.on{color:#fff}
.progress{position:absolute;left:24px;right:24px;bottom:0;height:2px;border-radius:2px;background:rgba(255,255,255,.08);overflow:hidden;opacity:0;transition:opacity .3s}
.nav.solid .progress{opacity:1}
.progress i{display:block;height:100%;width:0;background:var(--green-logo)}
.burger{display:none;margin-left:auto;background:none;border:1px solid rgba(255,255,255,.3);color:#fff;border-radius:10px;width:44px;height:44px}
.drawer{display:none;background:#181818;color:#fff}
.foot{background:var(--black);color:#BDBDBD;margin:16px;border-radius:var(--r);font-size:14.5px}
.foot .wrap{padding:70px 0 34px;display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:40px}
.foot h2.fh{margin:0 0 14px;color:#fff;font-weight:500;font-size:15px;letter-spacing:0}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.foot a{text-decoration:none}
.foot .base a:hover{color:#fff}
.foot a:hover{color:#fff}
.foot .base{grid-column:1/-1;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;border-top:1px solid #262626;padding-top:26px;font-size:13px;color:#8C8C8C}
@media (max-width:1180px){
  .chapters a{padding:8px 8px}
  .nav{gap:18px}
}
@media (max-width:1100px){
  .chapters,.nav .right{display:none}
  .burger{display:grid;place-items:center}
  .drawer.open{display:grid;position:fixed;top:88px;left:16px;right:16px;z-index:49;background:rgba(24,24,24,.97);border-radius:18px;padding:12px;gap:2px}
  .drawer a{padding:14px 12px;color:#fff;text-decoration:none;border-radius:10px;font-size:18px}
  .drawer a.on{background:rgba(255,255,255,.08)}
}
@media (max-width:720px){
  .wrap{width:calc(100% - 40px)}
  .nav{left:8px;right:8px;top:8px;padding:0 12px 0 16px}
  .drawer.open{left:8px;right:8px;top:80px}
  .foot .wrap{grid-template-columns:1fr 1fr}
  .foot .brandcol{grid-column:1/-1}
}
.skip{position:fixed;left:16px;top:16px;z-index:100;background:var(--green);color:#fff;padding:12px 18px;border-radius:10px;font-weight:500;text-decoration:none;transform:translateY(-200%);transition:transform .2s}
.skip:focus{transform:none}
.evo-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.lang b{color:#fff;font-weight:500}
.lang a{color:#D4D4D4;text-decoration:none}
.lang a:hover{color:#fff}
.chapters .drop{position:relative}
.chapters .drop>button{all:unset;cursor:pointer;display:flex;align-items:center;gap:6px;padding:8px 12px;border-radius:10px;color:#D4D4D4;font-weight:500}
.chapters .drop>button:hover,.chapters .drop>button.on,.chapters .drop.open>button{color:#fff;background:rgba(255,255,255,.08)}
.chapters .drop>button:focus-visible{outline:2px solid var(--green-logo)}
.drawer-group{margin:10px 12px 2px;font-size:13px;color:#B5B5B5;letter-spacing:.04em;text-transform:uppercase}
.drawer small{display:block;font-size:13px;color:#BDBDBD}
.drawer-foot{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:12px;border-top:1px solid #2E2E2E;margin-top:8px}
.btn-line-dark{border:1px solid rgba(255,255,255,.3);color:#fff}
.more.light{color:#fff}
.evo-chat-header{ background: #111; color: #fff; padding: 14px 18px; display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
.evo-chat-avatar{ width: 36px; height: 36px; border-radius: 50%; background: #367B53; display: flex; align-items: center; justify-content: center; font-size: 1rem; flex-shrink: 0; }
.evo-chat-header-info{ flex: 1; }
.evo-chat-header-name{ font-weight: 700; font-size: .95rem; }
.evo-chat-header-status{ font-size: .72rem; color: #a0aec0; display: flex; align-items: center; gap: 5px; }
.evo-chat-header-status::before{ content: ''; display: inline-block; width: 7px; height: 7px; background: #367B53; border-radius: 50%; }
.evo-chat-close{ background: none; border: none; color: #6b6b6b; cursor: pointer; font-size: 1.3rem; line-height: 1; padding: 2px 4px; }
.evo-chat-close:hover{ color: #fff; }
.evo-chat-messages{ flex: 1; overflow-y: auto; padding: 14px; display: flex; flex-direction: column; gap: 10px; scroll-behavior: smooth; }
.evo-chat-messages::-webkit-scrollbar{ width: 3px; }
.evo-chat-messages::-webkit-scrollbar-thumb{ background: #e2e8f0; border-radius: 4px; }
.evo-msg{ max-width: 84%; display: flex; flex-direction: column; gap: 3px; }
.evo-msg.bot{ align-self: flex-start; }
.evo-msg.user{ align-self: flex-end; }
.evo-msg-bubble{ padding: 10px 14px; border-radius: 14px; font-size: .88rem; line-height: 1.5; word-break: break-word; }
.evo-msg.bot .evo-msg-bubble{ background: #f4f4f4; color: #1a1a1a; border-bottom-left-radius: 4px; }
.evo-msg.user .evo-msg-bubble{ background: #111; color: #fff; border-bottom-right-radius: 4px; }
.evo-msg-time{ font-size: .68rem; color: #6b6b6b; padding: 0 4px; }
.evo-msg.user .evo-msg-time{ text-align: right; }
.evo-typing{ align-self: flex-start; background: #f4f4f4; padding: 11px 16px; border-radius: 14px 14px 14px 4px; display: none; }
.evo-typing span{ display: inline-block; width: 6px; height: 6px; background: #aaa; border-radius: 50%; margin: 0 2px; animation: evoDot 1.2s infinite; }
.evo-typing span:nth-child(2){ animation-delay: .2s; }
.evo-typing span:nth-child(3){ animation-delay: .4s; }
@keyframes evoDot{ 0%,80%,100%{ transform:translateY(0); opacity:.4; } 40%{ transform:translateY(-5px); opacity:1; } }
.evo-chat-suggestions{ display: flex; flex-wrap: wrap; gap: 6px; padding: 6px 14px 10px; }
.evo-suggestion{ font-size: .75rem; padding: 5px 10px; border-radius: 20px; border: 1px solid #e2e8f0; background: #f8fafc; color: #444; cursor: pointer; transition: all .15s; font-family: inherit; }
.evo-suggestion:hover{ border-color: #367B53; color: #367B53; background: #f0f7f2; }
.evo-chat-email-bar{ border-top: 1px solid #eaeaea; padding: 10px 14px; background: #f8fafc; display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.evo-chat-email-bar input{ flex: 1; border: 1px solid #cbd5e0; border-radius: 8px; padding: 8px 12px; font-size: .85rem; font-family: inherit; outline: none; color: #1a1a1a; background: #fff; }
.evo-chat-email-bar input:focus{ border-color: #367B53; }
.evo-chat-email-bar button{ background: #367B53; color: #fff; border: none; border-radius: 8px; padding: 8px 14px; font-size: .8rem; font-weight: 700; cursor: pointer; font-family: inherit; white-space: nowrap; }
.evo-chat-email-bar button:hover{ background: #2F6F48; }
.evo-chat-email-sent{ font-size: .78rem; color: #367B53; padding: 8px 14px; text-align: center; flex-shrink: 0; display: none; }
.evo-chat-input-area{ border-top: 1px solid #eaeaea; padding: 10px 12px; display: flex; gap: 8px; align-items: flex-end; flex-shrink: 0; }
#evo-chat-input{ flex: 1; border: 1px solid #e2e8f0; border-radius: 10px; padding: 9px 13px; font-size: .88rem; font-family: inherit; resize: none; outline: none; line-height: 1.4; max-height: 90px; overflow-y: auto; color: #1a1a1a; transition: border-color .2s; }
#evo-chat-input:focus{ border-color: #367B53; }
#evo-chat-send{ width: 36px; height: 36px; border-radius: 8px; border: none; background: #111; color: #fff; cursor: pointer; flex-shrink: 0; display: flex; align-items: center; justify-content: center; transition: background .2s; }
#evo-chat-send:hover{ background: #367B53; }
#evo-chat-send:disabled{ opacity: .4; cursor: not-allowed; }
#evo-chat-send svg{ width: 14px; height: 14px; }
#evo-chat-btn{ position: fixed; bottom: 24px; right: 16px; z-index: 990; width: 52px; height: 52px; border-radius: 50%; background: #111; border: none; cursor: pointer; box-shadow: 0 4px 20px rgba(0,0,0,.25); display: flex; align-items: center; justify-content: center; transition: background .2s, transform .2s; }
#evo-chat-btn:hover{ background: #367B53; transform: scale(1.07); }
#evo-chat-btn svg{ width: 24px; height: 24px; }
#evo-chat-window{ position: fixed; bottom: 88px; right: 16px; z-index: 995; width: min(370px, calc(100vw - 24px)); height: min(520px, calc(100dvh - 110px)); background: #fff; border-radius: 16px; box-shadow: 0 12px 48px rgba(0,0,0,.18); display: none; flex-direction: column; overflow: hidden; font-family: 'Nunito Sans', sans-serif; }
@keyframes evoPulse{ 0%,100%{ box-shadow:0 4px 20px rgba(0,0,0,.25); } 50%{ box-shadow:0 4px 28px rgba(54,123,83,.5); } }
.evo-sr{ position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.evo-launch{ position: fixed; right: 16px; bottom: 24px; z-index: 990; display: flex; flex-direction: column; align-items: flex-end; gap: 12px; font-family: inherit; }
.evo-launch-btn{
  display: inline-flex; align-items: center; gap: 10px; height: 52px; padding: 0 20px 0 8px; border: 0; border-radius: 26px; cursor: pointer;
  background: #111; color: #fff; font: inherit; font-size: .92rem; font-weight: 700;
  box-shadow: 0 10px 28px -10px rgba(17, 17, 17, .55); transition: background .2s, transform .3s var(--evo-courbe);
}
.evo-launch-btn:hover{ background: #1f2a24; transform: translateY(-2px); }
.evo-launch-btn:focus-visible{ outline: 2px solid #367B53; outline-offset: 3px; }
.evo-launch-btn .evo-launch-ico{ width: 36px; height: 36px; border-radius: 50%; background: #367B53; display: flex; align-items: center; justify-content: center; }
.evo-launch-btn .evo-launch-ico svg{ width: 18px; height: 18px; }
.evo-launch[data-open] .evo-launch-btn{ background: #367B53; }
.evo-launch-panel{
  width: min(340px, calc(100vw - 32px)); padding: 16px; border-radius: 16px;
  background: rgba(255, 255, 255, .94); -webkit-backdrop-filter: blur(16px) saturate(1.5); backdrop-filter: blur(16px) saturate(1.5);
  border: 1px solid rgba(17, 17, 17, .08); box-shadow: 0 24px 60px -24px rgba(17, 17, 17, .45);
  transform-origin: bottom right; opacity: 0; visibility: hidden; transform: translateY(8px) scale(.97);
  transition: opacity .2s ease, transform .3s var(--evo-courbe), visibility .2s;
}
.evo-launch[data-open] .evo-launch-panel{ opacity: 1; visibility: visible; transform: none; }
.evo-launch-title{ margin: 2px 4px 10px; font-size: 1rem; font-weight: 800; color: #111; }
.evo-launch-item{ display: flex; align-items: center; gap: 12px; width: 100%; padding: 10px; border: 0; border-radius: 10px; background: none; cursor: pointer; text-align: left; text-decoration: none; color: #111; font: inherit; }
.evo-launch-item:hover, .evo-launch-item:focus-visible{ background: #f0f7f2; outline: none; }
.evo-launch-item i{ width: 36px; height: 36px; flex-shrink: 0; border-radius: 10px; background: #eaf4ee; color: #367B53; display: flex; align-items: center; justify-content: center; font-style: normal; }
.evo-launch-item i svg{ width: 18px; height: 18px; }
.evo-launch-item b{ display: block; font-size: .94rem; }
.evo-launch-item small{ display: block; font-size: .8rem; color: #5f5f5f; margin-top: 1px; }
.evo-launch-item .evo-launch-go{ margin-left: auto; color: #6b6b6b; }
.evo-launch-sep{ height: 1px; background: #eef1ef; margin: 8px 4px 12px; }
.evo-launch-cta{ display: flex; align-items: center; justify-content: center; gap: 8px; height: 46px; border-radius: 10px; background: #367B53; color: #fff; font-weight: 700; font-size: .94rem; text-decoration: none; }
.evo-launch-cta:hover{ background: #2F6F48; }
.evo-launch-write{ display: block; text-align: center; margin-top: 10px; font-size: .86rem; font-weight: 600; color: #367B53; text-decoration: none; }
.evo-launch-teaser{
  position: relative; max-width: 250px; padding: 12px 34px 12px 14px; border-radius: 14px 14px 4px 14px; background: #fff; color: #222;
  font-size: .88rem; line-height: 1.4; box-shadow: 0 14px 34px -14px rgba(17, 17, 17, .4); border: 1px solid rgba(17, 17, 17, .06);
  animation: evo-puce-in 500ms var(--evo-courbe) both; cursor: pointer;
}
.evo-launch-teaser button{ position: absolute; top: 6px; right: 6px; width: 24px; height: 24px; border: 0; background: none; color: #6b6b6b; cursor: pointer; font-size: 1rem; line-height: 1; border-radius: 6px; }
.evo-launch[data-open] .evo-launch-teaser{ display: none; }
.evo-launch-bar{ display: none; }
@media (max-width: 767px){
  .evo-launch{ bottom: calc(76px + env(safe-area-inset-bottom)); right: 12px; }
  .evo-launch-btn{ display: none; }
  .evo-launch-bar{
    display: flex; gap: 10px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 989; padding: 10px 14px max(10px, env(safe-area-inset-bottom));
    background: rgba(255, 255, 255, .9); -webkit-backdrop-filter: blur(14px) saturate(1.5); backdrop-filter: blur(14px) saturate(1.5);
    border-top: 1px solid rgba(17, 17, 17, .08); transform: translateY(110%); transition: transform .35s var(--evo-courbe);
  }
  .evo-launch-bar.est-visible{ transform: none; }
  .evo-launch-bar a{ flex: 1; display: flex; align-items: center; justify-content: center; gap: 8px; height: 48px; border-radius: 10px; background: #367B53; color: #fff; font-weight: 700; text-decoration: none; }
  .evo-launch-bar button{ width: 48px; height: 48px; flex-shrink: 0; border-radius: 10px; border: 1px solid #cfe3d6; background: #fff; color: #367B53; display: flex; align-items: center; justify-content: center; cursor: pointer; }
  .evo-launch-bar button svg{ width: 22px; height: 22px; }
  .evo-launch-panel .evo-launch-cta, .evo-launch-panel .evo-launch-sep{ display: none; }
}
@media print{
  .evo-launch, .evo-launch-bar{ display: none !important; }
}
@keyframes evo-puce-in{ from { opacity: 0; transform: translateY(14px) scale(.94); } to { opacity: 1; transform: none; } }
.drop-menu{position:absolute;top:calc(100% + 10px);left:0;min-width:300px;background:#fff;color:var(--ink);border-radius:14px;padding:8px;box-shadow:0 24px 48px -20px rgba(0,0,0,.45);display:none}
.drop-menu::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}
.drop-menu a{display:block;padding:12px 14px;border-radius:10px;text-decoration:none;color:var(--ink);font-weight:500}
.drop-menu a:hover{background:var(--green-50);color:var(--green)}
.drop-menu small{display:block;margin-top:2px;font-weight:400;font-size:13px;color:var(--text-3)}
@media (hover:hover){
  .drop:hover .drop-menu{display:grid}
}
.drop.open .drop-menu,.drop:focus-within .drop-menu{display:grid}
@media (max-width:720px){.drop-menu{min-width:0}}
/* Réponses de l'assistant mises en forme (voir evoMd dans site.js) */
.evo-msg-bubble p{margin:0}
.evo-msg-bubble p+p,.evo-msg-bubble p+ul,.evo-msg-bubble p+ol,.evo-msg-bubble ul+p,.evo-msg-bubble ol+p{margin-top:8px}
.evo-msg-bubble .md-h{font-weight:600;margin-top:10px}
.evo-msg-bubble .md-h:first-child{margin-top:0}
.evo-msg-bubble ul,.evo-msg-bubble ol{margin:6px 0 0;padding-left:20px}
.evo-msg-bubble li+li{margin-top:3px}
.evo-msg-bubble hr{border:0;border-top:1px solid rgba(0,0,0,.12);margin:10px 0}
.evo-msg-bubble code{font-size:.92em;background:rgba(0,0,0,.06);padding:1px 5px;border-radius:4px}
.evo-msg-bubble a{color:var(--green);font-weight:500}
/* Consentement (assistant, diagnostic, contact) */
.evo-consent{display:flex;align-items:flex-start;gap:8px;font-size:.8rem;line-height:1.45;color:#555;cursor:pointer;text-align:left}
.evo-consent input{width:16px;height:16px;margin:1px 0 0;flex-shrink:0;accent-color:var(--green);cursor:pointer}
.evo-consent a{color:var(--green)}
.evo-consent.evo-consent-err{color:#c53030}
.evo-consent.evo-consent-err input{outline:2px solid #c53030;outline-offset:1px}
.evo-chat-email-bar{flex-wrap:wrap}
.evo-chat-email-bar .evo-consent{flex-basis:100%;font-size:.72rem}
.diag-step .evo-consent{margin:4px 0 14px}
.evo-ico{width:1em;height:1em;display:inline-block;vertical-align:-.14em;flex-shrink:0}
.evo-chat-avatar{color:#fff}
.evo-chat-avatar .evo-ico{width:22px;height:22px}
