:root{
  --bg:#f7faf7;
  --paper:#ffffff;
  --ink:#123532;
  --muted:#60716f;
  --line:#dce5e1;
  --mint:#78ead2;
  --mint-deep:#1cae94;
  --soft:#eaf7f3;
  --radius:34px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"IBM Plex Sans",Arial,Helvetica,sans-serif;line-height:1.55;overflow-x:hidden}
a{color:inherit;text-decoration:none}
button,input{font:inherit}
img{max-width:100%;display:block}
button{color:inherit}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;top:8px;left:8px;z-index:9999;background:var(--ink);color:#fff;padding:10px 14px;transform:translateY(-150%)}
.skip-link:focus{transform:none}

.site-header{height:78px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 clamp(20px,4vw,72px);border-bottom:1px solid rgba(18,53,50,.08);position:sticky;top:0;z-index:50;background:rgba(247,250,247,.9);backdrop-filter:blur(16px)}
.brand{display:inline-flex;align-items:center;gap:10px;font-weight:800;font-size:19px;letter-spacing:-.03em;width:max-content}.brand b{color:var(--mint-deep)}.brand-dot{width:17px;height:17px;border-radius:50%;background:var(--mint);box-shadow:inset 0 0 0 5px #d9fff7}
.desktop-nav{display:flex;gap:32px;font-size:14px}.desktop-nav a{position:relative}.desktop-nav a::after{content:"";position:absolute;left:0;right:100%;bottom:-8px;height:1px;background:var(--ink);transition:.25s}.desktop-nav a:hover::after{right:0}
.header-cta{justify-self:end;background:var(--ink);color:#fff;padding:12px 18px;border-radius:999px;font-weight:700;font-size:13px}.menu-toggle,.mobile-menu{display:none}

.hero{min-height:calc(100vh - 78px);display:grid;grid-template-columns:minmax(0,1.03fr) minmax(420px,.97fr);gap:clamp(40px,6vw,100px);align-items:center;padding:clamp(64px,8vw,120px) clamp(20px,5.5vw,100px)}
.eyebrow{font-size:11px;letter-spacing:.18em;font-weight:800;color:var(--mint-deep);margin:0 0 26px;text-transform:uppercase}
.hero h1,.services h2,.quality h2,.quote h2{font-family:"Sora",Arial,sans-serif;font-weight:600;letter-spacing:-.045em;margin:0}
.hero h1{font-size:clamp(56px,6.2vw,112px);line-height:.96;max-width:980px}.hero h1 em{font-weight:600;color:var(--ink)}
.hero-lead{max-width:650px;font-size:clamp(18px,1.5vw,23px);line-height:1.55;color:#39524f;margin:38px 0 30px}
.hero-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;cursor:pointer;min-height:52px;padding:0 24px;border-radius:999px;font-weight:800}.btn-primary{background:var(--ink);color:white}.btn-primary:hover{transform:translateY(-1px)}.btn-link{font-weight:700;font-size:14px}.btn-link span{margin-left:8px}
.hero-proof{display:flex;gap:26px;flex-wrap:wrap;margin-top:46px;padding-top:20px;border-top:1px solid var(--line);max-width:690px;color:#425b58;font-size:13px}.hero-proof b{color:var(--mint-deep);margin-right:7px}

.clarity-experience{min-width:0}
.clarity-stage{position:relative;min-height:650px;overflow:hidden;isolation:isolate;border:1px solid rgba(255,255,255,.78);border-radius:42px 42px 160px 42px;background:#d8e4df url('images/interieur-avant.webp') center/cover no-repeat;box-shadow:0 34px 90px rgba(15,54,49,.16),inset 0 1px 0 rgba(255,255,255,.78);cursor:crosshair;outline:none;touch-action:manipulation;user-select:none;transition:transform .45s cubic-bezier(.2,.75,.2,1),box-shadow .45s ease}
.clarity-stage:hover{box-shadow:0 42px 105px rgba(15,54,49,.2),inset 0 1px 0 rgba(255,255,255,.82)}
.clarity-stage:focus-visible{box-shadow:0 0 0 4px rgba(28,174,148,.24),0 34px 90px rgba(15,54,49,.16)}
.clarity-source{display:none}
.clarity-canvas{position:absolute;z-index:1;inset:0;width:100%;height:100%;pointer-events:none}
.clarity-glass{position:absolute;z-index:2;inset:0;pointer-events:none;background:radial-gradient(circle at 74% 12%,rgba(255,255,255,.15),transparent 30%),linear-gradient(124deg,rgba(255,255,255,.12),transparent 32% 72%,rgba(255,255,255,.08));mix-blend-mode:soft-light}
.clarity-glass::after{content:"";position:absolute;inset:0;opacity:.16;background-image:radial-gradient(circle,rgba(255,255,255,.58) 0 1px,transparent 1.5px);background-size:9px 9px;mix-blend-mode:soft-light}
.clarity-signature,.clarity-validation,.clarity-instruction{position:absolute;z-index:5;pointer-events:none;backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px)}
.clarity-signature{left:24px;top:24px;display:grid;gap:1px;padding:11px 14px;border:1px solid rgba(255,255,255,.5);border-radius:14px;background:rgba(12,47,43,.58);color:#fff;box-shadow:0 12px 32px rgba(0,0,0,.1)}
.clarity-signature span,.clarity-validation span,.clarity-instruction span{font-size:8px;line-height:1.2;letter-spacing:.17em;font-weight:900}
.clarity-signature strong{font-size:11px;letter-spacing:.09em}
.clarity-validation{right:24px;top:24px;display:grid;gap:1px;padding:11px 14px;border:1px solid rgba(120,234,210,.42);border-radius:14px;background:rgba(9,57,51,.72);color:#fff;opacity:0;transform:translateY(-12px) scale(.96);transition:opacity .45s ease,transform .55s cubic-bezier(.2,.8,.2,1)}
.clarity-validation span{color:var(--mint)}.clarity-validation strong{font-size:12px;letter-spacing:.14em}
.clarity-stage.is-complete .clarity-validation{opacity:1;transform:none}
.clarity-instruction{left:24px;bottom:24px;display:grid;gap:2px;max-width:250px;padding:13px 16px;border:1px solid rgba(255,255,255,.64);border-radius:16px;background:rgba(255,255,255,.85);color:var(--ink);box-shadow:0 15px 38px rgba(0,0,0,.1);transition:opacity .35s ease,transform .35s ease}
.clarity-instruction span{color:var(--mint-deep)}.clarity-instruction strong{font-family:"IBM Plex Sans",Arial,sans-serif;font-size:16px;font-weight:600;line-height:1.25}
.clarity-stage.is-running .clarity-instruction,.clarity-stage.is-complete .clarity-instruction{opacity:0;transform:translateY(10px)}
.clarity-reticle{position:absolute;z-index:6;left:50%;top:55%;width:80px;height:80px;pointer-events:none;opacity:0;transform:translate(-50%,-50%) scale(.72);transition:opacity .25s ease,transform .35s cubic-bezier(.2,.8,.2,1);filter:drop-shadow(0 12px 24px rgba(4,43,37,.2))}
.clarity-stage:hover .clarity-reticle,.clarity-stage:focus-visible .clarity-reticle,.clarity-stage.is-running .clarity-reticle{opacity:1;transform:translate(-50%,-50%) scale(1)}
.clarity-reticle i{position:absolute;inset:0;border:1px solid rgba(255,255,255,.88);border-radius:50%}.clarity-reticle i:nth-child(2){inset:14px;border-color:rgba(120,234,210,.95)}
.clarity-reticle b{position:absolute;left:50%;top:50%;width:8px;height:8px;border-radius:50%;background:#fff;box-shadow:0 0 0 5px rgba(120,234,210,.32),0 0 24px rgba(120,234,210,.9);transform:translate(-50%,-50%)}
.clarity-stage.is-running .clarity-reticle i:first-child{animation:clarityPulse 1.25s ease-out infinite}
@keyframes clarityPulse{0%{transform:scale(.72);opacity:.9}100%{transform:scale(1.42);opacity:0}}
.clarity-console{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px;align-items:center;padding:15px 12px 10px}
.clarity-copy{display:grid;gap:2px;min-width:0}.clarity-copy span{font-size:9px;letter-spacing:.15em;font-weight:900;text-transform:uppercase;color:var(--mint-deep)}.clarity-copy strong{font-family:"IBM Plex Sans",Arial,sans-serif;font-size:16px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.clarity-replay{border:0;background:transparent;padding:8px 0;color:var(--ink);font-size:11px;font-weight:900;cursor:pointer}.clarity-replay span{display:inline-block;margin-left:5px;transition:transform .4s ease}.clarity-replay:hover span{transform:rotate(-180deg)}
.clarity-rail{height:2px;margin:0 12px;background:rgba(18,53,50,.13);overflow:hidden}.clarity-rail span{display:block;width:100%;height:100%;background:linear-gradient(90deg,var(--mint-deep),var(--mint));transform:scaleX(0);transform-origin:left;will-change:transform}

.quick-strip{min-height:70px;padding:0 clamp(20px,5.5vw,100px);display:flex;align-items:center;justify-content:center;gap:24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:11px;font-weight:800;letter-spacing:.13em;white-space:nowrap;overflow:hidden}.quick-strip i{width:4px;height:4px;border-radius:50%;background:var(--mint-deep);flex:0 0 auto}

.services,.quality,.quote{scroll-margin-top:84px}
.services{padding:clamp(90px,10vw,170px) clamp(20px,5.5vw,100px)}
.services-intro{display:grid;grid-template-columns:.42fr 1.58fr;gap:40px;align-items:start;margin-bottom:70px}.services-intro h2{font-size:clamp(48px,5.2vw,84px);line-height:1;max-width:1100px}.services-intro .eyebrow{padding-top:12px}
.service-selector{border-top:1px solid var(--ink)}
.service-tabs{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--line)}
.service-tab{border:0;background:transparent;text-align:left;padding:22px 10px 22px 0;font-weight:700;cursor:pointer;color:#788582;position:relative}.service-tab::after{content:"";position:absolute;left:0;bottom:-1px;width:0;height:3px;background:var(--mint-deep);transition:.3s}.service-tab.is-active{color:var(--ink)}.service-tab.is-active::after{width:100%}
.service-display{display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(40px,7vw,110px);padding-top:58px;align-items:center}
.service-copy{max-width:590px}.service-code{font-size:10px;letter-spacing:.17em;font-weight:800;color:var(--mint-deep);margin:0 0 22px}.service-copy h3{font-family:"Sora",Arial,sans-serif;font-size:clamp(36px,3.3vw,58px);font-weight:600;line-height:1.06;letter-spacing:-.04em;margin:0 0 25px}.service-copy>p:not(.service-code){font-size:17px;color:#4e625f;line-height:1.65}.service-copy ul{list-style:none;padding:0;margin:30px 0 36px;border-top:1px solid var(--line)}.service-copy li{padding:12px 0;border-bottom:1px solid var(--line);font-size:14px}.service-copy li::before{content:"✓";color:var(--mint-deep);font-weight:900;margin-right:10px}.service-link{font-weight:800;font-size:14px}.service-link span{margin-left:8px}
.service-media{margin:0;position:relative;min-height:580px;border-radius:18px;overflow:hidden;background:#d8e4df}.service-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .25s,transform .5s}.service-media figcaption{position:absolute;left:18px;right:18px;bottom:18px;background:rgba(12,47,43,.92);color:#fff;padding:17px 20px;border-radius:8px;font-family:"IBM Plex Sans",Arial,sans-serif;font-size:16px;font-weight:600}

.quality{background:var(--ink);color:#fff;padding:clamp(90px,10vw,160px) clamp(20px,5.5vw,100px);display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(50px,8vw,130px)}
.quality .eyebrow{color:var(--mint)}.quality h2{font-size:clamp(58px,6vw,96px);line-height:.93;color:#fff}
.quality-lines article{display:grid;grid-template-columns:60px .8fr 1.2fr;gap:25px;padding:32px 0;border-top:1px solid rgba(255,255,255,.19);align-items:start}.quality-lines article:last-child{border-bottom:1px solid rgba(255,255,255,.19)}.quality-lines span{color:var(--mint);font-weight:800;font-size:12px}.quality-lines h3{font-family:"Sora",Arial,sans-serif;font-weight:600;font-size:25px;margin:0}.quality-lines p{margin:3px 0 0;color:#c5d6d2;font-size:14px;line-height:1.65}

.quote{padding:clamp(90px,10vw,170px) clamp(20px,5.5vw,100px);display:grid;grid-template-columns:.75fr 1.25fr;gap:clamp(50px,8vw,130px);align-items:start}.quote h2{font-size:clamp(58px,6vw,100px);line-height:.92}.quote-copy>p:last-child{max-width:520px;color:#526763;font-size:16px;line-height:1.7;margin-top:30px}.quote-form{background:#fff;border:1px solid var(--line);border-radius:28px;padding:clamp(28px,4vw,55px)}
.quote-form fieldset{border:0;padding:0;margin:0 0 34px}.quote-form legend{font-family:"Sora",Arial,sans-serif;font-size:22px;font-weight:600;margin-bottom:16px}.choice-row{display:flex;gap:8px;flex-wrap:wrap}.choice-row label{cursor:pointer}.choice-row input{position:absolute;opacity:0;pointer-events:none}.choice-row span{display:block;padding:10px 14px;border:1px solid var(--line);border-radius:999px;font-size:12px;font-weight:700}.choice-row input:checked+span{background:var(--soft);border-color:var(--mint-deep);color:var(--ink)}
.quote-contact{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end;margin-top:12px}.quote-contact label{font-size:12px;font-weight:800}.quote-contact input{display:block;width:100%;height:52px;border:1px solid var(--line);border-radius:999px;padding:0 18px;margin-top:9px;outline:none}.quote-contact input:focus{border-color:var(--mint-deep)}
.quote-summary{margin-top:34px;padding-top:22px;border-top:1px dashed var(--line);display:grid;gap:4px}.quote-summary span{font-size:9px;letter-spacing:.15em;font-weight:800;color:var(--mint-deep)}.quote-summary strong{font-size:16px}.quote-summary small{color:#6f7e7b}

.site-footer{padding:38px clamp(20px,5.5vw,100px);display:grid;grid-template-columns:1fr 1fr auto;gap:28px;align-items:center;border-top:1px solid var(--line);font-size:12px}.site-footer p{margin:0;color:#60716e}.site-footer>div{display:flex;gap:18px}.site-footer small{grid-column:1/-1;color:#87938f;border-top:1px solid var(--line);padding-top:20px}.footer-brand{font-size:16px}

@media(max-width:980px){
  .site-header{grid-template-columns:1fr auto}.desktop-nav,.header-cta{display:none}.menu-toggle{display:grid;width:44px;height:44px;border:0;background:transparent;place-content:center;gap:5px}.menu-toggle span:not(.sr-only){width:24px;height:2px;background:var(--ink)}.mobile-menu{position:absolute;left:0;right:0;top:78px;padding:20px;background:var(--paper);border-bottom:1px solid var(--line);display:none}.mobile-menu.is-open{display:grid}.mobile-menu a{padding:14px 4px;border-bottom:1px solid var(--line);font-weight:700}
  .hero{grid-template-columns:1fr;padding-top:70px}.clarity-stage{min-height:620px;cursor:pointer}.services-intro,.service-display,.quality,.quote{grid-template-columns:1fr}.services-intro{gap:20px}.service-tabs{overflow-x:auto;grid-template-columns:repeat(4,minmax(180px,1fr))}.quality{gap:60px}.quote-form{max-width:850px}.site-footer{grid-template-columns:1fr auto}.site-footer p{grid-column:1/-1}
}
@media(max-width:640px){
  .site-header{height:68px;padding:0 16px}.mobile-menu{top:68px}.hero{min-height:0;padding:56px 16px 36px;gap:36px}.hero h1{font-size:clamp(54px,15vw,80px);line-height:.86}.hero-lead{font-size:17px;margin:28px 0 24px}.hero-proof{display:grid;gap:10px;margin-top:32px}.clarity-stage{min-height:480px;border-radius:24px 24px 90px 24px}.clarity-signature{left:14px;top:14px}.clarity-validation{right:14px;top:14px}.clarity-instruction{left:14px;bottom:14px}.clarity-console{grid-template-columns:1fr;gap:3px;padding:13px 7px 8px}.clarity-copy strong{white-space:normal;font-size:15px}.clarity-replay{justify-self:start;padding:3px 0}.clarity-rail{margin:0 7px}.quick-strip{justify-content:flex-start;overflow:auto;padding:0 16px;height:58px}
  .services{padding:80px 16px}.services-intro{margin-bottom:45px}.services-intro h2{font-size:46px}.service-display{padding-top:38px}.service-copy h3{font-size:43px}.service-media{min-height:420px;border-radius:22px 70px 22px 22px}.service-media figcaption{font-size:17px}
  .quality{padding:80px 16px}.quality h2{font-size:48px}.quality-lines article{grid-template-columns:40px 1fr;gap:14px}.quality-lines p{grid-column:2}.quality-lines h3{font-size:24px}
  .quote{padding:80px 16px}.quote h2{font-size:48px}.quote-form{padding:25px 18px}.quote-contact{grid-template-columns:1fr}.quote-contact .btn{width:100%}.site-footer{grid-template-columns:1fr;padding:34px 16px}.site-footer>div{justify-self:start}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* =========================================================
   Socle éditorial — contrôle final et devis progressif
   ========================================================= */
.hero-copy{padding-bottom:12px}

.quality{
  background:var(--ink);
  color:#fff;
  padding:clamp(90px,10vw,160px) clamp(20px,5.5vw,100px);
  display:grid;
  grid-template-columns:minmax(280px,.7fr) minmax(0,1.3fr);
  gap:clamp(54px,8vw,135px);
  align-items:start;
}
.quality-head{position:sticky;top:120px}
.quality .eyebrow{color:var(--mint)}
.quality h2{font-size:clamp(54px,5.6vw,92px);line-height:.92;color:#fff}
.quality-head>p:last-child{max-width:470px;margin:30px 0 0;color:#bfd0cc;font-size:15px;line-height:1.75}
.quality-gallery{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  grid-auto-rows:minmax(210px,24vw);
  gap:16px;
}
.quality-detail{position:relative;margin:0;overflow:hidden;border-radius:28px;background:#224844;grid-column:span 5;min-height:300px}
.quality-detail-large{grid-column:span 7;grid-row:span 2}
.quality-detail-wide{grid-column:span 5}
.quality-detail img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s ease,filter .5s ease}
.quality-detail-large img{object-position:center}
.quality-detail-wide img{object-position:70% center}
.quality-detail::after{content:"";position:absolute;inset:42% 0 0;background:linear-gradient(transparent,rgba(5,32,29,.88));pointer-events:none}
.quality-detail figcaption{position:absolute;z-index:2;left:22px;right:22px;bottom:20px;display:grid;grid-template-columns:auto 1fr;gap:2px 12px;align-items:end}
.quality-detail figcaption span{grid-row:1/3;color:var(--mint);font-size:10px;font-weight:900;letter-spacing:.12em;padding-top:5px}
.quality-detail figcaption strong{font-family:"Sora",Arial,sans-serif;font-size:clamp(19px,1.8vw,27px);font-weight:600;line-height:1.1}
.quality-detail figcaption small{color:#d5e2df;font-size:12px}
.quality-detail:hover img{transform:scale(1.025);filter:brightness(1.04)}

.quote-form-progressive{overflow:hidden}
.quote-form-progressive .quote-step{transition:max-height .5s ease,opacity .35s ease,transform .45s ease,padding .45s ease,margin .45s ease}
.quote-form-progressive fieldset.quote-step{max-height:240px}
.quote-form-progressive .quote-step-contact{max-height:180px}
.quote-form-progressive .quote-step[aria-hidden="true"]{max-height:0!important;opacity:0;transform:translateY(-12px);overflow:hidden;pointer-events:none;margin:0!important;padding-top:0!important;padding-bottom:0!important}
.quote-form-progressive .quote-step.is-active{opacity:1;transform:none}
.quote-step-head{display:flex;align-items:baseline;gap:14px;margin-bottom:16px}
.quote-step-head>span{flex:0 0 auto;color:var(--mint-deep);font-size:10px;font-weight:900;letter-spacing:.12em}
.quote-form-progressive .quote-step-head legend,.quote-step-head>strong{font-family:"Sora",Arial,sans-serif;font-size:22px;font-weight:600;margin:0}
.quote-form-progressive .quote-contact{margin-top:0;grid-template-columns:1fr auto;align-items:center}
.quote-form-progressive .quote-contact input{margin-top:0}
.quote-form-progressive .quote-summary{margin-top:26px;transition:.35s ease}
.quote-form-progressive .quote-summary strong{min-height:24px}

@media(max-width:980px){
  .quality{grid-template-columns:1fr;gap:46px}
  .quality-head{position:static;max-width:760px}
  .quality-gallery{grid-auto-rows:minmax(260px,48vw)}
}
@media(max-width:640px){
  .quality{padding:80px 16px}
  .quality h2{font-size:clamp(40px,11.5vw,46px)}
  .quality-head>p:last-child{font-size:14px;margin-top:22px}
  .quality-gallery{display:grid;grid-template-columns:1fr;grid-auto-rows:auto;overflow:visible;gap:14px;padding:0;margin:0}
  .quality-detail,.quality-detail-large,.quality-detail-wide{width:100%;min-height:390px;grid-column:1;grid-row:auto;border-radius:22px}
  .quality-detail figcaption{left:18px;right:18px;bottom:17px}
  .quality-detail figcaption strong,.quality-detail figcaption small{overflow-wrap:anywhere}
  .service-selector{border-top:0}
  .service-tabs{grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;gap:1px;padding:1px;border:1px solid var(--line);border-radius:16px;background:var(--line)}
  .service-tab{min-width:0;min-height:64px;padding:14px 12px;background:var(--paper);white-space:normal;line-height:1.2}
  .service-tab:first-child{border-radius:13px 0 0 0}.service-tab:nth-child(2){border-radius:0 13px 0 0}.service-tab:nth-child(3){border-radius:0 0 0 13px}.service-tab:last-child{border-radius:0 0 13px 0}
  .service-tab::after{left:10px;right:10px;bottom:5px;width:auto;transform:scaleX(0);transform-origin:left}
  .service-tab.is-active::after{width:auto;transform:scaleX(1)}
  .service-display{padding-top:32px}
  .quote-form-progressive .quote-step-head legend,.quote-step-head>strong{font-size:23px}
  .quote-form-progressive .quote-contact{grid-template-columns:1fr}
}
