/*
Theme Name: MN Récup
Theme URI: https://mnrecup.leta-france.fr/
Author: L&A Communication
Author URI: https://letacommunication.fr/
Description: Thème sur mesure MN Récup (location de bennes, récupération de métaux, transport d'engins, pont-bascule), Maîche (25). Contenus éditables via ACF (Réglages du site).
Version: 1.0.0
Text Domain: mnrecup
*/
/* Concept : la bannière du client en site. Violet, blanc, gris clair, grand logotype MN Récup, pastilles d'icônes violettes, cartes blanches arrondies, phrases d'accroche en italique. */
:root{
  --bg:#ffffff; --paper:#f2f0f7; --fg:#1b1625; --muted:#5a5468; --line:#dcd6e8; --card:#ffffff;
  --violet:#5b2a8c; --violet-2:#43206b; --lilac:#ece4f7; --btn-fg:#ffffff; --block:#2a1548; --block-fg:#ffffff; --block-mute:#d4c3ee;
  --bar:#5b2a8c; --ticket:#fffdf6; --ticket-ink:#2a2233; --warn:#8a5a00; --warn-bg:#fff6e0; --shadow:0 14px 34px -18px rgba(60,20,110,.45);
  --ov:linear-gradient(100deg,rgba(24,12,44,.9) 0%,rgba(52,26,86,.72) 55%,rgba(66,32,106,.42) 100%);
  --head:'Big Shoulders Display','Arial Narrow',Impact,sans-serif; --acc:'Barlow Condensed','Arial Narrow',sans-serif; --body:'Hanken Grotesk',system-ui,sans-serif; --mono:'IBM Plex Mono',ui-monospace,Consolas,monospace;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#14101b; --paper:#1c1727; --fg:#f0ebf7; --muted:#aca4bd; --line:#3a3150; --card:#1f1a2b;
  --violet:#b48ae6; --violet-2:#8f63cc; --lilac:#2f2347; --btn-fg:#1a1026; --block:#0e0a16; --block-mute:#cdbbe8;
  --bar:#3a2063; --ticket:#262033; --ticket-ink:#efe9f8; --warn:#f0c565; --warn-bg:#2d2411; --shadow:0 14px 34px -18px rgba(0,0,0,.8);
  color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#14101b; --paper:#1c1727; --fg:#f0ebf7; --muted:#aca4bd; --line:#3a3150; --card:#1f1a2b;
  --violet:#b48ae6; --violet-2:#8f63cc; --lilac:#2f2347; --btn-fg:#1a1026; --block:#0e0a16; --block-mute:#cdbbe8;
  --bar:#3a2063; --ticket:#262033; --ticket-ink:#efe9f8; --warn:#f0c565; --warn-bg:#2d2411; --shadow:0 14px 34px -18px rgba(0,0,0,.8);
  color-scheme:dark}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--fg);font-family:var(--body);font-size:16px;line-height:1.6}
body.lock{overflow:hidden}
a{color:inherit}p{margin:0}
h1,h2,h3{font-family:var(--head);text-transform:uppercase;font-weight:800;line-height:.95;margin:0;letter-spacing:.01em;text-wrap:wrap}
h1{font-size:clamp(2.8rem,8vw,5.4rem);font-weight:900}
h2{font-size:clamp(2.2rem,5vw,3.5rem)}
h3{font-size:1.6rem}
:focus-visible{outline:3px solid var(--violet);outline-offset:3px}
.wrap{max-width:1500px;margin-inline:auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.tag{font-family:var(--mono);font-size:.78rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--violet);display:inline-flex;align-items:center;gap:.6rem}
.tag::before{content:"";width:.7rem;height:.7rem;background:var(--violet);display:block}
.acc{font-family:var(--acc);font-style:italic;font-weight:700;color:var(--violet);font-size:1.35rem;line-height:1.15}
svg.i{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.dot{display:grid;place-items:center;border-radius:50%;background:var(--violet);color:var(--btn-fg);flex:none}
.dot svg.i{width:55%;height:55%}

/* barre haute */
.topbar{background:var(--bar);color:#fff}
.topbar .wrap{display:flex;align-items:center;gap:1rem 2rem;padding-block:.5rem}
.tb{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:#fff;min-width:0}
.tb i{flex:none;width:42px;height:42px;background:#17141d;display:grid;place-items:center;border-radius:10px}
.tb span{display:grid;line-height:1.25;font-size:.95rem;min-width:0}
.tb b{font-family:var(--head);text-transform:uppercase;font-size:1.25rem;font-weight:800;letter-spacing:.03em;line-height:1}
.tb:hover b{text-decoration:underline}
.tb-fb{margin-left:auto;flex:none;width:42px;height:42px;background:#17141d;color:#fff;display:grid;place-items:center;text-decoration:none;border-radius:10px}
.tb-fb:hover{background:#fff;color:#17141d}
@media(max-width:760px){.tb-loc{display:none}.tb span{font-size:.86rem}.tb b{font-size:1.1rem}}
@media(max-width:420px){.tb span{font-size:.78rem}}

/* en-tête */
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--bar)}
header.nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:var(--bg);border-bottom:4px solid var(--violet)}
header.nav .wrap{display:flex;align-items:center;gap:1.2rem;padding-block:.5rem}
.brand{position:relative;z-index:3;flex:none}
.brand img{height:132px;width:auto;background:#fff;padding:6px 8px;display:block;margin:-4px 0 -58px;border-radius:14px;box-shadow:var(--shadow)}
nav.main{display:flex;gap:.1rem;margin-left:auto;align-items:center}
nav.main a{font-family:var(--head);text-transform:uppercase;font-size:1.15rem;font-weight:700;letter-spacing:.06em;text-decoration:none;padding:.5rem .7rem;color:var(--muted);position:relative}
nav.main a::after{content:"";position:absolute;left:.7rem;right:.7rem;bottom:0;height:4px;background:var(--violet);transform:scaleX(0);transform-origin:left;transition:transform .3s}
nav.main a:hover{color:var(--fg)}nav.main a[aria-current="page"]{color:var(--fg)}
nav.main a[aria-current="page"]::after,nav.main a:hover::after{transform:scaleX(1)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;font-family:var(--head);font-weight:800;font-size:1.2rem;text-transform:uppercase;letter-spacing:.06em;text-decoration:none;padding:.7rem 1.5rem;border:2px solid var(--violet);background:var(--violet);color:var(--btn-fg);border-radius:12px;cursor:pointer;transition:transform .2s,box-shadow .2s,background .2s}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 22px -10px var(--violet)}
.btn.ghost{background:transparent;color:var(--violet)}
.btn.sm{font-size:1rem;padding:.5rem 1rem}
.btn.inv{background:#fff;color:#2a1548;border-color:#fff}
.btn.inv-o{background:transparent;color:#fff;border-color:#fff}
.burger{display:none;margin-left:auto;width:48px;height:48px;border:1px solid var(--line);background:var(--bg);border-radius:12px;cursor:pointer;position:relative;color:var(--fg)}
.burger span{position:absolute;left:14px;right:14px;height:2.5px;background:currentColor;border-radius:2px;transition:transform .3s,opacity .2s,top .3s}
.burger span:nth-child(1){top:17px}.burger span:nth-child(2){top:23px}.burger span:nth-child(3){top:29px}
.burger[aria-expanded="true"] span:nth-child(1){top:23px;transform:rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){top:23px;transform:rotate(-45deg)}
@media(max-width:940px){nav.main,.hd-cta{display:none}.burger{display:block}.brand img{height:104px;margin:-2px 0 -40px;padding:5px 6px}}

/* menu mobile */
.drawer{position:fixed;inset:0;z-index:45;background:var(--block);color:var(--block-fg);display:flex;flex-direction:column;padding:calc(110px + env(safe-area-inset-top,0px)) max(20px,env(safe-area-inset-right,0px)) calc(24px + env(safe-area-inset-bottom,0px)) max(20px,env(safe-area-inset-left,0px));clip-path:circle(0 at calc(100% - 40px) 40px);visibility:hidden;transition:clip-path .55s cubic-bezier(.7,0,.2,1),visibility 0s .55s;overflow-y:auto}
.drawer.open{clip-path:circle(150% at calc(100% - 40px) 40px);visibility:visible;transition:clip-path .55s cubic-bezier(.7,0,.2,1),visibility 0s}
.drawer a.l{font-family:var(--head);text-transform:uppercase;font-weight:800;font-size:2.2rem;text-decoration:none;padding:.5rem 0;border-bottom:1px solid rgba(255,255,255,.16);display:flex;justify-content:space-between;align-items:center;opacity:0;transform:translateY(16px);transition:opacity .4s,transform .4s}
.drawer a.l small{font:500 .8rem var(--mono);color:var(--block-mute)}
.drawer.open a.l{opacity:1;transform:none}
.drawer.open a.l:nth-of-type(1){transition-delay:.15s}.drawer.open a.l:nth-of-type(2){transition-delay:.2s}.drawer.open a.l:nth-of-type(3){transition-delay:.25s}.drawer.open a.l:nth-of-type(4){transition-delay:.3s}.drawer.open a.l:nth-of-type(5){transition-delay:.35s}
.drawer .dc{margin-top:auto;padding-top:1.6rem;display:grid;gap:.8rem}
.drawer .dc .mono{color:var(--block-mute);font:500 .88rem var(--mono)}
.drawer .btn{width:100%}
@media(min-width:941px){.drawer{display:none}}

/* vues, sections */
.view{display:none}.view.on{display:block}
section.blk{padding-block:clamp(3rem,7vw,5rem)}
.paper{background:var(--paper)}
.head{display:grid;gap:.8rem;margin-bottom:2rem;max-width:46rem}
.head p{color:var(--muted)}
.head.c{margin-inline:auto;text-align:center;justify-items:center;max-width:none;width:100%}
.head.c h2{text-wrap:wrap;max-width:none}.head.c p{max-width:none}
.head.c p strong{color:var(--violet)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}
.two>*{min-width:0}
@media(max-width:860px){.two{grid-template-columns:1fr;gap:1.6rem}}
.story{display:grid;gap:1rem}.story p{color:var(--muted);max-width:38rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);min-width:0}

/* photos */
.ph{position:relative;aspect-ratio:4/3;max-width:100%;background:var(--paper);border-radius:18px;overflow:hidden}
.ph.photo{background:var(--img) center/cover no-repeat;transition:background-size .5s}
.ph.tall{aspect-ratio:4/5}.ph.wide{aspect-ratio:16/9}
.ph span{position:absolute;inset:0;display:grid;place-items:center;font:500 .74rem var(--mono);color:var(--muted)}

/* hero */
.hero{background:var(--ov),var(--p3) center/cover no-repeat;color:#fff;position:relative}
#v-bennes .hero{background:var(--ov),var(--p5) center/cover no-repeat}
#v-metaux .hero{background:var(--ov),var(--p14) center/cover no-repeat}
#v-transport .hero{background:var(--ov),var(--p7) center 40%/cover no-repeat}
#v-pont-bascule .hero{background:var(--ov),var(--p10) center 45%/cover no-repeat}
.hero .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:3rem;align-items:center;padding-block:clamp(2.5rem,6vw,4.5rem);padding-top:calc(clamp(2.5rem,6vw,4.5rem) + 34px)}
.hero .wrap>*{min-width:0}
.hero .tag{color:#d9c4f5}.hero .tag::before{background:#d9c4f5}
.hero .lead{font-size:1.1rem;max-width:34rem;color:#e9defa;margin-top:1rem}
.hero .acts{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.6rem}
.hero .acts .btn:not(.ghost){background:#fff;color:#2a1548;border-color:#fff}
.hero .acts .btn.ghost{color:#fff;border-color:#fff}.hero .acts .btn.ghost:hover{background:rgba(255,255,255,.14)}
.hero.sub .wrap{padding-block:clamp(2.2rem,5vw,3.4rem);padding-top:calc(clamp(2.2rem,5vw,3.4rem) + 34px)}
.hero.sub h1{font-size:clamp(2.6rem,7vw,5rem);max-width:none;margin-top:.8rem}
.wm{font-family:var(--head);font-weight:900;text-transform:none;font-size:clamp(4.2rem,13vw,9rem);line-height:.82;letter-spacing:-.01em;margin:.5rem 0 1rem}
.wm b{color:#c9a8f5;font-weight:900}.wm span{color:#fff}
.plate{display:inline-block;background:var(--violet-2);color:#fff;font-family:var(--head);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:clamp(1.1rem,2.8vw,1.7rem);padding:.45rem 1.1rem;border-left:6px solid #c9a8f5;max-width:100%}
.hero .acc{color:#e9defa;font-size:clamp(1.15rem,2.6vw,1.5rem);margin-top:1rem;max-width:30rem}
.hero .acc b{color:#c9a8f5}
@media(max-width:860px){.hero .wrap{grid-template-columns:1fr;gap:2rem}}
.hslot{min-width:0}
.hform{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;background:var(--card);color:var(--fg);border-radius:22px;padding:1.4rem;box-shadow:0 26px 50px -24px rgba(0,0,0,.7)}
.hform h2{grid-column:1/-1;font-size:1.9rem}
.hform .subt{grid-column:1/-1;color:var(--muted);font-size:.88rem;margin-top:-.4rem}
.hform .full{grid-column:1/-1}
.hform textarea{min-height:76px}
.hform .btn{width:100%}
.hform .ok{display:none;grid-column:1/-1;background:var(--lilac);border-radius:12px;padding:.7rem .9rem;color:var(--violet);font-weight:700;font-size:.9rem}
.hform .ok.show{display:block}
@media(max-width:520px){.hform{grid-template-columns:1fr;padding:1.1rem}}

/* blocs flyer */
.bhead{display:flex;align-items:center;gap:1rem;margin-bottom:1.2rem}
.bhead .dot{width:68px;height:68px}
.bhead h2{font-size:clamp(2.2rem,5vw,3.2rem)}
.bhead h2 em{font-style:normal;color:var(--violet);display:block}
.benne-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.benne{padding:.8rem .8rem 1rem;display:grid;gap:.7rem;justify-items:center;text-align:center;transition:transform .3s}
.benne:hover{transform:translateY(-5px)}
.benne .pic{width:160px;aspect-ratio:6/5;border-radius:12px;background:#fff var(--img) center/contain no-repeat}
.benne .nm{display:flex;align-items:center;gap:.6rem;font-family:var(--head);font-weight:800;text-transform:uppercase;font-size:1.5rem;letter-spacing:.03em}
.benne .nm .dot{width:40px;height:40px}
.benne small{display:block;font:500 .72rem var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;line-height:1.2}
@media(max-width:900px){.benne-grid{grid-template-columns:1fr 1fr}}
.svc{display:grid;grid-template-columns:.9fr 1.1fr;gap:1.2rem}
.svc>*{min-width:0}
@media(max-width:900px){.svc{grid-template-columns:1fr}}
.help{padding:1.6rem;display:grid;gap:1rem;align-content:start}
.help .acc{font-size:1.6rem}
.circles{display:flex;flex-wrap:wrap;gap:1.2rem}
.circ{display:grid;justify-items:center;gap:.4rem;font:700 .72rem var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--fg)}
.circ .dot{width:62px;height:62px;background:var(--card);color:var(--violet);border:2px solid var(--violet)}
.badge{display:inline-block;background:var(--violet);color:var(--btn-fg);font-family:var(--head);font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:1.05rem;padding:.4rem 1rem;border-radius:8px;max-width:100%}
.dark{background:var(--block);color:var(--block-fg)}
.dark .head p,.dark .story p{color:var(--block-mute)}
.dark .tag{color:#c9a8f5}.dark .tag::before{background:#c9a8f5}
.dark h2{color:#fff}
.chain{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem}
.link{display:grid;justify-items:center;gap:.4rem;font:700 .74rem var(--mono);text-transform:uppercase;letter-spacing:.06em;text-align:center}
.link .pic{width:84px;height:84px;border-radius:50%;background:#fff var(--img) center/cover no-repeat;border:3px solid var(--violet);outline:3px solid rgba(255,255,255,.18)}
.arrow{font-family:var(--head);font-size:2rem;color:#c9a8f5}
.dark .badge{background:#c9a8f5;color:#2a1548}
@media(max-width:520px){.chain{flex-wrap:nowrap;gap:.3rem}.link .pic{width:68px;height:68px}.link{font-size:.62rem}.arrow{font-size:1.4rem}}
.veh{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.veh>*{min-width:0}
@media(max-width:760px){.veh{grid-template-columns:1fr}}
.veh .card{padding:1rem;display:grid;gap:.8rem}
.veh .pic{aspect-ratio:3/2;border-radius:12px;background:#fff var(--img) center/contain no-repeat}
.veh h3{color:var(--violet)}.veh p{color:var(--muted);font-size:.95rem}
.dist{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1.2rem}
@media(max-width:700px){.dist{grid-template-columns:1fr}}
.dist .card{padding:1rem 1.2rem;display:flex;align-items:center;gap:1rem}
.dist .dot{width:52px;height:52px}
.dist b{font-family:var(--head);text-transform:uppercase;font-size:1.3rem;display:block;line-height:1}
.dist span{color:var(--muted);font-size:.92rem}
.vals3{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
@media(max-width:760px){.vals3{grid-template-columns:1fr}}
.val{padding:1.4rem;display:flex;gap:1rem;align-items:center}
.val .dot{width:58px;height:58px}
.val h3{color:var(--violet);font-size:1.5rem}.val p{font-size:.9rem;color:var(--muted);margin-top:.2rem}
.strip{display:flex;flex-wrap:wrap;gap:.6rem 2.4rem;justify-content:center;background:var(--violet-2);color:#fff;padding:.9rem 1rem;margin-top:1.6rem;border-radius:12px;font-family:var(--head);text-transform:uppercase;letter-spacing:.08em;font-size:1.1rem;font-weight:700}
.strip span{display:flex;align-items:center;gap:.5rem}

/* histoire, chiffres */
.tl{position:relative;display:grid;gap:1.6rem;padding-left:2rem;margin-top:1.4rem}
.tl::before{content:"";position:absolute;left:7px;top:6px;bottom:6px;width:4px;background:var(--violet);transform-origin:top;border-radius:2px;transition:transform 1.2s ease}
.js .tl:not(.in)::before{transform:scaleY(0)}
.tl div{position:relative}
.tl div::before{content:"";position:absolute;left:-2rem;top:.4rem;width:18px;height:18px;border-radius:50%;background:var(--bg);border:4px solid var(--violet)}
.tl b{font-family:var(--head);font-weight:900;font-size:1.7rem;color:var(--violet);display:block;line-height:1;text-transform:uppercase}
.tl p{font-size:.95rem;margin-top:.2rem}
.nums{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:18px;overflow:hidden}
.nums div{background:var(--card);padding:1.5rem 1.2rem}
.nums b{display:block;font-family:var(--head);font-weight:900;font-size:clamp(2.6rem,6vw,3.8rem);line-height:1;color:var(--violet);font-variant-numeric:tabular-nums}
.nums small{color:var(--muted);font-size:.9rem;display:block;margin-top:.3rem}
.ticket{position:relative;background:var(--ticket);color:var(--ticket-ink);font-family:var(--mono);font-size:.86rem;padding:1.3rem 1.4rem 1.6rem;border:1px solid var(--line);box-shadow:var(--shadow);-webkit-mask:radial-gradient(circle 7px at 7px 100%,#0000 98%,#000) -7px 0/14px 100% repeat-x;mask:radial-gradient(circle 7px at 7px 100%,#0000 98%,#000) -7px 0/14px 100% repeat-x;mask-composite:intersect;transform:rotate(1.5deg)}
.ticket h4{margin:0 0 .6rem;font:800 .95rem var(--mono);letter-spacing:.14em;text-transform:uppercase;text-align:center;border-bottom:2px dashed currentColor;padding-bottom:.7rem}
.ticket .row{display:flex;justify-content:space-between;gap:1rem;padding:.28rem 0;border-bottom:1px dotted var(--line);transition:opacity .5s}
.ticket .row b{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.ticket .net{margin-top:.7rem;background:var(--violet);color:var(--btn-fg);padding:.6rem .8rem;display:flex;justify-content:space-between;font-weight:600;transition:opacity .5s}
.ticket .ex{display:block;text-align:center;margin-top:.8rem;font-size:.72rem;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}
.ticket .hide{opacity:.18}

/* onglets */
.seg{display:inline-flex;background:var(--lilac);border-radius:14px;padding:4px;gap:4px;margin-bottom:1.6rem}
.seg button{font-family:var(--head);text-transform:uppercase;font-weight:800;font-size:1.2rem;border:0;background:transparent;color:var(--violet);padding:.55rem 1.3rem;border-radius:10px;cursor:pointer}
.seg button[aria-selected="true"]{background:var(--violet);color:var(--btn-fg)}
.pane{display:none;grid-template-columns:1fr 1fr;gap:2rem;align-items:start}
.pane.on{display:grid;animation:rise .5s ease both}
.pane>*{min-width:0}
@media(max-width:760px){.pane{grid-template-columns:1fr}}
ul.tick{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}
ul.tick li{padding-left:2rem;position:relative}
ul.tick li::before{content:"";position:absolute;left:0;top:.2em;width:1.2rem;height:1.2rem;border-radius:50%;background:var(--violet)}
ul.tick li::after{content:"";position:absolute;left:.42rem;top:.42em;width:.35rem;height:.65rem;border:solid var(--btn-fg);border-width:0 2.5px 2.5px 0;transform:rotate(45deg) scale(.8)}

/* zone */
.zone{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}
.zone>*{min-width:0}
.segw{display:flex;justify-content:center}
#pn-part,#pn-pro{max-width:1500px;margin-inline:auto;background:var(--card);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:3.6rem}
#pn-part.on,#pn-pro.on{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:stretch}
#pn-part .ph,#pn-pro .ph{aspect-ratio:auto;height:100%;min-height:340px}
@media(max-width:800px){#pn-part.on,#pn-pro.on{grid-template-columns:1fr}#pn-part,#pn-pro{padding:1.6rem}}
.pcol{display:grid;gap:.9rem;align-content:center}.pcol h3{color:var(--violet);font-size:1.6rem}.pcol p{color:var(--muted)}.pcol .tick{margin:.2rem 0}@media(max-width:860px){.zone{grid-template-columns:1fr}}
.zone.zm{grid-template-columns:1.25fr 1fr;gap:2rem}@media(max-width:860px){.zone.zm{grid-template-columns:1fr}}
.zone.zm svg.zmap{width:100%;max-width:none;height:auto;margin:0;overflow:visible}
.zmap .zo path{fill:var(--line);stroke:var(--card);stroke-width:1.2}
.zmap .zi path{fill:var(--violet);fill-opacity:.82;stroke:#fff;stroke-width:1.4;transition:fill-opacity .2s,fill .2s;cursor:pointer}
.zmap .zi path:hover{fill:#c9a8f5;fill-opacity:1}
.zmap .zr{fill:none;stroke:var(--violet);stroke-width:3;stroke-dasharray:12 10}
.zmap .zl text{font-family:var(--head);font-weight:800;fill:#fff;paint-order:stroke;stroke:#2a1650;stroke-width:4px;stroke-linejoin:round;text-anchor:middle;dominant-baseline:middle;pointer-events:none;letter-spacing:.02em}
.zmap .zp{fill:#fff;stroke:var(--violet-2,#2a1650);stroke-width:5}
.zmap .zpp{fill:none;stroke:#fff;stroke-width:3;transform-box:fill-box;transform-origin:center;animation:zpulse 2.4s ease-out infinite}
@keyframes zpulse{from{transform:scale(1);opacity:.9}to{transform:scale(5);opacity:0}}
.zone svg{width:100%;max-width:420px;height:auto;display:block;margin-inline:auto}
.zone .ring{fill:var(--lilac);stroke:var(--violet);stroke-width:2;fill-opacity:.7}
.zone .ring2{fill:none;stroke:var(--violet);stroke-width:2;stroke-dasharray:6 6}
.zone text{font-family:var(--mono);font-size:13px;font-weight:600;fill:var(--fg)}
.zone .pulse{fill:none;stroke:var(--violet);stroke-width:2;transform-origin:200px 200px;animation:pulse 3s ease-out infinite}
@keyframes pulse{from{transform:scale(.1);opacity:.9}to{transform:scale(1);opacity:0}}

.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem}
.mini{padding:1.2rem}.mini h3{color:var(--violet);margin-bottom:.4rem}.mini p{font-size:.93rem;color:var(--muted)}
.chips{display:flex;flex-wrap:wrap;gap:.7rem}
.chip{display:flex;align-items:center;gap:.6rem;font-family:var(--head);text-transform:uppercase;font-weight:800;font-size:1.25rem;padding:.55rem 1.1rem;background:var(--card);border:2px solid var(--violet);border-radius:12px;color:var(--fg)}
.chip i{width:12px;height:12px;border-radius:50%;display:block}
.todo{margin-top:2rem;border:2px dashed var(--warn);background:var(--warn-bg);border-radius:14px;padding:1rem 1.2rem;font-size:.92rem;color:var(--fg)}
.todo b{font:600 .78rem var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--warn);display:block;margin-bottom:.4rem}
.todo ul{margin:0;padding-left:1.1rem;columns:2;column-gap:2rem}
@media(max-width:700px){.todo ul{columns:1}}
.cta{background:var(--block);color:var(--block-fg);padding-block:3rem}
.cta .wrap{display:flex;flex-wrap:wrap;gap:1.4rem 2rem;align-items:center;justify-content:space-between}
.cta h2{max-width:none;font-size:clamp(2rem,4.5vw,3rem)}

/* pont-bascule */
.pb{display:grid;grid-template-columns:1.2fr .8fr;gap:3rem;align-items:start}
.pb>*{min-width:0}
@media(max-width:900px){.pb{grid-template-columns:1fr;gap:2rem}}
.road{position:relative;height:74px;margin-bottom:1rem}
.road::after{content:"";position:absolute;left:0;right:0;bottom:6px;height:5px;background:repeating-linear-gradient(90deg,var(--muted) 0 16px,transparent 16px 28px);opacity:.5}
.scale{position:absolute;left:46%;bottom:6px;width:20%;height:9px;background:var(--violet);border-radius:3px}
.truck{position:absolute;bottom:13px;left:0;width:84px;transition:left 1s cubic-bezier(.5,.1,.2,1)}
.truck svg{display:block;width:84px;height:auto}
.steps{display:grid;gap:.8rem}
.step{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:center;text-align:left;font:inherit;color:inherit;background:var(--card);border:2px solid var(--line);border-radius:18px;padding:.7rem 1rem .7rem .7rem;cursor:pointer;transition:border-color .3s,background .3s,transform .3s}
.step .ph{width:96px;aspect-ratio:1;border-radius:12px}
.step .ph span{display:none}
.step .n{font:600 .75rem var(--mono);color:var(--violet);letter-spacing:.1em}
.step h3{font-size:1.3rem}.step p{font-size:.88rem;color:var(--muted);margin-top:.15rem}
.step.on{border-color:var(--violet);background:var(--lilac);transform:translateX(6px)}

/* contact */
.formgrid{display:grid;grid-template-columns:.8fr 1.2fr;gap:3rem}
.formgrid>*{min-width:0}
@media(max-width:860px){.formgrid{grid-template-columns:1fr;gap:1.8rem}}
.info{display:grid;gap:1.2rem;align-content:start;margin:0}
.info dt{font:600 .76rem var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--violet)}
.info dd{margin:.1rem 0 0}
form.big{display:grid;grid-template-columns:1fr 1fr;gap:1rem;background:var(--card);border:1px solid var(--line);border-radius:22px;padding:1.6rem;box-shadow:var(--shadow)}
form.big .full{grid-column:1/-1}
label{display:grid;gap:.3rem;font-size:.86rem;font-weight:700}
input,select,textarea{font:inherit;font-weight:400;color:var(--fg);background:var(--bg);border:1.5px solid var(--muted);border-radius:10px;padding:.7rem .8rem;width:100%;min-width:0}
textarea{min-height:110px;resize:vertical}
@media(max-width:520px){form.big{grid-template-columns:1fr;padding:1.1rem}}
#sent{display:none;grid-column:1/-1;background:var(--lilac);border-radius:12px;padding:.8rem 1rem;color:var(--violet);font-weight:700}
#sent.show{display:block}

.tt{position:fixed;right:max(14px,env(safe-area-inset-right,0px));bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:40;font:600 .78rem var(--mono);padding:.5rem .8rem;background:var(--bg);color:var(--fg);border:1px solid var(--muted);border-radius:999px;cursor:pointer}
.callbar{display:none}
@media(max-width:940px){.callbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:35;gap:.6rem;padding:.6rem max(12px,env(safe-area-inset-right,0px)) calc(.6rem + env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px));background:var(--bg);border-top:1px solid var(--line)}.callbar .btn{flex:1;padding:.6rem .5rem}.tt{bottom:calc(72px + env(safe-area-inset-bottom,0px))}footer{padding-bottom:calc(5rem + env(safe-area-inset-bottom,0px))}}

.acc2{font-family:var(--acc);font-style:italic;text-transform:none;font-weight:700;color:var(--violet);font-size:clamp(2.2rem,5vw,3.2rem);line-height:1}
.svcx{display:grid;grid-template-columns:1.15fr .85fr;gap:1.4rem;align-items:stretch}
.svcx>*{min-width:0}
@media(max-width:900px){.svcx{grid-template-columns:1fr}.svcx .ph{min-height:240px}}
.help{padding:1.8rem;display:grid;gap:1rem;align-content:start}
.help p{color:var(--muted);max-width:44rem}
.svc4{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:1.4rem}
@media(max-width:1000px){.svc4{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.svc4{grid-template-columns:1fr}}
.svc4 .card{padding:1.3rem;display:grid;gap:.6rem;align-content:start}
.svc4 .dot{width:56px;height:56px}
.svc4 h3{color:var(--violet)}.svc4 p{font-size:.93rem;color:var(--muted)}
.tlh{margin:2rem 0 1rem;color:var(--violet)}
.tlist{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.tlist .card{display:flex;gap:.9rem;align-items:center;padding:1rem 1.1rem}
.tlist .dot{width:46px;height:46px}.tlist .dot .i{width:22px;height:22px}
.tlist b{display:block;font-family:var(--head);text-transform:uppercase;letter-spacing:.02em;color:var(--violet);font-size:1.05rem;line-height:1.1}
.tlist span:not(.dot){display:block;font-size:.88rem;color:var(--muted);margin-top:.2rem}
@media(max-width:1000px){.tlist{grid-template-columns:1fr 1fr}}@media(max-width:640px){.tlist{grid-template-columns:1fr}}
.head.c h2 .hl{color:var(--violet-3,#8a4fd0)}
.why{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem}
.why .card{position:relative;padding:1.4rem 1.3rem 1.5rem;display:grid;gap:.6rem;align-content:start;border-radius:14px;box-shadow:none;transition:transform .3s,box-shadow .3s}
.why .card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.why .wi{width:52px;height:52px;border-radius:12px;background:var(--lilac);color:var(--violet);display:grid;place-items:center}.why .wi .i{width:24px;height:24px}
.why .wn{position:absolute;top:.7rem;right:1.1rem;font-family:var(--head);font-weight:900;font-size:3.2rem;line-height:1;color:#c9a8f5;opacity:.55}
.why h3{color:var(--fg);margin-top:.4rem;font-size:1.25rem}
.why p{color:var(--muted);font-size:.93rem}
@media(max-width:1000px){.why{grid-template-columns:1fr 1fr}}@media(max-width:560px){.why{grid-template-columns:1fr}}
#confiance .uline{display:block;width:84px;height:5px;border-radius:5px;background:linear-gradient(90deg,#c9a8f5,#5b2a8c);margin-top:.2rem}
#confiance .why{gap:1.2rem;margin-top:.6rem}
#confiance .why .card{background:var(--card);border:1px solid var(--line);padding:1.7rem 1.4rem 1.6rem;border-radius:20px;overflow:hidden;box-shadow:var(--shadow)}
#confiance .why .card::before{content:"";position:absolute;left:0;top:0;height:4px;width:44px;background:linear-gradient(90deg,#c9a8f5,#5b2a8c);transition:width .4s}
#confiance .why .card:hover{transform:translateY(-6px)}
#confiance .why .card:hover::before{width:100%}
#confiance .why .wi{width:64px;height:64px;border-radius:50%;background:linear-gradient(145deg,#8a4fd0,#4a1f80);color:#fff;box-shadow:0 0 0 7px var(--lilac),0 12px 26px -12px rgba(91,42,140,.8)}
#confiance .why .wi .i{width:28px;height:28px}
#confiance .why .wn{color:transparent;-webkit-text-stroke:1.5px #c9a8f5;opacity:1;font-size:3.6rem}
#confiance .why h3{color:var(--violet);font-size:1.35rem;margin-top:.8rem}
#confiance .whycta{display:flex;flex-wrap:wrap;gap:.8rem 1rem;justify-content:center;margin-top:2.2rem}
.prefoot{background:linear-gradient(135deg,#5b2a8c,#7b3fc0);color:#fff;text-align:center;padding:4.2rem 0 4.4rem}
.prefoot h2{color:#fff;font-size:clamp(2rem,4.4vw,3.4rem);line-height:1;max-width:none;text-wrap:wrap;margin:0 auto 1.1rem;text-shadow:0 2px 18px rgba(30,10,60,.35)}
.prefoot h2 span{color:#e0c8fb}
.prefoot p{color:#f1e8fc;max-width:none;margin:0 auto}
.prefoot .pfb{display:flex;flex-wrap:wrap;gap:.8rem 1rem;justify-content:center;margin-top:1.8rem}
.prefoot .btn.dk{background:#1c0f38;color:#fff}.prefoot .btn.ghost{color:#fff;border-color:#fff;background:transparent}
.prefoot .btn.dk:hover{background:#000}
.faq{max-width:1500px;margin-inline:auto;display:grid;gap:.8rem}
.faq details{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:0 1.3rem;transition:box-shadow .25s,border-color .25s}
.faq details[open]{box-shadow:var(--shadow);border-color:#c9a8f5}
.faq summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem 0;font-family:var(--head);text-transform:uppercase;font-weight:800;font-size:1.2rem;letter-spacing:.02em;color:var(--violet)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--lilac);color:var(--violet);font-size:1.4rem;line-height:1;transition:transform .25s,background .25s}
.faq details[open] summary::after{content:"−";background:var(--violet);color:#fff}
.faq details p{color:var(--muted);padding:0 0 1.2rem;max-width:none}
.veh{grid-template-columns:1.968fr 1.54fr;align-items:start}
.veh .card:nth-child(1) .pic{aspect-ratio:374/190;background-size:100% 100%}
.veh .card:nth-child(2) .pic{aspect-ratio:385/250;background-size:100% 100%}
@media(max-width:700px){.veh{grid-template-columns:1fr}}
.ctr{text-align:center;display:flex;flex-wrap:wrap;gap:.8rem 1rem;justify-content:center}
footer{background:var(--card);color:var(--fg);font-size:.95rem;padding-block:clamp(48px,6vw,72px) 40px;border-top:5px solid var(--violet)}
footer .wrap{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.3fr;gap:clamp(28px,4vw,56px)}
@media(max-width:940px){footer .wrap{grid-template-columns:1fr 1fr}.callbar~*{}footer{padding-bottom:110px}}
@media(max-width:560px){footer .wrap{grid-template-columns:1fr}}
footer h4{font-family:var(--head);font-weight:800;font-size:1.35rem;text-transform:uppercase;letter-spacing:.03em;color:var(--fg);margin:0 0 16px;padding-bottom:10px;border-bottom:2px solid var(--violet);display:inline-block}
footer ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
footer a{color:inherit;text-decoration:none;transition:color .15s ease}
footer a:hover{color:var(--violet)}
.foot-brand{display:grid;gap:18px;align-content:start}
.foot-brand .logo{justify-self:start}
footer .foot-brand img{width:auto;height:110px;border-radius:50%;background:none;padding:0;margin:0;border-radius:0;display:block}
.foot-brand p{max-width:36ch;color:var(--muted);font-size:.92rem}
.foot-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.foot-fb{display:grid;place-items:center;width:44px;height:44px;border-radius:999px;background:var(--lilac);color:var(--violet)}
.foot-fb .i{width:20px;height:20px}
.foot-fb:hover{background:var(--violet);color:#fff!important}
.foot-coords li{display:flex;gap:12px;align-items:flex-start}
.fc-ic{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--lilac);color:var(--violet)}
.fc-ic .i{width:18px;height:18px}
.foot-coords b{display:block;color:var(--fg);font-weight:700;line-height:1.3;overflow-wrap:anywhere}
.foot-coords em{font-style:normal;font-size:.85rem;color:var(--muted)}
.foot-base{grid-column:1/-1;border-top:1px solid var(--line);padding-top:20px;margin-top:8px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:.82rem;color:var(--muted)}
.foot-base .fsig-n{color:var(--violet);font-weight:700}
/* parcours en chevrons */
.stps{display:grid;grid-template-columns:repeat(3,1fr);margin-top:.4rem}
.stp{min-width:0;position:relative;display:flex;flex-direction:column}
.stp+.stp{margin-left:-18px}
.chev{display:flex;align-items:center;gap:1rem;min-height:92px;padding:1rem 2.6rem 1rem 4.2rem;color:#fff;clip-path:polygon(0 0,calc(100% - 34px) 0,100% 50%,calc(100% - 34px) 100%,0 100%,34px 50%);background:linear-gradient(100deg,#4a1f80,#5b2a8c)}
.stp:first-child .chev{clip-path:polygon(0 0,calc(100% - 34px) 0,100% 50%,calc(100% - 34px) 100%,0 100%);border-radius:16px 0 0 16px;padding-left:1.8rem}
.chev.c2{background:linear-gradient(100deg,#5b2a8c,#7b3fc0)}
.stp:last-child .chev{background:linear-gradient(100deg,#7b3fc0,#9a62dc);clip-path:polygon(0 0,100% 0,100% 100%,0 100%,34px 50%);border-radius:0 16px 16px 0}
.chev b{font-family:var(--head);font-weight:900;font-size:3rem;line-height:1;color:transparent;-webkit-text-stroke:1.5px #e4d3fb;flex:none}
.chev .i{width:30px;height:30px;flex:none;color:#e4d3fb}
.chev h3{color:#fff;font-size:1.2rem;line-height:1.05;margin:0}
.stp .sb{flex:1;margin:1rem .6rem 0;padding:1.4rem 1.5rem 1.5rem;display:grid;gap:.8rem;align-content:start;background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}
.stp+.stp .sb{margin-left:calc(18px + .6rem)}
.stp:first-child .sb{margin-left:0}.stp:last-child .sb{margin-right:0}
.stp .sb p{color:var(--muted)}
.stp .sb ul{list-style:none;padding:.8rem 0 0;margin:0;display:grid;gap:.45rem;border-top:1px dashed var(--line);font-size:.92rem}
.stp .sb li::before{content:"✓";color:var(--violet);font-weight:800;margin-right:.5rem}
.stpgo{display:flex;flex-wrap:wrap;gap:.8rem 1rem;align-items:center;justify-content:center;margin-top:2.2rem;padding-top:1.6rem;border-top:1px dashed var(--line)}
.stpgo span{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;color:var(--violet);width:100%;justify-content:center}.stpgo .i{width:22px;height:22px}
@media(max-width:860px){.stps{grid-template-columns:1fr;gap:1.4rem}.stp+.stp{margin-left:0}
.chev,.stp:first-child .chev,.stp:last-child .chev{clip-path:polygon(0 0,100% 0,100% calc(100% - 16px),50% 100%,0 calc(100% - 16px));border-radius:14px 14px 0 0;padding:1rem 1.8rem 1.6rem}
.stp .sb,.stp+.stp .sb,.stp:first-child .sb{margin:.8rem 0 0}}
.galw{margin-top:3rem}
.gal{display:grid;grid-template-columns:repeat(5,1fr);grid-auto-rows:190px;gap:.8rem;grid-auto-flow:dense}
.gtile{position:relative;border:0;padding:0;border-radius:16px;overflow:hidden;cursor:zoom-in;background:var(--paper)}
.gtile.wide{grid-column:span 2}
.gtile .gimg{position:absolute;inset:0;background:var(--img) center/cover no-repeat;transition:transform .5s}
.gtile:hover .gimg{transform:scale(1.07)}
.gtile::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(42,22,80,.55));opacity:0;transition:opacity .3s}
.gtile:hover::after,.gtile:focus-visible::after{opacity:1}
.gtile:focus-visible{outline:3px solid var(--violet);outline-offset:2px}
#lb{border:0;padding:0;background:transparent;max-width:min(1100px,94vw);width:100%;overflow:visible}
#lb::backdrop{background:rgba(20,10,40,.82)}
#lb .lbi{width:100%;aspect-ratio:4/3;max-height:84vh;background:var(--img) center/contain no-repeat;border-radius:14px}
#lb .lbx{position:absolute;top:-14px;right:-4px;z-index:2;width:42px;height:42px;border-radius:50%;border:0;background:#fff;color:#2a1650;font-size:1.7rem;line-height:1;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.4)}
@media(max-width:1000px){.gal{grid-template-columns:1fr 1fr;grid-auto-rows:190px}}
@media(max-width:560px){.gal{grid-auto-rows:140px}}
.gal3{grid-template-columns:repeat(3,1fr);grid-auto-rows:180px}
@media(max-width:860px){.gal3{grid-template-columns:1fr 1fr;grid-auto-rows:170px}.gal3 .gtile:nth-child(6){display:none}}
.pcta{display:flex;flex-wrap:wrap;gap:.8rem 1rem;margin:.6rem 0 0;justify-content:flex-start}@media(max-width:860px){.pcta{justify-content:center}}
/* en-tête réduit au défilement */
header.nav .wrap,.brand .emb,.wmk-t,.wmk-p{transition:padding .25s ease,height .25s ease,font-size .25s ease,margin .25s ease,gap .25s ease}
header.nav.shrunk .wrap{padding-block:.35rem}
header.nav.shrunk .brand .emb{height:54px;margin:0}
header.nav.shrunk .wmk-t{font-size:2.3rem}
header.nav.shrunk .wmk-p{font-size:.7rem;padding:.12rem .5rem}
header.nav.shrunk .brand{gap:.7rem}
header.nav{transition:box-shadow .25s ease,border-color .25s ease}
header.nav.shrunk{border-bottom-color:transparent;box-shadow:0 10px 28px -8px rgba(30,10,60,.4),0 2px 6px rgba(30,10,60,.12)}
@media(max-width:940px){header.nav.shrunk .brand .emb{height:44px}header.nav.shrunk .wmk-t{font-size:1.7rem}header.nav.shrunk .wmk-p{font-size:.5rem;padding:.1rem .35rem}}
.zst .card{display:grid;gap:.4rem;align-content:start}
.zst .dot{width:46px;height:46px;margin-bottom:.3rem}.zst .dot .i{width:22px;height:22px}
@media(max-width:940px){
footer .wrap{text-align:center;justify-items:center}
footer .wrap>div{display:grid;justify-items:center;justify-content:center;align-content:start;grid-auto-rows:max-content}
.foot-brand{justify-items:center}.foot-brand .logo{justify-self:center}.foot-brand p{margin-inline:auto}
.foot-actions{justify-content:center}
footer ul{justify-items:center}
.foot-coords{gap:18px}.foot-coords li{flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center}
.foot-base{justify-content:center;text-align:center}
}
@media(max-width:860px){
.hero .wrap>div:first-child{text-align:center;display:grid;justify-items:center}
.hero h1.slogan{max-width:none;margin-inline:auto}
.hero h1.slogan::after{margin-inline:auto}
.hero .lead{margin-inline:auto}
.hero .acts{display:flex;flex-wrap:nowrap;justify-content:center;gap:.6rem;width:100%}
.hero .acts .btn{flex:1 1 0;min-width:0;padding-inline:.6rem;font-size:clamp(.82rem,3.3vw,1.1rem);white-space:normal;text-align:center;line-height:1.1}
}
.callbar .btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem}
.callbar .i{width:22px;height:22px;flex:none}
#zone .story .btn{display:flex;justify-content:center;align-items:center;width:100%;text-align:center}
@media(max-width:1000px){.osvc h3 br.bd{display:none}}
[hidden]{display:none!important}
.svcincl{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-top:2rem}
.svcincl h3{color:var(--violet);margin-bottom:.8rem}
@media(max-width:700px){.svcincl{grid-template-columns:1fr}}
.osv{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem}
.osvc{padding:.8rem .8rem 1.2rem;display:grid;gap:.8rem;align-content:start;transition:transform .3s;grid-row:span 4;grid-template-rows:subgrid;row-gap:.8rem}
.osvc .more{align-self:end}
.osvc:hover{transform:translateY(-5px)}
.osvc h3{color:var(--violet);padding-inline:.4rem}
.osvc p{font-size:.93rem;color:var(--muted);padding-inline:.4rem}
.osvc .more{font-family:var(--head);text-transform:uppercase;font-weight:800;letter-spacing:.05em;font-size:1.1rem;color:var(--violet);text-decoration:none;padding-inline:.4rem;display:inline-flex;align-items:center;gap:.4rem}
.osvc .more::after{content:"→";transition:transform .25s}
.osvc:hover .more::after{transform:translateX(5px)}
@media(max-width:1000px){.osv{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.osv{grid-template-columns:1fr}}
/* en-tête : emblème + logotype */
.brand{display:flex;align-items:center;gap:.9rem}
.brand .emb{height:116px;width:auto;background:none;padding:0;margin:-6px 0 -50px;border-radius:50%;box-shadow:0 12px 26px -10px rgba(40,10,80,.6)}
.wmk{display:grid;gap:.25rem;line-height:1}
.wmk-t{font-family:var(--head);font-weight:900;font-style:italic;font-size:3.1rem;line-height:.85;letter-spacing:-.01em;color:var(--fg);text-transform:none;white-space:nowrap}
.wmk-t i{color:var(--violet)}
.wmk-p{background:var(--violet-2);color:#fff;font-family:var(--head);font-weight:700;text-transform:uppercase;letter-spacing:.07em;font-size:.82rem;padding:.2rem .6rem;white-space:nowrap;border-left:4px solid #c9a8f5}
@media(max-width:1080px){.wmk-t{font-size:2.5rem}.wmk-p{font-size:.7rem}}
@media(max-width:940px){.brand .emb{height:78px;margin:-2px 0 -26px}.wmk-t{font-size:2.1rem}.wmk-p{font-size:.6rem;padding:.15rem .4rem;letter-spacing:.04em}.brand{gap:.6rem}}
@media(max-width:400px){.wmk-t{font-size:1.8rem}.wmk-p{font-size:.52rem;letter-spacing:.02em;border-left-width:3px}.brand .emb{height:70px}}
/* bandeau sans filtre noir, logo sans débordement */
:root{--ov:linear-gradient(100deg,rgba(10,8,16,.8) 0%,rgba(20,14,32,.56) 50%,rgba(20,14,32,.22) 100%);--hfg:#ffffff;--hacc:#c9a8f5;--hmut:#ece4f7}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--ov:linear-gradient(100deg,rgba(10,8,16,.8) 0%,rgba(20,14,32,.56) 50%,rgba(20,14,32,.22) 100%);--hfg:#ffffff;--hacc:#c9a8f5;--hmut:#ece4f7}}
:root[data-theme="dark"]{--ov:linear-gradient(100deg,rgba(10,8,16,.8) 0%,rgba(20,14,32,.56) 50%,rgba(20,14,32,.22) 100%);--hfg:#ffffff;--hacc:#c9a8f5;--hmut:#ece4f7}
.hero{color:var(--hfg)}
.hero h1{color:var(--hfg)}
.hero .tag{color:var(--hacc)}.hero .tag::before{background:var(--hacc)}
.hero .lead,.hero .acc{color:var(--hmut)}
.hero .acc b{color:var(--hacc)}
.hero .wm b{color:var(--hacc)}.hero .wm span{color:var(--hfg)}
.hero .acts .btn:not(.ghost){background:#fff;color:#2a1548;border-color:#fff}
.hero .acts .btn.ghost{color:#fff;border-color:#fff;background:transparent}
.hero .acts .btn.ghost:hover{background:rgba(255,255,255,.16)}
.hero .wrap{padding-top:clamp(2.5rem,6vw,4.5rem)}
.hero.sub .wrap{padding-top:clamp(2.2rem,5vw,3.4rem)}
.brand .emb{height:72px;margin:0;box-shadow:none}
@media(max-width:940px){.brand .emb{height:56px;margin:0}}
@media(max-width:400px){.brand .emb{height:52px}}
header.nav .wrap{padding-block:.55rem}
.hero h1.slogan{font-family:var(--acc);font-style:italic;font-weight:700;text-transform:none;font-size:clamp(2rem,4.2vw,3.2rem);line-height:.92;letter-spacing:0;max-width:21ch;margin:0}
.hero h1.slogan b{color:var(--hacc);font-weight:700}
.hero .slogan+.acts{margin-top:2rem}
.hero .wm{font-size:clamp(3.8rem,10vw,7.4rem);margin:0 0 .6rem}
.hero .plate{margin-bottom:1.2rem}
/* en-tête plus grand */
header.nav .wrap{padding-block:.8rem;gap:1.4rem;max-width:1500px}
.brand .emb{height:92px}
.brand{gap:1.1rem}
.wmk-t{font-size:3.6rem}
.wmk-p{font-size:.95rem;padding:.26rem .8rem}
nav.main a{font-size:1.3rem;padding:.55rem .5rem;white-space:nowrap}
header.nav .btn.sm{font-size:1.15rem;padding:.65rem 1.2rem;white-space:nowrap}
@media(max-width:1240px){.brand .emb{height:84px}.wmk-t{font-size:3.3rem}.wmk-p{font-size:.88rem}nav.main a{font-size:1.25rem;padding:.5rem .5rem}header.nav .btn.sm{font-size:1.1rem;padding:.6rem 1.1rem}}
@media(max-width:1080px){.wmk-t{font-size:2.9rem}.wmk-p{font-size:.78rem}nav.main a{font-size:1.15rem;padding:.5rem .4rem}}
@media(max-width:940px){header.nav .wrap{padding-block:.6rem}.brand .emb{height:68px}.wmk-t{font-size:2.5rem}.wmk-p{font-size:.7rem}.burger{width:52px;height:52px}}
@media(max-width:400px){.brand .emb{height:60px}.wmk-t{font-size:2.15rem}.wmk-p{font-size:.6rem}.brand{gap:.6rem}}
/* bandeau d'image plus haut */
.hero{display:flex;align-items:center;min-height:clamp(620px,86vh,900px)}
.hero.sub{min-height:clamp(480px,66vh,680px)}
.hero .wrap{width:100%;padding-block:clamp(3rem,7vw,5.5rem)}
.hero.sub .wrap{padding-block:clamp(2.6rem,6vw,4.5rem)}
@media(max-width:860px){.hero,.hero.sub{min-height:0}.hero .wrap{padding-block:3.2rem}}
/* en-tête plus haut */
header.nav .wrap{padding-block:1.3rem}
.brand .emb{height:112px}
.wmk-t{font-size:3.9rem}.wmk-p{font-size:1rem;padding:.3rem .9rem}
@media(max-width:1240px){.brand .emb{height:100px}.wmk-t{font-size:3.4rem}.wmk-p{font-size:.9rem}}
@media(max-width:1080px){.brand .emb{height:88px}.wmk-t{font-size:2.9rem}.wmk-p{font-size:.78rem}}
@media(max-width:940px){header.nav .wrap{padding-block:.95rem}.brand .emb{height:80px}.wmk-t{font-size:2.6rem}.wmk-p{font-size:.7rem}}
@media(max-width:400px){.brand .emb{height:68px}.wmk-t{font-size:2.2rem}.wmk-p{font-size:.6rem}}
/* même style que le flyer : logotype incliné, plaque violette en biais, trait sous le slogan */
.hero .wm{font-style:italic;letter-spacing:-.025em;text-shadow:0 6px 24px rgba(0,0,0,.35)}
.hero .wm b{color:#b98cf2}
.hero .plate{background:#5b2a8c;color:#fff;border-left:0;padding:.5rem 2rem .5rem 1.6rem;font-size:clamp(1.15rem,3vw,1.75rem);letter-spacing:.09em;clip-path:polygon(4% 0,100% 0,96% 100%,0 100%);box-shadow:none}
.hero h1.slogan::after{content:"";display:block;width:min(15rem,62%);height:5px;margin-top:.8rem;background:#b98cf2;transform:skewX(-24deg);border-radius:2px;box-shadow:0 10px 0 -1px rgba(185,140,242,.45)}
/* formulaire avancé */
.adv{background:var(--card);color:var(--fg);border-radius:22px;padding:1.3rem;box-shadow:0 26px 50px -24px rgba(0,0,0,.55);display:block}
.adv.big{border:1px solid var(--line);padding:1.8rem}
.adv h2{font-size:1.8rem;margin:0 0 .6rem}
.adv-steps{display:flex;gap:.3rem;list-style:none;margin:0 0 .5rem;padding:0;font:600 .66rem var(--mono);text-transform:uppercase;letter-spacing:.06em}
.adv-steps li{flex:1;color:var(--muted);border-bottom:3px solid var(--line);padding-bottom:.3rem}
.adv-steps li.on{color:var(--violet);border-color:var(--violet)}
.adv-steps li.done{color:var(--fg);border-color:var(--violet)}
.adv fieldset{border:0;margin:.7rem 0 0;padding:0;min-width:0}
.adv legend{font:700 .86rem var(--body);padding:0;margin-bottom:.4rem}
.pills{display:grid;grid-template-columns:1fr 1fr;gap:.45rem}
.adv.big .pills{grid-template-columns:repeat(4,1fr)}
@media(max-width:700px){.adv.big .pills{grid-template-columns:1fr 1fr}}
.pill{position:relative;display:flex;align-items:center;gap:.45rem;border:2px solid var(--line);border-radius:12px;padding:.5rem .7rem;font-size:.84rem;font-weight:700;line-height:1.15;cursor:pointer;transition:border-color .2s,background .2s}
.pill input{position:absolute;opacity:0;width:1px;height:1px}
.pill:hover{border-color:var(--violet)}
.pill:has(input:checked){background:var(--violet);border-color:var(--violet);color:var(--btn-fg)}
.pill:has(input:focus-visible){outline:3px solid var(--violet);outline-offset:2px}
.pill svg.i{width:1.2em;height:1.2em}
.seg2{display:flex;gap:.45rem;flex-wrap:wrap}
.seg2 .pill{flex:1}
.fg{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin-top:.7rem}
.fg>*{min-width:0}
.fg .full,.fg fieldset.full{grid-column:1/-1}
@media(max-width:520px){.fg{grid-template-columns:1fr}}
.adv label.f{display:grid;gap:.25rem;font-size:.82rem;font-weight:700}
.adv .grp[hidden]{display:none}
.chk{display:flex;align-items:flex-start;gap:.6rem;font-size:.82rem;font-weight:500;color:var(--muted);margin-top:.8rem;line-height:1.35}
.chk input{width:auto;margin-top:.15rem;flex:none}
.adv .hint{font-size:.78rem;color:var(--muted);margin:.5rem 0 0}
.adv-nav{display:flex;gap:.6rem;margin-top:1rem;align-items:center}
.adv-nav .btn{flex:1;padding:.6rem 1rem;width:auto}
.adv-nav .btn.back{flex:0 0 auto}
.adv-ok{display:none}
.adv.sent .adv-ok{display:block}
.adv.sent .adv-body{display:none}
.adv-ok h3{color:var(--violet);margin-bottom:.4rem}
.adv-ok dl{margin:.8rem 0;display:grid;grid-template-columns:auto 1fr;gap:.25rem 1rem;font-size:.88rem}
.adv-ok dt{font:600 .7rem var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--violet);padding-top:.2rem}
.adv-ok dd{margin:0;overflow-wrap:anywhere}
.adv-ok .note{background:var(--lilac);color:var(--violet);font-weight:700;border-radius:10px;padding:.6rem .8rem;font-size:.85rem}
.zst{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}
.zst .card{padding:1rem}
.zst h3{font-size:1.9rem}
@media(max-width:700px){.zst{grid-template-columns:1fr}}
/* animations */
.js .rv{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}
.js .rv.in{opacity:1;transform:none}
.js .rv.d1{transition-delay:.08s}.js .rv.d2{transition-delay:.16s}.js .rv.d3{transition-delay:.24s}
@keyframes rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.view.on .hero .wm,.view.on .hero h1,.view.on .hero .plate,.view.on .hero .acc,.view.on .hero .lead,.view.on .hero .acts,.view.on .hero .tag{animation:rise .7s ease both}
.view.on .hero .plate{animation-delay:.08s}.view.on .hero .acc,.view.on .hero .lead{animation-delay:.16s}.view.on .hero .acts{animation-delay:.24s}
@media(prefers-reduced-motion:reduce){.js .rv{opacity:1;transform:none;transition:none}.view.on .hero *{animation:none!important}.zone .pulse{animation:none}.truck,.drawer,.drawer a.l,.btn,.benne,.tl::before{transition:none}}

/* ---- WordPress ---- */
#devis{scroll-margin-top:130px}
.legal{max-width:900px;margin-inline:auto;padding-block:3rem 4rem}
.legal h1{font-size:clamp(2.2rem,5vw,3.4rem);margin-bottom:1.4rem}
.legal h2{font-size:1.6rem;margin:2rem 0 .6rem;color:var(--violet)}
.legal p,.legal li{color:var(--fg);margin:0 0 .8rem}
.legal a{color:var(--violet);text-decoration:underline}
.screen-reader-text{position:absolute;left:-9999px}
.adv .hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}