/* ST Couverture — feuille de style principale */
@font-face{font-family:"Outfit";font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fonts/outfit-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Outfit";font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fonts/outfit-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Outfit Fallback";src:local("Arial");size-adjust:98%;ascent-override:100%;descent-override:26%;line-gap-override:0%}

:root{
  color-scheme:light;
  --navy:#1E2428;--navy-d:#12171A;--navy-2:#2A3238;--vert:#2E7D47;--vert-2:#7FD19C;
  --or:#E2622B;--or-2:#F58A56;--or-d:#C24E1C;--or-dd:#A3401A;
  --paper:#FFFFFF;--mist:#F3F2EF;--line:#E3E1DC;--line-d:rgba(255,255,255,.14);
  --ink:#1E2428;--ink-2:#545E66;--muted:#5E676E;--on-d:#C9CFD3;
  --f:"Outfit","Outfit Fallback","Segoe UI",system-ui,sans-serif;
  --gut:clamp(16px,4.2vw,64px);
  --ease:cubic-bezier(.19,1,.22,1);
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:100px}
body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.65 var(--f);-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.lock{overflow:hidden}
a{color:inherit}
a:not([class]){text-underline-offset:3px}
button,input,select,textarea{font:inherit;color:inherit}
img,svg{max-width:100%;display:block;height:auto}
:focus-visible{outline:3px solid var(--or);outline-offset:3px}
::selection{background:var(--or);color:#fff}
h1,h2,h3{margin:0;font-weight:700;letter-spacing:-.025em;text-wrap:balance}
p{margin:0}
.px{padding-inline:var(--gut)}
.wrap{max-width:1440px;margin-inline:auto}
.sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:fixed;left:12px;top:-60px;z-index:300;background:var(--navy);color:#fff;padding:12px 18px;border-radius:10px;font-weight:600;text-decoration:none;transition:top .2s}
.skip:focus{top:12px}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font:600 12px/1.2 var(--f);letter-spacing:.2em;text-transform:uppercase;color:var(--vert)}
.dark .eyebrow,.zone .eyebrow,.steps .eyebrow,.svcs .eyebrow,.phero .eyebrow,.nf .eyebrow{color:var(--vert-2)}
.svc-c .eyebrow{color:var(--vert)}
.eyebrow::before{content:"";width:12px;height:8px;background:var(--or);clip-path:polygon(50% 0,100% 100%,78% 100%,50% 36%,22% 100%,0 100%)}
.lead{font-size:clamp(16px,1.25vw,19px);color:var(--ink-2);max-width:56ch;line-height:1.7}
.zone .lead,.steps .lead,.svcs .lead{color:var(--on-d)}
.h-xl{font-size:clamp(42px,7vw,116px);line-height:.98;letter-spacing:-.045em}
.h-l{font-size:clamp(32px,4.6vw,72px);line-height:1.04;letter-spacing:-.04em}
.h-m{font-size:clamp(26px,2.8vw,42px);line-height:1.1}
em.o{font-style:normal;color:var(--or)}
section{position:relative}

/* buttons */
.cta{display:inline-flex;align-items:center;gap:14px;padding:7px 7px 7px 22px;border-radius:12px;background:var(--or-d);color:#fff;border:0;cursor:pointer;font:600 15.5px/1.2 var(--f);text-decoration:none;transition:background .3s,box-shadow .3s}
.cta .ar{width:42px;height:42px;border-radius:8px;background:#fff;color:var(--or-d);display:grid;place-items:center;flex:none;transition:transform .45s var(--ease)}
.cta:hover{background:var(--or-dd);box-shadow:0 14px 34px rgba(194,78,28,.32)}
.cta:hover .ar{transform:translateX(3px)}
.cta svg{width:16px;height:16px}
.cta.ghost{background:rgba(18,23,26,.35);box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.8)}
.cta.ghost .ar{color:var(--navy)}
.cta.ghost:hover{background:rgba(18,23,26,.6)}
.cta.navy{background:var(--navy)}.cta.navy .ar{color:var(--navy)}.cta.navy:hover{background:var(--navy-2);box-shadow:0 14px 34px rgba(30,36,40,.3)}
.cta.sm{font-size:14.5px;padding:5px 5px 5px 18px}.cta.sm .ar{width:38px;height:38px}
.cta.line{background:#fff;color:var(--navy);box-shadow:inset 0 0 0 1.5px var(--line);padding:12px 20px}
.cta.line:hover{box-shadow:inset 0 0 0 1.5px var(--navy)}
.cta[disabled]{opacity:.7;cursor:progress}

/* header */
.bar{position:fixed;left:0;right:0;top:0;z-index:80;padding:calc(12px + env(safe-area-inset-top,0px)) var(--gut) 0;pointer-events:none}
.pill{pointer-events:auto;max-width:1440px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:8px 8px 8px 12px;border-radius:18px;background:rgba(18,23,26,.55);border:1px solid rgba(255,255,255,.18);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);color:#fff;box-shadow:0 12px 40px rgba(10,12,14,.2);transition:background .4s}
.bar.solid .pill,.inner .pill{background:rgba(30,36,40,.94)}
.logo{display:flex;align-items:center;text-decoration:none}
.logo img{height:52px;width:auto;background:#fff;border-radius:12px;padding:4px 9px}
.links{display:flex;gap:clamp(14px,1.8vw,28px);font:500 14.5px var(--f)}
.links a{opacity:.85;padding-block:8px;text-decoration:none}
.links a:hover,.links a[aria-current]{opacity:1;text-decoration:underline;text-underline-offset:6px;text-decoration-color:var(--or)}
.bar-end{display:flex;align-items:center;gap:8px}
.tel{display:inline-flex;align-items:center;gap:8px;font:600 14px var(--f);padding:11px 14px;border-radius:10px;border:1px solid rgba(255,255,255,.3);text-decoration:none;min-height:44px}
.tel:hover{background:rgba(255,255,255,.12)}
.burger{display:none;width:48px;height:48px;border-radius:12px;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.08);color:#fff;cursor:pointer;place-items:center}
.burger i{display:grid;gap:6px;width:18px}
.burger i::before,.burger i::after{content:"";height:2px;background:#fff;border-radius:2px;transition:transform .4s var(--ease)}
.menu-open .burger i::before{transform:translateY(4px) rotate(45deg)}
.menu-open .burger i::after{transform:translateY(-4px) rotate(-45deg)}
.menu{position:fixed;inset:0;z-index:70;background:var(--navy-d);color:#fff;display:none;flex-direction:column;justify-content:flex-end;padding:110px var(--gut) calc(var(--gut) + env(safe-area-inset-bottom,0px));overflow-y:auto}
.menu-open .menu{display:flex}
.menu a{display:flex;justify-content:space-between;align-items:baseline;padding:13px 0;border-top:1px solid var(--line-d);font:600 clamp(26px,7vw,48px)/1.1 var(--f);letter-spacing:-.035em;text-decoration:none}
.menu a small{font:500 12px var(--f);letter-spacing:.14em;text-transform:uppercase;color:var(--on-d)}
.menu a:hover{color:var(--or-2)}
@media (max-width:1120px){.links{display:none}.burger{display:grid}}
@media (max-width:640px){.logo img{height:44px;padding:3px 7px}.tel span{display:none}.tel{padding:12px}.bar .cta{display:none}}

/* hero */
.hero{min-height:600px;height:100vh;height:100svh;overflow:hidden;background:var(--navy-d);color:#fff}
.hero picture,.hero .poster{position:absolute;inset:0;width:100%;height:100%}
.hero .poster{object-fit:cover;object-position:50% 72%}
@media (orientation:portrait){.hero .poster{object-position:62% 60%}}
.hero .veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,23,26,.6) 0%,rgba(18,23,26,.05) 28%,rgba(18,23,26,.05) 50%,rgba(18,23,26,.8) 100%),linear-gradient(90deg,rgba(18,23,26,.85) 0%,rgba(18,23,26,.3) 50%,rgba(18,23,26,0) 72%)}
.hero-c{position:absolute;left:0;right:0;bottom:clamp(36px,8vh,90px)}
.hero-c .in{max-width:1440px;margin:0 auto;display:grid;gap:clamp(16px,2.2vw,26px);justify-items:start}
.badge{display:inline-flex;align-items:center;gap:10px;padding:8px 16px 8px 10px;border-radius:8px;background:rgba(18,23,26,.45);border:1px solid rgba(255,255,255,.25);font:500 12.5px/1.3 var(--f);letter-spacing:.12em;text-transform:uppercase}
.badge i{width:8px;height:8px;border-radius:50%;background:var(--or);box-shadow:0 0 0 5px rgba(226,98,43,.25)}
.hero .hl{max-width:15ch;font-weight:700;margin:0}
.badge{margin:0}
.hero .sub{max-width:48ch;font-size:clamp(16px,1.3vw,20px);color:rgba(255,255,255,.92)}
.hero .btns{display:flex;flex-wrap:wrap;gap:12px}
.hero .meta{position:absolute;right:var(--gut);bottom:clamp(36px,8vh,90px);display:grid;gap:6px;justify-items:end;font:500 12px var(--f);letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.85);text-align:right}
.hero .meta b{color:#fff;font-weight:600}
@media (max-width:860px){.hero .meta{display:none}.hero .veil{background:linear-gradient(180deg,rgba(18,23,26,.55) 0%,rgba(18,23,26,.1) 28%,rgba(18,23,26,.8) 60%,rgba(18,23,26,.96) 100%)}}
@media (max-width:600px){.hero .btns{display:grid;width:100%}.hero .btns .cta{justify-content:space-between}}

/* page hero (inner pages) */
.phero{background:var(--navy);color:#fff;padding:calc(130px + env(safe-area-inset-top,0px)) var(--gut) clamp(50px,7vw,90px)}
.phero .in{max-width:1440px;margin:0 auto;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,4vw,64px);align-items:center}
.phero .txt{display:grid;gap:20px;justify-items:start}
.phero .lead{color:var(--on-d)}
.phero figure{margin:0;border-radius:16px;overflow:hidden;aspect-ratio:4/3;box-shadow:0 30px 70px rgba(0,0,0,.35)}
.phero figure img{width:100%;height:100%;object-fit:cover}
.phero.plain .in{grid-template-columns:minmax(0,1fr)}
@media (max-width:900px){.phero .in{grid-template-columns:minmax(0,1fr)}}
.crumb{font-size:13.5px;color:var(--on-d)}
.crumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0}
.crumb li+li::before{content:"/";margin-right:6px;opacity:.6}
.crumb a{color:#fff}

/* manifesto */
.manif{padding-block:clamp(80px,12vw,170px) clamp(60px,8vw,120px)}
.manif .g{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,9fr);gap:24px;max-width:1440px;margin:0 auto}
.stmt{font-size:clamp(24px,3.1vw,46px);line-height:1.22;font-weight:500;letter-spacing:-.03em}
.stmt strong{color:var(--or-d);font-weight:600}
.pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:clamp(40px,6vw,80px)}
.pillar{border-left:3px solid var(--or);padding:6px 0 6px 18px;display:grid;gap:8px;background:linear-gradient(90deg,var(--mist),transparent 70%);border-radius:0 12px 12px 0}
.pillar b{font-size:clamp(34px,3.6vw,54px);font-weight:600;letter-spacing:-.04em;line-height:1;white-space:nowrap}
.pillar b small{font-size:.36em;font-weight:600;color:var(--or-d);margin-left:6px;letter-spacing:0}
.pillar>span{color:var(--ink-2);font-size:15px;max-width:30ch}
@media (max-width:860px){.manif .g{grid-template-columns:minmax(0,1fr)}.pillars{grid-template-columns:minmax(0,1fr);gap:14px}.pillar{grid-template-columns:auto 1fr;align-items:baseline;gap:16px}}

/* services grid */
.svcs{background:var(--navy);color:#fff;padding:clamp(80px,10vw,140px) var(--gut)}
.svcs .hd{max-width:1440px;margin:0 auto clamp(30px,4vw,50px);display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap}
.svcs .hd>div{display:grid;gap:14px}
.svc-g{max-width:1440px;margin:0 auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;list-style:none;padding:0}
.svc-c{background:#fff;color:var(--navy);border-radius:14px;border-top:4px solid var(--or);overflow:hidden;display:flex;flex-direction:column;position:relative;transition:transform .4s var(--ease),box-shadow .4s}
.svc-c:hover{transform:translateY(-4px);box-shadow:0 24px 50px rgba(0,0,0,.3)}
.svc-c .im{aspect-ratio:4/3;overflow:hidden;background:#ece9e4}
.svc-c .im img{width:100%;height:100%;object-fit:cover}
.svc-c .bd{padding:clamp(18px,2vw,26px);display:grid;gap:10px;align-content:start;flex:1}
.svc-c h3{font-size:clamp(22px,2vw,30px);line-height:1.1;letter-spacing:-.03em}
.svc-c h3 a{text-decoration:none}
.svc-c h3 a::after{content:"";position:absolute;inset:0}
.svc-c p{color:#4F5961;font-size:15px;line-height:1.55}
.svc-c .more{margin-top:6px;font:600 14px var(--f);color:var(--or-d);display:inline-flex;gap:8px;align-items:center}
.svc-c a:focus-visible::after{outline:3px solid var(--or);outline-offset:-3px;border-radius:14px}
@media (max-width:1000px){.svc-g{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.svc-g{grid-template-columns:minmax(0,1fr)}}

/* estimateur */
.est{padding-block:clamp(80px,12vw,160px)}
.est .g{max-width:1440px;margin:0 auto;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,4vw,70px);align-items:start}
.est-head{display:grid;gap:22px;position:sticky;top:120px}
.est-box{background:var(--mist);border-radius:18px;padding:clamp(18px,3vw,38px);display:grid;gap:24px;min-width:0}
.est-vis{background:var(--navy);border-radius:12px;overflow:hidden;position:relative;aspect-ratio:16/9}
.est-vis svg{width:100%;height:100%}
.est-vis .deg{position:absolute;left:18px;top:14px;font:600 12px var(--f);letter-spacing:.16em;text-transform:uppercase;color:var(--on-d)}
.est-vis .deg b{color:#fff;font-size:15px;letter-spacing:0;margin-left:6px}
.est-vis .deg.r{left:auto;right:18px}
.seg{display:inline-flex;background:#fff;border-radius:12px;padding:4px;gap:4px;border:1px solid var(--line)}
.seg button{border:0;background:none;border-radius:8px;padding:10px 16px;font:500 14px var(--f);color:var(--ink-2);cursor:pointer;min-height:44px}
.seg button[aria-pressed="true"]{background:var(--or-d);color:#fff}
.fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.fld{display:grid;gap:8px}
.fld>label,.fld>span{font:500 13.5px var(--f);color:var(--ink-2)}
.num{display:flex;align-items:center;background:#fff;border:1px solid #CFCCC6;border-radius:10px;overflow:hidden}
.num button{border:0;background:none;width:44px;height:48px;font-size:20px;color:var(--navy);cursor:pointer;flex:none}
.num button:hover{background:var(--mist)}
.num input{flex:1;min-width:0;border:0;text-align:center;font:600 17px var(--f);height:48px;background:none}
.num input:focus{outline:none}
.num:focus-within{border-color:var(--navy);box-shadow:0 0 0 3px rgba(30,36,40,.15)}
.num small{padding-right:6px;color:var(--muted);font-size:13px}
input[type=range]{width:100%;accent-color:var(--or-d);height:32px}
.res{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.res div{background:#fff;border-radius:12px;padding:16px 18px;display:grid;gap:4px}
.res div:first-child{background:var(--or-d);color:#fff}
.res div:first-child span{color:#fff}
.res b{font-size:clamp(26px,2.6vw,38px);font-weight:600;letter-spacing:-.04em;line-height:1.05}
.res b small{font-size:.45em;font-weight:500;margin-left:3px;letter-spacing:0}
.res span{font-size:13.5px;color:var(--muted)}
.est-foot{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.est-foot small{color:var(--muted);font-size:13.5px;max-width:48ch}
@media (max-width:980px){.est .g{grid-template-columns:minmax(0,1fr)}.est-head{position:static}}
@media (max-width:600px){.fields{grid-template-columns:minmax(0,1fr)}.res{grid-template-columns:minmax(0,1fr)}.res div{grid-template-columns:1fr auto;align-items:baseline}.seg{display:flex;width:100%}.seg button{flex:1;padding:9px 6px}}

/* avant / après */
.ba{padding-block:clamp(80px,12vw,160px);background:var(--mist)}
.ba .g{max-width:1440px;margin:0 auto;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,4vw,70px);align-items:center}
.ba-frame{position:relative;aspect-ratio:4/3;border-radius:16px;overflow:hidden;user-select:none;touch-action:pan-y;background:#ddd;box-shadow:0 30px 70px rgba(30,36,40,.18);--pos:50%}
.ba-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.ba-before{clip-path:inset(0 calc(100% - var(--pos)) 0 0)}
.ba-line{position:absolute;top:0;bottom:0;left:var(--pos);width:2px;margin-left:-1px;background:#fff;pointer-events:none}
.ba-knob{position:absolute;top:50%;left:var(--pos);width:56px;height:56px;margin:-28px 0 0 -28px;border-radius:14px;background:var(--or-d);color:#fff;display:grid;place-items:center;box-shadow:0 10px 30px rgba(0,0,0,.3);pointer-events:none}
.ba-knob svg{width:24px;height:24px}
.ba-lbl{position:absolute;top:16px;padding:7px 13px;border-radius:6px;font:600 12px var(--f);letter-spacing:.14em;text-transform:uppercase;background:#fff;color:var(--navy);pointer-events:none}
.ba-lbl.l{left:16px}.ba-lbl.r{right:16px;background:var(--or-d);color:#fff}
.ba-frame{cursor:ew-resize;-webkit-user-select:none;-webkit-touch-callout:none}
.ba-range{position:absolute;left:0;bottom:0;width:100%;height:1px;opacity:0;margin:0;pointer-events:none}
.ba-knob{width:60px;height:60px;margin:-30px 0 0 -30px}
.ba-frame:focus-within{outline:3px solid var(--or);outline-offset:3px}
.ba-note{font-size:13px;color:var(--muted);margin-top:10px}
.ba-side{display:grid;gap:22px;min-width:0;justify-items:start}
.ba-side .ba-mini{justify-self:stretch}
.ba-mini{border-radius:16px;overflow:hidden;position:relative;margin:0}
.ba-mini img{width:100%}
.ba-mini figcaption{position:absolute;left:12px;bottom:12px;background:#fff;border-radius:999px;padding:6px 12px;font:600 13px var(--f);color:var(--navy)}
@media (max-width:980px){.ba .g{grid-template-columns:minmax(0,1fr)}}

/* méthode */
.steps{padding-block:clamp(80px,12vw,160px);background:var(--navy-d);color:#fff}
.steps .hd{max-width:1440px;margin:0 auto clamp(40px,5vw,70px);display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap}
.steps .hd>div{display:grid;gap:18px}
.st-row{max-width:1440px;margin:0 auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;list-style:none;padding:0;counter-reset:st}
.st{display:grid;gap:14px;align-content:start;padding-right:10px}
.st .n{width:56px;height:56px;border-radius:14px;display:grid;place-items:center;background:var(--or-d);font:600 17px var(--f)}
.st h3{font-size:clamp(20px,1.7vw,26px)}
.st p{color:var(--on-d);font-size:15px;max-width:32ch}
@media (max-width:900px){.st-row{grid-template-columns:minmax(0,1fr);gap:26px}.st{grid-template-columns:56px 1fr;column-gap:18px}.st h3,.st p{grid-column:2}.st .n{grid-row:1/3}}

/* zone */
.zone{padding-block:clamp(80px,12vw,160px);background:var(--navy);color:#fff;overflow:hidden}
.zone .g{max-width:1440px;margin:0 auto;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,4vw,70px);align-items:center}
.zone-l{display:grid;gap:22px;min-width:0}
.zsearch{display:flex;gap:8px;background:#fff;border-radius:14px;padding:6px;box-shadow:0 18px 40px rgba(0,0,0,.25)}
.zsearch:focus-within{box-shadow:0 0 0 3px var(--or-2),0 18px 40px rgba(0,0,0,.25)}
.zsearch svg{width:20px;height:20px;color:var(--muted);align-self:center;margin-left:10px;flex:none}
.zsearch input{flex:1;min-width:0;width:0;border:0;background:none;color:var(--ink);font:500 17px var(--f);padding:12px 6px}
.zsearch input:focus{outline:none}
.zsearch button{background:var(--or-d);color:#fff;border:0;border-radius:10px;padding:0 20px;font:600 15px var(--f);cursor:pointer;min-height:44px}
.zquick{display:flex;flex-wrap:wrap;gap:8px}
.zquick button{border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.04);color:#E6E9EB;border-radius:8px;padding:9px 13px;font:500 14px var(--f);cursor:pointer;min-height:40px}
.zquick button:hover,.zquick button[aria-pressed="true"]{border-color:var(--or-2);color:#fff;background:rgba(226,98,43,.22)}
.zcard{background:var(--navy-2);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:22px 24px;display:grid;grid-template-columns:1fr auto;gap:6px 18px;align-items:center;min-height:128px}
.zcard .nm{font:700 clamp(22px,2vw,28px)/1.1 var(--f)}
.zcard .dp{font-size:14px;color:var(--on-d)}
.zcard .km{grid-row:1/3;grid-column:2;text-align:right;font:300 clamp(44px,5vw,66px)/1 var(--f);letter-spacing:-.05em}
.zcard .km small{font:600 13px var(--f);letter-spacing:.1em;color:var(--on-d);margin-left:4px}
.zcard .ok,.zcard .ko{grid-column:1/-1;margin-top:10px;display:inline-flex;align-items:center;gap:8px;justify-self:start;padding:7px 12px;border-radius:8px;font:600 14px var(--f)}
.zcard .ok{background:rgba(127,209,156,.16);color:#9BE0B3}
.zcard .ko{background:rgba(245,138,86,.16);color:#FFB08A}
.zcard p{grid-column:1/-1;color:var(--on-d);font-size:15px}
.zcard a{color:#fff}
.zmap{position:relative;border-radius:22px;overflow:hidden;background:#F4F1EC;box-shadow:0 40px 90px rgba(0,0,0,.4);aspect-ratio:1/1;max-width:640px;width:100%;margin-left:auto}
.zmap svg{width:100%;height:100%}
.zmap .cap{position:absolute;left:16px;bottom:14px;font:600 11px var(--f);letter-spacing:.14em;text-transform:uppercase;color:#5E676E}
.zt circle{fill:#1E2428}
.zt text{font:500 11.5px var(--f);fill:#3a434a;paint-order:stroke;stroke:#F4F1EC;stroke-width:3px;stroke-linejoin:round;opacity:0;transition:opacity .3s}
.zt.major text,.zt:hover text,.zt.hit text{opacity:1}
.zt.major text{font-weight:600}
.zt.hit circle{fill:var(--or-d)}
.zt{cursor:pointer}
.zroute{fill:none;stroke:var(--or);stroke-width:3;stroke-linecap:round;stroke-dasharray:7 7}
.zchip rect{fill:var(--navy)}.zchip text{font:700 12.5px var(--f);fill:#fff}
.towns{columns:3 160px;color:var(--on-d);font-size:14.5px;margin:0;padding:0;list-style:none}
.towns li{padding:2px 0}
@media (max-width:900px){.zone .g{grid-template-columns:minmax(0,1fr)}.zmap{margin:6px auto 0}}

/* faq */
.faq{padding-block:clamp(80px,12vw,160px)}
.faq .g{max-width:1440px;margin:0 auto;display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:24px}
.faq .g>div:first-child{display:grid;gap:18px;align-content:start}
details{border-top:1px solid var(--line)}
details:last-child{border-bottom:1px solid var(--line)}
summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:1fr 36px;gap:18px;align-items:center;padding:22px 0;font-size:clamp(18px,1.6vw,22px);font-weight:500;letter-spacing:-.02em}
summary::-webkit-details-marker{display:none}
summary:hover{color:var(--or-d)}
summary i{width:36px;height:36px;border-radius:10px;background:var(--mist);position:relative}
summary i::before,summary i::after{content:"";position:absolute;left:11px;right:11px;top:50%;height:2px;margin-top:-1px;background:var(--navy);border-radius:2px}
summary i::after{transform:rotate(90deg);transition:transform .3s}
details[open] summary i{background:var(--or-d)}
details[open] summary i::before,details[open] summary i::after{background:#fff}
details[open] summary i::after{transform:rotate(0)}
details p{padding:0 0 24px;color:var(--ink-2);max-width:64ch}
@media (max-width:860px){.faq .g{grid-template-columns:minmax(0,1fr)}}

/* contact */
.contact{padding-block:clamp(80px,12vw,160px) clamp(60px,8vw,110px);background:var(--mist)}
.contact .g{max-width:1440px;margin:0 auto;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,4vw,70px)}
.cinfo{display:grid;gap:24px;align-content:start;min-width:0}
.cl{display:grid;gap:4px}
.cl>span{font:600 12px var(--f);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.cl .v{font-size:clamp(18px,1.6vw,22px);font-weight:500;display:flex;gap:10px;align-items:center;flex-wrap:wrap;word-break:break-word}
.cl .v a{color:var(--navy)}
.cp{border:1px solid #CFCCC6;background:#fff;border-radius:6px;padding:6px 11px;font:500 12px var(--f);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);cursor:pointer;min-height:32px}
.cp:hover{border-color:var(--navy);color:var(--navy)}
.card{background:#fff;border-radius:18px;padding:clamp(20px,3.4vw,44px);box-shadow:0 30px 80px rgba(30,36,40,.08)}
form{display:grid;gap:24px}
fieldset{border:0;margin:0;padding:0;min-width:0}
legend{padding:0;font:600 12px var(--f);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.chip{position:relative}
.chip input{position:absolute;opacity:0;width:1px;height:1px}
.chip span{display:inline-block;padding:10px 15px;border:1px solid #CFCCC6;border-radius:8px;font-size:14.5px;cursor:pointer}
.chip span:hover{border-color:var(--navy)}
.chip input:checked+span{background:var(--or-d);color:#fff;border-color:var(--or-d)}
.chip input:focus-visible+span{outline:3px solid var(--or);outline-offset:2px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.f{display:grid;gap:6px}
.f label{font:600 13.5px var(--f);color:var(--ink)}
.f label .req{color:var(--or-d)}
.f input,.f textarea{width:100%;background:#fff;border:1.5px solid #CFCCC6;border-radius:10px;font:400 16px var(--f);color:var(--ink);padding:13px 14px}
.f textarea{resize:vertical;min-height:120px}
.f input:focus,.f textarea:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(30,36,40,.15)}
.f input[aria-invalid="true"],.f textarea[aria-invalid="true"]{border-color:#B3261E}
.f .hint{font-size:13px;color:var(--muted)}
.f .fe{font-size:13.5px;color:#B3261E;font-weight:500}
.consent{display:flex;gap:12px;align-items:flex-start;font-size:14px;color:var(--ink-2)}
.consent input{width:20px;height:20px;margin-top:2px;flex:none;accent-color:var(--or-d)}
.consent a{color:var(--navy)}
.ffoot{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap}
.ffoot small{color:var(--muted);font-size:13.5px;max-width:40ch}
.ffoot small a{color:var(--navy)}
.err{color:#B3261E;font-size:15px;font-weight:500}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.recap{display:grid;gap:18px}
.recap pre{white-space:pre-wrap;font:400 14px/1.7 var(--f);margin:0;padding:18px;background:var(--mist);border-radius:10px;max-height:280px;overflow:auto}
.recap .acts{display:flex;gap:10px;flex-wrap:wrap}
@media (max-width:900px){.contact .g{grid-template-columns:minmax(0,1fr)}.row2{grid-template-columns:minmax(0,1fr)}}

/* service page body */
.sv-body{padding-block:clamp(60px,9vw,120px)}
.sv-body .g{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,5vw,80px);align-items:start}
.sv-body h2{font-size:clamp(24px,2.4vw,34px);margin-bottom:14px}
.sv-body .det{font-size:18px;color:var(--ink-2);max-width:60ch}
.ticks{list-style:none;margin:0;padding:0;display:grid}
.ticks li{display:flex;gap:12px;padding:13px 0;border-top:1px solid var(--line);font-size:16px}
.ticks li::before{content:"";flex:none;width:20px;height:20px;margin-top:2px;border-radius:5px;background:var(--or-d) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M2 5.2l2 2 4-4.4' fill='none' stroke='%23fff' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center no-repeat}
.ticks.sg li::before{background:transparent;box-shadow:inset 0 0 0 1.5px var(--muted)}
.aside{background:var(--mist);border-radius:18px;padding:clamp(22px,3vw,34px);display:grid;gap:18px;position:sticky;top:120px;justify-items:start}
.aside h2{font-size:22px;margin:0}
.aside p{color:var(--ink-2)}
.others{padding:0 var(--gut) clamp(60px,8vw,110px)}
.others .in{max-width:1240px;margin:0 auto}
.others h2{font-size:clamp(22px,2vw,28px);margin-bottom:18px}
.others ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.others a{display:inline-block;padding:11px 16px;border:1px solid #CFCCC6;border-radius:10px;text-decoration:none;font-weight:500}
.others a:hover{border-color:var(--or-d);color:var(--or-d)}
@media (max-width:900px){.sv-body .g{grid-template-columns:minmax(0,1fr)}.aside{position:static}}

/* legal pages */
.legal{padding:clamp(50px,7vw,90px) var(--gut) clamp(70px,9vw,120px)}
.legal .in{max-width:820px;margin:0 auto}
.legal h2{font-size:clamp(22px,2.2vw,28px);margin:40px 0 12px}
.legal h3{font-size:18px;margin:22px 0 8px}
.legal p,.legal li{color:var(--ink-2);margin:0 0 12px}
.legal ul{padding-left:20px}
.legal a{color:var(--navy)}
.todo{background:#FFF4E5;border:1px solid #F0C48A;color:#6B3D00;border-radius:6px;padding:1px 6px;font-weight:600}
.note{background:var(--mist);border-left:4px solid var(--or);padding:14px 18px;border-radius:0 10px 10px 0;margin:18px 0}
.legal table{border-collapse:collapse;width:100%;font-size:15px;margin:0 0 16px}
.legal th,.legal td{border:1px solid var(--line);padding:10px;text-align:left;vertical-align:top;color:var(--ink-2)}
.legal th{background:var(--mist);color:var(--ink)}

/* 404 */
.nf{min-height:100vh;display:grid;place-items:center;background:var(--navy);color:#fff;padding:120px var(--gut) 60px;text-align:center}
.nf .in{display:grid;gap:20px;justify-items:center;max-width:640px}
.nf .lead{color:var(--on-d)}

/* footer */
footer{background:var(--navy-d);color:#fff;padding:clamp(56px,8vw,100px) var(--gut) calc(26px + env(safe-area-inset-bottom,0px))}
.ft{max-width:1440px;margin:0 auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}
.ft .flogo{height:80px;width:auto;background:#fff;border-radius:14px;padding:8px 14px;margin-bottom:18px}
.ft h2{margin:0 0 12px;font:600 12px var(--f);letter-spacing:.16em;text-transform:uppercase;color:var(--or-2)}
.ft ul{list-style:none;margin:0;padding:0;display:grid;gap:4px;color:var(--on-d);font-size:15px}
.ft a{text-decoration:none;display:inline-block;padding:3px 0}
.ft a:hover{color:#fff;text-decoration:underline}
.wm{max-width:1440px;margin:clamp(40px,7vw,90px) auto 0;font-size:clamp(32px,8.4vw,140px);font-weight:600;letter-spacing:-.055em;line-height:.9;white-space:nowrap;color:#fff}
.wm span{color:var(--or)}
.fb{max-width:1440px;margin:28px auto 0;align-items:center;display:flex;justify-content:space-between;gap:12px 20px;flex-wrap:wrap;border-top:1px solid var(--line-d);padding-top:16px;font-size:13.5px;color:var(--on-d)}
.flegal{max-width:1440px;margin:18px auto 0;display:flex;flex-wrap:wrap;justify-content:center;gap:6px 22px;font-size:13.5px}
.flegal a{color:var(--on-d)}
.flegal a:hover{color:#fff}
.credit{max-width:1440px;margin:14px auto 0;text-align:center;font-size:13.5px;color:var(--on-d)}
.credit b{color:#fff;font-weight:600}
@media (max-width:860px){.ft{grid-template-columns:1fr 1fr}}
@media (max-width:440px){.ft{grid-template-columns:minmax(0,1fr);gap:22px}.fb{flex-direction:column}}

/* mobile call bar */
.mbar{position:fixed;left:0;right:0;bottom:0;z-index:85;display:none;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));background:rgba(255,255,255,.98);border-top:1px solid var(--line);transform:translateY(110%);transition:transform .4s var(--ease)}
.mbar.show{transform:none}
.mbar a{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;border-radius:10px;font:600 15px var(--f);text-decoration:none;color:#fff}
.mbar a:first-child{background:var(--or-d)}.mbar a:last-child{background:var(--navy)}
@media (max-width:760px){.mbar{display:flex}footer{padding-bottom:calc(100px + env(safe-area-inset-bottom,0px))}}
.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translate(-50%,20px);background:var(--navy);color:#fff;padding:12px 20px;border-radius:10px;font-weight:500;font-size:14px;z-index:160;opacity:0;transition:all .3s;pointer-events:none;max-width:calc(100% - 32px);text-align:center}
.toast.on{opacity:1;transform:translate(-50%,0)}
@media (max-width:760px){.toast{bottom:calc(90px + env(safe-area-inset-bottom,0px))}}

/* reveal (progressive: only when JS adds .js) */
.js .rv{transition:opacity .9s,transform 1s var(--ease)}
.js .rv.pre{opacity:0;transform:translateY(28px)}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.js .rv.pre{opacity:1;transform:none}}
@media print{.bar,.mbar,.menu,.toast{display:none!important}}
