﻿:root{--ink:#08595c;--ink-2:#076a7d;--accent:#1aacc9;--sky:#e9f7f8;--soft:#f7f9f8;--text:#353535}
body{color:var(--text);background:#fff;font-family:"Poppins",sans-serif;overflow-x:hidden}
h1,h2,h3{font-family:"Josefin Sans",sans-serif}
h2{color:var(--ink);line-height:1.08;letter-spacing:-.035em;text-transform:none}
h2 em{color:var(--accent)}.section{padding-block:105px}
.eyebrow,.eyebrow.light{color:var(--ink)}.eyebrow span{height:2px;background:var(--accent)}
.site-header{position:relative;color:#353535;background:#fff;border:0;box-shadow:0 3px 22px rgba(0,0,0,.09)}
.header-shell{height:94px}.brand{width:92px;height:82px}.brand img{max-width:76px;max-height:78px;filter:none}
.main-nav{color:#353535;font-size:12px;letter-spacing:.04em}
.main-nav> a:not(.nav-cta)::after{background:var(--accent)}
.nav-cta{padding:13px 20px;color:#fff;background:var(--accent);border:0;border-radius:4px;box-shadow:0 9px 20px rgba(26,172,201,.2)}
.nav-cta span{color:#fff}
.hero{min-height:660px;height:calc(100svh - 94px);max-height:810px}
.hero-media{background-image:url("Hero image.jpg");background-position:center 46%;animation:heroZoom 14s ease-out both}
.hero-overlay{background:linear-gradient(70deg,rgba(20,50,61,.91),rgba(31,68,78,.61) 50%,rgba(30,51,58,.16))}
.hero-content{padding-top:0}.hero .eyebrow.light{color:rgba(255,255,255,.8)}
.hero h1{max-width:900px;margin-bottom:22px;font-size:clamp(58px,7vw,94px);line-height:1.02;text-transform:none;text-shadow:0 3px 18px rgba(0,0,0,.14)}
.hero h1 em{color:#fff}.hero-copy{max-width:630px;font-size:17px}
.button{border-radius:4px}.button-primary{color:#fff;background:var(--accent);box-shadow:0 12px 22px -10px rgba(0,0,0,.32)}
.button-primary:hover{background:var(--ink-2)}.hero-stamp{border-color:rgba(255,255,255,.65);background:rgba(8,89,92,.38)}
.hero-stamp>span{color:#fff;font-family:"Josefin Sans"}.hero-foot{height:64px}
.hero::after{content:"";position:absolute;z-index:4;left:-2%;right:-2%;bottom:-1px;height:62px;background:#fff;clip-path:polygon(0 75%,12% 42%,28% 69%,48% 27%,68% 68%,84% 36%,100% 64%,100% 100%,0 100%)}
.hero-foot{bottom:35px;border:0}.intro{position:relative;background:#fff}.intro-grid{align-items:center}
.intro-copy>p{color:#606b6f}.arrow-link{color:var(--ink);border-color:var(--accent)}
.services{position:relative;color:var(--text);background:var(--soft)}
.services::before{content:"SERVICES";position:absolute;top:30px;left:50%;transform:translateX(-50%);color:rgba(26,172,201,.045);font:700 clamp(80px,15vw,210px)/1 "Josefin Sans";letter-spacing:.03em}
.services .section-heading{position:relative;justify-content:center;text-align:center}.services .section-heading>div{width:100%}
.services .section-heading .eyebrow{justify-content:center;color:var(--ink)}.services .section-heading>p{display:none}
.service-grid{gap:22px}.service-card{min-height:350px;padding:34px;background:#fff;border:1px solid #e5e9e8;box-shadow:0 12px 35px rgba(14,58,65,.07)}
.service-card:hover{background:#fff;box-shadow:0 22px 48px rgba(14,58,65,.15);transform:translateY(-9px)}
.service-card.featured{color:#fff;border:0}.service-number{color:var(--accent);font-family:"Poppins"}
.service-card h3{color:var(--ink);font-family:"Josefin Sans";font-size:26px;text-transform:none}
.service-card p{color:#687175}.service-card.featured h3{color:#fff}.service-card.featured p{color:rgba(255,255,255,.8)}
.service-icon{margin-bottom:38px;color:var(--accent)}
.statement{background:#fff}.statement-photo{box-shadow:24px 24px 0 #d8eff2}.vertical-label{background:var(--accent)}
.statement-content>p:not(.eyebrow){color:#626c70}.benefits strong{color:var(--accent);font-family:"Poppins"}
.contact{position:relative;color:var(--text);background:var(--sky)}
.contact::before{content:"";position:absolute;top:0;left:0;width:100%;height:42px;background:#fff;clip-path:polygon(0 0,100% 0,100% 28%,79% 74%,57% 34%,35% 79%,16% 39%,0 68%)}
.contact h2{color:var(--ink)}.contact .eyebrow.light{color:var(--ink)}.contact-copy>p:not(.eyebrow){color:#606c70}
.contact-note{color:var(--ink)}.contact-note span{color:#fff;background:var(--accent)}
.quote-form{border-top:5px solid var(--accent);box-shadow:0 18px 55px rgba(8,89,92,.12)}
.quote-form input:focus,.quote-form select:focus,.quote-form textarea:focus{border-color:var(--accent)}
.site-footer{background:var(--ink)}.footer-brand img{filter:none}.back-top{color:#fff;border-color:rgba(255,255,255,.4);background:var(--accent)}
.reveal{opacity:0;transform:translateY(34px);transition:opacity .75s ease,transform .75s cubic-bezier(.2,.7,.2,1)}
.reveal.reveal-left{transform:translateX(-42px)}.reveal.reveal-right{transform:translateX(42px)}
.reveal.is-visible{opacity:1;transform:none}.service-card.reveal:nth-child(2){transition-delay:.1s}.service-card.reveal:nth-child(3){transition-delay:.2s}.service-card.reveal:nth-child(4){transition-delay:.3s}
@keyframes heroZoom{from{transform:scale(1.08)}to{transform:scale(1.01)}}
@media(max-width:900px){.menu-toggle{color:var(--ink)}.main-nav{color:#fff;background:var(--ink)}.nav-cta{color:#fff}.hero::after{height:38px}.reveal.reveal-left,.reveal.reveal-right{transform:translateY(30px)}}
@media(max-width:620px){.header-shell{height:84px}.hero{min-height:650px;height:calc(100svh - 84px)}.hero-media{background-position:58% center}.hero h1{font-size:clamp(48px,14vw,66px)}.section{padding-block:72px}.hero-foot{bottom:25px}.services::before{top:50px}}
@media(prefers-reduced-motion:reduce){.hero-media{animation:none}.reveal{opacity:1;transform:none;transition:none}}

.project-gallery{position:relative;background:#fff}.gallery-heading{display:flex;justify-content:space-between;align-items:end;gap:60px;margin-bottom:52px}
.gallery-heading>p{width:370px;margin:0 0 7px;color:#626c70}.gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-auto-rows:330px;gap:18px}
.gallery-item{position:relative;padding:0;overflow:hidden;border:0;background:#dce7e7;cursor:zoom-in;text-align:left;box-shadow:0 12px 34px rgba(8,89,92,.1)}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .65s cubic-bezier(.2,.7,.2,1)}
.gallery-item:hover img{transform:scale(1.06)}.gallery-shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(5,38,43,.82),transparent 62%);transition:background .35s}
.gallery-item:hover .gallery-shade{background:linear-gradient(0deg,rgba(5,38,43,.9),rgba(26,172,201,.08) 72%)}
.gallery-meta{position:absolute;left:30px;bottom:27px;color:#fff;display:flex;flex-direction:column}.gallery-meta small{margin-bottom:7px;color:rgba(255,255,255,.72);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.13em}
.gallery-meta strong{font:700 25px/1.1 "Josefin Sans"}.gallery-expand{position:absolute;right:25px;top:25px;width:44px;height:44px;display:grid;place-items:center;color:var(--ink);background:#fff;border-radius:50%;font-size:24px;box-shadow:0 8px 20px rgba(0,0,0,.18);transform:translateY(-12px);opacity:0;transition:.3s}
.gallery-item:hover .gallery-expand,.gallery-item:focus-visible .gallery-expand{opacity:1;transform:none}.gallery-item:focus-visible{outline:4px solid var(--accent);outline-offset:3px}
body.lightbox-open{overflow:hidden}.lightbox[hidden]{display:none}.lightbox{position:fixed;z-index:1000;inset:0;display:grid;grid-template-columns:80px minmax(0,1100px) 80px;align-items:center;justify-content:center;padding:36px;background:rgba(3,24,28,.92);backdrop-filter:blur(12px);opacity:0;transition:opacity .25s}
.lightbox.is-open{opacity:1}.lightbox-figure{max-height:calc(100vh - 72px);margin:0;display:flex;flex-direction:column;transform:scale(.96);transition:transform .3s}.lightbox.is-open .lightbox-figure{transform:none}
.lightbox-image{min-height:0;max-width:100%;max-height:calc(100vh - 150px);object-fit:contain;background:#102e32;box-shadow:0 28px 80px rgba(0,0,0,.45)}
.lightbox-figure figcaption{position:relative;min-height:75px;padding:15px 90px 12px 3px;color:#fff;display:flex;flex-direction:column}.lightbox-figure small{color:var(--accent);font-size:9px;text-transform:uppercase;letter-spacing:.15em}.lightbox-figure strong{font:700 22px "Josefin Sans"}.lightbox-count{position:absolute;right:3px;top:24px;color:rgba(255,255,255,.55);font-size:11px;letter-spacing:.12em}
.lightbox-close,.lightbox-arrow{border:0;color:#fff;background:transparent;cursor:pointer}.lightbox-close{position:absolute;right:28px;top:20px;width:52px;height:52px;font-size:40px;font-weight:200}.lightbox-arrow{width:58px;height:58px;border:1px solid rgba(255,255,255,.28);border-radius:50%;font-size:42px;line-height:1;transition:.2s}.lightbox-arrow:hover{color:var(--ink);background:#fff}.lightbox-prev{justify-self:start}.lightbox-next{justify-self:end}
@media(max-width:900px){.gallery-heading{align-items:start;flex-direction:column;gap:20px}.gallery-heading>p{width:auto}.lightbox{grid-template-columns:58px minmax(0,1fr) 58px;padding:24px 12px}.lightbox-arrow{width:48px;height:48px}}
@media(max-width:620px){.gallery-grid{grid-template-columns:1fr;grid-auto-rows:255px}.gallery-meta{left:20px;bottom:20px}.gallery-expand{opacity:1;transform:none;right:16px;top:16px;width:38px;height:38px}.lightbox{display:block;padding:70px 12px 20px}.lightbox-figure{height:100%;justify-content:center}.lightbox-image{max-height:calc(100vh - 190px)}.lightbox-arrow{position:absolute;z-index:2;bottom:24px}.lightbox-prev{left:18px}.lightbox-next{right:18px}.lightbox-close{right:10px;top:8px}}

.gallery-item-full{grid-column:1/-1;height:430px}@media(max-width:620px){.gallery-item-full{grid-column:auto;height:auto}}

/* Header logo badge for contrast against the white navigation. */
.site-header .brand{position:relative;width:84px;height:84px;border-radius:50%;background:var(--ink);box-shadow:0 7px 22px rgba(8,89,92,.2),inset 0 0 0 1px rgba(255,255,255,.22);display:grid;place-items:center;flex:0 0 84px}
.site-header .brand::after{content:"";position:absolute;inset:-5px;border:1px solid rgba(26,172,201,.28);border-radius:50%;pointer-events:none}
.site-header .brand img{position:relative;z-index:1;max-width:55px;max-height:70px;filter:none}
@media(max-width:620px){.site-header .brand{width:70px;height:70px;flex-basis:70px}.site-header .brand::after{inset:-4px}.site-header .brand img{max-width:46px;max-height:58px}}

/* Softer project image treatment beside “Bien fait. Du premier coup.” */
.statement-photo{border-radius:22px;box-shadow:18px 18px 0 #d8eff2}
.statement-photo::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(255,255,255,.3);pointer-events:none}
.vertical-label{right:-42px;border-radius:0 12px 12px 0;overflow:hidden}
@media(max-width:620px){.statement-photo{border-radius:16px;box-shadow:12px 12px 0 #d8eff2}.vertical-label{right:-32px;border-radius:0 9px 9px 0}}

/* Enlarge the visible logo artwork (the source PNG includes generous transparent padding). */
.header-shell{height:112px}
.site-header .brand{width:104px;height:104px;flex-basis:104px;overflow:hidden}
.site-header .brand img{width:118px;max-width:none;max-height:none;height:auto}
@media(max-width:620px){.header-shell{height:94px}.site-header .brand{width:84px;height:84px;flex-basis:84px}.site-header .brand img{width:98px;max-width:none;max-height:none}}

/* Optical centering for the artwork inside logo.png's transparent canvas. */
.site-header .brand img{position:absolute;left:50%;top:50%;transform:translate(-51.2%,-51.4%);transform-origin:center}
@media(max-width:620px){.site-header .brand img{transform:translate(-51.2%,-51.4%)}}

/* Standalone logo1 treatment — no circular badge. */
.site-header .brand{width:150px;height:100px;flex-basis:150px;overflow:visible;background:transparent;box-shadow:none;border-radius:0}
.site-header .brand::after{display:none}
.site-header .brand img{width:150px;max-width:none;max-height:none;left:50%;top:50%;transform:translate(-50%,-50%)}
@media(max-width:620px){.site-header .brand{width:118px;height:84px;flex-basis:118px}.site-header .brand img{width:122px;transform:translate(-50%,-50%)}}
