/* Layout, type and menu corrections. Loaded last on every page. */
:root{--gutter:clamp(20px,5vw,80px);--maxw:1280px;--pad:max(var(--gutter),calc((100% - var(--maxw)) / 2));--block:clamp(72px,9vw,128px)}
body{font-size:17px;line-height:1.6}

/* one gutter, one container, regular vertical rhythm */
.chapter,body:not(.home-v2) .section,.final-cta-v2,body:not(.home-v2) .cta,.gallery-section,.request-intro,.request-layout,.inbox-heading,.inbox-body,.inner-hero,.human-v2,.footer-v2{max-width:none!important;margin-left:0!important;margin-right:0!important;padding-left:var(--pad)!important;padding-right:var(--pad)!important}
.chapter,body:not(.home-v2) .section,.final-cta-v2,body:not(.home-v2) .cta,.gallery-section{padding-top:var(--block)!important;padding-bottom:var(--block)!important}
.inner-hero.compact,.inner-hero:not(:has(.wide-photo)){padding-top:clamp(40px,6vw,80px)!important;padding-bottom:0!important}
.gpt-home .hero-v2,.inner-gpt .inner-hero:has(.wide-photo){padding-left:var(--gutter)!important;padding-right:var(--gutter)!important}
.marquee-v2{padding:20px 0}
.chapter-head{margin-bottom:clamp(40px,5vw,64px)}

/* type scale */
.gpt-home .hero-v2 h1,body:not(.home-v2) .inner-hero h1,body:not(.home-v2) .request-intro h1,body:not(.home-v2) .inbox-heading h1{font-size:clamp(2.75rem,6vw,5.5rem)!important;line-height:1!important;letter-spacing:-.045em!important}
.chapter-head h2,.process-intro h2,.human-v2 h2,.split-title h2,.promise-carousel h2,body:not(.home-v2) .prose h2,body:not(.home-v2) .steps h2,body:not(.home-v2) .faq h2,body:not(.home-v2) .section h2{font-size:clamp(2rem,4.2vw,3.5rem)!important;line-height:1.05!important;letter-spacing:-.035em!important}
.statement-v2{font-size:clamp(2rem,4.6vw,4rem)!important;line-height:1.12!important;letter-spacing:-.035em!important}
.final-cta-v2 h2,body:not(.home-v2) .cta h2{font-size:clamp(2.75rem,6.5vw,5.5rem)!important;line-height:1!important;letter-spacing:-.045em!important}
.trade-overlay h3,.trade-process h3{font-size:clamp(1.75rem,2.6vw,2.5rem)!important;line-height:1.05}
.process-card h3,.step h3,.promise-slide blockquote{font-size:clamp(1.4rem,2vw,1.9rem)!important;line-height:1.2}
p{font-size:17px;line-height:1.65}
p:not(.statement-v2){max-width:65ch}
.gpt-home .hero-lede,.inner-intro p,.chapter-head>p:last-child,.split-title p:not(.kicker),.process-intro>p:not(.kicker),.human-statement,.lede,.final-cta-v2>p:not(.kicker),body:not(.home-v2) .cta>p:not(.eyebrow):not(.callback-note){font-size:clamp(18px,1.35vw,20px)!important;line-height:1.6!important}
.trade-overlay p,.trade-process p,.process-card p,.step p,details p,.about p,.prices p,.inbox-body p,.demo-note p{font-size:17px!important}
.hero-v2 .hero-lede{margin-left:auto;margin-right:auto}

/* labels: never under 14px */
.kicker,.eyebrow,.line-label,.trade-overlay>span,.process-card>span,.step>span,.promise-slide>span,.promise-controls span,.promise-portrait span,.split-shot figcaption,.hero-media figcaption,.gallery figcaption span,.footer-v2 strong,.footer-v2 small,.price-note,.form-note,.required-note,.demo-submit-note,.field-help,.request-progress li,small{font-size:14px!important;line-height:1.45!important}
.kicker,.eyebrow,.trade-overlay>span,.line-label,.process-card>span{letter-spacing:.12em!important}

/* buttons and links */
.button,.cta-primary,.cta-secondary,.cta-light,.nav-cta,.text-link,.back-button,.trade-overlay b,.trade-process a,.process-card b,.footer-v2 a,.footer-v2 p,.footer-v2 span,.filters button,.work-v2 .chapter-head>a{font-size:16px!important}
.button,.cta-primary,.cta-secondary,.cta-light,.nav-cta,.back-button,.filters button{min-height:48px}
.need-links a{font-size:clamp(18px,2vw,26px)!important}
label,select,input,textarea,option,.consent span,legend{font-size:16px!important}

/* menu: bigger, readable */
.nav-shell{height:84px!important;left:clamp(12px,3vw,40px)!important;right:clamp(12px,3vw,40px)!important;grid-template-columns:auto 1fr auto!important;gap:16px;padding:0 14px 0 18px!important}
.brand-v2 img{height:54px!important;width:auto!important}
.nav-pill{gap:4px!important}
.nav-pill a{font-size:16px!important;min-height:44px;display:inline-flex;align-items:center;padding:10px 14px!important}
.nav-cta{gap:18px!important;padding:14px 20px!important}
body:not(.home-v2){padding-top:118px!important}
.inner-gpt .inner-hero:has(.wide-photo){margin-top:-118px!important}
@media(max-width:1080px){
  .nav-shell{grid-template-columns:1fr auto auto!important}
  .nav-pill{display:none!important;position:absolute;top:92px;left:0;right:0;padding:14px;background:#fff;box-shadow:0 20px 40px rgba(7,27,51,.14);border-radius:12px;flex-direction:column;align-items:stretch}
  .nav-pill.open{display:flex!important}
  .nav-pill a{font-size:18px!important;min-height:52px;padding:12px 16px!important}
  .menu-toggle-v2{display:flex!important;gap:10px;align-items:center;background:var(--ink);color:#fff;border:0;border-radius:8px;padding:0 18px;min-height:48px;font-size:16px}
}
@media(max-width:640px){
  .nav-shell{top:10px!important;height:72px!important}
  .brand-v2 img{height:48px!important}
  .nav-cta{display:none!important}
  .nav-pill{top:80px}
  body:not(.home-v2){padding-top:100px!important}
  .inner-gpt .inner-hero:has(.wide-photo){margin-top:-100px!important}
}

/* sticky instead of JS pinning: no overlap, no jumps */
.work-split{align-items:start}
.split-shot,.split-shot:nth-child(even){aspect-ratio:3/2}
.split-shot:nth-child(even){width:86%}
@media(min-width:901px){
  .split-title{position:sticky;top:140px}
}
@media(min-width:1101px){
  .process-v2 .process-intro{position:sticky;top:140px;align-self:start}
  .process-card{position:sticky}
  .process-card:nth-child(1){top:130px}.process-card:nth-child(2){top:150px}.process-card:nth-child(3){top:170px}.process-card:nth-child(4){top:190px}
}
/* inner-page steps: cards scroll normally, the section title stays in view (stacked cards hid each other) */
@media(min-width:1101px){
  body:not(.home-v2) .steps{align-items:start}
  body:not(.home-v2) .steps>div:first-child{position:sticky;top:140px}
}
.demo-note a,.demo-note span,.inbox-body span,.inbox-stats span,.inbox-filters span{font-size:14px!important}
/* chapter heads are <header> tags: undo the old site header rule (fixed 99px height) */
header.chapter-head{height:auto!important;padding:0!important;background:none!important;border:0!important;z-index:auto}
/* hidden overflow breaks sticky; clip keeps both */
main{overflow-x:clip!important;overflow-y:visible!important}
.filters button[aria-pressed="true"]{color:#fff!important}
/* menu hover: thin underline that grows, no background block */
.nav-pill a{position:relative;background:none!important;color:var(--ink);transition:color .2s ease}
.nav-pill a:after{content:"";position:absolute;left:14px;right:14px;bottom:8px;height:2px;border-radius:2px;background:var(--violet);transform:scaleX(0);transform-origin:left;transition:transform .2s ease-out}
.nav-pill a:hover,.nav-pill a:focus-visible,.nav-pill a[aria-current]{color:var(--violet)}
.nav-pill a:hover:after,.nav-pill a:focus-visible:after,.nav-pill a[aria-current]:after{transform:scaleX(1)}
.nav-pill a:focus-visible{outline:none}
@media(prefers-reduced-motion:reduce){.nav-pill a,.nav-pill a:after{transition:none}}
@media(max-width:1080px){.nav-pill a:after{left:16px;right:auto;width:28px;bottom:10px}}
/* old site rule nav>a{border-bottom} still drew a second line under menu links */
.nav-pill>a,.nav-pill>a:hover,.nav-pill>a[aria-current]{border:0!important;box-shadow:none!important;text-decoration:none!important}
/* centered call-to-action blocks: one shared axis */
.final-cta-v2,body:not(.home-v2) .cta{display:flex!important;flex-direction:column;align-items:center;text-align:center!important;gap:clamp(18px,2vw,26px)}
.final-cta-v2>*,body:not(.home-v2) .cta>*{margin:0!important}
.final-cta-v2 h2,body:not(.home-v2) .cta h2{max-width:18ch;text-wrap:balance}
.final-cta-v2 p,body:not(.home-v2) .cta p{max-width:60ch;text-wrap:balance}
body:not(.home-v2) .cta h2 br{display:none}
.final-cta-v2 .cta-light,body:not(.home-v2) .cta .button{align-self:center;margin-top:8px!important}
/* labels never get the 65ch paragraph limit (it pushed centered eyebrows off-axis) */
p.kicker,p.eyebrow{max-width:none}
/* "Un projet a votre mesure" prose blocks: same single centered axis as the CTA */
body:not(.home-v2) .section.prose{display:flex;flex-direction:column;align-items:center;text-align:center;gap:clamp(16px,2vw,24px)}
body:not(.home-v2) .section.prose>*{margin:0}
body:not(.home-v2) .section.prose h2{max-width:22ch;text-wrap:balance}
body:not(.home-v2) .section.prose p:not(.eyebrow){max-width:60ch;text-wrap:pretty}
/* social links */
.social-links{display:flex;gap:6px;margin-top:6px}
.social-links a{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;color:var(--ink);border:1px solid var(--line);transition:color .2s ease,border-color .2s ease}
.social-links a:hover,.social-links a:focus-visible{color:var(--violet);border-color:var(--violet)}
.contact-direct{display:flex;flex-direction:column;gap:8px;margin:32px 0}
.contact-direct .contact-phone{font-size:clamp(22px,2vw,28px);font-weight:500;color:var(--ink)}
.contact-direct .contact-phone:hover{color:var(--violet)}
.contact-direct p{margin:0}
.follow-line{text-align:center;margin:clamp(40px,5vw,64px) auto 0!important;max-width:none}
.follow-line a{font-size:17px;text-decoration:underline;text-underline-offset:4px}
.follow-line a:hover{color:var(--violet)}
@media(prefers-reduced-motion:reduce){.social-links a{transition:none}}
.footer-v2 span{white-space:nowrap}
/* Google reviews carousel */
.review-summary{display:inline-flex;align-items:center;gap:12px;margin:-24px 0 36px;font-size:16px;color:var(--ink)}
.review-summary:hover{color:var(--violet)}
.review-summary i{font-style:normal}
.review-stars{display:inline-flex;gap:2px;color:#f5b301}
.review-slide .review-stars{margin-bottom:18px}
.review-slide blockquote{font-size:clamp(19px,1.7vw,24px)!important;line-height:1.55!important;margin:0 0 24px!important;max-width:62ch}
.review-slide footer{display:flex;flex-direction:column;gap:4px;margin-bottom:32px}
.review-slide footer strong{font-size:17px;color:var(--ink)}
.review-slide footer span{font-size:14px;color:var(--muted)}
.promise-controls span{font-size:14px!important}
.review-stars,.promise-slide>.review-stars{color:#f5b301!important}
.review-slide footer{padding:0!important;margin:0 0 32px!important;background:none!important;border:0!important}
/* all reviews share one height so the arrows never jump */
.promise-slides{display:grid}
.promise-slide{display:block!important;grid-area:1/1;visibility:hidden}
.promise-slide.active{visibility:visible}
/* trade pages: new content sections */
.trade-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 32px;margin-bottom:clamp(32px,4vw,56px)}
.trade-head .eyebrow{flex-basis:100%;margin:0}
.trade-head h2{margin:0}
.trade-head .text-link{font-size:16px!important;text-decoration:underline;text-underline-offset:4px}
.trade-head .text-link:hover{color:var(--violet)}
.page-gallery .gallery h3,.gallery figcaption h3{font-size:clamp(18px,1.5vw,21px);line-height:1.3;margin-top:8px;font-weight:500}
.page-gallery .zoom{height:380px!important}
@media(min-width:1101px){
  .page-gallery .gallery{grid-template-columns:repeat(3,1fr)}
  .page-gallery .gallery:has(>figure:nth-child(4):last-child){grid-template-columns:repeat(2,1fr)}
  .page-gallery .gallery:has(>figure:nth-child(4):last-child) .zoom{height:440px!important}
}
.trade-cases{background:#fff}
.case-grid,.benefit-grid,.advice-grid{display:grid;gap:clamp(16px,2vw,24px)}
.case-grid{grid-template-columns:repeat(2,1fr);margin-bottom:clamp(16px,2vw,24px)}
.benefit-grid{grid-template-columns:repeat(3,1fr)}
.advice-grid{grid-template-columns:repeat(2,1fr)}
.info-card,.advice-card{background:var(--paper);border-radius:12px;padding:clamp(24px,3vw,40px)}
.info-card h3,.advice-card h3{font-size:clamp(1.3rem,1.8vw,1.6rem);line-height:1.2;letter-spacing:-.02em;margin:0 0 14px}
.info-card ul{margin:0;padding:0;list-style:none;display:grid;gap:12px}
.info-card li{position:relative;padding-left:26px;font-size:17px;line-height:1.55;color:var(--muted)}
.info-card li:before{content:"";position:absolute;left:0;top:.6em;width:12px;height:2px;background:var(--violet)}
.benefit-grid .info-card{background:linear-gradient(140deg,#eef0f7,#f4f1ea)}
.info-card p,.advice-card p{margin:0}
.advice-card{background:#fff;border:1px solid rgba(7,27,51,.08);box-shadow:0 18px 45px rgba(7,27,51,.06)}
.trade-aids{background:var(--ink);color:#fff}
.trade-aids .eyebrow{color:#7fd8f5!important}
.trade-aids h2,.trade-aids h3{color:#fff}
.aids-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2vw,24px)}
.aids-card{border:1px solid rgba(255,255,255,.16);border-radius:12px;padding:clamp(24px,3vw,40px);background:rgba(255,255,255,.04)}
.aids-card h3{font-size:clamp(1.3rem,1.8vw,1.6rem);margin:0 0 16px}
.aids-card ul{margin:0;padding:0;list-style:none;display:grid;gap:12px}
.aids-card li{position:relative;padding-left:26px;font-size:17px;line-height:1.55;color:rgba(255,255,255,.82)}
.aids-card li:before{content:"";position:absolute;left:0;top:.6em;width:12px;height:2px;background:#7fd8f5}
.aids-card a{color:#fff;text-decoration:underline;text-underline-offset:3px}
.aids-note{margin-top:20px!important;font-size:14px!important;color:rgba(255,255,255,.7)!important;max-width:none}
@media(max-width:900px){.case-grid,.benefit-grid,.advice-grid,.aids-grid{grid-template-columns:1fr}}
/* video tiles: soft bottom shade and a centred play button */
.video-tile{position:relative}
.video-tile:after{content:"";position:absolute;inset:55% 0 0;background:linear-gradient(transparent,rgba(7,27,51,.55));pointer-events:none;transition:opacity .2s ease}
.video-play{position:absolute;left:50%;top:50%;width:72px;height:72px;margin:-36px 0 0 -36px;border:0;border-radius:50%;background:rgba(255,255,255,.92);box-shadow:0 10px 30px rgba(7,27,51,.3);cursor:pointer;z-index:2;transition:transform .2s ease,background .2s ease}
.video-play:before{content:"";position:absolute;left:29px;top:24px;border-style:solid;border-width:12px 0 12px 19px;border-color:transparent transparent transparent var(--ink)}
.video-play:hover{transform:scale(1.06);background:#fff}
.video-play:focus-visible{outline:3px solid var(--violet);outline-offset:3px}
.video-tile.playing .video-play,.video-tile.playing:after{opacity:0;pointer-events:none}
@media(prefers-reduced-motion:reduce){.video-play,.video-tile:after{transition:none}}

/* ===== One background rhythm for inner pages =====
   base (paper) and alt (white) alternate; navy only for the photo hero and the closing CTA. */
:root{--bg-base:#f4f1ea;--bg-alt:#ffffff;--bg-deep:var(--ink)}
body:not(.home-v2) main>section{background:var(--bg-base)}
/* trade pages: prose > gallery > cases > advice > aids > steps > faq */
body:not(.home-v2) .page-gallery,body:not(.home-v2) .trade-advice,body:not(.home-v2) .steps,
/* entretien: hero > pricing > about > gallery > faq ; a-propos: hero > about > prose */
.inner-gpt main>.pricing,.inner-gpt main>.about{background:var(--bg-alt)!important}
body:not(.home-v2) .trade-cases,body:not(.home-v2) .trade-aids,body:not(.home-v2) .faq,body:not(.home-v2) .prose{background:var(--bg-base)!important}
body:not(.home-v2) main>section.cta{background:radial-gradient(circle at 75% 0,rgba(9,174,224,.2),transparent 35%),var(--bg-deep)!important}
body:not(.home-v2) .inner-hero:has(.wide-photo){background:var(--bg-deep)!important}
/* entretien: pricing (white) > about (base) > gallery (white) > faq (base) */
.inner-gpt .pricing+.about{background:var(--bg-base)!important}
/* the old 4px rainbow strip on top of the CTA */
.cta:before{display:none!important}

/* cards take the opposite tone of their section */
.trade-cases .info-card{background:var(--bg-alt)}
.trade-cases .benefit-grid .info-card{background:var(--bg-alt);border:1px solid rgba(7,27,51,.06)}
.trade-advice .advice-card{background:var(--bg-base);border:0;box-shadow:none}
body:not(.home-v2) .steps .step{background:var(--bg-base);box-shadow:none}

/* aids: light card section instead of a second navy band */
.trade-aids{color:var(--ink)}
.trade-aids .eyebrow{color:var(--violet)!important}
.trade-aids h2,.trade-aids h3{color:var(--ink)}
.aids-card{background:var(--bg-alt);border:0}
.aids-card li{color:var(--muted)}
.aids-card li:before{background:var(--violet)}
.aids-card a{color:var(--ink)}
.aids-card a:hover{color:var(--violet)}
.aids-note{color:var(--muted)!important}

/* ===== One primary and one secondary button style ===== */
.button,.cta-primary,.nav-cta,button.button{border:0!important;border-radius:8px!important;background:var(--ink)!important;color:#fff!important;transform:none!important;transition:background .2s ease}
.button:hover,.cta-primary:hover,.nav-cta:hover,button.button:hover{background:var(--violet)!important}
.button.light,.cta-light,.cta .button,.inner-gpt .inner-hero:has(.wide-photo) .button,.gpt-home .hero-v2 .cta-primary{background:#fff!important;color:var(--ink)!important}
.button.light:hover,.cta-light:hover,.cta .button:hover,.inner-gpt .inner-hero:has(.wide-photo) .button:hover,.gpt-home .hero-v2 .cta-primary:hover{background:#7fd8f5!important;color:var(--ink)!important}
.cta-secondary,.back-button{border:1px solid currentColor!important;border-radius:8px!important;background:transparent!important}
/* text links: one underline, no extra border from the old style */
.text-link{border-bottom:0!important;padding-bottom:0!important;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.text-link:hover{color:var(--violet)}
/* one clean focus ring everywhere */
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--violet)!important;outline-offset:3px!important;border-radius:6px}
.nav-pill a:focus-visible{outline:none!important}

/* "Neuf ou rénovation": editorial layout, no boxed cards */
@media(min-width:1101px){
  .trade-cases{display:grid!important;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);column-gap:clamp(48px,6vw,96px);align-items:start}
  .trade-cases>.trade-head{grid-row:span 2;position:sticky;top:140px;margin:0}
}
.trade-cases .case-grid{gap:0;margin-bottom:clamp(48px,5vw,72px);border-top:1px solid var(--line)}
.trade-cases .case-grid .info-card{background:none!important;border:0!important;border-radius:0;padding:28px 0 0}
.trade-cases .case-grid .info-card+.info-card{border-left:1px solid var(--line)!important;padding-left:clamp(24px,3vw,40px)}
.trade-cases .case-grid .info-card:first-child{padding-right:clamp(24px,3vw,40px)}
.trade-cases .case-grid h3{font-size:14px!important;text-transform:uppercase;letter-spacing:.12em;color:var(--violet);margin-bottom:18px}
.trade-cases .case-grid li{color:var(--ink);font-size:18px}
.trade-cases .benefit-grid{gap:clamp(24px,3vw,40px)}
.trade-cases .benefit-grid .info-card{background:none!important;border:0!important;border-top:2px solid var(--ink)!important;border-radius:0;padding:22px 0 0}
.trade-cases .benefit-grid h3{font-size:clamp(1.2rem,1.6vw,1.45rem)}
@media(max-width:900px){
  .trade-cases .case-grid .info-card+.info-card{border-left:0!important;border-top:1px solid var(--line)!important;padding-left:0;margin-top:28px}
  .trade-cases .case-grid .info-card:first-child{padding-right:0}
}
/* violet ticks instead of dashes, icon benefits without boxes */
.trade-cases .case-grid li{padding-left:28px}
.trade-cases .case-grid li:before{width:11px;height:6px;top:.5em;background:none;border-left:2px solid var(--violet);border-bottom:2px solid var(--violet);transform:rotate(-45deg)}
.trade-cases .benefit-grid .info-card{border-top:0!important;padding:0;display:grid;grid-template-columns:auto 1fr;column-gap:16px;align-items:start}
.trade-cases .benefit-grid .benefit-icon{grid-row:span 2;color:var(--violet);margin-top:2px}
.trade-cases .benefit-grid h3{margin:0 0 6px}
.trade-cases .benefit-grid p{font-size:16px!important}
.trade-cases .benefit-grid{border-top:1px solid var(--line);padding-top:clamp(28px,3vw,40px)}
@media(min-width:1101px){
  .trade-cases>.trade-head{grid-row:auto;position:static}
  .trade-cases .benefit-grid{grid-column:1/-1}
}
/* buttons with an arrow: text and arrow side by side, width fits the content */
.button,.cta-primary,.cta-secondary,.cta-light,.nav-cta,.back-button,button.button{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:.5em!important;padding-left:22px!important;padding-right:22px!important;width:auto}
.button>span,.cta-primary>span,.cta-secondary>span,.cta-light>span,.nav-cta>span{margin:0!important}
.hero-actions{justify-content:center}
@media(max-width:640px){.hero-actions a{width:100%}}
@media(max-width:640px){.nav-shell .nav-cta{display:none!important}}
/* hero intro in CSS (cannot get stuck like a script tween) */
@media(prefers-reduced-motion:no-preference){
  @keyframes heroIn{from{transform:translateY(18px)}to{transform:none}}
  .hero-v2 .kicker,.hero-v2 h1,.hero-lede,.hero-actions{animation:heroIn .9s cubic-bezier(.2,.8,.2,1) both}
  .hero-v2 h1{animation-delay:.1s}.hero-lede{animation-delay:.2s}.hero-actions{animation-delay:.3s}
  .reveal{opacity:.35;transform:translateY(20px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.8,.2,1)}
  .reveal.in{opacity:1;transform:none}
}

/* maintenance blocks */
.care-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:28px clamp(24px,4vw,64px);border-top:1px solid var(--line);padding-top:clamp(28px,3vw,40px)}
.care-list li{position:relative;padding-left:30px;display:flex;flex-direction:column;gap:4px}
.care-list li:before{content:"";position:absolute;left:2px;top:.45em;width:11px;height:6px;border-left:2px solid var(--violet);border-bottom:2px solid var(--violet);transform:rotate(-45deg)}
.care-list strong{font-size:18px;font-weight:500;color:var(--ink)}
.care-list span{font-size:17px;line-height:1.55;color:var(--muted)}
.care-note{margin-top:clamp(28px,3vw,40px)!important;font-size:15px!important;color:var(--muted);max-width:80ch!important}
.care-note a{text-decoration:underline;text-underline-offset:3px}
.care-price{margin:0;font-size:17px;color:var(--muted)}
.care-price strong{color:var(--ink);font-size:20px;font-weight:500;margin-right:6px}
.service-care .button{margin-top:clamp(28px,3vw,40px)}
.inline-link{text-decoration:underline;text-underline-offset:3px;color:var(--ink)}
.inline-link:hover{color:var(--violet)}
@media(max-width:760px){.care-list{grid-template-columns:1fr}}

/* background rhythm, updated for the new blocks (B = paper, W = white) */
/* trade pages: prose B > gallery W > cases B > advice W > care B > aids W > steps B > faq W */
body:not(.home-v2) .trade-care,body:not(.home-v2) .steps{background:var(--bg-base)!important}
body:not(.home-v2) .trade-aids,body:not(.home-v2) .faq{background:var(--bg-alt)!important}
body:not(.home-v2) .steps .step{background:var(--bg-alt)}
.trade-aids .aids-card{background:var(--bg-base)}
/* entretien: hero B > pricing W > about B > PV W > electrical B > gallery W > faq B */
.inner-gpt main>.service-care#entretien-photovoltaique{background:var(--bg-alt)!important}
.inner-gpt main>.service-care#controle-electrique{background:var(--bg-base)!important}
.inner-gpt main>.service-care#controle-electrique~.faq{background:var(--bg-base)!important}
/* legal page */
.legal{max-width:none}
.legal-block{max-width:860px;padding:clamp(28px,3vw,40px) 0;border-top:1px solid var(--line)}
.legal-block:first-child{border-top:0;padding-top:0}
.legal-block h2{font-size:clamp(1.5rem,2.4vw,2rem)!important;line-height:1.2!important;margin:0 0 18px}
.legal dl{display:grid;grid-template-columns:minmax(160px,240px) 1fr;gap:12px 24px;margin:0}
.legal dt{font-size:15px;color:var(--muted)}
.legal dd{margin:0;font-size:17px;color:var(--ink)}
.legal a{text-decoration:underline;text-underline-offset:3px}
.legal a:hover{color:var(--violet)}
.legal-note,.legal-update{font-size:15px!important;color:var(--muted)}
.legal-update{margin-top:clamp(28px,3vw,40px)!important}
.todo{display:inline-block;background:#fff3cd;color:#7a5200;border-radius:6px;padding:4px 10px;font-size:15px;font-weight:500}
.privacy-note{font-size:14px!important;color:var(--muted);margin-top:18px!important}
.privacy-note a,.contact-mail{text-decoration:underline;text-underline-offset:3px}
@media(max-width:640px){.legal dl{grid-template-columns:1fr;gap:4px}.legal dd{margin-bottom:12px}}

/* climatisation: maintenance prices inside the "Entretien et suivi" block */
.care-prices{margin-top:clamp(40px,5vw,64px);padding-top:clamp(28px,3vw,40px);border-top:1px solid var(--line)}
.care-prices .eyebrow{margin:0 0 18px}
.care-prices .prices{max-width:760px}
.care-prices .prices article{background:var(--bg-alt);border:0;border-radius:12px;padding:clamp(22px,3vw,32px)}
.care-prices .prices article h3{font-size:clamp(1.2rem,1.6vw,1.4rem);margin:0}
.care-prices .prices article b{font-size:clamp(32px,3.4vw,44px);margin:18px 0 8px;color:var(--ink)}
.care-prices .prices small{font-size:14px}
.care-prices .price-note{font-size:15px!important;color:var(--muted)}
.care-source{font-size:14px!important;color:var(--muted);margin:8px 0 24px!important}
.care-gallery{margin-top:clamp(40px,5vw,64px)}
.care-gallery .zoom{height:380px!important}
@media(min-width:1101px){.care-gallery{grid-template-columns:repeat(3,1fr)}}
.trade-care>.button{margin-top:clamp(28px,3vw,40px)}

/* home: maintenance summary */
.home-care{background:#fff}
.home-care-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line);margin-bottom:clamp(36px,4vw,56px)}
.home-care-grid a{display:flex;flex-direction:column;gap:10px;padding:clamp(24px,3vw,36px) clamp(20px,2.5vw,32px) 0 0;color:var(--ink)}
.home-care-grid a+a{border-left:1px solid var(--line);padding-left:clamp(20px,2.5vw,32px)}
.home-care-grid h3{font-size:clamp(1.3rem,1.8vw,1.6rem);margin:0}
.home-care-grid p{margin:0;color:var(--muted)}
.home-care-grid span{margin-top:6px;font-size:16px;text-decoration:underline;text-underline-offset:4px}
.home-care-grid i{font-style:normal}
.home-care-grid a:hover span,.home-care-grid a:hover h3{color:var(--violet)}
.home-care>.cta-primary{display:inline-flex}
@media(max-width:760px){
  .home-care-grid{grid-template-columns:1fr}
  .home-care-grid a{padding:24px 0}
  .home-care-grid a+a{border-left:0;border-top:1px solid var(--line);padding-left:0}
}
.marquee-v2 span{font-size:14px!important}
/* labels and aid badges (neutral design, not official logos) */
.label-strip{list-style:none;margin:0 0 clamp(28px,3vw,40px);padding:0;display:flex;flex-wrap:wrap;gap:12px}
.label-strip li{display:flex;align-items:center;gap:12px;background:var(--bg-base);border-radius:999px;padding:10px 20px 10px 12px}
.label-strip svg{flex:none;width:40px;height:40px;padding:7px;border-radius:50%;background:#fff;color:var(--violet)}
.label-strip span{display:flex;flex-direction:column;line-height:1.25}
.label-strip strong{font-size:16px;font-weight:600;color:var(--ink)}
.label-strip small{font-size:14px;color:var(--muted)}
.footer-rge{display:inline-flex!important;align-items:center;gap:8px;font-size:14px!important;color:var(--ink)!important;white-space:normal!important}
.footer-rge svg{width:22px;height:22px;color:var(--violet)}
@media(max-width:640px){.label-strip li{width:100%;border-radius:14px}}
/* legal page: one centred reading column on a plain light background */
body:not(.home-v2) main>section.legal{background:var(--bg-base)!important;display:flex;flex-direction:column;align-items:center;gap:0;padding-top:clamp(40px,5vw,64px)!important}
.legal-block{width:min(100%,760px);max-width:none;padding:clamp(28px,3vw,40px) 0;border-top:1px solid var(--line)}
.legal-block:first-child{border-top:0;padding-top:0}
.legal-block h2{margin:0 0 20px!important}
.legal-block p{max-width:70ch;margin:0 0 14px}
.legal dl{grid-template-columns:minmax(150px,220px) 1fr;gap:14px 28px}
.legal dd{line-height:1.55}
.legal dd strong{font-weight:600}
.legal a{color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;border:0!important}
.legal a:hover{color:var(--violet)}
.legal-note,.legal-update{width:min(100%,760px);max-width:none!important}
.mentions-hero,.inner-gpt main>.inner-hero.compact{padding-bottom:clamp(24px,3vw,40px)!important}
.todo{background:transparent!important;color:#8a5a00!important;border:1px solid #e3b866;border-radius:999px;padding:2px 12px!important;font-size:14px!important;font-weight:500;line-height:1.6}
.todo-detail{color:var(--muted);font-size:16px}
@media(max-width:640px){.legal dl{grid-template-columns:1fr!important;gap:2px}.legal dd{margin-bottom:14px}}

/* line icons in a light round chip (one family, one size) */
.ico{display:inline-grid;place-items:center;flex:none;width:44px;height:44px;border-radius:50%;background:#eceaf7;color:var(--violet)}
.ico svg{width:24px;height:24px}
.advice-card .ico,.aids-card .ico,.home-care-grid .ico{margin-bottom:16px}
.step .ico,.process-card .ico{margin:14px 0 12px}
.process-card:nth-child(4) .ico{background:rgba(255,255,255,.12);color:#7fd8f5}
/* maintenance list: icon instead of the tick */
.care-list li.has-ico{padding-left:60px;min-height:44px;justify-content:center}
.care-list li.has-ico:before{display:none}
.care-list li.has-ico .ico{position:absolute;left:0;top:0}
/* contact details */
.ico-inline{width:36px;height:36px;margin-right:10px;vertical-align:middle}
.ico-inline svg{width:20px;height:20px}
.contact-direct .contact-phone,.contact-direct .contact-mail{display:inline-flex;align-items:center}
@media(max-width:640px){
  .advice-card{display:grid;grid-template-columns:44px 1fr;column-gap:16px}
  .advice-card .ico{grid-row:span 2;margin:0}
  .advice-card h3{margin-top:8px!important}
}
.trade-cases .benefit-grid .benefit-icon{width:44px;height:44px;padding:10px;border-radius:50%;background:#eceaf7;margin-top:0}
.trade-head .care-lede{flex-basis:100%;margin:6px 0 0;font-size:clamp(18px,1.35vw,20px)!important;color:var(--ink);max-width:60ch}
/* numbered blocks: header row (icon + number/label), then title and text */
.step,.process-card{display:flex!important;flex-wrap:wrap;align-items:center;column-gap:14px;row-gap:12px}
.step>.ico,.process-card>.ico{order:-1;margin:0!important}
.step>span:not(.ico),.process-card>span:not(.ico){margin:0!important;line-height:1}
.step>h3,.step>p,.process-card>h3,.process-card>p,.process-card>b{flex-basis:100%;margin:0!important}
.step>h3,.process-card>h3{margin-top:6px!important}
/* address / town suggestions */
.ac-wrap{position:relative;display:block}
.ac-wrap>input{width:100%}
.ac-list{position:absolute;z-index:30;left:0;right:0;top:calc(100% + 6px);margin:0;padding:6px;list-style:none;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 18px 40px rgba(7,27,51,.14);max-height:min(320px,50vh);overflow-y:auto}
.ac-list li{padding:12px 14px;border-radius:8px;font-size:16px;line-height:1.35;color:var(--ink);cursor:pointer}
.ac-list li:hover,.ac-list li[aria-selected="true"]{background:#eceaf7;color:var(--violet)}
.optional{font-weight:400;color:var(--muted);font-size:14px}

/* home bento order: Climatisation, Photovoltaïque, then Électricité */
.trade-clim{grid-column:span 7!important}
.trade-solar{grid-column:span 5!important}
.trade-electric{grid-column:span 5!important}
.trade-process{grid-column:span 7!important}
@media(max-width:900px){.trade-clim,.trade-solar,.trade-electric,.trade-process{grid-column:1/-1!important}}

/* automatic background rhythm on inner pages: sections alternate paper / white */
body:not(.home-v2) main>section.section:nth-of-type(even){background:var(--bg-base)!important}
body:not(.home-v2) main>section.section:nth-of-type(odd){background:var(--bg-alt)!important}
/* cards take the opposite tone of their section; the "Neuf ou rénovation" block has no cards at all */
body:not(.home-v2) main>section.section:nth-of-type(even) :is(.advice-card,.aids-card,.step,.care-prices .prices article){background:var(--bg-alt)!important}
body:not(.home-v2) main>section.section:nth-of-type(odd) :is(.advice-card,.aids-card,.step,.care-prices .prices article){background:var(--bg-base)!important}
body:not(.home-v2) main>section.section.legal{background:var(--bg-base)!important}

/* charging points and batteries */
.storage-split{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(28px,4vw,64px);align-items:center;margin-bottom:clamp(28px,3vw,40px)}
.storage-photo{margin:0;border-radius:12px;overflow:hidden;aspect-ratio:4/5;max-height:560px;background:var(--ink)}
.storage-photo img{width:100%;height:100%;object-fit:cover}
.storage-split .care-list{grid-template-columns:1fr}
.trade-storage .advice-grid{margin-bottom:8px}
.storage-links{grid-template-columns:1fr!important;margin:0!important}
.storage-links a+a{border-left:0!important;border-top:1px solid var(--line);padding-left:0!important}
.home-storage{background:var(--paper)}
@media(max-width:900px){.storage-split{grid-template-columns:1fr}.storage-photo{aspect-ratio:4/3}}
@media(min-width:901px){.advice-grid>.advice-card:last-child:nth-child(odd){grid-column:1/-1}}
/* tip for the occupant, kept apart from what Max does */
.care-tip{display:flex;gap:16px;align-items:flex-start;margin-top:clamp(28px,3vw,40px);padding:20px 22px;border-radius:12px;background:#eceaf7;max-width:760px}
.care-tip .ico{background:#fff}
.care-tip p{margin:0;font-size:17px;color:var(--ink)}
.care-tip strong{display:block;margin-bottom:4px;font-weight:600}
/* air-conditioning maintenance price table */
.price-table{width:100%;max-width:760px;border-collapse:separate;border-spacing:0;background:var(--bg-alt);border-radius:12px;overflow:hidden}
.price-table thead th{font-size:14px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:600;text-align:left;padding:16px 20px;border-bottom:1px solid var(--line)}
.price-table thead th:last-child,.price-table td{text-align:right}
.price-table tbody th{display:flex;align-items:center;gap:14px;text-align:left;font-weight:500;font-size:17px;color:var(--ink);padding:14px 20px}
.price-table td{font-size:clamp(20px,2vw,24px);font-weight:600;color:var(--ink);padding:14px 20px;white-space:nowrap;font-variant-numeric:tabular-nums}
.price-table td small{font-size:14px;font-weight:500;color:var(--muted)}
.price-table tbody tr+tr th,.price-table tbody tr+tr td{border-top:1px solid var(--line)}
.price-option th,.price-option td{background:#f4f3fb}
.price-option em{display:block;font-style:normal;font-size:14px;color:var(--violet);font-weight:600;margin-top:2px}
.price-table .ico{width:40px;height:40px}
.price-table .ico svg{width:22px;height:22px}
@media(max-width:640px){.price-table tbody th{font-size:16px;padding:12px 14px;gap:10px}.price-table td{padding:12px 14px}.price-table thead th{padding:12px 14px}}
/* maintenance price simulator, next to the price table */
.price-sim{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(20px,3vw,40px);align-items:start}
.price-sim .price-table{max-width:none}
.sim-card{background:var(--ink);color:#fff;border-radius:12px;padding:clamp(22px,3vw,32px);display:flex;flex-direction:column;gap:18px}
.sim-card h3{color:#fff;margin:0;font-size:clamp(1.3rem,1.8vw,1.6rem)}
.sim-field label{display:block;font-size:15px!important;color:rgba(255,255,255,.8);margin-bottom:8px}
.sim-stepper{display:grid;grid-template-columns:48px 1fr 48px;border:1px solid rgba(255,255,255,.25);border-radius:10px;overflow:hidden}
.sim-stepper button{background:rgba(255,255,255,.08);color:#fff;border:0;font-size:22px;min-height:48px;cursor:pointer}
.sim-stepper button:hover{background:rgba(255,255,255,.16)}
.sim-stepper input{background:transparent;border:0;color:#fff;text-align:center;font-size:20px!important;font-weight:600;width:100%;-moz-appearance:textfield}
.sim-stepper input::-webkit-inner-spin-button,.sim-stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.sim-check{display:flex;align-items:center;gap:10px;font-size:16px!important;color:#fff;cursor:pointer}
.sim-check input{width:20px;height:20px;accent-color:#7fd8f5}
.sim-total{border-top:1px solid rgba(255,255,255,.2);padding-top:16px;display:flex;flex-direction:column;gap:4px}
.sim-total span{font-size:14px;letter-spacing:.12em;text-transform:uppercase;color:#7fd8f5}
.sim-total output{font-size:clamp(32px,3.4vw,42px);font-weight:600;color:#fff;font-variant-numeric:tabular-nums}
.sim-total small{font-size:14px;color:rgba(255,255,255,.7)}
.sim-card .button{background:#fff!important;color:var(--ink)!important;align-self:flex-start}
.sim-card .button:hover{background:#7fd8f5!important}
@media(max-width:900px){.price-sim{grid-template-columns:1fr}}
.sim-stepper{grid-template-columns:44px 1fr 44px}
.sim-stepper button{min-height:44px}
.sim-lines{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.sim-lines li{display:flex;justify-content:space-between;gap:12px;font-size:16px;color:rgba(255,255,255,.85)}
.sim-lines b{font-variant-numeric:tabular-nums;color:#fff}
.sim-empty{margin:0;font-size:15px!important;color:#ffd7a0!important}
.sim-request[hidden]{display:none!important}
.sim-stepper input{background:transparent!important;color:#fff!important;border:0!important;border-radius:0!important;box-shadow:none!important;min-height:44px;padding:0!important}
/* hamburger icon, turns into a cross when the menu is open */
.burger{position:relative;display:inline-block;width:20px;height:14px}
.burger i{position:absolute;left:0;width:100%;height:2px;border-radius:2px;background:currentColor;transition:transform .25s ease,opacity .2s ease,top .25s ease}
.burger i:nth-child(1){top:0}.burger i:nth-child(2){top:6px}.burger i:nth-child(3){top:12px}
.menu-toggle-v2[aria-expanded="true"] .burger i:nth-child(1){top:6px;transform:rotate(45deg)}
.menu-toggle-v2[aria-expanded="true"] .burger i:nth-child(2){opacity:0}
.menu-toggle-v2[aria-expanded="true"] .burger i:nth-child(3){top:6px;transform:rotate(-45deg)}
@media(prefers-reduced-motion:reduce){.burger i{transition:none}}
/* contact form trap field for bots, invisible to people */
.hp-field{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
