:root{--ink:#202323;--red:#e86900;--paper:#f6f6f3;--line:#d7dad5}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit}a:focus-visible,button:focus-visible{outline:3px solid #ff9c3b;outline-offset:5px}.skip{position:fixed;top:-100px;background:white;padding:12px;z-index:99}.skip:focus{top:0}header{height:100px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:var(--paper)}.brand{display:flex;gap:11px;align-items:center;line-height:1}.brand-small{font-size:11px;letter-spacing:3.2px;display:block;margin-bottom:5px}.brand strong{font-size:25px;letter-spacing:1px;font-weight:900}.mark{width:52px;height:52px;display:block;object-fit:cover;background:#000}nav{display:flex;gap:32px;font-size:14px}nav a:hover{text-decoration:underline;text-underline-offset:7px}.nav-contact{border:1px solid var(--ink);padding:10px 21px;font-size:14px;font-weight:700}.hero{display:grid;grid-template-columns:1fr 1fr;min-height:630px}.hero-copy{padding:67px 8% 24px 10%;display:flex;flex-direction:column;align-items:flex-start}.eyebrow{font-size:12px;font-weight:700;letter-spacing:1.8px;margin:0 0 26px}.eyebrow span{display:inline-block;width:8px;height:8px;background:var(--red);margin-right:7px}h1{font-size:clamp(55px,6.6vw,105px);line-height:1.01;font-weight:800;letter-spacing:-5px;margin:0 0 27px}em{font-style:normal;color:var(--red)}.hero-description{font-size:18px;max-width:440px;margin:0 0 30px;color:#595f5b;line-height:1.65}.button{display:inline-block;background:var(--red);color:white;padding:16px 24px;font-size:14px;font-weight:700}.button:hover{background:#bd5200}.hero-foot{display:flex;justify-content:space-between;width:100%;border-top:1px solid var(--line);padding-top:18px;margin-top:auto;font-size:10px;letter-spacing:1.5px;gap:14px}.hero-image{position:relative;overflow:hidden;background:#9a9e97}.hero-image img{width:100%;height:100%;object-fit:cover;position:absolute}.hero-image:after{content:"";position:absolute;inset:50% 0 0;background:linear-gradient(transparent,#0007)}.image-label{position:absolute;bottom:30px;left:36px;right:30px;color:white;font-size:14px;line-height:1.4;font-weight:700;letter-spacing:2px;display:flex;align-items:center;justify-content:space-between;z-index:1}.image-plus{font-size:58px;font-weight:300}.discipline{background:var(--ink);color:#eee;display:flex;justify-content:space-around;align-items:center;padding:24px 4%;font-size:12px;letter-spacing:2px;gap:15px}.discipline span:nth-child(even){color:#ffad66;font-size:24px}.section{padding:95px 6%}.section-top{display:grid;grid-template-columns:1fr 2fr 1.25fr;gap:30px;align-items:start;margin-bottom:45px}h2{font-size:clamp(32px,3.6vw,55px);line-height:1.12;letter-spacing:-2px;font-weight:700;margin:0}.section-top h2{font-size:37px;letter-spacing:-1.5px}.section-top>p:last-child{margin:0;color:#666b67;font-size:15px}.services-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.service{padding:28px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background .2s}.service:hover{background:#ebede8}.service-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:39px}.number{font-size:15px;color:var(--red)}.tag{font-size:10px;letter-spacing:1.8px;color:#606761}.service h3{font-size:29px;line-height:1.15;letter-spacing:-.8px;margin:0 0 20px}.service p{color:#616862;font-size:16px;min-height:100px;max-width:310px}.service-bottom{font-size:12px;border-top:1px solid var(--line);padding-top:17px}.approach{background:#e8ebe5;display:grid;grid-template-columns:1fr 1fr;gap:10%}.approach-intro{max-width:430px;color:#626860;margin:25px 0 0}.steps article{display:flex;gap:25px;padding:27px 0;border-top:1px solid #c2c8be}.steps article:last-child{border-bottom:1px solid #c2c8be}.steps article>span{font-size:12px;color:var(--red);padding-top:4px}.steps h3{font-size:21px;line-height:1.3;margin:0 0 10px}.steps p{margin:0;color:#626860;font-size:15px}.territory{display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:center}.territory-copy>p:first-child{font-size:24px;line-height:1.45;margin-top:0}.muted{color:#656d66}.territory-label{border-top:1px solid var(--line);padding-top:25px;margin-top:35px;font-size:12px;letter-spacing:2px;display:flex;justify-content:space-between}.territory-label span{color:#7a807a}.contact{background:var(--red);color:white;display:grid;grid-template-columns:1.3fr 1fr;gap:12%}.contact h2{font-size:clamp(36px,4vw,61px)}.contact>div>p:not(.eyebrow){max-width:440px;color:#fff0e1;margin:25px 0}.contact-status{display:inline-block;border-top:1px solid #ffc28e;margin-top:8px;padding-top:15px;font-size:14px}.project-note{background:#fff;color:var(--ink);padding:32px;align-self:center}.note-label{font-size:10px;font-weight:700;letter-spacing:1.8px;color:var(--red)}.project-note h3{font-size:28px;line-height:1.2;letter-spacing:-.7px;margin:18px 0}.project-note ul{padding:0;list-style:none;font-size:14px;margin:20px 0}.project-note li{padding:8px 0;border-bottom:1px solid #e6e7e3}.project-note li:before{content:'+';margin-right:12px;color:var(--red)}.project-note button{background:var(--ink);border:0;color:white;padding:13px 16px;width:100%;font-size:13px;cursor:pointer}.project-note button:hover{background:var(--red)}#copy-status{font-size:13px;margin:6px 0 0;color:#525b51}footer{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:45px 6%}footer p{font-size:13px;color:#667064}footer small{font-size:12px;color:#667064}@media(min-width:1600px){body{max-width:1800px;margin:auto}}@media(max-width:1000px){nav{gap:18px}.hero-copy{padding-top:48px;padding-bottom:23px}.hero{min-height:575px}h1{letter-spacing:-3px}.hero-foot{font-size:9px;letter-spacing:1px}.section-top{grid-template-columns:1fr 2fr}.section-top>p:last-child{grid-column:2}.section{padding:70px 5%}.service{padding:22px}.service h3{font-size:24px}.contact{gap:7%}}@media(max-width:700px){header{height:82px;padding:0 6%}nav{display:none}.brand strong{font-size:22px}.brand-small{font-size:10px}.mark{width:44px;height:44px}.nav-contact{font-size:12px;padding:9px 13px}.hero{display:flex;flex-direction:column}.hero-copy{padding:42px 6% 23px;min-height:490px}.eyebrow{font-size:10px;letter-spacing:1.5px;margin-bottom:22px}h1{font-size:65px;letter-spacing:-3.5px}.hero-description{font-size:16px;max-width:370px}.hero-foot{margin-top:37px;font-size:9px}.hero-image{height:340px}.image-label{left:22px;bottom:20px}.discipline{padding:19px 6%;gap:12px;flex-wrap:wrap;font-size:9px;letter-spacing:1px}.discipline span:nth-child(4){display:none}.discipline span:last-child{width:100%;text-align:center}.section{padding:57px 6%}.section-top{display:block;margin-bottom:30px}.section-top h2{font-size:33px;margin-bottom:20px}.section-top>p:last-child{max-width:360px}.services-grid{grid-template-columns:1fr}.service{padding:26px}.service-head{margin-bottom:25px}.service h3{font-size:28px}.service p{min-height:0;max-width:100%;margin-bottom:27px}.approach,.territory,.contact{grid-template-columns:1fr;gap:36px}h2{font-size:39px;letter-spacing:-1.5px}.territory-copy>p:first-child{font-size:21px}.contact h2{font-size:41px}.project-note{padding:26px}footer{flex-wrap:wrap;padding:35px 6%}footer small{width:100%}footer p{font-size:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.contact-details{display:flex;align-items:flex-start;flex-direction:column;gap:12px;margin-top:28px}.contact-phone{font-size:30px;font-weight:700;line-height:1.2}.contact-email{font-size:18px;overflow-wrap:anywhere}.contact-email:hover,.contact-phone:hover{text-decoration:underline;text-underline-offset:5px}.contact-quote{margin-top:8px;padding:13px 22px;background:white;color:var(--red);font-size:14px;font-weight:700}.contact-quote:hover{background:#fff0e1}footer p a:hover{text-decoration:underline}

/* Pages de services */
header{height:auto;min-height:100px;gap:24px;flex-wrap:wrap;padding-top:22px;padding-bottom:22px}nav{gap:20px;flex-wrap:wrap;font-size:14px}.page-intro{border-bottom:1px solid var(--line)}.page-intro h1{font-size:clamp(42px,5.5vw,80px);letter-spacing:-3px;max-width:1000px}.page-lead{font-size:20px;max-width:750px;color:#595f5b;margin:25px 0 32px}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}.detail-grid h2{font-size:28px;letter-spacing:-.6px;margin:20px 0}.detail-grid p{color:#595f5b}.related{background:#e8ebe5;padding-top:50px;padding-bottom:50px}.related h2{font-size:30px}.related-links{display:flex;gap:24px;flex-wrap:wrap;margin-top:24px}.related-links a{font-weight:700;border-bottom:2px solid var(--red);padding-bottom:6px}.service-bottom a:hover,.related-links a:hover{text-decoration:underline}.project-gallery{padding-top:0}.project-gallery figure{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}.project-gallery img{width:100%;height:500px;object-fit:cover}.project-gallery h2{font-size:36px}.contact-prep{max-width:1000px}.contact-prep h2{font-size:36px}@media(max-width:1000px){header nav{order:3;width:100%}.detail-grid{gap:25px}.detail-grid h2{font-size:25px}}@media(max-width:700px){header{padding:18px 6%;min-height:82px}header nav{display:flex;gap:12px 20px;font-size:14px}header .brand-small{font-size:12px}.page-intro h1{font-size:44px;letter-spacing:-1.8px}.page-lead{font-size:18px}.detail-grid{grid-template-columns:1fr;gap:30px}.detail-grid article{border-bottom:1px solid var(--line);padding-bottom:20px}.project-gallery figure{grid-template-columns:1fr;gap:25px}.project-gallery img{height:380px}.related-links{flex-direction:column;align-items:flex-start}.discipline{font-size:12px}.hero-foot{font-size:12px;letter-spacing:.2px}}

.founders{max-width:460px;margin-top:32px;padding-top:25px;border-top:1px solid #c2c8be}.founders h3{font-size:24px;line-height:1.3;letter-spacing:-.4px;margin:0 0 14px}.founders p{font-size:16px;line-height:1.65;color:#626860;margin:0}

.services-grid{grid-template-columns:repeat(2,1fr)}@media(max-width:700px){.services-grid{grid-template-columns:1fr}}

.services-grid{grid-template-columns:repeat(3,1fr)}@media(max-width:700px){.services-grid{grid-template-columns:1fr}}

.quote-section{display:grid;grid-template-columns:1fr 1.6fr;gap:8%;border-bottom:1px solid var(--line)}.quote-heading h2{font-size:42px}.quote-heading>p:last-child{color:#595f5b}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-wide{grid-column:1/-1}#quote-form label{display:block;font-size:16px;font-weight:700;margin-bottom:7px}#quote-form input:not([type=checkbox]),#quote-form select,#quote-form textarea{width:100%;border:1px solid #aeb4ad;border-radius:0;padding:12px;background:white;color:var(--ink);font:16px/1.5 Arial,Helvetica,sans-serif}#quote-form textarea{resize:vertical}#quote-form input:focus-visible,#quote-form select:focus-visible,#quote-form textarea:focus-visible{outline:3px solid var(--red);outline-offset:2px}.field-help{font-size:14px;color:#595f5b;line-height:1.6}.field-help a{text-decoration:underline}.second-file{margin-top:16px}#quote-form .form-consent{display:flex;align-items:flex-start;gap:12px;font-weight:400;margin:24px 0}.form-consent input{width:20px;height:20px;flex:none;margin:3px 0 0;accent-color:var(--red)}.form-honey{display:none}.form-submit{border:0;cursor:pointer}#form-error{color:#a11b10;font-weight:700}.form-submit:disabled{opacity:.65;cursor:wait}@media(max-width:800px){.quote-section{grid-template-columns:1fr;gap:30px}}@media(max-width:500px){.form-grid{grid-template-columns:1fr}.form-wide{grid-column:auto}.quote-heading h2{font-size:36px}}

.cookie-notice[hidden]{display:none}.cookie-notice{position:fixed;bottom:20px;left:20px;right:20px;z-index:100;max-width:960px;margin:0 auto;display:flex;gap:28px;align-items:center;padding:24px;background:#fff;color:var(--ink);border:1px solid var(--line);border-top:3px solid var(--red);box-shadow:0 8px 35px #0002;max-height:60vh;overflow:auto}.cookie-notice h2{font-size:22px;line-height:1.3;letter-spacing:-.3px;margin:0 0 8px}.cookie-notice p{font-size:16px;line-height:1.5;margin:0 0 8px}.cookie-notice details{font-size:14px}.cookie-notice details p{font-size:14px;margin-top:10px}.cookie-notice summary{cursor:pointer;text-decoration:underline;text-underline-offset:3px}.cookie-notice>.button{border:0;cursor:pointer;flex:none}.cookie-reopen{font-size:14px;background:none;border:0;color:#595f5b;text-decoration:underline;cursor:pointer;padding:8px}.cookie-notice summary:focus-visible{outline:3px solid var(--red);outline-offset:3px}@media(max-width:600px){.cookie-notice{bottom:12px;left:12px;right:12px;padding:20px;gap:14px;align-items:flex-start;flex-direction:column}.cookie-notice>.button{width:100%}}

.contact-address{grid-column:1/-1;border-top:1px solid #ffc28e;padding-top:22px;font-size:16px;line-height:1.7;font-style:normal}.contact-address strong{font-weight:700}

/* Réalisation : Rivière-des-Prairies */
.rdp-heading{display:grid;grid-template-columns:1fr 1fr;gap:7%;align-items:start;margin-bottom:38px}.rdp-heading h2{font-size:clamp(32px,3.5vw,50px);letter-spacing:-1.5px}.rdp-heading p:not(.eyebrow){margin:0 0 18px;color:#595f5b}.rdp-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.rdp-photos figure{margin:0}.rdp-photos a{display:block}.rdp-photos img{display:block;width:100%;height:330px;object-fit:cover}.rdp-photos figure:last-child img{object-position:center 63%}.rdp-photos figcaption{font-size:16px;line-height:1.5;margin-top:14px;color:#595f5b}@media(max-width:900px){.rdp-heading{grid-template-columns:1fr;gap:24px}.rdp-photos{grid-template-columns:1fr 1fr}.rdp-photos figure:last-child{grid-column:1/-1}.rdp-photos figure:last-child img{height:420px}}@media(max-width:600px){.rdp-photos{grid-template-columns:1fr;gap:30px}.rdp-photos figure:last-child{grid-column:auto}.rdp-photos img{height:auto}.rdp-photos figure:last-child img{height:auto}}

/* Réalisation : cour anglaise à Mercier */
.mercier-project figure{margin:0;display:grid;grid-template-columns:1.15fr 1fr;gap:7%;align-items:center}.mercier-project figure>a{display:block}.mercier-project img{display:block;width:100%;height:auto}.mercier-project h2{font-size:clamp(32px,3.4vw,49px);letter-spacing:-1.4px}.mercier-project figcaption>p:not(.eyebrow){color:#595f5b;margin:22px 0 0}.mercier-project figcaption>.project-stage{font-size:14px}.mercier-project+.rdp-project{border-top:1px solid var(--line)}@media(max-width:700px){.mercier-project figure{grid-template-columns:1fr;gap:30px}}

/* Coffrage des bordures à Rivière-des-Prairies */
.curb-process{margin-top:60px;padding-top:38px;border-top:1px solid var(--line)}.curb-process h3{font-size:30px;line-height:1.2;letter-spacing:-.7px;margin:0 0 18px}.curb-process>p{max-width:760px;color:#595f5b;margin-bottom:28px}.curb-photos{display:grid;grid-template-columns:1fr 1fr;gap:28px}.curb-photos figure{margin:0}.curb-photos a{display:block}.curb-photos img{display:block;width:100%;height:480px;object-fit:cover}.curb-photos figcaption{font-size:16px;line-height:1.5;color:#595f5b;margin-top:14px}@media(max-width:700px){.curb-photos{grid-template-columns:1fr;gap:28px}.curb-photos img{height:auto}.curb-process{margin-top:40px}}

/* Réfection d’un accès latéral */
.access-project{border-bottom:1px solid var(--line)}.access-photos{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start}.access-photos figure{margin:0}.access-photos a{display:block}.access-photos img{display:block;width:100%;height:auto}.access-photos figcaption{font-size:16px;line-height:1.5;margin-top:16px}.access-photos figcaption strong,.access-photos figcaption span{display:block}.access-photos figcaption span{color:#595f5b;margin-top:6px}@media(max-width:700px){.access-photos{grid-template-columns:1fr;gap:30px}}

.founders p+p{margin-top:18px}

.name-origin{max-width:460px;margin-top:30px;padding-top:26px;border-top:1px solid #c2c8be}.name-origin h3{font-size:24px;line-height:1.3;letter-spacing:-.4px;margin:0 0 14px}.name-origin p{font-size:16px;line-height:1.65;color:#626860;margin:0}.name-origin p+p{margin-top:18px}

/* Accueil : photo fixe, contenu défilant */
.home-fixed-photo{isolation:isolate;background:#202323;max-width:none}.home-backdrop{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;background:#202323}.home-backdrop img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 52%}.home-backdrop:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,20,20,.78),rgba(14,20,20,.36))}.home-fixed-photo header,.home-fixed-photo footer{background:rgba(246,246,243,.97)}.home-fixed-photo .hero{display:block;min-height:660px;color:#fff}.home-fixed-photo .hero-copy{max-width:860px;min-height:660px;padding:75px 6% 35px}.home-fixed-photo .hero-description{color:#fff;max-width:480px}.home-fixed-photo .hero-foot{max-width:560px;border-color:rgba(255,255,255,.45);font-size:12px;letter-spacing:1px;margin-top:48px}.home-fixed-photo .hero h1{font-size:clamp(55px,7vw,105px)}.home-fixed-photo .hero em{color:#ff983f}.home-fixed-photo main>.section{margin:28px 3%;padding:75px 4%;background:rgba(246,246,243,.92)}.home-fixed-photo .approach{background:rgba(232,235,229,.94)}.home-fixed-photo main>.contact{background:rgba(193,76,0,.96);margin-bottom:28px}.home-fixed-photo .service:hover{background:rgba(235,237,232,.95)}@media(max-width:700px){.home-backdrop{height:100vh;height:100lvh;bottom:auto}.home-backdrop img{object-position:54% center}.home-backdrop:after{background:rgba(14,20,20,.64)}.home-fixed-photo .hero,.home-fixed-photo .hero-copy{min-height:560px}.home-fixed-photo .hero-copy{padding:48px 6% 28px}.home-fixed-photo .hero h1{font-size:clamp(48px,12vw,65px)}.home-fixed-photo .hero-foot{font-size:11px;letter-spacing:.3px}.home-fixed-photo main>.section{margin:20px 4%;padding:44px 6%}.home-fixed-photo .section-top h2{overflow-wrap:break-word}}

.home-fixed-photo .approach{display:block}.home-fixed-photo .approach>div{max-width:820px;margin-inline:auto}.home-fixed-photo .approach-intro,.home-fixed-photo .founders,.home-fixed-photo .name-origin{max-width:none}

/* Murs et semelles : vidéo fixe en arrière-plan */
.walls-video-page{isolation:isolate;background:#202323;max-width:none}.walls-backdrop{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;background:#202323}.walls-backdrop img,.walls-backdrop video{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center}.walls-backdrop:after{content:"";position:absolute;inset:0;background:rgba(10,18,18,.66)}.walls-video-page header,.walls-video-page footer{background:rgba(246,246,243,.97)}.walls-video-page main>.section{margin:28px 3%;padding:70px 4%;background:rgba(246,246,243,.92)}.walls-video-page main>.page-intro{margin:0;padding:85px 7%;min-height:520px;background:transparent;color:white;border-bottom:0}.walls-video-page .page-intro em{color:#ff983f}.walls-video-page .page-lead{color:white}.walls-video-page main>.contact{background:rgba(193,76,0,.96)}.video-toggle{position:fixed;right:18px;bottom:18px;z-index:20;border:1px solid #fff9;background:#202323ed;color:white;border-radius:4px;padding:11px 15px;font-size:14px;cursor:pointer}.video-toggle[hidden]{display:none}.walls-video-page footer{padding-bottom:85px}@media(max-width:700px){.walls-backdrop{height:100vh;height:100lvh;bottom:auto}.walls-video-page main>.section{margin:20px 4%;padding:44px 6%}.walls-video-page main>.page-intro{margin:0;padding:52px 7%;min-height:500px}.video-toggle{bottom:max(14px,env(safe-area-inset-bottom));right:14px}}

.walls-backdrop video[hidden]{display:none}

/* Coins arrondis des blocs de l’accueil et des photos de projets */
.home-fixed-photo main>.section{border-radius:20px}
.home-fixed-photo .project-note{border-radius:16px}
.project-gallery img,.mercier-project img,.rdp-photos img,.curb-photos img,.access-photos img{border-radius:16px}
@media(max-width:700px){.home-fixed-photo main>.section{border-radius:16px}.home-fixed-photo .project-note,.project-gallery img,.mercier-project img,.rdp-photos img,.curb-photos img,.access-photos img{border-radius:14px}}

/* Même finition arrondie sur toutes les pages */
main>.section{border-radius:20px}
.project-note,.cookie-notice{border-radius:16px}
.services-grid{border-radius:16px;overflow:hidden}
.button,.nav-contact,.contact-quote,.project-note button,.video-toggle{border-radius:10px}
.nav-contact{border-radius:999px}
#quote-form input:not([type=checkbox]),#quote-form select,#quote-form textarea{border-radius:10px}
@media(max-width:700px){main>.section{border-radius:16px}.project-note,.cookie-notice,.services-grid{border-radius:14px}}
