@font-face{font-family:"Big Shoulders Display";font-weight:800;font-display:swap;src:url(fonts/big-shoulders-display-latin-800-normal.woff2) format("woff2")}
@font-face{font-family:"Big Shoulders Display";font-weight:900;font-display:swap;src:url(fonts/big-shoulders-display-latin-900-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-weight:400;font-display:swap;src:url(fonts/ibm-plex-mono-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-weight:500;font-display:swap;src:url(fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-weight:400;font-display:swap;src:url(fonts/ibm-plex-sans-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-weight:600;font-display:swap;src:url(fonts/ibm-plex-sans-latin-600-normal.woff2) format("woff2")}

:root{--teal:#20585f;--teal-d:#143a40;--teal-dd:#0d2a2f;--teal-l:#9fd4db;--steel:#c3c9cc;--steel-l:#e2e6e8;--paper:#f1f3f4;--ink:#10282c;--mute:#4d6469;
--disp:"Big Shoulders Display","Arial Narrow",sans-serif;--mono:"IBM Plex Mono",ui-monospace,monospace;--sans:"IBM Plex Sans",system-ui,sans-serif}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:76px}
html,body{overflow-x:clip}
body{font:400 18px/1.6 var(--sans);color:var(--ink);background:var(--paper);-webkit-text-size-adjust:100%}
a{color:inherit}
.mono{font-family:var(--mono);font-weight:400}
.skip{position:absolute;left:-999px;top:8px;background:#fff;padding:10px 14px;z-index:99}.skip:focus{left:8px}
.wrap{max-width:1180px;margin:0 auto;padding:0 22px}
.todo{background:#ffe9a8;color:#4a3a00;padding:0 4px;font-family:var(--mono);font-size:.85em}
:focus-visible{outline:3px solid var(--teal);outline-offset:3px}

/* ENTÊTE */
.top{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;align-items:center;gap:20px;height:68px;padding:0 22px;background:rgba(241,243,244,.94);border-bottom:2px solid var(--teal)}
.brand{display:flex;align-items:center;text-decoration:none;color:var(--teal);font:900 34px/1 var(--disp);letter-spacing:.01em;min-height:44px}
.brand .k{display:grid;place-items:center;width:40px;height:40px;background:var(--steel);color:var(--teal-d);margin-right:3px;font-size:38px;clip-path:polygon(0 0,100% 0,70% 100%,0 100%)}
.brand-t{text-transform:none;font-size:34px}
#nav{display:flex;gap:6px;margin-left:auto}
#nav a{font:500 14px var(--mono);text-transform:uppercase;letter-spacing:.08em;text-decoration:none;padding:12px 12px;min-height:44px;display:grid;place-items:center}
#nav a:hover{color:var(--teal);box-shadow:inset 0 -3px var(--teal)}
.h-tel{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 18px;background:var(--teal);color:#fff;text-decoration:none;font:800 22px var(--disp);letter-spacing:.04em;clip-path:polygon(10px 0,calc(100% - 10px) 0,100% 50%,calc(100% - 10px) 100%,10px 100%,0 50%)}
.h-tel .lbl{font:500 12px var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--teal-l)}
.h-tel:hover{background:var(--teal-d)}
.burger{display:none;width:44px;height:44px;border:2px solid var(--teal);background:none;cursor:pointer;flex-direction:column;justify-content:center;gap:5px;align-items:center}
.burger i{display:block;width:22px;height:3px;background:var(--teal)}

/* ENTRÉE */
.hero h1{font-size:min(9.2vw,124px)}
.hero{position:relative;min-height:100svh;padding:110px 22px 40px;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);column-gap:30px;align-content:center;max-width:1280px;margin:0 auto}
.hero::before{content:"";position:absolute;inset:0 -100vw;z-index:-1;background:var(--paper)}
.hero-grid{position:absolute;inset:0 -100vw;z-index:-1;background-image:linear-gradient(rgba(32,88,95,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(32,88,95,.09) 1px,transparent 1px);background-size:44px 44px;mask-image:linear-gradient(#000 60%,transparent)}
.kicker{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:14px;text-transform:uppercase;letter-spacing:.1em;color:var(--mute)}
.dot{width:10px;height:10px;background:#9aa;display:inline-block}
.status.open{color:#17653c}.status.closed{color:var(--mute)}
.kicker:has(.open) .dot{background:#2ea06a}
h1{font:900 min(17vw,150px)/.9 var(--disp);color:var(--teal);text-transform:uppercase;margin:18px 0 22px;letter-spacing:-.005em}
h1 .ln{display:block;overflow:hidden;padding-top:.16em;margin-top:-.16em}
h1 .ln>span{display:block;transform:translateY(105%);animation:up .9s cubic-bezier(.2,.8,.2,1) forwards}
h1 .ln:nth-child(2)>span{animation-delay:.18s}
h1 em{font-style:normal;color:var(--teal-dd);-webkit-text-stroke:0}
h1 .ln:nth-child(2) em{color:var(--steel);-webkit-text-stroke:2px var(--teal);color:transparent}
@keyframes up{to{transform:none}}
.lead{font-size:clamp(18px,2.2vw,22px);max-width:34em;color:var(--ink)}
.cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}

/* boutons : profilé en I (extrémités à encoche) */
.btn{display:inline-flex;align-items:center;gap:14px;min-height:56px;padding:0 30px;background:var(--teal);color:#fff;border:0;text-decoration:none;cursor:pointer;font:500 15px var(--mono);text-transform:uppercase;letter-spacing:.08em;clip-path:polygon(0 0,100% 0,100% 30%,calc(100% - 9px) 30%,calc(100% - 9px) 70%,100% 70%,100% 100%,0 100%,0 70%,9px 70%,9px 30%,0 30%);transition:background .2s,transform .2s}
.btn b{font:800 26px var(--disp);letter-spacing:.04em;white-space:nowrap}
.btn:hover{background:var(--teal-d);transform:translateY(-2px)}
.btn.ghost{background:var(--steel);color:var(--teal-d)}
.btn.ghost:hover{background:var(--steel-l)}

.beam{color:var(--teal);align-self:center;justify-self:center;width:min(100%,380px);margin-top:10px}
.beam svg{width:100%;height:auto;overflow:visible}
.beam .draw path{stroke-dasharray:1;stroke-dashoffset:1;animation:dr 2.2s .3s ease forwards}
.beam .cote path{stroke-dasharray:1;stroke-dashoffset:1;animation:dr 1.2s 1.6s ease forwards}
.beam .txt{opacity:0;animation:fi .6s 2.6s forwards}
@keyframes dr{to{stroke-dashoffset:0}}@keyframes fi{to{opacity:.85}}
.beam figcaption{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--mute);text-align:center;margin-top:6px}
.facts{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:0;list-style:none;margin-top:40px;border-top:2px solid var(--teal);font-size:14px;text-transform:uppercase;letter-spacing:.08em}
.facts li{flex:1 1 200px;padding:16px 18px 0 0;color:var(--mute)}
.facts b{font:800 30px var(--disp);color:var(--teal);margin-right:6px;letter-spacing:.02em}

/* TITRES COUPÉS */
.sec{font-size:14px;text-transform:uppercase;letter-spacing:.14em;color:var(--teal);display:flex;align-items:center;gap:12px}
.sec::before{content:"";width:34px;height:3px;background:var(--teal)}
.big{font:900 clamp(48px,9vw,120px)/.92 var(--disp);text-transform:uppercase;color:var(--teal);margin:14px 0 0}
.split{display:block;overflow:hidden;padding-top:.14em;margin-top:-.14em}
.split:nth-child(2){color:var(--teal-dd);padding-left:clamp(0px,8vw,120px)}
.rv{opacity:0;transform:translateY(26px);transition:opacity .7s,transform .7s}
.rv.in{opacity:1;transform:none}

/* SAVOIR-FAIRE */
.work{padding:90px 0 40px}
.job{display:grid;grid-template-columns:minmax(120px,240px) 1fr;gap:20px 40px;padding:44px 0;border-top:2px solid var(--teal)}
.work .big{margin-bottom:46px}
.num{font-size:15px;color:var(--teal);letter-spacing:.1em;padding-top:10px;position:sticky;top:88px;align-self:start}
.job h3{font:800 clamp(34px,5vw,60px)/1 var(--disp);text-transform:uppercase;color:var(--teal-d);margin-bottom:14px}
.job p{max-width:38em}
.feat{list-style:none;margin:22px 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 24px;font-size:14px;text-transform:uppercase;letter-spacing:.05em}
.feat li{padding:10px 0 10px 26px;border-bottom:1px solid var(--steel);position:relative}
.feat li::before{content:"";position:absolute;left:0;top:50%;width:16px;height:6px;background:var(--teal);transform:translateY(-50%)}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;font-size:12px;text-transform:uppercase;letter-spacing:.1em}
.tags span{padding:6px 10px;background:var(--steel);color:var(--teal-d)}
.mail{margin-top:14px;font:500 16px var(--mono)}

/* TÔLERIE : section collante, animée au défilement */
.cut{background:var(--teal-d);color:#fff;height:240vh;position:relative}
.cut-stick{position:sticky;top:0;height:100svh;display:flex;align-items:center;padding-top:68px}
.cut-in{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:40px;align-items:center;width:100%}
.cut .sec{color:var(--teal-l)}.cut .sec::before{background:var(--teal-l)}
.cut .big{color:#fff;font-size:clamp(40px,5.4vw,72px)}
.cut-t p:not(.sec):not(.pct){margin-top:20px;color:#cfe3e6}
.pct{font:800 clamp(48px,6vw,84px)/1 var(--disp);color:var(--teal-l);margin-top:10px}
.plate{margin:0}.plate svg{width:100%;height:auto;display:block;max-height:68svh}
.plate figcaption{font-size:12px;color:#9ab8bd;text-transform:uppercase;letter-spacing:.08em;margin-top:8px}
.cutline,.hole{stroke-dasharray:1;stroke-dashoffset:1}
#head{opacity:0}

/* POUR QUI */
.who{padding:100px 0}
.rows{width:100%;border-collapse:collapse;margin-top:40px}
.rows tr{border-top:2px solid var(--teal)}.rows tr:last-child{border-bottom:2px solid var(--teal)}
.rows th{width:70px;text-align:left;font-size:15px;color:var(--teal);padding:24px 0;vertical-align:top}
.rows td{padding:24px 20px 24px 0;vertical-align:top}
.rows td:first-of-type{font:800 clamp(26px,3.5vw,42px)/1 var(--disp);text-transform:uppercase;color:var(--teal-d);width:38%}
.rows td b{font-weight:800}

/* CONTACT */
.contact{background:var(--steel-l);padding:100px 0;border-top:2px solid var(--teal)}
.ct-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px}
.p-big{margin:22px 0 14px;font-size:20px}
.phone{display:inline-flex;align-items:center;min-height:64px;font:900 clamp(44px,7vw,76px)/1 var(--disp);color:var(--teal);text-decoration:none;letter-spacing:.03em}
.phone:hover{color:var(--teal-dd);text-decoration:underline;text-decoration-thickness:4px}
address{font-style:normal;margin:16px 0 24px}
address a{color:var(--teal);font-weight:600}
.hours{width:100%;border-collapse:collapse;font-size:14px}
.hours th,.hours td{padding:10px 0;border-top:1px solid var(--teal);text-align:left;font-weight:400}
.hours td{color:var(--mute)}
form{background:#fff;padding:32px;border-top:6px solid var(--teal)}
label{display:block;font:500 13px var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--teal);margin:18px 0 4px}
label:first-of-type{margin-top:0}
input[type=text],input[type=tel],select,textarea{width:100%;min-height:48px;padding:10px 4px;font:400 18px var(--sans);color:var(--ink);background:transparent;border:0;border-bottom:3px solid var(--steel);border-radius:0}
input:focus,select:focus,textarea:focus{outline:0;border-bottom-color:var(--teal)}
textarea{resize:vertical}
.hp{position:absolute;left:-9999px}
form .btn{margin-top:26px;width:100%;justify-content:center}
.form-msg{margin-top:14px;font-size:16px;min-height:1.4em}
.form-msg.ok{color:#17653c}.form-msg.err{color:#a02020}.form-msg.info{color:var(--mute)}

footer{background:var(--teal-dd);color:#cfe3e6;padding:34px 22px;font-size:15px;display:flex;flex-wrap:wrap;gap:10px 30px;justify-content:space-between}
footer a{color:#fff;display:inline-block;padding:10px 0}

/* annexes */
.legal-page{background:#fff}
.legal{max-width:760px;margin:0 auto;padding:40px 22px 80px}
.legal h1{font:900 56px/1 var(--disp);color:var(--teal);margin:20px 0}
.legal h2{font:800 28px var(--disp);color:var(--teal-d);margin:26px 0 6px;text-transform:uppercase}
.legal p{margin-bottom:10px}
.draft{background:#ffe9a8;padding:12px 14px}

/* ADAPTATION */
@media(max-width:900px){
 .hero h1{font-size:min(15.5vw,130px)}
 #nav{position:fixed;inset:68px 0 auto 0;margin:0;flex-direction:column;gap:0;background:var(--paper);border-bottom:2px solid var(--teal);transform:translateY(-130%);transition:transform .3s;padding:8px 22px 20px}
 #nav.open{transform:none}
 #nav a{place-items:start;font-size:16px;border-bottom:1px solid var(--steel)}
 .burger{display:flex;margin-left:auto}.h-tel{margin-left:auto}.burger{margin-left:0}
 .hero{grid-template-columns:1fr;padding-top:96px}
 .beam{width:min(70%,280px);justify-self:start;margin-top:30px}
 .job{grid-template-columns:1fr;gap:6px;padding:34px 0}.num{position:static}
 .cut{height:220vh}.cut-in{grid-template-columns:1fr;gap:14px}
 .cut .big{font-size:clamp(36px,10vw,60px)}.pct{display:none}
 .plate svg{max-height:42svh}
 .rows th{width:42px}.rows td:first-of-type{width:auto}
 .rows tr{display:grid;grid-template-columns:42px 1fr}.rows td:last-child{grid-column:2;padding-top:0}
 .ct-grid{grid-template-columns:1fr;gap:34px}
 form{padding:22px}
}
@media(max-width:520px){
 .brand,.brand-t{font-size:30px}.h-tel .lbl{display:none}.h-tel{font-size:20px;padding:0 14px}
 .top{gap:10px;padding:0 14px}
 .btn{padding:0 20px;gap:10px;font-size:13px}.btn b{font-size:24px}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 h1 .ln>span{animation:none;transform:none}
 .beam .draw path,.beam .cote path{animation:none;stroke-dashoffset:0}.beam .txt{animation:none;opacity:.85}
 .rv{opacity:1;transform:none;transition:none}
}
