:root{
  --forge:#081F2C; --acier:#253746; --ardoise:#57728B; --ardoise-brut:#506D85;
  --braise:#EE2737; --paper:#FAFAFA; --paper-warm:#F2F2F2;
  --ink-10:rgba(250,250,250,0.10); --ink-15:rgba(250,250,250,0.15);
  --paper-60:rgba(250,250,250,0.60);
  --forge-15:rgba(8,31,44,0.12); --forge-08:rgba(8,31,44,0.08);
  --ff-display:"Space Grotesk", sans-serif;
  --ff-body:"DM Sans", sans-serif;
  --ff-mono:"DM Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
  --gutter:clamp(20px, 4vw, 64px); --max:1440px;
}
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0;overflow-x:clip}
html{background:#081F2C}
body{
  background:transparent; color:var(--paper);
  font-family:var(--ff-body); font-size:16px; line-height:1.55;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
:focus-visible{outline:2px solid var(--braise); outline-offset:3px; border-radius:2px;}
.wrap{width:100%;max-width:var(--max);margin-inline:auto;padding:0 var(--gutter);}

h1,h2,h3{font-family:var(--ff-display);font-weight:500;letter-spacing:-0.035em;line-height:0.98;margin:0;text-wrap:balance;}
p{margin:0;}

/* ---- Sections ---- */
.sec{padding:clamp(72px,9vw,140px) 0;}
.sec.forge{background:var(--forge);color:var(--paper);}
.sec.paper{background:var(--paper);color:var(--forge);}

/* ============================================================
   HEADER
   ============================================================ */
.conc-hero{padding-top:clamp(190px,19vh,240px);padding-bottom:clamp(56px,7vw,96px);}
.conc-hero-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:clamp(36px,5vw,80px);align-items:start;}
.conc-title{font-family:var(--ff-display);font-weight:500;letter-spacing:-0.04em;line-height:0.94;font-size:var(--fs-display);color:var(--paper);}
.conc-chapo{margin:0;font-family:var(--ff-body);font-size:var(--fs-lead);line-height:1.62;color:rgba(250,250,250,0.66);max-width:52ch;}
.conc-cta-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:clamp(40px,5vw,64px);}
@media(max-width:900px){.conc-hero-grid{grid-template-columns:1fr;gap:28px;align-items:start;}}

/* ============================================================
   CARTE
   ============================================================ */
.map-grid{display:grid;grid-template-columns:1.35fr 0.95fr;gap:clamp(36px,5vw,72px);align-items:center;}
.map-stage{position:relative;}
.france-map{width:100%;height:auto;display:block;overflow:visible;}
.france-map .com{cursor:pointer;}
.france-map .com path,.france-map .com polygon{fill:#E2E4E6;stroke:#FAFAFA;stroke-width:1.6;stroke-linejoin:round;vector-effect:non-scaling-stroke;transition:fill .22s ease;}
.france-map .com:hover path,.france-map .com:hover polygon,
.france-map .com.is-active path,.france-map .com.is-active polygon,
.france-map .com.is-locked path,.france-map .com.is-locked polygon{fill:var(--braise);}
.france-map .com:focus{outline:none;}
.france-map .com:focus-visible path,.france-map .com:focus-visible polygon{fill:var(--braise);}
.france-map .zone-nums{pointer-events:none;}
.france-map .zone-num{font-family:var(--ff-display);font-weight:600;font-size:34px;fill:#FAFAFA;text-anchor:middle;dominant-baseline:central;transition:fill .22s ease;}
.france-map .zone-pin{fill:#081F2C;transition:fill .22s ease;}
.france-map .com#Zone-1:hover ~ .zone-nums .zone-pin[data-for="Zone-1"],.france-map .com#Zone-1.is-active ~ .zone-nums .zone-pin[data-for="Zone-1"],.france-map .com#Zone-1.is-locked ~ .zone-nums .zone-pin[data-for="Zone-1"]{fill:#FAFAFA;}
.france-map .com#Zone-1:hover ~ .zone-nums .zone-num[data-for="Zone-1"],.france-map .com#Zone-1.is-active ~ .zone-nums .zone-num[data-for="Zone-1"],.france-map .com#Zone-1.is-locked ~ .zone-nums .zone-num[data-for="Zone-1"]{fill:#EE2737;}
.france-map .com#Zone-2:hover ~ .zone-nums .zone-pin[data-for="Zone-2"],.france-map .com#Zone-2.is-active ~ .zone-nums .zone-pin[data-for="Zone-2"],.france-map .com#Zone-2.is-locked ~ .zone-nums .zone-pin[data-for="Zone-2"]{fill:#FAFAFA;}
.france-map .com#Zone-2:hover ~ .zone-nums .zone-num[data-for="Zone-2"],.france-map .com#Zone-2.is-active ~ .zone-nums .zone-num[data-for="Zone-2"],.france-map .com#Zone-2.is-locked ~ .zone-nums .zone-num[data-for="Zone-2"]{fill:#EE2737;}
.france-map .com#Zone-3:hover ~ .zone-nums .zone-pin[data-for="Zone-3"],.france-map .com#Zone-3.is-active ~ .zone-nums .zone-pin[data-for="Zone-3"],.france-map .com#Zone-3.is-locked ~ .zone-nums .zone-pin[data-for="Zone-3"]{fill:#FAFAFA;}
.france-map .com#Zone-3:hover ~ .zone-nums .zone-num[data-for="Zone-3"],.france-map .com#Zone-3.is-active ~ .zone-nums .zone-num[data-for="Zone-3"],.france-map .com#Zone-3.is-locked ~ .zone-nums .zone-num[data-for="Zone-3"]{fill:#EE2737;}
.france-map .com#Zone-4:hover ~ .zone-nums .zone-pin[data-for="Zone-4"],.france-map .com#Zone-4.is-active ~ .zone-nums .zone-pin[data-for="Zone-4"],.france-map .com#Zone-4.is-locked ~ .zone-nums .zone-pin[data-for="Zone-4"]{fill:#FAFAFA;}
.france-map .com#Zone-4:hover ~ .zone-nums .zone-num[data-for="Zone-4"],.france-map .com#Zone-4.is-active ~ .zone-nums .zone-num[data-for="Zone-4"],.france-map .com#Zone-4.is-locked ~ .zone-nums .zone-num[data-for="Zone-4"]{fill:#EE2737;}
.france-map .com#Zone-5:hover ~ .zone-nums .zone-pin[data-for="Zone-5"],.france-map .com#Zone-5.is-active ~ .zone-nums .zone-pin[data-for="Zone-5"],.france-map .com#Zone-5.is-locked ~ .zone-nums .zone-pin[data-for="Zone-5"]{fill:#FAFAFA;}
.france-map .com#Zone-5:hover ~ .zone-nums .zone-num[data-for="Zone-5"],.france-map .com#Zone-5.is-active ~ .zone-nums .zone-num[data-for="Zone-5"],.france-map .com#Zone-5.is-locked ~ .zone-nums .zone-num[data-for="Zone-5"]{fill:#EE2737;}
.france-map #Bordures-Blanc{pointer-events:none;}
.france-map #Bordures-Blanc path,.france-map #Bordures-Blanc polygon{fill:none;stroke:#FAFAFA;stroke-width:0.7;stroke-linejoin:round;}
.france-map #Bordures-Force{pointer-events:none;}
.france-map #Bordures-Force path,.france-map #Bordures-Force polygon{fill:none;stroke:#9FB1BC;stroke-width:1;stroke-linejoin:round;}
/* Carte de contact \002014 panneau commercial */
.rep-coords{display:flex;flex-direction:column;gap:12px;margin:20px 0 0;}
.rep-coords[hidden]{display:none;}
.rep-line{display:inline-flex;align-items:center;gap:13px;font-family:var(--ff-body);font-size:16px;color:var(--forge);}
.rep-line .ri{width:36px;height:36px;border-radius:50%;border:1.5px solid var(--braise);color:var(--braise);display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.rep-line .ri svg{width:16px;height:16px;}
.rep-line.mail{font-family:var(--ff-mono);font-size:13px;color:var(--acier);letter-spacing:0.01em;word-break:break-all;}
.rep-line[hidden]{display:none;}
a.rep-line:hover .rt{color:var(--braise);}
.rep-line .rt{font-weight:500;transition:color .2s ease;}
.rep-line.tel .rt{white-space:nowrap;}
.rep-line.mail .rt{font-weight:400;}

/* Panneau secteur */
.sector-panel{
  background:var(--paper);border:1px solid var(--forge-15);border-radius:16px;
  padding:clamp(26px,3vw,40px);min-height:300px;display:flex;flex-direction:column;
}
.sp-org{font-family:var(--ff-mono);font-size:11px;letter-spacing:0.16em;text-transform:uppercase;color:var(--braise);margin:0 0 10px;}
.sp-name{font-family:var(--ff-display);font-weight:500;letter-spacing:-0.03em;line-height:1.0;font-size:clamp(30px,3vw,46px);color:var(--forge);margin:14px 0 0;}
.sp-desc{margin:18px 0 0;font-family:var(--ff-body);font-size:14px;line-height:1.6;color:var(--acier);max-width:none;}
.sp-cta{margin-top:auto;padding-top:clamp(24px,3vw,32px);}
.sp-cta .btn{width:100%;}

/* Liste secteurs (accessibilit\0000e9 + mobile) */
.sector-list{margin-top:clamp(30px,4vw,48px);}
.sector-list-label{font-family:var(--ff-mono);font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--ardoise-brut);margin:0 0 16px;}
.rep-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.rep-card{background:var(--paper);border:1px solid var(--forge-15);border-radius:16px;padding:clamp(20px,2.2vw,28px);display:flex;flex-direction:column;gap:6px;}
.rc-zone,.rc-name{transition:color .2s ease;}
.rc-zone{font-family:var(--ff-mono);font-size:11px;letter-spacing:0.16em;text-transform:uppercase;color:var(--ardoise-brut);margin:0;}
.rep-card.is-active .rc-zone,.rep-card.is-active .rc-name{color:var(--braise);}
.rc-name{font-family:var(--ff-body);font-weight:600;font-size:18px;color:var(--forge);margin:0 0 6px;}
.rc-link{font-family:var(--ff-body);font-size:15px;color:var(--forge);transition:color .2s ease;}
.rc-link:hover{color:var(--braise);}
.rc-mail{font-family:var(--ff-mono);font-size:12px;color:var(--acier);word-break:break-all;}
@media(max-width:900px){.rep-cards{grid-template-columns:1fr;}}

.map-undertext{
  margin:clamp(48px,6vw,80px) auto 0;max-width:78ch;
  font-family:var(--ff-body);font-size:clamp(15px,1.2vw,17px);line-height:1.7;color:var(--acier);
  text-wrap:pretty;
}
.map-undertext strong{color:var(--forge);font-weight:600;}

@media(max-width:980px){
  .map-grid{grid-template-columns:1fr;gap:clamp(28px,5vw,40px);}
  .map-stage{max-width:560px;margin-inline:auto;}
  .sector-panel{min-height:0;}
}

/* ============================================================
   \0000c9TAPES
   ============================================================ */
.steps-head{margin-bottom:clamp(40px,5vw,64px);max-width:64ch;}
.steps-head h2{font-size:var(--fs-h2);}
.steps-head p{margin:18px 0 0;font-family:var(--ff-body);font-size:16px;line-height:1.6;color:var(--paper-60);max-width:54ch;}
.steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.4vw,32px);}
.step{display:flex;flex-direction:column;gap:16px;padding-top:28px;border-top:1px solid var(--ink-10);}
.step .num{font-family:var(--ff-display);font-weight:500;font-size:clamp(34px,3.4vw,48px);letter-spacing:-0.03em;line-height:1;color:var(--braise);font-variant-numeric:tabular-nums;}
.step h3{font-family:var(--ff-body);font-weight:600;font-size:clamp(19px,1.5vw,22px);letter-spacing:-0.015em;line-height:1.2;color:var(--paper);}
.step p{font-family:var(--ff-body);font-size:14.5px;line-height:1.62;color:rgba(250,250,250,0.62);}
@media(max-width:780px){.steps-grid{grid-template-columns:1fr;gap:0;}.step{padding:28px 0;}.step:last-child{border-bottom:1px solid var(--ink-10);}}

/* ============================================================
   EXPORT
   ============================================================ */
.export-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(36px,5vw,80px);align-items:center;}
.export-grid h2{font-size:var(--fs-h2);color:var(--forge);}
.export-tag{font-family:var(--ff-mono);font-size:12px;letter-spacing:0.16em;text-transform:uppercase;color:var(--braise);margin:0 0 20px;}
.export-grid p{font-family:var(--ff-body);font-size:clamp(15px,1.2vw,17px);line-height:1.65;color:var(--acier);max-width:48ch;}
.export-card{background:var(--forge);color:var(--paper);border-radius:16px;padding:var(--fs-h2);}
.export-card .k{font-family:var(--ff-mono);font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:#8FA0B3;margin:0 0 12px;}
.export-card .v{font-family:var(--ff-display);font-weight:500;font-size:clamp(24px,2.2vw,34px);letter-spacing:-0.025em;line-height:1.1;color:var(--paper);margin:0;}
.export-card p.note{margin:20px 0 0;font-family:var(--ff-body);font-size:14.5px;line-height:1.6;color:rgba(250,250,250,0.7);}
.export-card .btn{margin-top:28px;}
@media(max-width:900px){.export-grid{grid-template-columns:1fr;gap:32px;}}

/* ============================================================
   FORMULAIRE (repris du syst\0000e8me Contact)
   ============================================================ */
.form-grid-top{display:grid;grid-template-columns:1.1fr 0.9fr;gap:clamp(36px,5vw,80px);align-items:start;}
.form-intro h2{font-size:var(--fs-h2);color:var(--paper);}
.form-intro p{margin:22px 0 0;font-family:var(--ff-body);font-size:clamp(16px,1.3vw,18px);line-height:1.62;color:rgba(250,250,250,0.66);max-width:42ch;}
.form-aside{margin-top:32px;}
.form-aside .ai{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:start;padding:18px 0;border-top:1px solid var(--ink-10);}
.form-aside .ai:last-child{border-bottom:1px solid var(--ink-10);}
.form-aside .ai .ico{width:34px;height:34px;border-radius:50%;border:1.5px solid var(--braise);color:var(--braise);display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.form-aside .ai .ico svg{width:15px;height:15px;}
.form-aside .ai p{font-family:var(--ff-body);font-size:14.5px;line-height:1.5;color:rgba(250,250,250,0.78);margin:0;}
.form-aside .ai p strong{color:var(--paper);font-weight:600;}

.lead-form{background:rgba(250,250,250,0.025);border:1px solid var(--ink-10);border-radius:16px;padding:clamp(26px,2.8vw,42px);}
.lead-form .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:26px;}
.field{display:flex;flex-direction:column;gap:8px;}
.field.full{grid-column:1 / -1;}
.field label{font-family:var(--ff-body);font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:#8FA0B3;}
.field input,.field select,.field textarea{
  font-family:var(--ff-body);font-size:15px;color:var(--paper);
  background:rgba(8,31,44,0.4);border:1px solid var(--ink-15);border-radius:8px;
  padding:14px 16px;outline:none;width:100%;transition:border-color .2s ease;
}
.field textarea{resize:vertical;min-height:118px;line-height:1.55;}
.field input::placeholder,.field textarea::placeholder{color:rgba(250,250,250,0.3);}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--braise);}
.field select{appearance:none;-webkit-appearance:none;background-image:url(data:image/svg+xml;utf8,%3Csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20viewBox=%270%200%2010%206%27%3E%3Cpath%20d=%27M1%201l4%204%204-4%27%20stroke=%27%2357728B%27%20stroke-width=%271.4%27%20fill=%27none%27%20stroke-linecap=%27round%27/%3E%3C/svg%3E);background-repeat:no-repeat;background-position:right 16px center;background-size:11px;padding-right:40px;cursor:pointer;}
.lead-form optgroup{color:var(--forge);font-style:normal;}
.tel-combo{display:grid;grid-template-columns:auto 1fr;gap:10px;}
.tel-combo select{width:auto;min-width:120px;}
.tel-combo input{min-width:0;}

.sector-banner{
  display:flex;gap:13px;align-items:center;margin:0 0 24px;padding:15px 18px;border-radius:10px;
  background:rgba(238,39,55,0.08);border:1px solid rgba(238,39,55,0.34);
  font-family:var(--ff-body);font-size:14px;line-height:1.5;color:var(--paper);
}
.sector-banner .ico{flex:0 0 auto;color:var(--braise);display:flex;}
.sector-banner .ico svg{width:19px;height:19px;}
.sector-banner strong{color:var(--braise);font-weight:600;}

.consent{display:flex;gap:13px;align-items:center;margin-top:4px;font-family:var(--ff-body);font-size:13px;line-height:1.45;color:rgba(250,250,250,0.66);cursor:pointer;}
.consent input{position:absolute;opacity:0;width:0;height:0;pointer-events:none;}
.consent-box{flex-shrink:0;width:24px;height:24px;border-radius:7px;border:1.5px solid var(--ink-15);background:rgba(8,31,44,0.4);display:flex;align-items:center;justify-content:center;transition:border-color .2s ease,background .2s ease,transform .12s ease;}
.consent-box svg{width:15px;height:15px;fill:none;stroke:var(--paper);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;}
.consent-box svg path{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset .28s cubic-bezier(.65,0,.35,1);}
.consent:hover .consent-box{border-color:var(--braise);}
.consent input:focus-visible + .consent-box{outline:2px solid var(--braise);outline-offset:3px;}
.consent input:checked + .consent-box{background:var(--braise);border-color:var(--braise);}
.consent input:checked + .consent-box svg path{stroke-dashoffset:0;}
.consent a{color:var(--paper);text-decoration:underline;text-underline-offset:2px;}
.lead-form .btn-block{margin-top:26px;}

.form-success{display:none;text-align:center;padding:clamp(40px,6vw,72px) 20px;}
.form-success.show{display:block;animation:fadein .4s ease;}
@keyframes fadein{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}
.form-success .check{width:64px;height:64px;border-radius:50%;background:var(--braise);display:flex;align-items:center;justify-content:center;margin:0 auto 24px;}
.form-success .check svg{width:30px;height:30px;fill:none;stroke:var(--paper);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;}
.form-success h3{font-family:var(--ff-display);font-weight:500;font-size:28px;letter-spacing:-0.02em;margin-bottom:12px;color:var(--paper);}
.form-success p{font-family:var(--ff-body);font-size:15px;line-height:1.55;color:rgba(250,250,250,0.7);max-width:40ch;margin:0 auto;}

@media(max-width:980px){.form-grid-top{grid-template-columns:1fr;gap:40px;}}
@media(max-width:560px){.lead-form .form-grid{grid-template-columns:1fr;}.lead-form{padding:24px 20px;}.tel-combo{grid-template-columns:112px 1fr;}.tel-combo select{width:100%;min-width:0;}}

/* ============================================================
   DEUX PORTES D'ENTR\0000c9E
   ============================================================ */
.doors{display:grid;grid-template-columns:1fr 1fr;gap:clamp(18px,2.2vw,28px);}
.door{
  display:flex;flex-direction:column;border-radius:18px;padding:var(--fs-h2);
  min-height:clamp(260px,28vw,340px);transition:transform .25s ease;
}
.door:hover{transform:translateY(-3px);}
.door .d-ic{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;margin-bottom:auto;}
.door .d-ic svg{width:23px;height:23px;}
.door h2{font-size:var(--fs-h3);letter-spacing:-0.03em;margin:clamp(28px,3vw,40px) 0 0;}
.door p{margin:16px 0 0;font-family:var(--ff-body);font-size:clamp(15px,1.15vw,16.5px);line-height:1.62;max-width:none;}
.door .d-cta{margin-top:clamp(26px,3vw,34px);}
.door-a{background:var(--paper);color:var(--forge);border:1px solid var(--forge-08);}
.door-a .d-ic{background:rgba(238,39,55,0.09);color:var(--braise);}
.door-a p{color:var(--acier);}
.door-b{background:linear-gradient(135deg,var(--acier),var(--ardoise-brut));color:var(--paper);}
.door-b .d-ic{background:rgba(250,250,250,0.14);color:var(--paper);}
.door-b p{color:rgba(250,250,250,0.82);}
@media(max-width:760px){.doors{grid-template-columns:1fr;}.door{min-height:0;}}

/* ============================================================
   PARTENARIAT
   ============================================================ */
.partner-grid{display:grid;grid-template-columns:0.95fr 1.05fr;gap:clamp(36px,5vw,80px);align-items:center;}
.partner-grid h2{font-size:var(--fs-h2);color:var(--paper);}
.partner-grid > div > p{margin:24px 0 0;font-family:var(--ff-body);font-size:clamp(16px,1.25vw,18px);line-height:1.68;color:var(--paper-60);max-width:none;}
.partner-cta{margin-top:clamp(30px,4vw,42px);}
.partner-list{display:flex;flex-direction:column;gap:1px;background:var(--ink-10);border:1px solid var(--ink-10);border-radius:16px;overflow:hidden;}
.partner-item{background:var(--forge);padding:clamp(22px,2.4vw,30px) clamp(24px,2.6vw,34px);display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start;}
.partner-item .pi{width:36px;height:36px;border-radius:9px;border:1.5px solid var(--braise);color:var(--braise);display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.partner-item .pi svg{width:17px;height:17px;}
.partner-item h3{font-family:var(--ff-body);font-weight:600;font-size:17px;letter-spacing:-0.01em;color:var(--paper);margin:0 0 6px;}
.partner-item p{font-family:var(--ff-body);font-size:14px;line-height:1.55;color:var(--paper-60);margin:0;}
@media(max-width:900px){.partner-grid{grid-template-columns:1fr;gap:32px;}}

/* Coins arrondis bas (reveal footer) \002014 fallback si footer.css absent */
body > section:last-of-type{border-bottom-left-radius:clamp(16px,2.5vw,28px);border-bottom-right-radius:clamp(16px,2.5vw,28px);}
