/* + ULTRA · site, fidèle aux maquettes validées (canvas V1) */
:root{--ink:#0A0A0A;--line:#E2E2E0;--mute:#555555;--body:#555555;--err:#9B1C1C;--px:80px;color-scheme:light}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:#FFFFFF;color:var(--ink);font-family:Arial,Helvetica,sans-serif}
img{max-width:100%;display:block}
a{color:var(--ink)}a:hover{opacity:.85}
[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.dark :focus-visible{outline-color:#fff}
.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:#fff;padding:12px 18px;z-index:100}.skip:focus{left:16px}
.pg{max-width:1600px;margin:0 auto;overflow-x:clip}
section{border-top:1px solid var(--line)}
section.dark,section.nb{border-top:0}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* type scale from the mockups, fluid below 1440px */
.lbl{font-size:11px;letter-spacing:.22em;text-transform:uppercase;font-weight:500;color:var(--mute)}
.d{margin:0;font-weight:700;text-transform:uppercase;letter-spacing:-.035em;line-height:.86;color:inherit;overflow-wrap:break-word}
.h200{font-size:clamp(3.4rem,13.9vw,200px)}.h150{font-size:clamp(3.2rem,10.4vw,150px)}.h140{font-size:clamp(3rem,9.7vw,140px)}
.h104{font-size:clamp(2.6rem,7.2vw,104px)}.h96{font-size:clamp(2.4rem,6.7vw,96px)}.h88{font-size:clamp(2.4rem,6.1vw,88px)}
.h80{font-size:clamp(2.2rem,5.6vw,80px)}.h72{font-size:clamp(2.1rem,5vw,72px)}.h64{font-size:clamp(2rem,4.45vw,64px)}.h56{font-size:clamp(1.8rem,3.9vw,56px)}
.pl{font-size:.4em;vertical-align:1.15em;margin-left:.06em;font-weight:700;letter-spacing:0;line-height:0}
.lead2{margin:0;font-size:clamp(20px,1.7vw,24px);line-height:1.45;letter-spacing:-.005em}
.mf{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.mf li{display:grid;grid-template-columns:48px 230px 1fr;gap:24px;padding:20px 0;border-bottom:1px solid var(--line);align-items:baseline}
.mf b{font-size:17px;font-weight:700;text-transform:uppercase;letter-spacing:-.005em}
.mf .x{font-size:16px;line-height:1.55;color:var(--body)}
@media (max-width:640px){.mf li{grid-template-columns:36px 1fr;gap:6px 14px}.mf .x{grid-column:2}}
 .fit{font-size:clamp(2rem,var(--fv),var(--fd))}
@media (max-width:1000px){.fit{font-size:min(var(--fm),var(--fd))}}
.h40{font-size:clamp(1.6rem,2.8vw,40px)}.h30{font-size:clamp(1.3rem,2.1vw,30px)}
.chap{margin:0;font-size:clamp(18px,1.55vw,22px);line-height:1.45;font-style:italic;font-weight:300}
.body{margin:0;font-size:17px;line-height:1.6;color:var(--body)}
.say{margin:0;font-size:clamp(24px,2.8vw,40px);line-height:1.22;letter-spacing:-.015em}
.say2{margin:0;font-size:clamp(24px,3.4vw,48px);line-height:1.16;letter-spacing:-.02em}
.dark{background:var(--ink);color:#fff}

/* layout */
.px{padding-left:var(--px);padding-right:var(--px)}
.sec{padding:120px var(--px);display:flex;flex-direction:column;gap:56px}
.sec.s110{padding-top:110px;padding-bottom:110px}
.run{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.dark .run{border-bottom-color:#3A3835}
.dark .run .lbl{color:#A8A39B}
.g2{display:grid;grid-template-columns:1fr 1fr}
.g3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.g6{display:grid;grid-template-columns:repeat(6,minmax(0,1fr))}
.s57{display:grid;grid-template-columns:5fr 7fr}.s75{display:grid;grid-template-columns:7fr 5fr}
.s48{display:grid;grid-template-columns:4fr 8fr}.s84{display:grid;grid-template-columns:8fr 4fr}
.s39{display:grid;grid-template-columns:3fr 9fr}.s66{display:grid;grid-template-columns:6fr 6fr}
.row{display:flex;justify-content:space-between;align-items:flex-end;gap:60px}
.stack{display:flex;flex-direction:column}
.cover{width:100%;height:100%;object-fit:cover}
.bw{filter:grayscale(1)}

/* header */
.util{display:flex;justify-content:space-between;align-items:center;height:36px;padding:0 var(--px);background:var(--ink);color:#C9C4BC;font-size:11px;letter-spacing:.16em;text-transform:uppercase}
.util a{color:#C9C4BC;text-decoration:none}.util a:hover,.util a[aria-current]{color:#fff}
.util a[aria-current]{font-weight:700}
.util>div{display:flex;gap:28px;align-items:center}
.util .sep{width:1px;height:14px;background:#4A4743}
.hdr{position:sticky;top:0;z-index:40;display:flex;justify-content:space-between;align-items:center;height:96px;padding:0 var(--px);background:#fff;border-bottom:1px solid var(--line)}
.hdr .logo{display:flex;color:var(--ink)}
.hdr .logo svg{height:34px;width:auto}
.nav{display:flex;align-items:center;gap:40px}
.nav>ul{list-style:none;margin:0;padding:0;display:flex;gap:30px;align-items:center}
.nav>ul>li>a,.nav .has>button{color:var(--ink);text-decoration:none;font-size:13px;font-weight:500;letter-spacing:.06em;padding:14px 0;border:0;border-bottom:1px solid transparent;background:none;font-family:inherit;cursor:pointer;display:flex;align-items:center;gap:8px}
.nav>ul>li>a[aria-current],.nav .has>button[aria-current]{border-bottom-color:var(--ink)}
.nav .has{position:relative}
.nav .has>button::after{content:"";width:6px;height:6px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg) translateY(-3px);transition:transform .2s}
.sub{list-style:none;margin:0;padding:14px 0;position:absolute;top:calc(100% + 22px);left:-24px;min-width:250px;background:#fff;border:1px solid var(--line);display:none;flex-direction:column;box-shadow:0 18px 40px rgba(0,0,0,.06)}
.sub a{display:block;padding:10px 24px;font-size:13px;letter-spacing:.04em;text-decoration:none;white-space:nowrap;color:var(--ink)}
.sub a:hover,.sub a[aria-current]{background:#F3F3F3}
.sub .sepl{border-top:1px solid var(--line);margin:8px 24px}
.burger,.nav__x{display:none;background:none;border:0;width:44px;height:44px;padding:0;cursor:pointer;color:var(--ink)}
.burger span{display:block;height:1.5px;background:currentColor;margin:7px 0 7px auto}.burger span:first-child{width:26px}.burger span:last-child{width:18px}
.nav__x{font-size:32px;line-height:1}
@media (min-width:1341px){
 .nav .has:hover>.sub,.nav .has.open>.sub,.nav .has:focus-within>.sub{display:flex}
 .nav .has::after{content:"";position:absolute;left:0;right:0;top:100%;height:24px}
 .nav .has:hover>button::after,.nav .has.open>button::after{transform:rotate(225deg) translateY(-1px)}
}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:14px;min-height:52px;padding:0 28px;background:var(--ink);color:#fff;border:1px solid var(--ink);text-decoration:none;font-family:inherit;font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;cursor:pointer}
.btn.ghost{background:transparent;color:var(--ink)}
.btn.inv{background:#fff;color:var(--ink);border-color:#fff}
.btn.line{background:transparent;color:#fff;border-color:#fff}
.btn.txt{background:transparent;border-color:transparent;color:inherit;padding:0 12px}
.btn:hover{opacity:.85}
.btns{display:flex;gap:14px;flex-wrap:wrap}

/* components */
.facts>div{padding:30px 48px;display:flex;gap:20px;align-items:baseline}
.facts>div:first-child{padding-left:var(--px)}
.facts>div+div{border-left:1px solid var(--line)}
.facts b{font-size:48px;font-weight:700}
.facts span{font-size:15px;line-height:1.45}
.names{display:flex;justify-content:space-between;flex-wrap:wrap;gap:20px 40px}
.names span{font-size:17px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.card{display:flex;flex-direction:column;gap:22px;padding:40px 36px;text-decoration:none;color:var(--ink);background:#fff;border-top:3px solid var(--ink)}
.num{font-size:13px;font-weight:600;letter-spacing:.2em}
.card .t{font-weight:700;text-transform:uppercase;letter-spacing:-.03em;font-size:clamp(32px,3.3vw,48px);line-height:.9}
.card .d2{font-size:17px;line-height:1.55;color:var(--body);min-height:80px}
.card .m{display:flex;flex-direction:column;gap:6px;padding-top:20px;border-top:1px solid var(--line)}
.card .m b{font-size:19px}.card .m span{font-size:14px;color:var(--mute)}
.more{display:inline-flex;align-items:center;gap:12px;font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase}
.list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;font-size:18px}
.list li{padding:14px 0;border-bottom:1px solid var(--line)}
.dark .list li{border-bottom-color:#3A3835}
.box{padding:56px;display:flex;flex-direction:column;gap:28px}
.arch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.arch>div{display:flex;flex-direction:column;gap:14px;padding:34px 32px;background:#1C1B19;border:1px solid #1C1B19;color:#fff}
.arch>div.k{border-color:#fff}
.arch .r{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:#E9DED3}
.arch .n{font-size:30px;font-weight:700;text-transform:uppercase;letter-spacing:-.02em;line-height:.95}
.arch .w{font-size:15px;font-style:italic;color:#F2EDE6}.arch .x{font-size:15px;line-height:1.6;color:#E6E1D9}
.archtop{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:30px 32px;border:1px solid #fff;flex-wrap:wrap}
.case{display:flex;flex-direction:column;gap:18px;text-decoration:none;color:var(--ink)}
.case img{width:100%;height:440px;object-fit:cover}
.case .h{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--ink);padding-bottom:12px;gap:16px}
.case .h b{font-size:30px;font-weight:700;text-transform:uppercase;letter-spacing:-.02em}
.case .p{display:flex;justify-content:space-between;gap:20px;font-size:15px;line-height:1.55;color:var(--body)}
.mk a{display:flex;justify-content:space-between;align-items:center;padding:26px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink);gap:16px}
.mk b{font-size:40px;font-weight:700;text-transform:uppercase;letter-spacing:-.03em;line-height:1;display:block}
.mk small{font-size:14px;color:var(--mute);display:block;margin-top:6px}
.sect a{display:flex;justify-content:space-between;align-items:center;padding:22px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink);gap:16px}
.tag{font-size:11px;letter-spacing:.2em;text-transform:uppercase}
.crit li{display:flex;gap:18px;align-items:baseline;padding:18px 0;border-bottom:1px solid var(--line);font-size:19px}
.crit{margin:0;padding:0;list-style:none;border-top:1px solid var(--ink)}
.crit .n{font-size:12px;font-weight:600;color:var(--mute)}
.fcta{display:grid;grid-template-columns:7fr 5fr}
.fcta>div{padding:110px var(--px);display:flex;flex-direction:column;gap:36px}
.fcta img{width:100%;height:100%;object-fit:cover;filter:grayscale(1);min-height:360px}
.crumbs{display:flex;gap:10px;flex-wrap:wrap}.crumbs a{color:var(--mute);text-decoration:none}.crumbs span[aria-current]{color:var(--ink)}
.phead{padding:70px var(--px) 90px;display:flex;flex-direction:column;gap:56px}
.band{width:100%;height:620px;object-fit:cover}
.tbl{overflow-x:auto}
.tbl .tr{display:grid;gap:32px;padding:24px 0;border-bottom:1px solid var(--line);font-size:17px;line-height:1.5;min-width:760px}
.tbl .th{font-size:22px;font-weight:700;text-transform:uppercase;letter-spacing:-.01em;border-bottom:2px solid var(--ink);padding:18px 0}
.tl>div{display:flex;flex-direction:column;gap:14px;padding-top:26px;border-top:3px solid var(--ink)}
.tl .t{font-size:32px;font-weight:700;text-transform:uppercase;letter-spacing:-.02em}
.tl p{margin:0;font-size:16px;line-height:1.55;color:var(--body)}
.inc li{display:flex;gap:16px;align-items:baseline;padding:20px 0;border-bottom:1px solid #3A3835;font-size:20px}
.inc{margin:0;padding:0;list-style:none;border-top:1px solid #3A3835}
.faq{border-top:1px solid var(--ink)}
.faq details{border-bottom:1px solid var(--line);padding:26px 0}
.faq summary{display:flex;justify-content:space-between;align-items:center;gap:20px;cursor:pointer;font-size:clamp(18px,1.6vw,22px);font-weight:600;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:26px;font-weight:300}
.faq details[open] summary::after{content:"−"}
.faq p{margin:16px 0 0;font-size:17px;line-height:1.6;color:var(--body);max-width:820px}
.dhero{display:grid;grid-template-columns:7fr 5fr;min-height:760px}
.dhero>div{padding:70px 64px 80px var(--px);display:flex;flex-direction:column;justify-content:space-between;gap:40px}
.strip{display:grid;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.strip>div{padding:28px 32px;display:flex;flex-direction:column;gap:10px}
.strip>div:first-child{padding-left:var(--px)}
.strip>div+div{border-left:1px solid var(--line)}
.strip b{font-size:24px;font-weight:700;letter-spacing:-.01em}
.deliv>div{display:flex;flex-direction:column;gap:14px;padding:34px 0;border-top:1px solid var(--ink)}
.deliv .t{font-size:26px;font-weight:700;text-transform:uppercase;letter-spacing:-.02em;line-height:1}
.deliv p{margin:0;font-size:16px;line-height:1.6;color:var(--body)}
.big{display:flex;align-items:flex-end;gap:30px;flex-wrap:wrap}
.big b{font-size:clamp(120px,19vw,280px);font-weight:700;line-height:.78;letter-spacing:-.06em}
.big span{font-size:clamp(22px,2.2vw,32px);font-weight:700;text-transform:uppercase;letter-spacing:-.02em;line-height:1;padding-bottom:8px}
.wk>div{display:grid;grid-template-columns:2fr 3fr 7fr;gap:40px;align-items:baseline;padding:28px 0;border-bottom:1px solid var(--line)}
.wk .a{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--mute)}
.wk .b{font-size:28px;font-weight:700;text-transform:uppercase;letter-spacing:-.02em}
.wk .c{font-size:17px;line-height:1.55}
.pn{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--ink)}
.pn a{padding:50px var(--px);display:flex;flex-direction:column;gap:10px;text-decoration:none;color:var(--ink)}
.pn a+a{align-items:flex-end;border-left:1px solid var(--line)}
.pn b{font-size:clamp(24px,2.8vw,40px);font-weight:700;text-transform:uppercase;letter-spacing:-.03em;display:flex;gap:16px;align-items:center}
.wall{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}
.wall span{display:flex;align-items:center;justify-content:center;height:120px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-size:18px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;text-align:center;padding:0 12px}
.feat{display:grid;grid-template-columns:5fr 7fr;border:1px solid var(--ink);text-decoration:none;color:var(--ink)}
.feat img{width:100%;height:560px;object-fit:cover;filter:grayscale(1)}
.feat>div{padding:56px;display:flex;flex-direction:column;justify-content:space-between;gap:30px}
.kp{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;border-top:1px solid var(--line);padding-top:24px}
.kp b{display:block;font-size:44px;font-weight:700;letter-spacing:-.03em}
.port{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:48px 28px}
.port a{display:flex;flex-direction:column;gap:14px;text-decoration:none;color:var(--ink)}
.port img{width:100%;height:300px;object-fit:cover}
.port .h{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--ink);padding-bottom:10px;gap:12px}
.port .h b{font-size:24px;font-weight:700;text-transform:uppercase;letter-spacing:-.02em}
.fmt>div{display:flex;flex-direction:column;gap:20px;padding:44px 36px;background:#fff;border:1px solid var(--line);border-top:3px solid var(--ink)}
.fmt .t{font-size:40px;font-weight:700;text-transform:uppercase;letter-spacing:-.03em;line-height:.95}
.art{max-width:760px}
.art h2{font-size:28px;text-transform:uppercase;letter-spacing:-.01em;line-height:1.05;margin:52px 0 16px;font-weight:700}
.art p,.art li{font-size:18px;line-height:1.65;color:var(--body)}
.art p{margin:0 0 16px}.art ul{padding-left:20px}
.src{font-size:14px;color:var(--mute);font-style:italic;margin:0}

/* forms (mockup styling) */
.formbox{display:flex;flex-direction:column;gap:28px;padding:48px;border:1px solid var(--ink)}
.formbox.soft{border-color:var(--line)}
.form{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.form .full{grid-column:1/-1}
.fld{display:flex;flex-direction:column;gap:8px;border:0;margin:0;padding:0;min-width:0}
.fld>label,.fld>legend{font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;padding:0 0 4px}
.opt{font-weight:400;color:var(--mute);letter-spacing:.08em}
.fld input,.fld select,.fld textarea{min-height:52px;padding:0 16px;border:1px solid var(--ink);background:#fff;font-family:inherit;font-size:16px;color:var(--ink);border-radius:0;width:100%}
.fld textarea{padding:14px 16px;min-height:120px;resize:vertical}
.fld select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 20px) 24px,calc(100% - 14px) 24px;background-size:6px 6px;background-repeat:no-repeat}
.err{font-size:13px;color:var(--err)}
.is-bad input,.is-bad select,.is-bad textarea{border-color:var(--err)}
.pills{display:flex;gap:8px;flex-wrap:wrap}
.pills label{position:relative}
.pills input{position:absolute;opacity:0;width:1px;height:1px}
.pills span{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border:1px solid var(--line);background:#fff;font-size:15px;cursor:pointer}
.pills input:checked+span{background:var(--ink);color:#fff;border-color:var(--ink)}
.pills input:focus-visible+span{outline:2px solid var(--ink);outline-offset:2px}
.q{padding:0 0 22px;border-bottom:1px solid var(--line)}
.consent{display:flex;gap:12px;align-items:flex-start;font-size:14px;color:var(--mute);text-transform:none!important;letter-spacing:0!important;font-weight:400!important}
.consent input{width:20px;height:20px;min-height:0;margin:1px 0 0;accent-color:#0E0E0E;flex-shrink:0;padding:0}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.fstat{margin:0;font-size:15px}.fstat.is-err{color:var(--err)}
.fend{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.result{display:flex;flex-direction:column;gap:10px;padding:26px;border:1px solid var(--ink)}
.result.yes{background:var(--ink);color:#fff}.result.yes .lbl{color:#C9C4BC}
.result .t{font-size:30px;font-weight:700;text-transform:uppercase;letter-spacing:-.02em;line-height:1}

/* footer */
.ftr{background:#fff;border-top:1px solid var(--ink);padding:90px 40px 36px;display:flex;flex-direction:column;gap:64px}
.ftr .g{display:grid;grid-template-columns:4fr 8fr;gap:60px;padding:0 40px}
.ftr .cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px}
.ftr .cols>div{display:flex;flex-direction:column;gap:12px}
.ftr .cols a{color:var(--ink);text-decoration:none;font-size:14px}
.ftr .cols a:hover{text-decoration:underline}
.nl{display:flex;border-bottom:1px solid var(--ink)}
.nl input{flex-grow:1;min-height:48px;border:0;background:transparent;font-family:inherit;font-size:16px;color:var(--ink);min-width:0}
.nl input:focus{outline:none}
.nl button{min-height:48px;border:0;background:transparent;font-family:inherit;font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--ink);cursor:pointer}
.ftr .legal{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:22px 40px 0;border-top:1px solid var(--ink);font-size:12px;color:var(--mute)}
.ftr .legal nav{display:flex;gap:24px;flex-wrap:wrap}
.ftr .legal a,.ftr .legal button{color:var(--mute);background:none;border:0;padding:0;font:inherit;cursor:pointer;text-decoration:underline}
.ftr .biglogo{display:block;color:var(--ink);margin-bottom:-32px}
.ftr .biglogo svg{width:100%;height:auto;display:block}

/* mobile bar + cookies */
.mbar{display:none}
.ck{position:fixed;left:16px;bottom:16px;z-index:70;max-width:460px;background:#fff;border:1px solid var(--ink);padding:22px;display:flex;flex-direction:column;gap:14px;font-size:14px;color:var(--mute)}
.ck p{margin:0}.ck div{display:flex;gap:8px}

/* ---------- responsive ---------- */
@media (max-width:1280px){:root{--px:56px}.facts>div{padding:26px 28px}}
@media (max-width:1340px){
 .burger{display:block}
 .nav{position:fixed;inset:0;background:#fff;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:28px;padding:96px 24px 40px;transform:translateX(100%);visibility:hidden;transition:transform .25s,visibility .25s;z-index:60;overflow-y:auto}
 .nav.open{transform:none;visibility:visible}
 .nav>ul{flex-direction:column;align-items:stretch;gap:0}
 .nav>ul>li>a,.nav .has>button{width:100%;justify-content:space-between;font-size:26px;font-weight:700;text-transform:uppercase;letter-spacing:-.01em;padding:16px 0;border-bottom:1px solid var(--line)}
 .sub{position:static;border:0;box-shadow:none;padding:4px 0 12px;min-width:0}
 .nav .has.open>.sub{display:flex}
 .nav .has.open>button::after{transform:rotate(225deg)}
 .sub a{padding:10px 0}.sub .sepl{margin:6px 0}
 .nav__x{display:block;position:absolute;top:22px;right:20px}
 .nav .btn{justify-content:center}
 .util .hm{display:none}
}
@media (max-width:1000px){
 :root{--px:24px}
 .s57,.s75,.s48,.s84,.s39,.s66,.g2,.fcta,.feat,.dhero{grid-template-columns:1fr!important}
 .g3,.g4,.arch,.port,.kp{grid-template-columns:1fr 1fr!important}
 .g6,.wall{grid-template-columns:repeat(3,minmax(0,1fr))!important}
 .row{flex-direction:column;align-items:flex-start;gap:24px}
 .sec{padding-top:80px;padding-bottom:80px;gap:40px}
 .hero-img{min-height:420px}
 .dhero{min-height:0}.dhero>div{padding:48px var(--px)}
 .dhero img{height:420px}
 .facts{grid-template-columns:1fr!important}.facts>div{padding:24px var(--px)!important;border-left:0!important;border-top:1px solid var(--line)}
 .strip{grid-template-columns:1fr 1fr!important}.strip>div{padding:22px var(--px)!important;border-left:0!important;border-top:1px solid var(--line)}
 .box{padding:32px}
 .formbox{padding:28px}
 .ftr{padding:64px 0 28px}.ftr .g{grid-template-columns:1fr;padding:0 var(--px)}.ftr .cols{grid-template-columns:1fr 1fr}.ftr .legal{padding:20px var(--px) 0}.ftr .biglogo{padding:0 var(--px)}
 .wk>div{grid-template-columns:1fr;gap:8px}
 .band{height:380px}
 .feat img{height:380px}.case img{height:380px}
 .gap-l{gap:40px!important}
 .pn a{padding:32px var(--px)}
 .g2>*,.g3>*,.g4>*,.fmt>*,.s57>*,.s48>*{min-width:0}
 .fmt>div{padding:30px 24px}.fmt .t{font-size:30px}
 .tbl .tr.lbl{display:none}
 .tbl:not(:has(.th)) .tr{grid-template-columns:1fr!important;min-width:0;gap:6px}
 div:not(.tbl)>.tr{grid-template-columns:1fr!important;gap:8px!important}
}
@media (max-width:640px){
 .g3,.g4,.arch,.port,.kp,.form,.ftr .cols{grid-template-columns:1fr!important}
 .g6,.wall{grid-template-columns:1fr 1fr!important}
 .strip{grid-template-columns:1fr!important}
 .mk b{font-size:30px}
 .pn{grid-template-columns:1fr}.pn a+a{border-left:0;border-top:1px solid var(--line);align-items:flex-start}
 .mbar{display:grid;grid-template-columns:1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:50;background:#fff;border-top:1px solid var(--ink);padding-bottom:env(safe-area-inset-bottom,0px)}
 .mbar a{display:flex;align-items:center;justify-content:center;min-height:56px;font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;color:var(--ink)}
 .mbar a:last-child{background:var(--ink);color:#fff}
 body{padding-bottom:56px}
 .ck{right:16px;bottom:72px}
 .card{padding:32px 24px}
 .hdr{height:76px}.hdr .logo svg{height:26px}
}
.nav>ul>li>a,.nav .has>button{white-space:nowrap}

/* ===== Typographic system: 4 styles only =====
   1 TITRES : Arial Bold, capitales (.d et intertitres)
   2 CHAPITRES ET INDICATIONS : 12px, 500, capitales espacées
   3 CTA : 13px, 700, capitales espacées
   4 TEXTE : 17px / 1.6, regular, jamais d'italique */
body{font-size:15px;line-height:1.55}
.lbl,.num,.tag,.crit .n,.wk .a,.arch .r,.mk small,.card .m span,.crumbs,.run .lbl,.fld>label,.fld>legend,.ftr .legal{font-size:12px!important;font-weight:500!important;letter-spacing:.2em!important;text-transform:uppercase!important;font-style:normal!important;line-height:1.5}
.num{color:var(--ink)}
.btn,.more,.nl button,.mbar a{font-size:13px!important;font-weight:700!important;letter-spacing:.16em!important;text-transform:uppercase}
.chap,.body,.say,.say2,.lead2,.d2,.card .d2,.deliv p,.mf .x,.wk .c,.tbl .tr,.list,.list li,.facts span,.arch .w,.arch .x,.case .p,.crit li,.tl p,.inc li,.faq p,.art p,.art li,.src,.pills span,.fstat,.ck p,.consent,.fmt .body{font-size:15px!important;line-height:1.55!important;font-weight:400;font-style:normal!important;letter-spacing:0!important}
.faq summary{font-size:17px!important;font-weight:700;line-height:1.5}
.card .m b{font-size:17px!important;font-weight:700}
.strip b{font-size:22px;font-weight:700;text-transform:uppercase;letter-spacing:-.01em;line-height:1.1}
.tbl .th{font-size:20px}
.src{color:var(--mute)}
.tbl .tr.lbl{font-size:12px!important;letter-spacing:.2em!important;font-weight:500!important;line-height:1.5!important}
.ftr .legal button,.ftr .legal a{text-transform:uppercase;letter-spacing:.2em;font-size:12px;font-weight:500}

/* ===== Charte graphique + ULTRA V1.1 : Arial Bold pour les titres, Arial Regular pour le texte ===== */
body{font-family:Arial,Helvetica,sans-serif;color:var(--ink)}
.d{font-weight:700}
.lbl,.num,.tag,.crit .n,.wk .a,.arch .r,.mk small,.card .m span,.crumbs,.run .lbl,.fld>label,.fld>legend,.ftr .legal,.tbl .tr.lbl{font-weight:400!important;color:#555555;letter-spacing:.2em!important}
.crumbs [aria-current]{color:var(--ink)}
.num{color:#555555}
.chap,.body,.say,.say2,.lead2,.d2,.card .d2,.deliv p,.mf .x,.wk .c,.tbl .tr,.list,.list li,.facts span,.case .p,.crit li,.tl p,.faq p,.art p,.art li,.pills span,.consent,.fmt .body{color:#555555;line-height:1.5!important}
.dark .chap,.dark .body,.dark .inc li,.dark .list li,.dark p,.dark .lbl{color:#E6E6E4}

/* cartes alignées : numéro, titre, texte et informations sur les mêmes lignes */
.steps>.card{display:grid;grid-row:span 5;grid-template-rows:subgrid;gap:0;row-gap:22px}
.steps>.card .d2{min-height:0}
.steps>.card .m{align-self:end}
.fmt>div{display:grid;grid-row:span 4;grid-template-rows:subgrid;row-gap:20px}
.fmt>div>*:last-child{align-self:end}

/* cartes des étapes : contenu aligné sur le filet, plus d'air entre les colonnes */
.steps{column-gap:48px!important}
.steps>.card{padding:32px 0 0!important;background:transparent}
.steps>.card .t{font-size:clamp(28px,2.6vw,40px)}
@media (max-width:1000px){.steps{column-gap:32px!important;row-gap:48px!important}}

/* texte courant réduit ; ligne légale du pied de page à demi-taille */
.faq summary{font-size:15px!important}.card .m b{font-size:15px!important}
.ftr .legal,.ftr .legal a,.ftr .legal button,.ftr .legal span{font-size:9px!important;letter-spacing:.16em!important}

/* newsletter du pied de page */
.nlt{font-size:clamp(24px,2.2vw,32px);line-height:1;display:block}
.nl input{padding:0;font-size:15px}
.nl input::placeholder{color:#999}
.nl button{display:inline-flex;align-items:center;gap:12px;padding:0}
.ftr .consent,.ftr .fld>label.consent{font-size:12px!important;letter-spacing:0!important;text-transform:none!important;font-weight:400!important;line-height:1.5;color:#555;gap:10px;align-items:center}
.ftr .consent a{color:var(--ink)}
.ftr .consent input{width:16px;height:16px;margin:0;flex-shrink:0;accent-color:#0A0A0A}

/* pied de page restructuré : argument + newsletter, puis plan du site en 6 colonnes */
.ftr .ftop{display:grid;grid-template-columns:7fr 5fr;gap:80px;padding:0 40px 56px;border-bottom:1px solid var(--line);align-items:start}
.ftr .fh{font-size:clamp(28px,3vw,44px);line-height:.95;margin:0}
.ftr .cols{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:32px;padding:0 40px}
.ftr .cols>div{display:flex;flex-direction:column;gap:10px}
.ftr .cols a,.ftr .cols span:not(.lbl){color:var(--ink);text-decoration:none;font-size:14px;line-height:1.4}
.ftr .cols span:not(.lbl){color:#555}
@media (max-width:1000px){.ftr .ftop{grid-template-columns:1fr;gap:48px;padding:0 var(--px) 48px}.ftr .cols{grid-template-columns:repeat(3,minmax(0,1fr));padding:0 var(--px);row-gap:40px}}
@media (max-width:640px){.ftr .cols{grid-template-columns:1fr 1fr!important}}
.tbl .tr .d{color:var(--ink)}
/* implantation hub step cards: title sized to the card width */
.qd{container-type:inline-size}
.qd .qt{font-size:clamp(24px,calc((100cqi - 72px)/6.4),64px)!important;line-height:.95;overflow-wrap:normal;word-break:normal;hyphens:none}

.bpost .img,.bpost img{max-height:420px}
/* detail hero: title, lead and buttons grouped together, centred under the breadcrumb */
.dhero>div{justify-content:flex-start;gap:32px}
.dhero>div>.crumbs{margin-bottom:auto}
.dhero>div>.btns{margin-bottom:auto;margin-top:8px}
.dhero>div>.chap{margin:0}
/* Visibilidad and Implantación: one hero title size for every page */
.tsz{font-size:clamp(2.4rem,6.5vw,94px)!important;line-height:.9}
@media (max-width:1000px){.tsz{font-size:min(11.5vw,94px)!important}}
/* header CTA: compact */
.hdr .btn.sm{min-height:42px;padding:0 22px;font-size:11px!important;letter-spacing:.14em!important;gap:12px}
@media (max-width:1340px){.nav .btn.sm{min-height:52px;font-size:12px!important}}
/* all buttons: compact size, same as the header CTA */
.btn{min-height:42px;padding:0 22px;font-size:11px!important;letter-spacing:.14em!important;gap:12px}
@media (max-width:1340px){.nav .btn.sm{min-height:42px;font-size:11px!important}}
/* detail hero: wider text column so every title can be larger */
.dhero{grid-template-columns:2fr 1fr}
.tsz{font-size:clamp(2.4rem,7.4vw,108px)!important}
@media (max-width:1000px){.tsz{font-size:min(11vw,108px)!important}}
.wall .wcta{display:flex;align-items:center;justify-content:center;gap:12px;height:120px;background:var(--ink);color:#fff;text-decoration:none;font-size:13px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;border-bottom:1px solid var(--ink)}
.wall .wcta:hover{opacity:.9}
.art h3{font-size:17px;font-weight:700;line-height:1.3;margin:34px 0 10px;color:var(--ink);text-transform:none;letter-spacing:0}
.art li{margin-bottom:6px}
/* legal pages: tabs, table of contents, documents */
.ltabs{display:flex;gap:0;border-bottom:1px solid var(--ink);padding:0 var(--px);overflow-x:auto}
.ltabs a{padding:18px 26px;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#777;text-decoration:none;border-bottom:3px solid transparent;margin-bottom:-1px;white-space:nowrap}
.ltabs a:hover{color:var(--ink)}
.ltabs a[aria-current]{color:var(--ink);border-bottom-color:var(--ink)}
.lgl{align-items:start}
.ltoc{position:sticky;top:110px;display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 140px);overflow:auto}
.ltoc a{font-size:13px;line-height:1.35;color:#555;text-decoration:none}
.ltoc a:hover{color:var(--ink);text-decoration:underline}
.art.ldoc .lintro{font-size:19px;color:var(--ink);line-height:1.6;margin-bottom:28px}
.art.ldoc h2{font-size:21px;text-transform:none;letter-spacing:-.01em;margin:48px 0 14px;padding-top:22px;border-top:1px solid var(--line);scroll-margin-top:110px}
.art.ldoc h3{font-size:16px;margin:24px 0 8px}
.art.ldoc p,.art.ldoc li{font-size:16px}
.ltab{width:100%;border-collapse:collapse;margin:8px 0 22px;font-size:14px;line-height:1.5}
.ltab th,.ltab td{border-bottom:1px solid var(--line);padding:11px 14px 11px 0;text-align:left;vertical-align:top;color:#555}
.ltab tbody th{width:34%;color:var(--ink);font-weight:700}
.ltab thead th{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid var(--ink)}
.ltab td:first-child{color:var(--ink)}
@media (max-width:1000px){.ltoc{position:static;max-height:none;flex-direction:row;flex-wrap:wrap;gap:8px 16px}.ltoc .lbl{width:100%}}
@media (max-width:640px){.ltab3,.ltab5{display:block;overflow-x:auto}.ltab th,.ltab td{min-width:120px}.ltab tbody th{width:auto}.ltabs a{padding:16px 16px}}

.art.ldoc .lintro{font-size:18px!important;color:var(--ink)!important;line-height:1.6!important}
.art.ldoc{max-width:760px;display:block}
