@charset "UTF-8";
:root{--blue:#2025f5;--lime:#ffe135;--ink:#18191b;--paper:#f5f6f7;--muted:#62656c;--line:#d8dade;--body:'Manrope',Arial,sans-serif;--display:'Barlow Condensed','Arial Narrow',Impact,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}button,summary{cursor:pointer}img{display:block;max-width:100%;object-fit:cover}h1,h2,h3,p,figure{margin:0}button{border:0}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--blue);outline-offset:6px}.hero a:focus-visible,.contact a:focus-visible{outline-color:var(--blue)}.method a:focus-visible{outline-color:var(--lime)}::selection{background:var(--lime);color:var(--ink)}.skip{position:fixed;left:20px;top:-100px;background:var(--lime);padding:12px;z-index:100}.skip:focus{top:15px}.blue{color:var(--blue)}.lime{color:var(--lime)}.eyebrow{font-size:.8125rem;font-weight:800;letter-spacing:.09em;line-height:1.5}.header{height:94px;padding:0 4%;display:flex;align-items:center;justify-content:space-between;gap:24px;background:#fff;position:sticky;top:0;z-index:20;border-bottom:1px solid #e8e9ed}.brand{display:inline-flex;align-items:center;gap:11px;flex-shrink:0}.brand-symbol{background:var(--blue);color:#fff;position:relative;font-family:var(--display);font-size:29px;font-weight:800;width:52px;height:52px;display:flex;align-items:center;justify-content:center;padding-right:4px;letter-spacing:-1px}.brand-symbol>span{position:absolute;right:3px;top:0;font:16px var(--body);color:var(--lime)}.brand-name{font-size:.875rem;line-height:1.18;letter-spacing:-.04em;font-weight:800}.brand-period{color:var(--blue)}.nav{display:flex;gap:30px;font-size:.875rem;font-weight:700}.nav a{position:relative;padding:8px 0}.nav a:after{content:'';height:2px;background:var(--blue);position:absolute;bottom:0;left:0;width:0;transition:width .25s}.nav a:hover:after{width:100%}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;padding:18px 23px;font-size:.875rem;font-weight:800;line-height:1.4;transition:background .2s,transform .2s}.button>span:last-child{font-size:24px;line-height:1;transition:transform .2s}.button:hover>span:last-child{transform:translate(3px,-3px)}.button:hover{transform:translateY(-2px)}.button-dark{background:var(--blue);color:white}.button-dark:hover{background:#1016ce}.button-lime{background:var(--lime);color:var(--ink)}.button-lime:hover{background:#efff92}.button-blue{background:var(--blue);color:white}.button-blue:hover{background:#1016ce}.hero{display:grid;grid-template-columns:58% 42%;background:var(--paper);color:var(--ink);min-height:690px}.hero-copy{padding:45px 5% 0 6.9%;display:flex;flex-direction:column;position:relative;z-index:1}.hero-eyebrow{display:flex;align-items:center;gap:11px;font-size:.75rem;letter-spacing:.07em;color:var(--muted);flex-wrap:wrap}.cross{font-size:26px;line-height:1;color:var(--blue)}.eyebrow-divider{width:20px;height:1px;background:#81828c}h1{font-family:var(--display);font-size:clamp(4rem,7.7vw,8.2rem);line-height:.9;text-transform:uppercase;letter-spacing:-.018em;font-weight:700;margin-top:37px;margin-bottom:28px}.title-line{display:block;animation:title-in .8s cubic-bezier(.16,1,.3,1) both}.title-accent{color:var(--blue);animation-delay:.08s}.title-location{animation-delay:.16s}.hero-description{font-size:clamp(1rem,1.45vw,1.2rem);font-weight:500;line-height:1.65;color:#494d56}.hero-actions{display:flex;align-items:center;gap:25px;margin-top:25px;margin-bottom:26px}.hero-phone{font-size:1rem;font-weight:700;white-space:nowrap}.hero-phone span{display:block;font-size:.75rem;color:var(--muted);font-weight:500;margin-top:3px}.hero-bottom{margin-top:auto;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:15px;padding:18px 0;font-size:.75rem;letter-spacing:.06em;color:var(--muted)}.hero-bottom a{display:flex;align-items:center;justify-content:center;border:1px solid #62636a;border-radius:50%;width:34px;height:34px;color:var(--blue);font-size:23px;transition:background .2s}.hero-bottom a:hover{background:var(--blue);color:#fff}.hero-visual{position:relative;overflow:hidden;min-width:0;color:#fff}.hero-photo{height:100%;width:100%;position:absolute;inset:0;filter:brightness(.9) saturate(.9);transition:transform 1.5s cubic-bezier(.2,.7,.2,1)}.hero-visual:hover .hero-photo{transform:scale(1.04)}.hero-visual:after{content:'';position:absolute;inset:50% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.65));pointer-events:none}.photo-topline{position:absolute;z-index:1;top:30px;left:28px;right:28px;display:flex;justify-content:space-between;gap:14px;font-size:.75rem;font-weight:700;letter-spacing:.07em}.hero-stamp{position:absolute;right:28px;top:95px;background:var(--lime);color:var(--ink);width:152px;height:152px;border-radius:50%;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:7px;transform:rotate(10deg);animation:stamp-in 1s .2s both;z-index:1}.hero-stamp>span:last-child{font-size:.75rem;text-align:center;font-weight:800;line-height:1.45}.stamp-arrow{font-size:47px;line-height:1}.photo-caption{position:absolute;bottom:35px;left:30px;right:30px;z-index:2}.photo-caption>span:first-child{font-size:.75rem;letter-spacing:.09em;color:var(--lime);font-weight:700}.photo-caption>span:last-child{display:block;font-family:var(--display);font-size:clamp(2.5rem,3.8vw,4.5rem);font-weight:600;line-height:1.05;margin-top:14px}.ticker{overflow:hidden;background:var(--lime);padding:16px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}.ticker-track{display:flex;width:max-content;animation:ticker 32s linear infinite}.ticker-track>span{font-family:var(--display);font-size:1.8rem;line-height:1.25;font-weight:600;white-space:nowrap}.ticker-track b{font-family:var(--body);padding:0 35px;color:var(--blue)}.ticker:hover .ticker-track{animation-play-state:paused}.section-pad{padding:94px 6%}.section-intro{margin-bottom:48px}.section-intro>.eyebrow{color:var(--muted);margin-bottom:27px}.intro-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:80px;align-items:end}h2{font-family:var(--display);font-size:clamp(3rem,5.2vw,5.4rem);font-weight:600;line-height:.99;text-transform:uppercase;letter-spacing:-.015em}.intro-grid>p{font-size:1.0625rem;line-height:1.8;max-width:490px;color:var(--muted);padding-bottom:3px}.services{border-top:1px solid var(--ink)}.service{border-bottom:1px solid var(--line);transition:background .25s}.service summary{list-style:none;display:grid;grid-template-columns:60px 1fr auto 40px;gap:20px;align-items:center;padding:28px 15px}.service summary::-webkit-details-marker,.video-section summary::-webkit-details-marker,.privacy summary::-webkit-details-marker{display:none}.service-number{font-size:.875rem;color:var(--muted)}.service h3{font-family:var(--display);font-weight:600;text-transform:uppercase;font-size:clamp(1.6rem,2.5vw,2.4rem);line-height:1.15}.service-tag{font-size:.75rem;letter-spacing:.07em;border:1px solid #c7c9ce;padding:5px 12px;border-radius:20px}.plus{width:30px;height:30px;position:relative;margin-left:auto}.plus:before,.plus:after{content:'';position:absolute;top:14px;left:6px;width:18px;height:2px;background:var(--ink);transition:transform .25s}.plus:after{transform:rotate(90deg)}.service[open] .plus:after{transform:rotate(0)}.service[open] h3,.service:hover h3{color:var(--blue)}.service-body{padding:0 75px 28px 95px;max-width:820px;animation:fade-in .3s}.service-body p{color:var(--muted)}.service-body a{display:inline-block;margin-top:16px;font-size:.875rem;color:var(--blue);font-weight:800}.method{background:var(--blue);color:#fff}.method-heading{position:relative}.method-heading .eyebrow{margin-bottom:28px;color:#ddddff}.method h2>span{color:var(--lime)}.method-heading>p:last-child{position:absolute;right:0;bottom:0;color:#e0e2ff;line-height:1.8}.method-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:60px}.method-step{border-left:1px solid #7073fa;padding:0 30px 5px}.method-step:first-child{border-left:0;padding-left:0}.method-step:last-child{padding-right:0}.step-index{font-size:.75rem;letter-spacing:.1em;color:var(--lime);font-weight:700}.method-step h3{font-family:var(--display);font-size:clamp(2.5rem,3.5vw,3.5rem);line-height:1.05;margin:26px 0 18px;font-weight:600;text-transform:uppercase}.method-step p{color:#e0e2ff;line-height:1.75;max-width:340px}.method-foot{margin-top:54px;border-top:1px solid #7073fa;padding-top:24px;display:flex;justify-content:space-between;gap:25px;font-size:.875rem}.text-link{font-weight:800;flex-shrink:0}.text-link span{margin-left:15px}.projects{background:#fff}.project-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:36px}.project-small{padding-top:90px}.project-image{position:relative;overflow:hidden;background:#dedee4}.project-image img{width:100%;height:380px;transition:transform .65s,filter .65s;filter:saturate(.75)}.project-small img{height:290px}.project:hover img{transform:scale(1.045);filter:saturate(1)}.project-image>span{position:absolute;top:16px;left:16px;background:var(--lime);font-size:.875rem;font-weight:800;padding:5px 12px}.project figcaption{padding-top:18px}.project h3{font-size:1.25rem;font-weight:800}.project figcaption p{font-size:.75rem;letter-spacing:.08em;color:var(--muted);margin-top:7px}.video-section{margin-top:50px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.video-section summary{list-style:none;display:flex;align-items:center;justify-content:space-between;padding:22px 0;gap:20px;font-weight:700}.video-action{color:var(--blue);font-size:.875rem;flex-shrink:0}.video-action span{margin-left:10px}.video-frame{aspect-ratio:16/9;background:var(--ink);margin-bottom:25px}.video-frame iframe{width:100%;height:100%;border:0;display:block}.contact{background:#eef1f6;color:var(--ink);display:grid;grid-template-columns:1fr 1fr;gap:70px}.contact-copy .eyebrow{color:var(--muted);margin-bottom:32px}.contact h2{font-size:clamp(3rem,4.8vw,5rem)}.contact-intro{margin-top:28px;color:#494d56;max-width:410px;line-height:1.8}.contact-phone{display:flex;gap:20px;align-items:center;width:fit-content;font-size:clamp(1.4rem,2.4vw,2.2rem);font-weight:700;margin-top:30px;letter-spacing:-.035em}.contact-phone span{color:var(--blue)}.contact-email{display:inline-block;color:#494d56;margin-top:9px;font-size:.9375rem;overflow-wrap:anywhere}.contact-email:hover{text-decoration:underline}.contact-zone{margin-top:38px;border-top:1px solid var(--line);padding-top:23px;max-width:410px}.contact-zone>span{font-size:.75rem;letter-spacing:.08em;color:var(--blue);font-weight:700}.contact-zone p{font-size:.875rem;color:var(--muted);margin-top:10px}.form-panel{background:#fff;color:var(--ink);padding:34px;align-self:start}.form-heading h3{font-size:1.375rem;line-height:1.3;font-weight:800;letter-spacing:-.04em}.form-heading>span{display:inline-block;font-size:.75rem;font-weight:800;margin:14px 0 25px;padding:4px 9px;background:var(--lime)}label{display:block;font-size:.875rem;font-weight:700;margin-bottom:7px}label>span{color:var(--blue)}input:not([type=hidden]),textarea{display:block;width:100%;border:1px solid #d4d6dc;border-radius:0;background:#f8f9fa;padding:13px 12px;color:var(--ink);outline:none;margin:0 0 18px;font-size:1rem}input::placeholder,textarea::placeholder{color:#737780;font-size:.875rem}input:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue)}textarea{resize:vertical;min-height:110px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-row>div{min-width:0}.form-note{font-size:.75rem;line-height:1.65;color:var(--muted);margin:0 0 22px}.form-note a{text-decoration:underline;text-underline-offset:3px}.submit-button{width:100%}.submit-button:disabled{opacity:.65;cursor:wait;transform:none}#form-status{margin-top:18px;font-size:.875rem;padding:15px;border-left:3px solid var(--blue);background:#eef0ff}#form-status[data-state=error]{background:#fff0f0;border-color:#b22323;color:#861717}#form-status[data-state=success]{background:#eff6d7}.honeypot{display:none!important}.privacy{padding:0 6% 30px;background:#eef1f6;color:var(--muted);font-size:.8125rem}.privacy details{border-top:1px solid var(--line);padding-top:22px}.privacy summary{list-style:none;display:flex;justify-content:space-between;gap:20px;max-width:600px}.privacy p{max-width:850px;padding-top:18px;line-height:1.8}.privacy a{text-decoration:underline;overflow-wrap:anywhere}footer{background:#fff;padding:40px 6% 24px;border-top:4px solid var(--blue)}.footer-main{display:flex;align-items:center;justify-content:space-between;gap:30px}.footer-main>p{font-family:var(--display);font-size:2rem;line-height:1.1;text-transform:uppercase;font-weight:600}.back-top{width:47px;height:47px;display:flex;align-items:center;justify-content:center;border:1px solid var(--ink);border-radius:50%;font-size:25px;transition:background .2s,color .2s}.back-top:hover{background:var(--ink);color:var(--lime)}.footer-bottom{border-top:1px solid #adbf44;margin-top:35px;padding-top:22px;display:flex;justify-content:space-between;gap:20px;font-size:.75rem}.socials{display:flex;gap:18px;flex-wrap:wrap}.footer-bottom a:hover{text-decoration:underline}.reveal{transition:opacity .65s ease,transform .65s cubic-bezier(.16,1,.3,1)}.reveal.is-pending{opacity:0;transform:translateY(24px)}
/* Identité BTP : signalisation, grilles de plans et détails industriels. */
.hero-copy{background-image:linear-gradient(#2025f508 1px,transparent 1px),linear-gradient(90deg,#2025f508 1px,transparent 1px);background-size:42px 42px}
.hero-visual{border-left:9px solid var(--lime)}
.hero-visual:before{content:'';position:absolute;left:0;top:0;bottom:0;width:10px;background:repeating-linear-gradient(-45deg,var(--ink) 0 7px,var(--lime) 7px 14px);z-index:3}
.hero-stamp{border-radius:0;clip-path:polygon(0 0,calc(100% - 20px) 0,100% 20px,100% 100%,20px 100%,0 calc(100% - 20px));transform:rotate(7deg);border:1px solid var(--ink)}
.hero-stamp>span:last-child{letter-spacing:.025em}.photo-topline>span:first-child{background:var(--ink);padding:5px 8px;margin-top:-5px}
.eyebrow,.service-number,.service-tag,.step-index,.project figcaption p,.photo-topline,.photo-caption>span:first-child{font-family:'Courier New',monospace}
.service-tag{border-radius:0}.hero-bottom a,.back-top{border-radius:0}.button{position:relative}.button-lime:hover{background:#ffeb73}
.method{background-image:linear-gradient(#ffffff09 1px,transparent 1px),linear-gradient(90deg,#ffffff09 1px,transparent 1px);background-size:48px 48px}
.method-heading:after{content:'+';position:absolute;right:0;top:-20px;font:60px 'Courier New',monospace;color:var(--lime);line-height:1}
.form-panel{border-top:8px solid var(--lime)}.contact-zone{border-left:3px solid var(--lime);padding-left:18px}.project-image{border:1px solid var(--ink)}
.footer-bottom{border-top-color:var(--line)}.ticker{padding:18px 0}.form-heading>span{letter-spacing:.06em}
@keyframes ticker{to{transform:translateX(-50%)}}@keyframes title-in{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:translateY(0)}}@keyframes stamp-in{from{opacity:0;transform:rotate(-10deg) scale(.8)}to{opacity:1;transform:rotate(7deg) scale(1)}}@keyframes fade-in{from{opacity:0}to{opacity:1}}
@media(min-width:1600px){.hero{min-height:800px}.hero-copy{padding-top:65px}.hero-actions{margin-top:38px}.hero-description{font-size:1.35rem}.hero h1{font-size:9rem}.section-pad{padding-left:max(6%,calc((100% - 1440px)/2));padding-right:max(6%,calc((100% - 1440px)/2))}}
@media(max-width:1100px){.nav{gap:17px}.nav a{font-size:.8125rem}.header-cta{padding:15px;gap:15px}.hero{min-height:650px;grid-template-columns:60% 40%}.hero-copy{padding-left:6.6%}.hero-actions{gap:17px;flex-wrap:wrap}.hero-phone{font-size:.9375rem}.hero-stamp{width:125px;height:125px;right:20px}.photo-topline{left:20px;right:20px}.photo-topline>span:last-child{display:none}.intro-grid{gap:40px}.contact{gap:40px}.form-panel{padding:27px}.method-heading>p:last-child{position:static;margin-top:25px}.method-step{padding-right:20px;padding-left:20px}.method-foot{flex-wrap:wrap}.footer-bottom{flex-wrap:wrap}.project-image img{height:320px}.project-small img{height:245px}}
@media(max-width:800px){html{scroll-padding-top:80px}.header{height:80px}.nav{display:none}.hero{grid-template-columns:1fr}.hero-copy{padding:35px 6% 0}.hero h1{font-size:clamp(4rem,13.8vw,7.5rem);margin-top:29px}.hero-visual{height:440px}.hero-photo{object-position:center 40%}.hero-description{font-size:1.125rem}.hero-actions{margin-top:27px;gap:25px}.hero-bottom{padding:18px 0}.photo-caption>span:last-child{font-size:3.5rem}.hero-stamp{top:65px;width:135px;height:135px}.section-pad{padding:65px 6%}.intro-grid{grid-template-columns:1fr;gap:26px}.intro-grid>p{max-width:590px}.service summary{grid-template-columns:30px 1fr 28px;gap:15px;padding:25px 0}.service-tag{display:none}.service-body{padding:0 0 25px 45px}.method-grid{margin-top:40px;gap:24px;grid-template-columns:1fr}.method-step{border-left:0;border-top:1px solid #7073fa;padding:25px 0 0!important;display:grid;grid-template-columns:110px 1fr;gap:0 24px}.method-step h3{margin:0 0 14px}.method-step p{grid-column:2;max-width:none}.method-foot{margin-top:30px}.project-grid{gap:25px}.project-small{padding-top:65px}.project-image img{height:290px}.project-small img{height:225px}.project h3{font-size:1.1rem}.contact{grid-template-columns:1fr;gap:40px}.contact h2{font-size:clamp(3.5rem,9vw,5rem)}.contact-intro{max-width:600px}.contact-zone{max-width:100%;margin-top:25px}.form-panel{padding:32px}.contact-phone{font-size:2rem}.footer-main>p{font-size:1.7rem}}
@media(max-width:480px){.header{padding:0 5%;gap:14px}.brand-symbol{width:41px;height:43px;font-size:25px}.brand-name{font-size:.75rem}.header-cta{font-size:.75rem;padding:12px;gap:10px;max-width:155px}.header-cta>span:last-child{font-size:22px}.hero-eyebrow{font-size:.75rem;gap:7px}.eyebrow-divider{width:10px}.cross{font-size:21px}.hero h1{font-size:13.7vw}.hero-description{font-size:1rem}.hero-actions{gap:20px}.hero-actions .button{padding:17px;gap:18px}.hero-phone{font-size:.875rem}.hero-bottom{font-size:.75rem;letter-spacing:0}.hero-visual{height:355px}.photo-caption{left:23px;bottom:26px}.photo-caption>span:last-child{font-size:3rem}.ticker-track>span{font-size:1.5rem}.ticker-track b{padding:0 22px}.section-pad{padding:53px 6%}.section-intro{margin-bottom:32px}.section-intro>.eyebrow{margin-bottom:20px}h2{font-size:3.35rem}.intro-grid>p{font-size:1rem}.service h3{font-size:1.65rem}.service-body{padding-left:0}.method-step{grid-template-columns:1fr;gap:14px}.method-step h3{font-size:2.8rem;margin:0}.method-step p{grid-column:1}.method-foot{font-size:.875rem}.project-grid{grid-template-columns:1fr;gap:30px}.project-small{padding:0}.project-image img,.project-small img{height:280px}.project h3{font-size:1.25rem}.video-section summary{align-items:start;flex-direction:column;gap:10px}.contact h2{font-size:3.4rem}.form-panel{padding:25px 20px}.form-heading h3{font-size:1.25rem}.form-row{grid-template-columns:1fr;gap:0}.footer-main{flex-wrap:wrap;gap:22px}.footer-main>p{font-size:1.6rem;order:3;width:100%}.footer-bottom{font-size:.75rem;gap:17px}.socials{width:100%;gap:15px}.privacy{padding-bottom:26px}}
.method-heading:after{display:none}.method-heading>.method-lead{position:static;margin-top:25px;color:#e0e2ff;line-height:1.8;max-width:65%}.circular-badge{position:absolute;right:6px;top:18px;width:210px;color:var(--lime)}.circular-badge svg{display:block;width:100%;overflow:visible}.circular-orbit{transform-origin:110px 110px;animation:circular-turn 36s linear infinite}.circular-orbit text{fill:currentColor;font:700 12px 'Courier New',monospace}.circular-center{font:600 25px var(--display);fill:#fff;letter-spacing:.02em}.circular-center tspan{fill:var(--lime)}.circular-badge:hover .circular-orbit{animation-play-state:paused}@keyframes circular-turn{to{transform:rotate(360deg)}}
@media(max-width:1100px){.circular-badge{width:180px;top:45px}.method-heading h2{max-width:72%}}
@media(max-width:800px){.circular-badge{width:155px;top:50px}.method-heading h2{max-width:68%}.method-heading>.method-lead{max-width:65%}}
@media(max-width:550px){.circular-badge{position:relative;right:auto;top:auto;width:148px;margin:27px 0 0 auto}.method-heading h2,.method-heading>.method-lead{max-width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal.is-pending{opacity:1;transform:none}.ticker-track{transform:none}.hero-photo,.project:hover img{transform:none}}

/* Accents lisibles sur les grandes surfaces claires. */
.hero-copy .title-location .lime,.contact h2 .lime{color:var(--blue)}
.form-panel{box-shadow:0 12px 45px #20255b09;border-right:1px solid var(--line);border-bottom:1px solid var(--line);border-left:1px solid var(--line)}
