.c40{--red:#da1d30;--ink:#141414;--txt:#555;--muted:#8a8a8a;--line:#e9e9e9;--soft:#f7f7f7;font-family:"Open Sans",Arial,sans-serif;color:var(--txt);font-size:16px;line-height:1.65}
.c40 h2,.c40 h3,.c40 h4{font-family:Oswald,"Open Sans",Arial,sans-serif;color:var(--ink);padding:0;margin:0;line-height:1.15}
.c40 p{padding-bottom:0;margin:0 0 1em}
.c40 p:last-child{margin-bottom:0}
.c40 .et_pb_text ul,.c40 .et_pb_blurb ul{list-style:none!important;padding:0!important;margin:0 0 1em;line-height:1.6}
.c40 .et_pb_text ul:last-child{margin-bottom:0}
.c40 a{color:var(--red)}
.c40-eyebrow{display:block;font-family:Oswald,sans-serif;font-size:14px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--red);margin-bottom:14px}
.c40 .c40-h2{font-size:clamp(28px,3.4vw,40px);font-weight:500;text-transform:uppercase;letter-spacing:.01em}
.c40 .c40-h2:after{content:"";display:block;width:64px;height:8px;background:var(--red);margin-top:22px}
.c40 .c40-lead{font-size:18px;max-width:720px;margin-top:22px}
.c40 .c40-head{margin-bottom:48px!important}
.c40 .c40-h3{font-size:22px;font-weight:500;text-transform:uppercase;margin-bottom:14px}
.c40 .c40-bul li{position:relative;padding-left:26px;margin-bottom:10px}
.c40 .c40-bul li:before{content:"";position:absolute;left:0;top:.5em;width:11px;height:11px;border-radius:50%;border:2.5px solid var(--red)}
.c40 .c40-bul strong{color:var(--ink)}
.c40-hero h1,.c40-hero .c40-title{font-family:Oswald,sans-serif;color:var(--ink);font-size:clamp(32px,4.2vw,52px);font-weight:500;text-transform:uppercase;line-height:1.08;padding:0}
.c40-hero .c40-title em{font-style:normal;color:var(--red)}
.c40-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:36px}
.c40-kpi{background:var(--soft);border-radius:16px;padding:18px 18px 16px}
.c40-kpi b{display:block;font-family:Oswald,sans-serif;font-size:30px;font-weight:500;color:var(--red);line-height:1}
.c40-kpi span{display:block;font-size:13px;line-height:1.4;margin-top:8px}
.c40-hero-img .et_pb_image_wrap{display:block;position:relative;border-radius:24px;overflow:hidden;box-shadow:0 40px 80px -40px rgba(0,0,0,.45)}
.c40-hero-img img{width:100%;aspect-ratio:4/3;object-fit:cover}
.c40-hero-img .et_pb_image_wrap:after{content:"";position:absolute;right:-70px;bottom:-70px;width:200px;height:200px;border-radius:50%;border:34px solid var(--red)}
.c40-navsec{border-top:1px solid var(--line);border-bottom:1px solid var(--line);z-index:50}
.c40-navsec.et_pb_sticky{box-shadow:0 12px 30px -20px rgba(0,0,0,.35)}
.c40 .c40-nav ul{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:12px 0!important;margin:0;scroll-behavior:smooth}
.c40 .c40-nav ul::-webkit-scrollbar{display:none}
.c40 .c40-nav li{flex:0 0 auto;margin:0;padding:0}
.c40 .c40-nav a{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--ink);font-family:Oswald,sans-serif;font-size:16px;letter-spacing:.06em;text-transform:uppercase;padding:9px 16px;border-radius:99px;transition:background .3s,color .3s;white-space:nowrap;line-height:1.3}
.c40 .c40-nav a em,.c40 .c40-nav a i{font-style:normal;font-size:12px;color:var(--muted);transition:color .3s}
.c40 .c40-nav a:hover{background:var(--soft)}
.c40 .c40-nav a.on{background:var(--red);color:#fff}
.c40 .c40-nav a.on em,.c40 .c40-nav a.on i{color:rgba(255,255,255,.75)}
.c40-prog{position:absolute;left:0;bottom:-1px;height:2px;background:var(--red);width:0;transition:width .15s linear;z-index:2}
.c40-actor{background:#fff;border-radius:20px;padding:28px 24px!important;border:1px solid var(--line);height:100%;transition:transform .4s ease,box-shadow .4s ease}
.c40-actor:hover{transform:translateY(-4px);box-shadow:0 24px 50px -30px rgba(0,0,0,.35)}
.c40 .c40-actor .et_pb_blurb_content{max-width:none;margin:0;text-align:left}
.c40 .c40-actor .et_pb_main_blurb_image{display:flex;align-items:center;height:72px;margin-bottom:22px}
.c40 .c40-actor .et_pb_main_blurb_image .et_pb_image_wrap{display:block}
.c40 .c40-actor .et_pb_main_blurb_image img{max-height:72px;max-width:160px;width:auto}
.c40 .c40-actor .et_pb_module_header{font-size:20px;font-weight:500;padding-bottom:6px}
.c40 .c40-role{display:block;font-family:Oswald,sans-serif;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--red);margin-bottom:8px;line-height:1.35}
.c40 .c40-actor p{font-size:14.5px}
.c40-chap{display:flex;flex-direction:column;justify-content:flex-end;min-height:380px}
.c40-chap .c40-num{font-family:Oswald,sans-serif;font-size:90px;line-height:1;font-weight:500;color:var(--red);display:block}
.c40 .c40-chap-t{color:#fff;font-size:clamp(28px,3.6vw,44px);font-weight:500;text-transform:uppercase;max-width:640px;margin-top:6px}
.c40-steps{position:relative;counter-reset:c40s}
.c40-steps:before{content:"";position:absolute;left:27px;top:30px;bottom:30px;width:2px;background:linear-gradient(var(--red),rgba(218,29,48,.15))}
.c40 .c40-step{counter-increment:c40s;position:relative;margin:0 0 22px 82px!important;background:#fff;border-radius:20px;padding:26px 30px!important;border:1px solid var(--line)}
.c40 .c40-step:before{content:counter(c40s);position:absolute;left:-83px;top:18px;width:56px;height:56px;border-radius:50%;background:#fff;border:2px solid var(--red);display:flex;align-items:center;justify-content:center;font-family:Oswald,sans-serif;font-size:20px;color:var(--red);z-index:1}
.c40 .c40-step.done:before{background:var(--red);color:#fff}
.c40-when{display:block;font-family:Oswald,sans-serif;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--red);margin-bottom:8px}
.c40 .c40-go{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:14px;text-decoration:none}
.c40 .c40-go:after{content:"→";transition:transform .3s}
.c40 .c40-go:hover:after{transform:translateX(4px)}
.c40 .c40-note{background:rgba(218,29,48,.06);border-left:4px solid var(--red);border-radius:0 14px 14px 0;padding:14px 18px;margin-top:16px;font-size:14.5px;color:var(--ink)}
.c40-panel{background:#fff;border-radius:20px;padding:32px!important;border:1px solid var(--line);height:100%}
.c40 .c40-panel .c40-h3{color:var(--red)}
.c40 .c40-quote{margin-top:20px;padding-top:18px;border-top:1px solid var(--line);font-weight:700;color:var(--ink)}
.c40-keydates .et_pb_text_inner{background:var(--ink);color:#fff;border-radius:20px;padding:28px 32px;display:grid;grid-template-columns:auto 1fr 1fr;gap:28px;align-items:center}
.c40 .c40-keydates h3{color:#fff;font-size:24px;font-weight:500;text-transform:uppercase}
.c40 .c40-keydates p{margin:0;border-left:3px solid var(--red);padding-left:18px}
.c40-keydates span{display:block;font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.6)}
.c40-keydates b{display:block;font-family:Oswald,sans-serif;font-size:24px;font-weight:500;color:#fff;margin-top:4px}
.c40 .c40-modal li{display:flex;gap:16px;align-items:center;background:var(--red);color:#fff;border-radius:16px;padding:18px 22px;font-weight:600;font-size:15.5px;line-height:1.4;margin-bottom:12px}
.c40 .c40-modal li span{flex:1}.c40 .c40-modal li b{font-family:Oswald,sans-serif;font-size:26px;font-weight:500;opacity:.55;line-height:1}
.c40-phases{display:flex;gap:10px;margin-top:22px}
.c40-phases span{flex:1;text-align:center;border-radius:12px;padding:12px 8px;font-size:13px;font-weight:700;color:var(--ink);background:#fff;border:1px solid var(--line);line-height:1.3}
.c40-phases span b{display:block;font-family:Oswald,sans-serif;font-size:20px;color:var(--red);font-weight:500}
.c40-fig .et_pb_image_wrap{display:block;background:#fff;border-radius:20px 20px 0 0;border:1px solid var(--line);overflow:hidden;position:relative}
.c40-fig.solo .et_pb_image_wrap{border-radius:20px}
.c40-fig img{width:100%;transition:transform .8s ease}
.c40-fig a:hover img{transform:scale(1.02)}
.c40-fig a:after{content:"⤢ Agrandir";position:absolute;right:14px;top:14px;background:rgba(20,20,20,.78);color:#fff;font-size:12px;font-weight:700;padding:6px 12px;border-radius:99px;opacity:0;transition:opacity .3s;line-height:1.4}
.c40-fig a:hover:after{opacity:1}
.c40 .et_pb_module.c40-fig{margin-bottom:0!important}
.c40-leg{background:#fff;border:1px solid var(--line);border-top:0;border-radius:0 0 20px 20px;padding:16px 22px!important;font-size:13.5px}
.c40 .c40-leg p{display:flex;flex-wrap:wrap;gap:8px 20px;margin:0}
.c40-leg span{display:inline-flex;align-items:center;gap:8px}
.c40-leg i{display:inline-block;width:18px;height:12px;border-radius:3px}
.c40-leg i.ln{height:3px}
.c40-work{border-top:1px solid var(--line);padding-top:56px!important;margin-top:56px!important}
.c40-work.first{border-top:0;padding-top:0!important;margin-top:0!important}
.c40-n{display:block;font-family:Oswald,sans-serif;font-size:15px;letter-spacing:.12em;text-transform:uppercase;color:var(--red);margin-bottom:10px}
.c40 .c40-work-t{font-size:28px;font-weight:500;text-transform:uppercase;margin-bottom:18px}
.c40-tag{display:inline-block;font-family:Oswald,sans-serif;font-size:13px;letter-spacing:.08em;text-transform:uppercase;padding:4px 12px;border-radius:99px;margin:8px 0 12px}
.c40-tag.old{background:#eef1fb;color:#3a4d9a}
.c40-tag.new{background:#fdf0e6;color:#b45a12}
.c40-engs{display:grid!important;grid-template-columns:1fr 1fr;gap:16px}
.c40 .c40-engs .et_pb_module{margin:0!important}
.c40 .c40-engs .et_pb_text{grid-column:1/-1}
.c40-eng{background:#fff;border-radius:20px;padding:26px 24px!important;border:1px solid var(--line);transition:border-color .4s,transform .4s}
.c40-eng:hover{border-color:var(--red);transform:translateY(-3px)}
.c40 .c40-eng .et_pb_blurb_content{max-width:none;margin:0;text-align:left}
.c40 .c40-eng .et_pb_main_blurb_image{margin-bottom:16px}
.c40 .c40-eng .et_pb_main_blurb_image img{width:52px}
.c40 .c40-eng .et_pb_module_header{font-size:18px;font-weight:500;text-transform:uppercase;line-height:1.25;padding:0}
.c40 .c40-eng .et_pb_blurb_description{font-size:14px;margin-top:8px}
.c40-dcard{border-radius:24px;padding:36px!important;position:relative;overflow:hidden;height:100%;color:#fff}
.c40-dcard.a{background:var(--red)}
.c40-dcard.b{background:var(--ink)}
.c40-dcard:after{content:"";position:absolute;right:-60px;top:-60px;width:160px;height:160px;border-radius:50%;border:26px solid rgba(255,255,255,.12)}
.c40 .c40-dcard h3{color:#fff;font-size:24px;font-weight:500;text-transform:uppercase;margin-bottom:6px}
.c40 .c40-dcard .c40-who{display:block;font-size:13px;letter-spacing:.1em;text-transform:uppercase;opacity:.7;margin-bottom:22px}
.c40 .c40-dcard li{position:relative;padding-left:26px;margin-bottom:14px;font-size:15.5px;line-height:1.5}
.c40 .c40-dcard li:before{content:"";position:absolute;left:0;top:.45em;width:11px;height:11px;border-radius:50%;border:2.5px solid #fff}
.c40 .c40-dcard a{color:#fff;font-weight:700}
.c40-btnrow{display:flex!important;flex-wrap:wrap;gap:12px;align-items:center}
.c40 .c40-btnrow .et_pb_button_module_wrapper{margin:0!important}
.c40-outro{display:flex;flex-direction:column;justify-content:center;min-height:460px}
.c40 .c40-card h2{color:#fff;font-size:28px;font-weight:500;text-transform:uppercase;line-height:1.2}
.c40 .c40-card h2+h2{margin-top:18px}
.l40{--red:#da1d30;--red2:#ff3b4e;--ink:#141414;--muted:#767676;--line:#ececec;--lab:300px;color:var(--ink);line-height:1.3}
.l40-card{position:relative;background:#fff;border-radius:28px;box-shadow:0 30px 80px -40px rgba(0,0,0,.28),0 0 0 1px rgba(0,0,0,.04);padding:34px 40px 64px;overflow:hidden}
.l40-legend{display:flex;flex-wrap:wrap;gap:8px 24px;font-size:13px;color:var(--muted);margin:0 0 26px;opacity:0;transform:translateY(10px)}
.l40-legend span{display:inline-flex;align-items:center;gap:8px}
.l40-legend i{display:inline-block;width:22px;height:8px;border-radius:9px;background:var(--ink)}
.l40-legend i.r{background:linear-gradient(90deg,var(--red),var(--red2))}
.l40-legend i.m{width:10px;height:10px;border-radius:2px;background:#fff;border:2px solid var(--ink);transform:rotate(45deg)}
.l40-body{position:relative}
.l40-axis{position:relative;height:34px;margin-left:var(--lab);opacity:0}
.l40-tick{position:absolute;bottom:8px;transform:translateX(-50%);font-size:12px;color:var(--muted);white-space:nowrap}
.l40-tick b{color:var(--ink);font-weight:700}
.l40-grid{position:absolute;left:var(--lab);right:0;top:34px;bottom:0;pointer-events:none}
.l40-gl{position:absolute;top:0;bottom:0;width:1px;background:var(--line);transform-origin:top;transform:scaleY(0)}
.l40-gl.y{background:#dcdcdc}
.l40-today{position:absolute;top:-6px;bottom:-14px;width:0;border-left:2px dashed var(--red);opacity:0;transform-origin:top;transform:scaleY(0);z-index:3}
.l40-today em{position:absolute;bottom:-30px;left:0;transform:translateX(-50%);background:var(--red);color:#fff;font-style:normal;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:5px 11px;border-radius:99px;white-space:nowrap}
.l40-row{position:relative;display:grid;grid-template-columns:var(--lab) 1fr;align-items:center;min-height:74px;border-top:1px solid var(--line)}
.l40-lab{display:flex;gap:14px;align-items:flex-start;padding:14px 22px 14px 0;opacity:0;transform:translateX(-18px)}
.l40-num{flex:0 0 auto;font-size:12px;font-weight:700;color:var(--muted);padding-top:2px}
.l40-when{display:block;font-size:11.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--red);margin-bottom:3px}
.l40-what{display:block;font-size:15.5px;font-weight:700}
.l40-sub{display:block;font-size:13px;color:var(--muted);margin-top:3px}
.l40-st{display:inline-block;margin-left:8px;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:2px 8px;border-radius:99px;vertical-align:1px}
.l40-st.now{background:rgba(218,29,48,.1);color:var(--red)}
.l40-st.done{background:#f0f0f0;color:var(--muted)}
.l40-track{position:relative;height:100%;min-height:74px}
.l40-bar{position:absolute;top:50%;height:32px;margin-top:-16px;border-radius:99px;background:var(--ink);color:#fff;display:flex;align-items:center;padding:0 14px;font-size:12.5px;font-weight:700;white-space:nowrap;overflow:hidden;transform-origin:left center;transform:scaleX(0);z-index:2}
.l40-bar.r{background:linear-gradient(90deg,var(--red),var(--red2));box-shadow:0 10px 24px -12px rgba(218,29,48,.7)}
.l40-bar span{opacity:0}
.l40-bar .sm{display:none}
.l40-ms{position:absolute;top:50%;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:4px;background:#fff;border:2.5px solid var(--ink);transform:rotate(45deg) scale(0);z-index:2}
.l40-ms.big{width:34px;height:34px;margin:-17px 0 0 -17px;border-radius:50%;border:6px solid #fff;background:var(--red);box-shadow:0 0 0 2px var(--red);transform:scale(0)}
.l40.in .l40-legend{opacity:1;transform:none;transition:opacity 1s ease .1s,transform 1s ease .1s}
.l40.in .l40-axis{opacity:1;transition:opacity 1.2s ease .3s}
.l40.in .l40-gl{transform:scaleY(1);transition:transform 1.8s cubic-bezier(.22,1,.36,1) calc(.3s + var(--i)*.12s)}
.l40.in .l40-lab{opacity:1;transform:none;transition:opacity 1.1s ease var(--d),transform 1.1s cubic-bezier(.22,1,.36,1) var(--d)}
.l40.in .l40-bar{transform:scaleX(1);transition:transform 2.2s cubic-bezier(.22,1,.36,1) calc(var(--d) + .35s)}
.l40.in .l40-bar span{opacity:1;transition:opacity 1s ease calc(var(--d) + 1.7s)}
.l40.in .l40-ms{transform:rotate(45deg) scale(1);transition:transform 1.1s cubic-bezier(.34,1.56,.64,1) calc(var(--d) + .5s)}
.l40.in .l40-ms.big{transform:scale(1);animation:l40pulse 2.4s ease-out calc(var(--d) + 1.8s) infinite}
.l40.in .l40-today{opacity:1;transform:scaleY(1);transition:opacity .6s ease 6.6s,transform 1.6s cubic-bezier(.22,1,.36,1) 6.6s}
.l40.in .l40-today em{animation:l40pulse2 2.4s ease-out 8.2s infinite}
@keyframes l40pulse{0%{box-shadow:0 0 0 2px var(--red),0 0 0 2px rgba(218,29,48,.45)}100%{box-shadow:0 0 0 2px var(--red),0 0 0 18px rgba(218,29,48,0)}}
@keyframes l40pulse2{0%{box-shadow:0 0 0 0 rgba(218,29,48,.45)}100%{box-shadow:0 0 0 12px rgba(218,29,48,0)}}
@media (min-width:981px){.c40-vcenter{display:flex;align-items:center}.c40-eq{display:flex}.c40-eq .et_pb_column{float:none}}
@media (max-width:980px){.c40-keydates .et_pb_text_inner{grid-template-columns:1fr;gap:18px}.c40-work{padding-top:40px!important;margin-top:40px!important}.c40-chap{min-height:300px}}
@media (max-width:860px){.l40{--lab:0px}.l40-card{padding:24px 18px 30px;border-radius:20px}.l40-row{grid-template-columns:1fr;min-height:0;padding:6px 0 12px}.l40-lab{padding:10px 0 6px}.l40-track{min-height:40px}.l40-tick.minor,.l40-grid,.l40-gl{display:none}.l40-tick:first-child{transform:none}.l40-track:before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:var(--line)}.l40-bar{height:24px;margin-top:-12px;font-size:11px;padding:0 10px}.l40-bar .lg{display:none}.l40-bar .sm{display:inline}}
@media (max-width:640px){.c40-engs{grid-template-columns:1fr}.c40-kpis{gap:8px}.c40-kpi{padding:14px 12px}.c40-kpi b{font-size:24px}.c40-kpi span{font-size:12px}.c40 .c40-step{margin-left:56px!important;padding:22px!important}.c40 .c40-step:before{left:-57px;width:40px;height:40px;font-size:16px}.c40-steps:before{left:19px}.c40-panel,.c40-dcard{padding:22px!important}.c40-chap .c40-num{font-size:64px}}
@media (prefers-reduced-motion:reduce){.c40 *,.l40 *{transition:none!important;animation:none!important}}
/* =================== Plugin : composants travaux =================== */
.t40-empty{background:#fff;border:1px dashed #d9d9d9;border-radius:16px;padding:22px 24px;color:#666;margin:0}
/* ---- Lexique ---- */
.t40-term{all:unset;cursor:help;color:inherit;font:inherit;border-bottom:2px dotted #da1d30;transition:background .2s,color .2s;border-radius:2px}
.t40-term:hover,.t40-term[aria-expanded="true"]{background:rgba(218,29,48,.08);color:#da1d30}
.t40-term:focus-visible{outline:2px solid #da1d30;outline-offset:2px}
.t40-pop{position:fixed;z-index:100001;max-width:320px;background:#141414;color:#fff;border-radius:14px;padding:16px 18px 14px;font-size:14px;line-height:1.5;box-shadow:0 20px 50px -20px rgba(0,0,0,.6);opacity:0;transform:translateY(6px);transition:opacity .2s,transform .2s;pointer-events:none}
.t40-pop.open{opacity:1;transform:none;pointer-events:auto}
.t40-pop strong{display:block;font-family:Oswald,sans-serif;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:#ff5a6a;font-size:13px;margin-bottom:6px}
.t40-pop:before{content:"";position:absolute;top:-6px;left:var(--ax,24px);width:12px;height:12px;background:#141414;transform:rotate(45deg)}
.t40-pop.up:before{top:auto;bottom:-6px}
.t40-pop-x{all:unset;position:absolute;top:8px;right:10px;cursor:pointer;color:rgba(255,255,255,.6);font-size:18px;line-height:1}
/* ---- Fiches travaux ---- */
.t40-fiches{display:grid;gap:18px}
.t40-fiche{background:#fff;border-radius:20px;border:1px solid #e9e9e9;padding:28px 30px;position:relative;overflow:hidden}
.t40-fiche:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:#da1d30}
.t40-fiche.is-a-venir:before{background:#141414}
.t40-fiche.is-termine:before{background:#cfcfcf}
.t40-fiche-h{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:16px}
.c40 .t40-fiche-t,.t40-fiche-t{font-family:Oswald,sans-serif;font-size:22px;font-weight:500;color:#141414;text-transform:uppercase;line-height:1.2;margin:0;padding:0;flex:1 1 300px}
.t40-badge{display:inline-flex;align-items:center;gap:7px;font-family:Oswald,sans-serif;font-size:12px;letter-spacing:.1em;text-transform:uppercase;padding:5px 12px;border-radius:99px;background:rgba(218,29,48,.1);color:#da1d30;order:-1}
.t40-badge.is-en-cours:before{content:"";width:8px;height:8px;border-radius:50%;background:#da1d30;animation:t40blink 1.6s ease-in-out infinite}
.t40-badge.is-a-venir{background:#141414;color:#fff}
.t40-badge.is-termine{background:#f0f0f0;color:#888}
@keyframes t40blink{50%{opacity:.25}}
.t40-dl{margin:0;display:grid;gap:10px}
.t40-di{display:grid;grid-template-columns:170px 1fr;gap:16px;padding:10px 0;border-top:1px solid #f0f0f0}
.t40-di dt{font-family:Oswald,sans-serif;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:#141414;padding-top:2px}
.t40-di dd{margin:0;color:#444}
.c40 .t40-phases,.t40-phases{list-style:none!important;margin:0!important;padding:0!important}
.t40-phases li{padding:2px 0}
.t40-phases li.is-now strong{color:#da1d30}
.t40-now{display:inline-block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#da1d30;background:rgba(218,29,48,.1);border-radius:99px;padding:1px 8px;margin-left:6px}
.t40-impacts{margin-top:10px;border-top:1px solid #f0f0f0;padding-top:16px}
.t40-k{display:block;font-family:Oswald,sans-serif;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:#141414;margin-bottom:10px}
.t40-period{background:#f7f7f7;border-radius:14px;padding:16px 18px;margin-bottom:10px}
.c40 .t40-period-t,.t40-period-t{font-weight:700;color:#141414;margin:0 0 8px!important;font-size:15px}
.c40 .t40-imp,.t40-imp{list-style:none!important;margin:0!important;padding:0!important}
.t40-imp li{position:relative;padding:4px 0 4px 30px;line-height:1.5}
.t40-imp li:before{content:"";position:absolute;left:0;top:6px;width:20px;height:20px;border-radius:50%;background:#e6e6e6 no-repeat center/12px}
.t40-imp li.is-ferme:before{background-color:#da1d30;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.5' stroke-linecap='round'%3E%3Cpath d='M6 12h12'/%3E%3C/svg%3E")}
.t40-imp li.is-ok:before{background-color:#1f9d55;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5 9-10'/%3E%3C/svg%3E")}
.t40-imp li.is-info:before{background-color:#141414;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.5' stroke-linecap='round'%3E%3Cpath d='M12 11v7M12 6.5v.5'/%3E%3C/svg%3E")}
.c40 .t40-plan,.t40-plan{margin:14px 0 0!important}
.t40-plan a{display:inline-flex;gap:8px;align-items:center;font-weight:700;color:#da1d30;text-decoration:none}
.t40-plan a:after{content:"→"}
.t40-archives{margin-top:6px;border-radius:16px;background:#fff;border:1px solid #e9e9e9}
.t40-archives summary{cursor:pointer;padding:16px 22px;font-family:Oswald,sans-serif;font-size:15px;letter-spacing:.06em;text-transform:uppercase;color:#141414;list-style:none}
.t40-archives summary::-webkit-details-marker{display:none}
.t40-archives summary:after{content:"+";float:right;color:#da1d30;font-size:20px;line-height:1}
.t40-archives[open] summary:after{content:"–"}
.t40-archives-in{display:grid;gap:14px;padding:0 14px 14px}
.t40-archives .t40-fiche{opacity:.8}
/* ---- Actualités ---- */
.t40-actus{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:20px}
.t40-actu{min-width:0}
.t40-actu-a{display:flex;flex-direction:column;height:100%;background:#fff;border-radius:20px;overflow:hidden;border:1px solid #e9e9e9;text-decoration:none!important;color:inherit;transition:transform .4s,box-shadow .4s}
.t40-actu-a:hover{transform:translateY(-4px);box-shadow:0 26px 50px -30px rgba(0,0,0,.4)}
.t40-actu-img{position:relative;display:block;aspect-ratio:4/3;background:#eee;overflow:hidden}
.t40-actu.is-first .t40-actu-img{aspect-ratio:4/3}
.t40-actu-img img{width:100%;height:100%;object-fit:cover;transition:transform 1s ease}
.t40-actu-a:hover .t40-actu-img img{transform:scale(1.05)}
.t40-play{position:absolute;left:50%;top:50%;width:62px;height:62px;margin:-31px 0 0 -31px;border-radius:50%;background:rgba(218,29,48,.92);box-shadow:0 0 0 8px rgba(255,255,255,.3)}
.t40-play:after{content:"";position:absolute;left:25px;top:20px;border-style:solid;border-width:11px 0 11px 17px;border-color:transparent transparent transparent #fff}
.t40-actu-b{display:flex;flex-direction:column;gap:8px;padding:20px 22px 22px;flex:1}
.t40-actu-b time{font-family:Oswald,sans-serif;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:#da1d30}
.t40-actu-t{font-family:Oswald,sans-serif;font-size:21px;font-weight:500;line-height:1.2;color:#141414;text-transform:uppercase}
.t40-actu-x{font-size:14.5px;color:#666;line-height:1.55}
.t40-more{margin-top:auto;font-weight:700;font-size:14px;color:#da1d30}
.t40-more:after{content:" →"}
/* ---- Avancement ---- */
.t40-prog{background:#fff;border-radius:24px;padding:30px 34px 26px;box-shadow:0 30px 80px -40px rgba(0,0,0,.28),0 0 0 1px rgba(0,0,0,.04)}
.t40-prog-top{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:22px}
.t40-prog-r{text-align:right}
.t40-prog-k{display:block;font-family:Oswald,sans-serif;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:#8a8a8a}
.t40-prog-v{display:block;font-family:Oswald,sans-serif;font-size:22px;color:#141414;line-height:1.1;margin-top:4px}
.t40-prog-v b{font-size:48px;font-weight:500;color:#da1d30}
.t40-bar{position:relative;height:16px;border-radius:99px;background:repeating-linear-gradient(-45deg,#f1f1f1 0 10px,#e6e6e6 10px 20px);margin:0 0 58px}
.t40-bar-fill{position:absolute;left:0;top:0;bottom:0;width:0;border-radius:99px;background:linear-gradient(90deg,#da1d30,#ff3b4e);box-shadow:0 6px 18px -6px rgba(218,29,48,.7);transition:width 2.6s cubic-bezier(.22,1,.36,1) .3s}
.t40-bar-fill:after{content:"";position:absolute;right:-7px;top:50%;width:22px;height:22px;margin-top:-11px;border-radius:50%;background:#fff;border:4px solid #da1d30;box-sizing:border-box}
.t40-prog.in .t40-bar-fill{width:var(--p)}
.t40-mark{position:absolute;top:0;bottom:0;width:0}
.t40-mark i{position:absolute;left:-1px;top:22px;width:2px;height:10px;background:#cfcfcf}
.t40-mark em{position:absolute;top:36px;left:0;transform:translateX(-50%);font-style:normal;font-family:Oswald,sans-serif;font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:#8a8a8a;white-space:nowrap;text-align:center;line-height:1.25}
.t40-mark em small{display:block;font-family:"Open Sans",Arial,sans-serif;text-transform:none;letter-spacing:0;font-size:11.5px;color:#aaa}
.t40-mark.is-first em{transform:none}
.t40-mark.is-last em{transform:translateX(-100%);text-align:right}
.t40-mark.is-on i{background:#da1d30}
.t40-mark.is-on em{color:#141414}
.c40 .t40-prog-note,.t40-prog-note{font-size:12.5px;color:#999;margin:0!important}
/* ---- Bandeau accueil ---- */
.t40-bandeau{display:flex;align-items:center;gap:14px;background:#141414;color:#fff!important;text-decoration:none!important;border-radius:99px;padding:10px 12px 10px 18px;max-width:1140px;margin:0 auto;transition:background .3s}
.t40-bandeau:hover{background:#000}
.t40-bandeau-i{flex:0 0 12px;width:12px;height:12px;border-radius:50%;background:#da1d30;box-shadow:0 0 0 0 rgba(218,29,48,.6);animation:t40ping 2s ease-out infinite}
@keyframes t40ping{to{box-shadow:0 0 0 12px rgba(218,29,48,0)}}
.t40-bandeau-k{font-family:Oswald,sans-serif;text-transform:uppercase;letter-spacing:.1em;font-size:13px;color:#ff5a6a;white-space:nowrap}
.t40-bandeau-t{flex:1;font-size:14.5px;line-height:1.4}
.t40-bandeau-go{flex:0 0 auto;background:#da1d30;color:#fff;font-family:Oswald,sans-serif;text-transform:uppercase;letter-spacing:.06em;font-size:14px;padding:9px 18px;border-radius:99px}
.t40-bandeau-go:after{content:" →"}
/* ---- Groupement ---- */
.c40-group-h{font-family:Oswald,sans-serif;font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:#141414;display:flex;align-items:center;gap:14px;margin-bottom:18px!important}
.c40-group-h:after{content:"";flex:1;height:1px;background:#e9e9e9}
.c40-member{background:#fff;border-radius:20px;border:1px solid #e9e9e9;padding:26px 28px!important;height:100%}
.c40 .c40-member .et_pb_blurb_content{max-width:none;margin:0;display:flex;gap:24px;align-items:flex-start;text-align:left}
.c40 .c40-member .et_pb_main_blurb_image{flex:0 0 140px;width:140px!important;margin:0!important;height:90px;display:flex;align-items:center;justify-content:center;background:#fafafa;border-radius:14px;padding:10px}
.c40 .c40-member .et_pb_main_blurb_image img{max-height:70px;width:auto;max-width:100%}
.c40 .c40-member .et_pb_blurb_container{padding-left:0!important;flex:1}
.c40 .c40-member .et_pb_module_header{font-size:21px;font-weight:500;padding-bottom:4px}
.c40-member-tbd{background:repeating-linear-gradient(-45deg,#fff 0 12px,#fafafa 12px 24px)}
/* ---- Contact ---- */
.c40-contact{border-radius:24px;padding:34px!important;height:100%;border:1px solid #e9e9e9;background:#fff}
.c40-contact.alt{background:#141414;border-color:#141414;color:#fff}
.c40 .c40-contact.alt h3{color:#fff}
.c40 .c40-contact h3{font-size:24px;font-weight:500;text-transform:uppercase;margin-bottom:10px}
.c40 .c40-mail{display:inline-flex;align-items:center;gap:10px;margin-top:14px;font-family:Oswald,sans-serif;font-size:16px;letter-spacing:.04em;text-decoration:none;background:#da1d30;color:#fff!important;border-radius:99px;padding:12px 22px;transition:background .3s}
.c40 .c40-mail:hover{background:#b8142a}
.c40 .c40-contact.alt .c40-mail{background:#fff;color:#141414!important}
.c40 .c40-contact.alt .c40-mail:hover{background:#f0f0f0}
.c40-phase-now{background:#fff;border-radius:24px;border:1px solid #e9e9e9;padding:36px 40px!important;position:relative;overflow:hidden}
.c40-phase-now:after{content:"";position:absolute;right:-80px;top:-80px;width:220px;height:220px;border-radius:50%;border:34px solid rgba(218,29,48,.07)}
.c40 .c40-phase-now .c40-h3{font-size:30px;margin-bottom:6px}
.c40-live{display:inline-flex;align-items:center;gap:8px;font-family:Oswald,sans-serif;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:#da1d30;margin-bottom:12px}
.c40-live:before{content:"";width:9px;height:9px;border-radius:50%;background:#da1d30;animation:t40blink 1.6s ease-in-out infinite}
.c40-sub-h{font-family:Oswald,sans-serif}
@media (max-width:980px){.t40-actus{grid-template-columns:1fr 1fr}.t40-actu.is-first{grid-column:1/-1}.t40-actu.is-first .t40-actu-img{aspect-ratio:16/9}}
@media (max-width:640px){.t40-actus{grid-template-columns:1fr}.t40-actu.is-first .t40-actu-img{aspect-ratio:4/3}.t40-fiche{padding:22px 20px}.t40-di{grid-template-columns:1fr;gap:4px}.t40-prog{padding:22px 20px 18px}.t40-prog-v b{font-size:36px}.t40-mark em{font-size:11px}.t40-mark em small{display:none}.t40-prog-k{font-size:11px}.t40-prog-v{font-size:18px}.t40-mark.is-mid em{display:none}.t40-bandeau{border-radius:18px;flex-wrap:wrap;padding:14px 16px}.t40-bandeau-t{flex:1 1 100%;order:3}.t40-bandeau-go{margin-left:auto}.c40 .c40-member .et_pb_blurb_content{flex-direction:column;gap:16px}.c40-phase-now,.c40-contact{padding:24px!important}}
.c40 .c40-quick{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px!important}
.c40 .c40-quick a{display:inline-flex;align-items:center;gap:8px;font-family:Oswald,sans-serif;font-size:15px;letter-spacing:.05em;text-transform:uppercase;text-decoration:none;color:#141414;border:2px solid #da1d30;border-radius:99px;padding:9px 18px;transition:background .3s,color .3s}
.c40 .c40-quick a:after{content:"↓";color:#da1d30;transition:color .3s}
.c40 .c40-quick a:first-child,.c40 .c40-quick a:hover{background:#da1d30;color:#fff}
.c40 .c40-quick a:first-child:after,.c40 .c40-quick a:hover:after{color:#fff}
.c40-modal .t40-term,.c40-dcard .t40-term,.c40-contact.alt .t40-term{border-bottom-color:rgba(255,255,255,.8)}
.c40-modal .t40-term:hover,.c40-modal .t40-term[aria-expanded="true"]{background:rgba(255,255,255,.15);color:#fff}
.c40-live.is-next{color:#141414}.c40-live.is-next:before{background:#141414;animation:none}
.c40 .t40-phase-now .c40-lead p{margin:0 0 .8em!important}.c40 .t40-phase-now .c40-lead p:last-child{margin-bottom:0!important}
.c40 .t40-also{margin:18px 0 0!important;padding-top:14px;border-top:1px solid #eee;font-size:14px;color:#666}.t40-also strong{color:#141414}.t40-also span{color:#999}
/* ---- Étapes des travaux : cartes + popin ---- */
.t40-etapes{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px}
.t40-etape{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;gap:8px;min-height:210px;background:#fff;border:1px solid #e9e9e9;border-radius:22px;padding:26px 26px 22px;position:relative;overflow:hidden;transition:background .35s,border-color .35s,transform .35s,box-shadow .35s}
.t40-etape:after{content:"";position:absolute;right:-46px;bottom:-46px;width:130px;height:130px;border-radius:50%;border:22px solid rgba(218,29,48,.08);transition:border-color .35s}
.t40-etape:hover,.t40-etape:focus-visible{background:#da1d30;border-color:#da1d30;transform:translateY(-4px);box-shadow:0 26px 50px -28px rgba(218,29,48,.75)}
.t40-etape:focus-visible{outline:3px solid #141414;outline-offset:3px}
.t40-etape:hover:after,.t40-etape:focus-visible:after{border-color:rgba(255,255,255,.18)}
.t40-etape-n{font-family:Oswald,sans-serif;font-size:44px;line-height:1;font-weight:500;color:#da1d30;transition:color .35s}
.t40-etape-k{font-family:Oswald,sans-serif;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:#8a8a8a;transition:color .35s}
.t40-etape-t{font-family:Oswald,sans-serif;font-size:23px;font-weight:500;line-height:1.2;text-transform:uppercase;color:#141414;transition:color .35s}
.t40-etape-go{margin-top:auto;padding-top:14px;display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:14px;color:#da1d30;transition:color .35s}
.t40-etape-go:after{content:"+";display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:#da1d30;color:#fff;font-size:18px;line-height:1;transition:background .35s,color .35s,transform .35s}
.t40-etape:hover .t40-etape-n,.t40-etape:hover .t40-etape-k,.t40-etape:hover .t40-etape-t,.t40-etape:hover .t40-etape-go,.t40-etape:focus-visible .t40-etape-n,.t40-etape:focus-visible .t40-etape-k,.t40-etape:focus-visible .t40-etape-t,.t40-etape:focus-visible .t40-etape-go{color:#fff}
.t40-etape:hover .t40-etape-go:after,.t40-etape:focus-visible .t40-etape-go:after{background:#fff;color:#da1d30;transform:rotate(90deg)}
.t40-dlg{border:0;padding:0;margin:auto;width:min(1080px,calc(100vw - 32px));max-height:calc(100vh - 48px);border-radius:26px;background:#fff;color:#555;box-shadow:0 40px 120px -30px rgba(0,0,0,.6);overflow:visible}
.t40-dlg::backdrop{background:rgba(20,20,20,.72);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.t40-dlg[open]{animation:t40dlg .45s cubic-bezier(.22,1,.36,1)}
.t40-dlg[open]::backdrop{animation:t40fade .35s ease}
@keyframes t40dlg{from{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:none}}
@keyframes t40fade{from{opacity:0}}
.t40-dlg-in{position:relative;max-height:calc(100vh - 48px);overflow:auto;border-radius:26px;padding:44px 44px 30px;font-family:"Open Sans",Arial,sans-serif;font-size:16px;line-height:1.65}
.t40-dlg-x{all:unset;position:sticky;float:right;top:0;margin:-24px -24px 0 0;width:44px;height:44px;border-radius:50%;background:#141414;color:#fff;font-size:26px;line-height:44px;text-align:center;cursor:pointer;z-index:2;transition:background .3s}
.t40-dlg-x:hover,.t40-dlg-x:focus-visible{background:#da1d30}
.t40-dlg-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:40px;align-items:start;clear:both}
.t40-dlg-grid.no-img{grid-template-columns:1fr}
.t40-dlg-k{display:block;font-family:Oswald,sans-serif;font-size:14px;letter-spacing:.12em;text-transform:uppercase;color:#da1d30;margin-bottom:10px}
.t40-dlg .t40-dlg-t{font-family:Oswald,sans-serif;font-size:clamp(26px,3vw,34px);font-weight:500;line-height:1.15;text-transform:uppercase;color:#141414;margin:0 0 20px;padding:0}
.t40-dlg-body h4{font-family:Oswald,sans-serif;font-size:15px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:#141414;margin:22px 0 10px;padding:0}
.t40-dlg-body h4:first-child{margin-top:0}
.t40-dlg-body p{margin:0 0 1em;padding:0}
.t40-dlg-body ul{list-style:none;margin:0 0 1em;padding:0}
.t40-dlg-body li{position:relative;padding-left:26px;margin-bottom:9px}
.t40-dlg-body li:before{content:"";position:absolute;left:0;top:.5em;width:11px;height:11px;border-radius:50%;border:2.5px solid #da1d30}
.t40-dlg-body strong{color:#141414}
.t40-dlg-fig{margin:0;position:sticky;top:0}
.t40-dlg-fig a{display:block;position:relative;border-radius:18px;overflow:hidden;border:1px solid #e9e9e9;background:#fafafa}
.t40-dlg-fig img{display:block;width:100%;height:auto;transition:transform .8s ease}
.t40-dlg-fig a:hover img{transform:scale(1.03)}
.t40-dlg-zoom{position:absolute;right:12px;top:12px;background:rgba(20,20,20,.8);color:#fff;font-size:12px;font-weight:700;padding:6px 12px;border-radius:99px}
.t40-dlg-zoom:before{content:"⤢ "}
.t40-dlg-leg{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:12px;font-size:13.5px}
.t40-dlg-leg span{display:inline-flex;align-items:center;gap:8px}
.t40-dlg-leg i{width:18px;height:12px;border-radius:3px;display:inline-block}
.t40-dlg-leg .note{color:#888}
.t40-dlg-nav{display:flex;justify-content:space-between;gap:12px;margin-top:30px;padding-top:20px;border-top:1px solid #eee}
.t40-dlg-nav button{all:unset;cursor:pointer;font-family:Oswald,sans-serif;font-size:15px;letter-spacing:.06em;text-transform:uppercase;color:#141414;padding:8px 4px;transition:color .3s}
.t40-dlg-nav button:hover,.t40-dlg-nav button:focus-visible{color:#da1d30}
.t40-dlg-prev:before{content:"← "}.t40-dlg-next:after{content:" →"}
html.t40-lock{overflow:hidden}
@media (max-width:860px){.t40-dlg-grid{grid-template-columns:1fr;gap:24px}.t40-dlg-fig{position:static;order:-1}.t40-dlg-in{padding:30px 22px 22px}.t40-dlg-x{margin:-14px -10px 0 0}}
@media (max-width:640px){.t40-etape{min-height:0;padding:22px}.t40-etape-n{font-size:34px}.t40-etape-t{font-size:20px}.t40-dlg{width:calc(100vw - 16px);max-height:calc(100vh - 16px);border-radius:20px}.t40-dlg-in{max-height:calc(100vh - 16px);border-radius:20px}}
